pi-fabric 0.92.27 → 0.92.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actors/host-event-payload.d.ts.map +1 -1
- package/dist/agents/request.d.ts +4 -0
- package/dist/agents/request.d.ts.map +1 -1
- package/dist/agents.js +2 -1
- package/dist/agents.js.map +1 -1
- package/dist/chunks/{chunk-M5CQIHKJ.js → chunk-5IZFVA3H.js} +2 -2
- package/dist/chunks/{chunk-JVS5EVOF.js → chunk-7TX532EG.js} +2 -2
- package/dist/chunks/chunk-BJOJX2UW.js +59 -0
- package/dist/chunks/chunk-BJOJX2UW.js.map +7 -0
- package/dist/chunks/{chunk-2PZWDVJB.js → chunk-BYOGRJME.js} +13 -4
- package/dist/chunks/chunk-BYOGRJME.js.map +7 -0
- package/dist/chunks/{chunk-OXL4IQIU.js → chunk-CIODQX77.js} +41 -1
- package/dist/chunks/chunk-CIODQX77.js.map +7 -0
- package/dist/chunks/{chunk-ZMIJ6AT4.js → chunk-D6YSBP3R.js} +2 -2
- package/dist/chunks/{chunk-WRKNLJSD.js → chunk-DUMIK5RZ.js} +2 -2
- package/dist/chunks/{chunk-V4ZJOBMH.js → chunk-F5775UIO.js} +7 -7
- package/dist/chunks/{chunk-XTUGCUGE.js → chunk-G7UJLM33.js} +4 -197
- package/dist/chunks/chunk-G7UJLM33.js.map +7 -0
- package/dist/chunks/{chunk-7EGAE4MO.js → chunk-JNMTTJMQ.js} +1 -1
- package/dist/chunks/chunk-JNMTTJMQ.js.map +7 -0
- package/dist/chunks/{chunk-WLDAN6IZ.js → chunk-JOEFBOFN.js} +15 -6
- package/dist/chunks/chunk-JOEFBOFN.js.map +7 -0
- package/dist/chunks/chunk-KI277YNS.js +218 -0
- package/dist/chunks/chunk-KI277YNS.js.map +7 -0
- package/dist/chunks/{chunk-4SSMGBF4.js → chunk-QLV2IZ3F.js} +6 -7
- package/dist/chunks/chunk-QLV2IZ3F.js.map +7 -0
- package/dist/chunks/{chunk-XDSD4RLK.js → chunk-RDJDJJET.js} +42 -24
- package/dist/chunks/chunk-RDJDJJET.js.map +7 -0
- package/dist/chunks/{chunk-HJ4XM6MB.js → chunk-RWDKJ24D.js} +2 -2
- package/dist/chunks/{chunk-PA57O4FH.js → chunk-RZKN534S.js} +2 -2
- package/dist/chunks/{chunk-CRX4P5PU.js → chunk-WG24VI7K.js} +24 -3
- package/dist/chunks/chunk-WG24VI7K.js.map +7 -0
- package/dist/chunks/{chunk-VTJO5VCB.js → chunk-ZHJNWM6A.js} +2 -2
- package/dist/components/configuration.js +3 -2
- package/dist/config.d.ts +3 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/core/action-registry.d.ts +11 -0
- package/dist/core/action-registry.d.ts.map +1 -1
- package/dist/core/action-registry.js +5 -3
- package/dist/core/media-sanitize.d.ts +45 -0
- package/dist/core/media-sanitize.d.ts.map +1 -0
- package/dist/core/model-resolution.d.ts +20 -3
- package/dist/core/model-resolution.d.ts.map +1 -1
- package/dist/execution-service.d.ts +3 -1
- package/dist/execution-service.d.ts.map +1 -1
- package/dist/fabric-exec-tool.d.ts.map +1 -1
- package/dist/fabric-runtime-state.js +52 -24
- package/dist/fabric-runtime-state.js.map +2 -2
- package/dist/index.js +21 -10
- package/dist/index.js.map +2 -2
- package/dist/jev/observation.js +3 -2
- package/dist/jev.js +4 -3
- package/dist/providers/agents-actions.d.ts.map +1 -1
- package/dist/providers/jev-provider.js +4 -3
- package/dist/residency/actor-client.js +2 -2
- package/dist/residency/host.js +5 -4
- package/dist/residency/pi-entry.js +5 -4
- package/dist/residency/pi-entry.js.map +1 -1
- package/dist/residency/protocol.d.ts +2 -2
- package/dist/residency/protocol.d.ts.map +1 -1
- package/dist/runtime/core-override-guest-types.js +2 -2
- package/dist/runtime/guest-types.d.ts +1 -1
- package/dist/runtime/guest-types.d.ts.map +1 -1
- package/dist/runtime/guest-types.js +1 -1
- package/dist/runtime/monty-runtime.js +2 -1
- package/dist/runtime/monty-runtime.js.map +1 -1
- package/dist/runtime/node-process-child-source.d.ts.map +1 -1
- package/dist/runtime/node-process-runtime.d.ts.map +1 -1
- package/dist/runtime/node-process-runtime.js +1 -1
- package/dist/runtime/typescript-kernel.js +3 -3
- package/dist/ui/code-preview-shell.d.ts.map +1 -1
- package/dist/ui/dashboard.js +1 -1
- package/dist/ui/settings.js +2 -1
- package/dist/ui/settings.js.map +1 -1
- package/dist/ui/spinner.d.ts +8 -1
- package/dist/ui/spinner.d.ts.map +1 -1
- package/dist/worker.js +11 -3
- package/dist/worker.js.map +2 -2
- package/docs/architecture.md +3 -1
- package/docs/configuration.md +3 -2
- package/docs/kernels.md +13 -0
- package/package.json +1 -1
- package/dist/chunks/chunk-2PZWDVJB.js.map +0 -7
- package/dist/chunks/chunk-4SSMGBF4.js.map +0 -7
- package/dist/chunks/chunk-7EGAE4MO.js.map +0 -7
- package/dist/chunks/chunk-CRX4P5PU.js.map +0 -7
- package/dist/chunks/chunk-OXL4IQIU.js.map +0 -7
- package/dist/chunks/chunk-WLDAN6IZ.js.map +0 -7
- package/dist/chunks/chunk-XDSD4RLK.js.map +0 -7
- package/dist/chunks/chunk-XTUGCUGE.js.map +0 -7
- /package/dist/chunks/{chunk-M5CQIHKJ.js.map → chunk-5IZFVA3H.js.map} +0 -0
- /package/dist/chunks/{chunk-JVS5EVOF.js.map → chunk-7TX532EG.js.map} +0 -0
- /package/dist/chunks/{chunk-ZMIJ6AT4.js.map → chunk-D6YSBP3R.js.map} +0 -0
- /package/dist/chunks/{chunk-WRKNLJSD.js.map → chunk-DUMIK5RZ.js.map} +0 -0
- /package/dist/chunks/{chunk-V4ZJOBMH.js.map → chunk-F5775UIO.js.map} +0 -0
- /package/dist/chunks/{chunk-HJ4XM6MB.js.map → chunk-RWDKJ24D.js.map} +0 -0
- /package/dist/chunks/{chunk-PA57O4FH.js.map → chunk-RZKN534S.js.map} +0 -0
- /package/dist/chunks/{chunk-VTJO5VCB.js.map → chunk-ZHJNWM6A.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-event-payload.d.ts","sourceRoot":"","sources":["../../src/actors/host-event-payload.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"host-event-payload.d.ts","sourceRoot":"","sources":["../../src/actors/host-event-payload.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,UAAU,8BAA8B;IACtC,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,KAAK,EAAE,8BAA8B,EAAE,CAAC;CACzC;AAoCD,eAAO,MAAM,6BAA6B,GACxC,OAAO,OAAO,EACd,UAAU,MAAM,KACf,8BAqEF,CAAC"}
|
package/dist/agents/request.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { AgentRunRequest } from "./types.js";
|
|
2
|
+
import { type FabricModelAliases } from "../core/model-resolution.js";
|
|
2
3
|
export declare const normalizeAgentRunRequest: (args: Record<string, unknown>, defaults: {
|
|
3
4
|
runner: NonNullable<AgentRunRequest["runner"]>;
|
|
4
5
|
model?: string;
|
|
@@ -7,6 +8,9 @@ export declare const normalizeAgentRunRequest: (args: Record<string, unknown>, d
|
|
|
7
8
|
provider: string;
|
|
8
9
|
id: string;
|
|
9
10
|
};
|
|
11
|
+
models?: {
|
|
12
|
+
aliases?: FabricModelAliases;
|
|
13
|
+
};
|
|
10
14
|
}, options?: {
|
|
11
15
|
allowCwd?: boolean;
|
|
12
16
|
}) => AgentRunRequest;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/agents/request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/agents/request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAQrF,eAAO,MAAM,wBAAwB,GACnC,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,UAAU;IAAC,MAAM,EAAE,WAAW,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAC,CAAC;IAAC,MAAM,CAAC,EAAE;QAAC,OAAO,CAAC,EAAE,kBAAkB,CAAA;KAAC,CAAA;CAAC,EACvL,UAAS;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAM,KACjC,eAsEF,CAAC"}
|
package/dist/agents.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AGENTS_ACTION_DESCRIPTORS,
|
|
3
3
|
normalizeAgentRunRequest
|
|
4
|
-
} from "./chunks/chunk-
|
|
4
|
+
} from "./chunks/chunk-BYOGRJME.js";
|
|
5
5
|
import {
|
|
6
6
|
validateAgentResult
|
|
7
7
|
} from "./chunks/chunk-3QECYQGA.js";
|
|
@@ -18,6 +18,7 @@ import {
|
|
|
18
18
|
waitForAgent
|
|
19
19
|
} from "./chunks/chunk-AYBIR4YV.js";
|
|
20
20
|
import "./chunks/chunk-OTCASLY2.js";
|
|
21
|
+
import "./chunks/chunk-KI277YNS.js";
|
|
21
22
|
import "./chunks/chunk-MGWQOKBV.js";
|
|
22
23
|
import "./chunks/chunk-3H7SDWZI.js";
|
|
23
24
|
|
package/dist/agents.js.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/agents/service-schema.ts", "../src/agents/service.ts", "../src/agents/service-provider.ts", "../src/agents.ts"],
|
|
4
4
|
"sourcesContent": ["import { Value } from \"typebox/value\";\nimport { AGENTS_ACTION_DESCRIPTORS } from \"../providers/agents-actions.js\";\nimport { actionArgNormalizer } from \"../providers/arg-normalization.js\";\nimport type { FabricActionDescriptor } from \"../protocol.js\";\nimport { assertAgentTask } from \"./lifecycle.js\";\nimport { normalizeAgentRunRequest } from \"./request.js\";\nimport type { AgentServiceAction, AgentServiceCapabilities, AgentServiceRequest } from \"./service-types.js\";\n\nconst native = (name: string): FabricActionDescriptor => {\n const descriptor = AGENTS_ACTION_DESCRIPTORS.find((entry) => entry.name === name);\n if (!descriptor) throw new Error(`Missing native agent descriptor: ${name}`);\n return structuredClone(descriptor);\n};\nconst run = native(\"run\");\nconst properties = { ...(run.inputSchema as {properties: Record<string, unknown>}).properties };\nfor (const key of [\"transport\", \"persona\"]) delete properties[key];\nObject.assign(properties, {\n runner: {type: \"string\", enum: [\"pi\"]},\n kernel: {type: \"string\", enum: [\"typescript\", \"inherit\"]},\n extensions: {type: \"boolean\", const: true},\n worktree: {type: \"boolean\", const: false},\n timeoutMs: {type: \"number\", minimum: 1},\n cwd: {type: \"string\", description: \"Host-authorized placement selector; never resolved by Fabric\"},\n images: {type: \"array\", items: {type: \"object\", properties: {type: {const: \"image\"}, data: {type: \"string\"}, mimeType: {type: \"string\"}}, required: [\"type\", \"data\", \"mimeType\"], additionalProperties: false}},\n systemPrompt: {type: \"string\"},\n});\nconst runSchema = {type: \"object\", properties, required: [\"task\"], additionalProperties: false};\nconst spawnSchema = {type: \"object\", properties: {...properties, residency: {type: \"string\", enum: [\"session\", \"durable\"]}}, required: [\"task\"], additionalProperties: false};\nconst id = {type: \"string\", minLength: 1};\nconst object = (properties: Record<string, unknown>, required: string[] = []): Record<string, unknown> => ({type: \"object\", properties, required, additionalProperties: false});\n\nexport function agentServiceDescriptors(capabilities: AgentServiceCapabilities = {}): FabricActionDescriptor[] {\n const descriptors: FabricActionDescriptor[] = [\n {...run, description: \"Run one host-authorized Pi child and wait for its result or pause\", inputSchema: runSchema},\n {...native(\"spawn\"), description: \"Admit one host-authorized Pi child, or residency durable for an independent host worker\", inputSchema: spawnSchema},\n ...[\"wait\", \"join\", \"status\", \"stop\"].map((name) => ({...native(name), inputSchema: object({id}, [\"id\"])})),\n {...native(\"list\"), description: \"List only the authenticated caller's direct children\", inputSchema: object({})},\n ];\n if (capabilities.steer) descriptors.push({...native(\"steer\"), inputSchema: object({id, message: {type: \"string\", minLength: 1}}, [\"id\", \"message\"])});\n if (capabilities.followUp) descriptors.push({...native(\"followUp\"), inputSchema: object({id, message: {type: \"string\", minLength: 1}}, [\"id\", \"message\"])});\n if (capabilities.compact) descriptors.push({...native(\"compact\"), inputSchema: object({id, instructions: {type: \"string\"}}, [\"id\"])});\n if (capabilities.resume) descriptors.push({name: \"resume\", description: \"Continue a paused, completed or failed direct child from its host checkpoint and wait for result or pause\", risk: \"agent\", inputSchema: object({id, task: {type: \"string\", minLength: 1}}, [\"id\"])});\n if (capabilities.topology) {\n descriptors.push(\n {...native(\"sessions\"), inputSchema: object({})},\n {...native(\"peers\"), inputSchema: object({})},\n {...native(\"self\"), inputSchema: object({})},\n {...native(\"members\"), inputSchema: object({})},\n {...native(\"create\"), description: \"Create a lasting session peer in this project\", inputSchema: object({name: {type: \"string\", minLength: 1}, instructions: {type: \"string\"}, task: {type: \"string\"}}, [\"name\"])},\n {...native(\"remove\"), description: \"Stop and remove a lasting session peer created in this project\", inputSchema: object({id: {type: \"string\", minLength: 1}, name: {type: \"string\"}}, [\"id\"])},\n );\n }\n return descriptors;\n}\n\nconst descriptors = agentServiceDescriptors({steer: true, compact: true, resume: true});\nconst normalize = actionArgNormalizer(() => descriptors);\nexport function agentServiceArgs(action: AgentServiceAction, input: Record<string, unknown>): Record<string, unknown> {\n const descriptor = descriptors.find((entry) => entry.name === action);\n if (!descriptor) throw new Error(`Unsupported hosted agents action: ${action}`);\n const args = normalize(action, input);\n if (!Value.Check(descriptor.inputSchema, args)) {\n const reasons = [...Value.Errors(descriptor.inputSchema, args)].slice(0, 5).map((error) => `${error.instancePath}: ${error.message}`);\n throw new Error(`Invalid hosted agents.${action} arguments: ${reasons.join(\"; \")}`);\n }\n return args;\n}\n\nexport function normalizeAgentServiceRequest(input: AgentServiceRequest): AgentServiceRequest {\n const {residency, ...rest} = input;\n const args = agentServiceArgs(\"run\", rest as unknown as Record<string, unknown>);\n const request = normalizeAgentRunRequest(args, {runner: \"pi\", timeoutMs: 0}) as AgentServiceRequest;\n if (args.images !== undefined) request.images = structuredClone(args.images) as NonNullable<AgentServiceRequest[\"images\"]>;\n if (args.systemPrompt !== undefined) request.systemPrompt = args.systemPrompt as string;\n if (residency === \"session\" || residency === \"durable\") request.residency = residency;\n assertAgentTask(request);\n return structuredClone(request);\n}\n", "import { AgentAdmission, beginAgentSettlement, createAgentLifecycle, finishAgentSettlement, terminalAgentStatuses, waitForAgent, type AgentLifecycleState } from \"./lifecycle.js\";\nimport { validateAgentResult } from \"./result.js\";\nimport { normalizeAgentServiceRequest } from \"./service-schema.js\";\nimport type { AgentAuthorityBoundary, AgentPublicRecord, AgentControlRequest, AgentExecutionEvent, AgentExecutionResponse, AgentServiceCapabilities, AgentServiceEvent, AgentServiceOptions, AgentServiceRecord, AgentServiceRequest, AgentSessionRecord, AgentServiceSnapshot } from \"./service-types.js\";\n\ntype Entry = {\n request: AgentServiceRequest;\n record: AgentServiceRecord;\n lifecycle: AgentLifecycleState<AgentServiceRecord>;\n controller: AbortController;\n done?: Promise<void>;\n stopping?: Promise<AgentPublicRecord>;\n resuming?: boolean;\n stopAck?: Promise<void>;\n pauseAck?: Promise<void>;\n suspendRequested?: boolean;\n executing?: boolean;\n stopReason?: \"stop\" | \"close\";\n controls?: Set<Promise<unknown>>;\n};\nconst copy = <T>(value: T): T => structuredClone(value);\nconst publicRecord = (record: AgentServiceRecord): AgentPublicRecord => {\n const keys = [\"id\", \"rootId\", \"parentId\", \"depth\", \"generation\", \"name\", \"task\", \"status\", \"runner\", \"kernel\", \"cwd\", \"model\", \"thinking\", \"recursive\", \"startedAt\", \"updatedAt\", \"finishedAt\", \"currentTool\", \"turns\", \"toolCalls\", \"text\", \"value\", \"error\", \"usage\", \"sessionId\"] as const;\n return copy(Object.fromEntries(keys.filter((key) => record[key] !== undefined).map((key) => [key, record[key]]))) as AgentPublicRecord;\n};\nconst errorText = (error: unknown): string => error instanceof Error ? error.message : String(error);\nconst idle = (): AgentLifecycleState<AgentServiceRecord> => ({settled: true, result: undefined, resolve: undefined, release() {}, abortSignal: undefined, abortHandler: undefined});\n\n/** Portable one-shot agent authority. The execution port runs one participant, never a tree. */\nexport class AgentService {\n readonly #options: AgentServiceOptions;\n readonly #entries = new Map<string, Entry>();\n readonly #admission: AgentAdmission;\n readonly #pending = new Map<AbortController, Promise<unknown>>();\n readonly #closing = new AbortController();\n #close: Promise<void> | undefined;\n #suspend: Promise<void> | undefined;\n #suspended = false;\n #sequence = 0;\n #publication: Promise<void> = Promise.resolve();\n readonly capabilities: AgentServiceCapabilities;\n\n constructor(options: AgentServiceOptions) {\n if (!options.rootId) throw new Error(\"Agent service requires a trusted rootId\");\n for (const [key, value] of Object.entries({maxStarts: options.maxStarts ?? 8, maxDepth: options.maxDepth ?? 3, maxConcurrent: options.maxConcurrent ?? 4})) {\n if (!Number.isSafeInteger(value) || value < 1) throw new Error(`${key} must be a positive integer`);\n }\n this.#options = {...options, port: options.port};\n this.#admission = new AgentAdmission(options.maxConcurrent ?? 4, options.maxStarts ?? 8, options.maxDepth ?? 3);\n this.capabilities = Object.freeze({\n steer: Boolean(options.port.steer || options.topology),\n compact: Boolean(options.port.compact),\n resume: Boolean(options.port.resume),\n followUp: Boolean(options.port.followUp || options.topology),\n topology: Boolean(options.topology),\n });\n if (options.snapshot) this.#restore(options.snapshot);\n }\n\n snapshot(): AgentServiceSnapshot {\n return copy({version: 1, rootId: this.#options.rootId, starts: this.#admission.starts, sequence: this.#sequence,\n records: [...this.#entries.values()].map(({request, record}) => ({request, record}))});\n }\n\n async run(callerId: string, request: AgentServiceRequest, signal?: AbortSignal): Promise<AgentPublicRecord> {\n const handle = await this.spawn(callerId, request, signal);\n return this.wait(callerId, handle.id, signal);\n }\n\n async spawn(callerId: string, request: AgentServiceRequest, signal?: AbortSignal): Promise<AgentPublicRecord | AgentSessionRecord> {\n const normalized = normalizeAgentServiceRequest(request);\n if (normalized.residency === \"durable\") {\n await this.#authorize(callerId);\n const dispatch = this.#topology().dispatch;\n if (!dispatch) throw new Error(\"Durable hosted spawn is unavailable\");\n const record = await dispatch({callerId, request: normalized, ...(signal ? {signal} : {})});\n await this.#authorize(callerId);\n return copy(record);\n }\n return this.#start(callerId, normalized, undefined, signal);\n }\n\n async wait(callerId: string, id: string, signal?: AbortSignal): Promise<AgentPublicRecord> {\n await this.#authorize(callerId);\n const entry = this.#child(callerId, id);\n const result = entry.lifecycle.result ?? Promise.resolve(copy(entry.record));\n const record = await waitForAgent(result, signal);\n await this.#authorize(callerId);\n return publicRecord(record);\n }\n\n /** Alias for wait; authorization and cancellation semantics are identical. */\n join(callerId: string, id: string, signal?: AbortSignal): Promise<AgentPublicRecord> {\n return this.wait(callerId, id, signal);\n }\n\n async status(callerId: string, id: string): Promise<AgentPublicRecord> {\n await this.#authorize(callerId);\n return publicRecord(this.#child(callerId, id).record);\n }\n\n async list(callerId: string): Promise<AgentPublicRecord[]> {\n await this.#authorize(callerId);\n return [...this.#entries.values()].filter((entry) => entry.record.parentId === callerId).map((entry) => publicRecord(entry.record));\n }\n\n async stop(callerId: string, id: string): Promise<AgentPublicRecord> {\n await this.#authorize(callerId);\n const result = await this.#stop(this.#child(callerId, id));\n await this.#authorize(callerId);\n return publicRecord(result);\n }\n\n async steer(callerId: string, id: string, message: string): Promise<AgentPublicRecord | AgentSessionRecord> {\n if (!message.trim()) throw new Error(\"Steering message must not be empty\");\n const child = this.#ownedChild(callerId, id);\n if (child) {\n if (!this.#options.port.steer) throw new Error(\"Hosted agents.steer is unsupported\");\n return this.#control(callerId, child.record.id, \"steer\", (request) => this.#options.port.steer!({...request, message}));\n }\n return this.#deliver(callerId, id, \"steer\", message);\n }\n\n async followUp(callerId: string, id: string, message: string): Promise<AgentPublicRecord | AgentSessionRecord> {\n if (!message.trim()) throw new Error(\"Follow-up message must not be empty\");\n const child = this.#ownedChild(callerId, id);\n if (child) {\n if (!this.#options.port.followUp) throw new Error(\"Hosted agents.followUp is unsupported\");\n if (child.record.status === \"running\" && !child.stopping) {\n return this.#control(callerId, child.record.id, \"followUp\", (request) => this.#options.port.followUp!({...request, message}));\n }\n await this.#authorize(callerId);\n await this.#options.port.followUp({...this.#identity(child), message});\n await this.#authorize(callerId);\n return publicRecord(child.record);\n }\n return this.#deliver(callerId, id, \"followUp\", message);\n }\n\n async sessions(callerId: string): Promise<AgentSessionRecord[]> {\n await this.#authorize(callerId);\n return copy(await this.#topology().sessions());\n }\n\n async peers(callerId: string): Promise<AgentSessionRecord[]> {\n await this.#authorize(callerId);\n return copy(await this.#topology().peers(callerId));\n }\n\n async self(callerId: string): Promise<AgentSessionRecord> {\n await this.#authorize(callerId);\n if (this.#options.topology) return copy(await this.#options.topology.self(callerId));\n const child = callerId === this.#options.rootId ? undefined : this.#entries.get(callerId);\n return {\n id: callerId,\n name: child?.record.name ?? \"main\",\n kind: callerId === this.#options.rootId ? \"root\" : \"agent\",\n status: child?.record.status ?? \"running\",\n capabilities: callerId === this.#options.rootId ? [\"steer\", \"followUp\", \"stop\"] : [\"steer\", \"followUp\", \"stop\"],\n };\n }\n\n async create(callerId: string, request: { name: string; instructions?: string; task?: string }, signal?: AbortSignal): Promise<AgentSessionRecord> {\n if (!request.name.trim()) throw new Error(\"Peer name is required\");\n await this.#authorize(callerId);\n const create = this.#topology().create;\n if (!create) throw new Error(\"Hosted agents.create is unavailable\");\n const record = await create({callerId, name: request.name.trim(), ...(request.instructions ? {instructions: request.instructions} : {}), ...(request.task ? {task: request.task} : {}), ...(signal ? {signal} : {})});\n await this.#authorize(callerId);\n return copy(record);\n }\n\n async remove(callerId: string, id: string, name?: string, signal?: AbortSignal): Promise<AgentSessionRecord> {\n if (!id.trim()) throw new Error(\"Peer id is required\");\n await this.#authorize(callerId);\n const remove = this.#topology().remove;\n if (!remove) throw new Error(\"Hosted agents.remove is unavailable\");\n const record = await remove({callerId, id, ...(name ? {name} : {}), ...(signal ? {signal} : {})});\n await this.#authorize(callerId);\n return copy(record);\n }\n\n async members(callerId: string): Promise<AgentSessionRecord[]> {\n await this.#authorize(callerId);\n const sessions = this.#options.topology ? copy(await this.#options.topology.sessions()) : [];\n const seen = new Set(sessions.map((item) => item.id));\n const children: AgentSessionRecord[] = [];\n for (const entry of this.#entries.values()) {\n if (seen.has(entry.record.id)) continue;\n children.push({\n id: entry.record.id,\n name: entry.record.name,\n kind: \"agent\",\n status: entry.record.status,\n capabilities: [\"steer\", \"followUp\", \"stop\"],\n });\n }\n return [...sessions, ...children];\n }\n\n async compact(callerId: string, id: string, instructions?: string): Promise<AgentPublicRecord> {\n if (!this.#options.port.compact) throw new Error(\"Hosted agents.compact is unsupported\");\n return this.#control(callerId, id, \"compact\", (request) => this.#options.port.compact!({...request, ...(instructions !== undefined ? {instructions} : {})}));\n }\n\n async resume(callerId: string, id: string, task?: string, signal?: AbortSignal): Promise<AgentPublicRecord> {\n if (!this.#options.port.resume) throw new Error(\"Hosted agents.resume is unsupported\");\n await this.#authorize(callerId);\n const entry = this.#child(callerId, id);\n if (![\"paused\", \"completed\", \"failed\"].includes(entry.record.status) || !entry.lifecycle.settled || entry.resuming || entry.stopping) throw new Error(\"Only an idle paused, completed or failed agent can resume\");\n entry.resuming = true;\n try {\n const request = normalizeAgentServiceRequest({...entry.request, ...(task !== undefined ? {task} : {})});\n await this.#start(callerId, request, entry, signal);\n return await this.wait(callerId, id, signal);\n } finally { entry.resuming = false; }\n }\n\n /** Natural root completion waits for all background descendants without fencing live parents. */\n async drain(): Promise<void> {\n for (;;) {\n const work: Promise<unknown>[] = [...this.#pending.values()];\n for (const entry of this.#entries.values()) {\n if (entry.lifecycle.result && entry.done) work.push(entry.done);\n }\n if (work.length === 0) return;\n await Promise.allSettled(work);\n }\n }\n\n /** Host-only graceful pause. The port, not the owner signal, quiesces participant effects. */\n suspend(): Promise<void> {\n if (this.#suspend) return this.#suspend;\n if (this.#closing.signal.aborted) return Promise.reject(new Error(\"Agent service is closed\"));\n if (!this.#options.port.pause && [...this.#entries.values()].some((entry) => !entry.lifecycle.settled)) {\n return Promise.reject(new Error(\"Hosted agent suspension requires port.pause\"));\n }\n this.#suspended = true;\n for (const entry of this.#entries.values()) {\n if (!entry.lifecycle.settled && !terminalAgentStatuses.has(entry.record.status)) entry.suspendRequested = true;\n }\n for (const controller of this.#pending.keys()) controller.abort();\n this.#suspend = (async () => {\n const roots = [...this.#entries.values()].filter((entry) => entry.record.parentId === this.#options.rootId);\n const paused = await Promise.allSettled(roots.map((entry) => this.#pause(entry)));\n await Promise.allSettled([...this.#pending.values()]);\n const errors = paused.filter((result): result is PromiseRejectedResult => result.status === \"rejected\");\n if (errors.length) throw new AggregateError(errors.map((result) => result.reason), \"Agent suspension failed\");\n await this.drain();\n })();\n return this.#suspend;\n }\n\n async #pause(entry: Entry): Promise<void> {\n const children = [...this.#entries.values()].filter((child) => child.record.parentId === entry.record.id);\n const paused = await Promise.allSettled(children.map((child) => this.#pause(child)));\n const errors = paused.filter((result): result is PromiseRejectedResult => result.status === \"rejected\").map((result) => result.reason);\n if (errors.length) throw new AggregateError(errors, \"Agent descendant suspension failed\");\n if (entry.executing && !entry.stopping) {\n entry.pauseAck = Promise.resolve().then(async () => {\n if (entry.executing && !entry.stopping) await this.#options.port.pause!(this.#identity(entry));\n });\n try { await entry.pauseAck; }\n catch (error) { throw new AggregateError([...errors, error], \"Agent pause acknowledgment failed\"); }\n }\n await entry.done;\n }\n\n close(): Promise<void> {\n if (this.#close) return this.#close;\n this.#closing.abort();\n for (const controller of this.#pending.keys()) controller.abort();\n this.#close = (async () => {\n const errors: unknown[] = [];\n const stopped = await Promise.allSettled([...this.#entries.values()].map((entry) => this.#stop(entry, true)));\n for (const result of stopped) if (result.status === \"rejected\") errors.push(result.reason);\n await Promise.allSettled([...this.#pending.values()]);\n if (errors.length) throw new AggregateError(errors, \"Agent shutdown failed\");\n })();\n return this.#close;\n }\n\n #start(callerId: string, request: AgentServiceRequest, previous?: Entry, signal?: AbortSignal): Promise<AgentPublicRecord> {\n const controller = new AbortController();\n const abort = () => controller.abort();\n signal?.addEventListener(\"abort\", abort, {once: true});\n if (signal?.aborted || this.#closing.signal.aborted || this.#suspended) controller.abort();\n const operation = (async () => {\n let release: (() => void) | undefined;\n try {\n await this.#authorize(callerId);\n const depth = this.#depth(callerId);\n if (controller.signal.aborted) throw new Error(\"Operation aborted\");\n if (depth > this.#admission.maxDepth) throw new Error(`Fabric agent depth limit reached (${this.#admission.maxDepth})`);\n const id = previous?.record.id ?? crypto.randomUUID().replaceAll(\"-\", \"\");\n const generation = (previous?.record.generation ?? 0) + 1;\n const prepare = {id, generation, rootId: this.#options.rootId, parentId: callerId, depth, request: copy(request), signal: controller.signal};\n const binding = await this.#options.port.prepare?.(prepare);\n release = await this.#admission.acquire(callerId, controller.signal);\n await this.#authorize(callerId);\n this.#depth(callerId);\n if (controller.signal.aborted || this.#closing.signal.aborted || previous?.stopping) throw new Error(\"Agent admission aborted\");\n // No await between the final authority/parent check and the root-wide charge.\n this.#admission.admit(depth);\n const now = Date.now();\n const record: AgentServiceRecord = previous ? {\n ...previous.record, task: request.task, status: \"queued\", generation: previous.record.generation + 1,\n text: \"\", turns: 0, toolCalls: 0, updatedAt: now,\n } : {\n id, rootId: this.#options.rootId, parentId: callerId, depth, generation: 1,\n name: (request.name ?? request.task.split(\"\\n\", 1)[0] ?? \"Fabric agent\").replace(/[\\r\\n\\t]+/g, \" \").trim().slice(0, 60) || \"Fabric agent\",\n task: request.task, status: \"queued\", runner: \"pi\", kernel: \"typescript\", startedAt: now, updatedAt: now,\n turns: 0, toolCalls: 0, text: \"\", usage: {input: 0, output: 0, cacheRead: 0, cacheWrite: 0, cost: 0},\n ...(request.model ? {model: request.model} : {}), ...(request.thinking ? {thinking: request.thinking} : {}),\n ...(request.cwd !== undefined ? {cwd: request.cwd} : {}), ...(request.recursive !== undefined ? {recursive: request.recursive} : {}),\n };\n delete record.finishedAt; delete record.error; delete record.value; delete record.currentTool;\n const entry: Entry = previous ?? {request, record, lifecycle: idle(), controller};\n entry.request = copy(request); entry.record = record; entry.controller = controller;\n entry.lifecycle = createAgentLifecycle<AgentServiceRecord>(release);\n release = undefined;\n this.#entries.set(record.id, entry);\n this.#pending.delete(controller);\n // Admission cancellation detaches here. Background execution has a distinct owner signal.\n signal?.removeEventListener(\"abort\", abort);\n let acknowledge!: () => void;\n const admitted = new Promise<void>((resolve) => { acknowledge = resolve; });\n entry.done = this.#drive(entry, binding, Boolean(previous), acknowledge);\n await admitted;\n await this.#authorize(callerId);\n return publicRecord(record);\n } finally {\n release?.();\n signal?.removeEventListener(\"abort\", abort);\n }\n })();\n this.#pending.set(controller, operation);\n void operation.finally(() => this.#pending.delete(controller)).catch(() => {});\n return operation;\n }\n\n async #drive(entry: Entry, binding: unknown, resume: boolean, admitted: () => void): Promise<void> {\n const generation = entry.record.generation;\n let timer: ReturnType<typeof setTimeout> | undefined;\n let timeout = false;\n let responded = false;\n try {\n await this.#publish(\"admitted\", entry);\n admitted();\n await this.#authorize(entry.record.parentId);\n if (entry.controller.signal.aborted) throw new Error(\"Agent start aborted\");\n entry.record.status = \"running\";\n await this.#publish(\"running\", entry);\n await this.#authorize(entry.record.parentId);\n if (entry.controller.signal.aborted) throw new Error(\"Agent start aborted\");\n const request = {\n ...this.#identity(entry), depth: entry.record.depth, request: copy(entry.request), signal: entry.controller.signal,\n binding, ...(entry.record.checkpoint !== undefined ? {checkpoint: copy(entry.record.checkpoint)} : {}),\n emit: async (event: AgentExecutionEvent) => {\n const assertCurrent = () => {\n if (!entry.executing || entry.lifecycle.settled || entry.controller.signal.aborted || entry.record.generation !== generation || entry.record.status !== \"running\") throw new Error(\"Stale agent execution event\");\n };\n assertCurrent();\n if (event.type !== \"checkpoint\" && event.type !== \"progress\") throw new Error(\"Unsupported agent execution event\");\n const saved = copy(event);\n await this.#publish(saved.type, entry, undefined, () => {\n if (saved.type === \"checkpoint\") entry.record.checkpoint = saved.checkpoint;\n else {\n for (const key of [\"text\", \"turns\", \"toolCalls\", \"currentTool\", \"usage\"] as const) {\n if (saved[key] !== undefined) Object.assign(entry.record, {[key]: saved[key]});\n }\n }\n }, assertCurrent);\n },\n };\n if (entry.request.timeoutMs) timer = setTimeout(() => {\n if (entry.suspendRequested) return;\n timeout = true;\n void this.#stop(entry).catch(() => {});\n }, entry.request.timeoutMs);\n const execute = resume ? this.#options.port.resume! : this.#options.port.execute;\n entry.executing = true;\n let response: AgentExecutionResponse;\n try { response = await execute.call(this.#options.port, request); }\n finally { entry.executing = false; }\n if (![\"completed\", \"failed\", \"stopped\", \"timed_out\", \"paused\"].includes(response.status)) throw new Error(\"Invalid agent execution response status\");\n await this.#authorize(entry.record.parentId, response.status === \"paused\" ? {checkpoint: true} : undefined);\n if (entry.record.generation !== generation || entry.lifecycle.settled) throw new Error(\"Stale agent execution response\");\n this.#applyResponse(entry, response);\n responded = true;\n } catch (error) {\n entry.record.status = \"failed\";\n entry.record.error = errorText(error);\n } finally {\n admitted();\n if (timer) clearTimeout(timer);\n await Promise.allSettled([...(entry.controls ?? []), ...(entry.stopAck ? [entry.stopAck] : []), ...(entry.pauseAck ? [entry.pauseAck] : [])]);\n if (entry.suspendRequested && !entry.controller.signal.aborted) {\n entry.record.status = \"paused\"; delete entry.record.error; delete entry.record.finishedAt;\n }\n if (entry.controller.signal.aborted) {\n if (entry.stopReason === \"close\") {\n if (!responded || ![\"completed\", \"failed\"].includes(entry.record.status)) { entry.record.status = \"paused\"; delete entry.record.error; }\n } else entry.record.status = timeout ? \"timed_out\" : \"stopped\";\n }\n try { await this.#options.port.cleanup?.(this.#identity(entry)); }\n catch (error) { entry.record.status = \"failed\"; entry.record.error = `Agent cleanup failed: ${errorText(error)}`; }\n validateAgentResult(entry.record, entry.request.schema);\n delete entry.record.currentTool;\n if (terminalAgentStatuses.has(entry.record.status)) entry.record.finishedAt = Date.now();\n if (beginAgentSettlement(entry.lifecycle)) {\n try { await this.#publish(\"settled\", entry); }\n catch (error) { entry.record.status = \"failed\"; entry.record.error = `Agent publication failed: ${errorText(error)}`; }\n finishAgentSettlement(entry.lifecycle, copy(entry.record));\n }\n }\n }\n\n #applyResponse(entry: Entry, response: AgentExecutionResponse): void {\n // Port output cannot overwrite host-owned identifiers, lineage or admission metadata.\n entry.record.status = response.status;\n for (const key of [\"text\", \"value\", \"error\", \"usage\", \"checkpoint\", \"sessionId\"] as const) {\n if (response[key] !== undefined) Object.assign(entry.record, {[key]: copy(response[key])});\n }\n }\n\n #stop(entry: Entry, preservePaused = false): Promise<AgentPublicRecord> {\n if (entry.stopping) return entry.stopping;\n entry.stopReason = preservePaused ? \"close\" : \"stop\";\n const work = (async () => {\n const active = !entry.lifecycle.settled;\n entry.controller.abort();\n const descendants = [...this.#entries.values()].filter((child) => child.record.parentId === entry.record.id);\n const operations: Promise<unknown>[] = descendants.map((child) => this.#stop(child, preservePaused));\n if (active && this.#options.port.stop) {\n entry.stopAck = Promise.resolve().then(() => this.#options.port.stop!(this.#identity(entry)));\n operations.push(entry.stopAck);\n }\n if (entry.done) operations.push(entry.done);\n const settled = await Promise.allSettled(operations);\n if (entry.record.status === \"paused\" && !preservePaused) {\n entry.record.status = \"stopped\"; entry.record.finishedAt = Date.now();\n await this.#publish(\"settled\", entry);\n }\n const errors = settled.filter((result): result is PromiseRejectedResult => result.status === \"rejected\");\n if (errors.length) throw new AggregateError(errors.map((result) => result.reason), \"Agent stop failed\");\n return publicRecord(entry.record);\n })();\n entry.stopping = work;\n return work;\n }\n\n async #control(callerId: string, id: string, control: \"steer\" | \"compact\" | \"followUp\", invoke: (request: AgentControlRequest) => Promise<void>): Promise<AgentPublicRecord> {\n await this.#authorize(callerId);\n const entry = this.#child(callerId, id);\n if (entry.record.status !== \"running\" || entry.stopping) throw new Error(\"Agent is not running\");\n const generation = entry.record.generation;\n const pending = Promise.resolve().then(async () => {\n await this.#authorize(callerId);\n if (entry.record.generation !== generation || entry.controller.signal.aborted || entry.lifecycle.settled) throw new Error(\"Stale agent control\");\n await invoke(this.#identity(entry));\n });\n (entry.controls ??= new Set()).add(pending);\n try { await pending; } finally { entry.controls.delete(pending); }\n await this.#authorize(callerId);\n if (entry.record.generation !== generation || entry.controller.signal.aborted) throw new Error(\"Stale agent control acknowledgment\");\n await this.#publish(\"control\", entry, control);\n return publicRecord(entry.record);\n }\n\n #identity(entry: Entry): AgentControlRequest {\n const {id, rootId, parentId, generation} = entry.record;\n return {id, rootId, parentId, generation};\n }\n\n async #authorize(callerId: string, boundary?: AgentAuthorityBoundary): Promise<void> {\n if (callerId !== this.#options.rootId && !this.#entries.has(callerId)) throw new Error(\"Unknown agent caller\");\n if (this.#suspended && !boundary?.checkpoint) throw new Error(\"Agent service is paused\");\n await this.#options.assertAuthority?.(callerId, boundary);\n if (this.#suspended && !boundary?.checkpoint) throw new Error(\"Agent service is paused\");\n }\n\n #child(callerId: string, id: string): Entry {\n const entry = this.#ownedChild(callerId, id);\n if (!entry) throw new Error(`Unknown direct child agent: ${id}`);\n return entry;\n }\n\n #ownedChild(callerId: string, id: string): Entry | undefined {\n const entry = this.#entries.get(id);\n return entry && entry.record.parentId === callerId ? entry : undefined;\n }\n\n #topology(): NonNullable<AgentServiceOptions[\"topology\"]> {\n if (!this.#options.topology) throw new Error(\"Hosted agent topology is unavailable\");\n return this.#options.topology;\n }\n\n async #deliver(callerId: string, id: string, operation: \"steer\" | \"followUp\", message: string): Promise<AgentSessionRecord> {\n const topology = this.#topology();\n await this.#authorize(callerId);\n const target = id === \"main\" ? this.#options.rootId : id;\n const record = await topology.deliver({callerId, id: target, operation, message});\n await this.#authorize(callerId);\n return copy(record);\n }\n\n #depth(callerId: string): number {\n if (this.#closing.signal.aborted) throw new Error(\"Agent service is closed\");\n if (this.#suspended) throw new Error(\"Agent service is paused\");\n if (callerId === this.#options.rootId) return 1;\n const parent = this.#entries.get(callerId);\n if (!parent || parent.record.status !== \"running\" || parent.stopping || parent.controller.signal.aborted || parent.request.recursive === false) throw new Error(\"Agent parent cannot admit children\");\n return parent.record.depth + 1;\n }\n\n async #publish(type: AgentServiceEvent[\"type\"], entry: Entry, control?: AgentServiceEvent[\"control\"], update?: () => void, assertCurrent?: () => void): Promise<void> {\n const boundary = type === \"checkpoint\" || type === \"settled\" ? {checkpoint: true} : undefined;\n const generation = entry.record.generation;\n await this.#authorize(entry.record.parentId, boundary);\n const publication = this.#publication.then(async () => {\n await this.#authorize(entry.record.parentId, boundary);\n if (entry.record.generation !== generation) throw new Error(\"Stale agent publication\");\n assertCurrent?.();\n // Commit event mutations only after serialized, phase-matched lease authorization.\n update?.();\n entry.record.updatedAt = Date.now();\n const event: AgentServiceEvent = {version: 1, sequence: ++this.#sequence, type, record: copy(entry.record), ...(control ? {control} : {})};\n await this.#options.onEvent?.(event);\n });\n this.#publication = publication.catch(() => {});\n await publication;\n }\n\n #restore(snapshot: AgentServiceSnapshot): void {\n const saved = copy(snapshot);\n const newRoot = this.#options.restorePolicy === \"new-root\";\n if (newRoot && saved.rootId !== this.#options.rootId) {\n const oldRoot = saved.rootId;\n saved.rootId = this.#options.rootId;\n for (const {record} of saved.records) {\n if (record.rootId !== oldRoot) throw new Error(\"Invalid agent snapshot root\");\n record.rootId = saved.rootId;\n if (record.parentId === oldRoot) record.parentId = saved.rootId;\n }\n }\n if (saved.version !== 1 || saved.rootId !== this.#options.rootId || !Number.isSafeInteger(saved.starts) || saved.starts < 0 || (!newRoot && saved.starts > this.#admission.maxStarts) || !Number.isSafeInteger(saved.sequence) || saved.sequence < 0 || !Array.isArray(saved.records)) throw new Error(\"Invalid agent service snapshot\");\n let generations = 0;\n for (const item of saved.records) {\n const request = normalizeAgentServiceRequest(item.request);\n const record = item.record;\n if (!record.id || record.id === saved.rootId || this.#entries.has(record.id) || record.rootId !== saved.rootId || !Number.isSafeInteger(record.depth) || record.depth < 1 || record.depth > this.#admission.maxDepth || !Number.isSafeInteger(record.generation) || record.generation < 1 || ![\"queued\", \"running\", \"paused\", ...terminalAgentStatuses].includes(record.status)) throw new Error(\"Invalid agent snapshot record\");\n generations += record.generation;\n if (record.status === \"running\" || record.status === \"queued\") { record.status = \"paused\"; delete record.finishedAt; }\n this.#entries.set(record.id, {request, record, lifecycle: idle(), controller: new AbortController()});\n }\n for (const {record} of this.#entries.values()) {\n const parent = this.#entries.get(record.parentId);\n if (record.parentId === saved.rootId ? record.depth !== 1 : !parent || parent.record.depth + 1 !== record.depth) throw new Error(\"Invalid agent snapshot lineage\");\n }\n if (saved.starts > generations) throw new Error(\"Invalid agent snapshot admission count\");\n this.#admission.starts = newRoot ? 0 : saved.starts;\n this.#sequence = saved.sequence;\n }\n}\n", "import type { FabricProvider } from \"../protocol.js\";\nimport { AgentService } from \"./service.js\";\nimport { agentServiceArgs, agentServiceDescriptors } from \"./service-schema.js\";\nimport type { AgentServiceAction, AgentServiceCapabilities, AgentServiceClient, AgentServiceDispatcher, AgentPublicRecord, AgentServiceRequest, AgentSessionRecord } from \"./service-types.js\";\n\n/** Bind only authenticated host identity here. Guest arguments never carry the caller. */\nexport function createAgentServiceHandler(service: AgentService, callerId: string): AgentServiceDispatcher {\n return async (action, input, signal) => {\n const args = agentServiceArgs(action, input);\n switch (action) {\n case \"run\": return service.run(callerId, args as unknown as AgentServiceRequest, signal);\n case \"spawn\": return service.spawn(callerId, args as unknown as AgentServiceRequest, signal);\n case \"join\":\n case \"wait\": return service.wait(callerId, args.id as string, signal);\n case \"status\": return service.status(callerId, args.id as string);\n case \"list\": return service.list(callerId);\n case \"stop\": return service.stop(callerId, args.id as string);\n case \"steer\": return service.steer(callerId, args.id as string, args.message as string);\n case \"followUp\": return service.followUp(callerId, args.id as string, args.message as string);\n case \"compact\": return service.compact(callerId, args.id as string, args.instructions as string | undefined);\n case \"resume\": return service.resume(callerId, args.id as string, args.task as string | undefined, signal);\n case \"sessions\": return service.sessions(callerId);\n case \"peers\": return service.peers(callerId);\n case \"self\": return service.self(callerId);\n case \"members\": return service.members(callerId);\n case \"create\": return service.create(callerId, args as {name: string; instructions?: string; task?: string}, signal);\n case \"remove\": return service.remove(callerId, args.id as string, args.name as string | undefined, signal);\n default: throw new Error(`Unsupported hosted agents action: ${String(action)}`);\n }\n };\n}\n\n/** A transport client only; all admission and lifecycle remain in the root service. */\nexport function createAgentServiceClient(dispatch: AgentServiceDispatcher, capabilities: AgentServiceCapabilities = {}): AgentServiceClient {\n const record = (action: AgentServiceAction, args: Record<string, unknown>, signal?: AbortSignal) => dispatch(action, args, signal) as Promise<AgentPublicRecord>;\n return {\n capabilities: Object.freeze({...capabilities}), dispatch,\n run: (request, signal) => record(\"run\", request as unknown as Record<string, unknown>, signal),\n spawn: (request, signal) => record(\"spawn\", request as unknown as Record<string, unknown>, signal),\n wait: (id, signal) => record(\"wait\", {id}, signal),\n join: (id, signal) => record(\"wait\", {id}, signal),\n status: (id) => record(\"status\", {id}),\n list: () => dispatch(\"list\", {}) as Promise<AgentPublicRecord[]>,\n stop: (id) => record(\"stop\", {id}),\n steer: (id, message) => record(\"steer\", {id, message}),\n compact: (id, instructions) => record(\"compact\", {id, ...(instructions !== undefined ? {instructions} : {})}),\n resume: (id, task, signal) => record(\"resume\", {id, ...(task !== undefined ? {task} : {})}, signal),\n followUp: (id, message) => record(\"followUp\", {id, message}),\n sessions: () => dispatch(\"sessions\", {}) as Promise<AgentSessionRecord[]>,\n peers: () => dispatch(\"peers\", {}) as Promise<AgentSessionRecord[]>,\n self: () => dispatch(\"self\", {}) as Promise<AgentSessionRecord>,\n members: () => dispatch(\"members\", {}) as Promise<AgentSessionRecord[]>,\n create: (request, signal) => dispatch(\"create\", request as unknown as Record<string, unknown>, signal) as Promise<AgentSessionRecord>,\n remove: (id, name, signal) => dispatch(\"remove\", {id, ...(name !== undefined ? {name} : {})}, signal) as Promise<AgentSessionRecord>,\n };\n}\n\nexport function createAgentsProvider(client: AgentServiceClient): FabricProvider {\n const descriptors = agentServiceDescriptors(client.capabilities);\n const allowed = new Set(descriptors.map((descriptor) => descriptor.name));\n const validate = (action: string, args: Record<string, unknown>) => {\n if (!allowed.has(action)) throw new Error(`Unsupported hosted agents action: ${action}`);\n return agentServiceArgs(action as AgentServiceAction, args);\n };\n return {\n name: \"agents\", description: \"Fabric host-authorized Pi agents\",\n list: async () => structuredClone(descriptors),\n describe: async (name) => structuredClone(descriptors.find((descriptor) => descriptor.name === name)),\n prepareArguments: (action, args) => validate(action, args),\n invoke: async (action, args, context) => client.dispatch(action as AgentServiceAction, validate(action, args), context.signal),\n };\n}\n", "/** Portable hosted agents: no local manager, filesystem, model registry or ambient configuration. */\nexport { AgentService } from \"./agents/service.js\";\nexport { createAgentsProvider, createAgentServiceClient, createAgentServiceHandler } from \"./agents/service-provider.js\";\nexport { agentServiceDescriptors } from \"./agents/service-schema.js\";\nexport type * from \"./agents/service-types.js\";\nexport type { AgentRunRequest, AgentRunRecord, AgentRunResult, AgentHandleInfo, AgentUsage } from \"./agents/types.js\";\nexport const HOSTED_AGENTS_PROTOCOL_VERSION = 1 as const;\n"],
|
|
5
|
-
"mappings": "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",
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["properties", "descriptors", "id", "id", "descriptors"]
|
|
7
7
|
}
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
MAX_AGENT_TIMEOUT_MS,
|
|
31
31
|
MIN_AGENT_TIMEOUT_MS,
|
|
32
32
|
quarantineDamagedFile
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-G7UJLM33.js";
|
|
34
34
|
import {
|
|
35
35
|
ownedStat,
|
|
36
36
|
processAlive
|
|
@@ -6962,4 +6962,4 @@ export {
|
|
|
6962
6962
|
agentParticipantRecords,
|
|
6963
6963
|
actorParticipantRecord
|
|
6964
6964
|
};
|
|
6965
|
-
//# sourceMappingURL=chunk-
|
|
6965
|
+
//# sourceMappingURL=chunk-5IZFVA3H.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
writeJsonAtomic
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-G7UJLM33.js";
|
|
4
4
|
import {
|
|
5
5
|
stableJsonHash
|
|
6
6
|
} from "./chunk-3YZUQESG.js";
|
|
@@ -131,4 +131,4 @@ export {
|
|
|
131
131
|
FabricComponentConfiguration,
|
|
132
132
|
watchComponentConfiguration
|
|
133
133
|
};
|
|
134
|
-
//# sourceMappingURL=chunk-
|
|
134
|
+
//# sourceMappingURL=chunk-7TX532EG.js.map
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// src/core/media-sanitize.ts
|
|
2
|
+
import { createHash } from "node:crypto";
|
|
3
|
+
var BASE64_RUN = /[A-Za-z0-9+/=_-]{1024,}/g;
|
|
4
|
+
var BASE64_ALPHABET = /^[A-Za-z0-9+/=_\r\n-]+$/;
|
|
5
|
+
var omittedMarker = (length) => "[omitted base64: " + String(length) + " chars]";
|
|
6
|
+
var isPlainObject = (value) => {
|
|
7
|
+
const prototype = Object.getPrototypeOf(value);
|
|
8
|
+
return prototype === Object.prototype || prototype === null;
|
|
9
|
+
};
|
|
10
|
+
var looksLikeBase64 = (value) => {
|
|
11
|
+
if (value.startsWith("data:") && value.includes(";base64,")) return true;
|
|
12
|
+
if (value.length < 1024 || value.length % 4 !== 0) return false;
|
|
13
|
+
return BASE64_ALPHABET.test(value);
|
|
14
|
+
};
|
|
15
|
+
var isImageContent = (value) => typeof value === "object" && value !== null && !Array.isArray(value) && value.type === "image" && typeof value.data === "string" && typeof value.mimeType === "string";
|
|
16
|
+
var sanitizeFabricMediaText = (text) => {
|
|
17
|
+
if (text.length < 1024) return text;
|
|
18
|
+
return text.replace(BASE64_RUN, (run) => omittedMarker(run.length));
|
|
19
|
+
};
|
|
20
|
+
var sanitizeFabricMediaValue = (value) => {
|
|
21
|
+
const images = [];
|
|
22
|
+
const media = [];
|
|
23
|
+
const indexes = /* @__PURE__ */ new Map();
|
|
24
|
+
const seen = /* @__PURE__ */ new WeakSet();
|
|
25
|
+
const walk = (node) => {
|
|
26
|
+
if (typeof node === "string") {
|
|
27
|
+
if (looksLikeBase64(node)) return omittedMarker(node.length);
|
|
28
|
+
return sanitizeFabricMediaText(node);
|
|
29
|
+
}
|
|
30
|
+
if (node === null || typeof node !== "object") return node;
|
|
31
|
+
if (isImageContent(node)) {
|
|
32
|
+
const sha256 = createHash("sha256").update(node.mimeType).update("\0").update(node.data).digest("hex");
|
|
33
|
+
let mediaIndex = indexes.get(sha256);
|
|
34
|
+
if (mediaIndex === void 0) {
|
|
35
|
+
mediaIndex = images.length;
|
|
36
|
+
indexes.set(sha256, mediaIndex);
|
|
37
|
+
images.push({ type: "image", data: node.data, mimeType: node.mimeType });
|
|
38
|
+
media.push({ type: "image", mediaIndex, mimeType: node.mimeType, redacted: true });
|
|
39
|
+
}
|
|
40
|
+
return { type: "image", mediaIndex, mimeType: node.mimeType, redacted: true };
|
|
41
|
+
}
|
|
42
|
+
if (seen.has(node)) return node;
|
|
43
|
+
seen.add(node);
|
|
44
|
+
if (Array.isArray(node)) return node.map(walk);
|
|
45
|
+
if (!isPlainObject(node)) return node;
|
|
46
|
+
const rebuilt = {};
|
|
47
|
+
for (const [key, nested] of Object.entries(node)) rebuilt[key] = walk(nested);
|
|
48
|
+
return rebuilt;
|
|
49
|
+
};
|
|
50
|
+
return { value: walk(value), images, media };
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
export {
|
|
54
|
+
looksLikeBase64,
|
|
55
|
+
isImageContent,
|
|
56
|
+
sanitizeFabricMediaText,
|
|
57
|
+
sanitizeFabricMediaValue
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=chunk-BJOJX2UW.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/core/media-sanitize.ts"],
|
|
4
|
+
"sourcesContent": ["import { createHash } from \"node:crypto\";\nimport type { ImageContent } from \"@earendil-works/pi-ai\";\n\n/**\n * Media sanitization for every channel that serializes guest or provider data\n * into text: fabric_exec logs, results, and error text, worker event lines, and\n * actor host-event payloads.\n *\n * Raw image bytes stay available out of band (see the images side channel), so a\n * multimodal model can still receive them while text channels receive a\n * descriptor. The rule used to be implemented only for actor host events, so a\n * guest that printed or returned a nested pi.read image could push hundreds of\n * KB of base64 into one serialized line and break the run.\n */\n\n/** Descriptor that replaces an image payload in a text channel. */\nexport interface FabricSanitizedMediaDescriptor {\n type: \"image\";\n mediaIndex: number;\n mimeType: string;\n redacted: true;\n}\n\nexport interface SanitizedFabricMedia {\n value: unknown;\n /** Raw payloads, indexed by mediaIndex in the descriptors. */\n images: ImageContent[];\n media: FabricSanitizedMediaDescriptor[];\n}\n\n/** A run of base64-alphabet characters long enough to be a binary payload. */\nconst BASE64_RUN = /[A-Za-z0-9+/=_-]{1024,}/g;\n\nconst BASE64_ALPHABET = /^[A-Za-z0-9+/=_\\r\\n-]+$/;\n\nconst omittedMarker = (length: number): string =>\n \"[omitted base64: \" + String(length) + \" chars]\";\n\nconst isPlainObject = (value: object): boolean => {\n const prototype = Object.getPrototypeOf(value) as object | null;\n return prototype === Object.prototype || prototype === null;\n};\n\n/** True when an entire string is a base64 payload (or a base64 data URL). */\nexport const looksLikeBase64 = (value: string): boolean => {\n if (value.startsWith(\"data:\") && value.includes(\";base64,\")) return true;\n if (value.length < 1_024 || value.length % 4 !== 0) return false;\n return BASE64_ALPHABET.test(value);\n};\n\n/** True for the Pi multimodal block shape {type: \"image\", data, mimeType}. */\nexport const isImageContent = (value: unknown): value is ImageContent =>\n typeof value === \"object\" &&\n value !== null &&\n !Array.isArray(value) &&\n (value as { type?: unknown }).type === \"image\" &&\n typeof (value as { data?: unknown }).data === \"string\" &&\n typeof (value as { mimeType?: unknown }).mimeType === \"string\";\n\n/**\n * Replace base64 runs inside free text with a bounded marker. Short strings are\n * returned untouched, so the hot event-line path pays only a length check.\n */\nexport const sanitizeFabricMediaText = (text: string): string => {\n if (text.length < 1_024) return text;\n return text.replace(BASE64_RUN, (run) => omittedMarker(run.length));\n};\n\n/**\n * Recursively replace image payloads and long base64 strings in a value.\n *\n * Images are deduplicated by content hash and hoisted into the images side\n * channel, and their text representation becomes a descriptor. Non-plain objects\n * and repeated references are returned unchanged: rebuilding them would drop\n * class identity, which matters because fabric_exec inspects result values for\n * control fields such as terminate.\n */\nexport const sanitizeFabricMediaValue = (value: unknown): SanitizedFabricMedia => {\n const images: ImageContent[] = [];\n const media: FabricSanitizedMediaDescriptor[] = [];\n const indexes = new Map<string, number>();\n const seen = new WeakSet<object>();\n\n const walk = (node: unknown): unknown => {\n if (typeof node === \"string\") {\n if (looksLikeBase64(node)) return omittedMarker(node.length);\n return sanitizeFabricMediaText(node);\n }\n if (node === null || typeof node !== \"object\") return node;\n if (isImageContent(node)) {\n const sha256 = createHash(\"sha256\")\n .update(node.mimeType)\n .update(\"\\0\")\n .update(node.data)\n .digest(\"hex\");\n let mediaIndex = indexes.get(sha256);\n if (mediaIndex === undefined) {\n mediaIndex = images.length;\n indexes.set(sha256, mediaIndex);\n images.push({ type: \"image\", data: node.data, mimeType: node.mimeType });\n media.push({ type: \"image\", mediaIndex, mimeType: node.mimeType, redacted: true });\n }\n return { type: \"image\", mediaIndex, mimeType: node.mimeType, redacted: true };\n }\n if (seen.has(node)) return node;\n seen.add(node);\n if (Array.isArray(node)) return node.map(walk);\n if (!isPlainObject(node)) return node;\n const rebuilt: Record<string, unknown> = {};\n for (const [key, nested] of Object.entries(node)) rebuilt[key] = walk(nested);\n return rebuilt;\n };\n\n return { value: walk(value), images, media };\n};\n"],
|
|
5
|
+
"mappings": ";AAAA,SAAS,kBAAkB;AA+B3B,IAAM,aAAa;AAEnB,IAAM,kBAAkB;AAExB,IAAM,gBAAgB,CAAC,WACrB,sBAAsB,OAAO,MAAM,IAAI;AAEzC,IAAM,gBAAgB,CAAC,UAA2B;AAChD,QAAM,YAAY,OAAO,eAAe,KAAK;AAC7C,SAAO,cAAc,OAAO,aAAa,cAAc;AACzD;AAGO,IAAM,kBAAkB,CAAC,UAA2B;AACzD,MAAI,MAAM,WAAW,OAAO,KAAK,MAAM,SAAS,UAAU,EAAG,QAAO;AACpE,MAAI,MAAM,SAAS,QAAS,MAAM,SAAS,MAAM,EAAG,QAAO;AAC3D,SAAO,gBAAgB,KAAK,KAAK;AACnC;AAGO,IAAM,iBAAiB,CAAC,UAC7B,OAAO,UAAU,YACjB,UAAU,QACV,CAAC,MAAM,QAAQ,KAAK,KACnB,MAA6B,SAAS,WACvC,OAAQ,MAA6B,SAAS,YAC9C,OAAQ,MAAiC,aAAa;AAMjD,IAAM,0BAA0B,CAAC,SAAyB;AAC/D,MAAI,KAAK,SAAS,KAAO,QAAO;AAChC,SAAO,KAAK,QAAQ,YAAY,CAAC,QAAQ,cAAc,IAAI,MAAM,CAAC;AACpE;AAWO,IAAM,2BAA2B,CAAC,UAAyC;AAChF,QAAM,SAAyB,CAAC;AAChC,QAAM,QAA0C,CAAC;AACjD,QAAM,UAAU,oBAAI,IAAoB;AACxC,QAAM,OAAO,oBAAI,QAAgB;AAEjC,QAAM,OAAO,CAAC,SAA2B;AACvC,QAAI,OAAO,SAAS,UAAU;AAC5B,UAAI,gBAAgB,IAAI,EAAG,QAAO,cAAc,KAAK,MAAM;AAC3D,aAAO,wBAAwB,IAAI;AAAA,IACrC;AACA,QAAI,SAAS,QAAQ,OAAO,SAAS,SAAU,QAAO;AACtD,QAAI,eAAe,IAAI,GAAG;AACxB,YAAM,SAAS,WAAW,QAAQ,EAC/B,OAAO,KAAK,QAAQ,EACpB,OAAO,IAAI,EACX,OAAO,KAAK,IAAI,EAChB,OAAO,KAAK;AACf,UAAI,aAAa,QAAQ,IAAI,MAAM;AACnC,UAAI,eAAe,QAAW;AAC5B,qBAAa,OAAO;AACpB,gBAAQ,IAAI,QAAQ,UAAU;AAC9B,eAAO,KAAK,EAAE,MAAM,SAAS,MAAM,KAAK,MAAM,UAAU,KAAK,SAAS,CAAC;AACvE,cAAM,KAAK,EAAE,MAAM,SAAS,YAAY,UAAU,KAAK,UAAU,UAAU,KAAK,CAAC;AAAA,MACnF;AACA,aAAO,EAAE,MAAM,SAAS,YAAY,UAAU,KAAK,UAAU,UAAU,KAAK;AAAA,IAC9E;AACA,QAAI,KAAK,IAAI,IAAI,EAAG,QAAO;AAC3B,SAAK,IAAI,IAAI;AACb,QAAI,MAAM,QAAQ,IAAI,EAAG,QAAO,KAAK,IAAI,IAAI;AAC7C,QAAI,CAAC,cAAc,IAAI,EAAG,QAAO;AACjC,UAAM,UAAmC,CAAC;AAC1C,eAAW,CAAC,KAAK,MAAM,KAAK,OAAO,QAAQ,IAAI,EAAG,SAAQ,GAAG,IAAI,KAAK,MAAM;AAC5E,WAAO;AAAA,EACT;AAEA,SAAO,EAAE,OAAO,KAAK,KAAK,GAAG,QAAQ,MAAM;AAC7C;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -4,6 +4,9 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
FABRIC_ACTOR_HOST_EVENTS
|
|
6
6
|
} from "./chunk-OTCASLY2.js";
|
|
7
|
+
import {
|
|
8
|
+
aliasThinking
|
|
9
|
+
} from "./chunk-KI277YNS.js";
|
|
7
10
|
import {
|
|
8
11
|
isFabricThinking
|
|
9
12
|
} from "./chunk-MGWQOKBV.js";
|
|
@@ -55,7 +58,11 @@ var runProperties = {
|
|
|
55
58
|
description: "Filesystem execution directory for leaf or recursive Pi runs; relative paths resolve from the caller cwd. Does not change project/mesh ownership or grant target project trust."
|
|
56
59
|
},
|
|
57
60
|
worktree: { type: "boolean" },
|
|
58
|
-
schema: { type: "object", description: "Optional JSON Schema for validated structured output" }
|
|
61
|
+
schema: { type: "object", description: "Optional JSON Schema for validated structured output" },
|
|
62
|
+
systemPrompt: {
|
|
63
|
+
type: "string",
|
|
64
|
+
description: "Optional extra system prompt body for this child run. Pi runners merge it below component guidance and forward it via --system-prompt; Claude runners receive it via --append-system-prompt. Useful for reliability-focused prompt rules on models with weak behavioral defaults."
|
|
65
|
+
}
|
|
59
66
|
};
|
|
60
67
|
var runSchema = {
|
|
61
68
|
type: "object",
|
|
@@ -702,7 +709,8 @@ var checkedKernel = (value) => {
|
|
|
702
709
|
};
|
|
703
710
|
var normalizeAgentRunRequest = (args, defaults, options = {}) => {
|
|
704
711
|
const transport = args.transport === "auto" || args.transport === "process" || args.transport === "tmux" || args.transport === "screen" || args.transport === "localterm" || args.transport === "herdr" ? args.transport : void 0;
|
|
705
|
-
const
|
|
712
|
+
const requestedModel = typeof args.model === "string" ? args.model : typeof defaults.model === "string" ? defaults.model : void 0;
|
|
713
|
+
const thinking = isFabricThinking(args.thinking) ? args.thinking : aliasThinking(defaults.models?.aliases, requestedModel ?? "");
|
|
706
714
|
const tools = stringArray(args.tools);
|
|
707
715
|
const timeoutMs = typeof args.timeoutMs === "number" && Number.isFinite(args.timeoutMs) && args.timeoutMs > defaults.timeoutMs ? args.timeoutMs : void 0;
|
|
708
716
|
const runner = args.runner === "pi" || args.runner === "claude" || args.runner === "veda" ? args.runner : defaults.runner;
|
|
@@ -727,7 +735,8 @@ var normalizeAgentRunRequest = (args, defaults, options = {}) => {
|
|
|
727
735
|
...options.allowCwd !== false && typeof args.cwd === "string" ? { cwd: args.cwd } : {},
|
|
728
736
|
...typeof args.worktree === "boolean" ? { worktree: args.worktree } : {},
|
|
729
737
|
...args.residency === "session" || args.residency === "durable" ? { residency: args.residency } : {},
|
|
730
|
-
...typeof args.schema === "object" && args.schema !== null && !Array.isArray(args.schema) ? { schema: args.schema } : {}
|
|
738
|
+
...typeof args.schema === "object" && args.schema !== null && !Array.isArray(args.schema) ? { schema: args.schema } : {},
|
|
739
|
+
...typeof args.systemPrompt === "string" && args.systemPrompt.trim() ? { systemPrompt: args.systemPrompt } : {}
|
|
731
740
|
};
|
|
732
741
|
};
|
|
733
742
|
|
|
@@ -735,4 +744,4 @@ export {
|
|
|
735
744
|
AGENTS_ACTION_DESCRIPTORS,
|
|
736
745
|
normalizeAgentRunRequest
|
|
737
746
|
};
|
|
738
|
-
//# sourceMappingURL=chunk-
|
|
747
|
+
//# sourceMappingURL=chunk-BYOGRJME.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/providers/agents-actions.ts", "../../src/agents/request.ts"],
|
|
4
|
+
"sourcesContent": ["import { FABRIC_ACTOR_HOST_EVENTS } from \"../actors/types.js\";\nimport {\n MAX_COMPACTION_INSTRUCTIONS_CHARS,\n MAX_PRESERVE_ITEM_CHARS,\n MAX_PRESERVE_ITEMS,\n} from \"../compaction/instructions.js\";\nimport { FABRIC_LIFECYCLE_EVENTS } from \"../lifecycle/types.js\";\nimport type { FabricActionDescriptor } from \"../protocol.js\";\n\nconst runProperties = {\n task: { type: \"string\", description: \"A self-contained task for the child agent\" },\n name: { type: \"string\" },\n runner: {\n type: \"string\",\n enum: [\"pi\", \"claude\", \"veda\"],\n description: \"Execution harness. Defaults to agents.runner.\",\n },\n kernel: {\n type: \"string\",\n enum: [\"typescript\", \"python\", \"inherit\"],\n description: \"Fabric execution language. Omitted/inherit uses the caller executor.kernel; concrete choices require Pi with extensions enabled. Python uses the configured backend; CPython is native execution.\",\n },\n transport: {\n type: \"string\",\n enum: [\"auto\", \"process\", \"tmux\", \"screen\", \"localterm\", \"herdr\"],\n },\n model: {\n type: \"string\",\n description:\n \"Pi provider/id, a configured models.aliases name, or a search term resolved to the closest authenticated model (recency from pi-model-sort breaks ties); Claude runtime value or Veda backend model/alias are forwarded verbatim.\",\n },\n persona: {\n type: \"string\",\n description: \"Veda persona name for this run, such as frontend, reviewer, worker, or a custom persona.\",\n },\n thinking: {\n type: \"string\",\n enum: [\"off\", \"minimal\", \"low\", \"medium\", \"high\", \"xhigh\", \"max\"],\n },\n tools: { type: \"array\", items: { type: \"string\" } },\n timeoutMs: {\n type: \"number\",\n description:\n \"Optional longer wall-clock limit in milliseconds. Omit to use agents.timeoutMs (60 minutes by default); values below the configured default are ignored.\",\n },\n extensions: { type: \"boolean\" },\n recursive: { type: \"boolean\" },\n cwd: {\n type: \"string\",\n description: \"Filesystem execution directory for leaf or recursive Pi runs; relative paths resolve from the caller cwd. Does not change project/mesh ownership or grant target project trust.\",\n },\n worktree: { type: \"boolean\" },\n schema: { type: \"object\", description: \"Optional JSON Schema for validated structured output\" },\n systemPrompt: {\n type: \"string\",\n description: \"Optional extra system prompt body for this child run. Pi runners merge it below component guidance and forward it via --system-prompt; Claude runners receive it via --append-system-prompt. Useful for reliability-focused prompt rules on models with weak behavioral defaults.\",\n },\n};\n\nconst runSchema = {\n type: \"object\",\n properties: runProperties,\n required: [\"task\"],\n additionalProperties: false,\n};\n\nconst residencySchema = {\n type: \"string\",\n enum: [\"session\", \"durable\"],\n description: \"session stops with the current Pi host; durable transfers execution to Fabric's hidden resident host.\",\n};\n\nconst actorBindingScopeSchema = {\n type: \"string\",\n enum: [\"session\", \"project\"],\n description: \"session (default) changes only this Pi session; project pins the shared actor default and requires ownership.\",\n};\n\nconst actorInvocationProperties = {\n id: { type: \"string\" },\n message: { type: \"string\" },\n data: {},\n model: {\n ...runProperties.model,\n description: \"Optional model pinned only for this actor activation.\",\n },\n thinking: runProperties.thinking,\n};\n\nconst spawnSchema = {\n ...runSchema,\n properties: { ...runProperties, residency: residencySchema },\n};\n\nconst handoffCompactionSchema = {\n anyOf: [\n { type: \"boolean\" },\n {\n type: \"object\",\n properties: {\n instructions: {\n type: \"string\",\n maxLength: MAX_COMPACTION_INSTRUCTIONS_CHARS,\n description: \"Custom compaction instructions for the inherited trajectory\",\n },\n preserve: {\n type: \"array\",\n items: { type: \"string\", maxLength: MAX_PRESERVE_ITEM_CHARS },\n maxItems: MAX_PRESERVE_ITEMS,\n description: \"Explicit bounded facts the trajectory summary must preserve\",\n },\n },\n additionalProperties: false,\n },\n ],\n description:\n \"Compact the inherited trajectory with Fabric's deterministic compactor before the executor resumes it. `true` applies the default summary; an object customizes instructions and bounded preserve facts. Omitted keeps the full raw trajectory.\",\n};\n\nconst handoffSchema = {\n type: \"object\",\n properties: {\n task: {\n type: \"string\",\n description: \"Optional instructions for the executor in addition to the inherited trajectory\",\n },\n name: runProperties.name,\n kernel: runProperties.kernel,\n transport: runProperties.transport,\n model: {\n ...runProperties.model,\n description: \"Explicit Pi provider/id target that will continue the inherited trajectory\",\n },\n thinking: runProperties.thinking,\n tools: runProperties.tools,\n timeoutMs: runProperties.timeoutMs,\n extensions: runProperties.extensions,\n recursive: runProperties.recursive,\n schema: runProperties.schema,\n compact: handoffCompactionSchema,\n },\n required: [\"model\"],\n additionalProperties: false,\n};\n\nconst idSchema = {\n type: \"object\",\n properties: { id: { type: \"string\" } },\n required: [\"id\"],\n additionalProperties: false,\n};\n\nconst lifecycleEventSchema = {\n type: \"string\",\n enum: [...FABRIC_LIFECYCLE_EVENTS],\n};\n\nexport const AGENTS_ACTION_DESCRIPTORS: FabricActionDescriptor[] = [\n {\n name: \"run\",\n description: \"Run a child agent through Pi or Claude Code and wait for its final result\",\n inputSchema: runSchema,\n risk: \"agent\",\n },\n {\n name: \"handoff\",\n description:\n \"Schedule a Pi trajectory handoff after the current outer fabric_exec result, then wait for implementation at that boundary\",\n inputSchema: handoffSchema,\n risk: \"agent\",\n },\n {\n name: \"spawn\",\n description:\n \"Start a child agent through Pi or Claude Code and return a handle immediately. Detached runs send Main a follow-up on terminal completion when agents.notifyOnComplete is enabled; use wait when this Fabric program needs the result and status only for progress inspection.\",\n inputSchema: spawnSchema,\n risk: \"agent\",\n },\n {\n name: \"wait\",\n description: \"Wait for a previously spawned child agent\",\n inputSchema: idSchema,\n risk: \"read\",\n },\n {\n name: \"join\",\n description: \"Alias for agents.wait: wait for a previously spawned child agent with the same progress and completion-notification behavior\",\n inputSchema: idSchema,\n risk: \"read\",\n },\n {\n name: \"status\",\n description: \"Get the latest status of any known project participant\",\n inputSchema: idSchema,\n risk: \"read\",\n },\n {\n name: \"list\",\n description: \"List agent participants locally, across the current lineage, or across the project\",\n inputSchema: {\n type: \"object\",\n properties: { scope: { type: \"string\", enum: [\"local\", \"lineage\", \"project\"] } },\n additionalProperties: false,\n },\n risk: \"read\",\n },\n {\n name: \"members\",\n description: \"List the unified project topology of roots, agents, and actors\",\n inputSchema: {\n type: \"object\",\n properties: {\n scope: { type: \"string\", enum: [\"local\", \"lineage\", \"project\"] },\n kinds: {\n type: \"array\",\n items: { type: \"string\", enum: [\"root\", \"agent\", \"actor\"] },\n },\n includeStale: { type: \"boolean\" },\n },\n additionalProperties: false,\n },\n risk: \"read\",\n },\n {\n name: \"self\",\n description: \"Return this caller's intrinsic participant identity in the unified topology\",\n inputSchema: { type: \"object\", properties: {}, additionalProperties: false },\n risk: \"read\",\n },\n {\n name: \"main\",\n description:\n \"Return the root user-facing Main Pi agent target. The stable alias main is also accepted by agents.steer and agents.followUp.\",\n inputSchema: { type: \"object\", properties: {}, additionalProperties: false },\n risk: \"read\",\n },\n {\n name: \"sessions\",\n description: \"List all live root Pi session agents in the project, including the current lineage root and peers, with symmetric participant identities.\",\n inputSchema: { type: \"object\", properties: {}, additionalProperties: false },\n risk: \"read\",\n },\n {\n name: \"peers\",\n description: \"List other live root Pi sessions sharing this project mesh. The dashboard-owning session remains Main; these targets are named peers.\",\n inputSchema: { type: \"object\", properties: {}, additionalProperties: false },\n risk: \"read\",\n },\n {\n name: \"subscribe\",\n description:\n \"Create a durable source-qualified participant lifecycle subscription. Events are delivered to Main by default or to another participant through steer/follow-up routing.\",\n inputSchema: {\n type: \"object\",\n properties: {\n from: { type: \"string\", description: \"Exact source participant id; main means this lineage root\" },\n events: { type: \"array\", minItems: 1, items: lifecycleEventSchema },\n to: { type: \"string\", description: \"Target participant id; defaults to main\" },\n delivery: { type: \"string\", enum: [\"steer\", \"followUp\"] },\n triggerTurn: { type: \"boolean\" },\n once: { type: \"boolean\" },\n },\n required: [\"from\", \"events\", \"delivery\", \"triggerTurn\"],\n additionalProperties: false,\n },\n risk: \"agent\",\n },\n {\n name: \"subscriptions\",\n description: \"List durable participant lifecycle subscriptions, optionally filtered by source or target\",\n inputSchema: {\n type: \"object\",\n properties: { from: { type: \"string\" }, to: { type: \"string\" } },\n additionalProperties: false,\n },\n risk: \"read\",\n },\n {\n name: \"unsubscribe\",\n description: \"Remove a participant lifecycle subscription\",\n inputSchema: idSchema,\n risk: \"agent\",\n },\n {\n name: \"models\",\n description:\n \"List models exposed by the selected runner. Claude models are enumerated from the installed Claude Code runtime, not hard-coded.\",\n inputSchema: {\n type: \"object\",\n properties: {\n runner: { type: \"string\", enum: [\"pi\", \"claude\", \"veda\"] },\n refresh: { type: \"boolean\" },\n },\n additionalProperties: false,\n },\n risk: \"execute\",\n },\n {\n name: \"switchModel\",\n description:\n \"Switch Main's live Pi session model in place. The model selector accepts an exact provider/id, a configured models.aliases name (alias chains try each target in order until one is authenticated), an exact model id, or a search term; inexact terms resolve to the closest match, preferring recently used models (via pi-model-sort usage, when present).\",\n inputSchema: {\n type: \"object\",\n properties: {\n model: {\n type: \"string\",\n description: \"provider/id, alias name, or search term\",\n },\n provider: { type: \"string\" },\n },\n required: [\"model\"],\n additionalProperties: false,\n },\n risk: \"agent\",\n },\n {\n name: \"stop\",\n description: \"Stop a local or remotely owned agent or actor that advertises the stop capability\",\n inputSchema: idSchema,\n risk: \"agent\",\n },\n {\n name: \"cleanup\",\n description: \"Remove a completed agent's run files and optional Git worktree\",\n inputSchema: {\n type: \"object\",\n properties: {\n id: { type: \"string\" },\n deleteBranch: { type: \"boolean\" },\n },\n required: [\"id\"],\n additionalProperties: false,\n },\n risk: \"write\",\n },\n {\n name: \"create\",\n description:\n 'Create a persistent actor with independently selected session or project storage. Use scope \"global\" to save a reusable project-independent template instead of a live actor.',\n inputSchema: {\n type: \"object\",\n properties: {\n name: { type: \"string\" },\n instructions: { type: \"string\" },\n events: {\n type: \"array\",\n items: {\n type: \"string\",\n enum: [...FABRIC_ACTOR_HOST_EVENTS],\n },\n },\n topics: { type: \"array\", items: { type: \"string\" } },\n delivery: {\n type: \"string\",\n enum: [\"mailbox\", \"steer\", \"followUp\", \"nextTurn\"],\n },\n responseMode: { type: \"string\", enum: [\"text\", \"directive\"] },\n triggerTurn: { type: \"boolean\" },\n coalesce: { type: \"boolean\" },\n residency: residencySchema,\n runner: runProperties.runner,\n kernel: runProperties.kernel,\n model: runProperties.model,\n thinking: runProperties.thinking,\n tools: runProperties.tools,\n transport: runProperties.transport,\n timeoutMs: runProperties.timeoutMs,\n extensions: runProperties.extensions,\n requires: {\n type: \"array\",\n maxItems: 128,\n description: \"Exact Fabric provider.action refs committed before every actor run. Object entries may be optional.\",\n items: {\n oneOf: [\n { type: \"string\", minLength: 3, maxLength: 256 },\n {\n type: \"object\",\n properties: {\n ref: { type: \"string\", minLength: 3, maxLength: 256 },\n optional: { type: \"boolean\" },\n },\n required: [\"ref\"],\n additionalProperties: false,\n },\n ],\n },\n },\n validWhile: {\n type: \"object\",\n properties: { version: { const: 1 }, source: { type: \"string\" } },\n required: [\"version\", \"source\"],\n additionalProperties: false,\n },\n scope: {\n type: \"string\",\n enum: [\"session\", \"project\", \"global\"],\n description: \"session isolates the actor to the root Pi session; project shares it across sessions; global creates a non-live template.\",\n },\n },\n required: [\"name\", \"instructions\"],\n oneOf: [\n {\n properties: {\n delivery: { const: \"mailbox\" },\n triggerTurn: { const: false },\n },\n },\n {\n properties: {\n delivery: { const: \"nextTurn\" },\n triggerTurn: { const: false },\n },\n required: [\"delivery\"],\n },\n {\n properties: { delivery: { enum: [\"steer\", \"followUp\"] } },\n required: [\"delivery\", \"triggerTurn\"],\n },\n ],\n additionalProperties: false,\n },\n risk: \"agent\",\n },\n {\n name: \"ask\",\n description: \"Send a message to a persistent actor through its live owner and wait for its next response. Optional model/thinking values apply only to this activation.\",\n inputSchema: {\n type: \"object\",\n properties: actorInvocationProperties,\n required: [\"id\", \"message\"],\n additionalProperties: false,\n },\n risk: \"agent\",\n },\n {\n name: \"tell\",\n description: \"Queue a message through a persistent actor's live owner without waiting. Optional model/thinking values apply only to this activation.\",\n inputSchema: {\n type: \"object\",\n properties: actorInvocationProperties,\n required: [\"id\", \"message\"],\n additionalProperties: false,\n },\n risk: \"agent\",\n },\n {\n name: \"steer\",\n description:\n \"Steer Main, a running one-shot agent between turns, or a persistent actor through its mailbox. The stable id alias main targets the root user-facing Pi session. Non-local targets route over the project mesh.\",\n inputSchema: {\n type: \"object\",\n properties: { id: { type: \"string\" }, message: { type: \"string\" }, data: {} },\n required: [\"id\", \"message\"],\n additionalProperties: false,\n },\n risk: \"agent\",\n },\n {\n name: \"followUp\",\n description:\n \"Queue a follow-up for Main or a running one-shot agent, or enqueue a persistent actor mailbox message. The stable id alias main targets the root user-facing Pi session. Non-local targets route over the project mesh.\",\n inputSchema: {\n type: \"object\",\n properties: { id: { type: \"string\" }, message: { type: \"string\" }, data: {} },\n required: [\"id\", \"message\"],\n additionalProperties: false,\n },\n risk: \"agent\",\n },\n {\n name: \"setSteeringMode\",\n description:\n \"Set how queued steer messages are delivered to a running one-shot agent: all at once after the current turn, or one per turn (default). Local agent only.\",\n inputSchema: {\n type: \"object\",\n properties: {\n id: { type: \"string\" },\n mode: { type: \"string\", enum: [\"all\", \"one-at-a-time\"] },\n },\n required: [\"id\", \"mode\"],\n additionalProperties: false,\n },\n risk: \"agent\",\n },\n {\n name: \"setFollowUpMode\",\n description:\n \"Set how queued follow-up messages are delivered to a one-shot agent: all when it finishes, or one per completion (default). Local agent only.\",\n inputSchema: {\n type: \"object\",\n properties: {\n id: { type: \"string\" },\n mode: { type: \"string\", enum: [\"all\", \"one-at-a-time\"] },\n },\n required: [\"id\", \"mode\"],\n additionalProperties: false,\n },\n risk: \"agent\",\n },\n {\n name: \"compact\",\n description:\n \"Request an advisory compaction of a running Pi-runner child agent's context at its next safe boundary (between its own turns), preserving the child's accumulated context. Rejected for Claude-runner children. The child pi core applies the compaction; Fabric only forwards the intent.\",\n inputSchema: {\n type: \"object\",\n properties: {\n id: { type: \"string\" },\n instructions: {\n type: \"string\",\n description: \"Optional custom compaction instructions forwarded to the child pi\",\n },\n },\n required: [\"id\"],\n additionalProperties: false,\n },\n risk: \"agent\",\n },\n {\n name: \"actorStatus\",\n description: \"Read one persistent actor's status\",\n inputSchema: idSchema,\n risk: \"read\",\n },\n {\n name: \"actors\",\n description:\n 'List persistent actors. Default scope \"project\" lists live actors in this Fabric session; scope \"global\" lists project-independent templates in the global registry.',\n inputSchema: {\n type: \"object\",\n properties: { scope: { type: \"string\", enum: [\"project\", \"global\"] } },\n additionalProperties: false,\n },\n risk: \"read\",\n },\n {\n name: \"messages\",\n description: \"Read a persistent actor's bounded inbox and outbox history\",\n inputSchema: {\n type: \"object\",\n properties: { id: { type: \"string\" }, limit: { type: \"number\", minimum: 1 } },\n required: [\"id\"],\n additionalProperties: false,\n },\n risk: \"read\",\n },\n {\n name: \"setModel\",\n description:\n \"Change or clear a persistent actor model binding. Session scope is the default; project scope explicitly pins the shared definition default.\",\n inputSchema: {\n type: \"object\",\n properties: {\n id: { type: \"string\" },\n model: { type: \"string\" },\n scope: actorBindingScopeSchema,\n },\n required: [\"id\"],\n additionalProperties: false,\n },\n risk: \"agent\",\n },\n {\n name: \"setThinking\",\n description:\n \"Change or clear a persistent actor reasoning-effort binding. Session scope is the default; project scope explicitly pins the shared definition default.\",\n inputSchema: {\n type: \"object\",\n properties: {\n id: { type: \"string\" },\n thinking: runProperties.thinking,\n scope: actorBindingScopeSchema,\n },\n required: [\"id\"],\n additionalProperties: false,\n },\n risk: \"agent\",\n },\n {\n name: \"setTools\",\n description:\n \"Replace a persistent actor's tool allowlist. Takes effect on its next queued message; an empty list disables optional tools.\",\n inputSchema: {\n type: \"object\",\n properties: {\n id: { type: \"string\" },\n tools: runProperties.tools,\n scope: { type: \"string\", enum: [\"project\", \"global\"] },\n },\n required: [\"id\", \"tools\"],\n additionalProperties: false,\n },\n risk: \"agent\",\n },\n {\n name: \"setEvents\",\n description: \"Replace a persistent actor's session-bound Pi and synthetic tool_error event subscriptions\",\n inputSchema: {\n type: \"object\",\n properties: {\n id: { type: \"string\" },\n events: {\n type: \"array\",\n items: {\n type: \"string\",\n enum: [...FABRIC_ACTOR_HOST_EVENTS],\n },\n },\n },\n required: [\"id\", \"events\"],\n additionalProperties: false,\n },\n risk: \"agent\",\n },\n {\n name: \"setDeliveryPolicy\",\n description:\n \"Replace a project actor or global template delivery policy. steer/followUp require an explicit triggerTurn choice; mailbox/nextTurn require false.\",\n inputSchema: {\n type: \"object\",\n properties: {\n id: { type: \"string\" },\n delivery: {\n type: \"string\",\n enum: [\"mailbox\", \"steer\", \"followUp\", \"nextTurn\"],\n },\n triggerTurn: { type: \"boolean\" },\n scope: { type: \"string\", enum: [\"project\", \"global\"] },\n },\n required: [\"id\", \"delivery\", \"triggerTurn\"],\n additionalProperties: false,\n },\n risk: \"agent\",\n },\n {\n name: \"clearMessages\",\n description: \"Clear a persistent actor's recorded message history\",\n inputSchema: idSchema,\n risk: \"write\",\n },\n {\n name: \"remove\",\n description:\n 'Stop and remove a persistent actor. Default scope \"project\" removes a live project actor; scope \"global\" removes a project-independent template from the global registry.',\n inputSchema: {\n type: \"object\",\n properties: {\n id: { type: \"string\" },\n scope: { type: \"string\", enum: [\"project\", \"global\"] },\n },\n required: [\"id\"],\n additionalProperties: false,\n },\n risk: \"agent\",\n },\n {\n name: \"setInstructions\",\n description:\n 'Replace an actor\\'s default instruction (its persona / system-prompt body). Default scope \"project\" edits a live project actor; scope \"global\" edits a project-independent template. Takes effect on the actor\\'s next queued message.',\n inputSchema: {\n type: \"object\",\n properties: {\n id: { type: \"string\" },\n instructions: { type: \"string\" },\n scope: { type: \"string\", enum: [\"project\", \"global\"] },\n },\n required: [\"id\", \"instructions\"],\n additionalProperties: false,\n },\n risk: \"agent\",\n },\n {\n name: \"import\",\n description:\n \"Import a project-independent template from the global registry into the current project as a fresh live actor with no inherited history (no messages, session, or run logs). Identify the template by id or name; optionally rename the imported actor with \\\"as\\\" to avoid colliding with a live actor.\",\n inputSchema: {\n type: \"object\",\n properties: {\n id: { type: \"string\", description: \"Template id or name (one of id/name required)\" },\n name: { type: \"string\", description: \"Template name (one of id/name required)\" },\n as: { type: \"string\", description: \"Optional new name for the imported live actor\" },\n },\n additionalProperties: false,\n },\n risk: \"agent\",\n },\n {\n name: \"export\",\n description:\n \"Export a live project actor's definition to the global registry as a project-independent template, without any history (no messages, session, or run logs). Throws on a name collision unless overwrite is true.\",\n inputSchema: {\n type: \"object\",\n properties: {\n id: { type: \"string\" },\n overwrite: { type: \"boolean\" },\n },\n required: [\"id\"],\n additionalProperties: false,\n },\n risk: \"write\",\n },\n {\n name: \"log\",\n description:\n \"Read an actor or agent run's LLM/agent log: the actor's session transcript (session.jsonl) and/or a retained run's event stream (events.jsonl: tool calls, model responses, usage). Actors retain their last runs so logs survive after success.\",\n inputSchema: {\n type: \"object\",\n properties: {\n id: { type: \"string\", description: \"Actor ID/name or agent run ID\" },\n type: {\n type: \"string\",\n enum: [\"session\", \"run\", \"all\"],\n description:\n \"session = actor session transcript (default for actors); run = last retained run's events; all = both\",\n },\n lines: { type: \"number\", minimum: 1, description: \"Page line limit (default 200)\" },\n before: {\n type: \"number\",\n minimum: 0,\n description: \"Exclusive line cursor returned by a previous page to load older entries\",\n },\n runId: { type: \"string\", description: \"Specific retained run (default: actor's last run)\" },\n },\n required: [\"id\"],\n additionalProperties: false,\n },\n risk: \"read\",\n },\n];\n", "import type { AgentRunRequest } from \"./types.js\";\nimport { isFabricThinking } from \"../thinking.js\";\nimport { aliasThinking, type FabricModelAliases } from \"../core/model-resolution.js\";\n\nconst stringArray = (value: unknown): string[] | undefined => Array.isArray(value) ? value.filter((entry): entry is string => typeof entry === \"string\") : undefined;\nconst checkedKernel = (value: unknown): AgentRunRequest[\"kernel\"] => {\n if (value === undefined || value === \"inherit\" || value === \"typescript\" || value === \"python\") return value;\n throw new Error(`Invalid Fabric agent kernel: ${String(value)}`);\n};\n\nexport const normalizeAgentRunRequest = (\n args: Record<string, unknown>,\n defaults: {runner: NonNullable<AgentRunRequest[\"runner\"]>; model?: string; timeoutMs: number; inheritedModel?: {provider: string; id: string}; models?: {aliases?: FabricModelAliases}},\n options: {allowCwd?: boolean} = {},\n): AgentRunRequest => {\n const transport =\n args.transport === \"auto\" ||\n args.transport === \"process\" ||\n args.transport === \"tmux\" ||\n args.transport === \"screen\" ||\n args.transport === \"localterm\" ||\n args.transport === \"herdr\"\n ? args.transport\n : undefined;\n // An explicit call or actor level always wins; otherwise an alias can carry\n // the intended effort for the model it selects (e.g. a \"cheap\" alias that is\n // both cheaper and shallower), and the global agents.thinking default applies\n // last, inside the manager.\n const requestedModel =\n typeof args.model === \"string\"\n ? args.model\n : typeof defaults.model === \"string\"\n ? defaults.model\n : undefined;\n const thinking = isFabricThinking(args.thinking)\n ? args.thinking\n : aliasThinking(defaults.models?.aliases, requestedModel ?? \"\");\n const tools = stringArray(args.tools);\n const timeoutMs = typeof args.timeoutMs === \"number\" && Number.isFinite(args.timeoutMs) && args.timeoutMs > defaults.timeoutMs ? args.timeoutMs : undefined;\n const runner =\n args.runner === \"pi\" || args.runner === \"claude\" || args.runner === \"veda\"\n ? args.runner\n : defaults.runner;\n const inheritedModel =\n runner === \"pi\" && !defaults.model && defaults.inheritedModel\n ? `${defaults.inheritedModel.provider}/${defaults.inheritedModel.id}`\n : undefined;\n const kernel = checkedKernel(args.kernel);\n if (args.recursive === true && args.extensions === false) {\n throw new Error(\"Recursive Fabric requires extensions enabled; omit recursive or extensions: false\");\n }\n return {\n task: String(args.task),\n runner,\n ...(kernel !== undefined ? { kernel } : {}),\n ...(typeof args.name === \"string\" ? { name: args.name } : {}),\n ...(transport ? { transport } : {}),\n ...(typeof args.model === \"string\"\n ? { model: args.model }\n : inheritedModel\n ? { model: inheritedModel }\n : {}),\n ...(typeof args.persona === \"string\" && args.persona.trim()\n ? { persona: args.persona.trim() }\n : {}),\n ...(thinking ? { thinking } : {}),\n ...(tools ? { tools } : {}),\n ...(timeoutMs !== undefined ? { timeoutMs } : {}),\n ...(typeof args.extensions === \"boolean\"\n ? { extensions: args.extensions }\n : args.recursive === true ? { extensions: true } : {}),\n ...(typeof args.recursive === \"boolean\" ? { recursive: args.recursive } : {}),\n ...(options.allowCwd !== false && typeof args.cwd === \"string\" ? { cwd: args.cwd } : {}),\n ...(typeof args.worktree === \"boolean\" ? { worktree: args.worktree } : {}),\n ...(args.residency === \"session\" || args.residency === \"durable\"\n ? { residency: args.residency }\n : {}),\n ...(typeof args.schema === \"object\" && args.schema !== null && !Array.isArray(args.schema)\n ? { schema: args.schema as Record<string, unknown> }\n : {}),\n ...(typeof args.systemPrompt === \"string\" && args.systemPrompt.trim()\n ? { systemPrompt: args.systemPrompt }\n : {}),\n };\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|