@sideboard-ai/core 0.1.234 → 0.1.236

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 (67) hide show
  1. package/dist/{abletime-WZNDTRVL.js → abletime-KOGCIQCO.js} +5 -5
  2. package/dist/{abletime-BGVOCEOU.js → abletime-VSV6AUBV.js} +5 -5
  3. package/dist/{abletime-oauth-ZLU2EYRK.js → abletime-oauth-LY7KZICW.js} +4 -4
  4. package/dist/{abletime-oauth-6M5GWEPX.js → abletime-oauth-QMDV45JC.js} +4 -4
  5. package/dist/{abletime-rest-WNHIATB3.js → abletime-rest-LXOWKPL7.js} +4 -4
  6. package/dist/{abletime-rest-F7XG5NGY.js → abletime-rest-NL56UVK5.js} +4 -4
  7. package/dist/agents/cursor-runner.cjs +39 -35
  8. package/dist/agents/cursor-runner.js +3 -3
  9. package/dist/{agents-BTXL6R5I.js → agents-JC6DRIT3.js} +9 -9
  10. package/dist/{agents-WMN7C322.js → agents-S4HYHRL3.js} +8 -8
  11. package/dist/{app-settings-KBL2G7M4.js → app-settings-2CFCRYD7.js} +2 -2
  12. package/dist/{app-settings-UXWCPDEA.js → app-settings-I27UBVI4.js} +2 -2
  13. package/dist/{caffeinate-hold-OK4JJ5PP.js → caffeinate-hold-FNKIPXDU.js} +2 -2
  14. package/dist/{caffeinate-hold-22VFDPSO.js → caffeinate-hold-PXHGH7ZN.js} +2 -2
  15. package/dist/{chunk-7J72QJOM.js → chunk-224IXQOM.js} +1 -1
  16. package/dist/{chunk-4VGCG2HV.js → chunk-3AJUH66R.js} +2 -2
  17. package/dist/{chunk-P6ZM5QJW.js → chunk-3PGFAVFL.js} +2 -2
  18. package/dist/{chunk-RZTRWN2V.js → chunk-4H5WO4H3.js} +1 -1
  19. package/dist/{chunk-MVLXDYN5.js → chunk-5ELC3KK3.js} +5 -5
  20. package/dist/{chunk-WPD7BR6C.js → chunk-5SHYLRTU.js} +1 -1
  21. package/dist/{chunk-S2OEFXST.js → chunk-5UN5C5WP.js} +5 -5
  22. package/dist/{chunk-RKKTCKVX.js → chunk-6Q2CFQ4D.js} +85 -31
  23. package/dist/{chunk-WFUDY6PC.js → chunk-A4JGXX2F.js} +155 -24
  24. package/dist/{chunk-NOIWXANG.js → chunk-ANGPU5JL.js} +284 -15
  25. package/dist/{chunk-GHRZNPBK.js → chunk-C2CBF4YE.js} +2 -2
  26. package/dist/{chunk-TNVJPFHM.js → chunk-CJKL7A4G.js} +5 -5
  27. package/dist/{chunk-SWNEA5OZ.js → chunk-CRAXJAYJ.js} +3 -3
  28. package/dist/{chunk-C774RJJA.js → chunk-CWHMLCLN.js} +3 -3
  29. package/dist/{chunk-YWI3IBP2.js → chunk-DQN5U2VH.js} +1 -1
  30. package/dist/{chunk-2UBVFL2X.js → chunk-DYXNBXE3.js} +306 -17
  31. package/dist/{chunk-SPAMHHJH.js → chunk-J5GON4SU.js} +1 -1
  32. package/dist/{chunk-4VFOJZPS.js → chunk-JXZS56VW.js} +3 -3
  33. package/dist/{chunk-EQNRWDLN.js → chunk-KK63BFYN.js} +151 -24
  34. package/dist/{chunk-X5B3OS5I.js → chunk-N6XI5KXL.js} +1 -1
  35. package/dist/{chunk-XJETIO4K.js → chunk-NJ5OXOTN.js} +2 -2
  36. package/dist/{chunk-RGNPPRZZ.js → chunk-NYAEMZ3L.js} +3 -3
  37. package/dist/{chunk-7H2CVVLF.js → chunk-O3UAQAYA.js} +3 -3
  38. package/dist/{chunk-4TYXWPAJ.js → chunk-OJFEVWZN.js} +1 -1
  39. package/dist/{chunk-I5NC7DWO.js → chunk-P3DCZRER.js} +1 -1
  40. package/dist/{chunk-TWXSZYR2.js → chunk-RRXRLHIE.js} +5 -5
  41. package/dist/{chunk-AS4UN7QL.js → chunk-VVOAXBND.js} +5 -5
  42. package/dist/{chunk-LEYY54BN.js → chunk-XMCJDWPA.js} +88 -33
  43. package/dist/{connected-teams-KQUDU7LZ.js → connected-teams-62AJRDDD.js} +2 -2
  44. package/dist/{connected-teams-JUJAQZZE.js → connected-teams-GXV22ZSF.js} +2 -2
  45. package/dist/{coordinator-prompt-CE7MN6QY.js → coordinator-prompt-2BRUH7PJ.js} +6 -6
  46. package/dist/{coordinator-prompt-IGDMFKCD.js → coordinator-prompt-BIP7ZEJ3.js} +6 -6
  47. package/dist/{cursor-recover-DTQAUDGO.js → cursor-recover-DFMCTZA4.js} +2 -2
  48. package/dist/{cursor-recover-4PQAADAU.js → cursor-recover-K3EBEM7M.js} +2 -2
  49. package/dist/{global-workspace-7WH24UFO.js → global-workspace-3XZN3QHZ.js} +6 -6
  50. package/dist/{global-workspace-NCIC2Y2U.js → global-workspace-DWCFG7LP.js} +6 -6
  51. package/dist/index.cjs +1232 -709
  52. package/dist/index.d.cts +70 -1
  53. package/dist/index.d.ts +70 -1
  54. package/dist/index.js +79 -23
  55. package/dist/mcp/run-stdio.cjs +1134 -660
  56. package/dist/mcp/run-stdio.js +45 -22
  57. package/dist/{orchestrator-7ZEGFPK4.js → orchestrator-AYPDBGIF.js} +10 -10
  58. package/dist/{orchestrator-R2WCTNJI.js → orchestrator-TEJJAQWP.js} +11 -11
  59. package/dist/{paths-C2VERLAE.js → paths-LGKOG7MY.js} +1 -1
  60. package/dist/{paths-LOXCISLX.js → paths-O6ZEAEUD.js} +1 -1
  61. package/dist/{thread-store-IKJD4EOK.js → thread-store-AYPBEZT5.js} +3 -3
  62. package/dist/{thread-store-FBK5SZ5P.js → thread-store-YOPKY74K.js} +3 -3
  63. package/dist/{workspaces-H2TRFDE2.js → workspaces-NYT2472Z.js} +6 -6
  64. package/dist/{workspaces-NSQZSDQD.js → workspaces-V7522TQH.js} +6 -6
  65. package/dist/{worktree-W7BSI4GU.js → worktree-AGVPKDBH.js} +5 -5
  66. package/dist/{worktree-FMIX4BRV.js → worktree-IRALYI6A.js} +5 -5
  67. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -20,7 +20,7 @@ import {
20
20
  parseAbleTimeOAuthCallbackUrl,
21
21
  resolveAbleTimeOAuthHost,
22
22
  startAbleTimeOAuth
23
- } from "./chunk-C774RJJA.js";
23
+ } from "./chunk-CWHMLCLN.js";
24
24
  import {
25
25
  ableTimeDependencyTarget,
26
26
  commentAbleTimeTask,
@@ -38,8 +38,8 @@ import {
38
38
  toAbleTimeIssueInfo,
39
39
  updateAbleTimeTask,
40
40
  verifyAbleTimeConnection
41
- } from "./chunk-SWNEA5OZ.js";
42
- import "./chunk-P6ZM5QJW.js";
41
+ } from "./chunk-CRAXJAYJ.js";
42
+ import "./chunk-3PGFAVFL.js";
43
43
  import {
44
44
  ABLETIME_MCP_PATH,
45
45
  ABLETIME_MCP_PM_PATH,
@@ -60,7 +60,7 @@ import {
60
60
  normalizeAbleTimeCredential,
61
61
  normalizeAbleTimeHost,
62
62
  rewriteAbleTimeError
63
- } from "./chunk-MVLXDYN5.js";
63
+ } from "./chunk-5ELC3KK3.js";
64
64
  import {
65
65
  AGENT_GIT_ACTIONS,
66
66
  BOARD_COLUMN_DEFS,
@@ -168,6 +168,7 @@ import {
168
168
  forkThreadWorktree,
169
169
  formatArtifactDirective,
170
170
  formatDetachedJobInvoke,
171
+ formatDevAccessHint,
171
172
  formatIssueToolsDirective,
172
173
  formatIssueToolsReminder,
173
174
  formatLinearDirective,
@@ -237,6 +238,7 @@ import {
237
238
  listSlackWorkspaces,
238
239
  listSlackWorkspacesRaw,
239
240
  listWorktreeFiles,
241
+ localhostPreviewUrl,
240
242
  markdownPreviewSource,
241
243
  maybeCompactContext,
242
244
  mcpWaitFinishedHint,
@@ -325,7 +327,7 @@ import {
325
327
  worktreeCleanupSettings,
326
328
  wrapReviewSkillMarkdown,
327
329
  writeWorktreeFile
328
- } from "./chunk-LEYY54BN.js";
330
+ } from "./chunk-XMCJDWPA.js";
329
331
  import {
330
332
  LEGACY_PLAN_FILE_REL,
331
333
  PLAN_FILE_NAME,
@@ -386,6 +388,9 @@ import {
386
388
  installNpmGlobalPackage,
387
389
  isBrightsyConnected,
388
390
  isBrightsyNdjsonLine,
391
+ isCompactToolName,
392
+ isContextCompactDone,
393
+ isContextCompactInProgress,
389
394
  isCursorApiKeyConfigured,
390
395
  isCursorAutoModel,
391
396
  isInjectedOrchMcpName,
@@ -393,6 +398,7 @@ import {
393
398
  isPollWrapperToolName,
394
399
  isSessionQuotaLimit,
395
400
  isShellToolName,
401
+ isSkillToolName,
396
402
  isSubagentToolName,
397
403
  lastAssistantMessageText,
398
404
  listAgentSetupInfo,
@@ -403,6 +409,8 @@ import {
403
409
  listOpencodeModels,
404
410
  liveActivitySummary,
405
411
  loginAgent,
412
+ looksLikeConversationSummary,
413
+ looksLikeSkillBody,
406
414
  mcpAllowTools,
407
415
  mcpAllowToolsFromNames,
408
416
  mcpAuthWarnings,
@@ -427,6 +435,9 @@ import {
427
435
  sanitizeMcpServerName,
428
436
  shouldInjectBrightsyMcp,
429
437
  sideboardMcpProfile,
438
+ skillCommandFromBody,
439
+ skillCommandFromInput,
440
+ skillNameFromFrontmatter,
430
441
  splitTurnInputForSystemPrompt,
431
442
  stripBrightsyNdjsonNoise,
432
443
  threadRequestsBrightsyMcp,
@@ -442,7 +453,7 @@ import {
442
453
  withEventParentId,
443
454
  withEventsParentId,
444
455
  writeInjectedMcpConfig
445
- } from "./chunk-2UBVFL2X.js";
456
+ } from "./chunk-DYXNBXE3.js";
446
457
  import {
447
458
  CLOUD_COORDINATOR_BUSY_REPLY,
448
459
  CLOUD_COORDINATOR_STOPPED_REPLY,
@@ -486,7 +497,7 @@ import {
486
497
  stageBuffersAsAttachments,
487
498
  syncWorkspacesFromThreads,
488
499
  takenTeamSlugsForOrchestration
489
- } from "./chunk-S2OEFXST.js";
500
+ } from "./chunk-5UN5C5WP.js";
490
501
  import {
491
502
  FAMOUS_SOCCER_TEAMS,
492
503
  GITHUB_PR_BODY_MAX_CHARS,
@@ -584,7 +595,7 @@ import {
584
595
  worktreeDisplayLabelForGroup,
585
596
  worktreeNameFromPath,
586
597
  worktreeSlugForTicket
587
- } from "./chunk-7H2CVVLF.js";
598
+ } from "./chunk-O3UAQAYA.js";
588
599
  import {
589
600
  ATTACHMENTS_DIR,
590
601
  CLI_DIR,
@@ -604,7 +615,7 @@ import {
604
615
  listBrightsyAccounts,
605
616
  listConnectedBrightsyTeams,
606
617
  switchBrightsyAccount
607
- } from "./chunk-TNVJPFHM.js";
618
+ } from "./chunk-CJKL7A4G.js";
608
619
  import {
609
620
  BRIGHTSY_OAUTH_CLIENT_ID,
610
621
  BRIGHTSY_OAUTH_REDIRECT,
@@ -638,7 +649,7 @@ import {
638
649
  trustSystemCertificates,
639
650
  turnCostUsdFromCursorUsage,
640
651
  withMaxOldSpaceSize
641
- } from "./chunk-WPD7BR6C.js";
652
+ } from "./chunk-5SHYLRTU.js";
642
653
  import {
643
654
  AGENT_DONE_SOUNDS,
644
655
  FOLLOW_UP_BEHAVIORS,
@@ -763,7 +774,7 @@ import {
763
774
  updateProjectProfileSettings,
764
775
  usageOnLimit,
765
776
  writeViewerContext
766
- } from "./chunk-I5NC7DWO.js";
777
+ } from "./chunk-P3DCZRER.js";
767
778
  import {
768
779
  examplePrefixedBranch,
769
780
  resolveGitBranchPrefix,
@@ -775,7 +786,7 @@ import {
775
786
  isThreadCaffeinated,
776
787
  releaseCaffeinateHoldForThread,
777
788
  setCaffeinateHold
778
- } from "./chunk-4TYXWPAJ.js";
789
+ } from "./chunk-OJFEVWZN.js";
779
790
  import "./chunk-JT7R45JB.js";
780
791
  import {
781
792
  appendMessage,
@@ -794,8 +805,8 @@ import {
794
805
  updateThread,
795
806
  withThreadLock,
796
807
  writeThread
797
- } from "./chunk-4VGCG2HV.js";
798
- import "./chunk-7J72QJOM.js";
808
+ } from "./chunk-3AJUH66R.js";
809
+ import "./chunk-224IXQOM.js";
799
810
  import {
800
811
  THINKING_EFFORTS,
801
812
  isThinkingEffort,
@@ -806,7 +817,11 @@ import {
806
817
  } from "./chunk-77WWLBCI.js";
807
818
  import {
808
819
  CONVENTION_SETUP_RELPATHS,
820
+ activeRunPreview,
821
+ annotateDevAccessRuns,
809
822
  appDataDir,
823
+ classifyRunScriptPreview,
824
+ commandLooksLikeElectron,
810
825
  findConventionSetup,
811
826
  getRepoSetupInfo,
812
827
  globalAgentCwd,
@@ -819,8 +834,11 @@ import {
819
834
  loadRepoSettings,
820
835
  loadWorkspaceSettings,
821
836
  locksDir,
837
+ parseDevPreview,
838
+ pnpmFilterPackage,
822
839
  repoSlug,
823
840
  runCursorWorktreeSetup,
841
+ runScriptPreview,
824
842
  settingsSourceLabel,
825
843
  sideboardHomeDir,
826
844
  sideboardReposDir,
@@ -831,7 +849,7 @@ import {
831
849
  threadsDir,
832
850
  workspaceSettingsSourceLabel,
833
851
  worktreesRoot
834
- } from "./chunk-WFUDY6PC.js";
852
+ } from "./chunk-A4JGXX2F.js";
835
853
  import {
836
854
  conductorBundledBinDir,
837
855
  enrichPathWithNpmGlobalBin,
@@ -5385,6 +5403,9 @@ async function createOrchChildThread(orch, args, resolveNewThreadOptions2) {
5385
5403
  return { ok: false, text: `create_thread failed: ${message}` };
5386
5404
  }
5387
5405
  }
5406
+ function previewHint(preview) {
5407
+ return preview === "window" ? "Electron: the native window is the app. url is the renderer/HMR origin only \u2014 do not open it in a browser (no preload/IPC)." : "Open url in a browser, curl, or Playwright to use the app.";
5408
+ }
5388
5409
  async function startMcpServer() {
5389
5410
  const orch = getOrchestrator();
5390
5411
  try {
@@ -5396,7 +5417,7 @@ async function startMcpServer() {
5396
5417
  );
5397
5418
  }
5398
5419
  try {
5399
- const { maxConcurrentAgents: maxConcurrentAgents2 } = await import("./app-settings-UXWCPDEA.js");
5420
+ const { maxConcurrentAgents: maxConcurrentAgents2 } = await import("./app-settings-I27UBVI4.js");
5400
5421
  orch.setMaxConcurrent(maxConcurrentAgents2());
5401
5422
  } catch {
5402
5423
  }
@@ -5708,15 +5729,27 @@ async function startMcpServer() {
5708
5729
  );
5709
5730
  server.tool(
5710
5731
  "list_run_scripts",
5711
- "List .sideboard/.conductor run scripts for this thread (same menu as the desktop Dev button) and which are active. Worktree turns may omit ref (uses cwd).",
5732
+ "List .sideboard/.conductor run scripts for this thread (same menu as the desktop Dev button) and which are active. Each script and active run includes preview: url (open http://localhost:<SIDEBOARD_PORT>) or window (Electron: native window is the app; url is renderer/HMR only). Never guess :3000. Worktree turns may omit ref (uses cwd).",
5712
5733
  {
5713
5734
  ref: z9.string().optional().describe("Thread id. Omit on a worktree turn (uses cwd).")
5714
5735
  },
5715
5736
  async ({ ref }) => {
5716
5737
  try {
5717
5738
  const threadRef = resolveRunScriptThreadRef(ref);
5718
- const scripts = orch.listThreadRunScripts(threadRef);
5719
- const active = orch.getActiveRuns(threadRef);
5739
+ const worktreePath = orch.getThread(threadRef)?.worktreePath ?? "";
5740
+ const scripts = orch.listThreadRunScripts(threadRef).map((script) => ({
5741
+ ...script,
5742
+ preview: runScriptPreview(script, worktreePath)
5743
+ }));
5744
+ const active = orch.getActiveRuns(threadRef).map((run2) => {
5745
+ const preview = activeRunPreview(run2.scriptName, scripts, worktreePath);
5746
+ return {
5747
+ ...run2,
5748
+ url: localhostPreviewUrl(run2.port),
5749
+ preview,
5750
+ hint: previewHint(preview)
5751
+ };
5752
+ });
5720
5753
  return mcpJson({ scripts, active, ref: threadRef });
5721
5754
  } catch (err) {
5722
5755
  const message = err instanceof Error ? err.message : String(err);
@@ -5726,7 +5759,7 @@ async function startMcpServer() {
5726
5759
  );
5727
5760
  server.tool(
5728
5761
  "run_dev_script",
5729
- "Start a .sideboard/.conductor run script (same as the desktop Dev / play button). Logs and Stop appear in the thread UI \u2014 do not detached-job or shell-spawn the same command. Returns the allocated port. Worktree turns may omit ref (uses cwd). Omit name for the default script.",
5762
+ "Start a .sideboard/.conductor run script (same as the desktop Dev / play button). Logs and Stop appear in the thread UI \u2014 do not detached-job or shell-spawn the same command. Returns {port, ports, url, preview}. preview=url \u2192 open url (browser, curl, Playwright). preview=window \u2192 Electron: the native window is the app; url is renderer/HMR only (no preload/IPC in a browser). The port is allocated SIDEBOARD_PORT, not 3000. Worktree turns may omit ref (uses cwd). Omit name for the default script.",
5730
5763
  {
5731
5764
  ref: z9.string().optional().describe("Thread id. Omit on a worktree turn (uses cwd)."),
5732
5765
  name: z9.string().optional().describe("Script name from list_run_scripts (default script if omitted).")
@@ -5735,11 +5768,16 @@ async function startMcpServer() {
5735
5768
  try {
5736
5769
  const threadRef = resolveRunScriptThreadRef(ref);
5737
5770
  const result = await orch.startDev(threadRef, name);
5771
+ const worktreePath = orch.getThread(threadRef)?.worktreePath ?? "";
5772
+ const scripts = orch.listThreadRunScripts(threadRef);
5773
+ const preview = activeRunPreview(result.scriptName, scripts, worktreePath);
5738
5774
  return mcpJson({
5739
5775
  port: result.port,
5740
5776
  scriptName: result.scriptName,
5741
5777
  ports: result.ports,
5742
- url: `http://localhost:${result.port}`,
5778
+ url: localhostPreviewUrl(result.port),
5779
+ preview,
5780
+ hint: previewHint(preview),
5743
5781
  ref: threadRef
5744
5782
  });
5745
5783
  } catch (err) {
@@ -5770,8 +5808,8 @@ async function startMcpServer() {
5770
5808
  registerSlackTools(server);
5771
5809
  registerConnectedIssueVendorTools(server);
5772
5810
  registerScheduleTools(server);
5773
- const { getCaffeinateHold: getCaffeinateHold2, setCaffeinateHold: setCaffeinateHold2 } = await import("./caffeinate-hold-22VFDPSO.js");
5774
- const { resolveNewThreadOptions: resolveNewThreadOptions2, resolveThreadDefaults: resolveThreadDefaults2 } = await import("./app-settings-UXWCPDEA.js");
5811
+ const { getCaffeinateHold: getCaffeinateHold2, setCaffeinateHold: setCaffeinateHold2 } = await import("./caffeinate-hold-PXHGH7ZN.js");
5812
+ const { resolveNewThreadOptions: resolveNewThreadOptions2, resolveThreadDefaults: resolveThreadDefaults2 } = await import("./app-settings-I27UBVI4.js");
5775
5813
  const accountDefaults = resolveThreadDefaults2();
5776
5814
  const accountDefaultsHint = `Account defaults: agent=${accountDefaults.agent}, model=${accountDefaults.model?.trim() || "Auto"}, effort=${accountDefaults.effort}`;
5777
5815
  server.tool(
@@ -8853,6 +8891,7 @@ export {
8853
8891
  abletimeMcpUrl,
8854
8892
  abletimeToolUsesPm,
8855
8893
  ackSlackInboundSeen,
8894
+ activeRunPreview,
8856
8895
  addBoardPin,
8857
8896
  addPrStackLayer,
8858
8897
  addStackLayerFromThread,
@@ -8868,6 +8907,7 @@ export {
8868
8907
  allocatePortRange,
8869
8908
  allocateTeamName,
8870
8909
  allocateTeamSlug,
8910
+ annotateDevAccessRuns,
8871
8911
  appDataDir,
8872
8912
  appSettingsPath,
8873
8913
  appendIndexedGitConfig,
@@ -8932,6 +8972,7 @@ export {
8932
8972
  clampGithubPrBody,
8933
8973
  clampHistoryMaxCount,
8934
8974
  clampHistoryMaxDays,
8975
+ classifyRunScriptPreview,
8935
8976
  classifyWorktreeColumn,
8936
8977
  claudeAdapter,
8937
8978
  claudeChromeEnabled,
@@ -8951,6 +8992,7 @@ export {
8951
8992
  codexUnattendedGitConfigArgs,
8952
8993
  coerceOrchestratorAgent,
8953
8994
  collectTakenTeamSlugs,
8995
+ commandLooksLikeElectron,
8954
8996
  commentAbleTimeTask,
8955
8997
  commentGitHubIssue,
8956
8998
  commentLinearIssue,
@@ -9073,6 +9115,7 @@ export {
9073
9115
  formatClaudeUsageResetClock,
9074
9116
  formatClaudeUsageTooltip,
9075
9117
  formatDetachedJobInvoke,
9118
+ formatDevAccessHint,
9076
9119
  formatFetchError,
9077
9120
  formatGhLandError,
9078
9121
  formatGitAuthModeDirective,
@@ -9199,7 +9242,10 @@ export {
9199
9242
  isBrightsyConnected,
9200
9243
  isBrightsyNdjsonLine,
9201
9244
  isCloudCoordinatorThread,
9245
+ isCompactToolName,
9202
9246
  isConductorBundledCli,
9247
+ isContextCompactDone,
9248
+ isContextCompactInProgress,
9203
9249
  isCowboyThread,
9204
9250
  isCursorApiKeyConfigured,
9205
9251
  isCursorAutoModel,
@@ -9237,6 +9283,7 @@ export {
9237
9283
  isSetupLastError,
9238
9284
  isShellToolName,
9239
9285
  isSideboardScratchPath,
9286
+ isSkillToolName,
9240
9287
  isSlackCoordinatorThread,
9241
9288
  isSlackExternalReplyPrompt,
9242
9289
  isSlackOAuthCancelled,
@@ -9307,8 +9354,11 @@ export {
9307
9354
  loadHomeBoardInputs,
9308
9355
  loadRepoSettings,
9309
9356
  loadWorkspaceSettings,
9357
+ localhostPreviewUrl,
9310
9358
  locksDir,
9311
9359
  loginAgent,
9360
+ looksLikeConversationSummary,
9361
+ looksLikeSkillBody,
9312
9362
  lookupSoccerTeam,
9313
9363
  mapAbleTimeTask,
9314
9364
  markPrReady,
@@ -9361,6 +9411,7 @@ export {
9361
9411
  parseAbleTimeOAuthCallbackUrl,
9362
9412
  parseClaudeUsagePayload,
9363
9413
  parseCursorRunnerLine,
9414
+ parseDevPreview,
9364
9415
  parseDurationMs,
9365
9416
  parseForceStopMessage,
9366
9417
  parseGhStackViewJson,
@@ -9382,6 +9433,7 @@ export {
9382
9433
  planHistoryAgePurge,
9383
9434
  planHistoryRetention,
9384
9435
  planQuestionsSignature,
9436
+ pnpmFilterPackage,
9385
9437
  pollSlackOutboundWatches,
9386
9438
  posixShellSingleQuote,
9387
9439
  preferredCursorCostCents,
@@ -9479,6 +9531,7 @@ export {
9479
9531
  runCloudConnect,
9480
9532
  runConventionSetup,
9481
9533
  runCursorWorktreeSetup,
9534
+ runScriptPreview,
9482
9535
  runSetupScript,
9483
9536
  runSlackListen,
9484
9537
  runSlackRelayClient,
@@ -9513,6 +9566,9 @@ export {
9513
9566
  sideboardMcpProfile,
9514
9567
  sideboardReposDir,
9515
9568
  sideboardWorkspacesDir,
9569
+ skillCommandFromBody,
9570
+ skillCommandFromInput,
9571
+ skillNameFromFrontmatter,
9516
9572
  slackAppLevelToken,
9517
9573
  slackArchiveUrl,
9518
9574
  slackCoordinatorSourceRef,