@sideboard-ai/core 0.1.294 → 0.1.296

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 (45) hide show
  1. package/dist/agents/claude-runner.cjs +55 -0
  2. package/dist/agents/claude-runner.js +57 -1
  3. package/dist/agents/cursor-runner.cjs +128 -50
  4. package/dist/agents/cursor-runner.js +63 -44
  5. package/dist/{agents-2PDBDZPS.js → agents-DZTPUKVF.js} +5 -5
  6. package/dist/{agents-73JXQXF2.js → agents-ICHYDSCD.js} +8 -8
  7. package/dist/{chunk-SVQTKVXH.js → chunk-2O3ICR77.js} +4 -4
  8. package/dist/{chunk-YKO6HG74.js → chunk-67BWWLEB.js} +6 -6
  9. package/dist/{chunk-JEYJGQ33.js → chunk-6GTABVNG.js} +7 -7
  10. package/dist/{chunk-YEIPPZ5W.js → chunk-BGEECLKH.js} +2 -2
  11. package/dist/{chunk-AFLNFGGB.js → chunk-ED4ZXQVO.js} +1 -0
  12. package/dist/{chunk-MIVX7QKI.js → chunk-HO5R3ZRH.js} +1 -0
  13. package/dist/{chunk-7UUILVMV.js → chunk-IOY2LF3Y.js} +1 -1
  14. package/dist/{chunk-K6IOJI3L.js → chunk-J54UPHXZ.js} +71 -2
  15. package/dist/{chunk-ZEP6JIRF.js → chunk-JWXJXEA3.js} +1 -1
  16. package/dist/{chunk-YSLCWCMJ.js → chunk-Q3DPZ4DE.js} +1 -1
  17. package/dist/{chunk-NYBFYFK7.js → chunk-QDA6NXRA.js} +1 -0
  18. package/dist/{chunk-CECZUHA5.js → chunk-QT36F4TD.js} +55 -26
  19. package/dist/{chunk-YRXV3E7J.js → chunk-TVN4TDFB.js} +9 -0
  20. package/dist/{chunk-6SGYGYH7.js → chunk-VXNZG4J6.js} +1 -1
  21. package/dist/{chunk-BYAFYLLZ.js → chunk-W2A63ZOK.js} +179 -42
  22. package/dist/{chunk-E7G7RY6T.js → chunk-WQREAX35.js} +2 -2
  23. package/dist/{chunk-QB5MDOHL.js → chunk-WZLV4WNS.js} +9 -0
  24. package/dist/{chunk-BJUHZSZQ.js → chunk-ZXWRNA4G.js} +5 -5
  25. package/dist/{conductor-7DEMFEIO.js → conductor-HJFDYIZD.js} +5 -5
  26. package/dist/{conductor-ZQZTYXSX.js → conductor-ZXDIA6OF.js} +6 -6
  27. package/dist/{coordinator-prompt-AROMFCP2.js → coordinator-prompt-ILHSVPOG.js} +3 -3
  28. package/dist/{coordinator-prompt-K6XHUG3N.js → coordinator-prompt-L3V2CMWX.js} +3 -3
  29. package/dist/{global-workspace-4WAU4PAL.js → global-workspace-47G453ZU.js} +3 -3
  30. package/dist/{global-workspace-PX4GUVLW.js → global-workspace-NMRUGGFF.js} +3 -3
  31. package/dist/index.cjs +1039 -700
  32. package/dist/index.d.cts +25 -4
  33. package/dist/index.d.ts +25 -4
  34. package/dist/index.js +299 -125
  35. package/dist/mcp/run-stdio.cjs +250 -144
  36. package/dist/mcp/run-stdio.js +70 -11
  37. package/dist/{orchestrator-LIEGSQ6M.js → orchestrator-MR7TCIPP.js} +7 -7
  38. package/dist/{orchestrator-YNEEEP6O.js → orchestrator-ZQU62CES.js} +10 -10
  39. package/dist/{thread-store-DPKESDFR.js → thread-store-H6D6MDUM.js} +1 -1
  40. package/dist/{thread-store-X6S2GIR5.js → thread-store-SADLLKRE.js} +1 -1
  41. package/dist/{workspaces-MFU3IGAP.js → workspaces-PGY4UWZ3.js} +3 -3
  42. package/dist/{workspaces-U7SSD27C.js → workspaces-WGZPRQJX.js} +3 -3
  43. package/dist/{worktree-TQKASYPZ.js → worktree-3MF5J5XZ.js} +2 -2
  44. package/dist/{worktree-2VSHRI72.js → worktree-JZXDAKQF.js} +2 -2
  45. package/package.json +1 -1
@@ -12,6 +12,7 @@ import {
12
12
  applyWorkspaceTags,
13
13
  assembleHomeBoard,
14
14
  chatBlockedSuffix,
15
+ clampBlockReason,
15
16
  clampMcpIssueLimit,
16
17
  createSchedule,
17
18
  dedupeBoardIssues,
@@ -43,14 +44,16 @@ import {
43
44
  resolveOrchChildFollowUp,
44
45
  resolveScheduleThreadId,
45
46
  scheduleNeedsCaffeinate,
47
+ setToolPermissionPublisher,
46
48
  sliceRunLogOutput,
47
49
  stampAskUserBlock,
48
50
  stampNotifyBlock,
49
51
  stampPlanBlock,
50
52
  syncBoardPins,
51
53
  updateSchedule,
52
- workspaceTagTargetRef
53
- } from "../chunk-CECZUHA5.js";
54
+ workspaceTagTargetRef,
55
+ writeAgentBlock
56
+ } from "../chunk-QT36F4TD.js";
54
57
  import "../chunk-LX5R5JOR.js";
55
58
  import {
56
59
  commentAbleTimeTask,
@@ -93,7 +96,7 @@ import {
93
96
  sideboardMcpProfile,
94
97
  trustSystemCertificates,
95
98
  worktreeMcpToolNames
96
- } from "../chunk-SVQTKVXH.js";
99
+ } from "../chunk-2O3ICR77.js";
97
100
  import "../chunk-WZCPZVUC.js";
98
101
  import "../chunk-7IAMHN2N.js";
99
102
  import "../chunk-PXMLMBMI.js";
@@ -110,16 +113,18 @@ import {
110
113
  waitForDetachedJob,
111
114
  waitForTurnToolResult,
112
115
  workspaceAgentChatSummaries
113
- } from "../chunk-BJUHZSZQ.js";
116
+ } from "../chunk-ZXWRNA4G.js";
114
117
  import {
118
+ HUGE_TOOL_RESULT_SUMMARY,
115
119
  clipToolResultForStore,
120
+ formatUnknownDetail,
116
121
  isInternalAgentStatusText,
117
122
  looksLikeHugeToolResultDump
118
- } from "../chunk-AFLNFGGB.js";
123
+ } from "../chunk-ED4ZXQVO.js";
119
124
  import {
120
125
  GLOBAL_WORKSPACE_ID,
121
126
  isCloudCoordinatorThread
122
- } from "../chunk-E7G7RY6T.js";
127
+ } from "../chunk-WQREAX35.js";
123
128
  import {
124
129
  canonicalizeRepoPath,
125
130
  formatGhLandError,
@@ -130,7 +135,7 @@ import {
130
135
  resolveListPrsOptions,
131
136
  resolveRepoRoot,
132
137
  warmGithubAgentAuth
133
- } from "../chunk-6SGYGYH7.js";
138
+ } from "../chunk-VXNZG4J6.js";
134
139
  import {
135
140
  CLI_DIR
136
141
  } from "../chunk-N2WW62LF.js";
@@ -160,8 +165,10 @@ import {
160
165
  import "../chunk-FJZWM2ON.js";
161
166
  import "../chunk-UN5Q7POQ.js";
162
167
  import {
163
- normalizeWorkspaceTags
164
- } from "../chunk-YRXV3E7J.js";
168
+ normalizeWorkspaceTags,
169
+ readThread,
170
+ updateThread
171
+ } from "../chunk-TVN4TDFB.js";
165
172
  import "../chunk-4RZRHTSZ.js";
166
173
  import "../chunk-KGZBYWZ3.js";
167
174
  import {
@@ -222,11 +229,30 @@ function clipMcpToolResult(result, cwd) {
222
229
  };
223
230
  }
224
231
 
232
+ // src/agents/cursor-tool-guard.ts
233
+ var CURSOR_TOOL_RECOVERY_HINT = "Continue with a smaller request. If you were reading a large file or API payload, pass offset and limit or write the output to .context/cli/ and read a slice. Do not retry the same call.";
234
+ function cursorToolErrorText(err) {
235
+ const raw = formatUnknownDetail(err).replace(/\s+/g, " ").trim();
236
+ const message = looksLikeHugeToolResultDump(raw) ? HUGE_TOOL_RESULT_SUMMARY : (raw || "unknown tool error").slice(0, 500);
237
+ return `Error: ${message}
238
+ ${CURSOR_TOOL_RECOVERY_HINT}`;
239
+ }
240
+
225
241
  // src/mcp/wrap-mcp-tools.ts
226
242
  function wrapToolCallback(fn, cwd) {
227
243
  return async (...args) => {
228
- const result = await fn(...args);
229
- return clipMcpToolResult(result, cwd());
244
+ try {
245
+ const result = await fn(...args);
246
+ return clipMcpToolResult(
247
+ result,
248
+ cwd()
249
+ );
250
+ } catch (err) {
251
+ return {
252
+ isError: true,
253
+ content: [{ type: "text", text: cursorToolErrorText(err) }]
254
+ };
255
+ }
230
256
  };
231
257
  }
232
258
  function wrapRegistrar(orig, cwd) {
@@ -3542,6 +3568,39 @@ function registerScheduleTools(server) {
3542
3568
  // src/agent-rpc/handlers.ts
3543
3569
  import { randomUUID } from "crypto";
3544
3570
  import { isAbsolute } from "path";
3571
+
3572
+ // src/remote/phone-permission.ts
3573
+ var push = null;
3574
+ function notifyPhonePermission(chatId, prompt) {
3575
+ const id = chatId.trim();
3576
+ if (!id) return;
3577
+ push?.(id, prompt);
3578
+ }
3579
+
3580
+ // src/agent-rpc/permission-handler.ts
3581
+ setToolPermissionPublisher({
3582
+ show(item) {
3583
+ const thread = readThread(item.threadId);
3584
+ if (!thread || thread.status === "archived") return false;
3585
+ writeAgentBlock(item.threadId, {
3586
+ source: "permission",
3587
+ reason: clampBlockReason(item.prompt.title),
3588
+ at: (/* @__PURE__ */ new Date()).toISOString(),
3589
+ permission: item.prompt
3590
+ });
3591
+ notifyPhonePermission(item.threadId, item.prompt);
3592
+ return true;
3593
+ },
3594
+ clear(threadId, id) {
3595
+ const thread = readThread(threadId);
3596
+ if (thread?.agentBlock?.source === "permission" && thread.agentBlock.permission?.id === id) {
3597
+ updateThread(threadId, { agentBlock: null });
3598
+ notifyPhonePermission(threadId, null);
3599
+ }
3600
+ }
3601
+ });
3602
+
3603
+ // src/agent-rpc/handlers.ts
3545
3604
  function presentArtifactResult(input) {
3546
3605
  const id = input.artifact_id?.trim() || `artifact_${Date.now().toString(36)}_${randomUUID().slice(0, 8)}`;
3547
3606
  return {
@@ -11,20 +11,20 @@ import {
11
11
  resolveSendFollowUp,
12
12
  startOrchestration,
13
13
  waitForPidExit
14
- } from "./chunk-CECZUHA5.js";
14
+ } from "./chunk-QT36F4TD.js";
15
15
  import "./chunk-LX5R5JOR.js";
16
16
  import "./chunk-XCXUVX7I.js";
17
17
  import "./chunk-4GK32AYX.js";
18
18
  import "./chunk-5DZUWGKV.js";
19
- import "./chunk-SVQTKVXH.js";
19
+ import "./chunk-2O3ICR77.js";
20
20
  import "./chunk-WZCPZVUC.js";
21
21
  import "./chunk-7IAMHN2N.js";
22
22
  import "./chunk-PXMLMBMI.js";
23
23
  import "./chunk-2GPQZZLY.js";
24
- import "./chunk-BJUHZSZQ.js";
25
- import "./chunk-AFLNFGGB.js";
26
- import "./chunk-E7G7RY6T.js";
27
- import "./chunk-6SGYGYH7.js";
24
+ import "./chunk-ZXWRNA4G.js";
25
+ import "./chunk-ED4ZXQVO.js";
26
+ import "./chunk-WQREAX35.js";
27
+ import "./chunk-VXNZG4J6.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-YRXV3E7J.js";
36
+ import "./chunk-TVN4TDFB.js";
37
37
  import "./chunk-4RZRHTSZ.js";
38
38
  import "./chunk-KGZBYWZ3.js";
39
39
  import "./chunk-H5XL4KUS.js";
@@ -9,28 +9,28 @@ import {
9
9
  resolveSendFollowUp,
10
10
  startOrchestration,
11
11
  waitForPidExit
12
- } from "./chunk-BYAFYLLZ.js";
12
+ } from "./chunk-W2A63ZOK.js";
13
13
  import "./chunk-PGPSIEMW.js";
14
- import "./chunk-JEYJGQ33.js";
14
+ import "./chunk-6GTABVNG.js";
15
15
  import "./chunk-VGNLMGBK.js";
16
- import "./chunk-YKO6HG74.js";
17
- import "./chunk-YSLCWCMJ.js";
16
+ import "./chunk-67BWWLEB.js";
17
+ import "./chunk-Q3DPZ4DE.js";
18
18
  import "./chunk-7H655NEW.js";
19
19
  import "./chunk-QDDTVIWE.js";
20
20
  import "./chunk-B42H6GJR.js";
21
- import "./chunk-YEIPPZ5W.js";
22
- import "./chunk-ZEP6JIRF.js";
23
- import "./chunk-QB5MDOHL.js";
21
+ import "./chunk-BGEECLKH.js";
22
+ import "./chunk-JWXJXEA3.js";
23
+ import "./chunk-WZLV4WNS.js";
24
24
  import "./chunk-2P4XKWV2.js";
25
25
  import "./chunk-33KDPEK4.js";
26
26
  import "./chunk-JAT3JFOS.js";
27
27
  import "./chunk-AXQ4ZWHK.js";
28
- import "./chunk-7UUILVMV.js";
29
- import "./chunk-MIVX7QKI.js";
28
+ import "./chunk-IOY2LF3Y.js";
29
+ import "./chunk-HO5R3ZRH.js";
30
30
  import "./chunk-6K64FJDD.js";
31
31
  import "./chunk-UWQ6UCIB.js";
32
32
  import "./chunk-QVN2WOKJ.js";
33
- import "./chunk-NYBFYFK7.js";
33
+ import "./chunk-QDA6NXRA.js";
34
34
  import "./chunk-RSATPXU4.js";
35
35
  import "./chunk-77WWLBCI.js";
36
36
  import "./chunk-4TR3HZFT.js";
@@ -17,7 +17,7 @@ import {
17
17
  updateThread,
18
18
  withThreadLock,
19
19
  writeThread
20
- } from "./chunk-YRXV3E7J.js";
20
+ } from "./chunk-TVN4TDFB.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-QB5MDOHL.js";
18
+ } from "./chunk-WZLV4WNS.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-E7G7RY6T.js";
15
- import "./chunk-6SGYGYH7.js";
14
+ } from "./chunk-WQREAX35.js";
15
+ import "./chunk-VXNZG4J6.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-YRXV3E7J.js";
24
+ import "./chunk-TVN4TDFB.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-YEIPPZ5W.js";
13
- import "./chunk-ZEP6JIRF.js";
14
- import "./chunk-QB5MDOHL.js";
12
+ } from "./chunk-BGEECLKH.js";
13
+ import "./chunk-JWXJXEA3.js";
14
+ import "./chunk-WZLV4WNS.js";
15
15
  import "./chunk-2P4XKWV2.js";
16
16
  import "./chunk-6K64FJDD.js";
17
17
  import "./chunk-UWQ6UCIB.js";
@@ -48,7 +48,7 @@ import {
48
48
  slugify,
49
49
  suggestSlug,
50
50
  switchWorktreeBranch
51
- } from "./chunk-ZEP6JIRF.js";
51
+ } from "./chunk-JWXJXEA3.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-QB5MDOHL.js";
67
+ } from "./chunk-WZLV4WNS.js";
68
68
  import "./chunk-2P4XKWV2.js";
69
69
  import "./chunk-6K64FJDD.js";
70
70
  import "./chunk-UWQ6UCIB.js";
@@ -50,7 +50,7 @@ import {
50
50
  slugify,
51
51
  suggestSlug,
52
52
  switchWorktreeBranch
53
- } from "./chunk-6SGYGYH7.js";
53
+ } from "./chunk-VXNZG4J6.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-YRXV3E7J.js";
77
+ } from "./chunk-TVN4TDFB.js";
78
78
  import "./chunk-4RZRHTSZ.js";
79
79
  import "./chunk-KGZBYWZ3.js";
80
80
  import "./chunk-H5XL4KUS.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sideboard-ai/core",
3
- "version": "0.1.294",
3
+ "version": "0.1.296",
4
4
  "description": "Sideboard core — orchestration, agents, git worktrees, MCP server",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",