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
@@ -9,18 +9,17 @@ import { getConfiguredExecutionModelId, getStrongestModelId } from '../config/mo
9
9
  * 2.0.1-bug1: the slim 2.0 `~/.peaks/config.json` no longer carries a
10
10
  * `providers` block (legacy model config lives in
11
11
  * `.peaks/preferences.json` per spec §10.4). `buildPlan` is a pure
12
- * planner function and historically took its execution model from
13
- * `DEFAULT_CONFIG.providers.minimax.model`; with the slim default
14
- * that field is `undefined`, so `getConfiguredExecutionModelId`
15
- * would throw. We retain the pre-2.0 default here as a literal so
16
- * the planner remains usable when the caller has not passed an
17
- * explicit `executionModelId` (unit tests, dry-run previews, the
18
- * `peaks swarm plan` onboarding path). Production callers that
19
- * have a real `ocr.llm.model` configured pass it via
20
- * `request.executionModelId` (or via the legacy preferences.json
21
- * bridge) and bypass this fallback.
12
+ * planner function and historically took its execution model from a
13
+ * legacy provider config; with the slim default that field is
14
+ * `undefined`, so `getConfiguredExecutionModelId` would throw. We
15
+ * retain a sensible default here as a literal so the planner remains
16
+ * usable when the caller has not passed an explicit `executionModelId`
17
+ * (unit tests, dry-run previews, the `peaks swarm plan` onboarding
18
+ * path). Production callers that have a real `ocr.llm.model` configured
19
+ * pass it via `request.executionModelId` (or via the legacy
20
+ * preferences.json bridge) and bypass this fallback.
22
21
  */
23
- const DEFAULT_EXECUTION_MODEL_ID = 'minimax-2.7';
22
+ const DEFAULT_EXECUTION_MODEL_ID = 'claude-opus-4-7';
24
23
  import { getTechStatus, TECH_REQUIRED_ARTIFACTS } from '../tech/tech-service.js';
25
24
  import { resolveRdStartupStandardsCheck } from './standards-diagnostic.js';
26
25
  import { runStrategicStage } from './strategic-stage.js';
@@ -57,19 +57,19 @@ export declare const AstViolationSchema: z.ZodObject<{
57
57
  actualVersion: z.ZodString;
58
58
  severity: z.ZodEnum<["error", "warning"]>;
59
59
  }, "strip", z.ZodTypeAny, {
60
- api: string;
61
60
  file: string;
61
+ api: string;
62
+ severity: "error" | "warning";
62
63
  line: number;
63
64
  expectedVersion: string;
64
65
  actualVersion: string;
65
- severity: "error" | "warning";
66
66
  }, {
67
- api: string;
68
67
  file: string;
68
+ api: string;
69
+ severity: "error" | "warning";
69
70
  line: number;
70
71
  expectedVersion: string;
71
72
  actualVersion: string;
72
- severity: "error" | "warning";
73
73
  }>;
74
74
  export declare const AstGateResultSchema: z.ZodObject<{
75
75
  passed: z.ZodBoolean;
@@ -81,39 +81,39 @@ export declare const AstGateResultSchema: z.ZodObject<{
81
81
  actualVersion: z.ZodString;
82
82
  severity: z.ZodEnum<["error", "warning"]>;
83
83
  }, "strip", z.ZodTypeAny, {
84
- api: string;
85
84
  file: string;
85
+ api: string;
86
+ severity: "error" | "warning";
86
87
  line: number;
87
88
  expectedVersion: string;
88
89
  actualVersion: string;
89
- severity: "error" | "warning";
90
90
  }, {
91
- api: string;
92
91
  file: string;
92
+ api: string;
93
+ severity: "error" | "warning";
93
94
  line: number;
94
95
  expectedVersion: string;
95
96
  actualVersion: string;
96
- severity: "error" | "warning";
97
97
  }>, "many">;
98
98
  }, "strip", z.ZodTypeAny, {
99
99
  passed: boolean;
100
100
  violations: {
101
- api: string;
102
101
  file: string;
102
+ api: string;
103
+ severity: "error" | "warning";
103
104
  line: number;
104
105
  expectedVersion: string;
105
106
  actualVersion: string;
106
- severity: "error" | "warning";
107
107
  }[];
108
108
  }, {
109
109
  passed: boolean;
110
110
  violations: {
111
- api: string;
112
111
  file: string;
112
+ api: string;
113
+ severity: "error" | "warning";
113
114
  line: number;
114
115
  expectedVersion: string;
115
116
  actualVersion: string;
116
- severity: "error" | "warning";
117
117
  }[];
118
118
  }>;
119
119
  export declare const ExternalApiCallSchema: z.ZodObject<{
@@ -123,13 +123,13 @@ export declare const ExternalApiCallSchema: z.ZodObject<{
123
123
  version: z.ZodString;
124
124
  }, "strip", z.ZodTypeAny, {
125
125
  version: string;
126
- api: string;
127
126
  file: string;
127
+ api: string;
128
128
  line: number;
129
129
  }, {
130
130
  version: string;
131
- api: string;
132
131
  file: string;
132
+ api: string;
133
133
  line: number;
134
134
  }>;
135
135
  export declare const ImplOutputSchema: z.ZodObject<{
@@ -145,13 +145,13 @@ export declare const ImplOutputSchema: z.ZodObject<{
145
145
  version: z.ZodString;
146
146
  }, "strip", z.ZodTypeAny, {
147
147
  version: string;
148
- api: string;
149
148
  file: string;
149
+ api: string;
150
150
  line: number;
151
151
  }, {
152
152
  version: string;
153
- api: string;
154
153
  file: string;
154
+ api: string;
155
155
  line: number;
156
156
  }>, "many">;
157
157
  astGateResult: z.ZodObject<{
@@ -164,85 +164,85 @@ export declare const ImplOutputSchema: z.ZodObject<{
164
164
  actualVersion: z.ZodString;
165
165
  severity: z.ZodEnum<["error", "warning"]>;
166
166
  }, "strip", z.ZodTypeAny, {
167
- api: string;
168
167
  file: string;
168
+ api: string;
169
+ severity: "error" | "warning";
169
170
  line: number;
170
171
  expectedVersion: string;
171
172
  actualVersion: string;
172
- severity: "error" | "warning";
173
173
  }, {
174
- api: string;
175
174
  file: string;
175
+ api: string;
176
+ severity: "error" | "warning";
176
177
  line: number;
177
178
  expectedVersion: string;
178
179
  actualVersion: string;
179
- severity: "error" | "warning";
180
180
  }>, "many">;
181
181
  }, "strip", z.ZodTypeAny, {
182
182
  passed: boolean;
183
183
  violations: {
184
- api: string;
185
184
  file: string;
185
+ api: string;
186
+ severity: "error" | "warning";
186
187
  line: number;
187
188
  expectedVersion: string;
188
189
  actualVersion: string;
189
- severity: "error" | "warning";
190
190
  }[];
191
191
  }, {
192
192
  passed: boolean;
193
193
  violations: {
194
- api: string;
195
194
  file: string;
195
+ api: string;
196
+ severity: "error" | "warning";
196
197
  line: number;
197
198
  expectedVersion: string;
198
199
  actualVersion: string;
199
- severity: "error" | "warning";
200
200
  }[];
201
201
  }>;
202
202
  }, "strip", z.ZodTypeAny, {
203
203
  version: "1.0";
204
204
  sha256: string;
205
205
  generatedAt: string;
206
- inputSig: string;
207
206
  changedFiles: string[];
207
+ inputSig: string;
208
208
  externalApiCalls: {
209
209
  version: string;
210
- api: string;
211
210
  file: string;
211
+ api: string;
212
212
  line: number;
213
213
  }[];
214
214
  astGateResult: {
215
215
  passed: boolean;
216
216
  violations: {
217
- api: string;
218
217
  file: string;
218
+ api: string;
219
+ severity: "error" | "warning";
219
220
  line: number;
220
221
  expectedVersion: string;
221
222
  actualVersion: string;
222
- severity: "error" | "warning";
223
223
  }[];
224
224
  };
225
225
  }, {
226
226
  version: "1.0";
227
227
  sha256: string;
228
228
  generatedAt: string;
229
- inputSig: string;
230
229
  changedFiles: string[];
230
+ inputSig: string;
231
231
  externalApiCalls: {
232
232
  version: string;
233
- api: string;
234
233
  file: string;
234
+ api: string;
235
235
  line: number;
236
236
  }[];
237
237
  astGateResult: {
238
238
  passed: boolean;
239
239
  violations: {
240
- api: string;
241
240
  file: string;
241
+ api: string;
242
+ severity: "error" | "warning";
242
243
  line: number;
243
244
  expectedVersion: string;
244
245
  actualVersion: string;
245
- severity: "error" | "warning";
246
246
  }[];
247
247
  };
248
248
  }>;
@@ -0,0 +1,60 @@
1
+ import type { WorkspaceConfig } from '../config/config-types.js';
2
+ import { type BoundaryError } from '../openspec/artifact-boundary.js';
3
+ export type RdSwarmPlanRequest = {
4
+ skill: 'rd' | string;
5
+ changeId: string;
6
+ goal: string;
7
+ maxWorkers?: number;
8
+ dryRun: true;
9
+ workspaceRoot: string;
10
+ targetRepoRoot?: string;
11
+ requiresTechApproval?: boolean;
12
+ workspace?: WorkspaceConfig;
13
+ };
14
+ export type RdWaveName = 'discovery' | 'planning' | 'implementation candidates' | 'quality gates' | 'reducer';
15
+ export type RdTask = {
16
+ taskId: string;
17
+ wave: RdWaveName;
18
+ workerKind: string;
19
+ purpose: string;
20
+ inputs: string[];
21
+ outputs: [string, ...string[]];
22
+ dependsOn: string[];
23
+ conflictGroup: string;
24
+ targetArea: string;
25
+ expectedEvidence: string;
26
+ };
27
+ export type RdConflictGroup = {
28
+ groupId: string;
29
+ ownedPaths: string[];
30
+ parallelismPolicy: 'parallel' | 'sequential';
31
+ reason: string;
32
+ };
33
+ export type RdTaskGraph = {
34
+ changeId: string;
35
+ goal: string;
36
+ available: boolean;
37
+ workerTarget: number;
38
+ waves: Array<{
39
+ name: RdWaveName;
40
+ taskIds: string[];
41
+ }>;
42
+ tasks: RdTask[];
43
+ conflictGroups: RdConflictGroup[];
44
+ artifactRoot: string;
45
+ outputs: {
46
+ taskGraph: string;
47
+ waveManifests: string[];
48
+ workerBriefs: string[];
49
+ reducerReport: string;
50
+ };
51
+ gateStatus: {
52
+ techApprovalRequired: boolean;
53
+ techStatus: string;
54
+ skipReason?: string;
55
+ };
56
+ blockedReasons: string[];
57
+ nextActions: string[];
58
+ };
59
+ export declare function planRdSwarmGraph(input: RdSwarmPlanRequest): RdTaskGraph;
60
+ export type { BoundaryError };
@@ -0,0 +1,93 @@
1
+ import { existsSync, readFileSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { planArtifactPath, validateChangeId } from '../openspec/artifact-boundary.js';
4
+ import { getTechStatus as getLegacyTechStatus } from '../tech/tech-service.js';
5
+ const MIN_WORKERS = 25;
6
+ const MAX_WORKERS = 40;
7
+ const REQUIRED_TECH_FILES = ['frontend-tech-doc.md', 'backend-tech-doc.md', 'tech-approval-record.md'];
8
+ function failure(input, reasons, actions, gateStatus, workerTarget) {
9
+ return { ...input, available: false, workerTarget, waves: [], tasks: [], conflictGroups: [], outputs: { taskGraph: `${input.artifactRoot}/task-graph.json`, waveManifests: [], workerBriefs: [], reducerReport: `${input.artifactRoot}/reducer-report.md` }, gateStatus, blockedReasons: reasons, nextActions: actions };
10
+ }
11
+ function validate(input) {
12
+ if (input.skill !== 'rd')
13
+ return { ok: false, error: { code: 'UNSUPPORTED_SWARM_SKILL', message: `Unsupported skill ${input.skill}` } };
14
+ const id = validateChangeId(input.changeId);
15
+ if (!id.ok)
16
+ return { ok: false, error: id.error };
17
+ const goal = input.goal.trim();
18
+ if (!goal)
19
+ return { ok: false, error: { code: 'INVALID_GOAL', message: 'Goal must be non-empty' } };
20
+ return { ok: true, value: { changeId: id.value.changeId, goal } };
21
+ }
22
+ function localTechStatus(input) {
23
+ try {
24
+ const canonical = getLegacyTechStatus({ sessionId: input.changeId, artifactWorkspacePath: input.workspaceRoot, ...(input.workspace ? { workspace: input.workspace } : {}) });
25
+ if (canonical.status === 'approved')
26
+ return 'approved';
27
+ }
28
+ catch { /* pure planner fallback for an unconfigured workspace */ }
29
+ const root = join(input.workspaceRoot, input.changeId, 'rd', 'architecture');
30
+ const missing = REQUIRED_TECH_FILES.filter((name) => !existsSync(join(root, name)));
31
+ if (missing.length > 0)
32
+ return missing.includes('tech-approval-record.md') && missing.length === 1 ? 'missing-approval' : 'missing';
33
+ try {
34
+ return readFileSync(join(root, 'tech-approval-record.md'), 'utf8').split(/\r?\n/).some((line) => line.trim() === 'status: approved') ? 'approved' : 'not-approved';
35
+ }
36
+ catch {
37
+ return 'not-approved';
38
+ }
39
+ }
40
+ function path(input, template) {
41
+ const result = planArtifactPath({ changeId: input.changeId, workspaceRoot: input.workspaceRoot, role: 'rd', requestId: 'swarm', template });
42
+ if (!result.ok)
43
+ throw new Error(result.error.message);
44
+ return result.value.jsonSafeRelativePath;
45
+ }
46
+ function createTask(taskId, wave, goal, dependencies, index) {
47
+ const output = `workers/${taskId}/brief.md`;
48
+ return { taskId, wave, workerKind: taskId, purpose: `${taskId} for ${goal}`, inputs: [goal], outputs: [output], dependsOn: [...dependencies], conflictGroup: `group-${wave.replace(/\s/g, '-')}`, targetArea: wave === 'implementation candidates' ? `slice-${index + 1}` : wave, expectedEvidence: `${taskId}-evidence.md` };
49
+ }
50
+ function taskIds(target) {
51
+ const discovery = ['rd-frontend-scan', 'rd-backend-scan', 'rd-test-scan', 'rd-contract-scan', 'rd-risk-scan'];
52
+ const planning = ['rd-frontend-slicer', 'rd-backend-slicer', 'rd-unit-test-slicer', 'rd-contract-planner', 'rd-quality-gate-planner'];
53
+ const quality = ['rd-code-review-worker', 'rd-security-review-worker', 'rd-typecheck-worker', 'rd-coverage-worker', 'rd-regression-worker'];
54
+ const implementationCount = Math.max(1, target - discovery.length - planning.length - quality.length - 1);
55
+ const implementation = Array.from({ length: implementationCount }, (_, i) => `rd-impl-${String(i + 1).padStart(3, '0')}`);
56
+ return { discovery, planning, 'implementation candidates': implementation, 'quality gates': quality, reducer: ['rd-reducer-worker'] };
57
+ }
58
+ export function planRdSwarmGraph(input) {
59
+ const checked = validate(input);
60
+ const defaultRoot = `${input.changeId}/swarm`;
61
+ const common = { changeId: input.changeId, goal: input.goal.trim(), artifactRoot: defaultRoot };
62
+ const requested = input.maxWorkers ?? 25;
63
+ if (!checked.ok)
64
+ return failure(common, [checked.error.code], [checked.error.message], { techApprovalRequired: input.requiresTechApproval === true, techStatus: 'unavailable' }, Number.isInteger(requested) && requested > 0 ? Math.min(requested, MAX_WORKERS) : 0);
65
+ if (!Number.isInteger(requested) || requested < 1)
66
+ return failure({ ...common, goal: checked.value.goal, changeId: checked.value.changeId, artifactRoot: `${checked.value.changeId}/swarm` }, ['INVALID_MAX_WORKERS'], ['Use a positive integer for max-workers.'], { techApprovalRequired: input.requiresTechApproval === true, techStatus: 'unavailable' }, 0);
67
+ const goal = checked.value.goal;
68
+ const changeId = checked.value.changeId;
69
+ const artifactRoot = `${changeId}/swarm`;
70
+ const target = Math.min(requested, MAX_WORKERS);
71
+ const reasons = requested > MAX_WORKERS ? ['WORKER_CAP_EXCEEDED'] : [];
72
+ if (requested < MIN_WORKERS)
73
+ reasons.push('SMALL_SCOPE');
74
+ const required = input.requiresTechApproval === true;
75
+ const techStatus = localTechStatus({ ...input, changeId, goal });
76
+ const gateStatus = { techApprovalRequired: required, techStatus, ...(required ? {} : { skipReason: 'tech-gate-not-required' }) };
77
+ if (required && techStatus !== 'approved') {
78
+ reasons.push('TECH_APPROVAL_REQUIRED');
79
+ if (techStatus === 'missing-approval' || techStatus === 'missing')
80
+ reasons.push('TECH_APPROVAL_MISSING');
81
+ }
82
+ if (reasons.includes('SMALL_SCOPE'))
83
+ return failure({ changeId, goal, artifactRoot }, reasons, ['Describe the small scope in natural language or increase the worker target to at least 25.'], gateStatus, target);
84
+ if (required && techStatus !== 'approved')
85
+ return failure({ changeId, goal, artifactRoot }, reasons, ['Review and approve the technical plan before running the RD swarm.'], gateStatus, target);
86
+ const ids = taskIds(target);
87
+ const waves = Object.entries(ids).map(([name, taskIds]) => ({ name, taskIds }));
88
+ const dependencies = { discovery: [], planning: ids.discovery, 'implementation candidates': ids.planning, 'quality gates': ids['implementation candidates'], reducer: ids['quality gates'] };
89
+ const tasks = waves.flatMap(({ name, taskIds: waveTaskIds }) => waveTaskIds.map((id, i) => createTask(id, name, goal, dependencies[name], i)));
90
+ const conflictGroups = waves.map(({ name, taskIds: waveTaskIds }) => ({ groupId: `group-${name.replace(/\s/g, '-')}`, ownedPaths: waveTaskIds.map((id) => `${artifactRoot}/workers/${id}/brief.md`), parallelismPolicy: waveTaskIds.length > 1 ? 'parallel' : 'sequential', reason: `${name} workers have isolated artifact ownership` }));
91
+ const outputs = { taskGraph: path(input, '<changeId>/swarm/task-graph.json'), waveManifests: waves.map((wave, i) => path(input, `<changeId>/swarm/waves/wave-${i + 1}-${wave.name}.json`)), workerBriefs: tasks.map((task) => path(input, `<changeId>/swarm/${task.outputs[0]}`)), reducerReport: path(input, '<changeId>/swarm/reducer-report.md') };
92
+ return { changeId, goal, available: true, workerTarget: target, waves, tasks, conflictGroups, artifactRoot, outputs, gateStatus, blockedReasons: reasons, nextActions: reasons.includes('WORKER_CAP_EXCEEDED') ? ['Worker target was capped at 40.'] : [] };
93
+ }
@@ -93,7 +93,6 @@ export const seedCapabilityItems = [
93
93
  capability('searchcode-mcp.code-search', 'searchcode-mcp', 'SearchCode MCP', 'mcp', 'code-search', ['engineer'], 'medium', 'local-code-search', 'Use local Grep/Glob and ask before sending private code externally.', 'External Code Search', '外部代码搜索', 'Searches code examples or repositories outside the current workspace.', '搜索当前工作区外部的代码示例或仓库。'),
94
94
  capability('mysql-mcp.database-inspection', 'mysql-mcp-server', 'MySQL Database Inspection', 'mcp', 'database-inspection', ['engineer'], 'high', 'schema-excerpt-input', 'Ask the user for schema excerpts or sanitized query plans.', 'MySQL Inspection', 'MySQL 检查', 'Inspects MySQL schema and data through an MCP boundary.', '通过 MCP 边界检查 MySQL schema 与数据。'),
95
95
  capability('agent-browser.browser-agent', 'agent-browser', 'Agent Browser', 'agent', 'browser-agent', ['engineer', 'qa'], 'medium', 'manual-browser-walkthrough', 'Use screenshots and manual test steps if agent browser is unavailable.', 'Agent Browser', '浏览器代理', 'Supports browser-based validation and interaction planning.', '支持基于浏览器的验证和交互规划。'),
96
- capability('minimax-skills.worker-guidance', 'minimax-skills', 'MiniMax Worker Guidance', 'skill', 'worker-guidance', ['engineer'], 'medium', 'peaks-worker-contract', 'Use Peaks built-in minimax-worker contract and review handoff.', 'MiniMax Worker Guidance', 'MiniMax Worker 指南', 'Guides MiniMax coding/test worker delegation.', '指导 MiniMax 编码/测试 worker 委托。'),
97
96
  capability('claude-mem.memory-persistence', 'claude-mem', 'Claude Memory Persistence', 'skill', 'memory', ['engineer'], 'medium', 'peaks-txt-context-capsule', 'Use peaks-txt context capsules without storing secrets.', 'Memory Persistence', '记忆持久化', 'Persists reusable context when explicitly approved.', '在明确授权时持久化可复用上下文。'),
98
97
  capability('openspec.spec-workflow', 'openspec', 'OpenSpec Workflow', 'workflow', 'spec-workflow', ['product', 'engineer'], 'low', 'peaks-prd-rd-qa-artifacts', 'Use Peaks built-in PRD/RD/QA artifact flow.', 'OpenSpec Workflow', 'OpenSpec 规格流程', 'Supports spec-first product and engineering governance.', '支持规格优先的产品与工程治理。'),
99
98
  capability('gitnexus.repo-intelligence', 'gitnexus', 'GitNexus Repository Intelligence', 'cli', 'repo-intelligence', ['engineer'], 'medium', 'local-repo-scan', 'Use local project scanning through Peaks RD.', 'Repository Intelligence', '仓库智能分析', 'Repository intelligence should be proxied through Peaks before use.', '仓库智能分析应先通过 Peaks 代理边界再使用。'),
@@ -31,7 +31,6 @@ export const seedCapabilityLandingMappings = [
31
31
  mapping({ capabilityId: 'impeccable.quality-guidance', sourceId: 'impeccable', sourceGroup: 'mcp-server', landingKind: 'catalog', target: 'quality reference catalog', guidance: 'Use as quality inspiration; Peaks review gates remain authoritative.' }),
32
32
  mapping({ capabilityId: 'vercel-agent-skills.skill-pack', sourceId: 'vercel-agent-skills', sourceGroup: 'mcp-server', landingKind: 'catalog', target: 'external skill catalog', guidance: 'Catalog only until individual skills are inspected and approved.' }),
33
33
  mapping({ capabilityId: 'agent-browser.browser-agent', sourceId: 'agent-browser', sourceGroup: 'mcp-server', landingKind: 'skill', target: 'peaks-qa', skillName: 'peaks-qa', guidance: 'Use for browser validation; never submit forms or mutate authenticated state without explicit permission.' }),
34
- mapping({ capabilityId: 'minimax-skills.worker-guidance', sourceId: 'minimax-skills', sourceGroup: 'mcp-server', landingKind: 'cli', target: 'peaks minimax-worker', commandPreview: 'peaks minimax-worker --json', guidance: 'Use Peaks worker command only after reviewing inputs; add --confirm manually when explicit external-provider approval exists.' }),
35
34
  mapping({ capabilityId: 'claude-mem.memory-persistence', sourceId: 'claude-mem', sourceGroup: 'mcp-server', landingKind: 'skill', target: 'peaks-txt', skillName: 'peaks-txt', guidance: 'Use only with explicit durable-memory consent and never store secrets.' }),
36
35
  mapping({ capabilityId: 'darwin-skill.external-skill', sourceId: 'darwin-skill', sourceGroup: 'mcp-server', landingKind: 'catalog', target: 'external skill catalog', guidance: 'Catalog only until inspected for project fit and safety.' }),
37
36
  mapping({ capabilityId: 'claude-code-best-practice.workflow-guidance', sourceId: 'claude-code-best-practice', sourceGroup: 'mcp-server', landingKind: 'skill', target: 'peaks-rd', skillName: 'peaks-rd', guidance: 'Use as Claude Code workflow reference while preserving Peaks gates.' }),
@@ -15,7 +15,6 @@ export const seedCapabilitySources = [
15
15
  { sourceId: 'impeccable', sourceType: 'repo', sourceGroup: 'mcp-server', title: 'impeccable', url: 'https://github.com/pbakaus/impeccable', discoveryStatus: 'unscanned', items: ['impeccable.quality-guidance'] },
16
16
  { sourceId: 'vercel-agent-skills', sourceType: 'skills-package', sourceGroup: 'mcp-server', title: 'Vercel Agent Skills', url: 'https://github.com/vercel-labs/agent-skills', discoveryStatus: 'unscanned', items: ['vercel-agent-skills.skill-pack'] },
17
17
  { sourceId: 'agent-browser', sourceType: 'repo', sourceGroup: 'mcp-server', title: 'Agent Browser', url: 'https://github.com/vercel-labs/agent-browser', discoveryStatus: 'indexed', items: ['agent-browser.browser-agent'] },
18
- { sourceId: 'minimax-skills', sourceType: 'skills-package', sourceGroup: 'mcp-server', title: 'MiniMax Skills', url: 'https://github.com/MiniMax-AI/skills', discoveryStatus: 'indexed', items: ['minimax-skills.worker-guidance'] },
19
18
  { sourceId: 'claude-mem', sourceType: 'repo', sourceGroup: 'mcp-server', title: 'claude-mem', url: 'https://github.com/thedotmack/claude-mem', discoveryStatus: 'indexed', items: ['claude-mem.memory-persistence'] },
20
19
  { sourceId: 'darwin-skill', sourceType: 'skills-package', sourceGroup: 'mcp-server', title: 'darwin-skill', url: 'https://github.com/alchaincyf/darwin-skill', discoveryStatus: 'unscanned', items: ['darwin-skill.external-skill'] },
21
20
  { sourceId: 'claude-code-best-practice', sourceType: 'repo', sourceGroup: 'mcp-server', title: 'Claude Code Best Practice', url: 'https://github.com/shanraisshan/claude-code-best-practice', discoveryStatus: 'indexed', items: ['claude-code-best-practice.workflow-guidance'] },
@@ -0,0 +1,51 @@
1
+ /**
2
+ * rid-010 — peaks release precheck (Phase 4 slice 1).
3
+ *
4
+ * Module path: src/services/release/version-precheck-service.ts
5
+ * Mirror of publish.yml gate-cli-version step §(A). The §(B) tarball-content gate
6
+ * (Layer 5 of the 5-layer root cause) stays CI-only — AC-7 grep test pins
7
+ * publish.yml so §(B) cannot drift silently.
8
+ *
9
+ * 4-layer version precheck mirroring publish.yml gate-cli-version step. Designed
10
+ * to run BEFORE `peaks release canary` so developers catch CLI_VERSION lag /
11
+ * tag collision / changeset staged / workspace drift without waiting for CI.
12
+ *
13
+ * Mirrors the §(A) on-disk gate from publish.yml. The §(B) tarball-content gate
14
+ * (Layer 5 of the 5-layer root cause) stays CI-only — AC-7 grep test pins
15
+ * publish.yml so §(B) cannot drift silently.
16
+ *
17
+ * Design contract:
18
+ * - Pure functions. NO `process.exitCode` mutation here (cli-helpers owns it).
19
+ * - All I/O parameterized via `projectRoot`.
20
+ * - Layer A and B are blockers by default; C and D are warnings (--strict
21
+ * upgrades them to blockers; hotfix path uses default warning).
22
+ */
23
+ export type LayerStatus = 'ok' | 'warning' | 'blocker';
24
+ export interface LayerResult {
25
+ readonly status: LayerStatus;
26
+ readonly message: string;
27
+ readonly remediation: string;
28
+ readonly observed?: Readonly<Record<string, unknown>>;
29
+ }
30
+ export interface PrecheckOptions {
31
+ readonly projectRoot: string;
32
+ readonly strict?: boolean;
33
+ }
34
+ export interface PrecheckEnvelope {
35
+ readonly ok: boolean;
36
+ readonly overall: LayerStatus;
37
+ readonly rootVersion: string;
38
+ readonly strict: boolean;
39
+ readonly snapshotAt: string;
40
+ readonly layers: {
41
+ readonly rootVsShared: LayerResult;
42
+ readonly tagCollision: LayerResult;
43
+ readonly changesetStaged: LayerResult;
44
+ readonly workspaceLockstep: LayerResult;
45
+ };
46
+ }
47
+ export declare function runRootVsShared(opts: PrecheckOptions): LayerResult;
48
+ export declare function runTagCollision(opts: PrecheckOptions): LayerResult;
49
+ export declare function runChangesetStaged(opts: PrecheckOptions): LayerResult;
50
+ export declare function runWorkspaceLockstep(opts: PrecheckOptions): LayerResult;
51
+ export declare function runAllLayers(opts: PrecheckOptions): PrecheckEnvelope;