@sideboard-ai/core 0.1.249 → 0.1.251

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 (66) hide show
  1. package/dist/{abletime-EM7FH7TX.js → abletime-IDQJI2KW.js} +5 -5
  2. package/dist/{abletime-RLSPFZOO.js → abletime-OGQR4LIL.js} +5 -5
  3. package/dist/{abletime-oauth-LDV3DZNA.js → abletime-oauth-MBAG5MYU.js} +4 -4
  4. package/dist/{abletime-oauth-332MUPBE.js → abletime-oauth-ZQUIY4EM.js} +4 -4
  5. package/dist/{abletime-rest-LR2HWLP2.js → abletime-rest-JZIIT5W3.js} +4 -4
  6. package/dist/{abletime-rest-JZI6UQIR.js → abletime-rest-WEJERY4O.js} +4 -4
  7. package/dist/agents/cursor-runner.js +3 -3
  8. package/dist/{agents-L2NUSMP6.js → agents-FY2DFOMV.js} +9 -9
  9. package/dist/{agents-5N4S6YLA.js → agents-PU2P5VWM.js} +8 -8
  10. package/dist/{app-settings-BABO3E4A.js → app-settings-CLARFJUX.js} +2 -2
  11. package/dist/{app-settings-JQ5M3P46.js → app-settings-ONYJ36XH.js} +2 -2
  12. package/dist/{caffeinate-hold-PXHGH7ZN.js → caffeinate-hold-DYJGWK6Y.js} +2 -2
  13. package/dist/{caffeinate-hold-FNKIPXDU.js → caffeinate-hold-UAGLSGMM.js} +2 -2
  14. package/dist/{chunk-VGVYYLUC.js → chunk-2LZ3CNTN.js} +26 -26
  15. package/dist/{chunk-HO5TQG3Z.js → chunk-452Y24PW.js} +1 -1
  16. package/dist/{chunk-CXTIOJRX.js → chunk-4723RAO3.js} +2 -2
  17. package/dist/{chunk-CJKL7A4G.js → chunk-5F4YFGHL.js} +5 -5
  18. package/dist/{chunk-W632CHCY.js → chunk-66LAOKLK.js} +2 -2
  19. package/dist/{chunk-4LIOQ2QW.js → chunk-6Z66OYYO.js} +24 -24
  20. package/dist/{chunk-BXYUK6DD.js → chunk-7R5I5UWW.js} +7 -7
  21. package/dist/{chunk-57ZULG67.js → chunk-CPEIHTG7.js} +3 -3
  22. package/dist/{chunk-A4JGXX2F.js → chunk-EHT2DRT4.js} +12 -0
  23. package/dist/{chunk-2I6TW4TW.js → chunk-FGWUZOZN.js} +3 -3
  24. package/dist/{chunk-XJXS7TU6.js → chunk-GNO7RXNH.js} +6 -6
  25. package/dist/{chunk-N6XI5KXL.js → chunk-H547WSSZ.js} +1 -1
  26. package/dist/{chunk-5FLTBGF2.js → chunk-IFHHPPSL.js} +5 -5
  27. package/dist/{chunk-M5QVZYKK.js → chunk-JLLISK4D.js} +11 -8
  28. package/dist/{chunk-4URNTA75.js → chunk-KJM3E3NF.js} +1 -1
  29. package/dist/{chunk-OJFEVWZN.js → chunk-NOT4SEAM.js} +1 -1
  30. package/dist/{chunk-RUGWYZOB.js → chunk-PL23EQ3S.js} +4 -4
  31. package/dist/{chunk-DQN5U2VH.js → chunk-QN5DL2QO.js} +1 -1
  32. package/dist/{chunk-PELMZRDB.js → chunk-RJC2MKXN.js} +2 -2
  33. package/dist/{chunk-OXZMLZVK.js → chunk-RTQOCFIV.js} +3 -3
  34. package/dist/{chunk-IBWVE22Z.js → chunk-TMLS5WYR.js} +4 -4
  35. package/dist/{chunk-224IXQOM.js → chunk-UWQ6UCIB.js} +1 -1
  36. package/dist/{chunk-5SHYLRTU.js → chunk-VVHHBOIA.js} +1 -1
  37. package/dist/{chunk-3O66W4TI.js → chunk-WI75LO3T.js} +11 -8
  38. package/dist/{chunk-J5GON4SU.js → chunk-XAISOBBG.js} +1 -1
  39. package/dist/{chunk-XHAK4FSQ.js → chunk-XIEDFRBP.js} +2 -2
  40. package/dist/{chunk-KB4JPKMT.js → chunk-ZC3TVLY6.js} +5 -5
  41. package/dist/{connected-teams-62AJRDDD.js → connected-teams-7CENZDWU.js} +2 -2
  42. package/dist/{connected-teams-GXV22ZSF.js → connected-teams-Z5GOIC5I.js} +2 -2
  43. package/dist/{coordinator-prompt-5FUU6WZR.js → coordinator-prompt-6CWVH2US.js} +6 -6
  44. package/dist/{coordinator-prompt-2P35JCWK.js → coordinator-prompt-R7JNOUZ3.js} +6 -6
  45. package/dist/{cursor-recover-DFMCTZA4.js → cursor-recover-A6V5UVFT.js} +2 -2
  46. package/dist/{cursor-recover-K3EBEM7M.js → cursor-recover-FALSNEZN.js} +2 -2
  47. package/dist/{global-workspace-5U5Y7266.js → global-workspace-DWKW4CFY.js} +6 -6
  48. package/dist/{global-workspace-NDDNFPYH.js → global-workspace-GTEL4UUZ.js} +6 -6
  49. package/dist/index.cjs +21 -5
  50. package/dist/index.d.cts +8 -1
  51. package/dist/index.d.ts +8 -1
  52. package/dist/index.js +21 -19
  53. package/dist/mcp/run-stdio.cjs +8 -5
  54. package/dist/mcp/run-stdio.js +17 -17
  55. package/dist/{orchestrator-5LCP6OTU.js → orchestrator-7XDC4UOC.js} +11 -11
  56. package/dist/{orchestrator-DHIKPDY4.js → orchestrator-W7A5BA5V.js} +10 -10
  57. package/dist/{paths-O6ZEAEUD.js → paths-5JYXTAPC.js} +1 -1
  58. package/dist/{paths-LGKOG7MY.js → paths-IUR3ABNG.js} +1 -1
  59. package/dist/{thread-store-BEBZMOS7.js → thread-store-HDQ4CH54.js} +3 -3
  60. package/dist/{thread-store-S6PJADDM.js → thread-store-ZDR3Z5UG.js} +3 -3
  61. package/dist/{workspaces-RSTX2WL7.js → workspaces-E6IL3MIH.js} +6 -6
  62. package/dist/{workspaces-GFYUCY6N.js → workspaces-PSDDVERD.js} +6 -6
  63. package/dist/{worktree-TXIDEBH2.js → worktree-MWX6ZVNS.js} +5 -5
  64. package/dist/{worktree-UNY4QGFJ.js → worktree-Q4T7RSSW.js} +5 -5
  65. package/package.json +1 -1
  66. /package/dist/{chunk-KK63BFYN.js → chunk-Z2LGMV6C.js} +0 -0
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-WDDUIGFK.js";
8
8
  import {
9
9
  releaseCaffeinateHoldForThread
10
- } from "./chunk-DQN5U2VH.js";
10
+ } from "./chunk-QN5DL2QO.js";
11
11
  import {
12
12
  adjustBrightsyTurnExit,
13
13
  applyAgentEvent,
@@ -44,7 +44,7 @@ import {
44
44
  summarizeTurnStderr,
45
45
  toolDescription,
46
46
  turnFailChatText
47
- } from "./chunk-XJXS7TU6.js";
47
+ } from "./chunk-GNO7RXNH.js";
48
48
  import {
49
49
  SLACK_REPLY_FORMATTING,
50
50
  addWorkspace,
@@ -67,7 +67,7 @@ import {
67
67
  stageAbsolutePathsAsAttachments,
68
68
  stageBuffersAsAttachments,
69
69
  syncWorkspacesFromThreads
70
- } from "./chunk-RUGWYZOB.js";
70
+ } from "./chunk-PL23EQ3S.js";
71
71
  import {
72
72
  addPrStackLayer,
73
73
  allocateTeamName,
@@ -117,7 +117,7 @@ import {
117
117
  worktreeDisplayLabelForGroup,
118
118
  worktreeNameFromPath,
119
119
  worktreeSlugForTicket
120
- } from "./chunk-M5QVZYKK.js";
120
+ } from "./chunk-JLLISK4D.js";
121
121
  import {
122
122
  ATTACHMENTS_DIR,
123
123
  DETACHED_JOBS_DIR,
@@ -135,7 +135,7 @@ import {
135
135
  updateThread,
136
136
  withThreadLock,
137
137
  writeThread
138
- } from "./chunk-PELMZRDB.js";
138
+ } from "./chunk-RJC2MKXN.js";
139
139
  import {
140
140
  ensureWorktreeSideboardIgnored
141
141
  } from "./chunk-DD67JWTN.js";
@@ -176,7 +176,7 @@ import {
176
176
  sumUsageList,
177
177
  updateAdvancedSettings,
178
178
  usageOnLimit
179
- } from "./chunk-HO5TQG3Z.js";
179
+ } from "./chunk-452Y24PW.js";
180
180
  import {
181
181
  writePrivateFile
182
182
  } from "./chunk-NSTQ6QKD.js";
@@ -193,7 +193,7 @@ import {
193
193
  threadsDir,
194
194
  workspaceSettingsSourceLabel,
195
195
  worktreesRoot
196
- } from "./chunk-KK63BFYN.js";
196
+ } from "./chunk-Z2LGMV6C.js";
197
197
  import {
198
198
  stripNestedElectronEnv
199
199
  } from "./chunk-WWUABK6B.js";
@@ -491,9 +491,9 @@ async function spawnAgentTurn(thread, input, onEvent) {
491
491
  `Cannot spawn ${thread.agent}: thread ${thread.id} has no worktreePath`
492
492
  );
493
493
  }
494
- const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-5U5Y7266.js");
494
+ const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-DWKW4CFY.js");
495
495
  if (isGlobalThread2(thread)) {
496
- const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-5FUU6WZR.js");
496
+ const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-6CWVH2US.js");
497
497
  ensureGlobalCoordinatorCwd2(
498
498
  isOrchestratorThread(thread) ? { orchestratorThreadId: thread.id } : void 0
499
499
  );
@@ -3970,7 +3970,7 @@ async function createThread(input, _onSetupLine) {
3970
3970
  });
3971
3971
  await requireAgent(resolved.agent);
3972
3972
  if (input.cowboy) {
3973
- const { cowboyModeEnabled } = await import("./app-settings-BABO3E4A.js");
3973
+ const { cowboyModeEnabled } = await import("./app-settings-CLARFJUX.js");
3974
3974
  if (!cowboyModeEnabled()) {
3975
3975
  throw new Error(
3976
3976
  "Cowboy mode is off. Enable it in Settings \u2192 Advanced."
@@ -4028,7 +4028,7 @@ async function createThread(input, _onSetupLine) {
4028
4028
  let sourceIsFork = false;
4029
4029
  if (!input.cowboy && sourceType === "branch" && (!sourceRef || sourceRef === "HEAD" || sourceRef === "default")) {
4030
4030
  if (isAbleTimeConnected() && getIssueSource() === "abletime") {
4031
- const { ensureAbleTimeTask, issueAttachmentForAbleTimeTask } = await import("./abletime-RLSPFZOO.js");
4031
+ const { ensureAbleTimeTask, issueAttachmentForAbleTimeTask } = await import("./abletime-OGQR4LIL.js");
4032
4032
  const task = await ensureAbleTimeTask({
4033
4033
  title: title?.trim() || "Untitled work",
4034
4034
  description: input.prompt?.trim() || void 0
@@ -4595,7 +4595,7 @@ async function adoptThread(input) {
4595
4595
  messages: input.messages ?? []
4596
4596
  });
4597
4597
  writeThread(thread);
4598
- const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-RSTX2WL7.js");
4598
+ const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-E6IL3MIH.js");
4599
4599
  await ensureWorkspace2(repoPath);
4600
4600
  const { ensureWorktreeSideboardIgnored: ensureWorktreeSideboardIgnored2 } = await import("./worktree-exclude-5N2KTYIT.js");
4601
4601
  await ensureWorktreeSideboardIgnored2(input.worktreePath);
@@ -7101,7 +7101,7 @@ function formatScheduledPrompt(name, prompt) {
7101
7101
  ${prompt}`;
7102
7102
  }
7103
7103
  async function defaultDeps() {
7104
- const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-DHIKPDY4.js");
7104
+ const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-W7A5BA5V.js");
7105
7105
  const orch = getOrchestrator2();
7106
7106
  return {
7107
7107
  findThread: (id) => findThreadByRef(id),
@@ -7426,7 +7426,7 @@ var Orchestrator = class {
7426
7426
  orphans: orphans.map((o) => ({ path: o.path, repoPath: o.repoPath }))
7427
7427
  });
7428
7428
  }
7429
- const { autoCleanupOrphansEnabled } = await import("./app-settings-BABO3E4A.js");
7429
+ const { autoCleanupOrphansEnabled } = await import("./app-settings-CLARFJUX.js");
7430
7430
  if (autoCleanupOrphansEnabled() && shouldRunWorktreeCleanup() && orphans.length > 0) {
7431
7431
  await cleanupOrphanWorktrees({ repoPaths });
7432
7432
  }
@@ -7773,7 +7773,7 @@ var Orchestrator = class {
7773
7773
  }
7774
7774
  await setup;
7775
7775
  if (skipSetup) return;
7776
- const { autoRunAfterSetupEnabled } = await import("./app-settings-BABO3E4A.js");
7776
+ const { autoRunAfterSetupEnabled } = await import("./app-settings-CLARFJUX.js");
7777
7777
  if (autoRunAfterSetupEnabled()) {
7778
7778
  try {
7779
7779
  await this.startDev(threadId);
@@ -8143,7 +8143,7 @@ var Orchestrator = class {
8143
8143
  }
8144
8144
  const isBrightsy = fresh.agent === "brightsy";
8145
8145
  const isOrchestration = isOrchestratorThread(fresh);
8146
- const { autoRenameBranchEnabled, getGithubGitAuthMode, gitBranchPrefixSetting } = await import("./app-settings-BABO3E4A.js");
8146
+ const { autoRenameBranchEnabled, getGithubGitAuthMode, gitBranchPrefixSetting } = await import("./app-settings-CLARFJUX.js");
8147
8147
  const gitAuthMode = getGithubGitAuthMode();
8148
8148
  const worktreeDirective = isBrightsy || isOrchestration ? null : formatWorktreeDirective(fresh, {
8149
8149
  githubSlug: await withTimeout(
@@ -8298,7 +8298,7 @@ var Orchestrator = class {
8298
8298
  if (!this.stoppedTurns.has(threadId) && this.requireThread(threadId).agent === "cursor" && exitCode !== 0 && !assistantText && parts.length === 0) {
8299
8299
  const sessionId = result.sessionId || this.requireThread(threadId).sessionId || "";
8300
8300
  if (sessionId) {
8301
- const { recoverFinishedCursorRun } = await import("./cursor-recover-K3EBEM7M.js");
8301
+ const { recoverFinishedCursorRun } = await import("./cursor-recover-FALSNEZN.js");
8302
8302
  for (let i = 0; i < 8; i++) {
8303
8303
  const recovered = recoverFinishedCursorRun({
8304
8304
  agentId: sessionId,
@@ -9444,7 +9444,7 @@ var Orchestrator = class {
9444
9444
  if (!titled.userSetTitle && meta.title && titled.title !== meta.title) {
9445
9445
  updateThread(thread.id, { title: meta.title });
9446
9446
  }
9447
- const { autoArchiveOnMergeEnabled } = await import("./app-settings-BABO3E4A.js");
9447
+ const { autoArchiveOnMergeEnabled } = await import("./app-settings-CLARFJUX.js");
9448
9448
  const latest = this.requireThread(thread.id);
9449
9449
  if (!shouldAutoArchiveOnPrMerge({
9450
9450
  previousPrState: prevState || null,
@@ -9726,7 +9726,7 @@ var Orchestrator = class {
9726
9726
  this.enforceHistoryRetention();
9727
9727
  if (thread.repoPath && !isGlobalRepoPath(thread.repoPath)) {
9728
9728
  try {
9729
- const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-RSTX2WL7.js");
9729
+ const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-E6IL3MIH.js");
9730
9730
  await ensureWorkspace2(thread.repoPath);
9731
9731
  } catch {
9732
9732
  }
@@ -9753,7 +9753,7 @@ var Orchestrator = class {
9753
9753
  await runArchiveScript(thread.repoPath, thread.worktreePath);
9754
9754
  } catch {
9755
9755
  }
9756
- const { deleteBranchOnPurgeEnabled } = await import("./app-settings-BABO3E4A.js");
9756
+ const { deleteBranchOnPurgeEnabled } = await import("./app-settings-CLARFJUX.js");
9757
9757
  const deleteBranch = opts?.deleteBranch ?? deleteBranchOnPurgeEnabled();
9758
9758
  await removeWorktree(thread.repoPath, thread.worktreePath, {
9759
9759
  deleteBranch: deleteBranch ? thread.branchName : void 0
@@ -9768,7 +9768,7 @@ var Orchestrator = class {
9768
9768
  throw new Error("Thread is not archived");
9769
9769
  }
9770
9770
  if (isGlobalThread(thread)) {
9771
- const { globalAgentCwd } = await import("./paths-LGKOG7MY.js");
9771
+ const { globalAgentCwd } = await import("./paths-IUR3ABNG.js");
9772
9772
  updateThread(thread.id, { worktreePath: globalAgentCwd() });
9773
9773
  const restored2 = setStatus(thread.id, "idle");
9774
9774
  this.emit({ type: "status_changed", threadId: restored2.id, status: restored2.status });
@@ -9780,7 +9780,7 @@ var Orchestrator = class {
9780
9780
  `Cowboy checkout missing: ${thread.worktreePath}. Re-add the project folder, then restore.`
9781
9781
  );
9782
9782
  }
9783
- const { createThreadWorktree: createThreadWorktree2 } = await import("./worktree-TXIDEBH2.js");
9783
+ const { createThreadWorktree: createThreadWorktree2 } = await import("./worktree-MWX6ZVNS.js");
9784
9784
  const slug = thread.worktreePath.split("/").pop();
9785
9785
  const dest = thread.worktreePath;
9786
9786
  await withRepoGitLock(thread.repoPath, async () => {
@@ -9890,7 +9890,7 @@ async function startOrchestration(opts) {
9890
9890
  sourceRef: "default",
9891
9891
  ...createOpts
9892
9892
  }).catch(async () => {
9893
- const { resolveDefaultBranch: resolveDefaultBranch2, resolveRepoRoot: resolveRepoRoot2 } = await import("./worktree-TXIDEBH2.js");
9893
+ const { resolveDefaultBranch: resolveDefaultBranch2, resolveRepoRoot: resolveRepoRoot2 } = await import("./worktree-MWX6ZVNS.js");
9894
9894
  const repo = await resolveRepoRoot2(repoPath);
9895
9895
  const def = await resolveDefaultBranch2(repo);
9896
9896
  return orch.createThread({
@@ -9900,7 +9900,7 @@ async function startOrchestration(opts) {
9900
9900
  repoPath: repo
9901
9901
  });
9902
9902
  });
9903
- const { updateThread: upd } = await import("./thread-store-BEBZMOS7.js");
9903
+ const { updateThread: upd } = await import("./thread-store-HDQ4CH54.js");
9904
9904
  const updated = upd(thread.id, {
9905
9905
  sourceType: "orchestration",
9906
9906
  sourceRef: goal
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  isOrchestratorThread
3
- } from "./chunk-IBWVE22Z.js";
3
+ } from "./chunk-TMLS5WYR.js";
4
4
  import {
5
5
  codexUnattendedGitConfigArgs,
6
6
  mergeAgentGitAuthEnv,
7
7
  resolveAgentGitAuthEnv,
8
8
  resolveCodexGitWritableRoots
9
- } from "./chunk-3O66W4TI.js";
9
+ } from "./chunk-WI75LO3T.js";
10
10
  import {
11
11
  applyConnectedTeamToCli,
12
12
  brightsyMcpServerName,
13
13
  ensureCliTeamTracked,
14
14
  ensureConnectedBrightsyTeamTokens
15
- } from "./chunk-CJKL7A4G.js";
15
+ } from "./chunk-5F4YFGHL.js";
16
16
  import {
17
17
  loadBrightsyConfig
18
18
  } from "./chunk-ROPGQRPU.js";
@@ -36,7 +36,7 @@ import {
36
36
  packagedMcpStdioPath,
37
37
  parseCursorRunnerLine,
38
38
  resolveNodeLaunch
39
- } from "./chunk-5SHYLRTU.js";
39
+ } from "./chunk-VVHHBOIA.js";
40
40
  import {
41
41
  claudeChromeEnabled,
42
42
  fromInclusiveInputUsage,
@@ -45,10 +45,10 @@ import {
45
45
  loadAppSettings,
46
46
  resolveAgentExecutable,
47
47
  resolveClaudeExecutable
48
- } from "./chunk-4URNTA75.js";
48
+ } from "./chunk-KJM3E3NF.js";
49
49
  import {
50
50
  appDataDir
51
- } from "./chunk-A4JGXX2F.js";
51
+ } from "./chunk-EHT2DRT4.js";
52
52
  import {
53
53
  enrichPathWithNpmGlobalBin,
54
54
  isConductorBundledCli,
@@ -2533,7 +2533,7 @@ var claudeAdapter = {
2533
2533
  );
2534
2534
  }
2535
2535
  const mode = permissionMode(thread);
2536
- const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-NDDNFPYH.js");
2536
+ const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-GTEL4UUZ.js");
2537
2537
  const isOrchestrator = isOrchestratorThread2(thread);
2538
2538
  const injectedServers = await buildInjectedMcpServers({
2539
2539
  includeSideboard: true,
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  textFromAbleTimeDoc
3
- } from "./chunk-W632CHCY.js";
3
+ } from "./chunk-66LAOKLK.js";
4
4
  import {
5
5
  assertAbleTimeCredential,
6
6
  callAbleTimeTool,
7
7
  normalizeAbleTimeHost,
8
8
  rewriteAbleTimeError
9
- } from "./chunk-5FLTBGF2.js";
9
+ } from "./chunk-IFHHPPSL.js";
10
10
  import {
11
11
  isAbleTimeConnected,
12
12
  saveAbleTimeConnection
13
- } from "./chunk-4URNTA75.js";
13
+ } from "./chunk-KJM3E3NF.js";
14
14
 
15
15
  // src/integrations/abletime.ts
16
16
  var CLOSED_STATES = /* @__PURE__ */ new Set([
@@ -387,6 +387,16 @@ function familyExists(rootPath, source) {
387
387
  const files = familyFiles(rootPath, source);
388
388
  return existsSync4(files.toml) || existsSync4(files.local);
389
389
  }
390
+ function hasCommittedSettingsToml(rootPath) {
391
+ return existsSync4(familyFiles(rootPath, "sideboard").toml) || existsSync4(familyFiles(rootPath, "conductor").toml);
392
+ }
393
+ function hasWorkspaceSettingsToml(worktreePath, repoPath) {
394
+ if (hasCommittedSettingsToml(worktreePath)) return true;
395
+ if (repoPath && normPath2(repoPath) !== normPath2(worktreePath) && hasCommittedSettingsToml(repoPath)) {
396
+ return true;
397
+ }
398
+ return false;
399
+ }
390
400
  function detectFamily(rootPath) {
391
401
  if (familyExists(rootPath, "sideboard")) return "sideboard";
392
402
  if (familyExists(rootPath, "conductor")) return "conductor";
@@ -478,6 +488,7 @@ function getRepoSetupInfo(worktreePath, repoPath) {
478
488
  return {
479
489
  hasConfig: hasWorkspaceHook(worktreePath, repoPath) || cursor || Boolean(convention),
480
490
  hasSetupScript,
491
+ hasSettingsToml: hasWorkspaceSettingsToml(worktreePath, repoPath),
481
492
  configLabel,
482
493
  ...settings?.prompts ? { prompts: settings.prompts } : {}
483
494
  };
@@ -556,6 +567,7 @@ export {
556
567
  runScriptPreview,
557
568
  activeRunPreview,
558
569
  annotateDevAccessRuns,
570
+ hasWorkspaceSettingsToml,
559
571
  loadRepoSettings,
560
572
  loadWorkspaceSettings,
561
573
  loadConductorSettings,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  DEFAULT_ABLETIME_HOST,
3
3
  normalizeAbleTimeHost
4
- } from "./chunk-5FLTBGF2.js";
4
+ } from "./chunk-IFHHPPSL.js";
5
5
  import {
6
6
  httpFetch
7
7
  } from "./chunk-N7WZ6NIN.js";
@@ -10,7 +10,7 @@ import {
10
10
  getAbleTimeHost,
11
11
  loadAppSettings,
12
12
  saveAbleTimeConnection
13
- } from "./chunk-4URNTA75.js";
13
+ } from "./chunk-KJM3E3NF.js";
14
14
 
15
15
  // src/integrations/abletime-oauth.ts
16
16
  import { createHash, randomBytes } from "crypto";
@@ -280,7 +280,7 @@ async function startAbleTimeOAuth(opts) {
280
280
  persistAbleTimeTokens(data, { host });
281
281
  const token = data.access_token.trim();
282
282
  try {
283
- const { getAbleTimeOrientation } = await import("./abletime-EM7FH7TX.js");
283
+ const { getAbleTimeOrientation } = await import("./abletime-IDQJI2KW.js");
284
284
  const orientation = await getAbleTimeOrientation({ token, host });
285
285
  return saveAbleTimeConnection({
286
286
  accessToken: token,
@@ -2,13 +2,13 @@
2
2
 
3
3
  import {
4
4
  isOrchestratorThread
5
- } from "./chunk-RUGWYZOB.js";
5
+ } from "./chunk-PL23EQ3S.js";
6
6
  import {
7
7
  applyConnectedTeamToCli,
8
8
  brightsyMcpServerName,
9
9
  ensureCliTeamTracked,
10
10
  ensureConnectedBrightsyTeamTokens
11
- } from "./chunk-J5GON4SU.js";
11
+ } from "./chunk-XAISOBBG.js";
12
12
  import {
13
13
  loadBrightsyConfig
14
14
  } from "./chunk-P2BSMNHB.js";
@@ -20,7 +20,7 @@ import {
20
20
  mergeAgentGitAuthEnv,
21
21
  resolveAgentGitAuthEnv,
22
22
  resolveCodexGitWritableRoots
23
- } from "./chunk-M5QVZYKK.js";
23
+ } from "./chunk-JLLISK4D.js";
24
24
  import {
25
25
  enrichPathWithNpmGlobalBin,
26
26
  isConductorBundledCli,
@@ -37,10 +37,10 @@ import {
37
37
  loadAppSettings,
38
38
  resolveAgentExecutable,
39
39
  resolveClaudeExecutable
40
- } from "./chunk-HO5TQG3Z.js";
40
+ } from "./chunk-452Y24PW.js";
41
41
  import {
42
42
  appDataDir
43
- } from "./chunk-KK63BFYN.js";
43
+ } from "./chunk-Z2LGMV6C.js";
44
44
  import {
45
45
  isElectronLikeCommand,
46
46
  unwrapStrippedElectronLaunch,
@@ -2947,7 +2947,7 @@ var claudeAdapter = {
2947
2947
  );
2948
2948
  }
2949
2949
  const mode = permissionMode(thread);
2950
- const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-5U5Y7266.js");
2950
+ const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-DWKW4CFY.js");
2951
2951
  const isOrchestrator = isOrchestratorThread2(thread);
2952
2952
  const injectedServers = await buildInjectedMcpServers({
2953
2953
  includeSideboard: true,
@@ -2,7 +2,7 @@
2
2
 
3
3
  import {
4
4
  appDataDir
5
- } from "./chunk-KK63BFYN.js";
5
+ } from "./chunk-Z2LGMV6C.js";
6
6
 
7
7
  // src/agents/cursor-store.ts
8
8
  import { join } from "path";
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  getAbleTimeHost,
6
6
  isAbleTimeConnected
7
- } from "./chunk-4URNTA75.js";
7
+ } from "./chunk-KJM3E3NF.js";
8
8
 
9
9
  // src/integrations/abletime-mcp.ts
10
10
  var DEFAULT_ABLETIME_HOST = "https://track.abletime.com";
@@ -153,7 +153,7 @@ function textsFromUnknown(value) {
153
153
  return "";
154
154
  }
155
155
  async function abletimeMcpRequest(method, params, opts) {
156
- const rawToken = opts?.token ?? await import("./abletime-oauth-332MUPBE.js").then((m) => m.ensureAbleTimeAccessToken());
156
+ const rawToken = opts?.token ?? await import("./abletime-oauth-ZQUIY4EM.js").then((m) => m.ensureAbleTimeAccessToken());
157
157
  if (!rawToken?.trim()) {
158
158
  throw new Error("AbleTime is not connected \u2014 paste a personal access token in Account settings");
159
159
  }
@@ -224,9 +224,9 @@ async function callAbleTimeTool(name, args = {}, opts) {
224
224
  if (!opts?.token && !isAbleTimeConnected()) {
225
225
  throw new Error("AbleTime is not connected \u2014 paste a personal access token in Account settings");
226
226
  }
227
- const rawToken = opts?.token ?? await import("./abletime-oauth-332MUPBE.js").then((m) => m.ensureAbleTimeAccessToken());
227
+ const rawToken = opts?.token ?? await import("./abletime-oauth-ZQUIY4EM.js").then((m) => m.ensureAbleTimeAccessToken());
228
228
  if (rawToken && ableTimeUsesRest(rawToken)) {
229
- const { callAbleTimeRestTool } = await import("./abletime-rest-LR2HWLP2.js");
229
+ const { callAbleTimeRestTool } = await import("./abletime-rest-JZIIT5W3.js");
230
230
  return callAbleTimeRestTool(name, args, { ...opts, token: rawToken });
231
231
  }
232
232
  const requestOpts = { ...opts, pm: opts?.pm ?? abletimeToolUsesPm(name) };
@@ -242,7 +242,7 @@ async function callAbleTimeTool(name, args = {}, opts) {
242
242
  return await call();
243
243
  }
244
244
  if (rawToken && ableTimeUsesRest(rawToken) && isAbleTimeRejectedCredential(message)) {
245
- const { callAbleTimeRestTool } = await import("./abletime-rest-LR2HWLP2.js");
245
+ const { callAbleTimeRestTool } = await import("./abletime-rest-JZIIT5W3.js");
246
246
  return callAbleTimeRestTool(name, args, { ...opts, token: rawToken });
247
247
  }
248
248
  throw err instanceof Error ? new Error(rewriteAbleTimeError(err.message)) : err;
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-D6JWYJ4P.js";
6
6
  import {
7
7
  listThreads
8
- } from "./chunk-PELMZRDB.js";
8
+ } from "./chunk-RJC2MKXN.js";
9
9
  import {
10
10
  ensureWorktreeSideboardIgnored
11
11
  } from "./chunk-DD67JWTN.js";
@@ -22,10 +22,10 @@ import {
22
22
  import {
23
23
  getGithubGitAuthMode,
24
24
  getGithubPat
25
- } from "./chunk-HO5TQG3Z.js";
25
+ } from "./chunk-452Y24PW.js";
26
26
  import {
27
27
  worktreesRoot
28
- } from "./chunk-KK63BFYN.js";
28
+ } from "./chunk-Z2LGMV6C.js";
29
29
 
30
30
  // src/git/worktree.ts
31
31
  import { randomBytes } from "crypto";
@@ -2285,9 +2285,10 @@ ${result.stderr}`;
2285
2285
  async function probeLocalMergeGate(cwd, gate) {
2286
2286
  const mergeable = (gate?.mergeable ?? "").toUpperCase();
2287
2287
  const mergeState = (gate?.mergeStateStatus ?? "").toUpperCase();
2288
- const alreadyConflicting = mergeable === "CONFLICTING" || mergeState === "DIRTY";
2288
+ const githubConflicting = mergeable === "CONFLICTING" || mergeState === "DIRTY";
2289
+ const githubUnknown = mergeable === "UNKNOWN" || mergeState === "UNKNOWN";
2289
2290
  const inQueue = gate ? prIsInMergeQueue(gate) : false;
2290
- if (alreadyConflicting || inQueue) return { gate, files: [] };
2291
+ if (inQueue) return { gate, files: [] };
2291
2292
  try {
2292
2293
  const local = await detectLocalMergeConflicts(cwd, gate?.baseRefName ?? null);
2293
2294
  if (local.conflicting) {
@@ -2303,12 +2304,12 @@ async function probeLocalMergeGate(cwd, gate) {
2303
2304
  files: local.files
2304
2305
  };
2305
2306
  }
2306
- if (gate && (mergeable === "UNKNOWN" || mergeState === "UNKNOWN")) {
2307
+ if (gate && (githubConflicting || githubUnknown)) {
2307
2308
  return {
2308
2309
  gate: {
2309
2310
  ...gate,
2310
- mergeable: gate.mergeable === "UNKNOWN" ? "MERGEABLE" : gate.mergeable,
2311
- mergeStateStatus: gate.mergeStateStatus === "UNKNOWN" ? "CLEAN" : gate.mergeStateStatus
2311
+ mergeable: "MERGEABLE",
2312
+ mergeStateStatus: mergeState === "BEHIND" ? "BEHIND" : "CLEAN"
2312
2313
  },
2313
2314
  files: []
2314
2315
  };
@@ -2440,6 +2441,7 @@ var PR_DETAILS_JSON_FIELDS = [
2440
2441
  "isDraft",
2441
2442
  "reviewDecision",
2442
2443
  "author",
2444
+ "createdAt",
2443
2445
  "baseRefName",
2444
2446
  "headRefName",
2445
2447
  "additions",
@@ -2469,6 +2471,7 @@ function parsePrDetailsView(view) {
2469
2471
  isDraft: Boolean(view.isDraft),
2470
2472
  reviewDecision: typeof view.reviewDecision === "string" && view.reviewDecision ? view.reviewDecision : null,
2471
2473
  author: { login: author.login ?? "unknown", name: author.name ?? null },
2474
+ createdAt: typeof view.createdAt === "string" && view.createdAt ? view.createdAt : null,
2472
2475
  baseRefName: String(view.baseRefName ?? ""),
2473
2476
  headRefName: String(view.headRefName ?? ""),
2474
2477
  additions: Number(view.additions ?? 0),
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-77WWLBCI.js";
11
11
  import {
12
12
  appDataDir
13
- } from "./chunk-A4JGXX2F.js";
13
+ } from "./chunk-EHT2DRT4.js";
14
14
  import {
15
15
  stripNestedElectronEnv
16
16
  } from "./chunk-4TR3HZFT.js";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-JT7R45JB.js";
4
4
  import {
5
5
  appDataDir
6
- } from "./chunk-A4JGXX2F.js";
6
+ } from "./chunk-EHT2DRT4.js";
7
7
 
8
8
  // src/store/caffeinate-hold.ts
9
9
  import { spawn } from "child_process";
@@ -8,7 +8,7 @@ import {
8
8
  resolveRepoRoot,
9
9
  takenSlugsFromThread,
10
10
  teamSlugFromName
11
- } from "./chunk-M5QVZYKK.js";
11
+ } from "./chunk-JLLISK4D.js";
12
12
  import {
13
13
  ATTACHMENTS_DIR,
14
14
  attachmentsGitignoreBody
@@ -18,7 +18,7 @@ import {
18
18
  listThreads,
19
19
  updateThread,
20
20
  writeThread
21
- } from "./chunk-PELMZRDB.js";
21
+ } from "./chunk-RJC2MKXN.js";
22
22
  import {
23
23
  assertOrchestratorCapableAgent,
24
24
  formatAccountProfilePlaybookLine,
@@ -31,12 +31,12 @@ import {
31
31
  resolveThreadDefaults,
32
32
  resolveViewerProfile,
33
33
  resolveViewerProfileForRepo
34
- } from "./chunk-HO5TQG3Z.js";
34
+ } from "./chunk-452Y24PW.js";
35
35
  import {
36
36
  appDataDir,
37
37
  globalAgentCwd,
38
38
  sideboardReposDir
39
- } from "./chunk-KK63BFYN.js";
39
+ } from "./chunk-Z2LGMV6C.js";
40
40
 
41
41
  // src/store/workspaces.ts
42
42
  import { existsSync as existsSync2, mkdirSync as mkdirSync3, readFileSync as readFileSync3, statSync as statSync2, writeFileSync as writeFileSync3 } from "fs";
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-NSTQ6QKD.js";
6
6
  import {
7
7
  appDataDir
8
- } from "./chunk-KK63BFYN.js";
8
+ } from "./chunk-Z2LGMV6C.js";
9
9
 
10
10
  // src/store/caffeinate-hold.ts
11
11
  import { spawn } from "child_process";
@@ -2,7 +2,7 @@
2
2
 
3
3
  import {
4
4
  cursorSdkStoreDir
5
- } from "./chunk-N6XI5KXL.js";
5
+ } from "./chunk-H547WSSZ.js";
6
6
  import {
7
7
  normalizeThinkingEffort
8
8
  } from "./chunk-KGZBYWZ3.js";
@@ -10,7 +10,7 @@ import {
10
10
  threadFilePath,
11
11
  threadLockPath,
12
12
  threadsDir
13
- } from "./chunk-KK63BFYN.js";
13
+ } from "./chunk-Z2LGMV6C.js";
14
14
 
15
15
  // src/store/thread-store.ts
16
16
  import { randomUUID } from "crypto";
@@ -2,17 +2,17 @@
2
2
 
3
3
  import {
4
4
  textFromAbleTimeDoc
5
- } from "./chunk-XHAK4FSQ.js";
5
+ } from "./chunk-XIEDFRBP.js";
6
6
  import {
7
7
  assertAbleTimeCredential,
8
8
  callAbleTimeTool,
9
9
  normalizeAbleTimeHost,
10
10
  rewriteAbleTimeError
11
- } from "./chunk-KB4JPKMT.js";
11
+ } from "./chunk-ZC3TVLY6.js";
12
12
  import {
13
13
  isAbleTimeConnected,
14
14
  saveAbleTimeConnection
15
- } from "./chunk-HO5TQG3Z.js";
15
+ } from "./chunk-452Y24PW.js";
16
16
 
17
17
  // src/integrations/abletime.ts
18
18
  var CLOSED_STATES = /* @__PURE__ */ new Set([
@@ -6,7 +6,7 @@ import {
6
6
  resolveRepoRoot,
7
7
  takenSlugsFromThread,
8
8
  teamSlugFromName
9
- } from "./chunk-3O66W4TI.js";
9
+ } from "./chunk-WI75LO3T.js";
10
10
  import {
11
11
  ATTACHMENTS_DIR,
12
12
  attachmentsGitignoreBody
@@ -23,18 +23,18 @@ import {
23
23
  resolveThreadDefaults,
24
24
  resolveViewerProfile,
25
25
  resolveViewerProfileForRepo
26
- } from "./chunk-4URNTA75.js";
26
+ } from "./chunk-KJM3E3NF.js";
27
27
  import {
28
28
  createEmptyThread,
29
29
  listThreads,
30
30
  updateThread,
31
31
  writeThread
32
- } from "./chunk-CXTIOJRX.js";
32
+ } from "./chunk-4723RAO3.js";
33
33
  import {
34
34
  appDataDir,
35
35
  globalAgentCwd,
36
36
  sideboardReposDir
37
- } from "./chunk-A4JGXX2F.js";
37
+ } from "./chunk-EHT2DRT4.js";
38
38
 
39
39
  // src/store/workspaces.ts
40
40
  import { existsSync as existsSync2, mkdirSync as mkdirSync3, readFileSync as readFileSync3, statSync as statSync2, writeFileSync as writeFileSync3 } from "fs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  appDataDir
3
- } from "./chunk-A4JGXX2F.js";
3
+ } from "./chunk-EHT2DRT4.js";
4
4
 
5
5
  // src/agents/cursor-store.ts
6
6
  import { join } from "path";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  appDataDir
3
- } from "./chunk-A4JGXX2F.js";
3
+ } from "./chunk-EHT2DRT4.js";
4
4
  import {
5
5
  npmGlobalNodeModules,
6
6
  run