@sideboard-ai/core 0.1.144 → 0.1.146

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 (31) hide show
  1. package/dist/{agents-OEEOIKUB.js → agents-N3KMRQUZ.js} +4 -4
  2. package/dist/{agents-E5AAMHDY.js → agents-YVETHB2R.js} +4 -4
  3. package/dist/{chunk-CG25RYQQ.js → chunk-4RYRNJPN.js} +3 -3
  4. package/dist/{chunk-OHWN4JEL.js → chunk-67K3FRKR.js} +1 -1
  5. package/dist/{chunk-R2W7A2UO.js → chunk-IHSR7EVK.js} +2 -2
  6. package/dist/{chunk-HC5N3BDL.js → chunk-JHZ6HGRI.js} +2 -2
  7. package/dist/{chunk-4Q45TLZ5.js → chunk-JTPDWTWJ.js} +194 -42
  8. package/dist/{chunk-4D4PEBGB.js → chunk-JW436RTA.js} +2 -2
  9. package/dist/{chunk-FADNFPZO.js → chunk-KNE3FZ46.js} +2 -2
  10. package/dist/{chunk-OLR4UPP7.js → chunk-KZG47SZP.js} +45 -14
  11. package/dist/{chunk-UG5N7ET3.js → chunk-SXPTL222.js} +1 -1
  12. package/dist/{chunk-VHTIHOHE.js → chunk-WWH4NNBH.js} +3 -3
  13. package/dist/{chunk-O3JEC2UJ.js → chunk-YP3CSOZ6.js} +194 -42
  14. package/dist/{chunk-FGT26PJE.js → chunk-ZZBN2MR7.js} +45 -14
  15. package/dist/{coordinator-prompt-FBX7Y4EM.js → coordinator-prompt-2EOR35TP.js} +2 -2
  16. package/dist/{coordinator-prompt-2LD3C74O.js → coordinator-prompt-6EPVHVGJ.js} +2 -2
  17. package/dist/{global-workspace-NG7SU3GV.js → global-workspace-EZVQPMWT.js} +3 -3
  18. package/dist/{global-workspace-OCV77UYF.js → global-workspace-PANZGRUS.js} +3 -3
  19. package/dist/index.cjs +232 -42
  20. package/dist/index.d.cts +42 -1
  21. package/dist/index.d.ts +42 -1
  22. package/dist/index.js +16 -6
  23. package/dist/mcp/run-stdio.cjs +222 -42
  24. package/dist/mcp/run-stdio.js +6 -6
  25. package/dist/{orchestrator-DB5ZSE6M.js → orchestrator-KWV2PPML.js} +6 -6
  26. package/dist/{orchestrator-IQGVBBSH.js → orchestrator-T35BJZWY.js} +6 -6
  27. package/dist/{workspaces-4FUQW5LD.js → workspaces-DWERPUQJ.js} +4 -4
  28. package/dist/{workspaces-PU5YHQ7Z.js → workspaces-ZJATBC4A.js} +4 -4
  29. package/dist/{worktree-GKLPPNWR.js → worktree-RZRJNHYL.js} +11 -1
  30. package/dist/{worktree-Z22HTSCU.js → worktree-UCWWTVLS.js} +11 -1
  31. package/package.json +1 -1
package/dist/index.cjs CHANGED
@@ -4945,12 +4945,15 @@ __export(worktree_exports, {
4945
4945
  canonicalizeRepoPath: () => canonicalizeRepoPath,
4946
4946
  collectTakenTeamSlugs: () => collectTakenTeamSlugs,
4947
4947
  commitAll: () => commitAll,
4948
+ countUnpushedVsOrigin: () => countUnpushedVsOrigin,
4948
4949
  createExistingBranchWorktree: () => createExistingBranchWorktree,
4949
4950
  createOrUpdatePr: () => createOrUpdatePr,
4950
4951
  createThreadWorktree: () => createThreadWorktree,
4951
4952
  currentBranch: () => currentBranch,
4952
4953
  detectLocalMergeConflicts: () => detectLocalMergeConflicts,
4953
4954
  ensureGhPreferOrigin: () => ensureGhPreferOrigin,
4955
+ fastForwardMainCheckoutIfSafe: () => fastForwardMainCheckoutIfSafe,
4956
+ fetchOriginForWorktree: () => fetchOriginForWorktree,
4954
4957
  fetchPrHead: () => fetchPrHead,
4955
4958
  getPr: () => getPr,
4956
4959
  getPrChecks: () => getPrChecks,
@@ -4968,8 +4971,10 @@ __export(worktree_exports, {
4968
4971
  listPrs: () => listPrs,
4969
4972
  listWorktrees: () => listWorktrees,
4970
4973
  lookupSoccerTeam: () => lookupSoccerTeam,
4974
+ markPrReady: () => markPrReady,
4971
4975
  mergePr: () => mergePr,
4972
4976
  normalizeWorktreePath: () => normalizeWorktreePath,
4977
+ originFetchBranch: () => originFetchBranch,
4973
4978
  originGhRepoEnv: () => originGhRepoEnv,
4974
4979
  parseGithubSlugFromRemoteUrl: () => parseGithubSlugFromRemoteUrl,
4975
4980
  pushBranch: () => pushBranch,
@@ -5748,45 +5753,128 @@ async function resolveWorktreeStartPoint(repoPath, sourceRef) {
5748
5753
  function isLocalPrFetchBranch(ref) {
5749
5754
  return /^sideboard-pr-\d+$/.test(ref.trim());
5750
5755
  }
5751
- async function createThreadWorktree(opts) {
5752
- let branchName = `thread/${opts.slug}`;
5753
- const worktreePath = (0, import_node_path18.join)(worktreesRoot(opts.repoPath), opts.slug);
5754
- if ((0, import_node_fs16.existsSync)(worktreePath)) {
5755
- throw new Error(`Worktree already exists at ${worktreePath}`);
5756
+ function originFetchBranch(sourceRef) {
5757
+ const ref = sourceRef.trim();
5758
+ if (!ref || isLocalPrFetchBranch(ref)) return null;
5759
+ if (ref.startsWith("refs/remotes/origin/")) {
5760
+ return ref.slice("refs/remotes/origin/".length) || null;
5756
5761
  }
5757
- await ensureGhPreferOrigin(opts.repoPath);
5758
- let startPoint = null;
5762
+ if (ref.startsWith("refs/heads/")) {
5763
+ return ref.slice("refs/heads/".length) || null;
5764
+ }
5765
+ if (ref.startsWith("refs/")) return null;
5766
+ if (ref.startsWith("origin/")) return ref.slice("origin/".length) || null;
5767
+ return ref;
5768
+ }
5769
+ async function fetchOriginWithAuth(repoPath, args, timeoutMs) {
5770
+ const first = await git(args, repoPath, { reject: false, timeoutMs });
5771
+ if (first.exitCode === 0) return true;
5772
+ let mode;
5759
5773
  try {
5760
- startPoint = await resolveWorktreeStartPoint(opts.repoPath, opts.sourceRef);
5774
+ mode = getGithubGitAuthMode();
5761
5775
  } catch {
5762
- startPoint = null;
5776
+ return false;
5763
5777
  }
5764
- if (!isLocalPrFetchBranch(opts.sourceRef)) {
5765
- const fetchTimeoutMs = startPoint ? 12e3 : 45e3;
5766
- await git(["fetch", "origin", "--prune"], opts.repoPath, {
5767
- reject: false,
5768
- timeoutMs: fetchTimeoutMs
5778
+ if (mode === "ssh") return false;
5779
+ const token = await resolveGithubAgentToken(mode, repoPath);
5780
+ if (!token) return false;
5781
+ const tryHttps = async (header) => git(args, repoPath, {
5782
+ reject: false,
5783
+ timeoutMs,
5784
+ env: { GIT_TERMINAL_PROMPT: "0" },
5785
+ config: {
5786
+ "url.https://github.com/.insteadOf": "git@github.com:",
5787
+ "http.extraHeader": header
5788
+ }
5789
+ });
5790
+ const bearer = await tryHttps(`AUTHORIZATION: bearer ${token}`);
5791
+ if (bearer.exitCode === 0) return true;
5792
+ const basic = Buffer.from(`x-access-token:${token}`, "utf8").toString("base64");
5793
+ const basicFetch = await tryHttps(`Authorization: Basic ${basic}`);
5794
+ return basicFetch.exitCode === 0;
5795
+ }
5796
+ async function fetchOriginForWorktree(repoPath, sourceRef, opts) {
5797
+ const timeoutMs = opts?.timeoutMs ?? 2e4;
5798
+ const branch = originFetchBranch(sourceRef);
5799
+ if (!branch) return false;
5800
+ const tipOk = await fetchOriginWithAuth(
5801
+ repoPath,
5802
+ ["fetch", "origin", branch],
5803
+ timeoutMs
5804
+ );
5805
+ await fetchOriginWithAuth(repoPath, ["fetch", "origin", "--prune"], timeoutMs);
5806
+ return tipOk;
5807
+ }
5808
+ async function fastForwardMainCheckoutIfSafe(repoPath, opts) {
5809
+ try {
5810
+ const branch = opts?.branch?.trim() || await resolveDefaultBranch(repoPath, { network: false });
5811
+ const head = await git(["rev-parse", "--abbrev-ref", "HEAD"], repoPath, {
5812
+ reject: false
5769
5813
  });
5770
- if (!opts.sourceRef.startsWith("origin/") && !opts.sourceRef.startsWith("refs/")) {
5771
- await git(["fetch", "origin", opts.sourceRef], opts.repoPath, {
5772
- reject: false,
5773
- timeoutMs: fetchTimeoutMs
5774
- });
5814
+ const current = head.stdout.trim();
5815
+ if (head.exitCode !== 0 || !current || current === "HEAD" || current !== branch) {
5816
+ return { updated: false, reason: "not-on-default" };
5775
5817
  }
5776
- try {
5777
- startPoint = await resolveWorktreeStartPoint(
5778
- opts.repoPath,
5779
- opts.sourceRef
5780
- );
5781
- } catch (err) {
5782
- if (!startPoint) throw err;
5818
+ if (await isDirty(repoPath)) {
5819
+ return { updated: false, reason: "dirty" };
5783
5820
  }
5784
- }
5785
- if (!startPoint) {
5786
- throw new Error(
5787
- `Invalid git reference: ${opts.sourceRef} (and fetch did not resolve it)`
5821
+ const remote = `origin/${branch}`;
5822
+ const remoteOk = await git(["rev-parse", "--verify", remote], repoPath, {
5823
+ reject: false
5824
+ });
5825
+ if (remoteOk.exitCode !== 0) {
5826
+ return { updated: false, reason: "no-origin-tip" };
5827
+ }
5828
+ const ancestor = await git(
5829
+ ["merge-base", "--is-ancestor", "HEAD", remote],
5830
+ repoPath,
5831
+ { reject: false }
5832
+ );
5833
+ if (ancestor.exitCode !== 0) {
5834
+ return { updated: false, reason: "diverged" };
5835
+ }
5836
+ const behind = await git(
5837
+ ["rev-list", "--count", `HEAD..${remote}`],
5838
+ repoPath,
5839
+ { reject: false }
5788
5840
  );
5841
+ const n = Number(behind.stdout.trim());
5842
+ if (behind.exitCode !== 0 || !Number.isFinite(n) || n <= 0) {
5843
+ return { updated: false, reason: "already-current" };
5844
+ }
5845
+ const ff = await git(["merge", "--ff-only", remote], repoPath, {
5846
+ reject: false
5847
+ });
5848
+ if (ff.exitCode !== 0) {
5849
+ return { updated: false, reason: "ff-failed" };
5850
+ }
5851
+ return { updated: true, reason: "updated" };
5852
+ } catch {
5853
+ return { updated: false, reason: "ff-failed" };
5789
5854
  }
5855
+ }
5856
+ async function refreshOriginAndMaybeFastForwardMain(repoPath, sourceRef) {
5857
+ if (!isLocalPrFetchBranch(sourceRef)) {
5858
+ await fetchOriginForWorktree(repoPath, sourceRef);
5859
+ }
5860
+ const def = await resolveDefaultBranch(repoPath, { network: false });
5861
+ if (originFetchBranch(sourceRef) !== def) {
5862
+ await fetchOriginForWorktree(repoPath, def);
5863
+ }
5864
+ await fastForwardMainCheckoutIfSafe(repoPath, { branch: def });
5865
+ }
5866
+ async function createThreadWorktree(opts) {
5867
+ let branchName = `thread/${opts.slug}`;
5868
+ const worktreePath = (0, import_node_path18.join)(worktreesRoot(opts.repoPath), opts.slug);
5869
+ if ((0, import_node_fs16.existsSync)(worktreePath)) {
5870
+ throw new Error(`Worktree already exists at ${worktreePath}`);
5871
+ }
5872
+ await ensureGhPreferOrigin(opts.repoPath);
5873
+ await refreshOriginAndMaybeFastForwardMain(opts.repoPath, opts.sourceRef);
5874
+ const startPoint = await resolveWorktreeStartPoint(
5875
+ opts.repoPath,
5876
+ opts.sourceRef
5877
+ );
5790
5878
  const added = await withRepoGitLock(opts.repoPath, async () => {
5791
5879
  const add = await git(
5792
5880
  ["worktree", "add", "-b", branchName, worktreePath, startPoint],
@@ -5823,10 +5911,7 @@ async function createExistingBranchWorktree(opts) {
5823
5911
  throw new Error(`Worktree already exists at ${worktreePath}`);
5824
5912
  }
5825
5913
  await ensureGhPreferOrigin(opts.repoPath);
5826
- await git(["fetch", "origin", "--prune"], opts.repoPath, { reject: false });
5827
- if (!branchName.startsWith("origin/") && !branchName.startsWith("refs/")) {
5828
- await git(["fetch", "origin", branchName], opts.repoPath, { reject: false });
5829
- }
5914
+ await refreshOriginAndMaybeFastForwardMain(opts.repoPath, branchName);
5830
5915
  const existing = await listWorktrees(opts.repoPath);
5831
5916
  const already = existing.find((w) => w.branch === branchName);
5832
5917
  if (already?.path) {
@@ -5892,6 +5977,32 @@ async function listWorktrees(repoPath) {
5892
5977
  if (current) entries.push(current);
5893
5978
  return entries;
5894
5979
  }
5980
+ async function countUnpushedVsOrigin(worktreePath) {
5981
+ const head = await git(["rev-parse", "--abbrev-ref", "HEAD"], worktreePath, {
5982
+ reject: false
5983
+ });
5984
+ const branch = head.stdout.trim();
5985
+ if (branch && branch !== "HEAD") {
5986
+ const remote = await git(
5987
+ ["rev-list", "--count", `origin/${branch}..HEAD`],
5988
+ worktreePath,
5989
+ { reject: false }
5990
+ );
5991
+ if (remote.exitCode === 0) {
5992
+ const n = Number(remote.stdout.trim());
5993
+ return Number.isFinite(n) ? n : 1;
5994
+ }
5995
+ const all = await git(["rev-list", "--count", "HEAD"], worktreePath, {
5996
+ reject: false
5997
+ });
5998
+ if (all.exitCode === 0) {
5999
+ const n = Number(all.stdout.trim());
6000
+ if (Number.isFinite(n) && n > 0) return n;
6001
+ }
6002
+ return 1;
6003
+ }
6004
+ return 1;
6005
+ }
5895
6006
  async function isDirty(worktreePath) {
5896
6007
  const { stdout } = await git(["status", "--porcelain"], worktreePath);
5897
6008
  for (const line of stdout.split("\n")) {
@@ -5955,6 +6066,54 @@ async function pushBranch(worktreePath, branchName) {
5955
6066
  const httpsErr = (basicPush.stderr || bearer.stderr || bearer.stdout).trim();
5956
6067
  throw new Error(httpsErr || sshErr || `git push origin ${branchName} failed`);
5957
6068
  }
6069
+ async function runPrReady(cwd, selector, slug) {
6070
+ const readyArgs = ["pr", "ready", selector];
6071
+ if (slug) readyArgs.push("--repo", slug);
6072
+ const ready = await gh(readyArgs, cwd, { reject: false });
6073
+ if (ready.exitCode !== 0) {
6074
+ throw new Error(
6075
+ ready.stderr.trim() || ready.stdout.trim() || "Could not mark draft pull request as ready"
6076
+ );
6077
+ }
6078
+ }
6079
+ async function markPrReady(cwd, selector) {
6080
+ const slug = await resolveGithubRepoSlug(cwd);
6081
+ const viewArgs = ["pr", "view", selector, "--json", "url,state,isDraft"];
6082
+ if (slug) viewArgs.push("--repo", slug);
6083
+ const before = await gh(viewArgs, cwd, { reject: false });
6084
+ if (before.exitCode !== 0 || !before.stdout.trim()) {
6085
+ throw new Error(before.stderr.trim() || "Could not load pull request");
6086
+ }
6087
+ let url = "";
6088
+ let state = "";
6089
+ let isDraft = false;
6090
+ try {
6091
+ const parsed = JSON.parse(before.stdout);
6092
+ url = String(parsed.url ?? "");
6093
+ state = String(parsed.state ?? "").toUpperCase();
6094
+ isDraft = Boolean(parsed.isDraft);
6095
+ } catch {
6096
+ throw new Error("Could not parse pull request details");
6097
+ }
6098
+ if (state === "MERGED" || state === "CLOSED") {
6099
+ return { url, state, isDraft: false };
6100
+ }
6101
+ if (isDraft) {
6102
+ if (await isDirty(cwd)) {
6103
+ throw new Error(
6104
+ "Commit and push local work before marking the pull request ready for review."
6105
+ );
6106
+ }
6107
+ const unpushed = await countUnpushedVsOrigin(cwd);
6108
+ if (unpushed > 0) {
6109
+ throw new Error(
6110
+ "Push this branch to origin before marking the pull request ready for review."
6111
+ );
6112
+ }
6113
+ await runPrReady(cwd, selector, slug);
6114
+ }
6115
+ return { url, state: state || "OPEN", isDraft: false };
6116
+ }
5958
6117
  async function mergePr(cwd, selector, opts) {
5959
6118
  const slug = await resolveGithubRepoSlug(cwd);
5960
6119
  const viewArgs = ["pr", "view", selector, "--json", "url,state,isDraft,number"];
@@ -5989,14 +6148,7 @@ async function mergePr(cwd, selector, opts) {
5989
6148
  return { url, state: "MERGED" };
5990
6149
  }
5991
6150
  if (isDraft) {
5992
- const readyArgs = ["pr", "ready", selector];
5993
- if (slug) readyArgs.push("--repo", slug);
5994
- const ready = await gh(readyArgs, cwd, { reject: false });
5995
- if (ready.exitCode !== 0) {
5996
- throw new Error(
5997
- ready.stderr.trim() || ready.stdout.trim() || "Could not mark draft pull request as ready"
5998
- );
5999
- }
6151
+ await runPrReady(cwd, selector, slug);
6000
6152
  }
6001
6153
  const method = opts?.method ?? "squash";
6002
6154
  const mergeFlag = method === "rebase" ? "--rebase" : method === "merge" ? "--merge" : "--squash";
@@ -14895,6 +15047,8 @@ async function createThread(input, _onSetupLine) {
14895
15047
  `Cowboy mode uses ${defaultBranch} in the project folder. Switch that checkout to ${defaultBranch} first (currently ${head}).`
14896
15048
  );
14897
15049
  }
15050
+ await fetchOriginForWorktree(repoPath, defaultBranch);
15051
+ await fastForwardMainCheckoutIfSafe(repoPath, { branch: defaultBranch });
14898
15052
  const explicitTitle2 = input.title?.trim();
14899
15053
  const thread2 = createEmptyThread({
14900
15054
  title: explicitTitle2 || `Cowboy \xB7 ${head}`,
@@ -19523,6 +19677,32 @@ var init_orchestrator = __esm({
19523
19677
  }
19524
19678
  return result;
19525
19679
  }
19680
+ async markPrReady(threadRef) {
19681
+ const { thread, selectors, cwd } = await this.withPrSelector(threadRef);
19682
+ this.assertNotGlobal(thread, "Ready for review");
19683
+ const selector = selectors[0];
19684
+ if (!selector) throw new Error("No pull request linked to this thread");
19685
+ const result = await markPrReady(cwd, selector);
19686
+ const meta = await getPrMeta(cwd, selector);
19687
+ if (meta) {
19688
+ await this.persistPrMetaAndMaybeArchive(thread, { ...meta, isDraft: false });
19689
+ return { url: meta.url || result.url, state: meta.state || result.state, isDraft: false };
19690
+ }
19691
+ await this.persistPrMetaAndMaybeArchive(thread, {
19692
+ number: 0,
19693
+ title: thread.prTitle ?? thread.title,
19694
+ url: result.url || thread.prUrl || "",
19695
+ state: result.state || "OPEN",
19696
+ isDraft: false,
19697
+ reviewDecision: null,
19698
+ baseRefName: "",
19699
+ headRefName: "",
19700
+ isInMergeQueue: false,
19701
+ mergeable: null,
19702
+ mergeStateStatus: null
19703
+ });
19704
+ return { ...result, isDraft: false };
19705
+ }
19526
19706
  async mergePr(threadRef) {
19527
19707
  const { thread, selectors, cwd } = await this.withPrSelector(threadRef);
19528
19708
  this.assertNotGlobal(thread, "Merge PR");
@@ -20326,6 +20506,7 @@ __export(index_exports, {
20326
20506
  coordinatorTurnReminder: () => coordinatorTurnReminder,
20327
20507
  copyConfiguredFiles: () => copyConfiguredFiles,
20328
20508
  countCacheControlBlocks: () => countCacheControlBlocks,
20509
+ countUnpushedVsOrigin: () => countUnpushedVsOrigin,
20329
20510
  cowboyModeEnabled: () => cowboyModeEnabled,
20330
20511
  createAbleTimeTask: () => createAbleTimeTask,
20331
20512
  createChatTab: () => createChatTab,
@@ -20385,6 +20566,8 @@ __export(index_exports, {
20385
20566
  extractPendingPlanQuestions: () => extractPendingPlanQuestions,
20386
20567
  extractPresentedPlan: () => extractPresentedPlan,
20387
20568
  extractiveSummary: () => extractiveSummary,
20569
+ fastForwardMainCheckoutIfSafe: () => fastForwardMainCheckoutIfSafe,
20570
+ fetchOriginForWorktree: () => fetchOriginForWorktree,
20388
20571
  fetchPrHead: () => fetchPrHead,
20389
20572
  finalizeParts: () => finalizeParts,
20390
20573
  findConventionSetup: () => findConventionSetup,
@@ -20595,6 +20778,7 @@ __export(index_exports, {
20595
20778
  loginAgent: () => loginAgent,
20596
20779
  lookupSoccerTeam: () => lookupSoccerTeam,
20597
20780
  mapAbleTimeTask: () => mapAbleTimeTask,
20781
+ markPrReady: () => markPrReady,
20598
20782
  maxConcurrentAgents: () => maxConcurrentAgents,
20599
20783
  maybeCompactContext: () => maybeCompactContext,
20600
20784
  mcpAllowTools: () => mcpAllowTools,
@@ -20626,6 +20810,7 @@ __export(index_exports, {
20626
20810
  orchestrationQuotaOnLimit: () => orchestrationQuotaOnLimit,
20627
20811
  orchestrationTitleNeedsSoccerNickname: () => orchestrationTitleNeedsSoccerNickname,
20628
20812
  orchestratorSessionPoisonedByBuiltins: () => orchestratorSessionPoisonedByBuiltins,
20813
+ originFetchBranch: () => originFetchBranch,
20629
20814
  originGhRepoEnv: () => originGhRepoEnv,
20630
20815
  packagedDetachedJobPath: () => packagedDetachedJobPath,
20631
20816
  parseCursorRunnerLine: () => parseCursorRunnerLine,
@@ -26912,6 +27097,7 @@ init_outbound_watch();
26912
27097
  coordinatorTurnReminder,
26913
27098
  copyConfiguredFiles,
26914
27099
  countCacheControlBlocks,
27100
+ countUnpushedVsOrigin,
26915
27101
  cowboyModeEnabled,
26916
27102
  createAbleTimeTask,
26917
27103
  createChatTab,
@@ -26971,6 +27157,8 @@ init_outbound_watch();
26971
27157
  extractPendingPlanQuestions,
26972
27158
  extractPresentedPlan,
26973
27159
  extractiveSummary,
27160
+ fastForwardMainCheckoutIfSafe,
27161
+ fetchOriginForWorktree,
26974
27162
  fetchPrHead,
26975
27163
  finalizeParts,
26976
27164
  findConventionSetup,
@@ -27181,6 +27369,7 @@ init_outbound_watch();
27181
27369
  loginAgent,
27182
27370
  lookupSoccerTeam,
27183
27371
  mapAbleTimeTask,
27372
+ markPrReady,
27184
27373
  maxConcurrentAgents,
27185
27374
  maybeCompactContext,
27186
27375
  mcpAllowTools,
@@ -27212,6 +27401,7 @@ init_outbound_watch();
27212
27401
  orchestrationQuotaOnLimit,
27213
27402
  orchestrationTitleNeedsSoccerNickname,
27214
27403
  orchestratorSessionPoisonedByBuiltins,
27404
+ originFetchBranch,
27215
27405
  originGhRepoEnv,
27216
27406
  packagedDetachedJobPath,
27217
27407
  parseCursorRunnerLine,
package/dist/index.d.cts CHANGED
@@ -1653,6 +1653,28 @@ interface CreateWorktreeResult {
1653
1653
  * Local-only refs (e.g. fetched PR heads, existing thread branches) stay local.
1654
1654
  */
1655
1655
  declare function resolveWorktreeStartPoint(repoPath: string, sourceRef: string): Promise<string>;
1656
+ /** Branch name to `git fetch origin <name>` — never a pull/checkout of the main tree. */
1657
+ declare function originFetchBranch(sourceRef: string): string | null;
1658
+ /**
1659
+ * Refresh `origin/<branch>` remote-tracking refs before `git worktree add`.
1660
+ * Does **not** pull, merge, checkout, or reset the main repo working tree —
1661
+ * new worktrees start from the remote tip; the project folder stays untouched.
1662
+ */
1663
+ declare function fetchOriginForWorktree(repoPath: string, sourceRef: string, opts?: {
1664
+ timeoutMs?: number;
1665
+ }): Promise<boolean>;
1666
+ type FastForwardMainResult = {
1667
+ updated: boolean;
1668
+ reason: 'updated' | 'already-current' | 'not-on-default' | 'dirty' | 'diverged' | 'no-origin-tip' | 'ff-failed';
1669
+ };
1670
+ /**
1671
+ * Fast-forward the project-folder checkout to `origin/<default>` when that is
1672
+ * safe: already on the default branch, clean, and a strict ancestor of the
1673
+ * remote tip. Never checkout, reset, or merge if it would not fast-forward.
1674
+ */
1675
+ declare function fastForwardMainCheckoutIfSafe(repoPath: string, opts?: {
1676
+ branch?: string;
1677
+ }): Promise<FastForwardMainResult>;
1656
1678
  declare function createThreadWorktree(opts: {
1657
1679
  repoPath: string;
1658
1680
  sourceRef: string;
@@ -1674,6 +1696,8 @@ declare function listWorktrees(repoPath: string): Promise<Array<{
1674
1696
  path: string;
1675
1697
  branch: string | null;
1676
1698
  }>>;
1699
+ /** Commits on HEAD not yet on `origin/<branch>`. Unknown / never-pushed counts as ahead. */
1700
+ declare function countUnpushedVsOrigin(worktreePath: string): Promise<number>;
1677
1701
  declare function isDirty(worktreePath: string): Promise<boolean>;
1678
1702
  /**
1679
1703
  * Local workspace scratch (`.context/attachments`, legacy `.sideboard/attachments`).
@@ -1683,6 +1707,12 @@ declare function isSideboardScratchPath(relativePath: string): boolean;
1683
1707
  declare function currentBranch(worktreePath: string): Promise<string>;
1684
1708
  declare function commitAll(worktreePath: string, message: string): Promise<boolean>;
1685
1709
  declare function pushBranch(worktreePath: string, branchName: string): Promise<void>;
1710
+ /** Mark a draft pull request ready for review (`gh pr ready`). Idempotent. */
1711
+ declare function markPrReady(cwd: string, selector: string): Promise<{
1712
+ url: string;
1713
+ state: string;
1714
+ isDraft: boolean;
1715
+ }>;
1686
1716
  /** Merge an open pull request.
1687
1717
  * When the worktree is on a GitHub PR stack, uses `gh stack merge` (atomic through that PR).
1688
1718
  * Otherwise: draft → ready, then `gh pr merge` (squash by default). */
@@ -3704,6 +3734,11 @@ declare class Orchestrator {
3704
3734
  draft?: boolean;
3705
3735
  web?: boolean;
3706
3736
  }): Promise<LandResult>;
3737
+ markPrReady(threadRef: string): Promise<{
3738
+ url: string;
3739
+ state: string;
3740
+ isDraft: boolean;
3741
+ }>;
3707
3742
  mergePr(threadRef: string): Promise<{
3708
3743
  url: string;
3709
3744
  state: string;
@@ -4665,6 +4700,12 @@ interface IpcApi {
4665
4700
  draft?: boolean;
4666
4701
  web?: boolean;
4667
4702
  }): Promise<LandResult>;
4703
+ /** Mark the thread's linked draft PR ready for review (`gh pr ready`). */
4704
+ markPrReady(threadRef: string): Promise<{
4705
+ url: string;
4706
+ state: string;
4707
+ isDraft: boolean;
4708
+ }>;
4668
4709
  /** Merge the thread's linked PR on GitHub (`gh pr merge`). */
4669
4710
  mergePr(threadRef: string): Promise<{
4670
4711
  url: string;
@@ -5446,4 +5487,4 @@ declare function pollSlackOutboundWatches(opts?: {
5446
5487
  now?: number;
5447
5488
  }): Promise<void>;
5448
5489
 
5449
- export { ABLETIME_MCP_PATH, AGENT_GIT_ACTIONS, AGENT_RUNNER_MAX_OLD_SPACE_MB, ATTACHMENTS_DIR, type AbleTimeAssignedIssuesResult, type AbleTimeMcpToolName, type AbleTimeOrientation, type AbleTimeProject, type AbleTimeTask, type AbleTimeViewer, type ActiveRun, type AddBoardPinInput, type AddStackLayerInput, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentEvent, type AgentGitAction, type AgentInstructionFile, 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_SLACK_RELAY_URL, BRIGHTSY_MCP_ALLOWED_TOOLS, 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, CLAUDE_MODEL_CATALOG, CLOUD_COORDINATOR_BUSY_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, CONVENTION_SETUP_RELPATHS, COORDINATOR_TOOL_PLAYBOOK, type CaffeinateHoldState, type ClaudeHarnessSettings, type CleanupOrphansResult, type CliAgentKind, type CliExecutableSettings, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, 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_WORKTREE_SORT, type DefaultsAppSettings, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, type ExpandResult, FAMOUS_SOCCER_TEAMS, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GITHUB_GIT_AUTH_MODES, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GhStackStatus, type GitHubStatus, type GitWorktreeStatus, type GithubGitAuthMode, HARNESS_ENV_KEYS, HOME_BOARD_CACHE_TTL_MS, type HarnessId, type HomeBoardLoaded, type HomeBoardRemoteData, ISSUE_SOURCE_LABELS, type InitStackFromThreadInput, type IntegrationsSettings, type IpcApi, type IssueCycleInfo, type IssueInfo, type IssueSource, LEGACY_ATTACHMENTS_DIR, LEGACY_PLAN_FILE_REL, LEGACY_REVIEW_REQUEST_PATH, LINEAR_OAUTH_CANCELLED, LINEAR_OAUTH_PORT, LINEAR_OAUTH_REDIRECT, LINEAR_OAUTH_SCOPES, LONG_RUNNING_SKILL_COMMAND, type LandPreview, type LandResult, type LinearAssignedIssuesResult, type LinearComment, type LinearIssue, LinearOAuthCancelledError, type LinearTeam, type LinearTeamsResult, type LinearWorkflowState, type ListIssuesResult, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, 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 OrchestratorEvent, type OrchestratorRuntime, type OrphanWorktree, PASTE_ATTACH_MIN_CHARS, PASTE_ATTACH_MIN_LINES, PLAN_FILE_NAME, PLAN_FILE_REL, PLAN_MODE_INSTRUCTION, PLAN_QUESTION_ANSWERS_PREFIX, type PendingPlanQuestions, type PlanQuestion, type PlanQuestionAnswer, type PlanQuestionOption, type PlanToolPartLike, type PrActor, type PrCheckRun, type PrCommentInfo, type PrCommitInfo, type PrDetails, type PrInfo, type PrMeta, type PrReviewInfo, type PrStack, type PrStackLayer, type PresentedPlan, type PublicAppSettings, type PublicIntegrationsSettings, REPO_REVIEW_NAME, REPO_REVIEW_PATH, REVIEW_REQUEST_NAME, REVIEW_REQUEST_PATH, REVIEW_REQUEST_PREFILL, REVIEW_REQUEST_TEMPLATE, REVIEW_SKILL_NAME, REVIEW_SKILL_PATH, type RepoSettings, type RepoSetupInfo, type RequestReviewResult, type ResolvedReviewGuidelines, type ReviewGuidelinesSource, type RunMode, type RunScript, SESSION_RESET_OCCUPANCY_TOKENS, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, SIDEBOARD_MCP_PROFILE_ENV, 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, type ScheduleCreatedBy, type ScheduleWhen, type ScheduledTask, type ScriptHandle, type SetupRunResult, 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, type TeamName, type ThinkingEffort, type Thread, type ThreadAttachment, type ThreadMessage, type ThreadOptionsPatch, type ThreadStatus, type TokenUsage, type ToolPartLike, type TranscriptToolDetail, type TurnCommand, type UpdateScheduledTaskPatch, type UsageScope, WORKTREE_MCP_TOOLS, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, type WorktreeSortMode, abletimeMcpRequest, abletimeMcpUrl, ackSlackInboundSeen, addBoardPin, addPrStackLayer, addStackLayerFromThread, addWorkspace, adoptThread, agentGitPrompt, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendIndexedGitConfig, appendMessage, applyAgentEvent, applyAgentRunnerHeapEnv, applyAppEnvironment, applyCompaction, applyForwardOccupancy, applyGithubGitAuthEnv, applyPromptCacheTtlEnv, applyThreadIntoMain, applyTurnUsage, armSchedules, assertOrchestratorCapableAgent, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, attachmentsGitignoreBody, autoArchiveOnMergeEnabled, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAccessTokenNeedsRefresh, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyInjectWorktreeMcpEnabled, brightsyMcpAllowedTools, brightsyMcpServerName, buildBrightsySessionSeed, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildPastedTextAttachment, buildReviewRequestAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateHoldPath, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, caffeinateWhileSchedulesEnabled, caffeinateWhileSlackListenEnabled, callAbleTimeTool, canonicalizeRepoPath, captureLoginEnv, captureTurnBaseline, checkoutPrStackLayer, childEnvWithAppSettings, claimDesktopHost, classifyWorktreeColumn, claudeAdapter, claudeChromeEnabled, claudeUserSettingsPath, cleanupOrphanWorktrees, clearBoardPins, clearHomeBoardCache, cloneRepoIntoSideboard, codexAdapter, codexSandboxWritableRootsArgs, codexUnattendedGitConfigArgs, coerceOrchestratorAgent, collectTakenTeamSlugs, commentLinearIssue, commitAll, computeNextRunAt, conductorBundledBinDir, conductorDbPath, confirmLand, connectBrightsyTeam, connectOptionalService, connectSlackToken, connectedOptionalServices, contextTokens, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, cowboyModeEnabled, createAbleTimeTask, createChatTab, createEmptyThread, createExistingBranchWorktree, createGlobalChat, createLinearIssue, createLinearPkce, createOrUpdatePr, createPrStack, createSchedule, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, defaultScheduleName, deleteBranchOnPurgeEnabled, deleteSchedule, deleteThreadRecord, desktopHostPidPath, detectAgents, detectGhStack, detectLocalMergeConflicts, detectOptionalServiceClis, disconnectAbleTimeConnection, disconnectBrightsyTeam, disconnectLinear, disconnectLinearConnection, disconnectOptionalService, disconnectSlackWorkspace, discoverSkills, dropCachedPrefixOnResume, emptyPublicIntegrations, encodeBrightsyTarget, enrichPathWithNpmGlobalBin, enrichWorkspacesWithGithub, ensureAbleTimeTask, ensureAgentPath, ensureBrightsyLocalConfigFresh, ensureCloudCoordinator, ensureConnectedBrightsyTeamTokens, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureReviewRequestFile, ensureReviewSkillFile, ensureSlackCoordinator, ensureSlackDeviceIdentity, ensureWorkspace, estimateMessageChars, estimateOccupancyTokens, estimateThreadChars, expandComposerPrompt, extractBrightsyContextSummary, extractGhErrorDetail, extractPendingPlanQuestions, extractPresentedPlan, extractiveSummary, fetchPrHead, finalizeParts, findConventionSetup, findInvalidCacheControlTtlOrder, findLastBrightsyContextSummary, findLiveThreadForCreate, findOrphanWorktrees, findSlackCoordinator, findThreadByRef, findThreadForStackLayer, fireSchedule, flattenTurnInput, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAgentInstructions, formatArtifactDirective, formatBrightsyFetchError, formatDetachedJobInvoke, formatFetchError, formatGhLandError, formatGitAuthModeDirective, formatIpcInvokeError, formatLongRunningDirective, formatLongRunningReminder, formatMergePrError, formatMessagesAsTranscript, formatOptionalServicesDirective, formatOptionalServicesReminder, formatPlanQuestionAnswers, formatPlanQuestionsForChat, formatProcessGuideDirective, formatRateLimitResetHint, formatRenameBranchDirective, formatScheduleWhen, formatScheduledPrompt, formatSlackExternalReplyPrompt, formatSlackInboundPrompt, formatSlackRepliesForTurn, formatSlackReplyContinuePrompt, formatSlackSignedReply, formatSlackWorkingText, formatTranscriptMarkdown, formatUiReminder, formatWorkspaceInventory, formatWorktreeDirective, formatWorktreeReminder, forwardContextUsage, forwardOccupancyTokens, fromInclusiveInputUsage, getAbleTimeAccessToken, getAbleTimeHost, getAbleTimeOrientation, getAbleTimeTask, getAdapter, getAgentSetupInfo, getBrightsySession, getCaffeinateHold, getDefaultAgent, getDefaultEffort, getDefaultFast, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubStatus, getGithubGitAuthMode, getGithubPat, getHomeBoardInputs, getIssueSource, getLinearApiKey, getLinearAuthToken, getLinearIssue, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrForHeadBranch, getPrMeta, getPrStack, getRepoSetupInfo, getRunMode, getRunScript, getSchedule, getSlackWorkspace, gh, ghHeadRef, ghRepoSelectArgs, git, githubAgentGitEnv, globalAgentCwd, groupHomeBoardWorktrees, handleSlackInbound, harnessEnvKey, hasBakedLinearOAuth, hasBakedSlackOAuth, hasConductorHook, hasConventionSetup, hasCursorWorktreeSetup, hasEnabledSchedules, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, httpFetch, importConductorWorkspace, importConductorWorkspaceAsync, initPrStack, initStackFromThread, initializeGitRepository, inspectGitWorktree, installAgent, installNpmGlobalPackage, installOptionalServiceCli, interruptSlackCoordinatorForInbound, invalidateThreadListCache, isAbleTimeConnected, isAskUserToolName, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isConductorBundledCli, isCowboyThread, isCursorAutoModel, isDefaultishSourceRef, isDesktopHostAlive, isDirty, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isHomeBoardThread, isImageFilePath, isInPrStack, isInboundForThisDesktop, isIssueSourceConnected, isLinearConnected, isLinearOAuthCancelled, isOptionalServiceId, isOrchestratorCapableAgent, isOrchestratorThread, isPidAlive, isPlaceholderBranch, isPlanQuestionAnswersMessage, isPollWrapperToolName, isPrNotMergeableError, isPresentPlanToolName, isPrimaryCheckoutThread, isSessionQuotaLimit, isShellToolName, isSideboardScratchPath, isSlackCoordinatorThread, isSlackExternalReplyPrompt, isSlackOAuthCancelled, isSubagentToolName, isThinkingEffort, isThisProcessDesktopHost, isThreadCaffeinated, isThreadRecordFile, isWorkspaceScratchPath, issueAttachmentForAbleTimeTask, issueSourceLabel, lastRequestOccupancy, latestPendingPlanQuestions, linearAuthorizationHeader, linearCycleIsActive, linearGraphql, linearOAuthAuthorizeUrl, linearOAuthCredentials, listAbleTimeAssignedIssues, listAbleTimeProjects, listAbleTimeTasks, listAgentSetupInfo, listBoardPins, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssues, listGlobalThreads, listIssues, listLinearAssignedIssues, listLinearIssues, listLinearIssuesDirect, listLinearTeams, listModelsForAgent, listOpencodeModels, listPrs, listRunScripts, listSchedules, listSlackOutboundWatches, listSlackWorkspaces, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, liveActivitySummary, loadAgentInstructions, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadHomeBoardInputs, loadRepoSettings, loadWorkspaceSettings, locksDir, loginAgent, lookupSoccerTeam, mapAbleTimeTask, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAuthWarnings, mergeAgentGitAuthEnv, mergePr, mergePrStack, mergeSideboardIntoMcpServersJson, mergeUsage, messagePartParentId, messagesSinceLastBrightsyContextSummary, nextPastedTextName, nextThinkingEffort, nonInteractiveGitProcessEnv, normalizeAbleTimeHost, normalizeParseResult, normalizeServiceOrigin, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, openPrStackLayers, openStackLayer, opencodeAdapter, optionalServiceConnected, optionalServiceSpec, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originGhRepoEnv, packagedDetachedJobPath, parseCursorRunnerLine, parseDurationMs, parseForceStopMessage, parseGhStackViewJson, parseGithubSlugFromRemoteUrl, parseMcpList, parsePlanQuestionsInput, parseSessionQuotaResetAt, parseSlackRelayClientMessage, parseSlackRelayServerMessage, partsToAssistantText, pastedTextStats, pendingSlackExternalReplies, permissionMode, persistPendingFileAttachments, persistVaultKeyInKeychain, planFileAbs, planQuestionsSignature, pollSlackOutboundWatches, posixShellSingleQuote, preferredCursorCostCents, prepareTerminalCommand, previewLand, promptMentionsBrightsy, pushBranch, readExistingReviewRequestFile, readKeychainVaultKey, readPlanFile, readSkillBody, readThread, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, recordScheduleRun, recordSlackOutboundWatch, refreshBrightsyAccessToken, refreshGitHubAuth, registerPackagedUserMcpClients, releaseCaffeinateHoldForThread, releaseDesktopHost, removeBoardPin, removeWorkspace, removeWorktree, repoSlug, requestOccupancy, requestReview, requireAgent, resetGhStackDetectCache, resetGithubAgentTokenMemo, resolveAgentExecutable, resolveAgentGitAuthEnv, resolveClaudeExecutable, resolveCodexGitWritableRoots, resolveCommandBinarySync, resolveConductorCursorAgentId, resolveCursorModelId, resolveDefaultBranch, resolveDetachedJobScript, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGhAuthToken, resolveGitDirsForLockRecovery, resolveGithubAgentToken, resolveGithubRepoSlug, resolveLinearState, resolveLinearTeam, resolveLoginCommand, resolveNewThreadOptions, resolvePlanMarkdown, resolvePrSelector, resolvePrSelectors, resolveQuotaFallbackAgent, resolveRepoRoot, resolveReviewGuidelines, resolveScheduleThreadId, resolveSlackListenMode, resolveThreadDefaults, resolveThreadEffort, resolveVaultKey, resolveWorktreeStartPoint, rewriteAbleTimeError, rewriteLinearError, run, runArchiveScript, runCloudConnect, runConventionSetup, runCursorWorktreeSetup, runSetupScript, runSlackListen, runSlackRelayClient, runWorkspaceSetup, sameWorktreePath, sanitizeMcpServerName, saveAbleTimeConnection, saveAppSettings, saveLinearOAuth, schedulesPath, scrubGithubTokensFromChildEnv, searchAbleTimeTasks, secureFileUnlocksWith, setCaffeinateHold, setHttpFetchImpl, setStatus, setVaultMasterKey, settingsSourceLabel, shouldAttachPastedText, shouldCompactContext, shouldInjectBrightsyMcp, shouldRefreshReviewRequestTemplate, shouldRemoveWorktreeOnTeardown, shouldResetSessionForOccupancy, shouldRunWorktreeCleanup, showCostEnabled, sideboardHomeDir, sideboardMcpProfile, sideboardReposDir, sideboardWorkspacesDir, slackAppLevelToken, slackArchiveUrl, slackCoordinatorSourceRef, slackListenEnabled, slackOAuthCredentials, slackOAuthResultUrl, slackRelayUrl, slugify, spawnAgentTurn, splitForCompaction, stackAgentDefaultsFrom, stackIdFrom, stackMergeReadiness, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startDevServer, startLinearOAuth, startMcpServer, startOrchestration, startSlackOAuth, startSlackRelayServer, stripBrightsyNdjsonNoise, stripNestedElectronEnv, submitPrStack, suggestSlug, sumUsageList, summarizeConversation, switchBrightsyAccount, syncWorkspacesFromThreads, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, taskUrl, thinkingEffortBars, thinkingEffortLabel, thisProcessShouldDrainAgentQueues, threadDisplayLabel, threadFilePath, threadHasCompactedContext, threadLivePath, threadLockPath, threadRequestsBrightsyMcp, threadsDir, threadsSharingWorktree, toAbleTimeIssueInfo, toPublicAppSettings, toolActivityLine, toolDescription, toolDetail, toolFilePath, totalTokens, turnCostUsdFromCursorUsage, updateAdvancedSettings, updateAgentExecutable, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateCodexSettings, updateDefaultsSettings, updateIntegrationsSettings, updateLinearIssue, updateOpencodeSettings, updateSchedule, updateThread, userClaudeMcpConfigPath, userCursorMcpConfigPath, validateLinearApiKey, verifyAbleTimeConnection, verifyOptionalService, visibleToolRowDetail, waitForPidExit, warmGithubAgentAuth, whichOnPath, withAgentInstructions, withEventParentId, withEventsParentId, withExportedPath, withMaxOldSpaceSize, withThreadLock, workspaceSettingsSourceLabel, worktreeBoardStatus, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreesRoot, wrapReviewSkillMarkdown, writeInjectedMcpConfig, writePlanFile, writeThread, writeWorktreeFile };
5490
+ export { ABLETIME_MCP_PATH, AGENT_GIT_ACTIONS, AGENT_RUNNER_MAX_OLD_SPACE_MB, ATTACHMENTS_DIR, type AbleTimeAssignedIssuesResult, type AbleTimeMcpToolName, type AbleTimeOrientation, type AbleTimeProject, type AbleTimeTask, type AbleTimeViewer, type ActiveRun, type AddBoardPinInput, type AddStackLayerInput, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentEvent, type AgentGitAction, type AgentInstructionFile, 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_SLACK_RELAY_URL, BRIGHTSY_MCP_ALLOWED_TOOLS, 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, CLAUDE_MODEL_CATALOG, CLOUD_COORDINATOR_BUSY_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, CONVENTION_SETUP_RELPATHS, COORDINATOR_TOOL_PLAYBOOK, type CaffeinateHoldState, type ClaudeHarnessSettings, type CleanupOrphansResult, type CliAgentKind, type CliExecutableSettings, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, 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_WORKTREE_SORT, type DefaultsAppSettings, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, type ExpandResult, FAMOUS_SOCCER_TEAMS, type FastForwardMainResult, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GITHUB_GIT_AUTH_MODES, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GhStackStatus, type GitHubStatus, type GitWorktreeStatus, type GithubGitAuthMode, HARNESS_ENV_KEYS, HOME_BOARD_CACHE_TTL_MS, type HarnessId, type HomeBoardLoaded, type HomeBoardRemoteData, ISSUE_SOURCE_LABELS, type InitStackFromThreadInput, type IntegrationsSettings, type IpcApi, type IssueCycleInfo, type IssueInfo, type IssueSource, LEGACY_ATTACHMENTS_DIR, LEGACY_PLAN_FILE_REL, LEGACY_REVIEW_REQUEST_PATH, LINEAR_OAUTH_CANCELLED, LINEAR_OAUTH_PORT, LINEAR_OAUTH_REDIRECT, LINEAR_OAUTH_SCOPES, LONG_RUNNING_SKILL_COMMAND, type LandPreview, type LandResult, type LinearAssignedIssuesResult, type LinearComment, type LinearIssue, LinearOAuthCancelledError, type LinearTeam, type LinearTeamsResult, type LinearWorkflowState, type ListIssuesResult, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, 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 OrchestratorEvent, type OrchestratorRuntime, type OrphanWorktree, PASTE_ATTACH_MIN_CHARS, PASTE_ATTACH_MIN_LINES, PLAN_FILE_NAME, PLAN_FILE_REL, PLAN_MODE_INSTRUCTION, PLAN_QUESTION_ANSWERS_PREFIX, type PendingPlanQuestions, type PlanQuestion, type PlanQuestionAnswer, type PlanQuestionOption, type PlanToolPartLike, type PrActor, type PrCheckRun, type PrCommentInfo, type PrCommitInfo, type PrDetails, type PrInfo, type PrMeta, type PrReviewInfo, type PrStack, type PrStackLayer, type PresentedPlan, type PublicAppSettings, type PublicIntegrationsSettings, REPO_REVIEW_NAME, REPO_REVIEW_PATH, REVIEW_REQUEST_NAME, REVIEW_REQUEST_PATH, REVIEW_REQUEST_PREFILL, REVIEW_REQUEST_TEMPLATE, REVIEW_SKILL_NAME, REVIEW_SKILL_PATH, type RepoSettings, type RepoSetupInfo, type RequestReviewResult, type ResolvedReviewGuidelines, type ReviewGuidelinesSource, type RunMode, type RunScript, SESSION_RESET_OCCUPANCY_TOKENS, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, SIDEBOARD_MCP_PROFILE_ENV, 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, type ScheduleCreatedBy, type ScheduleWhen, type ScheduledTask, type ScriptHandle, type SetupRunResult, 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, type TeamName, type ThinkingEffort, type Thread, type ThreadAttachment, type ThreadMessage, type ThreadOptionsPatch, type ThreadStatus, type TokenUsage, type ToolPartLike, type TranscriptToolDetail, type TurnCommand, type UpdateScheduledTaskPatch, type UsageScope, WORKTREE_MCP_TOOLS, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, type WorktreeSortMode, abletimeMcpRequest, abletimeMcpUrl, ackSlackInboundSeen, addBoardPin, addPrStackLayer, addStackLayerFromThread, addWorkspace, adoptThread, agentGitPrompt, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendIndexedGitConfig, appendMessage, applyAgentEvent, applyAgentRunnerHeapEnv, applyAppEnvironment, applyCompaction, applyForwardOccupancy, applyGithubGitAuthEnv, applyPromptCacheTtlEnv, applyThreadIntoMain, applyTurnUsage, armSchedules, assertOrchestratorCapableAgent, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, attachmentsGitignoreBody, autoArchiveOnMergeEnabled, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAccessTokenNeedsRefresh, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyInjectWorktreeMcpEnabled, brightsyMcpAllowedTools, brightsyMcpServerName, buildBrightsySessionSeed, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildPastedTextAttachment, buildReviewRequestAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateHoldPath, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, caffeinateWhileSchedulesEnabled, caffeinateWhileSlackListenEnabled, callAbleTimeTool, canonicalizeRepoPath, captureLoginEnv, captureTurnBaseline, checkoutPrStackLayer, childEnvWithAppSettings, claimDesktopHost, classifyWorktreeColumn, claudeAdapter, claudeChromeEnabled, claudeUserSettingsPath, cleanupOrphanWorktrees, clearBoardPins, clearHomeBoardCache, cloneRepoIntoSideboard, codexAdapter, codexSandboxWritableRootsArgs, codexUnattendedGitConfigArgs, coerceOrchestratorAgent, collectTakenTeamSlugs, commentLinearIssue, commitAll, computeNextRunAt, conductorBundledBinDir, conductorDbPath, confirmLand, connectBrightsyTeam, connectOptionalService, connectSlackToken, connectedOptionalServices, contextTokens, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, countUnpushedVsOrigin, cowboyModeEnabled, createAbleTimeTask, createChatTab, createEmptyThread, createExistingBranchWorktree, createGlobalChat, createLinearIssue, createLinearPkce, createOrUpdatePr, createPrStack, createSchedule, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, defaultScheduleName, deleteBranchOnPurgeEnabled, deleteSchedule, deleteThreadRecord, desktopHostPidPath, detectAgents, detectGhStack, detectLocalMergeConflicts, detectOptionalServiceClis, disconnectAbleTimeConnection, disconnectBrightsyTeam, disconnectLinear, disconnectLinearConnection, disconnectOptionalService, disconnectSlackWorkspace, discoverSkills, dropCachedPrefixOnResume, emptyPublicIntegrations, encodeBrightsyTarget, enrichPathWithNpmGlobalBin, enrichWorkspacesWithGithub, ensureAbleTimeTask, ensureAgentPath, ensureBrightsyLocalConfigFresh, ensureCloudCoordinator, ensureConnectedBrightsyTeamTokens, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureReviewRequestFile, ensureReviewSkillFile, ensureSlackCoordinator, ensureSlackDeviceIdentity, ensureWorkspace, estimateMessageChars, estimateOccupancyTokens, estimateThreadChars, expandComposerPrompt, extractBrightsyContextSummary, extractGhErrorDetail, extractPendingPlanQuestions, extractPresentedPlan, extractiveSummary, fastForwardMainCheckoutIfSafe, fetchOriginForWorktree, fetchPrHead, finalizeParts, findConventionSetup, findInvalidCacheControlTtlOrder, findLastBrightsyContextSummary, findLiveThreadForCreate, findOrphanWorktrees, findSlackCoordinator, findThreadByRef, findThreadForStackLayer, fireSchedule, flattenTurnInput, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAgentInstructions, formatArtifactDirective, formatBrightsyFetchError, formatDetachedJobInvoke, formatFetchError, formatGhLandError, formatGitAuthModeDirective, formatIpcInvokeError, formatLongRunningDirective, formatLongRunningReminder, formatMergePrError, formatMessagesAsTranscript, formatOptionalServicesDirective, formatOptionalServicesReminder, formatPlanQuestionAnswers, formatPlanQuestionsForChat, formatProcessGuideDirective, formatRateLimitResetHint, formatRenameBranchDirective, formatScheduleWhen, formatScheduledPrompt, formatSlackExternalReplyPrompt, formatSlackInboundPrompt, formatSlackRepliesForTurn, formatSlackReplyContinuePrompt, formatSlackSignedReply, formatSlackWorkingText, formatTranscriptMarkdown, formatUiReminder, formatWorkspaceInventory, formatWorktreeDirective, formatWorktreeReminder, forwardContextUsage, forwardOccupancyTokens, fromInclusiveInputUsage, getAbleTimeAccessToken, getAbleTimeHost, getAbleTimeOrientation, getAbleTimeTask, getAdapter, getAgentSetupInfo, getBrightsySession, getCaffeinateHold, getDefaultAgent, getDefaultEffort, getDefaultFast, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubStatus, getGithubGitAuthMode, getGithubPat, getHomeBoardInputs, getIssueSource, getLinearApiKey, getLinearAuthToken, getLinearIssue, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrForHeadBranch, getPrMeta, getPrStack, getRepoSetupInfo, getRunMode, getRunScript, getSchedule, getSlackWorkspace, gh, ghHeadRef, ghRepoSelectArgs, git, githubAgentGitEnv, globalAgentCwd, groupHomeBoardWorktrees, handleSlackInbound, harnessEnvKey, hasBakedLinearOAuth, hasBakedSlackOAuth, hasConductorHook, hasConventionSetup, hasCursorWorktreeSetup, hasEnabledSchedules, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, httpFetch, importConductorWorkspace, importConductorWorkspaceAsync, initPrStack, initStackFromThread, initializeGitRepository, inspectGitWorktree, installAgent, installNpmGlobalPackage, installOptionalServiceCli, interruptSlackCoordinatorForInbound, invalidateThreadListCache, isAbleTimeConnected, isAskUserToolName, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isConductorBundledCli, isCowboyThread, isCursorAutoModel, isDefaultishSourceRef, isDesktopHostAlive, isDirty, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isHomeBoardThread, isImageFilePath, isInPrStack, isInboundForThisDesktop, isIssueSourceConnected, isLinearConnected, isLinearOAuthCancelled, isOptionalServiceId, isOrchestratorCapableAgent, isOrchestratorThread, isPidAlive, isPlaceholderBranch, isPlanQuestionAnswersMessage, isPollWrapperToolName, isPrNotMergeableError, isPresentPlanToolName, isPrimaryCheckoutThread, isSessionQuotaLimit, isShellToolName, isSideboardScratchPath, isSlackCoordinatorThread, isSlackExternalReplyPrompt, isSlackOAuthCancelled, isSubagentToolName, isThinkingEffort, isThisProcessDesktopHost, isThreadCaffeinated, isThreadRecordFile, isWorkspaceScratchPath, issueAttachmentForAbleTimeTask, issueSourceLabel, lastRequestOccupancy, latestPendingPlanQuestions, linearAuthorizationHeader, linearCycleIsActive, linearGraphql, linearOAuthAuthorizeUrl, linearOAuthCredentials, listAbleTimeAssignedIssues, listAbleTimeProjects, listAbleTimeTasks, listAgentSetupInfo, listBoardPins, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssues, listGlobalThreads, listIssues, listLinearAssignedIssues, listLinearIssues, listLinearIssuesDirect, listLinearTeams, listModelsForAgent, listOpencodeModels, listPrs, listRunScripts, listSchedules, listSlackOutboundWatches, listSlackWorkspaces, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, liveActivitySummary, loadAgentInstructions, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadHomeBoardInputs, loadRepoSettings, loadWorkspaceSettings, locksDir, loginAgent, lookupSoccerTeam, mapAbleTimeTask, markPrReady, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAuthWarnings, mergeAgentGitAuthEnv, mergePr, mergePrStack, mergeSideboardIntoMcpServersJson, mergeUsage, messagePartParentId, messagesSinceLastBrightsyContextSummary, nextPastedTextName, nextThinkingEffort, nonInteractiveGitProcessEnv, normalizeAbleTimeHost, normalizeParseResult, normalizeServiceOrigin, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, openPrStackLayers, openStackLayer, opencodeAdapter, optionalServiceConnected, optionalServiceSpec, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originFetchBranch, originGhRepoEnv, packagedDetachedJobPath, parseCursorRunnerLine, parseDurationMs, parseForceStopMessage, parseGhStackViewJson, parseGithubSlugFromRemoteUrl, parseMcpList, parsePlanQuestionsInput, parseSessionQuotaResetAt, parseSlackRelayClientMessage, parseSlackRelayServerMessage, partsToAssistantText, pastedTextStats, pendingSlackExternalReplies, permissionMode, persistPendingFileAttachments, persistVaultKeyInKeychain, planFileAbs, planQuestionsSignature, pollSlackOutboundWatches, posixShellSingleQuote, preferredCursorCostCents, prepareTerminalCommand, previewLand, promptMentionsBrightsy, pushBranch, readExistingReviewRequestFile, readKeychainVaultKey, readPlanFile, readSkillBody, readThread, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, recordScheduleRun, recordSlackOutboundWatch, refreshBrightsyAccessToken, refreshGitHubAuth, registerPackagedUserMcpClients, releaseCaffeinateHoldForThread, releaseDesktopHost, removeBoardPin, removeWorkspace, removeWorktree, repoSlug, requestOccupancy, requestReview, requireAgent, resetGhStackDetectCache, resetGithubAgentTokenMemo, resolveAgentExecutable, resolveAgentGitAuthEnv, resolveClaudeExecutable, resolveCodexGitWritableRoots, resolveCommandBinarySync, resolveConductorCursorAgentId, resolveCursorModelId, resolveDefaultBranch, resolveDetachedJobScript, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGhAuthToken, resolveGitDirsForLockRecovery, resolveGithubAgentToken, resolveGithubRepoSlug, resolveLinearState, resolveLinearTeam, resolveLoginCommand, resolveNewThreadOptions, resolvePlanMarkdown, resolvePrSelector, resolvePrSelectors, resolveQuotaFallbackAgent, resolveRepoRoot, resolveReviewGuidelines, resolveScheduleThreadId, resolveSlackListenMode, resolveThreadDefaults, resolveThreadEffort, resolveVaultKey, resolveWorktreeStartPoint, rewriteAbleTimeError, rewriteLinearError, run, runArchiveScript, runCloudConnect, runConventionSetup, runCursorWorktreeSetup, runSetupScript, runSlackListen, runSlackRelayClient, runWorkspaceSetup, sameWorktreePath, sanitizeMcpServerName, saveAbleTimeConnection, saveAppSettings, saveLinearOAuth, schedulesPath, scrubGithubTokensFromChildEnv, searchAbleTimeTasks, secureFileUnlocksWith, setCaffeinateHold, setHttpFetchImpl, setStatus, setVaultMasterKey, settingsSourceLabel, shouldAttachPastedText, shouldCompactContext, shouldInjectBrightsyMcp, shouldRefreshReviewRequestTemplate, shouldRemoveWorktreeOnTeardown, shouldResetSessionForOccupancy, shouldRunWorktreeCleanup, showCostEnabled, sideboardHomeDir, sideboardMcpProfile, sideboardReposDir, sideboardWorkspacesDir, slackAppLevelToken, slackArchiveUrl, slackCoordinatorSourceRef, slackListenEnabled, slackOAuthCredentials, slackOAuthResultUrl, slackRelayUrl, slugify, spawnAgentTurn, splitForCompaction, stackAgentDefaultsFrom, stackIdFrom, stackMergeReadiness, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startDevServer, startLinearOAuth, startMcpServer, startOrchestration, startSlackOAuth, startSlackRelayServer, stripBrightsyNdjsonNoise, stripNestedElectronEnv, submitPrStack, suggestSlug, sumUsageList, summarizeConversation, switchBrightsyAccount, syncWorkspacesFromThreads, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, taskUrl, thinkingEffortBars, thinkingEffortLabel, thisProcessShouldDrainAgentQueues, threadDisplayLabel, threadFilePath, threadHasCompactedContext, threadLivePath, threadLockPath, threadRequestsBrightsyMcp, threadsDir, threadsSharingWorktree, toAbleTimeIssueInfo, toPublicAppSettings, toolActivityLine, toolDescription, toolDetail, toolFilePath, totalTokens, turnCostUsdFromCursorUsage, updateAdvancedSettings, updateAgentExecutable, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateCodexSettings, updateDefaultsSettings, updateIntegrationsSettings, updateLinearIssue, updateOpencodeSettings, updateSchedule, updateThread, userClaudeMcpConfigPath, userCursorMcpConfigPath, validateLinearApiKey, verifyAbleTimeConnection, verifyOptionalService, visibleToolRowDetail, waitForPidExit, warmGithubAgentAuth, whichOnPath, withAgentInstructions, withEventParentId, withEventsParentId, withExportedPath, withMaxOldSpaceSize, withThreadLock, workspaceSettingsSourceLabel, worktreeBoardStatus, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreesRoot, wrapReviewSkillMarkdown, writeInjectedMcpConfig, writePlanFile, writeThread, writeWorktreeFile };