@sideboard-ai/core 0.1.302 → 0.1.303

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 (37) hide show
  1. package/dist/agents/claude-runner.cjs +28 -7
  2. package/dist/agents/claude-runner.js +22 -8
  3. package/dist/{agents-V2SRC2LH.js → agents-3GN4E2X3.js} +5 -5
  4. package/dist/{agents-ETD2LWP4.js → agents-XLHFVC64.js} +4 -4
  5. package/dist/{chunk-FUXOZHHF.js → chunk-3TZRSKFJ.js} +4 -4
  6. package/dist/{chunk-JTW4CZEQ.js → chunk-545DY7CQ.js} +13 -13
  7. package/dist/{chunk-3XDU7RIE.js → chunk-5MVOZLN7.js} +1 -1
  8. package/dist/{chunk-2KJE53ZJ.js → chunk-7AYOOG77.js} +5 -4
  9. package/dist/{chunk-7SEWZXPT.js → chunk-BRFDPV7Z.js} +2 -2
  10. package/dist/{chunk-EP4IIKP4.js → chunk-DW6NNYUJ.js} +4 -4
  11. package/dist/{chunk-FO3NKZVJ.js → chunk-F2PVRF3B.js} +9 -0
  12. package/dist/{chunk-KIWICTLW.js → chunk-GEFH4QFX.js} +1 -1
  13. package/dist/{chunk-FPJFK4LB.js → chunk-GS6O65Q2.js} +11 -11
  14. package/dist/{chunk-WV33I2GC.js → chunk-P2GHFJOB.js} +1 -1
  15. package/dist/{chunk-OJKSDRZU.js → chunk-RAGDMEIB.js} +4 -4
  16. package/dist/{chunk-LZ744H2I.js → chunk-YCDHLK2Z.js} +2 -2
  17. package/dist/{conductor-57UKACQA.js → conductor-2AVFGSQJ.js} +4 -4
  18. package/dist/{conductor-57KZLWTB.js → conductor-ATST6OMC.js} +5 -5
  19. package/dist/{coordinator-prompt-VOWUJRVJ.js → coordinator-prompt-CQPUNMRX.js} +4 -4
  20. package/dist/{coordinator-prompt-2TBRFJZ5.js → coordinator-prompt-TIAI6A47.js} +3 -3
  21. package/dist/{global-workspace-V6SOEETA.js → global-workspace-7YABMLQG.js} +4 -4
  22. package/dist/{global-workspace-T5C7EMVV.js → global-workspace-UZJUHGQP.js} +3 -3
  23. package/dist/index.cjs +851 -367
  24. package/dist/index.d.cts +104 -2
  25. package/dist/index.d.ts +104 -2
  26. package/dist/index.js +825 -354
  27. package/dist/mcp/run-stdio.js +6 -6
  28. package/dist/{orchestrator-C43M3JDK.js → orchestrator-COX6QO2B.js} +6 -6
  29. package/dist/{orchestrator-JEF7JC3S.js → orchestrator-CZPRDLHV.js} +7 -7
  30. package/dist/{thread-store-POAYB2ID.js → thread-store-PNX4HVLO.js} +2 -2
  31. package/dist/{thread-store-BMNJEJUH.js → thread-store-VC4AIKN3.js} +1 -1
  32. package/dist/{workspaces-EWVIEJ4O.js → workspaces-6DJL4IST.js} +4 -4
  33. package/dist/{workspaces-7ZYTTB4A.js → workspaces-GZ7F5EJR.js} +3 -3
  34. package/dist/{worktree-2Q6J2VWZ.js → worktree-2BYVRYPJ.js} +3 -3
  35. package/dist/{worktree-ZAJGYKCB.js → worktree-VXPOY2LE.js} +2 -2
  36. package/package.json +1 -1
  37. /package/dist/{chunk-FBZODCO4.js → chunk-FA3V56KF.js} +0 -0
@@ -388,6 +388,14 @@ function createClaudePilotSdkServer(createSdkMcpServer, tool, opts) {
388
388
  function sanitizeMcpServerName(name) {
389
389
  return name.replace(/[^A-Za-z0-9_-]/g, "_");
390
390
  }
391
+ function isClaudeAiConnectorMcp(toolName, serverName, serverSource) {
392
+ if (!toolName.startsWith("mcp__")) return false;
393
+ if (serverSource === "claudeai") return true;
394
+ if (serverName && /^claude\.ai\b/i.test(serverName.trim())) return true;
395
+ if (/^mcp__claude_ai_/i.test(toolName)) return true;
396
+ const id = mcpServerIdForPermission(toolName, serverName);
397
+ return id != null && id.startsWith("claude_ai_");
398
+ }
391
399
  function mcpServerIdForPermission(toolName, serverName) {
392
400
  if (toolName.startsWith("mcp__")) {
393
401
  const rest = toolName.slice("mcp__".length);
@@ -424,19 +432,31 @@ function fromAnswer(raw) {
424
432
  const message = typeof rec.message === "string" && rec.message.trim() ? rec.message.trim() : "The user denied this action.";
425
433
  return deny(message);
426
434
  }
435
+ function allowMcpServer(serverId) {
436
+ return {
437
+ behavior: "allow",
438
+ updatedPermissions: [mcpServerPermissionUpdate(serverId)],
439
+ decisionClassification: "user_permanent"
440
+ };
441
+ }
442
+ function claudeAiConnectorAlreadyAllowed(input) {
443
+ if (input.options.requiresUserInteraction === true) return false;
444
+ if (input.options.matchedAskRule) return false;
445
+ if (input.options.decisionReasonType) return false;
446
+ if (input.options.decisionReason?.trim()) return false;
447
+ return isClaudeAiConnectorMcp(input.toolName, input.mcpServer, input.mcpServerSource);
448
+ }
427
449
  async function claudePermissionResult(input) {
428
450
  if (input.permissionMode === "plan") {
429
451
  return deny("Plan mode is on, so this action stays blocked.");
430
452
  }
431
453
  if (input.permissionMode === "bypassPermissions") {
432
454
  const serverId = mcpServerIdForPermission(input.toolName, input.mcpServer);
433
- if (serverId) {
434
- return {
435
- behavior: "allow",
436
- updatedPermissions: [mcpServerPermissionUpdate(serverId)],
437
- decisionClassification: "user_permanent"
438
- };
439
- }
455
+ if (serverId) return allowMcpServer(serverId);
456
+ }
457
+ if (claudeAiConnectorAlreadyAllowed(input)) {
458
+ const serverId = mcpServerIdForPermission(input.toolName, input.mcpServer);
459
+ if (serverId) return allowMcpServer(serverId);
440
460
  }
441
461
  const threadId = input.threadId.trim();
442
462
  if (!threadId) return deny("Sideboard could not tell which chat to ask.");
@@ -534,6 +554,7 @@ async function main() {
534
554
  toolName,
535
555
  toolInput,
536
556
  mcpServer: toolOpts.mcpServer?.name,
557
+ mcpServerSource: toolOpts.mcpServer?.source,
537
558
  options: toolOpts,
538
559
  rpc: req.agentRpc
539
560
  });
@@ -1,8 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
+ isClaudeAiConnectorMcp,
3
4
  mcpServerIdForPermission,
4
5
  mcpServerPermissionUpdate
5
- } from "../chunk-FO3NKZVJ.js";
6
+ } from "../chunk-F2PVRF3B.js";
6
7
  import {
7
8
  AGENT_RPC_CLAUDE_SDK_SERVER,
8
9
  AgentRpcClient,
@@ -77,19 +78,31 @@ function fromAnswer(raw) {
77
78
  const message = typeof rec.message === "string" && rec.message.trim() ? rec.message.trim() : "The user denied this action.";
78
79
  return deny(message);
79
80
  }
81
+ function allowMcpServer(serverId) {
82
+ return {
83
+ behavior: "allow",
84
+ updatedPermissions: [mcpServerPermissionUpdate(serverId)],
85
+ decisionClassification: "user_permanent"
86
+ };
87
+ }
88
+ function claudeAiConnectorAlreadyAllowed(input) {
89
+ if (input.options.requiresUserInteraction === true) return false;
90
+ if (input.options.matchedAskRule) return false;
91
+ if (input.options.decisionReasonType) return false;
92
+ if (input.options.decisionReason?.trim()) return false;
93
+ return isClaudeAiConnectorMcp(input.toolName, input.mcpServer, input.mcpServerSource);
94
+ }
80
95
  async function claudePermissionResult(input) {
81
96
  if (input.permissionMode === "plan") {
82
97
  return deny("Plan mode is on, so this action stays blocked.");
83
98
  }
84
99
  if (input.permissionMode === "bypassPermissions") {
85
100
  const serverId = mcpServerIdForPermission(input.toolName, input.mcpServer);
86
- if (serverId) {
87
- return {
88
- behavior: "allow",
89
- updatedPermissions: [mcpServerPermissionUpdate(serverId)],
90
- decisionClassification: "user_permanent"
91
- };
92
- }
101
+ if (serverId) return allowMcpServer(serverId);
102
+ }
103
+ if (claudeAiConnectorAlreadyAllowed(input)) {
104
+ const serverId = mcpServerIdForPermission(input.toolName, input.mcpServer);
105
+ if (serverId) return allowMcpServer(serverId);
93
106
  }
94
107
  const threadId = input.threadId.trim();
95
108
  if (!threadId) return deny("Sideboard could not tell which chat to ask.");
@@ -187,6 +200,7 @@ async function main() {
187
200
  toolName,
188
201
  toolInput,
189
202
  mcpServer: toolOpts.mcpServer?.name,
203
+ mcpServerSource: toolOpts.mcpServer?.source,
190
204
  options: toolOpts,
191
205
  rpc: req.agentRpc
192
206
  });
@@ -37,7 +37,7 @@ import {
37
37
  planModeTurnInstruction,
38
38
  resolveCursorModelId,
39
39
  resolveQuotaFallbackAgent
40
- } from "./chunk-2KJE53ZJ.js";
40
+ } from "./chunk-7AYOOG77.js";
41
41
  import "./chunk-VGNLMGBK.js";
42
42
  import "./chunk-F36QRDM4.js";
43
43
  import {
@@ -52,13 +52,13 @@ import {
52
52
  resolveLoginCommand,
53
53
  whichOnPath
54
54
  } from "./chunk-B42H6GJR.js";
55
- import "./chunk-7SEWZXPT.js";
56
- import "./chunk-KIWICTLW.js";
57
- import "./chunk-WV33I2GC.js";
55
+ import "./chunk-BRFDPV7Z.js";
56
+ import "./chunk-GEFH4QFX.js";
57
+ import "./chunk-P2GHFJOB.js";
58
58
  import "./chunk-2P4XKWV2.js";
59
59
  import "./chunk-33KDPEK4.js";
60
60
  import "./chunk-JAT3JFOS.js";
61
- import "./chunk-FO3NKZVJ.js";
61
+ import "./chunk-F2PVRF3B.js";
62
62
  import {
63
63
  CURSOR_SDK_INSTALL_HINT,
64
64
  cursorSdkMessageToEvents,
@@ -46,7 +46,7 @@ import {
46
46
  resolveCursorSdkRoot,
47
47
  resolveQuotaFallbackAgent,
48
48
  turnCostUsdFromCursorUsage
49
- } from "./chunk-FUXOZHHF.js";
49
+ } from "./chunk-3TZRSKFJ.js";
50
50
  import {
51
51
  getAgentSetupInfo,
52
52
  installAgent,
@@ -63,8 +63,8 @@ import "./chunk-7IAMHN2N.js";
63
63
  import "./chunk-PXMLMBMI.js";
64
64
  import "./chunk-2GPQZZLY.js";
65
65
  import "./chunk-5XQ43YZU.js";
66
- import "./chunk-LZ744H2I.js";
67
- import "./chunk-3XDU7RIE.js";
66
+ import "./chunk-YCDHLK2Z.js";
67
+ import "./chunk-5MVOZLN7.js";
68
68
  import "./chunk-N2WW62LF.js";
69
69
  import "./chunk-DD67JWTN.js";
70
70
  import {
@@ -88,7 +88,7 @@ import "./chunk-NSTQ6QKD.js";
88
88
  import "./chunk-WWUABK6B.js";
89
89
  import "./chunk-FJZWM2ON.js";
90
90
  import "./chunk-UN5Q7POQ.js";
91
- import "./chunk-FBZODCO4.js";
91
+ import "./chunk-FA3V56KF.js";
92
92
  import "./chunk-4RZRHTSZ.js";
93
93
  import "./chunk-KGZBYWZ3.js";
94
94
  import "./chunk-H5XL4KUS.js";
@@ -24,13 +24,13 @@ import {
24
24
  } from "./chunk-5XQ43YZU.js";
25
25
  import {
26
26
  isOrchestratorThread
27
- } from "./chunk-LZ744H2I.js";
27
+ } from "./chunk-YCDHLK2Z.js";
28
28
  import {
29
29
  codexUnattendedGitConfigArgs,
30
30
  mergeAgentGitAuthEnv,
31
31
  resolveAgentGitAuthEnv,
32
32
  resolveCodexGitWritableRoots
33
- } from "./chunk-3XDU7RIE.js";
33
+ } from "./chunk-5MVOZLN7.js";
34
34
  import {
35
35
  npmGlobalNodeModules,
36
36
  run
@@ -56,7 +56,7 @@ import {
56
56
  CLAUDE_POSTHOG_CONNECTOR_ALLOWED_TOOLS,
57
57
  CLAUDE_PRINT_BG_WAIT_CEILING_MS,
58
58
  mcpAllowToolsFromNames
59
- } from "./chunk-FBZODCO4.js";
59
+ } from "./chunk-FA3V56KF.js";
60
60
  import {
61
61
  appDataDir
62
62
  } from "./chunk-H5XL4KUS.js";
@@ -1979,7 +1979,7 @@ var claudeAdapter = {
1979
1979
  );
1980
1980
  }
1981
1981
  const mode = permissionMode(thread);
1982
- const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-T5C7EMVV.js");
1982
+ const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-UZJUHGQP.js");
1983
1983
  const isOrchestrator = isOrchestratorThread2(thread);
1984
1984
  const rpc = worktreeAgentRpc(isOrchestrator);
1985
1985
  const injectedServers = await buildInjectedMcpServers({
@@ -14,7 +14,7 @@ import {
14
14
  parseSessionQuotaResetAt,
15
15
  planModeTurnInstruction,
16
16
  resolveQuotaFallbackAgent
17
- } from "./chunk-2KJE53ZJ.js";
17
+ } from "./chunk-7AYOOG77.js";
18
18
  import {
19
19
  REVIEW_TAB_TITLE,
20
20
  applyWorktreePkgCacheEnv,
@@ -53,7 +53,7 @@ import {
53
53
  worktreeDevProcessKey,
54
54
  worktreeRunProcessKey,
55
55
  worktreeSetupProcessKey
56
- } from "./chunk-OJKSDRZU.js";
56
+ } from "./chunk-RAGDMEIB.js";
57
57
  import {
58
58
  applyAgentEvent,
59
59
  clipAgentEventForPaint,
@@ -100,7 +100,7 @@ import {
100
100
  stageAbsolutePathsAsAttachments,
101
101
  stageBuffersAsAttachments,
102
102
  syncWorkspacesFromThreads
103
- } from "./chunk-7SEWZXPT.js";
103
+ } from "./chunk-BRFDPV7Z.js";
104
104
  import {
105
105
  addPrStackLayer,
106
106
  allocateTeamSlug,
@@ -144,7 +144,7 @@ import {
144
144
  resolveRepoRoot,
145
145
  switchWorktreeBranch,
146
146
  withRepoGitLock
147
- } from "./chunk-KIWICTLW.js";
147
+ } from "./chunk-GEFH4QFX.js";
148
148
  import {
149
149
  agentNicknameFromWorktreePath,
150
150
  appendMessage,
@@ -168,11 +168,11 @@ import {
168
168
  worktreeNameFromPath,
169
169
  worktreeSlugForTicket,
170
170
  writeThread
171
- } from "./chunk-WV33I2GC.js";
171
+ } from "./chunk-P2GHFJOB.js";
172
172
  import {
173
173
  mcpServerIdForPermission,
174
174
  mcpServerPermissionUpdate
175
- } from "./chunk-FO3NKZVJ.js";
175
+ } from "./chunk-F2PVRF3B.js";
176
176
  import {
177
177
  createAgentStreamCoalescer
178
178
  } from "./chunk-AXQ4ZWHK.js";
@@ -457,9 +457,9 @@ async function spawnAgentTurn(thread, input, onEvent) {
457
457
  `Cannot spawn ${thread.agent}: thread ${thread.id} has no worktreePath`
458
458
  );
459
459
  }
460
- const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-V6SOEETA.js");
460
+ const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-7YABMLQG.js");
461
461
  if (isGlobalThread2(thread)) {
462
- const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-VOWUJRVJ.js");
462
+ const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-CQPUNMRX.js");
463
463
  ensureGlobalCoordinatorCwd2(
464
464
  isOrchestratorThread(thread) ? { orchestratorThreadId: thread.id } : void 0
465
465
  );
@@ -2959,7 +2959,7 @@ async function createThread(input, _onSetupLine) {
2959
2959
  return readThread(thread.id) ?? thread;
2960
2960
  }
2961
2961
  async function listLinearIssues(agent, repoPath) {
2962
- const { getAdapter: getAdapter2 } = await import("./agents-V2SRC2LH.js");
2962
+ const { getAdapter: getAdapter2 } = await import("./agents-3GN4E2X3.js");
2963
2963
  await requireAgent(agent, { requireLinear: true });
2964
2964
  const adapter = getAdapter2(agent);
2965
2965
  if (!adapter.listLinearIssues) {
@@ -3735,7 +3735,7 @@ async function adoptThread(input) {
3735
3735
  messages: input.messages ?? []
3736
3736
  });
3737
3737
  writeThread(thread);
3738
- const { addWorkspace: addWorkspace2 } = await import("./workspaces-EWVIEJ4O.js");
3738
+ const { addWorkspace: addWorkspace2 } = await import("./workspaces-6DJL4IST.js");
3739
3739
  await addWorkspace2(repoPath);
3740
3740
  const { ensureWorktreeSideboardIgnored } = await import("./worktree-exclude-RXZPTCNH.js");
3741
3741
  await ensureWorktreeSideboardIgnored(input.worktreePath);
@@ -6664,7 +6664,7 @@ function formatScheduledPrompt(name, prompt) {
6664
6664
  ${prompt}`;
6665
6665
  }
6666
6666
  async function defaultDeps() {
6667
- const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-JEF7JC3S.js");
6667
+ const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-CZPRDLHV.js");
6668
6668
  const orch = getOrchestrator2();
6669
6669
  return {
6670
6670
  findThread: (id) => findThreadByRef(id),
@@ -9539,7 +9539,7 @@ async function startOrchestration(opts) {
9539
9539
  sourceRef: "default",
9540
9540
  ...createOpts
9541
9541
  }).catch(async () => {
9542
- const { resolveDefaultBranch: resolveDefaultBranch2, resolveRepoRoot: resolveRepoRoot2 } = await import("./worktree-2Q6J2VWZ.js");
9542
+ const { resolveDefaultBranch: resolveDefaultBranch2, resolveRepoRoot: resolveRepoRoot2 } = await import("./worktree-2BYVRYPJ.js");
9543
9543
  const repo = await resolveRepoRoot2(repoPath);
9544
9544
  const def = await resolveDefaultBranch2(repo);
9545
9545
  return orch.createThread({
@@ -9549,7 +9549,7 @@ async function startOrchestration(opts) {
9549
9549
  repoPath: repo
9550
9550
  });
9551
9551
  });
9552
- const { updateThread: upd } = await import("./thread-store-POAYB2ID.js");
9552
+ const { updateThread: upd } = await import("./thread-store-PNX4HVLO.js");
9553
9553
  const updated = upd(thread.id, {
9554
9554
  sourceType: "orchestration",
9555
9555
  sourceRef: goal
@@ -26,7 +26,7 @@ import {
26
26
  normalizeTakenSlug,
27
27
  normalizeWorktreePath,
28
28
  takenSlugsFromThread
29
- } from "./chunk-FBZODCO4.js";
29
+ } from "./chunk-FA3V56KF.js";
30
30
  import {
31
31
  worktreesRoot
32
32
  } from "./chunk-H5XL4KUS.js";
@@ -12,13 +12,13 @@ import {
12
12
  } from "./chunk-F36QRDM4.js";
13
13
  import {
14
14
  isOrchestratorThread
15
- } from "./chunk-7SEWZXPT.js";
15
+ } from "./chunk-BRFDPV7Z.js";
16
16
  import {
17
17
  codexUnattendedGitConfigArgs,
18
18
  mergeAgentGitAuthEnv,
19
19
  resolveAgentGitAuthEnv,
20
20
  resolveCodexGitWritableRoots
21
- } from "./chunk-KIWICTLW.js";
21
+ } from "./chunk-GEFH4QFX.js";
22
22
  import {
23
23
  loadBrightsyConfig
24
24
  } from "./chunk-33KDPEK4.js";
@@ -31,7 +31,7 @@ import {
31
31
  CLAUDE_POSTHOG_CONNECTOR_ALLOWED_TOOLS,
32
32
  CLAUDE_PRINT_BG_WAIT_CEILING_MS,
33
33
  mcpAllowToolsFromNames
34
- } from "./chunk-FO3NKZVJ.js";
34
+ } from "./chunk-F2PVRF3B.js";
35
35
  import {
36
36
  CURSOR_SDK_INSTALL_HINT,
37
37
  applyAgentRunnerHeapEnv,
@@ -1691,7 +1691,7 @@ var claudeAdapter = {
1691
1691
  );
1692
1692
  }
1693
1693
  const mode = permissionMode(thread);
1694
- const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-V6SOEETA.js");
1694
+ const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-7YABMLQG.js");
1695
1695
  const isOrchestrator = isOrchestratorThread2(thread);
1696
1696
  const rpc = worktreeAgentRpc(isOrchestrator);
1697
1697
  const injectedServers = await buildInjectedMcpServers({
@@ -3641,6 +3641,7 @@ export {
3641
3641
  registerPackagedUserMcpClients,
3642
3642
  isInjectedOrchMcpName,
3643
3643
  userMcpNamesToDisable,
3644
+ listUserClaudeMcpServerEntries,
3644
3645
  PLAN_MODE_INSTRUCTION,
3645
3646
  PLAN_MODE_OFF_INSTRUCTION,
3646
3647
  planModeTurnInstruction,
@@ -3,7 +3,7 @@ import {
3
3
  ensureGhPreferOrigin,
4
4
  resolveGithubRepoSlug,
5
5
  resolveRepoRoot
6
- } from "./chunk-KIWICTLW.js";
6
+ } from "./chunk-GEFH4QFX.js";
7
7
  import {
8
8
  allocateTeamName,
9
9
  createEmptyThread,
@@ -12,7 +12,7 @@ import {
12
12
  teamSlugFromName,
13
13
  updateThread,
14
14
  writeThread
15
- } from "./chunk-WV33I2GC.js";
15
+ } from "./chunk-P2GHFJOB.js";
16
16
  import {
17
17
  ATTACHMENTS_DIR,
18
18
  attachmentsGitignoreBody
@@ -11,11 +11,11 @@ import {
11
11
  isGlobalThread,
12
12
  isOrchestratorThread,
13
13
  isSlackCoordinatorThread
14
- } from "./chunk-LZ744H2I.js";
14
+ } from "./chunk-YCDHLK2Z.js";
15
15
  import {
16
16
  mergeAgentGitAuthEnv,
17
17
  resolveAgentGitAuthEnv
18
- } from "./chunk-3XDU7RIE.js";
18
+ } from "./chunk-5MVOZLN7.js";
19
19
  import {
20
20
  ATTACHMENTS_DIR,
21
21
  DETACHED_JOBS_DIR,
@@ -46,7 +46,7 @@ import {
46
46
  updateThread,
47
47
  worktreeNameFromPath,
48
48
  writeThread
49
- } from "./chunk-FBZODCO4.js";
49
+ } from "./chunk-FA3V56KF.js";
50
50
  import {
51
51
  findConventionSetup,
52
52
  loadRepoSettings,
@@ -1674,7 +1674,7 @@ var PORT_RANGE_SIZE = 10;
1674
1674
  var RECLAIM_RETRY_DELAY_MS = 40;
1675
1675
  var RECLAIM_TRIES = 8;
1676
1676
  async function killReclaimable(ports, worktreePath, signal) {
1677
- const { killListenersOnPorts: killListenersOnPorts2, killStaleWorktreeListeners: killStaleWorktreeListeners2 } = await import("./conductor-57UKACQA.js");
1677
+ const { killListenersOnPorts: killListenersOnPorts2, killStaleWorktreeListeners: killStaleWorktreeListeners2 } = await import("./conductor-2AVFGSQJ.js");
1678
1678
  if (worktreePath) killStaleWorktreeListeners2(ports, worktreePath, signal);
1679
1679
  else killListenersOnPorts2(ports);
1680
1680
  }
@@ -20,6 +20,14 @@ function parseMcpList(text) {
20
20
  function sanitizeMcpServerName(name) {
21
21
  return name.replace(/[^A-Za-z0-9_-]/g, "_");
22
22
  }
23
+ function isClaudeAiConnectorMcp(toolName, serverName, serverSource) {
24
+ if (!toolName.startsWith("mcp__")) return false;
25
+ if (serverSource === "claudeai") return true;
26
+ if (serverName && /^claude\.ai\b/i.test(serverName.trim())) return true;
27
+ if (/^mcp__claude_ai_/i.test(toolName)) return true;
28
+ const id = mcpServerIdForPermission(toolName, serverName);
29
+ return id != null && id.startsWith("claude_ai_");
30
+ }
23
31
  function mcpServerIdForPermission(toolName, serverName) {
24
32
  if (toolName.startsWith("mcp__")) {
25
33
  const rest = toolName.slice("mcp__".length);
@@ -92,6 +100,7 @@ var CLAUDE_POSTHOG_CONNECTOR_ALLOWED_TOOLS = [
92
100
  export {
93
101
  parseMcpList,
94
102
  sanitizeMcpServerName,
103
+ isClaudeAiConnectorMcp,
95
104
  mcpServerIdForPermission,
96
105
  mcpServerPermissionUpdate,
97
106
  mcpAllowTools,
@@ -4,7 +4,7 @@ import {
4
4
  normalizeTakenSlug,
5
5
  normalizeWorktreePath,
6
6
  takenSlugsFromThread
7
- } from "./chunk-WV33I2GC.js";
7
+ } from "./chunk-P2GHFJOB.js";
8
8
  import {
9
9
  ensureWorktreeSideboardIgnored
10
10
  } from "./chunk-2P4XKWV2.js";
@@ -27,7 +27,7 @@ import {
27
27
  parseSessionQuotaResetAt,
28
28
  planModeTurnInstruction,
29
29
  resolveQuotaFallbackAgent
30
- } from "./chunk-FUXOZHHF.js";
30
+ } from "./chunk-3TZRSKFJ.js";
31
31
  import {
32
32
  REVIEW_TAB_TITLE,
33
33
  applyWorktreePkgCacheEnv,
@@ -66,7 +66,7 @@ import {
66
66
  worktreeDevProcessKey,
67
67
  worktreeRunProcessKey,
68
68
  worktreeSetupProcessKey
69
- } from "./chunk-EP4IIKP4.js";
69
+ } from "./chunk-DW6NNYUJ.js";
70
70
  import {
71
71
  applyAgentEvent,
72
72
  clipAgentEventForPaint,
@@ -118,7 +118,7 @@ import {
118
118
  stageAbsolutePathsAsAttachments,
119
119
  stageBuffersAsAttachments,
120
120
  syncWorkspacesFromThreads
121
- } from "./chunk-LZ744H2I.js";
121
+ } from "./chunk-YCDHLK2Z.js";
122
122
  import {
123
123
  addPrStackLayer,
124
124
  allocateTeamSlug,
@@ -160,7 +160,7 @@ import {
160
160
  resolveRepoRoot,
161
161
  switchWorktreeBranch,
162
162
  withRepoGitLock
163
- } from "./chunk-3XDU7RIE.js";
163
+ } from "./chunk-5MVOZLN7.js";
164
164
  import {
165
165
  clearStaleIndexLocks,
166
166
  enrichPathWithNpmGlobalBin,
@@ -238,7 +238,7 @@ import {
238
238
  worktreeNameFromPath,
239
239
  worktreeSlugForTicket,
240
240
  writeThread
241
- } from "./chunk-FBZODCO4.js";
241
+ } from "./chunk-FA3V56KF.js";
242
242
  import {
243
243
  annotateDevAccessRuns,
244
244
  appDataDir,
@@ -503,9 +503,9 @@ async function spawnAgentTurn(thread, input, onEvent) {
503
503
  `Cannot spawn ${thread.agent}: thread ${thread.id} has no worktreePath`
504
504
  );
505
505
  }
506
- const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-T5C7EMVV.js");
506
+ const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-UZJUHGQP.js");
507
507
  if (isGlobalThread2(thread)) {
508
- const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-2TBRFJZ5.js");
508
+ const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-TIAI6A47.js");
509
509
  ensureGlobalCoordinatorCwd2(
510
510
  isOrchestratorThread(thread) ? { orchestratorThreadId: thread.id } : void 0
511
511
  );
@@ -3444,7 +3444,7 @@ async function adoptThread(input) {
3444
3444
  messages: input.messages ?? []
3445
3445
  });
3446
3446
  writeThread(thread);
3447
- const { addWorkspace: addWorkspace2 } = await import("./workspaces-7ZYTTB4A.js");
3447
+ const { addWorkspace: addWorkspace2 } = await import("./workspaces-GZ7F5EJR.js");
3448
3448
  await addWorkspace2(repoPath);
3449
3449
  const { ensureWorktreeSideboardIgnored } = await import("./worktree-exclude-5N2KTYIT.js");
3450
3450
  await ensureWorktreeSideboardIgnored(input.worktreePath);
@@ -6329,7 +6329,7 @@ function formatScheduledPrompt(name, prompt) {
6329
6329
  ${prompt}`;
6330
6330
  }
6331
6331
  async function defaultDeps() {
6332
- const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-C43M3JDK.js");
6332
+ const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-COX6QO2B.js");
6333
6333
  const orch = getOrchestrator2();
6334
6334
  return {
6335
6335
  findThread: (id) => findThreadByRef(id),
@@ -9204,7 +9204,7 @@ async function startOrchestration(opts) {
9204
9204
  sourceRef: "default",
9205
9205
  ...createOpts
9206
9206
  }).catch(async () => {
9207
- const { resolveDefaultBranch: resolveDefaultBranch2, resolveRepoRoot: resolveRepoRoot2 } = await import("./worktree-ZAJGYKCB.js");
9207
+ const { resolveDefaultBranch: resolveDefaultBranch2, resolveRepoRoot: resolveRepoRoot2 } = await import("./worktree-VXPOY2LE.js");
9208
9208
  const repo = await resolveRepoRoot2(repoPath);
9209
9209
  const def = await resolveDefaultBranch2(repo);
9210
9210
  return orch.createThread({
@@ -9214,7 +9214,7 @@ async function startOrchestration(opts) {
9214
9214
  repoPath: repo
9215
9215
  });
9216
9216
  });
9217
- const { updateThread: upd } = await import("./thread-store-BMNJEJUH.js");
9217
+ const { updateThread: upd } = await import("./thread-store-VC4AIKN3.js");
9218
9218
  const updated = upd(thread.id, {
9219
9219
  sourceType: "orchestration",
9220
9220
  sourceRef: goal
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  sanitizeMcpServerName
3
- } from "./chunk-FO3NKZVJ.js";
3
+ } from "./chunk-F2PVRF3B.js";
4
4
  import {
5
5
  cursorSdkStoreDir
6
6
  } from "./chunk-UWQ6UCIB.js";
@@ -8,11 +8,11 @@ import {
8
8
  isGlobalThread,
9
9
  isOrchestratorThread,
10
10
  isSlackCoordinatorThread
11
- } from "./chunk-7SEWZXPT.js";
11
+ } from "./chunk-BRFDPV7Z.js";
12
12
  import {
13
13
  mergeAgentGitAuthEnv,
14
14
  resolveAgentGitAuthEnv
15
- } from "./chunk-KIWICTLW.js";
15
+ } from "./chunk-GEFH4QFX.js";
16
16
  import {
17
17
  allocateTeamName,
18
18
  createEmptyThread,
@@ -23,7 +23,7 @@ import {
23
23
  updateThread,
24
24
  worktreeNameFromPath,
25
25
  writeThread
26
- } from "./chunk-WV33I2GC.js";
26
+ } from "./chunk-P2GHFJOB.js";
27
27
  import {
28
28
  ensureWorktreeSideboardIgnored
29
29
  } from "./chunk-2P4XKWV2.js";
@@ -1776,7 +1776,7 @@ var PORT_RANGE_SIZE = 10;
1776
1776
  var RECLAIM_RETRY_DELAY_MS = 40;
1777
1777
  var RECLAIM_TRIES = 8;
1778
1778
  async function killReclaimable(ports, worktreePath, signal) {
1779
- const { killListenersOnPorts: killListenersOnPorts2, killStaleWorktreeListeners: killStaleWorktreeListeners2 } = await import("./conductor-57KZLWTB.js");
1779
+ const { killListenersOnPorts: killListenersOnPorts2, killStaleWorktreeListeners: killStaleWorktreeListeners2 } = await import("./conductor-ATST6OMC.js");
1780
1780
  if (worktreePath) killStaleWorktreeListeners2(ports, worktreePath, signal);
1781
1781
  else killListenersOnPorts2(ports);
1782
1782
  }
@@ -5,7 +5,7 @@ import {
5
5
  ensureGhPreferOrigin,
6
6
  resolveGithubRepoSlug,
7
7
  resolveRepoRoot
8
- } from "./chunk-3XDU7RIE.js";
8
+ } from "./chunk-5MVOZLN7.js";
9
9
  import {
10
10
  ATTACHMENTS_DIR,
11
11
  attachmentsGitignoreBody
@@ -31,7 +31,7 @@ import {
31
31
  teamSlugFromName,
32
32
  updateThread,
33
33
  writeThread
34
- } from "./chunk-FBZODCO4.js";
34
+ } from "./chunk-FA3V56KF.js";
35
35
  import {
36
36
  appDataDir,
37
37
  globalAgentCwd,
@@ -33,10 +33,10 @@ import {
33
33
  tryReservePort,
34
34
  tryReservePorts,
35
35
  worktreeRunPortsPath
36
- } from "./chunk-EP4IIKP4.js";
36
+ } from "./chunk-DW6NNYUJ.js";
37
37
  import "./chunk-5XQ43YZU.js";
38
- import "./chunk-LZ744H2I.js";
39
- import "./chunk-3XDU7RIE.js";
38
+ import "./chunk-YCDHLK2Z.js";
39
+ import "./chunk-5MVOZLN7.js";
40
40
  import "./chunk-N2WW62LF.js";
41
41
  import "./chunk-DD67JWTN.js";
42
42
  import "./chunk-2UG25RMK.js";
@@ -47,7 +47,7 @@ import {
47
47
  } from "./chunk-WWUABK6B.js";
48
48
  import "./chunk-FJZWM2ON.js";
49
49
  import "./chunk-UN5Q7POQ.js";
50
- import "./chunk-FBZODCO4.js";
50
+ import "./chunk-FA3V56KF.js";
51
51
  import "./chunk-4RZRHTSZ.js";
52
52
  import "./chunk-KGZBYWZ3.js";
53
53
  import {
@@ -31,13 +31,13 @@ import {
31
31
  tryReservePort,
32
32
  tryReservePorts,
33
33
  worktreeRunPortsPath
34
- } from "./chunk-OJKSDRZU.js";
34
+ } from "./chunk-RAGDMEIB.js";
35
35
  import "./chunk-F36QRDM4.js";
36
- import "./chunk-7SEWZXPT.js";
37
- import "./chunk-KIWICTLW.js";
38
- import "./chunk-WV33I2GC.js";
36
+ import "./chunk-BRFDPV7Z.js";
37
+ import "./chunk-GEFH4QFX.js";
38
+ import "./chunk-P2GHFJOB.js";
39
39
  import "./chunk-2P4XKWV2.js";
40
- import "./chunk-FO3NKZVJ.js";
40
+ import "./chunk-F2PVRF3B.js";
41
41
  import "./chunk-HO5R3ZRH.js";
42
42
  import "./chunk-6K64FJDD.js";
43
43
  import "./chunk-UWQ6UCIB.js";
@@ -7,11 +7,11 @@ import {
7
7
  enrichWorkspacesWithGithub,
8
8
  ensureGlobalCoordinatorCwd,
9
9
  formatWorkspaceInventory
10
- } from "./chunk-7SEWZXPT.js";
11
- import "./chunk-KIWICTLW.js";
12
- import "./chunk-WV33I2GC.js";
10
+ } from "./chunk-BRFDPV7Z.js";
11
+ import "./chunk-GEFH4QFX.js";
12
+ import "./chunk-P2GHFJOB.js";
13
13
  import "./chunk-2P4XKWV2.js";
14
- import "./chunk-FO3NKZVJ.js";
14
+ import "./chunk-F2PVRF3B.js";
15
15
  import "./chunk-6K64FJDD.js";
16
16
  import "./chunk-UWQ6UCIB.js";
17
17
  import "./chunk-QVN2WOKJ.js";