@gjczone/pi-swarm 0.2.0 → 0.3.1

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 (59) hide show
  1. package/README.md +5 -5
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +3 -3
  4. package/dist/index.js.map +1 -1
  5. package/dist/shared/controller.d.ts.map +1 -1
  6. package/dist/shared/controller.js +11 -16
  7. package/dist/shared/controller.js.map +1 -1
  8. package/dist/shared/render.d.ts +2 -2
  9. package/dist/shared/render.d.ts.map +1 -1
  10. package/dist/shared/render.js +4 -6
  11. package/dist/shared/render.js.map +1 -1
  12. package/dist/shared/spawner.js +3 -8
  13. package/dist/shared/spawner.js.map +1 -1
  14. package/dist/shared/types.d.ts +23 -0
  15. package/dist/shared/types.d.ts.map +1 -1
  16. package/dist/state/persistence.d.ts +15 -15
  17. package/dist/state/persistence.d.ts.map +1 -1
  18. package/dist/state/persistence.js +32 -31
  19. package/dist/state/persistence.js.map +1 -1
  20. package/dist/state/recovery.d.ts +2 -2
  21. package/dist/state/recovery.d.ts.map +1 -1
  22. package/dist/state/recovery.js +19 -18
  23. package/dist/state/recovery.js.map +1 -1
  24. package/dist/swarm/command.d.ts.map +1 -1
  25. package/dist/swarm/command.js.map +1 -1
  26. package/dist/swarm/mode.d.ts.map +1 -1
  27. package/dist/swarm/mode.js +9 -4
  28. package/dist/swarm/mode.js.map +1 -1
  29. package/dist/swarm/tool.d.ts.map +1 -1
  30. package/dist/swarm/tool.js +81 -7
  31. package/dist/swarm/tool.js.map +1 -1
  32. package/dist/team/command.d.ts.map +1 -1
  33. package/dist/team/command.js.map +1 -1
  34. package/dist/team/mailbox.d.ts +2 -2
  35. package/dist/team/mailbox.d.ts.map +1 -1
  36. package/dist/team/mailbox.js +8 -8
  37. package/dist/team/mailbox.js.map +1 -1
  38. package/dist/team/supervisor.d.ts +14 -3
  39. package/dist/team/supervisor.d.ts.map +1 -1
  40. package/dist/team/supervisor.js +64 -3
  41. package/dist/team/supervisor.js.map +1 -1
  42. package/dist/team/task-graph.d.ts.map +1 -1
  43. package/dist/team/task-graph.js +4 -7
  44. package/dist/team/task-graph.js.map +1 -1
  45. package/dist/team/tool.d.ts +1 -1
  46. package/dist/team/tool.d.ts.map +1 -1
  47. package/dist/team/tool.js +141 -13
  48. package/dist/team/tool.js.map +1 -1
  49. package/dist/tui/permission-prompt.d.ts.map +1 -1
  50. package/dist/tui/permission-prompt.js.map +1 -1
  51. package/dist/tui/progress.d.ts +12 -1
  52. package/dist/tui/progress.d.ts.map +1 -1
  53. package/dist/tui/progress.js +20 -2
  54. package/dist/tui/progress.js.map +1 -1
  55. package/dist/tui/team-dashboard.d.ts +65 -0
  56. package/dist/tui/team-dashboard.d.ts.map +1 -0
  57. package/dist/tui/team-dashboard.js +256 -0
  58. package/dist/tui/team-dashboard.js.map +1 -0
  59. package/package.json +1 -1
@@ -31,7 +31,8 @@ export function validateId(id, kind) {
31
31
  function ensureWithinRoot(resolvedPath, root) {
32
32
  const normalizedRoot = path.resolve(root) + path.sep;
33
33
  const normalizedPath = path.resolve(resolvedPath);
34
- if (!normalizedPath.startsWith(normalizedRoot) && normalizedPath !== path.resolve(root)) {
34
+ if (!normalizedPath.startsWith(normalizedRoot) &&
35
+ normalizedPath !== path.resolve(root)) {
35
36
  throw new Error(`Path traversal detected: ${resolvedPath} escapes ${root}`);
36
37
  }
37
38
  }
@@ -44,7 +45,7 @@ function ensureWithinRoot(resolvedPath, root) {
44
45
  * Always uses `.pi/swarm/` under the project root. Creates `.pi/`
45
46
  * if it does not already exist.
46
47
  */
47
- export function resolveCrewRoot(cwd) {
48
+ export function resolveSwarmRoot(cwd) {
48
49
  const piDir = path.join(cwd, ".pi");
49
50
  if (!fs.existsSync(piDir)) {
50
51
  fs.mkdirSync(piDir, { recursive: true });
@@ -56,17 +57,17 @@ export function resolveCrewRoot(cwd) {
56
57
  return swarmDir;
57
58
  }
58
59
  /** Resolve the state directory for a specific run. */
59
- export function resolveRunStateDir(crewRoot, runId) {
60
+ export function resolveRunStateDir(swarmRoot, runId) {
60
61
  validateId(runId, "runId");
61
- const runsDir = path.join(crewRoot, "state", "runs");
62
+ const runsDir = path.join(swarmRoot, "state", "runs");
62
63
  const dir = path.join(runsDir, runId);
63
64
  ensureWithinRoot(dir, runsDir);
64
65
  return dir;
65
66
  }
66
67
  /** Resolve per-agent state directory. */
67
- export function resolveAgentStateDir(crewRoot, runId, agentId) {
68
+ export function resolveAgentStateDir(swarmRoot, runId, agentId) {
68
69
  validateId(agentId, "agentId");
69
- const runDir = resolveRunStateDir(crewRoot, runId);
70
+ const runDir = resolveRunStateDir(swarmRoot, runId);
70
71
  const agentsDir = path.join(runDir, "agents");
71
72
  const dir = path.join(agentsDir, agentId);
72
73
  ensureWithinRoot(dir, agentsDir);
@@ -75,8 +76,8 @@ export function resolveAgentStateDir(crewRoot, runId, agentId) {
75
76
  /**
76
77
  * Create a new run manifest and write it to disk.
77
78
  */
78
- export function createManifest(crewRoot, manifest) {
79
- const dir = resolveRunStateDir(crewRoot, manifest.runId);
79
+ export function createManifest(swarmRoot, manifest) {
80
+ const dir = resolveRunStateDir(swarmRoot, manifest.runId);
80
81
  fs.mkdirSync(dir, { recursive: true });
81
82
  writeAtomic(path.join(dir, "manifest.json"), JSON.stringify(manifest, null, 2));
82
83
  }
@@ -84,8 +85,8 @@ export function createManifest(crewRoot, manifest) {
84
85
  * Read a run manifest from disk.
85
86
  * Returns null if the manifest does not exist.
86
87
  */
87
- export function readManifest(crewRoot, runId) {
88
- const filePath = path.join(resolveRunStateDir(crewRoot, runId), "manifest.json");
88
+ export function readManifest(swarmRoot, runId) {
89
+ const filePath = path.join(resolveRunStateDir(swarmRoot, runId), "manifest.json");
89
90
  try {
90
91
  const raw = fs.readFileSync(filePath, "utf-8");
91
92
  return JSON.parse(raw);
@@ -97,22 +98,22 @@ export function readManifest(crewRoot, runId) {
97
98
  /**
98
99
  * Update a run manifest (overwrites the file atomically).
99
100
  */
100
- export function updateManifest(crewRoot, manifest) {
101
- const dir = resolveRunStateDir(crewRoot, manifest.runId);
101
+ export function updateManifest(swarmRoot, manifest) {
102
+ const dir = resolveRunStateDir(swarmRoot, manifest.runId);
102
103
  fs.mkdirSync(dir, { recursive: true });
103
104
  writeAtomic(path.join(dir, "manifest.json"), JSON.stringify(manifest, null, 2));
104
105
  }
105
106
  /**
106
107
  * Update the heartbeat timestamp for a running manifest.
107
108
  */
108
- export function updateHeartbeat(crewRoot, runId) {
109
- const manifest = readManifest(crewRoot, runId);
109
+ export function updateHeartbeat(swarmRoot, runId) {
110
+ const manifest = readManifest(swarmRoot, runId);
110
111
  if (!manifest)
111
112
  return;
112
113
  if (manifest.status !== "running")
113
114
  return;
114
115
  manifest.lastHeartbeatAt = Date.now();
115
- updateManifest(crewRoot, manifest);
116
+ updateManifest(swarmRoot, manifest);
116
117
  }
117
118
  // ---------------------------------------------------------------------------
118
119
  // Task state
@@ -120,8 +121,8 @@ export function updateHeartbeat(crewRoot, runId) {
120
121
  /**
121
122
  * Persist task state (task graph) to disk.
122
123
  */
123
- export function saveTaskState(crewRoot, runId, data) {
124
- const dir = resolveRunStateDir(crewRoot, runId);
124
+ export function saveTaskState(swarmRoot, runId, data) {
125
+ const dir = resolveRunStateDir(swarmRoot, runId);
125
126
  fs.mkdirSync(dir, { recursive: true });
126
127
  writeAtomic(path.join(dir, "tasks.json"), JSON.stringify(data, null, 2));
127
128
  }
@@ -129,8 +130,8 @@ export function saveTaskState(crewRoot, runId, data) {
129
130
  * Load task state from disk.
130
131
  * Returns null if the file does not exist.
131
132
  */
132
- export function loadTaskState(crewRoot, runId) {
133
- const filePath = path.join(resolveRunStateDir(crewRoot, runId), "tasks.json");
133
+ export function loadTaskState(swarmRoot, runId) {
134
+ const filePath = path.join(resolveRunStateDir(swarmRoot, runId), "tasks.json");
134
135
  try {
135
136
  const raw = fs.readFileSync(filePath, "utf-8");
136
137
  return JSON.parse(raw);
@@ -145,8 +146,8 @@ export function loadTaskState(crewRoot, runId) {
145
146
  /**
146
147
  * Append an event to the run's event log.
147
148
  */
148
- export function appendEvent(crewRoot, runId, event) {
149
- const dir = resolveRunStateDir(crewRoot, runId);
149
+ export function appendEvent(swarmRoot, runId, event) {
150
+ const dir = resolveRunStateDir(swarmRoot, runId);
150
151
  fs.mkdirSync(dir, { recursive: true });
151
152
  const filePath = path.join(dir, "events.jsonl");
152
153
  const line = JSON.stringify(event) + "\n";
@@ -155,8 +156,8 @@ export function appendEvent(crewRoot, runId, event) {
155
156
  /**
156
157
  * Read all events from the run's event log.
157
158
  */
158
- export function readEvents(crewRoot, runId) {
159
- const filePath = path.join(resolveRunStateDir(crewRoot, runId), "events.jsonl");
159
+ export function readEvents(swarmRoot, runId) {
160
+ const filePath = path.join(resolveRunStateDir(swarmRoot, runId), "events.jsonl");
160
161
  try {
161
162
  const raw = fs.readFileSync(filePath, "utf-8");
162
163
  if (!raw.trim())
@@ -184,16 +185,16 @@ export function readEvents(crewRoot, runId) {
184
185
  /**
185
186
  * Save per-agent status.
186
187
  */
187
- export function saveAgentStatus(crewRoot, runId, agentId, status) {
188
- const dir = resolveAgentStateDir(crewRoot, runId, agentId);
188
+ export function saveAgentStatus(swarmRoot, runId, agentId, status) {
189
+ const dir = resolveAgentStateDir(swarmRoot, runId, agentId);
189
190
  fs.mkdirSync(dir, { recursive: true });
190
191
  writeAtomic(path.join(dir, "status.json"), JSON.stringify(status, null, 2));
191
192
  }
192
193
  /**
193
194
  * Load per-agent status.
194
195
  */
195
- export function loadAgentStatus(crewRoot, runId, agentId) {
196
- const filePath = path.join(resolveAgentStateDir(crewRoot, runId, agentId), "status.json");
196
+ export function loadAgentStatus(swarmRoot, runId, agentId) {
197
+ const filePath = path.join(resolveAgentStateDir(swarmRoot, runId, agentId), "status.json");
197
198
  try {
198
199
  const raw = fs.readFileSync(filePath, "utf-8");
199
200
  return JSON.parse(raw);
@@ -206,8 +207,8 @@ export function loadAgentStatus(crewRoot, runId, agentId) {
206
207
  * List all active run IDs in the state directory.
207
208
  * Only returns IDs that match the safe ID pattern.
208
209
  */
209
- export function listActiveRuns(crewRoot) {
210
- const runsDir = path.join(crewRoot, "state", "runs");
210
+ export function listActiveRuns(swarmRoot) {
211
+ const runsDir = path.join(swarmRoot, "state", "runs");
211
212
  if (!fs.existsSync(runsDir))
212
213
  return [];
213
214
  return fs
@@ -227,8 +228,8 @@ export function listActiveRuns(crewRoot) {
227
228
  /**
228
229
  * Delete the entire run state directory.
229
230
  */
230
- export function deleteRunState(crewRoot, runId) {
231
- const dir = resolveRunStateDir(crewRoot, runId);
231
+ export function deleteRunState(swarmRoot, runId) {
232
+ const dir = resolveRunStateDir(swarmRoot, runId);
232
233
  if (fs.existsSync(dir)) {
233
234
  fs.rmSync(dir, { recursive: true, force: true });
234
235
  }
@@ -1 +1 @@
1
- {"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../src/state/persistence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../src/state/persistence.ts"],"names":[],"mappings":"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"}
@@ -26,10 +26,10 @@ export declare function recoverRuns(cwd: string): RecoveryResult;
26
26
  * Check whether a run has unfinished tasks.
27
27
  * Used to decide whether to offer resume or start fresh.
28
28
  */
29
- export declare function hasUnfinishedTasks(crewRoot: string, runId: string): boolean;
29
+ export declare function hasUnfinishedTasks(swarmRoot: string, runId: string): boolean;
30
30
  /**
31
31
  * Get resumable agent IDs from a run.
32
32
  * Returns a map of agentId → last known status.
33
33
  */
34
- export declare function getResumableAgents(crewRoot: string, runId: string): Map<string, string>;
34
+ export declare function getResumableAgents(swarmRoot: string, runId: string): Map<string, string>;
35
35
  //# sourceMappingURL=recovery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"recovery.d.ts","sourceRoot":"","sources":["../../src/state/recovery.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAOL,KAAK,WAAW,EAEjB,MAAM,kBAAkB,CAAC;AAgB1B,MAAM,WAAW,cAAc;IAC7B,gDAAgD;IAChD,QAAQ,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC;IAClC,sDAAsD;IACtD,QAAQ,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC;IAClC,0DAA0D;IAC1D,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAqFvD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,OAAO,CA+BT;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAyBrB"}
1
+ {"version":3,"file":"recovery.d.ts","sourceRoot":"","sources":["../../src/state/recovery.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAOL,KAAK,WAAW,EAEjB,MAAM,kBAAkB,CAAC;AAgB1B,MAAM,WAAW,cAAc;IAC7B,gDAAgD;IAChD,QAAQ,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC;IAClC,sDAAsD;IACtD,QAAQ,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC;IAClC,0DAA0D;IAC1D,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAqFvD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CA0B5E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAyBrB"}
@@ -7,7 +7,7 @@
7
7
  */
8
8
  import * as fs from "node:fs";
9
9
  import * as path from "node:path";
10
- import { resolveCrewRoot, listActiveRuns, readManifest, updateManifest, deleteRunState, loadAgentStatus, appendEvent, } from "./persistence.js";
10
+ import { resolveSwarmRoot, listActiveRuns, readManifest, updateManifest, deleteRunState, loadAgentStatus, appendEvent, } from "./persistence.js";
11
11
  // ---------------------------------------------------------------------------
12
12
  // Constants
13
13
  // ---------------------------------------------------------------------------
@@ -23,22 +23,22 @@ const STALE_RUN_THRESHOLD_MS = 30 * 60 * 1000; // 30 minutes
23
23
  * - Returns lists of resumable and abandoned runs.
24
24
  */
25
25
  export function recoverRuns(cwd) {
26
- const crewRoot = resolveCrewRoot(cwd);
27
- const runsDir = path.join(crewRoot, "state", "runs");
26
+ const swarmRoot = resolveSwarmRoot(cwd);
27
+ const runsDir = path.join(swarmRoot, "state", "runs");
28
28
  if (!fs.existsSync(runsDir)) {
29
29
  return { resumable: [], abandoned: [], cleanedUp: [] };
30
30
  }
31
- const runIds = listActiveRuns(crewRoot);
31
+ const runIds = listActiveRuns(swarmRoot);
32
32
  const now = Date.now();
33
33
  const resumable = [];
34
34
  const abandoned = [];
35
35
  const cleanedUp = [];
36
36
  for (const runId of runIds) {
37
- const manifest = readManifest(crewRoot, runId);
37
+ const manifest = readManifest(swarmRoot, runId);
38
38
  if (!manifest) {
39
39
  // Orphaned directory — clean up
40
40
  try {
41
- deleteRunState(crewRoot, runId);
41
+ deleteRunState(swarmRoot, runId);
42
42
  cleanedUp.push(runId);
43
43
  }
44
44
  catch {
@@ -58,8 +58,8 @@ export function recoverRuns(cwd) {
58
58
  status: "abandoned",
59
59
  completedAt: now,
60
60
  };
61
- updateManifest(crewRoot, updated);
62
- appendEvent(crewRoot, runId, {
61
+ updateManifest(swarmRoot, updated);
62
+ appendEvent(swarmRoot, runId, {
63
63
  type: "run.abandoned",
64
64
  reason: "stale",
65
65
  timestamp: new Date().toISOString(),
@@ -79,7 +79,7 @@ export function recoverRuns(cwd) {
79
79
  const age = now - completedAt;
80
80
  if (age > COMPLETED_RUN_RETENTION_MS) {
81
81
  try {
82
- deleteRunState(crewRoot, runId);
82
+ deleteRunState(swarmRoot, runId);
83
83
  cleanedUp.push(runId);
84
84
  }
85
85
  catch {
@@ -94,7 +94,7 @@ export function recoverRuns(cwd) {
94
94
  const abandonedAt = manifest.completedAt ?? manifest.startedAt;
95
95
  if (now - abandonedAt > COMPLETED_RUN_RETENTION_MS) {
96
96
  try {
97
- deleteRunState(crewRoot, runId);
97
+ deleteRunState(swarmRoot, runId);
98
98
  cleanedUp.push(runId);
99
99
  }
100
100
  catch {
@@ -111,8 +111,8 @@ export function recoverRuns(cwd) {
111
111
  * Check whether a run has unfinished tasks.
112
112
  * Used to decide whether to offer resume or start fresh.
113
113
  */
114
- export function hasUnfinishedTasks(crewRoot, runId) {
115
- const manifest = readManifest(crewRoot, runId);
114
+ export function hasUnfinishedTasks(swarmRoot, runId) {
115
+ const manifest = readManifest(swarmRoot, runId);
116
116
  if (!manifest)
117
117
  return false;
118
118
  if (manifest.status === "completed")
@@ -120,15 +120,16 @@ export function hasUnfinishedTasks(crewRoot, runId) {
120
120
  if (manifest.status !== "running")
121
121
  return false;
122
122
  // Check if any agent status files indicate unfinished work
123
- const agentsDir = path.join(crewRoot, "state", "runs", runId, "agents");
123
+ const agentsDir = path.join(swarmRoot, "state", "runs", runId, "agents");
124
124
  if (!fs.existsSync(agentsDir))
125
125
  return true;
126
126
  // Check each agent directory for non-terminal status
127
- const agentDirs = fs.readdirSync(agentsDir, { withFileTypes: true })
127
+ const agentDirs = fs
128
+ .readdirSync(agentsDir, { withFileTypes: true })
128
129
  .filter((d) => d.isDirectory())
129
130
  .map((d) => d.name);
130
131
  for (const agentId of agentDirs) {
131
- const status = loadAgentStatus(crewRoot, runId, agentId);
132
+ const status = loadAgentStatus(swarmRoot, runId, agentId);
132
133
  if (!status)
133
134
  return true;
134
135
  const state = String(status.status ?? status.state ?? "");
@@ -142,13 +143,13 @@ export function hasUnfinishedTasks(crewRoot, runId) {
142
143
  * Get resumable agent IDs from a run.
143
144
  * Returns a map of agentId → last known status.
144
145
  */
145
- export function getResumableAgents(crewRoot, runId) {
146
- const manifest = readManifest(crewRoot, runId);
146
+ export function getResumableAgents(swarmRoot, runId) {
147
+ const manifest = readManifest(swarmRoot, runId);
147
148
  const result = new Map();
148
149
  if (!manifest)
149
150
  return result;
150
151
  for (const agentId of manifest.agentIds) {
151
- const statusDir = path.join(crewRoot, "state", "runs", runId, "agents", agentId);
152
+ const statusDir = path.join(swarmRoot, "state", "runs", runId, "agents", agentId);
152
153
  if (fs.existsSync(statusDir)) {
153
154
  // Agent has state on disk — it can be resumed
154
155
  result.set(agentId, "resumable");
@@ -1 +1 @@
1
- {"version":3,"file":"recovery.js","sourceRoot":"","sources":["../../src/state/recovery.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EACL,eAAe,EACf,cAAc,EACd,YAAY,EACZ,cAAc,EACd,cAAc,EACd,eAAe,EAEf,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAE1B,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,0EAA0E;AAC1E,MAAM,0BAA0B,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,SAAS;AAErE,gFAAgF;AAChF,MAAM,sBAAsB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;AAe5D;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAErD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IACzD,CAAC;IAED,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,SAAS,GAAkB,EAAE,CAAC;IACpC,MAAM,SAAS,GAAkB,EAAE,CAAC;IACpC,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,gCAAgC;YAChC,IAAI,CAAC;gBACH,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAChC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;YAAC,MAAM,CAAC;gBACP,cAAc;YAChB,CAAC;YACD,SAAS;QACX,CAAC;QAED,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;YACxB,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,wDAAwD;gBACxD,MAAM,YAAY,GAAG,QAAQ,CAAC,eAAe,IAAI,QAAQ,CAAC,SAAS,CAAC;gBACpE,MAAM,GAAG,GAAG,GAAG,GAAG,YAAY,CAAC;gBAC/B,IAAI,GAAG,GAAG,sBAAsB,EAAE,CAAC;oBACjC,oBAAoB;oBACpB,MAAM,OAAO,GAAgB;wBAC3B,GAAG,QAAQ;wBACX,MAAM,EAAE,WAAW;wBACnB,WAAW,EAAE,GAAG;qBACjB,CAAC;oBACF,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBAClC,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE;wBAC3B,IAAI,EAAE,eAAe;wBACrB,MAAM,EAAE,OAAO;wBACf,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;qBACpC,CAAC,CAAC;oBACH,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACN,8BAA8B;oBAC9B,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC3B,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,WAAW,CAAC;YACjB,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,wBAAwB;gBACxB,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,SAAS,CAAC;gBAC/D,MAAM,GAAG,GAAG,GAAG,GAAG,WAAW,CAAC;gBAC9B,IAAI,GAAG,GAAG,0BAA0B,EAAE,CAAC;oBACrC,IAAI,CAAC;wBACH,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;wBAChC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACxB,CAAC;oBAAC,MAAM,CAAC;wBACP,cAAc;oBAChB,CAAC;gBACH,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,WAAW;gBACd,kDAAkD;gBAClD,CAAC;oBACC,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,SAAS,CAAC;oBAC/D,IAAI,GAAG,GAAG,WAAW,GAAG,0BAA0B,EAAE,CAAC;wBACnD,IAAI,CAAC;4BACH,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;4BAChC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACxB,CAAC;wBAAC,MAAM,CAAC;4BACP,cAAc;wBAChB,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,MAAM;QACV,CAAC;IACH,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAC7C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAgB,EAChB,KAAa;IAEb,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC/C,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IAClD,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAEhD,2DAA2D;IAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CACzB,QAAQ,EACR,OAAO,EACP,MAAM,EACN,KAAK,EACL,QAAQ,CACT,CAAC;IACF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAE3C,qDAAqD;IACrD,MAAM,SAAS,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;SACjE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAEtB,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAC1D,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YAC/D,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAgB,EAChB,KAAa;IAEb,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEzC,IAAI,CAAC,QAAQ;QAAE,OAAO,MAAM,CAAC;IAE7B,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CACzB,QAAQ,EACR,OAAO,EACP,MAAM,EACN,KAAK,EACL,QAAQ,EACR,OAAO,CACR,CAAC;QACF,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,8CAA8C;YAC9C,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,0BAA0B;YAC1B,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"recovery.js","sourceRoot":"","sources":["../../src/state/recovery.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/swarm/command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,YAAY,EAA2B,MAAM,iCAAiC,CAAC;AAC7F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAMlD,MAAM,WAAW,gBAAgB;IAC/B,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAC1B,gCAAgC;IAChC,WAAW,EAAE,OAAO,CAAC;IACrB,4BAA4B;IAC5B,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACjE,4BAA4B;IAC5B,uCAAuC;IACvC,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,yCAAyC;IACzC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,yCAAyC;IACzC,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,sCAAsC;IACtC,QAAQ,IAAI,OAAO,CAAC;IACpB,uCAAuC;IACvC,iBAAiB,IAAI,MAAM,CAAC;IAC5B,+BAA+B;IAC/B,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD;AAED,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,YAAY,EAChB,IAAI,EAAE,gBAAgB,GACrB,IAAI,CAmCN"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/swarm/command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,YAAY,EAEb,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAMlD,MAAM,WAAW,gBAAgB;IAC/B,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAC1B,gCAAgC;IAChC,WAAW,EAAE,OAAO,CAAC;IACrB,4BAA4B;IAC5B,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACjE,4BAA4B;IAC5B,uCAAuC;IACvC,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,yCAAyC;IACzC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,yCAAyC;IACzC,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,sCAAsC;IACtC,QAAQ,IAAI,OAAO,CAAC;IACpB,uCAAuC;IACvC,iBAAiB,IAAI,MAAM,CAAC;IAC5B,+BAA+B;IAC/B,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD;AAED,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,YAAY,EAChB,IAAI,EAAE,gBAAgB,GACrB,IAAI,CA8BN"}
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/swarm/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/swarm/command.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mode.d.ts","sourceRoot":"","sources":["../../src/swarm/mode.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,oCAAoC;AACpC,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1D;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE;QAChB;;;WAGG;QACH,oBAAoB,CAClB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,GACxC,IAAI,CAAC;QACR;;;WAGG;QACH,iBAAiB,CACf,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,GACtC,OAAO,CAAC;KACZ,CAAC;IACF,kCAAkC;IAClC,iBAAiB,IAAI,IAAI,CAAC;IAC1B,6CAA6C;IAC7C,OAAO,EAAE;QACP,SAAS,CAAC,KAAK,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC;KAC5D,CAAC;CACH;AA0BD,qBAAa,SAAS;IAGR,OAAO,CAAC,QAAQ,CAAC,KAAK;IAFlC,OAAO,CAAC,MAAM,CAAiC;gBAElB,KAAK,EAAE,cAAc;IAElD,wEAAwE;IACxE,KAAK,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAmBtC,+EAA+E;IAC/E,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAI7C,4CAA4C;IAC5C,IAAI,IAAI,IAAI;IAgCZ,8CAA8C;IAC9C,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,uEAAuE;IACvE,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED,kDAAkD;IAClD,IAAI,cAAc,IAAI,gBAAgB,GAAG,IAAI,CAE5C;CACF"}
1
+ {"version":3,"file":"mode.d.ts","sourceRoot":"","sources":["../../src/swarm/mode.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,oCAAoC;AACpC,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1D;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE;QAChB;;;WAGG;QACH,oBAAoB,CAClB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,GACxC,IAAI,CAAC;QACR;;;WAGG;QACH,iBAAiB,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,GAAG,OAAO,CAAC;KACrE,CAAC;IACF,kCAAkC;IAClC,iBAAiB,IAAI,IAAI,CAAC;IAC1B,6CAA6C;IAC7C,OAAO,EAAE;QACP,SAAS,CAAC,KAAK,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC;KAC5D,CAAC;CACH;AA0BD,qBAAa,SAAS;IAGR,OAAO,CAAC,QAAQ,CAAC,KAAK;IAFlC,OAAO,CAAC,MAAM,CAAiC;gBAElB,KAAK,EAAE,cAAc;IAElD,wEAAwE;IACxE,KAAK,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAmBtC,+EAA+E;IAC/E,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAI7C,4CAA4C;IAC5C,IAAI,IAAI,IAAI;IA2BZ,8CAA8C;IAC9C,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,uEAAuE;IACvE,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED,kDAAkD;IAClD,IAAI,cAAc,IAAI,gBAAgB,GAAG,IAAI,CAE5C;CACF"}
@@ -42,7 +42,10 @@ export class SwarmMode {
42
42
  });
43
43
  this.active = trigger;
44
44
  if (trigger !== "tool") {
45
- this.agent.context.appendSystemReminder(SWARM_MODE_ENTER_REMINDER, { kind: "injection", variant: "swarm_mode" });
45
+ this.agent.context.appendSystemReminder(SWARM_MODE_ENTER_REMINDER, {
46
+ kind: "injection",
47
+ variant: "swarm_mode",
48
+ });
46
49
  }
47
50
  this.agent.emitStatusUpdated();
48
51
  }
@@ -63,13 +66,15 @@ export class SwarmMode {
63
66
  // Try to pop the enter reminder first
64
67
  if (this.agent.context.popMatchedMessage((origin) => {
65
68
  const o = origin;
66
- return (o?.kind === "injection" &&
67
- o?.variant === "swarm_mode");
69
+ return o?.kind === "injection" && o?.variant === "swarm_mode";
68
70
  })) {
69
71
  return;
70
72
  }
71
73
  // If we couldn't pop it, inject an exit reminder
72
- this.agent.context.appendSystemReminder(SWARM_MODE_EXIT_REMINDER, { kind: "injection", variant: "swarm_mode_exit" });
74
+ this.agent.context.appendSystemReminder(SWARM_MODE_EXIT_REMINDER, {
75
+ kind: "injection",
76
+ variant: "swarm_mode_exit",
77
+ });
73
78
  }
74
79
  /** Whether swarm mode is currently active. */
75
80
  get isActive() {
@@ -1 +1 @@
1
- {"version":3,"file":"mode.js","sourceRoot":"","sources":["../../src/swarm/mode.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAmCH,8EAA8E;AAC9E,6CAA6C;AAC7C,8EAA8E;AAE9E,MAAM,yBAAyB,GAAG;;;;;;;;CAQjC,CAAC,IAAI,EAAE,CAAC;AAET,MAAM,wBAAwB,GAAG;;;;CAIhC,CAAC,IAAI,EAAE,CAAC;AAET,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,OAAO,SAAS;IAGS;IAFrB,MAAM,GAA4B,IAAI,CAAC;IAE/C,YAA6B,KAAqB;QAArB,UAAK,GAAL,KAAK,CAAgB;IAAG,CAAC;IAEtD,wEAAwE;IACxE,KAAK,CAAC,OAAyB;QAC7B,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI;YAAE,OAAO;QAEjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;YAC3B,IAAI,EAAE,kBAAkB;YACxB,OAAO;SACR,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QAEtB,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,oBAAoB,CACrC,yBAAyB,EACzB,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,CAC7C,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;IACjC,CAAC;IAED,+EAA+E;IAC/E,YAAY,CAAC,OAAyB;QACpC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;IACxB,CAAC;IAED,4CAA4C;IAC5C,IAAI;QACF,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI;YAAE,OAAO;QAEjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAE/B,IAAI,OAAO,KAAK,MAAM;YAAE,OAAO;QAE/B,sCAAsC;QACtC,IACE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAClC,CAAC,MAAe,EAAE,EAAE;YAClB,MAAM,CAAC,GAAG,MAAoD,CAAC;YAC/D,OAAO,CACL,CAAC,EAAE,IAAI,KAAK,WAAW;gBACvB,CAAC,EAAE,OAAO,KAAK,YAAY,CAC5B,CAAC;QACJ,CAAC,CACF,EACD,CAAC;YACD,OAAO;QACT,CAAC;QAED,iDAAiD;QACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,oBAAoB,CACrC,wBAAwB,EACxB,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAClD,CAAC;IACJ,CAAC;IAED,8CAA8C;IAC9C,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC;IAC9B,CAAC;IAED,uEAAuE;IACvE,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC;IAC1D,CAAC;IAED,kDAAkD;IAClD,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF"}
1
+ {"version":3,"file":"mode.js","sourceRoot":"","sources":["../../src/swarm/mode.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAiCH,8EAA8E;AAC9E,6CAA6C;AAC7C,8EAA8E;AAE9E,MAAM,yBAAyB,GAAG;;;;;;;;CAQjC,CAAC,IAAI,EAAE,CAAC;AAET,MAAM,wBAAwB,GAAG;;;;CAIhC,CAAC,IAAI,EAAE,CAAC;AAET,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,OAAO,SAAS;IAGS;IAFrB,MAAM,GAA4B,IAAI,CAAC;IAE/C,YAA6B,KAAqB;QAArB,UAAK,GAAL,KAAK,CAAgB;IAAG,CAAC;IAEtD,wEAAwE;IACxE,KAAK,CAAC,OAAyB;QAC7B,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI;YAAE,OAAO;QAEjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;YAC3B,IAAI,EAAE,kBAAkB;YACxB,OAAO;SACR,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QAEtB,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC,yBAAyB,EAAE;gBACjE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,YAAY;aACtB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;IACjC,CAAC;IAED,+EAA+E;IAC/E,YAAY,CAAC,OAAyB;QACpC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;IACxB,CAAC;IAED,4CAA4C;IAC5C,IAAI;QACF,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI;YAAE,OAAO;QAEjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAE/B,IAAI,OAAO,KAAK,MAAM;YAAE,OAAO;QAE/B,sCAAsC;QACtC,IACE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,MAAe,EAAE,EAAE;YACvD,MAAM,CAAC,GAAG,MAAoD,CAAC;YAC/D,OAAO,CAAC,EAAE,IAAI,KAAK,WAAW,IAAI,CAAC,EAAE,OAAO,KAAK,YAAY,CAAC;QAChE,CAAC,CAAC,EACF,CAAC;YACD,OAAO;QACT,CAAC;QAED,iDAAiD;QACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC,wBAAwB,EAAE;YAChE,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,iBAAiB;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,8CAA8C;IAC9C,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC;IAC9B,CAAC;IAED,uEAAuE;IACvE,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC;IAC1D,CAAC;IAED,kDAAkD;IAClD,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/swarm/tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,iCAAiC,CAAC;AAiDtF,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,YAAY,GACf,IAAI,CAqJN"}
1
+ {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/swarm/tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,YAAY,EAEb,MAAM,iCAAiC,CAAC;AAkDzC,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAwO7D"}
@@ -7,6 +7,7 @@
7
7
  * Ported from MoonshotAI/kimi-code's AgentSwarmTool.
8
8
  */
9
9
  import { Type } from "typebox";
10
+ import { Container, Spacer, Text } from "@earendil-works/pi-tui";
10
11
  import { SubagentBatchController, resolveSwarmMaxConcurrency, } from "../shared/controller.js";
11
12
  import { renderSwarmResults, toSwarmRunResults } from "../shared/render.js";
12
13
  import { spawnSubagent, resumeSubagent, retrySubagent, } from "../shared/spawner.js";
@@ -56,12 +57,11 @@ export function registerAgentSwarmTool(pi) {
56
57
  })),
57
58
  }, { additionalProperties: false }),
58
59
  execute: async (toolCallId, params, signal, _onUpdate, ctxRaw) => {
59
- const { description, subagent_type, prompt_template, items, resume_agent_ids } = params;
60
+ const { description, subagent_type, prompt_template, items, resume_agent_ids, } = params;
60
61
  const ctx = ctxRaw;
61
62
  const progress = createProgressWidget(ctx);
62
63
  try {
63
- const profileName = normalizeOptionalString(subagent_type) ??
64
- DEFAULT_SUBAGENT_TYPE;
64
+ const profileName = normalizeOptionalString(subagent_type) ?? DEFAULT_SUBAGENT_TYPE;
65
65
  // Build specs
66
66
  const specs = createAgentSwarmSpecs({
67
67
  items,
@@ -97,7 +97,11 @@ export function registerAgentSwarmTool(pi) {
97
97
  });
98
98
  // Run with controller
99
99
  const maxConcurrency = resolveSwarmMaxConcurrency(process.cwd());
100
- const controller = new SubagentBatchController({ spawn: spawnSubagent, resume: resumeSubagent, retry: retrySubagent }, tasks, {
100
+ const controller = new SubagentBatchController({
101
+ spawn: spawnSubagent,
102
+ resume: resumeSubagent,
103
+ retry: retrySubagent,
104
+ }, tasks, {
101
105
  maxConcurrency,
102
106
  onProgress: (snapshot) => {
103
107
  progress?.component.update(snapshotToProgressState(snapshot, description));
@@ -128,6 +132,63 @@ export function registerAgentSwarmTool(pi) {
128
132
  clearProgressWidget(ctx);
129
133
  }
130
134
  },
135
+ // -------------------------------------------------------------------
136
+ // Custom TUI rendering
137
+ // -------------------------------------------------------------------
138
+ /**
139
+ * Render the tool call in the conversation transcript with arg summary.
140
+ * 业务说明:在对话记录中展示 swarm 调用信息 —— 包含类型、数量、
141
+ * prompt 模板预览。
142
+ */
143
+ renderCall(args, theme, _context) {
144
+ const subagentType = args.subagent_type || "coder";
145
+ const itemCount = args.items?.length ?? 0;
146
+ const resumeCount = Object.keys(args.resume_agent_ids ?? {}).length;
147
+ const totalCount = itemCount + resumeCount;
148
+ const hasResume = resumeCount > 0;
149
+ const container = new Container();
150
+ const title = `${theme.fg("toolTitle", theme.bold("swarm "))}${theme.fg("accent", `${totalCount} agent${totalCount !== 1 ? "s" : ""}`)}${hasResume ? theme.fg("warning", ` (${resumeCount} resume)`) : ""}${theme.fg("muted", ` [${subagentType}]`)}`;
151
+ container.addChild(new Text(title, 0, 0));
152
+ const desc = args.description;
153
+ if (desc) {
154
+ container.addChild(new Spacer(1));
155
+ container.addChild(new Text(theme.fg("dim", desc.length > 80 ? `${desc.slice(0, 80)}...` : desc), 0, 0));
156
+ }
157
+ const templatePreview = args.prompt_template;
158
+ if (templatePreview) {
159
+ container.addChild(new Spacer(1));
160
+ const preview = templatePreview.length > 60
161
+ ? `${templatePreview.slice(0, 60)}...`
162
+ : templatePreview;
163
+ container.addChild(new Text(theme.fg("muted", `${preview}`), 0, 0));
164
+ }
165
+ return container;
166
+ },
167
+ /**
168
+ * Render the tool result in the conversation transcript.
169
+ * 业务说明:根据执行结果展示成功/失败图标和概要统计。
170
+ */
171
+ renderResult(result, _options, theme, context) {
172
+ const text = result.content[0]?.type === "text"
173
+ ? result.content[0].text
174
+ : "";
175
+ const icon = context.isError
176
+ ? theme.fg("error", "x")
177
+ : theme.fg("success", "V");
178
+ // Extract summary stats from the XML output
179
+ const completedMatch = /completed="(\d+)"/.exec(text);
180
+ const failedMatch = /failed="(\d+)"/.exec(text);
181
+ const completed = completedMatch ? completedMatch[1] : "?";
182
+ const failed = failedMatch ? failedMatch[1] : "?";
183
+ const container = new Container();
184
+ container.addChild(new Text(`${icon} ${theme.fg("toolTitle", "swarm ")}${theme.fg("accent", `done: ${completed}`)}${failed !== "0" ? theme.fg("error", ` failed: ${failed}`) : ""}`, 0, 0));
185
+ if (context.isError && text) {
186
+ container.addChild(new Spacer(1));
187
+ const errorPreview = text.length > 100 ? `${text.slice(0, 100)}...` : text;
188
+ container.addChild(new Text(theme.fg("error", errorPreview), 0, 0));
189
+ }
190
+ return container;
191
+ },
131
192
  });
132
193
  }
133
194
  // ---------------------------------------------------------------------------
@@ -213,6 +274,10 @@ function normalizeOptionalString(value) {
213
274
  * 业务说明:在 TUI 模式下注册一个实时进度面板,展示每个子 Agent 的
214
275
  * 运行状态(队列/运行中/完成/失败/限流挂起)。非 TUI 模式下返回
215
276
  * undefined,避免无意义的 UI 调用。
277
+ *
278
+ * 关键修复:setWidget 的工厂函数接收 (tui, theme) 参数,我们捕获 tui
279
+ * 引用并传给组件,使组件在动画定时器触发时能调用 tui.requestRender()
280
+ * 通知 TUI 框架重绘,否则 braille 进度条不会动。
216
281
  */
217
282
  function createProgressWidget(ctx) {
218
283
  // 仅在 TUI 模式下展示进度面板;其他模式(print/rpc/json)无可用 UI
@@ -221,10 +286,19 @@ function createProgressWidget(ctx) {
221
286
  const setWidget = ctx.ui?.setWidget;
222
287
  if (typeof setWidget !== "function")
223
288
  return undefined;
224
- const component = new AgentSwarmProgressComponent();
289
+ // 捕获 tui 引用,供组件动画 tick 时调用 requestRender()
290
+ let capturedTui;
291
+ const component = new AgentSwarmProgressComponent(() => {
292
+ capturedTui?.requestRender();
293
+ });
225
294
  try {
226
- // 工厂函数返回预先创建的组件实例;TUI 框架会在刷新周期调用 render
227
- setWidget(PROGRESS_WIDGET_KEY, () => component, { placement: "aboveEditor" });
295
+ // 工厂函数接收 tui 和 theme,捕获 tui 供动画驱动使用
296
+ setWidget(PROGRESS_WIDGET_KEY, (tui, _theme) => {
297
+ capturedTui = tui;
298
+ return component;
299
+ }, {
300
+ placement: "aboveEditor",
301
+ });
228
302
  }
229
303
  catch {
230
304
  // setWidget 失败不应阻断 swarm 执行