@sideboard-ai/core 0.1.83 → 0.1.84

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 (33) hide show
  1. package/dist/agents/cursor-runner.cjs +88 -53
  2. package/dist/agents/cursor-runner.js +93 -56
  3. package/dist/{agents-3YPUZME7.js → agents-JFXM66QA.js} +7 -7
  4. package/dist/{agents-4KRD46KG.js → agents-OPTHS4IX.js} +5 -5
  5. package/dist/{app-settings-MQXL7OUF.js → app-settings-K6RFCRF6.js} +2 -2
  6. package/dist/{app-settings-GVSOIJLZ.js → app-settings-PEXK5VEX.js} +1 -1
  7. package/dist/{chunk-IZ7RPF54.js → chunk-5KLC2MWZ.js} +5 -1
  8. package/dist/{chunk-UHGN4KCL.js → chunk-AY53MPDE.js} +4 -0
  9. package/dist/{chunk-JMRJ4F5B.js → chunk-BBQ6HXKS.js} +52 -13
  10. package/dist/{chunk-SEOICVGB.js → chunk-CBJSPTBG.js} +30 -6
  11. package/dist/{chunk-HBBXS2FR.js → chunk-CKBIQ54F.js} +1 -1
  12. package/dist/{chunk-YO3CYL6B.js → chunk-I3FRXL7J.js} +1 -1
  13. package/dist/{chunk-E2MIA7DO.js → chunk-JPHG2KCC.js} +2 -2
  14. package/dist/{chunk-ERJS3ZDP.js → chunk-NW7MEJHO.js} +2 -2
  15. package/dist/{chunk-LVTNWH7B.js → chunk-ODZ2ZOA4.js} +2 -2
  16. package/dist/{chunk-NXXT5SE3.js → chunk-OIEFHOP7.js} +3 -3
  17. package/dist/{chunk-JW6YFPQE.js → chunk-R753UFSX.js} +24 -9
  18. package/dist/{chunk-RS54WYYH.js → chunk-UN3LVQB2.js} +2 -2
  19. package/dist/{chunk-DJFGX4RT.js → chunk-WJ5TINR6.js} +3 -3
  20. package/dist/{chunk-GD2FM6FN.js → chunk-XW47PL6A.js} +1 -1
  21. package/dist/{coordinator-prompt-6ICA54JR.js → coordinator-prompt-DOIOSLUN.js} +3 -3
  22. package/dist/{coordinator-prompt-46JE4NQR.js → coordinator-prompt-RCTIIZ6C.js} +4 -4
  23. package/dist/{global-workspace-OBRWUPZG.js → global-workspace-33BIG7KK.js} +4 -4
  24. package/dist/{global-workspace-GSLCEB5E.js → global-workspace-73OAKD3C.js} +5 -5
  25. package/dist/index.cjs +54 -12
  26. package/dist/index.js +23 -23
  27. package/dist/mcp/run-stdio.cjs +54 -12
  28. package/dist/mcp/run-stdio.js +20 -20
  29. package/dist/{workspaces-7B3PTEF4.js → workspaces-SRITISKA.js} +6 -6
  30. package/dist/{workspaces-RJIWQB6J.js → workspaces-WDLY34MX.js} +5 -5
  31. package/dist/{worktree-HSN5LWY6.js → worktree-SGZVAWOQ.js} +3 -3
  32. package/dist/{worktree-U3UIID2K.js → worktree-TUAO74SI.js} +2 -2
  33. package/package.json +1 -1
@@ -54,6 +54,9 @@ function wrapElectronAsNodeLaunch(file, args) {
54
54
  args: ["-c", STRIP_NESTED_ELECTRON_THEN_EXEC, "sh", file, ...args]
55
55
  };
56
56
  }
57
+ function isStrippedElectronLaunch(command, args) {
58
+ return command === "/bin/sh" && Boolean(args?.[1]?.includes("ELECTRON_RUN_AS_NODE") && args[1].includes("unset"));
59
+ }
57
60
  var NESTED_ELECTRON_ENV_PREFIXES, STRIP_NESTED_ELECTRON_THEN_EXEC;
58
61
  var init_nested_electron_env = __esm({
59
62
  "src/hook/nested-electron-env.ts"() {
@@ -730,20 +733,36 @@ function pushTurnStderr(tail, line, maxLines = 12) {
730
733
  tail.push(trimmed);
731
734
  while (tail.length > maxLines) tail.shift();
732
735
  }
736
+ function looksLikeMinifiedJsDump(line) {
737
+ if (line.length < 200) return false;
738
+ return /yield Promise\.all/.test(line) || /\(0,[A-Za-z$]\.\w+\)/.test(line) || /CURSOR_RIPGREP_PATH/.test(line);
739
+ }
740
+ function looksLikeNestedElectronCrash(line) {
741
+ return /HasCustomHostObject|ElectronInitializeICUandStartNode/i.test(line);
742
+ }
743
+ function clipStderr(text3, maxChars) {
744
+ const trimmed = text3.trim();
745
+ if (trimmed.length <= maxChars) return trimmed;
746
+ return trimmed.slice(0, maxChars);
747
+ }
733
748
  function summarizeTurnStderr(tail, maxChars = 500) {
734
749
  if (tail.length === 0) return "";
750
+ const cursorStartup = [...tail].reverse().find((line) => /cursor startup failed:/i.test(line));
751
+ if (cursorStartup) return clipStderr(cursorStartup, maxChars);
752
+ if (tail.some(looksLikeNestedElectronCrash)) return NESTED_ELECTRON_SUMMARY;
735
753
  const moduleMissing = [...tail].reverse().find((line) => /cannot find module/i.test(line));
736
- if (moduleMissing) {
737
- return moduleMissing.length <= maxChars ? moduleMissing : moduleMissing.slice(0, maxChars);
754
+ if (moduleMissing) return clipStderr(moduleMissing, maxChars);
755
+ const useful = tail.filter((line) => !looksLikeMinifiedJsDump(line));
756
+ if (useful.length === 0 && tail.some(looksLikeMinifiedJsDump)) {
757
+ return MINIFIED_DUMP_SUMMARY;
738
758
  }
739
- const joined = tail.slice(-6).join("\n").trim();
740
- if (joined.length <= maxChars) return joined;
741
- return joined.slice(joined.length - maxChars);
759
+ const joined = (useful.length ? useful : tail).slice(-6).join("\n").trim();
760
+ return clipStderr(joined, maxChars);
742
761
  }
743
762
  function looksLikeInvalidAgentSession(text3) {
744
763
  const lower = text3.trim().toLowerCase();
745
764
  if (!lower) return false;
746
- return /session not found/.test(lower) || /no conversation found/.test(lower) || /conversation .+ not found/.test(lower) || /thread .+ not found/.test(lower) || /unknown session/.test(lower) || /invalid session/.test(lower) || /session .+ (missing|expired|deleted|gone)/.test(lower) || /cannot resume/.test(lower) || /failed to (load|resume|open) session/.test(lower);
765
+ return /session not found/.test(lower) || /no conversation found/.test(lower) || /conversation .+ not found/.test(lower) || /thread .+ not found/.test(lower) || /unknown session/.test(lower) || /invalid session/.test(lower) || /session .+ (missing|expired|deleted|gone)/.test(lower) || /cannot resume/.test(lower) || /failed to (load|resume|open) session/.test(lower) || /corrupt local agent checkpoint/.test(lower) || /missing root blob/.test(lower) || /\bagent\b.{0,120}\bnot found\b/.test(lower);
747
766
  }
748
767
  function looksLikeAgentFailureMessage(text3) {
749
768
  const lower = text3.trim().toLowerCase();
@@ -783,6 +802,12 @@ function humanizeAgentFailDetail(detail) {
783
802
  if (/context.*(too long|exceed)|prompt is too long|conversation too long/.test(lower)) {
784
803
  return `${raw} \u2014 start a new chat or compact context, then retry.`;
785
804
  }
805
+ if (/hascustomhostobject|electroninitializeicuandstartnode|nested chromium/i.test(lower)) {
806
+ return `${raw} \u2014 retry the turn; if it keeps failing, pick another agent.`;
807
+ }
808
+ if (/corrupt local agent checkpoint|missing root blob|truncated crash dump/.test(lower)) {
809
+ return `${raw} \u2014 retry the turn (Sideboard will start a fresh Cursor session).`;
810
+ }
786
811
  return raw;
787
812
  }
788
813
  function formatTurnExitError(exitCode, stderrSummary) {
@@ -798,11 +823,13 @@ function formatTurnExitError(exitCode, stderrSummary) {
798
823
  if (looksLikeAgentFailureMessage(raw)) return detail;
799
824
  return `exit ${code}: ${detail}`;
800
825
  }
801
- var NODE_VERSION_FOOTER;
826
+ var NODE_VERSION_FOOTER, NESTED_ELECTRON_SUMMARY, MINIFIED_DUMP_SUMMARY;
802
827
  var init_error_detail = __esm({
803
828
  "src/agents/error-detail.ts"() {
804
829
  "use strict";
805
830
  NODE_VERSION_FOOTER = /^Node\.js v\d+/i;
831
+ NESTED_ELECTRON_SUMMARY = "Cursor local agent crashed at Electron startup (nested Chromium / HasCustomHostObject)";
832
+ MINIFIED_DUMP_SUMMARY = "Cursor local agent crashed during startup (truncated crash dump)";
806
833
  }
807
834
  });
808
835
 
@@ -5605,7 +5632,12 @@ function applyNodeLaunch(launch, args) {
5605
5632
  return { file: launch.file, args, env: launch.env };
5606
5633
  }
5607
5634
  const wrapped = wrapElectronAsNodeLaunch(launch.file, args);
5608
- return { file: wrapped.file, args: wrapped.args, env: launch.env };
5635
+ if (process.platform === "win32") {
5636
+ return { file: wrapped.file, args: wrapped.args, env: launch.env };
5637
+ }
5638
+ const env = { ...launch.env };
5639
+ delete env.ELECTRON_RUN_AS_NODE;
5640
+ return { file: wrapped.file, args: wrapped.args, env };
5609
5641
  }
5610
5642
  async function resolveNodeLaunch(scriptPath) {
5611
5643
  if (isAsarPath(scriptPath)) {
@@ -5804,10 +5836,19 @@ async function buildInjectedMcpServers(opts) {
5804
5836
  function toCursorMcpServers(servers) {
5805
5837
  const out = {};
5806
5838
  for (const s of servers) {
5839
+ const env = s.env ? { ...s.env } : void 0;
5840
+ if (env) delete env.ELECTRON_RUN_AS_NODE;
5841
+ let command = s.command;
5842
+ let args = s.args;
5843
+ if (process.platform !== "win32" && !isStrippedElectronLaunch(command, args)) {
5844
+ const wrapped = wrapElectronAsNodeLaunch(command, args ?? []);
5845
+ command = wrapped.file;
5846
+ args = wrapped.args;
5847
+ }
5807
5848
  out[s.name] = {
5808
- command: s.command,
5809
- ...s.args ? { args: s.args } : {},
5810
- ...s.env ? { env: s.env } : {}
5849
+ command,
5850
+ ...args && args.length > 0 ? { args } : {},
5851
+ ...env && Object.keys(env).length > 0 ? { env } : {}
5811
5852
  };
5812
5853
  }
5813
5854
  return out;
@@ -5874,6 +5915,7 @@ var init_injected_mcp = __esm({
5874
5915
  init_app_settings();
5875
5916
  init_paths();
5876
5917
  init_node_launch();
5918
+ init_nested_electron_env();
5877
5919
  import_meta = {};
5878
5920
  SIDEBOARD_MCP_ALLOWED_TOOLS = [
5879
5921
  "mcp__sideboard",
@@ -13412,7 +13454,7 @@ var Orchestrator = class {
13412
13454
  }
13413
13455
  let lastStderr = summarizeTurnStderr(stderrTail);
13414
13456
  let detail = lastStderr || (exitCode !== 0 ? fallbackTurnFailDetail(assistantText) : "");
13415
- if (exitCode !== 0 && !assistantText && parts.length === 0 && !this.stoppedTurns.has(threadId) && looksLikeInvalidAgentSession(detail) && this.requireThread(threadId).sessionId && this.requireThread(threadId).agent !== "cursor" && this.requireThread(threadId).agent !== "brightsy") {
13457
+ if (exitCode !== 0 && !assistantText && parts.length === 0 && !this.stoppedTurns.has(threadId) && looksLikeInvalidAgentSession(detail) && this.requireThread(threadId).sessionId && this.requireThread(threadId).agent !== "brightsy") {
13416
13458
  updateThread(threadId, { sessionId: null });
13417
13459
  pushTurnStderr(
13418
13460
  stderrTail,
@@ -17,14 +17,14 @@ import {
17
17
  resolveQuotaFallbackAgent,
18
18
  sideboardMcpProfile,
19
19
  summarizeTurnStderr
20
- } from "../chunk-JMRJ4F5B.js";
20
+ } from "../chunk-BBQ6HXKS.js";
21
21
  import "../chunk-VROPG6QF.js";
22
22
  import {
23
23
  addWorkspace,
24
24
  ensureWorkspace,
25
25
  removeWorkspace,
26
26
  syncWorkspacesFromThreads
27
- } from "../chunk-RS54WYYH.js";
27
+ } from "../chunk-UN3LVQB2.js";
28
28
  import {
29
29
  extractPresentedPlan,
30
30
  readPlanFile,
@@ -42,14 +42,14 @@ import {
42
42
  isGlobalThread,
43
43
  isOrchestratorThread,
44
44
  orchestratorSessionPoisonedByBuiltins
45
- } from "../chunk-DJFGX4RT.js";
45
+ } from "../chunk-WJ5TINR6.js";
46
46
  import {
47
47
  SLACK_REPLY_FORMATTING,
48
48
  coordinatorSystemPrompt,
49
49
  coordinatorTurnReminder,
50
50
  enrichWorkspacesWithGithub,
51
51
  ensureGlobalCoordinatorCwd
52
- } from "../chunk-ERJS3ZDP.js";
52
+ } from "../chunk-NW7MEJHO.js";
53
53
  import {
54
54
  addPrStackLayer,
55
55
  allocateTeamName,
@@ -88,7 +88,7 @@ import {
88
88
  takenSlugsFromThread,
89
89
  threadDisplayLabel,
90
90
  worktreeNameFromPath
91
- } from "../chunk-HBBXS2FR.js";
91
+ } from "../chunk-CKBIQ54F.js";
92
92
  import {
93
93
  ATTACHMENTS_DIR,
94
94
  LEGACY_ATTACHMENTS_DIR,
@@ -130,7 +130,7 @@ import {
130
130
  stripNestedElectronEnv,
131
131
  updateAdvancedSettings,
132
132
  writeSecureJson
133
- } from "../chunk-UHGN4KCL.js";
133
+ } from "../chunk-AY53MPDE.js";
134
134
  import {
135
135
  writePrivateFile
136
136
  } from "../chunk-NSTQ6QKD.js";
@@ -893,9 +893,9 @@ async function spawnAgentTurn(thread, input, onEvent) {
893
893
  `Cannot spawn ${thread.agent}: thread ${thread.id} has no worktreePath`
894
894
  );
895
895
  }
896
- const { isGlobalThread: isGlobalThread2 } = await import("../global-workspace-OBRWUPZG.js");
896
+ const { isGlobalThread: isGlobalThread2 } = await import("../global-workspace-33BIG7KK.js");
897
897
  if (isGlobalThread2(thread)) {
898
- const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("../coordinator-prompt-6ICA54JR.js");
898
+ const { ensureGlobalCoordinatorCwd: ensureGlobalCoordinatorCwd2 } = await import("../coordinator-prompt-DOIOSLUN.js");
899
899
  ensureGlobalCoordinatorCwd2(
900
900
  isOrchestratorThread(thread) ? { orchestratorThreadId: thread.id } : void 0
901
901
  );
@@ -1818,7 +1818,7 @@ async function createThread(input, _onSetupLine) {
1818
1818
  return readThread(thread.id) ?? thread;
1819
1819
  }
1820
1820
  async function listLinearIssues(agent, repoPath) {
1821
- const { getAdapter: getAdapter2 } = await import("../agents-4KRD46KG.js");
1821
+ const { getAdapter: getAdapter2 } = await import("../agents-OPTHS4IX.js");
1822
1822
  await requireAgent(agent, { requireLinear: true });
1823
1823
  const adapter = getAdapter2(agent);
1824
1824
  if (!adapter.listLinearIssues) {
@@ -2686,7 +2686,7 @@ async function adoptThread(input) {
2686
2686
  messages: input.messages ?? []
2687
2687
  });
2688
2688
  writeThread(thread);
2689
- const { ensureWorkspace: ensureWorkspace2 } = await import("../workspaces-RJIWQB6J.js");
2689
+ const { ensureWorkspace: ensureWorkspace2 } = await import("../workspaces-WDLY34MX.js");
2690
2690
  await ensureWorkspace2(repoPath);
2691
2691
  return thread;
2692
2692
  }
@@ -4678,7 +4678,7 @@ var Orchestrator = class {
4678
4678
  orphans: orphans.map((o) => ({ path: o.path, repoPath: o.repoPath }))
4679
4679
  });
4680
4680
  }
4681
- const { autoCleanupOrphansEnabled } = await import("../app-settings-GVSOIJLZ.js");
4681
+ const { autoCleanupOrphansEnabled } = await import("../app-settings-PEXK5VEX.js");
4682
4682
  if (autoCleanupOrphansEnabled() && shouldRunWorktreeCleanup() && orphans.length > 0) {
4683
4683
  await cleanupOrphanWorktrees({ repoPaths });
4684
4684
  }
@@ -4835,7 +4835,7 @@ var Orchestrator = class {
4835
4835
  }
4836
4836
  async finishCreateThread(threadId, prompt) {
4837
4837
  await this.runSetupAfterCreate(threadId);
4838
- const { autoRunAfterSetupEnabled } = await import("../app-settings-GVSOIJLZ.js");
4838
+ const { autoRunAfterSetupEnabled } = await import("../app-settings-PEXK5VEX.js");
4839
4839
  if (autoRunAfterSetupEnabled()) {
4840
4840
  try {
4841
4841
  await this.startDev(threadId);
@@ -5106,7 +5106,7 @@ var Orchestrator = class {
5106
5106
  }
5107
5107
  const isBrightsy = fresh.agent === "brightsy";
5108
5108
  const isOrchestration = isOrchestratorThread(fresh);
5109
- const { autoRenameBranchEnabled, getGithubGitAuthMode } = await import("../app-settings-GVSOIJLZ.js");
5109
+ const { autoRenameBranchEnabled, getGithubGitAuthMode } = await import("../app-settings-PEXK5VEX.js");
5110
5110
  const gitAuthMode = getGithubGitAuthMode();
5111
5111
  const worktreeDirective = isBrightsy || isOrchestration ? null : formatWorktreeDirective(fresh, {
5112
5112
  githubSlug: await resolveGithubRepoSlug(fresh.worktreePath).catch(
@@ -5216,7 +5216,7 @@ var Orchestrator = class {
5216
5216
  }
5217
5217
  let lastStderr = summarizeTurnStderr(stderrTail);
5218
5218
  let detail = lastStderr || (exitCode !== 0 ? fallbackTurnFailDetail(assistantText) : "");
5219
- if (exitCode !== 0 && !assistantText && parts.length === 0 && !this.stoppedTurns.has(threadId) && looksLikeInvalidAgentSession(detail) && this.requireThread(threadId).sessionId && this.requireThread(threadId).agent !== "cursor" && this.requireThread(threadId).agent !== "brightsy") {
5219
+ if (exitCode !== 0 && !assistantText && parts.length === 0 && !this.stoppedTurns.has(threadId) && looksLikeInvalidAgentSession(detail) && this.requireThread(threadId).sessionId && this.requireThread(threadId).agent !== "brightsy") {
5220
5220
  updateThread(threadId, { sessionId: null });
5221
5221
  pushTurnStderr(
5222
5222
  stderrTail,
@@ -5823,7 +5823,7 @@ var Orchestrator = class {
5823
5823
  updateThread(thread.id, { title: meta.title });
5824
5824
  }
5825
5825
  }
5826
- const { autoArchiveOnMergeEnabled } = await import("../app-settings-GVSOIJLZ.js");
5826
+ const { autoArchiveOnMergeEnabled } = await import("../app-settings-PEXK5VEX.js");
5827
5827
  const latest = this.requireThread(thread.id);
5828
5828
  if (!shouldAutoArchiveOnPrMerge({
5829
5829
  previousPrState: prevState || null,
@@ -6111,7 +6111,7 @@ var Orchestrator = class {
6111
6111
  this.emit({ type: "status_changed", threadId: archived.id, status: "archived" });
6112
6112
  if (thread.repoPath && !isGlobalRepoPath(thread.repoPath)) {
6113
6113
  try {
6114
- const { ensureWorkspace: ensureWorkspace2 } = await import("../workspaces-RJIWQB6J.js");
6114
+ const { ensureWorkspace: ensureWorkspace2 } = await import("../workspaces-WDLY34MX.js");
6115
6115
  await ensureWorkspace2(thread.repoPath);
6116
6116
  } catch {
6117
6117
  }
@@ -6133,7 +6133,7 @@ var Orchestrator = class {
6133
6133
  await runArchiveScript(thread.repoPath, thread.worktreePath);
6134
6134
  } catch {
6135
6135
  }
6136
- const { deleteBranchOnPurgeEnabled } = await import("../app-settings-GVSOIJLZ.js");
6136
+ const { deleteBranchOnPurgeEnabled } = await import("../app-settings-PEXK5VEX.js");
6137
6137
  const deleteBranch = opts?.deleteBranch ?? deleteBranchOnPurgeEnabled();
6138
6138
  await removeWorktree(thread.repoPath, thread.worktreePath, {
6139
6139
  deleteBranch: deleteBranch ? thread.branchName : void 0
@@ -6154,7 +6154,7 @@ var Orchestrator = class {
6154
6154
  return restored2;
6155
6155
  }
6156
6156
  if (!existsSync15(thread.worktreePath)) {
6157
- const { createThreadWorktree: createThreadWorktree2 } = await import("../worktree-U3UIID2K.js");
6157
+ const { createThreadWorktree: createThreadWorktree2 } = await import("../worktree-TUAO74SI.js");
6158
6158
  const { execa: execa6 } = await import("execa");
6159
6159
  const slug = thread.worktreePath.split("/").pop();
6160
6160
  const dest = thread.worktreePath;
@@ -7325,7 +7325,7 @@ function withTimeout(promise, ms, label) {
7325
7325
  async function startMcpServer() {
7326
7326
  const orch = getOrchestrator();
7327
7327
  try {
7328
- const { maxConcurrentAgents } = await import("../app-settings-GVSOIJLZ.js");
7328
+ const { maxConcurrentAgents } = await import("../app-settings-PEXK5VEX.js");
7329
7329
  orch.setMaxConcurrent(maxConcurrentAgents());
7330
7330
  } catch {
7331
7331
  }
@@ -7535,7 +7535,7 @@ async function startMcpServer() {
7535
7535
  registerLinearTools(server);
7536
7536
  if (sideboardMcpProfile() !== "worktree") {
7537
7537
  const { getCaffeinateHold, setCaffeinateHold } = await import("../caffeinate-hold-OHAUWOA6.js");
7538
- const { resolveNewThreadOptions: resolveNewThreadOptions2, resolveThreadDefaults } = await import("../app-settings-GVSOIJLZ.js");
7538
+ const { resolveNewThreadOptions: resolveNewThreadOptions2, resolveThreadDefaults } = await import("../app-settings-PEXK5VEX.js");
7539
7539
  const accountDefaults = resolveThreadDefaults();
7540
7540
  const accountDefaultsHint = `Account defaults: agent=${accountDefaults.agent}, model=${accountDefaults.model?.trim() || "Auto"}, effort=${accountDefaults.effort}`;
7541
7541
  server.tool(
@@ -4,13 +4,13 @@ import {
4
4
  listWorkspaces,
5
5
  removeWorkspace,
6
6
  syncWorkspacesFromThreads
7
- } from "./chunk-LVTNWH7B.js";
8
- import "./chunk-NXXT5SE3.js";
9
- import "./chunk-E2MIA7DO.js";
10
- import "./chunk-GD2FM6FN.js";
7
+ } from "./chunk-ODZ2ZOA4.js";
8
+ import "./chunk-OIEFHOP7.js";
9
+ import "./chunk-JPHG2KCC.js";
10
+ import "./chunk-XW47PL6A.js";
11
11
  import "./chunk-FKOIHGKV.js";
12
- import "./chunk-YO3CYL6B.js";
13
- import "./chunk-IZ7RPF54.js";
12
+ import "./chunk-I3FRXL7J.js";
13
+ import "./chunk-5KLC2MWZ.js";
14
14
  import "./chunk-JT7R45JB.js";
15
15
  import "./chunk-FWJYLBO6.js";
16
16
  import "./chunk-77WWLBCI.js";
@@ -6,14 +6,14 @@ import {
6
6
  listWorkspaces,
7
7
  removeWorkspace,
8
8
  syncWorkspacesFromThreads
9
- } from "./chunk-RS54WYYH.js";
10
- import "./chunk-DJFGX4RT.js";
11
- import "./chunk-ERJS3ZDP.js";
12
- import "./chunk-HBBXS2FR.js";
9
+ } from "./chunk-UN3LVQB2.js";
10
+ import "./chunk-WJ5TINR6.js";
11
+ import "./chunk-NW7MEJHO.js";
12
+ import "./chunk-CKBIQ54F.js";
13
13
  import "./chunk-B3SJXYIJ.js";
14
14
  import "./chunk-7FD7COKE.js";
15
15
  import "./chunk-AE5VBOFE.js";
16
- import "./chunk-UHGN4KCL.js";
16
+ import "./chunk-AY53MPDE.js";
17
17
  import "./chunk-NSTQ6QKD.js";
18
18
  import "./chunk-KGZBYWZ3.js";
19
19
  import "./chunk-7MV3RXSC.js";
@@ -44,10 +44,10 @@ import {
44
44
  worktreeDisplayLabel,
45
45
  worktreeDisplayLabelForGroup,
46
46
  worktreeNameFromPath
47
- } from "./chunk-GD2FM6FN.js";
47
+ } from "./chunk-XW47PL6A.js";
48
48
  import "./chunk-FKOIHGKV.js";
49
- import "./chunk-YO3CYL6B.js";
50
- import "./chunk-IZ7RPF54.js";
49
+ import "./chunk-I3FRXL7J.js";
50
+ import "./chunk-5KLC2MWZ.js";
51
51
  import "./chunk-JT7R45JB.js";
52
52
  import "./chunk-FWJYLBO6.js";
53
53
  import "./chunk-77WWLBCI.js";
@@ -46,11 +46,11 @@ import {
46
46
  worktreeDisplayLabel,
47
47
  worktreeDisplayLabelForGroup,
48
48
  worktreeNameFromPath
49
- } from "./chunk-HBBXS2FR.js";
49
+ } from "./chunk-CKBIQ54F.js";
50
50
  import "./chunk-B3SJXYIJ.js";
51
51
  import "./chunk-7FD7COKE.js";
52
52
  import "./chunk-AE5VBOFE.js";
53
- import "./chunk-UHGN4KCL.js";
53
+ import "./chunk-AY53MPDE.js";
54
54
  import "./chunk-NSTQ6QKD.js";
55
55
  import "./chunk-KGZBYWZ3.js";
56
56
  import "./chunk-7MV3RXSC.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sideboard-ai/core",
3
- "version": "0.1.83",
3
+ "version": "0.1.84",
4
4
  "description": "Sideboard core — orchestration, agents, git worktrees, MCP server",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",