peaks-loop 4.0.0-beta.9 → 4.0.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 (552) hide show
  1. package/CHANGELOG.md +910 -141
  2. package/README-en.md +26 -7
  3. package/README.md +75 -6
  4. package/agents/karpathy-reviewer.md +33 -0
  5. package/bin/peaks.js +0 -0
  6. package/dist/cli/cli-helpers.d.ts +31 -6
  7. package/dist/cli/cli-helpers.js +48 -25
  8. package/dist/cli/commands/_register.d.ts +3 -0
  9. package/dist/cli/commands/_register.js +139 -0
  10. package/dist/cli/commands/_super.d.ts +10 -0
  11. package/dist/cli/commands/_super.js +97 -0
  12. package/dist/cli/commands/adapter-commands-s2a.js +1 -1
  13. package/dist/cli/commands/asset-commands.js +33 -16
  14. package/dist/cli/commands/audit-commands.js +2 -2
  15. package/dist/cli/commands/autonomous-swarm-commands.d.ts +12 -0
  16. package/dist/cli/commands/autonomous-swarm-commands.js +120 -0
  17. package/dist/cli/commands/bee-commands.js +1 -1
  18. package/dist/cli/commands/capability-commands.js +1 -1
  19. package/dist/cli/commands/capability-worker-config-sc-commands.js +0 -2
  20. package/dist/cli/commands/changeset-commands.d.ts +13 -0
  21. package/dist/cli/commands/changeset-commands.js +46 -0
  22. package/dist/cli/commands/code-commands.d.ts +11 -1
  23. package/dist/cli/commands/code-commands.js +19 -699
  24. package/dist/cli/commands/code-job-shape-commands.d.ts +9 -0
  25. package/dist/cli/commands/code-job-shape-commands.js +164 -0
  26. package/dist/cli/commands/code-mode-gate-commands.d.ts +9 -0
  27. package/dist/cli/commands/code-mode-gate-commands.js +223 -0
  28. package/dist/cli/commands/code-review-commands.js +2 -2
  29. package/dist/cli/commands/code-run-command.d.ts +12 -0
  30. package/dist/cli/commands/code-run-command.js +68 -0
  31. package/dist/cli/commands/code-runtime-commands.d.ts +11 -0
  32. package/dist/cli/commands/code-runtime-commands.js +391 -0
  33. package/dist/cli/commands/codegraph-commands.js +1 -1
  34. package/dist/cli/commands/compact-command.js +53 -1
  35. package/dist/cli/commands/complexity-commands.js +1 -1
  36. package/dist/cli/commands/config-commands.js +4 -75
  37. package/dist/cli/commands/container-commands.d.ts +28 -0
  38. package/dist/cli/commands/container-commands.js +221 -0
  39. package/dist/cli/commands/context-commands.js +3 -2
  40. package/dist/cli/commands/core/artifacts-command.js +1 -1
  41. package/dist/cli/commands/core/binding-commands.js +1 -1
  42. package/dist/cli/commands/core/doctor-command.js +63 -3
  43. package/dist/cli/commands/core/memory-command.js +1 -1
  44. package/dist/cli/commands/core/profile-command.js +1 -1
  45. package/dist/cli/commands/core/proxy-command.js +1 -1
  46. package/dist/cli/commands/core/session-command.js +9 -7
  47. package/dist/cli/commands/core/skill-command.js +7 -4
  48. package/dist/cli/commands/core/standards-command.js +1 -1
  49. package/dist/cli/commands/cron-commands.d.ts +57 -0
  50. package/dist/cli/commands/cron-commands.js +257 -0
  51. package/dist/cli/commands/cron-scheduler-commands.d.ts +47 -0
  52. package/dist/cli/commands/cron-scheduler-commands.js +284 -0
  53. package/dist/cli/commands/dashboard-commands.d.ts +4 -0
  54. package/dist/cli/commands/dashboard-commands.js +10 -0
  55. package/dist/cli/commands/dashboard-long-run.d.ts +25 -0
  56. package/dist/cli/commands/dashboard-long-run.js +122 -0
  57. package/dist/cli/commands/dashboard-summary.d.ts +12 -0
  58. package/dist/cli/commands/dashboard-summary.js +58 -0
  59. package/dist/cli/commands/dispatch-commands.d.ts +0 -7
  60. package/dist/cli/commands/dispatch-commands.js +372 -8
  61. package/dist/cli/commands/dispatch-from-dag.js +4 -1
  62. package/dist/cli/commands/doc-commands.js +1 -1
  63. package/dist/cli/commands/ecc-commands.d.ts +30 -0
  64. package/dist/cli/commands/ecc-commands.js +119 -0
  65. package/dist/cli/commands/evolution-commands.js +1 -1
  66. package/dist/cli/commands/feedback-commands.js +1 -1
  67. package/dist/cli/commands/final-review-commands.js +1 -1
  68. package/dist/cli/commands/fixture-commands.js +1 -1
  69. package/dist/cli/commands/fork-commands.js +1 -1
  70. package/dist/cli/commands/gate-commands.js +128 -6
  71. package/dist/cli/commands/governance-classify-contract-commands.d.ts +21 -0
  72. package/dist/cli/commands/governance-classify-contract-commands.js +273 -0
  73. package/dist/cli/commands/heartbeat-commands.js +76 -5
  74. package/dist/cli/commands/heartbeat-watch-command.d.ts +31 -0
  75. package/dist/cli/commands/heartbeat-watch-command.js +146 -0
  76. package/dist/cli/commands/hook-handle.js +1 -1
  77. package/dist/cli/commands/hooks-commands.js +126 -10
  78. package/dist/cli/commands/ide-commands.js +1 -1
  79. package/dist/cli/commands/impact-commands.js +1 -1
  80. package/dist/cli/commands/job-commands.js +34 -1
  81. package/dist/cli/commands/lease-metrics-commands.d.ts +67 -0
  82. package/dist/cli/commands/lease-metrics-commands.js +231 -0
  83. package/dist/cli/commands/lease-stats-commands.d.ts +65 -0
  84. package/dist/cli/commands/lease-stats-commands.js +107 -0
  85. package/dist/cli/commands/legacy-commands.js +1 -1
  86. package/dist/cli/commands/log-commands.js +1 -1
  87. package/dist/cli/commands/loop-commands.js +1 -1
  88. package/dist/cli/commands/loop-eval-commands.js +1 -1
  89. package/dist/cli/commands/memory-commands.js +1 -1
  90. package/dist/cli/commands/migrate-1-4-1-command.js +1 -1
  91. package/dist/cli/commands/migrate-v2-10-to-v2-11-command.js +1 -1
  92. package/dist/cli/commands/mut-commands.d.ts +1 -1
  93. package/dist/cli/commands/mut-commands.js +1 -5
  94. package/dist/cli/commands/observability-commands.js +1 -1
  95. package/dist/cli/commands/openspec-commands.js +65 -4
  96. package/dist/cli/commands/perf-audit-commands.js +3 -3
  97. package/dist/cli/commands/perf-commands.js +1 -1
  98. package/dist/cli/commands/polyrepo-commands.js +1 -1
  99. package/dist/cli/commands/prd-blocks-commands.js +1 -1
  100. package/dist/cli/commands/prd-commands.js +4 -2
  101. package/dist/cli/commands/preferences-commands.js +23 -3
  102. package/dist/cli/commands/project-commands.js +1 -1
  103. package/dist/cli/commands/qa-business-review-commands.js +1 -1
  104. package/dist/cli/commands/qa-commands.d.ts +1 -1
  105. package/dist/cli/commands/qa-commands.js +39 -3
  106. package/dist/cli/commands/release-commands.d.ts +15 -0
  107. package/dist/cli/commands/release-commands.js +113 -21
  108. package/dist/cli/commands/request-commands.js +1 -1
  109. package/dist/cli/commands/retrospective-commands.js +1 -1
  110. package/dist/cli/commands/reviewer-commands.js +1 -1
  111. package/dist/cli/commands/role-commands.js +1 -1
  112. package/dist/cli/commands/runtime-commands-helpers.d.ts +7 -0
  113. package/dist/cli/commands/runtime-commands-helpers.js +24 -0
  114. package/dist/cli/commands/runtime-commands.js +1 -2
  115. package/dist/cli/commands/sc-commands.js +4 -2
  116. package/dist/cli/commands/scan-commands.js +1 -1
  117. package/dist/cli/commands/security-audit-commands.js +3 -3
  118. package/dist/cli/commands/sediment-commands.js +10 -1
  119. package/dist/cli/commands/session-24h-mode.d.ts +26 -0
  120. package/dist/cli/commands/session-24h-mode.js +196 -0
  121. package/dist/cli/commands/share-commands.d.ts +19 -0
  122. package/dist/cli/commands/share-commands.js +121 -2
  123. package/dist/cli/commands/skill-conformance-commands.js +1 -1
  124. package/dist/cli/commands/skill-loop-engineering-readiness-commands.js +1 -1
  125. package/dist/cli/commands/skill-search-commands.js +4 -1
  126. package/dist/cli/commands/slice-commands.js +1 -1
  127. package/dist/cli/commands/slice-integrate-commands.js +1 -1
  128. package/dist/cli/commands/slice-review-commands.js +1 -1
  129. package/dist/cli/commands/smoke-commands.js +1 -1
  130. package/dist/cli/commands/sop-commands.js +1 -1
  131. package/dist/cli/commands/spill-demo-command.d.ts +7 -0
  132. package/dist/cli/commands/spill-demo-command.js +29 -0
  133. package/dist/cli/commands/statusline-commands.d.ts +12 -0
  134. package/dist/cli/commands/statusline-commands.js +79 -17
  135. package/dist/cli/commands/sub-agent-commands.js +2 -1
  136. package/dist/cli/commands/sub-agent-shared.d.ts +10 -0
  137. package/dist/cli/commands/sub-agent-shared.js +24 -1
  138. package/dist/cli/commands/swarm-commands.d.ts +13 -0
  139. package/dist/cli/commands/swarm-commands.js +77 -0
  140. package/dist/cli/commands/tech-commands.d.ts +64 -0
  141. package/dist/cli/commands/tech-commands.js +195 -0
  142. package/dist/cli/commands/understand-commands.js +1 -1
  143. package/dist/cli/commands/upgrade-commands.d.ts +2 -0
  144. package/dist/cli/commands/upgrade-commands.js +40 -5
  145. package/dist/cli/commands/user-touchpoint-commands.js +1 -1
  146. package/dist/cli/commands/verdict-aggregate-command.js +1 -1
  147. package/dist/cli/commands/vm-commands.d.ts +31 -0
  148. package/dist/cli/commands/vm-commands.js +274 -0
  149. package/dist/cli/commands/workflow-commands.js +24 -1
  150. package/dist/cli/commands/workflow-plan-commands.js +1 -1
  151. package/dist/cli/commands/workspace/init-command.js +1 -1
  152. package/dist/cli/commands/workspace/migrate-command.js +1 -1
  153. package/dist/cli/commands/workspace/reconcile-command.js +1 -1
  154. package/dist/cli/commands/worktree-auth-commands.d.ts +29 -0
  155. package/dist/cli/commands/worktree-auth-commands.js +652 -0
  156. package/dist/cli/index.js +58 -13
  157. package/dist/cli/program.d.ts +2 -2
  158. package/dist/cli/program.js +86 -281
  159. package/dist/services/24h-mode/decider.d.ts +103 -0
  160. package/dist/services/24h-mode/decider.js +144 -0
  161. package/dist/services/24h-mode/index.d.ts +12 -0
  162. package/dist/services/24h-mode/index.js +12 -0
  163. package/dist/services/24h-mode/state.d.ts +48 -0
  164. package/dist/services/24h-mode/state.js +51 -0
  165. package/dist/services/24h-mode/store.d.ts +27 -0
  166. package/dist/services/24h-mode/store.js +119 -0
  167. package/dist/services/artifacts/artifact-prerequisites.js +1 -1
  168. package/dist/services/artifacts/request-artifact-service.js +1 -1
  169. package/dist/services/artifacts/workspace-service.js +1 -1
  170. package/dist/services/audit/enforcers/lint-bee-runtime-contract.d.ts +25 -0
  171. package/dist/services/audit/enforcers/lint-bee-runtime-contract.js +91 -0
  172. package/dist/services/audit/enforcers/lint-peaks-code-runtime.d.ts +16 -0
  173. package/dist/services/audit/enforcers/lint-peaks-code-runtime.js +31 -0
  174. package/dist/services/audit/enforcers/lint-peaks-skill-runtime.d.ts +23 -0
  175. package/dist/services/audit/enforcers/lint-peaks-skill-runtime.js +59 -0
  176. package/dist/services/audit/enforcers/lint-peaks-ui-sc-txt-runtime.d.ts +28 -0
  177. package/dist/services/audit/enforcers/lint-peaks-ui-sc-txt-runtime.js +86 -0
  178. package/dist/services/audit/enforcers/lint-prd-artifact-handoff.d.ts +16 -0
  179. package/dist/services/audit/enforcers/lint-prd-artifact-handoff.js +41 -0
  180. package/dist/services/audit/enforcers/lint-prd-source-snapshot.d.ts +27 -0
  181. package/dist/services/audit/enforcers/lint-prd-source-snapshot.js +47 -0
  182. package/dist/services/audit/enforcers/lint-qa-gateguard-and-runtime.d.ts +19 -0
  183. package/dist/services/audit/enforcers/lint-qa-gateguard-and-runtime.js +47 -0
  184. package/dist/services/audit/enforcers/lint-rd-handoff-coverage.d.ts +18 -0
  185. package/dist/services/audit/enforcers/lint-rd-handoff-coverage.js +70 -0
  186. package/dist/services/audit/enforcers/lint-skill-presence-mandatory.d.ts +25 -0
  187. package/dist/services/audit/enforcers/lint-skill-presence-mandatory.js +53 -0
  188. package/dist/services/audit/red-line-catalog-p2-a.d.ts +0 -6
  189. package/dist/services/audit/red-line-catalog-p2-a.js +230 -1
  190. package/dist/services/audit/static-service.d.ts +32 -25
  191. package/dist/services/audit/static-service.js +30 -109
  192. package/dist/services/audit-independent/index.d.ts +2 -0
  193. package/dist/services/audit-independent/index.js +2 -0
  194. package/dist/services/autonomous-swarm/autonomous-swarm-service.d.ts +127 -0
  195. package/dist/services/autonomous-swarm/autonomous-swarm-service.js +446 -0
  196. package/dist/services/changeset/changeset-check-service.d.ts +22 -0
  197. package/dist/services/changeset/changeset-check-service.js +47 -0
  198. package/dist/services/code/auto-compact-modes.d.ts +30 -0
  199. package/dist/services/code/auto-compact-modes.js +38 -0
  200. package/dist/services/code/auto-compact-orchestrator.d.ts +43 -5
  201. package/dist/services/code/auto-compact-orchestrator.js +101 -21
  202. package/dist/services/code/dag-orchestrator.d.ts +30 -1
  203. package/dist/services/code/dag-orchestrator.js +106 -1
  204. package/dist/services/code/status-line-renderer.d.ts +2 -0
  205. package/dist/services/code/status-line-renderer.js +21 -3
  206. package/dist/services/code-review/ocr-service.d.ts +1 -1
  207. package/dist/services/code-review/ocr-service.js +6 -3
  208. package/dist/services/compact-history/compact-history-service.d.ts +41 -0
  209. package/dist/services/compact-history/compact-history-service.js +62 -0
  210. package/dist/services/compact-statusline/compact-statusline-service.d.ts +16 -0
  211. package/dist/services/compact-statusline/compact-statusline-service.js +83 -0
  212. package/dist/services/config/config-service.d.ts +1 -12
  213. package/dist/services/config/config-service.js +3 -72
  214. package/dist/services/config/config-types.d.ts +2 -4
  215. package/dist/services/config/config-types.js +1 -1
  216. package/dist/services/container/container-lease.d.ts +67 -0
  217. package/dist/services/container/container-lease.js +135 -0
  218. package/dist/services/context/auto-compact-dispatcher.d.ts +40 -5
  219. package/dist/services/context/auto-compact-dispatcher.js +32 -102
  220. package/dist/services/context/auto-compact-reader.js +1 -1
  221. package/dist/services/context/auto-compact-types.d.ts +27 -2
  222. package/dist/services/context/auto-compact-types.js +8 -1
  223. package/dist/services/context/build-dispatch-system-prompt.d.ts +75 -0
  224. package/dist/services/context/build-dispatch-system-prompt.js +117 -0
  225. package/dist/services/context/collector.d.ts +2 -2
  226. package/dist/services/context/context-builder.d.ts +4 -4
  227. package/dist/services/context/context-schema.d.ts +48 -48
  228. package/dist/services/context/ide-detect.d.ts +4 -0
  229. package/dist/services/context/ide-detect.js +24 -0
  230. package/dist/services/context/main-session-monitor.d.ts +1 -4
  231. package/dist/services/context/main-session-monitor.js +1 -24
  232. package/dist/services/context/memory-index-reader.d.ts +8 -0
  233. package/dist/services/context/memory-index-reader.js +57 -0
  234. package/dist/services/context/memory-lru-cache.d.ts +12 -0
  235. package/dist/services/context/memory-lru-cache.js +60 -0
  236. package/dist/services/context/memory-preflight-config.d.ts +19 -0
  237. package/dist/services/context/memory-preflight-config.js +25 -0
  238. package/dist/services/context/memory-preflight-service.d.ts +19 -0
  239. package/dist/services/context/memory-preflight-service.js +120 -0
  240. package/dist/services/context/spillover-store.d.ts +23 -0
  241. package/dist/services/context/spillover-store.js +155 -0
  242. package/dist/services/context/spillover-types.d.ts +18 -0
  243. package/dist/services/context/spillover-types.js +1 -0
  244. package/dist/services/crystallization/crystallization-service.d.ts +22 -5
  245. package/dist/services/crystallization/crystallization-service.js +8 -14
  246. package/dist/services/crystallization/crystallization-types.d.ts +6 -6
  247. package/dist/services/crystallization/evidence-brief-builder.d.ts +1 -1
  248. package/dist/services/crystallization/index.d.ts +13 -0
  249. package/dist/services/crystallization/index.js +13 -0
  250. package/dist/services/dashboard/project-dashboard-service.js +2 -2
  251. package/dist/services/dispatch/await-batch.d.ts +70 -0
  252. package/dist/services/dispatch/await-batch.js +272 -0
  253. package/dist/services/dispatch/batch-counter.js +1 -1
  254. package/dist/services/dispatch/dispatch-record-writer.d.ts +126 -4
  255. package/dist/services/dispatch/dispatch-record-writer.js +239 -9
  256. package/dist/services/dispatch/slice-dag.d.ts +46 -0
  257. package/dist/services/dispatch/slice-dag.js +6 -0
  258. package/dist/services/dispatch/stage-enum.d.ts +27 -0
  259. package/dist/services/dispatch/stage-enum.js +48 -0
  260. package/dist/services/dispatch/startup-timeout.d.ts +86 -0
  261. package/dist/services/dispatch/startup-timeout.js +97 -0
  262. package/dist/services/dispatch/sub-agent-dispatcher.js +40 -89
  263. package/dist/services/dispatch/test-tool-detection.d.ts +25 -1
  264. package/dist/services/dispatch/test-tool-detection.js +80 -0
  265. package/dist/services/doctor/doctor-service/checks/check-id-schema.d.ts +18 -0
  266. package/dist/services/doctor/doctor-service/checks/check-id-schema.js +64 -0
  267. package/dist/services/doctor/doctor-service/checks/codegraph-capability.d.ts +14 -0
  268. package/dist/services/doctor/doctor-service/checks/codegraph-capability.js +69 -0
  269. package/dist/services/doctor/doctor-service/checks/dist-source-version.d.ts +32 -0
  270. package/dist/services/doctor/doctor-service/checks/dist-source-version.js +110 -0
  271. package/dist/services/doctor/doctor-service/checks/gateguard-conflict.d.ts +24 -0
  272. package/dist/services/doctor/doctor-service/checks/gateguard-conflict.js +164 -0
  273. package/dist/services/doctor/doctor-service/checks/l3-memory-health.d.ts +16 -0
  274. package/dist/services/doctor/doctor-service/checks/l3-memory-health.js +57 -0
  275. package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.d.ts +19 -0
  276. package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.js +66 -0
  277. package/dist/services/doctor/doctor-service/checks/schema-validity.d.ts +10 -0
  278. package/dist/services/doctor/doctor-service/checks/schema-validity.js +33 -0
  279. package/dist/services/doctor/doctor-service/checks/skill-apply-note.d.ts +20 -0
  280. package/dist/services/doctor/doctor-service/checks/skill-apply-note.js +85 -0
  281. package/dist/services/doctor/doctor-service/checks/skill-existence.d.ts +13 -0
  282. package/dist/services/doctor/doctor-service/checks/skill-existence.js +30 -0
  283. package/dist/services/doctor/doctor-service/checks/skill-name-match.d.ts +10 -0
  284. package/dist/services/doctor/doctor-service/checks/skill-name-match.js +25 -0
  285. package/dist/services/doctor/doctor-service/checks/skill-parse.d.ts +10 -0
  286. package/dist/services/doctor/doctor-service/checks/skill-parse.js +19 -0
  287. package/dist/services/doctor/doctor-service/checks/skill-presence.d.ts +21 -0
  288. package/dist/services/doctor/doctor-service/checks/skill-presence.js +75 -0
  289. package/dist/services/doctor/doctor-service/checks/skill-runbook.d.ts +14 -0
  290. package/dist/services/doctor/doctor-service/checks/skill-runbook.js +47 -0
  291. package/dist/services/doctor/doctor-service/checks/statusline-install.d.ts +14 -0
  292. package/dist/services/doctor/doctor-service/checks/statusline-install.js +32 -0
  293. package/dist/services/doctor/doctor-service/checks/statusline-runtime.d.ts +13 -0
  294. package/dist/services/doctor/doctor-service/checks/statusline-runtime.js +30 -0
  295. package/dist/services/doctor/doctor-service/checks/user-config.d.ts +11 -0
  296. package/dist/services/doctor/doctor-service/checks/user-config.js +27 -0
  297. package/dist/services/doctor/doctor-service/checks/workspace-init.d.ts +16 -0
  298. package/dist/services/doctor/doctor-service/checks/workspace-init.js +34 -0
  299. package/dist/services/doctor/doctor-service/checks/workspace-layout.d.ts +33 -0
  300. package/dist/services/doctor/doctor-service/checks/workspace-layout.js +180 -0
  301. package/dist/services/doctor/doctor-service/index.d.ts +48 -0
  302. package/dist/services/doctor/doctor-service/index.js +254 -0
  303. package/dist/services/doctor/doctor-service/plugin-registry.d.ts +41 -0
  304. package/dist/services/doctor/doctor-service/plugin-registry.js +77 -0
  305. package/dist/services/doctor/doctor-service/report/final-summary.d.ts +20 -0
  306. package/dist/services/doctor/doctor-service/report/final-summary.js +29 -0
  307. package/dist/services/doctor/doctor-service/types.d.ts +245 -0
  308. package/dist/services/doctor/doctor-service/types.js +15 -0
  309. package/dist/services/doctor/doctor-service.d.ts +15 -146
  310. package/dist/services/doctor/doctor-service.js +22 -926
  311. package/dist/services/doctor/index.d.ts +22 -0
  312. package/dist/services/doctor/index.js +22 -0
  313. package/dist/services/env/shell-probe.d.ts +71 -0
  314. package/dist/services/env/shell-probe.js +161 -0
  315. package/dist/services/evolution/evolution-types.d.ts +39 -39
  316. package/dist/services/final-review/final-review-service.d.ts +11 -1
  317. package/dist/services/final-review/index.d.ts +2 -0
  318. package/dist/services/final-review/index.js +1 -0
  319. package/dist/services/hooks/auto-compact-hook-install.d.ts +4 -5
  320. package/dist/services/hooks/auto-compact-hook-install.js +4 -5
  321. package/dist/services/hooks/worktree-authorization-gate.d.ts +205 -0
  322. package/dist/services/hooks/worktree-authorization-gate.js +492 -0
  323. package/dist/services/ide/adapters/claude-code-adapter.js +2 -2
  324. package/dist/services/ide/adapters/qoder-adapter.d.ts +25 -0
  325. package/dist/services/ide/adapters/qoder-adapter.js +57 -0
  326. package/dist/services/ide/adapters/tongyi-lingma-adapter.d.ts +16 -0
  327. package/dist/services/ide/adapters/tongyi-lingma-adapter.js +45 -0
  328. package/dist/services/ide/ide-registry.js +6 -0
  329. package/dist/services/ide/ide-types.d.ts +1 -1
  330. package/dist/services/job/job-types.d.ts +56 -56
  331. package/dist/services/job-snapshot/index.d.ts +8 -0
  332. package/dist/services/job-snapshot/index.js +7 -0
  333. package/dist/services/{job/job-resource-snapshot.d.ts → job-snapshot/snapshot.d.ts} +1 -1
  334. package/dist/services/job-snapshot/types.d.ts +7 -0
  335. package/dist/services/job-snapshot/types.js +1 -0
  336. package/dist/services/karpathy-cost/karpathy-cost-check-service.d.ts +67 -0
  337. package/dist/services/karpathy-cost/karpathy-cost-check-service.js +108 -0
  338. package/dist/services/log/retention.d.ts +16 -0
  339. package/dist/services/log/retention.js +17 -0
  340. package/dist/services/loop/loop-bee-relation-types.d.ts +6 -6
  341. package/dist/services/loop/loop-release-types.d.ts +24 -24
  342. package/dist/services/loop/monotonic-runner.d.ts +17 -11
  343. package/dist/services/loop/monotonic-runner.js +118 -79
  344. package/dist/services/memory/project-memory-service/index/kind-dispatch.d.ts +8 -0
  345. package/dist/services/memory/project-memory-service/index/kind-dispatch.js +253 -0
  346. package/dist/services/memory/project-memory-service/index/ranking.d.ts +6 -0
  347. package/dist/services/memory/project-memory-service/index/ranking.js +171 -0
  348. package/dist/services/memory/project-memory-service/index/search.d.ts +34 -0
  349. package/dist/services/memory/project-memory-service/index/search.js +194 -0
  350. package/dist/services/memory/project-memory-service/index.d.ts +9 -0
  351. package/dist/services/memory/project-memory-service/index.js +24 -0
  352. package/dist/services/memory/project-memory-service/parsers/frontmatter.d.ts +9 -0
  353. package/dist/services/memory/project-memory-service/parsers/frontmatter.js +106 -0
  354. package/dist/services/memory/project-memory-service/parsers/markdown-pure.d.ts +7 -0
  355. package/dist/services/memory/project-memory-service/parsers/markdown-pure.js +96 -0
  356. package/dist/services/memory/project-memory-service/store/atomic-write.d.ts +5 -0
  357. package/dist/services/memory/project-memory-service/store/atomic-write.js +56 -0
  358. package/dist/services/memory/project-memory-service/store/paths.d.ts +8 -0
  359. package/dist/services/memory/project-memory-service/store/paths.js +116 -0
  360. package/dist/services/memory/project-memory-service/types.d.ts +128 -0
  361. package/dist/services/memory/project-memory-service/types.js +9 -0
  362. package/dist/services/memory/project-memory-service.d.ts +1 -167
  363. package/dist/services/memory/project-memory-service.js +19 -816
  364. package/dist/services/migrate-skill-name/schema.d.ts +2 -2
  365. package/dist/services/observability/aggregation.d.ts +27 -0
  366. package/dist/services/observability/aggregation.js +72 -0
  367. package/dist/services/observability/observability-service.d.ts +73 -7
  368. package/dist/services/observability/observability-service.js +87 -1
  369. package/dist/services/openspec/artifact-boundary.d.ts +138 -0
  370. package/dist/services/openspec/artifact-boundary.js +150 -0
  371. package/dist/services/openspec/coverage-evidence-reader.d.ts +191 -0
  372. package/dist/services/openspec/coverage-evidence-reader.js +386 -0
  373. package/dist/services/openspec/openspec-archive-service.d.ts +70 -0
  374. package/dist/services/openspec/openspec-archive-service.js +320 -8
  375. package/dist/services/openspec/openspec-bridge-service.js +1 -1
  376. package/dist/services/openspec/openspec-init-service.js +1 -1
  377. package/dist/services/openspec/openspec-propose-from-doctor-service.js +1 -1
  378. package/dist/services/openspec/openspec-render-service.js +7 -4
  379. package/dist/services/openspec/openspec-scan-service.js +1 -1
  380. package/dist/services/openspec/openspec-validate-service.js +5 -4
  381. package/dist/services/preferences/preferences-service.js +10 -0
  382. package/dist/services/preferences/preferences-types.d.ts +13 -0
  383. package/dist/services/preferences/preferences-types.js +11 -0
  384. package/dist/services/qa/screenshot-archive-service.d.ts +51 -0
  385. package/dist/services/qa/screenshot-archive-service.js +134 -0
  386. package/dist/services/rd/rd-service.js +10 -11
  387. package/dist/services/rd/types.d.ts +32 -32
  388. package/dist/services/rd-swarm/rd-swarm-service.d.ts +60 -0
  389. package/dist/services/rd-swarm/rd-swarm-service.js +93 -0
  390. package/dist/services/recommendations/capability-seed-items.js +0 -1
  391. package/dist/services/recommendations/capability-seed-mappings.js +0 -1
  392. package/dist/services/recommendations/capability-seed-sources.js +0 -1
  393. package/dist/services/release/version-precheck-service.d.ts +51 -0
  394. package/dist/services/release/version-precheck-service.js +257 -0
  395. package/dist/services/scan/acceptance-coverage-service.js +1 -1
  396. package/dist/services/scan/archetype-service.js +1 -1
  397. package/dist/services/scan/existing-system-service.js +1 -1
  398. package/dist/services/scan/libraries-service.js +1 -1
  399. package/dist/services/sediment/json-schema.d.ts +40 -40
  400. package/dist/services/share/bundle-types.d.ts +12 -12
  401. package/dist/services/share/run-state-contract.d.ts +2 -2
  402. package/dist/services/skill/skill-search-service.d.ts +12 -7
  403. package/dist/services/skill/skill-search-service.js +8 -4
  404. package/dist/services/skillhub/migrations/001-initial.sql +71 -0
  405. package/dist/services/skillhub/migrations/002-loop-release.sql +32 -0
  406. package/dist/services/skillhub/migrations/003-loop-bee-relation.sql +35 -0
  407. package/dist/services/skillhub/migrations/004-loop-bee-extension.sql +65 -0
  408. package/dist/services/skillhub/migrations/005-evolution-evaluation.sql +81 -0
  409. package/dist/services/skillhub/migrations/006-crystallization-event.sql +92 -0
  410. package/dist/services/skills/hooks-settings-service.d.ts +75 -0
  411. package/dist/services/skills/hooks-settings-service.js +230 -2
  412. package/dist/services/skills/skill-registry.d.ts +1 -0
  413. package/dist/services/skills/skill-registry.js +6 -4
  414. package/dist/services/skills/skill-runbook-service.js +1 -1
  415. package/dist/services/slice/slice-check-service.js +1 -1
  416. package/dist/services/standards/main-session-monitor-ban-hook.d.ts +14 -0
  417. package/dist/services/standards/main-session-monitor-ban-hook.js +19 -0
  418. package/dist/services/standards/missing-standards-detector.d.ts +25 -0
  419. package/dist/services/standards/missing-standards-detector.js +43 -12
  420. package/dist/services/tech/tech-change-id-service.d.ts +82 -0
  421. package/dist/services/tech/tech-change-id-service.js +117 -0
  422. package/dist/services/understand/understand-hybrid-service.js +1 -1
  423. package/dist/services/understand/understand-scan-service.js +2 -2
  424. package/dist/services/upgrade/upgrade-service.js +4 -3
  425. package/dist/services/verdict/envelopes.d.ts +2 -2
  426. package/dist/services/verdict/envelopes.js +2 -2
  427. package/dist/services/verdict/verdict-aggregator.d.ts +3 -3
  428. package/dist/services/vm/vm-lease.d.ts +40 -0
  429. package/dist/services/vm/vm-lease.js +137 -0
  430. package/dist/services/workflow/autonomous-resume-writer.js +1 -1
  431. package/dist/services/workflow/pipeline-verify-gate-support.d.ts +47 -0
  432. package/dist/services/workflow/pipeline-verify-gate-support.js +194 -0
  433. package/dist/services/workflow/pipeline-verify-service.d.ts +17 -81
  434. package/dist/services/workflow/pipeline-verify-service.js +42 -218
  435. package/dist/services/workflow/pipeline-verify-types.d.ts +90 -0
  436. package/dist/services/workflow/pipeline-verify-types.js +10 -0
  437. package/dist/services/workflow/plan-reader.d.ts +1 -1
  438. package/dist/services/workflow/plan-reader.js +1 -1
  439. package/dist/services/workflow/plan-refresher.d.ts +1 -1
  440. package/dist/services/workflow/plan-refresher.js +1 -1
  441. package/dist/services/workflow/plan-trigger-detector.d.ts +1 -1
  442. package/dist/services/workflow/plan-trigger-detector.js +1 -1
  443. package/dist/services/workflow/workflow-autonomous-resume-helpers.d.ts +1 -1
  444. package/dist/services/workflow/workflow-autonomous-service.d.ts +2 -98
  445. package/dist/services/workflow/workflow-autonomous-types.d.ts +114 -0
  446. package/dist/services/workflow/workflow-autonomous-types.js +21 -0
  447. package/dist/services/workflow/workflow-router-service.js +18 -16
  448. package/dist/services/workflow/workflow-spec-lint.d.ts +13 -0
  449. package/dist/services/workflow/workflow-spec-lint.js +75 -0
  450. package/dist/services/workflow/workflow-spec-types.d.ts +100 -0
  451. package/dist/services/workflow/workflow-spec-types.js +13 -0
  452. package/dist/services/workflow/workflow-spec-yaml.d.ts +17 -0
  453. package/dist/services/workflow/workflow-spec-yaml.js +88 -0
  454. package/dist/services/workflow/workflow-spec.d.ts +11 -91
  455. package/dist/services/workflow/workflow-spec.js +16 -145
  456. package/dist/services/workspace/migrate-service.js +1 -1
  457. package/dist/services/workspace/workspace-service.js +1 -1
  458. package/dist/services/worktree/worktree-lease.d.ts +170 -0
  459. package/dist/services/worktree/worktree-lease.js +242 -0
  460. package/package.json +47 -51
  461. package/scripts/clean-dist.mjs +31 -1
  462. package/scripts/copy-templates.mjs +16 -0
  463. package/scripts/sync-version.mjs +53 -2
  464. package/skills/bee/peaks-perf-audit/SKILL.md +17 -0
  465. package/skills/bee/peaks-prd/SKILL.md +16 -0
  466. package/skills/bee/peaks-prd/test-prompts.json +12 -0
  467. package/skills/bee/peaks-qa/SKILL.md +16 -1
  468. package/skills/bee/peaks-qa/references/qa-sub-agent-dispatch.md +22 -0
  469. package/skills/bee/peaks-qa/test-prompts.json +12 -0
  470. package/skills/bee/peaks-rd/SKILL.md +29 -20
  471. package/skills/bee/peaks-rd/references/rd-sub-agent-dispatch.md +39 -0
  472. package/skills/bee/peaks-rd/test-prompts.json +12 -0
  473. package/skills/bee/peaks-reviewer/SKILL.md +17 -0
  474. package/skills/bee/peaks-sc/SKILL.md +16 -0
  475. package/skills/bee/peaks-security-audit/SKILL.md +17 -0
  476. package/skills/bee/peaks-txt/SKILL.md +16 -0
  477. package/skills/bee/peaks-txt/test-prompts.json +12 -0
  478. package/skills/bee/peaks-ui/SKILL.md +49 -43
  479. package/skills/bee/peaks-ui/test-prompts.json +12 -0
  480. package/skills/peaks-code/SKILL.md +54 -109
  481. package/skills/peaks-code/references/boundaries.md +15 -1
  482. package/skills/peaks-code/references/cron-scheduler-deployment.md +313 -0
  483. package/skills/peaks-code/references/external-skill-invocation.md +27 -0
  484. package/skills/peaks-code/references/lease-dashboard.html +224 -0
  485. package/skills/peaks-code/references/lease-stats.sample.json +26 -0
  486. package/skills/peaks-code/references/peaks-worktree-l2-enforcers.md +208 -0
  487. package/skills/peaks-code/references/periodic-checkpoint.md +4 -4
  488. package/skills/peaks-code/references/runbook.md +63 -1
  489. package/skills/peaks-code/references/startup-sequence.md +110 -0
  490. package/skills/peaks-code/references/step-0-8-gate.md +1 -1
  491. package/skills/peaks-code/references/sub-agent-dispatch.md +92 -1
  492. package/skills/peaks-code/references/worktree-governance.md +123 -0
  493. package/skills/peaks-code/test-prompts.json +12 -0
  494. package/skills/peaks-doctor/SKILL.md +1 -1
  495. package/skills/peaks-ide/SKILL.md +1 -1
  496. package/skills/peaks-solo/SKILL.md +21 -0
  497. package/skills/peaks-solo/references/triage-decision-table.md +6 -0
  498. package/skills/peaks-sop/test-prompts.json +17 -0
  499. package/dist/cli/commands/agent-commands.d.ts +0 -20
  500. package/dist/cli/commands/agent-commands.js +0 -48
  501. package/dist/cli/commands/classify-classify-commands.d.ts +0 -19
  502. package/dist/cli/commands/classify-classify-commands.js +0 -151
  503. package/dist/cli/commands/contract-commands.d.ts +0 -26
  504. package/dist/cli/commands/contract-commands.js +0 -114
  505. package/dist/cli/commands/session-auto-compact-hook-command.d.ts +0 -37
  506. package/dist/cli/commands/session-auto-compact-hook-command.js +0 -127
  507. package/dist/cli/commands/worker-commands.d.ts +0 -3
  508. package/dist/cli/commands/worker-commands.js +0 -52
  509. package/dist/services/agent/ecc-agent-service.d.ts +0 -47
  510. package/dist/services/agent/ecc-agent-service.js +0 -143
  511. package/dist/services/config/provider-service.d.ts +0 -48
  512. package/dist/services/config/provider-service.js +0 -143
  513. package/dist/services/context/dispatch-context-guard.d.ts +0 -27
  514. package/dist/services/context/dispatch-context-guard.js +0 -192
  515. package/dist/services/context/shared-channel.d.ts +0 -93
  516. package/dist/services/context/shared-channel.js +0 -308
  517. package/dist/services/filesystem/file-lock.d.ts +0 -11
  518. package/dist/services/filesystem/file-lock.js +0 -152
  519. package/dist/services/mut/assert-scanner.d.ts +0 -6
  520. package/dist/services/mut/assert-scanner.js +0 -116
  521. package/dist/services/mut/index.d.ts +0 -8
  522. package/dist/services/mut/index.js +0 -7
  523. package/dist/services/mut/mut-runner.d.ts +0 -39
  524. package/dist/services/mut/mut-runner.js +0 -29
  525. package/dist/services/mut/production-stryker.d.ts +0 -2
  526. package/dist/services/mut/production-stryker.js +0 -75
  527. package/dist/services/mut/report-builder.d.ts +0 -11
  528. package/dist/services/mut/report-builder.js +0 -110
  529. package/dist/services/mut/report-loader.d.ts +0 -31
  530. package/dist/services/mut/report-loader.js +0 -78
  531. package/dist/services/mut/thresholds.d.ts +0 -21
  532. package/dist/services/mut/thresholds.js +0 -22
  533. package/dist/services/mut/types.d.ts +0 -336
  534. package/dist/services/mut/types.js +0 -59
  535. package/dist/services/providers/minimax-provider-service.d.ts +0 -24
  536. package/dist/services/providers/minimax-provider-service.js +0 -143
  537. package/dist/services/providers/minimax-worker-service.d.ts +0 -21
  538. package/dist/services/providers/minimax-worker-service.js +0 -83
  539. package/dist/shared/fs.d.ts +0 -4
  540. package/dist/shared/fs.js +0 -26
  541. package/dist/shared/paths.d.ts +0 -6
  542. package/dist/shared/paths.js +0 -50
  543. package/dist/shared/result.d.ts +0 -22
  544. package/dist/shared/result.js +0 -46
  545. package/dist/shared/version.d.ts +0 -1
  546. package/dist/shared/version.js +0 -1
  547. package/examples/video-demo/README.md +0 -142
  548. package/examples/video-demo/out/en-closing-960.png +0 -0
  549. package/examples/video-demo/out/zh-closing-960.png +0 -0
  550. package/examples/video-demo/preview/peaks-loop-demo-en.mp4 +0 -0
  551. package/examples/video-demo/preview/peaks-loop-demo.mp4 +0 -0
  552. /package/dist/services/{job/job-resource-snapshot.js → job-snapshot/snapshot.js} +0 -0
@@ -1,79 +1,23 @@
1
- import { existsSync } from 'node:fs';
2
- import { join } from 'node:path';
1
+ /**
2
+ * peaks-workflow — pipeline verification orchestrator (slimmed per rid-006).
3
+ *
4
+ * `verifyPipeline` resolves RD / QA evidence files for a given rid and
5
+ * returns a structured `PipelineVerification` envelope. Type
6
+ * declarations live in `pipeline-verify-types.ts`; private gate
7
+ * helpers (`rdGatesForType`, `qaGatesForType`, `extractState`,
8
+ * `findRequestFile`, the `_runtime/` prefix strip, the RD/QA handoff
9
+ * state sets, and the RD/QA evidence path probes) live in
10
+ * `pipeline-verify-gate-support.ts`. The re-export shim at the
11
+ * bottom preserves the original public surface so existing import
12
+ * paths compile unchanged.
13
+ *
14
+ * File budget: ≤ 400 lines (rid-006 split).
15
+ */
3
16
  import { isRequestType } from '../artifacts/artifact-prerequisites.js';
4
- import { showRequestArtifact } from '../artifacts/request-artifact-service.js';
5
- import { resolveSecurityFindingsPath, resolvePerformanceFindingsPath } from './artifact-paths.js';
6
17
  import { readSkipState } from './workflow-state-store.js';
7
18
  import { getSessionIdCanonical } from '../session/session-manager.js';
8
19
  import { listUnpromotedFeedback } from '../feedback/feedback-promotion-service.js';
9
- function extractState(markdown) {
10
- for (const rawLine of markdown.split(/\r?\n/)) {
11
- const match = /^-\s*state:\s*(.+?)\s*$/.exec(rawLine.trim());
12
- if (match?.[1])
13
- return match[1];
14
- }
15
- return 'unknown';
16
- }
17
- /**
18
- * As of slice 2026-06-05-change-id-as-unit-of-work, the file's durable
19
- * scope is the change-id (the `.peaks/_runtime/<sessionId>/` dir the file lives
20
- * in), NOT the session-id. We resolve the on-disk location via
21
- * `showRequestArtifact` (which scans all top-level dirs and returns the
22
- * actual dir the file was found in) instead of assuming
23
- * `.peaks/_runtime/<sessionId>/<role>/requests/`.
24
- */
25
- async function findRequestFile(projectRoot, role, rid) {
26
- const artifact = await showRequestArtifact({ projectRoot, role: role, requestId: rid });
27
- if (artifact === null)
28
- return null;
29
- // Slice 2026-06-28-code-mode-bypass-fix (defect #3): the legacy
30
- // `showRequestArtifact` returns the FULL SCOPE (`_runtime/<sid>`)
31
- // as `sessionId`, not just the trailing id segment. The canonical
32
- // evidence lookup needs only the bare id (`.peaks/_runtime/change/<id>/`).
33
- // When the scope starts with `_runtime/`, strip that prefix so the
34
- // path resolver builds the right canonical location.
35
- let sessionId = artifact.sessionId;
36
- if (sessionId.startsWith('_runtime/') || sessionId.startsWith('_runtime\\')) {
37
- sessionId = sessionId.replace(/^_runtime[\\/]/, '');
38
- }
39
- return { path: artifact.path, content: artifact.content, sessionId };
40
- }
41
- function rdGatesForType(requestType) {
42
- const gates = [
43
- { name: 'rd-request-exists', description: 'RD request artifact created', passed: false, detail: '' }
44
- ];
45
- if (requestType === 'feature' || requestType === 'refactor') {
46
- gates.push({ name: 'tech-doc', description: 'Technical design doc', passed: false, detail: '' });
47
- }
48
- if (requestType === 'bugfix') {
49
- gates.push({ name: 'bug-analysis', description: 'Bug root-cause analysis', passed: false, detail: '' });
50
- }
51
- if (requestType !== 'docs' && requestType !== 'chore' && requestType !== 'config') {
52
- gates.push({ name: 'code-review', description: 'Code review evidence', passed: false, detail: '' });
53
- }
54
- if (requestType === 'feature' || requestType === 'refactor' || requestType === 'bugfix' || requestType === 'config') {
55
- gates.push({ name: 'security-review', description: 'Security review evidence', passed: false, detail: '' });
56
- }
57
- return gates;
58
- }
59
- function qaGatesForType(requestType) {
60
- const gates = [
61
- { name: 'qa-request-exists', description: 'QA request artifact created', passed: false, detail: '' }
62
- ];
63
- if (requestType === 'feature' || requestType === 'refactor' || requestType === 'bugfix') {
64
- gates.push({ name: 'test-cases', description: 'QA test cases', passed: false, detail: '' });
65
- gates.push({ name: 'test-report', description: 'QA test report with execution results', passed: false, detail: '' });
66
- }
67
- if (requestType === 'feature' || requestType === 'refactor' || requestType === 'bugfix' || requestType === 'config') {
68
- gates.push({ name: 'security-findings', description: 'QA security findings', passed: false, detail: '' });
69
- }
70
- if (requestType === 'feature' || requestType === 'refactor') {
71
- gates.push({ name: 'performance-findings', description: 'QA performance findings', passed: false, detail: '' });
72
- }
73
- return gates;
74
- }
75
- const RD_QA_HANDOFF_STATES = new Set(['qa-handoff', 'handed-off', 'implemented']);
76
- const QA_COMPLETE_STATES = new Set(['verdict-issued']);
20
+ import { QA_COMPLETE_STATES, RD_QA_HANDOFF_STATES, extractState, findRequestFile, qaGatesForType, rdGatesForType, resolveQaEvidencePaths, resolveRdEvidencePaths } from './pipeline-verify-gate-support.js';
77
21
  export async function verifyPipeline(options) {
78
22
  const requestType = isRequestType(options.requestType ?? '') ? options.requestType : 'feature';
79
23
  const violations = [];
@@ -136,71 +80,23 @@ export async function verifyPipeline(options) {
136
80
  nextActions.push('Invoke Skill(skill="peaks-rd") with the request-id, then run unit tests + code review + security review');
137
81
  rdGates[0].detail = 'not found';
138
82
  }
139
- // Check RD evidence files (under the change-id dir the RD request lives in)
140
- const RD_EVIDENCE_FILE = {
141
- 'tech-doc': 'tech-doc.md',
142
- 'bug-analysis': 'bug-analysis.md',
143
- 'code-review': 'code-review.md',
144
- 'security-review': 'security-review.md'
145
- };
146
- // Slice v2.17.0 hard-kill — change-id axis removed as filesystem
147
- // scope. The canonical evidence location is now the session axis
148
- // `.peaks/_runtime/<sessionId>/<role>/...` (where `<sessionId>` is
149
- // the on-disk dir the request artifact lives in; for back-compat
150
- // with the legacy `_runtime/<sessionId>/` and `.peaks/<sessionId>/`
151
- // layouts we also probe those). When the legacy fallback fires, the
152
- // gate detail / nextActions surface the `DEPRECATION_LEGACY_PATH_USED`
83
+ // Check RD evidence files (under the change-id dir the RD request lives in).
84
+ // v2.17.0 hard-kill — change-id axis removed as filesystem scope. The
85
+ // canonical evidence location is now the session axis
86
+ // `.peaks/_runtime/<sessionId>/<role>/...` (where `<sessionId>` is the
87
+ // on-disk dir the request artifact lives in; for back-compat with the
88
+ // legacy `_runtime/<sessionId>/` and `.peaks/<sessionId>/` layouts the
89
+ // helper also probes those). When the legacy fallback fires, the gate
90
+ // detail / nextActions surface the `DEPRECATION_LEGACY_PATH_USED`
153
91
  // warning so QA / TXT can nudge users to migrate via
154
- // `peaks workspace migrate-change-scope --apply`.
155
- // v2.18.1 bug #5 fix: same session-axis fallback as the QA resolver
156
- // below. When `resolvedChangeId` is empty (no RD/QA artifact on disk
157
- // yet), the canonical session id from the binding-store is the
158
- // preferred filesystem scope; falling through to `options.rid` would
159
- // make every missing-evidence path look like a per-rid scope dir.
92
+ // `peaks workspace migrate`.
93
+ // v2.18.1 bug #5 fix: when `resolvedChangeId` is empty (no RD/QA
94
+ // artifact on disk yet), the canonical session id from the
95
+ // binding-store is the preferred filesystem scope; falling through
96
+ // to `options.rid` would make every missing-evidence path look like
97
+ // a per-rid scope dir.
160
98
  const rdEvidenceDir = resolvedChangeId || options.sessionId || getSessionIdCanonical(options.projectRoot) || options.rid;
161
- // Slice 2026-06-28-code-mode-bypass-fix (defect #3): track whether
162
- // every resolved evidence file landed on the canonical path. Drives
163
- // the `usedCanonicalPath` envelope field. The flag stays `true` if
164
- // no evidence file was resolved at all (nothing to be non-canonical
165
- // about); it flips to `false` if any file resolves via legacy.
166
- let anyEvidenceResolved = false;
167
- let allResolvedPathsCanonical = true;
168
- for (const gate of rdGates.slice(1)) {
169
- const fileName = RD_EVIDENCE_FILE[gate.name];
170
- // v2.17.0 canonical: session axis — `<sessionId>` is the on-disk
171
- // dir the request artifact was found in (matches the layout used
172
- // by `request-artifact-service.ts` for new artifacts).
173
- const canonicalPath = join(options.projectRoot, '.peaks', '_runtime', rdEvidenceDir, 'rd', fileName);
174
- const legacyMisplacedPath = join(options.projectRoot, '.peaks', rdEvidenceDir, 'rd', fileName);
175
- // Pre-v2.17.0 change-axis form: `.peaks/_runtime/change/<id>/rd/<file>`
176
- // — the v2.16.0 / v2.17.0-era canonical that v2.17.0 hard-killed.
177
- // Kept as a back-compat fallback for un-migrated workspaces.
178
- const legacyChangeAxisPath = join(options.projectRoot, '.peaks', '_runtime', 'change', rdEvidenceDir, 'rd', fileName);
179
- let resolvedPath = null;
180
- let usedLegacy = false;
181
- for (const candidate of [canonicalPath, legacyMisplacedPath, legacyChangeAxisPath]) {
182
- if (existsSync(candidate)) {
183
- resolvedPath = candidate;
184
- usedLegacy = candidate !== canonicalPath;
185
- break;
186
- }
187
- }
188
- if (resolvedPath !== null) {
189
- anyEvidenceResolved = true;
190
- if (usedLegacy)
191
- allResolvedPathsCanonical = false;
192
- gate.passed = true;
193
- gate.detail = resolvedPath + (usedLegacy ? ' [DEPRECATION_LEGACY_PATH_USED]' : '');
194
- if (usedLegacy) {
195
- violations.push(`DEPRECATION_LEGACY_PATH_USED: ${resolvedPath} — move the file into .peaks/_runtime/${rdEvidenceDir}/rd/ (the canonical location) so subsequent runs resolve on the canonical path. The legacy \`peaks workspace migrate-change-scope\` helper was removed in v2.19.0; use \`peaks workspace migrate\` to relocate misplaced content.`);
196
- }
197
- }
198
- else {
199
- gate.detail = `missing: ${canonicalPath}`;
200
- violations.push(`RD evidence missing: ${gate.description} (${fileName})`);
201
- nextActions.push(`Create .peaks/_runtime/${rdEvidenceDir}/rd/${fileName}`);
202
- }
203
- }
99
+ const rdTracker = resolveRdEvidencePaths(rdGates, rdEvidenceDir, options.projectRoot, violations, nextActions, { anyEvidenceResolved: false, allResolvedPathsCanonical: true });
204
100
  // Check if RD reached qa-handoff
205
101
  if (rdInvoked && !RD_QA_HANDOFF_STATES.has(rdState)) {
206
102
  violations.push(`RD not ready for QA: state is "${rdState}" — must reach "qa-handoff" (unit tests, karpathy-guidelines §1 Think / §2 Simplicity / §3 Surgical / §4 Goal-Driven, code review, security review complete)`);
@@ -222,81 +118,18 @@ export async function verifyPipeline(options) {
222
118
  nextActions.push('Invoke Skill(skill="peaks-qa") with the request-id for functional/performance/security testing');
223
119
  qaGates[0].detail = 'not found';
224
120
  }
225
- // Check QA evidence files. For the security/performance findings
226
- // gates, the canonical form post-slice-025 is the per-rid suffixed
227
- // path; the legacy non-suffixed form is still accepted during the
228
- // 1-minor-release back-compat window. The path resolver
229
- // (artifact-paths.ts) decides which form to consume; we pass the
230
- // resolved change-id and the rid.
231
- // v2.18.1 bug #5 fix: when no RD/QA artifact is on disk yet (resolvedChangeId
232
- // is empty), fall back to the current session id from the binding-store
233
- // instead of `rdEvidenceDir` (= the rid). The session axis
234
- // `.peaks/_runtime/<sessionId>/qa/...` is the canonical v2.17.0 home; the
235
- // legacy `_runtime/change/<sessionId>/qa/...` probe should only fire for
236
- // pre-v2.17.0 workspaces, not as a default for new requests. The slug in
237
- // the `sessionId` envelope field is preserved below for traceability.
121
+ // Check QA evidence files.
122
+ // v2.18.1 bug #5 fix: when no RD/QA artifact is on disk yet
123
+ // (resolvedChangeId is empty), fall back to the current session id
124
+ // from the binding-store instead of `rdEvidenceDir` (= the rid). The
125
+ // session axis `.peaks/_runtime/<sessionId>/qa/...` is the canonical
126
+ // v2.17.0 home; the legacy `_runtime/change/<sessionId>/qa/...` probe
127
+ // should only fire for pre-v2.17.0 workspaces, not as a default for
128
+ // new requests.
238
129
  const changeIdForResolver = resolvedChangeId || getSessionIdCanonical(options.projectRoot) || rdEvidenceDir;
239
- const QA_EVIDENCE_FILE = {
240
- 'test-cases': `test-cases/${options.rid}.md`,
241
- 'test-report': `test-reports/${options.rid}.md`,
242
- 'security-findings': '',
243
- 'performance-findings': ''
244
- };
245
- for (const gate of qaGates.slice(1)) {
246
- if (gate.name === 'security-findings' || gate.name === 'performance-findings') {
247
- const resolver = gate.name === 'security-findings' ? resolveSecurityFindingsPath : resolvePerformanceFindingsPath;
248
- const resolved = resolver({ projectRoot: options.projectRoot, sessionId: changeIdForResolver, rid: options.rid });
249
- if (existsSync(resolved.path)) {
250
- anyEvidenceResolved = true;
251
- if (resolved.form === 'legacy')
252
- allResolvedPathsCanonical = false;
253
- gate.passed = true;
254
- gate.detail = resolved.path;
255
- if (resolved.form === 'legacy') {
256
- // 1-minor-release back-compat window. Surface the warning so
257
- // users know to migrate. Per PRD §Migration the form will be
258
- // rejected after the next minor bump.
259
- violations.push(`QA evidence accepted in legacy form (will be rejected after next minor release): ${resolved.path} — re-run peaks workflow plan refresh to migrate`);
260
- }
261
- }
262
- else {
263
- gate.detail = `missing: ${resolved.path}`;
264
- violations.push(`QA evidence missing: ${gate.description} (${resolved.path})`);
265
- nextActions.push(`Create ${resolved.path} (or use the legacy non-suffixed form during the 1-minor-release back-compat window)`);
266
- }
267
- continue;
268
- }
269
- const fileName = QA_EVIDENCE_FILE[gate.name];
270
- // v2.17.0 canonical: session axis — `<sessionId>/qa/<file>`.
271
- const canonicalQaPath = join(options.projectRoot, '.peaks', '_runtime', rdEvidenceDir, 'qa', fileName);
272
- const legacyMisplacedQaPath = join(options.projectRoot, '.peaks', rdEvidenceDir, 'qa', fileName);
273
- // Pre-v2.17.0 change-axis form: kept as back-compat fallback.
274
- const legacyChangeAxisQaPath = join(options.projectRoot, '.peaks', '_runtime', 'change', rdEvidenceDir, 'qa', fileName);
275
- let resolvedQaPath = null;
276
- let usedLegacyQa = false;
277
- for (const candidate of [canonicalQaPath, legacyMisplacedQaPath, legacyChangeAxisQaPath]) {
278
- if (existsSync(candidate)) {
279
- resolvedQaPath = candidate;
280
- usedLegacyQa = candidate !== canonicalQaPath;
281
- break;
282
- }
283
- }
284
- if (resolvedQaPath !== null) {
285
- anyEvidenceResolved = true;
286
- if (usedLegacyQa)
287
- allResolvedPathsCanonical = false;
288
- gate.passed = true;
289
- gate.detail = resolvedQaPath + (usedLegacyQa ? ' [DEPRECATION_LEGACY_PATH_USED]' : '');
290
- if (usedLegacyQa) {
291
- violations.push(`DEPRECATION_LEGACY_PATH_USED: ${resolvedQaPath} — move the file into .peaks/_runtime/${rdEvidenceDir}/qa/ (the canonical location) so subsequent runs resolve on the canonical path. The legacy \`peaks workspace migrate-change-scope\` helper was removed in v2.19.0; use \`peaks workspace migrate\` to relocate misplaced content.`);
292
- }
293
- }
294
- else {
295
- gate.detail = `missing: ${canonicalQaPath}`;
296
- violations.push(`QA evidence missing: ${gate.description} (${fileName})`);
297
- nextActions.push(`Create .peaks/_runtime/${rdEvidenceDir}/qa/${fileName}`);
298
- }
299
- }
130
+ const qaTracker = resolveQaEvidencePaths(qaGates, options.projectRoot, rdEvidenceDir, changeIdForResolver, options.rid, violations, nextActions, rdTracker);
131
+ const anyEvidenceResolved = qaTracker.anyEvidenceResolved;
132
+ const allResolvedPathsCanonical = qaTracker.allResolvedPathsCanonical;
300
133
  // Check if QA reached verdict-issued
301
134
  if (qaInvoked && !QA_COMPLETE_STATES.has(qaState)) {
302
135
  violations.push(`QA not complete: state is "${qaState}" — must reach "verdict-issued" (functional + performance + security checks done)`);
@@ -366,10 +199,8 @@ export async function verifyPipeline(options) {
366
199
  detail: ''
367
200
  }
368
201
  ];
369
- let unpromotedFeedbackCount = 0;
370
202
  try {
371
203
  const unpromoted = listUnpromotedFeedback({ projectRoot: options.projectRoot });
372
- unpromotedFeedbackCount = unpromoted.length;
373
204
  if (unpromoted.length === 0) {
374
205
  feedbackGates[0].passed = true;
375
206
  feedbackGates[0].detail = `0 unpromoted feedback memories in .peaks/memory/`;
@@ -418,13 +249,6 @@ export async function verifyPipeline(options) {
418
249
  // was removed in v2.19.0; use `peaks workspace migrate` to relocate
419
250
  // misplaced content).
420
251
  //
421
- // Implementation note: use the in-loop flag `allResolvedPathsCanonical`
422
- // (correctly updated by both the inline evidence loop AND the
423
- // artifact-paths resolver for security/performance findings), not a
424
- // string-scan over `gate.detail`. The string-scan approach misses the
425
- // artifact-paths legacy branch (it does NOT inject the
426
- // `DEPRECATION_LEGACY_PATH_USED` suffix into gate.detail).
427
- //
428
252
  // If NO evidence file resolved (e.g. all gates missing), the field is
429
253
  // `true` — there is nothing non-canonical to worry about. If every
430
254
  // resolved gate was skipped via `peaks workflow skip`, the field is
@@ -0,0 +1,90 @@
1
+ /**
2
+ * peaks-workflow — public type declarations for pipeline verification.
3
+ *
4
+ * Pure type module. No runtime helpers, no constants. The slimmed
5
+ * `pipeline-verify-service.ts` re-exports the types so existing
6
+ * import paths compile unchanged (rid-006 split).
7
+ *
8
+ * File budget: ≤ 400 lines (rid-006 split).
9
+ */
10
+ import type { RequestType } from '../artifacts/artifact-prerequisites.js';
11
+ export type PipelineGate = {
12
+ name: string;
13
+ description: string;
14
+ passed: boolean;
15
+ detail: string;
16
+ /**
17
+ * Slice 2026-06-13-peaks-workflow-skip: optional status that
18
+ * distinguishes a gate that was BYPASSED via `peaks workflow skip`
19
+ * from one that actually passed evaluation. When set, the gate
20
+ * was NOT evaluated by `evaluateGate` — the user/CLI explicitly
21
+ * marked it as skipped. The boolean `passed` is set to `true` so
22
+ * existing consumers (which only check `passed`) treat a skipped
23
+ * gate as "satisfied", but downstream consumers that need
24
+ * audit-grade distinction (e.g. CI badges, dashboards) can read
25
+ * `status` to tell pass / fail / skipped apart.
26
+ *
27
+ * - omitted (default): not set, gate was evaluated; treat as legacy.
28
+ * - 'pass': gate evaluated and passed.
29
+ * - 'fail': gate evaluated and failed.
30
+ * - 'skipped': gate was bypassed; never evaluated.
31
+ */
32
+ status?: 'pass' | 'fail' | 'skipped';
33
+ };
34
+ export type PipelineVerification = {
35
+ rid: string;
36
+ sessionId: string;
37
+ requestType: RequestType;
38
+ complete: boolean;
39
+ rdPhase: {
40
+ invoked: boolean;
41
+ state: string;
42
+ gates: PipelineGate[];
43
+ };
44
+ qaPhase: {
45
+ invoked: boolean;
46
+ state: string;
47
+ gates: PipelineGate[];
48
+ };
49
+ /**
50
+ * Slice 002 (v2.15.0) AC-3: Gate H "feedback-promotion". Always
51
+ * present (single-element array). Evaluates whether every
52
+ * `metadata.type === 'feedback'` memory in `.peaks/memory/`
53
+ * carries a promotion marker (comment OR sidecar). Failures
54
+ * block the `complete` verdict via the `gateH` field below; the
55
+ * pipeline only completes when every gate in this array passes.
56
+ */
57
+ feedbackPhase?: {
58
+ gates: PipelineGate[];
59
+ };
60
+ violations: string[];
61
+ nextActions: string[];
62
+ /** Form of the security/performance findings artifacts Gate C accepted
63
+ * (slice 025). `'suffixed'` for the new per-rid form, `'legacy'` for the
64
+ * pre-slice-025 non-suffixed form, `'none'` when neither was found. */
65
+ acceptedForm?: 'suffixed' | 'legacy' | 'none';
66
+ /** `gateC` is the pre-computed verdict string (AC7 dogfood shape). */
67
+ gateC?: 'pass' | 'fail';
68
+ /**
69
+ * Slice 002 (v2.15.0) AC-3: Gate H verdict string. `'pass'` when
70
+ * all feedback memories are promoted; `'fail'` when at least one
71
+ * unpromoted feedback memory was found.
72
+ */
73
+ gateH?: 'pass' | 'fail';
74
+ /**
75
+ * Slice 2026-06-28-code-mode-bypass-fix (defect #3): `true` when
76
+ * every evidence file resolved on the canonical path
77
+ * (`.peaks/_runtime/change/<sessionId>/...`). `false` when at least
78
+ * one evidence file resolved via a legacy fallback (`.peaks/<sessionId>/...`
79
+ * or `.peaks/_runtime/<sessionId>/...`). QA / TXT surface the value
80
+ * so users know to move misplaced evidence into the canonical
81
+ * location.
82
+ *
83
+ * Slice 2026-06-29-change-id-root-removal: the legacy
84
+ * `peaks workspace migrate-change-scope` migration tool is gone;
85
+ * users must now move misplaced content into the canonical
86
+ * `.peaks/_runtime/change/<sessionId>/<role>/` dir manually (or via
87
+ * `peaks workspace migrate`).
88
+ */
89
+ usedCanonicalPath?: boolean;
90
+ };
@@ -0,0 +1,10 @@
1
+ /**
2
+ * peaks-workflow — public type declarations for pipeline verification.
3
+ *
4
+ * Pure type module. No runtime helpers, no constants. The slimmed
5
+ * `pipeline-verify-service.ts` re-exports the types so existing
6
+ * import paths compile unchanged (rid-006 split).
7
+ *
8
+ * File budget: ≤ 400 lines (rid-006 split).
9
+ */
10
+ export {};
@@ -1,4 +1,4 @@
1
- import { type ResultEnvelope } from '../../shared/result.js';
1
+ import { type ResultEnvelope } from 'peaks-loop-shared/result';
2
2
  export type PlanType = 'security' | 'perf';
3
3
  /** Back-compat env-var. When set to "1", fall back to legacy paths. */
4
4
  export declare const BACK_COMPAT_FLAG = "PEAKS_PLAN_LEGACY_FALLBACK";
@@ -15,7 +15,7 @@
15
15
  import { createHash } from 'node:crypto';
16
16
  import { existsSync, readFileSync, realpathSync, statSync } from 'node:fs';
17
17
  import { join, sep } from 'node:path';
18
- import { fail, ok } from '../../shared/result.js';
18
+ import { fail, ok } from 'peaks-loop-shared/result';
19
19
  import { getSessionDir } from '../session/getSessionDir.js';
20
20
  /** Back-compat env-var. When set to "1", fall back to legacy paths. */
21
21
  export const BACK_COMPAT_FLAG = 'PEAKS_PLAN_LEGACY_FALLBACK';
@@ -1,4 +1,4 @@
1
- import { type ResultEnvelope } from '../../shared/result.js';
1
+ import { type ResultEnvelope } from 'peaks-loop-shared/result';
2
2
  import { normalizePlanBody, type PlanType } from './plan-reader.js';
3
3
  export interface RefreshPlanArgs {
4
4
  readonly type: PlanType;
@@ -11,7 +11,7 @@
11
11
  */
12
12
  import { existsSync, readFileSync, readdirSync, realpathSync, statSync, writeFileSync, mkdirSync } from 'node:fs';
13
13
  import { join, sep } from 'node:path';
14
- import { fail, ok } from '../../shared/result.js';
14
+ import { fail, ok } from 'peaks-loop-shared/result';
15
15
  import { getSessionDir } from '../session/getSessionDir.js';
16
16
  import { hashNormalizedBody, normalizePlanBody } from './plan-reader.js';
17
17
  const PLAN_FILE = {
@@ -11,7 +11,7 @@
11
11
  * supplied, the detector scans the project directly (the same scan the
12
12
  * refresh plan performs).
13
13
  */
14
- import { type ResultEnvelope } from '../../shared/result.js';
14
+ import { type ResultEnvelope } from 'peaks-loop-shared/result';
15
15
  export type TriggerReason = 'new-dependency' | 'auth-surface-added' | 'hot-path-added' | 'manual-override' | 'no-change' | 'no-triggering-change';
16
16
  /** F-1 (slice 025 security): canonical request-id shape. */
17
17
  export declare const REQUEST_ID_PATTERN: RegExp;
@@ -13,7 +13,7 @@
13
13
  */
14
14
  import { existsSync, readFileSync, readdirSync } from 'node:fs';
15
15
  import { join } from 'node:path';
16
- import { fail, ok } from '../../shared/result.js';
16
+ import { fail, ok } from 'peaks-loop-shared/result';
17
17
  /** F-1 (slice 025 security): canonical request-id shape. */
18
18
  export const REQUEST_ID_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._-]*$/;
19
19
  const SENSITIVE_SERVICE_DIRS = ['auth', 'security', 'secrets', 'payments', 'filesystem'];
@@ -11,7 +11,7 @@
11
11
  * imports from this sibling. Function signatures and behaviour are
12
12
  * unchanged (verbatim move).
13
13
  */
14
- import type { AutonomousResumePlan } from './workflow-autonomous-service.js';
14
+ import type { AutonomousResumePlan } from './workflow-autonomous-types.js';
15
15
  export declare function getResumeRequiredArtifacts(_sessionId: string): string[];
16
16
  type ResumeArtifactsStatus = 'ready' | 'missing' | 'invalid';
17
17
  declare function getResumeArtifactsStatus(artifactWorkspacePath: string, requiredArtifacts: readonly string[], sessionId: string, goal: string): ResumeArtifactsStatus;
@@ -1,100 +1,4 @@
1
- import type { CapabilityItemType } from '../recommendations/recommendation-types.js';
2
- import type { ModelProviderConfig, WorkspaceConfig } from '../config/config-types.js';
3
- import { type RdPlanResult } from '../rd/rd-service.js';
4
- import { type CodeMode, type WorkflowMode, type WorkflowRouterPlan } from './workflow-router-service.js';
1
+ import type { AutonomousWorkflowPlan, AutonomousWorkflowRequest } from './workflow-autonomous-types.js';
5
2
  export { getResumeRequiredArtifacts, getResumeArtifactsStatus, createResumePlan } from './workflow-autonomous-resume-helpers.js';
6
- export type CapabilitySurface = 'skill' | 'mcp' | 'plugin' | 'expert';
7
- export type CapabilityPurpose = 'code-review' | 'security-review' | 'coding-standards' | 'docs-lookup' | 'browser-validation' | 'browser-debug' | 'design-context' | 'design-source' | 'code-search' | 'database-inspection' | 'browser-agent' | 'worker-guidance' | 'memory' | 'context-management' | 'ui-components' | 'spec-workflow' | 'repo-intelligence' | 'openspec' | 'workflow-methodology' | 'workflow-reference' | 'workflow-guidance' | 'product-guidance' | 'design-reference' | 'ui-reference' | 'engineering-guidance' | 'typescript-guidance' | 'quality-guidance' | 'skill-pack' | 'external-skill' | 'design-critique' | 'design-guidance' | 'cloud-skill-pack';
8
- export type CapabilityActivation = 'available' | 'needs-install' | 'needs-credentials' | 'not-active';
9
- export type CapabilityTrustLevel = 'local' | 'user-curated' | 'third-party';
10
- export type CapabilityCandidate = {
11
- readonly id: string;
12
- readonly source: string;
13
- readonly purpose: CapabilityPurpose;
14
- readonly surface: CapabilitySurface;
15
- readonly kind: CapabilitySurface;
16
- readonly sourceType: CapabilityItemType;
17
- readonly trustLevel: CapabilityTrustLevel;
18
- readonly activation: CapabilityActivation;
19
- readonly risk: readonly string[];
20
- };
21
- export type AutonomousWorkflowRequest = {
22
- readonly mode: WorkflowMode;
23
- readonly codeMode?: CodeMode;
24
- readonly sessionId: string;
25
- readonly goal: string;
26
- readonly maxWorkers?: number;
27
- readonly dryRun: true;
28
- readonly artifactWorkspacePath?: string;
29
- readonly workspace?: WorkspaceConfig;
30
- readonly config?: {
31
- readonly economyMode?: boolean;
32
- readonly swarmMode?: boolean;
33
- readonly providers?: ModelProviderConfig;
34
- };
35
- };
36
- export type AutonomousGoalPackage = {
37
- readonly sessionId: string;
38
- readonly goal: string;
39
- readonly nonGoals: readonly string[];
40
- readonly preservedBehavior: readonly string[];
41
- readonly acceptanceCriteria: readonly string[];
42
- readonly doneCondition: string;
43
- readonly resumeCondition: string;
44
- readonly riskNotes: readonly string[];
45
- };
46
- export type AutonomousCapabilityPlan = {
47
- readonly sources: readonly string[];
48
- readonly policy: readonly string[];
49
- readonly candidates: readonly CapabilityCandidate[];
50
- readonly surfaces: readonly CapabilitySurface[];
51
- readonly surfaceSummary: Record<CapabilitySurface, number>;
52
- };
53
- export type AutonomousResumePlan = {
54
- readonly status: 'preview' | 'ready';
55
- readonly checkpoints: readonly string[];
56
- readonly requiredArtifacts: readonly string[];
57
- readonly resumeInstructions: string;
58
- };
59
- export type AutonomousGoalCommand = {
60
- readonly command: string;
61
- readonly durable: false;
62
- readonly reason: string;
63
- };
64
- export type AutonomousStoragePlan = {
65
- readonly scope: 'user-local';
66
- readonly artifactWorkspacePath: string | null;
67
- readonly memoryBackupPath: string | null;
68
- };
69
- export type AutonomousMvpPackage = {
70
- readonly mode: WorkflowMode;
71
- readonly codeMode: CodeMode | undefined;
72
- readonly executionMode: 'preview';
73
- readonly dryRun: true;
74
- readonly routePolicy: WorkflowRouterPlan['routePolicy'];
75
- readonly rdWaveNames: readonly string[];
76
- readonly capabilitySurfaces: readonly CapabilitySurface[];
77
- readonly capabilityCountBySurface: Record<CapabilitySurface, number>;
78
- readonly ready: boolean;
79
- };
80
- export type AutonomousWorkflowPlan = {
81
- readonly available: boolean;
82
- readonly behavior: 'preview' | 'ready';
83
- readonly sessionId: string;
84
- readonly goal: string;
85
- readonly mode: WorkflowMode;
86
- readonly dryRun: true;
87
- readonly goalPackage: AutonomousGoalPackage;
88
- readonly goalCommand: AutonomousGoalCommand;
89
- readonly capabilityPlan: AutonomousCapabilityPlan;
90
- readonly storagePlan: AutonomousStoragePlan;
91
- readonly routePlan: WorkflowRouterPlan;
92
- readonly modelAssignments: WorkflowRouterPlan['modelAssignments'];
93
- readonly rdPlan: RdPlanResult;
94
- readonly resumePlan: AutonomousResumePlan;
95
- readonly mvpPackage: AutonomousMvpPackage;
96
- readonly constraints: readonly string[];
97
- readonly blockedReasons: readonly string[];
98
- readonly nextActions: readonly string[];
99
- };
3
+ export type { AutonomousCapabilityPlan, AutonomousGoalCommand, AutonomousGoalPackage, AutonomousMvpPackage, AutonomousResumePlan, AutonomousStoragePlan, AutonomousWorkflowPlan, AutonomousWorkflowRequest, CapabilityActivation, CapabilityCandidate, CapabilityPurpose, CapabilitySurface, CapabilityTrustLevel } from './workflow-autonomous-types.js';
100
4
  export declare function createAutonomousWorkflowPlan(request: AutonomousWorkflowRequest): AutonomousWorkflowPlan;