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,124 @@
1
+ import { addJsonOption, getErrorMessage, printResult } from '../cli-helpers.js';
2
+ import { fail, ok } from 'peaks-loop-shared/result';
3
+ import { readJobShapeDecision, JobShapeDecisionError } from '../../services/code/job-shape-decision.js';
4
+ import { resolveOuterSessionId } from '../../services/session/binding-status-service.js';
5
+ import { resolveCanonicalProjectRoot } from '../../services/config/config-service.js';
6
+ import { readActiveSid } from './code-runtime-session.js';
7
+ import { buildContextNowData, buildContextNowNextActions, buildContextNowWarnings, readContextNowHarness, resolveContextNowDecision } from './code-context-now-envelope.js';
8
+ const CONTEXT_NOW_DESCRIPTION = "v2.13.0 AC-1: read the active IDE adapter's context-fill % " +
9
+ 'without requiring the LLM to pass --prompt-size <bytes> manually. ' +
10
+ 'Adapter-driven (no hard-coded IDE names): Claude Code is the MVP ' +
11
+ 'implementation; trae / codex / cursor / qoder / tongyi-lingma / ' +
12
+ 'hermes / openclaw register their own env-var via IdeAdapter.compact. ' +
13
+ "v3.1.2 / 2026-09-12: the mode's pre-compact line emits " +
14
+ 'action=auto-compact-now (MANDATORY, single-rid included) and ' +
15
+ 'the red line emits action=red-line (the installed PreToolUse hook re-runs ' +
16
+ 'this command on the next Bash/Task tool call; nothing is blocked). ' +
17
+ '--enforce-job-mode only changes the reported `jobMode` label; ' +
18
+ 'the thresholds are identical. ' +
19
+ 'Context-window override: set env PEAKS_CONTEXT_WINDOW_TOKENS=<positive int> ' +
20
+ 'or `peaks config set --key context.windowTokens --value <positive int>`; ' +
21
+ 'the JSON envelope reports the winning layer as capacitySource ' +
22
+ '(env-override | config | model-heuristic | default).';
23
+ /**
24
+ * The two flags the action derives before any probe: the `--prompt-size`
25
+ * override (guarded) and the Job-mode label. Pure in `opts` — no ordering
26
+ * dependency on the call site.
27
+ */
28
+ function resolveContextNowFlags(opts) {
29
+ // guard rejects non-finite / negative values; only finite
30
+ // non-negative numbers reach the reader. Undefined → no override.
31
+ let promptSizeBytes;
32
+ if (opts.promptSize !== undefined) {
33
+ const parsed = Number(opts.promptSize);
34
+ if (Number.isFinite(parsed) && parsed >= 0) {
35
+ promptSizeBytes = parsed;
36
+ }
37
+ }
38
+ // v3.1.2: detect Job mode from job-shape.json when --enforce-job-mode
39
+ // is not explicitly passed. The LLM is the source of truth for
40
+ // whether the request is Job-shaped; the recorded decision is.
41
+ let isJobMode = opts.enforceJobMode === true;
42
+ if (!isJobMode) {
43
+ try {
44
+ const sessionIdForDecision = opts.sessionId ?? readActiveSid(opts.project);
45
+ if (sessionIdForDecision !== null) {
46
+ const record = readJobShapeDecision(opts.project, sessionIdForDecision);
47
+ if (record.decision.isJob)
48
+ isJobMode = true;
49
+ }
50
+ }
51
+ catch (err) {
52
+ if (!(err instanceof JobShapeDecisionError))
53
+ throw err;
54
+ // missing/malformed decision file is fine — fall back to advisory.
55
+ }
56
+ }
57
+ return { promptSizeBytes, isJobMode };
58
+ }
59
+ /** The catch branch, lifted verbatim out of the action body. */
60
+ function reportContextNowFailure(io, err, json) {
61
+ printResult(io, fail('code.context-now', 'CONTEXT_NOW_FAILED', getErrorMessage(err), null, [
62
+ 'Verify the project path and try again'
63
+ ]), json);
64
+ process.exitCode = 1;
65
+ }
66
+ /** The action body, lifted to a module-level function so both it and the registrar fit in 50 lines. */
67
+ async function runCodeContextNow(opts, io) {
68
+ try {
69
+ const { readContextPercent } = await import('../../services/context/auto-compact-reader.js');
70
+ const flags = resolveContextNowFlags(opts);
71
+ const sessionId = opts.sessionId ?? readActiveSid(opts.project) ?? 'unknown';
72
+ const outerSessionId = resolveOuterSessionId(opts.project, sessionId);
73
+ const probe = readContextPercent({
74
+ projectRoot: opts.project,
75
+ sessionId,
76
+ outerSessionId,
77
+ env: process.env,
78
+ promptSizeBytes: flags.promptSizeBytes
79
+ });
80
+ // Promote `--project .` (what the PreToolUse hook passes) to the git
81
+ // root ONCE, for both of the consumers below: the settings path the
82
+ // harness window is written to, and the session directory the witness
83
+ // is read from, must not depend on the caller's cwd — and an absolute
84
+ // path is what the envelope then reports back to the operator. This
85
+ // resolves through `git rev-parse --show-toplevel`, i.e. a whole
86
+ // process spawn (measured 2026-09-14: med 111.8 ms per call on this
87
+ // host), so calling it twice with the same argument charged the witness
88
+ // read it precedes — 0.027 ms — roughly 4,000x its own cost.
89
+ const canonicalProjectRoot = resolveCanonicalProjectRoot(opts.project);
90
+ const harness = readContextNowHarness(canonicalProjectRoot, sessionId, outerSessionId, probe);
91
+ const decision = resolveContextNowDecision(canonicalProjectRoot, probe.ratio, flags.isJobMode);
92
+ printResult(io, ok('code.context-now', buildContextNowData({
93
+ probe,
94
+ ratioPct: (probe.ratio * 100).toFixed(1),
95
+ isJobMode: flags.isJobMode,
96
+ promptSizeBytes: flags.promptSizeBytes,
97
+ decision,
98
+ harness
99
+ }), buildContextNowWarnings(harness), buildContextNowNextActions(decision, harness)),
100
+ // `true`, which made the declared `--json` flag a no-op and left the
101
+ // human with raw JSON and no `next:` lines — so a person running this
102
+ // command could not see that peaks-loop had just written their
103
+ // harness settings. The notices above (including the key, the value
104
+ // and the rollback command) are `nextActions`, which `printResult`
105
+ // prints as `next: …` lines ONLY in the non-JSON path. Honoring the
106
+ // flag is what puts them in front of a human. See the consumer audit
107
+ // in the slice's RD artifact: every in-repo caller (the PreToolUse
108
+ // hooks, `orchestrator-can-do`, the skill runbooks) passes `--json`
109
+ // explicitly, so their byte-for-byte output is unchanged.
110
+ opts.json === true);
111
+ }
112
+ catch (err) {
113
+ reportContextNowFailure(io, err, opts.json);
114
+ }
115
+ }
116
+ export function registerCodeContextNowCommand(code, io) {
117
+ addJsonOption(code
118
+ .command('context-now')
119
+ .description(CONTEXT_NOW_DESCRIPTION)
120
+ .requiredOption('--project <path>', 'target project root')
121
+ .option('--session-id <sid>', 'override session id (default: read from active presence)')
122
+ .option('--enforce-job-mode', 'v3.1.2: label the run as Job-shaped (jobMode=true). Auto-enabled when job-shape.json says isJob=true. Since 2026-09-12 the ≥0.85 MANDATORY auto-compact applies in single-rid mode too, so this flag no longer changes any action.')
123
+ .option('--prompt-size <bytes>', 'override the bytes-from-env path; takes priority over env / statusline / transcript. Useful when CLAUDE_CONTEXT_USAGE_PERCENT is absent (e.g. Mac Claude Code).')).action((opts) => runCodeContextNow(opts, io));
124
+ }
@@ -0,0 +1,66 @@
1
+ import type { ContextPercentProbe } from '../../services/context/auto-compact-types.js';
2
+ /**
3
+ * The harness half of the probe: the window sync, its warning, the witness read
4
+ * and its notice. Lifted verbatim from the action body — it reads only its
5
+ * parameters.
6
+ */
7
+ export declare function readContextNowHarness(canonicalProjectRoot: string, sessionId: string, outerSessionId: string | null | undefined, probe: ContextPercentProbe): {
8
+ harnessWindow: import("../../services/context/harness-window-config.js").HarnessWindowSyncResult | null;
9
+ harnessWindowWarning: string | null;
10
+ harnessWitness: import("../../services/context/harness-context-witness.js").HarnessWitnessComparison;
11
+ witnessNotice: string | null;
12
+ };
13
+ type ContextNowHarness = ReturnType<typeof readContextNowHarness>;
14
+ /**
15
+ * Slice H4 (rid=h4-context-now-mode-blind): ONE table, ONE mode
16
+ * resolver. The hard-coded ladder that used to live in the action read no mode
17
+ * at all, so on a 24h run (`partial` = 0.65/0.70/0.85) it answered `soft-warn`
18
+ * + `next: null` across [0.70, 0.85) — the band in which
19
+ * `peaks code auto-compact` had already decided to compact.
20
+ */
21
+ export declare function resolveContextNowDecision(canonicalProjectRoot: string, ratio: number, isJobMode: boolean): {
22
+ action: "ok" | "soft-warn" | "red-line" | "auto-compact-now";
23
+ next: string | null;
24
+ verdict: string;
25
+ bands: {
26
+ softWarn: string;
27
+ preCompact: string;
28
+ redLine: string;
29
+ preCompactRatio: string;
30
+ redLineRatio: string;
31
+ };
32
+ gateModeNotice: string;
33
+ };
34
+ type ContextNowDecision = ReturnType<typeof resolveContextNowDecision>;
35
+ /** The envelope's `data` record, lifted verbatim out of the action body. */
36
+ export declare function buildContextNowData(args: {
37
+ probe: ContextPercentProbe;
38
+ ratioPct: string;
39
+ isJobMode: boolean;
40
+ promptSizeBytes: number | undefined;
41
+ decision: ContextNowDecision;
42
+ harness: ContextNowHarness;
43
+ }): {
44
+ ratio: number;
45
+ ratioPct: string;
46
+ verdict: string;
47
+ action: "ok" | "soft-warn" | "red-line" | "auto-compact-now";
48
+ next: string | null;
49
+ jobMode: boolean;
50
+ source: string;
51
+ ide: string;
52
+ capacityBytes: number | undefined;
53
+ rawBytes: number | null;
54
+ rawTokens: number | null;
55
+ capacityTokens: number | null;
56
+ capacitySource: string | null;
57
+ bytesPrompt: number | null;
58
+ capturedAt: string;
59
+ harnessWindow: import("../../services/context/harness-window-config.js").HarnessWindowSyncResult | null;
60
+ harnessWitness: import("../../services/context/harness-context-witness.js").HarnessWitnessComparison;
61
+ };
62
+ /** The envelope's `warnings` array, lifted verbatim out of the action body. */
63
+ export declare function buildContextNowWarnings(harness: ContextNowHarness): string[];
64
+ /** The envelope's `nextActions` array, lifted verbatim out of the action body. */
65
+ export declare function buildContextNowNextActions(decision: ContextNowDecision, harness: ContextNowHarness): string[];
66
+ export {};
@@ -0,0 +1,136 @@
1
+ // The `peaks code context-now` envelope: the harness reading (window sync +
2
+ // witness), the mode-resolved decision, and the `data` / `warnings` /
3
+ // `nextActions` builders. Split out of `code-context-now-command.ts` when
4
+ // compressing its long function pushed that file past the 300-line cap; every
5
+ // body below is the original one, moved verbatim.
6
+ import { resolveAutoCompactProfile } from '../../services/mode/mode-status-service.js';
7
+ import { syncHarnessWindowForProject } from '../../services/context/auto-compact-reader.js';
8
+ import { describeHarnessWindowSync, harnessWindowSyncWarning } from '../../services/context/harness-window-config.js';
9
+ import { describeHarnessWitness, readAndCompareHarnessWitness } from '../../services/context/harness-context-witness.js';
10
+ import { contextNowActionFor, contextNowBandLabels } from './code-context-now-mapping.js';
11
+ /**
12
+ * The harness half of the probe: the window sync, its warning, the witness read
13
+ * and its notice. Lifted verbatim from the action body — it reads only its
14
+ * parameters.
15
+ */
16
+ export function readContextNowHarness(canonicalProjectRoot, sessionId, outerSessionId, probe) {
17
+ // the window this probe just divided by into the harness's own settings,
18
+ // so "85%" here and the harness's own trigger are one point on one
19
+ // scale. Idempotent (no write when the value is already in force) and a
20
+ // no-op when the probe carried no token window — peaks-loop never
21
+ // invents a number it did not measure.
22
+ const harnessWindow = syncHarnessWindowForProject({
23
+ projectRoot: canonicalProjectRoot,
24
+ env: process.env,
25
+ tokens: probe.capacityTokens ?? null
26
+ });
27
+ // The machine half of 要告知. A refused write is not automatically a
28
+ // non-event: the file may pin a window that disagrees with the one this
29
+ // probe just divided by, and then the ratio above describes a trigger
30
+ // the harness is not going to fire. `nextActions` carries the full
31
+ // sentence; this one line rides `warnings` so a JSON consumer cannot
32
+ // miss it either.
33
+ const harnessWindowWarning = harnessWindowSyncWarning(harnessWindow);
34
+ // own number for the same quantity, captured by the statusline. This is
35
+ // OBSERVATION ONLY — it never feeds `verdict` / `action` / any threshold
36
+ // below. A wrong reading here must not be able to fire a compact.
37
+ const harnessWitness = readAndCompareHarnessWitness({
38
+ // The same promoted root as the harness-window write above, for the
39
+ // same reason: the statusline resolves its root from the harness
40
+ // payload (absolute), so a `--project .` from a hook would otherwise
41
+ // look for the witness somewhere else and report `absent` forever.
42
+ projectRoot: canonicalProjectRoot,
43
+ sessionId,
44
+ peaksRatio: probe.ratio,
45
+ peaksTokens: probe.rawTokens ?? null,
46
+ peaksWindowTokens: probe.capacityTokens ?? null,
47
+ outerSessionId: outerSessionId ?? null
48
+ });
49
+ const witnessNotice = describeHarnessWitness(harnessWitness);
50
+ return { harnessWindow, harnessWindowWarning, harnessWitness, witnessNotice };
51
+ }
52
+ /**
53
+ * Slice H4 (rid=h4-context-now-mode-blind): ONE table, ONE mode
54
+ * resolver. The hard-coded ladder that used to live in the action read no mode
55
+ * at all, so on a 24h run (`partial` = 0.65/0.70/0.85) it answered `soft-warn`
56
+ * + `next: null` across [0.70, 0.85) — the band in which
57
+ * `peaks code auto-compact` had already decided to compact.
58
+ */
59
+ export function resolveContextNowDecision(canonicalProjectRoot, ratio, isJobMode) {
60
+ const compactMode = resolveAutoCompactProfile(canonicalProjectRoot);
61
+ const decided = contextNowActionFor(ratio, compactMode);
62
+ const action = decided.action;
63
+ const next = decided.next;
64
+ const verdict = action === 'red-line' ? 'red-line' : action === 'auto-compact-now' ? 'pre-compact' : action;
65
+ const bands = contextNowBandLabels(compactMode);
66
+ // in behaviour ABOVE 0.50 — both auto-fire at ≥0.85 and both red-line at
67
+ // ≥0.95". That was false: `partial` fires at 0.70, red-lines at 0.85.
68
+ // The lines now come from the table for the mode in force.
69
+ const gateModeNotice = isJobMode
70
+ ? `Job mode (job-shape.json isJob=true): the same ≥${bands.preCompactRatio} / ≥${bands.redLineRatio} thresholds apply, and the decision is recorded in job-shape.json.`
71
+ : `Single-rid mode: the same ≥${bands.preCompactRatio} / ≥${bands.redLineRatio} thresholds apply — ≥${bands.preCompactRatio} is MANDATORY auto-compact, not advisory.`;
72
+ return { action, next, verdict, bands, gateModeNotice };
73
+ }
74
+ /** The envelope's `data` record, lifted verbatim out of the action body. */
75
+ export function buildContextNowData(args) {
76
+ const { probe, decision, harness } = args;
77
+ return {
78
+ ratio: probe.ratio,
79
+ ratioPct: `${args.ratioPct}%`,
80
+ verdict: decision.verdict,
81
+ action: decision.action,
82
+ next: decision.next,
83
+ jobMode: args.isJobMode,
84
+ source: probe.source,
85
+ ide: probe.ide,
86
+ capacityBytes: probe.capacityBytes,
87
+ rawBytes: probe.rawBytes ?? null,
88
+ rawTokens: probe.rawTokens ?? null,
89
+ capacityTokens: probe.capacityTokens ?? null,
90
+ // capacityTokens (env-override | config | model-heuristic |
91
+ // default) — null for byte/percent sources, which have no window.
92
+ capacitySource: probe.capacitySource ?? null,
93
+ bytesPrompt: args.promptSizeBytes ?? null,
94
+ capturedAt: probe.capturedAt,
95
+ // window sync did on this probe. Reported rather than silent — the
96
+ // harness tells a user who overrides the window only via
97
+ // `/autocompact`, so peaks-loop must be the one that says it.
98
+ harnessWindow: harness.harnessWindow,
99
+ harnessWitness: harness.harnessWitness
100
+ };
101
+ }
102
+ /** The envelope's `warnings` array, lifted verbatim out of the action body. */
103
+ export function buildContextNowWarnings(harness) {
104
+ return [
105
+ ...(harness.harnessWindowWarning === null ? [] : [harness.harnessWindowWarning]),
106
+ // AC3: the disagreement rides `warnings` — it is a fact about the
107
+ // state, not an instruction — and it is one-way. Never an
108
+ // AskUserQuestion (see .peaks/memory/auto-compact-threshold-policy.md).
109
+ ...(harness.witnessNotice === null ? [] : [harness.witnessNotice])
110
+ ];
111
+ }
112
+ /** The envelope's `nextActions` array, lifted verbatim out of the action body. */
113
+ export function buildContextNowNextActions(decision, harness) {
114
+ const { action, next, bands, gateModeNotice } = decision;
115
+ return [
116
+ action === 'red-line'
117
+ ? `RED LINE: ≥ ${bands.redLine}%. Next: \`${next}\` — peaks-loop asks the harness to compact and KEEPS WORKING (dispatch is not blocked); re-probe to confirm it landed.`
118
+ : action === 'auto-compact-now'
119
+ ? `MANDATORY auto-compact (≥${bands.preCompact}%, every mode). Code MUST call \`${next}\` WITHOUT confirmation.`
120
+ : action === 'soft-warn'
121
+ ? `Soft warn (${bands.softWarn}–${bands.preCompact}%). Continue working; the next \`peaks code auto-compact\` will re-check.`
122
+ : `Below ${bands.softWarn}%. No action required.`,
123
+ gateModeNotice,
124
+ // Single wording, shared with `peaks code auto-compact` — see
125
+ // `describeHarnessWindowSync`.
126
+ describeHarnessWindowSync(harness.harnessWindow),
127
+ // AC3: the one-way hint that accompanies the `warnings` entry. Both
128
+ // channels carry the SAME fact in the shape each is read for
129
+ // (machine-readable warning vs human/LLM advice) — see
130
+ // `harnessWindowSyncWarning` / `describeHarnessWindowSync` above for
131
+ // the same split, and note this one never asks a question.
132
+ ...(harness.witnessNotice === null
133
+ ? []
134
+ : ['Re-probe with `peaks code context-now` to confirm; this is reported, not blocking.'])
135
+ ];
136
+ }
@@ -0,0 +1,27 @@
1
+ import { type AutoCompactMode } from '../../services/code/auto-compact-modes.js';
2
+ /**
3
+ * Slice H4 (rid=h4-context-now-mode-blind) — the ONE mapping from the shared
4
+ * `CompactTrigger` to this command's `action` vocabulary, so the two cannot
5
+ * drift: the trigger is `evaluateCompactTrigger`, the same function `peaks
6
+ * code auto-compact` decides with.
7
+ *
8
+ * `auto-fire` maps to `soft-warn` in BOTH modes: that tier is `peaks skill
9
+ * presence`'s — the every-turn probe, which reads this same table and mode
10
+ * resolver — so `context-now` has no auto-fire tier of its own (SKILL.md
11
+ * "two probes, two thresholds"). Reporting it as `auto-compact-now` would
12
+ * change every non-24h session's output, which slice H4 forbids.
13
+ */
14
+ export declare function contextNowActionFor(ratio: number, mode: AutoCompactMode): {
15
+ action: 'ok' | 'soft-warn' | 'auto-compact-now' | 'red-line';
16
+ next: string | null;
17
+ };
18
+ /** Slice H4: the labels `context-now` prints, read out of the table for the mode
19
+ * in force — the old hard-coded "≥0.85 / ≥0.95 / 50–85%" told a 24h operator
20
+ * the wrong lines. `*Ratio` is the `0.85` form `gateModeNotice` uses. */
21
+ export declare function contextNowBandLabels(mode: AutoCompactMode): {
22
+ softWarn: string;
23
+ preCompact: string;
24
+ redLine: string;
25
+ preCompactRatio: string;
26
+ redLineRatio: string;
27
+ };
@@ -0,0 +1,43 @@
1
+ // The one table-to-vocabulary mapping `peaks code context-now` decides with: the
2
+ // shared `CompactTrigger` kind translated to this command's `action`, and the labels
3
+ // it prints, both read out of the mode in force.
4
+ import { thresholdFor } from '../../services/code/auto-compact-modes.js';
5
+ import { AUTO_COMPACT_SOFT_WARN_RATIO } from '../../services/context/auto-compact-types.js';
6
+ import { evaluateCompactTrigger } from '../../services/code/auto-compact-orchestrator.js';
7
+ /** The one dispatch verb the action and red-line tiers name. */
8
+ const COMPACT_CMD = 'peaks code auto-compact';
9
+ /**
10
+ * Slice H4 (rid=h4-context-now-mode-blind) — the ONE mapping from the shared
11
+ * `CompactTrigger` to this command's `action` vocabulary, so the two cannot
12
+ * drift: the trigger is `evaluateCompactTrigger`, the same function `peaks
13
+ * code auto-compact` decides with.
14
+ *
15
+ * `auto-fire` maps to `soft-warn` in BOTH modes: that tier is `peaks skill
16
+ * presence`'s — the every-turn probe, which reads this same table and mode
17
+ * resolver — so `context-now` has no auto-fire tier of its own (SKILL.md
18
+ * "two probes, two thresholds"). Reporting it as `auto-compact-now` would
19
+ * change every non-24h session's output, which slice H4 forbids.
20
+ */
21
+ export function contextNowActionFor(ratio, mode) {
22
+ const kind = evaluateCompactTrigger(ratio, mode).kind;
23
+ if (kind === 'red-line')
24
+ return { action: 'red-line', next: COMPACT_CMD };
25
+ if (kind === 'pre-compact')
26
+ return { action: 'auto-compact-now', next: COMPACT_CMD };
27
+ return { action: kind === 'none' ? 'ok' : 'soft-warn', next: null };
28
+ }
29
+ /** Slice H4: the labels `context-now` prints, read out of the table for the mode
30
+ * in force — the old hard-coded "≥0.85 / ≥0.95 / 50–85%" told a 24h operator
31
+ * the wrong lines. `*Ratio` is the `0.85` form `gateModeNotice` uses. */
32
+ export function contextNowBandLabels(mode) {
33
+ const pct = (r) => `${(r * 100).toFixed(0)}`;
34
+ const pre = thresholdFor(mode, 'preCompact');
35
+ const red = thresholdFor(mode, 'redLine');
36
+ return {
37
+ softWarn: pct(AUTO_COMPACT_SOFT_WARN_RATIO),
38
+ preCompact: pct(pre),
39
+ redLine: pct(red),
40
+ preCompactRatio: pre.toFixed(2),
41
+ redLineRatio: red.toFixed(2)
42
+ };
43
+ }
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ import { type ProgramIO } from '../cli-helpers.js';
3
+ export declare function registerCodeEmitHandoffCommand(code: Command, io: ProgramIO): void;
@@ -0,0 +1,136 @@
1
+ import { addJsonOption, getErrorMessage, printResult } from '../cli-helpers.js';
2
+ import { fail, ok } from 'peaks-loop-shared/result';
3
+ import { evaluateEmitHandoff, JOB_COMPLETED_NO_SEDIMENT, JOB_NOT_INITIALIZED, JOB_REMAINING_BLOCKED } from '../../services/code/emit-handoff.js';
4
+ import { readActiveSid } from './code-runtime-session.js';
5
+ export function registerCodeEmitHandoffCommand(code, io) {
6
+ // v3.1.2 Step 11 / final handoff — Size-fear ban.
7
+ // Refuses to emit a final handoff while a Job has remaining slices.
8
+ addJsonOption(code
9
+ .command('emit-handoff')
10
+ .description('v3.1.2 Step 11 size-fear ban: under Job mode, refuse to emit a final ' +
11
+ 'handoff while remaining > 0. Exit 0 = allow, exit 1 = block. Pass ' +
12
+ '--force-under-job to override (requires explicit user approval).')
13
+ .requiredOption('--project <path>', 'target project root')
14
+ .option('--session-id <sid>', 'override session id (default: read from active presence)')
15
+ .option('--job-id <jid>', 'override job id (default: read from job-shape.json decision.suggestedJobId)')
16
+ .option('--force-under-job', 'override the remaining>0 block (explicit user approval required)')
17
+ .option('--force-no-sediment <reason>', 'override the no-sediment block on a COMPLETED Job: supply the reason the ' +
18
+ 'user approved a no-sediment outcome. A blank reason does not override.')).action((opts) => runEmitHandoff(opts, io));
19
+ }
20
+ function runEmitHandoff(opts, io) {
21
+ try {
22
+ const sessionId = opts.sessionId ?? readActiveSid(opts.project);
23
+ if (sessionId === null) {
24
+ printEmitHandoffNoSession(io, opts.json);
25
+ return;
26
+ }
27
+ const evalInput = {
28
+ projectRoot: opts.project,
29
+ sessionId
30
+ };
31
+ if (opts.jobId !== undefined)
32
+ evalInput.jobId = opts.jobId;
33
+ if (opts.forceUnderJob === true)
34
+ evalInput.forceUnderJob = true;
35
+ if (opts.forceNoSediment !== undefined)
36
+ evalInput.forceNoSedimentReason = opts.forceNoSediment;
37
+ const verdict = evaluateEmitHandoff(evalInput);
38
+ reportEmitHandoffVerdict(verdict, io, opts.json);
39
+ }
40
+ catch (err) {
41
+ reportEmitHandoffFailure(io, err, opts.json);
42
+ }
43
+ }
44
+ function reportEmitHandoffVerdict(verdict, io, json) {
45
+ if (verdict.kind === 'allow-not-job') {
46
+ printEmitHandoffAllowNotJob(io, json);
47
+ return;
48
+ }
49
+ if (verdict.kind === 'allow-done') {
50
+ printEmitHandoffAllowDone(verdict, io, json);
51
+ return;
52
+ }
53
+ if (verdict.kind === 'allow-force-override') {
54
+ printEmitHandoffAllowForceOverride(verdict, io, json);
55
+ return;
56
+ }
57
+ if (verdict.kind === 'block-not-initialized') {
58
+ printEmitHandoffBlockNotInitialized(verdict, io, json);
59
+ return;
60
+ }
61
+ if (verdict.kind === 'block-remaining') {
62
+ printEmitHandoffBlockRemaining(verdict, io, json);
63
+ return;
64
+ }
65
+ if (verdict.kind === 'allow-forced-no-sediment') {
66
+ printEmitHandoffAllowForcedNoSediment(verdict, io, json);
67
+ return;
68
+ }
69
+ printEmitHandoffBlockNoSediment(verdict, io, json);
70
+ }
71
+ function printEmitHandoffNoSession(io, json) {
72
+ const envelope = ok('code.emit-handoff', { allow: true, mode: 'no-session' }, [], ['No active session id; gate passes through (single-rid mode).']);
73
+ printResult(io, envelope, json);
74
+ }
75
+ function printEmitHandoffAllowNotJob(io, json) {
76
+ const envelope = ok('code.emit-handoff', { allow: true, mode: 'single' }, [], ['job-shape.json says isJob=false (or absent); normal handoff allowed.']);
77
+ printResult(io, envelope, json);
78
+ }
79
+ function printEmitHandoffAllowDone(verdict, io, json) {
80
+ const envelope = ok('code.emit-handoff', { allow: true, mode: 'job-done', remaining: verdict.remaining }, [], [`Job is complete (remaining=0); handoff allowed.`]);
81
+ printResult(io, envelope, json);
82
+ }
83
+ function printEmitHandoffAllowForceOverride(verdict, io, json) {
84
+ const envelope = ok('code.emit-handoff', { allow: true, mode: 'job-force-override', remaining: verdict.remaining }, [], [
85
+ `Job has ${verdict.remaining} remaining slices; --force-under-job override applied. Handoff allowed (explicit user approval).`
86
+ ]);
87
+ printResult(io, envelope, json);
88
+ }
89
+ function printEmitHandoffBlockNotInitialized(verdict, io, json) {
90
+ const envelope = fail('code.emit-handoff', JOB_NOT_INITIALIZED, `Job ${verdict.jobId} has no state.json; peaks job init was skipped.`, { jobId: verdict.jobId }, [`Run \`peaks job init --job-id ${verdict.jobId} --slice-list <...>\` before emitting handoff.`]);
91
+ printResult(io, envelope, json);
92
+ process.exitCode = 1;
93
+ }
94
+ function printEmitHandoffBlockRemaining(verdict, io, json) {
95
+ // block-remaining
96
+ const blockMessage = `BLOCKED: Job ${verdict.jobId} has ${verdict.remaining} remaining slices. Run \`peaks job status\`. Use --force-under-job only with explicit user approval.`;
97
+ const envelope = fail('code.emit-handoff', JOB_REMAINING_BLOCKED, blockMessage, { jobId: verdict.jobId, remaining: verdict.remaining }, [
98
+ `Run \`peaks job status --job-id ${verdict.jobId}\` to see remaining slices.`,
99
+ 'Resume Step 0.81 (per-slice checkpoint loop) and continue until remaining === 0.',
100
+ 'Use --force-under-job only with explicit user approval (size-fear ban override).'
101
+ ]);
102
+ io.stderr(`${blockMessage}\n`);
103
+ printResult(io, envelope, json);
104
+ process.exitCode = 1;
105
+ }
106
+ function printEmitHandoffAllowForcedNoSediment(verdict, io, json) {
107
+ const envelope = ok('code.emit-handoff', {
108
+ allow: true,
109
+ mode: 'job-forced-no-sediment',
110
+ remaining: verdict.remaining,
111
+ sedimentState: verdict.sedimentState,
112
+ approvedNoSedimentReason: verdict.reason
113
+ }, [], [
114
+ `Job is complete (remaining=0) and the session sedimented no memory (${verdict.sedimentState}); the user explicitly approved a no-sediment outcome — "${verdict.reason}". Handoff allowed.`
115
+ ]);
116
+ printResult(io, envelope, json);
117
+ }
118
+ function printEmitHandoffBlockNoSediment(verdict, io, json) {
119
+ const why = verdict.sedimentState === 'none'
120
+ ? 'the session sedimented no memory'
121
+ : 'the memory index could not be read, so it cannot be shown that the session sedimented any memory';
122
+ const blockMessage = `BLOCKED: Job ${verdict.jobId} is complete (remaining=0) but ${why}. Step 11 requires at least one memory in the project memory store, or an explicit user-approved no-sediment outcome. Run \`peaks memory extract --apply\` (or record a non-handoff memory with the user's help), then re-run.`;
123
+ const envelope = fail('code.emit-handoff', JOB_COMPLETED_NO_SEDIMENT, blockMessage, { jobId: verdict.jobId, sedimentState: verdict.sedimentState }, [
124
+ 'Sediment the session: run `peaks memory extract --project <root> --artifact .peaks/_runtime/<sessionId>/txt/handoff.md --apply --json`, then `peaks memory reindex --project <root> --apply --json`.',
125
+ 'Ask the user whether a no-sediment outcome is acceptable; only then re-run with `--force-no-sediment "<the reason the user gave>"`.'
126
+ ]);
127
+ io.stderr(`${blockMessage}\n`);
128
+ printResult(io, envelope, json);
129
+ process.exitCode = 1;
130
+ }
131
+ function reportEmitHandoffFailure(io, err, json) {
132
+ printResult(io, fail('code.emit-handoff', 'EMIT_HANDOFF_FAILED', getErrorMessage(err), null, [
133
+ 'Verify the project path and try again'
134
+ ]), json);
135
+ process.exitCode = 1;
136
+ }
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ import { type ProgramIO } from '../cli-helpers.js';
3
+ export declare function registerCodeGateStep08Command(code: Command, io: ProgramIO): void;