@narumitw/pi-subagents 2.0.4 → 2.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/child-peer-bridge.ts +108 -0
- package/dist/chunks/child-peer-bridge.ts.map +7 -0
- package/dist/chunks/{chunk-EWWXFU7N.ts → chunk-5DGRMKNV.ts} +3 -27
- package/dist/chunks/{chunk-EWWXFU7N.ts.map → chunk-5DGRMKNV.ts.map} +3 -3
- package/dist/chunks/{chunk-2OUVSORM.ts → chunk-CBP76ARQ.ts} +6 -6
- package/dist/chunks/{chunk-UVFVHIOP.ts → chunk-H3BFJ7HJ.ts} +6 -4
- package/dist/chunks/{chunk-UVFVHIOP.ts.map → chunk-H3BFJ7HJ.ts.map} +1 -1
- package/dist/chunks/chunk-RY2AEGMZ.ts +34 -0
- package/dist/chunks/chunk-RY2AEGMZ.ts.map +7 -0
- package/dist/chunks/{chunk-RHRQMT7Q.ts → chunk-YBUWBRF7.ts} +2 -2
- package/dist/chunks/{chunk-F4L2UVSK.ts → chunk-ZHTNCZIA.ts} +2 -2
- package/dist/chunks/{config-ui-7IMI3I4B.ts → config-ui-2YUCUEBM.ts} +3 -3
- package/dist/chunks/{consult-NYXVDN5G.ts → consult-IV7UBNQQ.ts} +3 -3
- package/dist/chunks/{create-stateful-transport-F5OG2LEY.ts → create-stateful-transport-ZP3IXNV3.ts} +4 -4
- package/dist/chunks/{execution-DS2DEIQZ.ts → execution-LA7HN5YF.ts} +5 -5
- package/dist/chunks/{in-process-transport-TEYAWSEC.ts → in-process-transport-4RF3J6XK.ts} +4 -3
- package/dist/chunks/{inspect-UOQQ3KNL.ts → inspect-XV2QALMR.ts} +5 -5
- package/dist/chunks/{rpc-transport-ZNNBRUSY.ts → rpc-transport-NEHBHWX4.ts} +10 -8
- package/dist/chunks/{rpc-transport-ZNNBRUSY.ts.map → rpc-transport-NEHBHWX4.ts.map} +1 -1
- package/dist/chunks/{subprocess-transport-C2XVR25R.ts → subprocess-transport-NSHOGDC4.ts} +7 -6
- package/dist/chunks/{subprocess-transport-C2XVR25R.ts.map → subprocess-transport-NSHOGDC4.ts.map} +1 -1
- package/dist/index.ts +15 -15
- package/package.json +1 -1
- /package/dist/chunks/{chunk-2OUVSORM.ts.map → chunk-CBP76ARQ.ts.map} +0 -0
- /package/dist/chunks/{chunk-RHRQMT7Q.ts.map → chunk-YBUWBRF7.ts.map} +0 -0
- /package/dist/chunks/{chunk-F4L2UVSK.ts.map → chunk-ZHTNCZIA.ts.map} +0 -0
- /package/dist/chunks/{config-ui-7IMI3I4B.ts.map → config-ui-2YUCUEBM.ts.map} +0 -0
- /package/dist/chunks/{consult-NYXVDN5G.ts.map → consult-IV7UBNQQ.ts.map} +0 -0
- /package/dist/chunks/{create-stateful-transport-F5OG2LEY.ts.map → create-stateful-transport-ZP3IXNV3.ts.map} +0 -0
- /package/dist/chunks/{execution-DS2DEIQZ.ts.map → execution-LA7HN5YF.ts.map} +0 -0
- /package/dist/chunks/{in-process-transport-TEYAWSEC.ts.map → in-process-transport-4RF3J6XK.ts.map} +0 -0
- /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
|
-
|
|
145
|
-
|
|
146
|
-
createInProcessPeerExtension,
|
|
147
|
-
childPeerBridgePath,
|
|
148
|
-
peerBridgeEnvironment
|
|
123
|
+
createChildPeerExtension,
|
|
124
|
+
formatPeerMessage
|
|
149
125
|
};
|
|
150
|
-
//# sourceMappingURL=chunk-
|
|
126
|
+
//# sourceMappingURL=chunk-5DGRMKNV.ts.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
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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
|
|
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-
|
|
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-
|
|
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
|
-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
518
|
+
//# sourceMappingURL=consult-IV7UBNQQ.ts.map
|
package/dist/chunks/{create-stateful-transport-F5OG2LEY.ts → create-stateful-transport-ZP3IXNV3.ts}
RENAMED
|
@@ -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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
4034
|
+
//# sourceMappingURL=execution-LA7HN5YF.ts.map
|
|
@@ -9,12 +9,13 @@ import {
|
|
|
9
9
|
resolveChildModel,
|
|
10
10
|
seedChildSessionManager,
|
|
11
11
|
validateInProcessTools
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
159
|
+
//# sourceMappingURL=subprocess-transport-NSHOGDC4.ts.map
|
package/dist/chunks/{subprocess-transport-C2XVR25R.ts.map → subprocess-transport-NSHOGDC4.ts.map}
RENAMED
|
@@ -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": "
|
|
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-
|
|
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
|
-
|
|
12
|
-
|
|
17
|
+
cachedModuleLoader,
|
|
18
|
+
throwIfAborted
|
|
19
|
+
} from "./chunks/chunk-HOP5FXDT.ts";
|
|
13
20
|
import {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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-
|
|
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-
|
|
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
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/chunks/{in-process-transport-TEYAWSEC.ts.map → in-process-transport-4RF3J6XK.ts.map}
RENAMED
|
File without changes
|
|
File without changes
|