@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.
Files changed (45) hide show
  1. package/README.md +9 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +8 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/shared/controller.d.ts +1 -0
  6. package/dist/shared/controller.d.ts.map +1 -1
  7. package/dist/shared/controller.js +46 -0
  8. package/dist/shared/controller.js.map +1 -1
  9. package/dist/shared/spawner.d.ts.map +1 -1
  10. package/dist/shared/spawner.js +212 -17
  11. package/dist/shared/spawner.js.map +1 -1
  12. package/dist/shared/types.d.ts +28 -0
  13. package/dist/shared/types.d.ts.map +1 -1
  14. package/dist/shared/types.js.map +1 -1
  15. package/dist/shared/worktree.d.ts +81 -0
  16. package/dist/shared/worktree.d.ts.map +1 -0
  17. package/dist/shared/worktree.js +417 -0
  18. package/dist/shared/worktree.js.map +1 -0
  19. package/dist/swarm/tool.d.ts.map +1 -1
  20. package/dist/swarm/tool.js +44 -5
  21. package/dist/swarm/tool.js.map +1 -1
  22. package/dist/team/mailbox.d.ts +5 -0
  23. package/dist/team/mailbox.d.ts.map +1 -1
  24. package/dist/team/mailbox.js +43 -2
  25. package/dist/team/mailbox.js.map +1 -1
  26. package/dist/team/supervisor.d.ts +27 -2
  27. package/dist/team/supervisor.d.ts.map +1 -1
  28. package/dist/team/supervisor.js +75 -17
  29. package/dist/team/supervisor.js.map +1 -1
  30. package/dist/team/task-graph.d.ts +5 -2
  31. package/dist/team/task-graph.d.ts.map +1 -1
  32. package/dist/team/task-graph.js +27 -1
  33. package/dist/team/task-graph.js.map +1 -1
  34. package/dist/team/tool.d.ts.map +1 -1
  35. package/dist/team/tool.js +53 -5
  36. package/dist/team/tool.js.map +1 -1
  37. package/dist/tui/progress.d.ts +6 -43
  38. package/dist/tui/progress.d.ts.map +1 -1
  39. package/dist/tui/progress.js +101 -165
  40. package/dist/tui/progress.js.map +1 -1
  41. package/dist/tui/team-dashboard.d.ts +5 -22
  42. package/dist/tui/team-dashboard.d.ts.map +1 -1
  43. package/dist/tui/team-dashboard.js +87 -132
  44. package/dist/tui/team-dashboard.js.map +1 -1
  45. package/package.json +1 -1
@@ -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: opts.prompt,
143
+ task: finalPrompt,
81
144
  model: opts.model,
82
145
  tools: opts.tools,
83
- cwd: opts.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
- opts.prompt,
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: result.text || "(no output)",
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
- if (!line.trim())
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(line);
492
+ event = JSON.parse(trimmed);
334
493
  }
335
494
  catch {
336
495
  unparseableCount++;
337
- if (unparseableCount === 1 || unparseableCount % 100 === 0) {
338
- console.error(`[pi-swarm] Agent ${agentId}: ${unparseableCount} unparseable output line(s)`);
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 || 0;
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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"}
@@ -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":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmJH,yEAAyE;AACzE,MAAM,CAAC,MAAM,iBAAiB,GAAwB,IAAI,GAAG,CAAC;IAC5D,UAAU;IACV,QAAQ;CACT,CAAC,CAAC"}
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"}