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
@@ -1,7 +1,16 @@
1
- import { closeSync, existsSync, openSync, readFileSync, readSync, readdirSync, statSync } from 'node:fs';
1
+ import { closeSync, openSync, readSync, statSync } from 'node:fs';
2
2
  import { homedir } from 'node:os';
3
3
  import { join, resolve } from 'node:path';
4
4
  import { claudeCodeSubAgentDispatcher } from '../../dispatch/sub-agent-dispatcher.js';
5
+ import { findTranscriptJsonl, readClaudeStatuslinePercent, resolveClaudeTranscriptPath } from './claude-code-local-state.js';
6
+ import { DEFAULT_CONTEXT_WINDOW_TOKENS, ONE_MILLION_CONTEXT_TOKENS, modelContextWindowTokens, resolveClaudeModelFromEnv } from './claude-code-model-window.js';
7
+ // Re-exported so the public surface of this module is unchanged by the split:
8
+ // the readers live in `claude-code-local-state.ts` now, but every existing
9
+ // importer keeps resolving them from here.
10
+ export { resolveClaudeTranscriptPath };
11
+ // Likewise the model-id / window-size pair, which moved into
12
+ // `claude-code-model-window.ts` to make room for `mcpInstall` below.
13
+ export { modelContextWindowTokens, resolveClaudeModelFromEnv };
5
14
  /**
6
15
  * Claude Code adapter —— peaks-loop 的"起源 IDE"。
7
16
  *
@@ -17,178 +26,8 @@ import { claudeCodeSubAgentDispatcher } from '../../dispatch/sub-agent-dispatche
17
26
  *
18
27
  * 不可消除的 per-IDE 字段(见 tech-doc.md §1.3)。
19
28
  */
20
- /**
21
- * Read Claude Code's statusline state file
22
- * (`~/.claude/statusline-state.json`) and parse a context-percent key.
23
- * Moved from the generic reader in slice
24
- * only in the Claude Code adapter.
25
- */
26
- function readClaudeStatuslinePercent() {
27
- const path = join(homedir(), '.claude', 'statusline-state.json');
28
- if (!existsSync(path))
29
- return null;
30
- try {
31
- const json = JSON.parse(readFileSync(path, 'utf8'));
32
- const candidates = ['contextPercent', 'context_usage_percent', 'contextPercentUsed'];
33
- for (const key of candidates) {
34
- const raw = json[key];
35
- if (typeof raw === 'number' && Number.isFinite(raw)) {
36
- return raw > 1.5 ? raw / 100 : Math.max(0, Math.min(1, raw));
37
- }
38
- }
39
- }
40
- catch (err) {
41
- // TODO(g2): legacy silent catch — now narrows to IO errors only (grace: 1 minor release, v2.14.0)
42
- if (err instanceof ReferenceError)
43
- throw err; // surface module-load bugs
44
- if (err instanceof SyntaxError)
45
- throw err; // surface parse bugs (e.g. broken statusline JSON)
46
- return null; // only swallow IO errors
47
- }
48
- return null;
49
- }
50
- /**
51
- * Recursive search for `<outerSessionId>.jsonl` under `projectsDir`. The
52
- * Mac layout encodes the cwd as a single hash directory; on Mac Claude Code
53
- * nests the transcript under that hash with an extra level of subdirectory we
54
- * cannot predict ahead of time. A flat readdir misses that branch and returns
55
- * null — the silent-failure mode this recursion closes.
56
- *
57
- * Moved from the generic reader in slice
58
- * session id (Claude Code names its transcript by the outer session UUID),
59
- * NOT the peaks session id.
60
- */
61
- function findTranscriptJsonl(projectsDir, outerSessionId) {
62
- if (!existsSync(projectsDir))
63
- return null;
64
- try {
65
- const stack = [projectsDir];
66
- while (stack.length > 0) {
67
- const dir = stack.pop();
68
- if (dir === undefined)
69
- break;
70
- const entries = readdirSync(dir, { withFileTypes: true });
71
- for (const entry of entries) {
72
- const full = join(dir, entry.name);
73
- if (entry.isDirectory()) {
74
- stack.push(full);
75
- }
76
- else if (entry.isFile() && entry.name === `${outerSessionId}.jsonl`) {
77
- return full;
78
- }
79
- }
80
- }
81
- }
82
- catch (err) {
83
- // TODO(g2): legacy silent catch — now narrows to IO errors only (grace: 1 minor release, v2.14.0)
84
- if (err instanceof ReferenceError)
85
- throw err; // surface module-load bugs
86
- if (err instanceof SyntaxError)
87
- throw err; // surface parse bugs
88
- return null; // only swallow IO errors
89
- }
90
- return null;
91
- }
92
- /**
93
- * Resolve the absolute path of a Claude Code transcript jsonl by OUTER
94
- * session id, searching `~/.claude/projects/**` recursively.
95
- *
96
- * `peaks code context-audit` reuses THIS locator instead of re-implementing
97
- * the recursive find. Returns `null` when the transcript does not exist —
98
- * callers MUST treat that as "unavailable", never as an error.
99
- */
100
- export function resolveClaudeTranscriptPath(outerSessionId, projectsDir = join(homedir(), '.claude', 'projects')) {
101
- if (typeof outerSessionId !== 'string' || outerSessionId.length === 0)
102
- return null;
103
- return findTranscriptJsonl(projectsDir, outerSessionId);
104
- }
105
- /** 1M-context window size in tokens (documented single choice: 1,000,000). */
106
- const ONE_MILLION_CONTEXT_TOKENS = 1_000_000;
107
- /** Safe-default (non-1M) context window size in tokens. */
108
- const DEFAULT_CONTEXT_WINDOW_TOKENS = 200_000;
109
29
  /** Reverse-scan chunk size in bytes (keeps memory bounded on multi-MB transcripts). */
110
30
  const TRANSCRIPT_SCAN_CHUNK_BYTES = 64 * 1024;
111
- /**
112
- * Known 1M-context Claude model id prefixes whose ids do NOT carry a `1m`
113
- * suffix (e.g. `claude-sonnet-4-5-20250929`). The substring match is
114
- * intentionally generous — every `claude-sonnet-4*` / `claude-opus-4*`
115
- * variant is 1M-context.
116
- */
117
- const ONE_MILLION_CONTEXT_MODELS = ['claude-opus-4', 'claude-sonnet-4'];
118
- /**
119
- * Claude Code runtime env vars that may carry the currently-active model id,
120
- * in documented precedence order (first non-empty value wins):
121
- * 1. ANTHROPIC_MODEL — explicit per-run model override
122
- * 2. ANTHROPIC_DEFAULT_OPUS_MODEL — default Opus fallback
123
- * 3. ANTHROPIC_DEFAULT_SONNET_MODEL — default Sonnet fallback
124
- * 4. ANTHROPIC_DEFAULT_HAIKU_MODEL — default Haiku fallback
125
- * 5. ANTHROPIC_DEFAULT_FABLE_MODEL — default Fable fallback
126
- * 6. CLAUDE_CODE_SUBAGENT_MODEL — sub-agent model (used when the others
127
- * are absent, e.g. a sub-agent-only env)
128
- *
129
- * Why env-first: the transcript's `message.model` often drops Claude Code's
130
- * `[1M]` / `[200K]` suffix marker (observed: `deepseek-v4-flash`), while the
131
- * runtime env vars above carry it (`deepseek-v4-flash[1M]`). Reading them
132
- * first lets the window resolver see the true context window. This family is
133
- * vendor-specific, so it lives ONLY in the claude-code adapter.
134
- */
135
- const CLAUDE_CODE_MODEL_ENV_VARS = [
136
- 'ANTHROPIC_MODEL',
137
- 'ANTHROPIC_DEFAULT_OPUS_MODEL',
138
- 'ANTHROPIC_DEFAULT_SONNET_MODEL',
139
- 'ANTHROPIC_DEFAULT_HAIKU_MODEL',
140
- 'ANTHROPIC_DEFAULT_FABLE_MODEL',
141
- 'CLAUDE_CODE_SUBAGENT_MODEL'
142
- ];
143
- /**
144
- * Resolve the currently-active Claude Code model id from a runtime env map.
145
- * Returns the first non-empty `CLAUDE_CODE_MODEL_ENV_VARS` value (trimmed), or
146
- * `undefined` when none is present. Pure + exported for tests; the caller falls
147
- * back to the transcript `message.model` when this returns undefined.
148
- */
149
- export function resolveClaudeModelFromEnv(env) {
150
- if (!env)
151
- return undefined;
152
- for (const name of CLAUDE_CODE_MODEL_ENV_VARS) {
153
- const value = env[name];
154
- if (typeof value === 'string') {
155
- const trimmed = value.trim();
156
- if (trimmed.length > 0)
157
- return trimmed;
158
- }
159
- }
160
- return undefined;
161
- }
162
- /**
163
- * Model-aware context-window size in tokens.
164
- *
165
- * Detection rule (documented):
166
- * 1. Empty / unknown model → DEFAULT_CONTEXT_WINDOW_TOKENS (200_000).
167
- * 2. Suffix heuristic — a model id containing `1m` (case-insensitive) is
168
- * treated as 1M-context.
169
- * 3. Explicit allowlist — known 1M Claude model ids
170
- * (ONE_MILLION_CONTEXT_MODELS).
171
- * 4. Everything else → 200_000 (the safe default).
172
- *
173
- * Callers MAY additionally infer ≥1M from the observed token count: if
174
- * `contextTokens > DEFAULT_CONTEXT_WINDOW_TOKENS`, the model cannot be a
175
- * 200K model and must be ≥1M (see `readClaudeTranscriptEstimate`).
176
- *
177
- * This is the HEURISTIC layer only. Explicit user overrides sit ABOVE it —
178
- * see `resolveContextWindow`, which is what the probe actually calls.
179
- */
180
- export function modelContextWindowTokens(model) {
181
- const m = model.trim().toLowerCase();
182
- if (m.length === 0)
183
- return DEFAULT_CONTEXT_WINDOW_TOKENS;
184
- if (m.includes('1m'))
185
- return ONE_MILLION_CONTEXT_TOKENS;
186
- for (const known of ONE_MILLION_CONTEXT_MODELS) {
187
- if (m.includes(known))
188
- return ONE_MILLION_CONTEXT_TOKENS;
189
- }
190
- return DEFAULT_CONTEXT_WINDOW_TOKENS;
191
- }
192
31
  /**
193
32
  * the context-window size in tokens. Third-party / proxied models whose id
194
33
  * carries no `[1M]` suffix (and is absent from the hardcoded allowlist) are
@@ -602,6 +441,44 @@ export const CLAUDE_CODE_ADAPTER = {
602
441
  envVar: 'CLAUDE_PROJECT_DIR',
603
442
  hookEvent: 'PreToolUse',
604
443
  toolMatcher: 'Bash',
444
+ // BOTH channels a peaks MCP server can reach this harness through. The hook
445
+ // entry installed below covers the pair, and the pre-tool branch matches
446
+ // against the pair; one template would leave the other channel unenforced and
447
+ // nobody would notice, because a matcher that never fires looks like a clean
448
+ // call.
449
+ mcp: {
450
+ toolNameTemplates: ['mcp__peaks__*', 'mcp__plugin_peaks-loop_peaks__*']
451
+ },
452
+ // How this harness REGISTERS a peaks MCP server. The entry
453
+ // is the harness's OWN verb, not a hand-edit of its config file, which is
454
+ // full of the user's state (spec §8.3). The shape is recorded in spec §13 —
455
+ // it is read off that table, not invented here:
456
+ // - the `--` before the server argv is LOAD-BEARING: everything after it is
457
+ // passed to the server verbatim, otherwise the harness reads the server's
458
+ // own flags as its own;
459
+ // - the verb is NOT idempotent — same name, same scope fails, with no
460
+ // `--force` and no `update` — which is why the engine removes first.
461
+ // `scopes` is `user` alone: that is the scope a peaks install writes (spec
462
+ // §8.4), and sweeping a scope peaks never wrote would delete a user's own
463
+ // entry under the same name.
464
+ mcpInstall: {
465
+ serverName: 'peaks',
466
+ scopes: ['user'],
467
+ targetScope: 'user',
468
+ addArgv: [
469
+ 'claude',
470
+ 'mcp',
471
+ 'add',
472
+ '--scope',
473
+ '<scope>',
474
+ '--transport',
475
+ 'stdio',
476
+ '<name>',
477
+ '--',
478
+ '<server-argv>'
479
+ ],
480
+ removeArgv: ['claude', 'mcp', 'remove', '<name>', '--scope', '<scope>']
481
+ },
605
482
  // Slice #009: Claude Code uses the `Task` tool for sub-agent dispatch.
606
483
  // The CLI calls `claudeCodeSubAgentDispatcher.buildToolCall` to construct
607
484
  // the exact args shape the `Task` tool expects.
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Read Claude Code's statusline state file
3
+ * (`~/.claude/statusline-state.json`) and parse a context-percent key.
4
+ * Moved from the generic reader in slice
5
+ * only in the Claude Code adapter.
6
+ */
7
+ export declare function readClaudeStatuslinePercent(): number | null;
8
+ /**
9
+ * Recursive search for `<outerSessionId>.jsonl` under `projectsDir`. The
10
+ * Mac layout encodes the cwd as a single hash directory; on Mac Claude Code
11
+ * nests the transcript under that hash with an extra level of subdirectory we
12
+ * cannot predict ahead of time. A flat readdir misses that branch and returns
13
+ * null — the silent-failure mode this recursion closes.
14
+ *
15
+ * Moved from the generic reader in slice
16
+ * session id (Claude Code names its transcript by the outer session UUID),
17
+ * NOT the peaks session id.
18
+ */
19
+ export declare function findTranscriptJsonl(projectsDir: string, outerSessionId: string): string | null;
20
+ /**
21
+ * Resolve the absolute path of a Claude Code transcript jsonl by OUTER
22
+ * session id, searching `~/.claude/projects/**` recursively.
23
+ *
24
+ * `peaks code context-audit` reuses THIS locator instead of re-implementing
25
+ * the recursive find. Returns `null` when the transcript does not exist —
26
+ * callers MUST treat that as "unavailable", never as an error.
27
+ */
28
+ export declare function resolveClaudeTranscriptPath(outerSessionId: string, projectsDir?: string): string | null;
@@ -0,0 +1,112 @@
1
+ // src/services/ide/adapters/claude-code-local-state.ts
2
+ //
3
+ // The readers for Claude Code's OWN on-disk state — its statusline state file and
4
+ // its transcript directory layout. Split out of `claude-code-adapter.ts`,
5
+ // verbatim and with one import apiece, because that file sits far past the
6
+ // 300-line cap and the repo's size ratchet only ever goes down: the adapter
7
+ // needs room for new declared surface, and a self-contained reader leaving is
8
+ // how a file earns that room instead of raising the ceiling.
9
+ //
10
+ // Nothing here is peaks-loop state. Every path below belongs to the harness, and
11
+ // every function tolerates its absence by answering `null` — a machine without a
12
+ // statusline file is not a broken machine.
13
+ import { existsSync, readFileSync, readdirSync } from 'node:fs';
14
+ import { homedir } from 'node:os';
15
+ import { join } from 'node:path';
16
+ /**
17
+ * Above this, a stored value is a percentage rather than a 0–1 fraction. Both
18
+ * spellings occur in the wild, and nothing needs to know which one the harness
19
+ * picked.
20
+ */
21
+ const PERCENT_VERSUS_FRACTION = 1.5;
22
+ /**
23
+ * Read Claude Code's statusline state file
24
+ * (`~/.claude/statusline-state.json`) and parse a context-percent key.
25
+ * Moved from the generic reader in slice
26
+ * only in the Claude Code adapter.
27
+ */
28
+ export function readClaudeStatuslinePercent() {
29
+ const path = join(homedir(), '.claude', 'statusline-state.json');
30
+ if (!existsSync(path))
31
+ return null;
32
+ try {
33
+ const json = JSON.parse(readFileSync(path, 'utf8'));
34
+ const candidates = ['contextPercent', 'context_usage_percent', 'contextPercentUsed'];
35
+ for (const key of candidates) {
36
+ const raw = json[key];
37
+ if (typeof raw === 'number' && Number.isFinite(raw)) {
38
+ return raw > PERCENT_VERSUS_FRACTION ? raw / 100 : Math.max(0, Math.min(1, raw));
39
+ }
40
+ }
41
+ }
42
+ catch (err) {
43
+ // TODO(g2): legacy silent catch — now narrows to IO errors only (grace: 1 minor release, v2.14.0)
44
+ if (err instanceof ReferenceError)
45
+ throw err; // surface module-load bugs
46
+ if (err instanceof SyntaxError)
47
+ throw err; // surface parse bugs (e.g. broken statusline JSON)
48
+ return null; // only swallow IO errors
49
+ }
50
+ return null;
51
+ }
52
+ /** One directory's worth of the walk: recurse into directories, return a matching file. */
53
+ function scanForFile(dir, fileName, pending) {
54
+ for (const entry of readdirSync(dir, { withFileTypes: true })) {
55
+ const full = join(dir, entry.name);
56
+ if (entry.isDirectory()) {
57
+ pending.push(full);
58
+ }
59
+ else if (entry.isFile() && entry.name === fileName) {
60
+ return full;
61
+ }
62
+ }
63
+ return null;
64
+ }
65
+ /**
66
+ * Recursive search for `<outerSessionId>.jsonl` under `projectsDir`. The
67
+ * Mac layout encodes the cwd as a single hash directory; on Mac Claude Code
68
+ * nests the transcript under that hash with an extra level of subdirectory we
69
+ * cannot predict ahead of time. A flat readdir misses that branch and returns
70
+ * null — the silent-failure mode this recursion closes.
71
+ *
72
+ * Moved from the generic reader in slice
73
+ * session id (Claude Code names its transcript by the outer session UUID),
74
+ * NOT the peaks session id.
75
+ */
76
+ export function findTranscriptJsonl(projectsDir, outerSessionId) {
77
+ if (!existsSync(projectsDir))
78
+ return null;
79
+ const pending = [projectsDir];
80
+ try {
81
+ while (pending.length > 0) {
82
+ const dir = pending.pop();
83
+ if (dir === undefined)
84
+ continue;
85
+ const found = scanForFile(dir, `${outerSessionId}.jsonl`, pending);
86
+ if (found !== null)
87
+ return found;
88
+ }
89
+ }
90
+ catch (err) {
91
+ // TODO(g2): legacy silent catch — now narrows to IO errors only (grace: 1 minor release, v2.14.0)
92
+ if (err instanceof ReferenceError)
93
+ throw err; // surface module-load bugs
94
+ if (err instanceof SyntaxError)
95
+ throw err; // surface parse bugs
96
+ return null; // only swallow IO errors
97
+ }
98
+ return null;
99
+ }
100
+ /**
101
+ * Resolve the absolute path of a Claude Code transcript jsonl by OUTER
102
+ * session id, searching `~/.claude/projects/**` recursively.
103
+ *
104
+ * `peaks code context-audit` reuses THIS locator instead of re-implementing
105
+ * the recursive find. Returns `null` when the transcript does not exist —
106
+ * callers MUST treat that as "unavailable", never as an error.
107
+ */
108
+ export function resolveClaudeTranscriptPath(outerSessionId, projectsDir = join(homedir(), '.claude', 'projects')) {
109
+ if (typeof outerSessionId !== 'string' || outerSessionId.length === 0)
110
+ return null;
111
+ return findTranscriptJsonl(projectsDir, outerSessionId);
112
+ }
@@ -0,0 +1,37 @@
1
+ /**
2
+ * 1M-context window size in tokens (documented single choice: 1,000,000).
3
+ * EXPORTED because the adapter's late 1M rescue (`resolveContextWindowTokens`)
4
+ * names it too — one number, one declaration, rather than a copy that can drift.
5
+ */
6
+ export declare const ONE_MILLION_CONTEXT_TOKENS = 1000000;
7
+ /**
8
+ * Safe-default (non-1M) context window size in tokens. Exported for the same
9
+ * reason: `resolveContextWindow` compares the heuristic against it.
10
+ */
11
+ export declare const DEFAULT_CONTEXT_WINDOW_TOKENS = 200000;
12
+ /**
13
+ * Resolve the currently-active Claude Code model id from a runtime env map.
14
+ * Returns the first non-empty `CLAUDE_CODE_MODEL_ENV_VARS` value (trimmed), or
15
+ * `undefined` when none is present. Pure + exported for tests; the caller falls
16
+ * back to the transcript `message.model` when this returns undefined.
17
+ */
18
+ export declare function resolveClaudeModelFromEnv(env: NodeJS.ProcessEnv | undefined): string | undefined;
19
+ /**
20
+ * Model-aware context-window size in tokens.
21
+ *
22
+ * Detection rule (documented):
23
+ * 1. Empty / unknown model → DEFAULT_CONTEXT_WINDOW_TOKENS (200_000).
24
+ * 2. Suffix heuristic — a model id containing `1m` (case-insensitive) is
25
+ * treated as 1M-context.
26
+ * 3. Explicit allowlist — known 1M Claude model ids
27
+ * (ONE_MILLION_CONTEXT_MODELS).
28
+ * 4. Everything else → 200_000 (the safe default).
29
+ *
30
+ * Callers MAY additionally infer ≥1M from the observed token count: if
31
+ * `contextTokens > DEFAULT_CONTEXT_WINDOW_TOKENS`, the model cannot be a
32
+ * 200K model and must be ≥1M (see `readClaudeTranscriptEstimate`).
33
+ *
34
+ * This is the HEURISTIC layer only. Explicit user overrides sit ABOVE it —
35
+ * see `resolveContextWindow`, which is what the probe actually calls.
36
+ */
37
+ export declare function modelContextWindowTokens(model: string): number;
@@ -0,0 +1,113 @@
1
+ // src/services/ide/adapters/claude-code-model-window.ts
2
+ //
3
+ // Which Claude Code model is active, and how many tokens its context window
4
+ // holds. Those are the two questions `resolveClaudeModelFromEnv` and
5
+ // `modelContextWindowTokens` answer, and they are the pair that left
6
+ // `claude-code-adapter.ts`: that file is far past the
7
+ // 300-line cap, the repo's size ratchet only ever goes down, and the adapter
8
+ // needed room for its `mcpInstall` declaration. Same technique, and the same
9
+ // reason, as the `claude-code-local-state.ts` split before it — a self-contained
10
+ // responsibility leaves, instead of the ceiling going up.
11
+ //
12
+ // WHY THIS BLOCK AND NOT ANOTHER. Both functions are PURE: the env map is an
13
+ // argument, and nothing here reads a file, an env var or a process global. So
14
+ // the move needs no rewiring in either direction — the adapter imports both
15
+ // back and nothing here reaches for the adapter — which is what keeps the move
16
+ // a move. It is also the one block in that file whose eslint findings are zero,
17
+ // which a receiving file with no baseline row must be.
18
+ //
19
+ // The vendor spellings below (`ANTHROPIC_*`, `claude-opus-4`) are Claude Code's
20
+ // own. An adapter is the only place they belong (spec §13), which is why this is
21
+ // a second adapter module and not a shared one.
22
+ /**
23
+ * 1M-context window size in tokens (documented single choice: 1,000,000).
24
+ * EXPORTED because the adapter's late 1M rescue (`resolveContextWindowTokens`)
25
+ * names it too — one number, one declaration, rather than a copy that can drift.
26
+ */
27
+ export const ONE_MILLION_CONTEXT_TOKENS = 1_000_000;
28
+ /**
29
+ * Safe-default (non-1M) context window size in tokens. Exported for the same
30
+ * reason: `resolveContextWindow` compares the heuristic against it.
31
+ */
32
+ export const DEFAULT_CONTEXT_WINDOW_TOKENS = 200_000;
33
+ /**
34
+ * Known 1M-context Claude model id prefixes whose ids do NOT carry a `1m`
35
+ * suffix (e.g. `claude-sonnet-4-5-20250929`). The substring match is
36
+ * intentionally generous — every `claude-sonnet-4*` / `claude-opus-4*`
37
+ * variant is 1M-context.
38
+ */
39
+ const ONE_MILLION_CONTEXT_MODELS = ['claude-opus-4', 'claude-sonnet-4'];
40
+ /**
41
+ * Claude Code runtime env vars that may carry the currently-active model id,
42
+ * in documented precedence order (first non-empty value wins):
43
+ * 1. ANTHROPIC_MODEL — explicit per-run model override
44
+ * 2. ANTHROPIC_DEFAULT_OPUS_MODEL — default Opus fallback
45
+ * 3. ANTHROPIC_DEFAULT_SONNET_MODEL — default Sonnet fallback
46
+ * 4. ANTHROPIC_DEFAULT_HAIKU_MODEL — default Haiku fallback
47
+ * 5. ANTHROPIC_DEFAULT_FABLE_MODEL — default Fable fallback
48
+ * 6. CLAUDE_CODE_SUBAGENT_MODEL — sub-agent model (used when the others
49
+ * are absent, e.g. a sub-agent-only env)
50
+ *
51
+ * Why env-first: the transcript's `message.model` often drops Claude Code's
52
+ * `[1M]` / `[200K]` suffix marker (observed: `deepseek-v4-flash`), while the
53
+ * runtime env vars above carry it (`deepseek-v4-flash[1M]`). Reading them
54
+ * first lets the window resolver see the true context window. This family is
55
+ * vendor-specific, so it lives ONLY in the claude-code adapter.
56
+ */
57
+ const CLAUDE_CODE_MODEL_ENV_VARS = [
58
+ 'ANTHROPIC_MODEL',
59
+ 'ANTHROPIC_DEFAULT_OPUS_MODEL',
60
+ 'ANTHROPIC_DEFAULT_SONNET_MODEL',
61
+ 'ANTHROPIC_DEFAULT_HAIKU_MODEL',
62
+ 'ANTHROPIC_DEFAULT_FABLE_MODEL',
63
+ 'CLAUDE_CODE_SUBAGENT_MODEL'
64
+ ];
65
+ /**
66
+ * Resolve the currently-active Claude Code model id from a runtime env map.
67
+ * Returns the first non-empty `CLAUDE_CODE_MODEL_ENV_VARS` value (trimmed), or
68
+ * `undefined` when none is present. Pure + exported for tests; the caller falls
69
+ * back to the transcript `message.model` when this returns undefined.
70
+ */
71
+ export function resolveClaudeModelFromEnv(env) {
72
+ if (!env)
73
+ return undefined;
74
+ for (const name of CLAUDE_CODE_MODEL_ENV_VARS) {
75
+ const value = env[name];
76
+ if (typeof value === 'string') {
77
+ const trimmed = value.trim();
78
+ if (trimmed.length > 0)
79
+ return trimmed;
80
+ }
81
+ }
82
+ return undefined;
83
+ }
84
+ /**
85
+ * Model-aware context-window size in tokens.
86
+ *
87
+ * Detection rule (documented):
88
+ * 1. Empty / unknown model → DEFAULT_CONTEXT_WINDOW_TOKENS (200_000).
89
+ * 2. Suffix heuristic — a model id containing `1m` (case-insensitive) is
90
+ * treated as 1M-context.
91
+ * 3. Explicit allowlist — known 1M Claude model ids
92
+ * (ONE_MILLION_CONTEXT_MODELS).
93
+ * 4. Everything else → 200_000 (the safe default).
94
+ *
95
+ * Callers MAY additionally infer ≥1M from the observed token count: if
96
+ * `contextTokens > DEFAULT_CONTEXT_WINDOW_TOKENS`, the model cannot be a
97
+ * 200K model and must be ≥1M (see `readClaudeTranscriptEstimate`).
98
+ *
99
+ * This is the HEURISTIC layer only. Explicit user overrides sit ABOVE it —
100
+ * see `resolveContextWindow`, which is what the probe actually calls.
101
+ */
102
+ export function modelContextWindowTokens(model) {
103
+ const m = model.trim().toLowerCase();
104
+ if (m.length === 0)
105
+ return DEFAULT_CONTEXT_WINDOW_TOKENS;
106
+ if (m.includes('1m'))
107
+ return ONE_MILLION_CONTEXT_TOKENS;
108
+ for (const known of ONE_MILLION_CONTEXT_MODELS) {
109
+ if (m.includes(known))
110
+ return ONE_MILLION_CONTEXT_TOKENS;
111
+ }
112
+ return DEFAULT_CONTEXT_WINDOW_TOKENS;
113
+ }
@@ -0,0 +1,78 @@
1
+ /**
2
+ * The REGISTRATION profile of one harness's MCP entry point (spec §8.3).
3
+ *
4
+ * WHY THIS IS NOT `IdeMcpProfile`. That profile (on `IdeAdapter.mcp`) answers
5
+ * "how does this harness SPELL a peaks tool name", which the pre-tool branch
6
+ * needs. This one answers "how does this harness register a server", which only
7
+ * the distribution path needs. One field would conflate two questions asked by
8
+ * two callers that never run together.
9
+ *
10
+ * WHY IT DECLARES ARGV AND NOT A COMMAND STRING. Registering is the HARNESS's
11
+ * own operation: `peaks mcp install` calls the harness's entry point rather than
12
+ * hand-editing the harness's config file, because that file is full of the
13
+ * user's state and hand-editing it is neither safe nor version-stable (§8.3).
14
+ * The entry is declared as an ARRAY with three placeholders, so the engine that
15
+ * consumes it substitutes values into an array and never builds a command line.
16
+ *
17
+ * WHY add AND remove ARE BOTH DECLARED. A harness's register verb is not
18
+ * idempotent — same name, same scope, and it fails, with no `--force` and no
19
+ * `update` — so the install is delete-then-add (§8.3). Both halves are therefore
20
+ * part of the contract, and `scopes` exists because the entry can already sit in
21
+ * more than one of them: the delete is a sweep, not a targeted call.
22
+ *
23
+ * WHAT IS DELIBERATELY ABSENT: any harness name, any platform name, and any
24
+ * branch on either. A vendor's own spellings belong in its adapter, which is the
25
+ * only module that fills this type in.
26
+ */
27
+ /** Placeholder for the server key the harness files peaks under. */
28
+ export declare const MCP_NAME_PLACEHOLDER = "<name>";
29
+ /** Placeholder for one scope the entry can live in; substituted once per removal. */
30
+ export declare const MCP_SCOPE_PLACEHOLDER = "<scope>";
31
+ /** Placeholder for the launched server argv — the command and every token after it. */
32
+ export declare const MCP_SERVER_ARGV_PLACEHOLDER = "<server-argv>";
33
+ /** The placeholders an argv template may carry, and nothing else may look like one. */
34
+ export declare const MCP_ARGV_PLACEHOLDERS: readonly ["<name>", "<scope>", "<server-argv>"];
35
+ /**
36
+ * How one harness registers, and unregisters, a peaks MCP server.
37
+ *
38
+ * Optional on `IdeAdapter`, like `skillInstall?` / `standardsProfile?`: an
39
+ * adapter that omits it is declaring "this harness has no registration entry
40
+ * peaks may call", and every consumer reads that as "nothing to do" rather than
41
+ * as an error.
42
+ */
43
+ export interface IdeMcpInstallProfile {
44
+ /** The server key this harness files peaks under. The install touches only this one. */
45
+ readonly serverName: string;
46
+ /**
47
+ * Every scope the entry can live in. The delete sweeps all of them, because a
48
+ * previous install may have written a different one and the harness's own
49
+ * removal fails on the scope that is empty.
50
+ */
51
+ readonly scopes: readonly string[];
52
+ /** The scope the entry is (re-)written to. Must be one of `scopes`. */
53
+ readonly targetScope: string;
54
+ /** argv template that registers the server. Carries `<name>` and `<server-argv>`. */
55
+ readonly addArgv: readonly string[];
56
+ /** argv template that unregisters it. Carries `<name>` and `<scope>`. */
57
+ readonly removeArgv: readonly string[];
58
+ }
59
+ /** The values an argv template is expanded with. */
60
+ export interface McpArgvValues {
61
+ readonly serverName: string;
62
+ readonly scope: string;
63
+ readonly serverArgv: readonly string[];
64
+ }
65
+ /**
66
+ * A declaration that cannot drive an install is a defect in the adapter, and it
67
+ * is reported as one rather than silently producing an argv the harness will
68
+ * reject. That is the whole argument for throwing here: a profile missing its
69
+ * server-argv placeholder would install a registration that launches nothing,
70
+ * and nothing would say so.
71
+ */
72
+ export declare function assertMcpInstallProfile(profile: IdeMcpInstallProfile): void;
73
+ /**
74
+ * Expand one argv template. A placeholder that stands for SEVERAL tokens expands
75
+ * to all of them, which is why this returns an array and why the launched server
76
+ * argv is passed as one: the caller never joins and never splits.
77
+ */
78
+ export declare function expandMcpArgv(argv: readonly string[], values: McpArgvValues): readonly string[];