@sideboard-ai/core 0.1.60 → 0.1.62

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 (35) hide show
  1. package/dist/{agents-EADRAAPG.js → agents-KF3J3C53.js} +2 -2
  2. package/dist/{agents-B2723EOF.js → agents-QLSFIQAO.js} +2 -2
  3. package/dist/{app-settings-TBHTJWLQ.js → app-settings-HK4KAM4R.js} +3 -1
  4. package/dist/{app-settings-YBNZ4XSR.js → app-settings-LTSFG7QJ.js} +3 -1
  5. package/dist/{chunk-XWPKLRB3.js → chunk-27MAWNKY.js} +2 -2
  6. package/dist/{chunk-CHGOMFTA.js → chunk-2FEA4LDA.js} +4 -4
  7. package/dist/{chunk-MX7UH5AT.js → chunk-2MCNURQV.js} +2 -2
  8. package/dist/{chunk-MFGGIRUA.js → chunk-3KKNTHUC.js} +1 -1
  9. package/dist/{chunk-2P2UK7E7.js → chunk-46KMKHSD.js} +2 -2
  10. package/dist/{chunk-75QR74KM.js → chunk-6CUJQKTJ.js} +10 -0
  11. package/dist/{chunk-HLEX5AQ6.js → chunk-7FD7COKE.js} +4 -0
  12. package/dist/{chunk-QJBC4BRK.js → chunk-A6FOKNOU.js} +2 -2
  13. package/dist/{chunk-FGNBTFRD.js → chunk-DDN3UF4R.js} +10 -0
  14. package/dist/{chunk-MLAST5BB.js → chunk-DXTGDXO2.js} +4 -4
  15. package/dist/{chunk-TSRXOSVD.js → chunk-FWJYLBO6.js} +4 -0
  16. package/dist/{chunk-NTYRBRE7.js → chunk-NVU7EC2E.js} +2 -2
  17. package/dist/{chunk-P7EQUFB6.js → chunk-UGXSSBFJ.js} +1 -1
  18. package/dist/{chunk-ZXDOI6IH.js → chunk-ZF5YJCXO.js} +2 -2
  19. package/dist/{coordinator-prompt-4P23VVFC.js → coordinator-prompt-LKG3SHMI.js} +4 -4
  20. package/dist/{coordinator-prompt-LNWHZ64D.js → coordinator-prompt-N2R6FGZK.js} +4 -4
  21. package/dist/{global-workspace-TMMAVRVW.js → global-workspace-LALWQWRJ.js} +5 -5
  22. package/dist/{global-workspace-BHT4XUAA.js → global-workspace-YOAUQCMA.js} +5 -5
  23. package/dist/index.cjs +124 -18
  24. package/dist/index.d.cts +26 -2
  25. package/dist/index.d.ts +26 -2
  26. package/dist/index.js +131 -39
  27. package/dist/mcp/run-stdio.cjs +122 -18
  28. package/dist/mcp/run-stdio.js +127 -37
  29. package/dist/{thread-store-GHOADGL2.js → thread-store-BUBR24YA.js} +1 -1
  30. package/dist/{thread-store-UJIGMI5J.js → thread-store-XTPFCJAI.js} +1 -1
  31. package/dist/{workspaces-GFPGDGCS.js → workspaces-E75POJXP.js} +6 -6
  32. package/dist/{workspaces-3GO3EDQG.js → workspaces-VCAIHVIE.js} +6 -6
  33. package/dist/{worktree-3L2G6PCM.js → worktree-LZEGVQSN.js} +2 -2
  34. package/dist/{worktree-GBLHEFHR.js → worktree-MV4WRW6G.js} +2 -2
  35. package/package.json +1 -1
package/dist/index.cjs CHANGED
@@ -391,6 +391,7 @@ __export(app_settings_exports, {
391
391
  HARNESS_ENV_KEYS: () => HARNESS_ENV_KEYS,
392
392
  appSettingsPath: () => appSettingsPath,
393
393
  applyAppEnvironment: () => applyAppEnvironment,
394
+ autoArchiveOnMergeEnabled: () => autoArchiveOnMergeEnabled,
394
395
  autoCleanupOrphansEnabled: () => autoCleanupOrphansEnabled,
395
396
  autoRenameBranchEnabled: () => autoRenameBranchEnabled,
396
397
  autoRunAfterSetupEnabled: () => autoRunAfterSetupEnabled,
@@ -508,6 +509,9 @@ function normalizeAdvanced(raw) {
508
509
  if (typeof source.deleteBranchOnPurge === "boolean") {
509
510
  out.deleteBranchOnPurge = source.deleteBranchOnPurge;
510
511
  }
512
+ if (typeof source.autoArchiveOnMerge === "boolean") {
513
+ out.autoArchiveOnMerge = source.autoArchiveOnMerge;
514
+ }
511
515
  if (typeof source.maxConcurrent === "number" && Number.isFinite(source.maxConcurrent)) {
512
516
  out.maxConcurrent = Math.max(1, Math.min(32, Math.floor(source.maxConcurrent)));
513
517
  }
@@ -768,6 +772,9 @@ function updateAdvancedSettings(patch) {
768
772
  if (typeof patch.deleteBranchOnPurge === "boolean") {
769
773
  advanced.deleteBranchOnPurge = patch.deleteBranchOnPurge;
770
774
  }
775
+ if (typeof patch.autoArchiveOnMerge === "boolean") {
776
+ advanced.autoArchiveOnMerge = patch.autoArchiveOnMerge;
777
+ }
771
778
  if (typeof patch.maxConcurrent === "number" && Number.isFinite(patch.maxConcurrent)) {
772
779
  advanced.maxConcurrent = Math.max(1, Math.min(32, Math.floor(patch.maxConcurrent)));
773
780
  }
@@ -809,6 +816,9 @@ function caffeinateWhileCloudConnectEnabled(settings = loadAppSettings()) {
809
816
  function deleteBranchOnPurgeEnabled(settings = loadAppSettings()) {
810
817
  return Boolean(settings.advanced.deleteBranchOnPurge);
811
818
  }
819
+ function autoArchiveOnMergeEnabled(settings = loadAppSettings()) {
820
+ return Boolean(settings.advanced.autoArchiveOnMerge);
821
+ }
812
822
  function autoCleanupOrphansEnabled(settings = loadAppSettings()) {
813
823
  return Boolean(settings.advanced.autoCleanupOrphans);
814
824
  }
@@ -937,6 +947,8 @@ function normalizeThread(raw) {
937
947
  agentPid: raw.agentPid ?? null,
938
948
  attachments: Array.isArray(raw.attachments) ? raw.attachments : [],
939
949
  prTitle: raw.prTitle ?? null,
950
+ prState: raw.prState ?? null,
951
+ skipAutoArchiveOnMerge: Boolean(raw.skipAutoArchiveOnMerge),
940
952
  stackId: raw.stackId ?? null,
941
953
  stackLayer: raw.stackLayer ?? null,
942
954
  userSetTitle: Boolean(raw.userSetTitle),
@@ -963,6 +975,8 @@ function createEmptyThread(partial) {
963
975
  activeRuns: partial.activeRuns ?? [],
964
976
  prUrl: partial.prUrl ?? null,
965
977
  prTitle: partial.prTitle ?? null,
978
+ prState: partial.prState ?? null,
979
+ skipAutoArchiveOnMerge: partial.skipAutoArchiveOnMerge ?? false,
966
980
  stackId: partial.stackId ?? null,
967
981
  stackLayer: partial.stackLayer ?? null,
968
982
  userSetTitle: partial.userSetTitle ?? false,
@@ -7196,6 +7210,7 @@ __export(index_exports, {
7196
7210
  attachmentsFromBuffers: () => attachmentsFromBuffers,
7197
7211
  attachmentsFromWorktreePaths: () => attachmentsFromWorktreePaths,
7198
7212
  attachmentsGitignoreBody: () => attachmentsGitignoreBody,
7213
+ autoArchiveOnMergeEnabled: () => autoArchiveOnMergeEnabled,
7199
7214
  autoCleanupOrphansEnabled: () => autoCleanupOrphansEnabled,
7200
7215
  autoRenameBranchEnabled: () => autoRenameBranchEnabled,
7201
7216
  autoRunAfterSetupEnabled: () => autoRunAfterSetupEnabled,
@@ -10320,6 +10335,8 @@ function worktreeBindingFrom(from) {
10320
10335
  parentThreadId: from.parentThreadId,
10321
10336
  prUrl: from.prUrl,
10322
10337
  prTitle: from.prTitle,
10338
+ prState: from.prState,
10339
+ skipAutoArchiveOnMerge: from.skipAutoArchiveOnMerge,
10323
10340
  stackId: from.stackId,
10324
10341
  stackLayer: from.stackLayer
10325
10342
  };
@@ -11025,6 +11042,20 @@ init_agents();
11025
11042
  init_worktree();
11026
11043
  init_stack();
11027
11044
 
11045
+ // src/git/pr-merge-archive.ts
11046
+ function normalizePrState(state) {
11047
+ return (state ?? "").trim().toUpperCase();
11048
+ }
11049
+ function shouldAutoArchiveOnPrMerge(opts) {
11050
+ if (!opts.autoArchiveEnabled) return false;
11051
+ if (opts.isGlobal) return false;
11052
+ if (opts.skipAutoArchiveOnMerge) return false;
11053
+ if (opts.threadStatus === "archived") return false;
11054
+ const next = normalizePrState(opts.nextPrState);
11055
+ if (next !== "MERGED") return false;
11056
+ return normalizePrState(opts.previousPrState) !== "MERGED";
11057
+ }
11058
+
11028
11059
  // src/git/orphan-cleanup.ts
11029
11060
  var import_node_fs23 = require("fs");
11030
11061
  var import_node_path21 = require("path");
@@ -12854,10 +12885,19 @@ var Orchestrator = class {
12854
12885
  this.assertNotGlobal(thread, "Merge PR");
12855
12886
  if (!selector) throw new Error("No pull request linked to this thread");
12856
12887
  const result = await mergePr(cwd, selector);
12857
- if (result.url && result.url !== thread.prUrl) {
12858
- updateThread(thread.id, { prUrl: result.url });
12859
- }
12860
- return result;
12888
+ const state = normalizePrState(result.state) || "MERGED";
12889
+ const metaLike = {
12890
+ number: 0,
12891
+ title: thread.prTitle ?? thread.title,
12892
+ url: result.url || thread.prUrl || "",
12893
+ state,
12894
+ isDraft: false,
12895
+ reviewDecision: null,
12896
+ baseRefName: "",
12897
+ headRefName: ""
12898
+ };
12899
+ await this.persistPrMetaAndMaybeArchive(thread, metaLike);
12900
+ return { url: metaLike.url, state };
12861
12901
  }
12862
12902
  /** Resolve PR selector and optionally persist `prUrl` when found. */
12863
12903
  async withPrSelector(threadRef) {
@@ -12879,19 +12919,55 @@ var Orchestrator = class {
12879
12919
  if (!selector) return null;
12880
12920
  const meta = await getPrMeta(cwd, selector);
12881
12921
  if (meta) {
12882
- const patch = {};
12883
- if (meta.url && meta.url !== thread.prUrl) patch.prUrl = meta.url;
12884
- if (meta.title && meta.title !== thread.prTitle) patch.prTitle = meta.title;
12885
- if (Object.keys(patch).length > 0) {
12886
- updateThread(thread.id, patch);
12887
- const latest = this.requireThread(thread.id);
12888
- if (!latest.userSetTitle && meta.title && latest.title !== meta.title) {
12889
- updateThread(thread.id, { title: meta.title });
12890
- }
12891
- }
12922
+ await this.persistPrMetaAndMaybeArchive(thread, meta);
12892
12923
  }
12893
12924
  return meta;
12894
12925
  }
12926
+ /**
12927
+ * Persist PR URL/title/state and Conductor-style auto-archive when the PR
12928
+ * first becomes MERGED.
12929
+ */
12930
+ async persistPrMetaAndMaybeArchive(thread, meta) {
12931
+ const prevState = normalizePrState(thread.prState);
12932
+ const nextState = normalizePrState(meta.state);
12933
+ const patch = {};
12934
+ if (meta.url && meta.url !== thread.prUrl) patch.prUrl = meta.url;
12935
+ if (meta.title && meta.title !== thread.prTitle) patch.prTitle = meta.title;
12936
+ if (nextState && nextState !== prevState) patch.prState = nextState;
12937
+ if (thread.skipAutoArchiveOnMerge && nextState && nextState !== "MERGED" && nextState !== "CLOSED") {
12938
+ patch.skipAutoArchiveOnMerge = false;
12939
+ }
12940
+ if (Object.keys(patch).length > 0) {
12941
+ updateThread(thread.id, patch);
12942
+ const latest2 = this.requireThread(thread.id);
12943
+ if (!latest2.userSetTitle && meta.title && latest2.title !== meta.title) {
12944
+ updateThread(thread.id, { title: meta.title });
12945
+ }
12946
+ }
12947
+ const { autoArchiveOnMergeEnabled: autoArchiveOnMergeEnabled2 } = await Promise.resolve().then(() => (init_app_settings(), app_settings_exports));
12948
+ const latest = this.requireThread(thread.id);
12949
+ if (!shouldAutoArchiveOnPrMerge({
12950
+ previousPrState: prevState || null,
12951
+ nextPrState: nextState,
12952
+ threadStatus: latest.status,
12953
+ skipAutoArchiveOnMerge: latest.skipAutoArchiveOnMerge,
12954
+ autoArchiveEnabled: autoArchiveOnMergeEnabled2(),
12955
+ isGlobal: isGlobalThread(latest)
12956
+ })) {
12957
+ return;
12958
+ }
12959
+ const siblings = threadsSharingWorktree(latest.worktreePath);
12960
+ for (const t of siblings) {
12961
+ const sibPatch = { prState: "MERGED" };
12962
+ if (meta.url && meta.url !== t.prUrl) sibPatch.prUrl = meta.url;
12963
+ if (meta.title && meta.title !== t.prTitle) sibPatch.prTitle = meta.title;
12964
+ if (Object.keys(sibPatch).length > 0) updateThread(t.id, sibPatch);
12965
+ }
12966
+ for (const t of siblings) {
12967
+ if (this.requireThread(t.id).status === "archived") continue;
12968
+ await this.archive(t.id);
12969
+ }
12970
+ }
12895
12971
  async getPrStack(threadRef) {
12896
12972
  const thread = this.requireThread(threadRef);
12897
12973
  if (!thread.worktreePath?.trim()) return null;
@@ -13069,7 +13145,9 @@ var Orchestrator = class {
13069
13145
  const thread = this.requireThread(threadRef);
13070
13146
  this.stop(thread.id);
13071
13147
  if (isGlobalThread(thread)) {
13072
- return setStatus(thread.id, "archived");
13148
+ const archived2 = setStatus(thread.id, "archived");
13149
+ this.emit({ type: "status_changed", threadId: archived2.id, status: "archived" });
13150
+ return archived2;
13073
13151
  }
13074
13152
  const siblings = threadsSharingWorktree(thread.worktreePath).filter((t) => t.id !== thread.id);
13075
13153
  if (siblings.length === 0) {
@@ -13087,6 +13165,7 @@ var Orchestrator = class {
13087
13165
  await removeWorktree(thread.repoPath, thread.worktreePath);
13088
13166
  }
13089
13167
  const archived = setStatus(thread.id, "archived");
13168
+ this.emit({ type: "status_changed", threadId: archived.id, status: "archived" });
13090
13169
  if (thread.repoPath && !isGlobalRepoPath(thread.repoPath)) {
13091
13170
  try {
13092
13171
  const { ensureWorkspace: ensureWorkspace2 } = await Promise.resolve().then(() => (init_workspaces(), workspaces_exports));
@@ -13126,7 +13205,9 @@ var Orchestrator = class {
13126
13205
  if (isGlobalThread(thread)) {
13127
13206
  const { globalAgentCwd: globalAgentCwd2 } = await Promise.resolve().then(() => (init_paths(), paths_exports));
13128
13207
  updateThread(thread.id, { worktreePath: globalAgentCwd2() });
13129
- return setStatus(thread.id, "idle");
13208
+ const restored2 = setStatus(thread.id, "idle");
13209
+ this.emit({ type: "status_changed", threadId: restored2.id, status: restored2.status });
13210
+ return restored2;
13130
13211
  }
13131
13212
  if (!(0, import_node_fs28.existsSync)(thread.worktreePath)) {
13132
13213
  const { createThreadWorktree: createThreadWorktree2 } = await Promise.resolve().then(() => (init_worktree(), worktree_exports));
@@ -13139,7 +13220,31 @@ var Orchestrator = class {
13139
13220
  void createThreadWorktree2;
13140
13221
  void slug;
13141
13222
  }
13142
- return setStatus(thread.id, "idle");
13223
+ const restorePatch = {};
13224
+ let alreadyMerged = normalizePrState(thread.prState) === "MERGED";
13225
+ if (!alreadyMerged && thread.prUrl?.trim() && thread.worktreePath?.trim()) {
13226
+ try {
13227
+ const selector = resolvePrSelector(thread);
13228
+ if (selector) {
13229
+ const meta = await getPrMeta(thread.worktreePath, selector);
13230
+ if (meta) {
13231
+ const state = normalizePrState(meta.state);
13232
+ if (meta.url && meta.url !== thread.prUrl) restorePatch.prUrl = meta.url;
13233
+ if (meta.title && meta.title !== thread.prTitle) restorePatch.prTitle = meta.title;
13234
+ if (state) restorePatch.prState = state;
13235
+ if (state === "MERGED") alreadyMerged = true;
13236
+ }
13237
+ }
13238
+ } catch {
13239
+ }
13240
+ }
13241
+ if (alreadyMerged) restorePatch.skipAutoArchiveOnMerge = true;
13242
+ if (Object.keys(restorePatch).length > 0) {
13243
+ updateThread(thread.id, restorePatch);
13244
+ }
13245
+ const restored = setStatus(thread.id, "idle");
13246
+ this.emit({ type: "status_changed", threadId: restored.id, status: restored.status });
13247
+ return restored;
13143
13248
  }
13144
13249
  async attachCommand(threadRef) {
13145
13250
  const thread = this.requireThread(threadRef);
@@ -13632,7 +13737,7 @@ async function startMcpServer() {
13632
13737
  parent = null;
13633
13738
  }
13634
13739
  if (parentId) {
13635
- const children = orch.getThreads(true).filter((t) => t.parentThreadId === parentId);
13740
+ const children = orch.getThreads(false).filter((t) => t.parentThreadId === parentId);
13636
13741
  if (children.length >= MAX_ORCH_THREADS) {
13637
13742
  return {
13638
13743
  content: [
@@ -14729,6 +14834,7 @@ init_injected_mcp();
14729
14834
  attachmentsFromBuffers,
14730
14835
  attachmentsFromWorktreePaths,
14731
14836
  attachmentsGitignoreBody,
14837
+ autoArchiveOnMergeEnabled,
14732
14838
  autoCleanupOrphansEnabled,
14733
14839
  autoRenameBranchEnabled,
14734
14840
  autoRunAfterSetupEnabled,
package/dist/index.d.cts CHANGED
@@ -113,6 +113,18 @@ interface Thread {
113
113
  prUrl: string | null;
114
114
  /** Cached PR title for Conductor-style sidebar labels (PR title > branch). */
115
115
  prTitle: string | null;
116
+ /**
117
+ * Cached GitHub PR lifecycle from the last `getPrMeta` / merge
118
+ * (`OPEN` | `MERGED` | `CLOSED`, etc.). Used for purple “done” sidebar
119
+ * styling and Conductor-style auto-archive-on-merge.
120
+ */
121
+ prState: string | null;
122
+ /**
123
+ * When true, skip auto-archive if the PR is already MERGED (set on restore
124
+ * so unarchiving a merged workspace does not immediately re-archive).
125
+ * Cleared when `prState` becomes a non-merged open state again.
126
+ */
127
+ skipAutoArchiveOnMerge?: boolean;
116
128
  /**
117
129
  * Stable id for a GitHub PR stack this thread belongs to (shared across layer worktrees).
118
130
  * Null when not part of a stack.
@@ -636,6 +648,11 @@ interface AdvancedAppSettings {
636
648
  * Conductor: `git.delete_branch_on_archive` (default off).
637
649
  */
638
650
  deleteBranchOnPurge?: boolean;
651
+ /**
652
+ * When a linked PR becomes MERGED, archive the worktree’s chats.
653
+ * Conductor: auto-archive on merge (opt-in; default off).
654
+ */
655
+ autoArchiveOnMerge?: boolean;
639
656
  /** Max concurrent agent turns across the orchestrator (default 3). */
640
657
  maxConcurrent?: number;
641
658
  /**
@@ -753,6 +770,8 @@ declare function autoRunAfterSetupEnabled(settings?: AppSettings): boolean;
753
770
  declare function caffeinateWhileRunningEnabled(settings?: AppSettings): boolean;
754
771
  declare function caffeinateWhileCloudConnectEnabled(settings?: AppSettings): boolean;
755
772
  declare function deleteBranchOnPurgeEnabled(settings?: AppSettings): boolean;
773
+ /** Conductor-style opt-in — default off. */
774
+ declare function autoArchiveOnMergeEnabled(settings?: AppSettings): boolean;
756
775
  declare function autoCleanupOrphansEnabled(settings?: AppSettings): boolean;
757
776
  /** Default: switch to another agent (Auto) when orchestration hits a session limit. */
758
777
  declare function orchestrationQuotaOnLimit(settings?: AppSettings): OrchestrationQuotaOnLimit;
@@ -783,7 +802,7 @@ declare function resolveThreadEffort(raw: {
783
802
  fast?: unknown;
784
803
  }): ThinkingEffort;
785
804
  declare function normalizeThread(raw: Thread): Thread;
786
- declare function createEmptyThread(partial: Omit<Thread, 'id' | 'createdAt' | 'updatedAt' | 'messages' | 'queue' | 'status' | 'devPort' | 'activeRuns' | 'prUrl' | 'prTitle' | 'stackId' | 'stackLayer' | 'userSetTitle' | 'sessionId' | 'sourceIsFork' | 'parentThreadId' | 'autonomy' | 'model' | 'effort' | 'fast' | 'planMode' | 'attachments'> & Partial<Pick<Thread, 'sessionId' | 'sourceIsFork' | 'parentThreadId' | 'autonomy' | 'model' | 'effort' | 'fast' | 'planMode' | 'messages' | 'queue' | 'status' | 'devPort' | 'activeRuns' | 'prUrl' | 'prTitle' | 'stackId' | 'stackLayer' | 'userSetTitle' | 'attachments'>>): Thread;
805
+ declare function createEmptyThread(partial: Omit<Thread, 'id' | 'createdAt' | 'updatedAt' | 'messages' | 'queue' | 'status' | 'devPort' | 'activeRuns' | 'prUrl' | 'prTitle' | 'prState' | 'skipAutoArchiveOnMerge' | 'stackId' | 'stackLayer' | 'userSetTitle' | 'sessionId' | 'sourceIsFork' | 'parentThreadId' | 'autonomy' | 'model' | 'effort' | 'fast' | 'planMode' | 'attachments'> & Partial<Pick<Thread, 'sessionId' | 'sourceIsFork' | 'parentThreadId' | 'autonomy' | 'model' | 'effort' | 'fast' | 'planMode' | 'messages' | 'queue' | 'status' | 'devPort' | 'activeRuns' | 'prUrl' | 'prTitle' | 'prState' | 'skipAutoArchiveOnMerge' | 'stackId' | 'stackLayer' | 'userSetTitle' | 'attachments'>>): Thread;
787
806
  declare function withThreadLock<T>(id: string, fn: () => Promise<T>): Promise<T>;
788
807
  declare function readThread(id: string): Thread | null;
789
808
  declare function writeThread(thread: Thread): void;
@@ -2392,6 +2411,11 @@ declare class Orchestrator {
2392
2411
  private withPrSelector;
2393
2412
  getPrChecks(threadRef: string): Promise<PrCheckRun[] | null>;
2394
2413
  getPrMeta(threadRef: string): Promise<PrMeta | null>;
2414
+ /**
2415
+ * Persist PR URL/title/state and Conductor-style auto-archive when the PR
2416
+ * first becomes MERGED.
2417
+ */
2418
+ private persistPrMetaAndMaybeArchive;
2395
2419
  getPrStack(threadRef: string): Promise<PrStack | null>;
2396
2420
  /** Open worktrees for all (or one) stack layers discovered from a thread. */
2397
2421
  openPrStackLayers(threadRef: string, opts?: {
@@ -3337,4 +3361,4 @@ declare function writeInjectedMcpConfig(opts: {
3337
3361
  includeBrightsy?: boolean;
3338
3362
  }): Promise<string | null>;
3339
3363
 
3340
- export { ATTACHMENTS_DIR, type ActiveRun, type AddStackLayerInput, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentEvent, 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, BRIGHTSY_MCP_ALLOWED_TOOLS, type BranchInfo, type BrightsyAccount, type BrightsyChatTarget, type BrightsyChatTargets, type BrightsyCloudConnectAgent, type BrightsyHarnessSettings, type BrightsySession, BrightsySideboardApi, type BrightsyTeamTargets, 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, COORDINATOR_TOOL_PLAYBOOK, type ClaudeHarnessSettings, type CleanupOrphansResult, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, type CompactResult, type CompactThresholds, type ComposerFileBuffer, type ConductorSettings, type ConductorWorkspace, type ConnectedBrightsyTeamInfo, type CreateChatTabInput, type CreateGlobalChatOpts, type CreateStackInput, type CreateThreadInput, type CreateWorktreeResult, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorWorktreesConfig, 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, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GhStackStatus, type GitHubStatus, type GitWorktreeStatus, HARNESS_ENV_KEYS, type HarnessId, type InitStackFromThreadInput, type IntegrationsSettings, type IpcApi, type IssueInfo, type IssueSource, LEGACY_ATTACHMENTS_DIR, LEGACY_PLAN_FILE_REL, LEGACY_REVIEW_REQUEST_PATH, type LandPreview, type LandResult, type ListIssuesResult, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, ORCHESTRATOR_AGENT_KINDS, type OpenPrStackLayersInput, type OpenStackLayerInput, type OpenStackLayerResult, 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, 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, REPO_REVIEW_NAME, REPO_REVIEW_PATH, REVIEW_REQUEST_NAME, REVIEW_REQUEST_PATH, REVIEW_REQUEST_PREFILL, type RepoSettings, type RepoSetupInfo, type RequestReviewResult, type ResolvedReviewGuidelines, type ReviewGuidelinesSource, type RunMode, type RunScript, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, type ScriptHandle, type SkillInfo, 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 Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, addPrStackLayer, addStackLayerFromThread, addWorkspace, adoptThread, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendMessage, applyAgentEvent, applyAppEnvironment, applyCompaction, applyThreadIntoMain, assertOrchestratorCapableAgent, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, attachmentsGitignoreBody, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyMcpAllowedTools, brightsyMcpServerName, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildPastedTextAttachment, buildReviewRequestAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, captureLoginEnv, captureTurnBaseline, checkoutPrStackLayer, childEnvWithAppSettings, claudeAdapter, claudeChromeEnabled, claudeUserSettingsPath, cleanupOrphanWorktrees, cloneRepoIntoSideboard, codexAdapter, coerceOrchestratorAgent, collectTakenTeamSlugs, commitAll, conductorDbPath, confirmLand, connectBrightsyTeam, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, createChatTab, createEmptyThread, createExistingBranchWorktree, createGlobalChat, createOrUpdatePr, createPrStack, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, deleteBranchOnPurgeEnabled, deleteThreadRecord, detectAgents, detectGhStack, detectLocalMergeConflicts, disconnectBrightsyTeam, discoverSkills, encodeBrightsyTarget, enrichWorkspacesWithGithub, ensureAgentPath, ensureCloudCoordinator, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureReviewRequestFile, ensureWorkspace, estimateMessageChars, estimateThreadChars, expandComposerPrompt, extractGhErrorDetail, extractPendingPlanQuestions, extractPresentedPlan, extractiveSummary, fetchPrHead, finalizeParts, findInvalidCacheControlTtlOrder, findOrphanWorktrees, findThreadByRef, findThreadForStackLayer, flattenTurnInput, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAgentInstructions, formatArtifactDirective, formatBrightsyFetchError, formatGhLandError, formatIpcInvokeError, formatMessagesAsTranscript, formatPlanQuestionAnswers, formatPlanQuestionsForChat, formatRateLimitResetHint, formatRenameBranchDirective, formatTranscriptMarkdown, formatWorkspaceInventory, formatWorktreeDirective, getAdapter, getAgentSetupInfo, getBrightsySession, getDefaultAgent, getDefaultEffort, getDefaultFast, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubStatus, getIssueSource, getLinearApiKey, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrMeta, getPrStack, getRepoSetupInfo, getRunMode, getRunScript, gh, ghHeadRef, ghRepoSelectArgs, git, globalAgentCwd, harnessEnvKey, hasConductorHook, hasCursorWorktreeSetup, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, importConductorWorkspace, importConductorWorkspaceAsync, initPrStack, initStackFromThread, initializeGitRepository, inspectGitWorktree, installAgent, isAskUserToolName, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isCursorAutoModel, isDirty, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isImageFilePath, isInPrStack, isLinearConnected, isOrchestratorCapableAgent, isOrchestratorThread, isPidAlive, isPlaceholderBranch, isPresentPlanToolName, isSessionQuotaLimit, isSideboardScratchPath, isThinkingEffort, isWorkspaceScratchPath, listAgentSetupInfo, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssues, listGlobalThreads, listIssues, listLinearIssues, listLinearIssuesDirect, listModelsForAgent, listOpencodeModels, listPrs, listRunScripts, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, loadAgentInstructions, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadRepoSettings, loadWorkspaceSettings, locksDir, loginAgent, lookupSoccerTeam, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAuthWarnings, mergePr, mergePrStack, mergeUsage, nextPastedTextName, nextThinkingEffort, normalizeParseResult, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, openPrStackLayers, openStackLayer, opencodeAdapter, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originGhRepoEnv, parseCursorRunnerLine, parseForceStopMessage, parseGhStackViewJson, parseGithubSlugFromRemoteUrl, parseMcpList, parsePlanQuestionsInput, parseSessionQuotaResetAt, partsToAssistantText, pastedTextStats, permissionMode, planFileAbs, previewLand, pushBranch, readExistingReviewRequestFile, readPlanFile, readSkillBody, readThread, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, refreshGitHubAuth, removeWorkspace, removeWorktree, repoSlug, requestReview, requireAgent, resetGhStackDetectCache, resolveClaudeExecutable, resolveConductorCursorAgentId, resolveCursorModelId, resolveDefaultBranch, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGhAuthToken, resolveGithubRepoSlug, resolveNewThreadOptions, resolvePlanMarkdown, resolvePrSelector, resolveQuotaFallbackAgent, resolveRepoRoot, resolveReviewGuidelines, resolveThreadDefaults, resolveThreadEffort, resolveWorktreeStartPoint, run, runArchiveScript, runCloudConnect, runCursorWorktreeSetup, runSetupScript, sameWorktreePath, sanitizeMcpServerName, saveAppSettings, setStatus, settingsSourceLabel, shouldAttachPastedText, shouldCompactContext, shouldRefreshReviewRequestTemplate, shouldRunWorktreeCleanup, sideboardHomeDir, sideboardReposDir, sideboardWorkspacesDir, slugify, spawnAgentTurn, splitForCompaction, stackAgentDefaultsFrom, stackIdFrom, stackMergeReadiness, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startDevServer, startMcpServer, startOrchestration, stripBrightsyNdjsonNoise, submitPrStack, suggestSlug, summarizeConversation, switchBrightsyAccount, syncWorkspacesFromThreads, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, thinkingEffortBars, thinkingEffortLabel, threadDisplayLabel, threadFilePath, threadLockPath, threadsDir, threadsSharingWorktree, toolDescription, toolDetail, toolFilePath, totalTokens, updateAdvancedSettings, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateDefaultsSettings, updateIntegrationsSettings, updateThread, validateLinearApiKey, withAgentInstructions, withThreadLock, workspaceSettingsSourceLabel, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreesRoot, writeInjectedMcpConfig, writePlanFile, writeThread, writeWorktreeFile };
3364
+ export { ATTACHMENTS_DIR, type ActiveRun, type AddStackLayerInput, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentEvent, 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, BRIGHTSY_MCP_ALLOWED_TOOLS, type BranchInfo, type BrightsyAccount, type BrightsyChatTarget, type BrightsyChatTargets, type BrightsyCloudConnectAgent, type BrightsyHarnessSettings, type BrightsySession, BrightsySideboardApi, type BrightsyTeamTargets, 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, COORDINATOR_TOOL_PLAYBOOK, type ClaudeHarnessSettings, type CleanupOrphansResult, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, type CompactResult, type CompactThresholds, type ComposerFileBuffer, type ConductorSettings, type ConductorWorkspace, type ConnectedBrightsyTeamInfo, type CreateChatTabInput, type CreateGlobalChatOpts, type CreateStackInput, type CreateThreadInput, type CreateWorktreeResult, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorWorktreesConfig, 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, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GhStackStatus, type GitHubStatus, type GitWorktreeStatus, HARNESS_ENV_KEYS, type HarnessId, type InitStackFromThreadInput, type IntegrationsSettings, type IpcApi, type IssueInfo, type IssueSource, LEGACY_ATTACHMENTS_DIR, LEGACY_PLAN_FILE_REL, LEGACY_REVIEW_REQUEST_PATH, type LandPreview, type LandResult, type ListIssuesResult, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, ORCHESTRATOR_AGENT_KINDS, type OpenPrStackLayersInput, type OpenStackLayerInput, type OpenStackLayerResult, 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, 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, REPO_REVIEW_NAME, REPO_REVIEW_PATH, REVIEW_REQUEST_NAME, REVIEW_REQUEST_PATH, REVIEW_REQUEST_PREFILL, type RepoSettings, type RepoSetupInfo, type RequestReviewResult, type ResolvedReviewGuidelines, type ReviewGuidelinesSource, type RunMode, type RunScript, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, type ScriptHandle, type SkillInfo, 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 Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, addPrStackLayer, addStackLayerFromThread, addWorkspace, adoptThread, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendMessage, applyAgentEvent, applyAppEnvironment, applyCompaction, applyThreadIntoMain, assertOrchestratorCapableAgent, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, attachmentsGitignoreBody, autoArchiveOnMergeEnabled, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyMcpAllowedTools, brightsyMcpServerName, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildPastedTextAttachment, buildReviewRequestAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, captureLoginEnv, captureTurnBaseline, checkoutPrStackLayer, childEnvWithAppSettings, claudeAdapter, claudeChromeEnabled, claudeUserSettingsPath, cleanupOrphanWorktrees, cloneRepoIntoSideboard, codexAdapter, coerceOrchestratorAgent, collectTakenTeamSlugs, commitAll, conductorDbPath, confirmLand, connectBrightsyTeam, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, createChatTab, createEmptyThread, createExistingBranchWorktree, createGlobalChat, createOrUpdatePr, createPrStack, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, deleteBranchOnPurgeEnabled, deleteThreadRecord, detectAgents, detectGhStack, detectLocalMergeConflicts, disconnectBrightsyTeam, discoverSkills, encodeBrightsyTarget, enrichWorkspacesWithGithub, ensureAgentPath, ensureCloudCoordinator, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureReviewRequestFile, ensureWorkspace, estimateMessageChars, estimateThreadChars, expandComposerPrompt, extractGhErrorDetail, extractPendingPlanQuestions, extractPresentedPlan, extractiveSummary, fetchPrHead, finalizeParts, findInvalidCacheControlTtlOrder, findOrphanWorktrees, findThreadByRef, findThreadForStackLayer, flattenTurnInput, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAgentInstructions, formatArtifactDirective, formatBrightsyFetchError, formatGhLandError, formatIpcInvokeError, formatMessagesAsTranscript, formatPlanQuestionAnswers, formatPlanQuestionsForChat, formatRateLimitResetHint, formatRenameBranchDirective, formatTranscriptMarkdown, formatWorkspaceInventory, formatWorktreeDirective, getAdapter, getAgentSetupInfo, getBrightsySession, getDefaultAgent, getDefaultEffort, getDefaultFast, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubStatus, getIssueSource, getLinearApiKey, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrMeta, getPrStack, getRepoSetupInfo, getRunMode, getRunScript, gh, ghHeadRef, ghRepoSelectArgs, git, globalAgentCwd, harnessEnvKey, hasConductorHook, hasCursorWorktreeSetup, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, importConductorWorkspace, importConductorWorkspaceAsync, initPrStack, initStackFromThread, initializeGitRepository, inspectGitWorktree, installAgent, isAskUserToolName, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isCursorAutoModel, isDirty, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isImageFilePath, isInPrStack, isLinearConnected, isOrchestratorCapableAgent, isOrchestratorThread, isPidAlive, isPlaceholderBranch, isPresentPlanToolName, isSessionQuotaLimit, isSideboardScratchPath, isThinkingEffort, isWorkspaceScratchPath, listAgentSetupInfo, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssues, listGlobalThreads, listIssues, listLinearIssues, listLinearIssuesDirect, listModelsForAgent, listOpencodeModels, listPrs, listRunScripts, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, loadAgentInstructions, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadRepoSettings, loadWorkspaceSettings, locksDir, loginAgent, lookupSoccerTeam, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAuthWarnings, mergePr, mergePrStack, mergeUsage, nextPastedTextName, nextThinkingEffort, normalizeParseResult, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, openPrStackLayers, openStackLayer, opencodeAdapter, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originGhRepoEnv, parseCursorRunnerLine, parseForceStopMessage, parseGhStackViewJson, parseGithubSlugFromRemoteUrl, parseMcpList, parsePlanQuestionsInput, parseSessionQuotaResetAt, partsToAssistantText, pastedTextStats, permissionMode, planFileAbs, previewLand, pushBranch, readExistingReviewRequestFile, readPlanFile, readSkillBody, readThread, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, refreshGitHubAuth, removeWorkspace, removeWorktree, repoSlug, requestReview, requireAgent, resetGhStackDetectCache, resolveClaudeExecutable, resolveConductorCursorAgentId, resolveCursorModelId, resolveDefaultBranch, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGhAuthToken, resolveGithubRepoSlug, resolveNewThreadOptions, resolvePlanMarkdown, resolvePrSelector, resolveQuotaFallbackAgent, resolveRepoRoot, resolveReviewGuidelines, resolveThreadDefaults, resolveThreadEffort, resolveWorktreeStartPoint, run, runArchiveScript, runCloudConnect, runCursorWorktreeSetup, runSetupScript, sameWorktreePath, sanitizeMcpServerName, saveAppSettings, setStatus, settingsSourceLabel, shouldAttachPastedText, shouldCompactContext, shouldRefreshReviewRequestTemplate, shouldRunWorktreeCleanup, sideboardHomeDir, sideboardReposDir, sideboardWorkspacesDir, slugify, spawnAgentTurn, splitForCompaction, stackAgentDefaultsFrom, stackIdFrom, stackMergeReadiness, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startDevServer, startMcpServer, startOrchestration, stripBrightsyNdjsonNoise, submitPrStack, suggestSlug, summarizeConversation, switchBrightsyAccount, syncWorkspacesFromThreads, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, thinkingEffortBars, thinkingEffortLabel, threadDisplayLabel, threadFilePath, threadLockPath, threadsDir, threadsSharingWorktree, toolDescription, toolDetail, toolFilePath, totalTokens, updateAdvancedSettings, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateDefaultsSettings, updateIntegrationsSettings, updateThread, validateLinearApiKey, withAgentInstructions, withThreadLock, workspaceSettingsSourceLabel, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreesRoot, writeInjectedMcpConfig, writePlanFile, writeThread, writeWorktreeFile };
package/dist/index.d.ts CHANGED
@@ -113,6 +113,18 @@ interface Thread {
113
113
  prUrl: string | null;
114
114
  /** Cached PR title for Conductor-style sidebar labels (PR title > branch). */
115
115
  prTitle: string | null;
116
+ /**
117
+ * Cached GitHub PR lifecycle from the last `getPrMeta` / merge
118
+ * (`OPEN` | `MERGED` | `CLOSED`, etc.). Used for purple “done” sidebar
119
+ * styling and Conductor-style auto-archive-on-merge.
120
+ */
121
+ prState: string | null;
122
+ /**
123
+ * When true, skip auto-archive if the PR is already MERGED (set on restore
124
+ * so unarchiving a merged workspace does not immediately re-archive).
125
+ * Cleared when `prState` becomes a non-merged open state again.
126
+ */
127
+ skipAutoArchiveOnMerge?: boolean;
116
128
  /**
117
129
  * Stable id for a GitHub PR stack this thread belongs to (shared across layer worktrees).
118
130
  * Null when not part of a stack.
@@ -636,6 +648,11 @@ interface AdvancedAppSettings {
636
648
  * Conductor: `git.delete_branch_on_archive` (default off).
637
649
  */
638
650
  deleteBranchOnPurge?: boolean;
651
+ /**
652
+ * When a linked PR becomes MERGED, archive the worktree’s chats.
653
+ * Conductor: auto-archive on merge (opt-in; default off).
654
+ */
655
+ autoArchiveOnMerge?: boolean;
639
656
  /** Max concurrent agent turns across the orchestrator (default 3). */
640
657
  maxConcurrent?: number;
641
658
  /**
@@ -753,6 +770,8 @@ declare function autoRunAfterSetupEnabled(settings?: AppSettings): boolean;
753
770
  declare function caffeinateWhileRunningEnabled(settings?: AppSettings): boolean;
754
771
  declare function caffeinateWhileCloudConnectEnabled(settings?: AppSettings): boolean;
755
772
  declare function deleteBranchOnPurgeEnabled(settings?: AppSettings): boolean;
773
+ /** Conductor-style opt-in — default off. */
774
+ declare function autoArchiveOnMergeEnabled(settings?: AppSettings): boolean;
756
775
  declare function autoCleanupOrphansEnabled(settings?: AppSettings): boolean;
757
776
  /** Default: switch to another agent (Auto) when orchestration hits a session limit. */
758
777
  declare function orchestrationQuotaOnLimit(settings?: AppSettings): OrchestrationQuotaOnLimit;
@@ -783,7 +802,7 @@ declare function resolveThreadEffort(raw: {
783
802
  fast?: unknown;
784
803
  }): ThinkingEffort;
785
804
  declare function normalizeThread(raw: Thread): Thread;
786
- declare function createEmptyThread(partial: Omit<Thread, 'id' | 'createdAt' | 'updatedAt' | 'messages' | 'queue' | 'status' | 'devPort' | 'activeRuns' | 'prUrl' | 'prTitle' | 'stackId' | 'stackLayer' | 'userSetTitle' | 'sessionId' | 'sourceIsFork' | 'parentThreadId' | 'autonomy' | 'model' | 'effort' | 'fast' | 'planMode' | 'attachments'> & Partial<Pick<Thread, 'sessionId' | 'sourceIsFork' | 'parentThreadId' | 'autonomy' | 'model' | 'effort' | 'fast' | 'planMode' | 'messages' | 'queue' | 'status' | 'devPort' | 'activeRuns' | 'prUrl' | 'prTitle' | 'stackId' | 'stackLayer' | 'userSetTitle' | 'attachments'>>): Thread;
805
+ declare function createEmptyThread(partial: Omit<Thread, 'id' | 'createdAt' | 'updatedAt' | 'messages' | 'queue' | 'status' | 'devPort' | 'activeRuns' | 'prUrl' | 'prTitle' | 'prState' | 'skipAutoArchiveOnMerge' | 'stackId' | 'stackLayer' | 'userSetTitle' | 'sessionId' | 'sourceIsFork' | 'parentThreadId' | 'autonomy' | 'model' | 'effort' | 'fast' | 'planMode' | 'attachments'> & Partial<Pick<Thread, 'sessionId' | 'sourceIsFork' | 'parentThreadId' | 'autonomy' | 'model' | 'effort' | 'fast' | 'planMode' | 'messages' | 'queue' | 'status' | 'devPort' | 'activeRuns' | 'prUrl' | 'prTitle' | 'prState' | 'skipAutoArchiveOnMerge' | 'stackId' | 'stackLayer' | 'userSetTitle' | 'attachments'>>): Thread;
787
806
  declare function withThreadLock<T>(id: string, fn: () => Promise<T>): Promise<T>;
788
807
  declare function readThread(id: string): Thread | null;
789
808
  declare function writeThread(thread: Thread): void;
@@ -2392,6 +2411,11 @@ declare class Orchestrator {
2392
2411
  private withPrSelector;
2393
2412
  getPrChecks(threadRef: string): Promise<PrCheckRun[] | null>;
2394
2413
  getPrMeta(threadRef: string): Promise<PrMeta | null>;
2414
+ /**
2415
+ * Persist PR URL/title/state and Conductor-style auto-archive when the PR
2416
+ * first becomes MERGED.
2417
+ */
2418
+ private persistPrMetaAndMaybeArchive;
2395
2419
  getPrStack(threadRef: string): Promise<PrStack | null>;
2396
2420
  /** Open worktrees for all (or one) stack layers discovered from a thread. */
2397
2421
  openPrStackLayers(threadRef: string, opts?: {
@@ -3337,4 +3361,4 @@ declare function writeInjectedMcpConfig(opts: {
3337
3361
  includeBrightsy?: boolean;
3338
3362
  }): Promise<string | null>;
3339
3363
 
3340
- export { ATTACHMENTS_DIR, type ActiveRun, type AddStackLayerInput, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentEvent, 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, BRIGHTSY_MCP_ALLOWED_TOOLS, type BranchInfo, type BrightsyAccount, type BrightsyChatTarget, type BrightsyChatTargets, type BrightsyCloudConnectAgent, type BrightsyHarnessSettings, type BrightsySession, BrightsySideboardApi, type BrightsyTeamTargets, 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, COORDINATOR_TOOL_PLAYBOOK, type ClaudeHarnessSettings, type CleanupOrphansResult, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, type CompactResult, type CompactThresholds, type ComposerFileBuffer, type ConductorSettings, type ConductorWorkspace, type ConnectedBrightsyTeamInfo, type CreateChatTabInput, type CreateGlobalChatOpts, type CreateStackInput, type CreateThreadInput, type CreateWorktreeResult, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorWorktreesConfig, 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, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GhStackStatus, type GitHubStatus, type GitWorktreeStatus, HARNESS_ENV_KEYS, type HarnessId, type InitStackFromThreadInput, type IntegrationsSettings, type IpcApi, type IssueInfo, type IssueSource, LEGACY_ATTACHMENTS_DIR, LEGACY_PLAN_FILE_REL, LEGACY_REVIEW_REQUEST_PATH, type LandPreview, type LandResult, type ListIssuesResult, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, ORCHESTRATOR_AGENT_KINDS, type OpenPrStackLayersInput, type OpenStackLayerInput, type OpenStackLayerResult, 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, 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, REPO_REVIEW_NAME, REPO_REVIEW_PATH, REVIEW_REQUEST_NAME, REVIEW_REQUEST_PATH, REVIEW_REQUEST_PREFILL, type RepoSettings, type RepoSetupInfo, type RequestReviewResult, type ResolvedReviewGuidelines, type ReviewGuidelinesSource, type RunMode, type RunScript, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, type ScriptHandle, type SkillInfo, 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 Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, addPrStackLayer, addStackLayerFromThread, addWorkspace, adoptThread, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendMessage, applyAgentEvent, applyAppEnvironment, applyCompaction, applyThreadIntoMain, assertOrchestratorCapableAgent, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, attachmentsGitignoreBody, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyMcpAllowedTools, brightsyMcpServerName, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildPastedTextAttachment, buildReviewRequestAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, captureLoginEnv, captureTurnBaseline, checkoutPrStackLayer, childEnvWithAppSettings, claudeAdapter, claudeChromeEnabled, claudeUserSettingsPath, cleanupOrphanWorktrees, cloneRepoIntoSideboard, codexAdapter, coerceOrchestratorAgent, collectTakenTeamSlugs, commitAll, conductorDbPath, confirmLand, connectBrightsyTeam, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, createChatTab, createEmptyThread, createExistingBranchWorktree, createGlobalChat, createOrUpdatePr, createPrStack, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, deleteBranchOnPurgeEnabled, deleteThreadRecord, detectAgents, detectGhStack, detectLocalMergeConflicts, disconnectBrightsyTeam, discoverSkills, encodeBrightsyTarget, enrichWorkspacesWithGithub, ensureAgentPath, ensureCloudCoordinator, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureReviewRequestFile, ensureWorkspace, estimateMessageChars, estimateThreadChars, expandComposerPrompt, extractGhErrorDetail, extractPendingPlanQuestions, extractPresentedPlan, extractiveSummary, fetchPrHead, finalizeParts, findInvalidCacheControlTtlOrder, findOrphanWorktrees, findThreadByRef, findThreadForStackLayer, flattenTurnInput, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAgentInstructions, formatArtifactDirective, formatBrightsyFetchError, formatGhLandError, formatIpcInvokeError, formatMessagesAsTranscript, formatPlanQuestionAnswers, formatPlanQuestionsForChat, formatRateLimitResetHint, formatRenameBranchDirective, formatTranscriptMarkdown, formatWorkspaceInventory, formatWorktreeDirective, getAdapter, getAgentSetupInfo, getBrightsySession, getDefaultAgent, getDefaultEffort, getDefaultFast, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubStatus, getIssueSource, getLinearApiKey, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrMeta, getPrStack, getRepoSetupInfo, getRunMode, getRunScript, gh, ghHeadRef, ghRepoSelectArgs, git, globalAgentCwd, harnessEnvKey, hasConductorHook, hasCursorWorktreeSetup, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, importConductorWorkspace, importConductorWorkspaceAsync, initPrStack, initStackFromThread, initializeGitRepository, inspectGitWorktree, installAgent, isAskUserToolName, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isCursorAutoModel, isDirty, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isImageFilePath, isInPrStack, isLinearConnected, isOrchestratorCapableAgent, isOrchestratorThread, isPidAlive, isPlaceholderBranch, isPresentPlanToolName, isSessionQuotaLimit, isSideboardScratchPath, isThinkingEffort, isWorkspaceScratchPath, listAgentSetupInfo, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssues, listGlobalThreads, listIssues, listLinearIssues, listLinearIssuesDirect, listModelsForAgent, listOpencodeModels, listPrs, listRunScripts, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, loadAgentInstructions, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadRepoSettings, loadWorkspaceSettings, locksDir, loginAgent, lookupSoccerTeam, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAuthWarnings, mergePr, mergePrStack, mergeUsage, nextPastedTextName, nextThinkingEffort, normalizeParseResult, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, openPrStackLayers, openStackLayer, opencodeAdapter, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originGhRepoEnv, parseCursorRunnerLine, parseForceStopMessage, parseGhStackViewJson, parseGithubSlugFromRemoteUrl, parseMcpList, parsePlanQuestionsInput, parseSessionQuotaResetAt, partsToAssistantText, pastedTextStats, permissionMode, planFileAbs, previewLand, pushBranch, readExistingReviewRequestFile, readPlanFile, readSkillBody, readThread, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, refreshGitHubAuth, removeWorkspace, removeWorktree, repoSlug, requestReview, requireAgent, resetGhStackDetectCache, resolveClaudeExecutable, resolveConductorCursorAgentId, resolveCursorModelId, resolveDefaultBranch, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGhAuthToken, resolveGithubRepoSlug, resolveNewThreadOptions, resolvePlanMarkdown, resolvePrSelector, resolveQuotaFallbackAgent, resolveRepoRoot, resolveReviewGuidelines, resolveThreadDefaults, resolveThreadEffort, resolveWorktreeStartPoint, run, runArchiveScript, runCloudConnect, runCursorWorktreeSetup, runSetupScript, sameWorktreePath, sanitizeMcpServerName, saveAppSettings, setStatus, settingsSourceLabel, shouldAttachPastedText, shouldCompactContext, shouldRefreshReviewRequestTemplate, shouldRunWorktreeCleanup, sideboardHomeDir, sideboardReposDir, sideboardWorkspacesDir, slugify, spawnAgentTurn, splitForCompaction, stackAgentDefaultsFrom, stackIdFrom, stackMergeReadiness, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startDevServer, startMcpServer, startOrchestration, stripBrightsyNdjsonNoise, submitPrStack, suggestSlug, summarizeConversation, switchBrightsyAccount, syncWorkspacesFromThreads, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, thinkingEffortBars, thinkingEffortLabel, threadDisplayLabel, threadFilePath, threadLockPath, threadsDir, threadsSharingWorktree, toolDescription, toolDetail, toolFilePath, totalTokens, updateAdvancedSettings, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateDefaultsSettings, updateIntegrationsSettings, updateThread, validateLinearApiKey, withAgentInstructions, withThreadLock, workspaceSettingsSourceLabel, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreesRoot, writeInjectedMcpConfig, writePlanFile, writeThread, writeWorktreeFile };
3364
+ export { ATTACHMENTS_DIR, type ActiveRun, type AddStackLayerInput, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentEvent, 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, BRIGHTSY_MCP_ALLOWED_TOOLS, type BranchInfo, type BrightsyAccount, type BrightsyChatTarget, type BrightsyChatTargets, type BrightsyCloudConnectAgent, type BrightsyHarnessSettings, type BrightsySession, BrightsySideboardApi, type BrightsyTeamTargets, 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, COORDINATOR_TOOL_PLAYBOOK, type ClaudeHarnessSettings, type CleanupOrphansResult, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, type CompactResult, type CompactThresholds, type ComposerFileBuffer, type ConductorSettings, type ConductorWorkspace, type ConnectedBrightsyTeamInfo, type CreateChatTabInput, type CreateGlobalChatOpts, type CreateStackInput, type CreateThreadInput, type CreateWorktreeResult, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorWorktreesConfig, 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, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GhStackStatus, type GitHubStatus, type GitWorktreeStatus, HARNESS_ENV_KEYS, type HarnessId, type InitStackFromThreadInput, type IntegrationsSettings, type IpcApi, type IssueInfo, type IssueSource, LEGACY_ATTACHMENTS_DIR, LEGACY_PLAN_FILE_REL, LEGACY_REVIEW_REQUEST_PATH, type LandPreview, type LandResult, type ListIssuesResult, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, ORCHESTRATOR_AGENT_KINDS, type OpenPrStackLayersInput, type OpenStackLayerInput, type OpenStackLayerResult, 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, 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, REPO_REVIEW_NAME, REPO_REVIEW_PATH, REVIEW_REQUEST_NAME, REVIEW_REQUEST_PATH, REVIEW_REQUEST_PREFILL, type RepoSettings, type RepoSetupInfo, type RequestReviewResult, type ResolvedReviewGuidelines, type ReviewGuidelinesSource, type RunMode, type RunScript, SIDEBOARD_FORCE_STOP, SIDEBOARD_MCP_ALLOWED_TOOLS, type ScriptHandle, type SkillInfo, 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 Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, addPrStackLayer, addStackLayerFromThread, addWorkspace, adoptThread, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendMessage, applyAgentEvent, applyAppEnvironment, applyCompaction, applyThreadIntoMain, assertOrchestratorCapableAgent, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, attachmentsGitignoreBody, autoArchiveOnMergeEnabled, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyMcpAllowedTools, brightsyMcpServerName, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildPastedTextAttachment, buildReviewRequestAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, captureLoginEnv, captureTurnBaseline, checkoutPrStackLayer, childEnvWithAppSettings, claudeAdapter, claudeChromeEnabled, claudeUserSettingsPath, cleanupOrphanWorktrees, cloneRepoIntoSideboard, codexAdapter, coerceOrchestratorAgent, collectTakenTeamSlugs, commitAll, conductorDbPath, confirmLand, connectBrightsyTeam, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, createChatTab, createEmptyThread, createExistingBranchWorktree, createGlobalChat, createOrUpdatePr, createPrStack, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, deleteBranchOnPurgeEnabled, deleteThreadRecord, detectAgents, detectGhStack, detectLocalMergeConflicts, disconnectBrightsyTeam, discoverSkills, encodeBrightsyTarget, enrichWorkspacesWithGithub, ensureAgentPath, ensureCloudCoordinator, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureReviewRequestFile, ensureWorkspace, estimateMessageChars, estimateThreadChars, expandComposerPrompt, extractGhErrorDetail, extractPendingPlanQuestions, extractPresentedPlan, extractiveSummary, fetchPrHead, finalizeParts, findInvalidCacheControlTtlOrder, findOrphanWorktrees, findThreadByRef, findThreadForStackLayer, flattenTurnInput, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAgentInstructions, formatArtifactDirective, formatBrightsyFetchError, formatGhLandError, formatIpcInvokeError, formatMessagesAsTranscript, formatPlanQuestionAnswers, formatPlanQuestionsForChat, formatRateLimitResetHint, formatRenameBranchDirective, formatTranscriptMarkdown, formatWorkspaceInventory, formatWorktreeDirective, getAdapter, getAgentSetupInfo, getBrightsySession, getDefaultAgent, getDefaultEffort, getDefaultFast, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubStatus, getIssueSource, getLinearApiKey, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrMeta, getPrStack, getRepoSetupInfo, getRunMode, getRunScript, gh, ghHeadRef, ghRepoSelectArgs, git, globalAgentCwd, harnessEnvKey, hasConductorHook, hasCursorWorktreeSetup, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, importConductorWorkspace, importConductorWorkspaceAsync, initPrStack, initStackFromThread, initializeGitRepository, inspectGitWorktree, installAgent, isAskUserToolName, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isCursorAutoModel, isDirty, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isImageFilePath, isInPrStack, isLinearConnected, isOrchestratorCapableAgent, isOrchestratorThread, isPidAlive, isPlaceholderBranch, isPresentPlanToolName, isSessionQuotaLimit, isSideboardScratchPath, isThinkingEffort, isWorkspaceScratchPath, listAgentSetupInfo, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssues, listGlobalThreads, listIssues, listLinearIssues, listLinearIssuesDirect, listModelsForAgent, listOpencodeModels, listPrs, listRunScripts, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, loadAgentInstructions, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadRepoSettings, loadWorkspaceSettings, locksDir, loginAgent, lookupSoccerTeam, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAuthWarnings, mergePr, mergePrStack, mergeUsage, nextPastedTextName, nextThinkingEffort, normalizeParseResult, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, openPrStackLayers, openStackLayer, opencodeAdapter, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originGhRepoEnv, parseCursorRunnerLine, parseForceStopMessage, parseGhStackViewJson, parseGithubSlugFromRemoteUrl, parseMcpList, parsePlanQuestionsInput, parseSessionQuotaResetAt, partsToAssistantText, pastedTextStats, permissionMode, planFileAbs, previewLand, pushBranch, readExistingReviewRequestFile, readPlanFile, readSkillBody, readThread, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, refreshGitHubAuth, removeWorkspace, removeWorktree, repoSlug, requestReview, requireAgent, resetGhStackDetectCache, resolveClaudeExecutable, resolveConductorCursorAgentId, resolveCursorModelId, resolveDefaultBranch, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGhAuthToken, resolveGithubRepoSlug, resolveNewThreadOptions, resolvePlanMarkdown, resolvePrSelector, resolveQuotaFallbackAgent, resolveRepoRoot, resolveReviewGuidelines, resolveThreadDefaults, resolveThreadEffort, resolveWorktreeStartPoint, run, runArchiveScript, runCloudConnect, runCursorWorktreeSetup, runSetupScript, sameWorktreePath, sanitizeMcpServerName, saveAppSettings, setStatus, settingsSourceLabel, shouldAttachPastedText, shouldCompactContext, shouldRefreshReviewRequestTemplate, shouldRunWorktreeCleanup, sideboardHomeDir, sideboardReposDir, sideboardWorkspacesDir, slugify, spawnAgentTurn, splitForCompaction, stackAgentDefaultsFrom, stackIdFrom, stackMergeReadiness, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startDevServer, startMcpServer, startOrchestration, stripBrightsyNdjsonNoise, submitPrStack, suggestSlug, summarizeConversation, switchBrightsyAccount, syncWorkspacesFromThreads, takenTeamSlugsForChatTab, takenTeamSlugsForOrchestration, taskMessageText, thinkingEffortBars, thinkingEffortLabel, threadDisplayLabel, threadFilePath, threadLockPath, threadsDir, threadsSharingWorktree, toolDescription, toolDetail, toolFilePath, totalTokens, updateAdvancedSettings, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateDefaultsSettings, updateIntegrationsSettings, updateThread, validateLinearApiKey, withAgentInstructions, withThreadLock, workspaceSettingsSourceLabel, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreesRoot, writeInjectedMcpConfig, writePlanFile, writeThread, writeWorktreeFile };