@sideboard-ai/core 0.1.199 → 0.1.200

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/{abletime-3CSCNAXU.js → abletime-345SE3B4.js} +2 -2
  2. package/dist/{abletime-H74RNIKV.js → abletime-KGPD3UUJ.js} +2 -2
  3. package/dist/{agents-BOYOK56K.js → agents-N7WXOGN6.js} +6 -4
  4. package/dist/{agents-AVH44CBS.js → agents-ZRIFDXCB.js} +6 -4
  5. package/dist/{app-settings-MMPLJHWF.js → app-settings-AXCURTZJ.js} +9 -1
  6. package/dist/{app-settings-FMTDH5RD.js → app-settings-V6IHESEQ.js} +9 -1
  7. package/dist/{chunk-DU2ICKLA.js → chunk-5XSDGJMP.js} +23 -9
  8. package/dist/{chunk-CTABTALL.js → chunk-62IMZIIZ.js} +58 -41
  9. package/dist/{chunk-CA7PWMQ7.js → chunk-7AHAABKN.js} +1 -1
  10. package/dist/{chunk-2IQ6W47G.js → chunk-CXFW5LIH.js} +40 -3
  11. package/dist/{chunk-S4EEYOSU.js → chunk-EWDE54OI.js} +2 -2
  12. package/dist/{chunk-HQKGK4KO.js → chunk-ISV5IFH3.js} +40 -3
  13. package/dist/{chunk-QFABSE3Q.js → chunk-NXM45OS3.js} +1 -1
  14. package/dist/{chunk-PPVN3APP.js → chunk-O2DRYD2B.js} +59 -42
  15. package/dist/{chunk-DU4ID3DA.js → chunk-OSPE25A7.js} +1 -1
  16. package/dist/{chunk-BLOKJY4U.js → chunk-PDMNYCPL.js} +2 -2
  17. package/dist/{chunk-PTAMHXBT.js → chunk-PGQGP4FD.js} +1 -1
  18. package/dist/{chunk-KI4YI72Y.js → chunk-PKUPOVKP.js} +23 -9
  19. package/dist/{coordinator-prompt-LB3GA3U4.js → coordinator-prompt-2RWBH6W7.js} +3 -3
  20. package/dist/{coordinator-prompt-ROWPLVQ3.js → coordinator-prompt-AL62H73U.js} +3 -3
  21. package/dist/{global-workspace-C5XKWCRH.js → global-workspace-VAO3BQP5.js} +3 -3
  22. package/dist/{global-workspace-V2A4YKZ6.js → global-workspace-Y5KKGXN7.js} +3 -3
  23. package/dist/index.cjs +113 -29
  24. package/dist/index.d.cts +42 -14
  25. package/dist/index.d.ts +42 -14
  26. package/dist/index.js +18 -8
  27. package/dist/mcp/run-stdio.cjs +87 -24
  28. package/dist/mcp/run-stdio.js +8 -8
  29. package/dist/{orchestrator-AJGDZEAS.js → orchestrator-D2EJ4Z7Z.js} +5 -5
  30. package/dist/{orchestrator-NCGYNVYN.js → orchestrator-DPHIMK44.js} +5 -5
  31. package/dist/{workspaces-GWEKIS3B.js → workspaces-DZZQM745.js} +3 -3
  32. package/dist/{workspaces-WIRJQ6HA.js → workspaces-HEKFQP4B.js} +3 -3
  33. package/dist/{worktree-UI5WJC3A.js → worktree-ENRMJUI3.js} +2 -2
  34. package/dist/{worktree-QA4J75FI.js → worktree-IEUSQ63V.js} +2 -2
  35. package/package.json +1 -1
@@ -9,13 +9,13 @@ import {
9
9
  enrichWorkspacesWithGithub,
10
10
  ensureGlobalCoordinatorCwd,
11
11
  formatWorkspaceInventory
12
- } from "./chunk-S4EEYOSU.js";
13
- import "./chunk-QFABSE3Q.js";
12
+ } from "./chunk-EWDE54OI.js";
13
+ import "./chunk-NXM45OS3.js";
14
14
  import "./chunk-D6JWYJ4P.js";
15
15
  import "./chunk-CJFBSQIB.js";
16
16
  import "./chunk-SYFVUF2C.js";
17
17
  import "./chunk-FNQNJOHY.js";
18
- import "./chunk-HQKGK4KO.js";
18
+ import "./chunk-ISV5IFH3.js";
19
19
  import "./chunk-NSTQ6QKD.js";
20
20
  import "./chunk-KGZBYWZ3.js";
21
21
  import "./chunk-EQNRWDLN.js";
@@ -17,13 +17,13 @@ import {
17
17
  orchestratorSessionPoisonedByBuiltins,
18
18
  slackCoordinatorSourceRef,
19
19
  takenTeamSlugsForOrchestration
20
- } from "./chunk-S4EEYOSU.js";
21
- import "./chunk-QFABSE3Q.js";
20
+ } from "./chunk-EWDE54OI.js";
21
+ import "./chunk-NXM45OS3.js";
22
22
  import "./chunk-D6JWYJ4P.js";
23
23
  import "./chunk-CJFBSQIB.js";
24
24
  import "./chunk-SYFVUF2C.js";
25
25
  import "./chunk-FNQNJOHY.js";
26
- import "./chunk-HQKGK4KO.js";
26
+ import "./chunk-ISV5IFH3.js";
27
27
  import "./chunk-NSTQ6QKD.js";
28
28
  import "./chunk-KGZBYWZ3.js";
29
29
  import {
@@ -15,11 +15,11 @@ import {
15
15
  orchestratorSessionPoisonedByBuiltins,
16
16
  slackCoordinatorSourceRef,
17
17
  takenTeamSlugsForOrchestration
18
- } from "./chunk-BLOKJY4U.js";
19
- import "./chunk-DU4ID3DA.js";
18
+ } from "./chunk-PDMNYCPL.js";
19
+ import "./chunk-OSPE25A7.js";
20
20
  import "./chunk-6K64FJDD.js";
21
21
  import "./chunk-QQKDGPUI.js";
22
- import "./chunk-2IQ6W47G.js";
22
+ import "./chunk-CXFW5LIH.js";
23
23
  import "./chunk-4TR3HZFT.js";
24
24
  import "./chunk-WDRMZKVB.js";
25
25
  import "./chunk-JT7R45JB.js";
package/dist/index.cjs CHANGED
@@ -988,6 +988,30 @@ var init_branch_prefix = __esm({
988
988
  }
989
989
  });
990
990
 
991
+ // src/store/usage-on-limit.ts
992
+ function isUsageOnLimit(value) {
993
+ return value === "keep_going" || value === "confirm" || value === "switch_agent" || value === "wait_reset";
994
+ }
995
+ function resolveUsageOnLimit(advanced = {}) {
996
+ if (isUsageOnLimit(advanced.usageOnLimit)) return advanced.usageOnLimit;
997
+ if (advanced.confirmClaudeUsageOverLimit) return "confirm";
998
+ if (advanced.orchestrationQuotaOnLimit === "wait_reset") return "wait_reset";
999
+ if (advanced.orchestrationQuotaOnLimit === "switch_agent") return "switch_agent";
1000
+ return "keep_going";
1001
+ }
1002
+ var USAGE_ON_LIMIT_VALUES;
1003
+ var init_usage_on_limit = __esm({
1004
+ "src/store/usage-on-limit.ts"() {
1005
+ "use strict";
1006
+ USAGE_ON_LIMIT_VALUES = [
1007
+ "keep_going",
1008
+ "confirm",
1009
+ "switch_agent",
1010
+ "wait_reset"
1011
+ ];
1012
+ }
1013
+ });
1014
+
991
1015
  // src/store/issue-source-labels.ts
992
1016
  function issueSourceLabel(source) {
993
1017
  if (source && source in ISSUE_SOURCE_LABELS) {
@@ -1016,6 +1040,7 @@ __export(app_settings_exports, {
1016
1040
  HARNESS_ENV_KEYS: () => HARNESS_ENV_KEYS,
1017
1041
  ISSUE_SOURCE_LABELS: () => ISSUE_SOURCE_LABELS,
1018
1042
  PROFILE_NOTES_MAX: () => PROFILE_NOTES_MAX,
1043
+ USAGE_ON_LIMIT_VALUES: () => USAGE_ON_LIMIT_VALUES,
1019
1044
  appSettingsPath: () => appSettingsPath,
1020
1045
  applyAppEnvironment: () => applyAppEnvironment,
1021
1046
  autoArchiveOnMergeEnabled: () => autoArchiveOnMergeEnabled,
@@ -1062,6 +1087,7 @@ __export(app_settings_exports, {
1062
1087
  isAbleTimeConnected: () => isAbleTimeConnected,
1063
1088
  isIssueSourceConnected: () => isIssueSourceConnected,
1064
1089
  isLinearConnected: () => isLinearConnected,
1090
+ isUsageOnLimit: () => isUsageOnLimit,
1065
1091
  issueSourceLabel: () => issueSourceLabel,
1066
1092
  loadAppSettings: () => loadAppSettings,
1067
1093
  maxConcurrentAgents: () => maxConcurrentAgents,
@@ -1077,6 +1103,7 @@ __export(app_settings_exports, {
1077
1103
  resolveNewThreadOptions: () => resolveNewThreadOptions,
1078
1104
  resolveOrchestratorDefaults: () => resolveOrchestratorDefaults,
1079
1105
  resolveThreadDefaults: () => resolveThreadDefaults,
1106
+ resolveUsageOnLimit: () => resolveUsageOnLimit,
1080
1107
  resolveViewerProfile: () => resolveViewerProfile,
1081
1108
  resolveViewerProfileForRepo: () => resolveViewerProfileForRepo,
1082
1109
  saveAbleTimeConnection: () => saveAbleTimeConnection,
@@ -1096,6 +1123,7 @@ __export(app_settings_exports, {
1096
1123
  updateIntegrationsSettings: () => updateIntegrationsSettings,
1097
1124
  updateOpencodeSettings: () => updateOpencodeSettings,
1098
1125
  updateProjectProfileSettings: () => updateProjectProfileSettings,
1126
+ usageOnLimit: () => usageOnLimit,
1099
1127
  writeViewerContext: () => writeViewerContext
1100
1128
  });
1101
1129
  function emptyPublicIntegrations() {
@@ -1460,6 +1488,9 @@ function normalizeAdvanced(raw) {
1460
1488
  if (typeof source.showCost === "boolean") {
1461
1489
  out.showCost = source.showCost;
1462
1490
  }
1491
+ if (isUsageOnLimit(source.usageOnLimit)) {
1492
+ out.usageOnLimit = source.usageOnLimit;
1493
+ }
1463
1494
  if (typeof source.confirmClaudeUsageOverLimit === "boolean") {
1464
1495
  out.confirmClaudeUsageOverLimit = source.confirmClaudeUsageOverLimit;
1465
1496
  }
@@ -2325,8 +2356,16 @@ function updateAdvancedSettings(patch) {
2325
2356
  if (typeof patch.showCost === "boolean") {
2326
2357
  advanced.showCost = patch.showCost;
2327
2358
  }
2328
- if (typeof patch.confirmClaudeUsageOverLimit === "boolean") {
2359
+ if (isUsageOnLimit(patch.usageOnLimit)) {
2360
+ advanced.usageOnLimit = patch.usageOnLimit;
2361
+ advanced.confirmClaudeUsageOverLimit = patch.usageOnLimit === "confirm";
2362
+ if (patch.usageOnLimit === "switch_agent" || patch.usageOnLimit === "wait_reset") {
2363
+ advanced.orchestrationQuotaOnLimit = patch.usageOnLimit;
2364
+ }
2365
+ } else if (typeof patch.confirmClaudeUsageOverLimit === "boolean") {
2329
2366
  advanced.confirmClaudeUsageOverLimit = patch.confirmClaudeUsageOverLimit;
2367
+ if (patch.confirmClaudeUsageOverLimit) advanced.usageOnLimit = "confirm";
2368
+ else if (advanced.usageOnLimit === "confirm") advanced.usageOnLimit = "keep_going";
2330
2369
  }
2331
2370
  if (typeof patch.autoArchiveOnMerge === "boolean") {
2332
2371
  advanced.autoArchiveOnMerge = patch.autoArchiveOnMerge;
@@ -2391,7 +2430,7 @@ function showCostEnabled(settings = loadAppSettings()) {
2391
2430
  return Boolean(settings.advanced.showCost);
2392
2431
  }
2393
2432
  function confirmClaudeUsageOverLimitEnabled(settings = loadAppSettings()) {
2394
- return Boolean(settings.advanced.confirmClaudeUsageOverLimit);
2433
+ return usageOnLimit(settings) === "confirm";
2395
2434
  }
2396
2435
  function autoArchiveOnMergeEnabled(settings = loadAppSettings()) {
2397
2436
  return Boolean(settings.advanced.autoArchiveOnMerge);
@@ -2399,8 +2438,12 @@ function autoArchiveOnMergeEnabled(settings = loadAppSettings()) {
2399
2438
  function autoCleanupOrphansEnabled(settings = loadAppSettings()) {
2400
2439
  return Boolean(settings.advanced.autoCleanupOrphans);
2401
2440
  }
2441
+ function usageOnLimit(settings = loadAppSettings()) {
2442
+ return resolveUsageOnLimit(settings.advanced);
2443
+ }
2402
2444
  function orchestrationQuotaOnLimit(settings = loadAppSettings()) {
2403
- return settings.advanced.orchestrationQuotaOnLimit ?? "switch_agent";
2445
+ const action = usageOnLimit(settings);
2446
+ return action === "wait_reset" ? "wait_reset" : "switch_agent";
2404
2447
  }
2405
2448
  function orchestrationQuotaFallbackAgent(settings = loadAppSettings()) {
2406
2449
  const preferred = settings.advanced.orchestrationQuotaFallbackAgent;
@@ -2515,6 +2558,8 @@ var init_app_settings = __esm({
2515
2558
  init_private_file();
2516
2559
  init_secret_vault();
2517
2560
  init_branch_prefix();
2561
+ init_usage_on_limit();
2562
+ init_usage_on_limit();
2518
2563
  init_issue_source_labels();
2519
2564
  init_account_profile();
2520
2565
  HARNESS_ENV_KEYS = {
@@ -13851,16 +13896,26 @@ function claudeUsageOverLimitWindows(usage) {
13851
13896
  if (!usage) return [];
13852
13897
  return usage.windows.filter(claudeUsageWindowOverLimit);
13853
13898
  }
13854
- function formatClaudeUsageOverLimitConfirm(windows, now = /* @__PURE__ */ new Date()) {
13855
- if (windows.length === 0) return "";
13899
+ function formatOverLimitWindowList(windows, now) {
13856
13900
  const parts = windows.map((w) => {
13857
13901
  const reset = formatClaudeUsageReset(w.resetsAt, now);
13858
13902
  return reset ? `${w.label} (${reset})` : w.label;
13859
13903
  });
13860
- const list = parts.join(", ");
13861
- const verb = windows.length === 1 ? "is" : "are";
13904
+ return {
13905
+ list: parts.join(", "),
13906
+ verb: windows.length === 1 ? "is" : "are"
13907
+ };
13908
+ }
13909
+ function formatClaudeUsageOverLimitConfirm(windows, now = /* @__PURE__ */ new Date()) {
13910
+ if (windows.length === 0) return "";
13911
+ const { list, verb } = formatOverLimitWindowList(windows, now);
13862
13912
  return `Claude Code ${list} ${verb} at or over the plan limit. Send this message anyway?`;
13863
13913
  }
13914
+ function formatClaudeUsageOverLimitWait(windows, now = /* @__PURE__ */ new Date()) {
13915
+ if (windows.length === 0) return "";
13916
+ const { list, verb } = formatOverLimitWindowList(windows, now);
13917
+ return `Claude Code ${list} ${verb} at or over the plan limit. Sending is paused until the window resets.`;
13918
+ }
13864
13919
  var WINDOW_META, WINDOW_ORDER;
13865
13920
  var init_claude_usage = __esm({
13866
13921
  "src/agents/claude-usage.ts"() {
@@ -13978,7 +14033,7 @@ async function getClaudePlanUsage(opts = {}) {
13978
14033
  cache = { at: now, value: null };
13979
14034
  return null;
13980
14035
  }
13981
- const fetchFn = opts.fetch ?? globalThis.fetch;
14036
+ const fetchFn = opts.fetch ?? httpFetch;
13982
14037
  const userAgent = opts.userAgent ?? await resolveClaudeUserAgent();
13983
14038
  const ac = new AbortController();
13984
14039
  const timer = setTimeout(() => ac.abort(), 8e3);
@@ -14024,6 +14079,7 @@ var init_claude_usage_client = __esm({
14024
14079
  import_node_os13 = require("os");
14025
14080
  import_node_path37 = require("path");
14026
14081
  init_run();
14082
+ init_fetch();
14027
14083
  init_app_settings();
14028
14084
  init_claude_usage();
14029
14085
  CLAUDE_OAUTH_USAGE_URL = "https://api.anthropic.com/api/oauth/usage";
@@ -14301,6 +14357,7 @@ __export(agents_exports, {
14301
14357
  formatClaudeUsageCompact: () => formatClaudeUsageCompact,
14302
14358
  formatClaudeUsageFetchedAt: () => formatClaudeUsageFetchedAt,
14303
14359
  formatClaudeUsageOverLimitConfirm: () => formatClaudeUsageOverLimitConfirm,
14360
+ formatClaudeUsageOverLimitWait: () => formatClaudeUsageOverLimitWait,
14304
14361
  formatClaudeUsageReset: () => formatClaudeUsageReset,
14305
14362
  formatClaudeUsageResetClock: () => formatClaudeUsageResetClock,
14306
14363
  formatClaudeUsageTooltip: () => formatClaudeUsageTooltip,
@@ -18514,12 +18571,18 @@ var init_fork_worktree = __esm({
18514
18571
 
18515
18572
  // src/orchestrator/quota-failover.ts
18516
18573
  function planOrchestrationQuotaFailover(thread, limitText, opts) {
18517
- if (!isOrchestratorThread(thread)) return null;
18518
18574
  if (!isSessionQuotaLimit(limitText)) return null;
18519
- const onLimit = opts?.onLimit ?? orchestrationQuotaOnLimit();
18575
+ const onLimit = opts?.onLimit ?? usageOnLimit();
18520
18576
  const resumeAt = parseSessionQuotaResetAt(limitText, opts?.now);
18577
+ if (onLimit === "keep_going" || onLimit === "confirm") {
18578
+ return {
18579
+ action: "none",
18580
+ reason: onLimit === "confirm" ? "Settings: confirm with user; no automatic continue." : "Settings: keep going; no automatic continue.",
18581
+ limitText
18582
+ };
18583
+ }
18521
18584
  if (thread.quotaContinuedFromId) {
18522
- if (resumeAt) {
18585
+ if (onLimit === "switch_agent" && resumeAt) {
18523
18586
  return {
18524
18587
  action: "wait_reset",
18525
18588
  reason: "Already continued once; waiting for quota reset instead.",
@@ -18529,7 +18592,7 @@ function planOrchestrationQuotaFailover(thread, limitText, opts) {
18529
18592
  }
18530
18593
  return {
18531
18594
  action: "none",
18532
- reason: "Already continued once; no parseable reset time.",
18595
+ reason: "Already continued once; no further automatic continue.",
18533
18596
  limitText
18534
18597
  };
18535
18598
  }
@@ -18566,8 +18629,19 @@ function buildQuotaHandoffAttachment(from, limitText, fallbackAgent) {
18566
18629
  const text7 = m.text.trim().replace(/\s+/g, " ").slice(0, 280);
18567
18630
  return text7 ? `- ${role}: ${text7}` : null;
18568
18631
  }).filter(Boolean);
18632
+ const orch = isOrchestratorThread(from);
18633
+ const instructions = orch ? [
18634
+ "- Continue fleet orchestration from this handoff.",
18635
+ "- Prefer Sideboard MCP (list_board, list_threads, get_thread, send_to_thread, \u2026) for live status.",
18636
+ "- Leave model Auto unless there is a specific reason to pin one.",
18637
+ `- Do not wait on the limited ${from.agent} account; keep going on ${fallbackAgent}.`
18638
+ ] : [
18639
+ "- Continue this worktree chat from the handoff.",
18640
+ "- Leave model Auto unless there is a specific reason to pin one.",
18641
+ `- Do not wait on the limited ${from.agent} account; keep going on ${fallbackAgent}.`
18642
+ ];
18569
18643
  const body = [
18570
- `# Orchestration handoff`,
18644
+ `# ${orch ? "Orchestration" : "Chat"} handoff`,
18571
18645
  "",
18572
18646
  `Previous chat: ${from.title} (\`${from.id}\`) on **${from.agent}** hit a session/usage limit.`,
18573
18647
  `Limit: ${limitText.trim()}`,
@@ -18583,14 +18657,11 @@ function buildQuotaHandoffAttachment(from, limitText, fallbackAgent) {
18583
18657
  recent.length ? recent.join("\n") : "(none)",
18584
18658
  "",
18585
18659
  `## Instructions`,
18586
- `- Continue fleet orchestration from this handoff.`,
18587
- `- Prefer Sideboard MCP (list_board, list_threads, get_thread, send_to_thread, \u2026) for live status.`,
18588
- `- Leave model Auto unless there is a specific reason to pin one.`,
18589
- `- Do not wait on the limited ${from.agent} account; keep going on ${fallbackAgent}.`
18660
+ ...instructions
18590
18661
  ].join("\n");
18591
18662
  return {
18592
18663
  id: (0, import_node_crypto10.randomUUID)(),
18593
- name: "Orchestration quota handoff.md",
18664
+ name: orch ? "Orchestration quota handoff.md" : "Quota handoff.md",
18594
18665
  kind: "transcript",
18595
18666
  content: body
18596
18667
  };
@@ -18603,12 +18674,15 @@ function createQuotaFailoverChat(from, fallbackAgent, limitText) {
18603
18674
  model: null,
18604
18675
  attachments: [handoff]
18605
18676
  });
18606
- return updateThread(tab.id, {
18607
- parentThreadId: from.id,
18677
+ const patch = {
18608
18678
  quotaContinuedFromId: from.id,
18609
- sourceRef: from.sourceRef,
18610
- sourceType: "orchestration"
18611
- });
18679
+ sourceRef: from.sourceRef
18680
+ };
18681
+ if (isOrchestratorThread(from)) {
18682
+ patch.parentThreadId = from.id;
18683
+ patch.sourceType = "orchestration";
18684
+ }
18685
+ return updateThread(tab.id, patch);
18612
18686
  }
18613
18687
  var import_node_crypto10, QUOTA_CONTINUE_PROMPT, QUOTA_RESUME_PROMPT;
18614
18688
  var init_quota_failover = __esm({
@@ -18621,10 +18695,10 @@ var init_quota_failover = __esm({
18621
18695
  init_thread_store();
18622
18696
  init_chat_tabs();
18623
18697
  QUOTA_CONTINUE_PROMPT = (fromAgent, fallback) => [
18624
- `${fromAgent} hit a session/usage limit. Continue this orchestration on ${fallback} using the attached handoff.`,
18625
- "Call list_board or list_threads for live fleet status, then proceed with the goal. Leave model Auto unless needed."
18698
+ `${fromAgent} hit a session/usage limit. Continue this chat on ${fallback} using the attached handoff.`,
18699
+ "Proceed with the goal. Leave model Auto unless needed."
18626
18700
  ].join(" ");
18627
- QUOTA_RESUME_PROMPT = "Session/usage limit window should have reset. Continue the orchestration from where you left off. Use list_board or list_threads for fleet status.";
18701
+ QUOTA_RESUME_PROMPT = "Session/usage limit window should have reset. Continue this chat from where you left off.";
18628
18702
  }
18629
18703
  });
18630
18704
 
@@ -21806,8 +21880,8 @@ var init_orchestrator = __esm({
21806
21880
  await this.send(threadId, QUOTA_RESUME_PROMPT);
21807
21881
  }
21808
21882
  /**
21809
- * Host-side continue when an orchestration chat hits a provider session/usage
21810
- * limit (not context size): switch agent (Auto) or wait until reset.
21883
+ * Host-side continue when any chat hits a provider session/usage limit
21884
+ * (not context size): switch agent (Auto) or wait until reset.
21811
21885
  */
21812
21886
  async maybeHandleOrchestrationQuotaFailover(threadId, limitText) {
21813
21887
  const thread = findThreadByRef(threadId);
@@ -21820,7 +21894,7 @@ var init_orchestrator = __esm({
21820
21894
  setStatus(threadId, "idle", null);
21821
21895
  appendMessage(threadId, {
21822
21896
  role: "agent",
21823
- text: `Sideboard will auto-retry this orchestration around ${plan.resumeAt.toLocaleString()} when the session limit resets.`,
21897
+ text: `Sideboard will auto-retry this chat around ${plan.resumeAt.toLocaleString()} when the session limit resets.`,
21824
21898
  ts: (/* @__PURE__ */ new Date()).toISOString()
21825
21899
  });
21826
21900
  this.emit({
@@ -23915,6 +23989,7 @@ __export(index_exports, {
23915
23989
  SlackRelayHub: () => SlackRelayHub,
23916
23990
  THINKING_EFFORTS: () => THINKING_EFFORTS,
23917
23991
  THINKING_PART_MAX_CHARS: () => THINKING_PART_MAX_CHARS,
23992
+ USAGE_ON_LIMIT_VALUES: () => USAGE_ON_LIMIT_VALUES,
23918
23993
  WORKTREE_ABLETIME_MCP_TOOLS: () => WORKTREE_ABLETIME_MCP_TOOLS,
23919
23994
  WORKTREE_GITHUB_MCP_TOOLS: () => WORKTREE_GITHUB_MCP_TOOLS,
23920
23995
  WORKTREE_LINEAR_MCP_TOOLS: () => WORKTREE_LINEAR_MCP_TOOLS,
@@ -24120,6 +24195,7 @@ __export(index_exports, {
24120
24195
  formatClaudeUsageCompact: () => formatClaudeUsageCompact,
24121
24196
  formatClaudeUsageFetchedAt: () => formatClaudeUsageFetchedAt,
24122
24197
  formatClaudeUsageOverLimitConfirm: () => formatClaudeUsageOverLimitConfirm,
24198
+ formatClaudeUsageOverLimitWait: () => formatClaudeUsageOverLimitWait,
24123
24199
  formatClaudeUsageReset: () => formatClaudeUsageReset,
24124
24200
  formatClaudeUsageResetClock: () => formatClaudeUsageResetClock,
24125
24201
  formatClaudeUsageTooltip: () => formatClaudeUsageTooltip,
@@ -24284,6 +24360,7 @@ __export(index_exports, {
24284
24360
  isThisProcessDesktopHost: () => isThisProcessDesktopHost,
24285
24361
  isThreadCaffeinated: () => isThreadCaffeinated,
24286
24362
  isThreadRecordFile: () => isThreadRecordFile,
24363
+ isUsageOnLimit: () => isUsageOnLimit,
24287
24364
  isWorkspaceScratchPath: () => isWorkspaceScratchPath,
24288
24365
  issueAttachmentForAbleTimeTask: () => issueAttachmentForAbleTimeTask,
24289
24366
  issueMatchesAssignee: () => issueMatchesAssignee,
@@ -24483,6 +24560,7 @@ __export(index_exports, {
24483
24560
  resolveSlackListenMode: () => resolveSlackListenMode,
24484
24561
  resolveThreadDefaults: () => resolveThreadDefaults,
24485
24562
  resolveThreadEffort: () => resolveThreadEffort,
24563
+ resolveUsageOnLimit: () => resolveUsageOnLimit,
24486
24564
  resolveVaultKey: () => resolveVaultKey,
24487
24565
  resolveViewerProfile: () => resolveViewerProfile,
24488
24566
  resolveViewerProfileForRepo: () => resolveViewerProfileForRepo,
@@ -24597,6 +24675,7 @@ __export(index_exports, {
24597
24675
  updateProjectProfileSettings: () => updateProjectProfileSettings,
24598
24676
  updateSchedule: () => updateSchedule,
24599
24677
  updateThread: () => updateThread,
24678
+ usageOnLimit: () => usageOnLimit,
24600
24679
  userClaudeMcpConfigPath: () => userClaudeMcpConfigPath,
24601
24680
  userCursorMcpConfigPath: () => userCursorMcpConfigPath,
24602
24681
  userMcpNamesToDisable: () => userMcpNamesToDisable,
@@ -32545,6 +32624,7 @@ init_outbound_watch();
32545
32624
  SlackRelayHub,
32546
32625
  THINKING_EFFORTS,
32547
32626
  THINKING_PART_MAX_CHARS,
32627
+ USAGE_ON_LIMIT_VALUES,
32548
32628
  WORKTREE_ABLETIME_MCP_TOOLS,
32549
32629
  WORKTREE_GITHUB_MCP_TOOLS,
32550
32630
  WORKTREE_LINEAR_MCP_TOOLS,
@@ -32750,6 +32830,7 @@ init_outbound_watch();
32750
32830
  formatClaudeUsageCompact,
32751
32831
  formatClaudeUsageFetchedAt,
32752
32832
  formatClaudeUsageOverLimitConfirm,
32833
+ formatClaudeUsageOverLimitWait,
32753
32834
  formatClaudeUsageReset,
32754
32835
  formatClaudeUsageResetClock,
32755
32836
  formatClaudeUsageTooltip,
@@ -32914,6 +32995,7 @@ init_outbound_watch();
32914
32995
  isThisProcessDesktopHost,
32915
32996
  isThreadCaffeinated,
32916
32997
  isThreadRecordFile,
32998
+ isUsageOnLimit,
32917
32999
  isWorkspaceScratchPath,
32918
33000
  issueAttachmentForAbleTimeTask,
32919
33001
  issueMatchesAssignee,
@@ -33113,6 +33195,7 @@ init_outbound_watch();
33113
33195
  resolveSlackListenMode,
33114
33196
  resolveThreadDefaults,
33115
33197
  resolveThreadEffort,
33198
+ resolveUsageOnLimit,
33116
33199
  resolveVaultKey,
33117
33200
  resolveViewerProfile,
33118
33201
  resolveViewerProfileForRepo,
@@ -33227,6 +33310,7 @@ init_outbound_watch();
33227
33310
  updateProjectProfileSettings,
33228
33311
  updateSchedule,
33229
33312
  updateThread,
33313
+ usageOnLimit,
33230
33314
  userClaudeMcpConfigPath,
33231
33315
  userCursorMcpConfigPath,
33232
33316
  userMcpNamesToDisable,
package/dist/index.d.cts CHANGED
@@ -196,13 +196,13 @@ interface Thread {
196
196
  */
197
197
  agentPid?: number | null;
198
198
  /**
199
- * When set, host auto-retries this orchestration chat after a provider
200
- * session/usage quota reset (ISO timestamp).
199
+ * When set, host auto-retries this chat after a provider session/usage
200
+ * quota reset (ISO timestamp).
201
201
  */
202
202
  quotaResumeAt?: string | null;
203
203
  /**
204
- * Orchestration chat this one was auto-continued from after a session quota
205
- * limit (prevents infinite agent-switch cascades).
204
+ * Chat this one was auto-continued from after a session quota limit
205
+ * (prevents infinite agent-switch cascades).
206
206
  */
207
207
  quotaContinuedFromId?: string | null;
208
208
  }
@@ -762,6 +762,26 @@ declare function formatViewerContextDirective(profile: ResolvedViewerProfile): s
762
762
  /** Short resume reminder — do not dump the full notes every turn. */
763
763
  declare function formatViewerContextReminder(): string;
764
764
 
765
+ /**
766
+ * Settings → Advanced — what to do when a Claude plan window is exhausted
767
+ * or a turn hits a provider session/usage limit. Node-free so the desktop
768
+ * renderer can import it via `@sideboard/usage-on-limit`.
769
+ *
770
+ * - `keep_going` (default): do not interrupt
771
+ * - `confirm`: ask before composer send
772
+ * - `switch_agent`: continue on the configured fallback agent
773
+ * - `wait_reset`: stop sending until the window resets, then retry
774
+ */
775
+ type UsageOnLimit = 'keep_going' | 'confirm' | 'switch_agent' | 'wait_reset';
776
+ declare const USAGE_ON_LIMIT_VALUES: readonly ["keep_going", "confirm", "switch_agent", "wait_reset"];
777
+ declare function isUsageOnLimit(value: unknown): value is UsageOnLimit;
778
+ /** Resolve the unified policy, including legacy Advanced fields. */
779
+ declare function resolveUsageOnLimit(advanced?: {
780
+ usageOnLimit?: unknown;
781
+ confirmClaudeUsageOverLimit?: boolean;
782
+ orchestrationQuotaOnLimit?: string;
783
+ }): UsageOnLimit;
784
+
765
785
  /** Node-free labels for renderer + core. Do not import app-settings from here. */
766
786
  declare const ISSUE_SOURCE_LABELS: {
767
787
  readonly github: "GitHub";
@@ -1020,8 +1040,13 @@ interface AdvancedAppSettings {
1020
1040
  */
1021
1041
  showCost?: boolean;
1022
1042
  /**
1023
- * When a Claude Code plan window is exhausted, ask before sending in
1024
- * Claude / orchestration chats. Default off — turn on in Settings → Advanced.
1043
+ * Unified over-limit policy. Default `keep_going`.
1044
+ * @see UsageOnLimit
1045
+ */
1046
+ usageOnLimit?: UsageOnLimit;
1047
+ /**
1048
+ * @deprecated Prefer {@link AdvancedAppSettings.usageOnLimit} `confirm`.
1049
+ * Still read on load for migration.
1025
1050
  */
1026
1051
  confirmClaudeUsageOverLimit?: boolean;
1027
1052
  /**
@@ -1043,9 +1068,8 @@ interface AdvancedAppSettings {
1043
1068
  /** When true, reconcile auto-removes excess orphan worktrees. */
1044
1069
  autoCleanupOrphans?: boolean;
1045
1070
  /**
1046
- * When an orchestration chat hits a provider session/usage limit:
1047
- * - `switch_agent` (default): continue on {@link AdvancedAppSettings.orchestrationQuotaFallbackAgent} with Auto
1048
- * - `wait_reset`: schedule auto-retry when the limit message’s reset time arrives
1071
+ * @deprecated Prefer {@link AdvancedAppSettings.usageOnLimit}.
1072
+ * Still read on load for migration.
1049
1073
  */
1050
1074
  orchestrationQuotaOnLimit?: OrchestrationQuotaOnLimit;
1051
1075
  /** Agent to continue on after a session limit (default: cursor). Ignored when equal to the limited agent. */
@@ -1325,12 +1349,14 @@ declare function deleteBranchOnPurgeEnabled(settings?: AppSettings): boolean;
1325
1349
  declare function cowboyModeEnabled(settings?: AppSettings): boolean;
1326
1350
  /** Settings → Advanced → Show cost (when available) (default off). */
1327
1351
  declare function showCostEnabled(settings?: AppSettings): boolean;
1328
- /** Settings → Advanced → Confirm send when Claude usage is over the limit (default off). */
1352
+ /** Settings → Advanced → Confirm with user when usage is over the limit. */
1329
1353
  declare function confirmClaudeUsageOverLimitEnabled(settings?: AppSettings): boolean;
1330
1354
  /** Conductor-style opt-in — default off. */
1331
1355
  declare function autoArchiveOnMergeEnabled(settings?: AppSettings): boolean;
1332
1356
  declare function autoCleanupOrphansEnabled(settings?: AppSettings): boolean;
1333
- /** Default: switch to another agent (Auto) when orchestration hits a session limit. */
1357
+ /** Unified over-limit policy (default: keep going). */
1358
+ declare function usageOnLimit(settings?: AppSettings): UsageOnLimit;
1359
+ /** @deprecated Prefer {@link usageOnLimit}. */
1334
1360
  declare function orchestrationQuotaOnLimit(settings?: AppSettings): OrchestrationQuotaOnLimit;
1335
1361
  /** Default fallback agent for orchestration session-limit continue (cursor). */
1336
1362
  declare function orchestrationQuotaFallbackAgent(settings?: AppSettings): AgentKind;
@@ -3278,6 +3304,8 @@ declare function formatClaudeUsageCompact(window: ClaudeUsageWindow): string;
3278
3304
  declare function claudeUsageOverLimitWindows(usage: ClaudePlanUsage | null | undefined): ClaudeUsageWindow[];
3279
3305
  /** Composer confirm copy when Settings → Advanced asks before sending over limit. */
3280
3306
  declare function formatClaudeUsageOverLimitConfirm(windows: ClaudeUsageWindow[], now?: Date): string;
3307
+ /** Composer copy when Settings → Advanced stops send until the window resets. */
3308
+ declare function formatClaudeUsageOverLimitWait(windows: ClaudeUsageWindow[], now?: Date): string;
3281
3309
 
3282
3310
  type FetchLike$1 = (input: string, init?: {
3283
3311
  headers?: Record<string, string>;
@@ -4505,8 +4533,8 @@ declare class Orchestrator {
4505
4533
  private schedulePendingQuotaResumes;
4506
4534
  private resumeAfterQuotaWait;
4507
4535
  /**
4508
- * Host-side continue when an orchestration chat hits a provider session/usage
4509
- * limit (not context size): switch agent (Auto) or wait until reset.
4536
+ * Host-side continue when any chat hits a provider session/usage limit
4537
+ * (not context size): switch agent (Auto) or wait until reset.
4510
4538
  */
4511
4539
  private maybeHandleOrchestrationQuotaFailover;
4512
4540
  /**
@@ -6531,4 +6559,4 @@ declare function pollSlackOutboundWatches(opts?: {
6531
6559
  now?: number;
6532
6560
  }): Promise<void>;
6533
6561
 
6534
- export { ABLETIME_MCP_PATH, ABLETIME_MCP_PM_PATH, ABLETIME_PM_TOOL_NAMES, AGENT_GIT_ACTIONS, AGENT_RUNNER_MAX_OLD_SPACE_MB, ATTACHMENTS_DIR, type AbleTimeAssignedIssuesResult, type AbleTimeComment, type AbleTimeMcpToolName, type AbleTimeOrientation, type AbleTimePmToolName, type AbleTimeProject, type AbleTimeTask, type AbleTimeTaskRelationInput, type AbleTimeViewer, type AccountProfile, type ActiveRun, type AddBoardPinInput, type AddStackLayerInput, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentEvent, type AgentGitAction, type AgentKind, type AgentModelCatalog, type AgentModelInfo, type AgentSetupActionResult, type AgentSetupInfo, type AgentSetupKind, type AgentStatus, type AgentTurnInput, type AnthropicCacheControl, type AppSettings, type ApplyIntoMainResult, type AttachCommand, type Autonomy, BAKED_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, CLI_DIR, 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, CONTEXT_REVIEW_PATH, CONVENTION_SETUP_RELPATHS, COORDINATOR_TOOL_PLAYBOOK, type CaffeinateHoldState, type ClaudeExtraUsage, type ClaudeHarnessSettings, type ClaudePlanUsage, type ClaudeUsageWindow, type ClaudeUsageWindowId, type CleanupOrphansResult, type CliAgentKind, type CliExecutableSettings, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, type CodeLineRange, type CodeRefInput, type CompactResult, type CompactThresholds, type ComposerFileBuffer, type ConductorSettings, type ConductorWorkspace, type ConnectedBrightsyTeamInfo, type ConventionSetupFile, type CowboyThreadFields, type CreateChatTabInput, type CreateGlobalChatOpts, type CreateScheduledTaskInput, type CreateStackInput, type CreateThreadInput, type CreateWorktreeResult, type CursorAgentUsageSnapshot, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorUsageCost, type CursorWorktreesConfig, DEFAULT_ABLETIME_HOST, DEFAULT_WORKTREE_SORT, DETACHED_JOBS_DIR, type DefaultsAppSettings, type DefaultsSettingsPatch, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, type EnsuredReviewGuidelines, type ExpandResult, FAMOUS_SOCCER_TEAMS, FOLLOW_UP_BEHAVIORS, type FastForwardMainResult, type FollowUpBehavior, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GITHUB_GIT_AUTH_MODES, GITHUB_PR_BODY_MAX_CHARS, GITHUB_PR_BODY_SAFE_CHARS, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GhStackStatus, type GitHubIssue, type GitHubIssueComment, type GitHubIssueRelationInput, type GitHubStatus, type GitWorktreeStatus, type GithubGitAuthMode, HARNESS_ENV_KEYS, HOME_BOARD_CACHE_TTL_MS, type HarnessId, type HomeBoardLoaded, type HomeBoardRemoteData, IMPLIED_TICKET_RESOLVE_PROMPT, ISSUE_SOURCE_LABELS, type InitStackFromThreadInput, type IntegrationsSettings, type IpcApi, type IssueActivityComment, type IssueAssigneeFilter, type IssueCycleInfo, type IssueInfo, type IssueSource, LEGACY_ATTACHMENTS_DIR, LEGACY_DETACHED_JOBS_DIR, LEGACY_PLAN_FILE_REL, LEGACY_REVIEW_REQUEST_PATH, LINEAR_OAUTH_CANCELLED, LINEAR_OAUTH_PORT, LINEAR_OAUTH_REDIRECT, LINEAR_OAUTH_SCOPES, LIVE_TURN_SPAWN_GRACE_MS, LONG_RUNNING_SKILL_COMMAND, type LandPreview, type LandResult, type LinearAssignedIssuesResult, type LinearAssigneeFilter, type LinearComment, type LinearCycle, type LinearIssue, type LinearIssueAttachment, type LinearIssueComment, type LinearIssueRef, type LinearIssueRelation, type LinearIssueRelationInput, type LinearNamedRef, LinearOAuthCancelledError, type LinearProjectRef, type LinearTeam, type LinearTeamsResult, type LinearWorkflowState, type ListIssuesOptions, type ListIssuesResult, type ListPrsOptions, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, OPTIONAL_SERVICES, OPTIONAL_SERVICE_IDS, ORCHESTRATOR_AGENT_KINDS, type OpenPrStackLayersInput, type OpenStackLayerInput, type OpenStackLayerResult, type OptionalServiceCliStatus, type OptionalServiceId, type OptionalServiceSpec, type OrchestrationQuotaOnLimit, Orchestrator, type OrchestratorAgentKind, type OrchestratorDefaultsSettings, type OrchestratorEvent, type OrchestratorRuntime, type OrphanWorktree, PASTE_ATTACH_MIN_CHARS, PASTE_ATTACH_MIN_LINES, PLAN_FILE_NAME, PLAN_FILE_REL, PLAN_MODE_INSTRUCTION, PLAN_QUESTION_ANSWERS_PREFIX, PROFILE_NOTES_MAX, PR_DETAILS_JSON_FIELDS, type PathRefInput, 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 ProjectProfileSettings, 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 ResolvedAccountProfile, type ResolvedReviewGuidelines, type ResolvedThreadDefaults, type ResolvedViewerProfile, type ReviewGuidelinesSource, type RunMode, type RunScript, SEED_FULL_TOOL_MESSAGES, SEED_MAX_CHARS, 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 SessionSeedOptions, type SetupLogSnapshot, type SetupRunResult, type SidebarGitAction, type SideboardMcpProfile, type SkillInfo, type SlackInboundMessage, type SlackListenOptions, type SlackListenStatus, SlackOAuthCancelledError, type SlackOutboundReply, type SlackOutboundWatch, type SlackRelayClientMessage, type SlackRelayClientOptions, SlackRelayHub, type SlackRelayServerHandle, type SlackRelayServerMessage, type SlackRelayServerOptions, type SlackWorkspaceInfo, type SourceType, type SpawnTurnHandle, type SummarizeResult, THINKING_EFFORTS, THINKING_PART_MAX_CHARS, type 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, type ViewerContextWriteResult, type ViewerProfile, WORKTREE_ABLETIME_MCP_TOOLS, WORKTREE_GITHUB_MCP_TOOLS, WORKTREE_LINEAR_MCP_TOOLS, WORKTREE_MCP_TOOLS, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, type WorktreeSortMode, ableTimeDependencyTarget, abletimeMcpRequest, abletimeMcpUrl, abletimeToolUsesPm, ackSlackInboundSeen, addBoardPin, addPrStackLayer, addStackLayerFromThread, addWorkspace, adoptThread, agentGitPrompt, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendIndexedGitConfig, appendMessage, applyAgentEvent, applyAgentRunnerHeapEnv, applyAppEnvironment, applyCompaction, applyForwardOccupancy, applyGithubGitAuthEnv, applyPromptCacheTtlEnv, applySystemCaEnv, applyThreadIntoMain, applyTurnUsage, armSchedules, assertOrchestratorCapableAgent, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, attachmentsGitignoreBody, autoArchiveOnMergeEnabled, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAccessTokenNeedsRefresh, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyInjectWorktreeMcpEnabled, brightsyMcpAllowedTools, brightsyMcpServerName, buildBrightsySessionSeed, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildCodeRefAttachment, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildLinearIssueFilter, buildPastedTextAttachment, buildPathRefAttachment, buildReviewRequestAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateHoldPath, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, caffeinateWhileSchedulesEnabled, caffeinateWhileSlackListenEnabled, callAbleTimeTool, canonicalizeRepoPath, captureLoginEnv, captureTurnBaseline, checkoutPrStackLayer, childEnvWithAppSettings, claimDesktopHost, clampGithubPrBody, classifyWorktreeColumn, claudeAdapter, claudeChromeEnabled, claudeUsageOverLimitWindows, claudeUserSettingsPath, cleanupOrphanWorktrees, clearBoardPins, clearHomeBoardCache, clipThinkingForStore, cloneRepoIntoSideboard, codeRefRangeLabel, codexAdapter, codexSandboxWritableRootsArgs, codexUnattendedGitConfigArgs, coerceOrchestratorAgent, collectTakenTeamSlugs, commentAbleTimeTask, commentGitHubIssue, commentLinearIssue, commitAll, computeNextRunAt, conductorBundledBinDir, conductorDbPath, confirmClaudeUsageOverLimitEnabled, confirmLand, connectBrightsyTeam, connectOptionalService, connectSlackToken, connectedOptionalServices, contextTokens, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, countUnpushedVsOrigin, cowboyModeEnabled, createAbleTimeTask, createChatTab, createEmptyThread, createExistingBranchWorktree, createGitHubIssue, 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, emptySetupLog, encodeBrightsyTarget, enrichPathWithNpmGlobalBin, enrichWorkspacesWithGithub, ensureAbleTimeTask, ensureAgentPath, ensureBrightsyLocalConfigFresh, ensureCloudCoordinator, ensureConnectedBrightsyTeamTokens, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureReviewGuidelinesFile, ensureReviewRequestFile, ensureReviewSkillFile, ensureSlackCoordinator, ensureSlackDeviceIdentity, ensureWorkspace, estimateMessageChars, estimateOccupancyTokens, estimateThreadChars, examplePrefixedBranch, expandComposerPrompt, extractBrightsyContextSummary, extractGhErrorDetail, extractPendingPlanQuestions, extractPresentedPlan, extractiveSummary, fastForwardMainCheckoutIfSafe, fetchOriginForWorktree, fetchPrHead, finalizeParts, findConventionSetup, findInvalidCacheControlTtlOrder, findLastBrightsyContextSummary, findLiveThreadForCreate, findLiveThreadForCreateSource, findOrphanWorktrees, findProjectProfileKey, findSlackCoordinator, findThreadByRef, findThreadForStackLayer, fireSchedule, flattenTurnInput, flipLinearRelationType, foldLegacyRolesIntoNotes, followUpBehavior, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAccountProfilePlaybookLine, formatArtifactDirective, formatBrightsyFetchError, formatClaudeExtraUsageDetail, formatClaudeUsageCompact, formatClaudeUsageFetchedAt, formatClaudeUsageOverLimitConfirm, formatClaudeUsageReset, formatClaudeUsageResetClock, formatClaudeUsageTooltip, formatDetachedJobInvoke, formatFetchError, formatGhLandError, formatGitAuthModeDirective, formatIpcInvokeError, formatIssueToolsDirective, formatIssueToolsReminder, formatLinearDirective, formatLinearReminder, formatLongRunningDirective, formatLongRunningReminder, formatMergePrError, formatMessagesAsTranscript, formatOptionalServicesDirective, formatOptionalServicesReminder, formatPlanQuestionAnswers, formatPlanQuestionsForChat, formatPrGateDirective, formatProcessGuideDirective, formatProjectProfilePlaybookLines, formatRateLimitResetHint, formatRenameBranchDirective, formatScheduleWhen, formatScheduledPrompt, formatSlackExternalReplyPrompt, formatSlackInboundPrompt, formatSlackRepliesForTurn, formatSlackReplyContinuePrompt, formatSlackSignedReply, formatSlackWorkingText, formatTranscriptMarkdown, formatUiReminder, formatViewerContextDirective, formatViewerContextReminder, formatWorkspaceInventory, formatWorkspaceProfileSuffix, formatWorktreeDirective, formatWorktreeReminder, forwardContextUsage, forwardOccupancyTokens, fromInclusiveInputUsage, getAbleTimeAccessToken, getAbleTimeHost, getAbleTimeOrientation, getAbleTimeTask, getAdapter, getAgentSetupInfo, getBrightsySession, getCaffeinateHold, getClaudePlanUsage, getDefaultAgent, getDefaultEffort, getDefaultFast, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubIssue, getGitHubStatus, getGithubGitAuthMode, getGithubPat, getHomeBoardInputs, getIssueSource, getLinearApiKey, getLinearAuthToken, getLinearIssue, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrForHeadBranch, getPrMeta, getPrStack, getRepoSetupInfo, getRunMode, getRunScript, getSchedule, getSlackWorkspace, gh, ghHeadRef, ghRepoSelectArgs, git, gitBranchPrefixSetting, githubAgentGitEnv, githubHttpsInsteadOfEntries, githubRelationEditFlag, globalAgentCwd, groupHomeBoardWorktrees, handleSlackInbound, harnessEnvKey, hasBakedLinearOAuth, hasBakedSlackOAuth, hasConductorHook, hasConventionSetup, hasCursorWorktreeSetup, hasEnabledSchedules, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, hottestClaudeWindow, httpFetch, importConductorWorkspace, importConductorWorkspaceAsync, initPrStack, initStackFromThread, initializeGitRepository, inspectGitWorktree, installAgent, installNpmGlobalPackage, installOptionalServiceCli, interruptSlackCoordinatorForInbound, invalidateThreadListCache, isAbleTimeConnected, isAskUserToolName, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isConductorBundledCli, isCowboyThread, isCursorApiKeyConfigured, isCursorAutoModel, isDefaultishSourceRef, isDesktopHostAlive, isDirty, isGhPrBodyTooLongError, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isHomeBoardThread, isImageFilePath, isInPrStack, isInboundForThisDesktop, isInjectedOrchMcpName, isInternalAgentStatusText, isIssueSourceConnected, isLinearConnected, isLinearNoneToken, isLinearOAuthCancelled, isOptionalServiceId, isOrchestratorCapableAgent, isOrchestratorThread, isPidAlive, isPlaceholderBranch, isPlanQuestionAnswersMessage, isPollWrapperToolName, isPrNotMergeableError, isPresentPlanToolName, isPrimaryCheckoutThread, isSessionQuotaLimit, isSetupLastError, isShellToolName, isSideboardScratchPath, isSlackCoordinatorThread, isSlackExternalReplyPrompt, isSlackOAuthCancelled, isStaleLastErrorDuringTurn, isSubagentToolName, isThinkingEffort, isThisProcessDesktopHost, isThreadCaffeinated, isThreadRecordFile, isWorkspaceScratchPath, issueAttachmentForAbleTimeTask, issueMatchesAssignee, issueSourceLabel, issueTicketFromThread, lastAssistantMessageText, lastRequestOccupancy, latestPendingPlanQuestions, linearAuthorizationHeader, linearCycleIsActive, linearGraphql, linearOAuthAuthorizeUrl, linearOAuthCredentials, linearRelationCreateInput, linearTicketIdFromThread, listAbleTimeAssignedIssues, listAbleTimeProjects, listAbleTimeTasks, listAgentSetupInfo, listBoardPins, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssueCommentsSince, listGitHubIssues, listGlobalThreads, listIssues, listLinearAssignedIssues, listLinearCommentsSince, listLinearIssues, listLinearIssuesDirect, listLinearIssuesFiltered, listLinearTeamCycles, listLinearTeams, listModelsForAgent, listOpencodeModels, listPrs, listRunScripts, listSchedules, listSlackOutboundWatches, listSlackWorkspaces, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, liveActivitySummary, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadHomeBoardInputs, loadRepoSettings, loadWorkspaceSettings, locksDir, loginAgent, lookupSoccerTeam, mapAbleTimeTask, markPrReady, materializeSystemCaBundle, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAuthWarnings, mcpStatusThinkingFromClaudeInit, mentionsPrGoal, mergeAgentGitAuthEnv, mergePr, mergePrStack, mergeSetupOutput, mergeSideboardIntoMcpServersJson, mergeUsage, messagePartParentId, messagesSinceLastBrightsyContextSummary, nextPastedTextName, nextThinkingEffort, nonInteractiveGitProcessEnv, normalizeAbleTimeHost, normalizeCodeSelection, normalizeLinearRelationType, normalizeParseResult, normalizeServiceOrigin, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, openPrStackLayers, openStackLayer, opencodeAdapter, optionalServiceConnected, optionalServiceSpec, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originFetchBranch, originGhRepoEnv, packagedDetachedJobPath, parseClaudeUsagePayload, parseCursorRunnerLine, parseDurationMs, parseForceStopMessage, parseGhStackViewJson, parseGitHubIssueNumber, parseGithubSlugFromRemoteUrl, parseMcpList, parsePlanQuestionsInput, parsePrDetailsView, parseSessionQuotaResetAt, parseSlackRelayClientMessage, parseSlackRelayServerMessage, partsToAssistantText, pastedTextStats, pendingSlackExternalReplies, permissionMode, persistPendingFileAttachments, persistVaultKeyInKeychain, planFileAbs, planQuestionsSignature, pollSlackOutboundWatches, posixShellSingleQuote, preferredCursorCostCents, prepareTerminalCommand, previewLand, promptMentionsBrightsy, pushBranch, readExistingReviewRequestFile, readKeychainVaultKey, readPlanFile, readSetupLog, readSkillBody, readThread, readViewerContext, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, recordScheduleRun, recordSlackOutboundWatch, refreshBrightsyAccessToken, refreshGitHubAuth, registerPackagedUserMcpClients, releaseCaffeinateHoldForThread, releaseDesktopHost, removeBoardPin, removeWorkspace, removeWorktree, repoSlug, requestOccupancy, requestReview, requireAgent, resetGhStackDetectCache, resetGithubAgentTokenMemo, resolveAccountProfile, resolveAccountProfileFromSettings, resolveAgentExecutable, resolveAgentGitAuthEnv, resolveClaudeExecutable, resolveCodexGitWritableRoots, resolveCommandBinarySync, resolveConductorCursorAgentId, resolveCreateFirstPrompt, resolveCursorModelId, resolveDefaultBranch, resolveDetachedJobScript, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGhAuthToken, resolveGitBranchPrefix, resolveGitDirsForLockRecovery, resolveGitHubIssueRepo, resolveGithubAgentToken, resolveGithubRepoSlug, resolveLinearCycle, resolveLinearLabel, resolveLinearProject, resolveLinearState, resolveLinearTeam, resolveLoginCommand, resolveNewOrchestratorOptions, resolveNewThreadOptions, resolveOrchChildFollowUp, resolveOrchestratorDefaults, resolvePlanMarkdown, resolvePrSelector, resolvePrSelectors, resolveQuotaFallbackAgent, resolveRepoRoot, resolveReviewGuidelines, resolveScheduleThreadId, resolveSendFollowUp, resolveSidebarGitPrompt, resolveSlackListenMode, resolveThreadDefaults, resolveThreadEffort, resolveVaultKey, resolveViewerProfile, resolveViewerProfileForRepo, resolveWorktreeStartPoint, rewriteAbleTimeError, rewriteLinearError, run, runArchiveScript, runCloudConnect, runConventionSetup, runCursorWorktreeSetup, runSetupScript, runSlackListen, runSlackRelayClient, runWorkspaceSetup, sameWorktreePath, sanitizeGitBranchPrefix, sanitizeMcpServerName, saveAbleTimeConnection, saveAppSettings, saveLinearOAuth, schedulesPath, scrubGithubTokensFromChildEnv, searchAbleTimeTasks, secureFileUnlocksWith, setCaffeinateHold, setHttpFetchImpl, setStatus, setVaultMasterKey, settingsSourceLabel, shouldAttachPastedText, shouldCompactContext, shouldInjectBrightsyMcp, shouldRefreshReviewRequestTemplate, shouldRemoveWorktreeOnTeardown, shouldResetSessionForOccupancy, shouldRunWorktreeCleanup, shouldStampSetupLastError, showCostEnabled, sideboardHomeDir, sideboardMcpProfile, sideboardReposDir, sideboardWorkspacesDir, slackAppLevelToken, slackArchiveUrl, slackCoordinatorSourceRef, slackListenEnabled, slackOAuthCredentials, slackOAuthResultUrl, slackRelayUrl, slugify, spawnAgentTurn, splitForCompaction, splitTurnInputForSystemPrompt, 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, ticketSlugForBranch, toAbleTimeIssueInfo, toGitHubIssueInfo, toPublicAppSettings, toolActivityLine, toolDescription, toolDetail, toolFilePath, totalTokens, trustSystemCertificates, turnCostUsdFromCursorUsage, updateAbleTimeTask, updateAdvancedSettings, updateAgentExecutable, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateCodexSettings, updateDefaultsSettings, updateGitHubIssue, updateIntegrationsSettings, updateLinearIssue, updateOpencodeSettings, updateProjectProfileSettings, updateSchedule, updateThread, userClaudeMcpConfigPath, userCursorMcpConfigPath, userMcpNamesToDisable, validateLinearApiKey, verifyAbleTimeConnection, verifyOptionalService, visibleToolRowDetail, waitForPidExit, warmGithubAgentAuth, whichOnPath, withEventParentId, withEventsParentId, withExportedPath, withMaxOldSpaceSize, withThreadLock, workspaceSettingsSourceLabel, worktreeBoardStatus, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreeSlugForTicket, worktreesRoot, wrapReviewSkillMarkdown, writeInjectedMcpConfig, writePlanFile, writeThread, writeViewerContext, writeWorktreeFile };
6562
+ export { ABLETIME_MCP_PATH, ABLETIME_MCP_PM_PATH, ABLETIME_PM_TOOL_NAMES, AGENT_GIT_ACTIONS, AGENT_RUNNER_MAX_OLD_SPACE_MB, ATTACHMENTS_DIR, type AbleTimeAssignedIssuesResult, type AbleTimeComment, type AbleTimeMcpToolName, type AbleTimeOrientation, type AbleTimePmToolName, type AbleTimeProject, type AbleTimeTask, type AbleTimeTaskRelationInput, type AbleTimeViewer, type AccountProfile, type ActiveRun, type AddBoardPinInput, type AddStackLayerInput, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentEvent, type AgentGitAction, type AgentKind, type AgentModelCatalog, type AgentModelInfo, type AgentSetupActionResult, type AgentSetupInfo, type AgentSetupKind, type AgentStatus, type AgentTurnInput, type AnthropicCacheControl, type AppSettings, type ApplyIntoMainResult, type AttachCommand, type Autonomy, BAKED_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, CLI_DIR, 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, CONTEXT_REVIEW_PATH, CONVENTION_SETUP_RELPATHS, COORDINATOR_TOOL_PLAYBOOK, type CaffeinateHoldState, type ClaudeExtraUsage, type ClaudeHarnessSettings, type ClaudePlanUsage, type ClaudeUsageWindow, type ClaudeUsageWindowId, type CleanupOrphansResult, type CliAgentKind, type CliExecutableSettings, type CloudConnectAgent, type CloudConnectOptions, type CloudConnectStatus, type CodeLineRange, type CodeRefInput, type CompactResult, type CompactThresholds, type ComposerFileBuffer, type ConductorSettings, type ConductorWorkspace, type ConnectedBrightsyTeamInfo, type ConventionSetupFile, type CowboyThreadFields, type CreateChatTabInput, type CreateGlobalChatOpts, type CreateScheduledTaskInput, type CreateStackInput, type CreateThreadInput, type CreateWorktreeResult, type CursorAgentUsageSnapshot, type CursorModelInfo, type CursorSdkStreamMessage, type CursorTurnRequest, type CursorUsageCost, type CursorWorktreesConfig, DEFAULT_ABLETIME_HOST, DEFAULT_WORKTREE_SORT, DETACHED_JOBS_DIR, type DefaultsAppSettings, type DefaultsSettingsPatch, type DevServerHandle, type DiffCommentInput, type DiffCommentLine, type DiffCommit, type DiffFile, type DiffResult, type DiffScope, type DiffScopeStat, type EnsuredReviewGuidelines, type ExpandResult, FAMOUS_SOCCER_TEAMS, FOLLOW_UP_BEHAVIORS, type FastForwardMainResult, type FollowUpBehavior, type ForkChatTabInput, type ForkThreadWorktreeInput, type FormatGhLandErrorOptions, GITHUB_GIT_AUTH_MODES, GITHUB_PR_BODY_MAX_CHARS, GITHUB_PR_BODY_SAFE_CHARS, GLOBAL_WORKSPACE_ID, type GetDiffOptions, type GhStackStatus, type GitHubIssue, type GitHubIssueComment, type GitHubIssueRelationInput, type GitHubStatus, type GitWorktreeStatus, type GithubGitAuthMode, HARNESS_ENV_KEYS, HOME_BOARD_CACHE_TTL_MS, type HarnessId, type HomeBoardLoaded, type HomeBoardRemoteData, IMPLIED_TICKET_RESOLVE_PROMPT, ISSUE_SOURCE_LABELS, type InitStackFromThreadInput, type IntegrationsSettings, type IpcApi, type IssueActivityComment, type IssueAssigneeFilter, type IssueCycleInfo, type IssueInfo, type IssueSource, LEGACY_ATTACHMENTS_DIR, LEGACY_DETACHED_JOBS_DIR, LEGACY_PLAN_FILE_REL, LEGACY_REVIEW_REQUEST_PATH, LINEAR_OAUTH_CANCELLED, LINEAR_OAUTH_PORT, LINEAR_OAUTH_REDIRECT, LINEAR_OAUTH_SCOPES, LIVE_TURN_SPAWN_GRACE_MS, LONG_RUNNING_SKILL_COMMAND, type LandPreview, type LandResult, type LinearAssignedIssuesResult, type LinearAssigneeFilter, type LinearComment, type LinearCycle, type LinearIssue, type LinearIssueAttachment, type LinearIssueComment, type LinearIssueRef, type LinearIssueRelation, type LinearIssueRelationInput, type LinearNamedRef, LinearOAuthCancelledError, type LinearProjectRef, type LinearTeam, type LinearTeamsResult, type LinearWorkflowState, type ListIssuesOptions, type ListIssuesResult, type ListPrsOptions, MAX_ANTHROPIC_CACHE_CONTROL_BLOCKS, type McpServerStatus, type MessagePart, OPTIONAL_SERVICES, OPTIONAL_SERVICE_IDS, ORCHESTRATOR_AGENT_KINDS, type OpenPrStackLayersInput, type OpenStackLayerInput, type OpenStackLayerResult, type OptionalServiceCliStatus, type OptionalServiceId, type OptionalServiceSpec, type OrchestrationQuotaOnLimit, Orchestrator, type OrchestratorAgentKind, type OrchestratorDefaultsSettings, type OrchestratorEvent, type OrchestratorRuntime, type OrphanWorktree, PASTE_ATTACH_MIN_CHARS, PASTE_ATTACH_MIN_LINES, PLAN_FILE_NAME, PLAN_FILE_REL, PLAN_MODE_INSTRUCTION, PLAN_QUESTION_ANSWERS_PREFIX, PROFILE_NOTES_MAX, PR_DETAILS_JSON_FIELDS, type PathRefInput, 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 ProjectProfileSettings, 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 ResolvedAccountProfile, type ResolvedReviewGuidelines, type ResolvedThreadDefaults, type ResolvedViewerProfile, type ReviewGuidelinesSource, type RunMode, type RunScript, SEED_FULL_TOOL_MESSAGES, SEED_MAX_CHARS, 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 SessionSeedOptions, type SetupLogSnapshot, type SetupRunResult, type SidebarGitAction, type SideboardMcpProfile, type SkillInfo, type SlackInboundMessage, type SlackListenOptions, type SlackListenStatus, SlackOAuthCancelledError, type SlackOutboundReply, type SlackOutboundWatch, type SlackRelayClientMessage, type SlackRelayClientOptions, SlackRelayHub, type SlackRelayServerHandle, type SlackRelayServerMessage, type SlackRelayServerOptions, type SlackWorkspaceInfo, type SourceType, type SpawnTurnHandle, type SummarizeResult, THINKING_EFFORTS, THINKING_PART_MAX_CHARS, type TeamName, type ThinkingEffort, type Thread, type ThreadAttachment, type ThreadMessage, type ThreadOptionsPatch, type ThreadStatus, type TokenUsage, type ToolPartLike, type TranscriptToolDetail, type TurnCommand, USAGE_ON_LIMIT_VALUES, type UpdateScheduledTaskPatch, type UsageOnLimit, type UsageScope, type ViewerContextWriteResult, type ViewerProfile, WORKTREE_ABLETIME_MCP_TOOLS, WORKTREE_GITHUB_MCP_TOOLS, WORKTREE_LINEAR_MCP_TOOLS, WORKTREE_MCP_TOOLS, type Workspace, type WorkspaceInventoryEntry, type WorkspaceScriptEnvOpts, type WorktreeSortMode, ableTimeDependencyTarget, abletimeMcpRequest, abletimeMcpUrl, abletimeToolUsesPm, ackSlackInboundSeen, addBoardPin, addPrStackLayer, addStackLayerFromThread, addWorkspace, adoptThread, agentGitPrompt, allAdapters, allocatePort, allocatePortRange, allocateTeamName, allocateTeamSlug, appDataDir, appSettingsPath, appendIndexedGitConfig, appendMessage, applyAgentEvent, applyAgentRunnerHeapEnv, applyAppEnvironment, applyCompaction, applyForwardOccupancy, applyGithubGitAuthEnv, applyPromptCacheTtlEnv, applySystemCaEnv, applyThreadIntoMain, applyTurnUsage, armSchedules, assertOrchestratorCapableAgent, attachmentFromAbsolutePath, attachmentsFromBuffers, attachmentsFromWorktreePaths, attachmentsGitignoreBody, autoArchiveOnMergeEnabled, autoCleanupOrphansEnabled, autoRenameBranchEnabled, autoRunAfterSetupEnabled, branchDisplayLabel, brightsyAccessTokenNeedsRefresh, brightsyAdapter, brightsyCloudConnectAgent, brightsyCloudConnectEnabled, brightsyConfigPath, brightsyInjectWorktreeMcpEnabled, brightsyMcpAllowedTools, brightsyMcpServerName, buildBrightsySessionSeed, buildCachedUserContent, buildClaudeStreamJsonUserMessage, buildCodeRefAttachment, buildDiffCommentAttachment, buildForkTranscriptAttachment, buildLinearIssueFilter, buildPastedTextAttachment, buildPathRefAttachment, buildReviewRequestAttachment, buildSessionSeed, buildWorkspaceScriptEnv, caffeinateHoldPath, caffeinateWhileCloudConnectEnabled, caffeinateWhileRunningEnabled, caffeinateWhileSchedulesEnabled, caffeinateWhileSlackListenEnabled, callAbleTimeTool, canonicalizeRepoPath, captureLoginEnv, captureTurnBaseline, checkoutPrStackLayer, childEnvWithAppSettings, claimDesktopHost, clampGithubPrBody, classifyWorktreeColumn, claudeAdapter, claudeChromeEnabled, claudeUsageOverLimitWindows, claudeUserSettingsPath, cleanupOrphanWorktrees, clearBoardPins, clearHomeBoardCache, clipThinkingForStore, cloneRepoIntoSideboard, codeRefRangeLabel, codexAdapter, codexSandboxWritableRootsArgs, codexUnattendedGitConfigArgs, coerceOrchestratorAgent, collectTakenTeamSlugs, commentAbleTimeTask, commentGitHubIssue, commentLinearIssue, commitAll, computeNextRunAt, conductorBundledBinDir, conductorDbPath, confirmClaudeUsageOverLimitEnabled, confirmLand, connectBrightsyTeam, connectOptionalService, connectSlackToken, connectedOptionalServices, contextTokens, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, countUnpushedVsOrigin, cowboyModeEnabled, createAbleTimeTask, createChatTab, createEmptyThread, createExistingBranchWorktree, createGitHubIssue, 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, emptySetupLog, encodeBrightsyTarget, enrichPathWithNpmGlobalBin, enrichWorkspacesWithGithub, ensureAbleTimeTask, ensureAgentPath, ensureBrightsyLocalConfigFresh, ensureCloudCoordinator, ensureConnectedBrightsyTeamTokens, ensureGhPreferOrigin, ensureGlobalCoordinatorCwd, ensureReviewGuidelinesFile, ensureReviewRequestFile, ensureReviewSkillFile, ensureSlackCoordinator, ensureSlackDeviceIdentity, ensureWorkspace, estimateMessageChars, estimateOccupancyTokens, estimateThreadChars, examplePrefixedBranch, expandComposerPrompt, extractBrightsyContextSummary, extractGhErrorDetail, extractPendingPlanQuestions, extractPresentedPlan, extractiveSummary, fastForwardMainCheckoutIfSafe, fetchOriginForWorktree, fetchPrHead, finalizeParts, findConventionSetup, findInvalidCacheControlTtlOrder, findLastBrightsyContextSummary, findLiveThreadForCreate, findLiveThreadForCreateSource, findOrphanWorktrees, findProjectProfileKey, findSlackCoordinator, findThreadByRef, findThreadForStackLayer, fireSchedule, flattenTurnInput, flipLinearRelationType, foldLegacyRolesIntoNotes, followUpBehavior, forkChatTab, forkMessageSlice, forkThreadWorktree, formatAccountProfilePlaybookLine, formatArtifactDirective, formatBrightsyFetchError, formatClaudeExtraUsageDetail, formatClaudeUsageCompact, formatClaudeUsageFetchedAt, formatClaudeUsageOverLimitConfirm, formatClaudeUsageOverLimitWait, formatClaudeUsageReset, formatClaudeUsageResetClock, formatClaudeUsageTooltip, formatDetachedJobInvoke, formatFetchError, formatGhLandError, formatGitAuthModeDirective, formatIpcInvokeError, formatIssueToolsDirective, formatIssueToolsReminder, formatLinearDirective, formatLinearReminder, formatLongRunningDirective, formatLongRunningReminder, formatMergePrError, formatMessagesAsTranscript, formatOptionalServicesDirective, formatOptionalServicesReminder, formatPlanQuestionAnswers, formatPlanQuestionsForChat, formatPrGateDirective, formatProcessGuideDirective, formatProjectProfilePlaybookLines, formatRateLimitResetHint, formatRenameBranchDirective, formatScheduleWhen, formatScheduledPrompt, formatSlackExternalReplyPrompt, formatSlackInboundPrompt, formatSlackRepliesForTurn, formatSlackReplyContinuePrompt, formatSlackSignedReply, formatSlackWorkingText, formatTranscriptMarkdown, formatUiReminder, formatViewerContextDirective, formatViewerContextReminder, formatWorkspaceInventory, formatWorkspaceProfileSuffix, formatWorktreeDirective, formatWorktreeReminder, forwardContextUsage, forwardOccupancyTokens, fromInclusiveInputUsage, getAbleTimeAccessToken, getAbleTimeHost, getAbleTimeOrientation, getAbleTimeTask, getAdapter, getAgentSetupInfo, getBrightsySession, getCaffeinateHold, getClaudePlanUsage, getDefaultAgent, getDefaultEffort, getDefaultFast, getDefaultModel, getDefaultRunScript, getDiff, getDiffSummary, getGitHubIssue, getGitHubStatus, getGithubGitAuthMode, getGithubPat, getHomeBoardInputs, getIssueSource, getLinearApiKey, getLinearAuthToken, getLinearIssue, getOrchestrator, getPr, getPrChecks, getPrDetails, getPrForHeadBranch, getPrMeta, getPrStack, getRepoSetupInfo, getRunMode, getRunScript, getSchedule, getSlackWorkspace, gh, ghHeadRef, ghRepoSelectArgs, git, gitBranchPrefixSetting, githubAgentGitEnv, githubHttpsInsteadOfEntries, githubRelationEditFlag, globalAgentCwd, groupHomeBoardWorktrees, handleSlackInbound, harnessEnvKey, hasBakedLinearOAuth, hasBakedSlackOAuth, hasConductorHook, hasConventionSetup, hasCursorWorktreeSetup, hasEnabledSchedules, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, hottestClaudeWindow, httpFetch, importConductorWorkspace, importConductorWorkspaceAsync, initPrStack, initStackFromThread, initializeGitRepository, inspectGitWorktree, installAgent, installNpmGlobalPackage, installOptionalServiceCli, interruptSlackCoordinatorForInbound, invalidateThreadListCache, isAbleTimeConnected, isAskUserToolName, isBrightsyConnected, isBrightsyNdjsonLine, isCloudCoordinatorThread, isConductorBundledCli, isCowboyThread, isCursorApiKeyConfigured, isCursorAutoModel, isDefaultishSourceRef, isDesktopHostAlive, isDirty, isGhPrBodyTooLongError, isGhRateLimitError, isGlobalRepoPath, isGlobalThread, isHomeBoardThread, isImageFilePath, isInPrStack, isInboundForThisDesktop, isInjectedOrchMcpName, isInternalAgentStatusText, isIssueSourceConnected, isLinearConnected, isLinearNoneToken, isLinearOAuthCancelled, isOptionalServiceId, isOrchestratorCapableAgent, isOrchestratorThread, isPidAlive, isPlaceholderBranch, isPlanQuestionAnswersMessage, isPollWrapperToolName, isPrNotMergeableError, isPresentPlanToolName, isPrimaryCheckoutThread, isSessionQuotaLimit, isSetupLastError, isShellToolName, isSideboardScratchPath, isSlackCoordinatorThread, isSlackExternalReplyPrompt, isSlackOAuthCancelled, isStaleLastErrorDuringTurn, isSubagentToolName, isThinkingEffort, isThisProcessDesktopHost, isThreadCaffeinated, isThreadRecordFile, isUsageOnLimit, isWorkspaceScratchPath, issueAttachmentForAbleTimeTask, issueMatchesAssignee, issueSourceLabel, issueTicketFromThread, lastAssistantMessageText, lastRequestOccupancy, latestPendingPlanQuestions, linearAuthorizationHeader, linearCycleIsActive, linearGraphql, linearOAuthAuthorizeUrl, linearOAuthCredentials, linearRelationCreateInput, linearTicketIdFromThread, listAbleTimeAssignedIssues, listAbleTimeProjects, listAbleTimeTasks, listAgentSetupInfo, listBoardPins, listBranchCommits, listBranches, listBrightsyAccounts, listBrightsyChatTargets, listCodexModels, listConductorWorkspaces, listConnectedBrightsyTeams, listCursorModels, listGitHubIssueCommentsSince, listGitHubIssues, listGlobalThreads, listIssues, listLinearAssignedIssues, listLinearCommentsSince, listLinearIssues, listLinearIssuesDirect, listLinearIssuesFiltered, listLinearTeamCycles, listLinearTeams, listModelsForAgent, listOpencodeModels, listPrs, listRunScripts, listSchedules, listSlackOutboundWatches, listSlackWorkspaces, listThreads, listWorkspaces, listWorktreeFiles, listWorktrees, liveActivitySummary, loadAppSettings, loadBrightsyConfig, loadConductorSettings, loadHomeBoardInputs, loadRepoSettings, loadWorkspaceSettings, locksDir, loginAgent, lookupSoccerTeam, mapAbleTimeTask, markPrReady, materializeSystemCaBundle, maxConcurrentAgents, maybeCompactContext, mcpAllowTools, mcpAuthWarnings, mcpStatusThinkingFromClaudeInit, mentionsPrGoal, mergeAgentGitAuthEnv, mergePr, mergePrStack, mergeSetupOutput, mergeSideboardIntoMcpServersJson, mergeUsage, messagePartParentId, messagesSinceLastBrightsyContextSummary, nextPastedTextName, nextThinkingEffort, nonInteractiveGitProcessEnv, normalizeAbleTimeHost, normalizeCodeSelection, normalizeLinearRelationType, normalizeParseResult, normalizeServiceOrigin, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, openPrStackLayers, openStackLayer, opencodeAdapter, optionalServiceConnected, optionalServiceSpec, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originFetchBranch, originGhRepoEnv, packagedDetachedJobPath, parseClaudeUsagePayload, parseCursorRunnerLine, parseDurationMs, parseForceStopMessage, parseGhStackViewJson, parseGitHubIssueNumber, parseGithubSlugFromRemoteUrl, parseMcpList, parsePlanQuestionsInput, parsePrDetailsView, parseSessionQuotaResetAt, parseSlackRelayClientMessage, parseSlackRelayServerMessage, partsToAssistantText, pastedTextStats, pendingSlackExternalReplies, permissionMode, persistPendingFileAttachments, persistVaultKeyInKeychain, planFileAbs, planQuestionsSignature, pollSlackOutboundWatches, posixShellSingleQuote, preferredCursorCostCents, prepareTerminalCommand, previewLand, promptMentionsBrightsy, pushBranch, readExistingReviewRequestFile, readKeychainVaultKey, readPlanFile, readSetupLog, readSkillBody, readThread, readViewerContext, readWorktreeFile, readWorktreeFileForUpload, readWorktreeInclude, recordScheduleRun, recordSlackOutboundWatch, refreshBrightsyAccessToken, refreshGitHubAuth, registerPackagedUserMcpClients, releaseCaffeinateHoldForThread, releaseDesktopHost, removeBoardPin, removeWorkspace, removeWorktree, repoSlug, requestOccupancy, requestReview, requireAgent, resetGhStackDetectCache, resetGithubAgentTokenMemo, resolveAccountProfile, resolveAccountProfileFromSettings, resolveAgentExecutable, resolveAgentGitAuthEnv, resolveClaudeExecutable, resolveCodexGitWritableRoots, resolveCommandBinarySync, resolveConductorCursorAgentId, resolveCreateFirstPrompt, resolveCursorModelId, resolveDefaultBranch, resolveDetachedJobScript, resolveDiffBaseRef, resolveEffectiveIssueSource, resolveFilesToCopy, resolveGhAuthToken, resolveGitBranchPrefix, resolveGitDirsForLockRecovery, resolveGitHubIssueRepo, resolveGithubAgentToken, resolveGithubRepoSlug, resolveLinearCycle, resolveLinearLabel, resolveLinearProject, resolveLinearState, resolveLinearTeam, resolveLoginCommand, resolveNewOrchestratorOptions, resolveNewThreadOptions, resolveOrchChildFollowUp, resolveOrchestratorDefaults, resolvePlanMarkdown, resolvePrSelector, resolvePrSelectors, resolveQuotaFallbackAgent, resolveRepoRoot, resolveReviewGuidelines, resolveScheduleThreadId, resolveSendFollowUp, resolveSidebarGitPrompt, resolveSlackListenMode, resolveThreadDefaults, resolveThreadEffort, resolveUsageOnLimit, resolveVaultKey, resolveViewerProfile, resolveViewerProfileForRepo, resolveWorktreeStartPoint, rewriteAbleTimeError, rewriteLinearError, run, runArchiveScript, runCloudConnect, runConventionSetup, runCursorWorktreeSetup, runSetupScript, runSlackListen, runSlackRelayClient, runWorkspaceSetup, sameWorktreePath, sanitizeGitBranchPrefix, sanitizeMcpServerName, saveAbleTimeConnection, saveAppSettings, saveLinearOAuth, schedulesPath, scrubGithubTokensFromChildEnv, searchAbleTimeTasks, secureFileUnlocksWith, setCaffeinateHold, setHttpFetchImpl, setStatus, setVaultMasterKey, settingsSourceLabel, shouldAttachPastedText, shouldCompactContext, shouldInjectBrightsyMcp, shouldRefreshReviewRequestTemplate, shouldRemoveWorktreeOnTeardown, shouldResetSessionForOccupancy, shouldRunWorktreeCleanup, shouldStampSetupLastError, showCostEnabled, sideboardHomeDir, sideboardMcpProfile, sideboardReposDir, sideboardWorkspacesDir, slackAppLevelToken, slackArchiveUrl, slackCoordinatorSourceRef, slackListenEnabled, slackOAuthCredentials, slackOAuthResultUrl, slackRelayUrl, slugify, spawnAgentTurn, splitForCompaction, splitTurnInputForSystemPrompt, 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, ticketSlugForBranch, toAbleTimeIssueInfo, toGitHubIssueInfo, toPublicAppSettings, toolActivityLine, toolDescription, toolDetail, toolFilePath, totalTokens, trustSystemCertificates, turnCostUsdFromCursorUsage, updateAbleTimeTask, updateAdvancedSettings, updateAgentExecutable, updateAppEnvironment, updateBrightsySettings, updateClaudeSettings, updateCodexSettings, updateDefaultsSettings, updateGitHubIssue, updateIntegrationsSettings, updateLinearIssue, updateOpencodeSettings, updateProjectProfileSettings, updateSchedule, updateThread, usageOnLimit, userClaudeMcpConfigPath, userCursorMcpConfigPath, userMcpNamesToDisable, validateLinearApiKey, verifyAbleTimeConnection, verifyOptionalService, visibleToolRowDetail, waitForPidExit, warmGithubAgentAuth, whichOnPath, withEventParentId, withEventsParentId, withExportedPath, withMaxOldSpaceSize, withThreadLock, workspaceSettingsSourceLabel, worktreeBoardStatus, worktreeCleanupSettings, worktreeDisplayLabel, worktreeDisplayLabelForGroup, worktreeNameFromPath, worktreeSlugForTicket, worktreesRoot, wrapReviewSkillMarkdown, writeInjectedMcpConfig, writePlanFile, writeThread, writeViewerContext, writeWorktreeFile };