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,78 @@
1
+ import { EvolutionService, type EvolutionIntegrityError } from '../../services/evolution/evolution-service.js';
2
+ import { type EvolutionTargetKind } from '../../services/evolution/evolution-types.js';
3
+ import { type ProgramIO } from '../cli-helpers.js';
4
+ import { type ResultEnvelope } from 'peaks-loop-shared/result';
5
+ /** A parsed `--target <kind:id>` flag. */
6
+ export interface EvolutionTarget {
7
+ kind: EvolutionTargetKind;
8
+ id: string;
9
+ }
10
+ /**
11
+ * Parse `--target <kind:id>`. Returns the kind + id, or `null` on
12
+ * failure. Validates `kind` against the EVOLUTION_TARGET_KINDS
13
+ * union.
14
+ */
15
+ export declare function parseTargetFlag(raw: string): EvolutionTarget | null;
16
+ /** The shared `--target` parse failure envelope (`propose` + `status`). */
17
+ export declare function invalidTargetFailure(command: string, target: string): ResultEnvelope<{
18
+ target: string;
19
+ }>;
20
+ /** The shared "no such proposal" failure envelope. */
21
+ export declare function proposalNotFoundFailure(command: string, proposalId: string, nextActions: string[]): ResultEnvelope<{
22
+ proposalId: string;
23
+ }>;
24
+ /**
25
+ * Helper: collect repeatable `--risk-tag` values into an array.
26
+ * Commander's `collect` is not always available; we read
27
+ * `previous` from the default value.
28
+ */
29
+ export declare function collectRepeatable(value: string, previous: string[]): string[];
30
+ /** Upper bound of the 0..10 score scale used by proposal + evaluator scores. */
31
+ export declare const SCORE_SCALE_MAX = 10;
32
+ /** True when `value` is a finite number on the 0..10 score scale. */
33
+ export declare function isScoreInRange(value: number): boolean;
34
+ /** Inputs for {@link scoreRangeFailure}. */
35
+ export interface ScoreRangeFailureArgs {
36
+ command: string;
37
+ code: string;
38
+ /** Message label, e.g. `before_score`. */
39
+ label: string;
40
+ /** CLI flag named in the hint, e.g. `--before-score`. */
41
+ flag: string;
42
+ /** `data` key carrying the raw value, e.g. `beforeScore`. */
43
+ key: string;
44
+ /** The raw, unparsed flag value. */
45
+ raw: string;
46
+ }
47
+ /** The shared "[0, 10] finite number" validation failure envelope. */
48
+ export declare function scoreRangeFailure(args: ScoreRangeFailureArgs): ResultEnvelope<Record<string, string>>;
49
+ /** The `--delta-min` validation failure envelope. */
50
+ export declare function deltaMinFailure(command: string, raw: string): ResultEnvelope<Record<string, string>>;
51
+ /** Run `body` against a fresh EvolutionService, closing the DB after. */
52
+ export declare function withEvolutionDb<T>(project: string | undefined, body: (svc: EvolutionService) => T): T;
53
+ /** `await`-friendly sibling of {@link withEvolutionDb}. */
54
+ export declare function withEvolutionDbAsync<T>(project: string | undefined, body: (svc: EvolutionService) => Promise<T>): Promise<T>;
55
+ /** Params for {@link reportIntegrityFailure}. */
56
+ export interface IntegrityFailureReport {
57
+ io: ProgramIO;
58
+ command: string;
59
+ error: EvolutionIntegrityError;
60
+ nextActions: string[];
61
+ /** `options.json` — the caller's `--json` flag, possibly absent. */
62
+ asJson?: boolean | undefined;
63
+ }
64
+ /** Print an `EvolutionIntegrityError` envelope and set exit code 1. */
65
+ export declare function reportIntegrityFailure(report: IntegrityFailureReport): void;
66
+ /** Params for {@link reportFailure}. */
67
+ export interface CommandFailureReport {
68
+ io: ProgramIO;
69
+ command: string;
70
+ code: string;
71
+ error: unknown;
72
+ data: Record<string, unknown>;
73
+ nextActions: string[];
74
+ /** `options.json` — the caller's `--json` flag, possibly absent. */
75
+ asJson?: boolean | undefined;
76
+ }
77
+ /** Print a generic `<command>_FAILED` envelope and set exit code 1. */
78
+ export declare function reportFailure(report: CommandFailureReport): void;
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Shared helpers for the `peaks evolution *` subcommand modules
3
+ * (propose / evaluate / mark-keep / revert / status). Split out of
4
+ * `evolution-commands.ts` in the size-debt batch: every command name,
5
+ * option, envelope key, error code and exit-code site is unchanged.
6
+ *
7
+ * Nothing here holds module-level mutable state: each helper takes
8
+ * parameters and returns a value, and the DB helpers own the
9
+ * open/close pair so callers never see a half-closed handle.
10
+ */
11
+ import { existsSync, mkdirSync } from 'node:fs';
12
+ import { join } from 'node:path';
13
+ import { findProjectRoot } from '../../services/config/config-safety.js';
14
+ import { EvolutionService } from '../../services/evolution/evolution-service.js';
15
+ import { EVOLUTION_TARGET_KINDS } from '../../services/evolution/evolution-types.js';
16
+ import { openStateDb } from '../../services/skillhub/sqlite-store.js';
17
+ import { getErrorMessage, printResult } from '../cli-helpers.js';
18
+ import { fail } from 'peaks-loop-shared/result';
19
+ /**
20
+ * Parse `--target <kind:id>`. Returns the kind + id, or `null` on
21
+ * failure. Validates `kind` against the EVOLUTION_TARGET_KINDS
22
+ * union.
23
+ */
24
+ export function parseTargetFlag(raw) {
25
+ const idx = raw.indexOf(':');
26
+ if (idx <= 0 || idx === raw.length - 1)
27
+ return null;
28
+ const kind = raw.slice(0, idx);
29
+ const id = raw.slice(idx + 1);
30
+ if (!EVOLUTION_TARGET_KINDS.includes(kind))
31
+ return null;
32
+ return { kind: kind, id };
33
+ }
34
+ /** The shared `--target` parse failure envelope (`propose` + `status`). */
35
+ export function invalidTargetFailure(command, target) {
36
+ return fail(command, 'EVOLUTION_INVALID_TARGET', `--target must be '<kind>:<id>' where kind ∈ {${EVOLUTION_TARGET_KINDS.join(',')}}`, { target }, ['Pass --target loop:<loop-id> or --target bee:<bee-id>.']);
37
+ }
38
+ /** The shared "no such proposal" failure envelope. */
39
+ export function proposalNotFoundFailure(command, proposalId, nextActions) {
40
+ return fail(command, 'EVOLUTION_PROPOSAL_NOT_FOUND', `proposal '${proposalId}' not found`, { proposalId }, nextActions);
41
+ }
42
+ /**
43
+ * Helper: collect repeatable `--risk-tag` values into an array.
44
+ * Commander's `collect` is not always available; we read
45
+ * `previous` from the default value.
46
+ */
47
+ export function collectRepeatable(value, previous) {
48
+ if (Array.isArray(previous))
49
+ return [...previous, value];
50
+ return [value];
51
+ }
52
+ /** Upper bound of the 0..10 score scale used by proposal + evaluator scores. */
53
+ export const SCORE_SCALE_MAX = 10;
54
+ /** True when `value` is a finite number on the 0..10 score scale. */
55
+ export function isScoreInRange(value) {
56
+ return Number.isFinite(value) && value >= 0 && value <= SCORE_SCALE_MAX;
57
+ }
58
+ /** The shared "[0, 10] finite number" validation failure envelope. */
59
+ export function scoreRangeFailure(args) {
60
+ return fail(args.command, args.code, `${args.label} must be a finite number in [0, 10] (got "${args.raw}")`, { [args.key]: args.raw }, [`Pass a numeric ${args.flag} in [0, 10].`]);
61
+ }
62
+ /** The `--delta-min` validation failure envelope. */
63
+ export function deltaMinFailure(command, raw) {
64
+ return fail(command, 'EVOLUTION_INVALID_DELTA_MIN', `delta_min must be a finite number >= 0 (got "${raw}")`, { deltaMin: raw }, ['Pass a numeric --delta-min >= 0 (default 1.0).']);
65
+ }
66
+ /**
67
+ * Resolve the project root, bootstrap an empty `.peaks/` dir when it
68
+ * is missing (so tests do not need a full peaks project) and open the
69
+ * state DB.
70
+ */
71
+ function openEvolutionDb(project) {
72
+ const projectRoot = project ?? findProjectRoot(process.cwd()) ?? process.cwd();
73
+ if (!existsSync(join(projectRoot, '.peaks'))) {
74
+ mkdirSync(join(projectRoot, '.peaks'), { recursive: true });
75
+ }
76
+ return openStateDb(join(projectRoot, '.peaks', 'state.db'));
77
+ }
78
+ /** Run `body` against a fresh EvolutionService, closing the DB after. */
79
+ export function withEvolutionDb(project, body) {
80
+ const db = openEvolutionDb(project);
81
+ try {
82
+ return body(new EvolutionService(db));
83
+ }
84
+ finally {
85
+ db.close();
86
+ }
87
+ }
88
+ /** `await`-friendly sibling of {@link withEvolutionDb}. */
89
+ export async function withEvolutionDbAsync(project, body) {
90
+ const db = openEvolutionDb(project);
91
+ try {
92
+ return await body(new EvolutionService(db));
93
+ }
94
+ finally {
95
+ db.close();
96
+ }
97
+ }
98
+ /** Print an `EvolutionIntegrityError` envelope and set exit code 1. */
99
+ export function reportIntegrityFailure(report) {
100
+ printResult(report.io, fail(report.command, report.error.code, report.error.message, { findings: report.error.findings }, report.nextActions), report.asJson);
101
+ process.exitCode = 1;
102
+ }
103
+ /** Print a generic `<command>_FAILED` envelope and set exit code 1. */
104
+ export function reportFailure(report) {
105
+ printResult(report.io, fail(report.command, report.code, getErrorMessage(report.error), report.data, report.nextActions), report.asJson);
106
+ process.exitCode = 1;
107
+ }
@@ -20,7 +20,17 @@
20
20
  *
21
21
  * Defense in depth: the EvolutionService enforces the ratchet
22
22
  * into the service payload.
23
+ *
24
+ * Size-debt split: each verb's registration and action body now lives
25
+ * in its own sibling module — `evolution-propose-command.ts`,
26
+ * `evolution-evaluate-command.ts`, `evolution-verdict-commands.ts`
27
+ * (mark-keep + revert) and `evolution-status-command.ts` — over the
28
+ * shared parse / validate / DB / failure helpers in
29
+ * `evolution-command-shared.ts`. This file keeps the parent and the
30
+ * delegation only; every command name, option, envelope key, error
31
+ * code and exit-code site is unchanged.
23
32
  */
24
33
  import type { Command } from 'commander';
25
- import { type ProgramIO } from '../cli-helpers.js';
34
+ import type { ProgramIO } from '../cli-helpers.js';
35
+ export type { EvolutionTarget } from './evolution-command-shared.js';
26
36
  export declare function registerEvolutionCommands(program: Command, io: ProgramIO): void;
@@ -20,31 +20,21 @@
20
20
  *
21
21
  * Defense in depth: the EvolutionService enforces the ratchet
22
22
  * into the service payload.
23
+ *
24
+ * Size-debt split: each verb's registration and action body now lives
25
+ * in its own sibling module — `evolution-propose-command.ts`,
26
+ * `evolution-evaluate-command.ts`, `evolution-verdict-commands.ts`
27
+ * (mark-keep + revert) and `evolution-status-command.ts` — over the
28
+ * shared parse / validate / DB / failure helpers in
29
+ * `evolution-command-shared.ts`. This file keeps the parent and the
30
+ * delegation only; every command name, option, envelope key, error
31
+ * code and exit-code site is unchanged.
23
32
  */
24
- import { existsSync, mkdirSync } from 'node:fs';
25
- import { dirname, join } from 'node:path';
26
- import { openStateDb } from '../../services/skillhub/sqlite-store.js';
27
- import { EvolutionService, EvolutionIntegrityError } from '../../services/evolution/evolution-service.js';
28
- import { EVOLUTION_TARGET_KINDS } from '../../services/evolution/evolution-types.js';
29
- import { findProjectRoot } from '../../services/config/config-safety.js';
30
- import { runIndependentEvaluator } from '../../services/evolution/independent-evaluator-runner.js';
31
- import { addJsonOption, getErrorMessage, printResult } from '../cli-helpers.js';
32
- import { fail, ok } from 'peaks-loop-shared/result';
33
- /**
34
- * Parse `--target <kind:id>`. Returns the kind + id, or `null` on
35
- * failure. Validates `kind` against the EVOLUTION_TARGET_KINDS
36
- * union.
37
- */
38
- function parseTargetFlag(raw) {
39
- const idx = raw.indexOf(':');
40
- if (idx <= 0 || idx === raw.length - 1)
41
- return null;
42
- const kind = raw.slice(0, idx);
43
- const id = raw.slice(idx + 1);
44
- if (!EVOLUTION_TARGET_KINDS.includes(kind))
45
- return null;
46
- return { kind: kind, id };
47
- }
33
+ import { dirname } from 'node:path';
34
+ import { registerEvaluateCommand } from './evolution-evaluate-command.js';
35
+ import { registerProposeCommand } from './evolution-propose-command.js';
36
+ import { registerStatusCommand } from './evolution-status-command.js';
37
+ import { registerMarkKeepCommand, registerRevertCommand } from './evolution-verdict-commands.js';
48
38
  export function registerEvolutionCommands(program, io) {
49
39
  // Reuse the existing `evolution` parent if one is registered;
50
40
  // otherwise create it. The add-a-new-subcommand-check-for-existing-
@@ -54,333 +44,12 @@ export function registerEvolutionCommands(program, io) {
54
44
  program
55
45
  .command('evolution')
56
46
  .description('Darwin-style ratchet: propose / evaluate / revert / status (spec §6)');
57
- // peaks evolution propose
58
- addJsonOption(evolution
59
- .command('propose')
60
- .description("M4: persist a new evolution proposal. Enforces AC-8 (single object + single dimension). The proposal's verdict starts at 'needs-user-decision' until the scoring + skeptic step lands.")
61
- .requiredOption('--target <kind:id>', "target asset, e.g. 'loop:loop-onboarding-research' or 'bee:42'")
62
- .requiredOption('--dimension <name>', "single optimization dimension (e.g. 'clarity')")
63
- .requiredOption('--before-score <n>', 'score on the 0..10 scale BEFORE the change')
64
- .requiredOption('--after-score <n>', 'score on the 0..10 scale AFTER the change (LLM-claimed)')
65
- .option('--delta-min <n>', `minimum score delta for promotion (default: 1.0; spec §6.1 #5)`, '1.0')
66
- .requiredOption('--author <id>', 'author agent id (the LLM proposing the change)')
67
- .option('--brief-pointer <ptr>', 'pointer to the evidence brief used in the recommendation (spec §4.7 / §4.4)')
68
- .option('--project <path>', 'project root (default: cwd)')).action((options) => {
69
- try {
70
- const target = parseTargetFlag(options.target);
71
- if (!target) {
72
- printResult(io, fail('evolution.propose', 'EVOLUTION_INVALID_TARGET', `--target must be '<kind>:<id>' where kind ∈ {${EVOLUTION_TARGET_KINDS.join(',')}}`, { target: options.target }, ['Pass --target loop:<loop-id> or --target bee:<bee-id>.']), options.json);
73
- process.exitCode = 1;
74
- return;
75
- }
76
- const before = Number(options.beforeScore);
77
- const after = Number(options.afterScore);
78
- const deltaMin = Number(options.deltaMin);
79
- if (!Number.isFinite(before) || before < 0 || before > 10) {
80
- printResult(io, fail('evolution.propose', 'EVOLUTION_INVALID_BEFORE_SCORE', `before_score must be a finite number in [0, 10] (got "${options.beforeScore}")`, { beforeScore: options.beforeScore }, ['Pass a numeric --before-score in [0, 10].']), options.json);
81
- process.exitCode = 1;
82
- return;
83
- }
84
- if (!Number.isFinite(after) || after < 0 || after > 10) {
85
- printResult(io, fail('evolution.propose', 'EVOLUTION_INVALID_AFTER_SCORE', `after_score must be a finite number in [0, 10] (got "${options.afterScore}")`, { afterScore: options.afterScore }, ['Pass a numeric --after-score in [0, 10].']), options.json);
86
- process.exitCode = 1;
87
- return;
88
- }
89
- if (!Number.isFinite(deltaMin) || deltaMin < 0) {
90
- printResult(io, fail('evolution.propose', 'EVOLUTION_INVALID_DELTA_MIN', `delta_min must be a finite number >= 0 (got "${options.deltaMin}")`, { deltaMin: options.deltaMin }, ['Pass a numeric --delta-min >= 0 (default 1.0).']), options.json);
91
- process.exitCode = 1;
92
- return;
93
- }
94
- const projectRoot = options.project ?? findProjectRoot(process.cwd()) ?? process.cwd();
95
- if (!existsSync(join(projectRoot, '.peaks'))) {
96
- // The CLI is allowed to bootstrap an empty .peaks dir so
97
- // tests do not need a full peaks project.
98
- mkdirSync(join(projectRoot, '.peaks'), { recursive: true });
99
- }
100
- const db = openStateDb(join(projectRoot, '.peaks', 'state.db'));
101
- try {
102
- const svc = new EvolutionService(db);
103
- const input = {
104
- target_kind: target.kind,
105
- target_release_id: target.id,
106
- optimization_dimension: options.dimension,
107
- before_snapshot: {},
108
- after_snapshot: { after_score: after },
109
- diff: {},
110
- before_score: before,
111
- after_score: after,
112
- score_delta_min: deltaMin,
113
- author_id: options.author,
114
- single_object: true,
115
- single_optimization_dimension: true,
116
- rubric: {},
117
- red_lines: [],
118
- source_traces: []
119
- };
120
- const proposal = svc.createProposal(input);
121
- printResult(io, ok('evolution.propose', {
122
- proposal: {
123
- id: proposal.id,
124
- target_kind: proposal.target_kind,
125
- target_release_id: proposal.target_release_id,
126
- optimization_dimension: proposal.optimization_dimension,
127
- before_score: proposal.before_score,
128
- after_score: proposal.after_score,
129
- score_delta: proposal.score_delta,
130
- score_delta_min: proposal.score_delta_min,
131
- author_id: proposal.author_id,
132
- verdict: 'needs-user-decision',
133
- ...(options.briefPointer !== undefined
134
- ? { brief_pointer: options.briefPointer }
135
- : {})
136
- },
137
- nextActions: [
138
- `Run \`peaks evolution evaluate --proposal ${proposal.id} --evaluator <id> --skeptic <id> --evaluator-score <n> --json\` to score the proposal.`
139
- ]
140
- }, [], []), options.json);
141
- }
142
- finally {
143
- db.close();
144
- }
145
- }
146
- catch (err) {
147
- if (err instanceof EvolutionIntegrityError) {
148
- printResult(io, fail('evolution.propose', err.code, err.message, { findings: err.findings }, [
149
- 'Re-shape the proposal per spec §6: single object, single dimension, separate scorer.',
150
- 'If you intended a multi-object change, split it into multiple rounds.'
151
- ]), options.json);
152
- process.exitCode = 1;
153
- return;
154
- }
155
- printResult(io, fail('evolution.propose', 'EVOLUTION_PROPOSE_FAILED', getErrorMessage(err), {}, [
156
- 'Verify the target flag and dimension.'
157
- ]), options.json);
158
- process.exitCode = 1;
159
- }
160
- });
161
- // peaks evolution evaluate
162
- addJsonOption(evolution
163
- .command('evaluate')
164
- .description("M4: score a proposal with an independent evaluator (AC-12/AC-13) and a regression skeptic (AC-14). The result is the FINAL verdict: 'keep' (after user confirmation), 'revert' (skeptic blocker or score delta below threshold), or 'needs-user-decision'.")
165
- .requiredOption('--proposal <id>', 'proposal id returned by `peaks evolution propose`')
166
- .requiredOption('--evaluator <id>', 'independent scorer id (MUST differ from --author; AC-10)')
167
- .requiredOption('--skeptic <id>', 'regression skeptic id (MUST differ from --evaluator and --author; AC-12/AC-14)')
168
- .requiredOption('--evaluator-score <n>', "the independent scorer's score on the 0..10 scale (LLM-derived; NOT the author's after_score)")
169
- .option('--refute-paragraph <text>', "the independent scorer's one-paragraph refute (LLM-authored)", '')
170
- .option('--risk-tag <tag>', 'add a risk tag emitted by the evaluator (repeatable)', collectRepeatable, [])
171
- .option('--brief-pointer <ptr>', 'pointer to the evidence brief (spec §4.7 / §4.4)')
172
- .option('--project <path>', 'project root (default: cwd)')).action(async (options) => {
173
- try {
174
- const score = Number(options.evaluatorScore);
175
- if (!Number.isFinite(score) || score < 0 || score > 10) {
176
- printResult(io, fail('evolution.evaluate', 'EVOLUTION_INVALID_EVALUATOR_SCORE', `evaluator-score must be a finite number in [0, 10] (got "${options.evaluatorScore}")`, { evaluatorScore: options.evaluatorScore }, ['Pass a numeric --evaluator-score in [0, 10].']), options.json);
177
- process.exitCode = 1;
178
- return;
179
- }
180
- const projectRoot = options.project ?? findProjectRoot(process.cwd()) ?? process.cwd();
181
- if (!existsSync(join(projectRoot, '.peaks'))) {
182
- mkdirSync(join(projectRoot, '.peaks'), { recursive: true });
183
- }
184
- const db = openStateDb(join(projectRoot, '.peaks', 'state.db'));
185
- try {
186
- const svc = new EvolutionService(db);
187
- const proposal = svc.read(options.proposal);
188
- if (!proposal) {
189
- printResult(io, fail('evolution.evaluate', 'EVOLUTION_PROPOSAL_NOT_FOUND', `proposal '${options.proposal}' not found`, { proposalId: options.proposal }, ['Verify the proposal id and that you have run `peaks evolution propose` first.']), options.json);
190
- process.exitCode = 1;
191
- return;
192
- }
193
- // The CLI runs the deterministic LLM stubs (no live LLM in
194
- // M4). Real LLM wiring lands in M5.
195
- const evaluatorResult = await runIndependentEvaluator(proposal.proposal);
196
- // Force the CLI-supplied --evaluator-score to be the
197
- // final score; the LLM stub's score is informational.
198
- evaluatorResult.score = score;
199
- if (options.refuteParagraph && options.refuteParagraph.length > 0) {
200
- evaluatorResult.refuteParagraph = options.refuteParagraph;
201
- }
202
- if (Array.isArray(options.riskTag) && options.riskTag.length > 0) {
203
- evaluatorResult.riskTags = [...evaluatorResult.riskTags, ...options.riskTag];
204
- }
205
- const evaluation = svc.score(options.proposal, {
206
- evaluator_id: options.evaluator,
207
- skeptic_id: options.skeptic,
208
- evaluator_result: evaluatorResult,
209
- skeptic_result: {
210
- driftRisks: [],
211
- overfitRisks: [],
212
- safetyRegressionRisks: []
213
- },
214
- ...(options.briefPointer !== undefined ? { brief_pointer: options.briefPointer } : {})
215
- });
216
- printResult(io, ok('evolution.evaluate', {
217
- proposalId: evaluation.id,
218
- verdict: evaluation.verdict,
219
- evaluator_id: evaluation.evaluator_id,
220
- skeptic_id: evaluation.skeptic_id,
221
- evaluator_result: evaluation.evaluator_result,
222
- skeptic_result: evaluation.skeptic_result,
223
- score_delta: evaluation.proposal.score_delta,
224
- score_delta_min: evaluation.proposal.score_delta_min,
225
- after_score: evaluation.proposal.after_score,
226
- nextActions: evaluation.verdict === 'needs-user-decision'
227
- ? [
228
- `User confirmation required. Run \`peaks evolution mark-keep --proposal ${evaluation.id} --user-confirmation <ptr> --json\` after the user picks "keep", OR \`peaks evolution revert --proposal ${evaluation.id} --json\`.`
229
- ]
230
- : evaluation.verdict === 'revert'
231
- ? [
232
- 'Proposal reverted. Investigate the skeptic blocker or the score delta below threshold.'
233
- ]
234
- : [
235
- 'Proposal kept. The target asset remains unchanged on disk; full promotion lands in a later slice.'
236
- ]
237
- }, [], []), options.json);
238
- if (evaluation.verdict === 'revert')
239
- process.exitCode = 1;
240
- }
241
- finally {
242
- db.close();
243
- }
244
- }
245
- catch (err) {
246
- if (err instanceof EvolutionIntegrityError) {
247
- printResult(io, fail('evolution.evaluate', err.code, err.message, { findings: err.findings }, [
248
- 'Re-shape per spec §6: evaluator and skeptic MUST be separate from the author; the score delta MUST be >= score_delta_min for keep.'
249
- ]), options.json);
250
- process.exitCode = 1;
251
- return;
252
- }
253
- printResult(io, fail('evolution.evaluate', 'EVOLUTION_EVALUATE_FAILED', getErrorMessage(err), { proposalId: options.proposal }, ['Verify the proposal id and the evaluator / skeptic ids.']), options.json);
254
- process.exitCode = 1;
255
- }
256
- });
257
- // peaks evolution mark-keep — explicit user confirmation.
258
- addJsonOption(evolution
259
- .command('mark-keep')
260
- .description('M4: explicit user-confirmed `keep` verdict. Requires --user-confirmation <ptr> and a score_delta >= score_delta_min (AC-11/AC-15).')
261
- .requiredOption('--proposal <id>', 'proposal id')
262
- .option('--user-confirmation <ptr>', 'pointer to the user choice record (AC-15) — omit to surface the EVOLUTION_MISSING_USER_CONFIRMATION service-layer error')
263
- .option('--project <path>', 'project root (default: cwd)')).action((options) => {
264
- try {
265
- const projectRoot = options.project ?? findProjectRoot(process.cwd()) ?? process.cwd();
266
- if (!existsSync(join(projectRoot, '.peaks'))) {
267
- mkdirSync(join(projectRoot, '.peaks'), { recursive: true });
268
- }
269
- const db = openStateDb(join(projectRoot, '.peaks', 'state.db'));
270
- try {
271
- const svc = new EvolutionService(db);
272
- const updated = svc.markVerdict(options.proposal, 'keep', options.userConfirmation);
273
- if (!updated) {
274
- printResult(io, fail('evolution.mark-keep', 'EVOLUTION_PROPOSAL_NOT_FOUND', `proposal '${options.proposal}' not found`, { proposalId: options.proposal }, ['Verify the proposal id.']), options.json);
275
- process.exitCode = 1;
276
- return;
277
- }
278
- printResult(io, ok('evolution.mark-keep', {
279
- proposalId: updated.id,
280
- verdict: updated.verdict,
281
- user_confirmation_pointer: updated.user_confirmation_pointer ?? null,
282
- score_delta: updated.proposal.score_delta,
283
- score_delta_min: updated.proposal.score_delta_min
284
- }, [], []), options.json);
285
- }
286
- finally {
287
- db.close();
288
- }
289
- }
290
- catch (err) {
291
- if (err instanceof EvolutionIntegrityError) {
292
- printResult(io, fail('evolution.mark-keep', err.code, err.message, { findings: err.findings }, [
293
- 'Re-shape the proposal or the score so score_delta >= score_delta_min.'
294
- ]), options.json);
295
- process.exitCode = 1;
296
- return;
297
- }
298
- printResult(io, fail('evolution.mark-keep', 'EVOLUTION_MARK_KEEP_FAILED', getErrorMessage(err), { proposalId: options.proposal }, ['Verify the proposal id.']), options.json);
299
- process.exitCode = 1;
300
- }
301
- });
302
- // peaks evolution revert
303
- addJsonOption(evolution
304
- .command('revert')
305
- .description('M4: revert a proposal (universal recovery; spec §6.1 #8). Always allowed; the user may supply --user-confirmation for audit.')
306
- .requiredOption('--proposal <id>', 'proposal id')
307
- .option('--user-confirmation <ptr>', 'optional pointer to the user choice record')
308
- .option('--project <path>', 'project root (default: cwd)')).action((options) => {
309
- try {
310
- const projectRoot = options.project ?? findProjectRoot(process.cwd()) ?? process.cwd();
311
- if (!existsSync(join(projectRoot, '.peaks'))) {
312
- mkdirSync(join(projectRoot, '.peaks'), { recursive: true });
313
- }
314
- const db = openStateDb(join(projectRoot, '.peaks', 'state.db'));
315
- try {
316
- const svc = new EvolutionService(db);
317
- const updated = svc.revert(options.proposal, options.userConfirmation);
318
- if (!updated) {
319
- printResult(io, fail('evolution.revert', 'EVOLUTION_PROPOSAL_NOT_FOUND', `proposal '${options.proposal}' not found`, { proposalId: options.proposal }, ['Verify the proposal id.']), options.json);
320
- process.exitCode = 1;
321
- return;
322
- }
323
- printResult(io, ok('evolution.revert', {
324
- proposalId: updated.id,
325
- verdict: updated.verdict,
326
- user_confirmation_pointer: updated.user_confirmation_pointer ?? null
327
- }, [], []), options.json);
328
- }
329
- finally {
330
- db.close();
331
- }
332
- }
333
- catch (err) {
334
- printResult(io, fail('evolution.revert', 'EVOLUTION_REVERT_FAILED', getErrorMessage(err), { proposalId: options.proposal }, ['Verify the proposal id.']), options.json);
335
- process.exitCode = 1;
336
- }
337
- });
338
- // peaks evolution status
339
- addJsonOption(evolution
340
- .command('status')
341
- .description('M4: read the status snapshot for a target (counts of evaluations by verdict + latest evaluation id).')
342
- .requiredOption('--target <kind:id>', "target asset, e.g. 'loop:loop-onboarding-research'")
343
- .option('--project <path>', 'project root (default: cwd)')).action((options) => {
344
- try {
345
- const target = parseTargetFlag(options.target);
346
- if (!target) {
347
- printResult(io, fail('evolution.status', 'EVOLUTION_INVALID_TARGET', `--target must be '<kind>:<id>' where kind ∈ {${EVOLUTION_TARGET_KINDS.join(',')}}`, { target: options.target }, ['Pass --target loop:<loop-id> or --target bee:<bee-id>.']), options.json);
348
- process.exitCode = 1;
349
- return;
350
- }
351
- const projectRoot = options.project ?? findProjectRoot(process.cwd()) ?? process.cwd();
352
- if (!existsSync(join(projectRoot, '.peaks'))) {
353
- mkdirSync(join(projectRoot, '.peaks'), { recursive: true });
354
- }
355
- const db = openStateDb(join(projectRoot, '.peaks', 'state.db'));
356
- try {
357
- const svc = new EvolutionService(db);
358
- const status = svc.status({
359
- target_kind: target.kind,
360
- target_release_id: target.id
361
- });
362
- printResult(io, ok('evolution.status', status, [], []), options.json);
363
- }
364
- finally {
365
- db.close();
366
- }
367
- }
368
- catch (err) {
369
- printResult(io, fail('evolution.status', 'EVOLUTION_STATUS_FAILED', getErrorMessage(err), { target: options.target }, ['Verify the target flag.']), options.json);
370
- process.exitCode = 1;
371
- }
372
- });
47
+ registerProposeCommand(evolution, io);
48
+ registerEvaluateCommand(evolution, io);
49
+ registerMarkKeepCommand(evolution, io);
50
+ registerRevertCommand(evolution, io);
51
+ registerStatusCommand(evolution, io);
373
52
  // Suppress unused-var warnings for the dirname import; it is
374
53
  // reserved for the M5 path-pointer materialization.
375
54
  void dirname;
376
55
  }
377
- /**
378
- * Helper: collect repeatable `--risk-tag` values into an array.
379
- * Commander's `collect` is not always available; we read
380
- * `previous` from the default value.
381
- */
382
- function collectRepeatable(value, previous) {
383
- if (Array.isArray(previous))
384
- return [...previous, value];
385
- return [value];
386
- }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * `peaks evolution evaluate` — M4 / spec §6 / §7.4.
3
+ * Split out of `evolution-commands.ts`: the option surface, the
4
+ * envelope keys, the error codes and the exit-code sites are
5
+ * unchanged.
6
+ */
7
+ import type { Command } from 'commander';
8
+ import { type ProgramIO } from '../cli-helpers.js';
9
+ /** The `--options` Commander hands to the `evaluate` action. */
10
+ export interface EvaluateOptions {
11
+ proposal: string;
12
+ evaluator: string;
13
+ skeptic: string;
14
+ evaluatorScore: string;
15
+ refuteParagraph?: string;
16
+ riskTag: string[];
17
+ briefPointer?: string;
18
+ project?: string;
19
+ json?: boolean;
20
+ }
21
+ /** The `evaluate` action body. */
22
+ export declare function runEvaluate(options: EvaluateOptions, io: ProgramIO): Promise<void>;
23
+ /** Register `peaks evolution evaluate` on the `evolution` parent. */
24
+ export declare function registerEvaluateCommand(evolution: Command, io: ProgramIO): void;