@wrongstack/cli 0.296.4 → 0.298.0

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 (523) hide show
  1. package/dist/{acp-A5OSIU2P.js → acp-S4LZQB66.js} +91 -23
  2. package/dist/{auth-CJWQJVRH.js → auth-NLLGEYQR.js} +3 -3
  3. package/dist/boot/dispatch-webui.d.ts +7 -0
  4. package/dist/boot/governance-evidence-candidate.d.ts +3 -0
  5. package/dist/boot/governance-shadow-bridge.d.ts +19 -0
  6. package/dist/boot/governance-trace-context.d.ts +64 -0
  7. package/dist/boot/launch-banner.d.ts +22 -0
  8. package/dist/boot/tui-session-resume.d.ts +10 -1
  9. package/dist/chimera-leader-wake.d.ts +57 -0
  10. package/dist/chimera-reviewer-policy.d.ts +89 -1
  11. package/dist/chimera-subagent-ladder.d.ts +72 -0
  12. package/dist/{chunk-AZESNNIC.js → chunk-4HH3YGG4.js} +3 -3
  13. package/dist/{chunk-IHBYBYGA.js → chunk-A6Q5KGLV.js} +51 -18
  14. package/dist/{chunk-ABXK4VVY.js → chunk-ARWGQUB3.js} +2 -1
  15. package/dist/{chunk-OI7GWJDS.js → chunk-C5GH4YBL.js} +1389 -184
  16. package/dist/{chunk-TADVX644.js → chunk-GO3TJICK.js} +11 -2
  17. package/dist/{chunk-JBTFWWKV.js → chunk-I2BM6FK6.js} +9 -4
  18. package/dist/{chunk-AXVZMEWG.js → chunk-I5MEUFDI.js} +2 -2
  19. package/dist/{chunk-WY7KKOUK.js → chunk-JW75HY4F.js} +31 -10
  20. package/dist/chunk-U3SS4NRH.js +10 -0
  21. package/dist/{chunk-Z7YGASQP.js → chunk-V3XH6XBJ.js} +30 -26
  22. package/dist/{chunk-BQCAJ7FI.js → chunk-XTIXVJXP.js} +16 -3
  23. package/dist/{cli-main-TOAWVJDY.js → cli-main-TJEU4OUY.js} +25912 -25134
  24. package/dist/cli-main-helpers.d.ts +42 -2
  25. package/dist/{execution-O7I5DYE6.js → execution-INOV5P7N.js} +1264 -650
  26. package/dist/execution-chimera-cascade.d.ts +7 -1
  27. package/dist/execution-chimera-review.d.ts +35 -0
  28. package/dist/fleet/host-types.d.ts +6 -1
  29. package/dist/fleet-statusline.d.ts +1 -0
  30. package/dist/goal-host.d.ts +1 -1
  31. package/dist/governance-V2Z42RBE.js +65 -0
  32. package/dist/governance-hq-telemetry.d.ts +17 -0
  33. package/dist/{hq-JUYKUNJX.js → hq-WO6CLUSI.js} +2 -2
  34. package/dist/hq-publisher.d.ts +3 -2
  35. package/dist/hq-server/auth.d.ts +33 -2
  36. package/dist/hq-server/login-attempt-store.d.ts +73 -0
  37. package/dist/hq-server/routes/auth-handlers.d.ts +73 -5
  38. package/dist/hq-server/routes.d.ts +5 -5
  39. package/dist/hq-server/types.d.ts +44 -2
  40. package/dist/hq-server/utils.d.ts +51 -6
  41. package/dist/hq-server/ws.d.ts +61 -2
  42. package/dist/{hq-server-6AQ3BXZA.js → hq-server-6TSAORAC.js} +2 -2
  43. package/dist/hq-server.d.ts +10 -0
  44. package/dist/index.js +337 -42
  45. package/dist/kanban-hq-sync.d.ts +13 -1
  46. package/dist/live-settings-input.d.ts +10 -1
  47. package/dist/{mailbox-serve-2UWHEN3M.js → mailbox-serve-DBOOOOWZ.js} +50 -8
  48. package/dist/{sdd-runtime-JG4EEKL6.js → sdd-runtime-AIJCJGWC.js} +2 -2
  49. package/dist/services/sdd/state.d.ts +3 -3
  50. package/dist/settings-menu.d.ts +1 -1
  51. package/dist/slash-commands/command-context.d.ts +2 -0
  52. package/dist/slash-commands/fallback.d.ts +2 -0
  53. package/dist/slash-commands/goal-refiner.d.ts +1 -1
  54. package/dist/slash-commands/goal.d.ts +1 -1
  55. package/dist/subcommands/handlers/acp-connection-gate.d.ts +20 -0
  56. package/dist/subcommands/handlers/governance.d.ts +8 -0
  57. package/dist/{update-YC4TYW2Y.js → update-MV6TUACD.js} +3 -3
  58. package/dist/utils/win32-cmd.d.ts +9 -6
  59. package/dist/{version-help-DROHZRW6.js → version-help-ASKQYXDJ.js} +2 -2
  60. package/dist/webui-server/kanban-host-adapter.d.ts +1 -1
  61. package/dist/webui-server/session-start-payload.d.ts +4 -0
  62. package/dist/{webui-server-ZF5KVGC5.js → webui-server-PCLSXX6L.js} +164 -134
  63. package/dist/webui-server-options.d.ts +7 -0
  64. package/dist/wiring/brain-and-orchestration.d.ts +2 -0
  65. package/dist/wiring/hq-telemetry.d.ts +4 -3
  66. package/dist/wiring/lifecycle-plugins.d.ts +5 -8
  67. package/dist/wiring/metrics.d.ts +1 -1
  68. package/dist/wiring/provider-runtime-setup.d.ts +2 -2
  69. package/package.json +23 -22
  70. package/dist/acp-A5OSIU2P.js.map +0 -7
  71. package/dist/acp-registry-cache.d.ts.map +0 -1
  72. package/dist/acp-server-agent.d.ts.map +0 -1
  73. package/dist/arg-parser.d.ts.map +0 -1
  74. package/dist/audit-2ZSFGNIF.js.map +0 -7
  75. package/dist/auth-CJWQJVRH.js.map +0 -7
  76. package/dist/auth-menu/add-provider.d.ts.map +0 -1
  77. package/dist/auth-menu/anthropic-oauth.d.ts.map +0 -1
  78. package/dist/auth-menu/auth-menu-audit.d.ts.map +0 -1
  79. package/dist/auth-menu/direct.d.ts.map +0 -1
  80. package/dist/auth-menu/github-copilot-oauth.d.ts.map +0 -1
  81. package/dist/auth-menu/helpers.d.ts.map +0 -1
  82. package/dist/auth-menu/index.d.ts.map +0 -1
  83. package/dist/auth-menu/local-presets.d.ts.map +0 -1
  84. package/dist/auth-menu/local.d.ts.map +0 -1
  85. package/dist/auth-menu/loopback-server.d.ts.map +0 -1
  86. package/dist/auth-menu/oauth-menu.d.ts.map +0 -1
  87. package/dist/auth-menu/openai-codex-oauth.d.ts.map +0 -1
  88. package/dist/auth-menu/panel-service.d.ts.map +0 -1
  89. package/dist/auth-menu/provider-menu.d.ts.map +0 -1
  90. package/dist/auth-menu/shared.d.ts.map +0 -1
  91. package/dist/auth-menu/top-menu.d.ts.map +0 -1
  92. package/dist/auth-menu/types.d.ts.map +0 -1
  93. package/dist/auth-menu.d.ts.map +0 -1
  94. package/dist/bench-7ZDWSNEF.js.map +0 -7
  95. package/dist/boot/auto-discover-providers.d.ts.map +0 -1
  96. package/dist/boot/brain-decision-log.d.ts.map +0 -1
  97. package/dist/boot/config-backup-recovery.d.ts.map +0 -1
  98. package/dist/boot/container-wiring.d.ts.map +0 -1
  99. package/dist/boot/dispatch-singleshot.d.ts.map +0 -1
  100. package/dist/boot/dispatch-tui.d.ts.map +0 -1
  101. package/dist/boot/dispatch-webui.d.ts.map +0 -1
  102. package/dist/boot/event-wiring.d.ts.map +0 -1
  103. package/dist/boot/execution-mode.d.ts.map +0 -1
  104. package/dist/boot/launch-menu.d.ts.map +0 -1
  105. package/dist/boot/short-circuit-desktop.d.ts.map +0 -1
  106. package/dist/boot/short-circuit-flags.d.ts.map +0 -1
  107. package/dist/boot/short-circuit-hq.d.ts.map +0 -1
  108. package/dist/boot/simpleui-full-auto.d.ts.map +0 -1
  109. package/dist/boot/system-prompt-builder.d.ts.map +0 -1
  110. package/dist/boot/system-prompt.d.ts.map +0 -1
  111. package/dist/boot/tool-registry.d.ts.map +0 -1
  112. package/dist/boot/tui-coordinator-callbacks.d.ts.map +0 -1
  113. package/dist/boot/tui-coordinator-setup.d.ts.map +0 -1
  114. package/dist/boot/tui-debug-stream.d.ts.map +0 -1
  115. package/dist/boot/tui-goal-wiring.d.ts.map +0 -1
  116. package/dist/boot/tui-live-sessions.d.ts.map +0 -1
  117. package/dist/boot/tui-project-picker-callback.d.ts.map +0 -1
  118. package/dist/boot/tui-project-spawn.d.ts.map +0 -1
  119. package/dist/boot/tui-project-switch.d.ts.map +0 -1
  120. package/dist/boot/tui-runtime-state.d.ts.map +0 -1
  121. package/dist/boot/tui-sdd-callback.d.ts.map +0 -1
  122. package/dist/boot/tui-session-resume.d.ts.map +0 -1
  123. package/dist/boot/tui-settings-adapter.d.ts.map +0 -1
  124. package/dist/boot-config.d.ts.map +0 -1
  125. package/dist/boot.d.ts.map +0 -1
  126. package/dist/brain-menu/panel-service.d.ts.map +0 -1
  127. package/dist/chimera-review-task.d.ts.map +0 -1
  128. package/dist/chimera-reviewer-policy.d.ts.map +0 -1
  129. package/dist/chronicle-QQEQFSSE.js.map +0 -7
  130. package/dist/chunk-5N34EWJR.js.map +0 -7
  131. package/dist/chunk-66T43Q4Y.js.map +0 -7
  132. package/dist/chunk-7OCVIDC7.js.map +0 -7
  133. package/dist/chunk-ABXK4VVY.js.map +0 -7
  134. package/dist/chunk-AXVZMEWG.js.map +0 -7
  135. package/dist/chunk-AZESNNIC.js.map +0 -7
  136. package/dist/chunk-BGFM3PD7.js.map +0 -7
  137. package/dist/chunk-BQCAJ7FI.js.map +0 -7
  138. package/dist/chunk-DPJZQCVP.js.map +0 -7
  139. package/dist/chunk-F4PEGAJZ.js.map +0 -7
  140. package/dist/chunk-IHBYBYGA.js.map +0 -7
  141. package/dist/chunk-JBSQ7ONN.js.map +0 -7
  142. package/dist/chunk-JBTFWWKV.js.map +0 -7
  143. package/dist/chunk-JUHRI6OV.js.map +0 -7
  144. package/dist/chunk-OI7GWJDS.js.map +0 -7
  145. package/dist/chunk-OP47B3IX.js.map +0 -7
  146. package/dist/chunk-PJHET45A.js.map +0 -7
  147. package/dist/chunk-Q5GTM25S.js.map +0 -7
  148. package/dist/chunk-QD544J2B.js.map +0 -7
  149. package/dist/chunk-QUNHS6O3.js.map +0 -7
  150. package/dist/chunk-TADVX644.js.map +0 -7
  151. package/dist/chunk-TGDHN4LM.js.map +0 -7
  152. package/dist/chunk-TYO2OVAD.js.map +0 -7
  153. package/dist/chunk-VCYZ3WZV.js.map +0 -7
  154. package/dist/chunk-VJUEZZYB.js +0 -29
  155. package/dist/chunk-VJUEZZYB.js.map +0 -7
  156. package/dist/chunk-WHOIR577.js.map +0 -7
  157. package/dist/chunk-WY7KKOUK.js.map +0 -7
  158. package/dist/chunk-XJXDOF63.js.map +0 -7
  159. package/dist/chunk-XWEGWYDU.js.map +0 -7
  160. package/dist/chunk-YWUPHRGB.js.map +0 -7
  161. package/dist/chunk-Z7YGASQP.js.map +0 -7
  162. package/dist/cli-bundled-prompts.d.ts.map +0 -1
  163. package/dist/cli-bundled-skills.d.ts.map +0 -1
  164. package/dist/cli-context.d.ts.map +0 -1
  165. package/dist/cli-entry-main.d.ts.map +0 -1
  166. package/dist/cli-entry-point.d.ts.map +0 -1
  167. package/dist/cli-eternal-flag.d.ts.map +0 -1
  168. package/dist/cli-main-TOAWVJDY.js.map +0 -7
  169. package/dist/cli-main-helpers.d.ts.map +0 -1
  170. package/dist/cli-main.d.ts.map +0 -1
  171. package/dist/cli-update-notice.d.ts.map +0 -1
  172. package/dist/config-doctor.d.ts.map +0 -1
  173. package/dist/config-history.d.ts.map +0 -1
  174. package/dist/context-limit.d.ts.map +0 -1
  175. package/dist/context-overflow-diagnostic.d.ts.map +0 -1
  176. package/dist/diag-doctor-OQ3AA63O.js.map +0 -7
  177. package/dist/diff-renderer.d.ts.map +0 -1
  178. package/dist/execute-deps.d.ts.map +0 -1
  179. package/dist/execution-O7I5DYE6.js.map +0 -7
  180. package/dist/execution-chimera-ask.d.ts.map +0 -1
  181. package/dist/execution-chimera-cascade.d.ts.map +0 -1
  182. package/dist/execution-cleanup.d.ts.map +0 -1
  183. package/dist/execution-kanban-dispatch.d.ts.map +0 -1
  184. package/dist/execution-repl-fleet-callbacks.d.ts.map +0 -1
  185. package/dist/execution-storage-observability.d.ts.map +0 -1
  186. package/dist/execution-tui-next-step-callbacks.d.ts.map +0 -1
  187. package/dist/execution.d.ts.map +0 -1
  188. package/dist/export-TPORYVRZ.js.map +0 -7
  189. package/dist/fleet/host-acp-runner-cache.d.ts.map +0 -1
  190. package/dist/fleet/host-acp.d.ts.map +0 -1
  191. package/dist/fleet/host-concurrency.d.ts.map +0 -1
  192. package/dist/fleet/host-context.d.ts.map +0 -1
  193. package/dist/fleet/host-director-builder.d.ts.map +0 -1
  194. package/dist/fleet/host-director-event-bridges.d.ts.map +0 -1
  195. package/dist/fleet/host-director-services.d.ts.map +0 -1
  196. package/dist/fleet/host-event-bridge.d.ts.map +0 -1
  197. package/dist/fleet/host-helpers.d.ts.map +0 -1
  198. package/dist/fleet/host-learning-tracker.d.ts.map +0 -1
  199. package/dist/fleet/host-learning.d.ts.map +0 -1
  200. package/dist/fleet/host-lifecycle-events.d.ts.map +0 -1
  201. package/dist/fleet/host-paths.d.ts.map +0 -1
  202. package/dist/fleet/host-provider.d.ts.map +0 -1
  203. package/dist/fleet/host-session-writer.d.ts.map +0 -1
  204. package/dist/fleet/host-shadow-pass.d.ts.map +0 -1
  205. package/dist/fleet/host-spawn-types.d.ts.map +0 -1
  206. package/dist/fleet/host-status.d.ts.map +0 -1
  207. package/dist/fleet/host-subagent-factory.d.ts.map +0 -1
  208. package/dist/fleet/host-supervisor.d.ts.map +0 -1
  209. package/dist/fleet/host-task-result-report.d.ts.map +0 -1
  210. package/dist/fleet/host-types.d.ts.map +0 -1
  211. package/dist/fleet/host.d.ts.map +0 -1
  212. package/dist/fleet/routing.d.ts.map +0 -1
  213. package/dist/fleet/status-broadcast.d.ts.map +0 -1
  214. package/dist/fleet/supervisor-registry.d.ts.map +0 -1
  215. package/dist/fleet-statusline.d.ts.map +0 -1
  216. package/dist/goal-host.d.ts.map +0 -1
  217. package/dist/hooks-wiring.d.ts.map +0 -1
  218. package/dist/hq-JUYKUNJX.js.map +0 -7
  219. package/dist/hq-command-controller.d.ts.map +0 -1
  220. package/dist/hq-publisher.d.ts.map +0 -1
  221. package/dist/hq-recovery-html.d.ts.map +0 -1
  222. package/dist/hq-server/audit-actor.d.ts.map +0 -1
  223. package/dist/hq-server/auth-state.d.ts.map +0 -1
  224. package/dist/hq-server/auth.d.ts.map +0 -1
  225. package/dist/hq-server/preflight.d.ts.map +0 -1
  226. package/dist/hq-server/project-root.d.ts.map +0 -1
  227. package/dist/hq-server/routes/auth-handlers.d.ts.map +0 -1
  228. package/dist/hq-server/routes/session-handlers.d.ts.map +0 -1
  229. package/dist/hq-server/routes/system-handlers.d.ts.map +0 -1
  230. package/dist/hq-server/routes.d.ts.map +0 -1
  231. package/dist/hq-server/snapshot.d.ts.map +0 -1
  232. package/dist/hq-server/startup.d.ts.map +0 -1
  233. package/dist/hq-server/trust-boundary.d.ts.map +0 -1
  234. package/dist/hq-server/types.d.ts.map +0 -1
  235. package/dist/hq-server/utils.d.ts.map +0 -1
  236. package/dist/hq-server/ws.d.ts.map +0 -1
  237. package/dist/hq-server-6AQ3BXZA.js.map +0 -7
  238. package/dist/hq-server.d.ts.map +0 -1
  239. package/dist/hq-static-serve.d.ts.map +0 -1
  240. package/dist/hq-ttl-U2FAYFAT.js.map +0 -7
  241. package/dist/hq-tunnel-RFKGC4HI.js.map +0 -7
  242. package/dist/hq-tunnel.d.ts.map +0 -1
  243. package/dist/index.d.ts.map +0 -1
  244. package/dist/index.js.map +0 -7
  245. package/dist/init-E2NDDOHI.js.map +0 -7
  246. package/dist/input-reader.d.ts.map +0 -1
  247. package/dist/kanban-dispatch-route.d.ts.map +0 -1
  248. package/dist/kanban-hq-sync.d.ts.map +0 -1
  249. package/dist/kanban-run-mirror-EKVNGXWW.js.map +0 -7
  250. package/dist/launch-hints.d.ts.map +0 -1
  251. package/dist/live-settings-input.d.ts.map +0 -1
  252. package/dist/mailbox-bridge-bootstrap.d.ts.map +0 -1
  253. package/dist/mailbox-serve-2UWHEN3M.js.map +0 -7
  254. package/dist/mcp-CYLPUEHC.js.map +0 -7
  255. package/dist/mcp-serve.d.ts.map +0 -1
  256. package/dist/modeldiag-HENYJ4N7.js.map +0 -7
  257. package/dist/multi-agent.d.ts.map +0 -1
  258. package/dist/next-task-predictor.d.ts.map +0 -1
  259. package/dist/permission-prompt.d.ts.map +0 -1
  260. package/dist/permissions-FNYLZIL4.js.map +0 -7
  261. package/dist/picker-key-state.d.ts.map +0 -1
  262. package/dist/picker-model-picker.d.ts.map +0 -1
  263. package/dist/picker-ui.d.ts.map +0 -1
  264. package/dist/picker.d.ts.map +0 -1
  265. package/dist/plugin-api-factory.d.ts.map +0 -1
  266. package/dist/plugin-management.d.ts.map +0 -1
  267. package/dist/plugin-usage-OU6X6LM3.js.map +0 -7
  268. package/dist/plugins-4LJ5IUBI.js.map +0 -7
  269. package/dist/pre-launch/launch-prompts.d.ts.map +0 -1
  270. package/dist/pre-launch/project-check.d.ts.map +0 -1
  271. package/dist/pre-launch.d.ts.map +0 -1
  272. package/dist/preflight.d.ts.map +0 -1
  273. package/dist/profile-config-path.d.ts.map +0 -1
  274. package/dist/project-BLQ3ALVL.js.map +0 -7
  275. package/dist/project-manifest-GE25PW4S.js.map +0 -7
  276. package/dist/project-picker-BOCWHBXP.js.map +0 -7
  277. package/dist/project-picker.d.ts.map +0 -1
  278. package/dist/projects-XE76NFNZ.js.map +0 -7
  279. package/dist/provider-config-utils.d.ts.map +0 -1
  280. package/dist/provider-helpers.d.ts.map +0 -1
  281. package/dist/provider-id.d.ts.map +0 -1
  282. package/dist/providers-models-GDELBHZK.js.map +0 -7
  283. package/dist/quick-VIO2BEHS.js.map +0 -7
  284. package/dist/renderer.d.ts.map +0 -1
  285. package/dist/repl-auto-proceed.d.ts.map +0 -1
  286. package/dist/repl-client-registration.d.ts.map +0 -1
  287. package/dist/repl-input.d.ts.map +0 -1
  288. package/dist/repl-options.d.ts.map +0 -1
  289. package/dist/repl-rendering.d.ts.map +0 -1
  290. package/dist/repl-suggestions.d.ts.map +0 -1
  291. package/dist/repl.d.ts.map +0 -1
  292. package/dist/replay-KCTXNMZQ.js.map +0 -7
  293. package/dist/rewind-EJMVFVLS.js.map +0 -7
  294. package/dist/sdd-runtime-JG4EEKL6.js.map +0 -7
  295. package/dist/services/autonomy-mode.d.ts.map +0 -1
  296. package/dist/services/commit-message.d.ts.map +0 -1
  297. package/dist/services/dispatch-classifier.d.ts.map +0 -1
  298. package/dist/services/mcp-management.d.ts.map +0 -1
  299. package/dist/services/project-facts.d.ts.map +0 -1
  300. package/dist/services/project-manifest.d.ts.map +0 -1
  301. package/dist/services/sdd/project-context.d.ts.map +0 -1
  302. package/dist/services/sdd/spec-detection.d.ts.map +0 -1
  303. package/dist/services/sdd/state.d.ts.map +0 -1
  304. package/dist/services/sdd/task-manager.d.ts.map +0 -1
  305. package/dist/services/sdd-runtime.d.ts.map +0 -1
  306. package/dist/services/statusline-config.d.ts.map +0 -1
  307. package/dist/services/suggestion-store.d.ts.map +0 -1
  308. package/dist/session-event-wiring.d.ts.map +0 -1
  309. package/dist/session-stats.d.ts.map +0 -1
  310. package/dist/sessions-config-NLCMK3BY.js.map +0 -7
  311. package/dist/settings-menu.d.ts.map +0 -1
  312. package/dist/shutdown-cleanup.d.ts.map +0 -1
  313. package/dist/simpleui-dist-JIFGUJO7.js.map +0 -7
  314. package/dist/simpleui-dist.d.ts.map +0 -1
  315. package/dist/slash-commands/acp.d.ts.map +0 -1
  316. package/dist/slash-commands/agent-improve.d.ts.map +0 -1
  317. package/dist/slash-commands/agents.d.ts.map +0 -1
  318. package/dist/slash-commands/audit.d.ts.map +0 -1
  319. package/dist/slash-commands/auth.d.ts.map +0 -1
  320. package/dist/slash-commands/autonomy.d.ts.map +0 -1
  321. package/dist/slash-commands/brain.d.ts.map +0 -1
  322. package/dist/slash-commands/btw.d.ts.map +0 -1
  323. package/dist/slash-commands/clear.d.ts.map +0 -1
  324. package/dist/slash-commands/codebase-reindex.d.ts.map +0 -1
  325. package/dist/slash-commands/collab.d.ts.map +0 -1
  326. package/dist/slash-commands/command-context.d.ts.map +0 -1
  327. package/dist/slash-commands/commit-llm.d.ts.map +0 -1
  328. package/dist/slash-commands/compact.d.ts.map +0 -1
  329. package/dist/slash-commands/context.d.ts.map +0 -1
  330. package/dist/slash-commands/coordinator.d.ts.map +0 -1
  331. package/dist/slash-commands/delegate.d.ts.map +0 -1
  332. package/dist/slash-commands/design.d.ts.map +0 -1
  333. package/dist/slash-commands/dev.d.ts.map +0 -1
  334. package/dist/slash-commands/diag-stats.d.ts.map +0 -1
  335. package/dist/slash-commands/dispatch-llm.d.ts.map +0 -1
  336. package/dist/slash-commands/doctor.d.ts.map +0 -1
  337. package/dist/slash-commands/enhance.d.ts.map +0 -1
  338. package/dist/slash-commands/ensemble.d.ts.map +0 -1
  339. package/dist/slash-commands/f-keys.d.ts.map +0 -1
  340. package/dist/slash-commands/fallback.d.ts.map +0 -1
  341. package/dist/slash-commands/fix-classifier.d.ts.map +0 -1
  342. package/dist/slash-commands/fix.d.ts.map +0 -1
  343. package/dist/slash-commands/fleet.d.ts.map +0 -1
  344. package/dist/slash-commands/git.d.ts.map +0 -1
  345. package/dist/slash-commands/gitid.d.ts.map +0 -1
  346. package/dist/slash-commands/goal-refiner.d.ts.map +0 -1
  347. package/dist/slash-commands/goal.d.ts.map +0 -1
  348. package/dist/slash-commands/health.d.ts.map +0 -1
  349. package/dist/slash-commands/help.d.ts.map +0 -1
  350. package/dist/slash-commands/helpers.d.ts.map +0 -1
  351. package/dist/slash-commands/hq.d.ts.map +0 -1
  352. package/dist/slash-commands/index.d.ts.map +0 -1
  353. package/dist/slash-commands/init.d.ts.map +0 -1
  354. package/dist/slash-commands/interrupt.d.ts.map +0 -1
  355. package/dist/slash-commands/kanban-agent-helpers.d.ts.map +0 -1
  356. package/dist/slash-commands/kanban-format.d.ts.map +0 -1
  357. package/dist/slash-commands/kanban-help.d.ts.map +0 -1
  358. package/dist/slash-commands/kanban.d.ts.map +0 -1
  359. package/dist/slash-commands/mailbox-demo.d.ts.map +0 -1
  360. package/dist/slash-commands/mailbox-serve.d.ts.map +0 -1
  361. package/dist/slash-commands/mailbox.d.ts.map +0 -1
  362. package/dist/slash-commands/mcp-utils.d.ts.map +0 -1
  363. package/dist/slash-commands/mcp.d.ts.map +0 -1
  364. package/dist/slash-commands/memory-compact.d.ts.map +0 -1
  365. package/dist/slash-commands/memory-flags.d.ts.map +0 -1
  366. package/dist/slash-commands/memory-formatters.d.ts.map +0 -1
  367. package/dist/slash-commands/memory.d.ts.map +0 -1
  368. package/dist/slash-commands/metrics.d.ts.map +0 -1
  369. package/dist/slash-commands/mode.d.ts.map +0 -1
  370. package/dist/slash-commands/modelcaps.d.ts.map +0 -1
  371. package/dist/slash-commands/models.d.ts.map +0 -1
  372. package/dist/slash-commands/mouse.d.ts.map +0 -1
  373. package/dist/slash-commands/next.d.ts.map +0 -1
  374. package/dist/slash-commands/plan.d.ts.map +0 -1
  375. package/dist/slash-commands/plugin.d.ts.map +0 -1
  376. package/dist/slash-commands/profile.d.ts.map +0 -1
  377. package/dist/slash-commands/project-utils.d.ts.map +0 -1
  378. package/dist/slash-commands/project.d.ts.map +0 -1
  379. package/dist/slash-commands/provider-status.d.ts.map +0 -1
  380. package/dist/slash-commands/prune.d.ts.map +0 -1
  381. package/dist/slash-commands/refiner.d.ts.map +0 -1
  382. package/dist/slash-commands/review.d.ts.map +0 -1
  383. package/dist/slash-commands/sdd/rendering.d.ts.map +0 -1
  384. package/dist/slash-commands/sdd-command-helpers.d.ts.map +0 -1
  385. package/dist/slash-commands/sdd-format.d.ts.map +0 -1
  386. package/dist/slash-commands/sdd.d.ts.map +0 -1
  387. package/dist/slash-commands/security.d.ts.map +0 -1
  388. package/dist/slash-commands/session.d.ts.map +0 -1
  389. package/dist/slash-commands/setmodel.d.ts.map +0 -1
  390. package/dist/slash-commands/settings.d.ts.map +0 -1
  391. package/dist/slash-commands/shadow.d.ts.map +0 -1
  392. package/dist/slash-commands/slash-deep-help.d.ts.map +0 -1
  393. package/dist/slash-commands/spawn-agents.d.ts.map +0 -1
  394. package/dist/slash-commands/statusline.d.ts.map +0 -1
  395. package/dist/slash-commands/suggest.d.ts.map +0 -1
  396. package/dist/slash-commands/suggestion-store.d.ts.map +0 -1
  397. package/dist/slash-commands/supervisor.d.ts.map +0 -1
  398. package/dist/slash-commands/surfaces.d.ts.map +0 -1
  399. package/dist/slash-commands/tasks.d.ts.map +0 -1
  400. package/dist/slash-commands/techstack.d.ts.map +0 -1
  401. package/dist/slash-commands/telegram-pairing.d.ts.map +0 -1
  402. package/dist/slash-commands/telegram-settings.d.ts.map +0 -1
  403. package/dist/slash-commands/telegram-setup.d.ts.map +0 -1
  404. package/dist/slash-commands/todos.d.ts.map +0 -1
  405. package/dist/slash-commands/tool.d.ts.map +0 -1
  406. package/dist/slash-commands/tools.d.ts.map +0 -1
  407. package/dist/slash-commands/tuneup.d.ts.map +0 -1
  408. package/dist/slash-commands/working-dir.d.ts.map +0 -1
  409. package/dist/slash-commands/worktree.d.ts.map +0 -1
  410. package/dist/slash-commands/yolo.d.ts.map +0 -1
  411. package/dist/spinner.d.ts.map +0 -1
  412. package/dist/subcommands/contracts.d.ts.map +0 -1
  413. package/dist/subcommands/handlers/acp.d.ts.map +0 -1
  414. package/dist/subcommands/handlers/audit.d.ts.map +0 -1
  415. package/dist/subcommands/handlers/auth-local-help.d.ts.map +0 -1
  416. package/dist/subcommands/handlers/auth.d.ts.map +0 -1
  417. package/dist/subcommands/handlers/bench-run-help.d.ts.map +0 -1
  418. package/dist/subcommands/handlers/bench.d.ts.map +0 -1
  419. package/dist/subcommands/handlers/chronicle.d.ts.map +0 -1
  420. package/dist/subcommands/handlers/config-history.d.ts.map +0 -1
  421. package/dist/subcommands/handlers/diag-doctor.d.ts.map +0 -1
  422. package/dist/subcommands/handlers/export.d.ts.map +0 -1
  423. package/dist/subcommands/handlers/helpers.d.ts.map +0 -1
  424. package/dist/subcommands/handlers/hq.d.ts.map +0 -1
  425. package/dist/subcommands/handlers/init.d.ts.map +0 -1
  426. package/dist/subcommands/handlers/mailbox-serve.d.ts.map +0 -1
  427. package/dist/subcommands/handlers/mcp.d.ts.map +0 -1
  428. package/dist/subcommands/handlers/model-smoke-test.d.ts.map +0 -1
  429. package/dist/subcommands/handlers/modeldiag-profiles.d.ts.map +0 -1
  430. package/dist/subcommands/handlers/modeldiag.d.ts.map +0 -1
  431. package/dist/subcommands/handlers/models-add-help.d.ts.map +0 -1
  432. package/dist/subcommands/handlers/per-subcommand-deep-help-table.d.ts.map +0 -1
  433. package/dist/subcommands/handlers/per-subcommand-help-data.d.ts.map +0 -1
  434. package/dist/subcommands/handlers/per-subcommand-help-table.d.ts.map +0 -1
  435. package/dist/subcommands/handlers/per-subcommand-help-types.d.ts.map +0 -1
  436. package/dist/subcommands/handlers/per-subcommand-help.d.ts.map +0 -1
  437. package/dist/subcommands/handlers/permissions.d.ts.map +0 -1
  438. package/dist/subcommands/handlers/plugin-usage.d.ts.map +0 -1
  439. package/dist/subcommands/handlers/project.d.ts.map +0 -1
  440. package/dist/subcommands/handlers/projects.d.ts.map +0 -1
  441. package/dist/subcommands/handlers/providers-models.d.ts.map +0 -1
  442. package/dist/subcommands/handlers/quick.d.ts.map +0 -1
  443. package/dist/subcommands/handlers/replay.d.ts.map +0 -1
  444. package/dist/subcommands/handlers/rewind.d.ts.map +0 -1
  445. package/dist/subcommands/handlers/sessions-config.d.ts.map +0 -1
  446. package/dist/subcommands/handlers/sessions-fleet.d.ts.map +0 -1
  447. package/dist/subcommands/handlers/tools-skills.d.ts.map +0 -1
  448. package/dist/subcommands/handlers/update.d.ts.map +0 -1
  449. package/dist/subcommands/handlers/version-help.d.ts.map +0 -1
  450. package/dist/subcommands/index.d.ts.map +0 -1
  451. package/dist/theme.d.ts.map +0 -1
  452. package/dist/tools-skills-UNKLOB7M.js.map +0 -7
  453. package/dist/tui-thinking-word.d.ts.map +0 -1
  454. package/dist/tuneup.d.ts.map +0 -1
  455. package/dist/update-YC4TYW2Y.js.map +0 -7
  456. package/dist/update-check-UMYTOH7Z.js.map +0 -7
  457. package/dist/update-check.d.ts.map +0 -1
  458. package/dist/utils/delay-format.d.ts.map +0 -1
  459. package/dist/utils/hq-ttl.d.ts.map +0 -1
  460. package/dist/utils/win32-cmd.d.ts.map +0 -1
  461. package/dist/utils.d.ts.map +0 -1
  462. package/dist/version-help-DROHZRW6.js.map +0 -7
  463. package/dist/version.d.ts.map +0 -1
  464. package/dist/webui-server/client-registration.d.ts.map +0 -1
  465. package/dist/webui-server/connection-handler.d.ts.map +0 -1
  466. package/dist/webui-server/context-breakdown.d.ts.map +0 -1
  467. package/dist/webui-server/contracts.d.ts.map +0 -1
  468. package/dist/webui-server/cost-helpers.d.ts.map +0 -1
  469. package/dist/webui-server/kanban-host-adapter.d.ts.map +0 -1
  470. package/dist/webui-server/kanban-run-mirror.d.ts.map +0 -1
  471. package/dist/webui-server/kanban-supervisor.d.ts.map +0 -1
  472. package/dist/webui-server/lifecycle.d.ts.map +0 -1
  473. package/dist/webui-server/listen-helpers.d.ts.map +0 -1
  474. package/dist/webui-server/logger-shim.d.ts.map +0 -1
  475. package/dist/webui-server/node-pty-loader.d.ts.map +0 -1
  476. package/dist/webui-server/prefs-seeding.d.ts.map +0 -1
  477. package/dist/webui-server/privileged-actions.d.ts.map +0 -1
  478. package/dist/webui-server/provider-config.d.ts.map +0 -1
  479. package/dist/webui-server/session-start-payload.d.ts.map +0 -1
  480. package/dist/webui-server/setup-events.d.ts.map +0 -1
  481. package/dist/webui-server/static-serve.d.ts.map +0 -1
  482. package/dist/webui-server/stream-coalescer.d.ts.map +0 -1
  483. package/dist/webui-server/terminal-log-view.d.ts.map +0 -1
  484. package/dist/webui-server-ZF5KVGC5.js.map +0 -7
  485. package/dist/webui-server-options.d.ts.map +0 -1
  486. package/dist/webui-server.d.ts.map +0 -1
  487. package/dist/wiring/brain-and-orchestration.d.ts.map +0 -1
  488. package/dist/wiring/codebase-index.d.ts.map +0 -1
  489. package/dist/wiring/command-host-adapters.d.ts.map +0 -1
  490. package/dist/wiring/command-host-state.d.ts.map +0 -1
  491. package/dist/wiring/controllers.d.ts.map +0 -1
  492. package/dist/wiring/dep-watcher-bridge.d.ts.map +0 -1
  493. package/dist/wiring/dep-watcher.d.ts.map +0 -1
  494. package/dist/wiring/design-studio.d.ts.map +0 -1
  495. package/dist/wiring/director-setup.d.ts.map +0 -1
  496. package/dist/wiring/eternal-command-handlers.d.ts.map +0 -1
  497. package/dist/wiring/fleet-command-handlers.d.ts.map +0 -1
  498. package/dist/wiring/hq-telemetry.d.ts.map +0 -1
  499. package/dist/wiring/lifecycle-plugins.d.ts.map +0 -1
  500. package/dist/wiring/mailbox-bridge-bootstrap.d.ts.map +0 -1
  501. package/dist/wiring/management-tools.d.ts.map +0 -1
  502. package/dist/wiring/metrics.d.ts.map +0 -1
  503. package/dist/wiring/pipeline.d.ts.map +0 -1
  504. package/dist/wiring/plugins.d.ts.map +0 -1
  505. package/dist/wiring/provider-runtime-setup.d.ts.map +0 -1
  506. package/dist/wiring/provider-runtime.d.ts.map +0 -1
  507. package/dist/wiring/provider-status.d.ts.map +0 -1
  508. package/dist/wiring/provider-utility-tools.d.ts.map +0 -1
  509. package/dist/wiring/provider.d.ts.map +0 -1
  510. package/dist/wiring/replay.d.ts.map +0 -1
  511. package/dist/wiring/runtime-controller-deps.d.ts.map +0 -1
  512. package/dist/wiring/runtime-dispatch-state.d.ts.map +0 -1
  513. package/dist/wiring/runtime-lifecycle-deps.d.ts.map +0 -1
  514. package/dist/wiring/runtime-picker-deps.d.ts.map +0 -1
  515. package/dist/wiring/sage.d.ts.map +0 -1
  516. package/dist/wiring/sdd-handlers.d.ts.map +0 -1
  517. package/dist/wiring/security-command.d.ts.map +0 -1
  518. package/dist/wiring/session-command-handlers.d.ts.map +0 -1
  519. package/dist/wiring/session-registry.d.ts.map +0 -1
  520. package/dist/wiring/session.d.ts.map +0 -1
  521. package/dist/wiring/slash-commands.d.ts.map +0 -1
  522. package/dist/wiring/to-execute-deps.d.ts.map +0 -1
  523. package/dist/wiring/tools.d.ts.map +0 -1
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-OP47B3IX.js";
7
7
  import {
8
8
  startCliHqConnection
9
- } from "./chunk-WY7KKOUK.js";
9
+ } from "./chunk-JW75HY4F.js";
10
10
  import {
11
11
  loadConfigProviders,
12
12
  mutateConfigProviders
@@ -17,12 +17,15 @@ import "./chunk-7OCVIDC7.js";
17
17
  import { findPackageJSON } from "node:module";
18
18
  import * as os from "node:os";
19
19
  import * as path5 from "node:path";
20
- import { DefaultSecretScrubber } from "@wrongstack/core/security";
21
- import { PromptUsageStore, watchProviderConfig } from "@wrongstack/core/storage";
22
- import { resolveWstackPaths as resolveWstackPaths2, wstackGlobalRoot } from "@wrongstack/core/utils";
23
20
  import { TOKENS } from "@wrongstack/core/kernel";
24
- import { createCompatibilityTrustBoundary } from "@wrongstack/core/security";
21
+ import { createCompatibilityTrustBoundary, DefaultSecretScrubber } from "@wrongstack/core/security";
25
22
  import { SkillInstaller } from "@wrongstack/core/skills";
23
+ import { PromptUsageStore, watchProviderConfig } from "@wrongstack/core/storage";
24
+ import {
25
+ resolveWstackPaths as resolveWstackPaths2,
26
+ startSharedHeapWatchdog,
27
+ wstackGlobalRoot
28
+ } from "@wrongstack/core/utils";
26
29
  import { toErrorMessage } from "@wrongstack/core/utils/error";
27
30
  import { makeProviderFromConfig } from "@wrongstack/providers";
28
31
  import {
@@ -172,6 +175,7 @@ function createConnectionHandler(deps) {
172
175
  import { PhaseGraphBuilder } from "@wrongstack/core/goal";
173
176
  import { resolveWstackPaths } from "@wrongstack/core/utils";
174
177
  import { exportBoardToTaskGraph } from "@wrongstack/kanban";
178
+ import { TaskGraphStore } from "@wrongstack/sdd";
175
179
  import {
176
180
  startSddRunFromGraph
177
181
  } from "@wrongstack/webui-server";
@@ -301,6 +305,8 @@ function createCliKanbanHostRoutes(deps) {
301
305
  return failRun("SDD runs need the multi-agent host, which is not available here.");
302
306
  }
303
307
  const paths = resolveWstackPaths({ projectRoot });
308
+ const taskStore = new TaskGraphStore({ baseDir: paths.projectTaskGraphs });
309
+ await taskStore.save(exported.graph);
304
310
  const handle = await startSddRunFromGraph(
305
311
  exported.graph,
306
312
  {
@@ -309,6 +315,7 @@ function createCliKanbanHostRoutes(deps) {
309
315
  projectRoot,
310
316
  subagentFactory: opts.sddSubagentFactory,
311
317
  projectSddBoards: paths.projectSddBoards,
318
+ taskStore,
312
319
  ...opts.brain ? { brain: opts.brain } : {},
313
320
  ...runIsolatedTurn ? { runIsolatedTurn } : {}
314
321
  },
@@ -347,6 +354,52 @@ import {
347
354
  registerWebuiSignalHandlers
348
355
  } from "@wrongstack/webui-server";
349
356
 
357
+ // src/webui-server/listen-helpers.ts
358
+ import * as http from "node:http";
359
+ async function startDeferredHttpListen(args) {
360
+ const { server, host, httpPort, logger } = args;
361
+ await new Promise((resolveListen, rejectListen) => {
362
+ server.listen(httpPort, host, () => resolveListen());
363
+ server.once("error", rejectListen);
364
+ });
365
+ server.on("error", (err) => {
366
+ logger.error("http_server_error", {
367
+ message: err.message,
368
+ port: httpPort
369
+ });
370
+ });
371
+ }
372
+ async function startIpv6LoopbackProxy(args) {
373
+ const { primary, httpPort, logger } = args;
374
+ const v6 = http.createServer();
375
+ v6.on("request", (req, res) => primary.emit("request", req, res));
376
+ v6.on("upgrade", (req, socket, head) => primary.emit("upgrade", req, socket, head));
377
+ const logIpv6Error = (err) => {
378
+ if (err.code === "EAFNOSUPPORT" || err.code === "EADDRNOTAVAIL" || err.code === "EADDRINUSE") {
379
+ logger.warn("ipv6_loopback_unavailable", { code: err.code, port: httpPort });
380
+ return;
381
+ }
382
+ logger.error("http_server_error", { message: err.message, port: httpPort });
383
+ };
384
+ v6.on("error", logIpv6Error);
385
+ const ipv6Listening = await new Promise((resolveListen) => {
386
+ const onListening = () => {
387
+ v6.off("error", onInitialError);
388
+ resolveListen(true);
389
+ };
390
+ const onInitialError = () => {
391
+ v6.off("listening", onListening);
392
+ resolveListen(false);
393
+ };
394
+ v6.once("listening", onListening);
395
+ v6.once("error", onInitialError);
396
+ v6.listen(httpPort, "::1");
397
+ });
398
+ if (!ipv6Listening) return null;
399
+ console.log(`[WebUI] Also listening on http://[::1]:${httpPort}`);
400
+ return v6;
401
+ }
402
+
350
403
  // src/webui-server/logger-shim.ts
351
404
  var structuredLine = (level, message) => JSON.stringify({
352
405
  level,
@@ -376,9 +429,63 @@ var consoleLogger = {
376
429
  }
377
430
  };
378
431
 
432
+ // src/webui-server/node-pty-loader.ts
433
+ import { existsSync } from "node:fs";
434
+ import { createRequire } from "node:module";
435
+ import * as path from "node:path";
436
+ import { fileURLToPath } from "node:url";
437
+ function createNodePtyLoader(importMetaUrl, logger) {
438
+ const requireFromCli = createRequire(importMetaUrl);
439
+ let cachedNodePty;
440
+ return () => {
441
+ if (cachedNodePty !== void 0) return cachedNodePty;
442
+ try {
443
+ const webuiEntry = requireFromCli.resolve("@wrongstack/webui");
444
+ const webuiDir = webuiEntry.replace(/[\\/]dist.*$/, "");
445
+ const webuiPkgJson = path.join(webuiDir, "package.json");
446
+ cachedNodePty = createRequire(webuiPkgJson)("node-pty");
447
+ if (cachedNodePty) {
448
+ logger.debug?.(`[terminal] node-pty loaded via webui package (${webuiDir})`);
449
+ return cachedNodePty;
450
+ }
451
+ } catch (err) {
452
+ logger.debug?.(`[terminal] webui-route failed: ${err.message}`);
453
+ }
454
+ try {
455
+ cachedNodePty = requireFromCli("node-pty");
456
+ logger.debug?.("[terminal] node-pty loaded via direct requireFromCli");
457
+ return cachedNodePty;
458
+ } catch (err) {
459
+ logger.debug?.(`[terminal] direct require failed: ${err.message}`);
460
+ }
461
+ try {
462
+ const cliPkgJson = path.join(path.dirname(fileURLToPath(importMetaUrl)), "..", "package.json");
463
+ let dir = path.dirname(cliPkgJson);
464
+ for (let i = 0; i < 6; i++) {
465
+ const candidate = path.join(dir, "node_modules", "node-pty");
466
+ if (existsSync(candidate)) {
467
+ cachedNodePty = createRequire(candidate)("node-pty");
468
+ if (cachedNodePty) {
469
+ logger.debug?.(`[terminal] node-pty loaded via workspace root (${candidate})`);
470
+ return cachedNodePty;
471
+ }
472
+ }
473
+ const parent = path.dirname(dir);
474
+ if (parent === dir) break;
475
+ dir = parent;
476
+ }
477
+ } catch (err) {
478
+ logger.debug?.(`[terminal] workspace-root walk failed: ${err.message}`);
479
+ }
480
+ cachedNodePty = null;
481
+ logger.debug?.('[terminal] node-pty resolution failed; terminal panel will report "unavailable"');
482
+ return cachedNodePty;
483
+ };
484
+ }
485
+
379
486
  // src/webui-server/prefs-seeding.ts
380
487
  import * as fs from "node:fs/promises";
381
- import * as path from "node:path";
488
+ import * as path2 from "node:path";
382
489
  import { DefaultSecretVault } from "@wrongstack/core/security";
383
490
  import {
384
491
  PREF_KEYS,
@@ -434,8 +541,8 @@ function createPrefsSeeding(opts) {
434
541
  patchLiveAppConfig({ modelMatrix: payload["modelMatrix"] });
435
542
  }
436
543
  if (!opts.profileConfigPath) return;
437
- const globalRoot = opts.globalConfigPath ? path.dirname(opts.globalConfigPath) : path.dirname(opts.profileConfigPath);
438
- const vault = new DefaultSecretVault({ keyFile: path.join(globalRoot, ".key") });
544
+ const globalRoot = opts.globalConfigPath ? path2.dirname(opts.globalConfigPath) : path2.dirname(opts.profileConfigPath);
545
+ const vault = new DefaultSecretVault({ keyFile: path2.join(globalRoot, ".key") });
439
546
  await persistPrefsToConfig(
440
547
  {
441
548
  profileConfigPath: opts.profileConfigPath,
@@ -464,13 +571,13 @@ function createPrefsSeeding(opts) {
464
571
  }
465
572
 
466
573
  // src/webui-server/provider-config.ts
467
- import * as path2 from "node:path";
574
+ import * as path3 from "node:path";
468
575
  import { DefaultSecretVault as DefaultSecretVault2 } from "@wrongstack/core/security";
469
576
  function getVault(globalConfigPath) {
470
- const configDir = path2.dirname(globalConfigPath ?? "");
471
- const parentDir = path2.dirname(configDir);
472
- const globalRoot = path2.basename(parentDir) === "profiles" ? path2.dirname(parentDir) : configDir;
473
- const keyFile = path2.join(globalRoot, ".key");
577
+ const configDir = path3.dirname(globalConfigPath ?? "");
578
+ const parentDir = path3.dirname(configDir);
579
+ const globalRoot = path3.basename(parentDir) === "profiles" ? path3.dirname(parentDir) : configDir;
580
+ const keyFile = path3.join(globalRoot, ".key");
474
581
  return new DefaultSecretVault2({ keyFile });
475
582
  }
476
583
  async function loadSavedProviders(globalConfigPath) {
@@ -496,7 +603,7 @@ function createProviderConfigStore(globalConfigPath, configProvidersRef) {
496
603
  }
497
604
 
498
605
  // src/webui-server/session-start-payload.ts
499
- import * as path3 from "node:path";
606
+ import * as path4 from "node:path";
500
607
  import { DEFAULT_CONTEXT_WINDOW_MODE_ID } from "@wrongstack/core/types";
501
608
  import { protocolAdvertisement } from "@wrongstack/webui-server/protocol";
502
609
 
@@ -513,6 +620,7 @@ function createSessionStartPayloadBuilder(deps) {
513
620
  let inputCost = 0;
514
621
  let outputCost = 0;
515
622
  let cacheReadCost = 0;
623
+ const updateInfo = deps.updateInfo;
516
624
  try {
517
625
  if (deps.modelsRegistry) {
518
626
  const m = await deps.modelsRegistry.getModel(
@@ -536,7 +644,7 @@ function createSessionStartPayloadBuilder(deps) {
536
644
  model: deps.agent.ctx.model,
537
645
  provider: deps.agent.ctx.provider.id,
538
646
  mode: deps.modeId ?? "default",
539
- projectName: deps.projectRoot ? path3.basename(deps.projectRoot) : void 0,
647
+ projectName: deps.projectRoot ? path4.basename(deps.projectRoot) : void 0,
540
648
  // Frontend reads `projectRoot` from session.start (ws-handlers setEnv) —
541
649
  // omitting it left the store's projectRoot empty after a project switch.
542
650
  projectRoot: deps.projectRoot ?? deps.agent.ctx.projectRoot ?? "",
@@ -552,6 +660,10 @@ function createSessionStartPayloadBuilder(deps) {
552
660
  cacheReadCost,
553
661
  lastInputTokens,
554
662
  providerStatuses: deps.statusTracker?.getAllStatuses() ?? [],
663
+ appVersion: updateInfo?.current,
664
+ latestVersion: updateInfo?.latest,
665
+ updateAvailable: updateInfo?.outdated ?? false,
666
+ updateCheckFailed: updateInfo?.checkFailed ?? false,
555
667
  ...protocolAdvertisement(),
556
668
  ...overrides
557
669
  };
@@ -711,106 +823,6 @@ function startBoundedTerminalLogView(options = {}) {
711
823
  };
712
824
  }
713
825
 
714
- // src/webui-server/node-pty-loader.ts
715
- import { existsSync } from "node:fs";
716
- import { createRequire } from "node:module";
717
- import * as path4 from "node:path";
718
- import { fileURLToPath } from "node:url";
719
- function createNodePtyLoader(importMetaUrl, logger) {
720
- const requireFromCli = createRequire(importMetaUrl);
721
- let cachedNodePty;
722
- return () => {
723
- if (cachedNodePty !== void 0) return cachedNodePty;
724
- try {
725
- const webuiEntry = requireFromCli.resolve("@wrongstack/webui");
726
- const webuiDir = webuiEntry.replace(/[\\/]dist.*$/, "");
727
- const webuiPkgJson = path4.join(webuiDir, "package.json");
728
- cachedNodePty = createRequire(webuiPkgJson)("node-pty");
729
- if (cachedNodePty) {
730
- logger.debug?.(`[terminal] node-pty loaded via webui package (${webuiDir})`);
731
- return cachedNodePty;
732
- }
733
- } catch (err) {
734
- logger.debug?.(`[terminal] webui-route failed: ${err.message}`);
735
- }
736
- try {
737
- cachedNodePty = requireFromCli("node-pty");
738
- logger.debug?.("[terminal] node-pty loaded via direct requireFromCli");
739
- return cachedNodePty;
740
- } catch (err) {
741
- logger.debug?.(`[terminal] direct require failed: ${err.message}`);
742
- }
743
- try {
744
- const cliPkgJson = path4.join(path4.dirname(fileURLToPath(importMetaUrl)), "..", "package.json");
745
- let dir = path4.dirname(cliPkgJson);
746
- for (let i = 0; i < 6; i++) {
747
- const candidate = path4.join(dir, "node_modules", "node-pty");
748
- if (existsSync(candidate)) {
749
- cachedNodePty = createRequire(candidate)("node-pty");
750
- if (cachedNodePty) {
751
- logger.debug?.(`[terminal] node-pty loaded via workspace root (${candidate})`);
752
- return cachedNodePty;
753
- }
754
- }
755
- const parent = path4.dirname(dir);
756
- if (parent === dir) break;
757
- dir = parent;
758
- }
759
- } catch (err) {
760
- logger.debug?.(`[terminal] workspace-root walk failed: ${err.message}`);
761
- }
762
- cachedNodePty = null;
763
- logger.debug?.('[terminal] node-pty resolution failed; terminal panel will report "unavailable"');
764
- return cachedNodePty;
765
- };
766
- }
767
-
768
- // src/webui-server/listen-helpers.ts
769
- import * as http from "node:http";
770
- async function startDeferredHttpListen(args) {
771
- const { server, host, httpPort, logger } = args;
772
- await new Promise((resolveListen, rejectListen) => {
773
- server.listen(httpPort, host, () => resolveListen());
774
- server.once("error", rejectListen);
775
- });
776
- server.on("error", (err) => {
777
- logger.error("http_server_error", {
778
- message: err.message,
779
- port: httpPort
780
- });
781
- });
782
- }
783
- async function startIpv6LoopbackProxy(args) {
784
- const { primary, httpPort, logger } = args;
785
- const v6 = http.createServer();
786
- v6.on("request", (req, res) => primary.emit("request", req, res));
787
- v6.on("upgrade", (req, socket, head) => primary.emit("upgrade", req, socket, head));
788
- const logIpv6Error = (err) => {
789
- if (err.code === "EAFNOSUPPORT" || err.code === "EADDRNOTAVAIL" || err.code === "EADDRINUSE") {
790
- logger.warn("ipv6_loopback_unavailable", { code: err.code, port: httpPort });
791
- return;
792
- }
793
- logger.error("http_server_error", { message: err.message, port: httpPort });
794
- };
795
- v6.on("error", logIpv6Error);
796
- const ipv6Listening = await new Promise((resolveListen) => {
797
- const onListening = () => {
798
- v6.off("error", onInitialError);
799
- resolveListen(true);
800
- };
801
- const onInitialError = () => {
802
- v6.off("listening", onListening);
803
- resolveListen(false);
804
- };
805
- v6.once("listening", onListening);
806
- v6.once("error", onInitialError);
807
- v6.listen(httpPort, "::1");
808
- });
809
- if (!ipv6Listening) return null;
810
- console.log(`[WebUI] Also listening on http://[::1]:${httpPort}`);
811
- return v6;
812
- }
813
-
814
826
  // src/webui-server.ts
815
827
  async function runWebUI(opts) {
816
828
  const trustBoundary = opts.trustBoundary ?? createCompatibilityTrustBoundary({ policyId: "cli-webui-trusted-host-compat-v1" });
@@ -829,7 +841,7 @@ async function runWebUI(opts) {
829
841
  const wsPort = httpPort;
830
842
  const globalRoot = opts.globalConfigPath ? path5.dirname(opts.globalConfigPath) : wstackGlobalRoot();
831
843
  const profileConfigPath = opts.profileConfigPath ?? opts.globalConfigPath ?? path5.join(globalRoot, "config.json");
832
- const rateLimitMax = Number.parseInt(process.env["WEBUI_RATE_LIMIT"] ?? "0", 10);
844
+ const rateLimitMax = Number.parseInt(process.env["WEBUI_RATE_LIMIT"] ?? "600", 10);
833
845
  const clients = /* @__PURE__ */ new Map();
834
846
  const pendingConfirms = /* @__PURE__ */ new Map();
835
847
  const secretScrubber = new DefaultSecretScrubber();
@@ -858,6 +870,17 @@ async function runWebUI(opts) {
858
870
  ...opts.onKanbanDispatch ? { dispatchTask: opts.onKanbanDispatch } : {},
859
871
  log: (message) => consoleLogger.info(message)
860
872
  }) : null;
873
+ const stopKanbanSupervisorMemoryStats = kanbanSupervisor ? startSharedHeapWatchdog({
874
+ collectStats: () => {
875
+ const stats = kanbanSupervisor.getStats();
876
+ return {
877
+ kanbanSupervisorSnapshots: stats.snapshots,
878
+ kanbanSupervisorScheduledBoards: stats.scheduledBoards,
879
+ kanbanSupervisorAgentCooldowns: stats.agentCooldowns,
880
+ kanbanSupervisorRunningAgents: stats.runningAgents
881
+ };
882
+ }
883
+ }) : void 0;
861
884
  const goalHandler = new GoalWebSocketHandler(
862
885
  opts.agent,
863
886
  opts.agent.ctx,
@@ -1104,18 +1127,25 @@ async function runWebUI(opts) {
1104
1127
  // not inside the profile directory — resolve via global root to stay correct.
1105
1128
  getVault(opts.globalConfigPath),
1106
1129
  (snapshot) => {
1130
+ const hadFallbackBridge = Boolean(opts.appConfig?.fallbackBridge?.trim());
1107
1131
  try {
1108
1132
  if (opts.appConfig && !Object.isFrozen(opts.appConfig)) {
1109
1133
  opts.appConfig.providers = snapshot.providers;
1110
1134
  if (snapshot.uiLocale) opts.appConfig.uiLocale = snapshot.uiLocale;
1135
+ if (snapshot.fallbackBridge !== void 0) {
1136
+ opts.appConfig.fallbackBridge = snapshot.fallbackBridge;
1137
+ } else {
1138
+ delete opts.appConfig.fallbackBridge;
1139
+ }
1111
1140
  }
1112
1141
  } catch {
1113
1142
  }
1114
- const routingChanged = snapshot.fallbackModels !== void 0 || snapshot.fallbackProfiles !== void 0 || snapshot.favoriteModels !== void 0 || snapshot.favoriteModelsOnly !== void 0 || snapshot.modelMatrix !== void 0 || snapshot.fallbackAuto !== void 0;
1143
+ const routingChanged = snapshot.fallbackModels !== void 0 || snapshot.fallbackBridge !== void 0 || hadFallbackBridge || snapshot.fallbackProfiles !== void 0 || snapshot.favoriteModels !== void 0 || snapshot.favoriteModelsOnly !== void 0 || snapshot.modelMatrix !== void 0 || snapshot.fallbackAuto !== void 0;
1115
1144
  if (routingChanged) {
1116
1145
  const configStore = opts.agent.container?.safeResolve?.(TOKENS.ConfigStore);
1117
1146
  configStore?.update({
1118
1147
  ...snapshot.fallbackModels !== void 0 ? { fallbackModels: snapshot.fallbackModels } : {},
1148
+ fallbackBridge: snapshot.fallbackBridge ?? "",
1119
1149
  ...snapshot.fallbackProfiles !== void 0 ? { fallbackProfiles: snapshot.fallbackProfiles } : {},
1120
1150
  ...snapshot.favoriteModels !== void 0 ? { favoriteModels: snapshot.favoriteModels } : {},
1121
1151
  ...snapshot.favoriteModelsOnly !== void 0 ? { favoriteModelsOnly: snapshot.favoriteModelsOnly } : {},
@@ -1290,6 +1320,8 @@ async function runWebUI(opts) {
1290
1320
  ...kanbanSupervisor ? { kanbanSupervisor } : {},
1291
1321
  ...kanbanRunMirror ? { kanbanRunMirror } : {}
1292
1322
  });
1323
+ let signalShutdown;
1324
+ const shutdown = () => signalShutdown?.();
1293
1325
  const handleMessage = createEmbeddedMessageRouter({
1294
1326
  trustBoundary,
1295
1327
  opts,
@@ -1386,7 +1418,7 @@ async function runWebUI(opts) {
1386
1418
  })
1387
1419
  );
1388
1420
  });
1389
- const signalShutdown = createWebuiShutdown({
1421
+ signalShutdown = createWebuiShutdown({
1390
1422
  abortInFlight: () => {
1391
1423
  if (abortController) {
1392
1424
  abortController.abort();
@@ -1399,6 +1431,18 @@ async function runWebUI(opts) {
1399
1431
  flushAllStreamBuffers();
1400
1432
  for (const unsub of eventUnsubscribers) unsub();
1401
1433
  },
1434
+ disposeResources: () => {
1435
+ credentialWatcherClose?.();
1436
+ credentialWatcherClose = void 0;
1437
+ goalHandler.dispose();
1438
+ sddBoardHandler.dispose();
1439
+ worktreeHandler.dispose();
1440
+ terminalHandler.dispose();
1441
+ kanbanRunMirror?.dispose();
1442
+ kanbanSupervisor?.dispose();
1443
+ void stopKanbanSupervisorMemoryStats?.();
1444
+ unregisterWebuiClient();
1445
+ },
1402
1446
  closeClients: () => {
1403
1447
  for (const [ws] of clients) ws.close();
1404
1448
  clients.clear();
@@ -1413,6 +1457,7 @@ async function runWebUI(opts) {
1413
1457
  onStopped: () => {
1414
1458
  terminalLogView.redraw();
1415
1459
  terminalLogView.stop();
1460
+ opts.onExit?.();
1416
1461
  resolve();
1417
1462
  }
1418
1463
  });
@@ -1423,21 +1468,6 @@ async function runWebUI(opts) {
1423
1468
  ws.send(JSON.stringify(msg));
1424
1469
  }
1425
1470
  }
1426
- function shutdown() {
1427
- console.log("[WebUI] Shutting down...");
1428
- terminalLogView.redraw();
1429
- terminalLogView.stop();
1430
- credentialWatcherClose?.();
1431
- flushAllStreamBuffers();
1432
- worktreeHandler.dispose();
1433
- terminalHandler.dispose();
1434
- kanbanRunMirror?.dispose();
1435
- kanbanSupervisor?.dispose();
1436
- unregisterWebuiClient();
1437
- ipv6LoopbackServer?.close();
1438
- httpServer?.server.close();
1439
- opts.onExit?.();
1440
- }
1441
1471
  function broadcast(msg) {
1442
1472
  const data = JSON.stringify(msg);
1443
1473
  for (const [ws] of clients) {
@@ -1457,4 +1487,4 @@ async function runWebUI(opts) {
1457
1487
  export {
1458
1488
  runWebUI
1459
1489
  };
1460
- //# sourceMappingURL=webui-server-ZF5KVGC5.js.map
1490
+ //# sourceMappingURL=webui-server-PCLSXX6L.js.map
@@ -171,6 +171,13 @@ export interface CliWebUIOptions {
171
171
  onAutonomySwitch?: ((mode: string) => void) | undefined;
172
172
  /** Forward browser YOLO changes to the host's live permission policy. */
173
173
  onYoloSwitch?: ((enabled: boolean) => void) | undefined;
174
+ /**
175
+ * Pre-computed update info from the CLI's preflight version check.
176
+ * When present, the session.start payload includes appVersion,
177
+ * latestVersion, and updateAvailable so all surfaces (WebUI, SimpleUI)
178
+ * can display an "update available" warning.
179
+ */
180
+ updateInfo?: import('./webui-server/session-start-payload.js').BootUpdateInfo | undefined;
174
181
  /** Optional kanban task dispatch hook, backed by the CLI multi-agent host. */
175
182
  onKanbanDispatch?: ((description: string, opts?: {
176
183
  provider?: string | undefined;
@@ -58,6 +58,8 @@ export interface BrainOrchestrationDeps {
58
58
  modeId?: string | undefined;
59
59
  /** Shared provider/model status tracker for the Director. */
60
60
  statusTracker?: import('@wrongstack/core/coordination').ProviderModelStatusTracker | undefined;
61
+ /** Trusted governance hook for in-process Fleet tool pipelines. */
62
+ installToolBoundary?: ((pipelines: import('@wrongstack/core/agent').AgentPipelines) => void) | undefined;
61
63
  }
62
64
  export interface BrainOrchestrationResult {
63
65
  brain: ObservableBrainArbiter;
@@ -1,10 +1,10 @@
1
- import type { Config, SessionWriter } from '@wrongstack/core/types';
1
+ import type { AgentMonitorService, RemoteMailbox } from '@wrongstack/core/coordination';
2
2
  import type { HqPublisher } from '@wrongstack/core/hq';
3
3
  import type { EventBus } from '@wrongstack/core/kernel';
4
- import type { RemoteMailbox } from '@wrongstack/core/coordination';
5
- import type { AgentMonitorService } from '@wrongstack/core/coordination';
4
+ import type { Config, SessionWriter } from '@wrongstack/core/types';
6
5
  import type { MCPRegistry } from '@wrongstack/mcp';
7
6
  import { createHqCommandDispatcher, type HqCommandController } from '../hq-command-controller.js';
7
+ import type { KanbanHqSyncStats } from '../kanban-hq-sync.js';
8
8
  /**
9
9
  * Mutable holder for the HQ publisher reference. The ref is created in
10
10
  * cli-main.ts before `brainMailbox` (which captures it via closure) and
@@ -12,6 +12,7 @@ import { createHqCommandDispatcher, type HqCommandController } from '../hq-comma
12
12
  */
13
13
  export interface HqPublisherRef {
14
14
  current: HqPublisher | undefined;
15
+ getKanbanSyncStats?: (() => KanbanHqSyncStats | undefined) | undefined;
15
16
  }
16
17
  export interface SetupHqTelemetryDeps {
17
18
  events: EventBus;
@@ -1,14 +1,13 @@
1
- import type { Config, Logger, MetricsRuntimeStatus, ModelsRegistry, PromptLoader, Provider, ProviderConfig, SecretVault, SessionWriter, SkillLoader } from '@wrongstack/core/types';
2
- import type { HqPublisher } from '@wrongstack/core/hq';
3
- import { HookRegistry, HookRunner } from '@wrongstack/core/hooks';
4
1
  import { type RemoteMailbox } from '@wrongstack/core/coordination';
5
- import type { HealthRegistry } from '@wrongstack/core/types';
6
- import type { WstackPaths } from '@wrongstack/core/utils';
2
+ import { HookRegistry, HookRunner } from '@wrongstack/core/hooks';
7
3
  import type { PluginHostHandle } from '@wrongstack/core/plugin';
8
4
  import { type ProviderRegistry, SlashCommandRegistry, type ToolRegistry } from '@wrongstack/core/registry';
5
+ import type { Config, HealthRegistry, Logger, MetricsRuntimeStatus, ModelsRegistry, PromptLoader, Provider, ProviderConfig, SecretVault, SessionWriter, SkillLoader } from '@wrongstack/core/types';
6
+ import type { WstackPaths } from '@wrongstack/core/utils';
9
7
  import { MCPRegistry } from '@wrongstack/mcp';
10
8
  import type { EventWiring } from '../boot/event-wiring.js';
11
9
  import type { MaxContextBranch } from '../context-limit.js';
10
+ import type { HqPublisherRef } from './hq-telemetry.js';
12
11
  import { setupCompaction } from './pipeline.js';
13
12
  type AnyRecord = Record<string, any>;
14
13
  export interface LifecyclePluginsDeps {
@@ -51,9 +50,7 @@ export interface LifecyclePluginsResult {
51
50
  agent: any;
52
51
  mcpRegistry: MCPRegistry;
53
52
  slashRegistry: SlashCommandRegistry;
54
- hqPublisherRef: {
55
- current: HqPublisher | undefined;
56
- };
53
+ hqPublisherRef: HqPublisherRef;
57
54
  brainMailbox: RemoteMailbox;
58
55
  pluginHost: PluginHostHandle | undefined;
59
56
  }
@@ -1,5 +1,5 @@
1
- import { type MetricsServerHandle } from '@wrongstack/core/observability';
2
1
  import type { EventBus } from '@wrongstack/core/kernel';
2
+ import { type MetricsServerHandle } from '@wrongstack/core/observability';
3
3
  import type { HealthRegistry, MetricsRuntimeStatus, MetricsSink } from '@wrongstack/core/types';
4
4
  import { type WstackPaths } from '@wrongstack/core/utils';
5
5
  import type { MCPRegistry, MCPServerOperationalHealth } from '@wrongstack/mcp';
@@ -1,8 +1,8 @@
1
- import type { Config, Logger, ModelsRegistry, Provider, ProviderConfig, SecretVault } from '@wrongstack/core/types';
2
1
  import { type FallbackProfileManager } from '@wrongstack/core/agent';
3
- import type { EventBus } from '@wrongstack/core/kernel';
4
2
  import type { ProviderModelStatusTracker } from '@wrongstack/core/coordination';
3
+ import type { EventBus } from '@wrongstack/core/kernel';
5
4
  import type { ProviderRegistry } from '@wrongstack/core/registry';
5
+ import type { Config, Logger, ModelsRegistry, Provider, ProviderConfig, SecretVault } from '@wrongstack/core/types';
6
6
  import type { WstackPaths } from '@wrongstack/core/utils';
7
7
  export declare function serializeProviderRuntimeSnapshot(snapshot: unknown): string;
8
8
  type AnyObj = any;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wrongstack/cli",
3
- "version": "0.296.4",
3
+ "version": "0.298.0",
4
4
  "license": "MIT",
5
5
  "description": "WrongStack CLI — terminal AI coding agent with provider catalog from models.dev. Provides `wrongstack` and `wstack` binaries.",
6
6
  "keywords": [
@@ -37,33 +37,34 @@
37
37
  },
38
38
  "files": [
39
39
  "dist",
40
+ "!dist/**/*.map",
40
41
  "data"
41
42
  ],
42
43
  "dependencies": {
43
44
  "ws": "^8.21.1",
44
- "@wrongstack/acp": "0.296.4",
45
- "@wrongstack/mcp": "0.296.4",
46
- "@wrongstack/runtime": "0.296.4",
47
- "@wrongstack/plugins": "0.296.4",
48
- "@wrongstack/core": "0.296.4",
49
- "@wrongstack/plug-lsp": "0.296.4",
50
- "@wrongstack/bench": "0.296.4",
51
- "@wrongstack/providers": "0.296.4",
52
- "@wrongstack/kanban": "0.296.4",
53
- "@wrongstack/simpleui": "0.296.4",
54
- "@wrongstack/sdd": "0.296.4",
55
- "@wrongstack/security-scanner": "0.296.4",
56
- "@wrongstack/sage": "0.296.4",
57
- "@wrongstack/telegram": "0.296.4",
58
- "@wrongstack/techstack": "0.296.4",
59
- "@wrongstack/tools": "0.296.4",
60
- "@wrongstack/tui": "0.296.4",
61
- "@wrongstack/webui": "0.296.4",
62
- "@wrongstack/webui-hq": "0.296.4",
63
- "@wrongstack/webui-server": "0.296.4"
45
+ "@wrongstack/mcp": "0.298.0",
46
+ "@wrongstack/bench": "0.298.0",
47
+ "@wrongstack/core": "0.298.0",
48
+ "@wrongstack/acp": "0.298.0",
49
+ "@wrongstack/providers": "0.298.0",
50
+ "@wrongstack/plug-lsp": "0.298.0",
51
+ "@wrongstack/kanban": "0.298.0",
52
+ "@wrongstack/runtime": "0.298.0",
53
+ "@wrongstack/security-scanner": "0.298.0",
54
+ "@wrongstack/sdd": "0.298.0",
55
+ "@wrongstack/simpleui": "0.298.0",
56
+ "@wrongstack/techstack": "0.298.0",
57
+ "@wrongstack/tui": "0.298.0",
58
+ "@wrongstack/webui": "0.298.0",
59
+ "@wrongstack/telegram": "0.298.0",
60
+ "@wrongstack/plugins": "0.298.0",
61
+ "@wrongstack/tools": "0.298.0",
62
+ "@wrongstack/webui-hq": "0.298.0",
63
+ "@wrongstack/sage": "0.298.0",
64
+ "@wrongstack/webui-server": "0.298.0"
64
65
  },
65
66
  "optionalDependencies": {
66
- "@wrongstack/desktop": "0.296.4"
67
+ "@wrongstack/desktop": "0.298.0"
67
68
  },
68
69
  "devDependencies": {
69
70
  "@types/node": "^26.1.1",