@sideboard-ai/core 0.1.251 → 0.1.253

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 (27) hide show
  1. package/dist/{agents-FY2DFOMV.js → agents-6HDC7UA7.js} +3 -3
  2. package/dist/{agents-PU2P5VWM.js → agents-RKZ2NBIV.js} +3 -3
  3. package/dist/{chunk-6Z66OYYO.js → chunk-46KDLP6T.js} +50 -26
  4. package/dist/{chunk-GNO7RXNH.js → chunk-6ZYSXLXK.js} +37 -14
  5. package/dist/{chunk-2LZ3CNTN.js → chunk-GZRS5QVL.js} +52 -27
  6. package/dist/{chunk-PL23EQ3S.js → chunk-IAS7Q2YF.js} +2 -2
  7. package/dist/{chunk-TMLS5WYR.js → chunk-JUYD2YUC.js} +2 -2
  8. package/dist/{chunk-7R5I5UWW.js → chunk-MLB5CFUP.js} +44 -15
  9. package/dist/{chunk-WI75LO3T.js → chunk-PLMMPA6A.js} +62 -13
  10. package/dist/{chunk-JLLISK4D.js → chunk-WVNQML4W.js} +62 -13
  11. package/dist/{coordinator-prompt-6CWVH2US.js → coordinator-prompt-JKW7YZOC.js} +2 -2
  12. package/dist/{coordinator-prompt-R7JNOUZ3.js → coordinator-prompt-YSIC6YFC.js} +2 -2
  13. package/dist/{global-workspace-GTEL4UUZ.js → global-workspace-3Q57XYG4.js} +2 -2
  14. package/dist/{global-workspace-DWKW4CFY.js → global-workspace-DMR5JB7T.js} +2 -2
  15. package/dist/index.cjs +738 -628
  16. package/dist/index.d.cts +36 -9
  17. package/dist/index.d.ts +36 -9
  18. package/dist/index.js +24 -14
  19. package/dist/mcp/run-stdio.cjs +152 -52
  20. package/dist/mcp/run-stdio.js +21 -14
  21. package/dist/{orchestrator-7XDC4UOC.js → orchestrator-PJCQSVLY.js} +4 -4
  22. package/dist/{orchestrator-W7A5BA5V.js → orchestrator-W6DUFWVE.js} +4 -4
  23. package/dist/{workspaces-E6IL3MIH.js → workspaces-6A3ASHHI.js} +2 -2
  24. package/dist/{workspaces-PSDDVERD.js → workspaces-PS3IO4VJ.js} +2 -2
  25. package/dist/{worktree-MWX6ZVNS.js → worktree-7WTVHFGF.js} +1 -1
  26. package/dist/{worktree-Q4T7RSSW.js → worktree-DLSVHUF6.js} +1 -1
  27. package/package.json +1 -1
@@ -43,13 +43,14 @@ import {
43
43
  readTurnLive,
44
44
  resolveOrchChildFollowUp,
45
45
  resolveScheduleThreadId,
46
+ scheduleNeedsCaffeinate,
46
47
  sliceRunLogOutput,
47
48
  stopDetachedJob,
48
49
  syncBoardPins,
49
50
  threadsSharingWorktree,
50
51
  updateSchedule,
51
52
  waitForDetachedJob
52
- } from "../chunk-6Z66OYYO.js";
53
+ } from "../chunk-46KDLP6T.js";
53
54
  import {
54
55
  PRESENT_PLAN_REQUIRES_PLAN_MODE,
55
56
  PRESENT_PLAN_TOOL_DESCRIPTION,
@@ -66,13 +67,13 @@ import {
66
67
  materializeSystemCaBundle,
67
68
  sideboardMcpProfile,
68
69
  trustSystemCertificates
69
- } from "../chunk-GNO7RXNH.js";
70
+ } from "../chunk-6ZYSXLXK.js";
70
71
  import {
71
72
  GLOBAL_WORKSPACE_ID,
72
73
  isCloudCoordinatorThread,
73
74
  isOrchestratorThread,
74
75
  listWorkspaces
75
- } from "../chunk-PL23EQ3S.js";
76
+ } from "../chunk-IAS7Q2YF.js";
76
77
  import "../chunk-XAISOBBG.js";
77
78
  import "../chunk-P2BSMNHB.js";
78
79
  import "../chunk-XIEDFRBP.js";
@@ -90,7 +91,7 @@ import {
90
91
  resolveListPrsOptions,
91
92
  resolveRepoRoot,
92
93
  warmGithubAgentAuth
93
- } from "../chunk-JLLISK4D.js";
94
+ } from "../chunk-WVNQML4W.js";
94
95
  import "../chunk-D6JWYJ4P.js";
95
96
  import {
96
97
  appendMessage,
@@ -2367,7 +2368,7 @@ async function continueSourceThread(threadId, prompt) {
2367
2368
  await continueOnReply(threadId, prompt);
2368
2369
  return;
2369
2370
  }
2370
- const { getOrchestrator: getOrchestrator2 } = await import("../orchestrator-W7A5BA5V.js");
2371
+ const { getOrchestrator: getOrchestrator2 } = await import("../orchestrator-W6DUFWVE.js");
2371
2372
  await getOrchestrator2().send(threadId, prompt);
2372
2373
  } catch {
2373
2374
  }
@@ -3912,7 +3913,7 @@ function parseWhen(args) {
3912
3913
  function registerScheduleTools(server) {
3913
3914
  server.tool(
3914
3915
  "list_schedules",
3915
- "List local Sideboard schedules that trigger orchestration agents. Jobs fire only while Sideboard.app is running on this Mac (sleep skips until wake).",
3916
+ "List local Sideboard schedules that trigger a chat when due. Jobs fire only while Sideboard.app is running on this Mac (sleep skips until wake).",
3916
3917
  {},
3917
3918
  async () => {
3918
3919
  try {
@@ -3924,7 +3925,7 @@ function registerScheduleTools(server) {
3924
3925
  );
3925
3926
  server.tool(
3926
3927
  "create_schedule",
3927
- "Create a local schedule that, when due, sends a prompt to an orchestration chat (threadId) or starts a new Global orchestration chat (omit threadId). Pass threadId=self to continue this coordinator. Exactly one of at (ISO datetime), every (15m/1h/6h/1d), or cron (5-field). Recurring jobs without threadId open a new chat each run. Overnight/unattended runs need Settings \u2192 Advanced \u2192 Caffeinate while schedules are enabled, or set_caffeinate. Sideboard.app must be running for the job to fire.",
3928
+ "Create a local schedule that, when due, sends a prompt to an existing chat (threadId) or starts a new Global orchestration chat (omit threadId). Pass threadId=self to continue this chat. If that chat is missing or archived when the job fires, Sideboard starts a new Global chat (recurring jobs then continue that chat). Exactly one of at (ISO datetime), every (15m/1h/6h/1d), or cron (5-field). Recurring jobs without threadId open a new Global chat each run. Creating or enabling a future job turns on Settings \u2192 Advanced \u2192 Caffeinate while schedules are enabled so the Mac stays awake until due. Sideboard.app must be running for the job to fire.",
3928
3929
  {
3929
3930
  prompt: z8.string().describe("User message / goal queued when the schedule fires"),
3930
3931
  name: z8.string().optional(),
@@ -3933,7 +3934,7 @@ function registerScheduleTools(server) {
3933
3934
  cron: z8.string().optional().describe("5-field cron expression"),
3934
3935
  tz: z8.string().optional().describe("IANA timezone for cron (default: system)"),
3935
3936
  threadId: z8.string().optional().describe(
3936
- 'Existing orchestration chat id, or "self" for this coordinator. Omit to create a new Global chat on fire.'
3937
+ 'Existing chat id (orchestration or worktree), or "self" for this chat. Omit to create a new Global chat on fire.'
3937
3938
  ),
3938
3939
  agent: z8.enum(["claude", "cursor", "codex", "opencode"]).optional().describe("Agent for a new Global chat (omit for Account default)"),
3939
3940
  model: z8.string().optional()
@@ -3944,7 +3945,9 @@ function registerScheduleTools(server) {
3944
3945
  const threadId = resolveScheduleThreadId(args.threadId);
3945
3946
  if (args.threadId?.trim().toLowerCase() === "self" && !threadId) {
3946
3947
  return fail5(
3947
- new Error("threadId=self requires this turn to be an orchestration chat")
3948
+ new Error(
3949
+ "threadId=self needs this chat id (SIDEBOARD_THREAD_ID or SIDEBOARD_ORCHESTRATOR_THREAD_ID)"
3950
+ )
3948
3951
  );
3949
3952
  }
3950
3953
  const schedule = createSchedule({
@@ -3958,7 +3961,7 @@ function registerScheduleTools(server) {
3958
3961
  });
3959
3962
  return text6({
3960
3963
  schedule,
3961
- hint: "Fires while Sideboard.app is running. Recurring jobs without threadId create a new orchestration chat each run. Overnight runs need Settings \u2192 Advanced \u2192 Caffeinate while schedules are enabled, or set_caffeinate."
3964
+ hint: scheduleNeedsCaffeinate(schedule) ? "Fires while Sideboard.app is running. Recurring jobs without threadId create a new orchestration chat each run. Caffeinate while schedules are enabled is now on so the Mac can stay awake until this job is due." : "Fires while Sideboard.app is running. Recurring jobs without threadId create a new orchestration chat each run."
3962
3965
  });
3963
3966
  } catch (err) {
3964
3967
  return fail5(err);
@@ -3976,7 +3979,9 @@ function registerScheduleTools(server) {
3976
3979
  every: z8.string().optional(),
3977
3980
  cron: z8.string().optional(),
3978
3981
  tz: z8.string().optional(),
3979
- threadId: z8.string().optional().describe('Existing orchestration chat, "self", or empty string to create a new chat each run'),
3982
+ threadId: z8.string().optional().describe(
3983
+ 'Existing chat (orchestration or worktree), "self", or empty string to create a new Global chat each run'
3984
+ ),
3980
3985
  agent: z8.enum(["claude", "cursor", "codex", "opencode"]).optional(),
3981
3986
  model: z8.string().optional(),
3982
3987
  enabled: z8.boolean().optional()
@@ -3995,7 +4000,9 @@ function registerScheduleTools(server) {
3995
4000
  threadId = resolveScheduleThreadId(args.threadId);
3996
4001
  if (args.threadId.trim().toLowerCase() === "self" && !threadId) {
3997
4002
  return fail5(
3998
- new Error("threadId=self requires this turn to be an orchestration chat")
4003
+ new Error(
4004
+ "threadId=self needs this chat id (SIDEBOARD_THREAD_ID or SIDEBOARD_ORCHESTRATOR_THREAD_ID)"
4005
+ )
3999
4006
  );
4000
4007
  }
4001
4008
  }
@@ -4029,7 +4036,7 @@ function registerScheduleTools(server) {
4029
4036
  );
4030
4037
  server.tool(
4031
4038
  "run_schedule",
4032
- "Fire a schedule now (does not wait for nextRunAt). Queues the prompt or starts a new Global chat. If Sideboard.app is running, the desktop drains the turn.",
4039
+ "Fire a schedule now (does not wait for nextRunAt). Queues the prompt on the target chat or starts a new Global chat. If Sideboard.app is running, the desktop drains the turn.",
4033
4040
  { id: z8.string() },
4034
4041
  async ({ id }) => {
4035
4042
  try {
@@ -4954,10 +4961,10 @@ async function startMcpServer() {
4954
4961
  }
4955
4962
  );
4956
4963
  }
4964
+ registerScheduleTools(server);
4957
4965
  if (!worktreeProfile) {
4958
4966
  registerSlackTools(server);
4959
4967
  registerConnectedIssueVendorTools(server);
4960
- registerScheduleTools(server);
4961
4968
  const { getCaffeinateHold, setCaffeinateHold } = await import("../caffeinate-hold-UAGLSGMM.js");
4962
4969
  const { resolveNewThreadOptions, resolveThreadDefaults } = await import("../app-settings-CLARFJUX.js");
4963
4970
  const accountDefaults = resolveThreadDefaults();
@@ -9,11 +9,11 @@ import {
9
9
  resolveSendFollowUp,
10
10
  startOrchestration,
11
11
  waitForPidExit
12
- } from "./chunk-2LZ3CNTN.js";
12
+ } from "./chunk-GZRS5QVL.js";
13
13
  import "./chunk-PGPSIEMW.js";
14
- import "./chunk-7R5I5UWW.js";
15
- import "./chunk-TMLS5WYR.js";
16
- import "./chunk-WI75LO3T.js";
14
+ import "./chunk-MLB5CFUP.js";
15
+ import "./chunk-JUYD2YUC.js";
16
+ import "./chunk-PLMMPA6A.js";
17
17
  import "./chunk-6K64FJDD.js";
18
18
  import "./chunk-2P4XKWV2.js";
19
19
  import "./chunk-5F4YFGHL.js";
@@ -11,15 +11,15 @@ import {
11
11
  resolveSendFollowUp,
12
12
  startOrchestration,
13
13
  waitForPidExit
14
- } from "./chunk-6Z66OYYO.js";
14
+ } from "./chunk-46KDLP6T.js";
15
15
  import "./chunk-WDDUIGFK.js";
16
16
  import "./chunk-QN5DL2QO.js";
17
- import "./chunk-GNO7RXNH.js";
18
- import "./chunk-PL23EQ3S.js";
17
+ import "./chunk-6ZYSXLXK.js";
18
+ import "./chunk-IAS7Q2YF.js";
19
19
  import "./chunk-XAISOBBG.js";
20
20
  import "./chunk-P2BSMNHB.js";
21
21
  import "./chunk-VKQGAWHY.js";
22
- import "./chunk-JLLISK4D.js";
22
+ import "./chunk-WVNQML4W.js";
23
23
  import "./chunk-D6JWYJ4P.js";
24
24
  import "./chunk-RJC2MKXN.js";
25
25
  import "./chunk-H547WSSZ.js";
@@ -7,8 +7,8 @@ import {
7
7
  primaryCheckoutFromLinkedWorktree,
8
8
  removeWorkspace,
9
9
  syncWorkspacesFromThreads
10
- } from "./chunk-PL23EQ3S.js";
11
- import "./chunk-JLLISK4D.js";
10
+ } from "./chunk-IAS7Q2YF.js";
11
+ import "./chunk-WVNQML4W.js";
12
12
  import "./chunk-D6JWYJ4P.js";
13
13
  import "./chunk-RJC2MKXN.js";
14
14
  import "./chunk-H547WSSZ.js";
@@ -5,8 +5,8 @@ import {
5
5
  primaryCheckoutFromLinkedWorktree,
6
6
  removeWorkspace,
7
7
  syncWorkspacesFromThreads
8
- } from "./chunk-TMLS5WYR.js";
9
- import "./chunk-WI75LO3T.js";
8
+ } from "./chunk-JUYD2YUC.js";
9
+ import "./chunk-PLMMPA6A.js";
10
10
  import "./chunk-6K64FJDD.js";
11
11
  import "./chunk-2P4XKWV2.js";
12
12
  import "./chunk-KJM3E3NF.js";
@@ -61,7 +61,7 @@ import {
61
61
  worktreeDisplayLabelForGroup,
62
62
  worktreeNameFromPath,
63
63
  worktreeSlugForTicket
64
- } from "./chunk-JLLISK4D.js";
64
+ } from "./chunk-WVNQML4W.js";
65
65
  import "./chunk-D6JWYJ4P.js";
66
66
  import "./chunk-RJC2MKXN.js";
67
67
  import "./chunk-H547WSSZ.js";
@@ -59,7 +59,7 @@ import {
59
59
  worktreeDisplayLabelForGroup,
60
60
  worktreeNameFromPath,
61
61
  worktreeSlugForTicket
62
- } from "./chunk-WI75LO3T.js";
62
+ } from "./chunk-PLMMPA6A.js";
63
63
  import "./chunk-6K64FJDD.js";
64
64
  import "./chunk-2P4XKWV2.js";
65
65
  import "./chunk-KJM3E3NF.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sideboard-ai/core",
3
- "version": "0.1.251",
3
+ "version": "0.1.253",
4
4
  "description": "Sideboard core — orchestration, agents, git worktrees, MCP server",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",