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,129 @@
1
+ // src/cli/commands/memory-list-command.ts
2
+ //
3
+ // `peaks memory list` — read `.peaks/memory/index.json`, optionally with fzf
4
+ // multi-select, plus the Slice B `--summary` view. Extracted from
5
+ // `memory-commands.ts`; the envelope, the flags and the exported symbol names
6
+ // are unchanged.
7
+ import { join } from 'node:path';
8
+ import { ok } from 'peaks-loop-shared/result';
9
+ import { boundedNames, fitSummaryToBytes } from '../../services/context/summary-view.js';
10
+ import { pickFromList } from '../../services/fuzzy-matching/fzf-pick-service.js';
11
+ import { loadMemoryIndex } from '../../services/memory/memory-search-service.js';
12
+ import { printResult } from '../cli-helpers.js';
13
+ import { memoryFailure, resolveKindFilter, resolveMemoryProjectRoot } from './memory-command-shared.js';
14
+ /**
15
+ * Slice B: bounded view of `memory list`. `count` is the true total; `names`
16
+ * carries `name (kind)` labels for the first N entries.
17
+ */
18
+ export function buildMemoryListSummary(data) {
19
+ const label = (e) => `${e.name} (${e.kind})`;
20
+ const view = {
21
+ view: 'summary',
22
+ indexPath: data.snapshot.indexPath,
23
+ version: data.snapshot.version,
24
+ updatedAt: data.snapshot.updatedAt,
25
+ total: data.entries.length,
26
+ kindFilter: data.kindFilter ?? null,
27
+ entries: boundedNames(data.entries.map(label))
28
+ };
29
+ if (data.pickedOutputPath !== null) {
30
+ view.picked = boundedNames(data.pickedEntries.map(label));
31
+ view.pickedOutputPath = data.pickedOutputPath;
32
+ view.fzfVersion = data.fzfVersion;
33
+ }
34
+ return fitSummaryToBytes(view);
35
+ }
36
+ export async function runMemoryList(io, options) {
37
+ const projectRoot = resolveMemoryProjectRoot(options.project);
38
+ try {
39
+ const snapshot = loadMemoryIndex(projectRoot);
40
+ const kindFilter = resolveKindFilter(options.kind);
41
+ const entries = kindFilter === undefined
42
+ ? snapshot.entries
43
+ : snapshot.entries.filter((e) => e.kind === kindFilter);
44
+ const picked = await pickMemoryEntries(projectRoot, entries, kindFilter, options);
45
+ const data = memoryListData({ snapshot, entries, kindFilter, options, picked });
46
+ printResult(io, ok('memory.list', data, [], listNextActions(entries, picked)), options.json);
47
+ }
48
+ catch (error) {
49
+ printResult(io, memoryFailure({
50
+ command: 'memory.list',
51
+ fallbackCode: 'MEMORY_LIST_FAILED',
52
+ error,
53
+ projectRoot,
54
+ byCode: {
55
+ INDEX_MISSING: 'Run `peaks memory extract` to build the index from memory/*.md files'
56
+ }
57
+ }), options.json);
58
+ process.exitCode = 1;
59
+ }
60
+ }
61
+ /** The pick notice and the empty-index notice, in that order. */
62
+ function listNextActions(entries, picked) {
63
+ const nextActions = [];
64
+ if (picked.pickedOutputPath !== null) {
65
+ nextActions.push(`Picked ${picked.pickedEntries.length} entr(ies); written to ${picked.pickedOutputPath}`);
66
+ }
67
+ if (entries.length === 0) {
68
+ nextActions.push('No entries match; run `peaks memory extract` to build the index from memory/*.md files.');
69
+ }
70
+ return nextActions;
71
+ }
72
+ /**
73
+ * Slice B: `--summary` swaps the full entry array for a bounded
74
+ * `{count, names}` view. The default (no flag) view is byte-identical to
75
+ * before — the flag is strictly opt-in.
76
+ */
77
+ function memoryListData(input) {
78
+ const { snapshot, entries, kindFilter, options, picked } = input;
79
+ if (options.summary === true) {
80
+ return buildMemoryListSummary({ snapshot, entries, kindFilter, ...picked });
81
+ }
82
+ return {
83
+ indexPath: snapshot.indexPath,
84
+ version: snapshot.version,
85
+ updatedAt: snapshot.updatedAt,
86
+ total: entries.length,
87
+ kindFilter: kindFilter ?? null,
88
+ entries,
89
+ ...(options.pick === true
90
+ ? {
91
+ picked: picked.pickedEntries,
92
+ pickedOutputPath: picked.pickedOutputPath,
93
+ fzfVersion: picked.fzfVersion
94
+ }
95
+ : {})
96
+ };
97
+ }
98
+ /** The `--pick` branch, or the unchanged entry list when the flag is absent. */
99
+ async function pickMemoryEntries(projectRoot, entries, kindFilter, options) {
100
+ if (options.pick !== true) {
101
+ return { pickedEntries: entries, pickedOutputPath: null, fzfVersion: null };
102
+ }
103
+ const outputPath = join(projectRoot, '.peaks', 'memory', 'picked.json');
104
+ const byName = new Map(entries.map((e) => [e.name, e]));
105
+ const result = await pickFromList({
106
+ items: entries,
107
+ formatLine: (entry) => `${entry.name} | ${entry.kind} | ${entry.description.slice(0, 60)}`,
108
+ parseLine: (line) => {
109
+ const parts = line.split('|').map((p) => p.trim());
110
+ if (parts.length < 1)
111
+ return null;
112
+ const name = parts[0];
113
+ if (name === undefined || name.length === 0)
114
+ return null;
115
+ return byName.get(name) ?? null;
116
+ },
117
+ outputPath,
118
+ meta: { kindFilter: kindFilter ?? null, totalCandidates: entries.length },
119
+ ...(options.fzfBin !== undefined ? { fzfBin: options.fzfBin } : {}),
120
+ projectRoot,
121
+ multi: true,
122
+ prompt: 'memory> '
123
+ });
124
+ return {
125
+ pickedEntries: [...result.picked],
126
+ pickedOutputPath: result.outputPath,
127
+ fzfVersion: result.fzfVersion
128
+ };
129
+ }
@@ -0,0 +1,9 @@
1
+ import { type MemoryReindexReport } from '../../services/memory/project-memory-service.js';
2
+ import { type ProgramIO } from '../cli-helpers.js';
3
+ import { type MemoryReindexCommandOptions } from './memory-command-shared.js';
4
+ /**
5
+ * `memory reindex`. The full report's arrays stay on disk / in the default
6
+ * envelope; this replaces them with `{count, names}` views (≤ 2 KB).
7
+ */
8
+ export declare function buildMemoryReindexSummary(report: MemoryReindexReport): Record<string, unknown>;
9
+ export declare function runMemoryReindex(io: ProgramIO, options: MemoryReindexCommandOptions): Promise<void>;
@@ -0,0 +1,78 @@
1
+ // src/cli/commands/memory-reindex-command.ts
2
+ //
3
+ // `peaks memory reindex` — rebuild `.peaks/memory/index.json` from disk and
4
+ // regenerate `MEMORY.md`. Dry-run by default; `--apply` writes. Extracted from
5
+ // `memory-commands.ts`; the envelope, the flags and the exported symbol names
6
+ // are unchanged.
7
+ import { fail, ok } from 'peaks-loop-shared/result';
8
+ import { boundedNames, fitSummaryToBytes } from '../../services/context/summary-view.js';
9
+ import { executeMemoryReindex } from '../../services/memory/project-memory-service.js';
10
+ import { printResult } from '../cli-helpers.js';
11
+ import { memoryFailure, resolveMemoryProjectRoot } from './memory-command-shared.js';
12
+ /**
13
+ * `memory reindex`. The full report's arrays stay on disk / in the default
14
+ * envelope; this replaces them with `{count, names}` views (≤ 2 KB).
15
+ */
16
+ export function buildMemoryReindexSummary(report) {
17
+ const view = {
18
+ view: 'summary',
19
+ apply: report.apply,
20
+ projectRoot: report.projectRoot,
21
+ memoryDir: report.memoryDir,
22
+ indexPath: report.indexPath,
23
+ memoryMdPath: report.memoryMdPath,
24
+ scannedFiles: report.scannedFiles,
25
+ indexed: report.indexed,
26
+ indexedByKind: report.indexedByKind,
27
+ unclassified: boundedNames(report.unclassified.map((u) => `${u.name}${u.rawKind === null ? '' : ` (${u.rawKind})`}`)),
28
+ nameConflicts: boundedNames(report.nameConflicts.map((c) => c.name)),
29
+ orphanIndex: boundedNames(report.orphanIndex.map((o) => o.name)),
30
+ orphanDisk: boundedNames(report.orphanDisk.map((p) => p.split(/[\\/]/).pop() ?? p)),
31
+ memoryMd: report.memoryMd,
32
+ writtenFiles: boundedNames(report.writtenFiles.map((p) => p.split(/[\\/]/).pop() ?? p))
33
+ };
34
+ return fitSummaryToBytes(view);
35
+ }
36
+ export async function runMemoryReindex(io, options) {
37
+ const projectRoot = resolveMemoryProjectRoot(options.project);
38
+ if (options.dryRun === true && options.apply === true) {
39
+ printResult(io, fail('memory.reindex', 'INVALID_MEMORY_REINDEX_FLAGS', 'Use either --dry-run or --apply, not both', {}, ['Run without --apply to preview the drift report, or pass --apply to rebuild']), options.json);
40
+ process.exitCode = 1;
41
+ return;
42
+ }
43
+ try {
44
+ const report = executeMemoryReindex({ projectRoot, apply: options.apply === true });
45
+ // Slice B: `--summary` keeps the scalar drift counts + names-of-first-N;
46
+ // the full report (with every unclassified/orphan path) stays available
47
+ // by omitting the flag. Default shape is unchanged.
48
+ const data = options.summary === true ? buildMemoryReindexSummary(report) : report;
49
+ printResult(io, ok('memory.reindex', data, [], reindexNextActions(report, options)), options.json);
50
+ }
51
+ catch (error) {
52
+ printResult(io, memoryFailure({
53
+ command: 'memory.reindex',
54
+ fallbackCode: 'MEMORY_REINDEX_FAILED',
55
+ error,
56
+ projectRoot,
57
+ suggestions: ['Check that the project has a readable .peaks/memory directory']
58
+ }), options.json);
59
+ process.exitCode = 1;
60
+ }
61
+ }
62
+ /** The drift notices the report earns, in the report's own field order. */
63
+ function reindexNextActions(report, options) {
64
+ const nextActions = [];
65
+ if (options.apply !== true) {
66
+ nextActions.push('Preview only — re-run with --apply to rebuild index.json and regenerate MEMORY.md.');
67
+ }
68
+ if (report.unclassified.length > 0) {
69
+ nextActions.push(`${report.unclassified.length} file(s) have no resolvable kind; add \`metadata.type\` (or \`kind:\`) to index them.`);
70
+ }
71
+ if (report.orphanIndex.length > 0) {
72
+ nextActions.push(`${report.orphanIndex.length} previous index entry(ies) point at missing files; they are dropped from the rebuilt index.`);
73
+ }
74
+ if (report.nameConflicts.length > 0) {
75
+ nextActions.push(`${report.nameConflicts.length} name collision(s) across files; both entries are kept — rename one file to disambiguate.`);
76
+ }
77
+ return nextActions;
78
+ }
@@ -0,0 +1,3 @@
1
+ import { type ProgramIO } from '../cli-helpers.js';
2
+ import { type MemoryRotateCommandOptions } from './memory-command-shared.js';
3
+ export declare function runMemoryRotate(io: ProgramIO, options: MemoryRotateCommandOptions): Promise<void>;
@@ -0,0 +1,55 @@
1
+ // src/cli/commands/memory-rotate-command.ts
2
+ //
3
+ // `peaks memory rotate` — tier-driven retention for `.peaks/memory/`
4
+ // (sediment pruning policy, tier 1: archive, never delete). Dry-run by default;
5
+ // `--apply` moves tier-C candidates into `archived/`. Extracted from
6
+ // `memory-commands.ts`; the envelope, the flags and the exported symbol name
7
+ // are unchanged.
8
+ import { fail, ok } from 'peaks-loop-shared/result';
9
+ import { executeMemoryRotate } from '../../services/memory/memory-rotate-service.js';
10
+ import { printResult } from '../cli-helpers.js';
11
+ import { memoryFailure, resolveMemoryProjectRoot } from './memory-command-shared.js';
12
+ export async function runMemoryRotate(io, options) {
13
+ const projectRoot = resolveMemoryProjectRoot(options.project);
14
+ if (options.dryRun === true && options.apply === true) {
15
+ printResult(io, fail('memory.rotate', 'INVALID_MEMORY_ROTATE_FLAGS', 'Use either --dry-run or --apply, not both', {}, [
16
+ 'Run without --apply to preview the rotation plan, or pass --apply to archive tier-C candidates'
17
+ ]), options.json);
18
+ process.exitCode = 1;
19
+ return;
20
+ }
21
+ try {
22
+ const report = executeMemoryRotate({ projectRoot, apply: options.apply === true });
23
+ printResult(io, ok('memory.rotate', report, report.warnings, rotateNextActions(report, options)), options.json);
24
+ if (report.refused)
25
+ process.exitCode = 1;
26
+ }
27
+ catch (error) {
28
+ printResult(io, memoryFailure({
29
+ command: 'memory.rotate',
30
+ fallbackCode: 'MEMORY_ROTATE_FAILED',
31
+ error,
32
+ projectRoot,
33
+ suggestions: ['Check that the project has a readable .peaks/memory directory']
34
+ }), options.json);
35
+ process.exitCode = 1;
36
+ }
37
+ }
38
+ /** The refusal / preview / exclusion / tier-D notices the plan earns, in order. */
39
+ function rotateNextActions(report, options) {
40
+ const nextActions = [];
41
+ if (report.refused) {
42
+ nextActions.push(`Refused to apply: ${report.refusalReasons.join('; ')}`);
43
+ }
44
+ else if (options.apply !== true) {
45
+ nextActions.push('Preview only — re-run with --apply to move the tier-C candidates into archived/.');
46
+ }
47
+ if (report.excluded.length > 0) {
48
+ nextActions.push(`${report.excluded.length} candidate(s) excluded by a safety gate (see \`excluded\`).`);
49
+ }
50
+ const deleteCandidates = report.candidates.filter((candidate) => candidate.action === 'delete-candidate');
51
+ if (deleteCandidates.length > 0) {
52
+ nextActions.push(`${deleteCandidates.length} tier-D file(s) are delete-candidates only; peaks never deletes them — remove by hand if you are sure.`);
53
+ }
54
+ return nextActions;
55
+ }
@@ -0,0 +1,7 @@
1
+ import { type ProgramIO } from '../cli-helpers.js';
2
+ import { type MemorySearchCommandOptions } from './memory-command-shared.js';
3
+ /**
4
+ * Run the memory search subcommand. Extracted so unit tests can
5
+ * exercise the full envelope without spawning a subprocess.
6
+ */
7
+ export declare function runMemorySearch(io: ProgramIO, options: MemorySearchCommandOptions): Promise<void>;
@@ -0,0 +1,46 @@
1
+ // src/cli/commands/memory-search-command.ts
2
+ //
3
+ // `peaks memory search` — deterministic, local, zero-token fuzzy search over
4
+ // the memory index. Extracted from `memory-commands.ts`; the envelope, the
5
+ // flags and the exported symbol name are unchanged.
6
+ import { ok } from 'peaks-loop-shared/result';
7
+ import { searchMemory } from '../../services/memory/memory-search-service.js';
8
+ import { printResult } from '../cli-helpers.js';
9
+ import { memoryFailure, resolveKindFilter, resolveMemoryProjectRoot } from './memory-command-shared.js';
10
+ /** The one action each named failure earns. */
11
+ const SEARCH_HINTS = {
12
+ INDEX_MISSING: 'Run `peaks memory extract --apply` to build the index from memory/*.md files',
13
+ EMPTY_QUERY: 'Use `peaks memory index` to list all entries'
14
+ };
15
+ /**
16
+ * Run the memory search subcommand. Extracted so unit tests can
17
+ * exercise the full envelope without spawning a subprocess.
18
+ */
19
+ export async function runMemorySearch(io, options) {
20
+ const projectRoot = resolveMemoryProjectRoot(options.project);
21
+ const kindFilter = resolveKindFilter(options.kind);
22
+ try {
23
+ const matches = searchMemory({
24
+ query: options.query,
25
+ projectRoot,
26
+ ...(options.limit !== undefined ? { limit: options.limit } : {}),
27
+ ...(kindFilter !== undefined ? { kind: kindFilter } : {})
28
+ });
29
+ printResult(io, ok('memory.search', {
30
+ query: options.query,
31
+ total: matches.length,
32
+ matches,
33
+ warnings: []
34
+ }, []), options.json);
35
+ }
36
+ catch (error) {
37
+ printResult(io, memoryFailure({
38
+ command: 'memory.search',
39
+ fallbackCode: 'MEMORY_SEARCH_FAILED',
40
+ error,
41
+ projectRoot,
42
+ byCode: SEARCH_HINTS
43
+ }), options.json);
44
+ process.exitCode = 1;
45
+ }
46
+ }
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ import { type ProgramIO } from '../cli-helpers.js';
3
+ export declare function registerOpenSpecArchiveCommand(openspec: Command, io: ProgramIO): void;
@@ -0,0 +1,55 @@
1
+ // src/cli/commands/openspec-archive-command.ts
2
+ //
3
+ // `peaks openspec archive <changeId>`. Extracted from `openspec-commands.ts`;
4
+ // the registered name, description, options and envelopes are unchanged.
5
+ import { archiveOpenSpecChange, OpenSpecArchiveError } from '../../services/openspec/openspec-archive-service.js';
6
+ import { ok } from 'peaks-loop-shared/result';
7
+ import { addJsonOption, printResult } from '../cli-helpers.js';
8
+ import { failOpenSpec, OPENSPEC_PATH_HINT, printArchiveError, printChangeNotFound, toArchiveOptions } from './openspec-command-shared.js';
9
+ /** The `--force` bypasses an archived run reports, in a fixed order. */
10
+ function archiveWarnings(result) {
11
+ const warnings = [];
12
+ if (result.coverageGateBypassed === true) {
13
+ warnings.push('Coverage gate bypassed via --force; archived with at least one uncovered requirement.');
14
+ }
15
+ if (result.coverageMismatchBypassed === true) {
16
+ warnings.push('Coverage summary mismatch bypassed via --force; archived with at least one capability below 100%.');
17
+ }
18
+ return warnings;
19
+ }
20
+ const ARCHIVE_DESCRIPTION = 'Move an OpenSpec change under openspec/changes/<archiveDir>/<id>/ (dry-run by default)';
21
+ const FORCE_DESCRIPTION = 'bypass the Pre-cond 2 Coverage Evidence gate (use only after confirming the gap is acceptable for this archive)';
22
+ const COVERAGE_SUMMARY_DESCRIPTION = 'override coverage-summary.json discovery (Fix-6B). Default: <projectRoot>/coverage/coverage-summary.json, then <projectRoot>/openspec/coverage-summary.json';
23
+ export function registerOpenSpecArchiveCommand(openspec, io) {
24
+ addJsonOption(openspec
25
+ .command('archive')
26
+ .description(ARCHIVE_DESCRIPTION)
27
+ .argument('<changeId>', 'OpenSpec change directory name under openspec/changes')
28
+ .option('--project <path>', 'project root containing an openspec/ directory')
29
+ .option('--apply', 'actually move the change directory')
30
+ .option('--force', FORCE_DESCRIPTION)
31
+ .option('--coverage-summary <path>', COVERAGE_SUMMARY_DESCRIPTION)
32
+ .option('--archive-dir <name>', 'archive subdirectory name (default: archive)')).action(async (changeId, options) => {
33
+ try {
34
+ const result = await archiveOpenSpecChange(changeId, toArchiveOptions(options.project, options));
35
+ if (result === null) {
36
+ printChangeNotFound(io, 'openspec.archive', changeId, options.json);
37
+ return;
38
+ }
39
+ printResult(io, ok('openspec.archive', result, archiveWarnings(result), result.applied ? [] : [`Re-run with --apply to move ${result.from} → ${result.to}`]), options.json);
40
+ }
41
+ catch (error) {
42
+ if (error instanceof OpenSpecArchiveError) {
43
+ printArchiveError(io, error, options.json);
44
+ return;
45
+ }
46
+ failOpenSpec(io, 'openspec.archive', {
47
+ code: 'OPENSPEC_ARCHIVE_FAILED',
48
+ error,
49
+ data: { changeId },
50
+ nextActions: OPENSPEC_PATH_HINT,
51
+ json: options.json
52
+ });
53
+ }
54
+ });
55
+ }
@@ -0,0 +1,62 @@
1
+ import type { OpenSpecScanOptions } from '../../services/openspec/openspec-scan-service.js';
2
+ import type { OpenSpecArchiveError, OpenSpecArchiveOptions } from '../../services/openspec/openspec-archive-service.js';
3
+ import type { OpenSpecRenderOptions, OpenSpecRenderRequest } from '../../services/openspec/openspec-render-service.js';
4
+ import type { OpenSpecValidateOptions } from '../../services/openspec/openspec-validate-service.js';
5
+ import { type ProgramIO } from '../cli-helpers.js';
6
+ export type OpenSpecListOptions = {
7
+ project?: string;
8
+ json?: boolean;
9
+ };
10
+ export type OpenSpecShowOptions = OpenSpecListOptions;
11
+ export type OpenSpecToRdOptions = OpenSpecListOptions;
12
+ export type OpenSpecRenderCommandOptions = OpenSpecListOptions & {
13
+ request: string;
14
+ apply?: boolean;
15
+ overwrite?: boolean;
16
+ };
17
+ export type OpenSpecValidateCommandOptions = OpenSpecListOptions & {
18
+ preferExternal?: boolean;
19
+ };
20
+ export type OpenSpecArchiveCommandOptions = OpenSpecListOptions & {
21
+ apply?: boolean;
22
+ force?: boolean;
23
+ coverageSummary?: string;
24
+ archiveDir?: string;
25
+ };
26
+ export type OpenSpecInitCommandOptions = {
27
+ project: string;
28
+ apply?: boolean;
29
+ json?: boolean;
30
+ };
31
+ /** The next action every path/layout failure carries. */
32
+ export declare const OPENSPEC_PATH_HINT: string[];
33
+ /** Everything a verb-specific catch needs to build its failure envelope. */
34
+ export type OpenSpecFailure = {
35
+ readonly code: string;
36
+ readonly error: unknown;
37
+ readonly nextActions: string[];
38
+ readonly json: boolean | undefined;
39
+ readonly data?: Record<string, unknown>;
40
+ };
41
+ export declare function resolveScanOptions(project: string | undefined): OpenSpecScanOptions;
42
+ export declare function loadRenderRequest(requestPath: string): Promise<OpenSpecRenderRequest>;
43
+ /** Print a verb failure and mark the run failed. One call site per catch. */
44
+ export declare function failOpenSpec(io: ProgramIO, command: string, failure: OpenSpecFailure): void;
45
+ /** The `<changeId>` resolution every change-scoped verb shares. */
46
+ export declare function printChangeNotFound(io: ProgramIO, command: string, changeId: string, json: boolean | undefined): void;
47
+ /**
48
+ * Translate `--project` into the service option shape, carrying only the flags
49
+ * the caller actually set (a `false`/`undefined` flag must stay absent, not be
50
+ * written as `false`).
51
+ */
52
+ export declare function toRenderOptions(project: string | undefined, options: OpenSpecRenderCommandOptions): OpenSpecRenderOptions;
53
+ export declare function toValidateOptions(project: string | undefined, options: OpenSpecValidateCommandOptions): OpenSpecValidateOptions;
54
+ export declare function toArchiveOptions(project: string | undefined, options: OpenSpecArchiveCommandOptions): OpenSpecArchiveOptions;
55
+ /**
56
+ * Per-error-code remediation hints for the archive gate.
57
+ * Centralized here so the catch block stays readable and the next-actions
58
+ * can be reviewed in isolation.
59
+ */
60
+ export declare function nextActionsForArchiveError(code: OpenSpecArchiveError['code']): string[];
61
+ /** The `openspec.archive` failure envelope for the gate's own error class. */
62
+ export declare function printArchiveError(io: ProgramIO, error: OpenSpecArchiveError, json: boolean | undefined): void;
@@ -0,0 +1,135 @@
1
+ // src/cli/commands/openspec-command-shared.ts
2
+ //
3
+ // The option shapes, flag translation and envelope printers shared by every
4
+ // `peaks openspec <verb>` subcommand module. Split out of
5
+ // `openspec-commands.ts` so each verb can live in its own file without
6
+ // repeating the `fail(...)` boilerplate eight times.
7
+ import { readFile } from 'node:fs/promises';
8
+ import { getErrorMessage, printResult } from '../cli-helpers.js';
9
+ import { normalizePath } from '../../shared/path-utils.js';
10
+ import { fail } from 'peaks-loop-shared/result';
11
+ /** The next action every path/layout failure carries. */
12
+ export const OPENSPEC_PATH_HINT = [
13
+ 'Check the project path and openspec/ layout before retrying'
14
+ ];
15
+ export function resolveScanOptions(project) {
16
+ if (project === undefined) {
17
+ return {};
18
+ }
19
+ return { openspecRoot: `${normalizePath(project).replace(/\/$/, '')}/openspec` };
20
+ }
21
+ export async function loadRenderRequest(requestPath) {
22
+ const raw = await readFile(requestPath, 'utf8');
23
+ const parsed = JSON.parse(raw);
24
+ if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed)) {
25
+ throw new Error('Render request file must contain a JSON object');
26
+ }
27
+ return parsed;
28
+ }
29
+ /** Print a verb failure and mark the run failed. One call site per catch. */
30
+ export function failOpenSpec(io, command, failure) {
31
+ printResult(io, fail(command, failure.code, getErrorMessage(failure.error), failure.data ?? {}, failure.nextActions), failure.json);
32
+ process.exitCode = 1;
33
+ }
34
+ /** The `<changeId>` resolution every change-scoped verb shares. */
35
+ export function printChangeNotFound(io, command, changeId, json) {
36
+ printResult(io, fail(command, 'OPENSPEC_CHANGE_NOT_FOUND', `OpenSpec change ${changeId} was not found`, { changeId }, [`Verify openspec/changes/${changeId}/ exists`]), json);
37
+ process.exitCode = 1;
38
+ }
39
+ const ROOT_KEY = 'openspecRoot';
40
+ /**
41
+ * Translate `--project` into the service option shape, carrying only the flags
42
+ * the caller actually set (a `false`/`undefined` flag must stay absent, not be
43
+ * written as `false`).
44
+ */
45
+ export function toRenderOptions(project, options) {
46
+ const renderOptions = {};
47
+ const scan = resolveScanOptions(project);
48
+ if (scan.openspecRoot !== undefined) {
49
+ renderOptions[ROOT_KEY] = scan.openspecRoot;
50
+ }
51
+ if (options.apply === true) {
52
+ renderOptions.apply = true;
53
+ }
54
+ if (options.overwrite === true) {
55
+ renderOptions.overwrite = true;
56
+ }
57
+ return renderOptions;
58
+ }
59
+ export function toValidateOptions(project, options) {
60
+ const validateOptions = {};
61
+ const scan = resolveScanOptions(project);
62
+ if (scan.openspecRoot !== undefined) {
63
+ validateOptions[ROOT_KEY] = scan.openspecRoot;
64
+ }
65
+ if (options.preferExternal === true) {
66
+ validateOptions.preferExternal = true;
67
+ }
68
+ return validateOptions;
69
+ }
70
+ export function toArchiveOptions(project, options) {
71
+ const archiveOptions = {};
72
+ const scan = resolveScanOptions(project);
73
+ if (scan.openspecRoot !== undefined) {
74
+ archiveOptions[ROOT_KEY] = scan.openspecRoot;
75
+ }
76
+ if (options.apply === true) {
77
+ archiveOptions.apply = true;
78
+ }
79
+ if (options.force === true) {
80
+ archiveOptions.force = true;
81
+ }
82
+ if (options.coverageSummary !== undefined) {
83
+ archiveOptions.coverageSummaryPath = options.coverageSummary;
84
+ }
85
+ if (options.archiveDir !== undefined) {
86
+ archiveOptions.archiveDirName = options.archiveDir;
87
+ }
88
+ return archiveOptions;
89
+ }
90
+ /**
91
+ * Per-error-code remediation hints for the archive gate.
92
+ * Centralized here so the catch block stays readable and the next-actions
93
+ * can be reviewed in isolation.
94
+ */
95
+ export function nextActionsForArchiveError(code) {
96
+ switch (code) {
97
+ case 'OPENSPEC_COVERAGE_GATE_PARTIAL':
98
+ return [
99
+ 'Update the Coverage Evidence table to mark each failing requirement as covered',
100
+ 'Or re-run with --force to bypass the gate after confirming the gap is acceptable'
101
+ ];
102
+ case 'OPENSPEC_COVERAGE_GATE_FAILED':
103
+ return [
104
+ 'Add the missing Coverage Evidence or Capability Mapping block to proposal.md (see error.message)',
105
+ 'Or re-run with --force to bypass the gate after confirming the gap is acceptable'
106
+ ];
107
+ case 'OPENSPEC_COVERAGE_EVIDENCE_MALFORMED':
108
+ return [
109
+ 'Fix the proposal.md Coverage Evidence table — the heading exists but no parsable rows were found',
110
+ 'Expected shape: | capability | requirement | status | testAnchor | with status in {covered, partial, uncovered}'
111
+ ];
112
+ case 'OPENSPEC_COVERAGE_EVIDENCE_MISSING':
113
+ return [
114
+ 'Run `pnpm test:coverage` (which invokes scripts/coverage-c8.mjs) to generate coverage-summary.json',
115
+ 'Or pass --coverage-summary <path> to point at an existing summary',
116
+ 'Or re-run with --force to bypass the gate'
117
+ ];
118
+ case 'OPENSPEC_COVERAGE_EVIDENCE_STALE':
119
+ return [
120
+ 'Re-run `pnpm test:coverage` to refresh coverage-summary.json',
121
+ 'Or re-run with --force to bypass the gate after confirming the source delta is acceptable'
122
+ ];
123
+ case 'OPENSPEC_COVERAGE_EVIDENCE_MISMATCH':
124
+ return [
125
+ 'Inspect error.detail.mismatches[] — each entry lists the failing capability, file, and actual pct',
126
+ 'Close the coverage gap (add tests or update the Capability Mapping block in proposal.md)',
127
+ 'Or re-run with --force to bypass the gate after confirming the gap is acceptable'
128
+ ];
129
+ }
130
+ }
131
+ /** The `openspec.archive` failure envelope for the gate's own error class. */
132
+ export function printArchiveError(io, error, json) {
133
+ printResult(io, fail('openspec.archive', error.code, getErrorMessage(error), error.detail, nextActionsForArchiveError(error.code)), json);
134
+ process.exitCode = 1;
135
+ }
@@ -1,3 +1,3 @@
1
1
  import type { Command } from 'commander';
2
- import { type ProgramIO } from '../cli-helpers.js';
2
+ import type { ProgramIO } from '../cli-helpers.js';
3
3
  export declare function registerOpenSpecCommands(program: Command, io: ProgramIO): void;