@junctionpanel/server 0.1.24 → 0.1.25

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 (46) hide show
  1. package/dist/server/client/daemon-client.d.ts +1 -0
  2. package/dist/server/client/daemon-client.d.ts.map +1 -1
  3. package/dist/server/client/daemon-client.js +3 -0
  4. package/dist/server/client/daemon-client.js.map +1 -1
  5. package/dist/server/server/agent/activity-curator.d.ts.map +1 -1
  6. package/dist/server/server/agent/activity-curator.js +4 -0
  7. package/dist/server/server/agent/activity-curator.js.map +1 -1
  8. package/dist/server/server/agent/agent-manager.d.ts +3 -1
  9. package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
  10. package/dist/server/server/agent/agent-manager.js +8 -1
  11. package/dist/server/server/agent/agent-manager.js.map +1 -1
  12. package/dist/server/server/agent/agent-sdk-types.d.ts +14 -1
  13. package/dist/server/server/agent/agent-sdk-types.d.ts.map +1 -1
  14. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts +24 -0
  15. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts.map +1 -1
  16. package/dist/server/server/session.d.ts.map +1 -1
  17. package/dist/server/server/session.js +36 -17
  18. package/dist/server/server/session.js.map +1 -1
  19. package/dist/server/server/worktree-bootstrap.d.ts +6 -0
  20. package/dist/server/server/worktree-bootstrap.d.ts.map +1 -1
  21. package/dist/server/server/worktree-bootstrap.js +426 -30
  22. package/dist/server/server/worktree-bootstrap.js.map +1 -1
  23. package/dist/server/shared/bootstrap-setup.d.ts +18 -0
  24. package/dist/server/shared/bootstrap-setup.d.ts.map +1 -0
  25. package/dist/server/shared/bootstrap-setup.js +116 -0
  26. package/dist/server/shared/bootstrap-setup.js.map +1 -0
  27. package/dist/server/shared/messages.d.ts +209 -192
  28. package/dist/server/shared/messages.d.ts.map +1 -1
  29. package/dist/server/shared/messages.js +19 -0
  30. package/dist/server/shared/messages.js.map +1 -1
  31. package/dist/server/shared/tool-call-display.d.ts.map +1 -1
  32. package/dist/server/shared/tool-call-display.js +4 -0
  33. package/dist/server/shared/tool-call-display.js.map +1 -1
  34. package/dist/server/terminal/terminal-manager.d.ts +2 -0
  35. package/dist/server/terminal/terminal-manager.d.ts.map +1 -1
  36. package/dist/server/terminal/terminal-manager.js +2 -0
  37. package/dist/server/terminal/terminal-manager.js.map +1 -1
  38. package/dist/server/terminal/terminal.d.ts +1 -0
  39. package/dist/server/terminal/terminal.d.ts.map +1 -1
  40. package/dist/server/terminal/terminal.js +2 -2
  41. package/dist/server/terminal/terminal.js.map +1 -1
  42. package/dist/server/utils/worktree.d.ts +12 -0
  43. package/dist/server/utils/worktree.d.ts.map +1 -1
  44. package/dist/server/utils/worktree.js +38 -1
  45. package/dist/server/utils/worktree.js.map +1 -1
  46. package/package.json +2 -2
@@ -1,4 +1,5 @@
1
1
  import type { Logger } from "pino";
2
+ import type { BootstrapSetupOverride } from "../shared/bootstrap-setup.js";
2
3
  import type { TerminalManager } from "../terminal/terminal-manager.js";
3
4
  import { type WorktreeConfig } from "../utils/worktree.js";
4
5
  import type { AgentTimelineItem } from "./agent/agent-sdk-types.js";
@@ -12,9 +13,14 @@ export interface WorktreeBootstrapTerminalResult {
12
13
  export interface RunAsyncWorktreeBootstrapOptions {
13
14
  agentId: string;
14
15
  worktree: WorktreeConfig;
16
+ setupOverride?: BootstrapSetupOverride | null;
15
17
  terminalManager: TerminalManager | null;
16
18
  appendTimelineItem: (item: AgentTimelineItem) => Promise<boolean>;
17
19
  emitLiveTimelineItem?: (item: AgentTimelineItem) => Promise<boolean>;
20
+ onSetupSettled?: (result: {
21
+ setupStatus: "not_required" | "completed" | "failed";
22
+ errorMessage: string | null;
23
+ }) => Promise<void> | void;
18
24
  logger?: Logger;
19
25
  }
20
26
  export interface CreateAgentWorktreeOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-bootstrap.d.ts","sourceRoot":"","sources":["../../../src/server/worktree-bootstrap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,EAML,KAAK,cAAc,EAGpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,gCAAgC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,cAAc,CAAC;IACzB,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,kBAAkB,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,0BAA0B;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAiHD,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,cAAc,CAAC,CASzB;AA+SD,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,gCAAgC,GACxC,OAAO,CAAC,IAAI,CAAC,CAgIf"}
1
+ {"version":3,"file":"worktree-bootstrap.d.ts","sourceRoot":"","sources":["../../../src/server/worktree-bootstrap.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,EAOL,KAAK,cAAc,EAKpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,gCAAgC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,cAAc,CAAC;IACzB,aAAa,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAC9C,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,kBAAkB,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACrE,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE;QACxB,WAAW,EAAE,cAAc,GAAG,WAAW,GAAG,QAAQ,CAAC;QACrD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;KAC7B,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,0BAA0B;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAiJD,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,cAAc,CAAC,CASzB;AAwqBD,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,gCAAgC,GACxC,OAAO,CAAC,IAAI,CAAC,CAqOf"}
@@ -1,8 +1,37 @@
1
+ import { readdirSync } from "node:fs";
2
+ import { basename, join } from "node:path";
1
3
  import { v4 as uuidv4 } from "uuid";
2
- import { createWorktree, getWorktreeTerminalSpecs, resolveWorktreeRuntimeEnv, runWorktreeSetupCommands, WorktreeSetupError, } from "../utils/worktree.js";
4
+ import { createWorktree, getWorktreeTerminalSpecs, resolveWorktreeBootstrapSetup, resolveWorktreeRuntimeEnv, runWorktreeSetupCommands, WorktreeSetupError, } from "../utils/worktree.js";
3
5
  const MAX_WORKTREE_SETUP_COMMAND_OUTPUT_BYTES = 64 * 1024;
4
6
  const WORKTREE_SETUP_TRUNCATION_MARKER = "\n...<output truncated in the middle>...\n";
5
7
  const WORKTREE_BOOTSTRAP_TERMINAL_READY_TIMEOUT_MS = 1500;
8
+ const SETUP_TERMINAL_NAME = "Setup";
9
+ const SETUP_SENTINEL_PREFIX = "__JUNCTION_SETUP_DONE__";
10
+ const SETUP_COMMAND_START_SENTINEL_PREFIX = "__JUNCTION_SETUP_COMMAND_START__";
11
+ const SETUP_COMMAND_DONE_SENTINEL_PREFIX = "__JUNCTION_SETUP_COMMAND_DONE__";
12
+ const ANSI_ESCAPE_REGEX = /\u001B[\[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g;
13
+ function countCopiedFiles(rootPath) {
14
+ let total = 0;
15
+ const stack = [rootPath];
16
+ while (stack.length > 0) {
17
+ const currentPath = stack.pop();
18
+ if (!currentPath) {
19
+ continue;
20
+ }
21
+ for (const entry of readdirSync(currentPath, { withFileTypes: true })) {
22
+ if (entry.name === ".git") {
23
+ continue;
24
+ }
25
+ const nextPath = join(currentPath, entry.name);
26
+ if (entry.isDirectory()) {
27
+ stack.push(nextPath);
28
+ continue;
29
+ }
30
+ total += 1;
31
+ }
32
+ }
33
+ return total;
34
+ }
6
35
  function byteLength(text) {
7
36
  return Buffer.byteLength(text, "utf8");
8
37
  }
@@ -96,6 +125,44 @@ export async function createAgentWorktree(options) {
96
125
  function formatDurationMs(durationMs) {
97
126
  return `${(durationMs / 1000).toFixed(2)}s`;
98
127
  }
128
+ function escapeRegex(value) {
129
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
130
+ }
131
+ function quoteForShell(value) {
132
+ return `'${value.replace(/'/g, `'\"'\"'`)}'`;
133
+ }
134
+ function resolveSetupTerminalShells() {
135
+ const interactiveShell = process.env.SHELL || "/bin/sh";
136
+ const interactiveShellName = basename(interactiveShell).toLowerCase();
137
+ const supportsDashLc = interactiveShellName === "sh" || interactiveShellName === "bash" || interactiveShellName === "zsh";
138
+ return {
139
+ runnerShell: supportsDashLc ? interactiveShell : "/bin/sh",
140
+ interactiveShell,
141
+ };
142
+ }
143
+ function normalizeTerminalControlText(value) {
144
+ if (!value) {
145
+ return "";
146
+ }
147
+ const stripped = value.replace(ANSI_ESCAPE_REGEX, "");
148
+ let normalized = "";
149
+ for (const char of stripped) {
150
+ if (char === "\b") {
151
+ normalized = normalized.slice(0, -1);
152
+ continue;
153
+ }
154
+ if (char === "\r") {
155
+ normalized += "\n";
156
+ continue;
157
+ }
158
+ const codePoint = char.codePointAt(0) ?? 0;
159
+ if (codePoint < 0x20 && char !== "\n" && char !== "\t") {
160
+ continue;
161
+ }
162
+ normalized += char;
163
+ }
164
+ return normalized;
165
+ }
99
166
  function commandStatusFromResult(result) {
100
167
  if (result.exitCode === null) {
101
168
  return "running";
@@ -184,6 +251,45 @@ function buildSetupTimelineItem(input) {
184
251
  error: { message: input.errorMessage ?? "Worktree setup failed" },
185
252
  };
186
253
  }
254
+ function buildWorkspaceBootstrapTimelineItem(input) {
255
+ const detail = {
256
+ type: "workspace_bootstrap",
257
+ workspaceName: input.worktree.workspaceName,
258
+ baseBranch: input.worktree.baseBranch,
259
+ branchName: input.worktree.branchName,
260
+ worktreePath: input.worktree.worktreePath,
261
+ copiedFilesCount: input.copiedFilesCount,
262
+ setupStatus: input.setupStatus,
263
+ };
264
+ if (input.status === "running") {
265
+ return {
266
+ type: "tool_call",
267
+ name: "junction_workspace_bootstrap",
268
+ callId: input.callId,
269
+ status: "running",
270
+ detail,
271
+ error: null,
272
+ };
273
+ }
274
+ if (input.status === "completed") {
275
+ return {
276
+ type: "tool_call",
277
+ name: "junction_workspace_bootstrap",
278
+ callId: input.callId,
279
+ status: "completed",
280
+ detail,
281
+ error: null,
282
+ };
283
+ }
284
+ return {
285
+ type: "tool_call",
286
+ name: "junction_workspace_bootstrap",
287
+ callId: input.callId,
288
+ status: "failed",
289
+ detail,
290
+ error: { message: input.errorMessage ?? "Workspace bootstrap failed" },
291
+ };
292
+ }
187
293
  function buildTerminalTimelineItem(input) {
188
294
  const detailInput = {
189
295
  worktreePath: input.worktree.worktreePath,
@@ -268,6 +374,223 @@ async function waitForTerminalBootstrapReadiness(terminal) {
268
374
  timeout = setTimeout(finish, WORKTREE_BOOTSTRAP_TERMINAL_READY_TIMEOUT_MS);
269
375
  });
270
376
  }
377
+ function buildSetupTerminalBootstrapCommand(input) {
378
+ const lines = [
379
+ `__junction_setup_exec_shell=${quoteForShell(input.runnerShell)}`,
380
+ `__junction_setup_interactive_shell=${quoteForShell(input.interactiveShell)}`,
381
+ "__junction_setup_status=0",
382
+ "__junction_setup_run_command() {",
383
+ ' __junction_setup_index="$1"',
384
+ ' __junction_setup_command="$2"',
385
+ ` printf '\\n${SETUP_COMMAND_START_SENTINEL_PREFIX}:${input.token}:%s\\n' "$__junction_setup_index"`,
386
+ ' "$__junction_setup_exec_shell" -lc "$__junction_setup_command"',
387
+ " __junction_setup_command_status=$?",
388
+ ` printf '\\n${SETUP_COMMAND_DONE_SENTINEL_PREFIX}:${input.token}:%s:%s\\n' "$__junction_setup_index" "$__junction_setup_command_status"`,
389
+ ' return "$__junction_setup_command_status"',
390
+ "}",
391
+ ];
392
+ for (const [index, command] of input.commands.entries()) {
393
+ lines.push('if [ "$__junction_setup_status" -eq 0 ]; then');
394
+ lines.push(` __junction_setup_run_command ${index + 1} ${quoteForShell(command)} || __junction_setup_status=$?`);
395
+ lines.push("fi");
396
+ }
397
+ lines.push(`printf '\\n${SETUP_SENTINEL_PREFIX}:${input.token}:%s\\n' "$__junction_setup_status"`);
398
+ lines.push('exec "$__junction_setup_interactive_shell" -i || exec /bin/sh -i');
399
+ lines.push("");
400
+ return lines.join("\n");
401
+ }
402
+ function stripSetupProtocolOutput(output, token) {
403
+ if (!output) {
404
+ return "";
405
+ }
406
+ const protocolPattern = new RegExp([
407
+ escapeRegex(SETUP_COMMAND_START_SENTINEL_PREFIX),
408
+ escapeRegex(SETUP_COMMAND_DONE_SENTINEL_PREFIX),
409
+ escapeRegex(SETUP_SENTINEL_PREFIX),
410
+ ]
411
+ .map((prefix) => `\\r?\\n?${prefix}:${escapeRegex(token)}(?::\\d+){1,2}\\r?\\n?`)
412
+ .join("|"), "g");
413
+ return output.replace(protocolPattern, "\n");
414
+ }
415
+ async function runSetupCommandsInTerminal(options) {
416
+ const token = uuidv4();
417
+ const { runnerShell, interactiveShell } = resolveSetupTerminalShells();
418
+ const terminal = await options.terminalManager.createTerminal({
419
+ cwd: options.worktree.worktreePath,
420
+ name: SETUP_TERMINAL_NAME,
421
+ env: options.runtimeEnv,
422
+ shell: runnerShell,
423
+ shellArgs: [
424
+ "-lc",
425
+ buildSetupTerminalBootstrapCommand({
426
+ commands: options.setup.commands,
427
+ token,
428
+ runnerShell,
429
+ interactiveShell,
430
+ }),
431
+ ],
432
+ });
433
+ let terminalClosedError = null;
434
+ const commandOutputByIndex = new Map();
435
+ const commandStartedAtByIndex = new Map();
436
+ const resultsByIndex = new Map();
437
+ const startPattern = new RegExp(`^${escapeRegex(SETUP_COMMAND_START_SENTINEL_PREFIX)}:${escapeRegex(token)}:(\\d+)$`);
438
+ const donePattern = new RegExp(`^${escapeRegex(SETUP_COMMAND_DONE_SENTINEL_PREFIX)}:${escapeRegex(token)}:(\\d+):(\\d+)$`);
439
+ const setupDonePattern = new RegExp(`^${escapeRegex(SETUP_SENTINEL_PREFIX)}:${escapeRegex(token)}:(\\d+)$`);
440
+ let activeCommandIndex = null;
441
+ let normalizedBuffer = "";
442
+ const unsubscribeExit = terminal.onExit(() => {
443
+ terminalClosedError = "Setup terminal exited before the setup script completed.";
444
+ });
445
+ const buildOrderedResults = () => Array.from(resultsByIndex.entries())
446
+ .sort((a, b) => a[0] - b[0])
447
+ .map(([, result]) => result);
448
+ try {
449
+ await new Promise((resolve, reject) => {
450
+ let settled = false;
451
+ let rawSubscription = null;
452
+ let exitPoll = null;
453
+ const cleanup = () => {
454
+ if (exitPoll) {
455
+ clearInterval(exitPoll);
456
+ exitPoll = null;
457
+ }
458
+ rawSubscription?.unsubscribe();
459
+ rawSubscription = null;
460
+ };
461
+ const settle = (callback) => {
462
+ if (settled) {
463
+ return;
464
+ }
465
+ settled = true;
466
+ cleanup();
467
+ callback();
468
+ };
469
+ const handleError = (error) => {
470
+ settle(() => reject(error));
471
+ };
472
+ const processLine = (line) => {
473
+ const startMatch = startPattern.exec(line);
474
+ if (startMatch) {
475
+ const commandIndex = Number.parseInt(startMatch[1] ?? "", 10);
476
+ if (!Number.isFinite(commandIndex) || commandIndex < 1 || commandIndex > options.setup.commands.length) {
477
+ return;
478
+ }
479
+ activeCommandIndex = commandIndex;
480
+ commandStartedAtByIndex.set(commandIndex, Date.now());
481
+ commandOutputByIndex.set(commandIndex, "");
482
+ options.onEvent?.({
483
+ type: "command_started",
484
+ index: commandIndex,
485
+ total: options.setup.commands.length,
486
+ command: options.setup.commands[commandIndex - 1] ?? "",
487
+ cwd: options.worktree.worktreePath,
488
+ });
489
+ return;
490
+ }
491
+ const doneMatch = donePattern.exec(line);
492
+ if (doneMatch) {
493
+ const commandIndex = Number.parseInt(doneMatch[1] ?? "", 10);
494
+ const exitCode = Number.parseInt(doneMatch[2] ?? "", 10);
495
+ if (!Number.isFinite(commandIndex) || commandIndex < 1 || commandIndex > options.setup.commands.length) {
496
+ return;
497
+ }
498
+ const stdout = stripSetupProtocolOutput(commandOutputByIndex.get(commandIndex) ?? "", token);
499
+ const result = {
500
+ command: options.setup.commands[commandIndex - 1] ?? "",
501
+ cwd: options.worktree.worktreePath,
502
+ stdout,
503
+ stderr: "",
504
+ exitCode: Number.isFinite(exitCode) ? exitCode : null,
505
+ durationMs: Math.max(0, Date.now() - (commandStartedAtByIndex.get(commandIndex) ?? Date.now())),
506
+ };
507
+ resultsByIndex.set(commandIndex, result);
508
+ if (activeCommandIndex === commandIndex) {
509
+ activeCommandIndex = null;
510
+ }
511
+ options.onEvent?.({
512
+ type: "command_completed",
513
+ index: commandIndex,
514
+ total: options.setup.commands.length,
515
+ command: result.command,
516
+ cwd: result.cwd,
517
+ exitCode: result.exitCode,
518
+ durationMs: result.durationMs,
519
+ stdout: result.stdout,
520
+ stderr: result.stderr,
521
+ });
522
+ if (result.exitCode !== 0) {
523
+ handleError(new WorktreeSetupError(`Worktree setup command failed: ${result.command}`.trim(), buildOrderedResults()));
524
+ }
525
+ return;
526
+ }
527
+ const setupDoneMatch = setupDonePattern.exec(line);
528
+ if (setupDoneMatch) {
529
+ const exitCode = Number.parseInt(setupDoneMatch[1] ?? "", 10);
530
+ if (!Number.isFinite(exitCode) || exitCode !== 0) {
531
+ handleError(new WorktreeSetupError("Worktree setup failed", buildOrderedResults()));
532
+ return;
533
+ }
534
+ if (resultsByIndex.size !== options.setup.commands.length) {
535
+ handleError(new Error("Setup terminal completed without recording all setup commands."));
536
+ return;
537
+ }
538
+ settle(resolve);
539
+ return;
540
+ }
541
+ if (activeCommandIndex === null) {
542
+ return;
543
+ }
544
+ const outputChunk = `${line}\n`;
545
+ commandOutputByIndex.set(activeCommandIndex, `${commandOutputByIndex.get(activeCommandIndex) ?? ""}${outputChunk}`);
546
+ options.onEvent?.({
547
+ type: "output",
548
+ index: activeCommandIndex,
549
+ total: options.setup.commands.length,
550
+ command: options.setup.commands[activeCommandIndex - 1] ?? "",
551
+ cwd: options.worktree.worktreePath,
552
+ stream: "stdout",
553
+ chunk: outputChunk,
554
+ });
555
+ };
556
+ rawSubscription = terminal.subscribeRaw((chunk) => {
557
+ if (settled) {
558
+ return;
559
+ }
560
+ const normalizedChunk = normalizeTerminalControlText(chunk.data);
561
+ if (!normalizedChunk) {
562
+ return;
563
+ }
564
+ normalizedBuffer = `${normalizedBuffer}${normalizedChunk}`;
565
+ let newlineIndex = normalizedBuffer.indexOf("\n");
566
+ while (newlineIndex !== -1) {
567
+ const line = normalizedBuffer.slice(0, newlineIndex);
568
+ normalizedBuffer = normalizedBuffer.slice(newlineIndex + 1);
569
+ processLine(line);
570
+ newlineIndex = normalizedBuffer.indexOf("\n");
571
+ }
572
+ }, { fromOffset: 0 });
573
+ if (terminalClosedError) {
574
+ handleError(new Error(terminalClosedError));
575
+ return;
576
+ }
577
+ exitPoll = setInterval(() => {
578
+ if (settled) {
579
+ return;
580
+ }
581
+ if (terminalClosedError) {
582
+ handleError(new Error(terminalClosedError));
583
+ }
584
+ }, 25);
585
+ });
586
+ }
587
+ finally {
588
+ unsubscribeExit();
589
+ }
590
+ return Array.from(resultsByIndex.entries())
591
+ .sort((a, b) => a[0] - b[0])
592
+ .map(([, result]) => result);
593
+ }
271
594
  async function runWorktreeTerminalBootstrap(options, runtimeEnv) {
272
595
  const terminalSpecs = getWorktreeTerminalSpecs(options.worktree.worktreePath);
273
596
  if (terminalSpecs.length === 0) {
@@ -336,13 +659,44 @@ async function runWorktreeTerminalBootstrap(options, runtimeEnv) {
336
659
  }));
337
660
  }
338
661
  export async function runAsyncWorktreeBootstrap(options) {
662
+ const bootstrapCallId = uuidv4();
339
663
  const setupCallId = uuidv4();
340
664
  let setupResults = [];
341
665
  let runtimeEnv = null;
666
+ const copiedFilesCount = countCopiedFiles(options.worktree.worktreePath);
667
+ const resolvedSetup = resolveWorktreeBootstrapSetup({
668
+ repoRoot: options.worktree.worktreePath,
669
+ override: options.setupOverride,
670
+ });
671
+ const hasSetupCommands = Boolean(resolvedSetup && resolvedSetup.commands.length > 0);
342
672
  const emitLiveTimelineItem = options.emitLiveTimelineItem;
343
673
  const runningResultsByIndex = new Map();
344
674
  const outputAccumulatorsByIndex = new Map();
345
675
  let liveEmitQueue = Promise.resolve();
676
+ const started = await options.appendTimelineItem(buildWorkspaceBootstrapTimelineItem({
677
+ callId: bootstrapCallId,
678
+ status: "running",
679
+ worktree: options.worktree,
680
+ copiedFilesCount,
681
+ setupStatus: hasSetupCommands ? "running" : "not_required",
682
+ errorMessage: null,
683
+ }));
684
+ if (!started) {
685
+ return;
686
+ }
687
+ if (hasSetupCommands) {
688
+ const setupStarted = await options.appendTimelineItem(buildSetupTimelineItem({
689
+ callId: setupCallId,
690
+ status: "running",
691
+ worktree: options.worktree,
692
+ results: [],
693
+ outputAccumulatorsByIndex,
694
+ errorMessage: null,
695
+ }));
696
+ if (!setupStarted) {
697
+ return;
698
+ }
699
+ }
346
700
  const queueLiveRunningEmit = () => {
347
701
  if (!emitLiveTimelineItem) {
348
702
  return;
@@ -375,12 +729,8 @@ export async function runAsyncWorktreeBootstrap(options) {
375
729
  cwd: options.worktree.worktreePath,
376
730
  env: runtimeEnv,
377
731
  });
378
- setupResults = await runWorktreeSetupCommands({
379
- worktreePath: options.worktree.worktreePath,
380
- branchName: options.worktree.branchName,
381
- cleanupOnFailure: false,
382
- runtimeEnv,
383
- onEvent: (event) => {
732
+ if (resolvedSetup) {
733
+ const handleSetupEvent = (event) => {
384
734
  const existing = runningResultsByIndex.get(event.index);
385
735
  const baseResult = existing ?? {
386
736
  command: event.command,
@@ -390,48 +740,80 @@ export async function runAsyncWorktreeBootstrap(options) {
390
740
  exitCode: null,
391
741
  durationMs: 0,
392
742
  };
393
- if (event.type === "output") {
743
+ if (event.type === "output" && event.chunk) {
394
744
  const outputAccumulator = outputAccumulatorsByIndex.get(event.index) ??
395
745
  createMiddleTruncationAccumulator();
396
746
  appendToMiddleTruncationAccumulator(outputAccumulator, event.chunk);
397
747
  outputAccumulatorsByIndex.set(event.index, outputAccumulator);
398
- runningResultsByIndex.set(event.index, {
399
- ...baseResult,
400
- // Keep the timeline command model lightweight; output is carried in
401
- // outputAccumulatorsByIndex.
402
- stdout: baseResult.stdout,
403
- stderr: baseResult.stderr,
404
- });
748
+ runningResultsByIndex.set(event.index, baseResult);
405
749
  queueLiveRunningEmit();
406
750
  return;
407
751
  }
408
752
  if (event.type === "command_completed") {
753
+ const outputAccumulator = outputAccumulatorsByIndex.get(event.index) ??
754
+ createMiddleTruncationAccumulator();
755
+ appendToMiddleTruncationAccumulator(outputAccumulator, `${event.stdout ?? ""}${event.stderr ?? ""}`);
756
+ outputAccumulatorsByIndex.set(event.index, outputAccumulator);
409
757
  runningResultsByIndex.set(event.index, {
410
758
  ...baseResult,
411
- stdout: event.stdout,
412
- stderr: event.stderr,
413
- exitCode: event.exitCode,
414
- durationMs: event.durationMs,
759
+ stdout: event.stdout ?? "",
760
+ stderr: event.stderr ?? "",
761
+ exitCode: event.exitCode ?? null,
762
+ durationMs: event.durationMs ?? 0,
415
763
  });
416
764
  queueLiveRunningEmit();
417
765
  return;
418
766
  }
419
767
  runningResultsByIndex.set(event.index, baseResult);
420
768
  queueLiveRunningEmit();
421
- },
422
- });
769
+ };
770
+ setupResults =
771
+ options.terminalManager
772
+ ? await runSetupCommandsInTerminal({
773
+ terminalManager: options.terminalManager,
774
+ worktree: options.worktree,
775
+ runtimeEnv,
776
+ setup: resolvedSetup,
777
+ onEvent: handleSetupEvent,
778
+ })
779
+ : await runWorktreeSetupCommands({
780
+ worktreePath: options.worktree.worktreePath,
781
+ branchName: options.worktree.branchName,
782
+ cleanupOnFailure: false,
783
+ commands: resolvedSetup.commands,
784
+ runtimeEnv,
785
+ onEvent: handleSetupEvent,
786
+ });
787
+ }
423
788
  await liveEmitQueue;
424
- const completed = await options.appendTimelineItem(buildSetupTimelineItem({
425
- callId: setupCallId,
789
+ if (hasSetupCommands) {
790
+ const completed = await options.appendTimelineItem(buildSetupTimelineItem({
791
+ callId: setupCallId,
792
+ status: "completed",
793
+ worktree: options.worktree,
794
+ results: setupResults,
795
+ outputAccumulatorsByIndex,
796
+ errorMessage: null,
797
+ }));
798
+ if (!completed) {
799
+ return;
800
+ }
801
+ }
802
+ const bootstrapCompleted = await options.appendTimelineItem(buildWorkspaceBootstrapTimelineItem({
803
+ callId: bootstrapCallId,
426
804
  status: "completed",
427
805
  worktree: options.worktree,
428
- results: setupResults,
429
- outputAccumulatorsByIndex,
806
+ copiedFilesCount,
807
+ setupStatus: hasSetupCommands ? "completed" : "not_required",
430
808
  errorMessage: null,
431
809
  }));
432
- if (!completed) {
810
+ if (!bootstrapCompleted) {
433
811
  return;
434
812
  }
813
+ await options.onSetupSettled?.({
814
+ setupStatus: hasSetupCommands ? "completed" : "not_required",
815
+ errorMessage: null,
816
+ });
435
817
  }
436
818
  catch (error) {
437
819
  if (error instanceof WorktreeSetupError) {
@@ -439,14 +821,28 @@ export async function runAsyncWorktreeBootstrap(options) {
439
821
  }
440
822
  await liveEmitQueue;
441
823
  const message = error instanceof Error ? error.message : String(error);
442
- await options.appendTimelineItem(buildSetupTimelineItem({
443
- callId: setupCallId,
824
+ if (hasSetupCommands) {
825
+ await options.appendTimelineItem(buildSetupTimelineItem({
826
+ callId: setupCallId,
827
+ status: "failed",
828
+ worktree: options.worktree,
829
+ results: setupResults,
830
+ outputAccumulatorsByIndex,
831
+ errorMessage: message,
832
+ }));
833
+ }
834
+ await options.appendTimelineItem(buildWorkspaceBootstrapTimelineItem({
835
+ callId: bootstrapCallId,
444
836
  status: "failed",
445
837
  worktree: options.worktree,
446
- results: setupResults,
447
- outputAccumulatorsByIndex,
838
+ copiedFilesCount,
839
+ setupStatus: "failed",
448
840
  errorMessage: message,
449
841
  }));
842
+ await options.onSetupSettled?.({
843
+ setupStatus: "failed",
844
+ errorMessage: message,
845
+ });
450
846
  return;
451
847
  }
452
848
  await runWorktreeTerminalBootstrap(options, runtimeEnv);
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-bootstrap.js","sourceRoot":"","sources":["../../../src/server/worktree-bootstrap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worktree-bootstrap.js","sourceRoot":"","sources":["../../../src/server/worktree-bootstrap.ts"],"names":[],"mappings":"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"}