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,103 @@
1
+ // The planning helpers `peaks refactor | tech | workflow | swarm` share: the workspace
2
+ // context readers, the injected-input parsers, and the pre-step that builds
3
+ // peaks-context before peaks-rd runs. No command is registered here.
4
+ import { printResult } from '../cli-helpers.js';
5
+ import { fail } from 'peaks-loop-shared/result';
6
+ import { isCodeMode } from '../../services/workflow/workflow-router-service.js';
7
+ import { getWorkspaceConfigForPath } from '../../services/config/config-service.js';
8
+ import { getLocalArtifactPath } from '../../services/artifacts/workspace-service.js';
9
+ import { getSessionId } from '../../services/session/session-manager.js';
10
+ import { getSessionDir } from '../../services/session/getSessionDir.js';
11
+ import { findProjectRoot } from '../../services/config/config-safety.js';
12
+ // Plan 1 / Task 9 — auto-build peaks-context before peaks-rd runs.
13
+ import { buildContext } from '../../services/context/context-builder.js';
14
+ // Plan 1 / Task 10 — production fetcher (replaces mockFetcher).
15
+ import { createDocCacheFetcher } from '../../services/context/doc-cache-fetcher.js';
16
+ export function buildDocFetcher(sid) {
17
+ return createDocCacheFetcher({
18
+ cacheDir: `.peaks/_runtime/${sid}/doc-cache`
19
+ // remoteFetcher wired in a future slice.
20
+ });
21
+ }
22
+ export async function ensureContextForRd(goal, project, sid) {
23
+ const out = `.peaks/_runtime/${sid}/context.json`;
24
+ try {
25
+ await buildContext({
26
+ goal,
27
+ project,
28
+ audience: 'peaks-rd',
29
+ depsMode: 'locked',
30
+ docBudgetTokens: 8000,
31
+ out,
32
+ fetcher: buildDocFetcher(sid)
33
+ });
34
+ }
35
+ catch (error) {
36
+ // Plan 1 / Task 9 — context is a pre-step, not a precondition.
37
+ // If the Collector (e.g. missing package.json) or DocRetriever
38
+ // fails, we still want the rd slice to proceed. Task 11
39
+ // upgrades this to a hard precondition once the rd slice
40
+ // actually consumes context.json.
41
+ const message = error instanceof Error ? error.message : 'unknown context build failure';
42
+ process.stderr.write(`[peaks-context] rd pre-step skipped: ${message}\n`);
43
+ }
44
+ }
45
+ export function getCurrentWorkspaceContext() {
46
+ try {
47
+ const projectRoot = findProjectRoot(process.cwd()) ?? process.cwd();
48
+ const sessionId = getSessionId(projectRoot);
49
+ return sessionId ? { sessionId, sessionDir: getSessionDir(projectRoot, sessionId) } : {};
50
+ }
51
+ catch {
52
+ return {};
53
+ }
54
+ }
55
+ export function getWorkflowWorkspaceContext() {
56
+ try {
57
+ const projectRoot = findProjectRoot(process.cwd()) ?? process.cwd();
58
+ const workspace = getWorkspaceConfigForPath(projectRoot);
59
+ if (!workspace)
60
+ return { projectRoot };
61
+ return { projectRoot, workspace, artifactWorkspacePath: getLocalArtifactPath(workspace) };
62
+ }
63
+ catch {
64
+ return {};
65
+ }
66
+ }
67
+ export function parseMaxWorkers(io, command, value, asJson) {
68
+ const maxWorkers = Number(value);
69
+ if (!Number.isInteger(maxWorkers) || maxWorkers < 1) {
70
+ printResult(io, fail(command, 'INVALID_MAX_WORKERS', 'max-workers must be a positive integer', {}, [
71
+ 'Use --max-workers with a positive integer value'
72
+ ]), asJson);
73
+ process.exitCode = 1;
74
+ return null;
75
+ }
76
+ return maxWorkers;
77
+ }
78
+ export function validatePlanningInput(goal) {
79
+ // v2.17.0: change-id axis removed. The planning input is now keyed
80
+ // by the session id (already bound via `peaks workspace init`),
81
+ // not by a user-supplied change-id. Only the goal is validated.
82
+ if (!goal.trim()) {
83
+ throw new Error('Goal must be non-empty');
84
+ }
85
+ }
86
+ export function parseCodeMode(io, command, mode, codeMode, asJson) {
87
+ if (mode !== 'code' && codeMode) {
88
+ printResult(io, fail(command, 'CODE_MODE_REQUIRES_CODE_WORKFLOW', '--code-mode can only be used with --mode code', {}, ['Remove --code-mode or use --mode code']), asJson);
89
+ process.exitCode = 1;
90
+ return null;
91
+ }
92
+ if (mode !== 'code' || !codeMode) {
93
+ return undefined;
94
+ }
95
+ if (!isCodeMode(codeMode)) {
96
+ printResult(io, fail(command, 'UNSUPPORTED_CODE_MODE', `Unsupported code mode ${codeMode}`, {}, [
97
+ 'Use --code-mode full-auto, guided, or rnd'
98
+ ]), asJson);
99
+ process.exitCode = 1;
100
+ return null;
101
+ }
102
+ return codeMode;
103
+ }
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ import { type ProgramIO } from '../cli-helpers.js';
3
+ export declare function registerWorkflowPlanningCommands(program: Command, io: ProgramIO): Command;
@@ -0,0 +1,56 @@
1
+ import { addJsonOption, failUnsupportedNonDryRun, printResult } from '../cli-helpers.js';
2
+ import { fail, ok } from 'peaks-loop-shared/result';
3
+ import { createRefactorDryRun } from '../../services/refactor/refactor-service.js';
4
+ // `peaks tech status-change-id`). Additive; the existing session-axis
5
+ // `peaks tech plan` / `peaks tech status` registrations are untouched.
6
+ import { registerTechCommands } from './tech-commands.js';
7
+ import { addTechPlanOptions, addTechStatusOptions, addWorkflowRouteOptions, runAutonomousWorkflow, runTechPlan, runTechStatus, runWorkflowRoute } from './workflow-tech-actions.js';
8
+ import { addAutonomousResumeInitOptions, runAutonomousResumeInit } from './workflow-swarm-actions.js';
9
+ /** The `peaks refactor` registration, lifted verbatim out of the planning registrar. */
10
+ function registerRefactorCommand(program, io) {
11
+ const refactor = program
12
+ .command('refactor')
13
+ .description('Plan a Peaks refactor run without modifying code');
14
+ addJsonOption(refactor
15
+ .option('--code', 'use peaks-code orchestration mode')
16
+ .option('--rd', 'use peaks-rd direct mode')
17
+ .option('--dry-run', 'print gates and required artifacts', true)
18
+ .option('--no-dry-run', 'unsupported: do not modify code from this command')).action((options) => {
19
+ if (options.dryRun === false) {
20
+ failUnsupportedNonDryRun(io, 'refactor', options.json);
21
+ return;
22
+ }
23
+ if (options.code && options.rd) {
24
+ printResult(io, fail('refactor', 'CONFLICTING_REFACTOR_MODE', 'Choose either --code or --rd, not both', {}, ['Run peaks refactor --code --dry-run']), options.json);
25
+ process.exitCode = 1;
26
+ return;
27
+ }
28
+ const mode = options.rd ? 'rd' : 'code';
29
+ printResult(io, ok('refactor', createRefactorDryRun(mode), [], ['This dry run never edits code']), options.json);
30
+ });
31
+ }
32
+ export function registerWorkflowPlanningCommands(program, io) {
33
+ registerRefactorCommand(program, io);
34
+ const tech = program.command('tech').description('Plan and inspect technical dry-run gates');
35
+ addTechPlanOptions(tech.command('plan')).action((options) => runTechPlan(io, options));
36
+ addTechStatusOptions(tech.command('status')).action((options) => runTechStatus(io, options));
37
+ addTechPlanOptions(program.command('tech-plan')).action((options) => runTechPlan(io, options));
38
+ addTechStatusOptions(program.command('tech-status')).action((options) => runTechStatus(io, options));
39
+ // (`peaks tech plan-change-id` / `peaks tech status-change-id`).
40
+ // Additive; the session-axis registrations above are byte-for-byte untouched.
41
+ registerTechCommands(program, io);
42
+ const workflow = program.command('workflow').description('Plan workflow routing dry-run graphs');
43
+ addWorkflowRouteOptions(workflow.command('route'), 'Plan a workflow routing dry-run summary').action((options) => runWorkflowRoute(io, options));
44
+ addWorkflowRouteOptions(program.command('route'), 'Plan a workflow routing dry-run summary').action((options) => runWorkflowRoute(io, options));
45
+ addWorkflowRouteOptions(workflow.command('autonomous'), 'Plan an autonomous workflow handoff summary').action((options) => runAutonomousWorkflow(io, options));
46
+ addWorkflowRouteOptions(program.command('autonomous'), 'Plan an autonomous workflow handoff summary').action((options) => runAutonomousWorkflow(io, options));
47
+ const autonomousResume = workflow
48
+ .command('autonomous-resume')
49
+ .description('Manage autonomous workflow resume artifacts');
50
+ addAutonomousResumeInitOptions(autonomousResume.command('init')).action((options) => runAutonomousResumeInit(io, options));
51
+ const autonomousResumeAlias = program
52
+ .command('autonomous-resume')
53
+ .description('Manage autonomous workflow resume artifacts');
54
+ addAutonomousResumeInitOptions(autonomousResumeAlias.command('init')).action((options) => runAutonomousResumeInit(io, options));
55
+ return workflow;
56
+ }
@@ -0,0 +1,7 @@
1
+ import type { Command } from 'commander';
2
+ import { type ProgramIO } from '../cli-helpers.js';
3
+ import { type AutonomousResumeInitOptions, type SwarmPlanOptions } from './workflow-plan-helpers.js';
4
+ export declare function runSwarmPlan(io: ProgramIO, options: SwarmPlanOptions): Promise<void>;
5
+ export declare function runAutonomousResumeInit(io: ProgramIO, options: AutonomousResumeInitOptions): Promise<void>;
6
+ export declare function addSwarmPlanOptions(command: Command, includeSkill: boolean): Command;
7
+ export declare function addAutonomousResumeInitOptions(command: Command): Command;
@@ -0,0 +1,109 @@
1
+ import { createRdSwarmPlan } from '../../services/rd/rd-service.js';
2
+ import { writeAutonomousResumeArtifacts } from '../../services/workflow/autonomous-resume-writer.js';
3
+ import { readConfig } from '../../services/config/config-service.js';
4
+ import { getEconomyAwareExecutionModelId } from '../../services/config/model-routing.js';
5
+ import { getSessionId } from '../../services/session/session-manager.js';
6
+ import { addJsonOption, failUnsupportedNonDryRun, getErrorMessage, printResult } from '../cli-helpers.js';
7
+ import { fail, ok } from 'peaks-loop-shared/result';
8
+ // catch site below (swarm.plan) so provider-config errors surface as
9
+ // `INVALID_PROVIDERS` instead of being silently re-labelled `INVALID_GOAL`.
10
+ import { mapServiceError } from './_cli-error-envelope.js';
11
+ import { ensureContextForRd, getWorkflowWorkspaceContext, parseMaxWorkers, validatePlanningInput } from './workflow-plan-helpers.js';
12
+ export async function runSwarmPlan(io, options) {
13
+ if ((options.skill ?? 'rd') !== 'rd') {
14
+ printResult(io, fail('swarm.plan', 'UNSUPPORTED_SWARM_SKILL', `Unsupported skill ${options.skill}`, {}, [
15
+ 'Use --skill rd'
16
+ ]), options.json);
17
+ process.exitCode = 1;
18
+ return;
19
+ }
20
+ if (options.dryRun === false) {
21
+ failUnsupportedNonDryRun(io, 'swarm.plan', options.json);
22
+ return;
23
+ }
24
+ const maxWorkers = parseMaxWorkers(io, 'swarm.plan', options.maxWorkers, options.json);
25
+ if (maxWorkers === null)
26
+ return;
27
+ try {
28
+ validatePlanningInput(options.goal);
29
+ const workspaceContext = getWorkflowWorkspaceContext();
30
+ const config = readConfig();
31
+ // Plan 1 / Task 9 — pre-build peaks-context before peaks-rd runs.
32
+ const projectRoot = workspaceContext.projectRoot ?? process.cwd();
33
+ const sid = getSessionId(projectRoot) ?? 'ad-hoc';
34
+ await ensureContextForRd(options.goal, projectRoot, sid);
35
+ const plan = createRdSwarmPlan({
36
+ skill: 'rd',
37
+ sessionId: '',
38
+ goal: options.goal,
39
+ maxWorkers,
40
+ dryRun: true,
41
+ swarmMode: config.swarmMode ?? true,
42
+ executionModelId: getEconomyAwareExecutionModelId(config),
43
+ ...(options.strictStandards ? { strictStandards: true } : {}),
44
+ ...workspaceContext
45
+ });
46
+ // The service-layer stamps `standardsErrorCode` onto the envelope; the
47
+ // CLI is responsible for translating it into a non-zero exit.
48
+ if (plan.gateStatus.standardsErrorCode === 'EPEAKS_NO_STANDARDS') {
49
+ process.exitCode = 1;
50
+ }
51
+ printResult(io, ok('swarm.plan', plan), options.json);
52
+ }
53
+ catch (error) {
54
+ const mapping = mapServiceError(error);
55
+ printResult(io, fail('swarm.plan', mapping.code, getErrorMessage(error), {}, [...mapping.nextActions]), options.json);
56
+ process.exitCode = 1;
57
+ }
58
+ }
59
+ export async function runAutonomousResumeInit(io, options) {
60
+ try {
61
+ if (!options.project || !options.project.trim()) {
62
+ throw new Error('Project path must be non-empty');
63
+ }
64
+ // gone. The CLI surfaces a deterministic placeholder
65
+ // (`session-default`) when the user does not pass a change-id, so
66
+ // the on-disk session-dir join via `getSessionDir` succeeds (the
67
+ // writer still requires a safe non-empty string).
68
+ const result = await writeAutonomousResumeArtifacts({
69
+ sessionId: 'session-default',
70
+ goal: options.goal,
71
+ artifactWorkspacePath: options.project,
72
+ apply: options.apply === true
73
+ });
74
+ const data = {
75
+ applied: result.applied,
76
+ files: result.files.map((file) => file.path)
77
+ };
78
+ const nextActions = result.applied
79
+ ? ['Run peaks workflow autonomous --goal "<goal>" --json to verify resumePlan.status']
80
+ : ['Re-run with --apply to write the resume scaffold to disk'];
81
+ printResult(io, ok('autonomous-resume.init', data, [], nextActions), options.json);
82
+ }
83
+ catch (error) {
84
+ printResult(io, fail('autonomous-resume.init', 'AUTONOMOUS_RESUME_INIT_FAILED', getErrorMessage(error), {}, [
85
+ 'Use a non-empty goal and a writable project path'
86
+ ]), options.json);
87
+ process.exitCode = 1;
88
+ }
89
+ }
90
+ export function addSwarmPlanOptions(command, includeSkill) {
91
+ const configured = command
92
+ .description('Plan an RD swarm dry-run graph')
93
+ .requiredOption('--goal <goal>', 'planning goal')
94
+ .option('--max-workers <count>', 'maximum worker count', '40')
95
+ .option('--dry-run', 'preview without writing files', true)
96
+ .option('--no-dry-run', 'unsupported: do not execute RD planning from this CLI')
97
+ .option('--strict-standards', 'hard-fail (exit non-zero) when project-local standards are missing; surfaces EPEAKS_NO_STANDARDS in the JSON envelope');
98
+ if (includeSkill) {
99
+ configured.requiredOption('--skill <skill>', 'skill to plan for');
100
+ }
101
+ return addJsonOption(configured);
102
+ }
103
+ export function addAutonomousResumeInitOptions(command) {
104
+ return addJsonOption(command
105
+ .description('Write the autonomous resume artifact scaffold for the active change-id')
106
+ .requiredOption('--goal <goal>', 'planning goal')
107
+ .requiredOption('--project <path>', 'artifact workspace path to write under')
108
+ .option('--apply', 'write the artifacts to disk (default is dry-run preview)'));
109
+ }
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ import { type ProgramIO } from '../cli-helpers.js';
3
+ export declare function registerWorkflowSwarmCommands(program: Command, io: ProgramIO): void;
@@ -0,0 +1,138 @@
1
+ import { addJsonOption, isRecommendationWorkflow, printResult } from '../cli-helpers.js';
2
+ import { fail, ok } from 'peaks-loop-shared/result';
3
+ import { createRecommendationPlan } from '../../services/recommendations/recommendation-service.js';
4
+ import { readConfig } from '../../services/config/config-service.js';
5
+ import { registerSwarmCommands } from './swarm-commands.js';
6
+ // `registerTechCommands` registrations are byte-for-byte untouched.
7
+ import { registerAutonomousSwarmCommands } from './autonomous-swarm-commands.js';
8
+ // Slice 4.0.8 — workflow lifecycle (init / graph show / graph list / node
9
+ // prepare / node ack / node mark-lost / terminalize). Registered as a
10
+ // sibling command group, not merged with planning handlers, per RD §4.
11
+ import { registerWorkflowLifecycleCommand } from './workflow-lifecycle-commands.js';
12
+ import { addSwarmPlanOptions, runSwarmPlan } from './workflow-swarm-actions.js';
13
+ /** The `13.2` pipeline placeholder action, lifted verbatim out of the registrar. */
14
+ function runSwarmPipelinePlaceholder(options, io) {
15
+ printResult(io, ok('swarm.pipeline', {
16
+ project: options.project,
17
+ status: 'placeholder',
18
+ nextSteps: [
19
+ 'For each sub-task in the plan, run `peaks sub-agent dispatch <role> --prompt <task>`.',
20
+ 'The slice is read-only here; the sub-agent harness owns the runtime execution.'
21
+ ]
22
+ }, [], [
23
+ 'swarm.pipeline is a sequencing facade; today the LLM composes peaks sub-agent dispatch in series.'
24
+ ]), options.json);
25
+ }
26
+ /** The `13.3` speculative-dispatch placeholder action, lifted verbatim out of the registrar. */
27
+ function runSwarmDispatchPlaceholder(options, io) {
28
+ printResult(io, ok('swarm.dispatch', {
29
+ project: options.project,
30
+ speculative: options.speculative,
31
+ status: 'placeholder'
32
+ }, [], [
33
+ options.speculative
34
+ ? 'Speculative mode acknowledged; for now use peaks sub-agent dispatch for parallel sub-tasks.'
35
+ : 'Pass --speculative to acknowledge speculative mode (no-op for now).'
36
+ ]), options.json);
37
+ }
38
+ /** The `13.4` adversarial-verification placeholder action, lifted verbatim out of the registrar. */
39
+ function runSwarmVerifyPlaceholder(options, io) {
40
+ const n = Number.parseInt(options.skeptics, 10);
41
+ const iterations = Number.isFinite(n) && n > 0 ? n : 1;
42
+ const history = [];
43
+ for (let i = 1; i <= iterations; i++) {
44
+ history.push({
45
+ iteration: i,
46
+ ok: true,
47
+ detail: `iter ${i}/${iterations}: re-scan invoked; future slice will run adversarial here`
48
+ });
49
+ }
50
+ printResult(io, ok('swarm.verify', {
51
+ project: options.project,
52
+ iterations,
53
+ history
54
+ }, [], [
55
+ `${iterations} skeptic iteration(s) recorded; each iteration re-runs peaks doctor to catch regressions.`,
56
+ 'A future slice will land the actual adversarial verification (currently a pass-through re-scan).'
57
+ ]), options.json);
58
+ }
59
+ /** The `13.5` loop-until-dry placeholder action, lifted verbatim out of the registrar. */
60
+ function runSwarmLoopPlaceholder(options, io) {
61
+ const history = [];
62
+ for (let i = 1; i <= 10; i++) {
63
+ const failCount = 0;
64
+ history.push({ iteration: i, failCount, status: failCount === 0 ? 'dry' : 'still-failing' });
65
+ if (i > 1 && history[i - 2]?.failCount === failCount)
66
+ break;
67
+ }
68
+ const finalStatus = history[history.length - 1]?.failCount === 0 ? 'dry' : 'still-failing';
69
+ printResult(io, ok('swarm.loop', {
70
+ project: options.project,
71
+ iterations: history.length,
72
+ history,
73
+ status: finalStatus
74
+ }, [], [
75
+ `loop ran ${history.length} iteration(s); status: ${finalStatus}`,
76
+ 'A future slice will land the actual peaks doctor call (currently a stub).'
77
+ ]), options.json);
78
+ }
79
+ /** The `peaks recommend` action, lifted verbatim out of the registrar. */
80
+ function runRecommendAction(options, io) {
81
+ if (!isRecommendationWorkflow(options.workflow)) {
82
+ printResult(io, fail('recommend', 'UNSUPPORTED_RECOMMENDATION_WORKFLOW', `Unsupported recommendation workflow ${options.workflow}`, {}, ['Use --workflow code-refactor, product-refactor, or frontend-design']), options.json);
83
+ process.exitCode = 1;
84
+ return;
85
+ }
86
+ printResult(io, ok('recommend', createRecommendationPlan({
87
+ workflow: options.workflow,
88
+ language: options.language ?? readConfig().language ?? 'en'
89
+ })), options.json);
90
+ }
91
+ /** The four slice-#13 placeholder subcommands of `peaks swarm`, lifted verbatim out of the registrar. */
92
+ function registerSwarmPlaceholderCommands(swarm, io) {
93
+ addJsonOption(swarm
94
+ .command('pipeline')
95
+ .description('13.2: sequential pipeline — wire to peaks sub-agent dispatch in series (placeholder)')
96
+ .requiredOption('--project <path>', 'target project root')).action((options) => runSwarmPipelinePlaceholder(options, io));
97
+ addJsonOption(swarm
98
+ .command('dispatch')
99
+ .description('13.3: speculative fan-out dispatch (placeholder; --speculative flag for future)')
100
+ .requiredOption('--project <path>', 'target project root')
101
+ .option('--speculative', 'enable speculative mode (placeholder)', false)).action((options) => runSwarmDispatchPlaceholder(options, io));
102
+ addJsonOption(swarm
103
+ .command('verify')
104
+ .description('13.4: adversarial verification — runs peaks doctor in skeptic iterations (placeholder; future slice uses skeptic prompts)')
105
+ .requiredOption('--project <path>', 'target project root')
106
+ .option('--skeptics <count>', 'number of skeptic iterations to run (default 1)', '1')).action((options) => runSwarmVerifyPlaceholder(options, io));
107
+ addJsonOption(swarm
108
+ .command('loop')
109
+ .description('13.5: loop-until-dry — runs peaks doctor in a loop until no new FAIL findings (placeholder; max 10 iterations)')
110
+ .requiredOption('--project <path>', 'target project root')).action((options) => runSwarmLoopPlaceholder(options, io));
111
+ }
112
+ export function registerWorkflowSwarmCommands(program, io) {
113
+ // `registerSwarmCommands` (a thin wrapper around the new
114
+ // `planRdSwarmGraph` service). The legacy `peaks swarm plan` /
115
+ // `peaks swarm-plan` registrations above stay in-place for back-compat
116
+ const swarm = program.command('swarm').description('Plan RD swarm dry-run graphs');
117
+ addSwarmPlanOptions(swarm.command('plan'), true).action(async (options) => {
118
+ await runSwarmPlan(io, options);
119
+ });
120
+ addSwarmPlanOptions(program.command('swarm-plan'), false).action(async (options) => {
121
+ await runSwarmPlan(io, options);
122
+ });
123
+ registerSwarmCommands(program, io);
124
+ // above are byte-for-byte untouched.
125
+ registerAutonomousSwarmCommands(program, io);
126
+ // Slice 4.0.8 — workflow lifecycle CLI (init / graph show / graph list /
127
+ // node prepare / node ack / node mark-lost / terminalize). Registered
128
+ // sibling to planning handlers per RD §4.
129
+ registerWorkflowLifecycleCommand(program, io);
130
+ // Slice #13 Swarm Algorithm Upgrade — 4 additional subcommands.
131
+ // (peaks swarm plan above is slice #13.1; the 4 below are 13.2-13.5).
132
+ registerSwarmPlaceholderCommands(swarm, io);
133
+ addJsonOption(program
134
+ .command('recommend')
135
+ .description('Create a dry-run recommendation plan for a workflow')
136
+ .requiredOption('--workflow <workflow>', 'workflow: code-refactor, product-refactor, or frontend-design')
137
+ .option('--language <language>', 'human presentation language')).action((options) => runRecommendAction(options, io));
138
+ }
@@ -0,0 +1,10 @@
1
+ import type { Command } from 'commander';
2
+ import { type ProgramIO } from '../cli-helpers.js';
3
+ import { type TechPlanOptions, type TechStatusOptions, type WorkflowRouteOptions } from './workflow-plan-helpers.js';
4
+ export declare function runTechPlan(io: ProgramIO, options: TechPlanOptions): void;
5
+ export declare function runTechStatus(io: ProgramIO, options: TechStatusOptions): void;
6
+ export declare function runWorkflowRoute(io: ProgramIO, options: WorkflowRouteOptions): void;
7
+ export declare function runAutonomousWorkflow(io: ProgramIO, options: WorkflowRouteOptions): void;
8
+ export declare function addTechPlanOptions(command: Command): Command;
9
+ export declare function addTechStatusOptions(command: Command): Command;
10
+ export declare function addWorkflowRouteOptions(command: Command, description: string): Command;
@@ -0,0 +1,150 @@
1
+ import { createTechPlan, getTechStatus } from '../../services/tech/tech-service.js';
2
+ import { createWorkflowRouterPlan, isWorkflowMode } from '../../services/workflow/workflow-router-service.js';
3
+ import { createAutonomousWorkflowPlan } from '../../services/workflow/workflow-autonomous-service.js';
4
+ import { readConfig } from '../../services/config/config-service.js';
5
+ import { addJsonOption, failUnsupportedNonDryRun, getErrorMessage, printResult } from '../cli-helpers.js';
6
+ import { fail, ok } from 'peaks-loop-shared/result';
7
+ // catch sites below (tech.plan / workflow.route / workflow.autonomous /
8
+ // swarm.plan) so provider-config errors surface as `INVALID_PROVIDERS`
9
+ // instead of being silently re-labelled `INVALID_GOAL`.
10
+ import { mapServiceError } from './_cli-error-envelope.js';
11
+ import { getCurrentWorkspaceContext, getWorkflowWorkspaceContext, parseCodeMode, parseMaxWorkers, validatePlanningInput } from './workflow-plan-helpers.js';
12
+ export function runTechPlan(io, options) {
13
+ if (options.dryRun === false) {
14
+ failUnsupportedNonDryRun(io, 'tech.plan', options.json);
15
+ return;
16
+ }
17
+ try {
18
+ validatePlanningInput(options.goal);
19
+ const workspaceContext = getCurrentWorkspaceContext();
20
+ // gone. The planner derives scope from the active session; the
21
+ // legacy `sessionId` field is passed as empty string for back-compat
22
+ // with the existing service signature.
23
+ const plan = createTechPlan({
24
+ sessionId: '',
25
+ goal: options.goal,
26
+ swarm: options.swarm ?? false,
27
+ dryRun: true,
28
+ ...workspaceContext
29
+ });
30
+ printResult(io, ok('tech.plan', plan), options.json);
31
+ }
32
+ catch (error) {
33
+ const mapping = mapServiceError(error);
34
+ printResult(io, fail('tech.plan', mapping.code, getErrorMessage(error), {}, [...mapping.nextActions]), options.json);
35
+ process.exitCode = 1;
36
+ }
37
+ }
38
+ export function runTechStatus(io, options) {
39
+ try {
40
+ const workspaceContext = getCurrentWorkspaceContext();
41
+ printResult(io, ok('tech.status', getTechStatus({ sessionId: '', ...workspaceContext })), options.json);
42
+ }
43
+ catch (error) {
44
+ printResult(io, fail('tech.status', 'TECH_STATUS_FAILED', getErrorMessage(error), {}, [
45
+ 'Verify the project setup'
46
+ ]), options.json);
47
+ process.exitCode = 1;
48
+ }
49
+ }
50
+ /**
51
+ * The dry-run / mode / maxWorkers / codeMode preamble the two workflow planners
52
+ * share. Lifted from their common prefix verbatim, parameterised only by the
53
+ * command label both already spelled out; it runs at the same point in the
54
+ * sequence and returns `null` where the original returned early.
55
+ */
56
+ function resolveWorkflowPlanInputs(io, label, options) {
57
+ if (options.dryRun === false) {
58
+ failUnsupportedNonDryRun(io, label, options.json);
59
+ return null;
60
+ }
61
+ if (!isWorkflowMode(options.mode)) {
62
+ printResult(io, fail(label, 'UNSUPPORTED_WORKFLOW_MODE', `Unsupported workflow mode ${options.mode}`, {}, [
63
+ 'Use --mode code or --mode team'
64
+ ]), options.json);
65
+ process.exitCode = 1;
66
+ return null;
67
+ }
68
+ const maxWorkers = parseMaxWorkers(io, label, options.maxWorkers, options.json);
69
+ if (maxWorkers === null)
70
+ return null;
71
+ const codeMode = parseCodeMode(io, label, options.mode, options.codeMode, options.json);
72
+ if (codeMode === null)
73
+ return null;
74
+ // `options.mode` is narrowed to `WorkflowMode` by the `isWorkflowMode` guard
75
+ // above; carrying it out with the pair keeps the call sites free of a cast.
76
+ return { maxWorkers, codeMode, mode: options.mode };
77
+ }
78
+ export function runWorkflowRoute(io, options) {
79
+ const inputs = resolveWorkflowPlanInputs(io, 'workflow.route', options);
80
+ if (inputs === null)
81
+ return;
82
+ try {
83
+ validatePlanningInput(options.goal);
84
+ const workspaceContext = getWorkflowWorkspaceContext();
85
+ const plan = createWorkflowRouterPlan({
86
+ sessionId: '',
87
+ goal: options.goal,
88
+ mode: inputs.mode,
89
+ ...(inputs.codeMode ? { codeMode: inputs.codeMode } : {}),
90
+ maxWorkers: inputs.maxWorkers,
91
+ dryRun: true,
92
+ config: readConfig(),
93
+ ...workspaceContext
94
+ });
95
+ printResult(io, ok('workflow.route', plan), options.json);
96
+ }
97
+ catch (error) {
98
+ const mapping = mapServiceError(error);
99
+ printResult(io, fail('workflow.route', mapping.code, getErrorMessage(error), {}, [...mapping.nextActions]), options.json);
100
+ process.exitCode = 1;
101
+ }
102
+ }
103
+ export function runAutonomousWorkflow(io, options) {
104
+ const inputs = resolveWorkflowPlanInputs(io, 'workflow.autonomous', options);
105
+ if (inputs === null)
106
+ return;
107
+ try {
108
+ validatePlanningInput(options.goal);
109
+ const workspaceContext = getWorkflowWorkspaceContext();
110
+ const plan = createAutonomousWorkflowPlan({
111
+ sessionId: '',
112
+ goal: options.goal,
113
+ mode: inputs.mode,
114
+ ...(inputs.codeMode ? { codeMode: inputs.codeMode } : {}),
115
+ maxWorkers: inputs.maxWorkers,
116
+ dryRun: true,
117
+ config: readConfig(),
118
+ ...workspaceContext
119
+ });
120
+ printResult(io, ok('workflow.autonomous', plan), options.json);
121
+ }
122
+ catch (error) {
123
+ const mapping = mapServiceError(error);
124
+ printResult(io, fail('workflow.autonomous', mapping.code, getErrorMessage(error), {}, [
125
+ ...mapping.nextActions
126
+ ]), options.json);
127
+ process.exitCode = 1;
128
+ }
129
+ }
130
+ export function addTechPlanOptions(command) {
131
+ return addJsonOption(command
132
+ .description('Generate a technical dry-run graph')
133
+ .requiredOption('--goal <goal>', 'planning goal')
134
+ .option('--swarm', 'opt into swarm-oriented planning')
135
+ .option('--dry-run', 'preview without writing files', true)
136
+ .option('--no-dry-run', 'unsupported: do not execute tech planning from this CLI'));
137
+ }
138
+ export function addTechStatusOptions(command) {
139
+ return addJsonOption(command.description('Inspect technical approval status'));
140
+ }
141
+ export function addWorkflowRouteOptions(command, description) {
142
+ return addJsonOption(command
143
+ .description(description)
144
+ .requiredOption('--mode <mode>', 'workflow mode: code or team')
145
+ .requiredOption('--goal <goal>', 'planning goal')
146
+ .option('--code-mode <mode>', 'code mode: full-auto, guided, or rnd')
147
+ .option('--max-workers <count>', 'maximum worker count', '40')
148
+ .option('--dry-run', 'preview without writing files', true)
149
+ .option('--no-dry-run', 'unsupported: do not execute workflow planning from this CLI'));
150
+ }
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ import { type ProgramIO } from '../cli-helpers.js';
3
+ export declare function registerWorkflowTerminalizeCommand(workflow: Command, io: ProgramIO): void;
@@ -0,0 +1,56 @@
1
+ // src/cli/commands/workflow-terminalize-command.ts
2
+ //
3
+ // `peaks workflow terminalize` — atomically terminalize a workflow (lease +
4
+ // graph + index + observability event). Split out of
5
+ // `workflow-lifecycle-commands.ts`; the verb name, its options, the
6
+ // `--require-consumed` passthrough and the envelope shape are unchanged.
7
+ import { fail, getErrorMessage, ok } from 'peaks-loop-shared/result';
8
+ import { addJsonOption, printResult } from '../cli-helpers.js';
9
+ import { terminalizeWorkflow } from '../../services/workflow/workflow-presence-lifecycle.js';
10
+ import { TERMINAL_REASONS } from '../../services/workflow/workflow-graph-types.js';
11
+ import { deriveCallerId, deriveProjectRoot, deriveSessionId } from './workflow-command-shared.js';
12
+ async function runWorkflowTerminalize(io, options) {
13
+ const asJson = options.json === true;
14
+ try {
15
+ const callerId = deriveCallerId();
16
+ const sessionId = deriveSessionId(options);
17
+ const projectRoot = deriveProjectRoot(options);
18
+ const workflowId = options.workflow ?? '';
19
+ if (!workflowId)
20
+ throw new Error('workflowId is required');
21
+ if (!TERMINAL_REASONS.includes(options.reason)) {
22
+ throw new Error(`PEAKS_TERMINAL_REASON_INVALID: ${options.reason}`);
23
+ }
24
+ const result = await terminalizeWorkflow({
25
+ projectRoot,
26
+ sessionId,
27
+ callerId,
28
+ workflowId,
29
+ graphRef: `graphs/${workflowId}.json`,
30
+ reason: options.reason,
31
+ ...(options.requireConsumed ? { requireConsumed: true } : {})
32
+ });
33
+ printResult(io, ok('workflow.terminalize', {
34
+ envelopeVersion: '4.0.8',
35
+ lease: result.lease,
36
+ graph: result.graph,
37
+ events: result.events,
38
+ indexCleared: result.indexCleared
39
+ }), asJson);
40
+ }
41
+ catch (err) {
42
+ const code = err.code ?? 'PEAKS_TERMINALIZE_ATOMICITY_FAILED';
43
+ printResult(io, fail('workflow.terminalize', code, getErrorMessage(err), { lease: null }, []), asJson);
44
+ process.exitCode = 1;
45
+ }
46
+ }
47
+ export function registerWorkflowTerminalizeCommand(workflow, io) {
48
+ addJsonOption(workflow
49
+ .command('terminalize')
50
+ .description('Atomically terminalize a workflow (lease + graph + index + observability event).')
51
+ .requiredOption('--workflow <id>', 'workflow id')
52
+ .requiredOption('--reason <reason>', `terminal reason: ${TERMINAL_REASONS.join(' | ')}`)
53
+ .option('--session-id <sid>', 'session id')
54
+ .option('--project <path>', 'project root')
55
+ .option('--require-consumed', 'fail if there are unconsumed envelopes')).action((options) => runWorkflowTerminalize(io, options));
56
+ }