@gjczone/pi-swarm 0.4.1 → 0.7.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/README.md +35 -89
- package/dist/index.d.ts +3 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -16
- package/dist/index.js.map +1 -1
- package/dist/shared/controller.d.ts +19 -5
- package/dist/shared/controller.d.ts.map +1 -1
- package/dist/shared/controller.js +139 -17
- package/dist/shared/controller.js.map +1 -1
- package/dist/shared/render.d.ts +1 -12
- package/dist/shared/render.d.ts.map +1 -1
- package/dist/shared/render.js +4 -37
- package/dist/shared/render.js.map +1 -1
- package/dist/shared/spawner.js +49 -5
- package/dist/shared/spawner.js.map +1 -1
- package/dist/shared/types.d.ts +38 -0
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/types.js.map +1 -1
- package/dist/shared/worktree.d.ts +2 -0
- package/dist/shared/worktree.d.ts.map +1 -1
- package/dist/shared/worktree.js +10 -3
- package/dist/shared/worktree.js.map +1 -1
- package/dist/shared/xml.d.ts +18 -0
- package/dist/shared/xml.d.ts.map +1 -0
- package/dist/shared/xml.js +31 -0
- package/dist/shared/xml.js.map +1 -0
- package/dist/state/recovery.d.ts.map +1 -1
- package/dist/state/recovery.js +25 -4
- package/dist/state/recovery.js.map +1 -1
- package/dist/swarm/command.d.ts +4 -5
- package/dist/swarm/command.d.ts.map +1 -1
- package/dist/swarm/command.js +26 -74
- package/dist/swarm/command.js.map +1 -1
- package/dist/swarm/mode.d.ts +1 -1
- package/dist/swarm/mode.js +2 -2
- package/dist/swarm/mode.js.map +1 -1
- package/dist/swarm/tool.d.ts +4 -4
- package/dist/swarm/tool.d.ts.map +1 -1
- package/dist/swarm/tool.js +115 -160
- package/dist/swarm/tool.js.map +1 -1
- package/dist/team/command.d.ts +2 -4
- package/dist/team/command.d.ts.map +1 -1
- package/dist/team/command.js +5 -13
- package/dist/team/command.js.map +1 -1
- package/dist/team/mailbox.d.ts +7 -0
- package/dist/team/mailbox.d.ts.map +1 -1
- package/dist/team/mailbox.js +99 -13
- package/dist/team/mailbox.js.map +1 -1
- package/dist/tui/progress.d.ts +26 -9
- package/dist/tui/progress.d.ts.map +1 -1
- package/dist/tui/progress.js +262 -163
- package/dist/tui/progress.js.map +1 -1
- package/dist/tui/swarm-markers.d.ts +1 -1
- package/dist/tui/swarm-markers.js +1 -1
- package/package.json +13 -2
- package/dist/team/supervisor.d.ts +0 -171
- package/dist/team/supervisor.d.ts.map +0 -1
- package/dist/team/supervisor.js +0 -700
- package/dist/team/supervisor.js.map +0 -1
- package/dist/team/task-graph.d.ts +0 -64
- package/dist/team/task-graph.d.ts.map +0 -1
- package/dist/team/task-graph.js +0 -216
- package/dist/team/task-graph.js.map +0 -1
- package/dist/team/tool.d.ts +0 -11
- package/dist/team/tool.d.ts.map +0 -1
- package/dist/team/tool.js +0 -455
- package/dist/team/tool.js.map +0 -1
- package/dist/tui/permission-prompt.d.ts +0 -26
- package/dist/tui/permission-prompt.d.ts.map +0 -1
- package/dist/tui/permission-prompt.js +0 -98
- package/dist/tui/permission-prompt.js.map +0 -1
- package/dist/tui/team-dashboard.d.ts +0 -48
- package/dist/tui/team-dashboard.d.ts.map +0 -1
- package/dist/tui/team-dashboard.js +0 -249
- package/dist/tui/team-dashboard.js.map +0 -1
package/dist/team/mailbox.js
CHANGED
|
@@ -34,12 +34,14 @@ function ensureWithinMailbox(resolvedPath, mailboxRoot) {
|
|
|
34
34
|
}
|
|
35
35
|
export function resolveMailboxPaths(swarmRoot, runId) {
|
|
36
36
|
const root = path.join(swarmRoot, "state", "runs", runId, "mailbox");
|
|
37
|
+
const inbox = path.join(root, "inbox.jsonl");
|
|
37
38
|
return {
|
|
38
39
|
root,
|
|
39
|
-
inbox
|
|
40
|
+
inbox,
|
|
40
41
|
outbox: path.join(root, "outbox.jsonl"),
|
|
41
42
|
delivery: path.join(root, "delivery.json"),
|
|
42
43
|
taskDir: path.join(root, "tasks"),
|
|
44
|
+
inboxAcks: inbox + ".acks",
|
|
43
45
|
};
|
|
44
46
|
}
|
|
45
47
|
export function resolveTaskMailboxPaths(paths, taskId) {
|
|
@@ -110,14 +112,25 @@ export function sendMessage(paths, message) {
|
|
|
110
112
|
* Read unacknowledged messages from the team inbox.
|
|
111
113
|
*/
|
|
112
114
|
export function readInbox(paths) {
|
|
113
|
-
|
|
115
|
+
const messages = readJsonLines(paths.inbox);
|
|
116
|
+
const ackedIds = readAckIds(paths.inboxAcks);
|
|
117
|
+
if (ackedIds.size === 0)
|
|
118
|
+
return messages;
|
|
119
|
+
return messages.filter((m) => !ackedIds.has(m.messageId));
|
|
120
|
+
}
|
|
121
|
+
function taskAckPath(taskInbox) {
|
|
122
|
+
return taskInbox + ".acks";
|
|
114
123
|
}
|
|
115
124
|
/**
|
|
116
125
|
* Read messages from a task-specific inbox.
|
|
117
126
|
*/
|
|
118
127
|
export function readTaskInbox(paths, taskId) {
|
|
119
128
|
const taskPaths = resolveTaskMailboxPaths(paths, taskId);
|
|
120
|
-
|
|
129
|
+
const messages = readJsonLines(taskPaths.inbox);
|
|
130
|
+
const ackedIds = readAckIds(taskAckPath(taskPaths.inbox));
|
|
131
|
+
if (ackedIds.size === 0)
|
|
132
|
+
return messages;
|
|
133
|
+
return messages.filter((m) => !ackedIds.has(m.messageId));
|
|
121
134
|
}
|
|
122
135
|
/**
|
|
123
136
|
* Count total messages in the team outbox.
|
|
@@ -138,22 +151,29 @@ export function countOutboxMessages(paths) {
|
|
|
138
151
|
}
|
|
139
152
|
/**
|
|
140
153
|
* Acknowledge (delete) messages from the team inbox.
|
|
154
|
+
*
|
|
155
|
+
* Uses an append-only ack file to avoid the TOCTOU race between
|
|
156
|
+
* reading and rewriting inbox.jsonl. Acknowledged message IDs are
|
|
157
|
+
* appended to inboxAcks.jsonl and filtered at read time.
|
|
141
158
|
*/
|
|
142
159
|
export function ackMessages(paths, messageIds) {
|
|
143
|
-
const
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
160
|
+
for (const id of messageIds) {
|
|
161
|
+
appendJsonLine(paths.inboxAcks, { messageId: id });
|
|
162
|
+
}
|
|
163
|
+
compactAcks(paths.inboxAcks);
|
|
147
164
|
}
|
|
148
165
|
/**
|
|
149
166
|
* Acknowledge (delete) messages from a task-specific inbox.
|
|
167
|
+
*
|
|
168
|
+
* Uses the same append-only ack approach as ackMessages.
|
|
150
169
|
*/
|
|
151
170
|
export function ackTaskMessages(paths, taskId, messageIds) {
|
|
152
171
|
const taskPaths = resolveTaskMailboxPaths(paths, taskId);
|
|
153
|
-
const
|
|
154
|
-
const
|
|
155
|
-
|
|
156
|
-
|
|
172
|
+
const ackPath = taskAckPath(taskPaths.inbox);
|
|
173
|
+
for (const id of messageIds) {
|
|
174
|
+
appendJsonLine(ackPath, { messageId: id });
|
|
175
|
+
}
|
|
176
|
+
compactAcks(ackPath);
|
|
157
177
|
}
|
|
158
178
|
/**
|
|
159
179
|
* Get delivery state (which messages have been delivered/read).
|
|
@@ -184,24 +204,90 @@ function appendJsonLine(filePath, data) {
|
|
|
184
204
|
const line = JSON.stringify(data) + "\n";
|
|
185
205
|
fs.appendFileSync(filePath, line, "utf-8");
|
|
186
206
|
}
|
|
207
|
+
/**
|
|
208
|
+
* Read acknowledged message IDs from an ack file (JSONL with {messageId: string} entries).
|
|
209
|
+
*/
|
|
210
|
+
function readAckIds(ackPath) {
|
|
211
|
+
try {
|
|
212
|
+
const raw = fs.readFileSync(ackPath, "utf-8");
|
|
213
|
+
if (!raw.trim())
|
|
214
|
+
return new Set();
|
|
215
|
+
const ids = new Set();
|
|
216
|
+
for (const line of raw.trim().split("\n")) {
|
|
217
|
+
const trimmed = line.trim();
|
|
218
|
+
if (!trimmed)
|
|
219
|
+
continue;
|
|
220
|
+
try {
|
|
221
|
+
const parsed = JSON.parse(trimmed);
|
|
222
|
+
if (parsed.messageId)
|
|
223
|
+
ids.add(parsed.messageId);
|
|
224
|
+
}
|
|
225
|
+
catch {
|
|
226
|
+
// Skip corrupted ack lines
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
return ids;
|
|
230
|
+
}
|
|
231
|
+
catch {
|
|
232
|
+
return new Set();
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Compact an ack file if the number of lines exceeds 10x the unique ID count
|
|
237
|
+
* (indicating significant duplication from repeated acknowledgment cycles).
|
|
238
|
+
*/
|
|
239
|
+
function compactAcks(ackPath) {
|
|
240
|
+
try {
|
|
241
|
+
const raw = fs.readFileSync(ackPath, "utf-8");
|
|
242
|
+
if (!raw.trim())
|
|
243
|
+
return;
|
|
244
|
+
const lines = raw
|
|
245
|
+
.trim()
|
|
246
|
+
.split("\n")
|
|
247
|
+
.filter((l) => l.trim());
|
|
248
|
+
if (lines.length < 100)
|
|
249
|
+
return; // Don't compact small files
|
|
250
|
+
const uniqueIds = readAckIds(ackPath);
|
|
251
|
+
if (uniqueIds.size === 0)
|
|
252
|
+
return;
|
|
253
|
+
// Compact if ratio exceeds 10x
|
|
254
|
+
if (lines.length > uniqueIds.size * 10) {
|
|
255
|
+
const content = Array.from(uniqueIds)
|
|
256
|
+
.map((id) => JSON.stringify({ messageId: id }))
|
|
257
|
+
.join("\n");
|
|
258
|
+
writeAtomic(ackPath, content + "\n");
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
catch {
|
|
262
|
+
// Best effort compaction
|
|
263
|
+
}
|
|
264
|
+
}
|
|
187
265
|
function readJsonLines(filePath) {
|
|
188
266
|
try {
|
|
189
267
|
const raw = fs.readFileSync(filePath, "utf-8");
|
|
190
268
|
if (!raw.trim())
|
|
191
269
|
return [];
|
|
192
|
-
|
|
270
|
+
const lines = raw
|
|
193
271
|
.trim()
|
|
194
272
|
.split("\n")
|
|
195
|
-
.filter((line) => line.trim())
|
|
273
|
+
.filter((line) => line.trim());
|
|
274
|
+
let corruptedCount = 0;
|
|
275
|
+
const messages = lines
|
|
196
276
|
.map((line) => {
|
|
197
277
|
try {
|
|
198
278
|
return JSON.parse(line);
|
|
199
279
|
}
|
|
200
280
|
catch {
|
|
281
|
+
corruptedCount++;
|
|
282
|
+
console.error(`[pi-swarm] Corrupted JSONL line in ${filePath}:`, line.slice(0, 200));
|
|
201
283
|
return null;
|
|
202
284
|
}
|
|
203
285
|
})
|
|
204
286
|
.filter((m) => m !== null);
|
|
287
|
+
if (corruptedCount > 0) {
|
|
288
|
+
console.error(`[pi-swarm] Skipped ${corruptedCount} corrupted line(s) in ${filePath}`);
|
|
289
|
+
}
|
|
290
|
+
return messages;
|
|
205
291
|
}
|
|
206
292
|
catch {
|
|
207
293
|
return [];
|
package/dist/team/mailbox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mailbox.js","sourceRoot":"","sources":["../../src/team/mailbox.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAElE,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,MAAM,sBAAsB,GAAG,kBAAkB,CAAC;AAElD,SAAS,iBAAiB,CAAC,SAAiB,EAAE,KAAa;IACzD,IAAI,SAAS,KAAK,WAAW;QAAE,OAAO;IACtC,IACE,OAAO,SAAS,KAAK,QAAQ;QAC7B,SAAS,CAAC,MAAM,KAAK,CAAC;QACtB,SAAS,CAAC,MAAM,GAAG,GAAG,EACtB,CAAC;QACD,MAAM,IAAI,KAAK,CACb,WAAW,KAAK,mDAAmD,CACpE,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CACb,WAAW,KAAK,MAAM,SAAS,8BAA8B,CAC9D,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,YAAoB,EAAE,WAAmB;IACpE,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;IAC5D,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAClD,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CACb,4BAA4B,YAAY,uBAAuB,CAChE,CAAC;IACJ,CAAC;AACH,CAAC;
|
|
1
|
+
{"version":3,"file":"mailbox.js","sourceRoot":"","sources":["../../src/team/mailbox.ts"],"names":[],"mappings":"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"}
|
package/dist/tui/progress.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* tui/progress — AgentSwarm live progress panel.
|
|
2
|
+
* tui/progress — AgentSwarm live progress panel (minimal).
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Grid layout with braille progress bars and scrolling model output.
|
|
5
|
+
* - Multiple agents: grid cells with ID + braille bar + model text
|
|
6
|
+
* - Single agent: compact status line with spinner + text
|
|
7
|
+
* - No token/in/out display — replaced by scrolling model output
|
|
7
8
|
*
|
|
8
|
-
*
|
|
9
|
+
* Architecture reference: AgentSwarm pattern.
|
|
9
10
|
*/
|
|
10
11
|
import type { Component } from "@earendil-works/pi-tui";
|
|
11
12
|
import type { BatchProgressSnapshot, SubagentUsage } from "../shared/types.js";
|
|
@@ -16,7 +17,10 @@ export interface MemberStatus {
|
|
|
16
17
|
item?: string;
|
|
17
18
|
result?: string;
|
|
18
19
|
error?: string;
|
|
19
|
-
|
|
20
|
+
currentTool?: string;
|
|
21
|
+
activity?: string;
|
|
22
|
+
usage?: SubagentUsage;
|
|
23
|
+
progressTick?: number;
|
|
20
24
|
}
|
|
21
25
|
export interface SwarmProgressState {
|
|
22
26
|
title?: string;
|
|
@@ -28,21 +32,34 @@ export interface SwarmProgressState {
|
|
|
28
32
|
members: MemberStatus[];
|
|
29
33
|
totalUsage: SubagentUsage;
|
|
30
34
|
startedAt: number;
|
|
35
|
+
mailbox?: boolean;
|
|
36
|
+
mailboxCount?: number;
|
|
31
37
|
}
|
|
32
38
|
export declare function snapshotToProgressState(snapshot: BatchProgressSnapshot, title?: string): SwarmProgressState;
|
|
33
39
|
export declare class AgentSwarmProgressComponent implements Component {
|
|
34
40
|
private state_;
|
|
35
|
-
private animationFrame;
|
|
36
|
-
private renderedWidth;
|
|
37
|
-
private cachedLines;
|
|
38
41
|
private onRequestRender;
|
|
42
|
+
private animationFrame;
|
|
39
43
|
private frameIndex;
|
|
44
|
+
private pollTimer;
|
|
45
|
+
private debounceTimer;
|
|
40
46
|
constructor(onRequestRender?: () => void);
|
|
41
47
|
update(state: SwarmProgressState): void;
|
|
42
48
|
complete(): void;
|
|
43
49
|
dispose(): void;
|
|
44
50
|
invalidate(): void;
|
|
51
|
+
handleInput(_data: string): void;
|
|
45
52
|
render(width: number): string[];
|
|
53
|
+
private renderHeader;
|
|
54
|
+
private renderStatusLine;
|
|
55
|
+
private renderSingleAgent;
|
|
56
|
+
private renderGrid;
|
|
57
|
+
private renderCell;
|
|
58
|
+
private renderBrailleBar;
|
|
59
|
+
private renderCellLabel;
|
|
60
|
+
private requestRender;
|
|
61
|
+
private startPolling;
|
|
46
62
|
private startAnimation;
|
|
63
|
+
private stopTimers;
|
|
47
64
|
}
|
|
48
65
|
//# sourceMappingURL=progress.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/tui/progress.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/tui/progress.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EACV,qBAAqB,EAErB,aAAa,EACd,MAAM,oBAAoB,CAAC;AAyC5B,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,QAAQ,GACR,WAAW,GACX,SAAS,GACT,WAAW,GACX,QAAQ,GACR,WAAW,GACX,WAAW,CAAC;AAEhB,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,UAAU,EAAE,aAAa,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,qBAAqB,EAC/B,KAAK,CAAC,EAAE,MAAM,GACb,kBAAkB,CAqBpB;AAqBD,qBAAa,2BAA4B,YAAW,SAAS;IAC3D,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,eAAe,CAA2B;IAClD,OAAO,CAAC,cAAc,CAA6C;IACnE,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,SAAS,CAA4C;IAC7D,OAAO,CAAC,aAAa,CAA4C;gBAErD,eAAe,CAAC,EAAE,MAAM,IAAI;IAUxC,MAAM,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAKvC,QAAQ,IAAI,IAAI;IAkBhB,OAAO,IAAI,IAAI;IAIf,UAAU,IAAI,IAAI;IAGlB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQhC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAkC/B,OAAO,CAAC,YAAY;IAoBpB,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,iBAAiB;IAkCzB,OAAO,CAAC,UAAU;IAqDlB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,gBAAgB;IA8BxB,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,UAAU;CAcnB"}
|