@sideboard-ai/core 0.1.205 → 0.1.207

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 (50) hide show
  1. package/dist/{abletime-TONBQP4O.js → abletime-I4IYZBKU.js} +4 -4
  2. package/dist/{abletime-S3UHQZVW.js → abletime-UWSSLXH3.js} +4 -4
  3. package/dist/{abletime-oauth-SD4SZY5U.js → abletime-oauth-C3BQXKW3.js} +5 -3
  4. package/dist/{abletime-oauth-AVCEO2DY.js → abletime-oauth-UZHPB3W2.js} +14 -4
  5. package/dist/{abletime-rest-J2OBB4VA.js → abletime-rest-5YPPEOKK.js} +3 -3
  6. package/dist/{abletime-rest-6ODSXV7G.js → abletime-rest-HYNYDYK3.js} +3 -3
  7. package/dist/agents/cursor-runner.js +1 -1
  8. package/dist/{agents-67K4BQFJ.js → agents-7MULGRPU.js} +5 -5
  9. package/dist/{agents-BVOJNHV6.js → agents-KCBCFMFW.js} +6 -6
  10. package/dist/{app-settings-YEPF46IJ.js → app-settings-GJ6KDYEF.js} +1 -1
  11. package/dist/{app-settings-LGHMNHSP.js → app-settings-R2KNCT37.js} +1 -1
  12. package/dist/{chunk-FO45DMJ5.js → chunk-2GPZ4BAU.js} +81 -34
  13. package/dist/{chunk-X743YN5Y.js → chunk-4EGK47WV.js} +1 -0
  14. package/dist/{chunk-ULZLWQBS.js → chunk-5UQTT4S7.js} +79 -32
  15. package/dist/{chunk-6Q7DFVDQ.js → chunk-6J4OQ6TF.js} +14 -4
  16. package/dist/{chunk-WVATAIF4.js → chunk-6KH4OBEW.js} +2 -2
  17. package/dist/{chunk-FO2NTJ7L.js → chunk-6YZLSZLK.js} +3 -3
  18. package/dist/{chunk-YOSTWSNC.js → chunk-A2BRWIEM.js} +18 -11
  19. package/dist/{chunk-DFUES6QU.js → chunk-ARR4OGLY.js} +1 -0
  20. package/dist/{chunk-INNLWYXW.js → chunk-DWGEBZ3C.js} +1 -0
  21. package/dist/{chunk-CYLDJWRK.js → chunk-F4LZUEIO.js} +37 -7
  22. package/dist/{chunk-KZ7PI7FE.js → chunk-JZHRZ3DR.js} +6 -1
  23. package/dist/{chunk-QUW5D62C.js → chunk-N4A4NWFO.js} +2 -2
  24. package/dist/{chunk-VIPA75ZA.js → chunk-PAQPT3JO.js} +3 -3
  25. package/dist/{chunk-5SMS6QTO.js → chunk-QOJB5PC7.js} +3 -3
  26. package/dist/{chunk-3K257PCS.js → chunk-TEDEVD4O.js} +37 -7
  27. package/dist/{chunk-QAVWH2RQ.js → chunk-W6X4GZJG.js} +3 -3
  28. package/dist/{chunk-SGUVAK66.js → chunk-WXWJ5MJ4.js} +5 -5
  29. package/dist/{chunk-W6VM36YO.js → chunk-X45BV4VX.js} +5 -5
  30. package/dist/{chunk-QFBBUFD4.js → chunk-Y4CF7LHH.js} +1 -0
  31. package/dist/{chunk-WF33LOP4.js → chunk-ZU7R35NY.js} +23 -11
  32. package/dist/{coordinator-prompt-WEPXXLLX.js → coordinator-prompt-6A3D7BV3.js} +4 -4
  33. package/dist/{coordinator-prompt-NPT555BO.js → coordinator-prompt-6NV2IHEX.js} +4 -4
  34. package/dist/{global-workspace-2I2T7FL5.js → global-workspace-I2X6UQMX.js} +4 -4
  35. package/dist/{global-workspace-NSILADOM.js → global-workspace-VS6HZF2I.js} +4 -4
  36. package/dist/index.cjs +125 -24
  37. package/dist/index.d.cts +16 -3
  38. package/dist/index.d.ts +16 -3
  39. package/dist/index.js +15 -13
  40. package/dist/mcp/run-stdio.cjs +123 -24
  41. package/dist/mcp/run-stdio.js +11 -11
  42. package/dist/{orchestrator-I7GFXLHF.js → orchestrator-7WF32ZXJ.js} +6 -6
  43. package/dist/{orchestrator-CMAVNELS.js → orchestrator-CXQY5YRG.js} +7 -7
  44. package/dist/{thread-store-ZGVWPVHP.js → thread-store-LS2T6RVH.js} +1 -1
  45. package/dist/{thread-store-2SS5V5CN.js → thread-store-XGYWXR2P.js} +1 -1
  46. package/dist/{workspaces-BOC6M7BW.js → workspaces-7PM7UGLG.js} +4 -4
  47. package/dist/{workspaces-RFGZBUAR.js → workspaces-CEU25ANO.js} +4 -4
  48. package/dist/{worktree-G3ZLM4DC.js → worktree-T6PCOIHZ.js} +3 -3
  49. package/dist/{worktree-WSUQMMK4.js → worktree-YD7Y6NRY.js} +3 -3
  50. package/package.json +1 -1
package/dist/index.cjs CHANGED
@@ -2281,6 +2281,7 @@ function disconnectAbleTimeConnection() {
2281
2281
  delete integrations.abletimeRefreshToken;
2282
2282
  delete integrations.abletimeTokenExpiresAt;
2283
2283
  delete integrations.abletimeViewerName;
2284
+ delete integrations.abletimeHost;
2284
2285
  return saveAppSettings({ ...current, integrations });
2285
2286
  }
2286
2287
  function getIssueSource(settings = loadAppSettings()) {
@@ -2848,6 +2849,7 @@ function normalizeThread(raw) {
2848
2849
  effort: resolveThreadEffort(raw),
2849
2850
  fast: Boolean(raw.fast),
2850
2851
  planMode: Boolean(raw.planMode),
2852
+ isolateCodexPlugins: raw.isolateCodexPlugins === true ? true : void 0,
2851
2853
  autonomy: raw.autonomy ?? "default",
2852
2854
  lastError: raw.lastError ?? null,
2853
2855
  agentPid: raw.agentPid ?? null,
@@ -3358,6 +3360,10 @@ function turnFailChatText(opts) {
3358
3360
 
3359
3361
  ${fail6}`;
3360
3362
  }
3363
+ function shouldRetryCodexPluginIsolate(detail, opts) {
3364
+ if (opts?.alreadyIsolated) return false;
3365
+ return looksLikeCodexMcpError(detail);
3366
+ }
3361
3367
  function looksLikeCodexMcpError(text7) {
3362
3368
  const t = text7.trim().toLowerCase();
3363
3369
  if (!t) return false;
@@ -3370,7 +3376,7 @@ function looksLikeCodexMcpError(text7) {
3370
3376
  if (/\brmcp\b/.test(t) && /fatal|quit|transport|error|died|kill|auth/.test(t)) {
3371
3377
  return true;
3372
3378
  }
3373
- return /mcp[_ -]?(server|tool|error|transport|client)/.test(t) && /fail|error|timeout|disconnect|auth|unauthorized/.test(t);
3379
+ return /invalid transport in mcp_servers/.test(t);
3374
3380
  }
3375
3381
  function shouldFeedErrorBackToAgent(opts) {
3376
3382
  const detail = opts.detail.trim();
@@ -10877,13 +10883,18 @@ function normalizeTurnInput(input) {
10877
10883
  return {
10878
10884
  prompt: input.prompt,
10879
10885
  cachedPrefix: input.cachedPrefix?.trim() || void 0,
10880
- systemPrompt: input.systemPrompt?.trim() || void 0
10886
+ systemPrompt: input.systemPrompt?.trim() || void 0,
10887
+ ...input.isolateCodexPlugins ? { isolateCodexPlugins: true } : {}
10881
10888
  };
10882
10889
  }
10883
10890
  function dropCachedPrefixOnResume(input, sessionId) {
10884
10891
  const turn = normalizeTurnInput(input);
10885
10892
  if (sessionId) {
10886
- return turn.systemPrompt ? { prompt: turn.prompt, systemPrompt: turn.systemPrompt } : { prompt: turn.prompt };
10893
+ return {
10894
+ prompt: turn.prompt,
10895
+ ...turn.systemPrompt ? { systemPrompt: turn.systemPrompt } : {},
10896
+ ...turn.isolateCodexPlugins ? { isolateCodexPlugins: true } : {}
10897
+ };
10887
10898
  }
10888
10899
  return turn;
10889
10900
  }
@@ -12909,9 +12920,7 @@ function toCodexUnattendedAppsArgs() {
12909
12920
  "-c",
12910
12921
  "apps.posthog.enabled=false",
12911
12922
  "-c",
12912
- "features.plugins=false",
12913
- "-c",
12914
- "mcp_servers.posthog.enabled=false"
12923
+ "features.plugins=false"
12915
12924
  ];
12916
12925
  }
12917
12926
  var import_node_fs32, import_node_os11, import_node_path33, import_smol_toml2;
@@ -13108,8 +13117,12 @@ var init_codex = __esm({
13108
13117
  }),
13109
13118
  orchestratorThreadId: isOrchestrator ? thread.id : null
13110
13119
  });
13120
+ const isolatePlugins = isOrchestrator || Boolean(thread.isolateCodexPlugins) || Boolean(normalizeTurnInput(input).isolateCodexPlugins);
13111
13121
  const mcpOverrides = [
13112
- ...toCodexUnattendedAppsArgs(),
13122
+ // Worktree first try keeps plugins (Claude connectors). Coordinators
13123
+ // isolate. After a fatal plugin MCP, the orchestrator retries with
13124
+ // isolateCodexPlugins so the turn continues. Never invent mcp_servers.posthog.
13125
+ ...isolatePlugins ? toCodexUnattendedAppsArgs() : [],
13113
13126
  ...toCodexMcpConfigArgs(injected2),
13114
13127
  ...isOrchestrator ? toCodexDisableUserMcpArgs(
13115
13128
  userMcpNamesToDisable({
@@ -15467,6 +15480,24 @@ var init_agent_git_actions = __esm({
15467
15480
  function normalizePrState(state) {
15468
15481
  return (state ?? "").trim().toUpperCase();
15469
15482
  }
15483
+ function samePrIdentity(a, b) {
15484
+ const left = (a ?? "").trim().replace(/\/+$/, "");
15485
+ const right = (b ?? "").trim().replace(/\/+$/, "");
15486
+ if (!left || !right) return false;
15487
+ if (left === right) return true;
15488
+ const ln = left.match(/\/pull\/(\d+)/i)?.[1];
15489
+ const rn = right.match(/\/pull\/(\d+)/i)?.[1];
15490
+ return Boolean(ln && rn && ln === rn);
15491
+ }
15492
+ function shouldPersistFetchedPrMeta(opts) {
15493
+ const meta = opts.metaUrl?.trim() || "";
15494
+ if (!meta) return false;
15495
+ const head = opts.headPrUrl?.trim() || "";
15496
+ if (head) return samePrIdentity(meta, head);
15497
+ const live = opts.livePrUrl?.trim() || "";
15498
+ if (live) return samePrIdentity(meta, live);
15499
+ return true;
15500
+ }
15470
15501
  function sameLoginList(a, b) {
15471
15502
  const left = [...a ?? []].map((s) => s.trim().toLowerCase()).filter(Boolean).sort();
15472
15503
  const right = [...b ?? []].map((s) => s.trim().toLowerCase()).filter(Boolean).sort();
@@ -17595,6 +17626,7 @@ __export(abletime_oauth_exports, {
17595
17626
  hasBakedAbleTimeOAuth: () => hasBakedAbleTimeOAuth,
17596
17627
  isAbleTimeOAuthCancelled: () => isAbleTimeOAuthCancelled,
17597
17628
  parseAbleTimeOAuthCallbackUrl: () => parseAbleTimeOAuthCallbackUrl,
17629
+ resolveAbleTimeOAuthHost: () => resolveAbleTimeOAuthHost,
17598
17630
  startAbleTimeOAuth: () => startAbleTimeOAuth
17599
17631
  });
17600
17632
  function ableTimeOAuthRedirectUri() {
@@ -17646,6 +17678,12 @@ function ableTimeOAuthClientId() {
17646
17678
  function ableTimeOAuthResource(host) {
17647
17679
  return `${normalizeAbleTimeHost(host)}/api/public/v2/mcp`;
17648
17680
  }
17681
+ function resolveAbleTimeOAuthHost(requested, saved) {
17682
+ const fromRequest = requested?.trim();
17683
+ if (fromRequest) return fromRequest;
17684
+ const fromSaved = saved?.trim();
17685
+ return fromSaved || void 0;
17686
+ }
17649
17687
  function createAbleTimePkce() {
17650
17688
  const verifier = (0, import_node_crypto10.randomBytes)(32).toString("base64url");
17651
17689
  const challenge = (0, import_node_crypto10.createHash)("sha256").update(verifier).digest("base64url");
@@ -17749,7 +17787,10 @@ async function startAbleTimeOAuth(opts) {
17749
17787
  `AbleTime browser sign-in needs a Client ID Metadata Document URL. Host ${BAKED_ABLETIME_OAUTH_CLIENT_ID} (see site/oauth/abletime-client.json), or set SIDEBOARD_ABLETIME_OAUTH_CLIENT_ID.`
17750
17788
  );
17751
17789
  }
17752
- const host = opts?.host?.trim() || void 0;
17790
+ const host = resolveAbleTimeOAuthHost(
17791
+ opts?.host,
17792
+ loadAppSettings().integrations.abletimeHost
17793
+ );
17753
17794
  const state = (0, import_node_crypto10.randomBytes)(16).toString("hex");
17754
17795
  const pkce = createAbleTimePkce();
17755
17796
  const authorizeUrl = ableTimeOAuthAuthorizeUrl(clientId, state, pkce.challenge, host);
@@ -18025,6 +18066,7 @@ function restTaskToRaw(raw, users) {
18025
18066
  description: textFromAbleTimeDoc(rec.description) || asString(rec.descriptionSanitized),
18026
18067
  projectId: asString(rec.projectId),
18027
18068
  categoryId: asString(rec.projectCategoryId) || asString(rec.categoryId),
18069
+ parentId: asString(rec.parentTaskId) || asString(rec.parentId),
18028
18070
  tags: rec.tags,
18029
18071
  comments,
18030
18072
  createdAt: asString(rec.dateCreated) || asString(rec.createdAt),
@@ -18115,6 +18157,19 @@ function firstStringArg(args, keys) {
18115
18157
  }
18116
18158
  return "";
18117
18159
  }
18160
+ function isNoneToken(value) {
18161
+ return value.trim().toLowerCase() === "none";
18162
+ }
18163
+ function findRestProject(projects, projectId) {
18164
+ const wanted = projectId.trim().toLowerCase();
18165
+ return projects.find(
18166
+ (item) => asString(item.id).toLowerCase() === wanted || asString(item.name).toLowerCase() === wanted
18167
+ ) ?? null;
18168
+ }
18169
+ async function resolveRestParentTaskId(parent, opts) {
18170
+ if (isNoneToken(parent)) return null;
18171
+ return resolveTaskId(parent, opts);
18172
+ }
18118
18173
  async function callAbleTimeRestTool(name, args = {}, opts) {
18119
18174
  const token = normalizeAbleTimeCredential(opts?.token ?? getAbleTimeAccessToken() ?? "");
18120
18175
  if (!token) {
@@ -18160,9 +18215,7 @@ async function callAbleTimeRestTool(name, args = {}, opts) {
18160
18215
  const projectId = firstStringArg(args, ["project_id", "projectId", "project"]);
18161
18216
  if (!projectId) throw new Error("AbleTime project is required");
18162
18217
  const projects = await listProjectsRaw(requestOpts);
18163
- const project = projects.find(
18164
- (item) => String(item.id).toLowerCase() === projectId.toLowerCase() || String(item.name).toLowerCase() === projectId.toLowerCase()
18165
- ) ?? projects[0];
18218
+ const project = findRestProject(projects, projectId) ?? projects[0];
18166
18219
  if (!project) throw new Error("AbleTime has no projects to create a task in");
18167
18220
  const categories = asList(project.categories);
18168
18221
  const wantedCategory = firstStringArg(args, ["category_id", "categoryId", "category"]);
@@ -18170,13 +18223,16 @@ async function callAbleTimeRestTool(name, args = {}, opts) {
18170
18223
  if (!item || !wantedCategory) return false;
18171
18224
  return asString(item.id).toLowerCase() === wantedCategory.toLowerCase() || asString(item.name).toLowerCase() === wantedCategory.toLowerCase();
18172
18225
  }) ?? asRecord5(categories[0]);
18226
+ const parentArg = firstStringArg(args, ["parent", "parent_id", "parentId", "related_task_id"]);
18227
+ const parentTaskId = parentArg ? await resolveRestParentTaskId(parentArg, requestOpts) : void 0;
18173
18228
  const created = await abletimeRestRequest("/tasks", {
18174
18229
  ...requestOpts,
18175
18230
  method: "POST",
18176
18231
  body: {
18177
- projectId: project.id,
18232
+ projectId: asString(project.id),
18178
18233
  projectCategoryId: category ? asString(category.id) : void 0,
18179
- title
18234
+ title,
18235
+ ...parentTaskId ? { parentTaskId } : {}
18180
18236
  }
18181
18237
  });
18182
18238
  const state = firstStringArg(args, ["state"]);
@@ -18209,6 +18265,21 @@ async function callAbleTimeRestTool(name, args = {}, opts) {
18209
18265
  if (args.tags !== void 0 || args.labels !== void 0) {
18210
18266
  patch.tags = args.tags ?? args.labels ?? args.tag_names;
18211
18267
  }
18268
+ const projectArg = firstStringArg(args, ["project", "project_id", "projectId"]);
18269
+ if (projectArg) {
18270
+ if (isNoneToken(projectArg)) {
18271
+ throw new Error("AbleTime tasks stay in a project \u2014 pass a project name or id");
18272
+ }
18273
+ const projects = await listProjectsRaw(requestOpts);
18274
+ const project = findRestProject(projects, projectArg);
18275
+ const nextProjectId = project ? asString(project.id) : "";
18276
+ if (!nextProjectId) throw new Error(`AbleTime project not found: ${projectArg}`);
18277
+ patch.projectId = nextProjectId;
18278
+ }
18279
+ const parentArg = firstStringArg(args, ["parent", "parent_id", "parentId", "related_task_id"]);
18280
+ if (parentArg) {
18281
+ patch.parentTaskId = await resolveRestParentTaskId(parentArg, requestOpts);
18282
+ }
18212
18283
  if (Object.keys(patch).length > 0) {
18213
18284
  await abletimeRestRequest(`/tasks/${encodeURIComponent(id)}`, {
18214
18285
  ...requestOpts,
@@ -23371,7 +23442,12 @@ var init_orchestrator = __esm({
23371
23442
  const stderrTail = [];
23372
23443
  const handle = await spawnAgentTurn(
23373
23444
  fresh,
23374
- { cachedPrefix, prompt: agentPrompt, systemPrompt: turnReminders },
23445
+ {
23446
+ cachedPrefix,
23447
+ prompt: agentPrompt,
23448
+ systemPrompt: turnReminders,
23449
+ isolateCodexPlugins: fresh.isolateCodexPlugins === true
23450
+ },
23375
23451
  (event) => {
23376
23452
  this.emit({ type: "turn_output", threadId, event });
23377
23453
  noteTurnLiveEvent(threadId, event);
@@ -23445,10 +23521,21 @@ var init_orchestrator = __esm({
23445
23521
  }
23446
23522
  let lastStderr = summarizeTurnStderr(stderrTail);
23447
23523
  let detail = lastStderr || (exitCode !== 0 ? fallbackTurnFailDetail(assistantText) : "");
23448
- if (exitCode !== 0 && !assistantText && parts.length === 0 && !this.stoppedTurns.has(threadId) && shouldRetryFailedAgentTurn(detail, {
23524
+ const liveThread = this.requireThread(threadId);
23525
+ const isolateCodexPluginRetry = liveThread.agent === "codex" && shouldRetryCodexPluginIsolate(detail, {
23526
+ // Coordinators already pass toCodexUnattendedAppsArgs — a second
23527
+ // isolate exec keeps sessionId and burns the crash/OOM retry.
23528
+ alreadyIsolated: liveThread.isolateCodexPlugins === true || isOrchestratorThread(liveThread)
23529
+ });
23530
+ if (isolateCodexPluginRetry) {
23531
+ updateThread(threadId, { isolateCodexPlugins: true });
23532
+ }
23533
+ if (exitCode !== 0 && !assistantText && parts.length === 0 && !this.stoppedTurns.has(threadId) && (isolateCodexPluginRetry || shouldRetryFailedAgentTurn(detail, {
23449
23534
  hasSession: Boolean(this.requireThread(threadId).sessionId)
23450
- })) {
23451
- updateThread(threadId, { sessionId: null });
23535
+ }))) {
23536
+ if (!isolateCodexPluginRetry) {
23537
+ updateThread(threadId, { sessionId: null });
23538
+ }
23452
23539
  try {
23453
23540
  const gitDirs = await resolveGitDirsForLockRecovery(thread.worktreePath);
23454
23541
  const clearedLocks = clearStaleIndexLocks(gitDirs, 2e3);
@@ -23457,7 +23544,7 @@ var init_orchestrator = __esm({
23457
23544
  }
23458
23545
  } catch {
23459
23546
  }
23460
- const retryNote = looksLikeInvalidAgentSession(detail) ? "Agent session missing \u2014 starting a fresh session" : looksLikeV8Oom(detail) ? "Agent ran out of memory \u2014 starting a fresh session" : "Agent runner crashed \u2014 restarting Node once";
23547
+ const retryNote = isolateCodexPluginRetry ? "Codex plugin/MCP failed \u2014 continuing without that vendor plugin (Settings \u2192 Connectors + HTTP API)" : looksLikeInvalidAgentSession(detail) ? "Agent session missing \u2014 starting a fresh session" : looksLikeV8Oom(detail) ? "Agent ran out of memory \u2014 starting a fresh session" : "Agent runner crashed \u2014 restarting Node once";
23461
23548
  pushTurnStderr(stderrTail, retryNote);
23462
23549
  this.emit({
23463
23550
  type: "turn_output",
@@ -23481,7 +23568,12 @@ var init_orchestrator = __esm({
23481
23568
  ].filter(Boolean).join("\n\n---\n\n");
23482
23569
  const retryHandle = await spawnAgentTurn(
23483
23570
  retryThread,
23484
- { cachedPrefix: retryPrefix, prompt: agentPrompt, systemPrompt: turnReminders },
23571
+ {
23572
+ cachedPrefix: retryPrefix,
23573
+ prompt: agentPrompt,
23574
+ systemPrompt: turnReminders,
23575
+ isolateCodexPlugins: isolateCodexPluginRetry || retryThread.isolateCodexPlugins === true
23576
+ },
23485
23577
  (event) => {
23486
23578
  this.emit({ type: "turn_output", threadId, event });
23487
23579
  if (event.type === "session_id") {
@@ -24236,7 +24328,7 @@ var init_orchestrator = __esm({
24236
24328
  } catch {
24237
24329
  headUrl = null;
24238
24330
  }
24239
- return { thread, selectors: connectedPrSelectors(thread, headUrl), cwd };
24331
+ return { thread, selectors: connectedPrSelectors(thread, headUrl), cwd, headUrl };
24240
24332
  }
24241
24333
  async getPrChecks(threadRef) {
24242
24334
  const { selectors, cwd } = await this.withPrSelector(threadRef);
@@ -24247,13 +24339,20 @@ var init_orchestrator = __esm({
24247
24339
  return null;
24248
24340
  }
24249
24341
  async getPrMeta(threadRef) {
24250
- const { thread, selectors, cwd } = await this.withPrSelector(threadRef);
24342
+ const { thread, selectors, cwd, headUrl } = await this.withPrSelector(threadRef);
24251
24343
  for (const selector of selectors) {
24252
24344
  const meta = await getPrMeta(cwd, selector);
24253
- if (meta) {
24254
- await this.persistPrMetaAndMaybeArchive(thread, meta);
24255
- return meta;
24345
+ if (!meta) continue;
24346
+ const live = this.requireThread(thread.id);
24347
+ if (!shouldPersistFetchedPrMeta({
24348
+ metaUrl: meta.url,
24349
+ livePrUrl: live.prUrl,
24350
+ headPrUrl: headUrl
24351
+ })) {
24352
+ continue;
24256
24353
  }
24354
+ await this.persistPrMetaAndMaybeArchive(live, meta);
24355
+ return meta;
24257
24356
  }
24258
24357
  return null;
24259
24358
  }
@@ -25450,6 +25549,7 @@ __export(index_exports, {
25450
25549
  requireAgent: () => requireAgent,
25451
25550
  resetGhStackDetectCache: () => resetGhStackDetectCache,
25452
25551
  resetGithubAgentTokenMemo: () => resetGithubAgentTokenMemo,
25552
+ resolveAbleTimeOAuthHost: () => resolveAbleTimeOAuthHost,
25453
25553
  resolveAccountProfile: () => resolveAccountProfile,
25454
25554
  resolveAccountProfileFromSettings: () => resolveAccountProfileFromSettings,
25455
25555
  resolveAgentExecutable: () => resolveAgentExecutable,
@@ -34203,6 +34303,7 @@ init_outbound_watch();
34203
34303
  requireAgent,
34204
34304
  resetGhStackDetectCache,
34205
34305
  resetGithubAgentTokenMemo,
34306
+ resolveAbleTimeOAuthHost,
34206
34307
  resolveAccountProfile,
34207
34308
  resolveAccountProfileFromSettings,
34208
34309
  resolveAgentExecutable,
package/dist/index.d.cts CHANGED
@@ -128,6 +128,12 @@ interface Thread {
128
128
  fast: boolean;
129
129
  /** Plan-only turns — analyze and plan without editing files (Conductor-style). */
130
130
  planMode: boolean;
131
+ /**
132
+ * After a Codex plugin/App MCP kills `codex exec` (AuthRequired / invalid
133
+ * transport), later turns isolate Apps/plugins so the same fatal error
134
+ * cannot loop. Worktree first tries with plugins on.
135
+ */
136
+ isolateCodexPlugins?: boolean;
131
137
  sessionId: string | null;
132
138
  autonomy: Autonomy;
133
139
  sourceIsFork: boolean;
@@ -1297,7 +1303,7 @@ declare function saveAbleTimeConnection(input: {
1297
1303
  host?: string | null;
1298
1304
  viewerName?: string | null;
1299
1305
  }): AppSettings;
1300
- /** Clear AbleTime PAT and viewer. Does not revoke remotely. */
1306
+ /** Clear AbleTime PAT, host, and viewer. Does not revoke remotely. */
1301
1307
  declare function disconnectAbleTimeConnection(): AppSettings;
1302
1308
  /** Preferred issue source (default GitHub). */
1303
1309
  declare function getIssueSource(settings?: AppSettings): IssueSource;
@@ -2772,6 +2778,8 @@ declare const ABLETIME_OAUTH_RESOURCE = "https://track.abletime.com/api/public/v
2772
2778
  declare function hasBakedAbleTimeOAuth(): boolean;
2773
2779
  declare function ableTimeOAuthClientId(): string;
2774
2780
  declare function ableTimeOAuthResource(host?: string | null): string;
2781
+ /** Browser connect uses the Settings host field, then a leftover saved host. */
2782
+ declare function resolveAbleTimeOAuthHost(requested?: string | null, saved?: string | null): string | undefined;
2775
2783
  declare function createAbleTimePkce(): {
2776
2784
  verifier: string;
2777
2785
  challenge: string;
@@ -3034,6 +3042,11 @@ interface AgentTurnInput {
3034
3042
  * already carries the full playbook in `cachedPrefix`.
3035
3043
  */
3036
3044
  systemPrompt?: string;
3045
+ /**
3046
+ * Codex: disable ChatGPT Apps / plugins for this exec (after a fatal
3047
+ * plugin MCP). Coordinators also isolate via `isOrchestratorThread`.
3048
+ */
3049
+ isolateCodexPlugins?: boolean;
3037
3050
  }
3038
3051
  declare function normalizeTurnInput(input: string | AgentTurnInput): Required<Pick<AgentTurnInput, 'prompt'>> & AgentTurnInput;
3039
3052
  /**
@@ -5579,7 +5592,7 @@ interface IpcApi {
5579
5592
  host?: string | null;
5580
5593
  }): Promise<PublicAppSettings>;
5581
5594
  /** Browser OAuth — opens AbleTime, waits for localhost callback. */
5582
- startAbleTimeOAuth(): Promise<PublicAppSettings>;
5595
+ startAbleTimeOAuth(host?: string | null): Promise<PublicAppSettings>;
5583
5596
  /** Abort an in-progress AbleTime browser sign-in. */
5584
5597
  cancelAbleTimeOAuth(): Promise<void>;
5585
5598
  /** Clear the stored AbleTime token. */
@@ -6645,4 +6658,4 @@ declare function pollSlackOutboundWatches(opts?: {
6645
6658
  now?: number;
6646
6659
  }): Promise<void>;
6647
6660
 
6648
- export { ABLETIME_MCP_PATH, ABLETIME_MCP_PM_PATH, ABLETIME_OAUTH_CALLBACK_PATH, ABLETIME_OAUTH_CANCELLED, ABLETIME_OAUTH_LOCAL_CALLBACK, ABLETIME_OAUTH_PORT, ABLETIME_OAUTH_REDIRECT, ABLETIME_OAUTH_RESOURCE, ABLETIME_OAUTH_TOKEN_PREFIX, ABLETIME_ORG_KEY_PREFIX, ABLETIME_PAT_PREFIX, ABLETIME_PM_TOOL_NAMES, AGENT_GIT_ACTIONS, AGENT_RUNNER_MAX_OLD_SPACE_MB, ATTACHMENTS_DIR, type AbleTimeAssignedIssuesResult, type AbleTimeComment, type AbleTimeCredentialKind, type AbleTimeMcpToolName, AbleTimeOAuthCancelledError, type AbleTimeOrientation, type AbleTimePmToolName, type AbleTimeProject, type AbleTimeTask, type AbleTimeTaskRelationInput, type AbleTimeViewer, type AccountProfile, type ActiveRun, type AddBoardPinInput, type AddStackLayerInput, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentEvent, type AgentGitAction, type AgentKind, type AgentModelCatalog, type AgentModelInfo, type AgentSetupActionResult, type AgentSetupInfo, type AgentSetupKind, type AgentStatus, type AgentTurnInput, type AnthropicCacheControl, type AppSettings, type ApplyIntoMainResult, type AttachCommand, type Autonomy, BAKED_ABLETIME_OAUTH_CLIENT_ID, BAKED_SLACK_RELAY_URL, BRIGHTSY_MCP_ALLOWED_TOOLS, BRIGHTSY_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, ableTimeCredentialKind, ableTimeDependencyTarget, ableTimeOAuthAuthorizeUrl, ableTimeOAuthBouncePage, ableTimeOAuthClientId, ableTimeOAuthLocalBounceUrl, ableTimeOAuthRedirectUri, ableTimeOAuthResource, ableTimeUsesRest, 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, assertAbleTimeCredential, assertAbleTimeMcpCredential, 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, connectedPrSelectors, contextTokens, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, countUnpushedVsOrigin, cowboyModeEnabled, createAbleTimePkce, createAbleTimeTask, createChatTab, createEmptyThread, createExistingBranchWorktree, createGitHubIssue, createGlobalChat, createLinearIssue, createLinearPkce, createOrUpdatePr, createPrStack, createSchedule, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, defaultScheduleName, deleteBranchOnPurgeEnabled, deleteSchedule, deleteThreadRecord, desktopHostPidPath, detectAgents, detectGhStack, detectLocalMergeConflicts, detectOptionalServiceClis, disconnectAbleTimeConnection, disconnectBrightsyTeam, disconnectLinear, disconnectLinearConnection, disconnectOptionalService, disconnectSlackWorkspace, discoverSkills, dropCachedPrefixOnResume, emptyPublicIntegrations, emptySetupLog, encodeBrightsyTarget, enrichPathWithNpmGlobalBin, enrichWorkspacesWithGithub, ensureAbleTimeAccessToken, 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, hasBakedAbleTimeOAuth, hasBakedLinearOAuth, hasBakedSlackOAuth, hasConductorHook, hasConventionSetup, hasCursorWorktreeSetup, hasEnabledSchedules, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, hottestClaudeWindow, httpFetch, importConductorWorkspace, importConductorWorkspaceAsync, initPrStack, initStackFromThread, initializeGitRepository, inspectGitWorktree, installAgent, installNpmGlobalPackage, installOptionalServiceCli, interruptSlackCoordinatorForInbound, invalidateThreadListCache, invalidateThreadRecord, isAbleTimeConnected, isAbleTimeOAuthCancelled, isAbleTimeRejectedCredential, 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, normalizeAbleTimeCredential, normalizeAbleTimeHost, normalizeCodeSelection, normalizeLinearRelationType, normalizeParseResult, normalizeServiceOrigin, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, openPrStackLayers, openStackLayer, opencodeAdapter, optionalServiceConnected, optionalServiceSpec, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originFetchBranch, originGhRepoEnv, packagedDetachedJobPath, parseAbleTimeOAuthCallbackUrl, 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, slimMessagesForUiList, slimThreadForUiList, slugify, spawnAgentTurn, splitForCompaction, splitTurnInputForSystemPrompt, stackAgentDefaultsFrom, stackIdFrom, stackMergeReadiness, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startAbleTimeOAuth, 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 };
6661
+ export { ABLETIME_MCP_PATH, ABLETIME_MCP_PM_PATH, ABLETIME_OAUTH_CALLBACK_PATH, ABLETIME_OAUTH_CANCELLED, ABLETIME_OAUTH_LOCAL_CALLBACK, ABLETIME_OAUTH_PORT, ABLETIME_OAUTH_REDIRECT, ABLETIME_OAUTH_RESOURCE, ABLETIME_OAUTH_TOKEN_PREFIX, ABLETIME_ORG_KEY_PREFIX, ABLETIME_PAT_PREFIX, ABLETIME_PM_TOOL_NAMES, AGENT_GIT_ACTIONS, AGENT_RUNNER_MAX_OLD_SPACE_MB, ATTACHMENTS_DIR, type AbleTimeAssignedIssuesResult, type AbleTimeComment, type AbleTimeCredentialKind, type AbleTimeMcpToolName, AbleTimeOAuthCancelledError, type AbleTimeOrientation, type AbleTimePmToolName, type AbleTimeProject, type AbleTimeTask, type AbleTimeTaskRelationInput, type AbleTimeViewer, type AccountProfile, type ActiveRun, type AddBoardPinInput, type AddStackLayerInput, type AdoptInput, type AdvancedAppSettings, type AgentAdapter, type AgentEvent, type AgentGitAction, type AgentKind, type AgentModelCatalog, type AgentModelInfo, type AgentSetupActionResult, type AgentSetupInfo, type AgentSetupKind, type AgentStatus, type AgentTurnInput, type AnthropicCacheControl, type AppSettings, type ApplyIntoMainResult, type AttachCommand, type Autonomy, BAKED_ABLETIME_OAUTH_CLIENT_ID, BAKED_SLACK_RELAY_URL, BRIGHTSY_MCP_ALLOWED_TOOLS, BRIGHTSY_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, ableTimeCredentialKind, ableTimeDependencyTarget, ableTimeOAuthAuthorizeUrl, ableTimeOAuthBouncePage, ableTimeOAuthClientId, ableTimeOAuthLocalBounceUrl, ableTimeOAuthRedirectUri, ableTimeOAuthResource, ableTimeUsesRest, 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, assertAbleTimeCredential, assertAbleTimeMcpCredential, 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, connectedPrSelectors, contextTokens, coordinatorSystemPrompt, coordinatorTurnReminder, copyConfiguredFiles, countCacheControlBlocks, countUnpushedVsOrigin, cowboyModeEnabled, createAbleTimePkce, createAbleTimeTask, createChatTab, createEmptyThread, createExistingBranchWorktree, createGitHubIssue, createGlobalChat, createLinearIssue, createLinearPkce, createOrUpdatePr, createPrStack, createSchedule, createThread, createThreadWorktree, currentBranch, cursorAdapter, cursorSdkMessageToEvents, decodeBrightsyTarget, defaultScheduleName, deleteBranchOnPurgeEnabled, deleteSchedule, deleteThreadRecord, desktopHostPidPath, detectAgents, detectGhStack, detectLocalMergeConflicts, detectOptionalServiceClis, disconnectAbleTimeConnection, disconnectBrightsyTeam, disconnectLinear, disconnectLinearConnection, disconnectOptionalService, disconnectSlackWorkspace, discoverSkills, dropCachedPrefixOnResume, emptyPublicIntegrations, emptySetupLog, encodeBrightsyTarget, enrichPathWithNpmGlobalBin, enrichWorkspacesWithGithub, ensureAbleTimeAccessToken, 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, hasBakedAbleTimeOAuth, hasBakedLinearOAuth, hasBakedSlackOAuth, hasConductorHook, hasConventionSetup, hasCursorWorktreeSetup, hasEnabledSchedules, hasRepoHook, hasWorkspaceHook, healOrchestrationSoccerTitles, hottestClaudeWindow, httpFetch, importConductorWorkspace, importConductorWorkspaceAsync, initPrStack, initStackFromThread, initializeGitRepository, inspectGitWorktree, installAgent, installNpmGlobalPackage, installOptionalServiceCli, interruptSlackCoordinatorForInbound, invalidateThreadListCache, invalidateThreadRecord, isAbleTimeConnected, isAbleTimeOAuthCancelled, isAbleTimeRejectedCredential, 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, normalizeAbleTimeCredential, normalizeAbleTimeHost, normalizeCodeSelection, normalizeLinearRelationType, normalizeParseResult, normalizeServiceOrigin, normalizeThinkingEffort, normalizeThread, normalizeTurnInput, normalizeWorktreePath, openInSystemTerminal, openPrStackLayers, openStackLayer, opencodeAdapter, optionalServiceConnected, optionalServiceSpec, orchestrationQuotaFallbackAgent, orchestrationQuotaOnLimit, orchestrationTitleNeedsSoccerNickname, orchestratorSessionPoisonedByBuiltins, originFetchBranch, originGhRepoEnv, packagedDetachedJobPath, parseAbleTimeOAuthCallbackUrl, 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, resolveAbleTimeOAuthHost, 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, slimMessagesForUiList, slimThreadForUiList, slugify, spawnAgentTurn, splitForCompaction, splitTurnInputForSystemPrompt, stackAgentDefaultsFrom, stackIdFrom, stackMergeReadiness, stageAbsolutePathsAsAttachments, stageBuffersAsAttachments, startAbleTimeOAuth, 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 };