peaks-loop 4.0.0-beta.9 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (552) hide show
  1. package/CHANGELOG.md +910 -141
  2. package/README-en.md +26 -7
  3. package/README.md +75 -6
  4. package/agents/karpathy-reviewer.md +33 -0
  5. package/bin/peaks.js +0 -0
  6. package/dist/cli/cli-helpers.d.ts +31 -6
  7. package/dist/cli/cli-helpers.js +48 -25
  8. package/dist/cli/commands/_register.d.ts +3 -0
  9. package/dist/cli/commands/_register.js +139 -0
  10. package/dist/cli/commands/_super.d.ts +10 -0
  11. package/dist/cli/commands/_super.js +97 -0
  12. package/dist/cli/commands/adapter-commands-s2a.js +1 -1
  13. package/dist/cli/commands/asset-commands.js +33 -16
  14. package/dist/cli/commands/audit-commands.js +2 -2
  15. package/dist/cli/commands/autonomous-swarm-commands.d.ts +12 -0
  16. package/dist/cli/commands/autonomous-swarm-commands.js +120 -0
  17. package/dist/cli/commands/bee-commands.js +1 -1
  18. package/dist/cli/commands/capability-commands.js +1 -1
  19. package/dist/cli/commands/capability-worker-config-sc-commands.js +0 -2
  20. package/dist/cli/commands/changeset-commands.d.ts +13 -0
  21. package/dist/cli/commands/changeset-commands.js +46 -0
  22. package/dist/cli/commands/code-commands.d.ts +11 -1
  23. package/dist/cli/commands/code-commands.js +19 -699
  24. package/dist/cli/commands/code-job-shape-commands.d.ts +9 -0
  25. package/dist/cli/commands/code-job-shape-commands.js +164 -0
  26. package/dist/cli/commands/code-mode-gate-commands.d.ts +9 -0
  27. package/dist/cli/commands/code-mode-gate-commands.js +223 -0
  28. package/dist/cli/commands/code-review-commands.js +2 -2
  29. package/dist/cli/commands/code-run-command.d.ts +12 -0
  30. package/dist/cli/commands/code-run-command.js +68 -0
  31. package/dist/cli/commands/code-runtime-commands.d.ts +11 -0
  32. package/dist/cli/commands/code-runtime-commands.js +391 -0
  33. package/dist/cli/commands/codegraph-commands.js +1 -1
  34. package/dist/cli/commands/compact-command.js +53 -1
  35. package/dist/cli/commands/complexity-commands.js +1 -1
  36. package/dist/cli/commands/config-commands.js +4 -75
  37. package/dist/cli/commands/container-commands.d.ts +28 -0
  38. package/dist/cli/commands/container-commands.js +221 -0
  39. package/dist/cli/commands/context-commands.js +3 -2
  40. package/dist/cli/commands/core/artifacts-command.js +1 -1
  41. package/dist/cli/commands/core/binding-commands.js +1 -1
  42. package/dist/cli/commands/core/doctor-command.js +63 -3
  43. package/dist/cli/commands/core/memory-command.js +1 -1
  44. package/dist/cli/commands/core/profile-command.js +1 -1
  45. package/dist/cli/commands/core/proxy-command.js +1 -1
  46. package/dist/cli/commands/core/session-command.js +9 -7
  47. package/dist/cli/commands/core/skill-command.js +7 -4
  48. package/dist/cli/commands/core/standards-command.js +1 -1
  49. package/dist/cli/commands/cron-commands.d.ts +57 -0
  50. package/dist/cli/commands/cron-commands.js +257 -0
  51. package/dist/cli/commands/cron-scheduler-commands.d.ts +47 -0
  52. package/dist/cli/commands/cron-scheduler-commands.js +284 -0
  53. package/dist/cli/commands/dashboard-commands.d.ts +4 -0
  54. package/dist/cli/commands/dashboard-commands.js +10 -0
  55. package/dist/cli/commands/dashboard-long-run.d.ts +25 -0
  56. package/dist/cli/commands/dashboard-long-run.js +122 -0
  57. package/dist/cli/commands/dashboard-summary.d.ts +12 -0
  58. package/dist/cli/commands/dashboard-summary.js +58 -0
  59. package/dist/cli/commands/dispatch-commands.d.ts +0 -7
  60. package/dist/cli/commands/dispatch-commands.js +372 -8
  61. package/dist/cli/commands/dispatch-from-dag.js +4 -1
  62. package/dist/cli/commands/doc-commands.js +1 -1
  63. package/dist/cli/commands/ecc-commands.d.ts +30 -0
  64. package/dist/cli/commands/ecc-commands.js +119 -0
  65. package/dist/cli/commands/evolution-commands.js +1 -1
  66. package/dist/cli/commands/feedback-commands.js +1 -1
  67. package/dist/cli/commands/final-review-commands.js +1 -1
  68. package/dist/cli/commands/fixture-commands.js +1 -1
  69. package/dist/cli/commands/fork-commands.js +1 -1
  70. package/dist/cli/commands/gate-commands.js +128 -6
  71. package/dist/cli/commands/governance-classify-contract-commands.d.ts +21 -0
  72. package/dist/cli/commands/governance-classify-contract-commands.js +273 -0
  73. package/dist/cli/commands/heartbeat-commands.js +76 -5
  74. package/dist/cli/commands/heartbeat-watch-command.d.ts +31 -0
  75. package/dist/cli/commands/heartbeat-watch-command.js +146 -0
  76. package/dist/cli/commands/hook-handle.js +1 -1
  77. package/dist/cli/commands/hooks-commands.js +126 -10
  78. package/dist/cli/commands/ide-commands.js +1 -1
  79. package/dist/cli/commands/impact-commands.js +1 -1
  80. package/dist/cli/commands/job-commands.js +34 -1
  81. package/dist/cli/commands/lease-metrics-commands.d.ts +67 -0
  82. package/dist/cli/commands/lease-metrics-commands.js +231 -0
  83. package/dist/cli/commands/lease-stats-commands.d.ts +65 -0
  84. package/dist/cli/commands/lease-stats-commands.js +107 -0
  85. package/dist/cli/commands/legacy-commands.js +1 -1
  86. package/dist/cli/commands/log-commands.js +1 -1
  87. package/dist/cli/commands/loop-commands.js +1 -1
  88. package/dist/cli/commands/loop-eval-commands.js +1 -1
  89. package/dist/cli/commands/memory-commands.js +1 -1
  90. package/dist/cli/commands/migrate-1-4-1-command.js +1 -1
  91. package/dist/cli/commands/migrate-v2-10-to-v2-11-command.js +1 -1
  92. package/dist/cli/commands/mut-commands.d.ts +1 -1
  93. package/dist/cli/commands/mut-commands.js +1 -5
  94. package/dist/cli/commands/observability-commands.js +1 -1
  95. package/dist/cli/commands/openspec-commands.js +65 -4
  96. package/dist/cli/commands/perf-audit-commands.js +3 -3
  97. package/dist/cli/commands/perf-commands.js +1 -1
  98. package/dist/cli/commands/polyrepo-commands.js +1 -1
  99. package/dist/cli/commands/prd-blocks-commands.js +1 -1
  100. package/dist/cli/commands/prd-commands.js +4 -2
  101. package/dist/cli/commands/preferences-commands.js +23 -3
  102. package/dist/cli/commands/project-commands.js +1 -1
  103. package/dist/cli/commands/qa-business-review-commands.js +1 -1
  104. package/dist/cli/commands/qa-commands.d.ts +1 -1
  105. package/dist/cli/commands/qa-commands.js +39 -3
  106. package/dist/cli/commands/release-commands.d.ts +15 -0
  107. package/dist/cli/commands/release-commands.js +113 -21
  108. package/dist/cli/commands/request-commands.js +1 -1
  109. package/dist/cli/commands/retrospective-commands.js +1 -1
  110. package/dist/cli/commands/reviewer-commands.js +1 -1
  111. package/dist/cli/commands/role-commands.js +1 -1
  112. package/dist/cli/commands/runtime-commands-helpers.d.ts +7 -0
  113. package/dist/cli/commands/runtime-commands-helpers.js +24 -0
  114. package/dist/cli/commands/runtime-commands.js +1 -2
  115. package/dist/cli/commands/sc-commands.js +4 -2
  116. package/dist/cli/commands/scan-commands.js +1 -1
  117. package/dist/cli/commands/security-audit-commands.js +3 -3
  118. package/dist/cli/commands/sediment-commands.js +10 -1
  119. package/dist/cli/commands/session-24h-mode.d.ts +26 -0
  120. package/dist/cli/commands/session-24h-mode.js +196 -0
  121. package/dist/cli/commands/share-commands.d.ts +19 -0
  122. package/dist/cli/commands/share-commands.js +121 -2
  123. package/dist/cli/commands/skill-conformance-commands.js +1 -1
  124. package/dist/cli/commands/skill-loop-engineering-readiness-commands.js +1 -1
  125. package/dist/cli/commands/skill-search-commands.js +4 -1
  126. package/dist/cli/commands/slice-commands.js +1 -1
  127. package/dist/cli/commands/slice-integrate-commands.js +1 -1
  128. package/dist/cli/commands/slice-review-commands.js +1 -1
  129. package/dist/cli/commands/smoke-commands.js +1 -1
  130. package/dist/cli/commands/sop-commands.js +1 -1
  131. package/dist/cli/commands/spill-demo-command.d.ts +7 -0
  132. package/dist/cli/commands/spill-demo-command.js +29 -0
  133. package/dist/cli/commands/statusline-commands.d.ts +12 -0
  134. package/dist/cli/commands/statusline-commands.js +79 -17
  135. package/dist/cli/commands/sub-agent-commands.js +2 -1
  136. package/dist/cli/commands/sub-agent-shared.d.ts +10 -0
  137. package/dist/cli/commands/sub-agent-shared.js +24 -1
  138. package/dist/cli/commands/swarm-commands.d.ts +13 -0
  139. package/dist/cli/commands/swarm-commands.js +77 -0
  140. package/dist/cli/commands/tech-commands.d.ts +64 -0
  141. package/dist/cli/commands/tech-commands.js +195 -0
  142. package/dist/cli/commands/understand-commands.js +1 -1
  143. package/dist/cli/commands/upgrade-commands.d.ts +2 -0
  144. package/dist/cli/commands/upgrade-commands.js +40 -5
  145. package/dist/cli/commands/user-touchpoint-commands.js +1 -1
  146. package/dist/cli/commands/verdict-aggregate-command.js +1 -1
  147. package/dist/cli/commands/vm-commands.d.ts +31 -0
  148. package/dist/cli/commands/vm-commands.js +274 -0
  149. package/dist/cli/commands/workflow-commands.js +24 -1
  150. package/dist/cli/commands/workflow-plan-commands.js +1 -1
  151. package/dist/cli/commands/workspace/init-command.js +1 -1
  152. package/dist/cli/commands/workspace/migrate-command.js +1 -1
  153. package/dist/cli/commands/workspace/reconcile-command.js +1 -1
  154. package/dist/cli/commands/worktree-auth-commands.d.ts +29 -0
  155. package/dist/cli/commands/worktree-auth-commands.js +652 -0
  156. package/dist/cli/index.js +58 -13
  157. package/dist/cli/program.d.ts +2 -2
  158. package/dist/cli/program.js +86 -281
  159. package/dist/services/24h-mode/decider.d.ts +103 -0
  160. package/dist/services/24h-mode/decider.js +144 -0
  161. package/dist/services/24h-mode/index.d.ts +12 -0
  162. package/dist/services/24h-mode/index.js +12 -0
  163. package/dist/services/24h-mode/state.d.ts +48 -0
  164. package/dist/services/24h-mode/state.js +51 -0
  165. package/dist/services/24h-mode/store.d.ts +27 -0
  166. package/dist/services/24h-mode/store.js +119 -0
  167. package/dist/services/artifacts/artifact-prerequisites.js +1 -1
  168. package/dist/services/artifacts/request-artifact-service.js +1 -1
  169. package/dist/services/artifacts/workspace-service.js +1 -1
  170. package/dist/services/audit/enforcers/lint-bee-runtime-contract.d.ts +25 -0
  171. package/dist/services/audit/enforcers/lint-bee-runtime-contract.js +91 -0
  172. package/dist/services/audit/enforcers/lint-peaks-code-runtime.d.ts +16 -0
  173. package/dist/services/audit/enforcers/lint-peaks-code-runtime.js +31 -0
  174. package/dist/services/audit/enforcers/lint-peaks-skill-runtime.d.ts +23 -0
  175. package/dist/services/audit/enforcers/lint-peaks-skill-runtime.js +59 -0
  176. package/dist/services/audit/enforcers/lint-peaks-ui-sc-txt-runtime.d.ts +28 -0
  177. package/dist/services/audit/enforcers/lint-peaks-ui-sc-txt-runtime.js +86 -0
  178. package/dist/services/audit/enforcers/lint-prd-artifact-handoff.d.ts +16 -0
  179. package/dist/services/audit/enforcers/lint-prd-artifact-handoff.js +41 -0
  180. package/dist/services/audit/enforcers/lint-prd-source-snapshot.d.ts +27 -0
  181. package/dist/services/audit/enforcers/lint-prd-source-snapshot.js +47 -0
  182. package/dist/services/audit/enforcers/lint-qa-gateguard-and-runtime.d.ts +19 -0
  183. package/dist/services/audit/enforcers/lint-qa-gateguard-and-runtime.js +47 -0
  184. package/dist/services/audit/enforcers/lint-rd-handoff-coverage.d.ts +18 -0
  185. package/dist/services/audit/enforcers/lint-rd-handoff-coverage.js +70 -0
  186. package/dist/services/audit/enforcers/lint-skill-presence-mandatory.d.ts +25 -0
  187. package/dist/services/audit/enforcers/lint-skill-presence-mandatory.js +53 -0
  188. package/dist/services/audit/red-line-catalog-p2-a.d.ts +0 -6
  189. package/dist/services/audit/red-line-catalog-p2-a.js +230 -1
  190. package/dist/services/audit/static-service.d.ts +32 -25
  191. package/dist/services/audit/static-service.js +30 -109
  192. package/dist/services/audit-independent/index.d.ts +2 -0
  193. package/dist/services/audit-independent/index.js +2 -0
  194. package/dist/services/autonomous-swarm/autonomous-swarm-service.d.ts +127 -0
  195. package/dist/services/autonomous-swarm/autonomous-swarm-service.js +446 -0
  196. package/dist/services/changeset/changeset-check-service.d.ts +22 -0
  197. package/dist/services/changeset/changeset-check-service.js +47 -0
  198. package/dist/services/code/auto-compact-modes.d.ts +30 -0
  199. package/dist/services/code/auto-compact-modes.js +38 -0
  200. package/dist/services/code/auto-compact-orchestrator.d.ts +43 -5
  201. package/dist/services/code/auto-compact-orchestrator.js +101 -21
  202. package/dist/services/code/dag-orchestrator.d.ts +30 -1
  203. package/dist/services/code/dag-orchestrator.js +106 -1
  204. package/dist/services/code/status-line-renderer.d.ts +2 -0
  205. package/dist/services/code/status-line-renderer.js +21 -3
  206. package/dist/services/code-review/ocr-service.d.ts +1 -1
  207. package/dist/services/code-review/ocr-service.js +6 -3
  208. package/dist/services/compact-history/compact-history-service.d.ts +41 -0
  209. package/dist/services/compact-history/compact-history-service.js +62 -0
  210. package/dist/services/compact-statusline/compact-statusline-service.d.ts +16 -0
  211. package/dist/services/compact-statusline/compact-statusline-service.js +83 -0
  212. package/dist/services/config/config-service.d.ts +1 -12
  213. package/dist/services/config/config-service.js +3 -72
  214. package/dist/services/config/config-types.d.ts +2 -4
  215. package/dist/services/config/config-types.js +1 -1
  216. package/dist/services/container/container-lease.d.ts +67 -0
  217. package/dist/services/container/container-lease.js +135 -0
  218. package/dist/services/context/auto-compact-dispatcher.d.ts +40 -5
  219. package/dist/services/context/auto-compact-dispatcher.js +32 -102
  220. package/dist/services/context/auto-compact-reader.js +1 -1
  221. package/dist/services/context/auto-compact-types.d.ts +27 -2
  222. package/dist/services/context/auto-compact-types.js +8 -1
  223. package/dist/services/context/build-dispatch-system-prompt.d.ts +75 -0
  224. package/dist/services/context/build-dispatch-system-prompt.js +117 -0
  225. package/dist/services/context/collector.d.ts +2 -2
  226. package/dist/services/context/context-builder.d.ts +4 -4
  227. package/dist/services/context/context-schema.d.ts +48 -48
  228. package/dist/services/context/ide-detect.d.ts +4 -0
  229. package/dist/services/context/ide-detect.js +24 -0
  230. package/dist/services/context/main-session-monitor.d.ts +1 -4
  231. package/dist/services/context/main-session-monitor.js +1 -24
  232. package/dist/services/context/memory-index-reader.d.ts +8 -0
  233. package/dist/services/context/memory-index-reader.js +57 -0
  234. package/dist/services/context/memory-lru-cache.d.ts +12 -0
  235. package/dist/services/context/memory-lru-cache.js +60 -0
  236. package/dist/services/context/memory-preflight-config.d.ts +19 -0
  237. package/dist/services/context/memory-preflight-config.js +25 -0
  238. package/dist/services/context/memory-preflight-service.d.ts +19 -0
  239. package/dist/services/context/memory-preflight-service.js +120 -0
  240. package/dist/services/context/spillover-store.d.ts +23 -0
  241. package/dist/services/context/spillover-store.js +155 -0
  242. package/dist/services/context/spillover-types.d.ts +18 -0
  243. package/dist/services/context/spillover-types.js +1 -0
  244. package/dist/services/crystallization/crystallization-service.d.ts +22 -5
  245. package/dist/services/crystallization/crystallization-service.js +8 -14
  246. package/dist/services/crystallization/crystallization-types.d.ts +6 -6
  247. package/dist/services/crystallization/evidence-brief-builder.d.ts +1 -1
  248. package/dist/services/crystallization/index.d.ts +13 -0
  249. package/dist/services/crystallization/index.js +13 -0
  250. package/dist/services/dashboard/project-dashboard-service.js +2 -2
  251. package/dist/services/dispatch/await-batch.d.ts +70 -0
  252. package/dist/services/dispatch/await-batch.js +272 -0
  253. package/dist/services/dispatch/batch-counter.js +1 -1
  254. package/dist/services/dispatch/dispatch-record-writer.d.ts +126 -4
  255. package/dist/services/dispatch/dispatch-record-writer.js +239 -9
  256. package/dist/services/dispatch/slice-dag.d.ts +46 -0
  257. package/dist/services/dispatch/slice-dag.js +6 -0
  258. package/dist/services/dispatch/stage-enum.d.ts +27 -0
  259. package/dist/services/dispatch/stage-enum.js +48 -0
  260. package/dist/services/dispatch/startup-timeout.d.ts +86 -0
  261. package/dist/services/dispatch/startup-timeout.js +97 -0
  262. package/dist/services/dispatch/sub-agent-dispatcher.js +40 -89
  263. package/dist/services/dispatch/test-tool-detection.d.ts +25 -1
  264. package/dist/services/dispatch/test-tool-detection.js +80 -0
  265. package/dist/services/doctor/doctor-service/checks/check-id-schema.d.ts +18 -0
  266. package/dist/services/doctor/doctor-service/checks/check-id-schema.js +64 -0
  267. package/dist/services/doctor/doctor-service/checks/codegraph-capability.d.ts +14 -0
  268. package/dist/services/doctor/doctor-service/checks/codegraph-capability.js +69 -0
  269. package/dist/services/doctor/doctor-service/checks/dist-source-version.d.ts +32 -0
  270. package/dist/services/doctor/doctor-service/checks/dist-source-version.js +110 -0
  271. package/dist/services/doctor/doctor-service/checks/gateguard-conflict.d.ts +24 -0
  272. package/dist/services/doctor/doctor-service/checks/gateguard-conflict.js +164 -0
  273. package/dist/services/doctor/doctor-service/checks/l3-memory-health.d.ts +16 -0
  274. package/dist/services/doctor/doctor-service/checks/l3-memory-health.js +57 -0
  275. package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.d.ts +19 -0
  276. package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.js +66 -0
  277. package/dist/services/doctor/doctor-service/checks/schema-validity.d.ts +10 -0
  278. package/dist/services/doctor/doctor-service/checks/schema-validity.js +33 -0
  279. package/dist/services/doctor/doctor-service/checks/skill-apply-note.d.ts +20 -0
  280. package/dist/services/doctor/doctor-service/checks/skill-apply-note.js +85 -0
  281. package/dist/services/doctor/doctor-service/checks/skill-existence.d.ts +13 -0
  282. package/dist/services/doctor/doctor-service/checks/skill-existence.js +30 -0
  283. package/dist/services/doctor/doctor-service/checks/skill-name-match.d.ts +10 -0
  284. package/dist/services/doctor/doctor-service/checks/skill-name-match.js +25 -0
  285. package/dist/services/doctor/doctor-service/checks/skill-parse.d.ts +10 -0
  286. package/dist/services/doctor/doctor-service/checks/skill-parse.js +19 -0
  287. package/dist/services/doctor/doctor-service/checks/skill-presence.d.ts +21 -0
  288. package/dist/services/doctor/doctor-service/checks/skill-presence.js +75 -0
  289. package/dist/services/doctor/doctor-service/checks/skill-runbook.d.ts +14 -0
  290. package/dist/services/doctor/doctor-service/checks/skill-runbook.js +47 -0
  291. package/dist/services/doctor/doctor-service/checks/statusline-install.d.ts +14 -0
  292. package/dist/services/doctor/doctor-service/checks/statusline-install.js +32 -0
  293. package/dist/services/doctor/doctor-service/checks/statusline-runtime.d.ts +13 -0
  294. package/dist/services/doctor/doctor-service/checks/statusline-runtime.js +30 -0
  295. package/dist/services/doctor/doctor-service/checks/user-config.d.ts +11 -0
  296. package/dist/services/doctor/doctor-service/checks/user-config.js +27 -0
  297. package/dist/services/doctor/doctor-service/checks/workspace-init.d.ts +16 -0
  298. package/dist/services/doctor/doctor-service/checks/workspace-init.js +34 -0
  299. package/dist/services/doctor/doctor-service/checks/workspace-layout.d.ts +33 -0
  300. package/dist/services/doctor/doctor-service/checks/workspace-layout.js +180 -0
  301. package/dist/services/doctor/doctor-service/index.d.ts +48 -0
  302. package/dist/services/doctor/doctor-service/index.js +254 -0
  303. package/dist/services/doctor/doctor-service/plugin-registry.d.ts +41 -0
  304. package/dist/services/doctor/doctor-service/plugin-registry.js +77 -0
  305. package/dist/services/doctor/doctor-service/report/final-summary.d.ts +20 -0
  306. package/dist/services/doctor/doctor-service/report/final-summary.js +29 -0
  307. package/dist/services/doctor/doctor-service/types.d.ts +245 -0
  308. package/dist/services/doctor/doctor-service/types.js +15 -0
  309. package/dist/services/doctor/doctor-service.d.ts +15 -146
  310. package/dist/services/doctor/doctor-service.js +22 -926
  311. package/dist/services/doctor/index.d.ts +22 -0
  312. package/dist/services/doctor/index.js +22 -0
  313. package/dist/services/env/shell-probe.d.ts +71 -0
  314. package/dist/services/env/shell-probe.js +161 -0
  315. package/dist/services/evolution/evolution-types.d.ts +39 -39
  316. package/dist/services/final-review/final-review-service.d.ts +11 -1
  317. package/dist/services/final-review/index.d.ts +2 -0
  318. package/dist/services/final-review/index.js +1 -0
  319. package/dist/services/hooks/auto-compact-hook-install.d.ts +4 -5
  320. package/dist/services/hooks/auto-compact-hook-install.js +4 -5
  321. package/dist/services/hooks/worktree-authorization-gate.d.ts +205 -0
  322. package/dist/services/hooks/worktree-authorization-gate.js +492 -0
  323. package/dist/services/ide/adapters/claude-code-adapter.js +2 -2
  324. package/dist/services/ide/adapters/qoder-adapter.d.ts +25 -0
  325. package/dist/services/ide/adapters/qoder-adapter.js +57 -0
  326. package/dist/services/ide/adapters/tongyi-lingma-adapter.d.ts +16 -0
  327. package/dist/services/ide/adapters/tongyi-lingma-adapter.js +45 -0
  328. package/dist/services/ide/ide-registry.js +6 -0
  329. package/dist/services/ide/ide-types.d.ts +1 -1
  330. package/dist/services/job/job-types.d.ts +56 -56
  331. package/dist/services/job-snapshot/index.d.ts +8 -0
  332. package/dist/services/job-snapshot/index.js +7 -0
  333. package/dist/services/{job/job-resource-snapshot.d.ts → job-snapshot/snapshot.d.ts} +1 -1
  334. package/dist/services/job-snapshot/types.d.ts +7 -0
  335. package/dist/services/job-snapshot/types.js +1 -0
  336. package/dist/services/karpathy-cost/karpathy-cost-check-service.d.ts +67 -0
  337. package/dist/services/karpathy-cost/karpathy-cost-check-service.js +108 -0
  338. package/dist/services/log/retention.d.ts +16 -0
  339. package/dist/services/log/retention.js +17 -0
  340. package/dist/services/loop/loop-bee-relation-types.d.ts +6 -6
  341. package/dist/services/loop/loop-release-types.d.ts +24 -24
  342. package/dist/services/loop/monotonic-runner.d.ts +17 -11
  343. package/dist/services/loop/monotonic-runner.js +118 -79
  344. package/dist/services/memory/project-memory-service/index/kind-dispatch.d.ts +8 -0
  345. package/dist/services/memory/project-memory-service/index/kind-dispatch.js +253 -0
  346. package/dist/services/memory/project-memory-service/index/ranking.d.ts +6 -0
  347. package/dist/services/memory/project-memory-service/index/ranking.js +171 -0
  348. package/dist/services/memory/project-memory-service/index/search.d.ts +34 -0
  349. package/dist/services/memory/project-memory-service/index/search.js +194 -0
  350. package/dist/services/memory/project-memory-service/index.d.ts +9 -0
  351. package/dist/services/memory/project-memory-service/index.js +24 -0
  352. package/dist/services/memory/project-memory-service/parsers/frontmatter.d.ts +9 -0
  353. package/dist/services/memory/project-memory-service/parsers/frontmatter.js +106 -0
  354. package/dist/services/memory/project-memory-service/parsers/markdown-pure.d.ts +7 -0
  355. package/dist/services/memory/project-memory-service/parsers/markdown-pure.js +96 -0
  356. package/dist/services/memory/project-memory-service/store/atomic-write.d.ts +5 -0
  357. package/dist/services/memory/project-memory-service/store/atomic-write.js +56 -0
  358. package/dist/services/memory/project-memory-service/store/paths.d.ts +8 -0
  359. package/dist/services/memory/project-memory-service/store/paths.js +116 -0
  360. package/dist/services/memory/project-memory-service/types.d.ts +128 -0
  361. package/dist/services/memory/project-memory-service/types.js +9 -0
  362. package/dist/services/memory/project-memory-service.d.ts +1 -167
  363. package/dist/services/memory/project-memory-service.js +19 -816
  364. package/dist/services/migrate-skill-name/schema.d.ts +2 -2
  365. package/dist/services/observability/aggregation.d.ts +27 -0
  366. package/dist/services/observability/aggregation.js +72 -0
  367. package/dist/services/observability/observability-service.d.ts +73 -7
  368. package/dist/services/observability/observability-service.js +87 -1
  369. package/dist/services/openspec/artifact-boundary.d.ts +138 -0
  370. package/dist/services/openspec/artifact-boundary.js +150 -0
  371. package/dist/services/openspec/coverage-evidence-reader.d.ts +191 -0
  372. package/dist/services/openspec/coverage-evidence-reader.js +386 -0
  373. package/dist/services/openspec/openspec-archive-service.d.ts +70 -0
  374. package/dist/services/openspec/openspec-archive-service.js +320 -8
  375. package/dist/services/openspec/openspec-bridge-service.js +1 -1
  376. package/dist/services/openspec/openspec-init-service.js +1 -1
  377. package/dist/services/openspec/openspec-propose-from-doctor-service.js +1 -1
  378. package/dist/services/openspec/openspec-render-service.js +7 -4
  379. package/dist/services/openspec/openspec-scan-service.js +1 -1
  380. package/dist/services/openspec/openspec-validate-service.js +5 -4
  381. package/dist/services/preferences/preferences-service.js +10 -0
  382. package/dist/services/preferences/preferences-types.d.ts +13 -0
  383. package/dist/services/preferences/preferences-types.js +11 -0
  384. package/dist/services/qa/screenshot-archive-service.d.ts +51 -0
  385. package/dist/services/qa/screenshot-archive-service.js +134 -0
  386. package/dist/services/rd/rd-service.js +10 -11
  387. package/dist/services/rd/types.d.ts +32 -32
  388. package/dist/services/rd-swarm/rd-swarm-service.d.ts +60 -0
  389. package/dist/services/rd-swarm/rd-swarm-service.js +93 -0
  390. package/dist/services/recommendations/capability-seed-items.js +0 -1
  391. package/dist/services/recommendations/capability-seed-mappings.js +0 -1
  392. package/dist/services/recommendations/capability-seed-sources.js +0 -1
  393. package/dist/services/release/version-precheck-service.d.ts +51 -0
  394. package/dist/services/release/version-precheck-service.js +257 -0
  395. package/dist/services/scan/acceptance-coverage-service.js +1 -1
  396. package/dist/services/scan/archetype-service.js +1 -1
  397. package/dist/services/scan/existing-system-service.js +1 -1
  398. package/dist/services/scan/libraries-service.js +1 -1
  399. package/dist/services/sediment/json-schema.d.ts +40 -40
  400. package/dist/services/share/bundle-types.d.ts +12 -12
  401. package/dist/services/share/run-state-contract.d.ts +2 -2
  402. package/dist/services/skill/skill-search-service.d.ts +12 -7
  403. package/dist/services/skill/skill-search-service.js +8 -4
  404. package/dist/services/skillhub/migrations/001-initial.sql +71 -0
  405. package/dist/services/skillhub/migrations/002-loop-release.sql +32 -0
  406. package/dist/services/skillhub/migrations/003-loop-bee-relation.sql +35 -0
  407. package/dist/services/skillhub/migrations/004-loop-bee-extension.sql +65 -0
  408. package/dist/services/skillhub/migrations/005-evolution-evaluation.sql +81 -0
  409. package/dist/services/skillhub/migrations/006-crystallization-event.sql +92 -0
  410. package/dist/services/skills/hooks-settings-service.d.ts +75 -0
  411. package/dist/services/skills/hooks-settings-service.js +230 -2
  412. package/dist/services/skills/skill-registry.d.ts +1 -0
  413. package/dist/services/skills/skill-registry.js +6 -4
  414. package/dist/services/skills/skill-runbook-service.js +1 -1
  415. package/dist/services/slice/slice-check-service.js +1 -1
  416. package/dist/services/standards/main-session-monitor-ban-hook.d.ts +14 -0
  417. package/dist/services/standards/main-session-monitor-ban-hook.js +19 -0
  418. package/dist/services/standards/missing-standards-detector.d.ts +25 -0
  419. package/dist/services/standards/missing-standards-detector.js +43 -12
  420. package/dist/services/tech/tech-change-id-service.d.ts +82 -0
  421. package/dist/services/tech/tech-change-id-service.js +117 -0
  422. package/dist/services/understand/understand-hybrid-service.js +1 -1
  423. package/dist/services/understand/understand-scan-service.js +2 -2
  424. package/dist/services/upgrade/upgrade-service.js +4 -3
  425. package/dist/services/verdict/envelopes.d.ts +2 -2
  426. package/dist/services/verdict/envelopes.js +2 -2
  427. package/dist/services/verdict/verdict-aggregator.d.ts +3 -3
  428. package/dist/services/vm/vm-lease.d.ts +40 -0
  429. package/dist/services/vm/vm-lease.js +137 -0
  430. package/dist/services/workflow/autonomous-resume-writer.js +1 -1
  431. package/dist/services/workflow/pipeline-verify-gate-support.d.ts +47 -0
  432. package/dist/services/workflow/pipeline-verify-gate-support.js +194 -0
  433. package/dist/services/workflow/pipeline-verify-service.d.ts +17 -81
  434. package/dist/services/workflow/pipeline-verify-service.js +42 -218
  435. package/dist/services/workflow/pipeline-verify-types.d.ts +90 -0
  436. package/dist/services/workflow/pipeline-verify-types.js +10 -0
  437. package/dist/services/workflow/plan-reader.d.ts +1 -1
  438. package/dist/services/workflow/plan-reader.js +1 -1
  439. package/dist/services/workflow/plan-refresher.d.ts +1 -1
  440. package/dist/services/workflow/plan-refresher.js +1 -1
  441. package/dist/services/workflow/plan-trigger-detector.d.ts +1 -1
  442. package/dist/services/workflow/plan-trigger-detector.js +1 -1
  443. package/dist/services/workflow/workflow-autonomous-resume-helpers.d.ts +1 -1
  444. package/dist/services/workflow/workflow-autonomous-service.d.ts +2 -98
  445. package/dist/services/workflow/workflow-autonomous-types.d.ts +114 -0
  446. package/dist/services/workflow/workflow-autonomous-types.js +21 -0
  447. package/dist/services/workflow/workflow-router-service.js +18 -16
  448. package/dist/services/workflow/workflow-spec-lint.d.ts +13 -0
  449. package/dist/services/workflow/workflow-spec-lint.js +75 -0
  450. package/dist/services/workflow/workflow-spec-types.d.ts +100 -0
  451. package/dist/services/workflow/workflow-spec-types.js +13 -0
  452. package/dist/services/workflow/workflow-spec-yaml.d.ts +17 -0
  453. package/dist/services/workflow/workflow-spec-yaml.js +88 -0
  454. package/dist/services/workflow/workflow-spec.d.ts +11 -91
  455. package/dist/services/workflow/workflow-spec.js +16 -145
  456. package/dist/services/workspace/migrate-service.js +1 -1
  457. package/dist/services/workspace/workspace-service.js +1 -1
  458. package/dist/services/worktree/worktree-lease.d.ts +170 -0
  459. package/dist/services/worktree/worktree-lease.js +242 -0
  460. package/package.json +47 -51
  461. package/scripts/clean-dist.mjs +31 -1
  462. package/scripts/copy-templates.mjs +16 -0
  463. package/scripts/sync-version.mjs +53 -2
  464. package/skills/bee/peaks-perf-audit/SKILL.md +17 -0
  465. package/skills/bee/peaks-prd/SKILL.md +16 -0
  466. package/skills/bee/peaks-prd/test-prompts.json +12 -0
  467. package/skills/bee/peaks-qa/SKILL.md +16 -1
  468. package/skills/bee/peaks-qa/references/qa-sub-agent-dispatch.md +22 -0
  469. package/skills/bee/peaks-qa/test-prompts.json +12 -0
  470. package/skills/bee/peaks-rd/SKILL.md +29 -20
  471. package/skills/bee/peaks-rd/references/rd-sub-agent-dispatch.md +39 -0
  472. package/skills/bee/peaks-rd/test-prompts.json +12 -0
  473. package/skills/bee/peaks-reviewer/SKILL.md +17 -0
  474. package/skills/bee/peaks-sc/SKILL.md +16 -0
  475. package/skills/bee/peaks-security-audit/SKILL.md +17 -0
  476. package/skills/bee/peaks-txt/SKILL.md +16 -0
  477. package/skills/bee/peaks-txt/test-prompts.json +12 -0
  478. package/skills/bee/peaks-ui/SKILL.md +49 -43
  479. package/skills/bee/peaks-ui/test-prompts.json +12 -0
  480. package/skills/peaks-code/SKILL.md +54 -109
  481. package/skills/peaks-code/references/boundaries.md +15 -1
  482. package/skills/peaks-code/references/cron-scheduler-deployment.md +313 -0
  483. package/skills/peaks-code/references/external-skill-invocation.md +27 -0
  484. package/skills/peaks-code/references/lease-dashboard.html +224 -0
  485. package/skills/peaks-code/references/lease-stats.sample.json +26 -0
  486. package/skills/peaks-code/references/peaks-worktree-l2-enforcers.md +208 -0
  487. package/skills/peaks-code/references/periodic-checkpoint.md +4 -4
  488. package/skills/peaks-code/references/runbook.md +63 -1
  489. package/skills/peaks-code/references/startup-sequence.md +110 -0
  490. package/skills/peaks-code/references/step-0-8-gate.md +1 -1
  491. package/skills/peaks-code/references/sub-agent-dispatch.md +92 -1
  492. package/skills/peaks-code/references/worktree-governance.md +123 -0
  493. package/skills/peaks-code/test-prompts.json +12 -0
  494. package/skills/peaks-doctor/SKILL.md +1 -1
  495. package/skills/peaks-ide/SKILL.md +1 -1
  496. package/skills/peaks-solo/SKILL.md +21 -0
  497. package/skills/peaks-solo/references/triage-decision-table.md +6 -0
  498. package/skills/peaks-sop/test-prompts.json +17 -0
  499. package/dist/cli/commands/agent-commands.d.ts +0 -20
  500. package/dist/cli/commands/agent-commands.js +0 -48
  501. package/dist/cli/commands/classify-classify-commands.d.ts +0 -19
  502. package/dist/cli/commands/classify-classify-commands.js +0 -151
  503. package/dist/cli/commands/contract-commands.d.ts +0 -26
  504. package/dist/cli/commands/contract-commands.js +0 -114
  505. package/dist/cli/commands/session-auto-compact-hook-command.d.ts +0 -37
  506. package/dist/cli/commands/session-auto-compact-hook-command.js +0 -127
  507. package/dist/cli/commands/worker-commands.d.ts +0 -3
  508. package/dist/cli/commands/worker-commands.js +0 -52
  509. package/dist/services/agent/ecc-agent-service.d.ts +0 -47
  510. package/dist/services/agent/ecc-agent-service.js +0 -143
  511. package/dist/services/config/provider-service.d.ts +0 -48
  512. package/dist/services/config/provider-service.js +0 -143
  513. package/dist/services/context/dispatch-context-guard.d.ts +0 -27
  514. package/dist/services/context/dispatch-context-guard.js +0 -192
  515. package/dist/services/context/shared-channel.d.ts +0 -93
  516. package/dist/services/context/shared-channel.js +0 -308
  517. package/dist/services/filesystem/file-lock.d.ts +0 -11
  518. package/dist/services/filesystem/file-lock.js +0 -152
  519. package/dist/services/mut/assert-scanner.d.ts +0 -6
  520. package/dist/services/mut/assert-scanner.js +0 -116
  521. package/dist/services/mut/index.d.ts +0 -8
  522. package/dist/services/mut/index.js +0 -7
  523. package/dist/services/mut/mut-runner.d.ts +0 -39
  524. package/dist/services/mut/mut-runner.js +0 -29
  525. package/dist/services/mut/production-stryker.d.ts +0 -2
  526. package/dist/services/mut/production-stryker.js +0 -75
  527. package/dist/services/mut/report-builder.d.ts +0 -11
  528. package/dist/services/mut/report-builder.js +0 -110
  529. package/dist/services/mut/report-loader.d.ts +0 -31
  530. package/dist/services/mut/report-loader.js +0 -78
  531. package/dist/services/mut/thresholds.d.ts +0 -21
  532. package/dist/services/mut/thresholds.js +0 -22
  533. package/dist/services/mut/types.d.ts +0 -336
  534. package/dist/services/mut/types.js +0 -59
  535. package/dist/services/providers/minimax-provider-service.d.ts +0 -24
  536. package/dist/services/providers/minimax-provider-service.js +0 -143
  537. package/dist/services/providers/minimax-worker-service.d.ts +0 -21
  538. package/dist/services/providers/minimax-worker-service.js +0 -83
  539. package/dist/shared/fs.d.ts +0 -4
  540. package/dist/shared/fs.js +0 -26
  541. package/dist/shared/paths.d.ts +0 -6
  542. package/dist/shared/paths.js +0 -50
  543. package/dist/shared/result.d.ts +0 -22
  544. package/dist/shared/result.js +0 -46
  545. package/dist/shared/version.d.ts +0 -1
  546. package/dist/shared/version.js +0 -1
  547. package/examples/video-demo/README.md +0 -142
  548. package/examples/video-demo/out/en-closing-960.png +0 -0
  549. package/examples/video-demo/out/zh-closing-960.png +0 -0
  550. package/examples/video-demo/preview/peaks-loop-demo-en.mp4 +0 -0
  551. package/examples/video-demo/preview/peaks-loop-demo.mp4 +0 -0
  552. /package/dist/services/{job/job-resource-snapshot.js → job-snapshot/snapshot.js} +0 -0
@@ -0,0 +1,71 @@
1
+ -- 001-initial.sql: spec §3.3.1 — decomposed 6-table schema.
2
+ -- Manifest fields are first-class columns. Files are content-addressed in `blobs/` sidecar (not in this DB).
3
+
4
+ CREATE TABLE IF NOT EXISTS bee_release (
5
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
6
+ bee_name TEXT NOT NULL,
7
+ version TEXT NOT NULL,
8
+ source TEXT NOT NULL CHECK (source IN ('user')),
9
+ archived_at TEXT NOT NULL,
10
+ archived_by TEXT NOT NULL,
11
+ user_intent_raw TEXT,
12
+ description TEXT,
13
+ parent_version TEXT,
14
+ changelog TEXT,
15
+ UNIQUE(bee_name, version)
16
+ );
17
+
18
+ CREATE TABLE IF NOT EXISTS bee_release_pointer (
19
+ bee_name TEXT PRIMARY KEY,
20
+ latest_version TEXT NOT NULL,
21
+ released_at TEXT NOT NULL
22
+ );
23
+
24
+ CREATE TABLE IF NOT EXISTS bee_manifest (
25
+ release_id INTEGER PRIMARY KEY REFERENCES bee_release(id) ON DELETE CASCADE,
26
+ schema_version TEXT NOT NULL,
27
+ description TEXT NOT NULL,
28
+ segments_json TEXT NOT NULL, -- segment NAMES only; small JSON array
29
+ entrypoint_preamble TEXT,
30
+ promotion TEXT NOT NULL,
31
+ min_cycles INTEGER,
32
+ requires_human INTEGER NOT NULL,
33
+ requires_smoke INTEGER NOT NULL,
34
+ retire_on_misses INTEGER
35
+ );
36
+
37
+ CREATE TABLE IF NOT EXISTS bee_segment_ref (
38
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
39
+ release_id INTEGER NOT NULL REFERENCES bee_release(id) ON DELETE CASCADE,
40
+ segment_name TEXT NOT NULL,
41
+ inputs_json TEXT,
42
+ outputs_json TEXT,
43
+ side_effects TEXT,
44
+ UNIQUE(release_id, segment_name)
45
+ );
46
+
47
+ CREATE TABLE IF NOT EXISTS bee_file (
48
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
49
+ release_id INTEGER NOT NULL REFERENCES bee_release(id) ON DELETE CASCADE,
50
+ owner_kind TEXT NOT NULL CHECK (owner_kind IN ('bee','segment')),
51
+ owner_name TEXT NOT NULL,
52
+ path TEXT NOT NULL,
53
+ kind TEXT NOT NULL CHECK (kind IN ('markdown','script','reference','binary','other')),
54
+ size_bytes INTEGER NOT NULL,
55
+ sha256 TEXT NOT NULL,
56
+ blob_path TEXT NOT NULL,
57
+ UNIQUE(release_id, owner_kind, owner_name, path)
58
+ );
59
+
60
+ CREATE TABLE IF NOT EXISTS bee_change (
61
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
62
+ release_id INTEGER NOT NULL REFERENCES bee_release(id) ON DELETE CASCADE,
63
+ change_kind TEXT NOT NULL,
64
+ target_kind TEXT NOT NULL,
65
+ target_name TEXT NOT NULL,
66
+ detail TEXT
67
+ );
68
+
69
+ CREATE INDEX IF NOT EXISTS idx_bee_release_name_archived_at ON bee_release(bee_name, archived_at DESC);
70
+ CREATE INDEX IF NOT EXISTS idx_bee_segment_ref_release ON bee_segment_ref(release_id);
71
+ CREATE INDEX IF NOT EXISTS idx_bee_file_release_owner ON bee_file(release_id, owner_kind, owner_name);
@@ -0,0 +1,32 @@
1
+ -- 002-loop-release.sql — M1 / spec §4.1 / §7.2
2
+ -- Adds the `loop_release` table for the Loop Engineering Asset layer.
3
+ -- Non-breaking: this migration does NOT touch any 4.x `bee_release`
4
+ -- column. The new table lives alongside the existing 6-table skillhub
5
+ -- schema (see 001-initial.sql). Indexes:
6
+ -- - lifecycle_status: for `peaks loop list --status <status>` filters.
7
+ -- - scenario: for `peaks loop search --query <q>` (LIKE-based
8
+ -- full-text in M1; FTS5 promotion deferred to a
9
+ -- later slice).
10
+ -- Schema versioning: every new table carries `schema_version`.
11
+
12
+ CREATE TABLE IF NOT EXISTS loop_release (
13
+ id TEXT PRIMARY KEY,
14
+ name TEXT NOT NULL,
15
+ scenario TEXT NOT NULL,
16
+ trigger_policy TEXT NOT NULL,
17
+ success_criteria_json TEXT NOT NULL, -- JSON array of strings
18
+ interaction_policy TEXT NOT NULL,
19
+ feedback_policy TEXT NOT NULL,
20
+ evolution_policy TEXT NOT NULL,
21
+ evaluator_policy_json TEXT NOT NULL, -- JSON array of strings
22
+ linked_bees_json TEXT NOT NULL DEFAULT '[]',
23
+ run_history_json TEXT NOT NULL DEFAULT '[]',
24
+ crystallization_evidence_json TEXT NOT NULL DEFAULT '[]',
25
+ lifecycle_status TEXT NOT NULL CHECK (lifecycle_status IN ('candidate','stable','retired')),
26
+ version TEXT NOT NULL,
27
+ schema_version TEXT NOT NULL CHECK (schema_version = 'peaks.loop/1'),
28
+ archived_at TEXT NOT NULL
29
+ );
30
+
31
+ CREATE INDEX IF NOT EXISTS idx_loop_release_lifecycle_status ON loop_release(lifecycle_status);
32
+ CREATE INDEX IF NOT EXISTS idx_loop_release_scenario ON loop_release(scenario);
@@ -0,0 +1,35 @@
1
+ -- 003-loop-bee-relation.sql — M2 / spec §4.6 / §7.2
2
+ -- Adds the `loop_bee_relation` table for the Loop↔Bee coupling layer.
3
+ -- Non-breaking: this migration does NOT touch any 4.x `bee_release`
4
+ -- column. The new table lives alongside the existing skillhub schema
5
+ -- (see 001-initial.sql, 002-loop-release.sql).
6
+ --
7
+ -- Constraints:
8
+ -- - FK to loop_release(id) and bee_release(id) — referential integrity.
9
+ -- - UNIQUE(loop_release_id, bee_release_id) — no duplicate relations.
10
+ -- - Partial UNIQUE index WHERE role='main' — at most one main bee per
11
+ -- loop at the storage layer (defense in depth; the service layer
12
+ -- adds a friendlier error path).
13
+ -- - role CHECK constraint enforces the four-value union.
14
+ -- - schema_version column carries 'peaks.loop-bee-relation/1'.
15
+ --
16
+ -- The "no relation to a retired loop" rule is NOT a DB-level constraint
17
+ -- (cross-table policy; needs richer error reporting). It is enforced in
18
+ -- the LoopBeeRelationService layer.
19
+
20
+ CREATE TABLE IF NOT EXISTS loop_bee_relation (
21
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
22
+ loop_release_id TEXT NOT NULL REFERENCES loop_release(id) ON DELETE CASCADE,
23
+ bee_release_id INTEGER NOT NULL REFERENCES bee_release(id) ON DELETE CASCADE,
24
+ role TEXT NOT NULL CHECK (role IN ('main','supporting','candidate','retired')),
25
+ reason TEXT NOT NULL,
26
+ schema_version TEXT NOT NULL CHECK (schema_version = 'peaks.loop-bee-relation/1'),
27
+ created_at TEXT NOT NULL,
28
+ UNIQUE(loop_release_id, bee_release_id)
29
+ );
30
+
31
+ CREATE INDEX IF NOT EXISTS idx_loop_bee_relation_loop_id ON loop_bee_relation(loop_release_id);
32
+ CREATE INDEX IF NOT EXISTS idx_loop_bee_relation_bee_id ON loop_bee_relation(bee_release_id);
33
+ CREATE INDEX IF NOT EXISTS idx_loop_bee_relation_loop_role ON loop_bee_relation(loop_release_id, role);
34
+ CREATE UNIQUE INDEX IF NOT EXISTS idx_loop_bee_relation_one_main_per_loop
35
+ ON loop_bee_relation(loop_release_id) WHERE role = 'main';
@@ -0,0 +1,65 @@
1
+ -- 004-loop-bee-extension.sql — M3 / spec §4.1 / §4.2 / §7A
2
+ -- Adds the share / desktop extension fields to `loop_release` and
3
+ -- `bee_release`. The migration is non-breaking: every new column has
4
+ -- a DEFAULT, so existing 4.x rows continue to read cleanly with the
5
+ -- spec values applied. M3 writes the SCHEMA only — `shareable=false`
6
+ -- is NOT enforced anywhere yet; full export / desktop enforcement
7
+ -- lands in M7 (see plan m3-bee-release-extension.md).
8
+ --
9
+ -- AC-3: this migration does NOT modify any pre-existing `bee_release`
10
+ -- column. The only changes to `bee_release` are two new columns
11
+ -- appended at the end of the table:
12
+ --
13
+ -- - shareable BOOLEAN (default true)
14
+ -- - desktop_visible BOOLEAN (default true)
15
+ --
16
+ -- All other 4.x `bee_release` columns keep their definitions from
17
+ -- 001-initial.sql.
18
+ --
19
+ -- For `loop_release` we add four new columns:
20
+ --
21
+ -- - shareable BOOLEAN (default true)
22
+ -- - share_excluded_paths TEXT (default '[]' — JSON array)
23
+ -- - desktop_visible BOOLEAN (default true)
24
+ -- - export_bundle_format TEXT (default 'peaks.bundle/1')
25
+ --
26
+ -- Notes on the column choices:
27
+ -- - share_excluded_paths is TEXT (JSON-encoded array). Matches the
28
+ -- existing `loop_release` style (success_criteria_json, etc.);
29
+ -- parsing happens at the store / Zod boundary, not at SQLite.
30
+ -- - export_bundle_format is a TEXT constant. The CHECK constraint
31
+ -- below pins the column to 'peaks.bundle/1' — there is no other
32
+ -- valid value in this schema version. M7 may relax this when a
33
+ -- v2 format lands; until then the constant is hard-pinned.
34
+ -- - DEFAULT 1 / 0 covers both columns for SQLite (no native
35
+ -- BOOLEAN — the JS layer normalizes to boolean on read).
36
+ -- - The CHECK constraints on `shareable` and `desktop_visible`
37
+ -- accept only 0/1 (SQLite's BOOLEAN idiom). The Zod schema on
38
+ -- read coerces 0/1 to true/false.
39
+ --
40
+ -- Defense in depth: defaults are set both here (storage) and in the
41
+ -- Zod schema (parse boundary) so an in-memory object created from a
42
+ -- pre-M3 snapshot still parses after the migration runs.
43
+
44
+ ALTER TABLE loop_release
45
+ ADD COLUMN shareable INTEGER NOT NULL DEFAULT 1
46
+ CHECK (shareable IN (0, 1));
47
+
48
+ ALTER TABLE loop_release
49
+ ADD COLUMN share_excluded_paths TEXT NOT NULL DEFAULT '[]';
50
+
51
+ ALTER TABLE loop_release
52
+ ADD COLUMN desktop_visible INTEGER NOT NULL DEFAULT 1
53
+ CHECK (desktop_visible IN (0, 1));
54
+
55
+ ALTER TABLE loop_release
56
+ ADD COLUMN export_bundle_format TEXT NOT NULL DEFAULT 'peaks.bundle/1'
57
+ CHECK (export_bundle_format = 'peaks.bundle/1');
58
+
59
+ ALTER TABLE bee_release
60
+ ADD COLUMN shareable INTEGER NOT NULL DEFAULT 1
61
+ CHECK (shareable IN (0, 1));
62
+
63
+ ALTER TABLE bee_release
64
+ ADD COLUMN desktop_visible INTEGER NOT NULL DEFAULT 1
65
+ CHECK (desktop_visible IN (0, 1));
@@ -0,0 +1,81 @@
1
+ -- 005-evolution-evaluation.sql — M4 / spec §4.4 / §6
2
+ -- Adds the `evolution_evaluation` table for the Darwin-style ratchet
3
+ -- evaluation layer. Non-breaking: this migration does NOT touch any
4
+ -- pre-existing table. The new table lives alongside the existing
5
+ -- skillhub schema (see 001-initial.sql, 002-loop-release.sql,
6
+ -- 003-loop-bee-relation.sql, 004-loop-bee-extension.sql).
7
+ --
8
+ -- The table stores the durable evidence of an evolution round:
9
+ -- - target_kind / target_release_id / single_optimization_dimension
10
+ -- (AC-8: single editable asset + single dimension per round).
11
+ -- - before_score / after_score / score_delta_min / score_delta
12
+ -- (AC-11: numeric delta; promotion blocked when delta < delta_min).
13
+ -- - author_id / evaluator_id / skeptic_id
14
+ -- (AC-10: author != scorer; the regression skeptic is a SEPARATE
15
+ -- agent, not the same as the independent evaluator).
16
+ -- - verdict (keep / revert / needs-user-decision).
17
+ -- - user_confirmation_pointer / brief_pointer
18
+ -- (spec §4.4: pointers, not inlined big JSON BLOBs).
19
+ --
20
+ -- Schema versioning: every new table carries `schema_version`
21
+ -- pinned to the literal `peaks.evolution/1` via CHECK constraint.
22
+ --
23
+ -- All JSON-shaped payloads (diff, brief_pointer, source_traces_json)
24
+ -- are stored as TEXT and parsed at the store / Zod boundary — same
25
+ -- convention as the existing tables; no big JSON BLOB at the SQLite
26
+ -- layer.
27
+
28
+ CREATE TABLE IF NOT EXISTS evolution_evaluation (
29
+ id TEXT PRIMARY KEY,
30
+ target_kind TEXT NOT NULL CHECK (target_kind IN ('loop','bee','policy','gate','evaluator')),
31
+ target_release_id TEXT NOT NULL,
32
+ -- The M4 spec requires exactly one optimization dimension per round.
33
+ -- The TEXT column carries the dimension name; the service layer
34
+ -- (EvolutionService) enforces `dimensions.length === 1` on input.
35
+ -- A JSON array is used here only so future schema versions can
36
+ -- relax the single-dimension rule without a column-rename
37
+ -- migration; for now the array is always exactly length 1.
38
+ optimization_dimensions_json TEXT NOT NULL,
39
+ -- AC-8: target_count must be exactly 1. Stored as INTEGER for
40
+ -- explicit service-layer enforcement; CHECK pins it to 1 in this
41
+ -- schema version (a future multi-target table would relax this).
42
+ target_count INTEGER NOT NULL DEFAULT 1 CHECK (target_count = 1),
43
+ before_snapshot_json TEXT NOT NULL DEFAULT '{}',
44
+ after_snapshot_json TEXT NOT NULL DEFAULT '{}',
45
+ diff_json TEXT NOT NULL DEFAULT '{}',
46
+ before_score REAL NOT NULL,
47
+ after_score REAL NOT NULL,
48
+ score_delta_min REAL NOT NULL DEFAULT 1.0 CHECK (score_delta_min >= 0),
49
+ score_delta REAL NOT NULL,
50
+ author_id TEXT NOT NULL,
51
+ evaluator_id TEXT NOT NULL,
52
+ skeptic_id TEXT NOT NULL,
53
+ -- Verdict is the FINAL aggregation result; `needs-user-decision`
54
+ -- is the default after the scoring + skeptic step.
55
+ verdict TEXT NOT NULL CHECK (verdict IN ('keep','revert','needs-user-decision')),
56
+ -- Pointer columns (NOT inlined JSON): user_confirmation_pointer and
57
+ -- brief_pointer are spec §4.4 fields. We keep them as TEXT paths /
58
+ -- ids so the table stays small and queryable.
59
+ user_confirmation_pointer TEXT,
60
+ brief_pointer TEXT,
61
+ -- Audit columns: rubric + red_lines + source_traces are
62
+ -- JSON-encoded TEXT — same convention as the other tables.
63
+ rubric_json TEXT NOT NULL DEFAULT '{}',
64
+ red_lines_json TEXT NOT NULL DEFAULT '[]',
65
+ source_traces_json TEXT NOT NULL DEFAULT '[]',
66
+ schema_version TEXT NOT NULL CHECK (schema_version = 'peaks.evolution/1'),
67
+ created_at TEXT NOT NULL,
68
+ -- Defense in depth: the author MUST NOT equal the evaluator.
69
+ -- Cross-column CHECK rejected by older SQLite versions; we let the
70
+ -- service layer enforce this so the constraint stays portable.
71
+ CHECK (length(id) > 0)
72
+ );
73
+
74
+ CREATE INDEX IF NOT EXISTS idx_evolution_evaluation_target
75
+ ON evolution_evaluation(target_kind, target_release_id);
76
+ CREATE INDEX IF NOT EXISTS idx_evolution_evaluation_verdict
77
+ ON evolution_evaluation(verdict);
78
+ CREATE INDEX IF NOT EXISTS idx_evolution_evaluation_author
79
+ ON evolution_evaluation(author_id);
80
+ CREATE INDEX IF NOT EXISTS idx_evolution_evaluation_evaluator
81
+ ON evolution_evaluation(evaluator_id);
@@ -0,0 +1,92 @@
1
+ -- 006-crystallization-event.sql — M5 / spec §4.5 / §4.7 / §5 / §7.2
2
+ -- Adds the `crystallization_event` table for the post-run
3
+ -- crystallization layer. Non-breaking: this migration does NOT
4
+ -- touch any pre-existing table. The new table lives alongside the
5
+ -- existing skillhub schema (see 001-initial.sql, 002-loop-release.sql,
6
+ -- 003-loop-bee-relation.sql, 004-loop-bee-extension.sql,
7
+ -- 005-evolution-evaluation.sql).
8
+ --
9
+ -- The table stores the durable evidence of a crystallization event:
10
+ -- - trigger (user_explicit | llm_suggested |
11
+ -- success_default_prompt |
12
+ -- similar_task_recurrence)
13
+ -- - evidence_brief (JSON: 4 sections)
14
+ -- * what_happened (1-2 sentence factual account)
15
+ -- * why_it_matters (1-2 sentence explanation)
16
+ -- * what_learned (1-2 sentence learning)
17
+ -- * what_action (1 sentence recommended action)
18
+ -- - source_trace_pointers (JSON array of workflow trace ids)
19
+ -- - evaluator_summary (short NL summary from scorers)
20
+ -- - user_decision_summary (NL account of the user choice)
21
+ -- - created_loop_release_id (FK to loop_release, optional)
22
+ -- - updated_loop_release_id (FK to loop_release, optional)
23
+ -- - created_bee_release_id (FK to bee_release, optional)
24
+ -- - updated_bee_release_id (FK to bee_release, optional)
25
+ -- - lifecycle_status (candidate | stable | retired;
26
+ -- the EVENT's status, distinct
27
+ -- from the loop_release status).
28
+ --
29
+ -- The four-section brief (spec §4.7 / §10 RL-7) is required at the
30
+ -- service layer; the DB stores whatever JSON the service persists. A
31
+ -- schema-version bump can introduce a CHECK shape constraint on the
32
+ -- brief in a future migration; the service layer is the authoritative
33
+ -- guard today.
34
+ --
35
+ -- Schema versioning: every new table carries `schema_version` pinned
36
+ -- to the literal `peaks.crystallization/1` via CHECK constraint.
37
+ --
38
+ -- All JSON-shaped payloads (brief, source_trace_pointers, bullets)
39
+ -- are stored as TEXT and parsed at the store / Zod boundary —
40
+ -- same convention as the existing tables; no big JSON BLOB at the
41
+ -- SQLite layer.
42
+
43
+ CREATE TABLE IF NOT EXISTS crystallization_event (
44
+ id TEXT PRIMARY KEY,
45
+ trigger TEXT NOT NULL CHECK (trigger IN (
46
+ 'user_explicit',
47
+ 'llm_suggested',
48
+ 'success_default_prompt',
49
+ 'similar_task_recurrence'
50
+ )),
51
+ -- The 4-section brief. The shape guard (all four sections present)
52
+ -- is enforced at the service layer (CrystallizationService); the
53
+ -- DB stores whatever the service persists. See spec §4.7 / §10 RL-7.
54
+ evidence_brief_json TEXT NOT NULL,
55
+ evidence_bullets_json TEXT NOT NULL DEFAULT '[]',
56
+ source_trace_pointers_json TEXT NOT NULL DEFAULT '[]',
57
+ evaluator_summary TEXT NOT NULL DEFAULT '',
58
+ user_decision_summary TEXT NOT NULL DEFAULT '',
59
+ created_loop_release_id TEXT REFERENCES loop_release(id) ON DELETE SET NULL,
60
+ updated_loop_release_id TEXT REFERENCES loop_release(id) ON DELETE SET NULL,
61
+ created_bee_release_id INTEGER REFERENCES bee_release(id) ON DELETE SET NULL,
62
+ updated_bee_release_id INTEGER REFERENCES bee_release(id) ON DELETE SET NULL,
63
+ -- The EVENT's lifecycle (independent of any created/updated asset).
64
+ -- 'candidate' after crystallization; 'stable' after user-confirmed
65
+ -- promotion; 'retired' after explicit dispose. Mirrors the loop
66
+ -- status union (spec §4.1) without a 1:1 identity — these are
67
+ -- orthogonal lifecycles.
68
+ lifecycle_status TEXT NOT NULL DEFAULT 'candidate'
69
+ CHECK (lifecycle_status IN ('candidate','stable','retired')),
70
+ schema_version TEXT NOT NULL CHECK (schema_version = 'peaks.crystallization/1'),
71
+ created_at TEXT NOT NULL,
72
+ CHECK (length(id) > 0),
73
+ -- Defense in depth on the brief shape: at least one of the four
74
+ -- keys must be present in the JSON object. SQLite JSON1 (>= 3.38)
75
+ -- supports json_extract; we keep the check loose (length > 2 to
76
+ -- rule out '{}') so older SQLite still accepts the row, and rely
77
+ -- on the service-layer guard for the strict 4-section rule.
78
+ CHECK (length(evidence_brief_json) >= 2)
79
+ );
80
+
81
+ CREATE INDEX IF NOT EXISTS idx_crystallization_event_created_loop
82
+ ON crystallization_event(created_loop_release_id);
83
+ CREATE INDEX IF NOT EXISTS idx_crystallization_event_updated_loop
84
+ ON crystallization_event(updated_loop_release_id);
85
+ CREATE INDEX IF NOT EXISTS idx_crystallization_event_created_bee
86
+ ON crystallization_event(created_bee_release_id);
87
+ CREATE INDEX IF NOT EXISTS idx_crystallization_event_updated_bee
88
+ ON crystallization_event(updated_bee_release_id);
89
+ CREATE INDEX IF NOT EXISTS idx_crystallization_event_lifecycle
90
+ ON crystallization_event(lifecycle_status);
91
+ CREATE INDEX IF NOT EXISTS idx_crystallization_event_created_at
92
+ ON crystallization_event(created_at);
@@ -129,9 +129,84 @@ export type PeaksHookEntry = {
129
129
  command: string;
130
130
  event: string;
131
131
  };
132
+ /**
133
+ * The set of Skills whose use is denied at the IDE permissions layer for
134
+ * every `peaks hooks install` call. Each entry is the namespace-qualified
135
+ * skill id; the helper `formatSuperpowersDenyEntry` wraps it in the IDE's
136
+ * `UseSkill(...)` envelope.
137
+ *
138
+ * Slice 2026-07-29-worktree-layer3-deny: the list is empty-aware. To deny a
139
+ * new skill, append its id here and re-run `peaks hooks install`. The list
140
+ * is also the inverse for uninstall: `removeHookInstall` rebuilds the deny
141
+ * list by filtering out anything whose wrapped form matches one of these
142
+ * ids.
143
+ */
144
+ export declare const SUPERPOWERS_DENIED_SKILLS: ReadonlyArray<string>;
145
+ /**
146
+ * Merge the peaks-managed Skill denylist into the existing settings object.
147
+ * Preserves every other `permissions.deny` entry the user (or another tool)
148
+ * has written so the install is additive, not destructive. The output is
149
+ * always deterministic: the same input always yields the same output,
150
+ * regardless of insertion order in the source array.
151
+ *
152
+ * Defensive behavior:
153
+ * - `settings.permissions` is missing or non-object → install creates a
154
+ * fresh `permissions: { deny: [...our entries] }` object.
155
+ * - `settings.permissions.deny` is missing or non-array → install replaces
156
+ * the field with a fresh array containing only our entries.
157
+ * - Duplicate entries (any source) are collapsed to one via `new Set`.
158
+ *
159
+ * The function is pure: it does not mutate the input. Atomic write happens
160
+ * at the call site (`applyHookInstall`).
161
+ */
162
+ export declare function withSuperpowersSkillDenylist(settings: Record<string, unknown>): Record<string, unknown>;
163
+ /**
164
+ * Inverse of `withSuperpowersSkillDenylist`. Removes every peaks-managed
165
+ * `UseSkill(...)` entry from the deny list. If the resulting deny list is
166
+ * empty, the `deny` field itself is deleted; if the `permissions` object
167
+ * becomes empty, the `permissions` field itself is deleted. This is the
168
+ * uninstall path: every field we wrote must be removed exactly, and no
169
+ * other field may be touched.
170
+ *
171
+ * Pure (no mutation).
172
+ */
173
+ export declare function withoutSuperpowersSkillDenylist(settings: Record<string, unknown>): Record<string, unknown>;
174
+ /**
175
+ * Read-only introspection. Returns the deny entries that `peaks hooks
176
+ * install` would write today. Useful for `peaks hooks status` and the
177
+ * dry-run envelope.
178
+ */
179
+ export declare function listSuperpowersDenyEntries(): ReadonlyArray<string>;
132
180
  /** Default (claude-code) peaks-managed hook entries — kept as a stable export for tests. Slice #014: only the gate-enforce entry. */
133
181
  export declare const PEAKS_HOOK_ENTRIES: ReadonlyArray<PeaksHookEntry>;
134
182
  export declare function planHookInstall(scope: HookScope, projectRoot?: string, options?: HookInstallOptions): HookInstallPlan;
135
183
  export declare function applyHookInstall(scope: HookScope, projectRoot?: string, options?: HookInstallOptions): HookInstallResult;
136
184
  export declare function removeHookInstall(scope: HookScope, projectRoot?: string, options?: HookInstallOptions): HookRemoveResult;
137
185
  export declare function readHookStatus(scope: HookScope, projectRoot?: string, options?: HookInstallOptions): HookStatus;
186
+ /**
187
+ * Slice 2026-07-29-worktree-l2-extended Part 27 — trigger-style deny.
188
+ *
189
+ * In addition to the static SUPERPOWERS_DENIED_SKILLS list, peaks
190
+ * scans the existing settings file for "trigger phrases" that
191
+ * indicate the user has configured the superpowers chain (or
192
+ * any other auto-run worktree-creating tool) and appends a
193
+ * defensive deny to prevent the chain from running raw
194
+ * `git worktree add` (or `podman run`) directly.
195
+ *
196
+ * Triggers detected (substring match on the existing
197
+ * permissions.deny / permissions.allow list):
198
+ *
199
+ * - `superpowers:using-git-worktrees` — the chain's ground zero
200
+ * - `superpowers:brainstorming` etc. — the upstream skill
201
+ * - `Bash(git worktree add` — the user has explicitly
202
+ * allowed raw git worktree, which our L2 lease-aware gate
203
+ * would also intercept (defense in depth)
204
+ *
205
+ * Append-only — never replaces, never re-orders, never removes
206
+ * existing entries. Idempotent: re-running the install with
207
+ * the same input yields the same output.
208
+ */
209
+ export declare const TRIGGER_PHRASES: ReadonlyArray<string>;
210
+ export declare function withTriggeredDenyList(settings: Record<string, unknown>): Record<string, unknown>;
211
+ /** Inverse of withTriggeredDenyList: strip every deny-trigger entry. */
212
+ export declare function withoutTriggeredDenyList(settings: Record<string, unknown>): Record<string, unknown>;