@wrongstack/cli 1.0.35 → 1.0.37

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 (168) hide show
  1. package/dist/{acp-T77EAEDB.js → acp-HCGUTFNE.js} +11 -8
  2. package/dist/ascii-mode-B6PKLRHM.js +8 -0
  3. package/dist/{audit-KCBTHUQI.js → audit-NH7NUKBV.js} +3 -2
  4. package/dist/{auth-M6LXZTDA.js → auth-ANOVZVHE.js} +12 -11
  5. package/dist/auto-discover-providers-V75ICIBG.js +8 -0
  6. package/dist/{automation-MCDFCIMV.js → automation-O7ZRZSFS.js} +20 -4
  7. package/dist/{bench-MMZHFHDL.js → bench-NDYES33Y.js} +3 -2
  8. package/dist/boot/governance-evidence-candidate.d.ts +1 -1
  9. package/dist/boot/system-prompt-menu.d.ts +7 -0
  10. package/dist/boot/tui-settings-adapter.d.ts +0 -12
  11. package/dist/{boot-auto-thin-YMAZI3QL.js → boot-auto-thin-7D4OVEWA.js} +5 -4
  12. package/dist/boot-provider-selection.d.ts +9 -0
  13. package/dist/{chronicle-PBJS7BN6.js → chronicle-WBK3TJRB.js} +2 -1
  14. package/dist/{chunk-R4QGL6GB.js → chunk-2MV474XR.js} +1 -1
  15. package/dist/{chunk-AFOH6CHO.js → chunk-3EXRPTAU.js} +1 -1
  16. package/dist/{chunk-2EZ2DHOW.js → chunk-3R3OADC5.js} +2 -2
  17. package/dist/{chunk-RKU66D2O.js → chunk-57PSSEBR.js} +1 -1
  18. package/dist/{chunk-2CMMWRQH.js → chunk-5TRZZHMN.js} +2 -2
  19. package/dist/{chunk-RWNI5OWT.js → chunk-6KJU6POA.js} +6 -6
  20. package/dist/{chunk-AKESWZH5.js → chunk-6VPWQ4TG.js} +2 -2
  21. package/dist/{chunk-CJSHS2K7.js → chunk-75OLD563.js} +1 -1
  22. package/dist/{chunk-4UWCMBPG.js → chunk-76JE54WD.js} +7 -5
  23. package/dist/{chunk-7BNBD4PE.js → chunk-7IY2UTBE.js} +2 -2
  24. package/dist/{chunk-6Z6C6ZHH.js → chunk-AWRZWPJ3.js} +20 -26
  25. package/dist/{chunk-TXAFIERF.js → chunk-BAWRRA6O.js} +2 -2
  26. package/dist/{chunk-DAKVBMD4.js → chunk-BCKVNORU.js} +1 -1
  27. package/dist/{chunk-4BX2YDTQ.js → chunk-BIGSVBPI.js} +45 -4
  28. package/dist/{chunk-CZTXF6HY.js → chunk-BJ4LDJ4H.js} +1 -1
  29. package/dist/{chunk-KMU7GF7X.js → chunk-C2BBH4S4.js} +2 -2
  30. package/dist/chunk-C4654QI2.js +8 -0
  31. package/dist/{chunk-M4G5FO7F.js → chunk-C5JP6DJN.js} +1 -1
  32. package/dist/{chunk-LDV4ERNV.js → chunk-CIGEY7NU.js} +5 -5
  33. package/dist/{chunk-WTJDSTYD.js → chunk-CVVQ5NCN.js} +5 -5
  34. package/dist/{chunk-D3K4NYQL.js → chunk-DXHQFV5V.js} +1 -1
  35. package/dist/{chunk-SUDNPYWD.js → chunk-FM7DPSYA.js} +2 -2
  36. package/dist/{chunk-YL4KCHZG.js → chunk-FPUB5WWP.js} +1 -1
  37. package/dist/{chunk-P3Q3KMFH.js → chunk-FUJHWQV4.js} +1 -1
  38. package/dist/{chunk-ERX4BLKP.js → chunk-GFQH77OH.js} +1 -1
  39. package/dist/{chunk-DIOODAYM.js → chunk-H53EXXAU.js} +3 -3
  40. package/dist/{chunk-F5DCFAKI.js → chunk-HKMOIIPQ.js} +1 -1
  41. package/dist/{chunk-AUQDGU5D.js → chunk-HQBY6OFT.js} +1 -1
  42. package/dist/{chunk-6SIUTX75.js → chunk-IJLIAPCW.js} +1 -2
  43. package/dist/{chunk-QD544J2B.js → chunk-JTTV2EVA.js} +1 -1
  44. package/dist/{chunk-UKP7H2U4.js → chunk-KHFFJ2LC.js} +1 -1
  45. package/dist/{chunk-4TVYGG6G.js → chunk-MKM4X2AM.js} +1 -1
  46. package/dist/chunk-ML3US333.js +61 -0
  47. package/dist/{chunk-HLSHFXTO.js → chunk-NL2ABOAS.js} +2 -2
  48. package/dist/{chunk-Q7E3BPDU.js → chunk-OGVSKS4Q.js} +1 -1
  49. package/dist/chunk-OZCYZYN2.js +3708 -0
  50. package/dist/{chunk-EWKESL4L.js → chunk-P24ZPPYH.js} +1 -1
  51. package/dist/chunk-PY2LMG2V.js +1 -0
  52. package/dist/{chunk-CSAPOCBP.js → chunk-QC6CLAK7.js} +1 -1
  53. package/dist/{chunk-HXJYHAR4.js → chunk-QVITQ425.js} +1 -1
  54. package/dist/{chunk-GZSKLXYG.js → chunk-RAWHRRUJ.js} +10 -10
  55. package/dist/{chunk-PA4VBCXS.js → chunk-RBZVDWTL.js} +1 -1
  56. package/dist/{chunk-YMXXOOFN.js → chunk-SPSHEZ46.js} +1 -1
  57. package/dist/{chunk-TWSQTQKR.js → chunk-T4TGMTH2.js} +3 -3
  58. package/dist/{chunk-LKFKO4JW.js → chunk-TZPKOS5G.js} +3 -3
  59. package/dist/{chunk-X4LW5CZM.js → chunk-UBDLNC3N.js} +1 -1
  60. package/dist/{chunk-SDJCLEK6.js → chunk-UFRVTBV6.js} +1 -1
  61. package/dist/{chunk-VCYZ3WZV.js → chunk-UOQPDZ5H.js} +1 -1
  62. package/dist/{chunk-PZQBGUVZ.js → chunk-UVF3BGET.js} +1 -1
  63. package/dist/{chunk-HHRYIDOW.js → chunk-VAQXOZKP.js} +34 -7
  64. package/dist/{chunk-4XCBEUBX.js → chunk-VHC47E7U.js} +1 -1
  65. package/dist/{chunk-LKPEBZBE.js → chunk-VI2HE4A5.js} +1 -1
  66. package/dist/chunk-W23PY4IJ.js +44 -0
  67. package/dist/{chunk-AT2A7RJZ.js → chunk-WDXNBYGD.js} +1 -1
  68. package/dist/{chunk-NRXWOMK7.js → chunk-XT3NAHRX.js} +1 -1
  69. package/dist/{chunk-ZYACRPLN.js → chunk-ZCXZGYO5.js} +6 -3
  70. package/dist/{chunk-65VNCAF6.js → chunk-ZNNFEKDZ.js} +2 -2
  71. package/dist/{chunk-CDY4D5QK.js → chunk-ZTSTMFYW.js} +2 -2
  72. package/dist/{chunk-YTEOAWOJ.js → chunk-ZXX3MJRL.js} +1 -1
  73. package/dist/{cli-context-II57EHD2.js → cli-context-V6NKFU2X.js} +166 -100
  74. package/dist/{cli-main-YR2WJCPL.js → cli-main-LHQTVOYW.js} +963 -246
  75. package/dist/{config-transfer-VOIFY7U4.js → config-transfer-Y7XJMJRN.js} +8 -5
  76. package/dist/{diag-doctor-BIZAFIAT.js → diag-doctor-5SVYK2DR.js} +5 -4
  77. package/dist/execute-deps.d.ts +8 -0
  78. package/dist/{execution-IBAZ2EIU.js → execution-BAP566QC.js} +103 -33
  79. package/dist/{export-VVRIOWFV.js → export-W27PTU6Y.js} +3 -2
  80. package/dist/fleet/host-director-setup.d.ts +2 -0
  81. package/dist/fleet/host-skill-companion.d.ts +73 -0
  82. package/dist/fleet/host.d.ts +1 -0
  83. package/dist/fleet/skill-companion-policy.d.ts +33 -0
  84. package/dist/{governance-RYSHV675.js → governance-A32M4ILK.js} +2 -1
  85. package/dist/{hq-5OIEKB4V.js → hq-JD5AZVMG.js} +8 -7
  86. package/dist/hq-server/snapshot.d.ts +1 -1
  87. package/dist/hq-server/socket-credentials.d.ts +1 -1
  88. package/dist/hq-server/ws.d.ts +1 -1
  89. package/dist/{hq-server-DU3ZH3X7.js → hq-server-BI23EPM7.js} +7 -5
  90. package/dist/{hq-service-LYZV7EK7.js → hq-service-TQNPIRHL.js} +8 -7
  91. package/dist/hq-ttl-RKRF7AQX.js +8 -0
  92. package/dist/{hq-tunnel-NIJ5EP2Y.js → hq-tunnel-6VU4IWV4.js} +2 -1
  93. package/dist/{import-claude-code-AYG24RG2.js → import-claude-code-D4F6ZE7I.js} +6 -5
  94. package/dist/index.js +9 -8
  95. package/dist/{init-DRMMFG2G.js → init-5PLABNLR.js} +2 -1
  96. package/dist/ip-allowlist-YDOFO7XJ.js +10 -0
  97. package/dist/{kanban-run-mirror-22HQ5FNG.js → kanban-run-mirror-SZ3S3S3Z.js} +3 -2
  98. package/dist/kanban-supervisor-55XPUHAM.js +8 -0
  99. package/dist/live-settings-input.d.ts +8 -0
  100. package/dist/{mailbox-serve-S536N66F.js → mailbox-serve-MMQCHOHI.js} +5 -3
  101. package/dist/{mcp-LBS45HWZ.js → mcp-2XWBJEQN.js} +4 -3
  102. package/dist/{modeldiag-NEPTLFZW.js → modeldiag-ERXYJODJ.js} +8 -7
  103. package/dist/{per-subcommand-help-VKPV3OEY.js → per-subcommand-help-D6J4ZXW2.js} +4 -3
  104. package/dist/{permissions-PL27UHYD.js → permissions-6YJ64W65.js} +3 -2
  105. package/dist/plugin-config.d.ts +6 -0
  106. package/dist/{plugin-usage-3TZGROK7.js → plugin-usage-TYF5HY4K.js} +6 -5
  107. package/dist/{plugins-ITH4SLO6.js → plugins-XGAXDLPT.js} +6 -5
  108. package/dist/pre-launch/launch-prompts.d.ts +21 -2
  109. package/dist/pre-launch.d.ts +1 -1
  110. package/dist/{project-AOQI5XTK.js → project-V5KNTLV4.js} +2 -1
  111. package/dist/{project-manifest-FTFDCCTZ.js → project-manifest-HXCID644.js} +3 -2
  112. package/dist/{project-picker-NZYJKQQC.js → project-picker-FUSLXKSA.js} +4 -3
  113. package/dist/{projects-T4CZCA25.js → projects-FWRJHW3S.js} +2 -1
  114. package/dist/{providers-models-37DUV2GW.js → providers-models-CDI5GVBX.js} +7 -6
  115. package/dist/{proxy-wiring-K2DORFFL.js → proxy-wiring-FIW6HFJV.js} +4 -3
  116. package/dist/{quick-CNB4Z3HS.js → quick-NPC3N3ZX.js} +2 -1
  117. package/dist/{remote-C74BCNND.js → remote-AKKRJEHK.js} +5 -4
  118. package/dist/{replay-DEI566CW.js → replay-5FOPERB2.js} +2 -1
  119. package/dist/{replay-JJ2NOWD6.js → replay-URJFMQCU.js} +3 -2
  120. package/dist/{rewind-7AULJS7F.js → rewind-GAUXWSTU.js} +3 -2
  121. package/dist/{sage-FFKUOCQL.js → sage-6KKXK2ZS.js} +11 -6
  122. package/dist/{sage-sync-ZMTHB477.js → sage-sync-IN3WKEBN.js} +5 -3
  123. package/dist/{sandbox-TYGD6FI2.js → sandbox-EZQ76MNY.js} +2 -1
  124. package/dist/{sdd-runtime-PF72WHLO.js → sdd-runtime-6MFUXWJK.js} +4 -3
  125. package/dist/{session-move-P2EC2COA.js → session-move-F3N45UQQ.js} +2 -1
  126. package/dist/{sessions-config-VE26SB56.js → sessions-config-SJVQXCIE.js} +7 -6
  127. package/dist/{sessions-doctor-QUL37U32.js → sessions-doctor-DZQTDQRY.js} +2 -1
  128. package/dist/short-circuit-flags-647S5WBL.js +11 -0
  129. package/dist/{simpleui-dist-7BQISSEP.js → simpleui-dist-EE3TJRBG.js} +2 -1
  130. package/dist/{skill-suggest-THANK3LV.js → skill-suggest-LZV2TIPQ.js} +22 -6
  131. package/dist/slash-commands/browser.d.ts +3 -0
  132. package/dist/slash-commands/command-context.d.ts +3 -0
  133. package/dist/slash-commands/doctor.d.ts +0 -9
  134. package/dist/{standalone-auto-update-VQC4GYCM.js → standalone-auto-update-X5SK4M5B.js} +17 -5
  135. package/dist/{standalone-update-HZHDZZOR.js → standalone-update-6U4NP5MN.js} +4 -3
  136. package/dist/subcommands-EGZPBQOO.js +10 -0
  137. package/dist/{tools-skills-33AI6K6S.js → tools-skills-55QVTMSK.js} +2 -1
  138. package/dist/{typesafe-NHC322W5.js → typesafe-YBEADNAH.js} +8 -7
  139. package/dist/{typesafe-brain-replay-C5276FVR.js → typesafe-brain-replay-XBU5RZDY.js} +2 -1
  140. package/dist/{typesafe-judgment-check-GGYYV5UF.js → typesafe-judgment-check-XRLBF5JV.js} +2 -1
  141. package/dist/{typesafe-topic-replay-DB2AYL7V.js → typesafe-topic-replay-L6NKFYPM.js} +4 -3
  142. package/dist/{typesafe-triage-replay-27NDAZ3V.js → typesafe-triage-replay-IRV2HHLN.js} +3 -2
  143. package/dist/{update-6OEPAEUV.js → update-54W7GUS5.js} +6 -5
  144. package/dist/{update-check-VLVT4IV2.js → update-check-JBGP4ZFI.js} +4 -3
  145. package/dist/utils/win32-cmd.d.ts +1 -1
  146. package/dist/{version-JB2UAV2A.js → version-Q6KJ23GB.js} +3 -2
  147. package/dist/version-help-RBZC5GZZ.js +11 -0
  148. package/dist/webui-server/credential-watcher.d.ts +3 -1
  149. package/dist/webui-server/provider-config.d.ts +12 -5
  150. package/dist/{webui-server-6IC3SLZG.js → webui-server-HIUY3RHD.js} +59 -49
  151. package/dist/wiring/management-tools.d.ts +9 -1
  152. package/dist/wiring/slash-commands.d.ts +3 -0
  153. package/dist/{wrongtrace-gate-counters-7C2EAAZL.js → wrongtrace-gate-counters-K44XG3H3.js} +3 -2
  154. package/dist/{wrongtrace-telemetry-3ASFKOZO.js → wrongtrace-telemetry-YS6SUBXK.js} +3 -2
  155. package/dist/ws-runtime.d.ts +6 -0
  156. package/package.json +39 -39
  157. package/LICENSE +0 -21
  158. package/dist/ascii-mode-SG4PRNLP.js +0 -7
  159. package/dist/auto-discover-providers-JX346GOM.js +0 -7
  160. package/dist/chunk-BHXAKTBE.js +0 -10
  161. package/dist/chunk-LDXXMPMS.js +0 -61
  162. package/dist/chunk-TGSPCFBT.js +0 -1
  163. package/dist/hq-ttl-N4DAIAVX.js +0 -7
  164. package/dist/ip-allowlist-NHXO6AKJ.js +0 -9
  165. package/dist/kanban-supervisor-67ECABTD.js +0 -7
  166. package/dist/short-circuit-flags-EXJBJ5GT.js +0 -10
  167. package/dist/subcommands-DTKBXLPU.js +0 -9
  168. package/dist/version-help-JQGRPDJW.js +0 -10
@@ -1,16 +1,17 @@
1
1
  import {
2
2
  openBrowser
3
- } from "./chunk-DAKVBMD4.js";
3
+ } from "./chunk-BCKVNORU.js";
4
4
  import {
5
5
  MAX_BINARY_BYTES,
6
6
  downloadReleaseAssetToFile,
7
7
  findStandaloneRelease,
8
8
  verifyStandaloneDigest
9
- } from "./chunk-SUDNPYWD.js";
9
+ } from "./chunk-FM7DPSYA.js";
10
10
  import {
11
11
  CLI_VERSION,
12
12
  STANDALONE_TARGET
13
- } from "./chunk-F5DCFAKI.js";
13
+ } from "./chunk-HKMOIIPQ.js";
14
+ import "./chunk-W23PY4IJ.js";
14
15
 
15
16
  // src/subcommands/handlers/remote.ts
16
17
  import * as fsp2 from "node:fs/promises";
@@ -573,4 +574,4 @@ export {
573
574
  remoteCmd,
574
575
  runRemoteCommand
575
576
  };
576
- //# sourceMappingURL=remote-C74BCNND.js.map
577
+ //# sourceMappingURL=remote-AKKRJEHK.js.map
@@ -1,3 +1,4 @@
1
+ import "./chunk-W23PY4IJ.js";
1
2
 
2
3
  // src/wiring/replay.ts
3
4
  import { runProviderWithRetry } from "@wrongstack/core/agent";
@@ -30,4 +31,4 @@ function bindReplayToContainer(opts) {
30
31
  export {
31
32
  bindReplayToContainer
32
33
  };
33
- //# sourceMappingURL=replay-DEI566CW.js.map
34
+ //# sourceMappingURL=replay-5FOPERB2.js.map
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  restoreFlags
3
- } from "./chunk-CSAPOCBP.js";
3
+ } from "./chunk-QC6CLAK7.js";
4
+ import "./chunk-W23PY4IJ.js";
4
5
 
5
6
  // src/subcommands/handlers/replay.ts
6
7
  import { ReplayLogStore } from "@wrongstack/core/storage";
@@ -75,4 +76,4 @@ Run a session with --record first, then --replay to re-execute it.`
75
76
  export {
76
77
  replayCmd
77
78
  };
78
- //# sourceMappingURL=replay-JJ2NOWD6.js.map
79
+ //# sourceMappingURL=replay-URJFMQCU.js.map
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  restoreFlags
3
- } from "./chunk-CSAPOCBP.js";
3
+ } from "./chunk-QC6CLAK7.js";
4
+ import "./chunk-W23PY4IJ.js";
4
5
 
5
6
  // src/subcommands/handlers/rewind.ts
6
7
  import {
@@ -187,4 +188,4 @@ ${result.errors.length} error(s):
187
188
  export {
188
189
  rewindCmd
189
190
  };
190
- //# sourceMappingURL=rewind-7AULJS7F.js.map
191
+ //# sourceMappingURL=rewind-GAUXWSTU.js.map
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  restoreFlags
3
- } from "./chunk-CSAPOCBP.js";
3
+ } from "./chunk-QC6CLAK7.js";
4
+ import "./chunk-W23PY4IJ.js";
4
5
 
5
6
  // src/subcommands/handlers/sage.ts
6
7
  import { accessSync, constants, readFileSync } from "node:fs";
@@ -152,7 +153,7 @@ function isSageConnected(target, opts) {
152
153
  return content.split(/\r?\n/).some((line) => isOwnedTomlHeader(line, opts.guide.serverName));
153
154
  }
154
155
  try {
155
- const servers = JSON.parse(content).mcpServers;
156
+ const servers = JSON.parse(stripJsonBom(content)).mcpServers;
156
157
  return typeof servers === "object" && servers !== null && opts.guide.serverName in servers;
157
158
  } catch {
158
159
  return false;
@@ -161,11 +162,14 @@ function isSageConnected(target, opts) {
161
162
  function jsonEntry(target, launch) {
162
163
  return target === "claude-code" ? { type: "stdio", command: launch.command, args: launch.args } : { command: launch.command, args: launch.args };
163
164
  }
165
+ function stripJsonBom(content) {
166
+ return content.replace(/^\uFEFF/, "");
167
+ }
164
168
  function parseJsonObject(content, absPath) {
165
169
  if (content === void 0 || content.trim() === "") return {};
166
170
  let parsed;
167
171
  try {
168
- parsed = JSON.parse(content);
172
+ parsed = JSON.parse(stripJsonBom(content));
169
173
  } catch (error) {
170
174
  throw new Error(
171
175
  `${absPath} is not valid JSON (${toErrorMessage(error)}); fix it by hand, nothing was changed.`
@@ -325,7 +329,8 @@ function findExecutableOnPath(cmd) {
325
329
  };
326
330
  if (cmd.includes("/") || cmd.includes("\\")) return exists(cmd) ? path2.resolve(cmd) : null;
327
331
  const suffixes = process.platform === "win32" && path2.extname(cmd) === "" ? (process.env["PATHEXT"] ?? ".COM;.EXE;.BAT;.CMD").split(";").filter(Boolean) : [""];
328
- for (const dir of (process.env["PATH"] ?? "").split(path2.delimiter)) {
332
+ for (const rawDir of (process.env["PATH"] ?? "").split(path2.delimiter)) {
333
+ const dir = process.platform === "win32" ? rawDir.trim().replace(/^"|"$/g, "") : rawDir;
329
334
  if (!dir) continue;
330
335
  for (const suffix of suffixes) {
331
336
  const candidate = path2.join(dir, cmd + suffix);
@@ -383,7 +388,7 @@ var sageCmd = async (rawArgs, deps) => {
383
388
  const out = (line) => deps.renderer.write(`${line}
384
389
  `);
385
390
  if (sub === "sync") {
386
- const { runSageHqSyncCommand } = await import("./sage-sync-ZMTHB477.js");
391
+ const { runSageHqSyncCommand } = await import("./sage-sync-IN3WKEBN.js");
387
392
  return runSageHqSyncCommand(deps, args.includes("--restart-service"));
388
393
  }
389
394
  if (sub === "mcp") {
@@ -472,4 +477,4 @@ export {
472
477
  findExecutableOnPath,
473
478
  sageCmd
474
479
  };
475
- //# sourceMappingURL=sage-FFKUOCQL.js.map
480
+ //# sourceMappingURL=sage-6KKXK2ZS.js.map
@@ -1,7 +1,9 @@
1
1
  import {
2
2
  startCliHqConnection
3
- } from "./chunk-4UWCMBPG.js";
4
- import "./chunk-F5DCFAKI.js";
3
+ } from "./chunk-76JE54WD.js";
4
+ import "./chunk-OZCYZYN2.js";
5
+ import "./chunk-HKMOIIPQ.js";
6
+ import "./chunk-W23PY4IJ.js";
5
7
 
6
8
  // src/subcommands/handlers/sage-sync.ts
7
9
  import { resolveHqConfig } from "@wrongstack/core/hq";
@@ -66,4 +68,4 @@ async function runSageHqSyncCommand(deps, restartService, signal) {
66
68
  export {
67
69
  runSageHqSyncCommand
68
70
  };
69
- //# sourceMappingURL=sage-sync-ZMTHB477.js.map
71
+ //# sourceMappingURL=sage-sync-IN3WKEBN.js.map
@@ -1,3 +1,4 @@
1
+ import "./chunk-W23PY4IJ.js";
1
2
 
2
3
  // src/subcommands/handlers/sandbox.ts
3
4
  import { mkdir } from "node:fs/promises";
@@ -128,4 +129,4 @@ export {
128
129
  runSandboxCommand,
129
130
  sandboxCmd
130
131
  };
131
- //# sourceMappingURL=sandbox-TYGD6FI2.js.map
132
+ //# sourceMappingURL=sandbox-EZQ76MNY.js.map
@@ -1,4 +1,4 @@
1
- import "./chunk-TGSPCFBT.js";
1
+ import "./chunk-PY2LMG2V.js";
2
2
  import {
3
3
  advanceToNextTask,
4
4
  autoDetectTaskCompletion,
@@ -14,7 +14,8 @@ import {
14
14
  trySaveImplementationPlan,
15
15
  trySaveSpecFromAIOutput,
16
16
  trySaveTasksFromAIOutput
17
- } from "./chunk-AT2A7RJZ.js";
17
+ } from "./chunk-WDXNBYGD.js";
18
+ import "./chunk-W23PY4IJ.js";
18
19
  export {
19
20
  advanceToNextTask,
20
21
  autoDetectTaskCompletion,
@@ -31,4 +32,4 @@ export {
31
32
  trySaveSpecFromAIOutput,
32
33
  trySaveTasksFromAIOutput
33
34
  };
34
- //# sourceMappingURL=sdd-runtime-PF72WHLO.js.map
35
+ //# sourceMappingURL=sdd-runtime-6MFUXWJK.js.map
@@ -1,3 +1,4 @@
1
+ import "./chunk-W23PY4IJ.js";
1
2
 
2
3
  // src/session-move.ts
3
4
  import * as fs from "node:fs/promises";
@@ -41,4 +42,4 @@ export {
41
42
  describeSessionMove,
42
43
  moveSessionTo
43
44
  };
44
- //# sourceMappingURL=session-move-P2EC2COA.js.map
45
+ //# sourceMappingURL=session-move-F3N45UQQ.js.map
@@ -1,16 +1,17 @@
1
1
  import {
2
2
  activeProfileConfigPath
3
- } from "./chunk-YMXXOOFN.js";
3
+ } from "./chunk-SPSHEZ46.js";
4
4
  import {
5
5
  backupCurrent,
6
6
  getHistoryEntry,
7
7
  listHistory,
8
8
  restoreFromHistory,
9
9
  restoreLast
10
- } from "./chunk-4BX2YDTQ.js";
10
+ } from "./chunk-BIGSVBPI.js";
11
11
  import {
12
12
  restoreFlags
13
- } from "./chunk-CSAPOCBP.js";
13
+ } from "./chunk-QC6CLAK7.js";
14
+ import "./chunk-W23PY4IJ.js";
14
15
 
15
16
  // src/subcommands/handlers/sessions-config.ts
16
17
  import * as path2 from "node:path";
@@ -325,7 +326,7 @@ var sessionsCmd = async (args, deps) => {
325
326
  return sessionsFleetCmd(args.slice(1), deps);
326
327
  }
327
328
  if (sub === "doctor") {
328
- const { sessionsDoctorCmd } = await import("./sessions-doctor-QUL37U32.js");
329
+ const { sessionsDoctorCmd } = await import("./sessions-doctor-DZQTDQRY.js");
329
330
  return sessionsDoctorCmd(args.slice(1), deps);
330
331
  }
331
332
  if (!deps.sessionStore) {
@@ -393,7 +394,7 @@ var sessionsCmd = async (args, deps) => {
393
394
  return 1;
394
395
  }
395
396
  try {
396
- const { moveSessionTo, describeSessionMove } = await import("./session-move-P2EC2COA.js");
397
+ const { moveSessionTo, describeSessionMove } = await import("./session-move-F3N45UQQ.js");
397
398
  const result = await moveSessionTo({
398
399
  store: deps.sessionStore,
399
400
  sessionId,
@@ -536,4 +537,4 @@ export {
536
537
  configCmd,
537
538
  sessionsCmd
538
539
  };
539
- //# sourceMappingURL=sessions-config-VE26SB56.js.map
540
+ //# sourceMappingURL=sessions-config-SJVQXCIE.js.map
@@ -1,3 +1,4 @@
1
+ import "./chunk-W23PY4IJ.js";
1
2
 
2
3
  // src/subcommands/handlers/sessions-doctor.ts
3
4
  import {
@@ -142,4 +143,4 @@ var sessionsDoctorCmd = async (args, deps) => {
142
143
  export {
143
144
  sessionsDoctorCmd
144
145
  };
145
- //# sourceMappingURL=sessions-doctor-QUL37U32.js.map
146
+ //# sourceMappingURL=sessions-doctor-DZQTDQRY.js.map
@@ -0,0 +1,11 @@
1
+ import {
2
+ handleHelpVersionShortCircuit
3
+ } from "./chunk-CIGEY7NU.js";
4
+ import "./chunk-75OLD563.js";
5
+ import "./chunk-6VPWQ4TG.js";
6
+ import "./chunk-HKMOIIPQ.js";
7
+ import "./chunk-W23PY4IJ.js";
8
+ export {
9
+ handleHelpVersionShortCircuit
10
+ };
11
+ //# sourceMappingURL=short-circuit-flags-647S5WBL.js.map
@@ -1,3 +1,4 @@
1
+ import "./chunk-W23PY4IJ.js";
1
2
 
2
3
  // src/simpleui-dist.ts
3
4
  import { spawn } from "node:child_process";
@@ -100,4 +101,4 @@ export {
100
101
  ensureSimpleUiDistDir,
101
102
  resolveSimpleUiDistDir
102
103
  };
103
- //# sourceMappingURL=simpleui-dist-7BQISSEP.js.map
104
+ //# sourceMappingURL=simpleui-dist-EE3TJRBG.js.map
@@ -1,3 +1,4 @@
1
+ import "./chunk-W23PY4IJ.js";
1
2
 
2
3
  // src/subcommands/handlers/skill-suggest.ts
3
4
  import * as fs from "node:fs/promises";
@@ -6,6 +7,7 @@ import {
6
7
  buildSuggesterFromConfig,
7
8
  parseEvalJsonl,
8
9
  scoreSuggestions,
10
+ skillPromptExclusionReasons,
9
11
  sweepThresholds,
10
12
  unknownGoldLabels
11
13
  } from "@wrongstack/core/skills";
@@ -41,9 +43,11 @@ var skillSuggestCmd = async (args, deps) => {
41
43
  write(USAGE);
42
44
  return 1;
43
45
  }
46
+ const availableToolNames = deps.toolRegistry?.list().map((tool) => tool.name);
44
47
  const built = buildSuggesterFromConfig({
45
48
  config: deps.config,
46
- skillLoader: deps.skillLoader
49
+ skillLoader: deps.skillLoader,
50
+ availableToolNames
47
51
  });
48
52
  if ("error" in built) {
49
53
  write(color.red(`skill-suggest: ${built.error}`));
@@ -55,7 +59,7 @@ var skillSuggestCmd = async (args, deps) => {
55
59
  file: path.resolve(deps.cwd, evalFile),
56
60
  sweep,
57
61
  suggester,
58
- rosterNames: (await deps.skillLoader?.list())?.map((s) => s.name) ?? [],
62
+ rosterNames: (await deps.skillLoader?.list())?.filter((skill) => skillPromptExclusionReasons(skill, availableToolNames).length === 0).map((skill) => skill.name) ?? [],
59
63
  write
60
64
  });
61
65
  }
@@ -157,6 +161,7 @@ async function runEval(input) {
157
161
  for (const error of errors) {
158
162
  write(color.yellow(` line ${error.line}: ${error.reason}`));
159
163
  }
164
+ if (errors.length > 0) return 1;
160
165
  if (requests.length === 0) {
161
166
  write(color.red("skill-suggest: no usable cases in that file"));
162
167
  return 1;
@@ -166,6 +171,11 @@ async function runEval(input) {
166
171
  write(color.yellow(` gold labels not in this roster: ${unknown.join(", ")}`));
167
172
  write(color.yellow(" those cases can never be scored correct \u2014 fix or remove them"));
168
173
  write("");
174
+ return 1;
175
+ }
176
+ if (new Set(requests.map((request) => request.text)).size !== requests.length) {
177
+ write(color.red("skill-suggest: duplicate request text \u2014 remove duplicates before evaluation"));
178
+ return 1;
169
179
  }
170
180
  const covered = requests.filter((r) => r.gold).length;
171
181
  write(
@@ -195,10 +205,16 @@ async function runEval(input) {
195
205
  );
196
206
  }
197
207
  write("");
198
- const failed = traces.filter((row) => row.trace.stop === "error").length;
208
+ const failed = traces.filter(
209
+ (row) => !["suggested", "gate", "fits"].includes(row.trace.stop)
210
+ ).length;
199
211
  if (failed > 0) {
200
- write(color.yellow(` ${failed} case(s) failed outright and count as "suggested nothing"`));
201
- write("");
212
+ write(
213
+ color.yellow(
214
+ ` ${failed} case(s) were not evaluated \u2014 no accuracy score or threshold sweep produced`
215
+ )
216
+ );
217
+ return 1;
202
218
  }
203
219
  const byText = new Map(traces.map((row) => [row.request.text, row.trace]));
204
220
  const { score, cases } = scoreSuggestions(
@@ -287,4 +303,4 @@ function truncate(text, max) {
287
303
  export {
288
304
  skillSuggestCmd
289
305
  };
290
- //# sourceMappingURL=skill-suggest-THANK3LV.js.map
306
+ //# sourceMappingURL=skill-suggest-LZV2TIPQ.js.map
@@ -0,0 +1,3 @@
1
+ import type { SlashCommand } from '@wrongstack/core/types';
2
+ export declare function buildBrowserCommand(): SlashCommand;
3
+ //# sourceMappingURL=browser.d.ts.map
@@ -28,6 +28,9 @@ export interface SlashCommandContext {
28
28
  compact(ctx: Context, opts?: CompactOptions): Promise<CompactReport>;
29
29
  };
30
30
  sessionStore?: SessionStore | undefined;
31
+ sessionRef?: {
32
+ current?: import('@wrongstack/core/types').SessionWriter | undefined;
33
+ } | undefined;
31
34
  skillLoader?: SkillLoader | undefined;
32
35
  tokenCounter: TokenCounter;
33
36
  renderer: Renderer;
@@ -1,13 +1,4 @@
1
1
  import type { SlashCommand } from '@wrongstack/core/types';
2
2
  import type { SlashCommandContext } from './command-context.js';
3
- /**
4
- * `/doctor` — diagnose and auto-repair the persisted config files.
5
- *
6
- * Report mode (bare `/doctor`) never writes anything. `/doctor fix` backs the
7
- * file up first (config.json.last + a timestamped .bak, the same convention
8
- * config-history uses), then writes the repaired config and mirrors it into
9
- * the in-memory store. A config that fails to parse at all is restored from
10
- * the newest parsable backup.
11
- */
12
3
  export declare function buildDoctorCommand(opts: SlashCommandContext): SlashCommand;
13
4
  //# sourceMappingURL=doctor.d.ts.map
@@ -4,14 +4,15 @@ import {
4
4
  findStandaloneRelease,
5
5
  installExecutableFrom,
6
6
  verifyStandaloneDigest
7
- } from "./chunk-SUDNPYWD.js";
7
+ } from "./chunk-FM7DPSYA.js";
8
8
  import {
9
9
  isNewer
10
- } from "./chunk-DIOODAYM.js";
10
+ } from "./chunk-H53EXXAU.js";
11
11
  import {
12
12
  CLI_VERSION,
13
13
  STANDALONE_TARGET
14
- } from "./chunk-F5DCFAKI.js";
14
+ } from "./chunk-HKMOIIPQ.js";
15
+ import "./chunk-W23PY4IJ.js";
15
16
 
16
17
  // src/standalone-auto-update.ts
17
18
  import { randomBytes } from "node:crypto";
@@ -22,6 +23,7 @@ var PENDING_FILE = "pending.json";
22
23
  var APPLIED_FILE = "last-applied.json";
23
24
  var LOCK_FILE = "update.lock";
24
25
  var LOCK_STALE_MS = 45 * 6e4;
26
+ var LOCK_TORN_GRACE_MS = 3e4;
25
27
  var DOWNLOAD_TIMEOUT_MS = 30 * 6e4;
26
28
  function updatesDir(root = wstackGlobalRoot()) {
27
29
  return path.join(root, "updates");
@@ -81,7 +83,17 @@ function acquireLock(dir) {
81
83
  let owner = {};
82
84
  try {
83
85
  owner = JSON.parse(fs.readFileSync(lock, "utf8"));
84
- } catch {
86
+ } catch (readErr) {
87
+ const code = readErr.code;
88
+ if (code === "ENOENT") continue;
89
+ if (code !== void 0) return void 0;
90
+ let ageMs;
91
+ try {
92
+ ageMs = Date.now() - fs.statSync(lock).mtimeMs;
93
+ } catch {
94
+ continue;
95
+ }
96
+ if (ageMs < LOCK_TORN_GRACE_MS) return void 0;
85
97
  }
86
98
  const fresh = typeof owner.pid === "number" && pidAlive(owner.pid) && typeof owner.at === "number" && Date.now() - owner.at < LOCK_STALE_MS;
87
99
  if (fresh) return void 0;
@@ -246,4 +258,4 @@ export {
246
258
  startStandaloneAutoUpdate,
247
259
  takeAppliedUpdate
248
260
  };
249
- //# sourceMappingURL=standalone-auto-update-VQC4GYCM.js.map
261
+ //# sourceMappingURL=standalone-auto-update-X5SK4M5B.js.map
@@ -8,8 +8,9 @@ import {
8
8
  standaloneAssetName,
9
9
  updateStandaloneBinary,
10
10
  verifyStandaloneDigest
11
- } from "./chunk-SUDNPYWD.js";
12
- import "./chunk-F5DCFAKI.js";
11
+ } from "./chunk-FM7DPSYA.js";
12
+ import "./chunk-HKMOIIPQ.js";
13
+ import "./chunk-W23PY4IJ.js";
13
14
  export {
14
15
  MAX_BINARY_BYTES,
15
16
  fetchLatestStandaloneVersion,
@@ -21,4 +22,4 @@ export {
21
22
  updateStandaloneBinary,
22
23
  verifyStandaloneDigest
23
24
  };
24
- //# sourceMappingURL=standalone-update-HZHDZZOR.js.map
25
+ //# sourceMappingURL=standalone-update-6U4NP5MN.js.map
@@ -0,0 +1,10 @@
1
+ import {
2
+ subcommandNames,
3
+ subcommands
4
+ } from "./chunk-ML3US333.js";
5
+ import "./chunk-W23PY4IJ.js";
6
+ export {
7
+ subcommandNames,
8
+ subcommands
9
+ };
10
+ //# sourceMappingURL=subcommands-EGZPBQOO.js.map
@@ -1,3 +1,4 @@
1
+ import "./chunk-W23PY4IJ.js";
1
2
 
2
3
  // src/subcommands/handlers/tools-skills.ts
3
4
  import { color } from "@wrongstack/core/utils";
@@ -25,4 +26,4 @@ export {
25
26
  skillsCmd,
26
27
  toolsCmd
27
28
  };
28
- //# sourceMappingURL=tools-skills-33AI6K6S.js.map
29
+ //# sourceMappingURL=tools-skills-55QVTMSK.js.map
@@ -1,10 +1,11 @@
1
1
  import {
2
2
  maskedKey,
3
3
  mutateConfigProviders
4
- } from "./chunk-ZYACRPLN.js";
4
+ } from "./chunk-ZCXZGYO5.js";
5
5
  import {
6
6
  activeProfileConfigPath
7
- } from "./chunk-YMXXOOFN.js";
7
+ } from "./chunk-SPSHEZ46.js";
8
+ import "./chunk-W23PY4IJ.js";
8
9
 
9
10
  // src/subcommands/handlers/typesafe.ts
10
11
  import { execFile } from "node:child_process";
@@ -80,13 +81,13 @@ var typesafeCmd = async (args, deps) => {
80
81
  case "lint-conventions":
81
82
  return await lintConventions(deps, write);
82
83
  case "replay-topic-shift":
83
- return await (await import("./typesafe-topic-replay-DB2AYL7V.js")).replayTopicShift(deps, write);
84
+ return await (await import("./typesafe-topic-replay-L6NKFYPM.js")).replayTopicShift(deps, write);
84
85
  case "replay-memory-triage":
85
- return await (await import("./typesafe-triage-replay-27NDAZ3V.js")).replayMemoryTriage(deps, write);
86
+ return await (await import("./typesafe-triage-replay-IRV2HHLN.js")).replayMemoryTriage(deps, write);
86
87
  case "replay-brain-ledger":
87
- return await (await import("./typesafe-brain-replay-C5276FVR.js")).replayBrainLedger(deps, write);
88
+ return await (await import("./typesafe-brain-replay-XBU5RZDY.js")).replayBrainLedger(deps, write);
88
89
  case "check-judgments":
89
- return await (await import("./typesafe-judgment-check-GGYYV5UF.js")).checkJudgments(deps, write);
90
+ return await (await import("./typesafe-judgment-check-XRLBF5JV.js")).checkJudgments(deps, write);
90
91
  default:
91
92
  write(`Unknown subcommand: ${sub}
92
93
  `);
@@ -340,4 +341,4 @@ async function lintConventions(deps, write) {
340
341
  export {
341
342
  typesafeCmd
342
343
  };
343
- //# sourceMappingURL=typesafe-NHC322W5.js.map
344
+ //# sourceMappingURL=typesafe-YBEADNAH.js.map
@@ -1,3 +1,4 @@
1
+ import "./chunk-W23PY4IJ.js";
1
2
 
2
3
  // src/subcommands/handlers/typesafe-brain-replay.ts
3
4
  import { readFile } from "node:fs/promises";
@@ -219,4 +220,4 @@ function summarize(cases) {
219
220
  export {
220
221
  replayBrainLedger
221
222
  };
222
- //# sourceMappingURL=typesafe-brain-replay-C5276FVR.js.map
223
+ //# sourceMappingURL=typesafe-brain-replay-XBU5RZDY.js.map
@@ -1,3 +1,4 @@
1
+ import "./chunk-W23PY4IJ.js";
1
2
 
2
3
  // src/subcommands/handlers/typesafe-judgment-check.ts
3
4
  import { checkJevJudgments } from "@wrongstack/runtime/jev-checks";
@@ -26,4 +27,4 @@ async function checkJudgments(deps, write) {
26
27
  export {
27
28
  checkJudgments
28
29
  };
29
- //# sourceMappingURL=typesafe-judgment-check-GGYYV5UF.js.map
30
+ //# sourceMappingURL=typesafe-judgment-check-XRLBF5JV.js.map
@@ -1,9 +1,10 @@
1
1
  import {
2
2
  resolveRuntimeMaxContext
3
- } from "./chunk-CZTXF6HY.js";
3
+ } from "./chunk-BJ4LDJ4H.js";
4
4
  import {
5
5
  createProviderForId
6
- } from "./chunk-YL4KCHZG.js";
6
+ } from "./chunk-FPUB5WWP.js";
7
+ import "./chunk-W23PY4IJ.js";
7
8
 
8
9
  // src/subcommands/handlers/typesafe-topic-replay.ts
9
10
  import { readdir, readFile } from "node:fs/promises";
@@ -231,4 +232,4 @@ async function replayTopicShift(deps, write) {
231
232
  export {
232
233
  replayTopicShift
233
234
  };
234
- //# sourceMappingURL=typesafe-topic-replay-DB2AYL7V.js.map
235
+ //# sourceMappingURL=typesafe-topic-replay-L6NKFYPM.js.map
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  createProviderForId
3
- } from "./chunk-YL4KCHZG.js";
3
+ } from "./chunk-FPUB5WWP.js";
4
+ import "./chunk-W23PY4IJ.js";
4
5
 
5
6
  // src/subcommands/handlers/typesafe-triage-replay.ts
6
7
  import * as path from "node:path";
@@ -212,4 +213,4 @@ async function replayMemoryTriage(deps, write) {
212
213
  export {
213
214
  replayMemoryTriage
214
215
  };
215
- //# sourceMappingURL=typesafe-triage-replay-27NDAZ3V.js.map
216
+ //# sourceMappingURL=typesafe-triage-replay-IRV2HHLN.js.map
@@ -3,14 +3,15 @@ import {
3
3
  detectUpdatePackageName,
4
4
  runUpdateCommand,
5
5
  updateCmd
6
- } from "./chunk-RWNI5OWT.js";
7
- import "./chunk-BHXAKTBE.js";
8
- import "./chunk-DIOODAYM.js";
9
- import "./chunk-F5DCFAKI.js";
6
+ } from "./chunk-6KJU6POA.js";
7
+ import "./chunk-C4654QI2.js";
8
+ import "./chunk-H53EXXAU.js";
9
+ import "./chunk-HKMOIIPQ.js";
10
+ import "./chunk-W23PY4IJ.js";
10
11
  export {
11
12
  detectUpdatePackageManager,
12
13
  detectUpdatePackageName,
13
14
  runUpdateCommand,
14
15
  updateCmd
15
16
  };
16
- //# sourceMappingURL=update-6OEPAEUV.js.map
17
+ //# sourceMappingURL=update-54W7GUS5.js.map
@@ -5,8 +5,9 @@ import {
5
5
  fetchLatestFromNpm,
6
6
  getUpdateNotification,
7
7
  isNewer
8
- } from "./chunk-DIOODAYM.js";
9
- import "./chunk-F5DCFAKI.js";
8
+ } from "./chunk-H53EXXAU.js";
9
+ import "./chunk-HKMOIIPQ.js";
10
+ import "./chunk-W23PY4IJ.js";
10
11
  export {
11
12
  cachePath,
12
13
  checkForUpdate,
@@ -15,4 +16,4 @@ export {
15
16
  getUpdateNotification,
16
17
  isNewer
17
18
  };
18
- //# sourceMappingURL=update-check-VLVT4IV2.js.map
19
+ //# sourceMappingURL=update-check-JBGP4ZFI.js.map
@@ -6,5 +6,5 @@
6
6
  * left metacharacter-bearing arguments unquoted under `shell: true`. Keeping one
7
7
  * implementation in core removes the divergence risk (WS-004 / CMDI-005).
8
8
  */
9
- export { buildWin32CmdShimInvocation, } from '@wrongstack/core/utils';
9
+ export { buildWin32CmdShimInvocation } from '@wrongstack/core/utils';
10
10
  //# sourceMappingURL=win32-cmd.d.ts.map
@@ -2,10 +2,11 @@ import {
2
2
  API_VERSION,
3
3
  CLI_VERSION,
4
4
  STANDALONE_TARGET
5
- } from "./chunk-F5DCFAKI.js";
5
+ } from "./chunk-HKMOIIPQ.js";
6
+ import "./chunk-W23PY4IJ.js";
6
7
  export {
7
8
  API_VERSION,
8
9
  CLI_VERSION,
9
10
  STANDALONE_TARGET
10
11
  };
11
- //# sourceMappingURL=version-JB2UAV2A.js.map
12
+ //# sourceMappingURL=version-Q6KJ23GB.js.map
@@ -0,0 +1,11 @@
1
+ import {
2
+ helpCmd,
3
+ versionCmd
4
+ } from "./chunk-6VPWQ4TG.js";
5
+ import "./chunk-HKMOIIPQ.js";
6
+ import "./chunk-W23PY4IJ.js";
7
+ export {
8
+ helpCmd,
9
+ versionCmd
10
+ };
11
+ //# sourceMappingURL=version-help-RBZC5GZZ.js.map
@@ -1,5 +1,7 @@
1
1
  /**
2
- * Hot-reload provider credentials and routing configuration when config.json changes on disk.
2
+ * Refresh provider panels, routing configuration and the display language when
3
+ * config.json changes on disk. The live provider itself is rebuilt by the CLI
4
+ * host's provider-runtime watcher (see the note in the callback).
3
5
  *
4
6
  * @module webui-server/credential-watcher
5
7
  */