@sideboard-ai/core 0.1.209 → 0.1.210

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 (48) hide show
  1. package/dist/{abletime-G3MWSZVM.js → abletime-GDZLZRMY.js} +4 -4
  2. package/dist/{abletime-SQREWITG.js → abletime-QGGYL2G4.js} +4 -4
  3. package/dist/{abletime-oauth-SQD6K47H.js → abletime-oauth-3X3BAPTF.js} +3 -3
  4. package/dist/{abletime-oauth-7AOE4KJL.js → abletime-oauth-F335TWKY.js} +3 -3
  5. package/dist/{abletime-rest-QRTJH42S.js → abletime-rest-LAGTPAJL.js} +3 -3
  6. package/dist/{abletime-rest-BXL7QHCX.js → abletime-rest-PLJVY3H3.js} +3 -3
  7. package/dist/{agents-KA6HDNNP.js → agents-G3TFVFBQ.js} +5 -5
  8. package/dist/{agents-U2NVCYGC.js → agents-IQZUN47D.js} +5 -5
  9. package/dist/{app-settings-VBQHGX5Z.js → app-settings-2TN3WLZV.js} +1 -1
  10. package/dist/{app-settings-6SZLZNA7.js → app-settings-XCRNCEEE.js} +1 -1
  11. package/dist/{chunk-B2RPIHNJ.js → chunk-2M5B7YNY.js} +2 -2
  12. package/dist/{chunk-HBL7ILQA.js → chunk-2R6BZRRB.js} +21 -21
  13. package/dist/{chunk-TZCWNRMC.js → chunk-3S2LDD2F.js} +3 -3
  14. package/dist/{chunk-CQZCXRVG.js → chunk-42IULNIY.js} +3 -3
  15. package/dist/{chunk-MZP2C4KE.js → chunk-AOQZZA3M.js} +22 -22
  16. package/dist/{chunk-FUC3XFE2.js → chunk-BTC2D6LS.js} +2 -0
  17. package/dist/{chunk-OY7THBLG.js → chunk-FGTPRMPS.js} +8 -1
  18. package/dist/{chunk-5LFD3KCJ.js → chunk-G4TANQC3.js} +5 -5
  19. package/dist/{chunk-VJQDUD24.js → chunk-L5CIEBLR.js} +2 -0
  20. package/dist/{chunk-XRIF6M5H.js → chunk-LS6TSOCE.js} +5 -5
  21. package/dist/{chunk-IOOL3T7Q.js → chunk-MN6YUD4O.js} +3 -3
  22. package/dist/{chunk-MS2P5GXL.js → chunk-NDE5RKZP.js} +4 -4
  23. package/dist/{chunk-QVVJO4GN.js → chunk-REZRGCKV.js} +3 -3
  24. package/dist/{chunk-42VGWRSE.js → chunk-WX4S775K.js} +2 -2
  25. package/dist/{chunk-RPZFNKND.js → chunk-X5PUFYDJ.js} +8 -1
  26. package/dist/{chunk-IIENQFJ6.js → chunk-YVE4PXCJ.js} +2 -2
  27. package/dist/{chunk-KJAHVQL6.js → chunk-YYELAUKP.js} +4 -4
  28. package/dist/{chunk-PTOIWKDU.js → chunk-ZC664YBJ.js} +3 -3
  29. package/dist/{chunk-22A45QOI.js → chunk-ZZNZX2QW.js} +2 -2
  30. package/dist/{coordinator-prompt-EO2X2EYW.js → coordinator-prompt-GCITY3Q5.js} +4 -4
  31. package/dist/{coordinator-prompt-2YCOE5R4.js → coordinator-prompt-PONGPWIP.js} +4 -4
  32. package/dist/{global-workspace-H2ANUSGR.js → global-workspace-LIZHU4GM.js} +4 -4
  33. package/dist/{global-workspace-JEKMVE42.js → global-workspace-LQZLTGFL.js} +4 -4
  34. package/dist/index.cjs +10 -1
  35. package/dist/index.d.cts +5 -3
  36. package/dist/index.d.ts +5 -3
  37. package/dist/index.js +12 -12
  38. package/dist/mcp/run-stdio.cjs +10 -1
  39. package/dist/mcp/run-stdio.js +11 -11
  40. package/dist/{orchestrator-RUQXDYM7.js → orchestrator-G5HELCVT.js} +6 -6
  41. package/dist/{orchestrator-N7LLTK5O.js → orchestrator-ZBUXJCII.js} +6 -6
  42. package/dist/{thread-store-CMZWM5NY.js → thread-store-FCWU7Y3X.js} +1 -1
  43. package/dist/{thread-store-55X2JYDT.js → thread-store-KMZRQEPY.js} +1 -1
  44. package/dist/{workspaces-SVDORZEI.js → workspaces-2XW2DMRG.js} +4 -4
  45. package/dist/{workspaces-2YNYLSPV.js → workspaces-T6PMQZYQ.js} +4 -4
  46. package/dist/{worktree-5CPGB4D2.js → worktree-2OEMMFRT.js} +3 -3
  47. package/dist/{worktree-YQ6XUSR2.js → worktree-5ZGWKKZ6.js} +3 -3
  48. package/package.json +1 -1
@@ -15,11 +15,11 @@ import {
15
15
  toAbleTimeIssueInfo,
16
16
  updateAbleTimeTask,
17
17
  verifyAbleTimeConnection
18
- } from "./chunk-QVVJO4GN.js";
19
- import "./chunk-B2RPIHNJ.js";
20
- import "./chunk-5LFD3KCJ.js";
18
+ } from "./chunk-REZRGCKV.js";
19
+ import "./chunk-2M5B7YNY.js";
20
+ import "./chunk-G4TANQC3.js";
21
21
  import "./chunk-N7WZ6NIN.js";
22
- import "./chunk-VJQDUD24.js";
22
+ import "./chunk-L5CIEBLR.js";
23
23
  import "./chunk-4TR3HZFT.js";
24
24
  import "./chunk-WDRMZKVB.js";
25
25
  import "./chunk-JT7R45JB.js";
@@ -17,11 +17,11 @@ import {
17
17
  toAbleTimeIssueInfo,
18
18
  updateAbleTimeTask,
19
19
  verifyAbleTimeConnection
20
- } from "./chunk-CQZCXRVG.js";
21
- import "./chunk-IIENQFJ6.js";
22
- import "./chunk-XRIF6M5H.js";
20
+ } from "./chunk-42IULNIY.js";
21
+ import "./chunk-YVE4PXCJ.js";
22
+ import "./chunk-LS6TSOCE.js";
23
23
  import "./chunk-VKQGAWHY.js";
24
- import "./chunk-FUC3XFE2.js";
24
+ import "./chunk-BTC2D6LS.js";
25
25
  import "./chunk-NSTQ6QKD.js";
26
26
  import "./chunk-KGZBYWZ3.js";
27
27
  import "./chunk-EQNRWDLN.js";
@@ -20,10 +20,10 @@ import {
20
20
  parseAbleTimeOAuthCallbackUrl,
21
21
  resolveAbleTimeOAuthHost,
22
22
  startAbleTimeOAuth
23
- } from "./chunk-IOOL3T7Q.js";
24
- import "./chunk-5LFD3KCJ.js";
23
+ } from "./chunk-MN6YUD4O.js";
24
+ import "./chunk-G4TANQC3.js";
25
25
  import "./chunk-N7WZ6NIN.js";
26
- import "./chunk-VJQDUD24.js";
26
+ import "./chunk-L5CIEBLR.js";
27
27
  import "./chunk-4TR3HZFT.js";
28
28
  import "./chunk-WDRMZKVB.js";
29
29
  import "./chunk-JT7R45JB.js";
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  DEFAULT_ABLETIME_HOST,
5
5
  normalizeAbleTimeHost
6
- } from "./chunk-XRIF6M5H.js";
6
+ } from "./chunk-LS6TSOCE.js";
7
7
  import {
8
8
  httpFetch
9
9
  } from "./chunk-VKQGAWHY.js";
@@ -12,7 +12,7 @@ import {
12
12
  getAbleTimeHost,
13
13
  loadAppSettings,
14
14
  saveAbleTimeConnection
15
- } from "./chunk-FUC3XFE2.js";
15
+ } from "./chunk-BTC2D6LS.js";
16
16
  import "./chunk-NSTQ6QKD.js";
17
17
  import "./chunk-KGZBYWZ3.js";
18
18
  import "./chunk-EQNRWDLN.js";
@@ -286,7 +286,7 @@ async function startAbleTimeOAuth(opts) {
286
286
  persistAbleTimeTokens(data, { host });
287
287
  const token = data.access_token.trim();
288
288
  try {
289
- const { getAbleTimeOrientation } = await import("./abletime-SQREWITG.js");
289
+ const { getAbleTimeOrientation } = await import("./abletime-QGGYL2G4.js");
290
290
  const orientation = await getAbleTimeOrientation({ token, host });
291
291
  return saveAbleTimeConnection({
292
292
  accessToken: token,
@@ -7,10 +7,10 @@ import {
7
7
  callAbleTimeRestTool,
8
8
  looksLikeAbleTimeUlid,
9
9
  textFromAbleTimeDoc
10
- } from "./chunk-IIENQFJ6.js";
11
- import "./chunk-XRIF6M5H.js";
10
+ } from "./chunk-YVE4PXCJ.js";
11
+ import "./chunk-LS6TSOCE.js";
12
12
  import "./chunk-VKQGAWHY.js";
13
- import "./chunk-FUC3XFE2.js";
13
+ import "./chunk-BTC2D6LS.js";
14
14
  import "./chunk-NSTQ6QKD.js";
15
15
  import "./chunk-KGZBYWZ3.js";
16
16
  import "./chunk-EQNRWDLN.js";
@@ -5,10 +5,10 @@ import {
5
5
  callAbleTimeRestTool,
6
6
  looksLikeAbleTimeUlid,
7
7
  textFromAbleTimeDoc
8
- } from "./chunk-B2RPIHNJ.js";
9
- import "./chunk-5LFD3KCJ.js";
8
+ } from "./chunk-2M5B7YNY.js";
9
+ import "./chunk-G4TANQC3.js";
10
10
  import "./chunk-N7WZ6NIN.js";
11
- import "./chunk-VJQDUD24.js";
11
+ import "./chunk-L5CIEBLR.js";
12
12
  import "./chunk-4TR3HZFT.js";
13
13
  import "./chunk-WDRMZKVB.js";
14
14
  import "./chunk-JT7R45JB.js";
@@ -50,14 +50,14 @@ import {
50
50
  resolveQuotaFallbackAgent,
51
51
  turnCostUsdFromCursorUsage,
52
52
  whichOnPath
53
- } from "./chunk-MS2P5GXL.js";
54
- import "./chunk-PTOIWKDU.js";
53
+ } from "./chunk-NDE5RKZP.js";
54
+ import "./chunk-ZC664YBJ.js";
55
55
  import "./chunk-3OHR73VK.js";
56
56
  import "./chunk-Y4MIXGPA.js";
57
57
  import "./chunk-VKQGAWHY.js";
58
- import "./chunk-42VGWRSE.js";
58
+ import "./chunk-WX4S775K.js";
59
59
  import "./chunk-D6JWYJ4P.js";
60
- import "./chunk-RPZFNKND.js";
60
+ import "./chunk-X5PUFYDJ.js";
61
61
  import "./chunk-X5B3OS5I.js";
62
62
  import "./chunk-SYFVUF2C.js";
63
63
  import {
@@ -74,7 +74,7 @@ import {
74
74
  assertOrchestratorCapableAgent,
75
75
  coerceOrchestratorAgent,
76
76
  isOrchestratorCapableAgent
77
- } from "./chunk-FUC3XFE2.js";
77
+ } from "./chunk-BTC2D6LS.js";
78
78
  import "./chunk-NSTQ6QKD.js";
79
79
  import "./chunk-KGZBYWZ3.js";
80
80
  import "./chunk-EQNRWDLN.js";
@@ -44,9 +44,9 @@ import {
44
44
  resolveLoginCommand,
45
45
  resolveQuotaFallbackAgent,
46
46
  whichOnPath
47
- } from "./chunk-KJAHVQL6.js";
48
- import "./chunk-TZCWNRMC.js";
49
- import "./chunk-22A45QOI.js";
47
+ } from "./chunk-YYELAUKP.js";
48
+ import "./chunk-3S2LDD2F.js";
49
+ import "./chunk-ZZNZX2QW.js";
50
50
  import "./chunk-6K64FJDD.js";
51
51
  import "./chunk-QQKDGPUI.js";
52
52
  import "./chunk-SALM35KD.js";
@@ -63,11 +63,11 @@ import {
63
63
  assertOrchestratorCapableAgent,
64
64
  coerceOrchestratorAgent,
65
65
  isOrchestratorCapableAgent
66
- } from "./chunk-VJQDUD24.js";
66
+ } from "./chunk-L5CIEBLR.js";
67
67
  import "./chunk-4TR3HZFT.js";
68
68
  import "./chunk-WDRMZKVB.js";
69
69
  import "./chunk-JT7R45JB.js";
70
- import "./chunk-OY7THBLG.js";
70
+ import "./chunk-FGTPRMPS.js";
71
71
  import "./chunk-7J72QJOM.js";
72
72
  import "./chunk-77WWLBCI.js";
73
73
  import "./chunk-WFUDY6PC.js";
@@ -92,7 +92,7 @@ import {
92
92
  updateProjectProfileSettings,
93
93
  usageOnLimit,
94
94
  writeViewerContext
95
- } from "./chunk-VJQDUD24.js";
95
+ } from "./chunk-L5CIEBLR.js";
96
96
  import "./chunk-4TR3HZFT.js";
97
97
  import "./chunk-WDRMZKVB.js";
98
98
  import "./chunk-JT7R45JB.js";
@@ -94,7 +94,7 @@ import {
94
94
  updateProjectProfileSettings,
95
95
  usageOnLimit,
96
96
  writeViewerContext
97
- } from "./chunk-FUC3XFE2.js";
97
+ } from "./chunk-BTC2D6LS.js";
98
98
  import "./chunk-NSTQ6QKD.js";
99
99
  import "./chunk-KGZBYWZ3.js";
100
100
  import "./chunk-EQNRWDLN.js";
@@ -4,14 +4,14 @@ import {
4
4
  normalizeAbleTimeCredential,
5
5
  normalizeAbleTimeHost,
6
6
  rewriteAbleTimeError
7
- } from "./chunk-5LFD3KCJ.js";
7
+ } from "./chunk-G4TANQC3.js";
8
8
  import {
9
9
  httpFetch
10
10
  } from "./chunk-N7WZ6NIN.js";
11
11
  import {
12
12
  getAbleTimeAccessToken,
13
13
  getAbleTimeHost
14
- } from "./chunk-VJQDUD24.js";
14
+ } from "./chunk-L5CIEBLR.js";
15
15
 
16
16
  // src/integrations/abletime-rest.ts
17
17
  var ABLETIME_REST_PREFIX = "/api/public/v2";
@@ -42,7 +42,7 @@ import {
42
42
  summarizeTurnStderr,
43
43
  toolDescription,
44
44
  turnFailChatText
45
- } from "./chunk-MS2P5GXL.js";
45
+ } from "./chunk-NDE5RKZP.js";
46
46
  import {
47
47
  SLACK_REPLY_FORMATTING,
48
48
  addWorkspace,
@@ -65,7 +65,7 @@ import {
65
65
  stageAbsolutePathsAsAttachments,
66
66
  stageBuffersAsAttachments,
67
67
  syncWorkspacesFromThreads
68
- } from "./chunk-PTOIWKDU.js";
68
+ } from "./chunk-ZC664YBJ.js";
69
69
  import {
70
70
  addPrStackLayer,
71
71
  allocateTeamName,
@@ -115,7 +115,7 @@ import {
115
115
  worktreeDisplayLabelForGroup,
116
116
  worktreeNameFromPath,
117
117
  worktreeSlugForTicket
118
- } from "./chunk-42VGWRSE.js";
118
+ } from "./chunk-WX4S775K.js";
119
119
  import {
120
120
  ATTACHMENTS_DIR,
121
121
  DETACHED_JOBS_DIR,
@@ -133,7 +133,7 @@ import {
133
133
  updateThread,
134
134
  withThreadLock,
135
135
  writeThread
136
- } from "./chunk-RPZFNKND.js";
136
+ } from "./chunk-X5PUFYDJ.js";
137
137
  import {
138
138
  ensureWorktreeSideboardIgnored
139
139
  } from "./chunk-SYFVUF2C.js";
@@ -179,7 +179,7 @@ import {
179
179
  updateAdvancedSettings,
180
180
  usageOnLimit,
181
181
  writeSecureJson
182
- } from "./chunk-FUC3XFE2.js";
182
+ } from "./chunk-BTC2D6LS.js";
183
183
  import {
184
184
  writePrivateFile
185
185
  } from "./chunk-NSTQ6QKD.js";
@@ -417,7 +417,7 @@ async function continueSourceThread(threadId, prompt) {
417
417
  await continueOnReply(threadId, prompt);
418
418
  return;
419
419
  }
420
- const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-RUQXDYM7.js");
420
+ const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-G5HELCVT.js");
421
421
  await getOrchestrator2().send(threadId, prompt);
422
422
  } catch {
423
423
  }
@@ -810,9 +810,9 @@ async function spawnAgentTurn(thread, input, onEvent) {
810
810
  `Cannot spawn ${thread.agent}: thread ${thread.id} has no worktreePath`
811
811
  );
812
812
  }
813
- const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-H2ANUSGR.js");
813
+ const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-LIZHU4GM.js");
814
814
  if (isGlobalThread2(thread)) {
815
- const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-2YCOE5R4.js");
815
+ const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-PONGPWIP.js");
816
816
  ensureGlobalCoordinatorCwd2(
817
817
  isOrchestratorThread(thread) ? { orchestratorThreadId: thread.id } : void 0
818
818
  );
@@ -3719,7 +3719,7 @@ async function createThread(input, _onSetupLine) {
3719
3719
  });
3720
3720
  await requireAgent(resolved.agent);
3721
3721
  if (input.cowboy) {
3722
- const { cowboyModeEnabled } = await import("./app-settings-6SZLZNA7.js");
3722
+ const { cowboyModeEnabled } = await import("./app-settings-XCRNCEEE.js");
3723
3723
  if (!cowboyModeEnabled()) {
3724
3724
  throw new Error(
3725
3725
  "Cowboy mode is off. Enable it in Settings \u2192 Advanced."
@@ -3777,7 +3777,7 @@ async function createThread(input, _onSetupLine) {
3777
3777
  let sourceIsFork = false;
3778
3778
  if (!input.cowboy && sourceType === "branch" && (!sourceRef || sourceRef === "HEAD" || sourceRef === "default")) {
3779
3779
  if (isAbleTimeConnected() && getIssueSource() === "abletime") {
3780
- const { ensureAbleTimeTask, issueAttachmentForAbleTimeTask } = await import("./abletime-SQREWITG.js");
3780
+ const { ensureAbleTimeTask, issueAttachmentForAbleTimeTask } = await import("./abletime-QGGYL2G4.js");
3781
3781
  const task = await ensureAbleTimeTask({
3782
3782
  title: title?.trim() || "Untitled work",
3783
3783
  description: input.prompt?.trim() || void 0
@@ -4313,7 +4313,7 @@ async function adoptThread(input) {
4313
4313
  messages: input.messages ?? []
4314
4314
  });
4315
4315
  writeThread(thread);
4316
- const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-2YNYLSPV.js");
4316
+ const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-T6PMQZYQ.js");
4317
4317
  await ensureWorkspace2(repoPath);
4318
4318
  const { ensureWorktreeSideboardIgnored: ensureWorktreeSideboardIgnored2 } = await import("./worktree-exclude-N5X5I422.js");
4319
4319
  await ensureWorktreeSideboardIgnored2(input.worktreePath);
@@ -6713,7 +6713,7 @@ function formatScheduledPrompt(name, prompt) {
6713
6713
  ${prompt}`;
6714
6714
  }
6715
6715
  async function defaultDeps() {
6716
- const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-RUQXDYM7.js");
6716
+ const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-G5HELCVT.js");
6717
6717
  const orch = getOrchestrator2();
6718
6718
  return {
6719
6719
  findThread: (id) => findThreadByRef(id),
@@ -6983,7 +6983,7 @@ var Orchestrator = class {
6983
6983
  orphans: orphans.map((o) => ({ path: o.path, repoPath: o.repoPath }))
6984
6984
  });
6985
6985
  }
6986
- const { autoCleanupOrphansEnabled } = await import("./app-settings-6SZLZNA7.js");
6986
+ const { autoCleanupOrphansEnabled } = await import("./app-settings-XCRNCEEE.js");
6987
6987
  if (autoCleanupOrphansEnabled() && shouldRunWorktreeCleanup() && orphans.length > 0) {
6988
6988
  await cleanupOrphanWorktrees({ repoPaths });
6989
6989
  }
@@ -7281,7 +7281,7 @@ var Orchestrator = class {
7281
7281
  }
7282
7282
  await setup;
7283
7283
  if (skipSetup) return;
7284
- const { autoRunAfterSetupEnabled } = await import("./app-settings-6SZLZNA7.js");
7284
+ const { autoRunAfterSetupEnabled } = await import("./app-settings-XCRNCEEE.js");
7285
7285
  if (autoRunAfterSetupEnabled()) {
7286
7286
  try {
7287
7287
  await this.startDev(threadId);
@@ -7611,7 +7611,7 @@ var Orchestrator = class {
7611
7611
  }
7612
7612
  const isBrightsy = fresh.agent === "brightsy";
7613
7613
  const isOrchestration = isOrchestratorThread(fresh);
7614
- const { autoRenameBranchEnabled, getGithubGitAuthMode, gitBranchPrefixSetting } = await import("./app-settings-6SZLZNA7.js");
7614
+ const { autoRenameBranchEnabled, getGithubGitAuthMode, gitBranchPrefixSetting } = await import("./app-settings-XCRNCEEE.js");
7615
7615
  const gitAuthMode = getGithubGitAuthMode();
7616
7616
  const worktreeDirective = isBrightsy || isOrchestration ? null : formatWorktreeDirective(fresh, {
7617
7617
  githubSlug: await resolveGithubRepoSlug(fresh.worktreePath).catch(
@@ -8643,7 +8643,7 @@ var Orchestrator = class {
8643
8643
  if (!titled.userSetTitle && meta.title && titled.title !== meta.title) {
8644
8644
  updateThread(thread.id, { title: meta.title });
8645
8645
  }
8646
- const { autoArchiveOnMergeEnabled } = await import("./app-settings-6SZLZNA7.js");
8646
+ const { autoArchiveOnMergeEnabled } = await import("./app-settings-XCRNCEEE.js");
8647
8647
  const latest = this.requireThread(thread.id);
8648
8648
  if (!shouldAutoArchiveOnPrMerge({
8649
8649
  previousPrState: prevState || null,
@@ -8922,7 +8922,7 @@ var Orchestrator = class {
8922
8922
  this.enforceHistoryRetention();
8923
8923
  if (thread.repoPath && !isGlobalRepoPath(thread.repoPath)) {
8924
8924
  try {
8925
- const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-2YNYLSPV.js");
8925
+ const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-T6PMQZYQ.js");
8926
8926
  await ensureWorkspace2(thread.repoPath);
8927
8927
  } catch {
8928
8928
  }
@@ -8949,7 +8949,7 @@ var Orchestrator = class {
8949
8949
  await runArchiveScript(thread.repoPath, thread.worktreePath);
8950
8950
  } catch {
8951
8951
  }
8952
- const { deleteBranchOnPurgeEnabled } = await import("./app-settings-6SZLZNA7.js");
8952
+ const { deleteBranchOnPurgeEnabled } = await import("./app-settings-XCRNCEEE.js");
8953
8953
  const deleteBranch = opts?.deleteBranch ?? deleteBranchOnPurgeEnabled();
8954
8954
  await removeWorktree(thread.repoPath, thread.worktreePath, {
8955
8955
  deleteBranch: deleteBranch ? thread.branchName : void 0
@@ -8976,7 +8976,7 @@ var Orchestrator = class {
8976
8976
  `Cowboy checkout missing: ${thread.worktreePath}. Re-add the project folder, then restore.`
8977
8977
  );
8978
8978
  }
8979
- const { createThreadWorktree: createThreadWorktree2 } = await import("./worktree-5CPGB4D2.js");
8979
+ const { createThreadWorktree: createThreadWorktree2 } = await import("./worktree-2OEMMFRT.js");
8980
8980
  const slug = thread.worktreePath.split("/").pop();
8981
8981
  const dest = thread.worktreePath;
8982
8982
  await withRepoGitLock(thread.repoPath, async () => {
@@ -9086,7 +9086,7 @@ async function startOrchestration(opts) {
9086
9086
  sourceRef: "default",
9087
9087
  ...createOpts
9088
9088
  }).catch(async () => {
9089
- const { resolveDefaultBranch: resolveDefaultBranch2, resolveRepoRoot: resolveRepoRoot2 } = await import("./worktree-5CPGB4D2.js");
9089
+ const { resolveDefaultBranch: resolveDefaultBranch2, resolveRepoRoot: resolveRepoRoot2 } = await import("./worktree-2OEMMFRT.js");
9090
9090
  const repo = await resolveRepoRoot2(repoPath);
9091
9091
  const def = await resolveDefaultBranch2(repo);
9092
9092
  return orch.createThread({
@@ -9096,7 +9096,7 @@ async function startOrchestration(opts) {
9096
9096
  repoPath: repo
9097
9097
  });
9098
9098
  });
9099
- const { updateThread: upd } = await import("./thread-store-CMZWM5NY.js");
9099
+ const { updateThread: upd } = await import("./thread-store-FCWU7Y3X.js");
9100
9100
  const updated = upd(thread.id, {
9101
9101
  sourceType: "orchestration",
9102
9102
  sourceRef: goal
@@ -5,7 +5,7 @@ import {
5
5
  resolveRepoRoot,
6
6
  takenSlugsFromThread,
7
7
  teamSlugFromName
8
- } from "./chunk-22A45QOI.js";
8
+ } from "./chunk-ZZNZX2QW.js";
9
9
  import {
10
10
  ATTACHMENTS_DIR,
11
11
  attachmentsGitignoreBody
@@ -22,13 +22,13 @@ import {
22
22
  resolveThreadDefaults,
23
23
  resolveViewerProfile,
24
24
  resolveViewerProfileForRepo
25
- } from "./chunk-VJQDUD24.js";
25
+ } from "./chunk-L5CIEBLR.js";
26
26
  import {
27
27
  createEmptyThread,
28
28
  listThreads,
29
29
  updateThread,
30
30
  writeThread
31
- } from "./chunk-OY7THBLG.js";
31
+ } from "./chunk-FGTPRMPS.js";
32
32
  import {
33
33
  appDataDir,
34
34
  globalAgentCwd,
@@ -2,17 +2,17 @@
2
2
 
3
3
  import {
4
4
  textFromAbleTimeDoc
5
- } from "./chunk-IIENQFJ6.js";
5
+ } from "./chunk-YVE4PXCJ.js";
6
6
  import {
7
7
  assertAbleTimeCredential,
8
8
  callAbleTimeTool,
9
9
  normalizeAbleTimeHost,
10
10
  rewriteAbleTimeError
11
- } from "./chunk-XRIF6M5H.js";
11
+ } from "./chunk-LS6TSOCE.js";
12
12
  import {
13
13
  isAbleTimeConnected,
14
14
  saveAbleTimeConnection
15
- } from "./chunk-FUC3XFE2.js";
15
+ } from "./chunk-BTC2D6LS.js";
16
16
 
17
17
  // src/integrations/abletime.ts
18
18
  var CLOSED_STATES = /* @__PURE__ */ new Set([
@@ -24,7 +24,7 @@ import {
24
24
  resolveQuotaFallbackAgent,
25
25
  stripBrightsyNdjsonNoise,
26
26
  toolDescription
27
- } from "./chunk-KJAHVQL6.js";
27
+ } from "./chunk-YYELAUKP.js";
28
28
  import {
29
29
  SLACK_REPLY_FORMATTING,
30
30
  addWorkspace,
@@ -47,7 +47,7 @@ import {
47
47
  stageAbsolutePathsAsAttachments,
48
48
  stageBuffersAsAttachments,
49
49
  syncWorkspacesFromThreads
50
- } from "./chunk-TZCWNRMC.js";
50
+ } from "./chunk-3S2LDD2F.js";
51
51
  import {
52
52
  addPrStackLayer,
53
53
  allocateTeamName,
@@ -97,7 +97,7 @@ import {
97
97
  worktreeDisplayLabelForGroup,
98
98
  worktreeNameFromPath,
99
99
  worktreeSlugForTicket
100
- } from "./chunk-22A45QOI.js";
100
+ } from "./chunk-ZZNZX2QW.js";
101
101
  import {
102
102
  ATTACHMENTS_DIR,
103
103
  DETACHED_JOBS_DIR,
@@ -164,7 +164,7 @@ import {
164
164
  updateAdvancedSettings,
165
165
  usageOnLimit,
166
166
  writeSecureJson
167
- } from "./chunk-VJQDUD24.js";
167
+ } from "./chunk-L5CIEBLR.js";
168
168
  import {
169
169
  stripNestedElectronEnv
170
170
  } from "./chunk-4TR3HZFT.js";
@@ -189,7 +189,7 @@ import {
189
189
  updateThread,
190
190
  withThreadLock,
191
191
  writeThread
192
- } from "./chunk-OY7THBLG.js";
192
+ } from "./chunk-FGTPRMPS.js";
193
193
  import {
194
194
  appDataDir,
195
195
  findConventionSetup,
@@ -483,7 +483,7 @@ async function continueSourceThread(threadId, prompt) {
483
483
  await continueOnReply(threadId, prompt);
484
484
  return;
485
485
  }
486
- const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-N7LLTK5O.js");
486
+ const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-ZBUXJCII.js");
487
487
  await getOrchestrator2().send(threadId, prompt);
488
488
  } catch {
489
489
  }
@@ -817,9 +817,9 @@ async function spawnAgentTurn(thread, input, onEvent) {
817
817
  `Cannot spawn ${thread.agent}: thread ${thread.id} has no worktreePath`
818
818
  );
819
819
  }
820
- const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-JEKMVE42.js");
820
+ const { isGlobalThread: isGlobalThread2 } = await import("./global-workspace-LQZLTGFL.js");
821
821
  if (isGlobalThread2(thread)) {
822
- const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-EO2X2EYW.js");
822
+ const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("./coordinator-prompt-GCITY3Q5.js");
823
823
  ensureGlobalCoordinatorCwd2(
824
824
  isOrchestratorThread(thread) ? { orchestratorThreadId: thread.id } : void 0
825
825
  );
@@ -3878,7 +3878,7 @@ async function createThread(input, _onSetupLine) {
3878
3878
  });
3879
3879
  await requireAgent(resolved.agent);
3880
3880
  if (input.cowboy) {
3881
- const { cowboyModeEnabled } = await import("./app-settings-VBQHGX5Z.js");
3881
+ const { cowboyModeEnabled } = await import("./app-settings-2TN3WLZV.js");
3882
3882
  if (!cowboyModeEnabled()) {
3883
3883
  throw new Error(
3884
3884
  "Cowboy mode is off. Enable it in Settings \u2192 Advanced."
@@ -3936,7 +3936,7 @@ async function createThread(input, _onSetupLine) {
3936
3936
  let sourceIsFork = false;
3937
3937
  if (!input.cowboy && sourceType === "branch" && (!sourceRef || sourceRef === "HEAD" || sourceRef === "default")) {
3938
3938
  if (isAbleTimeConnected() && getIssueSource() === "abletime") {
3939
- const { ensureAbleTimeTask, issueAttachmentForAbleTimeTask } = await import("./abletime-G3MWSZVM.js");
3939
+ const { ensureAbleTimeTask, issueAttachmentForAbleTimeTask } = await import("./abletime-GDZLZRMY.js");
3940
3940
  const task = await ensureAbleTimeTask({
3941
3941
  title: title?.trim() || "Untitled work",
3942
3942
  description: input.prompt?.trim() || void 0
@@ -4038,7 +4038,7 @@ async function createThread(input, _onSetupLine) {
4038
4038
  return readThread(thread.id) ?? thread;
4039
4039
  }
4040
4040
  async function listLinearIssues(agent, repoPath) {
4041
- const { getAdapter: getAdapter2 } = await import("./agents-U2NVCYGC.js");
4041
+ const { getAdapter: getAdapter2 } = await import("./agents-IQZUN47D.js");
4042
4042
  await requireAgent(agent, { requireLinear: true });
4043
4043
  const adapter = getAdapter2(agent);
4044
4044
  if (!adapter.listLinearIssues) {
@@ -4484,7 +4484,7 @@ async function adoptThread(input) {
4484
4484
  messages: input.messages ?? []
4485
4485
  });
4486
4486
  writeThread(thread);
4487
- const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-SVDORZEI.js");
4487
+ const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-2XW2DMRG.js");
4488
4488
  await ensureWorkspace2(repoPath);
4489
4489
  const { ensureWorktreeSideboardIgnored: ensureWorktreeSideboardIgnored2 } = await import("./worktree-exclude-X54WSOXM.js");
4490
4490
  await ensureWorktreeSideboardIgnored2(input.worktreePath);
@@ -7090,7 +7090,7 @@ function formatScheduledPrompt(name, prompt) {
7090
7090
  ${prompt}`;
7091
7091
  }
7092
7092
  async function defaultDeps() {
7093
- const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-N7LLTK5O.js");
7093
+ const { getOrchestrator: getOrchestrator2, startOrchestration: startOrchestration2 } = await import("./orchestrator-ZBUXJCII.js");
7094
7094
  const orch = getOrchestrator2();
7095
7095
  return {
7096
7096
  findThread: (id) => findThreadByRef(id),
@@ -7360,7 +7360,7 @@ var Orchestrator = class {
7360
7360
  orphans: orphans.map((o) => ({ path: o.path, repoPath: o.repoPath }))
7361
7361
  });
7362
7362
  }
7363
- const { autoCleanupOrphansEnabled } = await import("./app-settings-VBQHGX5Z.js");
7363
+ const { autoCleanupOrphansEnabled } = await import("./app-settings-2TN3WLZV.js");
7364
7364
  if (autoCleanupOrphansEnabled() && shouldRunWorktreeCleanup() && orphans.length > 0) {
7365
7365
  await cleanupOrphanWorktrees({ repoPaths });
7366
7366
  }
@@ -7658,7 +7658,7 @@ var Orchestrator = class {
7658
7658
  }
7659
7659
  await setup;
7660
7660
  if (skipSetup) return;
7661
- const { autoRunAfterSetupEnabled } = await import("./app-settings-VBQHGX5Z.js");
7661
+ const { autoRunAfterSetupEnabled } = await import("./app-settings-2TN3WLZV.js");
7662
7662
  if (autoRunAfterSetupEnabled()) {
7663
7663
  try {
7664
7664
  await this.startDev(threadId);
@@ -7988,7 +7988,7 @@ var Orchestrator = class {
7988
7988
  }
7989
7989
  const isBrightsy = fresh.agent === "brightsy";
7990
7990
  const isOrchestration = isOrchestratorThread(fresh);
7991
- const { autoRenameBranchEnabled, getGithubGitAuthMode, gitBranchPrefixSetting } = await import("./app-settings-VBQHGX5Z.js");
7991
+ const { autoRenameBranchEnabled, getGithubGitAuthMode, gitBranchPrefixSetting } = await import("./app-settings-2TN3WLZV.js");
7992
7992
  const gitAuthMode = getGithubGitAuthMode();
7993
7993
  const worktreeDirective = isBrightsy || isOrchestration ? null : formatWorktreeDirective(fresh, {
7994
7994
  githubSlug: await resolveGithubRepoSlug(fresh.worktreePath).catch(
@@ -9020,7 +9020,7 @@ var Orchestrator = class {
9020
9020
  if (!titled.userSetTitle && meta.title && titled.title !== meta.title) {
9021
9021
  updateThread(thread.id, { title: meta.title });
9022
9022
  }
9023
- const { autoArchiveOnMergeEnabled } = await import("./app-settings-VBQHGX5Z.js");
9023
+ const { autoArchiveOnMergeEnabled } = await import("./app-settings-2TN3WLZV.js");
9024
9024
  const latest = this.requireThread(thread.id);
9025
9025
  if (!shouldAutoArchiveOnPrMerge({
9026
9026
  previousPrState: prevState || null,
@@ -9299,7 +9299,7 @@ var Orchestrator = class {
9299
9299
  this.enforceHistoryRetention();
9300
9300
  if (thread.repoPath && !isGlobalRepoPath(thread.repoPath)) {
9301
9301
  try {
9302
- const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-SVDORZEI.js");
9302
+ const { ensureWorkspace: ensureWorkspace2 } = await import("./workspaces-2XW2DMRG.js");
9303
9303
  await ensureWorkspace2(thread.repoPath);
9304
9304
  } catch {
9305
9305
  }
@@ -9326,7 +9326,7 @@ var Orchestrator = class {
9326
9326
  await runArchiveScript(thread.repoPath, thread.worktreePath);
9327
9327
  } catch {
9328
9328
  }
9329
- const { deleteBranchOnPurgeEnabled } = await import("./app-settings-VBQHGX5Z.js");
9329
+ const { deleteBranchOnPurgeEnabled } = await import("./app-settings-2TN3WLZV.js");
9330
9330
  const deleteBranch = opts?.deleteBranch ?? deleteBranchOnPurgeEnabled();
9331
9331
  await removeWorktree(thread.repoPath, thread.worktreePath, {
9332
9332
  deleteBranch: deleteBranch ? thread.branchName : void 0
@@ -9353,7 +9353,7 @@ var Orchestrator = class {
9353
9353
  `Cowboy checkout missing: ${thread.worktreePath}. Re-add the project folder, then restore.`
9354
9354
  );
9355
9355
  }
9356
- const { createThreadWorktree: createThreadWorktree2 } = await import("./worktree-YQ6XUSR2.js");
9356
+ const { createThreadWorktree: createThreadWorktree2 } = await import("./worktree-5ZGWKKZ6.js");
9357
9357
  const slug = thread.worktreePath.split("/").pop();
9358
9358
  const dest = thread.worktreePath;
9359
9359
  await withRepoGitLock(thread.repoPath, async () => {
@@ -9463,7 +9463,7 @@ async function startOrchestration(opts) {
9463
9463
  sourceRef: "default",
9464
9464
  ...createOpts
9465
9465
  }).catch(async () => {
9466
- const { resolveDefaultBranch: resolveDefaultBranch2, resolveRepoRoot: resolveRepoRoot2 } = await import("./worktree-YQ6XUSR2.js");
9466
+ const { resolveDefaultBranch: resolveDefaultBranch2, resolveRepoRoot: resolveRepoRoot2 } = await import("./worktree-5ZGWKKZ6.js");
9467
9467
  const repo = await resolveRepoRoot2(repoPath);
9468
9468
  const def = await resolveDefaultBranch2(repo);
9469
9469
  return orch.createThread({
@@ -9473,7 +9473,7 @@ async function startOrchestration(opts) {
9473
9473
  repoPath: repo
9474
9474
  });
9475
9475
  });
9476
- const { updateThread: upd } = await import("./thread-store-55X2JYDT.js");
9476
+ const { updateThread: upd } = await import("./thread-store-KMZRQEPY.js");
9477
9477
  const updated = upd(thread.id, {
9478
9478
  sourceType: "orchestration",
9479
9479
  sourceRef: goal
@@ -478,6 +478,8 @@ function clampHistoryMaxDays(value) {
478
478
  return Math.min(HISTORY_MAX_DAYS_MAX, Math.floor(value));
479
479
  }
480
480
  function archivedUpdatedMs(thread) {
481
+ const stamped = thread.archivedAt ? Date.parse(thread.archivedAt) : NaN;
482
+ if (Number.isFinite(stamped)) return stamped;
481
483
  const updated = Date.parse(thread.updatedAt);
482
484
  if (Number.isFinite(updated)) return updated;
483
485
  const created = Date.parse(thread.createdAt);
@@ -56,7 +56,8 @@ function normalizeThread(raw) {
56
56
  userSetTitle: Boolean(raw.userSetTitle),
57
57
  activeRuns: Array.isArray(raw.activeRuns) ? raw.activeRuns : [],
58
58
  quotaResumeAt: raw.quotaResumeAt ?? null,
59
- quotaContinuedFromId: raw.quotaContinuedFromId ?? null
59
+ quotaContinuedFromId: raw.quotaContinuedFromId ?? null,
60
+ archivedAt: typeof raw.archivedAt === "string" && raw.archivedAt.trim() ? raw.archivedAt.trim() : void 0
60
61
  };
61
62
  }
62
63
  function createEmptyThread(partial) {
@@ -91,6 +92,7 @@ function createEmptyThread(partial) {
91
92
  pendingTurnAttachments: partial.pendingTurnAttachments ?? [],
92
93
  createdAt: ts,
93
94
  updatedAt: ts,
95
+ archivedAt: typeof partial.archivedAt === "string" && partial.archivedAt.trim() ? partial.archivedAt.trim() : void 0,
94
96
  title: partial.title,
95
97
  sourceType: partial.sourceType,
96
98
  sourceRef: partial.sourceRef,
@@ -220,6 +222,11 @@ function updateThread(id, patch) {
220
222
  const current = readThread(id);
221
223
  if (!current) throw new Error(`Thread not found: ${id}`);
222
224
  const next = { ...current, ...patch, id: current.id, updatedAt: nowIso() };
225
+ if (next.status === "archived") {
226
+ next.archivedAt = typeof next.archivedAt === "string" && next.archivedAt.trim() || current.archivedAt || nowIso();
227
+ } else {
228
+ delete next.archivedAt;
229
+ }
223
230
  writeThread(next);
224
231
  return next;
225
232
  }