@sideboard-ai/core 0.1.209 → 0.1.211

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-A2U3K7VK.js} +5 -5
  8. package/dist/{agents-U2NVCYGC.js → agents-GQANI7M5.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-TZCWNRMC.js → chunk-2PE6SZCM.js} +3 -3
  13. package/dist/{chunk-CQZCXRVG.js → chunk-42IULNIY.js} +3 -3
  14. package/dist/{chunk-FUC3XFE2.js → chunk-BTC2D6LS.js} +2 -0
  15. package/dist/{chunk-HBL7ILQA.js → chunk-ERNK7AWM.js} +107 -61
  16. package/dist/{chunk-5LFD3KCJ.js → chunk-G4TANQC3.js} +5 -5
  17. package/dist/{chunk-RPZFNKND.js → chunk-GHKFSBES.js} +10 -1
  18. package/dist/{chunk-MS2P5GXL.js → chunk-IA5IPGZI.js} +4 -4
  19. package/dist/{chunk-KJAHVQL6.js → chunk-IRCAWYTN.js} +4 -4
  20. package/dist/{chunk-OY7THBLG.js → chunk-JJ3ONQ4Q.js} +10 -1
  21. package/dist/{chunk-MZP2C4KE.js → chunk-KZUA4QG2.js} +114 -62
  22. package/dist/{chunk-VJQDUD24.js → chunk-L5CIEBLR.js} +2 -0
  23. package/dist/{chunk-XRIF6M5H.js → chunk-LS6TSOCE.js} +5 -5
  24. package/dist/{chunk-IOOL3T7Q.js → chunk-MN6YUD4O.js} +3 -3
  25. package/dist/{chunk-22A45QOI.js → chunk-NRKDRQM3.js} +2 -2
  26. package/dist/{chunk-QVVJO4GN.js → chunk-REZRGCKV.js} +3 -3
  27. package/dist/{chunk-42VGWRSE.js → chunk-VPQXJYIW.js} +2 -2
  28. package/dist/{chunk-PTOIWKDU.js → chunk-WNVQJZ7P.js} +3 -3
  29. package/dist/{chunk-IIENQFJ6.js → chunk-YVE4PXCJ.js} +2 -2
  30. package/dist/{coordinator-prompt-2YCOE5R4.js → coordinator-prompt-EHRDZ2ZU.js} +4 -4
  31. package/dist/{coordinator-prompt-EO2X2EYW.js → coordinator-prompt-LMTMWCPN.js} +4 -4
  32. package/dist/{global-workspace-JEKMVE42.js → global-workspace-NG2TBUI5.js} +4 -4
  33. package/dist/{global-workspace-H2ANUSGR.js → global-workspace-RHABXQWB.js} +4 -4
  34. package/dist/index.cjs +111 -41
  35. package/dist/index.d.cts +45 -11
  36. package/dist/index.d.ts +45 -11
  37. package/dist/index.js +25 -12
  38. package/dist/mcp/run-stdio.cjs +98 -41
  39. package/dist/mcp/run-stdio.js +11 -11
  40. package/dist/{orchestrator-RUQXDYM7.js → orchestrator-NZO4PVFH.js} +6 -6
  41. package/dist/{orchestrator-N7LLTK5O.js → orchestrator-QMGH4V4K.js} +6 -6
  42. package/dist/{thread-store-55X2JYDT.js → thread-store-4M6WETL6.js} +1 -1
  43. package/dist/{thread-store-CMZWM5NY.js → thread-store-MSMBQ3V4.js} +1 -1
  44. package/dist/{workspaces-SVDORZEI.js → workspaces-FRR6Y4BY.js} +4 -4
  45. package/dist/{workspaces-2YNYLSPV.js → workspaces-VIUUE4RT.js} +4 -4
  46. package/dist/{worktree-5CPGB4D2.js → worktree-3MEG62KB.js} +3 -3
  47. package/dist/{worktree-YQ6XUSR2.js → worktree-GKUOHXXB.js} +3 -3
  48. package/package.json +1 -1
@@ -873,6 +873,7 @@ function normalizeThread(raw) {
873
873
  agentPid: raw.agentPid ?? null,
874
874
  attachments: Array.isArray(raw.attachments) ? raw.attachments : [],
875
875
  pendingTurnAttachments: Array.isArray(raw.pendingTurnAttachments) ? raw.pendingTurnAttachments : [],
876
+ queueAttachments: Array.isArray(raw.queueAttachments) ? raw.queueAttachments : [],
876
877
  prTitle: raw.prTitle ?? null,
877
878
  prState: raw.prState ?? null,
878
879
  prIsDraft: Boolean(raw.prIsDraft),
@@ -883,7 +884,8 @@ function normalizeThread(raw) {
883
884
  userSetTitle: Boolean(raw.userSetTitle),
884
885
  activeRuns: Array.isArray(raw.activeRuns) ? raw.activeRuns : [],
885
886
  quotaResumeAt: raw.quotaResumeAt ?? null,
886
- quotaContinuedFromId: raw.quotaContinuedFromId ?? null
887
+ quotaContinuedFromId: raw.quotaContinuedFromId ?? null,
888
+ archivedAt: typeof raw.archivedAt === "string" && raw.archivedAt.trim() ? raw.archivedAt.trim() : void 0
887
889
  };
888
890
  }
889
891
  function createEmptyThread(partial) {
@@ -916,8 +918,10 @@ function createEmptyThread(partial) {
916
918
  messages: partial.messages ?? [],
917
919
  attachments: partial.attachments ?? [],
918
920
  pendingTurnAttachments: partial.pendingTurnAttachments ?? [],
921
+ queueAttachments: partial.queueAttachments ?? [],
919
922
  createdAt: ts,
920
923
  updatedAt: ts,
924
+ archivedAt: typeof partial.archivedAt === "string" && partial.archivedAt.trim() ? partial.archivedAt.trim() : void 0,
921
925
  title: partial.title,
922
926
  sourceType: partial.sourceType,
923
927
  sourceRef: partial.sourceRef,
@@ -1046,6 +1050,11 @@ function updateThread(id, patch) {
1046
1050
  const current = readThread(id);
1047
1051
  if (!current) throw new Error(`Thread not found: ${id}`);
1048
1052
  const next = { ...current, ...patch, id: current.id, updatedAt: nowIso() };
1053
+ if (next.status === "archived") {
1054
+ next.archivedAt = typeof next.archivedAt === "string" && next.archivedAt.trim() || current.archivedAt || nowIso();
1055
+ } else {
1056
+ delete next.archivedAt;
1057
+ }
1049
1058
  writeThread(next);
1050
1059
  return next;
1051
1060
  }
@@ -3640,6 +3649,8 @@ function clampHistoryMaxDays(value) {
3640
3649
  return Math.min(HISTORY_MAX_DAYS_MAX, Math.floor(value));
3641
3650
  }
3642
3651
  function archivedUpdatedMs(thread) {
3652
+ const stamped = thread.archivedAt ? Date.parse(thread.archivedAt) : NaN;
3653
+ if (Number.isFinite(stamped)) return stamped;
3643
3654
  const updated = Date.parse(thread.updatedAt);
3644
3655
  if (Number.isFinite(updated)) return updated;
3645
3656
  const created = Date.parse(thread.createdAt);
@@ -14603,6 +14614,7 @@ function stripArchivedTranscript(thread) {
14603
14614
  ...thread,
14604
14615
  attachments: [],
14605
14616
  pendingTurnAttachments: [],
14617
+ queueAttachments: [],
14606
14618
  messages: [historyRetentionStubMessage(thread)]
14607
14619
  },
14608
14620
  { touch: false }
@@ -19763,24 +19775,56 @@ var init_expand = __esm({
19763
19775
 
19764
19776
  // src/composer/consume-attachments.ts
19765
19777
  function consumeComposerAttachments(thread) {
19766
- if (thread.attachments.length === 0) {
19767
- return {
19768
- attachments: [],
19769
- pendingTurnAttachments: thread.pendingTurnAttachments ?? []
19770
- };
19771
- }
19772
19778
  return {
19773
19779
  attachments: [],
19774
- pendingTurnAttachments: [
19775
- ...thread.pendingTurnAttachments ?? [],
19776
- ...thread.attachments
19777
- ]
19780
+ consumed: [...thread.attachments]
19778
19781
  };
19779
19782
  }
19780
19783
  function takePendingTurnAttachments(thread) {
19781
19784
  const pending = thread.pendingTurnAttachments ?? [];
19782
- if (pending.length === 0 && thread.attachments.length === 0) return [];
19783
- return [...pending, ...thread.attachments];
19785
+ if (pending.length > 0) return [...pending];
19786
+ return thread.attachments.length > 0 ? [...thread.attachments] : [];
19787
+ }
19788
+ function alignQueueAttachments(queueLength, existing) {
19789
+ const next = (existing ?? []).slice(0, queueLength).map((slot) => [...slot ?? []]);
19790
+ while (next.length < queueLength) next.push([]);
19791
+ return next;
19792
+ }
19793
+ function appendQueuedItem(queue, queueAttachments, prompt, attachments = []) {
19794
+ return {
19795
+ queue: [...queue, prompt],
19796
+ queueAttachments: [...alignQueueAttachments(queue.length, queueAttachments), [...attachments]]
19797
+ };
19798
+ }
19799
+ function prependQueuedItem(queue, queueAttachments, prompt, attachments = []) {
19800
+ return {
19801
+ queue: [prompt, ...queue],
19802
+ queueAttachments: [[...attachments], ...alignQueueAttachments(queue.length, queueAttachments)]
19803
+ };
19804
+ }
19805
+ function removeQueuedItem(queue, queueAttachments, index) {
19806
+ const aligned = alignQueueAttachments(queue.length, queueAttachments);
19807
+ return {
19808
+ queue: queue.filter((_, i) => i !== index),
19809
+ queueAttachments: aligned.filter((_, i) => i !== index)
19810
+ };
19811
+ }
19812
+ function moveQueuedItemToFront(queue, queueAttachments, index) {
19813
+ const aligned = alignQueueAttachments(queue.length, queueAttachments);
19814
+ return {
19815
+ queue: [queue[index], ...queue.filter((_, i) => i !== index)],
19816
+ queueAttachments: [aligned[index] ?? [], ...aligned.filter((_, i) => i !== index)]
19817
+ };
19818
+ }
19819
+ function shiftQueuedItem(queue, queueAttachments) {
19820
+ if (queue.length === 0) return null;
19821
+ const aligned = alignQueueAttachments(queue.length, queueAttachments);
19822
+ return {
19823
+ prompt: queue[0],
19824
+ attachments: aligned[0] ?? [],
19825
+ queue: queue.slice(1),
19826
+ queueAttachments: aligned.slice(1)
19827
+ };
19784
19828
  }
19785
19829
  var init_consume_attachments = __esm({
19786
19830
  "src/composer/consume-attachments.ts"() {
@@ -21465,9 +21509,9 @@ var init_orchestrator = __esm({
21465
21509
  if (!thread || thread.status === "archived") return;
21466
21510
  this.crashContinued.add(threadId);
21467
21511
  const prompt = formatAgentErrorContinuePrompt(opts.detail);
21468
- const queue = [prompt, ...thread.queue];
21469
- updateThread(threadId, { queue });
21470
- this.emit({ type: "queue_changed", threadId, queue });
21512
+ const next = prependQueuedItem(thread.queue, thread.queueAttachments, prompt);
21513
+ updateThread(threadId, next);
21514
+ this.emit({ type: "queue_changed", threadId, queue: next.queue });
21471
21515
  this.haltDrain.delete(threadId);
21472
21516
  }
21473
21517
  /**
@@ -21496,9 +21540,9 @@ var init_orchestrator = __esm({
21496
21540
  }
21497
21541
  if (decision.action === "nudge") this.jobContinueNudged.add(threadId);
21498
21542
  else this.jobContinueCount.set(threadId, (this.jobContinueCount.get(threadId) ?? 0) + 1);
21499
- const queue = [decision.prompt, ...thread.queue];
21500
- updateThread(threadId, { queue });
21501
- this.emit({ type: "queue_changed", threadId, queue });
21543
+ const next = prependQueuedItem(thread.queue, thread.queueAttachments, decision.prompt);
21544
+ updateThread(threadId, next);
21545
+ this.emit({ type: "queue_changed", threadId, queue: next.queue });
21502
21546
  this.haltDrain.delete(threadId);
21503
21547
  }
21504
21548
  getThreads(includeArchived = false) {
@@ -21606,18 +21650,22 @@ var init_orchestrator = __esm({
21606
21650
  throw new Error(`Thread is archived: ${thread.id}`);
21607
21651
  }
21608
21652
  const followUp = resolveSendFollowUp(current, opts?.followUp);
21609
- const queue = [...current.queue, prompt];
21653
+ const consumed = consumeComposerAttachments(current);
21654
+ const queued = appendQueuedItem(
21655
+ current.queue,
21656
+ current.queueAttachments,
21657
+ prompt,
21658
+ consumed.consumed
21659
+ );
21610
21660
  this.crashContinued.delete(thread.id);
21611
21661
  this.jobContinueCount.delete(thread.id);
21612
21662
  this.jobContinueNudged.delete(thread.id);
21613
21663
  this.haltDrain.delete(thread.id);
21614
21664
  const inFlight = this.activeTurns.has(thread.id) || this.startingTurns.has(thread.id) || current.status === "running";
21615
21665
  shouldSteer = followUp === "steer" && (inFlight || current.queue.length > 0);
21616
- const patch = { queue };
21617
- if (current.attachments.length > 0) {
21618
- const consumed = consumeComposerAttachments(current);
21666
+ const patch = queued;
21667
+ if (consumed.consumed.length > 0) {
21619
21668
  patch.attachments = consumed.attachments;
21620
- patch.pendingTurnAttachments = consumed.pendingTurnAttachments;
21621
21669
  }
21622
21670
  if (!inFlight) patch.status = "queued";
21623
21671
  const pid = current.agentPid;
@@ -21625,7 +21673,7 @@ var init_orchestrator = __esm({
21625
21673
  patch.agentPid = null;
21626
21674
  }
21627
21675
  updateThread(thread.id, patch);
21628
- this.emit({ type: "queue_changed", threadId: thread.id, queue });
21676
+ this.emit({ type: "queue_changed", threadId: thread.id, queue: queued.queue });
21629
21677
  if (!inFlight) {
21630
21678
  this.emit({ type: "status_changed", threadId: thread.id, status: "queued" });
21631
21679
  }
@@ -21667,14 +21715,17 @@ var init_orchestrator = __esm({
21667
21715
  return withThreadLock(thread.id, async () => {
21668
21716
  const current = this.requireThread(thread.id);
21669
21717
  if (index < 0 || index >= current.queue.length) return current;
21670
- const queue = current.queue.filter((_, i) => i !== index);
21671
- const stillQueued = queue.length > 0;
21718
+ const removed = removeQueuedItem(current.queue, current.queueAttachments, index);
21719
+ const stillQueued = removed.queue.length > 0;
21672
21720
  const inFlight = this.activeTurns.has(thread.id) || this.startingTurns.has(thread.id);
21673
21721
  updateThread(thread.id, {
21674
- queue,
21722
+ ...removed,
21723
+ // Old sends parked on pendingTurnAttachments; drop that bag when the
21724
+ // follow-up that owned it is gone so a later turn cannot inherit it.
21725
+ ...stillQueued ? {} : { pendingTurnAttachments: [] },
21675
21726
  status: !stillQueued && !inFlight && current.status === "queued" ? "idle" : current.status
21676
21727
  });
21677
- this.emit({ type: "queue_changed", threadId: thread.id, queue });
21728
+ this.emit({ type: "queue_changed", threadId: thread.id, queue: removed.queue });
21678
21729
  const next = this.requireThread(thread.id);
21679
21730
  this.emit({ type: "status_changed", threadId: thread.id, status: next.status });
21680
21731
  return next;
@@ -21690,12 +21741,10 @@ var init_orchestrator = __esm({
21690
21741
  const promoted = await withThreadLock(thread.id, async () => {
21691
21742
  const current2 = this.requireThread(thread.id);
21692
21743
  if (index < 0 || index >= current2.queue.length) return false;
21693
- const item = current2.queue[index];
21694
- const rest = current2.queue.filter((_, i) => i !== index);
21695
- const queue = [item, ...rest];
21744
+ const next = moveQueuedItemToFront(current2.queue, current2.queueAttachments, index);
21696
21745
  this.haltDrain.delete(thread.id);
21697
- updateThread(thread.id, { queue });
21698
- this.emit({ type: "queue_changed", threadId: thread.id, queue });
21746
+ updateThread(thread.id, next);
21747
+ this.emit({ type: "queue_changed", threadId: thread.id, queue: next.queue });
21699
21748
  return true;
21700
21749
  });
21701
21750
  if (!promoted) return this.requireThread(thread.id);
@@ -21750,11 +21799,15 @@ var init_orchestrator = __esm({
21750
21799
  }
21751
21800
  continue;
21752
21801
  }
21753
- const prompt = thread.queue[0];
21754
- const remaining = thread.queue.slice(1);
21755
- updateThread(threadId, { queue: remaining });
21756
- this.emit({ type: "queue_changed", threadId, queue: remaining });
21757
- await this.runTurn(threadId, prompt);
21802
+ const shifted = shiftQueuedItem(thread.queue, thread.queueAttachments);
21803
+ if (!shifted) break;
21804
+ updateThread(threadId, {
21805
+ queue: shifted.queue,
21806
+ queueAttachments: shifted.queueAttachments,
21807
+ ...shifted.attachments.length > 0 ? { pendingTurnAttachments: shifted.attachments } : {}
21808
+ });
21809
+ this.emit({ type: "queue_changed", threadId, queue: shifted.queue });
21810
+ await this.runTurn(threadId, shifted.prompt);
21758
21811
  }
21759
21812
  } finally {
21760
21813
  this.draining.delete(threadId);
@@ -21799,6 +21852,7 @@ var init_orchestrator = __esm({
21799
21852
  thread = this.requireThread(threadId);
21800
21853
  }
21801
21854
  const autoContinue = isJobContinuePrompt(prompt) || prompt.trim().startsWith("The previous agent process ended before it finished.");
21855
+ const parkedSnapshot = thread.pendingTurnAttachments ?? [];
21802
21856
  const parked = takePendingTurnAttachments(thread);
21803
21857
  const sentAttachments = !autoContinue && parked.length > 0 ? parked : void 0;
21804
21858
  appendMessage(threadId, {
@@ -21868,7 +21922,10 @@ var init_orchestrator = __esm({
21868
21922
  expandedPrompt
21869
21923
  ].filter(Boolean).join("\n\n");
21870
21924
  if (!autoContinue && sentAttachments) {
21871
- updateThread(threadId, { attachments: [], pendingTurnAttachments: [] });
21925
+ updateThread(
21926
+ threadId,
21927
+ parkedSnapshot.length > 0 ? { pendingTurnAttachments: [] } : { attachments: [], pendingTurnAttachments: [] }
21928
+ );
21872
21929
  }
21873
21930
  const adapter = getAdapter(thread.agent);
21874
21931
  const resolved = await adapter.resolveSessionId(thread.worktreePath, thread.sessionId);
@@ -22284,7 +22341,7 @@ var init_orchestrator = __esm({
22284
22341
  }
22285
22342
  if (clearQueue && thread.queue.length > 0) {
22286
22343
  this.haltDrain.delete(thread.id);
22287
- updateThread(thread.id, { queue: [] });
22344
+ updateThread(thread.id, { queue: [], queueAttachments: [] });
22288
22345
  this.emit({ type: "queue_changed", threadId: thread.id, queue: [] });
22289
22346
  } else if (!clearQueue && !continueQueue) {
22290
22347
  this.haltDrain.add(thread.id);
@@ -11,7 +11,7 @@ import {
11
11
  searchAbleTimeTasks,
12
12
  toAbleTimeIssueInfo,
13
13
  updateAbleTimeTask
14
- } from "../chunk-CQZCXRVG.js";
14
+ } from "../chunk-42IULNIY.js";
15
15
  import {
16
16
  AGENT_GIT_ACTIONS,
17
17
  BOARD_COLUMN_DEFS,
@@ -50,7 +50,7 @@ import {
50
50
  syncBoardPins,
51
51
  updateSchedule,
52
52
  waitForDetachedJob
53
- } from "../chunk-HBL7ILQA.js";
53
+ } from "../chunk-ERNK7AWM.js";
54
54
  import "../chunk-JFOPOMK7.js";
55
55
  import "../chunk-YWI3IBP2.js";
56
56
  import {
@@ -61,16 +61,16 @@ import {
61
61
  materializeSystemCaBundle,
62
62
  sideboardMcpProfile,
63
63
  trustSystemCertificates
64
- } from "../chunk-MS2P5GXL.js";
64
+ } from "../chunk-IA5IPGZI.js";
65
65
  import {
66
66
  GLOBAL_WORKSPACE_ID,
67
67
  isCloudCoordinatorThread,
68
68
  listWorkspaces
69
- } from "../chunk-PTOIWKDU.js";
69
+ } from "../chunk-WNVQJZ7P.js";
70
70
  import "../chunk-3OHR73VK.js";
71
71
  import "../chunk-Y4MIXGPA.js";
72
- import "../chunk-IIENQFJ6.js";
73
- import "../chunk-XRIF6M5H.js";
72
+ import "../chunk-YVE4PXCJ.js";
73
+ import "../chunk-LS6TSOCE.js";
74
74
  import {
75
75
  httpFetch
76
76
  } from "../chunk-VKQGAWHY.js";
@@ -84,9 +84,9 @@ import {
84
84
  resolveListPrsOptions,
85
85
  resolveRepoRoot,
86
86
  warmGithubAgentAuth
87
- } from "../chunk-42VGWRSE.js";
87
+ } from "../chunk-VPQXJYIW.js";
88
88
  import "../chunk-D6JWYJ4P.js";
89
- import "../chunk-RPZFNKND.js";
89
+ import "../chunk-GHKFSBES.js";
90
90
  import "../chunk-X5B3OS5I.js";
91
91
  import "../chunk-SYFVUF2C.js";
92
92
  import {
@@ -106,7 +106,7 @@ import {
106
106
  resolveViewerProfileForRepo,
107
107
  saveLinearOAuth,
108
108
  writeViewerContext
109
- } from "../chunk-FUC3XFE2.js";
109
+ } from "../chunk-BTC2D6LS.js";
110
110
  import "../chunk-NSTQ6QKD.js";
111
111
  import "../chunk-KGZBYWZ3.js";
112
112
  import {
@@ -3881,7 +3881,7 @@ async function startMcpServer() {
3881
3881
  );
3882
3882
  }
3883
3883
  try {
3884
- const { maxConcurrentAgents } = await import("../app-settings-6SZLZNA7.js");
3884
+ const { maxConcurrentAgents } = await import("../app-settings-XCRNCEEE.js");
3885
3885
  orch.setMaxConcurrent(maxConcurrentAgents());
3886
3886
  } catch {
3887
3887
  }
@@ -4196,7 +4196,7 @@ async function startMcpServer() {
4196
4196
  registerConnectedIssueVendorTools(server);
4197
4197
  registerScheduleTools(server);
4198
4198
  const { getCaffeinateHold, setCaffeinateHold } = await import("../caffeinate-hold-OK4JJ5PP.js");
4199
- const { resolveNewThreadOptions, resolveThreadDefaults } = await import("../app-settings-6SZLZNA7.js");
4199
+ const { resolveNewThreadOptions, resolveThreadDefaults } = await import("../app-settings-XCRNCEEE.js");
4200
4200
  const accountDefaults = resolveThreadDefaults();
4201
4201
  const accountDefaultsHint = `Account defaults: agent=${accountDefaults.agent}, model=${accountDefaults.model?.trim() || "Auto"}, effort=${accountDefaults.effort}`;
4202
4202
  server.tool(
@@ -9,21 +9,21 @@ import {
9
9
  resolveSendFollowUp,
10
10
  startOrchestration,
11
11
  waitForPidExit
12
- } from "./chunk-HBL7ILQA.js";
12
+ } from "./chunk-ERNK7AWM.js";
13
13
  import "./chunk-JFOPOMK7.js";
14
14
  import "./chunk-YWI3IBP2.js";
15
- import "./chunk-MS2P5GXL.js";
16
- import "./chunk-PTOIWKDU.js";
15
+ import "./chunk-IA5IPGZI.js";
16
+ import "./chunk-WNVQJZ7P.js";
17
17
  import "./chunk-3OHR73VK.js";
18
18
  import "./chunk-Y4MIXGPA.js";
19
19
  import "./chunk-VKQGAWHY.js";
20
- import "./chunk-42VGWRSE.js";
20
+ import "./chunk-VPQXJYIW.js";
21
21
  import "./chunk-D6JWYJ4P.js";
22
- import "./chunk-RPZFNKND.js";
22
+ import "./chunk-GHKFSBES.js";
23
23
  import "./chunk-X5B3OS5I.js";
24
24
  import "./chunk-SYFVUF2C.js";
25
25
  import "./chunk-FNQNJOHY.js";
26
- import "./chunk-FUC3XFE2.js";
26
+ import "./chunk-BTC2D6LS.js";
27
27
  import "./chunk-NSTQ6QKD.js";
28
28
  import "./chunk-KGZBYWZ3.js";
29
29
  import "./chunk-EQNRWDLN.js";
@@ -7,11 +7,11 @@ import {
7
7
  resolveSendFollowUp,
8
8
  startOrchestration,
9
9
  waitForPidExit
10
- } from "./chunk-MZP2C4KE.js";
10
+ } from "./chunk-KZUA4QG2.js";
11
11
  import "./chunk-DJU54RYW.js";
12
- import "./chunk-KJAHVQL6.js";
13
- import "./chunk-TZCWNRMC.js";
14
- import "./chunk-22A45QOI.js";
12
+ import "./chunk-IRCAWYTN.js";
13
+ import "./chunk-2PE6SZCM.js";
14
+ import "./chunk-NRKDRQM3.js";
15
15
  import "./chunk-6K64FJDD.js";
16
16
  import "./chunk-QQKDGPUI.js";
17
17
  import "./chunk-SALM35KD.js";
@@ -19,12 +19,12 @@ import "./chunk-AN3THU7F.js";
19
19
  import "./chunk-N7WZ6NIN.js";
20
20
  import "./chunk-AXQ4ZWHK.js";
21
21
  import "./chunk-JZHRZ3DR.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-4TYXWPAJ.js";
26
26
  import "./chunk-JT7R45JB.js";
27
- import "./chunk-OY7THBLG.js";
27
+ import "./chunk-JJ3ONQ4Q.js";
28
28
  import "./chunk-7J72QJOM.js";
29
29
  import "./chunk-77WWLBCI.js";
30
30
  import "./chunk-WFUDY6PC.js";
@@ -14,7 +14,7 @@ import {
14
14
  updateThread,
15
15
  withThreadLock,
16
16
  writeThread
17
- } from "./chunk-OY7THBLG.js";
17
+ } from "./chunk-JJ3ONQ4Q.js";
18
18
  import "./chunk-7J72QJOM.js";
19
19
  import "./chunk-77WWLBCI.js";
20
20
  import "./chunk-WFUDY6PC.js";
@@ -16,7 +16,7 @@ import {
16
16
  updateThread,
17
17
  withThreadLock,
18
18
  writeThread
19
- } from "./chunk-RPZFNKND.js";
19
+ } from "./chunk-GHKFSBES.js";
20
20
  import "./chunk-X5B3OS5I.js";
21
21
  import "./chunk-KGZBYWZ3.js";
22
22
  import "./chunk-EQNRWDLN.js";
@@ -4,15 +4,15 @@ import {
4
4
  listWorkspaces,
5
5
  removeWorkspace,
6
6
  syncWorkspacesFromThreads
7
- } from "./chunk-TZCWNRMC.js";
8
- import "./chunk-22A45QOI.js";
7
+ } from "./chunk-2PE6SZCM.js";
8
+ import "./chunk-NRKDRQM3.js";
9
9
  import "./chunk-6K64FJDD.js";
10
10
  import "./chunk-QQKDGPUI.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";
15
- import "./chunk-OY7THBLG.js";
15
+ import "./chunk-JJ3ONQ4Q.js";
16
16
  import "./chunk-7J72QJOM.js";
17
17
  import "./chunk-77WWLBCI.js";
18
18
  import "./chunk-WFUDY6PC.js";
@@ -6,14 +6,14 @@ import {
6
6
  listWorkspaces,
7
7
  removeWorkspace,
8
8
  syncWorkspacesFromThreads
9
- } from "./chunk-PTOIWKDU.js";
10
- import "./chunk-42VGWRSE.js";
9
+ } from "./chunk-WNVQJZ7P.js";
10
+ import "./chunk-VPQXJYIW.js";
11
11
  import "./chunk-D6JWYJ4P.js";
12
- import "./chunk-RPZFNKND.js";
12
+ import "./chunk-GHKFSBES.js";
13
13
  import "./chunk-X5B3OS5I.js";
14
14
  import "./chunk-SYFVUF2C.js";
15
15
  import "./chunk-FNQNJOHY.js";
16
- import "./chunk-FUC3XFE2.js";
16
+ import "./chunk-BTC2D6LS.js";
17
17
  import "./chunk-NSTQ6QKD.js";
18
18
  import "./chunk-KGZBYWZ3.js";
19
19
  import "./chunk-EQNRWDLN.js";
@@ -60,13 +60,13 @@ import {
60
60
  worktreeDisplayLabelForGroup,
61
61
  worktreeNameFromPath,
62
62
  worktreeSlugForTicket
63
- } from "./chunk-42VGWRSE.js";
63
+ } from "./chunk-VPQXJYIW.js";
64
64
  import "./chunk-D6JWYJ4P.js";
65
- import "./chunk-RPZFNKND.js";
65
+ import "./chunk-GHKFSBES.js";
66
66
  import "./chunk-X5B3OS5I.js";
67
67
  import "./chunk-SYFVUF2C.js";
68
68
  import "./chunk-FNQNJOHY.js";
69
- import "./chunk-FUC3XFE2.js";
69
+ import "./chunk-BTC2D6LS.js";
70
70
  import "./chunk-NSTQ6QKD.js";
71
71
  import "./chunk-KGZBYWZ3.js";
72
72
  import "./chunk-EQNRWDLN.js";
@@ -58,14 +58,14 @@ import {
58
58
  worktreeDisplayLabelForGroup,
59
59
  worktreeNameFromPath,
60
60
  worktreeSlugForTicket
61
- } from "./chunk-22A45QOI.js";
61
+ } from "./chunk-NRKDRQM3.js";
62
62
  import "./chunk-6K64FJDD.js";
63
63
  import "./chunk-QQKDGPUI.js";
64
- import "./chunk-VJQDUD24.js";
64
+ import "./chunk-L5CIEBLR.js";
65
65
  import "./chunk-4TR3HZFT.js";
66
66
  import "./chunk-WDRMZKVB.js";
67
67
  import "./chunk-JT7R45JB.js";
68
- import "./chunk-OY7THBLG.js";
68
+ import "./chunk-JJ3ONQ4Q.js";
69
69
  import "./chunk-7J72QJOM.js";
70
70
  import "./chunk-77WWLBCI.js";
71
71
  import "./chunk-WFUDY6PC.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sideboard-ai/core",
3
- "version": "0.1.209",
3
+ "version": "0.1.211",
4
4
  "description": "Sideboard core — orchestration, agents, git worktrees, MCP server",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",