peaks-loop 4.1.3 → 4.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (402) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +56 -0
  3. package/README-en.md +1 -1
  4. package/README.md +1 -1
  5. package/dist/cli/commands/asset-command-shared.d.ts +12 -0
  6. package/dist/cli/commands/asset-command-shared.js +45 -0
  7. package/dist/cli/commands/asset-commands.d.ts +6 -1
  8. package/dist/cli/commands/asset-commands.js +11 -372
  9. package/dist/cli/commands/asset-crystallize-command.d.ts +3 -0
  10. package/dist/cli/commands/asset-crystallize-command.js +60 -0
  11. package/dist/cli/commands/asset-crystallize-payload.d.ts +47 -0
  12. package/dist/cli/commands/asset-crystallize-payload.js +85 -0
  13. package/dist/cli/commands/asset-crystallize-runner.d.ts +3 -0
  14. package/dist/cli/commands/asset-crystallize-runner.js +133 -0
  15. package/dist/cli/commands/asset-dispose-command.d.ts +3 -0
  16. package/dist/cli/commands/asset-dispose-command.js +99 -0
  17. package/dist/cli/commands/asset-status-command.d.ts +3 -0
  18. package/dist/cli/commands/asset-status-command.js +100 -0
  19. package/dist/cli/commands/baseline-audit-command.d.ts +3 -0
  20. package/dist/cli/commands/baseline-audit-command.js +64 -0
  21. package/dist/cli/commands/baseline-command-shared.d.ts +23 -0
  22. package/dist/cli/commands/baseline-command-shared.js +39 -0
  23. package/dist/cli/commands/baseline-commands.js +33 -313
  24. package/dist/cli/commands/baseline-freeze-commands.d.ts +4 -0
  25. package/dist/cli/commands/baseline-freeze-commands.js +81 -0
  26. package/dist/cli/commands/baseline-guard-command.d.ts +3 -0
  27. package/dist/cli/commands/baseline-guard-command.js +52 -0
  28. package/dist/cli/commands/baseline-read-commands.d.ts +5 -0
  29. package/dist/cli/commands/baseline-read-commands.js +72 -0
  30. package/dist/cli/commands/baseline-rollback-commands.d.ts +4 -0
  31. package/dist/cli/commands/baseline-rollback-commands.js +88 -0
  32. package/dist/cli/commands/classify-downgrade-command.d.ts +9 -0
  33. package/dist/cli/commands/classify-downgrade-command.js +21 -0
  34. package/dist/cli/commands/classify-run-command.d.ts +9 -0
  35. package/dist/cli/commands/classify-run-command.js +73 -0
  36. package/dist/cli/commands/classify-signals.d.ts +5 -0
  37. package/dist/cli/commands/classify-signals.js +104 -0
  38. package/dist/cli/commands/code-emit-handoff-command.js +40 -3
  39. package/dist/cli/commands/code-gate-step-08-command.js +25 -9
  40. package/dist/cli/commands/codegraph-command-options.d.ts +22 -0
  41. package/dist/cli/commands/codegraph-command-options.js +22 -0
  42. package/dist/cli/commands/codegraph-commands.d.ts +2 -2
  43. package/dist/cli/commands/codegraph-commands.js +14 -397
  44. package/dist/cli/commands/codegraph-config-restore-command.d.ts +3 -0
  45. package/dist/cli/commands/codegraph-config-restore-command.js +200 -0
  46. package/dist/cli/commands/codegraph-proxy-commands.d.ts +10 -0
  47. package/dist/cli/commands/codegraph-proxy-commands.js +159 -0
  48. package/dist/cli/commands/codegraph-repair-commands.d.ts +3 -0
  49. package/dist/cli/commands/codegraph-repair-commands.js +94 -0
  50. package/dist/cli/commands/codegraph-status-command.d.ts +1 -1
  51. package/dist/cli/commands/codegraph-status-command.js +27 -214
  52. package/dist/cli/commands/codegraph-status-integrity.d.ts +44 -0
  53. package/dist/cli/commands/codegraph-status-integrity.js +121 -0
  54. package/dist/cli/commands/codegraph-status-json.d.ts +5 -0
  55. package/dist/cli/commands/codegraph-status-json.js +127 -0
  56. package/dist/cli/commands/container-command-shared.d.ts +60 -0
  57. package/dist/cli/commands/container-command-shared.js +52 -0
  58. package/dist/cli/commands/container-commands.d.ts +1 -1
  59. package/dist/cli/commands/container-commands.js +4 -216
  60. package/dist/cli/commands/container-release-command.d.ts +3 -0
  61. package/dist/cli/commands/container-release-command.js +105 -0
  62. package/dist/cli/commands/container-spawn-command.d.ts +3 -0
  63. package/dist/cli/commands/container-spawn-command.js +148 -0
  64. package/dist/cli/commands/context-check-command.d.ts +3 -0
  65. package/dist/cli/commands/context-check-command.js +81 -0
  66. package/dist/cli/commands/context-commands.d.ts +2 -7
  67. package/dist/cli/commands/context-commands.js +6 -276
  68. package/dist/cli/commands/context-layer-command.d.ts +3 -0
  69. package/dist/cli/commands/context-layer-command.js +34 -0
  70. package/dist/cli/commands/context-layer-fetchers.d.ts +15 -0
  71. package/dist/cli/commands/context-layer-fetchers.js +162 -0
  72. package/dist/cli/commands/context-status-command.d.ts +17 -0
  73. package/dist/cli/commands/context-status-command.js +41 -0
  74. package/dist/cli/commands/contract-write-command.d.ts +3 -0
  75. package/dist/cli/commands/contract-write-command.js +144 -0
  76. package/dist/cli/commands/core/doctor-bindings.d.ts +17 -0
  77. package/dist/cli/commands/core/doctor-bindings.js +30 -0
  78. package/dist/cli/commands/core/doctor-command.d.ts +4 -18
  79. package/dist/cli/commands/core/doctor-command.js +2 -323
  80. package/dist/cli/commands/core/doctor-logs.d.ts +8 -0
  81. package/dist/cli/commands/core/doctor-logs.js +32 -0
  82. package/dist/cli/commands/core/doctor-probes.d.ts +3 -0
  83. package/dist/cli/commands/core/doctor-probes.js +55 -0
  84. package/dist/cli/commands/core/doctor-run-command.d.ts +12 -0
  85. package/dist/cli/commands/core/doctor-run-command.js +172 -0
  86. package/dist/cli/commands/core/doctor-summary.d.ts +7 -0
  87. package/dist/cli/commands/core/doctor-summary.js +39 -0
  88. package/dist/cli/commands/core/memory-command-shared.d.ts +25 -0
  89. package/dist/cli/commands/core/memory-command-shared.js +20 -0
  90. package/dist/cli/commands/core/memory-command.d.ts +1 -1
  91. package/dist/cli/commands/core/memory-command.js +6 -227
  92. package/dist/cli/commands/core/memory-delegated-verbs.d.ts +4 -0
  93. package/dist/cli/commands/core/memory-delegated-verbs.js +178 -0
  94. package/dist/cli/commands/core/memory-extract-command.d.ts +3 -0
  95. package/dist/cli/commands/core/memory-extract-command.js +90 -0
  96. package/dist/cli/commands/core/memory-sync-command.d.ts +3 -0
  97. package/dist/cli/commands/core/memory-sync-command.js +38 -0
  98. package/dist/cli/commands/core/session-command.d.ts +1 -1
  99. package/dist/cli/commands/core/session-command.js +12 -206
  100. package/dist/cli/commands/core/session-info-command.d.ts +3 -0
  101. package/dist/cli/commands/core/session-info-command.js +142 -0
  102. package/dist/cli/commands/core/session-verb-commands.d.ts +5 -0
  103. package/dist/cli/commands/core/session-verb-commands.js +58 -0
  104. package/dist/cli/commands/core/standards-command.d.ts +1 -24
  105. package/dist/cli/commands/core/standards-command.js +33 -201
  106. package/dist/cli/commands/core/standards-init-command.d.ts +3 -0
  107. package/dist/cli/commands/core/standards-init-command.js +87 -0
  108. package/dist/cli/commands/core/standards-lint.d.ts +24 -0
  109. package/dist/cli/commands/core/standards-lint.js +57 -0
  110. package/dist/cli/commands/core/standards-migrate-command.d.ts +3 -0
  111. package/dist/cli/commands/core/standards-migrate-command.js +57 -0
  112. package/dist/cli/commands/cron-scheduler-commands.d.ts +5 -1
  113. package/dist/cli/commands/cron-scheduler-commands.js +36 -206
  114. package/dist/cli/commands/cron-scheduler-run-once-command.d.ts +7 -0
  115. package/dist/cli/commands/cron-scheduler-run-once-command.js +35 -0
  116. package/dist/cli/commands/cron-scheduler-shared.d.ts +6 -0
  117. package/dist/cli/commands/cron-scheduler-shared.js +48 -0
  118. package/dist/cli/commands/cron-scheduler-start-command.d.ts +7 -0
  119. package/dist/cli/commands/cron-scheduler-start-command.js +65 -0
  120. package/dist/cli/commands/cron-scheduler-status-command.d.ts +7 -0
  121. package/dist/cli/commands/cron-scheduler-status-command.js +46 -0
  122. package/dist/cli/commands/cron-scheduler-stop-command.d.ts +7 -0
  123. package/dist/cli/commands/cron-scheduler-stop-command.js +61 -0
  124. package/dist/cli/commands/dispatch-dag-envelope.d.ts +41 -0
  125. package/dist/cli/commands/dispatch-dag-envelope.js +49 -0
  126. package/dist/cli/commands/dispatch-dag-failure.d.ts +18 -0
  127. package/dist/cli/commands/dispatch-dag-failure.js +16 -0
  128. package/dist/cli/commands/dispatch-dag-preflight.d.ts +51 -0
  129. package/dist/cli/commands/dispatch-dag-preflight.js +105 -0
  130. package/dist/cli/commands/dispatch-dag-runners.d.ts +48 -0
  131. package/dist/cli/commands/dispatch-dag-runners.js +73 -0
  132. package/dist/cli/commands/dispatch-from-dag.d.ts +27 -0
  133. package/dist/cli/commands/dispatch-from-dag.js +87 -257
  134. package/dist/cli/commands/final-review-command-envelopes.d.ts +44 -0
  135. package/dist/cli/commands/final-review-command-envelopes.js +100 -0
  136. package/dist/cli/commands/final-review-command-shared.d.ts +52 -0
  137. package/dist/cli/commands/final-review-command-shared.js +35 -0
  138. package/dist/cli/commands/final-review-commands.d.ts +7 -27
  139. package/dist/cli/commands/final-review-commands.js +13 -240
  140. package/dist/cli/commands/final-review-prepare-command.d.ts +3 -0
  141. package/dist/cli/commands/final-review-prepare-command.js +200 -0
  142. package/dist/cli/commands/governance-classify-contract-commands.d.ts +23 -9
  143. package/dist/cli/commands/governance-classify-contract-commands.js +26 -269
  144. package/dist/cli/commands/hooks-command-shared.d.ts +42 -0
  145. package/dist/cli/commands/hooks-command-shared.js +32 -0
  146. package/dist/cli/commands/hooks-commands.d.ts +20 -0
  147. package/dist/cli/commands/hooks-commands.js +75 -309
  148. package/dist/cli/commands/hooks-install-envelopes.d.ts +6 -0
  149. package/dist/cli/commands/hooks-install-envelopes.js +144 -0
  150. package/dist/cli/commands/hooks-status-command.d.ts +3 -0
  151. package/dist/cli/commands/hooks-status-command.js +93 -0
  152. package/dist/cli/commands/hooks-uninstall-command.d.ts +3 -0
  153. package/dist/cli/commands/hooks-uninstall-command.js +43 -0
  154. package/dist/cli/commands/loop-command-shared.d.ts +31 -0
  155. package/dist/cli/commands/loop-command-shared.js +15 -0
  156. package/dist/cli/commands/loop-commands.d.ts +12 -17
  157. package/dist/cli/commands/loop-commands.js +56 -238
  158. package/dist/cli/commands/loop-export-command.d.ts +3 -0
  159. package/dist/cli/commands/loop-export-command.js +73 -0
  160. package/dist/cli/commands/loop-goal-compose-command.d.ts +3 -0
  161. package/dist/cli/commands/loop-goal-compose-command.js +36 -0
  162. package/dist/cli/commands/loop-import-command.d.ts +3 -0
  163. package/dist/cli/commands/loop-import-command.js +86 -0
  164. package/dist/cli/commands/loop-placeholder-commands.d.ts +3 -0
  165. package/dist/cli/commands/loop-placeholder-commands.js +52 -0
  166. package/dist/cli/commands/memory-command-shared.d.ts +59 -0
  167. package/dist/cli/commands/memory-command-shared.js +39 -0
  168. package/dist/cli/commands/memory-commands.d.ts +6 -79
  169. package/dist/cli/commands/memory-commands.js +19 -309
  170. package/dist/cli/commands/memory-ingest-command.d.ts +3 -0
  171. package/dist/cli/commands/memory-ingest-command.js +50 -0
  172. package/dist/cli/commands/memory-list-command.d.ts +16 -0
  173. package/dist/cli/commands/memory-list-command.js +129 -0
  174. package/dist/cli/commands/memory-reindex-command.d.ts +9 -0
  175. package/dist/cli/commands/memory-reindex-command.js +78 -0
  176. package/dist/cli/commands/memory-rotate-command.d.ts +3 -0
  177. package/dist/cli/commands/memory-rotate-command.js +55 -0
  178. package/dist/cli/commands/memory-search-command.d.ts +7 -0
  179. package/dist/cli/commands/memory-search-command.js +46 -0
  180. package/dist/cli/commands/openspec-archive-command.d.ts +3 -0
  181. package/dist/cli/commands/openspec-archive-command.js +55 -0
  182. package/dist/cli/commands/openspec-command-shared.d.ts +62 -0
  183. package/dist/cli/commands/openspec-command-shared.js +135 -0
  184. package/dist/cli/commands/openspec-commands.d.ts +1 -1
  185. package/dist/cli/commands/openspec-commands.js +33 -306
  186. package/dist/cli/commands/openspec-from-doctor-command.d.ts +3 -0
  187. package/dist/cli/commands/openspec-from-doctor-command.js +66 -0
  188. package/dist/cli/commands/openspec-init-command.d.ts +3 -0
  189. package/dist/cli/commands/openspec-init-command.js +49 -0
  190. package/dist/cli/commands/openspec-list-command.d.ts +3 -0
  191. package/dist/cli/commands/openspec-list-command.js +27 -0
  192. package/dist/cli/commands/openspec-render-command.d.ts +3 -0
  193. package/dist/cli/commands/openspec-render-command.js +33 -0
  194. package/dist/cli/commands/openspec-show-command.d.ts +3 -0
  195. package/dist/cli/commands/openspec-show-command.js +33 -0
  196. package/dist/cli/commands/openspec-to-rd-command.d.ts +3 -0
  197. package/dist/cli/commands/openspec-to-rd-command.js +33 -0
  198. package/dist/cli/commands/openspec-validate-command.d.ts +3 -0
  199. package/dist/cli/commands/openspec-validate-command.js +45 -0
  200. package/dist/cli/commands/playwright-browser-command.d.ts +8 -0
  201. package/dist/cli/commands/playwright-browser-command.js +61 -0
  202. package/dist/cli/commands/playwright-commands.d.ts +10 -62
  203. package/dist/cli/commands/playwright-commands.js +77 -400
  204. package/dist/cli/commands/playwright-envelope.d.ts +8 -0
  205. package/dist/cli/commands/playwright-envelope.js +29 -0
  206. package/dist/cli/commands/playwright-ls-stop-commands.d.ts +4 -0
  207. package/dist/cli/commands/playwright-ls-stop-commands.js +74 -0
  208. package/dist/cli/commands/playwright-session-store.d.ts +65 -0
  209. package/dist/cli/commands/playwright-session-store.js +189 -0
  210. package/dist/cli/commands/project-commands.d.ts +19 -0
  211. package/dist/cli/commands/project-commands.js +98 -259
  212. package/dist/cli/commands/project-context-command.d.ts +3 -0
  213. package/dist/cli/commands/project-context-command.js +44 -0
  214. package/dist/cli/commands/project-dashboard-command.d.ts +3 -0
  215. package/dist/cli/commands/project-dashboard-command.js +74 -0
  216. package/dist/cli/commands/project-knowledge-command.d.ts +3 -0
  217. package/dist/cli/commands/project-knowledge-command.js +48 -0
  218. package/dist/cli/commands/project-memories-show-command.d.ts +3 -0
  219. package/dist/cli/commands/project-memories-show-command.js +87 -0
  220. package/dist/cli/commands/project-memory-index-command.d.ts +3 -0
  221. package/dist/cli/commands/project-memory-index-command.js +31 -0
  222. package/dist/cli/commands/qa-archive-screenshots-command.d.ts +3 -0
  223. package/dist/cli/commands/qa-archive-screenshots-command.js +53 -0
  224. package/dist/cli/commands/qa-commands.d.ts +14 -87
  225. package/dist/cli/commands/qa-commands.js +17 -315
  226. package/dist/cli/commands/qa-context-prestep.d.ts +1 -0
  227. package/dist/cli/commands/qa-context-prestep.js +34 -0
  228. package/dist/cli/commands/qa-run-command.d.ts +3 -0
  229. package/dist/cli/commands/qa-run-command.js +105 -0
  230. package/dist/cli/commands/qa-run-options.d.ts +23 -0
  231. package/dist/cli/commands/qa-run-options.js +31 -0
  232. package/dist/cli/commands/qa-run-slice.d.ts +41 -0
  233. package/dist/cli/commands/qa-run-slice.js +145 -0
  234. package/dist/cli/commands/release-canary-command.d.ts +28 -0
  235. package/dist/cli/commands/release-canary-command.js +129 -0
  236. package/dist/cli/commands/release-command-shared.d.ts +13 -0
  237. package/dist/cli/commands/release-command-shared.js +18 -0
  238. package/dist/cli/commands/release-commands.d.ts +10 -18
  239. package/dist/cli/commands/release-commands.js +25 -298
  240. package/dist/cli/commands/release-done-command.d.ts +3 -0
  241. package/dist/cli/commands/release-done-command.js +64 -0
  242. package/dist/cli/commands/release-hotfix-command.d.ts +3 -0
  243. package/dist/cli/commands/release-hotfix-command.js +50 -0
  244. package/dist/cli/commands/release-plan-command.d.ts +3 -0
  245. package/dist/cli/commands/release-plan-command.js +33 -0
  246. package/dist/cli/commands/release-precheck-command.d.ts +3 -0
  247. package/dist/cli/commands/release-precheck-command.js +28 -0
  248. package/dist/cli/commands/release-promote-command.d.ts +3 -0
  249. package/dist/cli/commands/release-promote-command.js +34 -0
  250. package/dist/cli/commands/release-rollback-command.d.ts +3 -0
  251. package/dist/cli/commands/release-rollback-command.js +33 -0
  252. package/dist/cli/commands/release-watch-command.d.ts +3 -0
  253. package/dist/cli/commands/release-watch-command.js +44 -0
  254. package/dist/cli/commands/sediment-argv-flags.d.ts +54 -0
  255. package/dist/cli/commands/sediment-argv-flags.js +116 -0
  256. package/dist/cli/commands/sediment-command-shared.d.ts +15 -0
  257. package/dist/cli/commands/sediment-command-shared.js +5 -0
  258. package/dist/cli/commands/sediment-commands.d.ts +35 -59
  259. package/dist/cli/commands/sediment-commands.js +36 -590
  260. package/dist/cli/commands/sediment-pool-commands.d.ts +9 -0
  261. package/dist/cli/commands/sediment-pool-commands.js +185 -0
  262. package/dist/cli/commands/sediment-query-commands.d.ts +4 -0
  263. package/dist/cli/commands/sediment-query-commands.js +94 -0
  264. package/dist/cli/commands/sediment-release-commands.d.ts +8 -0
  265. package/dist/cli/commands/sediment-release-commands.js +232 -0
  266. package/dist/cli/commands/sop-advance-command.d.ts +3 -0
  267. package/dist/cli/commands/sop-advance-command.js +160 -0
  268. package/dist/cli/commands/sop-check-command.d.ts +3 -0
  269. package/dist/cli/commands/sop-check-command.js +44 -0
  270. package/dist/cli/commands/sop-command-shared.d.ts +23 -0
  271. package/dist/cli/commands/sop-command-shared.js +18 -0
  272. package/dist/cli/commands/sop-commands.d.ts +15 -1
  273. package/dist/cli/commands/sop-commands.js +26 -240
  274. package/dist/cli/commands/sop-init-command.d.ts +3 -0
  275. package/dist/cli/commands/sop-init-command.js +51 -0
  276. package/dist/cli/commands/sop-lint-command.d.ts +3 -0
  277. package/dist/cli/commands/sop-lint-command.js +64 -0
  278. package/dist/cli/commands/sop-register-command.d.ts +3 -0
  279. package/dist/cli/commands/sop-register-command.js +48 -0
  280. package/dist/cli/commands/sop-registry-command.d.ts +3 -0
  281. package/dist/cli/commands/sop-registry-command.js +30 -0
  282. package/dist/cli/commands/statusline-command-shared.d.ts +73 -0
  283. package/dist/cli/commands/statusline-command-shared.js +90 -0
  284. package/dist/cli/commands/statusline-commands.d.ts +1 -19
  285. package/dist/cli/commands/statusline-commands.js +48 -287
  286. package/dist/cli/commands/statusline-compact-command.d.ts +4 -0
  287. package/dist/cli/commands/statusline-compact-command.js +54 -0
  288. package/dist/cli/commands/statusline-install-command.d.ts +3 -0
  289. package/dist/cli/commands/statusline-install-command.js +48 -0
  290. package/dist/cli/commands/statusline-render-command.d.ts +9 -0
  291. package/dist/cli/commands/statusline-render-command.js +55 -0
  292. package/dist/cli/commands/statusline-status-command.d.ts +3 -0
  293. package/dist/cli/commands/statusline-status-command.js +23 -0
  294. package/dist/cli/commands/statusline-uninstall-command.d.ts +3 -0
  295. package/dist/cli/commands/statusline-uninstall-command.js +23 -0
  296. package/dist/cli/commands/test-command-run-helpers.d.ts +27 -0
  297. package/dist/cli/commands/test-command-run-helpers.js +73 -0
  298. package/dist/cli/commands/test-command-runner-resolution.d.ts +57 -0
  299. package/dist/cli/commands/test-command-runner-resolution.js +183 -0
  300. package/dist/cli/commands/test-commands.d.ts +8 -56
  301. package/dist/cli/commands/test-commands.js +26 -249
  302. package/dist/cli/commands/vm-command-shared.d.ts +23 -0
  303. package/dist/cli/commands/vm-command-shared.js +23 -0
  304. package/dist/cli/commands/vm-commands.d.ts +1 -28
  305. package/dist/cli/commands/vm-commands.js +36 -270
  306. package/dist/cli/commands/vm-hypervisor-runtime.d.ts +15 -0
  307. package/dist/cli/commands/vm-hypervisor-runtime.js +64 -0
  308. package/dist/cli/commands/vm-release-command.d.ts +5 -0
  309. package/dist/cli/commands/vm-release-command.js +101 -0
  310. package/dist/cli/commands/vm-spawn-command.d.ts +5 -0
  311. package/dist/cli/commands/vm-spawn-command.js +177 -0
  312. package/dist/cli/commands/web-command-shared.d.ts +12 -0
  313. package/dist/cli/commands/web-command-shared.js +30 -0
  314. package/dist/cli/commands/web-commands.d.ts +7 -14
  315. package/dist/cli/commands/web-commands.js +6 -314
  316. package/dist/cli/commands/web-install-command.d.ts +10 -0
  317. package/dist/cli/commands/web-install-command.js +116 -0
  318. package/dist/cli/commands/web-lifecycle-commands.d.ts +9 -30
  319. package/dist/cli/commands/web-lifecycle-commands.js +14 -322
  320. package/dist/cli/commands/web-login-command.d.ts +14 -0
  321. package/dist/cli/commands/web-login-command.js +189 -0
  322. package/dist/cli/commands/web-op-payload.d.ts +22 -0
  323. package/dist/cli/commands/web-op-payload.js +89 -0
  324. package/dist/cli/commands/web-op-refusals.d.ts +37 -0
  325. package/dist/cli/commands/web-op-refusals.js +73 -0
  326. package/dist/cli/commands/web-op-runner.d.ts +14 -0
  327. package/dist/cli/commands/web-op-runner.js +166 -0
  328. package/dist/cli/commands/web-status-command.d.ts +4 -0
  329. package/dist/cli/commands/web-status-command.js +32 -0
  330. package/dist/cli/commands/web-stop-command.d.ts +10 -0
  331. package/dist/cli/commands/web-stop-command.js +59 -0
  332. package/dist/cli/commands/web-verb-specs.d.ts +18 -0
  333. package/dist/cli/commands/web-verb-specs.js +66 -0
  334. package/dist/cli/commands/workflow-command-shared.d.ts +102 -0
  335. package/dist/cli/commands/workflow-command-shared.js +74 -0
  336. package/dist/cli/commands/workflow-graph-commands.d.ts +3 -0
  337. package/dist/cli/commands/workflow-graph-commands.js +73 -0
  338. package/dist/cli/commands/workflow-init-command.d.ts +3 -0
  339. package/dist/cli/commands/workflow-init-command.js +68 -0
  340. package/dist/cli/commands/workflow-lifecycle-commands.d.ts +9 -59
  341. package/dist/cli/commands/workflow-lifecycle-commands.js +14 -348
  342. package/dist/cli/commands/workflow-node-commands.d.ts +3 -0
  343. package/dist/cli/commands/workflow-node-commands.js +154 -0
  344. package/dist/cli/commands/workflow-terminalize-command.d.ts +3 -0
  345. package/dist/cli/commands/workflow-terminalize-command.js +56 -0
  346. package/dist/services/code/auto-compact-artifacts.d.ts +54 -0
  347. package/dist/services/code/auto-compact-artifacts.js +135 -0
  348. package/dist/services/code/auto-compact-attempt.d.ts +46 -0
  349. package/dist/services/code/auto-compact-attempt.js +88 -0
  350. package/dist/services/code/auto-compact-decision.d.ts +74 -0
  351. package/dist/services/code/auto-compact-decision.js +149 -0
  352. package/dist/services/code/auto-compact-dispatch-gate.d.ts +36 -0
  353. package/dist/services/code/auto-compact-dispatch-gate.js +86 -0
  354. package/dist/services/code/auto-compact-envelopes.d.ts +33 -0
  355. package/dist/services/code/auto-compact-envelopes.js +134 -0
  356. package/dist/services/code/auto-compact-history.d.ts +46 -0
  357. package/dist/services/code/auto-compact-history.js +17 -0
  358. package/dist/services/code/auto-compact-orchestrator.d.ts +11 -240
  359. package/dist/services/code/auto-compact-orchestrator.js +165 -686
  360. package/dist/services/code/auto-compact-run-types.d.ts +123 -0
  361. package/dist/services/code/auto-compact-run-types.js +1 -0
  362. package/dist/services/code/emit-handoff.d.ts +35 -1
  363. package/dist/services/code/emit-handoff.js +128 -7
  364. package/dist/services/code/step-08-gate.d.ts +28 -19
  365. package/dist/services/code/step-08-gate.js +92 -35
  366. package/dist/services/config/config-coercion.d.ts +7 -0
  367. package/dist/services/config/config-coercion.js +156 -0
  368. package/dist/services/config/config-file-io.d.ts +11 -0
  369. package/dist/services/config/config-file-io.js +61 -0
  370. package/dist/services/config/config-get.d.ts +2 -0
  371. package/dist/services/config/config-get.js +36 -0
  372. package/dist/services/config/config-global-loader.d.ts +15 -0
  373. package/dist/services/config/config-global-loader.js +111 -0
  374. package/dist/services/config/config-nested-path.d.ts +3 -0
  375. package/dist/services/config/config-nested-path.js +53 -0
  376. package/dist/services/config/config-primitives.d.ts +16 -0
  377. package/dist/services/config/config-primitives.js +24 -0
  378. package/dist/services/config/config-service.d.ts +9 -33
  379. package/dist/services/config/config-service.js +16 -665
  380. package/dist/services/config/config-validation.d.ts +19 -0
  381. package/dist/services/config/config-validation.js +152 -0
  382. package/dist/services/config/config-workspace.d.ts +10 -0
  383. package/dist/services/config/config-workspace.js +158 -0
  384. package/dist/services/skills/hooks-settings-deny-list.d.ts +61 -0
  385. package/dist/services/skills/hooks-settings-deny-list.js +173 -0
  386. package/dist/services/skills/hooks-settings-envelopes.d.ts +20 -0
  387. package/dist/services/skills/hooks-settings-envelopes.js +79 -0
  388. package/dist/services/skills/hooks-settings-file-shape.d.ts +43 -0
  389. package/dist/services/skills/hooks-settings-file-shape.js +207 -0
  390. package/dist/services/skills/hooks-settings-paths.d.ts +34 -0
  391. package/dist/services/skills/hooks-settings-paths.js +75 -0
  392. package/dist/services/skills/hooks-settings-read-installed.d.ts +39 -0
  393. package/dist/services/skills/hooks-settings-read-installed.js +60 -0
  394. package/dist/services/skills/hooks-settings-service.d.ts +12 -212
  395. package/dist/services/skills/hooks-settings-service.js +71 -657
  396. package/dist/services/skills/hooks-settings-types.d.ts +139 -0
  397. package/dist/services/skills/hooks-settings-types.js +1 -0
  398. package/dist/services/workspace/claude-settings-template-merge.d.ts +89 -0
  399. package/dist/services/workspace/claude-settings-template-merge.js +243 -0
  400. package/dist/services/workspace/claude-settings-template.d.ts +29 -87
  401. package/dist/services/workspace/claude-settings-template.js +81 -236
  402. package/package.json +5 -5
@@ -32,180 +32,17 @@
32
32
  * peaks test --no-cache — pass --no-cache to the framework
33
33
  * peaks test --passthrough — do NOT override the consumer's argv
34
34
  * peaks test --framework <name> — force a specific framework
35
+ *
36
+ * The runner resolution and this file's spawn site live here; the action body
37
+ * it dispatches to lives in `test-command-run.ts` and the argv/probe rules in
38
+ * `test-command-runner-resolution.ts`.
35
39
  */
36
40
  import { spawn } from 'node:child_process';
37
- import { existsSync, readFileSync } from 'node:fs';
38
- import { dirname, join, resolve } from 'node:path';
39
- import { resolveCanonicalProjectRoot } from '../../services/config/config-service.js';
41
+ import { join } from 'node:path';
40
42
  import { getErrorMessage } from '../cli-helpers.js';
41
- import { clearTestCache, detectTestFramework } from '../../services/test-cache/test-cache-service.js';
42
- const FRAMEWORKS = ['jest', 'vitest', 'mocha'];
43
- /**
44
- * Build the argv for the underlying test runner. This is the SINGLE
45
- * source of truth for "peaks test drops --no-cache from the
46
- * consumer's script" (G7 / NG7). `--cache` is always passed
47
- * unless the user explicitly opts in to `--no-cache` or `--passthrough`.
48
- */
49
- export function buildRunnerArgv(framework, patterns, options) {
50
- if (options.passthrough) {
51
- // Caller has explicitly chosen to honor the consumer's argv;
52
- // we still pass the patterns so the runner filters to them.
53
- if (framework === 'jest')
54
- return [...patterns, '--no-cache'];
55
- if (framework === 'vitest')
56
- return ['run', ...patterns];
57
- return [...patterns];
58
- }
59
- if (framework === 'jest') {
60
- const argv = [...patterns];
61
- if (options.all)
62
- argv.push('--passWithNoTests');
63
- if (options.changed)
64
- argv.push('--changedSince=HEAD');
65
- // Commander's `.option('--no-cache')` sets `opts.cache` (BASE name) to
66
- // `false` when the flag is passed; `opts.cache` is `true` by default.
67
- // The default-mode invariant (G7/NG7) is `--cache`; the explicit
68
- // override is `--no-cache`. Inverted from the previous wording
69
- // because `options = {}` made the read side `!== true` and silently
70
- // flipped every default-mode jest/vitest run to `--no-cache`.
71
- if (options.cache === false)
72
- argv.push('--no-cache');
73
- else
74
- argv.push('--cache');
75
- return argv;
76
- }
77
- if (framework === 'vitest') {
78
- const argv = ['run', ...patterns];
79
- if (options.changed)
80
- argv.push('--changed');
81
- if (options.cache === false)
82
- argv.push('--no-cache');
83
- else
84
- argv.push('--cache');
85
- return argv;
86
- }
87
- // mocha — no built-in --cache flag; we just pass the patterns.
88
- return [...patterns];
89
- }
90
- /** `<pkg>/package.json#bin`, resolved to the absolute JS entry it points at. */
91
- function readBinEntry(pkgJsonPath, name, read) {
92
- let pkg = {};
93
- try {
94
- pkg = JSON.parse(read(pkgJsonPath));
95
- }
96
- catch {
97
- // Not fatal: fall through to the `.bin` shim below, and the not-found
98
- // error still names this package.json in `searched`.
99
- pkg = {};
100
- }
101
- const rel = typeof pkg.bin === 'string' ? pkg.bin : pkg.bin?.[name];
102
- if (typeof rel !== 'string' || rel.length === 0)
103
- return null;
104
- return resolve(dirname(pkgJsonPath), rel);
105
- }
106
- /**
107
- * Convert a resolved executable + argv into a form `spawn` can launch with
108
- * `shell: false`.
109
- *
110
- * A Windows `.cmd`/`.bat` shim cannot be spawned directly (spawn → EINVAL).
111
- * The obvious fix, `spawn(shim, argv, { shell: true })`, re-splits argv inside
112
- * cmd.exe: a pattern `tests/a b/x.test.ts` arrives as THREE args (measured).
113
- * Invoking cmd.exe ourselves with `/d /s /c` keeps argv intact.
114
- */
115
- function toSpawnable(exe, argv, platform, env) {
116
- if (platform === 'win32' && /\.(?:cmd|bat)$/i.test(exe)) {
117
- return { command: env.ComSpec ?? 'cmd.exe', args: ['/d', '/s', '/c', exe, ...argv] };
118
- }
119
- return { command: exe, args: argv };
120
- }
121
- /** Spawnable PATH hits, in preference order (`where`/`which` avoided so this
122
- * stays in-process and testable). */
123
- function resolveFromPath(name, platform, env, exists) {
124
- const dirs = (env.PATH ?? '').split(platform === 'win32' ? ';' : ':').filter((d) => d.length > 0);
125
- const exts = platform === 'win32' ? ['.exe', '.cmd', '.bat', ''] : [''];
126
- for (const dir of dirs) {
127
- for (const ext of exts) {
128
- const candidate = join(dir, name + ext);
129
- if (exists(candidate))
130
- return candidate;
131
- }
132
- }
133
- return null;
134
- }
135
- /**
136
- * Resolve the consumer project's LOCAL runner, and the form of it that
137
- * `spawn` can actually launch on this platform.
138
- *
139
- * Probed, in order (every probe is reported when nothing is found):
140
- * 1. `<root>/node_modules/.bin/<runner>` (+ `.cmd`/`.exe` on Windows) —
141
- * the project-local runner the command documents.
142
- * 2. `<root>/node_modules/<runner>/package.json` → its `bin` JS entry.
143
- * 3. PATH — last resort only; the caller prints a visible notice.
144
- *
145
- * Between 1 and 2 the **JS entry** wins: `spawn` runs it as
146
- * `node <entry> …`, which is identical on Windows and POSIX and never
147
- * routes argv through a shell. The `.cmd` shim is only a fallback because
148
- * it needs cmd.exe to launch it (see `toSpawnable`).
149
- */
150
- export function resolveRunner(framework, argv, projectRoot, deps = {}) {
151
- const platform = deps.platform ?? process.platform;
152
- const exists = deps.existsSync ?? existsSync;
153
- const read = deps.readFileSync ?? ((path) => readFileSync(path, 'utf8'));
154
- const env = deps.env ?? process.env;
155
- const nodeExec = deps.nodeExecPath ?? process.execPath;
156
- const searched = [];
157
- // 1. Project-local `.bin` shim.
158
- const binDir = join(projectRoot, 'node_modules', '.bin');
159
- const shimExts = platform === 'win32' ? ['.cmd', '.exe'] : [''];
160
- let shim = null;
161
- for (const ext of shimExts) {
162
- const candidate = join(binDir, framework + ext);
163
- searched.push(candidate);
164
- if (shim === null && exists(candidate))
165
- shim = candidate;
166
- }
167
- // 2. Project-local package entry.
168
- const pkgJsonPath = join(projectRoot, 'node_modules', framework, 'package.json');
169
- searched.push(pkgJsonPath);
170
- const entry = exists(pkgJsonPath) ? readBinEntry(pkgJsonPath, framework, read) : null;
171
- if (entry !== null && exists(entry)) {
172
- return {
173
- ok: true,
174
- command: nodeExec,
175
- args: [entry, ...argv],
176
- via: `local ${entry}`,
177
- fromPath: false
178
- };
179
- }
180
- if (shim !== null) {
181
- return {
182
- ok: true,
183
- ...toSpawnable(shim, argv, platform, env),
184
- via: `local ${shim}`,
185
- fromPath: false
186
- };
187
- }
188
- // 3. PATH — last resort.
189
- const onPath = resolveFromPath(framework, platform, env, exists);
190
- searched.push(`PATH lookup for "${framework}"`);
191
- if (onPath !== null) {
192
- return {
193
- ok: true,
194
- ...toSpawnable(onPath, argv, platform, env),
195
- via: `PATH: ${onPath}`,
196
- fromPath: true
197
- };
198
- }
199
- return { ok: false, searched };
200
- }
201
- /** Actionable message for the no-runner case — never a raw ENOENT. */
202
- export function formatRunnerNotFound(framework, searched) {
203
- return [
204
- `RUNNER_NOT_FOUND: no ${framework} runner found for this project. Looked for:`,
205
- ...searched.map((p) => ` - ${p}`),
206
- `Install it (e.g. \`npm i -D ${framework}\`) or pass --framework <name>.`
207
- ].join('\n');
208
- }
43
+ import { resolveCanonicalProjectRoot } from '../../services/config/config-service.js';
44
+ import { buildRunnerArgv, formatRunnerNotFound, FRAMEWORKS, resolveRunner } from './test-command-runner-resolution.js';
45
+ import { clearCacheAndReport, emitTestFailure, reportRunResult, resolveFramework } from './test-command-run-helpers.js';
209
46
  export function runRunner(framework, argv, projectRoot, deps = {}) {
210
47
  const resolution = resolveRunner(framework, argv, projectRoot, deps);
211
48
  if (!resolution.ok) {
@@ -237,7 +74,7 @@ export function runRunner(framework, argv, projectRoot, deps = {}) {
237
74
  });
238
75
  }
239
76
  export function registerTestCommands(program, _io) {
240
- const test = program
77
+ program
241
78
  .command('test')
242
79
  .description("Wrap the consumer project's test framework (jest/vitest/mocha) " +
243
80
  'with a per-test fingerprint cache. Default args: <pattern...> ' +
@@ -253,91 +90,31 @@ export function registerTestCommands(program, _io) {
253
90
  .option('--framework <name>', `force a specific framework: ${FRAMEWORKS.join(', ')}`)
254
91
  .option('--project <path>', 'project root (defaults to current directory)', process.cwd())
255
92
  .option('--json', 'emit a JSON envelope { ok, data } to stdout')
256
- .action(async (patterns, opts) => {
93
+ .action(async (patterns, options) => {
257
94
  try {
258
- const projectRoot = resolveCanonicalProjectRoot(opts.project ?? process.cwd());
259
- // --clear-cache short-circuit
260
- if (opts.clearCache === true) {
261
- const result = clearTestCache(projectRoot);
262
- if (opts.json === true) {
263
- process.stdout.write(JSON.stringify({
264
- ok: true,
265
- data: { cleared: true, removed: result.removed, dir: '.peaks/_runtime/test-cache/' }
266
- }) + '\n');
267
- }
268
- else {
269
- process.stdout.write(`cleared ${result.removed} cache file(s) from .peaks/_runtime/test-cache/\n`);
270
- }
95
+ const projectRoot = resolveCanonicalProjectRoot(options.project ?? process.cwd());
96
+ if (options.clearCache === true) {
97
+ clearCacheAndReport(options, projectRoot);
271
98
  return;
272
99
  }
273
- // Framework detection
274
- let framework = null;
275
- if (opts.framework) {
276
- if (!FRAMEWORKS.includes(opts.framework)) {
277
- const msg = `INVALID_FRAMEWORK: --framework must be one of ${FRAMEWORKS.join(', ')} (got "${opts.framework}")`;
278
- if (opts.json === true) {
279
- process.stdout.write(JSON.stringify({ ok: false, error: msg }) + '\n');
280
- }
281
- else {
282
- process.stderr.write(msg + '\n');
283
- }
284
- process.exitCode = 1;
285
- return;
286
- }
287
- framework = opts.framework;
288
- }
289
- else {
290
- framework = detectTestFramework(projectRoot);
291
- }
292
- if (!framework) {
293
- const msg = 'NO_TEST_FRAMEWORK: no supported test framework found in package.json (jest, vitest, or mocha). Install one and re-run, or pass --framework <name>.';
294
- if (opts.json === true) {
295
- process.stdout.write(JSON.stringify({ ok: false, error: msg }) + '\n');
296
- }
297
- else {
298
- process.stderr.write(msg + '\n');
299
- }
300
- process.exitCode = 1;
100
+ const framework = resolveFramework(options, projectRoot);
101
+ if (framework === null)
301
102
  return;
302
- }
303
103
  // Pattern argument: --all clears the list, --changed adds --changedSince
304
- const effectivePatterns = opts.all ? [] : patterns;
305
- const argv = buildRunnerArgv(framework, effectivePatterns, {
306
- all: opts.all === true,
307
- changed: opts.changed === true,
308
- cache: opts.cache === true,
309
- passthrough: opts.passthrough === true
104
+ const argv = buildRunnerArgv(framework, options.all ? [] : patterns, {
105
+ all: options.all === true,
106
+ changed: options.changed === true,
107
+ cache: options.cache === true,
108
+ passthrough: options.passthrough === true
310
109
  });
311
- // Stream the runner's output to the user.
312
- const result = await runRunner(framework, argv, projectRoot);
313
- if (result.notice !== null)
314
- process.stderr.write(result.notice);
315
- process.stdout.write(result.stdout);
316
- process.stderr.write(result.stderr);
317
- if (result.code !== 0) {
318
- process.exitCode = 1;
319
- }
320
- if (opts.json === true) {
321
- process.stdout.write(JSON.stringify({
322
- ok: result.code === 0,
323
- data: {
324
- framework,
325
- argv,
326
- exitCode: result.code,
327
- fingerprintCache: opts.noCacheResult ? 'bypassed' : 'enabled',
328
- cacheDir: '.peaks/_runtime/test-cache/'
329
- }
330
- }) + '\n');
331
- }
110
+ reportRunResult(options, framework, argv, await runRunner(framework, argv, projectRoot));
332
111
  }
333
112
  catch (error) {
334
- if (opts.json === true) {
335
- process.stdout.write(JSON.stringify({ ok: false, error: getErrorMessage(error) }) + '\n');
336
- }
337
- else {
338
- process.stderr.write(getErrorMessage(error) + '\n');
339
- }
340
- process.exitCode = 1;
113
+ emitTestFailure(options, getErrorMessage(error));
341
114
  }
342
115
  });
343
116
  }
117
+ // Re-export for tests / external consumers: the runner resolver is driven
118
+ // directly (with injected fs / spawn / platform seams) by
119
+ // `tests/unit/cli/commands/test-commands-runner-resolution.test.ts`.
120
+ export { buildRunnerArgv, formatRunnerNotFound, resolveRunner } from './test-command-runner-resolution.js';
@@ -0,0 +1,23 @@
1
+ import { type VmHypervisor } from '../../services/vm/vm-lease.js';
2
+ export type VmOptions = {
3
+ session?: string;
4
+ project?: string;
5
+ json?: boolean;
6
+ };
7
+ export type SpawnOptions = VmOptions & {
8
+ rid: string;
9
+ role: string;
10
+ purpose: string;
11
+ hypervisor?: VmHypervisor;
12
+ image?: string;
13
+ ttl?: string;
14
+ mount?: string;
15
+ };
16
+ export type ReleaseOptions = VmOptions & {
17
+ leaseId: string;
18
+ };
19
+ /** `--session`, else `PEAKS_SESSION_ID`, else the project's bound session, else `unknown-sid`. */
20
+ export declare function resolveVmSessionId(projectRoot: string, session: string | undefined): string;
21
+ /** `<projectRoot>/.peaks/_runtime/<sessionId>` — trailing separators collapsed. */
22
+ export declare function joinPathSession(projectRoot: string, sessionId: string): string;
23
+ export declare function resolveTtlMs(raw: string | undefined, role: string): number;
@@ -0,0 +1,23 @@
1
+ // src/cli/commands/vm-command-shared.ts
2
+ //
3
+ // What `peaks vm` verbs share: the option shapes, the session-id resolution and
4
+ // the role-aware TTL. Split out of `vm-commands.ts`; every resolution order and
5
+ // default is unchanged.
6
+ import { getCurrentSessionId } from '../../services/skills/skill-presence-service.js';
7
+ import { ttlForVmRole } from '../../services/vm/vm-lease.js';
8
+ /** `--session`, else `PEAKS_SESSION_ID`, else the project's bound session, else `unknown-sid`. */
9
+ export function resolveVmSessionId(projectRoot, session) {
10
+ return (session ?? process.env.PEAKS_SESSION_ID ?? getCurrentSessionId(projectRoot) ?? 'unknown-sid');
11
+ }
12
+ /** `<projectRoot>/.peaks/_runtime/<sessionId>` — trailing separators collapsed. */
13
+ export function joinPathSession(projectRoot, sessionId) {
14
+ return `${projectRoot.replace(/[\\/]+$/, '')}/.peaks/_runtime/${sessionId}`;
15
+ }
16
+ export function resolveTtlMs(raw, role) {
17
+ if (typeof raw !== 'string' || raw.length === 0)
18
+ return ttlForVmRole(role);
19
+ const parsed = Number.parseInt(raw, 10);
20
+ if (!Number.isInteger(parsed) || parsed <= 0)
21
+ return ttlForVmRole(role);
22
+ return parsed;
23
+ }
@@ -1,30 +1,3 @@
1
- /**
2
- *
3
- * L4 VM isolation runtime. Parallels the design of
4
- * `container-commands.ts` (Part 12, docker) and
5
- * `worktree-auth-commands.ts` (Part 1-2, git worktree).
6
- *
7
- * Hypervisor dispatch:
8
- * - `kvm` : `virsh create` + `virsh destroy` (Linux KVM via libvirt)
9
- * - `hyperkit` : `hvftool create` + `hvftool stop` (macOS HyperKit)
10
- * - `hyperv` : `hvc create` + `hvftool stop` (Windows Hyper-V via
11
- * the operator-installed `hvc` shim)
12
- *
13
- * The runtime check: which hypervisor binary is on PATH +
14
- * (for kvm) whether the host kernel exposes /dev/kvm. The
15
- * spawn is fail-fast: if the requested hypervisor is not
16
- * available, the CLI returns VM_RUNTIME_UNAVAILABLE with a
17
- * remediation hint rather than falling through to a different
18
- * hypervisor (the caller chose a specific mode for a reason).
19
- *
20
- * Each spawned VM runs `sleep infinity` as the entrypoint; the
21
- * VM's working dir is mounted from the host path, and the
22
- * `peaks.leaseId` / `peaks.rid` labels are propagated via
23
- * cloud-init metadata. Real workloads are expected to use
24
- * `peaks vm exec` (a follow-up rid) to run commands inside
25
- * the VM; Part 35 ships the lease + spawn/release surface
26
- * only.
27
- */
28
1
  import type { Command } from 'commander';
29
- import { type ProgramIO } from '../cli-helpers.js';
2
+ import type { ProgramIO } from '../cli-helpers.js';
30
3
  export declare function registerVmCommand(program: Command, io: ProgramIO): void;