peaks-loop 4.1.3 → 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 (402) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +56 -0
  3. package/README-en.md +1 -1
  4. package/README.md +1 -1
  5. package/dist/cli/commands/asset-command-shared.d.ts +12 -0
  6. package/dist/cli/commands/asset-command-shared.js +45 -0
  7. package/dist/cli/commands/asset-commands.d.ts +6 -1
  8. package/dist/cli/commands/asset-commands.js +11 -372
  9. package/dist/cli/commands/asset-crystallize-command.d.ts +3 -0
  10. package/dist/cli/commands/asset-crystallize-command.js +60 -0
  11. package/dist/cli/commands/asset-crystallize-payload.d.ts +47 -0
  12. package/dist/cli/commands/asset-crystallize-payload.js +85 -0
  13. package/dist/cli/commands/asset-crystallize-runner.d.ts +3 -0
  14. package/dist/cli/commands/asset-crystallize-runner.js +133 -0
  15. package/dist/cli/commands/asset-dispose-command.d.ts +3 -0
  16. package/dist/cli/commands/asset-dispose-command.js +99 -0
  17. package/dist/cli/commands/asset-status-command.d.ts +3 -0
  18. package/dist/cli/commands/asset-status-command.js +100 -0
  19. package/dist/cli/commands/baseline-audit-command.d.ts +3 -0
  20. package/dist/cli/commands/baseline-audit-command.js +64 -0
  21. package/dist/cli/commands/baseline-command-shared.d.ts +23 -0
  22. package/dist/cli/commands/baseline-command-shared.js +39 -0
  23. package/dist/cli/commands/baseline-commands.js +33 -313
  24. package/dist/cli/commands/baseline-freeze-commands.d.ts +4 -0
  25. package/dist/cli/commands/baseline-freeze-commands.js +81 -0
  26. package/dist/cli/commands/baseline-guard-command.d.ts +3 -0
  27. package/dist/cli/commands/baseline-guard-command.js +52 -0
  28. package/dist/cli/commands/baseline-read-commands.d.ts +5 -0
  29. package/dist/cli/commands/baseline-read-commands.js +72 -0
  30. package/dist/cli/commands/baseline-rollback-commands.d.ts +4 -0
  31. package/dist/cli/commands/baseline-rollback-commands.js +88 -0
  32. package/dist/cli/commands/classify-downgrade-command.d.ts +9 -0
  33. package/dist/cli/commands/classify-downgrade-command.js +21 -0
  34. package/dist/cli/commands/classify-run-command.d.ts +9 -0
  35. package/dist/cli/commands/classify-run-command.js +73 -0
  36. package/dist/cli/commands/classify-signals.d.ts +5 -0
  37. package/dist/cli/commands/classify-signals.js +104 -0
  38. package/dist/cli/commands/code-emit-handoff-command.js +40 -3
  39. package/dist/cli/commands/code-gate-step-08-command.js +25 -9
  40. package/dist/cli/commands/codegraph-command-options.d.ts +22 -0
  41. package/dist/cli/commands/codegraph-command-options.js +22 -0
  42. package/dist/cli/commands/codegraph-commands.d.ts +2 -2
  43. package/dist/cli/commands/codegraph-commands.js +14 -397
  44. package/dist/cli/commands/codegraph-config-restore-command.d.ts +3 -0
  45. package/dist/cli/commands/codegraph-config-restore-command.js +200 -0
  46. package/dist/cli/commands/codegraph-proxy-commands.d.ts +10 -0
  47. package/dist/cli/commands/codegraph-proxy-commands.js +159 -0
  48. package/dist/cli/commands/codegraph-repair-commands.d.ts +3 -0
  49. package/dist/cli/commands/codegraph-repair-commands.js +94 -0
  50. package/dist/cli/commands/codegraph-status-command.d.ts +1 -1
  51. package/dist/cli/commands/codegraph-status-command.js +27 -214
  52. package/dist/cli/commands/codegraph-status-integrity.d.ts +44 -0
  53. package/dist/cli/commands/codegraph-status-integrity.js +121 -0
  54. package/dist/cli/commands/codegraph-status-json.d.ts +5 -0
  55. package/dist/cli/commands/codegraph-status-json.js +127 -0
  56. package/dist/cli/commands/container-command-shared.d.ts +60 -0
  57. package/dist/cli/commands/container-command-shared.js +52 -0
  58. package/dist/cli/commands/container-commands.d.ts +1 -1
  59. package/dist/cli/commands/container-commands.js +4 -216
  60. package/dist/cli/commands/container-release-command.d.ts +3 -0
  61. package/dist/cli/commands/container-release-command.js +105 -0
  62. package/dist/cli/commands/container-spawn-command.d.ts +3 -0
  63. package/dist/cli/commands/container-spawn-command.js +148 -0
  64. package/dist/cli/commands/context-check-command.d.ts +3 -0
  65. package/dist/cli/commands/context-check-command.js +81 -0
  66. package/dist/cli/commands/context-commands.d.ts +2 -7
  67. package/dist/cli/commands/context-commands.js +6 -276
  68. package/dist/cli/commands/context-layer-command.d.ts +3 -0
  69. package/dist/cli/commands/context-layer-command.js +34 -0
  70. package/dist/cli/commands/context-layer-fetchers.d.ts +15 -0
  71. package/dist/cli/commands/context-layer-fetchers.js +162 -0
  72. package/dist/cli/commands/context-status-command.d.ts +17 -0
  73. package/dist/cli/commands/context-status-command.js +41 -0
  74. package/dist/cli/commands/contract-write-command.d.ts +3 -0
  75. package/dist/cli/commands/contract-write-command.js +144 -0
  76. package/dist/cli/commands/core/doctor-bindings.d.ts +17 -0
  77. package/dist/cli/commands/core/doctor-bindings.js +30 -0
  78. package/dist/cli/commands/core/doctor-command.d.ts +4 -18
  79. package/dist/cli/commands/core/doctor-command.js +2 -323
  80. package/dist/cli/commands/core/doctor-logs.d.ts +8 -0
  81. package/dist/cli/commands/core/doctor-logs.js +32 -0
  82. package/dist/cli/commands/core/doctor-probes.d.ts +3 -0
  83. package/dist/cli/commands/core/doctor-probes.js +55 -0
  84. package/dist/cli/commands/core/doctor-run-command.d.ts +12 -0
  85. package/dist/cli/commands/core/doctor-run-command.js +172 -0
  86. package/dist/cli/commands/core/doctor-summary.d.ts +7 -0
  87. package/dist/cli/commands/core/doctor-summary.js +39 -0
  88. package/dist/cli/commands/core/memory-command-shared.d.ts +25 -0
  89. package/dist/cli/commands/core/memory-command-shared.js +20 -0
  90. package/dist/cli/commands/core/memory-command.d.ts +1 -1
  91. package/dist/cli/commands/core/memory-command.js +6 -227
  92. package/dist/cli/commands/core/memory-delegated-verbs.d.ts +4 -0
  93. package/dist/cli/commands/core/memory-delegated-verbs.js +178 -0
  94. package/dist/cli/commands/core/memory-extract-command.d.ts +3 -0
  95. package/dist/cli/commands/core/memory-extract-command.js +90 -0
  96. package/dist/cli/commands/core/memory-sync-command.d.ts +3 -0
  97. package/dist/cli/commands/core/memory-sync-command.js +38 -0
  98. package/dist/cli/commands/core/session-command.d.ts +1 -1
  99. package/dist/cli/commands/core/session-command.js +12 -206
  100. package/dist/cli/commands/core/session-info-command.d.ts +3 -0
  101. package/dist/cli/commands/core/session-info-command.js +142 -0
  102. package/dist/cli/commands/core/session-verb-commands.d.ts +5 -0
  103. package/dist/cli/commands/core/session-verb-commands.js +58 -0
  104. package/dist/cli/commands/core/standards-command.d.ts +1 -24
  105. package/dist/cli/commands/core/standards-command.js +33 -201
  106. package/dist/cli/commands/core/standards-init-command.d.ts +3 -0
  107. package/dist/cli/commands/core/standards-init-command.js +87 -0
  108. package/dist/cli/commands/core/standards-lint.d.ts +24 -0
  109. package/dist/cli/commands/core/standards-lint.js +57 -0
  110. package/dist/cli/commands/core/standards-migrate-command.d.ts +3 -0
  111. package/dist/cli/commands/core/standards-migrate-command.js +57 -0
  112. package/dist/cli/commands/cron-scheduler-commands.d.ts +5 -1
  113. package/dist/cli/commands/cron-scheduler-commands.js +36 -206
  114. package/dist/cli/commands/cron-scheduler-run-once-command.d.ts +7 -0
  115. package/dist/cli/commands/cron-scheduler-run-once-command.js +35 -0
  116. package/dist/cli/commands/cron-scheduler-shared.d.ts +6 -0
  117. package/dist/cli/commands/cron-scheduler-shared.js +48 -0
  118. package/dist/cli/commands/cron-scheduler-start-command.d.ts +7 -0
  119. package/dist/cli/commands/cron-scheduler-start-command.js +65 -0
  120. package/dist/cli/commands/cron-scheduler-status-command.d.ts +7 -0
  121. package/dist/cli/commands/cron-scheduler-status-command.js +46 -0
  122. package/dist/cli/commands/cron-scheduler-stop-command.d.ts +7 -0
  123. package/dist/cli/commands/cron-scheduler-stop-command.js +61 -0
  124. package/dist/cli/commands/dispatch-dag-envelope.d.ts +41 -0
  125. package/dist/cli/commands/dispatch-dag-envelope.js +49 -0
  126. package/dist/cli/commands/dispatch-dag-failure.d.ts +18 -0
  127. package/dist/cli/commands/dispatch-dag-failure.js +16 -0
  128. package/dist/cli/commands/dispatch-dag-preflight.d.ts +51 -0
  129. package/dist/cli/commands/dispatch-dag-preflight.js +105 -0
  130. package/dist/cli/commands/dispatch-dag-runners.d.ts +48 -0
  131. package/dist/cli/commands/dispatch-dag-runners.js +73 -0
  132. package/dist/cli/commands/dispatch-from-dag.d.ts +27 -0
  133. package/dist/cli/commands/dispatch-from-dag.js +87 -257
  134. package/dist/cli/commands/final-review-command-envelopes.d.ts +44 -0
  135. package/dist/cli/commands/final-review-command-envelopes.js +100 -0
  136. package/dist/cli/commands/final-review-command-shared.d.ts +52 -0
  137. package/dist/cli/commands/final-review-command-shared.js +35 -0
  138. package/dist/cli/commands/final-review-commands.d.ts +7 -27
  139. package/dist/cli/commands/final-review-commands.js +13 -240
  140. package/dist/cli/commands/final-review-prepare-command.d.ts +3 -0
  141. package/dist/cli/commands/final-review-prepare-command.js +200 -0
  142. package/dist/cli/commands/governance-classify-contract-commands.d.ts +23 -9
  143. package/dist/cli/commands/governance-classify-contract-commands.js +26 -269
  144. package/dist/cli/commands/hooks-command-shared.d.ts +42 -0
  145. package/dist/cli/commands/hooks-command-shared.js +32 -0
  146. package/dist/cli/commands/hooks-commands.d.ts +20 -0
  147. package/dist/cli/commands/hooks-commands.js +75 -309
  148. package/dist/cli/commands/hooks-install-envelopes.d.ts +6 -0
  149. package/dist/cli/commands/hooks-install-envelopes.js +144 -0
  150. package/dist/cli/commands/hooks-status-command.d.ts +3 -0
  151. package/dist/cli/commands/hooks-status-command.js +93 -0
  152. package/dist/cli/commands/hooks-uninstall-command.d.ts +3 -0
  153. package/dist/cli/commands/hooks-uninstall-command.js +43 -0
  154. package/dist/cli/commands/loop-command-shared.d.ts +31 -0
  155. package/dist/cli/commands/loop-command-shared.js +15 -0
  156. package/dist/cli/commands/loop-commands.d.ts +12 -17
  157. package/dist/cli/commands/loop-commands.js +56 -238
  158. package/dist/cli/commands/loop-export-command.d.ts +3 -0
  159. package/dist/cli/commands/loop-export-command.js +73 -0
  160. package/dist/cli/commands/loop-goal-compose-command.d.ts +3 -0
  161. package/dist/cli/commands/loop-goal-compose-command.js +36 -0
  162. package/dist/cli/commands/loop-import-command.d.ts +3 -0
  163. package/dist/cli/commands/loop-import-command.js +86 -0
  164. package/dist/cli/commands/loop-placeholder-commands.d.ts +3 -0
  165. package/dist/cli/commands/loop-placeholder-commands.js +52 -0
  166. package/dist/cli/commands/memory-command-shared.d.ts +59 -0
  167. package/dist/cli/commands/memory-command-shared.js +39 -0
  168. package/dist/cli/commands/memory-commands.d.ts +6 -79
  169. package/dist/cli/commands/memory-commands.js +19 -309
  170. package/dist/cli/commands/memory-ingest-command.d.ts +3 -0
  171. package/dist/cli/commands/memory-ingest-command.js +50 -0
  172. package/dist/cli/commands/memory-list-command.d.ts +16 -0
  173. package/dist/cli/commands/memory-list-command.js +129 -0
  174. package/dist/cli/commands/memory-reindex-command.d.ts +9 -0
  175. package/dist/cli/commands/memory-reindex-command.js +78 -0
  176. package/dist/cli/commands/memory-rotate-command.d.ts +3 -0
  177. package/dist/cli/commands/memory-rotate-command.js +55 -0
  178. package/dist/cli/commands/memory-search-command.d.ts +7 -0
  179. package/dist/cli/commands/memory-search-command.js +46 -0
  180. package/dist/cli/commands/openspec-archive-command.d.ts +3 -0
  181. package/dist/cli/commands/openspec-archive-command.js +55 -0
  182. package/dist/cli/commands/openspec-command-shared.d.ts +62 -0
  183. package/dist/cli/commands/openspec-command-shared.js +135 -0
  184. package/dist/cli/commands/openspec-commands.d.ts +1 -1
  185. package/dist/cli/commands/openspec-commands.js +33 -306
  186. package/dist/cli/commands/openspec-from-doctor-command.d.ts +3 -0
  187. package/dist/cli/commands/openspec-from-doctor-command.js +66 -0
  188. package/dist/cli/commands/openspec-init-command.d.ts +3 -0
  189. package/dist/cli/commands/openspec-init-command.js +49 -0
  190. package/dist/cli/commands/openspec-list-command.d.ts +3 -0
  191. package/dist/cli/commands/openspec-list-command.js +27 -0
  192. package/dist/cli/commands/openspec-render-command.d.ts +3 -0
  193. package/dist/cli/commands/openspec-render-command.js +33 -0
  194. package/dist/cli/commands/openspec-show-command.d.ts +3 -0
  195. package/dist/cli/commands/openspec-show-command.js +33 -0
  196. package/dist/cli/commands/openspec-to-rd-command.d.ts +3 -0
  197. package/dist/cli/commands/openspec-to-rd-command.js +33 -0
  198. package/dist/cli/commands/openspec-validate-command.d.ts +3 -0
  199. package/dist/cli/commands/openspec-validate-command.js +45 -0
  200. package/dist/cli/commands/playwright-browser-command.d.ts +8 -0
  201. package/dist/cli/commands/playwright-browser-command.js +61 -0
  202. package/dist/cli/commands/playwright-commands.d.ts +10 -62
  203. package/dist/cli/commands/playwright-commands.js +77 -400
  204. package/dist/cli/commands/playwright-envelope.d.ts +8 -0
  205. package/dist/cli/commands/playwright-envelope.js +29 -0
  206. package/dist/cli/commands/playwright-ls-stop-commands.d.ts +4 -0
  207. package/dist/cli/commands/playwright-ls-stop-commands.js +74 -0
  208. package/dist/cli/commands/playwright-session-store.d.ts +65 -0
  209. package/dist/cli/commands/playwright-session-store.js +189 -0
  210. package/dist/cli/commands/project-commands.d.ts +19 -0
  211. package/dist/cli/commands/project-commands.js +98 -259
  212. package/dist/cli/commands/project-context-command.d.ts +3 -0
  213. package/dist/cli/commands/project-context-command.js +44 -0
  214. package/dist/cli/commands/project-dashboard-command.d.ts +3 -0
  215. package/dist/cli/commands/project-dashboard-command.js +74 -0
  216. package/dist/cli/commands/project-knowledge-command.d.ts +3 -0
  217. package/dist/cli/commands/project-knowledge-command.js +48 -0
  218. package/dist/cli/commands/project-memories-show-command.d.ts +3 -0
  219. package/dist/cli/commands/project-memories-show-command.js +87 -0
  220. package/dist/cli/commands/project-memory-index-command.d.ts +3 -0
  221. package/dist/cli/commands/project-memory-index-command.js +31 -0
  222. package/dist/cli/commands/qa-archive-screenshots-command.d.ts +3 -0
  223. package/dist/cli/commands/qa-archive-screenshots-command.js +53 -0
  224. package/dist/cli/commands/qa-commands.d.ts +14 -87
  225. package/dist/cli/commands/qa-commands.js +17 -315
  226. package/dist/cli/commands/qa-context-prestep.d.ts +1 -0
  227. package/dist/cli/commands/qa-context-prestep.js +34 -0
  228. package/dist/cli/commands/qa-run-command.d.ts +3 -0
  229. package/dist/cli/commands/qa-run-command.js +105 -0
  230. package/dist/cli/commands/qa-run-options.d.ts +23 -0
  231. package/dist/cli/commands/qa-run-options.js +31 -0
  232. package/dist/cli/commands/qa-run-slice.d.ts +41 -0
  233. package/dist/cli/commands/qa-run-slice.js +145 -0
  234. package/dist/cli/commands/release-canary-command.d.ts +28 -0
  235. package/dist/cli/commands/release-canary-command.js +129 -0
  236. package/dist/cli/commands/release-command-shared.d.ts +13 -0
  237. package/dist/cli/commands/release-command-shared.js +18 -0
  238. package/dist/cli/commands/release-commands.d.ts +10 -18
  239. package/dist/cli/commands/release-commands.js +25 -298
  240. package/dist/cli/commands/release-done-command.d.ts +3 -0
  241. package/dist/cli/commands/release-done-command.js +64 -0
  242. package/dist/cli/commands/release-hotfix-command.d.ts +3 -0
  243. package/dist/cli/commands/release-hotfix-command.js +50 -0
  244. package/dist/cli/commands/release-plan-command.d.ts +3 -0
  245. package/dist/cli/commands/release-plan-command.js +33 -0
  246. package/dist/cli/commands/release-precheck-command.d.ts +3 -0
  247. package/dist/cli/commands/release-precheck-command.js +28 -0
  248. package/dist/cli/commands/release-promote-command.d.ts +3 -0
  249. package/dist/cli/commands/release-promote-command.js +34 -0
  250. package/dist/cli/commands/release-rollback-command.d.ts +3 -0
  251. package/dist/cli/commands/release-rollback-command.js +33 -0
  252. package/dist/cli/commands/release-watch-command.d.ts +3 -0
  253. package/dist/cli/commands/release-watch-command.js +44 -0
  254. package/dist/cli/commands/sediment-argv-flags.d.ts +54 -0
  255. package/dist/cli/commands/sediment-argv-flags.js +116 -0
  256. package/dist/cli/commands/sediment-command-shared.d.ts +15 -0
  257. package/dist/cli/commands/sediment-command-shared.js +5 -0
  258. package/dist/cli/commands/sediment-commands.d.ts +35 -59
  259. package/dist/cli/commands/sediment-commands.js +36 -590
  260. package/dist/cli/commands/sediment-pool-commands.d.ts +9 -0
  261. package/dist/cli/commands/sediment-pool-commands.js +185 -0
  262. package/dist/cli/commands/sediment-query-commands.d.ts +4 -0
  263. package/dist/cli/commands/sediment-query-commands.js +94 -0
  264. package/dist/cli/commands/sediment-release-commands.d.ts +8 -0
  265. package/dist/cli/commands/sediment-release-commands.js +232 -0
  266. package/dist/cli/commands/sop-advance-command.d.ts +3 -0
  267. package/dist/cli/commands/sop-advance-command.js +160 -0
  268. package/dist/cli/commands/sop-check-command.d.ts +3 -0
  269. package/dist/cli/commands/sop-check-command.js +44 -0
  270. package/dist/cli/commands/sop-command-shared.d.ts +23 -0
  271. package/dist/cli/commands/sop-command-shared.js +18 -0
  272. package/dist/cli/commands/sop-commands.d.ts +15 -1
  273. package/dist/cli/commands/sop-commands.js +26 -240
  274. package/dist/cli/commands/sop-init-command.d.ts +3 -0
  275. package/dist/cli/commands/sop-init-command.js +51 -0
  276. package/dist/cli/commands/sop-lint-command.d.ts +3 -0
  277. package/dist/cli/commands/sop-lint-command.js +64 -0
  278. package/dist/cli/commands/sop-register-command.d.ts +3 -0
  279. package/dist/cli/commands/sop-register-command.js +48 -0
  280. package/dist/cli/commands/sop-registry-command.d.ts +3 -0
  281. package/dist/cli/commands/sop-registry-command.js +30 -0
  282. package/dist/cli/commands/statusline-command-shared.d.ts +73 -0
  283. package/dist/cli/commands/statusline-command-shared.js +90 -0
  284. package/dist/cli/commands/statusline-commands.d.ts +1 -19
  285. package/dist/cli/commands/statusline-commands.js +48 -287
  286. package/dist/cli/commands/statusline-compact-command.d.ts +4 -0
  287. package/dist/cli/commands/statusline-compact-command.js +54 -0
  288. package/dist/cli/commands/statusline-install-command.d.ts +3 -0
  289. package/dist/cli/commands/statusline-install-command.js +48 -0
  290. package/dist/cli/commands/statusline-render-command.d.ts +9 -0
  291. package/dist/cli/commands/statusline-render-command.js +55 -0
  292. package/dist/cli/commands/statusline-status-command.d.ts +3 -0
  293. package/dist/cli/commands/statusline-status-command.js +23 -0
  294. package/dist/cli/commands/statusline-uninstall-command.d.ts +3 -0
  295. package/dist/cli/commands/statusline-uninstall-command.js +23 -0
  296. package/dist/cli/commands/test-command-run-helpers.d.ts +27 -0
  297. package/dist/cli/commands/test-command-run-helpers.js +73 -0
  298. package/dist/cli/commands/test-command-runner-resolution.d.ts +57 -0
  299. package/dist/cli/commands/test-command-runner-resolution.js +183 -0
  300. package/dist/cli/commands/test-commands.d.ts +8 -56
  301. package/dist/cli/commands/test-commands.js +26 -249
  302. package/dist/cli/commands/vm-command-shared.d.ts +23 -0
  303. package/dist/cli/commands/vm-command-shared.js +23 -0
  304. package/dist/cli/commands/vm-commands.d.ts +1 -28
  305. package/dist/cli/commands/vm-commands.js +36 -270
  306. package/dist/cli/commands/vm-hypervisor-runtime.d.ts +15 -0
  307. package/dist/cli/commands/vm-hypervisor-runtime.js +64 -0
  308. package/dist/cli/commands/vm-release-command.d.ts +5 -0
  309. package/dist/cli/commands/vm-release-command.js +101 -0
  310. package/dist/cli/commands/vm-spawn-command.d.ts +5 -0
  311. package/dist/cli/commands/vm-spawn-command.js +177 -0
  312. package/dist/cli/commands/web-command-shared.d.ts +12 -0
  313. package/dist/cli/commands/web-command-shared.js +30 -0
  314. package/dist/cli/commands/web-commands.d.ts +7 -14
  315. package/dist/cli/commands/web-commands.js +6 -314
  316. package/dist/cli/commands/web-install-command.d.ts +10 -0
  317. package/dist/cli/commands/web-install-command.js +116 -0
  318. package/dist/cli/commands/web-lifecycle-commands.d.ts +9 -30
  319. package/dist/cli/commands/web-lifecycle-commands.js +14 -322
  320. package/dist/cli/commands/web-login-command.d.ts +14 -0
  321. package/dist/cli/commands/web-login-command.js +189 -0
  322. package/dist/cli/commands/web-op-payload.d.ts +22 -0
  323. package/dist/cli/commands/web-op-payload.js +89 -0
  324. package/dist/cli/commands/web-op-refusals.d.ts +37 -0
  325. package/dist/cli/commands/web-op-refusals.js +73 -0
  326. package/dist/cli/commands/web-op-runner.d.ts +14 -0
  327. package/dist/cli/commands/web-op-runner.js +166 -0
  328. package/dist/cli/commands/web-status-command.d.ts +4 -0
  329. package/dist/cli/commands/web-status-command.js +32 -0
  330. package/dist/cli/commands/web-stop-command.d.ts +10 -0
  331. package/dist/cli/commands/web-stop-command.js +59 -0
  332. package/dist/cli/commands/web-verb-specs.d.ts +18 -0
  333. package/dist/cli/commands/web-verb-specs.js +66 -0
  334. package/dist/cli/commands/workflow-command-shared.d.ts +102 -0
  335. package/dist/cli/commands/workflow-command-shared.js +74 -0
  336. package/dist/cli/commands/workflow-graph-commands.d.ts +3 -0
  337. package/dist/cli/commands/workflow-graph-commands.js +73 -0
  338. package/dist/cli/commands/workflow-init-command.d.ts +3 -0
  339. package/dist/cli/commands/workflow-init-command.js +68 -0
  340. package/dist/cli/commands/workflow-lifecycle-commands.d.ts +9 -59
  341. package/dist/cli/commands/workflow-lifecycle-commands.js +14 -348
  342. package/dist/cli/commands/workflow-node-commands.d.ts +3 -0
  343. package/dist/cli/commands/workflow-node-commands.js +154 -0
  344. package/dist/cli/commands/workflow-terminalize-command.d.ts +3 -0
  345. package/dist/cli/commands/workflow-terminalize-command.js +56 -0
  346. package/dist/services/code/auto-compact-artifacts.d.ts +54 -0
  347. package/dist/services/code/auto-compact-artifacts.js +135 -0
  348. package/dist/services/code/auto-compact-attempt.d.ts +46 -0
  349. package/dist/services/code/auto-compact-attempt.js +88 -0
  350. package/dist/services/code/auto-compact-decision.d.ts +74 -0
  351. package/dist/services/code/auto-compact-decision.js +149 -0
  352. package/dist/services/code/auto-compact-dispatch-gate.d.ts +36 -0
  353. package/dist/services/code/auto-compact-dispatch-gate.js +86 -0
  354. package/dist/services/code/auto-compact-envelopes.d.ts +33 -0
  355. package/dist/services/code/auto-compact-envelopes.js +134 -0
  356. package/dist/services/code/auto-compact-history.d.ts +46 -0
  357. package/dist/services/code/auto-compact-history.js +17 -0
  358. package/dist/services/code/auto-compact-orchestrator.d.ts +11 -240
  359. package/dist/services/code/auto-compact-orchestrator.js +165 -686
  360. package/dist/services/code/auto-compact-run-types.d.ts +123 -0
  361. package/dist/services/code/auto-compact-run-types.js +1 -0
  362. package/dist/services/code/emit-handoff.d.ts +35 -1
  363. package/dist/services/code/emit-handoff.js +128 -7
  364. package/dist/services/code/step-08-gate.d.ts +28 -19
  365. package/dist/services/code/step-08-gate.js +92 -35
  366. package/dist/services/config/config-coercion.d.ts +7 -0
  367. package/dist/services/config/config-coercion.js +156 -0
  368. package/dist/services/config/config-file-io.d.ts +11 -0
  369. package/dist/services/config/config-file-io.js +61 -0
  370. package/dist/services/config/config-get.d.ts +2 -0
  371. package/dist/services/config/config-get.js +36 -0
  372. package/dist/services/config/config-global-loader.d.ts +15 -0
  373. package/dist/services/config/config-global-loader.js +111 -0
  374. package/dist/services/config/config-nested-path.d.ts +3 -0
  375. package/dist/services/config/config-nested-path.js +53 -0
  376. package/dist/services/config/config-primitives.d.ts +16 -0
  377. package/dist/services/config/config-primitives.js +24 -0
  378. package/dist/services/config/config-service.d.ts +9 -33
  379. package/dist/services/config/config-service.js +16 -665
  380. package/dist/services/config/config-validation.d.ts +19 -0
  381. package/dist/services/config/config-validation.js +152 -0
  382. package/dist/services/config/config-workspace.d.ts +10 -0
  383. package/dist/services/config/config-workspace.js +158 -0
  384. package/dist/services/skills/hooks-settings-deny-list.d.ts +61 -0
  385. package/dist/services/skills/hooks-settings-deny-list.js +173 -0
  386. package/dist/services/skills/hooks-settings-envelopes.d.ts +20 -0
  387. package/dist/services/skills/hooks-settings-envelopes.js +79 -0
  388. package/dist/services/skills/hooks-settings-file-shape.d.ts +43 -0
  389. package/dist/services/skills/hooks-settings-file-shape.js +207 -0
  390. package/dist/services/skills/hooks-settings-paths.d.ts +34 -0
  391. package/dist/services/skills/hooks-settings-paths.js +75 -0
  392. package/dist/services/skills/hooks-settings-read-installed.d.ts +39 -0
  393. package/dist/services/skills/hooks-settings-read-installed.js +60 -0
  394. package/dist/services/skills/hooks-settings-service.d.ts +12 -212
  395. package/dist/services/skills/hooks-settings-service.js +71 -657
  396. package/dist/services/skills/hooks-settings-types.d.ts +139 -0
  397. package/dist/services/skills/hooks-settings-types.js +1 -0
  398. package/dist/services/workspace/claude-settings-template-merge.d.ts +89 -0
  399. package/dist/services/workspace/claude-settings-template-merge.js +243 -0
  400. package/dist/services/workspace/claude-settings-template.d.ts +29 -87
  401. package/dist/services/workspace/claude-settings-template.js +81 -236
  402. package/package.json +5 -5
@@ -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;