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
@@ -9,7 +9,9 @@
9
9
  * `createResumePlan`). The high-level orchestrator
10
10
  * `createAutonomousWorkflowPlan` lives in the parent module and
11
11
  * imports from this sibling. Function signatures and behaviour are
12
- * unchanged (verbatim move).
12
+ * unchanged (verbatim move). The pure JSON / frontmatter content
13
+ * validators now live in the sibling
14
+ * `workflow-autonomous-resume-validation.ts` (B wave-3 file-size split).
13
15
  */
14
16
  import { closeSync, fstatSync, lstatSync, openSync, readSync, realpathSync, statSync } from 'node:fs';
15
17
  import { isAbsolute, relative, resolve } from 'node:path';
@@ -21,6 +23,7 @@ import { isAbsolute, relative, resolve } from 'node:path';
21
23
  // pre-built.
22
24
  import { getSessionDir } from '../session/getSessionDir.js';
23
25
  import { normalizePath } from '../../shared/path-utils.js';
26
+ import { extractMarkdownListSection, getCheckpointValidationRefs, getMarkdownBody, isValidResumeArtifact } from './workflow-autonomous-resume-validation.js';
24
27
  const MAX_RESUME_ARTIFACT_BYTES = 256_000;
25
28
  // Slice 2026-06-29-change-id-root-removal: return the bare role-relative
26
29
  // sub-paths instead of `.peaks/_runtime/change/<id>/<role>/...` strings.
@@ -40,9 +43,6 @@ export function getResumeRequiredArtifacts(_sessionId) {
40
43
  'rd/swarm/resume-instructions.md'
41
44
  ];
42
45
  }
43
- function isObjectRecord(value) {
44
- return typeof value === 'object' && value !== null && !Array.isArray(value);
45
- }
46
46
  function isInsidePath(childPath, parentPath) {
47
47
  const relativePath = relative(parentPath, childPath);
48
48
  return relativePath === '' || (!relativePath.startsWith('..') && !isAbsolute(relativePath));
@@ -79,7 +79,9 @@ function readResumeArtifact(artifactWorkspacePath, sessionId, artifact) {
79
79
  try {
80
80
  const artifactWorkspaceRealPath = realpathSync(artifactWorkspacePath);
81
81
  const artifactStat = lstatSync(artifactPath);
82
- if (artifactStat.isSymbolicLink() || !artifactStat.isFile() || artifactStat.size > MAX_RESUME_ARTIFACT_BYTES) {
82
+ if (artifactStat.isSymbolicLink() ||
83
+ !artifactStat.isFile() ||
84
+ artifactStat.size > MAX_RESUME_ARTIFACT_BYTES) {
83
85
  return null;
84
86
  }
85
87
  const sessionRootPath = sessionScopeRoot;
@@ -100,14 +102,20 @@ function readResumeArtifact(artifactWorkspacePath, sessionId, artifact) {
100
102
  allowedRootRealPath = realpathSync(roleRootPath);
101
103
  }
102
104
  const artifactRealPath = realpathSync(artifactPath);
103
- if (!isInsidePath(allowedRootRealPath, artifactWorkspaceRealPath) || !isInsidePath(artifactRealPath, allowedRootRealPath)) {
105
+ if (!isInsidePath(allowedRootRealPath, artifactWorkspaceRealPath) ||
106
+ !isInsidePath(artifactRealPath, allowedRootRealPath)) {
104
107
  return null;
105
108
  }
106
109
  const fd = openSync(artifactPath, 'r');
107
110
  try {
108
111
  const openedStat = fstatSync(fd);
109
112
  const currentStat = statSync(artifactPath);
110
- if (!openedStat.isFile() || openedStat.size > MAX_RESUME_ARTIFACT_BYTES || openedStat.dev !== artifactStat.dev || openedStat.ino !== artifactStat.ino || openedStat.dev !== currentStat.dev || openedStat.ino !== currentStat.ino) {
113
+ if (!openedStat.isFile() ||
114
+ openedStat.size > MAX_RESUME_ARTIFACT_BYTES ||
115
+ openedStat.dev !== artifactStat.dev ||
116
+ openedStat.ino !== artifactStat.ino ||
117
+ openedStat.dev !== currentStat.dev ||
118
+ openedStat.ino !== currentStat.ino) {
111
119
  return null;
112
120
  }
113
121
  return readFully(fd, openedStat.size);
@@ -116,151 +124,27 @@ function readResumeArtifact(artifactWorkspacePath, sessionId, artifact) {
116
124
  closeSync(fd);
117
125
  }
118
126
  }
119
- catch { // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
120
- return null;
121
- }
122
- }
123
- function getExpectedResumeArtifactType(artifact) {
124
- if (artifact.endsWith('/autonomous-goal-package.json'))
125
- return 'goal-package';
126
- if (artifact.endsWith('/autonomous-rd-plan.json'))
127
- return 'rd-plan';
128
- if (artifact.endsWith('/checkpoint-1.json'))
129
- return 'checkpoint';
130
- if (artifact.endsWith('/validation-report.md'))
131
- return 'validation-report';
132
- return 'resume-instructions';
133
- }
134
- function hasStringArray(value) {
135
- return Array.isArray(value) && value.length > 0 && value.every((item) => typeof item === 'string' && item.trim().length > 0);
136
- }
137
- function hasValidGoalPackageJson(parsed, goal) {
138
- return parsed.goal === goal
139
- && typeof parsed.doneCondition === 'string'
140
- && parsed.doneCondition.trim().length > 0
141
- && typeof parsed.resumeCondition === 'string'
142
- && parsed.resumeCondition.trim().length > 0
143
- && hasStringArray(parsed.acceptanceCriteria);
144
- }
145
- function hasValidRdPlanJson(parsed) {
146
- return parsed.workerQueueStatus === 'ready'
147
- && typeof parsed.taskCount === 'number'
148
- && Number.isInteger(parsed.taskCount)
149
- && parsed.taskCount > 0
150
- && parsed.reducerRequired === true;
151
- }
152
- function hasValidCheckpointJson(parsed) {
153
- return parsed.checkpointId === 'checkpoint-1'
154
- && typeof parsed.createdAt === 'string'
155
- && parsed.createdAt.trim().length > 0
156
- && isObjectRecord(parsed.workerQueueState)
157
- && hasStringArray(parsed.validationRefs);
158
- }
159
- function parseJsonObject(content) {
160
- try {
161
- const parsed = JSON.parse(content);
162
- return isObjectRecord(parsed) ? parsed : null;
163
- }
164
- catch { // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
127
+ catch {
128
+ // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
165
129
  return null;
166
130
  }
167
131
  }
168
- function hasValidJsonMetadata(content, sessionId, artifactType, goal) {
169
- const parsed = parseJsonObject(content);
170
- if (parsed === null || parsed.sessionId !== sessionId || parsed.artifactType !== artifactType || parsed.status !== 'ready') {
171
- return false;
172
- }
173
- if (artifactType === 'goal-package')
174
- return hasValidGoalPackageJson(parsed, goal);
175
- if (artifactType === 'rd-plan')
176
- return hasValidRdPlanJson(parsed);
177
- return artifactType === 'checkpoint' && hasValidCheckpointJson(parsed);
178
- }
179
- function parseFrontMatter(content) {
180
- const lines = content.split(/\r?\n/);
181
- if (lines[0] !== '---') {
182
- return null;
183
- }
184
- const closingDelimiterIndex = lines.slice(1).findIndex((line) => line === '---');
185
- if (closingDelimiterIndex === -1) {
186
- return null;
187
- }
188
- const metadata = new Map();
189
- for (const line of lines.slice(1, closingDelimiterIndex + 1)) {
190
- const separatorIndex = line.indexOf(':');
191
- if (separatorIndex === -1) {
192
- return null;
193
- }
194
- metadata.set(line.slice(0, separatorIndex).trim(), line.slice(separatorIndex + 1).trim());
195
- }
196
- return Object.fromEntries(metadata);
197
- }
198
- function getMarkdownBody(content) {
199
- const lines = content.split(/\r?\n/);
200
- const closingDelimiterIndex = lines.slice(1).findIndex((line) => line === '---');
201
- return closingDelimiterIndex === -1 ? '' : lines.slice(closingDelimiterIndex + 2).join('\n');
202
- }
203
- function hasValidationReportBody(body) {
204
- return body.includes('Validation summary:')
205
- && body.includes('Checks:')
206
- && body.includes('Result: passed')
207
- && body.includes('Evidence refs:');
208
- }
209
- function hasResumeInstructionsBody(body) {
210
- return body.includes('Resume steps:')
211
- && body.includes('Preconditions:')
212
- && body.includes('Blocked actions:')
213
- && body.includes('Next actions:');
214
- }
215
- function extractMarkdownListSection(body, heading) {
216
- const lines = body.split(/\r?\n/);
217
- const startIndex = lines.findIndex((line) => line.trim() === heading);
218
- if (startIndex === -1) {
219
- return [];
220
- }
221
- const sectionLines = lines.slice(startIndex + 1);
222
- const nextHeadingIndex = sectionLines.findIndex((line) => /^[A-Z][A-Za-z ]+:$/.test(line.trim()));
223
- const sectionEndIndex = nextHeadingIndex + 1 || sectionLines.length;
224
- return sectionLines.slice(0, sectionEndIndex)
225
- .map((line) => line.trim())
226
- .filter((line) => line.startsWith('- '))
227
- .map((line) => line.slice(2).trim())
228
- .filter((line) => line.length > 0);
229
- }
230
- function getCheckpointValidationRefs(checkpointContent) {
231
- const parsed = parseJsonObject(checkpointContent);
232
- return parsed && hasStringArray(parsed.validationRefs) ? parsed.validationRefs : [];
233
- }
234
132
  function isSafeEvidenceRef(ref) {
235
- return ref.toLowerCase() !== 'validation-report.md' && /^[A-Za-z0-9][A-Za-z0-9._-]*\.md$/.test(ref) && !ref.includes('..');
133
+ return (ref.toLowerCase() !== 'validation-report.md' &&
134
+ /^[A-Za-z0-9][A-Za-z0-9._-]*\.md$/.test(ref) &&
135
+ !ref.includes('..'));
236
136
  }
237
137
  function evidenceRefsExist(artifactWorkspacePath, sessionId, refs) {
238
- return refs.every((ref) => isSafeEvidenceRef(ref) && readResumeArtifact(artifactWorkspacePath, sessionId, `rd/swarm/evidence/${ref}`) !== null);
138
+ return refs.every((ref) => isSafeEvidenceRef(ref) &&
139
+ readResumeArtifact(artifactWorkspacePath, sessionId, `rd/swarm/evidence/${ref}`) !== null);
239
140
  }
240
141
  function hasMatchingEvidenceRefs(artifactWorkspacePath, sessionId, validationReportContent, checkpointContent) {
241
142
  const expectedRefs = getCheckpointValidationRefs(checkpointContent);
242
143
  const actualRefs = extractMarkdownListSection(getMarkdownBody(validationReportContent), 'Evidence refs:');
243
- return expectedRefs.length > 0
244
- && expectedRefs.length === actualRefs.length
245
- && expectedRefs.every((expectedRef, index) => expectedRef === actualRefs[index])
246
- && evidenceRefsExist(artifactWorkspacePath, sessionId, expectedRefs);
247
- }
248
- function hasValidMarkdownMetadata(content, sessionId, artifactType) {
249
- const metadata = parseFrontMatter(content);
250
- if (metadata === null || metadata.sessionId !== sessionId || metadata.artifactType !== artifactType || metadata.status !== 'passed') {
251
- return false;
252
- }
253
- const body = getMarkdownBody(content);
254
- return artifactType === 'validation-report' ? hasValidationReportBody(body) : hasResumeInstructionsBody(body);
255
- }
256
- function isValidResumeArtifact(artifact, content, sessionId, goal) {
257
- if (!content.trim()) {
258
- return false;
259
- }
260
- const artifactType = getExpectedResumeArtifactType(artifact);
261
- return artifact.endsWith('.json')
262
- ? hasValidJsonMetadata(content, sessionId, artifactType, goal)
263
- : hasValidMarkdownMetadata(content, sessionId, artifactType);
144
+ return (expectedRefs.length > 0 &&
145
+ expectedRefs.length === actualRefs.length &&
146
+ expectedRefs.every((expectedRef, index) => expectedRef === actualRefs[index]) &&
147
+ evidenceRefsExist(artifactWorkspacePath, sessionId, expectedRefs));
264
148
  }
265
149
  function getResumeArtifactsStatus(artifactWorkspacePath, requiredArtifacts, sessionId, goal) {
266
150
  let hasInvalidArtifact = false;
@@ -282,7 +166,9 @@ function getResumeArtifactsStatus(artifactWorkspacePath, requiredArtifacts, sess
282
166
  }
283
167
  const checkpointContent = artifactContents.get('rd/swarm/checkpoints/checkpoint-1.json');
284
168
  const validationReportContent = artifactContents.get('rd/swarm/evidence/validation-report.md');
285
- if (!checkpointContent || !validationReportContent || !hasMatchingEvidenceRefs(artifactWorkspacePath, sessionId, validationReportContent, checkpointContent)) {
169
+ if (!checkpointContent ||
170
+ !validationReportContent ||
171
+ !hasMatchingEvidenceRefs(artifactWorkspacePath, sessionId, validationReportContent, checkpointContent)) {
286
172
  hasInvalidArtifact = true;
287
173
  }
288
174
  return hasInvalidArtifact ? 'invalid' : 'ready';
@@ -291,7 +177,12 @@ export function createResumePlan(sessionId, ready) {
291
177
  const requiredArtifacts = getResumeRequiredArtifacts(sessionId);
292
178
  return {
293
179
  status: ready ? 'ready' : 'preview',
294
- checkpoints: ['goal-package-created', 'capabilities-planned', 'rd-swarm-planned', 'validation-evidence-required'],
180
+ checkpoints: [
181
+ 'goal-package-created',
182
+ 'capabilities-planned',
183
+ 'rd-swarm-planned',
184
+ 'validation-evidence-required'
185
+ ],
295
186
  requiredArtifacts,
296
187
  resumeInstructions: ready
297
188
  ? 'Before continuing, verify checkpoint artifacts, pending worker queue state, and validation evidence requirements.'
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Workflow Autonomous Service -- resume artifact content validators.
3
+ *
4
+ * This module is the extracted validation sub-tree of
5
+ * `workflow-autonomous-resume-helpers.ts` (B wave-3 file-size split).
6
+ * It hosts the pure JSON / front-matter / markdown-body checks
7
+ * (`isValidResumeArtifact`, `getCheckpointValidationRefs`,
8
+ * `getMarkdownBody`, `extractMarkdownListSection` and their private
9
+ * helpers). Function bodies and behaviour are unchanged (verbatim
10
+ * move); the I/O-bound `readResumeArtifact` pipeline stays in the
11
+ * sibling module.
12
+ */
13
+ export declare function getMarkdownBody(content: string): string;
14
+ export declare function extractMarkdownListSection(body: string, heading: string): string[];
15
+ export declare function getCheckpointValidationRefs(checkpointContent: string): string[];
16
+ export declare function isValidResumeArtifact(artifact: string, content: string, sessionId: string, goal: string): boolean;
@@ -0,0 +1,155 @@
1
+ /**
2
+ * Workflow Autonomous Service -- resume artifact content validators.
3
+ *
4
+ * This module is the extracted validation sub-tree of
5
+ * `workflow-autonomous-resume-helpers.ts` (B wave-3 file-size split).
6
+ * It hosts the pure JSON / front-matter / markdown-body checks
7
+ * (`isValidResumeArtifact`, `getCheckpointValidationRefs`,
8
+ * `getMarkdownBody`, `extractMarkdownListSection` and their private
9
+ * helpers). Function bodies and behaviour are unchanged (verbatim
10
+ * move); the I/O-bound `readResumeArtifact` pipeline stays in the
11
+ * sibling module.
12
+ */
13
+ function isObjectRecord(value) {
14
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
15
+ }
16
+ function getExpectedResumeArtifactType(artifact) {
17
+ if (artifact.endsWith('/autonomous-goal-package.json'))
18
+ return 'goal-package';
19
+ if (artifact.endsWith('/autonomous-rd-plan.json'))
20
+ return 'rd-plan';
21
+ if (artifact.endsWith('/checkpoint-1.json'))
22
+ return 'checkpoint';
23
+ if (artifact.endsWith('/validation-report.md'))
24
+ return 'validation-report';
25
+ return 'resume-instructions';
26
+ }
27
+ function hasStringArray(value) {
28
+ return (Array.isArray(value) &&
29
+ value.length > 0 &&
30
+ value.every((item) => typeof item === 'string' && item.trim().length > 0));
31
+ }
32
+ function hasValidGoalPackageJson(parsed, goal) {
33
+ return (parsed.goal === goal &&
34
+ typeof parsed.doneCondition === 'string' &&
35
+ parsed.doneCondition.trim().length > 0 &&
36
+ typeof parsed.resumeCondition === 'string' &&
37
+ parsed.resumeCondition.trim().length > 0 &&
38
+ hasStringArray(parsed.acceptanceCriteria));
39
+ }
40
+ function hasValidRdPlanJson(parsed) {
41
+ return (parsed.workerQueueStatus === 'ready' &&
42
+ typeof parsed.taskCount === 'number' &&
43
+ Number.isInteger(parsed.taskCount) &&
44
+ parsed.taskCount > 0 &&
45
+ parsed.reducerRequired === true);
46
+ }
47
+ function hasValidCheckpointJson(parsed) {
48
+ return (parsed.checkpointId === 'checkpoint-1' &&
49
+ typeof parsed.createdAt === 'string' &&
50
+ parsed.createdAt.trim().length > 0 &&
51
+ isObjectRecord(parsed.workerQueueState) &&
52
+ hasStringArray(parsed.validationRefs));
53
+ }
54
+ function parseJsonObject(content) {
55
+ try {
56
+ const parsed = JSON.parse(content);
57
+ return isObjectRecord(parsed) ? parsed : null;
58
+ }
59
+ catch {
60
+ // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
61
+ return null;
62
+ }
63
+ }
64
+ function hasValidJsonMetadata(content, sessionId, artifactType, goal) {
65
+ const parsed = parseJsonObject(content);
66
+ if (parsed === null ||
67
+ parsed.sessionId !== sessionId ||
68
+ parsed.artifactType !== artifactType ||
69
+ parsed.status !== 'ready') {
70
+ return false;
71
+ }
72
+ if (artifactType === 'goal-package')
73
+ return hasValidGoalPackageJson(parsed, goal);
74
+ if (artifactType === 'rd-plan')
75
+ return hasValidRdPlanJson(parsed);
76
+ return artifactType === 'checkpoint' && hasValidCheckpointJson(parsed);
77
+ }
78
+ function parseFrontMatter(content) {
79
+ const lines = content.split(/\r?\n/);
80
+ if (lines[0] !== '---') {
81
+ return null;
82
+ }
83
+ const closingDelimiterIndex = lines.slice(1).findIndex((line) => line === '---');
84
+ if (closingDelimiterIndex === -1) {
85
+ return null;
86
+ }
87
+ const metadata = new Map();
88
+ for (const line of lines.slice(1, closingDelimiterIndex + 1)) {
89
+ const separatorIndex = line.indexOf(':');
90
+ if (separatorIndex === -1) {
91
+ return null;
92
+ }
93
+ metadata.set(line.slice(0, separatorIndex).trim(), line.slice(separatorIndex + 1).trim());
94
+ }
95
+ return Object.fromEntries(metadata);
96
+ }
97
+ export function getMarkdownBody(content) {
98
+ const lines = content.split(/\r?\n/);
99
+ const closingDelimiterIndex = lines.slice(1).findIndex((line) => line === '---');
100
+ return closingDelimiterIndex === -1 ? '' : lines.slice(closingDelimiterIndex + 2).join('\n');
101
+ }
102
+ function hasValidationReportBody(body) {
103
+ return (body.includes('Validation summary:') &&
104
+ body.includes('Checks:') &&
105
+ body.includes('Result: passed') &&
106
+ body.includes('Evidence refs:'));
107
+ }
108
+ function hasResumeInstructionsBody(body) {
109
+ return (body.includes('Resume steps:') &&
110
+ body.includes('Preconditions:') &&
111
+ body.includes('Blocked actions:') &&
112
+ body.includes('Next actions:'));
113
+ }
114
+ export function extractMarkdownListSection(body, heading) {
115
+ const lines = body.split(/\r?\n/);
116
+ const startIndex = lines.findIndex((line) => line.trim() === heading);
117
+ if (startIndex === -1) {
118
+ return [];
119
+ }
120
+ const sectionLines = lines.slice(startIndex + 1);
121
+ const nextHeadingIndex = sectionLines.findIndex((line) => /^[A-Z][A-Za-z ]+:$/.test(line.trim()));
122
+ const sectionEndIndex = nextHeadingIndex + 1 || sectionLines.length;
123
+ return sectionLines
124
+ .slice(0, sectionEndIndex)
125
+ .map((line) => line.trim())
126
+ .filter((line) => line.startsWith('- '))
127
+ .map((line) => line.slice(2).trim())
128
+ .filter((line) => line.length > 0);
129
+ }
130
+ export function getCheckpointValidationRefs(checkpointContent) {
131
+ const parsed = parseJsonObject(checkpointContent);
132
+ return parsed && hasStringArray(parsed.validationRefs) ? parsed.validationRefs : [];
133
+ }
134
+ function hasValidMarkdownMetadata(content, sessionId, artifactType) {
135
+ const metadata = parseFrontMatter(content);
136
+ if (metadata === null ||
137
+ metadata.sessionId !== sessionId ||
138
+ metadata.artifactType !== artifactType ||
139
+ metadata.status !== 'passed') {
140
+ return false;
141
+ }
142
+ const body = getMarkdownBody(content);
143
+ return artifactType === 'validation-report'
144
+ ? hasValidationReportBody(body)
145
+ : hasResumeInstructionsBody(body);
146
+ }
147
+ export function isValidResumeArtifact(artifact, content, sessionId, goal) {
148
+ if (!content.trim()) {
149
+ return false;
150
+ }
151
+ const artifactType = getExpectedResumeArtifactType(artifact);
152
+ return artifact.endsWith('.json')
153
+ ? hasValidJsonMetadata(content, sessionId, artifactType, goal)
154
+ : hasValidMarkdownMetadata(content, sessionId, artifactType);
155
+ }
@@ -39,10 +39,13 @@ function normalizeGoal(goal) {
39
39
  return normalized;
40
40
  }
41
41
  function resolveArtifactWorkspacePath(request) {
42
- return request.artifactWorkspacePath ?? (request.workspace ? getLocalArtifactPath(request.workspace) : undefined);
42
+ return (request.artifactWorkspacePath ??
43
+ (request.workspace ? getLocalArtifactPath(request.workspace) : undefined));
43
44
  }
44
45
  function hasArtifactWorkspace(request, artifactWorkspacePath) {
45
- return !!request.workspace && !!artifactWorkspacePath && hasValidArtifactWorkspace(request.workspace, artifactWorkspacePath);
46
+ return (!!request.workspace &&
47
+ !!artifactWorkspacePath &&
48
+ hasValidArtifactWorkspace(request.workspace, artifactWorkspacePath));
46
49
  }
47
50
  function createGoalPackage(sessionId, goal) {
48
51
  return {
@@ -95,14 +98,14 @@ function getCapabilityTrustLevel(sourceId) {
95
98
  if (sourceId === 'skills/*/SKILL.md' || sourceId === 'local-peaks-skills') {
96
99
  return 'local';
97
100
  }
98
- if (sourceId.startsWith('everything-claude-code')
99
- || sourceId.startsWith('ruflo-')
100
- || sourceId === 'superpowers'
101
- || sourceId === 'openspec'
102
- || sourceId === 'gstack'
103
- || sourceId === 'impeccable'
104
- || sourceId === 'andrej-karpathy-skills'
105
- || sourceId === 'mattpocock-skills') {
101
+ if (sourceId.startsWith('everything-claude-code') ||
102
+ sourceId.startsWith('ruflo-') ||
103
+ sourceId === 'superpowers' ||
104
+ sourceId === 'openspec' ||
105
+ sourceId === 'gstack' ||
106
+ sourceId === 'impeccable' ||
107
+ sourceId === 'andrej-karpathy-skills' ||
108
+ sourceId === 'mattpocock-skills') {
106
109
  return 'user-curated';
107
110
  }
108
111
  return 'third-party';
@@ -160,7 +163,9 @@ function getCapabilityActivation(status, itemType) {
160
163
  }
161
164
  }
162
165
  function createCapabilityPlan(request) {
163
- const catalogPlan = createCapabilityMapPlan({ installedCapabilityIds: request.workspace?.installedCapabilityIds ?? [] });
166
+ const catalogPlan = createCapabilityMapPlan({
167
+ installedCapabilityIds: request.workspace?.installedCapabilityIds ?? []
168
+ });
164
169
  const surfaceSummary = createCapabilitySurfaceSummary();
165
170
  const candidates = catalogPlan.items.map((item) => {
166
171
  const surface = getCapabilitySurface(item.itemType);
@@ -191,7 +196,12 @@ function createCapabilityPlan(request) {
191
196
  });
192
197
  surfaceSummary.skill += 1;
193
198
  return {
194
- sources: uniqueStrings(['docs/accessRepo.md', 'docs/mcpServer.md', 'skills/*/SKILL.md', ...catalogPlan.sources.map((source) => source.sourceId)]),
199
+ sources: uniqueStrings([
200
+ 'docs/accessRepo.md',
201
+ 'docs/mcpServer.md',
202
+ 'skills/*/SKILL.md',
203
+ ...catalogPlan.sources.map((source) => source.sourceId)
204
+ ]),
195
205
  policy: [
196
206
  'reuse-curated-capabilities-before-custom-build',
197
207
  'plan-capability-use-before-activation',
@@ -231,7 +241,9 @@ export function createAutonomousWorkflowPlan(request) {
231
241
  const goal = normalizeGoal(request.goal);
232
242
  const maxWorkers = request.maxWorkers ?? 40;
233
243
  const artifactWorkspacePath = resolveArtifactWorkspacePath(request);
234
- const memoryBackupPath = artifactWorkspacePath ? join(artifactWorkspacePath, '.peaks', 'memory-backups', 'project-memory-primary') : null;
244
+ const memoryBackupPath = artifactWorkspacePath
245
+ ? join(artifactWorkspacePath, '.peaks', 'memory-backups', 'project-memory-primary')
246
+ : null;
235
247
  const sharedWorkspaceOptions = {
236
248
  ...(artifactWorkspacePath ? { artifactWorkspacePath } : {}),
237
249
  ...(request.workspace ? { workspace: request.workspace } : {})
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Workflow graph store helpers (B wave-3 file-size split).
3
+ *
4
+ * Extracted verbatim from `workflow-graph-store.ts`: the canonical
5
+ * `PEAKS_*` error-code constants, the `GraphStoreError` shape +
6
+ * `makeError` factory, the session-root/path resolution helpers, the
7
+ * cycle detector, and the fresh-graph builder. The on-disk graph
8
+ * record layout is defined by `workflow-graph-types.ts` and is NOT
9
+ * altered by this move — `emptyGraph` emits the identical node/edge
10
+ * shape as before. `workflow-graph-store.ts` re-exports every public
11
+ * name from this module so all importers keep resolving the same path.
12
+ */
13
+ import { type WorkflowGraph, type WorkflowGraphNode, type WorkflowId } from './workflow-graph-types.js';
14
+ export declare const PEAKS_GRAPH_NOT_FOUND = "PEAKS_GRAPH_NOT_FOUND";
15
+ export declare const PEAKS_GRAPH_CORRUPTED = "PEAKS_GRAPH_CORRUPTED";
16
+ export declare const PEAKS_GRAPH_CYCLE = "PEAKS_GRAPH_CYCLE";
17
+ export declare const PEAKS_GRAPH_REF_BROKEN = "PEAKS_GRAPH_REF_BROKEN";
18
+ export declare const PEAKS_GRAPH_NODE_REQUIRED = "PEAKS_GRAPH_NODE_REQUIRED";
19
+ export declare const PEAKS_GRAPH_NODE_NOT_PREPARED = "PEAKS_GRAPH_NODE_NOT_PREPARED";
20
+ export declare const PEAKS_GRAPH_NODE_KIND_INVALID = "PEAKS_GRAPH_NODE_KIND_INVALID";
21
+ export declare const PEAKS_NODE_EXISTS = "PEAKS_NODE_EXISTS";
22
+ export declare const PEAKS_NODE_TRANSITION_INVALID = "PEAKS_NODE_TRANSITION_INVALID";
23
+ export declare const PEAKS_ENVELOPE_NOT_RECEIVED = "PEAKS_ENVELOPE_NOT_RECEIVED";
24
+ export declare const PEAKS_ENVELOPE_GRAPH_MISMATCH = "PEAKS_ENVELOPE_GRAPH_MISMATCH";
25
+ export declare const PEAKS_TERMINAL_REASON_INVALID = "PEAKS_TERMINAL_REASON_INVALID";
26
+ export declare const PEAKS_TERMINALIZE_ATOMICITY_FAILED = "PEAKS_TERMINALIZE_ATOMICITY_FAILED";
27
+ export declare const PEAKS_UNCONSUMED_ENVELOPE = "PEAKS_UNCONSUMED_ENVELOPE";
28
+ export declare const PEAKS_DEPENDENCY_NOT_CONSUMED = "PEAKS_DEPENDENCY_NOT_CONSUMED";
29
+ export declare const PEAKS_WORKFLOW_OWNS_PRESENCE_CLEAR = "PEAKS_WORKFLOW_OWNS_PRESENCE_CLEAR";
30
+ export declare const PEAKS_SESSION_NOT_BOUND = "PEAKS_SESSION_NOT_BOUND";
31
+ export declare const PEAKS_CALLER_NOT_RESOLVED = "PEAKS_CALLER_NOT_RESOLVED";
32
+ export interface GraphStoreError extends Error {
33
+ readonly code: string;
34
+ readonly legacyFallback: boolean;
35
+ }
36
+ export declare function makeError(code: string, message: string, legacyFallback?: boolean): GraphStoreError;
37
+ /** Compute the on-disk graph path. Validates `graphRef` stays under the session root. */
38
+ export declare function graphPathFor(input: {
39
+ projectRoot: string;
40
+ sessionId: string;
41
+ graphRef: string;
42
+ workflowId: WorkflowId;
43
+ }): string;
44
+ /** Detect cycles in a node-dependency graph. */
45
+ export declare function detectCycle(nodes: readonly WorkflowGraphNode[]): boolean;
46
+ /** Build a fresh empty graph with one terminal node. */
47
+ export declare function emptyGraph(input: {
48
+ workflowId: WorkflowId;
49
+ rootSkill: string;
50
+ parentWorkflowId?: WorkflowId;
51
+ }): WorkflowGraph;
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Workflow graph store helpers (B wave-3 file-size split).
3
+ *
4
+ * Extracted verbatim from `workflow-graph-store.ts`: the canonical
5
+ * `PEAKS_*` error-code constants, the `GraphStoreError` shape +
6
+ * `makeError` factory, the session-root/path resolution helpers, the
7
+ * cycle detector, and the fresh-graph builder. The on-disk graph
8
+ * record layout is defined by `workflow-graph-types.ts` and is NOT
9
+ * altered by this move — `emptyGraph` emits the identical node/edge
10
+ * shape as before. `workflow-graph-store.ts` re-exports every public
11
+ * name from this module so all importers keep resolving the same path.
12
+ */
13
+ import { join, resolve, sep } from 'node:path';
14
+ import { WORKFLOW_ID_REGEX, isSafeRelativeGraphRef } from './workflow-graph-types.js';
15
+ export const PEAKS_GRAPH_NOT_FOUND = 'PEAKS_GRAPH_NOT_FOUND';
16
+ export const PEAKS_GRAPH_CORRUPTED = 'PEAKS_GRAPH_CORRUPTED';
17
+ export const PEAKS_GRAPH_CYCLE = 'PEAKS_GRAPH_CYCLE';
18
+ export const PEAKS_GRAPH_REF_BROKEN = 'PEAKS_GRAPH_REF_BROKEN';
19
+ export const PEAKS_GRAPH_NODE_REQUIRED = 'PEAKS_GRAPH_NODE_REQUIRED';
20
+ export const PEAKS_GRAPH_NODE_NOT_PREPARED = 'PEAKS_GRAPH_NODE_NOT_PREPARED';
21
+ export const PEAKS_GRAPH_NODE_KIND_INVALID = 'PEAKS_GRAPH_NODE_KIND_INVALID';
22
+ export const PEAKS_NODE_EXISTS = 'PEAKS_NODE_EXISTS';
23
+ export const PEAKS_NODE_TRANSITION_INVALID = 'PEAKS_NODE_TRANSITION_INVALID';
24
+ export const PEAKS_ENVELOPE_NOT_RECEIVED = 'PEAKS_ENVELOPE_NOT_RECEIVED';
25
+ export const PEAKS_ENVELOPE_GRAPH_MISMATCH = 'PEAKS_ENVELOPE_GRAPH_MISMATCH';
26
+ export const PEAKS_TERMINAL_REASON_INVALID = 'PEAKS_TERMINAL_REASON_INVALID';
27
+ export const PEAKS_TERMINALIZE_ATOMICITY_FAILED = 'PEAKS_TERMINALIZE_ATOMICITY_FAILED';
28
+ export const PEAKS_UNCONSUMED_ENVELOPE = 'PEAKS_UNCONSUMED_ENVELOPE';
29
+ export const PEAKS_DEPENDENCY_NOT_CONSUMED = 'PEAKS_DEPENDENCY_NOT_CONSUMED';
30
+ export const PEAKS_WORKFLOW_OWNS_PRESENCE_CLEAR = 'PEAKS_WORKFLOW_OWNS_PRESENCE_CLEAR';
31
+ export const PEAKS_SESSION_NOT_BOUND = 'PEAKS_SESSION_NOT_BOUND';
32
+ export const PEAKS_CALLER_NOT_RESOLVED = 'PEAKS_CALLER_NOT_RESOLVED';
33
+ export function makeError(code, message, legacyFallback = false) {
34
+ const err = new Error(message);
35
+ err.name = 'GraphStoreError';
36
+ err.code = code;
37
+ err.legacyFallback = legacyFallback;
38
+ return err;
39
+ }
40
+ function safeSessionRuntimeRoot(projectRoot, sessionId) {
41
+ if (!WORKFLOW_ID_REGEX.test(sessionId)) {
42
+ throw makeError(PEAKS_GRAPH_REF_BROKEN, `invalid sessionId: ${sessionId}`);
43
+ }
44
+ const root = resolve(projectRoot);
45
+ return join(root, '.peaks', '_runtime', sessionId);
46
+ }
47
+ /** Compute the on-disk graph path. Validates `graphRef` stays under the session root. */
48
+ export function graphPathFor(input) {
49
+ if (!isSafeRelativeGraphRef(input.graphRef, input.workflowId)) {
50
+ throw makeError(PEAKS_GRAPH_REF_BROKEN, `graphRef is not safe: ${input.graphRef}`);
51
+ }
52
+ if (!WORKFLOW_ID_REGEX.test(input.workflowId)) {
53
+ throw makeError(PEAKS_GRAPH_REF_BROKEN, `workflowId is not safe: ${input.workflowId}`);
54
+ }
55
+ const sessionRoot = safeSessionRuntimeRoot(input.projectRoot, input.sessionId);
56
+ const resolved = resolve(sessionRoot, input.graphRef);
57
+ if (!resolved.startsWith(sessionRoot + sep) && resolved !== sessionRoot) {
58
+ throw makeError(PEAKS_GRAPH_REF_BROKEN, `graphRef escapes session root: ${input.graphRef}`);
59
+ }
60
+ return resolved;
61
+ }
62
+ /** Detect cycles in a node-dependency graph. */
63
+ export function detectCycle(nodes) {
64
+ const map = new Map();
65
+ for (const n of nodes)
66
+ map.set(n.id, n);
67
+ const color = new Map();
68
+ const visiting = (id) => {
69
+ const c = color.get(id) ?? 0;
70
+ if (c === 1)
71
+ return true;
72
+ if (c === 2)
73
+ return false;
74
+ color.set(id, 1);
75
+ const node = map.get(id);
76
+ if (node) {
77
+ for (const dep of node.dependsOn) {
78
+ if (visiting(dep))
79
+ return true;
80
+ }
81
+ }
82
+ color.set(id, 2);
83
+ return false;
84
+ };
85
+ for (const n of nodes) {
86
+ if (visiting(n.id))
87
+ return true;
88
+ }
89
+ return false;
90
+ }
91
+ /** Build a fresh empty graph with one terminal node. */
92
+ export function emptyGraph(input) {
93
+ const graph = {
94
+ workflowId: input.workflowId,
95
+ rootSkill: input.rootSkill,
96
+ ...(input.parentWorkflowId ? { parentWorkflowId: input.parentWorkflowId } : {}),
97
+ nodes: [
98
+ {
99
+ id: 'terminal',
100
+ kind: 'terminal',
101
+ label: 'workflow complete',
102
+ status: 'prepared',
103
+ dependsOn: [],
104
+ ackStatus: 'not-required'
105
+ }
106
+ ],
107
+ edges: [],
108
+ schemaVersion: 1
109
+ };
110
+ return graph;
111
+ }