peaks-loop 4.0.54 → 4.1.0

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 (1028) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README-en.md +16 -1
  3. package/README.md +15 -1
  4. package/config/eslint/.peaks-rules.cjs +158 -13
  5. package/config/eslint/tsconfig.lint.json +47 -0
  6. package/dist/cli/cli-envelope.d.ts +114 -0
  7. package/dist/cli/cli-envelope.js +85 -0
  8. package/dist/cli/cli-helpers.d.ts +1 -1
  9. package/dist/cli/cli-helpers.js +8 -4
  10. package/dist/cli/commands/_cli-error-envelope.js +1 -1
  11. package/dist/cli/commands/_register.js +85 -38
  12. package/dist/cli/commands/_super.js +40 -7
  13. package/dist/cli/commands/adapter-commands-s2a.js +8 -7
  14. package/dist/cli/commands/adapter-commands.d.ts +2 -2
  15. package/dist/cli/commands/adapter-commands.js +7 -8
  16. package/dist/cli/commands/api-diff-commands.js +5 -4
  17. package/dist/cli/commands/asset-commands.d.ts +2 -2
  18. package/dist/cli/commands/asset-commands.js +135 -132
  19. package/dist/cli/commands/audit-commands.d.ts +1 -1
  20. package/dist/cli/commands/audit-commands.js +75 -32
  21. package/dist/cli/commands/autonomous-swarm-commands.d.ts +1 -1
  22. package/dist/cli/commands/autonomous-swarm-commands.js +14 -8
  23. package/dist/cli/commands/baseline-commands.js +34 -9
  24. package/dist/cli/commands/bee-commands.d.ts +1 -1
  25. package/dist/cli/commands/bee-commands.js +18 -21
  26. package/dist/cli/commands/best-practice-scan-command.js +6 -34
  27. package/dist/cli/commands/best-practice-scan-helpers.d.ts +12 -0
  28. package/dist/cli/commands/best-practice-scan-helpers.js +37 -0
  29. package/dist/cli/commands/capability-commands.d.ts +1 -1
  30. package/dist/cli/commands/capability-commands.js +14 -4
  31. package/dist/cli/commands/capability-worker-config-sc-commands.d.ts +1 -1
  32. package/dist/cli/commands/changeset-commands.js +21 -18
  33. package/dist/cli/commands/code-gate-command.js +9 -2
  34. package/dist/cli/commands/code-job-shape-commands-read-job-shape.d.ts +15 -0
  35. package/dist/cli/commands/code-job-shape-commands-read-job-shape.js +70 -0
  36. package/dist/cli/commands/code-job-shape-commands.js +21 -45
  37. package/dist/cli/commands/code-mode-gate-commands.d.ts +15 -1
  38. package/dist/cli/commands/code-mode-gate-commands.js +19 -199
  39. package/dist/cli/commands/code-mode-gate-plan-command.d.ts +14 -0
  40. package/dist/cli/commands/code-mode-gate-plan-command.js +23 -0
  41. package/dist/cli/commands/code-mode-gate-should-pause-command.d.ts +24 -0
  42. package/dist/cli/commands/code-mode-gate-should-pause-command.js +137 -0
  43. package/dist/cli/commands/code-mode-gate-should-pause-envelope.d.ts +59 -0
  44. package/dist/cli/commands/code-mode-gate-should-pause-envelope.js +144 -0
  45. package/dist/cli/commands/code-orchestrator-can-do.js +4 -4
  46. package/dist/cli/commands/code-review-commands.js +18 -3
  47. package/dist/cli/commands/code-run-command.js +44 -7
  48. package/dist/cli/commands/code-runtime-commands.d.ts +17 -0
  49. package/dist/cli/commands/code-runtime-commands.js +105 -73
  50. package/dist/cli/commands/codegraph-commands.js +11 -6
  51. package/dist/cli/commands/codegraph-status-command.js +6 -2
  52. package/dist/cli/commands/compact-command.js +52 -26
  53. package/dist/cli/commands/complexity-commands.js +6 -7
  54. package/dist/cli/commands/config-commands.d.ts +1 -1
  55. package/dist/cli/commands/config-commands.js +33 -9
  56. package/dist/cli/commands/container-commands.js +39 -15
  57. package/dist/cli/commands/context-commands.d.ts +1 -1
  58. package/dist/cli/commands/context-commands.js +40 -13
  59. package/dist/cli/commands/core/artifacts-command.js +11 -3
  60. package/dist/cli/commands/core/binding-commands.js +9 -6
  61. package/dist/cli/commands/core/doctor-command.js +7 -4
  62. package/dist/cli/commands/core/memory-command.js +47 -21
  63. package/dist/cli/commands/core/proxy-command.js +3 -1
  64. package/dist/cli/commands/core/session-command.js +16 -8
  65. package/dist/cli/commands/core/skill-command.js +31 -16
  66. package/dist/cli/commands/core/standards-command.js +55 -13
  67. package/dist/cli/commands/cron-commands-actions.d.ts +43 -0
  68. package/dist/cli/commands/cron-commands-actions.js +128 -0
  69. package/dist/cli/commands/cron-commands-schedule.d.ts +86 -0
  70. package/dist/cli/commands/cron-commands-schedule.js +151 -0
  71. package/dist/cli/commands/cron-commands.d.ts +35 -32
  72. package/dist/cli/commands/cron-commands.js +167 -211
  73. package/dist/cli/commands/cron-scheduler-commands.js +40 -20
  74. package/dist/cli/commands/cron-scheduler-persist.d.ts +110 -0
  75. package/dist/cli/commands/cron-scheduler-persist.js +171 -0
  76. package/dist/cli/commands/dashboard-long-run.js +45 -14
  77. package/dist/cli/commands/dashboard-summary.js +15 -5
  78. package/dist/cli/commands/dispatch-commands.js +65 -32
  79. package/dist/cli/commands/dispatch-from-dag.js +9 -10
  80. package/dist/cli/commands/doc-commands.js +8 -9
  81. package/dist/cli/commands/doctor/invoke-from-code.js +1 -1
  82. package/dist/cli/commands/e2e-verify-env.d.ts +19 -0
  83. package/dist/cli/commands/e2e-verify-env.js +19 -0
  84. package/dist/cli/commands/e2e-verify.d.ts +3 -14
  85. package/dist/cli/commands/e2e-verify.js +49 -29
  86. package/dist/cli/commands/ecc-commands.d.ts +1 -1
  87. package/dist/cli/commands/ecc-commands.js +8 -17
  88. package/dist/cli/commands/evidence-commands.js +10 -6
  89. package/dist/cli/commands/evolution-commands.d.ts +2 -2
  90. package/dist/cli/commands/evolution-commands.js +109 -115
  91. package/dist/cli/commands/feedback-commands-helpers.d.ts +22 -0
  92. package/dist/cli/commands/feedback-commands-helpers.js +33 -0
  93. package/dist/cli/commands/feedback-commands.js +15 -38
  94. package/dist/cli/commands/final-review-commands.d.ts +1 -1
  95. package/dist/cli/commands/final-review-commands.js +24 -22
  96. package/dist/cli/commands/fixture-commands.d.ts +1 -1
  97. package/dist/cli/commands/fixture-commands.js +17 -6
  98. package/dist/cli/commands/fork-commands-sync-verify.d.ts +12 -0
  99. package/dist/cli/commands/fork-commands-sync-verify.js +72 -0
  100. package/dist/cli/commands/fork-commands.js +19 -51
  101. package/dist/cli/commands/fresh-context-commands.js +3 -1
  102. package/dist/cli/commands/gate-commands-enforce.d.ts +82 -0
  103. package/dist/cli/commands/gate-commands-enforce.js +210 -0
  104. package/dist/cli/commands/gate-commands.d.ts +1 -1
  105. package/dist/cli/commands/gate-commands.js +85 -205
  106. package/dist/cli/commands/governance-classify-contract-commands.d.ts +1 -1
  107. package/dist/cli/commands/governance-classify-contract-commands.js +28 -17
  108. package/dist/cli/commands/heartbeat-commands-action.d.ts +7 -0
  109. package/dist/cli/commands/heartbeat-commands-action.js +192 -0
  110. package/dist/cli/commands/heartbeat-commands-validation.d.ts +57 -0
  111. package/dist/cli/commands/heartbeat-commands-validation.js +120 -0
  112. package/dist/cli/commands/heartbeat-commands.d.ts +27 -6
  113. package/dist/cli/commands/heartbeat-commands.js +19 -198
  114. package/dist/cli/commands/hook-handle.d.ts +1 -1
  115. package/dist/cli/commands/hook-handle.js +46 -13
  116. package/dist/cli/commands/hooks-commands.d.ts +1 -1
  117. package/dist/cli/commands/hooks-commands.js +18 -6
  118. package/dist/cli/commands/ide-commands.d.ts +1 -1
  119. package/dist/cli/commands/ide-commands.js +5 -3
  120. package/dist/cli/commands/impact-commands.js +8 -2
  121. package/dist/cli/commands/job-add-slice-command.d.ts +43 -0
  122. package/dist/cli/commands/job-add-slice-command.js +151 -0
  123. package/dist/cli/commands/job-commands.d.ts +64 -0
  124. package/dist/cli/commands/job-commands.js +134 -63
  125. package/dist/cli/commands/lease-metrics-commands-support.d.ts +73 -0
  126. package/dist/cli/commands/lease-metrics-commands-support.js +67 -0
  127. package/dist/cli/commands/lease-metrics-commands.d.ts +3 -44
  128. package/dist/cli/commands/lease-metrics-commands.js +21 -61
  129. package/dist/cli/commands/lease-stats-commands.d.ts +1 -1
  130. package/dist/cli/commands/lease-stats-commands.js +9 -6
  131. package/dist/cli/commands/lint-commands.d.ts +9 -3
  132. package/dist/cli/commands/lint-commands.js +15 -8
  133. package/dist/cli/commands/log-commands.d.ts +1 -1
  134. package/dist/cli/commands/log-commands.js +8 -6
  135. package/dist/cli/commands/loop-commands.d.ts +1 -1
  136. package/dist/cli/commands/loop-commands.js +50 -50
  137. package/dist/cli/commands/loop-eval-commands.d.ts +1 -1
  138. package/dist/cli/commands/loop-eval-commands.js +101 -30
  139. package/dist/cli/commands/memory-commands.js +21 -13
  140. package/dist/cli/commands/migrate-1-4-1-command.js +1 -1
  141. package/dist/cli/commands/migrate-v2-10-to-v2-11-command.js +2 -2
  142. package/dist/cli/commands/mut-commands-helpers.d.ts +30 -0
  143. package/dist/cli/commands/mut-commands-helpers.js +43 -0
  144. package/dist/cli/commands/mut-commands.js +16 -58
  145. package/dist/cli/commands/observability-commands-queries.d.ts +37 -0
  146. package/dist/cli/commands/observability-commands-queries.js +113 -0
  147. package/dist/cli/commands/observability-commands.d.ts +1 -1
  148. package/dist/cli/commands/observability-commands.js +7 -92
  149. package/dist/cli/commands/openspec-commands.d.ts +1 -1
  150. package/dist/cli/commands/openspec-commands.js +20 -8
  151. package/dist/cli/commands/outer-cache-commands.js +18 -7
  152. package/dist/cli/commands/perf-audit-commands.d.ts +1 -1
  153. package/dist/cli/commands/perf-audit-commands.js +12 -7
  154. package/dist/cli/commands/perf-commands.d.ts +1 -1
  155. package/dist/cli/commands/perf-commands.js +5 -5
  156. package/dist/cli/commands/playwright-commands.d.ts +1 -1
  157. package/dist/cli/commands/playwright-commands.js +20 -8
  158. package/dist/cli/commands/polyrepo-commands.js +21 -19
  159. package/dist/cli/commands/prd-blocks-commands.js +1 -3
  160. package/dist/cli/commands/prd-commands.d.ts +1 -1
  161. package/dist/cli/commands/prd-commands.js +8 -4
  162. package/dist/cli/commands/preferences-commands.js +13 -12
  163. package/dist/cli/commands/primer-command.js +5 -5
  164. package/dist/cli/commands/project-commands.d.ts +1 -1
  165. package/dist/cli/commands/project-commands.js +33 -9
  166. package/dist/cli/commands/qa-business-review-commands.js +16 -12
  167. package/dist/cli/commands/qa-commands.d.ts +1 -1
  168. package/dist/cli/commands/qa-commands.js +3 -5
  169. package/dist/cli/commands/release-commands.d.ts +3 -1
  170. package/dist/cli/commands/release-commands.js +33 -22
  171. package/dist/cli/commands/request-commands.js +47 -30
  172. package/dist/cli/commands/request-format-helpers.js +1 -1
  173. package/dist/cli/commands/retrospective-commands.d.ts +18 -11
  174. package/dist/cli/commands/retrospective-commands.js +24 -173
  175. package/dist/cli/commands/retrospective-index-command.d.ts +26 -0
  176. package/dist/cli/commands/retrospective-index-command.js +99 -0
  177. package/dist/cli/commands/retrospective-project-root.d.ts +9 -0
  178. package/dist/cli/commands/retrospective-project-root.js +15 -0
  179. package/dist/cli/commands/retrospective-search-command.d.ts +27 -0
  180. package/dist/cli/commands/retrospective-search-command.js +97 -0
  181. package/dist/cli/commands/retrospective-show-command.d.ts +23 -0
  182. package/dist/cli/commands/retrospective-show-command.js +80 -0
  183. package/dist/cli/commands/reviewer-commands.d.ts +1 -1
  184. package/dist/cli/commands/role-commands.js +14 -9
  185. package/dist/cli/commands/runtime-commands.js +14 -7
  186. package/dist/cli/commands/sc-commands.d.ts +1 -1
  187. package/dist/cli/commands/sc-commands.js +39 -6
  188. package/dist/cli/commands/scan-commands.js +36 -13
  189. package/dist/cli/commands/security-audit-commands.d.ts +1 -1
  190. package/dist/cli/commands/security-audit-commands.js +12 -7
  191. package/dist/cli/commands/sediment-commands.d.ts +2 -2
  192. package/dist/cli/commands/sediment-commands.js +146 -139
  193. package/dist/cli/commands/session-24h-mode.js +15 -2
  194. package/dist/cli/commands/session-checkpoint-command.js +1 -1
  195. package/dist/cli/commands/session-migrate-skill-name.js +1 -1
  196. package/dist/cli/commands/shadcn-commands.d.ts +1 -1
  197. package/dist/cli/commands/shadcn-commands.js +3 -1
  198. package/dist/cli/commands/share-commands.js +38 -39
  199. package/dist/cli/commands/skill-conformance-commands.d.ts +1 -1
  200. package/dist/cli/commands/skill-conformance-commands.js +1 -1
  201. package/dist/cli/commands/skill-loop-engineering-readiness-commands.js +16 -17
  202. package/dist/cli/commands/skill-visibility.js +2 -2
  203. package/dist/cli/commands/slice-commands.d.ts +1 -1
  204. package/dist/cli/commands/slice-commands.js +36 -12
  205. package/dist/cli/commands/slice-integrate-commands.js +6 -7
  206. package/dist/cli/commands/slice-review-commands-helpers.d.ts +26 -0
  207. package/dist/cli/commands/slice-review-commands-helpers.js +26 -0
  208. package/dist/cli/commands/slice-review-commands.js +16 -24
  209. package/dist/cli/commands/smoke-commands-add-path.d.ts +14 -0
  210. package/dist/cli/commands/smoke-commands-add-path.js +39 -0
  211. package/dist/cli/commands/smoke-commands-define.d.ts +18 -0
  212. package/dist/cli/commands/smoke-commands-define.js +97 -0
  213. package/dist/cli/commands/smoke-commands-run.d.ts +18 -0
  214. package/dist/cli/commands/smoke-commands-run.js +119 -0
  215. package/dist/cli/commands/smoke-commands.d.ts +10 -1
  216. package/dist/cli/commands/smoke-commands.js +17 -179
  217. package/dist/cli/commands/sop-commands.d.ts +1 -1
  218. package/dist/cli/commands/sop-commands.js +38 -10
  219. package/dist/cli/commands/statusline-commands.d.ts +1 -1
  220. package/dist/cli/commands/statusline-commands.js +21 -10
  221. package/dist/cli/commands/sub-agent/detached.js +3 -3
  222. package/dist/cli/commands/sub-agent-dispatch-guard.d.ts +1 -1
  223. package/dist/cli/commands/sub-agent-shared.js +1 -1
  224. package/dist/cli/commands/sub-agent-shutdown-commands.js +17 -9
  225. package/dist/cli/commands/swarm-commands.d.ts +1 -1
  226. package/dist/cli/commands/swarm-commands.js +13 -6
  227. package/dist/cli/commands/tech-commands-helpers.d.ts +37 -0
  228. package/dist/cli/commands/tech-commands-helpers.js +24 -0
  229. package/dist/cli/commands/tech-commands.d.ts +2 -29
  230. package/dist/cli/commands/tech-commands.js +15 -28
  231. package/dist/cli/commands/test-commands.js +27 -7
  232. package/dist/cli/commands/upgrade-commands.d.ts +1 -1
  233. package/dist/cli/commands/user-touchpoint-commands.js +1 -3
  234. package/dist/cli/commands/verdict-aggregate-command.d.ts +1 -1
  235. package/dist/cli/commands/verdict-aggregate-command.js +20 -7
  236. package/dist/cli/commands/vm-commands.js +48 -19
  237. package/dist/cli/commands/wave-plan-commands.js +5 -2
  238. package/dist/cli/commands/web-commands.js +14 -4
  239. package/dist/cli/commands/web-lifecycle-commands.js +5 -3
  240. package/dist/cli/commands/workflow-commands.d.ts +1 -1
  241. package/dist/cli/commands/workflow-commands.js +64 -29
  242. package/dist/cli/commands/workflow-lifecycle-commands.js +19 -17
  243. package/dist/cli/commands/workflow-plan-commands-actions.d.ts +20 -0
  244. package/dist/cli/commands/workflow-plan-commands-actions.js +115 -0
  245. package/dist/cli/commands/workflow-plan-commands-session.d.ts +17 -0
  246. package/dist/cli/commands/workflow-plan-commands-session.js +59 -0
  247. package/dist/cli/commands/workflow-plan-commands.d.ts +10 -21
  248. package/dist/cli/commands/workflow-plan-commands.js +15 -141
  249. package/dist/cli/commands/workspace/clean-command.js +4 -1
  250. package/dist/cli/commands/workspace/helpers.js +2 -1
  251. package/dist/cli/commands/workspace/init-command.js +80 -20
  252. package/dist/cli/commands/workspace/reconcile-command.js +3 -1
  253. package/dist/cli/commands/workspace-commands.d.ts +1 -1
  254. package/dist/cli/commands/workspace-commands.js +1 -1
  255. package/dist/cli/commands/worktree-auth-commands.d.ts +1 -1
  256. package/dist/cli/commands/worktree-auth-commands.js +16 -169
  257. package/dist/cli/commands/worktree-auth-grant-command.d.ts +14 -0
  258. package/dist/cli/commands/worktree-auth-grant-command.js +118 -0
  259. package/dist/cli/commands/worktree-auth-manage-commands.d.ts +17 -0
  260. package/dist/cli/commands/worktree-auth-manage-commands.js +128 -0
  261. package/dist/cli/commands/worktree-lease-commands.d.ts +1 -1
  262. package/dist/cli/commands/worktree-lease-commands.js +65 -37
  263. package/dist/cli/index.js +6 -2
  264. package/dist/cli/program.js +6 -3
  265. package/dist/hooks/pre-tool-use-sub-agent.js +1 -6
  266. package/dist/reporters/bdd-reporter.js +9 -3
  267. package/dist/services/24h-mode/auto-engage.d.ts +19 -0
  268. package/dist/services/24h-mode/auto-engage.js +35 -0
  269. package/dist/services/24h-mode/decider.js +5 -1
  270. package/dist/services/24h-mode/store.js +4 -2
  271. package/dist/services/adapter/adapter-registry.js +20 -8
  272. package/dist/services/adapter/adapter.d.ts +2 -2
  273. package/dist/services/adapter/auto-adapter.d.ts +2 -2
  274. package/dist/services/adapter/auto-adapter.js +1 -1
  275. package/dist/services/adapter/claude-adapter.d.ts +1 -1
  276. package/dist/services/adapter/claude-adapter.js +8 -8
  277. package/dist/services/adapter/codex-adapter.d.ts +2 -2
  278. package/dist/services/adapter/codex-adapter.js +20 -8
  279. package/dist/services/adapter/copilot-adapter.d.ts +2 -2
  280. package/dist/services/adapter/copilot-adapter.js +20 -8
  281. package/dist/services/artifacts/artifact-prerequisites.js +10 -8
  282. package/dist/services/artifacts/artifact-service.js +3 -1
  283. package/dist/services/artifacts/artifact-template-bodies.d.ts +12 -0
  284. package/dist/services/artifacts/artifact-template-bodies.js +165 -0
  285. package/dist/services/artifacts/artifact-templates.js +26 -168
  286. package/dist/services/artifacts/request-artifact-service.js +14 -7
  287. package/dist/services/artifacts/request-artifact-state-helpers.d.ts +3 -2
  288. package/dist/services/artifacts/request-artifact-state-helpers.js +3 -5
  289. package/dist/services/artifacts/workspace-artifact-helpers.d.ts +28 -0
  290. package/dist/services/artifacts/workspace-artifact-helpers.js +54 -0
  291. package/dist/services/artifacts/workspace-service.d.ts +3 -22
  292. package/dist/services/artifacts/workspace-service.js +10 -60
  293. package/dist/services/audit/artifact-writer.js +21 -21
  294. package/dist/services/audit/audit-goal-service.js +2 -2
  295. package/dist/services/audit/backing-detector.js +7 -4
  296. package/dist/services/audit/classifier.js +3 -3
  297. package/dist/services/audit/decision-writer.js +13 -9
  298. package/dist/services/audit/enforcers/active-skill-resolver.js +15 -7
  299. package/dist/services/audit/enforcers/design-draft-confirm.js +4 -4
  300. package/dist/services/audit/enforcers/lint-audit-regression.js +10 -5
  301. package/dist/services/audit/enforcers/lint-bee-runtime-contract.js +16 -8
  302. package/dist/services/audit/enforcers/lint-catalog-governance.js +8 -4
  303. package/dist/services/audit/enforcers/lint-output-style.js +4 -2
  304. package/dist/services/audit/enforcers/lint-peaks-code-runtime.js +8 -3
  305. package/dist/services/audit/enforcers/lint-peaks-skill-runtime.js +8 -3
  306. package/dist/services/audit/enforcers/lint-peaks-ui-sc-txt-runtime.js +20 -20
  307. package/dist/services/audit/enforcers/lint-prd-artifact-handoff.js +5 -5
  308. package/dist/services/audit/enforcers/lint-prd-source-snapshot.d.ts +1 -1
  309. package/dist/services/audit/enforcers/lint-prd-source-snapshot.js +5 -5
  310. package/dist/services/audit/enforcers/lint-qa-gateguard-and-runtime.js +10 -10
  311. package/dist/services/audit/enforcers/lint-rd-handoff-coverage.js +10 -8
  312. package/dist/services/audit/enforcers/lint-reference-shape.js +50 -18
  313. package/dist/services/audit/enforcers/lint-skill-presence-mandatory.js +5 -5
  314. package/dist/services/audit/enforcers/lint-style.js +44 -11
  315. package/dist/services/audit/enforcers/lint-workflow-shape.js +4 -2
  316. package/dist/services/audit/enforcers/login-gate.js +2 -6
  317. package/dist/services/audit/enforcers/mock-placement.js +2 -2
  318. package/dist/services/audit/enforcers/no-root-pollution.js +38 -9
  319. package/dist/services/audit/enforcers/pre-rd-scan.js +1 -1
  320. package/dist/services/audit/enforcers/prototype-fidelity.js +1 -1
  321. package/dist/services/audit/enforcers/resume-detection.js +5 -4
  322. package/dist/services/audit/prose-ratio-calculator.js +1 -1
  323. package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.d.ts +39 -0
  324. package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.js +205 -0
  325. package/dist/services/audit/red-line-catalog-p2-a-lint-style.d.ts +52 -0
  326. package/dist/services/audit/red-line-catalog-p2-a-lint-style.js +205 -0
  327. package/dist/services/audit/red-line-catalog-p2-a.js +3 -374
  328. package/dist/services/audit/red-line-catalog-p2-b.js +26 -26
  329. package/dist/services/audit/red-line-catalog.js +26 -38
  330. package/dist/services/audit/red-lines-service.js +64 -49
  331. package/dist/services/audit/scanners/openspec-scanner.js +2 -2
  332. package/dist/services/audit/scanners/rules-tree-scanner.js +2 -2
  333. package/dist/services/audit/scanners/skills-tree-scanner.js +2 -2
  334. package/dist/services/audit/static-service.js +3 -3
  335. package/dist/services/audit-independent/index.d.ts +2 -2
  336. package/dist/services/audit-independent/index.js +2 -2
  337. package/dist/services/audit-independent/perf-audit-service.js +19 -8
  338. package/dist/services/audit-independent/security-audit-service.js +31 -16
  339. package/dist/services/autonomous-swarm/autonomous-swarm-service.js +75 -46
  340. package/dist/services/best-practice/output-formatter.js +7 -1
  341. package/dist/services/capability-audit-service/cross-check.js +11 -5
  342. package/dist/services/capability-audit-service/runner.js +15 -7
  343. package/dist/services/capability-baseline/store.js +16 -4
  344. package/dist/services/capability-baseline/types.js +15 -3
  345. package/dist/services/capability-baseline/validator.js +43 -7
  346. package/dist/services/capability-guard-runner/contracts/J02.js +36 -6
  347. package/dist/services/capability-guard-runner/contracts/J03.js +20 -11
  348. package/dist/services/capability-guard-runner/contracts/J04.js +24 -15
  349. package/dist/services/capability-guard-runner/contracts/J05.js +26 -10
  350. package/dist/services/capability-guard-runner/contracts/J07.js +8 -2
  351. package/dist/services/capability-guard-runner/contracts/J08.js +22 -5
  352. package/dist/services/capability-guard-runner/contracts/J10.js +6 -2
  353. package/dist/services/capability-guard-runner/contracts/J11.d.ts +5 -0
  354. package/dist/services/capability-guard-runner/contracts/J11.js +14 -2
  355. package/dist/services/capability-guard-runner/contracts/J12.js +12 -3
  356. package/dist/services/capability-guard-runner/diff.js +1 -5
  357. package/dist/services/changeset/changeset-check-service.js +1 -3
  358. package/dist/services/classify/classify-service.js +20 -8
  359. package/dist/services/classify/classify-types.js +22 -9
  360. package/dist/services/code/auto-compact-lifecycle.js +62 -39
  361. package/dist/services/code/auto-compact-modes.js +2 -2
  362. package/dist/services/code/auto-compact-orchestrator.js +14 -9
  363. package/dist/services/code/batch-heartbeat-poller.d.ts +10 -0
  364. package/dist/services/code/batch-heartbeat-poller.js +17 -1
  365. package/dist/services/code/compact-event-settle-types.d.ts +80 -0
  366. package/dist/services/code/compact-event-settle-types.js +20 -0
  367. package/dist/services/code/compact-event-settle.d.ts +3 -68
  368. package/dist/services/code/compact-event-settle.js +14 -10
  369. package/dist/services/code/dag-orchestrator.js +32 -26
  370. package/dist/services/code/job-shape-decision.js +3 -1
  371. package/dist/services/code/mode-gate-types.d.ts +57 -0
  372. package/dist/services/code/mode-gate-types.js +67 -0
  373. package/dist/services/code/mode-gate.d.ts +4 -58
  374. package/dist/services/code/mode-gate.js +24 -60
  375. package/dist/services/code/orchestrator-can-do-advisories.d.ts +30 -0
  376. package/dist/services/code/orchestrator-can-do-advisories.js +81 -0
  377. package/dist/services/code/orchestrator-can-do-probes.d.ts +30 -0
  378. package/dist/services/code/orchestrator-can-do-probes.js +77 -0
  379. package/dist/services/code/orchestrator-can-do.d.ts +11 -22
  380. package/dist/services/code/orchestrator-can-do.js +37 -137
  381. package/dist/services/code/post-compact-checkpoint.d.ts +28 -0
  382. package/dist/services/code/post-compact-checkpoint.js +57 -0
  383. package/dist/services/code/post-compact-detector.js +16 -48
  384. package/dist/services/code/step-08-gate.d.ts +4 -3
  385. package/dist/services/code/step-08-gate.js +21 -9
  386. package/dist/services/code-review/ecc-bridge.js +23 -23
  387. package/dist/services/codegraph/codegraph-autorefresh.js +56 -39
  388. package/dist/services/codegraph/codegraph-config-repair-writer.js +4 -1
  389. package/dist/services/codegraph/codegraph-exclude-integrity.js +4 -1
  390. package/dist/services/codegraph/codegraph-exclude-repair.js +1 -2
  391. package/dist/services/codegraph/codegraph-index-integrity.js +1 -1
  392. package/dist/services/codegraph/codegraph-preflight-service.d.ts +3 -26
  393. package/dist/services/codegraph/codegraph-preflight-service.js +16 -37
  394. package/dist/services/codegraph/codegraph-preflight-structure.d.ts +32 -0
  395. package/dist/services/codegraph/codegraph-preflight-structure.js +33 -0
  396. package/dist/services/codegraph/codegraph-process-runner.js +12 -1
  397. package/dist/services/codegraph/codegraph-service.js +9 -1
  398. package/dist/services/compact/request-transition-hook.js +2 -1
  399. package/dist/services/compact/suggest-service.d.ts +3 -61
  400. package/dist/services/compact/suggest-service.js +9 -12
  401. package/dist/services/compact/suggest-types.d.ts +76 -0
  402. package/dist/services/compact/suggest-types.js +10 -0
  403. package/dist/services/compact-history/compact-history-service.js +2 -2
  404. package/dist/services/compact-statusline/compact-lifecycle-store.d.ts +2 -32
  405. package/dist/services/compact-statusline/compact-lifecycle-store.js +7 -12
  406. package/dist/services/compact-statusline/compact-lifecycle-types.d.ts +32 -0
  407. package/dist/services/compact-statusline/compact-lifecycle-types.js +8 -0
  408. package/dist/services/compact-statusline/compact-statusline-cell-table.d.ts +42 -0
  409. package/dist/services/compact-statusline/compact-statusline-cell-table.js +63 -0
  410. package/dist/services/compact-statusline/compact-statusline-service.d.ts +4 -21
  411. package/dist/services/compact-statusline/compact-statusline-service.js +9 -101
  412. package/dist/services/compact-statusline/compact-statusline-state.d.ts +4 -0
  413. package/dist/services/compact-statusline/compact-statusline-state.js +50 -0
  414. package/dist/services/config/config-migration.js +2 -2
  415. package/dist/services/config/config-restore.js +1 -1
  416. package/dist/services/config/config-rollback.js +1 -1
  417. package/dist/services/config/config-safety.js +28 -10
  418. package/dist/services/config/config-service.js +114 -31
  419. package/dist/services/config/model-routing.js +5 -2
  420. package/dist/services/config/proxy-service.js +6 -1
  421. package/dist/services/config/workspace-state-service.js +17 -5
  422. package/dist/services/context/auto-compact-dispatcher-input.d.ts +38 -0
  423. package/dist/services/context/auto-compact-dispatcher-input.js +9 -0
  424. package/dist/services/context/auto-compact-dispatcher.d.ts +2 -30
  425. package/dist/services/context/auto-compact-reader-input.d.ts +30 -0
  426. package/dist/services/context/auto-compact-reader-input.js +8 -0
  427. package/dist/services/context/auto-compact-reader.d.ts +2 -24
  428. package/dist/services/context/auto-compact-reader.js +4 -1
  429. package/dist/services/context/auto-compact-thresholds.d.ts +54 -0
  430. package/dist/services/context/auto-compact-thresholds.js +19 -0
  431. package/dist/services/context/auto-compact-types.d.ts +2 -46
  432. package/dist/services/context/auto-compact-types.js +1 -11
  433. package/dist/services/context/build-dispatch-system-prompt.js +2 -2
  434. package/dist/services/context/collector.js +8 -10
  435. package/dist/services/context/context-audit-hint.js +7 -5
  436. package/dist/services/context/context-audit-keys.d.ts +15 -0
  437. package/dist/services/context/context-audit-keys.js +77 -0
  438. package/dist/services/context/context-audit-limits.d.ts +20 -0
  439. package/dist/services/context/context-audit-limits.js +31 -0
  440. package/dist/services/context/context-audit-scan.d.ts +19 -0
  441. package/dist/services/context/context-audit-scan.js +246 -0
  442. package/dist/services/context/context-audit-types.d.ts +65 -0
  443. package/dist/services/context/context-audit-types.js +10 -0
  444. package/dist/services/context/context-audit.d.ts +13 -59
  445. package/dist/services/context/context-audit.js +38 -254
  446. package/dist/services/context/context-builder.js +4 -4
  447. package/dist/services/context/context-schema.d.ts +1 -1
  448. package/dist/services/context/context-schema.js +13 -13
  449. package/dist/services/context/doc-retriever.js +2 -2
  450. package/dist/services/context/harness-context-witness.js +43 -24
  451. package/dist/services/context/harness-window-config.js +27 -7
  452. package/dist/services/context/ide-detect.js +2 -1
  453. package/dist/services/context/index.d.ts +1 -1
  454. package/dist/services/context/memory-index-reader.js +3 -9
  455. package/dist/services/context/memory-preflight-config.js +3 -5
  456. package/dist/services/context/memory-preflight-service.d.ts +2 -20
  457. package/dist/services/context/memory-preflight-service.js +37 -68
  458. package/dist/services/context/memory-preflight-support.d.ts +48 -0
  459. package/dist/services/context/memory-preflight-support.js +56 -0
  460. package/dist/services/context/post-compact-reinjection.js +3 -3
  461. package/dist/services/context/renderer.js +7 -3
  462. package/dist/services/context/spillover-store.js +3 -1
  463. package/dist/services/context/summary-view.js +1 -1
  464. package/dist/services/context/threshold.js +2 -2
  465. package/dist/services/context/tokenizer.js +3 -3
  466. package/dist/services/crystallization/crystallization-brief-schema.d.ts +80 -0
  467. package/dist/services/crystallization/crystallization-brief-schema.js +159 -0
  468. package/dist/services/crystallization/crystallization-service.d.ts +7 -7
  469. package/dist/services/crystallization/crystallization-service.js +56 -55
  470. package/dist/services/crystallization/crystallization-store.d.ts +2 -2
  471. package/dist/services/crystallization/crystallization-store.js +37 -20
  472. package/dist/services/crystallization/crystallization-types.d.ts +4 -56
  473. package/dist/services/crystallization/crystallization-types.js +31 -184
  474. package/dist/services/crystallization/evidence-brief-builder.d.ts +3 -3
  475. package/dist/services/crystallization/evidence-brief-builder.js +32 -38
  476. package/dist/services/crystallization/index.d.ts +4 -4
  477. package/dist/services/crystallization/index.js +4 -4
  478. package/dist/services/dashboard/project-dashboard-service.js +7 -1
  479. package/dist/services/dispatch/await-batch-helpers.d.ts +55 -0
  480. package/dist/services/dispatch/await-batch-helpers.js +206 -0
  481. package/dist/services/dispatch/await-batch.d.ts +50 -7
  482. package/dist/services/dispatch/await-batch.js +97 -194
  483. package/dist/services/dispatch/batch-counter.js +2 -1
  484. package/dist/services/dispatch/conflict-replay.js +2 -2
  485. package/dist/services/dispatch/contract-store.js +5 -2
  486. package/dist/services/dispatch/dispatch-record-input-types.d.ts +81 -0
  487. package/dist/services/dispatch/dispatch-record-input-types.js +1 -0
  488. package/dist/services/dispatch/dispatch-record-types.d.ts +6 -73
  489. package/dist/services/dispatch/dispatch-record-upgrade-fields.d.ts +72 -0
  490. package/dist/services/dispatch/dispatch-record-upgrade-fields.js +242 -0
  491. package/dist/services/dispatch/dispatch-record-upgrade-guards.d.ts +15 -0
  492. package/dist/services/dispatch/dispatch-record-upgrade-guards.js +55 -0
  493. package/dist/services/dispatch/dispatch-record-upgrade.d.ts +2 -4
  494. package/dist/services/dispatch/dispatch-record-upgrade.js +21 -213
  495. package/dist/services/dispatch/dispatch-record-writer.js +54 -26
  496. package/dist/services/dispatch/dispatch-sub-agent.js +7 -2
  497. package/dist/services/dispatch/e2e-fixtures.js +1 -1
  498. package/dist/services/dispatch/isolation-lease.js +39 -17
  499. package/dist/services/dispatch/merge-back-runner.js +51 -11
  500. package/dist/services/dispatch/service-shutdown.js +4 -1
  501. package/dist/services/dispatch/slice-dag-types.d.ts +116 -0
  502. package/dist/services/dispatch/slice-dag-types.js +41 -0
  503. package/dist/services/dispatch/slice-dag.d.ts +3 -109
  504. package/dist/services/dispatch/slice-dag.js +13 -36
  505. package/dist/services/dispatch/sub-agent-batch-await.d.ts +47 -0
  506. package/dist/services/dispatch/sub-agent-batch-await.js +73 -0
  507. package/dist/services/dispatch/sub-agent-dispatcher-types.d.ts +122 -0
  508. package/dist/services/dispatch/sub-agent-dispatcher-types.js +12 -0
  509. package/dist/services/dispatch/sub-agent-dispatcher.d.ts +3 -145
  510. package/dist/services/dispatch/sub-agent-dispatcher.js +14 -70
  511. package/dist/services/dispatch/test-tool-detection.js +12 -1
  512. package/dist/services/doc/doc-generator.js +19 -4
  513. package/dist/services/doctor/doctor-service/checks/check-id-schema.js +16 -8
  514. package/dist/services/doctor/doctor-service/checks/codegraph-capability.d.ts +7 -2
  515. package/dist/services/doctor/doctor-service/checks/codegraph-capability.js +26 -8
  516. package/dist/services/doctor/doctor-service/checks/codegraph-exclude-integrity.js +16 -8
  517. package/dist/services/doctor/doctor-service/checks/codegraph-index-integrity.js +16 -8
  518. package/dist/services/doctor/doctor-service/checks/dist-source-version.js +18 -9
  519. package/dist/services/doctor/doctor-service/checks/ecc-hooks-schema-drift.js +20 -10
  520. package/dist/services/doctor/doctor-service/checks/gateguard-conflict.js +18 -9
  521. package/dist/services/doctor/doctor-service/checks/l3-memory-health.js +25 -11
  522. package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.js +12 -6
  523. package/dist/services/doctor/doctor-service/checks/multi-binary-drift.d.ts +7 -16
  524. package/dist/services/doctor/doctor-service/checks/multi-binary-drift.js +50 -70
  525. package/dist/services/doctor/doctor-service/checks/schema-validity.js +5 -1
  526. package/dist/services/doctor/doctor-service/checks/skill-presence.js +4 -2
  527. package/dist/services/doctor/doctor-service/checks/statusline-install.js +8 -4
  528. package/dist/services/doctor/doctor-service/checks/statusline-runtime.js +8 -4
  529. package/dist/services/doctor/doctor-service/checks/user-config.js +4 -2
  530. package/dist/services/doctor/doctor-service/checks/workspace-init.js +8 -4
  531. package/dist/services/doctor/doctor-service/checks/workspace-layout.js +19 -11
  532. package/dist/services/doctor/doctor-service/index.js +4 -2
  533. package/dist/services/doctor/doctor-service/multi-binary-drift-helpers.d.ts +40 -0
  534. package/dist/services/doctor/doctor-service/multi-binary-drift-helpers.js +49 -0
  535. package/dist/services/doctor/doctor-service/plugin-registry.js +1 -1
  536. package/dist/services/doctor/doctor-service/probe-types.d.ts +210 -0
  537. package/dist/services/doctor/doctor-service/probe-types.js +14 -0
  538. package/dist/services/doctor/doctor-service/types.d.ts +7 -197
  539. package/dist/services/doctor/index.d.ts +1 -1
  540. package/dist/services/doctor/index.js +1 -1
  541. package/dist/services/env/shell-probe.js +8 -2
  542. package/dist/services/evidence/evidence-body-builders.d.ts +23 -0
  543. package/dist/services/evidence/evidence-body-builders.js +197 -0
  544. package/dist/services/evidence/evidence-generator.js +6 -187
  545. package/dist/services/evolution/evolution-constraints.d.ts +43 -0
  546. package/dist/services/evolution/evolution-constraints.js +54 -0
  547. package/dist/services/evolution/evolution-evaluation-schema.d.ts +43 -0
  548. package/dist/services/evolution/evolution-evaluation-schema.js +43 -0
  549. package/dist/services/evolution/evolution-service.d.ts +6 -6
  550. package/dist/services/evolution/evolution-service.js +58 -58
  551. package/dist/services/evolution/evolution-store.d.ts +2 -2
  552. package/dist/services/evolution/evolution-store.js +37 -51
  553. package/dist/services/evolution/evolution-types.d.ts +2 -22
  554. package/dist/services/evolution/evolution-types.js +41 -101
  555. package/dist/services/evolution/independent-evaluator-runner.d.ts +3 -3
  556. package/dist/services/evolution/independent-evaluator-runner.js +20 -22
  557. package/dist/services/evolution/regression-skeptic-runner.d.ts +2 -2
  558. package/dist/services/evolution/regression-skeptic-runner.js +18 -18
  559. package/dist/services/feedback/feedback-promotion-service.js +48 -12
  560. package/dist/services/feedback/promotion-artifact-evidence.d.ts +2 -16
  561. package/dist/services/feedback/promotion-artifact-evidence.js +6 -83
  562. package/dist/services/feedback/promotion-artifact-json-evidence.d.ts +29 -0
  563. package/dist/services/feedback/promotion-artifact-json-evidence.js +39 -0
  564. package/dist/services/feedback/promotion-source-comments.d.ts +47 -0
  565. package/dist/services/feedback/promotion-source-comments.js +61 -0
  566. package/dist/services/final-review/final-review-contract.d.ts +26 -0
  567. package/dist/services/final-review/final-review-contract.js +14 -0
  568. package/dist/services/final-review/final-review-delivery.d.ts +63 -0
  569. package/dist/services/final-review/final-review-delivery.js +124 -0
  570. package/dist/services/final-review/final-review-evidence-budget.d.ts +125 -0
  571. package/dist/services/final-review/final-review-evidence-budget.js +218 -0
  572. package/dist/services/final-review/final-review-evidence-collect.d.ts +4 -0
  573. package/dist/services/final-review/final-review-evidence-collect.js +230 -0
  574. package/dist/services/final-review/final-review-evidence-sources.d.ts +138 -0
  575. package/dist/services/final-review/final-review-evidence-sources.js +139 -0
  576. package/dist/services/final-review/final-review-fifth-dim.d.ts +8 -0
  577. package/dist/services/final-review/final-review-fifth-dim.js +20 -0
  578. package/dist/services/final-review/final-review-gates.d.ts +119 -0
  579. package/dist/services/final-review/final-review-gates.js +214 -0
  580. package/dist/services/final-review/final-review-output-budget.d.ts +88 -0
  581. package/dist/services/final-review/final-review-output-budget.js +161 -0
  582. package/dist/services/final-review/final-review-prompt.d.ts +35 -0
  583. package/dist/services/final-review/final-review-prompt.js +112 -0
  584. package/dist/services/final-review/final-review-reviewer.d.ts +57 -0
  585. package/dist/services/final-review/final-review-reviewer.js +95 -0
  586. package/dist/services/final-review/final-review-runner.d.ts +3 -0
  587. package/dist/services/final-review/final-review-runner.js +158 -0
  588. package/dist/services/final-review/final-review-service.d.ts +119 -373
  589. package/dist/services/final-review/final-review-service.js +48 -1380
  590. package/dist/services/final-review/final-review-verdicts.d.ts +60 -0
  591. package/dist/services/final-review/final-review-verdicts.js +91 -0
  592. package/dist/services/final-review/index.d.ts +3 -3
  593. package/dist/services/final-review/index.js +2 -2
  594. package/dist/services/final-review/pre-post-diff.js +32 -29
  595. package/dist/services/fixture/fixture-capture-service.js +14 -6
  596. package/dist/services/fresh-context/trigger-scan.js +13 -2
  597. package/dist/services/fuzzy-matching/fuzzy-match-service.js +1 -1
  598. package/dist/services/fuzzy-matching/fzf-pick-service.js +6 -1
  599. package/dist/services/hooks/pre-tool-code-gate.js +2 -2
  600. package/dist/services/hooks/presence-marker-detector.js +12 -2
  601. package/dist/services/hooks/worktree-authorization-gate.js +21 -7
  602. package/dist/services/ide/adapters/claude-code-adapter.js +30 -17
  603. package/dist/services/ide/adapters/codex-adapter.js +3 -5
  604. package/dist/services/ide/adapters/cursor-adapter.js +3 -5
  605. package/dist/services/ide/adapters/hermes-adapter.js +2 -4
  606. package/dist/services/ide/adapters/openclaw-adapter.js +2 -4
  607. package/dist/services/ide/adapters/qoder-adapter.js +2 -4
  608. package/dist/services/ide/adapters/tongyi-lingma-adapter.js +1 -1
  609. package/dist/services/ide/adapters/trae-adapter.js +3 -5
  610. package/dist/services/ide/adapters/zcode-adapter.js +8 -7
  611. package/dist/services/ide/current-model-detector.js +2 -1
  612. package/dist/services/ide/ide-compact-types.d.ts +153 -0
  613. package/dist/services/ide/ide-compact-types.js +1 -0
  614. package/dist/services/ide/ide-registry.js +1 -1
  615. package/dist/services/ide/ide-types.d.ts +7 -145
  616. package/dist/services/ide/resource-profile.js +1 -1
  617. package/dist/services/ide/shared/atomic-json.js +2 -1
  618. package/dist/services/impact/impact-scan-service.js +12 -5
  619. package/dist/services/job/job-commit-verification.d.ts +73 -0
  620. package/dist/services/job/job-commit-verification.js +72 -0
  621. package/dist/services/job/job-orchestrator.d.ts +42 -0
  622. package/dist/services/job/job-orchestrator.js +110 -10
  623. package/dist/services/job/job-progress-store.d.ts +75 -5
  624. package/dist/services/job/job-progress-store.js +83 -6
  625. package/dist/services/job/job-rotation.d.ts +1 -1
  626. package/dist/services/job/job-rotation.js +5 -1
  627. package/dist/services/job/job-state-store.js +2 -2
  628. package/dist/services/job/job-types.js +49 -20
  629. package/dist/services/job/subagent-job-wrapper.d.ts +1 -1
  630. package/dist/services/job/subagent-job-wrapper.js +5 -1
  631. package/dist/services/job-snapshot/snapshot.js +2 -2
  632. package/dist/services/karpathy-cost/karpathy-cost-check-service.js +23 -13
  633. package/dist/services/legacy/legacy-detector.js +51 -5
  634. package/dist/services/lint/detect-eslint.js +10 -4
  635. package/dist/services/lint/detect-ocr-18.js +11 -3
  636. package/dist/services/lint/eslint-runner-support.d.ts +22 -0
  637. package/dist/services/lint/eslint-runner-support.js +185 -0
  638. package/dist/services/lint/eslint-runner-types.d.ts +69 -0
  639. package/dist/services/lint/eslint-runner-types.js +11 -0
  640. package/dist/services/lint/eslint-runner.d.ts +4 -56
  641. package/dist/services/lint/eslint-runner.js +24 -178
  642. package/dist/services/lint/npx-resolver.js +1 -3
  643. package/dist/services/lint/ocr-18-acquire.js +15 -4
  644. package/dist/services/lint/ocr-multilang-adapter.js +4 -5
  645. package/dist/services/llm/anthropic-runner.js +4 -1
  646. package/dist/services/log/log-commands-service.js +2 -6
  647. package/dist/services/log/logger.js +15 -12
  648. package/dist/services/log/retention.js +3 -2
  649. package/dist/services/loop/evaluator-dispatcher.js +78 -42
  650. package/dist/services/loop/loop-bee-relation-service.d.ts +4 -4
  651. package/dist/services/loop/loop-bee-relation-service.js +36 -40
  652. package/dist/services/loop/loop-bee-relation-store.d.ts +3 -3
  653. package/dist/services/loop/loop-bee-relation-store.js +9 -11
  654. package/dist/services/loop/loop-bee-relation-types.d.ts +1 -1
  655. package/dist/services/loop/loop-bee-relation-types.js +14 -25
  656. package/dist/services/loop/loop-release-service.d.ts +2 -2
  657. package/dist/services/loop/loop-release-service.js +3 -3
  658. package/dist/services/loop/loop-release-store.d.ts +2 -2
  659. package/dist/services/loop/loop-release-store.js +4 -6
  660. package/dist/services/loop/loop-release-types.d.ts +1 -1
  661. package/dist/services/loop/loop-release-types.js +21 -31
  662. package/dist/services/loop/monotonic-guard-types.d.ts +51 -0
  663. package/dist/services/loop/monotonic-guard-types.js +9 -0
  664. package/dist/services/loop/monotonic-guard.d.ts +2 -43
  665. package/dist/services/loop/monotonic-runner-types.d.ts +63 -0
  666. package/dist/services/loop/monotonic-runner-types.js +17 -0
  667. package/dist/services/loop/monotonic-runner.d.ts +3 -34
  668. package/dist/services/loop/monotonic-runner.js +10 -20
  669. package/dist/services/loop/run-driver.js +16 -8
  670. package/dist/services/loop/spec-service.d.ts +0 -5
  671. package/dist/services/loop/spec-service.js +49 -9
  672. package/dist/services/memory/llm-reranker-core.d.ts +108 -0
  673. package/dist/services/memory/llm-reranker-core.js +105 -0
  674. package/dist/services/memory/llm-reranker.d.ts +3 -94
  675. package/dist/services/memory/llm-reranker.js +13 -102
  676. package/dist/services/memory/memory-ingest-service.d.ts +1 -22
  677. package/dist/services/memory/memory-ingest-service.js +29 -76
  678. package/dist/services/memory/memory-ingest-support.d.ts +23 -0
  679. package/dist/services/memory/memory-ingest-support.js +81 -0
  680. package/dist/services/memory/memory-rotate-service.js +41 -8
  681. package/dist/services/memory/memory-search-service.js +8 -4
  682. package/dist/services/memory/project-context-service.js +26 -5
  683. package/dist/services/memory/project-memory-service/index/kind-dispatch.d.ts +2 -7
  684. package/dist/services/memory/project-memory-service/index/kind-dispatch.js +17 -136
  685. package/dist/services/memory/project-memory-service/index/project-memory-plan-exec.d.ts +7 -0
  686. package/dist/services/memory/project-memory-service/index/project-memory-plan-exec.js +150 -0
  687. package/dist/services/memory/project-memory-service/index/ranking.js +6 -3
  688. package/dist/services/memory/project-memory-service/index/reindex.js +14 -5
  689. package/dist/services/memory/project-memory-service/memory-kinds.d.ts +31 -0
  690. package/dist/services/memory/project-memory-service/memory-kinds.js +87 -0
  691. package/dist/services/memory/project-memory-service/parsers/frontmatter-parse.d.ts +24 -0
  692. package/dist/services/memory/project-memory-service/parsers/frontmatter-parse.js +104 -0
  693. package/dist/services/memory/project-memory-service/parsers/frontmatter.d.ts +2 -24
  694. package/dist/services/memory/project-memory-service/parsers/frontmatter.js +28 -79
  695. package/dist/services/memory/project-memory-service/parsers/markdown-pure.js +15 -3
  696. package/dist/services/memory/project-memory-service/store/atomic-write.js +34 -22
  697. package/dist/services/memory/project-memory-service/store/paths.js +2 -1
  698. package/dist/services/memory/project-memory-service/types.d.ts +3 -31
  699. package/dist/services/memory/project-memory-service/types.js +1 -76
  700. package/dist/services/migrate-skill-name/migrate.js +1 -1
  701. package/dist/services/migrate-skill-name/schema.js +1 -1
  702. package/dist/services/mode/mode-enforcement.js +4 -2
  703. package/dist/services/mode/mode-status-service.d.ts +27 -9
  704. package/dist/services/mode/mode-status-service.js +64 -12
  705. package/dist/services/observability/aggregation-helpers.d.ts +22 -0
  706. package/dist/services/observability/aggregation-helpers.js +65 -0
  707. package/dist/services/observability/aggregation-types.d.ts +66 -0
  708. package/dist/services/observability/aggregation-types.js +34 -0
  709. package/dist/services/observability/aggregation.d.ts +5 -53
  710. package/dist/services/observability/aggregation.js +17 -80
  711. package/dist/services/observability/jsonl-store.js +2 -1
  712. package/dist/services/observability/observability-schema.d.ts +71 -0
  713. package/dist/services/observability/observability-schema.js +64 -0
  714. package/dist/services/observability/observability-service.d.ts +3 -56
  715. package/dist/services/observability/observability-service.js +9 -49
  716. package/dist/services/openspec/coverage-evidence-reader.js +18 -11
  717. package/dist/services/openspec/openspec-archive-service.js +31 -24
  718. package/dist/services/openspec/openspec-init-service.js +8 -2
  719. package/dist/services/openspec/openspec-propose-from-doctor-service.js +1 -1
  720. package/dist/services/openspec/openspec-scan-service.js +4 -1
  721. package/dist/services/openspec/openspec-validate-service.js +26 -5
  722. package/dist/services/perf/perf-baseline-service.js +2 -6
  723. package/dist/services/polyrepo/polyrepo-dispatcher.js +2 -1
  724. package/dist/services/polyrepo/polyrepo-scanner.js +4 -1
  725. package/dist/services/prd/handoff-frontmatter-shape.d.ts +42 -0
  726. package/dist/services/prd/handoff-frontmatter-shape.js +67 -0
  727. package/dist/services/prd/handoff-frontmatter.js +1 -1
  728. package/dist/services/prd/handoff-path-resolution.d.ts +37 -0
  729. package/dist/services/prd/handoff-path-resolution.js +101 -0
  730. package/dist/services/prd/handoff-service.d.ts +1 -37
  731. package/dist/services/prd/handoff-service.js +16 -148
  732. package/dist/services/prd/prd-blocks-checker.js +28 -8
  733. package/dist/services/prd/project-scan-bootstrap-service.js +1 -5
  734. package/dist/services/prd/project-scan-reader.js +1 -4
  735. package/dist/services/prd/project-scan-sediment.js +1 -4
  736. package/dist/services/preferences/preferences-service.js +6 -8
  737. package/dist/services/preferences/preferences-types.js +4 -4
  738. package/dist/services/qa/bdd-test-style-contract.d.ts +41 -0
  739. package/dist/services/qa/bdd-test-style-contract.js +37 -0
  740. package/dist/services/qa/bdd-test-style-verifier.d.ts +2 -24
  741. package/dist/services/qa/bdd-test-style-verifier.js +5 -31
  742. package/dist/services/qa/browser-event-logger.js +2 -1
  743. package/dist/services/qa/qa-business-review-state.js +20 -5
  744. package/dist/services/qa/screenshot-archive-service.js +1 -3
  745. package/dist/services/rd/ast-gate.js +2 -2
  746. package/dist/services/rd/impl.js +1 -1
  747. package/dist/services/rd/rd-service.js +117 -43
  748. package/dist/services/rd/reviewer-dispatch-policy.js +4 -7
  749. package/dist/services/rd/standards-diagnostic.js +4 -1
  750. package/dist/services/rd/strategy.js +10 -3
  751. package/dist/services/rd/tactical-stage.js +2 -2
  752. package/dist/services/rd/types.js +9 -7
  753. package/dist/services/rd-swarm/rd-swarm-service.d.ts +2 -45
  754. package/dist/services/rd-swarm/rd-swarm-service.js +140 -21
  755. package/dist/services/rd-swarm/rd-swarm-types.d.ts +54 -0
  756. package/dist/services/rd-swarm/rd-swarm-types.js +10 -0
  757. package/dist/services/recommendations/capability-map-service.js +10 -2
  758. package/dist/services/recommendations/capability-seed-items.js +81 -14
  759. package/dist/services/recommendations/capability-seed-mappings.js +420 -48
  760. package/dist/services/recommendations/capability-seed-sources-mcp-server.d.ts +9 -0
  761. package/dist/services/recommendations/capability-seed-sources-mcp-server.js +233 -0
  762. package/dist/services/recommendations/capability-seed-sources.js +127 -32
  763. package/dist/services/release/release-state.d.ts +2 -2
  764. package/dist/services/release/release-state.js +44 -15
  765. package/dist/services/release/version-precheck-layer-changeset.d.ts +2 -0
  766. package/dist/services/release/version-precheck-layer-changeset.js +43 -0
  767. package/dist/services/release/version-precheck-service.d.ts +11 -36
  768. package/dist/services/release/version-precheck-service.js +20 -104
  769. package/dist/services/release/version-precheck-support.d.ts +53 -0
  770. package/dist/services/release/version-precheck-support.js +64 -0
  771. package/dist/services/retrospective/retrospective-index.js +17 -3
  772. package/dist/services/retrospective/retrospective-search-service.js +6 -2
  773. package/dist/services/retrospective/retrospective-show.js +4 -1
  774. package/dist/services/reviewer/model-family.js +7 -1
  775. package/dist/services/reviewer/providers/anthropic.d.ts +5 -0
  776. package/dist/services/reviewer/providers/anthropic.js +10 -1
  777. package/dist/services/reviewer/providers/openai.d.ts +5 -0
  778. package/dist/services/reviewer/providers/openai.js +10 -1
  779. package/dist/services/reviewer/reviewer-config.js +4 -2
  780. package/dist/services/reviewer/reviewer-service.d.ts +2 -36
  781. package/dist/services/reviewer/reviewer-service.js +2 -1
  782. package/dist/services/reviewer/reviewer-types.d.ts +43 -0
  783. package/dist/services/reviewer/reviewer-types.js +1 -0
  784. package/dist/services/role/role-registry.js +9 -1
  785. package/dist/services/runtime/runtime-detector.js +4 -1
  786. package/dist/services/runtime/vendors/claude-code.js +14 -6
  787. package/dist/services/runtime/vendors/codex.js +11 -3
  788. package/dist/services/runtime/vendors/copilot.js +11 -3
  789. package/dist/services/sc/sc-service.js +28 -15
  790. package/dist/services/scan/acceptance-coverage-service.js +4 -1
  791. package/dist/services/scan/api-diff-openapi-schema-read.d.ts +67 -0
  792. package/dist/services/scan/api-diff-openapi-schema-read.js +154 -0
  793. package/dist/services/scan/api-diff-openapi.d.ts +16 -2
  794. package/dist/services/scan/api-diff-openapi.js +19 -123
  795. package/dist/services/scan/api-diff-recorded.js +16 -3
  796. package/dist/services/scan/api-diff-service.js +49 -16
  797. package/dist/services/scan/api-diff-types.js +12 -3
  798. package/dist/services/scan/api-surface-helpers.d.ts +13 -0
  799. package/dist/services/scan/api-surface-helpers.js +31 -0
  800. package/dist/services/scan/api-surface-service.d.ts +2 -45
  801. package/dist/services/scan/api-surface-service.js +15 -26
  802. package/dist/services/scan/api-surface-types.d.ts +54 -0
  803. package/dist/services/scan/api-surface-types.js +10 -0
  804. package/dist/services/scan/archetype-detection.d.ts +37 -0
  805. package/dist/services/scan/archetype-detection.js +142 -0
  806. package/dist/services/scan/archetype-service.js +36 -125
  807. package/dist/services/scan/diff-scope-service.js +35 -15
  808. package/dist/services/scan/existing-system-service.js +16 -99
  809. package/dist/services/scan/existing-system-visual-tokens.d.ts +20 -0
  810. package/dist/services/scan/existing-system-visual-tokens.js +123 -0
  811. package/dist/services/scan/file-size-policy.d.ts +86 -0
  812. package/dist/services/scan/file-size-policy.js +184 -0
  813. package/dist/services/scan/file-size-scan.d.ts +30 -3
  814. package/dist/services/scan/file-size-scan.js +47 -9
  815. package/dist/services/scan/karpathy-service.js +6 -1
  816. package/dist/services/scan/orphan-service.js +86 -20
  817. package/dist/services/scan/type-sanity-service.js +104 -10
  818. package/dist/services/sediment/dispose-confirm.d.ts +2 -2
  819. package/dist/services/sediment/dispose-confirm.js +2 -2
  820. package/dist/services/sediment/json-schema.d.ts +1 -1
  821. package/dist/services/sediment/json-schema.js +25 -13
  822. package/dist/services/sediment/manifest-lint.d.ts +1 -12
  823. package/dist/services/sediment/manifest-lint.js +1 -7
  824. package/dist/services/sediment/pool-paths.js +13 -9
  825. package/dist/services/sediment/pool-read.d.ts +1 -1
  826. package/dist/services/sediment/pool-read.js +42 -18
  827. package/dist/services/sediment/pool-rebuild-index.d.ts +1 -1
  828. package/dist/services/sediment/pool-rebuild-index.js +5 -5
  829. package/dist/services/sediment/pool-write.d.ts +1 -1
  830. package/dist/services/sediment/pool-write.js +7 -7
  831. package/dist/services/sediment/promotion-gate.d.ts +1 -1
  832. package/dist/services/sediment/promotion-gate.js +9 -9
  833. package/dist/services/sediment/types.d.ts +8 -8
  834. package/dist/services/session/binding-status-service.js +14 -4
  835. package/dist/services/session/caller-binding-service.js +2 -1
  836. package/dist/services/session/getSessionDir.js +4 -1
  837. package/dist/services/session/index.d.ts +1 -1
  838. package/dist/services/session/index.js +1 -1
  839. package/dist/services/session/resolve-caller-id.js +7 -5
  840. package/dist/services/session/session-binding-bridge.js +26 -25
  841. package/dist/services/session/session-checkpoint-service.js +1 -1
  842. package/dist/services/session/session-file-schema.d.ts +70 -0
  843. package/dist/services/session/session-file-schema.js +68 -0
  844. package/dist/services/session/session-manager.d.ts +6 -6
  845. package/dist/services/session/session-manager.js +30 -29
  846. package/dist/services/session/session-resume-service.js +2 -1
  847. package/dist/services/share/bundle-format-constants.d.ts +85 -0
  848. package/dist/services/share/bundle-format-constants.js +100 -0
  849. package/dist/services/share/bundle-reader.d.ts +3 -3
  850. package/dist/services/share/bundle-reader.js +75 -68
  851. package/dist/services/share/bundle-types.d.ts +3 -70
  852. package/dist/services/share/bundle-types.js +38 -107
  853. package/dist/services/share/bundle-writer.d.ts +3 -3
  854. package/dist/services/share/bundle-writer.js +101 -91
  855. package/dist/services/share/run-state-contract.d.ts +1 -1
  856. package/dist/services/share/run-state-contract.js +7 -13
  857. package/dist/services/signal/cancel-handler.js +2 -1
  858. package/dist/services/skill/resume-detector.js +6 -4
  859. package/dist/services/skill/skill-scheduler.js +3 -1
  860. package/dist/services/skill/skill-search-service.js +4 -4
  861. package/dist/services/skillhub/release-diff.d.ts +2 -2
  862. package/dist/services/skillhub/release-diff.js +6 -10
  863. package/dist/services/skillhub/release-export.d.ts +2 -2
  864. package/dist/services/skillhub/release-export.js +15 -17
  865. package/dist/services/skillhub/release-gc-blobs.d.ts +2 -2
  866. package/dist/services/skillhub/release-gc-blobs.js +4 -4
  867. package/dist/services/skillhub/release-import.d.ts +2 -2
  868. package/dist/services/skillhub/release-import.js +13 -12
  869. package/dist/services/skillhub/release-retain.d.ts +3 -3
  870. package/dist/services/skillhub/release-retain.js +22 -22
  871. package/dist/services/skillhub/sqlite-store.d.ts +1 -1
  872. package/dist/services/skillhub/sqlite-store.js +12 -11
  873. package/dist/services/skillhub/tar-runtime.js +15 -15
  874. package/dist/services/skillhub/types.d.ts +4 -4
  875. package/dist/services/skills/hooks-codegate-superpowers.js +16 -7
  876. package/dist/services/skills/hooks-settings-service.js +61 -19
  877. package/dist/services/skills/presence-lease-service.js +26 -16
  878. package/dist/services/skills/presence-lease-types.d.ts +1 -1
  879. package/dist/services/skills/presence-lease-types.js +1 -1
  880. package/dist/services/skills/skill-conformance-service.js +40 -8
  881. package/dist/services/skills/skill-presence-service.js +16 -14
  882. package/dist/services/skills/skill-runbook-service.js +2 -1
  883. package/dist/services/skills/skill-statusline-model.d.ts +128 -0
  884. package/dist/services/skills/skill-statusline-model.js +163 -0
  885. package/dist/services/skills/skill-statusline-renderer.js +4 -3
  886. package/dist/services/skills/skill-statusline-service.d.ts +3 -100
  887. package/dist/services/skills/skill-statusline-service.js +56 -163
  888. package/dist/services/skills/statusline-palette.js +11 -6
  889. package/dist/services/skills/statusline-settings-service.js +2 -1
  890. package/dist/services/skills/sync-service-support.d.ts +65 -0
  891. package/dist/services/skills/sync-service-support.js +50 -0
  892. package/dist/services/skills/sync-service.d.ts +3 -66
  893. package/dist/services/skills/sync-service.js +15 -53
  894. package/dist/services/slice/calibration-store.js +8 -2
  895. package/dist/services/slice/cross-pass-edge-merger.d.ts +3 -28
  896. package/dist/services/slice/cross-pass-edge-merger.js +13 -63
  897. package/dist/services/slice/cross-pass-edge-static-scan-support.d.ts +69 -0
  898. package/dist/services/slice/cross-pass-edge-static-scan-support.js +74 -0
  899. package/dist/services/slice/granularity-decider.js +2 -2
  900. package/dist/services/slice/slice-archive-service.js +8 -3
  901. package/dist/services/slice/slice-check-service.js +19 -8
  902. package/dist/services/slice/slice-decompose-runners.js +61 -23
  903. package/dist/services/slice/slice-decompose-service.js +4 -4
  904. package/dist/services/slice/slice-review-state.js +8 -2
  905. package/dist/services/smoke/smoke-paths-state.js +9 -2
  906. package/dist/services/sop/gate-enforce-service.js +9 -2
  907. package/dist/services/sop/sop-advance-service.js +14 -2
  908. package/dist/services/sop/sop-check-service.js +16 -4
  909. package/dist/services/sop/sop-paths.js +3 -1
  910. package/dist/services/sop/sop-registry-service.js +5 -1
  911. package/dist/services/sop/sop-service.js +29 -7
  912. package/dist/services/sop/sop-types.js +5 -1
  913. package/dist/services/standards/ide-aware-standards-service.js +2 -2
  914. package/dist/services/standards/loop-engineering-lint.js +12 -5
  915. package/dist/services/standards/loop-engineering-readiness-lint.js +5 -5
  916. package/dist/services/standards/migrate-claude-rules-service.js +9 -7
  917. package/dist/services/standards/missing-standards-detector.js +1 -3
  918. package/dist/services/standards/project-context-support.d.ts +50 -0
  919. package/dist/services/standards/project-context-support.js +244 -0
  920. package/dist/services/standards/project-context-types.d.ts +30 -0
  921. package/dist/services/standards/project-context-types.js +11 -0
  922. package/dist/services/standards/project-context.d.ts +10 -22
  923. package/dist/services/standards/project-context.js +27 -214
  924. package/dist/services/standards/project-standards-service.js +43 -12
  925. package/dist/services/standards/standards-render-common.d.ts +15 -0
  926. package/dist/services/standards/standards-render-common.js +49 -0
  927. package/dist/services/standards/standards-render.d.ts +1 -2
  928. package/dist/services/standards/standards-render.js +31 -58
  929. package/dist/services/standards/ui-library-dispatch-block.js +1 -1
  930. package/dist/services/tech/tech-change-id-service.js +7 -7
  931. package/dist/services/tech/tech-service.js +73 -26
  932. package/dist/services/test-cache/test-cache-service.js +8 -3
  933. package/dist/services/upgrade/1x-detector-service.js +5 -3
  934. package/dist/services/upgrade/gitignore-migrate-service.js +5 -5
  935. package/dist/services/upgrade/upgrade-service.js +36 -13
  936. package/dist/services/verdict/envelope-parsers.d.ts +84 -0
  937. package/dist/services/verdict/envelope-parsers.js +146 -0
  938. package/dist/services/verdict/envelopes.d.ts +50 -60
  939. package/dist/services/verdict/envelopes.js +18 -156
  940. package/dist/services/verdict/verdict-aggregator.js +27 -3
  941. package/dist/services/vm/vm-lease.js +15 -3
  942. package/dist/services/web/aria-node.d.ts +27 -0
  943. package/dist/services/web/aria-node.js +1 -0
  944. package/dist/services/web/browser-acquire.js +3 -1
  945. package/dist/services/web/browser-cache-probe.d.ts +18 -0
  946. package/dist/services/web/browser-cache-probe.js +110 -0
  947. package/dist/services/web/browser-session-manager.js +6 -2
  948. package/dist/services/web/daemon-registry.js +4 -1
  949. package/dist/services/web/playwright-loader.d.ts +2 -70
  950. package/dist/services/web/playwright-types.d.ts +75 -0
  951. package/dist/services/web/playwright-types.js +1 -0
  952. package/dist/services/web/snapshot-pruner.d.ts +2 -23
  953. package/dist/services/web/snapshot-pruner.js +8 -3
  954. package/dist/services/web/web-daemon-service.js +1 -3
  955. package/dist/services/web/web-install-service.d.ts +3 -32
  956. package/dist/services/web/web-install-service.js +21 -100
  957. package/dist/services/web/web-install-types.d.ts +31 -0
  958. package/dist/services/web/web-install-types.js +13 -0
  959. package/dist/services/web/web-login-profile.js +7 -5
  960. package/dist/services/web/web-protocol.js +3 -1
  961. package/dist/services/workflow/pipeline-verify-gate-support.js +63 -17
  962. package/dist/services/workflow/pipeline-verify-service.js +17 -6
  963. package/dist/services/workflow/plan-reader.js +5 -1
  964. package/dist/services/workflow/plan-refresher.js +20 -6
  965. package/dist/services/workflow/plan-trigger-detector.js +31 -8
  966. package/dist/services/workflow/provision-dispatch-node.js +8 -3
  967. package/dist/services/workflow/workflow-autonomous-resume-helpers.d.ts +3 -1
  968. package/dist/services/workflow/workflow-autonomous-resume-helpers.js +35 -144
  969. package/dist/services/workflow/workflow-autonomous-resume-validation.d.ts +16 -0
  970. package/dist/services/workflow/workflow-autonomous-resume-validation.js +155 -0
  971. package/dist/services/workflow/workflow-autonomous-service.js +25 -13
  972. package/dist/services/workflow/workflow-graph-store-helpers.d.ts +51 -0
  973. package/dist/services/workflow/workflow-graph-store-helpers.js +111 -0
  974. package/dist/services/workflow/workflow-graph-store.d.ts +2 -35
  975. package/dist/services/workflow/workflow-graph-store.js +30 -107
  976. package/dist/services/workflow/workflow-graph-types.js +3 -3
  977. package/dist/services/workflow/workflow-inflight-probe.js +14 -7
  978. package/dist/services/workflow/workflow-loader.js +5 -1
  979. package/dist/services/workflow/workflow-node-lifecycle.js +22 -21
  980. package/dist/services/workflow/workflow-presence-lifecycle-types.d.ts +50 -0
  981. package/dist/services/workflow/workflow-presence-lifecycle-types.js +1 -0
  982. package/dist/services/workflow/workflow-presence-lifecycle.d.ts +2 -42
  983. package/dist/services/workflow/workflow-presence-lifecycle.js +19 -21
  984. package/dist/services/workflow/workflow-router-service.js +169 -27
  985. package/dist/services/workflow/workflow-skip-service.js +14 -4
  986. package/dist/services/workflow/workflow-spec-builders.d.ts +15 -0
  987. package/dist/services/workflow/workflow-spec-builders.js +121 -0
  988. package/dist/services/workflow/workflow-spec.d.ts +7 -6
  989. package/dist/services/workflow/workflow-spec.js +22 -116
  990. package/dist/services/workflow/workflow-state-store.js +2 -1
  991. package/dist/services/workspace/migrate-1-4-1-service.js +80 -14
  992. package/dist/services/workspace/migrate-service.js +66 -16
  993. package/dist/services/workspace/reconcile-migrate.js +6 -2
  994. package/dist/services/workspace/reconcile-service.js +37 -16
  995. package/dist/services/workspace/workspace-claude-settings-materializer.js +7 -5
  996. package/dist/services/workspace/workspace-clean-service.js +4 -1
  997. package/dist/services/workspace/workspace-service.js +11 -3
  998. package/dist/services/workspace/workspace-state-service.js +1 -1
  999. package/dist/services/worktree/git-worktree-parser.js +13 -3
  1000. package/dist/services/worktree/host-worktree-reconciler.js +8 -4
  1001. package/dist/services/worktree/long-path-cleanup.js +23 -6
  1002. package/dist/services/worktree/worktree-gc-guard.js +3 -1
  1003. package/dist/services/worktree/worktree-lease-types.d.ts +53 -0
  1004. package/dist/services/worktree/worktree-lease-types.js +10 -0
  1005. package/dist/services/worktree/worktree-lease.d.ts +2 -44
  1006. package/dist/shared/array-guards.d.ts +30 -0
  1007. package/dist/shared/array-guards.js +32 -0
  1008. package/dist/shared/format-md-compact-internals.d.ts +26 -0
  1009. package/dist/shared/format-md-compact-internals.js +125 -0
  1010. package/dist/shared/format-md-compact.js +1 -117
  1011. package/dist/shared/fs-utils.js +2 -1
  1012. package/dist/shared/incrementing-number.js +3 -3
  1013. package/dist/shared/json-parse.d.ts +71 -0
  1014. package/dist/shared/json-parse.js +32 -0
  1015. package/dist/shared/json-schema-mini.js +3 -1
  1016. package/dist/shared/path-safety.js +3 -1
  1017. package/dist/shared/path-utils.d.ts +20 -0
  1018. package/dist/shared/path-utils.js +26 -0
  1019. package/dist/shared/planner-response.js +3 -3
  1020. package/dist/shared/stale-policy.js +1 -3
  1021. package/dist/skills/peaks-maker/index.js +11 -11
  1022. package/package.json +31 -8
  1023. package/scripts/clean-dist.mjs +1 -2
  1024. package/scripts/copy-templates.mjs +2 -4
  1025. package/scripts/install-skills.mjs +305 -125
  1026. package/scripts/sync-version.mjs +25 -8
  1027. package/scripts/watch.mjs +8 -2
  1028. package/skills/peaks-code/SKILL.md +1 -1
@@ -12,7 +12,10 @@
12
12
  import { addJsonOption, getErrorMessage, printResult } from '../cli-helpers.js';
13
13
  import { fail, ok } from 'peaks-loop-shared/result';
14
14
  import { detectPostCompactResume, formatPostCompactResumeLogLine } from '../../services/code/post-compact-detector.js';
15
- import { runAutoCompact } from '../../services/code/auto-compact-orchestrator.js';
15
+ import { evaluateCompactTrigger, runAutoCompact } from '../../services/code/auto-compact-orchestrator.js';
16
+ import { thresholdFor } from '../../services/code/auto-compact-modes.js';
17
+ import { resolveAutoCompactProfile } from '../../services/mode/mode-status-service.js';
18
+ import { AUTO_COMPACT_SOFT_WARN_RATIO } from '../../services/context/auto-compact-types.js';
16
19
  import { auditContext } from '../../services/context/context-audit.js';
17
20
  import { syncHarnessWindowForProject } from '../../services/context/auto-compact-reader.js';
18
21
  import { describeHarnessWindowSync, harnessWindowSyncWarning } from '../../services/context/harness-window-config.js';
@@ -25,6 +28,43 @@ import { readJobShapeDecision, JobShapeDecisionError } from '../../services/code
25
28
  import { getSkillPresence } from '../../services/skills/skill-presence-service.js';
26
29
  import { probeInFlightBatch } from '../../services/workflow/workflow-inflight-probe.js';
27
30
  import { resolveOuterSessionId } from '../../services/session/binding-status-service.js';
31
+ /** The one dispatch verb the action and red-line tiers name. */
32
+ const COMPACT_CMD = 'peaks code auto-compact';
33
+ /**
34
+ * Slice H4 (rid=h4-context-now-mode-blind) — the ONE mapping from the shared
35
+ * `CompactTrigger` to this command's `action` vocabulary, so the two cannot
36
+ * drift: the trigger is `evaluateCompactTrigger`, the same function `peaks
37
+ * code auto-compact` decides with.
38
+ *
39
+ * `auto-fire` maps to `soft-warn` in BOTH modes: that tier is `peaks skill
40
+ * presence`'s — the every-turn probe, which reads this same table and mode
41
+ * resolver — so `context-now` has no auto-fire tier of its own (SKILL.md
42
+ * "two probes, two thresholds"). Reporting it as `auto-compact-now` would
43
+ * change every non-24h session's output, which slice H4 forbids.
44
+ */
45
+ export function contextNowActionFor(ratio, mode) {
46
+ const kind = evaluateCompactTrigger(ratio, mode).kind;
47
+ if (kind === 'red-line')
48
+ return { action: 'red-line', next: COMPACT_CMD };
49
+ if (kind === 'pre-compact')
50
+ return { action: 'auto-compact-now', next: COMPACT_CMD };
51
+ return { action: kind === 'none' ? 'ok' : 'soft-warn', next: null };
52
+ }
53
+ /** Slice H4: the labels `context-now` prints, read out of the table for the mode
54
+ * in force — the old hard-coded "≥0.85 / ≥0.95 / 50–85%" told a 24h operator
55
+ * the wrong lines. `*Ratio` is the `0.85` form `gateModeNotice` uses. */
56
+ function contextNowBandLabels(mode) {
57
+ const pct = (r) => `${(r * 100).toFixed(0)}`;
58
+ const pre = thresholdFor(mode, 'preCompact');
59
+ const red = thresholdFor(mode, 'redLine');
60
+ return {
61
+ softWarn: pct(AUTO_COMPACT_SOFT_WARN_RATIO),
62
+ preCompact: pct(pre),
63
+ redLine: pct(red),
64
+ preCompactRatio: pre.toFixed(2),
65
+ redLineRatio: red.toFixed(2)
66
+ };
67
+ }
28
68
  /**
29
69
  * Adapt `runAutoCompact`'s domain result to a `ResultEnvelope`.
30
70
  *
@@ -55,7 +95,14 @@ export function buildAutoCompactEnvelope(result) {
55
95
  // `fail()` hard-codes `warnings: []`, so the warning is spread back over it —
56
96
  // a refused write can disagree with the ratio just as easily on the failure
57
97
  // path, and the state does not become less true because the dispatch failed.
58
- return { ...fail('code.auto-compact', result.code, result.message, data, [...nextActions]), warnings };
98
+ return {
99
+ ...fail('code.auto-compact', result.code, result.message, data, [...nextActions]),
100
+ warnings
101
+ };
102
+ }
103
+ function printPostCompactNoActiveSession(io, opts) {
104
+ printResult(io, fail('code.post-compact-detect', 'NO_ACTIVE_SESSION', 'no active session id; pass --session-id or set presence via `peaks skill presence:set peaks-code`', null, ['Re-run with --session-id <sid>']), opts.json);
105
+ process.exitCode = 1;
59
106
  }
60
107
  export function registerCodeRuntimeCommands(code, io) {
61
108
  addJsonOption(code
@@ -69,8 +116,7 @@ export function registerCodeRuntimeCommands(code, io) {
69
116
  try {
70
117
  const sessionId = opts.sessionId ?? readActiveSid(opts.project);
71
118
  if (sessionId === null) {
72
- printResult(io, fail('code.post-compact-detect', 'NO_ACTIVE_SESSION', 'no active session id; pass --session-id or set presence via `peaks skill presence:set peaks-code`', null, ['Re-run with --session-id <sid>']), opts.json);
73
- process.exitCode = 1;
119
+ printPostCompactNoActiveSession(io, opts);
74
120
  return;
75
121
  }
76
122
  const probe = await detectPostCompactResume({
@@ -161,7 +207,7 @@ export function registerCodeRuntimeCommands(code, io) {
161
207
  // projects.
162
208
  const out = probeInFlightBatch({ now: new Date().toISOString(), graphs: [] });
163
209
  return out.inFlightBatch === true;
164
- },
210
+ }
165
211
  }
166
212
  : {}),
167
213
  force: opts.force === true,
@@ -191,14 +237,14 @@ export function registerCodeRuntimeCommands(code, io) {
191
237
  });
192
238
  addJsonOption(code
193
239
  .command('context-now')
194
- .description('v2.13.0 AC-1: read the active IDE adapter\'s context-fill % ' +
240
+ .description("v2.13.0 AC-1: read the active IDE adapter's context-fill % " +
195
241
  'without requiring the LLM to pass --prompt-size <bytes> manually. ' +
196
242
  'Adapter-driven (no hard-coded IDE names): Claude Code is the MVP ' +
197
243
  'implementation; trae / codex / cursor / qoder / tongyi-lingma / ' +
198
244
  'hermes / openclaw register their own env-var via IdeAdapter.compact. ' +
199
- 'v3.1.2 / 2026-09-12: ≥0.85 emits action=auto-compact-now ' +
200
- '(MANDATORY in every mode — single-rid included) and ' +
201
- '≥0.95 emits action=red-line (the installed PreToolUse hook re-runs ' +
245
+ "v3.1.2 / 2026-09-12: the mode's pre-compact line emits " +
246
+ 'action=auto-compact-now (MANDATORY, single-rid included) and ' +
247
+ 'the red line emits action=red-line (the installed PreToolUse hook re-runs ' +
202
248
  'this command on the next Bash/Task tool call; nothing is blocked). ' +
203
249
  '--enforce-job-mode only changes the reported `jobMode` label; ' +
204
250
  'the thresholds are identical. ' +
@@ -296,42 +342,30 @@ export function registerCodeRuntimeCommands(code, io) {
296
342
  });
297
343
  const witnessNotice = describeHarnessWitness(harnessWitness);
298
344
  const ratioPct = (probe.ratio * 100).toFixed(1);
299
- let action = 'ok';
300
- let next = null;
301
- if (probe.ratio >= 0.95) {
302
- action = 'red-line';
303
- next = 'peaks code auto-compact';
304
- }
305
- else if (probe.ratio >= 0.85) {
306
- // Slice 2026-09-12-compact-band-policy (defect A): the
307
- // 0.85–0.95 band is MANDATORY auto-compact for single-rid
308
- // sessions too. It used to be downgraded to `soft-warn` here,
309
- // which contradicted this command's own help text, the
310
- // `pre-compact` action from `peaks skill presence`, the
311
- // peaks-code SKILL.md, and the 2026-07-27 user-calibrated
312
- // threshold policy — and left an LLM that follows the "single
313
- // source of truth" (`context-now`) never compacting in the
314
- // zone, violating the zero-pause contract.
315
- action = 'auto-compact-now';
316
- next = 'peaks code auto-compact';
317
- }
318
- else if (probe.ratio >= 0.5) {
319
- action = 'soft-warn';
320
- }
321
- const verdict = action === 'red-line' ? 'red-line'
322
- : action === 'auto-compact-now' ? 'pre-compact'
323
- : action === 'soft-warn' ? 'soft-warn'
324
- : 'ok';
325
- // Slice 2026-09-12-compact-band-policy: the two modes no longer
326
- // differ in behaviour ABOVE 0.50 — both auto-fire at ≥0.85 and
327
- // both red-line at ≥0.95 — so the old "advisory mode
328
- // (single-rid)" notice was a lie the moment the downgrade was
329
- // removed. Job mode's remaining difference is that its threshold
330
- // policy is recorded up front (`job-shape.json`), which the
331
- // `jobMode` field already reports. The notice now says only that.
345
+ // Slice H4 (rid=h4-context-now-mode-blind): ONE table, ONE mode
346
+ // resolver. The hard-coded ladder that used to live here (≥0.95 / ≥0.85
347
+ // / ≥0.5) read no mode at all, so on a 24h run (`partial` =
348
+ // 0.65/0.70/0.85) it answered `soft-warn` + `next: null` across
349
+ // [0.70, 0.85) — the band in which `peaks code auto-compact` had
350
+ // already decided to compact. SKILL.md calls THIS command the "single
351
+ // source of truth", so an LLM obeying it did nothing.
352
+ const compactMode = resolveAutoCompactProfile(canonicalProjectRoot);
353
+ const decided = contextNowActionFor(probe.ratio, compactMode);
354
+ const action = decided.action;
355
+ const next = decided.next;
356
+ const verdict = action === 'red-line'
357
+ ? 'red-line'
358
+ : action === 'auto-compact-now'
359
+ ? 'pre-compact'
360
+ : action;
361
+ const bands = contextNowBandLabels(compactMode);
362
+ // Slice H4: the text here used to claim "the two modes no longer differ
363
+ // in behaviour ABOVE 0.50 — both auto-fire at ≥0.85 and both red-line at
364
+ // ≥0.95". That was false: `partial` fires at 0.70, red-lines at 0.85.
365
+ // The lines now come from the table for the mode in force.
332
366
  const gateModeNotice = isJobMode
333
- ? 'Job mode (job-shape.json isJob=true): the same ≥0.85 / ≥0.95 thresholds apply, and the decision is recorded in job-shape.json.'
334
- : 'Single-rid mode: the same ≥0.85 / ≥0.95 thresholds apply — ≥0.85 is MANDATORY auto-compact, not advisory.';
367
+ ? `Job mode (job-shape.json isJob=true): the same ≥${bands.preCompactRatio} / ≥${bands.redLineRatio} thresholds apply, and the decision is recorded in job-shape.json.`
368
+ : `Single-rid mode: the same ≥${bands.preCompactRatio} / ≥${bands.redLineRatio} thresholds apply — ≥${bands.preCompactRatio} is MANDATORY auto-compact, not advisory.`;
335
369
  printResult(io, ok('code.context-now', {
336
370
  ratio: probe.ratio,
337
371
  ratioPct: `${ratioPct}%`,
@@ -366,12 +400,12 @@ export function registerCodeRuntimeCommands(code, io) {
366
400
  ...(witnessNotice === null ? [] : [witnessNotice])
367
401
  ], [
368
402
  action === 'red-line'
369
- ? `RED LINE: ≥ 95%. Next: \`${next}\` — peaks-loop asks the harness to compact and KEEPS WORKING (dispatch is not blocked); re-probe to confirm it landed.`
403
+ ? `RED LINE: ≥ ${bands.redLine}%. Next: \`${next}\` — peaks-loop asks the harness to compact and KEEPS WORKING (dispatch is not blocked); re-probe to confirm it landed.`
370
404
  : action === 'auto-compact-now'
371
- ? `MANDATORY auto-compact (≥85%, every mode). Code MUST call \`${next}\` WITHOUT confirmation.`
405
+ ? `MANDATORY auto-compact (≥${bands.preCompact}%, every mode). Code MUST call \`${next}\` WITHOUT confirmation.`
372
406
  : action === 'soft-warn'
373
- ? `Soft warn (50–85%). Continue working; the next \`peaks code auto-compact\` will re-check.`
374
- : `Below 50%. No action required.`,
407
+ ? `Soft warn (${bands.softWarn}–${bands.preCompact}%). Continue working; the next \`peaks code auto-compact\` will re-check.`
408
+ : `Below ${bands.softWarn}%. No action required.`,
375
409
  gateModeNotice,
376
410
  // Single wording, shared with `peaks code auto-compact` — see
377
411
  // `describeHarnessWindowSync`.
@@ -383,7 +417,9 @@ export function registerCodeRuntimeCommands(code, io) {
383
417
  // the same split, and note this one never asks a question.
384
418
  ...(witnessNotice === null
385
419
  ? []
386
- : ['Re-probe with `peaks code context-now` to confirm; this is reported, not blocking.'])
420
+ : [
421
+ 'Re-probe with `peaks code context-now` to confirm; this is reported, not blocking.'
422
+ ])
387
423
  ]),
388
424
  // Slice 2026-09-13-auto-compact-trigger-ownership: was hard-coded
389
425
  // `true`, which made the declared `--json` flag a no-op and left the
@@ -412,10 +448,10 @@ export function registerCodeRuntimeCommands(code, io) {
412
448
  // `available:false` with a reason and NEVER sets a non-zero exit code.
413
449
  addJsonOption(code
414
450
  .command('context-audit')
415
- .description('Slice 2026-09-10 Slice A: report what fills the current session\'s ' +
451
+ .description("Slice 2026-09-10 Slice A: report what fills the current session's " +
416
452
  'context window, grouped by tool + short input key (command line / ' +
417
- 'path tail / pattern), sorted by bytes. Locates the CURRENT session\'s ' +
418
- 'IDE transcript through the active adapter\'s ' +
453
+ "path tail / pattern), sorted by bytes. Locates the CURRENT session's " +
454
+ "IDE transcript through the active adapter's " +
419
455
  '`compact.resolveTranscriptPath` (vendor-neutral); emits total bytes, ' +
420
456
  'entry count, and the top-N groups ' +
421
457
  '(`{tool, key, bytes, pctOfTotal, count}`). Read-only and fail-soft — ' +
@@ -434,13 +470,17 @@ export function registerCodeRuntimeCommands(code, io) {
434
470
  const result = auditContext({
435
471
  outerSessionId: outerSessionId ?? null,
436
472
  ...(opts.top !== undefined ? { topN: opts.top } : {}),
437
- ...(opts.transcript !== undefined ? { transcriptPath: opts.transcript } : {}),
473
+ ...(opts.transcript !== undefined ? { transcriptPath: opts.transcript } : {})
438
474
  });
439
475
  // Fail-soft contract: unavailability is DATA, not an error. The exit
440
476
  // code stays 0 so a `context-audit` call can never block a workflow.
441
477
  const nextActions = result.available
442
- ? [`${result.entryCount} tool result(s) across ${result.groupCount} group(s); showing top ${result.entries.length}.`]
443
- : [`context-audit unavailable: ${result.reason ?? 'unknown'} — continue without it (read-only probe).`];
478
+ ? [
479
+ `${result.entryCount} tool result(s) across ${result.groupCount} group(s); showing top ${result.entries.length}.`
480
+ ]
481
+ : [
482
+ `context-audit unavailable: ${result.reason ?? 'unknown'} — continue without it (read-only probe).`
483
+ ];
444
484
  printResult(io, ok('code.context-audit', { ...result }, [], nextActions), opts.json);
445
485
  }
446
486
  catch (err) {
@@ -482,9 +522,7 @@ export function registerCodeRuntimeCommands(code, io) {
482
522
  mode: 'no-session',
483
523
  decision: null,
484
524
  nextSlice: null
485
- }, [], [
486
- 'No active session id; gate passes through (single-rid mode).'
487
- ]);
525
+ }, [], ['No active session id; gate passes through (single-rid mode).']);
488
526
  printResult(io, envelope, opts.json);
489
527
  return;
490
528
  }
@@ -524,10 +562,7 @@ export function registerCodeRuntimeCommands(code, io) {
524
562
  mode: 'single',
525
563
  decision: null,
526
564
  nextSlice: null
527
- }, [], [
528
- 'job-shape.json says isJob=false; single-rid mode (gate allows).',
529
- ...hintActions
530
- ]);
565
+ }, [], ['job-shape.json says isJob=false; single-rid mode (gate allows).', ...hintActions]);
531
566
  printResult(io, envelope, opts.json);
532
567
  return;
533
568
  }
@@ -584,9 +619,7 @@ export function registerCodeRuntimeCommands(code, io) {
584
619
  try {
585
620
  const sessionId = opts.sessionId ?? readActiveSid(opts.project);
586
621
  if (sessionId === null) {
587
- const envelope = ok('code.emit-handoff', { allow: true, mode: 'no-session' }, [], [
588
- 'No active session id; gate passes through (single-rid mode).'
589
- ]);
622
+ const envelope = ok('code.emit-handoff', { allow: true, mode: 'no-session' }, [], ['No active session id; gate passes through (single-rid mode).']);
590
623
  printResult(io, envelope, opts.json);
591
624
  return;
592
625
  }
@@ -600,16 +633,12 @@ export function registerCodeRuntimeCommands(code, io) {
600
633
  evalInput.forceUnderJob = true;
601
634
  const verdict = evaluateEmitHandoff(evalInput);
602
635
  if (verdict.kind === 'allow-not-job') {
603
- const envelope = ok('code.emit-handoff', { allow: true, mode: 'single' }, [], [
604
- 'job-shape.json says isJob=false (or absent); normal handoff allowed.'
605
- ]);
636
+ const envelope = ok('code.emit-handoff', { allow: true, mode: 'single' }, [], ['job-shape.json says isJob=false (or absent); normal handoff allowed.']);
606
637
  printResult(io, envelope, opts.json);
607
638
  return;
608
639
  }
609
640
  if (verdict.kind === 'allow-done') {
610
- const envelope = ok('code.emit-handoff', { allow: true, mode: 'job-done', remaining: verdict.remaining }, [], [
611
- `Job is complete (remaining=0); handoff allowed.`
612
- ]);
641
+ const envelope = ok('code.emit-handoff', { allow: true, mode: 'job-done', remaining: verdict.remaining }, [], [`Job is complete (remaining=0); handoff allowed.`]);
613
642
  printResult(io, envelope, opts.json);
614
643
  return;
615
644
  }
@@ -621,7 +650,9 @@ export function registerCodeRuntimeCommands(code, io) {
621
650
  return;
622
651
  }
623
652
  if (verdict.kind === 'block-not-initialized') {
624
- const envelope = fail('code.emit-handoff', JOB_NOT_INITIALIZED, `Job ${verdict.jobId} has no state.json; peaks job init was skipped.`, { jobId: verdict.jobId }, [`Run \`peaks job init --job-id ${verdict.jobId} --slice-list <...>\` before emitting handoff.`]);
653
+ const envelope = fail('code.emit-handoff', JOB_NOT_INITIALIZED, `Job ${verdict.jobId} has no state.json; peaks job init was skipped.`, { jobId: verdict.jobId }, [
654
+ `Run \`peaks job init --job-id ${verdict.jobId} --slice-list <...>\` before emitting handoff.`
655
+ ]);
625
656
  printResult(io, envelope, opts.json);
626
657
  process.exitCode = 1;
627
658
  return;
@@ -656,7 +687,8 @@ function readActiveSid(projectRoot) {
656
687
  return null;
657
688
  return presence.sessionId ?? null;
658
689
  }
659
- catch { // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
690
+ catch {
691
+ // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
660
692
  return null;
661
693
  }
662
694
  }
@@ -134,9 +134,7 @@ async function runCodegraphRepairCommand(io, options, asJson, mode) {
134
134
  // in the third slot reads as a problem — and a real warning parked
135
135
  // there double-prefixes. Confirmations go to `nextActions`; only a
136
136
  // genuine `report.warning` reaches `warnings`, verbatim.
137
- const confirmations = [
138
- report.applied ? appliedRepairNote(report) : spec.noopNote
139
- ];
137
+ const confirmations = [report.applied ? appliedRepairNote(report) : spec.noopNote];
140
138
  if (report.applied || mode === 'index') {
141
139
  confirmations.push('Re-run `peaks codegraph status --project <root>` to confirm the gap is closed.');
142
140
  }
@@ -525,8 +523,12 @@ async function runCodegraphAffectedCommand(io, files, options, asJson) {
525
523
  }
526
524
  }
527
525
  export function registerCodegraphCommands(program, io) {
528
- const codegraph = program.command('codegraph').description('Run upstream codegraph commands through the Peaks launcher');
529
- addProjectOption(codegraph.command('status').description('Show codegraph status, including the exclude integrity gate')).action((options) => runCodegraphStatusCommand(io, options, options.peaksJson));
526
+ const codegraph = program
527
+ .command('codegraph')
528
+ .description('Run upstream codegraph commands through the Peaks launcher');
529
+ addProjectOption(codegraph
530
+ .command('status')
531
+ .description('Show codegraph status, including the exclude integrity gate')).action((options) => runCodegraphStatusCommand(io, options, options.peaksJson));
530
532
  addProjectOption(codegraph
531
533
  .command('repair-exclude')
532
534
  .description('Normalize the codegraph include list, drop exclude rules that block tracked source files, then rebuild the index')).action((options) => runCodegraphRepairCommand(io, options, options.peaksJson, 'exclude'));
@@ -578,7 +580,10 @@ export function registerCodegraphCommands(program, io) {
578
580
  ...(options.maxDepth !== undefined ? { maxDepth: options.maxDepth } : {})
579
581
  }, options.peaksJson);
580
582
  });
581
- addProjectOption(codegraph.command('context').description('Build task context with codegraph').argument('<task>', 'task text')).action(async (task, options) => {
583
+ addProjectOption(codegraph
584
+ .command('context')
585
+ .description('Build task context with codegraph')
586
+ .argument('<task>', 'task text')).action(async (task, options) => {
582
587
  await runCodegraphCommand(io, 'codegraph.context', { subcommand: 'context', project: options.project, task }, options.peaksJson);
583
588
  });
584
589
  addProjectOption(codegraph
@@ -113,10 +113,14 @@ async function runCodegraphStatusJson(io, options, integrity, integrityWarning,
113
113
  indexIntegritySeverity: indexVerdict === 'gap' ? (strict ? 'error' : 'warning') : null
114
114
  };
115
115
  if (upstreamFailed) {
116
- printResult(io, fail('codegraph.status', 'CODEGRAPH_COMMAND_FAILED', redactSensitiveErrorMessage(upstream.stderr || upstream.stdout || `codegraph exited with code ${String(result.exitCode)}`), data, ['Check the codegraph project path before retrying']), true);
116
+ printResult(io, fail('codegraph.status', 'CODEGRAPH_COMMAND_FAILED', redactSensitiveErrorMessage(upstream.stderr ||
117
+ upstream.stdout ||
118
+ `codegraph exited with code ${String(result.exitCode)}`), data, ['Check the codegraph project path before retrying']), true);
117
119
  }
118
120
  else if (integrity?.gap === true) {
119
- 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, ['Run `peaks codegraph repair-exclude --project <root>` to drop the offending rules and rebuild the index.']), true);
121
+ 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, [
122
+ 'Run `peaks codegraph repair-exclude --project <root>` to drop the offending rules and rebuild the index.'
123
+ ]), true);
120
124
  }
121
125
  else if (indexVerdict === 'not-evaluated') {
122
126
  // Distinct from the `ok` branch below on purpose: this axis produced
@@ -4,7 +4,7 @@ import { fail, ok, getErrorMessage } from 'peaks-loop-shared/result';
4
4
  import { addJsonOption, printResult } from '../cli-helpers.js';
5
5
  import { writeCheckpoint } from '../../services/session/session-checkpoint-service.js';
6
6
  import { getSessionIdCanonical } from '../../services/session/session-manager.js';
7
- import { computeWindowCalibration, readCompactHistory, summarizeCompactHistory, } from '../../services/compact-history/compact-history-service.js';
7
+ import { computeWindowCalibration, readCompactHistory, summarizeCompactHistory } from '../../services/compact-history/compact-history-service.js';
8
8
  import { readHarnessWindowState, resolveHarnessWindowLocation } from '../../services/context/auto-compact-reader.js';
9
9
  import { disableHarnessWindowSync, reenableHarnessWindowSync, resetHarnessWindow } from '../../services/context/harness-window-config.js';
10
10
  import { buildRecommendEnvelopePure, dryRunCompact, suggestCompact } from '../../services/compact/suggest-service.js';
@@ -47,7 +47,8 @@ async function readHookPayload() {
47
47
  try {
48
48
  return JSON.parse(raw);
49
49
  }
50
- catch { // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
50
+ catch {
51
+ // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
51
52
  return null;
52
53
  }
53
54
  }
@@ -117,7 +118,9 @@ export function registerCompactCommands(program, io) {
117
118
  ]), options.json);
118
119
  }
119
120
  catch (error) {
120
- printResult(io, fail('compact.suggest', 'COMPACT_SUGGEST_FAILED', getErrorMessage(error), {}, ['Verify project root and session binding before retrying']), options.json);
121
+ printResult(io, fail('compact.suggest', 'COMPACT_SUGGEST_FAILED', getErrorMessage(error), {}, [
122
+ 'Verify project root and session binding before retrying'
123
+ ]), options.json);
121
124
  process.exitCode = 1;
122
125
  }
123
126
  });
@@ -151,7 +154,11 @@ export function registerCompactCommands(program, io) {
151
154
  rationale: envelope.rationale,
152
155
  suggestedMessage: envelope.suggestedMessage,
153
156
  notInTable: lookup.notInTable
154
- }, lookup.notInTable ? [`Transition ${options.from} → ${options.to} is not in the strategic-compact table; defaulting to severity=no.`] : []), options.json);
157
+ }, lookup.notInTable
158
+ ? [
159
+ `Transition ${options.from} → ${options.to} is not in the strategic-compact table; defaulting to severity=no.`
160
+ ]
161
+ : []), options.json);
155
162
  }
156
163
  catch (error) {
157
164
  printResult(io, fail('compact.recommend', 'COMPACT_RECOMMEND_FAILED', getErrorMessage(error), { from: options.from, to: options.to }, ['Verify the phase pair against the documented transitions']), options.json);
@@ -224,7 +231,9 @@ export function registerCompactCommands(program, io) {
224
231
  ]), options.json);
225
232
  }
226
233
  catch (error) {
227
- printResult(io, fail('compact.dry-run', 'COMPACT_DRY_RUN_FAILED', getErrorMessage(error), {}, ['Verify project root, session binding, and phase pair before retrying']), options.json);
234
+ printResult(io, fail('compact.dry-run', 'COMPACT_DRY_RUN_FAILED', getErrorMessage(error), {}, [
235
+ 'Verify project root, session binding, and phase pair before retrying'
236
+ ]), options.json);
228
237
  process.exitCode = 1;
229
238
  }
230
239
  });
@@ -234,7 +243,7 @@ export function registerCompactCommands(program, io) {
234
243
  addJsonOption(compact
235
244
  .command('force')
236
245
  .description('Write a pre-compact checkpoint via `peaks session checkpoint --reason context-fill`. ' +
237
- 'The IDE-side `/compact` is still the LLM\'s call; this primitive guarantees ' +
246
+ "The IDE-side `/compact` is still the LLM's call; this primitive guarantees " +
238
247
  'the pre-compact state is persisted. NO sleep, NO wait for IDE response.')
239
248
  .option('--reason <text>', 'human-readable reason for the pre-compact checkpoint', 'pre-force-compact')
240
249
  .option('--project <path>', 'project root (defaults to git root or cwd)')
@@ -284,13 +293,15 @@ export function registerCompactCommands(program, io) {
284
293
  sessionId: result.sessionId,
285
294
  createdAt: result.createdAt,
286
295
  totalRetained: result.totalRetained,
287
- message: 'Pre-compact checkpoint written. The IDE-side /compact is still the LLM\'s call; this CLI does NOT invoke the IDE slash command.'
296
+ message: "Pre-compact checkpoint written. The IDE-side /compact is still the LLM's call; this CLI does NOT invoke the IDE slash command."
288
297
  }, [], [
289
298
  'After the LLM fires the IDE-side /compact, call `peaks compact survival` to see what to persist before the next compact.'
290
299
  ]), options.json);
291
300
  }
292
301
  catch (error) {
293
- printResult(io, fail('compact.force', 'COMPACT_FORCE_FAILED', getErrorMessage(error), {}, ['Verify the project path is writable and a session is bound']), options.json);
302
+ printResult(io, fail('compact.force', 'COMPACT_FORCE_FAILED', getErrorMessage(error), {}, [
303
+ 'Verify the project path is writable and a session is bound'
304
+ ]), options.json);
294
305
  process.exitCode = 1;
295
306
  }
296
307
  });
@@ -312,13 +323,16 @@ export function registerCompactCommands(program, io) {
312
323
  process.exitCode = 1;
313
324
  return;
314
325
  }
315
- const result = readCompactHistory({ projectRoot: project, sessionId: session.sid });
326
+ const result = readCompactHistory({
327
+ projectRoot: project,
328
+ sessionId: session.sid
329
+ });
316
330
  if (result.kind === 'file-missing') {
317
331
  printResult(io, ok('compact.history', {
318
332
  sessionId: session.sid,
319
333
  totalCompacts: 0,
320
334
  message: 'No compact-history.jsonl yet; auto-compact has not fired in this session.',
321
- historyPath: result.path,
335
+ historyPath: result.path
322
336
  }), options.json);
323
337
  return;
324
338
  }
@@ -327,7 +341,7 @@ export function registerCompactCommands(program, io) {
327
341
  sessionId: session.sid,
328
342
  totalCompacts: 0,
329
343
  message: 'compact-history.jsonl exists but is empty.',
330
- historyPath: result.path,
344
+ historyPath: result.path
331
345
  }), options.json);
332
346
  return;
333
347
  }
@@ -344,11 +358,13 @@ export function registerCompactCommands(program, io) {
344
358
  windowCalibration,
345
359
  events: result.events,
346
360
  parseErrors: result.parseErrors,
347
- historyPath: result.path,
361
+ historyPath: result.path
348
362
  }), options.json);
349
363
  }
350
364
  catch (error) {
351
- printResult(io, fail('compact.history', 'COMPACT_HISTORY_READ_FAILED', getErrorMessage(error), {}, ['Verify the project path is readable and a session is bound']), options.json);
365
+ printResult(io, fail('compact.history', 'COMPACT_HISTORY_READ_FAILED', getErrorMessage(error), {}, [
366
+ 'Verify the project path is readable and a session is bound'
367
+ ]), options.json);
352
368
  process.exitCode = 1;
353
369
  }
354
370
  }));
@@ -368,7 +384,7 @@ export function registerCompactCommands(program, io) {
368
384
  addJsonOption(compact
369
385
  .command('harness-window')
370
386
  .description('Report / roll back the auto-compact window peaks-loop writes into the ' +
371
- 'harness\'s own machine-local settings (the adapter-declared ' +
387
+ "harness's own machine-local settings (the adapter-declared " +
372
388
  'autoCompactWindowEnvVar, e.g. CLAUDE_CODE_AUTO_COMPACT_WINDOW in ' +
373
389
  '.claude/settings.local.json). peaks-loop computes its context ratio ' +
374
390
  'against exactly this number, so the value it reports as "85%" and the ' +
@@ -390,13 +406,16 @@ export function registerCompactCommands(program, io) {
390
406
  const project = options.project !== undefined
391
407
  ? resolveCanonicalProjectRoot(options.project)
392
408
  : (findProjectRoot(process.cwd()) ?? process.cwd());
393
- const location = resolveHarnessWindowLocation({ projectRoot: project, env: process.env });
409
+ const location = resolveHarnessWindowLocation({
410
+ projectRoot: project,
411
+ env: process.env
412
+ });
394
413
  if (location === null) {
395
414
  printResult(io, ok('compact.harness-window', {
396
415
  projectRoot: project,
397
416
  managed: false,
398
417
  message: 'The active IDE adapter declares no auto-compact window key, so peaks-loop cannot tie ' +
399
- 'the harness window to its own ratio. Nothing was written and there is nothing to roll back.',
418
+ 'the harness window to its own ratio. Nothing was written and there is nothing to roll back.'
400
419
  }), options.json);
401
420
  return;
402
421
  }
@@ -407,11 +426,11 @@ export function registerCompactCommands(program, io) {
407
426
  action: result.action,
408
427
  key: location.envVar,
409
428
  settingsPath: result.settingsPath,
410
- previousTokens: result.previousTokens,
429
+ previousTokens: result.previousTokens
411
430
  }, [], [
412
431
  result.action === 'removed'
413
432
  ? `Removed ${location.envVar} from ${result.settingsPath} and opted this project out, so later probes stop writing it. Undo with \`peaks compact harness-window --reenable\`.`
414
- : `Nothing to remove — ${location.envVar} was already absent from ${result.settingsPath}, so nothing was written and no opt-out row was recorded: if a probe writes a window here later, run --reset again to remove it. To say "never manage this key here" WITHOUT waiting for that first write, run \`peaks compact harness-window --disable\`.`,
433
+ : `Nothing to remove — ${location.envVar} was already absent from ${result.settingsPath}, so nothing was written and no opt-out row was recorded: if a probe writes a window here later, run --reset again to remove it. To say "never manage this key here" WITHOUT waiting for that first write, run \`peaks compact harness-window --disable\`.`
415
434
  ]), options.json);
416
435
  return;
417
436
  }
@@ -421,7 +440,7 @@ export function registerCompactCommands(program, io) {
421
440
  projectRoot: project,
422
441
  action: result.action,
423
442
  key: location.envVar,
424
- settingsPath: result.settingsPath,
443
+ settingsPath: result.settingsPath
425
444
  }, [], [
426
445
  result.action === 'disabled'
427
446
  ? `Recorded the opt-out in ${result.settingsPath}: peaks-loop will not write ${location.envVar} here, and left any value already in the file exactly as it was. Undo with \`peaks compact harness-window --reenable\`.`
@@ -429,16 +448,21 @@ export function registerCompactCommands(program, io) {
429
448
  ? `Already opted out — ${result.settingsPath} carries ${location.envVar}'s opt-out, so nothing was written. Undo with \`peaks compact harness-window --reenable\`.`
430
449
  : result.action === 'refused-unsafe-project-root'
431
450
  ? `Nothing written: the resolved project root is the user's own home directory, so ${result.settingsPath} is their PERSONAL harness settings, not a project's. peaks-loop already refuses to write ${location.envVar} there, so an opt-out would change nothing except which refusal you see. Point --project at a project (a subdirectory of home is fine) and the opt-out lands there.`
432
- : `Nothing written — ${result.settingsPath} is not a JSON object peaks-loop can safely edit, so the opt-out could not be recorded there.`,
451
+ : `Nothing written — ${result.settingsPath} is not a JSON object peaks-loop can safely edit, so the opt-out could not be recorded there.`
433
452
  ]), options.json);
434
453
  return;
435
454
  }
436
455
  if (options.reenable === true) {
437
456
  const result = reenableHarnessWindowSync({ location });
438
- printResult(io, ok('compact.harness-window', { projectRoot: project, action: result.action, key: location.envVar, settingsPath: result.settingsPath }, [], [
457
+ printResult(io, ok('compact.harness-window', {
458
+ projectRoot: project,
459
+ action: result.action,
460
+ key: location.envVar,
461
+ settingsPath: result.settingsPath
462
+ }, [], [
439
463
  result.action === 'reenabled'
440
464
  ? 'Opt-out cleared; the next context probe will materialize the window again.'
441
- : 'No opt-out was recorded for this project.',
465
+ : 'No opt-out was recorded for this project.'
442
466
  ]), options.json);
443
467
  return;
444
468
  }
@@ -455,15 +479,15 @@ export function registerCompactCommands(program, io) {
455
479
  // Provenance: whether this value is peaks-loop's own write or
456
480
  // one the user set by hand. It decides whether the late 1M
457
481
  // rescue may override it, so it is not just diagnostics.
458
- peakWritten: state?.peakWritten ?? false,
482
+ peakWritten: state?.peakWritten ?? false
459
483
  }, [], [
460
484
  state?.tokens === null || state?.tokens === undefined
461
485
  ? 'No window is set yet. The next `peaks code context-now` probe materializes the window it computes its ratio against.'
462
486
  : `peaks-loop computes its context ratio against ${state.tokens} tokens; the harness fires near the end of that window. ${state.peakWritten
463
487
  ? 'peaks-loop wrote this value; it may raise it if a session outgrows it.'
464
- : 'This value is not peaks-loop\'s own write, so peaks-loop will not raise it — it is treated as your setting.'}`,
488
+ : "This value is not peaks-loop's own write, so peaks-loop will not raise it — it is treated as your setting."}`,
465
489
  'Rollback: `peaks compact harness-window --reset`.',
466
- 'Intent-vs-observed calibration: `peaks compact history --json` → windowCalibration.',
490
+ 'Intent-vs-observed calibration: `peaks compact history --json` → windowCalibration.'
467
491
  ]), options.json);
468
492
  }
469
493
  catch (error) {
@@ -536,7 +560,9 @@ export function registerCompactCommands(program, io) {
536
560
  catch (error) {
537
561
  if (options.json !== true)
538
562
  return;
539
- printResult(io, fail('compact.settle', 'COMPACT_SETTLE_FAILED', getErrorMessage(error), {}, ['Verify the project path and session binding']), true);
563
+ printResult(io, fail('compact.settle', 'COMPACT_SETTLE_FAILED', getErrorMessage(error), {}, [
564
+ 'Verify the project path and session binding'
565
+ ]), true);
540
566
  }
541
567
  });
542
568
  }
@@ -19,16 +19,15 @@ export function registerComplexityCommands(program, io) {
19
19
  .requiredOption('--files <list>', 'comma-separated file paths (relative to project root)')
20
20
  .option('--project <path>', 'project root (default: cwd)')).action((opts) => {
21
21
  const projectRoot = opts.project ?? findProjectRoot(process.cwd()) ?? process.cwd();
22
- const files = opts.files.split(',').map((s) => s.trim()).filter((s) => s.length > 0);
22
+ const files = opts.files
23
+ .split(',')
24
+ .map((s) => s.trim())
25
+ .filter((s) => s.length > 0);
23
26
  if (files.length === 0) {
24
- printResult(io, fail('complexity-estimate', 'INVALID_INPUT', 'no files provided (--files)', { projectRoot }, [
25
- 'Pass --files with at least one file path.'
26
- ]), opts.json ?? false);
27
+ printResult(io, fail('complexity-estimate', 'INVALID_INPUT', 'no files provided (--files)', { projectRoot }, ['Pass --files with at least one file path.']), opts.json ?? false);
27
28
  return;
28
29
  }
29
30
  const report = estimateComplexity(projectRoot, files);
30
- printResult(io, ok('complexity-estimate', { projectRoot, report }, [], [
31
- `Overall tier: ${report.overall}. Schedule accordingly.`
32
- ]), opts.json ?? false);
31
+ printResult(io, ok('complexity-estimate', { projectRoot, report }, [], [`Overall tier: ${report.overall}. Schedule accordingly.`]), opts.json ?? false);
33
32
  });
34
33
  }
@@ -1,3 +1,3 @@
1
- import { Command } from 'commander';
1
+ import type { Command } from 'commander';
2
2
  import { type ProgramIO } from '../cli-helpers.js';
3
3
  export declare function registerConfigCommands(program: Command, io: ProgramIO): void;