@narumitw/pi-subagents 2.0.4 → 2.0.6

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.
Files changed (32) hide show
  1. package/dist/chunks/child-peer-bridge.ts +108 -0
  2. package/dist/chunks/child-peer-bridge.ts.map +7 -0
  3. package/dist/chunks/{chunk-EWWXFU7N.ts → chunk-5DGRMKNV.ts} +3 -27
  4. package/dist/chunks/{chunk-EWWXFU7N.ts.map → chunk-5DGRMKNV.ts.map} +3 -3
  5. package/dist/chunks/{chunk-2OUVSORM.ts → chunk-CBP76ARQ.ts} +6 -6
  6. package/dist/chunks/{chunk-UVFVHIOP.ts → chunk-H3BFJ7HJ.ts} +6 -4
  7. package/dist/chunks/{chunk-UVFVHIOP.ts.map → chunk-H3BFJ7HJ.ts.map} +1 -1
  8. package/dist/chunks/chunk-RY2AEGMZ.ts +34 -0
  9. package/dist/chunks/chunk-RY2AEGMZ.ts.map +7 -0
  10. package/dist/chunks/{chunk-RHRQMT7Q.ts → chunk-YBUWBRF7.ts} +2 -2
  11. package/dist/chunks/{chunk-F4L2UVSK.ts → chunk-ZHTNCZIA.ts} +2 -2
  12. package/dist/chunks/{config-ui-7IMI3I4B.ts → config-ui-2YUCUEBM.ts} +3 -3
  13. package/dist/chunks/{consult-NYXVDN5G.ts → consult-IV7UBNQQ.ts} +3 -3
  14. package/dist/chunks/{create-stateful-transport-F5OG2LEY.ts → create-stateful-transport-ZP3IXNV3.ts} +4 -4
  15. package/dist/chunks/{execution-DS2DEIQZ.ts → execution-LA7HN5YF.ts} +5 -5
  16. package/dist/chunks/{in-process-transport-TEYAWSEC.ts → in-process-transport-4RF3J6XK.ts} +4 -3
  17. package/dist/chunks/{inspect-UOQQ3KNL.ts → inspect-XV2QALMR.ts} +5 -5
  18. package/dist/chunks/{rpc-transport-ZNNBRUSY.ts → rpc-transport-NEHBHWX4.ts} +10 -8
  19. package/dist/chunks/{rpc-transport-ZNNBRUSY.ts.map → rpc-transport-NEHBHWX4.ts.map} +1 -1
  20. package/dist/chunks/{subprocess-transport-C2XVR25R.ts → subprocess-transport-NSHOGDC4.ts} +7 -6
  21. package/dist/chunks/{subprocess-transport-C2XVR25R.ts.map → subprocess-transport-NSHOGDC4.ts.map} +1 -1
  22. package/dist/index.ts +15 -15
  23. package/package.json +2 -2
  24. /package/dist/chunks/{chunk-2OUVSORM.ts.map → chunk-CBP76ARQ.ts.map} +0 -0
  25. /package/dist/chunks/{chunk-RHRQMT7Q.ts.map → chunk-YBUWBRF7.ts.map} +0 -0
  26. /package/dist/chunks/{chunk-F4L2UVSK.ts.map → chunk-ZHTNCZIA.ts.map} +0 -0
  27. /package/dist/chunks/{config-ui-7IMI3I4B.ts.map → config-ui-2YUCUEBM.ts.map} +0 -0
  28. /package/dist/chunks/{consult-NYXVDN5G.ts.map → consult-IV7UBNQQ.ts.map} +0 -0
  29. /package/dist/chunks/{create-stateful-transport-F5OG2LEY.ts.map → create-stateful-transport-ZP3IXNV3.ts.map} +0 -0
  30. /package/dist/chunks/{execution-DS2DEIQZ.ts.map → execution-LA7HN5YF.ts.map} +0 -0
  31. /package/dist/chunks/{in-process-transport-TEYAWSEC.ts.map → in-process-transport-4RF3J6XK.ts.map} +0 -0
  32. /package/dist/chunks/{inspect-UOQQ3KNL.ts.map → inspect-XV2QALMR.ts.map} +0 -0
@@ -0,0 +1,108 @@
1
+ // @generated by scripts/build-runtime.mjs; do not edit.
2
+ // @ts-nocheck -- generated JavaScript uses a .ts extension for Pi's Jiti loader.
3
+ import {
4
+ createChildPeerExtension
5
+ } from "./chunk-5DGRMKNV.ts";
6
+ import "./chunk-H3FP6DLR.ts";
7
+
8
+ // src/child-peer-bridge.ts
9
+ import net from "node:net";
10
+ var MAX_RESPONSE_BYTES = 64 * 1024;
11
+ var REQUEST_TIMEOUT_MS = 2e3;
12
+ var captured = captureBridgeEnvironment();
13
+ var childPeerBridge = captured ? createChildPeerExtension(createProcessPeerClient(captured)) : () => void 0;
14
+ var child_peer_bridge_default = childPeerBridge;
15
+ function captureBridgeEnvironment() {
16
+ const host = process.env.PI_SUBAGENT_PEER_HOST;
17
+ const rawPort = process.env.PI_SUBAGENT_PEER_PORT;
18
+ const token = process.env.PI_SUBAGENT_PEER_TOKEN;
19
+ delete process.env.PI_SUBAGENT_PEER_HOST;
20
+ delete process.env.PI_SUBAGENT_PEER_PORT;
21
+ delete process.env.PI_SUBAGENT_PEER_TOKEN;
22
+ if (!host && !rawPort && !token) return void 0;
23
+ const port = Number(rawPort);
24
+ if (host !== "127.0.0.1" || !Number.isSafeInteger(port) || port < 1 || port > 65535 || !token) {
25
+ throw new Error("Invalid pi-subagents peer bridge environment");
26
+ }
27
+ return { host, port, token };
28
+ }
29
+ function createProcessPeerClient(environment) {
30
+ const request = async (input) => {
31
+ const response = await requestBridge(environment, { ...input, token: environment.token });
32
+ if (response.ok !== true) {
33
+ throw new Error(
34
+ typeof response.error === "string" ? response.error : "Subagent peer bridge rejected the request"
35
+ );
36
+ }
37
+ return response;
38
+ };
39
+ return {
40
+ async send(target, message, deduplicationKey) {
41
+ const response = await request({
42
+ action: "send",
43
+ target,
44
+ message,
45
+ ...deduplicationKey ? { deduplicationKey } : {}
46
+ });
47
+ if (!isMailboxMessage(response.message)) {
48
+ throw new Error("Subagent peer bridge returned an invalid message receipt");
49
+ }
50
+ return response.message;
51
+ },
52
+ async list() {
53
+ return (await request({ action: "list" })).peers ?? [];
54
+ },
55
+ async acknowledge(messageIds, completionIds) {
56
+ await request({ action: "acknowledge", messageIds, completionIds });
57
+ }
58
+ };
59
+ }
60
+ function requestBridge(environment, request) {
61
+ return new Promise((resolve, reject) => {
62
+ const socket = net.createConnection({ host: environment.host, port: environment.port });
63
+ let response = Buffer.alloc(0);
64
+ let settled = false;
65
+ const finish = (error, value) => {
66
+ if (settled) return;
67
+ settled = true;
68
+ clearTimeout(timer);
69
+ socket.destroy();
70
+ if (error) reject(error);
71
+ else resolve(value ?? {});
72
+ };
73
+ const timer = setTimeout(
74
+ () => finish(new Error("Subagent peer bridge request timed out")),
75
+ REQUEST_TIMEOUT_MS
76
+ );
77
+ timer.unref();
78
+ socket.once("connect", () => socket.end(`${JSON.stringify(request)}
79
+ `));
80
+ socket.on("data", (chunk) => {
81
+ response = Buffer.concat([response, chunk]);
82
+ if (response.byteLength > MAX_RESPONSE_BYTES) {
83
+ finish(new Error("Subagent peer bridge response exceeded its size limit"));
84
+ }
85
+ });
86
+ socket.once("error", (error) => finish(error));
87
+ socket.once("close", () => {
88
+ if (settled) return;
89
+ try {
90
+ const parsed = JSON.parse(response.toString("utf8"));
91
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) throw new Error();
92
+ finish(void 0, parsed);
93
+ } catch {
94
+ finish(new Error("Subagent peer bridge returned malformed JSON"));
95
+ }
96
+ });
97
+ });
98
+ }
99
+ function isMailboxMessage(value) {
100
+ if (!value || typeof value !== "object" || Array.isArray(value)) return false;
101
+ const message = value;
102
+ return typeof message.id === "string" && typeof message.senderId === "string" && typeof message.recipientId === "string" && typeof message.content === "string" && typeof message.createdAt === "number";
103
+ }
104
+ export {
105
+ captureBridgeEnvironment,
106
+ child_peer_bridge_default as default
107
+ };
108
+ //# sourceMappingURL=child-peer-bridge.ts.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/child-peer-bridge.ts"],
4
+ "sourcesContent": ["import net from \"node:net\";\nimport type { ExtensionFactory } from \"@earendil-works/pi-coding-agent\";\nimport { type ChildPeerClient, createChildPeerExtension } from \"./child-peer-tools.js\";\nimport type { AgentMailboxMessage } from \"./registry.js\";\n\nconst MAX_RESPONSE_BYTES = 64 * 1024;\nconst REQUEST_TIMEOUT_MS = 2_000;\n\nconst captured = captureBridgeEnvironment();\n\nconst childPeerBridge: ExtensionFactory = captured\n\t? createChildPeerExtension(createProcessPeerClient(captured))\n\t: () => undefined;\n\nexport default childPeerBridge;\n\ninterface CapturedBridgeEnvironment {\n\thost: \"127.0.0.1\";\n\tport: number;\n\ttoken: string;\n}\n\nexport function captureBridgeEnvironment(): CapturedBridgeEnvironment | undefined {\n\tconst host = process.env.PI_SUBAGENT_PEER_HOST;\n\tconst rawPort = process.env.PI_SUBAGENT_PEER_PORT;\n\tconst token = process.env.PI_SUBAGENT_PEER_TOKEN;\n\tdelete process.env.PI_SUBAGENT_PEER_HOST;\n\tdelete process.env.PI_SUBAGENT_PEER_PORT;\n\tdelete process.env.PI_SUBAGENT_PEER_TOKEN;\n\tif (!host && !rawPort && !token) return undefined;\n\tconst port = Number(rawPort);\n\tif (host !== \"127.0.0.1\" || !Number.isSafeInteger(port) || port < 1 || port > 65_535 || !token) {\n\t\tthrow new Error(\"Invalid pi-subagents peer bridge environment\");\n\t}\n\treturn { host, port, token };\n}\n\nfunction createProcessPeerClient(environment: CapturedBridgeEnvironment): ChildPeerClient {\n\tconst request = async (input: Record<string, unknown>): Promise<Record<string, unknown>> => {\n\t\tconst response = await requestBridge(environment, { ...input, token: environment.token });\n\t\tif (response.ok !== true) {\n\t\t\tthrow new Error(\n\t\t\t\ttypeof response.error === \"string\"\n\t\t\t\t\t? response.error\n\t\t\t\t\t: \"Subagent peer bridge rejected the request\",\n\t\t\t);\n\t\t}\n\t\treturn response;\n\t};\n\treturn {\n\t\tasync send(target, message, deduplicationKey) {\n\t\t\tconst response = await request({\n\t\t\t\taction: \"send\",\n\t\t\t\ttarget,\n\t\t\t\tmessage,\n\t\t\t\t...(deduplicationKey ? { deduplicationKey } : {}),\n\t\t\t});\n\t\t\tif (!isMailboxMessage(response.message)) {\n\t\t\t\tthrow new Error(\"Subagent peer bridge returned an invalid message receipt\");\n\t\t\t}\n\t\t\treturn response.message;\n\t\t},\n\t\tasync list() {\n\t\t\treturn (await request({ action: \"list\" })).peers ?? [];\n\t\t},\n\t\tasync acknowledge(messageIds, completionIds) {\n\t\t\tawait request({ action: \"acknowledge\", messageIds, completionIds });\n\t\t},\n\t};\n}\n\nfunction requestBridge(\n\tenvironment: CapturedBridgeEnvironment,\n\trequest: Record<string, unknown>,\n): Promise<Record<string, unknown>> {\n\treturn new Promise((resolve, reject) => {\n\t\tconst socket = net.createConnection({ host: environment.host, port: environment.port });\n\t\tlet response = Buffer.alloc(0);\n\t\tlet settled = false;\n\t\tconst finish = (error?: Error, value?: Record<string, unknown>) => {\n\t\t\tif (settled) return;\n\t\t\tsettled = true;\n\t\t\tclearTimeout(timer);\n\t\t\tsocket.destroy();\n\t\t\tif (error) reject(error);\n\t\t\telse resolve(value ?? {});\n\t\t};\n\t\tconst timer = setTimeout(\n\t\t\t() => finish(new Error(\"Subagent peer bridge request timed out\")),\n\t\t\tREQUEST_TIMEOUT_MS,\n\t\t);\n\t\ttimer.unref();\n\t\tsocket.once(\"connect\", () => socket.end(`${JSON.stringify(request)}\\n`));\n\t\tsocket.on(\"data\", (chunk: Buffer) => {\n\t\t\tresponse = Buffer.concat([response, chunk]);\n\t\t\tif (response.byteLength > MAX_RESPONSE_BYTES) {\n\t\t\t\tfinish(new Error(\"Subagent peer bridge response exceeded its size limit\"));\n\t\t\t}\n\t\t});\n\t\tsocket.once(\"error\", (error) => finish(error));\n\t\tsocket.once(\"close\", () => {\n\t\t\tif (settled) return;\n\t\t\ttry {\n\t\t\t\tconst parsed = JSON.parse(response.toString(\"utf8\")) as unknown;\n\t\t\t\tif (!parsed || typeof parsed !== \"object\" || Array.isArray(parsed)) throw new Error();\n\t\t\t\tfinish(undefined, parsed as Record<string, unknown>);\n\t\t\t} catch {\n\t\t\t\tfinish(new Error(\"Subagent peer bridge returned malformed JSON\"));\n\t\t\t}\n\t\t});\n\t});\n}\n\nfunction isMailboxMessage(value: unknown): value is AgentMailboxMessage {\n\tif (!value || typeof value !== \"object\" || Array.isArray(value)) return false;\n\tconst message = value as Record<string, unknown>;\n\treturn (\n\t\ttypeof message.id === \"string\" &&\n\t\ttypeof message.senderId === \"string\" &&\n\t\ttypeof message.recipientId === \"string\" &&\n\t\ttypeof message.content === \"string\" &&\n\t\ttypeof message.createdAt === \"number\"\n\t);\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -119,32 +119,8 @@ function messageText(message) {
119
119
  });
120
120
  }
121
121
 
122
- // src/peer-transport.ts
123
- import { fileURLToPath } from "node:url";
124
- var CHILD_PEER_TOOL_NAMES = ["subagent_peer_send", "subagent_peer_list"];
125
- function createInProcessPeerExtension(runtime, agentId) {
126
- return createChildPeerExtension({
127
- send: (target, message, deduplicationKey) => runtime.send(agentId, target, message, deduplicationKey),
128
- list: async () => runtime.list(agentId),
129
- acknowledge: (messageIds, completionIds) => runtime.acknowledge(agentId, messageIds, completionIds)
130
- });
131
- }
132
- function childPeerBridgePath() {
133
- return fileURLToPath(new URL("./child-peer-bridge.ts", import.meta.url));
134
- }
135
- function peerBridgeEnvironment(credentials) {
136
- return {
137
- PI_SUBAGENT_PEER_HOST: credentials.host,
138
- PI_SUBAGENT_PEER_PORT: String(credentials.port),
139
- PI_SUBAGENT_PEER_TOKEN: credentials.token
140
- };
141
- }
142
-
143
122
  export {
144
- formatPeerMessage,
145
- CHILD_PEER_TOOL_NAMES,
146
- createInProcessPeerExtension,
147
- childPeerBridgePath,
148
- peerBridgeEnvironment
123
+ createChildPeerExtension,
124
+ formatPeerMessage
149
125
  };
150
- //# sourceMappingURL=chunk-EWWXFU7N.ts.map
126
+ //# sourceMappingURL=chunk-5DGRMKNV.ts.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/child-peer-tools.ts", "../../src/peer-transport.ts"],
4
- "sourcesContent": ["import { defineTool, type ExtensionFactory } from \"@earendil-works/pi-coding-agent\";\nimport { Type } from \"typebox\";\nimport { redactPrivateText } from \"./context.js\";\nimport { MAX_TOOL_MESSAGE_BYTES, truncateUtf8 } from \"./limits.js\";\nimport type { AgentMailboxMessage } from \"./registry.js\";\n\nconst MAX_PEER_MESSAGE_BYTES = 16 * 1024;\nconst MAX_DEDUPLICATION_KEY_LENGTH = 256;\nconst PEER_ENVELOPE_HEADER =\n\t/^Message Type: SUBAGENT_(?:COMPLETION|PEER_MESSAGE)\\nProtocol: pi-subagents:v1\\nMessage ID: (msg_[^\\s]+)\\n(?:Completion ID: (completion:[^\\s]+)\\n)?Sender ID: [^\\n]+\\n(?:Sender Path: [^\\n]+\\n)?Payload:\\n/u;\n\nexport interface ChildPeerClient {\n\tsend(target: string, message: string, deduplicationKey?: string): Promise<AgentMailboxMessage>;\n\tlist(): Promise<unknown>;\n\tacknowledge(messageIds: readonly string[], completionIds: readonly string[]): Promise<void>;\n}\n\nexport function createChildPeerExtension(client: ChildPeerClient): ExtensionFactory {\n\treturn (pi) => {\n\t\tpi.registerTool(\n\t\t\tdefineTool({\n\t\t\t\tname: \"subagent_peer_send\",\n\t\t\t\tlabel: \"Send Peer Message\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Send a bounded queue-only message to /root or another retained agent by canonical task path. The runtime binds your sender identity; this tool never starts an idle turn.\",\n\t\t\t\tpromptSnippet: \"Send a queue-only message to another retained agent\",\n\t\t\t\tparameters: Type.Object(\n\t\t\t\t\t{\n\t\t\t\t\t\ttarget: Type.String({ minLength: 1, maxLength: 2_048 }),\n\t\t\t\t\t\tmessage: Type.String({ minLength: 1, maxLength: MAX_PEER_MESSAGE_BYTES }),\n\t\t\t\t\t\tdeduplicationKey: Type.Optional(\n\t\t\t\t\t\t\tType.String({ minLength: 1, maxLength: MAX_DEDUPLICATION_KEY_LENGTH }),\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\t{ additionalProperties: false },\n\t\t\t\t),\n\t\t\t\tasync execute(_id, params) {\n\t\t\t\t\tconst message = await client.send(params.target, params.message, params.deduplicationKey);\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcontent: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: \"text\" as const,\n\t\t\t\t\t\t\t\ttext: `Queued ${message.id} for ${message.recipientId}; delivery does not start an idle turn.`,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t\tdetails: {\n\t\t\t\t\t\t\tmessageId: message.id,\n\t\t\t\t\t\t\trecipientId: message.recipientId,\n\t\t\t\t\t\t\tcreatedAt: message.createdAt,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t}),\n\t\t);\n\t\tpi.registerTool(\n\t\t\tdefineTool({\n\t\t\t\tname: \"subagent_peer_list\",\n\t\t\t\tlabel: \"List Peers\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"List bounded identity and lifecycle metadata for /root and retained agents in this session.\",\n\t\t\t\tpromptSnippet: \"List retained peer task paths\",\n\t\t\t\tparameters: Type.Object({}, { additionalProperties: false }),\n\t\t\t\tasync execute() {\n\t\t\t\t\tconst peers = await client.list();\n\t\t\t\t\tconst text = truncateUtf8(JSON.stringify(peers, null, 2), MAX_TOOL_MESSAGE_BYTES).text;\n\t\t\t\t\treturn { content: [{ type: \"text\" as const, text }], details: { peers } };\n\t\t\t\t},\n\t\t\t}),\n\t\t);\n\n\t\tconst acknowledgedMessageIds = new Set<string>();\n\t\tconst acknowledgedCompletionIds = new Set<string>();\n\t\tpi.on(\"context\", async (event) => {\n\t\t\tconst visible = visibleDeliveryIds(event.messages);\n\t\t\tconst messageIds = [...visible.messageIds].filter((id) => !acknowledgedMessageIds.has(id));\n\t\t\tconst completionIds = [...visible.completionIds].filter(\n\t\t\t\t(id) => !acknowledgedCompletionIds.has(id),\n\t\t\t);\n\t\t\tif (messageIds.length === 0 && completionIds.length === 0) return;\n\t\t\tawait client.acknowledge(messageIds, completionIds);\n\t\t\tfor (const id of messageIds) acknowledgedMessageIds.add(id);\n\t\t\tfor (const id of completionIds) acknowledgedCompletionIds.add(id);\n\t\t});\n\t};\n}\n\nexport function formatPeerMessage(message: AgentMailboxMessage, senderPath?: string): string {\n\treturn truncateUtf8(\n\t\t[\n\t\t\t`Message Type: ${message.completionId ? \"SUBAGENT_COMPLETION\" : \"SUBAGENT_PEER_MESSAGE\"}`,\n\t\t\t\"Protocol: pi-subagents:v1\",\n\t\t\t`Message ID: ${message.id}`,\n\t\t\t...(message.completionId ? [`Completion ID: ${message.completionId}`] : []),\n\t\t\t`Sender ID: ${message.senderId}`,\n\t\t\t...(senderPath ? [`Sender Path: ${senderPath}`] : []),\n\t\t\t\"Payload:\",\n\t\t\tredactPrivateText(message.content),\n\t\t].join(\"\\n\"),\n\t\tMAX_TOOL_MESSAGE_BYTES,\n\t).text;\n}\n\nexport function visibleDeliveryIds(messages: readonly unknown[]): {\n\tmessageIds: Set<string>;\n\tcompletionIds: Set<string>;\n} {\n\tconst messageIds = new Set<string>();\n\tconst completionIds = new Set<string>();\n\tfor (const message of messages) {\n\t\tfor (const text of messageText(message)) {\n\t\t\tconst match = PEER_ENVELOPE_HEADER.exec(text);\n\t\t\tif (!match) continue;\n\t\t\tmessageIds.add(match[1]);\n\t\t\tif (match[2]) completionIds.add(match[2]);\n\t\t}\n\t}\n\treturn { messageIds, completionIds };\n}\n\nfunction messageText(message: unknown): string[] {\n\tif (!message || typeof message !== \"object\" || Array.isArray(message)) return [];\n\tconst candidate = message as Record<string, unknown>;\n\tif (candidate.role !== \"user\") return [];\n\tconst content = candidate.content;\n\tif (typeof content === \"string\") return [content];\n\tif (!Array.isArray(content)) return [];\n\treturn content.flatMap((part) => {\n\t\tif (!part || typeof part !== \"object\" || Array.isArray(part)) return [];\n\t\tconst text = (part as Record<string, unknown>).text;\n\t\treturn typeof text === \"string\" ? [text] : [];\n\t});\n}\n", "import { fileURLToPath } from \"node:url\";\nimport type { ExtensionFactory } from \"@earendil-works/pi-coding-agent\";\nimport { createChildPeerExtension } from \"./child-peer-tools.js\";\nimport type { PeerBridgeCredentials, PeerDescriptor } from \"./peer-communication.js\";\nimport type { AgentMailboxMessage } from \"./registry.js\";\n\nexport const CHILD_PEER_TOOL_NAMES = [\"subagent_peer_send\", \"subagent_peer_list\"] as const;\n\nexport interface PeerTransportRuntime {\n\tsend(\n\t\tsenderId: string,\n\t\ttarget: string,\n\t\tmessage: string,\n\t\tdeduplicationKey?: string,\n\t): Promise<AgentMailboxMessage>;\n\tlist(senderId: string): PeerDescriptor[];\n\tacknowledge(\n\t\tagentId: string,\n\t\tmessageIds: readonly string[],\n\t\tcompletionIds?: readonly string[],\n\t): Promise<void>;\n\tissueCredentials(agentId: string, generation: number): Promise<PeerBridgeCredentials>;\n\trevoke(agentId: string): void;\n}\n\nexport function createInProcessPeerExtension(\n\truntime: PeerTransportRuntime,\n\tagentId: string,\n): ExtensionFactory {\n\treturn createChildPeerExtension({\n\t\tsend: (target, message, deduplicationKey) =>\n\t\t\truntime.send(agentId, target, message, deduplicationKey),\n\t\tlist: async () => runtime.list(agentId),\n\t\tacknowledge: (messageIds, completionIds) =>\n\t\t\truntime.acknowledge(agentId, messageIds, completionIds),\n\t});\n}\n\nexport function childPeerBridgePath(): string {\n\treturn fileURLToPath(new URL(\"./child-peer-bridge.ts\", import.meta.url));\n}\n\nexport function peerBridgeEnvironment(credentials: PeerBridgeCredentials): NodeJS.ProcessEnv {\n\treturn {\n\t\tPI_SUBAGENT_PEER_HOST: credentials.host,\n\t\tPI_SUBAGENT_PEER_PORT: String(credentials.port),\n\t\tPI_SUBAGENT_PEER_TOKEN: credentials.token,\n\t};\n}\n"],
5
- "mappings": "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",
3
+ "sources": ["../../src/child-peer-tools.ts"],
4
+ "sourcesContent": ["import { defineTool, type ExtensionFactory } from \"@earendil-works/pi-coding-agent\";\nimport { Type } from \"typebox\";\nimport { redactPrivateText } from \"./context.js\";\nimport { MAX_TOOL_MESSAGE_BYTES, truncateUtf8 } from \"./limits.js\";\nimport type { AgentMailboxMessage } from \"./registry.js\";\n\nconst MAX_PEER_MESSAGE_BYTES = 16 * 1024;\nconst MAX_DEDUPLICATION_KEY_LENGTH = 256;\nconst PEER_ENVELOPE_HEADER =\n\t/^Message Type: SUBAGENT_(?:COMPLETION|PEER_MESSAGE)\\nProtocol: pi-subagents:v1\\nMessage ID: (msg_[^\\s]+)\\n(?:Completion ID: (completion:[^\\s]+)\\n)?Sender ID: [^\\n]+\\n(?:Sender Path: [^\\n]+\\n)?Payload:\\n/u;\n\nexport interface ChildPeerClient {\n\tsend(target: string, message: string, deduplicationKey?: string): Promise<AgentMailboxMessage>;\n\tlist(): Promise<unknown>;\n\tacknowledge(messageIds: readonly string[], completionIds: readonly string[]): Promise<void>;\n}\n\nexport function createChildPeerExtension(client: ChildPeerClient): ExtensionFactory {\n\treturn (pi) => {\n\t\tpi.registerTool(\n\t\t\tdefineTool({\n\t\t\t\tname: \"subagent_peer_send\",\n\t\t\t\tlabel: \"Send Peer Message\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"Send a bounded queue-only message to /root or another retained agent by canonical task path. The runtime binds your sender identity; this tool never starts an idle turn.\",\n\t\t\t\tpromptSnippet: \"Send a queue-only message to another retained agent\",\n\t\t\t\tparameters: Type.Object(\n\t\t\t\t\t{\n\t\t\t\t\t\ttarget: Type.String({ minLength: 1, maxLength: 2_048 }),\n\t\t\t\t\t\tmessage: Type.String({ minLength: 1, maxLength: MAX_PEER_MESSAGE_BYTES }),\n\t\t\t\t\t\tdeduplicationKey: Type.Optional(\n\t\t\t\t\t\t\tType.String({ minLength: 1, maxLength: MAX_DEDUPLICATION_KEY_LENGTH }),\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\t{ additionalProperties: false },\n\t\t\t\t),\n\t\t\t\tasync execute(_id, params) {\n\t\t\t\t\tconst message = await client.send(params.target, params.message, params.deduplicationKey);\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcontent: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: \"text\" as const,\n\t\t\t\t\t\t\t\ttext: `Queued ${message.id} for ${message.recipientId}; delivery does not start an idle turn.`,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t\tdetails: {\n\t\t\t\t\t\t\tmessageId: message.id,\n\t\t\t\t\t\t\trecipientId: message.recipientId,\n\t\t\t\t\t\t\tcreatedAt: message.createdAt,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t}),\n\t\t);\n\t\tpi.registerTool(\n\t\t\tdefineTool({\n\t\t\t\tname: \"subagent_peer_list\",\n\t\t\t\tlabel: \"List Peers\",\n\t\t\t\tdescription:\n\t\t\t\t\t\"List bounded identity and lifecycle metadata for /root and retained agents in this session.\",\n\t\t\t\tpromptSnippet: \"List retained peer task paths\",\n\t\t\t\tparameters: Type.Object({}, { additionalProperties: false }),\n\t\t\t\tasync execute() {\n\t\t\t\t\tconst peers = await client.list();\n\t\t\t\t\tconst text = truncateUtf8(JSON.stringify(peers, null, 2), MAX_TOOL_MESSAGE_BYTES).text;\n\t\t\t\t\treturn { content: [{ type: \"text\" as const, text }], details: { peers } };\n\t\t\t\t},\n\t\t\t}),\n\t\t);\n\n\t\tconst acknowledgedMessageIds = new Set<string>();\n\t\tconst acknowledgedCompletionIds = new Set<string>();\n\t\tpi.on(\"context\", async (event) => {\n\t\t\tconst visible = visibleDeliveryIds(event.messages);\n\t\t\tconst messageIds = [...visible.messageIds].filter((id) => !acknowledgedMessageIds.has(id));\n\t\t\tconst completionIds = [...visible.completionIds].filter(\n\t\t\t\t(id) => !acknowledgedCompletionIds.has(id),\n\t\t\t);\n\t\t\tif (messageIds.length === 0 && completionIds.length === 0) return;\n\t\t\tawait client.acknowledge(messageIds, completionIds);\n\t\t\tfor (const id of messageIds) acknowledgedMessageIds.add(id);\n\t\t\tfor (const id of completionIds) acknowledgedCompletionIds.add(id);\n\t\t});\n\t};\n}\n\nexport function formatPeerMessage(message: AgentMailboxMessage, senderPath?: string): string {\n\treturn truncateUtf8(\n\t\t[\n\t\t\t`Message Type: ${message.completionId ? \"SUBAGENT_COMPLETION\" : \"SUBAGENT_PEER_MESSAGE\"}`,\n\t\t\t\"Protocol: pi-subagents:v1\",\n\t\t\t`Message ID: ${message.id}`,\n\t\t\t...(message.completionId ? [`Completion ID: ${message.completionId}`] : []),\n\t\t\t`Sender ID: ${message.senderId}`,\n\t\t\t...(senderPath ? [`Sender Path: ${senderPath}`] : []),\n\t\t\t\"Payload:\",\n\t\t\tredactPrivateText(message.content),\n\t\t].join(\"\\n\"),\n\t\tMAX_TOOL_MESSAGE_BYTES,\n\t).text;\n}\n\nexport function visibleDeliveryIds(messages: readonly unknown[]): {\n\tmessageIds: Set<string>;\n\tcompletionIds: Set<string>;\n} {\n\tconst messageIds = new Set<string>();\n\tconst completionIds = new Set<string>();\n\tfor (const message of messages) {\n\t\tfor (const text of messageText(message)) {\n\t\t\tconst match = PEER_ENVELOPE_HEADER.exec(text);\n\t\t\tif (!match) continue;\n\t\t\tmessageIds.add(match[1]);\n\t\t\tif (match[2]) completionIds.add(match[2]);\n\t\t}\n\t}\n\treturn { messageIds, completionIds };\n}\n\nfunction messageText(message: unknown): string[] {\n\tif (!message || typeof message !== \"object\" || Array.isArray(message)) return [];\n\tconst candidate = message as Record<string, unknown>;\n\tif (candidate.role !== \"user\") return [];\n\tconst content = candidate.content;\n\tif (typeof content === \"string\") return [content];\n\tif (!Array.isArray(content)) return [];\n\treturn content.flatMap((part) => {\n\t\tif (!part || typeof part !== \"object\" || Array.isArray(part)) return [];\n\t\tconst text = (part as Record<string, unknown>).text;\n\t\treturn typeof text === \"string\" ? [text] : [];\n\t});\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,5 +1,9 @@
1
1
  // @generated by scripts/build-runtime.mjs; do not edit.
2
2
  // @ts-nocheck -- generated JavaScript uses a .ts extension for Pi's Jiti loader.
3
+ import {
4
+ MAX_SPAWN_IDEMPOTENCY_KEY_LENGTH,
5
+ assertSpawnIdempotencyKey
6
+ } from "./chunk-S2IWVK3J.ts";
3
7
  import {
4
8
  assertCurrentSpawn,
5
9
  waitForOwnedSpawn
@@ -50,10 +54,6 @@ import {
50
54
  MAX_TOOL_MESSAGE_BYTES,
51
55
  truncateUtf8
52
56
  } from "./chunk-H3FP6DLR.ts";
53
- import {
54
- MAX_SPAWN_IDEMPOTENCY_KEY_LENGTH,
55
- assertSpawnIdempotencyKey
56
- } from "./chunk-S2IWVK3J.ts";
57
57
 
58
58
  // src/stateful-agent-view.ts
59
59
  function formatStatefulAgentLine(agent, now = Date.now()) {
@@ -547,7 +547,7 @@ function loadStatefulSessionModules() {
547
547
  import("./completion-delivery-YPOWSSV3.ts"),
548
548
  import("./peer-communication-KL36Z6CO.ts"),
549
549
  import("./context-QDKLVQXE.ts"),
550
- import("./create-stateful-transport-F5OG2LEY.ts"),
550
+ import("./create-stateful-transport-ZP3IXNV3.ts"),
551
551
  import("./cwd-policy-NB6XZ5GF.ts"),
552
552
  import("./persistence-VSGXAW4P.ts"),
553
553
  import("./registry-E6XPJB7L.ts"),
@@ -1540,4 +1540,4 @@ export {
1540
1540
  formatStatefulAgentLine,
1541
1541
  registerStatefulSubagents
1542
1542
  };
1543
- //# sourceMappingURL=chunk-2OUVSORM.ts.map
1543
+ //# sourceMappingURL=chunk-CBP76ARQ.ts.map
@@ -2,9 +2,8 @@
2
2
  // @ts-nocheck -- generated JavaScript uses a .ts extension for Pi's Jiti loader.
3
3
  import {
4
4
  CHILD_PEER_TOOL_NAMES,
5
- createInProcessPeerExtension,
6
- formatPeerMessage
7
- } from "./chunk-EWWXFU7N.ts";
5
+ createInProcessPeerExtension
6
+ } from "./chunk-RY2AEGMZ.ts";
8
7
  import {
9
8
  resolvePiPromptResources
10
9
  } from "./chunk-G6VZTCFH.ts";
@@ -22,6 +21,9 @@ import {
22
21
  import {
23
22
  TurnBudgetMonitor
24
23
  } from "./chunk-ONDTY4EL.ts";
24
+ import {
25
+ formatPeerMessage
26
+ } from "./chunk-5DGRMKNV.ts";
25
27
  import {
26
28
  discoverAgents
27
29
  } from "./chunk-PSK43Y6A.ts";
@@ -732,4 +734,4 @@ export {
732
734
  seedChildSessionManager,
733
735
  buildCurrentTurnPrompt
734
736
  };
735
- //# sourceMappingURL=chunk-UVFVHIOP.ts.map
737
+ //# sourceMappingURL=chunk-H3BFJ7HJ.ts.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/in-process-transport.ts"],
4
4
  "sourcesContent": ["import type { Api, Model } from \"@earendil-works/pi-ai\";\nimport {\n\ttype AgentSessionServices,\n\tgetAgentDir,\n\ttype ModelRegistry,\n\ttype ModelRuntime,\n\tSessionManager,\n\tSettingsManager,\n} from \"@earendil-works/pi-coding-agent\";\nimport { discoverAgents } from \"./agents/discovery.js\";\nimport type { AgentConfig, SubagentThinkingLevel } from \"./agents/types.js\";\nimport { formatPeerMessage } from \"./child-peer-tools.js\";\nimport { redactPrivateText } from \"./context.js\";\nimport { appendDelegationContract } from \"./delegation-contract.js\";\nimport { resolveDefaultSubagentTimeoutMs } from \"./execution/runtime-policy.js\";\nimport { DEFAULT_MAX_CONTEXT_BYTES, DEFAULT_MAX_OUTPUT_BYTES, truncateUtf8 } from \"./limits.js\";\nimport {\n\tCHILD_PEER_TOOL_NAMES,\n\tcreateInProcessPeerExtension,\n\ttype PeerTransportRuntime,\n} from \"./peer-transport.js\";\nimport { resolvePiPromptResources } from \"./prompt-resources.js\";\nimport type { AgentMailboxMessage, AgentTurn, ManagedAgent, TurnOutcome } from \"./registry.js\";\nimport { appendResultInstruction } from \"./result-contract.js\";\nimport { safeTerminalLine } from \"./safe-text.js\";\nimport { readSubagentSettings } from \"./settings.js\";\nimport {\n\tformatTimeoutCheckpoint,\n\tformatTurnTerminationMessage,\n\tjournalMessages,\n\tTimeoutProgressJournal,\n\tTURN_TERMINATION_VERSION,\n\ttype TurnTerminationReport,\n} from \"./timeout-checkpoint.js\";\nimport {\n\tbuildTimeoutFinalizationPrompt,\n\tresolveTimeoutFinalizationMs,\n} from \"./timeout-finalization.js\";\nimport type { SubagentTransport } from \"./transport.js\";\nimport type { TransportProgressCallback, TransportTelemetry } from \"./transport-types.js\";\nimport { TurnBudgetMonitor, type TurnBudgetStop, type TurnLimits } from \"./turn-budget.js\";\n\nconst BUILT_IN_TOOL_NAMES = new Set([\"read\", \"bash\", \"edit\", \"write\", \"grep\", \"find\", \"ls\"]);\nconst DEFAULT_ABORT_GRACE_MS = 5_000;\n\ninterface ChildModelRuntime {\n\tgetModel(provider: string, modelId: string): Model<Api> | undefined;\n\tregisterProvider(provider: string, config: unknown): void;\n\tregisterNativeProvider?(provider: unknown): void;\n\tsetRuntimeApiKey(provider: string, apiKey: string): Promise<void> | void;\n}\n\ninterface CodingAgentRuntimeModule {\n\tcreateAgentSessionFromServices?: typeof import(\"@earendil-works/pi-coding-agent\").createAgentSessionFromServices;\n\tcreateAgentSessionServices?: typeof import(\"@earendil-works/pi-coding-agent\").createAgentSessionServices;\n\tresolveCliModel?: typeof import(\"@earendil-works/pi-coding-agent\").resolveCliModel;\n}\n\ninterface CoreModelSupport {\n\tmodelRuntime: ModelRuntime;\n\tresolveCliModel: typeof import(\"@earendil-works/pi-coding-agent\").resolveCliModel;\n}\n\ninterface CoreSessionSupport {\n\tcreateAgentSessionFromServices: typeof import(\"@earendil-works/pi-coding-agent\").createAgentSessionFromServices;\n\tcreateAgentSessionServices: typeof import(\"@earendil-works/pi-coding-agent\").createAgentSessionServices;\n\tresolveCliModel: typeof import(\"@earendil-works/pi-coding-agent\").resolveCliModel;\n}\n\ninterface RegisteredProviderRegistry {\n\tgetRegisteredProviderConfig?(provider: string): unknown;\n\tgetRegisteredProviderIds?(): readonly string[];\n\tgetRegisteredNativeProvider?(provider: string): unknown;\n}\n\nexport interface ParentRuntimeSnapshot {\n\tmodel: Model<Api> | undefined;\n\tthinkingLevel: SubagentThinkingLevel;\n}\n\nexport interface ChildSession {\n\treadonly sessionId: string;\n\treadonly messages: readonly unknown[];\n\treadonly provider?: string;\n\treadonly model?: string;\n\treadonly thinkingLevel?: SubagentThinkingLevel;\n\tprompt(text: string): Promise<void>;\n\tsteer?(text: string): Promise<void>;\n\tsubscribe(listener: (event: unknown) => void): () => void;\n\tabort(): Promise<void>;\n\tdispose(): void;\n\tgetActiveToolNames(): string[];\n}\n\nexport interface ChildSessionCreateOptions {\n\tagent: ManagedAgent;\n\tagentConfig: AgentConfig;\n\tcontext?: string;\n\thistory: AgentTurn[];\n\tmodelRegistry: ModelRegistry;\n\tparentRuntime: ParentRuntimeSnapshot;\n\ttools?: string[];\n\tpeerRuntime?: PeerTransportRuntime;\n}\n\nexport type ChildSessionFactory = (options: ChildSessionCreateOptions) => Promise<ChildSession>;\n\nexport interface InProcessTransportOptions {\n\tmodelRegistry: ModelRegistry;\n\tgetParentRuntime: () => ParentRuntimeSnapshot;\n\tcreateSession?: ChildSessionFactory;\n\tdiscoverAgent?: (agent: ManagedAgent) => AgentConfig | undefined;\n\tdefaultTimeoutMs?: number;\n\tabortGraceMs?: number;\n\ttimeoutFinalizationMs?: number;\n\tpeerRuntime?: PeerTransportRuntime;\n}\n\ninterface ChildSessionRecord {\n\tsession: ChildSession;\n\tunsubscribe: () => void;\n\tlastOutput: string;\n\tdisposed: boolean;\n}\n\ntype PromptSettlement =\n\t| { kind: \"completed\" }\n\t| { kind: \"failed\"; error: unknown }\n\t| { kind: \"timeout\" }\n\t| { kind: \"limit\"; stop: TurnBudgetStop }\n\t| { kind: \"aborted\" };\n\nexport class InProcessTransport implements SubagentTransport {\n\treadonly kind = \"in-process\" as const;\n\tprivate readonly sessions = new Map<string, ChildSessionRecord>();\n\tprivate readonly createSession: ChildSessionFactory;\n\tprivate readonly discoverAgent: (agent: ManagedAgent) => AgentConfig | undefined;\n\tprivate readonly defaultTimeoutMs: number;\n\tprivate readonly abortGraceMs: number;\n\n\tconstructor(private readonly options: InProcessTransportOptions) {\n\t\tthis.createSession = options.createSession ?? createSdkChildSession;\n\t\tthis.discoverAgent =\n\t\t\toptions.discoverAgent ??\n\t\t\t((agent) =>\n\t\t\t\tdiscoverAgents(agent.cwd, agent.agentScope ?? \"user\", readSubagentSettings()).agents.find(\n\t\t\t\t\t(candidate) => candidate.name === agent.agent,\n\t\t\t\t));\n\t\tthis.defaultTimeoutMs = options.defaultTimeoutMs ?? resolveDefaultSubagentTimeoutMs();\n\t\tthis.abortGraceMs = options.abortGraceMs ?? DEFAULT_ABORT_GRACE_MS;\n\t}\n\n\tasync runTurn(\n\t\tagent: ManagedAgent,\n\t\ttask: string,\n\t\tsignal: AbortSignal,\n\t\tonProgress?: TransportProgressCallback,\n\t): Promise<TurnOutcome> {\n\t\tconst startedAt = Date.now();\n\t\tlet telemetry: TransportTelemetry = {\n\t\t\ttransport: \"in-process\",\n\t\t\tphase: \"starting\",\n\t\t\tupdatedAt: startedAt,\n\t\t\ttiming: { startedAt, transportStartedAt: startedAt },\n\t\t};\n\t\tconst publish = (patch: Partial<TransportTelemetry>) => {\n\t\t\ttelemetry = {\n\t\t\t\t...telemetry,\n\t\t\t\t...patch,\n\t\t\t\ttiming: { ...telemetry.timing, ...patch.timing },\n\t\t\t\tupdatedAt: Date.now(),\n\t\t\t};\n\t\t\tonProgress?.({ ...telemetry, timing: { ...telemetry.timing } });\n\t\t};\n\t\tpublish({});\n\t\tif (signal.aborted) {\n\t\t\tpublish({ phase: \"interrupted\", failurePhase: \"starting\" });\n\t\t\treturn { ...interruptedOutcome(\"\"), telemetry };\n\t\t}\n\t\tconst agentConfig = this.discoverAgent(agent);\n\t\tif (!agentConfig) {\n\t\t\tpublish({ phase: \"failed\", failurePhase: \"starting\" });\n\t\t\treturn {\n\t\t\t\toutput: \"\",\n\t\t\t\texitCode: 1,\n\t\t\t\terror: `Unknown subagent: ${agent.agent}`,\n\t\t\t\ttelemetry,\n\t\t\t};\n\t\t}\n\t\tlet tools: string[] | undefined;\n\t\ttry {\n\t\t\ttools = validateInProcessTools(agent.executionPlan?.effectiveTools ?? agentConfig.tools);\n\t\t} catch (error) {\n\t\t\tpublish({ phase: \"failed\", failurePhase: \"starting\" });\n\t\t\treturn { output: \"\", exitCode: 1, error: errorMessage(error), telemetry };\n\t\t}\n\t\tlet record: ChildSessionRecord;\n\t\ttry {\n\t\t\trecord = await this.getOrCreate(agent, agentConfig, tools);\n\t\t} catch (error) {\n\t\t\tpublish({ phase: \"failed\", failurePhase: \"starting\" });\n\t\t\treturn { output: \"\", exitCode: 1, error: errorMessage(error), telemetry };\n\t\t}\n\t\tpublish({\n\t\t\tphase: \"ready\",\n\t\t\tprovider: record.session.provider,\n\t\t\tmodel: record.session.model,\n\t\t\tthinkingLevel: record.session.thinkingLevel,\n\t\t\ttiming: { readyAt: Date.now() },\n\t\t});\n\t\tif (signal.aborted) {\n\t\t\tawait this.releaseById(agent.id).catch(() => undefined);\n\t\t\tpublish({ phase: \"interrupted\", failurePhase: \"ready\" });\n\t\t\treturn { ...interruptedOutcome(\"\"), telemetry };\n\t\t}\n\t\tconst prompt = buildCurrentTurnPrompt(agent, task);\n\t\tconst timeoutMs =\n\t\t\tagent.currentTimeoutMs ?? agent.timeoutMs ?? agentConfig.timeoutMs ?? this.defaultTimeoutMs;\n\t\tconst startingMessageCount = record.session.messages.length;\n\t\trecord.lastOutput = \"\";\n\t\tpublish({ phase: \"running\", timing: { promptAcceptedAt: Date.now() } });\n\t\tconst settlement = await this.runPrompt(record, prompt, signal, timeoutMs, {\n\t\t\tidleTimeoutMs: agent.currentIdleTimeoutMs ?? agent.idleTimeoutMs,\n\t\t\tmaxTurns: agent.currentMaxTurns ?? agent.maxTurns,\n\t\t\tmaxToolCalls: agent.currentMaxToolCalls ?? agent.maxToolCalls,\n\t\t});\n\t\tconst final = latestAssistant(record.session.messages.slice(startingMessageCount));\n\t\tconst output = truncateUtf8(final.output || record.lastOutput, DEFAULT_MAX_OUTPUT_BYTES);\n\t\tconst truncated = output.truncated || agent.contextTruncated;\n\t\tconst policy = inProcessPolicy(agentConfig, agent);\n\t\tconst settledAt = Date.now();\n\t\tif (signal.aborted && (settlement.kind === \"timeout\" || settlement.kind === \"limit\")) {\n\t\t\tpublish({ phase: \"interrupted\", failurePhase: \"running\", timing: { settledAt } });\n\t\t\treturn {\n\t\t\t\t...interruptedOutcome(output.text),\n\t\t\t\ttruncated,\n\t\t\t\tpolicy,\n\t\t\t\ttelemetry,\n\t\t\t};\n\t\t}\n\n\t\tswitch (settlement.kind) {\n\t\t\tcase \"completed\":\n\t\t\t\tpublish({\n\t\t\t\t\tphase: final.stopReason === \"error\" ? \"failed\" : \"settled\",\n\t\t\t\t\ttiming: { settledAt },\n\t\t\t\t});\n\t\t\t\tif (final.stopReason === \"error\") {\n\t\t\t\t\treturn {\n\t\t\t\t\t\toutput: output.text,\n\t\t\t\t\t\texitCode: 1,\n\t\t\t\t\t\ttruncated,\n\t\t\t\t\t\terror: final.error || \"In-process subagent returned an error\",\n\t\t\t\t\t\tpolicy,\n\t\t\t\t\t\ttelemetry,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif (final.stopReason === \"aborted\") {\n\t\t\t\t\tpublish({ phase: \"interrupted\", failurePhase: \"running\" });\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...interruptedOutcome(output.text),\n\t\t\t\t\t\ttruncated,\n\t\t\t\t\t\tpolicy,\n\t\t\t\t\t\ttelemetry,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\toutput: output.text,\n\t\t\t\t\texitCode: 0,\n\t\t\t\t\ttruncated,\n\t\t\t\t\tpolicy,\n\t\t\t\t\ttelemetry,\n\t\t\t\t};\n\t\t\tcase \"failed\":\n\t\t\t\tpublish({ phase: \"failed\", failurePhase: \"running\", timing: { settledAt } });\n\t\t\t\treturn {\n\t\t\t\t\toutput: output.text,\n\t\t\t\t\texitCode: 1,\n\t\t\t\t\ttruncated,\n\t\t\t\t\terror: errorMessage(settlement.error),\n\t\t\t\t\tpolicy,\n\t\t\t\t\ttelemetry,\n\t\t\t\t};\n\t\t\tcase \"timeout\":\n\t\t\tcase \"limit\": {\n\t\t\t\tconst stop =\n\t\t\t\t\tsettlement.kind === \"limit\"\n\t\t\t\t\t\t? settlement.stop\n\t\t\t\t\t\t: ({ reason: \"work_timeout\", limit: timeoutMs } as const);\n\t\t\t\tconst journal = new TimeoutProgressJournal();\n\t\t\t\tjournalMessages(journal, record.session.messages.slice(startingMessageCount));\n\t\t\t\tconst termination: TurnTerminationReport = {\n\t\t\t\t\tversion: TURN_TERMINATION_VERSION,\n\t\t\t\t\treason: stop.reason,\n\t\t\t\t\tlimit: stop.limit,\n\t\t\t\t\tcheckpoint: journal.checkpoint(task, output.text),\n\t\t\t\t\tfinalization: { attempted: false, status: \"skipped\", durationMs: 0 },\n\t\t\t\t};\n\t\t\t\tlet finalizedOutput = output.text || formatTimeoutCheckpoint(termination.checkpoint);\n\t\t\t\tlet finalizationError: string | undefined;\n\t\t\t\tif (!signal.aborted && this.sessions.get(agent.id) === record) {\n\t\t\t\t\tpublish({ phase: \"finalizing\", failurePhase: \"running\" });\n\t\t\t\t\tconst summaryStart = record.session.messages.length;\n\t\t\t\t\tconst finalizationStartedAt = Date.now();\n\t\t\t\t\trecord.lastOutput = \"\";\n\t\t\t\t\tconst summarySettlement = await this.runPrompt(\n\t\t\t\t\t\trecord,\n\t\t\t\t\t\tbuildTimeoutFinalizationPrompt({\n\t\t\t\t\t\t\ttask,\n\t\t\t\t\t\t\tpartialOutput: output.text,\n\t\t\t\t\t\t\tcheckpoint: termination.checkpoint,\n\t\t\t\t\t\t\tterminationReason: stop.reason,\n\t\t\t\t\t\t\tresultFormat: agent.resultFormat,\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tsignal,\n\t\t\t\t\t\tresolveTimeoutFinalizationMs(timeoutMs, this.options.timeoutFinalizationMs),\n\t\t\t\t\t);\n\t\t\t\t\tconst summary = latestAssistant(record.session.messages.slice(summaryStart));\n\t\t\t\t\tconst boundedSummary = truncateUtf8(\n\t\t\t\t\t\tsummary.output || record.lastOutput,\n\t\t\t\t\t\tDEFAULT_MAX_OUTPUT_BYTES,\n\t\t\t\t\t);\n\t\t\t\t\tif (\n\t\t\t\t\t\tsummarySettlement.kind === \"completed\" &&\n\t\t\t\t\t\tsummary.stopReason !== \"error\" &&\n\t\t\t\t\t\tboundedSummary.text.trim()\n\t\t\t\t\t) {\n\t\t\t\t\t\tfinalizedOutput = boundedSummary.text;\n\t\t\t\t\t\ttermination.finalization = {\n\t\t\t\t\t\t\tattempted: true,\n\t\t\t\t\t\t\tstatus: \"completed\",\n\t\t\t\t\t\t\tdurationMs: Date.now() - finalizationStartedAt,\n\t\t\t\t\t\t};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfinalizationError =\n\t\t\t\t\t\t\tsummarySettlement.kind === \"failed\"\n\t\t\t\t\t\t\t\t? errorMessage(summarySettlement.error)\n\t\t\t\t\t\t\t\t: `timeout summary ${summarySettlement.kind}`;\n\t\t\t\t\t\ttermination.finalization = {\n\t\t\t\t\t\t\tattempted: true,\n\t\t\t\t\t\t\tstatus: summarySettlement.kind === \"timeout\" ? \"timed_out\" : \"failed\",\n\t\t\t\t\t\t\tdurationMs: Date.now() - finalizationStartedAt,\n\t\t\t\t\t\t\terror: finalizationError,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tpublish({ phase: \"failed\", failurePhase: \"running\", timing: { settledAt: Date.now() } });\n\t\t\t\treturn {\n\t\t\t\t\toutput: finalizedOutput,\n\t\t\t\t\texitCode: 124,\n\t\t\t\t\ttruncated,\n\t\t\t\t\terror: [\n\t\t\t\t\t\tformatTurnTerminationMessage(stop.reason, stop.limit, \"In-process subagent\"),\n\t\t\t\t\t\tfinalizationError,\n\t\t\t\t\t]\n\t\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t\t.join(\"; \"),\n\t\t\t\t\tpolicy,\n\t\t\t\t\ttermination,\n\t\t\t\t\ttelemetry,\n\t\t\t\t};\n\t\t\t}\n\t\t\tcase \"aborted\":\n\t\t\t\tpublish({ phase: \"interrupted\", failurePhase: \"running\", timing: { settledAt } });\n\t\t\t\treturn {\n\t\t\t\t\t...interruptedOutcome(output.text),\n\t\t\t\t\ttruncated,\n\t\t\t\t\tpolicy,\n\t\t\t\t\ttelemetry,\n\t\t\t\t};\n\t\t}\n\t}\n\n\tasync deliverMessage(agent: ManagedAgent, message: AgentMailboxMessage): Promise<boolean> {\n\t\tconst record = this.sessions.get(agent.id);\n\t\tif (!record || record.disposed || !record.session.steer) return false;\n\t\tawait record.session.steer(formatPeerMessage(message));\n\t\treturn true;\n\t}\n\n\tasync release(agent: ManagedAgent): Promise<void> {\n\t\tawait this.releaseById(agent.id);\n\t}\n\n\tasync shutdown(): Promise<void> {\n\t\tconst agentIds = [...this.sessions.keys()];\n\t\tconst results = await Promise.allSettled(agentIds.map((agentId) => this.releaseById(agentId)));\n\t\tconst failures = results.flatMap((result) =>\n\t\t\tresult.status === \"rejected\" ? [result.reason] : [],\n\t\t);\n\t\tif (failures.length > 0) {\n\t\t\tthrow new AggregateError(\n\t\t\t\tfailures,\n\t\t\t\t`Failed to dispose ${failures.length} in-process subagent session(s)`,\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate async releaseById(agentId: string): Promise<void> {\n\t\tconst record = this.sessions.get(agentId);\n\t\tif (!record) return;\n\t\tthis.sessions.delete(agentId);\n\t\tthis.options.peerRuntime?.revoke(agentId);\n\t\tif (record.disposed) return;\n\t\trecord.disposed = true;\n\t\tconst failures: unknown[] = [];\n\t\ttry {\n\t\t\trecord.unsubscribe();\n\t\t} catch (error) {\n\t\t\tfailures.push(error);\n\t\t}\n\t\tif (record.session.messages.length > 0) {\n\t\t\tawait settleWithin(record.session.abort(), this.abortGraceMs);\n\t\t}\n\t\ttry {\n\t\t\trecord.session.dispose();\n\t\t} catch (error) {\n\t\t\tfailures.push(error);\n\t\t}\n\t\tif (failures.length > 0) {\n\t\t\tthrow new AggregateError(\n\t\t\t\tfailures,\n\t\t\t\t`Failed to release in-process subagent ${agentId}: ${failures.map(errorMessage).join(\"; \")}`,\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate async getOrCreate(\n\t\tagent: ManagedAgent,\n\t\tagentConfig: AgentConfig,\n\t\ttools: string[] | undefined,\n\t): Promise<ChildSessionRecord> {\n\t\tconst existing = this.sessions.get(agent.id);\n\t\tif (existing) return existing;\n\t\tconst session = await this.createSession({\n\t\t\tagent,\n\t\t\tagentConfig,\n\t\t\tcontext: agent.context,\n\t\t\thistory: agent.history.map((turn) => ({ ...turn })),\n\t\t\tmodelRegistry: this.options.modelRegistry,\n\t\t\tparentRuntime: this.options.getParentRuntime(),\n\t\t\ttools,\n\t\t\tpeerRuntime: this.options.peerRuntime,\n\t\t});\n\t\tconst record: ChildSessionRecord = {\n\t\t\tsession,\n\t\t\tlastOutput: \"\",\n\t\t\tdisposed: false,\n\t\t\tunsubscribe: () => undefined,\n\t\t};\n\t\ttry {\n\t\t\trecord.unsubscribe = session.subscribe((event) => {\n\t\t\t\tconst message = eventMessage(event);\n\t\t\t\tif (!message) return;\n\t\t\t\tconst output = assistantText(message);\n\t\t\t\tif (output) record.lastOutput = truncateUtf8(output, DEFAULT_MAX_OUTPUT_BYTES).text;\n\t\t\t});\n\t\t} catch (error) {\n\t\t\trecord.disposed = true;\n\t\t\ttry {\n\t\t\t\tsession.dispose();\n\t\t\t} catch {\n\t\t\t\t// Preserve the subscription failure, which explains why creation was rejected.\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t\tthis.sessions.set(agent.id, record);\n\t\treturn record;\n\t}\n\n\tprivate async runPrompt(\n\t\trecord: ChildSessionRecord,\n\t\tprompt: string,\n\t\tsignal: AbortSignal,\n\t\ttimeoutMs: number,\n\t\tlimits: TurnLimits = {},\n\t): Promise<PromptSettlement> {\n\t\tif (signal.aborted) return { kind: \"aborted\" };\n\t\tlet timeout: NodeJS.Timeout | undefined;\n\t\tlet abortHandler: (() => void) | undefined;\n\t\tlet resolveLimit!: (settlement: PromptSettlement) => void;\n\t\tconst limitSettlement = new Promise<PromptSettlement>((resolve) => {\n\t\t\tresolveLimit = resolve;\n\t\t});\n\t\tconst monitor = new TurnBudgetMonitor({\n\t\t\t...limits,\n\t\t\tonExceeded: (stop) => resolveLimit({ kind: \"limit\", stop }),\n\t\t});\n\t\tconst unsubscribeBudget = record.session.subscribe((event) => {\n\t\t\tconst type = childEventType(event);\n\t\t\tif (type === \"tool_execution_end\") monitor.recordActivity();\n\t\t\tif (type !== \"message_end\") return;\n\t\t\tconst message = eventMessage(event);\n\t\t\tif (!message || typeof message !== \"object\" || Array.isArray(message)) return;\n\t\t\tconst value = message as Record<string, unknown>;\n\t\t\tif (value.role === \"toolResult\") {\n\t\t\t\tmonitor.recordActivity();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (value.role !== \"assistant\") return;\n\t\t\tmonitor.recordToolCalls(assistantToolCallCount(value.content));\n\t\t\tmonitor.recordAssistantTurn(\n\t\t\t\ttypeof value.stopReason === \"string\" ? value.stopReason : undefined,\n\t\t\t);\n\t\t});\n\t\tconst promptSettlement: Promise<PromptSettlement> = Promise.resolve()\n\t\t\t.then(() => {\n\t\t\t\tif (signal.aborted) throw new Error(\"In-process subagent prompt aborted before start\");\n\t\t\t\treturn record.session.prompt(prompt);\n\t\t\t})\n\t\t\t.then(() => ({ kind: \"completed\" as const }))\n\t\t\t.catch((error: unknown) => ({ kind: \"failed\" as const, error }));\n\t\tconst timeoutSettlement = new Promise<PromptSettlement>((resolve) => {\n\t\t\ttimeout = setTimeout(() => resolve({ kind: \"timeout\" }), timeoutMs);\n\t\t});\n\t\tconst abortSettlement = new Promise<PromptSettlement>((resolve) => {\n\t\t\tabortHandler = () => resolve({ kind: \"aborted\" });\n\t\t\tsignal.addEventListener(\"abort\", abortHandler, { once: true });\n\t\t\tif (signal.aborted) abortHandler();\n\t\t});\n\t\tconst settlement = await Promise.race([\n\t\t\tpromptSettlement,\n\t\t\ttimeoutSettlement,\n\t\t\tabortSettlement,\n\t\t\tlimitSettlement,\n\t\t]);\n\t\tif (timeout) clearTimeout(timeout);\n\t\tif (abortHandler) signal.removeEventListener(\"abort\", abortHandler);\n\t\ttry {\n\t\t\tunsubscribeBudget();\n\t\t} catch {\n\t\t\t// The owning record's unsubscribe/dispose path remains authoritative.\n\t\t}\n\t\tmonitor.dispose();\n\t\tif (\n\t\t\tsettlement.kind === \"timeout\" ||\n\t\t\tsettlement.kind === \"limit\" ||\n\t\t\tsettlement.kind === \"aborted\"\n\t\t) {\n\t\t\tconst [, settledAfterAbort] = await Promise.all([\n\t\t\t\tsettleWithin(record.session.abort(), this.abortGraceMs),\n\t\t\t\tcompletesWithin(promptSettlement, this.abortGraceMs),\n\t\t\t]);\n\t\t\tif (!settledAfterAbort) this.discardRecord(record);\n\t\t}\n\t\treturn settlement;\n\t}\n\n\tprivate discardRecord(record: ChildSessionRecord): void {\n\t\tfor (const [agentId, candidate] of this.sessions) {\n\t\t\tif (candidate === record) this.sessions.delete(agentId);\n\t\t}\n\t\tif (record.disposed) return;\n\t\trecord.disposed = true;\n\t\trecord.unsubscribe();\n\t\trecord.session.dispose();\n\t}\n}\n\nexport function validateInProcessTools(tools: string[] | undefined): string[] | undefined {\n\tif (tools === undefined) return undefined;\n\tconst unique = [...new Set(tools)];\n\tconst unsupported = unique.filter((tool) => !BUILT_IN_TOOL_NAMES.has(tool));\n\tif (unsupported.length > 0) {\n\t\tthrow new Error(\n\t\t\t`In-process subagents cannot load extension/custom tools: ${unsupported.map((tool) => safeTerminalLine(tool, 256)).join(\", \")}. Use stateful.transport \"subprocess\" for this agent.`,\n\t\t);\n\t}\n\treturn unique;\n}\n\nexport async function createSdkChildSession(\n\toptions: ChildSessionCreateOptions,\n): Promise<ChildSession> {\n\tconst agentDir = getAgentDir();\n\tconst projectTrusted =\n\t\toptions.agent.target?.trust.projectTrusted ??\n\t\t(options.agent.agentScope === \"project\" || options.agent.agentScope === \"both\");\n\tconst { services, support: coreSupport } = await prepareInProcessServices(\n\t\toptions.agent.cwd,\n\t\tagentDir,\n\t\toptions.agentConfig.systemPrompt,\n\t\tprojectTrusted,\n\t\toptions.peerRuntime\n\t\t\t? createInProcessPeerExtension(options.peerRuntime, options.agent.id)\n\t\t\t: undefined,\n\t);\n\tcopyRegisteredProviders(\n\t\toptions.modelRegistry as unknown as RegisteredProviderRegistry,\n\t\tservices.modelRuntime as unknown as ChildModelRuntime,\n\t);\n\tconst modelSupport: CoreModelSupport = {\n\t\tmodelRuntime: services.modelRuntime,\n\t\tresolveCliModel: coreSupport.resolveCliModel,\n\t};\n\tconst resolved = await resolveChildModel(options, modelSupport);\n\tawait transferChildModelAuth(options.modelRegistry, resolved.model, services.modelRuntime);\n\tconst model = resolved.model;\n\tconst sessionManager = SessionManager.inMemory(options.agent.cwd);\n\tseedChildSessionManager(sessionManager, options, model);\n\tconst selectedTools =\n\t\toptions.tools === undefined\n\t\t\t? undefined\n\t\t\t: options.peerRuntime\n\t\t\t\t? [...options.tools, ...CHILD_PEER_TOOL_NAMES]\n\t\t\t\t: options.tools;\n\tconst created = await coreSupport.createAgentSessionFromServices({\n\t\tservices,\n\t\tsessionManager,\n\t\tmodel,\n\t\tthinkingLevel: resolved.thinkingLevel,\n\t\ttools: selectedTools,\n\t\tnoTools: selectedTools?.length === 0 ? \"all\" : undefined,\n\t});\n\tconst session = created.session;\n\tif (selectedTools !== undefined) {\n\t\tconst active = session.getActiveToolNames();\n\t\tconst expected = [...selectedTools].sort();\n\t\tif (\n\t\t\tactive.length !== expected.length ||\n\t\t\t[...active].sort().some((name, index) => name !== expected[index])\n\t\t) {\n\t\t\tsession.dispose();\n\t\t\tthrow new Error(\n\t\t\t\t`In-process child activated an unexpected tool set (${active.join(\", \") || \"none\"}); use stateful.transport \"subprocess\".`,\n\t\t\t);\n\t\t}\n\t}\n\treturn {\n\t\tget sessionId() {\n\t\t\treturn session.sessionId;\n\t\t},\n\t\tget messages() {\n\t\t\treturn session.messages;\n\t\t},\n\t\tget provider() {\n\t\t\treturn session.model?.provider;\n\t\t},\n\t\tget model() {\n\t\t\treturn session.model?.id;\n\t\t},\n\t\tget thinkingLevel() {\n\t\t\treturn session.thinkingLevel;\n\t\t},\n\t\tprompt: (text) => session.prompt(text),\n\t\tsteer: (text) => session.steer(text),\n\t\tsubscribe: (listener) => session.subscribe((event) => listener(event)),\n\t\tabort: () => session.abort(),\n\t\tdispose: () => session.dispose(),\n\t\tgetActiveToolNames: () => session.getActiveToolNames(),\n\t};\n}\n\nasync function loadCoreSessionSupport(): Promise<CoreSessionSupport | undefined> {\n\tconst codingAgentModule = (await import(\n\t\t\"@earendil-works/pi-coding-agent\"\n\t)) as unknown as CodingAgentRuntimeModule;\n\tif (\n\t\t!codingAgentModule.createAgentSessionFromServices ||\n\t\t!codingAgentModule.createAgentSessionServices ||\n\t\t!codingAgentModule.resolveCliModel\n\t) {\n\t\treturn undefined;\n\t}\n\treturn {\n\t\tcreateAgentSessionFromServices: codingAgentModule.createAgentSessionFromServices,\n\t\tcreateAgentSessionServices: codingAgentModule.createAgentSessionServices,\n\t\tresolveCliModel: codingAgentModule.resolveCliModel,\n\t};\n}\n\nasync function transferChildModelAuth(\n\tmodelRegistry: ModelRegistry,\n\tmodel: Model<Api>,\n\tmodelRuntime: ModelRuntime,\n): Promise<void> {\n\tconst auth = await modelRegistry.getApiKeyAndHeaders(model);\n\tif (auth.ok && auth.apiKey) await modelRuntime.setRuntimeApiKey(model.provider, auth.apiKey);\n}\n\nexport function copyRegisteredProviders(\n\tregisteredProviders: RegisteredProviderRegistry,\n\tmodelRuntime: ChildModelRuntime,\n): void {\n\tfor (const provider of registeredProviders.getRegisteredProviderIds?.() ?? []) {\n\t\tconst config = registeredProviders.getRegisteredProviderConfig?.(provider);\n\t\tif (config !== undefined) {\n\t\t\tmodelRuntime.registerProvider(provider, config);\n\t\t\tcontinue;\n\t\t}\n\t\tconst nativeProvider = registeredProviders.getRegisteredNativeProvider?.(provider);\n\t\tif (nativeProvider) modelRuntime.registerNativeProvider?.(nativeProvider);\n\t}\n}\n\nexport async function resolveChildModel(\n\toptions: ChildSessionCreateOptions,\n\tsupport?: CoreModelSupport,\n): Promise<{\n\tmodel: Model<Api>;\n\tthinkingLevel: SubagentThinkingLevel;\n}> {\n\tif (!support) throw unsupportedInProcessCoreError();\n\tlet model = options.parentRuntime.model;\n\tlet modelThinkingLevel: SubagentThinkingLevel | undefined;\n\tif (options.agentConfig.model !== undefined) {\n\t\tconst requested = options.agentConfig.model.trim();\n\t\tif (!requested) throw new Error(\"In-process subagent model cannot be empty\");\n\t\tconst resolved = support.resolveCliModel({\n\t\t\tcliModel: requested,\n\t\t\tmodelRuntime: support.modelRuntime,\n\t\t});\n\t\tif (resolved.error) throw new Error(resolved.error);\n\t\tif (!resolved.model)\n\t\t\tthrow new Error(`Unable to resolve in-process subagent model ${requested}`);\n\t\tmodel = resolved.model;\n\t\tmodelThinkingLevel = resolved.thinkingLevel;\n\t}\n\tif (!model) model = options.modelRegistry.getAvailable()[0];\n\tif (!model)\n\t\tthrow new Error(\"No model with configured authentication is available for in-process subagent\");\n\tmodel = support.modelRuntime.getModel(model.provider, model.id) ?? model;\n\treturn {\n\t\tmodel,\n\t\tthinkingLevel:\n\t\t\toptions.agent.thinkingLevel ??\n\t\t\toptions.agentConfig.thinkingLevel ??\n\t\t\tmodelThinkingLevel ??\n\t\t\toptions.parentRuntime.thinkingLevel,\n\t};\n}\n\nfunction unsupportedInProcessCoreError(): Error {\n\treturn new Error(\n\t\t'In-process subagents require Pi core createAgentSessionServices, createAgentSessionFromServices, and resolveCliModel support; set stateful.transport to \"subprocess\".',\n\t);\n}\n\nasync function prepareInProcessServices(\n\tcwd: string,\n\tagentDir: string,\n\tagentSystemPrompt: string,\n\tprojectTrusted: boolean,\n\tpeerExtension?: import(\"@earendil-works/pi-coding-agent\").ExtensionFactory,\n): Promise<{ services: AgentSessionServices; support: CoreSessionSupport }> {\n\tconst promptResources = await resolvePiPromptResources(cwd, projectTrusted, agentDir);\n\tconst settingsManager = SettingsManager.create(cwd, agentDir, { projectTrusted });\n\tconst support = await loadCoreSessionSupport();\n\tif (!support) throw unsupportedInProcessCoreError();\n\tconst services = await support.createAgentSessionServices({\n\t\tcwd,\n\t\tagentDir,\n\t\tsettingsManager,\n\t\tresourceLoaderOptions: {\n\t\t\tnoExtensions: true,\n\t\t\t...(peerExtension ? { extensionFactories: [peerExtension] } : {}),\n\t\t\tappendSystemPrompt: [\n\t\t\t\t...promptResources.appendSystemPromptPaths,\n\t\t\t\t...(agentSystemPrompt.trim() ? [agentSystemPrompt] : []),\n\t\t\t],\n\t\t},\n\t});\n\treturn { services, support };\n}\n\nexport async function createInProcessServices(\n\tcwd: string,\n\tagentDir: string,\n\tagentSystemPrompt: string,\n\tprojectTrusted = false,\n): Promise<AgentSessionServices> {\n\treturn (await prepareInProcessServices(cwd, agentDir, agentSystemPrompt, projectTrusted))\n\t\t.services;\n}\n\nexport function seedChildSessionManager(\n\tsessionManager: SessionManager,\n\toptions: ChildSessionCreateOptions,\n\tmodel: Model<Api>,\n): void {\n\tlet timestamp = Date.now() - (options.history.length * 2 + 1);\n\tif (options.context?.trim()) {\n\t\tsessionManager.appendMessage({\n\t\t\trole: \"user\",\n\t\t\tcontent: `Parent context:\\n${redactPrivateText(options.context)}`,\n\t\t\ttimestamp: timestamp++,\n\t\t});\n\t}\n\tfor (const turn of options.history) {\n\t\tsessionManager.appendMessage({\n\t\t\trole: \"user\",\n\t\t\tcontent: redactPrivateText(turn.task),\n\t\t\ttimestamp: timestamp++,\n\t\t});\n\t\tsessionManager.appendMessage({\n\t\t\trole: \"assistant\",\n\t\t\tcontent: [{ type: \"text\", text: redactPrivateText(turn.output) }],\n\t\t\tapi: model.api,\n\t\t\tprovider: model.provider,\n\t\t\tmodel: model.id,\n\t\t\tusage: {\n\t\t\t\tinput: 0,\n\t\t\t\toutput: 0,\n\t\t\t\tcacheRead: 0,\n\t\t\t\tcacheWrite: 0,\n\t\t\t\ttotalTokens: 0,\n\t\t\t\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },\n\t\t\t},\n\t\t\tstopReason: turn.exitCode === 0 ? \"stop\" : \"error\",\n\t\t\ttimestamp: timestamp++,\n\t\t});\n\t}\n}\n\nexport function buildCurrentTurnPrompt(agent: ManagedAgent, task: string): string {\n\tconst ids = new Set(agent.currentMailboxMessageIds ?? []);\n\tconst messages = agent.mailbox\n\t\t.filter((message) => ids.has(message.id))\n\t\t.slice(-20)\n\t\t.map((message) =>\n\t\t\tformatPeerMessage({ ...message, content: redactPrivateText(message.content) }),\n\t\t)\n\t\t.join(\"\\n\\n\");\n\tconst base = messages\n\t\t? `${redactPrivateText(task)}\\n\\nMailbox messages:\\n${messages}`\n\t\t: redactPrivateText(task);\n\tconst contracted = appendDelegationContract(base, agent.contract, DEFAULT_MAX_CONTEXT_BYTES);\n\treturn truncateUtf8(\n\t\tappendResultInstruction(contracted.text, agent.resultFormat),\n\t\tDEFAULT_MAX_CONTEXT_BYTES,\n\t).text;\n}\n\nfunction latestAssistant(messages: readonly unknown[]): {\n\toutput: string;\n\tstopReason?: string;\n\terror?: string;\n} {\n\tfor (let index = messages.length - 1; index >= 0; index--) {\n\t\tconst message = messages[index];\n\t\tif (!message || typeof message !== \"object\") continue;\n\t\tconst candidate = message as { role?: string; stopReason?: string; errorMessage?: string };\n\t\tif (candidate.role !== \"assistant\") continue;\n\t\treturn {\n\t\t\toutput: assistantText(message),\n\t\t\tstopReason: candidate.stopReason,\n\t\t\terror: candidate.errorMessage,\n\t\t};\n\t}\n\treturn { output: \"\" };\n}\n\nfunction childEventType(event: unknown): string | undefined {\n\tif (!event || typeof event !== \"object\" || Array.isArray(event)) return undefined;\n\tconst type = (event as { type?: unknown }).type;\n\treturn typeof type === \"string\" ? type : undefined;\n}\n\nfunction assistantToolCallCount(content: unknown): number {\n\tif (!Array.isArray(content)) return 0;\n\treturn content.filter(\n\t\t(part) =>\n\t\t\tpart &&\n\t\t\ttypeof part === \"object\" &&\n\t\t\t!Array.isArray(part) &&\n\t\t\t(part as { type?: unknown }).type === \"toolCall\",\n\t).length;\n}\n\nfunction eventMessage(event: unknown): unknown {\n\tif (!event || typeof event !== \"object\") return undefined;\n\tconst candidate = event as { type?: string; message?: unknown };\n\treturn candidate.type === \"message_update\" || candidate.type === \"message_end\"\n\t\t? candidate.message\n\t\t: undefined;\n}\n\nfunction assistantText(message: unknown): string {\n\tif (!message || typeof message !== \"object\") return \"\";\n\tconst content = (message as { content?: unknown }).content;\n\tif (typeof content === \"string\") return content;\n\tif (!Array.isArray(content)) return \"\";\n\treturn content\n\t\t.filter((part): part is { type: \"text\"; text: string } =>\n\t\t\tBoolean(\n\t\t\t\tpart &&\n\t\t\t\t\ttypeof part === \"object\" &&\n\t\t\t\t\t(part as { type?: unknown }).type === \"text\" &&\n\t\t\t\t\ttypeof (part as { text?: unknown }).text === \"string\",\n\t\t\t),\n\t\t)\n\t\t.map((part) => part.text)\n\t\t.join(\"\\n\");\n}\n\nfunction interruptedOutcome(output: string): TurnOutcome {\n\treturn { output, exitCode: 130, aborted: true, error: \"In-process subagent was aborted\" };\n}\n\nfunction inProcessPolicy(\n\tagentConfig: AgentConfig,\n\tmanagedAgent: ManagedAgent,\n): NonNullable<TurnOutcome[\"policy\"]> {\n\treturn {\n\t\tinherited: [\"modelRegistry\", \"authentication\", \"cwdResources\"],\n\t\toverridden: [\n\t\t\t...(agentConfig.model ? [\"model\"] : []),\n\t\t\t...(managedAgent.thinkingLevel || agentConfig.thinkingLevel ? [\"thinkingLevel\"] : []),\n\t\t\t...(agentConfig.tools ? [\"tools\"] : []),\n\t\t],\n\t\tunsupported: [\"approvalPolicy\", \"sandboxProfile\", \"providerHeaders\", \"extensionState\"],\n\t};\n}\n\nasync function settleWithin(promise: Promise<unknown>, timeoutMs: number): Promise<void> {\n\tawait completesWithin(\n\t\tpromise.catch(() => undefined),\n\t\ttimeoutMs,\n\t);\n}\n\nasync function completesWithin(promise: Promise<unknown>, timeoutMs: number): Promise<boolean> {\n\tlet timeout: NodeJS.Timeout | undefined;\n\ttry {\n\t\treturn await Promise.race([\n\t\t\tpromise.then(() => true),\n\t\t\tnew Promise<boolean>((resolve) => {\n\t\t\t\ttimeout = setTimeout(() => resolve(false), timeoutMs);\n\t\t\t}),\n\t\t]);\n\t} finally {\n\t\tif (timeout) clearTimeout(timeout);\n\t}\n}\n\nfunction errorMessage(error: unknown): string {\n\treturn truncateUtf8(\n\t\terror instanceof Error ? error.message : String(error),\n\t\tDEFAULT_MAX_OUTPUT_BYTES,\n\t).text;\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,34 @@
1
+ // @generated by scripts/build-runtime.mjs; do not edit.
2
+ // @ts-nocheck -- generated JavaScript uses a .ts extension for Pi's Jiti loader.
3
+ import {
4
+ createChildPeerExtension
5
+ } from "./chunk-5DGRMKNV.ts";
6
+
7
+ // src/peer-transport.ts
8
+ import { fileURLToPath } from "node:url";
9
+ var CHILD_PEER_TOOL_NAMES = ["subagent_peer_send", "subagent_peer_list"];
10
+ function createInProcessPeerExtension(runtime, agentId) {
11
+ return createChildPeerExtension({
12
+ send: (target, message, deduplicationKey) => runtime.send(agentId, target, message, deduplicationKey),
13
+ list: async () => runtime.list(agentId),
14
+ acknowledge: (messageIds, completionIds) => runtime.acknowledge(agentId, messageIds, completionIds)
15
+ });
16
+ }
17
+ function childPeerBridgePath() {
18
+ return fileURLToPath(new URL("./child-peer-bridge.ts", import.meta.url));
19
+ }
20
+ function peerBridgeEnvironment(credentials) {
21
+ return {
22
+ PI_SUBAGENT_PEER_HOST: credentials.host,
23
+ PI_SUBAGENT_PEER_PORT: String(credentials.port),
24
+ PI_SUBAGENT_PEER_TOKEN: credentials.token
25
+ };
26
+ }
27
+
28
+ export {
29
+ CHILD_PEER_TOOL_NAMES,
30
+ createInProcessPeerExtension,
31
+ childPeerBridgePath,
32
+ peerBridgeEnvironment
33
+ };
34
+ //# sourceMappingURL=chunk-RY2AEGMZ.ts.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/peer-transport.ts"],
4
+ "sourcesContent": ["import { fileURLToPath } from \"node:url\";\nimport type { ExtensionFactory } from \"@earendil-works/pi-coding-agent\";\nimport { createChildPeerExtension } from \"./child-peer-tools.js\";\nimport type { PeerBridgeCredentials, PeerDescriptor } from \"./peer-communication.js\";\nimport type { AgentMailboxMessage } from \"./registry.js\";\n\nexport const CHILD_PEER_TOOL_NAMES = [\"subagent_peer_send\", \"subagent_peer_list\"] as const;\n\nexport interface PeerTransportRuntime {\n\tsend(\n\t\tsenderId: string,\n\t\ttarget: string,\n\t\tmessage: string,\n\t\tdeduplicationKey?: string,\n\t): Promise<AgentMailboxMessage>;\n\tlist(senderId: string): PeerDescriptor[];\n\tacknowledge(\n\t\tagentId: string,\n\t\tmessageIds: readonly string[],\n\t\tcompletionIds?: readonly string[],\n\t): Promise<void>;\n\tissueCredentials(agentId: string, generation: number): Promise<PeerBridgeCredentials>;\n\trevoke(agentId: string): void;\n}\n\nexport function createInProcessPeerExtension(\n\truntime: PeerTransportRuntime,\n\tagentId: string,\n): ExtensionFactory {\n\treturn createChildPeerExtension({\n\t\tsend: (target, message, deduplicationKey) =>\n\t\t\truntime.send(agentId, target, message, deduplicationKey),\n\t\tlist: async () => runtime.list(agentId),\n\t\tacknowledge: (messageIds, completionIds) =>\n\t\t\truntime.acknowledge(agentId, messageIds, completionIds),\n\t});\n}\n\nexport function childPeerBridgePath(): string {\n\treturn fileURLToPath(new URL(\"./child-peer-bridge.ts\", import.meta.url));\n}\n\nexport function peerBridgeEnvironment(credentials: PeerBridgeCredentials): NodeJS.ProcessEnv {\n\treturn {\n\t\tPI_SUBAGENT_PEER_HOST: credentials.host,\n\t\tPI_SUBAGENT_PEER_PORT: String(credentials.port),\n\t\tPI_SUBAGENT_PEER_TOKEN: credentials.token,\n\t};\n}\n"],
5
+ "mappings": ";;;;;;;AAAA,SAAS,qBAAqB;AAMvB,IAAM,wBAAwB,CAAC,sBAAsB,oBAAoB;AAmBzE,SAAS,6BACf,SACA,SACmB;AACnB,SAAO,yBAAyB;AAAA,IAC/B,MAAM,CAAC,QAAQ,SAAS,qBACvB,QAAQ,KAAK,SAAS,QAAQ,SAAS,gBAAgB;AAAA,IACxD,MAAM,YAAY,QAAQ,KAAK,OAAO;AAAA,IACtC,aAAa,CAAC,YAAY,kBACzB,QAAQ,YAAY,SAAS,YAAY,aAAa;AAAA,EACxD,CAAC;AACF;AAEO,SAAS,sBAA8B;AAC7C,SAAO,cAAc,IAAI,IAAI,0BAA0B,YAAY,GAAG,CAAC;AACxE;AAEO,SAAS,sBAAsB,aAAuD;AAC5F,SAAO;AAAA,IACN,uBAAuB,YAAY;AAAA,IACnC,uBAAuB,OAAO,YAAY,IAAI;AAAA,IAC9C,wBAAwB,YAAY;AAAA,EACrC;AACD;",
6
+ "names": []
7
+ }
@@ -372,7 +372,7 @@ function safeNumber(value) {
372
372
  // src/consult-registration.ts
373
373
  function registerSubagentConsult(pi, options, dependencies = {}) {
374
374
  const loadExecution = cachedModuleLoader(
375
- dependencies.loadExecution ?? (() => import("./consult-NYXVDN5G.ts"))
375
+ dependencies.loadExecution ?? (() => import("./consult-IV7UBNQQ.ts"))
376
376
  );
377
377
  let generation = 0;
378
378
  const active = /* @__PURE__ */ new Set();
@@ -487,4 +487,4 @@ export {
487
487
  SubagentConsultParams,
488
488
  registerSubagentConsult
489
489
  };
490
- //# sourceMappingURL=chunk-RHRQMT7Q.ts.map
490
+ //# sourceMappingURL=chunk-YBUWBRF7.ts.map
@@ -328,7 +328,7 @@ function stringList(value) {
328
328
  // src/inspect-registration.ts
329
329
  function registerSubagentInspect(pi, runtime, dependencies = {}) {
330
330
  const loadExecution = cachedModuleLoader(
331
- dependencies.loadExecution ?? (() => import("./inspect-UOQQ3KNL.ts"))
331
+ dependencies.loadExecution ?? (() => import("./inspect-XV2QALMR.ts"))
332
332
  );
333
333
  let lifecycleGeneration = 0;
334
334
  pi.on("session_start", () => {
@@ -377,4 +377,4 @@ export {
377
377
  SubagentInspectParams,
378
378
  registerSubagentInspect
379
379
  };
380
- //# sourceMappingURL=chunk-F4L2UVSK.ts.map
380
+ //# sourceMappingURL=chunk-ZHTNCZIA.ts.map
@@ -3,7 +3,8 @@
3
3
  import "./chunk-SCZ33MYW.ts";
4
4
  import {
5
5
  formatStatefulAgentLine
6
- } from "./chunk-2OUVSORM.ts";
6
+ } from "./chunk-CBP76ARQ.ts";
7
+ import "./chunk-S2IWVK3J.ts";
7
8
  import "./chunk-P7OH4XMF.ts";
8
9
  import "./chunk-N7BLVXKK.ts";
9
10
  import "./chunk-ONDTY4EL.ts";
@@ -72,7 +73,6 @@ import {
72
73
  MAX_SUBAGENT_TIMEOUT_MS
73
74
  } from "./chunk-H3FP6DLR.ts";
74
75
  import "./chunk-RRR66UWR.ts";
75
- import "./chunk-S2IWVK3J.ts";
76
76
 
77
77
  // src/execution-ui.ts
78
78
  function executionAgentPickerScreen(agents) {
@@ -1143,4 +1143,4 @@ export {
1143
1143
  showSubagentManager,
1144
1144
  showSubagentSettings
1145
1145
  };
1146
- //# sourceMappingURL=config-ui-7IMI3I4B.ts.map
1146
+ //# sourceMappingURL=config-ui-2YUCUEBM.ts.map
@@ -22,14 +22,14 @@ import {
22
22
  DEFAULT_AGENT_CATALOG_MAX_ITEMS,
23
23
  SubagentConsultParams,
24
24
  registerSubagentConsult
25
- } from "./chunk-RHRQMT7Q.ts";
25
+ } from "./chunk-YBUWBRF7.ts";
26
+ import "./chunk-HOP5FXDT.ts";
26
27
  import {
27
28
  getResultFinalOutput,
28
29
  isResultError
29
30
  } from "./chunk-AEUYS7JC.ts";
30
31
  import "./chunk-RTCVYIZA.ts";
31
32
  import "./chunk-ONDTY4EL.ts";
32
- import "./chunk-HOP5FXDT.ts";
33
33
  import {
34
34
  discoverAgents
35
35
  } from "./chunk-PSK43Y6A.ts";
@@ -515,4 +515,4 @@ export {
515
515
  executeSubagentConsult,
516
516
  registerSubagentConsult
517
517
  };
518
- //# sourceMappingURL=consult-NYXVDN5G.ts.map
518
+ //# sourceMappingURL=consult-IV7UBNQQ.ts.map
@@ -77,7 +77,7 @@ var LazyStatefulTransport = class {
77
77
  };
78
78
  async function loadStatefulTransport(options) {
79
79
  const subprocess = async () => {
80
- const { SubprocessTransport } = await import("./subprocess-transport-C2XVR25R.ts");
80
+ const { SubprocessTransport } = await import("./subprocess-transport-NSHOGDC4.ts");
81
81
  return new SubprocessTransport({
82
82
  getSettings: options.getSettings,
83
83
  peerRuntime: options.peerRuntime
@@ -86,7 +86,7 @@ async function loadStatefulTransport(options) {
86
86
  const inProcess = async () => {
87
87
  const [{ discoverAgents }, { InProcessTransport }] = await Promise.all([
88
88
  import("./discovery-K25T3SH4.ts"),
89
- import("./in-process-transport-TEYAWSEC.ts")
89
+ import("./in-process-transport-4RF3J6XK.ts")
90
90
  ]);
91
91
  return new InProcessTransport({
92
92
  modelRegistry: options.modelRegistry,
@@ -99,7 +99,7 @@ async function loadStatefulTransport(options) {
99
99
  });
100
100
  };
101
101
  const rpc = async () => {
102
- const { RpcTransport } = await import("./rpc-transport-ZNNBRUSY.ts");
102
+ const { RpcTransport } = await import("./rpc-transport-NEHBHWX4.ts");
103
103
  return new RpcTransport({
104
104
  getSettings: options.getSettings,
105
105
  getParentRuntime: options.getParentRuntime,
@@ -127,4 +127,4 @@ async function loadStatefulTransport(options) {
127
127
  export {
128
128
  createStatefulTransport
129
129
  };
130
- //# sourceMappingURL=create-stateful-transport-F5OG2LEY.ts.map
130
+ //# sourceMappingURL=create-stateful-transport-ZP3IXNV3.ts.map
@@ -9,15 +9,15 @@ import {
9
9
  sameWorkflowTreeIdentity,
10
10
  workflowVerificationInstruction
11
11
  } from "./chunk-OVPHFGKO.ts";
12
- import {
13
- WorkspaceManager,
14
- assertWorkspaceIsolationReady
15
- } from "./chunk-6KJ34M6S.ts";
16
12
  import {
17
13
  assertDelegationTargetAllowed,
18
14
  resolveSubagentTarget,
19
15
  targetPolicyAudit
20
16
  } from "./chunk-HA36LPCO.ts";
17
+ import {
18
+ WorkspaceManager,
19
+ assertWorkspaceIsolationReady
20
+ } from "./chunk-6KJ34M6S.ts";
21
21
  import {
22
22
  buildFanInContext,
23
23
  mapWithConcurrencyLimit,
@@ -4031,4 +4031,4 @@ export {
4031
4031
  parsePositiveInteger,
4032
4032
  resolveDefaultSubagentTimeoutMs
4033
4033
  };
4034
- //# sourceMappingURL=execution-DS2DEIQZ.ts.map
4034
+ //# sourceMappingURL=execution-LA7HN5YF.ts.map
@@ -9,12 +9,13 @@ import {
9
9
  resolveChildModel,
10
10
  seedChildSessionManager,
11
11
  validateInProcessTools
12
- } from "./chunk-UVFVHIOP.ts";
13
- import "./chunk-EWWXFU7N.ts";
12
+ } from "./chunk-H3BFJ7HJ.ts";
13
+ import "./chunk-RY2AEGMZ.ts";
14
14
  import "./chunk-G6VZTCFH.ts";
15
15
  import "./chunk-G3RSMSXJ.ts";
16
16
  import "./chunk-RTCVYIZA.ts";
17
17
  import "./chunk-ONDTY4EL.ts";
18
+ import "./chunk-5DGRMKNV.ts";
18
19
  import "./chunk-PSK43Y6A.ts";
19
20
  import "./chunk-RSUXZD6S.ts";
20
21
  import "./chunk-7QPPBBXZ.ts";
@@ -35,4 +36,4 @@ export {
35
36
  seedChildSessionManager,
36
37
  validateInProcessTools
37
38
  };
38
- //# sourceMappingURL=in-process-transport-TEYAWSEC.ts.map
39
+ //# sourceMappingURL=in-process-transport-4RF3J6XK.ts.map
@@ -1,11 +1,11 @@
1
1
  // @generated by scripts/build-runtime.mjs; do not edit.
2
2
  // @ts-nocheck -- generated JavaScript uses a .ts extension for Pi's Jiti loader.
3
- import {
4
- inspectSessionWorkflows
5
- } from "./chunk-OVPHFGKO.ts";
6
3
  import {
7
4
  resolveConsultTools
8
5
  } from "./chunk-UMBPMVJW.ts";
6
+ import {
7
+ inspectSessionWorkflows
8
+ } from "./chunk-OVPHFGKO.ts";
9
9
  import {
10
10
  resolvePiInvocation
11
11
  } from "./chunk-IGAMVWFN.ts";
@@ -13,7 +13,7 @@ import {
13
13
  INSPECT_ACTIONS,
14
14
  SubagentInspectParams,
15
15
  registerSubagentInspect
16
- } from "./chunk-F4L2UVSK.ts";
16
+ } from "./chunk-ZHTNCZIA.ts";
17
17
  import "./chunk-HOP5FXDT.ts";
18
18
  import {
19
19
  discoverAgents,
@@ -616,4 +616,4 @@ export {
616
616
  registerSubagentInspect,
617
617
  validateInspectParams
618
618
  };
619
- //# sourceMappingURL=inspect-UOQQ3KNL.ts.map
619
+ //# sourceMappingURL=inspect-XV2QALMR.ts.map
@@ -1,9 +1,5 @@
1
1
  // @generated by scripts/build-runtime.mjs; do not edit.
2
2
  // @ts-nocheck -- generated JavaScript uses a .ts extension for Pi's Jiti loader.
3
- import {
4
- buildStatefulTurnPrompt,
5
- resolveStatefulTurnTimeout
6
- } from "./chunk-SCZ33MYW.ts";
7
3
  import {
8
4
  JsonLineDecoder,
9
5
  terminateProcess
@@ -12,18 +8,21 @@ import {
12
8
  resolvePiInvocation
13
9
  } from "./chunk-IGAMVWFN.ts";
14
10
  import "./chunk-47SK2QYC.ts";
11
+ import {
12
+ buildStatefulTurnPrompt,
13
+ resolveStatefulTurnTimeout
14
+ } from "./chunk-SCZ33MYW.ts";
15
15
  import "./chunk-HKC4ES4B.ts";
16
16
  import "./chunk-DSOOH73Y.ts";
17
17
  import {
18
18
  buildCurrentTurnPrompt,
19
19
  validateInProcessTools
20
- } from "./chunk-UVFVHIOP.ts";
20
+ } from "./chunk-H3BFJ7HJ.ts";
21
21
  import {
22
22
  CHILD_PEER_TOOL_NAMES,
23
23
  childPeerBridgePath,
24
- formatPeerMessage,
25
24
  peerBridgeEnvironment
26
- } from "./chunk-EWWXFU7N.ts";
25
+ } from "./chunk-RY2AEGMZ.ts";
27
26
  import {
28
27
  resolvePiPromptResources
29
28
  } from "./chunk-G6VZTCFH.ts";
@@ -42,6 +41,9 @@ import {
42
41
  import {
43
42
  TurnBudgetMonitor
44
43
  } from "./chunk-ONDTY4EL.ts";
44
+ import {
45
+ formatPeerMessage
46
+ } from "./chunk-5DGRMKNV.ts";
45
47
  import {
46
48
  discoverAgents
47
49
  } from "./chunk-PSK43Y6A.ts";
@@ -1221,4 +1223,4 @@ export {
1221
1223
  buildRpcArgs,
1222
1224
  validateRpcTools
1223
1225
  };
1224
- //# sourceMappingURL=rpc-transport-ZNNBRUSY.ts.map
1226
+ //# sourceMappingURL=rpc-transport-NEHBHWX4.ts.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/rpc-transport.ts", "../../src/rpc-timeout-finalization.ts", "../../src/rpc-transport-metadata.ts", "../../src/rpc-turn-capture.ts"],
4
4
  "sourcesContent": ["import { type ChildProcess, spawn } from \"node:child_process\";\nimport * as fs from \"node:fs\";\nimport * as os from \"node:os\";\nimport * as path from \"node:path\";\nimport type { RpcSessionState } from \"@earendil-works/pi-coding-agent\";\nimport { discoverAgents } from \"./agents/discovery.js\";\nimport type { AgentConfig, SubagentSettings } from \"./agents/types.js\";\nimport { formatPeerMessage } from \"./child-peer-tools.js\";\nimport {\n\tbuildCurrentTurnPrompt,\n\ttype ParentRuntimeSnapshot,\n\tvalidateInProcessTools,\n} from \"./in-process-transport.js\";\nimport {\n\tappendBounded,\n\tDEFAULT_MAX_OUTPUT_BYTES,\n\tDEFAULT_MAX_STDERR_BYTES,\n\ttruncateUtf8,\n} from \"./limits.js\";\nimport {\n\tCHILD_PEER_TOOL_NAMES,\n\tchildPeerBridgePath,\n\ttype PeerTransportRuntime,\n\tpeerBridgeEnvironment,\n} from \"./peer-transport.js\";\nimport { type PiInvocation, resolvePiInvocation } from \"./pi-invocation.js\";\nimport { resolvePiPromptResources } from \"./prompt-resources.js\";\nimport { JsonLineDecoder } from \"./protocol.js\";\nimport type { AgentMailboxMessage, ManagedAgent, TurnOutcome } from \"./registry.js\";\nimport { finalizeTimedOutRpcTurn } from \"./rpc-timeout-finalization.js\";\nimport {\n\tboundedError,\n\tinterruptedRpcOutcome,\n\tmodelIdentity,\n\tnormalizeThinking,\n\trpcPolicy,\n} from \"./rpc-transport-metadata.js\";\nimport {\n\tcaptureRpcEvent,\n\tcommitRpcInFlightUsage,\n\tcreateRpcTurnCapture,\n\tobserveRpcBudgetEvent,\n\tsnapshotRpcUsage,\n} from \"./rpc-turn-capture.js\";\nimport { terminateProcess } from \"./runner.js\";\nimport { safeTerminalText } from \"./safe-text.js\";\nimport { readSubagentSettings } from \"./settings.js\";\nimport { buildStatefulTurnPrompt, resolveStatefulTurnTimeout } from \"./stateful-prompt.js\";\nimport {\n\tformatTimeoutCheckpoint,\n\tformatTurnTerminationMessage,\n\tTURN_TERMINATION_VERSION,\n\ttype TurnTerminationReport,\n} from \"./timeout-checkpoint.js\";\nimport type { SubagentTransport } from \"./transport.js\";\nimport {\n\tPI_SUBAGENTS_RPC_PROTOCOL,\n\ttype TransportProgressCallback,\n\ttype TransportTelemetry,\n} from \"./transport-types.js\";\nimport { TurnBudgetMonitor, type TurnBudgetStop } from \"./turn-budget.js\";\n\nconst COMMAND_TIMEOUT_MS = 30_000;\nconst STARTUP_TIMEOUT_MS = 30_000;\nconst ABORT_GRACE_MS = 5_000;\nconst BUILT_IN_TOOL_NAMES = new Set([\"read\", \"bash\", \"edit\", \"write\", \"grep\", \"find\", \"ls\"]);\n\ninterface RpcCommandInput {\n\ttype: string;\n\t[key: string]: unknown;\n}\n\ninterface RpcResponse {\n\tid?: string;\n\ttype: \"response\";\n\tcommand: string;\n\tsuccess: boolean;\n\tdata?: unknown;\n\terror?: string;\n}\n\ninterface PendingRequest {\n\tcommand: string;\n\tresolve(value: RpcResponse): void;\n\treject(error: Error): void;\n\ttimer: NodeJS.Timeout;\n}\n\nexport interface RpcProtocolClientOptions {\n\tcwd: string;\n\targs: string[];\n\tenv?: NodeJS.ProcessEnv;\n\tstartupTimeoutMs?: number;\n\tcommandTimeoutMs?: number;\n\tabortTimeoutMs?: number;\n\tterminationGraceMs?: number;\n\tinvocation?: PiInvocation;\n}\n\nexport interface RpcProtocolSnapshot {\n\tstate: RpcSessionState;\n\tstderr: string;\n\tmalformedLines: number;\n\toversizedLines: number;\n}\n\nexport class RpcProtocolClient {\n\tprivate process?: ChildProcess;\n\tprivate processClosed = false;\n\tprivate decoder?: JsonLineDecoder;\n\tprivate readonly pending = new Map<string, PendingRequest>();\n\tprivate readonly listeners = new Set<(event: unknown) => void>();\n\tprivate readonly closeListeners = new Set<(error: Error) => void>();\n\tprivate nextRequestId = 0;\n\tprivate stderr = \"\";\n\tprivate malformedLines = 0;\n\tprivate oversizedLines = 0;\n\tprivate closedError?: Error;\n\tprivate closePromise?: Promise<void>;\n\tprivate cleanupTermination?: () => void;\n\n\tconstructor(private readonly options: RpcProtocolClientOptions) {}\n\n\tasync start(signal?: AbortSignal): Promise<RpcProtocolSnapshot> {\n\t\tif (this.process) throw new Error(\"RPC subagent client already started\");\n\t\tif (signal?.aborted) throw abortError(\"RPC subagent start aborted\");\n\t\tconst invocation = this.options.invocation\n\t\t\t? {\n\t\t\t\t\tcommand: this.options.invocation.command,\n\t\t\t\t\targs: [...this.options.invocation.args, ...this.options.args],\n\t\t\t\t}\n\t\t\t: resolvePiInvocation(this.options.args);\n\t\tconst proc = spawn(invocation.command, invocation.args, {\n\t\t\tcwd: this.options.cwd,\n\t\t\tdetached: process.platform !== \"win32\",\n\t\t\tshell: false,\n\t\t\tstdio: [\"pipe\", \"pipe\", \"pipe\"],\n\t\t\tenv: { ...process.env, ...this.options.env },\n\t\t});\n\t\tthis.process = proc;\n\t\tthis.processClosed = false;\n\t\tthis.decoder = new JsonLineDecoder({\n\t\t\tonValue: (value) => this.handleValue(value),\n\t\t\tonMalformed: () => {\n\t\t\t\tthis.malformedLines++;\n\t\t\t\tthis.fail(new Error(\"RPC subagent emitted malformed JSONL\"));\n\t\t\t},\n\t\t\tonOversized: () => {\n\t\t\t\tthis.oversizedLines++;\n\t\t\t\tthis.fail(new Error(\"RPC subagent emitted an oversized JSONL record\"));\n\t\t\t},\n\t\t});\n\t\tproc.stdout?.on(\"data\", (chunk) => this.decoder?.push(chunk));\n\t\tproc.stdin?.on(\"error\", (error) => this.fail(errorMessage(\"RPC stdin failed\", error)));\n\t\tproc.stderr?.on(\"data\", (chunk) => {\n\t\t\tthis.stderr = appendBounded(\n\t\t\t\tthis.stderr,\n\t\t\t\tBuffer.isBuffer(chunk) ? chunk.toString(\"utf8\") : String(chunk),\n\t\t\t\tDEFAULT_MAX_STDERR_BYTES,\n\t\t\t).text;\n\t\t});\n\t\tproc.once(\"error\", (error) => this.fail(errorMessage(\"RPC process failed\", error)));\n\t\tproc.once(\"close\", (code, childSignal) => {\n\t\t\tthis.processClosed = true;\n\t\t\tthis.decoder?.finish();\n\t\t\tthis.fail(\n\t\t\t\tnew Error(\n\t\t\t\t\t`RPC subagent exited (code=${code ?? \"null\"}, signal=${childSignal ?? \"null\"})${this.stderr ? `: ${safeTerminalText(this.stderr)}` : \"\"}`,\n\t\t\t\t),\n\t\t\t);\n\t\t});\n\t\ttry {\n\t\t\tawait waitForSpawn(proc, signal, this.options.startupTimeoutMs ?? STARTUP_TIMEOUT_MS);\n\t\t\tif (signal?.aborted) throw abortError(\"RPC subagent start aborted\");\n\t\t\tconst state = await raceWithAbort(\n\t\t\t\tthis.requestData<RpcSessionState>(\n\t\t\t\t\t{ type: \"get_state\" },\n\t\t\t\t\tthis.options.startupTimeoutMs ?? STARTUP_TIMEOUT_MS,\n\t\t\t\t),\n\t\t\t\tsignal,\n\t\t\t\t\"RPC subagent readiness aborted\",\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tstate,\n\t\t\t\tstderr: this.stderr,\n\t\t\t\tmalformedLines: this.malformedLines,\n\t\t\t\toversizedLines: this.oversizedLines,\n\t\t\t};\n\t\t} catch (error) {\n\t\t\tawait this.stop();\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tonEvent(listener: (event: unknown) => void): () => void {\n\t\tthis.listeners.add(listener);\n\t\treturn () => this.listeners.delete(listener);\n\t}\n\n\tonClose(listener: (error: Error) => void): () => void {\n\t\tthis.closeListeners.add(listener);\n\t\treturn () => this.closeListeners.delete(listener);\n\t}\n\n\tasync prompt(message: string, timeoutMs?: number): Promise<void> {\n\t\tawait this.request({ type: \"prompt\", message }, timeoutMs);\n\t}\n\n\tasync steer(message: string, timeoutMs?: number): Promise<void> {\n\t\tawait this.request({ type: \"steer\", message }, timeoutMs);\n\t}\n\n\tasync abort(): Promise<void> {\n\t\tawait this.request(\n\t\t\t{ type: \"abort\" },\n\t\t\tthis.options.abortTimeoutMs ?? Math.min(COMMAND_TIMEOUT_MS, ABORT_GRACE_MS),\n\t\t);\n\t}\n\n\tasync getState(): Promise<RpcSessionState> {\n\t\treturn this.requestData<RpcSessionState>({ type: \"get_state\" });\n\t}\n\n\tgetStderr(): string {\n\t\treturn this.stderr;\n\t}\n\n\tasync stop(): Promise<void> {\n\t\tif (this.closePromise) return this.closePromise;\n\t\tconst proc = this.process;\n\t\tif (!proc) return;\n\t\tif (this.processClosed) {\n\t\t\tthis.cleanupTermination?.();\n\t\t\tthis.cleanupTermination = undefined;\n\t\t\tthis.process = undefined;\n\t\t\tthis.rejectPending(this.closedError ?? new Error(\"RPC subagent process already exited\"));\n\t\t\tthis.listeners.clear();\n\t\t\tthis.closeListeners.clear();\n\t\t\treturn;\n\t\t}\n\t\tthis.closePromise = new Promise<void>((resolve) => {\n\t\t\tlet settled = false;\n\t\t\tlet terminationDeadline: NodeJS.Timeout | undefined;\n\t\t\tconst finish = () => {\n\t\t\t\tif (settled) return;\n\t\t\t\tsettled = true;\n\t\t\t\tif (terminationDeadline) clearTimeout(terminationDeadline);\n\t\t\t\tproc.off(\"close\", finish);\n\t\t\t\tthis.cleanupTermination?.();\n\t\t\t\tthis.cleanupTermination = undefined;\n\t\t\t\tresolve();\n\t\t\t};\n\t\t\tproc.once(\"close\", finish);\n\t\t\ttry {\n\t\t\t\tproc.stdin?.end();\n\t\t\t} catch {\n\t\t\t\t// Termination below remains authoritative.\n\t\t\t}\n\t\t\tconst graceMs = this.options.terminationGraceMs ?? ABORT_GRACE_MS;\n\t\t\tthis.cleanupTermination?.();\n\t\t\tthis.cleanupTermination = terminateProcess(proc, graceMs);\n\t\t\tterminationDeadline = setTimeout(() => {\n\t\t\t\tproc.stdin?.destroy();\n\t\t\t\tproc.stdout?.destroy();\n\t\t\t\tproc.stderr?.destroy();\n\t\t\t\tfinish();\n\t\t\t}, graceMs + 1_000);\n\t\t});\n\t\tawait this.closePromise;\n\t\tthis.process = undefined;\n\t\tthis.rejectPending(new Error(\"RPC subagent client stopped\"));\n\t\tthis.listeners.clear();\n\t\tthis.closeListeners.clear();\n\t}\n\n\tprivate async requestData<T>(\n\t\tcommand: RpcCommandInput,\n\t\ttimeoutMs = this.options.commandTimeoutMs ?? COMMAND_TIMEOUT_MS,\n\t): Promise<T> {\n\t\tconst response = await this.request(command, timeoutMs);\n\t\treturn response.data as T;\n\t}\n\n\tprivate request(\n\t\tcommand: RpcCommandInput,\n\t\ttimeoutMs = this.options.commandTimeoutMs ?? COMMAND_TIMEOUT_MS,\n\t): Promise<RpcResponse> {\n\t\tconst proc = this.process;\n\t\tif (!proc?.stdin || proc.stdin.destroyed || !proc.stdin.writable) {\n\t\t\treturn Promise.reject(this.closedError ?? new Error(\"RPC subagent stdin is unavailable\"));\n\t\t}\n\t\tconst id = `psa_${++this.nextRequestId}`;\n\t\treturn new Promise<RpcResponse>((resolve, reject) => {\n\t\t\tconst timer = setTimeout(() => {\n\t\t\t\tthis.pending.delete(id);\n\t\t\t\treject(rpcTimeoutError(`RPC ${command.type} response timed out after ${timeoutMs}ms`));\n\t\t\t}, timeoutMs);\n\t\t\ttimer.unref();\n\t\t\tthis.pending.set(id, { command: command.type, resolve, reject, timer });\n\t\t\ttry {\n\t\t\t\tproc.stdin?.write(`${JSON.stringify({ ...command, id })}\\n`, (error) => {\n\t\t\t\t\tif (!error) return;\n\t\t\t\t\tthis.fail(errorMessage(\"RPC stdin write failed\", error));\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tthis.pending.delete(id);\n\t\t\t\tclearTimeout(timer);\n\t\t\t\treject(error instanceof Error ? error : new Error(String(error)));\n\t\t\t}\n\t\t}).then((response) => {\n\t\t\tif (!response.success) throw new Error(response.error || `RPC ${command.type} failed`);\n\t\t\treturn response;\n\t\t});\n\t}\n\n\tprivate handleValue(value: unknown): void {\n\t\tif (!value || typeof value !== \"object\" || Array.isArray(value)) return;\n\t\tconst event = value as Record<string, unknown>;\n\t\tif (event.type === \"response\" && typeof event.id === \"string\") {\n\t\t\tconst pending = this.pending.get(event.id);\n\t\t\tif (!pending) return;\n\t\t\tif (typeof event.command !== \"string\" || event.command !== pending.command) {\n\t\t\t\tthis.fail(\n\t\t\t\t\tnew Error(`RPC response command mismatch for ${event.id}: expected ${pending.command}`),\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.pending.delete(event.id);\n\t\t\tclearTimeout(pending.timer);\n\t\t\tpending.resolve(event as unknown as RpcResponse);\n\t\t\treturn;\n\t\t}\n\t\tif (event.type === \"extension_ui_request\" && typeof event.id === \"string\") {\n\t\t\tthis.writeFireAndForget({\n\t\t\t\ttype: \"extension_ui_response\",\n\t\t\t\tid: event.id,\n\t\t\t\tcancelled: true,\n\t\t\t});\n\t\t}\n\t\tfor (const listener of this.listeners) listener(value);\n\t}\n\n\tprivate writeFireAndForget(value: Record<string, unknown>): void {\n\t\ttry {\n\t\t\tthis.process?.stdin?.write(`${JSON.stringify(value)}\\n`);\n\t\t} catch {\n\t\t\t// Process failure will be reported through close/error handling.\n\t\t}\n\t}\n\n\tprivate fail(error: Error): void {\n\t\tif (this.closedError) return;\n\t\tthis.closedError = error;\n\t\tthis.rejectPending(error);\n\t\tfor (const listener of this.closeListeners) listener(error);\n\t\tif (this.process && !this.closePromise) {\n\t\t\tthis.cleanupTermination = terminateProcess(\n\t\t\t\tthis.process,\n\t\t\t\tthis.options.terminationGraceMs ?? ABORT_GRACE_MS,\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate rejectPending(error: Error): void {\n\t\tfor (const pending of this.pending.values()) {\n\t\t\tclearTimeout(pending.timer);\n\t\t\tpending.reject(error);\n\t\t}\n\t\tthis.pending.clear();\n\t}\n}\n\nexport interface RpcTransportOptions {\n\tgetSettings?: () => SubagentSettings | undefined;\n\tgetParentRuntime: () => ParentRuntimeSnapshot;\n\tcreateClient?: (options: RpcProtocolClientOptions) => RpcProtocolClient;\n\tresolvePromptResources?: typeof resolvePiPromptResources;\n\tdefaultTimeoutMs?: number;\n\tabortGraceMs?: number;\n\ttimeoutFinalizationMs?: number;\n\tpeerRuntime?: PeerTransportRuntime;\n}\n\ninterface RpcChildRecord {\n\tclient: RpcProtocolClient;\n\tstate: RpcSessionState;\n\tstarted: boolean;\n\ttemporaryPrompt?: { dir: string; filePath: string };\n}\n\nexport class RpcTransport implements SubagentTransport {\n\treadonly kind = \"rpc\" as const;\n\tprivate readonly children = new Map<string, RpcChildRecord>();\n\tprivate readonly createClient: (options: RpcProtocolClientOptions) => RpcProtocolClient;\n\n\tconstructor(private readonly options: RpcTransportOptions) {\n\t\tthis.createClient =\n\t\t\toptions.createClient ?? ((clientOptions) => new RpcProtocolClient(clientOptions));\n\t}\n\n\tasync runTurn(\n\t\tagent: ManagedAgent,\n\t\ttask: string,\n\t\tsignal: AbortSignal,\n\t\tonProgress?: TransportProgressCallback,\n\t): Promise<TurnOutcome> {\n\t\tconst startedAt = Date.now();\n\t\tlet telemetry: TransportTelemetry = {\n\t\t\ttransport: \"rpc\",\n\t\t\tprotocol: PI_SUBAGENTS_RPC_PROTOCOL,\n\t\t\tphase: \"starting\",\n\t\t\tupdatedAt: startedAt,\n\t\t\ttiming: { startedAt, transportStartedAt: startedAt },\n\t\t};\n\t\tconst publish = (patch: Partial<TransportTelemetry>) => {\n\t\t\ttelemetry = {\n\t\t\t\t...telemetry,\n\t\t\t\t...patch,\n\t\t\t\ttiming: { ...telemetry.timing, ...patch.timing },\n\t\t\t\tusage: patch.usage ? { ...patch.usage } : telemetry.usage,\n\t\t\t\tupdatedAt: Date.now(),\n\t\t\t};\n\t\t\tonProgress?.({\n\t\t\t\t...telemetry,\n\t\t\t\ttiming: { ...telemetry.timing },\n\t\t\t\tusage: telemetry.usage ? { ...telemetry.usage } : undefined,\n\t\t\t});\n\t\t};\n\t\tpublish({});\n\t\tif (signal.aborted) return interruptedRpcOutcome(\"\", telemetry, \"starting\");\n\t\tconst settings = this.options.getSettings ? this.options.getSettings() : readSubagentSettings();\n\t\tconst agentConfig = discoverAgents(agent.cwd, agent.agentScope ?? \"user\", settings).agents.find(\n\t\t\t(candidate) => candidate.name === agent.agent,\n\t\t);\n\t\tif (!agentConfig) {\n\t\t\tpublish({ phase: \"failed\", failurePhase: \"starting\" });\n\t\t\treturn { output: \"\", exitCode: 1, error: `Unknown subagent: ${agent.agent}`, telemetry };\n\t\t}\n\t\tconst effectiveAgentConfig = {\n\t\t\t...agentConfig,\n\t\t\ttools: agent.executionPlan?.effectiveTools ?? agentConfig.tools,\n\t\t};\n\t\ttry {\n\t\t\tvalidateRpcTools(effectiveAgentConfig.tools);\n\t\t} catch (error) {\n\t\t\tpublish({ phase: \"failed\", failurePhase: \"starting\" });\n\t\t\treturn { output: \"\", exitCode: 1, error: boundedError(error), telemetry };\n\t\t}\n\t\tlet child: RpcChildRecord;\n\t\ttry {\n\t\t\tchild = await this.getOrCreate(agent, effectiveAgentConfig, signal);\n\t\t} catch (error) {\n\t\t\tpublish({ phase: signal.aborted ? \"interrupted\" : \"failed\", failurePhase: \"starting\" });\n\t\t\treturn {\n\t\t\t\toutput: \"\",\n\t\t\t\texitCode: signal.aborted ? 130 : 1,\n\t\t\t\taborted: signal.aborted,\n\t\t\t\terror: boundedError(error),\n\t\t\t\ttelemetry,\n\t\t\t};\n\t\t}\n\t\tconst stateModel = modelIdentity(child.state.model);\n\t\tpublish({\n\t\t\tphase: \"ready\",\n\t\t\tprovider: stateModel.provider,\n\t\t\tmodel: stateModel.model,\n\t\t\tthinkingLevel: normalizeThinking(child.state.thinkingLevel),\n\t\t\ttiming: { readyAt: Date.now() },\n\t\t});\n\t\tif (signal.aborted) {\n\t\t\tawait this.releaseById(agent.id).catch(() => undefined);\n\t\t\treturn interruptedRpcOutcome(\"\", telemetry, \"ready\");\n\t\t}\n\t\tconst timeoutMs =\n\t\t\tagent.currentTimeoutMs ??\n\t\t\tagent.timeoutMs ??\n\t\t\tagentConfig.timeoutMs ??\n\t\t\tthis.options.defaultTimeoutMs ??\n\t\t\tresolveStatefulTurnTimeout(agentConfig);\n\t\tconst capture = createRpcTurnCapture();\n\t\tlet resolveBudget!: (stop: TurnBudgetStop) => void;\n\t\tlet resolvePreAcceptanceIdle!: (stop: TurnBudgetStop) => void;\n\t\tconst budgetExceeded = new Promise<TurnBudgetStop>((resolve) => {\n\t\t\tresolveBudget = resolve;\n\t\t});\n\t\tconst preAcceptanceIdleExceeded = new Promise<TurnBudgetStop>((resolve) => {\n\t\t\tresolvePreAcceptanceIdle = resolve;\n\t\t});\n\t\tconst budgetMonitor = new TurnBudgetMonitor({\n\t\t\tidleTimeoutMs: agent.currentIdleTimeoutMs ?? agent.idleTimeoutMs,\n\t\t\tmaxTurns: agent.currentMaxTurns ?? agent.maxTurns,\n\t\t\tmaxToolCalls: agent.currentMaxToolCalls ?? agent.maxToolCalls,\n\t\t\tonExceeded(stop) {\n\t\t\t\tresolveBudget(stop);\n\t\t\t\tif (stop.reason === \"idle_timeout\") resolvePreAcceptanceIdle(stop);\n\t\t\t},\n\t\t});\n\t\tlet settledResolve!: () => void;\n\t\tlet settledReject!: (error: Error) => void;\n\t\tconst settled = new Promise<void>((resolve, reject) => {\n\t\t\tsettledResolve = resolve;\n\t\t\tsettledReject = reject;\n\t\t});\n\t\tvoid settled.catch(() => undefined);\n\t\tconst unsubscribeEvent = child.client.onEvent((event) => {\n\t\t\tconst usageChanged = captureRpcEvent(event, capture);\n\t\t\tobserveRpcBudgetEvent(event, budgetMonitor);\n\t\t\tif (!capture.firstActivityAt && isActivityEvent(event)) {\n\t\t\t\tcapture.firstActivityAt = Date.now();\n\t\t\t\tpublish({\n\t\t\t\t\tphase: \"running\",\n\t\t\t\t\ttiming: { firstActivityAt: capture.firstActivityAt },\n\t\t\t\t\t...(usageChanged ? { usage: snapshotRpcUsage(capture) } : {}),\n\t\t\t\t});\n\t\t\t} else if (usageChanged) {\n\t\t\t\tpublish({ usage: snapshotRpcUsage(capture) });\n\t\t\t}\n\t\t\tconst type = eventType(event);\n\t\t\tif (type === \"auto_retry_start\") publish({ phase: \"retrying\" });\n\t\t\tif (type === \"compaction_start\" || type === \"summarization_retry_attempt_start\") {\n\t\t\t\tpublish({ phase: \"compacting\" });\n\t\t\t}\n\t\t\tif (type === \"agent_settled\") settledResolve();\n\t\t});\n\t\tconst unsubscribeClose = child.client.onClose(settledReject);\n\t\tconst prompt = child.started\n\t\t\t? buildCurrentTurnPrompt(agent, task)\n\t\t\t: buildStatefulTurnPrompt(agent, task).text;\n\t\tlet accepted = false;\n\t\tlet preAcceptanceStop: TurnBudgetStop | undefined;\n\t\tconst deadline = Date.now() + timeoutMs;\n\t\ttry {\n\t\t\tawait Promise.race([\n\t\t\t\traceWithAbort(\n\t\t\t\t\tchild.client.prompt(prompt, remainingMs(deadline)),\n\t\t\t\t\tsignal,\n\t\t\t\t\t\"RPC subagent prompt acceptance aborted\",\n\t\t\t\t),\n\t\t\t\tpreAcceptanceIdleExceeded.then((stop) => {\n\t\t\t\t\tpreAcceptanceStop = stop;\n\t\t\t\t\tthrow new Error(formatTurnTerminationMessage(stop.reason, stop.limit, \"RPC subagent\"));\n\t\t\t\t}),\n\t\t\t]);\n\t\t\taccepted = true;\n\t\t\tchild.started = true;\n\t\t\tpublish({ phase: \"accepted\", timing: { promptAcceptedAt: Date.now() } });\n\t\t\tconst settlement = await Promise.race([\n\t\t\t\twaitForTurnSettlement(settled, signal, remainingMs(deadline)).then((kind) => ({\n\t\t\t\t\tkind,\n\t\t\t\t})),\n\t\t\t\tbudgetExceeded.then((stop) => ({ kind: \"limit\" as const, stop })),\n\t\t\t]);\n\t\t\tif (settlement.kind !== \"settled\") {\n\t\t\t\tconst [, stopped] = await Promise.all([\n\t\t\t\t\tchild.client.abort().catch(() => undefined),\n\t\t\t\t\tsettlesWithin(settled, this.options.abortGraceMs ?? ABORT_GRACE_MS),\n\t\t\t\t]);\n\t\t\t\tconst partial = truncateUtf8(capture.output || capture.partial, DEFAULT_MAX_OUTPUT_BYTES);\n\t\t\t\tconst stop =\n\t\t\t\t\tsettlement.kind === \"limit\"\n\t\t\t\t\t\t? settlement.stop\n\t\t\t\t\t\t: ({ reason: \"work_timeout\", limit: timeoutMs } as const);\n\t\t\t\tconst explicitAbort = settlement.kind === \"aborted\" || signal.aborted;\n\t\t\t\tconst termination: TurnTerminationReport | undefined = explicitAbort\n\t\t\t\t\t? undefined\n\t\t\t\t\t: {\n\t\t\t\t\t\t\tversion: TURN_TERMINATION_VERSION,\n\t\t\t\t\t\t\treason: stop.reason,\n\t\t\t\t\t\t\tlimit: stop.limit,\n\t\t\t\t\t\t\tcheckpoint: capture.journal.checkpoint(task, partial.text),\n\t\t\t\t\t\t\tfinalization: {\n\t\t\t\t\t\t\t\tattempted: false,\n\t\t\t\t\t\t\t\tstatus: \"skipped\",\n\t\t\t\t\t\t\t\tdurationMs: 0,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\t\t\t\tif (explicitAbort || !stopped) {\n\t\t\t\t\tif (!stopped) await this.releaseById(agent.id);\n\t\t\t\t\tpublish({\n\t\t\t\t\t\tphase: explicitAbort ? \"interrupted\" : \"failed\",\n\t\t\t\t\t\tfailurePhase: \"running\",\n\t\t\t\t\t\ttiming: { settledAt: Date.now() },\n\t\t\t\t\t\tusage: snapshotRpcUsage(capture),\n\t\t\t\t\t});\n\t\t\t\t\tconst checkpointOutput = termination\n\t\t\t\t\t\t? formatTimeoutCheckpoint(termination.checkpoint)\n\t\t\t\t\t\t: partial.text;\n\t\t\t\t\treturn {\n\t\t\t\t\t\toutput: partial.text || checkpointOutput,\n\t\t\t\t\t\texitCode: explicitAbort ? 130 : 124,\n\t\t\t\t\t\taborted: explicitAbort,\n\t\t\t\t\t\ttruncated: partial.truncated || agent.contextTruncated,\n\t\t\t\t\t\terror: explicitAbort\n\t\t\t\t\t\t\t? \"RPC subagent was aborted\"\n\t\t\t\t\t\t\t: `${formatTurnTerminationMessage(stop.reason, stop.limit, \"RPC subagent\")}; abort did not settle`,\n\t\t\t\t\t\tpolicy: rpcPolicy(agentConfig, agent),\n\t\t\t\t\t\ttermination,\n\t\t\t\t\t\ttelemetry,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tpublish({\n\t\t\t\t\tphase: \"finalizing\",\n\t\t\t\t\tfailurePhase: \"running\",\n\t\t\t\t\tusage: snapshotRpcUsage(capture),\n\t\t\t\t});\n\t\t\t\tconst finalizationStartedAt = Date.now();\n\t\t\t\tconst summary = await finalizeTimedOutRpcTurn({\n\t\t\t\t\tclient: child.client,\n\t\t\t\t\ttask,\n\t\t\t\t\tpartialOutput: partial.text,\n\t\t\t\t\tcheckpoint: termination?.checkpoint,\n\t\t\t\t\tterminationReason: stop.reason,\n\t\t\t\t\tresultFormat: agent.resultFormat,\n\t\t\t\t\tsignal,\n\t\t\t\t\tworkTimeoutMs: timeoutMs,\n\t\t\t\t\tfinalizationTimeoutMs: this.options.timeoutFinalizationMs,\n\t\t\t\t\tabortGraceMs: this.options.abortGraceMs ?? ABORT_GRACE_MS,\n\t\t\t\t\tresetCapture() {\n\t\t\t\t\t\tcommitRpcInFlightUsage(capture);\n\t\t\t\t\t\tcapture.output = \"\";\n\t\t\t\t\t\tcapture.partial = \"\";\n\t\t\t\t\t\tcapture.stopReason = undefined;\n\t\t\t\t\t\tcapture.error = undefined;\n\t\t\t\t\t},\n\t\t\t\t\tgetCapture: () => capture,\n\t\t\t\t\trelease: () => this.releaseById(agent.id),\n\t\t\t\t});\n\t\t\t\tif (termination) {\n\t\t\t\t\ttermination.finalization = {\n\t\t\t\t\t\tattempted: true,\n\t\t\t\t\t\tstatus: summary.status,\n\t\t\t\t\t\tdurationMs: Date.now() - finalizationStartedAt,\n\t\t\t\t\t\terror: summary.error,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tpublish({\n\t\t\t\t\tphase: \"failed\",\n\t\t\t\t\tfailurePhase: \"running\",\n\t\t\t\t\ttiming: { settledAt: Date.now() },\n\t\t\t\t\tusage: snapshotRpcUsage(capture),\n\t\t\t\t});\n\t\t\t\tconst checkpointOutput = termination ? formatTimeoutCheckpoint(termination.checkpoint) : \"\";\n\t\t\t\treturn {\n\t\t\t\t\toutput: summary.error ? partial.text || checkpointOutput : summary.output,\n\t\t\t\t\texitCode: 124,\n\t\t\t\t\ttruncated: partial.truncated || summary.truncated || agent.contextTruncated,\n\t\t\t\t\terror: [\n\t\t\t\t\t\tformatTurnTerminationMessage(stop.reason, stop.limit, \"RPC subagent\"),\n\t\t\t\t\t\tsummary.error,\n\t\t\t\t\t]\n\t\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t\t.join(\"; \"),\n\t\t\t\t\tpolicy: rpcPolicy(agentConfig, agent),\n\t\t\t\t\ttermination,\n\t\t\t\t\ttelemetry,\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst output = truncateUtf8(capture.output || capture.partial, DEFAULT_MAX_OUTPUT_BYTES);\n\t\t\tconst failed = capture.stopReason === \"error\" || !output.text.trim();\n\t\t\tpublish({\n\t\t\t\tphase: failed ? \"failed\" : \"settled\",\n\t\t\t\tfailurePhase: failed ? \"running\" : undefined,\n\t\t\t\ttiming: { settledAt: Date.now() },\n\t\t\t\tprovider: capture.provider ?? telemetry.provider,\n\t\t\t\tmodel: capture.model ?? telemetry.model,\n\t\t\t\tusage: snapshotRpcUsage(capture),\n\t\t\t});\n\t\t\treturn {\n\t\t\t\toutput: output.text,\n\t\t\t\texitCode: failed ? 1 : 0,\n\t\t\t\ttruncated: output.truncated || agent.contextTruncated,\n\t\t\t\terror: failed ? capture.error || \"RPC subagent completed without final text\" : undefined,\n\t\t\t\tpolicy: rpcPolicy(agentConfig, agent),\n\t\t\t\ttelemetry,\n\t\t\t};\n\t\t} catch (error) {\n\t\t\tawait this.releaseById(agent.id).catch(() => undefined);\n\t\t\tconst timedOut = isTimeoutError(error);\n\t\t\tconst stop =\n\t\t\t\tpreAcceptanceStop ??\n\t\t\t\t(timedOut ? ({ reason: \"work_timeout\", limit: timeoutMs } as const) : undefined);\n\t\t\tconst partial = truncateUtf8(capture.output || capture.partial, DEFAULT_MAX_OUTPUT_BYTES);\n\t\t\tconst termination: TurnTerminationReport | undefined =\n\t\t\t\tstop && !signal.aborted\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tversion: TURN_TERMINATION_VERSION,\n\t\t\t\t\t\t\treason: stop.reason,\n\t\t\t\t\t\t\tlimit: stop.limit,\n\t\t\t\t\t\t\tcheckpoint: capture.journal.checkpoint(task, partial.text),\n\t\t\t\t\t\t\tfinalization: {\n\t\t\t\t\t\t\t\tattempted: false,\n\t\t\t\t\t\t\t\tstatus: \"skipped\",\n\t\t\t\t\t\t\t\tdurationMs: 0,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined;\n\t\t\tpublish({\n\t\t\t\tphase: signal.aborted ? \"interrupted\" : \"failed\",\n\t\t\t\tfailurePhase: accepted ? \"running\" : \"ready\",\n\t\t\t\ttiming: { settledAt: Date.now() },\n\t\t\t\tusage: snapshotRpcUsage(capture),\n\t\t\t});\n\t\t\treturn {\n\t\t\t\toutput:\n\t\t\t\t\tpartial.text || (termination ? formatTimeoutCheckpoint(termination.checkpoint) : \"\"),\n\t\t\t\texitCode: signal.aborted ? 130 : stop ? 124 : 1,\n\t\t\t\taborted: signal.aborted,\n\t\t\t\terror: stop\n\t\t\t\t\t? formatTurnTerminationMessage(stop.reason, stop.limit, \"RPC subagent\")\n\t\t\t\t\t: boundedError(error),\n\t\t\t\tpolicy: rpcPolicy(agentConfig, agent),\n\t\t\t\ttermination,\n\t\t\t\ttelemetry,\n\t\t\t};\n\t\t} finally {\n\t\t\tbudgetMonitor.dispose();\n\t\t\tunsubscribeEvent();\n\t\t\tunsubscribeClose();\n\t\t}\n\t}\n\n\tasync deliverMessage(agent: ManagedAgent, message: AgentMailboxMessage): Promise<boolean> {\n\t\tconst child = this.children.get(agent.id);\n\t\tif (!child) return false;\n\t\tawait child.client.steer(formatPeerMessage(message));\n\t\treturn true;\n\t}\n\n\tasync release(agent: ManagedAgent): Promise<void> {\n\t\tawait this.releaseById(agent.id);\n\t}\n\n\tasync shutdown(): Promise<void> {\n\t\tconst results = await Promise.allSettled(\n\t\t\t[...this.children.keys()].map((agentId) => this.releaseById(agentId)),\n\t\t);\n\t\tconst failures = results.flatMap((result) =>\n\t\t\tresult.status === \"rejected\" ? [result.reason] : [],\n\t\t);\n\t\tif (failures.length > 0) {\n\t\t\tthrow new AggregateError(failures, `Failed to release ${failures.length} RPC subagent(s)`);\n\t\t}\n\t}\n\n\tprivate async getOrCreate(\n\t\tagent: ManagedAgent,\n\t\tagentConfig: AgentConfig,\n\t\tsignal: AbortSignal,\n\t): Promise<RpcChildRecord> {\n\t\tconst existing = this.children.get(agent.id);\n\t\tif (existing) return existing;\n\t\tconst hasRolePrompt = agentConfig.systemPrompt.trim().length > 0;\n\t\tconst resources = hasRolePrompt\n\t\t\t? await (this.options.resolvePromptResources ?? resolvePiPromptResources)(\n\t\t\t\t\tagent.cwd,\n\t\t\t\t\tagent.target?.trust.projectTrusted ?? false,\n\t\t\t\t)\n\t\t\t: { appendSystemPromptPaths: [] };\n\t\tif (signal.aborted) throw abortError(\"RPC subagent start aborted\");\n\t\tconst temporaryPrompt = hasRolePrompt\n\t\t\t? await writeRolePrompt(agentConfig.name, agentConfig.systemPrompt)\n\t\t\t: undefined;\n\t\tif (signal.aborted) {\n\t\t\tcleanupRolePrompt(temporaryPrompt);\n\t\t\tthrow abortError(\"RPC subagent start aborted\");\n\t\t}\n\t\tlet client: RpcProtocolClient | undefined;\n\t\ttry {\n\t\t\tconst credentials = this.options.peerRuntime\n\t\t\t\t? await this.options.peerRuntime.issueCredentials(\n\t\t\t\t\t\tagent.id,\n\t\t\t\t\t\tagent.currentTurnGeneration ?? agent.turnGeneration ?? 1,\n\t\t\t\t\t)\n\t\t\t\t: undefined;\n\t\t\tif (signal.aborted) throw abortError(\"RPC subagent start aborted\");\n\t\t\tclient = this.createClient({\n\t\t\t\tcwd: agent.cwd,\n\t\t\t\tabortTimeoutMs: this.options.abortGraceMs ?? ABORT_GRACE_MS,\n\t\t\t\tterminationGraceMs: this.options.abortGraceMs ?? ABORT_GRACE_MS,\n\t\t\t\targs: buildRpcArgs(\n\t\t\t\t\tagent,\n\t\t\t\t\tagentConfig,\n\t\t\t\t\tthis.options.getParentRuntime(),\n\t\t\t\t\ttemporaryPrompt?.filePath,\n\t\t\t\t\tresources.appendSystemPromptPaths,\n\t\t\t\t\tcredentials !== undefined,\n\t\t\t\t),\n\t\t\t\tenv: {\n\t\t\t\t\tPI_SUBAGENT_DEPTH: String(\n\t\t\t\t\t\t(Number.parseInt(process.env.PI_SUBAGENT_DEPTH ?? \"0\", 10) || 0) + 1,\n\t\t\t\t\t),\n\t\t\t\t\tPI_SUBAGENT_RPC_PROTOCOL: PI_SUBAGENTS_RPC_PROTOCOL,\n\t\t\t\t\t...(credentials ? peerBridgeEnvironment(credentials) : {}),\n\t\t\t\t},\n\t\t\t});\n\t\t\tconst snapshot = await client.start(signal);\n\t\t\tif (signal.aborted) throw abortError(\"RPC subagent start aborted\");\n\t\t\tconst record: RpcChildRecord = {\n\t\t\t\tclient,\n\t\t\t\tstate: snapshot.state,\n\t\t\t\tstarted: false,\n\t\t\t\ttemporaryPrompt,\n\t\t\t};\n\t\t\tthis.children.set(agent.id, record);\n\t\t\treturn record;\n\t\t} catch (error) {\n\t\t\tawait client?.stop().catch(() => undefined);\n\t\t\tthis.options.peerRuntime?.revoke(agent.id);\n\t\t\tcleanupRolePrompt(temporaryPrompt);\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tprivate async releaseById(agentId: string): Promise<void> {\n\t\tconst child = this.children.get(agentId);\n\t\tif (!child) return;\n\t\tthis.children.delete(agentId);\n\t\tthis.options.peerRuntime?.revoke(agentId);\n\t\ttry {\n\t\t\tawait child.client.abort().catch(() => undefined);\n\t\t\tawait child.client.stop();\n\t\t} finally {\n\t\t\tcleanupRolePrompt(child.temporaryPrompt);\n\t\t}\n\t}\n}\n\nexport function validateRpcTools(tools: string[] | undefined): string[] | undefined {\n\tconst validated = validateInProcessTools(tools);\n\tif (validated?.some((tool) => !BUILT_IN_TOOL_NAMES.has(tool))) {\n\t\tthrow new Error(\"RPC subagents support only built-in Pi tools in pi-subagents:v1\");\n\t}\n\treturn validated;\n}\n\nexport function buildRpcArgs(\n\tagent: ManagedAgent,\n\tagentConfig: AgentConfig,\n\tparentRuntime: ParentRuntimeSnapshot,\n\trolePromptPath?: string,\n\tappendSystemPromptPaths: readonly string[] = [],\n\tpeerBridge = false,\n): string[] {\n\tconst args = [\"--mode\", \"rpc\", \"--no-session\", \"--no-extensions\"];\n\tif (peerBridge) args.push(\"-e\", childPeerBridgePath());\n\tconst model =\n\t\tagentConfig.model ??\n\t\t(parentRuntime.model ? `${parentRuntime.model.provider}/${parentRuntime.model.id}` : undefined);\n\tif (model) args.push(\"--model\", model);\n\tconst modelSelectsThinking = agentConfig.model\n\t\t? /:(?:off|minimal|low|medium|high|xhigh|max)$/u.test(agentConfig.model.trim())\n\t\t: false;\n\tconst thinking =\n\t\tagent.thinkingLevel ??\n\t\tagentConfig.thinkingLevel ??\n\t\t(modelSelectsThinking ? undefined : parentRuntime.thinkingLevel);\n\tif (thinking) args.push(\"--thinking\", thinking);\n\tif (agent.target?.trust.projectTrusted ?? false) args.push(\"--approve\");\n\telse args.push(\"--no-approve\");\n\tif (Array.isArray(agentConfig.tools)) {\n\t\tconst tools = [...agentConfig.tools, ...(peerBridge ? CHILD_PEER_TOOL_NAMES : [])];\n\t\tif (tools.length > 0) args.push(\"--tools\", [...new Set(tools)].join(\",\"));\n\t\telse args.push(\"--no-tools\");\n\t}\n\tfor (const promptPath of appendSystemPromptPaths) {\n\t\targs.push(\"--append-system-prompt\", promptPath);\n\t}\n\tif (rolePromptPath) args.push(\"--append-system-prompt\", rolePromptPath);\n\treturn args;\n}\n\nfunction eventType(value: unknown): string | undefined {\n\tif (!value || typeof value !== \"object\" || Array.isArray(value)) return undefined;\n\tconst type = (value as Record<string, unknown>).type;\n\treturn typeof type === \"string\" ? type : undefined;\n}\n\nfunction isActivityEvent(value: unknown): boolean {\n\treturn [\n\t\t\"message_start\",\n\t\t\"message_update\",\n\t\t\"message_end\",\n\t\t\"tool_execution_start\",\n\t\t\"tool_execution_update\",\n\t\t\"auto_retry_start\",\n\t\t\"compaction_start\",\n\t].includes(eventType(value) ?? \"\");\n}\n\nasync function writeRolePrompt(\n\tagentName: string,\n\tprompt: string,\n): Promise<{ dir: string; filePath: string }> {\n\tconst dir = await fs.promises.mkdtemp(path.join(os.tmpdir(), \"pi-subagent-rpc-\"));\n\tconst safeName = agentName.replace(/[^\\w.-]+/gu, \"_\");\n\tconst filePath = path.join(dir, `prompt-${safeName}.md`);\n\tawait fs.promises.writeFile(filePath, prompt, {\n\t\tencoding: \"utf8\",\n\t\tmode: 0o600,\n\t});\n\treturn { dir, filePath };\n}\n\nfunction cleanupRolePrompt(value: { dir: string; filePath: string } | undefined): void {\n\tif (!value) return;\n\ttry {\n\t\tfs.rmSync(value.dir, { recursive: true, force: true });\n\t} catch {\n\t\t// Best-effort cleanup is repeated when the owning runtime shuts down.\n\t}\n}\n\nfunction waitForSpawn(\n\tproc: ChildProcess,\n\tsignal: AbortSignal | undefined,\n\ttimeoutMs: number,\n): Promise<void> {\n\treturn new Promise<void>((resolve, reject) => {\n\t\tlet settled = false;\n\t\tconst finish = (error?: Error) => {\n\t\t\tif (settled) return;\n\t\t\tsettled = true;\n\t\t\tclearTimeout(timer);\n\t\t\tproc.off(\"spawn\", onSpawn);\n\t\t\tproc.off(\"error\", onError);\n\t\t\tsignal?.removeEventListener(\"abort\", onAbort);\n\t\t\tif (error) reject(error);\n\t\t\telse resolve();\n\t\t};\n\t\tconst onSpawn = () => finish();\n\t\tconst onError = (error: Error) => finish(error);\n\t\tconst onAbort = () => finish(abortError(\"RPC subagent start aborted\"));\n\t\tconst timer = setTimeout(\n\t\t\t() => finish(new Error(`RPC subagent start timed out after ${timeoutMs}ms`)),\n\t\t\ttimeoutMs,\n\t\t);\n\t\ttimer.unref();\n\t\tproc.once(\"spawn\", onSpawn);\n\t\tproc.once(\"error\", onError);\n\t\tsignal?.addEventListener(\"abort\", onAbort, { once: true });\n\t\tif (signal?.aborted) onAbort();\n\t});\n}\n\nasync function raceWithAbort<T>(\n\tpromise: Promise<T>,\n\tsignal: AbortSignal | undefined,\n\tmessage: string,\n): Promise<T> {\n\tif (!signal) return promise;\n\tif (signal.aborted) throw abortError(message);\n\tlet onAbort: (() => void) | undefined;\n\ttry {\n\t\treturn await Promise.race([\n\t\t\tpromise,\n\t\t\tnew Promise<T>((_resolve, reject) => {\n\t\t\t\tonAbort = () => reject(abortError(message));\n\t\t\t\tsignal.addEventListener(\"abort\", onAbort, { once: true });\n\t\t\t\tif (signal.aborted) onAbort();\n\t\t\t}),\n\t\t]);\n\t} finally {\n\t\tif (onAbort) signal.removeEventListener(\"abort\", onAbort);\n\t}\n}\n\nfunction waitForTurnSettlement(\n\tsettled: Promise<void>,\n\tsignal: AbortSignal,\n\ttimeoutMs: number,\n): Promise<\"settled\" | \"aborted\" | \"timeout\"> {\n\tif (signal.aborted) return Promise.resolve(\"aborted\");\n\treturn new Promise((resolve, reject) => {\n\t\tlet finished = false;\n\t\tconst finish = (value: \"settled\" | \"aborted\" | \"timeout\", error?: unknown) => {\n\t\t\tif (finished) return;\n\t\t\tfinished = true;\n\t\t\tclearTimeout(timer);\n\t\t\tsignal.removeEventListener(\"abort\", onAbort);\n\t\t\tif (error) reject(error);\n\t\t\telse resolve(value);\n\t\t};\n\t\tconst onAbort = () => finish(\"aborted\");\n\t\tconst timer = setTimeout(() => finish(\"timeout\"), timeoutMs);\n\t\ttimer.unref();\n\t\tsignal.addEventListener(\"abort\", onAbort, { once: true });\n\t\tif (signal.aborted) onAbort();\n\t\tsettled.then(\n\t\t\t() => finish(\"settled\"),\n\t\t\t(error) => finish(\"settled\", error),\n\t\t);\n\t});\n}\n\nasync function settlesWithin(settled: Promise<void>, timeoutMs: number): Promise<boolean> {\n\tlet timer: NodeJS.Timeout | undefined;\n\ttry {\n\t\treturn await Promise.race([\n\t\t\tsettled.then(\n\t\t\t\t() => true,\n\t\t\t\t() => true,\n\t\t\t),\n\t\t\tnew Promise<boolean>((resolve) => {\n\t\t\t\ttimer = setTimeout(() => resolve(false), timeoutMs);\n\t\t\t}),\n\t\t]);\n\t} finally {\n\t\tif (timer) clearTimeout(timer);\n\t}\n}\n\nfunction remainingMs(deadline: number): number {\n\treturn Math.max(1, deadline - Date.now());\n}\n\nfunction rpcTimeoutError(message: string): Error {\n\tconst error = new Error(message);\n\terror.name = \"RpcTimeoutError\";\n\treturn error;\n}\n\nfunction isTimeoutError(error: unknown): boolean {\n\treturn error instanceof Error && error.name === \"RpcTimeoutError\";\n}\n\nfunction abortError(message: string): Error {\n\tconst error = new Error(message);\n\terror.name = \"AbortError\";\n\treturn error;\n}\n\nfunction errorMessage(prefix: string, error: Error): Error {\n\treturn new Error(`${prefix}: ${error.message}`);\n}\n", "import { DEFAULT_MAX_OUTPUT_BYTES, truncateUtf8 } from \"./limits.js\";\nimport type { SubagentResultFormat } from \"./result-contract.js\";\nimport type { TimeoutCheckpoint, TurnTerminationReason } from \"./timeout-checkpoint.js\";\nimport {\n\tbuildTimeoutFinalizationPrompt,\n\tresolveTimeoutFinalizationMs,\n} from \"./timeout-finalization.js\";\n\ninterface RpcTimeoutFinalizationClient {\n\tprompt(message: string, timeoutMs?: number): Promise<void>;\n\tabort(): Promise<void>;\n\tonEvent(listener: (event: unknown) => void): () => void;\n\tonClose(listener: (error: Error) => void): () => void;\n}\n\ninterface RpcSummaryCapture {\n\toutput: string;\n\tpartial: string;\n\tstopReason?: string;\n\terror?: string;\n}\n\nexport interface RpcTimeoutFinalizationOptions {\n\tclient: RpcTimeoutFinalizationClient;\n\ttask: string;\n\tpartialOutput: string;\n\tcheckpoint?: TimeoutCheckpoint;\n\tterminationReason?: TurnTerminationReason;\n\tresultFormat?: SubagentResultFormat;\n\tsignal: AbortSignal;\n\tworkTimeoutMs: number;\n\tfinalizationTimeoutMs?: number;\n\tabortGraceMs: number;\n\tresetCapture(): void;\n\tgetCapture(): RpcSummaryCapture;\n\trelease(): Promise<void>;\n}\n\nexport interface RpcTimeoutFinalizationResult {\n\toutput: string;\n\ttruncated: boolean;\n\tstatus: \"completed\" | \"failed\" | \"timed_out\";\n\terror?: string;\n}\n\nexport async function finalizeTimedOutRpcTurn(\n\toptions: RpcTimeoutFinalizationOptions,\n): Promise<RpcTimeoutFinalizationResult> {\n\toptions.resetCapture();\n\tlet settleResolve!: () => void;\n\tlet settleReject!: (error: Error) => void;\n\tconst settled = new Promise<void>((resolve, reject) => {\n\t\tsettleResolve = resolve;\n\t\tsettleReject = reject;\n\t});\n\tvoid settled.catch(() => undefined);\n\tconst unsubscribeEvent = options.client.onEvent((event) => {\n\t\tif (eventType(event) === \"agent_settled\") settleResolve();\n\t});\n\tconst unsubscribeClose = options.client.onClose(settleReject);\n\tlet error: string | undefined;\n\ttry {\n\t\tconst finalizationMs = resolveTimeoutFinalizationMs(\n\t\t\toptions.workTimeoutMs,\n\t\t\toptions.finalizationTimeoutMs,\n\t\t);\n\t\tconst deadline = Date.now() + finalizationMs;\n\t\tawait raceWithAbort(\n\t\t\t() =>\n\t\t\t\toptions.client.prompt(\n\t\t\t\t\tbuildTimeoutFinalizationPrompt({\n\t\t\t\t\t\ttask: options.task,\n\t\t\t\t\t\tpartialOutput: options.partialOutput,\n\t\t\t\t\t\tcheckpoint: options.checkpoint,\n\t\t\t\t\t\tterminationReason: options.terminationReason,\n\t\t\t\t\t\tresultFormat: options.resultFormat,\n\t\t\t\t\t}),\n\t\t\t\t\tremainingMs(deadline),\n\t\t\t\t),\n\t\t\toptions.signal,\n\t\t\tremainingMs(deadline),\n\t\t);\n\t\tconst settlement = await waitForSettlement(settled, options.signal, remainingMs(deadline));\n\t\tif (settlement !== \"settled\") {\n\t\t\tconst [abortCompleted, stopped] = await Promise.all([\n\t\t\t\tsettlesWithin(options.client.abort(), options.abortGraceMs),\n\t\t\t\tsettlesWithin(settled, options.abortGraceMs),\n\t\t\t]);\n\t\t\tif (!stopped) await boundedRelease(options);\n\t\t\terror = [\n\t\t\t\t`timeout summary ${settlement}`,\n\t\t\t\tabortCompleted ? undefined : \"summary abort command did not settle\",\n\t\t\t]\n\t\t\t\t.filter(Boolean)\n\t\t\t\t.join(\"; \");\n\t\t}\n\t} catch (caught) {\n\t\terror = boundedError(caught);\n\t\tawait boundedRelease(options);\n\t} finally {\n\t\tunsubscribeEvent();\n\t\tunsubscribeClose();\n\t}\n\tconst capture = options.getCapture();\n\tconst output = truncateUtf8(capture.output || capture.partial, DEFAULT_MAX_OUTPUT_BYTES);\n\tif (!error && (capture.stopReason === \"error\" || !output.text.trim())) {\n\t\terror = capture.error || \"Timeout summary produced no final text\";\n\t}\n\treturn {\n\t\toutput: output.text,\n\t\ttruncated: output.truncated,\n\t\tstatus: error ? (/timed out|timeout/iu.test(error) ? \"timed_out\" : \"failed\") : \"completed\",\n\t\terror,\n\t};\n}\n\nfunction eventType(value: unknown): string | undefined {\n\treturn value &&\n\t\ttypeof value === \"object\" &&\n\t\ttypeof (value as { type?: unknown }).type === \"string\"\n\t\t? ((value as { type: string }).type ?? undefined)\n\t\t: undefined;\n}\n\nfunction remainingMs(deadline: number): number {\n\treturn Math.max(1, deadline - Date.now());\n}\n\nasync function raceWithAbort<T>(\n\tstart: () => Promise<T>,\n\tsignal: AbortSignal,\n\ttimeoutMs: number,\n): Promise<T> {\n\tif (signal.aborted) throw abortError();\n\tlet onAbort: (() => void) | undefined;\n\tlet timer: NodeJS.Timeout | undefined;\n\tconst aborted = new Promise<never>((_resolve, reject) => {\n\t\tonAbort = () => reject(abortError());\n\t\tsignal.addEventListener(\"abort\", onAbort, { once: true });\n\t\tif (signal.aborted) onAbort();\n\t});\n\tconst timedOut = new Promise<never>((_resolve, reject) => {\n\t\ttimer = setTimeout(() => reject(new Error(\"RPC timeout summary prompt timed out\")), timeoutMs);\n\t});\n\ttry {\n\t\treturn await Promise.race([start(), aborted, timedOut]);\n\t} finally {\n\t\tif (timer) clearTimeout(timer);\n\t\tif (onAbort) signal.removeEventListener(\"abort\", onAbort);\n\t}\n}\n\nasync function waitForSettlement(\n\tsettled: Promise<void>,\n\tsignal: AbortSignal,\n\ttimeoutMs: number,\n): Promise<\"settled\" | \"aborted\" | \"timeout\"> {\n\tif (signal.aborted) return \"aborted\";\n\tlet timer: NodeJS.Timeout | undefined;\n\tlet onAbort: (() => void) | undefined;\n\ttry {\n\t\treturn await Promise.race([\n\t\t\tsettled.then(() => \"settled\" as const),\n\t\t\tnew Promise<\"aborted\">((resolve) => {\n\t\t\t\tonAbort = () => resolve(\"aborted\");\n\t\t\t\tsignal.addEventListener(\"abort\", onAbort, { once: true });\n\t\t\t}),\n\t\t\tnew Promise<\"timeout\">((resolve) => {\n\t\t\t\ttimer = setTimeout(() => resolve(\"timeout\"), timeoutMs);\n\t\t\t}),\n\t\t]);\n\t} finally {\n\t\tif (timer) clearTimeout(timer);\n\t\tif (onAbort) signal.removeEventListener(\"abort\", onAbort);\n\t}\n}\n\nasync function boundedRelease(options: RpcTimeoutFinalizationOptions): Promise<boolean> {\n\treturn settlesWithin(options.release(), options.abortGraceMs + 1_000);\n}\n\nasync function settlesWithin(settled: Promise<void>, timeoutMs: number): Promise<boolean> {\n\tlet timer: NodeJS.Timeout | undefined;\n\ttry {\n\t\treturn await Promise.race([\n\t\t\tsettled.then(\n\t\t\t\t() => true,\n\t\t\t\t() => true,\n\t\t\t),\n\t\t\tnew Promise<boolean>((resolve) => {\n\t\t\t\ttimer = setTimeout(() => resolve(false), timeoutMs);\n\t\t\t}),\n\t\t]);\n\t} finally {\n\t\tif (timer) clearTimeout(timer);\n\t}\n}\n\nfunction abortError(): Error {\n\tconst error = new Error(\"RPC timeout summary aborted\");\n\terror.name = \"AbortError\";\n\treturn error;\n}\n\nfunction boundedError(error: unknown): string {\n\treturn truncateUtf8(error instanceof Error ? error.message : String(error), 16 * 1024).text;\n}\n", "import type { AgentConfig, SubagentThinkingLevel } from \"./agents/types.js\";\nimport { DEFAULT_MAX_OUTPUT_BYTES } from \"./limits.js\";\nimport type { ManagedAgent, TurnOutcome } from \"./registry.js\";\nimport { boundedPrivateText } from \"./safe-text.js\";\nimport type { TransportTelemetry } from \"./transport-types.js\";\n\nexport function modelIdentity(value: unknown): { provider?: string; model?: string } {\n\tif (!value || typeof value !== \"object\") return {};\n\tconst model = value as Record<string, unknown>;\n\treturn {\n\t\tprovider:\n\t\t\ttypeof model.provider === \"string\" ? boundedPrivateText(model.provider, 256) : undefined,\n\t\tmodel: typeof model.id === \"string\" ? boundedPrivateText(model.id, 256) : undefined,\n\t};\n}\n\nexport function normalizeThinking(value: unknown): SubagentThinkingLevel | undefined {\n\treturn typeof value === \"string\" &&\n\t\t[\"off\", \"minimal\", \"low\", \"medium\", \"high\", \"xhigh\", \"max\"].includes(value)\n\t\t? (value as SubagentThinkingLevel)\n\t\t: undefined;\n}\n\nexport function rpcPolicy(\n\tconfig: AgentConfig,\n\tagent: ManagedAgent,\n): NonNullable<TurnOutcome[\"policy\"]> {\n\treturn {\n\t\tinherited: [\"environment\", \"cwdResources\"],\n\t\toverridden: [\n\t\t\t\"cwd\",\n\t\t\t\"extensions\",\n\t\t\t...(config.model ? [\"model\"] : []),\n\t\t\t...(agent.thinkingLevel || config.thinkingLevel ? [\"thinkingLevel\"] : []),\n\t\t\t...(config.tools ? [\"tools\"] : []),\n\t\t],\n\t\tunsupported: [\"approvalPolicy\", \"sandboxProfile\", \"providerHeaders\", \"extensionState\"],\n\t};\n}\n\nexport function interruptedRpcOutcome(\n\toutput: string,\n\ttelemetry: TransportTelemetry,\n\tfailurePhase: TransportTelemetry[\"phase\"],\n): TurnOutcome {\n\treturn {\n\t\toutput,\n\t\texitCode: 130,\n\t\taborted: true,\n\t\terror: \"RPC subagent was aborted\",\n\t\ttelemetry: {\n\t\t\t...telemetry,\n\t\t\tphase: \"interrupted\",\n\t\t\tfailurePhase,\n\t\t\tupdatedAt: Date.now(),\n\t\t},\n\t};\n}\n\nexport function boundedError(error: unknown): string {\n\treturn boundedPrivateText(\n\t\terror instanceof Error ? error.message : String(error),\n\t\tDEFAULT_MAX_OUTPUT_BYTES,\n\t);\n}\n", "import { DEFAULT_MAX_OUTPUT_BYTES, truncateUtf8 } from \"./limits.js\";\nimport { boundedPrivateText } from \"./safe-text.js\";\nimport { journalMessages, TimeoutProgressJournal } from \"./timeout-checkpoint.js\";\nimport { emptyTransportUsage, type TransportUsage } from \"./transport-types.js\";\nimport type { TurnBudgetMonitor } from \"./turn-budget.js\";\n\nexport interface RpcTurnCapture {\n\toutput: string;\n\tpartial: string;\n\tstopReason?: string;\n\terror?: string;\n\tprovider?: string;\n\tmodel?: string;\n\tusage: TransportUsage;\n\tinFlightUsage?: TransportUsage;\n\tfirstActivityAt?: number;\n\tjournal: TimeoutProgressJournal;\n}\n\nexport function createRpcTurnCapture(): RpcTurnCapture {\n\treturn {\n\t\toutput: \"\",\n\t\tpartial: \"\",\n\t\tusage: emptyTransportUsage(),\n\t\tjournal: new TimeoutProgressJournal(),\n\t};\n}\n\nexport function captureRpcEvent(event: unknown, capture: RpcTurnCapture): boolean {\n\tif (!isRecord(event)) return false;\n\tconst previousUsage = snapshotRpcUsage(capture);\n\tif (event.type === \"tool_execution_start\") {\n\t\tcapture.journal.recordToolCall(\n\t\t\ttypeof event.toolCallId === \"string\" ? event.toolCallId : \"\",\n\t\t\ttypeof event.toolName === \"string\" ? event.toolName : \"tool\",\n\t\t\tisRecord(event.args) ? event.args : {},\n\t\t);\n\t}\n\tif (event.type === \"tool_execution_end\") {\n\t\tconst result = isRecord(event.result) ? event.result : {};\n\t\tcapture.journal.recordToolResult(\n\t\t\ttypeof event.toolCallId === \"string\" ? event.toolCallId : \"\",\n\t\t\ttypeof event.toolName === \"string\" ? event.toolName : \"tool\",\n\t\t\t{ content: result.content, isError: event.isError },\n\t\t);\n\t}\n\tif (event.type === \"message_start\" && isRecord(event.message)) {\n\t\tif (event.message.role === \"assistant\") commitRpcInFlightUsage(capture);\n\t}\n\tif (event.type === \"message_update\") {\n\t\tconst usage = normalizeUsage(event.usage);\n\t\tif (usage) capture.inFlightUsage = usage;\n\t\tconst delta = event.assistantMessageEvent;\n\t\tif (isRecord(delta) && delta.type === \"text_delta\" && typeof delta.delta === \"string\") {\n\t\t\tcapture.partial = truncateUtf8(\n\t\t\t\t`${capture.partial}${delta.delta}`,\n\t\t\t\tDEFAULT_MAX_OUTPUT_BYTES,\n\t\t\t).text;\n\t\t}\n\t}\n\tif (event.type === \"message_end\" && isRecord(event.message)) {\n\t\tconst candidate = event.message;\n\t\tif (candidate.role !== \"toolResult\") journalMessages(capture.journal, [candidate]);\n\t\tif (candidate.role === \"assistant\") captureAssistantEnd(candidate, capture);\n\t}\n\treturn !sameUsage(previousUsage, snapshotRpcUsage(capture));\n}\n\nexport function snapshotRpcUsage(capture: RpcTurnCapture): TransportUsage {\n\tconst usage = { ...capture.usage };\n\tif (capture.inFlightUsage) addUsage(usage, capture.inFlightUsage);\n\treturn usage;\n}\n\nexport function commitRpcInFlightUsage(capture: RpcTurnCapture): boolean {\n\tif (!capture.inFlightUsage) return false;\n\taddUsage(capture.usage, capture.inFlightUsage);\n\tcapture.inFlightUsage = undefined;\n\treturn true;\n}\n\nfunction captureAssistantEnd(candidate: Record<string, unknown>, capture: RpcTurnCapture): void {\n\tcapture.output = truncateUtf8(\n\t\tassistantText(candidate.content) || capture.partial,\n\t\tDEFAULT_MAX_OUTPUT_BYTES,\n\t).text;\n\tcapture.partial = capture.output;\n\tcapture.stopReason = typeof candidate.stopReason === \"string\" ? candidate.stopReason : undefined;\n\tcapture.error =\n\t\ttypeof candidate.errorMessage === \"string\"\n\t\t\t? boundedPrivateText(candidate.errorMessage, 4 * 1024)\n\t\t\t: undefined;\n\tcapture.provider =\n\t\ttypeof candidate.provider === \"string\"\n\t\t\t? boundedPrivateText(candidate.provider, 256)\n\t\t\t: undefined;\n\tconst responseModel =\n\t\ttypeof candidate.responseModel === \"string\"\n\t\t\t? candidate.responseModel\n\t\t\t: typeof candidate.model === \"string\"\n\t\t\t\t? candidate.model\n\t\t\t\t: undefined;\n\tcapture.model = responseModel ? boundedPrivateText(responseModel, 256) : undefined;\n\tconst finalUsage = normalizeUsage(candidate.usage);\n\tconst completedUsage = finalUsage ?? capture.inFlightUsage;\n\tif (completedUsage) addUsage(capture.usage, completedUsage);\n\tcapture.inFlightUsage = undefined;\n\tcapture.usage.turns = addUsageValue(capture.usage.turns, 1);\n}\n\nexport function observeRpcBudgetEvent(event: unknown, monitor: TurnBudgetMonitor): void {\n\tif (!isRecord(event)) return;\n\tif (event.type === \"tool_execution_end\") monitor.recordActivity();\n\tif (event.type !== \"message_end\" || !isRecord(event.message)) return;\n\tconst message = event.message;\n\tif (message.role === \"toolResult\") {\n\t\tmonitor.recordActivity();\n\t\treturn;\n\t}\n\tif (message.role !== \"assistant\") return;\n\tmonitor.recordToolCalls(assistantToolCallCount(message.content));\n\tmonitor.recordAssistantTurn(\n\t\ttypeof message.stopReason === \"string\" ? message.stopReason : undefined,\n\t);\n}\n\nfunction assistantToolCallCount(content: unknown): number {\n\tif (!Array.isArray(content)) return 0;\n\treturn content.filter((part) => isRecord(part) && part.type === \"toolCall\").length;\n}\n\nfunction normalizeUsage(value: unknown): TransportUsage | undefined {\n\tif (!isRecord(value)) return undefined;\n\tconst input = safeNonNegative(value.input);\n\tconst output = safeNonNegative(value.output);\n\tconst cacheRead = safeNonNegative(value.cacheRead);\n\tconst cacheWrite = safeNonNegative(value.cacheWrite);\n\tconst reportedTotal = safeNonNegative(value.totalTokens);\n\tconst cost = isRecord(value.cost) ? safeNonNegative(value.cost.total) : undefined;\n\tif (\n\t\tinput === undefined &&\n\t\toutput === undefined &&\n\t\tcacheRead === undefined &&\n\t\tcacheWrite === undefined &&\n\t\treportedTotal === undefined &&\n\t\tcost === undefined\n\t) {\n\t\treturn undefined;\n\t}\n\tconst components = [input, output, cacheRead, cacheWrite].reduce<number>(\n\t\t(total, current) => addUsageValue(total, current ?? 0),\n\t\t0,\n\t);\n\treturn {\n\t\tinput: input ?? 0,\n\t\toutput: output ?? 0,\n\t\tcacheRead: cacheRead ?? 0,\n\t\tcacheWrite: cacheWrite ?? 0,\n\t\ttotalTokens: reportedTotal ?? components,\n\t\tcost: cost ?? 0,\n\t\tturns: 0,\n\t};\n}\n\nfunction addUsage(target: TransportUsage, value: TransportUsage): void {\n\tfor (const key of [\n\t\t\"input\",\n\t\t\"output\",\n\t\t\"cacheRead\",\n\t\t\"cacheWrite\",\n\t\t\"totalTokens\",\n\t\t\"cost\",\n\t\t\"turns\",\n\t] as const) {\n\t\ttarget[key] = addUsageValue(target[key], value[key]);\n\t}\n}\n\nfunction addUsageValue(current: number, addition: number): number {\n\treturn Math.min(Number.MAX_SAFE_INTEGER, current + addition);\n}\n\nfunction safeNonNegative(value: unknown): number | undefined {\n\treturn typeof value === \"number\" &&\n\t\tNumber.isFinite(value) &&\n\t\tvalue >= 0 &&\n\t\tvalue <= Number.MAX_SAFE_INTEGER\n\t\t? value\n\t\t: undefined;\n}\n\nfunction sameUsage(left: TransportUsage, right: TransportUsage): boolean {\n\treturn (\n\t\tleft.input === right.input &&\n\t\tleft.output === right.output &&\n\t\tleft.cacheRead === right.cacheRead &&\n\t\tleft.cacheWrite === right.cacheWrite &&\n\t\tleft.totalTokens === right.totalTokens &&\n\t\tleft.cost === right.cost &&\n\t\tleft.turns === right.turns\n\t);\n}\n\nfunction assistantText(value: unknown): string {\n\tif (typeof value === \"string\") return value;\n\tif (!Array.isArray(value)) return \"\";\n\treturn value\n\t\t.flatMap((part) => {\n\t\t\tif (!isRecord(part)) return [];\n\t\t\treturn part.type === \"text\" && typeof part.text === \"string\" ? [part.text] : [];\n\t\t})\n\t\t.join(\"\\n\");\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n\treturn Boolean(value && typeof value === \"object\" && !Array.isArray(value));\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAA4B,aAAa;AACzC,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,YAAY,UAAU;;;AC0CtB,eAAsB,wBACrB,SACwC;AACxC,UAAQ,aAAa;AACrB,MAAI;AACJ,MAAI;AACJ,QAAM,UAAU,IAAI,QAAc,CAAC,SAAS,WAAW;AACtD,oBAAgB;AAChB,mBAAe;AAAA,EAChB,CAAC;AACD,OAAK,QAAQ,MAAM,MAAM,MAAS;AAClC,QAAM,mBAAmB,QAAQ,OAAO,QAAQ,CAAC,UAAU;AAC1D,QAAI,UAAU,KAAK,MAAM,gBAAiB,eAAc;AAAA,EACzD,CAAC;AACD,QAAM,mBAAmB,QAAQ,OAAO,QAAQ,YAAY;AAC5D,MAAI;AACJ,MAAI;AACH,UAAM,iBAAiB;AAAA,MACtB,QAAQ;AAAA,MACR,QAAQ;AAAA,IACT;AACA,UAAM,WAAW,KAAK,IAAI,IAAI;AAC9B,UAAM;AAAA,MACL,MACC,QAAQ,OAAO;AAAA,QACd,+BAA+B;AAAA,UAC9B,MAAM,QAAQ;AAAA,UACd,eAAe,QAAQ;AAAA,UACvB,YAAY,QAAQ;AAAA,UACpB,mBAAmB,QAAQ;AAAA,UAC3B,cAAc,QAAQ;AAAA,QACvB,CAAC;AAAA,QACD,YAAY,QAAQ;AAAA,MACrB;AAAA,MACD,QAAQ;AAAA,MACR,YAAY,QAAQ;AAAA,IACrB;AACA,UAAM,aAAa,MAAM,kBAAkB,SAAS,QAAQ,QAAQ,YAAY,QAAQ,CAAC;AACzF,QAAI,eAAe,WAAW;AAC7B,YAAM,CAAC,gBAAgB,OAAO,IAAI,MAAM,QAAQ,IAAI;AAAA,QACnD,cAAc,QAAQ,OAAO,MAAM,GAAG,QAAQ,YAAY;AAAA,QAC1D,cAAc,SAAS,QAAQ,YAAY;AAAA,MAC5C,CAAC;AACD,UAAI,CAAC,QAAS,OAAM,eAAe,OAAO;AAC1C,cAAQ;AAAA,QACP,mBAAmB,UAAU;AAAA,QAC7B,iBAAiB,SAAY;AAAA,MAC9B,EACE,OAAO,OAAO,EACd,KAAK,IAAI;AAAA,IACZ;AAAA,EACD,SAAS,QAAQ;AAChB,YAAQ,aAAa,MAAM;AAC3B,UAAM,eAAe,OAAO;AAAA,EAC7B,UAAE;AACD,qBAAiB;AACjB,qBAAiB;AAAA,EAClB;AACA,QAAM,UAAU,QAAQ,WAAW;AACnC,QAAM,SAAS,aAAa,QAAQ,UAAU,QAAQ,SAAS,wBAAwB;AACvF,MAAI,CAAC,UAAU,QAAQ,eAAe,WAAW,CAAC,OAAO,KAAK,KAAK,IAAI;AACtE,YAAQ,QAAQ,SAAS;AAAA,EAC1B;AACA,SAAO;AAAA,IACN,QAAQ,OAAO;AAAA,IACf,WAAW,OAAO;AAAA,IAClB,QAAQ,QAAS,sBAAsB,KAAK,KAAK,IAAI,cAAc,WAAY;AAAA,IAC/E;AAAA,EACD;AACD;AAEA,SAAS,UAAU,OAAoC;AACtD,SAAO,SACN,OAAO,UAAU,YACjB,OAAQ,MAA6B,SAAS,WAC1C,MAA2B,QAAQ,SACrC;AACJ;AAEA,SAAS,YAAY,UAA0B;AAC9C,SAAO,KAAK,IAAI,GAAG,WAAW,KAAK,IAAI,CAAC;AACzC;AAEA,eAAe,cACd,OACA,QACA,WACa;AACb,MAAI,OAAO,QAAS,OAAM,WAAW;AACrC,MAAI;AACJ,MAAI;AACJ,QAAM,UAAU,IAAI,QAAe,CAAC,UAAU,WAAW;AACxD,cAAU,MAAM,OAAO,WAAW,CAAC;AACnC,WAAO,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAK,CAAC;AACxD,QAAI,OAAO,QAAS,SAAQ;AAAA,EAC7B,CAAC;AACD,QAAM,WAAW,IAAI,QAAe,CAAC,UAAU,WAAW;AACzD,YAAQ,WAAW,MAAM,OAAO,IAAI,MAAM,sCAAsC,CAAC,GAAG,SAAS;AAAA,EAC9F,CAAC;AACD,MAAI;AACH,WAAO,MAAM,QAAQ,KAAK,CAAC,MAAM,GAAG,SAAS,QAAQ,CAAC;AAAA,EACvD,UAAE;AACD,QAAI,MAAO,cAAa,KAAK;AAC7B,QAAI,QAAS,QAAO,oBAAoB,SAAS,OAAO;AAAA,EACzD;AACD;AAEA,eAAe,kBACd,SACA,QACA,WAC6C;AAC7C,MAAI,OAAO,QAAS,QAAO;AAC3B,MAAI;AACJ,MAAI;AACJ,MAAI;AACH,WAAO,MAAM,QAAQ,KAAK;AAAA,MACzB,QAAQ,KAAK,MAAM,SAAkB;AAAA,MACrC,IAAI,QAAmB,CAAC,YAAY;AACnC,kBAAU,MAAM,QAAQ,SAAS;AACjC,eAAO,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAK,CAAC;AAAA,MACzD,CAAC;AAAA,MACD,IAAI,QAAmB,CAAC,YAAY;AACnC,gBAAQ,WAAW,MAAM,QAAQ,SAAS,GAAG,SAAS;AAAA,MACvD,CAAC;AAAA,IACF,CAAC;AAAA,EACF,UAAE;AACD,QAAI,MAAO,cAAa,KAAK;AAC7B,QAAI,QAAS,QAAO,oBAAoB,SAAS,OAAO;AAAA,EACzD;AACD;AAEA,eAAe,eAAe,SAA0D;AACvF,SAAO,cAAc,QAAQ,QAAQ,GAAG,QAAQ,eAAe,GAAK;AACrE;AAEA,eAAe,cAAc,SAAwB,WAAqC;AACzF,MAAI;AACJ,MAAI;AACH,WAAO,MAAM,QAAQ,KAAK;AAAA,MACzB,QAAQ;AAAA,QACP,MAAM;AAAA,QACN,MAAM;AAAA,MACP;AAAA,MACA,IAAI,QAAiB,CAAC,YAAY;AACjC,gBAAQ,WAAW,MAAM,QAAQ,KAAK,GAAG,SAAS;AAAA,MACnD,CAAC;AAAA,IACF,CAAC;AAAA,EACF,UAAE;AACD,QAAI,MAAO,cAAa,KAAK;AAAA,EAC9B;AACD;AAEA,SAAS,aAAoB;AAC5B,QAAM,QAAQ,IAAI,MAAM,6BAA6B;AACrD,QAAM,OAAO;AACb,SAAO;AACR;AAEA,SAAS,aAAa,OAAwB;AAC7C,SAAO,aAAa,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,GAAG,KAAK,IAAI,EAAE;AACxF;;;ACxMO,SAAS,cAAc,OAAuD;AACpF,MAAI,CAAC,SAAS,OAAO,UAAU,SAAU,QAAO,CAAC;AACjD,QAAM,QAAQ;AACd,SAAO;AAAA,IACN,UACC,OAAO,MAAM,aAAa,WAAW,mBAAmB,MAAM,UAAU,GAAG,IAAI;AAAA,IAChF,OAAO,OAAO,MAAM,OAAO,WAAW,mBAAmB,MAAM,IAAI,GAAG,IAAI;AAAA,EAC3E;AACD;AAEO,SAAS,kBAAkB,OAAmD;AACpF,SAAO,OAAO,UAAU,YACvB,CAAC,OAAO,WAAW,OAAO,UAAU,QAAQ,SAAS,KAAK,EAAE,SAAS,KAAK,IACvE,QACD;AACJ;AAEO,SAAS,UACf,QACA,OACqC;AACrC,SAAO;AAAA,IACN,WAAW,CAAC,eAAe,cAAc;AAAA,IACzC,YAAY;AAAA,MACX;AAAA,MACA;AAAA,MACA,GAAI,OAAO,QAAQ,CAAC,OAAO,IAAI,CAAC;AAAA,MAChC,GAAI,MAAM,iBAAiB,OAAO,gBAAgB,CAAC,eAAe,IAAI,CAAC;AAAA,MACvE,GAAI,OAAO,QAAQ,CAAC,OAAO,IAAI,CAAC;AAAA,IACjC;AAAA,IACA,aAAa,CAAC,kBAAkB,kBAAkB,mBAAmB,gBAAgB;AAAA,EACtF;AACD;AAEO,SAAS,sBACf,QACA,WACA,cACc;AACd,SAAO;AAAA,IACN;AAAA,IACA,UAAU;AAAA,IACV,SAAS;AAAA,IACT,OAAO;AAAA,IACP,WAAW;AAAA,MACV,GAAG;AAAA,MACH,OAAO;AAAA,MACP;AAAA,MACA,WAAW,KAAK,IAAI;AAAA,IACrB;AAAA,EACD;AACD;AAEO,SAASA,cAAa,OAAwB;AACpD,SAAO;AAAA,IACN,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,IACrD;AAAA,EACD;AACD;;;AC7CO,SAAS,uBAAuC;AACtD,SAAO;AAAA,IACN,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO,oBAAoB;AAAA,IAC3B,SAAS,IAAI,uBAAuB;AAAA,EACrC;AACD;AAEO,SAAS,gBAAgB,OAAgB,SAAkC;AACjF,MAAI,CAAC,SAAS,KAAK,EAAG,QAAO;AAC7B,QAAM,gBAAgB,iBAAiB,OAAO;AAC9C,MAAI,MAAM,SAAS,wBAAwB;AAC1C,YAAQ,QAAQ;AAAA,MACf,OAAO,MAAM,eAAe,WAAW,MAAM,aAAa;AAAA,MAC1D,OAAO,MAAM,aAAa,WAAW,MAAM,WAAW;AAAA,MACtD,SAAS,MAAM,IAAI,IAAI,MAAM,OAAO,CAAC;AAAA,IACtC;AAAA,EACD;AACA,MAAI,MAAM,SAAS,sBAAsB;AACxC,UAAM,SAAS,SAAS,MAAM,MAAM,IAAI,MAAM,SAAS,CAAC;AACxD,YAAQ,QAAQ;AAAA,MACf,OAAO,MAAM,eAAe,WAAW,MAAM,aAAa;AAAA,MAC1D,OAAO,MAAM,aAAa,WAAW,MAAM,WAAW;AAAA,MACtD,EAAE,SAAS,OAAO,SAAS,SAAS,MAAM,QAAQ;AAAA,IACnD;AAAA,EACD;AACA,MAAI,MAAM,SAAS,mBAAmB,SAAS,MAAM,OAAO,GAAG;AAC9D,QAAI,MAAM,QAAQ,SAAS,YAAa,wBAAuB,OAAO;AAAA,EACvE;AACA,MAAI,MAAM,SAAS,kBAAkB;AACpC,UAAM,QAAQ,eAAe,MAAM,KAAK;AACxC,QAAI,MAAO,SAAQ,gBAAgB;AACnC,UAAM,QAAQ,MAAM;AACpB,QAAI,SAAS,KAAK,KAAK,MAAM,SAAS,gBAAgB,OAAO,MAAM,UAAU,UAAU;AACtF,cAAQ,UAAU;AAAA,QACjB,GAAG,QAAQ,OAAO,GAAG,MAAM,KAAK;AAAA,QAChC;AAAA,MACD,EAAE;AAAA,IACH;AAAA,EACD;AACA,MAAI,MAAM,SAAS,iBAAiB,SAAS,MAAM,OAAO,GAAG;AAC5D,UAAM,YAAY,MAAM;AACxB,QAAI,UAAU,SAAS,aAAc,iBAAgB,QAAQ,SAAS,CAAC,SAAS,CAAC;AACjF,QAAI,UAAU,SAAS,YAAa,qBAAoB,WAAW,OAAO;AAAA,EAC3E;AACA,SAAO,CAAC,UAAU,eAAe,iBAAiB,OAAO,CAAC;AAC3D;AAEO,SAAS,iBAAiB,SAAyC;AACzE,QAAM,QAAQ,EAAE,GAAG,QAAQ,MAAM;AACjC,MAAI,QAAQ,cAAe,UAAS,OAAO,QAAQ,aAAa;AAChE,SAAO;AACR;AAEO,SAAS,uBAAuB,SAAkC;AACxE,MAAI,CAAC,QAAQ,cAAe,QAAO;AACnC,WAAS,QAAQ,OAAO,QAAQ,aAAa;AAC7C,UAAQ,gBAAgB;AACxB,SAAO;AACR;AAEA,SAAS,oBAAoB,WAAoC,SAA+B;AAC/F,UAAQ,SAAS;AAAA,IAChB,cAAc,UAAU,OAAO,KAAK,QAAQ;AAAA,IAC5C;AAAA,EACD,EAAE;AACF,UAAQ,UAAU,QAAQ;AAC1B,UAAQ,aAAa,OAAO,UAAU,eAAe,WAAW,UAAU,aAAa;AACvF,UAAQ,QACP,OAAO,UAAU,iBAAiB,WAC/B,mBAAmB,UAAU,cAAc,IAAI,IAAI,IACnD;AACJ,UAAQ,WACP,OAAO,UAAU,aAAa,WAC3B,mBAAmB,UAAU,UAAU,GAAG,IAC1C;AACJ,QAAM,gBACL,OAAO,UAAU,kBAAkB,WAChC,UAAU,gBACV,OAAO,UAAU,UAAU,WAC1B,UAAU,QACV;AACL,UAAQ,QAAQ,gBAAgB,mBAAmB,eAAe,GAAG,IAAI;AACzE,QAAM,aAAa,eAAe,UAAU,KAAK;AACjD,QAAM,iBAAiB,cAAc,QAAQ;AAC7C,MAAI,eAAgB,UAAS,QAAQ,OAAO,cAAc;AAC1D,UAAQ,gBAAgB;AACxB,UAAQ,MAAM,QAAQ,cAAc,QAAQ,MAAM,OAAO,CAAC;AAC3D;AAEO,SAAS,sBAAsB,OAAgB,SAAkC;AACvF,MAAI,CAAC,SAAS,KAAK,EAAG;AACtB,MAAI,MAAM,SAAS,qBAAsB,SAAQ,eAAe;AAChE,MAAI,MAAM,SAAS,iBAAiB,CAAC,SAAS,MAAM,OAAO,EAAG;AAC9D,QAAM,UAAU,MAAM;AACtB,MAAI,QAAQ,SAAS,cAAc;AAClC,YAAQ,eAAe;AACvB;AAAA,EACD;AACA,MAAI,QAAQ,SAAS,YAAa;AAClC,UAAQ,gBAAgB,uBAAuB,QAAQ,OAAO,CAAC;AAC/D,UAAQ;AAAA,IACP,OAAO,QAAQ,eAAe,WAAW,QAAQ,aAAa;AAAA,EAC/D;AACD;AAEA,SAAS,uBAAuB,SAA0B;AACzD,MAAI,CAAC,MAAM,QAAQ,OAAO,EAAG,QAAO;AACpC,SAAO,QAAQ,OAAO,CAAC,SAAS,SAAS,IAAI,KAAK,KAAK,SAAS,UAAU,EAAE;AAC7E;AAEA,SAAS,eAAe,OAA4C;AACnE,MAAI,CAAC,SAAS,KAAK,EAAG,QAAO;AAC7B,QAAM,QAAQ,gBAAgB,MAAM,KAAK;AACzC,QAAM,SAAS,gBAAgB,MAAM,MAAM;AAC3C,QAAM,YAAY,gBAAgB,MAAM,SAAS;AACjD,QAAM,aAAa,gBAAgB,MAAM,UAAU;AACnD,QAAM,gBAAgB,gBAAgB,MAAM,WAAW;AACvD,QAAM,OAAO,SAAS,MAAM,IAAI,IAAI,gBAAgB,MAAM,KAAK,KAAK,IAAI;AACxE,MACC,UAAU,UACV,WAAW,UACX,cAAc,UACd,eAAe,UACf,kBAAkB,UAClB,SAAS,QACR;AACD,WAAO;AAAA,EACR;AACA,QAAM,aAAa,CAAC,OAAO,QAAQ,WAAW,UAAU,EAAE;AAAA,IACzD,CAAC,OAAO,YAAY,cAAc,OAAO,WAAW,CAAC;AAAA,IACrD;AAAA,EACD;AACA,SAAO;AAAA,IACN,OAAO,SAAS;AAAA,IAChB,QAAQ,UAAU;AAAA,IAClB,WAAW,aAAa;AAAA,IACxB,YAAY,cAAc;AAAA,IAC1B,aAAa,iBAAiB;AAAA,IAC9B,MAAM,QAAQ;AAAA,IACd,OAAO;AAAA,EACR;AACD;AAEA,SAAS,SAAS,QAAwB,OAA6B;AACtE,aAAW,OAAO;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,GAAY;AACX,WAAO,GAAG,IAAI,cAAc,OAAO,GAAG,GAAG,MAAM,GAAG,CAAC;AAAA,EACpD;AACD;AAEA,SAAS,cAAc,SAAiB,UAA0B;AACjE,SAAO,KAAK,IAAI,OAAO,kBAAkB,UAAU,QAAQ;AAC5D;AAEA,SAAS,gBAAgB,OAAoC;AAC5D,SAAO,OAAO,UAAU,YACvB,OAAO,SAAS,KAAK,KACrB,SAAS,KACT,SAAS,OAAO,mBACd,QACA;AACJ;AAEA,SAAS,UAAU,MAAsB,OAAgC;AACxE,SACC,KAAK,UAAU,MAAM,SACrB,KAAK,WAAW,MAAM,UACtB,KAAK,cAAc,MAAM,aACzB,KAAK,eAAe,MAAM,cAC1B,KAAK,gBAAgB,MAAM,eAC3B,KAAK,SAAS,MAAM,QACpB,KAAK,UAAU,MAAM;AAEvB;AAEA,SAAS,cAAc,OAAwB;AAC9C,MAAI,OAAO,UAAU,SAAU,QAAO;AACtC,MAAI,CAAC,MAAM,QAAQ,KAAK,EAAG,QAAO;AAClC,SAAO,MACL,QAAQ,CAAC,SAAS;AAClB,QAAI,CAAC,SAAS,IAAI,EAAG,QAAO,CAAC;AAC7B,WAAO,KAAK,SAAS,UAAU,OAAO,KAAK,SAAS,WAAW,CAAC,KAAK,IAAI,IAAI,CAAC;AAAA,EAC/E,CAAC,EACA,KAAK,IAAI;AACZ;AAEA,SAAS,SAAS,OAAkD;AACnE,SAAO,QAAQ,SAAS,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK,CAAC;AAC3E;;;AH1JA,IAAM,qBAAqB;AAC3B,IAAM,qBAAqB;AAC3B,IAAM,iBAAiB;AACvB,IAAM,sBAAsB,oBAAI,IAAI,CAAC,QAAQ,QAAQ,QAAQ,SAAS,QAAQ,QAAQ,IAAI,CAAC;AAyCpF,IAAM,oBAAN,MAAwB;AAAA,EAe9B,YAA6B,SAAmC;AAAnC;AAAA,EAAoC;AAAA,EAApC;AAAA,EAdrB;AAAA,EACA,gBAAgB;AAAA,EAChB;AAAA,EACS,UAAU,oBAAI,IAA4B;AAAA,EAC1C,YAAY,oBAAI,IAA8B;AAAA,EAC9C,iBAAiB,oBAAI,IAA4B;AAAA,EAC1D,gBAAgB;AAAA,EAChB,SAAS;AAAA,EACT,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EAIR,MAAM,MAAM,QAAoD;AAC/D,QAAI,KAAK,QAAS,OAAM,IAAI,MAAM,qCAAqC;AACvE,QAAI,QAAQ,QAAS,OAAMC,YAAW,4BAA4B;AAClE,UAAM,aAAa,KAAK,QAAQ,aAC7B;AAAA,MACA,SAAS,KAAK,QAAQ,WAAW;AAAA,MACjC,MAAM,CAAC,GAAG,KAAK,QAAQ,WAAW,MAAM,GAAG,KAAK,QAAQ,IAAI;AAAA,IAC7D,IACC,oBAAoB,KAAK,QAAQ,IAAI;AACxC,UAAM,OAAO,MAAM,WAAW,SAAS,WAAW,MAAM;AAAA,MACvD,KAAK,KAAK,QAAQ;AAAA,MAClB,UAAU,QAAQ,aAAa;AAAA,MAC/B,OAAO;AAAA,MACP,OAAO,CAAC,QAAQ,QAAQ,MAAM;AAAA,MAC9B,KAAK,EAAE,GAAG,QAAQ,KAAK,GAAG,KAAK,QAAQ,IAAI;AAAA,IAC5C,CAAC;AACD,SAAK,UAAU;AACf,SAAK,gBAAgB;AACrB,SAAK,UAAU,IAAI,gBAAgB;AAAA,MAClC,SAAS,CAAC,UAAU,KAAK,YAAY,KAAK;AAAA,MAC1C,aAAa,MAAM;AAClB,aAAK;AACL,aAAK,KAAK,IAAI,MAAM,sCAAsC,CAAC;AAAA,MAC5D;AAAA,MACA,aAAa,MAAM;AAClB,aAAK;AACL,aAAK,KAAK,IAAI,MAAM,gDAAgD,CAAC;AAAA,MACtE;AAAA,IACD,CAAC;AACD,SAAK,QAAQ,GAAG,QAAQ,CAAC,UAAU,KAAK,SAAS,KAAK,KAAK,CAAC;AAC5D,SAAK,OAAO,GAAG,SAAS,CAAC,UAAU,KAAK,KAAK,aAAa,oBAAoB,KAAK,CAAC,CAAC;AACrF,SAAK,QAAQ,GAAG,QAAQ,CAAC,UAAU;AAClC,WAAK,SAAS;AAAA,QACb,KAAK;AAAA,QACL,OAAO,SAAS,KAAK,IAAI,MAAM,SAAS,MAAM,IAAI,OAAO,KAAK;AAAA,QAC9D;AAAA,MACD,EAAE;AAAA,IACH,CAAC;AACD,SAAK,KAAK,SAAS,CAAC,UAAU,KAAK,KAAK,aAAa,sBAAsB,KAAK,CAAC,CAAC;AAClF,SAAK,KAAK,SAAS,CAAC,MAAM,gBAAgB;AACzC,WAAK,gBAAgB;AACrB,WAAK,SAAS,OAAO;AACrB,WAAK;AAAA,QACJ,IAAI;AAAA,UACH,6BAA6B,QAAQ,MAAM,YAAY,eAAe,MAAM,IAAI,KAAK,SAAS,KAAK,iBAAiB,KAAK,MAAM,CAAC,KAAK,EAAE;AAAA,QACxI;AAAA,MACD;AAAA,IACD,CAAC;AACD,QAAI;AACH,YAAM,aAAa,MAAM,QAAQ,KAAK,QAAQ,oBAAoB,kBAAkB;AACpF,UAAI,QAAQ,QAAS,OAAMA,YAAW,4BAA4B;AAClE,YAAM,QAAQ,MAAMC;AAAA,QACnB,KAAK;AAAA,UACJ,EAAE,MAAM,YAAY;AAAA,UACpB,KAAK,QAAQ,oBAAoB;AAAA,QAClC;AAAA,QACA;AAAA,QACA;AAAA,MACD;AACA,aAAO;AAAA,QACN;AAAA,QACA,QAAQ,KAAK;AAAA,QACb,gBAAgB,KAAK;AAAA,QACrB,gBAAgB,KAAK;AAAA,MACtB;AAAA,IACD,SAAS,OAAO;AACf,YAAM,KAAK,KAAK;AAChB,YAAM;AAAA,IACP;AAAA,EACD;AAAA,EAEA,QAAQ,UAAgD;AACvD,SAAK,UAAU,IAAI,QAAQ;AAC3B,WAAO,MAAM,KAAK,UAAU,OAAO,QAAQ;AAAA,EAC5C;AAAA,EAEA,QAAQ,UAA8C;AACrD,SAAK,eAAe,IAAI,QAAQ;AAChC,WAAO,MAAM,KAAK,eAAe,OAAO,QAAQ;AAAA,EACjD;AAAA,EAEA,MAAM,OAAO,SAAiB,WAAmC;AAChE,UAAM,KAAK,QAAQ,EAAE,MAAM,UAAU,QAAQ,GAAG,SAAS;AAAA,EAC1D;AAAA,EAEA,MAAM,MAAM,SAAiB,WAAmC;AAC/D,UAAM,KAAK,QAAQ,EAAE,MAAM,SAAS,QAAQ,GAAG,SAAS;AAAA,EACzD;AAAA,EAEA,MAAM,QAAuB;AAC5B,UAAM,KAAK;AAAA,MACV,EAAE,MAAM,QAAQ;AAAA,MAChB,KAAK,QAAQ,kBAAkB,KAAK,IAAI,oBAAoB,cAAc;AAAA,IAC3E;AAAA,EACD;AAAA,EAEA,MAAM,WAAqC;AAC1C,WAAO,KAAK,YAA6B,EAAE,MAAM,YAAY,CAAC;AAAA,EAC/D;AAAA,EAEA,YAAoB;AACnB,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,MAAM,OAAsB;AAC3B,QAAI,KAAK,aAAc,QAAO,KAAK;AACnC,UAAM,OAAO,KAAK;AAClB,QAAI,CAAC,KAAM;AACX,QAAI,KAAK,eAAe;AACvB,WAAK,qBAAqB;AAC1B,WAAK,qBAAqB;AAC1B,WAAK,UAAU;AACf,WAAK,cAAc,KAAK,eAAe,IAAI,MAAM,qCAAqC,CAAC;AACvF,WAAK,UAAU,MAAM;AACrB,WAAK,eAAe,MAAM;AAC1B;AAAA,IACD;AACA,SAAK,eAAe,IAAI,QAAc,CAAC,YAAY;AAClD,UAAI,UAAU;AACd,UAAI;AACJ,YAAM,SAAS,MAAM;AACpB,YAAI,QAAS;AACb,kBAAU;AACV,YAAI,oBAAqB,cAAa,mBAAmB;AACzD,aAAK,IAAI,SAAS,MAAM;AACxB,aAAK,qBAAqB;AAC1B,aAAK,qBAAqB;AAC1B,gBAAQ;AAAA,MACT;AACA,WAAK,KAAK,SAAS,MAAM;AACzB,UAAI;AACH,aAAK,OAAO,IAAI;AAAA,MACjB,QAAQ;AAAA,MAER;AACA,YAAM,UAAU,KAAK,QAAQ,sBAAsB;AACnD,WAAK,qBAAqB;AAC1B,WAAK,qBAAqB,iBAAiB,MAAM,OAAO;AACxD,4BAAsB,WAAW,MAAM;AACtC,aAAK,OAAO,QAAQ;AACpB,aAAK,QAAQ,QAAQ;AACrB,aAAK,QAAQ,QAAQ;AACrB,eAAO;AAAA,MACR,GAAG,UAAU,GAAK;AAAA,IACnB,CAAC;AACD,UAAM,KAAK;AACX,SAAK,UAAU;AACf,SAAK,cAAc,IAAI,MAAM,6BAA6B,CAAC;AAC3D,SAAK,UAAU,MAAM;AACrB,SAAK,eAAe,MAAM;AAAA,EAC3B;AAAA,EAEA,MAAc,YACb,SACA,YAAY,KAAK,QAAQ,oBAAoB,oBAChC;AACb,UAAM,WAAW,MAAM,KAAK,QAAQ,SAAS,SAAS;AACtD,WAAO,SAAS;AAAA,EACjB;AAAA,EAEQ,QACP,SACA,YAAY,KAAK,QAAQ,oBAAoB,oBACtB;AACvB,UAAM,OAAO,KAAK;AAClB,QAAI,CAAC,MAAM,SAAS,KAAK,MAAM,aAAa,CAAC,KAAK,MAAM,UAAU;AACjE,aAAO,QAAQ,OAAO,KAAK,eAAe,IAAI,MAAM,mCAAmC,CAAC;AAAA,IACzF;AACA,UAAM,KAAK,OAAO,EAAE,KAAK,aAAa;AACtC,WAAO,IAAI,QAAqB,CAAC,SAAS,WAAW;AACpD,YAAM,QAAQ,WAAW,MAAM;AAC9B,aAAK,QAAQ,OAAO,EAAE;AACtB,eAAO,gBAAgB,OAAO,QAAQ,IAAI,6BAA6B,SAAS,IAAI,CAAC;AAAA,MACtF,GAAG,SAAS;AACZ,YAAM,MAAM;AACZ,WAAK,QAAQ,IAAI,IAAI,EAAE,SAAS,QAAQ,MAAM,SAAS,QAAQ,MAAM,CAAC;AACtE,UAAI;AACH,aAAK,OAAO,MAAM,GAAG,KAAK,UAAU,EAAE,GAAG,SAAS,GAAG,CAAC,CAAC;AAAA,GAAM,CAAC,UAAU;AACvE,cAAI,CAAC,MAAO;AACZ,eAAK,KAAK,aAAa,0BAA0B,KAAK,CAAC;AAAA,QACxD,CAAC;AAAA,MACF,SAAS,OAAO;AACf,aAAK,QAAQ,OAAO,EAAE;AACtB,qBAAa,KAAK;AAClB,eAAO,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC,CAAC;AAAA,MACjE;AAAA,IACD,CAAC,EAAE,KAAK,CAAC,aAAa;AACrB,UAAI,CAAC,SAAS,QAAS,OAAM,IAAI,MAAM,SAAS,SAAS,OAAO,QAAQ,IAAI,SAAS;AACrF,aAAO;AAAA,IACR,CAAC;AAAA,EACF;AAAA,EAEQ,YAAY,OAAsB;AACzC,QAAI,CAAC,SAAS,OAAO,UAAU,YAAY,MAAM,QAAQ,KAAK,EAAG;AACjE,UAAM,QAAQ;AACd,QAAI,MAAM,SAAS,cAAc,OAAO,MAAM,OAAO,UAAU;AAC9D,YAAM,UAAU,KAAK,QAAQ,IAAI,MAAM,EAAE;AACzC,UAAI,CAAC,QAAS;AACd,UAAI,OAAO,MAAM,YAAY,YAAY,MAAM,YAAY,QAAQ,SAAS;AAC3E,aAAK;AAAA,UACJ,IAAI,MAAM,qCAAqC,MAAM,EAAE,cAAc,QAAQ,OAAO,EAAE;AAAA,QACvF;AACA;AAAA,MACD;AACA,WAAK,QAAQ,OAAO,MAAM,EAAE;AAC5B,mBAAa,QAAQ,KAAK;AAC1B,cAAQ,QAAQ,KAA+B;AAC/C;AAAA,IACD;AACA,QAAI,MAAM,SAAS,0BAA0B,OAAO,MAAM,OAAO,UAAU;AAC1E,WAAK,mBAAmB;AAAA,QACvB,MAAM;AAAA,QACN,IAAI,MAAM;AAAA,QACV,WAAW;AAAA,MACZ,CAAC;AAAA,IACF;AACA,eAAW,YAAY,KAAK,UAAW,UAAS,KAAK;AAAA,EACtD;AAAA,EAEQ,mBAAmB,OAAsC;AAChE,QAAI;AACH,WAAK,SAAS,OAAO,MAAM,GAAG,KAAK,UAAU,KAAK,CAAC;AAAA,CAAI;AAAA,IACxD,QAAQ;AAAA,IAER;AAAA,EACD;AAAA,EAEQ,KAAK,OAAoB;AAChC,QAAI,KAAK,YAAa;AACtB,SAAK,cAAc;AACnB,SAAK,cAAc,KAAK;AACxB,eAAW,YAAY,KAAK,eAAgB,UAAS,KAAK;AAC1D,QAAI,KAAK,WAAW,CAAC,KAAK,cAAc;AACvC,WAAK,qBAAqB;AAAA,QACzB,KAAK;AAAA,QACL,KAAK,QAAQ,sBAAsB;AAAA,MACpC;AAAA,IACD;AAAA,EACD;AAAA,EAEQ,cAAc,OAAoB;AACzC,eAAW,WAAW,KAAK,QAAQ,OAAO,GAAG;AAC5C,mBAAa,QAAQ,KAAK;AAC1B,cAAQ,OAAO,KAAK;AAAA,IACrB;AACA,SAAK,QAAQ,MAAM;AAAA,EACpB;AACD;AAoBO,IAAM,eAAN,MAAgD;AAAA,EAKtD,YAA6B,SAA8B;AAA9B;AAC5B,SAAK,eACJ,QAAQ,iBAAiB,CAAC,kBAAkB,IAAI,kBAAkB,aAAa;AAAA,EACjF;AAAA,EAH6B;AAAA,EAJpB,OAAO;AAAA,EACC,WAAW,oBAAI,IAA4B;AAAA,EAC3C;AAAA,EAOjB,MAAM,QACL,OACA,MACA,QACA,YACuB;AACvB,UAAM,YAAY,KAAK,IAAI;AAC3B,QAAI,YAAgC;AAAA,MACnC,WAAW;AAAA,MACX,UAAU;AAAA,MACV,OAAO;AAAA,MACP,WAAW;AAAA,MACX,QAAQ,EAAE,WAAW,oBAAoB,UAAU;AAAA,IACpD;AACA,UAAM,UAAU,CAAC,UAAuC;AACvD,kBAAY;AAAA,QACX,GAAG;AAAA,QACH,GAAG;AAAA,QACH,QAAQ,EAAE,GAAG,UAAU,QAAQ,GAAG,MAAM,OAAO;AAAA,QAC/C,OAAO,MAAM,QAAQ,EAAE,GAAG,MAAM,MAAM,IAAI,UAAU;AAAA,QACpD,WAAW,KAAK,IAAI;AAAA,MACrB;AACA,mBAAa;AAAA,QACZ,GAAG;AAAA,QACH,QAAQ,EAAE,GAAG,UAAU,OAAO;AAAA,QAC9B,OAAO,UAAU,QAAQ,EAAE,GAAG,UAAU,MAAM,IAAI;AAAA,MACnD,CAAC;AAAA,IACF;AACA,YAAQ,CAAC,CAAC;AACV,QAAI,OAAO,QAAS,QAAO,sBAAsB,IAAI,WAAW,UAAU;AAC1E,UAAM,WAAW,KAAK,QAAQ,cAAc,KAAK,QAAQ,YAAY,IAAI,qBAAqB;AAC9F,UAAM,cAAc,eAAe,MAAM,KAAK,MAAM,cAAc,QAAQ,QAAQ,EAAE,OAAO;AAAA,MAC1F,CAAC,cAAc,UAAU,SAAS,MAAM;AAAA,IACzC;AACA,QAAI,CAAC,aAAa;AACjB,cAAQ,EAAE,OAAO,UAAU,cAAc,WAAW,CAAC;AACrD,aAAO,EAAE,QAAQ,IAAI,UAAU,GAAG,OAAO,qBAAqB,MAAM,KAAK,IAAI,UAAU;AAAA,IACxF;AACA,UAAM,uBAAuB;AAAA,MAC5B,GAAG;AAAA,MACH,OAAO,MAAM,eAAe,kBAAkB,YAAY;AAAA,IAC3D;AACA,QAAI;AACH,uBAAiB,qBAAqB,KAAK;AAAA,IAC5C,SAAS,OAAO;AACf,cAAQ,EAAE,OAAO,UAAU,cAAc,WAAW,CAAC;AACrD,aAAO,EAAE,QAAQ,IAAI,UAAU,GAAG,OAAOC,cAAa,KAAK,GAAG,UAAU;AAAA,IACzE;AACA,QAAI;AACJ,QAAI;AACH,cAAQ,MAAM,KAAK,YAAY,OAAO,sBAAsB,MAAM;AAAA,IACnE,SAAS,OAAO;AACf,cAAQ,EAAE,OAAO,OAAO,UAAU,gBAAgB,UAAU,cAAc,WAAW,CAAC;AACtF,aAAO;AAAA,QACN,QAAQ;AAAA,QACR,UAAU,OAAO,UAAU,MAAM;AAAA,QACjC,SAAS,OAAO;AAAA,QAChB,OAAOA,cAAa,KAAK;AAAA,QACzB;AAAA,MACD;AAAA,IACD;AACA,UAAM,aAAa,cAAc,MAAM,MAAM,KAAK;AAClD,YAAQ;AAAA,MACP,OAAO;AAAA,MACP,UAAU,WAAW;AAAA,MACrB,OAAO,WAAW;AAAA,MAClB,eAAe,kBAAkB,MAAM,MAAM,aAAa;AAAA,MAC1D,QAAQ,EAAE,SAAS,KAAK,IAAI,EAAE;AAAA,IAC/B,CAAC;AACD,QAAI,OAAO,SAAS;AACnB,YAAM,KAAK,YAAY,MAAM,EAAE,EAAE,MAAM,MAAM,MAAS;AACtD,aAAO,sBAAsB,IAAI,WAAW,OAAO;AAAA,IACpD;AACA,UAAM,YACL,MAAM,oBACN,MAAM,aACN,YAAY,aACZ,KAAK,QAAQ,oBACb,2BAA2B,WAAW;AACvC,UAAM,UAAU,qBAAqB;AACrC,QAAI;AACJ,QAAI;AACJ,UAAM,iBAAiB,IAAI,QAAwB,CAAC,YAAY;AAC/D,sBAAgB;AAAA,IACjB,CAAC;AACD,UAAM,4BAA4B,IAAI,QAAwB,CAAC,YAAY;AAC1E,iCAA2B;AAAA,IAC5B,CAAC;AACD,UAAM,gBAAgB,IAAI,kBAAkB;AAAA,MAC3C,eAAe,MAAM,wBAAwB,MAAM;AAAA,MACnD,UAAU,MAAM,mBAAmB,MAAM;AAAA,MACzC,cAAc,MAAM,uBAAuB,MAAM;AAAA,MACjD,WAAW,MAAM;AAChB,sBAAc,IAAI;AAClB,YAAI,KAAK,WAAW,eAAgB,0BAAyB,IAAI;AAAA,MAClE;AAAA,IACD,CAAC;AACD,QAAI;AACJ,QAAI;AACJ,UAAM,UAAU,IAAI,QAAc,CAAC,SAAS,WAAW;AACtD,uBAAiB;AACjB,sBAAgB;AAAA,IACjB,CAAC;AACD,SAAK,QAAQ,MAAM,MAAM,MAAS;AAClC,UAAM,mBAAmB,MAAM,OAAO,QAAQ,CAAC,UAAU;AACxD,YAAM,eAAe,gBAAgB,OAAO,OAAO;AACnD,4BAAsB,OAAO,aAAa;AAC1C,UAAI,CAAC,QAAQ,mBAAmB,gBAAgB,KAAK,GAAG;AACvD,gBAAQ,kBAAkB,KAAK,IAAI;AACnC,gBAAQ;AAAA,UACP,OAAO;AAAA,UACP,QAAQ,EAAE,iBAAiB,QAAQ,gBAAgB;AAAA,UACnD,GAAI,eAAe,EAAE,OAAO,iBAAiB,OAAO,EAAE,IAAI,CAAC;AAAA,QAC5D,CAAC;AAAA,MACF,WAAW,cAAc;AACxB,gBAAQ,EAAE,OAAO,iBAAiB,OAAO,EAAE,CAAC;AAAA,MAC7C;AACA,YAAM,OAAOC,WAAU,KAAK;AAC5B,UAAI,SAAS,mBAAoB,SAAQ,EAAE,OAAO,WAAW,CAAC;AAC9D,UAAI,SAAS,sBAAsB,SAAS,qCAAqC;AAChF,gBAAQ,EAAE,OAAO,aAAa,CAAC;AAAA,MAChC;AACA,UAAI,SAAS,gBAAiB,gBAAe;AAAA,IAC9C,CAAC;AACD,UAAM,mBAAmB,MAAM,OAAO,QAAQ,aAAa;AAC3D,UAAM,SAAS,MAAM,UAClB,uBAAuB,OAAO,IAAI,IAClC,wBAAwB,OAAO,IAAI,EAAE;AACxC,QAAI,WAAW;AACf,QAAI;AACJ,UAAM,WAAW,KAAK,IAAI,IAAI;AAC9B,QAAI;AACH,YAAM,QAAQ,KAAK;AAAA,QAClBF;AAAA,UACC,MAAM,OAAO,OAAO,QAAQG,aAAY,QAAQ,CAAC;AAAA,UACjD;AAAA,UACA;AAAA,QACD;AAAA,QACA,0BAA0B,KAAK,CAAC,SAAS;AACxC,8BAAoB;AACpB,gBAAM,IAAI,MAAM,6BAA6B,KAAK,QAAQ,KAAK,OAAO,cAAc,CAAC;AAAA,QACtF,CAAC;AAAA,MACF,CAAC;AACD,iBAAW;AACX,YAAM,UAAU;AAChB,cAAQ,EAAE,OAAO,YAAY,QAAQ,EAAE,kBAAkB,KAAK,IAAI,EAAE,EAAE,CAAC;AACvE,YAAM,aAAa,MAAM,QAAQ,KAAK;AAAA,QACrC,sBAAsB,SAAS,QAAQA,aAAY,QAAQ,CAAC,EAAE,KAAK,CAAC,UAAU;AAAA,UAC7E;AAAA,QACD,EAAE;AAAA,QACF,eAAe,KAAK,CAAC,UAAU,EAAE,MAAM,SAAkB,KAAK,EAAE;AAAA,MACjE,CAAC;AACD,UAAI,WAAW,SAAS,WAAW;AAClC,cAAM,CAAC,EAAE,OAAO,IAAI,MAAM,QAAQ,IAAI;AAAA,UACrC,MAAM,OAAO,MAAM,EAAE,MAAM,MAAM,MAAS;AAAA,UAC1CC,eAAc,SAAS,KAAK,QAAQ,gBAAgB,cAAc;AAAA,QACnE,CAAC;AACD,cAAM,UAAU,aAAa,QAAQ,UAAU,QAAQ,SAAS,wBAAwB;AACxF,cAAM,OACL,WAAW,SAAS,UACjB,WAAW,OACV,EAAE,QAAQ,gBAAgB,OAAO,UAAU;AAChD,cAAM,gBAAgB,WAAW,SAAS,aAAa,OAAO;AAC9D,cAAM,cAAiD,gBACpD,SACA;AAAA,UACA,SAAS;AAAA,UACT,QAAQ,KAAK;AAAA,UACb,OAAO,KAAK;AAAA,UACZ,YAAY,QAAQ,QAAQ,WAAW,MAAM,QAAQ,IAAI;AAAA,UACzD,cAAc;AAAA,YACb,WAAW;AAAA,YACX,QAAQ;AAAA,YACR,YAAY;AAAA,UACb;AAAA,QACD;AACF,YAAI,iBAAiB,CAAC,SAAS;AAC9B,cAAI,CAAC,QAAS,OAAM,KAAK,YAAY,MAAM,EAAE;AAC7C,kBAAQ;AAAA,YACP,OAAO,gBAAgB,gBAAgB;AAAA,YACvC,cAAc;AAAA,YACd,QAAQ,EAAE,WAAW,KAAK,IAAI,EAAE;AAAA,YAChC,OAAO,iBAAiB,OAAO;AAAA,UAChC,CAAC;AACD,gBAAMC,oBAAmB,cACtB,wBAAwB,YAAY,UAAU,IAC9C,QAAQ;AACX,iBAAO;AAAA,YACN,QAAQ,QAAQ,QAAQA;AAAA,YACxB,UAAU,gBAAgB,MAAM;AAAA,YAChC,SAAS;AAAA,YACT,WAAW,QAAQ,aAAa,MAAM;AAAA,YACtC,OAAO,gBACJ,6BACA,GAAG,6BAA6B,KAAK,QAAQ,KAAK,OAAO,cAAc,CAAC;AAAA,YAC3E,QAAQ,UAAU,aAAa,KAAK;AAAA,YACpC;AAAA,YACA;AAAA,UACD;AAAA,QACD;AAEA,gBAAQ;AAAA,UACP,OAAO;AAAA,UACP,cAAc;AAAA,UACd,OAAO,iBAAiB,OAAO;AAAA,QAChC,CAAC;AACD,cAAM,wBAAwB,KAAK,IAAI;AACvC,cAAM,UAAU,MAAM,wBAAwB;AAAA,UAC7C,QAAQ,MAAM;AAAA,UACd;AAAA,UACA,eAAe,QAAQ;AAAA,UACvB,YAAY,aAAa;AAAA,UACzB,mBAAmB,KAAK;AAAA,UACxB,cAAc,MAAM;AAAA,UACpB;AAAA,UACA,eAAe;AAAA,UACf,uBAAuB,KAAK,QAAQ;AAAA,UACpC,cAAc,KAAK,QAAQ,gBAAgB;AAAA,UAC3C,eAAe;AACd,mCAAuB,OAAO;AAC9B,oBAAQ,SAAS;AACjB,oBAAQ,UAAU;AAClB,oBAAQ,aAAa;AACrB,oBAAQ,QAAQ;AAAA,UACjB;AAAA,UACA,YAAY,MAAM;AAAA,UAClB,SAAS,MAAM,KAAK,YAAY,MAAM,EAAE;AAAA,QACzC,CAAC;AACD,YAAI,aAAa;AAChB,sBAAY,eAAe;AAAA,YAC1B,WAAW;AAAA,YACX,QAAQ,QAAQ;AAAA,YAChB,YAAY,KAAK,IAAI,IAAI;AAAA,YACzB,OAAO,QAAQ;AAAA,UAChB;AAAA,QACD;AACA,gBAAQ;AAAA,UACP,OAAO;AAAA,UACP,cAAc;AAAA,UACd,QAAQ,EAAE,WAAW,KAAK,IAAI,EAAE;AAAA,UAChC,OAAO,iBAAiB,OAAO;AAAA,QAChC,CAAC;AACD,cAAM,mBAAmB,cAAc,wBAAwB,YAAY,UAAU,IAAI;AACzF,eAAO;AAAA,UACN,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,mBAAmB,QAAQ;AAAA,UACnE,UAAU;AAAA,UACV,WAAW,QAAQ,aAAa,QAAQ,aAAa,MAAM;AAAA,UAC3D,OAAO;AAAA,YACN,6BAA6B,KAAK,QAAQ,KAAK,OAAO,cAAc;AAAA,YACpE,QAAQ;AAAA,UACT,EACE,OAAO,OAAO,EACd,KAAK,IAAI;AAAA,UACX,QAAQ,UAAU,aAAa,KAAK;AAAA,UACpC;AAAA,UACA;AAAA,QACD;AAAA,MACD;AACA,YAAM,SAAS,aAAa,QAAQ,UAAU,QAAQ,SAAS,wBAAwB;AACvF,YAAM,SAAS,QAAQ,eAAe,WAAW,CAAC,OAAO,KAAK,KAAK;AACnE,cAAQ;AAAA,QACP,OAAO,SAAS,WAAW;AAAA,QAC3B,cAAc,SAAS,YAAY;AAAA,QACnC,QAAQ,EAAE,WAAW,KAAK,IAAI,EAAE;AAAA,QAChC,UAAU,QAAQ,YAAY,UAAU;AAAA,QACxC,OAAO,QAAQ,SAAS,UAAU;AAAA,QAClC,OAAO,iBAAiB,OAAO;AAAA,MAChC,CAAC;AACD,aAAO;AAAA,QACN,QAAQ,OAAO;AAAA,QACf,UAAU,SAAS,IAAI;AAAA,QACvB,WAAW,OAAO,aAAa,MAAM;AAAA,QACrC,OAAO,SAAS,QAAQ,SAAS,8CAA8C;AAAA,QAC/E,QAAQ,UAAU,aAAa,KAAK;AAAA,QACpC;AAAA,MACD;AAAA,IACD,SAAS,OAAO;AACf,YAAM,KAAK,YAAY,MAAM,EAAE,EAAE,MAAM,MAAM,MAAS;AACtD,YAAM,WAAW,eAAe,KAAK;AACrC,YAAM,OACL,sBACC,WAAY,EAAE,QAAQ,gBAAgB,OAAO,UAAU,IAAc;AACvE,YAAM,UAAU,aAAa,QAAQ,UAAU,QAAQ,SAAS,wBAAwB;AACxF,YAAM,cACL,QAAQ,CAAC,OAAO,UACb;AAAA,QACA,SAAS;AAAA,QACT,QAAQ,KAAK;AAAA,QACb,OAAO,KAAK;AAAA,QACZ,YAAY,QAAQ,QAAQ,WAAW,MAAM,QAAQ,IAAI;AAAA,QACzD,cAAc;AAAA,UACb,WAAW;AAAA,UACX,QAAQ;AAAA,UACR,YAAY;AAAA,QACb;AAAA,MACD,IACC;AACJ,cAAQ;AAAA,QACP,OAAO,OAAO,UAAU,gBAAgB;AAAA,QACxC,cAAc,WAAW,YAAY;AAAA,QACrC,QAAQ,EAAE,WAAW,KAAK,IAAI,EAAE;AAAA,QAChC,OAAO,iBAAiB,OAAO;AAAA,MAChC,CAAC;AACD,aAAO;AAAA,QACN,QACC,QAAQ,SAAS,cAAc,wBAAwB,YAAY,UAAU,IAAI;AAAA,QAClF,UAAU,OAAO,UAAU,MAAM,OAAO,MAAM;AAAA,QAC9C,SAAS,OAAO;AAAA,QAChB,OAAO,OACJ,6BAA6B,KAAK,QAAQ,KAAK,OAAO,cAAc,IACpEJ,cAAa,KAAK;AAAA,QACrB,QAAQ,UAAU,aAAa,KAAK;AAAA,QACpC;AAAA,QACA;AAAA,MACD;AAAA,IACD,UAAE;AACD,oBAAc,QAAQ;AACtB,uBAAiB;AACjB,uBAAiB;AAAA,IAClB;AAAA,EACD;AAAA,EAEA,MAAM,eAAe,OAAqB,SAAgD;AACzF,UAAM,QAAQ,KAAK,SAAS,IAAI,MAAM,EAAE;AACxC,QAAI,CAAC,MAAO,QAAO;AACnB,UAAM,MAAM,OAAO,MAAM,kBAAkB,OAAO,CAAC;AACnD,WAAO;AAAA,EACR;AAAA,EAEA,MAAM,QAAQ,OAAoC;AACjD,UAAM,KAAK,YAAY,MAAM,EAAE;AAAA,EAChC;AAAA,EAEA,MAAM,WAA0B;AAC/B,UAAM,UAAU,MAAM,QAAQ;AAAA,MAC7B,CAAC,GAAG,KAAK,SAAS,KAAK,CAAC,EAAE,IAAI,CAAC,YAAY,KAAK,YAAY,OAAO,CAAC;AAAA,IACrE;AACA,UAAM,WAAW,QAAQ;AAAA,MAAQ,CAAC,WACjC,OAAO,WAAW,aAAa,CAAC,OAAO,MAAM,IAAI,CAAC;AAAA,IACnD;AACA,QAAI,SAAS,SAAS,GAAG;AACxB,YAAM,IAAI,eAAe,UAAU,qBAAqB,SAAS,MAAM,kBAAkB;AAAA,IAC1F;AAAA,EACD;AAAA,EAEA,MAAc,YACb,OACA,aACA,QAC0B;AAC1B,UAAM,WAAW,KAAK,SAAS,IAAI,MAAM,EAAE;AAC3C,QAAI,SAAU,QAAO;AACrB,UAAM,gBAAgB,YAAY,aAAa,KAAK,EAAE,SAAS;AAC/D,UAAM,YAAY,gBACf,OAAO,KAAK,QAAQ,0BAA0B;AAAA,MAC9C,MAAM;AAAA,MACN,MAAM,QAAQ,MAAM,kBAAkB;AAAA,IACvC,IACC,EAAE,yBAAyB,CAAC,EAAE;AACjC,QAAI,OAAO,QAAS,OAAMF,YAAW,4BAA4B;AACjE,UAAM,kBAAkB,gBACrB,MAAM,gBAAgB,YAAY,MAAM,YAAY,YAAY,IAChE;AACH,QAAI,OAAO,SAAS;AACnB,wBAAkB,eAAe;AACjC,YAAMA,YAAW,4BAA4B;AAAA,IAC9C;AACA,QAAI;AACJ,QAAI;AACH,YAAM,cAAc,KAAK,QAAQ,cAC9B,MAAM,KAAK,QAAQ,YAAY;AAAA,QAC/B,MAAM;AAAA,QACN,MAAM,yBAAyB,MAAM,kBAAkB;AAAA,MACxD,IACC;AACH,UAAI,OAAO,QAAS,OAAMA,YAAW,4BAA4B;AACjE,eAAS,KAAK,aAAa;AAAA,QAC1B,KAAK,MAAM;AAAA,QACX,gBAAgB,KAAK,QAAQ,gBAAgB;AAAA,QAC7C,oBAAoB,KAAK,QAAQ,gBAAgB;AAAA,QACjD,MAAM;AAAA,UACL;AAAA,UACA;AAAA,UACA,KAAK,QAAQ,iBAAiB;AAAA,UAC9B,iBAAiB;AAAA,UACjB,UAAU;AAAA,UACV,gBAAgB;AAAA,QACjB;AAAA,QACA,KAAK;AAAA,UACJ,mBAAmB;AAAA,aACjB,OAAO,SAAS,QAAQ,IAAI,qBAAqB,KAAK,EAAE,KAAK,KAAK;AAAA,UACpE;AAAA,UACA,0BAA0B;AAAA,UAC1B,GAAI,cAAc,sBAAsB,WAAW,IAAI,CAAC;AAAA,QACzD;AAAA,MACD,CAAC;AACD,YAAM,WAAW,MAAM,OAAO,MAAM,MAAM;AAC1C,UAAI,OAAO,QAAS,OAAMA,YAAW,4BAA4B;AACjE,YAAM,SAAyB;AAAA,QAC9B;AAAA,QACA,OAAO,SAAS;AAAA,QAChB,SAAS;AAAA,QACT;AAAA,MACD;AACA,WAAK,SAAS,IAAI,MAAM,IAAI,MAAM;AAClC,aAAO;AAAA,IACR,SAAS,OAAO;AACf,YAAM,QAAQ,KAAK,EAAE,MAAM,MAAM,MAAS;AAC1C,WAAK,QAAQ,aAAa,OAAO,MAAM,EAAE;AACzC,wBAAkB,eAAe;AACjC,YAAM;AAAA,IACP;AAAA,EACD;AAAA,EAEA,MAAc,YAAY,SAAgC;AACzD,UAAM,QAAQ,KAAK,SAAS,IAAI,OAAO;AACvC,QAAI,CAAC,MAAO;AACZ,SAAK,SAAS,OAAO,OAAO;AAC5B,SAAK,QAAQ,aAAa,OAAO,OAAO;AACxC,QAAI;AACH,YAAM,MAAM,OAAO,MAAM,EAAE,MAAM,MAAM,MAAS;AAChD,YAAM,MAAM,OAAO,KAAK;AAAA,IACzB,UAAE;AACD,wBAAkB,MAAM,eAAe;AAAA,IACxC;AAAA,EACD;AACD;AAEO,SAAS,iBAAiB,OAAmD;AACnF,QAAM,YAAY,uBAAuB,KAAK;AAC9C,MAAI,WAAW,KAAK,CAAC,SAAS,CAAC,oBAAoB,IAAI,IAAI,CAAC,GAAG;AAC9D,UAAM,IAAI,MAAM,iEAAiE;AAAA,EAClF;AACA,SAAO;AACR;AAEO,SAAS,aACf,OACA,aACA,eACA,gBACA,0BAA6C,CAAC,GAC9C,aAAa,OACF;AACX,QAAM,OAAO,CAAC,UAAU,OAAO,gBAAgB,iBAAiB;AAChE,MAAI,WAAY,MAAK,KAAK,MAAM,oBAAoB,CAAC;AACrD,QAAM,QACL,YAAY,UACX,cAAc,QAAQ,GAAG,cAAc,MAAM,QAAQ,IAAI,cAAc,MAAM,EAAE,KAAK;AACtF,MAAI,MAAO,MAAK,KAAK,WAAW,KAAK;AACrC,QAAM,uBAAuB,YAAY,QACtC,+CAA+C,KAAK,YAAY,MAAM,KAAK,CAAC,IAC5E;AACH,QAAM,WACL,MAAM,iBACN,YAAY,kBACX,uBAAuB,SAAY,cAAc;AACnD,MAAI,SAAU,MAAK,KAAK,cAAc,QAAQ;AAC9C,MAAI,MAAM,QAAQ,MAAM,kBAAkB,MAAO,MAAK,KAAK,WAAW;AAAA,MACjE,MAAK,KAAK,cAAc;AAC7B,MAAI,MAAM,QAAQ,YAAY,KAAK,GAAG;AACrC,UAAM,QAAQ,CAAC,GAAG,YAAY,OAAO,GAAI,aAAa,wBAAwB,CAAC,CAAE;AACjF,QAAI,MAAM,SAAS,EAAG,MAAK,KAAK,WAAW,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC;AAAA,QACnE,MAAK,KAAK,YAAY;AAAA,EAC5B;AACA,aAAW,cAAc,yBAAyB;AACjD,SAAK,KAAK,0BAA0B,UAAU;AAAA,EAC/C;AACA,MAAI,eAAgB,MAAK,KAAK,0BAA0B,cAAc;AACtE,SAAO;AACR;AAEA,SAASG,WAAU,OAAoC;AACtD,MAAI,CAAC,SAAS,OAAO,UAAU,YAAY,MAAM,QAAQ,KAAK,EAAG,QAAO;AACxE,QAAM,OAAQ,MAAkC;AAChD,SAAO,OAAO,SAAS,WAAW,OAAO;AAC1C;AAEA,SAAS,gBAAgB,OAAyB;AACjD,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,EAAE,SAASA,WAAU,KAAK,KAAK,EAAE;AAClC;AAEA,eAAe,gBACd,WACA,QAC6C;AAC7C,QAAM,MAAM,MAAS,YAAS,QAAa,UAAQ,UAAO,GAAG,kBAAkB,CAAC;AAChF,QAAM,WAAW,UAAU,QAAQ,cAAc,GAAG;AACpD,QAAM,WAAgB,UAAK,KAAK,UAAU,QAAQ,KAAK;AACvD,QAAS,YAAS,UAAU,UAAU,QAAQ;AAAA,IAC7C,UAAU;AAAA,IACV,MAAM;AAAA,EACP,CAAC;AACD,SAAO,EAAE,KAAK,SAAS;AACxB;AAEA,SAAS,kBAAkB,OAA4D;AACtF,MAAI,CAAC,MAAO;AACZ,MAAI;AACH,IAAG,UAAO,MAAM,KAAK,EAAE,WAAW,MAAM,OAAO,KAAK,CAAC;AAAA,EACtD,QAAQ;AAAA,EAER;AACD;AAEA,SAAS,aACR,MACA,QACA,WACgB;AAChB,SAAO,IAAI,QAAc,CAAC,SAAS,WAAW;AAC7C,QAAI,UAAU;AACd,UAAM,SAAS,CAAC,UAAkB;AACjC,UAAI,QAAS;AACb,gBAAU;AACV,mBAAa,KAAK;AAClB,WAAK,IAAI,SAAS,OAAO;AACzB,WAAK,IAAI,SAAS,OAAO;AACzB,cAAQ,oBAAoB,SAAS,OAAO;AAC5C,UAAI,MAAO,QAAO,KAAK;AAAA,UAClB,SAAQ;AAAA,IACd;AACA,UAAM,UAAU,MAAM,OAAO;AAC7B,UAAM,UAAU,CAAC,UAAiB,OAAO,KAAK;AAC9C,UAAM,UAAU,MAAM,OAAOH,YAAW,4BAA4B,CAAC;AACrE,UAAM,QAAQ;AAAA,MACb,MAAM,OAAO,IAAI,MAAM,sCAAsC,SAAS,IAAI,CAAC;AAAA,MAC3E;AAAA,IACD;AACA,UAAM,MAAM;AACZ,SAAK,KAAK,SAAS,OAAO;AAC1B,SAAK,KAAK,SAAS,OAAO;AAC1B,YAAQ,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAK,CAAC;AACzD,QAAI,QAAQ,QAAS,SAAQ;AAAA,EAC9B,CAAC;AACF;AAEA,eAAeC,eACd,SACA,QACA,SACa;AACb,MAAI,CAAC,OAAQ,QAAO;AACpB,MAAI,OAAO,QAAS,OAAMD,YAAW,OAAO;AAC5C,MAAI;AACJ,MAAI;AACH,WAAO,MAAM,QAAQ,KAAK;AAAA,MACzB;AAAA,MACA,IAAI,QAAW,CAAC,UAAU,WAAW;AACpC,kBAAU,MAAM,OAAOA,YAAW,OAAO,CAAC;AAC1C,eAAO,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAK,CAAC;AACxD,YAAI,OAAO,QAAS,SAAQ;AAAA,MAC7B,CAAC;AAAA,IACF,CAAC;AAAA,EACF,UAAE;AACD,QAAI,QAAS,QAAO,oBAAoB,SAAS,OAAO;AAAA,EACzD;AACD;AAEA,SAAS,sBACR,SACA,QACA,WAC6C;AAC7C,MAAI,OAAO,QAAS,QAAO,QAAQ,QAAQ,SAAS;AACpD,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACvC,QAAI,WAAW;AACf,UAAM,SAAS,CAAC,OAA0C,UAAoB;AAC7E,UAAI,SAAU;AACd,iBAAW;AACX,mBAAa,KAAK;AAClB,aAAO,oBAAoB,SAAS,OAAO;AAC3C,UAAI,MAAO,QAAO,KAAK;AAAA,UAClB,SAAQ,KAAK;AAAA,IACnB;AACA,UAAM,UAAU,MAAM,OAAO,SAAS;AACtC,UAAM,QAAQ,WAAW,MAAM,OAAO,SAAS,GAAG,SAAS;AAC3D,UAAM,MAAM;AACZ,WAAO,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAK,CAAC;AACxD,QAAI,OAAO,QAAS,SAAQ;AAC5B,YAAQ;AAAA,MACP,MAAM,OAAO,SAAS;AAAA,MACtB,CAAC,UAAU,OAAO,WAAW,KAAK;AAAA,IACnC;AAAA,EACD,CAAC;AACF;AAEA,eAAeK,eAAc,SAAwB,WAAqC;AACzF,MAAI;AACJ,MAAI;AACH,WAAO,MAAM,QAAQ,KAAK;AAAA,MACzB,QAAQ;AAAA,QACP,MAAM;AAAA,QACN,MAAM;AAAA,MACP;AAAA,MACA,IAAI,QAAiB,CAAC,YAAY;AACjC,gBAAQ,WAAW,MAAM,QAAQ,KAAK,GAAG,SAAS;AAAA,MACnD,CAAC;AAAA,IACF,CAAC;AAAA,EACF,UAAE;AACD,QAAI,MAAO,cAAa,KAAK;AAAA,EAC9B;AACD;AAEA,SAASD,aAAY,UAA0B;AAC9C,SAAO,KAAK,IAAI,GAAG,WAAW,KAAK,IAAI,CAAC;AACzC;AAEA,SAAS,gBAAgB,SAAwB;AAChD,QAAM,QAAQ,IAAI,MAAM,OAAO;AAC/B,QAAM,OAAO;AACb,SAAO;AACR;AAEA,SAAS,eAAe,OAAyB;AAChD,SAAO,iBAAiB,SAAS,MAAM,SAAS;AACjD;AAEA,SAASJ,YAAW,SAAwB;AAC3C,QAAM,QAAQ,IAAI,MAAM,OAAO;AAC/B,QAAM,OAAO;AACb,SAAO;AACR;AAEA,SAAS,aAAa,QAAgB,OAAqB;AAC1D,SAAO,IAAI,MAAM,GAAG,MAAM,KAAK,MAAM,OAAO,EAAE;AAC/C;",
5
+ "mappings": "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",
6
6
  "names": ["boundedError", "abortError", "raceWithAbort", "boundedError", "eventType", "remainingMs", "settlesWithin", "checkpointOutput"]
7
7
  }
@@ -1,21 +1,21 @@
1
1
  // @generated by scripts/build-runtime.mjs; do not edit.
2
2
  // @ts-nocheck -- generated JavaScript uses a .ts extension for Pi's Jiti loader.
3
- import {
4
- buildStatefulTurnPrompt,
5
- resolveStatefulTurnTimeout
6
- } from "./chunk-SCZ33MYW.ts";
7
3
  import {
8
4
  runSingleAgent
9
5
  } from "./chunk-DQMN4OYM.ts";
10
6
  import "./chunk-IGAMVWFN.ts";
11
7
  import "./chunk-47SK2QYC.ts";
8
+ import {
9
+ buildStatefulTurnPrompt,
10
+ resolveStatefulTurnTimeout
11
+ } from "./chunk-SCZ33MYW.ts";
12
12
  import "./chunk-HKC4ES4B.ts";
13
13
  import "./chunk-DSOOH73Y.ts";
14
14
  import {
15
15
  CHILD_PEER_TOOL_NAMES,
16
16
  childPeerBridgePath,
17
17
  peerBridgeEnvironment
18
- } from "./chunk-EWWXFU7N.ts";
18
+ } from "./chunk-RY2AEGMZ.ts";
19
19
  import {
20
20
  resolvePiPromptResources
21
21
  } from "./chunk-G6VZTCFH.ts";
@@ -25,6 +25,7 @@ import {
25
25
  } from "./chunk-AEUYS7JC.ts";
26
26
  import "./chunk-RTCVYIZA.ts";
27
27
  import "./chunk-ONDTY4EL.ts";
28
+ import "./chunk-5DGRMKNV.ts";
28
29
  import {
29
30
  discoverAgents
30
31
  } from "./chunk-PSK43Y6A.ts";
@@ -155,4 +156,4 @@ export {
155
156
  SubprocessTransport,
156
157
  resolveStatefulSubprocessThinkingLevel
157
158
  };
158
- //# sourceMappingURL=subprocess-transport-C2XVR25R.ts.map
159
+ //# sourceMappingURL=subprocess-transport-NSHOGDC4.ts.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/subprocess-transport.ts"],
4
4
  "sourcesContent": ["import { discoverAgents } from \"./agents/discovery.js\";\nimport type { AgentConfig, SubagentSettings, SubagentThinkingLevel } from \"./agents/types.js\";\nimport {\n\tCHILD_PEER_TOOL_NAMES,\n\tchildPeerBridgePath,\n\ttype PeerTransportRuntime,\n\tpeerBridgeEnvironment,\n} from \"./peer-transport.js\";\nimport { resolvePiPromptResources } from \"./prompt-resources.js\";\nimport type { ManagedAgent, TurnOutcome } from \"./registry.js\";\nimport { getResultFinalOutput, runSingleAgent, type SubagentDetails } from \"./runner.js\";\nimport { readSubagentSettings, resolveSubagentThinkingLevel } from \"./settings.js\";\nimport { buildStatefulTurnPrompt, resolveStatefulTurnTimeout } from \"./stateful-prompt.js\";\nimport type { SubagentTransport } from \"./transport.js\";\nimport type { TransportProgressCallback, TransportTelemetry } from \"./transport-types.js\";\n\nexport function resolveStatefulSubprocessThinkingLevel(\n\tagents: readonly Pick<AgentConfig, \"name\" | \"thinkingLevel\">[],\n\trecord: Pick<ManagedAgent, \"agent\" | \"thinkingLevel\">,\n): SubagentThinkingLevel | undefined {\n\treturn resolveSubagentThinkingLevel(agents, record.agent, record.thinkingLevel);\n}\n\nexport interface SubprocessTransportOptions {\n\tgetSettings?: () => SubagentSettings | undefined;\n\tpeerRuntime?: PeerTransportRuntime;\n}\n\nexport class SubprocessTransport implements SubagentTransport {\n\treadonly kind = \"subprocess\" as const;\n\n\tconstructor(private readonly options: SubprocessTransportOptions = {}) {}\n\n\tasync runTurn(\n\t\trecord: ManagedAgent,\n\t\ttask: string,\n\t\tsignal: AbortSignal,\n\t\tonProgress?: TransportProgressCallback,\n\t): Promise<TurnOutcome> {\n\t\tconst startedAt = Date.now();\n\t\tconst starting: TransportTelemetry = {\n\t\t\ttransport: \"subprocess\",\n\t\t\tphase: \"starting\",\n\t\t\tupdatedAt: startedAt,\n\t\t\ttiming: { startedAt, transportStartedAt: startedAt },\n\t\t};\n\t\tonProgress?.(starting);\n\t\tconst settings = this.options.getSettings ? this.options.getSettings() : readSubagentSettings();\n\t\tconst discovery = discoverAgents(record.cwd, record.agentScope ?? \"user\", settings);\n\t\tconst agent = discovery.agents.find((candidate) => candidate.name === record.agent);\n\t\tconst boundedTask = buildStatefulTurnPrompt(record, task);\n\t\tconst projectTrust =\n\t\t\trecord.target?.trust.projectTrusted ??\n\t\t\t(record.agentScope === \"project\" || record.agentScope === \"both\");\n\t\tconst promptResources = agent?.systemPrompt.trim()\n\t\t\t? await resolvePiPromptResources(record.cwd, projectTrust)\n\t\t\t: undefined;\n\t\tconst makeDetails = (results: SubagentDetails[\"results\"]): SubagentDetails => ({\n\t\t\tmode: \"single\",\n\t\t\tagentScope: record.agentScope ?? \"user\",\n\t\t\tprojectAgentsDir: discovery.projectAgentsDir,\n\t\t\tresults,\n\t\t});\n\t\tconst credentials = this.options.peerRuntime\n\t\t\t? await this.options.peerRuntime.issueCredentials(\n\t\t\t\t\trecord.id,\n\t\t\t\t\trecord.currentTurnGeneration ?? record.turnGeneration ?? 1,\n\t\t\t\t)\n\t\t\t: undefined;\n\t\tlet single: Awaited<ReturnType<typeof runSingleAgent>>;\n\t\ttry {\n\t\t\tsingle = await runSingleAgent(\n\t\t\t\trecord.cwd,\n\t\t\t\tdiscovery.agents,\n\t\t\t\trecord.agent,\n\t\t\t\tboundedTask.text,\n\t\t\t\tundefined,\n\t\t\t\tundefined,\n\t\t\t\tsignal,\n\t\t\t\tresolveStatefulSubprocessThinkingLevel(discovery.agents, record),\n\t\t\t\trecord.currentTimeoutMs ?? record.timeoutMs ?? resolveStatefulTurnTimeout(agent),\n\t\t\t\tundefined,\n\t\t\t\tmakeDetails,\n\t\t\t\tundefined,\n\t\t\t\t{\n\t\t\t\t\tprojectTrust,\n\t\t\t\t\t...(record.executionPlan ? { tools: record.executionPlan.effectiveTools } : {}),\n\t\t\t\t\tappendSystemPromptPaths: promptResources?.appendSystemPromptPaths,\n\t\t\t\t\textensionPaths: credentials ? [childPeerBridgePath()] : undefined,\n\t\t\t\t\tadditionalTools: credentials ? [...CHILD_PEER_TOOL_NAMES] : undefined,\n\t\t\t\t\tenv: credentials ? peerBridgeEnvironment(credentials) : undefined,\n\t\t\t\t\ttimeoutResultFormat: record.resultFormat,\n\t\t\t\t\tturnLimits: {\n\t\t\t\t\t\tidleTimeoutMs: record.currentIdleTimeoutMs ?? record.idleTimeoutMs,\n\t\t\t\t\t\tmaxTurns: record.currentMaxTurns ?? record.maxTurns,\n\t\t\t\t\t\tmaxToolCalls: record.currentMaxToolCalls ?? record.maxToolCalls,\n\t\t\t\t\t},\n\t\t\t\t\tresultFormat: record.resultFormat,\n\t\t\t\t\tcontract: record.contract,\n\t\t\t\t\texecutionPlan: record.executionPlan,\n\t\t\t\t\tdisplayTask: task,\n\t\t\t\t},\n\t\t\t);\n\t\t} finally {\n\t\t\tthis.options.peerRuntime?.revoke(record.id);\n\t\t}\n\t\tconst settledAt = Date.now();\n\t\tconst telemetry: TransportTelemetry = {\n\t\t\t...starting,\n\t\t\tphase: single.aborted ? \"interrupted\" : single.exitCode === 0 ? \"settled\" : \"failed\",\n\t\t\tfailurePhase: single.exitCode === 0 ? undefined : \"running\",\n\t\t\tupdatedAt: settledAt,\n\t\t\ttiming: {\n\t\t\t\t...starting.timing,\n\t\t\t\tpromptAcceptedAt: single.processStarted ? startedAt : undefined,\n\t\t\t\tfirstActivityAt: single.messages.length > 0 ? settledAt : undefined,\n\t\t\t\tsettledAt,\n\t\t\t},\n\t\t\tprovider: single.actualProvider,\n\t\t\tmodel: single.actualModel ?? single.model,\n\t\t\tthinkingLevel: single.thinkingLevel,\n\t\t\tusage: {\n\t\t\t\tinput: single.usage.input,\n\t\t\t\toutput: single.usage.output,\n\t\t\t\tcacheRead: single.usage.cacheRead,\n\t\t\t\tcacheWrite: single.usage.cacheWrite,\n\t\t\t\ttotalTokens: single.usage.totalTokens ?? 0,\n\t\t\t\tcost: single.usage.cost,\n\t\t\t\tturns: single.usage.turns,\n\t\t\t},\n\t\t};\n\t\tonProgress?.(telemetry);\n\t\treturn {\n\t\t\toutput: getResultFinalOutput(single),\n\t\t\texitCode: single.exitCode,\n\t\t\taborted: single.aborted,\n\t\t\ttruncated: single.truncated || boundedTask.truncated,\n\t\t\terror: single.errorMessage || single.stderr || undefined,\n\t\t\tpolicy: single.policy,\n\t\t\ttermination: single.termination,\n\t\t\ttelemetry,\n\t\t};\n\t}\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
package/dist/index.ts CHANGED
@@ -1,21 +1,26 @@
1
1
  // @generated by scripts/build-runtime.mjs; do not edit.
2
2
  // @ts-nocheck -- generated JavaScript uses a .ts extension for Pi's Jiti loader.
3
+ import {
4
+ discoverAgentCatalog,
5
+ formatAgentCatalog,
6
+ formatUsageStats,
7
+ registerSubagentConsult
8
+ } from "./chunks/chunk-YBUWBRF7.ts";
3
9
  import {
4
10
  registerSubagentInspect
5
- } from "./chunks/chunk-F4L2UVSK.ts";
11
+ } from "./chunks/chunk-ZHTNCZIA.ts";
6
12
  import {
7
13
  SubagentParams,
8
14
  hasUsableAggregator
9
15
  } from "./chunks/chunk-NIF42QMF.ts";
10
16
  import {
11
- registerStatefulSubagents
12
- } from "./chunks/chunk-2OUVSORM.ts";
17
+ cachedModuleLoader,
18
+ throwIfAborted
19
+ } from "./chunks/chunk-HOP5FXDT.ts";
13
20
  import {
14
- discoverAgentCatalog,
15
- formatAgentCatalog,
16
- formatUsageStats,
17
- registerSubagentConsult
18
- } from "./chunks/chunk-RHRQMT7Q.ts";
21
+ registerStatefulSubagents
22
+ } from "./chunks/chunk-CBP76ARQ.ts";
23
+ import "./chunks/chunk-S2IWVK3J.ts";
19
24
  import "./chunks/chunk-P7OH4XMF.ts";
20
25
  import "./chunks/chunk-N7BLVXKK.ts";
21
26
  import {
@@ -25,10 +30,6 @@ import {
25
30
  import "./chunks/chunk-RTCVYIZA.ts";
26
31
  import "./chunks/chunk-ONDTY4EL.ts";
27
32
  import "./chunks/chunk-O4VO6JUJ.ts";
28
- import {
29
- cachedModuleLoader,
30
- throwIfAborted
31
- } from "./chunks/chunk-HOP5FXDT.ts";
32
33
  import "./chunks/chunk-PSK43Y6A.ts";
33
34
  import "./chunks/chunk-RSUXZD6S.ts";
34
35
  import {
@@ -57,7 +58,6 @@ import "./chunks/chunk-I2FAK44T.ts";
57
58
  import {
58
59
  MAX_BLOCKING_PARALLEL_CONCURRENCY
59
60
  } from "./chunks/chunk-H3FP6DLR.ts";
60
- import "./chunks/chunk-S2IWVK3J.ts";
61
61
 
62
62
  // src/subagents-extension.ts
63
63
  import {
@@ -85,7 +85,7 @@ function registerSubagentConfigLifecycle(pi) {
85
85
  }
86
86
  function registerSubagentConfigCommand(pi, runtime, owner = registerSubagentConfigLifecycle(pi), dependencies = {}) {
87
87
  const loadConfigUi = cachedModuleLoader(
88
- dependencies.loadConfigUi ?? (() => import("./chunks/config-ui-7IMI3I4B.ts"))
88
+ dependencies.loadConfigUi ?? (() => import("./chunks/config-ui-2YUCUEBM.ts"))
89
89
  );
90
90
  const loadConfigStatus = cachedModuleLoader(
91
91
  dependencies.loadConfigStatus ?? (() => import("./chunks/config-status-J4GPWP46.ts"))
@@ -832,7 +832,7 @@ ${expansionHint()}`;
832
832
  function subagents_extension_default(pi, dependencies = {}) {
833
833
  pi.registerMessageRenderer(SUBAGENT_COMPLETION_MESSAGE_TYPE, renderCompletionMessage);
834
834
  const loadBlockingExecution = cachedModuleLoader(
835
- dependencies.loadBlockingExecution ?? (() => import("./chunks/execution-DS2DEIQZ.ts"))
835
+ dependencies.loadBlockingExecution ?? (() => import("./chunks/execution-LA7HN5YF.ts"))
836
836
  );
837
837
  const configOwner = registerSubagentConfigLifecycle(pi);
838
838
  const settings = readSubagentSettings();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@narumitw/pi-subagents",
3
- "version": "2.0.4",
3
+ "version": "2.0.6",
4
4
  "description": "Pi extension for delegating work to specialized isolated subagents.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -52,7 +52,7 @@
52
52
  "typescript": "7.0.2"
53
53
  },
54
54
  "dependencies": {
55
- "@narumitw/pi-tui-kit": "^0.56.1",
55
+ "@narumitw/pi-tui-kit": "^0.57.0",
56
56
  "proper-lockfile": "^4.1.2"
57
57
  },
58
58
  "repository": {