@wrongstack/cli 0.295.1 → 0.296.3

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 (398) hide show
  1. package/data/providers.json +0 -24
  2. package/dist/acp-A5OSIU2P.js +824 -0
  3. package/dist/acp-A5OSIU2P.js.map +7 -0
  4. package/dist/acp-server-agent.d.ts.map +1 -1
  5. package/dist/arg-parser.d.ts.map +1 -1
  6. package/dist/audit-2ZSFGNIF.js +102 -0
  7. package/dist/audit-2ZSFGNIF.js.map +7 -0
  8. package/dist/auth-CJWQJVRH.js +504 -0
  9. package/dist/auth-CJWQJVRH.js.map +7 -0
  10. package/dist/auth-menu/auth-menu-audit.d.ts +0 -4
  11. package/dist/auth-menu/auth-menu-audit.d.ts.map +1 -1
  12. package/dist/bench-7ZDWSNEF.js +278 -0
  13. package/dist/bench-7ZDWSNEF.js.map +7 -0
  14. package/dist/boot/brain-decision-log.d.ts +7 -5
  15. package/dist/boot/brain-decision-log.d.ts.map +1 -1
  16. package/dist/boot/dispatch-webui.d.ts +5 -8
  17. package/dist/boot/dispatch-webui.d.ts.map +1 -1
  18. package/dist/boot/system-prompt-builder.d.ts +3 -0
  19. package/dist/boot/system-prompt-builder.d.ts.map +1 -1
  20. package/dist/boot/tui-coordinator-callbacks.d.ts +45 -0
  21. package/dist/boot/tui-coordinator-callbacks.d.ts.map +1 -0
  22. package/dist/boot/tui-project-switch.d.ts +2 -3
  23. package/dist/boot/tui-project-switch.d.ts.map +1 -1
  24. package/dist/boot/tui-runtime-state.d.ts +5 -6
  25. package/dist/boot/tui-runtime-state.d.ts.map +1 -1
  26. package/dist/boot/tui-session-resume.d.ts.map +1 -1
  27. package/dist/boot/tui-settings-adapter.d.ts +2 -3
  28. package/dist/boot/tui-settings-adapter.d.ts.map +1 -1
  29. package/dist/boot.d.ts.map +1 -1
  30. package/dist/brain-menu/panel-service.d.ts.map +1 -1
  31. package/dist/chimera-review-task.d.ts +6 -0
  32. package/dist/chimera-review-task.d.ts.map +1 -0
  33. package/dist/chimera-reviewer-policy.d.ts +34 -0
  34. package/dist/chimera-reviewer-policy.d.ts.map +1 -0
  35. package/dist/chronicle-QQEQFSSE.js +256 -0
  36. package/dist/chronicle-QQEQFSSE.js.map +7 -0
  37. package/dist/chunk-5N34EWJR.js +418 -0
  38. package/dist/chunk-5N34EWJR.js.map +7 -0
  39. package/dist/chunk-66T43Q4Y.js +90 -0
  40. package/dist/chunk-66T43Q4Y.js.map +7 -0
  41. package/dist/chunk-7OCVIDC7.js +11 -0
  42. package/dist/chunk-7OCVIDC7.js.map +7 -0
  43. package/dist/chunk-ABXK4VVY.js +84 -0
  44. package/dist/chunk-ABXK4VVY.js.map +7 -0
  45. package/dist/chunk-AXVZMEWG.js +306 -0
  46. package/dist/chunk-AXVZMEWG.js.map +7 -0
  47. package/dist/chunk-AZESNNIC.js +216 -0
  48. package/dist/chunk-AZESNNIC.js.map +7 -0
  49. package/dist/chunk-BGFM3PD7.js +41 -0
  50. package/dist/chunk-BGFM3PD7.js.map +7 -0
  51. package/dist/chunk-BQCAJ7FI.js +425 -0
  52. package/dist/chunk-BQCAJ7FI.js.map +7 -0
  53. package/dist/chunk-DPJZQCVP.js +13 -0
  54. package/dist/chunk-DPJZQCVP.js.map +7 -0
  55. package/dist/chunk-F4PEGAJZ.js +176 -0
  56. package/dist/chunk-F4PEGAJZ.js.map +7 -0
  57. package/dist/chunk-IHBYBYGA.js +443 -0
  58. package/dist/chunk-IHBYBYGA.js.map +7 -0
  59. package/dist/chunk-JBSQ7ONN.js +1023 -0
  60. package/dist/chunk-JBSQ7ONN.js.map +7 -0
  61. package/dist/chunk-JBTFWWKV.js +1325 -0
  62. package/dist/chunk-JBTFWWKV.js.map +7 -0
  63. package/dist/chunk-JUHRI6OV.js +100 -0
  64. package/dist/chunk-JUHRI6OV.js.map +7 -0
  65. package/dist/chunk-OI7GWJDS.js +3303 -0
  66. package/dist/chunk-OI7GWJDS.js.map +7 -0
  67. package/dist/chunk-OP47B3IX.js +142 -0
  68. package/dist/chunk-OP47B3IX.js.map +7 -0
  69. package/dist/chunk-PJHET45A.js +158 -0
  70. package/dist/chunk-PJHET45A.js.map +7 -0
  71. package/dist/chunk-Q5GTM25S.js +17 -0
  72. package/dist/chunk-Q5GTM25S.js.map +7 -0
  73. package/dist/chunk-QD544J2B.js +19 -0
  74. package/dist/chunk-QD544J2B.js.map +7 -0
  75. package/dist/chunk-QUNHS6O3.js +258 -0
  76. package/dist/chunk-QUNHS6O3.js.map +7 -0
  77. package/dist/chunk-TADVX644.js +480 -0
  78. package/dist/chunk-TADVX644.js.map +7 -0
  79. package/dist/chunk-TGDHN4LM.js +81 -0
  80. package/dist/chunk-TGDHN4LM.js.map +7 -0
  81. package/dist/chunk-TYO2OVAD.js +50 -0
  82. package/dist/chunk-TYO2OVAD.js.map +7 -0
  83. package/dist/chunk-VCYZ3WZV.js +14 -0
  84. package/dist/chunk-VCYZ3WZV.js.map +7 -0
  85. package/dist/chunk-VJUEZZYB.js +29 -0
  86. package/dist/chunk-VJUEZZYB.js.map +7 -0
  87. package/dist/chunk-WHOIR577.js +1 -0
  88. package/dist/chunk-WHOIR577.js.map +7 -0
  89. package/dist/chunk-WY7KKOUK.js +460 -0
  90. package/dist/chunk-WY7KKOUK.js.map +7 -0
  91. package/dist/chunk-XJXDOF63.js +28 -0
  92. package/dist/chunk-XJXDOF63.js.map +7 -0
  93. package/dist/chunk-XWEGWYDU.js +560 -0
  94. package/dist/chunk-XWEGWYDU.js.map +7 -0
  95. package/dist/chunk-YWUPHRGB.js +346 -0
  96. package/dist/chunk-YWUPHRGB.js.map +7 -0
  97. package/dist/chunk-Z7YGASQP.js +313 -0
  98. package/dist/chunk-Z7YGASQP.js.map +7 -0
  99. package/dist/cli-entry-main.d.ts +2 -0
  100. package/dist/cli-entry-main.d.ts.map +1 -0
  101. package/dist/cli-entry-point.d.ts +3 -3
  102. package/dist/cli-entry-point.d.ts.map +1 -1
  103. package/dist/cli-main-RTY35OPD.js +29268 -0
  104. package/dist/cli-main-RTY35OPD.js.map +7 -0
  105. package/dist/cli-main-helpers.d.ts +21 -0
  106. package/dist/cli-main-helpers.d.ts.map +1 -0
  107. package/dist/cli-main.d.ts +25 -1
  108. package/dist/cli-main.d.ts.map +1 -1
  109. package/dist/context-limit.d.ts +48 -0
  110. package/dist/context-limit.d.ts.map +1 -1
  111. package/dist/diag-doctor-OQ3AA63O.js +170 -0
  112. package/dist/diag-doctor-OQ3AA63O.js.map +7 -0
  113. package/dist/execute-deps.d.ts +11 -12
  114. package/dist/execute-deps.d.ts.map +1 -1
  115. package/dist/execution-O7I5DYE6.js +4682 -0
  116. package/dist/execution-O7I5DYE6.js.map +7 -0
  117. package/dist/execution-chimera-ask.d.ts +10 -0
  118. package/dist/execution-chimera-ask.d.ts.map +1 -0
  119. package/dist/execution-chimera-cascade.d.ts +15 -0
  120. package/dist/execution-chimera-cascade.d.ts.map +1 -0
  121. package/dist/execution-cleanup.d.ts +23 -0
  122. package/dist/execution-cleanup.d.ts.map +1 -0
  123. package/dist/execution-kanban-dispatch.d.ts +10 -0
  124. package/dist/execution-kanban-dispatch.d.ts.map +1 -0
  125. package/dist/execution-repl-fleet-callbacks.d.ts +11 -0
  126. package/dist/execution-repl-fleet-callbacks.d.ts.map +1 -0
  127. package/dist/execution-storage-observability.d.ts +3 -0
  128. package/dist/execution-storage-observability.d.ts.map +1 -0
  129. package/dist/execution-tui-next-step-callbacks.d.ts +20 -0
  130. package/dist/execution-tui-next-step-callbacks.d.ts.map +1 -0
  131. package/dist/execution.d.ts +2 -139
  132. package/dist/execution.d.ts.map +1 -1
  133. package/dist/export-TPORYVRZ.js +64 -0
  134. package/dist/export-TPORYVRZ.js.map +7 -0
  135. package/dist/fleet/host-acp-runner-cache.d.ts +9 -0
  136. package/dist/fleet/host-acp-runner-cache.d.ts.map +1 -0
  137. package/dist/fleet/host-acp.d.ts +3 -0
  138. package/dist/fleet/host-acp.d.ts.map +1 -0
  139. package/dist/fleet/host-concurrency.d.ts +2 -0
  140. package/dist/fleet/host-concurrency.d.ts.map +1 -0
  141. package/dist/fleet/host-context.d.ts +5 -0
  142. package/dist/fleet/host-context.d.ts.map +1 -0
  143. package/dist/fleet/host-director-builder.d.ts +24 -0
  144. package/dist/fleet/host-director-builder.d.ts.map +1 -0
  145. package/dist/fleet/host-director-event-bridges.d.ts +37 -0
  146. package/dist/fleet/host-director-event-bridges.d.ts.map +1 -0
  147. package/dist/fleet/host-director-services.d.ts +20 -0
  148. package/dist/fleet/host-director-services.d.ts.map +1 -0
  149. package/dist/fleet/host-event-bridge.d.ts +17 -0
  150. package/dist/fleet/host-event-bridge.d.ts.map +1 -0
  151. package/dist/fleet/host-helpers.d.ts +22 -0
  152. package/dist/fleet/host-helpers.d.ts.map +1 -0
  153. package/dist/fleet/host-learning-tracker.d.ts +11 -0
  154. package/dist/fleet/host-learning-tracker.d.ts.map +1 -0
  155. package/dist/fleet/host-learning.d.ts +4 -0
  156. package/dist/fleet/host-learning.d.ts.map +1 -0
  157. package/dist/fleet/host-lifecycle-events.d.ts +4 -0
  158. package/dist/fleet/host-lifecycle-events.d.ts.map +1 -0
  159. package/dist/fleet/host-paths.d.ts +3 -0
  160. package/dist/fleet/host-paths.d.ts.map +1 -0
  161. package/dist/fleet/host-provider.d.ts +22 -0
  162. package/dist/fleet/host-provider.d.ts.map +1 -0
  163. package/dist/fleet/host-session-writer.d.ts +3 -0
  164. package/dist/fleet/host-session-writer.d.ts.map +1 -0
  165. package/dist/fleet/host-shadow-pass.d.ts +21 -0
  166. package/dist/fleet/host-shadow-pass.d.ts.map +1 -0
  167. package/dist/fleet/host-spawn-types.d.ts +25 -0
  168. package/dist/fleet/host-spawn-types.d.ts.map +1 -0
  169. package/dist/fleet/host-status.d.ts +48 -0
  170. package/dist/fleet/host-status.d.ts.map +1 -0
  171. package/dist/fleet/host-subagent-factory.d.ts +16 -0
  172. package/dist/fleet/host-subagent-factory.d.ts.map +1 -0
  173. package/dist/fleet/host-supervisor.d.ts +16 -0
  174. package/dist/fleet/host-supervisor.d.ts.map +1 -0
  175. package/dist/fleet/host-task-result-report.d.ts +11 -0
  176. package/dist/fleet/host-task-result-report.d.ts.map +1 -0
  177. package/dist/fleet/host-types.d.ts +89 -0
  178. package/dist/fleet/host-types.d.ts.map +1 -0
  179. package/dist/fleet/host.d.ts +10 -357
  180. package/dist/fleet/host.d.ts.map +1 -1
  181. package/dist/hq-JUYKUNJX.js +547 -0
  182. package/dist/hq-JUYKUNJX.js.map +7 -0
  183. package/dist/hq-command-controller.d.ts +2 -2
  184. package/dist/hq-command-controller.d.ts.map +1 -1
  185. package/dist/hq-server/auth.d.ts +15 -4
  186. package/dist/hq-server/auth.d.ts.map +1 -1
  187. package/dist/hq-server/project-root.d.ts +5 -0
  188. package/dist/hq-server/project-root.d.ts.map +1 -0
  189. package/dist/hq-server/routes/auth-handlers.d.ts +25 -0
  190. package/dist/hq-server/routes/auth-handlers.d.ts.map +1 -0
  191. package/dist/hq-server/routes/session-handlers.d.ts +8 -0
  192. package/dist/hq-server/routes/session-handlers.d.ts.map +1 -0
  193. package/dist/hq-server/routes.d.ts +8 -6
  194. package/dist/hq-server/routes.d.ts.map +1 -1
  195. package/dist/hq-server/snapshot.d.ts +44 -0
  196. package/dist/hq-server/snapshot.d.ts.map +1 -1
  197. package/dist/hq-server/types.d.ts +22 -4
  198. package/dist/hq-server/types.d.ts.map +1 -1
  199. package/dist/hq-server/utils.d.ts +8 -0
  200. package/dist/hq-server/utils.d.ts.map +1 -1
  201. package/dist/hq-server/ws.d.ts +1 -1
  202. package/dist/hq-server/ws.d.ts.map +1 -1
  203. package/dist/hq-server-6AQ3BXZA.js +39 -0
  204. package/dist/hq-server-6AQ3BXZA.js.map +7 -0
  205. package/dist/hq-server.d.ts +3 -3
  206. package/dist/hq-server.d.ts.map +1 -1
  207. package/dist/hq-ttl-U2FAYFAT.js +8 -0
  208. package/dist/hq-ttl-U2FAYFAT.js.map +7 -0
  209. package/dist/hq-tunnel-RFKGC4HI.js +114 -0
  210. package/dist/hq-tunnel-RFKGC4HI.js.map +7 -0
  211. package/dist/hq-tunnel.d.ts +1 -1
  212. package/dist/hq-tunnel.d.ts.map +1 -1
  213. package/dist/index.d.ts +2 -1
  214. package/dist/index.d.ts.map +1 -1
  215. package/dist/index.js +2503 -53026
  216. package/dist/index.js.map +4 -4
  217. package/dist/init-E2NDDOHI.js +27 -0
  218. package/dist/init-E2NDDOHI.js.map +7 -0
  219. package/dist/kanban-dispatch-route.d.ts +14 -0
  220. package/dist/kanban-dispatch-route.d.ts.map +1 -0
  221. package/dist/kanban-hq-sync.d.ts +2 -0
  222. package/dist/kanban-hq-sync.d.ts.map +1 -1
  223. package/dist/kanban-run-mirror-EKVNGXWW.js +12 -0
  224. package/dist/kanban-run-mirror-EKVNGXWW.js.map +7 -0
  225. package/dist/live-settings-input.d.ts +69 -0
  226. package/dist/live-settings-input.d.ts.map +1 -0
  227. package/dist/mailbox-serve-2UWHEN3M.js +302 -0
  228. package/dist/mailbox-serve-2UWHEN3M.js.map +7 -0
  229. package/dist/mcp-CYLPUEHC.js +413 -0
  230. package/dist/mcp-CYLPUEHC.js.map +7 -0
  231. package/dist/modeldiag-HENYJ4N7.js +1290 -0
  232. package/dist/modeldiag-HENYJ4N7.js.map +7 -0
  233. package/dist/permissions-FNYLZIL4.js +115 -0
  234. package/dist/permissions-FNYLZIL4.js.map +7 -0
  235. package/dist/picker-key-state.d.ts +7 -0
  236. package/dist/picker-key-state.d.ts.map +1 -0
  237. package/dist/picker-model-picker.d.ts +6 -0
  238. package/dist/picker-model-picker.d.ts.map +1 -0
  239. package/dist/picker-ui.d.ts +17 -0
  240. package/dist/picker-ui.d.ts.map +1 -0
  241. package/dist/picker.d.ts +4 -37
  242. package/dist/picker.d.ts.map +1 -1
  243. package/dist/plugin-usage-OU6X6LM3.js +40 -0
  244. package/dist/plugin-usage-OU6X6LM3.js.map +7 -0
  245. package/dist/plugins-4LJ5IUBI.js +24 -0
  246. package/dist/plugins-4LJ5IUBI.js.map +7 -0
  247. package/dist/pre-launch.d.ts +0 -1
  248. package/dist/pre-launch.d.ts.map +1 -1
  249. package/dist/project-BLQ3ALVL.js +76 -0
  250. package/dist/project-BLQ3ALVL.js.map +7 -0
  251. package/dist/project-manifest-GE25PW4S.js +18 -0
  252. package/dist/project-manifest-GE25PW4S.js.map +7 -0
  253. package/dist/project-picker-BOCWHBXP.js +17 -0
  254. package/dist/project-picker-BOCWHBXP.js.map +7 -0
  255. package/dist/projects-XE76NFNZ.js +38 -0
  256. package/dist/projects-XE76NFNZ.js.map +7 -0
  257. package/dist/provider-helpers.d.ts +22 -6
  258. package/dist/provider-helpers.d.ts.map +1 -1
  259. package/dist/providers-models-GDELBHZK.js +589 -0
  260. package/dist/providers-models-GDELBHZK.js.map +7 -0
  261. package/dist/quick-VIO2BEHS.js +10 -0
  262. package/dist/quick-VIO2BEHS.js.map +7 -0
  263. package/dist/repl-auto-proceed.d.ts +19 -0
  264. package/dist/repl-auto-proceed.d.ts.map +1 -0
  265. package/dist/repl-client-registration.d.ts +7 -0
  266. package/dist/repl-client-registration.d.ts.map +1 -0
  267. package/dist/repl-input.d.ts +11 -0
  268. package/dist/repl-input.d.ts.map +1 -0
  269. package/dist/repl-options.d.ts +54 -0
  270. package/dist/repl-options.d.ts.map +1 -0
  271. package/dist/repl-rendering.d.ts +4 -0
  272. package/dist/repl-rendering.d.ts.map +1 -0
  273. package/dist/repl-suggestions.d.ts +21 -0
  274. package/dist/repl-suggestions.d.ts.map +1 -0
  275. package/dist/repl.d.ts +3 -162
  276. package/dist/repl.d.ts.map +1 -1
  277. package/dist/replay-KCTXNMZQ.js +75 -0
  278. package/dist/replay-KCTXNMZQ.js.map +7 -0
  279. package/dist/rewind-EJMVFVLS.js +185 -0
  280. package/dist/rewind-EJMVFVLS.js.map +7 -0
  281. package/dist/sdd-runtime-JG4EEKL6.js +54 -0
  282. package/dist/sdd-runtime-JG4EEKL6.js.map +7 -0
  283. package/dist/services/sdd/project-context.d.ts +1 -1
  284. package/dist/services/sdd/project-context.d.ts.map +1 -1
  285. package/dist/services/sdd/task-manager.d.ts.map +1 -1
  286. package/dist/services/statusline-config.d.ts +1 -1
  287. package/dist/services/statusline-config.d.ts.map +1 -1
  288. package/dist/session-event-wiring.d.ts +2 -2
  289. package/dist/session-event-wiring.d.ts.map +1 -1
  290. package/dist/sessions-config-NLCMK3BY.js +409 -0
  291. package/dist/sessions-config-NLCMK3BY.js.map +7 -0
  292. package/dist/settings-menu.d.ts +3 -18
  293. package/dist/settings-menu.d.ts.map +1 -1
  294. package/dist/simpleui-dist-JIFGUJO7.js +93 -0
  295. package/dist/simpleui-dist-JIFGUJO7.js.map +7 -0
  296. package/dist/slash-commands/brain.d.ts.map +1 -1
  297. package/dist/slash-commands/clear.d.ts.map +1 -1
  298. package/dist/slash-commands/fallback.d.ts.map +1 -1
  299. package/dist/slash-commands/kanban-agent-helpers.d.ts +18 -0
  300. package/dist/slash-commands/kanban-agent-helpers.d.ts.map +1 -0
  301. package/dist/slash-commands/kanban-format.d.ts +16 -0
  302. package/dist/slash-commands/kanban-format.d.ts.map +1 -0
  303. package/dist/slash-commands/kanban-help.d.ts +2 -0
  304. package/dist/slash-commands/kanban-help.d.ts.map +1 -0
  305. package/dist/slash-commands/kanban.d.ts.map +1 -1
  306. package/dist/slash-commands/mailbox-demo.d.ts.map +1 -1
  307. package/dist/slash-commands/mailbox.d.ts +2 -1
  308. package/dist/slash-commands/mailbox.d.ts.map +1 -1
  309. package/dist/slash-commands/memory-compact.d.ts +5 -0
  310. package/dist/slash-commands/memory-compact.d.ts.map +1 -0
  311. package/dist/slash-commands/memory-flags.d.ts +36 -0
  312. package/dist/slash-commands/memory-flags.d.ts.map +1 -0
  313. package/dist/slash-commands/memory-formatters.d.ts +16 -0
  314. package/dist/slash-commands/memory-formatters.d.ts.map +1 -0
  315. package/dist/slash-commands/memory.d.ts.map +1 -1
  316. package/dist/slash-commands/mouse.d.ts +2 -2
  317. package/dist/slash-commands/review.d.ts.map +1 -1
  318. package/dist/slash-commands/sdd-command-helpers.d.ts +23 -0
  319. package/dist/slash-commands/sdd-command-helpers.d.ts.map +1 -0
  320. package/dist/slash-commands/sdd-format.d.ts +32 -0
  321. package/dist/slash-commands/sdd-format.d.ts.map +1 -0
  322. package/dist/slash-commands/sdd.d.ts.map +1 -1
  323. package/dist/slash-commands/settings.d.ts.map +1 -1
  324. package/dist/subcommands/handlers/chronicle.d.ts.map +1 -1
  325. package/dist/subcommands/handlers/mailbox-serve.d.ts.map +1 -1
  326. package/dist/subcommands/handlers/model-smoke-test.d.ts +51 -0
  327. package/dist/subcommands/handlers/model-smoke-test.d.ts.map +1 -0
  328. package/dist/subcommands/handlers/modeldiag-profiles.d.ts +64 -0
  329. package/dist/subcommands/handlers/modeldiag-profiles.d.ts.map +1 -0
  330. package/dist/subcommands/handlers/modeldiag.d.ts.map +1 -1
  331. package/dist/subcommands/handlers/per-subcommand-deep-help-table.d.ts +3 -0
  332. package/dist/subcommands/handlers/per-subcommand-deep-help-table.d.ts.map +1 -0
  333. package/dist/subcommands/handlers/per-subcommand-help-data.d.ts +3 -0
  334. package/dist/subcommands/handlers/per-subcommand-help-data.d.ts.map +1 -0
  335. package/dist/subcommands/handlers/per-subcommand-help-table.d.ts +36 -0
  336. package/dist/subcommands/handlers/per-subcommand-help-table.d.ts.map +1 -0
  337. package/dist/subcommands/handlers/per-subcommand-help-types.d.ts +18 -0
  338. package/dist/subcommands/handlers/per-subcommand-help-types.d.ts.map +1 -0
  339. package/dist/subcommands/handlers/per-subcommand-help.d.ts +2 -80
  340. package/dist/subcommands/handlers/per-subcommand-help.d.ts.map +1 -1
  341. package/dist/subcommands/handlers/rewind.d.ts.map +1 -1
  342. package/dist/subcommands/index.d.ts +7 -0
  343. package/dist/subcommands/index.d.ts.map +1 -1
  344. package/dist/tools-skills-UNKLOB7M.js +29 -0
  345. package/dist/tools-skills-UNKLOB7M.js.map +7 -0
  346. package/dist/update-YC4TYW2Y.js +16 -0
  347. package/dist/update-YC4TYW2Y.js.map +7 -0
  348. package/dist/update-check-UMYTOH7Z.js +18 -0
  349. package/dist/update-check-UMYTOH7Z.js.map +7 -0
  350. package/dist/version-help-DROHZRW6.js +11 -0
  351. package/dist/version-help-DROHZRW6.js.map +7 -0
  352. package/dist/webui-server/connection-handler.d.ts.map +1 -1
  353. package/dist/webui-server/kanban-host-adapter.d.ts +5 -1
  354. package/dist/webui-server/kanban-host-adapter.d.ts.map +1 -1
  355. package/dist/webui-server/listen-helpers.d.ts +18 -0
  356. package/dist/webui-server/listen-helpers.d.ts.map +1 -0
  357. package/dist/webui-server/node-pty-loader.d.ts +6 -0
  358. package/dist/webui-server/node-pty-loader.d.ts.map +1 -0
  359. package/dist/webui-server-ZF5KVGC5.js +1460 -0
  360. package/dist/webui-server-ZF5KVGC5.js.map +7 -0
  361. package/dist/webui-server-options.d.ts +191 -0
  362. package/dist/webui-server-options.d.ts.map +1 -0
  363. package/dist/webui-server.d.ts +2 -178
  364. package/dist/webui-server.d.ts.map +1 -1
  365. package/dist/wiring/brain-and-orchestration.d.ts.map +1 -1
  366. package/dist/wiring/codebase-index.d.ts.map +1 -1
  367. package/dist/wiring/command-host-state.d.ts +4 -4
  368. package/dist/wiring/dep-watcher-bridge.d.ts +23 -0
  369. package/dist/wiring/dep-watcher-bridge.d.ts.map +1 -0
  370. package/dist/wiring/dep-watcher.d.ts.map +1 -1
  371. package/dist/wiring/hq-telemetry.d.ts +2 -2
  372. package/dist/wiring/lifecycle-plugins.d.ts +4 -3
  373. package/dist/wiring/lifecycle-plugins.d.ts.map +1 -1
  374. package/dist/wiring/mailbox-bridge-bootstrap.d.ts +1 -1
  375. package/dist/wiring/management-tools.d.ts +15 -0
  376. package/dist/wiring/management-tools.d.ts.map +1 -0
  377. package/dist/wiring/pipeline.d.ts +2 -1
  378. package/dist/wiring/pipeline.d.ts.map +1 -1
  379. package/dist/wiring/plugins.d.ts +1 -1
  380. package/dist/wiring/plugins.d.ts.map +1 -1
  381. package/dist/wiring/provider-runtime-setup.d.ts +14 -1
  382. package/dist/wiring/provider-runtime-setup.d.ts.map +1 -1
  383. package/dist/wiring/provider.d.ts.map +1 -1
  384. package/dist/wiring/runtime-controller-deps.d.ts +1 -1
  385. package/dist/wiring/runtime-controller-deps.d.ts.map +1 -1
  386. package/dist/wiring/sage.d.ts.map +1 -1
  387. package/dist/wiring/session-registry.d.ts +38 -0
  388. package/dist/wiring/session-registry.d.ts.map +1 -0
  389. package/dist/wiring/session.d.ts +10 -6
  390. package/dist/wiring/session.d.ts.map +1 -1
  391. package/dist/wiring/tools.d.ts.map +1 -1
  392. package/package.json +22 -22
  393. package/dist/cli-recovery-prompt.d.ts +0 -19
  394. package/dist/cli-recovery-prompt.d.ts.map +0 -1
  395. package/dist/first-run-auth-gate.d.ts +0 -20
  396. package/dist/first-run-auth-gate.d.ts.map +0 -1
  397. package/dist/pre-launch/indexing-question.d.ts +0 -28
  398. package/dist/pre-launch/indexing-question.d.ts.map +0 -1
@@ -0,0 +1,34 @@
1
+ import type { SubagentConfig } from '@wrongstack/core/types';
2
+ /**
3
+ * Resolve the fallback-model chain used when spawning the chimera-review
4
+ * reviewer subagent.
5
+ *
6
+ * Auto-review bundles pass the chain already resolved from the active fallback
7
+ * profile/config. Manual and ordinary Chimera reviews do not inject their own
8
+ * hard-coded model list; they rely on the selected session provider/model unless
9
+ * the caller supplies a resolved fallback chain.
10
+ */
11
+ export declare function resolveReviewerFallbackModels(reviewFallbackModels?: readonly string[] | undefined,
12
+ /** Append session ref as a final fallback chain entry. */
13
+ sessionRef?: string): string[];
14
+ /** Test hook — reset the process-local reviewer round-robin cursor. */
15
+ export declare function __resetReviewerRoundRobinCursor(value?: number): void;
16
+ /**
17
+ * Assign provider/model/fallbackModels for a Chimera reviewer spawn.
18
+ *
19
+ * Builds the pool from the configured primary + fallback chain, then picks
20
+ * the next entry via round-robin. When the pool has <=1 usable entry the
21
+ * original primary/fallbacks are returned unchanged.
22
+ */
23
+ export declare function assignReviewerModelsRoundRobin(provider: string, model: string, fallbackModels: readonly string[]): {
24
+ provider: string;
25
+ model: string;
26
+ fallbackModels: string[];
27
+ };
28
+ /**
29
+ * Chimera reviewers only inspect code and return a report. They never repair
30
+ * files themselves; bug-hunter/security-scanner/fix agents own all mutations.
31
+ */
32
+ export declare const CHIMERA_REVIEW_READ_ONLY_TOOLS: readonly ["read", "grep", "glob", "tree", "codebase-search", "codebase-stats"];
33
+ export declare function applyChimeraReviewerReadOnlyPolicy(config: SubagentConfig): SubagentConfig;
34
+ //# sourceMappingURL=chimera-reviewer-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chimera-reviewer-policy.d.ts","sourceRoot":"","sources":["../src/chimera-reviewer-policy.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAC3C,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS;AACpD,0DAA0D;AAC1D,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,EAAE,CAQV;AASD,uEAAuE;AACvE,wBAAgB,+BAA+B,CAAC,KAAK,SAAI,GAAG,IAAI,CAE/D;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,SAAS,MAAM,EAAE,GAChC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,EAAE,CAAA;CAAE,CAqB/D;AAED;;;GAGG;AACH,eAAO,MAAM,8BAA8B,gFAOhC,CAAC;AAEZ,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CASzF"}
@@ -0,0 +1,256 @@
1
+ import "./chunk-7OCVIDC7.js";
2
+
3
+ // src/subcommands/handlers/chronicle.ts
4
+ import { statSync } from "node:fs";
5
+ import {
6
+ createChronicleProjectAccess
7
+ } from "@wrongstack/core/chronicle";
8
+ var facets = /* @__PURE__ */ new Set([
9
+ "eventType",
10
+ "outcome",
11
+ "projectId",
12
+ "sessionId",
13
+ "agentId",
14
+ "taskId",
15
+ "providerId",
16
+ "modelId",
17
+ "resourceKind",
18
+ "resourcePath",
19
+ "toolCallId"
20
+ ]);
21
+ var chronicleCmd = async (args, deps) => {
22
+ const operation = args[0] ?? "query";
23
+ if (operation === "help" || operation === "--help" || operation === "-h") {
24
+ deps.renderer.write(usage());
25
+ return 0;
26
+ }
27
+ let access;
28
+ try {
29
+ access = createChronicleProjectAccess({
30
+ projectRoot: deps.projectRoot,
31
+ userHome: deps.userHome
32
+ });
33
+ if (operation === "status") {
34
+ const health = await access.call("ping", {});
35
+ deps.renderer.write(
36
+ `${JSON.stringify(
37
+ {
38
+ mode: access.mode,
39
+ owner: {
40
+ pid: health.pid,
41
+ uptimeMs: health.uptimeMs,
42
+ clients: health.clients,
43
+ activeRequests: health.activeRequests,
44
+ endpoint: health.endpoint
45
+ },
46
+ pipeline: {
47
+ collection: "session-event-adapters",
48
+ processing: access.mode === "server" ? "project-chronicle-server" : "inline-chronicle-fallback",
49
+ storage: health.chronicleDirectory,
50
+ serving: "wstack-chronicle-cli"
51
+ },
52
+ journal: health.journal,
53
+ watcher: health.watcher
54
+ },
55
+ null,
56
+ 2
57
+ )}
58
+ `
59
+ );
60
+ return 0;
61
+ }
62
+ if (operation === "prune") {
63
+ const dryRun = args.includes("--dry-run") || args.includes("-n");
64
+ const daysIndex = args.indexOf("--days");
65
+ const rawDays = daysIndex >= 0 && daysIndex + 1 < args.length ? args[daysIndex + 1] : void 0;
66
+ const days = rawDays ? parseInt(rawDays, 10) : 30;
67
+ if (!Number.isFinite(days) || days < 1) {
68
+ deps.renderer.writeError(
69
+ `Invalid retention days: ${rawDays ?? ""}. Use --days N (positive integer).
70
+ `
71
+ );
72
+ return 1;
73
+ }
74
+ const result2 = await access.call("purge", { retentionDays: days, dryRun });
75
+ if (dryRun) {
76
+ deps.renderer.write(`Dry-run: would delete ${result2.candidates?.length ?? 0} entries`);
77
+ if (result2.candidates?.length) {
78
+ const totalBytes = result2.candidates.reduce((sum, f) => {
79
+ try {
80
+ return sum + statSync(f).size;
81
+ } catch {
82
+ return sum;
83
+ }
84
+ }, 0);
85
+ deps.renderer.write(` (${formatBytes(totalBytes)}):
86
+ `);
87
+ for (const file of result2.candidates) {
88
+ const s = tryStat(file);
89
+ const age = s ? `${Math.round((Date.now() - s.mtimeMs) / 864e5)}d` : "?";
90
+ deps.renderer.write(` ${file} (${age}, ${formatBytes(s?.size ?? 0)})
91
+ `);
92
+ }
93
+ } else {
94
+ deps.renderer.write(".\n");
95
+ }
96
+ } else {
97
+ const bytes = result2.deletedBytes;
98
+ deps.renderer.write(`Purged ${result2.deletedCount} entries (${formatBytes(bytes)})`);
99
+ if (result2.errors.length) deps.renderer.write(`, ${result2.errors.length} errors`);
100
+ deps.renderer.write(".\n");
101
+ for (const err of result2.errors) {
102
+ deps.renderer.writeError(` Error: ${err.file}: ${err.reason}
103
+ `);
104
+ }
105
+ }
106
+ return result2.errors.length > 0 ? 1 : 0;
107
+ }
108
+ if (operation === "metrics") {
109
+ const hasView = Boolean(args[1] && !args[1].includes("="));
110
+ const rawView = hasView ? args[1] : "summary";
111
+ if (!isMetricsView(rawView)) {
112
+ deps.renderer.writeError(
113
+ `Unknown metrics view: ${rawView}. Use providers|tasks|files|summary.
114
+ `
115
+ );
116
+ return 1;
117
+ }
118
+ const view = rawView;
119
+ const filters = parseQuery(args.slice(hasView ? 2 : 1));
120
+ try {
121
+ const result2 = await access.call("metrics", {
122
+ view,
123
+ ...view === "providers" ? {
124
+ providers: {
125
+ ...filters.from ? { from: filters.from } : {},
126
+ ...filters.to ? { to: filters.to } : {}
127
+ }
128
+ } : {},
129
+ ...view === "tasks" ? {
130
+ tasks: {
131
+ ...filters.sessionId ? { sessionId: filters.sessionId } : {},
132
+ ...filters.limit ? { limit: filters.limit } : {}
133
+ }
134
+ } : {},
135
+ ...view === "files" ? {
136
+ files: {
137
+ ...filters.path ? { path: filters.path } : {},
138
+ ...filters.taskId ? { taskId: filters.taskId } : {},
139
+ ...filters.sessionId ? { sessionId: filters.sessionId } : {},
140
+ ...filters.limit ? { limit: filters.limit } : {}
141
+ }
142
+ } : {}
143
+ });
144
+ deps.renderer.write(
145
+ JSON.stringify({ refreshed: result2.refreshed, [view]: result2.data }, null, 2) + "\n"
146
+ );
147
+ return 0;
148
+ } catch (error) {
149
+ deps.renderer.writeError(`${error instanceof Error ? error.message : String(error)}
150
+ `);
151
+ return 1;
152
+ }
153
+ }
154
+ if (operation === "facet") {
155
+ const field = args[1];
156
+ if (!field || !facets.has(field)) {
157
+ deps.renderer.writeError(`Unknown facet. Use: ${[...facets].join(", ")}
158
+ `);
159
+ return 1;
160
+ }
161
+ const query = parseQuery(args.slice(2));
162
+ const result2 = await access.call("facet", { field, query });
163
+ deps.renderer.write(JSON.stringify({ field, ...result2 }, null, 2) + "\n");
164
+ return 0;
165
+ }
166
+ if (operation !== "query") {
167
+ deps.renderer.writeError(`Unknown Chronicle operation: ${operation}
168
+ ${usage()}`);
169
+ return 1;
170
+ }
171
+ const result = await access.call("query", { query: parseQuery(args.slice(1)) });
172
+ deps.renderer.write(JSON.stringify(result, null, 2) + "\n");
173
+ return 0;
174
+ } catch (error) {
175
+ deps.renderer.writeError(`${error instanceof Error ? error.message : String(error)}
176
+ `);
177
+ return 1;
178
+ } finally {
179
+ await access?.close();
180
+ }
181
+ };
182
+ function isMetricsView(value) {
183
+ return ["providers", "tasks", "files", "summary"].includes(value);
184
+ }
185
+ function parseQuery(tokens) {
186
+ const query = {};
187
+ for (const token of tokens) {
188
+ const split = token.indexOf("=");
189
+ if (split < 1) continue;
190
+ const key = token.slice(0, split), value = token.slice(split + 1);
191
+ if (key === "eventType") query.eventTypes = value.split(",").filter(Boolean);
192
+ else if (key === "outcome")
193
+ query.outcomes = value.split(",").filter(Boolean);
194
+ else if (key === "resourceKind")
195
+ query.resourceKind = value;
196
+ else if (key === "line" || key === "limit") query[key] = Number(value);
197
+ else if (key === "order" && (value === "asc" || value === "desc")) query.order = value;
198
+ else if (key.startsWith("tag.")) {
199
+ const tags = query.tags ?? {};
200
+ tags[key.slice(4)] = value;
201
+ query.tags = tags;
202
+ } else if (key.startsWith("attr.")) {
203
+ const attributes = query.attributes ?? {};
204
+ attributes[key.slice(5)] = parseValue(value);
205
+ query.attributes = attributes;
206
+ } else if (isStringQueryKey(key)) query[key] = value;
207
+ }
208
+ return query;
209
+ }
210
+ function isStringQueryKey(key) {
211
+ return [
212
+ "from",
213
+ "to",
214
+ "projectId",
215
+ "sessionId",
216
+ "agentId",
217
+ "taskId",
218
+ "providerId",
219
+ "modelId",
220
+ "traceId",
221
+ "logicalRequestId",
222
+ "attemptId",
223
+ "toolCallId",
224
+ "resourceId",
225
+ "path",
226
+ "text",
227
+ "cursor"
228
+ ].includes(key);
229
+ }
230
+ function parseValue(value) {
231
+ try {
232
+ return JSON.parse(value);
233
+ } catch {
234
+ return value;
235
+ }
236
+ }
237
+ function usage() {
238
+ return "Usage:\n wstack chronicle query [field=value ...]\n wstack chronicle status\n wstack chronicle facet <field> [field=value ...]\n wstack chronicle metrics [providers|tasks|files|summary] [field=value ...]\n wstack chronicle prune [--days N] [--dry-run]\n\nExamples:\n wstack chronicle status\n wstack chronicle query path=src/app.ts line=42\n wstack chronicle query providerId=openai outcome=failure\n wstack chronicle query eventType=tool.executed sessionId=<id> limit=50\n wstack chronicle query attr.tool.name=read\n wstack chronicle facet modelId from=2026-07-01T00:00:00Z\n wstack chronicle metrics providers from=2026-07-01\n wstack chronicle metrics files path=src/app.ts\n wstack chronicle metrics tasks limit=20\n wstack chronicle prune --days 7 --dry-run\n wstack chronicle prune --days 30\n";
239
+ }
240
+ function formatBytes(bytes) {
241
+ if (bytes < 1024) return `${bytes} B`;
242
+ if (bytes < 1048576) return `${(bytes / 1024).toFixed(1)} KB`;
243
+ return `${(bytes / 1048576).toFixed(1)} MB`;
244
+ }
245
+ function tryStat(file) {
246
+ try {
247
+ const s = statSync(file);
248
+ return { size: s.size, mtimeMs: s.mtimeMs };
249
+ } catch {
250
+ return void 0;
251
+ }
252
+ }
253
+ export {
254
+ chronicleCmd
255
+ };
256
+ //# sourceMappingURL=chronicle-QQEQFSSE.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/subcommands/handlers/chronicle.ts"],
4
+ "sourcesContent": ["import { statSync } from 'node:fs';\nimport {\n type ChronicleFacet,\n type ChronicleMetricsView,\n type ChronicleQuery,\n createChronicleProjectAccess,\n} from '@wrongstack/core/chronicle';\nimport type { SubcommandHandler } from '../index.js';\n\nconst facets = new Set<ChronicleFacet>([\n 'eventType',\n 'outcome',\n 'projectId',\n 'sessionId',\n 'agentId',\n 'taskId',\n 'providerId',\n 'modelId',\n 'resourceKind',\n 'resourcePath',\n 'toolCallId',\n]);\n\n/** `wstack chronicle` \u2014 query the cross-session provenance ledger. */\nexport const chronicleCmd: SubcommandHandler = async (args, deps) => {\n const operation = args[0] ?? 'query';\n if (operation === 'help' || operation === '--help' || operation === '-h') {\n deps.renderer.write(usage());\n return 0;\n }\n let access: ReturnType<typeof createChronicleProjectAccess> | undefined;\n try {\n access = createChronicleProjectAccess({\n projectRoot: deps.projectRoot,\n userHome: deps.userHome,\n });\n if (operation === 'status') {\n const health = await access.call('ping', {});\n deps.renderer.write(\n `${JSON.stringify(\n {\n mode: access.mode,\n owner: {\n pid: health.pid,\n uptimeMs: health.uptimeMs,\n clients: health.clients,\n activeRequests: health.activeRequests,\n endpoint: health.endpoint,\n },\n pipeline: {\n collection: 'session-event-adapters',\n processing:\n access.mode === 'server' ? 'project-chronicle-server' : 'inline-chronicle-fallback',\n storage: health.chronicleDirectory,\n serving: 'wstack-chronicle-cli',\n },\n journal: health.journal,\n watcher: health.watcher,\n },\n null,\n 2,\n )}\\n`,\n );\n return 0;\n }\n\n // `wstack chronicle prune [--dry-run] [--days N]`\n if (operation === 'prune') {\n const dryRun = args.includes('--dry-run') || args.includes('-n');\n const daysIndex = args.indexOf('--days');\n const rawDays =\n daysIndex >= 0 && daysIndex + 1 < args.length ? args[daysIndex + 1] : undefined;\n const days = rawDays ? parseInt(rawDays, 10) : 30;\n if (!Number.isFinite(days) || days < 1) {\n deps.renderer.writeError(\n `Invalid retention days: ${rawDays ?? ''}. Use --days N (positive integer).\\n`,\n );\n return 1;\n }\n const result = await access.call('purge', { retentionDays: days, dryRun });\n if (dryRun) {\n // \"entries\" rather than \"files\": SQLite purges whole day-chains, the\n // legacy store purged partition files. Both are entries to the caller.\n deps.renderer.write(`Dry-run: would delete ${result.candidates?.length ?? 0} entries`);\n if (result.candidates?.length) {\n const totalBytes = result.candidates.reduce((sum: number, f: string) => {\n try {\n return sum + statSync(f).size;\n } catch {\n return sum;\n }\n }, 0);\n deps.renderer.write(` (${formatBytes(totalBytes)}):\\n`);\n for (const file of result.candidates!) {\n const s = tryStat(file);\n const age = s ? `${Math.round((Date.now() - s.mtimeMs) / 86400000)}d` : '?';\n deps.renderer.write(` ${file} (${age}, ${formatBytes(s?.size ?? 0)})\\n`);\n }\n } else {\n deps.renderer.write('.\\n');\n }\n } else {\n const bytes = result.deletedBytes;\n deps.renderer.write(`Purged ${result.deletedCount} entries (${formatBytes(bytes)})`);\n if (result.errors.length) deps.renderer.write(`, ${result.errors.length} errors`);\n deps.renderer.write('.\\n');\n for (const err of result.errors) {\n deps.renderer.writeError(` Error: ${err.file}: ${err.reason}\\n`);\n }\n }\n return result.errors.length > 0 ? 1 : 0;\n }\n\n // `wstack chronicle metrics [providers|tasks|files|summary] [key=value ...]`\n // Incrementally ingests new journal bytes into metrics.db, then queries the\n // derived aggregates instead of streaming raw partitions.\n if (operation === 'metrics') {\n const hasView = Boolean(args[1] && !args[1].includes('='));\n const rawView = hasView ? args[1]! : 'summary';\n if (!isMetricsView(rawView)) {\n deps.renderer.writeError(\n `Unknown metrics view: ${rawView}. Use providers|tasks|files|summary.\\n`,\n );\n return 1;\n }\n const view: ChronicleMetricsView = rawView;\n const filters = parseQuery(args.slice(hasView ? 2 : 1));\n try {\n const result = await access.call('metrics', {\n view,\n ...(view === 'providers'\n ? {\n providers: {\n ...(filters.from ? { from: filters.from } : {}),\n ...(filters.to ? { to: filters.to } : {}),\n },\n }\n : {}),\n ...(view === 'tasks'\n ? {\n tasks: {\n ...(filters.sessionId ? { sessionId: filters.sessionId } : {}),\n ...(filters.limit ? { limit: filters.limit } : {}),\n },\n }\n : {}),\n ...(view === 'files'\n ? {\n files: {\n ...(filters.path ? { path: filters.path } : {}),\n ...(filters.taskId ? { taskId: filters.taskId } : {}),\n ...(filters.sessionId ? { sessionId: filters.sessionId } : {}),\n ...(filters.limit ? { limit: filters.limit } : {}),\n },\n }\n : {}),\n });\n deps.renderer.write(\n JSON.stringify({ refreshed: result.refreshed, [view]: result.data }, null, 2) + '\\n',\n );\n return 0;\n } catch (error) {\n deps.renderer.writeError(`${error instanceof Error ? error.message : String(error)}\\n`);\n return 1;\n }\n }\n\n if (operation === 'facet') {\n const field = args[1] as ChronicleFacet | undefined;\n if (!field || !facets.has(field)) {\n deps.renderer.writeError(`Unknown facet. Use: ${[...facets].join(', ')}\\n`);\n return 1;\n }\n const query = parseQuery(args.slice(2));\n const result = await access.call('facet', { field, query });\n deps.renderer.write(JSON.stringify({ field, ...result }, null, 2) + '\\n');\n return 0;\n }\n if (operation !== 'query') {\n deps.renderer.writeError(`Unknown Chronicle operation: ${operation}\\n${usage()}`);\n return 1;\n }\n const result = await access.call('query', { query: parseQuery(args.slice(1)) });\n deps.renderer.write(JSON.stringify(result, null, 2) + '\\n');\n return 0;\n } catch (error) {\n deps.renderer.writeError(`${error instanceof Error ? error.message : String(error)}\\n`);\n return 1;\n } finally {\n await access?.close();\n }\n};\n\nfunction isMetricsView(value: string): value is ChronicleMetricsView {\n return ['providers', 'tasks', 'files', 'summary'].includes(value);\n}\n\nfunction parseQuery(tokens: string[]): ChronicleQuery {\n const query: ChronicleQuery = {};\n for (const token of tokens) {\n const split = token.indexOf('=');\n if (split < 1) continue;\n const key = token.slice(0, split),\n value = token.slice(split + 1);\n if (key === 'eventType') query.eventTypes = value.split(',').filter(Boolean);\n else if (key === 'outcome')\n query.outcomes = value.split(',').filter(Boolean) as NonNullable<ChronicleQuery['outcomes']>;\n else if (key === 'resourceKind')\n query.resourceKind = value as NonNullable<ChronicleQuery['resourceKind']>;\n else if (key === 'line' || key === 'limit') query[key] = Number(value);\n else if (key === 'order' && (value === 'asc' || value === 'desc')) query.order = value;\n else if (key.startsWith('tag.')) {\n const tags = query.tags ?? {};\n tags[key.slice(4)] = value;\n query.tags = tags;\n } else if (key.startsWith('attr.')) {\n const attributes = query.attributes ?? {};\n attributes[key.slice(5)] = parseValue(value);\n query.attributes = attributes;\n } else if (isStringQueryKey(key)) query[key] = value;\n }\n return query;\n}\n\nfunction isStringQueryKey(\n key: string,\n): key is\n | 'from'\n | 'to'\n | 'projectId'\n | 'sessionId'\n | 'agentId'\n | 'taskId'\n | 'providerId'\n | 'modelId'\n | 'traceId'\n | 'logicalRequestId'\n | 'attemptId'\n | 'toolCallId'\n | 'resourceId'\n | 'path'\n | 'text'\n | 'cursor' {\n return [\n 'from',\n 'to',\n 'projectId',\n 'sessionId',\n 'agentId',\n 'taskId',\n 'providerId',\n 'modelId',\n 'traceId',\n 'logicalRequestId',\n 'attemptId',\n 'toolCallId',\n 'resourceId',\n 'path',\n 'text',\n 'cursor',\n ].includes(key);\n}\n\nfunction parseValue(value: string): unknown {\n try {\n return JSON.parse(value);\n } catch {\n return value;\n }\n}\n\nfunction usage(): string {\n return (\n 'Usage:\\n' +\n ' wstack chronicle query [field=value ...]\\n' +\n ' wstack chronicle status\\n' +\n ' wstack chronicle facet <field> [field=value ...]\\n' +\n ' wstack chronicle metrics [providers|tasks|files|summary] [field=value ...]\\n' +\n ' wstack chronicle prune [--days N] [--dry-run]\\n\\n' +\n 'Examples:\\n' +\n ' wstack chronicle status\\n' +\n ' wstack chronicle query path=src/app.ts line=42\\n' +\n ' wstack chronicle query providerId=openai outcome=failure\\n' +\n ' wstack chronicle query eventType=tool.executed sessionId=<id> limit=50\\n' +\n ' wstack chronicle query attr.tool.name=read\\n' +\n ' wstack chronicle facet modelId from=2026-07-01T00:00:00Z\\n' +\n ' wstack chronicle metrics providers from=2026-07-01\\n' +\n ' wstack chronicle metrics files path=src/app.ts\\n' +\n ' wstack chronicle metrics tasks limit=20\\n' +\n ' wstack chronicle prune --days 7 --dry-run\\n' +\n ' wstack chronicle prune --days 30\\n'\n );\n}\n\nfunction formatBytes(bytes: number): string {\n if (bytes < 1024) return `${bytes} B`;\n if (bytes < 1048576) return `${(bytes / 1024).toFixed(1)} KB`;\n return `${(bytes / 1048576).toFixed(1)} MB`;\n}\n\nfunction tryStat(file: string): { size: number; mtimeMs: number } | undefined {\n try {\n const s = statSync(file);\n return { size: s.size, mtimeMs: s.mtimeMs };\n } catch {\n return undefined;\n }\n}\n"],
5
+ "mappings": ";;;;AAAA,SAAS,gBAAgB;AACzB;AAAA,EAIE;AAAA,OACK;AAGP,IAAM,SAAS,oBAAI,IAAoB;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAGM,IAAM,eAAkC,OAAO,MAAM,SAAS;AACnE,QAAM,YAAY,KAAK,CAAC,KAAK;AAC7B,MAAI,cAAc,UAAU,cAAc,YAAY,cAAc,MAAM;AACxE,SAAK,SAAS,MAAM,MAAM,CAAC;AAC3B,WAAO;AAAA,EACT;AACA,MAAI;AACJ,MAAI;AACF,aAAS,6BAA6B;AAAA,MACpC,aAAa,KAAK;AAAA,MAClB,UAAU,KAAK;AAAA,IACjB,CAAC;AACD,QAAI,cAAc,UAAU;AAC1B,YAAM,SAAS,MAAM,OAAO,KAAK,QAAQ,CAAC,CAAC;AAC3C,WAAK,SAAS;AAAA,QACZ,GAAG,KAAK;AAAA,UACN;AAAA,YACE,MAAM,OAAO;AAAA,YACb,OAAO;AAAA,cACL,KAAK,OAAO;AAAA,cACZ,UAAU,OAAO;AAAA,cACjB,SAAS,OAAO;AAAA,cAChB,gBAAgB,OAAO;AAAA,cACvB,UAAU,OAAO;AAAA,YACnB;AAAA,YACA,UAAU;AAAA,cACR,YAAY;AAAA,cACZ,YACE,OAAO,SAAS,WAAW,6BAA6B;AAAA,cAC1D,SAAS,OAAO;AAAA,cAChB,SAAS;AAAA,YACX;AAAA,YACA,SAAS,OAAO;AAAA,YAChB,SAAS,OAAO;AAAA,UAClB;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC;AAAA;AAAA,MACH;AACA,aAAO;AAAA,IACT;AAGA,QAAI,cAAc,SAAS;AACzB,YAAM,SAAS,KAAK,SAAS,WAAW,KAAK,KAAK,SAAS,IAAI;AAC/D,YAAM,YAAY,KAAK,QAAQ,QAAQ;AACvC,YAAM,UACJ,aAAa,KAAK,YAAY,IAAI,KAAK,SAAS,KAAK,YAAY,CAAC,IAAI;AACxE,YAAM,OAAO,UAAU,SAAS,SAAS,EAAE,IAAI;AAC/C,UAAI,CAAC,OAAO,SAAS,IAAI,KAAK,OAAO,GAAG;AACtC,aAAK,SAAS;AAAA,UACZ,2BAA2B,WAAW,EAAE;AAAA;AAAA,QAC1C;AACA,eAAO;AAAA,MACT;AACA,YAAMA,UAAS,MAAM,OAAO,KAAK,SAAS,EAAE,eAAe,MAAM,OAAO,CAAC;AACzE,UAAI,QAAQ;AAGV,aAAK,SAAS,MAAM,yBAAyBA,QAAO,YAAY,UAAU,CAAC,UAAU;AACrF,YAAIA,QAAO,YAAY,QAAQ;AAC7B,gBAAM,aAAaA,QAAO,WAAW,OAAO,CAAC,KAAa,MAAc;AACtE,gBAAI;AACF,qBAAO,MAAM,SAAS,CAAC,EAAE;AAAA,YAC3B,QAAQ;AACN,qBAAO;AAAA,YACT;AAAA,UACF,GAAG,CAAC;AACJ,eAAK,SAAS,MAAM,KAAK,YAAY,UAAU,CAAC;AAAA,CAAM;AACtD,qBAAW,QAAQA,QAAO,YAAa;AACrC,kBAAM,IAAI,QAAQ,IAAI;AACtB,kBAAM,MAAM,IAAI,GAAG,KAAK,OAAO,KAAK,IAAI,IAAI,EAAE,WAAW,KAAQ,CAAC,MAAM;AACxE,iBAAK,SAAS,MAAM,KAAK,IAAI,MAAM,GAAG,KAAK,YAAY,GAAG,QAAQ,CAAC,CAAC;AAAA,CAAK;AAAA,UAC3E;AAAA,QACF,OAAO;AACL,eAAK,SAAS,MAAM,KAAK;AAAA,QAC3B;AAAA,MACF,OAAO;AACL,cAAM,QAAQA,QAAO;AACrB,aAAK,SAAS,MAAM,UAAUA,QAAO,YAAY,aAAa,YAAY,KAAK,CAAC,GAAG;AACnF,YAAIA,QAAO,OAAO,OAAQ,MAAK,SAAS,MAAM,KAAKA,QAAO,OAAO,MAAM,SAAS;AAChF,aAAK,SAAS,MAAM,KAAK;AACzB,mBAAW,OAAOA,QAAO,QAAQ;AAC/B,eAAK,SAAS,WAAW,YAAY,IAAI,IAAI,KAAK,IAAI,MAAM;AAAA,CAAI;AAAA,QAClE;AAAA,MACF;AACA,aAAOA,QAAO,OAAO,SAAS,IAAI,IAAI;AAAA,IACxC;AAKA,QAAI,cAAc,WAAW;AAC3B,YAAM,UAAU,QAAQ,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,CAAC;AACzD,YAAM,UAAU,UAAU,KAAK,CAAC,IAAK;AACrC,UAAI,CAAC,cAAc,OAAO,GAAG;AAC3B,aAAK,SAAS;AAAA,UACZ,yBAAyB,OAAO;AAAA;AAAA,QAClC;AACA,eAAO;AAAA,MACT;AACA,YAAM,OAA6B;AACnC,YAAM,UAAU,WAAW,KAAK,MAAM,UAAU,IAAI,CAAC,CAAC;AACtD,UAAI;AACF,cAAMA,UAAS,MAAM,OAAO,KAAK,WAAW;AAAA,UAC1C;AAAA,UACA,GAAI,SAAS,cACT;AAAA,YACE,WAAW;AAAA,cACT,GAAI,QAAQ,OAAO,EAAE,MAAM,QAAQ,KAAK,IAAI,CAAC;AAAA,cAC7C,GAAI,QAAQ,KAAK,EAAE,IAAI,QAAQ,GAAG,IAAI,CAAC;AAAA,YACzC;AAAA,UACF,IACA,CAAC;AAAA,UACL,GAAI,SAAS,UACT;AAAA,YACE,OAAO;AAAA,cACL,GAAI,QAAQ,YAAY,EAAE,WAAW,QAAQ,UAAU,IAAI,CAAC;AAAA,cAC5D,GAAI,QAAQ,QAAQ,EAAE,OAAO,QAAQ,MAAM,IAAI,CAAC;AAAA,YAClD;AAAA,UACF,IACA,CAAC;AAAA,UACL,GAAI,SAAS,UACT;AAAA,YACE,OAAO;AAAA,cACL,GAAI,QAAQ,OAAO,EAAE,MAAM,QAAQ,KAAK,IAAI,CAAC;AAAA,cAC7C,GAAI,QAAQ,SAAS,EAAE,QAAQ,QAAQ,OAAO,IAAI,CAAC;AAAA,cACnD,GAAI,QAAQ,YAAY,EAAE,WAAW,QAAQ,UAAU,IAAI,CAAC;AAAA,cAC5D,GAAI,QAAQ,QAAQ,EAAE,OAAO,QAAQ,MAAM,IAAI,CAAC;AAAA,YAClD;AAAA,UACF,IACA,CAAC;AAAA,QACP,CAAC;AACD,aAAK,SAAS;AAAA,UACZ,KAAK,UAAU,EAAE,WAAWA,QAAO,WAAW,CAAC,IAAI,GAAGA,QAAO,KAAK,GAAG,MAAM,CAAC,IAAI;AAAA,QAClF;AACA,eAAO;AAAA,MACT,SAAS,OAAO;AACd,aAAK,SAAS,WAAW,GAAG,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CAAC;AAAA,CAAI;AACtF,eAAO;AAAA,MACT;AAAA,IACF;AAEA,QAAI,cAAc,SAAS;AACzB,YAAM,QAAQ,KAAK,CAAC;AACpB,UAAI,CAAC,SAAS,CAAC,OAAO,IAAI,KAAK,GAAG;AAChC,aAAK,SAAS,WAAW,uBAAuB,CAAC,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC;AAAA,CAAI;AAC1E,eAAO;AAAA,MACT;AACA,YAAM,QAAQ,WAAW,KAAK,MAAM,CAAC,CAAC;AACtC,YAAMA,UAAS,MAAM,OAAO,KAAK,SAAS,EAAE,OAAO,MAAM,CAAC;AAC1D,WAAK,SAAS,MAAM,KAAK,UAAU,EAAE,OAAO,GAAGA,QAAO,GAAG,MAAM,CAAC,IAAI,IAAI;AACxE,aAAO;AAAA,IACT;AACA,QAAI,cAAc,SAAS;AACzB,WAAK,SAAS,WAAW,gCAAgC,SAAS;AAAA,EAAK,MAAM,CAAC,EAAE;AAChF,aAAO;AAAA,IACT;AACA,UAAM,SAAS,MAAM,OAAO,KAAK,SAAS,EAAE,OAAO,WAAW,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC;AAC9E,SAAK,SAAS,MAAM,KAAK,UAAU,QAAQ,MAAM,CAAC,IAAI,IAAI;AAC1D,WAAO;AAAA,EACT,SAAS,OAAO;AACd,SAAK,SAAS,WAAW,GAAG,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CAAC;AAAA,CAAI;AACtF,WAAO;AAAA,EACT,UAAE;AACA,UAAM,QAAQ,MAAM;AAAA,EACtB;AACF;AAEA,SAAS,cAAc,OAA8C;AACnE,SAAO,CAAC,aAAa,SAAS,SAAS,SAAS,EAAE,SAAS,KAAK;AAClE;AAEA,SAAS,WAAW,QAAkC;AACpD,QAAM,QAAwB,CAAC;AAC/B,aAAW,SAAS,QAAQ;AAC1B,UAAM,QAAQ,MAAM,QAAQ,GAAG;AAC/B,QAAI,QAAQ,EAAG;AACf,UAAM,MAAM,MAAM,MAAM,GAAG,KAAK,GAC9B,QAAQ,MAAM,MAAM,QAAQ,CAAC;AAC/B,QAAI,QAAQ,YAAa,OAAM,aAAa,MAAM,MAAM,GAAG,EAAE,OAAO,OAAO;AAAA,aAClE,QAAQ;AACf,YAAM,WAAW,MAAM,MAAM,GAAG,EAAE,OAAO,OAAO;AAAA,aACzC,QAAQ;AACf,YAAM,eAAe;AAAA,aACd,QAAQ,UAAU,QAAQ,QAAS,OAAM,GAAG,IAAI,OAAO,KAAK;AAAA,aAC5D,QAAQ,YAAY,UAAU,SAAS,UAAU,QAAS,OAAM,QAAQ;AAAA,aACxE,IAAI,WAAW,MAAM,GAAG;AAC/B,YAAM,OAAO,MAAM,QAAQ,CAAC;AAC5B,WAAK,IAAI,MAAM,CAAC,CAAC,IAAI;AACrB,YAAM,OAAO;AAAA,IACf,WAAW,IAAI,WAAW,OAAO,GAAG;AAClC,YAAM,aAAa,MAAM,cAAc,CAAC;AACxC,iBAAW,IAAI,MAAM,CAAC,CAAC,IAAI,WAAW,KAAK;AAC3C,YAAM,aAAa;AAAA,IACrB,WAAW,iBAAiB,GAAG,EAAG,OAAM,GAAG,IAAI;AAAA,EACjD;AACA,SAAO;AACT;AAEA,SAAS,iBACP,KAiBW;AACX,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,EAAE,SAAS,GAAG;AAChB;AAEA,SAAS,WAAW,OAAwB;AAC1C,MAAI;AACF,WAAO,KAAK,MAAM,KAAK;AAAA,EACzB,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,SAAS,QAAgB;AACvB,SACE;AAmBJ;AAEA,SAAS,YAAY,OAAuB;AAC1C,MAAI,QAAQ,KAAM,QAAO,GAAG,KAAK;AACjC,MAAI,QAAQ,QAAS,QAAO,IAAI,QAAQ,MAAM,QAAQ,CAAC,CAAC;AACxD,SAAO,IAAI,QAAQ,SAAS,QAAQ,CAAC,CAAC;AACxC;AAEA,SAAS,QAAQ,MAA6D;AAC5E,MAAI;AACF,UAAM,IAAI,SAAS,IAAI;AACvB,WAAO,EAAE,MAAM,EAAE,MAAM,SAAS,EAAE,QAAQ;AAAA,EAC5C,QAAQ;AACN,WAAO;AAAA,EACT;AACF;",
6
+ "names": ["result"]
7
+ }