peaks-loop 4.1.2 → 4.1.4

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 (717) hide show
  1. package/.claude-plugin/marketplace.json +136 -47
  2. package/CHANGELOG.md +112 -0
  3. package/README-en.md +1 -1
  4. package/README.md +1 -1
  5. package/contracts/readonly-argv-whitelist.json +211 -0
  6. package/dist/cli/commands/asset-command-shared.d.ts +12 -0
  7. package/dist/cli/commands/asset-command-shared.js +45 -0
  8. package/dist/cli/commands/asset-commands.d.ts +6 -1
  9. package/dist/cli/commands/asset-commands.js +11 -372
  10. package/dist/cli/commands/asset-crystallize-command.d.ts +3 -0
  11. package/dist/cli/commands/asset-crystallize-command.js +60 -0
  12. package/dist/cli/commands/asset-crystallize-payload.d.ts +47 -0
  13. package/dist/cli/commands/asset-crystallize-payload.js +85 -0
  14. package/dist/cli/commands/asset-crystallize-runner.d.ts +3 -0
  15. package/dist/cli/commands/asset-crystallize-runner.js +133 -0
  16. package/dist/cli/commands/asset-dispose-command.d.ts +3 -0
  17. package/dist/cli/commands/asset-dispose-command.js +99 -0
  18. package/dist/cli/commands/asset-status-command.d.ts +3 -0
  19. package/dist/cli/commands/asset-status-command.js +100 -0
  20. package/dist/cli/commands/audit-artifact-runners.d.ts +16 -0
  21. package/dist/cli/commands/audit-artifact-runners.js +170 -0
  22. package/dist/cli/commands/audit-command-shared.d.ts +97 -0
  23. package/dist/cli/commands/audit-command-shared.js +60 -0
  24. package/dist/cli/commands/audit-commands.d.ts +7 -31
  25. package/dist/cli/commands/audit-commands.js +64 -473
  26. package/dist/cli/commands/audit-goal-runners.d.ts +17 -0
  27. package/dist/cli/commands/audit-goal-runners.js +114 -0
  28. package/dist/cli/commands/audit-red-lines-runners.d.ts +11 -0
  29. package/dist/cli/commands/audit-red-lines-runners.js +43 -0
  30. package/dist/cli/commands/audit-refusal-data.d.ts +23 -0
  31. package/dist/cli/commands/audit-refusal-data.js +69 -0
  32. package/dist/cli/commands/audit-static-runners.d.ts +13 -0
  33. package/dist/cli/commands/audit-static-runners.js +139 -0
  34. package/dist/cli/commands/await-runners.d.ts +11 -0
  35. package/dist/cli/commands/await-runners.js +148 -0
  36. package/dist/cli/commands/baseline-audit-command.d.ts +3 -0
  37. package/dist/cli/commands/baseline-audit-command.js +64 -0
  38. package/dist/cli/commands/baseline-command-shared.d.ts +23 -0
  39. package/dist/cli/commands/baseline-command-shared.js +39 -0
  40. package/dist/cli/commands/baseline-commands.js +33 -313
  41. package/dist/cli/commands/baseline-freeze-commands.d.ts +4 -0
  42. package/dist/cli/commands/baseline-freeze-commands.js +81 -0
  43. package/dist/cli/commands/baseline-guard-command.d.ts +3 -0
  44. package/dist/cli/commands/baseline-guard-command.js +52 -0
  45. package/dist/cli/commands/baseline-read-commands.d.ts +5 -0
  46. package/dist/cli/commands/baseline-read-commands.js +72 -0
  47. package/dist/cli/commands/baseline-rollback-commands.d.ts +4 -0
  48. package/dist/cli/commands/baseline-rollback-commands.js +88 -0
  49. package/dist/cli/commands/classify-downgrade-command.d.ts +9 -0
  50. package/dist/cli/commands/classify-downgrade-command.js +21 -0
  51. package/dist/cli/commands/classify-run-command.d.ts +9 -0
  52. package/dist/cli/commands/classify-run-command.js +73 -0
  53. package/dist/cli/commands/classify-signals.d.ts +5 -0
  54. package/dist/cli/commands/classify-signals.js +104 -0
  55. package/dist/cli/commands/code-auto-compact-command.d.ts +3 -0
  56. package/dist/cli/commands/code-auto-compact-command.js +124 -0
  57. package/dist/cli/commands/code-auto-compact-envelope.d.ts +22 -0
  58. package/dist/cli/commands/code-auto-compact-envelope.js +39 -0
  59. package/dist/cli/commands/code-context-audit-command.d.ts +3 -0
  60. package/dist/cli/commands/code-context-audit-command.js +68 -0
  61. package/dist/cli/commands/code-context-now-command.d.ts +3 -0
  62. package/dist/cli/commands/code-context-now-command.js +124 -0
  63. package/dist/cli/commands/code-context-now-envelope.d.ts +66 -0
  64. package/dist/cli/commands/code-context-now-envelope.js +136 -0
  65. package/dist/cli/commands/code-context-now-mapping.d.ts +27 -0
  66. package/dist/cli/commands/code-context-now-mapping.js +43 -0
  67. package/dist/cli/commands/code-emit-handoff-command.d.ts +3 -0
  68. package/dist/cli/commands/code-emit-handoff-command.js +136 -0
  69. package/dist/cli/commands/code-gate-step-08-command.d.ts +3 -0
  70. package/dist/cli/commands/code-gate-step-08-command.js +155 -0
  71. package/dist/cli/commands/code-post-compact-detect-command.d.ts +3 -0
  72. package/dist/cli/commands/code-post-compact-detect-command.js +50 -0
  73. package/dist/cli/commands/code-runtime-commands.d.ts +9 -43
  74. package/dist/cli/commands/code-runtime-commands.js +20 -672
  75. package/dist/cli/commands/code-runtime-session.d.ts +1 -0
  76. package/dist/cli/commands/code-runtime-session.js +15 -0
  77. package/dist/cli/commands/codegraph-command-options.d.ts +22 -0
  78. package/dist/cli/commands/codegraph-command-options.js +22 -0
  79. package/dist/cli/commands/codegraph-commands.d.ts +2 -2
  80. package/dist/cli/commands/codegraph-commands.js +14 -397
  81. package/dist/cli/commands/codegraph-config-restore-command.d.ts +3 -0
  82. package/dist/cli/commands/codegraph-config-restore-command.js +200 -0
  83. package/dist/cli/commands/codegraph-proxy-commands.d.ts +10 -0
  84. package/dist/cli/commands/codegraph-proxy-commands.js +159 -0
  85. package/dist/cli/commands/codegraph-repair-commands.d.ts +3 -0
  86. package/dist/cli/commands/codegraph-repair-commands.js +94 -0
  87. package/dist/cli/commands/codegraph-status-command.d.ts +1 -1
  88. package/dist/cli/commands/codegraph-status-command.js +27 -214
  89. package/dist/cli/commands/codegraph-status-integrity.d.ts +44 -0
  90. package/dist/cli/commands/codegraph-status-integrity.js +121 -0
  91. package/dist/cli/commands/codegraph-status-json.d.ts +5 -0
  92. package/dist/cli/commands/codegraph-status-json.js +127 -0
  93. package/dist/cli/commands/compact-command.d.ts +6 -2
  94. package/dist/cli/commands/compact-command.js +12 -559
  95. package/dist/cli/commands/compact-dry-run-command.d.ts +3 -0
  96. package/dist/cli/commands/compact-dry-run-command.js +87 -0
  97. package/dist/cli/commands/compact-force-command.d.ts +3 -0
  98. package/dist/cli/commands/compact-force-command.js +98 -0
  99. package/dist/cli/commands/compact-harness-window-command.d.ts +3 -0
  100. package/dist/cli/commands/compact-harness-window-command.js +174 -0
  101. package/dist/cli/commands/compact-history-command.d.ts +3 -0
  102. package/dist/cli/commands/compact-history-command.js +89 -0
  103. package/dist/cli/commands/compact-read-commands.d.ts +3 -0
  104. package/dist/cli/commands/compact-read-commands.js +123 -0
  105. package/dist/cli/commands/compact-settle-command.d.ts +3 -0
  106. package/dist/cli/commands/compact-settle-command.js +130 -0
  107. package/dist/cli/commands/compact-shared.d.ts +9 -0
  108. package/dist/cli/commands/compact-shared.js +26 -0
  109. package/dist/cli/commands/container-command-shared.d.ts +60 -0
  110. package/dist/cli/commands/container-command-shared.js +52 -0
  111. package/dist/cli/commands/container-commands.d.ts +1 -1
  112. package/dist/cli/commands/container-commands.js +4 -216
  113. package/dist/cli/commands/container-release-command.d.ts +3 -0
  114. package/dist/cli/commands/container-release-command.js +105 -0
  115. package/dist/cli/commands/container-spawn-command.d.ts +3 -0
  116. package/dist/cli/commands/container-spawn-command.js +148 -0
  117. package/dist/cli/commands/context-check-command.d.ts +3 -0
  118. package/dist/cli/commands/context-check-command.js +81 -0
  119. package/dist/cli/commands/context-commands.d.ts +2 -7
  120. package/dist/cli/commands/context-commands.js +6 -276
  121. package/dist/cli/commands/context-layer-command.d.ts +3 -0
  122. package/dist/cli/commands/context-layer-command.js +34 -0
  123. package/dist/cli/commands/context-layer-fetchers.d.ts +15 -0
  124. package/dist/cli/commands/context-layer-fetchers.js +162 -0
  125. package/dist/cli/commands/context-status-command.d.ts +17 -0
  126. package/dist/cli/commands/context-status-command.js +41 -0
  127. package/dist/cli/commands/contract-write-command.d.ts +3 -0
  128. package/dist/cli/commands/contract-write-command.js +144 -0
  129. package/dist/cli/commands/core/doctor-bindings.d.ts +17 -0
  130. package/dist/cli/commands/core/doctor-bindings.js +30 -0
  131. package/dist/cli/commands/core/doctor-command.d.ts +4 -18
  132. package/dist/cli/commands/core/doctor-command.js +2 -323
  133. package/dist/cli/commands/core/doctor-logs.d.ts +8 -0
  134. package/dist/cli/commands/core/doctor-logs.js +32 -0
  135. package/dist/cli/commands/core/doctor-probes.d.ts +3 -0
  136. package/dist/cli/commands/core/doctor-probes.js +55 -0
  137. package/dist/cli/commands/core/doctor-run-command.d.ts +12 -0
  138. package/dist/cli/commands/core/doctor-run-command.js +172 -0
  139. package/dist/cli/commands/core/doctor-summary.d.ts +7 -0
  140. package/dist/cli/commands/core/doctor-summary.js +39 -0
  141. package/dist/cli/commands/core/memory-command-shared.d.ts +25 -0
  142. package/dist/cli/commands/core/memory-command-shared.js +20 -0
  143. package/dist/cli/commands/core/memory-command.d.ts +1 -1
  144. package/dist/cli/commands/core/memory-command.js +6 -227
  145. package/dist/cli/commands/core/memory-delegated-verbs.d.ts +4 -0
  146. package/dist/cli/commands/core/memory-delegated-verbs.js +178 -0
  147. package/dist/cli/commands/core/memory-extract-command.d.ts +3 -0
  148. package/dist/cli/commands/core/memory-extract-command.js +90 -0
  149. package/dist/cli/commands/core/memory-sync-command.d.ts +3 -0
  150. package/dist/cli/commands/core/memory-sync-command.js +38 -0
  151. package/dist/cli/commands/core/session-command.d.ts +1 -1
  152. package/dist/cli/commands/core/session-command.js +12 -206
  153. package/dist/cli/commands/core/session-info-command.d.ts +3 -0
  154. package/dist/cli/commands/core/session-info-command.js +142 -0
  155. package/dist/cli/commands/core/session-verb-commands.d.ts +5 -0
  156. package/dist/cli/commands/core/session-verb-commands.js +58 -0
  157. package/dist/cli/commands/core/skill-command.d.ts +1 -44
  158. package/dist/cli/commands/core/skill-command.js +13 -541
  159. package/dist/cli/commands/core/skill-context-verdict.d.ts +38 -0
  160. package/dist/cli/commands/core/skill-context-verdict.js +63 -0
  161. package/dist/cli/commands/core/skill-generated-config-notice.d.ts +41 -0
  162. package/dist/cli/commands/core/skill-generated-config-notice.js +75 -0
  163. package/dist/cli/commands/core/skill-heartbeat-commands.d.ts +3 -0
  164. package/dist/cli/commands/core/skill-heartbeat-commands.js +50 -0
  165. package/dist/cli/commands/core/skill-presence-commands.d.ts +3 -0
  166. package/dist/cli/commands/core/skill-presence-commands.js +123 -0
  167. package/dist/cli/commands/core/skill-presence-housekeeping-commands.d.ts +3 -0
  168. package/dist/cli/commands/core/skill-presence-housekeeping-commands.js +165 -0
  169. package/dist/cli/commands/core/skill-registry-commands.d.ts +3 -0
  170. package/dist/cli/commands/core/skill-registry-commands.js +117 -0
  171. package/dist/cli/commands/core/skill-runbook-command.d.ts +3 -0
  172. package/dist/cli/commands/core/skill-runbook-command.js +29 -0
  173. package/dist/cli/commands/core/standards-command.d.ts +1 -24
  174. package/dist/cli/commands/core/standards-command.js +33 -201
  175. package/dist/cli/commands/core/standards-init-command.d.ts +3 -0
  176. package/dist/cli/commands/core/standards-init-command.js +87 -0
  177. package/dist/cli/commands/core/standards-lint.d.ts +24 -0
  178. package/dist/cli/commands/core/standards-lint.js +57 -0
  179. package/dist/cli/commands/core/standards-migrate-command.d.ts +3 -0
  180. package/dist/cli/commands/core/standards-migrate-command.js +57 -0
  181. package/dist/cli/commands/cron-scheduler-commands.d.ts +5 -1
  182. package/dist/cli/commands/cron-scheduler-commands.js +36 -206
  183. package/dist/cli/commands/cron-scheduler-run-once-command.d.ts +7 -0
  184. package/dist/cli/commands/cron-scheduler-run-once-command.js +35 -0
  185. package/dist/cli/commands/cron-scheduler-shared.d.ts +6 -0
  186. package/dist/cli/commands/cron-scheduler-shared.js +48 -0
  187. package/dist/cli/commands/cron-scheduler-start-command.d.ts +7 -0
  188. package/dist/cli/commands/cron-scheduler-start-command.js +65 -0
  189. package/dist/cli/commands/cron-scheduler-status-command.d.ts +7 -0
  190. package/dist/cli/commands/cron-scheduler-status-command.js +46 -0
  191. package/dist/cli/commands/cron-scheduler-stop-command.d.ts +7 -0
  192. package/dist/cli/commands/cron-scheduler-stop-command.js +61 -0
  193. package/dist/cli/commands/dispatch-command-spec.d.ts +2 -0
  194. package/dist/cli/commands/dispatch-command-spec.js +62 -0
  195. package/dist/cli/commands/dispatch-commands.js +159 -775
  196. package/dist/cli/commands/dispatch-dag-envelope.d.ts +41 -0
  197. package/dist/cli/commands/dispatch-dag-envelope.js +49 -0
  198. package/dist/cli/commands/dispatch-dag-failure.d.ts +18 -0
  199. package/dist/cli/commands/dispatch-dag-failure.js +16 -0
  200. package/dist/cli/commands/dispatch-dag-preflight.d.ts +51 -0
  201. package/dist/cli/commands/dispatch-dag-preflight.js +105 -0
  202. package/dist/cli/commands/dispatch-dag-runners.d.ts +48 -0
  203. package/dist/cli/commands/dispatch-dag-runners.js +73 -0
  204. package/dist/cli/commands/dispatch-detached-branch.d.ts +3 -0
  205. package/dist/cli/commands/dispatch-detached-branch.js +58 -0
  206. package/dist/cli/commands/dispatch-envelope.d.ts +36 -0
  207. package/dist/cli/commands/dispatch-envelope.js +104 -0
  208. package/dist/cli/commands/dispatch-from-dag.d.ts +27 -0
  209. package/dist/cli/commands/dispatch-from-dag.js +87 -257
  210. package/dist/cli/commands/dispatch-isolation-lease.d.ts +17 -0
  211. package/dist/cli/commands/dispatch-isolation-lease.js +149 -0
  212. package/dist/cli/commands/dispatch-preflight.d.ts +7 -0
  213. package/dist/cli/commands/dispatch-preflight.js +105 -0
  214. package/dist/cli/commands/dispatch-prompt-blocks.d.ts +10 -0
  215. package/dist/cli/commands/dispatch-prompt-blocks.js +56 -0
  216. package/dist/cli/commands/dispatch-prompt-composition.d.ts +30 -0
  217. package/dist/cli/commands/dispatch-prompt-composition.js +171 -0
  218. package/dist/cli/commands/dispatch-record-write.d.ts +24 -0
  219. package/dist/cli/commands/dispatch-record-write.js +96 -0
  220. package/dist/cli/commands/dispatch-tool-call.d.ts +15 -0
  221. package/dist/cli/commands/dispatch-tool-call.js +128 -0
  222. package/dist/cli/commands/evolution-command-shared.d.ts +78 -0
  223. package/dist/cli/commands/evolution-command-shared.js +107 -0
  224. package/dist/cli/commands/evolution-commands.d.ts +11 -1
  225. package/dist/cli/commands/evolution-commands.js +19 -350
  226. package/dist/cli/commands/evolution-evaluate-command.d.ts +24 -0
  227. package/dist/cli/commands/evolution-evaluate-command.js +138 -0
  228. package/dist/cli/commands/evolution-propose-command.d.ts +23 -0
  229. package/dist/cli/commands/evolution-propose-command.js +145 -0
  230. package/dist/cli/commands/evolution-status-command.d.ts +17 -0
  231. package/dist/cli/commands/evolution-status-command.js +41 -0
  232. package/dist/cli/commands/evolution-verdict-commands.d.ts +30 -0
  233. package/dist/cli/commands/evolution-verdict-commands.js +100 -0
  234. package/dist/cli/commands/final-review-command-envelopes.d.ts +44 -0
  235. package/dist/cli/commands/final-review-command-envelopes.js +100 -0
  236. package/dist/cli/commands/final-review-command-shared.d.ts +52 -0
  237. package/dist/cli/commands/final-review-command-shared.js +35 -0
  238. package/dist/cli/commands/final-review-commands.d.ts +7 -27
  239. package/dist/cli/commands/final-review-commands.js +13 -240
  240. package/dist/cli/commands/final-review-prepare-command.d.ts +3 -0
  241. package/dist/cli/commands/final-review-prepare-command.js +200 -0
  242. package/dist/cli/commands/finalize-accumulator.d.ts +44 -0
  243. package/dist/cli/commands/finalize-accumulator.js +55 -0
  244. package/dist/cli/commands/finalize-branches.d.ts +34 -0
  245. package/dist/cli/commands/finalize-branches.js +119 -0
  246. package/dist/cli/commands/finalize-runners.d.ts +3 -0
  247. package/dist/cli/commands/finalize-runners.js +92 -0
  248. package/dist/cli/commands/finalize-selection.d.ts +65 -0
  249. package/dist/cli/commands/finalize-selection.js +35 -0
  250. package/dist/cli/commands/gate-commands.js +26 -8
  251. package/dist/cli/commands/governance-classify-contract-commands.d.ts +23 -9
  252. package/dist/cli/commands/governance-classify-contract-commands.js +26 -269
  253. package/dist/cli/commands/hooks-command-shared.d.ts +42 -0
  254. package/dist/cli/commands/hooks-command-shared.js +32 -0
  255. package/dist/cli/commands/hooks-commands.d.ts +20 -0
  256. package/dist/cli/commands/hooks-commands.js +75 -309
  257. package/dist/cli/commands/hooks-install-envelopes.d.ts +6 -0
  258. package/dist/cli/commands/hooks-install-envelopes.js +144 -0
  259. package/dist/cli/commands/hooks-status-command.d.ts +3 -0
  260. package/dist/cli/commands/hooks-status-command.js +93 -0
  261. package/dist/cli/commands/hooks-uninstall-command.d.ts +3 -0
  262. package/dist/cli/commands/hooks-uninstall-command.js +43 -0
  263. package/dist/cli/commands/job-checkpoint-commands.d.ts +3 -0
  264. package/dist/cli/commands/job-checkpoint-commands.js +157 -0
  265. package/dist/cli/commands/job-command-shared.d.ts +109 -0
  266. package/dist/cli/commands/job-command-shared.js +72 -0
  267. package/dist/cli/commands/job-commands.d.ts +4 -64
  268. package/dist/cli/commands/job-commands.js +42 -552
  269. package/dist/cli/commands/job-cost-check-command.d.ts +3 -0
  270. package/dist/cli/commands/job-cost-check-command.js +41 -0
  271. package/dist/cli/commands/job-init-status-commands.d.ts +3 -0
  272. package/dist/cli/commands/job-init-status-commands.js +149 -0
  273. package/dist/cli/commands/job-run-commands.d.ts +3 -0
  274. package/dist/cli/commands/job-run-commands.js +97 -0
  275. package/dist/cli/commands/job-state-root.d.ts +35 -0
  276. package/dist/cli/commands/job-state-root.js +76 -0
  277. package/dist/cli/commands/loop-command-shared.d.ts +31 -0
  278. package/dist/cli/commands/loop-command-shared.js +15 -0
  279. package/dist/cli/commands/loop-commands.d.ts +12 -17
  280. package/dist/cli/commands/loop-commands.js +56 -238
  281. package/dist/cli/commands/loop-eval-capture-index.d.ts +4 -0
  282. package/dist/cli/commands/loop-eval-capture-index.js +44 -0
  283. package/dist/cli/commands/loop-eval-commands.d.ts +8 -5
  284. package/dist/cli/commands/loop-eval-commands.js +12 -626
  285. package/dist/cli/commands/loop-eval-eval-command.d.ts +3 -0
  286. package/dist/cli/commands/loop-eval-eval-command.js +168 -0
  287. package/dist/cli/commands/loop-eval-monotonic-command.d.ts +3 -0
  288. package/dist/cli/commands/loop-eval-monotonic-command.js +90 -0
  289. package/dist/cli/commands/loop-eval-parents.d.ts +7 -0
  290. package/dist/cli/commands/loop-eval-parents.js +20 -0
  291. package/dist/cli/commands/loop-eval-run-code.d.ts +7 -0
  292. package/dist/cli/commands/loop-eval-run-code.js +40 -0
  293. package/dist/cli/commands/loop-eval-run-command.d.ts +3 -0
  294. package/dist/cli/commands/loop-eval-run-command.js +113 -0
  295. package/dist/cli/commands/loop-eval-spec-commands.d.ts +3 -0
  296. package/dist/cli/commands/loop-eval-spec-commands.js +165 -0
  297. package/dist/cli/commands/loop-eval-spec-lint-command.d.ts +3 -0
  298. package/dist/cli/commands/loop-eval-spec-lint-command.js +42 -0
  299. package/dist/cli/commands/loop-eval-workflow-commands.d.ts +3 -0
  300. package/dist/cli/commands/loop-eval-workflow-commands.js +141 -0
  301. package/dist/cli/commands/loop-export-command.d.ts +3 -0
  302. package/dist/cli/commands/loop-export-command.js +73 -0
  303. package/dist/cli/commands/loop-goal-compose-command.d.ts +3 -0
  304. package/dist/cli/commands/loop-goal-compose-command.js +36 -0
  305. package/dist/cli/commands/loop-import-command.d.ts +3 -0
  306. package/dist/cli/commands/loop-import-command.js +86 -0
  307. package/dist/cli/commands/loop-placeholder-commands.d.ts +3 -0
  308. package/dist/cli/commands/loop-placeholder-commands.js +52 -0
  309. package/dist/cli/commands/mcp-commands.d.ts +10 -0
  310. package/dist/cli/commands/mcp-commands.js +157 -0
  311. package/dist/cli/commands/memory-command-shared.d.ts +59 -0
  312. package/dist/cli/commands/memory-command-shared.js +39 -0
  313. package/dist/cli/commands/memory-commands.d.ts +6 -79
  314. package/dist/cli/commands/memory-commands.js +19 -309
  315. package/dist/cli/commands/memory-ingest-command.d.ts +3 -0
  316. package/dist/cli/commands/memory-ingest-command.js +50 -0
  317. package/dist/cli/commands/memory-list-command.d.ts +16 -0
  318. package/dist/cli/commands/memory-list-command.js +129 -0
  319. package/dist/cli/commands/memory-reindex-command.d.ts +9 -0
  320. package/dist/cli/commands/memory-reindex-command.js +78 -0
  321. package/dist/cli/commands/memory-rotate-command.d.ts +3 -0
  322. package/dist/cli/commands/memory-rotate-command.js +55 -0
  323. package/dist/cli/commands/memory-search-command.d.ts +7 -0
  324. package/dist/cli/commands/memory-search-command.js +46 -0
  325. package/dist/cli/commands/openspec-archive-command.d.ts +3 -0
  326. package/dist/cli/commands/openspec-archive-command.js +55 -0
  327. package/dist/cli/commands/openspec-command-shared.d.ts +62 -0
  328. package/dist/cli/commands/openspec-command-shared.js +135 -0
  329. package/dist/cli/commands/openspec-commands.d.ts +1 -1
  330. package/dist/cli/commands/openspec-commands.js +33 -306
  331. package/dist/cli/commands/openspec-from-doctor-command.d.ts +3 -0
  332. package/dist/cli/commands/openspec-from-doctor-command.js +66 -0
  333. package/dist/cli/commands/openspec-init-command.d.ts +3 -0
  334. package/dist/cli/commands/openspec-init-command.js +49 -0
  335. package/dist/cli/commands/openspec-list-command.d.ts +3 -0
  336. package/dist/cli/commands/openspec-list-command.js +27 -0
  337. package/dist/cli/commands/openspec-render-command.d.ts +3 -0
  338. package/dist/cli/commands/openspec-render-command.js +33 -0
  339. package/dist/cli/commands/openspec-show-command.d.ts +3 -0
  340. package/dist/cli/commands/openspec-show-command.js +33 -0
  341. package/dist/cli/commands/openspec-to-rd-command.d.ts +3 -0
  342. package/dist/cli/commands/openspec-to-rd-command.js +33 -0
  343. package/dist/cli/commands/openspec-validate-command.d.ts +3 -0
  344. package/dist/cli/commands/openspec-validate-command.js +45 -0
  345. package/dist/cli/commands/playwright-browser-command.d.ts +8 -0
  346. package/dist/cli/commands/playwright-browser-command.js +61 -0
  347. package/dist/cli/commands/playwright-commands.d.ts +10 -62
  348. package/dist/cli/commands/playwright-commands.js +77 -400
  349. package/dist/cli/commands/playwright-envelope.d.ts +8 -0
  350. package/dist/cli/commands/playwright-envelope.js +29 -0
  351. package/dist/cli/commands/playwright-ls-stop-commands.d.ts +4 -0
  352. package/dist/cli/commands/playwright-ls-stop-commands.js +74 -0
  353. package/dist/cli/commands/playwright-session-store.d.ts +65 -0
  354. package/dist/cli/commands/playwright-session-store.js +189 -0
  355. package/dist/cli/commands/project-commands.d.ts +19 -0
  356. package/dist/cli/commands/project-commands.js +98 -259
  357. package/dist/cli/commands/project-context-command.d.ts +3 -0
  358. package/dist/cli/commands/project-context-command.js +44 -0
  359. package/dist/cli/commands/project-dashboard-command.d.ts +3 -0
  360. package/dist/cli/commands/project-dashboard-command.js +74 -0
  361. package/dist/cli/commands/project-knowledge-command.d.ts +3 -0
  362. package/dist/cli/commands/project-knowledge-command.js +48 -0
  363. package/dist/cli/commands/project-memories-show-command.d.ts +3 -0
  364. package/dist/cli/commands/project-memories-show-command.js +87 -0
  365. package/dist/cli/commands/project-memory-index-command.d.ts +3 -0
  366. package/dist/cli/commands/project-memory-index-command.js +31 -0
  367. package/dist/cli/commands/qa-archive-screenshots-command.d.ts +3 -0
  368. package/dist/cli/commands/qa-archive-screenshots-command.js +53 -0
  369. package/dist/cli/commands/qa-commands.d.ts +14 -87
  370. package/dist/cli/commands/qa-commands.js +17 -315
  371. package/dist/cli/commands/qa-context-prestep.d.ts +1 -0
  372. package/dist/cli/commands/qa-context-prestep.js +34 -0
  373. package/dist/cli/commands/qa-run-command.d.ts +3 -0
  374. package/dist/cli/commands/qa-run-command.js +105 -0
  375. package/dist/cli/commands/qa-run-options.d.ts +23 -0
  376. package/dist/cli/commands/qa-run-options.js +31 -0
  377. package/dist/cli/commands/qa-run-slice.d.ts +41 -0
  378. package/dist/cli/commands/qa-run-slice.js +145 -0
  379. package/dist/cli/commands/release-canary-command.d.ts +28 -0
  380. package/dist/cli/commands/release-canary-command.js +129 -0
  381. package/dist/cli/commands/release-command-shared.d.ts +13 -0
  382. package/dist/cli/commands/release-command-shared.js +18 -0
  383. package/dist/cli/commands/release-commands.d.ts +10 -18
  384. package/dist/cli/commands/release-commands.js +25 -298
  385. package/dist/cli/commands/release-done-command.d.ts +3 -0
  386. package/dist/cli/commands/release-done-command.js +64 -0
  387. package/dist/cli/commands/release-hotfix-command.d.ts +3 -0
  388. package/dist/cli/commands/release-hotfix-command.js +50 -0
  389. package/dist/cli/commands/release-plan-command.d.ts +3 -0
  390. package/dist/cli/commands/release-plan-command.js +33 -0
  391. package/dist/cli/commands/release-precheck-command.d.ts +3 -0
  392. package/dist/cli/commands/release-precheck-command.js +28 -0
  393. package/dist/cli/commands/release-promote-command.d.ts +3 -0
  394. package/dist/cli/commands/release-promote-command.js +34 -0
  395. package/dist/cli/commands/release-rollback-command.d.ts +3 -0
  396. package/dist/cli/commands/release-rollback-command.js +33 -0
  397. package/dist/cli/commands/release-watch-command.d.ts +3 -0
  398. package/dist/cli/commands/release-watch-command.js +44 -0
  399. package/dist/cli/commands/request-command-options.d.ts +49 -0
  400. package/dist/cli/commands/request-command-options.js +1 -0
  401. package/dist/cli/commands/request-commands.d.ts +3 -9
  402. package/dist/cli/commands/request-commands.js +17 -522
  403. package/dist/cli/commands/request-init-command.d.ts +3 -0
  404. package/dist/cli/commands/request-init-command.js +100 -0
  405. package/dist/cli/commands/request-lint-command.d.ts +3 -0
  406. package/dist/cli/commands/request-lint-command.js +50 -0
  407. package/dist/cli/commands/request-list-command.d.ts +10 -0
  408. package/dist/cli/commands/request-list-command.js +53 -0
  409. package/dist/cli/commands/request-repair-status-command.d.ts +3 -0
  410. package/dist/cli/commands/request-repair-status-command.js +61 -0
  411. package/dist/cli/commands/request-show-command.d.ts +3 -0
  412. package/dist/cli/commands/request-show-command.js +56 -0
  413. package/dist/cli/commands/request-transition-command.d.ts +3 -0
  414. package/dist/cli/commands/request-transition-command.js +122 -0
  415. package/dist/cli/commands/request-transition-failures.d.ts +8 -0
  416. package/dist/cli/commands/request-transition-failures.js +90 -0
  417. package/dist/cli/commands/request-transition-hooks.d.ts +50 -0
  418. package/dist/cli/commands/request-transition-hooks.js +115 -0
  419. package/dist/cli/commands/request-transition-preflight.d.ts +10 -0
  420. package/dist/cli/commands/request-transition-preflight.js +107 -0
  421. package/dist/cli/commands/scan-command-shared.d.ts +96 -0
  422. package/dist/cli/commands/scan-command-shared.js +83 -0
  423. package/dist/cli/commands/scan-commands.d.ts +3 -2
  424. package/dist/cli/commands/scan-commands.js +23 -463
  425. package/dist/cli/commands/scan-inventory-commands.d.ts +3 -0
  426. package/dist/cli/commands/scan-inventory-commands.js +96 -0
  427. package/dist/cli/commands/scan-project-commands.d.ts +3 -0
  428. package/dist/cli/commands/scan-project-commands.js +65 -0
  429. package/dist/cli/commands/scan-scope-commands.d.ts +3 -0
  430. package/dist/cli/commands/scan-scope-commands.js +149 -0
  431. package/dist/cli/commands/scan-scope-helpers.d.ts +8 -0
  432. package/dist/cli/commands/scan-scope-helpers.js +54 -0
  433. package/dist/cli/commands/scan-structural-commands.d.ts +3 -0
  434. package/dist/cli/commands/scan-structural-commands.js +113 -0
  435. package/dist/cli/commands/sediment-argv-flags.d.ts +54 -0
  436. package/dist/cli/commands/sediment-argv-flags.js +116 -0
  437. package/dist/cli/commands/sediment-command-shared.d.ts +15 -0
  438. package/dist/cli/commands/sediment-command-shared.js +5 -0
  439. package/dist/cli/commands/sediment-commands.d.ts +35 -59
  440. package/dist/cli/commands/sediment-commands.js +36 -590
  441. package/dist/cli/commands/sediment-pool-commands.d.ts +9 -0
  442. package/dist/cli/commands/sediment-pool-commands.js +185 -0
  443. package/dist/cli/commands/sediment-query-commands.d.ts +4 -0
  444. package/dist/cli/commands/sediment-query-commands.js +94 -0
  445. package/dist/cli/commands/sediment-release-commands.d.ts +8 -0
  446. package/dist/cli/commands/sediment-release-commands.js +232 -0
  447. package/dist/cli/commands/share-commands.d.ts +12 -68
  448. package/dist/cli/commands/share-commands.js +47 -556
  449. package/dist/cli/commands/share-error-hints.d.ts +14 -0
  450. package/dist/cli/commands/share-error-hints.js +38 -0
  451. package/dist/cli/commands/share-identity.d.ts +13 -0
  452. package/dist/cli/commands/share-identity.js +22 -0
  453. package/dist/cli/commands/share-record-paths.d.ts +37 -0
  454. package/dist/cli/commands/share-record-paths.js +68 -0
  455. package/dist/cli/commands/share-runners.d.ts +3 -0
  456. package/dist/cli/commands/share-runners.js +158 -0
  457. package/dist/cli/commands/shared-read-runners.d.ts +3 -0
  458. package/dist/cli/commands/shared-read-runners.js +51 -0
  459. package/dist/cli/commands/slice-check-command.d.ts +3 -0
  460. package/dist/cli/commands/slice-check-command.js +54 -0
  461. package/dist/cli/commands/slice-commands.d.ts +2 -22
  462. package/dist/cli/commands/slice-commands.js +18 -517
  463. package/dist/cli/commands/slice-decompose-artifacts.d.ts +18 -0
  464. package/dist/cli/commands/slice-decompose-artifacts.js +79 -0
  465. package/dist/cli/commands/slice-decompose-command.d.ts +3 -0
  466. package/dist/cli/commands/slice-decompose-command.js +123 -0
  467. package/dist/cli/commands/slice-list-commands.d.ts +3 -0
  468. package/dist/cli/commands/slice-list-commands.js +182 -0
  469. package/dist/cli/commands/slice-pick-command.d.ts +3 -0
  470. package/dist/cli/commands/slice-pick-command.js +60 -0
  471. package/dist/cli/commands/slice-plan-command.d.ts +24 -0
  472. package/dist/cli/commands/slice-plan-command.js +111 -0
  473. package/dist/cli/commands/sop-advance-command.d.ts +3 -0
  474. package/dist/cli/commands/sop-advance-command.js +160 -0
  475. package/dist/cli/commands/sop-check-command.d.ts +3 -0
  476. package/dist/cli/commands/sop-check-command.js +44 -0
  477. package/dist/cli/commands/sop-command-shared.d.ts +23 -0
  478. package/dist/cli/commands/sop-command-shared.js +18 -0
  479. package/dist/cli/commands/sop-commands.d.ts +15 -1
  480. package/dist/cli/commands/sop-commands.js +26 -240
  481. package/dist/cli/commands/sop-init-command.d.ts +3 -0
  482. package/dist/cli/commands/sop-init-command.js +51 -0
  483. package/dist/cli/commands/sop-lint-command.d.ts +3 -0
  484. package/dist/cli/commands/sop-lint-command.js +64 -0
  485. package/dist/cli/commands/sop-register-command.d.ts +3 -0
  486. package/dist/cli/commands/sop-register-command.js +48 -0
  487. package/dist/cli/commands/sop-registry-command.d.ts +3 -0
  488. package/dist/cli/commands/sop-registry-command.js +30 -0
  489. package/dist/cli/commands/statusline-command-shared.d.ts +73 -0
  490. package/dist/cli/commands/statusline-command-shared.js +90 -0
  491. package/dist/cli/commands/statusline-commands.d.ts +1 -19
  492. package/dist/cli/commands/statusline-commands.js +48 -287
  493. package/dist/cli/commands/statusline-compact-command.d.ts +4 -0
  494. package/dist/cli/commands/statusline-compact-command.js +54 -0
  495. package/dist/cli/commands/statusline-install-command.d.ts +3 -0
  496. package/dist/cli/commands/statusline-install-command.js +48 -0
  497. package/dist/cli/commands/statusline-render-command.d.ts +9 -0
  498. package/dist/cli/commands/statusline-render-command.js +55 -0
  499. package/dist/cli/commands/statusline-status-command.d.ts +3 -0
  500. package/dist/cli/commands/statusline-status-command.js +23 -0
  501. package/dist/cli/commands/statusline-uninstall-command.d.ts +3 -0
  502. package/dist/cli/commands/statusline-uninstall-command.js +23 -0
  503. package/dist/cli/commands/test-command-run-helpers.d.ts +27 -0
  504. package/dist/cli/commands/test-command-run-helpers.js +73 -0
  505. package/dist/cli/commands/test-command-runner-resolution.d.ts +57 -0
  506. package/dist/cli/commands/test-command-runner-resolution.js +183 -0
  507. package/dist/cli/commands/test-commands.d.ts +8 -56
  508. package/dist/cli/commands/test-commands.js +26 -249
  509. package/dist/cli/commands/vm-command-shared.d.ts +23 -0
  510. package/dist/cli/commands/vm-command-shared.js +23 -0
  511. package/dist/cli/commands/vm-commands.d.ts +1 -28
  512. package/dist/cli/commands/vm-commands.js +36 -270
  513. package/dist/cli/commands/vm-hypervisor-runtime.d.ts +15 -0
  514. package/dist/cli/commands/vm-hypervisor-runtime.js +64 -0
  515. package/dist/cli/commands/vm-release-command.d.ts +5 -0
  516. package/dist/cli/commands/vm-release-command.js +101 -0
  517. package/dist/cli/commands/vm-spawn-command.d.ts +5 -0
  518. package/dist/cli/commands/vm-spawn-command.js +177 -0
  519. package/dist/cli/commands/web-command-shared.d.ts +12 -0
  520. package/dist/cli/commands/web-command-shared.js +30 -0
  521. package/dist/cli/commands/web-commands.d.ts +7 -14
  522. package/dist/cli/commands/web-commands.js +6 -314
  523. package/dist/cli/commands/web-install-command.d.ts +10 -0
  524. package/dist/cli/commands/web-install-command.js +116 -0
  525. package/dist/cli/commands/web-lifecycle-commands.d.ts +9 -30
  526. package/dist/cli/commands/web-lifecycle-commands.js +14 -322
  527. package/dist/cli/commands/web-login-command.d.ts +14 -0
  528. package/dist/cli/commands/web-login-command.js +189 -0
  529. package/dist/cli/commands/web-op-payload.d.ts +22 -0
  530. package/dist/cli/commands/web-op-payload.js +89 -0
  531. package/dist/cli/commands/web-op-refusals.d.ts +37 -0
  532. package/dist/cli/commands/web-op-refusals.js +73 -0
  533. package/dist/cli/commands/web-op-runner.d.ts +14 -0
  534. package/dist/cli/commands/web-op-runner.js +166 -0
  535. package/dist/cli/commands/web-status-command.d.ts +4 -0
  536. package/dist/cli/commands/web-status-command.js +32 -0
  537. package/dist/cli/commands/web-stop-command.d.ts +10 -0
  538. package/dist/cli/commands/web-stop-command.js +59 -0
  539. package/dist/cli/commands/web-verb-specs.d.ts +18 -0
  540. package/dist/cli/commands/web-verb-specs.js +66 -0
  541. package/dist/cli/commands/workflow-command-shared.d.ts +102 -0
  542. package/dist/cli/commands/workflow-command-shared.js +74 -0
  543. package/dist/cli/commands/workflow-commands.d.ts +10 -1
  544. package/dist/cli/commands/workflow-commands.js +6 -594
  545. package/dist/cli/commands/workflow-gate-commands.d.ts +3 -0
  546. package/dist/cli/commands/workflow-gate-commands.js +116 -0
  547. package/dist/cli/commands/workflow-graph-commands.d.ts +3 -0
  548. package/dist/cli/commands/workflow-graph-commands.js +73 -0
  549. package/dist/cli/commands/workflow-init-command.d.ts +3 -0
  550. package/dist/cli/commands/workflow-init-command.js +68 -0
  551. package/dist/cli/commands/workflow-lifecycle-commands.d.ts +9 -59
  552. package/dist/cli/commands/workflow-lifecycle-commands.js +14 -348
  553. package/dist/cli/commands/workflow-node-commands.d.ts +3 -0
  554. package/dist/cli/commands/workflow-node-commands.js +154 -0
  555. package/dist/cli/commands/workflow-plan-helpers.d.ts +48 -0
  556. package/dist/cli/commands/workflow-plan-helpers.js +103 -0
  557. package/dist/cli/commands/workflow-planning-commands.d.ts +3 -0
  558. package/dist/cli/commands/workflow-planning-commands.js +56 -0
  559. package/dist/cli/commands/workflow-swarm-actions.d.ts +7 -0
  560. package/dist/cli/commands/workflow-swarm-actions.js +109 -0
  561. package/dist/cli/commands/workflow-swarm-commands.d.ts +3 -0
  562. package/dist/cli/commands/workflow-swarm-commands.js +138 -0
  563. package/dist/cli/commands/workflow-tech-actions.d.ts +10 -0
  564. package/dist/cli/commands/workflow-tech-actions.js +150 -0
  565. package/dist/cli/commands/workflow-terminalize-command.d.ts +3 -0
  566. package/dist/cli/commands/workflow-terminalize-command.js +56 -0
  567. package/dist/cli/commands/workspace/init-actions.d.ts +10 -0
  568. package/dist/cli/commands/workspace/init-actions.js +199 -0
  569. package/dist/cli/commands/workspace/init-codegraph-stake.d.ts +10 -0
  570. package/dist/cli/commands/workspace/init-codegraph-stake.js +54 -0
  571. package/dist/cli/commands/workspace/init-command.d.ts +8 -124
  572. package/dist/cli/commands/workspace/init-command.js +59 -623
  573. package/dist/cli/commands/workspace/init-context.d.ts +58 -0
  574. package/dist/cli/commands/workspace/init-context.js +121 -0
  575. package/dist/cli/commands/workspace/init-envelope.d.ts +3 -0
  576. package/dist/cli/commands/workspace/init-envelope.js +34 -0
  577. package/dist/cli/commands/workspace/init-failures.d.ts +3 -0
  578. package/dist/cli/commands/workspace/init-failures.js +84 -0
  579. package/dist/cli/commands/workspace/init-hooks-decision.d.ts +24 -0
  580. package/dist/cli/commands/workspace/init-hooks-decision.js +189 -0
  581. package/dist/cli/commands/workspace/init-options.d.ts +102 -0
  582. package/dist/cli/commands/workspace/init-options.js +1 -0
  583. package/dist/cli/commands/worktree-lease-commands.d.ts +10 -6
  584. package/dist/cli/commands/worktree-lease-commands.js +42 -512
  585. package/dist/cli/commands/worktree-lease-gc-command.d.ts +12 -0
  586. package/dist/cli/commands/worktree-lease-gc-command.js +117 -0
  587. package/dist/cli/commands/worktree-lease-git.d.ts +22 -0
  588. package/dist/cli/commands/worktree-lease-git.js +48 -0
  589. package/dist/cli/commands/worktree-lease-list-command.d.ts +12 -0
  590. package/dist/cli/commands/worktree-lease-list-command.js +100 -0
  591. package/dist/cli/commands/worktree-lease-load.d.ts +37 -0
  592. package/dist/cli/commands/worktree-lease-load.js +28 -0
  593. package/dist/cli/commands/worktree-lease-release-command.d.ts +13 -0
  594. package/dist/cli/commands/worktree-lease-release-command.js +105 -0
  595. package/dist/cli/commands/worktree-lease-renew-command.d.ts +11 -0
  596. package/dist/cli/commands/worktree-lease-renew-command.js +99 -0
  597. package/dist/cli/commands/worktree-lease-session.d.ts +22 -0
  598. package/dist/cli/commands/worktree-lease-session.js +29 -0
  599. package/dist/cli/commands/worktree-lease-spawn-command.d.ts +11 -0
  600. package/dist/cli/commands/worktree-lease-spawn-command.js +119 -0
  601. package/dist/cli/commands/worktree-lease-status-command.d.ts +11 -0
  602. package/dist/cli/commands/worktree-lease-status-command.js +86 -0
  603. package/dist/cli/commands/worktree-lease-store.d.ts +19 -0
  604. package/dist/cli/commands/worktree-lease-store.js +24 -0
  605. package/dist/cli/program.js +5 -0
  606. package/dist/services/code/auto-compact-artifacts.d.ts +54 -0
  607. package/dist/services/code/auto-compact-artifacts.js +135 -0
  608. package/dist/services/code/auto-compact-attempt.d.ts +46 -0
  609. package/dist/services/code/auto-compact-attempt.js +88 -0
  610. package/dist/services/code/auto-compact-decision.d.ts +74 -0
  611. package/dist/services/code/auto-compact-decision.js +149 -0
  612. package/dist/services/code/auto-compact-dispatch-gate.d.ts +36 -0
  613. package/dist/services/code/auto-compact-dispatch-gate.js +86 -0
  614. package/dist/services/code/auto-compact-envelopes.d.ts +33 -0
  615. package/dist/services/code/auto-compact-envelopes.js +134 -0
  616. package/dist/services/code/auto-compact-history.d.ts +46 -0
  617. package/dist/services/code/auto-compact-history.js +17 -0
  618. package/dist/services/code/auto-compact-orchestrator.d.ts +11 -240
  619. package/dist/services/code/auto-compact-orchestrator.js +165 -686
  620. package/dist/services/code/auto-compact-run-types.d.ts +123 -0
  621. package/dist/services/code/auto-compact-run-types.js +1 -0
  622. package/dist/services/code/emit-handoff.d.ts +35 -1
  623. package/dist/services/code/emit-handoff.js +128 -7
  624. package/dist/services/code/step-08-gate.d.ts +28 -19
  625. package/dist/services/code/step-08-gate.js +92 -35
  626. package/dist/services/config/config-coercion.d.ts +7 -0
  627. package/dist/services/config/config-coercion.js +156 -0
  628. package/dist/services/config/config-file-io.d.ts +11 -0
  629. package/dist/services/config/config-file-io.js +61 -0
  630. package/dist/services/config/config-get.d.ts +2 -0
  631. package/dist/services/config/config-get.js +36 -0
  632. package/dist/services/config/config-global-loader.d.ts +15 -0
  633. package/dist/services/config/config-global-loader.js +111 -0
  634. package/dist/services/config/config-nested-path.d.ts +3 -0
  635. package/dist/services/config/config-nested-path.js +53 -0
  636. package/dist/services/config/config-primitives.d.ts +16 -0
  637. package/dist/services/config/config-primitives.js +24 -0
  638. package/dist/services/config/config-service.d.ts +9 -33
  639. package/dist/services/config/config-service.js +16 -665
  640. package/dist/services/config/config-validation.d.ts +19 -0
  641. package/dist/services/config/config-validation.js +152 -0
  642. package/dist/services/config/config-workspace.d.ts +10 -0
  643. package/dist/services/config/config-workspace.js +158 -0
  644. package/dist/services/distribution/mcp-install-runner.d.ts +21 -0
  645. package/dist/services/distribution/mcp-install-runner.js +59 -0
  646. package/dist/services/distribution/mcp-install.d.ts +95 -0
  647. package/dist/services/distribution/mcp-install.js +179 -0
  648. package/dist/services/distribution/plugin-manifest.d.ts +97 -0
  649. package/dist/services/distribution/plugin-manifest.js +126 -0
  650. package/dist/services/hooks/mcp-surface-gate.d.ts +19 -0
  651. package/dist/services/hooks/mcp-surface-gate.js +87 -0
  652. package/dist/services/ide/adapters/claude-code-adapter.d.ts +4 -35
  653. package/dist/services/ide/adapters/claude-code-adapter.js +48 -171
  654. package/dist/services/ide/adapters/claude-code-local-state.d.ts +28 -0
  655. package/dist/services/ide/adapters/claude-code-local-state.js +112 -0
  656. package/dist/services/ide/adapters/claude-code-model-window.d.ts +37 -0
  657. package/dist/services/ide/adapters/claude-code-model-window.js +113 -0
  658. package/dist/services/ide/ide-mcp-install-types.d.ts +78 -0
  659. package/dist/services/ide/ide-mcp-install-types.js +104 -0
  660. package/dist/services/ide/ide-types.d.ts +45 -1
  661. package/dist/services/ide/mcp-tool-matcher.d.ts +34 -0
  662. package/dist/services/ide/mcp-tool-matcher.js +84 -0
  663. package/dist/services/lint/npx-resolver.js +7 -0
  664. package/dist/services/mcp/cli-executor.d.ts +36 -0
  665. package/dist/services/mcp/cli-executor.js +97 -0
  666. package/dist/services/mcp/json-rpc.d.ts +81 -0
  667. package/dist/services/mcp/json-rpc.js +116 -0
  668. package/dist/services/mcp/memory-tool.d.ts +3 -0
  669. package/dist/services/mcp/memory-tool.js +62 -0
  670. package/dist/services/mcp/server-main.d.ts +1 -0
  671. package/dist/services/mcp/server-main.js +66 -0
  672. package/dist/services/mcp/server.d.ts +22 -0
  673. package/dist/services/mcp/server.js +152 -0
  674. package/dist/services/mcp/surface.d.ts +62 -0
  675. package/dist/services/mcp/surface.js +198 -0
  676. package/dist/services/mcp/tool-core.d.ts +42 -0
  677. package/dist/services/mcp/tool-core.js +137 -0
  678. package/dist/services/mcp/tools.d.ts +13 -0
  679. package/dist/services/mcp/tools.js +58 -0
  680. package/dist/services/readonly-surface/argv-guard.d.ts +32 -0
  681. package/dist/services/readonly-surface/argv-guard.js +164 -0
  682. package/dist/services/readonly-surface/readonly-whitelist.d.ts +147 -0
  683. package/dist/services/readonly-surface/readonly-whitelist.js +107 -0
  684. package/dist/services/readonly-surface/whitelist-generator.d.ts +64 -0
  685. package/dist/services/readonly-surface/whitelist-generator.js +212 -0
  686. package/dist/services/skills/hooks-codegate-superpowers.d.ts +1 -0
  687. package/dist/services/skills/hooks-codegate-superpowers.js +26 -0
  688. package/dist/services/skills/hooks-settings-deny-list.d.ts +61 -0
  689. package/dist/services/skills/hooks-settings-deny-list.js +173 -0
  690. package/dist/services/skills/hooks-settings-envelopes.d.ts +20 -0
  691. package/dist/services/skills/hooks-settings-envelopes.js +79 -0
  692. package/dist/services/skills/hooks-settings-file-shape.d.ts +43 -0
  693. package/dist/services/skills/hooks-settings-file-shape.js +207 -0
  694. package/dist/services/skills/hooks-settings-paths.d.ts +34 -0
  695. package/dist/services/skills/hooks-settings-paths.js +75 -0
  696. package/dist/services/skills/hooks-settings-read-installed.d.ts +39 -0
  697. package/dist/services/skills/hooks-settings-read-installed.js +60 -0
  698. package/dist/services/skills/hooks-settings-service.d.ts +12 -212
  699. package/dist/services/skills/hooks-settings-service.js +71 -649
  700. package/dist/services/skills/hooks-settings-types.d.ts +139 -0
  701. package/dist/services/skills/hooks-settings-types.js +1 -0
  702. package/dist/services/workspace/claude-settings-template-merge.d.ts +89 -0
  703. package/dist/services/workspace/claude-settings-template-merge.js +243 -0
  704. package/dist/services/workspace/claude-settings-template.d.ts +29 -87
  705. package/dist/services/workspace/claude-settings-template.js +81 -236
  706. package/package.json +17 -6
  707. package/scripts/install-skills-bundles.mjs +233 -0
  708. package/scripts/install-skills-fs.mjs +148 -0
  709. package/scripts/install-skills-ide.mjs +279 -0
  710. package/scripts/install-skills-output-style-default.mjs +196 -0
  711. package/scripts/install-skills-output-styles.mjs +121 -0
  712. package/scripts/install-skills-report.mjs +42 -0
  713. package/scripts/install-skills-user-config.mjs +198 -0
  714. package/scripts/install-skills.mjs +36 -1066
  715. package/scripts/watch-tree.mjs +140 -0
  716. package/scripts/watch.mjs +4 -126
  717. package/skills/peaks-status/SKILL.md +31 -13
@@ -0,0 +1,23 @@
1
+ import type { ProgramIO } from '../cli-helpers.js';
2
+ import type { GuardContext } from '../../services/capability-guard-runner/types.js';
3
+ /** The `--project` / `--json` pair every verb in this family declares. */
4
+ export type BaselineOptions = {
5
+ project?: string;
6
+ json?: boolean;
7
+ };
8
+ export declare function fail(io: ProgramIO, code: string, message: string, data?: Record<string, unknown>): void;
9
+ export declare function ok(io: ProgramIO, command: string, data: Record<string, unknown>, nextActions?: ReadonlyArray<string>): void;
10
+ export declare const CURRENT_DIR: (root: string) => string;
11
+ export declare const HISTORY_DIR: (root: string, version: string) => string;
12
+ /** Whitelist of supported `--scorer` values for `peaks baseline audit`. */
13
+ export declare const SCORER_MODES: readonly ["live", "stub"];
14
+ export type ScorerMode = (typeof SCORER_MODES)[number];
15
+ /**
16
+ * `live` is the default because it is the credential-free one. Defaulting to
17
+ * `stub` would leave the publish gate permanently inconclusive; defaulting to a
18
+ * scorer that needs a key would leave it unrunnable in CI.
19
+ */
20
+ export declare const DEFAULT_SCORER_MODE: ScorerMode;
21
+ export declare function isScorerMode(v: string | undefined): v is ScorerMode;
22
+ /** The guard `run-guard` / `audit` execute against. */
23
+ export declare function guardContext(projectRoot: string): GuardContext;
@@ -0,0 +1,39 @@
1
+ // src/cli/commands/baseline-command-shared.ts
2
+ //
3
+ // What every `peaks baseline *` verb shares: its two envelope writers, the
4
+ // on-disk layout helpers, the guard context and the `--scorer` vocabulary.
5
+ // Split out of `baseline-commands.ts`; every path, envelope field and exit
6
+ // code is unchanged.
7
+ import { join } from 'node:path';
8
+ export function fail(io, code, message, data = {}) {
9
+ io.stdout(JSON.stringify({
10
+ ok: false,
11
+ command: `baseline`,
12
+ code,
13
+ message,
14
+ data,
15
+ warnings: [],
16
+ nextActions: []
17
+ }));
18
+ process.exitCode = 1;
19
+ }
20
+ export function ok(io, command, data, nextActions = []) {
21
+ io.stdout(JSON.stringify({ ok: true, command, data, warnings: [], nextActions }));
22
+ }
23
+ export const CURRENT_DIR = (root) => join(root, 'openspec', 'baselines', 'current');
24
+ export const HISTORY_DIR = (root, version) => join(root, 'openspec', 'baselines', 'history', version);
25
+ /** Whitelist of supported `--scorer` values for `peaks baseline audit`. */
26
+ export const SCORER_MODES = ['live', 'stub'];
27
+ /**
28
+ * `live` is the default because it is the credential-free one. Defaulting to
29
+ * `stub` would leave the publish gate permanently inconclusive; defaulting to a
30
+ * scorer that needs a key would leave it unrunnable in CI.
31
+ */
32
+ export const DEFAULT_SCORER_MODE = 'live';
33
+ export function isScorerMode(v) {
34
+ return v !== undefined && SCORER_MODES.includes(v);
35
+ }
36
+ /** The guard `run-guard` / `audit` execute against. */
37
+ export function guardContext(projectRoot) {
38
+ return { projectRoot, sessionId: 'cli', contract: {}, baselineInvariant: 'auto' };
39
+ }
@@ -1,319 +1,39 @@
1
1
  // src/cli/commands/baseline-commands.ts
2
- import { copyFileSync, existsSync, mkdirSync, readFileSync, rmSync } from 'node:fs';
3
- import { join } from 'node:path';
4
- import { historySnapshot, readBaselineFile, writeBaselineFile } from '../../services/capability-baseline/store.js';
5
- import { validateBaselineFile } from '../../services/capability-baseline/validator.js';
6
- import { P0_JOURNEY_IDS } from '../../services/capability-baseline/types.js';
7
- import { GUARD_CONTRACTS, getGuardContract, isJourneyId } from '../../services/capability-guard-runner/registry.js';
8
- import { exitCodeForGuardSummary, runAllGuards } from '../../services/capability-guard-runner/runner.js';
9
- import { RUNTIME_SESSIONLESS_SCOPE } from '../../services/workspace/runtime-layout.js';
10
- function fail(io, code, message, data = {}) {
11
- io.stdout(JSON.stringify({
12
- ok: false,
13
- command: `baseline`,
14
- code,
15
- message,
16
- data,
17
- warnings: [],
18
- nextActions: []
19
- }));
20
- process.exitCode = 1;
21
- }
22
- function ok(io, command, data, nextActions = []) {
23
- io.stdout(JSON.stringify({ ok: true, command, data, warnings: [], nextActions }));
24
- }
25
- const CURRENT_DIR = (root) => join(root, 'openspec', 'baselines', 'current');
26
- const HISTORY_DIR = (root, version) => join(root, 'openspec', 'baselines', 'history', version);
27
- /** Whitelist of supported `--scorer` values for `peaks baseline audit`. */
28
- const SCORER_MODES = ['live', 'stub'];
29
- /**
30
- * `live` is the default because it is the credential-free one. Defaulting to
31
- * `stub` would leave the publish gate permanently inconclusive; defaulting to a
32
- * scorer that needs a key would leave it unrunnable in CI.
33
- */
34
- const DEFAULT_SCORER_MODE = 'live';
35
- function isScorerMode(v) {
36
- return v !== undefined && SCORER_MODES.includes(v);
37
- }
38
- /** The guard `run-guard` / `audit` execute against. */
39
- function guardContext(projectRoot) {
40
- return { projectRoot, sessionId: 'cli', contract: {}, baselineInvariant: 'auto' };
41
- }
2
+ //
3
+ // `peaks baseline` — manage the capability baseline (frozen product semantics
4
+ // for the 15 P0 journeys). Registration order is the user's reading order and
5
+ // is what the whole-registry render pins; each verb's body lives beside this
6
+ // file, over the shared envelope / path / scorer vocabulary in
7
+ // `baseline-command-shared.ts`.
8
+ //
9
+ // - `baseline freeze` — install a baseline JSON file
10
+ // - `baseline list` — list the 15 P0 journey rows
11
+ // - `baseline show <id>` — show one journey row
12
+ // - `baseline run-guard` — run the guard contracts over the baseline
13
+ // - `baseline diff` — current implementation vs. frozen baseline
14
+ // - `baseline audit` — the independent-context scorer
15
+ // - `baseline freeze-update` — update rows, with the user's approval
16
+ // - `baseline rollback` — roll back to a historical version
17
+ // - `baseline reset` — wipe the current baseline
18
+ import { registerBaselineFreezeCommand, registerBaselineFreezeUpdateCommand } from './baseline-freeze-commands.js';
19
+ import { registerBaselineDiffCommand, registerBaselineListCommand, registerBaselineShowCommand } from './baseline-read-commands.js';
20
+ import { registerBaselineRunGuardCommand } from './baseline-guard-command.js';
21
+ import { registerBaselineAuditCommand } from './baseline-audit-command.js';
22
+ import { registerBaselineResetCommand, registerBaselineRollbackCommand } from './baseline-rollback-commands.js';
42
23
  export function registerBaselineCommands(program, io) {
43
24
  const baseline = program
44
25
  .command('baseline')
45
26
  .description('Manage the capability baseline (frozen product semantics for 15 P0 journeys).');
46
- baseline
47
- .command('freeze')
48
- .description('Freeze the capability baseline from a JSON file (SquabbyZ-signed).')
49
- .option('--from <path>', 'Path to the baseline JSON input.')
50
- .option('--project <path>', 'Project root', '.')
51
- .option('--json', 'Emit JSON envelope')
52
- .action((opts) => {
53
- const projectRoot = opts.project ?? '.';
54
- if (!opts.from) {
55
- fail(io, 'MISSING_ARG', '--from is required');
56
- return;
57
- }
58
- const file = JSON.parse(readFileSync(opts.from, 'utf8'));
59
- const v = validateBaselineFile(file);
60
- if (!v.ok) {
61
- fail(io, v.error.code, v.error.message);
62
- return;
63
- }
64
- const out = writeBaselineFile({ projectRoot, file });
65
- historySnapshot({ projectRoot, version: file.version });
66
- ok(io, 'baseline.freeze', { path: out.path, lockPath: out.lockPath, version: file.version });
67
- });
68
- baseline
69
- .command('list')
70
- .description('List the 15 P0 journey rows in the frozen baseline.')
71
- .option('--project <path>', 'Project root', '.')
72
- .option('--json', 'Emit JSON envelope')
73
- .action((opts) => {
74
- const projectRoot = opts.project ?? '.';
75
- const r = readBaselineFile(projectRoot);
76
- if (!r.ok) {
77
- fail(io, r.error.code, r.error.message);
78
- return;
79
- }
80
- const rows = r.file.rows.map((row) => ({
81
- journeyId: row.journeyId,
82
- intent: row.intent,
83
- invariantCount: row.invariants.length
84
- }));
85
- ok(io, 'baseline.list', { version: r.file.version, signedAt: r.file.signedAt, rows });
86
- });
87
- baseline
88
- .command('show <journeyId>')
89
- .description('Show one journey row.')
90
- .option('--project <path>', 'Project root', '.')
91
- .option('--json', 'Emit JSON envelope')
92
- .action((journeyId, opts) => {
93
- const projectRoot = opts.project ?? '.';
94
- const r = readBaselineFile(projectRoot);
95
- if (!r.ok) {
96
- fail(io, r.error.code, r.error.message);
97
- return;
98
- }
99
- const row = r.file.rows.find((x) => x.journeyId === journeyId);
100
- if (!row) {
101
- fail(io, 'BASELINE_ROW_SHAPE_INVALID', `row ${journeyId} not found`);
102
- return;
103
- }
104
- ok(io, 'baseline.show', row);
105
- });
106
- baseline
107
- .command('run-guard')
108
- .description('Run the guard contracts over the frozen baseline. Runs all 15 journeys unless --journey is given.')
109
- .option('--journey <id>', `Run only one journey (${P0_JOURNEY_IDS.join('|')}); default is all 15.`)
110
- .option('--project <path>', 'Project root', '.')
111
- .option('--json', 'Emit JSON envelope')
112
- .action(async (opts) => {
113
- const projectRoot = opts.project ?? '.';
114
- let contracts;
115
- if (opts.journey === undefined) {
116
- contracts = GUARD_CONTRACTS;
117
- }
118
- else if (!isJourneyId(opts.journey)) {
119
- fail(io, 'UNKNOWN_JOURNEY', `unknown journey "${opts.journey}"; expected one of ${P0_JOURNEY_IDS.join(', ')}`);
120
- return;
121
- }
122
- else {
123
- const contract = getGuardContract(opts.journey);
124
- if (contract === undefined) {
125
- fail(io, 'UNKNOWN_JOURNEY', `no guard contract is registered for ${opts.journey}`);
126
- return;
127
- }
128
- contracts = [contract];
129
- }
130
- const summary = await runAllGuards(contracts, guardContext(projectRoot));
131
- const data = summary;
132
- const exitCode = exitCodeForGuardSummary(summary);
133
- if (exitCode === 0) {
134
- ok(io, 'baseline.run-guard', data);
135
- return;
136
- }
137
- fail(io, exitCode === 1 ? 'GUARD_FAILED' : 'GUARD_SKIPPED', `${String(summary.fail)} failed, ${String(summary.skipped)} skipped of ${String(summary.total)} guard contracts`, data);
138
- // `fail` sets 1; a skipped run is a distinct outcome from a failed one.
139
- process.exitCode = exitCode;
140
- });
141
- baseline
142
- .command('diff')
143
- .description('Show current implementation vs. frozen baseline.')
144
- .option('--project <path>', 'Project root', '.')
145
- .option('--json', 'Emit JSON envelope')
146
- .action((opts) => {
147
- const projectRoot = opts.project ?? '.';
148
- const r = readBaselineFile(projectRoot);
149
- if (!r.ok) {
150
- fail(io, r.error.code, r.error.message);
151
- return;
152
- }
153
- ok(io, 'baseline.diff', {
154
- version: r.file.version,
155
- signedAt: r.file.signedAt,
156
- rowsCount: r.file.rows.length
157
- });
158
- });
159
- baseline
160
- .command('audit')
161
- .description('Run the capability audit (independent-context scorer). Exits non-zero unless the verdict is consistent.')
162
- .option('--scorer <mode>', `Scorer to run: ${SCORER_MODES.join('|')}. 'live' (default) runs the deterministic independent checker, which needs no credentials; 'stub' performs no evaluation and can never be consistent.`, DEFAULT_SCORER_MODE)
163
- .option('--project <path>', 'Project root', '.')
164
- .option('--json', 'Emit JSON envelope')
165
- .action(async (opts) => {
166
- const projectRoot = opts.project ?? '.';
167
- if (!isScorerMode(opts.scorer)) {
168
- fail(io, 'UNKNOWN_SCORER', `unknown scorer "${String(opts.scorer)}"; expected one of ${SCORER_MODES.join(', ')}`);
169
- return;
170
- }
171
- const r = readBaselineFile(projectRoot);
172
- if (!r.ok) {
173
- fail(io, r.error.code, r.error.message);
174
- return;
175
- }
176
- // The guard summary is the REAL aggregate of the 15 contracts. It used to
177
- // be a literal `{pass:15,fail:0,skipped:0,total:15}` that no run produced.
178
- const guardSummary = await runAllGuards(GUARD_CONTRACTS, guardContext(projectRoot));
179
- // `live` is the deterministic independent checker: a real
180
- // separate-context evaluation that needs no credentials, which is why it
181
- // is the only kind that can run inside the secretless OIDC publish gate.
182
- // It is handed the frozen rows and the registry, not just the guard
183
- // summary — a scorer that only sees the guard result is a restatement.
184
- const { runAudit } = await import('../../services/capability-audit-service/runner.js');
185
- // `sessionId` is the on-disk scope for the audit artifacts. This command
186
- // has NO session — it is the credential-free scorer that runs inside the
187
- // secretless OIDC publish gate — and it used to pass the literal `'cli'`,
188
- // so every run wrote `.peaks/_runtime/cli/capability-audit/*.json` into
189
- // the operator's real workspace. That directory is indistinguishable from
190
- // a session dir whose id failed validation, so `peaks doctor`'s
191
- // orphan-session check failed on it permanently (`4 orphan session(s)
192
- // …: callers, cli, unknown-sid, x`, exit 1). The reserved
193
- // underscore-prefixed scope says "machinery, not a session" in the name.
194
- const audit = await runAudit({
195
- projectRoot,
196
- sessionId: RUNTIME_SESSIONLESS_SCOPE,
197
- journeyId: 'J01',
198
- scorerMode: opts.scorer,
199
- baselineRows: r.file.rows,
200
- contracts: GUARD_CONTRACTS,
201
- guardSummary
202
- });
203
- const data = audit;
204
- if (audit.verdict === 'consistent' && !audit.degraded) {
205
- ok(io, 'baseline.audit', data);
206
- return;
207
- }
208
- fail(io, 'AUDIT_NOT_CONSISTENT', `capability audit verdict is "${audit.verdict}"${audit.degraded ? ' (degraded: stub scorer)' : ''}`, data);
209
- });
210
- baseline
211
- .command('freeze-update')
212
- .description("Update one or more baseline rows. The LLM authors the JSON; --confirm records the user's approval.")
213
- .option('--from <path>', 'Path to the new baseline JSON input')
214
- .option('--confirm', "Record the user's approval (collected via AskUserQuestion) for this ratchet change")
215
- .option('--project <path>', 'Project root', '.')
216
- .option('--json', 'Emit JSON envelope')
217
- .action((opts) => {
218
- const projectRoot = opts.project ?? '.';
219
- if (opts.confirm !== true) {
220
- fail(io, 'HUMAN_NL_DECISION_REQUIRED', 'freeze-update requires the user to approve the ratchet change via AskUserQuestion. The LLM must surface a multi-choice prompt, then re-run with --confirm.');
221
- return;
222
- }
223
- if (!opts.from) {
224
- fail(io, 'MISSING_ARG', '--from is required');
225
- return;
226
- }
227
- const r = readBaselineFile(projectRoot);
228
- if (!r.ok) {
229
- fail(io, r.error.code, r.error.message);
230
- return;
231
- }
232
- const file = JSON.parse(readFileSync(opts.from, 'utf8'));
233
- const v = validateBaselineFile(file);
234
- if (!v.ok) {
235
- fail(io, v.error.code, v.error.message);
236
- return;
237
- }
238
- const out = writeBaselineFile({ projectRoot, file });
239
- historySnapshot({ projectRoot, version: file.version });
240
- ok(io, 'baseline.freeze-update', {
241
- path: out.path,
242
- lockPath: out.lockPath,
243
- fromVersion: r.file.version,
244
- version: file.version
245
- });
246
- });
247
- baseline
248
- .command('rollback')
249
- .description("Roll the baseline back to a historical version. --confirm records the user's approval.")
250
- .option('--to <version>', 'Historical version to roll back to')
251
- .option('--confirm', "Record the user's approval (collected via AskUserQuestion) for this rollback")
252
- .option('--project <path>', 'Project root', '.')
253
- .option('--json', 'Emit JSON envelope')
254
- .action((opts) => {
255
- const projectRoot = opts.project ?? '.';
256
- if (opts.confirm !== true) {
257
- fail(io, 'HUMAN_NL_DECISION_REQUIRED', 'rollback requires the user to approve via AskUserQuestion. The LLM must surface a multi-choice prompt, then re-run with --confirm.');
258
- return;
259
- }
260
- if (!opts.to) {
261
- fail(io, 'MISSING_ARG', '--to is required');
262
- return;
263
- }
264
- const source = HISTORY_DIR(projectRoot, opts.to);
265
- const from = join(source, 'capability-baseline.json');
266
- const fromLock = join(source, 'capability-baseline.lock');
267
- if (!existsSync(from) || !existsSync(fromLock)) {
268
- fail(io, 'BASELINE_HISTORY_GAP', `no frozen baseline recorded for version ${opts.to}`);
269
- return;
270
- }
271
- const r = readBaselineFile(projectRoot);
272
- if (!r.ok) {
273
- fail(io, r.error.code, r.error.message);
274
- return;
275
- }
276
- mkdirSync(CURRENT_DIR(projectRoot), { recursive: true });
277
- copyFileSync(from, join(CURRENT_DIR(projectRoot), 'capability-baseline.json'));
278
- copyFileSync(fromLock, join(CURRENT_DIR(projectRoot), 'capability-baseline.lock'));
279
- // Re-read through the locked store so a tampered history entry cannot be
280
- // installed: the copy is only reported successful if it verifies.
281
- const after = readBaselineFile(projectRoot);
282
- if (!after.ok) {
283
- fail(io, after.error.code, after.error.message);
284
- return;
285
- }
286
- ok(io, 'baseline.rollback', {
287
- fromVersion: r.file.version,
288
- toVersion: after.file.version,
289
- historyPath: source
290
- });
291
- });
292
- baseline
293
- .command('reset')
294
- .description("Wipe the current baseline and require a re-freeze. --confirm records the user's approval.")
295
- .option('--confirm', "Record the user's approval (collected via AskUserQuestion) for the wipe")
296
- .option('--project <path>', 'Project root', '.')
297
- .option('--json', 'Emit JSON envelope')
298
- .action((opts) => {
299
- const projectRoot = opts.project ?? '.';
300
- if (opts.confirm !== true) {
301
- fail(io, 'HUMAN_NL_DECISION_REQUIRED', 'reset requires the user to approve via AskUserQuestion. The LLM must surface a multi-choice prompt, then re-run with --confirm.');
302
- return;
303
- }
304
- const r = readBaselineFile(projectRoot);
305
- // A missing baseline is already "wiped" — but an unreadable one (hash
306
- // mismatch / unsigned lock) must not be silently discarded.
307
- if (!r.ok && r.error.code !== 'BASELINE_NOT_FOUND') {
308
- fail(io, r.error.code, r.error.message);
309
- return;
310
- }
311
- const wipedVersion = r.ok ? r.file.version : null;
312
- rmSync(join(CURRENT_DIR(projectRoot), 'capability-baseline.json'), { force: true });
313
- rmSync(join(CURRENT_DIR(projectRoot), 'capability-baseline.lock'), { force: true });
314
- ok(io, 'baseline.reset', {
315
- wipedVersion,
316
- nextAction: 're-freeze with `baseline freeze --from <path>`'
317
- });
318
- });
27
+ // The call order below IS the registration order the whole-registry render
28
+ // pins, so it stays the order the verbs shipped in — a file may hold two
29
+ // verbs' bodies without moving either.
30
+ registerBaselineFreezeCommand(baseline, io);
31
+ registerBaselineListCommand(baseline, io);
32
+ registerBaselineShowCommand(baseline, io);
33
+ registerBaselineRunGuardCommand(baseline, io);
34
+ registerBaselineDiffCommand(baseline, io);
35
+ registerBaselineAuditCommand(baseline, io);
36
+ registerBaselineFreezeUpdateCommand(baseline, io);
37
+ registerBaselineRollbackCommand(baseline, io);
38
+ registerBaselineResetCommand(baseline, io);
319
39
  }
@@ -0,0 +1,4 @@
1
+ import type { Command } from 'commander';
2
+ import type { ProgramIO } from '../cli-helpers.js';
3
+ export declare function registerBaselineFreezeCommand(baseline: Command, io: ProgramIO): void;
4
+ export declare function registerBaselineFreezeUpdateCommand(baseline: Command, io: ProgramIO): void;
@@ -0,0 +1,81 @@
1
+ // src/cli/commands/baseline-freeze-commands.ts
2
+ //
3
+ // `peaks baseline freeze` and `peaks baseline freeze-update` — install a
4
+ // baseline JSON file and snapshot the previous version into history. Split out
5
+ // of `baseline-commands.ts`; every envelope code, message, data field and
6
+ // next-action string is unchanged.
7
+ import { readFileSync } from 'node:fs';
8
+ import { historySnapshot, readBaselineFile, writeBaselineFile } from '../../services/capability-baseline/store.js';
9
+ import { validateBaselineFile } from '../../services/capability-baseline/validator.js';
10
+ import { fail, ok } from './baseline-command-shared.js';
11
+ /**
12
+ * Parse, validate, install and snapshot one baseline file. Returns where it
13
+ * landed and its version on success; prints the matching refusal and returns
14
+ * null otherwise.
15
+ */
16
+ function installBaseline(io, projectRoot, from) {
17
+ const file = JSON.parse(readFileSync(from, 'utf8'));
18
+ const v = validateBaselineFile(file);
19
+ if (!v.ok) {
20
+ fail(io, v.error.code, v.error.message);
21
+ return null;
22
+ }
23
+ const out = writeBaselineFile({ projectRoot, file });
24
+ historySnapshot({ projectRoot, version: file.version });
25
+ return { path: out.path, lockPath: out.lockPath, version: file.version };
26
+ }
27
+ function runFreeze(io, opts) {
28
+ const projectRoot = opts.project ?? '.';
29
+ if (!opts.from) {
30
+ fail(io, 'MISSING_ARG', '--from is required');
31
+ return;
32
+ }
33
+ const out = installBaseline(io, projectRoot, opts.from);
34
+ if (out === null)
35
+ return;
36
+ ok(io, 'baseline.freeze', { path: out.path, lockPath: out.lockPath, version: out.version });
37
+ }
38
+ function runFreezeUpdate(io, opts) {
39
+ const projectRoot = opts.project ?? '.';
40
+ if (opts.confirm !== true) {
41
+ fail(io, 'HUMAN_NL_DECISION_REQUIRED', 'freeze-update requires the user to approve the ratchet change via AskUserQuestion. The LLM must surface a multi-choice prompt, then re-run with --confirm.');
42
+ return;
43
+ }
44
+ if (!opts.from) {
45
+ fail(io, 'MISSING_ARG', '--from is required');
46
+ return;
47
+ }
48
+ const r = readBaselineFile(projectRoot);
49
+ if (!r.ok) {
50
+ fail(io, r.error.code, r.error.message);
51
+ return;
52
+ }
53
+ const out = installBaseline(io, projectRoot, opts.from);
54
+ if (out === null)
55
+ return;
56
+ ok(io, 'baseline.freeze-update', {
57
+ path: out.path,
58
+ lockPath: out.lockPath,
59
+ fromVersion: r.file.version,
60
+ version: out.version
61
+ });
62
+ }
63
+ export function registerBaselineFreezeCommand(baseline, io) {
64
+ baseline
65
+ .command('freeze')
66
+ .description('Freeze the capability baseline from a JSON file (SquabbyZ-signed).')
67
+ .option('--from <path>', 'Path to the baseline JSON input.')
68
+ .option('--project <path>', 'Project root', '.')
69
+ .option('--json', 'Emit JSON envelope')
70
+ .action((opts) => runFreeze(io, opts));
71
+ }
72
+ export function registerBaselineFreezeUpdateCommand(baseline, io) {
73
+ baseline
74
+ .command('freeze-update')
75
+ .description("Update one or more baseline rows. The LLM authors the JSON; --confirm records the user's approval.")
76
+ .option('--from <path>', 'Path to the new baseline JSON input')
77
+ .option('--confirm', "Record the user's approval (collected via AskUserQuestion) for this ratchet change")
78
+ .option('--project <path>', 'Project root', '.')
79
+ .option('--json', 'Emit JSON envelope')
80
+ .action((opts) => runFreezeUpdate(io, opts));
81
+ }
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ import type { ProgramIO } from '../cli-helpers.js';
3
+ export declare function registerBaselineRunGuardCommand(baseline: Command, io: ProgramIO): void;
@@ -0,0 +1,52 @@
1
+ // src/cli/commands/baseline-guard-command.ts
2
+ //
3
+ // `peaks baseline run-guard` — run the guard contracts over the frozen
4
+ // baseline. Split out of `baseline-commands.ts`; the journey selector, the
5
+ // refusal codes, the summary data and the exit-code rule are unchanged.
6
+ import { GUARD_CONTRACTS, getGuardContract, isJourneyId } from '../../services/capability-guard-runner/registry.js';
7
+ import { exitCodeForGuardSummary, runAllGuards } from '../../services/capability-guard-runner/runner.js';
8
+ import { P0_JOURNEY_IDS } from '../../services/capability-baseline/types.js';
9
+ import { fail, guardContext, ok } from './baseline-command-shared.js';
10
+ /**
11
+ * The contracts `--journey` selects: all 15 when the flag is absent, the one
12
+ * named contract when it is, or null after the matching refusal was printed.
13
+ */
14
+ function selectContracts(io, journey) {
15
+ if (journey === undefined)
16
+ return GUARD_CONTRACTS;
17
+ if (!isJourneyId(journey)) {
18
+ fail(io, 'UNKNOWN_JOURNEY', `unknown journey "${journey}"; expected one of ${P0_JOURNEY_IDS.join(', ')}`);
19
+ return null;
20
+ }
21
+ const contract = getGuardContract(journey);
22
+ if (contract === undefined) {
23
+ fail(io, 'UNKNOWN_JOURNEY', `no guard contract is registered for ${journey}`);
24
+ return null;
25
+ }
26
+ return [contract];
27
+ }
28
+ async function runGuard(io, opts) {
29
+ const projectRoot = opts.project ?? '.';
30
+ const contracts = selectContracts(io, opts.journey);
31
+ if (contracts === null)
32
+ return;
33
+ const summary = await runAllGuards(contracts, guardContext(projectRoot));
34
+ const data = summary;
35
+ const exitCode = exitCodeForGuardSummary(summary);
36
+ if (exitCode === 0) {
37
+ ok(io, 'baseline.run-guard', data);
38
+ return;
39
+ }
40
+ fail(io, exitCode === 1 ? 'GUARD_FAILED' : 'GUARD_SKIPPED', `${String(summary.fail)} failed, ${String(summary.skipped)} skipped of ${String(summary.total)} guard contracts`, data);
41
+ // `fail` sets 1; a skipped run is a distinct outcome from a failed one.
42
+ process.exitCode = exitCode;
43
+ }
44
+ export function registerBaselineRunGuardCommand(baseline, io) {
45
+ baseline
46
+ .command('run-guard')
47
+ .description('Run the guard contracts over the frozen baseline. Runs all 15 journeys unless --journey is given.')
48
+ .option('--journey <id>', `Run only one journey (${P0_JOURNEY_IDS.join('|')}); default is all 15.`)
49
+ .option('--project <path>', 'Project root', '.')
50
+ .option('--json', 'Emit JSON envelope')
51
+ .action((opts) => runGuard(io, opts));
52
+ }
@@ -0,0 +1,5 @@
1
+ import type { Command } from 'commander';
2
+ import type { ProgramIO } from '../cli-helpers.js';
3
+ export declare function registerBaselineListCommand(baseline: Command, io: ProgramIO): void;
4
+ export declare function registerBaselineShowCommand(baseline: Command, io: ProgramIO): void;
5
+ export declare function registerBaselineDiffCommand(baseline: Command, io: ProgramIO): void;
@@ -0,0 +1,72 @@
1
+ // src/cli/commands/baseline-read-commands.ts
2
+ //
3
+ // `peaks baseline list` / `show` / `diff` — the three read-only projections of
4
+ // the frozen baseline. Split out of `baseline-commands.ts`; every envelope
5
+ // command name, code and data field is unchanged.
6
+ import { readBaselineFile } from '../../services/capability-baseline/store.js';
7
+ import { fail, ok } from './baseline-command-shared.js';
8
+ function runList(io, opts) {
9
+ const projectRoot = opts.project ?? '.';
10
+ const r = readBaselineFile(projectRoot);
11
+ if (!r.ok) {
12
+ fail(io, r.error.code, r.error.message);
13
+ return;
14
+ }
15
+ const rows = r.file.rows.map((row) => ({
16
+ journeyId: row.journeyId,
17
+ intent: row.intent,
18
+ invariantCount: row.invariants.length
19
+ }));
20
+ ok(io, 'baseline.list', { version: r.file.version, signedAt: r.file.signedAt, rows });
21
+ }
22
+ function runShow(io, journeyId, opts) {
23
+ const projectRoot = opts.project ?? '.';
24
+ const r = readBaselineFile(projectRoot);
25
+ if (!r.ok) {
26
+ fail(io, r.error.code, r.error.message);
27
+ return;
28
+ }
29
+ const row = r.file.rows.find((x) => x.journeyId === journeyId);
30
+ if (!row) {
31
+ fail(io, 'BASELINE_ROW_SHAPE_INVALID', `row ${journeyId} not found`);
32
+ return;
33
+ }
34
+ ok(io, 'baseline.show', row);
35
+ }
36
+ function runDiff(io, opts) {
37
+ const projectRoot = opts.project ?? '.';
38
+ const r = readBaselineFile(projectRoot);
39
+ if (!r.ok) {
40
+ fail(io, r.error.code, r.error.message);
41
+ return;
42
+ }
43
+ ok(io, 'baseline.diff', {
44
+ version: r.file.version,
45
+ signedAt: r.file.signedAt,
46
+ rowsCount: r.file.rows.length
47
+ });
48
+ }
49
+ export function registerBaselineListCommand(baseline, io) {
50
+ baseline
51
+ .command('list')
52
+ .description('List the 15 P0 journey rows in the frozen baseline.')
53
+ .option('--project <path>', 'Project root', '.')
54
+ .option('--json', 'Emit JSON envelope')
55
+ .action((opts) => runList(io, opts));
56
+ }
57
+ export function registerBaselineShowCommand(baseline, io) {
58
+ baseline
59
+ .command('show <journeyId>')
60
+ .description('Show one journey row.')
61
+ .option('--project <path>', 'Project root', '.')
62
+ .option('--json', 'Emit JSON envelope')
63
+ .action((journeyId, opts) => runShow(io, journeyId, opts));
64
+ }
65
+ export function registerBaselineDiffCommand(baseline, io) {
66
+ baseline
67
+ .command('diff')
68
+ .description('Show current implementation vs. frozen baseline.')
69
+ .option('--project <path>', 'Project root', '.')
70
+ .option('--json', 'Emit JSON envelope')
71
+ .action((opts) => runDiff(io, opts));
72
+ }
@@ -0,0 +1,4 @@
1
+ import type { Command } from 'commander';
2
+ import type { ProgramIO } from '../cli-helpers.js';
3
+ export declare function registerBaselineRollbackCommand(baseline: Command, io: ProgramIO): void;
4
+ export declare function registerBaselineResetCommand(baseline: Command, io: ProgramIO): void;