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,3 @@
1
+ import { type ProgramIO } from '../cli-helpers.js';
2
+ import { type CrystallizeOptions } from './asset-crystallize-payload.js';
3
+ export declare function runAssetCrystallize(io: ProgramIO, options: CrystallizeOptions): Promise<void>;
@@ -0,0 +1,133 @@
1
+ // src/cli/commands/asset-crystallize-runner.ts
2
+ //
3
+ // The `asset.crystallize` action body and its failure envelopes. Split out of
4
+ // `asset-crystallize-command.ts`; every error code, message and next-action
5
+ // list is unchanged, including the rethrow of an error class the verb does not
6
+ // handle itself.
7
+ import { CrystallizationIntegrityError, BriefSectionError, safeRenderRecommendationPayload, CRYSTALLIZATION_TRIGGERS, parseEvidenceBrief } from '../../services/crystallization/index.js';
8
+ import { printResult } from '../cli-helpers.js';
9
+ import { fail } from 'peaks-loop-shared/result';
10
+ import { createCrystallizationService, openAssetDb, parseTriggerFlag, resolveAssetProjectRoot } from './asset-command-shared.js';
11
+ import { briefFromOptions, buildCrystallizePayload, printCrystallizeResult } from './asset-crystallize-payload.js';
12
+ function failCrystallize(io, failure) {
13
+ printResult(io, fail('asset.crystallize', failure.code, failure.message, failure.data, failure.nextActions), failure.json);
14
+ process.exitCode = 1;
15
+ }
16
+ function printInvalidTrigger(io, options) {
17
+ failCrystallize(io, {
18
+ code: 'ASSET_INVALID_TRIGGER',
19
+ message: `--trigger must be one of: ${CRYSTALLIZATION_TRIGGERS.join('|')}`,
20
+ data: { trigger: options.trigger },
21
+ nextActions: ['Pass a valid --trigger value.'],
22
+ json: options.json
23
+ });
24
+ }
25
+ function printMissingBrief(io, err, candidateBrief, json) {
26
+ const briefErr = err;
27
+ failCrystallize(io, {
28
+ code: 'MISSING_BRIEF_SECTION',
29
+ message: briefErr.message,
30
+ data: { findings: [...briefErr.findings], flagsProvided: Object.keys(candidateBrief) },
31
+ nextActions: [
32
+ 'Pass ALL FOUR brief sections via --brief-what-happened / --brief-why-it-matters / --brief-what-learned / --brief-what-action.',
33
+ 'The CLI refuses to render a recommendation without a complete 4-section brief (spec §4.7 / RL-7).'
34
+ ],
35
+ json
36
+ });
37
+ }
38
+ function printRecommendationRejected(io, recommendation, candidateBrief, json) {
39
+ failCrystallize(io, {
40
+ code: recommendation.code ?? 'MISSING_BRIEF_SECTION',
41
+ message: 'recommendation envelope rejected — brief is missing one of its 4 sections',
42
+ data: { findings: recommendation.findings, briefProvided: candidateBrief },
43
+ nextActions: [
44
+ 'Pass ALL FOUR brief sections via the matching CLI flags.',
45
+ 'Counts in --brief-bullet may support the brief; they do NOT replace it (spec §4.7 / RL-7).'
46
+ ],
47
+ json
48
+ });
49
+ }
50
+ /** Terminal failures from the service. Anything else is rethrown, as before. */
51
+ function handleCrystallizeError(io, err, json) {
52
+ if (err instanceof CrystallizationIntegrityError) {
53
+ const integrityErr = err;
54
+ failCrystallize(io, {
55
+ code: integrityErr.code,
56
+ message: integrityErr.message,
57
+ data: { findings: [...integrityErr.findings] },
58
+ nextActions: [
59
+ integrityErr.code === 'CRYSTALLIZATION_PRE_RUN'
60
+ ? 'Re-shape the candidate task so task_status=completed AND gates_passed=true AND evidence_collected=true (spec §5 / RL-2).'
61
+ : integrityErr.code === 'MISSING_BRIEF_SECTION'
62
+ ? 'Pass ALL FOUR brief sections (RL-7); the CLI refuses to render a recommendation without them.'
63
+ : 'Inspect the failure findings and re-shape the payload.'
64
+ ],
65
+ json
66
+ });
67
+ return;
68
+ }
69
+ if (err instanceof BriefSectionError) {
70
+ const briefErr = err;
71
+ failCrystallize(io, {
72
+ code: 'MISSING_BRIEF_SECTION',
73
+ message: briefErr.message,
74
+ data: { findings: [...briefErr.findings] },
75
+ nextActions: ['Pass all 4 brief sections (RL-7).'],
76
+ json
77
+ });
78
+ return;
79
+ }
80
+ throw err;
81
+ }
82
+ export async function runAssetCrystallize(io, options) {
83
+ try {
84
+ const trigger = parseTriggerFlag(options.trigger);
85
+ if (!trigger) {
86
+ printInvalidTrigger(io, options);
87
+ return;
88
+ }
89
+ // Build the brief from CLI flags and re-validate it through
90
+ // the canonical schema (so a partial brief is caught BEFORE
91
+ // any DB side effects fire).
92
+ const candidateBrief = briefFromOptions(options);
93
+ let brief;
94
+ try {
95
+ brief = parseEvidenceBrief(candidateBrief);
96
+ }
97
+ catch (err) {
98
+ if (err instanceof BriefSectionError) {
99
+ printMissingBrief(io, err, candidateBrief, options.json);
100
+ return;
101
+ }
102
+ throw err;
103
+ }
104
+ // Render the recommendation envelope up-front so the CLI can
105
+ // refuse to write if any brief section is missing. This is
106
+ // the same code path the crystallization service uses.
107
+ const recommendation = safeRenderRecommendationPayload({
108
+ brief,
109
+ bullets: options.briefBullet ?? [],
110
+ source_trace_pointers: options.sourceTrace ?? [],
111
+ evaluator_summary: {
112
+ one_liner: options.evaluatorSummary ?? '',
113
+ risk_tags: []
114
+ }
115
+ });
116
+ if (!recommendation.ok) {
117
+ printRecommendationRejected(io, recommendation, candidateBrief, options.json);
118
+ return;
119
+ }
120
+ const db = openAssetDb(resolveAssetProjectRoot(options.project));
121
+ try {
122
+ const svc = createCrystallizationService(db);
123
+ const result = svc.crystallize(buildCrystallizePayload(options, brief, trigger));
124
+ printCrystallizeResult(io, recommendation, result, options.json);
125
+ }
126
+ finally {
127
+ db.close();
128
+ }
129
+ }
130
+ catch (err) {
131
+ handleCrystallizeError(io, err, options.json);
132
+ }
133
+ }
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ import { type ProgramIO } from '../cli-helpers.js';
3
+ export declare function registerAssetDisposeCommand(asset: Command, io: ProgramIO): void;
@@ -0,0 +1,99 @@
1
+ // src/cli/commands/asset-dispose-command.ts
2
+ //
3
+ // `peaks asset dispose` — trace-only / retain / destroy. Split out of
4
+ // `asset-commands.ts`; the verb name, its options, the envelope shape and
5
+ // every error code are unchanged.
6
+ import { addJsonOption, getErrorMessage, printResult } from '../cli-helpers.js';
7
+ import { fail, ok } from 'peaks-loop-shared/result';
8
+ import { DISPOSE_MODES, createCrystallizationService, openAssetDb, resolveAssetProjectRoot } from './asset-command-shared.js';
9
+ function printInvalidDisposeMode(io, options) {
10
+ 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);
11
+ process.exitCode = 1;
12
+ }
13
+ function printDisposeEventNotFound(io, options) {
14
+ printResult(io, fail('asset.dispose', 'ASSET_EVENT_NOT_FOUND', `crystallization event '${options.crystallizationEvent}' not found`, { eventId: options.crystallizationEvent }, ['Verify the event id.']), options.json);
15
+ process.exitCode = 1;
16
+ }
17
+ /** `retain` → no DB change; the user wants to keep the event as evidence. */
18
+ function printDisposeRetained(io, existing, mode, json) {
19
+ printResult(io, ok('asset.dispose', {
20
+ crystallization_event_id: existing.id,
21
+ mode,
22
+ lifecycle_status: existing.lifecycle_status,
23
+ note: 'no DB change; event retained as-is'
24
+ }, [], ['Run `peaks asset status --loop <id>` to inspect the lifecycle state of the linked assets.']), json);
25
+ }
26
+ /**
27
+ * `destroy` → retire the created/updated loop_release rows as well. We do NOT
28
+ * delete rows — retirement is a status flip (spec §5.6).
29
+ */
30
+ function retireLinkedLoops(db, updated) {
31
+ const retireLoop = db.prepare("UPDATE loop_release SET lifecycle_status = 'retired' WHERE id IN (?, ?)");
32
+ const ids = [
33
+ updated.created_loop_release_id ?? null,
34
+ updated.updated_loop_release_id ?? null
35
+ ].filter((x) => x !== null);
36
+ for (const id of ids) {
37
+ retireLoop.run(id, id);
38
+ }
39
+ }
40
+ function printDisposeResult(io, outcome, json) {
41
+ printResult(io, ok('asset.dispose', {
42
+ crystallization_event_id: outcome.existing.id,
43
+ mode: outcome.mode,
44
+ lifecycle_status: outcome.updated?.lifecycle_status ?? 'retired',
45
+ retired_assets: outcome.mode === 'destroy' ? 'loop_release retired (no rows deleted)' : 'none',
46
+ nextActions: ['Run `peaks asset status` to confirm the lifecycle transition.']
47
+ }, [], []), json);
48
+ }
49
+ function printDisposeFailure(io, err, options) {
50
+ printResult(io, fail('asset.dispose', 'ASSET_DISPOSE_FAILED', getErrorMessage(err), { eventId: options.crystallizationEvent }, ['Verify the event id and --mode flag.']), options.json);
51
+ process.exitCode = 1;
52
+ }
53
+ async function runAssetDispose(io, options) {
54
+ try {
55
+ if (!DISPOSE_MODES.includes(options.mode)) {
56
+ printInvalidDisposeMode(io, options);
57
+ return;
58
+ }
59
+ const mode = options.mode;
60
+ const db = openAssetDb(resolveAssetProjectRoot(options.project));
61
+ try {
62
+ const svc = createCrystallizationService(db);
63
+ const existing = svc.read(options.crystallizationEvent);
64
+ if (!existing) {
65
+ printDisposeEventNotFound(io, options);
66
+ return;
67
+ }
68
+ // trace_only → retire the event row; the source traces are
69
+ // untouched (workflow traces are immutable per spec §4.3).
70
+ // retain → no DB change; the user wants to keep the event
71
+ // as historical evidence.
72
+ // destroy → retire the event + retire the created/updated
73
+ // assets (no asset delete; retirement only).
74
+ if (mode === 'retain') {
75
+ printDisposeRetained(io, existing, mode, options.json);
76
+ return;
77
+ }
78
+ const updated = svc.updateStatus(existing.id, 'retired');
79
+ if (mode === 'destroy' && updated) {
80
+ retireLinkedLoops(db, updated);
81
+ }
82
+ printDisposeResult(io, { existing, mode, updated }, options.json);
83
+ }
84
+ finally {
85
+ db.close();
86
+ }
87
+ }
88
+ catch (err) {
89
+ printDisposeFailure(io, err, options);
90
+ }
91
+ }
92
+ export function registerAssetDisposeCommand(asset, io) {
93
+ addJsonOption(asset
94
+ .command('dispose')
95
+ .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.')
96
+ .requiredOption('--crystallization-event <id>', 'the crystallization event id (returned by `peaks asset crystallize`)')
97
+ .requiredOption('--mode <mode>', `dispose mode (one of: ${DISPOSE_MODES.join('|')}; default: trace_only)`, 'trace_only')
98
+ .option('--project <path>', 'project root (default: cwd)')).action((options) => runAssetDispose(io, options));
99
+ }
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ import { type ProgramIO } from '../cli-helpers.js';
3
+ export declare function registerAssetStatusCommand(asset: Command, io: ProgramIO): void;
@@ -0,0 +1,100 @@
1
+ // src/cli/commands/asset-status-command.ts
2
+ //
3
+ // `peaks asset status` — loop + bee lifecycle state plus the crystallization
4
+ // events that reference them. Split out of `asset-commands.ts`; the verb name,
5
+ // its options and the envelope shape are unchanged.
6
+ import { addJsonOption, getErrorMessage, printResult } from '../cli-helpers.js';
7
+ import { fail, ok } from 'peaks-loop-shared/result';
8
+ import { createCrystallizationService, openAssetDb, resolveAssetProjectRoot } from './asset-command-shared.js';
9
+ /** The events a `--loop` filter selects, deduplicated by id; all of them otherwise. */
10
+ function collectEvents(svc, loop) {
11
+ if (!loop) {
12
+ return svc.list();
13
+ }
14
+ const events = [
15
+ ...svc.list({ created_loop_release_id: loop }),
16
+ ...svc.list({ updated_loop_release_id: loop })
17
+ ];
18
+ // Deduplicate by id.
19
+ const seen = new Set();
20
+ return events.filter((e) => {
21
+ const key = e?.id ?? '';
22
+ if (!key || seen.has(key))
23
+ return false;
24
+ seen.add(key);
25
+ return true;
26
+ });
27
+ }
28
+ /**
29
+ * Companion query: loop lifecycle counts. We compute from the DB so the CLI is
30
+ * the single source of truth.
31
+ */
32
+ function collectLoopCounts(db) {
33
+ const rows = db
34
+ .prepare('SELECT lifecycle_status, COUNT(*) AS n FROM loop_release GROUP BY lifecycle_status')
35
+ .all();
36
+ return rows.reduce((acc, r) => {
37
+ acc[r.lifecycle_status] = r.n;
38
+ return acc;
39
+ }, {});
40
+ }
41
+ /** Companion query: bee lifecycle counts, narrowed by `--bee` when given. */
42
+ function collectBeeCounts(db, bee) {
43
+ const rows = db
44
+ .prepare('SELECT bee_name, COUNT(*) AS n FROM bee_release GROUP BY bee_name ORDER BY bee_name ASC')
45
+ .all();
46
+ return rows.filter((r) => bee === undefined || r.bee_name === bee);
47
+ }
48
+ function statusData(options, events, loopCounts, beeCounts) {
49
+ return {
50
+ filters: {
51
+ ...(options.loop !== undefined ? { loop: options.loop } : {}),
52
+ ...(options.bee !== undefined ? { bee: options.bee } : {})
53
+ },
54
+ crystallization_events: events.length,
55
+ events: events.map((e) => ({
56
+ id: e?.id,
57
+ trigger: e?.trigger,
58
+ lifecycle_status: e?.lifecycle_status,
59
+ created_loop_release_id: e?.created_loop_release_id,
60
+ created_bee_release_id: e?.created_bee_release_id,
61
+ updated_loop_release_id: e?.updated_loop_release_id,
62
+ updated_bee_release_id: e?.updated_bee_release_id,
63
+ created_at: e?.created_at
64
+ })),
65
+ loop_release_counts_by_lifecycle: loopCounts,
66
+ bee_release_counts_by_name: beeCounts,
67
+ nextActions: [
68
+ options.loop
69
+ ? `Run \`peaks loop show --loop ${options.loop}\` for the loop detail view.`
70
+ : "Pass --loop <id> to drill into a specific loop's crystallization history."
71
+ ]
72
+ };
73
+ }
74
+ async function runAssetStatus(io, options) {
75
+ try {
76
+ const db = openAssetDb(resolveAssetProjectRoot(options.project));
77
+ try {
78
+ const svc = createCrystallizationService(db);
79
+ const events = collectEvents(svc, options.loop);
80
+ const loopCounts = collectLoopCounts(db);
81
+ const beeCounts = collectBeeCounts(db, options.bee);
82
+ printResult(io, ok('asset.status', statusData(options, events, loopCounts, beeCounts), [], []), options.json);
83
+ }
84
+ finally {
85
+ db.close();
86
+ }
87
+ }
88
+ catch (err) {
89
+ printResult(io, fail('asset.status', 'ASSET_STATUS_FAILED', getErrorMessage(err), { loop: options.loop, bee: options.bee }, ['Verify the loop / bee identifiers.']), options.json);
90
+ process.exitCode = 1;
91
+ }
92
+ }
93
+ export function registerAssetStatusCommand(asset, io) {
94
+ addJsonOption(asset
95
+ .command('status')
96
+ .description('M5: list loop + bee lifecycle state. With --loop, returns the loop + all linked bee_releases + all crystallization events referencing them.')
97
+ .option('--loop <id>', 'filter by loop_release id')
98
+ .option('--bee <name>', 'filter by bee_name')
99
+ .option('--project <path>', 'project root (default: cwd)')).action((options) => runAssetStatus(io, options));
100
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * `peaks audit artifact` runners — first-class CLI surface for the 4 audit
3
+ * artifact types. Replaces the 2026-06-22 "hand `git add` into
4
+ * .peaks/memory/" anti-pattern that left 4 orphan files. Each kind routes to
5
+ * exactly one writer in artifact-writer.ts; the writer enforces canonical
6
+ * frontmatter, so the memory-shape guard never fires for new writes.
7
+ *
8
+ * The action body moved out of `audit-commands.ts` verbatim; the registrar now
9
+ * only wires the commands and delegates. Every envelope, error code and hint
10
+ * string is unchanged.
11
+ */
12
+ import { type ProgramIO } from '../cli-helpers.js';
13
+ import { type ArtifactWriteOptions } from './audit-command-shared.js';
14
+ export declare const ARTIFACT_GROUP_DESCRIPTION = "Manage audit artifacts (decision / prompt / machine-output / narrative) under .peaks/memory/";
15
+ export declare const ARTIFACT_WRITE_DESCRIPTION = "Persist a single audit artifact to .peaks/memory/ via the artifact-writer (canonical frontmatter)";
16
+ export declare function runArtifactWrite(options: ArtifactWriteOptions, io: ProgramIO): void;
@@ -0,0 +1,170 @@
1
+ /**
2
+ * `peaks audit artifact` runners — first-class CLI surface for the 4 audit
3
+ * artifact types. Replaces the 2026-06-22 "hand `git add` into
4
+ * .peaks/memory/" anti-pattern that left 4 orphan files. Each kind routes to
5
+ * exactly one writer in artifact-writer.ts; the writer enforces canonical
6
+ * frontmatter, so the memory-shape guard never fires for new writes.
7
+ *
8
+ * The action body moved out of `audit-commands.ts` verbatim; the registrar now
9
+ * only wires the commands and delegates. Every envelope, error code and hint
10
+ * string is unchanged.
11
+ */
12
+ import { existsSync, readFileSync } from 'node:fs';
13
+ import { resolve } from 'node:path';
14
+ import { fail, ok } from 'peaks-loop-shared/result';
15
+ import { writeDecision, writeMachineOutput, writeNarrative, writePrompt } from '../../services/audit/artifact-writer.js';
16
+ import { parseRedLineAuditInput, RedLineAuditInputError } from '../../services/audit/red-line-audit-input.js';
17
+ import { getErrorMessage, printResult } from '../cli-helpers.js';
18
+ import { isSupportedArtifactKind, PROJECT_PATH_HINT, SUPPORTED_ARTIFACT_KINDS, validateProjectRoot } from './audit-command-shared.js';
19
+ import { emptyArtifactWriteRecord } from './audit-refusal-data.js';
20
+ export const ARTIFACT_GROUP_DESCRIPTION = 'Manage audit artifacts (decision / prompt / machine-output / narrative) under .peaks/memory/';
21
+ export const ARTIFACT_WRITE_DESCRIPTION = 'Persist a single audit artifact to .peaks/memory/ via the artifact-writer (canonical frontmatter)';
22
+ const INPUT_PATH_HINT = 'Verify the --input path is correct (relative paths resolve against cwd)';
23
+ /** Length of the `YYYY-MM-DD` prefix of an ISO timestamp. */
24
+ const ISO_DATE_LENGTH = 10;
25
+ /**
26
+ * Names the unreachable `--kind` without tripping the template-expression rule:
27
+ * by the time the `default` arm runs, the narrowing has reduced `kind` to
28
+ * `never`, so the message is built from a `string` parameter instead.
29
+ */
30
+ function unreachableKindError(kind) {
31
+ return new Error(`unreachable: kind=${kind}`);
32
+ }
33
+ function refuseArtifactWrite(refusal) {
34
+ printResult(refusal.io, fail('audit.artifact.write', refusal.code, refusal.message, emptyArtifactWriteRecord(refusal.kind), refusal.nextActions), refusal.json);
35
+ process.exitCode = 1;
36
+ }
37
+ function writeByKind(request) {
38
+ const writeOpts = {
39
+ projectRoot: request.projectRoot,
40
+ dryRun: request.dryRun,
41
+ ...(request.rid ? { rid: request.rid } : {})
42
+ };
43
+ switch (request.kind) {
44
+ case 'prompt': {
45
+ const body = readFileSync(request.inputAbs, 'utf8');
46
+ return writePrompt({ name: request.baseName, description: request.description, body }, writeOpts);
47
+ }
48
+ case 'machine-output': {
49
+ const json = readFileSync(request.inputAbs, 'utf8');
50
+ return writeMachineOutput({ name: request.baseName, description: request.description, json }, writeOpts);
51
+ }
52
+ case 'narrative': {
53
+ const body = readFileSync(request.inputAbs, 'utf8');
54
+ return writeNarrative({ name: request.baseName, description: request.description, body }, writeOpts);
55
+ }
56
+ case 'decision': {
57
+ // `--input` is a RedLineAudit JSON document — typically
58
+ // an archived `peaks audit static` result — validated field by field
59
+ // before it reaches the writer, because the writer renders whatever
60
+ // it is given into a memory record with no further checks.
61
+ // `--name` and `--description` do not apply: the decision slug and
62
+ // title come from the scan date (and `--rid`), exactly as
63
+ // `peaks audit static --record` derives them.
64
+ const audit = parseRedLineAuditInput(readFileSync(request.inputAbs, 'utf8'));
65
+ return writeDecision(audit, writeOpts);
66
+ }
67
+ default: {
68
+ // Unreachable: isSupportedArtifactKind already filtered.
69
+ throw unreachableKindError(request.kind);
70
+ }
71
+ }
72
+ }
73
+ function artifactWriteNextActions(record) {
74
+ return [
75
+ `Artifact written via ${record.kind} writer.`,
76
+ record.indexSynced
77
+ ? 'Memory index regenerated; entry will appear in `peaks project memories` on next read.'
78
+ : 'Memory index NOT regenerated; run `peaks project memories --project <root>` to refresh.'
79
+ ];
80
+ }
81
+ function persistArtifact(request) {
82
+ let record;
83
+ try {
84
+ record = writeByKind(request);
85
+ }
86
+ catch (err) {
87
+ // A malformed decision input is the caller's document, not a write
88
+ // failure: name it as input so the remedy reads as "fix the JSON field".
89
+ refuseArtifactWrite({
90
+ io: request.io,
91
+ json: request.json,
92
+ kind: request.kind,
93
+ code: err instanceof RedLineAuditInputError ? 'AUDIT_ARTIFACT_INPUT_INVALID' : 'WRITE_FAILED',
94
+ message: getErrorMessage(err),
95
+ nextActions: err instanceof RedLineAuditInputError
96
+ ? [
97
+ 'Inspect the named field; --kind decision takes the JSON shape `peaks audit static --json` prints.'
98
+ ]
99
+ : ['Inspect the error message; for --kind machine-output ensure --input is valid JSON']
100
+ });
101
+ return;
102
+ }
103
+ printResult(request.io, ok('audit.artifact.write', record, [], artifactWriteNextActions(record)), request.json);
104
+ }
105
+ /**
106
+ * The three refusals `--project`, `--kind` and `--input` can earn, in the
107
+ * order the original action checked them. Prints the envelope and sets the
108
+ * exit code on failure.
109
+ */
110
+ function precheckArtifactWrite(options, io) {
111
+ const validation = validateProjectRoot(options.project);
112
+ if (!validation.ok) {
113
+ refuseArtifactWrite({
114
+ io,
115
+ json: options.json,
116
+ kind: 'narrative',
117
+ code: validation.code,
118
+ message: validation.message,
119
+ nextActions: [PROJECT_PATH_HINT]
120
+ });
121
+ return { ok: false };
122
+ }
123
+ if (!isSupportedArtifactKind(options.kind)) {
124
+ refuseArtifactWrite({
125
+ io,
126
+ json: options.json,
127
+ kind: 'narrative',
128
+ code: 'INVALID_KIND',
129
+ message: `Unknown --kind "${options.kind}". Supported: ${SUPPORTED_ARTIFACT_KINDS.join(', ')}.`,
130
+ nextActions: [
131
+ `Re-run with --kind <one of ${SUPPORTED_ARTIFACT_KINDS.join(' | ')}>`,
132
+ 'See .peaks/memory/audit-artifact-convention.md for the 4 artifact types.'
133
+ ]
134
+ });
135
+ return { ok: false };
136
+ }
137
+ const inputAbs = resolve(options.input);
138
+ if (!existsSync(inputAbs)) {
139
+ refuseArtifactWrite({
140
+ io,
141
+ json: options.json,
142
+ kind: options.kind,
143
+ code: 'INPUT_NOT_FOUND',
144
+ message: `--input file not found: ${options.input}`,
145
+ nextActions: [INPUT_PATH_HINT]
146
+ });
147
+ return { ok: false };
148
+ }
149
+ return { ok: true, projectRoot: validation.projectRoot, kind: options.kind, inputAbs };
150
+ }
151
+ export function runArtifactWrite(options, io) {
152
+ const precheck = precheckArtifactWrite(options, io);
153
+ if (!precheck.ok) {
154
+ return;
155
+ }
156
+ const baseName = options.name ?? options.input.split(/[\\/]/).pop() ?? 'untitled';
157
+ const description = options.description ??
158
+ `Audit artifact (${precheck.kind}) archived via peaks audit artifact write on ${new Date().toISOString().slice(0, ISO_DATE_LENGTH)}.`;
159
+ persistArtifact({
160
+ io,
161
+ json: options.json,
162
+ kind: precheck.kind,
163
+ inputAbs: precheck.inputAbs,
164
+ baseName,
165
+ description,
166
+ projectRoot: precheck.projectRoot,
167
+ dryRun: options.dryRun === true,
168
+ ...(options.rid ? { rid: options.rid } : {})
169
+ });
170
+ }
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Shared plumbing for the `peaks audit *` command family.
3
+ *
4
+ * Split out of `audit-commands.ts` (file-size cap) so each runner module can
5
+ * read the option shapes, the `--project` validation and the two whitelists
6
+ * without importing the registrar back. Dependency direction is one-way:
7
+ * nothing here imports `audit-commands.ts`.
8
+ */
9
+ import type { AuditGoalOutput } from '../../services/audit/audit-goal-types.js';
10
+ import type { AgentShieldState } from '../../services/audit/static-service.js';
11
+ import type { ArtifactKind } from '../../services/audit/artifact-writer.js';
12
+ import type { AuditDecisionRecord } from '../../services/audit/decision-writer.js';
13
+ import type { RedLineAudit } from '../../services/audit/types.js';
14
+ export type RedLinesOptions = {
15
+ project: string;
16
+ json?: boolean;
17
+ noColor?: boolean;
18
+ };
19
+ export type StaticAuditOptions = {
20
+ project: string;
21
+ json?: boolean;
22
+ noColor?: boolean;
23
+ record?: boolean;
24
+ rid?: string;
25
+ };
26
+ export type AuditGoalOptions = {
27
+ project: string;
28
+ need: string;
29
+ llmProvider?: string;
30
+ json?: boolean;
31
+ };
32
+ export type ArtifactWriteOptions = {
33
+ project: string;
34
+ kind: string;
35
+ input: string;
36
+ description?: string;
37
+ name?: string;
38
+ rid?: string;
39
+ dryRun?: boolean;
40
+ json?: boolean;
41
+ };
42
+ export type ProseRatioOptions = {
43
+ project: string;
44
+ target: string;
45
+ json?: boolean;
46
+ };
47
+ export declare const SUPPORTED_ARTIFACT_KINDS: readonly ArtifactKind[];
48
+ export declare function isSupportedArtifactKind(value: string): value is ArtifactKind;
49
+ /** Whitelist of supported `--llm-provider` values for `peaks audit goal`. */
50
+ export declare const SUPPORTED_LLM_PROVIDERS: readonly ["anthropic", "stub"];
51
+ export type SupportedLlmProvider = (typeof SUPPORTED_LLM_PROVIDERS)[number];
52
+ /**
53
+ * The real provider is the default: `peaks audit goal` is the entry gate for
54
+ * every peaks-* workflow, so it must audit by default and only scaffold when
55
+ * a caller explicitly asks for `stub`.
56
+ */
57
+ export declare const DEFAULT_LLM_PROVIDER: SupportedLlmProvider;
58
+ export declare function isSupportedLlmProvider(value: string): value is SupportedLlmProvider;
59
+ /** The one hint every `--project` refusal carries, verbatim. */
60
+ export declare const PROJECT_PATH_HINT = "Verify the project path exists and is a directory";
61
+ /** The one hint every scanner-failure refusal carries, verbatim. */
62
+ export declare const SCANNER_HINT = "Inspect scanner logs and re-run with the same --project path";
63
+ /** `--project` is valid only when it resolves to an existing directory. */
64
+ export type ProjectRootValidation = {
65
+ ok: true;
66
+ projectRoot: string;
67
+ } | {
68
+ ok: false;
69
+ code: string;
70
+ message: string;
71
+ };
72
+ export declare function validateProjectRoot(projectArg: string): ProjectRootValidation;
73
+ /** `audit-failed` is a failure envelope's status — never a scaffold, never a success. */
74
+ export type AuditGoalStatus = 'audit-complete' | 'scaffold-only' | 'audit-failed';
75
+ export interface AuditGoalData {
76
+ readonly status: AuditGoalStatus;
77
+ /** Which LLM produced (or failed to produce) the audit. `unresolved` = rejected before binding. */
78
+ readonly providerBinding: 'anthropic-messages-api' | 'stub' | 'unresolved';
79
+ readonly need: string;
80
+ readonly projectRoot: string;
81
+ /** The validated 6-dimension audit. Present on success only. */
82
+ readonly result?: AuditGoalOutput;
83
+ /** The bound model. Present on a real run only. */
84
+ readonly model?: string;
85
+ /**
86
+ * Environment variables the binding needed and did not find. Present on a
87
+ * binding failure only, and verbatim: `fail()` redacts `message`, so this
88
+ * is the channel that reliably names what the operator must set.
89
+ */
90
+ readonly missingEnv?: readonly string[];
91
+ }
92
+ export interface StaticAuditData {
93
+ readonly audit: RedLineAudit;
94
+ readonly agentShield: AgentShieldState;
95
+ /** Populated only when `--record` is passed. Persisted decision record path. */
96
+ readonly decision?: AuditDecisionRecord;
97
+ }