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
@@ -1,504 +1,95 @@
1
1
  /**
2
2
  * peaks audit * CLI surface — Slice L2.1 + L2.3 P2-a.
3
3
  *
4
- * Registers the new `peaks audit` top-level command with the
5
- * `red-lines` (L2.1) and `static` (L2.3 P2-a) subcommands.
4
+ * Registers the `peaks audit` top-level command with the `red-lines` (L2.1),
5
+ * `static` (L2.3 P2-a), `prose-ratio`, `goal` and `artifact` subcommands.
6
6
  * Per `peaks-loop-when-adding-a-new-subcommand-check-for-existing-top-level-first.md`
7
7
  * we verified that no `peaks audit` top-level exists; this is the only
8
8
  * file that owns the registration.
9
+ *
10
+ * The action bodies live in `audit-<responsibility>-runners.ts` siblings; this
11
+ * file only wires the commands and delegates. Each delegate preserves the
12
+ * original callback's declared arity.
9
13
  */
10
- import { existsSync, readFileSync, statSync } from 'node:fs';
11
- import { resolve } from 'node:path';
12
- import { runRedLinesAudit } from '../../services/audit/red-lines-service.js';
13
- import { runStaticAudit } from '../../services/audit/static-service.js';
14
- import { auditGoal, IncompleteAuditError } from '../../services/audit/audit-goal-service.js';
15
- import { createAnthropicRunner, LlmBindingError, LlmRequestError, resolveAnthropicConfig } from '../../services/llm/anthropic-runner.js';
16
- import { createStubRunner } from '../../services/llm/stub-runner.js';
17
- import { addJsonOption, getErrorMessage, printResult } from '../cli-helpers.js';
18
- import { fail, ok } from 'peaks-loop-shared/result';
19
- import { writeAuditDecision } from '../../services/audit/decision-writer.js';
20
- import { computeProseRatio } from '../../services/audit/prose-ratio-calculator.js';
21
- import { writeMachineOutput, writeNarrative, writePrompt, writeDecision } from '../../services/audit/artifact-writer.js';
22
- import { parseRedLineAuditInput, RedLineAuditInputError } from '../../services/audit/red-line-audit-input.js';
23
- const SUPPORTED_ARTIFACT_KINDS = [
24
- 'decision',
25
- 'prompt',
26
- 'machine-output',
27
- 'narrative'
28
- ];
29
- function isSupportedArtifactKind(value) {
30
- return SUPPORTED_ARTIFACT_KINDS.includes(value);
31
- }
32
- /** Whitelist of supported `--llm-provider` values for `peaks audit goal`. */
33
- const SUPPORTED_LLM_PROVIDERS = ['anthropic', 'stub'];
34
- /**
35
- * The real provider is the default: `peaks audit goal` is the entry gate for
36
- * every peaks-* workflow, so it must audit by default and only scaffold when
37
- * a caller explicitly asks for `stub`.
38
- */
39
- const DEFAULT_LLM_PROVIDER = 'anthropic';
40
- function isSupportedLlmProvider(value) {
41
- return SUPPORTED_LLM_PROVIDERS.includes(value);
42
- }
43
- function validateProjectRoot(projectArg) {
44
- const projectRoot = resolve(projectArg);
45
- if (!existsSync(projectRoot)) {
46
- return {
47
- ok: false,
48
- code: 'PROJECT_NOT_FOUND',
49
- message: `project path does not exist: ${projectArg}`
50
- };
51
- }
52
- let stat;
53
- try {
54
- stat = statSync(projectRoot);
55
- }
56
- catch (error) {
57
- return { ok: false, code: 'INVALID_PROJECT', message: getErrorMessage(error) };
58
- }
59
- if (!stat.isDirectory()) {
60
- return {
61
- ok: false,
62
- code: 'INVALID_PROJECT',
63
- message: `project path is not a directory: ${projectArg}`
64
- };
65
- }
66
- return { ok: true, projectRoot };
67
- }
68
- export function registerAuditCommands(program, io) {
69
- const audit = program
70
- .command('audit', { hidden: true })
71
- .description('Audit a project for compliance with peaks-loop red lines (P0 / P1 / P2 tiers)');
14
+ import { addJsonOption } from '../cli-helpers.js';
15
+ import { DEFAULT_LLM_PROVIDER, SUPPORTED_ARTIFACT_KINDS, SUPPORTED_LLM_PROVIDERS } from './audit-command-shared.js';
16
+ import { RED_LINES_DESCRIPTION, runRedLines } from './audit-red-lines-runners.js';
17
+ import { PROSE_RATIO_DESCRIPTION, STATIC_AUDIT_DESCRIPTION, runProseRatio, runStaticAuditCommand } from './audit-static-runners.js';
18
+ import { AUDIT_GOAL_DESCRIPTION, runAuditGoal } from './audit-goal-runners.js';
19
+ import { ARTIFACT_GROUP_DESCRIPTION, ARTIFACT_WRITE_DESCRIPTION, runArtifactWrite } from './audit-artifact-runners.js';
20
+ const AUDIT_DESCRIPTION = 'Audit a project for compliance with peaks-loop red lines (P0 / P1 / P2 tiers)';
21
+ function registerRedLinesCommand(audit, io) {
72
22
  addJsonOption(audit
73
23
  .command('red-lines')
74
- .description('Scan skills/, .claude/rules/, and openspec/changes/ for MANDATORY / BLOCKING / MUST NOT / RED LINE markers; classify each as cli-backed / partial / prose-only')
75
- .requiredOption('--project <path>', 'target project root')).action((options) => {
76
- const validation = validateProjectRoot(options.project);
77
- if (!validation.ok) {
78
- printResult(io, fail('audit.red-lines', validation.code, validation.message, {
79
- totalRedLines: 0,
80
- cliBacked: 0,
81
- partial: 0,
82
- proseOnly: 0,
83
- audit: [],
84
- enforcerFindings: []
85
- }, ['Verify the project path exists and is a directory']), options.json);
86
- process.exitCode = 1;
87
- return;
88
- }
89
- try {
90
- const result = runRedLinesAudit({ projectRoot: validation.projectRoot });
91
- const nextActions = [];
92
- if (result.audit.proseOnly > 0) {
93
- nextActions.push(`${result.audit.proseOnly} prose-only red lines remain. Plan P1/P2 enforcers in L2.2-L2.4.`);
94
- }
95
- if (result.audit.cliBacked > 0) {
96
- nextActions.push(`${result.audit.cliBacked} red lines are now cli-backed. Re-run after each enforcer lands to track the prose-only ratio.`);
97
- }
98
- const envelope = ok('audit.red-lines', result.audit, result.warnings.map((w) => `${w.file}: ${w.message}`), nextActions);
99
- printResult(io, envelope, options.json);
100
- }
101
- catch (error) {
102
- printResult(io, fail('audit.red-lines', 'SCANNER_FAILED', getErrorMessage(error), {
103
- totalRedLines: 0,
104
- cliBacked: 0,
105
- partial: 0,
106
- proseOnly: 0,
107
- audit: [],
108
- enforcerFindings: []
109
- }, ['Inspect scanner logs and re-run with the same --project path']), options.json);
110
- process.exitCode = 1;
111
- }
112
- });
113
- // Slice K1 (2.8.0): `--record` persists the audit snapshot as a
114
- // project-memory decision at `.peaks/memory/audit-decisions/<slug>.md`.
115
- // `--rid <id>` is an optional disambiguator for multiple audits on
116
- // the same day (slug becomes `audit-decision-<date>-<rid>`).
117
- // Per `peaks-loop-when-adding-a-new-subcommand-check-for-existing-top-level-first`
118
- // and the dev-preference red line "Default-no on new CLI commands",
119
- // we extend the existing command rather than register a new subcommand.
120
- //
121
- // `--enable-agent-shield` / `--disable-agent-shield` flags were removed.
122
- // `runStaticAudit`'s agentShield state is a frozen "always disabled" stub
123
- // (Slice 3 of 4.0.0-beta.11 removed the subprocess), so the flags had no
124
- // effect and the ECC opt-in prose misled users on every run.
24
+ .description(RED_LINES_DESCRIPTION)
25
+ .requiredOption('--project <path>', 'target project root')).action((options) => runRedLines(options, io));
26
+ }
27
+ // Slice K1 (2.8.0): `--record` persists the audit snapshot as a
28
+ // project-memory decision at `.peaks/memory/audit-decisions/<slug>.md`.
29
+ // `--rid <id>` is an optional disambiguator for multiple audits on
30
+ // the same day (slug becomes `audit-decision-<date>-<rid>`).
31
+ // Per `peaks-loop-when-adding-a-new-subcommand-check-for-existing-top-level-first`
32
+ // and the dev-preference red line "Default-no on new CLI commands",
33
+ // we extend the existing command rather than register a new subcommand.
34
+ //
35
+ // `--enable-agent-shield` / `--disable-agent-shield` flags were removed.
36
+ // `runStaticAudit`'s agentShield state is a frozen "always disabled" stub
37
+ // (Slice 3 of 4.0.0-beta.11 removed the subprocess), so the flags had no
38
+ // effect and the ECC opt-in prose misled users on every run.
39
+ function registerStaticCommand(audit, io) {
125
40
  addJsonOption(audit
126
41
  .command('static')
127
- .description('Run the static audit (peaks-loop lint only; the ECC AgentShield subprocess was removed in 4.0.0-beta.11). Per spec §5.3.')
42
+ .description(STATIC_AUDIT_DESCRIPTION)
128
43
  .requiredOption('--project <path>', 'target project root')
129
44
  .option('--record', 'persist the audit snapshot to .peaks/memory/audit-decisions/ as a project-memory decision')
130
- .option('--rid <rid>', 'disambiguator for the decision record slug (used with --record; pairs multiple audits on the same day)')).action((options) => {
131
- const validation = validateProjectRoot(options.project);
132
- if (!validation.ok) {
133
- printResult(io, fail('audit.static', validation.code, validation.message, emptyStaticAuditData(), ['Verify the project path exists and is a directory']), options.json);
134
- process.exitCode = 1;
135
- return;
136
- }
137
- // Slice K1: `--rid` is meaningful only with `--record`. Surface a 422
138
- // when the user passes `--rid` without `--record` so the CLI fails
139
- // loudly rather than silently ignoring the request id.
140
- if (options.rid && !options.record) {
141
- printResult(io, fail('audit.static', 'FLAGS_CONFLICT', '`--rid` requires `--record` (decision slug disambiguator has no effect without persistence)', emptyStaticAuditData(), ['Pass `--record` together with `--rid <id>`, or omit `--rid`']), options.json);
142
- process.exitCode = 1;
143
- return;
144
- }
145
- try {
146
- const result = runStaticAudit({
147
- projectRoot: validation.projectRoot
148
- });
149
- // Persist the decision record when `--record` is set. The writer is
150
- // idempotent at the slug level (same date+rid → same file); repeated
151
- // runs overwrite. Failures here are surfaced as warnings so the
152
- // primary audit JSON still reaches the caller.
153
- let decision;
154
- let recordWarning;
155
- if (options.record) {
156
- try {
157
- decision = writeAuditDecision(result.audit, {
158
- projectRoot: validation.projectRoot,
159
- ...(options.rid ? { rid: options.rid } : {})
160
- });
161
- }
162
- catch (writeError) {
163
- recordWarning = `Failed to write decision record: ${getErrorMessage(writeError)}`;
164
- }
165
- }
166
- const data = {
167
- audit: result.audit,
168
- agentShield: result.agentShield,
169
- ...(decision ? { decision } : {})
170
- };
171
- const nextActions = [];
172
- // nextActions block was removed. `agentShield.installed` is a frozen
173
- // `false`, so the block printed on every run and pointed users at a
174
- // removed subprocess, removed flags, and a dead preference.
175
- if (decision) {
176
- nextActions.push(`Decision record written: ${decision.filePath}`);
177
- nextActions.push(`Index synced: ${decision.indexSynced ? 'yes' : 'no'} (memory hot.decision[] now includes this audit)`);
178
- }
179
- const warnings = recordWarning ? [...result.warnings, recordWarning] : [...result.warnings];
180
- const envelope = ok('audit.static', data, warnings, nextActions);
181
- printResult(io, envelope, options.json);
182
- }
183
- catch (error) {
184
- printResult(io, fail('audit.static', 'SCANNER_FAILED', getErrorMessage(error), emptyStaticAuditData(), ['Inspect scanner logs and re-run with the same --project path']), options.json);
185
- process.exitCode = 1;
186
- }
187
- });
188
- // v2.14.0 Slice C Group G3: `peaks audit prose-ratio` — CI gate.
189
- // Calls `peaks audit static --json` internally, parses the prose-only
190
- // ratio, exits 1 if the ratio exceeds the target (default 5%).
191
- // Rationale: a single CLI primitive for the CI gate; the underlying
192
- // ratio lives in static-service.ts (computed via prose-ratio-calculator).
45
+ .option('--rid <rid>', 'disambiguator for the decision record slug (used with --record; pairs multiple audits on the same day)')).action((options) => runStaticAuditCommand(options, io));
46
+ }
47
+ // v2.14.0 Slice C Group G3: `peaks audit prose-ratio` — CI gate.
48
+ // Calls `peaks audit static --json` internally, parses the prose-only
49
+ // ratio, exits 1 if the ratio exceeds the target (default 5%).
50
+ // Rationale: a single CLI primitive for the CI gate; the underlying
51
+ // ratio lives in static-service.ts (computed via prose-ratio-calculator).
52
+ function registerProseRatioCommand(audit, io) {
193
53
  addJsonOption(audit
194
54
  .command('prose-ratio')
195
- .description('Compute the prose-only ratio (informational entries excluded). Exits 1 if ratio > target (default 5%).')
55
+ .description(PROSE_RATIO_DESCRIPTION)
196
56
  .requiredOption('--project <path>', 'target project root')
197
- .option('--target <n>', 'maximum prose-only ratio (0-1, default 0.05)', '0.05')).action((options) => {
198
- const validation = validateProjectRoot(options.project);
199
- if (!validation.ok) {
200
- printResult(io, fail('audit.prose-ratio', validation.code, validation.message, emptyProseRatioResult(), ['Verify the project path exists and is a directory']), options.json);
201
- process.exitCode = 1;
202
- return;
203
- }
204
- const target = Number.parseFloat(options.target);
205
- if (!Number.isFinite(target) || target < 0 || target > 1) {
206
- printResult(io, fail('audit.prose-ratio', 'INVALID_TARGET', `--target must be a number between 0 and 1 (got "${options.target}")`, emptyProseRatioResult(), ['Pass --target 0.05 (default) or another number in [0, 1]']), options.json);
207
- process.exitCode = 1;
208
- return;
209
- }
210
- try {
211
- const result = runStaticAudit({ projectRoot: validation.projectRoot });
212
- const ratio = computeProseRatio(result.audit.audit, { target });
213
- const envelope = ok('audit.prose-ratio', ratio, [], [
214
- ratio.exceeds
215
- ? `Prose-only ratio ${(ratio.ratio * 100).toFixed(2)}% exceeds target ${(ratio.target * 100).toFixed(2)}% (${ratio.proseOnly}/${ratio.totalRedLines})`
216
- : `Prose-only ratio ${(ratio.ratio * 100).toFixed(2)}% within target ${(ratio.target * 100).toFixed(2)}% (${ratio.proseOnly}/${ratio.totalRedLines})`
217
- ]);
218
- printResult(io, envelope, options.json);
219
- if (ratio.exceeds) {
220
- process.exitCode = 1;
221
- }
222
- }
223
- catch (error) {
224
- printResult(io, fail('audit.prose-ratio', 'SCANNER_FAILED', getErrorMessage(error), emptyProseRatioResult(), ['Inspect scanner logs and re-run with the same --project path']), options.json);
225
- process.exitCode = 1;
226
- }
227
- });
228
- // gate it advertises. `auditGoal()` was already correct (one `LlmRunner`
229
- // call, 6-dimension validation, `IncompleteAuditError` on a partial audit);
230
- // what was missing was a provider binding, so the command answered with a
231
- // fixed `scaffold-only` envelope no matter what it was asked.
232
- //
233
- // `anthropic` is now the default and reads the session's own environment
234
- // (see `resolveAnthropicConfig`). `stub` stays for CI/tests but is
235
- // reported as a scaffold, and a missing credential fails loudly — a silent
236
- // fall back to the scaffold envelope would leave the gate exactly as fake
237
- // as it was before this slice.
57
+ .option('--target <n>', 'maximum prose-only ratio (0-1, default 0.05)', '0.05')).action((options) => runProseRatio(options, io));
58
+ }
59
+ // `anthropic` is now the default and reads the session's own environment
60
+ // (see `resolveAnthropicConfig`). `stub` stays for CI/tests but is
61
+ // reported as a scaffold, and a missing credential fails loudly — a silent
62
+ // fall back to the scaffold envelope would leave the gate exactly as fake
63
+ // as it was before this slice.
64
+ function registerGoalCommand(audit, io) {
238
65
  addJsonOption(audit
239
66
  .command('goal')
240
- .description('Audit a human need across 6 dimensions and propose a goal (peaks-audit primitive)')
67
+ .description(AUDIT_GOAL_DESCRIPTION)
241
68
  .requiredOption('--project <path>', 'target project root')
242
69
  .requiredOption('--need <text>', 'the human need to audit (becomes input.need for auditGoal())')
243
- .option('--llm-provider <name>', `LLM provider (${SUPPORTED_LLM_PROVIDERS.join(' | ')}); stub performs no audit`, DEFAULT_LLM_PROVIDER)).action(async (options) => {
244
- const validation = validateProjectRoot(options.project);
245
- if (!validation.ok) {
246
- printResult(io, fail('audit.goal', validation.code, validation.message, auditGoalFailureData(options.need, options.project), ['Verify the project path exists and is a directory']), options.json);
247
- process.exitCode = 1;
248
- return;
249
- }
250
- const provider = options.llmProvider ?? DEFAULT_LLM_PROVIDER;
251
- if (!isSupportedLlmProvider(provider)) {
252
- printResult(io, fail('audit.goal', 'LLM_PROVIDER_NOT_IMPLEMENTED', `LLM provider "${provider}" is not implemented. Supported providers: ${SUPPORTED_LLM_PROVIDERS.join(', ')}.`, auditGoalFailureData(options.need, validation.projectRoot), [
253
- `Re-run with \`--llm-provider ${DEFAULT_LLM_PROVIDER}\` for a real audit, or \`--llm-provider stub\` for an offline scaffold.`
254
- ]), options.json);
255
- process.exitCode = 1;
256
- return;
257
- }
258
- const isStub = provider === 'stub';
259
- const providerBinding = isStub
260
- ? 'stub'
261
- : 'anthropic-messages-api';
262
- try {
263
- let model;
264
- let llmRunner;
265
- if (isStub) {
266
- llmRunner = createStubRunner();
267
- }
268
- else {
269
- const config = resolveAnthropicConfig();
270
- model = config.model;
271
- llmRunner = createAnthropicRunner(config);
272
- }
273
- const result = await auditGoal({ need: options.need }, llmRunner);
274
- const data = {
275
- status: isStub ? 'scaffold-only' : 'audit-complete',
276
- providerBinding,
277
- need: options.need,
278
- projectRoot: validation.projectRoot,
279
- result,
280
- ...(model === undefined ? {} : { model })
281
- };
282
- const envelope = ok('audit.goal', data, [], isStub
283
- ? [
284
- `Stub provider: the 6 dimensions below are placeholders, not findings. Re-run with \`--llm-provider ${DEFAULT_LLM_PROVIDER}\` for a real audit.`
285
- ]
286
- : [
287
- `Audit produced by ${providerBinding}${model === undefined ? '' : ` (model: ${model})`}.`
288
- ]);
289
- printResult(io, envelope, options.json);
290
- }
291
- catch (error) {
292
- const code = auditGoalErrorCode(error);
293
- printResult(io, fail('audit.goal', code, getErrorMessage(error), auditGoalFailureData(options.need, validation.projectRoot, providerBinding, error instanceof LlmBindingError ? error.missingEnv : undefined), auditGoalNextActions(code)), options.json);
294
- process.exitCode = 1;
295
- }
296
- });
297
- // ---------------------------------------------------------------------------
298
- //
299
- // First-class CLI surface for the 4 audit artifact types. Replaces the
300
- // 2026-06-22 "hand `git add` into .peaks/memory/" anti-pattern that left
301
- // 4 orphan files. Each kind routes to exactly one writer in
302
- // artifact-writer.ts; the writer enforces canonical frontmatter, so the
303
- // memory-shape guard never fires for new writes.
304
- // ---------------------------------------------------------------------------
305
- const artifact = audit
306
- .command('artifact')
307
- .description('Manage audit artifacts (decision / prompt / machine-output / narrative) under .peaks/memory/');
70
+ .option('--llm-provider <name>', `LLM provider (${SUPPORTED_LLM_PROVIDERS.join(' | ')}); stub performs no audit`, DEFAULT_LLM_PROVIDER)).action((options) => runAuditGoal(options, io));
71
+ }
72
+ function registerArtifactWriteCommand(artifact, io) {
308
73
  addJsonOption(artifact
309
74
  .command('write')
310
- .description('Persist a single audit artifact to .peaks/memory/ via the artifact-writer (canonical frontmatter)')
75
+ .description(ARTIFACT_WRITE_DESCRIPTION)
311
76
  .requiredOption('--project <path>', 'target project root')
312
77
  .requiredOption('--kind <kind>', `artifact kind (${SUPPORTED_ARTIFACT_KINDS.join(' | ')})`)
313
78
  .requiredOption('--input <path>', 'path to source file (markdown for prompt/narrative; JSON for machine-output and decision)')
314
79
  .option('--name <name>', 'display name (H1 in body); defaults to file basename')
315
80
  .option('--description <text>', 'description field for frontmatter; defaults to a generic placeholder')
316
81
  .option('--rid <id>', 'optional request id to disambiguate multiple writes on the same day')
317
- .option('--dry-run', 'render the markdown but do not write to disk', false)).action((options) => {
318
- const validation = validateProjectRoot(options.project);
319
- if (!validation.ok) {
320
- printResult(io, fail('audit.artifact.write', validation.code, validation.message, {
321
- kind: 'narrative',
322
- slug: '',
323
- title: '',
324
- date: '',
325
- filePath: '',
326
- memoryDir: '',
327
- indexPath: '',
328
- indexSynced: false
329
- }, ['Verify the project path exists and is a directory']), options.json);
330
- process.exitCode = 1;
331
- return;
332
- }
333
- if (!isSupportedArtifactKind(options.kind)) {
334
- printResult(io, fail('audit.artifact.write', 'INVALID_KIND', `Unknown --kind "${options.kind}". Supported: ${SUPPORTED_ARTIFACT_KINDS.join(', ')}.`, {
335
- kind: 'narrative',
336
- slug: '',
337
- title: '',
338
- date: '',
339
- filePath: '',
340
- memoryDir: '',
341
- indexPath: '',
342
- indexSynced: false
343
- }, [
344
- `Re-run with --kind <one of ${SUPPORTED_ARTIFACT_KINDS.join(' | ')}>`,
345
- 'See .peaks/memory/audit-artifact-convention.md for the 4 artifact types.'
346
- ]), options.json);
347
- process.exitCode = 1;
348
- return;
349
- }
350
- const inputAbs = resolve(options.input);
351
- if (!existsSync(inputAbs)) {
352
- printResult(io, fail('audit.artifact.write', 'INPUT_NOT_FOUND', `--input file not found: ${options.input}`, {
353
- kind: options.kind,
354
- slug: '',
355
- title: '',
356
- date: '',
357
- filePath: '',
358
- memoryDir: '',
359
- indexPath: '',
360
- indexSynced: false
361
- }, ['Verify the --input path is correct (relative paths resolve against cwd)']), options.json);
362
- process.exitCode = 1;
363
- return;
364
- }
365
- const baseName = options.name ?? options.input.split(/[\\/]/).pop() ?? 'untitled';
366
- const description = options.description ??
367
- `Audit artifact (${options.kind}) archived via peaks audit artifact write on ${new Date().toISOString().slice(0, 10)}.`;
368
- const writeOpts = {
369
- projectRoot: validation.projectRoot,
370
- dryRun: options.dryRun === true,
371
- ...(options.rid ? { rid: options.rid } : {})
372
- };
373
- let record;
374
- try {
375
- switch (options.kind) {
376
- case 'prompt': {
377
- const body = readFileSync(inputAbs, 'utf8');
378
- record = writePrompt({ name: baseName, description, body }, writeOpts);
379
- break;
380
- }
381
- case 'machine-output': {
382
- const json = readFileSync(inputAbs, 'utf8');
383
- record = writeMachineOutput({ name: baseName, description, json }, writeOpts);
384
- break;
385
- }
386
- case 'narrative': {
387
- const body = readFileSync(inputAbs, 'utf8');
388
- record = writeNarrative({ name: baseName, description, body }, writeOpts);
389
- break;
390
- }
391
- case 'decision': {
392
- // `--input` is a RedLineAudit JSON document — typically
393
- // an archived `peaks audit static` result — validated field by field
394
- // before it reaches the writer, because the writer renders whatever
395
- // it is given into a memory record with no further checks.
396
- // `--name` and `--description` do not apply: the decision slug and
397
- // title come from the scan date (and `--rid`), exactly as
398
- // `peaks audit static --record` derives them.
399
- const audit = parseRedLineAuditInput(readFileSync(inputAbs, 'utf8'));
400
- record = writeDecision(audit, writeOpts);
401
- break;
402
- }
403
- default: {
404
- // Unreachable: isSupportedArtifactKind already filtered.
405
- throw new Error(`unreachable: kind=${options.kind}`);
406
- }
407
- }
408
- }
409
- catch (err) {
410
- // A malformed decision input is the caller's document, not a write
411
- // failure: name it as input so the remedy reads as "fix the JSON field".
412
- printResult(io, fail('audit.artifact.write', err instanceof RedLineAuditInputError ? 'AUDIT_ARTIFACT_INPUT_INVALID' : 'WRITE_FAILED', getErrorMessage(err), {
413
- kind: options.kind,
414
- slug: '',
415
- title: '',
416
- date: '',
417
- filePath: '',
418
- memoryDir: '',
419
- indexPath: '',
420
- indexSynced: false
421
- }, err instanceof RedLineAuditInputError
422
- ? [
423
- 'Inspect the named field; --kind decision takes the JSON shape `peaks audit static --json` prints.'
424
- ]
425
- : ['Inspect the error message; for --kind machine-output ensure --input is valid JSON']), options.json);
426
- process.exitCode = 1;
427
- return;
428
- }
429
- printResult(io, ok('audit.artifact.write', record, [], [
430
- `Artifact written via ${record.kind} writer.`,
431
- record.indexSynced
432
- ? 'Memory index regenerated; entry will appear in `peaks project memories` on next read.'
433
- : 'Memory index NOT regenerated; run `peaks project memories --project <root>` to refresh.'
434
- ]), options.json);
435
- });
436
- }
437
- function emptyStaticAuditData() {
438
- return {
439
- audit: {
440
- totalRedLines: 0,
441
- cliBacked: 0,
442
- partial: 0,
443
- proseOnly: 0,
444
- audit: [],
445
- enforcerFindings: []
446
- },
447
- agentShield: {
448
- spawned: false,
449
- installed: false,
450
- reason: 'flag-disabled',
451
- findings: []
452
- }
453
- };
82
+ .option('--dry-run', 'render the markdown but do not write to disk', false)).action((options) => runArtifactWrite(options, io));
454
83
  }
455
- function auditGoalFailureData(need, projectRoot, providerBinding = 'unresolved', missingEnv) {
456
- return {
457
- status: 'audit-failed',
458
- providerBinding,
459
- need,
460
- projectRoot,
461
- ...(missingEnv === undefined ? {} : { missingEnv })
462
- };
84
+ function registerArtifactCommands(audit, io) {
85
+ const artifact = audit.command('artifact').description(ARTIFACT_GROUP_DESCRIPTION);
86
+ registerArtifactWriteCommand(artifact, io);
463
87
  }
464
- /** The slice-owned error codes are carried verbatim so callers can gate on them. */
465
- function auditGoalErrorCode(error) {
466
- if (error instanceof IncompleteAuditError ||
467
- error instanceof LlmBindingError ||
468
- error instanceof LlmRequestError) {
469
- return error.code;
470
- }
471
- return 'AUDIT_GOAL_FAILED';
472
- }
473
- function auditGoalNextActions(code) {
474
- switch (code) {
475
- case 'LLM_CREDENTIAL_MISSING':
476
- return [
477
- 'Export ANTHROPIC_AUTH_TOKEN (or ANTHROPIC_API_KEY) in the environment that launches peaks, then re-run.',
478
- 'For an offline scaffold instead of an audit, re-run with `--llm-provider stub` — it performs NO audit.'
479
- ];
480
- case 'LLM_MODEL_MISSING':
481
- return [
482
- 'Export ANTHROPIC_MODEL (or CLAUDE_CODE_SUBAGENT_MODEL) in the environment that launches peaks, then re-run.'
483
- ];
484
- case 'INCOMPLETE_AUDIT':
485
- return [
486
- 'The LLM reply omitted a required dimension; re-run so autonomous work never proceeds on a partial audit.'
487
- ];
488
- default:
489
- return ['Inspect the failure above, then re-run with the same --need.'];
490
- }
491
- }
492
- function emptyProseRatioResult() {
493
- return {
494
- totalRedLines: 0,
495
- cliBacked: 0,
496
- partial: 0,
497
- proseOnly: 0,
498
- discoveredProseOnly: 0,
499
- informational: 0,
500
- ratio: 0,
501
- target: 0.05,
502
- exceeds: false
503
- };
88
+ export function registerAuditCommands(program, io) {
89
+ const audit = program.command('audit', { hidden: true }).description(AUDIT_DESCRIPTION);
90
+ registerRedLinesCommand(audit, io);
91
+ registerStaticCommand(audit, io);
92
+ registerProseRatioCommand(audit, io);
93
+ registerGoalCommand(audit, io);
94
+ registerArtifactCommands(audit, io);
504
95
  }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * `peaks audit goal` runner — the peaks-audit entry gate.
3
+ *
4
+ * The action body moved out of `audit-commands.ts` verbatim; the registrar now
5
+ * only wires the command and delegates. This is the one action whose delegate
6
+ * returns a promise, so the runner stays `async` (it awaits `auditGoal()`).
7
+ *
8
+ * `anthropic` is the default and reads the session's own environment
9
+ * (see `resolveAnthropicConfig`). `stub` stays for CI/tests but is
10
+ * reported as a scaffold, and a missing credential fails loudly — a silent
11
+ * fall back to the scaffold envelope would leave the gate exactly as fake
12
+ * as it was before this slice.
13
+ */
14
+ import { type ProgramIO } from '../cli-helpers.js';
15
+ import { type AuditGoalOptions } from './audit-command-shared.js';
16
+ export declare const AUDIT_GOAL_DESCRIPTION = "Audit a human need across 6 dimensions and propose a goal (peaks-audit primitive)";
17
+ export declare function runAuditGoal(options: AuditGoalOptions, io: ProgramIO): Promise<void>;