peaks-loop 4.0.0-beta.8 → 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 (1293) hide show
  1. package/CHANGELOG.md +955 -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 +1 -1
  6. package/dist/cli/cli-helpers.d.ts +68 -0
  7. package/dist/cli/cli-helpers.js +109 -0
  8. package/dist/cli/commands/_cli-error-envelope.d.ts +19 -0
  9. package/dist/cli/commands/_cli-error-envelope.js +50 -0
  10. package/dist/cli/commands/_register.d.ts +3 -0
  11. package/dist/cli/commands/_register.js +139 -0
  12. package/dist/cli/commands/_super.d.ts +10 -0
  13. package/dist/cli/commands/_super.js +97 -0
  14. package/dist/cli/commands/adapter-commands-s2a.d.ts +34 -0
  15. package/dist/cli/commands/adapter-commands-s2a.js +92 -0
  16. package/dist/cli/commands/adapter-commands.d.ts +30 -0
  17. package/dist/cli/commands/adapter-commands.js +35 -0
  18. package/dist/cli/commands/asset-commands.d.ts +45 -0
  19. package/dist/cli/commands/asset-commands.js +421 -0
  20. package/dist/cli/commands/audit-commands.d.ts +28 -0
  21. package/dist/cli/commands/audit-commands.js +437 -0
  22. package/dist/cli/commands/autonomous-swarm-commands.d.ts +12 -0
  23. package/dist/cli/commands/autonomous-swarm-commands.js +120 -0
  24. package/dist/cli/commands/bee-commands.d.ts +26 -0
  25. package/dist/cli/commands/bee-commands.js +169 -0
  26. package/dist/cli/commands/capability-commands.d.ts +16 -0
  27. package/dist/cli/commands/capability-commands.js +45 -0
  28. package/dist/cli/commands/capability-worker-config-sc-commands.d.ts +3 -0
  29. package/dist/cli/commands/capability-worker-config-sc-commands.js +8 -0
  30. package/dist/cli/commands/changeset-commands.d.ts +13 -0
  31. package/dist/cli/commands/changeset-commands.js +46 -0
  32. package/dist/cli/commands/code-commands.d.ts +90 -0
  33. package/dist/cli/commands/code-commands.js +118 -0
  34. package/dist/cli/commands/code-job-shape-commands.d.ts +9 -0
  35. package/dist/cli/commands/code-job-shape-commands.js +164 -0
  36. package/dist/cli/commands/code-mode-gate-commands.d.ts +9 -0
  37. package/dist/cli/commands/code-mode-gate-commands.js +223 -0
  38. package/dist/cli/commands/code-review-commands.d.ts +34 -0
  39. package/dist/cli/commands/code-review-commands.js +83 -0
  40. package/dist/cli/commands/code-run-command.d.ts +12 -0
  41. package/dist/cli/commands/code-run-command.js +68 -0
  42. package/dist/cli/commands/code-runtime-commands.d.ts +11 -0
  43. package/dist/cli/commands/code-runtime-commands.js +391 -0
  44. package/dist/cli/commands/codegraph-commands.d.ts +3 -0
  45. package/dist/cli/commands/codegraph-commands.js +99 -0
  46. package/dist/cli/commands/compact-command.d.ts +21 -0
  47. package/dist/cli/commands/compact-command.js +304 -0
  48. package/dist/cli/commands/complexity-commands.d.ts +9 -0
  49. package/dist/cli/commands/complexity-commands.js +34 -0
  50. package/dist/cli/commands/config-commands.d.ts +3 -0
  51. package/dist/cli/commands/config-commands.js +149 -0
  52. package/dist/cli/commands/container-commands.d.ts +28 -0
  53. package/dist/cli/commands/container-commands.js +221 -0
  54. package/dist/cli/commands/context-builder-commands.d.ts +11 -0
  55. package/dist/cli/commands/context-builder-commands.js +85 -0
  56. package/dist/cli/commands/context-commands.d.ts +21 -0
  57. package/dist/cli/commands/context-commands.js +255 -0
  58. package/dist/cli/commands/core/artifacts-command.d.ts +3 -0
  59. package/dist/cli/commands/core/artifacts-command.js +62 -0
  60. package/dist/cli/commands/core/binding-commands.d.ts +3 -0
  61. package/dist/cli/commands/core/binding-commands.js +58 -0
  62. package/dist/cli/commands/core/doctor-command.d.ts +11 -0
  63. package/dist/cli/commands/core/doctor-command.js +264 -0
  64. package/dist/cli/commands/core/memory-command.d.ts +3 -0
  65. package/dist/cli/commands/core/memory-command.js +98 -0
  66. package/dist/cli/commands/core/profile-command.d.ts +3 -0
  67. package/dist/cli/commands/core/profile-command.js +9 -0
  68. package/dist/cli/commands/core/proxy-command.d.ts +3 -0
  69. package/dist/cli/commands/core/proxy-command.js +26 -0
  70. package/dist/cli/commands/core/session-command.d.ts +3 -0
  71. package/dist/cli/commands/core/session-command.js +243 -0
  72. package/dist/cli/commands/core/skill-command.d.ts +3 -0
  73. package/dist/cli/commands/core/skill-command.js +303 -0
  74. package/dist/cli/commands/core/standards-command.d.ts +3 -0
  75. package/dist/cli/commands/core/standards-command.js +95 -0
  76. package/dist/cli/commands/core-artifact-commands.d.ts +15 -0
  77. package/dist/cli/commands/core-artifact-commands.js +31 -0
  78. package/dist/cli/commands/cron-commands.d.ts +57 -0
  79. package/dist/cli/commands/cron-commands.js +257 -0
  80. package/dist/cli/commands/cron-scheduler-commands.d.ts +47 -0
  81. package/dist/cli/commands/cron-scheduler-commands.js +284 -0
  82. package/dist/cli/commands/dashboard-commands.d.ts +4 -0
  83. package/dist/cli/commands/dashboard-commands.js +10 -0
  84. package/dist/cli/commands/dashboard-long-run.d.ts +25 -0
  85. package/dist/cli/commands/dashboard-long-run.js +122 -0
  86. package/dist/cli/commands/dashboard-summary.d.ts +12 -0
  87. package/dist/cli/commands/dashboard-summary.js +58 -0
  88. package/dist/cli/commands/dispatch-commands.d.ts +3 -0
  89. package/dist/cli/commands/dispatch-commands.js +715 -0
  90. package/dist/cli/commands/dispatch-from-dag.d.ts +3 -0
  91. package/dist/cli/commands/dispatch-from-dag.js +254 -0
  92. package/dist/cli/commands/doc-commands.d.ts +11 -0
  93. package/dist/cli/commands/doc-commands.js +65 -0
  94. package/dist/cli/commands/ecc-commands.d.ts +30 -0
  95. package/dist/cli/commands/ecc-commands.js +119 -0
  96. package/dist/cli/commands/evolution-commands.d.ts +27 -0
  97. package/dist/cli/commands/evolution-commands.js +393 -0
  98. package/dist/cli/commands/feedback-commands.d.ts +18 -0
  99. package/dist/cli/commands/feedback-commands.js +145 -0
  100. package/dist/cli/commands/final-review-commands.d.ts +31 -0
  101. package/dist/cli/commands/final-review-commands.js +161 -0
  102. package/dist/cli/commands/fixture-commands.d.ts +32 -0
  103. package/dist/cli/commands/fixture-commands.js +91 -0
  104. package/dist/cli/commands/fork-commands.d.ts +16 -0
  105. package/dist/cli/commands/fork-commands.js +163 -0
  106. package/dist/cli/commands/gate-commands.d.ts +3 -0
  107. package/dist/cli/commands/gate-commands.js +239 -0
  108. package/dist/cli/commands/governance-classify-contract-commands.d.ts +21 -0
  109. package/dist/cli/commands/governance-classify-contract-commands.js +273 -0
  110. package/dist/cli/commands/heartbeat-commands.d.ts +3 -0
  111. package/dist/cli/commands/heartbeat-commands.js +206 -0
  112. package/dist/cli/commands/heartbeat-watch-command.d.ts +31 -0
  113. package/dist/cli/commands/heartbeat-watch-command.js +146 -0
  114. package/dist/cli/commands/hook-handle.d.ts +17 -0
  115. package/dist/cli/commands/hook-handle.js +157 -0
  116. package/dist/cli/commands/hooks-commands.d.ts +3 -0
  117. package/dist/cli/commands/hooks-commands.js +272 -0
  118. package/dist/cli/commands/ide-commands.d.ts +25 -0
  119. package/dist/cli/commands/ide-commands.js +42 -0
  120. package/dist/cli/commands/impact-commands.d.ts +15 -0
  121. package/dist/cli/commands/impact-commands.js +62 -0
  122. package/dist/cli/commands/job-commands.d.ts +3 -0
  123. package/dist/cli/commands/job-commands.js +322 -0
  124. package/dist/cli/commands/lease-metrics-commands.d.ts +67 -0
  125. package/dist/cli/commands/lease-metrics-commands.js +231 -0
  126. package/dist/cli/commands/lease-stats-commands.d.ts +65 -0
  127. package/dist/cli/commands/lease-stats-commands.js +107 -0
  128. package/dist/cli/commands/legacy-commands.d.ts +11 -0
  129. package/dist/cli/commands/legacy-commands.js +32 -0
  130. package/dist/cli/commands/log-commands.d.ts +17 -0
  131. package/dist/cli/commands/log-commands.js +64 -0
  132. package/dist/cli/commands/loop-commands.d.ts +27 -0
  133. package/dist/cli/commands/loop-commands.js +262 -0
  134. package/dist/cli/commands/loop-eval-commands.d.ts +20 -0
  135. package/dist/cli/commands/loop-eval-commands.js +526 -0
  136. package/dist/cli/commands/memory-commands.d.ts +23 -0
  137. package/dist/cli/commands/memory-commands.js +129 -0
  138. package/dist/cli/commands/migrate-1-4-1-command.d.ts +11 -0
  139. package/dist/cli/commands/migrate-1-4-1-command.js +34 -0
  140. package/dist/cli/commands/migrate-v2-10-to-v2-11-command.d.ts +20 -0
  141. package/dist/cli/commands/migrate-v2-10-to-v2-11-command.js +52 -0
  142. package/dist/cli/commands/mut-commands.d.ts +20 -0
  143. package/dist/cli/commands/mut-commands.js +235 -0
  144. package/dist/cli/commands/observability-commands.d.ts +22 -0
  145. package/dist/cli/commands/observability-commands.js +201 -0
  146. package/dist/cli/commands/openspec-commands.d.ts +3 -0
  147. package/dist/cli/commands/openspec-commands.js +298 -0
  148. package/dist/cli/commands/perf-audit-commands.d.ts +22 -0
  149. package/dist/cli/commands/perf-audit-commands.js +132 -0
  150. package/dist/cli/commands/perf-commands.d.ts +3 -0
  151. package/dist/cli/commands/perf-commands.js +41 -0
  152. package/dist/cli/commands/playwright-commands.d.ts +95 -0
  153. package/dist/cli/commands/playwright-commands.js +432 -0
  154. package/dist/cli/commands/polyrepo-commands.d.ts +37 -0
  155. package/dist/cli/commands/polyrepo-commands.js +155 -0
  156. package/dist/cli/commands/prd-blocks-commands.d.ts +18 -0
  157. package/dist/cli/commands/prd-blocks-commands.js +50 -0
  158. package/dist/cli/commands/prd-commands.d.ts +18 -0
  159. package/dist/cli/commands/prd-commands.js +143 -0
  160. package/dist/cli/commands/preferences-commands.d.ts +2 -0
  161. package/dist/cli/commands/preferences-commands.js +217 -0
  162. package/dist/cli/commands/project-commands.d.ts +3 -0
  163. package/dist/cli/commands/project-commands.js +253 -0
  164. package/dist/cli/commands/qa-business-review-commands.d.ts +17 -0
  165. package/dist/cli/commands/qa-business-review-commands.js +148 -0
  166. package/dist/cli/commands/qa-commands.d.ts +94 -0
  167. package/dist/cli/commands/qa-commands.js +307 -0
  168. package/dist/cli/commands/release-commands.d.ts +39 -0
  169. package/dist/cli/commands/release-commands.js +323 -0
  170. package/dist/cli/commands/request-commands.d.ts +3 -0
  171. package/dist/cli/commands/request-commands.js +548 -0
  172. package/dist/cli/commands/retrospective-commands.d.ts +12 -0
  173. package/dist/cli/commands/retrospective-commands.js +175 -0
  174. package/dist/cli/commands/reviewer-commands.d.ts +14 -0
  175. package/dist/cli/commands/reviewer-commands.js +64 -0
  176. package/dist/cli/commands/role-commands.d.ts +13 -0
  177. package/dist/cli/commands/role-commands.js +85 -0
  178. package/dist/cli/commands/runtime-commands-helpers.d.ts +7 -0
  179. package/dist/cli/commands/runtime-commands-helpers.js +24 -0
  180. package/dist/cli/commands/runtime-commands.d.ts +52 -0
  181. package/dist/cli/commands/runtime-commands.js +149 -0
  182. package/dist/cli/commands/sc-commands.d.ts +3 -0
  183. package/dist/cli/commands/sc-commands.js +47 -0
  184. package/dist/cli/commands/scan-commands.d.ts +3 -0
  185. package/dist/cli/commands/scan-commands.js +445 -0
  186. package/dist/cli/commands/security-audit-commands.d.ts +23 -0
  187. package/dist/cli/commands/security-audit-commands.js +132 -0
  188. package/dist/cli/commands/sediment-commands.d.ts +80 -0
  189. package/dist/cli/commands/sediment-commands.js +658 -0
  190. package/dist/cli/commands/session-24h-mode.d.ts +26 -0
  191. package/dist/cli/commands/session-24h-mode.js +196 -0
  192. package/dist/cli/commands/session-checkpoint-command.d.ts +10 -0
  193. package/dist/cli/commands/session-checkpoint-command.js +100 -0
  194. package/dist/cli/commands/session-migrate-skill-name.d.ts +17 -0
  195. package/dist/cli/commands/session-migrate-skill-name.js +41 -0
  196. package/dist/cli/commands/session-resume-command.d.ts +11 -0
  197. package/dist/cli/commands/session-resume-command.js +83 -0
  198. package/dist/cli/commands/share-commands.d.ts +36 -0
  199. package/dist/cli/commands/share-commands.js +415 -0
  200. package/dist/cli/commands/skill-conformance-commands.d.ts +9 -0
  201. package/dist/cli/commands/skill-conformance-commands.js +39 -0
  202. package/dist/cli/commands/skill-loop-engineering-readiness-commands.d.ts +67 -0
  203. package/dist/cli/commands/skill-loop-engineering-readiness-commands.js +173 -0
  204. package/dist/cli/commands/skill-search-commands.d.ts +25 -0
  205. package/dist/cli/commands/skill-search-commands.js +71 -0
  206. package/dist/cli/commands/skill-visibility.d.ts +8 -0
  207. package/dist/cli/commands/skill-visibility.js +63 -0
  208. package/dist/cli/commands/slice-commands.d.ts +24 -0
  209. package/dist/cli/commands/slice-commands.js +492 -0
  210. package/dist/cli/commands/slice-integrate-commands.d.ts +11 -0
  211. package/dist/cli/commands/slice-integrate-commands.js +74 -0
  212. package/dist/cli/commands/slice-review-commands.d.ts +23 -0
  213. package/dist/cli/commands/slice-review-commands.js +162 -0
  214. package/dist/cli/commands/smoke-commands.d.ts +21 -0
  215. package/dist/cli/commands/smoke-commands.js +203 -0
  216. package/dist/cli/commands/sop-commands.d.ts +3 -0
  217. package/dist/cli/commands/sop-commands.js +215 -0
  218. package/dist/cli/commands/spill-demo-command.d.ts +7 -0
  219. package/dist/cli/commands/spill-demo-command.js +29 -0
  220. package/dist/cli/commands/statusline-commands.d.ts +15 -0
  221. package/dist/cli/commands/statusline-commands.js +231 -0
  222. package/dist/cli/commands/sub-agent-commands.d.ts +22 -0
  223. package/dist/cli/commands/sub-agent-commands.js +20 -0
  224. package/dist/cli/commands/sub-agent-dispatch-guard.d.ts +55 -0
  225. package/dist/cli/commands/sub-agent-dispatch-guard.js +57 -0
  226. package/dist/cli/commands/sub-agent-shared.d.ts +109 -0
  227. package/dist/cli/commands/sub-agent-shared.js +90 -0
  228. package/dist/cli/commands/swarm-commands.d.ts +13 -0
  229. package/dist/cli/commands/swarm-commands.js +77 -0
  230. package/dist/cli/commands/tech-commands.d.ts +64 -0
  231. package/dist/cli/commands/tech-commands.js +195 -0
  232. package/dist/cli/commands/test-commands.d.ts +47 -0
  233. package/dist/cli/commands/test-commands.js +204 -0
  234. package/dist/cli/commands/understand-commands.d.ts +3 -0
  235. package/dist/cli/commands/understand-commands.js +148 -0
  236. package/dist/cli/commands/upgrade-commands.d.ts +25 -0
  237. package/dist/cli/commands/upgrade-commands.js +154 -0
  238. package/dist/cli/commands/user-touchpoint-commands.d.ts +18 -0
  239. package/dist/cli/commands/user-touchpoint-commands.js +78 -0
  240. package/dist/cli/commands/verdict-aggregate-command.d.ts +14 -0
  241. package/dist/cli/commands/verdict-aggregate-command.js +106 -0
  242. package/dist/cli/commands/vm-commands.d.ts +31 -0
  243. package/dist/cli/commands/vm-commands.js +274 -0
  244. package/dist/cli/commands/workflow-commands.d.ts +3 -0
  245. package/dist/cli/commands/workflow-commands.js +567 -0
  246. package/dist/cli/commands/workflow-plan-commands.d.ts +39 -0
  247. package/dist/cli/commands/workflow-plan-commands.js +163 -0
  248. package/dist/cli/commands/workspace/clean-command.d.ts +14 -0
  249. package/dist/cli/commands/workspace/clean-command.js +49 -0
  250. package/dist/cli/commands/workspace/helpers.d.ts +28 -0
  251. package/dist/cli/commands/workspace/helpers.js +87 -0
  252. package/dist/cli/commands/workspace/init-command.d.ts +139 -0
  253. package/dist/cli/commands/workspace/init-command.js +505 -0
  254. package/dist/cli/commands/workspace/migrate-command.d.ts +11 -0
  255. package/dist/cli/commands/workspace/migrate-command.js +91 -0
  256. package/dist/cli/commands/workspace/reconcile-command.d.ts +14 -0
  257. package/dist/cli/commands/workspace/reconcile-command.js +103 -0
  258. package/dist/cli/commands/workspace-commands.d.ts +18 -0
  259. package/dist/cli/commands/workspace-commands.js +50 -0
  260. package/dist/cli/commands/worktree-auth-commands.d.ts +29 -0
  261. package/dist/cli/commands/worktree-auth-commands.js +652 -0
  262. package/dist/cli/index.d.ts +1 -0
  263. package/dist/cli/index.js +75 -0
  264. package/dist/cli/program.d.ts +5 -0
  265. package/dist/cli/program.js +213 -0
  266. package/dist/hooks/pre-tool-use-sub-agent.d.ts +28 -0
  267. package/dist/hooks/pre-tool-use-sub-agent.js +105 -0
  268. package/dist/lib/render/message-renderer.d.ts +20 -0
  269. package/dist/lib/render/message-renderer.js +80 -0
  270. package/dist/services/24h-mode/decider.d.ts +103 -0
  271. package/dist/services/24h-mode/decider.js +144 -0
  272. package/dist/services/24h-mode/index.d.ts +12 -0
  273. package/dist/services/24h-mode/index.js +12 -0
  274. package/dist/services/24h-mode/state.d.ts +48 -0
  275. package/dist/services/24h-mode/state.js +51 -0
  276. package/dist/services/24h-mode/store.d.ts +27 -0
  277. package/dist/services/24h-mode/store.js +119 -0
  278. package/dist/services/adapter/adapter-registry.d.ts +48 -0
  279. package/dist/services/adapter/adapter-registry.js +186 -0
  280. package/dist/services/adapter/adapter.d.ts +27 -0
  281. package/dist/services/adapter/adapter.js +5 -0
  282. package/dist/services/adapter/auto-adapter.d.ts +11 -0
  283. package/dist/services/adapter/auto-adapter.js +15 -0
  284. package/dist/services/adapter/claude-adapter.d.ts +14 -0
  285. package/dist/services/adapter/claude-adapter.js +40 -0
  286. package/dist/services/adapter/codex-adapter.d.ts +14 -0
  287. package/dist/services/adapter/codex-adapter.js +14 -0
  288. package/dist/services/adapter/copilot-adapter.d.ts +14 -0
  289. package/dist/services/adapter/copilot-adapter.js +14 -0
  290. package/dist/services/artifacts/artifact-lint-service.d.ts +23 -0
  291. package/dist/services/artifacts/artifact-lint-service.js +99 -0
  292. package/dist/services/artifacts/artifact-prerequisites.d.ts +78 -0
  293. package/dist/services/artifacts/artifact-prerequisites.js +491 -0
  294. package/dist/services/artifacts/artifact-service.d.ts +43 -0
  295. package/dist/services/artifacts/artifact-service.js +98 -0
  296. package/dist/services/artifacts/artifact-templates.d.ts +30 -0
  297. package/dist/services/artifacts/artifact-templates.js +302 -0
  298. package/dist/services/artifacts/repair-cycle-service.d.ts +23 -0
  299. package/dist/services/artifacts/repair-cycle-service.js +52 -0
  300. package/dist/services/artifacts/request-artifact-service.d.ts +116 -0
  301. package/dist/services/artifacts/request-artifact-service.js +451 -0
  302. package/dist/services/artifacts/request-artifact-state-helpers.d.ts +51 -0
  303. package/dist/services/artifacts/request-artifact-state-helpers.js +114 -0
  304. package/dist/services/artifacts/workspace-service.d.ts +34 -0
  305. package/dist/services/artifacts/workspace-service.js +272 -0
  306. package/dist/services/audit/artifact-writer.d.ts +93 -0
  307. package/dist/services/audit/artifact-writer.js +303 -0
  308. package/dist/services/audit/audit-goal-service.d.ts +35 -0
  309. package/dist/services/audit/audit-goal-service.js +75 -0
  310. package/dist/services/audit/audit-goal-types.d.ts +40 -0
  311. package/dist/services/audit/audit-goal-types.js +15 -0
  312. package/dist/services/audit/backing-detector.d.ts +24 -0
  313. package/dist/services/audit/backing-detector.js +59 -0
  314. package/dist/services/audit/classifier.d.ts +38 -0
  315. package/dist/services/audit/classifier.js +134 -0
  316. package/dist/services/audit/decision-writer.d.ts +76 -0
  317. package/dist/services/audit/decision-writer.js +217 -0
  318. package/dist/services/audit/enforcers/active-skill-resolver.d.ts +29 -0
  319. package/dist/services/audit/enforcers/active-skill-resolver.js +71 -0
  320. package/dist/services/audit/enforcers/code-ban.d.ts +23 -0
  321. package/dist/services/audit/enforcers/code-ban.js +27 -0
  322. package/dist/services/audit/enforcers/design-draft-confirm.d.ts +24 -0
  323. package/dist/services/audit/enforcers/design-draft-confirm.js +58 -0
  324. package/dist/services/audit/enforcers/lint-audit-regression.d.ts +21 -0
  325. package/dist/services/audit/enforcers/lint-audit-regression.js +86 -0
  326. package/dist/services/audit/enforcers/lint-bee-runtime-contract.d.ts +25 -0
  327. package/dist/services/audit/enforcers/lint-bee-runtime-contract.js +91 -0
  328. package/dist/services/audit/enforcers/lint-catalog-governance.d.ts +32 -0
  329. package/dist/services/audit/enforcers/lint-catalog-governance.js +48 -0
  330. package/dist/services/audit/enforcers/lint-cli-back.d.ts +16 -0
  331. package/dist/services/audit/enforcers/lint-cli-back.js +35 -0
  332. package/dist/services/audit/enforcers/lint-output-style.d.ts +11 -0
  333. package/dist/services/audit/enforcers/lint-output-style.js +94 -0
  334. package/dist/services/audit/enforcers/lint-peaks-code-runtime.d.ts +16 -0
  335. package/dist/services/audit/enforcers/lint-peaks-code-runtime.js +31 -0
  336. package/dist/services/audit/enforcers/lint-peaks-skill-runtime.d.ts +23 -0
  337. package/dist/services/audit/enforcers/lint-peaks-skill-runtime.js +59 -0
  338. package/dist/services/audit/enforcers/lint-peaks-ui-sc-txt-runtime.d.ts +28 -0
  339. package/dist/services/audit/enforcers/lint-peaks-ui-sc-txt-runtime.js +86 -0
  340. package/dist/services/audit/enforcers/lint-prd-artifact-handoff.d.ts +16 -0
  341. package/dist/services/audit/enforcers/lint-prd-artifact-handoff.js +41 -0
  342. package/dist/services/audit/enforcers/lint-prd-source-snapshot.d.ts +27 -0
  343. package/dist/services/audit/enforcers/lint-prd-source-snapshot.js +47 -0
  344. package/dist/services/audit/enforcers/lint-qa-gateguard-and-runtime.d.ts +19 -0
  345. package/dist/services/audit/enforcers/lint-qa-gateguard-and-runtime.js +47 -0
  346. package/dist/services/audit/enforcers/lint-rd-handoff-coverage.d.ts +18 -0
  347. package/dist/services/audit/enforcers/lint-rd-handoff-coverage.js +70 -0
  348. package/dist/services/audit/enforcers/lint-reference-integrity.d.ts +6 -0
  349. package/dist/services/audit/enforcers/lint-reference-integrity.js +83 -0
  350. package/dist/services/audit/enforcers/lint-reference-shape.d.ts +30 -0
  351. package/dist/services/audit/enforcers/lint-reference-shape.js +272 -0
  352. package/dist/services/audit/enforcers/lint-skill-presence-mandatory.d.ts +25 -0
  353. package/dist/services/audit/enforcers/lint-skill-presence-mandatory.js +53 -0
  354. package/dist/services/audit/enforcers/lint-style.d.ts +49 -0
  355. package/dist/services/audit/enforcers/lint-style.js +173 -0
  356. package/dist/services/audit/enforcers/lint-workflow-shape.d.ts +4 -0
  357. package/dist/services/audit/enforcers/lint-workflow-shape.js +100 -0
  358. package/dist/services/audit/enforcers/login-gate.d.ts +23 -0
  359. package/dist/services/audit/enforcers/login-gate.js +40 -0
  360. package/dist/services/audit/enforcers/mock-placement.d.ts +25 -0
  361. package/dist/services/audit/enforcers/mock-placement.js +48 -0
  362. package/dist/services/audit/enforcers/no-root-pollution.d.ts +21 -0
  363. package/dist/services/audit/enforcers/no-root-pollution.js +56 -0
  364. package/dist/services/audit/enforcers/pre-rd-scan.d.ts +22 -0
  365. package/dist/services/audit/enforcers/pre-rd-scan.js +23 -0
  366. package/dist/services/audit/enforcers/prototype-fidelity.d.ts +25 -0
  367. package/dist/services/audit/enforcers/prototype-fidelity.js +75 -0
  368. package/dist/services/audit/enforcers/resume-detection.d.ts +21 -0
  369. package/dist/services/audit/enforcers/resume-detection.js +52 -0
  370. package/dist/services/audit/enforcers/sub-agent-sid.d.ts +25 -0
  371. package/dist/services/audit/enforcers/sub-agent-sid.js +63 -0
  372. package/dist/services/audit/prose-ratio-calculator.d.ts +45 -0
  373. package/dist/services/audit/prose-ratio-calculator.js +52 -0
  374. package/dist/services/audit/red-line-catalog-p2-a.d.ts +15 -0
  375. package/dist/services/audit/red-line-catalog-p2-a.js +458 -0
  376. package/dist/services/audit/red-line-catalog-p2-b.d.ts +19 -0
  377. package/dist/services/audit/red-line-catalog-p2-b.js +225 -0
  378. package/dist/services/audit/red-line-catalog.d.ts +51 -0
  379. package/dist/services/audit/red-line-catalog.js +195 -0
  380. package/dist/services/audit/red-lines-service.d.ts +23 -0
  381. package/dist/services/audit/red-lines-service.js +464 -0
  382. package/dist/services/audit/scanners/openspec-scanner.d.ts +15 -0
  383. package/dist/services/audit/scanners/openspec-scanner.js +55 -0
  384. package/dist/services/audit/scanners/rules-tree-scanner.d.ts +16 -0
  385. package/dist/services/audit/scanners/rules-tree-scanner.js +56 -0
  386. package/dist/services/audit/scanners/skills-tree-scanner.d.ts +17 -0
  387. package/dist/services/audit/scanners/skills-tree-scanner.js +68 -0
  388. package/dist/services/audit/static-service.d.ts +67 -0
  389. package/dist/services/audit/static-service.js +51 -0
  390. package/dist/services/audit/types.d.ts +86 -0
  391. package/dist/services/audit/types.js +13 -0
  392. package/dist/services/audit-independent/index.d.ts +2 -0
  393. package/dist/services/audit-independent/index.js +2 -0
  394. package/dist/services/audit-independent/perf-audit-service.d.ts +151 -0
  395. package/dist/services/audit-independent/perf-audit-service.js +316 -0
  396. package/dist/services/audit-independent/security-audit-service.d.ts +155 -0
  397. package/dist/services/audit-independent/security-audit-service.js +316 -0
  398. package/dist/services/autonomous-swarm/autonomous-swarm-service.d.ts +127 -0
  399. package/dist/services/autonomous-swarm/autonomous-swarm-service.js +446 -0
  400. package/dist/services/changeset/changeset-check-service.d.ts +22 -0
  401. package/dist/services/changeset/changeset-check-service.js +47 -0
  402. package/dist/services/classify/classify-service.d.ts +42 -0
  403. package/dist/services/classify/classify-service.js +122 -0
  404. package/dist/services/classify/classify-types.d.ts +79 -0
  405. package/dist/services/classify/classify-types.js +90 -0
  406. package/dist/services/code/auto-compact-modes.d.ts +30 -0
  407. package/dist/services/code/auto-compact-modes.js +38 -0
  408. package/dist/services/code/auto-compact-orchestrator.d.ts +136 -0
  409. package/dist/services/code/auto-compact-orchestrator.js +423 -0
  410. package/dist/services/code/batch-heartbeat-poller.d.ts +51 -0
  411. package/dist/services/code/batch-heartbeat-poller.js +88 -0
  412. package/dist/services/code/dag-orchestrator.d.ts +157 -0
  413. package/dist/services/code/dag-orchestrator.js +409 -0
  414. package/dist/services/code/emit-handoff.d.ts +49 -0
  415. package/dist/services/code/emit-handoff.js +79 -0
  416. package/dist/services/code/job-shape-decision.d.ts +71 -0
  417. package/dist/services/code/job-shape-decision.js +151 -0
  418. package/dist/services/code/mode-gate.d.ts +163 -0
  419. package/dist/services/code/mode-gate.js +212 -0
  420. package/dist/services/code/post-compact-detector.d.ts +61 -0
  421. package/dist/services/code/post-compact-detector.js +240 -0
  422. package/dist/services/code/status-line-renderer.d.ts +36 -0
  423. package/dist/services/code/status-line-renderer.js +73 -0
  424. package/dist/services/code/step-08-gate.d.ts +90 -0
  425. package/dist/services/code/step-08-gate.js +136 -0
  426. package/dist/services/code/user-touchpoint-classifier.d.ts +44 -0
  427. package/dist/services/code/user-touchpoint-classifier.js +145 -0
  428. package/dist/services/code-review/ecc-bridge.d.ts +148 -0
  429. package/dist/services/code-review/ecc-bridge.js +242 -0
  430. package/dist/services/code-review/ocr-service.d.ts +129 -0
  431. package/dist/services/code-review/ocr-service.js +372 -0
  432. package/dist/services/codegraph/codegraph-process-runner.d.ts +2 -0
  433. package/dist/services/codegraph/codegraph-process-runner.js +93 -0
  434. package/dist/services/codegraph/codegraph-service.d.ts +43 -0
  435. package/dist/services/codegraph/codegraph-service.js +160 -0
  436. package/dist/services/compact/decision-tables.d.ts +66 -0
  437. package/dist/services/compact/decision-tables.js +127 -0
  438. package/dist/services/compact/request-transition-hook.d.ts +20 -0
  439. package/dist/services/compact/request-transition-hook.js +110 -0
  440. package/dist/services/compact/suggest-service.d.ts +74 -0
  441. package/dist/services/compact/suggest-service.js +203 -0
  442. package/dist/services/compact-history/compact-history-service.d.ts +41 -0
  443. package/dist/services/compact-history/compact-history-service.js +62 -0
  444. package/dist/services/compact-statusline/compact-statusline-service.d.ts +16 -0
  445. package/dist/services/compact-statusline/compact-statusline-service.js +83 -0
  446. package/dist/services/complexity/complexity-estimator.d.ts +34 -0
  447. package/dist/services/complexity/complexity-estimator.js +64 -0
  448. package/dist/services/config/config-migration.d.ts +45 -0
  449. package/dist/services/config/config-migration.js +154 -0
  450. package/dist/services/config/config-restore.d.ts +10 -0
  451. package/dist/services/config/config-restore.js +47 -0
  452. package/dist/services/config/config-rollback.d.ts +13 -0
  453. package/dist/services/config/config-rollback.js +26 -0
  454. package/dist/services/config/config-safety.d.ts +40 -0
  455. package/dist/services/config/config-safety.js +359 -0
  456. package/dist/services/config/config-service.d.ts +58 -0
  457. package/dist/services/config/config-service.js +745 -0
  458. package/dist/services/config/config-types.d.ts +117 -0
  459. package/dist/services/config/config-types.js +18 -0
  460. package/dist/services/config/model-routing.d.ts +66 -0
  461. package/dist/services/config/model-routing.js +105 -0
  462. package/dist/services/config/proxy-service.d.ts +21 -0
  463. package/dist/services/config/proxy-service.js +44 -0
  464. package/dist/services/config/sidecar-store.d.ts +25 -0
  465. package/dist/services/config/sidecar-store.js +61 -0
  466. package/dist/services/config/workspace-state-service.d.ts +30 -0
  467. package/dist/services/config/workspace-state-service.js +142 -0
  468. package/dist/services/container/container-lease.d.ts +67 -0
  469. package/dist/services/container/container-lease.js +135 -0
  470. package/dist/services/context/artifact-meta.d.ts +72 -0
  471. package/dist/services/context/artifact-meta.js +105 -0
  472. package/dist/services/context/auto-compact-dispatcher.d.ts +72 -0
  473. package/dist/services/context/auto-compact-dispatcher.js +170 -0
  474. package/dist/services/context/auto-compact-reader.d.ts +51 -0
  475. package/dist/services/context/auto-compact-reader.js +164 -0
  476. package/dist/services/context/auto-compact-types.d.ts +168 -0
  477. package/dist/services/context/auto-compact-types.js +43 -0
  478. package/dist/services/context/build-dispatch-system-prompt.d.ts +75 -0
  479. package/dist/services/context/build-dispatch-system-prompt.js +117 -0
  480. package/dist/services/context/collector.d.ts +24 -0
  481. package/dist/services/context/collector.js +133 -0
  482. package/dist/services/context/context-builder.d.ts +30 -0
  483. package/dist/services/context/context-builder.js +78 -0
  484. package/dist/services/context/context-guard.d.ts +49 -0
  485. package/dist/services/context/context-guard.js +91 -0
  486. package/dist/services/context/context-schema.d.ts +415 -0
  487. package/dist/services/context/context-schema.js +73 -0
  488. package/dist/services/context/doc-retriever.d.ts +26 -0
  489. package/dist/services/context/doc-retriever.js +51 -0
  490. package/dist/services/context/headroom-client.d.ts +34 -0
  491. package/dist/services/context/headroom-client.js +117 -0
  492. package/dist/services/context/headroom-fetcher.d.ts +6 -0
  493. package/dist/services/context/headroom-fetcher.js +28 -0
  494. package/dist/services/context/headroom-prefs.d.ts +46 -0
  495. package/dist/services/context/headroom-prefs.js +34 -0
  496. package/dist/services/context/ide-detect.d.ts +4 -0
  497. package/dist/services/context/ide-detect.js +24 -0
  498. package/dist/services/context/index.d.ts +7 -0
  499. package/dist/services/context/index.js +6 -0
  500. package/dist/services/context/main-session-monitor.d.ts +86 -0
  501. package/dist/services/context/main-session-monitor.js +119 -0
  502. package/dist/services/context/memory-index-reader.d.ts +8 -0
  503. package/dist/services/context/memory-index-reader.js +57 -0
  504. package/dist/services/context/memory-lru-cache.d.ts +12 -0
  505. package/dist/services/context/memory-lru-cache.js +60 -0
  506. package/dist/services/context/memory-preflight-config.d.ts +19 -0
  507. package/dist/services/context/memory-preflight-config.js +25 -0
  508. package/dist/services/context/memory-preflight-service.d.ts +19 -0
  509. package/dist/services/context/memory-preflight-service.js +120 -0
  510. package/dist/services/context/renderer.d.ts +20 -0
  511. package/dist/services/context/renderer.js +30 -0
  512. package/dist/services/context/spillover-store.d.ts +23 -0
  513. package/dist/services/context/spillover-store.js +155 -0
  514. package/dist/services/context/spillover-types.d.ts +18 -0
  515. package/dist/services/context/spillover-types.js +1 -0
  516. package/dist/services/context/threshold.d.ts +35 -0
  517. package/dist/services/context/threshold.js +76 -0
  518. package/dist/services/context/tokenizer.d.ts +12 -0
  519. package/dist/services/context/tokenizer.js +43 -0
  520. package/dist/services/context/types.d.ts +93 -0
  521. package/dist/services/context/types.js +9 -0
  522. package/dist/services/crystallization/crystallization-service.d.ts +256 -0
  523. package/dist/services/crystallization/crystallization-service.js +391 -0
  524. package/dist/services/crystallization/crystallization-store.d.ts +75 -0
  525. package/dist/services/crystallization/crystallization-store.js +193 -0
  526. package/dist/services/crystallization/crystallization-types.d.ts +313 -0
  527. package/dist/services/crystallization/crystallization-types.js +299 -0
  528. package/dist/services/crystallization/evidence-brief-builder.d.ts +237 -0
  529. package/dist/services/crystallization/evidence-brief-builder.js +240 -0
  530. package/dist/services/crystallization/index.d.ts +13 -0
  531. package/dist/services/crystallization/index.js +13 -0
  532. package/dist/services/dashboard/project-dashboard-service.d.ts +91 -0
  533. package/dist/services/dashboard/project-dashboard-service.js +147 -0
  534. package/dist/services/dispatch/await-batch.d.ts +70 -0
  535. package/dist/services/dispatch/await-batch.js +272 -0
  536. package/dist/services/dispatch/batch-counter.d.ts +27 -0
  537. package/dist/services/dispatch/batch-counter.js +102 -0
  538. package/dist/services/dispatch/contract-store.d.ts +63 -0
  539. package/dist/services/dispatch/contract-store.js +157 -0
  540. package/dist/services/dispatch/dispatch-record-writer.d.ts +260 -0
  541. package/dist/services/dispatch/dispatch-record-writer.js +690 -0
  542. package/dist/services/dispatch/heartbeat-truncator.d.ts +26 -0
  543. package/dist/services/dispatch/heartbeat-truncator.js +13 -0
  544. package/dist/services/dispatch/leak-detector.d.ts +11 -0
  545. package/dist/services/dispatch/leak-detector.js +72 -0
  546. package/dist/services/dispatch/slice-dag.d.ts +127 -0
  547. package/dist/services/dispatch/slice-dag.js +244 -0
  548. package/dist/services/dispatch/stage-enum.d.ts +27 -0
  549. package/dist/services/dispatch/stage-enum.js +48 -0
  550. package/dist/services/dispatch/startup-timeout.d.ts +86 -0
  551. package/dist/services/dispatch/startup-timeout.js +97 -0
  552. package/dist/services/dispatch/sub-agent-dispatcher.d.ts +239 -0
  553. package/dist/services/dispatch/sub-agent-dispatcher.js +333 -0
  554. package/dist/services/dispatch/test-tool-detection.d.ts +60 -0
  555. package/dist/services/dispatch/test-tool-detection.js +126 -0
  556. package/dist/services/doc/doc-generator.d.ts +38 -0
  557. package/dist/services/doc/doc-generator.js +122 -0
  558. package/dist/services/doctor/doctor-service/checks/check-id-schema.d.ts +18 -0
  559. package/dist/services/doctor/doctor-service/checks/check-id-schema.js +64 -0
  560. package/dist/services/doctor/doctor-service/checks/codegraph-capability.d.ts +14 -0
  561. package/dist/services/doctor/doctor-service/checks/codegraph-capability.js +69 -0
  562. package/dist/services/doctor/doctor-service/checks/dist-source-version.d.ts +32 -0
  563. package/dist/services/doctor/doctor-service/checks/dist-source-version.js +110 -0
  564. package/dist/services/doctor/doctor-service/checks/gateguard-conflict.d.ts +24 -0
  565. package/dist/services/doctor/doctor-service/checks/gateguard-conflict.js +164 -0
  566. package/dist/services/doctor/doctor-service/checks/l3-memory-health.d.ts +16 -0
  567. package/dist/services/doctor/doctor-service/checks/l3-memory-health.js +57 -0
  568. package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.d.ts +19 -0
  569. package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.js +66 -0
  570. package/dist/services/doctor/doctor-service/checks/schema-validity.d.ts +10 -0
  571. package/dist/services/doctor/doctor-service/checks/schema-validity.js +33 -0
  572. package/dist/services/doctor/doctor-service/checks/skill-apply-note.d.ts +20 -0
  573. package/dist/services/doctor/doctor-service/checks/skill-apply-note.js +85 -0
  574. package/dist/services/doctor/doctor-service/checks/skill-existence.d.ts +13 -0
  575. package/dist/services/doctor/doctor-service/checks/skill-existence.js +30 -0
  576. package/dist/services/doctor/doctor-service/checks/skill-name-match.d.ts +10 -0
  577. package/dist/services/doctor/doctor-service/checks/skill-name-match.js +25 -0
  578. package/dist/services/doctor/doctor-service/checks/skill-parse.d.ts +10 -0
  579. package/dist/services/doctor/doctor-service/checks/skill-parse.js +19 -0
  580. package/dist/services/doctor/doctor-service/checks/skill-presence.d.ts +21 -0
  581. package/dist/services/doctor/doctor-service/checks/skill-presence.js +75 -0
  582. package/dist/services/doctor/doctor-service/checks/skill-runbook.d.ts +14 -0
  583. package/dist/services/doctor/doctor-service/checks/skill-runbook.js +47 -0
  584. package/dist/services/doctor/doctor-service/checks/statusline-install.d.ts +14 -0
  585. package/dist/services/doctor/doctor-service/checks/statusline-install.js +32 -0
  586. package/dist/services/doctor/doctor-service/checks/statusline-runtime.d.ts +13 -0
  587. package/dist/services/doctor/doctor-service/checks/statusline-runtime.js +30 -0
  588. package/dist/services/doctor/doctor-service/checks/user-config.d.ts +11 -0
  589. package/dist/services/doctor/doctor-service/checks/user-config.js +27 -0
  590. package/dist/services/doctor/doctor-service/checks/workspace-init.d.ts +16 -0
  591. package/dist/services/doctor/doctor-service/checks/workspace-init.js +34 -0
  592. package/dist/services/doctor/doctor-service/checks/workspace-layout.d.ts +33 -0
  593. package/dist/services/doctor/doctor-service/checks/workspace-layout.js +180 -0
  594. package/dist/services/doctor/doctor-service/index.d.ts +48 -0
  595. package/dist/services/doctor/doctor-service/index.js +254 -0
  596. package/dist/services/doctor/doctor-service/plugin-registry.d.ts +41 -0
  597. package/dist/services/doctor/doctor-service/plugin-registry.js +77 -0
  598. package/dist/services/doctor/doctor-service/report/final-summary.d.ts +20 -0
  599. package/dist/services/doctor/doctor-service/report/final-summary.js +29 -0
  600. package/dist/services/doctor/doctor-service/types.d.ts +245 -0
  601. package/dist/services/doctor/doctor-service/types.js +15 -0
  602. package/dist/services/doctor/doctor-service.d.ts +18 -0
  603. package/dist/services/doctor/doctor-service.js +25 -0
  604. package/dist/services/doctor/index.d.ts +22 -0
  605. package/dist/services/doctor/index.js +22 -0
  606. package/dist/services/env/shell-probe.d.ts +71 -0
  607. package/dist/services/env/shell-probe.js +161 -0
  608. package/dist/services/evolution/evolution-service.d.ts +137 -0
  609. package/dist/services/evolution/evolution-service.js +281 -0
  610. package/dist/services/evolution/evolution-store.d.ts +57 -0
  611. package/dist/services/evolution/evolution-store.js +232 -0
  612. package/dist/services/evolution/evolution-types.d.ts +706 -0
  613. package/dist/services/evolution/evolution-types.js +286 -0
  614. package/dist/services/evolution/independent-evaluator-runner.d.ts +90 -0
  615. package/dist/services/evolution/independent-evaluator-runner.js +106 -0
  616. package/dist/services/evolution/regression-skeptic-runner.d.ts +64 -0
  617. package/dist/services/evolution/regression-skeptic-runner.js +113 -0
  618. package/dist/services/feedback/feedback-promotion-service.d.ts +123 -0
  619. package/dist/services/feedback/feedback-promotion-service.js +300 -0
  620. package/dist/services/final-review/final-review-service.d.ts +22 -0
  621. package/dist/services/final-review/final-review-service.js +52 -0
  622. package/dist/services/final-review/final-review-types.d.ts +42 -0
  623. package/dist/services/final-review/final-review-types.js +18 -0
  624. package/dist/services/final-review/index.d.ts +2 -0
  625. package/dist/services/final-review/index.js +1 -0
  626. package/dist/services/fixture/fixture-capture-service.d.ts +87 -0
  627. package/dist/services/fixture/fixture-capture-service.js +317 -0
  628. package/dist/services/fixture/fixture-sanitize-service.d.ts +117 -0
  629. package/dist/services/fixture/fixture-sanitize-service.js +161 -0
  630. package/dist/services/fixture/index.d.ts +8 -0
  631. package/dist/services/fixture/index.js +8 -0
  632. package/dist/services/fork/fork-sync-state.d.ts +85 -0
  633. package/dist/services/fork/fork-sync-state.js +130 -0
  634. package/dist/services/fuzzy-matching/fuzzy-match-service.d.ts +15 -0
  635. package/dist/services/fuzzy-matching/fuzzy-match-service.js +56 -0
  636. package/dist/services/fuzzy-matching/fzf-pick-service.d.ts +68 -0
  637. package/dist/services/fuzzy-matching/fzf-pick-service.js +158 -0
  638. package/dist/services/fuzzy-matching/types.d.ts +20 -0
  639. package/dist/services/fuzzy-matching/types.js +1 -0
  640. package/dist/services/handoff/handoff-parser.d.ts +28 -0
  641. package/dist/services/handoff/handoff-parser.js +69 -0
  642. package/dist/services/handoff/handoff-types.d.ts +39 -0
  643. package/dist/services/handoff/handoff-types.js +19 -0
  644. package/dist/services/handoff/handoff-writer.d.ts +23 -0
  645. package/dist/services/handoff/handoff-writer.js +30 -0
  646. package/dist/services/hooks/auto-compact-hook-install.d.ts +103 -0
  647. package/dist/services/hooks/auto-compact-hook-install.js +156 -0
  648. package/dist/services/hooks/output.d.ts +92 -0
  649. package/dist/services/hooks/output.js +111 -0
  650. package/dist/services/hooks/presence-marker-detector.d.ts +16 -0
  651. package/dist/services/hooks/presence-marker-detector.js +105 -0
  652. package/dist/services/hooks/worktree-authorization-gate.d.ts +205 -0
  653. package/dist/services/hooks/worktree-authorization-gate.js +492 -0
  654. package/dist/services/ide/adapters/claude-code-adapter.d.ts +18 -0
  655. package/dist/services/ide/adapters/claude-code-adapter.js +103 -0
  656. package/dist/services/ide/adapters/codex-adapter.d.ts +46 -0
  657. package/dist/services/ide/adapters/codex-adapter.js +97 -0
  658. package/dist/services/ide/adapters/cursor-adapter.d.ts +36 -0
  659. package/dist/services/ide/adapters/cursor-adapter.js +84 -0
  660. package/dist/services/ide/adapters/hermes-adapter.d.ts +21 -0
  661. package/dist/services/ide/adapters/hermes-adapter.js +51 -0
  662. package/dist/services/ide/adapters/openclaw-adapter.d.ts +14 -0
  663. package/dist/services/ide/adapters/openclaw-adapter.js +42 -0
  664. package/dist/services/ide/adapters/qoder-adapter.d.ts +25 -0
  665. package/dist/services/ide/adapters/qoder-adapter.js +57 -0
  666. package/dist/services/ide/adapters/tongyi-lingma-adapter.d.ts +16 -0
  667. package/dist/services/ide/adapters/tongyi-lingma-adapter.js +45 -0
  668. package/dist/services/ide/adapters/trae-adapter.d.ts +42 -0
  669. package/dist/services/ide/adapters/trae-adapter.js +83 -0
  670. package/dist/services/ide/adapters/zcode-adapter.d.ts +40 -0
  671. package/dist/services/ide/adapters/zcode-adapter.js +220 -0
  672. package/dist/services/ide/current-model-detector.d.ts +14 -0
  673. package/dist/services/ide/current-model-detector.js +60 -0
  674. package/dist/services/ide/hook-protocol.d.ts +47 -0
  675. package/dist/services/ide/hook-protocol.js +74 -0
  676. package/dist/services/ide/hook-translator.d.ts +72 -0
  677. package/dist/services/ide/hook-translator.js +128 -0
  678. package/dist/services/ide/ide-detector.d.ts +10 -0
  679. package/dist/services/ide/ide-detector.js +19 -0
  680. package/dist/services/ide/ide-registry.d.ts +14 -0
  681. package/dist/services/ide/ide-registry.js +69 -0
  682. package/dist/services/ide/ide-types.d.ts +253 -0
  683. package/dist/services/ide/ide-types.js +2 -0
  684. package/dist/services/ide/resource-profile.d.ts +52 -0
  685. package/dist/services/ide/resource-profile.js +33 -0
  686. package/dist/services/ide/shared/atomic-json.d.ts +15 -0
  687. package/dist/services/ide/shared/atomic-json.js +58 -0
  688. package/dist/services/ide/shared/safe-path.d.ts +11 -0
  689. package/dist/services/ide/shared/safe-path.js +29 -0
  690. package/dist/services/impact/impact-scan-service.d.ts +66 -0
  691. package/dist/services/impact/impact-scan-service.js +197 -0
  692. package/dist/services/job/job-event-emitter.d.ts +30 -0
  693. package/dist/services/job/job-event-emitter.js +5 -0
  694. package/dist/services/job/job-orchestrator.d.ts +50 -0
  695. package/dist/services/job/job-orchestrator.js +104 -0
  696. package/dist/services/job/job-progress-store.d.ts +60 -0
  697. package/dist/services/job/job-progress-store.js +70 -0
  698. package/dist/services/job/job-rotation.d.ts +17 -0
  699. package/dist/services/job/job-rotation.js +30 -0
  700. package/dist/services/job/job-state-store.d.ts +24 -0
  701. package/dist/services/job/job-state-store.js +60 -0
  702. package/dist/services/job/job-types.d.ts +444 -0
  703. package/dist/services/job/job-types.js +87 -0
  704. package/dist/services/job/subagent-job-wrapper.d.ts +35 -0
  705. package/dist/services/job/subagent-job-wrapper.js +30 -0
  706. package/dist/services/job-snapshot/index.d.ts +8 -0
  707. package/dist/services/job-snapshot/index.js +7 -0
  708. package/dist/services/job-snapshot/snapshot.d.ts +7 -0
  709. package/dist/services/job-snapshot/snapshot.js +75 -0
  710. package/dist/services/job-snapshot/types.d.ts +7 -0
  711. package/dist/services/job-snapshot/types.js +1 -0
  712. package/dist/services/karpathy-cost/karpathy-cost-check-service.d.ts +67 -0
  713. package/dist/services/karpathy-cost/karpathy-cost-check-service.js +108 -0
  714. package/dist/services/legacy/legacy-detector.d.ts +34 -0
  715. package/dist/services/legacy/legacy-detector.js +111 -0
  716. package/dist/services/log/log-commands-service.d.ts +54 -0
  717. package/dist/services/log/log-commands-service.js +83 -0
  718. package/dist/services/log/logger.d.ts +103 -0
  719. package/dist/services/log/logger.js +224 -0
  720. package/dist/services/log/redact.d.ts +32 -0
  721. package/dist/services/log/redact.js +89 -0
  722. package/dist/services/log/retention.d.ts +50 -0
  723. package/dist/services/log/retention.js +95 -0
  724. package/dist/services/loop/evaluator-dispatcher.d.ts +50 -0
  725. package/dist/services/loop/evaluator-dispatcher.js +552 -0
  726. package/dist/services/loop/loop-bee-relation-service.d.ts +107 -0
  727. package/dist/services/loop/loop-bee-relation-service.js +211 -0
  728. package/dist/services/loop/loop-bee-relation-store.d.ts +53 -0
  729. package/dist/services/loop/loop-bee-relation-store.js +130 -0
  730. package/dist/services/loop/loop-bee-relation-types.d.ts +118 -0
  731. package/dist/services/loop/loop-bee-relation-types.js +114 -0
  732. package/dist/services/loop/loop-release-service.d.ts +46 -0
  733. package/dist/services/loop/loop-release-service.js +66 -0
  734. package/dist/services/loop/loop-release-store.d.ts +55 -0
  735. package/dist/services/loop/loop-release-store.js +134 -0
  736. package/dist/services/loop/loop-release-types.d.ts +250 -0
  737. package/dist/services/loop/loop-release-types.js +162 -0
  738. package/dist/services/loop/monotonic-guard.d.ts +80 -0
  739. package/dist/services/loop/monotonic-guard.js +232 -0
  740. package/dist/services/loop/monotonic-runner.d.ts +64 -0
  741. package/dist/services/loop/monotonic-runner.js +270 -0
  742. package/dist/services/loop/run-driver.d.ts +70 -0
  743. package/dist/services/loop/run-driver.js +400 -0
  744. package/dist/services/loop/spec-service.d.ts +90 -0
  745. package/dist/services/loop/spec-service.js +497 -0
  746. package/dist/services/memory/llm-reranker.d.ts +174 -0
  747. package/dist/services/memory/llm-reranker.js +284 -0
  748. package/dist/services/memory/memory-search-service.d.ts +93 -0
  749. package/dist/services/memory/memory-search-service.js +117 -0
  750. package/dist/services/memory/project-context-service.d.ts +21 -0
  751. package/dist/services/memory/project-context-service.js +161 -0
  752. package/dist/services/memory/project-memory-service/index/kind-dispatch.d.ts +8 -0
  753. package/dist/services/memory/project-memory-service/index/kind-dispatch.js +253 -0
  754. package/dist/services/memory/project-memory-service/index/ranking.d.ts +6 -0
  755. package/dist/services/memory/project-memory-service/index/ranking.js +171 -0
  756. package/dist/services/memory/project-memory-service/index/search.d.ts +34 -0
  757. package/dist/services/memory/project-memory-service/index/search.js +194 -0
  758. package/dist/services/memory/project-memory-service/index.d.ts +9 -0
  759. package/dist/services/memory/project-memory-service/index.js +24 -0
  760. package/dist/services/memory/project-memory-service/parsers/frontmatter.d.ts +9 -0
  761. package/dist/services/memory/project-memory-service/parsers/frontmatter.js +106 -0
  762. package/dist/services/memory/project-memory-service/parsers/markdown-pure.d.ts +7 -0
  763. package/dist/services/memory/project-memory-service/parsers/markdown-pure.js +96 -0
  764. package/dist/services/memory/project-memory-service/store/atomic-write.d.ts +5 -0
  765. package/dist/services/memory/project-memory-service/store/atomic-write.js +56 -0
  766. package/dist/services/memory/project-memory-service/store/paths.d.ts +8 -0
  767. package/dist/services/memory/project-memory-service/store/paths.js +116 -0
  768. package/dist/services/memory/project-memory-service/types.d.ts +128 -0
  769. package/dist/services/memory/project-memory-service/types.js +9 -0
  770. package/dist/services/memory/project-memory-service.d.ts +1 -0
  771. package/dist/services/memory/project-memory-service.js +20 -0
  772. package/dist/services/migrate-skill-name/migrate.d.ts +17 -0
  773. package/dist/services/migrate-skill-name/migrate.js +152 -0
  774. package/dist/services/migrate-skill-name/schema.d.ts +42 -0
  775. package/dist/services/migrate-skill-name/schema.js +25 -0
  776. package/dist/services/migration/v2-10-to-v2-11-service.d.ts +44 -0
  777. package/dist/services/migration/v2-10-to-v2-11-service.js +190 -0
  778. package/dist/services/migration/v2-10-to-v2-11-types.d.ts +41 -0
  779. package/dist/services/migration/v2-10-to-v2-11-types.js +23 -0
  780. package/dist/services/mode/bypass-tracker.d.ts +4 -0
  781. package/dist/services/mode/bypass-tracker.js +31 -0
  782. package/dist/services/mode/mode-enforcement.d.ts +14 -0
  783. package/dist/services/mode/mode-enforcement.js +84 -0
  784. package/dist/services/observability/aggregation.d.ts +91 -0
  785. package/dist/services/observability/aggregation.js +289 -0
  786. package/dist/services/observability/jsonl-store.d.ts +59 -0
  787. package/dist/services/observability/jsonl-store.js +120 -0
  788. package/dist/services/observability/observability-service.d.ts +161 -0
  789. package/dist/services/observability/observability-service.js +205 -0
  790. package/dist/services/observability/report-formatter.d.ts +42 -0
  791. package/dist/services/observability/report-formatter.js +156 -0
  792. package/dist/services/openspec/artifact-boundary.d.ts +138 -0
  793. package/dist/services/openspec/artifact-boundary.js +150 -0
  794. package/dist/services/openspec/coverage-evidence-reader.d.ts +191 -0
  795. package/dist/services/openspec/coverage-evidence-reader.js +386 -0
  796. package/dist/services/openspec/openspec-archive-service.d.ts +82 -0
  797. package/dist/services/openspec/openspec-archive-service.js +340 -0
  798. package/dist/services/openspec/openspec-bridge-service.d.ts +16 -0
  799. package/dist/services/openspec/openspec-bridge-service.js +76 -0
  800. package/dist/services/openspec/openspec-init-service.d.ts +23 -0
  801. package/dist/services/openspec/openspec-init-service.js +122 -0
  802. package/dist/services/openspec/openspec-propose-from-doctor-service.d.ts +31 -0
  803. package/dist/services/openspec/openspec-propose-from-doctor-service.js +95 -0
  804. package/dist/services/openspec/openspec-render-service.d.ts +38 -0
  805. package/dist/services/openspec/openspec-render-service.js +133 -0
  806. package/dist/services/openspec/openspec-scan-service.d.ts +6 -0
  807. package/dist/services/openspec/openspec-scan-service.js +123 -0
  808. package/dist/services/openspec/openspec-types.d.ts +39 -0
  809. package/dist/services/openspec/openspec-types.js +1 -0
  810. package/dist/services/openspec/openspec-validate-service.d.ts +27 -0
  811. package/dist/services/openspec/openspec-validate-service.js +78 -0
  812. package/dist/services/perf/perf-baseline-service.d.ts +70 -0
  813. package/dist/services/perf/perf-baseline-service.js +214 -0
  814. package/dist/services/polyrepo/polyrepo-dispatcher.d.ts +34 -0
  815. package/dist/services/polyrepo/polyrepo-dispatcher.js +119 -0
  816. package/dist/services/polyrepo/polyrepo-scanner.d.ts +9 -0
  817. package/dist/services/polyrepo/polyrepo-scanner.js +94 -0
  818. package/dist/services/polyrepo/polyrepo-service.d.ts +34 -0
  819. package/dist/services/polyrepo/polyrepo-service.js +49 -0
  820. package/dist/services/polyrepo/polyrepo-types.d.ts +55 -0
  821. package/dist/services/polyrepo/polyrepo-types.js +1 -0
  822. package/dist/services/prd/handoff-auto-regen.d.ts +22 -0
  823. package/dist/services/prd/handoff-auto-regen.js +73 -0
  824. package/dist/services/prd/handoff-service.d.ts +54 -0
  825. package/dist/services/prd/handoff-service.js +142 -0
  826. package/dist/services/prd/handoff-types.d.ts +64 -0
  827. package/dist/services/prd/handoff-types.js +22 -0
  828. package/dist/services/prd/prd-blocks-checker.d.ts +51 -0
  829. package/dist/services/prd/prd-blocks-checker.js +130 -0
  830. package/dist/services/prd/project-scan-bootstrap-service.d.ts +52 -0
  831. package/dist/services/prd/project-scan-bootstrap-service.js +445 -0
  832. package/dist/services/prd/project-scan-reader.d.ts +24 -0
  833. package/dist/services/prd/project-scan-reader.js +150 -0
  834. package/dist/services/prd/project-scan-sediment.d.ts +97 -0
  835. package/dist/services/prd/project-scan-sediment.js +445 -0
  836. package/dist/services/prd/project-scan-types.d.ts +66 -0
  837. package/dist/services/prd/project-scan-types.js +20 -0
  838. package/dist/services/preferences/preferences-service.d.ts +38 -0
  839. package/dist/services/preferences/preferences-service.js +208 -0
  840. package/dist/services/preferences/preferences-types.d.ts +161 -0
  841. package/dist/services/preferences/preferences-types.js +64 -0
  842. package/dist/services/profiles/profile-service.d.ts +6 -0
  843. package/dist/services/profiles/profile-service.js +19 -0
  844. package/dist/services/progress/progress-service.d.ts +125 -0
  845. package/dist/services/progress/progress-service.js +192 -0
  846. package/dist/services/proxy/proxy-service.d.ts +7 -0
  847. package/dist/services/proxy/proxy-service.js +31 -0
  848. package/dist/services/qa/browser-event-logger.d.ts +40 -0
  849. package/dist/services/qa/browser-event-logger.js +54 -0
  850. package/dist/services/qa/browser-restart-detector.d.ts +74 -0
  851. package/dist/services/qa/browser-restart-detector.js +138 -0
  852. package/dist/services/qa/browser-reuse-hint.d.ts +18 -0
  853. package/dist/services/qa/browser-reuse-hint.js +18 -0
  854. package/dist/services/qa/browser-wrapper-service.d.ts +37 -0
  855. package/dist/services/qa/browser-wrapper-service.js +88 -0
  856. package/dist/services/qa/qa-business-review-state.d.ts +47 -0
  857. package/dist/services/qa/qa-business-review-state.js +96 -0
  858. package/dist/services/qa/screenshot-archive-service.d.ts +51 -0
  859. package/dist/services/qa/screenshot-archive-service.js +134 -0
  860. package/dist/services/rd/ast-gate.d.ts +19 -0
  861. package/dist/services/rd/ast-gate.js +71 -0
  862. package/dist/services/rd/impl.d.ts +9 -0
  863. package/dist/services/rd/impl.js +57 -0
  864. package/dist/services/rd/rd-service.d.ts +129 -0
  865. package/dist/services/rd/rd-service.js +440 -0
  866. package/dist/services/rd/reviewer-dispatch-policy.d.ts +122 -0
  867. package/dist/services/rd/reviewer-dispatch-policy.js +148 -0
  868. package/dist/services/rd/standards-diagnostic.d.ts +76 -0
  869. package/dist/services/rd/standards-diagnostic.js +166 -0
  870. package/dist/services/rd/strategic-stage.d.ts +4 -0
  871. package/dist/services/rd/strategic-stage.js +15 -0
  872. package/dist/services/rd/strategy.d.ts +13 -0
  873. package/dist/services/rd/strategy.js +60 -0
  874. package/dist/services/rd/tactical-stage.d.ts +33 -0
  875. package/dist/services/rd/tactical-stage.js +62 -0
  876. package/dist/services/rd/types.d.ts +252 -0
  877. package/dist/services/rd/types.js +47 -0
  878. package/dist/services/rd-swarm/rd-swarm-service.d.ts +60 -0
  879. package/dist/services/rd-swarm/rd-swarm-service.js +93 -0
  880. package/dist/services/recommendations/capability-availability.d.ts +5 -0
  881. package/dist/services/recommendations/capability-availability.js +40 -0
  882. package/dist/services/recommendations/capability-map-service.d.ts +7 -0
  883. package/dist/services/recommendations/capability-map-service.js +131 -0
  884. package/dist/services/recommendations/capability-seed-items.d.ts +2 -0
  885. package/dist/services/recommendations/capability-seed-items.js +139 -0
  886. package/dist/services/recommendations/capability-seed-mappings.d.ts +2 -0
  887. package/dist/services/recommendations/capability-seed-mappings.js +53 -0
  888. package/dist/services/recommendations/capability-seed-sources.d.ts +2 -0
  889. package/dist/services/recommendations/capability-seed-sources.js +34 -0
  890. package/dist/services/recommendations/recommendation-service.d.ts +8 -0
  891. package/dist/services/recommendations/recommendation-service.js +106 -0
  892. package/dist/services/recommendations/recommendation-types.d.ts +129 -0
  893. package/dist/services/recommendations/recommendation-types.js +1 -0
  894. package/dist/services/recommendations/seed-capability-catalog.d.ts +3 -0
  895. package/dist/services/recommendations/seed-capability-catalog.js +3 -0
  896. package/dist/services/refactor/refactor-service.d.ts +9 -0
  897. package/dist/services/refactor/refactor-service.js +36 -0
  898. package/dist/services/release/release-state.d.ts +70 -0
  899. package/dist/services/release/release-state.js +140 -0
  900. package/dist/services/release/version-precheck-service.d.ts +51 -0
  901. package/dist/services/release/version-precheck-service.js +257 -0
  902. package/dist/services/retrospective/retrospective-index.d.ts +37 -0
  903. package/dist/services/retrospective/retrospective-index.js +110 -0
  904. package/dist/services/retrospective/retrospective-search-service.d.ts +55 -0
  905. package/dist/services/retrospective/retrospective-search-service.js +107 -0
  906. package/dist/services/retrospective/retrospective-show.d.ts +40 -0
  907. package/dist/services/retrospective/retrospective-show.js +109 -0
  908. package/dist/services/reviewer/model-family.d.ts +18 -0
  909. package/dist/services/reviewer/model-family.js +70 -0
  910. package/dist/services/reviewer/providers/anthropic.d.ts +2 -0
  911. package/dist/services/reviewer/providers/anthropic.js +61 -0
  912. package/dist/services/reviewer/providers/ollama.d.ts +26 -0
  913. package/dist/services/reviewer/providers/ollama.js +38 -0
  914. package/dist/services/reviewer/providers/openai.d.ts +2 -0
  915. package/dist/services/reviewer/providers/openai.js +63 -0
  916. package/dist/services/reviewer/reviewer-config.d.ts +34 -0
  917. package/dist/services/reviewer/reviewer-config.js +100 -0
  918. package/dist/services/reviewer/reviewer-service.d.ts +56 -0
  919. package/dist/services/reviewer/reviewer-service.js +263 -0
  920. package/dist/services/reviewer/selection-strategies.d.ts +27 -0
  921. package/dist/services/reviewer/selection-strategies.js +53 -0
  922. package/dist/services/role/role-registry.d.ts +38 -0
  923. package/dist/services/role/role-registry.js +83 -0
  924. package/dist/services/runtime/runtime-detector.d.ts +15 -0
  925. package/dist/services/runtime/runtime-detector.js +62 -0
  926. package/dist/services/runtime/runtime-service.d.ts +59 -0
  927. package/dist/services/runtime/runtime-service.js +51 -0
  928. package/dist/services/runtime/vendor-adapter.d.ts +59 -0
  929. package/dist/services/runtime/vendor-adapter.js +1 -0
  930. package/dist/services/runtime/vendors/claude-code.d.ts +7 -0
  931. package/dist/services/runtime/vendors/claude-code.js +39 -0
  932. package/dist/services/runtime/vendors/codex.d.ts +7 -0
  933. package/dist/services/runtime/vendors/codex.js +43 -0
  934. package/dist/services/runtime/vendors/copilot.d.ts +7 -0
  935. package/dist/services/runtime/vendors/copilot.js +40 -0
  936. package/dist/services/sc/index.d.ts +1 -0
  937. package/dist/services/sc/index.js +1 -0
  938. package/dist/services/sc/sc-service.d.ts +131 -0
  939. package/dist/services/sc/sc-service.js +552 -0
  940. package/dist/services/scan/acceptance-coverage-service.d.ts +42 -0
  941. package/dist/services/scan/acceptance-coverage-service.js +140 -0
  942. package/dist/services/scan/api-surface-service.d.ts +69 -0
  943. package/dist/services/scan/api-surface-service.js +239 -0
  944. package/dist/services/scan/archetype-service.d.ts +5 -0
  945. package/dist/services/scan/archetype-service.js +254 -0
  946. package/dist/services/scan/diff-scope-service.d.ts +40 -0
  947. package/dist/services/scan/diff-scope-service.js +198 -0
  948. package/dist/services/scan/existing-system-service.d.ts +7 -0
  949. package/dist/services/scan/existing-system-service.js +300 -0
  950. package/dist/services/scan/file-size-scan.d.ts +23 -0
  951. package/dist/services/scan/file-size-scan.js +68 -0
  952. package/dist/services/scan/karpathy-service.d.ts +60 -0
  953. package/dist/services/scan/karpathy-service.js +228 -0
  954. package/dist/services/scan/libraries-service.d.ts +24 -0
  955. package/dist/services/scan/libraries-service.js +419 -0
  956. package/dist/services/scan/libraries-types.d.ts +59 -0
  957. package/dist/services/scan/libraries-types.js +9 -0
  958. package/dist/services/scan/orphan-service.d.ts +76 -0
  959. package/dist/services/scan/orphan-service.js +538 -0
  960. package/dist/services/scan/scan-types.d.ts +59 -0
  961. package/dist/services/scan/scan-types.js +1 -0
  962. package/dist/services/scan/type-sanity-service.d.ts +23 -0
  963. package/dist/services/scan/type-sanity-service.js +116 -0
  964. package/dist/services/security/safe-settings-path.d.ts +12 -0
  965. package/dist/services/security/safe-settings-path.js +104 -0
  966. package/dist/services/sediment/dispose-confirm.d.ts +9 -0
  967. package/dist/services/sediment/dispose-confirm.js +5 -0
  968. package/dist/services/sediment/json-schema.d.ts +247 -0
  969. package/dist/services/sediment/json-schema.js +26 -0
  970. package/dist/services/sediment/manifest-lint.d.ts +13 -0
  971. package/dist/services/sediment/manifest-lint.js +11 -0
  972. package/dist/services/sediment/pool-paths.d.ts +22 -0
  973. package/dist/services/sediment/pool-paths.js +25 -0
  974. package/dist/services/sediment/pool-read.d.ts +20 -0
  975. package/dist/services/sediment/pool-read.js +73 -0
  976. package/dist/services/sediment/pool-rebuild-index.d.ts +15 -0
  977. package/dist/services/sediment/pool-rebuild-index.js +28 -0
  978. package/dist/services/sediment/pool-write.d.ts +14 -0
  979. package/dist/services/sediment/pool-write.js +25 -0
  980. package/dist/services/sediment/promotion-gate.d.ts +12 -0
  981. package/dist/services/sediment/promotion-gate.js +20 -0
  982. package/dist/services/sediment/types.d.ts +52 -0
  983. package/dist/services/sediment/types.js +1 -0
  984. package/dist/services/session/binding-status-service.d.ts +56 -0
  985. package/dist/services/session/binding-status-service.js +106 -0
  986. package/dist/services/session/binding-store.d.ts +161 -0
  987. package/dist/services/session/binding-store.js +509 -0
  988. package/dist/services/session/caller-binding-service.d.ts +70 -0
  989. package/dist/services/session/caller-binding-service.js +148 -0
  990. package/dist/services/session/caller-id-types.d.ts +77 -0
  991. package/dist/services/session/caller-id-types.js +46 -0
  992. package/dist/services/session/getSessionDir.d.ts +1 -0
  993. package/dist/services/session/getSessionDir.js +27 -0
  994. package/dist/services/session/index.d.ts +6 -0
  995. package/dist/services/session/index.js +7 -0
  996. package/dist/services/session/platform-fallbacks.d.ts +31 -0
  997. package/dist/services/session/platform-fallbacks.js +35 -0
  998. package/dist/services/session/resolve-caller-id.d.ts +57 -0
  999. package/dist/services/session/resolve-caller-id.js +88 -0
  1000. package/dist/services/session/session-binding-bridge.d.ts +76 -0
  1001. package/dist/services/session/session-binding-bridge.js +247 -0
  1002. package/dist/services/session/session-checkpoint-service.d.ts +57 -0
  1003. package/dist/services/session/session-checkpoint-service.js +143 -0
  1004. package/dist/services/session/session-manager.d.ts +168 -0
  1005. package/dist/services/session/session-manager.js +502 -0
  1006. package/dist/services/session/session-resume-service.d.ts +25 -0
  1007. package/dist/services/session/session-resume-service.js +101 -0
  1008. package/dist/services/share/bundle-reader.d.ts +100 -0
  1009. package/dist/services/share/bundle-reader.js +434 -0
  1010. package/dist/services/share/bundle-types.d.ts +392 -0
  1011. package/dist/services/share/bundle-types.js +318 -0
  1012. package/dist/services/share/bundle-writer.d.ts +97 -0
  1013. package/dist/services/share/bundle-writer.js +429 -0
  1014. package/dist/services/share/run-state-contract.d.ts +133 -0
  1015. package/dist/services/share/run-state-contract.js +138 -0
  1016. package/dist/services/signal/cancel-handler.d.ts +14 -0
  1017. package/dist/services/signal/cancel-handler.js +76 -0
  1018. package/dist/services/skill/resume-detector.d.ts +54 -0
  1019. package/dist/services/skill/resume-detector.js +334 -0
  1020. package/dist/services/skill/skill-scheduler.d.ts +40 -0
  1021. package/dist/services/skill/skill-scheduler.js +53 -0
  1022. package/dist/services/skill/skill-search-service.d.ts +93 -0
  1023. package/dist/services/skill/skill-search-service.js +232 -0
  1024. package/dist/services/skillhub/migrations/001-initial.sql +71 -0
  1025. package/dist/services/skillhub/migrations/002-loop-release.sql +32 -0
  1026. package/dist/services/skillhub/migrations/003-loop-bee-relation.sql +35 -0
  1027. package/dist/services/skillhub/migrations/004-loop-bee-extension.sql +65 -0
  1028. package/dist/services/skillhub/migrations/005-evolution-evaluation.sql +81 -0
  1029. package/dist/services/skillhub/migrations/006-crystallization-event.sql +92 -0
  1030. package/dist/services/skillhub/release-diff.d.ts +18 -0
  1031. package/dist/services/skillhub/release-diff.js +38 -0
  1032. package/dist/services/skillhub/release-export.d.ts +8 -0
  1033. package/dist/services/skillhub/release-export.js +31 -0
  1034. package/dist/services/skillhub/release-gc-blobs.d.ts +13 -0
  1035. package/dist/services/skillhub/release-gc-blobs.js +32 -0
  1036. package/dist/services/skillhub/release-import.d.ts +7 -0
  1037. package/dist/services/skillhub/release-import.js +64 -0
  1038. package/dist/services/skillhub/release-retain.d.ts +23 -0
  1039. package/dist/services/skillhub/release-retain.js +94 -0
  1040. package/dist/services/skillhub/sqlite-store.d.ts +22 -0
  1041. package/dist/services/skillhub/sqlite-store.js +63 -0
  1042. package/dist/services/skillhub/tar-runtime.d.ts +21 -0
  1043. package/dist/services/skillhub/tar-runtime.js +91 -0
  1044. package/dist/services/skillhub/types.d.ts +115 -0
  1045. package/dist/services/skillhub/types.js +1 -0
  1046. package/dist/services/skills/hooks-settings-service.d.ts +212 -0
  1047. package/dist/services/skills/hooks-settings-service.js +624 -0
  1048. package/dist/services/skills/skill-conformance-service.d.ts +40 -0
  1049. package/dist/services/skills/skill-conformance-service.js +139 -0
  1050. package/dist/services/skills/skill-presence-service.d.ts +158 -0
  1051. package/dist/services/skills/skill-presence-service.js +474 -0
  1052. package/dist/services/skills/skill-registry.d.ts +18 -0
  1053. package/dist/services/skills/skill-registry.js +69 -0
  1054. package/dist/services/skills/skill-runbook-service.d.ts +11 -0
  1055. package/dist/services/skills/skill-runbook-service.js +128 -0
  1056. package/dist/services/skills/skill-statusline-renderer.d.ts +6 -0
  1057. package/dist/services/skills/skill-statusline-renderer.js +55 -0
  1058. package/dist/services/skills/skill-statusline-service.d.ts +24 -0
  1059. package/dist/services/skills/skill-statusline-service.js +110 -0
  1060. package/dist/services/skills/statusline-settings-service.d.ts +59 -0
  1061. package/dist/services/skills/statusline-settings-service.js +141 -0
  1062. package/dist/services/skills/sync-service.d.ts +86 -0
  1063. package/dist/services/skills/sync-service.js +271 -0
  1064. package/dist/services/slice/calibration-store.d.ts +39 -0
  1065. package/dist/services/slice/calibration-store.js +68 -0
  1066. package/dist/services/slice/cross-pass-edge-merger.d.ts +53 -0
  1067. package/dist/services/slice/cross-pass-edge-merger.js +246 -0
  1068. package/dist/services/slice/granularity-decider.d.ts +37 -0
  1069. package/dist/services/slice/granularity-decider.js +40 -0
  1070. package/dist/services/slice/llm-arbitrator.d.ts +35 -0
  1071. package/dist/services/slice/llm-arbitrator.js +63 -0
  1072. package/dist/services/slice/multi-pass-orchestrator.d.ts +67 -0
  1073. package/dist/services/slice/multi-pass-orchestrator.js +225 -0
  1074. package/dist/services/slice/schema-router.d.ts +44 -0
  1075. package/dist/services/slice/schema-router.js +61 -0
  1076. package/dist/services/slice/slice-archive-service.d.ts +20 -0
  1077. package/dist/services/slice/slice-archive-service.js +111 -0
  1078. package/dist/services/slice/slice-benchmark-service.d.ts +19 -0
  1079. package/dist/services/slice/slice-benchmark-service.js +60 -0
  1080. package/dist/services/slice/slice-check-service.d.ts +2 -0
  1081. package/dist/services/slice/slice-check-service.js +459 -0
  1082. package/dist/services/slice/slice-check-types.d.ts +104 -0
  1083. package/dist/services/slice/slice-check-types.js +28 -0
  1084. package/dist/services/slice/slice-decompose-runners.d.ts +23 -0
  1085. package/dist/services/slice/slice-decompose-runners.js +174 -0
  1086. package/dist/services/slice/slice-decompose-service.d.ts +24 -0
  1087. package/dist/services/slice/slice-decompose-service.js +532 -0
  1088. package/dist/services/slice/slice-decompose-types.d.ts +263 -0
  1089. package/dist/services/slice/slice-decompose-types.js +30 -0
  1090. package/dist/services/slice/slice-integration.d.ts +43 -0
  1091. package/dist/services/slice/slice-integration.js +106 -0
  1092. package/dist/services/slice/slice-pick-service.d.ts +32 -0
  1093. package/dist/services/slice/slice-pick-service.js +75 -0
  1094. package/dist/services/slice/slice-review-state.d.ts +70 -0
  1095. package/dist/services/slice/slice-review-state.js +109 -0
  1096. package/dist/services/slice/slice-topology-types.d.ts +115 -0
  1097. package/dist/services/slice/slice-topology-types.js +20 -0
  1098. package/dist/services/smoke/smoke-paths-state.d.ts +73 -0
  1099. package/dist/services/smoke/smoke-paths-state.js +117 -0
  1100. package/dist/services/sop/gate-enforce-service.d.ts +33 -0
  1101. package/dist/services/sop/gate-enforce-service.js +168 -0
  1102. package/dist/services/sop/sop-advance-service.d.ts +74 -0
  1103. package/dist/services/sop/sop-advance-service.js +115 -0
  1104. package/dist/services/sop/sop-check-service.d.ts +45 -0
  1105. package/dist/services/sop/sop-check-service.js +181 -0
  1106. package/dist/services/sop/sop-paths.d.ts +62 -0
  1107. package/dist/services/sop/sop-paths.js +92 -0
  1108. package/dist/services/sop/sop-registry-service.d.ts +46 -0
  1109. package/dist/services/sop/sop-registry-service.js +89 -0
  1110. package/dist/services/sop/sop-service.d.ts +55 -0
  1111. package/dist/services/sop/sop-service.js +222 -0
  1112. package/dist/services/sop/sop-types.d.ts +95 -0
  1113. package/dist/services/sop/sop-types.js +11 -0
  1114. package/dist/services/standards/ide-aware-standards-service.d.ts +94 -0
  1115. package/dist/services/standards/ide-aware-standards-service.js +91 -0
  1116. package/dist/services/standards/loop-engineering-lint.d.ts +38 -0
  1117. package/dist/services/standards/loop-engineering-lint.js +101 -0
  1118. package/dist/services/standards/loop-engineering-readiness-lint.d.ts +111 -0
  1119. package/dist/services/standards/loop-engineering-readiness-lint.js +248 -0
  1120. package/dist/services/standards/main-session-monitor-ban-hook.d.ts +14 -0
  1121. package/dist/services/standards/main-session-monitor-ban-hook.js +19 -0
  1122. package/dist/services/standards/migrate-claude-rules-service.d.ts +19 -0
  1123. package/dist/services/standards/migrate-claude-rules-service.js +214 -0
  1124. package/dist/services/standards/migrate-service.d.ts +63 -0
  1125. package/dist/services/standards/migrate-service.js +193 -0
  1126. package/dist/services/standards/missing-standards-detector.d.ts +106 -0
  1127. package/dist/services/standards/missing-standards-detector.js +170 -0
  1128. package/dist/services/standards/project-context.d.ts +24 -0
  1129. package/dist/services/standards/project-context.js +314 -0
  1130. package/dist/services/standards/project-standards-service.d.ts +114 -0
  1131. package/dist/services/standards/project-standards-service.js +693 -0
  1132. package/dist/services/tech/tech-change-id-service.d.ts +82 -0
  1133. package/dist/services/tech/tech-change-id-service.js +117 -0
  1134. package/dist/services/tech/tech-service.d.ts +69 -0
  1135. package/dist/services/tech/tech-service.js +299 -0
  1136. package/dist/services/test-cache/test-cache-service.d.ts +70 -0
  1137. package/dist/services/test-cache/test-cache-service.js +175 -0
  1138. package/dist/services/understand/hybrid-types.d.ts +32 -0
  1139. package/dist/services/understand/hybrid-types.js +1 -0
  1140. package/dist/services/understand/understand-hybrid-service.d.ts +10 -0
  1141. package/dist/services/understand/understand-hybrid-service.js +100 -0
  1142. package/dist/services/understand/understand-scan-service.d.ts +28 -0
  1143. package/dist/services/understand/understand-scan-service.js +170 -0
  1144. package/dist/services/understand/understand-types.d.ts +50 -0
  1145. package/dist/services/understand/understand-types.js +1 -0
  1146. package/dist/services/upgrade/1x-detector-service.d.ts +7 -0
  1147. package/dist/services/upgrade/1x-detector-service.js +94 -0
  1148. package/dist/services/upgrade/gitignore-migrate-service.d.ts +56 -0
  1149. package/dist/services/upgrade/gitignore-migrate-service.js +170 -0
  1150. package/dist/services/upgrade/upgrade-service.d.ts +81 -0
  1151. package/dist/services/upgrade/upgrade-service.js +404 -0
  1152. package/dist/services/verdict/envelopes.d.ts +93 -0
  1153. package/dist/services/verdict/envelopes.js +349 -0
  1154. package/dist/services/verdict/verdict-aggregator.d.ts +94 -0
  1155. package/dist/services/verdict/verdict-aggregator.js +112 -0
  1156. package/dist/services/vm/vm-lease.d.ts +40 -0
  1157. package/dist/services/vm/vm-lease.js +137 -0
  1158. package/dist/services/workflow/artifact-paths.d.ts +59 -0
  1159. package/dist/services/workflow/artifact-paths.js +166 -0
  1160. package/dist/services/workflow/autonomous-resume-writer.d.ts +16 -0
  1161. package/dist/services/workflow/autonomous-resume-writer.js +170 -0
  1162. package/dist/services/workflow/pipeline-verify-gate-support.d.ts +47 -0
  1163. package/dist/services/workflow/pipeline-verify-gate-support.js +194 -0
  1164. package/dist/services/workflow/pipeline-verify-service.d.ts +26 -0
  1165. package/dist/services/workflow/pipeline-verify-service.js +273 -0
  1166. package/dist/services/workflow/pipeline-verify-types.d.ts +90 -0
  1167. package/dist/services/workflow/pipeline-verify-types.js +10 -0
  1168. package/dist/services/workflow/plan-reader.d.ts +29 -0
  1169. package/dist/services/workflow/plan-reader.js +174 -0
  1170. package/dist/services/workflow/plan-refresher.d.ts +32 -0
  1171. package/dist/services/workflow/plan-refresher.js +353 -0
  1172. package/dist/services/workflow/plan-trigger-detector.d.ts +55 -0
  1173. package/dist/services/workflow/plan-trigger-detector.js +142 -0
  1174. package/dist/services/workflow/workflow-autonomous-resume-helpers.d.ts +19 -0
  1175. package/dist/services/workflow/workflow-autonomous-resume-helpers.js +300 -0
  1176. package/dist/services/workflow/workflow-autonomous-service.d.ts +4 -0
  1177. package/dist/services/workflow/workflow-autonomous-service.js +306 -0
  1178. package/dist/services/workflow/workflow-autonomous-types.d.ts +114 -0
  1179. package/dist/services/workflow/workflow-autonomous-types.js +21 -0
  1180. package/dist/services/workflow/workflow-loader.d.ts +63 -0
  1181. package/dist/services/workflow/workflow-loader.js +168 -0
  1182. package/dist/services/workflow/workflow-router-service.d.ts +85 -0
  1183. package/dist/services/workflow/workflow-router-service.js +235 -0
  1184. package/dist/services/workflow/workflow-skip-service.d.ts +106 -0
  1185. package/dist/services/workflow/workflow-skip-service.js +209 -0
  1186. package/dist/services/workflow/workflow-spec-lint.d.ts +13 -0
  1187. package/dist/services/workflow/workflow-spec-lint.js +75 -0
  1188. package/dist/services/workflow/workflow-spec-types.d.ts +100 -0
  1189. package/dist/services/workflow/workflow-spec-types.js +13 -0
  1190. package/dist/services/workflow/workflow-spec-yaml.d.ts +17 -0
  1191. package/dist/services/workflow/workflow-spec-yaml.js +88 -0
  1192. package/dist/services/workflow/workflow-spec.d.ts +36 -0
  1193. package/dist/services/workflow/workflow-spec.js +302 -0
  1194. package/dist/services/workflow/workflow-state-store.d.ts +27 -0
  1195. package/dist/services/workflow/workflow-state-store.js +95 -0
  1196. package/dist/services/workspace/claude-settings-template.d.ts +101 -0
  1197. package/dist/services/workspace/claude-settings-template.js +254 -0
  1198. package/dist/services/workspace/migrate-1-4-1-service.d.ts +44 -0
  1199. package/dist/services/workspace/migrate-1-4-1-service.js +195 -0
  1200. package/dist/services/workspace/migrate-service.d.ts +2 -0
  1201. package/dist/services/workspace/migrate-service.js +613 -0
  1202. package/dist/services/workspace/migrate-types.d.ts +127 -0
  1203. package/dist/services/workspace/migrate-types.js +21 -0
  1204. package/dist/services/workspace/reconcile-service.d.ts +188 -0
  1205. package/dist/services/workspace/reconcile-service.js +683 -0
  1206. package/dist/services/workspace/reconcile-types.d.ts +130 -0
  1207. package/dist/services/workspace/reconcile-types.js +13 -0
  1208. package/dist/services/workspace/sid-naming-guard.d.ts +17 -0
  1209. package/dist/services/workspace/sid-naming-guard.js +34 -0
  1210. package/dist/services/workspace/templates/project-scan/audit-output-schema.md +100 -0
  1211. package/dist/services/workspace/templates/project-scan/business-knowledge.md +44 -0
  1212. package/dist/services/workspace/templates/project-scan/index.d.ts +34 -0
  1213. package/dist/services/workspace/templates/project-scan/index.js +60 -0
  1214. package/dist/services/workspace/templates/project-scan/perf-template.md +109 -0
  1215. package/dist/services/workspace/templates/project-scan/security-template.md +99 -0
  1216. package/dist/services/workspace/workspace-claude-settings-materializer.d.ts +45 -0
  1217. package/dist/services/workspace/workspace-claude-settings-materializer.js +194 -0
  1218. package/dist/services/workspace/workspace-clean-service.d.ts +28 -0
  1219. package/dist/services/workspace/workspace-clean-service.js +46 -0
  1220. package/dist/services/workspace/workspace-service.d.ts +177 -0
  1221. package/dist/services/workspace/workspace-service.js +432 -0
  1222. package/dist/services/workspace/workspace-state-service.d.ts +7 -0
  1223. package/dist/services/workspace/workspace-state-service.js +43 -0
  1224. package/dist/services/worktree/worktree-lease.d.ts +170 -0
  1225. package/dist/services/worktree/worktree-lease.js +242 -0
  1226. package/dist/shared/format-md-compact.d.ts +32 -0
  1227. package/dist/shared/format-md-compact.js +297 -0
  1228. package/dist/shared/frontmatter.d.ts +6 -0
  1229. package/dist/shared/frontmatter.js +165 -0
  1230. package/dist/shared/fs-utils.d.ts +4 -0
  1231. package/dist/shared/fs-utils.js +16 -0
  1232. package/dist/shared/incrementing-number.d.ts +23 -0
  1233. package/dist/shared/incrementing-number.js +68 -0
  1234. package/dist/shared/json-schema-mini.d.ts +10 -0
  1235. package/dist/shared/json-schema-mini.js +113 -0
  1236. package/dist/shared/path-safety.d.ts +21 -0
  1237. package/dist/shared/path-safety.js +54 -0
  1238. package/dist/shared/path-utils.d.ts +13 -0
  1239. package/dist/shared/path-utils.js +56 -0
  1240. package/dist/shared/planner-response.d.ts +21 -0
  1241. package/dist/shared/planner-response.js +26 -0
  1242. package/dist/shared/platform.d.ts +6 -0
  1243. package/dist/shared/platform.js +11 -0
  1244. package/dist/shared/process.d.ts +5 -0
  1245. package/dist/shared/process.js +12 -0
  1246. package/dist/shared/stale-policy.d.ts +67 -0
  1247. package/dist/shared/stale-policy.js +85 -0
  1248. package/dist/skills/peaks-maker/index.d.ts +5 -0
  1249. package/dist/skills/peaks-maker/index.js +32 -0
  1250. package/package.json +51 -54
  1251. package/scripts/clean-dist.mjs +31 -1
  1252. package/scripts/copy-templates.mjs +17 -1
  1253. package/scripts/sync-version.mjs +53 -2
  1254. package/skills/bee/peaks-perf-audit/SKILL.md +17 -0
  1255. package/skills/bee/peaks-prd/SKILL.md +16 -0
  1256. package/skills/bee/peaks-prd/test-prompts.json +12 -0
  1257. package/skills/bee/peaks-qa/SKILL.md +16 -1
  1258. package/skills/bee/peaks-qa/references/qa-sub-agent-dispatch.md +22 -0
  1259. package/skills/bee/peaks-qa/test-prompts.json +12 -0
  1260. package/skills/bee/peaks-rd/SKILL.md +29 -20
  1261. package/skills/bee/peaks-rd/references/rd-sub-agent-dispatch.md +39 -0
  1262. package/skills/bee/peaks-rd/test-prompts.json +12 -0
  1263. package/skills/bee/peaks-reviewer/SKILL.md +17 -0
  1264. package/skills/bee/peaks-sc/SKILL.md +16 -0
  1265. package/skills/bee/peaks-security-audit/SKILL.md +17 -0
  1266. package/skills/bee/peaks-txt/SKILL.md +16 -0
  1267. package/skills/bee/peaks-txt/test-prompts.json +12 -0
  1268. package/skills/bee/peaks-ui/SKILL.md +49 -43
  1269. package/skills/bee/peaks-ui/test-prompts.json +12 -0
  1270. package/skills/peaks-code/SKILL.md +54 -109
  1271. package/skills/peaks-code/references/boundaries.md +15 -1
  1272. package/skills/peaks-code/references/cron-scheduler-deployment.md +313 -0
  1273. package/skills/peaks-code/references/external-skill-invocation.md +27 -0
  1274. package/skills/peaks-code/references/lease-dashboard.html +224 -0
  1275. package/skills/peaks-code/references/lease-stats.sample.json +26 -0
  1276. package/skills/peaks-code/references/peaks-worktree-l2-enforcers.md +208 -0
  1277. package/skills/peaks-code/references/periodic-checkpoint.md +4 -4
  1278. package/skills/peaks-code/references/runbook.md +63 -1
  1279. package/skills/peaks-code/references/startup-sequence.md +110 -0
  1280. package/skills/peaks-code/references/step-0-8-gate.md +1 -1
  1281. package/skills/peaks-code/references/sub-agent-dispatch.md +92 -1
  1282. package/skills/peaks-code/references/worktree-governance.md +123 -0
  1283. package/skills/peaks-code/test-prompts.json +12 -0
  1284. package/skills/peaks-doctor/SKILL.md +1 -1
  1285. package/skills/peaks-ide/SKILL.md +1 -1
  1286. package/skills/peaks-solo/SKILL.md +21 -0
  1287. package/skills/peaks-solo/references/triage-decision-table.md +6 -0
  1288. package/skills/peaks-sop/test-prompts.json +17 -0
  1289. package/examples/video-demo/README.md +0 -142
  1290. package/examples/video-demo/out/en-closing-960.png +0 -0
  1291. package/examples/video-demo/out/zh-closing-960.png +0 -0
  1292. package/examples/video-demo/preview/peaks-loop-demo-en.mp4 +0 -0
  1293. package/examples/video-demo/preview/peaks-loop-demo.mp4 +0 -0
@@ -0,0 +1,109 @@
1
+ /**
2
+ * v2.15.0 follow-up — G1: slice business review state.
3
+ *
4
+ * The 12 Gaps positioning memory: each slice completion triggers a
5
+ * business review by the user (not a technical review). The user
6
+ * evaluates 4-5 business / product items; technical metrics (coverage,
7
+ * P99, security scan) are AI auto-decided in `peaks-rd`'s fan-out.
8
+ *
9
+ * State persistence: `.peaks/_runtime/<sid>/slice-reviews/<slice-id>.json`.
10
+ *
11
+ * reviewScore: 1-5 per item; overallOk when avg >= 3 AND no P0 fail
12
+ * decision: pending | accepted | rejected
13
+ * rejectionReason: only when decision = rejected
14
+ */
15
+ import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
16
+ import { dirname, join, resolve } from 'node:path';
17
+ /** The 5 default review items per slice (the 12 Gaps memory checklist). */
18
+ export const DEFAULT_REVIEW_ITEMS = [
19
+ { id: 'business-match', question: '这个 slice 做完,业务流程对吗?(跟产品最初给的需求匹配)' },
20
+ { id: 'boundary-cases', question: '边界 case 跟业务预期一致吗?(异常输入/错误提示/空/加载/失败状态)' },
21
+ { id: 'ui-assembly', question: 'UI 装配跟产品预期一致吗?(页面模式/关键交互/信息密度,非视觉设计)' },
22
+ { id: 'mergeable', question: '能合入下个业务版本吗?(业务风险/集成断点)' }
23
+ ];
24
+ export function buildEmptySliceReview(sliceId, sessionId, now = new Date()) {
25
+ return {
26
+ sliceId,
27
+ sessionId,
28
+ createdAt: now.toISOString(),
29
+ updatedAt: now.toISOString(),
30
+ decision: 'pending',
31
+ items: DEFAULT_REVIEW_ITEMS.map((it) => ({ id: it.id, question: it.question, score: null }))
32
+ };
33
+ }
34
+ export function getReviewDir(projectRoot, sessionId) {
35
+ return resolve(projectRoot, '.peaks', '_runtime', sessionId, 'slice-reviews');
36
+ }
37
+ export function getReviewPath(projectRoot, sessionId, sliceId) {
38
+ return join(getReviewDir(projectRoot, sessionId), `${sliceId}.json`);
39
+ }
40
+ export function readSliceReview(projectRoot, sessionId, sliceId) {
41
+ const path = getReviewPath(projectRoot, sessionId, sliceId);
42
+ if (!existsSync(path))
43
+ return null;
44
+ try {
45
+ const raw = readFileSync(path, 'utf8');
46
+ return JSON.parse(raw);
47
+ }
48
+ catch (err) {
49
+ console.warn(`readSliceReview: failed to read or parse ${path}: ${err.message}`);
50
+ return null;
51
+ }
52
+ }
53
+ export function writeSliceReview(projectRoot, review) {
54
+ const path = getReviewPath(projectRoot, review.sessionId, review.sliceId);
55
+ mkdirSync(dirname(path), { recursive: true });
56
+ writeFileSync(path, JSON.stringify(review, null, 2), 'utf8');
57
+ }
58
+ /** Update a single item's score. Returns the new state. */
59
+ export function scoreItem(review, itemId, score, note, now = new Date()) {
60
+ let found = false;
61
+ const items = review.items.map((it) => {
62
+ if (it.id !== itemId)
63
+ return it;
64
+ found = true;
65
+ return { id: it.id, question: it.question, score, ...(note !== undefined ? { note } : {}) };
66
+ });
67
+ if (!found)
68
+ return review;
69
+ return { ...review, items, updatedAt: now.toISOString() };
70
+ }
71
+ /** Compute the average score across all scored items. */
72
+ export function averageScore(review) {
73
+ const scored = review.items.filter((it) => it.score !== null);
74
+ if (scored.length === 0)
75
+ return null;
76
+ return scored.reduce((sum, it) => sum + it.score, 0) / scored.length;
77
+ }
78
+ /** Decide accept/reject based on the 12 Gaps threshold:
79
+ * - avg score >= 3 AND no item scored <= 2 → accepted
80
+ * - any item scored 1 (P0 fail) or avg < 3 → rejected
81
+ */
82
+ export function deriveDecision(review) {
83
+ if (review.items.some((it) => it.score === 1))
84
+ return 'rejected';
85
+ const avg = averageScore(review);
86
+ if (avg === null)
87
+ return 'pending';
88
+ if (avg < 3)
89
+ return 'rejected';
90
+ // Any item <= 2 also rejects.
91
+ if (review.items.some((it) => it.score !== null && it.score <= 2))
92
+ return 'rejected';
93
+ return 'accepted';
94
+ }
95
+ /** Apply the derived decision to a review (used by `peaks slice accept`). */
96
+ export function acceptReview(review, now = new Date()) {
97
+ return { ...review, decision: 'accepted', updatedAt: now.toISOString() };
98
+ }
99
+ export function rejectReview(review, reason, now = new Date()) {
100
+ return { ...review, decision: 'rejected', rejectionReason: reason, updatedAt: now.toISOString() };
101
+ }
102
+ export function renderChecklist(review) {
103
+ return review.items.map((it) => ({
104
+ id: it.id,
105
+ question: it.question,
106
+ currentScore: it.score,
107
+ prompt: ` [ ] ${it.question} (current: ${it.score === null ? 'not scored' : it.score + '/5'})`
108
+ }));
109
+ }
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Type envelope for v2 multi-pass slice decomposition.
3
+ *
4
+ * v2 extends the v1 `DecompositionResult` with a `passes[]` array (one entry
5
+ * per decomposition pass) and `crossPassEdges[]` (edges that span passes),
6
+ * plus an `llmArbitrations[]` trace for any LLM calls made during
7
+ * decomposition. The new schema is what `peaks-slice-decompose` (and the
8
+ * new `MultiPassOrchestrator`) emit; v1 files remain readable via the
9
+ * `SchemaRouter` (Task 8) so existing `peaks slice pick` / `peaks slice plan`
10
+ * flows do not break.
11
+ *
12
+ * Conventions:
13
+ * - All fields are `readonly` to enforce immutable construction.
14
+ * - Literal unions (`SchemaVersion`, `PassNumber`, etc.) are preferred over
15
+ * `enum` so the JSON serialisation is the literal string, not a number.
16
+ * - `CrossPassEdge.confidence` extends the structural|semantic union with
17
+ * `'llm'` because LLM-arbitrated edges are neither — they were guessed
18
+ * by an LLM and must carry the arbitration trace via `arbitratedBy`.
19
+ */
20
+ import type { CodegraphEnvelope, UnderstandAnythingEnvelope } from './slice-decompose-types.js';
21
+ /** Schema discriminator. v1 files do NOT carry a `schemaVersion` field. */
22
+ export type SchemaVersion = 'v1' | 'v2';
23
+ /** How coarse a slice is. */
24
+ export type SliceGranularity = 'service' | 'file' | 'sub-file';
25
+ /** Pass index. v2 only goes up to Pass 3 (sub-file is reserved for future). */
26
+ export type PassNumber = 1 | 2 | 3;
27
+ /** Edge source confidence. */
28
+ export type EdgeConfidence = 'structural' | 'semantic';
29
+ /** LLM-reported confidence of a single arbitration. */
30
+ export type LlmConfidence = 'high' | 'medium' | 'low';
31
+ /** Edge kinds for edges within a single pass. */
32
+ export type InternalEdgeKind = 'imports' | 'calls' | 'depends_on' | 'contains_flow' | 'flow_step';
33
+ /** Edge kinds for edges that connect two different passes. */
34
+ export type CrossPassEdgeKind = 'type-shares' | 'fixture-shares' | 'import-re-export' | 'llm-arbitrated';
35
+ /** Configuration for a single decomposition pass. */
36
+ export interface PassConfig {
37
+ readonly passNumber: PassNumber;
38
+ readonly granularity: SliceGranularity;
39
+ /** Optional list of files (or semantic anchors) to scope this pass to. */
40
+ readonly scopeFilter?: readonly string[];
41
+ }
42
+ /** A single v2 slice, scoped to one pass. */
43
+ export interface SliceV2 {
44
+ /** Stable id within this pass (e.g. "S1" for Pass 1, "S1.3" for Pass 2 child of S1). */
45
+ readonly id: string;
46
+ /** Human-readable label; shown in `peaks slice pick` fzf list. */
47
+ readonly label: string;
48
+ readonly granularity: SliceGranularity;
49
+ readonly files: readonly string[];
50
+ /** Total LoC across all `files`. */
51
+ readonly loc: number;
52
+ /** Parent slice id from the previous pass, or null for Pass 1. */
53
+ readonly parentSliceId: string | null;
54
+ /** Domain anchor; "domain:<name>" if understand-anything indexed, else "file:<path>". */
55
+ readonly semanticAnchor: string;
56
+ }
57
+ /** Edge connecting two slices within the same pass. */
58
+ export interface InternalEdge {
59
+ readonly from: string;
60
+ readonly to: string;
61
+ readonly kind: InternalEdgeKind;
62
+ /** Edge weight for downstream min-cut / dispatch-ordering heuristics. */
63
+ readonly weight: number;
64
+ /** Human-readable evidence: the actual import statement or graph edge. */
65
+ readonly evidence: string;
66
+ readonly confidence: EdgeConfidence;
67
+ }
68
+ /** Edge connecting a slice in one pass to a slice in another pass. */
69
+ export interface CrossPassEdge {
70
+ readonly fromPass: PassNumber;
71
+ readonly toPass: PassNumber;
72
+ readonly fromSliceId: string;
73
+ readonly toSliceId: string;
74
+ readonly kind: CrossPassEdgeKind;
75
+ /** `llm` is only valid for `kind: 'llm-arbitrated'`. */
76
+ readonly confidence: EdgeConfidence | 'llm';
77
+ /** Human-readable evidence: the import line, shared fixture id, etc. */
78
+ readonly evidence: string;
79
+ /** The `LlmArbitration.callId` that produced this edge, or null. */
80
+ readonly arbitratedBy: string | null;
81
+ }
82
+ /** Record of one LLM call made during decomposition. */
83
+ export interface LlmArbitration {
84
+ readonly callId: string;
85
+ /** sha256 hex of the prompt (used for content-hash cache lookup). */
86
+ readonly promptHash: string;
87
+ readonly input: string;
88
+ readonly output: string;
89
+ readonly confidence: LlmConfidence;
90
+ readonly tokens: {
91
+ readonly input: number;
92
+ readonly output: number;
93
+ };
94
+ }
95
+ /** The slices + internal edges produced by one decomposition pass. */
96
+ export interface PassResult {
97
+ readonly passNumber: PassNumber;
98
+ readonly granularity: SliceGranularity;
99
+ readonly slices: readonly SliceV2[];
100
+ readonly internalEdges: readonly InternalEdge[];
101
+ }
102
+ /** Top-level v2 decomposition result. */
103
+ export interface DecompositionResultV2 {
104
+ readonly schemaVersion: 'v2';
105
+ readonly rid: string;
106
+ /** ISO 8601 UTC, e.g. "2026-06-25T12:00:00.000Z". */
107
+ readonly generatedAt: string;
108
+ readonly passes: readonly PassResult[];
109
+ readonly crossPassEdges: readonly CrossPassEdge[];
110
+ readonly llmArbitrations: readonly LlmArbitration[];
111
+ readonly codegraph: CodegraphEnvelope;
112
+ readonly understandAnything: UnderstandAnythingEnvelope;
113
+ /** True iff any pass failed to complete and the result is a partial. */
114
+ readonly partial: boolean;
115
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Type envelope for v2 multi-pass slice decomposition.
3
+ *
4
+ * v2 extends the v1 `DecompositionResult` with a `passes[]` array (one entry
5
+ * per decomposition pass) and `crossPassEdges[]` (edges that span passes),
6
+ * plus an `llmArbitrations[]` trace for any LLM calls made during
7
+ * decomposition. The new schema is what `peaks-slice-decompose` (and the
8
+ * new `MultiPassOrchestrator`) emit; v1 files remain readable via the
9
+ * `SchemaRouter` (Task 8) so existing `peaks slice pick` / `peaks slice plan`
10
+ * flows do not break.
11
+ *
12
+ * Conventions:
13
+ * - All fields are `readonly` to enforce immutable construction.
14
+ * - Literal unions (`SchemaVersion`, `PassNumber`, etc.) are preferred over
15
+ * `enum` so the JSON serialisation is the literal string, not a number.
16
+ * - `CrossPassEdge.confidence` extends the structural|semantic union with
17
+ * `'llm'` because LLM-arbitrated edges are neither — they were guessed
18
+ * by an LLM and must carry the arbitration trace via `arbitratedBy`.
19
+ */
20
+ export {};
@@ -0,0 +1,73 @@
1
+ /**
2
+ * v2.15.0 follow-up — G14: smoke regression state service.
3
+ *
4
+ * Tracks the project's "critical paths" — the 5-10 paths the user
5
+ * (or the QA agent) must verify in 5-10 minutes before shipping.
6
+ * Persistence: `.peaks/smoke-paths.json` in the project root.
7
+ *
8
+ * The actual path execution (Playwright / curl / manual) is OUT OF
9
+ * SCOPE for this slice — this ships the model + the run-result
10
+ * record path. A follow-up slice wires real Playwright integration.
11
+ */
12
+ export type CriticalPathSource = 'prd-business-scenario' | 'boss-stated' | 'historical-incident' | 'impact-must-check' | 'manual';
13
+ export type CriticalPathStatus = 'pending' | 'pass' | 'fail';
14
+ export interface CriticalPath {
15
+ /** Unique id. */
16
+ readonly id: string;
17
+ /** Human-readable name / description. */
18
+ readonly name: string;
19
+ /** Where this path came from. */
20
+ readonly source: CriticalPathSource;
21
+ /** When it was registered (ISO). */
22
+ readonly registeredAt: string;
23
+ /** Optional category tag (e.g. "登录", "权限", "数据列表"). */
24
+ readonly category?: string;
25
+ /** Latest status + when it was last run. */
26
+ readonly status: CriticalPathStatus;
27
+ readonly lastRunAt?: string;
28
+ readonly lastRunNote?: string;
29
+ /** Optional run history (last 5 runs, oldest first). */
30
+ readonly history: readonly {
31
+ readonly at: string;
32
+ readonly status: CriticalPathStatus;
33
+ readonly note?: string;
34
+ }[];
35
+ }
36
+ export interface SmokeState {
37
+ readonly version: 1;
38
+ readonly paths: readonly CriticalPath[];
39
+ }
40
+ export declare const EMPTY_SMOKE_STATE: SmokeState;
41
+ export declare function getSmokeStatePath(projectRoot: string): string;
42
+ export declare function readSmokeState(projectRoot: string): SmokeState;
43
+ export declare function writeSmokeState(projectRoot: string, state: SmokeState): void;
44
+ /** Sources accepted by the CLI's --source flag. */
45
+ export declare const CRITICAL_PATH_SOURCES: readonly CriticalPathSource[];
46
+ export declare function isCriticalPathSource(value: string): value is CriticalPathSource;
47
+ /** Generate a stable id from a name (lowercase, hyphens). */
48
+ export declare function makeCriticalPathId(name: string): string;
49
+ /** Add a critical path. Deduplicates by id. */
50
+ export declare function addCriticalPath(state: SmokeState, path: CriticalPath): SmokeState;
51
+ /** Add a run result to a path's history. Keeps the last 5. */
52
+ export declare function recordRun(state: SmokeState, id: string, status: CriticalPathStatus, note?: string, now?: Date): SmokeState;
53
+ /** Convert peaks impact must-check items to critical paths. */
54
+ export declare function impactMustChecksToCriticalPaths(items: readonly {
55
+ scenario: string;
56
+ category: string;
57
+ priority: string;
58
+ }[], now?: Date): CriticalPath[];
59
+ /** Run summary for `peaks smoke run`. */
60
+ export interface SmokeRunResult {
61
+ readonly totalPaths: number;
62
+ readonly passedPaths: number;
63
+ readonly failedPaths: number;
64
+ readonly pendingPaths: number;
65
+ readonly failedDetails: readonly {
66
+ id: string;
67
+ name: string;
68
+ lastRunNote?: string;
69
+ }[];
70
+ readonly durationMs: number;
71
+ }
72
+ /** Compute run summary from current state. */
73
+ export declare function summarizeState(state: SmokeState): SmokeRunResult;
@@ -0,0 +1,117 @@
1
+ /**
2
+ * v2.15.0 follow-up — G14: smoke regression state service.
3
+ *
4
+ * Tracks the project's "critical paths" — the 5-10 paths the user
5
+ * (or the QA agent) must verify in 5-10 minutes before shipping.
6
+ * Persistence: `.peaks/smoke-paths.json` in the project root.
7
+ *
8
+ * The actual path execution (Playwright / curl / manual) is OUT OF
9
+ * SCOPE for this slice — this ships the model + the run-result
10
+ * record path. A follow-up slice wires real Playwright integration.
11
+ */
12
+ import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
13
+ import { dirname, resolve } from 'node:path';
14
+ export const EMPTY_SMOKE_STATE = { version: 1, paths: [] };
15
+ const STATE_FILE = '.peaks/smoke-paths.json';
16
+ export function getSmokeStatePath(projectRoot) {
17
+ return resolve(projectRoot, STATE_FILE);
18
+ }
19
+ export function readSmokeState(projectRoot) {
20
+ const path = getSmokeStatePath(projectRoot);
21
+ if (!existsSync(path))
22
+ return EMPTY_SMOKE_STATE;
23
+ try {
24
+ const raw = readFileSync(path, 'utf8');
25
+ const parsed = JSON.parse(raw);
26
+ if (parsed.version !== 1)
27
+ return EMPTY_SMOKE_STATE;
28
+ return { version: 1, paths: Array.isArray(parsed.paths) ? parsed.paths : [] };
29
+ }
30
+ catch {
31
+ return EMPTY_SMOKE_STATE;
32
+ }
33
+ }
34
+ export function writeSmokeState(projectRoot, state) {
35
+ const path = getSmokeStatePath(projectRoot);
36
+ mkdirSync(dirname(path), { recursive: true });
37
+ writeFileSync(path, JSON.stringify(state, null, 2), 'utf8');
38
+ }
39
+ /** Sources accepted by the CLI's --source flag. */
40
+ export const CRITICAL_PATH_SOURCES = [
41
+ 'prd-business-scenario',
42
+ 'boss-stated',
43
+ 'historical-incident',
44
+ 'impact-must-check',
45
+ 'manual'
46
+ ];
47
+ export function isCriticalPathSource(value) {
48
+ return CRITICAL_PATH_SOURCES.includes(value);
49
+ }
50
+ /** Generate a stable id from a name (lowercase, hyphens). */
51
+ export function makeCriticalPathId(name) {
52
+ return name
53
+ .toLowerCase()
54
+ .replace(/[^a-z0-9]+/g, '-')
55
+ .replace(/^-+|-+$/g, '')
56
+ .slice(0, 60);
57
+ }
58
+ /** Add a critical path. Deduplicates by id. */
59
+ export function addCriticalPath(state, path) {
60
+ const filtered = state.paths.filter((p) => p.id !== path.id);
61
+ return { version: 1, paths: [...filtered, path] };
62
+ }
63
+ /** Add a run result to a path's history. Keeps the last 5. */
64
+ export function recordRun(state, id, status, note, now = new Date()) {
65
+ let found = false;
66
+ const paths = state.paths.map((p) => {
67
+ if (p.id !== id)
68
+ return p;
69
+ found = true;
70
+ const newHistory = [...p.history, { at: now.toISOString(), status, ...(note !== undefined ? { note } : {}) }].slice(-5);
71
+ return {
72
+ ...p,
73
+ status,
74
+ lastRunAt: now.toISOString(),
75
+ ...(note !== undefined ? { lastRunNote: note } : {}),
76
+ history: newHistory
77
+ };
78
+ });
79
+ if (!found)
80
+ return state;
81
+ return { version: 1, paths };
82
+ }
83
+ /** Convert peaks impact must-check items to critical paths. */
84
+ export function impactMustChecksToCriticalPaths(items, now = new Date()) {
85
+ return items.map((item) => ({
86
+ id: makeCriticalPathId(item.scenario),
87
+ name: item.scenario,
88
+ source: 'impact-must-check',
89
+ registeredAt: now.toISOString(),
90
+ category: item.category,
91
+ status: 'pending',
92
+ history: []
93
+ }));
94
+ }
95
+ /** Compute run summary from current state. */
96
+ export function summarizeState(state) {
97
+ let passed = 0, failed = 0, pending = 0;
98
+ const failedDetails = [];
99
+ for (const p of state.paths) {
100
+ if (p.status === 'pass')
101
+ passed++;
102
+ else if (p.status === 'fail') {
103
+ failed++;
104
+ failedDetails.push({ id: p.id, name: p.name, ...(p.lastRunNote !== undefined ? { lastRunNote: p.lastRunNote } : {}) });
105
+ }
106
+ else
107
+ pending++;
108
+ }
109
+ return {
110
+ totalPaths: state.paths.length,
111
+ passedPaths: passed,
112
+ failedPaths: failed,
113
+ pendingPaths: pending,
114
+ failedDetails,
115
+ durationMs: 0 // CLI measures wall time; the service itself is instant
116
+ };
117
+ }
@@ -0,0 +1,33 @@
1
+ import type { BlockedGate } from './sop-advance-service.js';
2
+ export type MatchedGuard = {
3
+ sopId: string;
4
+ phase: string;
5
+ /** The non-passing gates that block this phase's guarded action. */
6
+ failing: BlockedGate[];
7
+ };
8
+ export type EnforceDecision = {
9
+ decision: 'allow';
10
+ bypassed?: boolean;
11
+ warnings?: string[];
12
+ } | {
13
+ decision: 'deny';
14
+ reason: string;
15
+ matched: MatchedGuard[];
16
+ };
17
+ export declare class GateBypassError extends Error {
18
+ readonly code: string;
19
+ constructor(code: string, message: string);
20
+ }
21
+ /**
22
+ * Record a one-shot bypass token for `<sopId>:<phase>` in this project. The next
23
+ * `enforceBashCommand` that the transition blocks consumes it and allows once.
24
+ * Capped per-project-per-SOP by MAX_BYPASSES_PER_SESSION.
25
+ */
26
+ export declare function recordGateBypass(projectRoot: string, sopId: string, phase: string, reason: string): {
27
+ count: number;
28
+ };
29
+ /**
30
+ * Decide whether a Bash command may run. Pure given the filesystem; never throws
31
+ * (fail-open on any internal error). Returns allow/deny for the PreToolUse hook.
32
+ */
33
+ export declare function enforceBashCommand(projectRoot: string, command: string): Promise<EnforceDecision>;
@@ -0,0 +1,168 @@
1
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { readRegistry } from './sop-registry-service.js';
4
+ import { readSopManifest } from './sop-service.js';
5
+ import { evaluateGate } from './sop-check-service.js';
6
+ import { sopStateDir } from './sop-paths.js';
7
+ import { isBypassLimitReached, recordBypass, MAX_BYPASSES_PER_SESSION } from '../mode/bypass-tracker.js';
8
+ /**
9
+ * Gate enforcement — Feature A, Slice 4 (the un-bypassable closure).
10
+ *
11
+ * `enforceBashCommand` is the brain behind the PreToolUse hook: given a Bash
12
+ * command the agent is about to run, it finds every registered SOP whose phase
13
+ * `guards` match that command, evaluates that phase's gates, and decides
14
+ * allow/deny. A deny, surfaced by the hook as `permissionDecision: "deny"`,
15
+ * blocks the tool call before Claude Code's permission checks — so the action
16
+ * cannot happen while a gate fails, regardless of agent cooperation or
17
+ * `--dangerously-skip-permissions`.
18
+ *
19
+ * TRUST RED LINE: this runs on (potentially) every Bash call. A bug here must
20
+ * never brick the user's Claude Code. So every internal failure (unreadable
21
+ * registry, malformed manifest, invalid guard regex) is FAIL-OPEN — it allows
22
+ * the command and emits a warning. Only a genuine gate failure denies.
23
+ *
24
+ * Escape hatch: a one-shot bypass token (written by `peaks gate bypass`) for a
25
+ * matched transition is consumed here and turns the deny into an allow, capped
26
+ * per-project-per-SOP by the shared bypass tracker.
27
+ */
28
+ const BYPASS_TOKENS_FILE = '.gate-bypass.json';
29
+ function bypassTokensPath(projectRoot, sopId) {
30
+ return join(sopStateDir(projectRoot, sopId), BYPASS_TOKENS_FILE);
31
+ }
32
+ function readBypassTokens(projectRoot, sopId) {
33
+ const path = bypassTokensPath(projectRoot, sopId);
34
+ if (!existsSync(path)) {
35
+ return [];
36
+ }
37
+ try {
38
+ const parsed = JSON.parse(readFileSync(path, 'utf8'));
39
+ if (!Array.isArray(parsed)) {
40
+ return [];
41
+ }
42
+ return parsed.filter((t) => t !== null && typeof t === 'object' && typeof t.phase === 'string');
43
+ }
44
+ catch {
45
+ return [];
46
+ }
47
+ }
48
+ function writeBypassTokens(projectRoot, sopId, tokens) {
49
+ const dir = sopStateDir(projectRoot, sopId);
50
+ mkdirSync(dir, { recursive: true });
51
+ writeFileSync(bypassTokensPath(projectRoot, sopId), `${JSON.stringify(tokens, null, 2)}\n`, 'utf8');
52
+ }
53
+ function hasBypassToken(projectRoot, sopId, phase) {
54
+ return readBypassTokens(projectRoot, sopId).some((t) => t.phase === phase);
55
+ }
56
+ /** Remove the first matching bypass token (one-shot). Returns true if one was consumed. */
57
+ function consumeBypassToken(projectRoot, sopId, phase) {
58
+ const tokens = readBypassTokens(projectRoot, sopId);
59
+ const index = tokens.findIndex((t) => t.phase === phase);
60
+ if (index === -1) {
61
+ return false;
62
+ }
63
+ tokens.splice(index, 1);
64
+ writeBypassTokens(projectRoot, sopId, tokens);
65
+ return true;
66
+ }
67
+ export class GateBypassError extends Error {
68
+ code;
69
+ constructor(code, message) {
70
+ super(message);
71
+ this.name = 'GateBypassError';
72
+ this.code = code;
73
+ }
74
+ }
75
+ /**
76
+ * Record a one-shot bypass token for `<sopId>:<phase>` in this project. The next
77
+ * `enforceBashCommand` that the transition blocks consumes it and allows once.
78
+ * Capped per-project-per-SOP by MAX_BYPASSES_PER_SESSION.
79
+ */
80
+ export function recordGateBypass(projectRoot, sopId, phase, reason) {
81
+ const root = sopStateDir(projectRoot, sopId);
82
+ if (isBypassLimitReached(root)) {
83
+ throw new GateBypassError('BYPASS_LIMIT_REACHED', `gate bypass limit reached (${MAX_BYPASSES_PER_SESSION} bypasses per SOP per project)`);
84
+ }
85
+ const tokens = readBypassTokens(projectRoot, sopId);
86
+ writeBypassTokens(projectRoot, sopId, [...tokens, { phase, reason }]);
87
+ const count = recordBypass(root);
88
+ return { count };
89
+ }
90
+ function denyReason(matched) {
91
+ const lines = matched.map((m) => {
92
+ const gates = m.failing.map((g) => `${g.gateId}=${g.result}${g.reason ? ` (${g.reason})` : ''}`).join(', ');
93
+ return `SOP "${m.sopId}" phase "${m.phase}": ${gates}`;
94
+ });
95
+ const hint = matched
96
+ .map((m) => `peaks gate bypass --sop ${m.sopId} --phase ${m.phase} --reason "<why>"`)
97
+ .join(' ; ');
98
+ return `Blocked by Peaks gate(s): ${lines.join(' | ')}. Satisfy the gate(s), or bypass once: ${hint}`;
99
+ }
100
+ /**
101
+ * Decide whether a Bash command may run. Pure given the filesystem; never throws
102
+ * (fail-open on any internal error). Returns allow/deny for the PreToolUse hook.
103
+ */
104
+ export async function enforceBashCommand(projectRoot, command) {
105
+ const warnings = [];
106
+ let sopIds;
107
+ try {
108
+ // Merged view: project-layer SOPs (committed in the repo — a teammate who
109
+ // clones gets them) over global. This is what makes enforcement work for a
110
+ // teammate who has only the repo, not your global ~/.peaks.
111
+ sopIds = (await readRegistry(projectRoot)).sops.map((sop) => sop.id);
112
+ }
113
+ catch (error) {
114
+ return { decision: 'allow', warnings: [`gate enforce: could not read registry (${error instanceof Error ? error.message : 'error'}); allowing`] };
115
+ }
116
+ const matched = [];
117
+ for (const sopId of sopIds) {
118
+ let manifest;
119
+ try {
120
+ manifest = await readSopManifest(sopId, projectRoot);
121
+ }
122
+ catch (error) {
123
+ warnings.push(`gate enforce: SOP "${sopId}" manifest unreadable (${error instanceof Error ? error.message : 'error'}); skipping`);
124
+ continue;
125
+ }
126
+ if (manifest === null || !Array.isArray(manifest.guards) || manifest.guards.length === 0) {
127
+ continue;
128
+ }
129
+ for (const guard of manifest.guards) {
130
+ let regex;
131
+ try {
132
+ regex = new RegExp(guard.bash);
133
+ }
134
+ catch {
135
+ warnings.push(`gate enforce: SOP "${sopId}" guard has an invalid regex "${guard.bash}"; skipping`);
136
+ continue;
137
+ }
138
+ if (!regex.test(command)) {
139
+ continue;
140
+ }
141
+ const failing = [];
142
+ for (const gate of manifest.gates.filter((g) => g.phase === guard.phase)) {
143
+ const verdict = evaluateGate(projectRoot, gate, { allowCommands: true });
144
+ if (verdict.result !== 'pass') {
145
+ failing.push(verdict.reason === undefined
146
+ ? { gateId: gate.id, result: verdict.result }
147
+ : { gateId: gate.id, result: verdict.result, reason: verdict.reason });
148
+ }
149
+ }
150
+ if (failing.length > 0) {
151
+ matched.push({ sopId, phase: guard.phase, failing });
152
+ }
153
+ }
154
+ }
155
+ if (matched.length === 0) {
156
+ return warnings.length > 0 ? { decision: 'allow', warnings } : { decision: 'allow' };
157
+ }
158
+ // One-shot bypass: only allow if EVERY blocked transition has a token to spend
159
+ // (don't burn tokens on a partial pass-through).
160
+ const allBypassable = matched.every((m) => hasBypassToken(projectRoot, m.sopId, m.phase));
161
+ if (allBypassable) {
162
+ for (const m of matched) {
163
+ consumeBypassToken(projectRoot, m.sopId, m.phase);
164
+ }
165
+ return { decision: 'allow', bypassed: true, ...(warnings.length > 0 ? { warnings } : {}) };
166
+ }
167
+ return { decision: 'deny', reason: denyReason(matched), matched };
168
+ }