@sideboard-ai/core 0.1.323 → 0.1.324

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 (27) hide show
  1. package/dist/{agents-SPRAOMGI.js → agents-LUSTCMDN.js} +2 -2
  2. package/dist/{agents-2ZXORBEJ.js → agents-YK65UDLT.js} +2 -2
  3. package/dist/{chunk-53SBTCKF.js → chunk-7D5QIU3N.js} +2 -2
  4. package/dist/{chunk-4C5PQ7JA.js → chunk-7MQSYPAY.js} +7 -7
  5. package/dist/{chunk-SKO7IGKU.js → chunk-BYUCNIXK.js} +2 -2
  6. package/dist/{chunk-JDX3474T.js → chunk-DF5BM5OY.js} +8 -8
  7. package/dist/{chunk-6W3XRKD5.js → chunk-JE3JLHMO.js} +3 -4
  8. package/dist/{chunk-D3VSKNVA.js → chunk-JH5SMVM5.js} +2 -2
  9. package/dist/{chunk-RTVS3M74.js → chunk-RR4WCGNB.js} +2 -2
  10. package/dist/{chunk-MYVKOIIY.js → chunk-ZIRQZUZY.js} +3 -4
  11. package/dist/{conductor-52KTQ3IM.js → conductor-JFABMXDA.js} +2 -2
  12. package/dist/{conductor-FB7MKLRN.js → conductor-SPZOTC7W.js} +2 -2
  13. package/dist/{coordinator-prompt-7HXV7HJ5.js → coordinator-prompt-K66RGNWK.js} +1 -1
  14. package/dist/{coordinator-prompt-7W7WPY4X.js → coordinator-prompt-Z6UFHFDH.js} +1 -1
  15. package/dist/{global-workspace-EI3KBGZE.js → global-workspace-A6UO6PJV.js} +1 -1
  16. package/dist/{global-workspace-5BWUTSPJ.js → global-workspace-RHEO55B4.js} +1 -1
  17. package/dist/index.cjs +3 -4
  18. package/dist/index.d.cts +3 -3
  19. package/dist/index.d.ts +3 -3
  20. package/dist/index.js +7 -7
  21. package/dist/mcp/run-stdio.cjs +3 -4
  22. package/dist/mcp/run-stdio.js +4 -4
  23. package/dist/{orchestrator-2RDE2YS3.js → orchestrator-2O6OJQLX.js} +4 -4
  24. package/dist/{orchestrator-RMPZETOO.js → orchestrator-7VTAUY24.js} +4 -4
  25. package/dist/{workspaces-OPQ5NMM6.js → workspaces-42E6AGXD.js} +1 -1
  26. package/dist/{workspaces-LJQS73K6.js → workspaces-NRKEXOYR.js} +1 -1
  27. package/package.json +1 -1
@@ -37,7 +37,7 @@ import {
37
37
  planModeTurnInstruction,
38
38
  resolveCursorModelId,
39
39
  resolveQuotaFallbackAgent
40
- } from "./chunk-D3VSKNVA.js";
40
+ } from "./chunk-JH5SMVM5.js";
41
41
  import "./chunk-S5CJUIPY.js";
42
42
  import "./chunk-QIC2JXHW.js";
43
43
  import {
@@ -52,7 +52,7 @@ import {
52
52
  resolveLoginCommand,
53
53
  whichOnPath
54
54
  } from "./chunk-5GDJSFCT.js";
55
- import "./chunk-6W3XRKD5.js";
55
+ import "./chunk-JE3JLHMO.js";
56
56
  import "./chunk-FUFNMUNR.js";
57
57
  import "./chunk-IFWGG2M2.js";
58
58
  import "./chunk-QKHEVSB5.js";
@@ -46,7 +46,7 @@ import {
46
46
  resolveCursorSdkRoot,
47
47
  resolveQuotaFallbackAgent,
48
48
  turnCostUsdFromCursorUsage
49
- } from "./chunk-53SBTCKF.js";
49
+ } from "./chunk-7D5QIU3N.js";
50
50
  import {
51
51
  getAgentSetupInfo,
52
52
  installAgent,
@@ -63,7 +63,7 @@ import "./chunk-6U6QRUHY.js";
63
63
  import "./chunk-E63AM3PW.js";
64
64
  import "./chunk-2GPQZZLY.js";
65
65
  import "./chunk-EQ52JR3Q.js";
66
- import "./chunk-MYVKOIIY.js";
66
+ import "./chunk-ZIRQZUZY.js";
67
67
  import "./chunk-ROOZDDFA.js";
68
68
  import "./chunk-N2WW62LF.js";
69
69
  import "./chunk-4YXZOXMT.js";
@@ -24,7 +24,7 @@ import {
24
24
  } from "./chunk-EQ52JR3Q.js";
25
25
  import {
26
26
  isOrchestratorThread
27
- } from "./chunk-MYVKOIIY.js";
27
+ } from "./chunk-ZIRQZUZY.js";
28
28
  import {
29
29
  codexUnattendedGitConfigArgs,
30
30
  mergeAgentGitAuthEnv,
@@ -2916,7 +2916,7 @@ var claudeAdapter = {
2916
2916
  );
2917
2917
  }
2918
2918
  const mode = permissionMode(thread);
2919
- const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-EI3KBGZE.js");
2919
+ const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-A6UO6PJV.js");
2920
2920
  const isOrchestrator = isOrchestratorThread2(thread);
2921
2921
  const rpc = worktreeAgentRpc(isOrchestrator);
2922
2922
  const injectedServers = await buildInjectedMcpServers({
@@ -27,7 +27,7 @@ import {
27
27
  parseSessionQuotaResetAt,
28
28
  planModeTurnInstruction,
29
29
  resolveQuotaFallbackAgent
30
- } from "./chunk-53SBTCKF.js";
30
+ } from "./chunk-7D5QIU3N.js";
31
31
  import {
32
32
  applyWorktreePkgCacheEnv,
33
33
  askBlockStillWaiting,
@@ -65,7 +65,7 @@ import {
65
65
  worktreeDevProcessKey,
66
66
  worktreeRunProcessKey,
67
67
  worktreeSetupProcessKey
68
- } from "./chunk-SKO7IGKU.js";
68
+ } from "./chunk-BYUCNIXK.js";
69
69
  import {
70
70
  applyAgentEvent,
71
71
  clipAgentEventForPaint,
@@ -117,7 +117,7 @@ import {
117
117
  stageAbsolutePathsAsAttachments,
118
118
  stageBuffersAsAttachments,
119
119
  syncWorkspacesFromThreads
120
- } from "./chunk-MYVKOIIY.js";
120
+ } from "./chunk-ZIRQZUZY.js";
121
121
  import {
122
122
  addPrStackLayer,
123
123
  allocateTeamSlug,
@@ -519,9 +519,9 @@ async function spawnAgentTurn(thread, input, onEvent) {
519
519
  `Cannot spawn ${thread.agent}: thread ${thread.id} has no worktreePath`
520
520
  );
521
521
  }
522
- const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-EI3KBGZE.js");
522
+ const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-A6UO6PJV.js");
523
523
  if (isGlobalThread2(thread)) {
524
- const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-7W7WPY4X.js");
524
+ const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-Z6UFHFDH.js");
525
525
  ensureGlobalCoordinatorCwd2(
526
526
  isOrchestratorThread(thread) ? { orchestratorThreadId: thread.id } : void 0
527
527
  );
@@ -3712,7 +3712,7 @@ async function adoptThread(input) {
3712
3712
  messages: input.messages ?? []
3713
3713
  });
3714
3714
  writeThread(thread);
3715
- const { addWorkspace: addWorkspace2 } = await import("./workspaces-LJQS73K6.js");
3715
+ const { addWorkspace: addWorkspace2 } = await import("./workspaces-NRKEXOYR.js");
3716
3716
  await addWorkspace2(repoPath);
3717
3717
  const { ensureWorktreeSideboardIgnored } = await import("./worktree-exclude-P5NJODWP.js");
3718
3718
  await ensureWorktreeSideboardIgnored(input.worktreePath);
@@ -7122,7 +7122,7 @@ function formatScheduledPrompt(name, prompt) {
7122
7122
  ${prompt}`;
7123
7123
  }
7124
7124
  async function defaultDeps() {
7125
- const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-2RDE2YS3.js");
7125
+ const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-2O6OJQLX.js");
7126
7126
  const orch = getOrchestrator2();
7127
7127
  return {
7128
7128
  findThread: (id) => findThreadByRef(id),
@@ -11,7 +11,7 @@ import {
11
11
  isGlobalThread,
12
12
  isOrchestratorThread,
13
13
  isSlackCoordinatorThread
14
- } from "./chunk-MYVKOIIY.js";
14
+ } from "./chunk-ZIRQZUZY.js";
15
15
  import {
16
16
  mergeAgentGitAuthEnv,
17
17
  resolveAgentGitAuthEnv
@@ -1678,7 +1678,7 @@ var PORT_RANGE_SIZE = 10;
1678
1678
  var RECLAIM_RETRY_DELAY_MS = 40;
1679
1679
  var RECLAIM_TRIES = 8;
1680
1680
  async function killReclaimable(ports, worktreePath, signal) {
1681
- const { killListenersOnPorts: killListenersOnPorts2, killStaleWorktreeListeners: killStaleWorktreeListeners2 } = await import("./conductor-52KTQ3IM.js");
1681
+ const { killListenersOnPorts: killListenersOnPorts2, killStaleWorktreeListeners: killStaleWorktreeListeners2 } = await import("./conductor-JFABMXDA.js");
1682
1682
  if (worktreePath) killStaleWorktreeListeners2(ports, worktreePath, signal);
1683
1683
  else killListenersOnPorts2(ports);
1684
1684
  }
@@ -14,7 +14,7 @@ import {
14
14
  parseSessionQuotaResetAt,
15
15
  planModeTurnInstruction,
16
16
  resolveQuotaFallbackAgent
17
- } from "./chunk-D3VSKNVA.js";
17
+ } from "./chunk-JH5SMVM5.js";
18
18
  import {
19
19
  applyWorktreePkgCacheEnv,
20
20
  askBlockStillWaiting,
@@ -52,7 +52,7 @@ import {
52
52
  worktreeDevProcessKey,
53
53
  worktreeRunProcessKey,
54
54
  worktreeSetupProcessKey
55
- } from "./chunk-RTVS3M74.js";
55
+ } from "./chunk-RR4WCGNB.js";
56
56
  import {
57
57
  applyAgentEvent,
58
58
  clipAgentEventForPaint,
@@ -99,7 +99,7 @@ import {
99
99
  stageAbsolutePathsAsAttachments,
100
100
  stageBuffersAsAttachments,
101
101
  syncWorkspacesFromThreads
102
- } from "./chunk-6W3XRKD5.js";
102
+ } from "./chunk-JE3JLHMO.js";
103
103
  import {
104
104
  addPrStackLayer,
105
105
  allocateTeamSlug,
@@ -473,9 +473,9 @@ async function spawnAgentTurn(thread, input, onEvent) {
473
473
  `Cannot spawn ${thread.agent}: thread ${thread.id} has no worktreePath`
474
474
  );
475
475
  }
476
- const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-5BWUTSPJ.js");
476
+ const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-RHEO55B4.js");
477
477
  if (isGlobalThread2(thread)) {
478
- const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-7HXV7HJ5.js");
478
+ const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-K66RGNWK.js");
479
479
  ensureGlobalCoordinatorCwd2(
480
480
  isOrchestratorThread(thread) ? { orchestratorThreadId: thread.id } : void 0
481
481
  );
@@ -3239,7 +3239,7 @@ async function createThread(input, _onSetupLine) {
3239
3239
  return readThread(thread.id) ?? thread;
3240
3240
  }
3241
3241
  async function listLinearIssues(agent, repoPath) {
3242
- const { getAdapter: getAdapter2 } = await import("./agents-SPRAOMGI.js");
3242
+ const { getAdapter: getAdapter2 } = await import("./agents-LUSTCMDN.js");
3243
3243
  await requireAgent(agent, { requireLinear: true });
3244
3244
  const adapter = getAdapter2(agent);
3245
3245
  if (!adapter.listLinearIssues) {
@@ -4022,7 +4022,7 @@ async function adoptThread(input) {
4022
4022
  messages: input.messages ?? []
4023
4023
  });
4024
4024
  writeThread(thread);
4025
- const { addWorkspace: addWorkspace2 } = await import("./workspaces-OPQ5NMM6.js");
4025
+ const { addWorkspace: addWorkspace2 } = await import("./workspaces-42E6AGXD.js");
4026
4026
  await addWorkspace2(repoPath);
4027
4027
  const { ensureWorktreeSideboardIgnored } = await import("./worktree-exclude-INRDQFWV.js");
4028
4028
  await ensureWorktreeSideboardIgnored(input.worktreePath);
@@ -7489,7 +7489,7 @@ function formatScheduledPrompt(name, prompt) {
7489
7489
  ${prompt}`;
7490
7490
  }
7491
7491
  async function defaultDeps() {
7492
- const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-RMPZETOO.js");
7492
+ const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-7VTAUY24.js");
7493
7493
  const orch = getOrchestrator2();
7494
7494
  return {
7495
7495
  findThread: (id) => findThreadByRef(id),
@@ -499,7 +499,7 @@ function coordinatorTurnReminder(opts) {
499
499
  const goal = opts.goal?.trim();
500
500
  return [
501
501
  "Sideboard Orchestration (mandatory):",
502
- "- You oversee worktree agents from a synthetic empty cwd (not a git repo). Follow AGENTS.md / CLAUDE.md.",
502
+ "- You oversee worktree agents from a synthetic empty cwd (not a git repo). Follow AGENTS.md (CLAUDE.md imports it).",
503
503
  `- YOUR orchestration chat id is ${opts.parentId} \u2014 pass parentChatId="${opts.parentId}" on create_workspace, or omit it.`,
504
504
  goal ? `- Goal / title: ${goal}` : null,
505
505
  accountDefaultsPlaybookLine(),
@@ -563,10 +563,9 @@ function ensureGlobalCoordinatorCwd(opts) {
563
563
  "Always ask worktree agents to commit, push, and open draft PRs (`ask_git` / `send_to_chat`). If the user gave a goal (Greptile 5/5, CI green), pass that goal through so they watch-fix-push until it lands \u2014 do not start that loop on a plain push, and do not tell the human to poll. Tell them to merge only when the user explicitly asked. The worktree agent runs git/gh; never merge from this orchestration cwd."
564
564
  ].join("\n");
565
565
  try {
566
- writeFileSync2(join2(dir, "CLAUDE.md"), `${body}
567
- `, "utf8");
568
566
  writeFileSync2(join2(dir, "AGENTS.md"), `${body}
569
567
  `, "utf8");
568
+ writeFileSync2(join2(dir, "CLAUDE.md"), "@AGENTS.md\n", "utf8");
570
569
  } catch {
571
570
  }
572
571
  return dir;
@@ -590,7 +589,7 @@ function coordinatorSystemPrompt(opts) {
590
589
  ...intro,
591
590
  "You operate across ALL registered workspaces below.",
592
591
  "You have no project git home \u2014 this process cwd is synthetic and empty on purpose.",
593
- "Follow AGENTS.md / CLAUDE.md in this cwd for the fleet playbook (they are the same document).",
592
+ "Follow AGENTS.md in this cwd for the fleet playbook. CLAUDE.md is `@AGENTS.md` so Cursor does not load a second copy.",
594
593
  `YOUR orchestration chat id is ${opts.parentId} \u2014 pass parentChatId="${opts.parentId}" on create_workspace, or omit parentChatId (Sideboard binds it). Never invent a uuid.`,
595
594
  `Goal: ${opts.goal}`,
596
595
  "Registered workspaces:",
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-QIC2JXHW.js";
13
13
  import {
14
14
  isOrchestratorThread
15
- } from "./chunk-6W3XRKD5.js";
15
+ } from "./chunk-JE3JLHMO.js";
16
16
  import {
17
17
  codexUnattendedGitConfigArgs,
18
18
  mergeAgentGitAuthEnv,
@@ -2609,7 +2609,7 @@ var claudeAdapter = {
2609
2609
  );
2610
2610
  }
2611
2611
  const mode = permissionMode(thread);
2612
- const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-5BWUTSPJ.js");
2612
+ const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-RHEO55B4.js");
2613
2613
  const isOrchestrator = isOrchestratorThread2(thread);
2614
2614
  const rpc = worktreeAgentRpc(isOrchestrator);
2615
2615
  const injectedServers = await buildInjectedMcpServers({
@@ -8,7 +8,7 @@ import {
8
8
  isGlobalThread,
9
9
  isOrchestratorThread,
10
10
  isSlackCoordinatorThread
11
- } from "./chunk-6W3XRKD5.js";
11
+ } from "./chunk-JE3JLHMO.js";
12
12
  import {
13
13
  mergeAgentGitAuthEnv,
14
14
  resolveAgentGitAuthEnv
@@ -1808,7 +1808,7 @@ var PORT_RANGE_SIZE = 10;
1808
1808
  var RECLAIM_RETRY_DELAY_MS = 40;
1809
1809
  var RECLAIM_TRIES = 8;
1810
1810
  async function killReclaimable(ports, worktreePath, signal) {
1811
- const { killListenersOnPorts: killListenersOnPorts2, killStaleWorktreeListeners: killStaleWorktreeListeners2 } = await import("./conductor-FB7MKLRN.js");
1811
+ const { killListenersOnPorts: killListenersOnPorts2, killStaleWorktreeListeners: killStaleWorktreeListeners2 } = await import("./conductor-SPZOTC7W.js");
1812
1812
  if (worktreePath) killStaleWorktreeListeners2(ports, worktreePath, signal);
1813
1813
  else killListenersOnPorts2(ports);
1814
1814
  }
@@ -454,7 +454,7 @@ function coordinatorTurnReminder(opts) {
454
454
  const goal = opts.goal?.trim();
455
455
  return [
456
456
  "Sideboard Orchestration (mandatory):",
457
- "- You oversee worktree agents from a synthetic empty cwd (not a git repo). Follow AGENTS.md / CLAUDE.md.",
457
+ "- You oversee worktree agents from a synthetic empty cwd (not a git repo). Follow AGENTS.md (CLAUDE.md imports it).",
458
458
  `- YOUR orchestration chat id is ${opts.parentId} \u2014 pass parentChatId="${opts.parentId}" on create_workspace, or omit it.`,
459
459
  goal ? `- Goal / title: ${goal}` : null,
460
460
  accountDefaultsPlaybookLine(),
@@ -518,10 +518,9 @@ function ensureGlobalCoordinatorCwd(opts) {
518
518
  "Always ask worktree agents to commit, push, and open draft PRs (`ask_git` / `send_to_chat`). If the user gave a goal (Greptile 5/5, CI green), pass that goal through so they watch-fix-push until it lands \u2014 do not start that loop on a plain push, and do not tell the human to poll. Tell them to merge only when the user explicitly asked. The worktree agent runs git/gh; never merge from this orchestration cwd."
519
519
  ].join("\n");
520
520
  try {
521
- writeFileSync2(join2(dir, "CLAUDE.md"), `${body}
522
- `, "utf8");
523
521
  writeFileSync2(join2(dir, "AGENTS.md"), `${body}
524
522
  `, "utf8");
523
+ writeFileSync2(join2(dir, "CLAUDE.md"), "@AGENTS.md\n", "utf8");
525
524
  } catch {
526
525
  }
527
526
  return dir;
@@ -545,7 +544,7 @@ function coordinatorSystemPrompt(opts) {
545
544
  ...intro,
546
545
  "You operate across ALL registered workspaces below.",
547
546
  "You have no project git home \u2014 this process cwd is synthetic and empty on purpose.",
548
- "Follow AGENTS.md / CLAUDE.md in this cwd for the fleet playbook (they are the same document).",
547
+ "Follow AGENTS.md in this cwd for the fleet playbook. CLAUDE.md is `@AGENTS.md` so Cursor does not load a second copy.",
549
548
  `YOUR orchestration chat id is ${opts.parentId} \u2014 pass parentChatId="${opts.parentId}" on create_workspace, or omit parentChatId (Sideboard binds it). Never invent a uuid.`,
550
549
  `Goal: ${opts.goal}`,
551
550
  "Registered workspaces:",
@@ -34,9 +34,9 @@ import {
34
34
  tryReservePort,
35
35
  tryReservePorts,
36
36
  worktreeRunPortsPath
37
- } from "./chunk-SKO7IGKU.js";
37
+ } from "./chunk-BYUCNIXK.js";
38
38
  import "./chunk-EQ52JR3Q.js";
39
- import "./chunk-MYVKOIIY.js";
39
+ import "./chunk-ZIRQZUZY.js";
40
40
  import "./chunk-ROOZDDFA.js";
41
41
  import "./chunk-N2WW62LF.js";
42
42
  import "./chunk-4YXZOXMT.js";
@@ -32,9 +32,9 @@ import {
32
32
  tryReservePort,
33
33
  tryReservePorts,
34
34
  worktreeRunPortsPath
35
- } from "./chunk-RTVS3M74.js";
35
+ } from "./chunk-RR4WCGNB.js";
36
36
  import "./chunk-QIC2JXHW.js";
37
- import "./chunk-6W3XRKD5.js";
37
+ import "./chunk-JE3JLHMO.js";
38
38
  import "./chunk-FUFNMUNR.js";
39
39
  import "./chunk-IFWGG2M2.js";
40
40
  import "./chunk-QKHEVSB5.js";
@@ -7,7 +7,7 @@ import {
7
7
  enrichWorkspacesWithGithub,
8
8
  ensureGlobalCoordinatorCwd,
9
9
  formatWorkspaceInventory
10
- } from "./chunk-6W3XRKD5.js";
10
+ } from "./chunk-JE3JLHMO.js";
11
11
  import "./chunk-FUFNMUNR.js";
12
12
  import "./chunk-IFWGG2M2.js";
13
13
  import "./chunk-QKHEVSB5.js";
@@ -9,7 +9,7 @@ import {
9
9
  enrichWorkspacesWithGithub,
10
10
  ensureGlobalCoordinatorCwd,
11
11
  formatWorkspaceInventory
12
- } from "./chunk-MYVKOIIY.js";
12
+ } from "./chunk-ZIRQZUZY.js";
13
13
  import "./chunk-ROOZDDFA.js";
14
14
  import "./chunk-N2WW62LF.js";
15
15
  import "./chunk-4YXZOXMT.js";
@@ -20,7 +20,7 @@ import {
20
20
  remoteCoordinatorSourceRef,
21
21
  slackCoordinatorSourceRef,
22
22
  takenTeamSlugsForOrchestration
23
- } from "./chunk-MYVKOIIY.js";
23
+ } from "./chunk-ZIRQZUZY.js";
24
24
  import "./chunk-ROOZDDFA.js";
25
25
  import "./chunk-N2WW62LF.js";
26
26
  import "./chunk-4YXZOXMT.js";
@@ -18,7 +18,7 @@ import {
18
18
  remoteCoordinatorSourceRef,
19
19
  slackCoordinatorSourceRef,
20
20
  takenTeamSlugsForOrchestration
21
- } from "./chunk-6W3XRKD5.js";
21
+ } from "./chunk-JE3JLHMO.js";
22
22
  import "./chunk-FUFNMUNR.js";
23
23
  import "./chunk-IFWGG2M2.js";
24
24
  import "./chunk-QKHEVSB5.js";
package/dist/index.cjs CHANGED
@@ -13001,7 +13001,7 @@ function coordinatorTurnReminder(opts) {
13001
13001
  const goal = opts.goal?.trim();
13002
13002
  return [
13003
13003
  "Sideboard Orchestration (mandatory):",
13004
- "- You oversee worktree agents from a synthetic empty cwd (not a git repo). Follow AGENTS.md / CLAUDE.md.",
13004
+ "- You oversee worktree agents from a synthetic empty cwd (not a git repo). Follow AGENTS.md (CLAUDE.md imports it).",
13005
13005
  `- YOUR orchestration chat id is ${opts.parentId} \u2014 pass parentChatId="${opts.parentId}" on create_workspace, or omit it.`,
13006
13006
  goal ? `- Goal / title: ${goal}` : null,
13007
13007
  accountDefaultsPlaybookLine(),
@@ -13065,10 +13065,9 @@ function ensureGlobalCoordinatorCwd(opts) {
13065
13065
  "Always ask worktree agents to commit, push, and open draft PRs (`ask_git` / `send_to_chat`). If the user gave a goal (Greptile 5/5, CI green), pass that goal through so they watch-fix-push until it lands \u2014 do not start that loop on a plain push, and do not tell the human to poll. Tell them to merge only when the user explicitly asked. The worktree agent runs git/gh; never merge from this orchestration cwd."
13066
13066
  ].join("\n");
13067
13067
  try {
13068
- (0, import_node_fs25.writeFileSync)((0, import_node_path29.join)(dir, "CLAUDE.md"), `${body}
13069
- `, "utf8");
13070
13068
  (0, import_node_fs25.writeFileSync)((0, import_node_path29.join)(dir, "AGENTS.md"), `${body}
13071
13069
  `, "utf8");
13070
+ (0, import_node_fs25.writeFileSync)((0, import_node_path29.join)(dir, "CLAUDE.md"), "@AGENTS.md\n", "utf8");
13072
13071
  } catch {
13073
13072
  }
13074
13073
  return dir;
@@ -13092,7 +13091,7 @@ function coordinatorSystemPrompt(opts) {
13092
13091
  ...intro,
13093
13092
  "You operate across ALL registered workspaces below.",
13094
13093
  "You have no project git home \u2014 this process cwd is synthetic and empty on purpose.",
13095
- "Follow AGENTS.md / CLAUDE.md in this cwd for the fleet playbook (they are the same document).",
13094
+ "Follow AGENTS.md in this cwd for the fleet playbook. CLAUDE.md is `@AGENTS.md` so Cursor does not load a second copy.",
13096
13095
  `YOUR orchestration chat id is ${opts.parentId} \u2014 pass parentChatId="${opts.parentId}" on create_workspace, or omit parentChatId (Sideboard binds it). Never invent a uuid.`,
13097
13096
  `Goal: ${opts.goal}`,
13098
13097
  "Registered workspaces:",
package/dist/index.d.cts CHANGED
@@ -6757,9 +6757,9 @@ declare function coordinatorTurnReminder(opts: {
6757
6757
  goal?: string;
6758
6758
  }): string;
6759
6759
  /**
6760
- * Write durable CLAUDE.md / AGENTS.md into the global synthetic cwd so Claude
6761
- * (and other agents that load AGENTS.md) keep orchestrator identity on resume.
6762
- * Both files get the same body — they are filename aliases, not two documents.
6760
+ * Write the fleet playbook to AGENTS.md in the global synthetic cwd. CLAUDE.md
6761
+ * is `@AGENTS.md` so Claude imports that file and Cursor does not load a
6762
+ * second copy (it always reads both filenames).
6763
6763
  * When `orchestratorThreadId` is set, embed that uuid so Codex/Claude resume
6764
6764
  * cannot invent a stale parentChatId.
6765
6765
  */
package/dist/index.d.ts CHANGED
@@ -6757,9 +6757,9 @@ declare function coordinatorTurnReminder(opts: {
6757
6757
  goal?: string;
6758
6758
  }): string;
6759
6759
  /**
6760
- * Write durable CLAUDE.md / AGENTS.md into the global synthetic cwd so Claude
6761
- * (and other agents that load AGENTS.md) keep orchestrator identity on resume.
6762
- * Both files get the same body — they are filename aliases, not two documents.
6760
+ * Write the fleet playbook to AGENTS.md in the global synthetic cwd. CLAUDE.md
6761
+ * is `@AGENTS.md` so Claude imports that file and Cursor does not load a
6762
+ * second copy (it always reads both filenames).
6763
6763
  * When `orchestratorThreadId` is set, embed that uuid so Codex/Claude resume
6764
6764
  * cannot invent a stale parentChatId.
6765
6765
  */
package/dist/index.js CHANGED
@@ -216,7 +216,7 @@ import {
216
216
  worktreeCleanupSettings,
217
217
  writeAgentBlock,
218
218
  writeWorktreeFile
219
- } from "./chunk-JDX3474T.js";
219
+ } from "./chunk-DF5BM5OY.js";
220
220
  import {
221
221
  LEGACY_PLAN_FILE_REL,
222
222
  PLAN_FILE_NAME,
@@ -306,7 +306,7 @@ import {
306
306
  userMcpNamesToDisable,
307
307
  worktreeMcpToolNames,
308
308
  writeInjectedMcpConfig
309
- } from "./chunk-D3VSKNVA.js";
309
+ } from "./chunk-JH5SMVM5.js";
310
310
  import {
311
311
  brightsyMcpServerName,
312
312
  connectBrightsyTeam,
@@ -437,7 +437,7 @@ import {
437
437
  workspaceAgentChatSummaries,
438
438
  worktreeRunPortsPath,
439
439
  wrapReviewSkillMarkdown
440
- } from "./chunk-RTVS3M74.js";
440
+ } from "./chunk-RR4WCGNB.js";
441
441
  import {
442
442
  STDERR_EVENT_MAX_CHARS,
443
443
  STDOUT_EVENT_MAX_CHARS,
@@ -640,7 +640,7 @@ import {
640
640
  stageBuffersAsAttachments,
641
641
  syncWorkspacesFromThreads,
642
642
  takenTeamSlugsForOrchestration
643
- } from "./chunk-6W3XRKD5.js";
643
+ } from "./chunk-JE3JLHMO.js";
644
644
  import {
645
645
  GITHUB_PR_BODY_MAX_CHARS,
646
646
  GITHUB_PR_BODY_SAFE_CHARS,
@@ -9020,7 +9020,7 @@ async function startHeadlessHost(opts) {
9020
9020
  };
9021
9021
  const refreshRunning = async () => {
9022
9022
  try {
9023
- const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-RMPZETOO.js");
9023
+ const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-7VTAUY24.js");
9024
9024
  agentsRunning = getOrchestrator2().getRuntime().running;
9025
9025
  } catch {
9026
9026
  agentsRunning = 0;
@@ -11163,7 +11163,7 @@ async function handleJobStop(params, _ctx) {
11163
11163
  return stopDetachedJob(jobCwd(rec), id, reason ? { reason } : void 0);
11164
11164
  }
11165
11165
  async function defaultTurnWait(ref, timeoutMs) {
11166
- const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-RMPZETOO.js");
11166
+ const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-7VTAUY24.js");
11167
11167
  const orch = getOrchestrator2();
11168
11168
  const thread = await orch.waitForTurn(ref, timeoutMs, {
11169
11169
  resolveIfStillRunning: true
@@ -14831,7 +14831,7 @@ async function continueSourceThread(threadId, prompt) {
14831
14831
  await continueOnReply(threadId, prompt);
14832
14832
  return;
14833
14833
  }
14834
- const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-RMPZETOO.js");
14834
+ const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-7VTAUY24.js");
14835
14835
  await getOrchestrator2().send(threadId, prompt);
14836
14836
  } catch {
14837
14837
  }
@@ -10512,7 +10512,7 @@ function coordinatorTurnReminder(opts) {
10512
10512
  const goal = opts.goal?.trim();
10513
10513
  return [
10514
10514
  "Sideboard Orchestration (mandatory):",
10515
- "- You oversee worktree agents from a synthetic empty cwd (not a git repo). Follow AGENTS.md / CLAUDE.md.",
10515
+ "- You oversee worktree agents from a synthetic empty cwd (not a git repo). Follow AGENTS.md (CLAUDE.md imports it).",
10516
10516
  `- YOUR orchestration chat id is ${opts.parentId} \u2014 pass parentChatId="${opts.parentId}" on create_workspace, or omit it.`,
10517
10517
  goal ? `- Goal / title: ${goal}` : null,
10518
10518
  accountDefaultsPlaybookLine(),
@@ -10576,10 +10576,9 @@ function ensureGlobalCoordinatorCwd(opts) {
10576
10576
  "Always ask worktree agents to commit, push, and open draft PRs (`ask_git` / `send_to_chat`). If the user gave a goal (Greptile 5/5, CI green), pass that goal through so they watch-fix-push until it lands \u2014 do not start that loop on a plain push, and do not tell the human to poll. Tell them to merge only when the user explicitly asked. The worktree agent runs git/gh; never merge from this orchestration cwd."
10577
10577
  ].join("\n");
10578
10578
  try {
10579
- (0, import_node_fs21.writeFileSync)((0, import_node_path24.join)(dir, "CLAUDE.md"), `${body}
10580
- `, "utf8");
10581
10579
  (0, import_node_fs21.writeFileSync)((0, import_node_path24.join)(dir, "AGENTS.md"), `${body}
10582
10580
  `, "utf8");
10581
+ (0, import_node_fs21.writeFileSync)((0, import_node_path24.join)(dir, "CLAUDE.md"), "@AGENTS.md\n", "utf8");
10583
10582
  } catch {
10584
10583
  }
10585
10584
  return dir;
@@ -10603,7 +10602,7 @@ function coordinatorSystemPrompt(opts) {
10603
10602
  ...intro,
10604
10603
  "You operate across ALL registered workspaces below.",
10605
10604
  "You have no project git home \u2014 this process cwd is synthetic and empty on purpose.",
10606
- "Follow AGENTS.md / CLAUDE.md in this cwd for the fleet playbook (they are the same document).",
10605
+ "Follow AGENTS.md in this cwd for the fleet playbook. CLAUDE.md is `@AGENTS.md` so Cursor does not load a second copy.",
10607
10606
  `YOUR orchestration chat id is ${opts.parentId} \u2014 pass parentChatId="${opts.parentId}" on create_workspace, or omit parentChatId (Sideboard binds it). Never invent a uuid.`,
10608
10607
  `Goal: ${opts.goal}`,
10609
10608
  "Registered workspaces:",
@@ -57,7 +57,7 @@ import {
57
57
  updateSchedule,
58
58
  workspaceTagTargetRef,
59
59
  writeAgentBlock
60
- } from "../chunk-4C5PQ7JA.js";
60
+ } from "../chunk-7MQSYPAY.js";
61
61
  import "../chunk-LX5R5JOR.js";
62
62
  import {
63
63
  commentAbleTimeTask,
@@ -98,7 +98,7 @@ import {
98
98
  shouldRegisterMcpWaitForTurn,
99
99
  sideboardMcpProfile,
100
100
  worktreeMcpToolNames
101
- } from "../chunk-53SBTCKF.js";
101
+ } from "../chunk-7D5QIU3N.js";
102
102
  import "../chunk-MZIZTSR2.js";
103
103
  import "../chunk-6U6QRUHY.js";
104
104
  import "../chunk-E63AM3PW.js";
@@ -115,7 +115,7 @@ import {
115
115
  waitForDetachedJob,
116
116
  waitForTurnToolResult,
117
117
  workspaceAgentChatSummaries
118
- } from "../chunk-SKO7IGKU.js";
118
+ } from "../chunk-BYUCNIXK.js";
119
119
  import {
120
120
  HUGE_TOOL_RESULT_SUMMARY,
121
121
  clipToolResultForStore,
@@ -126,7 +126,7 @@ import {
126
126
  import {
127
127
  GLOBAL_WORKSPACE_ID,
128
128
  isCloudCoordinatorThread
129
- } from "../chunk-MYVKOIIY.js";
129
+ } from "../chunk-ZIRQZUZY.js";
130
130
  import {
131
131
  canonicalizeRepoPath,
132
132
  formatGhLandError,
@@ -11,19 +11,19 @@ import {
11
11
  resolveSendFollowUp,
12
12
  startOrchestration,
13
13
  waitForPidExit
14
- } from "./chunk-4C5PQ7JA.js";
14
+ } from "./chunk-7MQSYPAY.js";
15
15
  import "./chunk-LX5R5JOR.js";
16
16
  import "./chunk-QOS4465Y.js";
17
17
  import "./chunk-4GK32AYX.js";
18
18
  import "./chunk-DC3VZXMA.js";
19
- import "./chunk-53SBTCKF.js";
19
+ import "./chunk-7D5QIU3N.js";
20
20
  import "./chunk-MZIZTSR2.js";
21
21
  import "./chunk-6U6QRUHY.js";
22
22
  import "./chunk-E63AM3PW.js";
23
23
  import "./chunk-2GPQZZLY.js";
24
- import "./chunk-SKO7IGKU.js";
24
+ import "./chunk-BYUCNIXK.js";
25
25
  import "./chunk-EQ52JR3Q.js";
26
- import "./chunk-MYVKOIIY.js";
26
+ import "./chunk-ZIRQZUZY.js";
27
27
  import "./chunk-ROOZDDFA.js";
28
28
  import "./chunk-N2WW62LF.js";
29
29
  import "./chunk-4YXZOXMT.js";
@@ -9,16 +9,16 @@ import {
9
9
  resolveSendFollowUp,
10
10
  startOrchestration,
11
11
  waitForPidExit
12
- } from "./chunk-JDX3474T.js";
12
+ } from "./chunk-DF5BM5OY.js";
13
13
  import "./chunk-PGPSIEMW.js";
14
- import "./chunk-D3VSKNVA.js";
14
+ import "./chunk-JH5SMVM5.js";
15
15
  import "./chunk-S5CJUIPY.js";
16
- import "./chunk-RTVS3M74.js";
16
+ import "./chunk-RR4WCGNB.js";
17
17
  import "./chunk-QIC2JXHW.js";
18
18
  import "./chunk-7H655NEW.js";
19
19
  import "./chunk-INBUV7HY.js";
20
20
  import "./chunk-5GDJSFCT.js";
21
- import "./chunk-6W3XRKD5.js";
21
+ import "./chunk-JE3JLHMO.js";
22
22
  import "./chunk-FUFNMUNR.js";
23
23
  import "./chunk-IFWGG2M2.js";
24
24
  import "./chunk-QKHEVSB5.js";
@@ -9,7 +9,7 @@ import {
9
9
  removeWorkspace,
10
10
  sameWorkspacePath,
11
11
  syncWorkspacesFromThreads
12
- } from "./chunk-6W3XRKD5.js";
12
+ } from "./chunk-JE3JLHMO.js";
13
13
  import "./chunk-FUFNMUNR.js";
14
14
  import "./chunk-IFWGG2M2.js";
15
15
  import "./chunk-QKHEVSB5.js";
@@ -11,7 +11,7 @@ import {
11
11
  removeWorkspace,
12
12
  sameWorkspacePath,
13
13
  syncWorkspacesFromThreads
14
- } from "./chunk-MYVKOIIY.js";
14
+ } from "./chunk-ZIRQZUZY.js";
15
15
  import "./chunk-ROOZDDFA.js";
16
16
  import "./chunk-N2WW62LF.js";
17
17
  import "./chunk-4YXZOXMT.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sideboard-ai/core",
3
- "version": "0.1.323",
3
+ "version": "0.1.324",
4
4
  "description": "Sideboard core — orchestration, agents, git worktrees, MCP server",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",