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
@@ -0,0 +1,97 @@
1
+ /**
2
+ * `peaks retrospective search` — the search command, hoisted out of
3
+ * `retrospective-commands.ts` so that file clears the 300 raw-line cap.
4
+ *
5
+ * Identical control flow: same filter predicates (in the same order), the
6
+ * same optional-spread into `searchRetrospective`, the same envelope
7
+ * fields, the same suggestion texts, the same `process.exitCode = 1`, and
8
+ * the same catch shape (the failure is reported, never swallowed). The
9
+ * filter checks and the failure envelope were split into single-purpose
10
+ * helpers so no function here carries a `max-lines-per-function` or
11
+ * `complexity` finding; nothing else was rewritten.
12
+ *
13
+ * `runRetrospectiveSearch` and `RetrospectiveSearchCommandOptions` stay
14
+ * importable from `retrospective-commands.js` (public surface unchanged).
15
+ */
16
+ import { fail, ok } from 'peaks-loop-shared/result';
17
+ import { searchRetrospective } from '../../services/retrospective/retrospective-search-service.js';
18
+ import { addJsonOption, getErrorMessage, printResult } from '../cli-helpers.js';
19
+ import { resolveRetrospectiveProjectRoot } from './retrospective-project-root.js';
20
+ const VALID_RETRO_TYPES = [
21
+ 'refactor',
22
+ 'feature',
23
+ 'bugfix',
24
+ 'config',
25
+ 'docs',
26
+ 'chore'
27
+ ];
28
+ const VALID_RETRO_OUTCOMES = [
29
+ 'shipped',
30
+ 'blocked',
31
+ 'in-flight',
32
+ 'cancelled'
33
+ ];
34
+ function resolveTypeFilter(type) {
35
+ return type !== undefined && VALID_RETRO_TYPES.includes(type)
36
+ ? type
37
+ : undefined;
38
+ }
39
+ function resolveOutcomeFilter(outcome) {
40
+ return outcome !== undefined && VALID_RETRO_OUTCOMES.includes(outcome)
41
+ ? outcome
42
+ : undefined;
43
+ }
44
+ function printSearchFailure(io, options, projectRoot, error) {
45
+ const message = getErrorMessage(error);
46
+ const code = error.code ?? 'RETROSPECTIVE_SEARCH_FAILED';
47
+ const suggestions = [];
48
+ if (code === 'INDEX_MISSING') {
49
+ suggestions.push('Build a retrospective index.json in .peaks/retrospective/');
50
+ }
51
+ if (code === 'EMPTY_QUERY') {
52
+ suggestions.push('Use `peaks retrospective index` to list all entries');
53
+ }
54
+ printResult(io, fail('retrospective.search', code, message, { projectRoot, query: options.query }, suggestions), options.json);
55
+ process.exitCode = 1;
56
+ }
57
+ export function runRetrospectiveSearch(io, options) {
58
+ const projectRoot = resolveRetrospectiveProjectRoot(options.project);
59
+ const typeFilter = resolveTypeFilter(options.type);
60
+ const outcomeFilter = resolveOutcomeFilter(options.outcome);
61
+ try {
62
+ const matches = searchRetrospective({
63
+ query: options.query,
64
+ projectRoot,
65
+ ...(typeFilter !== undefined ? { type: typeFilter } : {}),
66
+ ...(outcomeFilter !== undefined ? { outcome: outcomeFilter } : {}),
67
+ ...(options.limit !== undefined ? { limit: options.limit } : {})
68
+ });
69
+ printResult(io, ok('retrospective.search', {
70
+ query: options.query,
71
+ total: matches.length,
72
+ matches,
73
+ warnings: []
74
+ }, []), options.json);
75
+ }
76
+ catch (error) {
77
+ printSearchFailure(io, options, projectRoot, error);
78
+ }
79
+ }
80
+ export function registerRetrospectiveSearchCommand(retrospective, io) {
81
+ addJsonOption(retrospective
82
+ .command('search <query>')
83
+ .description('Fuzzy-search the retrospective index (deterministic, local, zero-token). Default --limit 6.')
84
+ .option('--type <type>', `filter by retrospective type (one of: ${VALID_RETRO_TYPES.join(', ')})`)
85
+ .option('--outcome <outcome>', `filter by retrospective outcome (one of: ${VALID_RETRO_OUTCOMES.join(', ')})`)
86
+ .option('--limit <n>', 'maximum number of matches to return', (value) => Number(value))
87
+ .option('--project <path>', 'target project root (defaults to git root or cwd)')).action((query, options) => {
88
+ runRetrospectiveSearch(io, {
89
+ query,
90
+ ...(options.type !== undefined ? { type: options.type } : {}),
91
+ ...(options.outcome !== undefined ? { outcome: options.outcome } : {}),
92
+ ...(options.limit !== undefined ? { limit: options.limit } : {}),
93
+ ...(options.project !== undefined ? { project: options.project } : {}),
94
+ ...(options.json !== undefined ? { json: options.json } : {})
95
+ });
96
+ });
97
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * `peaks retrospective show <id>` — the show command, hoisted out of
3
+ * `retrospective-commands.ts` so that file clears the 300 raw-line cap.
4
+ *
5
+ * Identical control flow: same project-root resolution, the same
6
+ * `--pretty` → format ternary, the same `!result.ok` branch first (its
7
+ * three suggestion checks in the same order with the same texts, then
8
+ * `process.exitCode = 1`, then `return`), the same success envelope field
9
+ * order, and the same catch with its own code / suggestion text / exit
10
+ * code. The suggestion list, the failure `data` object and the success
11
+ * payload became one-builder-each so the action itself is under
12
+ * `max-lines-per-function` and `complexity`; the builders are pure and
13
+ * emit the same bytes.
14
+ */
15
+ import type { Command } from 'commander';
16
+ import { type ProgramIO } from '../cli-helpers.js';
17
+ export interface RetrospectiveShowCommandOptions {
18
+ project?: string;
19
+ pretty?: boolean;
20
+ json?: boolean;
21
+ }
22
+ export declare function runRetrospectiveShowAction(io: ProgramIO, id: string, options: RetrospectiveShowCommandOptions): void;
23
+ export declare function registerRetrospectiveShowCommand(retrospective: Command, io: ProgramIO): void;
@@ -0,0 +1,80 @@
1
+ /**
2
+ * `peaks retrospective show <id>` — the show command, hoisted out of
3
+ * `retrospective-commands.ts` so that file clears the 300 raw-line cap.
4
+ *
5
+ * Identical control flow: same project-root resolution, the same
6
+ * `--pretty` → format ternary, the same `!result.ok` branch first (its
7
+ * three suggestion checks in the same order with the same texts, then
8
+ * `process.exitCode = 1`, then `return`), the same success envelope field
9
+ * order, and the same catch with its own code / suggestion text / exit
10
+ * code. The suggestion list, the failure `data` object and the success
11
+ * payload became one-builder-each so the action itself is under
12
+ * `max-lines-per-function` and `complexity`; the builders are pure and
13
+ * emit the same bytes.
14
+ */
15
+ import { fail, ok } from 'peaks-loop-shared/result';
16
+ import { showRetrospective } from '../../services/retrospective/retrospective-show.js';
17
+ import { addJsonOption, getErrorMessage, printResult } from '../cli-helpers.js';
18
+ import { resolveRetrospectiveProjectRoot } from './retrospective-project-root.js';
19
+ function buildShowFailureSuggestions(result) {
20
+ const suggestions = [];
21
+ if (result.code === 'INDEX_MISSING')
22
+ suggestions.push('Build a retrospective index.json in .peaks/retrospective/');
23
+ if (result.code === 'NOT_FOUND')
24
+ suggestions.push('Run `peaks retrospective index --json` to see available ids');
25
+ if (result.code === 'ARTIFACT_MISSING' || result.missingArtifacts !== undefined) {
26
+ suggestions.push('Restore the missing artifact at the path listed under missingArtifacts');
27
+ }
28
+ return suggestions;
29
+ }
30
+ function buildShowFailureData(id, projectRoot, result) {
31
+ return {
32
+ id,
33
+ projectRoot,
34
+ ...(result.missingArtifacts !== undefined ? { missingArtifacts: result.missingArtifacts } : {})
35
+ };
36
+ }
37
+ function buildShowSuccessPayload(result) {
38
+ return {
39
+ id: result.entry.id,
40
+ sessionId: result.entry.sessionId,
41
+ sliceId: result.entry.sliceId ?? null,
42
+ type: result.entry.type,
43
+ title: result.entry.title,
44
+ summary: result.entry.summary,
45
+ outcome: result.entry.outcome,
46
+ keyDecisions: result.entry.keyDecisions,
47
+ lessonsLearned: result.entry.lessonsLearned,
48
+ artifactPaths: result.entry.artifactPaths,
49
+ updatedAt: result.entry.updatedAt,
50
+ body: result.body,
51
+ format: result.format
52
+ };
53
+ }
54
+ export function runRetrospectiveShowAction(io, id, options) {
55
+ const projectRoot = resolveRetrospectiveProjectRoot(options.project);
56
+ try {
57
+ const format = options.pretty === true ? 'pretty' : 'compact';
58
+ const result = showRetrospective({ projectRoot, id, format });
59
+ if (!result.ok) {
60
+ const suggestions = buildShowFailureSuggestions(result);
61
+ printResult(io, fail('retrospective.show', result.code, result.message, buildShowFailureData(id, projectRoot, result), suggestions), options.json);
62
+ process.exitCode = 1;
63
+ return;
64
+ }
65
+ printResult(io, ok('retrospective.show', buildShowSuccessPayload(result), result.warnings), options.json);
66
+ }
67
+ catch (error) {
68
+ printResult(io, fail('retrospective.show', 'RETROSPECTIVE_SHOW_FAILED', getErrorMessage(error), { id, projectRoot }, ['Check the project path and id']), options.json);
69
+ process.exitCode = 1;
70
+ }
71
+ }
72
+ export function registerRetrospectiveShowCommand(retrospective, io) {
73
+ addJsonOption(retrospective
74
+ .command('show <id>')
75
+ .description('Show one retrospective entry by id. Default format is `compact` (LLM-primary); pass --pretty to get the disk / re-hydrated pretty form.')
76
+ .option('--project <path>', 'target project root (defaults to git root or cwd)')
77
+ .option('--pretty', 'return the pretty form (re-hydrated from source artifacts); overrides the compact default')).action((id, options) => {
78
+ runRetrospectiveShowAction(io, id, options);
79
+ });
80
+ }
@@ -9,6 +9,6 @@
9
9
  * has no `reviewer` section, both commands emit a structured skip envelope
10
10
  * and exit 0 (consistent with A4.3 fallbackOnError=skip).
11
11
  */
12
- import { Command } from 'commander';
12
+ import type { Command } from 'commander';
13
13
  import { type ProgramIO } from '../cli-helpers.js';
14
14
  export declare function registerReviewerCommands(program: Command, io: ProgramIO): void;
@@ -23,7 +23,9 @@ export function registerRoleCommands(program, io) {
23
23
  const projectRoot = opts.project ?? findProjectRoot(process.cwd()) ?? process.cwd();
24
24
  const registry = readRoleRegistry(projectRoot);
25
25
  printResult(io, ok('role.list', { projectRoot, roles: registry.roles, count: registry.roles.length }, [], [
26
- registry.roles.length === 0 ? 'No roles registered. Run `peaks role add <name>` to start.' : ''
26
+ registry.roles.length === 0
27
+ ? 'No roles registered. Run `peaks role add <name>` to start.'
28
+ : ''
27
29
  ].filter(Boolean)), opts.json ?? false);
28
30
  });
29
31
  addJsonOption(role
@@ -38,7 +40,12 @@ export function registerRoleCommands(program, io) {
38
40
  const projectRoot = opts.project ?? findProjectRoot(process.cwd()) ?? process.cwd();
39
41
  let newRole;
40
42
  if (opts.preset === 'senior-fe') {
41
- newRole = { ...DEFAULT_SENIOR_FE_ROLE, name, description: opts.description ?? DEFAULT_SENIOR_FE_ROLE.description, permissions: [...DEFAULT_SENIOR_FE_ROLE.permissions, ...opts.permission] };
43
+ newRole = {
44
+ ...DEFAULT_SENIOR_FE_ROLE,
45
+ name,
46
+ description: opts.description ?? DEFAULT_SENIOR_FE_ROLE.description,
47
+ permissions: [...DEFAULT_SENIOR_FE_ROLE.permissions, ...opts.permission]
48
+ };
42
49
  }
43
50
  else {
44
51
  newRole = { name, description: opts.description ?? '', permissions: opts.permission };
@@ -46,9 +53,7 @@ export function registerRoleCommands(program, io) {
46
53
  const registry = readRoleRegistry(projectRoot);
47
54
  const next = upsertRole(registry, newRole);
48
55
  writeRoleRegistry(projectRoot, next);
49
- printResult(io, ok('role.add', { projectRoot, role: newRole }, [], [
50
- `Role "${name}" registered with ${newRole.permissions.length} permission(s).`
51
- ]), opts.json ?? false);
56
+ printResult(io, ok('role.add', { projectRoot, role: newRole }, [], [`Role "${name}" registered with ${newRole.permissions.length} permission(s).`]), opts.json ?? false);
52
57
  });
53
58
  addJsonOption(role
54
59
  .command('grant <role> <permission>')
@@ -63,9 +68,7 @@ export function registerRoleCommands(program, io) {
63
68
  }
64
69
  const next = grantPermission(registry, roleName, permission);
65
70
  writeRoleRegistry(projectRoot, next);
66
- printResult(io, ok('role.grant', { projectRoot, role: roleName, permission, granted: true }, [], [
67
- `Granted "${permission}" to role "${roleName}".`
68
- ]), opts.json ?? false);
71
+ printResult(io, ok('role.grant', { projectRoot, role: roleName, permission, granted: true }, [], [`Granted "${permission}" to role "${roleName}".`]), opts.json ?? false);
69
72
  });
70
73
  addJsonOption(role
71
74
  .command('check <role> <permission>')
@@ -77,7 +80,9 @@ export function registerRoleCommands(program, io) {
77
80
  const registry = readRoleRegistry(projectRoot);
78
81
  const granted = roleHasPermission(registry, roleName, permission);
79
82
  printResult(io, ok('role.check', { projectRoot, role: roleName, permission, granted }, [], [
80
- granted ? `Role "${roleName}" has permission "${permission}".` : `Role "${roleName}" does NOT have permission "${permission}".`
83
+ granted
84
+ ? `Role "${roleName}" has permission "${permission}".`
85
+ : `Role "${roleName}" does NOT have permission "${permission}".`
81
86
  ]), opts.json ?? false);
82
87
  if (!granted)
83
88
  process.exitCode = 1;
@@ -29,7 +29,9 @@ export function registerRuntimeCommands(program, io) {
29
29
  ]), options.json);
30
30
  }
31
31
  catch (error) {
32
- printResult(io, fail('runtime.detect', 'RUNTIME_DETECT_FAILED', getErrorMessage(error), {}, ['Retry with a clean env']), options.json);
32
+ printResult(io, fail('runtime.detect', 'RUNTIME_DETECT_FAILED', getErrorMessage(error), {}, [
33
+ 'Retry with a clean env'
34
+ ]), options.json);
33
35
  process.exitCode = 1;
34
36
  }
35
37
  });
@@ -41,7 +43,9 @@ export function registerRuntimeCommands(program, io) {
41
43
  .description('List the built-in vendor adapters registered by RuntimeService')).action((options) => {
42
44
  try {
43
45
  const svc = new RuntimeService();
44
- const adapters = svc.listBuiltInAdapters().map((a) => ({ id: a.id, displayName: a.displayName }));
46
+ const adapters = svc
47
+ .listBuiltInAdapters()
48
+ .map((a) => ({ id: a.id, displayName: a.displayName }));
45
49
  printResult(io, ok('runtime.list', { builtIn: adapters }, [], [
46
50
  `Run \`peaks adapter register --id <vendor> --binary <cmd>\` to add a custom adapter (persists to .peaks/runtime/adapters.json).`
47
51
  ]), options.json);
@@ -67,9 +71,7 @@ export function registerRuntimeCommands(program, io) {
67
71
  // No explicit --via: try to detect first, then fall back.
68
72
  const detected = detectRuntime();
69
73
  if (detected.vendor === 'unknown') {
70
- printResult(io, fail('runtime.compact', 'NO_VENDOR_SPECIFIED', 'No --via <id> provided and no vendor detected.', { detected }, [
71
- 'Pass --via <vendor-id>, or run `peaks runtime detect` to see what was detected.'
72
- ]), options.json);
74
+ printResult(io, fail('runtime.compact', 'NO_VENDOR_SPECIFIED', 'No --via <id> provided and no vendor detected.', { detected }, ['Pass --via <vendor-id>, or run `peaks runtime detect` to see what was detected.']), options.json);
73
75
  process.exitCode = 1;
74
76
  return;
75
77
  }
@@ -92,7 +94,8 @@ async function runCompact(projectRoot, viaId, force, io, asJson) {
92
94
  try {
93
95
  registry.load(registryFile);
94
96
  }
95
- catch { // TODO(g2): vendor-neutrality — corrupt adapter registry must NOT block peaks runtime
97
+ catch {
98
+ // TODO(g2): vendor-neutrality — corrupt adapter registry must NOT block peaks runtime
96
99
  // Treat corrupt registry as empty — vendor-neutrality: a corrupt
97
100
  // .peaks/runtime/adapters.json must NOT block peaks runtime.
98
101
  // We still try the built-in path below.
@@ -123,7 +126,11 @@ async function runCompact(projectRoot, viaId, force, io, asJson) {
123
126
  if (r.exitCode === 127) {
124
127
  warnings.push(`built-in adapter "${viaId}" binary not found on PATH; compact is a no-op`);
125
128
  }
126
- printResult(io, ok('runtime.compact', { via: viaId, source: 'built-in', compact: { exitCode: r.exitCode, stdout: r.stdout, stderr: r.stderr } }, warnings, [
129
+ printResult(io, ok('runtime.compact', {
130
+ via: viaId,
131
+ source: 'built-in',
132
+ compact: { exitCode: r.exitCode, stdout: r.stdout, stderr: r.stderr }
133
+ }, warnings, [
127
134
  r.exitCode === 0
128
135
  ? 'Compact completed.'
129
136
  : `Compact exited with code ${r.exitCode}. Check stderr above.`
@@ -1,3 +1,3 @@
1
- import { Command } from 'commander';
1
+ import type { Command } from 'commander';
2
2
  import { type ProgramIO } from '../cli-helpers.js';
3
3
  export declare function registerSCCommands(program: Command, io: ProgramIO): void;
@@ -27,7 +27,11 @@ function registerSCArtifactCommands(sc, io) {
27
27
  // longer accepted on `peaks sc impact`. The CLI surfaces a
28
28
  // per-`(module, file)` impact report without a top-level
29
29
  // change-id binding.
30
- addJsonOption(sc.command('impact').description('Generate change impact artifact').option('--module <module>', 'affected module', multipleOption).option('--file <file>', 'affected file', multipleOption)).action((options) => {
30
+ addJsonOption(sc
31
+ .command('impact')
32
+ .description('Generate change impact artifact')
33
+ .option('--module <module>', 'affected module', multipleOption)
34
+ .option('--file <file>', 'affected file', multipleOption)).action((options) => {
31
35
  const impactOptions = {
32
36
  sessionId: '',
33
37
  ...(options.module ? { affectedModules: options.module } : {}),
@@ -35,13 +39,42 @@ function registerSCArtifactCommands(sc, io) {
35
39
  };
36
40
  printResult(io, ok('sc.impact', createChangeImpact(impactOptions)), options.json);
37
41
  });
38
- addJsonOption(sc.command('retention').description('Create artifact retention report').requiredOption('--slice-id <id>', 'slice identifier').option('--prd <artifact>', 'PRD artifact path', multipleOption).option('--rd <artifact>', 'RD artifact path', multipleOption).option('--qa <artifact>', 'QA artifact path', multipleOption).option('--coverage <artifact>', 'coverage artifact path', multipleOption).option('--review <artifact>', 'review artifact path', multipleOption).option('--code <file>', 'code file path', multipleOption)).action((options) => {
39
- printResult(io, ok('sc.retention', createArtifactRetentionReport({ sliceId: options.sliceId, ...(options.prd ? { prdArtifacts: options.prd } : {}), ...(options.rd ? { rdArtifacts: options.rd } : {}), ...(options.qa ? { qaArtifacts: options.qa } : {}), ...(options.coverage ? { coverageArtifacts: options.coverage } : {}), ...(options.review ? { reviewArtifacts: options.review } : {}), ...(options.code ? { codeChanges: options.code } : {}) })), options.json);
42
+ addJsonOption(sc
43
+ .command('retention')
44
+ .description('Create artifact retention report')
45
+ .requiredOption('--slice-id <id>', 'slice identifier')
46
+ .option('--prd <artifact>', 'PRD artifact path', multipleOption)
47
+ .option('--rd <artifact>', 'RD artifact path', multipleOption)
48
+ .option('--qa <artifact>', 'QA artifact path', multipleOption)
49
+ .option('--coverage <artifact>', 'coverage artifact path', multipleOption)
50
+ .option('--review <artifact>', 'review artifact path', multipleOption)
51
+ .option('--code <file>', 'code file path', multipleOption)).action((options) => {
52
+ printResult(io, ok('sc.retention', createArtifactRetentionReport({
53
+ sliceId: options.sliceId,
54
+ ...(options.prd ? { prdArtifacts: options.prd } : {}),
55
+ ...(options.rd ? { rdArtifacts: options.rd } : {}),
56
+ ...(options.qa ? { qaArtifacts: options.qa } : {}),
57
+ ...(options.coverage ? { coverageArtifacts: options.coverage } : {}),
58
+ ...(options.review ? { reviewArtifacts: options.review } : {}),
59
+ ...(options.code ? { codeChanges: options.code } : {})
60
+ })), options.json);
40
61
  });
41
- addJsonOption(sc.command('validate').description('Validate artifact retention for a slice').requiredOption('--slice-id <id>', 'slice identifier')).action((options) => {
62
+ addJsonOption(sc
63
+ .command('validate')
64
+ .description('Validate artifact retention for a slice')
65
+ .requiredOption('--slice-id <id>', 'slice identifier')).action((options) => {
42
66
  printResult(io, ok('sc.validate', validateArtifactRetention(options.sliceId)), options.json);
43
67
  });
44
- addJsonOption(sc.command('boundary').description('Record retention boundary for a slice').requiredOption('--slice-id <id>', 'slice identifier').option('--artifact <path>', 'artifact path', multipleOption).option('--code <file>', 'code file path', multipleOption)).action((options) => {
45
- printResult(io, ok('sc.boundary', recordCommitBoundary({ sliceId: options.sliceId, ...(options.artifact ? { artifacts: options.artifact } : {}), ...(options.code ? { codeFiles: options.code } : {}) })), options.json);
68
+ addJsonOption(sc
69
+ .command('boundary')
70
+ .description('Record retention boundary for a slice')
71
+ .requiredOption('--slice-id <id>', 'slice identifier')
72
+ .option('--artifact <path>', 'artifact path', multipleOption)
73
+ .option('--code <file>', 'code file path', multipleOption)).action((options) => {
74
+ printResult(io, ok('sc.boundary', recordCommitBoundary({
75
+ sliceId: options.sliceId,
76
+ ...(options.artifact ? { artifacts: options.artifact } : {}),
77
+ ...(options.code ? { codeFiles: options.code } : {})
78
+ })), options.json);
46
79
  });
47
80
  }
@@ -4,7 +4,8 @@ import { scanExistingSystem } from '../../services/scan/existing-system-service.
4
4
  import { checkTypeSanity } from '../../services/scan/type-sanity-service.js';
5
5
  import { getAcceptanceCoverage, isAcceptanceCoverageError } from '../../services/scan/acceptance-coverage-service.js';
6
6
  import { getDiffVsScope, isDiffScopeError } from '../../services/scan/diff-scope-service.js';
7
- import { scanFileSize, DEFAULT_FILE_SIZE_THRESHOLD } from '../../services/scan/file-size-scan.js';
7
+ import { scanFileSize } from '../../services/scan/file-size-scan.js';
8
+ import { FILE_SIZE_CAP_DEFAULT, FILE_SIZE_CAP_TESTS } from '../../services/scan/file-size-policy.js';
8
9
  import { scanLibraries } from '../../services/scan/libraries-service.js';
9
10
  import { scanApiSurface, formatApiSurfaceMarkdown } from '../../services/scan/api-surface-service.js';
10
11
  import { scanOrphans, formatOrphanMarkdown } from '../../services/scan/orphan-service.js';
@@ -27,7 +28,9 @@ function parseRequestType(value) {
27
28
  return value;
28
29
  }
29
30
  export function registerScanCommands(program, io) {
30
- const scan = program.command('scan').description('Deterministic project scans (archetype, existing system) for Peaks workflows');
31
+ const scan = program
32
+ .command('scan')
33
+ .description('Deterministic project scans (archetype, existing system) for Peaks workflows');
31
34
  addJsonOption(scan
32
35
  .command('archetype')
33
36
  .description('Detect project archetype, integration mode (three scenarios), frontend-only mode, and supporting signals from the filesystem (read-only)')
@@ -38,7 +41,9 @@ export function registerScanCommands(program, io) {
38
41
  if (report.archetype === 'unknown') {
39
42
  nextActions.push('Archetype could not be determined; surface to user before proceeding.');
40
43
  }
41
- else if (report.archetype === 'legacy-frontend' || report.archetype === 'legacy-fullstack' || report.archetype === 'frontend-monorepo') {
44
+ else if (report.archetype === 'legacy-frontend' ||
45
+ report.archetype === 'legacy-fullstack' ||
46
+ report.archetype === 'frontend-monorepo') {
42
47
  nextActions.push('Run `peaks scan existing-system --project <path>` to extract visual tokens and conventions.');
43
48
  }
44
49
  printResult(io, ok('scan.archetype', report, [], nextActions), options.json);
@@ -81,7 +86,10 @@ export function registerScanCommands(program, io) {
81
86
  .requiredOption('--type <type>', `declared request type (${VALID_REQUEST_TYPES.join(' | ')})`, parseRequestType)
82
87
  .option('--base-ref <ref>', 'compare working tree against this git ref (default: HEAD)')).action((options) => {
83
88
  try {
84
- const serviceOptions = { projectRoot: options.project, declaredType: options.type };
89
+ const serviceOptions = {
90
+ projectRoot: options.project,
91
+ declaredType: options.type
92
+ };
85
93
  if (options.baseRef !== undefined) {
86
94
  serviceOptions.baseRef = options.baseRef;
87
95
  }
@@ -113,7 +121,10 @@ export function registerScanCommands(program, io) {
113
121
  .requiredOption('--project <path>', 'target project root')
114
122
  .option('--session-id <session>', 'restrict to a specific session id')).action(async (options) => {
115
123
  try {
116
- const coverageOptions = { projectRoot: options.project, requestId: options.rid };
124
+ const coverageOptions = {
125
+ projectRoot: options.project,
126
+ requestId: options.rid
127
+ };
117
128
  if (options.sessionId !== undefined) {
118
129
  coverageOptions.sessionId = options.sessionId;
119
130
  }
@@ -162,7 +173,10 @@ export function registerScanCommands(program, io) {
162
173
  .option('--session-id <session>', 'restrict to a specific session id')
163
174
  .option('--base-ref <ref>', 'compare working tree against this git ref (default: HEAD)')).action(async (options) => {
164
175
  try {
165
- const scopeOptions = { projectRoot: options.project, requestId: options.rid };
176
+ const scopeOptions = {
177
+ projectRoot: options.project,
178
+ requestId: options.rid
179
+ };
166
180
  if (options.sessionId !== undefined)
167
181
  scopeOptions.sessionId = options.sessionId;
168
182
  if (options.baseRef !== undefined)
@@ -201,7 +215,7 @@ export function registerScanCommands(program, io) {
201
215
  .description('Check git diff for files exceeding a line count threshold (karpathy-skills "Simplicity First"; tool output, lockfiles and append-only records such as CHANGELOG.md excluded)')
202
216
  .requiredOption('--project <path>', 'target project root')
203
217
  .option('--base-ref <ref>', 'compare working tree against this git ref (default: HEAD)')
204
- .option('--threshold <n>', `line count threshold (default: ${DEFAULT_FILE_SIZE_THRESHOLD})`)).action((options) => {
218
+ .option('--threshold <n>', `line count applied to EVERY file (default: the file-size policy's per-directory cap — ${FILE_SIZE_CAP_DEFAULT} raw lines, ${FILE_SIZE_CAP_TESTS} under root tests/)`)).action((options) => {
205
219
  try {
206
220
  const threshold = options.threshold !== undefined && /^\d+$/.test(options.threshold)
207
221
  ? Number(options.threshold)
@@ -213,7 +227,7 @@ export function registerScanCommands(program, io) {
213
227
  });
214
228
  const nextActions = [];
215
229
  if (!result.ok) {
216
- nextActions.push(`${result.violations.length} file(s) exceed ${result.threshold} lines. Split into smaller modules.`);
230
+ nextActions.push(`${result.violations.length} file(s) exceed their file-size cap. Split into smaller modules.`);
217
231
  }
218
232
  printResult(io, ok('scan.file-size', result, [], nextActions), options.json);
219
233
  if (!result.ok) {
@@ -325,7 +339,7 @@ export function registerScanCommands(program, io) {
325
339
  // endpoint. Read-only; never writes. karpathy §3 Surgical Changes.
326
340
  addJsonOption(scan
327
341
  .command('orphan')
328
- .description("Detect 4 kinds of orphans (export / import / CLI subcommand / doc endpoint) — karpathy §3 Surgical Changes")
342
+ .description('Detect 4 kinds of orphans (export / import / CLI subcommand / doc endpoint) — karpathy §3 Surgical Changes')
329
343
  .requiredOption('--project <path>', 'target project root')
330
344
  .option('--format <fmt>', 'output format: md (default) | json', (v) => {
331
345
  if (v !== 'md' && v !== 'json') {
@@ -347,7 +361,10 @@ export function registerScanCommands(program, io) {
347
361
  ...(options.strict !== undefined ? { strict: options.strict } : {})
348
362
  });
349
363
  const nextActions = [];
350
- const totalOrphans = report.counts.export + report.counts.import + report.counts.cliSubcommand + report.counts.docEndpoint;
364
+ const totalOrphans = report.counts.export +
365
+ report.counts.import +
366
+ report.counts.cliSubcommand +
367
+ report.counts.docEndpoint;
351
368
  if (totalOrphans === 0) {
352
369
  nextActions.push('No orphans detected in the requested scope. RD may proceed to commit.');
353
370
  }
@@ -378,7 +395,10 @@ export function registerScanCommands(program, io) {
378
395
  catch (error) {
379
396
  if (error instanceof InvalidArgumentError)
380
397
  throw error;
381
- printResult(io, fail('scan.orphan', 'SCAN_ORPHAN_FAILED', getErrorMessage(error), { projectRoot: options.project }, ['Verify the project path exists and is readable', 'Verify the project is a git repository (working-tree scope)']), options.json);
398
+ printResult(io, fail('scan.orphan', 'SCAN_ORPHAN_FAILED', getErrorMessage(error), { projectRoot: options.project }, [
399
+ 'Verify the project path exists and is readable',
400
+ 'Verify the project is a git repository (working-tree scope)'
401
+ ]), options.json);
382
402
  process.exitCode = 1;
383
403
  }
384
404
  });
@@ -387,7 +407,7 @@ export function registerScanCommands(program, io) {
387
407
  // the 4 Karpathy-guidelines. Read-only; never writes. karpathy §3.
388
408
  addJsonOption(scan
389
409
  .command('karpathy')
390
- .description("Surface-level scan of rd/karpathy-review.md for the 4 Karpathy guidelines (Think / Simplicity / Surgical / Goal) — karpathy §1 + §3")
410
+ .description('Surface-level scan of rd/karpathy-review.md for the 4 Karpathy guidelines (Think / Simplicity / Surgical / Goal) — karpathy §1 + §3')
391
411
  .requiredOption('--project <path>', 'target project root')
392
412
  .option('--format <fmt>', 'output format: md (default) | json', (v) => {
393
413
  if (v !== 'md' && v !== 'json') {
@@ -438,7 +458,10 @@ export function registerScanCommands(program, io) {
438
458
  catch (error) {
439
459
  if (error instanceof InvalidArgumentError)
440
460
  throw error;
441
- printResult(io, fail('scan.karpathy', 'SCAN_KARPATHY_FAILED', getErrorMessage(error), { projectRoot: options.project }, ['Verify the project path exists and is readable', 'Verify the project is a readable directory']), options.json);
461
+ printResult(io, fail('scan.karpathy', 'SCAN_KARPATHY_FAILED', getErrorMessage(error), { projectRoot: options.project }, [
462
+ 'Verify the project path exists and is readable',
463
+ 'Verify the project is a readable directory'
464
+ ]), options.json);
442
465
  process.exitCode = 1;
443
466
  }
444
467
  });
@@ -18,6 +18,6 @@
18
18
  * This CLI is the I/O + validation shell, mirroring the ecc-bridge
19
19
  * pattern (slice 7 Group D).
20
20
  */
21
- import { Command } from 'commander';
21
+ import type { Command } from 'commander';
22
22
  import { type ProgramIO } from '../cli-helpers.js';
23
23
  export declare function registerSecurityAuditCommands(program: Command, io: ProgramIO): void;
@@ -1,5 +1,5 @@
1
1
  import { readFileSync } from 'node:fs';
2
- import { detectSecurityAudit, isSecurityAuditEnvelope, runSecurityAudit, } from '../../services/audit-independent/index.js';
2
+ import { detectSecurityAudit, isSecurityAuditEnvelope, runSecurityAudit } from '../../services/audit-independent/index.js';
3
3
  import { addJsonOption, getErrorMessage, printResult } from '../cli-helpers.js';
4
4
  import { fail, ok } from 'peaks-loop-shared/result';
5
5
  function resolveEnvelope(envelopePath) {
@@ -48,7 +48,10 @@ export function registerSecurityAuditCommands(program, io) {
48
48
  const sid = options.sid;
49
49
  const rid = options.rid;
50
50
  if (sid === undefined || sid.length === 0) {
51
- printResult(io, fail('security-audit.detect', 'SID_REQUIRED', 'session id (--sid) is required for security-audit.detect', { state: 'sid-missing' }, ['Pass --sid <session-id> (e.g. 2026-06-27-session-...)', 'Run `peaks session info --active --json` to find the active sid.']), options.json);
51
+ printResult(io, fail('security-audit.detect', 'SID_REQUIRED', 'session id (--sid) is required for security-audit.detect', { state: 'sid-missing' }, [
52
+ 'Pass --sid <session-id> (e.g. 2026-06-27-session-...)',
53
+ 'Run `peaks session info --active --json` to find the active sid.'
54
+ ]), options.json);
52
55
  process.exitCode = 1;
53
56
  return;
54
57
  }
@@ -56,7 +59,7 @@ export function registerSecurityAuditCommands(program, io) {
56
59
  const detect = detectSecurityAudit({
57
60
  projectRoot,
58
61
  sessionId: sid,
59
- ...(rid !== undefined ? { requestId: rid } : {}),
62
+ ...(rid !== undefined ? { requestId: rid } : {})
60
63
  });
61
64
  const envelope = detect.state === 'ready'
62
65
  ? ok('security-audit.detect', detect, [...detect.warnings], [...detect.nextActions])
@@ -72,7 +75,7 @@ export function registerSecurityAuditCommands(program, io) {
72
75
  handoffPresent: false,
73
76
  templatePresent: false,
74
77
  warnings: [],
75
- nextActions: [],
78
+ nextActions: []
76
79
  }, ['Re-run with --project <path> pointing at a known-good project root.']), options.json);
77
80
  process.exitCode = 1;
78
81
  }
@@ -112,7 +115,7 @@ export function registerSecurityAuditCommands(program, io) {
112
115
  sessionId: sid,
113
116
  rid,
114
117
  generatedAt: new Date().toISOString(),
115
- envelope: envelopeValue,
118
+ envelope: envelopeValue
116
119
  });
117
120
  if (result.detect.state !== 'ready' || result.artifactPath === null) {
118
121
  printResult(io, fail('security-audit.run', result.detect.state.toUpperCase().replace(/-/g, '_'), `security-audit is not ready: ${result.detect.state}`, result, [...result.detect.nextActions]), options.json);
@@ -123,11 +126,13 @@ export function registerSecurityAuditCommands(program, io) {
123
126
  detect: result.detect,
124
127
  artifactPath: result.artifactPath,
125
128
  violationsCount: result.violationsCount,
126
- verdict: result.verdict,
129
+ verdict: result.verdict
127
130
  }, [...result.detect.warnings], [...result.detect.nextActions]), options.json);
128
131
  }
129
132
  catch (error) {
130
- printResult(io, fail('security-audit.run', 'RUN_SECURITY_AUDIT_FAILED', getErrorMessage(error), {}, ['Verify the envelope JSON is well-formed and matches the strict-shape contract.']), options.json);
133
+ printResult(io, fail('security-audit.run', 'RUN_SECURITY_AUDIT_FAILED', getErrorMessage(error), {}, [
134
+ 'Verify the envelope JSON is well-formed and matches the strict-shape contract.'
135
+ ]), options.json);
131
136
  process.exitCode = 1;
132
137
  }
133
138
  });
@@ -1,5 +1,5 @@
1
- import type { Command } from "commander";
2
- import { type ProgramIO } from "../cli-helpers.js";
1
+ import type { Command } from 'commander';
2
+ import { type ProgramIO } from '../cli-helpers.js';
3
3
  export interface CliResult {
4
4
  ok: boolean;
5
5
  error?: string;