@gjczone/pi-swarm 0.1.6 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/index.d.ts.map +1 -1
  2. package/dist/index.js +60 -5
  3. package/dist/index.js.map +1 -1
  4. package/dist/shared/controller.d.ts +5 -2
  5. package/dist/shared/controller.d.ts.map +1 -1
  6. package/dist/shared/controller.js +109 -43
  7. package/dist/shared/controller.js.map +1 -1
  8. package/dist/shared/render.d.ts +4 -4
  9. package/dist/shared/render.d.ts.map +1 -1
  10. package/dist/shared/render.js +7 -9
  11. package/dist/shared/render.js.map +1 -1
  12. package/dist/shared/spawner.d.ts +1 -1
  13. package/dist/shared/spawner.d.ts.map +1 -1
  14. package/dist/shared/spawner.js +232 -132
  15. package/dist/shared/spawner.js.map +1 -1
  16. package/dist/shared/types.d.ts +44 -0
  17. package/dist/shared/types.d.ts.map +1 -1
  18. package/dist/state/persistence.d.ts +21 -14
  19. package/dist/state/persistence.d.ts.map +1 -1
  20. package/dist/state/persistence.js +79 -28
  21. package/dist/state/persistence.js.map +1 -1
  22. package/dist/state/recovery.d.ts +2 -2
  23. package/dist/state/recovery.d.ts.map +1 -1
  24. package/dist/state/recovery.js +37 -22
  25. package/dist/state/recovery.js.map +1 -1
  26. package/dist/swarm/command.d.ts.map +1 -1
  27. package/dist/swarm/command.js.map +1 -1
  28. package/dist/swarm/mode.d.ts.map +1 -1
  29. package/dist/swarm/mode.js +9 -4
  30. package/dist/swarm/mode.js.map +1 -1
  31. package/dist/swarm/tool.d.ts.map +1 -1
  32. package/dist/swarm/tool.js +77 -5
  33. package/dist/swarm/tool.js.map +1 -1
  34. package/dist/team/command.d.ts +3 -2
  35. package/dist/team/command.d.ts.map +1 -1
  36. package/dist/team/command.js +24 -7
  37. package/dist/team/command.js.map +1 -1
  38. package/dist/team/mailbox.d.ts +3 -3
  39. package/dist/team/mailbox.d.ts.map +1 -1
  40. package/dist/team/mailbox.js +38 -17
  41. package/dist/team/mailbox.js.map +1 -1
  42. package/dist/team/supervisor.d.ts +31 -5
  43. package/dist/team/supervisor.d.ts.map +1 -1
  44. package/dist/team/supervisor.js +187 -16
  45. package/dist/team/supervisor.js.map +1 -1
  46. package/dist/team/task-graph.d.ts.map +1 -1
  47. package/dist/team/task-graph.js +4 -7
  48. package/dist/team/task-graph.js.map +1 -1
  49. package/dist/team/tool.d.ts +3 -3
  50. package/dist/team/tool.d.ts.map +1 -1
  51. package/dist/team/tool.js +81 -24
  52. package/dist/team/tool.js.map +1 -1
  53. package/dist/tui/permission-prompt.d.ts.map +1 -1
  54. package/dist/tui/permission-prompt.js.map +1 -1
  55. package/dist/tui/progress.d.ts +10 -0
  56. package/dist/tui/progress.d.ts.map +1 -1
  57. package/dist/tui/progress.js +50 -1
  58. package/dist/tui/progress.js.map +1 -1
  59. package/dist/tui/team-dashboard.d.ts +54 -0
  60. package/dist/tui/team-dashboard.d.ts.map +1 -0
  61. package/dist/tui/team-dashboard.js +240 -0
  62. package/dist/tui/team-dashboard.js.map +1 -0
  63. package/package.json +1 -1
@@ -1 +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"}
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;AAQpB;;;;;;;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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * spawner launch and manage pi subagent child processes.
2
+ * spawner - launch and manage pi subagent child processes.
3
3
  *
4
4
  * Each subagent runs as an independent `pi --print` child process.
5
5
  * The parent parses JSON Lines events from stdout to track progress,
@@ -7,6 +7,7 @@
7
7
  */
8
8
  import { spawn } from "node:child_process";
9
9
  import { getPiInvocation, buildSubagentArgs } from "./pi-invoke.js";
10
+ const MAX_LINE_BUFFER_SIZE = 10 * 1024 * 1024;
10
11
  // ---------------------------------------------------------------------------
11
12
  // Spawner implementation
12
13
  // ---------------------------------------------------------------------------
@@ -63,159 +64,258 @@ async function runSubagentProcess(agentId, opts) {
63
64
  });
64
65
  const invocation = getPiInvocation(args);
65
66
  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
67
+ const proc = spawn(invocation.command, invocation.args, {
68
+ cwd,
69
+ shell: false,
70
+ stdio: ["ignore", "pipe", "pipe"],
71
+ env: { ...process.env },
72
+ });
73
+ let sigkillTimer;
74
+ let timeoutHandle;
75
+ let streamReject;
76
+ let settled = false;
77
+ const cleanup = () => {
78
+ settled = true;
79
+ if (sigkillTimer) {
80
+ clearTimeout(sigkillTimer);
81
+ sigkillTimer = undefined;
82
+ }
83
+ if (timeoutHandle) {
84
+ clearTimeout(timeoutHandle);
85
+ timeoutHandle = undefined;
86
+ }
75
87
  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
- });
88
+ opts.signal.removeEventListener("abort", onAbort);
95
89
  }
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);
90
+ };
91
+ const scheduleSigkill = () => {
92
+ if (sigkillTimer)
93
+ clearTimeout(sigkillTimer);
94
+ sigkillTimer = setTimeout(() => {
95
+ if (!proc.killed)
96
+ proc.kill("SIGKILL");
97
+ }, 5000);
98
+ };
99
+ const killProc = (reason) => {
100
+ if (settled)
101
+ return;
102
+ settled = true;
103
+ if (!proc.killed) {
104
+ proc.kill("SIGTERM");
105
+ scheduleSigkill();
109
106
  }
110
- proc.on("close", (code) => {
111
- if (timeoutHandle)
112
- clearTimeout(timeoutHandle);
113
- if (code === 0 || code === null) {
114
- resolve(parsed);
107
+ const err = reason instanceof Error ? reason : new Error("Subagent aborted");
108
+ if (streamReject) {
109
+ cleanup();
110
+ streamReject(err);
111
+ }
112
+ };
113
+ const onAbort = () => killProc(opts.signal?.reason);
114
+ if (opts.signal) {
115
+ if (opts.signal.aborted) {
116
+ killProc(opts.signal.reason);
117
+ }
118
+ else {
119
+ opts.signal.addEventListener("abort", onAbort, { once: true });
120
+ }
121
+ }
122
+ if (opts.timeout && opts.timeout > 0) {
123
+ timeoutHandle = setTimeout(() => {
124
+ if (settled)
125
+ return;
126
+ settled = true;
127
+ if (!proc.killed) {
128
+ proc.kill("SIGTERM");
129
+ scheduleSigkill();
115
130
  }
116
- else {
117
- reject(new Error(`Subagent exited with code ${code}: ${parsed.errorMessage || parsed.text || "unknown error"}`));
131
+ if (streamReject) {
132
+ cleanup();
133
+ streamReject(new Error("Subagent timed out"));
118
134
  }
135
+ }, opts.timeout);
136
+ }
137
+ try {
138
+ const result = await new Promise((resolve, reject) => {
139
+ streamReject = reject;
140
+ parseEventStream(proc, agentId).then((parsed) => {
141
+ if (settled)
142
+ return;
143
+ cleanup();
144
+ resolve(parsed);
145
+ }, (err) => {
146
+ if (settled)
147
+ return;
148
+ cleanup();
149
+ reject(err);
150
+ });
119
151
  });
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
- };
152
+ return {
153
+ result: result.text || "(no output)",
154
+ usage: result.usage,
155
+ };
156
+ }
157
+ catch (err) {
158
+ cleanup();
159
+ throw err;
160
+ }
130
161
  }
131
162
  /**
132
163
  * Parse the JSON Lines event stream from a pi --print child process.
133
- * Accumulates usage stats and extracts the final text result.
164
+ * Returns a Promise that resolves after process close with accumulated results.
134
165
  */
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;
166
+ function parseEventStream(proc, agentId) {
167
+ return new Promise((resolve, reject) => {
168
+ const usageAcc = {
169
+ input: 0,
170
+ output: 0,
171
+ cacheRead: 0,
172
+ cacheWrite: 0,
173
+ totalTokens: 0,
174
+ };
175
+ let finalText = "";
176
+ let stopReason;
177
+ let errorMessage = "";
178
+ let buffer = "";
179
+ let unparseableCount = 0;
180
+ let settled = false;
181
+ const settle = (result, err) => {
182
+ if (settled)
183
+ return;
184
+ settled = true;
185
+ proc.stdout?.removeAllListeners();
186
+ proc.stderr?.removeAllListeners();
187
+ proc.removeAllListeners();
188
+ if (err) {
189
+ reject(err);
162
190
  }
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;
191
+ else if (result) {
192
+ resolve(result);
193
+ }
194
+ };
195
+ const buildResult = () => ({
196
+ text: finalText,
197
+ usage: {
198
+ input: usageAcc.input,
199
+ output: usageAcc.output,
200
+ cacheRead: usageAcc.cacheRead,
201
+ cacheWrite: usageAcc.cacheWrite,
202
+ totalTokens: usageAcc.totalTokens,
203
+ },
204
+ stopReason,
205
+ errorMessage: errorMessage || undefined,
206
+ });
207
+ const processLine = (line) => {
208
+ if (!line.trim())
209
+ return;
210
+ let event;
211
+ try {
212
+ event = JSON.parse(line);
213
+ }
214
+ catch {
215
+ unparseableCount++;
216
+ if (unparseableCount === 1 || unparseableCount % 100 === 0) {
217
+ console.error(`[pi-swarm] Agent ${agentId}: ${unparseableCount} unparseable output line(s)`);
218
+ }
219
+ return;
220
+ }
221
+ if (event.type === "message_end" && event.message?.role === "assistant") {
222
+ const msg = event.message;
223
+ if (msg.usage) {
224
+ usageAcc.input += msg.usage.input || 0;
225
+ usageAcc.output += msg.usage.output || 0;
226
+ usageAcc.cacheRead += msg.usage.cacheRead || 0;
227
+ usageAcc.cacheWrite += msg.usage.cacheWrite || 0;
228
+ usageAcc.totalTokens += msg.usage.totalTokens || 0;
229
+ }
230
+ if (msg.stopReason)
231
+ stopReason = msg.stopReason;
232
+ if (msg.errorMessage) {
233
+ if (errorMessage)
234
+ errorMessage += "\n";
235
+ errorMessage += msg.errorMessage;
236
+ }
237
+ const content = msg.content;
238
+ if (content && Array.isArray(content)) {
239
+ for (const block of content) {
240
+ if (block.type === "text" && block.text) {
241
+ finalText += block.text;
242
+ }
173
243
  }
174
244
  }
175
245
  }
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();
246
+ };
247
+ const processBuffer = () => {
248
+ if (!buffer.trim())
249
+ return;
185
250
  const lines = buffer.split("\n");
186
251
  buffer = lines.pop() || "";
187
252
  for (const line of lines) {
188
253
  processLine(line);
189
254
  }
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;
255
+ };
256
+ if (proc.stdout) {
257
+ proc.stdout.on("data", (data) => {
258
+ if (settled)
259
+ return;
260
+ buffer += data.toString();
261
+ if (buffer.length > MAX_LINE_BUFFER_SIZE) {
262
+ settle(null, new Error(`Subagent output exceeded buffer limit (${MAX_LINE_BUFFER_SIZE / 1024 / 1024}MB)`));
263
+ if (!proc.killed) {
264
+ proc.kill("SIGTERM");
265
+ setTimeout(() => {
266
+ if (!proc.killed)
267
+ proc.kill("SIGKILL");
268
+ }, 5000);
269
+ }
270
+ return;
271
+ }
272
+ processBuffer();
273
+ });
274
+ proc.stdout.on("error", (err) => {
275
+ console.error(`[pi-swarm] stdout error for agent ${agentId}:`, err.message);
276
+ if (!settled) {
277
+ settle(null, new Error(`Subagent stdout error: ${err.message}`));
278
+ }
279
+ });
280
+ proc.stdout.resume();
281
+ }
282
+ if (proc.stderr) {
283
+ proc.stderr.on("data", (data) => {
284
+ if (settled)
285
+ return;
286
+ const text = data.toString();
287
+ if (text.trim()) {
288
+ if (errorMessage)
289
+ errorMessage += "\n";
290
+ errorMessage += text.trim();
291
+ }
292
+ });
293
+ proc.stderr.on("error", (err) => {
294
+ console.error(`[pi-swarm] stderr error for agent ${agentId}:`, err.message);
295
+ });
296
+ proc.stderr.resume();
297
+ }
298
+ proc.on("close", (code, signal) => {
299
+ if (settled)
300
+ return;
301
+ processBuffer();
302
+ if (code === 0 && signal === null) {
303
+ settle(buildResult());
304
+ }
305
+ else {
306
+ const errMsg = signal
307
+ ? `Subagent killed by signal ${signal}`
308
+ : `Subagent exited with code ${code}`;
309
+ const fullMsg = errorMessage ? `${errMsg}: ${errorMessage}` : errMsg;
310
+ settle(null, new Error(fullMsg));
200
311
  }
201
312
  });
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
- }
313
+ proc.on("error", (err) => {
314
+ if (settled)
315
+ return;
316
+ settle(null, err);
317
+ });
210
318
  });
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
319
  }
220
320
  // ---------------------------------------------------------------------------
221
321
  // Helpers
@@ -1 +1 @@
1
- {"version":3,"file":"spawner.js","sourceRoot":"","sources":["../../src/shared/spawner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spawner.js","sourceRoot":"","sources":["../../src/shared/spawner.ts"],"names":[],"mappings":"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"}
@@ -164,6 +164,50 @@ export interface SubagentBatchOptions {
164
164
  * `undefined` means no cap (legacy ramp behavior).
165
165
  */
166
166
  readonly maxConcurrency?: number;
167
+ /**
168
+ * Optional progress callback invoked when task states change.
169
+ * Receives a snapshot of the current batch progress.
170
+ */
171
+ readonly onProgress?: (snapshot: BatchProgressSnapshot) => void;
172
+ }
173
+ /** Snapshot of team run progress for TUI display. */
174
+ export interface TeamProgressSnapshot {
175
+ readonly title: string;
176
+ readonly goal: string;
177
+ readonly status: "running" | "completed" | "failed";
178
+ readonly totalPhases: number;
179
+ readonly completedPhases: number;
180
+ readonly failedPhases: number;
181
+ readonly currentPhase?: string;
182
+ readonly currentRole?: string;
183
+ readonly phases: ReadonlyArray<TeamPhaseStatus>;
184
+ readonly mailboxCount: number;
185
+ readonly startedAt: number;
186
+ }
187
+ /** Per-phase status in a team progress snapshot. */
188
+ export interface TeamPhaseStatus {
189
+ readonly name: string;
190
+ readonly role: AgentRole;
191
+ readonly status: "queued" | "running" | "completed" | "failed" | "skipped";
192
+ readonly error?: string;
193
+ }
194
+ /** Callback for team progress updates. */
195
+ export type TeamProgressCallback = (snapshot: TeamProgressSnapshot) => void;
196
+ /** Snapshot of batch progress for TUI display. */
197
+ export interface BatchProgressSnapshot {
198
+ readonly total: number;
199
+ readonly completed: number;
200
+ readonly failed: number;
201
+ readonly active: number;
202
+ readonly queued: number;
203
+ readonly members: ReadonlyArray<BatchMemberStatus>;
204
+ }
205
+ /** Per-member status in a progress snapshot. */
206
+ export interface BatchMemberStatus {
207
+ readonly index: number;
208
+ readonly phase: "queued" | "working" | "completed" | "failed" | "suspended";
209
+ readonly item?: string;
210
+ readonly error?: string;
167
211
  }
168
212
  /** Emitted when a subagent is suspended due to rate limiting. */
169
213
  export interface SubagentSuspendedEvent {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,mDAAmD;AACnD,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,WAAW,GACX,SAAS,GACT,WAAW,GACX,QAAQ,GACR,WAAW,GACX,WAAW,CAAC;AAEhB,0CAA0C;AAC1C,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEjE,4DAA4D;AAC5D,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,aAAa,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,OAAO;IACzC,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;IACrC,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,wBAAwB;IACxB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,0CAA0C;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC;IACpC,yCAAyC;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,gDAAgD;IAChD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAMD,mDAAmD;AACnD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,kCAAkC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,+BAA+B;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,kCAAkC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,mCAAmC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,sCAAsC;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,qBAAqB;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,yDAAyD;AACzD,MAAM,MAAM,SAAS,GAAG,cAAc,GAAG,eAAe,CAAC;AAMzD,4CAA4C;AAC5C,MAAM,MAAM,SAAS,GACjB,UAAU,GACV,SAAS,GACT,OAAO,GACP,UAAU,GACV,QAAQ,GACR,OAAO,CAAC;AAEZ,qDAAqD;AACrD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,+CAA+C;IAC/C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,qCAAqC;IACrC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,4CAA4C;IAC5C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,yCAAyC;AACzC,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,wDAAwD;IACxD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED,uDAAuD;AACvD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,iBAAiB,GAAG,aAAa,GAAG,SAAS,GAAG,YAAY,CAAC;IAC5E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C;AAMD,oDAAoD;AACpD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,QAAQ,CAAC,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACjD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,mDAAmD;AACnD,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC9D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,gDAAgD;AAChD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC;CAChC;AAED,oCAAoC;AACpC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAClD;AAED,kCAAkC;AAClC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAMD,6CAA6C;AAC7C,MAAM,WAAW,sBAAsB,CAAC,CAAC,GAAG,OAAO;IACjD,yDAAyD;IACzD,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,6BAA6B;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,uCAAuC;IACvC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,mDAAmD;IACnD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,4CAA4C;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,iDAAiD;IACjD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,gDAAgD;IAChD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,mDAAmD;IACnD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,+CAA+C;IAC/C,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,gCAAgC;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,qCAAqC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,yCAAyC;AACzC,MAAM,WAAW,uBAAuB,CACtC,CAAC,GAAG,OAAO,CACX,SAAQ,sBAAsB,CAAC,CAAC,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAED,gDAAgD;AAChD,MAAM,WAAW,wBAAwB,CACvC,CAAC,GAAG,OAAO,CACX,SAAQ,sBAAsB,CAAC,CAAC,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,kCAAkC;AAClC,MAAM,MAAM,kBAAkB,CAAC,CAAC,GAAG,OAAO,IACtC,uBAAuB,CAAC,CAAC,CAAC,GAC1B,wBAAwB,CAAC,CAAC,CAAC,CAAC;AAMhC,oDAAoD;AACpD,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,qBAAqB,KAAK,IAAI,CAAC;CACjE;AAMD,qDAAqD;AACrD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IACpD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IAChD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,oDAAoD;AACpD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC3E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,0CAA0C;AAC1C,MAAM,MAAM,oBAAoB,GAAG,CAAC,QAAQ,EAAE,oBAAoB,KAAK,IAAI,CAAC;AAE5E,kDAAkD;AAClD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;CACpD;AAED,gDAAgD;AAChD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;IAC5E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAMD,iEAAiE;AACjE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAMD;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC9D,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC9E,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CAC9E"}
@@ -14,17 +14,18 @@
14
14
  * status.json -- per-agent status
15
15
  * output.log -- agent stdout capture
16
16
  */
17
+ export declare function validateId(id: string, kind: string): void;
17
18
  /**
18
19
  * Resolve the crew root directory.
19
20
  *
20
21
  * Always uses `.pi/swarm/` under the project root. Creates `.pi/`
21
22
  * if it does not already exist.
22
23
  */
23
- export declare function resolveCrewRoot(cwd: string): string;
24
+ export declare function resolveSwarmRoot(cwd: string): string;
24
25
  /** Resolve the state directory for a specific run. */
25
- export declare function resolveRunStateDir(crewRoot: string, runId: string): string;
26
+ export declare function resolveRunStateDir(swarmRoot: string, runId: string): string;
26
27
  /** Resolve per-agent state directory. */
27
- export declare function resolveAgentStateDir(crewRoot: string, runId: string, agentId: string): string;
28
+ export declare function resolveAgentStateDir(swarmRoot: string, runId: string, agentId: string): string;
28
29
  export interface RunManifest {
29
30
  readonly runId: string;
30
31
  readonly type: "swarm" | "team";
@@ -32,52 +33,58 @@ export interface RunManifest {
32
33
  goal?: string;
33
34
  startedAt: number;
34
35
  completedAt?: number;
36
+ lastHeartbeatAt?: number;
35
37
  agentIds: string[];
36
38
  }
37
39
  /**
38
40
  * Create a new run manifest and write it to disk.
39
41
  */
40
- export declare function createManifest(crewRoot: string, manifest: RunManifest): void;
42
+ export declare function createManifest(swarmRoot: string, manifest: RunManifest): void;
41
43
  /**
42
44
  * Read a run manifest from disk.
43
45
  * Returns null if the manifest does not exist.
44
46
  */
45
- export declare function readManifest(crewRoot: string, runId: string): RunManifest | null;
47
+ export declare function readManifest(swarmRoot: string, runId: string): RunManifest | null;
46
48
  /**
47
49
  * Update a run manifest (overwrites the file atomically).
48
50
  */
49
- export declare function updateManifest(crewRoot: string, manifest: RunManifest): void;
51
+ export declare function updateManifest(swarmRoot: string, manifest: RunManifest): void;
52
+ /**
53
+ * Update the heartbeat timestamp for a running manifest.
54
+ */
55
+ export declare function updateHeartbeat(swarmRoot: string, runId: string): void;
50
56
  /**
51
57
  * Persist task state (task graph) to disk.
52
58
  */
53
- export declare function saveTaskState(crewRoot: string, runId: string, data: Record<string, unknown>): void;
59
+ export declare function saveTaskState(swarmRoot: string, runId: string, data: Record<string, unknown>): void;
54
60
  /**
55
61
  * Load task state from disk.
56
62
  * Returns null if the file does not exist.
57
63
  */
58
- export declare function loadTaskState(crewRoot: string, runId: string): Record<string, unknown> | null;
64
+ export declare function loadTaskState(swarmRoot: string, runId: string): Record<string, unknown> | null;
59
65
  /**
60
66
  * Append an event to the run's event log.
61
67
  */
62
- export declare function appendEvent(crewRoot: string, runId: string, event: Record<string, unknown>): void;
68
+ export declare function appendEvent(swarmRoot: string, runId: string, event: Record<string, unknown>): void;
63
69
  /**
64
70
  * Read all events from the run's event log.
65
71
  */
66
- export declare function readEvents(crewRoot: string, runId: string): Record<string, unknown>[];
72
+ export declare function readEvents(swarmRoot: string, runId: string): Record<string, unknown>[];
67
73
  /**
68
74
  * Save per-agent status.
69
75
  */
70
- export declare function saveAgentStatus(crewRoot: string, runId: string, agentId: string, status: Record<string, unknown>): void;
76
+ export declare function saveAgentStatus(swarmRoot: string, runId: string, agentId: string, status: Record<string, unknown>): void;
71
77
  /**
72
78
  * Load per-agent status.
73
79
  */
74
- export declare function loadAgentStatus(crewRoot: string, runId: string, agentId: string): Record<string, unknown> | null;
80
+ export declare function loadAgentStatus(swarmRoot: string, runId: string, agentId: string): Record<string, unknown> | null;
75
81
  /**
76
82
  * List all active run IDs in the state directory.
83
+ * Only returns IDs that match the safe ID pattern.
77
84
  */
78
- export declare function listActiveRuns(crewRoot: string): string[];
85
+ export declare function listActiveRuns(swarmRoot: string): string[];
79
86
  /**
80
87
  * Delete the entire run state directory.
81
88
  */
82
- export declare function deleteRunState(crewRoot: string, runId: string): void;
89
+ export declare function deleteRunState(swarmRoot: string, runId: string): void;
83
90
  //# sourceMappingURL=persistence.d.ts.map