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
@@ -0,0 +1,266 @@
1
+ // src/services/comments/comment-spans.ts
2
+ //
3
+ // WHERE THE COMMENTS ACTUALLY ARE, read from the text the way a lexer reads it.
4
+ //
5
+ // version of this reader was line-local: a line was a comment if it began with `//`, a
6
+ // block opener, or `*`, and a code line's trailing comment was `raw.indexOf('//')`
7
+ // guarded by a quote-count parity check. Applying the pruner to the real tree then wrote
8
+ // a corrupted file. `feedback-promotion-service.ts` holds a one-line template literal
9
+ // whose CONTENT starts with a double slash — it is a snippet the CLI prints for users:
10
+ //
11
+ // snippet: `// src/services/code/mode-gate.ts\n// 1. Add to HardFloorCategory union…`,
12
+ //
13
+ // The reader saw code + trailing comment, the pruner cut at the first double slash, and
14
+ // the result was an unterminated template literal committed into `src/`. The quote parity
15
+ // guard could not have caught it: the text before the cut contains NO quotes at all, so
16
+ // its count is even, and "even" looked safe. Parity of a count is not the same as knowing
17
+ // what character you are inside of.
18
+ //
19
+ // So this walks the file as ONE stream with an explicit notion of where it is: code, a
20
+ // single- or double-quoted string, a template literal (whose `${ … }` re-enters code, so
21
+ // a nested template, or a real comment, inside an interpolation follows the same rules),
22
+ // a regex literal, a line comment, or a block comment.
23
+ //
24
+ // REGEX IS NOT OPTIONAL DETAIL, and finding that out is why this file is bigger than the
25
+ // bug it fixes. `/https?:\/\//g` — a shape this repository has a hundred files of —
26
+ // carries a real adjacent pair of slashes, made of an escaped one next to the closing
27
+ // delimiter. A stream that does not know it is inside a regex reads that pair as a
28
+ // comment and would cut code through it: the same accident as the template literal above,
29
+ // reached from a different direction. Whether a `/` opens a regex or divides is decided by
30
+ // what could end a value before it, which is the standard test; a word is only a value if
31
+ // it is not `return`/`typeof`/`case`/…, because `return /x/` is the one place the naive
32
+ // version of that test is wrong.
33
+ //
34
+ // ONE MACHINE, TWO QUESTIONS. `commentSpans` asks "where are the comments";
35
+ // `endsInsideLiteral` asks "does this text stop inside something open". Both run the same
36
+ // walk below, because two copies of a state machine is the defect class this repository
37
+ // files most often — and the second question is the one the prune proof had to learn to
38
+ // ask: `startsWith` is true of every truncation, so it cannot tell a revealed comment
39
+ // from a string cut in half.
40
+ //
41
+ // A HANDLER PER REGION, not one function of nested ifs: the first working version was a
42
+ // 126-line loop that both `max-lines-per-function` and `complexity` refused, and they were
43
+ // right — `HANDLERS` below is the state diagram, where a single else-chain was not.
44
+ //
45
+ // NOT A PARSER, AND DELIBERATELY SO: `typescript` is a devDependency, so product code
46
+ // cannot import it without handing the shipped CLI a runtime dependency. The parity
47
+ // between this walk and the real TypeScript lexer is asserted in
48
+ // `tests/unit/comments/comment-scan-parity.test.ts`, which MAY use `ts` — the check lives
49
+ // where the dependency already is, instead of the dependency following the check into
50
+ // every user's `node_modules`.
51
+ /**
52
+ * Words after which a `/` is a regex, not division. `return /x/` is the case that makes
53
+ * "an identifier ends a value" wrong often enough to matter.
54
+ */
55
+ const VALUE_ENDING_BEFORE_REGEX = /^(?:return|typeof|instanceof|in|of|new|delete|void|throw|case|do|else|yield|await)$/;
56
+ const char = (w, offset = 0) => w.source.charAt(w.at + offset);
57
+ /** Report the comment that opened at `spanStart`. */
58
+ function emitSpan(w, end, endLine) {
59
+ w.emit({
60
+ start: w.spanStart,
61
+ end,
62
+ line: w.spanLine,
63
+ endLine,
64
+ text: w.source.slice(w.spanStart, end)
65
+ });
66
+ }
67
+ /** A finished word: only a non-keyword one can end a value. */
68
+ function endWord(w) {
69
+ if (w.word === '')
70
+ return;
71
+ w.afterValue = !VALUE_ENDING_BEFORE_REGEX.test(w.word);
72
+ w.word = '';
73
+ }
74
+ function inLineComment(w) {
75
+ if (char(w) !== '\n')
76
+ return;
77
+ emitSpan(w, w.at, w.line - 1);
78
+ w.region = 'code';
79
+ w.afterValue = false;
80
+ }
81
+ function inBlockComment(w) {
82
+ if (char(w) !== '*' || char(w, 1) !== '/')
83
+ return;
84
+ emitSpan(w, w.at + 2, w.line);
85
+ w.at += 1;
86
+ w.region = 'code';
87
+ w.afterValue = false;
88
+ }
89
+ function inString(w) {
90
+ const c = char(w);
91
+ if (c === '\\')
92
+ w.at += 1;
93
+ else if (c === (w.region === 'single' ? "'" : '"')) {
94
+ w.region = 'code';
95
+ w.afterValue = true;
96
+ }
97
+ else if (c === '\n') {
98
+ // An unterminated string cannot survive to a newline in valid source. Resuming as
99
+ // code keeps one stray quote from deciding that the rest of the FILE is a string,
100
+ // which is the failure mode that turns every later comment invisible.
101
+ w.region = 'code';
102
+ w.afterValue = false;
103
+ }
104
+ }
105
+ function inTemplate(w) {
106
+ const c = char(w);
107
+ if (c === '\\')
108
+ w.at += 1;
109
+ else if (c === '`') {
110
+ w.region = 'code';
111
+ w.afterValue = true;
112
+ }
113
+ else if (c === '$' && char(w, 1) === '{') {
114
+ w.interpolations.push(w.at);
115
+ w.at += 1;
116
+ w.region = 'code';
117
+ w.afterValue = false;
118
+ }
119
+ }
120
+ /** A regex, or the inside of its `[…]` class where `/` is an ordinary character. */
121
+ function inRegex(w) {
122
+ const c = char(w);
123
+ if (c === '\\')
124
+ w.at += 1;
125
+ else if (c === '[')
126
+ w.region = 'class';
127
+ else if (c === ']' && w.region === 'class')
128
+ w.region = 'regex';
129
+ else if (c === '/' && w.region === 'regex') {
130
+ w.region = 'code';
131
+ w.afterValue = true;
132
+ }
133
+ else if (c === '\n') {
134
+ // No regex crosses a line, so a newline means the `/` was division after all.
135
+ w.region = 'code';
136
+ w.afterValue = false;
137
+ }
138
+ }
139
+ /** A `}` in code: it closes the innermost open `${`, and only that one. */
140
+ function closeInterpolation(w) {
141
+ w.afterValue = true;
142
+ if (w.interpolations.length === 0)
143
+ return;
144
+ w.interpolations.pop();
145
+ w.region = 'template';
146
+ }
147
+ /** Enter a string or template region, or report that this character starts none. */
148
+ function enterLiteral(w, c) {
149
+ if (c !== "'" && c !== '"' && c !== '`')
150
+ return false;
151
+ w.region = c === "'" ? 'single' : c === '"' ? 'double' : 'template';
152
+ w.afterValue = false;
153
+ return true;
154
+ }
155
+ /**
156
+ * A slash in code. A comment opens on `//` or a block opener; a lone slash is a regex
157
+ * exactly where a value cannot have just ended, and division everywhere else.
158
+ */
159
+ function readSlash(w, next) {
160
+ if (next === '/' || next === '*') {
161
+ w.region = next === '/' ? 'line' : 'block';
162
+ w.spanStart = w.at;
163
+ w.spanLine = w.line;
164
+ w.afterValue = false;
165
+ return;
166
+ }
167
+ w.region = w.afterValue ? 'code' : 'regex';
168
+ w.afterValue = false;
169
+ }
170
+ /**
171
+ * What each bracket says about "has a value just ended": an opener means the next slash
172
+ * cannot be division, a closer means it can. A table so `inCode` stays a reader's size.
173
+ */
174
+ const BRACKET_ENDS_VALUE = {
175
+ '(': false,
176
+ '[': false,
177
+ ')': true,
178
+ ']': true
179
+ };
180
+ function inCode(w) {
181
+ const c = char(w);
182
+ if (/[A-Za-z0-9_$]/.test(c)) {
183
+ w.word += c;
184
+ return;
185
+ }
186
+ endWord(w);
187
+ if (enterLiteral(w, c))
188
+ return;
189
+ if (c === '{')
190
+ w.afterValue = false;
191
+ else if (c === '}')
192
+ closeInterpolation(w);
193
+ else if (c in BRACKET_ENDS_VALUE)
194
+ w.afterValue = BRACKET_ENDS_VALUE[c] ?? false;
195
+ else if (c === '/')
196
+ readSlash(w, char(w, 1));
197
+ else if (!/\s/.test(c))
198
+ w.afterValue = false;
199
+ }
200
+ /** One handler per state. THIS TABLE IS THE STATE DIAGRAM — read the regions off it. */
201
+ const HANDLERS = {
202
+ code: inCode,
203
+ single: inString,
204
+ double: inString,
205
+ template: inTemplate,
206
+ regex: inRegex,
207
+ class: inRegex,
208
+ line: inLineComment,
209
+ block: inBlockComment
210
+ };
211
+ /**
212
+ * Walk `source`, report every comment, and return the region the text ENDED in.
213
+ *
214
+ * The return value is what makes `endsInsideLiteral` possible without a second machine: a
215
+ * caller that truncated some text wants to know whether the survivor is complete.
216
+ */
217
+ function walkCode(source, onComment) {
218
+ const w = {
219
+ source,
220
+ at: 0,
221
+ line: 1,
222
+ region: 'code',
223
+ afterValue: false,
224
+ word: '',
225
+ interpolations: [],
226
+ spanStart: 0,
227
+ spanLine: 1,
228
+ emit: onComment
229
+ };
230
+ while (w.at < source.length) {
231
+ // Counted BEFORE dispatch, so a line comment closing on a newline reports the line
232
+ // it was written on, not the one after it. A handler that consumes a second character
233
+ // (an escape, a `*/`) advances `at` itself and the driver's step lands past it.
234
+ if (source.charAt(w.at) === '\n')
235
+ w.line += 1;
236
+ HANDLERS[w.region](w);
237
+ w.at += 1;
238
+ }
239
+ endWord(w);
240
+ if (w.region === 'block' || w.region === 'line')
241
+ emitSpan(w, source.length, w.line);
242
+ return w.region;
243
+ }
244
+ /**
245
+ * Every comment in `source`, in order.
246
+ *
247
+ * `text` is sliced from the original so a caller can cut at `start` and keep the code
248
+ * that was already there — which is the operation the pruner must get exactly right.
249
+ */
250
+ export function commentSpans(source) {
251
+ const spans = [];
252
+ walkCode(source, (span) => spans.push(span));
253
+ return spans;
254
+ }
255
+ /**
256
+ * Does this code stop INSIDE something open?
257
+ *
258
+ * The question the comment-only proof had to learn to ask. `original.startsWith(kept)` is
259
+ * true of EVERY truncation, so it cannot tell a revealed comment from a string cut in
260
+ * half; a prefix that ends inside a quote, a template or a regex is a different program,
261
+ * whatever it starts with. This is what would have refused the write that left
262
+ * `snippet: \`` in `src/`.
263
+ */
264
+ export function endsInsideLiteral(code) {
265
+ return walkCode(code, () => { }) !== 'code';
266
+ }
@@ -49,6 +49,28 @@ export declare function actionsByFile(actions: readonly PruneAction[]): Map<stri
49
49
  * so a dry run reports the refusals a real run would hit.
50
50
  */
51
51
  export declare function proofViolations(before: readonly string[], after: readonly string[], actions: readonly PruneAction[]): string[];
52
+ /**
53
+ * The blank lines a set of drops ORPHANS.
54
+ *
55
+ * A comment standing alone between two blanks is the only thing separating two blocks:
56
+ *
57
+ * }
58
+ * ← blank
59
+ * ← blank
60
+ * type AuditEnvelopeGuard<T> = …
61
+ *
62
+ * Deleting the comment joins the two blanks into a double blank, which is not what the
63
+ * file said before and not what any formatter will keep. So the drop owns that blank line
64
+ * — it is the residue of a comment removal, not an edit of someone's whitespace. Only a
65
+ * blank that becomes adjacent to another blank THROUGH a drop is claimed here: a double
66
+ * blank the repository already carries is left exactly where it is, because the pruner did
67
+ * not make it and has no business "fixing" it.
68
+ *
69
+ * ONE HELPER, BOTH CALLERS: `pruneFileLines` removes these and `proofViolations` allows
70
+ * them. A second copy of this rule is the defect class this whole feature answers, so the
71
+ * writer and the checker ask the same function the same question.
72
+ */
73
+ export declare function orphanedBlanks(before: readonly string[], dropped: ReadonlySet<number>): Set<number>;
52
74
  /** Apply one file's actions to its lines, in the plan's own terms. */
53
75
  export declare function pruneFileLines(lines: readonly string[], actions: readonly PruneAction[]): string[];
54
76
  /**
@@ -9,6 +9,7 @@
9
9
  */
10
10
  import { existsSync, readFileSync, writeFileSync } from 'node:fs';
11
11
  import { join } from 'node:path';
12
+ import { endsInsideLiteral } from './comment-spans.js';
12
13
  /**
13
14
  * Read a file, or report that it is not there — a prune never creates one.
14
15
  *
@@ -62,12 +63,17 @@ export function actionsByFile(actions) {
62
63
  */
63
64
  export function proofViolations(before, after, actions) {
64
65
  const dropped = new Set(actions.filter((a) => a.mode === 'drop-line').map((a) => a.line));
66
+ // The blanks the drops orphan are removed on purpose too — the SAME function the writer
67
+ // uses decides, so the proof can never be persuaded to allow more than the writer does.
68
+ const removed = new Set(dropped);
69
+ for (const blank of orphanedBlanks(before, dropped))
70
+ removed.add(blank);
65
71
  const stripped = new Set(actions.filter((a) => a.mode === 'strip-trailing').map((a) => a.line));
66
72
  const violations = [];
67
73
  let afterAt = 0;
68
74
  before.forEach((original, index) => {
69
75
  const line = index + 1;
70
- if (dropped.has(line))
76
+ if (removed.has(line))
71
77
  return; // deleted on purpose
72
78
  if (stripped.has(line)) {
73
79
  // The only thing a strip may do is reveal the code that was already there, so
@@ -77,6 +83,13 @@ export function proofViolations(before, after, actions) {
77
83
  afterAt += 1;
78
84
  if (!original.startsWith(kept))
79
85
  violations.push(`line ${line}: code text changed`);
86
+ // The prefix test above is true of EVERY truncation, which is how a strip that
87
+ // cut a template literal in half passed it. `startsWith` says nothing about
88
+ // whether what survives is still complete code, so that is asked separately.
89
+ // refused the write that left `snippet: \`` in `src/`.)
90
+ else if (endsInsideLiteral(kept)) {
91
+ violations.push(`line ${line}: strip left an unterminated literal — the code changed`);
92
+ }
80
93
  return;
81
94
  }
82
95
  if (after[afterAt] !== original)
@@ -87,14 +100,68 @@ export function proofViolations(before, after, actions) {
87
100
  violations.push(`produced ${after.length - afterAt} extra line(s)`);
88
101
  return violations;
89
102
  }
103
+ /**
104
+ * The blank lines a set of drops ORPHANS.
105
+ *
106
+ * A comment standing alone between two blanks is the only thing separating two blocks:
107
+ *
108
+ * }
109
+ * ← blank
110
+ * ← blank
111
+ * type AuditEnvelopeGuard<T> = …
112
+ *
113
+ * Deleting the comment joins the two blanks into a double blank, which is not what the
114
+ * file said before and not what any formatter will keep. So the drop owns that blank line
115
+ * — it is the residue of a comment removal, not an edit of someone's whitespace. Only a
116
+ * blank that becomes adjacent to another blank THROUGH a drop is claimed here: a double
117
+ * blank the repository already carries is left exactly where it is, because the pruner did
118
+ * not make it and has no business "fixing" it.
119
+ *
120
+ * ONE HELPER, BOTH CALLERS: `pruneFileLines` removes these and `proofViolations` allows
121
+ * them. A second copy of this rule is the defect class this whole feature answers, so the
122
+ * writer and the checker ask the same function the same question.
123
+ */
124
+ export function orphanedBlanks(before, dropped) {
125
+ const orphaned = new Set();
126
+ let lastKept = 0; // 1-based line number of the last line that survived
127
+ for (let index = 0; index < before.length; index += 1) {
128
+ const line = index + 1;
129
+ if (dropped.has(line))
130
+ continue;
131
+ const isBlank = (before[index] ?? '').trim() === '';
132
+ if (isBlank && lastKept > 0 && (before[lastKept - 1] ?? '').trim() === '') {
133
+ // Every original line between the two blanks was dropped, or this blank is the
134
+ // join the drop created. Anything else was a double blank before this run began.
135
+ // A blank is claimed ONLY when a drop actually sits between it and the previous
136
+ // surviving blank: `between` must be non-empty, because `[].every(…)` is true and
137
+ // an empty gap is a double blank the repository already had — which this run did
138
+ // not make and has no business touching.
139
+ const between = range(lastKept + 1, line - 1);
140
+ if (between.length > 0 && between.every((n) => dropped.has(n)))
141
+ orphaned.add(line);
142
+ }
143
+ lastKept = line;
144
+ }
145
+ return orphaned;
146
+ }
147
+ /** Inclusive integer range, empty when `from > to`. */
148
+ function range(from, to) {
149
+ const out = [];
150
+ for (let n = from; n <= to; n += 1)
151
+ out.push(n);
152
+ return out;
153
+ }
90
154
  /** Apply one file's actions to its lines, in the plan's own terms. */
91
155
  export function pruneFileLines(lines, actions) {
92
156
  const drop = new Set(actions.filter((a) => a.mode === 'drop-line').map((a) => a.line));
157
+ const gone = new Set(drop);
158
+ for (const blank of orphanedBlanks(lines, drop))
159
+ gone.add(blank);
93
160
  const strip = new Map(actions.filter((a) => a.mode === 'strip-trailing').map((a) => [a.line, a.comment]));
94
161
  const out = [];
95
162
  lines.forEach((original, index) => {
96
163
  const line = index + 1;
97
- if (drop.has(line))
164
+ if (gone.has(line))
98
165
  return;
99
166
  if (strip.has(line)) {
100
167
  // Cut where the scan's comment text starts, not at the first `//` in the line:
@@ -1,5 +1,4 @@
1
1
  /**
2
- * Strategic-compact decision tables (slice 2026-07-01-strategic-compact-cli).
3
2
  *
4
3
  * Pure data + lookup helpers. No I/O. The byte-for-byte text mirrors the
5
4
  * "Compaction Decision Guide" + "What Survives Compaction" tables in
@@ -9,7 +8,6 @@
9
8
  * The `peaks compact recommend` + `peaks compact survival` + `peaks
10
9
  * compact dry-run` primitives read from these tables; any change to the
11
10
  * upstream skill table must be mirrored here and re-asserted by the
12
- * `tests/unit/cli/compact-command.test.ts` regression suite.
13
11
  */
14
12
  export type Phase = 'research' | 'planning' | 'implementation' | 'testing' | 'debugging';
15
13
  export declare const PHASES: readonly Phase[];
@@ -1,5 +1,4 @@
1
1
  /**
2
- * Strategic-compact decision tables (slice 2026-07-01-strategic-compact-cli).
3
2
  *
4
3
  * Pure data + lookup helpers. No I/O. The byte-for-byte text mirrors the
5
4
  * "Compaction Decision Guide" + "What Survives Compaction" tables in
@@ -9,7 +8,6 @@
9
8
  * The `peaks compact recommend` + `peaks compact survival` + `peaks
10
9
  * compact dry-run` primitives read from these tables; any change to the
11
10
  * upstream skill table must be mirrored here and re-asserted by the
12
- * `tests/unit/cli/compact-command.test.ts` regression suite.
13
11
  */
14
12
  export const PHASES = [
15
13
  'research',
@@ -1,5 +1,4 @@
1
1
  /**
2
- * Slice-boundary pre-compact hook (slice 2026-07-01-strategic-compact-cli).
3
2
  *
4
3
  * The RD → QA and QA → final-review slice-boundary transitions go
5
4
  * through `peaks request transition`. When the active session is in
@@ -19,7 +18,6 @@
19
18
  * auto-compact orchestrator asks the harness to compact and reports that
20
19
  * it is waiting. It does not refuse sub-agent dispatch — peaks-loop has no
21
20
  * executor for a running session, so a refusal gated nothing and deadlocked
22
- * the runner (slice 2026-09-13-auto-compact-trigger-ownership).
23
21
  */
24
22
  import { existsSync, readFileSync } from 'node:fs';
25
23
  import { join } from 'node:path';
@@ -11,7 +11,6 @@ export interface CompactHistoryEvent {
11
11
  readonly checkpointPath: string;
12
12
  readonly dispatchMessage: string;
13
13
  /**
14
- * Slice 2026-09-13-auto-compact-trigger-ownership (T4): the window this
15
14
  * dispatch divided by. `beforeRatio * windowTokens` is the token point
16
15
  * peaks-loop asked the harness to compact at.
17
16
  */
@@ -27,7 +26,6 @@ export interface CompactHistoryEvent {
27
26
  /** `observed` rows only: the measured post-compact ratio. */
28
27
  readonly afterRatio?: number;
29
28
  /**
30
- * rid `2026-09-13-compact-event-settle`: what the HARNESS said caused the
31
29
  * compaction — `manual` (a user ran `/compact`) or `auto` (the harness's own
32
30
  * window fired). Written only by the `PostCompact` hook path, which is the
33
31
  * only path a harness reports it on.
@@ -1,6 +1,5 @@
1
1
  // src/services/compact-history/compact-history-service.ts
2
2
  //
3
- // Slice 2026-07-30-compact-visibility (slice 1/4). Pure-function
4
3
  // reader for the .peaks/_runtime/<sessionId>/compact-history.jsonl
5
4
  // file that auto-compact-orchestrator now appends to on every
6
5
  // dispatch. The CLI surface `peaks compact history` and the
@@ -1,6 +1,5 @@
1
1
  // src/services/compact-statusline/compact-lifecycle-store.ts
2
2
  //
3
- // Slice 2026-08-01-compact-lifecycle (Task 1/5). Pure persistence
4
3
  // for the runtime *compact lifecycle* record that the auto-compact
5
4
  // orchestrator writes on every state transition. The record is the
6
5
  // single source of truth that downstream statusline / dashboard
@@ -20,7 +19,6 @@
20
19
  // staleAfterMs. Terminal stages (`completed`, `failed`) NEVER go
21
20
  // stalled — the record is the historical answer, not a heartbeat.
22
21
  //
23
- // Slice 2026-09-12-compact-band-policy (defect B): `armed` is a third
24
22
  // category — a RESTING stage. It records a fact ("we registered a
25
23
  // compact trigger") that stays true until a measurement supersedes it;
26
24
  // no heartbeat was ever promised, so waiting in it is NORMAL and it
@@ -1,6 +1,5 @@
1
1
  export type CompactLifecycleStage = 'queued' | 'preparing' | 'compacting'
2
2
  /**
3
- * Slice 2026-09-12-compact-band-policy: a compact trigger was
4
3
  * REGISTERED but no compaction has started — e.g. claude-code's
5
4
  * `ide-native` pathway only installs the PreToolUse hook, which
6
5
  * compacts in-band at ratio ≥ 0.95. In the 0.80–0.95 band nothing
@@ -1,6 +1,5 @@
1
1
  // src/services/compact-statusline/compact-statusline-service.ts
2
2
  //
3
- // Slice 2026-08-01-compact-lifecycle (Task 3/5). Pure semantic
4
3
  // decision + render helper for the 'peaks statusline compact'
5
4
  // indicator. Reads .peaks/_runtime/<sessionId>/compact-lifecycle.json
6
5
  // first (the canonical source of truth) and falls back to the legacy
@@ -28,7 +27,6 @@
28
27
  // none → 0 cells
29
28
  // invalid → 0 cells (no false reassurance)
30
29
  // stalled → keep the active stage's cell
31
- // armed → NO bar at all (slice 2026-09-12-compact-band-policy):
32
30
  // a registered-but-idle trigger has no progress to
33
31
  // report, and a bar would imply one.
34
32
  //
@@ -130,7 +128,6 @@ function decideLegacyFallback(input) {
130
128
  // Priority 2 within legacy: a history row TESTIFIES that a compaction was
131
129
  // witnessed, recently enough to still be the one being reported.
132
130
  //
133
- // Repair R9 (AC4). This used to read the file's mtime — freshness taken as
134
131
  // evidence that "a compact just landed". Freshness is evidence of neither:
135
132
  // the same file takes a `dispatch` row every time peaks-loop ASKS for a
136
133
  // compact, and an ask is an intent, not an outcome. One real session
@@ -193,7 +190,6 @@ export function renderCompactStatusline(state) {
193
190
  return `compact ${renderBar(2)}`;
194
191
  case 'compacting':
195
192
  return `compact ${renderBar(STAGE_CELL_COMPACTING)}`;
196
- // Slice 2026-09-12-compact-band-policy: a registered trigger that has
197
193
  // not fired is NOT progress. Rendering a bar would imply movement
198
194
  // that is not happening, so `armed` deliberately renders no bar at
199
195
  // all — the label states what is true and what would change it.
@@ -15,7 +15,6 @@ export function planRollback() {
15
15
  export function executeRollback(opts) {
16
16
  const plan = planRollback();
17
17
  if (!plan.available) {
18
- // rid 2026-09-13-two-decisions ①: a machine that never migrated has no
19
18
  // `.bak`, and that is its normal state — `--apply` on such a machine is
20
19
  // "nothing to roll back", not a failure. Returned instead of thrown so the
21
20
  // exit status and the `available` key agree on every path; see
@@ -29,7 +29,6 @@ export declare function resolveProjectRootForConfig(startPath: string): string;
29
29
  */
30
30
  export declare function resolveCanonicalProjectRoot(startPath: string): string;
31
31
  /**
32
- * Slice rid-statusline-stale-ux AC-2 + P1 H1 option A: strict
33
32
  * canonicalization for use in trust-boundary paths (e.g.
34
33
  * `peaks session primer`).
35
34
  *
@@ -139,7 +139,6 @@ export function resolveCanonicalProjectRoot(startPath) {
139
139
  return start;
140
140
  }
141
141
  /**
142
- * Slice rid-statusline-stale-ux AC-2 + P1 H1 option A: strict
143
142
  * canonicalization for use in trust-boundary paths (e.g.
144
143
  * `peaks session primer`).
145
144
  *
@@ -18,7 +18,6 @@ export declare function isConfigLayer(value: string): value is ConfigLayer;
18
18
  /**
19
19
  * Machine-scoped context-window override key, the config twin of the
20
20
  * `PEAKS_CONTEXT_WINDOW_TOKENS` env var (slice
21
- * 2026-09-09-context-window-override). Written with
22
21
  * `peaks config set --key context.windowTokens --value <positive-int>`
23
22
  * (user layer) so the user pins it once instead of exporting an env var
24
23
  * in every shell.
@@ -200,7 +200,6 @@ export function isConfigLayer(value) {
200
200
  /**
201
201
  * Machine-scoped context-window override key, the config twin of the
202
202
  * `PEAKS_CONTEXT_WINDOW_TOKENS` env var (slice
203
- * 2026-09-09-context-window-override). Written with
204
203
  * `peaks config set --key context.windowTokens --value <positive-int>`
205
204
  * (user layer) so the user pins it once instead of exporting an env var
206
205
  * in every shell.
@@ -1,6 +1,5 @@
1
1
  import { type ModelProviderConfig, type PeaksConfig } from './config-types.js';
2
2
  /**
3
- * Slice 2026-07-09 add-zcode-adapter (A.3): replaces the legacy
4
3
  * `STRONGEST_MODEL_ID = 'claude-opus-4-7'` constant (removed) with a dynamic
5
4
  * resolver. The strongest planner/reviewer model is now derived
6
5
  * from the active config instead of being hardcoded to a specific
@@ -24,7 +23,6 @@ export declare function getStrongestModelId(config?: {
24
23
  model?: unknown;
25
24
  }): string;
26
25
  /**
27
- * Slice 2026-07-09 add-zcode-adapter (Slice C, C.4): async variant
28
26
  * of `getStrongestModelId`. Same precedence for layers 1 + 2, but
29
27
  * layer 2.5 is the IDE's runtime probe (`detectCurrentIdeModel`)
30
28
  * which is consulted BEFORE the env-var back-compat fallback.
@@ -53,7 +51,6 @@ export declare function getStrongestModelIdAsync(config?: {
53
51
  }, runtimeProbeDisabled?: boolean): Promise<string>;
54
52
  export declare function getConfiguredExecutionModelId(providers: ModelProviderConfig | undefined): string;
55
53
  /**
56
- * Slice 015 — typed exception for "no provider has a configured model".
57
54
  * Lives next to its throw site so a downstream `instanceof` check survives
58
55
  * any tree-shaking. CLI catch sites map this to the `INVALID_PROVIDERS`
59
56
  * envelope code via `_cli-error-envelope.mapServiceError`.
@@ -1,6 +1,5 @@
1
1
  import { detectCurrentIdeModel } from '../ide/current-model-detector.js';
2
2
  /**
3
- * Slice 2026-07-09 add-zcode-adapter (A.3): replaces the legacy
4
3
  * `STRONGEST_MODEL_ID = 'claude-opus-4-7'` constant (removed) with a dynamic
5
4
  * resolver. The strongest planner/reviewer model is now derived
6
5
  * from the active config instead of being hardcoded to a specific
@@ -25,12 +24,10 @@ export function getStrongestModelId(config) {
25
24
  const fromConfig = typeof raw === 'string' ? raw.trim() : undefined;
26
25
  if (fromConfig)
27
26
  return fromConfig;
28
- // Slice 2026-07-09: back-compat fallback for test fixtures that
29
27
  // pre-date this slice (SC §3.4 strategy A env-var override).
30
28
  return process.env.PEAKS_STRONGEST_MODEL_DEFAULT ?? 'claude-opus-4-7';
31
29
  }
32
30
  /**
33
- * Slice 2026-07-09 add-zcode-adapter (Slice C, C.4): async variant
34
31
  * of `getStrongestModelId`. Same precedence for layers 1 + 2, but
35
32
  * layer 2.5 is the IDE's runtime probe (`detectCurrentIdeModel`)
36
33
  * which is consulted BEFORE the env-var back-compat fallback.
@@ -86,7 +83,6 @@ export function getConfiguredExecutionModelId(providers) {
86
83
  return configuredModel;
87
84
  }
88
85
  /**
89
- * Slice 015 — typed exception for "no provider has a configured model".
90
86
  * Lives next to its throw site so a downstream `instanceof` check survives
91
87
  * any tree-shaking. CLI catch sites map this to the `INVALID_PROVIDERS`
92
88
  * envelope code via `_cli-error-envelope.mapServiceError`.
@@ -101,7 +97,6 @@ export function getEconomyAwareExecutionModelId(config) {
101
97
  // Slice 2.0.1-bug1 round 3: economy is the project default. Treat undefined as enabled
102
98
  // (matches the pre-slice implicit default from DEFAULT_CONFIG.economyMode = true). Only an
103
99
  // explicit `economyMode === false` switches execution to the strongest planner/reviewer
104
- // model (resolved dynamically per Slice 2026-07-09 add-zcode-adapter A.3).
105
100
  return config.economyMode !== false
106
101
  ? getConfiguredExecutionModelId(config.providers)
107
102
  : getStrongestModelId(config);
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * container-lease — pure-function lease store for `peaks container spawn`.
3
3
  *
4
- * Slice 2026-07-29-worktree-l2-extended Part 12 (L4 container
5
4
  * runtime). Mirrors the design of `worktree-lease.ts` (Part 1):
6
5
  * - Pure function module: every helper takes the lease
7
6
  * directory path as an argument and returns structured data.
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * container-lease — pure-function lease store for `peaks container spawn`.
3
3
  *
4
- * Slice 2026-07-29-worktree-l2-extended Part 12 (L4 container
5
4
  * runtime). Mirrors the design of `worktree-lease.ts` (Part 1):
6
5
  * - Pure function module: every helper takes the lease
7
6
  * directory path as an argument and returns structured data.
@@ -1,5 +1,4 @@
1
1
  /**
2
- * G7 — sub-agent context minimal-occupation (RL-17..RL-22, AC-38..AC-43).
3
2
  *
4
3
  * `ArtifactMeta` is what the dispatch record stores per sub-agent artifact
5
4
  * instead of the full content. The `contentInlined: false` literal is the