peaks-loop 4.0.53 → 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 (1053) hide show
  1. package/CHANGELOG.md +85 -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 +175 -11
  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 +81 -22
  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 +69 -34
  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 +21 -2
  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.d.ts +23 -0
  224. package/dist/cli/commands/sub-agent-shared.js +40 -1
  225. package/dist/cli/commands/sub-agent-shutdown-commands.js +17 -9
  226. package/dist/cli/commands/swarm-commands.d.ts +1 -1
  227. package/dist/cli/commands/swarm-commands.js +13 -6
  228. package/dist/cli/commands/tech-commands-helpers.d.ts +37 -0
  229. package/dist/cli/commands/tech-commands-helpers.js +24 -0
  230. package/dist/cli/commands/tech-commands.d.ts +2 -29
  231. package/dist/cli/commands/tech-commands.js +15 -28
  232. package/dist/cli/commands/test-commands.js +27 -7
  233. package/dist/cli/commands/upgrade-commands.d.ts +1 -1
  234. package/dist/cli/commands/user-touchpoint-commands.js +1 -3
  235. package/dist/cli/commands/verdict-aggregate-command.d.ts +1 -1
  236. package/dist/cli/commands/verdict-aggregate-command.js +20 -7
  237. package/dist/cli/commands/vm-commands.js +48 -19
  238. package/dist/cli/commands/wave-plan-commands.js +5 -2
  239. package/dist/cli/commands/web-commands.js +14 -4
  240. package/dist/cli/commands/web-lifecycle-commands.js +5 -3
  241. package/dist/cli/commands/workflow-commands.d.ts +1 -1
  242. package/dist/cli/commands/workflow-commands.js +64 -29
  243. package/dist/cli/commands/workflow-lifecycle-commands.js +19 -17
  244. package/dist/cli/commands/workflow-plan-commands-actions.d.ts +20 -0
  245. package/dist/cli/commands/workflow-plan-commands-actions.js +115 -0
  246. package/dist/cli/commands/workflow-plan-commands-session.d.ts +17 -0
  247. package/dist/cli/commands/workflow-plan-commands-session.js +59 -0
  248. package/dist/cli/commands/workflow-plan-commands.d.ts +10 -21
  249. package/dist/cli/commands/workflow-plan-commands.js +15 -141
  250. package/dist/cli/commands/workspace/clean-command.js +4 -1
  251. package/dist/cli/commands/workspace/helpers.js +2 -1
  252. package/dist/cli/commands/workspace/init-command.js +80 -20
  253. package/dist/cli/commands/workspace/reconcile-command.js +3 -1
  254. package/dist/cli/commands/workspace-commands.d.ts +1 -1
  255. package/dist/cli/commands/workspace-commands.js +1 -1
  256. package/dist/cli/commands/worktree-auth-commands.d.ts +1 -1
  257. package/dist/cli/commands/worktree-auth-commands.js +16 -169
  258. package/dist/cli/commands/worktree-auth-grant-command.d.ts +14 -0
  259. package/dist/cli/commands/worktree-auth-grant-command.js +118 -0
  260. package/dist/cli/commands/worktree-auth-manage-commands.d.ts +17 -0
  261. package/dist/cli/commands/worktree-auth-manage-commands.js +128 -0
  262. package/dist/cli/commands/worktree-lease-commands.d.ts +1 -1
  263. package/dist/cli/commands/worktree-lease-commands.js +65 -37
  264. package/dist/cli/index.js +6 -2
  265. package/dist/cli/program.js +6 -3
  266. package/dist/hooks/pre-tool-use-sub-agent.js +1 -6
  267. package/dist/reporters/bdd-reporter.js +9 -3
  268. package/dist/services/24h-mode/auto-engage.d.ts +19 -0
  269. package/dist/services/24h-mode/auto-engage.js +35 -0
  270. package/dist/services/24h-mode/decider.js +5 -1
  271. package/dist/services/24h-mode/store.js +4 -2
  272. package/dist/services/adapter/adapter-registry.js +20 -8
  273. package/dist/services/adapter/adapter.d.ts +2 -2
  274. package/dist/services/adapter/auto-adapter.d.ts +2 -2
  275. package/dist/services/adapter/auto-adapter.js +1 -1
  276. package/dist/services/adapter/claude-adapter.d.ts +1 -1
  277. package/dist/services/adapter/claude-adapter.js +8 -8
  278. package/dist/services/adapter/codex-adapter.d.ts +2 -2
  279. package/dist/services/adapter/codex-adapter.js +20 -8
  280. package/dist/services/adapter/copilot-adapter.d.ts +2 -2
  281. package/dist/services/adapter/copilot-adapter.js +20 -8
  282. package/dist/services/artifacts/artifact-prerequisites.js +44 -8
  283. package/dist/services/artifacts/artifact-service.js +3 -1
  284. package/dist/services/artifacts/artifact-template-bodies.d.ts +12 -0
  285. package/dist/services/artifacts/artifact-template-bodies.js +165 -0
  286. package/dist/services/artifacts/artifact-templates.js +26 -168
  287. package/dist/services/artifacts/request-artifact-service.js +14 -7
  288. package/dist/services/artifacts/request-artifact-state-helpers.d.ts +3 -2
  289. package/dist/services/artifacts/request-artifact-state-helpers.js +3 -5
  290. package/dist/services/artifacts/workspace-artifact-helpers.d.ts +28 -0
  291. package/dist/services/artifacts/workspace-artifact-helpers.js +54 -0
  292. package/dist/services/artifacts/workspace-service.d.ts +3 -22
  293. package/dist/services/artifacts/workspace-service.js +10 -60
  294. package/dist/services/audit/artifact-writer.js +21 -21
  295. package/dist/services/audit/audit-goal-service.js +2 -2
  296. package/dist/services/audit/backing-detector.js +7 -4
  297. package/dist/services/audit/classifier.js +3 -3
  298. package/dist/services/audit/decision-writer.js +13 -9
  299. package/dist/services/audit/enforcer-liveness.js +1 -1
  300. package/dist/services/audit/enforcers/active-skill-resolver.js +15 -7
  301. package/dist/services/audit/enforcers/design-draft-confirm.js +4 -4
  302. package/dist/services/audit/enforcers/lint-audit-regression.js +10 -5
  303. package/dist/services/audit/enforcers/lint-bee-runtime-contract.js +16 -8
  304. package/dist/services/audit/enforcers/lint-catalog-governance.js +8 -4
  305. package/dist/services/audit/enforcers/lint-output-style.js +4 -2
  306. package/dist/services/audit/enforcers/lint-peaks-code-runtime.js +8 -3
  307. package/dist/services/audit/enforcers/lint-peaks-skill-runtime.js +8 -3
  308. package/dist/services/audit/enforcers/lint-peaks-ui-sc-txt-runtime.js +20 -20
  309. package/dist/services/audit/enforcers/lint-prd-artifact-handoff.js +5 -5
  310. package/dist/services/audit/enforcers/lint-prd-source-snapshot.d.ts +1 -1
  311. package/dist/services/audit/enforcers/lint-prd-source-snapshot.js +5 -5
  312. package/dist/services/audit/enforcers/lint-qa-gateguard-and-runtime.js +10 -10
  313. package/dist/services/audit/enforcers/lint-rd-handoff-coverage.js +10 -8
  314. package/dist/services/audit/enforcers/lint-reference-shape.js +50 -18
  315. package/dist/services/audit/enforcers/lint-skill-presence-mandatory.js +5 -5
  316. package/dist/services/audit/enforcers/lint-style.js +44 -11
  317. package/dist/services/audit/enforcers/lint-workflow-shape.js +4 -2
  318. package/dist/services/audit/enforcers/login-gate.js +2 -6
  319. package/dist/services/audit/enforcers/mock-placement.js +2 -2
  320. package/dist/services/audit/enforcers/no-root-pollution.js +38 -9
  321. package/dist/services/audit/enforcers/pre-rd-scan.js +1 -1
  322. package/dist/services/audit/enforcers/prototype-fidelity.js +1 -1
  323. package/dist/services/audit/enforcers/resume-detection.js +5 -4
  324. package/dist/services/audit/prose-ratio-calculator.js +1 -1
  325. package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.d.ts +39 -0
  326. package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.js +205 -0
  327. package/dist/services/audit/red-line-catalog-p2-a-lint-style.d.ts +52 -0
  328. package/dist/services/audit/red-line-catalog-p2-a-lint-style.js +205 -0
  329. package/dist/services/audit/red-line-catalog-p2-a.js +3 -374
  330. package/dist/services/audit/red-line-catalog-p2-b.js +26 -26
  331. package/dist/services/audit/red-line-catalog.js +26 -38
  332. package/dist/services/audit/red-lines-service.js +64 -49
  333. package/dist/services/audit/scanners/openspec-scanner.js +2 -2
  334. package/dist/services/audit/scanners/rules-tree-scanner.js +2 -2
  335. package/dist/services/audit/scanners/skills-tree-scanner.js +2 -2
  336. package/dist/services/audit/static-service.js +3 -3
  337. package/dist/services/audit-independent/index.d.ts +2 -2
  338. package/dist/services/audit-independent/index.js +2 -2
  339. package/dist/services/audit-independent/perf-audit-service.js +19 -8
  340. package/dist/services/audit-independent/security-audit-service.js +31 -16
  341. package/dist/services/autonomous-swarm/autonomous-swarm-service.js +75 -46
  342. package/dist/services/best-practice/output-formatter.js +7 -1
  343. package/dist/services/capability-audit-service/cross-check.js +11 -5
  344. package/dist/services/capability-audit-service/runner.js +15 -7
  345. package/dist/services/capability-baseline/store.js +16 -4
  346. package/dist/services/capability-baseline/types.js +15 -3
  347. package/dist/services/capability-baseline/validator.js +43 -7
  348. package/dist/services/capability-guard-runner/contracts/J02.js +36 -6
  349. package/dist/services/capability-guard-runner/contracts/J03.js +20 -11
  350. package/dist/services/capability-guard-runner/contracts/J04.js +24 -15
  351. package/dist/services/capability-guard-runner/contracts/J05.js +26 -10
  352. package/dist/services/capability-guard-runner/contracts/J07.js +8 -2
  353. package/dist/services/capability-guard-runner/contracts/J08.js +22 -5
  354. package/dist/services/capability-guard-runner/contracts/J10.js +6 -2
  355. package/dist/services/capability-guard-runner/contracts/J11.d.ts +5 -0
  356. package/dist/services/capability-guard-runner/contracts/J11.js +14 -2
  357. package/dist/services/capability-guard-runner/contracts/J12.js +12 -3
  358. package/dist/services/capability-guard-runner/diff.js +1 -5
  359. package/dist/services/changeset/changeset-check-service.js +1 -3
  360. package/dist/services/classify/classify-service.js +20 -8
  361. package/dist/services/classify/classify-types.js +22 -9
  362. package/dist/services/code/auto-compact-lifecycle.js +62 -39
  363. package/dist/services/code/auto-compact-modes.js +2 -2
  364. package/dist/services/code/auto-compact-orchestrator.js +14 -9
  365. package/dist/services/code/batch-heartbeat-poller.d.ts +10 -0
  366. package/dist/services/code/batch-heartbeat-poller.js +17 -1
  367. package/dist/services/code/compact-event-settle-types.d.ts +80 -0
  368. package/dist/services/code/compact-event-settle-types.js +20 -0
  369. package/dist/services/code/compact-event-settle.d.ts +3 -68
  370. package/dist/services/code/compact-event-settle.js +14 -10
  371. package/dist/services/code/dag-orchestrator.js +32 -26
  372. package/dist/services/code/job-shape-decision.js +3 -1
  373. package/dist/services/code/mode-gate-types.d.ts +57 -0
  374. package/dist/services/code/mode-gate-types.js +67 -0
  375. package/dist/services/code/mode-gate.d.ts +4 -58
  376. package/dist/services/code/mode-gate.js +24 -60
  377. package/dist/services/code/orchestrator-can-do-advisories.d.ts +30 -0
  378. package/dist/services/code/orchestrator-can-do-advisories.js +81 -0
  379. package/dist/services/code/orchestrator-can-do-probes.d.ts +30 -0
  380. package/dist/services/code/orchestrator-can-do-probes.js +77 -0
  381. package/dist/services/code/orchestrator-can-do.d.ts +11 -22
  382. package/dist/services/code/orchestrator-can-do.js +37 -137
  383. package/dist/services/code/post-compact-checkpoint.d.ts +28 -0
  384. package/dist/services/code/post-compact-checkpoint.js +57 -0
  385. package/dist/services/code/post-compact-detector.js +16 -48
  386. package/dist/services/code/step-08-gate.d.ts +4 -3
  387. package/dist/services/code/step-08-gate.js +21 -9
  388. package/dist/services/code-review/ecc-bridge.js +23 -23
  389. package/dist/services/codegraph/codegraph-autorefresh.js +56 -39
  390. package/dist/services/codegraph/codegraph-config-repair-writer.d.ts +44 -0
  391. package/dist/services/codegraph/codegraph-config-repair-writer.js +116 -14
  392. package/dist/services/codegraph/codegraph-exclude-integrity.js +4 -1
  393. package/dist/services/codegraph/codegraph-exclude-repair.d.ts +23 -1
  394. package/dist/services/codegraph/codegraph-exclude-repair.js +7 -2
  395. package/dist/services/codegraph/codegraph-index-integrity.js +1 -1
  396. package/dist/services/codegraph/codegraph-preflight-service.d.ts +3 -26
  397. package/dist/services/codegraph/codegraph-preflight-service.js +16 -37
  398. package/dist/services/codegraph/codegraph-preflight-structure.d.ts +32 -0
  399. package/dist/services/codegraph/codegraph-preflight-structure.js +33 -0
  400. package/dist/services/codegraph/codegraph-process-runner.js +12 -1
  401. package/dist/services/codegraph/codegraph-service.js +9 -1
  402. package/dist/services/compact/request-transition-hook.js +2 -1
  403. package/dist/services/compact/suggest-service.d.ts +3 -61
  404. package/dist/services/compact/suggest-service.js +9 -12
  405. package/dist/services/compact/suggest-types.d.ts +76 -0
  406. package/dist/services/compact/suggest-types.js +10 -0
  407. package/dist/services/compact-history/compact-history-service.js +2 -2
  408. package/dist/services/compact-statusline/compact-lifecycle-store.d.ts +2 -32
  409. package/dist/services/compact-statusline/compact-lifecycle-store.js +7 -12
  410. package/dist/services/compact-statusline/compact-lifecycle-types.d.ts +32 -0
  411. package/dist/services/compact-statusline/compact-lifecycle-types.js +8 -0
  412. package/dist/services/compact-statusline/compact-statusline-cell-table.d.ts +42 -0
  413. package/dist/services/compact-statusline/compact-statusline-cell-table.js +63 -0
  414. package/dist/services/compact-statusline/compact-statusline-service.d.ts +4 -21
  415. package/dist/services/compact-statusline/compact-statusline-service.js +9 -101
  416. package/dist/services/compact-statusline/compact-statusline-state.d.ts +4 -0
  417. package/dist/services/compact-statusline/compact-statusline-state.js +50 -0
  418. package/dist/services/config/config-migration.js +2 -2
  419. package/dist/services/config/config-restore.js +1 -1
  420. package/dist/services/config/config-rollback.js +1 -1
  421. package/dist/services/config/config-safety.js +28 -10
  422. package/dist/services/config/config-service.js +114 -31
  423. package/dist/services/config/model-routing.js +5 -2
  424. package/dist/services/config/proxy-service.js +6 -1
  425. package/dist/services/config/workspace-state-service.js +17 -5
  426. package/dist/services/context/auto-compact-dispatcher-input.d.ts +38 -0
  427. package/dist/services/context/auto-compact-dispatcher-input.js +9 -0
  428. package/dist/services/context/auto-compact-dispatcher.d.ts +2 -30
  429. package/dist/services/context/auto-compact-reader-input.d.ts +30 -0
  430. package/dist/services/context/auto-compact-reader-input.js +8 -0
  431. package/dist/services/context/auto-compact-reader.d.ts +2 -24
  432. package/dist/services/context/auto-compact-reader.js +4 -1
  433. package/dist/services/context/auto-compact-thresholds.d.ts +54 -0
  434. package/dist/services/context/auto-compact-thresholds.js +19 -0
  435. package/dist/services/context/auto-compact-types.d.ts +2 -46
  436. package/dist/services/context/auto-compact-types.js +1 -11
  437. package/dist/services/context/build-dispatch-system-prompt.js +2 -2
  438. package/dist/services/context/collector.js +8 -10
  439. package/dist/services/context/context-audit-hint.js +7 -5
  440. package/dist/services/context/context-audit-keys.d.ts +15 -0
  441. package/dist/services/context/context-audit-keys.js +77 -0
  442. package/dist/services/context/context-audit-limits.d.ts +20 -0
  443. package/dist/services/context/context-audit-limits.js +31 -0
  444. package/dist/services/context/context-audit-scan.d.ts +19 -0
  445. package/dist/services/context/context-audit-scan.js +246 -0
  446. package/dist/services/context/context-audit-types.d.ts +65 -0
  447. package/dist/services/context/context-audit-types.js +10 -0
  448. package/dist/services/context/context-audit.d.ts +13 -59
  449. package/dist/services/context/context-audit.js +38 -254
  450. package/dist/services/context/context-builder.js +4 -4
  451. package/dist/services/context/context-schema.d.ts +1 -1
  452. package/dist/services/context/context-schema.js +13 -13
  453. package/dist/services/context/doc-retriever.js +2 -2
  454. package/dist/services/context/harness-context-witness.js +43 -24
  455. package/dist/services/context/harness-window-config.js +27 -7
  456. package/dist/services/context/ide-detect.js +2 -1
  457. package/dist/services/context/index.d.ts +1 -1
  458. package/dist/services/context/memory-index-reader.js +3 -9
  459. package/dist/services/context/memory-preflight-config.js +3 -5
  460. package/dist/services/context/memory-preflight-service.d.ts +2 -20
  461. package/dist/services/context/memory-preflight-service.js +37 -68
  462. package/dist/services/context/memory-preflight-support.d.ts +48 -0
  463. package/dist/services/context/memory-preflight-support.js +56 -0
  464. package/dist/services/context/post-compact-reinjection.js +3 -3
  465. package/dist/services/context/renderer.js +7 -3
  466. package/dist/services/context/spillover-store.js +3 -1
  467. package/dist/services/context/summary-view.js +1 -1
  468. package/dist/services/context/threshold.js +2 -2
  469. package/dist/services/context/tokenizer.js +3 -3
  470. package/dist/services/crystallization/crystallization-brief-schema.d.ts +80 -0
  471. package/dist/services/crystallization/crystallization-brief-schema.js +159 -0
  472. package/dist/services/crystallization/crystallization-service.d.ts +7 -7
  473. package/dist/services/crystallization/crystallization-service.js +56 -55
  474. package/dist/services/crystallization/crystallization-store.d.ts +2 -2
  475. package/dist/services/crystallization/crystallization-store.js +37 -20
  476. package/dist/services/crystallization/crystallization-types.d.ts +4 -56
  477. package/dist/services/crystallization/crystallization-types.js +31 -184
  478. package/dist/services/crystallization/evidence-brief-builder.d.ts +3 -3
  479. package/dist/services/crystallization/evidence-brief-builder.js +32 -38
  480. package/dist/services/crystallization/index.d.ts +4 -4
  481. package/dist/services/crystallization/index.js +4 -4
  482. package/dist/services/dashboard/project-dashboard-service.js +7 -1
  483. package/dist/services/dispatch/await-batch-helpers.d.ts +55 -0
  484. package/dist/services/dispatch/await-batch-helpers.js +206 -0
  485. package/dist/services/dispatch/await-batch.d.ts +50 -7
  486. package/dist/services/dispatch/await-batch.js +97 -194
  487. package/dist/services/dispatch/batch-counter.js +2 -1
  488. package/dist/services/dispatch/conflict-replay.js +2 -2
  489. package/dist/services/dispatch/contract-store.js +5 -2
  490. package/dist/services/dispatch/dispatch-record-input-types.d.ts +81 -0
  491. package/dist/services/dispatch/dispatch-record-input-types.js +1 -0
  492. package/dist/services/dispatch/dispatch-record-types.d.ts +6 -73
  493. package/dist/services/dispatch/dispatch-record-upgrade-fields.d.ts +72 -0
  494. package/dist/services/dispatch/dispatch-record-upgrade-fields.js +242 -0
  495. package/dist/services/dispatch/dispatch-record-upgrade-guards.d.ts +15 -0
  496. package/dist/services/dispatch/dispatch-record-upgrade-guards.js +55 -0
  497. package/dist/services/dispatch/dispatch-record-upgrade.d.ts +2 -4
  498. package/dist/services/dispatch/dispatch-record-upgrade.js +21 -213
  499. package/dist/services/dispatch/dispatch-record-writer.js +54 -26
  500. package/dist/services/dispatch/dispatch-sub-agent.js +7 -2
  501. package/dist/services/dispatch/e2e-fixtures.js +1 -1
  502. package/dist/services/dispatch/isolation-lease.js +39 -17
  503. package/dist/services/dispatch/merge-back-runner.js +51 -11
  504. package/dist/services/dispatch/service-shutdown.js +4 -1
  505. package/dist/services/dispatch/slice-dag-types.d.ts +116 -0
  506. package/dist/services/dispatch/slice-dag-types.js +41 -0
  507. package/dist/services/dispatch/slice-dag.d.ts +3 -109
  508. package/dist/services/dispatch/slice-dag.js +13 -36
  509. package/dist/services/dispatch/sub-agent-batch-await.d.ts +47 -0
  510. package/dist/services/dispatch/sub-agent-batch-await.js +73 -0
  511. package/dist/services/dispatch/sub-agent-dispatcher-types.d.ts +122 -0
  512. package/dist/services/dispatch/sub-agent-dispatcher-types.js +12 -0
  513. package/dist/services/dispatch/sub-agent-dispatcher.d.ts +3 -145
  514. package/dist/services/dispatch/sub-agent-dispatcher.js +14 -70
  515. package/dist/services/dispatch/test-tool-detection.js +12 -1
  516. package/dist/services/doc/doc-generator.js +19 -4
  517. package/dist/services/doctor/doctor-service/checks/check-id-schema.js +16 -8
  518. package/dist/services/doctor/doctor-service/checks/codegraph-capability.d.ts +7 -2
  519. package/dist/services/doctor/doctor-service/checks/codegraph-capability.js +26 -8
  520. package/dist/services/doctor/doctor-service/checks/codegraph-exclude-integrity.js +16 -8
  521. package/dist/services/doctor/doctor-service/checks/codegraph-index-integrity.js +16 -8
  522. package/dist/services/doctor/doctor-service/checks/dist-source-version.js +18 -9
  523. package/dist/services/doctor/doctor-service/checks/ecc-hooks-schema-drift.js +20 -10
  524. package/dist/services/doctor/doctor-service/checks/gateguard-conflict.js +18 -9
  525. package/dist/services/doctor/doctor-service/checks/l3-memory-health.js +25 -11
  526. package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.js +12 -6
  527. package/dist/services/doctor/doctor-service/checks/multi-binary-drift.d.ts +7 -16
  528. package/dist/services/doctor/doctor-service/checks/multi-binary-drift.js +50 -70
  529. package/dist/services/doctor/doctor-service/checks/schema-validity.js +5 -1
  530. package/dist/services/doctor/doctor-service/checks/skill-presence.js +4 -2
  531. package/dist/services/doctor/doctor-service/checks/statusline-install.js +8 -4
  532. package/dist/services/doctor/doctor-service/checks/statusline-runtime.js +8 -4
  533. package/dist/services/doctor/doctor-service/checks/user-config.js +4 -2
  534. package/dist/services/doctor/doctor-service/checks/workspace-init.js +8 -4
  535. package/dist/services/doctor/doctor-service/checks/workspace-layout.js +19 -11
  536. package/dist/services/doctor/doctor-service/index.js +4 -2
  537. package/dist/services/doctor/doctor-service/multi-binary-drift-helpers.d.ts +40 -0
  538. package/dist/services/doctor/doctor-service/multi-binary-drift-helpers.js +49 -0
  539. package/dist/services/doctor/doctor-service/plugin-registry.js +1 -1
  540. package/dist/services/doctor/doctor-service/probe-types.d.ts +210 -0
  541. package/dist/services/doctor/doctor-service/probe-types.js +14 -0
  542. package/dist/services/doctor/doctor-service/types.d.ts +7 -197
  543. package/dist/services/doctor/index.d.ts +1 -1
  544. package/dist/services/doctor/index.js +1 -1
  545. package/dist/services/env/shell-probe.js +8 -2
  546. package/dist/services/evidence/evidence-body-builders.d.ts +23 -0
  547. package/dist/services/evidence/evidence-body-builders.js +197 -0
  548. package/dist/services/evidence/evidence-generator.js +16 -189
  549. package/dist/services/evolution/evolution-constraints.d.ts +43 -0
  550. package/dist/services/evolution/evolution-constraints.js +54 -0
  551. package/dist/services/evolution/evolution-evaluation-schema.d.ts +43 -0
  552. package/dist/services/evolution/evolution-evaluation-schema.js +43 -0
  553. package/dist/services/evolution/evolution-service.d.ts +6 -6
  554. package/dist/services/evolution/evolution-service.js +58 -58
  555. package/dist/services/evolution/evolution-store.d.ts +2 -2
  556. package/dist/services/evolution/evolution-store.js +37 -51
  557. package/dist/services/evolution/evolution-types.d.ts +2 -22
  558. package/dist/services/evolution/evolution-types.js +41 -101
  559. package/dist/services/evolution/independent-evaluator-runner.d.ts +3 -3
  560. package/dist/services/evolution/independent-evaluator-runner.js +20 -22
  561. package/dist/services/evolution/regression-skeptic-runner.d.ts +2 -2
  562. package/dist/services/evolution/regression-skeptic-runner.js +18 -18
  563. package/dist/services/feedback/feedback-promotion-service.js +48 -12
  564. package/dist/services/feedback/promotion-artifact-evidence.d.ts +2 -16
  565. package/dist/services/feedback/promotion-artifact-evidence.js +6 -83
  566. package/dist/services/feedback/promotion-artifact-json-evidence.d.ts +29 -0
  567. package/dist/services/feedback/promotion-artifact-json-evidence.js +39 -0
  568. package/dist/services/feedback/promotion-source-comments.d.ts +47 -0
  569. package/dist/services/feedback/promotion-source-comments.js +61 -0
  570. package/dist/services/final-review/final-review-contract.d.ts +26 -0
  571. package/dist/services/final-review/final-review-contract.js +14 -0
  572. package/dist/services/final-review/final-review-delivery.d.ts +63 -0
  573. package/dist/services/final-review/final-review-delivery.js +124 -0
  574. package/dist/services/final-review/final-review-evidence-budget.d.ts +125 -0
  575. package/dist/services/final-review/final-review-evidence-budget.js +218 -0
  576. package/dist/services/final-review/final-review-evidence-collect.d.ts +4 -0
  577. package/dist/services/final-review/final-review-evidence-collect.js +230 -0
  578. package/dist/services/final-review/final-review-evidence-sources.d.ts +138 -0
  579. package/dist/services/final-review/final-review-evidence-sources.js +139 -0
  580. package/dist/services/final-review/final-review-fifth-dim.d.ts +8 -0
  581. package/dist/services/final-review/final-review-fifth-dim.js +20 -0
  582. package/dist/services/final-review/final-review-gates.d.ts +119 -0
  583. package/dist/services/final-review/final-review-gates.js +214 -0
  584. package/dist/services/final-review/final-review-output-budget.d.ts +88 -0
  585. package/dist/services/final-review/final-review-output-budget.js +161 -0
  586. package/dist/services/final-review/final-review-prompt.d.ts +35 -0
  587. package/dist/services/final-review/final-review-prompt.js +112 -0
  588. package/dist/services/final-review/final-review-reviewer.d.ts +57 -0
  589. package/dist/services/final-review/final-review-reviewer.js +95 -0
  590. package/dist/services/final-review/final-review-runner.d.ts +3 -0
  591. package/dist/services/final-review/final-review-runner.js +158 -0
  592. package/dist/services/final-review/final-review-service.d.ts +119 -373
  593. package/dist/services/final-review/final-review-service.js +48 -1380
  594. package/dist/services/final-review/final-review-verdicts.d.ts +60 -0
  595. package/dist/services/final-review/final-review-verdicts.js +91 -0
  596. package/dist/services/final-review/index.d.ts +3 -3
  597. package/dist/services/final-review/index.js +2 -2
  598. package/dist/services/final-review/pre-post-diff.js +32 -29
  599. package/dist/services/fixture/fixture-capture-service.js +14 -6
  600. package/dist/services/fresh-context/trigger-scan.js +13 -2
  601. package/dist/services/fuzzy-matching/fuzzy-match-service.js +1 -1
  602. package/dist/services/fuzzy-matching/fzf-pick-service.js +6 -1
  603. package/dist/services/hooks/pre-tool-code-gate.js +2 -2
  604. package/dist/services/hooks/presence-marker-detector.js +12 -2
  605. package/dist/services/hooks/worktree-authorization-gate.js +21 -7
  606. package/dist/services/ide/adapters/claude-code-adapter.js +30 -17
  607. package/dist/services/ide/adapters/codex-adapter.js +3 -5
  608. package/dist/services/ide/adapters/cursor-adapter.js +3 -5
  609. package/dist/services/ide/adapters/hermes-adapter.js +2 -4
  610. package/dist/services/ide/adapters/openclaw-adapter.js +2 -4
  611. package/dist/services/ide/adapters/qoder-adapter.js +2 -4
  612. package/dist/services/ide/adapters/tongyi-lingma-adapter.js +1 -1
  613. package/dist/services/ide/adapters/trae-adapter.js +3 -5
  614. package/dist/services/ide/adapters/zcode-adapter.js +8 -7
  615. package/dist/services/ide/current-model-detector.js +2 -1
  616. package/dist/services/ide/ide-compact-types.d.ts +153 -0
  617. package/dist/services/ide/ide-compact-types.js +1 -0
  618. package/dist/services/ide/ide-registry.js +1 -1
  619. package/dist/services/ide/ide-types.d.ts +7 -145
  620. package/dist/services/ide/resource-profile.js +1 -1
  621. package/dist/services/ide/shared/atomic-json.js +2 -1
  622. package/dist/services/impact/impact-scan-service.js +12 -5
  623. package/dist/services/job/job-commit-verification.d.ts +73 -0
  624. package/dist/services/job/job-commit-verification.js +72 -0
  625. package/dist/services/job/job-orchestrator.d.ts +42 -0
  626. package/dist/services/job/job-orchestrator.js +110 -10
  627. package/dist/services/job/job-progress-store.d.ts +75 -5
  628. package/dist/services/job/job-progress-store.js +83 -6
  629. package/dist/services/job/job-rotation.d.ts +1 -1
  630. package/dist/services/job/job-rotation.js +5 -1
  631. package/dist/services/job/job-state-store.js +2 -2
  632. package/dist/services/job/job-types.js +49 -20
  633. package/dist/services/job/subagent-job-wrapper.d.ts +1 -1
  634. package/dist/services/job/subagent-job-wrapper.js +5 -1
  635. package/dist/services/job-snapshot/snapshot.js +2 -2
  636. package/dist/services/karpathy-cost/karpathy-cost-check-service.js +23 -13
  637. package/dist/services/legacy/legacy-detector.js +51 -5
  638. package/dist/services/lint/detect-eslint.js +10 -4
  639. package/dist/services/lint/detect-ocr-18.js +11 -3
  640. package/dist/services/lint/eslint-runner-support.d.ts +22 -0
  641. package/dist/services/lint/eslint-runner-support.js +185 -0
  642. package/dist/services/lint/eslint-runner-types.d.ts +69 -0
  643. package/dist/services/lint/eslint-runner-types.js +11 -0
  644. package/dist/services/lint/eslint-runner.d.ts +4 -56
  645. package/dist/services/lint/eslint-runner.js +24 -178
  646. package/dist/services/lint/npx-resolver.js +1 -3
  647. package/dist/services/lint/ocr-18-acquire.js +15 -4
  648. package/dist/services/lint/ocr-multilang-adapter.js +4 -5
  649. package/dist/services/llm/anthropic-runner.js +4 -1
  650. package/dist/services/log/log-commands-service.js +2 -6
  651. package/dist/services/log/logger.js +15 -12
  652. package/dist/services/log/retention.js +3 -2
  653. package/dist/services/loop/evaluator-dispatcher.js +78 -42
  654. package/dist/services/loop/loop-bee-relation-service.d.ts +4 -4
  655. package/dist/services/loop/loop-bee-relation-service.js +36 -40
  656. package/dist/services/loop/loop-bee-relation-store.d.ts +3 -3
  657. package/dist/services/loop/loop-bee-relation-store.js +9 -11
  658. package/dist/services/loop/loop-bee-relation-types.d.ts +1 -1
  659. package/dist/services/loop/loop-bee-relation-types.js +14 -25
  660. package/dist/services/loop/loop-release-service.d.ts +2 -2
  661. package/dist/services/loop/loop-release-service.js +3 -3
  662. package/dist/services/loop/loop-release-store.d.ts +2 -2
  663. package/dist/services/loop/loop-release-store.js +4 -6
  664. package/dist/services/loop/loop-release-types.d.ts +1 -1
  665. package/dist/services/loop/loop-release-types.js +21 -31
  666. package/dist/services/loop/monotonic-guard-types.d.ts +51 -0
  667. package/dist/services/loop/monotonic-guard-types.js +9 -0
  668. package/dist/services/loop/monotonic-guard.d.ts +2 -43
  669. package/dist/services/loop/monotonic-runner-types.d.ts +63 -0
  670. package/dist/services/loop/monotonic-runner-types.js +17 -0
  671. package/dist/services/loop/monotonic-runner.d.ts +3 -34
  672. package/dist/services/loop/monotonic-runner.js +10 -20
  673. package/dist/services/loop/run-driver.js +16 -8
  674. package/dist/services/loop/spec-service.d.ts +0 -5
  675. package/dist/services/loop/spec-service.js +49 -9
  676. package/dist/services/memory/llm-reranker-core.d.ts +108 -0
  677. package/dist/services/memory/llm-reranker-core.js +105 -0
  678. package/dist/services/memory/llm-reranker.d.ts +3 -94
  679. package/dist/services/memory/llm-reranker.js +13 -102
  680. package/dist/services/memory/memory-ingest-service.d.ts +1 -22
  681. package/dist/services/memory/memory-ingest-service.js +29 -76
  682. package/dist/services/memory/memory-ingest-support.d.ts +23 -0
  683. package/dist/services/memory/memory-ingest-support.js +81 -0
  684. package/dist/services/memory/memory-rotate-service.js +41 -8
  685. package/dist/services/memory/memory-search-service.js +8 -4
  686. package/dist/services/memory/project-context-service.js +26 -5
  687. package/dist/services/memory/project-memory-service/index/kind-dispatch.d.ts +2 -7
  688. package/dist/services/memory/project-memory-service/index/kind-dispatch.js +17 -136
  689. package/dist/services/memory/project-memory-service/index/project-memory-plan-exec.d.ts +7 -0
  690. package/dist/services/memory/project-memory-service/index/project-memory-plan-exec.js +150 -0
  691. package/dist/services/memory/project-memory-service/index/ranking.js +6 -3
  692. package/dist/services/memory/project-memory-service/index/reindex.js +14 -5
  693. package/dist/services/memory/project-memory-service/index.d.ts +1 -1
  694. package/dist/services/memory/project-memory-service/index.js +1 -1
  695. package/dist/services/memory/project-memory-service/memory-kinds.d.ts +31 -0
  696. package/dist/services/memory/project-memory-service/memory-kinds.js +87 -0
  697. package/dist/services/memory/project-memory-service/parsers/frontmatter-parse.d.ts +24 -0
  698. package/dist/services/memory/project-memory-service/parsers/frontmatter-parse.js +104 -0
  699. package/dist/services/memory/project-memory-service/parsers/frontmatter.d.ts +2 -24
  700. package/dist/services/memory/project-memory-service/parsers/frontmatter.js +28 -79
  701. package/dist/services/memory/project-memory-service/parsers/markdown-pure.js +15 -3
  702. package/dist/services/memory/project-memory-service/store/atomic-write.d.ts +59 -0
  703. package/dist/services/memory/project-memory-service/store/atomic-write.js +189 -17
  704. package/dist/services/memory/project-memory-service/store/paths.js +2 -1
  705. package/dist/services/memory/project-memory-service/types.d.ts +3 -31
  706. package/dist/services/memory/project-memory-service/types.js +1 -76
  707. package/dist/services/migrate-skill-name/migrate.js +1 -1
  708. package/dist/services/migrate-skill-name/schema.js +1 -1
  709. package/dist/services/mode/mode-enforcement.js +4 -2
  710. package/dist/services/mode/mode-status-service.d.ts +27 -9
  711. package/dist/services/mode/mode-status-service.js +64 -12
  712. package/dist/services/observability/aggregation-helpers.d.ts +22 -0
  713. package/dist/services/observability/aggregation-helpers.js +65 -0
  714. package/dist/services/observability/aggregation-types.d.ts +66 -0
  715. package/dist/services/observability/aggregation-types.js +34 -0
  716. package/dist/services/observability/aggregation.d.ts +5 -53
  717. package/dist/services/observability/aggregation.js +17 -80
  718. package/dist/services/observability/jsonl-store.js +2 -1
  719. package/dist/services/observability/observability-schema.d.ts +71 -0
  720. package/dist/services/observability/observability-schema.js +64 -0
  721. package/dist/services/observability/observability-service.d.ts +3 -56
  722. package/dist/services/observability/observability-service.js +9 -49
  723. package/dist/services/openspec/coverage-evidence-reader.js +18 -11
  724. package/dist/services/openspec/openspec-archive-service.js +31 -24
  725. package/dist/services/openspec/openspec-init-service.js +8 -2
  726. package/dist/services/openspec/openspec-propose-from-doctor-service.js +1 -1
  727. package/dist/services/openspec/openspec-scan-service.js +4 -1
  728. package/dist/services/openspec/openspec-validate-service.js +26 -5
  729. package/dist/services/perf/perf-baseline-service.js +2 -6
  730. package/dist/services/polyrepo/polyrepo-dispatcher.js +2 -1
  731. package/dist/services/polyrepo/polyrepo-scanner.js +4 -1
  732. package/dist/services/prd/gate-evidence-derivation.d.ts +160 -0
  733. package/dist/services/prd/gate-evidence-derivation.js +270 -0
  734. package/dist/services/prd/handoff-auto-regen.js +13 -1
  735. package/dist/services/prd/handoff-frontmatter-shape.d.ts +42 -0
  736. package/dist/services/prd/handoff-frontmatter-shape.js +67 -0
  737. package/dist/services/prd/handoff-frontmatter.d.ts +1 -1
  738. package/dist/services/prd/handoff-frontmatter.js +63 -1
  739. package/dist/services/prd/handoff-gate-evidence.d.ts +95 -1
  740. package/dist/services/prd/handoff-gate-evidence.js +125 -57
  741. package/dist/services/prd/handoff-path-resolution.d.ts +37 -0
  742. package/dist/services/prd/handoff-path-resolution.js +101 -0
  743. package/dist/services/prd/handoff-service.d.ts +22 -38
  744. package/dist/services/prd/handoff-service.js +38 -127
  745. package/dist/services/prd/handoff-types.d.ts +40 -0
  746. package/dist/services/prd/handoff-types.js +28 -1
  747. package/dist/services/prd/prd-blocks-checker.js +28 -8
  748. package/dist/services/prd/project-scan-bootstrap-service.js +1 -5
  749. package/dist/services/prd/project-scan-reader.d.ts +7 -0
  750. package/dist/services/prd/project-scan-reader.js +8 -5
  751. package/dist/services/prd/project-scan-sediment.js +1 -4
  752. package/dist/services/preferences/preferences-service.js +6 -8
  753. package/dist/services/preferences/preferences-types.js +4 -4
  754. package/dist/services/qa/bdd-test-style-contract.d.ts +41 -0
  755. package/dist/services/qa/bdd-test-style-contract.js +37 -0
  756. package/dist/services/qa/bdd-test-style-verifier.d.ts +2 -24
  757. package/dist/services/qa/bdd-test-style-verifier.js +5 -31
  758. package/dist/services/qa/browser-event-logger.js +2 -1
  759. package/dist/services/qa/qa-business-review-state.js +20 -5
  760. package/dist/services/qa/screenshot-archive-service.js +1 -3
  761. package/dist/services/rd/ast-gate.js +2 -2
  762. package/dist/services/rd/impl.js +1 -1
  763. package/dist/services/rd/rd-service.js +117 -43
  764. package/dist/services/rd/reviewer-dispatch-policy.d.ts +36 -8
  765. package/dist/services/rd/reviewer-dispatch-policy.js +40 -15
  766. package/dist/services/rd/standards-diagnostic.js +4 -1
  767. package/dist/services/rd/strategy.js +10 -3
  768. package/dist/services/rd/tactical-stage.js +2 -2
  769. package/dist/services/rd/types.js +9 -7
  770. package/dist/services/rd-swarm/rd-swarm-service.d.ts +2 -45
  771. package/dist/services/rd-swarm/rd-swarm-service.js +140 -21
  772. package/dist/services/rd-swarm/rd-swarm-types.d.ts +54 -0
  773. package/dist/services/rd-swarm/rd-swarm-types.js +10 -0
  774. package/dist/services/recommendations/capability-map-service.js +10 -2
  775. package/dist/services/recommendations/capability-seed-items.js +81 -14
  776. package/dist/services/recommendations/capability-seed-mappings.js +420 -48
  777. package/dist/services/recommendations/capability-seed-sources-mcp-server.d.ts +9 -0
  778. package/dist/services/recommendations/capability-seed-sources-mcp-server.js +233 -0
  779. package/dist/services/recommendations/capability-seed-sources.js +127 -32
  780. package/dist/services/release/release-state.d.ts +2 -2
  781. package/dist/services/release/release-state.js +44 -15
  782. package/dist/services/release/version-precheck-layer-changeset.d.ts +2 -0
  783. package/dist/services/release/version-precheck-layer-changeset.js +43 -0
  784. package/dist/services/release/version-precheck-service.d.ts +11 -36
  785. package/dist/services/release/version-precheck-service.js +20 -104
  786. package/dist/services/release/version-precheck-support.d.ts +53 -0
  787. package/dist/services/release/version-precheck-support.js +64 -0
  788. package/dist/services/retrospective/retrospective-index.js +17 -3
  789. package/dist/services/retrospective/retrospective-search-service.js +6 -2
  790. package/dist/services/retrospective/retrospective-show.js +4 -1
  791. package/dist/services/reviewer/model-family.js +7 -1
  792. package/dist/services/reviewer/providers/anthropic.d.ts +5 -0
  793. package/dist/services/reviewer/providers/anthropic.js +10 -1
  794. package/dist/services/reviewer/providers/openai.d.ts +5 -0
  795. package/dist/services/reviewer/providers/openai.js +10 -1
  796. package/dist/services/reviewer/reviewer-config.js +4 -2
  797. package/dist/services/reviewer/reviewer-service.d.ts +2 -36
  798. package/dist/services/reviewer/reviewer-service.js +2 -1
  799. package/dist/services/reviewer/reviewer-types.d.ts +43 -0
  800. package/dist/services/reviewer/reviewer-types.js +1 -0
  801. package/dist/services/role/role-registry.js +9 -1
  802. package/dist/services/runtime/runtime-detector.js +4 -1
  803. package/dist/services/runtime/vendors/claude-code.js +14 -6
  804. package/dist/services/runtime/vendors/codex.js +11 -3
  805. package/dist/services/runtime/vendors/copilot.js +11 -3
  806. package/dist/services/sc/sc-service.js +28 -15
  807. package/dist/services/scan/acceptance-coverage-service.js +4 -1
  808. package/dist/services/scan/api-diff-openapi-schema-read.d.ts +67 -0
  809. package/dist/services/scan/api-diff-openapi-schema-read.js +154 -0
  810. package/dist/services/scan/api-diff-openapi.d.ts +16 -2
  811. package/dist/services/scan/api-diff-openapi.js +19 -123
  812. package/dist/services/scan/api-diff-recorded.js +16 -3
  813. package/dist/services/scan/api-diff-service.js +49 -16
  814. package/dist/services/scan/api-diff-types.js +12 -3
  815. package/dist/services/scan/api-surface-helpers.d.ts +13 -0
  816. package/dist/services/scan/api-surface-helpers.js +31 -0
  817. package/dist/services/scan/api-surface-service.d.ts +2 -45
  818. package/dist/services/scan/api-surface-service.js +15 -26
  819. package/dist/services/scan/api-surface-types.d.ts +54 -0
  820. package/dist/services/scan/api-surface-types.js +10 -0
  821. package/dist/services/scan/archetype-detection.d.ts +37 -0
  822. package/dist/services/scan/archetype-detection.js +142 -0
  823. package/dist/services/scan/archetype-service.js +36 -125
  824. package/dist/services/scan/diff-scope-service.js +35 -15
  825. package/dist/services/scan/existing-system-service.js +16 -99
  826. package/dist/services/scan/existing-system-visual-tokens.d.ts +20 -0
  827. package/dist/services/scan/existing-system-visual-tokens.js +123 -0
  828. package/dist/services/scan/file-size-policy.d.ts +86 -0
  829. package/dist/services/scan/file-size-policy.js +184 -0
  830. package/dist/services/scan/file-size-scan.d.ts +30 -3
  831. package/dist/services/scan/file-size-scan.js +47 -9
  832. package/dist/services/scan/karpathy-service.js +6 -1
  833. package/dist/services/scan/orphan-service.js +86 -20
  834. package/dist/services/scan/type-sanity-service.js +104 -10
  835. package/dist/services/sediment/dispose-confirm.d.ts +2 -2
  836. package/dist/services/sediment/dispose-confirm.js +2 -2
  837. package/dist/services/sediment/json-schema.d.ts +1 -1
  838. package/dist/services/sediment/json-schema.js +25 -13
  839. package/dist/services/sediment/manifest-lint.d.ts +1 -12
  840. package/dist/services/sediment/manifest-lint.js +1 -7
  841. package/dist/services/sediment/pool-paths.js +13 -9
  842. package/dist/services/sediment/pool-read.d.ts +1 -1
  843. package/dist/services/sediment/pool-read.js +42 -18
  844. package/dist/services/sediment/pool-rebuild-index.d.ts +1 -1
  845. package/dist/services/sediment/pool-rebuild-index.js +5 -5
  846. package/dist/services/sediment/pool-write.d.ts +1 -1
  847. package/dist/services/sediment/pool-write.js +7 -7
  848. package/dist/services/sediment/promotion-gate.d.ts +1 -1
  849. package/dist/services/sediment/promotion-gate.js +9 -9
  850. package/dist/services/sediment/types.d.ts +8 -8
  851. package/dist/services/session/binding-status-service.js +14 -4
  852. package/dist/services/session/caller-binding-service.js +2 -1
  853. package/dist/services/session/getSessionDir.js +4 -1
  854. package/dist/services/session/index.d.ts +1 -1
  855. package/dist/services/session/index.js +1 -1
  856. package/dist/services/session/resolve-caller-id.js +7 -5
  857. package/dist/services/session/session-binding-bridge.js +26 -25
  858. package/dist/services/session/session-checkpoint-service.js +1 -1
  859. package/dist/services/session/session-file-schema.d.ts +70 -0
  860. package/dist/services/session/session-file-schema.js +68 -0
  861. package/dist/services/session/session-manager.d.ts +6 -6
  862. package/dist/services/session/session-manager.js +30 -29
  863. package/dist/services/session/session-resume-service.js +2 -1
  864. package/dist/services/share/bundle-format-constants.d.ts +85 -0
  865. package/dist/services/share/bundle-format-constants.js +100 -0
  866. package/dist/services/share/bundle-reader.d.ts +3 -3
  867. package/dist/services/share/bundle-reader.js +75 -68
  868. package/dist/services/share/bundle-types.d.ts +3 -70
  869. package/dist/services/share/bundle-types.js +38 -107
  870. package/dist/services/share/bundle-writer.d.ts +3 -3
  871. package/dist/services/share/bundle-writer.js +101 -91
  872. package/dist/services/share/run-state-contract.d.ts +1 -1
  873. package/dist/services/share/run-state-contract.js +7 -13
  874. package/dist/services/signal/cancel-handler.js +2 -1
  875. package/dist/services/skill/resume-detector.js +6 -4
  876. package/dist/services/skill/skill-scheduler.js +3 -1
  877. package/dist/services/skill/skill-search-service.js +4 -4
  878. package/dist/services/skillhub/release-diff.d.ts +2 -2
  879. package/dist/services/skillhub/release-diff.js +6 -10
  880. package/dist/services/skillhub/release-export.d.ts +2 -2
  881. package/dist/services/skillhub/release-export.js +15 -17
  882. package/dist/services/skillhub/release-gc-blobs.d.ts +2 -2
  883. package/dist/services/skillhub/release-gc-blobs.js +4 -4
  884. package/dist/services/skillhub/release-import.d.ts +2 -2
  885. package/dist/services/skillhub/release-import.js +13 -12
  886. package/dist/services/skillhub/release-retain.d.ts +3 -3
  887. package/dist/services/skillhub/release-retain.js +22 -22
  888. package/dist/services/skillhub/sqlite-store.d.ts +1 -1
  889. package/dist/services/skillhub/sqlite-store.js +12 -11
  890. package/dist/services/skillhub/tar-runtime.js +15 -15
  891. package/dist/services/skillhub/types.d.ts +4 -4
  892. package/dist/services/skills/hooks-codegate-superpowers.js +16 -7
  893. package/dist/services/skills/hooks-settings-service.js +61 -19
  894. package/dist/services/skills/presence-lease-service.js +26 -16
  895. package/dist/services/skills/presence-lease-types.d.ts +1 -1
  896. package/dist/services/skills/presence-lease-types.js +1 -1
  897. package/dist/services/skills/skill-conformance-service.js +40 -8
  898. package/dist/services/skills/skill-presence-service.js +16 -14
  899. package/dist/services/skills/skill-runbook-service.js +2 -1
  900. package/dist/services/skills/skill-statusline-model.d.ts +128 -0
  901. package/dist/services/skills/skill-statusline-model.js +163 -0
  902. package/dist/services/skills/skill-statusline-renderer.js +4 -3
  903. package/dist/services/skills/skill-statusline-service.d.ts +3 -100
  904. package/dist/services/skills/skill-statusline-service.js +56 -163
  905. package/dist/services/skills/statusline-palette.js +11 -6
  906. package/dist/services/skills/statusline-settings-service.js +2 -1
  907. package/dist/services/skills/sync-service-support.d.ts +65 -0
  908. package/dist/services/skills/sync-service-support.js +50 -0
  909. package/dist/services/skills/sync-service.d.ts +3 -66
  910. package/dist/services/skills/sync-service.js +15 -53
  911. package/dist/services/slice/calibration-store.js +8 -2
  912. package/dist/services/slice/cross-pass-edge-merger.d.ts +3 -28
  913. package/dist/services/slice/cross-pass-edge-merger.js +13 -63
  914. package/dist/services/slice/cross-pass-edge-static-scan-support.d.ts +69 -0
  915. package/dist/services/slice/cross-pass-edge-static-scan-support.js +74 -0
  916. package/dist/services/slice/granularity-decider.js +2 -2
  917. package/dist/services/slice/slice-archive-service.js +8 -3
  918. package/dist/services/slice/slice-check-service.js +19 -8
  919. package/dist/services/slice/slice-decompose-runners.js +61 -23
  920. package/dist/services/slice/slice-decompose-service.js +4 -4
  921. package/dist/services/slice/slice-review-state.js +8 -2
  922. package/dist/services/smoke/smoke-paths-state.js +9 -2
  923. package/dist/services/sop/gate-enforce-service.js +9 -2
  924. package/dist/services/sop/sop-advance-service.js +14 -2
  925. package/dist/services/sop/sop-check-service.js +16 -4
  926. package/dist/services/sop/sop-paths.js +3 -1
  927. package/dist/services/sop/sop-registry-service.js +5 -1
  928. package/dist/services/sop/sop-service.js +29 -7
  929. package/dist/services/sop/sop-types.js +5 -1
  930. package/dist/services/standards/ide-aware-standards-service.js +2 -2
  931. package/dist/services/standards/loop-engineering-lint.js +12 -5
  932. package/dist/services/standards/loop-engineering-readiness-lint.js +5 -5
  933. package/dist/services/standards/migrate-claude-rules-service.js +9 -7
  934. package/dist/services/standards/missing-standards-detector.js +1 -3
  935. package/dist/services/standards/project-context-support.d.ts +50 -0
  936. package/dist/services/standards/project-context-support.js +244 -0
  937. package/dist/services/standards/project-context-types.d.ts +30 -0
  938. package/dist/services/standards/project-context-types.js +11 -0
  939. package/dist/services/standards/project-context.d.ts +10 -22
  940. package/dist/services/standards/project-context.js +27 -214
  941. package/dist/services/standards/project-standards-service.js +43 -12
  942. package/dist/services/standards/standards-render-common.d.ts +15 -0
  943. package/dist/services/standards/standards-render-common.js +49 -0
  944. package/dist/services/standards/standards-render.d.ts +1 -2
  945. package/dist/services/standards/standards-render.js +31 -58
  946. package/dist/services/standards/ui-library-dispatch-block.js +1 -1
  947. package/dist/services/tech/tech-change-id-service.js +7 -7
  948. package/dist/services/tech/tech-service.js +73 -26
  949. package/dist/services/test-cache/test-cache-service.js +8 -3
  950. package/dist/services/upgrade/1x-detector-service.js +5 -3
  951. package/dist/services/upgrade/gitignore-migrate-service.js +5 -5
  952. package/dist/services/upgrade/upgrade-service.js +36 -13
  953. package/dist/services/verdict/envelope-parsers.d.ts +84 -0
  954. package/dist/services/verdict/envelope-parsers.js +146 -0
  955. package/dist/services/verdict/envelopes.d.ts +50 -60
  956. package/dist/services/verdict/envelopes.js +18 -156
  957. package/dist/services/verdict/verdict-aggregator.js +27 -3
  958. package/dist/services/vm/vm-lease.js +15 -3
  959. package/dist/services/web/aria-node.d.ts +27 -0
  960. package/dist/services/web/aria-node.js +1 -0
  961. package/dist/services/web/browser-acquire.js +3 -1
  962. package/dist/services/web/browser-cache-probe.d.ts +18 -0
  963. package/dist/services/web/browser-cache-probe.js +110 -0
  964. package/dist/services/web/browser-session-manager.js +6 -2
  965. package/dist/services/web/daemon-registry.js +4 -1
  966. package/dist/services/web/playwright-loader.d.ts +2 -70
  967. package/dist/services/web/playwright-types.d.ts +75 -0
  968. package/dist/services/web/playwright-types.js +1 -0
  969. package/dist/services/web/snapshot-pruner.d.ts +2 -23
  970. package/dist/services/web/snapshot-pruner.js +8 -3
  971. package/dist/services/web/web-daemon-service.js +1 -3
  972. package/dist/services/web/web-install-service.d.ts +3 -32
  973. package/dist/services/web/web-install-service.js +21 -100
  974. package/dist/services/web/web-install-types.d.ts +31 -0
  975. package/dist/services/web/web-install-types.js +13 -0
  976. package/dist/services/web/web-login-profile.js +7 -5
  977. package/dist/services/web/web-protocol.js +3 -1
  978. package/dist/services/workflow/pipeline-verify-gate-support.js +63 -17
  979. package/dist/services/workflow/pipeline-verify-service.js +17 -6
  980. package/dist/services/workflow/plan-reader.js +5 -1
  981. package/dist/services/workflow/plan-refresher.js +20 -6
  982. package/dist/services/workflow/plan-trigger-detector.js +31 -8
  983. package/dist/services/workflow/provision-dispatch-node.js +8 -3
  984. package/dist/services/workflow/workflow-autonomous-resume-helpers.d.ts +3 -1
  985. package/dist/services/workflow/workflow-autonomous-resume-helpers.js +35 -144
  986. package/dist/services/workflow/workflow-autonomous-resume-validation.d.ts +16 -0
  987. package/dist/services/workflow/workflow-autonomous-resume-validation.js +155 -0
  988. package/dist/services/workflow/workflow-autonomous-service.js +25 -13
  989. package/dist/services/workflow/workflow-graph-store-helpers.d.ts +51 -0
  990. package/dist/services/workflow/workflow-graph-store-helpers.js +111 -0
  991. package/dist/services/workflow/workflow-graph-store.d.ts +2 -35
  992. package/dist/services/workflow/workflow-graph-store.js +30 -107
  993. package/dist/services/workflow/workflow-graph-types.js +3 -3
  994. package/dist/services/workflow/workflow-inflight-probe.js +14 -7
  995. package/dist/services/workflow/workflow-loader.js +5 -1
  996. package/dist/services/workflow/workflow-node-lifecycle.js +22 -21
  997. package/dist/services/workflow/workflow-presence-lifecycle-types.d.ts +50 -0
  998. package/dist/services/workflow/workflow-presence-lifecycle-types.js +1 -0
  999. package/dist/services/workflow/workflow-presence-lifecycle.d.ts +2 -42
  1000. package/dist/services/workflow/workflow-presence-lifecycle.js +19 -21
  1001. package/dist/services/workflow/workflow-router-service.js +169 -27
  1002. package/dist/services/workflow/workflow-skip-service.js +14 -4
  1003. package/dist/services/workflow/workflow-spec-builders.d.ts +15 -0
  1004. package/dist/services/workflow/workflow-spec-builders.js +121 -0
  1005. package/dist/services/workflow/workflow-spec.d.ts +7 -6
  1006. package/dist/services/workflow/workflow-spec.js +22 -116
  1007. package/dist/services/workflow/workflow-state-store.js +2 -1
  1008. package/dist/services/workspace/migrate-1-4-1-service.js +80 -14
  1009. package/dist/services/workspace/migrate-service.js +66 -16
  1010. package/dist/services/workspace/reconcile-migrate.js +6 -2
  1011. package/dist/services/workspace/reconcile-service.js +37 -16
  1012. package/dist/services/workspace/workspace-claude-settings-materializer.js +7 -5
  1013. package/dist/services/workspace/workspace-clean-service.js +4 -1
  1014. package/dist/services/workspace/workspace-service.js +11 -3
  1015. package/dist/services/workspace/workspace-state-service.js +1 -1
  1016. package/dist/services/worktree/git-worktree-parser.js +13 -3
  1017. package/dist/services/worktree/host-worktree-reconciler.js +8 -4
  1018. package/dist/services/worktree/long-path-cleanup.js +23 -6
  1019. package/dist/services/worktree/worktree-gc-guard.js +3 -1
  1020. package/dist/services/worktree/worktree-lease-types.d.ts +53 -0
  1021. package/dist/services/worktree/worktree-lease-types.js +10 -0
  1022. package/dist/services/worktree/worktree-lease.d.ts +2 -44
  1023. package/dist/shared/array-guards.d.ts +30 -0
  1024. package/dist/shared/array-guards.js +32 -0
  1025. package/dist/shared/format-md-compact-internals.d.ts +26 -0
  1026. package/dist/shared/format-md-compact-internals.js +125 -0
  1027. package/dist/shared/format-md-compact.js +1 -117
  1028. package/dist/shared/fs-utils.js +2 -1
  1029. package/dist/shared/incrementing-number.js +3 -3
  1030. package/dist/shared/json-parse.d.ts +71 -0
  1031. package/dist/shared/json-parse.js +32 -0
  1032. package/dist/shared/json-schema-mini.js +3 -1
  1033. package/dist/shared/path-safety.js +3 -1
  1034. package/dist/shared/path-utils.d.ts +20 -0
  1035. package/dist/shared/path-utils.js +26 -0
  1036. package/dist/shared/planner-response.js +3 -3
  1037. package/dist/shared/stale-policy.js +1 -3
  1038. package/dist/skills/peaks-maker/index.js +11 -11
  1039. package/package.json +32 -9
  1040. package/scripts/clean-dist.mjs +1 -2
  1041. package/scripts/copy-templates.mjs +2 -4
  1042. package/scripts/install-skills.mjs +305 -125
  1043. package/scripts/sync-version.mjs +25 -8
  1044. package/scripts/watch.mjs +8 -2
  1045. package/skills/bee/peaks-rd/SKILL.md +1 -1
  1046. package/skills/bee/peaks-rd/references/rd-fanout-contracts.md +26 -10
  1047. package/skills/bee/peaks-rd/references/rd-sub-agent-dispatch.md +1 -1
  1048. package/skills/bee/peaks-rd/references/writing-handoff-frontmatter.md +6 -1
  1049. package/skills/peaks-code/SKILL.md +1 -1
  1050. package/skills/peaks-code/references/periodic-checkpoint.md +7 -5
  1051. package/skills/peaks-code/references/startup-sequence.md +1 -1
  1052. package/skills/peaks-final-review/SKILL.md +1 -1
  1053. /package/{docs → contracts}/test-style-contract.md +0 -0
@@ -4,7 +4,9 @@ import { generateEvidence, parseFiles, parseLineCounts } from '../../services/ev
4
4
  import { getSessionId } from '../../services/session/session-manager.js';
5
5
  import { findProjectRoot } from '../../services/config/config-safety.js';
6
6
  export function registerEvidenceCommands(program, io) {
7
- const evidence = program.command('evidence').description('Generate per-slice evidence artifacts for mechanical slices');
7
+ const evidence = program
8
+ .command('evidence')
9
+ .description('Generate per-slice evidence artifacts for mechanical slices');
8
10
  addJsonOption(evidence
9
11
  .command('generate')
10
12
  .description('Write the ~11 rd/qa/audit/prd evidence artifacts for a mechanical file-split slice under .peaks/_runtime/<sid>/')
@@ -17,7 +19,9 @@ export function registerEvidenceCommands(program, io) {
17
19
  const projectRoot = findProjectRoot(process.cwd()) ?? process.cwd();
18
20
  const sessionId = options.sessionId ?? getSessionId(projectRoot);
19
21
  if (sessionId === null || sessionId === undefined || sessionId.length === 0) {
20
- printResult(io, fail('evidence.generate', 'SESSION_NOT_BOUND', 'No --session-id was provided and no peaks session is bound for this project.', { projectRoot }, ['Pass --session-id <sid>, or run `peaks workspace init` first so a session directory exists.']), options.json);
22
+ printResult(io, fail('evidence.generate', 'SESSION_NOT_BOUND', 'No --session-id was provided and no peaks session is bound for this project.', { projectRoot }, [
23
+ 'Pass --session-id <sid>, or run `peaks workspace init` first so a session directory exists.'
24
+ ]), options.json);
21
25
  process.exitCode = 1;
22
26
  return;
23
27
  }
@@ -31,12 +35,12 @@ export function registerEvidenceCommands(program, io) {
31
35
  lineCounts,
32
36
  sessionId
33
37
  });
34
- printResult(io, ok('evidence.generate', result, [], [
35
- `Wrote ${result.writtenFiles.length} evidence files under ${result.sessionRoot}`
36
- ]), options.json);
38
+ printResult(io, ok('evidence.generate', result, [], [`Wrote ${result.writtenFiles.length} evidence files under ${result.sessionRoot}`]), options.json);
37
39
  }
38
40
  catch (error) {
39
- printResult(io, fail('evidence.generate', 'EVIDENCE_GENERATE_FAILED', getErrorMessage(error), {}, ['Verify the target project is writable.']), options.json);
41
+ printResult(io, fail('evidence.generate', 'EVIDENCE_GENERATE_FAILED', getErrorMessage(error), {}, [
42
+ 'Verify the target project is writable.'
43
+ ]), options.json);
40
44
  process.exitCode = 1;
41
45
  }
42
46
  });
@@ -22,6 +22,6 @@
22
22
  * rules (AC-8 / AC-10 / AC-11); the CLI only translates flags
23
23
  * into the service payload.
24
24
  */
25
- import { Command } from "commander";
26
- import { type ProgramIO } from "../cli-helpers.js";
25
+ import type { Command } from 'commander';
26
+ import { type ProgramIO } from '../cli-helpers.js';
27
27
  export declare function registerEvolutionCommands(program: Command, io: ProgramIO): void;
@@ -22,14 +22,14 @@
22
22
  * rules (AC-8 / AC-10 / AC-11); the CLI only translates flags
23
23
  * into the service payload.
24
24
  */
25
- import { existsSync, mkdirSync } from "node:fs";
26
- import { dirname, join } from "node:path";
27
- import { openStateDb } from "../../services/skillhub/sqlite-store.js";
28
- import { EvolutionService, EvolutionIntegrityError, } from "../../services/evolution/evolution-service.js";
29
- import { EVOLUTION_TARGET_KINDS, } from "../../services/evolution/evolution-types.js";
30
- import { findProjectRoot } from "../../services/config/config-safety.js";
31
- import { runIndependentEvaluator, } from "../../services/evolution/independent-evaluator-runner.js";
32
- import { addJsonOption, getErrorMessage, printResult } from "../cli-helpers.js";
25
+ import { existsSync, mkdirSync } from 'node:fs';
26
+ import { dirname, join } from 'node:path';
27
+ import { openStateDb } from '../../services/skillhub/sqlite-store.js';
28
+ import { EvolutionService, EvolutionIntegrityError } from '../../services/evolution/evolution-service.js';
29
+ import { EVOLUTION_TARGET_KINDS } from '../../services/evolution/evolution-types.js';
30
+ import { findProjectRoot } from '../../services/config/config-safety.js';
31
+ import { runIndependentEvaluator } from '../../services/evolution/independent-evaluator-runner.js';
32
+ import { addJsonOption, getErrorMessage, printResult } from '../cli-helpers.js';
33
33
  import { fail, ok } from 'peaks-loop-shared/result';
34
34
  /**
35
35
  * Parse `--target <kind:id>`. Returns the kind + id, or `null` on
@@ -37,7 +37,7 @@ import { fail, ok } from 'peaks-loop-shared/result';
37
37
  * union.
38
38
  */
39
39
  function parseTargetFlag(raw) {
40
- const idx = raw.indexOf(":");
40
+ const idx = raw.indexOf(':');
41
41
  if (idx <= 0 || idx === raw.length - 1)
42
42
  return null;
43
43
  const kind = raw.slice(0, idx);
@@ -50,24 +50,27 @@ export function registerEvolutionCommands(program, io) {
50
50
  // Reuse the existing `evolution` parent if one is registered;
51
51
  // otherwise create it. The add-a-new-subcommand-check-for-existing-
52
52
  // top-level-first rule requires this guard.
53
- const existing = program.commands.find((c) => c.name() === "evolution");
54
- const evolution = existing ?? program.command("evolution").description("Darwin-style ratchet: propose / evaluate / revert / status (spec §6)");
53
+ const existing = program.commands.find((c) => c.name() === 'evolution');
54
+ const evolution = existing ??
55
+ program
56
+ .command('evolution')
57
+ .description('Darwin-style ratchet: propose / evaluate / revert / status (spec §6)');
55
58
  // peaks evolution propose
56
59
  addJsonOption(evolution
57
- .command("propose")
60
+ .command('propose')
58
61
  .description("M4: persist a new evolution proposal. Enforces AC-8 (single object + single dimension). The proposal's verdict starts at 'needs-user-decision' until the scoring + skeptic step lands.")
59
- .requiredOption("--target <kind:id>", "target asset, e.g. 'loop:loop-onboarding-research' or 'bee:42'")
60
- .requiredOption("--dimension <name>", "single optimization dimension (e.g. 'clarity')")
61
- .requiredOption("--before-score <n>", "score on the 0..10 scale BEFORE the change")
62
- .requiredOption("--after-score <n>", "score on the 0..10 scale AFTER the change (LLM-claimed)")
63
- .option("--delta-min <n>", `minimum score delta for promotion (default: 1.0; spec §6.1 #5)`, "1.0")
64
- .requiredOption("--author <id>", "author agent id (the LLM proposing the change)")
65
- .option("--brief-pointer <ptr>", "pointer to the evidence brief used in the recommendation (spec §4.7 / §4.4)")
66
- .option("--project <path>", "project root (default: cwd)")).action((options) => {
62
+ .requiredOption('--target <kind:id>', "target asset, e.g. 'loop:loop-onboarding-research' or 'bee:42'")
63
+ .requiredOption('--dimension <name>', "single optimization dimension (e.g. 'clarity')")
64
+ .requiredOption('--before-score <n>', 'score on the 0..10 scale BEFORE the change')
65
+ .requiredOption('--after-score <n>', 'score on the 0..10 scale AFTER the change (LLM-claimed)')
66
+ .option('--delta-min <n>', `minimum score delta for promotion (default: 1.0; spec §6.1 #5)`, '1.0')
67
+ .requiredOption('--author <id>', 'author agent id (the LLM proposing the change)')
68
+ .option('--brief-pointer <ptr>', 'pointer to the evidence brief used in the recommendation (spec §4.7 / §4.4)')
69
+ .option('--project <path>', 'project root (default: cwd)')).action((options) => {
67
70
  try {
68
71
  const target = parseTargetFlag(options.target);
69
72
  if (!target) {
70
- printResult(io, fail("evolution.propose", "EVOLUTION_INVALID_TARGET", `--target must be '<kind>:<id>' where kind ∈ {${EVOLUTION_TARGET_KINDS.join(",")}}`, { target: options.target }, ["Pass --target loop:<loop-id> or --target bee:<bee-id>."]), options.json);
73
+ printResult(io, fail('evolution.propose', 'EVOLUTION_INVALID_TARGET', `--target must be '<kind>:<id>' where kind ∈ {${EVOLUTION_TARGET_KINDS.join(',')}}`, { target: options.target }, ['Pass --target loop:<loop-id> or --target bee:<bee-id>.']), options.json);
71
74
  process.exitCode = 1;
72
75
  return;
73
76
  }
@@ -75,27 +78,27 @@ export function registerEvolutionCommands(program, io) {
75
78
  const after = Number(options.afterScore);
76
79
  const deltaMin = Number(options.deltaMin);
77
80
  if (!Number.isFinite(before) || before < 0 || before > 10) {
78
- printResult(io, fail("evolution.propose", "EVOLUTION_INVALID_BEFORE_SCORE", `before_score must be a finite number in [0, 10] (got "${options.beforeScore}")`, { beforeScore: options.beforeScore }, ["Pass a numeric --before-score in [0, 10]."]), options.json);
81
+ printResult(io, fail('evolution.propose', 'EVOLUTION_INVALID_BEFORE_SCORE', `before_score must be a finite number in [0, 10] (got "${options.beforeScore}")`, { beforeScore: options.beforeScore }, ['Pass a numeric --before-score in [0, 10].']), options.json);
79
82
  process.exitCode = 1;
80
83
  return;
81
84
  }
82
85
  if (!Number.isFinite(after) || after < 0 || after > 10) {
83
- printResult(io, fail("evolution.propose", "EVOLUTION_INVALID_AFTER_SCORE", `after_score must be a finite number in [0, 10] (got "${options.afterScore}")`, { afterScore: options.afterScore }, ["Pass a numeric --after-score in [0, 10]."]), options.json);
86
+ printResult(io, fail('evolution.propose', 'EVOLUTION_INVALID_AFTER_SCORE', `after_score must be a finite number in [0, 10] (got "${options.afterScore}")`, { afterScore: options.afterScore }, ['Pass a numeric --after-score in [0, 10].']), options.json);
84
87
  process.exitCode = 1;
85
88
  return;
86
89
  }
87
90
  if (!Number.isFinite(deltaMin) || deltaMin < 0) {
88
- printResult(io, fail("evolution.propose", "EVOLUTION_INVALID_DELTA_MIN", `delta_min must be a finite number >= 0 (got "${options.deltaMin}")`, { deltaMin: options.deltaMin }, ["Pass a numeric --delta-min >= 0 (default 1.0)."]), options.json);
91
+ printResult(io, fail('evolution.propose', 'EVOLUTION_INVALID_DELTA_MIN', `delta_min must be a finite number >= 0 (got "${options.deltaMin}")`, { deltaMin: options.deltaMin }, ['Pass a numeric --delta-min >= 0 (default 1.0).']), options.json);
89
92
  process.exitCode = 1;
90
93
  return;
91
94
  }
92
95
  const projectRoot = options.project ?? findProjectRoot(process.cwd()) ?? process.cwd();
93
- if (!existsSync(join(projectRoot, ".peaks"))) {
96
+ if (!existsSync(join(projectRoot, '.peaks'))) {
94
97
  // The CLI is allowed to bootstrap an empty .peaks dir so
95
98
  // tests do not need a full peaks project.
96
- mkdirSync(join(projectRoot, ".peaks"), { recursive: true });
99
+ mkdirSync(join(projectRoot, '.peaks'), { recursive: true });
97
100
  }
98
- const db = openStateDb(join(projectRoot, ".peaks", "state.db"));
101
+ const db = openStateDb(join(projectRoot, '.peaks', 'state.db'));
99
102
  try {
100
103
  const svc = new EvolutionService(db);
101
104
  const input = {
@@ -113,10 +116,10 @@ export function registerEvolutionCommands(program, io) {
113
116
  single_optimization_dimension: true,
114
117
  rubric: {},
115
118
  red_lines: [],
116
- source_traces: [],
119
+ source_traces: []
117
120
  };
118
121
  const proposal = svc.createProposal(input);
119
- printResult(io, ok("evolution.propose", {
122
+ printResult(io, ok('evolution.propose', {
120
123
  proposal: {
121
124
  id: proposal.id,
122
125
  target_kind: proposal.target_kind,
@@ -127,12 +130,14 @@ export function registerEvolutionCommands(program, io) {
127
130
  score_delta: proposal.score_delta,
128
131
  score_delta_min: proposal.score_delta_min,
129
132
  author_id: proposal.author_id,
130
- verdict: "needs-user-decision",
131
- ...(options.briefPointer !== undefined ? { brief_pointer: options.briefPointer } : {}),
133
+ verdict: 'needs-user-decision',
134
+ ...(options.briefPointer !== undefined
135
+ ? { brief_pointer: options.briefPointer }
136
+ : {})
132
137
  },
133
138
  nextActions: [
134
- `Run \`peaks evolution evaluate --proposal ${proposal.id} --evaluator <id> --skeptic <id> --evaluator-score <n> --json\` to score the proposal.`,
135
- ],
139
+ `Run \`peaks evolution evaluate --proposal ${proposal.id} --evaluator <id> --skeptic <id> --evaluator-score <n> --json\` to score the proposal.`
140
+ ]
136
141
  }, [], []), options.json);
137
142
  }
138
143
  finally {
@@ -141,48 +146,48 @@ export function registerEvolutionCommands(program, io) {
141
146
  }
142
147
  catch (err) {
143
148
  if (err instanceof EvolutionIntegrityError) {
144
- printResult(io, fail("evolution.propose", err.code, err.message, { findings: err.findings }, [
145
- "Re-shape the proposal per spec §6: single object, single dimension, separate scorer.",
146
- "If you intended a multi-object change, split it into multiple rounds.",
149
+ printResult(io, fail('evolution.propose', err.code, err.message, { findings: err.findings }, [
150
+ 'Re-shape the proposal per spec §6: single object, single dimension, separate scorer.',
151
+ 'If you intended a multi-object change, split it into multiple rounds.'
147
152
  ]), options.json);
148
153
  process.exitCode = 1;
149
154
  return;
150
155
  }
151
- printResult(io, fail("evolution.propose", "EVOLUTION_PROPOSE_FAILED", getErrorMessage(err), {}, [
152
- "Verify the target flag and dimension."
156
+ printResult(io, fail('evolution.propose', 'EVOLUTION_PROPOSE_FAILED', getErrorMessage(err), {}, [
157
+ 'Verify the target flag and dimension.'
153
158
  ]), options.json);
154
159
  process.exitCode = 1;
155
160
  }
156
161
  });
157
162
  // peaks evolution evaluate
158
163
  addJsonOption(evolution
159
- .command("evaluate")
164
+ .command('evaluate')
160
165
  .description("M4: score a proposal with an independent evaluator (AC-12/AC-13) and a regression skeptic (AC-14). The result is the FINAL verdict: 'keep' (after user confirmation), 'revert' (skeptic blocker or score delta below threshold), or 'needs-user-decision'.")
161
- .requiredOption("--proposal <id>", "proposal id returned by `peaks evolution propose`")
162
- .requiredOption("--evaluator <id>", "independent scorer id (MUST differ from --author; AC-10)")
163
- .requiredOption("--skeptic <id>", "regression skeptic id (MUST differ from --evaluator and --author; AC-12/AC-14)")
164
- .requiredOption("--evaluator-score <n>", "the independent scorer's score on the 0..10 scale (LLM-derived; NOT the author's after_score)")
165
- .option("--refute-paragraph <text>", "the independent scorer's one-paragraph refute (LLM-authored)", "")
166
- .option("--risk-tag <tag>", "add a risk tag emitted by the evaluator (repeatable)", collectRepeatable, [])
167
- .option("--brief-pointer <ptr>", "pointer to the evidence brief (spec §4.7 / §4.4)")
168
- .option("--project <path>", "project root (default: cwd)")).action(async (options) => {
166
+ .requiredOption('--proposal <id>', 'proposal id returned by `peaks evolution propose`')
167
+ .requiredOption('--evaluator <id>', 'independent scorer id (MUST differ from --author; AC-10)')
168
+ .requiredOption('--skeptic <id>', 'regression skeptic id (MUST differ from --evaluator and --author; AC-12/AC-14)')
169
+ .requiredOption('--evaluator-score <n>', "the independent scorer's score on the 0..10 scale (LLM-derived; NOT the author's after_score)")
170
+ .option('--refute-paragraph <text>', "the independent scorer's one-paragraph refute (LLM-authored)", '')
171
+ .option('--risk-tag <tag>', 'add a risk tag emitted by the evaluator (repeatable)', collectRepeatable, [])
172
+ .option('--brief-pointer <ptr>', 'pointer to the evidence brief (spec §4.7 / §4.4)')
173
+ .option('--project <path>', 'project root (default: cwd)')).action(async (options) => {
169
174
  try {
170
175
  const score = Number(options.evaluatorScore);
171
176
  if (!Number.isFinite(score) || score < 0 || score > 10) {
172
- printResult(io, fail("evolution.evaluate", "EVOLUTION_INVALID_EVALUATOR_SCORE", `evaluator-score must be a finite number in [0, 10] (got "${options.evaluatorScore}")`, { evaluatorScore: options.evaluatorScore }, ["Pass a numeric --evaluator-score in [0, 10]."]), options.json);
177
+ printResult(io, fail('evolution.evaluate', 'EVOLUTION_INVALID_EVALUATOR_SCORE', `evaluator-score must be a finite number in [0, 10] (got "${options.evaluatorScore}")`, { evaluatorScore: options.evaluatorScore }, ['Pass a numeric --evaluator-score in [0, 10].']), options.json);
173
178
  process.exitCode = 1;
174
179
  return;
175
180
  }
176
181
  const projectRoot = options.project ?? findProjectRoot(process.cwd()) ?? process.cwd();
177
- if (!existsSync(join(projectRoot, ".peaks"))) {
178
- mkdirSync(join(projectRoot, ".peaks"), { recursive: true });
182
+ if (!existsSync(join(projectRoot, '.peaks'))) {
183
+ mkdirSync(join(projectRoot, '.peaks'), { recursive: true });
179
184
  }
180
- const db = openStateDb(join(projectRoot, ".peaks", "state.db"));
185
+ const db = openStateDb(join(projectRoot, '.peaks', 'state.db'));
181
186
  try {
182
187
  const svc = new EvolutionService(db);
183
188
  const proposal = svc.read(options.proposal);
184
189
  if (!proposal) {
185
- printResult(io, fail("evolution.evaluate", "EVOLUTION_PROPOSAL_NOT_FOUND", `proposal '${options.proposal}' not found`, { proposalId: options.proposal }, ["Verify the proposal id and that you have run `peaks evolution propose` first."]), options.json);
190
+ printResult(io, fail('evolution.evaluate', 'EVOLUTION_PROPOSAL_NOT_FOUND', `proposal '${options.proposal}' not found`, { proposalId: options.proposal }, ['Verify the proposal id and that you have run `peaks evolution propose` first.']), options.json);
186
191
  process.exitCode = 1;
187
192
  return;
188
193
  }
@@ -196,10 +201,7 @@ export function registerEvolutionCommands(program, io) {
196
201
  evaluatorResult.refuteParagraph = options.refuteParagraph;
197
202
  }
198
203
  if (Array.isArray(options.riskTag) && options.riskTag.length > 0) {
199
- evaluatorResult.riskTags = [
200
- ...evaluatorResult.riskTags,
201
- ...options.riskTag,
202
- ];
204
+ evaluatorResult.riskTags = [...evaluatorResult.riskTags, ...options.riskTag];
203
205
  }
204
206
  const evaluation = svc.score(options.proposal, {
205
207
  evaluator_id: options.evaluator,
@@ -208,11 +210,11 @@ export function registerEvolutionCommands(program, io) {
208
210
  skeptic_result: {
209
211
  driftRisks: [],
210
212
  overfitRisks: [],
211
- safetyRegressionRisks: [],
213
+ safetyRegressionRisks: []
212
214
  },
213
- ...(options.briefPointer !== undefined ? { brief_pointer: options.briefPointer } : {}),
215
+ ...(options.briefPointer !== undefined ? { brief_pointer: options.briefPointer } : {})
214
216
  });
215
- printResult(io, ok("evolution.evaluate", {
217
+ printResult(io, ok('evolution.evaluate', {
216
218
  proposalId: evaluation.id,
217
219
  verdict: evaluation.verdict,
218
220
  evaluator_id: evaluation.evaluator_id,
@@ -222,19 +224,19 @@ export function registerEvolutionCommands(program, io) {
222
224
  score_delta: evaluation.proposal.score_delta,
223
225
  score_delta_min: evaluation.proposal.score_delta_min,
224
226
  after_score: evaluation.proposal.after_score,
225
- nextActions: evaluation.verdict === "needs-user-decision"
227
+ nextActions: evaluation.verdict === 'needs-user-decision'
226
228
  ? [
227
- `User confirmation required. Run \`peaks evolution mark-keep --proposal ${evaluation.id} --user-confirmation <ptr> --json\` after the user picks "keep", OR \`peaks evolution revert --proposal ${evaluation.id} --json\`.`,
229
+ `User confirmation required. Run \`peaks evolution mark-keep --proposal ${evaluation.id} --user-confirmation <ptr> --json\` after the user picks "keep", OR \`peaks evolution revert --proposal ${evaluation.id} --json\`.`
228
230
  ]
229
- : evaluation.verdict === "revert"
231
+ : evaluation.verdict === 'revert'
230
232
  ? [
231
- "Proposal reverted. Investigate the skeptic blocker or the score delta below threshold.",
233
+ 'Proposal reverted. Investigate the skeptic blocker or the score delta below threshold.'
232
234
  ]
233
235
  : [
234
- "Proposal kept. The target asset remains unchanged on disk; full promotion lands in a later slice.",
235
- ],
236
+ 'Proposal kept. The target asset remains unchanged on disk; full promotion lands in a later slice.'
237
+ ]
236
238
  }, [], []), options.json);
237
- if (evaluation.verdict === "revert")
239
+ if (evaluation.verdict === 'revert')
238
240
  process.exitCode = 1;
239
241
  }
240
242
  finally {
@@ -243,45 +245,43 @@ export function registerEvolutionCommands(program, io) {
243
245
  }
244
246
  catch (err) {
245
247
  if (err instanceof EvolutionIntegrityError) {
246
- printResult(io, fail("evolution.evaluate", err.code, err.message, { findings: err.findings }, [
247
- "Re-shape per spec §6: evaluator and skeptic MUST be separate from the author; the score delta MUST be >= score_delta_min for keep.",
248
+ printResult(io, fail('evolution.evaluate', err.code, err.message, { findings: err.findings }, [
249
+ 'Re-shape per spec §6: evaluator and skeptic MUST be separate from the author; the score delta MUST be >= score_delta_min for keep.'
248
250
  ]), options.json);
249
251
  process.exitCode = 1;
250
252
  return;
251
253
  }
252
- printResult(io, fail("evolution.evaluate", "EVOLUTION_EVALUATE_FAILED", getErrorMessage(err), { proposalId: options.proposal }, [
253
- "Verify the proposal id and the evaluator / skeptic ids.",
254
- ]), options.json);
254
+ printResult(io, fail('evolution.evaluate', 'EVOLUTION_EVALUATE_FAILED', getErrorMessage(err), { proposalId: options.proposal }, ['Verify the proposal id and the evaluator / skeptic ids.']), options.json);
255
255
  process.exitCode = 1;
256
256
  }
257
257
  });
258
258
  // peaks evolution mark-keep — explicit user confirmation.
259
259
  addJsonOption(evolution
260
- .command("mark-keep")
261
- .description("M4: explicit user-confirmed `keep` verdict. Requires --user-confirmation <ptr> and a score_delta >= score_delta_min (AC-11/AC-15).")
262
- .requiredOption("--proposal <id>", "proposal id")
263
- .option("--user-confirmation <ptr>", "pointer to the user choice record (AC-15) — omit to surface the EVOLUTION_MISSING_USER_CONFIRMATION service-layer error")
264
- .option("--project <path>", "project root (default: cwd)")).action((options) => {
260
+ .command('mark-keep')
261
+ .description('M4: explicit user-confirmed `keep` verdict. Requires --user-confirmation <ptr> and a score_delta >= score_delta_min (AC-11/AC-15).')
262
+ .requiredOption('--proposal <id>', 'proposal id')
263
+ .option('--user-confirmation <ptr>', 'pointer to the user choice record (AC-15) — omit to surface the EVOLUTION_MISSING_USER_CONFIRMATION service-layer error')
264
+ .option('--project <path>', 'project root (default: cwd)')).action((options) => {
265
265
  try {
266
266
  const projectRoot = options.project ?? findProjectRoot(process.cwd()) ?? process.cwd();
267
- if (!existsSync(join(projectRoot, ".peaks"))) {
268
- mkdirSync(join(projectRoot, ".peaks"), { recursive: true });
267
+ if (!existsSync(join(projectRoot, '.peaks'))) {
268
+ mkdirSync(join(projectRoot, '.peaks'), { recursive: true });
269
269
  }
270
- const db = openStateDb(join(projectRoot, ".peaks", "state.db"));
270
+ const db = openStateDb(join(projectRoot, '.peaks', 'state.db'));
271
271
  try {
272
272
  const svc = new EvolutionService(db);
273
- const updated = svc.markVerdict(options.proposal, "keep", options.userConfirmation);
273
+ const updated = svc.markVerdict(options.proposal, 'keep', options.userConfirmation);
274
274
  if (!updated) {
275
- printResult(io, fail("evolution.mark-keep", "EVOLUTION_PROPOSAL_NOT_FOUND", `proposal '${options.proposal}' not found`, { proposalId: options.proposal }, ["Verify the proposal id."]), options.json);
275
+ printResult(io, fail('evolution.mark-keep', 'EVOLUTION_PROPOSAL_NOT_FOUND', `proposal '${options.proposal}' not found`, { proposalId: options.proposal }, ['Verify the proposal id.']), options.json);
276
276
  process.exitCode = 1;
277
277
  return;
278
278
  }
279
- printResult(io, ok("evolution.mark-keep", {
279
+ printResult(io, ok('evolution.mark-keep', {
280
280
  proposalId: updated.id,
281
281
  verdict: updated.verdict,
282
282
  user_confirmation_pointer: updated.user_confirmation_pointer ?? null,
283
283
  score_delta: updated.proposal.score_delta,
284
- score_delta_min: updated.proposal.score_delta_min,
284
+ score_delta_min: updated.proposal.score_delta_min
285
285
  }, [], []), options.json);
286
286
  }
287
287
  finally {
@@ -290,43 +290,41 @@ export function registerEvolutionCommands(program, io) {
290
290
  }
291
291
  catch (err) {
292
292
  if (err instanceof EvolutionIntegrityError) {
293
- printResult(io, fail("evolution.mark-keep", err.code, err.message, { findings: err.findings }, [
294
- "Re-shape the proposal or the score so score_delta >= score_delta_min.",
293
+ printResult(io, fail('evolution.mark-keep', err.code, err.message, { findings: err.findings }, [
294
+ 'Re-shape the proposal or the score so score_delta >= score_delta_min.'
295
295
  ]), options.json);
296
296
  process.exitCode = 1;
297
297
  return;
298
298
  }
299
- printResult(io, fail("evolution.mark-keep", "EVOLUTION_MARK_KEEP_FAILED", getErrorMessage(err), { proposalId: options.proposal }, [
300
- "Verify the proposal id.",
301
- ]), options.json);
299
+ printResult(io, fail('evolution.mark-keep', 'EVOLUTION_MARK_KEEP_FAILED', getErrorMessage(err), { proposalId: options.proposal }, ['Verify the proposal id.']), options.json);
302
300
  process.exitCode = 1;
303
301
  }
304
302
  });
305
303
  // peaks evolution revert
306
304
  addJsonOption(evolution
307
- .command("revert")
308
- .description("M4: revert a proposal (universal recovery; spec §6.1 #8). Always allowed; the user may supply --user-confirmation for audit.")
309
- .requiredOption("--proposal <id>", "proposal id")
310
- .option("--user-confirmation <ptr>", "optional pointer to the user choice record")
311
- .option("--project <path>", "project root (default: cwd)")).action((options) => {
305
+ .command('revert')
306
+ .description('M4: revert a proposal (universal recovery; spec §6.1 #8). Always allowed; the user may supply --user-confirmation for audit.')
307
+ .requiredOption('--proposal <id>', 'proposal id')
308
+ .option('--user-confirmation <ptr>', 'optional pointer to the user choice record')
309
+ .option('--project <path>', 'project root (default: cwd)')).action((options) => {
312
310
  try {
313
311
  const projectRoot = options.project ?? findProjectRoot(process.cwd()) ?? process.cwd();
314
- if (!existsSync(join(projectRoot, ".peaks"))) {
315
- mkdirSync(join(projectRoot, ".peaks"), { recursive: true });
312
+ if (!existsSync(join(projectRoot, '.peaks'))) {
313
+ mkdirSync(join(projectRoot, '.peaks'), { recursive: true });
316
314
  }
317
- const db = openStateDb(join(projectRoot, ".peaks", "state.db"));
315
+ const db = openStateDb(join(projectRoot, '.peaks', 'state.db'));
318
316
  try {
319
317
  const svc = new EvolutionService(db);
320
318
  const updated = svc.revert(options.proposal, options.userConfirmation);
321
319
  if (!updated) {
322
- printResult(io, fail("evolution.revert", "EVOLUTION_PROPOSAL_NOT_FOUND", `proposal '${options.proposal}' not found`, { proposalId: options.proposal }, ["Verify the proposal id."]), options.json);
320
+ printResult(io, fail('evolution.revert', 'EVOLUTION_PROPOSAL_NOT_FOUND', `proposal '${options.proposal}' not found`, { proposalId: options.proposal }, ['Verify the proposal id.']), options.json);
323
321
  process.exitCode = 1;
324
322
  return;
325
323
  }
326
- printResult(io, ok("evolution.revert", {
324
+ printResult(io, ok('evolution.revert', {
327
325
  proposalId: updated.id,
328
326
  verdict: updated.verdict,
329
- user_confirmation_pointer: updated.user_confirmation_pointer ?? null,
327
+ user_confirmation_pointer: updated.user_confirmation_pointer ?? null
330
328
  }, [], []), options.json);
331
329
  }
332
330
  finally {
@@ -334,46 +332,42 @@ export function registerEvolutionCommands(program, io) {
334
332
  }
335
333
  }
336
334
  catch (err) {
337
- printResult(io, fail("evolution.revert", "EVOLUTION_REVERT_FAILED", getErrorMessage(err), { proposalId: options.proposal }, [
338
- "Verify the proposal id.",
339
- ]), options.json);
335
+ printResult(io, fail('evolution.revert', 'EVOLUTION_REVERT_FAILED', getErrorMessage(err), { proposalId: options.proposal }, ['Verify the proposal id.']), options.json);
340
336
  process.exitCode = 1;
341
337
  }
342
338
  });
343
339
  // peaks evolution status
344
340
  addJsonOption(evolution
345
- .command("status")
346
- .description("M4: read the status snapshot for a target (counts of evaluations by verdict + latest evaluation id).")
347
- .requiredOption("--target <kind:id>", "target asset, e.g. 'loop:loop-onboarding-research'")
348
- .option("--project <path>", "project root (default: cwd)")).action((options) => {
341
+ .command('status')
342
+ .description('M4: read the status snapshot for a target (counts of evaluations by verdict + latest evaluation id).')
343
+ .requiredOption('--target <kind:id>', "target asset, e.g. 'loop:loop-onboarding-research'")
344
+ .option('--project <path>', 'project root (default: cwd)')).action((options) => {
349
345
  try {
350
346
  const target = parseTargetFlag(options.target);
351
347
  if (!target) {
352
- printResult(io, fail("evolution.status", "EVOLUTION_INVALID_TARGET", `--target must be '<kind>:<id>' where kind ∈ {${EVOLUTION_TARGET_KINDS.join(",")}}`, { target: options.target }, ["Pass --target loop:<loop-id> or --target bee:<bee-id>."]), options.json);
348
+ printResult(io, fail('evolution.status', 'EVOLUTION_INVALID_TARGET', `--target must be '<kind>:<id>' where kind ∈ {${EVOLUTION_TARGET_KINDS.join(',')}}`, { target: options.target }, ['Pass --target loop:<loop-id> or --target bee:<bee-id>.']), options.json);
353
349
  process.exitCode = 1;
354
350
  return;
355
351
  }
356
352
  const projectRoot = options.project ?? findProjectRoot(process.cwd()) ?? process.cwd();
357
- if (!existsSync(join(projectRoot, ".peaks"))) {
358
- mkdirSync(join(projectRoot, ".peaks"), { recursive: true });
353
+ if (!existsSync(join(projectRoot, '.peaks'))) {
354
+ mkdirSync(join(projectRoot, '.peaks'), { recursive: true });
359
355
  }
360
- const db = openStateDb(join(projectRoot, ".peaks", "state.db"));
356
+ const db = openStateDb(join(projectRoot, '.peaks', 'state.db'));
361
357
  try {
362
358
  const svc = new EvolutionService(db);
363
359
  const status = svc.status({
364
360
  target_kind: target.kind,
365
- target_release_id: target.id,
361
+ target_release_id: target.id
366
362
  });
367
- printResult(io, ok("evolution.status", status, [], []), options.json);
363
+ printResult(io, ok('evolution.status', status, [], []), options.json);
368
364
  }
369
365
  finally {
370
366
  db.close();
371
367
  }
372
368
  }
373
369
  catch (err) {
374
- printResult(io, fail("evolution.status", "EVOLUTION_STATUS_FAILED", getErrorMessage(err), { target: options.target }, [
375
- "Verify the target flag.",
376
- ]), options.json);
370
+ printResult(io, fail('evolution.status', 'EVOLUTION_STATUS_FAILED', getErrorMessage(err), { target: options.target }, ['Verify the target flag.']), options.json);
377
371
  process.exitCode = 1;
378
372
  }
379
373
  });
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Support constants + option schema + hint renderer extracted verbatim from
3
+ * `feedback-commands.ts` (file-size cap campaign). Mechanical move only: the
4
+ * command descriptions, the promote action option schema, the two next-action
5
+ * lists, and the exempt-entries hint line.
6
+ */
7
+ export declare const FEEDBACK_PARENT_DESCRIPTION = "v2.15.0 slice 002 AC-3: promote user-given feedback memories to peaks-loop enforcement layers (A: sop, B: hooks, C: hard-floor).";
8
+ export declare const PROMOTE_DESCRIPTION: string;
9
+ export declare const CHECK_UNPROMOTED_DESCRIPTION: string;
10
+ export interface FeedbackPromoteOpts {
11
+ layer?: string;
12
+ project?: string;
13
+ promotedBy?: string;
14
+ dryRun?: boolean;
15
+ json?: boolean;
16
+ }
17
+ export declare const NO_LAYER_NEXT_ACTIONS: string[];
18
+ export declare const UNPROMOTED_NEXT_ACTIONS: string[];
19
+ export declare function formatExemptHint(exempt: readonly {
20
+ name: string;
21
+ code: string;
22
+ }[]): string;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Support constants + option schema + hint renderer extracted verbatim from
3
+ * `feedback-commands.ts` (file-size cap campaign). Mechanical move only: the
4
+ * command descriptions, the promote action option schema, the two next-action
5
+ * lists, and the exempt-entries hint line.
6
+ */
7
+ export const FEEDBACK_PARENT_DESCRIPTION = 'v2.15.0 slice 002 AC-3: promote user-given feedback memories to peaks-loop enforcement layers (A: sop, B: hooks, C: hard-floor).';
8
+ export const PROMOTE_DESCRIPTION = 'Promote a feedback memory to one of the 3 enforcement layers (A=peaks-sop gate, B=peaks-hooks PreToolUse, C=mode-gate hardFloorCategory). ' +
9
+ 'Reads `.peaks/memory/<file>.md` and writes the promotion marker (HTML comment + sidecar .promotion.json) + an RD envelope at ' +
10
+ '`.peaks/_runtime/<sid>/rd/feedback-promote-<name>.json`. Layer A additionally generates and registers the SOP manifest the ' +
11
+ 'SOP engine reads. Layers B and C live in shared files the command does not own, so it records the requirement and exits ' +
12
+ 'non-zero (PROMOTION_NOT_EFFECTIVE) until the registration is present. ' +
13
+ 'Without --layer, the CLI lists the 3 layer options as nextActions and exits with code 0 ' +
14
+ '(use --layer <A|B|C> to actually promote, or pass --dry-run to preview the stub).';
15
+ export const CHECK_UNPROMOTED_DESCRIPTION = 'Scan `.peaks/memory/*.md` and list feedback memories without a promotion marker. ' +
16
+ 'Default: dry-run (exit 0, just warn). Pass --strict to fail with exit code 1 when any ' +
17
+ 'unpromoted feedback is found — this is what `peaks workflow verify-pipeline` Gate H uses.';
18
+ export const NO_LAYER_NEXT_ACTIONS = [
19
+ 'No --layer passed. Choose one of A / B / C and re-run.',
20
+ 'A: append to sops/*.md (procedural rules)',
21
+ 'B: append a matcher to .peaks/.claude-settings-template.json (tool-call interception)',
22
+ 'C: extend HardFloorCategory in mode-gate.ts (always pauses regardless of mode)',
23
+ 'Or pass --dry-run to preview all three stubs first.'
24
+ ];
25
+ export const UNPROMOTED_NEXT_ACTIONS = [
26
+ `Run \`peaks feedback promote <memory-file> --layer <A|B|C>\` for each entry above.`,
27
+ 'A = peaks-sop gate, B = peaks-hooks PreToolUse, C = mode-gate hardFloorCategory.',
28
+ 'A marker alone does not count: the entry above names the artifact its layer still owes.',
29
+ 'See sops/feedback-promotion-sop.md for the SOP and the layer-choice rubric.'
30
+ ];
31
+ export function formatExemptHint(exempt) {
32
+ return `${exempt.length} memor${exempt.length === 1 ? 'y' : 'ies'} declare themselves not-to-be-promoted: ${exempt.map((e) => `${e.name} (${e.code})`).join('; ')}.`;
33
+ }