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
@@ -1,283 +1,113 @@
1
1
  /**
2
+ * The `--from-dag` path of `peaks sub-agent dispatch`.
2
3
  *
3
- * Pulled out of `dispatch-commands.ts` to honor the 800-line file cap
4
- * (Karpathy #2 Simplicity First). The single-dispatch action stays in
5
- * `dispatch-commands.ts`; the DAG-dispatch path lives here because the
6
- * two paths share no logic — the warm-path single dispatch does NOT
7
- * load slice-dag / dag-orchestrator / contract-store (slice 9 perf),
8
- * while the --from-dag codepath loads all three on first call.
4
+ * Pulled out of `dispatch-commands.ts` to honor the file-size cap (Karpathy #2
5
+ * Simplicity First). The single-dispatch action stays in `dispatch-commands.ts`;
6
+ * the DAG-dispatch path lives here because the two share no logic — the
7
+ * warm-path single dispatch does NOT load slice-dag / dag-orchestrator /
8
+ * contract-store (slice 9 perf), while the `--from-dag` codepath loads all
9
+ * three on first call.
9
10
  *
10
- * 2.7.0 slice-dag-dispatcher MVP: read a SliceDag from a file and run
11
- * it through `runDag`. The orchestrator's `runSlice` is a thin wrapper
12
- * that emits the per-IDE `buildToolCall` envelope for each topological
13
- * level.
11
+ * 2.7.0 slice-dag-dispatcher MVP: read a SliceDag from a file and run it
12
+ * through `runLayeredDag`. The orchestrator's `runSlice` is a thin wrapper
13
+ * that emits the per-IDE `buildToolCall` envelope for each topological level.
14
14
  *
15
15
  * 1.2 MVP scope: this dispatches the FIRST topological level synchronously
16
- * (returns the dispatch specs); subsequent levels are not surfaced in
17
- * the CLI envelope because the LLM-side runner must actually execute
18
- * each `buildToolCall` and write the resulting contract before level 2+
19
- * can be safely auto-advanced. The LLM re-invokes
20
- * `peaks sub-agent dispatch --from-dag <file> --batch-id <id>` after
21
- * writing level-1 contracts, which causes runDag to plan level 2+ with
22
- * the level-1 ancestor contracts spliced into their dispatch prompts.
16
+ * (returns the dispatch specs); subsequent levels are not surfaced in the CLI
17
+ * envelope because the LLM-side runner must actually execute each
18
+ * `buildToolCall` and write the resulting contract before level 2+ can be
19
+ * safely auto-advanced. The LLM re-invokes `peaks sub-agent dispatch --from-dag
20
+ * <file> --batch-id <id>` after writing level-1 contracts, which causes
21
+ * `runLayeredDag` to plan level 2+ with the level-1 ancestor contracts spliced
22
+ * into their dispatch prompts.
23
23
  *
24
- * Internally, runDag DOES iterate all levels so its join-barrier +
25
- * cancel-on-fail path is exercised end-to-end during the MVP emit; only
26
- * the CLI envelope is filtered to level-1 toolCalls (see `firstLevelIds`).
24
+ * Internally, `runLayeredDag` DOES iterate all levels so its join-barrier +
25
+ * cancel-on-fail path is exercised end-to-end during the MVP emit; only the
26
+ * CLI envelope is filtered to level-1 toolCalls (see `firstLevelIds`).
27
27
  */
28
- import { randomUUID } from 'node:crypto';
29
28
  import { printResult } from '../cli-helpers.js';
30
- import { fail, ok } from 'peaks-loop-shared/result';
31
- import { detectInstalledIde } from '../../services/ide/ide-detector.js';
32
- import { getAdapter } from '../../services/ide/ide-registry.js';
33
- import { getCurrentSessionId } from '../../services/skills/skill-presence-service.js';
34
- import { planFileOverlapWaves } from '../../services/dispatch/file-overlap-wave-planner.js';
29
+ import { buildDagSuccessEnvelope } from './dispatch-dag-envelope.js';
30
+ import { emitDagFailure } from './dispatch-dag-failure.js';
31
+ import { assertGraphNodesMapped, loadDagRuntime, readDagOrFail, resolveDagIds, topologicalLevelsOrFail } from './dispatch-dag-preflight.js';
32
+ import { makeCliRunner, makeNoopWriter, planFirstLevelWaves, resolveDagDispatcher } from './dispatch-dag-runners.js';
35
33
  export async function runDispatchFromDag(role, options, asJson, io) {
36
34
  if (!options.fromDag)
37
35
  return;
38
- const projectRoot = options.project ?? process.cwd();
39
- // Auto-resolve sid from .peaks/_runtime/session.json before falling back.
40
- const sid = options.sessionId ??
41
- process.env.PEAKS_SESSION_ID ??
42
- getCurrentSessionId(projectRoot) ??
43
- 'unknown-sid';
44
- const rid = options.requestId ?? 'unknown-rid';
45
- const batchId = options.batchId ?? randomUUID();
46
- // Slice 9 (dispatch CLI latency): the --from-dag codepath loads three
47
- // heavy modules (slice-dag, dag-orchestrator, contract-store) that
48
- // transitively import 10+ more services. They are NOT touched by the
49
- // warm-path single-dispatch action, so we lazy-load them here only
50
- // when --from-dag is actually requested. The dynamic-import promise
51
- // resolves on first call, then ESM caches the module for subsequent
52
- // calls in the same process.
53
- const [{ readFileSync }, sliceDagMod, dagOrchestratorMod, contractStoreMod] = await Promise.all([
54
- import('node:fs'),
55
- import('../../services/dispatch/slice-dag.js'),
56
- import('../../services/code/dag-orchestrator.js'),
57
- import('../../services/dispatch/contract-store.js')
58
- ]);
59
- const { validateDag, topologicalLevels, isSliceComplexity } = sliceDagMod;
60
- const { runLayeredDag } = dagOrchestratorMod;
61
- const { listContracts, hashContract } = contractStoreMod;
62
- let dag;
63
- try {
64
- const raw = readFileSync(options.fromDag, 'utf8');
65
- const parsed = JSON.parse(raw);
66
- validateDag(parsed);
67
- dag = parsed;
68
- }
69
- catch (err) {
70
- printResult(io, fail('sub-agent.dispatch', 'INVALID_DAG', `failed to read or validate DAG from ${options.fromDag}: ${err.message}`, { role, toolCall: null, dispatchRecordPath: null }, [
71
- 'Check the JSON file at the given path; the DAG must have {nodes, edges} and pass validateDag().'
72
- ]), asJson);
73
- process.exitCode = 1;
36
+ const scope = { role, asJson, io };
37
+ const ids = resolveDagIds(options);
38
+ const runtime = await loadDagRuntime();
39
+ const dag = readDagOrFail(runtime, options.fromDag, scope);
40
+ if (dag === null)
74
41
  return;
75
- }
76
- // Slice 4.0.8 RD §4 D4c: each DAG node must map to an explicitly
77
- // prepared workflow graph node before sub-agent dispatch. Reject
78
- // unmapped nodes with PEAKS_GRAPH_NODE_REQUIRED. The mapping is
79
- // carried via the `graphNode` annotation on each DAG node, OR — as
80
- // a back-compat fallback for DAGs without the annotation — the
81
- // DAG node id itself is treated as the graph node id. Either way,
82
- // the graph node must be prepared (RD §3 D4c) before the dispatch
83
- // CLI runs.
84
- for (const node of dag.nodes) {
85
- const graphNodeId = node.graphNode;
86
- const candidate = typeof graphNodeId === 'string' && graphNodeId.length > 0 ? graphNodeId : node.id;
87
- if (typeof candidate !== 'string' || candidate.length === 0) {
88
- printResult(io, fail('sub-agent.dispatch', 'PEAKS_GRAPH_NODE_REQUIRED', `DAG node ${node.id} has no graph-node mapping (RD §4 D4c)`, { role, toolCall: null, dispatchRecordPath: null, dagNodeId: node.id }, [
89
- 'Annotate the DAG node with `graphNode: "<id>"` so each dispatch can bind a prepared graph node.'
90
- ]), asJson);
91
- process.exitCode = 1;
92
- return;
93
- }
94
- }
95
- // MVP (1.2): the orchestrator iterates topological levels + join
96
- // barrier + cancel-on-fail end-to-end. The CLI's runner returns `done`
97
- // for every leaf (so runDag's cancel-on-fail path is exercised when a
98
- // leaf actually fails); the CLI envelope filters `emittedToolCalls` to
99
- // the first level only (see `firstLevelIds`). The LLM-side runner
100
- // re-invokes `--from-dag` for level 2+ after writing level-1
101
- // contracts via `peaks contract write`.
102
- let levelArr;
103
- try {
104
- levelArr = topologicalLevels(dag);
105
- }
106
- catch (err) {
107
- printResult(io, fail('sub-agent.dispatch', 'INVALID_DAG', `topologicalLevels failed for ${options.fromDag}: ${err.message}`, { role, toolCall: null, dispatchRecordPath: null }, [
108
- 'The DAG passed validateDag() but topologicalLevels threw (likely a cycle that slipped past validateDag, or a runtime invariant).',
109
- 'Inspect the DAG file with the editor and re-invoke dispatch. (No peaks scan dag CLI ships in 2.7.0; if you need a programmatic DAG validator, import validateDag / topologicalLevels from src/services/dispatch/slice-dag.ts directly.)'
110
- ]), asJson);
111
- process.exitCode = 1;
42
+ if (assertGraphNodesMapped(dag, scope) === null)
112
43
  return;
113
- }
114
- // Read upstream contracts so downstream-level prompts (when re-invoked
115
- // for level 2+) get auto-injected ancestors via `formatContractInjection`.
116
- // At level-1 emit time, contracts is empty (no ancestors yet); the
117
- // injection matters when the LLM re-invokes for level 2+ after writing
118
- // level-1 contracts via `writeContract`.
119
- const existingContracts = listContracts(projectRoot, sid);
120
- const ide = detectInstalledIde(projectRoot) ?? 'claude-code';
121
- const adapter = getAdapter(ide);
122
- const dispatcher = adapter.subAgentDispatcher;
123
- if (!dispatcher.supportsRole(role)) {
124
- printResult(io, fail('sub-agent.dispatch', 'IDE_NOT_SUPPORTED', `IDE ${ide} does not support role "${role}"`, { role, toolCall: null, dispatchRecordPath: null }, ['Switch to a registered IDE (e.g. claude-code) or pick a role the current IDE supports.']), asJson);
125
- process.exitCode = 1;
44
+ const levelArr = topologicalLevelsOrFail(runtime, dag, options.fromDag, scope);
45
+ if (levelArr === null)
46
+ return;
47
+ const dispatched = resolveDagDispatcher(ids.projectRoot);
48
+ if (!dispatched.dispatcher.supportsRole(role)) {
49
+ emitDagFailure(io, asJson, {
50
+ role,
51
+ code: 'IDE_NOT_SUPPORTED',
52
+ message: `IDE ${dispatched.ide} does not support role "${role}"`,
53
+ nextActions: [
54
+ 'Switch to a registered IDE (e.g. claude-code) or pick a role the current IDE supports.'
55
+ ]
56
+ });
126
57
  return;
127
58
  }
128
- // Track per-level emissions so the CLI envelope can expose ONLY the
129
- // first topological level to the LLM (matching MVP 1.2 semantics: LLM
130
- // executes level-1 toolCalls, writes contracts via `peaks contract
131
- // write`, then re-invokes `--from-dag` for level 2+). Level-2+ leaves
132
- // still flow through runDag's join-barrier — their toolCalls are
133
- // generated internally so the orchestrator's happy path is exercised
134
- // end-to-end, but they are NOT surfaced in the CLI envelope (the LLM
135
- // sees them only after re-invoking with fresh level-1 contracts).
59
+ await runLevels({ runtime, dag, levelArr, dispatched, ids, scope, fromDag: options.fromDag });
60
+ }
61
+ /**
62
+ * Run every topological level through `runLayeredDag` and print the level-1
63
+ * envelope. Upstream contracts are read first so downstream-level prompts get
64
+ * auto-injected ancestors via `formatContractInjection` (empty at level-1 emit
65
+ * time, which is when the LLM re-invokes with fresh level-1 contracts).
66
+ */
67
+ async function runLevels(run) {
68
+ const { runtime, dag, levelArr, dispatched, ids, scope, fromDag } = run;
69
+ const existingContracts = runtime.listContracts(ids.projectRoot, ids.sid);
136
70
  const firstLevelIds = new Set(levelArr[0] ?? []);
137
- // node declares `files`, refine the level into file-overlap waves so the
138
- // LLM fans out without serializing on a shared file. Emitted additively
139
- // in the envelope; the topological dispatch flow itself is unchanged.
140
- // Nodes without `files` → `firstLevelWaves: null` (legacy envelope).
141
- const firstLevelDescriptors = [...firstLevelIds].map((id) => ({
142
- id,
143
- files: dag.nodes.find((n) => n.id === id)?.files ?? []
144
- }));
145
- const firstLevelWaves = firstLevelDescriptors.length > 0 && firstLevelDescriptors.every((d) => d.files.length > 0)
146
- ? planFileOverlapWaves(firstLevelDescriptors).waves
147
- : null;
148
- const emittedToolCalls = [];
149
- const emittedSliceIds = [];
150
- // CLI runner: emit the per-slice `buildToolCall` envelope, then return
151
- // `done` with an empty `publicSurface` placeholder. The orchestrator
152
- // treats the slice as "CLI-emitted, awaiting LLM-side execution" and
153
- // advances to the next topological level (or breaks on failure). The
154
- // placeholder surface is intentionally empty: the real public surface
155
- // arrives later via `peaks contract write` from the LLM-side runner,
156
- // and overwrites the CLI placeholder contract written by `noopWriter`.
157
- // Why not `cancelled`? Returning `cancelled` here short-circuits
158
- // runDag's join-barrier + cancel-on-fail path — the orchestrator
159
- // breaks out after the first level with a cancellation, which hides
160
- // the real cancel-on-fail semantics from the test suite (and from any
161
- // future caller that wants to use `runDag` end-to-end from the CLI).
162
- // Returning `done` exercises the full happy path; cancel-on-fail
163
- // semantics will be covered when 1.3 lands real per-IDE await.
164
- const cliRunner = async (spec) => {
165
- const toolCall = dispatcher.buildToolCall({
166
- role: spec.role,
167
- prompt: spec.prompt,
168
- requestId: rid,
169
- sessionId: sid
170
- });
171
- if (firstLevelIds.has(spec.sliceId)) {
172
- emittedToolCalls.push(toolCall);
173
- emittedSliceIds.push(spec.sliceId);
174
- }
175
- return {
176
- status: 'done',
177
- publicSurface: {
178
- exports: [],
179
- types: [],
180
- publicSignatures: []
181
- }
182
- };
183
- };
184
- // CLI noop writer — the orchestrator collects a `SliceContract` per
185
- // emitted toolCall so downstream re-invocations (level 2+) can splice
186
- // ancestor contracts via `formatContractInjection`. We don't write to
187
- // disk here (the LLM-side runner does that via `peaks contract write`
188
- // after each toolCall resolves), but the returned placeholder MUST be
189
- // shape-valid: the `contractHash` field has to be a real SHA-256 hex
190
- // string so formatContractInjection + downstream validators don't
191
- // reject the placeholder. The placeholder hash is computed from the
192
- // slice identity only (`sliceId|sessionId`) — it's deterministic,
193
- // stable, and collision-free for the MVP run, but obviously does NOT
194
- // represent the slice's actual public surface. The LLM-side runner's
195
- // `peaks contract write` call will overwrite this with a content-based
196
- // hash once the slice finishes.
197
- const noopWriter = (sliceId, _publicSurface) => {
198
- const partial = {
199
- sliceId,
200
- sessionId: sid,
201
- exports: [],
202
- types: [],
203
- publicSignatures: []
204
- };
205
- return {
206
- sliceId,
207
- sessionId: sid,
208
- completedAt: new Date(0).toISOString(), // epoch sentinel = "placeholder, not yet finished"
209
- exports: [],
210
- types: [],
211
- publicSignatures: [],
212
- contractHash: hashContract(partial)
213
- };
214
- };
215
- // runLayeredDag IS in the path: validates the DAG, iterates all
216
- // topological levels (foundation/upstreamSync slices prioritized within
217
- // each level by `topologicalLevels`), runs the join barrier after
218
- // each level, and triggers cancel-on-fail rollback if any leaf
219
- // returns `failed` (or `cancelled`, once 1.3 lands). The CLI
220
- // envelope below filters `emittedToolCalls` / `emittedSliceIds` to
221
- // the first level — see the `firstLevelIds` filter inside `cliRunner`.
71
+ const emissions = { toolCalls: [], sliceIds: [] };
72
+ const runSlice = makeCliRunner({
73
+ firstLevelIds,
74
+ dispatcher: dispatched.dispatcher,
75
+ ids,
76
+ emissions
77
+ });
78
+ const writeContractFn = makeNoopWriter(runtime.hashContract, ids.sid);
222
79
  try {
223
- await runLayeredDag(dag, {
224
- projectRoot,
225
- sessionId: sid,
80
+ await runtime.runLayeredDag(dag, {
81
+ projectRoot: ids.projectRoot,
82
+ sessionId: ids.sid,
226
83
  existingContracts,
227
- runSlice: cliRunner,
228
- writeContractFn: noopWriter
84
+ runSlice,
85
+ writeContractFn
229
86
  });
230
87
  }
231
88
  catch (err) {
232
- // runLayeredDag throws DagPlanError for plan-level failures (e.g.
233
- // cycle slipping past validateDag). Surface it as INVALID_DAG so
234
- // the CLI envelope has a clear failure code, not a generic
235
- // DISPATCH_ERROR.
236
- printResult(io, fail('sub-agent.dispatch', 'INVALID_DAG', `runLayeredDag failed for ${options.fromDag}: ${err.message}`, { role, toolCall: null, dispatchRecordPath: null }, [
237
- 'runLayeredDag threw DagPlanError; the DAG passed validateDag() but failed at topologicalLevels or contractStore dispatch.',
238
- 'Inspect the DAG file and re-run.'
239
- ]), asJson);
240
- process.exitCode = 1;
89
+ emitDagFailure(scope.io, scope.asJson, {
90
+ role: scope.role,
91
+ code: 'INVALID_DAG',
92
+ message: `runLayeredDag failed for ${fromDag}: ${err.message}`,
93
+ nextActions: [
94
+ 'runLayeredDag threw DagPlanError; the DAG passed validateDag() but failed at topologicalLevels or contractStore dispatch.',
95
+ 'Inspect the DAG file and re-run.'
96
+ ]
97
+ });
241
98
  return;
242
99
  }
243
- printResult(io, ok('sub-agent.dispatch', {
244
- envelopeVersion: '2.1.0',
245
- role,
246
- ide: dispatcher.label,
247
- fromDag: options.fromDag,
248
- batchId,
249
- dispatchCount: emittedSliceIds.length,
100
+ printResult(scope.io, buildDagSuccessEnvelope({
101
+ role: scope.role,
102
+ ide: dispatched.dispatcher.label,
103
+ fromDag,
104
+ batchId: ids.batchId,
250
105
  levelsTotal: levelArr.length,
251
- firstLevel: emittedSliceIds,
252
- // §3: file-overlap wave plan for the first level (null when any
253
- // first-level node omits `files`). Additive field.
254
- firstLevelWaves,
255
- toolCalls: emittedToolCalls,
106
+ emittedSliceIds: emissions.sliceIds,
107
+ emittedToolCalls: emissions.toolCalls,
108
+ firstLevelWaves: planFirstLevelWaves(dag, levelArr),
256
109
  existingContractCount: existingContracts.length,
257
- expectedCompletionSeconds: 60,
258
- artifactsPublicPaths: [],
259
- orchestratorVisibleHint: `⏳ Spawning ${emittedSliceIds.length} sub-agents via Task tool from DAG ${options.fromDag}, batch-id=${batchId} (ETA ~60s)`,
260
- // v2.15.0 follow-up — G12/G11/G2: per-slice metadata (foundation /
261
- // upstreamSync / complexity) for downstream scheduling decisions.
262
- sliceMeta: emittedSliceIds.map((id) => {
263
- const node = dag.nodes.find((n) => n.id === id);
264
- return {
265
- id,
266
- foundation: node?.foundation === true,
267
- upstreamSync: node?.upstreamSync === true,
268
- complexity: node?.complexity !== undefined && isSliceComplexity(node.complexity)
269
- ? node.complexity
270
- : null
271
- };
272
- }),
273
- nextActions: [
274
- 'Execute each toolCall in your IDE; on completion, write the slice contract to .peaks/_runtime/<sid>/dispatch/contracts/<slice-id>.json.',
275
- 'Re-invoke `peaks sub-agent dispatch --from-dag <file>` with the same batch-id to advance to the next level once all current-level slices have written contracts.'
276
- ]
277
- }, [], [
278
- 'MVP (1.2) plans the first level via runLayeredDag orchestrator (cancel-on-fail path active); the LLM drives subsequent levels by re-invoking this command after contract writes.',
279
- existingContracts.length > 0
280
- ? `Injected ${existingContracts.length} upstream contract(s) into downstream-level prompts via formatContractInjection.`
281
- : 'No upstream contracts found; first-level prompts have empty ancestor blocks.'
282
- ]), asJson);
110
+ dag,
111
+ isSliceComplexity: runtime.isSliceComplexity
112
+ }), scope.asJson);
283
113
  }
@@ -0,0 +1,17 @@
1
+ import { type ProgramIO } from '../cli-helpers.js';
2
+ import type { DispatchOptions } from './sub-agent-shared.js';
3
+ export interface IsolationLeaseInput {
4
+ projectRoot: string;
5
+ sid: string;
6
+ rid: string;
7
+ role: string;
8
+ batchId: string;
9
+ asJson: boolean;
10
+ }
11
+ export interface IsolationLease {
12
+ isolationMode: 'worktree' | 'container' | 'vm' | null;
13
+ leaseId: string | null;
14
+ worktreePath: string | null;
15
+ worktreeBranch: string | null;
16
+ }
17
+ export declare function resolveIsolationLease(io: ProgramIO, options: DispatchOptions, input: IsolationLeaseInput): Promise<IsolationLease | null>;
@@ -0,0 +1,149 @@
1
+ // The `--isolation` lease set-up of `peaks sub-agent dispatch`. Validates the mode,
2
+ // spawns the container/worktree lease, and hands the handles back; `vm` fail-fasts
3
+ // because the runtime is not implemented yet.
4
+ import { fail, getErrorMessage } from 'peaks-loop-shared/result';
5
+ import { printResult } from '../cli-helpers.js';
6
+ import { spawnWorktreeLease, spawnContainerLease } from '../../services/dispatch/isolation-lease.js';
7
+ function rejectInvalidIsolation(io, isolation, role, asJson) {
8
+ printResult(io, fail('sub-agent.dispatch', 'INVALID_ISOLATION', `--isolation only accepts "worktree" | "container" | "vm" (got "${isolation}")`, {
9
+ role,
10
+ toolCall: null,
11
+ dispatchRecordPath: null
12
+ }, ['Drop --isolation or pass --isolation worktree / --isolation container / --isolation vm.']), asJson);
13
+ process.exitCode = 1;
14
+ return null;
15
+ }
16
+ async function spawnContainerIsolation(io, input) {
17
+ const { projectRoot, sid, rid, role, batchId, asJson } = input;
18
+ // isolation is now live (Part 8 contract was the
19
+ // bridge; Part 12 is the runtime). Shell out to
20
+ // `peaks container spawn` to run `docker run` and
21
+ // write the container lease.
22
+ const isolationMode = 'container';
23
+ try {
24
+ const spawnResult = await spawnContainerLease({
25
+ projectRoot,
26
+ sessionId: sid,
27
+ rid,
28
+ role,
29
+ purpose: `auto-spawned by dispatch --isolation container (batch=${batchId})`
30
+ });
31
+ // Reuse the leaseId variable — same field semantically
32
+ // (id of the isolation surface the dispatch owns).
33
+ return {
34
+ isolationMode,
35
+ leaseId: spawnResult.leaseId,
36
+ worktreePath: null,
37
+ worktreeBranch: null
38
+ };
39
+ }
40
+ catch (error) {
41
+ printResult(io, fail('sub-agent.dispatch', 'ISOLATION_CONTAINER_SPAWN_FAILED', getErrorMessage(error), {
42
+ role,
43
+ toolCall: null,
44
+ dispatchRecordPath: null
45
+ }, [
46
+ 'The dispatch aborts when --isolation container lease spawn fails; retry without --isolation or fix the underlying docker error.',
47
+ 'For environments without a docker daemon, use --isolation worktree (the L2 production path).'
48
+ ]), asJson);
49
+ process.exitCode = 1;
50
+ return null;
51
+ }
52
+ }
53
+ async function spawnWorktreeIsolation(io, input) {
54
+ const { projectRoot, sid, rid, role, batchId, asJson } = input;
55
+ const isolationMode = 'worktree';
56
+ try {
57
+ const spawnResult = await spawnWorktreeLease({
58
+ projectRoot,
59
+ sessionId: sid,
60
+ rid,
61
+ role,
62
+ purpose: `auto-spawned by dispatch --isolation worktree (batch=${batchId})`
63
+ });
64
+ return {
65
+ isolationMode,
66
+ leaseId: spawnResult.leaseId,
67
+ worktreePath: spawnResult.path,
68
+ worktreeBranch: spawnResult.branch
69
+ };
70
+ }
71
+ catch (error) {
72
+ printResult(io, fail('sub-agent.dispatch', 'ISOLATION_SPAWN_FAILED', getErrorMessage(error), {
73
+ role,
74
+ toolCall: null,
75
+ dispatchRecordPath: null
76
+ }, [
77
+ 'The dispatch aborts when --isolation worktree lease spawn fails; retry without --isolation or fix the underlying git error.'
78
+ ]), asJson);
79
+ process.exitCode = 1;
80
+ return null;
81
+ }
82
+ }
83
+ function rejectVmIsolation(io, input) {
84
+ const { role, asJson } = input;
85
+ // VM isolation mode is the L4 follow-up to L4 container.
86
+ // The CLI contract is shipped (--isolation vm is accepted
87
+ // by the dispatch parser and reflected in the envelope's
88
+ // isolationMode type). The VM runtime (Linux KVM / macOS
89
+ // HyperKit / Windows Hyper-V) is a much larger follow-up
90
+ // and is intentionally not implemented yet — we
91
+ // fail-fast with ISOLATION_VM_NOT_YET_IMPLEMENTED so
92
+ // operators see a clear "this is a placeholder" signal
93
+ // rather than a silent fallback to worktree.
94
+ //
95
+ // The full implementation lives in a future rid; the
96
+ // design is:
97
+ // 1. New service: src/services/vm/vm-lease.ts (parallels
98
+ // worktree-lease.ts / container-lease.ts) — pure lease
99
+ // store with vmId + hypervisor + status.
100
+ // 2. CLI: 'peaks vm spawn --hypervisor kvm|hyperkit|hyperv
101
+ // --image <name> --rid <rid> --role <role>' — runs
102
+ // virsh create / hvftool / hvcreate, captures the
103
+ // vm id, writes the lease.
104
+ // 3. CLI: 'peaks vm release --lease-id <id>' — virsh
105
+ // destroy + cleanup.
106
+ // 4. dispatch --isolation vm: shells out to peaks vm
107
+ // spawn, injects PEAKS_VM_LEASE_ID env (parallel
108
+ // to PEAKS_CONTAINER_LEASE_ID).
109
+ // 5. PreToolUse gate: when the env var is set AND the
110
+ // tool call is bash-with-vm-bearing-command,
111
+ // allow via the vm lease.
112
+ //
113
+ // Until then: fail-fast.
114
+ printResult(io, fail('sub-agent.dispatch', 'ISOLATION_VM_NOT_YET_IMPLEMENTED', '--isolation vm is the L4 follow-up to --isolation container (Part 25 contract); the VM runtime (KVM / HyperKit / Hyper-V) is a much larger follow-up rid and is intentionally not implemented yet. Drop --isolation or pass --isolation worktree / --isolation container for now.', {
115
+ role,
116
+ toolCall: null,
117
+ dispatchRecordPath: null
118
+ }, [
119
+ 'The VM contract is shipped (--isolation vm is accepted by the dispatch parser); the runtime is the next rid.',
120
+ 'Use --isolation worktree (L2 production) or --isolation container (L4 docker, Part 12) for now.'
121
+ ]), asJson);
122
+ process.exitCode = 1;
123
+ return null;
124
+ }
125
+ export async function resolveIsolationLease(io, options, input) {
126
+ const { role, asJson } = input;
127
+ // auto-spawns a worktree lease and injects PEAKS_WORKTREE_LEASE_ID
128
+ // into the sub-agent dispatch envelope. This is the bridge that
129
+ // makes the lease-aware gate (Part 2.B) work for sub-agents:
130
+ // without this injection, the gate has no leaseId to consult and
131
+ // the sub-agent would need a separate `peaks worktree auth grant`.
132
+ if (typeof options.isolation === 'string' && options.isolation.length > 0) {
133
+ if (options.isolation !== 'worktree' &&
134
+ options.isolation !== 'container' &&
135
+ options.isolation !== 'vm') {
136
+ return rejectInvalidIsolation(io, options.isolation, role, asJson);
137
+ }
138
+ if (options.isolation === 'container') {
139
+ return spawnContainerIsolation(io, input);
140
+ }
141
+ if (options.isolation === 'worktree') {
142
+ return spawnWorktreeIsolation(io, input);
143
+ }
144
+ else if (options.isolation === 'vm') {
145
+ return rejectVmIsolation(io, input);
146
+ }
147
+ }
148
+ return { isolationMode: null, leaseId: null, worktreePath: null, worktreeBranch: null };
149
+ }
@@ -0,0 +1,7 @@
1
+ import { type ProgramIO } from '../cli-helpers.js';
2
+ import { type ContextGuardDecision } from '../../services/context/context-guard.js';
3
+ import { type DispatchOptions } from './sub-agent-shared.js';
4
+ export declare function preflightDispatch(io: ProgramIO, role: string, options: DispatchOptions, asJson: boolean): {
5
+ decision: ContextGuardDecision;
6
+ prompt: string;
7
+ } | null;