@sideboard-ai/core 0.1.253 → 0.1.255

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-6HDC7UA7.js → agents-FSUI5MET.js} +3 -3
  2. package/dist/{agents-RKZ2NBIV.js → agents-HZP7YEKC.js} +3 -3
  3. package/dist/{chunk-46KDLP6T.js → chunk-553IEH7O.js} +25 -10
  4. package/dist/{chunk-PLMMPA6A.js → chunk-63YSFXLT.js} +54 -0
  5. package/dist/{chunk-JUYD2YUC.js → chunk-BYRZS2S2.js} +1 -1
  6. package/dist/{chunk-6ZYSXLXK.js → chunk-F7ANS66U.js} +3 -3
  7. package/dist/{chunk-WVNQML4W.js → chunk-HCNCZPDL.js} +54 -0
  8. package/dist/{chunk-IAS7Q2YF.js → chunk-PJK24CN3.js} +1 -1
  9. package/dist/{chunk-MLB5CFUP.js → chunk-R4DWUBOL.js} +3 -3
  10. package/dist/{chunk-GZRS5QVL.js → chunk-Y7CS2WGJ.js} +26 -11
  11. package/dist/{coordinator-prompt-JKW7YZOC.js → coordinator-prompt-HZUWK3NP.js} +2 -2
  12. package/dist/{coordinator-prompt-YSIC6YFC.js → coordinator-prompt-Y6S6USNS.js} +2 -2
  13. package/dist/{global-workspace-3Q57XYG4.js → global-workspace-4JCITHB6.js} +2 -2
  14. package/dist/{global-workspace-DMR5JB7T.js → global-workspace-YA7U4M2N.js} +2 -2
  15. package/dist/index.cjs +70 -0
  16. package/dist/index.d.cts +13 -1
  17. package/dist/index.d.ts +13 -1
  18. package/dist/index.js +7 -5
  19. package/dist/mcp/run-stdio.cjs +68 -0
  20. package/dist/mcp/run-stdio.js +5 -5
  21. package/dist/{orchestrator-PJCQSVLY.js → orchestrator-LWADJQTN.js} +4 -4
  22. package/dist/{orchestrator-W6DUFWVE.js → orchestrator-VHJZEVGA.js} +4 -4
  23. package/dist/{workspaces-PS3IO4VJ.js → workspaces-4KHEUPEX.js} +2 -2
  24. package/dist/{workspaces-6A3ASHHI.js → workspaces-IXZD7EC4.js} +2 -2
  25. package/dist/{worktree-7WTVHFGF.js → worktree-DAAF64UU.js} +3 -1
  26. package/dist/{worktree-DLSVHUF6.js → worktree-S3FOMEQ2.js} +3 -1
  27. package/package.json +1 -1
@@ -46,9 +46,9 @@ import {
46
46
  resolveLoginCommand,
47
47
  resolveQuotaFallbackAgent,
48
48
  whichOnPath
49
- } from "./chunk-MLB5CFUP.js";
50
- import "./chunk-JUYD2YUC.js";
51
- import "./chunk-PLMMPA6A.js";
49
+ } from "./chunk-R4DWUBOL.js";
50
+ import "./chunk-BYRZS2S2.js";
51
+ import "./chunk-63YSFXLT.js";
52
52
  import "./chunk-6K64FJDD.js";
53
53
  import "./chunk-2P4XKWV2.js";
54
54
  import "./chunk-5F4YFGHL.js";
@@ -55,12 +55,12 @@ import {
55
55
  resolveQuotaFallbackAgent,
56
56
  turnCostUsdFromCursorUsage,
57
57
  whichOnPath
58
- } from "./chunk-6ZYSXLXK.js";
59
- import "./chunk-IAS7Q2YF.js";
58
+ } from "./chunk-F7ANS66U.js";
59
+ import "./chunk-PJK24CN3.js";
60
60
  import "./chunk-XAISOBBG.js";
61
61
  import "./chunk-P2BSMNHB.js";
62
62
  import "./chunk-VKQGAWHY.js";
63
- import "./chunk-WVNQML4W.js";
63
+ import "./chunk-HCNCZPDL.js";
64
64
  import "./chunk-D6JWYJ4P.js";
65
65
  import "./chunk-RJC2MKXN.js";
66
66
  import "./chunk-H547WSSZ.js";
@@ -44,7 +44,7 @@ import {
44
44
  summarizeTurnStderr,
45
45
  toolDescription,
46
46
  turnFailChatText
47
- } from "./chunk-6ZYSXLXK.js";
47
+ } from "./chunk-F7ANS66U.js";
48
48
  import {
49
49
  SLACK_REPLY_FORMATTING,
50
50
  addWorkspace,
@@ -67,7 +67,7 @@ import {
67
67
  stageAbsolutePathsAsAttachments,
68
68
  stageBuffersAsAttachments,
69
69
  syncWorkspacesFromThreads
70
- } from "./chunk-IAS7Q2YF.js";
70
+ } from "./chunk-PJK24CN3.js";
71
71
  import {
72
72
  addPrStackLayer,
73
73
  allocateTeamName,
@@ -110,6 +110,7 @@ import {
110
110
  resolveGithubRepoSlug,
111
111
  resolvePrSelector,
112
112
  resolveRepoRoot,
113
+ switchWorktreeBranch,
113
114
  takenSlugsFromThread,
114
115
  threadDisplayLabel,
115
116
  ticketSlugForBranch,
@@ -117,7 +118,7 @@ import {
117
118
  worktreeDisplayLabelForGroup,
118
119
  worktreeNameFromPath,
119
120
  worktreeSlugForTicket
120
- } from "./chunk-WVNQML4W.js";
121
+ } from "./chunk-HCNCZPDL.js";
121
122
  import {
122
123
  ATTACHMENTS_DIR,
123
124
  DETACHED_JOBS_DIR,
@@ -492,9 +493,9 @@ async function spawnAgentTurn(thread, input, onEvent) {
492
493
  `Cannot spawn ${thread.agent}: thread ${thread.id} has no worktreePath`
493
494
  );
494
495
  }
495
- const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-DMR5JB7T.js");
496
+ const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-YA7U4M2N.js");
496
497
  if (isGlobalThread2(thread)) {
497
- const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-JKW7YZOC.js");
498
+ const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-HZUWK3NP.js");
498
499
  ensureGlobalCoordinatorCwd2(
499
500
  isOrchestratorThread(thread) ? { orchestratorThreadId: thread.id } : void 0
500
501
  );
@@ -4600,7 +4601,7 @@ async function adoptThread(input) {
4600
4601
  messages: input.messages ?? []
4601
4602
  });
4602
4603
  writeThread(thread);
4603
- const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-6A3ASHHI.js");
4604
+ const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-IXZD7EC4.js");
4604
4605
  await ensureWorkspace2(repoPath);
4605
4606
  const { ensureWorktreeSideboardIgnored: ensureWorktreeSideboardIgnored2 } = await import("./worktree-exclude-5N2KTYIT.js");
4606
4607
  await ensureWorktreeSideboardIgnored2(input.worktreePath);
@@ -7123,7 +7124,7 @@ function formatScheduledPrompt(name, prompt) {
7123
7124
  ${prompt}`;
7124
7125
  }
7125
7126
  async function defaultDeps() {
7126
- const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-W6DUFWVE.js");
7127
+ const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-VHJZEVGA.js");
7127
7128
  const orch = getOrchestrator2();
7128
7129
  return {
7129
7130
  findThread: (id) => findThreadByRef(id),
@@ -9681,6 +9682,20 @@ var Orchestrator = class {
9681
9682
  if (!next) throw new Error("Title cannot be empty");
9682
9683
  return updateThread(thread.id, { title: next, userSetTitle: true });
9683
9684
  }
9685
+ async switchThreadBranch(threadRef, branchName) {
9686
+ const thread = this.requireThread(threadRef);
9687
+ this.assertNotGlobal(thread, "Switch branch");
9688
+ if (thread.status === "running") {
9689
+ throw new Error("Stop the agent before switching branches");
9690
+ }
9691
+ await switchWorktreeBranch({
9692
+ repoPath: thread.repoPath,
9693
+ worktreePath: thread.worktreePath,
9694
+ branchName
9695
+ });
9696
+ await syncThreadBranchFromGit(thread.id);
9697
+ return this.requireThread(thread.id);
9698
+ }
9684
9699
  setAttachments(threadRef, attachments) {
9685
9700
  return updateThread(this.requireThread(threadRef).id, { attachments });
9686
9701
  }
@@ -9749,7 +9764,7 @@ var Orchestrator = class {
9749
9764
  this.enforceHistoryRetention();
9750
9765
  if (thread.repoPath && !isGlobalRepoPath(thread.repoPath)) {
9751
9766
  try {
9752
- const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-6A3ASHHI.js");
9767
+ const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-IXZD7EC4.js");
9753
9768
  await ensureWorkspace2(thread.repoPath);
9754
9769
  } catch {
9755
9770
  }
@@ -9803,7 +9818,7 @@ var Orchestrator = class {
9803
9818
  `Cowboy checkout missing: ${thread.worktreePath}. Re-add the project folder, then restore.`
9804
9819
  );
9805
9820
  }
9806
- const { createThreadWorktree: createThreadWorktree2 } = await import("./worktree-7WTVHFGF.js");
9821
+ const { createThreadWorktree: createThreadWorktree2 } = await import("./worktree-DAAF64UU.js");
9807
9822
  const slug = thread.worktreePath.split("/").pop();
9808
9823
  const dest = thread.worktreePath;
9809
9824
  await withRepoGitLock(thread.repoPath, async () => {
@@ -9913,7 +9928,7 @@ async function startOrchestration(opts) {
9913
9928
  sourceRef: "default",
9914
9929
  ...createOpts
9915
9930
  }).catch(async () => {
9916
- const { resolveDefaultBranch: resolveDefaultBranch2, resolveRepoRoot: resolveRepoRoot2 } = await import("./worktree-7WTVHFGF.js");
9931
+ const { resolveDefaultBranch: resolveDefaultBranch2, resolveRepoRoot: resolveRepoRoot2 } = await import("./worktree-DAAF64UU.js");
9917
9932
  const repo = await resolveRepoRoot2(repoPath);
9918
9933
  const def = await resolveDefaultBranch2(repo);
9919
9934
  return orch.createThread({
@@ -2943,6 +2943,59 @@ async function createExistingBranchWorktree(opts) {
2943
2943
  await ensureWorktreeSideboardIgnored(worktreePath);
2944
2944
  return { branchName, worktreePath };
2945
2945
  }
2946
+ async function switchWorktreeBranch(opts) {
2947
+ const branch = opts.branchName.trim().replace(/^origin\//, "");
2948
+ if (!branch) throw new Error("branch name required");
2949
+ const head = await git(["rev-parse", "--abbrev-ref", "HEAD"], opts.worktreePath, {
2950
+ reject: false
2951
+ });
2952
+ if (head.stdout.trim() === branch) return branch;
2953
+ const here = normalizeWorktreePath(opts.worktreePath);
2954
+ const trees = await listWorktrees(opts.repoPath);
2955
+ const taken = trees.find(
2956
+ (w) => w.branch === branch && normalizeWorktreePath(w.path) !== here
2957
+ );
2958
+ if (taken?.path) {
2959
+ throw new Error(`Branch ${branch} is already checked out at ${taken.path}`);
2960
+ }
2961
+ await withRepoGitLock(opts.repoPath, async () => {
2962
+ const local = await git(
2963
+ ["show-ref", "--verify", "--quiet", `refs/heads/${branch}`],
2964
+ opts.worktreePath,
2965
+ { reject: false }
2966
+ );
2967
+ if (local.exitCode === 0) {
2968
+ const sw = await git(["switch", branch], opts.worktreePath, {
2969
+ reject: false
2970
+ });
2971
+ if (sw.exitCode !== 0) {
2972
+ throw new Error(
2973
+ sw.stderr.trim() || sw.stdout.trim() || `Failed to switch to ${branch}`
2974
+ );
2975
+ }
2976
+ return;
2977
+ }
2978
+ const remote = `origin/${branch}`;
2979
+ const remoteOk = await git(["rev-parse", "--verify", "--quiet", remote], opts.repoPath, {
2980
+ reject: false
2981
+ });
2982
+ if (remoteOk.exitCode === 0) {
2983
+ const sw = await git(
2984
+ ["switch", "-c", branch, "--track", remote],
2985
+ opts.worktreePath,
2986
+ { reject: false }
2987
+ );
2988
+ if (sw.exitCode !== 0) {
2989
+ throw new Error(
2990
+ sw.stderr.trim() || sw.stdout.trim() || `Failed to switch to ${branch}`
2991
+ );
2992
+ }
2993
+ return;
2994
+ }
2995
+ throw new Error(`Unknown branch ${branch}`);
2996
+ });
2997
+ return branch;
2998
+ }
2946
2999
  async function removeWorktree(repoPath, worktreePath, opts) {
2947
3000
  await withRepoGitLock(repoPath, async () => {
2948
3001
  await git(["worktree", "remove", "--force", worktreePath], repoPath, {
@@ -3422,6 +3475,7 @@ export {
3422
3475
  fastForwardMainCheckoutIfSafe,
3423
3476
  createThreadWorktree,
3424
3477
  createExistingBranchWorktree,
3478
+ switchWorktreeBranch,
3425
3479
  removeWorktree,
3426
3480
  listWorktrees,
3427
3481
  countUnpushedVsOrigin,
@@ -6,7 +6,7 @@ import {
6
6
  resolveRepoRoot,
7
7
  takenSlugsFromThread,
8
8
  teamSlugFromName
9
- } from "./chunk-PLMMPA6A.js";
9
+ } from "./chunk-63YSFXLT.js";
10
10
  import {
11
11
  ATTACHMENTS_DIR,
12
12
  attachmentsGitignoreBody
@@ -2,7 +2,7 @@
2
2
 
3
3
  import {
4
4
  isOrchestratorThread
5
- } from "./chunk-IAS7Q2YF.js";
5
+ } from "./chunk-PJK24CN3.js";
6
6
  import {
7
7
  applyConnectedTeamToCli,
8
8
  brightsyMcpServerName,
@@ -20,7 +20,7 @@ import {
20
20
  mergeAgentGitAuthEnv,
21
21
  resolveAgentGitAuthEnv,
22
22
  resolveCodexGitWritableRoots
23
- } from "./chunk-WVNQML4W.js";
23
+ } from "./chunk-HCNCZPDL.js";
24
24
  import {
25
25
  enrichPathWithNpmGlobalBin,
26
26
  isConductorBundledCli,
@@ -2970,7 +2970,7 @@ var claudeAdapter = {
2970
2970
  );
2971
2971
  }
2972
2972
  const mode = permissionMode(thread);
2973
- const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-DMR5JB7T.js");
2973
+ const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-YA7U4M2N.js");
2974
2974
  const isOrchestrator = isOrchestratorThread2(thread);
2975
2975
  const injectedServers = await buildInjectedMcpServers({
2976
2976
  includeSideboard: true,
@@ -2906,6 +2906,59 @@ async function createExistingBranchWorktree(opts) {
2906
2906
  await ensureWorktreeSideboardIgnored(worktreePath);
2907
2907
  return { branchName, worktreePath };
2908
2908
  }
2909
+ async function switchWorktreeBranch(opts) {
2910
+ const branch = opts.branchName.trim().replace(/^origin\//, "");
2911
+ if (!branch) throw new Error("branch name required");
2912
+ const head = await git(["rev-parse", "--abbrev-ref", "HEAD"], opts.worktreePath, {
2913
+ reject: false
2914
+ });
2915
+ if (head.stdout.trim() === branch) return branch;
2916
+ const here = normalizeWorktreePath(opts.worktreePath);
2917
+ const trees = await listWorktrees(opts.repoPath);
2918
+ const taken = trees.find(
2919
+ (w) => w.branch === branch && normalizeWorktreePath(w.path) !== here
2920
+ );
2921
+ if (taken?.path) {
2922
+ throw new Error(`Branch ${branch} is already checked out at ${taken.path}`);
2923
+ }
2924
+ await withRepoGitLock(opts.repoPath, async () => {
2925
+ const local = await git(
2926
+ ["show-ref", "--verify", "--quiet", `refs/heads/${branch}`],
2927
+ opts.worktreePath,
2928
+ { reject: false }
2929
+ );
2930
+ if (local.exitCode === 0) {
2931
+ const sw = await git(["switch", branch], opts.worktreePath, {
2932
+ reject: false
2933
+ });
2934
+ if (sw.exitCode !== 0) {
2935
+ throw new Error(
2936
+ sw.stderr.trim() || sw.stdout.trim() || `Failed to switch to ${branch}`
2937
+ );
2938
+ }
2939
+ return;
2940
+ }
2941
+ const remote = `origin/${branch}`;
2942
+ const remoteOk = await git(["rev-parse", "--verify", "--quiet", remote], opts.repoPath, {
2943
+ reject: false
2944
+ });
2945
+ if (remoteOk.exitCode === 0) {
2946
+ const sw = await git(
2947
+ ["switch", "-c", branch, "--track", remote],
2948
+ opts.worktreePath,
2949
+ { reject: false }
2950
+ );
2951
+ if (sw.exitCode !== 0) {
2952
+ throw new Error(
2953
+ sw.stderr.trim() || sw.stdout.trim() || `Failed to switch to ${branch}`
2954
+ );
2955
+ }
2956
+ return;
2957
+ }
2958
+ throw new Error(`Unknown branch ${branch}`);
2959
+ });
2960
+ return branch;
2961
+ }
2909
2962
  async function removeWorktree(repoPath, worktreePath, opts) {
2910
2963
  await withRepoGitLock(repoPath, async () => {
2911
2964
  await git(["worktree", "remove", "--force", worktreePath], repoPath, {
@@ -3360,6 +3413,7 @@ export {
3360
3413
  fastForwardMainCheckoutIfSafe,
3361
3414
  createThreadWorktree,
3362
3415
  createExistingBranchWorktree,
3416
+ switchWorktreeBranch,
3363
3417
  removeWorktree,
3364
3418
  listWorktrees,
3365
3419
  countUnpushedVsOrigin,
@@ -8,7 +8,7 @@ import {
8
8
  resolveRepoRoot,
9
9
  takenSlugsFromThread,
10
10
  teamSlugFromName
11
- } from "./chunk-WVNQML4W.js";
11
+ } from "./chunk-HCNCZPDL.js";
12
12
  import {
13
13
  ATTACHMENTS_DIR,
14
14
  attachmentsGitignoreBody
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  isOrchestratorThread
3
- } from "./chunk-JUYD2YUC.js";
3
+ } from "./chunk-BYRZS2S2.js";
4
4
  import {
5
5
  codexUnattendedGitConfigArgs,
6
6
  mergeAgentGitAuthEnv,
7
7
  resolveAgentGitAuthEnv,
8
8
  resolveCodexGitWritableRoots
9
- } from "./chunk-PLMMPA6A.js";
9
+ } from "./chunk-63YSFXLT.js";
10
10
  import {
11
11
  applyConnectedTeamToCli,
12
12
  brightsyMcpServerName,
@@ -2561,7 +2561,7 @@ var claudeAdapter = {
2561
2561
  );
2562
2562
  }
2563
2563
  const mode = permissionMode(thread);
2564
- const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-3Q57XYG4.js");
2564
+ const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-4JCITHB6.js");
2565
2565
  const isOrchestrator = isOrchestratorThread2(thread);
2566
2566
  const injectedServers = await buildInjectedMcpServers({
2567
2567
  includeSideboard: true,
@@ -25,7 +25,7 @@ import {
25
25
  resolveQuotaFallbackAgent,
26
26
  stripBrightsyNdjsonNoise,
27
27
  toolDescription
28
- } from "./chunk-MLB5CFUP.js";
28
+ } from "./chunk-R4DWUBOL.js";
29
29
  import {
30
30
  SLACK_REPLY_FORMATTING,
31
31
  addWorkspace,
@@ -48,7 +48,7 @@ import {
48
48
  stageAbsolutePathsAsAttachments,
49
49
  stageBuffersAsAttachments,
50
50
  syncWorkspacesFromThreads
51
- } from "./chunk-JUYD2YUC.js";
51
+ } from "./chunk-BYRZS2S2.js";
52
52
  import {
53
53
  addPrStackLayer,
54
54
  allocateTeamName,
@@ -91,6 +91,7 @@ import {
91
91
  resolveGithubRepoSlug,
92
92
  resolvePrSelector,
93
93
  resolveRepoRoot,
94
+ switchWorktreeBranch,
94
95
  takenSlugsFromThread,
95
96
  threadDisplayLabel,
96
97
  ticketSlugForBranch,
@@ -98,7 +99,7 @@ import {
98
99
  worktreeDisplayLabelForGroup,
99
100
  worktreeNameFromPath,
100
101
  worktreeSlugForTicket
101
- } from "./chunk-PLMMPA6A.js";
102
+ } from "./chunk-63YSFXLT.js";
102
103
  import {
103
104
  ATTACHMENTS_DIR,
104
105
  DETACHED_JOBS_DIR,
@@ -444,9 +445,9 @@ async function spawnAgentTurn(thread, input, onEvent) {
444
445
  `Cannot spawn ${thread.agent}: thread ${thread.id} has no worktreePath`
445
446
  );
446
447
  }
447
- const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-3Q57XYG4.js");
448
+ const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-4JCITHB6.js");
448
449
  if (isGlobalThread2(thread)) {
449
- const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-YSIC6YFC.js");
450
+ const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-Y6S6USNS.js");
450
451
  ensureGlobalCoordinatorCwd2(
451
452
  isOrchestratorThread(thread) ? { orchestratorThreadId: thread.id } : void 0
452
453
  );
@@ -4336,7 +4337,7 @@ async function createThread(input, _onSetupLine) {
4336
4337
  return readThread(thread.id) ?? thread;
4337
4338
  }
4338
4339
  async function listLinearIssues(agent, repoPath) {
4339
- const { getAdapter: getAdapter2 } = await import("./agents-6HDC7UA7.js");
4340
+ const { getAdapter: getAdapter2 } = await import("./agents-FSUI5MET.js");
4340
4341
  await requireAgent(agent, { requireLinear: true });
4341
4342
  const adapter = getAdapter2(agent);
4342
4343
  if (!adapter.listLinearIssues) {
@@ -4809,7 +4810,7 @@ async function adoptThread(input) {
4809
4810
  messages: input.messages ?? []
4810
4811
  });
4811
4812
  writeThread(thread);
4812
- const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-PS3IO4VJ.js");
4813
+ const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-4KHEUPEX.js");
4813
4814
  await ensureWorkspace2(repoPath);
4814
4815
  const { ensureWorktreeSideboardIgnored: ensureWorktreeSideboardIgnored2 } = await import("./worktree-exclude-RXZPTCNH.js");
4815
4816
  await ensureWorktreeSideboardIgnored2(input.worktreePath);
@@ -7538,7 +7539,7 @@ function formatScheduledPrompt(name, prompt) {
7538
7539
  ${prompt}`;
7539
7540
  }
7540
7541
  async function defaultDeps() {
7541
- const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-PJCQSVLY.js");
7542
+ const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-LWADJQTN.js");
7542
7543
  const orch = getOrchestrator2();
7543
7544
  return {
7544
7545
  findThread: (id) => findThreadByRef(id),
@@ -10096,6 +10097,20 @@ var Orchestrator = class {
10096
10097
  if (!next) throw new Error("Title cannot be empty");
10097
10098
  return updateThread(thread.id, { title: next, userSetTitle: true });
10098
10099
  }
10100
+ async switchThreadBranch(threadRef, branchName) {
10101
+ const thread = this.requireThread(threadRef);
10102
+ this.assertNotGlobal(thread, "Switch branch");
10103
+ if (thread.status === "running") {
10104
+ throw new Error("Stop the agent before switching branches");
10105
+ }
10106
+ await switchWorktreeBranch({
10107
+ repoPath: thread.repoPath,
10108
+ worktreePath: thread.worktreePath,
10109
+ branchName
10110
+ });
10111
+ await syncThreadBranchFromGit(thread.id);
10112
+ return this.requireThread(thread.id);
10113
+ }
10099
10114
  setAttachments(threadRef, attachments) {
10100
10115
  return updateThread(this.requireThread(threadRef).id, { attachments });
10101
10116
  }
@@ -10164,7 +10179,7 @@ var Orchestrator = class {
10164
10179
  this.enforceHistoryRetention();
10165
10180
  if (thread.repoPath && !isGlobalRepoPath(thread.repoPath)) {
10166
10181
  try {
10167
- const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-PS3IO4VJ.js");
10182
+ const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-4KHEUPEX.js");
10168
10183
  await ensureWorkspace2(thread.repoPath);
10169
10184
  } catch {
10170
10185
  }
@@ -10218,7 +10233,7 @@ var Orchestrator = class {
10218
10233
  `Cowboy checkout missing: ${thread.worktreePath}. Re-add the project folder, then restore.`
10219
10234
  );
10220
10235
  }
10221
- const { createThreadWorktree: createThreadWorktree2 } = await import("./worktree-DLSVHUF6.js");
10236
+ const { createThreadWorktree: createThreadWorktree2 } = await import("./worktree-S3FOMEQ2.js");
10222
10237
  const slug = thread.worktreePath.split("/").pop();
10223
10238
  const dest = thread.worktreePath;
10224
10239
  await withRepoGitLock(thread.repoPath, async () => {
@@ -10328,7 +10343,7 @@ async function startOrchestration(opts) {
10328
10343
  sourceRef: "default",
10329
10344
  ...createOpts
10330
10345
  }).catch(async () => {
10331
- const { resolveDefaultBranch: resolveDefaultBranch2, resolveRepoRoot: resolveRepoRoot2 } = await import("./worktree-DLSVHUF6.js");
10346
+ const { resolveDefaultBranch: resolveDefaultBranch2, resolveRepoRoot: resolveRepoRoot2 } = await import("./worktree-S3FOMEQ2.js");
10332
10347
  const repo = await resolveRepoRoot2(repoPath);
10333
10348
  const def = await resolveDefaultBranch2(repo);
10334
10349
  return orch.createThread({
@@ -9,8 +9,8 @@ import {
9
9
  enrichWorkspacesWithGithub,
10
10
  ensureGlobalCoordinatorCwd,
11
11
  formatWorkspaceInventory
12
- } from "./chunk-IAS7Q2YF.js";
13
- import "./chunk-WVNQML4W.js";
12
+ } from "./chunk-PJK24CN3.js";
13
+ import "./chunk-HCNCZPDL.js";
14
14
  import "./chunk-D6JWYJ4P.js";
15
15
  import "./chunk-RJC2MKXN.js";
16
16
  import "./chunk-H547WSSZ.js";
@@ -7,8 +7,8 @@ import {
7
7
  enrichWorkspacesWithGithub,
8
8
  ensureGlobalCoordinatorCwd,
9
9
  formatWorkspaceInventory
10
- } from "./chunk-JUYD2YUC.js";
11
- import "./chunk-PLMMPA6A.js";
10
+ } from "./chunk-BYRZS2S2.js";
11
+ import "./chunk-63YSFXLT.js";
12
12
  import "./chunk-6K64FJDD.js";
13
13
  import "./chunk-2P4XKWV2.js";
14
14
  import "./chunk-KJM3E3NF.js";
@@ -15,8 +15,8 @@ import {
15
15
  orchestratorSessionPoisonedByBuiltins,
16
16
  slackCoordinatorSourceRef,
17
17
  takenTeamSlugsForOrchestration
18
- } from "./chunk-JUYD2YUC.js";
19
- import "./chunk-PLMMPA6A.js";
18
+ } from "./chunk-BYRZS2S2.js";
19
+ import "./chunk-63YSFXLT.js";
20
20
  import "./chunk-6K64FJDD.js";
21
21
  import "./chunk-2P4XKWV2.js";
22
22
  import "./chunk-KJM3E3NF.js";
@@ -17,8 +17,8 @@ import {
17
17
  orchestratorSessionPoisonedByBuiltins,
18
18
  slackCoordinatorSourceRef,
19
19
  takenTeamSlugsForOrchestration
20
- } from "./chunk-IAS7Q2YF.js";
21
- import "./chunk-WVNQML4W.js";
20
+ } from "./chunk-PJK24CN3.js";
21
+ import "./chunk-HCNCZPDL.js";
22
22
  import "./chunk-D6JWYJ4P.js";
23
23
  import "./chunk-RJC2MKXN.js";
24
24
  import "./chunk-H547WSSZ.js";
package/dist/index.cjs CHANGED
@@ -8702,6 +8702,7 @@ __export(worktree_exports, {
8702
8702
  resolveWorktreeStartPoint: () => resolveWorktreeStartPoint,
8703
8703
  slugify: () => slugify,
8704
8704
  suggestSlug: () => suggestSlug,
8705
+ switchWorktreeBranch: () => switchWorktreeBranch,
8705
8706
  threadDisplayLabel: () => threadDisplayLabel,
8706
8707
  ticketSlugForBranch: () => ticketSlugForBranch,
8707
8708
  worktreeDisplayLabel: () => worktreeDisplayLabel,
@@ -9728,6 +9729,59 @@ async function createExistingBranchWorktree(opts) {
9728
9729
  await ensureWorktreeSideboardIgnored(worktreePath);
9729
9730
  return { branchName, worktreePath };
9730
9731
  }
9732
+ async function switchWorktreeBranch(opts) {
9733
+ const branch = opts.branchName.trim().replace(/^origin\//, "");
9734
+ if (!branch) throw new Error("branch name required");
9735
+ const head = await git(["rev-parse", "--abbrev-ref", "HEAD"], opts.worktreePath, {
9736
+ reject: false
9737
+ });
9738
+ if (head.stdout.trim() === branch) return branch;
9739
+ const here = normalizeWorktreePath(opts.worktreePath);
9740
+ const trees = await listWorktrees(opts.repoPath);
9741
+ const taken = trees.find(
9742
+ (w) => w.branch === branch && normalizeWorktreePath(w.path) !== here
9743
+ );
9744
+ if (taken?.path) {
9745
+ throw new Error(`Branch ${branch} is already checked out at ${taken.path}`);
9746
+ }
9747
+ await withRepoGitLock(opts.repoPath, async () => {
9748
+ const local = await git(
9749
+ ["show-ref", "--verify", "--quiet", `refs/heads/${branch}`],
9750
+ opts.worktreePath,
9751
+ { reject: false }
9752
+ );
9753
+ if (local.exitCode === 0) {
9754
+ const sw = await git(["switch", branch], opts.worktreePath, {
9755
+ reject: false
9756
+ });
9757
+ if (sw.exitCode !== 0) {
9758
+ throw new Error(
9759
+ sw.stderr.trim() || sw.stdout.trim() || `Failed to switch to ${branch}`
9760
+ );
9761
+ }
9762
+ return;
9763
+ }
9764
+ const remote = `origin/${branch}`;
9765
+ const remoteOk = await git(["rev-parse", "--verify", "--quiet", remote], opts.repoPath, {
9766
+ reject: false
9767
+ });
9768
+ if (remoteOk.exitCode === 0) {
9769
+ const sw = await git(
9770
+ ["switch", "-c", branch, "--track", remote],
9771
+ opts.worktreePath,
9772
+ { reject: false }
9773
+ );
9774
+ if (sw.exitCode !== 0) {
9775
+ throw new Error(
9776
+ sw.stderr.trim() || sw.stdout.trim() || `Failed to switch to ${branch}`
9777
+ );
9778
+ }
9779
+ return;
9780
+ }
9781
+ throw new Error(`Unknown branch ${branch}`);
9782
+ });
9783
+ return branch;
9784
+ }
9731
9785
  async function removeWorktree(repoPath, worktreePath, opts) {
9732
9786
  await withRepoGitLock(repoPath, async () => {
9733
9787
  await git(["worktree", "remove", "--force", worktreePath], repoPath, {
@@ -27019,6 +27073,20 @@ var init_orchestrator = __esm({
27019
27073
  if (!next) throw new Error("Title cannot be empty");
27020
27074
  return updateThread(thread.id, { title: next, userSetTitle: true });
27021
27075
  }
27076
+ async switchThreadBranch(threadRef, branchName) {
27077
+ const thread = this.requireThread(threadRef);
27078
+ this.assertNotGlobal(thread, "Switch branch");
27079
+ if (thread.status === "running") {
27080
+ throw new Error("Stop the agent before switching branches");
27081
+ }
27082
+ await switchWorktreeBranch({
27083
+ repoPath: thread.repoPath,
27084
+ worktreePath: thread.worktreePath,
27085
+ branchName
27086
+ });
27087
+ await syncThreadBranchFromGit(thread.id);
27088
+ return this.requireThread(thread.id);
27089
+ }
27022
27090
  setAttachments(threadRef, attachments) {
27023
27091
  return updateThread(this.requireThread(threadRef).id, { attachments });
27024
27092
  }
@@ -28233,6 +28301,7 @@ __export(index_exports, {
28233
28301
  sumUsageList: () => sumUsageList,
28234
28302
  summarizeConversation: () => summarizeConversation,
28235
28303
  switchBrightsyAccount: () => switchBrightsyAccount,
28304
+ switchWorktreeBranch: () => switchWorktreeBranch,
28236
28305
  syncWorkspacesFromThreads: () => syncWorkspacesFromThreads,
28237
28306
  takePendingTurnAttachments: () => takePendingTurnAttachments,
28238
28307
  takenTeamSlugsForChatTab: () => takenTeamSlugsForChatTab,
@@ -38082,6 +38151,7 @@ async function startSlackRelayServer(opts) {
38082
38151
  sumUsageList,
38083
38152
  summarizeConversation,
38084
38153
  switchBrightsyAccount,
38154
+ switchWorktreeBranch,
38085
38155
  syncWorkspacesFromThreads,
38086
38156
  takePendingTurnAttachments,
38087
38157
  takenTeamSlugsForChatTab,
package/dist/index.d.cts CHANGED
@@ -2271,6 +2271,15 @@ declare function createExistingBranchWorktree(opts: {
2271
2271
  branchName: string;
2272
2272
  slug: string;
2273
2273
  }): Promise<CreateWorktreeResult>;
2274
+ /**
2275
+ * Check out an existing local (or origin-tracking) branch in this worktree.
2276
+ * Does not create a new worktree. Fails if another worktree already has it.
2277
+ */
2278
+ declare function switchWorktreeBranch(opts: {
2279
+ repoPath: string;
2280
+ worktreePath: string;
2281
+ branchName: string;
2282
+ }): Promise<string>;
2274
2283
  declare function removeWorktree(repoPath: string, worktreePath: string, opts?: {
2275
2284
  deleteBranch?: string;
2276
2285
  }): Promise<void>;
@@ -5553,6 +5562,7 @@ declare class Orchestrator {
5553
5562
  title?: string;
5554
5563
  }): Promise<Thread>;
5555
5564
  renameThread(threadRef: string, title: string): Thread;
5565
+ switchThreadBranch(threadRef: string, branchName: string): Promise<Thread>;
5556
5566
  setAttachments(threadRef: string, attachments: Thread['attachments']): Thread;
5557
5567
  /**
5558
5568
  * Stage OS / worktree files into composer attachments (copies external files
@@ -6455,6 +6465,8 @@ interface IpcApi {
6455
6465
  listBranches(repoPath: string, opts?: {
6456
6466
  unmergedOnly?: boolean;
6457
6467
  }): Promise<BranchInfo[]>;
6468
+ /** Check out `branchName` in this thread's worktree. */
6469
+ switchThreadBranch(threadRef: string, branchName: string): Promise<Thread>;
6458
6470
  listPrs(repoPath: string): Promise<PrInfo[]>;
6459
6471
  /** @deprecated Prefer listIssues — agent Linear MCP. */
6460
6472
  listLinearIssues(agent: AgentKind, repoPath: string): Promise<IssueInfo[]>;
@@ -7548,4 +7560,4 @@ declare function pollSlackOutboundWatches(opts?: {
7548
7560
  now?: number;
7549
7561
  }): Promise<void>;
7550
7562
 
7551
- export { ABLETIME_MCP_PATH, ABLETIME_MCP_PM_PATH, ABLETIME_OAUTH_CALLBACK_PATH, ABLETIME_OAUTH_CANCELLED, ABLETIME_OAUTH_LOCAL_CALLBACK, ABLETIME_OAUTH_PORT, ABLETIME_OAUTH_REDIRECT, ABLETIME_OAUTH_RESOURCE, ABLETIME_OAUTH_TOKEN_PREFIX, ABLETIME_ORG_KEY_PREFIX, ABLETIME_PAT_PREFIX, ABLETIME_PM_TOOL_NAMES, AGENT_DONE_CUSTOM_SOUND_EXTENSIONS, AGENT_DONE_CUSTOM_SOUND_MAX_BYTES, AGENT_DONE_SOUNDS, AGENT_GIT_ACTIONS, AGENT_RUNNER_MAX_OLD_SPACE_MB, ATTACHMENTS_DIR, type AbleTimeAssignedIssuesResult, type AbleTimeComment, type AbleTimeCredentialKind, type AbleTimeMcpToolName, AbleTimeOAuthCancelledError, type AbleTimeOrientation, type AbleTimePmToolName, type AbleTimeProject, type AbleTimeTask, type AbleTimeTaskRelationInput, type AbleTimeViewer, type AccountProfile, type ActiveRun, type AddBoardPinInput, type AddStackLayerInput, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentDoneCustomSoundPayload, type AgentDoneSound, type AgentEvent, type AgentGitAction, type AgentKind, type AgentModelCatalog, type AgentModelInfo, type AgentSetupActionResult, type AgentSetupInfo, type AgentSetupKind, type AgentStatus, type AgentTurnInput, type AnthropicCacheControl, type AppSettings, type ApplyIntoMainResult, type AttachCommand, type Autonomy, BAKED_ABLETIME_OAUTH_CLIENT_ID, BAKED_SLACK_RELAY_URL, BRIGHTSY_MCP_ALLOWED_TOOLS, BRIGHTSY_OAUTH_CLIENT_ID, BRIGHTSY_OAUTH_REDIRECT, BRIGHTSY_SUMMARIZE_CONTEXT_TOOL, BUNDLED_LONG_RUNNING_PATH, BUNDLED_SKILL_PREFIX, type BoardPin, type BranchInfo, type BrightsyAccount, type BrightsyChatTarget, type BrightsyChatTargets, type BrightsyCloudConnectAgent, type BrightsyHarnessSettings, type BrightsySession, BrightsySideboardApi, type BrightsyTeamTargets, CHARS_PER_CONTEXT_TOKEN, CHAT_TEXT_SCALES, CHAT_TEXT_SCALE_DEFAULT, CLAUDE_MODEL_CATALOG, CLAUDE_SUMMARY_TIMEOUT_MS, CLI_DIR, CLOUD_COORDINATOR_BUSY_REPLY, CLOUD_COORDINATOR_CANCELED_REPLY, CLOUD_COORDINATOR_INPUT_REQUIRED_REPLY, CLOUD_COORDINATOR_STOPPED_REPLY, CLOUD_COORDINATOR_TIMEOUT_REPLY, CLOUD_ORCHESTRATOR_GOAL, CONTEXT_COMPACT_CHARS, CONTEXT_KEEP_RECENT_CHARS, CONTEXT_KEEP_RECENT_MESSAGES, CONTEXT_MIN_MESSAGES, CONTEXT_REVIEW_PATH, CONVENTION_SETUP_RELPATHS, COORDINATOR_TOOL_PLAYBOOK, CURSOR_SDK_INSTALL_HINT, type CaffeinateHoldState, type ChatTextScale, type ClaudeExtraUsage, type ClaudeHarnessSettings, type ClaudePlanUsage, type ClaudeUsageWindow, type ClaudeUsageWindowId, type CleanupOrphansResult, type CliAgentKind, type CliExecutableSettings, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, type CodeLineRange, type CodeRefInput, type CompactResult, type CompactThresholds, type ComposerFileBuffer, type ConductorSettings, type ConductorWorkspace, type ConnectedBrightsyTeamInfo, type ConventionSetupFile, type CowboyThreadFields, type CreateChatTabInput, type CreateGlobalChatOpts, type CreateScheduledTaskInput, type CreateStackInput, type CreateThreadInput, type CreateWorktreeResult, type CursorAgentUsageSnapshot, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorUsageCost, type CursorWorktreesConfig, DEFAULT_ABLETIME_HOST, DEFAULT_RUN_LOG_TAIL_CHARS, DEFAULT_WORKTREE_SORT, DETACHED_JOBS_DIR, type DefaultsAppSettings, type DefaultsSettingsPatch, type DevAccessRun, type DevPreview, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, type EnsuredReviewGuidelines, type ExpandResult, FAMOUS_SOCCER_TEAMS, FOLLOW_UP_BEHAVIORS, type FastForwardMainResult, type FollowUpBehavior, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GITHUB_GIT_AUTH_MODES, GITHUB_PR_BODY_MAX_CHARS, GITHUB_PR_BODY_SAFE_CHARS, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GhStackStatus, type GitHubIssue, type GitHubIssueComment, type GitHubIssueRelationInput, type GitHubStatus, type GitWorktreeStatus, type GithubGitAuthMode, HARNESS_ENV_KEYS, HISTORY_DISCARDED_TEXT, HISTORY_MAX_COUNT_DEFAULT, HISTORY_MAX_COUNT_MAX, HISTORY_MAX_COUNT_MIN, HISTORY_MAX_DAYS_DEFAULT, HISTORY_MAX_DAYS_MAX, HOME_BOARD_CACHE_TTL_MS, type HarnessId, type HistoryCleanupResult, type HistoryRetentionPlan, type HomeBoardLoaded, type HomeBoardRemoteData, IMPLIED_TICKET_RESOLVE_PROMPT, ISSUE_SOURCE_LABELS, type ImportedAgentDoneSound, type InitStackFromThreadInput, type IntegrationsSettings, type IpcApi, type IssueActivityComment, type IssueAssigneeFilter, type IssueCycleInfo, type IssueInfo, type IssueSource, LEGACY_ATTACHMENTS_DIR, LEGACY_DETACHED_JOBS_DIR, LEGACY_PLAN_FILE_REL, LEGACY_REVIEW_REQUEST_PATH, LIGHT_RECONCILE_THROTTLE_MS, LINEAR_OAUTH_CANCELLED, LINEAR_OAUTH_PORT, LINEAR_OAUTH_REDIRECT, LINEAR_OAUTH_SCOPES, LIVE_TURN_SPAWN_GRACE_MS, LONG_RUNNING_SKILL_COMMAND, type LandPreview, type LandResult, type LinearAssignedIssuesResult, type LinearAssigneeFilter, type LinearComment, type LinearCycle, type LinearIssue, type LinearIssueAttachment, type LinearIssueComment, type LinearIssueRef, type LinearIssueRelation, type LinearIssueRelationInput, type LinearNamedRef, LinearOAuthCancelledError, type LinearProjectRef, type LinearTeam, type LinearTeamsResult, type LinearWorkflowState, type ListIssuesOptions, type ListIssuesResult, type ListPrsOptions, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, type NotifyOrchestratorReason, type NotifyOrchestratorResult, OPTIONAL_SERVICES, OPTIONAL_SERVICE_IDS, ORCHESTRATOR_AGENT_KINDS, type OpenPrStackLayersInput, type OpenStackLayerInput, type OpenStackLayerResult, type OptionalServiceCliStatus, type OptionalServiceId, type OptionalServiceSpec, type OrchestrationQuotaOnLimit, Orchestrator, type OrchestratorAgentKind, type OrchestratorDefaultsSettings, type OrchestratorEvent, type OrchestratorRuntime, type OrphanWorktree, type OutboundTurnCopy, type OutboundTurnSnapshot, PASTE_ATTACH_MIN_CHARS, PASTE_ATTACH_MIN_LINES, PLAN_FILE_NAME, PLAN_FILE_REL, PLAN_MODE_INSTRUCTION, PLAN_MODE_OFF_INSTRUCTION, PLAN_QUESTION_ANSWERS_PREFIX, PORT_RANGE_SIZE, PRESENT_PLAN_REQUIRES_PLAN_MODE, PRESENT_PLAN_TOOL_DESCRIPTION, PROFILE_NOTES_MAX, PR_DETAILS_JSON_FIELDS, type PathRefInput, type PendingPlanQuestions, type PlanQuestion, type PlanQuestionAnswer, type PlanQuestionOption, type PlanToolPartLike, type PortReservation, type PrActor, type PrCheckRun, type PrCommentInfo, type PrCommitInfo, type PrDetails, type PrInfo, type PrMeta, type PrReviewInfo, type PrStack, type PrStackLayer, type PresentedPlan, type ProjectProfileSettings, type PublicAppSettings, type PublicIntegrationsSettings, REPO_REVIEW_NAME, REPO_REVIEW_PATH, REVIEW_LABEL_MAX, REVIEW_REQUEST_NAME, REVIEW_REQUEST_PATH, REVIEW_REQUEST_PREFILL, REVIEW_REQUEST_TEMPLATE, REVIEW_SKILL_NAME, REVIEW_SKILL_PATH, RUN_PORTS_REL, RUN_SCRIPT_DESKTOP_ADOPT_MS, type RepoSettings, type RepoSetupInfo, type RequestReviewResult, type ReservePortRangeOpts, type ResolvedAccountProfile, type ResolvedReviewGuidelines, type ResolvedThreadDefaults, type ResolvedViewerProfile, type ReviewGuidelinesSource, type RunLogSnapshot, type RunMode, type RunScript, type RunScriptPreviewInput, type RunScriptRequest, SEED_FULL_TOOL_MESSAGES, SEED_MAX_CHARS, SESSION_RESET_OCCUPANCY_TOKENS, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, SIDEBOARD_MCP_PROFILE_ENV, SLACK_LISTEN_INPUT_REQUIRED_REPLY, SLACK_LISTEN_STOPPED_REPLY, SLACK_LISTEN_TIMEOUT_REPLY, SLACK_OAUTH_CANCELLED, SLACK_OAUTH_REDIRECT, SLACK_PROGRESS_DELAY_MS, SLACK_PROGRESS_EDIT_MS, SLACK_REPLY_FORMATTING, SLACK_SEEN_REACTION, STDERR_EVENT_MAX_CHARS, STDOUT_EVENT_MAX_CHARS, type ScheduleCreatedBy, type ScheduleWhen, type ScheduledTask, type ScriptHandle, type SessionSeedOptions, type SetupLogSnapshot, type SetupRunResult, type SidebarGitAction, type SideboardMcpProfile, type SkillInfo, type SlackInboundMessage, type SlackListenOptions, type SlackListenStatus, SlackOAuthCancelledError, type SlackOutboundReply, type SlackOutboundWatch, type SlackRelayClientMessage, type SlackRelayClientOptions, SlackRelayHub, type SlackRelayServerHandle, type SlackRelayServerMessage, type SlackRelayServerOptions, type SlackWorkspaceInfo, type SourceType, type SpawnTurnHandle, type SummarizeResult, THINKING_EFFORTS, THINKING_PART_MAX_CHARS, type TaskState, type TeamName, type ThinkingEffort, type Thread, type ThreadAttachment, type ThreadMessage, type ThreadOptionsPatch, type ThreadStatus, type TokenUsage, type ToolPartLike, type TranscriptToolDetail, type TurnCommand, USAGE_ON_LIMIT_VALUES, type UpdateScheduledTaskPatch, type UsageOnLimit, type UsageScope, type ViewerContextWriteResult, type ViewerProfile, WORKTREE_ABLETIME_MCP_TOOLS, WORKTREE_GITHUB_MCP_TOOLS, WORKTREE_LINEAR_MCP_TOOLS, WORKTREE_MCP_TOOLS, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, type WorktreeDirtyStat, type WorktreeListBadge, type WorktreeSortMode, type WorktreeStatKind, ableTimeCredentialKind, ableTimeDependencyTarget, ableTimeOAuthAuthorizeUrl, ableTimeOAuthBouncePage, ableTimeOAuthClientId, ableTimeOAuthLocalBounceUrl, ableTimeOAuthRedirectUri, ableTimeOAuthResource, ableTimeUsesRest, abletimeMcpRequest, abletimeMcpUrl, abletimeToolUsesPm, ackSlackInboundSeen, activeRunPreview, addBoardPin, addPrStackLayer, addStackLayerFromThread, addWorkspace, adoptThread, agentDoneCustomSoundMime, agentDoneSound, agentDoneSoundsDir, agentGitPrompt, alignQueueAttachments, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, annotateDevAccessRuns, appDataDir, appSettingsPath, appendCompactedMessages, appendIndexedGitConfig, appendMessage, appendQueuedItem, applyAgentEvent, applyAgentRunnerHeapEnv, applyAppEnvironment, applyCompaction, applyForwardOccupancy, applyGithubGitAuthEnv, applyPromptCacheTtlEnv, applySystemCaEnv, applyThreadIntoMain, applyTurnUsage, armSchedules, assertAbleTimeCredential, assertAbleTimeMcpCredential, assertOrchestratorCapableAgent, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, attachmentsGitignoreBody, autoArchiveOnMergeEnabled, autoCleanupHistoryEnabled, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAccessTokenNeedsRefresh, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyInjectWorktreeMcpEnabled, brightsyMcpAllowedTools, brightsyMcpServerName, buildBrightsySessionSeed, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildCodeRefAttachment, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildLinearIssueFilter, buildPastedTextAttachment, buildPathRefAttachment, buildReviewRequestAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateHoldPath, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, caffeinateWhileSchedulesEnabled, caffeinateWhileSlackListenEnabled, callAbleTimeTool, canonicalizeRepoPath, captureLoginEnv, captureTurnBaseline, chatTextScale, checkoutPrStackLayer, childEnvWithAppSettings, claimDesktopHost, clampGithubPrBody, clampHistoryMaxCount, clampHistoryMaxDays, classifyRunScriptPreview, classifyWorktreeColumn, classifyWorktreeListBadges, claudeAdapter, claudeChromeEnabled, claudeUsageOverLimitWindows, claudeUserSettingsPath, cleanupArchivedHistory, cleanupOrphanWorktrees, clearAgentDoneCustomSoundFile, clearBoardPins, clearHomeBoardCache, clipAgentEventForPaint, clipThinkingForStore, cloneRepoIntoSideboard, codeRefRangeLabel, codexAdapter, codexSandboxWritableRootsArgs, codexUnattendedGitConfigArgs, coerceOrchestratorAgent, collectTakenTeamSlugs, commandLooksLikeElectron, commentAbleTimeTask, commentGitHubIssue, commentLinearIssue, commitAll, compactArchiveProse, compactPartsForSummaryMessage, compactSummaryPart, computeNextRunAt, conductorBundledBinDir, conductorDbPath, confirmClaudeUsageOverLimitEnabled, confirmLand, connectBrightsyTeam, connectOptionalService, connectSlackToken, connectedOptionalServices, connectedPrSelectors, consumeComposerAttachments, contextTokens, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, countUnpushedVsOrigin, cowboyModeEnabled, createAbleTimePkce, createAbleTimeTask, createChatTab, createEmptyThread, createExistingBranchWorktree, createGitHubIssue, createGlobalChat, createLinearIssue, createLinearPkce, createOrUpdatePr, createPrStack, createSchedule, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, defaultScheduleName, deleteBranchOnPurgeEnabled, deleteSchedule, deleteThreadRecord, deriveTaskState, desktopHostPidPath, detectAgents, detectGhStack, detectLocalMergeConflicts, detectOptionalServiceClis, disconnectAbleTimeConnection, disconnectBrightsyTeam, disconnectLinear, disconnectLinearConnection, disconnectOptionalService, disconnectSlackWorkspace, discoverSkills, dropCachedPrefixOnResume, emptyPublicIntegrations, emptyRunLog, emptySetupLog, encodeBrightsyTarget, endedOnAskUser, enrichPathWithNpmGlobalBin, enrichWorkspacesWithGithub, ensureAbleTimeAccessToken, ensureAbleTimeTask, ensureAgentPath, ensureBrightsyLocalConfigFresh, ensureBrightsyOAuthClientId, ensureCloudCoordinator, ensureConnectedBrightsyTeamTokens, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureReviewGuidelinesFile, ensureReviewRequestFile, ensureReviewSkillFile, ensureSlackCoordinator, ensureSlackDeviceIdentity, ensureWorkspace, estimateMessageChars, estimateOccupancyTokens, estimateThreadChars, examplePrefixedBranch, expandComposerPrompt, extractBrightsyContextSummary, extractGhErrorDetail, extractPendingPlanQuestions, extractPresentedPlan, extractiveSummary, fastForwardMainCheckoutIfSafe, fetchOriginForWorktree, fetchPrHead, finalizeParts, findAgentDoneCustomSoundPath, findConventionSetup, findInvalidCacheControlTtlOrder, findLastBrightsyContextSummary, findLiveThreadForCreate, findLiveThreadForCreateSource, findOrphanWorktrees, findProjectProfileKey, findSlackCoordinator, findThreadByRef, findThreadForStackLayer, fireSchedule, flattenTurnInput, flipLinearRelationType, foldLegacyRolesIntoNotes, followUpBehavior, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAccountProfilePlaybookLine, formatArtifactDirective, formatAskUserNotifyMessage, formatBrightsyFetchError, formatClaudeExtraUsageDetail, formatClaudeUsageCompact, formatClaudeUsageFetchedAt, formatClaudeUsageOverLimitConfirm, formatClaudeUsageOverLimitWait, formatClaudeUsageReset, formatClaudeUsageResetClock, formatClaudeUsageTooltip, formatCloudTurnReply, formatDetachedJobInvoke, formatDevAccessHint, formatFetchError, formatGhLandError, formatGitAuthModeDirective, formatInjectedNoticesForTurn, formatIpcInvokeError, formatIssueToolsDirective, formatIssueToolsReminder, formatLinearDirective, formatLinearReminder, formatLongRunningDirective, formatLongRunningReminder, formatMergePrError, formatMessagesAsTranscript, formatNotifyOrchestratorPrompt, formatOptionalServicesDirective, formatOptionalServicesReminder, formatPlanQuestionAnswers, formatPlanQuestionsForChat, formatPrGateDirective, formatProcessGuideDirective, formatProjectProfilePlaybookLines, formatRateLimitResetHint, formatRenameBranchDirective, formatScheduleWhen, formatScheduledPrompt, formatSlackExternalReplyPrompt, formatSlackInboundPrompt, formatSlackRepliesForTurn, formatSlackReplyContinuePrompt, formatSlackSignedReply, formatSlackTurnReply, formatSlackWorkingText, formatTranscriptMarkdown, formatUiReminder, formatViewerContextDirective, formatViewerContextReminder, formatWorkspaceInventory, formatWorkspaceProfileSuffix, formatWorktreeDirective, formatWorktreeReminder, forwardContextUsage, forwardOccupancyTokens, fromInclusiveInputUsage, getAbleTimeAccessToken, getAbleTimeHost, getAbleTimeOrientation, getAbleTimeTask, getAdapter, getAgentSetupInfo, getBrightsySession, getCaffeinateHold, getClaudePlanUsage, getDefaultAgent, getDefaultEffort, getDefaultFast, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubIssue, getGitHubStatus, getGithubGitAuthMode, getGithubPat, getHomeBoardInputs, getIssueSource, getLinearApiKey, getLinearAuthToken, getLinearIssue, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrForHeadBranch, getPrMeta, getPrStack, getRepoSetupInfo, getRunMode, getRunScript, getSchedule, getSlackWorkspace, getWorktreeDirtyStat, gh, ghHeadRef, ghPrCreateAssigneeArgs, ghRepoSelectArgs, git, gitBranchPrefixSetting, githubAgentGitEnv, githubHttpsInsteadOfEntries, githubRelationEditFlag, globalAgentCwd, groupHomeBoardWorktrees, handleSlackInbound, harnessEnvKey, hasBakedAbleTimeOAuth, hasBakedLinearOAuth, hasBakedSlackOAuth, hasConductorHook, hasConventionSetup, hasCursorWorktreeSetup, hasEnabledSchedules, hasRepoHook, hasWorkspaceHook, hasWorkspaceSettingsToml, healOrchestrationSoccerTitles, historyMaxCount, historyMaxDays, hottestClaudeWindow, httpFetch, importAgentDoneCustomSound, importConductorWorkspace, importConductorWorkspaceAsync, initPrStack, initStackFromThread, initializeGitRepository, inspectGitWorktree, installAgent, installNpmGlobalPackage, installOptionalServiceCli, interruptSlackCoordinatorForInbound, invalidateThreadListCache, invalidateThreadRecord, isAbleTimeConnected, isAbleTimeOAuthCancelled, isAbleTimeRejectedCredential, isAdoptableRunScriptRequest, isAgentDoneSound, isAskUserToolName, isBrightsyConnected, isBrightsyNdjsonLine, isChatTextScale, isCloudCoordinatorThread, isCompactToolName, isConductorBundledCli, isContextCompactDone, isContextCompactInProgress, isCowboyThread, isCursorApiKeyConfigured, isCursorAutoModel, isCursorSdkInstalled, isDefaultishSourceRef, isDesktopHostAlive, isDirty, isGhPrBodyTooLongError, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isHistoryRetentionStub, isHomeBoardThread, isImageFilePath, isInPrStack, isInboundForThisDesktop, isIncompleteTaskState, isInjectedNoticeText, isInjectedOrchMcpName, isInternalAgentStatusText, isIssueSourceConnected, isLinearConnected, isLinearNoneToken, isLinearOAuthCancelled, isOptionalServiceId, isOrchestratorCapableAgent, isOrchestratorThread, isOtherWorktreeListenerCwd, isPidAlive, isPlaceholderBranch, isPlanQuestionAnswersMessage, isPollWrapperToolName, isPrNotMergeableError, isPresentPlanToolName, isPrimaryCheckoutThread, isSelfWrittenRecord, isSessionQuotaLimit, isSetupLastError, isShellToolName, isSideboardScratchPath, isSkillToolName, isSlackCoordinatorThread, isSlackExternalReplyPrompt, isSlackOAuthCancelled, isStaleLastErrorDuringTurn, isSubagentToolName, isSystemStatusThinking, isTerminalTaskState, isThinkingEffort, isThisProcessDesktopHost, isThisWorktreeListenerCwd, isThreadCaffeinated, isThreadRecordFile, isUnclaimedRunScriptRequest, isUsageOnLimit, isWorkspaceScratchPath, issueAttachmentForAbleTimeTask, issueMatchesAssignee, issueSourceLabel, issueTicketFromThread, killDetachedRunTree, killListenersOnPorts, killStaleWorktreeListeners, killableListenerPids, lastAgentReply, lastAssistantMessageText, lastRequestOccupancy, latestPendingPlanQuestions, linearAuthorizationHeader, linearCycleIsActive, linearGraphql, linearOAuthAuthorizeUrl, linearOAuthCredentials, linearRelationCreateInput, linearTicketIdFromThread, listAbleTimeAssignedIssues, listAbleTimeProjects, listAbleTimeTasks, listAgentSetupInfo, listBoardPins, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssueCommentsSince, listGitHubIssues, listGlobalThreads, listIssues, listLinearAssignedIssues, listLinearCommentsSince, listLinearIssues, listLinearIssuesDirect, listLinearIssuesFiltered, listLinearTeamCycles, listLinearTeams, listModelsForAgent, listOpencodeModels, listPrs, listRunScripts, listSchedules, listSlackOutboundWatches, listSlackWorkspaces, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, listenerCwd, liveActivitySummary, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadHomeBoardInputs, loadRepoSettings, loadWorkspaceSettings, loadWorktreeRunPorts, localhostPreviewUrl, locksDir, loginAgent, looksLikeComposerSkillExpansion, looksLikeConversationSummary, looksLikeIncompleteSkillDump, looksLikeSkillBody, lookupSoccerTeam, mapAbleTimeTask, markPrReady, materializeSystemCaBundle, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAllowToolsFromNames, mcpAuthWarnings, mcpStatusThinkingFromClaudeInit, mentionsPrGoal, mergeAgentGitAuthEnv, mergePr, mergePrStack, mergeSetupOutput, mergeSideboardIntoMcpServersJson, mergeUsage, messagePartParentId, messagesForCompactArchive, messagesSinceLastBrightsyContextSummary, moveQueuedItemToFront, needsCoordinatorAction, nextPastedTextName, nextThinkingEffort, nonInteractiveGitProcessEnv, normalizeAbleTimeCredential, normalizeAbleTimeHost, normalizeBrightsyEndpoint, normalizeCodeSelection, normalizeLinearRelationType, normalizeParseResult, normalizeReviewLabel, normalizeServiceOrigin, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, notifyOrchestrator, npmGlobalNodeModules, npmGlobalPrefix, openInSystemTerminal, openPrStackLayers, openStackLayer, opencodeAdapter, optionalServiceConnected, optionalServiceSpec, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originFetchBranch, originGhRepoEnv, outboundReplyFromTurn, packagedDetachedJobPath, parseAbleTimeOAuthCallbackUrl, parseClaudeUsagePayload, parseCursorRunnerLine, parseDevPreview, parseDurationMs, parseForceStopMessage, parseGhStackViewJson, parseGitHubIssueNumber, parseGithubSlugFromRemoteUrl, parseMcpList, parsePlanQuestionsInput, parsePrDetailsView, parseSessionQuotaResetAt, parseSlackRelayClientMessage, parseSlackRelayServerMessage, partsToAssistantText, pastedTextStats, pendingInjectedNotices, pendingSlackExternalReplies, permissionMode, persistPendingFileAttachments, persistVaultKeyInKeychain, planFileAbs, planHistoryAgePurge, planHistoryRetention, planModeTurnInstruction, planQuestionsSignature, pnpmFilterPackage, pollSlackOutboundWatches, posixShellSingleQuote, preferredCursorCostCents, prepareTerminalCommand, prependQueuedItem, previewLand, primaryCheckoutFromLinkedWorktree, promptMentionsBrightsy, pushBranch, readAgentDoneCustomSound, readExistingReviewRequestFile, readKeychainVaultKey, readPlanFile, readRunLog, readSetupLog, readSkillBody, readThread, readViewerContext, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, recordScheduleRun, recordSlackOutboundWatch, refreshBrightsyAccessToken, refreshGitHubAuth, registerBrightsyOAuthClient, registerPackagedUserMcpClients, releaseCaffeinateHoldForThread, releaseDesktopHost, removeBoardPin, removeQueuedItem, removeWorkspace, removeWorktree, repoSlug, requestOccupancy, requestReview, requireAgent, reservePort, reservePortRange, resetGhStackDetectCache, resetGithubAgentTokenMemo, resolveAbleTimeOAuthHost, resolveAccountProfile, resolveAccountProfileFromSettings, resolveAgentExecutable, resolveAgentGitAuthEnv, resolveClaudeExecutable, resolveCodexGitWritableRoots, resolveCommandBinarySync, resolveConductorCursorAgentId, resolveCreateFirstPrompt, resolveCursorModelId, resolveCursorSdkRoot, resolveDefaultBranch, resolveDetachedJobScript, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGhAuthToken, resolveGitBranchPrefix, resolveGitDirsForLockRecovery, resolveGitHubIssueRepo, resolveGithubAgentToken, resolveGithubRepoSlug, resolveLinearCycle, resolveLinearLabel, resolveLinearProject, resolveLinearState, resolveLinearTeam, resolveLoginCommand, resolveNewOrchestratorOptions, resolveNewThreadOptions, resolveOrchChildFollowUp, resolveOrchestratorDefaults, resolvePlanMarkdown, resolvePrSelector, resolvePrSelectors, resolveProjectReviewLabel, resolveQuotaFallbackAgent, resolveRepoRoot, resolveReviewGuidelines, resolveScheduleThreadId, resolveSendFollowUp, resolveSidebarGitPrompt, resolveSlackListenMode, resolveThreadDefaults, resolveThreadEffort, resolveUsageOnLimit, resolveVaultKey, resolveViewerProfile, resolveViewerProfileForRepo, resolveWorktreeStartPoint, reviewLabelForRepo, rewriteAbleTimeError, rewriteLinearError, run, runArchiveScript, runCloudConnect, runConventionSetup, runCursorWorktreeSetup, runScriptPreview, runSetupScript, runSlackListen, runSlackRelayClient, runWorkspaceSetup, sameWorktreePath, sanitizeGitBranchPrefix, sanitizeMcpServerName, saveAbleTimeConnection, saveAppSettings, saveLinearOAuth, saveWorktreeRunPorts, scheduleNeedsCaffeinate, schedulesPath, scrubGithubTokensFromChildEnv, searchAbleTimeTasks, secureFileUnlocksWith, setCaffeinateHold, setHttpFetchImpl, setStatus, setVaultMasterKey, settingsSourceLabel, shiftQueuedItem, shouldAttachPastedText, shouldCompactContext, shouldInjectBrightsyMcp, shouldNotifyOrchestrator, shouldRefreshReviewRequestTemplate, shouldRegisterPresentPlan, shouldRemoveWorktreeOnTeardown, shouldResetSessionForOccupancy, shouldRunHistoryCleanup, shouldRunWorktreeCleanup, shouldStampSetupLastError, showCostEnabled, sideboardHomeDir, sideboardMcpProfile, sideboardReposDir, sideboardWorkspacesDir, skillCommandFromBody, skillCommandFromInput, skillNameFromFrontmatter, slackAppLevelToken, slackArchiveUrl, slackCoordinatorSourceRef, slackListenEnabled, slackOAuthCredentials, slackOAuthResultUrl, slackRelayUrl, sliceRunLogOutput, slimMessagesForUiList, slimThreadForUiList, slugify, spawnAgentTurn, splitForCompaction, splitTurnInputForSystemPrompt, stackAgentDefaultsFrom, stackIdFrom, stackMergeReadiness, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startAbleTimeOAuth, startDevServer, startLinearOAuth, startMcpServer, startOrchestration, startSlackOAuth, startSlackRelayServer, statWorktreePath, stripBrightsyNdjsonNoise, stripNestedElectronEnv, submitPrStack, suggestSlug, sumUsageList, summarizeConversation, switchBrightsyAccount, syncWorkspacesFromThreads, takePendingTurnAttachments, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, taskUrl, thinkingEffortBars, thinkingEffortLabel, thisProcessShouldDrainAgentQueues, threadDisplayLabel, threadFilePath, threadHasCompactedContext, threadLivePath, threadLockPath, threadMayPresentPlan, threadRequestsBrightsyMcp, threadsDir, threadsSharingWorktree, ticketSlugForBranch, toAbleTimeIssueInfo, toGitHubIssueInfo, toPublicAppSettings, toolActivityLine, toolDescription, toolDetail, toolFilePath, totalTokens, trustSystemCertificates, tryReservePort, tryReservePorts, turnCostUsdFromCursorUsage, updateAbleTimeTask, updateAdvancedSettings, updateAgentExecutable, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateCodexSettings, updateDefaultsSettings, updateGitHubIssue, updateIntegrationsSettings, updateLinearIssue, updateOpencodeSettings, updateProjectProfileSettings, updateSchedule, updateThread, usageOnLimit, userClaudeMcpConfigPath, userCursorMcpConfigPath, userMcpNamesToDisable, validateLinearApiKey, verifyAbleTimeConnection, verifyOptionalService, visibleAssistantText, visibleToolRowDetail, waitForPidExit, warmGithubAgentAuth, whichOnPath, withEventParentId, withEventsParentId, withExportedPath, withMaxOldSpaceSize, withThreadLock, workspaceSettingsSourceLabel, worktreeBoardStatus, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreeRunPortsPath, worktreeSlugForTicket, worktreesRoot, wrapReviewSkillMarkdown, writeInjectedMcpConfig, writePlanFile, writeThread, writeViewerContext, writeWorktreeFile };
7563
+ export { ABLETIME_MCP_PATH, ABLETIME_MCP_PM_PATH, ABLETIME_OAUTH_CALLBACK_PATH, ABLETIME_OAUTH_CANCELLED, ABLETIME_OAUTH_LOCAL_CALLBACK, ABLETIME_OAUTH_PORT, ABLETIME_OAUTH_REDIRECT, ABLETIME_OAUTH_RESOURCE, ABLETIME_OAUTH_TOKEN_PREFIX, ABLETIME_ORG_KEY_PREFIX, ABLETIME_PAT_PREFIX, ABLETIME_PM_TOOL_NAMES, AGENT_DONE_CUSTOM_SOUND_EXTENSIONS, AGENT_DONE_CUSTOM_SOUND_MAX_BYTES, AGENT_DONE_SOUNDS, AGENT_GIT_ACTIONS, AGENT_RUNNER_MAX_OLD_SPACE_MB, ATTACHMENTS_DIR, type AbleTimeAssignedIssuesResult, type AbleTimeComment, type AbleTimeCredentialKind, type AbleTimeMcpToolName, AbleTimeOAuthCancelledError, type AbleTimeOrientation, type AbleTimePmToolName, type AbleTimeProject, type AbleTimeTask, type AbleTimeTaskRelationInput, type AbleTimeViewer, type AccountProfile, type ActiveRun, type AddBoardPinInput, type AddStackLayerInput, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentDoneCustomSoundPayload, type AgentDoneSound, type AgentEvent, type AgentGitAction, type AgentKind, type AgentModelCatalog, type AgentModelInfo, type AgentSetupActionResult, type AgentSetupInfo, type AgentSetupKind, type AgentStatus, type AgentTurnInput, type AnthropicCacheControl, type AppSettings, type ApplyIntoMainResult, type AttachCommand, type Autonomy, BAKED_ABLETIME_OAUTH_CLIENT_ID, BAKED_SLACK_RELAY_URL, BRIGHTSY_MCP_ALLOWED_TOOLS, BRIGHTSY_OAUTH_CLIENT_ID, BRIGHTSY_OAUTH_REDIRECT, BRIGHTSY_SUMMARIZE_CONTEXT_TOOL, BUNDLED_LONG_RUNNING_PATH, BUNDLED_SKILL_PREFIX, type BoardPin, type BranchInfo, type BrightsyAccount, type BrightsyChatTarget, type BrightsyChatTargets, type BrightsyCloudConnectAgent, type BrightsyHarnessSettings, type BrightsySession, BrightsySideboardApi, type BrightsyTeamTargets, CHARS_PER_CONTEXT_TOKEN, CHAT_TEXT_SCALES, CHAT_TEXT_SCALE_DEFAULT, CLAUDE_MODEL_CATALOG, CLAUDE_SUMMARY_TIMEOUT_MS, CLI_DIR, CLOUD_COORDINATOR_BUSY_REPLY, CLOUD_COORDINATOR_CANCELED_REPLY, CLOUD_COORDINATOR_INPUT_REQUIRED_REPLY, CLOUD_COORDINATOR_STOPPED_REPLY, CLOUD_COORDINATOR_TIMEOUT_REPLY, CLOUD_ORCHESTRATOR_GOAL, CONTEXT_COMPACT_CHARS, CONTEXT_KEEP_RECENT_CHARS, CONTEXT_KEEP_RECENT_MESSAGES, CONTEXT_MIN_MESSAGES, CONTEXT_REVIEW_PATH, CONVENTION_SETUP_RELPATHS, COORDINATOR_TOOL_PLAYBOOK, CURSOR_SDK_INSTALL_HINT, type CaffeinateHoldState, type ChatTextScale, type ClaudeExtraUsage, type ClaudeHarnessSettings, type ClaudePlanUsage, type ClaudeUsageWindow, type ClaudeUsageWindowId, type CleanupOrphansResult, type CliAgentKind, type CliExecutableSettings, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, type CodeLineRange, type CodeRefInput, type CompactResult, type CompactThresholds, type ComposerFileBuffer, type ConductorSettings, type ConductorWorkspace, type ConnectedBrightsyTeamInfo, type ConventionSetupFile, type CowboyThreadFields, type CreateChatTabInput, type CreateGlobalChatOpts, type CreateScheduledTaskInput, type CreateStackInput, type CreateThreadInput, type CreateWorktreeResult, type CursorAgentUsageSnapshot, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorUsageCost, type CursorWorktreesConfig, DEFAULT_ABLETIME_HOST, DEFAULT_RUN_LOG_TAIL_CHARS, DEFAULT_WORKTREE_SORT, DETACHED_JOBS_DIR, type DefaultsAppSettings, type DefaultsSettingsPatch, type DevAccessRun, type DevPreview, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, type EnsuredReviewGuidelines, type ExpandResult, FAMOUS_SOCCER_TEAMS, FOLLOW_UP_BEHAVIORS, type FastForwardMainResult, type FollowUpBehavior, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GITHUB_GIT_AUTH_MODES, GITHUB_PR_BODY_MAX_CHARS, GITHUB_PR_BODY_SAFE_CHARS, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GhStackStatus, type GitHubIssue, type GitHubIssueComment, type GitHubIssueRelationInput, type GitHubStatus, type GitWorktreeStatus, type GithubGitAuthMode, HARNESS_ENV_KEYS, HISTORY_DISCARDED_TEXT, HISTORY_MAX_COUNT_DEFAULT, HISTORY_MAX_COUNT_MAX, HISTORY_MAX_COUNT_MIN, HISTORY_MAX_DAYS_DEFAULT, HISTORY_MAX_DAYS_MAX, HOME_BOARD_CACHE_TTL_MS, type HarnessId, type HistoryCleanupResult, type HistoryRetentionPlan, type HomeBoardLoaded, type HomeBoardRemoteData, IMPLIED_TICKET_RESOLVE_PROMPT, ISSUE_SOURCE_LABELS, type ImportedAgentDoneSound, type InitStackFromThreadInput, type IntegrationsSettings, type IpcApi, type IssueActivityComment, type IssueAssigneeFilter, type IssueCycleInfo, type IssueInfo, type IssueSource, LEGACY_ATTACHMENTS_DIR, LEGACY_DETACHED_JOBS_DIR, LEGACY_PLAN_FILE_REL, LEGACY_REVIEW_REQUEST_PATH, LIGHT_RECONCILE_THROTTLE_MS, LINEAR_OAUTH_CANCELLED, LINEAR_OAUTH_PORT, LINEAR_OAUTH_REDIRECT, LINEAR_OAUTH_SCOPES, LIVE_TURN_SPAWN_GRACE_MS, LONG_RUNNING_SKILL_COMMAND, type LandPreview, type LandResult, type LinearAssignedIssuesResult, type LinearAssigneeFilter, type LinearComment, type LinearCycle, type LinearIssue, type LinearIssueAttachment, type LinearIssueComment, type LinearIssueRef, type LinearIssueRelation, type LinearIssueRelationInput, type LinearNamedRef, LinearOAuthCancelledError, type LinearProjectRef, type LinearTeam, type LinearTeamsResult, type LinearWorkflowState, type ListIssuesOptions, type ListIssuesResult, type ListPrsOptions, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, type NotifyOrchestratorReason, type NotifyOrchestratorResult, OPTIONAL_SERVICES, OPTIONAL_SERVICE_IDS, ORCHESTRATOR_AGENT_KINDS, type OpenPrStackLayersInput, type OpenStackLayerInput, type OpenStackLayerResult, type OptionalServiceCliStatus, type OptionalServiceId, type OptionalServiceSpec, type OrchestrationQuotaOnLimit, Orchestrator, type OrchestratorAgentKind, type OrchestratorDefaultsSettings, type OrchestratorEvent, type OrchestratorRuntime, type OrphanWorktree, type OutboundTurnCopy, type OutboundTurnSnapshot, PASTE_ATTACH_MIN_CHARS, PASTE_ATTACH_MIN_LINES, PLAN_FILE_NAME, PLAN_FILE_REL, PLAN_MODE_INSTRUCTION, PLAN_MODE_OFF_INSTRUCTION, PLAN_QUESTION_ANSWERS_PREFIX, PORT_RANGE_SIZE, PRESENT_PLAN_REQUIRES_PLAN_MODE, PRESENT_PLAN_TOOL_DESCRIPTION, PROFILE_NOTES_MAX, PR_DETAILS_JSON_FIELDS, type PathRefInput, type PendingPlanQuestions, type PlanQuestion, type PlanQuestionAnswer, type PlanQuestionOption, type PlanToolPartLike, type PortReservation, type PrActor, type PrCheckRun, type PrCommentInfo, type PrCommitInfo, type PrDetails, type PrInfo, type PrMeta, type PrReviewInfo, type PrStack, type PrStackLayer, type PresentedPlan, type ProjectProfileSettings, type PublicAppSettings, type PublicIntegrationsSettings, REPO_REVIEW_NAME, REPO_REVIEW_PATH, REVIEW_LABEL_MAX, REVIEW_REQUEST_NAME, REVIEW_REQUEST_PATH, REVIEW_REQUEST_PREFILL, REVIEW_REQUEST_TEMPLATE, REVIEW_SKILL_NAME, REVIEW_SKILL_PATH, RUN_PORTS_REL, RUN_SCRIPT_DESKTOP_ADOPT_MS, type RepoSettings, type RepoSetupInfo, type RequestReviewResult, type ReservePortRangeOpts, type ResolvedAccountProfile, type ResolvedReviewGuidelines, type ResolvedThreadDefaults, type ResolvedViewerProfile, type ReviewGuidelinesSource, type RunLogSnapshot, type RunMode, type RunScript, type RunScriptPreviewInput, type RunScriptRequest, SEED_FULL_TOOL_MESSAGES, SEED_MAX_CHARS, SESSION_RESET_OCCUPANCY_TOKENS, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, SIDEBOARD_MCP_PROFILE_ENV, SLACK_LISTEN_INPUT_REQUIRED_REPLY, SLACK_LISTEN_STOPPED_REPLY, SLACK_LISTEN_TIMEOUT_REPLY, SLACK_OAUTH_CANCELLED, SLACK_OAUTH_REDIRECT, SLACK_PROGRESS_DELAY_MS, SLACK_PROGRESS_EDIT_MS, SLACK_REPLY_FORMATTING, SLACK_SEEN_REACTION, STDERR_EVENT_MAX_CHARS, STDOUT_EVENT_MAX_CHARS, type ScheduleCreatedBy, type ScheduleWhen, type ScheduledTask, type ScriptHandle, type SessionSeedOptions, type SetupLogSnapshot, type SetupRunResult, type SidebarGitAction, type SideboardMcpProfile, type SkillInfo, type SlackInboundMessage, type SlackListenOptions, type SlackListenStatus, SlackOAuthCancelledError, type SlackOutboundReply, type SlackOutboundWatch, type SlackRelayClientMessage, type SlackRelayClientOptions, SlackRelayHub, type SlackRelayServerHandle, type SlackRelayServerMessage, type SlackRelayServerOptions, type SlackWorkspaceInfo, type SourceType, type SpawnTurnHandle, type SummarizeResult, THINKING_EFFORTS, THINKING_PART_MAX_CHARS, type TaskState, type TeamName, type ThinkingEffort, type Thread, type ThreadAttachment, type ThreadMessage, type ThreadOptionsPatch, type ThreadStatus, type TokenUsage, type ToolPartLike, type TranscriptToolDetail, type TurnCommand, USAGE_ON_LIMIT_VALUES, type UpdateScheduledTaskPatch, type UsageOnLimit, type UsageScope, type ViewerContextWriteResult, type ViewerProfile, WORKTREE_ABLETIME_MCP_TOOLS, WORKTREE_GITHUB_MCP_TOOLS, WORKTREE_LINEAR_MCP_TOOLS, WORKTREE_MCP_TOOLS, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, type WorktreeDirtyStat, type WorktreeListBadge, type WorktreeSortMode, type WorktreeStatKind, ableTimeCredentialKind, ableTimeDependencyTarget, ableTimeOAuthAuthorizeUrl, ableTimeOAuthBouncePage, ableTimeOAuthClientId, ableTimeOAuthLocalBounceUrl, ableTimeOAuthRedirectUri, ableTimeOAuthResource, ableTimeUsesRest, abletimeMcpRequest, abletimeMcpUrl, abletimeToolUsesPm, ackSlackInboundSeen, activeRunPreview, addBoardPin, addPrStackLayer, addStackLayerFromThread, addWorkspace, adoptThread, agentDoneCustomSoundMime, agentDoneSound, agentDoneSoundsDir, agentGitPrompt, alignQueueAttachments, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, annotateDevAccessRuns, appDataDir, appSettingsPath, appendCompactedMessages, appendIndexedGitConfig, appendMessage, appendQueuedItem, applyAgentEvent, applyAgentRunnerHeapEnv, applyAppEnvironment, applyCompaction, applyForwardOccupancy, applyGithubGitAuthEnv, applyPromptCacheTtlEnv, applySystemCaEnv, applyThreadIntoMain, applyTurnUsage, armSchedules, assertAbleTimeCredential, assertAbleTimeMcpCredential, assertOrchestratorCapableAgent, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, attachmentsGitignoreBody, autoArchiveOnMergeEnabled, autoCleanupHistoryEnabled, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAccessTokenNeedsRefresh, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyInjectWorktreeMcpEnabled, brightsyMcpAllowedTools, brightsyMcpServerName, buildBrightsySessionSeed, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildCodeRefAttachment, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildLinearIssueFilter, buildPastedTextAttachment, buildPathRefAttachment, buildReviewRequestAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateHoldPath, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, caffeinateWhileSchedulesEnabled, caffeinateWhileSlackListenEnabled, callAbleTimeTool, canonicalizeRepoPath, captureLoginEnv, captureTurnBaseline, chatTextScale, checkoutPrStackLayer, childEnvWithAppSettings, claimDesktopHost, clampGithubPrBody, clampHistoryMaxCount, clampHistoryMaxDays, classifyRunScriptPreview, classifyWorktreeColumn, classifyWorktreeListBadges, claudeAdapter, claudeChromeEnabled, claudeUsageOverLimitWindows, claudeUserSettingsPath, cleanupArchivedHistory, cleanupOrphanWorktrees, clearAgentDoneCustomSoundFile, clearBoardPins, clearHomeBoardCache, clipAgentEventForPaint, clipThinkingForStore, cloneRepoIntoSideboard, codeRefRangeLabel, codexAdapter, codexSandboxWritableRootsArgs, codexUnattendedGitConfigArgs, coerceOrchestratorAgent, collectTakenTeamSlugs, commandLooksLikeElectron, commentAbleTimeTask, commentGitHubIssue, commentLinearIssue, commitAll, compactArchiveProse, compactPartsForSummaryMessage, compactSummaryPart, computeNextRunAt, conductorBundledBinDir, conductorDbPath, confirmClaudeUsageOverLimitEnabled, confirmLand, connectBrightsyTeam, connectOptionalService, connectSlackToken, connectedOptionalServices, connectedPrSelectors, consumeComposerAttachments, contextTokens, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, countUnpushedVsOrigin, cowboyModeEnabled, createAbleTimePkce, createAbleTimeTask, createChatTab, createEmptyThread, createExistingBranchWorktree, createGitHubIssue, createGlobalChat, createLinearIssue, createLinearPkce, createOrUpdatePr, createPrStack, createSchedule, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, defaultScheduleName, deleteBranchOnPurgeEnabled, deleteSchedule, deleteThreadRecord, deriveTaskState, desktopHostPidPath, detectAgents, detectGhStack, detectLocalMergeConflicts, detectOptionalServiceClis, disconnectAbleTimeConnection, disconnectBrightsyTeam, disconnectLinear, disconnectLinearConnection, disconnectOptionalService, disconnectSlackWorkspace, discoverSkills, dropCachedPrefixOnResume, emptyPublicIntegrations, emptyRunLog, emptySetupLog, encodeBrightsyTarget, endedOnAskUser, enrichPathWithNpmGlobalBin, enrichWorkspacesWithGithub, ensureAbleTimeAccessToken, ensureAbleTimeTask, ensureAgentPath, ensureBrightsyLocalConfigFresh, ensureBrightsyOAuthClientId, ensureCloudCoordinator, ensureConnectedBrightsyTeamTokens, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureReviewGuidelinesFile, ensureReviewRequestFile, ensureReviewSkillFile, ensureSlackCoordinator, ensureSlackDeviceIdentity, ensureWorkspace, estimateMessageChars, estimateOccupancyTokens, estimateThreadChars, examplePrefixedBranch, expandComposerPrompt, extractBrightsyContextSummary, extractGhErrorDetail, extractPendingPlanQuestions, extractPresentedPlan, extractiveSummary, fastForwardMainCheckoutIfSafe, fetchOriginForWorktree, fetchPrHead, finalizeParts, findAgentDoneCustomSoundPath, findConventionSetup, findInvalidCacheControlTtlOrder, findLastBrightsyContextSummary, findLiveThreadForCreate, findLiveThreadForCreateSource, findOrphanWorktrees, findProjectProfileKey, findSlackCoordinator, findThreadByRef, findThreadForStackLayer, fireSchedule, flattenTurnInput, flipLinearRelationType, foldLegacyRolesIntoNotes, followUpBehavior, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAccountProfilePlaybookLine, formatArtifactDirective, formatAskUserNotifyMessage, formatBrightsyFetchError, formatClaudeExtraUsageDetail, formatClaudeUsageCompact, formatClaudeUsageFetchedAt, formatClaudeUsageOverLimitConfirm, formatClaudeUsageOverLimitWait, formatClaudeUsageReset, formatClaudeUsageResetClock, formatClaudeUsageTooltip, formatCloudTurnReply, formatDetachedJobInvoke, formatDevAccessHint, formatFetchError, formatGhLandError, formatGitAuthModeDirective, formatInjectedNoticesForTurn, formatIpcInvokeError, formatIssueToolsDirective, formatIssueToolsReminder, formatLinearDirective, formatLinearReminder, formatLongRunningDirective, formatLongRunningReminder, formatMergePrError, formatMessagesAsTranscript, formatNotifyOrchestratorPrompt, formatOptionalServicesDirective, formatOptionalServicesReminder, formatPlanQuestionAnswers, formatPlanQuestionsForChat, formatPrGateDirective, formatProcessGuideDirective, formatProjectProfilePlaybookLines, formatRateLimitResetHint, formatRenameBranchDirective, formatScheduleWhen, formatScheduledPrompt, formatSlackExternalReplyPrompt, formatSlackInboundPrompt, formatSlackRepliesForTurn, formatSlackReplyContinuePrompt, formatSlackSignedReply, formatSlackTurnReply, formatSlackWorkingText, formatTranscriptMarkdown, formatUiReminder, formatViewerContextDirective, formatViewerContextReminder, formatWorkspaceInventory, formatWorkspaceProfileSuffix, formatWorktreeDirective, formatWorktreeReminder, forwardContextUsage, forwardOccupancyTokens, fromInclusiveInputUsage, getAbleTimeAccessToken, getAbleTimeHost, getAbleTimeOrientation, getAbleTimeTask, getAdapter, getAgentSetupInfo, getBrightsySession, getCaffeinateHold, getClaudePlanUsage, getDefaultAgent, getDefaultEffort, getDefaultFast, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubIssue, getGitHubStatus, getGithubGitAuthMode, getGithubPat, getHomeBoardInputs, getIssueSource, getLinearApiKey, getLinearAuthToken, getLinearIssue, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrForHeadBranch, getPrMeta, getPrStack, getRepoSetupInfo, getRunMode, getRunScript, getSchedule, getSlackWorkspace, getWorktreeDirtyStat, gh, ghHeadRef, ghPrCreateAssigneeArgs, ghRepoSelectArgs, git, gitBranchPrefixSetting, githubAgentGitEnv, githubHttpsInsteadOfEntries, githubRelationEditFlag, globalAgentCwd, groupHomeBoardWorktrees, handleSlackInbound, harnessEnvKey, hasBakedAbleTimeOAuth, hasBakedLinearOAuth, hasBakedSlackOAuth, hasConductorHook, hasConventionSetup, hasCursorWorktreeSetup, hasEnabledSchedules, hasRepoHook, hasWorkspaceHook, hasWorkspaceSettingsToml, healOrchestrationSoccerTitles, historyMaxCount, historyMaxDays, hottestClaudeWindow, httpFetch, importAgentDoneCustomSound, importConductorWorkspace, importConductorWorkspaceAsync, initPrStack, initStackFromThread, initializeGitRepository, inspectGitWorktree, installAgent, installNpmGlobalPackage, installOptionalServiceCli, interruptSlackCoordinatorForInbound, invalidateThreadListCache, invalidateThreadRecord, isAbleTimeConnected, isAbleTimeOAuthCancelled, isAbleTimeRejectedCredential, isAdoptableRunScriptRequest, isAgentDoneSound, isAskUserToolName, isBrightsyConnected, isBrightsyNdjsonLine, isChatTextScale, isCloudCoordinatorThread, isCompactToolName, isConductorBundledCli, isContextCompactDone, isContextCompactInProgress, isCowboyThread, isCursorApiKeyConfigured, isCursorAutoModel, isCursorSdkInstalled, isDefaultishSourceRef, isDesktopHostAlive, isDirty, isGhPrBodyTooLongError, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isHistoryRetentionStub, isHomeBoardThread, isImageFilePath, isInPrStack, isInboundForThisDesktop, isIncompleteTaskState, isInjectedNoticeText, isInjectedOrchMcpName, isInternalAgentStatusText, isIssueSourceConnected, isLinearConnected, isLinearNoneToken, isLinearOAuthCancelled, isOptionalServiceId, isOrchestratorCapableAgent, isOrchestratorThread, isOtherWorktreeListenerCwd, isPidAlive, isPlaceholderBranch, isPlanQuestionAnswersMessage, isPollWrapperToolName, isPrNotMergeableError, isPresentPlanToolName, isPrimaryCheckoutThread, isSelfWrittenRecord, isSessionQuotaLimit, isSetupLastError, isShellToolName, isSideboardScratchPath, isSkillToolName, isSlackCoordinatorThread, isSlackExternalReplyPrompt, isSlackOAuthCancelled, isStaleLastErrorDuringTurn, isSubagentToolName, isSystemStatusThinking, isTerminalTaskState, isThinkingEffort, isThisProcessDesktopHost, isThisWorktreeListenerCwd, isThreadCaffeinated, isThreadRecordFile, isUnclaimedRunScriptRequest, isUsageOnLimit, isWorkspaceScratchPath, issueAttachmentForAbleTimeTask, issueMatchesAssignee, issueSourceLabel, issueTicketFromThread, killDetachedRunTree, killListenersOnPorts, killStaleWorktreeListeners, killableListenerPids, lastAgentReply, lastAssistantMessageText, lastRequestOccupancy, latestPendingPlanQuestions, linearAuthorizationHeader, linearCycleIsActive, linearGraphql, linearOAuthAuthorizeUrl, linearOAuthCredentials, linearRelationCreateInput, linearTicketIdFromThread, listAbleTimeAssignedIssues, listAbleTimeProjects, listAbleTimeTasks, listAgentSetupInfo, listBoardPins, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssueCommentsSince, listGitHubIssues, listGlobalThreads, listIssues, listLinearAssignedIssues, listLinearCommentsSince, listLinearIssues, listLinearIssuesDirect, listLinearIssuesFiltered, listLinearTeamCycles, listLinearTeams, listModelsForAgent, listOpencodeModels, listPrs, listRunScripts, listSchedules, listSlackOutboundWatches, listSlackWorkspaces, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, listenerCwd, liveActivitySummary, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadHomeBoardInputs, loadRepoSettings, loadWorkspaceSettings, loadWorktreeRunPorts, localhostPreviewUrl, locksDir, loginAgent, looksLikeComposerSkillExpansion, looksLikeConversationSummary, looksLikeIncompleteSkillDump, looksLikeSkillBody, lookupSoccerTeam, mapAbleTimeTask, markPrReady, materializeSystemCaBundle, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAllowToolsFromNames, mcpAuthWarnings, mcpStatusThinkingFromClaudeInit, mentionsPrGoal, mergeAgentGitAuthEnv, mergePr, mergePrStack, mergeSetupOutput, mergeSideboardIntoMcpServersJson, mergeUsage, messagePartParentId, messagesForCompactArchive, messagesSinceLastBrightsyContextSummary, moveQueuedItemToFront, needsCoordinatorAction, nextPastedTextName, nextThinkingEffort, nonInteractiveGitProcessEnv, normalizeAbleTimeCredential, normalizeAbleTimeHost, normalizeBrightsyEndpoint, normalizeCodeSelection, normalizeLinearRelationType, normalizeParseResult, normalizeReviewLabel, normalizeServiceOrigin, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, notifyOrchestrator, npmGlobalNodeModules, npmGlobalPrefix, openInSystemTerminal, openPrStackLayers, openStackLayer, opencodeAdapter, optionalServiceConnected, optionalServiceSpec, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originFetchBranch, originGhRepoEnv, outboundReplyFromTurn, packagedDetachedJobPath, parseAbleTimeOAuthCallbackUrl, parseClaudeUsagePayload, parseCursorRunnerLine, parseDevPreview, parseDurationMs, parseForceStopMessage, parseGhStackViewJson, parseGitHubIssueNumber, parseGithubSlugFromRemoteUrl, parseMcpList, parsePlanQuestionsInput, parsePrDetailsView, parseSessionQuotaResetAt, parseSlackRelayClientMessage, parseSlackRelayServerMessage, partsToAssistantText, pastedTextStats, pendingInjectedNotices, pendingSlackExternalReplies, permissionMode, persistPendingFileAttachments, persistVaultKeyInKeychain, planFileAbs, planHistoryAgePurge, planHistoryRetention, planModeTurnInstruction, planQuestionsSignature, pnpmFilterPackage, pollSlackOutboundWatches, posixShellSingleQuote, preferredCursorCostCents, prepareTerminalCommand, prependQueuedItem, previewLand, primaryCheckoutFromLinkedWorktree, promptMentionsBrightsy, pushBranch, readAgentDoneCustomSound, readExistingReviewRequestFile, readKeychainVaultKey, readPlanFile, readRunLog, readSetupLog, readSkillBody, readThread, readViewerContext, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, recordScheduleRun, recordSlackOutboundWatch, refreshBrightsyAccessToken, refreshGitHubAuth, registerBrightsyOAuthClient, registerPackagedUserMcpClients, releaseCaffeinateHoldForThread, releaseDesktopHost, removeBoardPin, removeQueuedItem, removeWorkspace, removeWorktree, repoSlug, requestOccupancy, requestReview, requireAgent, reservePort, reservePortRange, resetGhStackDetectCache, resetGithubAgentTokenMemo, resolveAbleTimeOAuthHost, resolveAccountProfile, resolveAccountProfileFromSettings, resolveAgentExecutable, resolveAgentGitAuthEnv, resolveClaudeExecutable, resolveCodexGitWritableRoots, resolveCommandBinarySync, resolveConductorCursorAgentId, resolveCreateFirstPrompt, resolveCursorModelId, resolveCursorSdkRoot, resolveDefaultBranch, resolveDetachedJobScript, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGhAuthToken, resolveGitBranchPrefix, resolveGitDirsForLockRecovery, resolveGitHubIssueRepo, resolveGithubAgentToken, resolveGithubRepoSlug, resolveLinearCycle, resolveLinearLabel, resolveLinearProject, resolveLinearState, resolveLinearTeam, resolveLoginCommand, resolveNewOrchestratorOptions, resolveNewThreadOptions, resolveOrchChildFollowUp, resolveOrchestratorDefaults, resolvePlanMarkdown, resolvePrSelector, resolvePrSelectors, resolveProjectReviewLabel, resolveQuotaFallbackAgent, resolveRepoRoot, resolveReviewGuidelines, resolveScheduleThreadId, resolveSendFollowUp, resolveSidebarGitPrompt, resolveSlackListenMode, resolveThreadDefaults, resolveThreadEffort, resolveUsageOnLimit, resolveVaultKey, resolveViewerProfile, resolveViewerProfileForRepo, resolveWorktreeStartPoint, reviewLabelForRepo, rewriteAbleTimeError, rewriteLinearError, run, runArchiveScript, runCloudConnect, runConventionSetup, runCursorWorktreeSetup, runScriptPreview, runSetupScript, runSlackListen, runSlackRelayClient, runWorkspaceSetup, sameWorktreePath, sanitizeGitBranchPrefix, sanitizeMcpServerName, saveAbleTimeConnection, saveAppSettings, saveLinearOAuth, saveWorktreeRunPorts, scheduleNeedsCaffeinate, schedulesPath, scrubGithubTokensFromChildEnv, searchAbleTimeTasks, secureFileUnlocksWith, setCaffeinateHold, setHttpFetchImpl, setStatus, setVaultMasterKey, settingsSourceLabel, shiftQueuedItem, shouldAttachPastedText, shouldCompactContext, shouldInjectBrightsyMcp, shouldNotifyOrchestrator, shouldRefreshReviewRequestTemplate, shouldRegisterPresentPlan, shouldRemoveWorktreeOnTeardown, shouldResetSessionForOccupancy, shouldRunHistoryCleanup, shouldRunWorktreeCleanup, shouldStampSetupLastError, showCostEnabled, sideboardHomeDir, sideboardMcpProfile, sideboardReposDir, sideboardWorkspacesDir, skillCommandFromBody, skillCommandFromInput, skillNameFromFrontmatter, slackAppLevelToken, slackArchiveUrl, slackCoordinatorSourceRef, slackListenEnabled, slackOAuthCredentials, slackOAuthResultUrl, slackRelayUrl, sliceRunLogOutput, slimMessagesForUiList, slimThreadForUiList, slugify, spawnAgentTurn, splitForCompaction, splitTurnInputForSystemPrompt, stackAgentDefaultsFrom, stackIdFrom, stackMergeReadiness, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startAbleTimeOAuth, startDevServer, startLinearOAuth, startMcpServer, startOrchestration, startSlackOAuth, startSlackRelayServer, statWorktreePath, stripBrightsyNdjsonNoise, stripNestedElectronEnv, submitPrStack, suggestSlug, sumUsageList, summarizeConversation, switchBrightsyAccount, switchWorktreeBranch, syncWorkspacesFromThreads, takePendingTurnAttachments, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, taskUrl, thinkingEffortBars, thinkingEffortLabel, thisProcessShouldDrainAgentQueues, threadDisplayLabel, threadFilePath, threadHasCompactedContext, threadLivePath, threadLockPath, threadMayPresentPlan, threadRequestsBrightsyMcp, threadsDir, threadsSharingWorktree, ticketSlugForBranch, toAbleTimeIssueInfo, toGitHubIssueInfo, toPublicAppSettings, toolActivityLine, toolDescription, toolDetail, toolFilePath, totalTokens, trustSystemCertificates, tryReservePort, tryReservePorts, turnCostUsdFromCursorUsage, updateAbleTimeTask, updateAdvancedSettings, updateAgentExecutable, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateCodexSettings, updateDefaultsSettings, updateGitHubIssue, updateIntegrationsSettings, updateLinearIssue, updateOpencodeSettings, updateProjectProfileSettings, updateSchedule, updateThread, usageOnLimit, userClaudeMcpConfigPath, userCursorMcpConfigPath, userMcpNamesToDisable, validateLinearApiKey, verifyAbleTimeConnection, verifyOptionalService, visibleAssistantText, visibleToolRowDetail, waitForPidExit, warmGithubAgentAuth, whichOnPath, withEventParentId, withEventsParentId, withExportedPath, withMaxOldSpaceSize, withThreadLock, workspaceSettingsSourceLabel, worktreeBoardStatus, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreeRunPortsPath, worktreeSlugForTicket, worktreesRoot, wrapReviewSkillMarkdown, writeInjectedMcpConfig, writePlanFile, writeThread, writeViewerContext, writeWorktreeFile };
package/dist/index.d.ts CHANGED
@@ -2271,6 +2271,15 @@ declare function createExistingBranchWorktree(opts: {
2271
2271
  branchName: string;
2272
2272
  slug: string;
2273
2273
  }): Promise<CreateWorktreeResult>;
2274
+ /**
2275
+ * Check out an existing local (or origin-tracking) branch in this worktree.
2276
+ * Does not create a new worktree. Fails if another worktree already has it.
2277
+ */
2278
+ declare function switchWorktreeBranch(opts: {
2279
+ repoPath: string;
2280
+ worktreePath: string;
2281
+ branchName: string;
2282
+ }): Promise<string>;
2274
2283
  declare function removeWorktree(repoPath: string, worktreePath: string, opts?: {
2275
2284
  deleteBranch?: string;
2276
2285
  }): Promise<void>;
@@ -5553,6 +5562,7 @@ declare class Orchestrator {
5553
5562
  title?: string;
5554
5563
  }): Promise<Thread>;
5555
5564
  renameThread(threadRef: string, title: string): Thread;
5565
+ switchThreadBranch(threadRef: string, branchName: string): Promise<Thread>;
5556
5566
  setAttachments(threadRef: string, attachments: Thread['attachments']): Thread;
5557
5567
  /**
5558
5568
  * Stage OS / worktree files into composer attachments (copies external files
@@ -6455,6 +6465,8 @@ interface IpcApi {
6455
6465
  listBranches(repoPath: string, opts?: {
6456
6466
  unmergedOnly?: boolean;
6457
6467
  }): Promise<BranchInfo[]>;
6468
+ /** Check out `branchName` in this thread's worktree. */
6469
+ switchThreadBranch(threadRef: string, branchName: string): Promise<Thread>;
6458
6470
  listPrs(repoPath: string): Promise<PrInfo[]>;
6459
6471
  /** @deprecated Prefer listIssues — agent Linear MCP. */
6460
6472
  listLinearIssues(agent: AgentKind, repoPath: string): Promise<IssueInfo[]>;
@@ -7548,4 +7560,4 @@ declare function pollSlackOutboundWatches(opts?: {
7548
7560
  now?: number;
7549
7561
  }): Promise<void>;
7550
7562
 
7551
- export { ABLETIME_MCP_PATH, ABLETIME_MCP_PM_PATH, ABLETIME_OAUTH_CALLBACK_PATH, ABLETIME_OAUTH_CANCELLED, ABLETIME_OAUTH_LOCAL_CALLBACK, ABLETIME_OAUTH_PORT, ABLETIME_OAUTH_REDIRECT, ABLETIME_OAUTH_RESOURCE, ABLETIME_OAUTH_TOKEN_PREFIX, ABLETIME_ORG_KEY_PREFIX, ABLETIME_PAT_PREFIX, ABLETIME_PM_TOOL_NAMES, AGENT_DONE_CUSTOM_SOUND_EXTENSIONS, AGENT_DONE_CUSTOM_SOUND_MAX_BYTES, AGENT_DONE_SOUNDS, AGENT_GIT_ACTIONS, AGENT_RUNNER_MAX_OLD_SPACE_MB, ATTACHMENTS_DIR, type AbleTimeAssignedIssuesResult, type AbleTimeComment, type AbleTimeCredentialKind, type AbleTimeMcpToolName, AbleTimeOAuthCancelledError, type AbleTimeOrientation, type AbleTimePmToolName, type AbleTimeProject, type AbleTimeTask, type AbleTimeTaskRelationInput, type AbleTimeViewer, type AccountProfile, type ActiveRun, type AddBoardPinInput, type AddStackLayerInput, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentDoneCustomSoundPayload, type AgentDoneSound, type AgentEvent, type AgentGitAction, type AgentKind, type AgentModelCatalog, type AgentModelInfo, type AgentSetupActionResult, type AgentSetupInfo, type AgentSetupKind, type AgentStatus, type AgentTurnInput, type AnthropicCacheControl, type AppSettings, type ApplyIntoMainResult, type AttachCommand, type Autonomy, BAKED_ABLETIME_OAUTH_CLIENT_ID, BAKED_SLACK_RELAY_URL, BRIGHTSY_MCP_ALLOWED_TOOLS, BRIGHTSY_OAUTH_CLIENT_ID, BRIGHTSY_OAUTH_REDIRECT, BRIGHTSY_SUMMARIZE_CONTEXT_TOOL, BUNDLED_LONG_RUNNING_PATH, BUNDLED_SKILL_PREFIX, type BoardPin, type BranchInfo, type BrightsyAccount, type BrightsyChatTarget, type BrightsyChatTargets, type BrightsyCloudConnectAgent, type BrightsyHarnessSettings, type BrightsySession, BrightsySideboardApi, type BrightsyTeamTargets, CHARS_PER_CONTEXT_TOKEN, CHAT_TEXT_SCALES, CHAT_TEXT_SCALE_DEFAULT, CLAUDE_MODEL_CATALOG, CLAUDE_SUMMARY_TIMEOUT_MS, CLI_DIR, CLOUD_COORDINATOR_BUSY_REPLY, CLOUD_COORDINATOR_CANCELED_REPLY, CLOUD_COORDINATOR_INPUT_REQUIRED_REPLY, CLOUD_COORDINATOR_STOPPED_REPLY, CLOUD_COORDINATOR_TIMEOUT_REPLY, CLOUD_ORCHESTRATOR_GOAL, CONTEXT_COMPACT_CHARS, CONTEXT_KEEP_RECENT_CHARS, CONTEXT_KEEP_RECENT_MESSAGES, CONTEXT_MIN_MESSAGES, CONTEXT_REVIEW_PATH, CONVENTION_SETUP_RELPATHS, COORDINATOR_TOOL_PLAYBOOK, CURSOR_SDK_INSTALL_HINT, type CaffeinateHoldState, type ChatTextScale, type ClaudeExtraUsage, type ClaudeHarnessSettings, type ClaudePlanUsage, type ClaudeUsageWindow, type ClaudeUsageWindowId, type CleanupOrphansResult, type CliAgentKind, type CliExecutableSettings, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, type CodeLineRange, type CodeRefInput, type CompactResult, type CompactThresholds, type ComposerFileBuffer, type ConductorSettings, type ConductorWorkspace, type ConnectedBrightsyTeamInfo, type ConventionSetupFile, type CowboyThreadFields, type CreateChatTabInput, type CreateGlobalChatOpts, type CreateScheduledTaskInput, type CreateStackInput, type CreateThreadInput, type CreateWorktreeResult, type CursorAgentUsageSnapshot, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorUsageCost, type CursorWorktreesConfig, DEFAULT_ABLETIME_HOST, DEFAULT_RUN_LOG_TAIL_CHARS, DEFAULT_WORKTREE_SORT, DETACHED_JOBS_DIR, type DefaultsAppSettings, type DefaultsSettingsPatch, type DevAccessRun, type DevPreview, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, type EnsuredReviewGuidelines, type ExpandResult, FAMOUS_SOCCER_TEAMS, FOLLOW_UP_BEHAVIORS, type FastForwardMainResult, type FollowUpBehavior, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GITHUB_GIT_AUTH_MODES, GITHUB_PR_BODY_MAX_CHARS, GITHUB_PR_BODY_SAFE_CHARS, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GhStackStatus, type GitHubIssue, type GitHubIssueComment, type GitHubIssueRelationInput, type GitHubStatus, type GitWorktreeStatus, type GithubGitAuthMode, HARNESS_ENV_KEYS, HISTORY_DISCARDED_TEXT, HISTORY_MAX_COUNT_DEFAULT, HISTORY_MAX_COUNT_MAX, HISTORY_MAX_COUNT_MIN, HISTORY_MAX_DAYS_DEFAULT, HISTORY_MAX_DAYS_MAX, HOME_BOARD_CACHE_TTL_MS, type HarnessId, type HistoryCleanupResult, type HistoryRetentionPlan, type HomeBoardLoaded, type HomeBoardRemoteData, IMPLIED_TICKET_RESOLVE_PROMPT, ISSUE_SOURCE_LABELS, type ImportedAgentDoneSound, type InitStackFromThreadInput, type IntegrationsSettings, type IpcApi, type IssueActivityComment, type IssueAssigneeFilter, type IssueCycleInfo, type IssueInfo, type IssueSource, LEGACY_ATTACHMENTS_DIR, LEGACY_DETACHED_JOBS_DIR, LEGACY_PLAN_FILE_REL, LEGACY_REVIEW_REQUEST_PATH, LIGHT_RECONCILE_THROTTLE_MS, LINEAR_OAUTH_CANCELLED, LINEAR_OAUTH_PORT, LINEAR_OAUTH_REDIRECT, LINEAR_OAUTH_SCOPES, LIVE_TURN_SPAWN_GRACE_MS, LONG_RUNNING_SKILL_COMMAND, type LandPreview, type LandResult, type LinearAssignedIssuesResult, type LinearAssigneeFilter, type LinearComment, type LinearCycle, type LinearIssue, type LinearIssueAttachment, type LinearIssueComment, type LinearIssueRef, type LinearIssueRelation, type LinearIssueRelationInput, type LinearNamedRef, LinearOAuthCancelledError, type LinearProjectRef, type LinearTeam, type LinearTeamsResult, type LinearWorkflowState, type ListIssuesOptions, type ListIssuesResult, type ListPrsOptions, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, type NotifyOrchestratorReason, type NotifyOrchestratorResult, OPTIONAL_SERVICES, OPTIONAL_SERVICE_IDS, ORCHESTRATOR_AGENT_KINDS, type OpenPrStackLayersInput, type OpenStackLayerInput, type OpenStackLayerResult, type OptionalServiceCliStatus, type OptionalServiceId, type OptionalServiceSpec, type OrchestrationQuotaOnLimit, Orchestrator, type OrchestratorAgentKind, type OrchestratorDefaultsSettings, type OrchestratorEvent, type OrchestratorRuntime, type OrphanWorktree, type OutboundTurnCopy, type OutboundTurnSnapshot, PASTE_ATTACH_MIN_CHARS, PASTE_ATTACH_MIN_LINES, PLAN_FILE_NAME, PLAN_FILE_REL, PLAN_MODE_INSTRUCTION, PLAN_MODE_OFF_INSTRUCTION, PLAN_QUESTION_ANSWERS_PREFIX, PORT_RANGE_SIZE, PRESENT_PLAN_REQUIRES_PLAN_MODE, PRESENT_PLAN_TOOL_DESCRIPTION, PROFILE_NOTES_MAX, PR_DETAILS_JSON_FIELDS, type PathRefInput, type PendingPlanQuestions, type PlanQuestion, type PlanQuestionAnswer, type PlanQuestionOption, type PlanToolPartLike, type PortReservation, type PrActor, type PrCheckRun, type PrCommentInfo, type PrCommitInfo, type PrDetails, type PrInfo, type PrMeta, type PrReviewInfo, type PrStack, type PrStackLayer, type PresentedPlan, type ProjectProfileSettings, type PublicAppSettings, type PublicIntegrationsSettings, REPO_REVIEW_NAME, REPO_REVIEW_PATH, REVIEW_LABEL_MAX, REVIEW_REQUEST_NAME, REVIEW_REQUEST_PATH, REVIEW_REQUEST_PREFILL, REVIEW_REQUEST_TEMPLATE, REVIEW_SKILL_NAME, REVIEW_SKILL_PATH, RUN_PORTS_REL, RUN_SCRIPT_DESKTOP_ADOPT_MS, type RepoSettings, type RepoSetupInfo, type RequestReviewResult, type ReservePortRangeOpts, type ResolvedAccountProfile, type ResolvedReviewGuidelines, type ResolvedThreadDefaults, type ResolvedViewerProfile, type ReviewGuidelinesSource, type RunLogSnapshot, type RunMode, type RunScript, type RunScriptPreviewInput, type RunScriptRequest, SEED_FULL_TOOL_MESSAGES, SEED_MAX_CHARS, SESSION_RESET_OCCUPANCY_TOKENS, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, SIDEBOARD_MCP_PROFILE_ENV, SLACK_LISTEN_INPUT_REQUIRED_REPLY, SLACK_LISTEN_STOPPED_REPLY, SLACK_LISTEN_TIMEOUT_REPLY, SLACK_OAUTH_CANCELLED, SLACK_OAUTH_REDIRECT, SLACK_PROGRESS_DELAY_MS, SLACK_PROGRESS_EDIT_MS, SLACK_REPLY_FORMATTING, SLACK_SEEN_REACTION, STDERR_EVENT_MAX_CHARS, STDOUT_EVENT_MAX_CHARS, type ScheduleCreatedBy, type ScheduleWhen, type ScheduledTask, type ScriptHandle, type SessionSeedOptions, type SetupLogSnapshot, type SetupRunResult, type SidebarGitAction, type SideboardMcpProfile, type SkillInfo, type SlackInboundMessage, type SlackListenOptions, type SlackListenStatus, SlackOAuthCancelledError, type SlackOutboundReply, type SlackOutboundWatch, type SlackRelayClientMessage, type SlackRelayClientOptions, SlackRelayHub, type SlackRelayServerHandle, type SlackRelayServerMessage, type SlackRelayServerOptions, type SlackWorkspaceInfo, type SourceType, type SpawnTurnHandle, type SummarizeResult, THINKING_EFFORTS, THINKING_PART_MAX_CHARS, type TaskState, type TeamName, type ThinkingEffort, type Thread, type ThreadAttachment, type ThreadMessage, type ThreadOptionsPatch, type ThreadStatus, type TokenUsage, type ToolPartLike, type TranscriptToolDetail, type TurnCommand, USAGE_ON_LIMIT_VALUES, type UpdateScheduledTaskPatch, type UsageOnLimit, type UsageScope, type ViewerContextWriteResult, type ViewerProfile, WORKTREE_ABLETIME_MCP_TOOLS, WORKTREE_GITHUB_MCP_TOOLS, WORKTREE_LINEAR_MCP_TOOLS, WORKTREE_MCP_TOOLS, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, type WorktreeDirtyStat, type WorktreeListBadge, type WorktreeSortMode, type WorktreeStatKind, ableTimeCredentialKind, ableTimeDependencyTarget, ableTimeOAuthAuthorizeUrl, ableTimeOAuthBouncePage, ableTimeOAuthClientId, ableTimeOAuthLocalBounceUrl, ableTimeOAuthRedirectUri, ableTimeOAuthResource, ableTimeUsesRest, abletimeMcpRequest, abletimeMcpUrl, abletimeToolUsesPm, ackSlackInboundSeen, activeRunPreview, addBoardPin, addPrStackLayer, addStackLayerFromThread, addWorkspace, adoptThread, agentDoneCustomSoundMime, agentDoneSound, agentDoneSoundsDir, agentGitPrompt, alignQueueAttachments, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, annotateDevAccessRuns, appDataDir, appSettingsPath, appendCompactedMessages, appendIndexedGitConfig, appendMessage, appendQueuedItem, applyAgentEvent, applyAgentRunnerHeapEnv, applyAppEnvironment, applyCompaction, applyForwardOccupancy, applyGithubGitAuthEnv, applyPromptCacheTtlEnv, applySystemCaEnv, applyThreadIntoMain, applyTurnUsage, armSchedules, assertAbleTimeCredential, assertAbleTimeMcpCredential, assertOrchestratorCapableAgent, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, attachmentsGitignoreBody, autoArchiveOnMergeEnabled, autoCleanupHistoryEnabled, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAccessTokenNeedsRefresh, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyInjectWorktreeMcpEnabled, brightsyMcpAllowedTools, brightsyMcpServerName, buildBrightsySessionSeed, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildCodeRefAttachment, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildLinearIssueFilter, buildPastedTextAttachment, buildPathRefAttachment, buildReviewRequestAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateHoldPath, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, caffeinateWhileSchedulesEnabled, caffeinateWhileSlackListenEnabled, callAbleTimeTool, canonicalizeRepoPath, captureLoginEnv, captureTurnBaseline, chatTextScale, checkoutPrStackLayer, childEnvWithAppSettings, claimDesktopHost, clampGithubPrBody, clampHistoryMaxCount, clampHistoryMaxDays, classifyRunScriptPreview, classifyWorktreeColumn, classifyWorktreeListBadges, claudeAdapter, claudeChromeEnabled, claudeUsageOverLimitWindows, claudeUserSettingsPath, cleanupArchivedHistory, cleanupOrphanWorktrees, clearAgentDoneCustomSoundFile, clearBoardPins, clearHomeBoardCache, clipAgentEventForPaint, clipThinkingForStore, cloneRepoIntoSideboard, codeRefRangeLabel, codexAdapter, codexSandboxWritableRootsArgs, codexUnattendedGitConfigArgs, coerceOrchestratorAgent, collectTakenTeamSlugs, commandLooksLikeElectron, commentAbleTimeTask, commentGitHubIssue, commentLinearIssue, commitAll, compactArchiveProse, compactPartsForSummaryMessage, compactSummaryPart, computeNextRunAt, conductorBundledBinDir, conductorDbPath, confirmClaudeUsageOverLimitEnabled, confirmLand, connectBrightsyTeam, connectOptionalService, connectSlackToken, connectedOptionalServices, connectedPrSelectors, consumeComposerAttachments, contextTokens, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, countUnpushedVsOrigin, cowboyModeEnabled, createAbleTimePkce, createAbleTimeTask, createChatTab, createEmptyThread, createExistingBranchWorktree, createGitHubIssue, createGlobalChat, createLinearIssue, createLinearPkce, createOrUpdatePr, createPrStack, createSchedule, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, defaultScheduleName, deleteBranchOnPurgeEnabled, deleteSchedule, deleteThreadRecord, deriveTaskState, desktopHostPidPath, detectAgents, detectGhStack, detectLocalMergeConflicts, detectOptionalServiceClis, disconnectAbleTimeConnection, disconnectBrightsyTeam, disconnectLinear, disconnectLinearConnection, disconnectOptionalService, disconnectSlackWorkspace, discoverSkills, dropCachedPrefixOnResume, emptyPublicIntegrations, emptyRunLog, emptySetupLog, encodeBrightsyTarget, endedOnAskUser, enrichPathWithNpmGlobalBin, enrichWorkspacesWithGithub, ensureAbleTimeAccessToken, ensureAbleTimeTask, ensureAgentPath, ensureBrightsyLocalConfigFresh, ensureBrightsyOAuthClientId, ensureCloudCoordinator, ensureConnectedBrightsyTeamTokens, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureReviewGuidelinesFile, ensureReviewRequestFile, ensureReviewSkillFile, ensureSlackCoordinator, ensureSlackDeviceIdentity, ensureWorkspace, estimateMessageChars, estimateOccupancyTokens, estimateThreadChars, examplePrefixedBranch, expandComposerPrompt, extractBrightsyContextSummary, extractGhErrorDetail, extractPendingPlanQuestions, extractPresentedPlan, extractiveSummary, fastForwardMainCheckoutIfSafe, fetchOriginForWorktree, fetchPrHead, finalizeParts, findAgentDoneCustomSoundPath, findConventionSetup, findInvalidCacheControlTtlOrder, findLastBrightsyContextSummary, findLiveThreadForCreate, findLiveThreadForCreateSource, findOrphanWorktrees, findProjectProfileKey, findSlackCoordinator, findThreadByRef, findThreadForStackLayer, fireSchedule, flattenTurnInput, flipLinearRelationType, foldLegacyRolesIntoNotes, followUpBehavior, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAccountProfilePlaybookLine, formatArtifactDirective, formatAskUserNotifyMessage, formatBrightsyFetchError, formatClaudeExtraUsageDetail, formatClaudeUsageCompact, formatClaudeUsageFetchedAt, formatClaudeUsageOverLimitConfirm, formatClaudeUsageOverLimitWait, formatClaudeUsageReset, formatClaudeUsageResetClock, formatClaudeUsageTooltip, formatCloudTurnReply, formatDetachedJobInvoke, formatDevAccessHint, formatFetchError, formatGhLandError, formatGitAuthModeDirective, formatInjectedNoticesForTurn, formatIpcInvokeError, formatIssueToolsDirective, formatIssueToolsReminder, formatLinearDirective, formatLinearReminder, formatLongRunningDirective, formatLongRunningReminder, formatMergePrError, formatMessagesAsTranscript, formatNotifyOrchestratorPrompt, formatOptionalServicesDirective, formatOptionalServicesReminder, formatPlanQuestionAnswers, formatPlanQuestionsForChat, formatPrGateDirective, formatProcessGuideDirective, formatProjectProfilePlaybookLines, formatRateLimitResetHint, formatRenameBranchDirective, formatScheduleWhen, formatScheduledPrompt, formatSlackExternalReplyPrompt, formatSlackInboundPrompt, formatSlackRepliesForTurn, formatSlackReplyContinuePrompt, formatSlackSignedReply, formatSlackTurnReply, formatSlackWorkingText, formatTranscriptMarkdown, formatUiReminder, formatViewerContextDirective, formatViewerContextReminder, formatWorkspaceInventory, formatWorkspaceProfileSuffix, formatWorktreeDirective, formatWorktreeReminder, forwardContextUsage, forwardOccupancyTokens, fromInclusiveInputUsage, getAbleTimeAccessToken, getAbleTimeHost, getAbleTimeOrientation, getAbleTimeTask, getAdapter, getAgentSetupInfo, getBrightsySession, getCaffeinateHold, getClaudePlanUsage, getDefaultAgent, getDefaultEffort, getDefaultFast, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubIssue, getGitHubStatus, getGithubGitAuthMode, getGithubPat, getHomeBoardInputs, getIssueSource, getLinearApiKey, getLinearAuthToken, getLinearIssue, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrForHeadBranch, getPrMeta, getPrStack, getRepoSetupInfo, getRunMode, getRunScript, getSchedule, getSlackWorkspace, getWorktreeDirtyStat, gh, ghHeadRef, ghPrCreateAssigneeArgs, ghRepoSelectArgs, git, gitBranchPrefixSetting, githubAgentGitEnv, githubHttpsInsteadOfEntries, githubRelationEditFlag, globalAgentCwd, groupHomeBoardWorktrees, handleSlackInbound, harnessEnvKey, hasBakedAbleTimeOAuth, hasBakedLinearOAuth, hasBakedSlackOAuth, hasConductorHook, hasConventionSetup, hasCursorWorktreeSetup, hasEnabledSchedules, hasRepoHook, hasWorkspaceHook, hasWorkspaceSettingsToml, healOrchestrationSoccerTitles, historyMaxCount, historyMaxDays, hottestClaudeWindow, httpFetch, importAgentDoneCustomSound, importConductorWorkspace, importConductorWorkspaceAsync, initPrStack, initStackFromThread, initializeGitRepository, inspectGitWorktree, installAgent, installNpmGlobalPackage, installOptionalServiceCli, interruptSlackCoordinatorForInbound, invalidateThreadListCache, invalidateThreadRecord, isAbleTimeConnected, isAbleTimeOAuthCancelled, isAbleTimeRejectedCredential, isAdoptableRunScriptRequest, isAgentDoneSound, isAskUserToolName, isBrightsyConnected, isBrightsyNdjsonLine, isChatTextScale, isCloudCoordinatorThread, isCompactToolName, isConductorBundledCli, isContextCompactDone, isContextCompactInProgress, isCowboyThread, isCursorApiKeyConfigured, isCursorAutoModel, isCursorSdkInstalled, isDefaultishSourceRef, isDesktopHostAlive, isDirty, isGhPrBodyTooLongError, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isHistoryRetentionStub, isHomeBoardThread, isImageFilePath, isInPrStack, isInboundForThisDesktop, isIncompleteTaskState, isInjectedNoticeText, isInjectedOrchMcpName, isInternalAgentStatusText, isIssueSourceConnected, isLinearConnected, isLinearNoneToken, isLinearOAuthCancelled, isOptionalServiceId, isOrchestratorCapableAgent, isOrchestratorThread, isOtherWorktreeListenerCwd, isPidAlive, isPlaceholderBranch, isPlanQuestionAnswersMessage, isPollWrapperToolName, isPrNotMergeableError, isPresentPlanToolName, isPrimaryCheckoutThread, isSelfWrittenRecord, isSessionQuotaLimit, isSetupLastError, isShellToolName, isSideboardScratchPath, isSkillToolName, isSlackCoordinatorThread, isSlackExternalReplyPrompt, isSlackOAuthCancelled, isStaleLastErrorDuringTurn, isSubagentToolName, isSystemStatusThinking, isTerminalTaskState, isThinkingEffort, isThisProcessDesktopHost, isThisWorktreeListenerCwd, isThreadCaffeinated, isThreadRecordFile, isUnclaimedRunScriptRequest, isUsageOnLimit, isWorkspaceScratchPath, issueAttachmentForAbleTimeTask, issueMatchesAssignee, issueSourceLabel, issueTicketFromThread, killDetachedRunTree, killListenersOnPorts, killStaleWorktreeListeners, killableListenerPids, lastAgentReply, lastAssistantMessageText, lastRequestOccupancy, latestPendingPlanQuestions, linearAuthorizationHeader, linearCycleIsActive, linearGraphql, linearOAuthAuthorizeUrl, linearOAuthCredentials, linearRelationCreateInput, linearTicketIdFromThread, listAbleTimeAssignedIssues, listAbleTimeProjects, listAbleTimeTasks, listAgentSetupInfo, listBoardPins, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssueCommentsSince, listGitHubIssues, listGlobalThreads, listIssues, listLinearAssignedIssues, listLinearCommentsSince, listLinearIssues, listLinearIssuesDirect, listLinearIssuesFiltered, listLinearTeamCycles, listLinearTeams, listModelsForAgent, listOpencodeModels, listPrs, listRunScripts, listSchedules, listSlackOutboundWatches, listSlackWorkspaces, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, listenerCwd, liveActivitySummary, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadHomeBoardInputs, loadRepoSettings, loadWorkspaceSettings, loadWorktreeRunPorts, localhostPreviewUrl, locksDir, loginAgent, looksLikeComposerSkillExpansion, looksLikeConversationSummary, looksLikeIncompleteSkillDump, looksLikeSkillBody, lookupSoccerTeam, mapAbleTimeTask, markPrReady, materializeSystemCaBundle, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAllowToolsFromNames, mcpAuthWarnings, mcpStatusThinkingFromClaudeInit, mentionsPrGoal, mergeAgentGitAuthEnv, mergePr, mergePrStack, mergeSetupOutput, mergeSideboardIntoMcpServersJson, mergeUsage, messagePartParentId, messagesForCompactArchive, messagesSinceLastBrightsyContextSummary, moveQueuedItemToFront, needsCoordinatorAction, nextPastedTextName, nextThinkingEffort, nonInteractiveGitProcessEnv, normalizeAbleTimeCredential, normalizeAbleTimeHost, normalizeBrightsyEndpoint, normalizeCodeSelection, normalizeLinearRelationType, normalizeParseResult, normalizeReviewLabel, normalizeServiceOrigin, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, notifyOrchestrator, npmGlobalNodeModules, npmGlobalPrefix, openInSystemTerminal, openPrStackLayers, openStackLayer, opencodeAdapter, optionalServiceConnected, optionalServiceSpec, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originFetchBranch, originGhRepoEnv, outboundReplyFromTurn, packagedDetachedJobPath, parseAbleTimeOAuthCallbackUrl, parseClaudeUsagePayload, parseCursorRunnerLine, parseDevPreview, parseDurationMs, parseForceStopMessage, parseGhStackViewJson, parseGitHubIssueNumber, parseGithubSlugFromRemoteUrl, parseMcpList, parsePlanQuestionsInput, parsePrDetailsView, parseSessionQuotaResetAt, parseSlackRelayClientMessage, parseSlackRelayServerMessage, partsToAssistantText, pastedTextStats, pendingInjectedNotices, pendingSlackExternalReplies, permissionMode, persistPendingFileAttachments, persistVaultKeyInKeychain, planFileAbs, planHistoryAgePurge, planHistoryRetention, planModeTurnInstruction, planQuestionsSignature, pnpmFilterPackage, pollSlackOutboundWatches, posixShellSingleQuote, preferredCursorCostCents, prepareTerminalCommand, prependQueuedItem, previewLand, primaryCheckoutFromLinkedWorktree, promptMentionsBrightsy, pushBranch, readAgentDoneCustomSound, readExistingReviewRequestFile, readKeychainVaultKey, readPlanFile, readRunLog, readSetupLog, readSkillBody, readThread, readViewerContext, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, recordScheduleRun, recordSlackOutboundWatch, refreshBrightsyAccessToken, refreshGitHubAuth, registerBrightsyOAuthClient, registerPackagedUserMcpClients, releaseCaffeinateHoldForThread, releaseDesktopHost, removeBoardPin, removeQueuedItem, removeWorkspace, removeWorktree, repoSlug, requestOccupancy, requestReview, requireAgent, reservePort, reservePortRange, resetGhStackDetectCache, resetGithubAgentTokenMemo, resolveAbleTimeOAuthHost, resolveAccountProfile, resolveAccountProfileFromSettings, resolveAgentExecutable, resolveAgentGitAuthEnv, resolveClaudeExecutable, resolveCodexGitWritableRoots, resolveCommandBinarySync, resolveConductorCursorAgentId, resolveCreateFirstPrompt, resolveCursorModelId, resolveCursorSdkRoot, resolveDefaultBranch, resolveDetachedJobScript, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGhAuthToken, resolveGitBranchPrefix, resolveGitDirsForLockRecovery, resolveGitHubIssueRepo, resolveGithubAgentToken, resolveGithubRepoSlug, resolveLinearCycle, resolveLinearLabel, resolveLinearProject, resolveLinearState, resolveLinearTeam, resolveLoginCommand, resolveNewOrchestratorOptions, resolveNewThreadOptions, resolveOrchChildFollowUp, resolveOrchestratorDefaults, resolvePlanMarkdown, resolvePrSelector, resolvePrSelectors, resolveProjectReviewLabel, resolveQuotaFallbackAgent, resolveRepoRoot, resolveReviewGuidelines, resolveScheduleThreadId, resolveSendFollowUp, resolveSidebarGitPrompt, resolveSlackListenMode, resolveThreadDefaults, resolveThreadEffort, resolveUsageOnLimit, resolveVaultKey, resolveViewerProfile, resolveViewerProfileForRepo, resolveWorktreeStartPoint, reviewLabelForRepo, rewriteAbleTimeError, rewriteLinearError, run, runArchiveScript, runCloudConnect, runConventionSetup, runCursorWorktreeSetup, runScriptPreview, runSetupScript, runSlackListen, runSlackRelayClient, runWorkspaceSetup, sameWorktreePath, sanitizeGitBranchPrefix, sanitizeMcpServerName, saveAbleTimeConnection, saveAppSettings, saveLinearOAuth, saveWorktreeRunPorts, scheduleNeedsCaffeinate, schedulesPath, scrubGithubTokensFromChildEnv, searchAbleTimeTasks, secureFileUnlocksWith, setCaffeinateHold, setHttpFetchImpl, setStatus, setVaultMasterKey, settingsSourceLabel, shiftQueuedItem, shouldAttachPastedText, shouldCompactContext, shouldInjectBrightsyMcp, shouldNotifyOrchestrator, shouldRefreshReviewRequestTemplate, shouldRegisterPresentPlan, shouldRemoveWorktreeOnTeardown, shouldResetSessionForOccupancy, shouldRunHistoryCleanup, shouldRunWorktreeCleanup, shouldStampSetupLastError, showCostEnabled, sideboardHomeDir, sideboardMcpProfile, sideboardReposDir, sideboardWorkspacesDir, skillCommandFromBody, skillCommandFromInput, skillNameFromFrontmatter, slackAppLevelToken, slackArchiveUrl, slackCoordinatorSourceRef, slackListenEnabled, slackOAuthCredentials, slackOAuthResultUrl, slackRelayUrl, sliceRunLogOutput, slimMessagesForUiList, slimThreadForUiList, slugify, spawnAgentTurn, splitForCompaction, splitTurnInputForSystemPrompt, stackAgentDefaultsFrom, stackIdFrom, stackMergeReadiness, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startAbleTimeOAuth, startDevServer, startLinearOAuth, startMcpServer, startOrchestration, startSlackOAuth, startSlackRelayServer, statWorktreePath, stripBrightsyNdjsonNoise, stripNestedElectronEnv, submitPrStack, suggestSlug, sumUsageList, summarizeConversation, switchBrightsyAccount, syncWorkspacesFromThreads, takePendingTurnAttachments, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, taskUrl, thinkingEffortBars, thinkingEffortLabel, thisProcessShouldDrainAgentQueues, threadDisplayLabel, threadFilePath, threadHasCompactedContext, threadLivePath, threadLockPath, threadMayPresentPlan, threadRequestsBrightsyMcp, threadsDir, threadsSharingWorktree, ticketSlugForBranch, toAbleTimeIssueInfo, toGitHubIssueInfo, toPublicAppSettings, toolActivityLine, toolDescription, toolDetail, toolFilePath, totalTokens, trustSystemCertificates, tryReservePort, tryReservePorts, turnCostUsdFromCursorUsage, updateAbleTimeTask, updateAdvancedSettings, updateAgentExecutable, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateCodexSettings, updateDefaultsSettings, updateGitHubIssue, updateIntegrationsSettings, updateLinearIssue, updateOpencodeSettings, updateProjectProfileSettings, updateSchedule, updateThread, usageOnLimit, userClaudeMcpConfigPath, userCursorMcpConfigPath, userMcpNamesToDisable, validateLinearApiKey, verifyAbleTimeConnection, verifyOptionalService, visibleAssistantText, visibleToolRowDetail, waitForPidExit, warmGithubAgentAuth, whichOnPath, withEventParentId, withEventsParentId, withExportedPath, withMaxOldSpaceSize, withThreadLock, workspaceSettingsSourceLabel, worktreeBoardStatus, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreeRunPortsPath, worktreeSlugForTicket, worktreesRoot, wrapReviewSkillMarkdown, writeInjectedMcpConfig, writePlanFile, writeThread, writeViewerContext, writeWorktreeFile };
7563
+ export { ABLETIME_MCP_PATH, ABLETIME_MCP_PM_PATH, ABLETIME_OAUTH_CALLBACK_PATH, ABLETIME_OAUTH_CANCELLED, ABLETIME_OAUTH_LOCAL_CALLBACK, ABLETIME_OAUTH_PORT, ABLETIME_OAUTH_REDIRECT, ABLETIME_OAUTH_RESOURCE, ABLETIME_OAUTH_TOKEN_PREFIX, ABLETIME_ORG_KEY_PREFIX, ABLETIME_PAT_PREFIX, ABLETIME_PM_TOOL_NAMES, AGENT_DONE_CUSTOM_SOUND_EXTENSIONS, AGENT_DONE_CUSTOM_SOUND_MAX_BYTES, AGENT_DONE_SOUNDS, AGENT_GIT_ACTIONS, AGENT_RUNNER_MAX_OLD_SPACE_MB, ATTACHMENTS_DIR, type AbleTimeAssignedIssuesResult, type AbleTimeComment, type AbleTimeCredentialKind, type AbleTimeMcpToolName, AbleTimeOAuthCancelledError, type AbleTimeOrientation, type AbleTimePmToolName, type AbleTimeProject, type AbleTimeTask, type AbleTimeTaskRelationInput, type AbleTimeViewer, type AccountProfile, type ActiveRun, type AddBoardPinInput, type AddStackLayerInput, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentDoneCustomSoundPayload, type AgentDoneSound, type AgentEvent, type AgentGitAction, type AgentKind, type AgentModelCatalog, type AgentModelInfo, type AgentSetupActionResult, type AgentSetupInfo, type AgentSetupKind, type AgentStatus, type AgentTurnInput, type AnthropicCacheControl, type AppSettings, type ApplyIntoMainResult, type AttachCommand, type Autonomy, BAKED_ABLETIME_OAUTH_CLIENT_ID, BAKED_SLACK_RELAY_URL, BRIGHTSY_MCP_ALLOWED_TOOLS, BRIGHTSY_OAUTH_CLIENT_ID, BRIGHTSY_OAUTH_REDIRECT, BRIGHTSY_SUMMARIZE_CONTEXT_TOOL, BUNDLED_LONG_RUNNING_PATH, BUNDLED_SKILL_PREFIX, type BoardPin, type BranchInfo, type BrightsyAccount, type BrightsyChatTarget, type BrightsyChatTargets, type BrightsyCloudConnectAgent, type BrightsyHarnessSettings, type BrightsySession, BrightsySideboardApi, type BrightsyTeamTargets, CHARS_PER_CONTEXT_TOKEN, CHAT_TEXT_SCALES, CHAT_TEXT_SCALE_DEFAULT, CLAUDE_MODEL_CATALOG, CLAUDE_SUMMARY_TIMEOUT_MS, CLI_DIR, CLOUD_COORDINATOR_BUSY_REPLY, CLOUD_COORDINATOR_CANCELED_REPLY, CLOUD_COORDINATOR_INPUT_REQUIRED_REPLY, CLOUD_COORDINATOR_STOPPED_REPLY, CLOUD_COORDINATOR_TIMEOUT_REPLY, CLOUD_ORCHESTRATOR_GOAL, CONTEXT_COMPACT_CHARS, CONTEXT_KEEP_RECENT_CHARS, CONTEXT_KEEP_RECENT_MESSAGES, CONTEXT_MIN_MESSAGES, CONTEXT_REVIEW_PATH, CONVENTION_SETUP_RELPATHS, COORDINATOR_TOOL_PLAYBOOK, CURSOR_SDK_INSTALL_HINT, type CaffeinateHoldState, type ChatTextScale, type ClaudeExtraUsage, type ClaudeHarnessSettings, type ClaudePlanUsage, type ClaudeUsageWindow, type ClaudeUsageWindowId, type CleanupOrphansResult, type CliAgentKind, type CliExecutableSettings, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, type CodeLineRange, type CodeRefInput, type CompactResult, type CompactThresholds, type ComposerFileBuffer, type ConductorSettings, type ConductorWorkspace, type ConnectedBrightsyTeamInfo, type ConventionSetupFile, type CowboyThreadFields, type CreateChatTabInput, type CreateGlobalChatOpts, type CreateScheduledTaskInput, type CreateStackInput, type CreateThreadInput, type CreateWorktreeResult, type CursorAgentUsageSnapshot, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorUsageCost, type CursorWorktreesConfig, DEFAULT_ABLETIME_HOST, DEFAULT_RUN_LOG_TAIL_CHARS, DEFAULT_WORKTREE_SORT, DETACHED_JOBS_DIR, type DefaultsAppSettings, type DefaultsSettingsPatch, type DevAccessRun, type DevPreview, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, type EnsuredReviewGuidelines, type ExpandResult, FAMOUS_SOCCER_TEAMS, FOLLOW_UP_BEHAVIORS, type FastForwardMainResult, type FollowUpBehavior, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GITHUB_GIT_AUTH_MODES, GITHUB_PR_BODY_MAX_CHARS, GITHUB_PR_BODY_SAFE_CHARS, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GhStackStatus, type GitHubIssue, type GitHubIssueComment, type GitHubIssueRelationInput, type GitHubStatus, type GitWorktreeStatus, type GithubGitAuthMode, HARNESS_ENV_KEYS, HISTORY_DISCARDED_TEXT, HISTORY_MAX_COUNT_DEFAULT, HISTORY_MAX_COUNT_MAX, HISTORY_MAX_COUNT_MIN, HISTORY_MAX_DAYS_DEFAULT, HISTORY_MAX_DAYS_MAX, HOME_BOARD_CACHE_TTL_MS, type HarnessId, type HistoryCleanupResult, type HistoryRetentionPlan, type HomeBoardLoaded, type HomeBoardRemoteData, IMPLIED_TICKET_RESOLVE_PROMPT, ISSUE_SOURCE_LABELS, type ImportedAgentDoneSound, type InitStackFromThreadInput, type IntegrationsSettings, type IpcApi, type IssueActivityComment, type IssueAssigneeFilter, type IssueCycleInfo, type IssueInfo, type IssueSource, LEGACY_ATTACHMENTS_DIR, LEGACY_DETACHED_JOBS_DIR, LEGACY_PLAN_FILE_REL, LEGACY_REVIEW_REQUEST_PATH, LIGHT_RECONCILE_THROTTLE_MS, LINEAR_OAUTH_CANCELLED, LINEAR_OAUTH_PORT, LINEAR_OAUTH_REDIRECT, LINEAR_OAUTH_SCOPES, LIVE_TURN_SPAWN_GRACE_MS, LONG_RUNNING_SKILL_COMMAND, type LandPreview, type LandResult, type LinearAssignedIssuesResult, type LinearAssigneeFilter, type LinearComment, type LinearCycle, type LinearIssue, type LinearIssueAttachment, type LinearIssueComment, type LinearIssueRef, type LinearIssueRelation, type LinearIssueRelationInput, type LinearNamedRef, LinearOAuthCancelledError, type LinearProjectRef, type LinearTeam, type LinearTeamsResult, type LinearWorkflowState, type ListIssuesOptions, type ListIssuesResult, type ListPrsOptions, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, type NotifyOrchestratorReason, type NotifyOrchestratorResult, OPTIONAL_SERVICES, OPTIONAL_SERVICE_IDS, ORCHESTRATOR_AGENT_KINDS, type OpenPrStackLayersInput, type OpenStackLayerInput, type OpenStackLayerResult, type OptionalServiceCliStatus, type OptionalServiceId, type OptionalServiceSpec, type OrchestrationQuotaOnLimit, Orchestrator, type OrchestratorAgentKind, type OrchestratorDefaultsSettings, type OrchestratorEvent, type OrchestratorRuntime, type OrphanWorktree, type OutboundTurnCopy, type OutboundTurnSnapshot, PASTE_ATTACH_MIN_CHARS, PASTE_ATTACH_MIN_LINES, PLAN_FILE_NAME, PLAN_FILE_REL, PLAN_MODE_INSTRUCTION, PLAN_MODE_OFF_INSTRUCTION, PLAN_QUESTION_ANSWERS_PREFIX, PORT_RANGE_SIZE, PRESENT_PLAN_REQUIRES_PLAN_MODE, PRESENT_PLAN_TOOL_DESCRIPTION, PROFILE_NOTES_MAX, PR_DETAILS_JSON_FIELDS, type PathRefInput, type PendingPlanQuestions, type PlanQuestion, type PlanQuestionAnswer, type PlanQuestionOption, type PlanToolPartLike, type PortReservation, type PrActor, type PrCheckRun, type PrCommentInfo, type PrCommitInfo, type PrDetails, type PrInfo, type PrMeta, type PrReviewInfo, type PrStack, type PrStackLayer, type PresentedPlan, type ProjectProfileSettings, type PublicAppSettings, type PublicIntegrationsSettings, REPO_REVIEW_NAME, REPO_REVIEW_PATH, REVIEW_LABEL_MAX, REVIEW_REQUEST_NAME, REVIEW_REQUEST_PATH, REVIEW_REQUEST_PREFILL, REVIEW_REQUEST_TEMPLATE, REVIEW_SKILL_NAME, REVIEW_SKILL_PATH, RUN_PORTS_REL, RUN_SCRIPT_DESKTOP_ADOPT_MS, type RepoSettings, type RepoSetupInfo, type RequestReviewResult, type ReservePortRangeOpts, type ResolvedAccountProfile, type ResolvedReviewGuidelines, type ResolvedThreadDefaults, type ResolvedViewerProfile, type ReviewGuidelinesSource, type RunLogSnapshot, type RunMode, type RunScript, type RunScriptPreviewInput, type RunScriptRequest, SEED_FULL_TOOL_MESSAGES, SEED_MAX_CHARS, SESSION_RESET_OCCUPANCY_TOKENS, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, SIDEBOARD_MCP_PROFILE_ENV, SLACK_LISTEN_INPUT_REQUIRED_REPLY, SLACK_LISTEN_STOPPED_REPLY, SLACK_LISTEN_TIMEOUT_REPLY, SLACK_OAUTH_CANCELLED, SLACK_OAUTH_REDIRECT, SLACK_PROGRESS_DELAY_MS, SLACK_PROGRESS_EDIT_MS, SLACK_REPLY_FORMATTING, SLACK_SEEN_REACTION, STDERR_EVENT_MAX_CHARS, STDOUT_EVENT_MAX_CHARS, type ScheduleCreatedBy, type ScheduleWhen, type ScheduledTask, type ScriptHandle, type SessionSeedOptions, type SetupLogSnapshot, type SetupRunResult, type SidebarGitAction, type SideboardMcpProfile, type SkillInfo, type SlackInboundMessage, type SlackListenOptions, type SlackListenStatus, SlackOAuthCancelledError, type SlackOutboundReply, type SlackOutboundWatch, type SlackRelayClientMessage, type SlackRelayClientOptions, SlackRelayHub, type SlackRelayServerHandle, type SlackRelayServerMessage, type SlackRelayServerOptions, type SlackWorkspaceInfo, type SourceType, type SpawnTurnHandle, type SummarizeResult, THINKING_EFFORTS, THINKING_PART_MAX_CHARS, type TaskState, type TeamName, type ThinkingEffort, type Thread, type ThreadAttachment, type ThreadMessage, type ThreadOptionsPatch, type ThreadStatus, type TokenUsage, type ToolPartLike, type TranscriptToolDetail, type TurnCommand, USAGE_ON_LIMIT_VALUES, type UpdateScheduledTaskPatch, type UsageOnLimit, type UsageScope, type ViewerContextWriteResult, type ViewerProfile, WORKTREE_ABLETIME_MCP_TOOLS, WORKTREE_GITHUB_MCP_TOOLS, WORKTREE_LINEAR_MCP_TOOLS, WORKTREE_MCP_TOOLS, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, type WorktreeDirtyStat, type WorktreeListBadge, type WorktreeSortMode, type WorktreeStatKind, ableTimeCredentialKind, ableTimeDependencyTarget, ableTimeOAuthAuthorizeUrl, ableTimeOAuthBouncePage, ableTimeOAuthClientId, ableTimeOAuthLocalBounceUrl, ableTimeOAuthRedirectUri, ableTimeOAuthResource, ableTimeUsesRest, abletimeMcpRequest, abletimeMcpUrl, abletimeToolUsesPm, ackSlackInboundSeen, activeRunPreview, addBoardPin, addPrStackLayer, addStackLayerFromThread, addWorkspace, adoptThread, agentDoneCustomSoundMime, agentDoneSound, agentDoneSoundsDir, agentGitPrompt, alignQueueAttachments, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, annotateDevAccessRuns, appDataDir, appSettingsPath, appendCompactedMessages, appendIndexedGitConfig, appendMessage, appendQueuedItem, applyAgentEvent, applyAgentRunnerHeapEnv, applyAppEnvironment, applyCompaction, applyForwardOccupancy, applyGithubGitAuthEnv, applyPromptCacheTtlEnv, applySystemCaEnv, applyThreadIntoMain, applyTurnUsage, armSchedules, assertAbleTimeCredential, assertAbleTimeMcpCredential, assertOrchestratorCapableAgent, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, attachmentsGitignoreBody, autoArchiveOnMergeEnabled, autoCleanupHistoryEnabled, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAccessTokenNeedsRefresh, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyInjectWorktreeMcpEnabled, brightsyMcpAllowedTools, brightsyMcpServerName, buildBrightsySessionSeed, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildCodeRefAttachment, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildLinearIssueFilter, buildPastedTextAttachment, buildPathRefAttachment, buildReviewRequestAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateHoldPath, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, caffeinateWhileSchedulesEnabled, caffeinateWhileSlackListenEnabled, callAbleTimeTool, canonicalizeRepoPath, captureLoginEnv, captureTurnBaseline, chatTextScale, checkoutPrStackLayer, childEnvWithAppSettings, claimDesktopHost, clampGithubPrBody, clampHistoryMaxCount, clampHistoryMaxDays, classifyRunScriptPreview, classifyWorktreeColumn, classifyWorktreeListBadges, claudeAdapter, claudeChromeEnabled, claudeUsageOverLimitWindows, claudeUserSettingsPath, cleanupArchivedHistory, cleanupOrphanWorktrees, clearAgentDoneCustomSoundFile, clearBoardPins, clearHomeBoardCache, clipAgentEventForPaint, clipThinkingForStore, cloneRepoIntoSideboard, codeRefRangeLabel, codexAdapter, codexSandboxWritableRootsArgs, codexUnattendedGitConfigArgs, coerceOrchestratorAgent, collectTakenTeamSlugs, commandLooksLikeElectron, commentAbleTimeTask, commentGitHubIssue, commentLinearIssue, commitAll, compactArchiveProse, compactPartsForSummaryMessage, compactSummaryPart, computeNextRunAt, conductorBundledBinDir, conductorDbPath, confirmClaudeUsageOverLimitEnabled, confirmLand, connectBrightsyTeam, connectOptionalService, connectSlackToken, connectedOptionalServices, connectedPrSelectors, consumeComposerAttachments, contextTokens, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, countUnpushedVsOrigin, cowboyModeEnabled, createAbleTimePkce, createAbleTimeTask, createChatTab, createEmptyThread, createExistingBranchWorktree, createGitHubIssue, createGlobalChat, createLinearIssue, createLinearPkce, createOrUpdatePr, createPrStack, createSchedule, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, defaultScheduleName, deleteBranchOnPurgeEnabled, deleteSchedule, deleteThreadRecord, deriveTaskState, desktopHostPidPath, detectAgents, detectGhStack, detectLocalMergeConflicts, detectOptionalServiceClis, disconnectAbleTimeConnection, disconnectBrightsyTeam, disconnectLinear, disconnectLinearConnection, disconnectOptionalService, disconnectSlackWorkspace, discoverSkills, dropCachedPrefixOnResume, emptyPublicIntegrations, emptyRunLog, emptySetupLog, encodeBrightsyTarget, endedOnAskUser, enrichPathWithNpmGlobalBin, enrichWorkspacesWithGithub, ensureAbleTimeAccessToken, ensureAbleTimeTask, ensureAgentPath, ensureBrightsyLocalConfigFresh, ensureBrightsyOAuthClientId, ensureCloudCoordinator, ensureConnectedBrightsyTeamTokens, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureReviewGuidelinesFile, ensureReviewRequestFile, ensureReviewSkillFile, ensureSlackCoordinator, ensureSlackDeviceIdentity, ensureWorkspace, estimateMessageChars, estimateOccupancyTokens, estimateThreadChars, examplePrefixedBranch, expandComposerPrompt, extractBrightsyContextSummary, extractGhErrorDetail, extractPendingPlanQuestions, extractPresentedPlan, extractiveSummary, fastForwardMainCheckoutIfSafe, fetchOriginForWorktree, fetchPrHead, finalizeParts, findAgentDoneCustomSoundPath, findConventionSetup, findInvalidCacheControlTtlOrder, findLastBrightsyContextSummary, findLiveThreadForCreate, findLiveThreadForCreateSource, findOrphanWorktrees, findProjectProfileKey, findSlackCoordinator, findThreadByRef, findThreadForStackLayer, fireSchedule, flattenTurnInput, flipLinearRelationType, foldLegacyRolesIntoNotes, followUpBehavior, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAccountProfilePlaybookLine, formatArtifactDirective, formatAskUserNotifyMessage, formatBrightsyFetchError, formatClaudeExtraUsageDetail, formatClaudeUsageCompact, formatClaudeUsageFetchedAt, formatClaudeUsageOverLimitConfirm, formatClaudeUsageOverLimitWait, formatClaudeUsageReset, formatClaudeUsageResetClock, formatClaudeUsageTooltip, formatCloudTurnReply, formatDetachedJobInvoke, formatDevAccessHint, formatFetchError, formatGhLandError, formatGitAuthModeDirective, formatInjectedNoticesForTurn, formatIpcInvokeError, formatIssueToolsDirective, formatIssueToolsReminder, formatLinearDirective, formatLinearReminder, formatLongRunningDirective, formatLongRunningReminder, formatMergePrError, formatMessagesAsTranscript, formatNotifyOrchestratorPrompt, formatOptionalServicesDirective, formatOptionalServicesReminder, formatPlanQuestionAnswers, formatPlanQuestionsForChat, formatPrGateDirective, formatProcessGuideDirective, formatProjectProfilePlaybookLines, formatRateLimitResetHint, formatRenameBranchDirective, formatScheduleWhen, formatScheduledPrompt, formatSlackExternalReplyPrompt, formatSlackInboundPrompt, formatSlackRepliesForTurn, formatSlackReplyContinuePrompt, formatSlackSignedReply, formatSlackTurnReply, formatSlackWorkingText, formatTranscriptMarkdown, formatUiReminder, formatViewerContextDirective, formatViewerContextReminder, formatWorkspaceInventory, formatWorkspaceProfileSuffix, formatWorktreeDirective, formatWorktreeReminder, forwardContextUsage, forwardOccupancyTokens, fromInclusiveInputUsage, getAbleTimeAccessToken, getAbleTimeHost, getAbleTimeOrientation, getAbleTimeTask, getAdapter, getAgentSetupInfo, getBrightsySession, getCaffeinateHold, getClaudePlanUsage, getDefaultAgent, getDefaultEffort, getDefaultFast, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubIssue, getGitHubStatus, getGithubGitAuthMode, getGithubPat, getHomeBoardInputs, getIssueSource, getLinearApiKey, getLinearAuthToken, getLinearIssue, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrForHeadBranch, getPrMeta, getPrStack, getRepoSetupInfo, getRunMode, getRunScript, getSchedule, getSlackWorkspace, getWorktreeDirtyStat, gh, ghHeadRef, ghPrCreateAssigneeArgs, ghRepoSelectArgs, git, gitBranchPrefixSetting, githubAgentGitEnv, githubHttpsInsteadOfEntries, githubRelationEditFlag, globalAgentCwd, groupHomeBoardWorktrees, handleSlackInbound, harnessEnvKey, hasBakedAbleTimeOAuth, hasBakedLinearOAuth, hasBakedSlackOAuth, hasConductorHook, hasConventionSetup, hasCursorWorktreeSetup, hasEnabledSchedules, hasRepoHook, hasWorkspaceHook, hasWorkspaceSettingsToml, healOrchestrationSoccerTitles, historyMaxCount, historyMaxDays, hottestClaudeWindow, httpFetch, importAgentDoneCustomSound, importConductorWorkspace, importConductorWorkspaceAsync, initPrStack, initStackFromThread, initializeGitRepository, inspectGitWorktree, installAgent, installNpmGlobalPackage, installOptionalServiceCli, interruptSlackCoordinatorForInbound, invalidateThreadListCache, invalidateThreadRecord, isAbleTimeConnected, isAbleTimeOAuthCancelled, isAbleTimeRejectedCredential, isAdoptableRunScriptRequest, isAgentDoneSound, isAskUserToolName, isBrightsyConnected, isBrightsyNdjsonLine, isChatTextScale, isCloudCoordinatorThread, isCompactToolName, isConductorBundledCli, isContextCompactDone, isContextCompactInProgress, isCowboyThread, isCursorApiKeyConfigured, isCursorAutoModel, isCursorSdkInstalled, isDefaultishSourceRef, isDesktopHostAlive, isDirty, isGhPrBodyTooLongError, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isHistoryRetentionStub, isHomeBoardThread, isImageFilePath, isInPrStack, isInboundForThisDesktop, isIncompleteTaskState, isInjectedNoticeText, isInjectedOrchMcpName, isInternalAgentStatusText, isIssueSourceConnected, isLinearConnected, isLinearNoneToken, isLinearOAuthCancelled, isOptionalServiceId, isOrchestratorCapableAgent, isOrchestratorThread, isOtherWorktreeListenerCwd, isPidAlive, isPlaceholderBranch, isPlanQuestionAnswersMessage, isPollWrapperToolName, isPrNotMergeableError, isPresentPlanToolName, isPrimaryCheckoutThread, isSelfWrittenRecord, isSessionQuotaLimit, isSetupLastError, isShellToolName, isSideboardScratchPath, isSkillToolName, isSlackCoordinatorThread, isSlackExternalReplyPrompt, isSlackOAuthCancelled, isStaleLastErrorDuringTurn, isSubagentToolName, isSystemStatusThinking, isTerminalTaskState, isThinkingEffort, isThisProcessDesktopHost, isThisWorktreeListenerCwd, isThreadCaffeinated, isThreadRecordFile, isUnclaimedRunScriptRequest, isUsageOnLimit, isWorkspaceScratchPath, issueAttachmentForAbleTimeTask, issueMatchesAssignee, issueSourceLabel, issueTicketFromThread, killDetachedRunTree, killListenersOnPorts, killStaleWorktreeListeners, killableListenerPids, lastAgentReply, lastAssistantMessageText, lastRequestOccupancy, latestPendingPlanQuestions, linearAuthorizationHeader, linearCycleIsActive, linearGraphql, linearOAuthAuthorizeUrl, linearOAuthCredentials, linearRelationCreateInput, linearTicketIdFromThread, listAbleTimeAssignedIssues, listAbleTimeProjects, listAbleTimeTasks, listAgentSetupInfo, listBoardPins, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssueCommentsSince, listGitHubIssues, listGlobalThreads, listIssues, listLinearAssignedIssues, listLinearCommentsSince, listLinearIssues, listLinearIssuesDirect, listLinearIssuesFiltered, listLinearTeamCycles, listLinearTeams, listModelsForAgent, listOpencodeModels, listPrs, listRunScripts, listSchedules, listSlackOutboundWatches, listSlackWorkspaces, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, listenerCwd, liveActivitySummary, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadHomeBoardInputs, loadRepoSettings, loadWorkspaceSettings, loadWorktreeRunPorts, localhostPreviewUrl, locksDir, loginAgent, looksLikeComposerSkillExpansion, looksLikeConversationSummary, looksLikeIncompleteSkillDump, looksLikeSkillBody, lookupSoccerTeam, mapAbleTimeTask, markPrReady, materializeSystemCaBundle, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAllowToolsFromNames, mcpAuthWarnings, mcpStatusThinkingFromClaudeInit, mentionsPrGoal, mergeAgentGitAuthEnv, mergePr, mergePrStack, mergeSetupOutput, mergeSideboardIntoMcpServersJson, mergeUsage, messagePartParentId, messagesForCompactArchive, messagesSinceLastBrightsyContextSummary, moveQueuedItemToFront, needsCoordinatorAction, nextPastedTextName, nextThinkingEffort, nonInteractiveGitProcessEnv, normalizeAbleTimeCredential, normalizeAbleTimeHost, normalizeBrightsyEndpoint, normalizeCodeSelection, normalizeLinearRelationType, normalizeParseResult, normalizeReviewLabel, normalizeServiceOrigin, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, notifyOrchestrator, npmGlobalNodeModules, npmGlobalPrefix, openInSystemTerminal, openPrStackLayers, openStackLayer, opencodeAdapter, optionalServiceConnected, optionalServiceSpec, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originFetchBranch, originGhRepoEnv, outboundReplyFromTurn, packagedDetachedJobPath, parseAbleTimeOAuthCallbackUrl, parseClaudeUsagePayload, parseCursorRunnerLine, parseDevPreview, parseDurationMs, parseForceStopMessage, parseGhStackViewJson, parseGitHubIssueNumber, parseGithubSlugFromRemoteUrl, parseMcpList, parsePlanQuestionsInput, parsePrDetailsView, parseSessionQuotaResetAt, parseSlackRelayClientMessage, parseSlackRelayServerMessage, partsToAssistantText, pastedTextStats, pendingInjectedNotices, pendingSlackExternalReplies, permissionMode, persistPendingFileAttachments, persistVaultKeyInKeychain, planFileAbs, planHistoryAgePurge, planHistoryRetention, planModeTurnInstruction, planQuestionsSignature, pnpmFilterPackage, pollSlackOutboundWatches, posixShellSingleQuote, preferredCursorCostCents, prepareTerminalCommand, prependQueuedItem, previewLand, primaryCheckoutFromLinkedWorktree, promptMentionsBrightsy, pushBranch, readAgentDoneCustomSound, readExistingReviewRequestFile, readKeychainVaultKey, readPlanFile, readRunLog, readSetupLog, readSkillBody, readThread, readViewerContext, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, recordScheduleRun, recordSlackOutboundWatch, refreshBrightsyAccessToken, refreshGitHubAuth, registerBrightsyOAuthClient, registerPackagedUserMcpClients, releaseCaffeinateHoldForThread, releaseDesktopHost, removeBoardPin, removeQueuedItem, removeWorkspace, removeWorktree, repoSlug, requestOccupancy, requestReview, requireAgent, reservePort, reservePortRange, resetGhStackDetectCache, resetGithubAgentTokenMemo, resolveAbleTimeOAuthHost, resolveAccountProfile, resolveAccountProfileFromSettings, resolveAgentExecutable, resolveAgentGitAuthEnv, resolveClaudeExecutable, resolveCodexGitWritableRoots, resolveCommandBinarySync, resolveConductorCursorAgentId, resolveCreateFirstPrompt, resolveCursorModelId, resolveCursorSdkRoot, resolveDefaultBranch, resolveDetachedJobScript, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGhAuthToken, resolveGitBranchPrefix, resolveGitDirsForLockRecovery, resolveGitHubIssueRepo, resolveGithubAgentToken, resolveGithubRepoSlug, resolveLinearCycle, resolveLinearLabel, resolveLinearProject, resolveLinearState, resolveLinearTeam, resolveLoginCommand, resolveNewOrchestratorOptions, resolveNewThreadOptions, resolveOrchChildFollowUp, resolveOrchestratorDefaults, resolvePlanMarkdown, resolvePrSelector, resolvePrSelectors, resolveProjectReviewLabel, resolveQuotaFallbackAgent, resolveRepoRoot, resolveReviewGuidelines, resolveScheduleThreadId, resolveSendFollowUp, resolveSidebarGitPrompt, resolveSlackListenMode, resolveThreadDefaults, resolveThreadEffort, resolveUsageOnLimit, resolveVaultKey, resolveViewerProfile, resolveViewerProfileForRepo, resolveWorktreeStartPoint, reviewLabelForRepo, rewriteAbleTimeError, rewriteLinearError, run, runArchiveScript, runCloudConnect, runConventionSetup, runCursorWorktreeSetup, runScriptPreview, runSetupScript, runSlackListen, runSlackRelayClient, runWorkspaceSetup, sameWorktreePath, sanitizeGitBranchPrefix, sanitizeMcpServerName, saveAbleTimeConnection, saveAppSettings, saveLinearOAuth, saveWorktreeRunPorts, scheduleNeedsCaffeinate, schedulesPath, scrubGithubTokensFromChildEnv, searchAbleTimeTasks, secureFileUnlocksWith, setCaffeinateHold, setHttpFetchImpl, setStatus, setVaultMasterKey, settingsSourceLabel, shiftQueuedItem, shouldAttachPastedText, shouldCompactContext, shouldInjectBrightsyMcp, shouldNotifyOrchestrator, shouldRefreshReviewRequestTemplate, shouldRegisterPresentPlan, shouldRemoveWorktreeOnTeardown, shouldResetSessionForOccupancy, shouldRunHistoryCleanup, shouldRunWorktreeCleanup, shouldStampSetupLastError, showCostEnabled, sideboardHomeDir, sideboardMcpProfile, sideboardReposDir, sideboardWorkspacesDir, skillCommandFromBody, skillCommandFromInput, skillNameFromFrontmatter, slackAppLevelToken, slackArchiveUrl, slackCoordinatorSourceRef, slackListenEnabled, slackOAuthCredentials, slackOAuthResultUrl, slackRelayUrl, sliceRunLogOutput, slimMessagesForUiList, slimThreadForUiList, slugify, spawnAgentTurn, splitForCompaction, splitTurnInputForSystemPrompt, stackAgentDefaultsFrom, stackIdFrom, stackMergeReadiness, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startAbleTimeOAuth, startDevServer, startLinearOAuth, startMcpServer, startOrchestration, startSlackOAuth, startSlackRelayServer, statWorktreePath, stripBrightsyNdjsonNoise, stripNestedElectronEnv, submitPrStack, suggestSlug, sumUsageList, summarizeConversation, switchBrightsyAccount, switchWorktreeBranch, syncWorkspacesFromThreads, takePendingTurnAttachments, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, taskUrl, thinkingEffortBars, thinkingEffortLabel, thisProcessShouldDrainAgentQueues, threadDisplayLabel, threadFilePath, threadHasCompactedContext, threadLivePath, threadLockPath, threadMayPresentPlan, threadRequestsBrightsyMcp, threadsDir, threadsSharingWorktree, ticketSlugForBranch, toAbleTimeIssueInfo, toGitHubIssueInfo, toPublicAppSettings, toolActivityLine, toolDescription, toolDetail, toolFilePath, totalTokens, trustSystemCertificates, tryReservePort, tryReservePorts, turnCostUsdFromCursorUsage, updateAbleTimeTask, updateAdvancedSettings, updateAgentExecutable, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateCodexSettings, updateDefaultsSettings, updateGitHubIssue, updateIntegrationsSettings, updateLinearIssue, updateOpencodeSettings, updateProjectProfileSettings, updateSchedule, updateThread, usageOnLimit, userClaudeMcpConfigPath, userCursorMcpConfigPath, userMcpNamesToDisable, validateLinearApiKey, verifyAbleTimeConnection, verifyOptionalService, visibleAssistantText, visibleToolRowDetail, waitForPidExit, warmGithubAgentAuth, whichOnPath, withEventParentId, withEventsParentId, withExportedPath, withMaxOldSpaceSize, withThreadLock, workspaceSettingsSourceLabel, worktreeBoardStatus, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreeRunPortsPath, worktreeSlugForTicket, worktreesRoot, wrapReviewSkillMarkdown, writeInjectedMcpConfig, writePlanFile, writeThread, writeViewerContext, writeWorktreeFile };
package/dist/index.js CHANGED
@@ -339,7 +339,7 @@ import {
339
339
  worktreeRunPortsPath,
340
340
  wrapReviewSkillMarkdown,
341
341
  writeWorktreeFile
342
- } from "./chunk-GZRS5QVL.js";
342
+ } from "./chunk-Y7CS2WGJ.js";
343
343
  import {
344
344
  LEGACY_PLAN_FILE_REL,
345
345
  PLAN_FILE_NAME,
@@ -478,7 +478,7 @@ import {
478
478
  withEventParentId,
479
479
  withEventsParentId,
480
480
  writeInjectedMcpConfig
481
- } from "./chunk-MLB5CFUP.js";
481
+ } from "./chunk-R4DWUBOL.js";
482
482
  import {
483
483
  CLOUD_COORDINATOR_BUSY_REPLY,
484
484
  CLOUD_COORDINATOR_CANCELED_REPLY,
@@ -524,7 +524,7 @@ import {
524
524
  stageBuffersAsAttachments,
525
525
  syncWorkspacesFromThreads,
526
526
  takenTeamSlugsForOrchestration
527
- } from "./chunk-JUYD2YUC.js";
527
+ } from "./chunk-BYRZS2S2.js";
528
528
  import {
529
529
  FAMOUS_SOCCER_TEAMS,
530
530
  GITHUB_PR_BODY_MAX_CHARS,
@@ -616,6 +616,7 @@ import {
616
616
  stackMergeReadiness,
617
617
  submitPrStack,
618
618
  suggestSlug,
619
+ switchWorktreeBranch,
619
620
  threadDisplayLabel,
620
621
  ticketSlugForBranch,
621
622
  warmGithubAgentAuth,
@@ -623,7 +624,7 @@ import {
623
624
  worktreeDisplayLabelForGroup,
624
625
  worktreeNameFromPath,
625
626
  worktreeSlugForTicket
626
- } from "./chunk-PLMMPA6A.js";
627
+ } from "./chunk-63YSFXLT.js";
627
628
  import {
628
629
  ATTACHMENTS_DIR,
629
630
  CLI_DIR,
@@ -3974,7 +3975,7 @@ async function continueSourceThread(threadId, prompt) {
3974
3975
  await continueOnReply(threadId, prompt);
3975
3976
  return;
3976
3977
  }
3977
- const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-PJCQSVLY.js");
3978
+ const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-LWADJQTN.js");
3978
3979
  await getOrchestrator2().send(threadId, prompt);
3979
3980
  } catch {
3980
3981
  }
@@ -10471,6 +10472,7 @@ export {
10471
10472
  sumUsageList,
10472
10473
  summarizeConversation,
10473
10474
  switchBrightsyAccount,
10475
+ switchWorktreeBranch,
10474
10476
  syncWorkspacesFromThreads,
10475
10477
  takePendingTurnAttachments,
10476
10478
  takenTeamSlugsForChatTab,
@@ -6275,6 +6275,7 @@ __export(worktree_exports, {
6275
6275
  resolveWorktreeStartPoint: () => resolveWorktreeStartPoint,
6276
6276
  slugify: () => slugify,
6277
6277
  suggestSlug: () => suggestSlug,
6278
+ switchWorktreeBranch: () => switchWorktreeBranch,
6278
6279
  threadDisplayLabel: () => threadDisplayLabel,
6279
6280
  ticketSlugForBranch: () => ticketSlugForBranch,
6280
6281
  worktreeDisplayLabel: () => worktreeDisplayLabel,
@@ -7301,6 +7302,59 @@ async function createExistingBranchWorktree(opts) {
7301
7302
  await ensureWorktreeSideboardIgnored(worktreePath);
7302
7303
  return { branchName, worktreePath };
7303
7304
  }
7305
+ async function switchWorktreeBranch(opts) {
7306
+ const branch = opts.branchName.trim().replace(/^origin\//, "");
7307
+ if (!branch) throw new Error("branch name required");
7308
+ const head = await git(["rev-parse", "--abbrev-ref", "HEAD"], opts.worktreePath, {
7309
+ reject: false
7310
+ });
7311
+ if (head.stdout.trim() === branch) return branch;
7312
+ const here = normalizeWorktreePath(opts.worktreePath);
7313
+ const trees = await listWorktrees(opts.repoPath);
7314
+ const taken = trees.find(
7315
+ (w) => w.branch === branch && normalizeWorktreePath(w.path) !== here
7316
+ );
7317
+ if (taken?.path) {
7318
+ throw new Error(`Branch ${branch} is already checked out at ${taken.path}`);
7319
+ }
7320
+ await withRepoGitLock(opts.repoPath, async () => {
7321
+ const local = await git(
7322
+ ["show-ref", "--verify", "--quiet", `refs/heads/${branch}`],
7323
+ opts.worktreePath,
7324
+ { reject: false }
7325
+ );
7326
+ if (local.exitCode === 0) {
7327
+ const sw = await git(["switch", branch], opts.worktreePath, {
7328
+ reject: false
7329
+ });
7330
+ if (sw.exitCode !== 0) {
7331
+ throw new Error(
7332
+ sw.stderr.trim() || sw.stdout.trim() || `Failed to switch to ${branch}`
7333
+ );
7334
+ }
7335
+ return;
7336
+ }
7337
+ const remote = `origin/${branch}`;
7338
+ const remoteOk = await git(["rev-parse", "--verify", "--quiet", remote], opts.repoPath, {
7339
+ reject: false
7340
+ });
7341
+ if (remoteOk.exitCode === 0) {
7342
+ const sw = await git(
7343
+ ["switch", "-c", branch, "--track", remote],
7344
+ opts.worktreePath,
7345
+ { reject: false }
7346
+ );
7347
+ if (sw.exitCode !== 0) {
7348
+ throw new Error(
7349
+ sw.stderr.trim() || sw.stdout.trim() || `Failed to switch to ${branch}`
7350
+ );
7351
+ }
7352
+ return;
7353
+ }
7354
+ throw new Error(`Unknown branch ${branch}`);
7355
+ });
7356
+ return branch;
7357
+ }
7304
7358
  async function removeWorktree(repoPath, worktreePath, opts) {
7305
7359
  await withRepoGitLock(repoPath, async () => {
7306
7360
  await git(["worktree", "remove", "--force", worktreePath], repoPath, {
@@ -25111,6 +25165,20 @@ var init_orchestrator = __esm({
25111
25165
  if (!next) throw new Error("Title cannot be empty");
25112
25166
  return updateThread(thread.id, { title: next, userSetTitle: true });
25113
25167
  }
25168
+ async switchThreadBranch(threadRef, branchName) {
25169
+ const thread = this.requireThread(threadRef);
25170
+ this.assertNotGlobal(thread, "Switch branch");
25171
+ if (thread.status === "running") {
25172
+ throw new Error("Stop the agent before switching branches");
25173
+ }
25174
+ await switchWorktreeBranch({
25175
+ repoPath: thread.repoPath,
25176
+ worktreePath: thread.worktreePath,
25177
+ branchName
25178
+ });
25179
+ await syncThreadBranchFromGit(thread.id);
25180
+ return this.requireThread(thread.id);
25181
+ }
25114
25182
  setAttachments(threadRef, attachments) {
25115
25183
  return updateThread(this.requireThread(threadRef).id, { attachments });
25116
25184
  }
@@ -50,7 +50,7 @@ import {
50
50
  threadsSharingWorktree,
51
51
  updateSchedule,
52
52
  waitForDetachedJob
53
- } from "../chunk-46KDLP6T.js";
53
+ } from "../chunk-553IEH7O.js";
54
54
  import {
55
55
  PRESENT_PLAN_REQUIRES_PLAN_MODE,
56
56
  PRESENT_PLAN_TOOL_DESCRIPTION,
@@ -67,13 +67,13 @@ import {
67
67
  materializeSystemCaBundle,
68
68
  sideboardMcpProfile,
69
69
  trustSystemCertificates
70
- } from "../chunk-6ZYSXLXK.js";
70
+ } from "../chunk-F7ANS66U.js";
71
71
  import {
72
72
  GLOBAL_WORKSPACE_ID,
73
73
  isCloudCoordinatorThread,
74
74
  isOrchestratorThread,
75
75
  listWorkspaces
76
- } from "../chunk-IAS7Q2YF.js";
76
+ } from "../chunk-PJK24CN3.js";
77
77
  import "../chunk-XAISOBBG.js";
78
78
  import "../chunk-P2BSMNHB.js";
79
79
  import "../chunk-XIEDFRBP.js";
@@ -91,7 +91,7 @@ import {
91
91
  resolveListPrsOptions,
92
92
  resolveRepoRoot,
93
93
  warmGithubAgentAuth
94
- } from "../chunk-WVNQML4W.js";
94
+ } from "../chunk-HCNCZPDL.js";
95
95
  import "../chunk-D6JWYJ4P.js";
96
96
  import {
97
97
  appendMessage,
@@ -2368,7 +2368,7 @@ async function continueSourceThread(threadId, prompt) {
2368
2368
  await continueOnReply(threadId, prompt);
2369
2369
  return;
2370
2370
  }
2371
- const { getOrchestrator: getOrchestrator2 } = await import("../orchestrator-W6DUFWVE.js");
2371
+ const { getOrchestrator: getOrchestrator2 } = await import("../orchestrator-VHJZEVGA.js");
2372
2372
  await getOrchestrator2().send(threadId, prompt);
2373
2373
  } catch {
2374
2374
  }
@@ -9,11 +9,11 @@ import {
9
9
  resolveSendFollowUp,
10
10
  startOrchestration,
11
11
  waitForPidExit
12
- } from "./chunk-GZRS5QVL.js";
12
+ } from "./chunk-Y7CS2WGJ.js";
13
13
  import "./chunk-PGPSIEMW.js";
14
- import "./chunk-MLB5CFUP.js";
15
- import "./chunk-JUYD2YUC.js";
16
- import "./chunk-PLMMPA6A.js";
14
+ import "./chunk-R4DWUBOL.js";
15
+ import "./chunk-BYRZS2S2.js";
16
+ import "./chunk-63YSFXLT.js";
17
17
  import "./chunk-6K64FJDD.js";
18
18
  import "./chunk-2P4XKWV2.js";
19
19
  import "./chunk-5F4YFGHL.js";
@@ -11,15 +11,15 @@ import {
11
11
  resolveSendFollowUp,
12
12
  startOrchestration,
13
13
  waitForPidExit
14
- } from "./chunk-46KDLP6T.js";
14
+ } from "./chunk-553IEH7O.js";
15
15
  import "./chunk-WDDUIGFK.js";
16
16
  import "./chunk-QN5DL2QO.js";
17
- import "./chunk-6ZYSXLXK.js";
18
- import "./chunk-IAS7Q2YF.js";
17
+ import "./chunk-F7ANS66U.js";
18
+ import "./chunk-PJK24CN3.js";
19
19
  import "./chunk-XAISOBBG.js";
20
20
  import "./chunk-P2BSMNHB.js";
21
21
  import "./chunk-VKQGAWHY.js";
22
- import "./chunk-WVNQML4W.js";
22
+ import "./chunk-HCNCZPDL.js";
23
23
  import "./chunk-D6JWYJ4P.js";
24
24
  import "./chunk-RJC2MKXN.js";
25
25
  import "./chunk-H547WSSZ.js";
@@ -5,8 +5,8 @@ import {
5
5
  primaryCheckoutFromLinkedWorktree,
6
6
  removeWorkspace,
7
7
  syncWorkspacesFromThreads
8
- } from "./chunk-JUYD2YUC.js";
9
- import "./chunk-PLMMPA6A.js";
8
+ } from "./chunk-BYRZS2S2.js";
9
+ import "./chunk-63YSFXLT.js";
10
10
  import "./chunk-6K64FJDD.js";
11
11
  import "./chunk-2P4XKWV2.js";
12
12
  import "./chunk-KJM3E3NF.js";
@@ -7,8 +7,8 @@ import {
7
7
  primaryCheckoutFromLinkedWorktree,
8
8
  removeWorkspace,
9
9
  syncWorkspacesFromThreads
10
- } from "./chunk-IAS7Q2YF.js";
11
- import "./chunk-WVNQML4W.js";
10
+ } from "./chunk-PJK24CN3.js";
11
+ import "./chunk-HCNCZPDL.js";
12
12
  import "./chunk-D6JWYJ4P.js";
13
13
  import "./chunk-RJC2MKXN.js";
14
14
  import "./chunk-H547WSSZ.js";
@@ -55,13 +55,14 @@ import {
55
55
  resolveWorktreeStartPoint,
56
56
  slugify,
57
57
  suggestSlug,
58
+ switchWorktreeBranch,
58
59
  threadDisplayLabel,
59
60
  ticketSlugForBranch,
60
61
  worktreeDisplayLabel,
61
62
  worktreeDisplayLabelForGroup,
62
63
  worktreeNameFromPath,
63
64
  worktreeSlugForTicket
64
- } from "./chunk-WVNQML4W.js";
65
+ } from "./chunk-HCNCZPDL.js";
65
66
  import "./chunk-D6JWYJ4P.js";
66
67
  import "./chunk-RJC2MKXN.js";
67
68
  import "./chunk-H547WSSZ.js";
@@ -128,6 +129,7 @@ export {
128
129
  resolveWorktreeStartPoint,
129
130
  slugify,
130
131
  suggestSlug,
132
+ switchWorktreeBranch,
131
133
  threadDisplayLabel,
132
134
  ticketSlugForBranch,
133
135
  worktreeDisplayLabel,
@@ -53,13 +53,14 @@ import {
53
53
  resolveWorktreeStartPoint,
54
54
  slugify,
55
55
  suggestSlug,
56
+ switchWorktreeBranch,
56
57
  threadDisplayLabel,
57
58
  ticketSlugForBranch,
58
59
  worktreeDisplayLabel,
59
60
  worktreeDisplayLabelForGroup,
60
61
  worktreeNameFromPath,
61
62
  worktreeSlugForTicket
62
- } from "./chunk-PLMMPA6A.js";
63
+ } from "./chunk-63YSFXLT.js";
63
64
  import "./chunk-6K64FJDD.js";
64
65
  import "./chunk-2P4XKWV2.js";
65
66
  import "./chunk-KJM3E3NF.js";
@@ -126,6 +127,7 @@ export {
126
127
  resolveWorktreeStartPoint,
127
128
  slugify,
128
129
  suggestSlug,
130
+ switchWorktreeBranch,
129
131
  threadDisplayLabel,
130
132
  ticketSlugForBranch,
131
133
  worktreeDisplayLabel,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sideboard-ai/core",
3
- "version": "0.1.253",
3
+ "version": "0.1.255",
4
4
  "description": "Sideboard core — orchestration, agents, git worktrees, MCP server",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",