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,45 @@
1
+ // src/cli/commands/asset-command-shared.ts
2
+ //
3
+ // The flag parsers, project/db bootstrap and service wiring the three
4
+ // `peaks asset` verbs share. Split out of `asset-commands.ts` so each verb can
5
+ // live in its own module without repeating the same twelve-line construction.
6
+ import { existsSync, mkdirSync } from 'node:fs';
7
+ import { join } from 'node:path';
8
+ import { openStateDb } from '../../services/skillhub/sqlite-store.js';
9
+ import { CrystallizationService, CRYSTALLIZATION_TRIGGERS } from '../../services/crystallization/index.js';
10
+ import { LoopReleaseSchema } from '../../services/loop/loop-release-types.js';
11
+ import { insertLoopRelease } from '../../services/loop/loop-release-store.js';
12
+ import { insertLoopBeeRelation } from '../../services/loop/loop-bee-relation-store.js';
13
+ import { LoopBeeRelationSchema } from '../../services/loop/loop-bee-relation-types.js';
14
+ import { findProjectRoot } from '../../services/config/config-safety.js';
15
+ export function collectRepeatable(value, previous) {
16
+ if (Array.isArray(previous))
17
+ return [...previous, value];
18
+ return [value];
19
+ }
20
+ export const DISPOSE_MODES = ['trace_only', 'retain', 'destroy'];
21
+ export function parseTriggerFlag(raw) {
22
+ return CRYSTALLIZATION_TRIGGERS.includes(raw)
23
+ ? raw
24
+ : null;
25
+ }
26
+ /** `--project`, else the nearest project root above cwd, else cwd. */
27
+ export function resolveAssetProjectRoot(project) {
28
+ return project ?? findProjectRoot(process.cwd()) ?? process.cwd();
29
+ }
30
+ /** Ensure `<projectRoot>/.peaks/` exists and open its `state.db`. */
31
+ export function openAssetDb(projectRoot) {
32
+ if (!existsSync(join(projectRoot, '.peaks'))) {
33
+ mkdirSync(join(projectRoot, '.peaks'), { recursive: true });
34
+ }
35
+ return openStateDb(join(projectRoot, '.peaks', 'state.db'));
36
+ }
37
+ /** The CrystallizationService wiring every asset verb repeats, built once. */
38
+ export function createCrystallizationService(db) {
39
+ return new CrystallizationService(db, {
40
+ loopReleaseSchema: LoopReleaseSchema,
41
+ loopBeeRelationSchema: LoopBeeRelationSchema,
42
+ insertLoopRelease: insertLoopRelease,
43
+ insertLoopBeeRelation: insertLoopBeeRelation
44
+ });
45
+ }
@@ -39,7 +39,12 @@
39
39
  * Defense in depth: the CrystallizationService enforces the
40
40
  * pre-run gate and the brief-section guard; the CLI only
41
41
  * translates flags into the service payload.
42
+ *
43
+ * The verb implementations live beside this file, one module per verb:
44
+ * `asset-crystallize-command.ts`, `asset-dispose-command.ts`,
45
+ * `asset-status-command.ts`, with their shared bootstrap in
46
+ * `asset-command-shared.ts`.
42
47
  */
43
48
  import type { Command } from 'commander';
44
- import { type ProgramIO } from '../cli-helpers.js';
49
+ import type { ProgramIO } from '../cli-helpers.js';
45
50
  export declare function registerAssetCommands(program: Command, io: ProgramIO): void;
@@ -39,29 +39,15 @@
39
39
  * Defense in depth: the CrystallizationService enforces the
40
40
  * pre-run gate and the brief-section guard; the CLI only
41
41
  * translates flags into the service payload.
42
+ *
43
+ * The verb implementations live beside this file, one module per verb:
44
+ * `asset-crystallize-command.ts`, `asset-dispose-command.ts`,
45
+ * `asset-status-command.ts`, with their shared bootstrap in
46
+ * `asset-command-shared.ts`.
42
47
  */
43
- import { existsSync, mkdirSync } from 'node:fs';
44
- import { join } from 'node:path';
45
- import { openStateDb } from '../../services/skillhub/sqlite-store.js';
46
- import { CrystallizationService, CrystallizationIntegrityError, BriefSectionError, safeRenderRecommendationPayload, CRYSTALLIZATION_TRIGGERS, parseEvidenceBrief } from '../../services/crystallization/index.js';
47
- import { LoopReleaseSchema } from '../../services/loop/loop-release-types.js';
48
- import { insertLoopRelease } from '../../services/loop/loop-release-store.js';
49
- import { insertLoopBeeRelation } from '../../services/loop/loop-bee-relation-store.js';
50
- import { LoopBeeRelationSchema } from '../../services/loop/loop-bee-relation-types.js';
51
- import { findProjectRoot } from '../../services/config/config-safety.js';
52
- import { addJsonOption, getErrorMessage, printResult } from '../cli-helpers.js';
53
- import { fail, ok } from 'peaks-loop-shared/result';
54
- function collectRepeatable(value, previous) {
55
- if (Array.isArray(previous))
56
- return [...previous, value];
57
- return [value];
58
- }
59
- const DISPOSE_MODES = ['trace_only', 'retain', 'destroy'];
60
- function parseTriggerFlag(raw) {
61
- return CRYSTALLIZATION_TRIGGERS.includes(raw)
62
- ? raw
63
- : null;
64
- }
48
+ import { registerAssetCrystallizeCommand } from './asset-crystallize-command.js';
49
+ import { registerAssetDisposeCommand } from './asset-dispose-command.js';
50
+ import { registerAssetStatusCommand } from './asset-status-command.js';
65
51
  export function registerAssetCommands(program, io) {
66
52
  // Reuse the existing `asset` parent if one is registered; the
67
53
  // add-a-new-subcommand-check-for-existing-top-level-first rule
@@ -71,354 +57,7 @@ export function registerAssetCommands(program, io) {
71
57
  program
72
58
  .command('asset')
73
59
  .description('M5: cross-asset crystallization surface (crystallize / dispose / status — spec §5 / §7.4)');
74
- // ---------- peaks asset crystallize ----------
75
- addJsonOption(asset
76
- .command('crystallize')
77
- .description('M5: persist a new loop_release + main_bee_release + loop_bee_relation + crystallization_event in a single transaction. Enforces the pre-run gate (task_status=completed AND gates_passed=true AND evidence_collected=true; AC-4 / RL-2) and the brief-section guard (all 4 sections required; AC-15 / RL-7).')
78
- .requiredOption('--from-task <id>', "the candidate task id (must be 'completed' with gates_passed + evidence_collected)")
79
- .requiredOption('--loop-id <id>', 'kebab-case loop id, e.g. loop-onboarding-research')
80
- .requiredOption('--loop-name <name>', 'NL display name')
81
- .requiredOption('--loop-scenario <text>', 'long-form scenario text (what real problem the loop solves)')
82
- .requiredOption('--loop-trigger-policy <text>', 'trigger policy (NL intent match)')
83
- .requiredOption('--loop-interaction-policy <text>', 'interaction policy (Human-NL-Choice-Only is the default)')
84
- .requiredOption('--loop-feedback-policy <text>', 'feedback policy (what feedback enters long-term memory)')
85
- .requiredOption('--loop-evolution-policy <text>', 'evolution policy (Darwin-style ratchet rules)')
86
- .requiredOption('--loop-success-criterion <text>', 'declarative success criterion (repeatable)', collectRepeatable, [])
87
- .requiredOption('--loop-evaluator-policy <text>', 'evaluator policy line (repeatable)', collectRepeatable, [])
88
- .requiredOption('--loop-version <semver>', 'loop version (e.g. 0.1.0)')
89
- .requiredOption('--bee-name <name>', 'main bee name (kebab-case)')
90
- .requiredOption('--bee-version <semver>', 'bee version (e.g. 0.1.0)')
91
- .requiredOption('--bee-description <text>', 'main bee description (manifest-level)')
92
- .requiredOption('--bee-relation-reason <text>', 'NL reason for the main bee relation')
93
- .requiredOption('--brief-what-happened <text>', 'brief section: what_happened (1-2 sentence factual account)')
94
- .requiredOption('--brief-why-it-matters <text>', 'brief section: why_it_matters (1-2 sentence explanation)')
95
- .requiredOption('--brief-what-learned <text>', 'brief section: what_learned (1-2 sentence learning)')
96
- .requiredOption('--brief-what-action <text>', 'brief section: what_action (1 sentence recommended action)')
97
- .option('--brief-bullet <bullet>', 'structured bullet supporting the brief (repeatable)', collectRepeatable, [])
98
- .option('--source-trace <id>', 'workflow trace id backing the brief (repeatable)', collectRepeatable, [])
99
- .option('--evaluator-summary <text>', 'evaluator one-liner (independent scorers)', '')
100
- .option('--user-decision-summary <text>', 'user decision summary (NL)', '')
101
- .option('--bee-intent-raw <text>', 'optional bee user_intent_raw')
102
- .option('--bee-parent-version <semver>', 'optional parent_version')
103
- .option('--bee-changelog <text>', 'optional changelog')
104
- .option('--trigger <name>', `crystallization trigger (one of: ${CRYSTALLIZATION_TRIGGERS.join('|')})`, 'user_explicit')
105
- .option('--project <path>', 'project root (default: cwd)')).action((options) => {
106
- try {
107
- const trigger = parseTriggerFlag(options.trigger);
108
- if (!trigger) {
109
- printResult(io, fail('asset.crystallize', 'ASSET_INVALID_TRIGGER', `--trigger must be one of: ${CRYSTALLIZATION_TRIGGERS.join('|')}`, { trigger: options.trigger }, ['Pass a valid --trigger value.']), options.json);
110
- process.exitCode = 1;
111
- return;
112
- }
113
- // Build the brief from CLI flags and re-validate it through
114
- // the canonical schema (so a partial brief is caught BEFORE
115
- // any DB side effects fire).
116
- const candidateBrief = {
117
- what_happened: options.briefWhatHappened,
118
- why_it_matters: options.briefWhyItMatters,
119
- what_learned: options.briefWhatLearned,
120
- what_action: options.briefWhatAction
121
- };
122
- let brief;
123
- try {
124
- brief = parseEvidenceBrief(candidateBrief);
125
- }
126
- catch (err) {
127
- if (err instanceof BriefSectionError) {
128
- const briefErr = err;
129
- printResult(io, fail('asset.crystallize', 'MISSING_BRIEF_SECTION', briefErr.message, { findings: [...briefErr.findings], flagsProvided: Object.keys(candidateBrief) }, [
130
- 'Pass ALL FOUR brief sections via --brief-what-happened / --brief-why-it-matters / --brief-what-learned / --brief-what-action.',
131
- 'The CLI refuses to render a recommendation without a complete 4-section brief (spec §4.7 / RL-7).'
132
- ]), options.json);
133
- process.exitCode = 1;
134
- return;
135
- }
136
- throw err;
137
- }
138
- // Render the recommendation envelope up-front so the CLI can
139
- // refuse to write if any brief section is missing. This is
140
- // the same code path the crystallization service uses.
141
- const recommendation = safeRenderRecommendationPayload({
142
- brief,
143
- bullets: options.briefBullet ?? [],
144
- source_trace_pointers: options.sourceTrace ?? [],
145
- evaluator_summary: {
146
- one_liner: options.evaluatorSummary ?? '',
147
- risk_tags: []
148
- }
149
- });
150
- if (!recommendation.ok) {
151
- printResult(io, fail('asset.crystallize', recommendation.code ?? 'MISSING_BRIEF_SECTION', 'recommendation envelope rejected — brief is missing one of its 4 sections', { findings: recommendation.findings, briefProvided: candidateBrief }, [
152
- 'Pass ALL FOUR brief sections via the matching CLI flags.',
153
- 'Counts in --brief-bullet may support the brief; they do NOT replace it (spec §4.7 / RL-7).'
154
- ]), options.json);
155
- process.exitCode = 1;
156
- return;
157
- }
158
- const projectRoot = options.project ?? findProjectRoot(process.cwd()) ?? process.cwd();
159
- if (!existsSync(join(projectRoot, '.peaks'))) {
160
- mkdirSync(join(projectRoot, '.peaks'), { recursive: true });
161
- }
162
- const db = openStateDb(join(projectRoot, '.peaks', 'state.db'));
163
- try {
164
- const svc = new CrystallizationService(db, {
165
- loopReleaseSchema: LoopReleaseSchema,
166
- loopBeeRelationSchema: LoopBeeRelationSchema,
167
- insertLoopRelease: insertLoopRelease,
168
- insertLoopBeeRelation: insertLoopBeeRelation
169
- });
170
- const result = svc.crystallize({
171
- task: {
172
- task_id: options.fromTask,
173
- task_status: 'completed',
174
- gates_passed: true,
175
- evidence_collected: true
176
- },
177
- loop_input: {
178
- id: options.loopId,
179
- name: options.loopName,
180
- scenario: options.loopScenario,
181
- trigger_policy: options.loopTriggerPolicy,
182
- success_criteria: options.loopSuccessCriterion,
183
- interaction_policy: options.loopInteractionPolicy,
184
- feedback_policy: options.loopFeedbackPolicy,
185
- evolution_policy: options.loopEvolutionPolicy,
186
- evaluator_policy: options.loopEvaluatorPolicy,
187
- linked_bees: [],
188
- run_history: [],
189
- crystallization_evidence: [],
190
- lifecycle_status: 'candidate',
191
- version: options.loopVersion
192
- },
193
- bee_input: {
194
- bee_name: options.beeName,
195
- version: options.beeVersion,
196
- description: options.beeDescription,
197
- ...(options.beeIntentRaw !== undefined
198
- ? { user_intent_raw: options.beeIntentRaw }
199
- : {}),
200
- ...(options.beeParentVersion !== undefined
201
- ? { parent_version: options.beeParentVersion }
202
- : {}),
203
- ...(options.beeChangelog !== undefined ? { changelog: options.beeChangelog } : {})
204
- },
205
- bee_relation_reason: options.beeRelationReason,
206
- evidence_brief: brief,
207
- evidence_bullets: options.briefBullet ?? [],
208
- source_trace_pointers: options.sourceTrace ?? [],
209
- ...(options.evaluatorSummary !== undefined
210
- ? { evaluator_summary: options.evaluatorSummary }
211
- : {}),
212
- ...(options.userDecisionSummary !== undefined
213
- ? { user_decision_summary: options.userDecisionSummary }
214
- : {}),
215
- trigger
216
- });
217
- printResult(io, ok('asset.crystallize', {
218
- recommendation: {
219
- brief: recommendation.payload.brief,
220
- bullets: recommendation.payload.bullets,
221
- source_trace_pointers: recommendation.payload.source_trace_pointers,
222
- evaluator_summary: recommendation.payload.evaluator_summary
223
- },
224
- result,
225
- nextActions: [
226
- `Run \`peaks loop show --loop ${result.loop_release_id}\` to inspect the new loop_release.`,
227
- `Run \`peaks asset dispose --crystallization-event ${result.crystallization_event_id} --mode trace_only\` to retire the event without touching the asset.`
228
- ]
229
- }, [], [
230
- 'The CLI has surfaced a complete 4-section brief; the LLM should now drive the user through AskUserQuestion picks (spec §5.3).'
231
- ]), options.json);
232
- }
233
- finally {
234
- db.close();
235
- }
236
- }
237
- catch (err) {
238
- if (err instanceof CrystallizationIntegrityError) {
239
- const integrityErr = err;
240
- printResult(io, fail('asset.crystallize', integrityErr.code, integrityErr.message, { findings: [...integrityErr.findings] }, [
241
- integrityErr.code === 'CRYSTALLIZATION_PRE_RUN'
242
- ? 'Re-shape the candidate task so task_status=completed AND gates_passed=true AND evidence_collected=true (spec §5 / RL-2).'
243
- : integrityErr.code === 'MISSING_BRIEF_SECTION'
244
- ? 'Pass ALL FOUR brief sections (RL-7); the CLI refuses to render a recommendation without them.'
245
- : 'Inspect the failure findings and re-shape the payload.'
246
- ]), options.json);
247
- process.exitCode = 1;
248
- return;
249
- }
250
- if (err instanceof BriefSectionError) {
251
- const briefErr = err;
252
- printResult(io, fail('asset.crystallize', 'MISSING_BRIEF_SECTION', briefErr.message, { findings: [...briefErr.findings] }, ['Pass all 4 brief sections (RL-7).']), options.json);
253
- process.exitCode = 1;
254
- return;
255
- }
256
- throw err;
257
- }
258
- });
259
- // ---------- peaks asset dispose ----------
260
- addJsonOption(asset
261
- .command('dispose')
262
- .description('M5: dispose a crystallization event. mode=trace_only retires the event but keeps the trace; mode=retain keeps both; mode=destroy retires the event and marks the created/updated assets retired.')
263
- .requiredOption('--crystallization-event <id>', 'the crystallization event id (returned by `peaks asset crystallize`)')
264
- .requiredOption(`--mode <mode>`, `dispose mode (one of: ${DISPOSE_MODES.join('|')}; default: trace_only)`, 'trace_only')
265
- .option('--project <path>', 'project root (default: cwd)')).action((options) => {
266
- try {
267
- if (!DISPOSE_MODES.includes(options.mode)) {
268
- printResult(io, fail('asset.dispose', 'ASSET_INVALID_MODE', `--mode must be one of: ${DISPOSE_MODES.join('|')}`, { mode: options.mode }, ['Pass --mode trace_only / retain / destroy.']), options.json);
269
- process.exitCode = 1;
270
- return;
271
- }
272
- const mode = options.mode;
273
- const projectRoot = options.project ?? findProjectRoot(process.cwd()) ?? process.cwd();
274
- if (!existsSync(join(projectRoot, '.peaks'))) {
275
- mkdirSync(join(projectRoot, '.peaks'), { recursive: true });
276
- }
277
- const db = openStateDb(join(projectRoot, '.peaks', 'state.db'));
278
- try {
279
- const svc = new CrystallizationService(db, {
280
- loopReleaseSchema: LoopReleaseSchema,
281
- loopBeeRelationSchema: LoopBeeRelationSchema,
282
- insertLoopRelease: insertLoopRelease,
283
- insertLoopBeeRelation: insertLoopBeeRelation
284
- });
285
- const existing = svc.read(options.crystallizationEvent);
286
- if (!existing) {
287
- printResult(io, fail('asset.dispose', 'ASSET_EVENT_NOT_FOUND', `crystallization event '${options.crystallizationEvent}' not found`, { eventId: options.crystallizationEvent }, ['Verify the event id.']), options.json);
288
- process.exitCode = 1;
289
- return;
290
- }
291
- // trace_only → retire the event row; the source traces are
292
- // untouched (workflow traces are immutable per spec §4.3).
293
- // retain → no DB change; the user wants to keep the event
294
- // as historical evidence.
295
- // destroy → retire the event + retire the created/updated
296
- // assets (no asset delete; retirement only).
297
- if (mode === 'retain') {
298
- printResult(io, ok('asset.dispose', {
299
- crystallization_event_id: existing.id,
300
- mode,
301
- lifecycle_status: existing.lifecycle_status,
302
- note: 'no DB change; event retained as-is'
303
- }, [], [
304
- 'Run `peaks asset status --loop <id>` to inspect the lifecycle state of the linked assets.'
305
- ]), options.json);
306
- return;
307
- }
308
- const updated = svc.updateStatus(existing.id, 'retired');
309
- if (mode === 'destroy' && updated) {
310
- // Retire the created/updated loop_release rows as well.
311
- // We do NOT delete rows — retirement is a status flip
312
- // (spec §5.6).
313
- const retireLoop = db.prepare("UPDATE loop_release SET lifecycle_status = 'retired' WHERE id IN (?, ?)");
314
- const ids = [
315
- updated.created_loop_release_id ?? null,
316
- updated.updated_loop_release_id ?? null
317
- ].filter((x) => x !== null);
318
- for (const id of ids) {
319
- retireLoop.run(id, id);
320
- }
321
- }
322
- printResult(io, ok('asset.dispose', {
323
- crystallization_event_id: existing.id,
324
- mode,
325
- lifecycle_status: updated?.lifecycle_status ?? 'retired',
326
- retired_assets: mode === 'destroy' ? 'loop_release retired (no rows deleted)' : 'none',
327
- nextActions: ['Run `peaks asset status` to confirm the lifecycle transition.']
328
- }, [], []), options.json);
329
- }
330
- finally {
331
- db.close();
332
- }
333
- }
334
- catch (err) {
335
- printResult(io, fail('asset.dispose', 'ASSET_DISPOSE_FAILED', getErrorMessage(err), { eventId: options.crystallizationEvent }, ['Verify the event id and --mode flag.']), options.json);
336
- process.exitCode = 1;
337
- }
338
- });
339
- // ---------- peaks asset status ----------
340
- addJsonOption(asset
341
- .command('status')
342
- .description('M5: list loop + bee lifecycle state. With --loop, returns the loop + all linked bee_releases + all crystallization events referencing them.')
343
- .option('--loop <id>', 'filter by loop_release id')
344
- .option('--bee <name>', 'filter by bee_name')
345
- .option('--project <path>', 'project root (default: cwd)')).action((options) => {
346
- try {
347
- const projectRoot = options.project ?? findProjectRoot(process.cwd()) ?? process.cwd();
348
- if (!existsSync(join(projectRoot, '.peaks'))) {
349
- mkdirSync(join(projectRoot, '.peaks'), { recursive: true });
350
- }
351
- const db = openStateDb(join(projectRoot, '.peaks', 'state.db'));
352
- try {
353
- const svc = new CrystallizationService(db, {
354
- loopReleaseSchema: LoopReleaseSchema,
355
- loopBeeRelationSchema: LoopBeeRelationSchema,
356
- insertLoopRelease: insertLoopRelease,
357
- insertLoopBeeRelation: insertLoopBeeRelation
358
- });
359
- let events = [];
360
- if (options.loop) {
361
- events = [
362
- ...svc.list({ created_loop_release_id: options.loop }),
363
- ...svc.list({ updated_loop_release_id: options.loop })
364
- ];
365
- // Deduplicate by id.
366
- const seen = new Set();
367
- events = events.filter((e) => {
368
- const key = e?.id ?? '';
369
- if (!key || seen.has(key))
370
- return false;
371
- seen.add(key);
372
- return true;
373
- });
374
- }
375
- else {
376
- events = svc.list();
377
- }
378
- // Companion queries: loop lifecycle counts + bee lifecycle
379
- // counts. We compute from the DB so the CLI is the single
380
- // source of truth.
381
- const loopCounts = db
382
- .prepare('SELECT lifecycle_status, COUNT(*) AS n FROM loop_release GROUP BY lifecycle_status')
383
- .all().reduce((acc, r) => {
384
- acc[r.lifecycle_status] = r.n;
385
- return acc;
386
- }, {});
387
- const beeCounts = db
388
- .prepare('SELECT bee_name, COUNT(*) AS n FROM bee_release GROUP BY bee_name ORDER BY bee_name ASC')
389
- .all().filter((r) => options.bee === undefined || r.bee_name === options.bee);
390
- printResult(io, ok('asset.status', {
391
- filters: {
392
- ...(options.loop !== undefined ? { loop: options.loop } : {}),
393
- ...(options.bee !== undefined ? { bee: options.bee } : {})
394
- },
395
- crystallization_events: events.length,
396
- events: events.map((e) => ({
397
- id: e?.id,
398
- trigger: e?.trigger,
399
- lifecycle_status: e?.lifecycle_status,
400
- created_loop_release_id: e?.created_loop_release_id,
401
- created_bee_release_id: e?.created_bee_release_id,
402
- updated_loop_release_id: e?.updated_loop_release_id,
403
- updated_bee_release_id: e?.updated_bee_release_id,
404
- created_at: e?.created_at
405
- })),
406
- loop_release_counts_by_lifecycle: loopCounts,
407
- bee_release_counts_by_name: beeCounts,
408
- nextActions: [
409
- options.loop
410
- ? `Run \`peaks loop show --loop ${options.loop}\` for the loop detail view.`
411
- : "Pass --loop <id> to drill into a specific loop's crystallization history."
412
- ]
413
- }, [], []), options.json);
414
- }
415
- finally {
416
- db.close();
417
- }
418
- }
419
- catch (err) {
420
- printResult(io, fail('asset.status', 'ASSET_STATUS_FAILED', getErrorMessage(err), { loop: options.loop, bee: options.bee }, ['Verify the loop / bee identifiers.']), options.json);
421
- process.exitCode = 1;
422
- }
423
- });
60
+ registerAssetCrystallizeCommand(asset, io);
61
+ registerAssetDisposeCommand(asset, io);
62
+ registerAssetStatusCommand(asset, io);
424
63
  }
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ import { type ProgramIO } from '../cli-helpers.js';
3
+ export declare function registerAssetCrystallizeCommand(asset: Command, io: ProgramIO): void;
@@ -0,0 +1,60 @@
1
+ // src/cli/commands/asset-crystallize-command.ts
2
+ //
3
+ // The commander registration for `peaks asset crystallize` — the parent
4
+ // command, its 28 options in their original order, and the action binding.
5
+ // Split out of `asset-commands.ts`; the verb name, every option's flag and
6
+ // description, and the envelope shape are unchanged. The action body lives in
7
+ // `asset-crystallize-runner.ts` and the payload builders in
8
+ // `asset-crystallize-payload.ts`.
9
+ import { CRYSTALLIZATION_TRIGGERS } from '../../services/crystallization/index.js';
10
+ import { addJsonOption } from '../cli-helpers.js';
11
+ import { collectRepeatable } from './asset-command-shared.js';
12
+ import { runAssetCrystallize } from './asset-crystallize-runner.js';
13
+ const CRYSTALLIZE_DESCRIPTION = 'M5: persist a new loop_release + main_bee_release + loop_bee_relation + crystallization_event in a single transaction. Enforces the pre-run gate (task_status=completed AND gates_passed=true AND evidence_collected=true; AC-4 / RL-2) and the brief-section guard (all 4 sections required; AC-15 / RL-7).';
14
+ /** `--from-task` … `--loop-version`: the task + loop_release half. */
15
+ function addLoopPolicyOptions(cmd) {
16
+ return cmd
17
+ .requiredOption('--from-task <id>', "the candidate task id (must be 'completed' with gates_passed + evidence_collected)")
18
+ .requiredOption('--loop-id <id>', 'kebab-case loop id, e.g. loop-onboarding-research')
19
+ .requiredOption('--loop-name <name>', 'NL display name')
20
+ .requiredOption('--loop-scenario <text>', 'long-form scenario text (what real problem the loop solves)')
21
+ .requiredOption('--loop-trigger-policy <text>', 'trigger policy (NL intent match)')
22
+ .requiredOption('--loop-interaction-policy <text>', 'interaction policy (Human-NL-Choice-Only is the default)')
23
+ .requiredOption('--loop-feedback-policy <text>', 'feedback policy (what feedback enters long-term memory)')
24
+ .requiredOption('--loop-evolution-policy <text>', 'evolution policy (Darwin-style ratchet rules)')
25
+ .requiredOption('--loop-success-criterion <text>', 'declarative success criterion (repeatable)', collectRepeatable, [])
26
+ .requiredOption('--loop-evaluator-policy <text>', 'evaluator policy line (repeatable)', collectRepeatable, [])
27
+ .requiredOption('--loop-version <semver>', 'loop version (e.g. 0.1.0)');
28
+ }
29
+ /** `--bee-name` … `--brief-what-action`: the main bee and the 4 brief sections. */
30
+ function addBeeAndBriefOptions(cmd) {
31
+ return cmd
32
+ .requiredOption('--bee-name <name>', 'main bee name (kebab-case)')
33
+ .requiredOption('--bee-version <semver>', 'bee version (e.g. 0.1.0)')
34
+ .requiredOption('--bee-description <text>', 'main bee description (manifest-level)')
35
+ .requiredOption('--bee-relation-reason <text>', 'NL reason for the main bee relation')
36
+ .requiredOption('--brief-what-happened <text>', 'brief section: what_happened (1-2 sentence factual account)')
37
+ .requiredOption('--brief-why-it-matters <text>', 'brief section: why_it_matters (1-2 sentence explanation)')
38
+ .requiredOption('--brief-what-learned <text>', 'brief section: what_learned (1-2 sentence learning)')
39
+ .requiredOption('--brief-what-action <text>', 'brief section: what_action (1 sentence recommended action)');
40
+ }
41
+ /** `--brief-bullet` … `--project`: the repeatable extras and the trigger. */
42
+ function addCrystallizeExtras(cmd) {
43
+ return cmd
44
+ .option('--brief-bullet <bullet>', 'structured bullet supporting the brief (repeatable)', collectRepeatable, [])
45
+ .option('--source-trace <id>', 'workflow trace id backing the brief (repeatable)', collectRepeatable, [])
46
+ .option('--evaluator-summary <text>', 'evaluator one-liner (independent scorers)', '')
47
+ .option('--user-decision-summary <text>', 'user decision summary (NL)', '')
48
+ .option('--bee-intent-raw <text>', 'optional bee user_intent_raw')
49
+ .option('--bee-parent-version <semver>', 'optional parent_version')
50
+ .option('--bee-changelog <text>', 'optional changelog')
51
+ .option('--trigger <name>', `crystallization trigger (one of: ${CRYSTALLIZATION_TRIGGERS.join('|')})`, 'user_explicit')
52
+ .option('--project <path>', 'project root (default: cwd)');
53
+ }
54
+ export function registerAssetCrystallizeCommand(asset, io) {
55
+ const cmd = asset.command('crystallize').description(CRYSTALLIZE_DESCRIPTION);
56
+ addLoopPolicyOptions(cmd);
57
+ addBeeAndBriefOptions(cmd);
58
+ addCrystallizeExtras(cmd);
59
+ addJsonOption(cmd).action((options) => runAssetCrystallize(io, options));
60
+ }
@@ -0,0 +1,47 @@
1
+ import type { CrystallizationService, CrystallizationTrigger, EvidenceBrief } from '../../services/crystallization/index.js';
2
+ import { type ProgramIO } from '../cli-helpers.js';
3
+ export type CrystallizeOptions = {
4
+ fromTask: string;
5
+ loopId: string;
6
+ loopName: string;
7
+ loopScenario: string;
8
+ loopTriggerPolicy: string;
9
+ loopInteractionPolicy: string;
10
+ loopFeedbackPolicy: string;
11
+ loopEvolutionPolicy: string;
12
+ loopSuccessCriterion: string[];
13
+ loopEvaluatorPolicy: string[];
14
+ loopVersion: string;
15
+ beeName: string;
16
+ beeVersion: string;
17
+ beeDescription: string;
18
+ beeRelationReason: string;
19
+ briefWhatHappened: string;
20
+ briefWhyItMatters: string;
21
+ briefWhatLearned: string;
22
+ briefWhatAction: string;
23
+ briefBullet: string[];
24
+ sourceTrace: string[];
25
+ evaluatorSummary?: string;
26
+ userDecisionSummary?: string;
27
+ beeIntentRaw?: string;
28
+ beeParentVersion?: string;
29
+ beeChangelog?: string;
30
+ trigger: string;
31
+ project?: string;
32
+ json?: boolean;
33
+ };
34
+ /** The four brief sections as the caller supplied them. */
35
+ export declare function briefFromOptions(options: CrystallizeOptions): Record<string, string>;
36
+ export declare function buildCrystallizePayload(options: CrystallizeOptions, brief: EvidenceBrief, trigger: CrystallizationTrigger): Parameters<CrystallizationService['crystallize']>[0];
37
+ export declare function printCrystallizeResult(io: ProgramIO, recommendation: {
38
+ payload: {
39
+ brief: unknown;
40
+ bullets: unknown;
41
+ source_trace_pointers: unknown;
42
+ evaluator_summary: unknown;
43
+ };
44
+ }, result: {
45
+ loop_release_id: string;
46
+ crystallization_event_id: string;
47
+ }, json: boolean | undefined): void;
@@ -0,0 +1,85 @@
1
+ // src/cli/commands/asset-crystallize-payload.ts
2
+ //
3
+ // The `asset.crystallize` payload and success envelope: the options shape the
4
+ // verb's registration fills in, the three builders that turn it into the
5
+ // service argument, and the printer for a completed crystallization. Split out
6
+ // of `asset-crystallize-command.ts` so no single module carries both halves.
7
+ import { printResult } from '../cli-helpers.js';
8
+ import { ok } from 'peaks-loop-shared/result';
9
+ /** The four brief sections as the caller supplied them. */
10
+ export function briefFromOptions(options) {
11
+ return {
12
+ what_happened: options.briefWhatHappened,
13
+ why_it_matters: options.briefWhyItMatters,
14
+ what_learned: options.briefWhatLearned,
15
+ what_action: options.briefWhatAction
16
+ };
17
+ }
18
+ function buildLoopInput(options) {
19
+ return {
20
+ id: options.loopId,
21
+ name: options.loopName,
22
+ scenario: options.loopScenario,
23
+ trigger_policy: options.loopTriggerPolicy,
24
+ success_criteria: options.loopSuccessCriterion,
25
+ interaction_policy: options.loopInteractionPolicy,
26
+ feedback_policy: options.loopFeedbackPolicy,
27
+ evolution_policy: options.loopEvolutionPolicy,
28
+ evaluator_policy: options.loopEvaluatorPolicy,
29
+ linked_bees: [],
30
+ run_history: [],
31
+ crystallization_evidence: [],
32
+ lifecycle_status: 'candidate',
33
+ version: options.loopVersion
34
+ };
35
+ }
36
+ function buildBeeInput(options) {
37
+ return {
38
+ bee_name: options.beeName,
39
+ version: options.beeVersion,
40
+ description: options.beeDescription,
41
+ ...(options.beeIntentRaw !== undefined ? { user_intent_raw: options.beeIntentRaw } : {}),
42
+ ...(options.beeParentVersion !== undefined ? { parent_version: options.beeParentVersion } : {}),
43
+ ...(options.beeChangelog !== undefined ? { changelog: options.beeChangelog } : {})
44
+ };
45
+ }
46
+ export function buildCrystallizePayload(options, brief, trigger) {
47
+ return {
48
+ task: {
49
+ task_id: options.fromTask,
50
+ task_status: 'completed',
51
+ gates_passed: true,
52
+ evidence_collected: true
53
+ },
54
+ loop_input: buildLoopInput(options),
55
+ bee_input: buildBeeInput(options),
56
+ bee_relation_reason: options.beeRelationReason,
57
+ evidence_brief: brief,
58
+ evidence_bullets: options.briefBullet ?? [],
59
+ source_trace_pointers: options.sourceTrace ?? [],
60
+ ...(options.evaluatorSummary !== undefined
61
+ ? { evaluator_summary: options.evaluatorSummary }
62
+ : {}),
63
+ ...(options.userDecisionSummary !== undefined
64
+ ? { user_decision_summary: options.userDecisionSummary }
65
+ : {}),
66
+ trigger
67
+ };
68
+ }
69
+ export function printCrystallizeResult(io, recommendation, result, json) {
70
+ printResult(io, ok('asset.crystallize', {
71
+ recommendation: {
72
+ brief: recommendation.payload.brief,
73
+ bullets: recommendation.payload.bullets,
74
+ source_trace_pointers: recommendation.payload.source_trace_pointers,
75
+ evaluator_summary: recommendation.payload.evaluator_summary
76
+ },
77
+ result,
78
+ nextActions: [
79
+ `Run \`peaks loop show --loop ${result.loop_release_id}\` to inspect the new loop_release.`,
80
+ `Run \`peaks asset dispose --crystallization-event ${result.crystallization_event_id} --mode trace_only\` to retire the event without touching the asset.`
81
+ ]
82
+ }, [], [
83
+ 'The CLI has surfaced a complete 4-section brief; the LLM should now drive the user through AskUserQuestion picks (spec §5.3).'
84
+ ]), json);
85
+ }