@gjczone/pi-swarm 0.1.5 → 0.2.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.
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +57 -2
- package/dist/index.js.map +1 -1
- package/dist/shared/controller.d.ts +5 -2
- package/dist/shared/controller.d.ts.map +1 -1
- package/dist/shared/controller.js +99 -28
- package/dist/shared/controller.js.map +1 -1
- package/dist/shared/render.d.ts +2 -2
- package/dist/shared/render.js +3 -3
- package/dist/shared/spawner.d.ts +1 -1
- package/dist/shared/spawner.d.ts.map +1 -1
- package/dist/shared/spawner.js +237 -132
- package/dist/shared/spawner.js.map +1 -1
- package/dist/shared/types.d.ts +21 -0
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/state/persistence.d.ts +7 -0
- package/dist/state/persistence.d.ts.map +1 -1
- package/dist/state/persistence.js +53 -3
- package/dist/state/persistence.js.map +1 -1
- package/dist/state/recovery.d.ts.map +1 -1
- package/dist/state/recovery.js +21 -7
- package/dist/state/recovery.js.map +1 -1
- package/dist/swarm/tool.d.ts.map +1 -1
- package/dist/swarm/tool.js +69 -2
- package/dist/swarm/tool.js.map +1 -1
- package/dist/team/command.d.ts +3 -2
- package/dist/team/command.d.ts.map +1 -1
- package/dist/team/command.js +24 -7
- package/dist/team/command.js.map +1 -1
- package/dist/team/mailbox.d.ts +1 -1
- package/dist/team/mailbox.d.ts.map +1 -1
- package/dist/team/mailbox.js +31 -10
- package/dist/team/mailbox.js.map +1 -1
- package/dist/team/supervisor.d.ts +17 -2
- package/dist/team/supervisor.d.ts.map +1 -1
- package/dist/team/supervisor.js +123 -13
- package/dist/team/supervisor.js.map +1 -1
- package/dist/team/tool.d.ts +2 -2
- package/dist/team/tool.d.ts.map +1 -1
- package/dist/team/tool.js +26 -18
- package/dist/team/tool.js.map +1 -1
- package/dist/tui/progress.d.ts +10 -0
- package/dist/tui/progress.d.ts.map +1 -1
- package/dist/tui/progress.js +47 -0
- package/dist/tui/progress.js.map +1 -1
- package/package.json +3 -3
package/dist/team/supervisor.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* and synthesizes the final result.
|
|
7
7
|
*/
|
|
8
8
|
import { TaskGraph, DEFAULT_TEAM_PHASES, } from "./task-graph.js";
|
|
9
|
-
import { resolveMailboxPaths, ensureMailbox, } from "./mailbox.js";
|
|
9
|
+
import { resolveMailboxPaths, ensureMailbox, sendMessage, readTaskInbox, updateDeliveryState, } from "./mailbox.js";
|
|
10
10
|
// ---------------------------------------------------------------------------
|
|
11
11
|
// Supervisor
|
|
12
12
|
// ---------------------------------------------------------------------------
|
|
@@ -62,6 +62,22 @@ export class TeamSupervisor {
|
|
|
62
62
|
const result = this.state.taskGraph.startPhase(phase.phase.name);
|
|
63
63
|
if (!result.ok)
|
|
64
64
|
return null;
|
|
65
|
+
// Send task assignment message to the role's mailbox
|
|
66
|
+
const assignmentMessage = {
|
|
67
|
+
messageId: this.generateMessageId(),
|
|
68
|
+
runId: this.state.runId,
|
|
69
|
+
timestamp: new Date().toISOString(),
|
|
70
|
+
from: "supervisor",
|
|
71
|
+
to: phase.phase.role,
|
|
72
|
+
type: "task_assignment",
|
|
73
|
+
payload: {
|
|
74
|
+
phase: phase.phase.name,
|
|
75
|
+
goal: this.config.goal,
|
|
76
|
+
dependsOn: phase.phase.dependsOn ?? [],
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
sendMessage(this.mailboxPaths, assignmentMessage);
|
|
80
|
+
updateDeliveryState(this.mailboxPaths, assignmentMessage.messageId, "delivered");
|
|
65
81
|
const prompt = this.buildPhasePrompt(phase);
|
|
66
82
|
return {
|
|
67
83
|
phase,
|
|
@@ -70,26 +86,92 @@ export class TeamSupervisor {
|
|
|
70
86
|
};
|
|
71
87
|
}
|
|
72
88
|
/**
|
|
73
|
-
*
|
|
89
|
+
* Parse agent output for mailbox_message blocks and separate them from the result.
|
|
90
|
+
*/
|
|
91
|
+
parseAgentMessages(output) {
|
|
92
|
+
const messages = [];
|
|
93
|
+
const messageRegex = /<mailbox_message\s+to="([^"]+)">([\s\S]*?)<\/mailbox_message>/g;
|
|
94
|
+
let match;
|
|
95
|
+
while ((match = messageRegex.exec(output)) !== null) {
|
|
96
|
+
messages.push({
|
|
97
|
+
to: match[1].trim(),
|
|
98
|
+
content: match[2].trim(),
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
const result = output.replace(messageRegex, "").trim();
|
|
102
|
+
return { result, messages };
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Mark a phase as completed with its raw output.
|
|
106
|
+
* Parses messages from output, delivers them, and sends task_result broadcast.
|
|
74
107
|
*/
|
|
75
|
-
completePhase(name,
|
|
108
|
+
completePhase(name, rawOutput) {
|
|
109
|
+
const phase = this.state.taskGraph.getPhase(name);
|
|
110
|
+
if (!phase) {
|
|
111
|
+
return { result: rawOutput, deliveredMessages: 0 };
|
|
112
|
+
}
|
|
113
|
+
const { result, messages } = this.parseAgentMessages(rawOutput);
|
|
76
114
|
this.state.taskGraph.completePhase(name, result);
|
|
77
|
-
//
|
|
78
|
-
|
|
115
|
+
// Deliver parsed handoff messages
|
|
116
|
+
let deliveredCount = 0;
|
|
117
|
+
for (const msg of messages) {
|
|
118
|
+
try {
|
|
119
|
+
const handoffMessage = {
|
|
120
|
+
messageId: this.generateMessageId(),
|
|
121
|
+
runId: this.state.runId,
|
|
122
|
+
timestamp: new Date().toISOString(),
|
|
123
|
+
from: name,
|
|
124
|
+
to: msg.to,
|
|
125
|
+
type: "handoff",
|
|
126
|
+
payload: { content: msg.content },
|
|
127
|
+
};
|
|
128
|
+
sendMessage(this.mailboxPaths, handoffMessage);
|
|
129
|
+
updateDeliveryState(this.mailboxPaths, handoffMessage.messageId, "delivered");
|
|
130
|
+
deliveredCount++;
|
|
131
|
+
}
|
|
132
|
+
catch {
|
|
133
|
+
// Skip invalid messages
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
// Broadcast task result
|
|
137
|
+
const resultMessage = {
|
|
138
|
+
messageId: this.generateMessageId(),
|
|
139
|
+
runId: this.state.runId,
|
|
140
|
+
timestamp: new Date().toISOString(),
|
|
141
|
+
from: name,
|
|
142
|
+
to: "broadcast",
|
|
143
|
+
type: "task_result",
|
|
144
|
+
payload: { phase: name, result },
|
|
145
|
+
};
|
|
146
|
+
sendMessage(this.mailboxPaths, resultMessage);
|
|
147
|
+
updateDeliveryState(this.mailboxPaths, resultMessage.messageId, "broadcast");
|
|
148
|
+
return { result, deliveredMessages: deliveredCount };
|
|
149
|
+
}
|
|
150
|
+
generateMessageId() {
|
|
151
|
+
return `msg-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`;
|
|
79
152
|
}
|
|
80
153
|
/**
|
|
81
154
|
* Mark a phase as failed.
|
|
82
155
|
*/
|
|
83
156
|
failPhase(name, error) {
|
|
84
157
|
this.state.taskGraph.failPhase(name, error);
|
|
85
|
-
//
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
158
|
+
// BFS: skip all phases that depend (directly or transitively) on a failed/skipped phase
|
|
159
|
+
const queue = [name];
|
|
160
|
+
const visited = new Set();
|
|
161
|
+
while (queue.length > 0) {
|
|
162
|
+
const current = queue.shift();
|
|
163
|
+
if (visited.has(current))
|
|
89
164
|
continue;
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
this.state.taskGraph.
|
|
165
|
+
visited.add(current);
|
|
166
|
+
for (const otherName of this.state.taskGraph.getPhaseNames()) {
|
|
167
|
+
const other = this.state.taskGraph.getPhase(otherName);
|
|
168
|
+
if (!other || other.status !== "queued")
|
|
169
|
+
continue;
|
|
170
|
+
const deps = other.phase.dependsOn ?? [];
|
|
171
|
+
if (deps.includes(current)) {
|
|
172
|
+
this.state.taskGraph.skipPhase(otherName);
|
|
173
|
+
queue.push(otherName);
|
|
174
|
+
}
|
|
93
175
|
}
|
|
94
176
|
}
|
|
95
177
|
}
|
|
@@ -162,12 +244,40 @@ export class TeamSupervisor {
|
|
|
162
244
|
contextBlock = `\n\nContext from previous phases:\n${depResults}`;
|
|
163
245
|
}
|
|
164
246
|
}
|
|
247
|
+
// Read messages addressed to this role
|
|
248
|
+
let messagesBlock = "";
|
|
249
|
+
try {
|
|
250
|
+
const roleMessages = readTaskInbox(this.mailboxPaths, role);
|
|
251
|
+
const handoffMessages = roleMessages.filter((m) => m.type === "handoff" || m.type === "task_assignment");
|
|
252
|
+
if (handoffMessages.length > 0) {
|
|
253
|
+
const messageText = handoffMessages
|
|
254
|
+
.map((m) => `Message from ${m.from}:\n${String(m.payload.content ?? m.payload.phase ?? "")}`)
|
|
255
|
+
.join("\n\n");
|
|
256
|
+
messagesBlock = `\n\nMessages for you:\n${messageText}`;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
catch {
|
|
260
|
+
// Ignore mailbox read errors
|
|
261
|
+
}
|
|
165
262
|
return [
|
|
166
263
|
`You are the ${role} agent in a team working on: ${goal}`,
|
|
167
264
|
`Your current phase is: ${name}`,
|
|
168
265
|
contextBlock,
|
|
266
|
+
messagesBlock,
|
|
267
|
+
``,
|
|
268
|
+
`## Communication Protocol`,
|
|
269
|
+
``,
|
|
270
|
+
`You can send messages to other team members by including them in your output using this format:`,
|
|
271
|
+
``,
|
|
272
|
+
`<mailbox_message to="role_name">`,
|
|
273
|
+
`Your message content here.`,
|
|
274
|
+
`</mailbox_message>`,
|
|
275
|
+
``,
|
|
276
|
+
`You can address messages to: explorer, planner, coder, reviewer, tester, fixer, or broadcast.`,
|
|
277
|
+
`Messages are delivered after your phase completes.`,
|
|
278
|
+
``,
|
|
279
|
+
`Your final output (outside of mailbox_message tags) is your phase result.`,
|
|
169
280
|
`Complete the ${name} phase and write your result.`,
|
|
170
|
-
`Output only the result — no conversation.`,
|
|
171
281
|
]
|
|
172
282
|
.filter(Boolean)
|
|
173
283
|
.join("\n");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../../src/team/supervisor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../../src/team/supervisor.ts"],"names":[],"mappings":"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"}
|
package/dist/team/tool.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* team/tool —
|
|
2
|
+
* team/tool — SwarmTeam tool registration.
|
|
3
3
|
*
|
|
4
|
-
* Registers the `
|
|
4
|
+
* Registers the `SwarmTeam` tool that the LLM can call to orchestrate
|
|
5
5
|
* a team of role-based agents that collaborate via a shared mailbox.
|
|
6
6
|
*
|
|
7
7
|
* Inspired by pi-crew's team orchestration and CrewAI's hierarchical model.
|
package/dist/team/tool.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/team/tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/team/tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAqDpE,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,YAAY,GACf,IAAI,CA+PN"}
|
package/dist/team/tool.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* team/tool —
|
|
2
|
+
* team/tool — SwarmTeam tool registration.
|
|
3
3
|
*
|
|
4
|
-
* Registers the `
|
|
4
|
+
* Registers the `SwarmTeam` tool that the LLM can call to orchestrate
|
|
5
5
|
* a team of role-based agents that collaborate via a shared mailbox.
|
|
6
6
|
*
|
|
7
7
|
* Inspired by pi-crew's team orchestration and CrewAI's hierarchical model.
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
import { Type } from "typebox";
|
|
10
10
|
import { SubagentBatchController, } from "../shared/controller.js";
|
|
11
11
|
import { spawnSubagent, resumeSubagent, retrySubagent, } from "../shared/spawner.js";
|
|
12
|
+
import { resolveCrewRoot, createManifest, saveTaskState, updateHeartbeat, } from "../state/persistence.js";
|
|
12
13
|
import { TeamSupervisor } from "./supervisor.js";
|
|
13
14
|
// ---------------------------------------------------------------------------
|
|
14
15
|
// Constants
|
|
@@ -16,9 +17,9 @@ import { TeamSupervisor } from "./supervisor.js";
|
|
|
16
17
|
const DEFAULT_SUBAGENT_TIMEOUT_MS = 30 * 60 * 1000;
|
|
17
18
|
const AGENT_TEAM_DESCRIPTION = `Launch a collaborative team of role-based agents to complete a complex multi-phase task.
|
|
18
19
|
|
|
19
|
-
|
|
20
|
+
SwarmTeam is best for tasks that require multiple steps across different roles:
|
|
20
21
|
explorer (codebase understanding) → planner (design) → coder (implementation)
|
|
21
|
-
→ reviewer (quality check) → tester (verification).
|
|
22
|
+
→ reviewer (quality check) → tester (verification).
|
|
22
23
|
|
|
23
24
|
Each agent communicates via a shared mailbox. The supervisor decomposes the goal
|
|
24
25
|
into phases, assigns each phase to a role agent, and synthesizes the final result.
|
|
@@ -27,14 +28,14 @@ Agents receive context from previous phases automatically.
|
|
|
27
28
|
Default phases: explore → plan → implement → review → test.
|
|
28
29
|
Custom phases and roles can be specified.
|
|
29
30
|
|
|
30
|
-
If
|
|
31
|
+
If SwarmTeam is called, that call must be the only tool call in the response.`;
|
|
31
32
|
// ---------------------------------------------------------------------------
|
|
32
33
|
// Registration
|
|
33
34
|
// ---------------------------------------------------------------------------
|
|
34
35
|
export function registerAgentTeamTool(pi) {
|
|
35
36
|
pi.registerTool({
|
|
36
|
-
name: "
|
|
37
|
-
label: "
|
|
37
|
+
name: "SwarmTeam",
|
|
38
|
+
label: "Swarm Team",
|
|
38
39
|
description: AGENT_TEAM_DESCRIPTION,
|
|
39
40
|
parameters: Type.Object({
|
|
40
41
|
goal: Type.String({
|
|
@@ -61,15 +62,12 @@ export function registerAgentTeamTool(pi) {
|
|
|
61
62
|
max_agents: Type.Optional(Type.Number({
|
|
62
63
|
description: "Max concurrent agents. Default 4.",
|
|
63
64
|
})),
|
|
64
|
-
resume_agent_ids: Type.Optional(Type.Record(Type.String(), Type.String(), {
|
|
65
|
-
description: "Map of existing agent_id to prompt for resuming failed phases.",
|
|
66
|
-
})),
|
|
67
65
|
}, { additionalProperties: false }),
|
|
68
66
|
execute: async (toolCallId, params, signal, _onUpdate, _ctx) => {
|
|
69
67
|
const p = params;
|
|
70
68
|
let supervisor = null;
|
|
71
69
|
try {
|
|
72
|
-
const crewRoot = process.env.PI_SWARM_CREW_ROOT ??
|
|
70
|
+
const crewRoot = process.env.PI_SWARM_CREW_ROOT ?? resolveCrewRoot(process.cwd());
|
|
73
71
|
const runId = `team-${Date.now().toString(36)}`;
|
|
74
72
|
// Build phase definitions
|
|
75
73
|
const phases = p.phases?.map((ph) => ({
|
|
@@ -94,18 +92,24 @@ export function registerAgentTeamTool(pi) {
|
|
|
94
92
|
roles,
|
|
95
93
|
maxAgents: p.max_agents ?? 4,
|
|
96
94
|
});
|
|
97
|
-
//
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
95
|
+
// Create manifest and save initial state
|
|
96
|
+
createManifest(crewRoot, {
|
|
97
|
+
runId,
|
|
98
|
+
type: "team",
|
|
99
|
+
status: "running",
|
|
100
|
+
goal: p.goal,
|
|
101
|
+
startedAt: Date.now(),
|
|
102
|
+
agentIds: [],
|
|
103
|
+
});
|
|
104
|
+
saveTaskState(crewRoot, runId, supervisor.state.taskGraph.toJSON());
|
|
103
105
|
// Run phases sequentially through the task graph
|
|
104
106
|
const allResults = [];
|
|
105
107
|
let currentPhase = supervisor.startNextPhase();
|
|
106
108
|
while (currentPhase !== null) {
|
|
107
109
|
// Check abort signal between phases
|
|
108
110
|
signal?.throwIfAborted();
|
|
111
|
+
// Update heartbeat before phase
|
|
112
|
+
updateHeartbeat(crewRoot, runId);
|
|
109
113
|
const { phase, role, prompt: phasePrompt } = currentPhase;
|
|
110
114
|
// Spawn a single agent for this phase
|
|
111
115
|
const tasks = [
|
|
@@ -136,6 +140,8 @@ export function registerAgentTeamTool(pi) {
|
|
|
136
140
|
catch (err) {
|
|
137
141
|
// Phase was aborted or failed catastrophically
|
|
138
142
|
supervisor.failPhase(phase.phase.name, err instanceof Error ? err.message : String(err));
|
|
143
|
+
// Save state after failure
|
|
144
|
+
saveTaskState(crewRoot, runId, supervisor.state.taskGraph.toJSON());
|
|
139
145
|
// Abort signal: stop the entire run, save partial state
|
|
140
146
|
if (signal?.aborted) {
|
|
141
147
|
supervisor.finalize();
|
|
@@ -158,6 +164,8 @@ export function registerAgentTeamTool(pi) {
|
|
|
158
164
|
else if (result) {
|
|
159
165
|
supervisor.failPhase(phase.phase.name, result.error ?? "Unknown error");
|
|
160
166
|
}
|
|
167
|
+
// Save state after each phase
|
|
168
|
+
saveTaskState(crewRoot, runId, supervisor.state.taskGraph.toJSON());
|
|
161
169
|
currentPhase = supervisor.startNextPhase();
|
|
162
170
|
}
|
|
163
171
|
// Finalize and render
|
|
@@ -197,7 +205,7 @@ export function registerAgentTeamTool(pi) {
|
|
|
197
205
|
content: [
|
|
198
206
|
{
|
|
199
207
|
type: "text",
|
|
200
|
-
text: `
|
|
208
|
+
text: `SwarmTeam failed: ${message}`,
|
|
201
209
|
},
|
|
202
210
|
],
|
|
203
211
|
isError: true,
|
package/dist/team/tool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/team/tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EACL,uBAAuB,GAExB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,aAAa,EACb,cAAc,EACd,aAAa,GACd,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAMjD,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,2BAA2B,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEnD,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;8EAa+C,CAAC;AAE/E,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,MAAM,UAAU,qBAAqB,CACnC,EAAgB;IAEhB,EAAE,CAAC,YAAY,CAAC;QACd,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,sBAAsB;QACnC,UAAU,EAAE,IAAI,CAAC,MAAM,CACrB;YACE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;gBAChB,WAAW,EAAE,+BAA+B;aAC7C,CAAC;YACF,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC;gBACvB,WAAW,EACT,qCAAqC;aACxC,CAAC;YACF,MAAM,EAAE,IAAI,CAAC,QAAQ,CACnB,IAAI,CAAC,KAAK,CACR,IAAI,CAAC,MAAM,CAAC;gBACV,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;gBACnB,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;gBACnB,SAAS,EAAE,IAAI,CAAC,QAAQ,CACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAC1B;aACF,CAAC,EACF;gBACE,WAAW,EACT,2EAA2E;aAC9E,CACF,CACF;YACD,KAAK,EAAE,IAAI,CAAC,QAAQ,CAClB,IAAI,CAAC,KAAK,CACR,IAAI,CAAC,MAAM,CAAC;gBACV,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;gBACnB,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACnC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAClB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAC1B;gBACD,YAAY,EAAE,IAAI,CAAC,QAAQ,CACzB,IAAI,CAAC,MAAM,EAAE,CACd;aACF,CAAC,EACF;gBACE,WAAW,EACT,iEAAiE;aACpE,CACF,CACF;YACD,UAAU,EAAE,IAAI,CAAC,QAAQ,CACvB,IAAI,CAAC,MAAM,CAAC;gBACV,WAAW,EACT,mCAAmC;aACtC,CAAC,CACH;
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/team/tool.ts"],"names":[],"mappings":"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"}
|
package/dist/tui/progress.d.ts
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* Ported from MoonshotAI/kimi-code's AgentSwarmProgressComponent.
|
|
9
9
|
*/
|
|
10
10
|
import type { Component } from "@earendil-works/pi-tui";
|
|
11
|
+
import type { BatchProgressSnapshot } from "../shared/types.js";
|
|
11
12
|
/** Phase of a single member (subagent) in the progress display. */
|
|
12
13
|
export type MemberPhase = "pending" | "queued" | "prompting" | "working" | "completed" | "failed" | "cancelled" | "suspended";
|
|
13
14
|
/** Status of a single member. */
|
|
@@ -44,6 +45,15 @@ export interface SwarmProgressState {
|
|
|
44
45
|
/** Per-member status. */
|
|
45
46
|
members: MemberStatus[];
|
|
46
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Convert a BatchProgressSnapshot from the concurrency controller into
|
|
50
|
+
* the SwarmProgressState expected by AgentSwarmProgressComponent.
|
|
51
|
+
*
|
|
52
|
+
* Maps the controller's coarse member phases onto the component's
|
|
53
|
+
* richer MemberPhase set, attaching a phaseStartedAt timestamp so the
|
|
54
|
+
* braille animation can run for working/suspended members.
|
|
55
|
+
*/
|
|
56
|
+
export declare function snapshotToProgressState(snapshot: BatchProgressSnapshot, title?: string): SwarmProgressState;
|
|
47
57
|
export declare class AgentSwarmProgressComponent implements Component {
|
|
48
58
|
private state_;
|
|
49
59
|
private animationFrame;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/tui/progress.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/tui/progress.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EACV,qBAAqB,EAEtB,MAAM,oBAAoB,CAAC;AAkD5B,mEAAmE;AACnE,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,QAAQ,GACR,WAAW,GACX,SAAS,GACT,WAAW,GACX,QAAQ,GACR,WAAW,GACX,WAAW,CAAC;AAEhB,iCAAiC;AACjC,MAAM,WAAW,YAAY;IAC3B,qBAAqB;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,qBAAqB;IACrB,KAAK,EAAE,WAAW,CAAC;IACnB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,2DAA2D;AAC3D,MAAM,WAAW,kBAAkB;IACjC,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAMD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,qBAAqB,EAC/B,KAAK,CAAC,EAAE,MAAM,GACb,kBAAkB,CAqBpB;AA6BD,qBAAa,2BAA4B,YAAW,SAAS;IAC3D,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,cAAc,CAA6C;IACnE,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,WAAW,CAAuB;;IAU1C,yDAAyD;IACzD,MAAM,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAKvC,mEAAmE;IACnE,QAAQ,IAAI,IAAI;IAiBhB,+BAA+B;IAC/B,OAAO,IAAI,IAAI;IAWf,UAAU,IAAI,IAAI;IAKlB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAiD/B,OAAO,CAAC,cAAc;CAKvB"}
|
package/dist/tui/progress.js
CHANGED
|
@@ -42,6 +42,53 @@ const FAILED_LABEL = "Failed.";
|
|
|
42
42
|
const ABORTED_LABEL = "Aborted.";
|
|
43
43
|
const QUEUED_LABEL = "Queued...";
|
|
44
44
|
// ---------------------------------------------------------------------------
|
|
45
|
+
// Snapshot conversion (controller snapshot -> component state)
|
|
46
|
+
// ---------------------------------------------------------------------------
|
|
47
|
+
/**
|
|
48
|
+
* Convert a BatchProgressSnapshot from the concurrency controller into
|
|
49
|
+
* the SwarmProgressState expected by AgentSwarmProgressComponent.
|
|
50
|
+
*
|
|
51
|
+
* Maps the controller's coarse member phases onto the component's
|
|
52
|
+
* richer MemberPhase set, attaching a phaseStartedAt timestamp so the
|
|
53
|
+
* braille animation can run for working/suspended members.
|
|
54
|
+
*/
|
|
55
|
+
export function snapshotToProgressState(snapshot, title) {
|
|
56
|
+
const now = Date.now();
|
|
57
|
+
const members = snapshot.members.map((m) => ({
|
|
58
|
+
index: m.index,
|
|
59
|
+
phase: mapMemberPhase(m.phase),
|
|
60
|
+
item: m.item,
|
|
61
|
+
error: m.error,
|
|
62
|
+
phaseStartedAt: isAnimatedPhase(m.phase) ? now : undefined,
|
|
63
|
+
}));
|
|
64
|
+
return {
|
|
65
|
+
title,
|
|
66
|
+
total: snapshot.total,
|
|
67
|
+
completed: snapshot.completed,
|
|
68
|
+
failed: snapshot.failed,
|
|
69
|
+
active: snapshot.active,
|
|
70
|
+
queued: snapshot.queued,
|
|
71
|
+
members,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
function mapMemberPhase(phase) {
|
|
75
|
+
switch (phase) {
|
|
76
|
+
case "queued":
|
|
77
|
+
return "queued";
|
|
78
|
+
case "working":
|
|
79
|
+
return "working";
|
|
80
|
+
case "completed":
|
|
81
|
+
return "completed";
|
|
82
|
+
case "failed":
|
|
83
|
+
return "failed";
|
|
84
|
+
case "suspended":
|
|
85
|
+
return "suspended";
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
function isAnimatedPhase(phase) {
|
|
89
|
+
return phase === "working" || phase === "suspended";
|
|
90
|
+
}
|
|
91
|
+
// ---------------------------------------------------------------------------
|
|
45
92
|
// Component
|
|
46
93
|
// ---------------------------------------------------------------------------
|
|
47
94
|
export class AgentSwarmProgressComponent {
|
package/dist/tui/progress.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/tui/progress.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/tui/progress.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gjczone/pi-swarm",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Agent Swarm & Team for pi-coding-agent. Single to 128 subagents: parallel swarm or collaborative team with mailbox. Live TUI, rate-limit retries, crash recovery. Ported from kimi-code, inspired by pi-crew.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -49,8 +49,8 @@
|
|
|
49
49
|
"@earendil-works/pi-coding-agent": "*"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
|
-
"typescript": "^
|
|
53
|
-
"vitest": "^
|
|
52
|
+
"typescript": "^6.0.0",
|
|
53
|
+
"vitest": "^4.0.0"
|
|
54
54
|
},
|
|
55
55
|
"engines": {
|
|
56
56
|
"node": ">=18.0.0"
|