peaks-loop 4.0.54 → 4.1.1

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 (1068) hide show
  1. package/CHANGELOG.md +61 -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 +86 -39
  12. package/dist/cli/commands/_super.js +40 -7
  13. package/dist/cli/commands/adapter-commands-s2a.js +8 -7
  14. package/dist/cli/commands/adapter-commands.d.ts +2 -2
  15. package/dist/cli/commands/adapter-commands.js +7 -8
  16. package/dist/cli/commands/api-diff-commands.js +5 -4
  17. package/dist/cli/commands/asset-commands.d.ts +2 -2
  18. package/dist/cli/commands/asset-commands.js +135 -132
  19. package/dist/cli/commands/audit-commands.d.ts +1 -1
  20. package/dist/cli/commands/audit-commands.js +75 -32
  21. package/dist/cli/commands/autonomous-swarm-commands.d.ts +1 -1
  22. package/dist/cli/commands/autonomous-swarm-commands.js +14 -8
  23. package/dist/cli/commands/baseline-commands.js +34 -9
  24. package/dist/cli/commands/bee-commands.d.ts +1 -1
  25. package/dist/cli/commands/bee-commands.js +18 -21
  26. package/dist/cli/commands/best-practice-scan-command.js +6 -34
  27. package/dist/cli/commands/best-practice-scan-helpers.d.ts +12 -0
  28. package/dist/cli/commands/best-practice-scan-helpers.js +37 -0
  29. package/dist/cli/commands/capability-commands.d.ts +1 -1
  30. package/dist/cli/commands/capability-commands.js +14 -4
  31. package/dist/cli/commands/capability-worker-config-sc-commands.d.ts +1 -1
  32. package/dist/cli/commands/changeset-commands.js +21 -18
  33. package/dist/cli/commands/code-gate-command.js +9 -2
  34. package/dist/cli/commands/code-job-shape-commands-read-job-shape.d.ts +15 -0
  35. package/dist/cli/commands/code-job-shape-commands-read-job-shape.js +70 -0
  36. package/dist/cli/commands/code-job-shape-commands.js +21 -45
  37. package/dist/cli/commands/code-mode-gate-commands.d.ts +15 -1
  38. package/dist/cli/commands/code-mode-gate-commands.js +19 -199
  39. package/dist/cli/commands/code-mode-gate-plan-command.d.ts +14 -0
  40. package/dist/cli/commands/code-mode-gate-plan-command.js +23 -0
  41. package/dist/cli/commands/code-mode-gate-should-pause-command.d.ts +24 -0
  42. package/dist/cli/commands/code-mode-gate-should-pause-command.js +137 -0
  43. package/dist/cli/commands/code-mode-gate-should-pause-envelope.d.ts +59 -0
  44. package/dist/cli/commands/code-mode-gate-should-pause-envelope.js +144 -0
  45. package/dist/cli/commands/code-orchestrator-can-do.js +4 -4
  46. package/dist/cli/commands/code-review-commands.js +18 -3
  47. package/dist/cli/commands/code-run-command.js +44 -7
  48. package/dist/cli/commands/code-runtime-commands.d.ts +17 -0
  49. package/dist/cli/commands/code-runtime-commands.js +105 -73
  50. package/dist/cli/commands/codegraph-commands.js +11 -6
  51. package/dist/cli/commands/codegraph-status-command.js +6 -2
  52. package/dist/cli/commands/comments-commands.d.ts +14 -0
  53. package/dist/cli/commands/comments-commands.js +96 -0
  54. package/dist/cli/commands/compact-command.js +52 -26
  55. package/dist/cli/commands/complexity-commands.js +6 -7
  56. package/dist/cli/commands/config-commands.d.ts +1 -1
  57. package/dist/cli/commands/config-commands.js +33 -9
  58. package/dist/cli/commands/container-commands.js +39 -15
  59. package/dist/cli/commands/context-commands.d.ts +1 -1
  60. package/dist/cli/commands/context-commands.js +40 -13
  61. package/dist/cli/commands/core/artifacts-command.js +11 -3
  62. package/dist/cli/commands/core/binding-commands.js +9 -6
  63. package/dist/cli/commands/core/doctor-command.js +7 -4
  64. package/dist/cli/commands/core/memory-command.js +57 -21
  65. package/dist/cli/commands/core/proxy-command.js +3 -1
  66. package/dist/cli/commands/core/session-command.js +16 -8
  67. package/dist/cli/commands/core/skill-command.js +32 -17
  68. package/dist/cli/commands/core/standards-command.js +56 -14
  69. package/dist/cli/commands/cron-commands-actions.d.ts +43 -0
  70. package/dist/cli/commands/cron-commands-actions.js +128 -0
  71. package/dist/cli/commands/cron-commands-schedule.d.ts +86 -0
  72. package/dist/cli/commands/cron-commands-schedule.js +151 -0
  73. package/dist/cli/commands/cron-commands.d.ts +35 -32
  74. package/dist/cli/commands/cron-commands.js +167 -211
  75. package/dist/cli/commands/cron-scheduler-commands.js +40 -20
  76. package/dist/cli/commands/cron-scheduler-persist.d.ts +110 -0
  77. package/dist/cli/commands/cron-scheduler-persist.js +171 -0
  78. package/dist/cli/commands/dashboard-long-run.js +45 -14
  79. package/dist/cli/commands/dashboard-summary.js +15 -5
  80. package/dist/cli/commands/dispatch-commands.js +65 -32
  81. package/dist/cli/commands/dispatch-from-dag.js +9 -10
  82. package/dist/cli/commands/doc-commands.js +8 -9
  83. package/dist/cli/commands/doctor/invoke-from-code.js +1 -1
  84. package/dist/cli/commands/e2e-verify-env.d.ts +19 -0
  85. package/dist/cli/commands/e2e-verify-env.js +19 -0
  86. package/dist/cli/commands/e2e-verify.d.ts +3 -14
  87. package/dist/cli/commands/e2e-verify.js +49 -29
  88. package/dist/cli/commands/ecc-commands.d.ts +18 -23
  89. package/dist/cli/commands/ecc-commands.js +39 -36
  90. package/dist/cli/commands/evidence-commands.js +10 -6
  91. package/dist/cli/commands/evolution-commands.d.ts +2 -2
  92. package/dist/cli/commands/evolution-commands.js +109 -115
  93. package/dist/cli/commands/feedback-commands-helpers.d.ts +22 -0
  94. package/dist/cli/commands/feedback-commands-helpers.js +33 -0
  95. package/dist/cli/commands/feedback-commands.js +15 -38
  96. package/dist/cli/commands/final-review-commands.d.ts +1 -1
  97. package/dist/cli/commands/final-review-commands.js +24 -22
  98. package/dist/cli/commands/fixture-commands.d.ts +1 -1
  99. package/dist/cli/commands/fixture-commands.js +17 -6
  100. package/dist/cli/commands/fork-commands-sync-verify.d.ts +12 -0
  101. package/dist/cli/commands/fork-commands-sync-verify.js +72 -0
  102. package/dist/cli/commands/fork-commands.js +19 -51
  103. package/dist/cli/commands/fresh-context-commands.js +3 -1
  104. package/dist/cli/commands/gate-commands-enforce.d.ts +82 -0
  105. package/dist/cli/commands/gate-commands-enforce.js +210 -0
  106. package/dist/cli/commands/gate-commands.d.ts +1 -1
  107. package/dist/cli/commands/gate-commands.js +85 -205
  108. package/dist/cli/commands/governance-classify-contract-commands.d.ts +1 -1
  109. package/dist/cli/commands/governance-classify-contract-commands.js +28 -17
  110. package/dist/cli/commands/heartbeat-commands-action.d.ts +7 -0
  111. package/dist/cli/commands/heartbeat-commands-action.js +192 -0
  112. package/dist/cli/commands/heartbeat-commands-validation.d.ts +57 -0
  113. package/dist/cli/commands/heartbeat-commands-validation.js +120 -0
  114. package/dist/cli/commands/heartbeat-commands.d.ts +27 -6
  115. package/dist/cli/commands/heartbeat-commands.js +19 -198
  116. package/dist/cli/commands/hook-handle.d.ts +1 -1
  117. package/dist/cli/commands/hook-handle.js +46 -13
  118. package/dist/cli/commands/hooks-commands.d.ts +1 -1
  119. package/dist/cli/commands/hooks-commands.js +18 -6
  120. package/dist/cli/commands/ide-commands.d.ts +1 -1
  121. package/dist/cli/commands/ide-commands.js +5 -3
  122. package/dist/cli/commands/impact-commands.js +8 -2
  123. package/dist/cli/commands/job-add-slice-command.d.ts +43 -0
  124. package/dist/cli/commands/job-add-slice-command.js +151 -0
  125. package/dist/cli/commands/job-commands.d.ts +64 -0
  126. package/dist/cli/commands/job-commands.js +134 -63
  127. package/dist/cli/commands/lease-metrics-commands-support.d.ts +73 -0
  128. package/dist/cli/commands/lease-metrics-commands-support.js +67 -0
  129. package/dist/cli/commands/lease-metrics-commands.d.ts +3 -44
  130. package/dist/cli/commands/lease-metrics-commands.js +21 -61
  131. package/dist/cli/commands/lease-stats-commands.d.ts +1 -1
  132. package/dist/cli/commands/lease-stats-commands.js +9 -6
  133. package/dist/cli/commands/lint-commands.d.ts +9 -3
  134. package/dist/cli/commands/lint-commands.js +15 -8
  135. package/dist/cli/commands/log-commands.d.ts +1 -1
  136. package/dist/cli/commands/log-commands.js +8 -6
  137. package/dist/cli/commands/loop-commands.d.ts +1 -1
  138. package/dist/cli/commands/loop-commands.js +50 -50
  139. package/dist/cli/commands/loop-eval-commands.d.ts +1 -1
  140. package/dist/cli/commands/loop-eval-commands.js +101 -30
  141. package/dist/cli/commands/memory-commands.js +21 -13
  142. package/dist/cli/commands/migrate-1-4-1-command.js +1 -1
  143. package/dist/cli/commands/migrate-v2-10-to-v2-11-command.js +2 -2
  144. package/dist/cli/commands/mut-commands-helpers.d.ts +30 -0
  145. package/dist/cli/commands/mut-commands-helpers.js +43 -0
  146. package/dist/cli/commands/mut-commands.js +16 -58
  147. package/dist/cli/commands/observability-commands-queries.d.ts +37 -0
  148. package/dist/cli/commands/observability-commands-queries.js +113 -0
  149. package/dist/cli/commands/observability-commands.d.ts +1 -1
  150. package/dist/cli/commands/observability-commands.js +7 -92
  151. package/dist/cli/commands/openspec-commands.d.ts +1 -1
  152. package/dist/cli/commands/openspec-commands.js +20 -8
  153. package/dist/cli/commands/outer-cache-commands.js +18 -7
  154. package/dist/cli/commands/perf-audit-commands.d.ts +1 -1
  155. package/dist/cli/commands/perf-audit-commands.js +12 -7
  156. package/dist/cli/commands/perf-commands.d.ts +1 -1
  157. package/dist/cli/commands/perf-commands.js +5 -5
  158. package/dist/cli/commands/playwright-commands.d.ts +1 -1
  159. package/dist/cli/commands/playwright-commands.js +20 -8
  160. package/dist/cli/commands/polyrepo-commands.js +21 -19
  161. package/dist/cli/commands/prd-blocks-commands.js +1 -3
  162. package/dist/cli/commands/prd-commands.d.ts +1 -1
  163. package/dist/cli/commands/prd-commands.js +16 -6
  164. package/dist/cli/commands/preferences-commands.js +13 -12
  165. package/dist/cli/commands/primer-command.js +5 -5
  166. package/dist/cli/commands/project-commands.d.ts +1 -1
  167. package/dist/cli/commands/project-commands.js +33 -9
  168. package/dist/cli/commands/qa-business-review-commands.js +16 -12
  169. package/dist/cli/commands/qa-commands.d.ts +1 -1
  170. package/dist/cli/commands/qa-commands.js +3 -5
  171. package/dist/cli/commands/release-commands.d.ts +3 -1
  172. package/dist/cli/commands/release-commands.js +33 -22
  173. package/dist/cli/commands/request-commands.js +47 -30
  174. package/dist/cli/commands/request-format-helpers.js +1 -1
  175. package/dist/cli/commands/retrospective-commands.d.ts +18 -11
  176. package/dist/cli/commands/retrospective-commands.js +24 -173
  177. package/dist/cli/commands/retrospective-index-command.d.ts +26 -0
  178. package/dist/cli/commands/retrospective-index-command.js +99 -0
  179. package/dist/cli/commands/retrospective-project-root.d.ts +9 -0
  180. package/dist/cli/commands/retrospective-project-root.js +15 -0
  181. package/dist/cli/commands/retrospective-search-command.d.ts +27 -0
  182. package/dist/cli/commands/retrospective-search-command.js +97 -0
  183. package/dist/cli/commands/retrospective-show-command.d.ts +23 -0
  184. package/dist/cli/commands/retrospective-show-command.js +80 -0
  185. package/dist/cli/commands/reviewer-commands.d.ts +1 -1
  186. package/dist/cli/commands/role-commands.js +14 -9
  187. package/dist/cli/commands/runtime-commands.js +14 -7
  188. package/dist/cli/commands/sc-commands.d.ts +1 -1
  189. package/dist/cli/commands/sc-commands.js +39 -6
  190. package/dist/cli/commands/scan-commands.js +36 -13
  191. package/dist/cli/commands/security-audit-commands.d.ts +1 -1
  192. package/dist/cli/commands/security-audit-commands.js +12 -7
  193. package/dist/cli/commands/sediment-commands.d.ts +2 -2
  194. package/dist/cli/commands/sediment-commands.js +146 -139
  195. package/dist/cli/commands/session-24h-mode.js +15 -2
  196. package/dist/cli/commands/session-checkpoint-command.js +1 -1
  197. package/dist/cli/commands/session-migrate-skill-name.js +1 -1
  198. package/dist/cli/commands/shadcn-commands.d.ts +1 -1
  199. package/dist/cli/commands/shadcn-commands.js +3 -1
  200. package/dist/cli/commands/share-commands.js +38 -39
  201. package/dist/cli/commands/skill-conformance-commands.d.ts +1 -1
  202. package/dist/cli/commands/skill-conformance-commands.js +1 -1
  203. package/dist/cli/commands/skill-loop-engineering-readiness-commands.js +16 -17
  204. package/dist/cli/commands/skill-visibility.js +2 -2
  205. package/dist/cli/commands/slice-commands.d.ts +1 -1
  206. package/dist/cli/commands/slice-commands.js +36 -12
  207. package/dist/cli/commands/slice-integrate-commands.js +6 -7
  208. package/dist/cli/commands/slice-review-commands-helpers.d.ts +26 -0
  209. package/dist/cli/commands/slice-review-commands-helpers.js +26 -0
  210. package/dist/cli/commands/slice-review-commands.js +16 -24
  211. package/dist/cli/commands/smoke-commands-add-path.d.ts +14 -0
  212. package/dist/cli/commands/smoke-commands-add-path.js +39 -0
  213. package/dist/cli/commands/smoke-commands-define.d.ts +18 -0
  214. package/dist/cli/commands/smoke-commands-define.js +97 -0
  215. package/dist/cli/commands/smoke-commands-run.d.ts +18 -0
  216. package/dist/cli/commands/smoke-commands-run.js +119 -0
  217. package/dist/cli/commands/smoke-commands.d.ts +10 -1
  218. package/dist/cli/commands/smoke-commands.js +17 -179
  219. package/dist/cli/commands/sop-commands.d.ts +1 -1
  220. package/dist/cli/commands/sop-commands.js +38 -10
  221. package/dist/cli/commands/statusline-commands.d.ts +1 -1
  222. package/dist/cli/commands/statusline-commands.js +21 -10
  223. package/dist/cli/commands/sub-agent/detached.js +3 -3
  224. package/dist/cli/commands/sub-agent-dispatch-guard.d.ts +1 -1
  225. package/dist/cli/commands/sub-agent-shared.js +1 -1
  226. package/dist/cli/commands/sub-agent-shutdown-commands.js +17 -9
  227. package/dist/cli/commands/swarm-commands.d.ts +1 -1
  228. package/dist/cli/commands/swarm-commands.js +13 -6
  229. package/dist/cli/commands/tech-commands-helpers.d.ts +37 -0
  230. package/dist/cli/commands/tech-commands-helpers.js +24 -0
  231. package/dist/cli/commands/tech-commands.d.ts +2 -29
  232. package/dist/cli/commands/tech-commands.js +15 -28
  233. package/dist/cli/commands/test-commands.js +27 -7
  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 +8 -10
  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 +10 -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/enforcers/active-skill-resolver.js +15 -7
  300. package/dist/services/audit/enforcers/design-draft-confirm.js +4 -4
  301. package/dist/services/audit/enforcers/lint-audit-regression.js +10 -5
  302. package/dist/services/audit/enforcers/lint-bee-runtime-contract.js +16 -8
  303. package/dist/services/audit/enforcers/lint-catalog-governance.js +8 -4
  304. package/dist/services/audit/enforcers/lint-output-style.js +4 -2
  305. package/dist/services/audit/enforcers/lint-peaks-code-runtime.js +8 -3
  306. package/dist/services/audit/enforcers/lint-peaks-skill-runtime.js +8 -3
  307. package/dist/services/audit/enforcers/lint-peaks-ui-sc-txt-runtime.js +20 -20
  308. package/dist/services/audit/enforcers/lint-prd-artifact-handoff.js +5 -5
  309. package/dist/services/audit/enforcers/lint-prd-source-snapshot.d.ts +1 -1
  310. package/dist/services/audit/enforcers/lint-prd-source-snapshot.js +5 -5
  311. package/dist/services/audit/enforcers/lint-qa-gateguard-and-runtime.js +10 -10
  312. package/dist/services/audit/enforcers/lint-rd-handoff-coverage.js +10 -8
  313. package/dist/services/audit/enforcers/lint-reference-shape.js +50 -18
  314. package/dist/services/audit/enforcers/lint-skill-presence-mandatory.js +5 -5
  315. package/dist/services/audit/enforcers/lint-style.js +44 -11
  316. package/dist/services/audit/enforcers/lint-workflow-shape.js +4 -2
  317. package/dist/services/audit/enforcers/login-gate.js +2 -6
  318. package/dist/services/audit/enforcers/mock-placement.js +2 -2
  319. package/dist/services/audit/enforcers/no-root-pollution.js +38 -9
  320. package/dist/services/audit/enforcers/pre-rd-scan.js +1 -1
  321. package/dist/services/audit/enforcers/prototype-fidelity.js +1 -1
  322. package/dist/services/audit/enforcers/resume-detection.js +5 -4
  323. package/dist/services/audit/prose-ratio-calculator.js +1 -1
  324. package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.d.ts +39 -0
  325. package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.js +205 -0
  326. package/dist/services/audit/red-line-catalog-p2-a-lint-style.d.ts +52 -0
  327. package/dist/services/audit/red-line-catalog-p2-a-lint-style.js +205 -0
  328. package/dist/services/audit/red-line-catalog-p2-a.js +3 -374
  329. package/dist/services/audit/red-line-catalog-p2-b.js +26 -26
  330. package/dist/services/audit/red-line-catalog.js +26 -38
  331. package/dist/services/audit/red-lines-service.js +64 -49
  332. package/dist/services/audit/scanners/openspec-scanner.js +2 -2
  333. package/dist/services/audit/scanners/rules-tree-scanner.js +2 -2
  334. package/dist/services/audit/scanners/skills-tree-scanner.js +2 -2
  335. package/dist/services/audit/static-service.js +3 -3
  336. package/dist/services/audit-independent/index.d.ts +2 -2
  337. package/dist/services/audit-independent/index.js +2 -2
  338. package/dist/services/audit-independent/perf-audit-service.js +19 -8
  339. package/dist/services/audit-independent/security-audit-service.js +31 -16
  340. package/dist/services/autonomous-swarm/autonomous-swarm-service.js +75 -46
  341. package/dist/services/best-practice/output-formatter.js +7 -1
  342. package/dist/services/capability-audit-service/cross-check.js +11 -5
  343. package/dist/services/capability-audit-service/runner.js +15 -7
  344. package/dist/services/capability-baseline/store.js +16 -4
  345. package/dist/services/capability-baseline/types.js +15 -3
  346. package/dist/services/capability-baseline/validator.js +43 -7
  347. package/dist/services/capability-guard-runner/contracts/J02.js +36 -6
  348. package/dist/services/capability-guard-runner/contracts/J03.js +20 -11
  349. package/dist/services/capability-guard-runner/contracts/J04.js +24 -15
  350. package/dist/services/capability-guard-runner/contracts/J05.js +26 -10
  351. package/dist/services/capability-guard-runner/contracts/J07.js +8 -2
  352. package/dist/services/capability-guard-runner/contracts/J08.js +22 -5
  353. package/dist/services/capability-guard-runner/contracts/J10.js +6 -2
  354. package/dist/services/capability-guard-runner/contracts/J11.d.ts +5 -0
  355. package/dist/services/capability-guard-runner/contracts/J11.js +14 -2
  356. package/dist/services/capability-guard-runner/contracts/J12.js +12 -3
  357. package/dist/services/capability-guard-runner/diff.js +1 -5
  358. package/dist/services/changeset/changeset-check-service.js +1 -3
  359. package/dist/services/classify/classify-service.js +20 -8
  360. package/dist/services/classify/classify-types.js +22 -9
  361. package/dist/services/code/auto-compact-lifecycle.js +62 -39
  362. package/dist/services/code/auto-compact-modes.js +2 -2
  363. package/dist/services/code/auto-compact-orchestrator.js +14 -9
  364. package/dist/services/code/batch-heartbeat-poller.d.ts +10 -0
  365. package/dist/services/code/batch-heartbeat-poller.js +17 -1
  366. package/dist/services/code/compact-event-settle-types.d.ts +80 -0
  367. package/dist/services/code/compact-event-settle-types.js +20 -0
  368. package/dist/services/code/compact-event-settle.d.ts +3 -68
  369. package/dist/services/code/compact-event-settle.js +14 -10
  370. package/dist/services/code/dag-orchestrator.js +32 -26
  371. package/dist/services/code/job-shape-decision.js +3 -1
  372. package/dist/services/code/mode-gate-types.d.ts +57 -0
  373. package/dist/services/code/mode-gate-types.js +66 -0
  374. package/dist/services/code/mode-gate.d.ts +4 -58
  375. package/dist/services/code/mode-gate.js +25 -69
  376. package/dist/services/code/orchestrator-can-do-advisories.d.ts +30 -0
  377. package/dist/services/code/orchestrator-can-do-advisories.js +81 -0
  378. package/dist/services/code/orchestrator-can-do-probes.d.ts +30 -0
  379. package/dist/services/code/orchestrator-can-do-probes.js +77 -0
  380. package/dist/services/code/orchestrator-can-do.d.ts +11 -22
  381. package/dist/services/code/orchestrator-can-do.js +37 -137
  382. package/dist/services/code/post-compact-checkpoint.d.ts +28 -0
  383. package/dist/services/code/post-compact-checkpoint.js +57 -0
  384. package/dist/services/code/post-compact-detector.js +16 -48
  385. package/dist/services/code/step-08-gate.d.ts +4 -3
  386. package/dist/services/code/step-08-gate.js +21 -9
  387. package/dist/services/code/user-touchpoint-classifier.js +0 -7
  388. package/dist/services/code-review/ecc-bridge.d.ts +6 -6
  389. package/dist/services/code-review/ecc-bridge.js +23 -23
  390. package/dist/services/codegraph/codegraph-autorefresh.js +56 -39
  391. package/dist/services/codegraph/codegraph-config-repair-writer.js +4 -1
  392. package/dist/services/codegraph/codegraph-exclude-integrity.js +4 -1
  393. package/dist/services/codegraph/codegraph-exclude-repair.js +1 -2
  394. package/dist/services/codegraph/codegraph-index-integrity.js +1 -1
  395. package/dist/services/codegraph/codegraph-preflight-service.d.ts +3 -26
  396. package/dist/services/codegraph/codegraph-preflight-service.js +16 -37
  397. package/dist/services/codegraph/codegraph-preflight-structure.d.ts +32 -0
  398. package/dist/services/codegraph/codegraph-preflight-structure.js +33 -0
  399. package/dist/services/codegraph/codegraph-process-runner.js +12 -1
  400. package/dist/services/codegraph/codegraph-service.js +9 -1
  401. package/dist/services/comments/citation-rules.d.ts +154 -0
  402. package/dist/services/comments/citation-rules.js +241 -0
  403. package/dist/services/comments/comment-audit.d.ts +57 -0
  404. package/dist/services/comments/comment-audit.js +100 -0
  405. package/dist/services/comments/comment-citations.d.ts +60 -0
  406. package/dist/services/comments/comment-citations.js +186 -0
  407. package/dist/services/comments/comment-hygiene.d.ts +79 -0
  408. package/dist/services/comments/comment-hygiene.js +133 -0
  409. package/dist/services/comments/comment-prune.d.ts +88 -0
  410. package/dist/services/comments/comment-prune.js +148 -0
  411. package/dist/services/comments/prune-apply.d.ts +60 -0
  412. package/dist/services/comments/prune-apply.js +150 -0
  413. package/dist/services/comments/repo-path-probe.d.ts +43 -0
  414. package/dist/services/comments/repo-path-probe.js +78 -0
  415. package/dist/services/compact/request-transition-hook.js +2 -1
  416. package/dist/services/compact/suggest-service.d.ts +3 -61
  417. package/dist/services/compact/suggest-service.js +9 -12
  418. package/dist/services/compact/suggest-types.d.ts +76 -0
  419. package/dist/services/compact/suggest-types.js +10 -0
  420. package/dist/services/compact-history/compact-history-service.js +2 -2
  421. package/dist/services/compact-statusline/compact-lifecycle-store.d.ts +2 -32
  422. package/dist/services/compact-statusline/compact-lifecycle-store.js +7 -12
  423. package/dist/services/compact-statusline/compact-lifecycle-types.d.ts +32 -0
  424. package/dist/services/compact-statusline/compact-lifecycle-types.js +8 -0
  425. package/dist/services/compact-statusline/compact-statusline-cell-table.d.ts +42 -0
  426. package/dist/services/compact-statusline/compact-statusline-cell-table.js +63 -0
  427. package/dist/services/compact-statusline/compact-statusline-service.d.ts +4 -21
  428. package/dist/services/compact-statusline/compact-statusline-service.js +9 -101
  429. package/dist/services/compact-statusline/compact-statusline-state.d.ts +4 -0
  430. package/dist/services/compact-statusline/compact-statusline-state.js +50 -0
  431. package/dist/services/config/config-migration.js +2 -2
  432. package/dist/services/config/config-restore.js +1 -1
  433. package/dist/services/config/config-rollback.js +1 -1
  434. package/dist/services/config/config-safety.js +28 -10
  435. package/dist/services/config/config-service.js +114 -31
  436. package/dist/services/config/model-routing.js +5 -2
  437. package/dist/services/config/proxy-service.js +6 -1
  438. package/dist/services/config/workspace-state-service.js +17 -5
  439. package/dist/services/context/auto-compact-dispatcher-input.d.ts +38 -0
  440. package/dist/services/context/auto-compact-dispatcher-input.js +9 -0
  441. package/dist/services/context/auto-compact-dispatcher.d.ts +2 -30
  442. package/dist/services/context/auto-compact-reader-input.d.ts +30 -0
  443. package/dist/services/context/auto-compact-reader-input.js +8 -0
  444. package/dist/services/context/auto-compact-reader.d.ts +2 -24
  445. package/dist/services/context/auto-compact-reader.js +4 -1
  446. package/dist/services/context/auto-compact-thresholds.d.ts +54 -0
  447. package/dist/services/context/auto-compact-thresholds.js +19 -0
  448. package/dist/services/context/auto-compact-types.d.ts +2 -46
  449. package/dist/services/context/auto-compact-types.js +1 -11
  450. package/dist/services/context/build-dispatch-system-prompt.js +2 -2
  451. package/dist/services/context/collector.js +8 -10
  452. package/dist/services/context/context-audit-hint.js +7 -5
  453. package/dist/services/context/context-audit-keys.d.ts +15 -0
  454. package/dist/services/context/context-audit-keys.js +77 -0
  455. package/dist/services/context/context-audit-limits.d.ts +20 -0
  456. package/dist/services/context/context-audit-limits.js +31 -0
  457. package/dist/services/context/context-audit-scan.d.ts +19 -0
  458. package/dist/services/context/context-audit-scan.js +246 -0
  459. package/dist/services/context/context-audit-types.d.ts +65 -0
  460. package/dist/services/context/context-audit-types.js +10 -0
  461. package/dist/services/context/context-audit.d.ts +13 -59
  462. package/dist/services/context/context-audit.js +38 -254
  463. package/dist/services/context/context-builder.js +4 -4
  464. package/dist/services/context/context-schema.d.ts +1 -1
  465. package/dist/services/context/context-schema.js +13 -13
  466. package/dist/services/context/doc-retriever.js +2 -2
  467. package/dist/services/context/harness-context-witness.js +43 -24
  468. package/dist/services/context/harness-window-config.js +27 -7
  469. package/dist/services/context/ide-detect.js +2 -1
  470. package/dist/services/context/index.d.ts +1 -1
  471. package/dist/services/context/memory-index-reader.js +3 -9
  472. package/dist/services/context/memory-preflight-config.js +3 -5
  473. package/dist/services/context/memory-preflight-service.d.ts +2 -20
  474. package/dist/services/context/memory-preflight-service.js +37 -68
  475. package/dist/services/context/memory-preflight-support.d.ts +48 -0
  476. package/dist/services/context/memory-preflight-support.js +56 -0
  477. package/dist/services/context/post-compact-reinjection.js +3 -3
  478. package/dist/services/context/renderer.js +7 -3
  479. package/dist/services/context/spillover-store.js +3 -1
  480. package/dist/services/context/summary-view.js +1 -1
  481. package/dist/services/context/threshold.js +2 -2
  482. package/dist/services/context/tokenizer.js +3 -3
  483. package/dist/services/crystallization/crystallization-brief-schema.d.ts +80 -0
  484. package/dist/services/crystallization/crystallization-brief-schema.js +159 -0
  485. package/dist/services/crystallization/crystallization-service.d.ts +7 -7
  486. package/dist/services/crystallization/crystallization-service.js +56 -55
  487. package/dist/services/crystallization/crystallization-store.d.ts +2 -2
  488. package/dist/services/crystallization/crystallization-store.js +37 -20
  489. package/dist/services/crystallization/crystallization-types.d.ts +4 -56
  490. package/dist/services/crystallization/crystallization-types.js +31 -184
  491. package/dist/services/crystallization/evidence-brief-builder.d.ts +3 -3
  492. package/dist/services/crystallization/evidence-brief-builder.js +32 -38
  493. package/dist/services/crystallization/index.d.ts +4 -4
  494. package/dist/services/crystallization/index.js +4 -4
  495. package/dist/services/dashboard/project-dashboard-service.js +7 -1
  496. package/dist/services/dispatch/await-batch-helpers.d.ts +55 -0
  497. package/dist/services/dispatch/await-batch-helpers.js +206 -0
  498. package/dist/services/dispatch/await-batch.d.ts +50 -7
  499. package/dist/services/dispatch/await-batch.js +97 -194
  500. package/dist/services/dispatch/batch-counter.js +2 -1
  501. package/dist/services/dispatch/conflict-replay.js +2 -2
  502. package/dist/services/dispatch/contract-store.js +5 -2
  503. package/dist/services/dispatch/dispatch-record-input-types.d.ts +81 -0
  504. package/dist/services/dispatch/dispatch-record-input-types.js +1 -0
  505. package/dist/services/dispatch/dispatch-record-types.d.ts +6 -73
  506. package/dist/services/dispatch/dispatch-record-upgrade-fields.d.ts +72 -0
  507. package/dist/services/dispatch/dispatch-record-upgrade-fields.js +242 -0
  508. package/dist/services/dispatch/dispatch-record-upgrade-guards.d.ts +15 -0
  509. package/dist/services/dispatch/dispatch-record-upgrade-guards.js +55 -0
  510. package/dist/services/dispatch/dispatch-record-upgrade.d.ts +2 -4
  511. package/dist/services/dispatch/dispatch-record-upgrade.js +21 -213
  512. package/dist/services/dispatch/dispatch-record-writer.js +54 -26
  513. package/dist/services/dispatch/dispatch-sub-agent.js +7 -2
  514. package/dist/services/dispatch/e2e-fixtures.js +1 -1
  515. package/dist/services/dispatch/isolation-lease.js +39 -17
  516. package/dist/services/dispatch/merge-back-runner.js +51 -11
  517. package/dist/services/dispatch/service-shutdown.js +4 -1
  518. package/dist/services/dispatch/slice-dag-types.d.ts +116 -0
  519. package/dist/services/dispatch/slice-dag-types.js +41 -0
  520. package/dist/services/dispatch/slice-dag.d.ts +3 -109
  521. package/dist/services/dispatch/slice-dag.js +13 -36
  522. package/dist/services/dispatch/sub-agent-batch-await.d.ts +47 -0
  523. package/dist/services/dispatch/sub-agent-batch-await.js +73 -0
  524. package/dist/services/dispatch/sub-agent-dispatcher-types.d.ts +122 -0
  525. package/dist/services/dispatch/sub-agent-dispatcher-types.js +12 -0
  526. package/dist/services/dispatch/sub-agent-dispatcher.d.ts +3 -145
  527. package/dist/services/dispatch/sub-agent-dispatcher.js +14 -70
  528. package/dist/services/dispatch/test-tool-detection.js +12 -1
  529. package/dist/services/doc/doc-generator.js +19 -4
  530. package/dist/services/doctor/doctor-service/checks/check-id-schema.js +16 -8
  531. package/dist/services/doctor/doctor-service/checks/codegraph-capability.d.ts +7 -2
  532. package/dist/services/doctor/doctor-service/checks/codegraph-capability.js +26 -8
  533. package/dist/services/doctor/doctor-service/checks/codegraph-exclude-integrity.js +16 -8
  534. package/dist/services/doctor/doctor-service/checks/codegraph-index-integrity.js +16 -8
  535. package/dist/services/doctor/doctor-service/checks/dist-source-version.js +18 -9
  536. package/dist/services/doctor/doctor-service/checks/ecc-hooks-schema-drift.js +20 -10
  537. package/dist/services/doctor/doctor-service/checks/gateguard-conflict.js +18 -9
  538. package/dist/services/doctor/doctor-service/checks/l3-memory-health.js +25 -11
  539. package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.js +12 -6
  540. package/dist/services/doctor/doctor-service/checks/multi-binary-drift.d.ts +7 -16
  541. package/dist/services/doctor/doctor-service/checks/multi-binary-drift.js +50 -70
  542. package/dist/services/doctor/doctor-service/checks/schema-validity.js +5 -1
  543. package/dist/services/doctor/doctor-service/checks/skill-presence.js +4 -2
  544. package/dist/services/doctor/doctor-service/checks/statusline-install.js +8 -4
  545. package/dist/services/doctor/doctor-service/checks/statusline-runtime.js +8 -4
  546. package/dist/services/doctor/doctor-service/checks/user-config.js +4 -2
  547. package/dist/services/doctor/doctor-service/checks/workspace-init.js +8 -4
  548. package/dist/services/doctor/doctor-service/checks/workspace-layout.js +19 -11
  549. package/dist/services/doctor/doctor-service/index.js +4 -2
  550. package/dist/services/doctor/doctor-service/multi-binary-drift-helpers.d.ts +40 -0
  551. package/dist/services/doctor/doctor-service/multi-binary-drift-helpers.js +49 -0
  552. package/dist/services/doctor/doctor-service/plugin-registry.js +1 -1
  553. package/dist/services/doctor/doctor-service/probe-types.d.ts +210 -0
  554. package/dist/services/doctor/doctor-service/probe-types.js +14 -0
  555. package/dist/services/doctor/doctor-service/types.d.ts +7 -197
  556. package/dist/services/doctor/index.d.ts +1 -1
  557. package/dist/services/doctor/index.js +1 -1
  558. package/dist/services/env/shell-probe.js +8 -2
  559. package/dist/services/evidence/evidence-body-builders.d.ts +23 -0
  560. package/dist/services/evidence/evidence-body-builders.js +197 -0
  561. package/dist/services/evidence/evidence-generator.js +6 -187
  562. package/dist/services/evolution/evolution-constraints.d.ts +43 -0
  563. package/dist/services/evolution/evolution-constraints.js +54 -0
  564. package/dist/services/evolution/evolution-evaluation-schema.d.ts +43 -0
  565. package/dist/services/evolution/evolution-evaluation-schema.js +43 -0
  566. package/dist/services/evolution/evolution-service.d.ts +6 -6
  567. package/dist/services/evolution/evolution-service.js +58 -58
  568. package/dist/services/evolution/evolution-store.d.ts +2 -2
  569. package/dist/services/evolution/evolution-store.js +37 -51
  570. package/dist/services/evolution/evolution-types.d.ts +2 -22
  571. package/dist/services/evolution/evolution-types.js +41 -101
  572. package/dist/services/evolution/independent-evaluator-runner.d.ts +3 -3
  573. package/dist/services/evolution/independent-evaluator-runner.js +20 -22
  574. package/dist/services/evolution/regression-skeptic-runner.d.ts +2 -2
  575. package/dist/services/evolution/regression-skeptic-runner.js +18 -18
  576. package/dist/services/feedback/feedback-promotion-service.js +48 -12
  577. package/dist/services/feedback/promotion-artifact-evidence.d.ts +2 -16
  578. package/dist/services/feedback/promotion-artifact-evidence.js +6 -83
  579. package/dist/services/feedback/promotion-artifact-json-evidence.d.ts +29 -0
  580. package/dist/services/feedback/promotion-artifact-json-evidence.js +39 -0
  581. package/dist/services/feedback/promotion-source-comments.d.ts +47 -0
  582. package/dist/services/feedback/promotion-source-comments.js +61 -0
  583. package/dist/services/final-review/final-review-contract.d.ts +26 -0
  584. package/dist/services/final-review/final-review-contract.js +14 -0
  585. package/dist/services/final-review/final-review-delivery.d.ts +63 -0
  586. package/dist/services/final-review/final-review-delivery.js +124 -0
  587. package/dist/services/final-review/final-review-evidence-budget.d.ts +125 -0
  588. package/dist/services/final-review/final-review-evidence-budget.js +218 -0
  589. package/dist/services/final-review/final-review-evidence-collect.d.ts +4 -0
  590. package/dist/services/final-review/final-review-evidence-collect.js +230 -0
  591. package/dist/services/final-review/final-review-evidence-sources.d.ts +138 -0
  592. package/dist/services/final-review/final-review-evidence-sources.js +139 -0
  593. package/dist/services/final-review/final-review-fifth-dim.d.ts +8 -0
  594. package/dist/services/final-review/final-review-fifth-dim.js +20 -0
  595. package/dist/services/final-review/final-review-gates.d.ts +119 -0
  596. package/dist/services/final-review/final-review-gates.js +214 -0
  597. package/dist/services/final-review/final-review-output-budget.d.ts +88 -0
  598. package/dist/services/final-review/final-review-output-budget.js +161 -0
  599. package/dist/services/final-review/final-review-prompt.d.ts +35 -0
  600. package/dist/services/final-review/final-review-prompt.js +112 -0
  601. package/dist/services/final-review/final-review-reviewer.d.ts +57 -0
  602. package/dist/services/final-review/final-review-reviewer.js +95 -0
  603. package/dist/services/final-review/final-review-runner.d.ts +3 -0
  604. package/dist/services/final-review/final-review-runner.js +158 -0
  605. package/dist/services/final-review/final-review-service.d.ts +119 -373
  606. package/dist/services/final-review/final-review-service.js +48 -1380
  607. package/dist/services/final-review/final-review-verdicts.d.ts +60 -0
  608. package/dist/services/final-review/final-review-verdicts.js +91 -0
  609. package/dist/services/final-review/index.d.ts +3 -3
  610. package/dist/services/final-review/index.js +2 -2
  611. package/dist/services/final-review/pre-post-diff.js +32 -29
  612. package/dist/services/fixture/fixture-capture-service.js +14 -6
  613. package/dist/services/fresh-context/trigger-scan.js +13 -2
  614. package/dist/services/fuzzy-matching/fuzzy-match-service.js +1 -1
  615. package/dist/services/fuzzy-matching/fzf-pick-service.js +6 -1
  616. package/dist/services/hooks/pre-tool-code-gate.js +2 -2
  617. package/dist/services/hooks/presence-marker-detector.js +12 -2
  618. package/dist/services/hooks/worktree-authorization-gate.js +21 -7
  619. package/dist/services/ide/adapters/claude-code-adapter.js +30 -17
  620. package/dist/services/ide/adapters/codex-adapter.js +3 -5
  621. package/dist/services/ide/adapters/cursor-adapter.js +3 -5
  622. package/dist/services/ide/adapters/hermes-adapter.js +2 -4
  623. package/dist/services/ide/adapters/openclaw-adapter.js +2 -4
  624. package/dist/services/ide/adapters/qoder-adapter.js +2 -4
  625. package/dist/services/ide/adapters/tongyi-lingma-adapter.js +1 -1
  626. package/dist/services/ide/adapters/trae-adapter.js +3 -5
  627. package/dist/services/ide/adapters/zcode-adapter.js +8 -7
  628. package/dist/services/ide/current-model-detector.js +2 -1
  629. package/dist/services/ide/ide-compact-types.d.ts +153 -0
  630. package/dist/services/ide/ide-compact-types.js +1 -0
  631. package/dist/services/ide/ide-registry.js +1 -1
  632. package/dist/services/ide/ide-types.d.ts +7 -145
  633. package/dist/services/ide/resource-profile.js +1 -1
  634. package/dist/services/ide/shared/atomic-json.js +2 -1
  635. package/dist/services/impact/impact-scan-service.js +12 -5
  636. package/dist/services/job/job-commit-verification.d.ts +73 -0
  637. package/dist/services/job/job-commit-verification.js +72 -0
  638. package/dist/services/job/job-orchestrator.d.ts +42 -0
  639. package/dist/services/job/job-orchestrator.js +110 -10
  640. package/dist/services/job/job-progress-store.d.ts +75 -5
  641. package/dist/services/job/job-progress-store.js +83 -6
  642. package/dist/services/job/job-rotation.d.ts +1 -1
  643. package/dist/services/job/job-rotation.js +5 -1
  644. package/dist/services/job/job-state-store.js +2 -2
  645. package/dist/services/job/job-types.js +49 -20
  646. package/dist/services/job/subagent-job-wrapper.d.ts +1 -1
  647. package/dist/services/job/subagent-job-wrapper.js +5 -1
  648. package/dist/services/job-snapshot/snapshot.js +2 -2
  649. package/dist/services/karpathy-cost/karpathy-cost-check-service.js +23 -13
  650. package/dist/services/legacy/legacy-detector.js +51 -5
  651. package/dist/services/lint/detect-eslint.js +10 -4
  652. package/dist/services/lint/detect-ocr-18.js +11 -3
  653. package/dist/services/lint/eslint-runner-support.d.ts +22 -0
  654. package/dist/services/lint/eslint-runner-support.js +185 -0
  655. package/dist/services/lint/eslint-runner-types.d.ts +69 -0
  656. package/dist/services/lint/eslint-runner-types.js +11 -0
  657. package/dist/services/lint/eslint-runner.d.ts +4 -56
  658. package/dist/services/lint/eslint-runner.js +24 -178
  659. package/dist/services/lint/npx-resolver.js +1 -3
  660. package/dist/services/lint/ocr-18-acquire.js +15 -4
  661. package/dist/services/lint/ocr-multilang-adapter.js +4 -5
  662. package/dist/services/llm/anthropic-runner.js +4 -1
  663. package/dist/services/log/log-commands-service.js +2 -6
  664. package/dist/services/log/logger.js +15 -12
  665. package/dist/services/log/retention.d.ts +0 -16
  666. package/dist/services/log/retention.js +2 -18
  667. package/dist/services/loop/evaluator-dispatcher.js +78 -42
  668. package/dist/services/loop/loop-bee-relation-service.d.ts +4 -4
  669. package/dist/services/loop/loop-bee-relation-service.js +36 -40
  670. package/dist/services/loop/loop-bee-relation-store.d.ts +3 -3
  671. package/dist/services/loop/loop-bee-relation-store.js +9 -11
  672. package/dist/services/loop/loop-bee-relation-types.d.ts +1 -1
  673. package/dist/services/loop/loop-bee-relation-types.js +14 -25
  674. package/dist/services/loop/loop-release-service.d.ts +2 -2
  675. package/dist/services/loop/loop-release-service.js +3 -3
  676. package/dist/services/loop/loop-release-store.d.ts +2 -2
  677. package/dist/services/loop/loop-release-store.js +4 -6
  678. package/dist/services/loop/loop-release-types.d.ts +1 -1
  679. package/dist/services/loop/loop-release-types.js +21 -31
  680. package/dist/services/loop/monotonic-guard-types.d.ts +51 -0
  681. package/dist/services/loop/monotonic-guard-types.js +9 -0
  682. package/dist/services/loop/monotonic-guard.d.ts +2 -43
  683. package/dist/services/loop/monotonic-runner-types.d.ts +63 -0
  684. package/dist/services/loop/monotonic-runner-types.js +17 -0
  685. package/dist/services/loop/monotonic-runner.d.ts +3 -34
  686. package/dist/services/loop/monotonic-runner.js +10 -20
  687. package/dist/services/loop/run-driver.js +16 -8
  688. package/dist/services/loop/spec-service.d.ts +0 -5
  689. package/dist/services/loop/spec-service.js +49 -9
  690. package/dist/services/memory/llm-reranker-core.d.ts +108 -0
  691. package/dist/services/memory/llm-reranker-core.js +105 -0
  692. package/dist/services/memory/llm-reranker.d.ts +3 -94
  693. package/dist/services/memory/llm-reranker.js +13 -102
  694. package/dist/services/memory/memory-ingest-service.d.ts +1 -22
  695. package/dist/services/memory/memory-ingest-service.js +29 -76
  696. package/dist/services/memory/memory-ingest-support.d.ts +23 -0
  697. package/dist/services/memory/memory-ingest-support.js +81 -0
  698. package/dist/services/memory/memory-rotate-service.js +41 -8
  699. package/dist/services/memory/memory-search-service.js +8 -4
  700. package/dist/services/memory/project-context-service.js +26 -5
  701. package/dist/services/memory/project-memory-service/index/kind-dispatch.d.ts +2 -7
  702. package/dist/services/memory/project-memory-service/index/kind-dispatch.js +17 -136
  703. package/dist/services/memory/project-memory-service/index/project-memory-plan-exec.d.ts +7 -0
  704. package/dist/services/memory/project-memory-service/index/project-memory-plan-exec.js +150 -0
  705. package/dist/services/memory/project-memory-service/index/ranking.js +6 -3
  706. package/dist/services/memory/project-memory-service/index/reindex.js +14 -5
  707. package/dist/services/memory/project-memory-service/index.d.ts +1 -1
  708. package/dist/services/memory/project-memory-service/index.js +1 -1
  709. package/dist/services/memory/project-memory-service/memory-kinds.d.ts +31 -0
  710. package/dist/services/memory/project-memory-service/memory-kinds.js +87 -0
  711. package/dist/services/memory/project-memory-service/parsers/frontmatter-parse.d.ts +24 -0
  712. package/dist/services/memory/project-memory-service/parsers/frontmatter-parse.js +104 -0
  713. package/dist/services/memory/project-memory-service/parsers/frontmatter.d.ts +2 -24
  714. package/dist/services/memory/project-memory-service/parsers/frontmatter.js +28 -79
  715. package/dist/services/memory/project-memory-service/parsers/markdown-pure.js +15 -3
  716. package/dist/services/memory/project-memory-service/store/atomic-write.d.ts +19 -7
  717. package/dist/services/memory/project-memory-service/store/atomic-write.js +144 -38
  718. package/dist/services/memory/project-memory-service/store/paths.js +2 -1
  719. package/dist/services/memory/project-memory-service/types.d.ts +3 -31
  720. package/dist/services/memory/project-memory-service/types.js +1 -76
  721. package/dist/services/migrate-skill-name/migrate.js +1 -1
  722. package/dist/services/migrate-skill-name/schema.js +1 -1
  723. package/dist/services/mode/mode-enforcement.js +4 -2
  724. package/dist/services/mode/mode-status-service.d.ts +27 -9
  725. package/dist/services/mode/mode-status-service.js +64 -12
  726. package/dist/services/observability/aggregation-helpers.d.ts +22 -0
  727. package/dist/services/observability/aggregation-helpers.js +65 -0
  728. package/dist/services/observability/aggregation-types.d.ts +66 -0
  729. package/dist/services/observability/aggregation-types.js +34 -0
  730. package/dist/services/observability/aggregation.d.ts +5 -53
  731. package/dist/services/observability/aggregation.js +17 -80
  732. package/dist/services/observability/jsonl-store.js +2 -1
  733. package/dist/services/observability/observability-schema.d.ts +71 -0
  734. package/dist/services/observability/observability-schema.js +64 -0
  735. package/dist/services/observability/observability-service.d.ts +3 -56
  736. package/dist/services/observability/observability-service.js +9 -49
  737. package/dist/services/openspec/coverage-evidence-reader.js +18 -11
  738. package/dist/services/openspec/openspec-archive-service.js +31 -24
  739. package/dist/services/openspec/openspec-init-service.js +8 -2
  740. package/dist/services/openspec/openspec-propose-from-doctor-service.js +1 -1
  741. package/dist/services/openspec/openspec-scan-service.js +4 -1
  742. package/dist/services/openspec/openspec-validate-service.js +26 -5
  743. package/dist/services/perf/perf-baseline-service.js +2 -6
  744. package/dist/services/polyrepo/polyrepo-dispatcher.js +2 -1
  745. package/dist/services/polyrepo/polyrepo-scanner.js +4 -1
  746. package/dist/services/prd/handoff-frontmatter-shape.d.ts +42 -0
  747. package/dist/services/prd/handoff-frontmatter-shape.js +67 -0
  748. package/dist/services/prd/handoff-frontmatter.js +62 -1
  749. package/dist/services/prd/handoff-gate-evidence.js +14 -10
  750. package/dist/services/prd/handoff-path-resolution.d.ts +37 -0
  751. package/dist/services/prd/handoff-path-resolution.js +101 -0
  752. package/dist/services/prd/handoff-service.d.ts +12 -38
  753. package/dist/services/prd/handoff-service.js +25 -147
  754. package/dist/services/prd/handoff-types.d.ts +33 -1
  755. package/dist/services/prd/prd-blocks-checker.js +28 -8
  756. package/dist/services/prd/project-scan-bootstrap-service.js +1 -5
  757. package/dist/services/prd/project-scan-reader.js +1 -4
  758. package/dist/services/prd/project-scan-sediment.js +1 -4
  759. package/dist/services/preferences/preferences-service.js +6 -8
  760. package/dist/services/preferences/preferences-types.js +4 -4
  761. package/dist/services/qa/bdd-test-style-contract.d.ts +41 -0
  762. package/dist/services/qa/bdd-test-style-contract.js +37 -0
  763. package/dist/services/qa/bdd-test-style-verifier.d.ts +2 -24
  764. package/dist/services/qa/bdd-test-style-verifier.js +5 -31
  765. package/dist/services/qa/browser-event-logger.js +2 -1
  766. package/dist/services/qa/qa-business-review-state.js +20 -5
  767. package/dist/services/qa/screenshot-archive-service.js +1 -3
  768. package/dist/services/rd/ast-gate.js +2 -2
  769. package/dist/services/rd/impl.js +1 -1
  770. package/dist/services/rd/rd-service.js +117 -43
  771. package/dist/services/rd/reviewer-dispatch-policy.js +4 -7
  772. package/dist/services/rd/standards-diagnostic.js +4 -1
  773. package/dist/services/rd/strategy.js +10 -3
  774. package/dist/services/rd/tactical-stage.js +2 -2
  775. package/dist/services/rd/types.js +9 -7
  776. package/dist/services/rd-swarm/rd-swarm-service.d.ts +2 -45
  777. package/dist/services/rd-swarm/rd-swarm-service.js +140 -21
  778. package/dist/services/rd-swarm/rd-swarm-types.d.ts +54 -0
  779. package/dist/services/rd-swarm/rd-swarm-types.js +10 -0
  780. package/dist/services/recommendations/capability-map-service.js +10 -2
  781. package/dist/services/recommendations/capability-seed-items.js +81 -14
  782. package/dist/services/recommendations/capability-seed-mappings.js +420 -48
  783. package/dist/services/recommendations/capability-seed-sources-mcp-server.d.ts +9 -0
  784. package/dist/services/recommendations/capability-seed-sources-mcp-server.js +233 -0
  785. package/dist/services/recommendations/capability-seed-sources.js +127 -32
  786. package/dist/services/recommendations/installed-capability-detector.d.ts +5 -5
  787. package/dist/services/recommendations/installed-capability-detector.js +11 -10
  788. package/dist/services/release/release-state.d.ts +2 -2
  789. package/dist/services/release/release-state.js +44 -15
  790. package/dist/services/release/version-precheck-layer-changeset.d.ts +2 -0
  791. package/dist/services/release/version-precheck-layer-changeset.js +43 -0
  792. package/dist/services/release/version-precheck-service.d.ts +11 -36
  793. package/dist/services/release/version-precheck-service.js +20 -104
  794. package/dist/services/release/version-precheck-support.d.ts +53 -0
  795. package/dist/services/release/version-precheck-support.js +64 -0
  796. package/dist/services/retrospective/retrospective-index.js +17 -3
  797. package/dist/services/retrospective/retrospective-search-service.js +6 -2
  798. package/dist/services/retrospective/retrospective-show.js +4 -1
  799. package/dist/services/reviewer/model-family.js +7 -1
  800. package/dist/services/reviewer/providers/anthropic.d.ts +5 -0
  801. package/dist/services/reviewer/providers/anthropic.js +10 -1
  802. package/dist/services/reviewer/providers/openai.d.ts +5 -0
  803. package/dist/services/reviewer/providers/openai.js +10 -1
  804. package/dist/services/reviewer/reviewer-config.js +4 -2
  805. package/dist/services/reviewer/reviewer-service.d.ts +2 -36
  806. package/dist/services/reviewer/reviewer-service.js +2 -1
  807. package/dist/services/reviewer/reviewer-types.d.ts +43 -0
  808. package/dist/services/reviewer/reviewer-types.js +1 -0
  809. package/dist/services/role/role-registry.js +9 -1
  810. package/dist/services/runtime/runtime-detector.js +4 -1
  811. package/dist/services/runtime/vendors/claude-code.js +14 -6
  812. package/dist/services/runtime/vendors/codex.js +11 -3
  813. package/dist/services/runtime/vendors/copilot.js +11 -3
  814. package/dist/services/sc/sc-service.js +28 -15
  815. package/dist/services/scan/acceptance-coverage-service.js +4 -1
  816. package/dist/services/scan/api-diff-openapi-schema-read.d.ts +67 -0
  817. package/dist/services/scan/api-diff-openapi-schema-read.js +154 -0
  818. package/dist/services/scan/api-diff-openapi.d.ts +16 -2
  819. package/dist/services/scan/api-diff-openapi.js +19 -123
  820. package/dist/services/scan/api-diff-recorded.js +16 -3
  821. package/dist/services/scan/api-diff-service.js +49 -16
  822. package/dist/services/scan/api-diff-types.js +12 -3
  823. package/dist/services/scan/api-surface-helpers.d.ts +13 -0
  824. package/dist/services/scan/api-surface-helpers.js +31 -0
  825. package/dist/services/scan/api-surface-service.d.ts +2 -45
  826. package/dist/services/scan/api-surface-service.js +15 -26
  827. package/dist/services/scan/api-surface-types.d.ts +54 -0
  828. package/dist/services/scan/api-surface-types.js +10 -0
  829. package/dist/services/scan/archetype-detection.d.ts +74 -0
  830. package/dist/services/scan/archetype-detection.js +315 -0
  831. package/dist/services/scan/archetype-service.js +58 -133
  832. package/dist/services/scan/diff-scope-service.js +35 -15
  833. package/dist/services/scan/existing-system-service.js +16 -99
  834. package/dist/services/scan/existing-system-visual-tokens.d.ts +20 -0
  835. package/dist/services/scan/existing-system-visual-tokens.js +123 -0
  836. package/dist/services/scan/file-size-policy.d.ts +86 -0
  837. package/dist/services/scan/file-size-policy.js +184 -0
  838. package/dist/services/scan/file-size-scan.d.ts +30 -3
  839. package/dist/services/scan/file-size-scan.js +47 -9
  840. package/dist/services/scan/karpathy-service.js +6 -1
  841. package/dist/services/scan/orphan-service.js +86 -20
  842. package/dist/services/scan/scan-types.d.ts +9 -0
  843. package/dist/services/scan/type-sanity-service.js +104 -10
  844. package/dist/services/sediment/dispose-confirm.d.ts +2 -2
  845. package/dist/services/sediment/dispose-confirm.js +2 -2
  846. package/dist/services/sediment/json-schema.d.ts +1 -1
  847. package/dist/services/sediment/json-schema.js +25 -13
  848. package/dist/services/sediment/manifest-lint.d.ts +1 -12
  849. package/dist/services/sediment/manifest-lint.js +1 -7
  850. package/dist/services/sediment/pool-paths.js +13 -9
  851. package/dist/services/sediment/pool-read.d.ts +1 -1
  852. package/dist/services/sediment/pool-read.js +42 -18
  853. package/dist/services/sediment/pool-rebuild-index.d.ts +1 -1
  854. package/dist/services/sediment/pool-rebuild-index.js +5 -5
  855. package/dist/services/sediment/pool-write.d.ts +1 -1
  856. package/dist/services/sediment/pool-write.js +7 -7
  857. package/dist/services/sediment/promotion-gate.d.ts +1 -1
  858. package/dist/services/sediment/promotion-gate.js +9 -9
  859. package/dist/services/sediment/types.d.ts +8 -8
  860. package/dist/services/session/binding-status-service.js +14 -4
  861. package/dist/services/session/caller-binding-service.js +2 -1
  862. package/dist/services/session/getSessionDir.js +4 -1
  863. package/dist/services/session/index.d.ts +1 -1
  864. package/dist/services/session/index.js +1 -1
  865. package/dist/services/session/resolve-caller-id.js +7 -5
  866. package/dist/services/session/session-binding-bridge.js +26 -25
  867. package/dist/services/session/session-checkpoint-service.js +1 -1
  868. package/dist/services/session/session-file-schema.d.ts +70 -0
  869. package/dist/services/session/session-file-schema.js +68 -0
  870. package/dist/services/session/session-manager.d.ts +6 -6
  871. package/dist/services/session/session-manager.js +30 -29
  872. package/dist/services/session/session-resume-service.js +2 -1
  873. package/dist/services/share/bundle-format-constants.d.ts +85 -0
  874. package/dist/services/share/bundle-format-constants.js +100 -0
  875. package/dist/services/share/bundle-reader.d.ts +3 -3
  876. package/dist/services/share/bundle-reader.js +75 -68
  877. package/dist/services/share/bundle-types.d.ts +3 -70
  878. package/dist/services/share/bundle-types.js +38 -107
  879. package/dist/services/share/bundle-writer.d.ts +3 -3
  880. package/dist/services/share/bundle-writer.js +101 -91
  881. package/dist/services/share/run-state-contract.d.ts +1 -1
  882. package/dist/services/share/run-state-contract.js +7 -13
  883. package/dist/services/signal/cancel-handler.js +2 -1
  884. package/dist/services/skill/resume-detector.js +6 -4
  885. package/dist/services/skill/skill-scheduler.js +3 -1
  886. package/dist/services/skill/skill-search-service.js +4 -4
  887. package/dist/services/skillhub/release-diff.d.ts +2 -2
  888. package/dist/services/skillhub/release-diff.js +6 -10
  889. package/dist/services/skillhub/release-export.d.ts +2 -2
  890. package/dist/services/skillhub/release-export.js +15 -17
  891. package/dist/services/skillhub/release-gc-blobs.d.ts +2 -2
  892. package/dist/services/skillhub/release-gc-blobs.js +4 -4
  893. package/dist/services/skillhub/release-import.d.ts +2 -2
  894. package/dist/services/skillhub/release-import.js +13 -12
  895. package/dist/services/skillhub/release-retain.d.ts +3 -3
  896. package/dist/services/skillhub/release-retain.js +22 -22
  897. package/dist/services/skillhub/sqlite-store.d.ts +1 -1
  898. package/dist/services/skillhub/sqlite-store.js +12 -11
  899. package/dist/services/skillhub/tar-runtime.js +15 -15
  900. package/dist/services/skillhub/types.d.ts +4 -4
  901. package/dist/services/skills/hooks-codegate-superpowers.js +16 -7
  902. package/dist/services/skills/hooks-settings-service.js +61 -19
  903. package/dist/services/skills/presence-lease-service.js +26 -16
  904. package/dist/services/skills/presence-lease-types.d.ts +1 -1
  905. package/dist/services/skills/presence-lease-types.js +1 -1
  906. package/dist/services/skills/skill-conformance-service.js +40 -8
  907. package/dist/services/skills/skill-presence-service.js +16 -14
  908. package/dist/services/skills/skill-runbook-service.js +2 -1
  909. package/dist/services/skills/skill-statusline-model.d.ts +128 -0
  910. package/dist/services/skills/skill-statusline-model.js +163 -0
  911. package/dist/services/skills/skill-statusline-renderer.js +4 -3
  912. package/dist/services/skills/skill-statusline-service.d.ts +3 -100
  913. package/dist/services/skills/skill-statusline-service.js +56 -163
  914. package/dist/services/skills/statusline-palette.js +11 -6
  915. package/dist/services/skills/statusline-settings-service.js +2 -1
  916. package/dist/services/skills/sync-service-support.d.ts +65 -0
  917. package/dist/services/skills/sync-service-support.js +50 -0
  918. package/dist/services/skills/sync-service.d.ts +3 -66
  919. package/dist/services/skills/sync-service.js +15 -53
  920. package/dist/services/slice/calibration-store.js +8 -2
  921. package/dist/services/slice/cross-pass-edge-merger.d.ts +3 -28
  922. package/dist/services/slice/cross-pass-edge-merger.js +13 -63
  923. package/dist/services/slice/cross-pass-edge-static-scan-support.d.ts +69 -0
  924. package/dist/services/slice/cross-pass-edge-static-scan-support.js +74 -0
  925. package/dist/services/slice/granularity-decider.js +2 -2
  926. package/dist/services/slice/slice-archive-service.js +8 -3
  927. package/dist/services/slice/slice-check-service.js +19 -8
  928. package/dist/services/slice/slice-decompose-runners.js +61 -23
  929. package/dist/services/slice/slice-decompose-service.js +4 -4
  930. package/dist/services/slice/slice-review-state.js +8 -2
  931. package/dist/services/smoke/smoke-paths-state.js +9 -2
  932. package/dist/services/sop/gate-enforce-service.js +9 -2
  933. package/dist/services/sop/sop-advance-service.js +14 -2
  934. package/dist/services/sop/sop-check-service.js +16 -4
  935. package/dist/services/sop/sop-paths.js +3 -1
  936. package/dist/services/sop/sop-registry-service.js +5 -1
  937. package/dist/services/sop/sop-service.js +29 -7
  938. package/dist/services/sop/sop-types.js +5 -1
  939. package/dist/services/standards/ide-aware-standards-service.js +2 -2
  940. package/dist/services/standards/loop-engineering-lint.js +12 -5
  941. package/dist/services/standards/loop-engineering-readiness-lint.js +5 -5
  942. package/dist/services/standards/migrate-claude-rules-service.js +9 -7
  943. package/dist/services/standards/missing-standards-detector.js +1 -3
  944. package/dist/services/standards/project-context-support.d.ts +50 -0
  945. package/dist/services/standards/project-context-support.js +244 -0
  946. package/dist/services/standards/project-context-types.d.ts +30 -0
  947. package/dist/services/standards/project-context-types.js +11 -0
  948. package/dist/services/standards/project-context.d.ts +10 -22
  949. package/dist/services/standards/project-context.js +27 -214
  950. package/dist/services/standards/project-standards-service.js +43 -12
  951. package/dist/services/standards/standards-render-common.d.ts +15 -0
  952. package/dist/services/standards/standards-render-common.js +49 -0
  953. package/dist/services/standards/standards-render.d.ts +1 -2
  954. package/dist/services/standards/standards-render.js +31 -58
  955. package/dist/services/standards/ui-library-dispatch-block.js +1 -1
  956. package/dist/services/tech/tech-change-id-service.js +7 -7
  957. package/dist/services/tech/tech-service.js +73 -26
  958. package/dist/services/test-cache/test-cache-service.js +8 -3
  959. package/dist/services/verdict/envelope-parsers.d.ts +84 -0
  960. package/dist/services/verdict/envelope-parsers.js +146 -0
  961. package/dist/services/verdict/envelopes.d.ts +50 -60
  962. package/dist/services/verdict/envelopes.js +18 -156
  963. package/dist/services/verdict/verdict-aggregator.js +27 -3
  964. package/dist/services/vm/vm-lease.js +15 -3
  965. package/dist/services/web/aria-node.d.ts +27 -0
  966. package/dist/services/web/aria-node.js +1 -0
  967. package/dist/services/web/browser-acquire.js +3 -1
  968. package/dist/services/web/browser-cache-probe.d.ts +18 -0
  969. package/dist/services/web/browser-cache-probe.js +110 -0
  970. package/dist/services/web/browser-session-manager.js +6 -2
  971. package/dist/services/web/daemon-registry.js +4 -1
  972. package/dist/services/web/playwright-loader.d.ts +2 -70
  973. package/dist/services/web/playwright-types.d.ts +75 -0
  974. package/dist/services/web/playwright-types.js +1 -0
  975. package/dist/services/web/snapshot-pruner.d.ts +2 -23
  976. package/dist/services/web/snapshot-pruner.js +8 -3
  977. package/dist/services/web/web-daemon-service.js +1 -3
  978. package/dist/services/web/web-install-service.d.ts +3 -32
  979. package/dist/services/web/web-install-service.js +21 -100
  980. package/dist/services/web/web-install-types.d.ts +31 -0
  981. package/dist/services/web/web-install-types.js +13 -0
  982. package/dist/services/web/web-login-profile.js +7 -5
  983. package/dist/services/web/web-protocol.js +3 -1
  984. package/dist/services/workflow/pipeline-verify-gate-support.js +63 -17
  985. package/dist/services/workflow/pipeline-verify-service.js +17 -6
  986. package/dist/services/workflow/plan-reader.js +5 -1
  987. package/dist/services/workflow/plan-refresher.js +20 -6
  988. package/dist/services/workflow/plan-trigger-detector.js +31 -8
  989. package/dist/services/workflow/provision-dispatch-node.js +8 -3
  990. package/dist/services/workflow/workflow-autonomous-resume-helpers.d.ts +3 -1
  991. package/dist/services/workflow/workflow-autonomous-resume-helpers.js +35 -144
  992. package/dist/services/workflow/workflow-autonomous-resume-validation.d.ts +16 -0
  993. package/dist/services/workflow/workflow-autonomous-resume-validation.js +155 -0
  994. package/dist/services/workflow/workflow-autonomous-service.js +25 -13
  995. package/dist/services/workflow/workflow-graph-store-helpers.d.ts +51 -0
  996. package/dist/services/workflow/workflow-graph-store-helpers.js +111 -0
  997. package/dist/services/workflow/workflow-graph-store.d.ts +2 -35
  998. package/dist/services/workflow/workflow-graph-store.js +30 -107
  999. package/dist/services/workflow/workflow-graph-types.js +3 -3
  1000. package/dist/services/workflow/workflow-inflight-probe.js +14 -7
  1001. package/dist/services/workflow/workflow-loader.js +5 -1
  1002. package/dist/services/workflow/workflow-node-lifecycle.js +22 -21
  1003. package/dist/services/workflow/workflow-presence-lifecycle-types.d.ts +50 -0
  1004. package/dist/services/workflow/workflow-presence-lifecycle-types.js +1 -0
  1005. package/dist/services/workflow/workflow-presence-lifecycle.d.ts +2 -42
  1006. package/dist/services/workflow/workflow-presence-lifecycle.js +19 -21
  1007. package/dist/services/workflow/workflow-router-service.js +169 -27
  1008. package/dist/services/workflow/workflow-skip-service.js +14 -4
  1009. package/dist/services/workflow/workflow-spec-builders.d.ts +15 -0
  1010. package/dist/services/workflow/workflow-spec-builders.js +121 -0
  1011. package/dist/services/workflow/workflow-spec.d.ts +7 -6
  1012. package/dist/services/workflow/workflow-spec.js +22 -116
  1013. package/dist/services/workflow/workflow-state-store.js +2 -1
  1014. package/dist/services/workspace/generated-artifacts-stamp.d.ts +2 -2
  1015. package/dist/services/workspace/generated-artifacts-stamp.js +2 -2
  1016. package/dist/services/workspace/migrate-1-4-1-service.js +80 -14
  1017. package/dist/services/workspace/migrate-service.js +66 -16
  1018. package/dist/services/workspace/reconcile-migrate.js +6 -2
  1019. package/dist/services/workspace/reconcile-service.js +37 -16
  1020. package/dist/services/workspace/workspace-claude-settings-materializer.js +7 -5
  1021. package/dist/services/workspace/workspace-clean-service.js +4 -1
  1022. package/dist/services/workspace/workspace-service.js +12 -4
  1023. package/dist/services/workspace/workspace-state-service.js +1 -1
  1024. package/dist/services/worktree/git-worktree-parser.js +13 -3
  1025. package/dist/services/worktree/host-worktree-reconciler.js +8 -4
  1026. package/dist/services/worktree/long-path-cleanup.js +23 -6
  1027. package/dist/services/worktree/worktree-gc-guard.js +3 -1
  1028. package/dist/services/worktree/worktree-lease-types.d.ts +53 -0
  1029. package/dist/services/worktree/worktree-lease-types.js +10 -0
  1030. package/dist/services/worktree/worktree-lease.d.ts +2 -44
  1031. package/dist/shared/array-guards.d.ts +30 -0
  1032. package/dist/shared/array-guards.js +32 -0
  1033. package/dist/shared/format-md-compact-internals.d.ts +26 -0
  1034. package/dist/shared/format-md-compact-internals.js +125 -0
  1035. package/dist/shared/format-md-compact.js +1 -117
  1036. package/dist/shared/fs-utils.js +2 -1
  1037. package/dist/shared/incrementing-number.js +3 -3
  1038. package/dist/shared/json-parse.d.ts +71 -0
  1039. package/dist/shared/json-parse.js +32 -0
  1040. package/dist/shared/json-schema-mini.js +3 -1
  1041. package/dist/shared/path-safety.js +3 -1
  1042. package/dist/shared/path-utils.d.ts +20 -0
  1043. package/dist/shared/path-utils.js +26 -0
  1044. package/dist/shared/planner-response.js +3 -3
  1045. package/dist/shared/stale-policy.js +1 -3
  1046. package/dist/skills/peaks-maker/index.js +11 -11
  1047. package/package.json +31 -8
  1048. package/scripts/clean-dist.mjs +1 -2
  1049. package/scripts/copy-templates.mjs +2 -4
  1050. package/scripts/install-skills.mjs +286 -283
  1051. package/scripts/sync-version.mjs +25 -8
  1052. package/scripts/watch.mjs +8 -2
  1053. package/skills/bee/peaks-qa/references/reading-handoff-frontmatter.md +3 -1
  1054. package/skills/bee/peaks-rd/references/parallel-review-fanout.md +1 -1
  1055. package/skills/bee/peaks-rd/references/rd-fanout-contracts.md +3 -2
  1056. package/skills/bee/peaks-rd/references/writing-handoff-frontmatter.md +29 -7
  1057. package/skills/peaks-code/SKILL.md +1 -1
  1058. package/skills/peaks-code/references/frontend-only-mode.md +2 -2
  1059. package/skills/peaks-code/references/startup-sequence.md +0 -4
  1060. package/dist/cli/commands/upgrade-commands.d.ts +0 -25
  1061. package/dist/cli/commands/upgrade-commands.js +0 -154
  1062. package/dist/services/upgrade/1x-detector-service.d.ts +0 -7
  1063. package/dist/services/upgrade/1x-detector-service.js +0 -94
  1064. package/dist/services/upgrade/gitignore-migrate-service.d.ts +0 -56
  1065. package/dist/services/upgrade/gitignore-migrate-service.js +0 -170
  1066. package/dist/services/upgrade/upgrade-service.d.ts +0 -81
  1067. package/dist/services/upgrade/upgrade-service.js +0 -405
  1068. package/skills/peaks-code/references/step-0-55-1x-detection.md +0 -83
@@ -10,13 +10,15 @@ import { fail, ok } from 'peaks-loop-shared/result';
10
10
  // field in the JSON envelope, so downstream automation can act on it
11
11
  // without parsing CLI prose.
12
12
  export function registerBindingCommands(program, io) {
13
- const binding = program.command('binding').description('Inspect and manage the project-level binding store (v2.18.2)');
13
+ const binding = program
14
+ .command('binding')
15
+ .description('Inspect and manage the project-level binding store (v2.18.2)');
14
16
  addJsonOption(binding
15
17
  .command('status')
16
18
  .description('Print the current binding-store contents (sids, callerIds, pids, lastHeartbeat, roles). Read-only.')
17
19
  .option('--project <path>', 'target project root (defaults to git root or cwd)')
18
20
  .option('--format <format>', 'output format: table (default for non-TTY) | json', 'table')).action((options) => {
19
- const projectRoot = options.project ?? (findProjectRoot(process.cwd()) ?? process.cwd());
21
+ const projectRoot = options.project ?? findProjectRoot(process.cwd()) ?? process.cwd();
20
22
  const view = loadBindingStatus(projectRoot);
21
23
  // Mode resolution priority: --json flag beats --format. The
22
24
  // double-flag form is intentional: `--json` keeps back-compat
@@ -28,15 +30,16 @@ export function registerBindingCommands(program, io) {
28
30
  if (useJson) {
29
31
  const payload = formatJson(view);
30
32
  const result = view.binding === null
31
- ? ok('binding.status', { ...payload, note: 'no binding found; run `peaks workspace init --project <repo>` to create one' })
33
+ ? ok('binding.status', {
34
+ ...payload,
35
+ note: 'no binding found; run `peaks workspace init --project <repo>` to create one'
36
+ })
32
37
  : ok('binding.status', payload);
33
38
  printResult(io, result, true);
34
39
  }
35
40
  else {
36
41
  if (view.binding === null) {
37
- const result = fail('binding.status', 'NO_BINDING', 'no binding found for the project', { projectRoot }, [
38
- `Run \`peaks workspace init --project <repo>\` to create one`
39
- ]);
42
+ const result = fail('binding.status', 'NO_BINDING', 'no binding found for the project', { projectRoot }, [`Run \`peaks workspace init --project <repo>\` to create one`]);
40
43
  printResult(io, result, false);
41
44
  process.exitCode = 1;
42
45
  return;
@@ -47,7 +47,9 @@ function statusLineAlreadyInstalledForScope(scope, projectRoot) {
47
47
  * kept verbatim. ≤ 2 KB by construction.
48
48
  */
49
49
  export function buildDoctorSummary(data) {
50
- const checks = Array.isArray(data.checks) ? data.checks : [];
50
+ const checks = Array.isArray(data.checks)
51
+ ? data.checks
52
+ : [];
51
53
  const label = (c) => {
52
54
  const id = typeof c.id === 'string' ? c.id : 'unknown';
53
55
  if (c.ok === true)
@@ -62,14 +64,14 @@ export function buildDoctorSummary(data) {
62
64
  view: 'summary',
63
65
  summary: data.summary,
64
66
  checks: boundedNames(checks.map(label)),
65
- failed: boundedNames(failed.map((c) => `${typeof c.id === 'string' ? c.id : 'unknown'}: ${typeof c.message === 'string' ? c.message : ''}`)),
67
+ failed: boundedNames(failed.map((c) => `${typeof c.id === 'string' ? c.id : 'unknown'}: ${typeof c.message === 'string' ? c.message : ''}`))
66
68
  };
67
69
  if (stale !== null) {
68
70
  view.staleBinding = {
69
71
  ttlMs: stale.ttlMs,
70
72
  staleCount: stale.staleCount,
71
73
  droppedCount: stale.droppedCount,
72
- droppedSids: boundedNames(Array.isArray(stale.droppedSids) ? stale.droppedSids.map((s) => String(s)) : []),
74
+ droppedSids: boundedNames(Array.isArray(stale.droppedSids) ? stale.droppedSids.map((s) => String(s)) : [])
73
75
  };
74
76
  }
75
77
  if (data.logs !== undefined)
@@ -85,7 +87,8 @@ function doctorStatusLineInstalledProbe() {
85
87
  return true;
86
88
  }
87
89
  }
88
- catch { // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
90
+ catch {
91
+ // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
89
92
  /* fall through to global */
90
93
  }
91
94
  try {
@@ -18,7 +18,11 @@ export function registerMemoryCommand(program, io) {
18
18
  return;
19
19
  }
20
20
  try {
21
- const result = executeProjectMemoryExtract({ projectRoot: options.project, artifactPaths: options.artifact, apply: options.apply === true });
21
+ const result = executeProjectMemoryExtract({
22
+ projectRoot: options.project,
23
+ artifactPaths: options.artifact,
24
+ apply: options.apply === true
25
+ });
22
26
  // A block that was found but not extracted must not vanish silently: the
23
27
  // parser's rejection reasons ride the envelope's existing `warnings`
24
28
  // channel (JSON: `warnings[]`; human: `warning: …` on stderr). `data` is
@@ -49,11 +53,17 @@ export function registerMemoryCommand(program, io) {
49
53
  return;
50
54
  }
51
55
  try {
52
- const result = executeProjectMemoryBackup({ projectRoot: options.project, artifactWorkspacePath: options.workspace, apply: options.apply === true });
56
+ const result = executeProjectMemoryBackup({
57
+ projectRoot: options.project,
58
+ artifactWorkspacePath: options.workspace,
59
+ apply: options.apply === true
60
+ });
53
61
  printResult(io, ok('memory.sync', summarizeProjectMemoryBackupResult(result)), options.json);
54
62
  }
55
63
  catch (error) {
56
- printResult(io, fail('memory.sync', 'MEMORY_SYNC_FAILED', getErrorMessage(error), {}, ['Use an artifact workspace outside the project root']), options.json);
64
+ printResult(io, fail('memory.sync', 'MEMORY_SYNC_FAILED', getErrorMessage(error), {}, [
65
+ 'Use an artifact workspace outside the project root'
66
+ ]), options.json);
57
67
  process.exitCode = 1;
58
68
  }
59
69
  });
@@ -65,21 +75,27 @@ export function registerMemoryCommand(program, io) {
65
75
  .option('--fzf-bin <path>', 'override fzf binary path (default: fzf on PATH)', 'fzf')
66
76
  .option('--summary', 'emit counts + names-of-first-N only (≤ 2 KB) instead of the full entry array; the default envelope is unchanged')
67
77
  .option('--project <path>', 'target project root (defaults to git root or cwd)')).action((options) => {
68
- void import('../memory-commands.js').then(({ runMemoryList }) => {
78
+ void import('../memory-commands.js')
79
+ .then(({ runMemoryList }) => {
69
80
  void runMemoryList(io, {
70
81
  ...(options.kind !== undefined ? { kind: options.kind } : {}),
71
82
  ...(options.pick === true ? { pick: true } : {}),
72
83
  ...(options.fzfBin ? { fzfBin: options.fzfBin } : {}),
73
84
  ...(options.project !== undefined ? { project: options.project } : {}),
74
85
  ...(options.summary === true ? { summary: true } : {}),
75
- ...(options.json !== undefined ? { json: options.json } : {}),
86
+ ...(options.json !== undefined ? { json: options.json } : {})
76
87
  });
77
- }).catch((error) => {
88
+ })
89
+ .catch((error) => {
78
90
  const msg = /brew install fzf|apt-get install fzf|older than required/.test(getErrorMessage(error))
79
91
  ? 'fzf binary not found or too old. Install with: brew install fzf (or apt: apt-get install fzf). peaks memory list --pick requires fzf >= 0.38.'
80
92
  : getErrorMessage(error);
81
- const code = /brew install fzf|apt-get install fzf|older than required/.test(msg) ? 'FZF_UNAVAILABLE' : 'MEMORY_LIST_BOOTSTRAP_FAILED';
82
- printResult(io, fail('memory.list', code, msg, {}, ['Install fzf or run without --pick to list entries as JSON']), options.json);
93
+ const code = /brew install fzf|apt-get install fzf|older than required/.test(msg)
94
+ ? 'FZF_UNAVAILABLE'
95
+ : 'MEMORY_LIST_BOOTSTRAP_FAILED';
96
+ printResult(io, fail('memory.list', code, msg, {}, [
97
+ 'Install fzf or run without --pick to list entries as JSON'
98
+ ]), options.json);
83
99
  if (code === 'FZF_UNAVAILABLE')
84
100
  process.exitCode = 127;
85
101
  else
@@ -93,15 +109,17 @@ export function registerMemoryCommand(program, io) {
93
109
  .option('--dry-run', 'report drift without writing (default)')
94
110
  .option('--apply', 'rebuild index.json and regenerate MEMORY.md')
95
111
  .option('--summary', 'emit drift counts + names-of-first-N only (≤ 2 KB) instead of the full arrays; the default envelope is unchanged')).action((options) => {
96
- void import('../memory-commands.js').then(({ runMemoryReindex }) => {
112
+ void import('../memory-commands.js')
113
+ .then(({ runMemoryReindex }) => {
97
114
  void runMemoryReindex(io, {
98
115
  ...(options.project !== undefined ? { project: options.project } : {}),
99
116
  ...(options.dryRun === true ? { dryRun: true } : {}),
100
117
  ...(options.apply === true ? { apply: true } : {}),
101
118
  ...(options.summary === true ? { summary: true } : {}),
102
- ...(options.json !== undefined ? { json: options.json } : {}),
119
+ ...(options.json !== undefined ? { json: options.json } : {})
103
120
  });
104
- }).catch((error) => {
121
+ })
122
+ .catch((error) => {
105
123
  printResult(io, fail('memory.reindex', 'MEMORY_REINDEX_BOOTSTRAP_FAILED', getErrorMessage(error), {}, []), options.json);
106
124
  process.exitCode = 1;
107
125
  });
@@ -113,15 +131,17 @@ export function registerMemoryCommand(program, io) {
113
131
  .option('--source-dir <path>', 'override the IDE-side memory directory')
114
132
  .option('--dry-run', 'preview imports without writing (default)')
115
133
  .option('--apply', 'write normalized memories into .peaks/memory')).action((options) => {
116
- void import('../memory-commands.js').then(({ runMemoryIngest }) => {
134
+ void import('../memory-commands.js')
135
+ .then(({ runMemoryIngest }) => {
117
136
  void runMemoryIngest(io, {
118
137
  ...(options.project !== undefined ? { project: options.project } : {}),
119
138
  ...(options.sourceDir !== undefined ? { sourceDir: options.sourceDir } : {}),
120
139
  ...(options.dryRun === true ? { dryRun: true } : {}),
121
140
  ...(options.apply === true ? { apply: true } : {}),
122
- ...(options.json !== undefined ? { json: options.json } : {}),
141
+ ...(options.json !== undefined ? { json: options.json } : {})
123
142
  });
124
- }).catch((error) => {
143
+ })
144
+ .catch((error) => {
125
145
  printResult(io, fail('memory.ingest', 'MEMORY_INGEST_BOOTSTRAP_FAILED', getErrorMessage(error), {}, []), options.json);
126
146
  process.exitCode = 1;
127
147
  });
@@ -132,14 +152,16 @@ export function registerMemoryCommand(program, io) {
132
152
  .option('--project <path>', 'target project root (defaults to git root or cwd)')
133
153
  .option('--dry-run', 'report the rotation plan without moving anything (default)')
134
154
  .option('--apply', 'move tier-C candidates into .peaks/memory/archived/')).action((options) => {
135
- void import('../memory-commands.js').then(({ runMemoryRotate }) => {
155
+ void import('../memory-commands.js')
156
+ .then(({ runMemoryRotate }) => {
136
157
  void runMemoryRotate(io, {
137
158
  ...(options.project !== undefined ? { project: options.project } : {}),
138
159
  ...(options.dryRun === true ? { dryRun: true } : {}),
139
160
  ...(options.apply === true ? { apply: true } : {}),
140
- ...(options.json !== undefined ? { json: options.json } : {}),
161
+ ...(options.json !== undefined ? { json: options.json } : {})
141
162
  });
142
- }).catch((error) => {
163
+ })
164
+ .catch((error) => {
143
165
  printResult(io, fail('memory.rotate', 'MEMORY_ROTATE_BOOTSTRAP_FAILED', getErrorMessage(error), {}, []), options.json);
144
166
  process.exitCode = 1;
145
167
  });
@@ -152,15 +174,17 @@ export function registerMemoryCommand(program, io) {
152
174
  .option('--project <path>', 'target project root (defaults to git root or cwd)')).action((query, options) => {
153
175
  // Lazy import avoids a top-of-file import cycle (memory-commands.ts
154
176
  // imports services that the rest of this file may also touch).
155
- void import('../memory-commands.js').then(({ runMemorySearch }) => {
177
+ void import('../memory-commands.js')
178
+ .then(({ runMemorySearch }) => {
156
179
  void runMemorySearch(io, {
157
180
  query,
158
181
  ...(options.kind !== undefined ? { kind: options.kind } : {}),
159
182
  ...(options.limit !== undefined ? { limit: options.limit } : {}),
160
183
  ...(options.project !== undefined ? { project: options.project } : {}),
161
- ...(options.json !== undefined ? { json: options.json } : {}),
184
+ ...(options.json !== undefined ? { json: options.json } : {})
162
185
  });
163
- }).catch((error) => {
186
+ })
187
+ .catch((error) => {
164
188
  printResult(io, fail('memory.search', 'MEMORY_SEARCH_BOOTSTRAP_FAILED', getErrorMessage(error), {}, []), options.json);
165
189
  process.exitCode = 1;
166
190
  });
@@ -189,7 +213,19 @@ function memoryExtractNextActions(refusal) {
189
213
  return ['Check artifact paths and remove secrets before extracting memory'];
190
214
  }
191
215
  if (refusal.check === SENSITIVE_MEMORY_CHECKS.title) {
192
- return ['Retitle the memory so it is not named after a credential term, then re-run memory extract'];
216
+ return [
217
+ 'Retitle the memory so it is not named after a credential term, then re-run memory extract'
218
+ ];
219
+ }
220
+ if (refusal.check === SENSITIVE_MEMORY_CHECKS.content) {
221
+ // Name the rule, not just the family. `matchedTerm` is a closed id
222
+ // (`credential-assignment`, `bearer-value`, `pem-private-key`, …), so the
223
+ // reader can tell a credential in the text from a sentence that merely has
224
+ // the shape of one — which is the difference between removing a value and
225
+ // rewording prose.
226
+ return [
227
+ `Remove the credential value the "${refusal.matchedTerm}" pattern matched, then re-run memory extract`
228
+ ];
193
229
  }
194
230
  return ['Remove the credential value from the memory content, then re-run memory extract'];
195
231
  }
@@ -19,7 +19,9 @@ export function registerProxyCommand(program, io) {
19
19
  printResult(io, ok('proxy.test', plan), options.json);
20
20
  }
21
21
  catch (error) {
22
- printResult(io, fail('proxy.test', 'INVALID_PROXY', getErrorMessage(error), {}, ['Use a proxy URL starting with http:// or https://']), options.json);
22
+ printResult(io, fail('proxy.test', 'INVALID_PROXY', getErrorMessage(error), {}, [
23
+ 'Use a proxy URL starting with http:// or https://'
24
+ ]), options.json);
23
25
  process.exitCode = 1;
24
26
  }
25
27
  });
@@ -26,9 +26,7 @@ import { registerSession24hModeCommand } from '../session-24h-mode.js';
26
26
  import { registerSpillDemoCommand } from '../spill-demo-command.js';
27
27
  export function registerSessionCommand(program, io) {
28
28
  const session = program.command('session').description('Manage Peaks session directories');
29
- addJsonOption(session
30
- .command('list')
31
- .description('List all session directories with titles and metadata')).action((options) => {
29
+ addJsonOption(session.command('list').description('List all session directories with titles and metadata')).action((options) => {
32
30
  const projectRoot = findProjectRoot(process.cwd()) ?? process.cwd();
33
31
  const metas = listSessionMetas(projectRoot);
34
32
  printResult(io, ok('session.list', { sessions: metas, total: metas.length }), options.json);
@@ -64,7 +62,10 @@ export function registerSessionCommand(program, io) {
64
62
  catch (error) {
65
63
  if (error instanceof CallerIdError) {
66
64
  const code = error.code === 'EX_USAGE' ? 64 : 65;
67
- printResult(io, fail('session.info', 'CALLER_ID_INVALID', error.message, { source: error.source }, [`Set --caller-id to a value matching ^[a-zA-Z0-9._-]{1,200}$`, 'Or set PEAKS_CALLER_ID env var (or CLAUDE_CODE_SESSION_ID for Claude Code)']), options.json);
65
+ printResult(io, fail('session.info', 'CALLER_ID_INVALID', error.message, { source: error.source }, [
66
+ `Set --caller-id to a value matching ^[a-zA-Z0-9._-]{1,200}$`,
67
+ 'Or set PEAKS_CALLER_ID env var (or CLAUDE_CODE_SESSION_ID for Claude Code)'
68
+ ]), options.json);
68
69
  process.exitCode = code;
69
70
  return;
70
71
  }
@@ -93,7 +94,10 @@ export function registerSessionCommand(program, io) {
93
94
  }), options.json);
94
95
  return;
95
96
  }
96
- printResult(io, ok('session.info', { callerId, note: '--caller-id resolved; pass --active to also look up the bound peak session' }), options.json);
97
+ printResult(io, ok('session.info', {
98
+ callerId,
99
+ note: '--caller-id resolved; pass --active to also look up the bound peak session'
100
+ }), options.json);
97
101
  return;
98
102
  }
99
103
  // Slice 007 + slice 021 — sub-agent session sharing. A sub-agent that
@@ -147,7 +151,9 @@ export function registerSessionCommand(program, io) {
147
151
  // contract). `warnings` is a top-level envelope field, not a
148
152
  // data field, so it goes through ok()'s 3rd positional arg.
149
153
  const legacyWarnings = bindingSource === 'legacy'
150
- ? ['Read from legacy back-compat path .peaks/.session.json. Run `peaks workspace reconcile --apply` to migrate to the canonical home (.peaks/_runtime/session.json).']
154
+ ? [
155
+ 'Read from legacy back-compat path .peaks/.session.json. Run `peaks workspace reconcile --apply` to migrate to the canonical home (.peaks/_runtime/session.json).'
156
+ ]
151
157
  : [];
152
158
  printResult(io, ok('session.info', {
153
159
  active: true,
@@ -182,7 +188,9 @@ export function registerSessionCommand(program, io) {
182
188
  printResult(io, ok('session.title', meta), options.json);
183
189
  }
184
190
  catch (error) {
185
- printResult(io, fail('session.title', 'SESSION_TITLE_FAILED', getErrorMessage(error), { sessionId }, ['Verify the sessionId exists under .peaks/']), options.json);
191
+ printResult(io, fail('session.title', 'SESSION_TITLE_FAILED', getErrorMessage(error), { sessionId }, [
192
+ 'Verify the sessionId exists under .peaks/'
193
+ ]), options.json);
186
194
  process.exitCode = 1;
187
195
  }
188
196
  });
@@ -210,7 +218,7 @@ export function registerSessionCommand(program, io) {
210
218
  .command('rotate')
211
219
  .description('Drop the project-level session binding so the next peaks call auto-generates a fresh session id. The on-disk session directory is left intact — only .peaks/.session.json is removed.')
212
220
  .option('--project <path>', 'target project root (defaults to git root or cwd)')
213
- .option('--reason <text>', 'human-readable reason for the rotation, recorded in the response data')).action(async (options) => {
221
+ .option('--reason <text>', 'human-readable reason for the rotation, recorded in the response data')).action((options) => {
214
222
  try {
215
223
  // Canonicalise the project root before touching the binding.
216
224
  // `peaks workspace init` writes the binding with the
@@ -136,7 +136,7 @@ function generatedConfigNotice(projectRoot) {
136
136
  warnings: [
137
137
  `Generated config at '${projectRoot}' was produced by peaks-loop ${onDiskVersion} ` +
138
138
  `but ${staleness.expected.packageVersion} is installed (${staleness.reasons.join(', ')}). ` +
139
- `Re-run \`peaks workspace init\` (or the idempotent \`peaks upgrade --apply-init\`) ` +
139
+ `Re-run \`peaks workspace init\` ` +
140
140
  `to regenerate .claude/settings.local.json and the offline template copy.`
141
141
  ]
142
142
  };
@@ -153,7 +153,10 @@ import { addJsonOption, getErrorMessage, printResult } from '../../cli-helpers.j
153
153
  import { registerSkillSearchCommand } from '../skill-search-commands.js';
154
154
  export function registerSkillCommand(program, io) {
155
155
  const skill = program.command('skill').description('Manage Peaks skills');
156
- addJsonOption(skill.command('list').description('List skills derived from skills/*/SKILL.md').option('--include-internal', 'include skills with visibility: internal (default: hide them)')).action(async (options) => {
156
+ addJsonOption(skill
157
+ .command('list')
158
+ .description('List skills derived from skills/*/SKILL.md')
159
+ .option('--include-internal', 'include skills with visibility: internal (default: hide them)')).action(async (options) => {
157
160
  let skills = await listSkills();
158
161
  if (options.includeInternal !== true) {
159
162
  skills = skills.filter((s) => s.visibility !== 'internal');
@@ -227,14 +230,14 @@ export function registerSkillCommand(program, io) {
227
230
  projectRoot,
228
231
  ...(platforms !== undefined ? { platforms } : {}),
229
232
  ...(options.dryRun === true ? { dryRun: true } : {}),
230
- ...(options.reconcileJunctions === true ? { reconcileJunctions: true } : {}),
233
+ ...(options.reconcileJunctions === true ? { reconcileJunctions: true } : {})
231
234
  });
232
235
  const envelope = ok('skill.sync', result, [], [
233
236
  `syncedCount: ${result.syncedCount}/${result.perPlatform.length} platforms`,
234
237
  `totalInstalled: ${result.totalInstalled} skill symlinks`,
235
238
  result.failedCount > 0
236
239
  ? `failedCount: ${result.failedCount} (run \`peaks skill status\` for details)`
237
- : 'no failures',
240
+ : 'no failures'
238
241
  ]);
239
242
  printResult(io, envelope, options.json);
240
243
  if (result.failedCount > 0) {
@@ -257,7 +260,9 @@ export function registerSkillCommand(program, io) {
257
260
  : fail('skill.runbook', inspection.hasRunbook ? 'SKILL_RUNBOOK_APPLY_UNGATED' : 'SKILL_RUNBOOK_MISSING', inspection.hasRunbook
258
261
  ? `Skill ${inspection.name} has ${inspection.destructiveApplyLines.length} destructive --apply command(s) without an authorization/dry-run note`
259
262
  : `Skill ${inspection.name} is missing a ## Default runbook section`, inspection, inspection.hasRunbook
260
- ? ['Add an authorization or --dry-run note next to destructive --apply lines in the runbook section']
263
+ ? [
264
+ 'Add an authorization or --dry-run note next to destructive --apply lines in the runbook section'
265
+ ]
261
266
  : ['Add a `## Default runbook` section to the skill SKILL.md']);
262
267
  printResult(io, result, options.json);
263
268
  if (!inspection.ok) {
@@ -304,7 +309,12 @@ export function registerSkillCommand(program, io) {
304
309
  }, generatedConfig.warnings, verdict.nextActions), options.json);
305
310
  return;
306
311
  }
307
- printResult(io, ok('skill.presence', { active: true, ...presence, ...(verdict.context !== null ? { context: verdict.context } : {}), ...generatedConfig.field }, generatedConfig.warnings, verdict.nextActions), options.json);
312
+ printResult(io, ok('skill.presence', {
313
+ active: true,
314
+ ...presence,
315
+ ...(verdict.context !== null ? { context: verdict.context } : {}),
316
+ ...generatedConfig.field
317
+ }, generatedConfig.warnings, verdict.nextActions), options.json);
308
318
  });
309
319
  addJsonOption(skill
310
320
  .command('presence:set <name>')
@@ -328,7 +338,9 @@ export function registerSkillCommand(program, io) {
328
338
  // production CLI traffic must go through this gate.
329
339
  const boundSessionId = getSessionId(projectRoot);
330
340
  if (boundSessionId === null) {
331
- printResult(io, fail('skill.presence:set', 'PEAKS_SESSION_NOT_BOUND', 'No canonical peaks session is bound for this project (RD §3 D1).', { projectRoot, name }, ['Run `peaks workspace init --project <p>` first, then re-run `peaks skill presence:set`.']), options.json);
341
+ printResult(io, fail('skill.presence:set', 'PEAKS_SESSION_NOT_BOUND', 'No canonical peaks session is bound for this project (RD §3 D1).', { projectRoot, name }, [
342
+ 'Run `peaks workspace init --project <p>` first, then re-run `peaks skill presence:set`.'
343
+ ]), options.json);
332
344
  process.exitCode = 1;
333
345
  return;
334
346
  }
@@ -337,8 +349,10 @@ export function registerSkillCommand(program, io) {
337
349
  }
338
350
  catch (err) {
339
351
  const message = err instanceof Error ? err.message : String(err);
340
- printResult(io, fail('skill.presence:set', 'PEAKS_CALLER_NOT_RESOLVED', `Active IDE adapter could not resolve a callerId (RD §3 D1): ${message}`, { projectRoot, name }, ['Ensure the active IDE is detected by `peaks` and the IDE session variable is set.',
341
- 'Or set PEAKS_CALLER_ID=<id> in the environment for scripted usage.']), options.json);
352
+ printResult(io, fail('skill.presence:set', 'PEAKS_CALLER_NOT_RESOLVED', `Active IDE adapter could not resolve a callerId (RD §3 D1): ${message}`, { projectRoot, name }, [
353
+ 'Ensure the active IDE is detected by `peaks` and the IDE session variable is set.',
354
+ 'Or set PEAKS_CALLER_ID=<id> in the environment for scripted usage.'
355
+ ]), options.json);
342
356
  process.exitCode = 1;
343
357
  return;
344
358
  }
@@ -376,7 +390,8 @@ export function registerSkillCommand(program, io) {
376
390
  try {
377
391
  await generateProjectContext(projectRoot);
378
392
  }
379
- catch { // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
393
+ catch {
394
+ // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
380
395
  // non-fatal: context update failure should not block presence clear
381
396
  }
382
397
  // Report the state the project is actually in, not the state this command
@@ -435,7 +450,7 @@ export function registerSkillCommand(program, io) {
435
450
  const result = await gcStalePresenceLeases({
436
451
  projectRoot,
437
452
  ...(options.now !== undefined ? { now: options.now } : {}),
438
- trigger: 'manual',
453
+ trigger: 'manual'
439
454
  });
440
455
  printResult(io, ok('skill.lease.gc', {
441
456
  envelopeVersion: '4.0.8',
@@ -444,14 +459,16 @@ export function registerSkillCommand(program, io) {
444
459
  trigger: result.trigger,
445
460
  inFlightBatch: result.inFlightBatch,
446
461
  warnings: result.warnings,
447
- errors: result.errors,
462
+ errors: result.errors
448
463
  }, result.warnings.map((w) => `${w.code}: ${w.message}`), [
449
464
  'GC predicate: now - lastHeartbeat > 1h AND now - startedAt > 24h (RD §3 D2 + D3).',
450
- 'Re-run `peaks workspace init` or `peaks skill presence:set` to sweep the same project on the bound trigger.',
465
+ 'Re-run `peaks workspace init` or `peaks skill presence:set` to sweep the same project on the bound trigger.'
451
466
  ]), options.json);
452
467
  }
453
468
  catch (err) {
454
- printResult(io, fail('skill.lease.gc', 'PEAKS_LEASE_GC_FAILED', getErrorMessage(err), { projectRoot }, ['Re-run with a valid --project and ensure the session is bound.']), options.json);
469
+ printResult(io, fail('skill.lease.gc', 'PEAKS_LEASE_GC_FAILED', getErrorMessage(err), { projectRoot }, [
470
+ 'Re-run with a valid --project and ensure the session is bound.'
471
+ ]), options.json);
455
472
  process.exitCode = 1;
456
473
  }
457
474
  });
@@ -495,9 +512,7 @@ export function registerSkillCommand(program, io) {
495
512
  };
496
513
  printResult(io, ok('skill.presence:check-stale', data), options.json);
497
514
  });
498
- addJsonOption(skill
499
- .command('heartbeat')
500
- .description('Show the heartbeat status of the active Peaks skill')).action((options) => {
515
+ addJsonOption(skill.command('heartbeat').description('Show the heartbeat status of the active Peaks skill')).action((options) => {
501
516
  const presence = getSkillPresence();
502
517
  if (presence === null) {
503
518
  printResult(io, ok('skill.heartbeat', { active: false, heartbeat: 'none' }), options.json);
@@ -20,14 +20,22 @@ export const LOOP_ENGINEERING_GUIDELINES_RELATIVE_PATH = '.peaks/standards/loop-
20
20
  export function runLoopEngineeringLint(projectRoot) {
21
21
  const root = resolve(projectRoot);
22
22
  const guidelinePath = join(root, LOOP_ENGINEERING_GUIDELINES_RELATIVE_PATH);
23
- const data = { category: LOOP_ENGINEERING_CATEGORY, path: guidelinePath, redLineCount: 0, redLineIds: [], findings: [] };
23
+ const data = {
24
+ category: LOOP_ENGINEERING_CATEGORY,
25
+ path: guidelinePath,
26
+ redLineCount: 0,
27
+ redLineIds: [],
28
+ findings: []
29
+ };
24
30
  if (!existsSync(guidelinePath)) {
25
31
  return {
26
32
  ok: false,
27
33
  code: 'LINT_FILE_NOT_FOUND',
28
34
  message: `no ${LOOP_ENGINEERING_GUIDELINES_RELATIVE_PATH} under ${root}`,
29
35
  data,
30
- nextActions: [`Pass --project pointing at a peaks-loop checkout (the lint reads its own guideline file).`],
36
+ nextActions: [
37
+ `Pass --project pointing at a peaks-loop checkout (the lint reads its own guideline file).`
38
+ ]
31
39
  };
32
40
  }
33
41
  const result = lintLoopEngineeringGuidelines(readFileSync(guidelinePath, 'utf-8'));
@@ -39,7 +47,7 @@ export function runLoopEngineeringLint(projectRoot) {
39
47
  code: 'STANDARDS_LINT_OK',
40
48
  message: `${redLineIds.length} red line(s) present with all 4 sections (expected: ${EXPECTED_RED_LINE_IDS.join(', ')})`,
41
49
  data: fullData,
42
- nextActions: ['Any new red line must use the 4-section form or this lint will reject it.'],
50
+ nextActions: ['Any new red line must use the 4-section form or this lint will reject it.']
43
51
  };
44
52
  }
45
53
  return {
@@ -49,12 +57,14 @@ export function runLoopEngineeringLint(projectRoot) {
49
57
  data: { ...fullData, findings: result.findings },
50
58
  nextActions: [
51
59
  'Address every finding in data.findings, then re-run the lint.',
52
- 'Each red line must be a `## RL-N — <title>` heading with the 4 sections: Failure modes / Rewrite / Self-check / Out-of-scope.',
53
- ],
60
+ 'Each red line must be a `## RL-N — <title>` heading with the 4 sections: Failure modes / Rewrite / Self-check / Out-of-scope.'
61
+ ]
54
62
  };
55
63
  }
56
64
  export function registerStandardsCommand(program, io) {
57
- const standards = program.command('standards').description('Manage project-local coding standards');
65
+ const standards = program
66
+ .command('standards')
67
+ .description('Manage project-local coding standards');
58
68
  addJsonOption(standards
59
69
  .command('init')
60
70
  .description('Initialize project-local coding standards for Peaks skill preflight')
@@ -69,11 +79,22 @@ export function registerStandardsCommand(program, io) {
69
79
  return;
70
80
  }
71
81
  try {
72
- const result = executeProjectStandardsInitIdeAware({ projectRoot: options.project, ...(options.language !== undefined ? { language: options.language } : {}), ...(options.ide !== undefined ? { ideId: options.ide } : {}), apply: options.apply === true });
82
+ const result = executeProjectStandardsInitIdeAware({
83
+ projectRoot: options.project,
84
+ ...(options.language !== undefined ? { language: options.language } : {}),
85
+ ...(options.ide !== undefined
86
+ ? {
87
+ ideId: options.ide
88
+ }
89
+ : {}),
90
+ apply: options.apply === true
91
+ });
73
92
  printResult(io, ok('standards.init', summarizeProjectStandardsInitResult(result)), options.json);
74
93
  }
75
94
  catch (error) {
76
- printResult(io, fail('standards.init', 'STANDARDS_INIT_FAILED', getErrorMessage(error), {}, ['Check the project path and existing .claude/rules directory before retrying']), options.json);
95
+ printResult(io, fail('standards.init', 'STANDARDS_INIT_FAILED', getErrorMessage(error), {}, [
96
+ 'Check the project path and existing .claude/rules directory before retrying'
97
+ ]), options.json);
77
98
  process.exitCode = 1;
78
99
  }
79
100
  });
@@ -86,12 +107,23 @@ export function registerStandardsCommand(program, io) {
86
107
  .option('--dry-run', 'preview writes without changing files')
87
108
  .option('--apply', 'append managed metadata to the target project')).action((options) => {
88
109
  if (options.dryRun === true && options.apply === true) {
89
- printResult(io, fail('standards.update', 'INVALID_STANDARDS_UPDATE_FLAGS', 'Use either --dry-run or --apply, not both', {}, ['Run without --apply to preview writes, or omit --dry-run when applying standards updates']), options.json);
110
+ printResult(io, fail('standards.update', 'INVALID_STANDARDS_UPDATE_FLAGS', 'Use either --dry-run or --apply, not both', {}, [
111
+ 'Run without --apply to preview writes, or omit --dry-run when applying standards updates'
112
+ ]), options.json);
90
113
  process.exitCode = 1;
91
114
  return;
92
115
  }
93
116
  try {
94
- const result = executeProjectStandardsUpdateIdeAware({ projectRoot: options.project, ...(options.language !== undefined ? { language: options.language } : {}), ...(options.ide !== undefined ? { ideId: options.ide } : {}), apply: options.apply === true });
117
+ const result = executeProjectStandardsUpdateIdeAware({
118
+ projectRoot: options.project,
119
+ ...(options.language !== undefined ? { language: options.language } : {}),
120
+ ...(options.ide !== undefined
121
+ ? {
122
+ ideId: options.ide
123
+ }
124
+ : {}),
125
+ apply: options.apply === true
126
+ });
95
127
  const summary = summarizeProjectStandardsUpdateResult(result);
96
128
  const response = summary.reviewSuggestions.length > 0
97
129
  ? fail('standards.update', 'STANDARDS_UPDATE_REVIEW_REQUIRED', 'Standards update requires manual review', summary, summary.reviewSuggestions)
@@ -102,7 +134,9 @@ export function registerStandardsCommand(program, io) {
102
134
  }
103
135
  }
104
136
  catch (error) {
105
- printResult(io, fail('standards.update', 'STANDARDS_UPDATE_FAILED', getErrorMessage(error), {}, ['Check the project path, CLAUDE.md contents, and existing .claude/rules directory before retrying']), options.json);
137
+ printResult(io, fail('standards.update', 'STANDARDS_UPDATE_FAILED', getErrorMessage(error), {}, [
138
+ 'Check the project path, CLAUDE.md contents, and existing .claude/rules directory before retrying'
139
+ ]), options.json);
106
140
  process.exitCode = 1;
107
141
  }
108
142
  });
@@ -111,7 +145,7 @@ export function registerStandardsCommand(program, io) {
111
145
  .description('Rewrite a consumer project CLAUDE.md to drop the legacy heartbeat block (slice 028). Dry-run by default; pass --apply to write. With --from-claude-rules, thins the 1.x .claude/rules/ tree to 2-line pointers and scaffolds .peaks/standards/ (slice 2026-06-12-standards-migrate-claude-rules).')
112
146
  .option('--project <path>', 'target project root')
113
147
  .option('--apply', 'rewrite the legacy block in place; default is dry-run')
114
- .option('--from-claude-rules', 'thin .claude/rules/ to pointers and scaffold .peaks/standards/ (used by `peaks upgrade --to 2.0`)')).action((options) => {
148
+ .option('--from-claude-rules', 'thin .claude/rules/ to pointers and scaffold .peaks/standards/')).action((options) => {
115
149
  const projectRoot = options.project ?? process.cwd();
116
150
  if (options.fromClaudeRules === true) {
117
151
  try {
@@ -126,7 +160,7 @@ export function registerStandardsCommand(program, io) {
126
160
  preservedFiles: [],
127
161
  wouldChange: false,
128
162
  applied: false,
129
- nextActions: [],
163
+ nextActions: []
130
164
  }, [getErrorMessage(error)]), options.json);
131
165
  process.exitCode = 1;
132
166
  }
@@ -137,7 +171,15 @@ export function registerStandardsCommand(program, io) {
137
171
  printResult(io, ok('standards.migrate', result.data, [], result.data.nextActions), options.json);
138
172
  }
139
173
  catch (error) {
140
- printResult(io, fail('standards.migrate', 'STANDARDS_MIGRATE_FAILED', getErrorMessage(error), { file: null, foundOldBlock: false, wouldChange: false, applied: false, before: null, after: null, nextActions: [] }, [getErrorMessage(error)]), options.json);
174
+ printResult(io, fail('standards.migrate', 'STANDARDS_MIGRATE_FAILED', getErrorMessage(error), {
175
+ file: null,
176
+ foundOldBlock: false,
177
+ wouldChange: false,
178
+ applied: false,
179
+ before: null,
180
+ after: null,
181
+ nextActions: []
182
+ }, [getErrorMessage(error)]), options.json);
141
183
  process.exitCode = 1;
142
184
  }
143
185
  });