@sideboard-ai/core 0.1.288 → 0.1.289

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 (34) hide show
  1. package/dist/{agents-GZLTMGSH.js → agents-4BBCKITL.js} +4 -4
  2. package/dist/{agents-UQMHFZSM.js → agents-XAKSP653.js} +4 -4
  3. package/dist/{chunk-HNB2HTCV.js → chunk-2IXKTAIT.js} +1 -1
  4. package/dist/{chunk-3W5SL5EW.js → chunk-5HPMKLJ7.js} +1 -1
  5. package/dist/{chunk-WW5XGEMY.js → chunk-C546EOEF.js} +12 -12
  6. package/dist/{chunk-442O6OXM.js → chunk-EBGJXOXT.js} +11 -11
  7. package/dist/{chunk-4NM72HJZ.js → chunk-G74TSBJ3.js} +4 -4
  8. package/dist/{chunk-WQSIUZEB.js → chunk-GBAACE3C.js} +4 -4
  9. package/dist/{chunk-2N77CLRQ.js → chunk-LUQ7MIVD.js} +3 -3
  10. package/dist/{chunk-IA4MPG7F.js → chunk-O4324MXE.js} +2 -2
  11. package/dist/{chunk-DBOFDEQ7.js → chunk-V3BSO2O6.js} +2 -2
  12. package/dist/{chunk-6NVQNTJO.js → chunk-VNCPRMIK.js} +3 -3
  13. package/dist/{conductor-MCU63Z5U.js → conductor-5MNGC25D.js} +4 -4
  14. package/dist/{conductor-ZLYZVIAV.js → conductor-UFJXJPTF.js} +4 -4
  15. package/dist/{coordinator-prompt-KHCXXDRO.js → coordinator-prompt-5Q66Y5KW.js} +3 -3
  16. package/dist/{coordinator-prompt-UV6THLMD.js → coordinator-prompt-BYPEW6DE.js} +3 -3
  17. package/dist/{global-workspace-GDHZSFP6.js → global-workspace-BTH2YGDZ.js} +3 -3
  18. package/dist/{global-workspace-AXTSYVAE.js → global-workspace-YKOYXSB2.js} +3 -3
  19. package/dist/index.cjs +149 -49
  20. package/dist/index.d.cts +18 -2
  21. package/dist/index.d.ts +18 -2
  22. package/dist/index.js +132 -32
  23. package/dist/mcp/run-stdio.js +6 -6
  24. package/dist/{orchestrator-SDH6W6ZL.js → orchestrator-IG4VU7MT.js} +6 -6
  25. package/dist/{orchestrator-5ZBHR6BJ.js → orchestrator-MKF3YBNK.js} +6 -6
  26. package/dist/{thread-store-7XBOUQ5K.js → thread-store-DPKESDFR.js} +1 -1
  27. package/dist/{thread-store-ZQZDREVH.js → thread-store-X6S2GIR5.js} +1 -1
  28. package/dist/{workspaces-Q2R2XGO3.js → workspaces-ELO2YVTU.js} +3 -3
  29. package/dist/{workspaces-L2UR4KC2.js → workspaces-RFD6I4FM.js} +3 -3
  30. package/dist/{worktree-2GOK4VYT.js → worktree-ADVQ6X6C.js} +2 -2
  31. package/dist/{worktree-YEUTJ7MZ.js → worktree-TN7DZDJZ.js} +2 -2
  32. package/package.json +1 -1
  33. /package/dist/{chunk-N5UGX3JL.js → chunk-QB5MDOHL.js} +0 -0
  34. /package/dist/{chunk-JPH7PYSK.js → chunk-YRXV3E7J.js} +0 -0
package/dist/index.js CHANGED
@@ -186,7 +186,7 @@ import {
186
186
  worktreeBoardStatus,
187
187
  worktreeCleanupSettings,
188
188
  writeWorktreeFile
189
- } from "./chunk-WW5XGEMY.js";
189
+ } from "./chunk-C546EOEF.js";
190
190
  import {
191
191
  LEGACY_PLAN_FILE_REL,
192
192
  PLAN_FILE_NAME,
@@ -281,7 +281,7 @@ import {
281
281
  userMcpNamesToDisable,
282
282
  worktreeMcpToolNames,
283
283
  writeInjectedMcpConfig
284
- } from "./chunk-6NVQNTJO.js";
284
+ } from "./chunk-VNCPRMIK.js";
285
285
  import {
286
286
  brightsyMcpServerName,
287
287
  connectBrightsyTeam,
@@ -408,7 +408,7 @@ import {
408
408
  workspaceAgentChatSummaries,
409
409
  worktreeRunPortsPath,
410
410
  wrapReviewSkillMarkdown
411
- } from "./chunk-WQSIUZEB.js";
411
+ } from "./chunk-GBAACE3C.js";
412
412
  import {
413
413
  STDERR_EVENT_MAX_CHARS,
414
414
  STDOUT_EVENT_MAX_CHARS,
@@ -608,7 +608,7 @@ import {
608
608
  stageBuffersAsAttachments,
609
609
  syncWorkspacesFromThreads,
610
610
  takenTeamSlugsForOrchestration
611
- } from "./chunk-DBOFDEQ7.js";
611
+ } from "./chunk-V3BSO2O6.js";
612
612
  import {
613
613
  GITHUB_PR_BODY_MAX_CHARS,
614
614
  GITHUB_PR_BODY_SAFE_CHARS,
@@ -696,7 +696,7 @@ import {
696
696
  suggestSlug,
697
697
  switchWorktreeBranch,
698
698
  warmGithubAgentAuth
699
- } from "./chunk-HNB2HTCV.js";
699
+ } from "./chunk-2IXKTAIT.js";
700
700
  import {
701
701
  FAMOUS_SOCCER_TEAMS,
702
702
  allocateTeamName,
@@ -728,7 +728,7 @@ import {
728
728
  worktreeNameFromPath,
729
729
  worktreeSlugForTicket,
730
730
  writeThread
731
- } from "./chunk-N5UGX3JL.js";
731
+ } from "./chunk-QB5MDOHL.js";
732
732
  import "./chunk-2P4XKWV2.js";
733
733
  import {
734
734
  BRIGHTSY_OAUTH_CLIENT_ID,
@@ -5126,7 +5126,7 @@ async function handleJobStop(params, _ctx) {
5126
5126
  return stopDetachedJob(jobCwd(rec), id, reason ? { reason } : void 0);
5127
5127
  }
5128
5128
  async function defaultTurnWait(ref, timeoutMs) {
5129
- const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-SDH6W6ZL.js");
5129
+ const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-IG4VU7MT.js");
5130
5130
  const orch = getOrchestrator2();
5131
5131
  const thread = await orch.waitForTurn(ref, timeoutMs, {
5132
5132
  resolveIfStillRunning: true
@@ -5439,15 +5439,15 @@ async function getHomeBoardInputs(workspaces, opts) {
5439
5439
  }
5440
5440
  const promise = (async () => {
5441
5441
  const inputs = await loadHomeBoardInputs(workspaces);
5442
- const fetchedAt = opts?.now ?? Date.now();
5442
+ const fetchedAt2 = opts?.now ?? Date.now();
5443
5443
  const pins = syncBoardPins(listBoardPins(), inputs.issues, inputs.prs);
5444
5444
  replaceBoardPins(pins);
5445
- const loaded = { ...inputs, fetchedAt, fromCache: false, pins };
5445
+ const loaded = { ...inputs, fetchedAt: fetchedAt2, fromCache: false, pins };
5446
5446
  if (shouldCacheHomeBoardInputs(inputs)) {
5447
5447
  const entry = {
5448
5448
  version: CACHE_VERSION,
5449
5449
  workspaceKey: key,
5450
- fetchedAt,
5450
+ fetchedAt: fetchedAt2,
5451
5451
  inputs
5452
5452
  };
5453
5453
  memory = entry;
@@ -9165,14 +9165,46 @@ var RemoteHub = class {
9165
9165
  this.codes.delete(code);
9166
9166
  this.attachPhone(socket, host);
9167
9167
  }
9168
+ /** In-memory session, with the live Mac's label when that socket is up. */
9169
+ memorySession(sessionToken) {
9170
+ const cached2 = this.phonesByToken.get(sessionToken);
9171
+ if (!cached2) return null;
9172
+ const live = this.hosts.get(cached2.deviceId);
9173
+ const remembered = this.remembered.get(cached2.deviceId);
9174
+ const current = live?.sessionToken ?? remembered?.sessionToken ?? null;
9175
+ if (current && current !== sessionToken) {
9176
+ this.phonesByToken.delete(sessionToken);
9177
+ return null;
9178
+ }
9179
+ return {
9180
+ deviceId: cached2.deviceId,
9181
+ deviceLabel: live?.deviceLabel || remembered?.deviceLabel || cached2.deviceLabel
9182
+ };
9183
+ }
9184
+ knownSession(sessionToken) {
9185
+ const cached2 = this.memorySession(sessionToken);
9186
+ if (cached2) return cached2;
9187
+ const stored = this.opts.phoneSessions?.find(sessionToken) ?? null;
9188
+ if (!stored) return null;
9189
+ const live = this.hosts.get(stored.deviceId);
9190
+ const remembered = this.remembered.get(stored.deviceId);
9191
+ const current = live?.sessionToken ?? remembered?.sessionToken ?? null;
9192
+ if (current && current !== sessionToken) return null;
9193
+ this.phonesByToken.set(sessionToken, stored);
9194
+ if (remembered && !remembered.sessionToken) remembered.sessionToken = sessionToken;
9195
+ if (live && !live.sessionToken) live.sessionToken = sessionToken;
9196
+ return {
9197
+ deviceId: stored.deviceId,
9198
+ deviceLabel: live?.deviceLabel || remembered?.deviceLabel || stored.deviceLabel
9199
+ };
9200
+ }
9168
9201
  resumePhone(socket, sessionToken) {
9169
- const deviceId = this.phonesByToken.get(sessionToken);
9170
- const remembered = deviceId ? this.remembered.get(deviceId) : void 0;
9171
- if (!deviceId || !remembered || remembered.sessionToken !== sessionToken) {
9202
+ const known = this.knownSession(sessionToken);
9203
+ if (!known) {
9172
9204
  send2(socket, { type: "error", message: "phone session expired \u2014 pair again" });
9173
9205
  return;
9174
9206
  }
9175
- const host = this.hosts.get(deviceId);
9207
+ const host = this.hosts.get(known.deviceId);
9176
9208
  if (!host) {
9177
9209
  send2(socket, { type: "host_offline" });
9178
9210
  return;
@@ -9181,17 +9213,13 @@ var RemoteHub = class {
9181
9213
  }
9182
9214
  listHosts(socket, sessionTokens) {
9183
9215
  const hosts = sessionTokens.map((sessionToken) => {
9184
- const deviceId = this.phonesByToken.get(sessionToken);
9185
- const remembered = deviceId ? this.remembered.get(deviceId) : void 0;
9186
- const valid = Boolean(deviceId && remembered && remembered.sessionToken === sessionToken);
9187
- if (!valid || !deviceId || !remembered) {
9188
- return { sessionToken, deviceId: "", deviceLabel: "", online: false };
9189
- }
9190
- const host = this.hosts.get(deviceId);
9216
+ const known = this.knownSession(sessionToken);
9217
+ if (!known) return { sessionToken, deviceId: "", deviceLabel: "", online: false };
9218
+ const host = this.hosts.get(known.deviceId);
9191
9219
  return {
9192
9220
  sessionToken,
9193
- deviceId,
9194
- deviceLabel: host?.deviceLabel || remembered.deviceLabel,
9221
+ deviceId: known.deviceId,
9222
+ deviceLabel: host?.deviceLabel || known.deviceLabel,
9195
9223
  online: Boolean(host)
9196
9224
  };
9197
9225
  });
@@ -9222,18 +9250,20 @@ var RemoteHub = class {
9222
9250
  }
9223
9251
  host.phone = null;
9224
9252
  }
9253
+ const created = sessionToken == null;
9225
9254
  const token = sessionToken ?? randomBytes5(24).toString("hex");
9226
9255
  if (host.sessionToken && host.sessionToken !== token) {
9227
9256
  this.phonesByToken.delete(host.sessionToken);
9228
9257
  }
9229
9258
  host.sessionToken = token;
9230
9259
  host.phone = socket;
9231
- this.phonesByToken.set(token, host.deviceId);
9260
+ this.phonesByToken.set(token, { deviceId: host.deviceId, deviceLabel: host.deviceLabel });
9232
9261
  this.remembered.set(host.deviceId, {
9233
9262
  hostSecret: host.hostSecret,
9234
9263
  sessionToken: token,
9235
9264
  deviceLabel: host.deviceLabel
9236
9265
  });
9266
+ if (created) this.opts.phoneSessions?.save(host.deviceId, token);
9237
9267
  this.bySocket.set(socket, { role: "phone", deviceId: host.deviceId });
9238
9268
  this.opts.onAuthorized?.(socket);
9239
9269
  send2(socket, {
@@ -9476,6 +9506,29 @@ function phoneAccountDefaults() {
9476
9506
  };
9477
9507
  }
9478
9508
 
9509
+ // src/remote/phone-viewer-login.ts
9510
+ var TTL_MS = 5 * 6e4;
9511
+ var cached = "";
9512
+ var fetchedAt = 0;
9513
+ var inflight2 = null;
9514
+ function phoneViewerLogin() {
9515
+ return cached;
9516
+ }
9517
+ function refreshPhoneViewerLogin(force = false) {
9518
+ const now = Date.now();
9519
+ if (!force && fetchedAt && now - fetchedAt < TTL_MS) return Promise.resolve(cached);
9520
+ if (inflight2) return inflight2;
9521
+ const run2 = getGitHubStatus().then((status) => {
9522
+ cached = status.login?.trim() ?? "";
9523
+ fetchedAt = Date.now();
9524
+ return cached;
9525
+ }).catch(() => cached).finally(() => {
9526
+ if (inflight2 === run2) inflight2 = null;
9527
+ });
9528
+ inflight2 = run2;
9529
+ return run2;
9530
+ }
9531
+
9479
9532
  // src/remote/phone-stream.ts
9480
9533
  var PHONE_STREAM_FLUSH_MS = 80;
9481
9534
  function phoneStreamFrame(parts) {
@@ -9776,7 +9829,8 @@ function isProjectPath(path2) {
9776
9829
  function listPhoneChats() {
9777
9830
  return listGlobalThreads().slice().sort((a, b) => a.updatedAt < b.updatedAt ? 1 : a.updatedAt > b.updatedAt ? -1 : 0).map(summarize);
9778
9831
  }
9779
- function listPhoneSidebar() {
9832
+ function listPhoneSidebar(viewerLogin = phoneViewerLogin()) {
9833
+ const settings = loadAppSettings();
9780
9834
  const threads = listThreads();
9781
9835
  const byRepo = /* @__PURE__ */ new Map();
9782
9836
  for (const thread of threads) {
@@ -9794,10 +9848,16 @@ function listPhoneSidebar() {
9794
9848
  path: path2,
9795
9849
  worktrees: groupHomeBoardWorktrees(repoThreads).map((group) => {
9796
9850
  const tags = workspaceTagsFromGroup(group);
9851
+ const badge = classifyWorktreeListBadges(
9852
+ group,
9853
+ viewerLogin,
9854
+ resolveProjectReviewLabel(settings, path2)
9855
+ )[0];
9797
9856
  return {
9798
9857
  label: worktreeDisplayLabelForGroup(group),
9799
9858
  chats: group.map(summarize),
9800
- ...tags.length > 0 ? { tags } : {}
9859
+ ...tags.length > 0 ? { tags } : {},
9860
+ ...badge ? { badge: { id: badge.id, label: badge.label, title: badge.title } } : {}
9801
9861
  };
9802
9862
  })
9803
9863
  }));
@@ -10696,7 +10756,9 @@ function chatKey(row2) {
10696
10756
  function phoneBoardKey(sidebar) {
10697
10757
  const orchestration = sidebar.orchestration.map(chatKey).join("\n");
10698
10758
  const projects = sidebar.projects.map((project) => {
10699
- const trees = project.worktrees.map((tree) => `${tree.label} ${(tree.tags ?? []).join(",")} ${tree.chats.map(chatKey).join("\n")}`).join("\n");
10759
+ const trees = project.worktrees.map(
10760
+ (tree) => `${tree.label} ${tree.badge?.id ?? ""} ${(tree.tags ?? []).join(",")} ${tree.chats.map(chatKey).join("\n")}`
10761
+ ).join("\n");
10700
10762
  return `${project.path} ${project.name}
10701
10763
  ${trees}`;
10702
10764
  }).join("\n---\n");
@@ -10774,10 +10836,23 @@ function startPhoneBoardSync(opts) {
10774
10836
  const unsubscribe = (opts.subscribe ?? subscribePhoneBoard)(schedule);
10775
10837
  const offEvents = (opts.events ?? ((listener) => getOrchestrator().on(listener)))(handle);
10776
10838
  push();
10839
+ let loginTimer = null;
10840
+ const refreshViewerLogin = opts.refreshViewerLogin;
10841
+ if (refreshViewerLogin) {
10842
+ const afterLogin = () => {
10843
+ void refreshViewerLogin().then(() => {
10844
+ if (!stopped) push();
10845
+ });
10846
+ };
10847
+ afterLogin();
10848
+ loginTimer = setInterval(afterLogin, opts.viewerLoginIntervalMs ?? 5 * 6e4);
10849
+ }
10777
10850
  return () => {
10778
10851
  stopped = true;
10779
10852
  if (timer) clearTimeout(timer);
10780
10853
  timer = null;
10854
+ if (loginTimer) clearInterval(loginTimer);
10855
+ loginTimer = null;
10781
10856
  unsubscribe();
10782
10857
  offEvents();
10783
10858
  };
@@ -10844,7 +10919,8 @@ function runRemoteHost(opts) {
10844
10919
  },
10845
10920
  onRunningChat: (chatId) => {
10846
10921
  deliverPhoneTurn({ onOutbound: emit }, chatId);
10847
- }
10922
+ },
10923
+ refreshViewerLogin: () => refreshPhoneViewerLogin(true)
10848
10924
  });
10849
10925
  };
10850
10926
  const send3 = (msg) => {
@@ -11106,9 +11182,15 @@ var RelayAccountStore = class {
11106
11182
  account_id TEXT NOT NULL,
11107
11183
  host_secret_hash TEXT NOT NULL,
11108
11184
  device_label TEXT NOT NULL,
11109
- created_at INTEGER NOT NULL
11185
+ created_at INTEGER NOT NULL,
11186
+ session_token_hash TEXT
11110
11187
  );
11111
11188
  `);
11189
+ const cols = this.db.prepare("PRAGMA table_info(devices)").all();
11190
+ if (!cols.some((col) => col.name === "session_token_hash")) {
11191
+ this.db.exec("ALTER TABLE devices ADD COLUMN session_token_hash TEXT");
11192
+ }
11193
+ this.db.exec("CREATE INDEX IF NOT EXISTS devices_session ON devices(session_token_hash)");
11112
11194
  }
11113
11195
  close() {
11114
11196
  this.db.close();
@@ -11237,6 +11319,20 @@ var RelayAccountStore = class {
11237
11319
  throw err;
11238
11320
  }
11239
11321
  }
11322
+ /** Store a phone pairing when it is created. A later process looks it up on a memory miss. */
11323
+ savePhoneSession(deviceId, sessionToken) {
11324
+ const id = deviceId.trim();
11325
+ const token = sessionToken.trim();
11326
+ if (!id || !token) return;
11327
+ this.db.prepare("UPDATE devices SET session_token_hash = ? WHERE device_id = ?").run(sha256(token), id);
11328
+ }
11329
+ findPhoneSession(sessionToken) {
11330
+ const token = sessionToken.trim();
11331
+ if (!token) return null;
11332
+ const row2 = this.db.prepare("SELECT device_id, device_label FROM devices WHERE session_token_hash = ?").get(sha256(token));
11333
+ if (!row2) return null;
11334
+ return { deviceId: row2.device_id, deviceLabel: row2.device_label };
11335
+ }
11240
11336
  requireAccount(accountId) {
11241
11337
  const row2 = this.db.prepare("SELECT id FROM accounts WHERE id = ?").get(accountId);
11242
11338
  if (!row2) throw new Error("That Sideboard account is no longer on the relay.");
@@ -12226,6 +12322,10 @@ async function startRelayServer(opts) {
12226
12322
  const decision = accountStore.authorizeHost(input);
12227
12323
  return decision.ok ? { ok: true } : { ok: false, message: decision.message };
12228
12324
  } : void 0,
12325
+ phoneSessions: accountStore ? {
12326
+ find: (sessionToken) => accountStore.findPhoneSession(sessionToken),
12327
+ save: (deviceId, sessionToken) => accountStore.savePhoneSession(deviceId, sessionToken)
12328
+ } : void 0,
12229
12329
  onAuthorized: (socket) => authMarks.get(socket)?.()
12230
12330
  });
12231
12331
  const handleCallback = async (reqUrl, res) => {
@@ -12597,7 +12697,7 @@ async function continueSourceThread(threadId, prompt) {
12597
12697
  await continueOnReply(threadId, prompt);
12598
12698
  return;
12599
12699
  }
12600
- const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-SDH6W6ZL.js");
12700
+ const { getOrchestrator: getOrchestrator2 } = await import("./orchestrator-IG4VU7MT.js");
12601
12701
  await getOrchestrator2().send(threadId, prompt);
12602
12702
  } catch {
12603
12703
  }
@@ -12706,8 +12806,8 @@ function displayName(user) {
12706
12806
  return fromProfile || user.real_name?.trim() || user.name?.trim() || "";
12707
12807
  }
12708
12808
  async function resolveUserName(token, userId, fallback, fetchImpl) {
12709
- const cached = nameCache.get(userId);
12710
- if (cached) return cached;
12809
+ const cached2 = nameCache.get(userId);
12810
+ if (cached2) return cached2;
12711
12811
  try {
12712
12812
  const data = await slackApi(token, "users.info", { user: userId }, fetchImpl);
12713
12813
  const name = displayName(data.user ?? {}) || fallback;
@@ -50,7 +50,7 @@ import {
50
50
  syncBoardPins,
51
51
  updateSchedule,
52
52
  workspaceTagTargetRef
53
- } from "../chunk-442O6OXM.js";
53
+ } from "../chunk-EBGJXOXT.js";
54
54
  import "../chunk-LX5R5JOR.js";
55
55
  import {
56
56
  commentAbleTimeTask,
@@ -93,7 +93,7 @@ import {
93
93
  sideboardMcpProfile,
94
94
  trustSystemCertificates,
95
95
  worktreeMcpToolNames
96
- } from "../chunk-2N77CLRQ.js";
96
+ } from "../chunk-LUQ7MIVD.js";
97
97
  import "../chunk-W2KZTDET.js";
98
98
  import "../chunk-7IAMHN2N.js";
99
99
  import "../chunk-PXMLMBMI.js";
@@ -110,7 +110,7 @@ import {
110
110
  waitForDetachedJob,
111
111
  waitForTurnToolResult,
112
112
  workspaceAgentChatSummaries
113
- } from "../chunk-4NM72HJZ.js";
113
+ } from "../chunk-G74TSBJ3.js";
114
114
  import {
115
115
  clipToolResultForStore,
116
116
  isInternalAgentStatusText,
@@ -119,7 +119,7 @@ import {
119
119
  import {
120
120
  GLOBAL_WORKSPACE_ID,
121
121
  isCloudCoordinatorThread
122
- } from "../chunk-IA4MPG7F.js";
122
+ } from "../chunk-O4324MXE.js";
123
123
  import {
124
124
  canonicalizeRepoPath,
125
125
  formatGhLandError,
@@ -130,7 +130,7 @@ import {
130
130
  resolveListPrsOptions,
131
131
  resolveRepoRoot,
132
132
  warmGithubAgentAuth
133
- } from "../chunk-3W5SL5EW.js";
133
+ } from "../chunk-5HPMKLJ7.js";
134
134
  import {
135
135
  CLI_DIR
136
136
  } from "../chunk-N2WW62LF.js";
@@ -160,7 +160,7 @@ import "../chunk-FJZWM2ON.js";
160
160
  import "../chunk-UN5Q7POQ.js";
161
161
  import {
162
162
  normalizeWorkspaceTags
163
- } from "../chunk-JPH7PYSK.js";
163
+ } from "../chunk-YRXV3E7J.js";
164
164
  import "../chunk-4RZRHTSZ.js";
165
165
  import "../chunk-KGZBYWZ3.js";
166
166
  import {
@@ -9,18 +9,18 @@ import {
9
9
  resolveSendFollowUp,
10
10
  startOrchestration,
11
11
  waitForPidExit
12
- } from "./chunk-WW5XGEMY.js";
12
+ } from "./chunk-C546EOEF.js";
13
13
  import "./chunk-PGPSIEMW.js";
14
- import "./chunk-6NVQNTJO.js";
14
+ import "./chunk-VNCPRMIK.js";
15
15
  import "./chunk-VGNLMGBK.js";
16
- import "./chunk-WQSIUZEB.js";
16
+ import "./chunk-GBAACE3C.js";
17
17
  import "./chunk-YSLCWCMJ.js";
18
18
  import "./chunk-7H655NEW.js";
19
19
  import "./chunk-AF2DMY3K.js";
20
20
  import "./chunk-NXXQFLNQ.js";
21
- import "./chunk-DBOFDEQ7.js";
22
- import "./chunk-HNB2HTCV.js";
23
- import "./chunk-N5UGX3JL.js";
21
+ import "./chunk-V3BSO2O6.js";
22
+ import "./chunk-2IXKTAIT.js";
23
+ import "./chunk-QB5MDOHL.js";
24
24
  import "./chunk-2P4XKWV2.js";
25
25
  import "./chunk-33KDPEK4.js";
26
26
  import "./chunk-JAT3JFOS.js";
@@ -11,20 +11,20 @@ import {
11
11
  resolveSendFollowUp,
12
12
  startOrchestration,
13
13
  waitForPidExit
14
- } from "./chunk-442O6OXM.js";
14
+ } from "./chunk-EBGJXOXT.js";
15
15
  import "./chunk-LX5R5JOR.js";
16
16
  import "./chunk-4BXRRHDC.js";
17
17
  import "./chunk-4GK32AYX.js";
18
18
  import "./chunk-5DZUWGKV.js";
19
- import "./chunk-2N77CLRQ.js";
19
+ import "./chunk-LUQ7MIVD.js";
20
20
  import "./chunk-W2KZTDET.js";
21
21
  import "./chunk-7IAMHN2N.js";
22
22
  import "./chunk-PXMLMBMI.js";
23
23
  import "./chunk-2GPQZZLY.js";
24
- import "./chunk-4NM72HJZ.js";
24
+ import "./chunk-G74TSBJ3.js";
25
25
  import "./chunk-AFLNFGGB.js";
26
- import "./chunk-IA4MPG7F.js";
27
- import "./chunk-3W5SL5EW.js";
26
+ import "./chunk-O4324MXE.js";
27
+ import "./chunk-5HPMKLJ7.js";
28
28
  import "./chunk-N2WW62LF.js";
29
29
  import "./chunk-DD67JWTN.js";
30
30
  import "./chunk-2UG25RMK.js";
@@ -33,7 +33,7 @@ import "./chunk-NSTQ6QKD.js";
33
33
  import "./chunk-WWUABK6B.js";
34
34
  import "./chunk-FJZWM2ON.js";
35
35
  import "./chunk-UN5Q7POQ.js";
36
- import "./chunk-JPH7PYSK.js";
36
+ import "./chunk-YRXV3E7J.js";
37
37
  import "./chunk-4RZRHTSZ.js";
38
38
  import "./chunk-KGZBYWZ3.js";
39
39
  import "./chunk-H5XL4KUS.js";
@@ -17,7 +17,7 @@ import {
17
17
  updateThread,
18
18
  withThreadLock,
19
19
  writeThread
20
- } from "./chunk-JPH7PYSK.js";
20
+ } from "./chunk-YRXV3E7J.js";
21
21
  import "./chunk-4RZRHTSZ.js";
22
22
  import "./chunk-KGZBYWZ3.js";
23
23
  import "./chunk-H5XL4KUS.js";
@@ -15,7 +15,7 @@ import {
15
15
  updateThread,
16
16
  withThreadLock,
17
17
  writeThread
18
- } from "./chunk-N5UGX3JL.js";
18
+ } from "./chunk-QB5MDOHL.js";
19
19
  import "./chunk-UWQ6UCIB.js";
20
20
  import "./chunk-77WWLBCI.js";
21
21
  import "./chunk-EHT2DRT4.js";
@@ -11,8 +11,8 @@ import {
11
11
  removeWorkspace,
12
12
  sameWorkspacePath,
13
13
  syncWorkspacesFromThreads
14
- } from "./chunk-IA4MPG7F.js";
15
- import "./chunk-3W5SL5EW.js";
14
+ } from "./chunk-O4324MXE.js";
15
+ import "./chunk-5HPMKLJ7.js";
16
16
  import "./chunk-N2WW62LF.js";
17
17
  import "./chunk-DD67JWTN.js";
18
18
  import "./chunk-2UG25RMK.js";
@@ -21,7 +21,7 @@ import "./chunk-NSTQ6QKD.js";
21
21
  import "./chunk-WWUABK6B.js";
22
22
  import "./chunk-FJZWM2ON.js";
23
23
  import "./chunk-UN5Q7POQ.js";
24
- import "./chunk-JPH7PYSK.js";
24
+ import "./chunk-YRXV3E7J.js";
25
25
  import "./chunk-4RZRHTSZ.js";
26
26
  import "./chunk-KGZBYWZ3.js";
27
27
  import "./chunk-H5XL4KUS.js";
@@ -9,9 +9,9 @@ import {
9
9
  removeWorkspace,
10
10
  sameWorkspacePath,
11
11
  syncWorkspacesFromThreads
12
- } from "./chunk-DBOFDEQ7.js";
13
- import "./chunk-HNB2HTCV.js";
14
- import "./chunk-N5UGX3JL.js";
12
+ } from "./chunk-V3BSO2O6.js";
13
+ import "./chunk-2IXKTAIT.js";
14
+ import "./chunk-QB5MDOHL.js";
15
15
  import "./chunk-2P4XKWV2.js";
16
16
  import "./chunk-6K64FJDD.js";
17
17
  import "./chunk-UWQ6UCIB.js";
@@ -50,7 +50,7 @@ import {
50
50
  slugify,
51
51
  suggestSlug,
52
52
  switchWorktreeBranch
53
- } from "./chunk-3W5SL5EW.js";
53
+ } from "./chunk-5HPMKLJ7.js";
54
54
  import "./chunk-N2WW62LF.js";
55
55
  import "./chunk-DD67JWTN.js";
56
56
  import "./chunk-2UG25RMK.js";
@@ -74,7 +74,7 @@ import {
74
74
  worktreeDisplayLabelForGroup,
75
75
  worktreeNameFromPath,
76
76
  worktreeSlugForTicket
77
- } from "./chunk-JPH7PYSK.js";
77
+ } from "./chunk-YRXV3E7J.js";
78
78
  import "./chunk-4RZRHTSZ.js";
79
79
  import "./chunk-KGZBYWZ3.js";
80
80
  import "./chunk-H5XL4KUS.js";
@@ -48,7 +48,7 @@ import {
48
48
  slugify,
49
49
  suggestSlug,
50
50
  switchWorktreeBranch
51
- } from "./chunk-HNB2HTCV.js";
51
+ } from "./chunk-2IXKTAIT.js";
52
52
  import {
53
53
  FAMOUS_SOCCER_TEAMS,
54
54
  allocateTeamName,
@@ -64,7 +64,7 @@ import {
64
64
  worktreeDisplayLabelForGroup,
65
65
  worktreeNameFromPath,
66
66
  worktreeSlugForTicket
67
- } from "./chunk-N5UGX3JL.js";
67
+ } from "./chunk-QB5MDOHL.js";
68
68
  import "./chunk-2P4XKWV2.js";
69
69
  import "./chunk-6K64FJDD.js";
70
70
  import "./chunk-UWQ6UCIB.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sideboard-ai/core",
3
- "version": "0.1.288",
3
+ "version": "0.1.289",
4
4
  "description": "Sideboard core — orchestration, agents, git worktrees, MCP server",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
File without changes
File without changes