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,88 @@
1
+ // src/cli/commands/baseline-rollback-commands.ts
2
+ //
3
+ // `peaks baseline rollback` and `peaks baseline reset` — the two destructive
4
+ // baseline operations, both gated behind `--confirm`. Split out of
5
+ // `baseline-commands.ts`; every refusal code, message and data field is
6
+ // unchanged.
7
+ import { copyFileSync, existsSync, mkdirSync, rmSync } from 'node:fs';
8
+ import { join } from 'node:path';
9
+ import { readBaselineFile } from '../../services/capability-baseline/store.js';
10
+ import { CURRENT_DIR, fail, HISTORY_DIR, ok } from './baseline-command-shared.js';
11
+ function runRollback(io, opts) {
12
+ const projectRoot = opts.project ?? '.';
13
+ if (opts.confirm !== true) {
14
+ fail(io, 'HUMAN_NL_DECISION_REQUIRED', 'rollback requires the user to approve via AskUserQuestion. The LLM must surface a multi-choice prompt, then re-run with --confirm.');
15
+ return;
16
+ }
17
+ if (!opts.to) {
18
+ fail(io, 'MISSING_ARG', '--to is required');
19
+ return;
20
+ }
21
+ const source = HISTORY_DIR(projectRoot, opts.to);
22
+ const from = join(source, 'capability-baseline.json');
23
+ const fromLock = join(source, 'capability-baseline.lock');
24
+ if (!existsSync(from) || !existsSync(fromLock)) {
25
+ fail(io, 'BASELINE_HISTORY_GAP', `no frozen baseline recorded for version ${opts.to}`);
26
+ return;
27
+ }
28
+ const r = readBaselineFile(projectRoot);
29
+ if (!r.ok) {
30
+ fail(io, r.error.code, r.error.message);
31
+ return;
32
+ }
33
+ mkdirSync(CURRENT_DIR(projectRoot), { recursive: true });
34
+ copyFileSync(from, join(CURRENT_DIR(projectRoot), 'capability-baseline.json'));
35
+ copyFileSync(fromLock, join(CURRENT_DIR(projectRoot), 'capability-baseline.lock'));
36
+ // Re-read through the locked store so a tampered history entry cannot be
37
+ // installed: the copy is only reported successful if it verifies.
38
+ const after = readBaselineFile(projectRoot);
39
+ if (!after.ok) {
40
+ fail(io, after.error.code, after.error.message);
41
+ return;
42
+ }
43
+ ok(io, 'baseline.rollback', {
44
+ fromVersion: r.file.version,
45
+ toVersion: after.file.version,
46
+ historyPath: source
47
+ });
48
+ }
49
+ function runReset(io, opts) {
50
+ const projectRoot = opts.project ?? '.';
51
+ if (opts.confirm !== true) {
52
+ fail(io, 'HUMAN_NL_DECISION_REQUIRED', 'reset requires the user to approve via AskUserQuestion. The LLM must surface a multi-choice prompt, then re-run with --confirm.');
53
+ return;
54
+ }
55
+ const r = readBaselineFile(projectRoot);
56
+ // A missing baseline is already "wiped" — but an unreadable one (hash
57
+ // mismatch / unsigned lock) must not be silently discarded.
58
+ if (!r.ok && r.error.code !== 'BASELINE_NOT_FOUND') {
59
+ fail(io, r.error.code, r.error.message);
60
+ return;
61
+ }
62
+ const wipedVersion = r.ok ? r.file.version : null;
63
+ rmSync(join(CURRENT_DIR(projectRoot), 'capability-baseline.json'), { force: true });
64
+ rmSync(join(CURRENT_DIR(projectRoot), 'capability-baseline.lock'), { force: true });
65
+ ok(io, 'baseline.reset', {
66
+ wipedVersion,
67
+ nextAction: 're-freeze with `baseline freeze --from <path>`'
68
+ });
69
+ }
70
+ export function registerBaselineRollbackCommand(baseline, io) {
71
+ baseline
72
+ .command('rollback')
73
+ .description("Roll the baseline back to a historical version. --confirm records the user's approval.")
74
+ .option('--to <version>', 'Historical version to roll back to')
75
+ .option('--confirm', "Record the user's approval (collected via AskUserQuestion) for this rollback")
76
+ .option('--project <path>', 'Project root', '.')
77
+ .option('--json', 'Emit JSON envelope')
78
+ .action((opts) => runRollback(io, opts));
79
+ }
80
+ export function registerBaselineResetCommand(baseline, io) {
81
+ baseline
82
+ .command('reset')
83
+ .description("Wipe the current baseline and require a re-freeze. --confirm records the user's approval.")
84
+ .option('--confirm', "Record the user's approval (collected via AskUserQuestion) for the wipe")
85
+ .option('--project <path>', 'Project root', '.')
86
+ .option('--json', 'Emit JSON envelope')
87
+ .action((opts) => runReset(io, opts));
88
+ }
@@ -0,0 +1,9 @@
1
+ import type { Command } from 'commander';
2
+ import { type ProgramIO } from '../cli-helpers.js';
3
+ export type ClassifyDowngradeOptions = {
4
+ project: string;
5
+ level: string;
6
+ reason: string;
7
+ json?: boolean;
8
+ };
9
+ export declare function registerClassifyDowngradeCommand(classify: Command, io: ProgramIO): void;
@@ -0,0 +1,21 @@
1
+ // src/cli/commands/classify-downgrade-command.ts
2
+ //
3
+ // `peaks classify downgrade` — REFUSED per spec §4: the CLI never downgrades a
4
+ // classification unilaterally. Extracted from
5
+ // `governance-classify-contract-commands.ts`; the registered name, description,
6
+ // options, refusal code and exit code (2) are unchanged.
7
+ import { fail } from 'peaks-loop-shared/result';
8
+ import { printResult } from '../cli-helpers.js';
9
+ export function registerClassifyDowngradeCommand(classify, io) {
10
+ classify
11
+ .command('downgrade')
12
+ .description('REFUSED per spec §4 — peaks-loop never downgrades a classification; ask the user to override explicitly')
13
+ .requiredOption('--level <level>', 'attempted level')
14
+ .requiredOption('--reason <text>', 'reason for the attempt (always rejected)')
15
+ .requiredOption('--project <path>', 'target project root')
16
+ .option('--json', 'print machine-readable JSON envelope')
17
+ .action((options) => {
18
+ printResult(io, fail('classify.downgrade', 'DOWNGRADE_REFUSED', 'peaks classify downgrade is refused per spec §4. Use --override (with reason) on `classify run` to force a level; the CLI never downgrades a classification unilaterally.', { attemptedLevel: options.level, reason: options.reason }, ['Use `peaks classify run --override <level> --reason "<text>"` instead']), options.json);
19
+ process.exitCode = 2;
20
+ });
21
+ }
@@ -0,0 +1,9 @@
1
+ import type { Command } from 'commander';
2
+ import { type ProgramIO } from '../cli-helpers.js';
3
+ export type ClassifyRunOptions = {
4
+ project: string;
5
+ override?: string;
6
+ reason?: string;
7
+ json?: boolean;
8
+ };
9
+ export declare function registerClassifyRunCommand(classify: Command, io: ProgramIO): void;
@@ -0,0 +1,73 @@
1
+ // src/cli/commands/classify-run-command.ts
2
+ //
3
+ // `peaks classify run` — classify the current diff (git diff HEAD) into one of
4
+ // the 5 task levels, with an optional `--override` + `--reason`. Extracted from
5
+ // `governance-classify-contract-commands.ts`; the registered name, description,
6
+ // options, refusal codes, audit write and envelope are unchanged.
7
+ //
8
+ // `loadPreferences` is synchronous, so the action is too — the merged file said
9
+ // `await loadPreferences(...)`, which `@typescript-eslint/await-thenable`
10
+ // flagged as an await of a non-Promise. Dropping the keyword pair changes no
11
+ // byte of the envelope (the equivalence harness re-measured it).
12
+ import { fail, getErrorMessage, ok } from 'peaks-loop-shared/result';
13
+ import { classifyTask } from '../../services/classify/classify-service.js';
14
+ import { TASK_LEVELS } from '../../services/classify/classify-types.js';
15
+ import { loadPreferences } from '../../services/preferences/preferences-service.js';
16
+ import { addJsonOption, printResult } from '../cli-helpers.js';
17
+ import { appendAuditEntry, CLASSIFY_AUDIT_FILE, getSignalsFromGitDiff, isTaskLevel } from './classify-signals.js';
18
+ export function registerClassifyRunCommand(classify, io) {
19
+ addJsonOption(classify
20
+ .command('run')
21
+ .description('Classify the current diff (git diff HEAD) into one of 5 task levels')
22
+ .requiredOption('--project <path>', 'target project root')
23
+ .option('--override <level>', 'force a level (one of typo|bug|feature|refactor|migration); requires --reason')
24
+ .option('--reason <text>', 'reason for the override (mandatory when --override is set)')).action((options) => {
25
+ const envelope = classifyRunEnvelope(options);
26
+ printResult(io, envelope, options.json);
27
+ if (!envelope.ok)
28
+ process.exitCode = 1;
29
+ });
30
+ }
31
+ function classifyRunEnvelope(options) {
32
+ try {
33
+ const prefs = loadPreferences(options.project);
34
+ const signals = getSignalsFromGitDiff(options.project);
35
+ const override = readOverride(options);
36
+ if (override.envelope !== null)
37
+ return override.envelope;
38
+ const result = classifyTask(override.level === undefined
39
+ ? { signals, conservatism: prefs.classifyConservatism }
40
+ : {
41
+ signals,
42
+ conservatism: prefs.classifyConservatism,
43
+ override: { level: override.level, reason: override.reason }
44
+ }, prefs.classifyRules.feature_threshold_files, prefs.classifyRules.feature_threshold_lines);
45
+ appendAuditEntry(options.project, result.audit);
46
+ return ok('classify.run', result, [], [
47
+ `gate set for level "${result.level}": ${result.gateSet.stages.join(', ')}`,
48
+ `audit log: .peaks/_runtime/${CLASSIFY_AUDIT_FILE}`
49
+ ]);
50
+ }
51
+ catch (error) {
52
+ return fail('classify.run', 'CLASSIFY_RUN_FAILED', getErrorMessage(error), { projectRoot: options.project }, ['Run peaks classify --help for usage']);
53
+ }
54
+ }
55
+ /** The two refusals `--override` / `--reason` can earn, in the order they fire. */
56
+ function readOverride(options) {
57
+ const empty = { level: undefined, reason: '', envelope: null };
58
+ if (options.override === undefined)
59
+ return empty;
60
+ if (!isTaskLevel(options.override)) {
61
+ return {
62
+ ...empty,
63
+ envelope: fail('classify.run', 'INVALID_LEVEL', `level must be one of: ${TASK_LEVELS.join(', ')}`, { provided: options.override }, ['Pass one of typo, bug, feature, refactor, migration'])
64
+ };
65
+ }
66
+ if (options.reason === undefined || options.reason.length === 0) {
67
+ return {
68
+ ...empty,
69
+ envelope: fail('classify.run', 'REASON_REQUIRED', '--reason is required when --override is set', {}, ['Provide a non-empty reason for the override'])
70
+ };
71
+ }
72
+ return { level: options.override, reason: options.reason, envelope: null };
73
+ }
@@ -0,0 +1,5 @@
1
+ import { type ClassifySignals, type TaskLevel } from '../../services/classify/classify-types.js';
2
+ export declare const CLASSIFY_AUDIT_FILE = "classify-audit.jsonl";
3
+ export declare function getSignalsFromGitDiff(projectRoot: string): ClassifySignals;
4
+ export declare function appendAuditEntry(projectRoot: string, entry: unknown): void;
5
+ export declare function isTaskLevel(value: string): value is TaskLevel;
@@ -0,0 +1,104 @@
1
+ // src/cli/commands/classify-signals.ts
2
+ //
3
+ // What `peaks classify` reads and writes outside its own envelope: the diff
4
+ // signals the heuristic classifies, the audit-log append, and the task-level
5
+ // guard. Extracted from `governance-classify-contract-commands.ts` (which had
6
+ // merged `classify-classify-commands.ts` verbatim); the parsing, the audit file
7
+ // name and the level guard are unchanged.
8
+ //
9
+ // `child_process` is a static import here rather than the CJS `require` the
10
+ // merged file used inside `getSignalsFromGitDiff`: the module specifier is a
11
+ // Node builtin, so a top-level import cannot fail where the `require` could, and
12
+ // the call itself — arguments, `windowsHide`, and the zeros fallback when git is
13
+ // unavailable — is byte-for-byte the same.
14
+ import { execFileSync } from 'node:child_process';
15
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
16
+ import { join } from 'node:path';
17
+ import { TASK_LEVELS } from '../../services/classify/classify-types.js';
18
+ export const CLASSIFY_AUDIT_FILE = 'classify-audit.jsonl';
19
+ export function getSignalsFromGitDiff(projectRoot) {
20
+ // Use git diff --stat to extract file count + line count. Fall back to
21
+ // zeros if git is unavailable (e.g. fresh repo with no commits).
22
+ let stdout;
23
+ try {
24
+ stdout = execFileSync('git', ['diff', '--shortstat', 'HEAD'], {
25
+ cwd: projectRoot,
26
+ stdio: ['ignore', 'pipe', 'ignore'],
27
+ maxBuffer: 32 * 1024 * 1024,
28
+ windowsHide: true
29
+ }).toString('utf8');
30
+ }
31
+ catch {
32
+ return {
33
+ filesChanged: 0,
34
+ linesChanged: 0,
35
+ touchesDependencies: false,
36
+ touchesMigrationScripts: false,
37
+ isPureRefactor: true,
38
+ keywords: []
39
+ };
40
+ }
41
+ const lines = stdout.split('\n').filter((l) => l.trim().length > 0);
42
+ const filesChanged = lines.length;
43
+ let added = 0;
44
+ let removed = 0;
45
+ let touchesDependencies = false;
46
+ let touchesMigrationScripts = false;
47
+ for (const line of lines) {
48
+ const match = /(\d+)\s+insertion.*?(\d+)\s+deletion/.exec(line);
49
+ if (match) {
50
+ added += Number(match[1]);
51
+ removed += Number(match[2]);
52
+ }
53
+ if (/(package\.json|pnpm-lock\.yaml|yarn\.lock|requirements\.txt|go\.mod)/.test(line)) {
54
+ touchesDependencies = true;
55
+ }
56
+ if (/(migrate|codemod|backfill|schema)/.test(line)) {
57
+ touchesMigrationScripts = true;
58
+ }
59
+ }
60
+ // isPureRefactor: heuristic — if added lines / removed lines < 0.1 OR
61
+ // no new exports were added, treat as refactor. For L2.2 the signal is
62
+ // binary (true/false). Default: true (no behavior change is the safe
63
+ // assumption; flip to false when keyword 'add' / 'new' / 'feature' present).
64
+ const isPureRefactor = true;
65
+ return {
66
+ filesChanged,
67
+ linesChanged: added + removed,
68
+ touchesDependencies,
69
+ touchesMigrationScripts,
70
+ isPureRefactor,
71
+ keywords: []
72
+ };
73
+ }
74
+ export function appendAuditEntry(projectRoot, entry) {
75
+ const auditDir = join(projectRoot, '.peaks/_runtime');
76
+ if (!existsSync(auditDir)) {
77
+ try {
78
+ mkdirSync(auditDir, { recursive: true });
79
+ }
80
+ catch {
81
+ /* ignore */
82
+ } // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
83
+ }
84
+ const auditPath = join(auditDir, CLASSIFY_AUDIT_FILE);
85
+ let body = '';
86
+ try {
87
+ if (existsSync(auditPath)) {
88
+ body = readFileSync(auditPath, 'utf8');
89
+ }
90
+ }
91
+ catch {
92
+ /* ignore */
93
+ } // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
94
+ body += JSON.stringify(entry) + '\n';
95
+ try {
96
+ writeFileSync(auditPath, body);
97
+ }
98
+ catch {
99
+ /* best-effort */
100
+ } // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
101
+ }
102
+ export function isTaskLevel(value) {
103
+ return TASK_LEVELS.includes(value);
104
+ }
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ import { type ProgramIO } from '../cli-helpers.js';
3
+ export declare function registerCodeAutoCompactCommand(code: Command, io: ProgramIO): void;
@@ -0,0 +1,124 @@
1
+ import { addJsonOption, getErrorMessage, printResult } from '../cli-helpers.js';
2
+ import { fail } from 'peaks-loop-shared/result';
3
+ import { runAutoCompact } from '../../services/code/auto-compact-orchestrator.js';
4
+ import { probeInFlightBatch } from '../../services/workflow/workflow-inflight-probe.js';
5
+ import { readActiveSid } from './code-runtime-session.js';
6
+ import { buildAutoCompactEnvelope } from './code-auto-compact-envelope.js';
7
+ const AUTO_COMPACT_DESCRIPTION = 'v2.13.0 AC-4: zero-human-intervention auto-compact. Probes current ' +
8
+ 'context-fill % via the active IDE adapter; ≥ 0.85 writes a pre-compact ' +
9
+ 'checkpoint + convergence plan + auto-decisions log; ≥ 0.95 ASKS the ' +
10
+ 'harness to compact and reports that it is waiting for it — no ratio ' +
11
+ 'blocks sub-agent dispatch, because peaks-loop has no way to compact a ' +
12
+ 'running session and a gate nobody can satisfy gates nothing. The LLM / ' +
13
+ 'runner keeps working at any ratio without human intervention. Pair with `peaks code ' +
14
+ 'context-now` (AC-1), the read-only probe that reports the ratio this ' +
15
+ 'command acts on. This command is also fired by the installed ' +
16
+ 'PreToolUse hook, which passes `--project .` — without that argument ' +
17
+ 'the hook could never run at all. rid-027 ' +
18
+ 'adds `--mode <mode>`: `standard` (0.85/0.95) or `partial` (0.70/0.85 ' +
19
+ 'for 24h long-run mode).';
20
+ /** The invalid-`--mode` branch, lifted verbatim out of the action body. */
21
+ function reportInvalidAutoCompactMode(io, modeName, json) {
22
+ printResult(io, fail('code.auto-compact', 'AUTO_COMPACT_INVALID_MODE', `Invalid --mode '${modeName}'. Valid values: standard | partial.`, null, ['Re-run with --mode standard or --mode partial.']), json);
23
+ process.exitCode = 1;
24
+ }
25
+ /**
26
+ * The `runAutoCompact` input object, lifted verbatim: it reads only its two
27
+ * parameters, so it has no ordering dependency on the call site.
28
+ */
29
+ function buildAutoCompactInput(opts, modeName) {
30
+ // Slice 4.0.8 (D4d): production `inFlightBatch` MUST come from
31
+ // the workflow graph probe. The legacy `--in-flight-batch`
32
+ // boolean CLI flag is a TEST-ONLY seam (gated by
33
+ // `PEAKS_TEST_SEAM === '1'`). When the env flag is unset
34
+ // (the production case), we wire `probeInflightBatch` to the
35
+ // canonical `workflow-inflight-probe.ts` service so the
36
+ // production decision is graph-backed, not lease-age.
37
+ const isTestSeam = process.env.PEAKS_TEST_SEAM === '1';
38
+ return {
39
+ projectRoot: opts.project,
40
+ sessionId: opts.sessionId ?? readActiveSid(opts.project) ?? undefined,
41
+ ...(isTestSeam && opts.inFlightBatch === true
42
+ ? { inFlightBatch: { hasInFlightBatch: true } }
43
+ : {}),
44
+ ...(!isTestSeam
45
+ ? {
46
+ probeInflightBatch: () => {
47
+ // Synchronous probe: the workflow-inflight-probe
48
+ // service is pure / synchronous (no I/O). The
49
+ // empty `graphs` array is the production CLI
50
+ // default — callers that want a richer fixture
51
+ // (e.g. `peaks session 24h-mode`) should hand-roll
52
+ // a probe and pass it via the orchestrator's
53
+ // input. When no graph is materialized, the
54
+ // probe returns `inFlightBatch: false`, matching
55
+ // the 4.0.7 zero-pause contract for stock
56
+ // projects.
57
+ const out = probeInFlightBatch({ now: new Date().toISOString(), graphs: [] });
58
+ return out.inFlightBatch === true;
59
+ }
60
+ }
61
+ : {}),
62
+ force: opts.force === true,
63
+ bypassRedLine: opts.bypassRedLine === true,
64
+ // Forward the FLAG verbatim — `undefined` when the user named no
65
+ // mode — so the orchestrator's fallback to the presence-derived
66
+ // mode can actually run. Forwarding the validated `modeName` is
67
+ // what disabled 24h → partial.
68
+ mode: opts.mode === undefined ? undefined : modeName
69
+ };
70
+ }
71
+ /** The catch branch, lifted verbatim out of the action body. */
72
+ function reportAutoCompactFailure(io, err, json) {
73
+ printResult(io, fail('code.auto-compact', 'AUTO_COMPACT_FAILED', getErrorMessage(err), null, [
74
+ 'Verify the project path + session id and try again'
75
+ ]), json);
76
+ process.exitCode = 1;
77
+ }
78
+ /** The action body, lifted to a module-level function so both it and the registrar fit in 50 lines. */
79
+ async function runAutoCompactAction(opts, io) {
80
+ try {
81
+ const { isValidMode } = await import('../../services/code/auto-compact-modes.js');
82
+ const modeName = opts.mode ?? 'standard';
83
+ if (!isValidMode(modeName)) {
84
+ reportInvalidAutoCompactMode(io, modeName, opts.json);
85
+ return;
86
+ }
87
+ const result = await runAutoCompact(buildAutoCompactInput(opts, modeName));
88
+ const code = result.code;
89
+ const exitOk = result.ok || code === 'AUTO_COMPACT_SKIP' || code === 'AUTO_COMPACT_WAIT';
90
+ // Adapt AutoCompactResult → ResultEnvelope so printResult's
91
+ // generic accepts it. The orchestrator envelope carries
92
+ // `data` on success-path and `nextActions` on the error
93
+ // path; surface both directly to the user.
94
+ printResult(io, buildAutoCompactEnvelope(result), opts.json);
95
+ if (!exitOk)
96
+ process.exitCode = 1;
97
+ }
98
+ catch (err) {
99
+ reportAutoCompactFailure(io, err, opts.json);
100
+ }
101
+ }
102
+ export function registerCodeAutoCompactCommand(code, io) {
103
+ addJsonOption(code
104
+ .command('auto-compact')
105
+ .description(AUTO_COMPACT_DESCRIPTION)
106
+ .requiredOption('--project <path>', 'target project root')
107
+ .option('--session-id <sid>', 'override session id (default: read from active presence)')
108
+ .option('--in-flight-batch', 'defer if a sub-agent batch is in flight (D6.e)')
109
+ .option('--force', 'force compact at any ratio (test seam)')
110
+ // Accepted and inert. There is no longer a 95% gate to skip: peaks-loop
111
+ // cannot compact a running session, so the red line never blocked
112
+ // dispatch and `bypassRedLine` is read by nothing (slice
113
+ // rather than deleted because it is a published CLI surface — deleting it
114
+ // would make an existing caller fail on an unknown option, which is a
115
+ // harder break than a no-op — and because the honest fix here is to stop
116
+ // advertising it, not to change its meaning.
117
+ .option('--bypass-red-line', 'no-op: the 95% red line no longer gates dispatch, so there is nothing to bypass (accepted for backward compatibility)')
118
+ // No commander default here, deliberately. A declared default makes
119
+ // `opts.mode` permanently defined, which defeats the orchestrator's
120
+ // `input.mode ?? resolveAutoCompactMode(projectRoot)` fallback and
121
+ // silently disables "24h mode auto-selects partial" — the help text
122
+ // below promises it. Absence must stay absent.
123
+ .option('--mode <mode>', 'auto-compact mode (standard | partial). Default: standard. 24h mode auto-selects partial.')).action((opts) => runAutoCompactAction(opts, io));
124
+ }
@@ -0,0 +1,22 @@
1
+ import { type ResultEnvelope } from 'peaks-loop-shared/result';
2
+ import { type AutoCompactResult } from '../../services/code/auto-compact-orchestrator.js';
3
+ /**
4
+ * Adapt `runAutoCompact`'s domain result to a `ResultEnvelope`.
5
+ *
6
+ * Extracted and exported so the CHANNEL each fact chooses can be asserted
7
+ * directly, without a real red-line probe.
8
+ *
9
+ * The harness-window CONFLICT ("peaks-loop divided this ratio by N but the
10
+ * settings file pins M") is a fact about the STATE, not an instruction, so it
11
+ * rides `warnings` — the very channel `peaks code context-now` already puts it
12
+ * on, via the same `harnessWindowSyncWarning`. Before this, the shim hard-coded
13
+ * `warnings: []`, so the identical fact reached a consumer as a sentence inside
14
+ * `nextActions` on this command and as a `warnings` entry on the other one. One
15
+ * fact, two shapes, depending on which of the two syncing commands a consumer
16
+ * happened to read: two parsers for one mechanism.
17
+ *
18
+ * The prose description (`describeHarnessWindowSync`) stays in `nextActions` on
19
+ * BOTH commands — that half is advice ("what to do about it") and both already
20
+ * agree on it.
21
+ */
22
+ export declare function buildAutoCompactEnvelope(result: AutoCompactResult): ResultEnvelope<unknown>;
@@ -0,0 +1,39 @@
1
+ // The `peaks code auto-compact` result adapter, on its own so the CHANNEL each
2
+ // fact chooses can be asserted directly, without a real red-line probe.
3
+ import { fail, ok } from 'peaks-loop-shared/result';
4
+ import { harnessWindowSyncWarning } from '../../services/context/harness-window-config.js';
5
+ /**
6
+ * Adapt `runAutoCompact`'s domain result to a `ResultEnvelope`.
7
+ *
8
+ * Extracted and exported so the CHANNEL each fact chooses can be asserted
9
+ * directly, without a real red-line probe.
10
+ *
11
+ * The harness-window CONFLICT ("peaks-loop divided this ratio by N but the
12
+ * settings file pins M") is a fact about the STATE, not an instruction, so it
13
+ * rides `warnings` — the very channel `peaks code context-now` already puts it
14
+ * on, via the same `harnessWindowSyncWarning`. Before this, the shim hard-coded
15
+ * `warnings: []`, so the identical fact reached a consumer as a sentence inside
16
+ * `nextActions` on this command and as a `warnings` entry on the other one. One
17
+ * fact, two shapes, depending on which of the two syncing commands a consumer
18
+ * happened to read: two parsers for one mechanism.
19
+ *
20
+ * The prose description (`describeHarnessWindowSync`) stays in `nextActions` on
21
+ * BOTH commands — that half is advice ("what to do about it") and both already
22
+ * agree on it.
23
+ */
24
+ export function buildAutoCompactEnvelope(result) {
25
+ const data = 'data' in result ? result.data : null;
26
+ const nextActions = 'nextActions' in result ? result.nextActions : [];
27
+ const warning = harnessWindowSyncWarning(data?.harnessWindow ?? null);
28
+ const warnings = warning === null ? [] : [warning];
29
+ if (result.ok) {
30
+ return ok('code.auto-compact', data ?? {}, warnings, [result.message, ...nextActions]);
31
+ }
32
+ // `fail()` hard-codes `warnings: []`, so the warning is spread back over it —
33
+ // a refused write can disagree with the ratio just as easily on the failure
34
+ // path, and the state does not become less true because the dispatch failed.
35
+ return {
36
+ ...fail('code.auto-compact', result.code, result.message, data, [...nextActions]),
37
+ warnings
38
+ };
39
+ }
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ import { type ProgramIO } from '../cli-helpers.js';
3
+ export declare function registerCodeContextAuditCommand(code: Command, io: ProgramIO): void;
@@ -0,0 +1,68 @@
1
+ import { addJsonOption, getErrorMessage, printResult } from '../cli-helpers.js';
2
+ import { ok } from 'peaks-loop-shared/result';
3
+ import { auditContext } from '../../services/context/context-audit.js';
4
+ import { resolveOuterSessionId } from '../../services/session/binding-status-service.js';
5
+ import { readActiveSid } from './code-runtime-session.js';
6
+ const CONTEXT_AUDIT_DESCRIPTION = "Slice 2026-09-10 Slice A: report what fills the current session's " +
7
+ 'context window, grouped by tool + short input key (command line / ' +
8
+ "path tail / pattern), sorted by bytes. Locates the CURRENT session's " +
9
+ "IDE transcript through the active adapter's " +
10
+ '`compact.resolveTranscriptPath` (vendor-neutral); emits total bytes, ' +
11
+ 'entry count, and the top-N groups ' +
12
+ '(`{tool, key, bytes, pctOfTotal, count}`). Read-only and fail-soft — ' +
13
+ 'a missing/oversized/corrupt transcript returns `available:false` ' +
14
+ 'with a reason and never blocks. Never dumps tool result content.';
15
+ /** The catch branch, lifted verbatim out of the action body (fail-soft, exit code untouched). */
16
+ function reportContextAuditFailure(io, err, json) {
17
+ printResult(io, ok('code.context-audit', {
18
+ available: false,
19
+ reason: `audit-failed: ${getErrorMessage(err)}`,
20
+ transcriptPath: null,
21
+ totalBytes: 0,
22
+ entryCount: 0,
23
+ groupCount: 0,
24
+ topN: 0,
25
+ entries: []
26
+ }, [], ['context-audit is a read-only probe; continue without it.']), json);
27
+ }
28
+ /** The action body, lifted to a module-level function so both it and the registrar fit in 50 lines. */
29
+ function runCodeContextAudit(opts, io) {
30
+ try {
31
+ // `resolveOuterSessionId` checks the env signal FIRST, so the peaks
32
+ // session id is only a fallback lookup key — mirror context-now's
33
+ // 'unknown' default so an unbound presence still resolves via env.
34
+ const sessionId = opts.sessionId ?? readActiveSid(opts.project) ?? 'unknown';
35
+ const outerSessionId = resolveOuterSessionId(opts.project, sessionId);
36
+ const result = auditContext({
37
+ outerSessionId: outerSessionId ?? null,
38
+ ...(opts.top !== undefined ? { topN: opts.top } : {}),
39
+ ...(opts.transcript !== undefined ? { transcriptPath: opts.transcript } : {})
40
+ });
41
+ // Fail-soft contract: unavailability is DATA, not an error. The exit
42
+ // code stays 0 so a `context-audit` call can never block a workflow.
43
+ const nextActions = result.available
44
+ ? [
45
+ `${result.entryCount} tool result(s) across ${result.groupCount} group(s); showing top ${result.entries.length}.`
46
+ ]
47
+ : [
48
+ `context-audit unavailable: ${result.reason ?? 'unknown'} — continue without it (read-only probe).`
49
+ ];
50
+ printResult(io, ok('code.context-audit', { ...result }, [], nextActions), opts.json);
51
+ }
52
+ catch (err) {
53
+ reportContextAuditFailure(io, err, opts.json);
54
+ }
55
+ }
56
+ export function registerCodeContextAuditCommand(code, io) {
57
+ // WHAT fills the orchestrator window. `context-now` returns a ratio; this
58
+ // returns the grouped byte breakdown of tool results from the live
59
+ // transcript. Read-only + fail-soft: an unavailable transcript reports
60
+ // `available:false` with a reason and NEVER sets a non-zero exit code.
61
+ addJsonOption(code
62
+ .command('context-audit')
63
+ .description(CONTEXT_AUDIT_DESCRIPTION)
64
+ .requiredOption('--project <path>', 'target project root')
65
+ .option('--session-id <sid>', 'override session id (default: read from active presence)')
66
+ .option('--top <n>', 'number of top entries to emit (default 15, max 100)', (value) => Number(value))
67
+ .option('--transcript <path>', 'override the transcript jsonl path (test seam)')).action((opts) => runCodeContextAudit(opts, io));
68
+ }
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ import { type ProgramIO } from '../cli-helpers.js';
3
+ export declare function registerCodeContextNowCommand(code: Command, io: ProgramIO): void;