peaks-loop 4.1.2 → 4.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (717) hide show
  1. package/.claude-plugin/marketplace.json +136 -47
  2. package/CHANGELOG.md +112 -0
  3. package/README-en.md +1 -1
  4. package/README.md +1 -1
  5. package/contracts/readonly-argv-whitelist.json +211 -0
  6. package/dist/cli/commands/asset-command-shared.d.ts +12 -0
  7. package/dist/cli/commands/asset-command-shared.js +45 -0
  8. package/dist/cli/commands/asset-commands.d.ts +6 -1
  9. package/dist/cli/commands/asset-commands.js +11 -372
  10. package/dist/cli/commands/asset-crystallize-command.d.ts +3 -0
  11. package/dist/cli/commands/asset-crystallize-command.js +60 -0
  12. package/dist/cli/commands/asset-crystallize-payload.d.ts +47 -0
  13. package/dist/cli/commands/asset-crystallize-payload.js +85 -0
  14. package/dist/cli/commands/asset-crystallize-runner.d.ts +3 -0
  15. package/dist/cli/commands/asset-crystallize-runner.js +133 -0
  16. package/dist/cli/commands/asset-dispose-command.d.ts +3 -0
  17. package/dist/cli/commands/asset-dispose-command.js +99 -0
  18. package/dist/cli/commands/asset-status-command.d.ts +3 -0
  19. package/dist/cli/commands/asset-status-command.js +100 -0
  20. package/dist/cli/commands/audit-artifact-runners.d.ts +16 -0
  21. package/dist/cli/commands/audit-artifact-runners.js +170 -0
  22. package/dist/cli/commands/audit-command-shared.d.ts +97 -0
  23. package/dist/cli/commands/audit-command-shared.js +60 -0
  24. package/dist/cli/commands/audit-commands.d.ts +7 -31
  25. package/dist/cli/commands/audit-commands.js +64 -473
  26. package/dist/cli/commands/audit-goal-runners.d.ts +17 -0
  27. package/dist/cli/commands/audit-goal-runners.js +114 -0
  28. package/dist/cli/commands/audit-red-lines-runners.d.ts +11 -0
  29. package/dist/cli/commands/audit-red-lines-runners.js +43 -0
  30. package/dist/cli/commands/audit-refusal-data.d.ts +23 -0
  31. package/dist/cli/commands/audit-refusal-data.js +69 -0
  32. package/dist/cli/commands/audit-static-runners.d.ts +13 -0
  33. package/dist/cli/commands/audit-static-runners.js +139 -0
  34. package/dist/cli/commands/await-runners.d.ts +11 -0
  35. package/dist/cli/commands/await-runners.js +148 -0
  36. package/dist/cli/commands/baseline-audit-command.d.ts +3 -0
  37. package/dist/cli/commands/baseline-audit-command.js +64 -0
  38. package/dist/cli/commands/baseline-command-shared.d.ts +23 -0
  39. package/dist/cli/commands/baseline-command-shared.js +39 -0
  40. package/dist/cli/commands/baseline-commands.js +33 -313
  41. package/dist/cli/commands/baseline-freeze-commands.d.ts +4 -0
  42. package/dist/cli/commands/baseline-freeze-commands.js +81 -0
  43. package/dist/cli/commands/baseline-guard-command.d.ts +3 -0
  44. package/dist/cli/commands/baseline-guard-command.js +52 -0
  45. package/dist/cli/commands/baseline-read-commands.d.ts +5 -0
  46. package/dist/cli/commands/baseline-read-commands.js +72 -0
  47. package/dist/cli/commands/baseline-rollback-commands.d.ts +4 -0
  48. package/dist/cli/commands/baseline-rollback-commands.js +88 -0
  49. package/dist/cli/commands/classify-downgrade-command.d.ts +9 -0
  50. package/dist/cli/commands/classify-downgrade-command.js +21 -0
  51. package/dist/cli/commands/classify-run-command.d.ts +9 -0
  52. package/dist/cli/commands/classify-run-command.js +73 -0
  53. package/dist/cli/commands/classify-signals.d.ts +5 -0
  54. package/dist/cli/commands/classify-signals.js +104 -0
  55. package/dist/cli/commands/code-auto-compact-command.d.ts +3 -0
  56. package/dist/cli/commands/code-auto-compact-command.js +124 -0
  57. package/dist/cli/commands/code-auto-compact-envelope.d.ts +22 -0
  58. package/dist/cli/commands/code-auto-compact-envelope.js +39 -0
  59. package/dist/cli/commands/code-context-audit-command.d.ts +3 -0
  60. package/dist/cli/commands/code-context-audit-command.js +68 -0
  61. package/dist/cli/commands/code-context-now-command.d.ts +3 -0
  62. package/dist/cli/commands/code-context-now-command.js +124 -0
  63. package/dist/cli/commands/code-context-now-envelope.d.ts +66 -0
  64. package/dist/cli/commands/code-context-now-envelope.js +136 -0
  65. package/dist/cli/commands/code-context-now-mapping.d.ts +27 -0
  66. package/dist/cli/commands/code-context-now-mapping.js +43 -0
  67. package/dist/cli/commands/code-emit-handoff-command.d.ts +3 -0
  68. package/dist/cli/commands/code-emit-handoff-command.js +136 -0
  69. package/dist/cli/commands/code-gate-step-08-command.d.ts +3 -0
  70. package/dist/cli/commands/code-gate-step-08-command.js +155 -0
  71. package/dist/cli/commands/code-post-compact-detect-command.d.ts +3 -0
  72. package/dist/cli/commands/code-post-compact-detect-command.js +50 -0
  73. package/dist/cli/commands/code-runtime-commands.d.ts +9 -43
  74. package/dist/cli/commands/code-runtime-commands.js +20 -672
  75. package/dist/cli/commands/code-runtime-session.d.ts +1 -0
  76. package/dist/cli/commands/code-runtime-session.js +15 -0
  77. package/dist/cli/commands/codegraph-command-options.d.ts +22 -0
  78. package/dist/cli/commands/codegraph-command-options.js +22 -0
  79. package/dist/cli/commands/codegraph-commands.d.ts +2 -2
  80. package/dist/cli/commands/codegraph-commands.js +14 -397
  81. package/dist/cli/commands/codegraph-config-restore-command.d.ts +3 -0
  82. package/dist/cli/commands/codegraph-config-restore-command.js +200 -0
  83. package/dist/cli/commands/codegraph-proxy-commands.d.ts +10 -0
  84. package/dist/cli/commands/codegraph-proxy-commands.js +159 -0
  85. package/dist/cli/commands/codegraph-repair-commands.d.ts +3 -0
  86. package/dist/cli/commands/codegraph-repair-commands.js +94 -0
  87. package/dist/cli/commands/codegraph-status-command.d.ts +1 -1
  88. package/dist/cli/commands/codegraph-status-command.js +27 -214
  89. package/dist/cli/commands/codegraph-status-integrity.d.ts +44 -0
  90. package/dist/cli/commands/codegraph-status-integrity.js +121 -0
  91. package/dist/cli/commands/codegraph-status-json.d.ts +5 -0
  92. package/dist/cli/commands/codegraph-status-json.js +127 -0
  93. package/dist/cli/commands/compact-command.d.ts +6 -2
  94. package/dist/cli/commands/compact-command.js +12 -559
  95. package/dist/cli/commands/compact-dry-run-command.d.ts +3 -0
  96. package/dist/cli/commands/compact-dry-run-command.js +87 -0
  97. package/dist/cli/commands/compact-force-command.d.ts +3 -0
  98. package/dist/cli/commands/compact-force-command.js +98 -0
  99. package/dist/cli/commands/compact-harness-window-command.d.ts +3 -0
  100. package/dist/cli/commands/compact-harness-window-command.js +174 -0
  101. package/dist/cli/commands/compact-history-command.d.ts +3 -0
  102. package/dist/cli/commands/compact-history-command.js +89 -0
  103. package/dist/cli/commands/compact-read-commands.d.ts +3 -0
  104. package/dist/cli/commands/compact-read-commands.js +123 -0
  105. package/dist/cli/commands/compact-settle-command.d.ts +3 -0
  106. package/dist/cli/commands/compact-settle-command.js +130 -0
  107. package/dist/cli/commands/compact-shared.d.ts +9 -0
  108. package/dist/cli/commands/compact-shared.js +26 -0
  109. package/dist/cli/commands/container-command-shared.d.ts +60 -0
  110. package/dist/cli/commands/container-command-shared.js +52 -0
  111. package/dist/cli/commands/container-commands.d.ts +1 -1
  112. package/dist/cli/commands/container-commands.js +4 -216
  113. package/dist/cli/commands/container-release-command.d.ts +3 -0
  114. package/dist/cli/commands/container-release-command.js +105 -0
  115. package/dist/cli/commands/container-spawn-command.d.ts +3 -0
  116. package/dist/cli/commands/container-spawn-command.js +148 -0
  117. package/dist/cli/commands/context-check-command.d.ts +3 -0
  118. package/dist/cli/commands/context-check-command.js +81 -0
  119. package/dist/cli/commands/context-commands.d.ts +2 -7
  120. package/dist/cli/commands/context-commands.js +6 -276
  121. package/dist/cli/commands/context-layer-command.d.ts +3 -0
  122. package/dist/cli/commands/context-layer-command.js +34 -0
  123. package/dist/cli/commands/context-layer-fetchers.d.ts +15 -0
  124. package/dist/cli/commands/context-layer-fetchers.js +162 -0
  125. package/dist/cli/commands/context-status-command.d.ts +17 -0
  126. package/dist/cli/commands/context-status-command.js +41 -0
  127. package/dist/cli/commands/contract-write-command.d.ts +3 -0
  128. package/dist/cli/commands/contract-write-command.js +144 -0
  129. package/dist/cli/commands/core/doctor-bindings.d.ts +17 -0
  130. package/dist/cli/commands/core/doctor-bindings.js +30 -0
  131. package/dist/cli/commands/core/doctor-command.d.ts +4 -18
  132. package/dist/cli/commands/core/doctor-command.js +2 -323
  133. package/dist/cli/commands/core/doctor-logs.d.ts +8 -0
  134. package/dist/cli/commands/core/doctor-logs.js +32 -0
  135. package/dist/cli/commands/core/doctor-probes.d.ts +3 -0
  136. package/dist/cli/commands/core/doctor-probes.js +55 -0
  137. package/dist/cli/commands/core/doctor-run-command.d.ts +12 -0
  138. package/dist/cli/commands/core/doctor-run-command.js +172 -0
  139. package/dist/cli/commands/core/doctor-summary.d.ts +7 -0
  140. package/dist/cli/commands/core/doctor-summary.js +39 -0
  141. package/dist/cli/commands/core/memory-command-shared.d.ts +25 -0
  142. package/dist/cli/commands/core/memory-command-shared.js +20 -0
  143. package/dist/cli/commands/core/memory-command.d.ts +1 -1
  144. package/dist/cli/commands/core/memory-command.js +6 -227
  145. package/dist/cli/commands/core/memory-delegated-verbs.d.ts +4 -0
  146. package/dist/cli/commands/core/memory-delegated-verbs.js +178 -0
  147. package/dist/cli/commands/core/memory-extract-command.d.ts +3 -0
  148. package/dist/cli/commands/core/memory-extract-command.js +90 -0
  149. package/dist/cli/commands/core/memory-sync-command.d.ts +3 -0
  150. package/dist/cli/commands/core/memory-sync-command.js +38 -0
  151. package/dist/cli/commands/core/session-command.d.ts +1 -1
  152. package/dist/cli/commands/core/session-command.js +12 -206
  153. package/dist/cli/commands/core/session-info-command.d.ts +3 -0
  154. package/dist/cli/commands/core/session-info-command.js +142 -0
  155. package/dist/cli/commands/core/session-verb-commands.d.ts +5 -0
  156. package/dist/cli/commands/core/session-verb-commands.js +58 -0
  157. package/dist/cli/commands/core/skill-command.d.ts +1 -44
  158. package/dist/cli/commands/core/skill-command.js +13 -541
  159. package/dist/cli/commands/core/skill-context-verdict.d.ts +38 -0
  160. package/dist/cli/commands/core/skill-context-verdict.js +63 -0
  161. package/dist/cli/commands/core/skill-generated-config-notice.d.ts +41 -0
  162. package/dist/cli/commands/core/skill-generated-config-notice.js +75 -0
  163. package/dist/cli/commands/core/skill-heartbeat-commands.d.ts +3 -0
  164. package/dist/cli/commands/core/skill-heartbeat-commands.js +50 -0
  165. package/dist/cli/commands/core/skill-presence-commands.d.ts +3 -0
  166. package/dist/cli/commands/core/skill-presence-commands.js +123 -0
  167. package/dist/cli/commands/core/skill-presence-housekeeping-commands.d.ts +3 -0
  168. package/dist/cli/commands/core/skill-presence-housekeeping-commands.js +165 -0
  169. package/dist/cli/commands/core/skill-registry-commands.d.ts +3 -0
  170. package/dist/cli/commands/core/skill-registry-commands.js +117 -0
  171. package/dist/cli/commands/core/skill-runbook-command.d.ts +3 -0
  172. package/dist/cli/commands/core/skill-runbook-command.js +29 -0
  173. package/dist/cli/commands/core/standards-command.d.ts +1 -24
  174. package/dist/cli/commands/core/standards-command.js +33 -201
  175. package/dist/cli/commands/core/standards-init-command.d.ts +3 -0
  176. package/dist/cli/commands/core/standards-init-command.js +87 -0
  177. package/dist/cli/commands/core/standards-lint.d.ts +24 -0
  178. package/dist/cli/commands/core/standards-lint.js +57 -0
  179. package/dist/cli/commands/core/standards-migrate-command.d.ts +3 -0
  180. package/dist/cli/commands/core/standards-migrate-command.js +57 -0
  181. package/dist/cli/commands/cron-scheduler-commands.d.ts +5 -1
  182. package/dist/cli/commands/cron-scheduler-commands.js +36 -206
  183. package/dist/cli/commands/cron-scheduler-run-once-command.d.ts +7 -0
  184. package/dist/cli/commands/cron-scheduler-run-once-command.js +35 -0
  185. package/dist/cli/commands/cron-scheduler-shared.d.ts +6 -0
  186. package/dist/cli/commands/cron-scheduler-shared.js +48 -0
  187. package/dist/cli/commands/cron-scheduler-start-command.d.ts +7 -0
  188. package/dist/cli/commands/cron-scheduler-start-command.js +65 -0
  189. package/dist/cli/commands/cron-scheduler-status-command.d.ts +7 -0
  190. package/dist/cli/commands/cron-scheduler-status-command.js +46 -0
  191. package/dist/cli/commands/cron-scheduler-stop-command.d.ts +7 -0
  192. package/dist/cli/commands/cron-scheduler-stop-command.js +61 -0
  193. package/dist/cli/commands/dispatch-command-spec.d.ts +2 -0
  194. package/dist/cli/commands/dispatch-command-spec.js +62 -0
  195. package/dist/cli/commands/dispatch-commands.js +159 -775
  196. package/dist/cli/commands/dispatch-dag-envelope.d.ts +41 -0
  197. package/dist/cli/commands/dispatch-dag-envelope.js +49 -0
  198. package/dist/cli/commands/dispatch-dag-failure.d.ts +18 -0
  199. package/dist/cli/commands/dispatch-dag-failure.js +16 -0
  200. package/dist/cli/commands/dispatch-dag-preflight.d.ts +51 -0
  201. package/dist/cli/commands/dispatch-dag-preflight.js +105 -0
  202. package/dist/cli/commands/dispatch-dag-runners.d.ts +48 -0
  203. package/dist/cli/commands/dispatch-dag-runners.js +73 -0
  204. package/dist/cli/commands/dispatch-detached-branch.d.ts +3 -0
  205. package/dist/cli/commands/dispatch-detached-branch.js +58 -0
  206. package/dist/cli/commands/dispatch-envelope.d.ts +36 -0
  207. package/dist/cli/commands/dispatch-envelope.js +104 -0
  208. package/dist/cli/commands/dispatch-from-dag.d.ts +27 -0
  209. package/dist/cli/commands/dispatch-from-dag.js +87 -257
  210. package/dist/cli/commands/dispatch-isolation-lease.d.ts +17 -0
  211. package/dist/cli/commands/dispatch-isolation-lease.js +149 -0
  212. package/dist/cli/commands/dispatch-preflight.d.ts +7 -0
  213. package/dist/cli/commands/dispatch-preflight.js +105 -0
  214. package/dist/cli/commands/dispatch-prompt-blocks.d.ts +10 -0
  215. package/dist/cli/commands/dispatch-prompt-blocks.js +56 -0
  216. package/dist/cli/commands/dispatch-prompt-composition.d.ts +30 -0
  217. package/dist/cli/commands/dispatch-prompt-composition.js +171 -0
  218. package/dist/cli/commands/dispatch-record-write.d.ts +24 -0
  219. package/dist/cli/commands/dispatch-record-write.js +96 -0
  220. package/dist/cli/commands/dispatch-tool-call.d.ts +15 -0
  221. package/dist/cli/commands/dispatch-tool-call.js +128 -0
  222. package/dist/cli/commands/evolution-command-shared.d.ts +78 -0
  223. package/dist/cli/commands/evolution-command-shared.js +107 -0
  224. package/dist/cli/commands/evolution-commands.d.ts +11 -1
  225. package/dist/cli/commands/evolution-commands.js +19 -350
  226. package/dist/cli/commands/evolution-evaluate-command.d.ts +24 -0
  227. package/dist/cli/commands/evolution-evaluate-command.js +138 -0
  228. package/dist/cli/commands/evolution-propose-command.d.ts +23 -0
  229. package/dist/cli/commands/evolution-propose-command.js +145 -0
  230. package/dist/cli/commands/evolution-status-command.d.ts +17 -0
  231. package/dist/cli/commands/evolution-status-command.js +41 -0
  232. package/dist/cli/commands/evolution-verdict-commands.d.ts +30 -0
  233. package/dist/cli/commands/evolution-verdict-commands.js +100 -0
  234. package/dist/cli/commands/final-review-command-envelopes.d.ts +44 -0
  235. package/dist/cli/commands/final-review-command-envelopes.js +100 -0
  236. package/dist/cli/commands/final-review-command-shared.d.ts +52 -0
  237. package/dist/cli/commands/final-review-command-shared.js +35 -0
  238. package/dist/cli/commands/final-review-commands.d.ts +7 -27
  239. package/dist/cli/commands/final-review-commands.js +13 -240
  240. package/dist/cli/commands/final-review-prepare-command.d.ts +3 -0
  241. package/dist/cli/commands/final-review-prepare-command.js +200 -0
  242. package/dist/cli/commands/finalize-accumulator.d.ts +44 -0
  243. package/dist/cli/commands/finalize-accumulator.js +55 -0
  244. package/dist/cli/commands/finalize-branches.d.ts +34 -0
  245. package/dist/cli/commands/finalize-branches.js +119 -0
  246. package/dist/cli/commands/finalize-runners.d.ts +3 -0
  247. package/dist/cli/commands/finalize-runners.js +92 -0
  248. package/dist/cli/commands/finalize-selection.d.ts +65 -0
  249. package/dist/cli/commands/finalize-selection.js +35 -0
  250. package/dist/cli/commands/gate-commands.js +26 -8
  251. package/dist/cli/commands/governance-classify-contract-commands.d.ts +23 -9
  252. package/dist/cli/commands/governance-classify-contract-commands.js +26 -269
  253. package/dist/cli/commands/hooks-command-shared.d.ts +42 -0
  254. package/dist/cli/commands/hooks-command-shared.js +32 -0
  255. package/dist/cli/commands/hooks-commands.d.ts +20 -0
  256. package/dist/cli/commands/hooks-commands.js +75 -309
  257. package/dist/cli/commands/hooks-install-envelopes.d.ts +6 -0
  258. package/dist/cli/commands/hooks-install-envelopes.js +144 -0
  259. package/dist/cli/commands/hooks-status-command.d.ts +3 -0
  260. package/dist/cli/commands/hooks-status-command.js +93 -0
  261. package/dist/cli/commands/hooks-uninstall-command.d.ts +3 -0
  262. package/dist/cli/commands/hooks-uninstall-command.js +43 -0
  263. package/dist/cli/commands/job-checkpoint-commands.d.ts +3 -0
  264. package/dist/cli/commands/job-checkpoint-commands.js +157 -0
  265. package/dist/cli/commands/job-command-shared.d.ts +109 -0
  266. package/dist/cli/commands/job-command-shared.js +72 -0
  267. package/dist/cli/commands/job-commands.d.ts +4 -64
  268. package/dist/cli/commands/job-commands.js +42 -552
  269. package/dist/cli/commands/job-cost-check-command.d.ts +3 -0
  270. package/dist/cli/commands/job-cost-check-command.js +41 -0
  271. package/dist/cli/commands/job-init-status-commands.d.ts +3 -0
  272. package/dist/cli/commands/job-init-status-commands.js +149 -0
  273. package/dist/cli/commands/job-run-commands.d.ts +3 -0
  274. package/dist/cli/commands/job-run-commands.js +97 -0
  275. package/dist/cli/commands/job-state-root.d.ts +35 -0
  276. package/dist/cli/commands/job-state-root.js +76 -0
  277. package/dist/cli/commands/loop-command-shared.d.ts +31 -0
  278. package/dist/cli/commands/loop-command-shared.js +15 -0
  279. package/dist/cli/commands/loop-commands.d.ts +12 -17
  280. package/dist/cli/commands/loop-commands.js +56 -238
  281. package/dist/cli/commands/loop-eval-capture-index.d.ts +4 -0
  282. package/dist/cli/commands/loop-eval-capture-index.js +44 -0
  283. package/dist/cli/commands/loop-eval-commands.d.ts +8 -5
  284. package/dist/cli/commands/loop-eval-commands.js +12 -626
  285. package/dist/cli/commands/loop-eval-eval-command.d.ts +3 -0
  286. package/dist/cli/commands/loop-eval-eval-command.js +168 -0
  287. package/dist/cli/commands/loop-eval-monotonic-command.d.ts +3 -0
  288. package/dist/cli/commands/loop-eval-monotonic-command.js +90 -0
  289. package/dist/cli/commands/loop-eval-parents.d.ts +7 -0
  290. package/dist/cli/commands/loop-eval-parents.js +20 -0
  291. package/dist/cli/commands/loop-eval-run-code.d.ts +7 -0
  292. package/dist/cli/commands/loop-eval-run-code.js +40 -0
  293. package/dist/cli/commands/loop-eval-run-command.d.ts +3 -0
  294. package/dist/cli/commands/loop-eval-run-command.js +113 -0
  295. package/dist/cli/commands/loop-eval-spec-commands.d.ts +3 -0
  296. package/dist/cli/commands/loop-eval-spec-commands.js +165 -0
  297. package/dist/cli/commands/loop-eval-spec-lint-command.d.ts +3 -0
  298. package/dist/cli/commands/loop-eval-spec-lint-command.js +42 -0
  299. package/dist/cli/commands/loop-eval-workflow-commands.d.ts +3 -0
  300. package/dist/cli/commands/loop-eval-workflow-commands.js +141 -0
  301. package/dist/cli/commands/loop-export-command.d.ts +3 -0
  302. package/dist/cli/commands/loop-export-command.js +73 -0
  303. package/dist/cli/commands/loop-goal-compose-command.d.ts +3 -0
  304. package/dist/cli/commands/loop-goal-compose-command.js +36 -0
  305. package/dist/cli/commands/loop-import-command.d.ts +3 -0
  306. package/dist/cli/commands/loop-import-command.js +86 -0
  307. package/dist/cli/commands/loop-placeholder-commands.d.ts +3 -0
  308. package/dist/cli/commands/loop-placeholder-commands.js +52 -0
  309. package/dist/cli/commands/mcp-commands.d.ts +10 -0
  310. package/dist/cli/commands/mcp-commands.js +157 -0
  311. package/dist/cli/commands/memory-command-shared.d.ts +59 -0
  312. package/dist/cli/commands/memory-command-shared.js +39 -0
  313. package/dist/cli/commands/memory-commands.d.ts +6 -79
  314. package/dist/cli/commands/memory-commands.js +19 -309
  315. package/dist/cli/commands/memory-ingest-command.d.ts +3 -0
  316. package/dist/cli/commands/memory-ingest-command.js +50 -0
  317. package/dist/cli/commands/memory-list-command.d.ts +16 -0
  318. package/dist/cli/commands/memory-list-command.js +129 -0
  319. package/dist/cli/commands/memory-reindex-command.d.ts +9 -0
  320. package/dist/cli/commands/memory-reindex-command.js +78 -0
  321. package/dist/cli/commands/memory-rotate-command.d.ts +3 -0
  322. package/dist/cli/commands/memory-rotate-command.js +55 -0
  323. package/dist/cli/commands/memory-search-command.d.ts +7 -0
  324. package/dist/cli/commands/memory-search-command.js +46 -0
  325. package/dist/cli/commands/openspec-archive-command.d.ts +3 -0
  326. package/dist/cli/commands/openspec-archive-command.js +55 -0
  327. package/dist/cli/commands/openspec-command-shared.d.ts +62 -0
  328. package/dist/cli/commands/openspec-command-shared.js +135 -0
  329. package/dist/cli/commands/openspec-commands.d.ts +1 -1
  330. package/dist/cli/commands/openspec-commands.js +33 -306
  331. package/dist/cli/commands/openspec-from-doctor-command.d.ts +3 -0
  332. package/dist/cli/commands/openspec-from-doctor-command.js +66 -0
  333. package/dist/cli/commands/openspec-init-command.d.ts +3 -0
  334. package/dist/cli/commands/openspec-init-command.js +49 -0
  335. package/dist/cli/commands/openspec-list-command.d.ts +3 -0
  336. package/dist/cli/commands/openspec-list-command.js +27 -0
  337. package/dist/cli/commands/openspec-render-command.d.ts +3 -0
  338. package/dist/cli/commands/openspec-render-command.js +33 -0
  339. package/dist/cli/commands/openspec-show-command.d.ts +3 -0
  340. package/dist/cli/commands/openspec-show-command.js +33 -0
  341. package/dist/cli/commands/openspec-to-rd-command.d.ts +3 -0
  342. package/dist/cli/commands/openspec-to-rd-command.js +33 -0
  343. package/dist/cli/commands/openspec-validate-command.d.ts +3 -0
  344. package/dist/cli/commands/openspec-validate-command.js +45 -0
  345. package/dist/cli/commands/playwright-browser-command.d.ts +8 -0
  346. package/dist/cli/commands/playwright-browser-command.js +61 -0
  347. package/dist/cli/commands/playwright-commands.d.ts +10 -62
  348. package/dist/cli/commands/playwright-commands.js +77 -400
  349. package/dist/cli/commands/playwright-envelope.d.ts +8 -0
  350. package/dist/cli/commands/playwright-envelope.js +29 -0
  351. package/dist/cli/commands/playwright-ls-stop-commands.d.ts +4 -0
  352. package/dist/cli/commands/playwright-ls-stop-commands.js +74 -0
  353. package/dist/cli/commands/playwright-session-store.d.ts +65 -0
  354. package/dist/cli/commands/playwright-session-store.js +189 -0
  355. package/dist/cli/commands/project-commands.d.ts +19 -0
  356. package/dist/cli/commands/project-commands.js +98 -259
  357. package/dist/cli/commands/project-context-command.d.ts +3 -0
  358. package/dist/cli/commands/project-context-command.js +44 -0
  359. package/dist/cli/commands/project-dashboard-command.d.ts +3 -0
  360. package/dist/cli/commands/project-dashboard-command.js +74 -0
  361. package/dist/cli/commands/project-knowledge-command.d.ts +3 -0
  362. package/dist/cli/commands/project-knowledge-command.js +48 -0
  363. package/dist/cli/commands/project-memories-show-command.d.ts +3 -0
  364. package/dist/cli/commands/project-memories-show-command.js +87 -0
  365. package/dist/cli/commands/project-memory-index-command.d.ts +3 -0
  366. package/dist/cli/commands/project-memory-index-command.js +31 -0
  367. package/dist/cli/commands/qa-archive-screenshots-command.d.ts +3 -0
  368. package/dist/cli/commands/qa-archive-screenshots-command.js +53 -0
  369. package/dist/cli/commands/qa-commands.d.ts +14 -87
  370. package/dist/cli/commands/qa-commands.js +17 -315
  371. package/dist/cli/commands/qa-context-prestep.d.ts +1 -0
  372. package/dist/cli/commands/qa-context-prestep.js +34 -0
  373. package/dist/cli/commands/qa-run-command.d.ts +3 -0
  374. package/dist/cli/commands/qa-run-command.js +105 -0
  375. package/dist/cli/commands/qa-run-options.d.ts +23 -0
  376. package/dist/cli/commands/qa-run-options.js +31 -0
  377. package/dist/cli/commands/qa-run-slice.d.ts +41 -0
  378. package/dist/cli/commands/qa-run-slice.js +145 -0
  379. package/dist/cli/commands/release-canary-command.d.ts +28 -0
  380. package/dist/cli/commands/release-canary-command.js +129 -0
  381. package/dist/cli/commands/release-command-shared.d.ts +13 -0
  382. package/dist/cli/commands/release-command-shared.js +18 -0
  383. package/dist/cli/commands/release-commands.d.ts +10 -18
  384. package/dist/cli/commands/release-commands.js +25 -298
  385. package/dist/cli/commands/release-done-command.d.ts +3 -0
  386. package/dist/cli/commands/release-done-command.js +64 -0
  387. package/dist/cli/commands/release-hotfix-command.d.ts +3 -0
  388. package/dist/cli/commands/release-hotfix-command.js +50 -0
  389. package/dist/cli/commands/release-plan-command.d.ts +3 -0
  390. package/dist/cli/commands/release-plan-command.js +33 -0
  391. package/dist/cli/commands/release-precheck-command.d.ts +3 -0
  392. package/dist/cli/commands/release-precheck-command.js +28 -0
  393. package/dist/cli/commands/release-promote-command.d.ts +3 -0
  394. package/dist/cli/commands/release-promote-command.js +34 -0
  395. package/dist/cli/commands/release-rollback-command.d.ts +3 -0
  396. package/dist/cli/commands/release-rollback-command.js +33 -0
  397. package/dist/cli/commands/release-watch-command.d.ts +3 -0
  398. package/dist/cli/commands/release-watch-command.js +44 -0
  399. package/dist/cli/commands/request-command-options.d.ts +49 -0
  400. package/dist/cli/commands/request-command-options.js +1 -0
  401. package/dist/cli/commands/request-commands.d.ts +3 -9
  402. package/dist/cli/commands/request-commands.js +17 -522
  403. package/dist/cli/commands/request-init-command.d.ts +3 -0
  404. package/dist/cli/commands/request-init-command.js +100 -0
  405. package/dist/cli/commands/request-lint-command.d.ts +3 -0
  406. package/dist/cli/commands/request-lint-command.js +50 -0
  407. package/dist/cli/commands/request-list-command.d.ts +10 -0
  408. package/dist/cli/commands/request-list-command.js +53 -0
  409. package/dist/cli/commands/request-repair-status-command.d.ts +3 -0
  410. package/dist/cli/commands/request-repair-status-command.js +61 -0
  411. package/dist/cli/commands/request-show-command.d.ts +3 -0
  412. package/dist/cli/commands/request-show-command.js +56 -0
  413. package/dist/cli/commands/request-transition-command.d.ts +3 -0
  414. package/dist/cli/commands/request-transition-command.js +122 -0
  415. package/dist/cli/commands/request-transition-failures.d.ts +8 -0
  416. package/dist/cli/commands/request-transition-failures.js +90 -0
  417. package/dist/cli/commands/request-transition-hooks.d.ts +50 -0
  418. package/dist/cli/commands/request-transition-hooks.js +115 -0
  419. package/dist/cli/commands/request-transition-preflight.d.ts +10 -0
  420. package/dist/cli/commands/request-transition-preflight.js +107 -0
  421. package/dist/cli/commands/scan-command-shared.d.ts +96 -0
  422. package/dist/cli/commands/scan-command-shared.js +83 -0
  423. package/dist/cli/commands/scan-commands.d.ts +3 -2
  424. package/dist/cli/commands/scan-commands.js +23 -463
  425. package/dist/cli/commands/scan-inventory-commands.d.ts +3 -0
  426. package/dist/cli/commands/scan-inventory-commands.js +96 -0
  427. package/dist/cli/commands/scan-project-commands.d.ts +3 -0
  428. package/dist/cli/commands/scan-project-commands.js +65 -0
  429. package/dist/cli/commands/scan-scope-commands.d.ts +3 -0
  430. package/dist/cli/commands/scan-scope-commands.js +149 -0
  431. package/dist/cli/commands/scan-scope-helpers.d.ts +8 -0
  432. package/dist/cli/commands/scan-scope-helpers.js +54 -0
  433. package/dist/cli/commands/scan-structural-commands.d.ts +3 -0
  434. package/dist/cli/commands/scan-structural-commands.js +113 -0
  435. package/dist/cli/commands/sediment-argv-flags.d.ts +54 -0
  436. package/dist/cli/commands/sediment-argv-flags.js +116 -0
  437. package/dist/cli/commands/sediment-command-shared.d.ts +15 -0
  438. package/dist/cli/commands/sediment-command-shared.js +5 -0
  439. package/dist/cli/commands/sediment-commands.d.ts +35 -59
  440. package/dist/cli/commands/sediment-commands.js +36 -590
  441. package/dist/cli/commands/sediment-pool-commands.d.ts +9 -0
  442. package/dist/cli/commands/sediment-pool-commands.js +185 -0
  443. package/dist/cli/commands/sediment-query-commands.d.ts +4 -0
  444. package/dist/cli/commands/sediment-query-commands.js +94 -0
  445. package/dist/cli/commands/sediment-release-commands.d.ts +8 -0
  446. package/dist/cli/commands/sediment-release-commands.js +232 -0
  447. package/dist/cli/commands/share-commands.d.ts +12 -68
  448. package/dist/cli/commands/share-commands.js +47 -556
  449. package/dist/cli/commands/share-error-hints.d.ts +14 -0
  450. package/dist/cli/commands/share-error-hints.js +38 -0
  451. package/dist/cli/commands/share-identity.d.ts +13 -0
  452. package/dist/cli/commands/share-identity.js +22 -0
  453. package/dist/cli/commands/share-record-paths.d.ts +37 -0
  454. package/dist/cli/commands/share-record-paths.js +68 -0
  455. package/dist/cli/commands/share-runners.d.ts +3 -0
  456. package/dist/cli/commands/share-runners.js +158 -0
  457. package/dist/cli/commands/shared-read-runners.d.ts +3 -0
  458. package/dist/cli/commands/shared-read-runners.js +51 -0
  459. package/dist/cli/commands/slice-check-command.d.ts +3 -0
  460. package/dist/cli/commands/slice-check-command.js +54 -0
  461. package/dist/cli/commands/slice-commands.d.ts +2 -22
  462. package/dist/cli/commands/slice-commands.js +18 -517
  463. package/dist/cli/commands/slice-decompose-artifacts.d.ts +18 -0
  464. package/dist/cli/commands/slice-decompose-artifacts.js +79 -0
  465. package/dist/cli/commands/slice-decompose-command.d.ts +3 -0
  466. package/dist/cli/commands/slice-decompose-command.js +123 -0
  467. package/dist/cli/commands/slice-list-commands.d.ts +3 -0
  468. package/dist/cli/commands/slice-list-commands.js +182 -0
  469. package/dist/cli/commands/slice-pick-command.d.ts +3 -0
  470. package/dist/cli/commands/slice-pick-command.js +60 -0
  471. package/dist/cli/commands/slice-plan-command.d.ts +24 -0
  472. package/dist/cli/commands/slice-plan-command.js +111 -0
  473. package/dist/cli/commands/sop-advance-command.d.ts +3 -0
  474. package/dist/cli/commands/sop-advance-command.js +160 -0
  475. package/dist/cli/commands/sop-check-command.d.ts +3 -0
  476. package/dist/cli/commands/sop-check-command.js +44 -0
  477. package/dist/cli/commands/sop-command-shared.d.ts +23 -0
  478. package/dist/cli/commands/sop-command-shared.js +18 -0
  479. package/dist/cli/commands/sop-commands.d.ts +15 -1
  480. package/dist/cli/commands/sop-commands.js +26 -240
  481. package/dist/cli/commands/sop-init-command.d.ts +3 -0
  482. package/dist/cli/commands/sop-init-command.js +51 -0
  483. package/dist/cli/commands/sop-lint-command.d.ts +3 -0
  484. package/dist/cli/commands/sop-lint-command.js +64 -0
  485. package/dist/cli/commands/sop-register-command.d.ts +3 -0
  486. package/dist/cli/commands/sop-register-command.js +48 -0
  487. package/dist/cli/commands/sop-registry-command.d.ts +3 -0
  488. package/dist/cli/commands/sop-registry-command.js +30 -0
  489. package/dist/cli/commands/statusline-command-shared.d.ts +73 -0
  490. package/dist/cli/commands/statusline-command-shared.js +90 -0
  491. package/dist/cli/commands/statusline-commands.d.ts +1 -19
  492. package/dist/cli/commands/statusline-commands.js +48 -287
  493. package/dist/cli/commands/statusline-compact-command.d.ts +4 -0
  494. package/dist/cli/commands/statusline-compact-command.js +54 -0
  495. package/dist/cli/commands/statusline-install-command.d.ts +3 -0
  496. package/dist/cli/commands/statusline-install-command.js +48 -0
  497. package/dist/cli/commands/statusline-render-command.d.ts +9 -0
  498. package/dist/cli/commands/statusline-render-command.js +55 -0
  499. package/dist/cli/commands/statusline-status-command.d.ts +3 -0
  500. package/dist/cli/commands/statusline-status-command.js +23 -0
  501. package/dist/cli/commands/statusline-uninstall-command.d.ts +3 -0
  502. package/dist/cli/commands/statusline-uninstall-command.js +23 -0
  503. package/dist/cli/commands/test-command-run-helpers.d.ts +27 -0
  504. package/dist/cli/commands/test-command-run-helpers.js +73 -0
  505. package/dist/cli/commands/test-command-runner-resolution.d.ts +57 -0
  506. package/dist/cli/commands/test-command-runner-resolution.js +183 -0
  507. package/dist/cli/commands/test-commands.d.ts +8 -56
  508. package/dist/cli/commands/test-commands.js +26 -249
  509. package/dist/cli/commands/vm-command-shared.d.ts +23 -0
  510. package/dist/cli/commands/vm-command-shared.js +23 -0
  511. package/dist/cli/commands/vm-commands.d.ts +1 -28
  512. package/dist/cli/commands/vm-commands.js +36 -270
  513. package/dist/cli/commands/vm-hypervisor-runtime.d.ts +15 -0
  514. package/dist/cli/commands/vm-hypervisor-runtime.js +64 -0
  515. package/dist/cli/commands/vm-release-command.d.ts +5 -0
  516. package/dist/cli/commands/vm-release-command.js +101 -0
  517. package/dist/cli/commands/vm-spawn-command.d.ts +5 -0
  518. package/dist/cli/commands/vm-spawn-command.js +177 -0
  519. package/dist/cli/commands/web-command-shared.d.ts +12 -0
  520. package/dist/cli/commands/web-command-shared.js +30 -0
  521. package/dist/cli/commands/web-commands.d.ts +7 -14
  522. package/dist/cli/commands/web-commands.js +6 -314
  523. package/dist/cli/commands/web-install-command.d.ts +10 -0
  524. package/dist/cli/commands/web-install-command.js +116 -0
  525. package/dist/cli/commands/web-lifecycle-commands.d.ts +9 -30
  526. package/dist/cli/commands/web-lifecycle-commands.js +14 -322
  527. package/dist/cli/commands/web-login-command.d.ts +14 -0
  528. package/dist/cli/commands/web-login-command.js +189 -0
  529. package/dist/cli/commands/web-op-payload.d.ts +22 -0
  530. package/dist/cli/commands/web-op-payload.js +89 -0
  531. package/dist/cli/commands/web-op-refusals.d.ts +37 -0
  532. package/dist/cli/commands/web-op-refusals.js +73 -0
  533. package/dist/cli/commands/web-op-runner.d.ts +14 -0
  534. package/dist/cli/commands/web-op-runner.js +166 -0
  535. package/dist/cli/commands/web-status-command.d.ts +4 -0
  536. package/dist/cli/commands/web-status-command.js +32 -0
  537. package/dist/cli/commands/web-stop-command.d.ts +10 -0
  538. package/dist/cli/commands/web-stop-command.js +59 -0
  539. package/dist/cli/commands/web-verb-specs.d.ts +18 -0
  540. package/dist/cli/commands/web-verb-specs.js +66 -0
  541. package/dist/cli/commands/workflow-command-shared.d.ts +102 -0
  542. package/dist/cli/commands/workflow-command-shared.js +74 -0
  543. package/dist/cli/commands/workflow-commands.d.ts +10 -1
  544. package/dist/cli/commands/workflow-commands.js +6 -594
  545. package/dist/cli/commands/workflow-gate-commands.d.ts +3 -0
  546. package/dist/cli/commands/workflow-gate-commands.js +116 -0
  547. package/dist/cli/commands/workflow-graph-commands.d.ts +3 -0
  548. package/dist/cli/commands/workflow-graph-commands.js +73 -0
  549. package/dist/cli/commands/workflow-init-command.d.ts +3 -0
  550. package/dist/cli/commands/workflow-init-command.js +68 -0
  551. package/dist/cli/commands/workflow-lifecycle-commands.d.ts +9 -59
  552. package/dist/cli/commands/workflow-lifecycle-commands.js +14 -348
  553. package/dist/cli/commands/workflow-node-commands.d.ts +3 -0
  554. package/dist/cli/commands/workflow-node-commands.js +154 -0
  555. package/dist/cli/commands/workflow-plan-helpers.d.ts +48 -0
  556. package/dist/cli/commands/workflow-plan-helpers.js +103 -0
  557. package/dist/cli/commands/workflow-planning-commands.d.ts +3 -0
  558. package/dist/cli/commands/workflow-planning-commands.js +56 -0
  559. package/dist/cli/commands/workflow-swarm-actions.d.ts +7 -0
  560. package/dist/cli/commands/workflow-swarm-actions.js +109 -0
  561. package/dist/cli/commands/workflow-swarm-commands.d.ts +3 -0
  562. package/dist/cli/commands/workflow-swarm-commands.js +138 -0
  563. package/dist/cli/commands/workflow-tech-actions.d.ts +10 -0
  564. package/dist/cli/commands/workflow-tech-actions.js +150 -0
  565. package/dist/cli/commands/workflow-terminalize-command.d.ts +3 -0
  566. package/dist/cli/commands/workflow-terminalize-command.js +56 -0
  567. package/dist/cli/commands/workspace/init-actions.d.ts +10 -0
  568. package/dist/cli/commands/workspace/init-actions.js +199 -0
  569. package/dist/cli/commands/workspace/init-codegraph-stake.d.ts +10 -0
  570. package/dist/cli/commands/workspace/init-codegraph-stake.js +54 -0
  571. package/dist/cli/commands/workspace/init-command.d.ts +8 -124
  572. package/dist/cli/commands/workspace/init-command.js +59 -623
  573. package/dist/cli/commands/workspace/init-context.d.ts +58 -0
  574. package/dist/cli/commands/workspace/init-context.js +121 -0
  575. package/dist/cli/commands/workspace/init-envelope.d.ts +3 -0
  576. package/dist/cli/commands/workspace/init-envelope.js +34 -0
  577. package/dist/cli/commands/workspace/init-failures.d.ts +3 -0
  578. package/dist/cli/commands/workspace/init-failures.js +84 -0
  579. package/dist/cli/commands/workspace/init-hooks-decision.d.ts +24 -0
  580. package/dist/cli/commands/workspace/init-hooks-decision.js +189 -0
  581. package/dist/cli/commands/workspace/init-options.d.ts +102 -0
  582. package/dist/cli/commands/workspace/init-options.js +1 -0
  583. package/dist/cli/commands/worktree-lease-commands.d.ts +10 -6
  584. package/dist/cli/commands/worktree-lease-commands.js +42 -512
  585. package/dist/cli/commands/worktree-lease-gc-command.d.ts +12 -0
  586. package/dist/cli/commands/worktree-lease-gc-command.js +117 -0
  587. package/dist/cli/commands/worktree-lease-git.d.ts +22 -0
  588. package/dist/cli/commands/worktree-lease-git.js +48 -0
  589. package/dist/cli/commands/worktree-lease-list-command.d.ts +12 -0
  590. package/dist/cli/commands/worktree-lease-list-command.js +100 -0
  591. package/dist/cli/commands/worktree-lease-load.d.ts +37 -0
  592. package/dist/cli/commands/worktree-lease-load.js +28 -0
  593. package/dist/cli/commands/worktree-lease-release-command.d.ts +13 -0
  594. package/dist/cli/commands/worktree-lease-release-command.js +105 -0
  595. package/dist/cli/commands/worktree-lease-renew-command.d.ts +11 -0
  596. package/dist/cli/commands/worktree-lease-renew-command.js +99 -0
  597. package/dist/cli/commands/worktree-lease-session.d.ts +22 -0
  598. package/dist/cli/commands/worktree-lease-session.js +29 -0
  599. package/dist/cli/commands/worktree-lease-spawn-command.d.ts +11 -0
  600. package/dist/cli/commands/worktree-lease-spawn-command.js +119 -0
  601. package/dist/cli/commands/worktree-lease-status-command.d.ts +11 -0
  602. package/dist/cli/commands/worktree-lease-status-command.js +86 -0
  603. package/dist/cli/commands/worktree-lease-store.d.ts +19 -0
  604. package/dist/cli/commands/worktree-lease-store.js +24 -0
  605. package/dist/cli/program.js +5 -0
  606. package/dist/services/code/auto-compact-artifacts.d.ts +54 -0
  607. package/dist/services/code/auto-compact-artifacts.js +135 -0
  608. package/dist/services/code/auto-compact-attempt.d.ts +46 -0
  609. package/dist/services/code/auto-compact-attempt.js +88 -0
  610. package/dist/services/code/auto-compact-decision.d.ts +74 -0
  611. package/dist/services/code/auto-compact-decision.js +149 -0
  612. package/dist/services/code/auto-compact-dispatch-gate.d.ts +36 -0
  613. package/dist/services/code/auto-compact-dispatch-gate.js +86 -0
  614. package/dist/services/code/auto-compact-envelopes.d.ts +33 -0
  615. package/dist/services/code/auto-compact-envelopes.js +134 -0
  616. package/dist/services/code/auto-compact-history.d.ts +46 -0
  617. package/dist/services/code/auto-compact-history.js +17 -0
  618. package/dist/services/code/auto-compact-orchestrator.d.ts +11 -240
  619. package/dist/services/code/auto-compact-orchestrator.js +165 -686
  620. package/dist/services/code/auto-compact-run-types.d.ts +123 -0
  621. package/dist/services/code/auto-compact-run-types.js +1 -0
  622. package/dist/services/code/emit-handoff.d.ts +35 -1
  623. package/dist/services/code/emit-handoff.js +128 -7
  624. package/dist/services/code/step-08-gate.d.ts +28 -19
  625. package/dist/services/code/step-08-gate.js +92 -35
  626. package/dist/services/config/config-coercion.d.ts +7 -0
  627. package/dist/services/config/config-coercion.js +156 -0
  628. package/dist/services/config/config-file-io.d.ts +11 -0
  629. package/dist/services/config/config-file-io.js +61 -0
  630. package/dist/services/config/config-get.d.ts +2 -0
  631. package/dist/services/config/config-get.js +36 -0
  632. package/dist/services/config/config-global-loader.d.ts +15 -0
  633. package/dist/services/config/config-global-loader.js +111 -0
  634. package/dist/services/config/config-nested-path.d.ts +3 -0
  635. package/dist/services/config/config-nested-path.js +53 -0
  636. package/dist/services/config/config-primitives.d.ts +16 -0
  637. package/dist/services/config/config-primitives.js +24 -0
  638. package/dist/services/config/config-service.d.ts +9 -33
  639. package/dist/services/config/config-service.js +16 -665
  640. package/dist/services/config/config-validation.d.ts +19 -0
  641. package/dist/services/config/config-validation.js +152 -0
  642. package/dist/services/config/config-workspace.d.ts +10 -0
  643. package/dist/services/config/config-workspace.js +158 -0
  644. package/dist/services/distribution/mcp-install-runner.d.ts +21 -0
  645. package/dist/services/distribution/mcp-install-runner.js +59 -0
  646. package/dist/services/distribution/mcp-install.d.ts +95 -0
  647. package/dist/services/distribution/mcp-install.js +179 -0
  648. package/dist/services/distribution/plugin-manifest.d.ts +97 -0
  649. package/dist/services/distribution/plugin-manifest.js +126 -0
  650. package/dist/services/hooks/mcp-surface-gate.d.ts +19 -0
  651. package/dist/services/hooks/mcp-surface-gate.js +87 -0
  652. package/dist/services/ide/adapters/claude-code-adapter.d.ts +4 -35
  653. package/dist/services/ide/adapters/claude-code-adapter.js +48 -171
  654. package/dist/services/ide/adapters/claude-code-local-state.d.ts +28 -0
  655. package/dist/services/ide/adapters/claude-code-local-state.js +112 -0
  656. package/dist/services/ide/adapters/claude-code-model-window.d.ts +37 -0
  657. package/dist/services/ide/adapters/claude-code-model-window.js +113 -0
  658. package/dist/services/ide/ide-mcp-install-types.d.ts +78 -0
  659. package/dist/services/ide/ide-mcp-install-types.js +104 -0
  660. package/dist/services/ide/ide-types.d.ts +45 -1
  661. package/dist/services/ide/mcp-tool-matcher.d.ts +34 -0
  662. package/dist/services/ide/mcp-tool-matcher.js +84 -0
  663. package/dist/services/lint/npx-resolver.js +7 -0
  664. package/dist/services/mcp/cli-executor.d.ts +36 -0
  665. package/dist/services/mcp/cli-executor.js +97 -0
  666. package/dist/services/mcp/json-rpc.d.ts +81 -0
  667. package/dist/services/mcp/json-rpc.js +116 -0
  668. package/dist/services/mcp/memory-tool.d.ts +3 -0
  669. package/dist/services/mcp/memory-tool.js +62 -0
  670. package/dist/services/mcp/server-main.d.ts +1 -0
  671. package/dist/services/mcp/server-main.js +66 -0
  672. package/dist/services/mcp/server.d.ts +22 -0
  673. package/dist/services/mcp/server.js +152 -0
  674. package/dist/services/mcp/surface.d.ts +62 -0
  675. package/dist/services/mcp/surface.js +198 -0
  676. package/dist/services/mcp/tool-core.d.ts +42 -0
  677. package/dist/services/mcp/tool-core.js +137 -0
  678. package/dist/services/mcp/tools.d.ts +13 -0
  679. package/dist/services/mcp/tools.js +58 -0
  680. package/dist/services/readonly-surface/argv-guard.d.ts +32 -0
  681. package/dist/services/readonly-surface/argv-guard.js +164 -0
  682. package/dist/services/readonly-surface/readonly-whitelist.d.ts +147 -0
  683. package/dist/services/readonly-surface/readonly-whitelist.js +107 -0
  684. package/dist/services/readonly-surface/whitelist-generator.d.ts +64 -0
  685. package/dist/services/readonly-surface/whitelist-generator.js +212 -0
  686. package/dist/services/skills/hooks-codegate-superpowers.d.ts +1 -0
  687. package/dist/services/skills/hooks-codegate-superpowers.js +26 -0
  688. package/dist/services/skills/hooks-settings-deny-list.d.ts +61 -0
  689. package/dist/services/skills/hooks-settings-deny-list.js +173 -0
  690. package/dist/services/skills/hooks-settings-envelopes.d.ts +20 -0
  691. package/dist/services/skills/hooks-settings-envelopes.js +79 -0
  692. package/dist/services/skills/hooks-settings-file-shape.d.ts +43 -0
  693. package/dist/services/skills/hooks-settings-file-shape.js +207 -0
  694. package/dist/services/skills/hooks-settings-paths.d.ts +34 -0
  695. package/dist/services/skills/hooks-settings-paths.js +75 -0
  696. package/dist/services/skills/hooks-settings-read-installed.d.ts +39 -0
  697. package/dist/services/skills/hooks-settings-read-installed.js +60 -0
  698. package/dist/services/skills/hooks-settings-service.d.ts +12 -212
  699. package/dist/services/skills/hooks-settings-service.js +71 -649
  700. package/dist/services/skills/hooks-settings-types.d.ts +139 -0
  701. package/dist/services/skills/hooks-settings-types.js +1 -0
  702. package/dist/services/workspace/claude-settings-template-merge.d.ts +89 -0
  703. package/dist/services/workspace/claude-settings-template-merge.js +243 -0
  704. package/dist/services/workspace/claude-settings-template.d.ts +29 -87
  705. package/dist/services/workspace/claude-settings-template.js +81 -236
  706. package/package.json +17 -6
  707. package/scripts/install-skills-bundles.mjs +233 -0
  708. package/scripts/install-skills-fs.mjs +148 -0
  709. package/scripts/install-skills-ide.mjs +279 -0
  710. package/scripts/install-skills-output-style-default.mjs +196 -0
  711. package/scripts/install-skills-output-styles.mjs +121 -0
  712. package/scripts/install-skills-report.mjs +42 -0
  713. package/scripts/install-skills-user-config.mjs +198 -0
  714. package/scripts/install-skills.mjs +36 -1066
  715. package/scripts/watch-tree.mjs +140 -0
  716. package/scripts/watch.mjs +4 -126
  717. package/skills/peaks-status/SKILL.md +31 -13
@@ -0,0 +1,41 @@
1
+ import type { SubAgentToolCall } from '../../services/dispatch/sub-agent-dispatcher.js';
2
+ import type { SliceDag } from '../../services/dispatch/slice-dag.js';
3
+ import type { SliceComplexity } from '../../services/dispatch/slice-dag-types.js';
4
+ /** Everything the `--from-dag` success envelope reports, already resolved. */
5
+ export type DagEnvelopeInput = {
6
+ readonly role: string;
7
+ readonly ide: string;
8
+ readonly fromDag: string;
9
+ readonly batchId: string;
10
+ readonly levelsTotal: number;
11
+ readonly emittedSliceIds: readonly string[];
12
+ readonly emittedToolCalls: readonly SubAgentToolCall[];
13
+ readonly firstLevelWaves: unknown;
14
+ readonly existingContractCount: number;
15
+ readonly dag: SliceDag;
16
+ readonly isSliceComplexity: (value: string) => value is SliceComplexity;
17
+ };
18
+ /** The `ok('sub-agent.dispatch', …)` envelope for a completed `--from-dag` run. */
19
+ export declare function buildDagSuccessEnvelope(input: DagEnvelopeInput): import("peaks-loop-shared/result").ResultEnvelope<{
20
+ envelopeVersion: string;
21
+ role: string;
22
+ ide: string;
23
+ fromDag: string;
24
+ batchId: string;
25
+ dispatchCount: number;
26
+ levelsTotal: number;
27
+ firstLevel: readonly string[];
28
+ firstLevelWaves: unknown;
29
+ toolCalls: readonly SubAgentToolCall[];
30
+ existingContractCount: number;
31
+ expectedCompletionSeconds: number;
32
+ artifactsPublicPaths: never[];
33
+ orchestratorVisibleHint: string;
34
+ sliceMeta: {
35
+ id: string;
36
+ foundation: boolean;
37
+ upstreamSync: boolean;
38
+ complexity: SliceComplexity | null;
39
+ }[];
40
+ nextActions: string[];
41
+ }>;
@@ -0,0 +1,49 @@
1
+ import { ok } from 'peaks-loop-shared/result';
2
+ /**
3
+ * Per-slice scheduling metadata (foundation / upstreamSync / complexity) for
4
+ * the level-1 slices the envelope surfaces.
5
+ */
6
+ function sliceMetaFor(ids, dag, isSliceComplexity) {
7
+ return ids.map((id) => {
8
+ const node = dag.nodes.find((n) => n.id === id);
9
+ return {
10
+ id,
11
+ foundation: node?.foundation === true,
12
+ upstreamSync: node?.upstreamSync === true,
13
+ complexity: node?.complexity !== undefined && isSliceComplexity(node.complexity)
14
+ ? node.complexity
15
+ : null
16
+ };
17
+ });
18
+ }
19
+ /** The `ok('sub-agent.dispatch', …)` envelope for a completed `--from-dag` run. */
20
+ export function buildDagSuccessEnvelope(input) {
21
+ const { role, ide, fromDag, batchId, levelsTotal, emittedSliceIds, emittedToolCalls, firstLevelWaves, existingContractCount, dag, isSliceComplexity } = input;
22
+ const dispatchCount = emittedSliceIds.length;
23
+ return ok('sub-agent.dispatch', {
24
+ envelopeVersion: '2.1.0',
25
+ role,
26
+ ide,
27
+ fromDag,
28
+ batchId,
29
+ dispatchCount,
30
+ levelsTotal,
31
+ firstLevel: emittedSliceIds,
32
+ firstLevelWaves,
33
+ toolCalls: emittedToolCalls,
34
+ existingContractCount,
35
+ expectedCompletionSeconds: 60,
36
+ artifactsPublicPaths: [],
37
+ orchestratorVisibleHint: `⏳ Spawning ${dispatchCount} sub-agents via Task tool from DAG ${fromDag}, batch-id=${batchId} (ETA ~60s)`,
38
+ sliceMeta: sliceMetaFor(emittedSliceIds, dag, isSliceComplexity),
39
+ nextActions: [
40
+ 'Execute each toolCall in your IDE; on completion, write the slice contract to .peaks/_runtime/<sid>/dispatch/contracts/<slice-id>.json.',
41
+ '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.'
42
+ ]
43
+ }, [], [
44
+ '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.',
45
+ existingContractCount > 0
46
+ ? `Injected ${existingContractCount} upstream contract(s) into downstream-level prompts via formatContractInjection.`
47
+ : 'No upstream contracts found; first-level prompts have empty ancestor blocks.'
48
+ ]);
49
+ }
@@ -0,0 +1,18 @@
1
+ import { type ProgramIO } from '../cli-helpers.js';
2
+ /** One refusal from the `--from-dag` path, as the fields the envelope needs. */
3
+ export type DagFailure = {
4
+ readonly role: string;
5
+ readonly code: string;
6
+ readonly message: string;
7
+ readonly extra?: Record<string, unknown>;
8
+ readonly nextActions: readonly string[];
9
+ };
10
+ /**
11
+ * Emit a `sub-agent.dispatch` failure envelope and mark the process failed.
12
+ *
13
+ * Returns `null` so every caller can read `if (readDag(...) === null) return;`
14
+ * — the three statements (print, exit code, return) are one decision and stay
15
+ * together, which is also what keeps each call site inside
16
+ * `max-lines-per-function`.
17
+ */
18
+ export declare function emitDagFailure(io: ProgramIO, asJson: boolean, failure: DagFailure): null;
@@ -0,0 +1,16 @@
1
+ import { fail } from 'peaks-loop-shared/result';
2
+ import { printResult } from '../cli-helpers.js';
3
+ /**
4
+ * Emit a `sub-agent.dispatch` failure envelope and mark the process failed.
5
+ *
6
+ * Returns `null` so every caller can read `if (readDag(...) === null) return;`
7
+ * — the three statements (print, exit code, return) are one decision and stay
8
+ * together, which is also what keeps each call site inside
9
+ * `max-lines-per-function`.
10
+ */
11
+ export function emitDagFailure(io, asJson, failure) {
12
+ const { role, code, message, extra, nextActions } = failure;
13
+ printResult(io, fail('sub-agent.dispatch', code, message, { role, toolCall: null, dispatchRecordPath: null, ...extra }, [...nextActions]), asJson);
14
+ process.exitCode = 1;
15
+ return null;
16
+ }
@@ -0,0 +1,51 @@
1
+ import type { SliceDag } from '../../services/dispatch/slice-dag.js';
2
+ import type { ProgramIO } from '../cli-helpers.js';
3
+ import { type DispatchOptions } from './sub-agent-shared.js';
4
+ /** The three things every refusal in this path needs to be emitted. */
5
+ export type DagScope = {
6
+ readonly role: string;
7
+ readonly asJson: boolean;
8
+ readonly io: ProgramIO;
9
+ };
10
+ /** Identity every `--from-dag` envelope is stamped with. */
11
+ export type DagIds = {
12
+ readonly projectRoot: string;
13
+ readonly sid: string;
14
+ readonly rid: string;
15
+ readonly batchId: string;
16
+ };
17
+ /**
18
+ * Resolve the project root + the four ids the DAG envelope reports.
19
+ *
20
+ * The sid falls back through `PEAKS_SESSION_ID` and the canonical binding
21
+ * before the `unknown-sid` sentinel; the rid keeps its `unknown-rid` default
22
+ * when the caller passed none.
23
+ */
24
+ export declare function resolveDagIds(options: DispatchOptions): DagIds;
25
+ /**
26
+ * Lazy-load the three heavy modules only when `--from-dag` is actually used.
27
+ *
28
+ * The warm-path single dispatch does NOT load slice-dag / dag-orchestrator /
29
+ * contract-store (slice 9 perf); the dynamic-import promise resolves on first
30
+ * call and ESM caches the module for subsequent calls in the same process.
31
+ */
32
+ export declare function loadDagRuntime(): Promise<{
33
+ readFileSync: typeof import("fs").readFileSync;
34
+ validateDag: typeof import("../../services/dispatch/slice-dag.js").validateDag;
35
+ topologicalLevels: typeof import("../../services/dispatch/slice-dag.js").topologicalLevels;
36
+ isSliceComplexity: typeof import("../../services/dispatch/slice-dag-types.js").isSliceComplexity;
37
+ runLayeredDag: typeof import("../../services/code/dag-orchestrator.js").runLayeredDag;
38
+ listContracts: typeof import("../../services/dispatch/contract-store.js").listContracts;
39
+ hashContract: typeof import("../../services/dispatch/contract-store.js").hashContract;
40
+ }>;
41
+ export type DagRuntime = Awaited<ReturnType<typeof loadDagRuntime>>;
42
+ /** Read + `JSON.parse` + `validateDag` the DAG file; `null` once refused. */
43
+ export declare function readDagOrFail(runtime: DagRuntime, fromDag: string, scope: DagScope): SliceDag | null;
44
+ /**
45
+ * Each DAG node must map to an explicitly prepared workflow graph node before
46
+ * sub-agent dispatch. The mapping is the `graphNode` annotation on the node,
47
+ * or — as a back-compat fallback — the node id itself.
48
+ */
49
+ export declare function assertGraphNodesMapped(dag: SliceDag, scope: DagScope): true | null;
50
+ /** Topologically order the DAG's nodes; `null` once the failure is emitted. */
51
+ export declare function topologicalLevelsOrFail(runtime: DagRuntime, dag: SliceDag, fromDag: string, scope: DagScope): readonly (readonly string[])[] | null;
@@ -0,0 +1,105 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { getCurrentSessionId } from '../../services/skills/skill-presence-service.js';
3
+ import { emitDagFailure } from './dispatch-dag-failure.js';
4
+ /**
5
+ * Resolve the project root + the four ids the DAG envelope reports.
6
+ *
7
+ * The sid falls back through `PEAKS_SESSION_ID` and the canonical binding
8
+ * before the `unknown-sid` sentinel; the rid keeps its `unknown-rid` default
9
+ * when the caller passed none.
10
+ */
11
+ export function resolveDagIds(options) {
12
+ const projectRoot = options.project ?? process.cwd();
13
+ return {
14
+ projectRoot,
15
+ sid: options.sessionId ??
16
+ process.env.PEAKS_SESSION_ID ??
17
+ getCurrentSessionId(projectRoot) ??
18
+ 'unknown-sid',
19
+ rid: options.requestId ?? 'unknown-rid',
20
+ batchId: options.batchId ?? randomUUID()
21
+ };
22
+ }
23
+ /**
24
+ * Lazy-load the three heavy modules only when `--from-dag` is actually used.
25
+ *
26
+ * The warm-path single dispatch does NOT load slice-dag / dag-orchestrator /
27
+ * contract-store (slice 9 perf); the dynamic-import promise resolves on first
28
+ * call and ESM caches the module for subsequent calls in the same process.
29
+ */
30
+ export async function loadDagRuntime() {
31
+ const [{ readFileSync }, sliceDagMod, dagOrchestratorMod, contractStoreMod] = await Promise.all([
32
+ import('node:fs'),
33
+ import('../../services/dispatch/slice-dag.js'),
34
+ import('../../services/code/dag-orchestrator.js'),
35
+ import('../../services/dispatch/contract-store.js')
36
+ ]);
37
+ return {
38
+ readFileSync,
39
+ validateDag: sliceDagMod.validateDag,
40
+ topologicalLevels: sliceDagMod.topologicalLevels,
41
+ isSliceComplexity: sliceDagMod.isSliceComplexity,
42
+ runLayeredDag: dagOrchestratorMod.runLayeredDag,
43
+ listContracts: contractStoreMod.listContracts,
44
+ hashContract: contractStoreMod.hashContract
45
+ };
46
+ }
47
+ /** Read + `JSON.parse` + `validateDag` the DAG file; `null` once refused. */
48
+ export function readDagOrFail(runtime, fromDag, scope) {
49
+ try {
50
+ const raw = runtime.readFileSync(fromDag, 'utf8');
51
+ const parsed = JSON.parse(raw);
52
+ runtime.validateDag(parsed);
53
+ return parsed;
54
+ }
55
+ catch (err) {
56
+ return emitDagFailure(scope.io, scope.asJson, {
57
+ role: scope.role,
58
+ code: 'INVALID_DAG',
59
+ message: `failed to read or validate DAG from ${fromDag}: ${err.message}`,
60
+ nextActions: [
61
+ 'Check the JSON file at the given path; the DAG must have {nodes, edges} and pass validateDag().'
62
+ ]
63
+ });
64
+ }
65
+ }
66
+ /**
67
+ * Each DAG node must map to an explicitly prepared workflow graph node before
68
+ * sub-agent dispatch. The mapping is the `graphNode` annotation on the node,
69
+ * or — as a back-compat fallback — the node id itself.
70
+ */
71
+ export function assertGraphNodesMapped(dag, scope) {
72
+ for (const node of dag.nodes) {
73
+ const graphNodeId = node.graphNode;
74
+ const candidate = typeof graphNodeId === 'string' && graphNodeId.length > 0 ? graphNodeId : node.id;
75
+ if (typeof candidate === 'string' && candidate.length > 0)
76
+ continue;
77
+ return emitDagFailure(scope.io, scope.asJson, {
78
+ role: scope.role,
79
+ code: 'PEAKS_GRAPH_NODE_REQUIRED',
80
+ message: `DAG node ${node.id} has no graph-node mapping (RD §4 D4c)`,
81
+ extra: { dagNodeId: node.id },
82
+ nextActions: [
83
+ 'Annotate the DAG node with `graphNode: "<id>"` so each dispatch can bind a prepared graph node.'
84
+ ]
85
+ });
86
+ }
87
+ return true;
88
+ }
89
+ /** Topologically order the DAG's nodes; `null` once the failure is emitted. */
90
+ export function topologicalLevelsOrFail(runtime, dag, fromDag, scope) {
91
+ try {
92
+ return runtime.topologicalLevels(dag);
93
+ }
94
+ catch (err) {
95
+ return emitDagFailure(scope.io, scope.asJson, {
96
+ role: scope.role,
97
+ code: 'INVALID_DAG',
98
+ message: `topologicalLevels failed for ${fromDag}: ${err.message}`,
99
+ nextActions: [
100
+ 'The DAG passed validateDag() but topologicalLevels threw (likely a cycle that slipped past validateDag, or a runtime invariant).',
101
+ '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.)'
102
+ ]
103
+ });
104
+ }
105
+ }
@@ -0,0 +1,48 @@
1
+ import type { SubAgentDispatcher, SubAgentToolCall } from '../../services/dispatch/sub-agent-dispatcher.js';
2
+ import type { SliceDag } from '../../services/dispatch/slice-dag.js';
3
+ import type { DispatchSpec, SliceOutcome } from '../../services/code/dag-orchestrator.js';
4
+ import type { SliceContract, WriteContractInput } from '../../services/dispatch/contract-store.js';
5
+ /** What the CLI runner collected while `runLayeredDag` walked the levels. */
6
+ export type DagEmissions = {
7
+ readonly toolCalls: SubAgentToolCall[];
8
+ readonly sliceIds: string[];
9
+ };
10
+ /** The resolved IDE + sub-agent dispatcher the `--from-dag` path runs on. */
11
+ export type DagDispatcher = {
12
+ readonly ide: string;
13
+ readonly dispatcher: SubAgentDispatcher;
14
+ };
15
+ /** Detect the IDE and resolve its sub-agent dispatcher. */
16
+ export declare function resolveDagDispatcher(projectRoot: string): DagDispatcher;
17
+ /**
18
+ * When every first-level node declares `files`, refine the level into
19
+ * file-overlap waves so the LLM fans out without serializing on a shared
20
+ * file. Emitted additively; nodes without `files` yield `null` (legacy
21
+ * envelope).
22
+ */
23
+ export declare function planFirstLevelWaves(dag: SliceDag, levelArr: readonly (readonly string[])[]): readonly import("../../services/dispatch/file-overlap-wave-planner.js").FileOverlapWave[] | null;
24
+ /**
25
+ * The CLI runner: emit the per-slice `buildToolCall` descriptor for the first
26
+ * topological level, then return `done`.
27
+ *
28
+ * Returning `done` (not `cancelled`) exercises `runLayeredDag`'s join barrier
29
+ * and cancel-on-fail path end to end; the placeholder `publicSurface` is
30
+ * intentionally empty because the real surface arrives later via
31
+ * `peaks contract write`.
32
+ */
33
+ export declare function makeCliRunner(args: {
34
+ firstLevelIds: ReadonlySet<string>;
35
+ dispatcher: SubAgentDispatcher;
36
+ ids: {
37
+ readonly rid: string;
38
+ readonly sid: string;
39
+ };
40
+ emissions: DagEmissions;
41
+ }): (spec: DispatchSpec) => Promise<SliceOutcome>;
42
+ /**
43
+ * Placeholder contract writer. The CLI writes nothing to disk here — the
44
+ * LLM-side runner does that via `peaks contract write` — but the returned
45
+ * placeholder must stay shape-valid: `contractHash` has to be a real SHA-256
46
+ * hex string computed from the slice identity (`sliceId|sessionId`).
47
+ */
48
+ export declare function makeNoopWriter(hashContract: (partial: WriteContractInput) => string, sid: string): (sliceId: string) => SliceContract;
@@ -0,0 +1,73 @@
1
+ import { detectInstalledIde } from '../../services/ide/ide-detector.js';
2
+ import { getAdapter } from '../../services/ide/ide-registry.js';
3
+ import { planFileOverlapWaves } from '../../services/dispatch/file-overlap-wave-planner.js';
4
+ /** Detect the IDE and resolve its sub-agent dispatcher. */
5
+ export function resolveDagDispatcher(projectRoot) {
6
+ const ide = detectInstalledIde(projectRoot) ?? 'claude-code';
7
+ return { ide, dispatcher: getAdapter(ide).subAgentDispatcher };
8
+ }
9
+ /**
10
+ * When every first-level node declares `files`, refine the level into
11
+ * file-overlap waves so the LLM fans out without serializing on a shared
12
+ * file. Emitted additively; nodes without `files` yield `null` (legacy
13
+ * envelope).
14
+ */
15
+ export function planFirstLevelWaves(dag, levelArr) {
16
+ const descriptors = [...(levelArr[0] ?? [])].map((id) => ({
17
+ id,
18
+ files: dag.nodes.find((n) => n.id === id)?.files ?? []
19
+ }));
20
+ const allHaveFiles = descriptors.every((d) => d.files.length > 0);
21
+ return descriptors.length > 0 && allHaveFiles ? planFileOverlapWaves(descriptors).waves : null;
22
+ }
23
+ /**
24
+ * The CLI runner: emit the per-slice `buildToolCall` descriptor for the first
25
+ * topological level, then return `done`.
26
+ *
27
+ * Returning `done` (not `cancelled`) exercises `runLayeredDag`'s join barrier
28
+ * and cancel-on-fail path end to end; the placeholder `publicSurface` is
29
+ * intentionally empty because the real surface arrives later via
30
+ * `peaks contract write`.
31
+ */
32
+ export function makeCliRunner(args) {
33
+ const { firstLevelIds, dispatcher, ids, emissions } = args;
34
+ return async (spec) => {
35
+ const toolCall = dispatcher.buildToolCall({
36
+ role: spec.role,
37
+ prompt: spec.prompt,
38
+ requestId: ids.rid,
39
+ sessionId: ids.sid
40
+ });
41
+ if (firstLevelIds.has(spec.sliceId)) {
42
+ emissions.toolCalls.push(toolCall);
43
+ emissions.sliceIds.push(spec.sliceId);
44
+ }
45
+ return { status: 'done', publicSurface: { exports: [], types: [], publicSignatures: [] } };
46
+ };
47
+ }
48
+ /**
49
+ * Placeholder contract writer. The CLI writes nothing to disk here — the
50
+ * LLM-side runner does that via `peaks contract write` — but the returned
51
+ * placeholder must stay shape-valid: `contractHash` has to be a real SHA-256
52
+ * hex string computed from the slice identity (`sliceId|sessionId`).
53
+ */
54
+ export function makeNoopWriter(hashContract, sid) {
55
+ return (sliceId) => {
56
+ const partial = {
57
+ sliceId,
58
+ sessionId: sid,
59
+ exports: [],
60
+ types: [],
61
+ publicSignatures: []
62
+ };
63
+ return {
64
+ sliceId,
65
+ sessionId: sid,
66
+ completedAt: new Date(0).toISOString(),
67
+ exports: [],
68
+ types: [],
69
+ publicSignatures: [],
70
+ contractHash: hashContract(partial)
71
+ };
72
+ };
73
+ }
@@ -0,0 +1,3 @@
1
+ import { type ProgramIO } from '../cli-helpers.js';
2
+ import type { DispatchOptions } from './sub-agent-shared.js';
3
+ export declare function runDetachedDispatch(io: ProgramIO, role: string, options: DispatchOptions, asJson: boolean): Promise<void>;
@@ -0,0 +1,58 @@
1
+ // The `--mode detached` short-circuit of `peaks sub-agent dispatch`. It is lazy
2
+ // (the handler is imported on first use) and it returns before the warm-path
3
+ // in-process pipeline runs, so it lives in its own module.
4
+ import { fail, getErrorMessage, ok } from 'peaks-loop-shared/result';
5
+ import { printResult } from '../cli-helpers.js';
6
+ function resolveMaxConcurrent(options) {
7
+ return typeof options.maxConcurrent === 'string' && options.maxConcurrent.length > 0
8
+ ? Number.parseInt(options.maxConcurrent, 10)
9
+ : undefined;
10
+ }
11
+ function reportDetachedResult(io, result, asJson) {
12
+ // The handler's `ok` is the launch outcome (a vendor CLI that is not
13
+ // installed is a failure, not a footnote) — the caller must not
14
+ // re-wrap it as `ok()` unconditionally, which is how `ok: true` with
15
+ // `pid: -1` reached the orchestrator.
16
+ if (result.ok) {
17
+ printResult(io, ok(result.command, result.data, result.warnings ?? [], result.nextActions ?? []), asJson);
18
+ }
19
+ else {
20
+ printResult(io, fail(result.command, 'DISPATCH_DETACHED_SPAWN_FAILED', `Could not launch the vendor CLI for a detached dispatch; nothing was started.`, result.data, result.nextActions ?? []), asJson);
21
+ process.exitCode = 1;
22
+ }
23
+ }
24
+ function reportDetachedError(io, role, error, asJson) {
25
+ printResult(io, fail('sub-agent.dispatch', 'DISPATCH_DETACHED_ERROR', getErrorMessage(error), {
26
+ role,
27
+ toolCall: null,
28
+ dispatchRecordPath: null
29
+ }, [
30
+ 'If --mode detached fails on import, the peaks-loop-internal-runtime package may be missing; reinstall and retry.',
31
+ 'For environments without a vendor CLI on PATH, drop --mode to fall back to the default in-process dry-run.'
32
+ ]), asJson);
33
+ process.exitCode = 1;
34
+ }
35
+ export async function runDetachedDispatch(io, role, options, asJson) {
36
+ try {
37
+ const { dispatch: detachedDispatch } = await import('./sub-agent/detached.js');
38
+ const projectRoot = options.project ?? process.cwd();
39
+ const maxConcurrent = resolveMaxConcurrent(options);
40
+ const result = await detachedDispatch({
41
+ role,
42
+ prompt: typeof options.prompt === 'string' ? options.prompt : '',
43
+ requestId: options.requestId ?? 'unknown-rid',
44
+ mode: 'detached',
45
+ ...(typeof options.vendor === 'string' ? { vendor: options.vendor } : {}),
46
+ project: projectRoot,
47
+ json: asJson,
48
+ ...(options.noThrottle === true ? { noThrottle: true } : {}),
49
+ ...(typeof maxConcurrent === 'number' && Number.isInteger(maxConcurrent) && maxConcurrent > 0
50
+ ? { maxConcurrent }
51
+ : {})
52
+ });
53
+ reportDetachedResult(io, result, asJson);
54
+ }
55
+ catch (error) {
56
+ reportDetachedError(io, role, error, asJson);
57
+ }
58
+ }
@@ -0,0 +1,36 @@
1
+ import { type ProgramIO } from '../cli-helpers.js';
2
+ import { type ArtifactMeta } from '../../services/context/artifact-meta.js';
3
+ import type { ContextGuardDecision } from '../../services/context/context-guard.js';
4
+ import type { getAdapter } from '../../services/ide/ide-registry.js';
5
+ import type { SubAgentToolCall } from '../../services/dispatch/sub-agent-dispatcher.js';
6
+ import { type DispatchOptions } from './sub-agent-shared.js';
7
+ import { type IsolationLease } from './dispatch-isolation-lease.js';
8
+ import { type DispatchRecordWrite } from './dispatch-record-write.js';
9
+ export interface DispatchContext {
10
+ projectRoot: string;
11
+ sid: string;
12
+ rid: string;
13
+ role: string;
14
+ batchId: string;
15
+ asJson: boolean;
16
+ }
17
+ export interface DispatchEnvelopeInput {
18
+ ctx: DispatchContext;
19
+ options: DispatchOptions;
20
+ prompt: string;
21
+ adapter: ReturnType<typeof getAdapter>;
22
+ effectivePrompt: string;
23
+ toolCall: SubAgentToolCall;
24
+ dispatchRecordPath: string;
25
+ counter: DispatchRecordWrite['counter'];
26
+ decision: ContextGuardDecision;
27
+ artifactMeta: ArtifactMeta | null;
28
+ mustLsFilesVerification: {
29
+ path: string;
30
+ exists: boolean;
31
+ files: readonly string[];
32
+ } | null;
33
+ lease: IsolationLease;
34
+ }
35
+ export declare function emitDispatchEnvelope(io: ProgramIO, input: DispatchEnvelopeInput, warnings: string[], asJson: boolean): void;
36
+ export declare function writeDispatchLogEntry(ctx: DispatchContext, dispatchedInBatch: number, forcedAt: string | null): void;
@@ -0,0 +1,104 @@
1
+ // The `peaks sub-agent dispatch` output surface: the envelope `data` record, the
2
+ // `nextActions` list, the `printResult` call and the best-effort log line.
3
+ // Split out of `dispatch-commands.ts` when compressing its long functions pushed
4
+ // that file past the 300-line cap; the bodies are byte-for-byte the originals.
5
+ import { ok } from 'peaks-loop-shared/result';
6
+ import { printResult } from '../cli-helpers.js';
7
+ import { BATCH_LIMIT } from '../../services/dispatch/batch-counter.js';
8
+ import { buildContextImpact } from '../../services/context/artifact-meta.js';
9
+ import { writeLogEntry } from '../../services/log/logger.js';
10
+ function buildDispatchNextActions(counter, dispatchRecordPath) {
11
+ const nextActions = [
12
+ 'Tool call is dry-run; LLM must execute the tool to actually dispatch the sub-agent.',
13
+ 'After dispatching, the sub-agent should call `peaks sub-agent heartbeat --record ' +
14
+ dispatchRecordPath +
15
+ '` periodically.'
16
+ ];
17
+ if (counter.warning) {
18
+ nextActions.push(`Batch is over the RL-1 limit (${BATCH_LIMIT}); consider splitting into multiple batches.`);
19
+ }
20
+ return nextActions;
21
+ }
22
+ function buildDispatchEnvelopeData(input, contextImpact) {
23
+ const { ctx, options, lease } = input;
24
+ const expectedCompletionSeconds = 45;
25
+ const artifactsPublicPaths = typeof options.writeArtifact === 'string' && options.writeArtifact.length > 0
26
+ ? [options.writeArtifact]
27
+ : [];
28
+ const orchestratorVisibleHint = `⏳ Spawning sub-agent via Task tool: ${ctx.role} for rid=${ctx.rid}, batch-id=${ctx.batchId} (ETA ~${expectedCompletionSeconds}s)`;
29
+ return {
30
+ // an envelopeVersion marker so consumers can detect contract
31
+ // changes (the previous #4 dropped `data.prompt` silently).
32
+ envelopeVersion: '2.3.0',
33
+ role: ctx.role,
34
+ ide: input.adapter.subAgentDispatcher.label,
35
+ // Prompts can carry user content (sometimes test credentials /
36
+ // internal URLs) that has no business landing in shell history,
37
+ // log aggregators, or tmux scrollback. The dispatch record on
38
+ // disk (gitignored under .peaks/_sub_agents/) keeps the prompt
39
+ // for the sub-agent to read; CLI stdout stays metadata-only.
40
+ // Surface promptSize + originalPromptSize so the LLM-side
41
+ // runner can reason about the size delta without seeing the
42
+ // content.
43
+ originalPromptSize: input.prompt.length,
44
+ promptSize: input.effectivePrompt.length,
45
+ toolCall: input.toolCall,
46
+ dispatchRecordPath: input.dispatchRecordPath,
47
+ batchId: ctx.batchId,
48
+ dispatchedInBatch: input.counter.count,
49
+ forcedAt: input.decision.forcedAt,
50
+ contextImpact,
51
+ artifactMetas: input.artifactMeta ? [input.artifactMeta] : [],
52
+ orchestratorVisibleHint,
53
+ artifactsPublicPaths,
54
+ expectedCompletionSeconds,
55
+ // Part 2.C: when --isolation worktree, surface the lease
56
+ // handle to the LLM-side runner so it can call
57
+ // `peaks worktree release --lease-id <id>` after the sub-agent
58
+ // finishes (or rely on the next gc pass to clean up). When
59
+ // isolation is not requested, isolation === null.
60
+ isolation: lease.isolationMode,
61
+ leaseId: lease.leaseId,
62
+ worktreePath: lease.worktreePath,
63
+ worktreeBranch: lease.worktreeBranch,
64
+ // F5: anti-fake-green gate envelope surface. When
65
+ // `--must-ls-files <glob>` is supplied this carries the
66
+ // pre-dispatch verification result so the orchestrator can
67
+ // surface "the file exists" (or "missing — block") before
68
+ // spawning the sub-agent. Null when the flag is absent.
69
+ mustLsFilesVerification: input.mustLsFilesVerification
70
+ };
71
+ }
72
+ export function emitDispatchEnvelope(io, input, warnings, asJson) {
73
+ const contextImpact = buildContextImpact({
74
+ promptSize: input.effectivePrompt.length,
75
+ artifactSizes: input.artifactMeta ? [input.artifactMeta.size] : []
76
+ });
77
+ const nextActions = buildDispatchNextActions(input.counter, input.dispatchRecordPath);
78
+ printResult(io, ok('sub-agent.dispatch', buildDispatchEnvelopeData(input, contextImpact), warnings, nextActions), asJson);
79
+ }
80
+ export function writeDispatchLogEntry(ctx, dispatchedInBatch, forcedAt) {
81
+ // Best-effort: writeLogEntry swallows its own errors (logger.ts:155-159),
82
+ // so a full disk or missing ~/.peaks/logs/ dir never blocks the dispatch.
83
+ try {
84
+ writeLogEntry({
85
+ ts: new Date().toISOString(),
86
+ level: 'info',
87
+ command: 'sub-agent.dispatch',
88
+ msg: 'dispatched',
89
+ sessionId: ctx.sid,
90
+ batchId: ctx.batchId,
91
+ data: {
92
+ rid: ctx.rid,
93
+ role: ctx.role,
94
+ batchId: ctx.batchId,
95
+ dispatchedInBatch,
96
+ forcedAt
97
+ }
98
+ });
99
+ }
100
+ catch {
101
+ // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
102
+ /* best-effort */
103
+ }
104
+ }
@@ -1,3 +1,30 @@
1
+ /**
2
+ * The `--from-dag` path of `peaks sub-agent dispatch`.
3
+ *
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.
10
+ *
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
+ *
15
+ * 1.2 MVP scope: this dispatches the FIRST topological level synchronously
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
+ *
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
+ */
1
28
  import { type ProgramIO } from '../cli-helpers.js';
2
29
  import { type DispatchOptions } from './sub-agent-shared.js';
3
30
  export declare function runDispatchFromDag(role: string, options: DispatchOptions, asJson: boolean, io: ProgramIO): Promise<void>;