@sideboard-ai/core 0.1.60 → 0.1.62

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/{agents-EADRAAPG.js → agents-KF3J3C53.js} +2 -2
  2. package/dist/{agents-B2723EOF.js → agents-QLSFIQAO.js} +2 -2
  3. package/dist/{app-settings-TBHTJWLQ.js → app-settings-HK4KAM4R.js} +3 -1
  4. package/dist/{app-settings-YBNZ4XSR.js → app-settings-LTSFG7QJ.js} +3 -1
  5. package/dist/{chunk-XWPKLRB3.js → chunk-27MAWNKY.js} +2 -2
  6. package/dist/{chunk-CHGOMFTA.js → chunk-2FEA4LDA.js} +4 -4
  7. package/dist/{chunk-MX7UH5AT.js → chunk-2MCNURQV.js} +2 -2
  8. package/dist/{chunk-MFGGIRUA.js → chunk-3KKNTHUC.js} +1 -1
  9. package/dist/{chunk-2P2UK7E7.js → chunk-46KMKHSD.js} +2 -2
  10. package/dist/{chunk-75QR74KM.js → chunk-6CUJQKTJ.js} +10 -0
  11. package/dist/{chunk-HLEX5AQ6.js → chunk-7FD7COKE.js} +4 -0
  12. package/dist/{chunk-QJBC4BRK.js → chunk-A6FOKNOU.js} +2 -2
  13. package/dist/{chunk-FGNBTFRD.js → chunk-DDN3UF4R.js} +10 -0
  14. package/dist/{chunk-MLAST5BB.js → chunk-DXTGDXO2.js} +4 -4
  15. package/dist/{chunk-TSRXOSVD.js → chunk-FWJYLBO6.js} +4 -0
  16. package/dist/{chunk-NTYRBRE7.js → chunk-NVU7EC2E.js} +2 -2
  17. package/dist/{chunk-P7EQUFB6.js → chunk-UGXSSBFJ.js} +1 -1
  18. package/dist/{chunk-ZXDOI6IH.js → chunk-ZF5YJCXO.js} +2 -2
  19. package/dist/{coordinator-prompt-4P23VVFC.js → coordinator-prompt-LKG3SHMI.js} +4 -4
  20. package/dist/{coordinator-prompt-LNWHZ64D.js → coordinator-prompt-N2R6FGZK.js} +4 -4
  21. package/dist/{global-workspace-TMMAVRVW.js → global-workspace-LALWQWRJ.js} +5 -5
  22. package/dist/{global-workspace-BHT4XUAA.js → global-workspace-YOAUQCMA.js} +5 -5
  23. package/dist/index.cjs +124 -18
  24. package/dist/index.d.cts +26 -2
  25. package/dist/index.d.ts +26 -2
  26. package/dist/index.js +131 -39
  27. package/dist/mcp/run-stdio.cjs +122 -18
  28. package/dist/mcp/run-stdio.js +127 -37
  29. package/dist/{thread-store-GHOADGL2.js → thread-store-BUBR24YA.js} +1 -1
  30. package/dist/{thread-store-UJIGMI5J.js → thread-store-XTPFCJAI.js} +1 -1
  31. package/dist/{workspaces-GFPGDGCS.js → workspaces-E75POJXP.js} +6 -6
  32. package/dist/{workspaces-3GO3EDQG.js → workspaces-VCAIHVIE.js} +6 -6
  33. package/dist/{worktree-3L2G6PCM.js → worktree-LZEGVQSN.js} +2 -2
  34. package/dist/{worktree-GBLHEFHR.js → worktree-MV4WRW6G.js} +2 -2
  35. package/package.json +1 -1
@@ -15,14 +15,14 @@ import {
15
15
  pushTurnStderr,
16
16
  resolveQuotaFallbackAgent,
17
17
  summarizeTurnStderr
18
- } from "../chunk-MX7UH5AT.js";
18
+ } from "../chunk-2MCNURQV.js";
19
19
  import "../chunk-JB2H7E7V.js";
20
20
  import {
21
21
  addWorkspace,
22
22
  ensureWorkspace,
23
23
  removeWorkspace,
24
24
  syncWorkspacesFromThreads
25
- } from "../chunk-QJBC4BRK.js";
25
+ } from "../chunk-A6FOKNOU.js";
26
26
  import {
27
27
  extractPresentedPlan,
28
28
  readPlanFile,
@@ -36,7 +36,7 @@ import {
36
36
  isGlobalThread,
37
37
  isOrchestratorThread,
38
38
  orchestratorSessionPoisonedByBuiltins
39
- } from "../chunk-CHGOMFTA.js";
39
+ } from "../chunk-2FEA4LDA.js";
40
40
  import {
41
41
  assertOrchestratorCapableAgent
42
42
  } from "../chunk-S2LL5HA4.js";
@@ -45,7 +45,7 @@ import {
45
45
  coordinatorTurnReminder,
46
46
  enrichWorkspacesWithGithub,
47
47
  ensureGlobalCoordinatorCwd
48
- } from "../chunk-NTYRBRE7.js";
48
+ } from "../chunk-NVU7EC2E.js";
49
49
  import {
50
50
  addPrStackLayer,
51
51
  allocateTeamName,
@@ -82,7 +82,7 @@ import {
82
82
  takenSlugsFromThread,
83
83
  threadDisplayLabel,
84
84
  worktreeNameFromPath
85
- } from "../chunk-MFGGIRUA.js";
85
+ } from "../chunk-3KKNTHUC.js";
86
86
  import {
87
87
  ATTACHMENTS_DIR,
88
88
  LEGACY_ATTACHMENTS_DIR,
@@ -99,7 +99,7 @@ import {
99
99
  updateThread,
100
100
  withThreadLock,
101
101
  writeThread
102
- } from "../chunk-HLEX5AQ6.js";
102
+ } from "../chunk-7FD7COKE.js";
103
103
  import {
104
104
  ensureAgentPath,
105
105
  gh,
@@ -116,7 +116,7 @@ import {
116
116
  resolveEffectiveIssueSource,
117
117
  resolveNewThreadOptions,
118
118
  updateAdvancedSettings
119
- } from "../chunk-FGNBTFRD.js";
119
+ } from "../chunk-DDN3UF4R.js";
120
120
  import "../chunk-KGZBYWZ3.js";
121
121
  import {
122
122
  loadRepoSettings,
@@ -391,9 +391,9 @@ async function spawnAgentTurn(thread, input, onEvent) {
391
391
  `Cannot spawn ${thread.agent}: thread ${thread.id} has no worktreePath`
392
392
  );
393
393
  }
394
- const { isGlobalThread: isGlobalThread2 } = await import("../global-workspace-BHT4XUAA.js");
394
+ const { isGlobalThread: isGlobalThread2 } = await import("../global-workspace-YOAUQCMA.js");
395
395
  if (isGlobalThread2(thread)) {
396
- const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("../coordinator-prompt-4P23VVFC.js");
396
+ const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("../coordinator-prompt-LKG3SHMI.js");
397
397
  ensureGlobalCoordinatorCwd2(
398
398
  isOrchestratorThread(thread) ? { orchestratorThreadId: thread.id } : void 0
399
399
  );
@@ -495,6 +495,20 @@ async function spawnAgentTurn(thread, input, onEvent) {
495
495
  };
496
496
  }
497
497
 
498
+ // src/git/pr-merge-archive.ts
499
+ function normalizePrState(state) {
500
+ return (state ?? "").trim().toUpperCase();
501
+ }
502
+ function shouldAutoArchiveOnPrMerge(opts) {
503
+ if (!opts.autoArchiveEnabled) return false;
504
+ if (opts.isGlobal) return false;
505
+ if (opts.skipAutoArchiveOnMerge) return false;
506
+ if (opts.threadStatus === "archived") return false;
507
+ const next = normalizePrState(opts.nextPrState);
508
+ if (next !== "MERGED") return false;
509
+ return normalizePrState(opts.previousPrState) !== "MERGED";
510
+ }
511
+
498
512
  // src/hook/conductor.ts
499
513
  import {
500
514
  copyFileSync,
@@ -1194,7 +1208,7 @@ async function createThread(input, _onSetupLine) {
1194
1208
  return readThread(thread.id) ?? thread;
1195
1209
  }
1196
1210
  async function listLinearIssues(agent, repoPath) {
1197
- const { getAdapter: getAdapter2 } = await import("../agents-EADRAAPG.js");
1211
+ const { getAdapter: getAdapter2 } = await import("../agents-KF3J3C53.js");
1198
1212
  await requireAgent(agent, { requireLinear: true });
1199
1213
  const adapter = getAdapter2(agent);
1200
1214
  if (!adapter.listLinearIssues) {
@@ -1512,6 +1526,8 @@ function worktreeBindingFrom(from) {
1512
1526
  parentThreadId: from.parentThreadId,
1513
1527
  prUrl: from.prUrl,
1514
1528
  prTitle: from.prTitle,
1529
+ prState: from.prState,
1530
+ skipAutoArchiveOnMerge: from.skipAutoArchiveOnMerge,
1515
1531
  stackId: from.stackId,
1516
1532
  stackLayer: from.stackLayer
1517
1533
  };
@@ -2056,7 +2072,7 @@ async function adoptThread(input) {
2056
2072
  messages: input.messages ?? []
2057
2073
  });
2058
2074
  writeThread(thread);
2059
- const { ensureWorkspace: ensureWorkspace2 } = await import("../workspaces-GFPGDGCS.js");
2075
+ const { ensureWorkspace: ensureWorkspace2 } = await import("../workspaces-E75POJXP.js");
2060
2076
  await ensureWorkspace2(repoPath);
2061
2077
  return thread;
2062
2078
  }
@@ -3944,7 +3960,7 @@ var Orchestrator = class {
3944
3960
  orphans: orphans.map((o) => ({ path: o.path, repoPath: o.repoPath }))
3945
3961
  });
3946
3962
  }
3947
- const { autoCleanupOrphansEnabled } = await import("../app-settings-YBNZ4XSR.js");
3963
+ const { autoCleanupOrphansEnabled } = await import("../app-settings-LTSFG7QJ.js");
3948
3964
  if (autoCleanupOrphansEnabled() && shouldRunWorktreeCleanup() && orphans.length > 0) {
3949
3965
  await cleanupOrphanWorktrees({ repoPaths });
3950
3966
  }
@@ -4101,7 +4117,7 @@ var Orchestrator = class {
4101
4117
  }
4102
4118
  async finishCreateThread(threadId, prompt) {
4103
4119
  await this.runSetupAfterCreate(threadId);
4104
- const { autoRunAfterSetupEnabled } = await import("../app-settings-YBNZ4XSR.js");
4120
+ const { autoRunAfterSetupEnabled } = await import("../app-settings-LTSFG7QJ.js");
4105
4121
  if (autoRunAfterSetupEnabled()) {
4106
4122
  try {
4107
4123
  await this.startDev(threadId);
@@ -4372,7 +4388,7 @@ var Orchestrator = class {
4372
4388
  });
4373
4389
  const artifactDirective = isBrightsy ? null : formatArtifactDirective();
4374
4390
  const settings = loadWorkspaceSettings(fresh.worktreePath, fresh.repoPath);
4375
- const { autoRenameBranchEnabled } = await import("../app-settings-YBNZ4XSR.js");
4391
+ const { autoRenameBranchEnabled } = await import("../app-settings-LTSFG7QJ.js");
4376
4392
  const renameBranchDirective = !isBrightsy && !isOrchestration && autoRenameBranchEnabled() ? formatRenameBranchDirective(fresh, {
4377
4393
  customPrompt: settings?.prompts?.renameBranch
4378
4394
  }) : null;
@@ -5008,10 +5024,19 @@ var Orchestrator = class {
5008
5024
  this.assertNotGlobal(thread, "Merge PR");
5009
5025
  if (!selector) throw new Error("No pull request linked to this thread");
5010
5026
  const result = await mergePr(cwd, selector);
5011
- if (result.url && result.url !== thread.prUrl) {
5012
- updateThread(thread.id, { prUrl: result.url });
5013
- }
5014
- return result;
5027
+ const state = normalizePrState(result.state) || "MERGED";
5028
+ const metaLike = {
5029
+ number: 0,
5030
+ title: thread.prTitle ?? thread.title,
5031
+ url: result.url || thread.prUrl || "",
5032
+ state,
5033
+ isDraft: false,
5034
+ reviewDecision: null,
5035
+ baseRefName: "",
5036
+ headRefName: ""
5037
+ };
5038
+ await this.persistPrMetaAndMaybeArchive(thread, metaLike);
5039
+ return { url: metaLike.url, state };
5015
5040
  }
5016
5041
  /** Resolve PR selector and optionally persist `prUrl` when found. */
5017
5042
  async withPrSelector(threadRef) {
@@ -5033,19 +5058,55 @@ var Orchestrator = class {
5033
5058
  if (!selector) return null;
5034
5059
  const meta = await getPrMeta(cwd, selector);
5035
5060
  if (meta) {
5036
- const patch = {};
5037
- if (meta.url && meta.url !== thread.prUrl) patch.prUrl = meta.url;
5038
- if (meta.title && meta.title !== thread.prTitle) patch.prTitle = meta.title;
5039
- if (Object.keys(patch).length > 0) {
5040
- updateThread(thread.id, patch);
5041
- const latest = this.requireThread(thread.id);
5042
- if (!latest.userSetTitle && meta.title && latest.title !== meta.title) {
5043
- updateThread(thread.id, { title: meta.title });
5044
- }
5045
- }
5061
+ await this.persistPrMetaAndMaybeArchive(thread, meta);
5046
5062
  }
5047
5063
  return meta;
5048
5064
  }
5065
+ /**
5066
+ * Persist PR URL/title/state and Conductor-style auto-archive when the PR
5067
+ * first becomes MERGED.
5068
+ */
5069
+ async persistPrMetaAndMaybeArchive(thread, meta) {
5070
+ const prevState = normalizePrState(thread.prState);
5071
+ const nextState = normalizePrState(meta.state);
5072
+ const patch = {};
5073
+ if (meta.url && meta.url !== thread.prUrl) patch.prUrl = meta.url;
5074
+ if (meta.title && meta.title !== thread.prTitle) patch.prTitle = meta.title;
5075
+ if (nextState && nextState !== prevState) patch.prState = nextState;
5076
+ if (thread.skipAutoArchiveOnMerge && nextState && nextState !== "MERGED" && nextState !== "CLOSED") {
5077
+ patch.skipAutoArchiveOnMerge = false;
5078
+ }
5079
+ if (Object.keys(patch).length > 0) {
5080
+ updateThread(thread.id, patch);
5081
+ const latest2 = this.requireThread(thread.id);
5082
+ if (!latest2.userSetTitle && meta.title && latest2.title !== meta.title) {
5083
+ updateThread(thread.id, { title: meta.title });
5084
+ }
5085
+ }
5086
+ const { autoArchiveOnMergeEnabled } = await import("../app-settings-LTSFG7QJ.js");
5087
+ const latest = this.requireThread(thread.id);
5088
+ if (!shouldAutoArchiveOnPrMerge({
5089
+ previousPrState: prevState || null,
5090
+ nextPrState: nextState,
5091
+ threadStatus: latest.status,
5092
+ skipAutoArchiveOnMerge: latest.skipAutoArchiveOnMerge,
5093
+ autoArchiveEnabled: autoArchiveOnMergeEnabled(),
5094
+ isGlobal: isGlobalThread(latest)
5095
+ })) {
5096
+ return;
5097
+ }
5098
+ const siblings = threadsSharingWorktree(latest.worktreePath);
5099
+ for (const t of siblings) {
5100
+ const sibPatch = { prState: "MERGED" };
5101
+ if (meta.url && meta.url !== t.prUrl) sibPatch.prUrl = meta.url;
5102
+ if (meta.title && meta.title !== t.prTitle) sibPatch.prTitle = meta.title;
5103
+ if (Object.keys(sibPatch).length > 0) updateThread(t.id, sibPatch);
5104
+ }
5105
+ for (const t of siblings) {
5106
+ if (this.requireThread(t.id).status === "archived") continue;
5107
+ await this.archive(t.id);
5108
+ }
5109
+ }
5049
5110
  async getPrStack(threadRef) {
5050
5111
  const thread = this.requireThread(threadRef);
5051
5112
  if (!thread.worktreePath?.trim()) return null;
@@ -5223,7 +5284,9 @@ var Orchestrator = class {
5223
5284
  const thread = this.requireThread(threadRef);
5224
5285
  this.stop(thread.id);
5225
5286
  if (isGlobalThread(thread)) {
5226
- return setStatus(thread.id, "archived");
5287
+ const archived2 = setStatus(thread.id, "archived");
5288
+ this.emit({ type: "status_changed", threadId: archived2.id, status: "archived" });
5289
+ return archived2;
5227
5290
  }
5228
5291
  const siblings = threadsSharingWorktree(thread.worktreePath).filter((t) => t.id !== thread.id);
5229
5292
  if (siblings.length === 0) {
@@ -5241,9 +5304,10 @@ var Orchestrator = class {
5241
5304
  await removeWorktree(thread.repoPath, thread.worktreePath);
5242
5305
  }
5243
5306
  const archived = setStatus(thread.id, "archived");
5307
+ this.emit({ type: "status_changed", threadId: archived.id, status: "archived" });
5244
5308
  if (thread.repoPath && !isGlobalRepoPath(thread.repoPath)) {
5245
5309
  try {
5246
- const { ensureWorkspace: ensureWorkspace2 } = await import("../workspaces-GFPGDGCS.js");
5310
+ const { ensureWorkspace: ensureWorkspace2 } = await import("../workspaces-E75POJXP.js");
5247
5311
  await ensureWorkspace2(thread.repoPath);
5248
5312
  } catch {
5249
5313
  }
@@ -5264,7 +5328,7 @@ var Orchestrator = class {
5264
5328
  await runArchiveScript(thread.repoPath, thread.worktreePath);
5265
5329
  } catch {
5266
5330
  }
5267
- const { deleteBranchOnPurgeEnabled } = await import("../app-settings-YBNZ4XSR.js");
5331
+ const { deleteBranchOnPurgeEnabled } = await import("../app-settings-LTSFG7QJ.js");
5268
5332
  const deleteBranch = opts?.deleteBranch ?? deleteBranchOnPurgeEnabled();
5269
5333
  await removeWorktree(thread.repoPath, thread.worktreePath, {
5270
5334
  deleteBranch: deleteBranch ? thread.branchName : void 0
@@ -5280,10 +5344,12 @@ var Orchestrator = class {
5280
5344
  if (isGlobalThread(thread)) {
5281
5345
  const { globalAgentCwd } = await import("../paths-2OFB7UJG.js");
5282
5346
  updateThread(thread.id, { worktreePath: globalAgentCwd() });
5283
- return setStatus(thread.id, "idle");
5347
+ const restored2 = setStatus(thread.id, "idle");
5348
+ this.emit({ type: "status_changed", threadId: restored2.id, status: restored2.status });
5349
+ return restored2;
5284
5350
  }
5285
5351
  if (!existsSync13(thread.worktreePath)) {
5286
- const { createThreadWorktree: createThreadWorktree2 } = await import("../worktree-3L2G6PCM.js");
5352
+ const { createThreadWorktree: createThreadWorktree2 } = await import("../worktree-LZEGVQSN.js");
5287
5353
  const { execa: execa6 } = await import("execa");
5288
5354
  const slug = thread.worktreePath.split("/").pop();
5289
5355
  const dest = thread.worktreePath;
@@ -5293,7 +5359,31 @@ var Orchestrator = class {
5293
5359
  void createThreadWorktree2;
5294
5360
  void slug;
5295
5361
  }
5296
- return setStatus(thread.id, "idle");
5362
+ const restorePatch = {};
5363
+ let alreadyMerged = normalizePrState(thread.prState) === "MERGED";
5364
+ if (!alreadyMerged && thread.prUrl?.trim() && thread.worktreePath?.trim()) {
5365
+ try {
5366
+ const selector = resolvePrSelector(thread);
5367
+ if (selector) {
5368
+ const meta = await getPrMeta(thread.worktreePath, selector);
5369
+ if (meta) {
5370
+ const state = normalizePrState(meta.state);
5371
+ if (meta.url && meta.url !== thread.prUrl) restorePatch.prUrl = meta.url;
5372
+ if (meta.title && meta.title !== thread.prTitle) restorePatch.prTitle = meta.title;
5373
+ if (state) restorePatch.prState = state;
5374
+ if (state === "MERGED") alreadyMerged = true;
5375
+ }
5376
+ }
5377
+ } catch {
5378
+ }
5379
+ }
5380
+ if (alreadyMerged) restorePatch.skipAutoArchiveOnMerge = true;
5381
+ if (Object.keys(restorePatch).length > 0) {
5382
+ updateThread(thread.id, restorePatch);
5383
+ }
5384
+ const restored = setStatus(thread.id, "idle");
5385
+ this.emit({ type: "status_changed", threadId: restored.id, status: restored.status });
5386
+ return restored;
5297
5387
  }
5298
5388
  async attachCommand(threadRef) {
5299
5389
  const thread = this.requireThread(threadRef);
@@ -5475,7 +5565,7 @@ function withTimeout(promise, ms, label) {
5475
5565
  async function startMcpServer() {
5476
5566
  const orch = getOrchestrator();
5477
5567
  try {
5478
- const { maxConcurrentAgents } = await import("../app-settings-YBNZ4XSR.js");
5568
+ const { maxConcurrentAgents } = await import("../app-settings-LTSFG7QJ.js");
5479
5569
  orch.setMaxConcurrent(maxConcurrentAgents());
5480
5570
  } catch {
5481
5571
  }
@@ -5686,7 +5776,7 @@ async function startMcpServer() {
5686
5776
  return { content: [{ type: "text", text: JSON.stringify(payload) }] };
5687
5777
  }
5688
5778
  );
5689
- const { resolveNewThreadOptions: resolveNewThreadOptions2, resolveThreadDefaults } = await import("../app-settings-YBNZ4XSR.js");
5779
+ const { resolveNewThreadOptions: resolveNewThreadOptions2, resolveThreadDefaults } = await import("../app-settings-LTSFG7QJ.js");
5690
5780
  const accountDefaults = resolveThreadDefaults();
5691
5781
  const accountDefaultsHint = `Account defaults: agent=${accountDefaults.agent}, model=${accountDefaults.model?.trim() || "Auto"}, effort=${accountDefaults.effort}`;
5692
5782
  server.tool(
@@ -5725,7 +5815,7 @@ async function startMcpServer() {
5725
5815
  parent = null;
5726
5816
  }
5727
5817
  if (parentId) {
5728
- const children = orch.getThreads(true).filter((t) => t.parentThreadId === parentId);
5818
+ const children = orch.getThreads(false).filter((t) => t.parentThreadId === parentId);
5729
5819
  if (children.length >= MAX_ORCH_THREADS) {
5730
5820
  return {
5731
5821
  content: [
@@ -13,7 +13,7 @@ import {
13
13
  updateThread,
14
14
  withThreadLock,
15
15
  writeThread
16
- } from "./chunk-HLEX5AQ6.js";
16
+ } from "./chunk-7FD7COKE.js";
17
17
  import "./chunk-KGZBYWZ3.js";
18
18
  import "./chunk-7MV3RXSC.js";
19
19
  export {
@@ -11,7 +11,7 @@ import {
11
11
  updateThread,
12
12
  withThreadLock,
13
13
  writeThread
14
- } from "./chunk-TSRXOSVD.js";
14
+ } from "./chunk-FWJYLBO6.js";
15
15
  import "./chunk-77WWLBCI.js";
16
16
  import "./chunk-M37RITA6.js";
17
17
  export {
@@ -6,15 +6,15 @@ import {
6
6
  listWorkspaces,
7
7
  removeWorkspace,
8
8
  syncWorkspacesFromThreads
9
- } from "./chunk-QJBC4BRK.js";
10
- import "./chunk-CHGOMFTA.js";
9
+ } from "./chunk-A6FOKNOU.js";
10
+ import "./chunk-2FEA4LDA.js";
11
11
  import "./chunk-S2LL5HA4.js";
12
- import "./chunk-NTYRBRE7.js";
13
- import "./chunk-MFGGIRUA.js";
12
+ import "./chunk-NVU7EC2E.js";
13
+ import "./chunk-3KKNTHUC.js";
14
14
  import "./chunk-B3SJXYIJ.js";
15
- import "./chunk-HLEX5AQ6.js";
15
+ import "./chunk-7FD7COKE.js";
16
16
  import "./chunk-RIWUU7FO.js";
17
- import "./chunk-FGNBTFRD.js";
17
+ import "./chunk-DDN3UF4R.js";
18
18
  import "./chunk-KGZBYWZ3.js";
19
19
  import "./chunk-7MV3RXSC.js";
20
20
  export {
@@ -4,14 +4,14 @@ import {
4
4
  listWorkspaces,
5
5
  removeWorkspace,
6
6
  syncWorkspacesFromThreads
7
- } from "./chunk-2P2UK7E7.js";
8
- import "./chunk-MLAST5BB.js";
7
+ } from "./chunk-46KMKHSD.js";
8
+ import "./chunk-DXTGDXO2.js";
9
9
  import "./chunk-GI7E5733.js";
10
- import "./chunk-XWPKLRB3.js";
11
- import "./chunk-75QR74KM.js";
12
- import "./chunk-P7EQUFB6.js";
10
+ import "./chunk-27MAWNKY.js";
11
+ import "./chunk-6CUJQKTJ.js";
12
+ import "./chunk-UGXSSBFJ.js";
13
13
  import "./chunk-FKOIHGKV.js";
14
- import "./chunk-TSRXOSVD.js";
14
+ import "./chunk-FWJYLBO6.js";
15
15
  import "./chunk-77WWLBCI.js";
16
16
  import "./chunk-M37RITA6.js";
17
17
  import "./chunk-73AT5K4A.js";
@@ -45,9 +45,9 @@ import {
45
45
  worktreeDisplayLabel,
46
46
  worktreeDisplayLabelForGroup,
47
47
  worktreeNameFromPath
48
- } from "./chunk-MFGGIRUA.js";
48
+ } from "./chunk-3KKNTHUC.js";
49
49
  import "./chunk-B3SJXYIJ.js";
50
- import "./chunk-HLEX5AQ6.js";
50
+ import "./chunk-7FD7COKE.js";
51
51
  import "./chunk-RIWUU7FO.js";
52
52
  import "./chunk-KGZBYWZ3.js";
53
53
  import "./chunk-7MV3RXSC.js";
@@ -43,9 +43,9 @@ import {
43
43
  worktreeDisplayLabel,
44
44
  worktreeDisplayLabelForGroup,
45
45
  worktreeNameFromPath
46
- } from "./chunk-P7EQUFB6.js";
46
+ } from "./chunk-UGXSSBFJ.js";
47
47
  import "./chunk-FKOIHGKV.js";
48
- import "./chunk-TSRXOSVD.js";
48
+ import "./chunk-FWJYLBO6.js";
49
49
  import "./chunk-77WWLBCI.js";
50
50
  import "./chunk-M37RITA6.js";
51
51
  import "./chunk-73AT5K4A.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sideboard-ai/core",
3
- "version": "0.1.60",
3
+ "version": "0.1.62",
4
4
  "description": "Sideboard core — orchestration, agents, git worktrees, MCP server",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",