@gjczone/pi-swarm 0.1.2
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/LICENSE +21 -0
- package/README.md +124 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +99 -0
- package/dist/index.js.map +1 -0
- package/dist/shared/controller.d.ts +86 -0
- package/dist/shared/controller.d.ts.map +1 -0
- package/dist/shared/controller.js +662 -0
- package/dist/shared/controller.js.map +1 -0
- package/dist/shared/pi-invoke.d.ts +31 -0
- package/dist/shared/pi-invoke.d.ts.map +1 -0
- package/dist/shared/pi-invoke.js +54 -0
- package/dist/shared/pi-invoke.js.map +1 -0
- package/dist/shared/render.d.ts +44 -0
- package/dist/shared/render.d.ts.map +1 -0
- package/dist/shared/render.js +116 -0
- package/dist/shared/render.js.map +1 -0
- package/dist/shared/spawner.d.ts +26 -0
- package/dist/shared/spawner.d.ts.map +1 -0
- package/dist/shared/spawner.js +226 -0
- package/dist/shared/spawner.js.map +1 -0
- package/dist/shared/types.d.ts +182 -0
- package/dist/shared/types.d.ts.map +1 -0
- package/dist/shared/types.js +8 -0
- package/dist/shared/types.js.map +1 -0
- package/dist/state/persistence.d.ts +83 -0
- package/dist/state/persistence.d.ts.map +1 -0
- package/dist/state/persistence.js +215 -0
- package/dist/state/persistence.js.map +1 -0
- package/dist/state/recovery.d.ts +35 -0
- package/dist/state/recovery.d.ts.map +1 -0
- package/dist/state/recovery.js +149 -0
- package/dist/state/recovery.js.map +1 -0
- package/dist/swarm/command.d.ts +36 -0
- package/dist/swarm/command.d.ts.map +1 -0
- package/dist/swarm/command.js +113 -0
- package/dist/swarm/command.js.map +1 -0
- package/dist/swarm/mode.d.ts +58 -0
- package/dist/swarm/mode.d.ts.map +1 -0
- package/dist/swarm/mode.js +87 -0
- package/dist/swarm/mode.js.map +1 -0
- package/dist/swarm/tool.d.ts +11 -0
- package/dist/swarm/tool.d.ts.map +1 -0
- package/dist/swarm/tool.js +190 -0
- package/dist/swarm/tool.js.map +1 -0
- package/dist/team/command.d.ts +11 -0
- package/dist/team/command.d.ts.map +1 -0
- package/dist/team/command.js +32 -0
- package/dist/team/command.js.map +1 -0
- package/dist/team/mailbox.d.ts +61 -0
- package/dist/team/mailbox.d.ts.map +1 -0
- package/dist/team/mailbox.js +160 -0
- package/dist/team/mailbox.js.map +1 -0
- package/dist/team/supervisor.d.ts +77 -0
- package/dist/team/supervisor.d.ts.map +1 -0
- package/dist/team/supervisor.js +195 -0
- package/dist/team/supervisor.js.map +1 -0
- package/dist/team/task-graph.d.ts +61 -0
- package/dist/team/task-graph.d.ts.map +1 -0
- package/dist/team/task-graph.js +193 -0
- package/dist/team/task-graph.js.map +1 -0
- package/dist/team/tool.d.ts +11 -0
- package/dist/team/tool.d.ts.map +1 -0
- package/dist/team/tool.js +210 -0
- package/dist/team/tool.js.map +1 -0
- package/dist/tui/permission-prompt.d.ts +26 -0
- package/dist/tui/permission-prompt.d.ts.map +1 -0
- package/dist/tui/permission-prompt.js +94 -0
- package/dist/tui/permission-prompt.js.map +1 -0
- package/dist/tui/progress.d.ts +64 -0
- package/dist/tui/progress.d.ts.map +1 -0
- package/dist/tui/progress.js +260 -0
- package/dist/tui/progress.js.map +1 -0
- package/dist/tui/swarm-markers.d.ts +20 -0
- package/dist/tui/swarm-markers.d.ts.map +1 -0
- package/dist/tui/swarm-markers.js +61 -0
- package/dist/tui/swarm-markers.js.map +1 -0
- package/package.json +58 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/shared/controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* pi-invoke — resolve the pi CLI invocation command and arguments.
|
|
3
|
+
*
|
|
4
|
+
* Detects whether we are running inside a pi process (via process.argv)
|
|
5
|
+
* or as a standalone npm package, and returns the appropriate
|
|
6
|
+
* command + arguments to spawn a child pi instance.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Resolve the command and arguments needed to invoke pi as a child process.
|
|
10
|
+
* When running inside pi, reuses the current executable and script.
|
|
11
|
+
* When running standalone, falls back to the `pi` CLI command.
|
|
12
|
+
*/
|
|
13
|
+
export declare function getPiInvocation(args: string[]): {
|
|
14
|
+
command: string;
|
|
15
|
+
args: string[];
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Build the standard pi CLI arguments for a subagent in --print mode.
|
|
19
|
+
*
|
|
20
|
+
* --print mode produces JSON Lines on stdout where each line is a
|
|
21
|
+
* structured event (message_end, tool_result_end, etc.).
|
|
22
|
+
*/
|
|
23
|
+
export declare function buildSubagentArgs(opts: {
|
|
24
|
+
task: string;
|
|
25
|
+
model?: string;
|
|
26
|
+
tools?: string[];
|
|
27
|
+
maxTurns?: number;
|
|
28
|
+
cwd?: string;
|
|
29
|
+
systemPromptFile?: string;
|
|
30
|
+
}): string[];
|
|
31
|
+
//# sourceMappingURL=pi-invoke.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pi-invoke.d.ts","sourceRoot":"","sources":["../../src/shared/pi-invoke.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,CAkBA;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,MAAM,EAAE,CAqBX"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* pi-invoke — resolve the pi CLI invocation command and arguments.
|
|
3
|
+
*
|
|
4
|
+
* Detects whether we are running inside a pi process (via process.argv)
|
|
5
|
+
* or as a standalone npm package, and returns the appropriate
|
|
6
|
+
* command + arguments to spawn a child pi instance.
|
|
7
|
+
*/
|
|
8
|
+
import * as fs from "node:fs";
|
|
9
|
+
import * as path from "node:path";
|
|
10
|
+
/**
|
|
11
|
+
* Resolve the command and arguments needed to invoke pi as a child process.
|
|
12
|
+
* When running inside pi, reuses the current executable and script.
|
|
13
|
+
* When running standalone, falls back to the `pi` CLI command.
|
|
14
|
+
*/
|
|
15
|
+
export function getPiInvocation(args) {
|
|
16
|
+
const currentScript = process.argv[1];
|
|
17
|
+
// Bun virtual filesystem scripts cannot be reused directly.
|
|
18
|
+
const isBunVirtualScript = currentScript?.startsWith("/$bunfs/root/");
|
|
19
|
+
if (currentScript && !isBunVirtualScript && fs.existsSync(currentScript)) {
|
|
20
|
+
return { command: process.execPath, args: [currentScript, ...args] };
|
|
21
|
+
}
|
|
22
|
+
const execName = path.basename(process.execPath).toLowerCase();
|
|
23
|
+
const isGenericRuntime = /^(node|bun)(\.exe)?$/.test(execName);
|
|
24
|
+
if (!isGenericRuntime) {
|
|
25
|
+
// Running via a renamed binary (e.g., the pi binary itself).
|
|
26
|
+
return { command: process.execPath, args };
|
|
27
|
+
}
|
|
28
|
+
// Generic Node/Bun runtime — rely on PATH to find `pi`.
|
|
29
|
+
return { command: "pi", args };
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Build the standard pi CLI arguments for a subagent in --print mode.
|
|
33
|
+
*
|
|
34
|
+
* --print mode produces JSON Lines on stdout where each line is a
|
|
35
|
+
* structured event (message_end, tool_result_end, etc.).
|
|
36
|
+
*/
|
|
37
|
+
export function buildSubagentArgs(opts) {
|
|
38
|
+
const args = ["--print"];
|
|
39
|
+
if (opts.model) {
|
|
40
|
+
args.push("--model", opts.model);
|
|
41
|
+
}
|
|
42
|
+
if (opts.tools && opts.tools.length > 0) {
|
|
43
|
+
args.push("--tools", opts.tools.join(","));
|
|
44
|
+
}
|
|
45
|
+
if (opts.maxTurns !== undefined) {
|
|
46
|
+
args.push("--max-turns", String(opts.maxTurns));
|
|
47
|
+
}
|
|
48
|
+
if (opts.systemPromptFile) {
|
|
49
|
+
args.push("--append-system-prompt", opts.systemPromptFile);
|
|
50
|
+
}
|
|
51
|
+
args.push(opts.task);
|
|
52
|
+
return args;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=pi-invoke.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pi-invoke.js","sourceRoot":"","sources":["../../src/shared/pi-invoke.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,IAAc;IAI5C,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEtC,4DAA4D;IAC5D,MAAM,kBAAkB,GAAG,aAAa,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;IACtE,IAAI,aAAa,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACzE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;IACvE,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/D,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/D,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,6DAA6D;QAC7D,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC7C,CAAC;IAED,wDAAwD;IACxD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACjC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAOjC;IACC,MAAM,IAAI,GAAa,CAAC,SAAS,CAAC,CAAC;IAEnC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrB,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* render — format AgentSwarm and AgentTeam output.
|
|
3
|
+
*
|
|
4
|
+
* Produces the structured XML output that the parent LLM reads.
|
|
5
|
+
* Format is compatible with kimi-code's AgentSwarm output.
|
|
6
|
+
*/
|
|
7
|
+
import type { SwarmSpawnSpec, SwarmResumeSpec, SubagentResult } from "./types.js";
|
|
8
|
+
interface SwarmRunResult {
|
|
9
|
+
readonly spec: SwarmSpawnSpec | SwarmResumeSpec;
|
|
10
|
+
readonly agentId?: string;
|
|
11
|
+
readonly status: "completed" | "failed" | "aborted";
|
|
12
|
+
readonly state?: "started" | "not_started";
|
|
13
|
+
readonly result?: string;
|
|
14
|
+
readonly error?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Render the aggregated AgentSwarm result as an XML string.
|
|
18
|
+
*
|
|
19
|
+
* Format:
|
|
20
|
+
* <agent_swarm_result>
|
|
21
|
+
* <summary>completed: N, failed: M</summary>
|
|
22
|
+
* <resume_hint>...</resume_hint>
|
|
23
|
+
* <subagent ... outcome="completed">result text</subagent>
|
|
24
|
+
* ...
|
|
25
|
+
* </agent_swarm_result>
|
|
26
|
+
*/
|
|
27
|
+
export declare function renderSwarmResults(results: readonly SwarmRunResult[]): string;
|
|
28
|
+
/**
|
|
29
|
+
* Convert SubagentResult array (from controller) to SwarmRunResult array.
|
|
30
|
+
*/
|
|
31
|
+
export declare function toSwarmRunResults<T>(results: readonly SubagentResult<T>[]): SwarmRunResult[];
|
|
32
|
+
/**
|
|
33
|
+
* Render the aggregated AgentTeam result as an XML string.
|
|
34
|
+
*
|
|
35
|
+
* Format:
|
|
36
|
+
* <agent_team_result>
|
|
37
|
+
* <summary>Phases completed: 5/6. Tasks: 8/10 succeeded, 2 failed.</summary>
|
|
38
|
+
* <phase name="explore" status="completed">...</phase>
|
|
39
|
+
* ...
|
|
40
|
+
* </agent_team_result>
|
|
41
|
+
*/
|
|
42
|
+
export declare function renderTeamResults(_results: readonly Record<string, unknown>[]): string;
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=render.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/shared/render.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAMlF,UAAU,cAAc;IACtB,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,eAAe,CAAC;IAChD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;IAC3C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,SAAS,cAAc,EAAE,GACjC,MAAM,CAkDR;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,OAAO,EAAE,SAAS,cAAc,CAAC,CAAC,CAAC,EAAE,GACpC,cAAc,EAAE,CAYlB;AAMD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAC3C,MAAM,CAGR"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* render — format AgentSwarm and AgentTeam output.
|
|
3
|
+
*
|
|
4
|
+
* Produces the structured XML output that the parent LLM reads.
|
|
5
|
+
* Format is compatible with kimi-code's AgentSwarm output.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Render the aggregated AgentSwarm result as an XML string.
|
|
9
|
+
*
|
|
10
|
+
* Format:
|
|
11
|
+
* <agent_swarm_result>
|
|
12
|
+
* <summary>completed: N, failed: M</summary>
|
|
13
|
+
* <resume_hint>...</resume_hint>
|
|
14
|
+
* <subagent ... outcome="completed">result text</subagent>
|
|
15
|
+
* ...
|
|
16
|
+
* </agent_swarm_result>
|
|
17
|
+
*/
|
|
18
|
+
export function renderSwarmResults(results) {
|
|
19
|
+
const completed = results.filter((r) => r.status === "completed").length;
|
|
20
|
+
const failed = results.filter((r) => r.status === "failed").length;
|
|
21
|
+
const aborted = results.filter((r) => r.status === "aborted").length;
|
|
22
|
+
const shouldRenderResumeHint = results.some((r) => r.status !== "completed") &&
|
|
23
|
+
results.some((r) => r.agentId !== undefined);
|
|
24
|
+
const lines = [
|
|
25
|
+
"<agent_swarm_result>",
|
|
26
|
+
`<summary>${renderSwarmSummary(completed, failed, aborted)}</summary>`,
|
|
27
|
+
];
|
|
28
|
+
if (shouldRenderResumeHint) {
|
|
29
|
+
lines.push("<resume_hint>" +
|
|
30
|
+
"Call AgentSwarm with resume_agent_ids using the agent_id values " +
|
|
31
|
+
"in this result to continue unfinished work." +
|
|
32
|
+
"</resume_hint>");
|
|
33
|
+
}
|
|
34
|
+
for (const result of results) {
|
|
35
|
+
const agentId = result.agentId === undefined
|
|
36
|
+
? ""
|
|
37
|
+
: ` agent_id="${escapeXml(result.agentId)}"`;
|
|
38
|
+
const mode = result.spec.kind === "resume" ? ' mode="resume"' : "";
|
|
39
|
+
const item = result.spec.item === undefined
|
|
40
|
+
? ""
|
|
41
|
+
: ` item="${escapeXml(result.spec.item)}"`;
|
|
42
|
+
const state = result.state === undefined
|
|
43
|
+
? ""
|
|
44
|
+
: ` state="${result.state}"`;
|
|
45
|
+
const body = result.status === "completed"
|
|
46
|
+
? (result.result ?? "")
|
|
47
|
+
: (result.error ?? "unknown error");
|
|
48
|
+
lines.push(`<subagent${mode}${agentId}${item}${state} outcome="${result.status}">${escapeXmlBody(body)}</subagent>`);
|
|
49
|
+
}
|
|
50
|
+
lines.push("</agent_swarm_result>");
|
|
51
|
+
return lines.join("\n");
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Convert SubagentResult array (from controller) to SwarmRunResult array.
|
|
55
|
+
*/
|
|
56
|
+
export function toSwarmRunResults(results) {
|
|
57
|
+
return results.map((r) => {
|
|
58
|
+
const spec = r.task.data;
|
|
59
|
+
return {
|
|
60
|
+
spec,
|
|
61
|
+
agentId: r.agentId,
|
|
62
|
+
status: r.status,
|
|
63
|
+
state: r.state,
|
|
64
|
+
result: r.result,
|
|
65
|
+
error: r.error,
|
|
66
|
+
};
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
// ---------------------------------------------------------------------------
|
|
70
|
+
// AgentTeam output (reserved for Phase 3)
|
|
71
|
+
// ---------------------------------------------------------------------------
|
|
72
|
+
/**
|
|
73
|
+
* Render the aggregated AgentTeam result as an XML string.
|
|
74
|
+
*
|
|
75
|
+
* Format:
|
|
76
|
+
* <agent_team_result>
|
|
77
|
+
* <summary>Phases completed: 5/6. Tasks: 8/10 succeeded, 2 failed.</summary>
|
|
78
|
+
* <phase name="explore" status="completed">...</phase>
|
|
79
|
+
* ...
|
|
80
|
+
* </agent_team_result>
|
|
81
|
+
*/
|
|
82
|
+
export function renderTeamResults(_results) {
|
|
83
|
+
// Placeholder — full implementation in Phase 3.
|
|
84
|
+
return "<agent_team_result>\n<summary>Not yet implemented.</summary>\n</agent_team_result>";
|
|
85
|
+
}
|
|
86
|
+
// ---------------------------------------------------------------------------
|
|
87
|
+
// Helpers
|
|
88
|
+
// ---------------------------------------------------------------------------
|
|
89
|
+
function renderSwarmSummary(completed, failed, aborted) {
|
|
90
|
+
const parts = [];
|
|
91
|
+
if (completed > 0)
|
|
92
|
+
parts.push(`completed: ${String(completed)}`);
|
|
93
|
+
if (failed > 0)
|
|
94
|
+
parts.push(`failed: ${String(failed)}`);
|
|
95
|
+
if (aborted > 0)
|
|
96
|
+
parts.push(`aborted: ${String(aborted)}`);
|
|
97
|
+
return parts.join(", ");
|
|
98
|
+
}
|
|
99
|
+
function escapeXml(value) {
|
|
100
|
+
return value
|
|
101
|
+
.replaceAll("&", "&")
|
|
102
|
+
.replaceAll('"', """)
|
|
103
|
+
.replaceAll("<", "<")
|
|
104
|
+
.replaceAll(">", ">");
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Escape body text for XML. Body text is not attribute-quoted,
|
|
108
|
+
* so we only need to escape the structural characters.
|
|
109
|
+
*/
|
|
110
|
+
function escapeXmlBody(value) {
|
|
111
|
+
return value
|
|
112
|
+
.replaceAll("&", "&")
|
|
113
|
+
.replaceAll("<", "<")
|
|
114
|
+
.replaceAll(">", ">");
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/shared/render.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* spawner — launch and manage pi subagent child processes.
|
|
3
|
+
*
|
|
4
|
+
* Each subagent runs as an independent `pi --print` child process.
|
|
5
|
+
* The parent parses JSON Lines events from stdout to track progress,
|
|
6
|
+
* collect token usage, and capture the final result.
|
|
7
|
+
*/
|
|
8
|
+
import type { SpawnSubagentOptions, SubagentHandle, RunSubagentOptions } from "./types.js";
|
|
9
|
+
/**
|
|
10
|
+
* Launch a new subagent child process.
|
|
11
|
+
*
|
|
12
|
+
* The child runs `pi --print` with the given task. The parent reads
|
|
13
|
+
* JSON Lines from stdout and accumulates usage + final result.
|
|
14
|
+
*
|
|
15
|
+
* On abort, sends SIGTERM (then SIGKILL after 5s grace).
|
|
16
|
+
*/
|
|
17
|
+
export declare function spawnSubagent(opts: SpawnSubagentOptions): Promise<SubagentHandle>;
|
|
18
|
+
/**
|
|
19
|
+
* Resume an existing subagent by re-spawning with a resume prompt.
|
|
20
|
+
*/
|
|
21
|
+
export declare function resumeSubagent(agentId: string, opts: RunSubagentOptions): Promise<SubagentHandle>;
|
|
22
|
+
/**
|
|
23
|
+
* Retry a failed subagent with the same agentId.
|
|
24
|
+
*/
|
|
25
|
+
export declare function retrySubagent(agentId: string, opts: RunSubagentOptions): Promise<SubagentHandle>;
|
|
26
|
+
//# sourceMappingURL=spawner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spawner.d.ts","sourceRoot":"","sources":["../../src/shared/spawner.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EACV,oBAAoB,EACpB,cAAc,EAGd,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAMpB;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,cAAc,CAAC,CAczB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,cAAc,CAAC,CAiBzB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,cAAc,CAAC,CAEzB"}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* spawner — launch and manage pi subagent child processes.
|
|
3
|
+
*
|
|
4
|
+
* Each subagent runs as an independent `pi --print` child process.
|
|
5
|
+
* The parent parses JSON Lines events from stdout to track progress,
|
|
6
|
+
* collect token usage, and capture the final result.
|
|
7
|
+
*/
|
|
8
|
+
import { spawn } from "node:child_process";
|
|
9
|
+
import { getPiInvocation, buildSubagentArgs } from "./pi-invoke.js";
|
|
10
|
+
// ---------------------------------------------------------------------------
|
|
11
|
+
// Spawner implementation
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
/**
|
|
14
|
+
* Launch a new subagent child process.
|
|
15
|
+
*
|
|
16
|
+
* The child runs `pi --print` with the given task. The parent reads
|
|
17
|
+
* JSON Lines from stdout and accumulates usage + final result.
|
|
18
|
+
*
|
|
19
|
+
* On abort, sends SIGTERM (then SIGKILL after 5s grace).
|
|
20
|
+
*/
|
|
21
|
+
export async function spawnSubagent(opts) {
|
|
22
|
+
opts.signal.throwIfAborted();
|
|
23
|
+
const agentId = `swarm-${randomId()}`;
|
|
24
|
+
const completion = runSubagentProcess(agentId, opts);
|
|
25
|
+
opts.onReady?.();
|
|
26
|
+
return {
|
|
27
|
+
agentId,
|
|
28
|
+
profileName: opts.profileName,
|
|
29
|
+
resumed: false,
|
|
30
|
+
completion,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Resume an existing subagent by re-spawning with a resume prompt.
|
|
35
|
+
*/
|
|
36
|
+
export async function resumeSubagent(agentId, opts) {
|
|
37
|
+
opts.signal.throwIfAborted();
|
|
38
|
+
const spawnOpts = {
|
|
39
|
+
...opts,
|
|
40
|
+
profileName: "subagent",
|
|
41
|
+
};
|
|
42
|
+
const completion = runSubagentProcess(agentId, spawnOpts);
|
|
43
|
+
opts.onReady?.();
|
|
44
|
+
return {
|
|
45
|
+
agentId,
|
|
46
|
+
profileName: "subagent",
|
|
47
|
+
resumed: true,
|
|
48
|
+
completion,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Retry a failed subagent with the same agentId.
|
|
53
|
+
*/
|
|
54
|
+
export async function retrySubagent(agentId, opts) {
|
|
55
|
+
return resumeSubagent(agentId, opts);
|
|
56
|
+
}
|
|
57
|
+
async function runSubagentProcess(agentId, opts) {
|
|
58
|
+
const args = buildSubagentArgs({
|
|
59
|
+
task: opts.prompt,
|
|
60
|
+
model: opts.model,
|
|
61
|
+
tools: opts.tools,
|
|
62
|
+
cwd: opts.cwd,
|
|
63
|
+
});
|
|
64
|
+
const invocation = getPiInvocation(args);
|
|
65
|
+
const cwd = opts.cwd ?? process.cwd();
|
|
66
|
+
const result = await new Promise((resolve, reject) => {
|
|
67
|
+
const proc = spawn(invocation.command, invocation.args, {
|
|
68
|
+
cwd,
|
|
69
|
+
shell: false,
|
|
70
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
71
|
+
env: { ...process.env },
|
|
72
|
+
});
|
|
73
|
+
const parsed = parseEventStream(proc, agentId);
|
|
74
|
+
// Handle abort signal
|
|
75
|
+
if (opts.signal) {
|
|
76
|
+
const killProc = (reason) => {
|
|
77
|
+
if (!proc.killed) {
|
|
78
|
+
proc.kill("SIGTERM");
|
|
79
|
+
setTimeout(() => {
|
|
80
|
+
if (!proc.killed)
|
|
81
|
+
proc.kill("SIGKILL");
|
|
82
|
+
}, 5000);
|
|
83
|
+
}
|
|
84
|
+
reject(reason instanceof Error
|
|
85
|
+
? reason
|
|
86
|
+
: new Error("Subagent aborted"));
|
|
87
|
+
};
|
|
88
|
+
if (opts.signal.aborted) {
|
|
89
|
+
killProc(opts.signal.reason);
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
opts.signal.addEventListener("abort", () => killProc(opts.signal.reason), {
|
|
93
|
+
once: true,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
// Handle timeout
|
|
97
|
+
let timeoutHandle;
|
|
98
|
+
if (opts.timeout && opts.timeout > 0) {
|
|
99
|
+
timeoutHandle = setTimeout(() => {
|
|
100
|
+
if (!proc.killed) {
|
|
101
|
+
proc.kill("SIGTERM");
|
|
102
|
+
setTimeout(() => {
|
|
103
|
+
if (!proc.killed)
|
|
104
|
+
proc.kill("SIGKILL");
|
|
105
|
+
}, 5000);
|
|
106
|
+
}
|
|
107
|
+
reject(new Error("Subagent timed out"));
|
|
108
|
+
}, opts.timeout);
|
|
109
|
+
}
|
|
110
|
+
proc.on("close", (code) => {
|
|
111
|
+
if (timeoutHandle)
|
|
112
|
+
clearTimeout(timeoutHandle);
|
|
113
|
+
if (code === 0 || code === null) {
|
|
114
|
+
resolve(parsed);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
reject(new Error(`Subagent exited with code ${code}: ${parsed.errorMessage || parsed.text || "unknown error"}`));
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
proc.on("error", (err) => {
|
|
121
|
+
if (timeoutHandle)
|
|
122
|
+
clearTimeout(timeoutHandle);
|
|
123
|
+
reject(err);
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
return {
|
|
127
|
+
result: result.text || "(no output)",
|
|
128
|
+
usage: result.usage,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Parse the JSON Lines event stream from a pi --print child process.
|
|
133
|
+
* Accumulates usage stats and extracts the final text result.
|
|
134
|
+
*/
|
|
135
|
+
function parseEventStream(proc, _agentId) {
|
|
136
|
+
// Mutable accumulator (interface fields are readonly)
|
|
137
|
+
const usageAcc = { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, totalTokens: 0 };
|
|
138
|
+
let finalText = "";
|
|
139
|
+
let stopReason;
|
|
140
|
+
let errorMessage;
|
|
141
|
+
let buffer = "";
|
|
142
|
+
const processLine = (line) => {
|
|
143
|
+
if (!line.trim())
|
|
144
|
+
return;
|
|
145
|
+
let event;
|
|
146
|
+
try {
|
|
147
|
+
event = JSON.parse(line);
|
|
148
|
+
}
|
|
149
|
+
catch {
|
|
150
|
+
return; // Ignore non-JSON lines
|
|
151
|
+
}
|
|
152
|
+
// Accumulate usage from message_end events (assistant messages)
|
|
153
|
+
if (event.type === "message_end" &&
|
|
154
|
+
event.message?.role === "assistant") {
|
|
155
|
+
const msg = event.message;
|
|
156
|
+
if (msg.usage) {
|
|
157
|
+
usageAcc.input += msg.usage.input || 0;
|
|
158
|
+
usageAcc.output += msg.usage.output || 0;
|
|
159
|
+
usageAcc.cacheRead += msg.usage.cacheRead || 0;
|
|
160
|
+
usageAcc.cacheWrite += msg.usage.cacheWrite || 0;
|
|
161
|
+
usageAcc.totalTokens = msg.usage.totalTokens || usageAcc.totalTokens;
|
|
162
|
+
}
|
|
163
|
+
if (msg.stopReason)
|
|
164
|
+
stopReason = msg.stopReason;
|
|
165
|
+
if (msg.errorMessage)
|
|
166
|
+
errorMessage = msg.errorMessage;
|
|
167
|
+
// Collect text content from the final message
|
|
168
|
+
const content = msg.content;
|
|
169
|
+
if (content && Array.isArray(content)) {
|
|
170
|
+
for (const block of content) {
|
|
171
|
+
if (block.type === "text" && block.text) {
|
|
172
|
+
finalText += block.text;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
// Tool result events — collect output for display
|
|
178
|
+
if (event.type === "tool_result_end") {
|
|
179
|
+
// Tool results are captured for event logging
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
if (proc.stdout) {
|
|
183
|
+
proc.stdout.on("data", (data) => {
|
|
184
|
+
buffer += data.toString();
|
|
185
|
+
const lines = buffer.split("\n");
|
|
186
|
+
buffer = lines.pop() || "";
|
|
187
|
+
for (const line of lines) {
|
|
188
|
+
processLine(line);
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
// Must subscribe to consume the stream
|
|
192
|
+
proc.stdout.resume();
|
|
193
|
+
}
|
|
194
|
+
if (proc.stderr) {
|
|
195
|
+
proc.stderr.on("data", (data) => {
|
|
196
|
+
// Stderr may contain error details
|
|
197
|
+
const text = data.toString().trim();
|
|
198
|
+
if (text && !errorMessage) {
|
|
199
|
+
errorMessage = text;
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
proc.stderr.resume();
|
|
203
|
+
}
|
|
204
|
+
// Process any remaining buffer on close
|
|
205
|
+
const originalOn = proc.on.bind(proc);
|
|
206
|
+
proc.on("close", () => {
|
|
207
|
+
if (buffer.trim()) {
|
|
208
|
+
processLine(buffer);
|
|
209
|
+
}
|
|
210
|
+
});
|
|
211
|
+
const usage = {
|
|
212
|
+
input: usageAcc.input,
|
|
213
|
+
output: usageAcc.output,
|
|
214
|
+
cacheRead: usageAcc.cacheRead,
|
|
215
|
+
cacheWrite: usageAcc.cacheWrite,
|
|
216
|
+
totalTokens: usageAcc.totalTokens,
|
|
217
|
+
};
|
|
218
|
+
return { text: finalText, usage, stopReason, errorMessage };
|
|
219
|
+
}
|
|
220
|
+
// ---------------------------------------------------------------------------
|
|
221
|
+
// Helpers
|
|
222
|
+
// ---------------------------------------------------------------------------
|
|
223
|
+
function randomId() {
|
|
224
|
+
return Math.random().toString(36).slice(2, 10);
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=spawner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spawner.js","sourceRoot":"","sources":["../../src/shared/spawner.ts"],"names":[],"mappings":"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"}
|