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
@@ -4,17 +4,16 @@
4
4
  // index coverage), its `--peaks-json` machine envelope, and the attribution
5
5
  // of upstream's `[OK] Index is up to date` line.
6
6
  //
7
- // Extracted verbatim from `codegraph-commands.ts` (rid
8
- // line is byte-identical and no behaviour changed; `attributeUpstreamUpToDate
7
+ // Extracted verbatim from `codegraph-commands.ts`; `attributeUpstreamUpToDate
9
8
  // Line` stays importable from `codegraph-commands.ts`, which re-exports it.
9
+ // The axis evaluation lives in `codegraph-status-integrity.ts` and the
10
+ // machine report in `codegraph-status-json.ts`.
10
11
  import { resolve } from 'node:path';
11
- import { createCodegraphInvocation, executeCodegraphInvocation, isCodegraphInitialized } from '../../services/codegraph/codegraph-service.js';
12
- import { CODEGRAPH_INTEGRITY_EXIT_CODE, inspectCodegraphExcludeIntegrity, isCodegraphExcludeConfigPresent, renderCodegraphExcludeIntegrityLines } from '../../services/codegraph/codegraph-exclude-integrity.js';
13
- import { CODEGRAPH_INDEX_INTEGRITY_EXIT_CODE, CODEGRAPH_INDEX_STRICT_ENV_VAR, CODEGRAPH_REPAIR_INDEX_COMMAND, codegraphIndexIntegrityExitCode, inspectCodegraphIndexIntegrity, isCodegraphIndexStrictMode, renderCodegraphIndexIntegrityLines, resolveCodegraphIndexIntegrityVerdict } from '../../services/codegraph/codegraph-index-integrity.js';
14
- import { readCodegraphProjectInputs } from '../../services/codegraph/codegraph-exclude-reconciler.js';
15
- import { fail, ok } from 'peaks-loop-shared/result';
16
- import { getErrorMessage, printResult, redactSensitiveErrorMessage } from '../cli-helpers.js';
17
- import { localizeUpstreamCodegraphText, printCodegraphFailure, runCodegraphCommand } from './codegraph-command-runtime.js';
12
+ import { CODEGRAPH_INTEGRITY_EXIT_CODE } from '../../services/codegraph/codegraph-exclude-integrity.js';
13
+ import { codegraphIndexIntegrityExitCode } from '../../services/codegraph/codegraph-index-integrity.js';
14
+ import { runCodegraphCommand } from './codegraph-command-runtime.js';
15
+ import { emitIntegrityText, readStatusAxes } from './codegraph-status-integrity.js';
16
+ import { runCodegraphStatusJson } from './codegraph-status-json.js';
18
17
  const ANSI_SGR_PATTERN = /\x1b\[[0-9;]*m/g;
19
18
  /**
20
19
  * Upstream `status` answers a different question than peaks-loop's
@@ -57,97 +56,20 @@ export function attributeUpstreamUpToDateLine(stdout) {
57
56
  .join('\n');
58
57
  }
59
58
  /**
60
- * `--peaks-json` machine report for `status`. Carries the upstream
61
- * result AND the peaks-loop integrity verdict as one JSON document so a
62
- * CI job can gate on `data.integrity.gap` / `data.integrity.rulesToRemove`
63
- * without scraping human text.
64
- *
65
- * EXIT-CODE PRECEDENCE (decided here, mirrored on the human path, pinned
66
- * by tests on BOTH axes):
67
- *
68
- * 1. upstream failed → upstream's exit code. Ranked FIRST because
69
- * every gate's remedy assumes upstream can run, and because the
70
- * gate's own branches would otherwise MASK a real command failure:
71
- * under the advisory default a gap exits 0, so a "gate first" order
72
- * would turn "upstream failed + gap" into exit 0 — the gate hiding a
73
- * failure. The gate verdicts stay in `data` verbatim, so ranking
74
- * them lower hides nothing.
75
- * 2. exclude gap → 74 (`CODEGRAPH_INDEX_INCOMPLETE`).
76
- * 3. index not evaluated → 76 (`CODEGRAPH_INDEX_NOT_EVALUATED`): the
77
- * axis was attempted and failed, which is NOT "verified clean".
78
- * 4. index gap → 75 (`CODEGRAPH_INDEX_GAP`) in strict mode,
79
- * 0 in the advisory default.
80
- *
81
- * The envelope still reports the finding in case 4 (`ok:false`, the same
82
- * `code`, plus `indexIntegritySeverity: 'warning'`) — the policy governs
83
- * the EXIT CODE, not whether the finding is visible. This mirrors the
84
- * doctor's established convention: `ok:false` + `severity:'warning'`
85
- * surfaces the finding without escalating the exit code.
59
+ * Gate precedence: exclude wins when both fire (it is the upstream cause,
60
+ * and repairing it also rebuilds the index the staleness axis is about).
61
+ * Then "not evaluated" outranks "gap", because an unmeasured axis must
62
+ * never be reported with the same status as a measured one. See
63
+ * `codegraphIndexIntegrityExitCode`.
86
64
  */
87
- async function runCodegraphStatusJson(io, options, integrity, integrityWarning, indexIntegrity, indexIntegrityWarning, indexVerdict, strict) {
88
- let result;
89
- try {
90
- result = await executeCodegraphInvocation(createCodegraphInvocation({ subcommand: 'status', project: options.project }));
91
- }
92
- catch (error) {
93
- printCodegraphFailure(io, 'codegraph.status', error, true);
94
- return true;
95
- }
96
- const upstream = {
97
- exitCode: result.exitCode,
98
- stdout: localizeUpstreamCodegraphText(result.stdout).trimEnd(),
99
- stderr: redactSensitiveErrorMessage(localizeUpstreamCodegraphText(result.stderr)).trimEnd()
100
- };
101
- const upstreamFailed = result.exitCode !== null && result.exitCode !== 0;
102
- const data = {
103
- upstream,
104
- integrity,
105
- integrityWarning,
106
- indexIntegrity,
107
- indexIntegrityWarning,
108
- indexIntegrityVerdict: indexVerdict,
109
- // Only meaningful where there IS a finding: a `clean` or `not-applicable`
110
- // axis has no severity, and reporting `'warning'` there would read as
111
- // "something was wrong but advisory".
112
- indexIntegritySeverity: indexVerdict === 'gap' ? (strict ? 'error' : 'warning') : null
113
- };
114
- if (upstreamFailed) {
115
- printResult(io, fail('codegraph.status', 'CODEGRAPH_COMMAND_FAILED', redactSensitiveErrorMessage(upstream.stderr ||
116
- upstream.stdout ||
117
- `codegraph exited with code ${String(result.exitCode)}`), data, ['Check the codegraph project path before retrying']), true);
118
- }
119
- else if (integrity?.gap === true) {
120
- printResult(io, fail('codegraph.status', 'CODEGRAPH_INDEX_INCOMPLETE', `codegraph index is incomplete: ${integrity.excludedTrackedCount} of ${integrity.trackedSourceCount} tracked source files are excluded by ${integrity.rulesToRemove.length} rule(s).`, data, [
121
- 'Run `peaks codegraph repair-exclude --project <root>` to drop the offending rules and rebuild the index.'
122
- ]), true);
123
- }
124
- else if (indexVerdict === 'not-evaluated') {
125
- // Distinct from the `ok` branch below on purpose: this axis produced
126
- // NO verdict, and the envelope must not read as "index verified".
127
- printResult(io, fail('codegraph.status', 'CODEGRAPH_INDEX_NOT_EVALUATED', `codegraph index integrity could not be evaluated: ${indexIntegrityWarning ?? 'unknown cause'}`, data, [
128
- 'The index was NOT measured — this is not a statement that the index is correct.',
129
- 'Re-run once the cause above is resolved.'
130
- ]), true);
131
- }
132
- else if (indexVerdict === 'gap') {
133
- printResult(io, fail('codegraph.status', 'CODEGRAPH_INDEX_GAP', `codegraph index does not cover the repository: ${indexIntegrity?.includeGap.length ?? 0} extractor-supported tracked file(s) are not admitted by the config's include globs, and ${indexIntegrity?.deadRows.length ?? 0} index row(s) point at files that no longer exist.`, data, strict
134
- ? [
135
- 'The index must admit every extractor-supported tracked file and hold no row for a path that is gone.',
136
- `Run \`${CODEGRAPH_REPAIR_INDEX_COMMAND}\` to drop the blocking exclude rules and rebuild the index without the stale rows.`
137
- ]
138
- : [
139
- 'Advisory: this gap is reported as a warning and the command exits 0.',
140
- `Set ${CODEGRAPH_INDEX_STRICT_ENV_VAR}=1 to make it blocking (exit ${CODEGRAPH_INDEX_INTEGRITY_EXIT_CODE}).`,
141
- `Run \`${CODEGRAPH_REPAIR_INDEX_COMMAND}\` to drop the blocking exclude rules and rebuild the index without the stale rows.`
142
- ]), true);
143
- }
144
- else {
145
- printResult(io, ok('codegraph.status', data), true);
65
+ function applyStatusExitCode(integrityGap, indexVerdict, strict) {
66
+ const indexExitCode = codegraphIndexIntegrityExitCode(indexVerdict, strict);
67
+ if (integrityGap) {
68
+ process.exitCode = CODEGRAPH_INTEGRITY_EXIT_CODE;
146
69
  }
147
- if (upstreamFailed) {
148
- process.exitCode = result.exitCode ?? 1;
70
+ else if (indexExitCode !== null) {
71
+ process.exitCode = indexExitCode;
149
72
  }
150
- return upstreamFailed;
151
73
  }
152
74
  /**
153
75
  * `peaks codegraph status` with an integrity gate.
@@ -168,135 +90,26 @@ async function runCodegraphStatusJson(io, options, integrity, integrityWarning,
168
90
  * (fresh) or `peaks codegraph repair-exclude` (explicit).
169
91
  */
170
92
  export async function runCodegraphStatusCommand(io, options, asJson) {
171
- let integrity = null;
172
- let integrityWarning = null;
173
- let indexIntegrity = null;
174
- let indexIntegrityWarning = null;
175
- const projectRoot = resolve(options.project);
176
- const strict = isCodegraphIndexStrictMode();
177
- // R12-1: the two axes have DIFFERENT applicability predicates, and folding
178
- // them into the config's alone is how a db-present / config-absent project
179
- // came to exit 0 in SILENCE — under `PEAKS_CODEGRAPH_INDEX_STRICT=1` too.
180
- // "Could not evaluate" is a verdict; it may not be spelled the same way as
181
- // "verified clean" merely because the read happened to be gated out.
182
- //
183
- // - exclude axis: applicable iff `.codegraph/config.json` exists. The
184
- // config IS the subject of that axis, so with no config there is no
185
- // exclusion list in play — `not-applicable`, silent, as before.
186
- // - index axis: applicable iff `.codegraph/codegraph.db` exists — the
187
- // SAME predicate the doctor's `defaultProbe` uses
188
- // (`isCodegraphInitialized` in
189
- // `doctor-service/checks/codegraph-index-integrity.ts`), so the two
190
- // consumers now agree about when the axis is evaluable at all. The
191
- // index is the subject here and the config is only an INPUT it reads,
192
- // so a missing config is "could not evaluate" (exit 76, `[FAIL]`),
193
- // not "nothing to evaluate".
194
- //
195
- // The user's constraint holds either way: an absent config is LEGITIMATE
196
- // for a project that never ran `peaks codegraph init` — with no db BOTH
197
- // predicates are false and the command stays silent exactly as before.
198
- const configPresent = isCodegraphExcludeConfigPresent(projectRoot);
199
- const indexPresent = isCodegraphInitialized(projectRoot);
200
- // The two axes are evaluated INDEPENDENTLY: an unreadable index must not
201
- // blind the exclude verdict, and a malformed exclude list must not hide a
202
- // stale index. Each failure degrades to its own warning.
203
- if (configPresent || indexPresent) {
204
- // Perf audit F1: both axes need the SAME tracked-file list and the SAME
205
- // config, and reading them per-axis spawned `git ls-files` twice per
206
- // command and re-ran the identical 32-glob `include` filter. Read once
207
- // and hand the values to both inspectors through their deps seam.
208
- let sharedInputs = null;
209
- try {
210
- sharedInputs = readCodegraphProjectInputs(projectRoot);
211
- }
212
- catch (error) {
213
- // One read, two blind axes — they consume exactly these two inputs,
214
- // so a failure here blinds both. Report it on both, rather than
215
- // letting the second axis re-run the same failing read to find out.
216
- // Each axis claims the failure only where it was applicable at all:
217
- // an unreadable CONFIG is not an exclude-axis finding on a project
218
- // that has no config by design.
219
- if (configPresent) {
220
- integrityWarning = getErrorMessage(error);
221
- }
222
- if (indexPresent) {
223
- indexIntegrityWarning = getErrorMessage(error);
224
- }
225
- }
226
- if (sharedInputs !== null) {
227
- if (configPresent) {
228
- try {
229
- integrity = inspectCodegraphExcludeIntegrity(projectRoot, sharedInputs);
230
- }
231
- catch (error) {
232
- integrityWarning = getErrorMessage(error);
233
- }
234
- }
235
- // The index axis needs an index. A config without `codegraph.db` is a
236
- // pre-init / dangling state, not a defect: there are no rows to be
237
- // stale and nothing `include` withheld from a graph that does not exist.
238
- if (indexPresent) {
239
- try {
240
- indexIntegrity = inspectCodegraphIndexIntegrity(projectRoot, sharedInputs);
241
- }
242
- catch (error) {
243
- indexIntegrityWarning = getErrorMessage(error);
244
- }
245
- }
246
- }
247
- }
248
- const indexVerdict = resolveCodegraphIndexIntegrityVerdict(indexIntegrity, indexIntegrityWarning);
249
- const indexGap = indexVerdict === 'gap';
93
+ const axes = readStatusAxes(resolve(options.project));
94
+ const integrityGap = axes.integrity?.gap === true;
95
+ const indexGap = axes.indexVerdict === 'gap';
250
96
  if (asJson === true) {
251
- const upstreamFailed = await runCodegraphStatusJson(io, options, integrity, integrityWarning, indexIntegrity, indexIntegrityWarning, indexVerdict, strict);
252
97
  // Upstream failure outranks both gates — and it already set the exit
253
98
  // code to upstream's (see `runCodegraphStatusJson`).
254
- if (upstreamFailed) {
99
+ if (await runCodegraphStatusJson(io, options, axes))
255
100
  return;
256
- }
257
101
  }
258
102
  else {
259
103
  // Only when a gate found a gap: upstream's `[OK] Index is up
260
104
  // to date` answers "consistent with the last scan", and printing it
261
105
  // unqualified right above our verdict tells the reader two opposite
262
106
  // things at once. Clean runs get no transform and stay byte-identical.
263
- const upstreamFailed = await runCodegraphCommand(io, 'codegraph.status', { subcommand: 'status', project: options.project }, false, integrity?.gap === true || indexGap ? attributeUpstreamUpToDateLine : undefined);
264
- if (integrityWarning !== null) {
265
- io.stdout(`[WARN] codegraph exclude integrity not evaluated: ${integrityWarning}`);
266
- }
267
- else if (integrity !== null) {
268
- for (const line of renderCodegraphExcludeIntegrityLines(integrity)) {
269
- io.stdout(line);
270
- }
271
- }
272
- if (indexVerdict === 'not-evaluated') {
273
- // `[FAIL]`, in every mode, because the command exits non-zero in
274
- // every mode: the axis was attempted and failed, so this is not a
275
- // statement about the index. Distinct wording from the gap line so
276
- // the two can never be confused.
277
- io.stdout(`[FAIL] codegraph index integrity could not be evaluated (the index was NOT measured): ${indexIntegrityWarning ?? 'unknown cause'}`);
278
- }
279
- else if (indexIntegrity !== null) {
280
- for (const line of renderCodegraphIndexIntegrityLines(indexIntegrity, strict)) {
281
- io.stdout(line);
282
- }
283
- }
107
+ const upstreamFailed = await runCodegraphCommand(io, 'codegraph.status', { subcommand: 'status', project: options.project }, false, integrityGap || indexGap ? attributeUpstreamUpToDateLine : undefined);
108
+ emitIntegrityText(io, axes);
284
109
  // Upstream failure outranks both gates — and it already set the exit
285
110
  // code to upstream's.
286
- if (upstreamFailed) {
111
+ if (upstreamFailed)
287
112
  return;
288
- }
289
- }
290
- // Gate precedence: exclude wins when both fire (it is the upstream cause,
291
- // and repairing it also rebuilds the index the staleness axis is about).
292
- // Then "not evaluated" outranks "gap", because an unmeasured axis must
293
- // never be reported with the same status as a measured one. See
294
- // `codegraphIndexIntegrityExitCode`.
295
- const indexExitCode = codegraphIndexIntegrityExitCode(indexVerdict, strict);
296
- if (integrity?.gap === true) {
297
- process.exitCode = CODEGRAPH_INTEGRITY_EXIT_CODE;
298
- }
299
- else if (indexExitCode !== null) {
300
- process.exitCode = indexExitCode;
301
113
  }
114
+ applyStatusExitCode(integrityGap, axes.indexVerdict, axes.strict);
302
115
  }
@@ -0,0 +1,44 @@
1
+ import { type CodegraphExcludeIntegrityReport } from '../../services/codegraph/codegraph-exclude-integrity.js';
2
+ import { type CodegraphIndexIntegrityReport, type CodegraphIndexIntegrityVerdict } from '../../services/codegraph/codegraph-index-integrity.js';
3
+ import { type ProgramIO } from '../cli-helpers.js';
4
+ /** Everything both the human and the machine branches of `status` report. */
5
+ export type CodegraphStatusAxes = {
6
+ readonly integrity: CodegraphExcludeIntegrityReport | null;
7
+ readonly integrityWarning: string | null;
8
+ readonly indexIntegrity: CodegraphIndexIntegrityReport | null;
9
+ readonly indexIntegrityWarning: string | null;
10
+ readonly indexVerdict: CodegraphIndexIntegrityVerdict;
11
+ readonly strict: boolean;
12
+ };
13
+ /**
14
+ * Read both axes for a project root.
15
+ *
16
+ * R12-1: the two axes have DIFFERENT applicability predicates, and folding
17
+ * them into the config's alone is how a db-present / config-absent project
18
+ * came to exit 0 in SILENCE — under `PEAKS_CODEGRAPH_INDEX_STRICT=1` too.
19
+ * "Could not evaluate" is a verdict; it may not be spelled the same way as
20
+ * "verified clean" merely because the read happened to be gated out.
21
+ *
22
+ * - exclude axis: applicable iff `.codegraph/config.json` exists. The
23
+ * config IS the subject of that axis, so with no config there is no
24
+ * exclusion list in play — `not-applicable`, silent, as before.
25
+ * - index axis: applicable iff `.codegraph/codegraph.db` exists — the
26
+ * SAME predicate the doctor's `defaultProbe` uses
27
+ * (`isCodegraphInitialized` in
28
+ * `doctor-service/checks/codegraph-index-integrity.ts`), so the two
29
+ * consumers now agree about when the axis is evaluable at all. The
30
+ * index is the subject here and the config is only an INPUT it reads,
31
+ * so a missing config is "could not evaluate" (exit 76, `[FAIL]`),
32
+ * not "nothing to evaluate".
33
+ *
34
+ * The user's constraint holds either way: an absent config is LEGITIMATE
35
+ * for a project that never ran `peaks codegraph init` — with no db BOTH
36
+ * predicates are false and the command stays silent exactly as before.
37
+ *
38
+ * The two axes are evaluated INDEPENDENTLY: an unreadable index must not
39
+ * blind the exclude verdict, and a malformed exclude list must not hide a
40
+ * stale index. Each failure degrades to its own warning.
41
+ */
42
+ export declare function readStatusAxes(projectRoot: string): CodegraphStatusAxes;
43
+ /** The human-readable axis report, printed only by the non-JSON branch. */
44
+ export declare function emitIntegrityText(io: ProgramIO, axes: CodegraphStatusAxes): void;
@@ -0,0 +1,121 @@
1
+ // src/cli/commands/codegraph-status-integrity.ts
2
+ //
3
+ // The two integrity axes `peaks codegraph status` evaluates, and the human
4
+ // reading of them. Split out of `codegraph-status-command.ts`; every
5
+ // applicability predicate, degradation rule and printed line is unchanged.
6
+ import { inspectCodegraphExcludeIntegrity, isCodegraphExcludeConfigPresent, renderCodegraphExcludeIntegrityLines } from '../../services/codegraph/codegraph-exclude-integrity.js';
7
+ import { inspectCodegraphIndexIntegrity, isCodegraphIndexStrictMode, renderCodegraphIndexIntegrityLines, resolveCodegraphIndexIntegrityVerdict } from '../../services/codegraph/codegraph-index-integrity.js';
8
+ import { isCodegraphInitialized } from '../../services/codegraph/codegraph-service.js';
9
+ import { readCodegraphProjectInputs } from '../../services/codegraph/codegraph-exclude-reconciler.js';
10
+ import { getErrorMessage } from '../cli-helpers.js';
11
+ /**
12
+ * Read both axes for a project root.
13
+ *
14
+ * R12-1: the two axes have DIFFERENT applicability predicates, and folding
15
+ * them into the config's alone is how a db-present / config-absent project
16
+ * came to exit 0 in SILENCE — under `PEAKS_CODEGRAPH_INDEX_STRICT=1` too.
17
+ * "Could not evaluate" is a verdict; it may not be spelled the same way as
18
+ * "verified clean" merely because the read happened to be gated out.
19
+ *
20
+ * - exclude axis: applicable iff `.codegraph/config.json` exists. The
21
+ * config IS the subject of that axis, so with no config there is no
22
+ * exclusion list in play — `not-applicable`, silent, as before.
23
+ * - index axis: applicable iff `.codegraph/codegraph.db` exists — the
24
+ * SAME predicate the doctor's `defaultProbe` uses
25
+ * (`isCodegraphInitialized` in
26
+ * `doctor-service/checks/codegraph-index-integrity.ts`), so the two
27
+ * consumers now agree about when the axis is evaluable at all. The
28
+ * index is the subject here and the config is only an INPUT it reads,
29
+ * so a missing config is "could not evaluate" (exit 76, `[FAIL]`),
30
+ * not "nothing to evaluate".
31
+ *
32
+ * The user's constraint holds either way: an absent config is LEGITIMATE
33
+ * for a project that never ran `peaks codegraph init` — with no db BOTH
34
+ * predicates are false and the command stays silent exactly as before.
35
+ *
36
+ * The two axes are evaluated INDEPENDENTLY: an unreadable index must not
37
+ * blind the exclude verdict, and a malformed exclude list must not hide a
38
+ * stale index. Each failure degrades to its own warning.
39
+ */
40
+ export function readStatusAxes(projectRoot) {
41
+ let integrity = null;
42
+ let integrityWarning = null;
43
+ let indexIntegrity = null;
44
+ let indexIntegrityWarning = null;
45
+ const configPresent = isCodegraphExcludeConfigPresent(projectRoot);
46
+ const indexPresent = isCodegraphInitialized(projectRoot);
47
+ if (configPresent || indexPresent) {
48
+ // Perf audit F1: both axes need the SAME tracked-file list and the SAME
49
+ // config, and reading them per-axis spawned `git ls-files` twice per
50
+ // command and re-ran the identical 32-glob `include` filter. Read once
51
+ // and hand the values to both inspectors through their deps seam.
52
+ let sharedInputs = null;
53
+ try {
54
+ sharedInputs = readCodegraphProjectInputs(projectRoot);
55
+ }
56
+ catch (error) {
57
+ // One read, two blind axes — they consume exactly these two inputs,
58
+ // so a failure here blinds both. Report it on both, rather than
59
+ // letting the second axis re-run the same failing read to find out.
60
+ // Each axis claims the failure only where it was applicable at all:
61
+ // an unreadable CONFIG is not an exclude-axis finding on a project
62
+ // that has no config by design.
63
+ if (configPresent)
64
+ integrityWarning = getErrorMessage(error);
65
+ if (indexPresent)
66
+ indexIntegrityWarning = getErrorMessage(error);
67
+ }
68
+ if (sharedInputs !== null) {
69
+ if (configPresent) {
70
+ try {
71
+ integrity = inspectCodegraphExcludeIntegrity(projectRoot, sharedInputs);
72
+ }
73
+ catch (error) {
74
+ integrityWarning = getErrorMessage(error);
75
+ }
76
+ }
77
+ // The index axis needs an index. A config without `codegraph.db` is a
78
+ // pre-init / dangling state, not a defect: there are no rows to be
79
+ // stale and nothing `include` withheld from a graph that does not exist.
80
+ if (indexPresent) {
81
+ try {
82
+ indexIntegrity = inspectCodegraphIndexIntegrity(projectRoot, sharedInputs);
83
+ }
84
+ catch (error) {
85
+ indexIntegrityWarning = getErrorMessage(error);
86
+ }
87
+ }
88
+ }
89
+ }
90
+ return {
91
+ integrity,
92
+ integrityWarning,
93
+ indexIntegrity,
94
+ indexIntegrityWarning,
95
+ indexVerdict: resolveCodegraphIndexIntegrityVerdict(indexIntegrity, indexIntegrityWarning),
96
+ strict: isCodegraphIndexStrictMode()
97
+ };
98
+ }
99
+ /** The human-readable axis report, printed only by the non-JSON branch. */
100
+ export function emitIntegrityText(io, axes) {
101
+ if (axes.integrityWarning !== null) {
102
+ io.stdout(`[WARN] codegraph exclude integrity not evaluated: ${axes.integrityWarning}`);
103
+ }
104
+ else if (axes.integrity !== null) {
105
+ for (const line of renderCodegraphExcludeIntegrityLines(axes.integrity)) {
106
+ io.stdout(line);
107
+ }
108
+ }
109
+ if (axes.indexVerdict === 'not-evaluated') {
110
+ // `[FAIL]`, in every mode, because the command exits non-zero in
111
+ // every mode: the axis was attempted and failed, so this is not a
112
+ // statement about the index. Distinct wording from the gap line so
113
+ // the two can never be confused.
114
+ io.stdout(`[FAIL] codegraph index integrity could not be evaluated (the index was NOT measured): ${axes.indexIntegrityWarning ?? 'unknown cause'}`);
115
+ }
116
+ else if (axes.indexIntegrity !== null) {
117
+ for (const line of renderCodegraphIndexIntegrityLines(axes.indexIntegrity, axes.strict)) {
118
+ io.stdout(line);
119
+ }
120
+ }
121
+ }
@@ -0,0 +1,5 @@
1
+ import { type ProgramIO } from '../cli-helpers.js';
2
+ import { type CommonCodegraphOptions } from './codegraph-command-runtime.js';
3
+ import type { CodegraphStatusAxes } from './codegraph-status-integrity.js';
4
+ /** Returns true when upstream failed (the caller must stop before the gates). */
5
+ export declare function runCodegraphStatusJson(io: ProgramIO, options: CommonCodegraphOptions, axes: CodegraphStatusAxes): Promise<boolean>;
@@ -0,0 +1,127 @@
1
+ // src/cli/commands/codegraph-status-json.ts
2
+ //
3
+ // The `--peaks-json` machine report for `peaks codegraph status`. Split out of
4
+ // `codegraph-status-command.ts`; every envelope code, message, `data` field,
5
+ // next-action string and exit-code rule is unchanged.
6
+ //
7
+ // EXIT-CODE PRECEDENCE (decided here, mirrored on the human path, pinned
8
+ // by tests on BOTH axes):
9
+ //
10
+ // 1. upstream failed → upstream's exit code. Ranked FIRST because
11
+ // every gate's remedy assumes upstream can run, and because the
12
+ // gate's own branches would otherwise MASK a real command failure:
13
+ // under the advisory default a gap exits 0, so a "gate first" order
14
+ // would turn "upstream failed + gap" into exit 0 — the gate hiding a
15
+ // failure. The gate verdicts stay in `data` verbatim, so ranking
16
+ // them lower hides nothing.
17
+ // 2. exclude gap → 74 (`CODEGRAPH_INDEX_INCOMPLETE`).
18
+ // 3. index not evaluated → 76 (`CODEGRAPH_INDEX_NOT_EVALUATED`): the
19
+ // axis was attempted and failed, which is NOT "verified clean".
20
+ // 4. index gap → 75 (`CODEGRAPH_INDEX_GAP`) in strict mode,
21
+ // 0 in the advisory default.
22
+ //
23
+ // The envelope still reports the finding in case 4 (`ok:false`, the same
24
+ // `code`, plus `indexIntegritySeverity: 'warning'`) — the policy governs
25
+ // the EXIT CODE, not whether the finding is visible. This mirrors the
26
+ // doctor's established convention: `ok:false` + `severity:'warning'`
27
+ // surfaces the finding without escalating the exit code.
28
+ import { fail, ok } from 'peaks-loop-shared/result';
29
+ import { CODEGRAPH_INDEX_INTEGRITY_EXIT_CODE, CODEGRAPH_INDEX_STRICT_ENV_VAR, CODEGRAPH_REPAIR_INDEX_COMMAND } from '../../services/codegraph/codegraph-index-integrity.js';
30
+ import { createCodegraphInvocation, executeCodegraphInvocation } from '../../services/codegraph/codegraph-service.js';
31
+ import { printResult, redactSensitiveErrorMessage } from '../cli-helpers.js';
32
+ import { localizeUpstreamCodegraphText, printCodegraphFailure } from './codegraph-command-runtime.js';
33
+ /**
34
+ * `--peaks-json` machine report for `status`. Carries the upstream
35
+ * result AND the peaks-loop integrity verdict as one JSON document so a
36
+ * CI job can gate on `data.integrity.gap` / `data.integrity.rulesToRemove`
37
+ * without scraping human text.
38
+ */
39
+ function buildStatusReport(result, axes) {
40
+ const upstream = {
41
+ exitCode: result.exitCode,
42
+ stdout: localizeUpstreamCodegraphText(result.stdout).trimEnd(),
43
+ stderr: redactSensitiveErrorMessage(localizeUpstreamCodegraphText(result.stderr)).trimEnd()
44
+ };
45
+ return {
46
+ upstream,
47
+ data: {
48
+ upstream,
49
+ integrity: axes.integrity,
50
+ integrityWarning: axes.integrityWarning,
51
+ indexIntegrity: axes.indexIntegrity,
52
+ indexIntegrityWarning: axes.indexIntegrityWarning,
53
+ indexIntegrityVerdict: axes.indexVerdict,
54
+ // Only meaningful where there IS a finding: a `clean` or `not-applicable`
55
+ // axis has no severity, and reporting `'warning'` there would read as
56
+ // "something was wrong but advisory".
57
+ indexIntegritySeverity: axes.indexVerdict === 'gap' ? (axes.strict ? 'error' : 'warning') : null
58
+ }
59
+ };
60
+ }
61
+ /** The refusal an index gap produces, in strict or advisory wording. */
62
+ function indexGapVerdict(axes) {
63
+ const includeGap = axes.indexIntegrity?.includeGap.length ?? 0;
64
+ const deadRows = axes.indexIntegrity?.deadRows.length ?? 0;
65
+ return {
66
+ message: `codegraph index does not cover the repository: ${includeGap} extractor-supported tracked file(s) are not admitted by the config's include globs, and ${deadRows} index row(s) point at files that no longer exist.`,
67
+ nextActions: axes.strict
68
+ ? [
69
+ 'The index must admit every extractor-supported tracked file and hold no row for a path that is gone.',
70
+ `Run \`${CODEGRAPH_REPAIR_INDEX_COMMAND}\` to drop the blocking exclude rules and rebuild the index without the stale rows.`
71
+ ]
72
+ : [
73
+ 'Advisory: this gap is reported as a warning and the command exits 0.',
74
+ `Set ${CODEGRAPH_INDEX_STRICT_ENV_VAR}=1 to make it blocking (exit ${CODEGRAPH_INDEX_INTEGRITY_EXIT_CODE}).`,
75
+ `Run \`${CODEGRAPH_REPAIR_INDEX_COMMAND}\` to drop the blocking exclude rules and rebuild the index without the stale rows.`
76
+ ]
77
+ };
78
+ }
79
+ /** Upstream failed: its exit code outranks both gates, so it is ranked first. */
80
+ function emitUpstreamFailure(io, result, report) {
81
+ const { stdout, stderr } = report.upstream;
82
+ printResult(io, fail('codegraph.status', 'CODEGRAPH_COMMAND_FAILED', redactSensitiveErrorMessage(stderr || stdout || `codegraph exited with code ${String(result.exitCode)}`), report.data, ['Check the codegraph project path before retrying']), true);
83
+ }
84
+ /** The gate verdicts, in precedence order, when upstream itself succeeded. */
85
+ function emitGateVerdict(io, axes, data) {
86
+ const integrity = axes.integrity;
87
+ if (integrity?.gap === true) {
88
+ printResult(io, fail('codegraph.status', 'CODEGRAPH_INDEX_INCOMPLETE', `codegraph index is incomplete: ${integrity.excludedTrackedCount} of ${integrity.trackedSourceCount} tracked source files are excluded by ${integrity.rulesToRemove.length} rule(s).`, data, [
89
+ 'Run `peaks codegraph repair-exclude --project <root>` to drop the offending rules and rebuild the index.'
90
+ ]), true);
91
+ return;
92
+ }
93
+ if (axes.indexVerdict === 'not-evaluated') {
94
+ // Distinct from the `ok` branch below on purpose: this axis produced
95
+ // NO verdict, and the envelope must not read as "index verified".
96
+ printResult(io, fail('codegraph.status', 'CODEGRAPH_INDEX_NOT_EVALUATED', `codegraph index integrity could not be evaluated: ${axes.indexIntegrityWarning ?? 'unknown cause'}`, data, [
97
+ 'The index was NOT measured — this is not a statement that the index is correct.',
98
+ 'Re-run once the cause above is resolved.'
99
+ ]), true);
100
+ return;
101
+ }
102
+ if (axes.indexVerdict === 'gap') {
103
+ const verdict = indexGapVerdict(axes);
104
+ printResult(io, fail('codegraph.status', 'CODEGRAPH_INDEX_GAP', verdict.message, data, verdict.nextActions), true);
105
+ return;
106
+ }
107
+ printResult(io, ok('codegraph.status', data), true);
108
+ }
109
+ /** Returns true when upstream failed (the caller must stop before the gates). */
110
+ export async function runCodegraphStatusJson(io, options, axes) {
111
+ let result;
112
+ try {
113
+ result = await executeCodegraphInvocation(createCodegraphInvocation({ subcommand: 'status', project: options.project }));
114
+ }
115
+ catch (error) {
116
+ printCodegraphFailure(io, 'codegraph.status', error, true);
117
+ return true;
118
+ }
119
+ const report = buildStatusReport(result, axes);
120
+ if (result.exitCode !== null && result.exitCode !== 0) {
121
+ emitUpstreamFailure(io, result, report);
122
+ process.exitCode = result.exitCode ?? 1;
123
+ return true;
124
+ }
125
+ emitGateVerdict(io, axes, report.data);
126
+ return false;
127
+ }
@@ -12,9 +12,13 @@
12
12
  * - force: Write a pre-compact checkpoint via
13
13
  * `peaks session checkpoint`; the IDE-side `/compact`
14
14
  * is still the LLM's call.
15
+ * - history / harness-window / settle: the observability and hook
16
+ * transport for the window this group reports on.
15
17
  *
16
- * Each subcommand returns a `--json` envelope via `printResult`.
18
+ * Each subcommand returns a `--json` envelope via `printResult`. This module is
19
+ * the registrar: the parent group is created here and handed to each command's
20
+ * own module.
17
21
  */
18
22
  import type { Command } from 'commander';
19
- import { type ProgramIO } from '../cli-helpers.js';
23
+ import type { ProgramIO } from '../cli-helpers.js';
20
24
  export declare function registerCompactCommands(program: Command, io: ProgramIO): void;