@sideboard-ai/core 0.1.327 → 0.1.329

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 (69) hide show
  1. package/dist/{abletime-OW7LTFQD.js → abletime-5FBKBO3R.js} +4 -4
  2. package/dist/{abletime-NW4PJGHN.js → abletime-SO2YHMEI.js} +4 -4
  3. package/dist/{abletime-oauth-TPR2QDRI.js → abletime-oauth-EUC5FFMD.js} +5 -5
  4. package/dist/{abletime-oauth-KWQQRHOQ.js → abletime-oauth-I34WZZZL.js} +3 -3
  5. package/dist/{abletime-rest-5DCWN3P4.js → abletime-rest-EI5ZJ72Z.js} +3 -3
  6. package/dist/{abletime-rest-UJ6SXDBN.js → abletime-rest-HEQXSZAQ.js} +3 -3
  7. package/dist/agents/claude-runner.js +1 -1
  8. package/dist/{agents-XWIPONJR.js → agents-JH4WV2ZH.js} +7 -7
  9. package/dist/{agents-IYBY3JT5.js → agents-JXQKHY7Q.js} +7 -7
  10. package/dist/{app-settings-A5D364JD.js → app-settings-JAEV53LB.js} +1 -1
  11. package/dist/{app-settings-SA4HX3ZQ.js → app-settings-SHZWNJBV.js} +1 -1
  12. package/dist/{chunk-TUH4ICHQ.js → chunk-277I5IBI.js} +1 -1
  13. package/dist/{chunk-QMLDR63X.js → chunk-3DJQLQWU.js} +2 -2
  14. package/dist/{chunk-EJRCHCXM.js → chunk-7BAS6DF7.js} +2 -1
  15. package/dist/{chunk-ECY7WL6T.js → chunk-7L36GZA4.js} +2 -2
  16. package/dist/{chunk-SFXGD5KJ.js → chunk-7MPRTC6X.js} +1 -1
  17. package/dist/{chunk-ZPBOWO64.js → chunk-BAIPCN34.js} +2 -2
  18. package/dist/{chunk-SB5ADEZZ.js → chunk-D6V6F74A.js} +5 -5
  19. package/dist/{chunk-MO46K6WK.js → chunk-DBRQ5NNB.js} +8 -8
  20. package/dist/{chunk-NQGLDQYB.js → chunk-DFKLWWLY.js} +7 -7
  21. package/dist/{chunk-YUHZEIVG.js → chunk-E6LONPQH.js} +78 -24
  22. package/dist/{chunk-5Y2C7Q55.js → chunk-EW5D53VB.js} +1 -1
  23. package/dist/{chunk-D446IWPP.js → chunk-EY5BJAPV.js} +2 -1
  24. package/dist/{chunk-XBBZZHJY.js → chunk-F4OUZDIB.js} +5 -5
  25. package/dist/{chunk-Q4UPRQOS.js → chunk-G45SGI57.js} +3 -3
  26. package/dist/{chunk-DEB47BII.js → chunk-HCK3UCBJ.js} +80 -26
  27. package/dist/{chunk-EUIVQAPK.js → chunk-HJIA4X3L.js} +2 -2
  28. package/dist/{chunk-4F7THWIO.js → chunk-JQWCZGSO.js} +2 -2
  29. package/dist/{chunk-IXWPCOLQ.js → chunk-KUD24QYI.js} +37 -7
  30. package/dist/{chunk-4G3W23X3.js → chunk-MXQ66CLO.js} +3 -3
  31. package/dist/{chunk-UMXBH344.js → chunk-NCFYUUSC.js} +1 -1
  32. package/dist/{chunk-ULWPSBAB.js → chunk-NJV5YEKI.js} +13 -11
  33. package/dist/{chunk-2GEUFPQQ.js → chunk-NQHTYX35.js} +1 -1
  34. package/dist/{chunk-RDXODLEN.js → chunk-O7JSWISN.js} +3 -3
  35. package/dist/{chunk-R2C45NHT.js → chunk-P4QRDXRY.js} +2 -2
  36. package/dist/{chunk-RZJ3QJZT.js → chunk-PZ5MVD27.js} +34 -19
  37. package/dist/{chunk-Y6OHM672.js → chunk-QVLDZWHZ.js} +1 -1
  38. package/dist/{chunk-DACWFN4O.js → chunk-SKPX66MO.js} +5 -5
  39. package/dist/{chunk-JKHCADKB.js → chunk-U7EANR52.js} +2 -2
  40. package/dist/{chunk-KLVW3J2B.js → chunk-XOIJJRAQ.js} +2 -2
  41. package/dist/{chunk-CHYUUETG.js → chunk-YMV5O7KY.js} +3 -3
  42. package/dist/{chunk-ATQLP22S.js → chunk-ZT5YPYZE.js} +1 -1
  43. package/dist/{conductor-D62Q2XJC.js → conductor-6DIR7A4N.js} +5 -5
  44. package/dist/{conductor-CP7TW6TN.js → conductor-FA27ZGCV.js} +6 -6
  45. package/dist/{coordinator-prompt-J7O7JB26.js → coordinator-prompt-B6RHGEJK.js} +4 -4
  46. package/dist/{coordinator-prompt-3PJLU3UH.js → coordinator-prompt-KAZXK5FZ.js} +4 -4
  47. package/dist/{global-workspace-Y3UDZYJX.js → global-workspace-IOKHZCXD.js} +4 -4
  48. package/dist/{global-workspace-4CTLU2BV.js → global-workspace-JKINHUY3.js} +4 -4
  49. package/dist/index.cjs +107 -22
  50. package/dist/index.d.cts +30 -18
  51. package/dist/index.d.ts +30 -18
  52. package/dist/index.js +27 -25
  53. package/dist/{linear-CXWGH2TW.js → linear-7HSIGV5S.js} +2 -2
  54. package/dist/{linear-WLDCJ3AF.js → linear-FRJRK6KI.js} +2 -2
  55. package/dist/{linear-list-52LEDEWO.js → linear-list-I6DNJC6V.js} +1 -1
  56. package/dist/{linear-list-FGVN65JU.js → linear-list-LDMBSKYI.js} +1 -1
  57. package/dist/mcp/run-stdio.cjs +89 -21
  58. package/dist/mcp/run-stdio.js +16 -16
  59. package/dist/{optional-cli-INRVBBBG.js → optional-cli-FOSC4NVE.js} +3 -3
  60. package/dist/{optional-cli-FN4MGB6W.js → optional-cli-NSQZ2DYK.js} +4 -4
  61. package/dist/{orchestrator-EN3ZKD73.js → orchestrator-LI6EBD2Y.js} +11 -11
  62. package/dist/{orchestrator-W4TZBBDO.js → orchestrator-V35TLMXB.js} +10 -10
  63. package/dist/{thread-store-K2ZNGUSM.js → thread-store-NVFWKJFH.js} +2 -2
  64. package/dist/{thread-store-4WE24XA2.js → thread-store-PCIMS6RA.js} +2 -2
  65. package/dist/{workspaces-MM7CQYR6.js → workspaces-FJL3TL3K.js} +4 -4
  66. package/dist/{workspaces-WYCVZ6XH.js → workspaces-OLONQF2C.js} +4 -4
  67. package/dist/{worktree-JBNEMJ5Z.js → worktree-QSQJ2POO.js} +3 -3
  68. package/dist/{worktree-NNVRGPP4.js → worktree-TX4WXQZV.js} +3 -3
  69. package/package.json +1 -1
@@ -2153,16 +2153,6 @@ function isAskUserToolName(name) {
2153
2153
  const base = name.replace(/^mcp__sideboard__/i, "");
2154
2154
  return ASK_USER_TOOL_RE.test(name) || /^ask_user$/i.test(base);
2155
2155
  }
2156
- function lastTopLevelToolIsAskUser(parts) {
2157
- if (!parts?.length) return false;
2158
- for (let i = parts.length - 1; i >= 0; i--) {
2159
- const part = parts[i];
2160
- if (part.type === "tool" && !part.parentId) {
2161
- return isAskUserToolName(part.name);
2162
- }
2163
- }
2164
- return false;
2165
- }
2166
2156
  function questionsFromToolPart(part) {
2167
2157
  const fromInput = parsePlanQuestionsInput(part.input);
2168
2158
  if (fromInput.length) return fromInput;
@@ -2178,7 +2168,7 @@ function extractPendingPlanQuestions(parts) {
2178
2168
  if (!parts?.length) return null;
2179
2169
  for (let i = parts.length - 1; i >= 0; i--) {
2180
2170
  const p = parts[i];
2181
- if (p.type !== "tool" || !isAskUserToolName(p.name)) continue;
2171
+ if (p.type !== "tool" || p.parentId || !isAskUserToolName(p.name)) continue;
2182
2172
  const questions = questionsFromToolPart(p);
2183
2173
  if (!questions.length) continue;
2184
2174
  return {
@@ -2217,8 +2207,32 @@ function isIncompleteTaskState(state) {
2217
2207
  function needsCoordinatorAction(state) {
2218
2208
  return isIncompleteTaskState(state) || state === "input-required";
2219
2209
  }
2220
- function endedOnAskUser(parts) {
2221
- return lastTopLevelToolIsAskUser(parts);
2210
+ function turnWaitingOnAskUser(parts, dismissedQuestionSignature) {
2211
+ if (!parts?.length) return false;
2212
+ let ask = null;
2213
+ for (let i = parts.length - 1; i >= 0; i--) {
2214
+ const part = parts[i];
2215
+ if (part.type === "tool" && !part.parentId && isAskUserToolName(part.name)) {
2216
+ ask = part;
2217
+ break;
2218
+ }
2219
+ }
2220
+ if (!ask) return false;
2221
+ const dismissed = dismissedQuestionSignature?.trim();
2222
+ if (!dismissed) return true;
2223
+ const pending = extractPendingPlanQuestions([ask]);
2224
+ if (!pending?.signature) return false;
2225
+ return pending.signature !== dismissed;
2226
+ }
2227
+ function userRepliedAfterAgent(messages, lastAgent) {
2228
+ if (!messages || !lastAgent) return false;
2229
+ const index = messages.lastIndexOf(lastAgent);
2230
+ if (index < 0) return false;
2231
+ for (let i = index + 1; i < messages.length; i++) {
2232
+ const message = messages[i];
2233
+ if (message.role === "user" && message.origin !== "continue") return true;
2234
+ }
2235
+ return false;
2222
2236
  }
2223
2237
  function deriveTaskState(input) {
2224
2238
  if (input.stillRunning) {
@@ -2231,7 +2245,7 @@ function deriveTaskState(input) {
2231
2245
  case "stopped":
2232
2246
  return "canceled";
2233
2247
  default:
2234
- return endedOnAskUser(input.lastAgentParts) ? "input-required" : "completed";
2248
+ return !input.userAnswered && turnWaitingOnAskUser(input.lastAgentParts, input.dismissedQuestionSignature) ? "input-required" : "completed";
2235
2249
  }
2236
2250
  }
2237
2251
  var init_task_state = __esm({
@@ -4064,6 +4078,7 @@ function normalizeRemoteRelayUrl(raw) {
4064
4078
  url.pathname = REMOTE_RELAY_PATH;
4065
4079
  url.search = "";
4066
4080
  url.hash = "";
4081
+ if (url.hostname === "relay.sideboard.cloud") url.hostname = "relay.sideboard.build";
4067
4082
  return url.toString();
4068
4083
  }
4069
4084
  function remoteRelayUrl(configured) {
@@ -4078,7 +4093,7 @@ var init_protocol = __esm({
4078
4093
  "src/remote/protocol.ts"() {
4079
4094
  "use strict";
4080
4095
  REMOTE_RELAY_PATH = "/remote";
4081
- BAKED_REMOTE_RELAY_URL = `wss://relay.sideboard.cloud${REMOTE_RELAY_PATH}`;
4096
+ BAKED_REMOTE_RELAY_URL = `wss://relay.sideboard.build${REMOTE_RELAY_PATH}`;
4082
4097
  }
4083
4098
  });
4084
4099
 
@@ -22413,6 +22428,9 @@ function decisionBlockFromParts(parts, planMode, at = (/* @__PURE__ */ new Date(
22413
22428
  at
22414
22429
  );
22415
22430
  }
22431
+ function attentionOutranksAsk(existing) {
22432
+ return existing?.source === "reported" || existing?.source === "permission";
22433
+ }
22416
22434
  function withStampedQuestions(decision, existing) {
22417
22435
  if (decision.source !== "ask_user" || decision.questions?.length) return decision;
22418
22436
  if (existing?.source !== "ask_user" || !existing.questions?.length) return decision;
@@ -22426,12 +22444,37 @@ function agentBlockAfterTurn(input) {
22426
22444
  if (input.failed) return null;
22427
22445
  const decision = decisionBlockFromParts(input.parts, input.planMode);
22428
22446
  if (decision) {
22447
+ if (decision.source === "ask_user" && attentionOutranksAsk(input.existing)) {
22448
+ return input.existing ?? null;
22449
+ }
22429
22450
  const next = withStampedQuestions(decision, input.existing);
22430
22451
  if (isDismissedAskUserBlock(next, input.dismissedQuestionSignature)) {
22431
22452
  return input.existing?.source === "reported" ? input.existing : null;
22432
22453
  }
22433
22454
  return next;
22434
22455
  }
22456
+ const pending = extractPendingPlanQuestions(input.parts);
22457
+ if (pending && attentionOutranksAsk(input.existing)) {
22458
+ return input.existing ?? null;
22459
+ }
22460
+ if (pending) {
22461
+ const kept = withStampedQuestions(
22462
+ {
22463
+ ...makeAgentBlock(
22464
+ "ask_user",
22465
+ formatAskUserNotifyMessage(pending.questions),
22466
+ input.existing?.source === "ask_user" ? input.existing.at : void 0
22467
+ ),
22468
+ onScreen: true,
22469
+ questionSignature: pending.signature,
22470
+ questions: pending.questions
22471
+ },
22472
+ input.existing
22473
+ );
22474
+ if (!isDismissedAskUserBlock(kept, input.dismissedQuestionSignature)) return kept;
22475
+ } else if (input.existing?.source === "ask_user" && input.existing.onScreen && input.existing.questions?.length && !isDismissedAskUserBlock(input.existing, input.dismissedQuestionSignature)) {
22476
+ return input.existing;
22477
+ }
22435
22478
  if (input.existing && input.existing.source !== "reported" && lastTopLevelTool(input.parts)) {
22436
22479
  return null;
22437
22480
  }
@@ -22460,11 +22503,15 @@ function askBlocksEqual(a, b) {
22460
22503
  if (!a || !b) return false;
22461
22504
  return a.source === b.source && a.reason === b.reason && a.at === b.at && a.onScreen === b.onScreen && a.questionSignature === b.questionSignature;
22462
22505
  }
22463
- function askBlockAfterLiveParts(existing, parts) {
22506
+ function askBlockAfterLiveParts(existing, parts, dismissedQuestionSignature) {
22507
+ if (attentionOutranksAsk(existing)) return existing ?? null;
22508
+ if (isDismissedAskUserBlock(existing, dismissedQuestionSignature)) return null;
22509
+ const dismissed = dismissedQuestionSignature?.trim() ?? "";
22510
+ let pending = extractPendingPlanQuestions(parts);
22511
+ if (dismissed && pending?.signature === dismissed) pending = null;
22464
22512
  const last = lastTopLevelTool(parts);
22465
22513
  if (last?.type === "tool" && isAskUserToolName(last.name)) {
22466
22514
  if (existing?.source === "ask_user" && existing.onScreen) return existing;
22467
- const pending = extractPendingPlanQuestions(parts);
22468
22515
  const questions = pending?.questions ?? existing?.questions;
22469
22516
  if (!questions?.length) {
22470
22517
  return existing?.source === "ask_user" ? { ...existing, onScreen: true } : existing ?? null;
@@ -22477,13 +22524,32 @@ function askBlockAfterLiveParts(existing, parts) {
22477
22524
  questions
22478
22525
  };
22479
22526
  }
22527
+ if (pending) {
22528
+ if (existing?.source === "ask_user" && existing.onScreen && existing.questions?.length) {
22529
+ return existing;
22530
+ }
22531
+ const at = existing?.source === "ask_user" ? existing.at : void 0;
22532
+ return {
22533
+ ...makeAgentBlock("ask_user", formatAskUserNotifyMessage(pending.questions), at),
22534
+ onScreen: true,
22535
+ questionSignature: pending.signature,
22536
+ questions: pending.questions
22537
+ };
22538
+ }
22539
+ if (existing?.source === "ask_user" && existing.onScreen && existing.questions?.length) {
22540
+ return existing;
22541
+ }
22480
22542
  if (last && existing?.source === "ask_user") return null;
22481
22543
  return existing ?? null;
22482
22544
  }
22483
22545
  function syncAskUserBlockFromLive(threadId, parts) {
22484
22546
  const thread = readThread(threadId);
22485
22547
  if (!thread || thread.status === "archived") return;
22486
- const next = askBlockAfterLiveParts(thread.agentBlock, parts);
22548
+ const next = askBlockAfterLiveParts(
22549
+ thread.agentBlock,
22550
+ parts,
22551
+ thread.dismissedQuestionSignature
22552
+ );
22487
22553
  if (askBlocksEqual(thread.agentBlock, next)) return;
22488
22554
  updateThread(threadId, { agentBlock: next });
22489
22555
  }
@@ -23760,9 +23826,9 @@ var init_abletime_oauth = __esm({
23760
23826
  ABLETIME_OAUTH_CALLBACK_PATH = "/oauth/abletime/callback";
23761
23827
  ABLETIME_OAUTH_PORT = 19849;
23762
23828
  ABLETIME_OAUTH_LOCAL_CALLBACK = `http://127.0.0.1:${ABLETIME_OAUTH_PORT}/callback`;
23763
- ABLETIME_OAUTH_REDIRECT = `https://www.sideboard.cloud${ABLETIME_OAUTH_CALLBACK_PATH}`;
23829
+ ABLETIME_OAUTH_REDIRECT = `https://www.sideboard.build${ABLETIME_OAUTH_CALLBACK_PATH}`;
23764
23830
  BOUNCE_QUERY_KEYS = ["code", "state", "error", "error_description"];
23765
- BAKED_ABLETIME_OAUTH_CLIENT_ID = "https://www.sideboard.cloud/oauth/abletime-client.json";
23831
+ BAKED_ABLETIME_OAUTH_CLIENT_ID = "https://www.sideboard.build/oauth/abletime-client.json";
23766
23832
  ABLETIME_OAUTH_RESOURCE = `${DEFAULT_ABLETIME_HOST}/api/public/v2/mcp`;
23767
23833
  REFRESH_SKEW_MS3 = 5 * 6e4;
23768
23834
  refreshInFlight3 = null;
@@ -32213,7 +32279,9 @@ ${formatEnvReminder(projectNameForRepoPath(thread.repoPath || thread.worktreePat
32213
32279
  const taskState = deriveTaskState({
32214
32280
  status: thread.status,
32215
32281
  stillRunning,
32216
- lastAgentParts: lastAgent?.parts
32282
+ lastAgentParts: lastAgent?.parts,
32283
+ dismissedQuestionSignature: thread.dismissedQuestionSignature,
32284
+ userAnswered: userRepliedAfterAgent(thread.messages, lastAgent)
32217
32285
  });
32218
32286
  const block = thread.agentBlock?.reason?.trim() ? thread.agentBlock : null;
32219
32287
  return {
@@ -45,7 +45,7 @@ import {
45
45
  syncBoardPins,
46
46
  workspaceTagTargetRef,
47
47
  writeAgentBlock
48
- } from "../chunk-YUHZEIVG.js";
48
+ } from "../chunk-E6LONPQH.js";
49
49
  import "../chunk-DC3VZXMA.js";
50
50
  import {
51
51
  SIDEBOARD_THREAD_ID_ENV,
@@ -55,7 +55,7 @@ import {
55
55
  shouldRegisterMcpWaitForTurn,
56
56
  sideboardMcpProfile,
57
57
  worktreeMcpToolNames
58
- } from "../chunk-MO46K6WK.js";
58
+ } from "../chunk-DBRQ5NNB.js";
59
59
  import {
60
60
  mcpWaitForJobTimeoutMs,
61
61
  mcpWaitForTurnTimeoutMs,
@@ -66,7 +66,7 @@ import {
66
66
  waitForDetachedJob,
67
67
  waitForTurnToolResult,
68
68
  workspaceAgentChatSummaries
69
- } from "../chunk-RZJ3QJZT.js";
69
+ } from "../chunk-PZ5MVD27.js";
70
70
  import {
71
71
  HUGE_TOOL_RESULT_SUMMARY,
72
72
  clipToolResultForStore,
@@ -87,13 +87,13 @@ import {
87
87
  searchAbleTimeTasks,
88
88
  toAbleTimeIssueInfo,
89
89
  updateAbleTimeTask
90
- } from "../chunk-4G3W23X3.js";
91
- import "../chunk-ZPBOWO64.js";
92
- import "../chunk-SB5ADEZZ.js";
90
+ } from "../chunk-MXQ66CLO.js";
91
+ import "../chunk-BAIPCN34.js";
92
+ import "../chunk-D6V6F74A.js";
93
93
  import {
94
94
  normalizeServiceOrigin
95
- } from "../chunk-2GEUFPQQ.js";
96
- import "../chunk-4F7THWIO.js";
95
+ } from "../chunk-NQHTYX35.js";
96
+ import "../chunk-JQWCZGSO.js";
97
97
  import {
98
98
  PRESENT_PLAN_REQUIRES_PLAN_MODE,
99
99
  PRESENT_PLAN_TOOL_DESCRIPTION,
@@ -103,7 +103,7 @@ import {
103
103
  import {
104
104
  GLOBAL_WORKSPACE_ID,
105
105
  isCloudCoordinatorThread
106
- } from "../chunk-Q4UPRQOS.js";
106
+ } from "../chunk-G45SGI57.js";
107
107
  import {
108
108
  canonicalizeRepoPath,
109
109
  formatGhLandError,
@@ -116,7 +116,7 @@ import {
116
116
  resolveProjectRemoteTag,
117
117
  resolveRepoRoot,
118
118
  warmGithubAgentAuth
119
- } from "../chunk-JKHCADKB.js";
119
+ } from "../chunk-U7EANR52.js";
120
120
  import "../chunk-6U6QRUHY.js";
121
121
  import "../chunk-E63AM3PW.js";
122
122
  import {
@@ -129,7 +129,7 @@ import {
129
129
  listLinearProjects,
130
130
  listLinearTeams,
131
131
  updateLinearIssue
132
- } from "../chunk-TUH4ICHQ.js";
132
+ } from "../chunk-277I5IBI.js";
133
133
  import {
134
134
  formatGitHubSearchUpdatedSince,
135
135
  issueMatchesUpdatedSince,
@@ -149,7 +149,7 @@ import {
149
149
  import {
150
150
  httpFetch
151
151
  } from "../chunk-2GPQZZLY.js";
152
- import "../chunk-UMXBH344.js";
152
+ import "../chunk-NCFYUUSC.js";
153
153
  import "../chunk-4YXZOXMT.js";
154
154
  import {
155
155
  gh,
@@ -168,7 +168,7 @@ import {
168
168
  scheduleNeedsCaffeinate,
169
169
  updateSchedule,
170
170
  updateThread
171
- } from "../chunk-5Y2C7Q55.js";
171
+ } from "../chunk-EW5D53VB.js";
172
172
  import "../chunk-WMZIANPV.js";
173
173
  import {
174
174
  formatWorkspaceProfileSuffix,
@@ -180,7 +180,7 @@ import {
180
180
  resolveProjectReviewLabel,
181
181
  resolveViewerProfile,
182
182
  resolveViewerProfileForRepo
183
- } from "../chunk-EJRCHCXM.js";
183
+ } from "../chunk-7BAS6DF7.js";
184
184
  import "../chunk-NSTQ6QKD.js";
185
185
  import {
186
186
  dropNestedElectronEnvFromProcess
@@ -2945,7 +2945,7 @@ async function startMcpServer() {
2945
2945
  );
2946
2946
  }
2947
2947
  try {
2948
- const { maxConcurrentAgents } = await import("../app-settings-SA4HX3ZQ.js");
2948
+ const { maxConcurrentAgents } = await import("../app-settings-SHZWNJBV.js");
2949
2949
  orch.setMaxConcurrent(maxConcurrentAgents());
2950
2950
  } catch {
2951
2951
  }
@@ -3493,7 +3493,7 @@ async function startMcpServer() {
3493
3493
  if (!worktreeProfile) {
3494
3494
  registerConnectedIssueVendorTools(server);
3495
3495
  const { getCaffeinateHold, setCaffeinateHold } = await import("../caffeinate-hold-H7TTUDGM.js");
3496
- const { resolveNewThreadOptions, resolveThreadDefaults } = await import("../app-settings-SA4HX3ZQ.js");
3496
+ const { resolveNewThreadOptions, resolveThreadDefaults } = await import("../app-settings-SHZWNJBV.js");
3497
3497
  const accountDefaults = resolveThreadDefaults();
3498
3498
  const accountDefaultsHint = `Account defaults: agent=${accountDefaults.agent}, model=${accountDefaults.model?.trim() || "Auto"}, effort=${accountDefaults.effort}`;
3499
3499
  server.tool(
@@ -4,16 +4,16 @@ import {
4
4
  OPTIONAL_SERVICES,
5
5
  isOptionalServiceId,
6
6
  optionalServiceSpec
7
- } from "./chunk-2GEUFPQQ.js";
7
+ } from "./chunk-NQHTYX35.js";
8
8
  import {
9
9
  installNpmGlobalPackage,
10
10
  whichOnPath
11
- } from "./chunk-4F7THWIO.js";
11
+ } from "./chunk-JQWCZGSO.js";
12
12
  import "./chunk-2GPQZZLY.js";
13
13
  import {
14
14
  enrichPathWithNpmGlobalBin
15
15
  } from "./chunk-YBTSZ2SW.js";
16
- import "./chunk-EJRCHCXM.js";
16
+ import "./chunk-7BAS6DF7.js";
17
17
  import "./chunk-NSTQ6QKD.js";
18
18
  import "./chunk-WWUABK6B.js";
19
19
  import "./chunk-FJZWM2ON.js";
@@ -3,12 +3,12 @@ import {
3
3
  detectOptionalServiceClis,
4
4
  installOptionalServiceCli,
5
5
  optionalCliPresence
6
- } from "./chunk-QMLDR63X.js";
7
- import "./chunk-ECY7WL6T.js";
8
- import "./chunk-KLVW3J2B.js";
6
+ } from "./chunk-3DJQLQWU.js";
7
+ import "./chunk-7L36GZA4.js";
8
+ import "./chunk-XOIJJRAQ.js";
9
9
  import "./chunk-JAT3JFOS.js";
10
10
  import "./chunk-2TUE6JKQ.js";
11
- import "./chunk-D446IWPP.js";
11
+ import "./chunk-EY5BJAPV.js";
12
12
  import "./chunk-4TR3HZFT.js";
13
13
  import "./chunk-WDRMZKVB.js";
14
14
  import "./chunk-KI45T4DI.js";
@@ -9,24 +9,24 @@ import {
9
9
  resolveSendFollowUp,
10
10
  startOrchestration,
11
11
  waitForPidExit
12
- } from "./chunk-DEB47BII.js";
13
- import "./chunk-ECY7WL6T.js";
12
+ } from "./chunk-HCK3UCBJ.js";
13
+ import "./chunk-7L36GZA4.js";
14
14
  import "./chunk-PGPSIEMW.js";
15
15
  import "./chunk-W3ZLE4PO.js";
16
- import "./chunk-NQGLDQYB.js";
17
- import "./chunk-KLVW3J2B.js";
16
+ import "./chunk-DFKLWWLY.js";
17
+ import "./chunk-XOIJJRAQ.js";
18
18
  import "./chunk-S5CJUIPY.js";
19
- import "./chunk-ATQLP22S.js";
20
- import "./chunk-IXWPCOLQ.js";
19
+ import "./chunk-ZT5YPYZE.js";
20
+ import "./chunk-KUD24QYI.js";
21
21
  import "./chunk-OOXRMTU6.js";
22
22
  import "./chunk-7H655NEW.js";
23
- import "./chunk-RDXODLEN.js";
24
- import "./chunk-R2C45NHT.js";
25
- import "./chunk-Y6OHM672.js";
23
+ import "./chunk-O7JSWISN.js";
24
+ import "./chunk-P4QRDXRY.js";
25
+ import "./chunk-QVLDZWHZ.js";
26
26
  import "./chunk-QKHEVSB5.js";
27
27
  import "./chunk-RSA47QYR.js";
28
28
  import "./chunk-JAT3JFOS.js";
29
- import "./chunk-ULWPSBAB.js";
29
+ import "./chunk-NJV5YEKI.js";
30
30
  import "./chunk-N6ZF3XRP.js";
31
31
  import "./chunk-AXQ4ZWHK.js";
32
32
  import "./chunk-NURZOXGN.js";
@@ -35,7 +35,7 @@ import "./chunk-6K64FJDD.js";
35
35
  import "./chunk-LG6RJBIY.js";
36
36
  import "./chunk-2TUE6JKQ.js";
37
37
  import "./chunk-SUZOPJZC.js";
38
- import "./chunk-D446IWPP.js";
38
+ import "./chunk-EY5BJAPV.js";
39
39
  import "./chunk-4TR3HZFT.js";
40
40
  import "./chunk-WDRMZKVB.js";
41
41
  import "./chunk-KI45T4DI.js";
@@ -11,28 +11,28 @@ import {
11
11
  resolveSendFollowUp,
12
12
  startOrchestration,
13
13
  waitForPidExit
14
- } from "./chunk-YUHZEIVG.js";
14
+ } from "./chunk-E6LONPQH.js";
15
15
  import "./chunk-DC3VZXMA.js";
16
- import "./chunk-MO46K6WK.js";
17
- import "./chunk-RZJ3QJZT.js";
16
+ import "./chunk-DBRQ5NNB.js";
17
+ import "./chunk-PZ5MVD27.js";
18
18
  import "./chunk-5MXLDDYF.js";
19
19
  import "./chunk-LX5R5JOR.js";
20
- import "./chunk-2GEUFPQQ.js";
21
- import "./chunk-4F7THWIO.js";
20
+ import "./chunk-NQHTYX35.js";
21
+ import "./chunk-JQWCZGSO.js";
22
22
  import "./chunk-4GK32AYX.js";
23
- import "./chunk-Q4UPRQOS.js";
24
- import "./chunk-JKHCADKB.js";
23
+ import "./chunk-G45SGI57.js";
24
+ import "./chunk-U7EANR52.js";
25
25
  import "./chunk-6U6QRUHY.js";
26
26
  import "./chunk-E63AM3PW.js";
27
27
  import "./chunk-OYRN356W.js";
28
28
  import "./chunk-N2WW62LF.js";
29
29
  import "./chunk-2GPQZZLY.js";
30
- import "./chunk-UMXBH344.js";
30
+ import "./chunk-NCFYUUSC.js";
31
31
  import "./chunk-4YXZOXMT.js";
32
32
  import "./chunk-YBTSZ2SW.js";
33
- import "./chunk-5Y2C7Q55.js";
33
+ import "./chunk-EW5D53VB.js";
34
34
  import "./chunk-WMZIANPV.js";
35
- import "./chunk-EJRCHCXM.js";
35
+ import "./chunk-7BAS6DF7.js";
36
36
  import "./chunk-NSTQ6QKD.js";
37
37
  import "./chunk-WWUABK6B.js";
38
38
  import "./chunk-FJZWM2ON.js";
@@ -15,10 +15,10 @@ import {
15
15
  updateThread,
16
16
  withThreadLock,
17
17
  writeThread
18
- } from "./chunk-Y6OHM672.js";
18
+ } from "./chunk-QVLDZWHZ.js";
19
19
  import "./chunk-N6ZF3XRP.js";
20
20
  import "./chunk-LG6RJBIY.js";
21
- import "./chunk-D446IWPP.js";
21
+ import "./chunk-EY5BJAPV.js";
22
22
  import "./chunk-4TR3HZFT.js";
23
23
  import "./chunk-WDRMZKVB.js";
24
24
  import "./chunk-KI45T4DI.js";
@@ -17,9 +17,9 @@ import {
17
17
  updateThread,
18
18
  withThreadLock,
19
19
  writeThread
20
- } from "./chunk-5Y2C7Q55.js";
20
+ } from "./chunk-EW5D53VB.js";
21
21
  import "./chunk-WMZIANPV.js";
22
- import "./chunk-EJRCHCXM.js";
22
+ import "./chunk-7BAS6DF7.js";
23
23
  import "./chunk-NSTQ6QKD.js";
24
24
  import "./chunk-WWUABK6B.js";
25
25
  import "./chunk-FJZWM2ON.js";
@@ -11,14 +11,14 @@ import {
11
11
  removeWorkspace,
12
12
  sameWorkspacePath,
13
13
  syncWorkspacesFromThreads
14
- } from "./chunk-Q4UPRQOS.js";
15
- import "./chunk-JKHCADKB.js";
14
+ } from "./chunk-G45SGI57.js";
15
+ import "./chunk-U7EANR52.js";
16
16
  import "./chunk-N2WW62LF.js";
17
17
  import "./chunk-4YXZOXMT.js";
18
18
  import "./chunk-YBTSZ2SW.js";
19
- import "./chunk-5Y2C7Q55.js";
19
+ import "./chunk-EW5D53VB.js";
20
20
  import "./chunk-WMZIANPV.js";
21
- import "./chunk-EJRCHCXM.js";
21
+ import "./chunk-7BAS6DF7.js";
22
22
  import "./chunk-NSTQ6QKD.js";
23
23
  import "./chunk-WWUABK6B.js";
24
24
  import "./chunk-FJZWM2ON.js";
@@ -9,15 +9,15 @@ import {
9
9
  removeWorkspace,
10
10
  sameWorkspacePath,
11
11
  syncWorkspacesFromThreads
12
- } from "./chunk-RDXODLEN.js";
13
- import "./chunk-R2C45NHT.js";
14
- import "./chunk-Y6OHM672.js";
12
+ } from "./chunk-O7JSWISN.js";
13
+ import "./chunk-P4QRDXRY.js";
14
+ import "./chunk-QVLDZWHZ.js";
15
15
  import "./chunk-QKHEVSB5.js";
16
16
  import "./chunk-N6ZF3XRP.js";
17
17
  import "./chunk-6K64FJDD.js";
18
18
  import "./chunk-LG6RJBIY.js";
19
19
  import "./chunk-2TUE6JKQ.js";
20
- import "./chunk-D446IWPP.js";
20
+ import "./chunk-EY5BJAPV.js";
21
21
  import "./chunk-4TR3HZFT.js";
22
22
  import "./chunk-WDRMZKVB.js";
23
23
  import "./chunk-KI45T4DI.js";
@@ -51,7 +51,7 @@ import {
51
51
  slugify,
52
52
  suggestSlug,
53
53
  switchWorktreeBranch
54
- } from "./chunk-JKHCADKB.js";
54
+ } from "./chunk-U7EANR52.js";
55
55
  import "./chunk-N2WW62LF.js";
56
56
  import "./chunk-4YXZOXMT.js";
57
57
  import "./chunk-YBTSZ2SW.js";
@@ -70,9 +70,9 @@ import {
70
70
  worktreeDisplayLabelForGroup,
71
71
  worktreeNameFromPath,
72
72
  worktreeSlugForTicket
73
- } from "./chunk-5Y2C7Q55.js";
73
+ } from "./chunk-EW5D53VB.js";
74
74
  import "./chunk-WMZIANPV.js";
75
- import "./chunk-EJRCHCXM.js";
75
+ import "./chunk-7BAS6DF7.js";
76
76
  import "./chunk-NSTQ6QKD.js";
77
77
  import "./chunk-WWUABK6B.js";
78
78
  import "./chunk-FJZWM2ON.js";
@@ -49,7 +49,7 @@ import {
49
49
  slugify,
50
50
  suggestSlug,
51
51
  switchWorktreeBranch
52
- } from "./chunk-R2C45NHT.js";
52
+ } from "./chunk-P4QRDXRY.js";
53
53
  import {
54
54
  FAMOUS_SOCCER_TEAMS,
55
55
  allocateTeamName,
@@ -65,13 +65,13 @@ import {
65
65
  worktreeDisplayLabelForGroup,
66
66
  worktreeNameFromPath,
67
67
  worktreeSlugForTicket
68
- } from "./chunk-Y6OHM672.js";
68
+ } from "./chunk-QVLDZWHZ.js";
69
69
  import "./chunk-QKHEVSB5.js";
70
70
  import "./chunk-N6ZF3XRP.js";
71
71
  import "./chunk-6K64FJDD.js";
72
72
  import "./chunk-LG6RJBIY.js";
73
73
  import "./chunk-2TUE6JKQ.js";
74
- import "./chunk-D446IWPP.js";
74
+ import "./chunk-EY5BJAPV.js";
75
75
  import "./chunk-4TR3HZFT.js";
76
76
  import "./chunk-WDRMZKVB.js";
77
77
  import "./chunk-KI45T4DI.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sideboard-ai/core",
3
- "version": "0.1.327",
3
+ "version": "0.1.329",
4
4
  "description": "Sideboard core — orchestration, agents, git worktrees, MCP server",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",