@sideboard-ai/core 0.1.150 → 0.1.151

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 (41) hide show
  1. package/dist/{agents-YWBQXOA2.js → agents-JAOMXDXN.js} +6 -6
  2. package/dist/{agents-KKXGTEV6.js → agents-U2JCFXW4.js} +6 -6
  3. package/dist/{chunk-W6N6GQME.js → chunk-2SDMENAL.js} +1 -1
  4. package/dist/{chunk-Z2PVJKMN.js → chunk-3JBMACYX.js} +2 -2
  5. package/dist/{chunk-NUPITVRF.js → chunk-6H4TJ5TA.js} +21 -21
  6. package/dist/{chunk-NOTANBYC.js → chunk-77MP647F.js} +1 -1
  7. package/dist/{chunk-AF6O55PJ.js → chunk-ADCEGG4A.js} +3 -3
  8. package/dist/{chunk-DXCNW2JF.js → chunk-GCWAAPJ5.js} +21 -21
  9. package/dist/{chunk-ZGFYFVJF.js → chunk-GE7M3QTE.js} +2 -2
  10. package/dist/{chunk-HAS5EPBS.js → chunk-HWZWBJWL.js} +2 -2
  11. package/dist/{chunk-WHU7YGWP.js → chunk-JRH62XC4.js} +4 -0
  12. package/dist/{chunk-YGGBJY5A.js → chunk-LZAOX76N.js} +3 -3
  13. package/dist/{chunk-DMRIZR6M.js → chunk-OXOU2FRS.js} +1 -1
  14. package/dist/{chunk-Y4NAPW5I.js → chunk-QQKDGPUI.js} +16 -13
  15. package/dist/{chunk-PTOSP4AH.js → chunk-RFMQY56R.js} +1 -1
  16. package/dist/{chunk-VSFGPWCQ.js → chunk-SYFVUF2C.js} +16 -13
  17. package/dist/{chunk-QGJHIJHV.js → chunk-TSCWSAQL.js} +2 -2
  18. package/dist/{chunk-SDN4ZYQH.js → chunk-UIS7BVCX.js} +3 -3
  19. package/dist/{chunk-VO4SPEBS.js → chunk-Y2FNDKHF.js} +3 -3
  20. package/dist/{coordinator-prompt-NYR5TPBD.js → coordinator-prompt-LWYUZAXR.js} +4 -4
  21. package/dist/{coordinator-prompt-UCQJTFA7.js → coordinator-prompt-ZK5MII7W.js} +4 -4
  22. package/dist/{global-workspace-4SENNWBU.js → global-workspace-IB2CCEJF.js} +5 -5
  23. package/dist/{global-workspace-4QHDAD2D.js → global-workspace-T7RL3XEC.js} +5 -5
  24. package/dist/index.cjs +26 -17
  25. package/dist/index.d.cts +6 -2
  26. package/dist/index.d.ts +6 -2
  27. package/dist/index.js +14 -10
  28. package/dist/mcp/run-stdio.cjs +19 -16
  29. package/dist/mcp/run-stdio.js +10 -10
  30. package/dist/{orchestrator-QSBRWME5.js → orchestrator-DPTRBKEH.js} +9 -9
  31. package/dist/{orchestrator-GZE4X3XV.js → orchestrator-Y5MWUU7C.js} +9 -9
  32. package/dist/{plan-file-5S5TUNAW.js → plan-file-LSSSQGTQ.js} +2 -2
  33. package/dist/{plan-file-IBSU2PVW.js → plan-file-OZEBFSGQ.js} +2 -2
  34. package/dist/{workspaces-7S7QKCUE.js → workspaces-VICQYI2N.js} +6 -6
  35. package/dist/{workspaces-RDUSB6FD.js → workspaces-ZXCUVCZC.js} +6 -6
  36. package/dist/{worktree-63AGPPLO.js → worktree-DPIREDFR.js} +3 -3
  37. package/dist/{worktree-JIZ3QMZX.js → worktree-HTUM35NT.js} +3 -3
  38. package/dist/{worktree-exclude-6MQWGWV5.js → worktree-exclude-N5X5I422.js} +3 -1
  39. package/dist/{worktree-exclude-TV6EV6BS.js → worktree-exclude-X54WSOXM.js} +3 -1
  40. package/package.json +1 -1
  41. /package/dist/{chunk-Y7YBWWIG.js → chunk-NVXVEGGM.js} +0 -0
@@ -36,7 +36,7 @@ import {
36
36
  resolveQuotaFallbackAgent,
37
37
  turnCostUsdFromCursorUsage,
38
38
  whichOnPath
39
- } from "./chunk-YGGBJY5A.js";
39
+ } from "./chunk-LZAOX76N.js";
40
40
  import "./chunk-G7SIQFBQ.js";
41
41
  import "./chunk-S42XV45P.js";
42
42
  import {
@@ -44,13 +44,13 @@ import {
44
44
  assertOrchestratorCapableAgent,
45
45
  coerceOrchestratorAgent,
46
46
  isOrchestratorCapableAgent
47
- } from "./chunk-VO4SPEBS.js";
47
+ } from "./chunk-Y2FNDKHF.js";
48
48
  import "./chunk-6GN5WPYZ.js";
49
- import "./chunk-DMRIZR6M.js";
50
- import "./chunk-Z2PVJKMN.js";
51
- import "./chunk-Y7YBWWIG.js";
49
+ import "./chunk-OXOU2FRS.js";
50
+ import "./chunk-3JBMACYX.js";
51
+ import "./chunk-NVXVEGGM.js";
52
52
  import "./chunk-EUXOHTUK.js";
53
- import "./chunk-VSFGPWCQ.js";
53
+ import "./chunk-SYFVUF2C.js";
54
54
  import {
55
55
  conductorBundledBinDir,
56
56
  enrichPathWithNpmGlobalBin,
@@ -30,7 +30,7 @@ import {
30
30
  resolveLoginCommand,
31
31
  resolveQuotaFallbackAgent,
32
32
  whichOnPath
33
- } from "./chunk-SDN4ZYQH.js";
33
+ } from "./chunk-UIS7BVCX.js";
34
34
  import "./chunk-7F4XE6UG.js";
35
35
  import "./chunk-M267JPEA.js";
36
36
  import {
@@ -38,10 +38,10 @@ import {
38
38
  assertOrchestratorCapableAgent,
39
39
  coerceOrchestratorAgent,
40
40
  isOrchestratorCapableAgent
41
- } from "./chunk-AF6O55PJ.js";
42
- import "./chunk-NOTANBYC.js";
43
- import "./chunk-ZGFYFVJF.js";
44
- import "./chunk-WHU7YGWP.js";
41
+ } from "./chunk-ADCEGG4A.js";
42
+ import "./chunk-77MP647F.js";
43
+ import "./chunk-GE7M3QTE.js";
44
+ import "./chunk-JRH62XC4.js";
45
45
  import "./chunk-ELBYOGVA.js";
46
46
  import {
47
47
  cursorSdkMessageToEvents,
@@ -55,7 +55,7 @@ import "./chunk-JT7R45JB.js";
55
55
  import "./chunk-TUGKX5BD.js";
56
56
  import "./chunk-77WWLBCI.js";
57
57
  import "./chunk-QZQEXME2.js";
58
- import "./chunk-Y4NAPW5I.js";
58
+ import "./chunk-QQKDGPUI.js";
59
59
  import {
60
60
  conductorBundledBinDir,
61
61
  enrichPathWithNpmGlobalBin,
@@ -4,7 +4,7 @@ import {
4
4
  ATTACHMENTS_DIR,
5
5
  LEGACY_ATTACHMENTS_DIR,
6
6
  attachmentsGitignoreBody
7
- } from "./chunk-Y7YBWWIG.js";
7
+ } from "./chunk-NVXVEGGM.js";
8
8
 
9
9
  // src/plan/plan-file.ts
10
10
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
@@ -2,13 +2,13 @@
2
2
 
3
3
  import {
4
4
  isWorkspaceScratchPath
5
- } from "./chunk-Y7YBWWIG.js";
5
+ } from "./chunk-NVXVEGGM.js";
6
6
  import {
7
7
  listThreads
8
8
  } from "./chunk-EUXOHTUK.js";
9
9
  import {
10
10
  ensureWorktreeSideboardIgnored
11
- } from "./chunk-VSFGPWCQ.js";
11
+ } from "./chunk-SYFVUF2C.js";
12
12
  import {
13
13
  gh,
14
14
  git,
@@ -2,7 +2,7 @@ import {
2
2
  extractPresentedPlan,
3
3
  readPlanFile,
4
4
  writePlanFile
5
- } from "./chunk-PTOSP4AH.js";
5
+ } from "./chunk-RFMQY56R.js";
6
6
  import {
7
7
  PLAN_MODE_INSTRUCTION,
8
8
  allAdapters,
@@ -24,13 +24,13 @@ import {
24
24
  stripBrightsyNdjsonNoise,
25
25
  sumUsageList,
26
26
  toolDescription
27
- } from "./chunk-SDN4ZYQH.js";
27
+ } from "./chunk-UIS7BVCX.js";
28
28
  import {
29
29
  addWorkspace,
30
30
  ensureWorkspace,
31
31
  removeWorkspace,
32
32
  syncWorkspacesFromThreads
33
- } from "./chunk-HAS5EPBS.js";
33
+ } from "./chunk-HWZWBJWL.js";
34
34
  import {
35
35
  assertOrchestratorCapableAgent,
36
36
  attachmentsFromWorktreePaths,
@@ -47,14 +47,14 @@ import {
47
47
  persistPendingFileAttachments,
48
48
  stageAbsolutePathsAsAttachments,
49
49
  stageBuffersAsAttachments
50
- } from "./chunk-AF6O55PJ.js";
50
+ } from "./chunk-ADCEGG4A.js";
51
51
  import {
52
52
  SLACK_REPLY_FORMATTING,
53
53
  coordinatorSystemPrompt,
54
54
  coordinatorTurnReminder,
55
55
  enrichWorkspacesWithGithub,
56
56
  ensureGlobalCoordinatorCwd
57
- } from "./chunk-NOTANBYC.js";
57
+ } from "./chunk-77MP647F.js";
58
58
  import {
59
59
  addPrStackLayer,
60
60
  allocateTeamName,
@@ -102,11 +102,11 @@ import {
102
102
  withRepoGitLock,
103
103
  worktreeDisplayLabelForGroup,
104
104
  worktreeNameFromPath
105
- } from "./chunk-ZGFYFVJF.js";
105
+ } from "./chunk-GE7M3QTE.js";
106
106
  import {
107
107
  ATTACHMENTS_DIR,
108
108
  LEGACY_ATTACHMENTS_DIR
109
- } from "./chunk-WHU7YGWP.js";
109
+ } from "./chunk-JRH62XC4.js";
110
110
  import {
111
111
  httpFetch
112
112
  } from "./chunk-ELBYOGVA.js";
@@ -179,7 +179,7 @@ import {
179
179
  } from "./chunk-QZQEXME2.js";
180
180
  import {
181
181
  ensureWorktreeSideboardIgnored
182
- } from "./chunk-Y4NAPW5I.js";
182
+ } from "./chunk-QQKDGPUI.js";
183
183
  import {
184
184
  clearStaleIndexLocks,
185
185
  enrichPathWithNpmGlobalBin,
@@ -460,7 +460,7 @@ async function continueSourceThread(threadId, prompt) {
460
460
  await continueOnReply(threadId, prompt);
461
461
  return;
462
462
  }
463
- const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-QSBRWME5.js");
463
+ const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-DPTRBKEH.js");
464
464
  await getOrchestrator2().send(threadId, prompt);
465
465
  } catch {
466
466
  }
@@ -740,9 +740,9 @@ async function spawnAgentTurn(thread, input, onEvent) {
740
740
  `Cannot spawn ${thread.agent}: thread ${thread.id} has no worktreePath`
741
741
  );
742
742
  }
743
- const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-4SENNWBU.js");
743
+ const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-IB2CCEJF.js");
744
744
  if (isGlobalThread2(thread)) {
745
- const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-NYR5TPBD.js");
745
+ const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-LWYUZAXR.js");
746
746
  ensureGlobalCoordinatorCwd2(
747
747
  isOrchestratorThread(thread) ? { orchestratorThreadId: thread.id } : void 0
748
748
  );
@@ -3078,7 +3078,7 @@ async function createThread(input, _onSetupLine) {
3078
3078
  return readThread(thread.id) ?? thread;
3079
3079
  }
3080
3080
  async function listLinearIssues(agent, repoPath) {
3081
- const { getAdapter: getAdapter2 } = await import("./agents-KKXGTEV6.js");
3081
+ const { getAdapter: getAdapter2 } = await import("./agents-U2JCFXW4.js");
3082
3082
  await requireAgent(agent, { requireLinear: true });
3083
3083
  const adapter = getAdapter2(agent);
3084
3084
  if (!adapter.listLinearIssues) {
@@ -3485,9 +3485,9 @@ async function adoptThread(input) {
3485
3485
  messages: input.messages ?? []
3486
3486
  });
3487
3487
  writeThread(thread);
3488
- const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-RDUSB6FD.js");
3488
+ const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-ZXCUVCZC.js");
3489
3489
  await ensureWorkspace2(repoPath);
3490
- const { ensureWorktreeSideboardIgnored: ensureWorktreeSideboardIgnored2 } = await import("./worktree-exclude-TV6EV6BS.js");
3490
+ const { ensureWorktreeSideboardIgnored: ensureWorktreeSideboardIgnored2 } = await import("./worktree-exclude-X54WSOXM.js");
3491
3491
  await ensureWorktreeSideboardIgnored2(input.worktreePath);
3492
3492
  return thread;
3493
3493
  }
@@ -4859,7 +4859,7 @@ node <detached-job.js> wait <id> --until-done
4859
4859
  node <detached-job.js> status <id>
4860
4860
  \`\`\`
4861
4861
 
4862
- \`<id>\` is kebab-case (\`mac-release\`, \`core-test\`, \`fly-deploy\`). State is \`.sideboard/detached-jobs/<id>/\` (local scratch).
4862
+ \`<id>\` is kebab-case (\`mac-release\`, \`core-test\`, \`fly-deploy\`). State is \`.context/.sideboard/detached-jobs/<id>/\` (local scratch).
4863
4863
 
4864
4864
  Wait JSON:
4865
4865
 
@@ -5310,7 +5310,7 @@ function formatLongRunningDirective(opts) {
5310
5310
  "- Immediately `present_artifact` `type=log` with `artifact_id=<id>` and `status=running` \u2014 the side column is the live view.",
5311
5311
  `- Loop \`${invoke} wait <id>\` (returns in ~45s). stillRunning \u2192 present the same id with \`content=delta\` only \u2192 wait again. Do not resend the full log or HTML.`,
5312
5312
  "- ok \u2192 finish the task. failed \u2192 read the log, fix, start once.",
5313
- "State: `.sideboard/detached-jobs/<id>/` (local scratch). Full guide: `/long-running` (always available)."
5313
+ "State: `.context/.sideboard/detached-jobs/<id>/` (local scratch). Full guide: `/long-running` (always available)."
5314
5314
  ].join("\n");
5315
5315
  }
5316
5316
  function formatLongRunningReminder(opts) {
@@ -5935,7 +5935,7 @@ function formatScheduledPrompt(name, prompt) {
5935
5935
  ${prompt}`;
5936
5936
  }
5937
5937
  async function defaultDeps() {
5938
- const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-QSBRWME5.js");
5938
+ const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-DPTRBKEH.js");
5939
5939
  const orch = getOrchestrator2();
5940
5940
  return {
5941
5941
  findThread: (id) => findThreadByRef(id),
@@ -7922,7 +7922,7 @@ var Orchestrator = class {
7922
7922
  this.emit({ type: "status_changed", threadId: archived.id, status: "archived" });
7923
7923
  if (thread.repoPath && !isGlobalRepoPath(thread.repoPath)) {
7924
7924
  try {
7925
- const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-RDUSB6FD.js");
7925
+ const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-ZXCUVCZC.js");
7926
7926
  await ensureWorkspace2(thread.repoPath);
7927
7927
  } catch {
7928
7928
  }
@@ -7976,13 +7976,13 @@ var Orchestrator = class {
7976
7976
  `Cowboy checkout missing: ${thread.worktreePath}. Re-add the project folder, then restore.`
7977
7977
  );
7978
7978
  }
7979
- const { createThreadWorktree: createThreadWorktree2 } = await import("./worktree-63AGPPLO.js");
7979
+ const { createThreadWorktree: createThreadWorktree2 } = await import("./worktree-DPIREDFR.js");
7980
7980
  const slug = thread.worktreePath.split("/").pop();
7981
7981
  const dest = thread.worktreePath;
7982
7982
  await withRepoGitLock(thread.repoPath, async () => {
7983
7983
  await git(["worktree", "add", dest, thread.branchName], thread.repoPath);
7984
7984
  });
7985
- const { ensureWorktreeSideboardIgnored: ensureWorktreeSideboardIgnored2 } = await import("./worktree-exclude-TV6EV6BS.js");
7985
+ const { ensureWorktreeSideboardIgnored: ensureWorktreeSideboardIgnored2 } = await import("./worktree-exclude-X54WSOXM.js");
7986
7986
  await ensureWorktreeSideboardIgnored2(dest);
7987
7987
  void createThreadWorktree2;
7988
7988
  void slug;
@@ -8086,7 +8086,7 @@ async function startOrchestration(opts) {
8086
8086
  sourceRef: "default",
8087
8087
  ...createOpts
8088
8088
  }).catch(async () => {
8089
- const { resolveDefaultBranch: resolveDefaultBranch2, resolveRepoRoot: resolveRepoRoot2 } = await import("./worktree-63AGPPLO.js");
8089
+ const { resolveDefaultBranch: resolveDefaultBranch2, resolveRepoRoot: resolveRepoRoot2 } = await import("./worktree-DPIREDFR.js");
8090
8090
  const repo = await resolveRepoRoot2(repoPath);
8091
8091
  const def = await resolveDefaultBranch2(repo);
8092
8092
  return orch.createThread({
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  resolveGithubRepoSlug
3
- } from "./chunk-ZGFYFVJF.js";
3
+ } from "./chunk-GE7M3QTE.js";
4
4
  import {
5
5
  resolveThreadDefaults
6
6
  } from "./chunk-4XNSGDXE.js";
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  ensureGlobalCoordinatorCwd
3
- } from "./chunk-NOTANBYC.js";
3
+ } from "./chunk-77MP647F.js";
4
4
  import {
5
5
  allocateTeamName,
6
6
  takenSlugsFromThread,
7
7
  teamSlugFromName
8
- } from "./chunk-ZGFYFVJF.js";
8
+ } from "./chunk-GE7M3QTE.js";
9
9
  import {
10
10
  ATTACHMENTS_DIR,
11
11
  attachmentsGitignoreBody
12
- } from "./chunk-WHU7YGWP.js";
12
+ } from "./chunk-JRH62XC4.js";
13
13
  import {
14
14
  resolveNewThreadOptions,
15
15
  resolveThreadDefaults
@@ -33,13 +33,13 @@ import {
33
33
  summarizeTurnStderr,
34
34
  toolDescription,
35
35
  turnFailChatText
36
- } from "./chunk-YGGBJY5A.js";
36
+ } from "./chunk-LZAOX76N.js";
37
37
  import {
38
38
  addWorkspace,
39
39
  ensureWorkspace,
40
40
  removeWorkspace,
41
41
  syncWorkspacesFromThreads
42
- } from "./chunk-QGJHIJHV.js";
42
+ } from "./chunk-TSCWSAQL.js";
43
43
  import {
44
44
  assertOrchestratorCapableAgent,
45
45
  attachmentsFromWorktreePaths,
@@ -56,12 +56,12 @@ import {
56
56
  persistPendingFileAttachments,
57
57
  stageAbsolutePathsAsAttachments,
58
58
  stageBuffersAsAttachments
59
- } from "./chunk-VO4SPEBS.js";
59
+ } from "./chunk-Y2FNDKHF.js";
60
60
  import {
61
61
  extractPresentedPlan,
62
62
  readPlanFile,
63
63
  writePlanFile
64
- } from "./chunk-W6N6GQME.js";
64
+ } from "./chunk-2SDMENAL.js";
65
65
  import {
66
66
  releaseCaffeinateHoldForThread
67
67
  } from "./chunk-KLBOWJ74.js";
@@ -71,7 +71,7 @@ import {
71
71
  coordinatorTurnReminder,
72
72
  enrichWorkspacesWithGithub,
73
73
  ensureGlobalCoordinatorCwd
74
- } from "./chunk-DMRIZR6M.js";
74
+ } from "./chunk-OXOU2FRS.js";
75
75
  import {
76
76
  addPrStackLayer,
77
77
  allocateTeamName,
@@ -119,11 +119,11 @@ import {
119
119
  withRepoGitLock,
120
120
  worktreeDisplayLabelForGroup,
121
121
  worktreeNameFromPath
122
- } from "./chunk-Z2PVJKMN.js";
122
+ } from "./chunk-3JBMACYX.js";
123
123
  import {
124
124
  ATTACHMENTS_DIR,
125
125
  LEGACY_ATTACHMENTS_DIR
126
- } from "./chunk-Y7YBWWIG.js";
126
+ } from "./chunk-NVXVEGGM.js";
127
127
  import {
128
128
  appendMessage,
129
129
  createEmptyThread,
@@ -138,7 +138,7 @@ import {
138
138
  } from "./chunk-EUXOHTUK.js";
139
139
  import {
140
140
  ensureWorktreeSideboardIgnored
141
- } from "./chunk-VSFGPWCQ.js";
141
+ } from "./chunk-SYFVUF2C.js";
142
142
  import {
143
143
  clearStaleIndexLocks,
144
144
  enrichPathWithNpmGlobalBin,
@@ -395,7 +395,7 @@ async function continueSourceThread(threadId, prompt) {
395
395
  await continueOnReply(threadId, prompt);
396
396
  return;
397
397
  }
398
- const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-GZE4X3XV.js");
398
+ const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-Y5MWUU7C.js");
399
399
  await getOrchestrator2().send(threadId, prompt);
400
400
  } catch {
401
401
  }
@@ -736,9 +736,9 @@ async function spawnAgentTurn(thread, input, onEvent) {
736
736
  `Cannot spawn ${thread.agent}: thread ${thread.id} has no worktreePath`
737
737
  );
738
738
  }
739
- const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-4QHDAD2D.js");
739
+ const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-T7RL3XEC.js");
740
740
  if (isGlobalThread2(thread)) {
741
- const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-UCQJTFA7.js");
741
+ const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-ZK5MII7W.js");
742
742
  ensureGlobalCoordinatorCwd2(
743
743
  isOrchestratorThread(thread) ? { orchestratorThreadId: thread.id } : void 0
744
744
  );
@@ -3010,7 +3010,7 @@ async function createThread(input, _onSetupLine) {
3010
3010
  return readThread(thread.id) ?? thread;
3011
3011
  }
3012
3012
  async function listLinearIssues(agent, repoPath) {
3013
- const { getAdapter: getAdapter2 } = await import("./agents-YWBQXOA2.js");
3013
+ const { getAdapter: getAdapter2 } = await import("./agents-JAOMXDXN.js");
3014
3014
  await requireAgent(agent, { requireLinear: true });
3015
3015
  const adapter = getAdapter2(agent);
3016
3016
  if (!adapter.listLinearIssues) {
@@ -3417,9 +3417,9 @@ async function adoptThread(input) {
3417
3417
  messages: input.messages ?? []
3418
3418
  });
3419
3419
  writeThread(thread);
3420
- const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-7S7QKCUE.js");
3420
+ const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-VICQYI2N.js");
3421
3421
  await ensureWorkspace2(repoPath);
3422
- const { ensureWorktreeSideboardIgnored: ensureWorktreeSideboardIgnored2 } = await import("./worktree-exclude-6MQWGWV5.js");
3422
+ const { ensureWorktreeSideboardIgnored: ensureWorktreeSideboardIgnored2 } = await import("./worktree-exclude-N5X5I422.js");
3423
3423
  await ensureWorktreeSideboardIgnored2(input.worktreePath);
3424
3424
  return thread;
3425
3425
  }
@@ -4778,7 +4778,7 @@ node <detached-job.js> wait <id> --until-done
4778
4778
  node <detached-job.js> status <id>
4779
4779
  \`\`\`
4780
4780
 
4781
- \`<id>\` is kebab-case (\`mac-release\`, \`core-test\`, \`fly-deploy\`). State is \`.sideboard/detached-jobs/<id>/\` (local scratch).
4781
+ \`<id>\` is kebab-case (\`mac-release\`, \`core-test\`, \`fly-deploy\`). State is \`.context/.sideboard/detached-jobs/<id>/\` (local scratch).
4782
4782
 
4783
4783
  Wait JSON:
4784
4784
 
@@ -5229,7 +5229,7 @@ function formatLongRunningDirective(opts) {
5229
5229
  "- Immediately `present_artifact` `type=log` with `artifact_id=<id>` and `status=running` \u2014 the side column is the live view.",
5230
5230
  `- Loop \`${invoke} wait <id>\` (returns in ~45s). stillRunning \u2192 present the same id with \`content=delta\` only \u2192 wait again. Do not resend the full log or HTML.`,
5231
5231
  "- ok \u2192 finish the task. failed \u2192 read the log, fix, start once.",
5232
- "State: `.sideboard/detached-jobs/<id>/` (local scratch). Full guide: `/long-running` (always available)."
5232
+ "State: `.context/.sideboard/detached-jobs/<id>/` (local scratch). Full guide: `/long-running` (always available)."
5233
5233
  ].join("\n");
5234
5234
  }
5235
5235
  function formatLongRunningReminder(opts) {
@@ -5618,7 +5618,7 @@ function formatScheduledPrompt(name, prompt) {
5618
5618
  ${prompt}`;
5619
5619
  }
5620
5620
  async function defaultDeps() {
5621
- const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-GZE4X3XV.js");
5621
+ const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-Y5MWUU7C.js");
5622
5622
  const orch = getOrchestrator2();
5623
5623
  return {
5624
5624
  findThread: (id) => findThreadByRef(id),
@@ -7605,7 +7605,7 @@ var Orchestrator = class {
7605
7605
  this.emit({ type: "status_changed", threadId: archived.id, status: "archived" });
7606
7606
  if (thread.repoPath && !isGlobalRepoPath(thread.repoPath)) {
7607
7607
  try {
7608
- const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-7S7QKCUE.js");
7608
+ const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-VICQYI2N.js");
7609
7609
  await ensureWorkspace2(thread.repoPath);
7610
7610
  } catch {
7611
7611
  }
@@ -7659,13 +7659,13 @@ var Orchestrator = class {
7659
7659
  `Cowboy checkout missing: ${thread.worktreePath}. Re-add the project folder, then restore.`
7660
7660
  );
7661
7661
  }
7662
- const { createThreadWorktree: createThreadWorktree2 } = await import("./worktree-JIZ3QMZX.js");
7662
+ const { createThreadWorktree: createThreadWorktree2 } = await import("./worktree-HTUM35NT.js");
7663
7663
  const slug = thread.worktreePath.split("/").pop();
7664
7664
  const dest = thread.worktreePath;
7665
7665
  await withRepoGitLock(thread.repoPath, async () => {
7666
7666
  await git(["worktree", "add", dest, thread.branchName], thread.repoPath);
7667
7667
  });
7668
- const { ensureWorktreeSideboardIgnored: ensureWorktreeSideboardIgnored2 } = await import("./worktree-exclude-6MQWGWV5.js");
7668
+ const { ensureWorktreeSideboardIgnored: ensureWorktreeSideboardIgnored2 } = await import("./worktree-exclude-N5X5I422.js");
7669
7669
  await ensureWorktreeSideboardIgnored2(dest);
7670
7670
  void createThreadWorktree2;
7671
7671
  void slug;
@@ -7769,7 +7769,7 @@ async function startOrchestration(opts) {
7769
7769
  sourceRef: "default",
7770
7770
  ...createOpts
7771
7771
  }).catch(async () => {
7772
- const { resolveDefaultBranch: resolveDefaultBranch2, resolveRepoRoot: resolveRepoRoot2 } = await import("./worktree-JIZ3QMZX.js");
7772
+ const { resolveDefaultBranch: resolveDefaultBranch2, resolveRepoRoot: resolveRepoRoot2 } = await import("./worktree-HTUM35NT.js");
7773
7773
  const repo = await resolveRepoRoot2(repoPath);
7774
7774
  const def = await resolveDefaultBranch2(repo);
7775
7775
  return orch.createThread({
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isWorkspaceScratchPath
3
- } from "./chunk-WHU7YGWP.js";
3
+ } from "./chunk-JRH62XC4.js";
4
4
  import {
5
5
  getGithubGitAuthMode,
6
6
  getGithubPat
@@ -13,7 +13,7 @@ import {
13
13
  } from "./chunk-QZQEXME2.js";
14
14
  import {
15
15
  ensureWorktreeSideboardIgnored
16
- } from "./chunk-Y4NAPW5I.js";
16
+ } from "./chunk-QQKDGPUI.js";
17
17
  import {
18
18
  gh,
19
19
  git,
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  isGlobalRepoPath
3
- } from "./chunk-AF6O55PJ.js";
3
+ } from "./chunk-ADCEGG4A.js";
4
4
  import {
5
5
  ensureGhPreferOrigin,
6
6
  resolveRepoRoot
7
- } from "./chunk-ZGFYFVJF.js";
7
+ } from "./chunk-GE7M3QTE.js";
8
8
  import {
9
9
  appDataDir
10
10
  } from "./chunk-QZQEXME2.js";
@@ -1,6 +1,8 @@
1
1
  // src/paths/workspace-scratch.ts
2
2
  var ATTACHMENTS_DIR = ".context/attachments";
3
+ var DETACHED_JOBS_DIR = ".context/.sideboard/detached-jobs";
3
4
  var LEGACY_ATTACHMENTS_DIR = ".sideboard/attachments";
5
+ var LEGACY_DETACHED_JOBS_DIR = ".sideboard/detached-jobs";
4
6
  var ATTACHMENTS_GITIGNORE = `# Sideboard / workspace attachments (local only)
5
7
  *
6
8
  !.gitignore
@@ -15,7 +17,9 @@ function isWorkspaceScratchPath(relativePath) {
15
17
 
16
18
  export {
17
19
  ATTACHMENTS_DIR,
20
+ DETACHED_JOBS_DIR,
18
21
  LEGACY_ATTACHMENTS_DIR,
22
+ LEGACY_DETACHED_JOBS_DIR,
19
23
  attachmentsGitignoreBody,
20
24
  isWorkspaceScratchPath
21
25
  };
@@ -11,13 +11,13 @@ import {
11
11
  } from "./chunk-S42XV45P.js";
12
12
  import {
13
13
  isOrchestratorThread
14
- } from "./chunk-VO4SPEBS.js";
14
+ } from "./chunk-Y2FNDKHF.js";
15
15
  import {
16
16
  codexUnattendedGitConfigArgs,
17
17
  mergeAgentGitAuthEnv,
18
18
  resolveAgentGitAuthEnv,
19
19
  resolveCodexGitWritableRoots
20
- } from "./chunk-Z2PVJKMN.js";
20
+ } from "./chunk-3JBMACYX.js";
21
21
  import {
22
22
  enrichPathWithNpmGlobalBin,
23
23
  isConductorBundledCli,
@@ -2098,7 +2098,7 @@ var claudeAdapter = {
2098
2098
  );
2099
2099
  }
2100
2100
  const mode = permissionMode(thread);
2101
- const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-4QHDAD2D.js");
2101
+ const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-T7RL3XEC.js");
2102
2102
  const isOrchestrator = isOrchestratorThread2(thread);
2103
2103
  const injectedServers = await buildInjectedMcpServers({
2104
2104
  includeSideboard: true,
@@ -2,7 +2,7 @@
2
2
 
3
3
  import {
4
4
  resolveGithubRepoSlug
5
- } from "./chunk-Z2PVJKMN.js";
5
+ } from "./chunk-3JBMACYX.js";
6
6
  import {
7
7
  resolveThreadDefaults
8
8
  } from "./chunk-CZD4NRDZ.js";
@@ -6,12 +6,10 @@ import {
6
6
  import { mkdirSync, readFileSync, writeFileSync } from "fs";
7
7
  import { dirname, join } from "path";
8
8
  var WORKTREE_SIDEBOARD_EXCLUDE = ".sideboard/";
9
+ var WORKTREE_CONTEXT_EXCLUDE = ".context/";
9
10
  var EXCLUDE_COMMENT = "# Sideboard worktree scratch \u2014 do not commit";
10
- function excludeHasSideboard(body) {
11
- return body.split(/\r?\n/).some((line) => {
12
- const t = line.trim();
13
- return t === ".sideboard/" || t === ".sideboard" || t === "/.sideboard/";
14
- });
11
+ function excludeHasLine(body, ...needles) {
12
+ return body.split(/\r?\n/).some((line) => needles.includes(line.trim()));
15
13
  }
16
14
  async function ensureWorktreeSideboardIgnored(worktreePath) {
17
15
  if (!worktreePath.trim()) return;
@@ -30,16 +28,20 @@ async function ensureWorktreeSideboardIgnored(worktreePath) {
30
28
  } catch {
31
29
  body = "";
32
30
  }
33
- if (!excludeHasSideboard(body)) {
31
+ const missing = [];
32
+ if (!excludeHasLine(body, ".sideboard/", ".sideboard", "/.sideboard/")) {
33
+ missing.push(WORKTREE_SIDEBOARD_EXCLUDE);
34
+ }
35
+ if (!excludeHasLine(body, ".context/", ".context", "/.context/")) {
36
+ missing.push(WORKTREE_CONTEXT_EXCLUDE);
37
+ }
38
+ if (missing.length > 0) {
34
39
  const prefix = body && !body.endsWith("\n") ? `${body}
35
40
  ` : body;
36
- writeFileSync(
37
- excludePath,
38
- `${prefix}${EXCLUDE_COMMENT}
39
- ${WORKTREE_SIDEBOARD_EXCLUDE}
40
- `,
41
- "utf8"
42
- );
41
+ const header = body.includes(EXCLUDE_COMMENT) ? "" : `${EXCLUDE_COMMENT}
42
+ `;
43
+ writeFileSync(excludePath, `${prefix}${header}${missing.join("\n")}
44
+ `, "utf8");
43
45
  }
44
46
  const listed = await git(["ls-files", "-z", "--", ".sideboard"], worktreePath, {
45
47
  reject: false,
@@ -56,5 +58,6 @@ ${WORKTREE_SIDEBOARD_EXCLUDE}
56
58
 
57
59
  export {
58
60
  WORKTREE_SIDEBOARD_EXCLUDE,
61
+ WORKTREE_CONTEXT_EXCLUDE,
59
62
  ensureWorktreeSideboardIgnored
60
63
  };
@@ -2,7 +2,7 @@ import {
2
2
  ATTACHMENTS_DIR,
3
3
  LEGACY_ATTACHMENTS_DIR,
4
4
  attachmentsGitignoreBody
5
- } from "./chunk-WHU7YGWP.js";
5
+ } from "./chunk-JRH62XC4.js";
6
6
 
7
7
  // src/plan/plan-file.ts
8
8
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
@@ -8,12 +8,10 @@ import {
8
8
  import { mkdirSync, readFileSync, writeFileSync } from "fs";
9
9
  import { dirname, join } from "path";
10
10
  var WORKTREE_SIDEBOARD_EXCLUDE = ".sideboard/";
11
+ var WORKTREE_CONTEXT_EXCLUDE = ".context/";
11
12
  var EXCLUDE_COMMENT = "# Sideboard worktree scratch \u2014 do not commit";
12
- function excludeHasSideboard(body) {
13
- return body.split(/\r?\n/).some((line) => {
14
- const t = line.trim();
15
- return t === ".sideboard/" || t === ".sideboard" || t === "/.sideboard/";
16
- });
13
+ function excludeHasLine(body, ...needles) {
14
+ return body.split(/\r?\n/).some((line) => needles.includes(line.trim()));
17
15
  }
18
16
  async function ensureWorktreeSideboardIgnored(worktreePath) {
19
17
  if (!worktreePath.trim()) return;
@@ -32,16 +30,20 @@ async function ensureWorktreeSideboardIgnored(worktreePath) {
32
30
  } catch {
33
31
  body = "";
34
32
  }
35
- if (!excludeHasSideboard(body)) {
33
+ const missing = [];
34
+ if (!excludeHasLine(body, ".sideboard/", ".sideboard", "/.sideboard/")) {
35
+ missing.push(WORKTREE_SIDEBOARD_EXCLUDE);
36
+ }
37
+ if (!excludeHasLine(body, ".context/", ".context", "/.context/")) {
38
+ missing.push(WORKTREE_CONTEXT_EXCLUDE);
39
+ }
40
+ if (missing.length > 0) {
36
41
  const prefix = body && !body.endsWith("\n") ? `${body}
37
42
  ` : body;
38
- writeFileSync(
39
- excludePath,
40
- `${prefix}${EXCLUDE_COMMENT}
41
- ${WORKTREE_SIDEBOARD_EXCLUDE}
42
- `,
43
- "utf8"
44
- );
43
+ const header = body.includes(EXCLUDE_COMMENT) ? "" : `${EXCLUDE_COMMENT}
44
+ `;
45
+ writeFileSync(excludePath, `${prefix}${header}${missing.join("\n")}
46
+ `, "utf8");
45
47
  }
46
48
  const listed = await git(["ls-files", "-z", "--", ".sideboard"], worktreePath, {
47
49
  reject: false,
@@ -58,5 +60,6 @@ ${WORKTREE_SIDEBOARD_EXCLUDE}
58
60
 
59
61
  export {
60
62
  WORKTREE_SIDEBOARD_EXCLUDE,
63
+ WORKTREE_CONTEXT_EXCLUDE,
61
64
  ensureWorktreeSideboardIgnored
62
65
  };
@@ -2,11 +2,11 @@
2
2
 
3
3
  import {
4
4
  isGlobalRepoPath
5
- } from "./chunk-VO4SPEBS.js";
5
+ } from "./chunk-Y2FNDKHF.js";
6
6
  import {
7
7
  ensureGhPreferOrigin,
8
8
  resolveRepoRoot
9
- } from "./chunk-Z2PVJKMN.js";
9
+ } from "./chunk-3JBMACYX.js";
10
10
  import {
11
11
  appDataDir
12
12
  } from "./chunk-BD2ICC4D.js";