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
@@ -5,84 +5,18 @@
5
5
  * prepare / node ack / node mark-lost / terminalize`. All commands
6
6
  * delegate to the canonical services. Each action emits the typed
7
7
  * envelope via `ok` / `fail` so the LLM runner can branch on `code`.
8
- */
9
- import { fail, ok, getErrorMessage } from 'peaks-loop-shared/result';
10
- import { addJsonOption, printResult } from '../cli-helpers.js';
11
- import { resolveCallerId } from '../../services/session/resolve-caller-id.js';
12
- import { findProjectRoot } from '../../services/config/config-safety.js';
13
- import { getCurrentSessionId } from '../../services/skills/skill-presence-service.js';
14
- import { initWorkflow, terminalizeWorkflow } from '../../services/workflow/workflow-presence-lifecycle.js';
15
- import { readGraph, emptyGraph } from '../../services/workflow/workflow-graph-store.js';
16
- import { WORKFLOW_ID_REGEX, TERMINAL_REASONS } from '../../services/workflow/workflow-graph-types.js';
17
- import { prepareNodeAction, transitionNode, transitionLease } from '../../services/workflow/workflow-node-lifecycle.js';
18
- function deriveCallerId() {
19
- try {
20
- return resolveCallerId({});
21
- }
22
- catch (err) {
23
- throw fail('workflow.init', 'PEAKS_CALLER_NOT_RESOLVED', getErrorMessage(err), { callerId: null }, ['Resolve the IDE session identity before running workflow commands.']);
24
- }
25
- }
26
- function deriveProjectRoot(options) {
27
- return options.project ?? process.cwd();
28
- }
29
- /**
30
- * The literal that means "no session could be resolved". Kept as a named
31
- * constant because three call sites now have to ASK whether resolution
32
- * failed rather than consume the value as if it were an id.
33
- */
34
- export const UNKNOWN_SESSION_ID = 'unknown-sid';
35
- /**
36
- * Resolve the session id for every `workflow *` command.
37
- *
38
- * Tier order (matches the idiom every other command family in this CLI
39
- * already uses — see `job-commands.ts:85`, `container-commands.ts:138`):
40
8
  *
41
- * 1. `--session-id <sid>` — explicit wins
42
- * 2. `PEAKS_SESSION_ID` env var — scripted / sub-process callers
43
- * 3. `getCurrentSessionId(projectRoot)` — this caller's OWN binding
44
- * (`callers/<callerId>.json`) falling back to the project-global
45
- * `.peaks/_runtime/session.json`, the same resolver `peaks session
46
- * info --active` and `peaks session checkpoint` use
47
- * 4. `unknown-sid` — nothing is bound
48
- *
49
- * Tier 3 was MISSING until 2026-09-15 (S6), and its absence is the whole
50
- * defect: `workflow init` resolved on tiers 1–2 only, so with no flag and no
51
- * env var it wrote the graph into `.peaks/_runtime/unknown-sid/graphs/`
52
- * regardless of what the binding file said. `peaks workflow node prepare`
53
- * then ran under the CORRECT session dir and reported `PEAKS_GRAPH_NOT_FOUND`
54
- * — the graph it was asking for had been written one bucket over. The bucket
55
- * accumulated artifacts from at least 4 distinct caller ids between 2026-09-01
56
- * and 2026-09-15, i.e. it had never worked for anyone.
57
- *
58
- * The same prior-art sweep (`.peaks/memory/archived/2026-06-26-unknown-sid-root-cause.md`)
59
- * converted six inline `?? 'unknown-sid'` sites to this 4-tier chain;
60
- * `workflow-lifecycle-commands.ts` was missed. This is that site.
61
- *
62
- * The project root passed to tier 3 goes through the same `findProjectRoot`
63
- * walk `session info` uses, so a command run from a SUBDIRECTORY of the
64
- * project resolves the project's binding instead of `cwd`'s (which has none).
9
+ * The verb implementations live beside this file, one module per verb group:
10
+ * `workflow-init-command.ts`, `workflow-graph-commands.ts`,
11
+ * `workflow-node-commands.ts`, `workflow-terminalize-command.ts`, with the
12
+ * option vocabulary and the caller / project / session derivation in
13
+ * `workflow-command-shared.ts`.
65
14
  */
66
- function deriveSessionId(options) {
67
- if (typeof options.sessionId === 'string' && options.sessionId.length > 0)
68
- return options.sessionId;
69
- const fromEnv = process.env.PEAKS_SESSION_ID;
70
- if (typeof fromEnv === 'string' && fromEnv.length > 0)
71
- return fromEnv;
72
- return (getCurrentSessionId(findProjectRoot(options.project ?? process.cwd()) ?? options.project ?? process.cwd()) ?? UNKNOWN_SESSION_ID);
73
- }
74
- /**
75
- * Tier 3 resolving to `unknown-sid` means NO session is bound at all. A
76
- * `workflow` subcommand that WRITES must fail loudly on that rather than
77
- * create a bucket named after a failure — `graph list` already does (see its
78
- * `PEAKS_SESSION_NOT_BOUND` guard below); `init` did not.
79
- */
80
- function buildSessionNotBoundEnvelope(sessionId, projectRoot) {
81
- return fail('workflow.init', 'PEAKS_SESSION_NOT_BOUND', `No peaks session is bound for '${projectRoot}' (derived session id '${sessionId}'): --session-id, PEAKS_SESSION_ID and the project binding are all absent.`, { workflowId: null }, [
82
- 'Run `peaks workspace init --project <p>` to bind a session, then re-run.',
83
- 'Or pass `--session-id <sid>` explicitly.'
84
- ]);
85
- }
15
+ import { registerWorkflowGraphCommands } from './workflow-graph-commands.js';
16
+ import { registerWorkflowInitCommand } from './workflow-init-command.js';
17
+ import { registerWorkflowNodeCommands } from './workflow-node-commands.js';
18
+ import { registerWorkflowTerminalizeCommand } from './workflow-terminalize-command.js';
19
+ export { UNKNOWN_SESSION_ID } from './workflow-command-shared.js';
86
20
  export function registerWorkflowLifecycleCommand(parent, io) {
87
21
  // Reuse the existing `workflow` parent (created by `registerWorkflowCommands`)
88
22
  // to avoid Commander.js's "cannot add command 'workflow' as already have
@@ -90,276 +24,8 @@ export function registerWorkflowLifecycleCommand(parent, io) {
90
24
  const existingWorkflow = parent.commands.find((c) => c.name() === 'workflow');
91
25
  const workflow = existingWorkflow ??
92
26
  parent.command('workflow').description('workflow lifecycle commands (RD §4)');
93
- addJsonOption(workflow
94
- .command('init')
95
- .description('Initialize a workflow graph + canonical lease + caller index.')
96
- .requiredOption('--skill <name>', 'the skill owning this workflow (e.g. peaks-code)')
97
- .option('--workflow-id <id>', 'optional explicit workflowId (auto-generated if omitted)')
98
- .option('--parent-workflow <id>', 'parent workflowId for nested runs')
99
- .option('--session-id <sid>', 'override session id (default: derived from session.json / env)')
100
- .option('--project <path>', 'target project root (defaults to cwd)')).action(async (options) => {
101
- const asJson = options.json === true;
102
- try {
103
- const callerId = deriveCallerId();
104
- const projectRoot = deriveProjectRoot(options);
105
- const sessionId = deriveSessionId(options);
106
- if (sessionId === UNKNOWN_SESSION_ID) {
107
- printResult(io, buildSessionNotBoundEnvelope(sessionId, projectRoot), asJson);
108
- process.exitCode = 1;
109
- return;
110
- }
111
- const workflowId = options.workflowId ?? `wf-${Date.now().toString(36)}`;
112
- if (!WORKFLOW_ID_REGEX.test(workflowId)) {
113
- throw new Error(`workflowId shape invalid: ${workflowId}`);
114
- }
115
- const result = await initWorkflow({
116
- projectRoot,
117
- sessionId,
118
- callerId,
119
- skill: options.skill ?? 'peaks-code',
120
- workflowId,
121
- ...(options.parentWorkflow ? { parentWorkflowId: options.parentWorkflow } : {})
122
- });
123
- printResult(io, ok('workflow.init', {
124
- envelopeVersion: '4.0.8',
125
- workflowId: result.workflowId,
126
- graphRef: result.graphRef,
127
- events: result.events
128
- }), asJson);
129
- }
130
- catch (err) {
131
- const code = err.code ?? 'PEAKS_GRAPH_WRITE_FAILED';
132
- printResult(io, fail('workflow.init', code, getErrorMessage(err), { workflowId: null }, []), asJson);
133
- process.exitCode = 1;
134
- }
135
- });
136
- // Note: `.command('graph show')` and `.command('graph list')` each
137
- // implicitly create a NEW `graph` parent under `workflow` in
138
- // Commander v12 (no auto-reuse), so calling them in sequence throws
139
- // "cannot add command 'graph' as already have command 'graph'" at
140
- // startup. Reuse the first created `graph` parent for the second
141
- // registration.
142
- const graphCmd = workflow.command('graph').description('workflow graph read commands');
143
- graphCmd
144
- .command('show')
145
- .description('Read a workflow graph.')
146
- .option('--workflow <id>', 'workflow id')
147
- .option('--session-id <sid>', 'session id')
148
- .option('--project <path>', 'project root')
149
- .option('--json', 'json output')
150
- .action((options) => {
151
- const asJson = options.json === true;
152
- try {
153
- const sessionId = deriveSessionId(options);
154
- const projectRoot = deriveProjectRoot(options);
155
- const workflowId = options.workflow ?? '';
156
- if (!workflowId || !WORKFLOW_ID_REGEX.test(workflowId)) {
157
- throw new Error('workflowId is required');
158
- }
159
- const graph = readGraph({
160
- projectRoot,
161
- sessionId,
162
- graphRef: `graphs/${workflowId}.json`,
163
- workflowId
164
- });
165
- printResult(io, ok('workflow.graph.show', { envelopeVersion: '4.0.8', graph }), asJson);
166
- }
167
- catch (err) {
168
- const code = err.code ?? 'PEAKS_GRAPH_NOT_FOUND';
169
- printResult(io, fail('workflow.graph.show', code, getErrorMessage(err), { graph: null }, []), asJson);
170
- process.exitCode = 1;
171
- }
172
- });
173
- graphCmd
174
- .command('list')
175
- .description('List workflow graphs (metadata only).')
176
- .option('--session-id <sid>', 'session id')
177
- .option('--project <path>', 'project root')
178
- .option('--json', 'json output')
179
- .action((options) => {
180
- const asJson = options.json === true;
181
- try {
182
- const sessionId = deriveSessionId(options);
183
- if (sessionId === UNKNOWN_SESSION_ID) {
184
- throw new Error('PEAKS_SESSION_NOT_BOUND: no session id');
185
- }
186
- const result = { envelopeVersion: '4.0.8', sessionId, graphs: [] };
187
- printResult(io, ok('workflow.graph.list', result), asJson);
188
- }
189
- catch (err) {
190
- const code = err.code ?? 'PEAKS_SESSION_NOT_BOUND';
191
- printResult(io, fail('workflow.graph.list', code, getErrorMessage(err), { graphs: [] }, []), asJson);
192
- process.exitCode = 1;
193
- }
194
- });
195
- // Reuse one `node` parent for prepare / ack / mark-lost (Commander v12
196
- // creates a NEW parent per `.command('node X')` call, so we must
197
- // explicitly create the parent first to avoid duplicate-registration).
198
- const nodeCmd = workflow.command('node').description('workflow node commands');
199
- nodeCmd
200
- .command('prepare')
201
- .description('Prepare a node in a workflow graph.')
202
- .option('--workflow <id>', 'workflow id')
203
- .option('--node <id>', 'node id')
204
- .option('--kind <k>', 'node kind: step | dispatch | terminal')
205
- .option('--label <text>', 'human-readable label')
206
- .option('--depends-on <ids>', 'comma-separated list of dependency node ids')
207
- .option('--session-id <sid>', 'session id')
208
- .option('--project <path>', 'project root')
209
- .option('--json', 'json output')
210
- .action((options) => {
211
- const asJson = options.json === true;
212
- try {
213
- const sessionId = deriveSessionId(options);
214
- const projectRoot = deriveProjectRoot(options);
215
- const workflowId = options.workflow ?? '';
216
- if (!workflowId || !WORKFLOW_ID_REGEX.test(workflowId)) {
217
- throw new Error('workflowId is required');
218
- }
219
- const graphRef = `graphs/${workflowId}.json`;
220
- const existing = readGraph({ projectRoot, sessionId, graphRef, workflowId });
221
- const nodeId = options.node ?? `node-${Date.now().toString(36)}`;
222
- const kind = (options.kind ?? 'step');
223
- const dependsOn = (options.dependsOn ?? '')
224
- .split(',')
225
- .map((s) => s.trim())
226
- .filter((s) => s.length > 0);
227
- const updated = prepareNodeAction({
228
- workflowId,
229
- nodeId,
230
- graphNode: existing.nodes.find((n) => n.id === nodeId) ?? {
231
- id: nodeId,
232
- kind,
233
- label: options.label ?? nodeId,
234
- status: 'prepared',
235
- dependsOn
236
- },
237
- dependsOn,
238
- status: 'prepared'
239
- });
240
- // Persist via the graph store
241
- // (not inlined so the CLI delegates everything to the service).
242
- printResult(io, ok('workflow.node.prepare', { envelopeVersion: '4.0.8', graph: updated }), asJson);
243
- }
244
- catch (err) {
245
- const code = err.code ?? 'PEAKS_GRAPH_CORRUPTED';
246
- printResult(io, fail('workflow.node.prepare', code, getErrorMessage(err), { graph: null }, []), asJson);
247
- process.exitCode = 1;
248
- }
249
- });
250
- nodeCmd
251
- .command('ack')
252
- .description('Acknowledge a node that has an envelope-received status.')
253
- .option('--workflow <id>', 'workflow id')
254
- .option('--node <id>', 'node id')
255
- .option('--session-id <sid>', 'session id')
256
- .option('--project <path>', 'project root')
257
- .option('--json', 'json output')
258
- .action((options) => {
259
- const asJson = options.json === true;
260
- try {
261
- const sessionId = deriveSessionId(options);
262
- const projectRoot = deriveProjectRoot(options);
263
- const workflowId = options.workflow ?? '';
264
- if (!workflowId)
265
- throw new Error('workflowId is required');
266
- const graphRef = `graphs/${workflowId}.json`;
267
- const graph = readGraph({ projectRoot, sessionId, graphRef, workflowId });
268
- const nodeId = options.node ?? '';
269
- const node = graph.nodes.find((n) => n.id === nodeId);
270
- if (!node)
271
- throw new Error(`node ${nodeId} not found`);
272
- if (node.status !== 'envelope-received') {
273
- throw new Error('PEAKS_ENVELOPE_NOT_RECEIVED: node is not envelope-received');
274
- }
275
- const updated = transitionNode(node.status, 'consumed-by-parent', { graphNode: node });
276
- printResult(io, ok('workflow.node.ack', { envelopeVersion: '4.0.8', node: updated }), asJson);
277
- }
278
- catch (err) {
279
- const code = err.code ?? 'PEAKS_ENVELOPE_NOT_RECEIVED';
280
- printResult(io, fail('workflow.node.ack', code, getErrorMessage(err), { node: null }, []), asJson);
281
- process.exitCode = 1;
282
- }
283
- });
284
- nodeCmd
285
- .command('mark-lost')
286
- .description('Mark a node as lost.')
287
- .option('--workflow <id>', 'workflow id')
288
- .option('--node <id>', 'node id')
289
- .option('--reason <reason>', `terminal reason: ${TERMINAL_REASONS.join(' | ')}`)
290
- .option('--session-id <sid>', 'session id')
291
- .option('--project <path>', 'project root')
292
- .option('--json', 'json output')
293
- .action((options) => {
294
- const asJson = options.json === true;
295
- try {
296
- const workflowId = options.workflow ?? '';
297
- if (!workflowId)
298
- throw new Error('workflowId is required');
299
- const nodeId = options.node ?? '';
300
- if (!nodeId)
301
- throw new Error('nodeId is required');
302
- const reason = options.reason ?? 'unknown';
303
- if (!TERMINAL_REASONS.includes(reason)) {
304
- throw new Error(`PEAKS_TERMINAL_REASON_INVALID: ${reason}`);
305
- }
306
- printResult(io, ok('workflow.node.mark-lost', {
307
- envelopeVersion: '4.0.8',
308
- workflowId,
309
- nodeId,
310
- status: 'lost',
311
- terminalReason: reason
312
- }), asJson);
313
- }
314
- catch (err) {
315
- const code = err.code ?? 'PEAKS_TERMINAL_REASON_INVALID';
316
- printResult(io, fail('workflow.node.mark-lost', code, getErrorMessage(err), { node: null }, []), asJson);
317
- process.exitCode = 1;
318
- }
319
- });
320
- addJsonOption(workflow
321
- .command('terminalize')
322
- .description('Atomically terminalize a workflow (lease + graph + index + observability event).')
323
- .requiredOption('--workflow <id>', 'workflow id')
324
- .requiredOption('--reason <reason>', `terminal reason: ${TERMINAL_REASONS.join(' | ')}`)
325
- .option('--session-id <sid>', 'session id')
326
- .option('--project <path>', 'project root')
327
- .option('--require-consumed', 'fail if there are unconsumed envelopes')).action(async (options) => {
328
- const asJson = options.json === true;
329
- try {
330
- const callerId = deriveCallerId();
331
- const sessionId = deriveSessionId(options);
332
- const projectRoot = deriveProjectRoot(options);
333
- const workflowId = options.workflow ?? '';
334
- if (!workflowId)
335
- throw new Error('workflowId is required');
336
- if (!TERMINAL_REASONS.includes(options.reason)) {
337
- throw new Error(`PEAKS_TERMINAL_REASON_INVALID: ${options.reason}`);
338
- }
339
- const result = await terminalizeWorkflow({
340
- projectRoot,
341
- sessionId,
342
- callerId,
343
- workflowId,
344
- graphRef: `graphs/${workflowId}.json`,
345
- reason: options.reason,
346
- ...(options.requireConsumed ? { requireConsumed: true } : {})
347
- });
348
- printResult(io, ok('workflow.terminalize', {
349
- envelopeVersion: '4.0.8',
350
- lease: result.lease,
351
- graph: result.graph,
352
- events: result.events,
353
- indexCleared: result.indexCleared
354
- }), asJson);
355
- }
356
- catch (err) {
357
- const code = err.code ?? 'PEAKS_TERMINALIZE_ATOMICITY_FAILED';
358
- printResult(io, fail('workflow.terminalize', code, getErrorMessage(err), { lease: null }, []), asJson);
359
- process.exitCode = 1;
360
- }
361
- });
362
- // Suppress unused-import warnings for symbols reserved for future slices.
363
- void transitionLease;
364
- void emptyGraph;
27
+ registerWorkflowInitCommand(workflow, io);
28
+ registerWorkflowGraphCommands(workflow, io);
29
+ registerWorkflowNodeCommands(workflow, io);
30
+ registerWorkflowTerminalizeCommand(workflow, io);
365
31
  }
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ import { type ProgramIO } from '../cli-helpers.js';
3
+ export declare function registerWorkflowNodeCommands(workflow: Command, io: ProgramIO): void;
@@ -0,0 +1,154 @@
1
+ // src/cli/commands/workflow-node-commands.ts
2
+ //
3
+ // `peaks workflow node prepare` / `node ack` / `node mark-lost` — the workflow
4
+ // node lifecycle verbs. Split out of `workflow-lifecycle-commands.ts`; every
5
+ // verb name, option and envelope shape is unchanged.
6
+ import { fail, getErrorMessage, ok } from 'peaks-loop-shared/result';
7
+ import { printResult } from '../cli-helpers.js';
8
+ import { readGraph } from '../../services/workflow/workflow-graph-store.js';
9
+ import { prepareNodeAction, transitionNode } from '../../services/workflow/workflow-node-lifecycle.js';
10
+ import { TERMINAL_REASONS, WORKFLOW_ID_REGEX } from '../../services/workflow/workflow-graph-types.js';
11
+ import { deriveProjectRoot, deriveSessionId, GENERATED_ID_RADIX } from './workflow-command-shared.js';
12
+ /** The comma-separated `--depends-on` list, trimmed, with empties removed. */
13
+ function parseDependsOn(raw) {
14
+ return (raw ?? '')
15
+ .split(',')
16
+ .map((s) => s.trim())
17
+ .filter((s) => s.length > 0);
18
+ }
19
+ /** The node this `prepare` acts on: the one already in the graph, or the new default. */
20
+ function prepareGraphNode(existing, request) {
21
+ return (existing.nodes.find((n) => n.id === request.nodeId) ?? {
22
+ id: request.nodeId,
23
+ kind: request.kind,
24
+ label: request.label ?? request.nodeId,
25
+ status: 'prepared',
26
+ dependsOn: request.dependsOn
27
+ });
28
+ }
29
+ function runWorkflowNodePrepare(io, options) {
30
+ const asJson = options.json === true;
31
+ try {
32
+ const sessionId = deriveSessionId(options);
33
+ const projectRoot = deriveProjectRoot(options);
34
+ const workflowId = options.workflow ?? '';
35
+ if (!workflowId || !WORKFLOW_ID_REGEX.test(workflowId)) {
36
+ throw new Error('workflowId is required');
37
+ }
38
+ const graphRef = `graphs/${workflowId}.json`;
39
+ const existing = readGraph({ projectRoot, sessionId, graphRef, workflowId });
40
+ const nodeId = options.node ?? `node-${Date.now().toString(GENERATED_ID_RADIX)}`;
41
+ const kind = (options.kind ?? 'step');
42
+ const dependsOn = parseDependsOn(options.dependsOn);
43
+ const updated = prepareNodeAction({
44
+ workflowId,
45
+ nodeId,
46
+ graphNode: prepareGraphNode(existing, {
47
+ nodeId,
48
+ kind,
49
+ label: options.label,
50
+ dependsOn
51
+ }),
52
+ dependsOn,
53
+ status: 'prepared'
54
+ });
55
+ // Persist via the graph store
56
+ // (not inlined so the CLI delegates everything to the service).
57
+ printResult(io, ok('workflow.node.prepare', { envelopeVersion: '4.0.8', graph: updated }), asJson);
58
+ }
59
+ catch (err) {
60
+ const code = err.code ?? 'PEAKS_GRAPH_CORRUPTED';
61
+ printResult(io, fail('workflow.node.prepare', code, getErrorMessage(err), { graph: null }, []), asJson);
62
+ process.exitCode = 1;
63
+ }
64
+ }
65
+ function runWorkflowNodeAck(io, options) {
66
+ const asJson = options.json === true;
67
+ try {
68
+ const sessionId = deriveSessionId(options);
69
+ const projectRoot = deriveProjectRoot(options);
70
+ const workflowId = options.workflow ?? '';
71
+ if (!workflowId)
72
+ throw new Error('workflowId is required');
73
+ const graphRef = `graphs/${workflowId}.json`;
74
+ const graph = readGraph({ projectRoot, sessionId, graphRef, workflowId });
75
+ const nodeId = options.node ?? '';
76
+ const node = graph.nodes.find((n) => n.id === nodeId);
77
+ if (!node)
78
+ throw new Error(`node ${nodeId} not found`);
79
+ if (node.status !== 'envelope-received') {
80
+ throw new Error('PEAKS_ENVELOPE_NOT_RECEIVED: node is not envelope-received');
81
+ }
82
+ const updated = transitionNode(node.status, 'consumed-by-parent', { graphNode: node });
83
+ printResult(io, ok('workflow.node.ack', { envelopeVersion: '4.0.8', node: updated }), asJson);
84
+ }
85
+ catch (err) {
86
+ const code = err.code ?? 'PEAKS_ENVELOPE_NOT_RECEIVED';
87
+ printResult(io, fail('workflow.node.ack', code, getErrorMessage(err), { node: null }, []), asJson);
88
+ process.exitCode = 1;
89
+ }
90
+ }
91
+ function runWorkflowNodeMarkLost(io, options) {
92
+ const asJson = options.json === true;
93
+ try {
94
+ const workflowId = options.workflow ?? '';
95
+ if (!workflowId)
96
+ throw new Error('workflowId is required');
97
+ const nodeId = options.node ?? '';
98
+ if (!nodeId)
99
+ throw new Error('nodeId is required');
100
+ const reason = options.reason ?? 'unknown';
101
+ if (!TERMINAL_REASONS.includes(reason)) {
102
+ throw new Error(`PEAKS_TERMINAL_REASON_INVALID: ${reason}`);
103
+ }
104
+ printResult(io, ok('workflow.node.mark-lost', {
105
+ envelopeVersion: '4.0.8',
106
+ workflowId,
107
+ nodeId,
108
+ status: 'lost',
109
+ terminalReason: reason
110
+ }), asJson);
111
+ }
112
+ catch (err) {
113
+ const code = err.code ?? 'PEAKS_TERMINAL_REASON_INVALID';
114
+ printResult(io, fail('workflow.node.mark-lost', code, getErrorMessage(err), { node: null }, []), asJson);
115
+ process.exitCode = 1;
116
+ }
117
+ }
118
+ export function registerWorkflowNodeCommands(workflow, io) {
119
+ // Reuse one `node` parent for prepare / ack / mark-lost (Commander v12
120
+ // creates a NEW parent per `.command('node X')` call, so we must
121
+ // explicitly create the parent first to avoid duplicate-registration).
122
+ const nodeCmd = workflow.command('node').description('workflow node commands');
123
+ nodeCmd
124
+ .command('prepare')
125
+ .description('Prepare a node in a workflow graph.')
126
+ .option('--workflow <id>', 'workflow id')
127
+ .option('--node <id>', 'node id')
128
+ .option('--kind <k>', 'node kind: step | dispatch | terminal')
129
+ .option('--label <text>', 'human-readable label')
130
+ .option('--depends-on <ids>', 'comma-separated list of dependency node ids')
131
+ .option('--session-id <sid>', 'session id')
132
+ .option('--project <path>', 'project root')
133
+ .option('--json', 'json output')
134
+ .action((options) => runWorkflowNodePrepare(io, options));
135
+ nodeCmd
136
+ .command('ack')
137
+ .description('Acknowledge a node that has an envelope-received status.')
138
+ .option('--workflow <id>', 'workflow id')
139
+ .option('--node <id>', 'node id')
140
+ .option('--session-id <sid>', 'session id')
141
+ .option('--project <path>', 'project root')
142
+ .option('--json', 'json output')
143
+ .action((options) => runWorkflowNodeAck(io, options));
144
+ nodeCmd
145
+ .command('mark-lost')
146
+ .description('Mark a node as lost.')
147
+ .option('--workflow <id>', 'workflow id')
148
+ .option('--node <id>', 'node id')
149
+ .option('--reason <reason>', `terminal reason: ${TERMINAL_REASONS.join(' | ')}`)
150
+ .option('--session-id <sid>', 'session id')
151
+ .option('--project <path>', 'project root')
152
+ .option('--json', 'json output')
153
+ .action((options) => runWorkflowNodeMarkLost(io, options));
154
+ }
@@ -0,0 +1,48 @@
1
+ import { type ProgramIO } from '../cli-helpers.js';
2
+ import { type CodeMode } from '../../services/workflow/workflow-router-service.js';
3
+ import type { WorkspaceConfig } from '../../services/config/config-types.js';
4
+ export declare function buildDocFetcher(sid: string): import('../../services/context/doc-retriever.js').DocFetcher;
5
+ export declare function ensureContextForRd(goal: string, project: string, sid: string): Promise<void>;
6
+ export interface WorkspaceContext {
7
+ workspace?: WorkspaceConfig;
8
+ artifactWorkspacePath?: string;
9
+ sessionId?: string;
10
+ sessionDir?: string;
11
+ projectRoot?: string;
12
+ }
13
+ export interface TechPlanOptions {
14
+ goal: string;
15
+ swarm?: boolean;
16
+ dryRun?: boolean;
17
+ json?: boolean;
18
+ }
19
+ export interface TechStatusOptions {
20
+ json?: boolean;
21
+ }
22
+ export interface WorkflowRouteOptions {
23
+ mode: string;
24
+ goal: string;
25
+ codeMode?: string;
26
+ maxWorkers: string;
27
+ dryRun?: boolean;
28
+ json?: boolean;
29
+ }
30
+ export interface SwarmPlanOptions {
31
+ skill?: string;
32
+ goal: string;
33
+ maxWorkers: string;
34
+ dryRun?: boolean;
35
+ json?: boolean;
36
+ strictStandards?: boolean;
37
+ }
38
+ export interface AutonomousResumeInitOptions {
39
+ goal: string;
40
+ project: string;
41
+ apply?: boolean;
42
+ json?: boolean;
43
+ }
44
+ export declare function getCurrentWorkspaceContext(): WorkspaceContext;
45
+ export declare function getWorkflowWorkspaceContext(): WorkspaceContext;
46
+ export declare function parseMaxWorkers(io: ProgramIO, command: string, value: string, asJson?: boolean): number | null;
47
+ export declare function validatePlanningInput(goal: string): void;
48
+ export declare function parseCodeMode(io: ProgramIO, command: string, mode: string, codeMode: string | undefined, asJson?: boolean): CodeMode | undefined | null;