peaks-loop 4.1.1 → 4.1.2

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 (776) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/README-en.md +4 -4
  3. package/README.md +25 -4
  4. package/bin/node-floor.mjs +59 -0
  5. package/bin/peaks.js +13 -0
  6. package/config/eslint/tsconfig.lint.json +2 -1
  7. package/dist/cli/cli-helpers.d.ts +0 -1
  8. package/dist/cli/cli-helpers.js +0 -1
  9. package/dist/cli/commands/_cli-error-envelope.js +0 -3
  10. package/dist/cli/commands/adapter-commands-s2a.d.ts +0 -1
  11. package/dist/cli/commands/adapter-commands.d.ts +0 -1
  12. package/dist/cli/commands/api-diff-commands.d.ts +0 -1
  13. package/dist/cli/commands/api-diff-commands.js +0 -1
  14. package/dist/cli/commands/audit-commands.js +21 -24
  15. package/dist/cli/commands/autonomous-swarm-commands.js +0 -1
  16. package/dist/cli/commands/bee-commands.d.ts +0 -2
  17. package/dist/cli/commands/bee-commands.js +0 -2
  18. package/dist/cli/commands/best-practice-scan-command.d.ts +0 -1
  19. package/dist/cli/commands/best-practice-scan-helpers.js +0 -1
  20. package/dist/cli/commands/changeset-commands.d.ts +0 -2
  21. package/dist/cli/commands/changeset-commands.js +0 -2
  22. package/dist/cli/commands/code-commands.d.ts +0 -3
  23. package/dist/cli/commands/code-commands.js +0 -3
  24. package/dist/cli/commands/code-gate-command.d.ts +0 -1
  25. package/dist/cli/commands/code-gate-command.js +0 -1
  26. package/dist/cli/commands/code-job-shape-commands-read-job-shape.d.ts +0 -1
  27. package/dist/cli/commands/code-job-shape-commands-read-job-shape.js +0 -1
  28. package/dist/cli/commands/code-job-shape-commands.d.ts +0 -2
  29. package/dist/cli/commands/code-job-shape-commands.js +0 -3
  30. package/dist/cli/commands/code-mode-gate-commands.d.ts +0 -2
  31. package/dist/cli/commands/code-mode-gate-commands.js +0 -3
  32. package/dist/cli/commands/code-mode-gate-should-pause-command.js +0 -4
  33. package/dist/cli/commands/code-mode-gate-should-pause-envelope.d.ts +0 -1
  34. package/dist/cli/commands/code-mode-gate-should-pause-envelope.js +0 -2
  35. package/dist/cli/commands/code-mode-status-command.d.ts +0 -1
  36. package/dist/cli/commands/code-mode-status-command.js +0 -1
  37. package/dist/cli/commands/code-orchestrator-can-do.d.ts +0 -1
  38. package/dist/cli/commands/code-orchestrator-can-do.js +0 -1
  39. package/dist/cli/commands/code-run-command.js +0 -1
  40. package/dist/cli/commands/code-runtime-commands.d.ts +0 -3
  41. package/dist/cli/commands/code-runtime-commands.js +0 -15
  42. package/dist/cli/commands/codegraph-command-runtime.d.ts +6 -0
  43. package/dist/cli/commands/codegraph-command-runtime.js +19 -7
  44. package/dist/cli/commands/codegraph-commands.js +20 -193
  45. package/dist/cli/commands/codegraph-init-command.d.ts +8 -0
  46. package/dist/cli/commands/codegraph-init-command.js +162 -0
  47. package/dist/cli/commands/codegraph-status-command.js +5 -6
  48. package/dist/cli/commands/compact-command.d.ts +0 -1
  49. package/dist/cli/commands/compact-command.js +0 -4
  50. package/dist/cli/commands/container-commands.d.ts +0 -1
  51. package/dist/cli/commands/container-commands.js +0 -1
  52. package/dist/cli/commands/context-commands.d.ts +0 -1
  53. package/dist/cli/commands/context-commands.js +0 -1
  54. package/dist/cli/commands/core/doctor-command.d.ts +0 -1
  55. package/dist/cli/commands/core/doctor-command.js +0 -9
  56. package/dist/cli/commands/core/memory-command.js +0 -1
  57. package/dist/cli/commands/core/session-command.js +0 -14
  58. package/dist/cli/commands/core/skill-command.js +0 -9
  59. package/dist/cli/commands/core-artifact-commands.d.ts +0 -1
  60. package/dist/cli/commands/core-artifact-commands.js +0 -1
  61. package/dist/cli/commands/cron-commands-actions.d.ts +0 -1
  62. package/dist/cli/commands/cron-commands-actions.js +0 -2
  63. package/dist/cli/commands/cron-commands-schedule.d.ts +0 -3
  64. package/dist/cli/commands/cron-commands-schedule.js +0 -1
  65. package/dist/cli/commands/cron-commands.d.ts +0 -1
  66. package/dist/cli/commands/cron-commands.js +0 -2
  67. package/dist/cli/commands/cron-scheduler-commands.d.ts +0 -1
  68. package/dist/cli/commands/cron-scheduler-commands.js +0 -1
  69. package/dist/cli/commands/cron-scheduler-persist.d.ts +0 -5
  70. package/dist/cli/commands/cron-scheduler-persist.js +0 -5
  71. package/dist/cli/commands/dashboard-summary.d.ts +0 -1
  72. package/dist/cli/commands/dispatch-commands.d.ts +0 -1
  73. package/dist/cli/commands/dispatch-commands.js +10 -37
  74. package/dist/cli/commands/dispatch-from-dag.js +0 -4
  75. package/dist/cli/commands/doctor/invoke-from-code.js +0 -1
  76. package/dist/cli/commands/e2e-verify.d.ts +0 -1
  77. package/dist/cli/commands/ecc-commands.d.ts +0 -1
  78. package/dist/cli/commands/evolution-commands.d.ts +0 -1
  79. package/dist/cli/commands/evolution-commands.js +0 -1
  80. package/dist/cli/commands/feedback-commands.d.ts +0 -1
  81. package/dist/cli/commands/feedback-commands.js +0 -2
  82. package/dist/cli/commands/fixture-commands.d.ts +0 -2
  83. package/dist/cli/commands/fresh-context-commands.d.ts +0 -1
  84. package/dist/cli/commands/gate-commands-enforce.d.ts +0 -3
  85. package/dist/cli/commands/gate-commands-enforce.js +0 -4
  86. package/dist/cli/commands/gate-commands.js +0 -2
  87. package/dist/cli/commands/governance-classify-contract-commands.d.ts +0 -3
  88. package/dist/cli/commands/governance-classify-contract-commands.js +0 -4
  89. package/dist/cli/commands/heartbeat-commands-action.js +0 -6
  90. package/dist/cli/commands/heartbeat-commands-validation.d.ts +0 -2
  91. package/dist/cli/commands/heartbeat-commands-validation.js +0 -2
  92. package/dist/cli/commands/heartbeat-commands.d.ts +0 -1
  93. package/dist/cli/commands/heartbeat-commands.js +0 -1
  94. package/dist/cli/commands/hooks-commands.js +0 -11
  95. package/dist/cli/commands/ide-commands.d.ts +0 -1
  96. package/dist/cli/commands/job-add-slice-command.d.ts +0 -2
  97. package/dist/cli/commands/job-add-slice-command.js +0 -2
  98. package/dist/cli/commands/job-commands.js +0 -4
  99. package/dist/cli/commands/lease-metrics-commands.d.ts +0 -1
  100. package/dist/cli/commands/lease-metrics-commands.js +0 -1
  101. package/dist/cli/commands/lease-stats-commands.d.ts +0 -1
  102. package/dist/cli/commands/lease-stats-commands.js +0 -1
  103. package/dist/cli/commands/log-commands.d.ts +0 -2
  104. package/dist/cli/commands/log-commands.js +0 -3
  105. package/dist/cli/commands/loop-eval-commands.js +0 -3
  106. package/dist/cli/commands/memory-commands.d.ts +0 -1
  107. package/dist/cli/commands/memory-commands.js +0 -1
  108. package/dist/cli/commands/observability-commands.d.ts +0 -6
  109. package/dist/cli/commands/observability-commands.js +0 -6
  110. package/dist/cli/commands/outer-cache-commands.js +0 -2
  111. package/dist/cli/commands/playwright-commands.d.ts +0 -1
  112. package/dist/cli/commands/playwright-commands.js +0 -1
  113. package/dist/cli/commands/polyrepo-commands.d.ts +0 -1
  114. package/dist/cli/commands/prd-commands.d.ts +0 -1
  115. package/dist/cli/commands/prd-commands.js +0 -2
  116. package/dist/cli/commands/preferences-commands.js +0 -2
  117. package/dist/cli/commands/primer-command.d.ts +0 -1
  118. package/dist/cli/commands/primer-command.js +0 -1
  119. package/dist/cli/commands/project-commands.js +0 -1
  120. package/dist/cli/commands/qa-commands.d.ts +0 -1
  121. package/dist/cli/commands/qa-commands.js +0 -2
  122. package/dist/cli/commands/release-commands.js +0 -9
  123. package/dist/cli/commands/request-commands.d.ts +0 -1
  124. package/dist/cli/commands/request-commands.js +0 -10
  125. package/dist/cli/commands/request-format-helpers.d.ts +0 -1
  126. package/dist/cli/commands/request-format-helpers.js +0 -2
  127. package/dist/cli/commands/runtime-commands.d.ts +0 -1
  128. package/dist/cli/commands/sc-commands.js +0 -1
  129. package/dist/cli/commands/session-24h-mode.d.ts +0 -1
  130. package/dist/cli/commands/session-24h-mode.js +0 -2
  131. package/dist/cli/commands/session-checkpoint-command.d.ts +0 -1
  132. package/dist/cli/commands/session-checkpoint-command.js +0 -1
  133. package/dist/cli/commands/session-resume-command.d.ts +0 -1
  134. package/dist/cli/commands/session-resume-command.js +0 -1
  135. package/dist/cli/commands/shadcn-commands.js +0 -2
  136. package/dist/cli/commands/share-commands.d.ts +0 -3
  137. package/dist/cli/commands/share-commands.js +0 -13
  138. package/dist/cli/commands/skill-search-commands.d.ts +0 -2
  139. package/dist/cli/commands/slice-commands.js +0 -2
  140. package/dist/cli/commands/slice-integrate-commands.js +0 -1
  141. package/dist/cli/commands/spill-demo-command.d.ts +0 -1
  142. package/dist/cli/commands/statusline-commands.js +0 -4
  143. package/dist/cli/commands/sub-agent/detached.js +0 -2
  144. package/dist/cli/commands/sub-agent-commands.d.ts +0 -3
  145. package/dist/cli/commands/sub-agent-shared.d.ts +0 -8
  146. package/dist/cli/commands/sub-agent-shared.js +0 -5
  147. package/dist/cli/commands/sub-agent-shutdown-commands.d.ts +0 -1
  148. package/dist/cli/commands/tech-commands.d.ts +0 -4
  149. package/dist/cli/commands/tech-commands.js +0 -4
  150. package/dist/cli/commands/vendor-detect.d.ts +0 -3
  151. package/dist/cli/commands/vendor-detect.js +0 -2
  152. package/dist/cli/commands/verdict-aggregate-command.d.ts +0 -1
  153. package/dist/cli/commands/verdict-aggregate-command.js +0 -7
  154. package/dist/cli/commands/vm-commands.d.ts +0 -1
  155. package/dist/cli/commands/vm-commands.js +5 -29
  156. package/dist/cli/commands/vm-hypervisor-probe.d.ts +27 -0
  157. package/dist/cli/commands/vm-hypervisor-probe.js +78 -0
  158. package/dist/cli/commands/vm-status-command.d.ts +3 -0
  159. package/dist/cli/commands/vm-status-command.js +50 -0
  160. package/dist/cli/commands/wave-plan-commands.d.ts +0 -1
  161. package/dist/cli/commands/web-lifecycle-commands.d.ts +0 -1
  162. package/dist/cli/commands/workflow-commands.js +0 -14
  163. package/dist/cli/commands/workflow-plan-commands-actions.js +0 -2
  164. package/dist/cli/commands/workflow-plan-commands-session.js +0 -2
  165. package/dist/cli/commands/workflow-plan-commands.d.ts +0 -1
  166. package/dist/cli/commands/workspace/clean-command.d.ts +0 -1
  167. package/dist/cli/commands/workspace/clean-command.js +0 -1
  168. package/dist/cli/commands/workspace/helpers.d.ts +0 -1
  169. package/dist/cli/commands/workspace/helpers.js +0 -1
  170. package/dist/cli/commands/workspace/init-command.d.ts +0 -6
  171. package/dist/cli/commands/workspace/init-command.js +0 -17
  172. package/dist/cli/commands/workspace/migrate-command.d.ts +0 -2
  173. package/dist/cli/commands/workspace/migrate-command.js +0 -2
  174. package/dist/cli/commands/workspace/reconcile-command.d.ts +0 -2
  175. package/dist/cli/commands/workspace/reconcile-command.js +0 -3
  176. package/dist/cli/commands/workspace-commands.d.ts +0 -2
  177. package/dist/cli/commands/workspace-commands.js +0 -4
  178. package/dist/cli/commands/worktree-auth-commands.d.ts +0 -1
  179. package/dist/cli/commands/worktree-auth-commands.js +0 -1
  180. package/dist/cli/commands/worktree-auth-grant-command.d.ts +0 -1
  181. package/dist/cli/commands/worktree-auth-grant-command.js +0 -1
  182. package/dist/cli/commands/worktree-auth-manage-commands.d.ts +0 -1
  183. package/dist/cli/commands/worktree-auth-manage-commands.js +0 -1
  184. package/dist/cli/commands/worktree-lease-commands.js +0 -1
  185. package/dist/cli/program.js +0 -7
  186. package/dist/reporters/bdd-reporter.js +0 -1
  187. package/dist/services/24h-mode/auto-engage.d.ts +0 -1
  188. package/dist/services/24h-mode/auto-engage.js +0 -1
  189. package/dist/services/24h-mode/decider.d.ts +0 -3
  190. package/dist/services/24h-mode/decider.js +0 -3
  191. package/dist/services/24h-mode/index.d.ts +0 -2
  192. package/dist/services/24h-mode/index.js +0 -2
  193. package/dist/services/24h-mode/state.d.ts +0 -1
  194. package/dist/services/24h-mode/state.js +0 -1
  195. package/dist/services/24h-mode/store.d.ts +0 -1
  196. package/dist/services/24h-mode/store.js +0 -1
  197. package/dist/services/adapter/adapter-registry.js +0 -1
  198. package/dist/services/artifacts/artifact-prerequisites.d.ts +0 -5
  199. package/dist/services/artifacts/artifact-prerequisites.js +0 -19
  200. package/dist/services/artifacts/artifact-templates.d.ts +0 -1
  201. package/dist/services/artifacts/artifact-templates.js +0 -1
  202. package/dist/services/artifacts/request-artifact-service.d.ts +0 -5
  203. package/dist/services/artifacts/request-artifact-service.js +0 -12
  204. package/dist/services/artifacts/request-artifact-state-helpers.d.ts +0 -1
  205. package/dist/services/artifacts/request-artifact-state-helpers.js +0 -1
  206. package/dist/services/audit/artifact-writer.d.ts +0 -1
  207. package/dist/services/audit/artifact-writer.js +0 -1
  208. package/dist/services/audit/decision-writer.js +3 -1
  209. package/dist/services/audit/enforcer-liveness.js +0 -1
  210. package/dist/services/audit/enforcers/active-skill-resolver.d.ts +0 -2
  211. package/dist/services/audit/enforcers/active-skill-resolver.js +0 -2
  212. package/dist/services/audit/red-line-audit-input.d.ts +11 -0
  213. package/dist/services/audit/red-line-audit-input.js +103 -0
  214. package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.d.ts +0 -1
  215. package/dist/services/audit/red-line-catalog-p2-a.js +0 -9
  216. package/dist/services/audit/types.d.ts +0 -2
  217. package/dist/services/audit/types.js +0 -2
  218. package/dist/services/audit-independent/perf-audit-service.d.ts +0 -2
  219. package/dist/services/audit-independent/security-audit-service.d.ts +0 -5
  220. package/dist/services/audit-independent/security-audit-service.js +0 -2
  221. package/dist/services/autonomous-swarm/autonomous-swarm-service.d.ts +0 -5
  222. package/dist/services/autonomous-swarm/autonomous-swarm-service.js +0 -5
  223. package/dist/services/best-practice/language-detector.js +0 -1
  224. package/dist/services/best-practice/output-formatter.d.ts +0 -1
  225. package/dist/services/best-practice/scan-orchestrator.d.ts +0 -1
  226. package/dist/services/capability-audit-service/types.d.ts +1 -3
  227. package/dist/services/capability-guard-runner/contracts/J08.js +2 -2
  228. package/dist/services/changeset/changeset-check-service.d.ts +0 -3
  229. package/dist/services/changeset/changeset-check-service.js +0 -3
  230. package/dist/services/classify/classify-service.d.ts +0 -1
  231. package/dist/services/classify/classify-service.js +0 -1
  232. package/dist/services/classify/classify-types.d.ts +0 -1
  233. package/dist/services/classify/classify-types.js +0 -1
  234. package/dist/services/code/auto-compact-lifecycle.d.ts +0 -11
  235. package/dist/services/code/auto-compact-lifecycle.js +0 -10
  236. package/dist/services/code/auto-compact-modes.d.ts +0 -3
  237. package/dist/services/code/auto-compact-modes.js +0 -3
  238. package/dist/services/code/auto-compact-orchestrator.d.ts +0 -9
  239. package/dist/services/code/auto-compact-orchestrator.js +0 -29
  240. package/dist/services/code/batch-heartbeat-poller.js +0 -1
  241. package/dist/services/code/compact-event-settle.js +0 -1
  242. package/dist/services/code/dag-orchestrator.d.ts +0 -1
  243. package/dist/services/code/dag-orchestrator.js +0 -1
  244. package/dist/services/code/mode-gate-types.d.ts +0 -2
  245. package/dist/services/code/mode-gate-types.js +0 -1
  246. package/dist/services/code/mode-gate.d.ts +0 -5
  247. package/dist/services/code/mode-gate.js +0 -5
  248. package/dist/services/code/orchestrator-can-do-advisories.d.ts +0 -2
  249. package/dist/services/code/orchestrator-can-do-advisories.js +0 -5
  250. package/dist/services/code/orchestrator-can-do.d.ts +0 -4
  251. package/dist/services/code/orchestrator-can-do.js +0 -3
  252. package/dist/services/code/status-line-renderer.js +0 -1
  253. package/dist/services/code-review/ecc-bridge.d.ts +0 -1
  254. package/dist/services/codegraph/codegraph-autorefresh.js +6 -4
  255. package/dist/services/codegraph/codegraph-backend-advice.d.ts +26 -0
  256. package/dist/services/codegraph/codegraph-backend-advice.js +166 -0
  257. package/dist/services/codegraph/codegraph-config-repair-writer.d.ts +0 -24
  258. package/dist/services/codegraph/codegraph-config-repair-writer.js +32 -73
  259. package/dist/services/codegraph/codegraph-exclude-integrity.d.ts +14 -6
  260. package/dist/services/codegraph/codegraph-exclude-integrity.js +24 -14
  261. package/dist/services/codegraph/codegraph-exclude-reconciler.d.ts +9 -2
  262. package/dist/services/codegraph/codegraph-exclude-reconciler.js +87 -18
  263. package/dist/services/codegraph/codegraph-exclude-repair.d.ts +9 -61
  264. package/dist/services/codegraph/codegraph-exclude-repair.js +67 -139
  265. package/dist/services/codegraph/codegraph-foreign-removal.d.ts +21 -0
  266. package/dist/services/codegraph/codegraph-foreign-removal.js +77 -0
  267. package/dist/services/codegraph/codegraph-index-integrity.d.ts +12 -25
  268. package/dist/services/codegraph/codegraph-index-integrity.js +84 -23
  269. package/dist/services/codegraph/codegraph-preflight-service.js +15 -6
  270. package/dist/services/codegraph/codegraph-project-config.d.ts +35 -0
  271. package/dist/services/codegraph/codegraph-project-config.js +90 -0
  272. package/dist/services/codegraph/codegraph-service.d.ts +1 -2
  273. package/dist/services/codegraph/codegraph-service.js +11 -11
  274. package/dist/services/codegraph/codegraph-upstream-layout.d.ts +24 -0
  275. package/dist/services/codegraph/codegraph-upstream-layout.js +85 -0
  276. package/dist/services/comments/comment-audit.d.ts +15 -4
  277. package/dist/services/comments/comment-audit.js +25 -4
  278. package/dist/services/comments/comment-citations.d.ts +8 -2
  279. package/dist/services/comments/comment-citations.js +31 -33
  280. package/dist/services/comments/comment-hygiene.d.ts +29 -3
  281. package/dist/services/comments/comment-hygiene.js +40 -3
  282. package/dist/services/comments/comment-prune.js +52 -4
  283. package/dist/services/comments/comment-spans.d.ts +30 -0
  284. package/dist/services/comments/comment-spans.js +266 -0
  285. package/dist/services/comments/prune-apply.d.ts +22 -0
  286. package/dist/services/comments/prune-apply.js +69 -2
  287. package/dist/services/compact/decision-tables.d.ts +0 -2
  288. package/dist/services/compact/decision-tables.js +0 -2
  289. package/dist/services/compact/request-transition-hook.js +0 -2
  290. package/dist/services/compact-history/compact-history-service.d.ts +0 -2
  291. package/dist/services/compact-history/compact-history-service.js +0 -1
  292. package/dist/services/compact-statusline/compact-lifecycle-store.js +0 -2
  293. package/dist/services/compact-statusline/compact-lifecycle-types.d.ts +0 -1
  294. package/dist/services/compact-statusline/compact-statusline-service.js +0 -4
  295. package/dist/services/config/config-rollback.js +0 -1
  296. package/dist/services/config/config-safety.d.ts +0 -1
  297. package/dist/services/config/config-safety.js +0 -1
  298. package/dist/services/config/config-service.d.ts +0 -1
  299. package/dist/services/config/config-service.js +0 -1
  300. package/dist/services/config/model-routing.d.ts +0 -3
  301. package/dist/services/config/model-routing.js +0 -5
  302. package/dist/services/container/container-lease.d.ts +0 -1
  303. package/dist/services/container/container-lease.js +0 -1
  304. package/dist/services/context/artifact-meta.js +0 -1
  305. package/dist/services/context/auto-compact-dispatcher-input.d.ts +0 -3
  306. package/dist/services/context/auto-compact-dispatcher.js +0 -14
  307. package/dist/services/context/auto-compact-reader-input.d.ts +0 -1
  308. package/dist/services/context/auto-compact-reader.d.ts +0 -2
  309. package/dist/services/context/auto-compact-reader.js +0 -7
  310. package/dist/services/context/auto-compact-types.d.ts +0 -11
  311. package/dist/services/context/auto-compact-types.js +0 -1
  312. package/dist/services/context/build-dispatch-system-prompt.d.ts +11 -29
  313. package/dist/services/context/build-dispatch-system-prompt.js +8 -27
  314. package/dist/services/context/codegraph-unavailable-block.d.ts +38 -0
  315. package/dist/services/context/codegraph-unavailable-block.js +77 -0
  316. package/dist/services/context/context-audit-hint.d.ts +0 -1
  317. package/dist/services/context/context-audit-hint.js +0 -1
  318. package/dist/services/context/context-audit.d.ts +0 -1
  319. package/dist/services/context/context-audit.js +0 -1
  320. package/dist/services/context/harness-window-config.d.ts +0 -4
  321. package/dist/services/context/harness-window-config.js +0 -4
  322. package/dist/services/context/main-session-monitor.d.ts +0 -2
  323. package/dist/services/context/main-session-monitor.js +0 -2
  324. package/dist/services/context/memory-index-reader.d.ts +0 -2
  325. package/dist/services/context/memory-index-reader.js +0 -1
  326. package/dist/services/context/memory-preflight-config.d.ts +0 -1
  327. package/dist/services/context/memory-preflight-service.d.ts +0 -1
  328. package/dist/services/context/memory-preflight-service.js +0 -3
  329. package/dist/services/context/memory-preflight-support.d.ts +0 -5
  330. package/dist/services/context/post-compact-reinjection.d.ts +0 -1
  331. package/dist/services/context/post-compact-reinjection.js +0 -1
  332. package/dist/services/context/summary-view.d.ts +0 -1
  333. package/dist/services/context/summary-view.js +0 -1
  334. package/dist/services/crystallization/crystallization-service.d.ts +5 -11
  335. package/dist/services/crystallization/crystallization-service.js +3 -11
  336. package/dist/services/crystallization/crystallization-store.d.ts +6 -6
  337. package/dist/services/dispatch/await-batch-helpers.js +0 -3
  338. package/dist/services/dispatch/await-batch.d.ts +0 -1
  339. package/dist/services/dispatch/await-batch.js +0 -4
  340. package/dist/services/dispatch/batch-counter.js +0 -1
  341. package/dist/services/dispatch/conflict-replay.d.ts +0 -1
  342. package/dist/services/dispatch/conflict-replay.js +0 -1
  343. package/dist/services/dispatch/contract-store.d.ts +0 -2
  344. package/dist/services/dispatch/contract-store.js +0 -2
  345. package/dist/services/dispatch/dispatch-record-input-types.d.ts +0 -2
  346. package/dist/services/dispatch/dispatch-record-types.d.ts +0 -10
  347. package/dist/services/dispatch/dispatch-record-upgrade-fields.js +0 -7
  348. package/dist/services/dispatch/dispatch-record-upgrade-guards.js +0 -2
  349. package/dist/services/dispatch/dispatch-record-writer.d.ts +0 -5
  350. package/dist/services/dispatch/dispatch-record-writer.js +0 -21
  351. package/dist/services/dispatch/dispatch-sub-agent.d.ts +0 -1
  352. package/dist/services/dispatch/dispatch-sub-agent.js +0 -1
  353. package/dist/services/dispatch/e2e-fixtures.js +0 -1
  354. package/dist/services/dispatch/file-overlap-wave-planner.d.ts +0 -1
  355. package/dist/services/dispatch/file-overlap-wave-planner.js +0 -1
  356. package/dist/services/dispatch/isolation-lease.d.ts +0 -2
  357. package/dist/services/dispatch/isolation-lease.js +0 -2
  358. package/dist/services/dispatch/service-shutdown.js +0 -1
  359. package/dist/services/dispatch/session-capsule.js +0 -1
  360. package/dist/services/dispatch/slice-dag-types.d.ts +0 -1
  361. package/dist/services/dispatch/slice-dag.js +0 -2
  362. package/dist/services/dispatch/stage-enum.d.ts +0 -1
  363. package/dist/services/dispatch/stage-enum.js +0 -1
  364. package/dist/services/dispatch/startup-timeout.d.ts +0 -1
  365. package/dist/services/dispatch/sub-agent-batch-await.js +0 -3
  366. package/dist/services/dispatch/sub-agent-dispatcher-types.d.ts +0 -1
  367. package/dist/services/dispatch/sub-agent-dispatcher.js +0 -2
  368. package/dist/services/dispatch/test-tool-detection.d.ts +0 -3
  369. package/dist/services/dispatch/test-tool-detection.js +0 -2
  370. package/dist/services/doctor/doctor-service/checks/codegraph-capability.js +19 -12
  371. package/dist/services/doctor/doctor-service/checks/codegraph-index-integrity.js +1 -2
  372. package/dist/services/doctor/doctor-service/checks/l3-memory-health.d.ts +0 -2
  373. package/dist/services/doctor/doctor-service/checks/l3-memory-health.js +0 -2
  374. package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.d.ts +0 -1
  375. package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.js +0 -1
  376. package/dist/services/doctor/doctor-service/checks/multi-binary-drift.d.ts +0 -1
  377. package/dist/services/doctor/doctor-service/checks/multi-binary-drift.js +0 -3
  378. package/dist/services/doctor/doctor-service/checks/workspace-layout.js +0 -2
  379. package/dist/services/doctor/doctor-service/index.d.ts +0 -1
  380. package/dist/services/doctor/doctor-service/index.js +0 -1
  381. package/dist/services/doctor/doctor-service/plugin-registry.d.ts +0 -2
  382. package/dist/services/doctor/doctor-service/plugin-registry.js +0 -2
  383. package/dist/services/doctor/doctor-service/probe-types.d.ts +0 -4
  384. package/dist/services/doctor/doctor-service/report/final-summary.d.ts +0 -1
  385. package/dist/services/doctor/doctor-service/report/final-summary.js +0 -1
  386. package/dist/services/doctor/doctor-service/types.d.ts +0 -5
  387. package/dist/services/doctor/doctor-service/types.js +0 -1
  388. package/dist/services/doctor/doctor-service.d.ts +0 -1
  389. package/dist/services/doctor/doctor-service.js +0 -2
  390. package/dist/services/env/shell-probe.js +0 -1
  391. package/dist/services/evidence/evidence-generator.js +0 -8
  392. package/dist/services/evolution/evolution-constraints.d.ts +0 -2
  393. package/dist/services/evolution/evolution-constraints.js +0 -2
  394. package/dist/services/evolution/evolution-service.d.ts +2 -12
  395. package/dist/services/evolution/evolution-service.js +0 -9
  396. package/dist/services/evolution/evolution-store.d.ts +6 -8
  397. package/dist/services/evolution/evolution-store.js +1 -3
  398. package/dist/services/evolution/evolution-types.d.ts +0 -2
  399. package/dist/services/evolution/evolution-types.js +0 -6
  400. package/dist/services/evolution/independent-evaluator-runner.d.ts +0 -3
  401. package/dist/services/evolution/independent-evaluator-runner.js +0 -1
  402. package/dist/services/evolution/regression-skeptic-runner.d.ts +0 -1
  403. package/dist/services/feedback/feedback-promotion-service.d.ts +0 -8
  404. package/dist/services/feedback/feedback-promotion-service.js +0 -10
  405. package/dist/services/feedback/promotion-artifact-evidence.d.ts +0 -1
  406. package/dist/services/feedback/promotion-artifact-evidence.js +0 -1
  407. package/dist/services/final-review/final-review-evidence-budget.d.ts +0 -3
  408. package/dist/services/final-review/final-review-evidence-budget.js +0 -5
  409. package/dist/services/final-review/final-review-evidence-sources.d.ts +0 -1
  410. package/dist/services/final-review/final-review-evidence-sources.js +0 -1
  411. package/dist/services/final-review/final-review-output-budget.d.ts +0 -1
  412. package/dist/services/final-review/final-review-output-budget.js +0 -3
  413. package/dist/services/final-review/final-review-service.d.ts +0 -1
  414. package/dist/services/final-review/final-review-service.js +0 -1
  415. package/dist/services/fixture/fixture-capture-service.js +0 -1
  416. package/dist/services/fixture/fixture-sanitize-service.d.ts +0 -3
  417. package/dist/services/fixture/fixture-sanitize-service.js +0 -3
  418. package/dist/services/fresh-context/config.js +0 -1
  419. package/dist/services/fresh-context/fresh-context-block.js +0 -1
  420. package/dist/services/fresh-context/trigger-scan.d.ts +0 -1
  421. package/dist/services/fresh-context/trigger-scan.js +0 -1
  422. package/dist/services/fuzzy-matching/fzf-pick-service.d.ts +0 -1
  423. package/dist/services/fuzzy-matching/fzf-pick-service.js +0 -1
  424. package/dist/services/handoff/handoff-parser.d.ts +0 -1
  425. package/dist/services/handoff/handoff-parser.js +0 -1
  426. package/dist/services/handoff/handoff-types.d.ts +0 -1
  427. package/dist/services/handoff/handoff-types.js +0 -1
  428. package/dist/services/handoff/handoff-writer.d.ts +0 -1
  429. package/dist/services/handoff/handoff-writer.js +0 -1
  430. package/dist/services/hooks/auto-compact-hook-install.d.ts +0 -1
  431. package/dist/services/hooks/auto-compact-hook-install.js +0 -1
  432. package/dist/services/hooks/output.d.ts +0 -1
  433. package/dist/services/hooks/output.js +0 -1
  434. package/dist/services/hooks/pre-tool-code-gate.d.ts +0 -1
  435. package/dist/services/hooks/pre-tool-code-gate.js +0 -1
  436. package/dist/services/hooks/presence-marker-detector.js +0 -1
  437. package/dist/services/hooks/worktree-authorization-gate.d.ts +0 -3
  438. package/dist/services/hooks/worktree-authorization-gate.js +0 -1
  439. package/dist/services/ide/adapters/claude-code-adapter.d.ts +0 -5
  440. package/dist/services/ide/adapters/claude-code-adapter.js +0 -11
  441. package/dist/services/ide/adapters/qoder-adapter.d.ts +0 -3
  442. package/dist/services/ide/adapters/qoder-adapter.js +0 -5
  443. package/dist/services/ide/adapters/tongyi-lingma-adapter.d.ts +0 -2
  444. package/dist/services/ide/adapters/tongyi-lingma-adapter.js +0 -2
  445. package/dist/services/ide/adapters/trae-adapter.d.ts +0 -3
  446. package/dist/services/ide/adapters/trae-adapter.js +3 -6
  447. package/dist/services/ide/adapters/zcode-adapter.js +0 -2
  448. package/dist/services/ide/current-model-detector.js +0 -1
  449. package/dist/services/ide/hook-protocol.d.ts +0 -2
  450. package/dist/services/ide/hook-protocol.js +0 -2
  451. package/dist/services/ide/ide-compact-types.d.ts +0 -7
  452. package/dist/services/ide/ide-types.d.ts +0 -12
  453. package/dist/services/ide/resource-profile.d.ts +0 -1
  454. package/dist/services/job/job-commit-verification.d.ts +0 -2
  455. package/dist/services/job/job-commit-verification.js +0 -2
  456. package/dist/services/job/job-orchestrator.d.ts +0 -1
  457. package/dist/services/job/job-orchestrator.js +0 -1
  458. package/dist/services/job/job-progress-store.d.ts +0 -2
  459. package/dist/services/job/job-progress-store.js +0 -3
  460. package/dist/services/job/job-types.js +0 -1
  461. package/dist/services/job-snapshot/snapshot.js +0 -1
  462. package/dist/services/karpathy-cost/karpathy-cost-check-service.js +0 -1
  463. package/dist/services/legacy/legacy-detector.js +0 -1
  464. package/dist/services/log/log-commands-service.d.ts +0 -2
  465. package/dist/services/log/log-commands-service.js +0 -2
  466. package/dist/services/log/logger.d.ts +0 -1
  467. package/dist/services/log/logger.js +0 -1
  468. package/dist/services/log/redact.d.ts +0 -1
  469. package/dist/services/log/redact.js +0 -1
  470. package/dist/services/log/retention.d.ts +0 -1
  471. package/dist/services/log/retention.js +0 -1
  472. package/dist/services/loop/loop-bee-relation-service.d.ts +3 -3
  473. package/dist/services/loop/loop-bee-relation-service.js +14 -13
  474. package/dist/services/loop/loop-bee-relation-store.d.ts +9 -10
  475. package/dist/services/loop/loop-bee-relation-store.js +1 -2
  476. package/dist/services/loop/loop-bee-relation-types.d.ts +1 -1
  477. package/dist/services/loop/loop-bee-relation-types.js +1 -1
  478. package/dist/services/loop/loop-release-service.d.ts +3 -3
  479. package/dist/services/loop/loop-release-service.js +1 -1
  480. package/dist/services/loop/loop-release-store.d.ts +6 -7
  481. package/dist/services/loop/loop-release-store.js +0 -1
  482. package/dist/services/loop/monotonic-guard.d.ts +0 -1
  483. package/dist/services/loop/monotonic-guard.js +0 -1
  484. package/dist/services/memory/memory-ingest-service.js +0 -1
  485. package/dist/services/memory/project-context-service.d.ts +0 -1
  486. package/dist/services/memory/project-context-service.js +0 -1
  487. package/dist/services/memory/project-memory-service/index/reindex.d.ts +0 -2
  488. package/dist/services/memory/project-memory-service/index/reindex.js +0 -1
  489. package/dist/services/memory/project-memory-service/index/search.d.ts +0 -1
  490. package/dist/services/memory/project-memory-service/index/search.js +0 -1
  491. package/dist/services/memory/project-memory-service/memory-kinds.d.ts +0 -1
  492. package/dist/services/memory/project-memory-service/memory-kinds.js +0 -1
  493. package/dist/services/memory/project-memory-service/parsers/frontmatter.d.ts +0 -1
  494. package/dist/services/memory/project-memory-service/parsers/frontmatter.js +0 -1
  495. package/dist/services/memory/project-memory-service.js +0 -1
  496. package/dist/services/mode/mode-enforcement.js +0 -1
  497. package/dist/services/mode/mode-status-service.d.ts +0 -2
  498. package/dist/services/mode/mode-status-service.js +0 -2
  499. package/dist/services/observability/aggregation.d.ts +0 -4
  500. package/dist/services/observability/aggregation.js +0 -6
  501. package/dist/services/observability/observability-schema.js +0 -1
  502. package/dist/services/observability/observability-service.d.ts +0 -5
  503. package/dist/services/observability/observability-service.js +0 -4
  504. package/dist/services/observability/report-formatter.d.ts +0 -2
  505. package/dist/services/observability/report-formatter.js +0 -2
  506. package/dist/services/openspec/artifact-boundary.d.ts +0 -4
  507. package/dist/services/openspec/artifact-boundary.js +0 -4
  508. package/dist/services/openspec/coverage-evidence-reader.d.ts +0 -1
  509. package/dist/services/openspec/coverage-evidence-reader.js +0 -1
  510. package/dist/services/polyrepo/polyrepo-dispatcher.js +0 -1
  511. package/dist/services/polyrepo/polyrepo-scanner.js +0 -1
  512. package/dist/services/polyrepo/polyrepo-service.js +0 -1
  513. package/dist/services/polyrepo/polyrepo-types.d.ts +0 -1
  514. package/dist/services/prd/best-practice-auto-trigger.d.ts +0 -2
  515. package/dist/services/prd/best-practice-auto-trigger.js +0 -2
  516. package/dist/services/prd/gate-evidence-derivation.d.ts +0 -4
  517. package/dist/services/prd/gate-evidence-derivation.js +0 -5
  518. package/dist/services/prd/handoff-auto-regen.js +0 -5
  519. package/dist/services/prd/handoff-frontmatter-shape.d.ts +0 -2
  520. package/dist/services/prd/handoff-frontmatter-shape.js +0 -2
  521. package/dist/services/prd/handoff-frontmatter.d.ts +0 -1
  522. package/dist/services/prd/handoff-frontmatter.js +0 -2
  523. package/dist/services/prd/handoff-gate-evidence.d.ts +0 -1
  524. package/dist/services/prd/handoff-gate-evidence.js +0 -4
  525. package/dist/services/prd/handoff-path-resolution.d.ts +0 -7
  526. package/dist/services/prd/handoff-path-resolution.js +0 -10
  527. package/dist/services/prd/handoff-service.d.ts +0 -2
  528. package/dist/services/prd/handoff-service.js +0 -2
  529. package/dist/services/prd/handoff-types.d.ts +0 -2
  530. package/dist/services/prd/handoff-types.js +0 -1
  531. package/dist/services/prd/project-scan-bootstrap-service.d.ts +0 -1
  532. package/dist/services/prd/project-scan-bootstrap-service.js +0 -4
  533. package/dist/services/prd/project-scan-types.d.ts +0 -1
  534. package/dist/services/prd/project-scan-types.js +0 -1
  535. package/dist/services/preferences/preferences-service.d.ts +0 -1
  536. package/dist/services/preferences/preferences-service.js +0 -5
  537. package/dist/services/preferences/preferences-types.d.ts +0 -14
  538. package/dist/services/preferences/preferences-types.js +0 -4
  539. package/dist/services/progress/progress-service.js +0 -1
  540. package/dist/services/qa/bdd-test-style-verifier.d.ts +0 -1
  541. package/dist/services/qa/bdd-test-style-verifier.js +0 -1
  542. package/dist/services/qa/browser-event-logger.d.ts +0 -1
  543. package/dist/services/qa/browser-event-logger.js +0 -1
  544. package/dist/services/qa/browser-restart-detector.d.ts +0 -1
  545. package/dist/services/qa/browser-restart-detector.js +0 -1
  546. package/dist/services/qa/browser-reuse-hint.d.ts +0 -1
  547. package/dist/services/qa/browser-reuse-hint.js +0 -1
  548. package/dist/services/qa/qa-business-review-state.js +0 -2
  549. package/dist/services/qa/screenshot-archive-service.d.ts +0 -1
  550. package/dist/services/qa/screenshot-archive-service.js +0 -1
  551. package/dist/services/rd/impl.js +0 -1
  552. package/dist/services/rd/rd-service.d.ts +0 -5
  553. package/dist/services/rd/rd-service.js +0 -5
  554. package/dist/services/rd/reviewer-dispatch-policy.d.ts +0 -4
  555. package/dist/services/rd/reviewer-dispatch-policy.js +0 -4
  556. package/dist/services/rd/standards-diagnostic.js +0 -1
  557. package/dist/services/rd/tactical-stage.js +0 -1
  558. package/dist/services/rd-swarm/rd-swarm-types.d.ts +0 -1
  559. package/dist/services/rd-swarm/rd-swarm-types.js +0 -1
  560. package/dist/services/recommendations/installed-capability-detector.d.ts +0 -1
  561. package/dist/services/recommendations/installed-capability-detector.js +0 -1
  562. package/dist/services/release/version-precheck-service.d.ts +0 -2
  563. package/dist/services/release/version-precheck-service.js +0 -3
  564. package/dist/services/retrospective/retrospective-index.d.ts +0 -1
  565. package/dist/services/retrospective/retrospective-index.js +0 -1
  566. package/dist/services/retrospective/retrospective-show.d.ts +0 -1
  567. package/dist/services/retrospective/retrospective-show.js +0 -1
  568. package/dist/services/reviewer/model-family.js +0 -1
  569. package/dist/services/reviewer/reviewer-config.js +0 -1
  570. package/dist/services/reviewer/reviewer-service.d.ts +0 -1
  571. package/dist/services/reviewer/reviewer-service.js +0 -3
  572. package/dist/services/reviewer/selection-strategies.js +0 -1
  573. package/dist/services/runtime/runtime-detector.js +0 -1
  574. package/dist/services/runtime/runtime-service.d.ts +0 -2
  575. package/dist/services/runtime/vendor-adapter.d.ts +0 -7
  576. package/dist/services/runtime/vendors/claude-code.js +0 -1
  577. package/dist/services/runtime/vendors/codex.js +0 -1
  578. package/dist/services/runtime/vendors/copilot.js +0 -1
  579. package/dist/services/sc/sc-service.js +0 -6
  580. package/dist/services/scan/acceptance-coverage-service.js +0 -2
  581. package/dist/services/scan/api-diff-recorded.d.ts +0 -1
  582. package/dist/services/scan/api-diff-recorded.js +0 -1
  583. package/dist/services/scan/api-diff-service.d.ts +0 -1
  584. package/dist/services/scan/api-diff-service.js +0 -1
  585. package/dist/services/scan/api-diff-types.d.ts +0 -1
  586. package/dist/services/scan/api-diff-types.js +0 -1
  587. package/dist/services/scan/archetype-service.js +0 -1
  588. package/dist/services/scan/file-size-policy.d.ts +0 -1
  589. package/dist/services/scan/file-size-policy.js +0 -5
  590. package/dist/services/scan/file-size-scan.d.ts +0 -1
  591. package/dist/services/security/safe-settings-path.js +0 -1
  592. package/dist/services/session/binding-store.d.ts +0 -4
  593. package/dist/services/session/binding-store.js +0 -7
  594. package/dist/services/session/caller-binding-service.d.ts +0 -6
  595. package/dist/services/session/caller-binding-service.js +0 -4
  596. package/dist/services/session/caller-id-types.d.ts +0 -3
  597. package/dist/services/session/caller-id-types.js +0 -2
  598. package/dist/services/session/getSessionDir.js +0 -1
  599. package/dist/services/session/index.js +0 -1
  600. package/dist/services/session/platform-fallbacks.d.ts +0 -3
  601. package/dist/services/session/platform-fallbacks.js +0 -3
  602. package/dist/services/session/resolve-caller-id.d.ts +0 -2
  603. package/dist/services/session/resolve-caller-id.js +0 -2
  604. package/dist/services/session/session-binding-bridge.d.ts +0 -2
  605. package/dist/services/session/session-binding-bridge.js +0 -15
  606. package/dist/services/session/session-checkpoint-service.d.ts +0 -1
  607. package/dist/services/session/session-checkpoint-service.js +0 -1
  608. package/dist/services/session/session-manager.d.ts +0 -8
  609. package/dist/services/session/session-manager.js +0 -19
  610. package/dist/services/session/session-resume-service.d.ts +0 -1
  611. package/dist/services/session/session-resume-service.js +0 -1
  612. package/dist/services/share/bundle-reader.d.ts +2 -5
  613. package/dist/services/share/bundle-reader.js +6 -8
  614. package/dist/services/share/bundle-writer.d.ts +2 -2
  615. package/dist/services/skill/resume-detector.js +0 -3
  616. package/dist/services/skill/skill-scheduler.d.ts +0 -1
  617. package/dist/services/skill/skill-scheduler.js +0 -1
  618. package/dist/services/skill/skill-search-service.d.ts +0 -2
  619. package/dist/services/skill/skill-search-service.js +0 -2
  620. package/dist/services/skillhub/release-diff.d.ts +2 -2
  621. package/dist/services/skillhub/release-export.d.ts +2 -2
  622. package/dist/services/skillhub/release-gc-blobs.d.ts +2 -2
  623. package/dist/services/skillhub/release-import.d.ts +2 -2
  624. package/dist/services/skillhub/release-import.js +2 -1
  625. package/dist/services/skillhub/release-retain.d.ts +2 -2
  626. package/dist/services/skillhub/release-retain.js +2 -1
  627. package/dist/services/skillhub/sqlite-store.d.ts +3 -3
  628. package/dist/services/skillhub/sqlite-store.js +4 -5
  629. package/dist/services/skills/hooks-codegate-superpowers.d.ts +0 -3
  630. package/dist/services/skills/hooks-codegate-superpowers.js +0 -14
  631. package/dist/services/skills/hooks-settings-service.d.ts +0 -2
  632. package/dist/services/skills/hooks-settings-service.js +0 -6
  633. package/dist/services/skills/presence-lease-service.d.ts +0 -1
  634. package/dist/services/skills/presence-lease-service.js +0 -1
  635. package/dist/services/skills/session-start-hook-constants.d.ts +0 -4
  636. package/dist/services/skills/session-start-hook-constants.js +0 -4
  637. package/dist/services/skills/skill-presence-service.d.ts +0 -8
  638. package/dist/services/skills/skill-presence-service.js +0 -13
  639. package/dist/services/skills/skill-statusline-model.d.ts +0 -6
  640. package/dist/services/skills/skill-statusline-model.js +1 -4
  641. package/dist/services/skills/skill-statusline-renderer.d.ts +0 -1
  642. package/dist/services/skills/skill-statusline-renderer.js +0 -12
  643. package/dist/services/skills/skill-statusline-service.js +0 -6
  644. package/dist/services/skills/skill-statusline-sid-suffix.d.ts +0 -2
  645. package/dist/services/skills/skill-statusline-sid-suffix.js +0 -2
  646. package/dist/services/skills/statusline-palette.d.ts +0 -2
  647. package/dist/services/skills/statusline-palette.js +0 -3
  648. package/dist/services/slice/slice-archive-service.js +0 -1
  649. package/dist/services/slice/slice-benchmark-service.d.ts +0 -1
  650. package/dist/services/slice/slice-benchmark-service.js +0 -1
  651. package/dist/services/slice/slice-check-service.js +0 -6
  652. package/dist/services/slice/slice-check-types.d.ts +0 -1
  653. package/dist/services/slice/slice-pick-service.d.ts +0 -1
  654. package/dist/services/slice/slice-pick-service.js +0 -1
  655. package/dist/services/slice/slice-review-state.js +0 -2
  656. package/dist/services/sqlite/sqlite-driver.d.ts +118 -0
  657. package/dist/services/sqlite/sqlite-driver.js +159 -0
  658. package/dist/services/standards/ide-aware-standards-service.d.ts +0 -2
  659. package/dist/services/standards/ide-aware-standards-service.js +0 -1
  660. package/dist/services/standards/loop-engineering-readiness-lint.d.ts +0 -1
  661. package/dist/services/standards/loop-engineering-readiness-lint.js +0 -1
  662. package/dist/services/standards/migrate-claude-rules-service.js +0 -3
  663. package/dist/services/standards/migrate-service.d.ts +0 -1
  664. package/dist/services/standards/migrate-service.js +0 -1
  665. package/dist/services/standards/missing-standards-detector.d.ts +0 -2
  666. package/dist/services/standards/missing-standards-detector.js +0 -3
  667. package/dist/services/standards/project-standards-service.d.ts +0 -1
  668. package/dist/services/standards/project-standards-service.js +0 -1
  669. package/dist/services/standards/standards-render.d.ts +0 -1
  670. package/dist/services/standards/standards-render.js +0 -1
  671. package/dist/services/standards/ui-library-dispatch-block.d.ts +0 -1
  672. package/dist/services/standards/ui-library-dispatch-block.js +0 -1
  673. package/dist/services/tech/tech-change-id-service.d.ts +0 -7
  674. package/dist/services/tech/tech-change-id-service.js +0 -7
  675. package/dist/services/tech/tech-service.js +0 -5
  676. package/dist/services/verdict/envelope-parsers.d.ts +0 -2
  677. package/dist/services/verdict/envelope-parsers.js +0 -2
  678. package/dist/services/verdict/envelopes.d.ts +0 -1
  679. package/dist/services/vm/vm-lease.js +0 -1
  680. package/dist/services/web/aria-node.d.ts +0 -1
  681. package/dist/services/web/bounded-output.d.ts +0 -1
  682. package/dist/services/web/bounded-output.js +0 -1
  683. package/dist/services/web/browser-acquire.js +0 -1
  684. package/dist/services/web/browser-cache-probe.js +0 -1
  685. package/dist/services/web/browser-session-manager.js +0 -1
  686. package/dist/services/web/daemon-entry.js +0 -1
  687. package/dist/services/web/daemon-registry.js +0 -1
  688. package/dist/services/web/daemon-supervisor.d.ts +4 -3
  689. package/dist/services/web/daemon-supervisor.js +4 -4
  690. package/dist/services/web/playwright-loader.js +0 -1
  691. package/dist/services/web/playwright-types.d.ts +0 -1
  692. package/dist/services/web/snapshot-pruner.js +0 -1
  693. package/dist/services/web/untrusted-envelope.d.ts +0 -1
  694. package/dist/services/web/web-artifact-paths.js +0 -1
  695. package/dist/services/web/web-client.d.ts +0 -1
  696. package/dist/services/web/web-daemon-service.js +0 -1
  697. package/dist/services/web/web-fallback.d.ts +0 -1
  698. package/dist/services/web/web-fallback.js +0 -1
  699. package/dist/services/web/web-install-service.js +0 -1
  700. package/dist/services/web/web-login-profile.js +0 -1
  701. package/dist/services/web/web-protocol.d.ts +0 -1
  702. package/dist/services/web/web-protocol.js +0 -1
  703. package/dist/services/web/web-status-report.js +0 -1
  704. package/dist/services/workflow/artifact-paths.js +0 -3
  705. package/dist/services/workflow/autonomous-resume-writer.js +0 -2
  706. package/dist/services/workflow/pipeline-verify-gate-support.d.ts +0 -5
  707. package/dist/services/workflow/pipeline-verify-gate-support.js +0 -11
  708. package/dist/services/workflow/pipeline-verify-service.d.ts +0 -2
  709. package/dist/services/workflow/pipeline-verify-service.js +0 -15
  710. package/dist/services/workflow/pipeline-verify-types.d.ts +0 -10
  711. package/dist/services/workflow/pipeline-verify-types.js +0 -2
  712. package/dist/services/workflow/plan-reader.d.ts +0 -1
  713. package/dist/services/workflow/plan-reader.js +0 -5
  714. package/dist/services/workflow/plan-refresher.js +0 -2
  715. package/dist/services/workflow/plan-trigger-detector.d.ts +0 -2
  716. package/dist/services/workflow/plan-trigger-detector.js +0 -3
  717. package/dist/services/workflow/workflow-autonomous-resume-helpers.js +0 -5
  718. package/dist/services/workflow/workflow-autonomous-service.js +0 -2
  719. package/dist/services/workflow/workflow-autonomous-types.d.ts +0 -2
  720. package/dist/services/workflow/workflow-autonomous-types.js +0 -2
  721. package/dist/services/workflow/workflow-graph-types.d.ts +0 -1
  722. package/dist/services/workflow/workflow-graph-types.js +0 -1
  723. package/dist/services/workflow/workflow-router-service.js +0 -4
  724. package/dist/services/workflow/workflow-skip-service.d.ts +0 -1
  725. package/dist/services/workflow/workflow-skip-service.js +0 -1
  726. package/dist/services/workflow/workflow-spec-lint.d.ts +0 -2
  727. package/dist/services/workflow/workflow-spec-lint.js +0 -2
  728. package/dist/services/workflow/workflow-spec-types.d.ts +0 -1
  729. package/dist/services/workflow/workflow-spec-types.js +0 -1
  730. package/dist/services/workflow/workflow-spec-yaml.d.ts +0 -2
  731. package/dist/services/workflow/workflow-spec-yaml.js +0 -2
  732. package/dist/services/workflow/workflow-spec.js +0 -1
  733. package/dist/services/workflow/workflow-state-store.js +0 -1
  734. package/dist/services/workspace/claude-settings-template.d.ts +0 -4
  735. package/dist/services/workspace/claude-settings-template.js +0 -4
  736. package/dist/services/workspace/migrate-1-4-1-service.d.ts +0 -1
  737. package/dist/services/workspace/migrate-1-4-1-service.js +0 -1
  738. package/dist/services/workspace/migrate-service.js +0 -8
  739. package/dist/services/workspace/migrate-types.d.ts +0 -4
  740. package/dist/services/workspace/migrate-types.js +0 -1
  741. package/dist/services/workspace/reconcile-migrate.d.ts +0 -3
  742. package/dist/services/workspace/reconcile-migrate.js +0 -5
  743. package/dist/services/workspace/reconcile-service.d.ts +0 -3
  744. package/dist/services/workspace/reconcile-service.js +0 -7
  745. package/dist/services/workspace/reconcile-types.d.ts +0 -5
  746. package/dist/services/workspace/sid-naming-guard.d.ts +0 -1
  747. package/dist/services/workspace/sid-naming-guard.js +0 -1
  748. package/dist/services/workspace/templates/project-scan/index.d.ts +0 -3
  749. package/dist/services/workspace/templates/project-scan/index.js +0 -3
  750. package/dist/services/workspace/workspace-claude-settings-materializer.d.ts +0 -1
  751. package/dist/services/workspace/workspace-claude-settings-materializer.js +0 -4
  752. package/dist/services/workspace/workspace-service.d.ts +0 -7
  753. package/dist/services/workspace/workspace-service.js +0 -16
  754. package/dist/services/worktree/playwright-profile.js +0 -1
  755. package/dist/services/worktree/worktree-lease-types.d.ts +0 -1
  756. package/dist/services/worktree/worktree-lease-types.js +0 -1
  757. package/dist/services/worktree/worktree-lease.d.ts +0 -2
  758. package/dist/services/worktree/worktree-lease.js +0 -2
  759. package/dist/shared/format-md-compact.d.ts +0 -2
  760. package/dist/shared/format-md-compact.js +0 -2
  761. package/dist/shared/incrementing-number.d.ts +0 -1
  762. package/dist/shared/incrementing-number.js +0 -1
  763. package/dist/shared/path-utils.d.ts +0 -1
  764. package/dist/shared/path-utils.js +0 -1
  765. package/dist/shared/runtime-root.d.ts +0 -1
  766. package/dist/shared/runtime-root.js +0 -1
  767. package/dist/shared/stale-policy.d.ts +0 -1
  768. package/dist/shared/stale-policy.js +0 -1
  769. package/package.json +12 -10
  770. package/scripts/canonical-store-link.mjs +296 -0
  771. package/scripts/canonical-store-prune.mjs +131 -0
  772. package/scripts/canonical-store.mjs +298 -0
  773. package/scripts/install-skills.mjs +175 -383
  774. package/skills/peaks-audit/SKILL.md +3 -3
  775. package/dist/services/codegraph/codegraph-include-reconciler.d.ts +0 -10
  776. package/dist/services/codegraph/codegraph-include-reconciler.js +0 -160
@@ -8,7 +8,6 @@ import { resolveCallerProjection } from '../session/resolve-caller-id.js';
8
8
  import { normalizePath } from '../../shared/path-utils.js';
9
9
  import { assertWritableProjectRoot } from '../config/config-safety.js';
10
10
  /**
11
- * Slice 2026-09-10 (rid=rebind-must-update-caller-binding): repoint the
12
11
  * calling process's own per-caller binding at the session id this init just
13
12
  * bound. `getSessionIdCanonical` reads `callers/<callerId>.json` FIRST, so a
14
13
  * binding left behind by an earlier session shadows every explicit rebind.
@@ -31,7 +30,6 @@ function rebindCurrentCallerBinding(projectRoot, sessionId) {
31
30
  return updateCallerBindingSessionId(projectRoot, callerId, sessionId);
32
31
  }
33
32
  /**
34
- * Slice 2026-06-29-change-id-root-removal: list the immediate children of
35
33
  * `.peaks/` so the legacy sibling-dir guard can enumerate date-stamped
36
34
  * residue dirs without re-implementing `readdirSync` inline. Returns
37
35
  * `[]` when the `.peaks/` dir does not exist (legitimate first-run
@@ -49,7 +47,6 @@ function listPeaksRuntimeSiblings(projectRoot) {
49
47
  }
50
48
  }
51
49
  /**
52
- * Slice 2026-06-29-change-id-root-removal: list the immediate children of
53
50
  * `.peaks/_runtime/` so the legacy sibling-dir guard can enumerate
54
51
  * date-stamped residue dirs at the runtime layer. Returns `[]` when
55
52
  * the `.peaks/_runtime/` dir does not exist.
@@ -66,7 +63,6 @@ function listRuntimeSiblings(projectRoot) {
66
63
  }
67
64
  }
68
65
  /**
69
- * Slice 2026-06-29-change-id-root-removal: returns `true` when the
70
66
  * basename matches the auto-generated session-id shape
71
67
  * `YYYY-MM-DD-<slug>` (the v2.8.3 hard-ban target). Bare dates
72
68
  * (`YYYY-MM-DD`) are NOT auto-generated and are kept as plain dates.
@@ -78,7 +74,6 @@ function isDateStampedSiblingId(name) {
78
74
  return false;
79
75
  return true;
80
76
  }
81
- // Slice 2026-06-29-change-id-root-removal: `setCurrentChangeId` and
82
77
  // `validateChangeIdOrThrow` were removed with the change-id axis. Init
83
78
  // preserves the legacy-sibling-dir guard via inline `lstatSync`; the
84
79
  // path-safety helpers moved to `shared/path-safety.ts` but this module
@@ -97,7 +92,6 @@ const PROHIBITED_SUFFIXES = [
97
92
  // Auto-generated session ID pattern: YYYY-MM-DD-session-<6位hex>
98
93
  const AUTO_SESSION_PATTERN = /^\d{4}-\d{2}-\d{2}-session-[a-f0-9]{6}$/;
99
94
  /**
100
- * Slice C10 (2026-06-24-legacy-change-id-sibling): the relative path
101
95
  * patterns under `.peaks/_runtime/<sessionId>/` that the lazy WRITER (peaks-qa,
102
96
  * peaks-rd, peaks-prd, peaks-txt, peaks-sc) creates via
103
97
  * `mkdir(parent, { recursive: true })` immediately before a write. When
@@ -196,9 +190,6 @@ export async function initWorkspace(options) {
196
190
  // the user's home. Enforced here as well as at the CLI so a non-CLI caller
197
191
  // cannot reach the same write by another door.
198
192
  assertWritableProjectRoot(options.projectRoot);
199
- // Phase 6 refactor (slice 2026-06-05-change-id-as-unit-of-work) +
200
- // slice 006 (2026-06-06-change-folder-simplify-and-lazy-role-subdirs) +
201
- // slice 2026-06-22-top-level-change-id-cleanup (2.8.3):
202
193
  // - Reviewable artifacts (rd/, qa/, prd/, txt/) live at
203
194
  // `.peaks/_runtime/<change-id>/<role>/` (tracked in git) when a change-id
204
195
  // is given. The role subdirs are NOT pre-created — the writer
@@ -206,7 +197,6 @@ export async function initWorkspace(options) {
206
197
  // dirs on demand via `mkdirSync(..., { recursive: true })`.
207
198
  // - The session dir `.peaks/_runtime/<session-id>/` (gitignored)
208
199
  // now holds ONLY the canonical `session.json` metadata. The
209
- // F3-introduced `system/` subdir is gone — slice 006 removes
210
200
  // it via `peaks workspace reconcile`; new init calls do not
211
201
  // pre-create it.
212
202
  // - The change-id dir is NOT created at top level when `--change-id`
@@ -227,7 +217,6 @@ export async function initWorkspace(options) {
227
217
  const alreadyExisted = [];
228
218
  // 1. Create the session dir (canonical location `.peaks/_runtime/<sid>/`)
229
219
  // with NO subdirs. The session dir is gitignored; the role
230
- // subdirs and the `system/` subdir are gone entirely (slice 006).
231
220
  if (await isDirectory(sessionRoot)) {
232
221
  alreadyExisted.push('.');
233
222
  }
@@ -235,13 +224,11 @@ export async function initWorkspace(options) {
235
224
  await mkdir(sessionRoot, { recursive: true });
236
225
  created.push('.');
237
226
  }
238
- // 1a. Write the per-session metadata file. Slice 006 makes
239
227
  // `.peaks/_runtime/<sid>/session.json` the durable session
240
228
  // metadata (the body's source of truth, the `peaks workspace
241
229
  // reconcile` discovery source). The file is created on first
242
230
  // init and refreshed on every subsequent init. Idempotent.
243
231
  setSessionMeta(options.projectRoot, options.sessionId, {});
244
- // 2. Slice 2026-06-29-change-id-root-removal: the change-id axis is
245
232
  // gone. The session id IS the binding — there is no separate
246
233
  // `.peaks/_runtime/current-change` file. The v2.8.3 hard-ban on
247
234
  // `.peaks/<YYYY-MM-DD-*>/` siblings still fires via the inline
@@ -339,7 +326,6 @@ export async function initWorkspace(options) {
339
326
  // Either: existing session dir is empty (true leftover, no user data),
340
327
  // or the caller explicitly authorised a rebind. Overwrite.
341
328
  setCurrentSessionBinding(options.projectRoot, options.sessionId);
342
- // Slice 2026-09-10 (rid=rebind-must-update-caller-binding): an
343
329
  // explicit rebind must ALSO repoint this caller's per-caller binding.
344
330
  // `getSessionIdCanonical` prefers `callers/<callerId>.json`, so leaving
345
331
  // it untouched shadowed the rebind for every command resolving through
@@ -350,7 +336,6 @@ export async function initWorkspace(options) {
350
336
  rebindCurrentCallerBinding(options.projectRoot, options.sessionId);
351
337
  bound = true;
352
338
  }
353
- // Slice 2026-06-16-peaks-code-auto-scaffold (RD#7):
354
339
  // - Always run the detector and surface the descriptor so the CLI can
355
340
  // put it on stderr + into the JSON envelope's `data.standardsMissing`.
356
341
  // - When `initStandards: true` AND the detector reports missing, run
@@ -404,7 +389,6 @@ import { materializeClaudeSettingsLocal } from './workspace-claude-settings-mate
404
389
  export { materializeClaudeSettingsLocal } from './workspace-claude-settings-materializer.js';
405
390
  import { writeGeneratedArtifactsStamp } from './generated-artifacts-stamp.js';
406
391
  /**
407
- * Slice C10 (2026-06-24-legacy-change-id-sibling): whole-dir shape check
408
392
  * for the legacy sibling `.peaks/_runtime/<sessionId>/`. Returns `true` ONLY when
409
393
  * every leaf path under the sibling matches one of
410
394
  * `WRITER_ALLOWED_RELATIVE_PATTERNS` AND no entry is a symlink (anywhere
@@ -2,7 +2,6 @@
2
2
  * playwright-profile — deterministic Chromium user-data-dir +
3
3
  * profile-name pair generator for a (session, dispatch) tuple.
4
4
  *
5
- * Slice 2026-08-01-subagent-merge-and-e2e (Task 2). Each sub-agent
6
5
  * dispatch with `--isolation worktree` MUST land its Playwright MCP
7
6
  * browser session in a unique Chromium profile so concurrent
8
7
  * dispatches do not share cookies / localStorage / IndexedDB. The
@@ -2,7 +2,6 @@
2
2
  * worktree-lease-types — the pure declaration surface of the worktree lease
3
3
  * store (`worktree-lease.ts`).
4
4
  *
5
- * Slice 2026-07-29-worktree-l2-extended Part 1 owns the lease behavior; this
6
5
  * module owns only the shapes (lifecycle status, lease record, creation draft,
7
6
  * and the list-read result). `worktree-lease.ts` imports and re-exports every
8
7
  * name here, so importers keep resolving them from the original path.
@@ -2,7 +2,6 @@
2
2
  * worktree-lease-types — the pure declaration surface of the worktree lease
3
3
  * store (`worktree-lease.ts`).
4
4
  *
5
- * Slice 2026-07-29-worktree-l2-extended Part 1 owns the lease behavior; this
6
5
  * module owns only the shapes (lifecycle status, lease record, creation draft,
7
6
  * and the list-read result). `worktree-lease.ts` imports and re-exports every
8
7
  * name here, so importers keep resolving them from the original path.
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * worktree-lease — pure-function lease store for `peaks worktree spawn`.
3
3
  *
4
- * Slice 2026-07-29-worktree-l2-extended Part 1. This is the Layer 2
5
4
  * governance complement to Layer 3 (`permissions.deny` for the superpowers
6
5
  * chain) and Layer 1 (sub-agent dispatch prompt refusal). Together the
7
6
  * three layers close the superpowers-chain jailbreak that previously
@@ -11,7 +10,6 @@
11
10
  * directory path as an argument and returns structured data. Atomic
12
11
  * filesystem writes happen at the call site (CLI command), keeping the
13
12
  * helpers trivially testable. The CLI surface lives in
14
- * `src/cli/commands/worktree-spawn-commands.ts`.
15
13
  *
16
14
  * Why a separate lease (vs reusing `peaks worktree auth grant`):
17
15
  * - `auth grant` is a single-shot, short-lived token file consulted by
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * worktree-lease — pure-function lease store for `peaks worktree spawn`.
3
3
  *
4
- * Slice 2026-07-29-worktree-l2-extended Part 1. This is the Layer 2
5
4
  * governance complement to Layer 3 (`permissions.deny` for the superpowers
6
5
  * chain) and Layer 1 (sub-agent dispatch prompt refusal). Together the
7
6
  * three layers close the superpowers-chain jailbreak that previously
@@ -11,7 +10,6 @@
11
10
  * directory path as an argument and returns structured data. Atomic
12
11
  * filesystem writes happen at the call site (CLI command), keeping the
13
12
  * helpers trivially testable. The CLI surface lives in
14
- * `src/cli/commands/worktree-spawn-commands.ts`.
15
13
  *
16
14
  * Why a separate lease (vs reusing `peaks worktree auth grant`):
17
15
  * - `auth grant` is a single-shot, short-lived token file consulted by
@@ -2,7 +2,6 @@
2
2
  * format-md-compact — single source of truth for whitespace / decoration
3
3
  * normalization across every CLI body-output path.
4
4
  *
5
- * Slice 023 (R3) — `peaks project memories:show`, `peaks retrospective show`,
6
5
  * and `peaks request show` (per-artifact) all funnel their `body` field through
7
6
  * this helper so the LLM-consumed output is free of blank-line padding,
8
7
  * decorative `---` rules, and frontmatter `description:` field-name repeats
@@ -11,7 +10,6 @@
11
10
  * inline emphasis, code spans).
12
11
  *
13
12
  * Pure function: no fs, no I/O. Easy to unit-test (see
14
- * `tests/unit/shared/format-md-compact.test.ts`).
15
13
  */
16
14
  export interface FormatMdCompactOptions {
17
15
  /** Preserve code-fence (``` ... ```) and frontmatter (--- ... ---) content. Default true. */
@@ -2,7 +2,6 @@
2
2
  * format-md-compact — single source of truth for whitespace / decoration
3
3
  * normalization across every CLI body-output path.
4
4
  *
5
- * Slice 023 (R3) — `peaks project memories:show`, `peaks retrospective show`,
6
5
  * and `peaks request show` (per-artifact) all funnel their `body` field through
7
6
  * this helper so the LLM-consumed output is free of blank-line padding,
8
7
  * decorative `---` rules, and frontmatter `description:` field-name repeats
@@ -11,7 +10,6 @@
11
10
  * inline emphasis, code spans).
12
11
  *
13
12
  * Pure function: no fs, no I/O. Easy to unit-test (see
14
- * `tests/unit/shared/format-md-compact.test.ts`).
15
13
  */
16
14
  import { ATX_HEADING_RE, collapseMultiBlanks, computeSetextUnderlines, isDecorativeHorizontalRule, isFenceCloseLine, isFenceOpenLine, isTableLine, splitFrontmatter } from './format-md-compact-internals.js';
17
15
  const FENCE_TRIPLE_BACKTICK = '```';
@@ -19,7 +19,6 @@ export declare function getNextNumber(dirPath: string): number;
19
19
  * Exported separately so lookup paths (e.g. `request-artifact-service.ts`)
20
20
  * can compute the SAME slug the writer produced and match on-disk filenames
21
21
  * case-insensitively — the writer lowercases, so a mixed-case request id
22
- * like `2026-09-06-split-batchA` lands as `...-split-batcha.md`.
23
22
  */
24
23
  export declare function slugifyDescription(description: string): string;
25
24
  export declare function buildNumberedFilename(number: number, description: string): string;
@@ -52,7 +52,6 @@ const MAX_FILENAME_SLUG_LENGTH = MAX_FILENAME_LENGTH - 7;
52
52
  * Exported separately so lookup paths (e.g. `request-artifact-service.ts`)
53
53
  * can compute the SAME slug the writer produced and match on-disk filenames
54
54
  * case-insensitively — the writer lowercases, so a mixed-case request id
55
- * like `2026-09-06-split-batchA` lands as `...-split-batcha.md`.
56
55
  */
57
56
  export function slugifyDescription(description) {
58
57
  return description
@@ -67,7 +67,6 @@ export declare function stablePath(path: string): string;
67
67
  * disk stays the real path (see `writeSessionFile`).
68
68
  *
69
69
  * Lifted from `src/services/session/session-manager.ts` in slice
70
- * `2026-08-04-rid-002-bridge-canonicalize` so both `session-manager.ts`
71
70
  * and `session-binding-bridge.ts` share a single canonicalization
72
71
  * authority.
73
72
  */
@@ -116,7 +116,6 @@ export function stablePath(path) {
116
116
  * disk stays the real path (see `writeSessionFile`).
117
117
  *
118
118
  * Lifted from `src/services/session/session-manager.ts` in slice
119
- * `2026-08-04-rid-002-bridge-canonicalize` so both `session-manager.ts`
120
119
  * and `session-binding-bridge.ts` share a single canonicalization
121
120
  * authority.
122
121
  */
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * The one seam through which a `.peaks/_runtime` path is built.
3
3
  *
4
- * Slice 2026-09-15 (runtime-path-unrepresentable). Three attempts to *detect*
5
4
  * a caller-supplied id reaching a runtime join all failed the same way: the
6
5
  * shipped text rule caught 4 of 12 fixture shapes where the name-based
7
6
  * predicate it replaced caught 8, and the version that reached 10 of 12 gave
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * The one seam through which a `.peaks/_runtime` path is built.
3
3
  *
4
- * Slice 2026-09-15 (runtime-path-unrepresentable). Three attempts to *detect*
5
4
  * a caller-supplied id reaching a runtime join all failed the same way: the
6
5
  * shipped text rule caught 4 of 12 fixture shapes where the name-based
7
6
  * predicate it replaced caught 8, and the version that reached 10 of 12 gave
@@ -2,7 +2,6 @@
2
2
  * stale-policy — pure helper for stale detection and filtering on memory
3
3
  * and (future) retrospective entries.
4
4
  *
5
- * Slice 023 (R3) applies this to memory only (`peaks project memories:show`
6
5
  * and the underlying `readMemoryIndex` load path). The retrospective index
7
6
  * loader shares the same shape (`updatedAt: string`) and will be wired to
8
7
  * the same helper in a future slice.
@@ -2,7 +2,6 @@
2
2
  * stale-policy — pure helper for stale detection and filtering on memory
3
3
  * and (future) retrospective entries.
4
4
  *
5
- * Slice 023 (R3) applies this to memory only (`peaks project memories:show`
6
5
  * and the underlying `readMemoryIndex` load path). The retrospective index
7
6
  * loader shares the same shape (`updatedAt: string`) and will be wired to
8
7
  * the same helper in a future slice.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "peaks-loop",
3
- "version": "4.1.1",
3
+ "version": "4.1.2",
4
4
  "description": "Loop Engineering CLI — workflow primitive / loop guards / evaluators / slice orchestration",
5
5
  "author": "SquabbyZ",
6
6
  "keywords": [
@@ -65,6 +65,7 @@
65
65
  },
66
66
  "files": [
67
67
  "bin/peaks.js",
68
+ "bin/node-floor.mjs",
68
69
  "dist/cli/index.js",
69
70
  "dist/**/*.js",
70
71
  "dist/**/*.d.ts",
@@ -74,6 +75,9 @@
74
75
  "scripts/copy-templates.mjs",
75
76
  "scripts/sync-version.mjs",
76
77
  "scripts/install-skills.mjs",
78
+ "scripts/canonical-store.mjs",
79
+ "scripts/canonical-store-link.mjs",
80
+ "scripts/canonical-store-prune.mjs",
77
81
  "scripts/watch.mjs",
78
82
  "skills/**",
79
83
  "!skills/**/test-prompts.json",
@@ -105,22 +109,21 @@
105
109
  ]
106
110
  },
107
111
  "engines": {
108
- "node": ">=20.0.0"
112
+ "node": ">=24.0.0"
109
113
  },
110
114
  "dependencies": {
111
115
  "@alibaba-group/open-code-review": "^1.8.9",
112
- "@colbymchenry/codegraph": "0.7.10",
116
+ "@colbymchenry/codegraph": "1.6.2",
113
117
  "@upstash/context7-mcp": "^4.0.2",
114
- "better-sqlite3": "^12.11.1",
115
118
  "commander": "^12.1.0",
116
119
  "fzf": "^0.5.2",
117
120
  "picomatch": "4.0.4",
118
121
  "yaml": "^2.9.0",
119
122
  "zod": "^4.4.3",
120
- "peaks-loop-internal-runtime": "0.0.41",
121
- "peaks-loop-mut": "0.1.55",
122
- "peaks-loop-shared": "0.0.90",
123
- "peaks-loop-shared-channel": "0.0.58"
123
+ "peaks-loop-internal-runtime": "0.0.42",
124
+ "peaks-loop-shared-channel": "0.0.59",
125
+ "peaks-loop-mut": "0.1.56",
126
+ "peaks-loop-shared": "0.0.91"
124
127
  },
125
128
  "devDependencies": {
126
129
  "@changesets/cli": "2.31.1",
@@ -128,8 +131,7 @@
128
131
  "@stryker-mutator/core": "^8.7.1",
129
132
  "@stryker-mutator/typescript-checker": "^8.7.1",
130
133
  "@stryker-mutator/vitest-runner": "^9.6.1",
131
- "@types/better-sqlite3": "^7.6.13",
132
- "@types/node": "^22.10.2",
134
+ "@types/node": "^24.19.1",
133
135
  "@types/picomatch": "4.0.3",
134
136
  "@typescript-eslint/eslint-plugin": "8.66.0",
135
137
  "@typescript-eslint/parser": "8.66.0",
@@ -0,0 +1,296 @@
1
+ #!/usr/bin/env node
2
+ //
3
+ // The canonical store's FILE-shaped entry point — one `.md` asset per entry, not a
4
+ // tree. `canonical-store.mjs` owns the copy and the link for DIRECTORY assets
5
+ // (skills, linked with a junction); this module owns them for `agents` and
6
+ // `output-styles`, where the entry is a single file and the only link Windows will
7
+ // take is a FILE SYMLINK, which needs developer mode or Administrator.
8
+ //
9
+ // WHY IT IS A SEPARATE MODULE — three behaviours with no counterpart in the
10
+ // directory case, each one a place the slice could have gone silently wrong:
11
+ //
12
+ // 1. THE FALLBACK IS REPORTED. When the symlink is refused the entry is written as
13
+ // a REAL COPY — today's behaviour, reused — and the return value says
14
+ // `fallback: { mode: 'copy', … }`. A degradation that carries no reason is
15
+ // indistinguishable from a success; that lesson is already paid for here.
16
+ //
17
+ // 2. OWNERSHIP BY PROVENANCE, NOT BY STRING EQUALITY. The pre-canonical-store
18
+ // installer sidecarred `resolve(recorded) === resolve(sourcePath)` against the
19
+ // PACKAGE path of the installing version — measured on a real machine, a path
20
+ // with a NODE VERSION inside it (`…\nvm\v24.21.0\node_modules\…`). See
21
+ // `isOwnedLegacyEntry` for what replaced it, and why both of its arms matter.
22
+ //
23
+ // 3. A COPY MUST NOT FREEZE. The fallback copy is detected as ours and kept
24
+ // byte-equal to the canonical copy on every run, so a refusal still propagates
25
+ // upgrades. It does NOT retry the symlink: a retry deletes and rebuilds the file
26
+ // each run, which breaks the installer's mtime idempotence assertion.
27
+
28
+ import { randomUUID } from 'node:crypto';
29
+ import {
30
+ existsSync,
31
+ lstatSync,
32
+ mkdirSync,
33
+ readFileSync,
34
+ realpathSync,
35
+ renameSync,
36
+ symlinkSync,
37
+ unlinkSync,
38
+ writeFileSync
39
+ } from 'node:fs';
40
+ import { dirname } from 'node:path';
41
+
42
+ import {
43
+ MANAGED_MARKER_SUFFIX,
44
+ ensureCanonicalCopy,
45
+ linkResolvesTo,
46
+ readManagedTarget,
47
+ writeManagedMarker
48
+ } from './canonical-store.mjs';
49
+
50
+ /** Codes that mean "this host refused to create the link", not "the link is wrong". */
51
+ const LINK_REFUSED_CODES = new Set(['EPERM', 'EACCES', 'UNKNOWN', 'ENOTSUP', 'EINVAL']);
52
+
53
+ /** The `kind` each family wrote into its pre-canonical-store JSON sidecar. */
54
+ const LEGACY_MARKER_KIND = Object.freeze({ agents: 'agent', 'output-styles': 'output-style' });
55
+
56
+ /** Scratch prefix for the atomic copy; never a valid asset name (assets start with a letter). */
57
+ const TEMP_PREFIX = '.peaks-tmp-';
58
+
59
+ function getPathStats(path) {
60
+ try {
61
+ return lstatSync(path);
62
+ } catch {
63
+ return null;
64
+ }
65
+ }
66
+
67
+ /** `\\?\C:\x` and `\\?\UNC\srv\share` are spellings of a path, not other paths. */
68
+ function stripLongPathPrefix(value) {
69
+ const uncPrefix = '\\\\?\\UNC\\';
70
+ if (value.startsWith(uncPrefix)) return `\\\\${value.slice(uncPrefix.length)}`;
71
+ const prefix = '\\\\?\\';
72
+ return value.startsWith(prefix) ? value.slice(prefix.length) : value;
73
+ }
74
+
75
+ /** The resolved, case-folded identity of a path, or null when it does not resolve. */
76
+ function resolveIdentity(path) {
77
+ let resolved;
78
+ try {
79
+ resolved = realpathSync(path);
80
+ } catch {
81
+ return null;
82
+ }
83
+ const normalized = stripLongPathPrefix(resolved);
84
+ return process.platform === 'win32' ? normalized.toLowerCase() : normalized;
85
+ }
86
+
87
+ /** Does the recorded provenance TEXT name the canonical entry? Realpath on both sides. */
88
+ function provenanceNamesCanonicalPath(recorded, canonicalPath) {
89
+ if (typeof recorded !== 'string' || recorded.length === 0) return false;
90
+ const recordedIdentity = resolveIdentity(recorded);
91
+ const canonicalIdentity = resolveIdentity(canonicalPath);
92
+ return recordedIdentity !== null && recordedIdentity === canonicalIdentity;
93
+ }
94
+
95
+ /**
96
+ * The sidecar shape written before the canonical store existed: JSON naming the
97
+ * package path the file was copied from, plus a content hash. Parsed, never trusted.
98
+ */
99
+ function parseLegacyMarker(recorded) {
100
+ if (typeof recorded !== 'string' || !recorded.startsWith('{')) return null;
101
+ try {
102
+ const marker = JSON.parse(recorded);
103
+ const assetName = marker?.agentName ?? marker?.outputStyleName;
104
+ if (marker?.version !== 1 || typeof marker.kind !== 'string') return null;
105
+ if (typeof assetName !== 'string' || typeof marker.sourcePath !== 'string') return null;
106
+ return { kind: marker.kind, assetName, sourcePath: marker.sourcePath };
107
+ } catch {
108
+ return null;
109
+ }
110
+ }
111
+
112
+ /** A link is ours when it points at the canonical copy, or when it points at nothing. */
113
+ function isOwnedLink(entryPath, canonicalPath, recorded) {
114
+ if (linkResolvesTo(entryPath, canonicalPath)) return true;
115
+ if (!existsSync(entryPath)) return true;
116
+ return recorded !== null && linkResolvesTo(entryPath, recorded);
117
+ }
118
+
119
+ /**
120
+ * The LEGACY arm of the ownership test, and the fix for the freeze this slice exists
121
+ * to close. A recorded package path is a version-scoped fact, so it can only be
122
+ * describing one of two things, and BOTH of them are ours:
123
+ *
124
+ * a recorded path that NO LONGER RESOLVES — an earlier peaks-loop install, whose
125
+ * package has since been replaced or removed. This is the arm the old code
126
+ * lacked entirely: it demanded string equality with the path of the version
127
+ * installing RIGHT NOW, so from the first `npm i -g peaks-loop@latest` onward
128
+ * the comparison was false and stayed false, freezing the agent with no error.
129
+ * a recorded path that IS the package we are installing from — the in-place upgrade
130
+ * (`npm i -g` replacing the same directory). Here the old string comparison was
131
+ * TRUE, but the code still skipped: it only reached the rewrite branch when the
132
+ * content hash MATCHED (`getManagedPeaksAgentIdentity` returns null on any hash
133
+ * difference), so it rewrote identical bytes and skipped every real upgrade —
134
+ * the opposite of the "SHA differs → overwrite" its own comment promised.
135
+ *
136
+ * A recorded path that resolves to some OTHER live package stays untouched: that is a
137
+ * second installation, not a stale one, and taking it over would be a regression.
138
+ * Compared through `resolveIdentity` — realpath, `\\?\` stripped, case-folded — never
139
+ * by string: two spellings of the same path are one path, and the s2 slice already paid
140
+ * for that lesson.
141
+ */
142
+ function isOwnedLegacyEntry({ kind, name, legacy, sourcePath }) {
143
+ if (legacy === null) return false;
144
+ if (legacy.kind !== LEGACY_MARKER_KIND[kind]) return false;
145
+ if (legacy.assetName !== name) return false;
146
+ const recordedIdentity = resolveIdentity(legacy.sourcePath);
147
+ if (recordedIdentity === null) return true;
148
+ return recordedIdentity === resolveIdentity(sourcePath);
149
+ }
150
+
151
+ /**
152
+ * May peaks-loop replace or delete `entryPath`? A real directory, a foreign link and a
153
+ * file with no sidecar are all "no".
154
+ *
155
+ * A LINK — ours when it resolves to the canonical copy, when it DANGLES (a link whose
156
+ * target is gone is still a link we wrote), or when the sidecar's recorded
157
+ * path is what it resolves to. Identity is `realpath`, never the string:
158
+ * `\\?\` prefixes and case spellings differ from call to call.
159
+ * A FILE — ours when the sidecar beside it says so: either it names the canonical
160
+ * path (what this module writes), or it is the legacy shape above.
161
+ */
162
+ function isOwnedFileEntry({ entryPath, canonicalPath, kind, name, sourcePath, recorded }) {
163
+ const stats = getPathStats(entryPath);
164
+ if (!stats) return false;
165
+ if (stats.isSymbolicLink()) return isOwnedLink(entryPath, canonicalPath, recorded);
166
+ if (recorded === null) return false;
167
+ if (provenanceNamesCanonicalPath(recorded, canonicalPath)) return true;
168
+ return isOwnedLegacyEntry({ kind, name, legacy: parseLegacyMarker(recorded), sourcePath });
169
+ }
170
+
171
+ /** True when `entryPath` already holds exactly the bytes the canonical copy holds. */
172
+ function holdsCanonicalBytes(entryPath, canonicalPath) {
173
+ try {
174
+ return readFileSync(entryPath).equals(readFileSync(canonicalPath));
175
+ } catch {
176
+ return false;
177
+ }
178
+ }
179
+
180
+ /**
181
+ * What is at the entry path right now, as one of four verdicts the caller acts on:
182
+ * `absent` (write a link or the fallback copy), `foreign` (leave it alone), `copy` (a
183
+ * real copy WE wrote on a host that refused a link, already current) or `ours` (ours,
184
+ * but not the link we want — replace it). `stats` tells "link" from "repair".
185
+ */
186
+ function existingEntryVerdict({ entryPath, canonicalPath, kind, name, sourcePath }) {
187
+ const stats = getPathStats(entryPath);
188
+ if (stats === null) return { stats: null, verdict: 'absent' };
189
+ const recorded = readManagedTarget(entryPath);
190
+ if (!isOwnedFileEntry({ entryPath, canonicalPath, kind, name, sourcePath, recorded })) {
191
+ return { stats, verdict: 'foreign' };
192
+ }
193
+ const settled =
194
+ !stats.isSymbolicLink() &&
195
+ provenanceNamesCanonicalPath(recorded, canonicalPath) &&
196
+ holdsCanonicalBytes(entryPath, canonicalPath);
197
+ return { stats, verdict: settled ? 'copy' : 'ours' };
198
+ }
199
+
200
+ /** Write the canonical bytes beside the entry and swap them in, so no reader sees half. */
201
+ function writeRealCopy(canonicalPath, entryPath) {
202
+ mkdirSync(dirname(entryPath), { recursive: true });
203
+ const tempPath = `${entryPath}${TEMP_PREFIX}${randomUUID()}`;
204
+ writeFileSync(tempPath, readFileSync(canonicalPath));
205
+ renameSync(tempPath, entryPath);
206
+ }
207
+
208
+ /** A settled fallback copy: nothing to fix, but the degradation must still be visible. */
209
+ function settledCopyResult({ copied, entryPath }) {
210
+ return {
211
+ ...copied,
212
+ linkAction: 'copied',
213
+ fallback: {
214
+ mode: 'copy',
215
+ code: null,
216
+ reason: `${entryPath} is a real copy: this host refused the symlink on an earlier run`
217
+ }
218
+ };
219
+ }
220
+
221
+ /**
222
+ * Replace whatever is at the entry path with a link to `copied.canonicalPath` — or,
223
+ * when this host refuses the link, with a real copy plus a reported reason.
224
+ */
225
+ function linkOrCopyEntry({ copied, linkPath, current, createFileLink }) {
226
+ if (current !== null) {
227
+ unlinkSync(linkPath);
228
+ const markerPath = `${linkPath}${MANAGED_MARKER_SUFFIX}`;
229
+ if (existsSync(markerPath)) unlinkSync(markerPath);
230
+ }
231
+ mkdirSync(dirname(linkPath), { recursive: true });
232
+ try {
233
+ createFileLink(copied.canonicalPath, linkPath, 'file');
234
+ writeManagedMarker(linkPath, copied.canonicalPath);
235
+ return { ...copied, linkAction: current === null ? 'linked' : 'repaired', fallback: null };
236
+ } catch (error) {
237
+ const code = error?.code;
238
+ if (!LINK_REFUSED_CODES.has(code)) throw error;
239
+ writeRealCopy(copied.canonicalPath, linkPath);
240
+ // Provenance records the CANONICAL path even here, so a later run recognises the
241
+ // copy as ours and keeps it current instead of reading it as user-authored.
242
+ writeManagedMarker(linkPath, copied.canonicalPath);
243
+ const message = error instanceof Error ? error.message : String(error);
244
+ return {
245
+ ...copied,
246
+ linkAction: 'copied',
247
+ fallback: {
248
+ mode: 'copy',
249
+ code: code ?? null,
250
+ reason: `${linkPath} could not be linked: ${message}`
251
+ }
252
+ };
253
+ }
254
+ }
255
+
256
+ /**
257
+ * Store one single-file asset canonically, then point the IDE entry at that copy —
258
+ * a symlink when the host allows one, a real copy when it does not.
259
+ *
260
+ * @param {{
261
+ * kind: 'agents' | 'output-styles',
262
+ * name: string,
263
+ * sourcePath: string,
264
+ * linkPath?: string,
265
+ * createFileLink?: (target: string, path: string, type: string) => void
266
+ * }} options
267
+ * `createFileLink` exists so the refused-symlink arm can be MEASURED on a host where
268
+ * symlinks are permitted (this one). Without it the fallback branch would be
269
+ * unreachable in the test suite, and an unverified branch is an unverified claim.
270
+ * Defaults to `fs.symlinkSync`.
271
+ */
272
+ export function reconcileCanonicalFileEntry(options) {
273
+ const { kind, name, sourcePath, linkPath } = options;
274
+ const copied = ensureCanonicalCopy({ kind, name, sourcePath });
275
+ const skipped = { ...copied, linkAction: 'skipped', fallback: null };
276
+ if (copied.action === 'unmanaged') return skipped;
277
+ if (typeof linkPath !== 'string' || linkPath.length === 0) return skipped;
278
+ if (linkResolvesTo(linkPath, copied.canonicalPath)) {
279
+ return { ...copied, linkAction: 'unchanged', fallback: null };
280
+ }
281
+ const entry = existingEntryVerdict({
282
+ entryPath: linkPath,
283
+ canonicalPath: copied.canonicalPath,
284
+ kind,
285
+ name,
286
+ sourcePath
287
+ });
288
+ if (entry.verdict === 'foreign') return skipped;
289
+ if (entry.verdict === 'copy') return settledCopyResult({ copied, entryPath: linkPath });
290
+ return linkOrCopyEntry({
291
+ copied,
292
+ linkPath,
293
+ current: entry.stats,
294
+ createFileLink: options.createFileLink ?? symlinkSync
295
+ });
296
+ }