// SPDX-License-Identifier: LicenseRef-ConusAI-Template-1.0 import { buildRegistry, Container, createCaller } from "@conusai-kit/core" import { DATA_SOURCE, type DataSource, SYSTEM_DATA, type SystemDataSource } from "@conusai-kit/data" import { createTenancyHooks, TENANCY, tenancyModule, users } from "@conusai-kit/tenancy" import type { AgentScope } from "../core/ports.js" import { AGENT_MODULE_BASE } from "../module.shared.js" export const workerRegistry = buildRegistry([tenancyModule, AGENT_MODULE_BASE]) /** Real app membership/permission resolution, including a retained memo to expose stale use. */ export async function workerFixture(data: DataSource & SystemDataSource) { const container = new Container() container.value(DATA_SOURCE, data) container.value(SYSTEM_DATA, data) const tenancy = createTenancyHooks({ data, registry: workerRegistry }) container.value(TENANCY, tenancy) const user = await data.global(users).insert({ issuer: "https://id.example.test", subject: crypto.randomUUID(), email: "worker@example.test", displayName: "Worker fixture", locale: "en", }) const actor = { userId: user.id } const caller = createCaller({ registry: workerRegistry, container, tenancy }, { actor }) const org = `worker-${crypto.randomUUID()}` const { orgId } = (await caller.callByName("tenancy.org.create", { slug: org, name: "Worker" })) as { orgId: string } const { workspaceId } = (await caller.callByName("tenancy.workspace.create", { org, slug: "work", name: "Work", visibility: "org", })) as { workspaceId: string } const { projectId } = (await caller.callByName("tenancy.project.create", { org, workspace: "work", slug: "project", name: "Project", moduleKey: "agent", })) as { projectId: string } const scope: AgentScope = { level: "project", actor, orgId, workspaceId, projectId } // Warm the request memo: worker admission must read past this after a revocation. await tenancy.authorize(scope, "agent.run.start", { name: "agent.run.start", kind: "effect" }) return { container, scope, tenancy } }