@gjczone/pi-swarm 0.3.5 → 0.4.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.
- package/README.md +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/shared/controller.d.ts +1 -0
- package/dist/shared/controller.d.ts.map +1 -1
- package/dist/shared/controller.js +46 -0
- package/dist/shared/controller.js.map +1 -1
- package/dist/shared/spawner.d.ts.map +1 -1
- package/dist/shared/spawner.js +212 -17
- package/dist/shared/spawner.js.map +1 -1
- package/dist/shared/types.d.ts +28 -0
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/types.js.map +1 -1
- package/dist/shared/worktree.d.ts +81 -0
- package/dist/shared/worktree.d.ts.map +1 -0
- package/dist/shared/worktree.js +417 -0
- package/dist/shared/worktree.js.map +1 -0
- package/dist/swarm/tool.d.ts.map +1 -1
- package/dist/swarm/tool.js +44 -5
- package/dist/swarm/tool.js.map +1 -1
- package/dist/team/mailbox.d.ts +5 -0
- package/dist/team/mailbox.d.ts.map +1 -1
- package/dist/team/mailbox.js +43 -2
- package/dist/team/mailbox.js.map +1 -1
- package/dist/team/supervisor.d.ts +27 -2
- package/dist/team/supervisor.d.ts.map +1 -1
- package/dist/team/supervisor.js +75 -17
- package/dist/team/supervisor.js.map +1 -1
- package/dist/team/task-graph.d.ts +5 -2
- package/dist/team/task-graph.d.ts.map +1 -1
- package/dist/team/task-graph.js +27 -1
- package/dist/team/task-graph.js.map +1 -1
- package/dist/team/tool.d.ts.map +1 -1
- package/dist/team/tool.js +53 -5
- package/dist/team/tool.js.map +1 -1
- package/dist/tui/progress.d.ts +6 -43
- package/dist/tui/progress.d.ts.map +1 -1
- package/dist/tui/progress.js +101 -165
- package/dist/tui/progress.js.map +1 -1
- package/dist/tui/team-dashboard.d.ts +5 -22
- package/dist/tui/team-dashboard.d.ts.map +1 -1
- package/dist/tui/team-dashboard.js +87 -132
- package/dist/tui/team-dashboard.js.map +1 -1
- package/package.json +1 -1
package/dist/shared/spawner.js
CHANGED
|
@@ -6,10 +6,11 @@
|
|
|
6
6
|
* collect token usage, and capture the final result.
|
|
7
7
|
*/
|
|
8
8
|
import { spawn } from "node:child_process";
|
|
9
|
-
import { mkdirSync, createWriteStream } from "node:fs";
|
|
9
|
+
import { mkdirSync, createWriteStream, writeFileSync, existsSync, readFileSync, statSync, } from "node:fs";
|
|
10
10
|
import { dirname, join } from "node:path";
|
|
11
11
|
import { getPiInvocation, buildSubagentArgs } from "./pi-invoke.js";
|
|
12
12
|
import { resolveAgentStateDir } from "../state/persistence.js";
|
|
13
|
+
import { createWorktree, cleanupWorktree, isGitRepository, } from "./worktree.js";
|
|
13
14
|
const MAX_LINE_BUFFER_SIZE = 10 * 1024 * 1024;
|
|
14
15
|
// ---------------------------------------------------------------------------
|
|
15
16
|
// Spawner implementation
|
|
@@ -76,14 +77,75 @@ export async function retrySubagent(agentId, opts) {
|
|
|
76
77
|
return resumeSubagent(agentId, opts);
|
|
77
78
|
}
|
|
78
79
|
async function runSubagentProcess(agentId, opts) {
|
|
80
|
+
const repoCwd = opts.cwd ?? process.cwd();
|
|
81
|
+
let worktree;
|
|
82
|
+
let cwd = repoCwd;
|
|
83
|
+
// worktree 默认启用:Git 仓库自动创建 worktree 隔离,非 Git 仓库回退到 cwd
|
|
84
|
+
// 仅当显式设置 useWorktree: false 时禁用
|
|
85
|
+
// 传递 mailboxPath 以符号链接 mailbox 到 worktree 中,支持实时消息传递
|
|
86
|
+
if (opts.useWorktree !== false && isGitRepository(repoCwd)) {
|
|
87
|
+
worktree = createWorktree(repoCwd, agentId, opts.mailboxPath);
|
|
88
|
+
if (worktree) {
|
|
89
|
+
cwd = worktree.path;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
// Resolve paths for inbox/outbox polling when mailbox is enabled
|
|
93
|
+
const roleName = opts.roleName ?? agentId;
|
|
94
|
+
let pollInboxPath;
|
|
95
|
+
let pollOutboxPath;
|
|
96
|
+
if (opts.mailboxPath) {
|
|
97
|
+
const taskMailboxDir = join(opts.mailboxPath, "tasks", roleName);
|
|
98
|
+
mkdirSync(taskMailboxDir, { recursive: true });
|
|
99
|
+
pollInboxPath = join(taskMailboxDir, "inbox.jsonl");
|
|
100
|
+
pollOutboxPath = join(taskMailboxDir, "outbox.jsonl");
|
|
101
|
+
// Ensure outbox file exists for the agent to write to
|
|
102
|
+
if (!existsSync(pollOutboxPath)) {
|
|
103
|
+
writeFileSync(pollOutboxPath, "", "utf-8");
|
|
104
|
+
}
|
|
105
|
+
// Ensure inbox file exists
|
|
106
|
+
if (!existsSync(pollInboxPath)) {
|
|
107
|
+
writeFileSync(pollInboxPath, "", "utf-8");
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// Inject mailbox communication instructions into prompt if mailbox is available
|
|
111
|
+
let finalPrompt = opts.prompt;
|
|
112
|
+
if (opts.mailboxPath && pollInboxPath && pollOutboxPath) {
|
|
113
|
+
// Use path relative to cwd when possible for cleaner instructions
|
|
114
|
+
const inboxRel = worktree
|
|
115
|
+
? join(".pi", "swarm", "mailbox-link", "tasks", roleName, "inbox.jsonl")
|
|
116
|
+
: pollInboxPath;
|
|
117
|
+
const outboxRel = worktree
|
|
118
|
+
? join(".pi", "swarm", "mailbox-link", "tasks", roleName, "outbox.jsonl")
|
|
119
|
+
: pollOutboxPath;
|
|
120
|
+
const mailboxAddendum = [
|
|
121
|
+
"",
|
|
122
|
+
"---",
|
|
123
|
+
"",
|
|
124
|
+
"## Real-time Mailbox Communication",
|
|
125
|
+
"",
|
|
126
|
+
"You have access to a live mailbox for sending and receiving messages during your work:",
|
|
127
|
+
"",
|
|
128
|
+
`- Your inbox (read for new messages): ${inboxRel}`,
|
|
129
|
+
`- Your outbox (write to send messages): ${outboxRel}`,
|
|
130
|
+
"",
|
|
131
|
+
"How to use:",
|
|
132
|
+
"1. Check your inbox file periodically for new messages from other agents or the supervisor.",
|
|
133
|
+
"2. To send a message, append a single JSON line to your outbox file with format:",
|
|
134
|
+
` {"messageId":"msg-{random}","runId":"${opts.runId ?? ""}","timestamp":"{ISO8601}","from":"${roleName}","to":"{recipient}","type":"handoff","payload":{"content":"your message"}}`,
|
|
135
|
+
"3. Valid recipients: explorer, planner, coder, reviewer, tester, fixer, broadcast (sends to all).",
|
|
136
|
+
"4. Messages you write to outbox are delivered immediately to the recipient's inbox.",
|
|
137
|
+
"5. You do NOT need to wait for your phase to complete to send messages.",
|
|
138
|
+
"",
|
|
139
|
+
].join("\n");
|
|
140
|
+
finalPrompt = finalPrompt + mailboxAddendum;
|
|
141
|
+
}
|
|
79
142
|
const args = buildSubagentArgs({
|
|
80
|
-
task:
|
|
143
|
+
task: finalPrompt,
|
|
81
144
|
model: opts.model,
|
|
82
145
|
tools: opts.tools,
|
|
83
|
-
cwd
|
|
146
|
+
cwd,
|
|
84
147
|
});
|
|
85
148
|
const invocation = getPiInvocation(args);
|
|
86
|
-
const cwd = opts.cwd ?? process.cwd();
|
|
87
149
|
const proc = spawn(invocation.command, invocation.args, {
|
|
88
150
|
cwd,
|
|
89
151
|
shell: false,
|
|
@@ -97,17 +159,23 @@ async function runSubagentProcess(agentId, opts) {
|
|
|
97
159
|
flags: "a",
|
|
98
160
|
encoding: "utf-8",
|
|
99
161
|
});
|
|
162
|
+
const worktreeInfo = worktree
|
|
163
|
+
? `Worktree: ${worktree.path}\nBranch: ${worktree.branch}`
|
|
164
|
+
: "Worktree: disabled";
|
|
100
165
|
const header = [
|
|
101
166
|
"=".repeat(72),
|
|
102
167
|
`Agent: ${agentId}`,
|
|
103
168
|
`Profile: ${opts.profileName}`,
|
|
169
|
+
`Role: ${roleName}`,
|
|
104
170
|
`CWD: ${cwd}`,
|
|
171
|
+
worktreeInfo,
|
|
172
|
+
`Mailbox: ${opts.mailboxPath ?? "disabled"}`,
|
|
105
173
|
`Model: ${opts.model ?? "(inherited)"}`,
|
|
106
174
|
`Tools: ${opts.tools?.join(", ") ?? "(all)"}`,
|
|
107
175
|
`Started: ${new Date().toISOString()}`,
|
|
108
176
|
"-".repeat(72),
|
|
109
177
|
"PROMPT:",
|
|
110
|
-
|
|
178
|
+
finalPrompt,
|
|
111
179
|
"-".repeat(72),
|
|
112
180
|
"OUTPUT:",
|
|
113
181
|
"",
|
|
@@ -115,6 +183,8 @@ async function runSubagentProcess(agentId, opts) {
|
|
|
115
183
|
logStream.write(header);
|
|
116
184
|
}
|
|
117
185
|
let timeoutHandle;
|
|
186
|
+
let mailboxPollHandle;
|
|
187
|
+
let mailboxReadOffset = 0;
|
|
118
188
|
let streamResolve;
|
|
119
189
|
let streamReject;
|
|
120
190
|
let settled = false;
|
|
@@ -140,12 +210,57 @@ async function runSubagentProcess(agentId, opts) {
|
|
|
140
210
|
killState.sigkillTimer = undefined;
|
|
141
211
|
}
|
|
142
212
|
});
|
|
213
|
+
// Mailbox outbox polling: watch for new messages written by the agent and deliver them
|
|
214
|
+
if (pollOutboxPath && opts.onMessage) {
|
|
215
|
+
// Initialize offset to current file size to only read new content
|
|
216
|
+
try {
|
|
217
|
+
mailboxReadOffset = existsSync(pollOutboxPath)
|
|
218
|
+
? statSync(pollOutboxPath).size
|
|
219
|
+
: 0;
|
|
220
|
+
}
|
|
221
|
+
catch {
|
|
222
|
+
mailboxReadOffset = 0;
|
|
223
|
+
}
|
|
224
|
+
mailboxPollHandle = setInterval(() => {
|
|
225
|
+
if (settled || done)
|
|
226
|
+
return;
|
|
227
|
+
try {
|
|
228
|
+
if (!existsSync(pollOutboxPath))
|
|
229
|
+
return;
|
|
230
|
+
const currentSize = statSync(pollOutboxPath).size;
|
|
231
|
+
if (currentSize <= mailboxReadOffset)
|
|
232
|
+
return;
|
|
233
|
+
const raw = readFileSync(pollOutboxPath, "utf-8");
|
|
234
|
+
const newContent = raw.slice(mailboxReadOffset);
|
|
235
|
+
mailboxReadOffset = currentSize;
|
|
236
|
+
const lines = newContent.split("\n").filter((l) => l.trim());
|
|
237
|
+
for (const line of lines) {
|
|
238
|
+
try {
|
|
239
|
+
const msg = JSON.parse(line);
|
|
240
|
+
if (msg.messageId && msg.to && msg.from) {
|
|
241
|
+
opts.onMessage?.(msg);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
catch {
|
|
245
|
+
// Skip malformed lines
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
catch {
|
|
250
|
+
// Poll errors are non-fatal
|
|
251
|
+
}
|
|
252
|
+
}, 800); // Poll at ~1.25Hz for near-real-time delivery without excessive IO
|
|
253
|
+
}
|
|
143
254
|
const cleanup = () => {
|
|
144
255
|
settled = true;
|
|
145
256
|
if (timeoutHandle) {
|
|
146
257
|
clearTimeout(timeoutHandle);
|
|
147
258
|
timeoutHandle = undefined;
|
|
148
259
|
}
|
|
260
|
+
if (mailboxPollHandle) {
|
|
261
|
+
clearInterval(mailboxPollHandle);
|
|
262
|
+
mailboxPollHandle = undefined;
|
|
263
|
+
}
|
|
149
264
|
if (opts.signal) {
|
|
150
265
|
opts.signal.removeEventListener("abort", onAbort);
|
|
151
266
|
}
|
|
@@ -223,7 +338,7 @@ async function runSubagentProcess(agentId, opts) {
|
|
|
223
338
|
const result = await new Promise((resolve, reject) => {
|
|
224
339
|
streamResolve = resolve;
|
|
225
340
|
streamReject = reject;
|
|
226
|
-
parseEventStream(proc, agentId, logStream, killState).then((parsed) => {
|
|
341
|
+
parseEventStream(proc, agentId, logStream, killState, opts.onUsage).then((parsed) => {
|
|
227
342
|
if (done)
|
|
228
343
|
return;
|
|
229
344
|
if (settled) {
|
|
@@ -251,9 +366,19 @@ async function runSubagentProcess(agentId, opts) {
|
|
|
251
366
|
rejectOnce(error);
|
|
252
367
|
});
|
|
253
368
|
});
|
|
369
|
+
let finalResult = result.text || "(no output)";
|
|
370
|
+
let worktreeBranch;
|
|
371
|
+
if (worktree) {
|
|
372
|
+
const cleanupResult = cleanupWorktree(repoCwd, worktree, opts.description);
|
|
373
|
+
if (cleanupResult.hasChanges && cleanupResult.branch) {
|
|
374
|
+
worktreeBranch = cleanupResult.branch;
|
|
375
|
+
finalResult += `\n\n---\nChanges committed to branch \`${cleanupResult.branch}\`.`;
|
|
376
|
+
}
|
|
377
|
+
}
|
|
254
378
|
return {
|
|
255
|
-
result:
|
|
379
|
+
result: finalResult,
|
|
256
380
|
usage: result.usage,
|
|
381
|
+
worktreeBranch,
|
|
257
382
|
};
|
|
258
383
|
}
|
|
259
384
|
catch (err) {
|
|
@@ -267,14 +392,26 @@ async function runSubagentProcess(agentId, opts) {
|
|
|
267
392
|
closeLog(footer);
|
|
268
393
|
}
|
|
269
394
|
}
|
|
395
|
+
if (worktree) {
|
|
396
|
+
try {
|
|
397
|
+
cleanupWorktree(repoCwd, worktree, opts.description);
|
|
398
|
+
}
|
|
399
|
+
catch {
|
|
400
|
+
// best effort cleanup on error
|
|
401
|
+
}
|
|
402
|
+
}
|
|
270
403
|
throw err;
|
|
271
404
|
}
|
|
272
405
|
}
|
|
273
406
|
/**
|
|
274
407
|
* Parse the JSON Lines event stream from a pi --print child process.
|
|
275
408
|
* Returns a Promise that resolves after process close with accumulated results.
|
|
409
|
+
*
|
|
410
|
+
* 业务说明:解析 pi --print 的 JSON Lines 事件流,累积 token 使用量和最终结果。
|
|
411
|
+
* 支持实时通过 onUsage 回调推送使用量更新,让 TUI 能实时显示 token 计数。
|
|
412
|
+
* 同时捕获 content_block_delta 增量文本和工具调用输出,避免结果丢失。
|
|
276
413
|
*/
|
|
277
|
-
function parseEventStream(proc, agentId, logStream, killState) {
|
|
414
|
+
function parseEventStream(proc, agentId, logStream, killState, onUsage) {
|
|
278
415
|
return new Promise((resolve, reject) => {
|
|
279
416
|
const usageAcc = {
|
|
280
417
|
input: 0,
|
|
@@ -289,6 +426,21 @@ function parseEventStream(proc, agentId, logStream, killState) {
|
|
|
289
426
|
let buffer = "";
|
|
290
427
|
let unparseableCount = 0;
|
|
291
428
|
let settled = false;
|
|
429
|
+
let lastUsageEmit = 0;
|
|
430
|
+
const emitUsage = () => {
|
|
431
|
+
if (!onUsage)
|
|
432
|
+
return;
|
|
433
|
+
const now = Date.now();
|
|
434
|
+
if (now - lastUsageEmit < 200)
|
|
435
|
+
return; // Throttle to 5Hz
|
|
436
|
+
lastUsageEmit = now;
|
|
437
|
+
try {
|
|
438
|
+
onUsage({ ...usageAcc });
|
|
439
|
+
}
|
|
440
|
+
catch {
|
|
441
|
+
// Callback errors must not break parsing
|
|
442
|
+
}
|
|
443
|
+
};
|
|
292
444
|
const settle = (result, err) => {
|
|
293
445
|
if (settled)
|
|
294
446
|
return;
|
|
@@ -326,27 +478,40 @@ function parseEventStream(proc, agentId, logStream, killState) {
|
|
|
326
478
|
errorMessage: errorMessage || undefined,
|
|
327
479
|
});
|
|
328
480
|
const processLine = (line) => {
|
|
329
|
-
|
|
481
|
+
const trimmed = line.trim();
|
|
482
|
+
if (!trimmed)
|
|
330
483
|
return;
|
|
484
|
+
if (!trimmed.startsWith("{")) {
|
|
485
|
+
if (logStream) {
|
|
486
|
+
logStream.write(`[diagnostic] ${line}\n`);
|
|
487
|
+
}
|
|
488
|
+
return;
|
|
489
|
+
}
|
|
331
490
|
let event;
|
|
332
491
|
try {
|
|
333
|
-
event = JSON.parse(
|
|
492
|
+
event = JSON.parse(trimmed);
|
|
334
493
|
}
|
|
335
494
|
catch {
|
|
336
495
|
unparseableCount++;
|
|
337
|
-
if (
|
|
338
|
-
|
|
496
|
+
if (logStream) {
|
|
497
|
+
const preview = trimmed.length > 200 ? `${trimmed.slice(0, 200)}...` : trimmed;
|
|
498
|
+
logStream.write(`[unparseable] ${preview}\n`);
|
|
499
|
+
}
|
|
500
|
+
if (unparseableCount >= 10 && unparseableCount % 10 === 0) {
|
|
501
|
+
console.error(`[pi-swarm] Agent ${agentId}: ${unparseableCount} unparseable JSON line(s) logged to output.log`);
|
|
339
502
|
}
|
|
340
503
|
return;
|
|
341
504
|
}
|
|
342
505
|
if (event.type === "message_end" && event.message?.role === "assistant") {
|
|
343
506
|
const msg = event.message;
|
|
344
507
|
if (msg.usage) {
|
|
345
|
-
usageAcc.input += msg.usage.input || 0;
|
|
346
|
-
usageAcc.output += msg.usage.output || 0;
|
|
347
|
-
usageAcc.cacheRead += msg.usage.cacheRead || 0;
|
|
348
|
-
usageAcc.cacheWrite += msg.usage.cacheWrite || 0;
|
|
349
|
-
usageAcc.totalTokens += msg.usage.totalTokens ||
|
|
508
|
+
usageAcc.input += Math.round(msg.usage.input || 0);
|
|
509
|
+
usageAcc.output += Math.round(msg.usage.output || 0);
|
|
510
|
+
usageAcc.cacheRead += Math.round(msg.usage.cacheRead || 0);
|
|
511
|
+
usageAcc.cacheWrite += Math.round(msg.usage.cacheWrite || 0);
|
|
512
|
+
usageAcc.totalTokens += Math.round(msg.usage.totalTokens ||
|
|
513
|
+
(msg.usage.input || 0) + (msg.usage.output || 0));
|
|
514
|
+
emitUsage();
|
|
350
515
|
}
|
|
351
516
|
if (msg.stopReason)
|
|
352
517
|
stopReason = msg.stopReason;
|
|
@@ -373,6 +538,36 @@ function parseEventStream(proc, agentId, logStream, killState) {
|
|
|
373
538
|
finalText += messageText;
|
|
374
539
|
}
|
|
375
540
|
}
|
|
541
|
+
else if (event.type === "content_block_delta" &&
|
|
542
|
+
event.delta?.type === "text_delta") {
|
|
543
|
+
const deltaText = event.delta.text;
|
|
544
|
+
if (deltaText) {
|
|
545
|
+
finalText += deltaText;
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
else if (event.type === "message_delta") {
|
|
549
|
+
if (event.usage) {
|
|
550
|
+
usageAcc.input += Math.round(event.usage.input || 0);
|
|
551
|
+
usageAcc.output += Math.round(event.usage.output || 0);
|
|
552
|
+
usageAcc.cacheRead += Math.round(event.usage.cacheRead || 0);
|
|
553
|
+
usageAcc.cacheWrite += Math.round(event.usage.cacheWrite || 0);
|
|
554
|
+
usageAcc.totalTokens += Math.round(event.usage.totalTokens ||
|
|
555
|
+
(event.usage.input || 0) + (event.usage.output || 0));
|
|
556
|
+
emitUsage();
|
|
557
|
+
}
|
|
558
|
+
if (event.delta?.stopReason) {
|
|
559
|
+
stopReason = event.delta.stopReason;
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
else if (event.type === "tool_result" &&
|
|
563
|
+
typeof event.output === "string") {
|
|
564
|
+
const toolOutput = event.output;
|
|
565
|
+
if (toolOutput && toolOutput.trim()) {
|
|
566
|
+
if (finalText)
|
|
567
|
+
finalText += "\n";
|
|
568
|
+
finalText += toolOutput;
|
|
569
|
+
}
|
|
570
|
+
}
|
|
376
571
|
};
|
|
377
572
|
const processBuffer = () => {
|
|
378
573
|
if (!buffer.trim())
|
|
@@ -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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"}
|
package/dist/shared/types.d.ts
CHANGED
|
@@ -26,6 +26,10 @@ export interface SubagentResult<T = unknown> {
|
|
|
26
26
|
readonly result?: string;
|
|
27
27
|
/** Error message (for failed/aborted tasks). */
|
|
28
28
|
readonly error?: string;
|
|
29
|
+
/** Token usage for this subagent. */
|
|
30
|
+
readonly usage?: SubagentUsage;
|
|
31
|
+
/** Git worktree branch name (if worktree was used and changes committed). */
|
|
32
|
+
readonly worktreeBranch?: string;
|
|
29
33
|
}
|
|
30
34
|
/** A new subagent spawned from a template item. */
|
|
31
35
|
export interface SwarmSpawnSpec {
|
|
@@ -96,6 +100,9 @@ export interface RunSubagentOptions {
|
|
|
96
100
|
readonly runInBackground: boolean;
|
|
97
101
|
readonly signal: AbortSignal;
|
|
98
102
|
readonly onReady?: () => void;
|
|
103
|
+
readonly onUsage?: (usage: SubagentUsage) => void;
|
|
104
|
+
/** Callback for real-time messages sent by the agent via mailbox file writes. */
|
|
105
|
+
readonly onMessage?: (message: MailboxMessage) => void;
|
|
99
106
|
readonly suppressRateLimitFailureEvent?: boolean;
|
|
100
107
|
readonly timeout?: number;
|
|
101
108
|
readonly swarmRoot?: string;
|
|
@@ -104,6 +111,11 @@ export interface RunSubagentOptions {
|
|
|
104
111
|
readonly model?: string;
|
|
105
112
|
readonly tools?: string[];
|
|
106
113
|
readonly cwd?: string;
|
|
114
|
+
readonly useWorktree?: boolean;
|
|
115
|
+
/** Path to the shared mailbox root for real-time inter-agent communication. */
|
|
116
|
+
readonly mailboxPath?: string;
|
|
117
|
+
/** Role name for team agents (used to resolve mailbox paths). */
|
|
118
|
+
readonly roleName?: string;
|
|
107
119
|
}
|
|
108
120
|
/** Model tier for cost-optimized routing. */
|
|
109
121
|
export type ModelTier = "default" | "small";
|
|
@@ -121,6 +133,7 @@ export interface SpawnSubagentOptions extends RunSubagentOptions {
|
|
|
121
133
|
export interface SubagentCompletion {
|
|
122
134
|
readonly result: string;
|
|
123
135
|
readonly usage?: SubagentUsage;
|
|
136
|
+
readonly worktreeBranch?: string;
|
|
124
137
|
}
|
|
125
138
|
/** Handle to a running subagent. */
|
|
126
139
|
export interface SubagentHandle {
|
|
@@ -173,6 +186,16 @@ export interface BaseQueuedSubagentTask<T = unknown> {
|
|
|
173
186
|
readonly runId?: string;
|
|
174
187
|
/** Path to write per-agent output log (optional). */
|
|
175
188
|
readonly outputLogPath?: string;
|
|
189
|
+
/** Whether to use git worktree isolation (default: true for git repos). */
|
|
190
|
+
readonly useWorktree?: boolean;
|
|
191
|
+
/** Callback for real-time token usage updates (optional). */
|
|
192
|
+
readonly onUsage?: (usage: SubagentUsage) => void;
|
|
193
|
+
/** Callback for real-time messages via mailbox file writes (optional). */
|
|
194
|
+
readonly onMessage?: (message: MailboxMessage) => void;
|
|
195
|
+
/** Path to the shared mailbox root for real-time inter-agent communication (optional). */
|
|
196
|
+
readonly mailboxPath?: string;
|
|
197
|
+
/** Role name for team agents (optional, used for mailbox routing). */
|
|
198
|
+
readonly roleName?: string;
|
|
176
199
|
}
|
|
177
200
|
/** A task that spawns a NEW subagent. */
|
|
178
201
|
export interface SpawnQueuedSubagentTask<T = unknown> extends BaseQueuedSubagentTask<T> {
|
|
@@ -211,6 +234,7 @@ export interface TeamProgressSnapshot {
|
|
|
211
234
|
readonly phases: ReadonlyArray<TeamPhaseStatus>;
|
|
212
235
|
readonly mailboxCount: number;
|
|
213
236
|
readonly startedAt: number;
|
|
237
|
+
readonly totalUsage: SubagentUsage;
|
|
214
238
|
}
|
|
215
239
|
/** Per-phase status in a team progress snapshot. */
|
|
216
240
|
export interface TeamPhaseStatus {
|
|
@@ -218,6 +242,7 @@ export interface TeamPhaseStatus {
|
|
|
218
242
|
readonly role: AgentRole;
|
|
219
243
|
readonly status: "queued" | "running" | "completed" | "failed" | "skipped";
|
|
220
244
|
readonly error?: string;
|
|
245
|
+
readonly usage?: SubagentUsage;
|
|
221
246
|
}
|
|
222
247
|
/** Callback for team progress updates. */
|
|
223
248
|
export type TeamProgressCallback = (snapshot: TeamProgressSnapshot) => void;
|
|
@@ -229,6 +254,8 @@ export interface BatchProgressSnapshot {
|
|
|
229
254
|
readonly active: number;
|
|
230
255
|
readonly queued: number;
|
|
231
256
|
readonly members: ReadonlyArray<BatchMemberStatus>;
|
|
257
|
+
readonly totalUsage: SubagentUsage;
|
|
258
|
+
readonly startedAt: number;
|
|
232
259
|
}
|
|
233
260
|
/** Per-member status in a progress snapshot. */
|
|
234
261
|
export interface BatchMemberStatus {
|
|
@@ -236,6 +263,7 @@ export interface BatchMemberStatus {
|
|
|
236
263
|
readonly phase: "queued" | "working" | "completed" | "failed" | "suspended";
|
|
237
264
|
readonly item?: string;
|
|
238
265
|
readonly error?: string;
|
|
266
|
+
readonly usage?: SubagentUsage;
|
|
239
267
|
}
|
|
240
268
|
/** Emitted when a subagent is suspended due to rate limiting. */
|
|
241
269
|
export interface SubagentSuspendedEvent {
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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"}
|
package/dist/shared/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA+JH,yEAAyE;AACzE,MAAM,CAAC,MAAM,iBAAiB,GAAwB,IAAI,GAAG,CAAC;IAC5D,UAAU;IACV,QAAQ;CACT,CAAC,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* worktree - Git worktree isolation for subagents.
|
|
3
|
+
*
|
|
4
|
+
* Creates a temporary git worktree so an agent works on an isolated copy of the repo.
|
|
5
|
+
* On completion:
|
|
6
|
+
* - If no changes: worktree is removed.
|
|
7
|
+
* - If changes exist: committed to a new branch, worktree is removed.
|
|
8
|
+
* - The caller is responsible for merging the branch back (see mergeBranch).
|
|
9
|
+
*
|
|
10
|
+
* Safety:
|
|
11
|
+
* - Non-git repos silently fall back to cwd (no worktree created).
|
|
12
|
+
* - Symbolic links to node_modules are created to avoid reinstalling dependencies.
|
|
13
|
+
* - Each worktree is created from HEAD in detached mode; changes are committed to a
|
|
14
|
+
* uniquely-named branch to avoid collisions.
|
|
15
|
+
*
|
|
16
|
+
* Reference implementation: gotgenes/pi-subagents-worktrees, pi-crew worktree-manager.
|
|
17
|
+
*/
|
|
18
|
+
export interface WorktreeInfo {
|
|
19
|
+
path: string;
|
|
20
|
+
branch: string;
|
|
21
|
+
originalBranch: string;
|
|
22
|
+
originalHead: string;
|
|
23
|
+
repoCwd: string;
|
|
24
|
+
mailboxLinkCreated?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface WorktreeCleanupResult {
|
|
27
|
+
hasChanges: boolean;
|
|
28
|
+
branch?: string;
|
|
29
|
+
}
|
|
30
|
+
export interface MergeResult {
|
|
31
|
+
success: boolean;
|
|
32
|
+
branch: string;
|
|
33
|
+
error?: string;
|
|
34
|
+
mergedCommit?: string;
|
|
35
|
+
}
|
|
36
|
+
export interface SubagentWorktreeResult {
|
|
37
|
+
worktreeUsed: boolean;
|
|
38
|
+
branch?: string;
|
|
39
|
+
hasChanges: boolean;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Detect whether cwd is inside a git repository.
|
|
43
|
+
*/
|
|
44
|
+
export declare function isGitRepository(cwd: string): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Create a temporary worktree for a subagent.
|
|
47
|
+
* Returns undefined if not in a git repo or worktree creation fails.
|
|
48
|
+
*
|
|
49
|
+
* 业务说明:为子 agent 创建临时 git worktree 实现目录隔离。
|
|
50
|
+
* worktree 基于 HEAD 的 detached 状态创建,确保不污染主分支。
|
|
51
|
+
* 同时符号链接项目上下文文件(AGENTS.md、.pi 等)和 mailbox 目录,
|
|
52
|
+
* 这样子 agent 可以访问项目规则并实时读写 mailbox 消息。
|
|
53
|
+
* 记录原始分支名和 HEAD SHA 用于后续合并。
|
|
54
|
+
*/
|
|
55
|
+
export declare function createWorktree(cwd: string, agentId: string, mailboxPath?: string): WorktreeInfo | undefined;
|
|
56
|
+
/**
|
|
57
|
+
* Clean up the worktree after agent completion.
|
|
58
|
+
*
|
|
59
|
+
* Steps:
|
|
60
|
+
* 1. Check for changes in worktree.
|
|
61
|
+
* 2. If no changes: remove worktree, return { hasChanges: false }.
|
|
62
|
+
* 3. If changes: add + commit to a new branch based on the commit, remove worktree.
|
|
63
|
+
*
|
|
64
|
+
* Note: This function does NOT merge back to the original branch.
|
|
65
|
+
* Call mergeBranch() after all agents in a batch complete for safe merging.
|
|
66
|
+
*
|
|
67
|
+
* 业务说明:子 agent 完成后清理 worktree。有变更则提交到新分支,
|
|
68
|
+
* 不自动合并——合并应在批处理完成后顺序执行以避免竞争条件。
|
|
69
|
+
*/
|
|
70
|
+
export declare function cleanupWorktree(cwd: string, worktree: WorktreeInfo, agentDescription: string): WorktreeCleanupResult;
|
|
71
|
+
/**
|
|
72
|
+
* Merge a branch into the current branch.
|
|
73
|
+
* Must be called when the working directory is clean (no parallel agents running).
|
|
74
|
+
* Uses --no-ff --no-edit to create a merge commit preserving history.
|
|
75
|
+
*
|
|
76
|
+
* 业务说明:将子 agent 的分支合并到当前分支。必须在工作目录干净时调用
|
|
77
|
+
* (所有并行 agent 完成后顺序执行)。冲突时返回错误信息并保留分支供手动解决。
|
|
78
|
+
*/
|
|
79
|
+
export declare function mergeBranch(cwd: string, branchName: string): MergeResult;
|
|
80
|
+
export declare function pruneWorktrees(cwd: string): void;
|
|
81
|
+
//# sourceMappingURL=worktree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../src/shared/worktree.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAeH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAWpD;AAsED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,GACnB,YAAY,GAAG,SAAS,CAiF1B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,YAAY,EACtB,gBAAgB,EAAE,MAAM,GACvB,qBAAqB,CA6EvB;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW,CA+FxE;AAsBD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAUhD"}
|