peaks-loop 4.1.0 → 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 (811) hide show
  1. package/CHANGELOG.md +75 -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/_register.js +2 -2
  11. package/dist/cli/commands/adapter-commands-s2a.d.ts +0 -1
  12. package/dist/cli/commands/adapter-commands.d.ts +0 -1
  13. package/dist/cli/commands/api-diff-commands.d.ts +0 -1
  14. package/dist/cli/commands/api-diff-commands.js +0 -1
  15. package/dist/cli/commands/audit-commands.js +21 -24
  16. package/dist/cli/commands/autonomous-swarm-commands.js +0 -1
  17. package/dist/cli/commands/bee-commands.d.ts +0 -2
  18. package/dist/cli/commands/bee-commands.js +0 -2
  19. package/dist/cli/commands/best-practice-scan-command.d.ts +0 -1
  20. package/dist/cli/commands/best-practice-scan-helpers.js +0 -1
  21. package/dist/cli/commands/changeset-commands.d.ts +0 -2
  22. package/dist/cli/commands/changeset-commands.js +0 -2
  23. package/dist/cli/commands/code-commands.d.ts +0 -3
  24. package/dist/cli/commands/code-commands.js +0 -3
  25. package/dist/cli/commands/code-gate-command.d.ts +0 -1
  26. package/dist/cli/commands/code-gate-command.js +0 -1
  27. package/dist/cli/commands/code-job-shape-commands-read-job-shape.d.ts +0 -1
  28. package/dist/cli/commands/code-job-shape-commands-read-job-shape.js +0 -1
  29. package/dist/cli/commands/code-job-shape-commands.d.ts +0 -2
  30. package/dist/cli/commands/code-job-shape-commands.js +0 -3
  31. package/dist/cli/commands/code-mode-gate-commands.d.ts +0 -2
  32. package/dist/cli/commands/code-mode-gate-commands.js +0 -3
  33. package/dist/cli/commands/code-mode-gate-should-pause-command.js +1 -5
  34. package/dist/cli/commands/code-mode-gate-should-pause-envelope.d.ts +0 -1
  35. package/dist/cli/commands/code-mode-gate-should-pause-envelope.js +0 -2
  36. package/dist/cli/commands/code-mode-status-command.d.ts +0 -1
  37. package/dist/cli/commands/code-mode-status-command.js +0 -1
  38. package/dist/cli/commands/code-orchestrator-can-do.d.ts +0 -1
  39. package/dist/cli/commands/code-orchestrator-can-do.js +0 -1
  40. package/dist/cli/commands/code-run-command.js +0 -1
  41. package/dist/cli/commands/code-runtime-commands.d.ts +0 -3
  42. package/dist/cli/commands/code-runtime-commands.js +0 -15
  43. package/dist/cli/commands/codegraph-command-runtime.d.ts +6 -0
  44. package/dist/cli/commands/codegraph-command-runtime.js +19 -7
  45. package/dist/cli/commands/codegraph-commands.js +20 -193
  46. package/dist/cli/commands/codegraph-init-command.d.ts +8 -0
  47. package/dist/cli/commands/codegraph-init-command.js +162 -0
  48. package/dist/cli/commands/codegraph-status-command.js +5 -6
  49. package/dist/cli/commands/comments-commands.d.ts +14 -0
  50. package/dist/cli/commands/comments-commands.js +96 -0
  51. package/dist/cli/commands/compact-command.d.ts +0 -1
  52. package/dist/cli/commands/compact-command.js +0 -4
  53. package/dist/cli/commands/container-commands.d.ts +0 -1
  54. package/dist/cli/commands/container-commands.js +0 -1
  55. package/dist/cli/commands/context-commands.d.ts +0 -1
  56. package/dist/cli/commands/context-commands.js +0 -1
  57. package/dist/cli/commands/core/doctor-command.d.ts +0 -1
  58. package/dist/cli/commands/core/doctor-command.js +0 -9
  59. package/dist/cli/commands/core/memory-command.js +10 -1
  60. package/dist/cli/commands/core/session-command.js +0 -14
  61. package/dist/cli/commands/core/skill-command.js +1 -10
  62. package/dist/cli/commands/core/standards-command.js +1 -1
  63. package/dist/cli/commands/core-artifact-commands.d.ts +0 -1
  64. package/dist/cli/commands/core-artifact-commands.js +0 -1
  65. package/dist/cli/commands/cron-commands-actions.d.ts +0 -1
  66. package/dist/cli/commands/cron-commands-actions.js +0 -2
  67. package/dist/cli/commands/cron-commands-schedule.d.ts +0 -3
  68. package/dist/cli/commands/cron-commands-schedule.js +0 -1
  69. package/dist/cli/commands/cron-commands.d.ts +0 -1
  70. package/dist/cli/commands/cron-commands.js +0 -2
  71. package/dist/cli/commands/cron-scheduler-commands.d.ts +0 -1
  72. package/dist/cli/commands/cron-scheduler-commands.js +0 -1
  73. package/dist/cli/commands/cron-scheduler-persist.d.ts +0 -5
  74. package/dist/cli/commands/cron-scheduler-persist.js +0 -5
  75. package/dist/cli/commands/dashboard-summary.d.ts +0 -1
  76. package/dist/cli/commands/dispatch-commands.d.ts +0 -1
  77. package/dist/cli/commands/dispatch-commands.js +10 -37
  78. package/dist/cli/commands/dispatch-from-dag.js +0 -4
  79. package/dist/cli/commands/doctor/invoke-from-code.js +0 -1
  80. package/dist/cli/commands/e2e-verify.d.ts +0 -1
  81. package/dist/cli/commands/ecc-commands.d.ts +16 -22
  82. package/dist/cli/commands/ecc-commands.js +38 -26
  83. package/dist/cli/commands/evolution-commands.d.ts +0 -1
  84. package/dist/cli/commands/evolution-commands.js +0 -1
  85. package/dist/cli/commands/feedback-commands.d.ts +0 -1
  86. package/dist/cli/commands/feedback-commands.js +0 -2
  87. package/dist/cli/commands/fixture-commands.d.ts +0 -2
  88. package/dist/cli/commands/fresh-context-commands.d.ts +0 -1
  89. package/dist/cli/commands/gate-commands-enforce.d.ts +0 -3
  90. package/dist/cli/commands/gate-commands-enforce.js +0 -4
  91. package/dist/cli/commands/gate-commands.js +0 -2
  92. package/dist/cli/commands/governance-classify-contract-commands.d.ts +0 -3
  93. package/dist/cli/commands/governance-classify-contract-commands.js +0 -4
  94. package/dist/cli/commands/heartbeat-commands-action.js +0 -6
  95. package/dist/cli/commands/heartbeat-commands-validation.d.ts +0 -2
  96. package/dist/cli/commands/heartbeat-commands-validation.js +0 -2
  97. package/dist/cli/commands/heartbeat-commands.d.ts +0 -1
  98. package/dist/cli/commands/heartbeat-commands.js +0 -1
  99. package/dist/cli/commands/hooks-commands.js +0 -11
  100. package/dist/cli/commands/ide-commands.d.ts +0 -1
  101. package/dist/cli/commands/job-add-slice-command.d.ts +0 -2
  102. package/dist/cli/commands/job-add-slice-command.js +0 -2
  103. package/dist/cli/commands/job-commands.js +0 -4
  104. package/dist/cli/commands/lease-metrics-commands.d.ts +0 -1
  105. package/dist/cli/commands/lease-metrics-commands.js +0 -1
  106. package/dist/cli/commands/lease-stats-commands.d.ts +0 -1
  107. package/dist/cli/commands/lease-stats-commands.js +0 -1
  108. package/dist/cli/commands/log-commands.d.ts +0 -2
  109. package/dist/cli/commands/log-commands.js +0 -3
  110. package/dist/cli/commands/loop-eval-commands.js +0 -3
  111. package/dist/cli/commands/memory-commands.d.ts +0 -1
  112. package/dist/cli/commands/memory-commands.js +0 -1
  113. package/dist/cli/commands/observability-commands.d.ts +0 -6
  114. package/dist/cli/commands/observability-commands.js +0 -6
  115. package/dist/cli/commands/outer-cache-commands.js +0 -2
  116. package/dist/cli/commands/playwright-commands.d.ts +0 -1
  117. package/dist/cli/commands/playwright-commands.js +0 -1
  118. package/dist/cli/commands/polyrepo-commands.d.ts +0 -1
  119. package/dist/cli/commands/prd-commands.d.ts +0 -1
  120. package/dist/cli/commands/prd-commands.js +8 -4
  121. package/dist/cli/commands/preferences-commands.js +0 -2
  122. package/dist/cli/commands/primer-command.d.ts +0 -1
  123. package/dist/cli/commands/primer-command.js +0 -1
  124. package/dist/cli/commands/project-commands.js +0 -1
  125. package/dist/cli/commands/qa-commands.d.ts +0 -1
  126. package/dist/cli/commands/qa-commands.js +0 -2
  127. package/dist/cli/commands/release-commands.js +0 -9
  128. package/dist/cli/commands/request-commands.d.ts +0 -1
  129. package/dist/cli/commands/request-commands.js +0 -10
  130. package/dist/cli/commands/request-format-helpers.d.ts +0 -1
  131. package/dist/cli/commands/request-format-helpers.js +0 -2
  132. package/dist/cli/commands/runtime-commands.d.ts +0 -1
  133. package/dist/cli/commands/sc-commands.js +0 -1
  134. package/dist/cli/commands/session-24h-mode.d.ts +0 -1
  135. package/dist/cli/commands/session-24h-mode.js +0 -2
  136. package/dist/cli/commands/session-checkpoint-command.d.ts +0 -1
  137. package/dist/cli/commands/session-checkpoint-command.js +0 -1
  138. package/dist/cli/commands/session-resume-command.d.ts +0 -1
  139. package/dist/cli/commands/session-resume-command.js +0 -1
  140. package/dist/cli/commands/shadcn-commands.js +0 -2
  141. package/dist/cli/commands/share-commands.d.ts +0 -3
  142. package/dist/cli/commands/share-commands.js +0 -13
  143. package/dist/cli/commands/skill-search-commands.d.ts +0 -2
  144. package/dist/cli/commands/slice-commands.js +0 -2
  145. package/dist/cli/commands/slice-integrate-commands.js +0 -1
  146. package/dist/cli/commands/spill-demo-command.d.ts +0 -1
  147. package/dist/cli/commands/statusline-commands.js +0 -4
  148. package/dist/cli/commands/sub-agent/detached.js +0 -2
  149. package/dist/cli/commands/sub-agent-commands.d.ts +0 -3
  150. package/dist/cli/commands/sub-agent-shared.d.ts +0 -8
  151. package/dist/cli/commands/sub-agent-shared.js +0 -5
  152. package/dist/cli/commands/sub-agent-shutdown-commands.d.ts +0 -1
  153. package/dist/cli/commands/tech-commands.d.ts +0 -4
  154. package/dist/cli/commands/tech-commands.js +0 -4
  155. package/dist/cli/commands/vendor-detect.d.ts +0 -3
  156. package/dist/cli/commands/vendor-detect.js +0 -2
  157. package/dist/cli/commands/verdict-aggregate-command.d.ts +0 -1
  158. package/dist/cli/commands/verdict-aggregate-command.js +0 -7
  159. package/dist/cli/commands/vm-commands.d.ts +0 -1
  160. package/dist/cli/commands/vm-commands.js +5 -29
  161. package/dist/cli/commands/vm-hypervisor-probe.d.ts +27 -0
  162. package/dist/cli/commands/vm-hypervisor-probe.js +78 -0
  163. package/dist/cli/commands/vm-status-command.d.ts +3 -0
  164. package/dist/cli/commands/vm-status-command.js +50 -0
  165. package/dist/cli/commands/wave-plan-commands.d.ts +0 -1
  166. package/dist/cli/commands/web-lifecycle-commands.d.ts +0 -1
  167. package/dist/cli/commands/workflow-commands.js +0 -14
  168. package/dist/cli/commands/workflow-plan-commands-actions.js +0 -2
  169. package/dist/cli/commands/workflow-plan-commands-session.js +0 -2
  170. package/dist/cli/commands/workflow-plan-commands.d.ts +0 -1
  171. package/dist/cli/commands/workspace/clean-command.d.ts +0 -1
  172. package/dist/cli/commands/workspace/clean-command.js +0 -1
  173. package/dist/cli/commands/workspace/helpers.d.ts +0 -1
  174. package/dist/cli/commands/workspace/helpers.js +0 -1
  175. package/dist/cli/commands/workspace/init-command.d.ts +0 -6
  176. package/dist/cli/commands/workspace/init-command.js +0 -17
  177. package/dist/cli/commands/workspace/migrate-command.d.ts +0 -2
  178. package/dist/cli/commands/workspace/migrate-command.js +0 -2
  179. package/dist/cli/commands/workspace/reconcile-command.d.ts +0 -2
  180. package/dist/cli/commands/workspace/reconcile-command.js +0 -3
  181. package/dist/cli/commands/workspace-commands.d.ts +0 -2
  182. package/dist/cli/commands/workspace-commands.js +0 -4
  183. package/dist/cli/commands/worktree-auth-commands.d.ts +0 -1
  184. package/dist/cli/commands/worktree-auth-commands.js +0 -1
  185. package/dist/cli/commands/worktree-auth-grant-command.d.ts +0 -1
  186. package/dist/cli/commands/worktree-auth-grant-command.js +0 -1
  187. package/dist/cli/commands/worktree-auth-manage-commands.d.ts +0 -1
  188. package/dist/cli/commands/worktree-auth-manage-commands.js +0 -1
  189. package/dist/cli/commands/worktree-lease-commands.js +0 -1
  190. package/dist/cli/program.js +4 -16
  191. package/dist/reporters/bdd-reporter.js +0 -1
  192. package/dist/services/24h-mode/auto-engage.d.ts +0 -1
  193. package/dist/services/24h-mode/auto-engage.js +0 -1
  194. package/dist/services/24h-mode/decider.d.ts +0 -3
  195. package/dist/services/24h-mode/decider.js +0 -3
  196. package/dist/services/24h-mode/index.d.ts +0 -2
  197. package/dist/services/24h-mode/index.js +0 -2
  198. package/dist/services/24h-mode/state.d.ts +0 -1
  199. package/dist/services/24h-mode/state.js +0 -1
  200. package/dist/services/24h-mode/store.d.ts +0 -1
  201. package/dist/services/24h-mode/store.js +0 -1
  202. package/dist/services/adapter/adapter-registry.js +0 -1
  203. package/dist/services/artifacts/artifact-prerequisites.d.ts +0 -5
  204. package/dist/services/artifacts/artifact-prerequisites.js +0 -19
  205. package/dist/services/artifacts/artifact-templates.d.ts +0 -1
  206. package/dist/services/artifacts/artifact-templates.js +0 -1
  207. package/dist/services/artifacts/request-artifact-service.d.ts +0 -5
  208. package/dist/services/artifacts/request-artifact-service.js +0 -12
  209. package/dist/services/artifacts/request-artifact-state-helpers.d.ts +0 -1
  210. package/dist/services/artifacts/request-artifact-state-helpers.js +0 -1
  211. package/dist/services/audit/artifact-writer.d.ts +0 -1
  212. package/dist/services/audit/artifact-writer.js +0 -1
  213. package/dist/services/audit/decision-writer.js +3 -1
  214. package/dist/services/audit/enforcer-liveness.js +0 -1
  215. package/dist/services/audit/enforcers/active-skill-resolver.d.ts +0 -2
  216. package/dist/services/audit/enforcers/active-skill-resolver.js +0 -2
  217. package/dist/services/audit/red-line-audit-input.d.ts +11 -0
  218. package/dist/services/audit/red-line-audit-input.js +103 -0
  219. package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.d.ts +0 -1
  220. package/dist/services/audit/red-line-catalog-p2-a.js +0 -9
  221. package/dist/services/audit/types.d.ts +0 -2
  222. package/dist/services/audit/types.js +0 -2
  223. package/dist/services/audit-independent/perf-audit-service.d.ts +0 -2
  224. package/dist/services/audit-independent/security-audit-service.d.ts +0 -5
  225. package/dist/services/audit-independent/security-audit-service.js +0 -2
  226. package/dist/services/autonomous-swarm/autonomous-swarm-service.d.ts +0 -5
  227. package/dist/services/autonomous-swarm/autonomous-swarm-service.js +0 -5
  228. package/dist/services/best-practice/language-detector.js +0 -1
  229. package/dist/services/best-practice/output-formatter.d.ts +0 -1
  230. package/dist/services/best-practice/scan-orchestrator.d.ts +0 -1
  231. package/dist/services/capability-audit-service/types.d.ts +1 -3
  232. package/dist/services/capability-guard-runner/contracts/J08.js +2 -2
  233. package/dist/services/changeset/changeset-check-service.d.ts +0 -3
  234. package/dist/services/changeset/changeset-check-service.js +0 -3
  235. package/dist/services/classify/classify-service.d.ts +0 -1
  236. package/dist/services/classify/classify-service.js +0 -1
  237. package/dist/services/classify/classify-types.d.ts +0 -1
  238. package/dist/services/classify/classify-types.js +0 -1
  239. package/dist/services/code/auto-compact-lifecycle.d.ts +0 -11
  240. package/dist/services/code/auto-compact-lifecycle.js +0 -10
  241. package/dist/services/code/auto-compact-modes.d.ts +0 -3
  242. package/dist/services/code/auto-compact-modes.js +0 -3
  243. package/dist/services/code/auto-compact-orchestrator.d.ts +0 -9
  244. package/dist/services/code/auto-compact-orchestrator.js +0 -29
  245. package/dist/services/code/batch-heartbeat-poller.js +0 -1
  246. package/dist/services/code/compact-event-settle.js +0 -1
  247. package/dist/services/code/dag-orchestrator.d.ts +0 -1
  248. package/dist/services/code/dag-orchestrator.js +0 -1
  249. package/dist/services/code/mode-gate-types.d.ts +1 -3
  250. package/dist/services/code/mode-gate-types.js +0 -2
  251. package/dist/services/code/mode-gate.d.ts +0 -5
  252. package/dist/services/code/mode-gate.js +1 -14
  253. package/dist/services/code/orchestrator-can-do-advisories.d.ts +0 -2
  254. package/dist/services/code/orchestrator-can-do-advisories.js +0 -5
  255. package/dist/services/code/orchestrator-can-do.d.ts +0 -4
  256. package/dist/services/code/orchestrator-can-do.js +0 -3
  257. package/dist/services/code/status-line-renderer.js +0 -1
  258. package/dist/services/code/user-touchpoint-classifier.js +0 -7
  259. package/dist/services/code-review/ecc-bridge.d.ts +6 -7
  260. package/dist/services/codegraph/codegraph-autorefresh.js +6 -4
  261. package/dist/services/codegraph/codegraph-backend-advice.d.ts +26 -0
  262. package/dist/services/codegraph/codegraph-backend-advice.js +166 -0
  263. package/dist/services/codegraph/codegraph-config-repair-writer.d.ts +0 -24
  264. package/dist/services/codegraph/codegraph-config-repair-writer.js +32 -73
  265. package/dist/services/codegraph/codegraph-exclude-integrity.d.ts +14 -6
  266. package/dist/services/codegraph/codegraph-exclude-integrity.js +24 -14
  267. package/dist/services/codegraph/codegraph-exclude-reconciler.d.ts +9 -2
  268. package/dist/services/codegraph/codegraph-exclude-reconciler.js +87 -18
  269. package/dist/services/codegraph/codegraph-exclude-repair.d.ts +9 -61
  270. package/dist/services/codegraph/codegraph-exclude-repair.js +67 -139
  271. package/dist/services/codegraph/codegraph-foreign-removal.d.ts +21 -0
  272. package/dist/services/codegraph/codegraph-foreign-removal.js +77 -0
  273. package/dist/services/codegraph/codegraph-index-integrity.d.ts +12 -25
  274. package/dist/services/codegraph/codegraph-index-integrity.js +84 -23
  275. package/dist/services/codegraph/codegraph-preflight-service.js +15 -6
  276. package/dist/services/codegraph/codegraph-project-config.d.ts +35 -0
  277. package/dist/services/codegraph/codegraph-project-config.js +90 -0
  278. package/dist/services/codegraph/codegraph-service.d.ts +1 -2
  279. package/dist/services/codegraph/codegraph-service.js +11 -11
  280. package/dist/services/codegraph/codegraph-upstream-layout.d.ts +24 -0
  281. package/dist/services/codegraph/codegraph-upstream-layout.js +85 -0
  282. package/dist/services/comments/citation-rules.d.ts +154 -0
  283. package/dist/services/comments/citation-rules.js +241 -0
  284. package/dist/services/comments/comment-audit.d.ts +68 -0
  285. package/dist/services/comments/comment-audit.js +121 -0
  286. package/dist/services/comments/comment-citations.d.ts +66 -0
  287. package/dist/services/comments/comment-citations.js +184 -0
  288. package/dist/services/comments/comment-hygiene.d.ts +105 -0
  289. package/dist/services/comments/comment-hygiene.js +170 -0
  290. package/dist/services/comments/comment-prune.d.ts +88 -0
  291. package/dist/services/comments/comment-prune.js +196 -0
  292. package/dist/services/comments/comment-spans.d.ts +30 -0
  293. package/dist/services/comments/comment-spans.js +266 -0
  294. package/dist/services/comments/prune-apply.d.ts +82 -0
  295. package/dist/services/comments/prune-apply.js +217 -0
  296. package/dist/services/comments/repo-path-probe.d.ts +43 -0
  297. package/dist/services/comments/repo-path-probe.js +78 -0
  298. package/dist/services/compact/decision-tables.d.ts +0 -2
  299. package/dist/services/compact/decision-tables.js +0 -2
  300. package/dist/services/compact/request-transition-hook.js +0 -2
  301. package/dist/services/compact-history/compact-history-service.d.ts +0 -2
  302. package/dist/services/compact-history/compact-history-service.js +0 -1
  303. package/dist/services/compact-statusline/compact-lifecycle-store.js +0 -2
  304. package/dist/services/compact-statusline/compact-lifecycle-types.d.ts +0 -1
  305. package/dist/services/compact-statusline/compact-statusline-service.js +0 -4
  306. package/dist/services/config/config-rollback.js +0 -1
  307. package/dist/services/config/config-safety.d.ts +0 -1
  308. package/dist/services/config/config-safety.js +0 -1
  309. package/dist/services/config/config-service.d.ts +0 -1
  310. package/dist/services/config/config-service.js +0 -1
  311. package/dist/services/config/model-routing.d.ts +0 -3
  312. package/dist/services/config/model-routing.js +0 -5
  313. package/dist/services/container/container-lease.d.ts +0 -1
  314. package/dist/services/container/container-lease.js +0 -1
  315. package/dist/services/context/artifact-meta.js +0 -1
  316. package/dist/services/context/auto-compact-dispatcher-input.d.ts +0 -3
  317. package/dist/services/context/auto-compact-dispatcher.js +0 -14
  318. package/dist/services/context/auto-compact-reader-input.d.ts +0 -1
  319. package/dist/services/context/auto-compact-reader.d.ts +0 -2
  320. package/dist/services/context/auto-compact-reader.js +0 -7
  321. package/dist/services/context/auto-compact-types.d.ts +0 -11
  322. package/dist/services/context/auto-compact-types.js +0 -1
  323. package/dist/services/context/build-dispatch-system-prompt.d.ts +11 -29
  324. package/dist/services/context/build-dispatch-system-prompt.js +8 -27
  325. package/dist/services/context/codegraph-unavailable-block.d.ts +38 -0
  326. package/dist/services/context/codegraph-unavailable-block.js +77 -0
  327. package/dist/services/context/context-audit-hint.d.ts +0 -1
  328. package/dist/services/context/context-audit-hint.js +0 -1
  329. package/dist/services/context/context-audit.d.ts +0 -1
  330. package/dist/services/context/context-audit.js +0 -1
  331. package/dist/services/context/harness-window-config.d.ts +0 -4
  332. package/dist/services/context/harness-window-config.js +0 -4
  333. package/dist/services/context/main-session-monitor.d.ts +0 -2
  334. package/dist/services/context/main-session-monitor.js +0 -2
  335. package/dist/services/context/memory-index-reader.d.ts +0 -2
  336. package/dist/services/context/memory-index-reader.js +0 -1
  337. package/dist/services/context/memory-preflight-config.d.ts +0 -1
  338. package/dist/services/context/memory-preflight-service.d.ts +0 -1
  339. package/dist/services/context/memory-preflight-service.js +0 -3
  340. package/dist/services/context/memory-preflight-support.d.ts +0 -5
  341. package/dist/services/context/post-compact-reinjection.d.ts +0 -1
  342. package/dist/services/context/post-compact-reinjection.js +0 -1
  343. package/dist/services/context/summary-view.d.ts +0 -1
  344. package/dist/services/context/summary-view.js +0 -1
  345. package/dist/services/crystallization/crystallization-service.d.ts +5 -11
  346. package/dist/services/crystallization/crystallization-service.js +3 -11
  347. package/dist/services/crystallization/crystallization-store.d.ts +6 -6
  348. package/dist/services/dispatch/await-batch-helpers.js +0 -3
  349. package/dist/services/dispatch/await-batch.d.ts +0 -1
  350. package/dist/services/dispatch/await-batch.js +0 -4
  351. package/dist/services/dispatch/batch-counter.js +0 -1
  352. package/dist/services/dispatch/conflict-replay.d.ts +0 -1
  353. package/dist/services/dispatch/conflict-replay.js +0 -1
  354. package/dist/services/dispatch/contract-store.d.ts +0 -2
  355. package/dist/services/dispatch/contract-store.js +0 -2
  356. package/dist/services/dispatch/dispatch-record-input-types.d.ts +0 -2
  357. package/dist/services/dispatch/dispatch-record-types.d.ts +0 -10
  358. package/dist/services/dispatch/dispatch-record-upgrade-fields.js +0 -7
  359. package/dist/services/dispatch/dispatch-record-upgrade-guards.js +0 -2
  360. package/dist/services/dispatch/dispatch-record-writer.d.ts +0 -5
  361. package/dist/services/dispatch/dispatch-record-writer.js +0 -21
  362. package/dist/services/dispatch/dispatch-sub-agent.d.ts +0 -1
  363. package/dist/services/dispatch/dispatch-sub-agent.js +0 -1
  364. package/dist/services/dispatch/e2e-fixtures.js +0 -1
  365. package/dist/services/dispatch/file-overlap-wave-planner.d.ts +0 -1
  366. package/dist/services/dispatch/file-overlap-wave-planner.js +0 -1
  367. package/dist/services/dispatch/isolation-lease.d.ts +0 -2
  368. package/dist/services/dispatch/isolation-lease.js +0 -2
  369. package/dist/services/dispatch/service-shutdown.js +0 -1
  370. package/dist/services/dispatch/session-capsule.js +0 -1
  371. package/dist/services/dispatch/slice-dag-types.d.ts +0 -1
  372. package/dist/services/dispatch/slice-dag.js +0 -2
  373. package/dist/services/dispatch/stage-enum.d.ts +0 -1
  374. package/dist/services/dispatch/stage-enum.js +0 -1
  375. package/dist/services/dispatch/startup-timeout.d.ts +0 -1
  376. package/dist/services/dispatch/sub-agent-batch-await.js +0 -3
  377. package/dist/services/dispatch/sub-agent-dispatcher-types.d.ts +0 -1
  378. package/dist/services/dispatch/sub-agent-dispatcher.js +0 -2
  379. package/dist/services/dispatch/test-tool-detection.d.ts +0 -3
  380. package/dist/services/dispatch/test-tool-detection.js +0 -2
  381. package/dist/services/doctor/doctor-service/checks/codegraph-capability.js +19 -12
  382. package/dist/services/doctor/doctor-service/checks/codegraph-index-integrity.js +1 -2
  383. package/dist/services/doctor/doctor-service/checks/l3-memory-health.d.ts +0 -2
  384. package/dist/services/doctor/doctor-service/checks/l3-memory-health.js +0 -2
  385. package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.d.ts +0 -1
  386. package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.js +0 -1
  387. package/dist/services/doctor/doctor-service/checks/multi-binary-drift.d.ts +0 -1
  388. package/dist/services/doctor/doctor-service/checks/multi-binary-drift.js +0 -3
  389. package/dist/services/doctor/doctor-service/checks/workspace-layout.js +0 -2
  390. package/dist/services/doctor/doctor-service/index.d.ts +0 -1
  391. package/dist/services/doctor/doctor-service/index.js +0 -1
  392. package/dist/services/doctor/doctor-service/plugin-registry.d.ts +0 -2
  393. package/dist/services/doctor/doctor-service/plugin-registry.js +0 -2
  394. package/dist/services/doctor/doctor-service/probe-types.d.ts +0 -4
  395. package/dist/services/doctor/doctor-service/report/final-summary.d.ts +0 -1
  396. package/dist/services/doctor/doctor-service/report/final-summary.js +0 -1
  397. package/dist/services/doctor/doctor-service/types.d.ts +0 -5
  398. package/dist/services/doctor/doctor-service/types.js +0 -1
  399. package/dist/services/doctor/doctor-service.d.ts +0 -1
  400. package/dist/services/doctor/doctor-service.js +0 -2
  401. package/dist/services/env/shell-probe.js +0 -1
  402. package/dist/services/evidence/evidence-generator.js +0 -8
  403. package/dist/services/evolution/evolution-constraints.d.ts +0 -2
  404. package/dist/services/evolution/evolution-constraints.js +0 -2
  405. package/dist/services/evolution/evolution-service.d.ts +2 -12
  406. package/dist/services/evolution/evolution-service.js +0 -9
  407. package/dist/services/evolution/evolution-store.d.ts +6 -8
  408. package/dist/services/evolution/evolution-store.js +1 -3
  409. package/dist/services/evolution/evolution-types.d.ts +0 -2
  410. package/dist/services/evolution/evolution-types.js +0 -6
  411. package/dist/services/evolution/independent-evaluator-runner.d.ts +0 -3
  412. package/dist/services/evolution/independent-evaluator-runner.js +0 -1
  413. package/dist/services/evolution/regression-skeptic-runner.d.ts +0 -1
  414. package/dist/services/feedback/feedback-promotion-service.d.ts +0 -8
  415. package/dist/services/feedback/feedback-promotion-service.js +0 -10
  416. package/dist/services/feedback/promotion-artifact-evidence.d.ts +0 -1
  417. package/dist/services/feedback/promotion-artifact-evidence.js +0 -1
  418. package/dist/services/final-review/final-review-evidence-budget.d.ts +0 -3
  419. package/dist/services/final-review/final-review-evidence-budget.js +0 -5
  420. package/dist/services/final-review/final-review-evidence-sources.d.ts +0 -1
  421. package/dist/services/final-review/final-review-evidence-sources.js +0 -1
  422. package/dist/services/final-review/final-review-output-budget.d.ts +0 -1
  423. package/dist/services/final-review/final-review-output-budget.js +0 -3
  424. package/dist/services/final-review/final-review-service.d.ts +0 -1
  425. package/dist/services/final-review/final-review-service.js +0 -1
  426. package/dist/services/fixture/fixture-capture-service.js +0 -1
  427. package/dist/services/fixture/fixture-sanitize-service.d.ts +0 -3
  428. package/dist/services/fixture/fixture-sanitize-service.js +0 -3
  429. package/dist/services/fresh-context/config.js +0 -1
  430. package/dist/services/fresh-context/fresh-context-block.js +0 -1
  431. package/dist/services/fresh-context/trigger-scan.d.ts +0 -1
  432. package/dist/services/fresh-context/trigger-scan.js +0 -1
  433. package/dist/services/fuzzy-matching/fzf-pick-service.d.ts +0 -1
  434. package/dist/services/fuzzy-matching/fzf-pick-service.js +0 -1
  435. package/dist/services/handoff/handoff-parser.d.ts +0 -1
  436. package/dist/services/handoff/handoff-parser.js +0 -1
  437. package/dist/services/handoff/handoff-types.d.ts +0 -1
  438. package/dist/services/handoff/handoff-types.js +0 -1
  439. package/dist/services/handoff/handoff-writer.d.ts +0 -1
  440. package/dist/services/handoff/handoff-writer.js +0 -1
  441. package/dist/services/hooks/auto-compact-hook-install.d.ts +0 -1
  442. package/dist/services/hooks/auto-compact-hook-install.js +0 -1
  443. package/dist/services/hooks/output.d.ts +0 -1
  444. package/dist/services/hooks/output.js +0 -1
  445. package/dist/services/hooks/pre-tool-code-gate.d.ts +0 -1
  446. package/dist/services/hooks/pre-tool-code-gate.js +0 -1
  447. package/dist/services/hooks/presence-marker-detector.js +0 -1
  448. package/dist/services/hooks/worktree-authorization-gate.d.ts +0 -3
  449. package/dist/services/hooks/worktree-authorization-gate.js +0 -1
  450. package/dist/services/ide/adapters/claude-code-adapter.d.ts +0 -5
  451. package/dist/services/ide/adapters/claude-code-adapter.js +0 -11
  452. package/dist/services/ide/adapters/qoder-adapter.d.ts +0 -3
  453. package/dist/services/ide/adapters/qoder-adapter.js +0 -5
  454. package/dist/services/ide/adapters/tongyi-lingma-adapter.d.ts +0 -2
  455. package/dist/services/ide/adapters/tongyi-lingma-adapter.js +0 -2
  456. package/dist/services/ide/adapters/trae-adapter.d.ts +0 -3
  457. package/dist/services/ide/adapters/trae-adapter.js +3 -6
  458. package/dist/services/ide/adapters/zcode-adapter.js +0 -2
  459. package/dist/services/ide/current-model-detector.js +0 -1
  460. package/dist/services/ide/hook-protocol.d.ts +0 -2
  461. package/dist/services/ide/hook-protocol.js +0 -2
  462. package/dist/services/ide/ide-compact-types.d.ts +0 -7
  463. package/dist/services/ide/ide-types.d.ts +0 -12
  464. package/dist/services/ide/resource-profile.d.ts +0 -1
  465. package/dist/services/job/job-commit-verification.d.ts +0 -2
  466. package/dist/services/job/job-commit-verification.js +0 -2
  467. package/dist/services/job/job-orchestrator.d.ts +0 -1
  468. package/dist/services/job/job-orchestrator.js +0 -1
  469. package/dist/services/job/job-progress-store.d.ts +0 -2
  470. package/dist/services/job/job-progress-store.js +0 -3
  471. package/dist/services/job/job-types.js +0 -1
  472. package/dist/services/job-snapshot/snapshot.js +0 -1
  473. package/dist/services/karpathy-cost/karpathy-cost-check-service.js +0 -1
  474. package/dist/services/legacy/legacy-detector.js +0 -1
  475. package/dist/services/log/log-commands-service.d.ts +0 -2
  476. package/dist/services/log/log-commands-service.js +0 -2
  477. package/dist/services/log/logger.d.ts +0 -1
  478. package/dist/services/log/logger.js +0 -1
  479. package/dist/services/log/redact.d.ts +0 -1
  480. package/dist/services/log/redact.js +0 -1
  481. package/dist/services/log/retention.d.ts +0 -17
  482. package/dist/services/log/retention.js +0 -18
  483. package/dist/services/loop/loop-bee-relation-service.d.ts +3 -3
  484. package/dist/services/loop/loop-bee-relation-service.js +14 -13
  485. package/dist/services/loop/loop-bee-relation-store.d.ts +9 -10
  486. package/dist/services/loop/loop-bee-relation-store.js +1 -2
  487. package/dist/services/loop/loop-bee-relation-types.d.ts +1 -1
  488. package/dist/services/loop/loop-bee-relation-types.js +1 -1
  489. package/dist/services/loop/loop-release-service.d.ts +3 -3
  490. package/dist/services/loop/loop-release-service.js +1 -1
  491. package/dist/services/loop/loop-release-store.d.ts +6 -7
  492. package/dist/services/loop/loop-release-store.js +0 -1
  493. package/dist/services/loop/monotonic-guard.d.ts +0 -1
  494. package/dist/services/loop/monotonic-guard.js +0 -1
  495. package/dist/services/memory/memory-ingest-service.js +0 -1
  496. package/dist/services/memory/project-context-service.d.ts +0 -1
  497. package/dist/services/memory/project-context-service.js +0 -1
  498. package/dist/services/memory/project-memory-service/index/reindex.d.ts +0 -2
  499. package/dist/services/memory/project-memory-service/index/reindex.js +0 -1
  500. package/dist/services/memory/project-memory-service/index/search.d.ts +0 -1
  501. package/dist/services/memory/project-memory-service/index/search.js +0 -1
  502. package/dist/services/memory/project-memory-service/index.d.ts +1 -1
  503. package/dist/services/memory/project-memory-service/index.js +1 -1
  504. package/dist/services/memory/project-memory-service/memory-kinds.d.ts +0 -1
  505. package/dist/services/memory/project-memory-service/memory-kinds.js +0 -1
  506. package/dist/services/memory/project-memory-service/parsers/frontmatter.d.ts +0 -1
  507. package/dist/services/memory/project-memory-service/parsers/frontmatter.js +0 -1
  508. package/dist/services/memory/project-memory-service/store/atomic-write.d.ts +19 -7
  509. package/dist/services/memory/project-memory-service/store/atomic-write.js +120 -26
  510. package/dist/services/memory/project-memory-service.js +0 -1
  511. package/dist/services/mode/mode-enforcement.js +0 -1
  512. package/dist/services/mode/mode-status-service.d.ts +0 -2
  513. package/dist/services/mode/mode-status-service.js +0 -2
  514. package/dist/services/observability/aggregation.d.ts +0 -4
  515. package/dist/services/observability/aggregation.js +0 -6
  516. package/dist/services/observability/observability-schema.js +0 -1
  517. package/dist/services/observability/observability-service.d.ts +0 -5
  518. package/dist/services/observability/observability-service.js +0 -4
  519. package/dist/services/observability/report-formatter.d.ts +0 -2
  520. package/dist/services/observability/report-formatter.js +0 -2
  521. package/dist/services/openspec/artifact-boundary.d.ts +0 -4
  522. package/dist/services/openspec/artifact-boundary.js +0 -4
  523. package/dist/services/openspec/coverage-evidence-reader.d.ts +0 -1
  524. package/dist/services/openspec/coverage-evidence-reader.js +0 -1
  525. package/dist/services/polyrepo/polyrepo-dispatcher.js +0 -1
  526. package/dist/services/polyrepo/polyrepo-scanner.js +0 -1
  527. package/dist/services/polyrepo/polyrepo-service.js +0 -1
  528. package/dist/services/polyrepo/polyrepo-types.d.ts +0 -1
  529. package/dist/services/prd/best-practice-auto-trigger.d.ts +0 -2
  530. package/dist/services/prd/best-practice-auto-trigger.js +0 -2
  531. package/dist/services/prd/gate-evidence-derivation.d.ts +0 -4
  532. package/dist/services/prd/gate-evidence-derivation.js +0 -5
  533. package/dist/services/prd/handoff-auto-regen.js +0 -5
  534. package/dist/services/prd/handoff-frontmatter-shape.d.ts +0 -2
  535. package/dist/services/prd/handoff-frontmatter-shape.js +0 -2
  536. package/dist/services/prd/handoff-frontmatter.d.ts +0 -1
  537. package/dist/services/prd/handoff-frontmatter.js +61 -2
  538. package/dist/services/prd/handoff-gate-evidence.d.ts +0 -1
  539. package/dist/services/prd/handoff-gate-evidence.js +12 -12
  540. package/dist/services/prd/handoff-path-resolution.d.ts +0 -7
  541. package/dist/services/prd/handoff-path-resolution.js +0 -10
  542. package/dist/services/prd/handoff-service.d.ts +11 -3
  543. package/dist/services/prd/handoff-service.js +11 -3
  544. package/dist/services/prd/handoff-types.d.ts +33 -3
  545. package/dist/services/prd/handoff-types.js +0 -1
  546. package/dist/services/prd/project-scan-bootstrap-service.d.ts +0 -1
  547. package/dist/services/prd/project-scan-bootstrap-service.js +0 -4
  548. package/dist/services/prd/project-scan-types.d.ts +0 -1
  549. package/dist/services/prd/project-scan-types.js +0 -1
  550. package/dist/services/preferences/preferences-service.d.ts +0 -1
  551. package/dist/services/preferences/preferences-service.js +0 -5
  552. package/dist/services/preferences/preferences-types.d.ts +0 -14
  553. package/dist/services/preferences/preferences-types.js +0 -4
  554. package/dist/services/progress/progress-service.js +0 -1
  555. package/dist/services/qa/bdd-test-style-verifier.d.ts +0 -1
  556. package/dist/services/qa/bdd-test-style-verifier.js +0 -1
  557. package/dist/services/qa/browser-event-logger.d.ts +0 -1
  558. package/dist/services/qa/browser-event-logger.js +0 -1
  559. package/dist/services/qa/browser-restart-detector.d.ts +0 -1
  560. package/dist/services/qa/browser-restart-detector.js +0 -1
  561. package/dist/services/qa/browser-reuse-hint.d.ts +0 -1
  562. package/dist/services/qa/browser-reuse-hint.js +0 -1
  563. package/dist/services/qa/qa-business-review-state.js +0 -2
  564. package/dist/services/qa/screenshot-archive-service.d.ts +0 -1
  565. package/dist/services/qa/screenshot-archive-service.js +0 -1
  566. package/dist/services/rd/impl.js +0 -1
  567. package/dist/services/rd/rd-service.d.ts +0 -5
  568. package/dist/services/rd/rd-service.js +0 -5
  569. package/dist/services/rd/reviewer-dispatch-policy.d.ts +0 -4
  570. package/dist/services/rd/reviewer-dispatch-policy.js +0 -4
  571. package/dist/services/rd/standards-diagnostic.js +0 -1
  572. package/dist/services/rd/tactical-stage.js +0 -1
  573. package/dist/services/rd-swarm/rd-swarm-types.d.ts +0 -1
  574. package/dist/services/rd-swarm/rd-swarm-types.js +0 -1
  575. package/dist/services/recommendations/installed-capability-detector.d.ts +5 -6
  576. package/dist/services/recommendations/installed-capability-detector.js +11 -11
  577. package/dist/services/release/version-precheck-service.d.ts +0 -2
  578. package/dist/services/release/version-precheck-service.js +0 -3
  579. package/dist/services/retrospective/retrospective-index.d.ts +0 -1
  580. package/dist/services/retrospective/retrospective-index.js +0 -1
  581. package/dist/services/retrospective/retrospective-show.d.ts +0 -1
  582. package/dist/services/retrospective/retrospective-show.js +0 -1
  583. package/dist/services/reviewer/model-family.js +0 -1
  584. package/dist/services/reviewer/reviewer-config.js +0 -1
  585. package/dist/services/reviewer/reviewer-service.d.ts +0 -1
  586. package/dist/services/reviewer/reviewer-service.js +0 -3
  587. package/dist/services/reviewer/selection-strategies.js +0 -1
  588. package/dist/services/runtime/runtime-detector.js +0 -1
  589. package/dist/services/runtime/runtime-service.d.ts +0 -2
  590. package/dist/services/runtime/vendor-adapter.d.ts +0 -7
  591. package/dist/services/runtime/vendors/claude-code.js +0 -1
  592. package/dist/services/runtime/vendors/codex.js +0 -1
  593. package/dist/services/runtime/vendors/copilot.js +0 -1
  594. package/dist/services/sc/sc-service.js +0 -6
  595. package/dist/services/scan/acceptance-coverage-service.js +0 -2
  596. package/dist/services/scan/api-diff-recorded.d.ts +0 -1
  597. package/dist/services/scan/api-diff-recorded.js +0 -1
  598. package/dist/services/scan/api-diff-service.d.ts +0 -1
  599. package/dist/services/scan/api-diff-service.js +0 -1
  600. package/dist/services/scan/api-diff-types.d.ts +0 -1
  601. package/dist/services/scan/api-diff-types.js +0 -1
  602. package/dist/services/scan/archetype-detection.d.ts +37 -0
  603. package/dist/services/scan/archetype-detection.js +175 -2
  604. package/dist/services/scan/archetype-service.js +36 -23
  605. package/dist/services/scan/file-size-policy.d.ts +0 -1
  606. package/dist/services/scan/file-size-policy.js +0 -5
  607. package/dist/services/scan/file-size-scan.d.ts +0 -1
  608. package/dist/services/scan/scan-types.d.ts +9 -0
  609. package/dist/services/security/safe-settings-path.js +0 -1
  610. package/dist/services/session/binding-store.d.ts +0 -4
  611. package/dist/services/session/binding-store.js +0 -7
  612. package/dist/services/session/caller-binding-service.d.ts +0 -6
  613. package/dist/services/session/caller-binding-service.js +0 -4
  614. package/dist/services/session/caller-id-types.d.ts +0 -3
  615. package/dist/services/session/caller-id-types.js +0 -2
  616. package/dist/services/session/getSessionDir.js +0 -1
  617. package/dist/services/session/index.js +0 -1
  618. package/dist/services/session/platform-fallbacks.d.ts +0 -3
  619. package/dist/services/session/platform-fallbacks.js +0 -3
  620. package/dist/services/session/resolve-caller-id.d.ts +0 -2
  621. package/dist/services/session/resolve-caller-id.js +0 -2
  622. package/dist/services/session/session-binding-bridge.d.ts +0 -2
  623. package/dist/services/session/session-binding-bridge.js +0 -15
  624. package/dist/services/session/session-checkpoint-service.d.ts +0 -1
  625. package/dist/services/session/session-checkpoint-service.js +0 -1
  626. package/dist/services/session/session-manager.d.ts +0 -8
  627. package/dist/services/session/session-manager.js +0 -19
  628. package/dist/services/session/session-resume-service.d.ts +0 -1
  629. package/dist/services/session/session-resume-service.js +0 -1
  630. package/dist/services/share/bundle-reader.d.ts +2 -5
  631. package/dist/services/share/bundle-reader.js +6 -8
  632. package/dist/services/share/bundle-writer.d.ts +2 -2
  633. package/dist/services/skill/resume-detector.js +0 -3
  634. package/dist/services/skill/skill-scheduler.d.ts +0 -1
  635. package/dist/services/skill/skill-scheduler.js +0 -1
  636. package/dist/services/skill/skill-search-service.d.ts +0 -2
  637. package/dist/services/skill/skill-search-service.js +0 -2
  638. package/dist/services/skillhub/release-diff.d.ts +2 -2
  639. package/dist/services/skillhub/release-export.d.ts +2 -2
  640. package/dist/services/skillhub/release-gc-blobs.d.ts +2 -2
  641. package/dist/services/skillhub/release-import.d.ts +2 -2
  642. package/dist/services/skillhub/release-import.js +2 -1
  643. package/dist/services/skillhub/release-retain.d.ts +2 -2
  644. package/dist/services/skillhub/release-retain.js +2 -1
  645. package/dist/services/skillhub/sqlite-store.d.ts +3 -3
  646. package/dist/services/skillhub/sqlite-store.js +4 -5
  647. package/dist/services/skills/hooks-codegate-superpowers.d.ts +0 -3
  648. package/dist/services/skills/hooks-codegate-superpowers.js +0 -14
  649. package/dist/services/skills/hooks-settings-service.d.ts +0 -2
  650. package/dist/services/skills/hooks-settings-service.js +0 -6
  651. package/dist/services/skills/presence-lease-service.d.ts +0 -1
  652. package/dist/services/skills/presence-lease-service.js +0 -1
  653. package/dist/services/skills/session-start-hook-constants.d.ts +0 -4
  654. package/dist/services/skills/session-start-hook-constants.js +0 -4
  655. package/dist/services/skills/skill-presence-service.d.ts +0 -8
  656. package/dist/services/skills/skill-presence-service.js +0 -13
  657. package/dist/services/skills/skill-statusline-model.d.ts +0 -6
  658. package/dist/services/skills/skill-statusline-model.js +1 -4
  659. package/dist/services/skills/skill-statusline-renderer.d.ts +0 -1
  660. package/dist/services/skills/skill-statusline-renderer.js +0 -12
  661. package/dist/services/skills/skill-statusline-service.js +0 -6
  662. package/dist/services/skills/skill-statusline-sid-suffix.d.ts +0 -2
  663. package/dist/services/skills/skill-statusline-sid-suffix.js +0 -2
  664. package/dist/services/skills/statusline-palette.d.ts +0 -2
  665. package/dist/services/skills/statusline-palette.js +0 -3
  666. package/dist/services/slice/slice-archive-service.js +0 -1
  667. package/dist/services/slice/slice-benchmark-service.d.ts +0 -1
  668. package/dist/services/slice/slice-benchmark-service.js +0 -1
  669. package/dist/services/slice/slice-check-service.js +0 -6
  670. package/dist/services/slice/slice-check-types.d.ts +0 -1
  671. package/dist/services/slice/slice-pick-service.d.ts +0 -1
  672. package/dist/services/slice/slice-pick-service.js +0 -1
  673. package/dist/services/slice/slice-review-state.js +0 -2
  674. package/dist/services/sqlite/sqlite-driver.d.ts +118 -0
  675. package/dist/services/sqlite/sqlite-driver.js +159 -0
  676. package/dist/services/standards/ide-aware-standards-service.d.ts +0 -2
  677. package/dist/services/standards/ide-aware-standards-service.js +0 -1
  678. package/dist/services/standards/loop-engineering-readiness-lint.d.ts +0 -1
  679. package/dist/services/standards/loop-engineering-readiness-lint.js +0 -1
  680. package/dist/services/standards/migrate-claude-rules-service.js +0 -3
  681. package/dist/services/standards/migrate-service.d.ts +0 -1
  682. package/dist/services/standards/migrate-service.js +0 -1
  683. package/dist/services/standards/missing-standards-detector.d.ts +0 -2
  684. package/dist/services/standards/missing-standards-detector.js +0 -3
  685. package/dist/services/standards/project-standards-service.d.ts +0 -1
  686. package/dist/services/standards/project-standards-service.js +0 -1
  687. package/dist/services/standards/standards-render.d.ts +0 -1
  688. package/dist/services/standards/standards-render.js +0 -1
  689. package/dist/services/standards/ui-library-dispatch-block.d.ts +0 -1
  690. package/dist/services/standards/ui-library-dispatch-block.js +0 -1
  691. package/dist/services/tech/tech-change-id-service.d.ts +0 -7
  692. package/dist/services/tech/tech-change-id-service.js +0 -7
  693. package/dist/services/tech/tech-service.js +0 -5
  694. package/dist/services/verdict/envelope-parsers.d.ts +0 -2
  695. package/dist/services/verdict/envelope-parsers.js +0 -2
  696. package/dist/services/verdict/envelopes.d.ts +0 -1
  697. package/dist/services/vm/vm-lease.js +0 -1
  698. package/dist/services/web/aria-node.d.ts +0 -1
  699. package/dist/services/web/bounded-output.d.ts +0 -1
  700. package/dist/services/web/bounded-output.js +0 -1
  701. package/dist/services/web/browser-acquire.js +0 -1
  702. package/dist/services/web/browser-cache-probe.js +0 -1
  703. package/dist/services/web/browser-session-manager.js +0 -1
  704. package/dist/services/web/daemon-entry.js +0 -1
  705. package/dist/services/web/daemon-registry.js +0 -1
  706. package/dist/services/web/daemon-supervisor.d.ts +4 -3
  707. package/dist/services/web/daemon-supervisor.js +4 -4
  708. package/dist/services/web/playwright-loader.js +0 -1
  709. package/dist/services/web/playwright-types.d.ts +0 -1
  710. package/dist/services/web/snapshot-pruner.js +0 -1
  711. package/dist/services/web/untrusted-envelope.d.ts +0 -1
  712. package/dist/services/web/web-artifact-paths.js +0 -1
  713. package/dist/services/web/web-client.d.ts +0 -1
  714. package/dist/services/web/web-daemon-service.js +0 -1
  715. package/dist/services/web/web-fallback.d.ts +0 -1
  716. package/dist/services/web/web-fallback.js +0 -1
  717. package/dist/services/web/web-install-service.js +0 -1
  718. package/dist/services/web/web-login-profile.js +0 -1
  719. package/dist/services/web/web-protocol.d.ts +0 -1
  720. package/dist/services/web/web-protocol.js +0 -1
  721. package/dist/services/web/web-status-report.js +0 -1
  722. package/dist/services/workflow/artifact-paths.js +0 -3
  723. package/dist/services/workflow/autonomous-resume-writer.js +0 -2
  724. package/dist/services/workflow/pipeline-verify-gate-support.d.ts +0 -5
  725. package/dist/services/workflow/pipeline-verify-gate-support.js +0 -11
  726. package/dist/services/workflow/pipeline-verify-service.d.ts +0 -2
  727. package/dist/services/workflow/pipeline-verify-service.js +0 -15
  728. package/dist/services/workflow/pipeline-verify-types.d.ts +0 -10
  729. package/dist/services/workflow/pipeline-verify-types.js +0 -2
  730. package/dist/services/workflow/plan-reader.d.ts +0 -1
  731. package/dist/services/workflow/plan-reader.js +0 -5
  732. package/dist/services/workflow/plan-refresher.js +0 -2
  733. package/dist/services/workflow/plan-trigger-detector.d.ts +0 -2
  734. package/dist/services/workflow/plan-trigger-detector.js +0 -3
  735. package/dist/services/workflow/workflow-autonomous-resume-helpers.js +0 -5
  736. package/dist/services/workflow/workflow-autonomous-service.js +0 -2
  737. package/dist/services/workflow/workflow-autonomous-types.d.ts +0 -2
  738. package/dist/services/workflow/workflow-autonomous-types.js +0 -2
  739. package/dist/services/workflow/workflow-graph-types.d.ts +0 -1
  740. package/dist/services/workflow/workflow-graph-types.js +0 -1
  741. package/dist/services/workflow/workflow-router-service.js +0 -4
  742. package/dist/services/workflow/workflow-skip-service.d.ts +0 -1
  743. package/dist/services/workflow/workflow-skip-service.js +0 -1
  744. package/dist/services/workflow/workflow-spec-lint.d.ts +0 -2
  745. package/dist/services/workflow/workflow-spec-lint.js +0 -2
  746. package/dist/services/workflow/workflow-spec-types.d.ts +0 -1
  747. package/dist/services/workflow/workflow-spec-types.js +0 -1
  748. package/dist/services/workflow/workflow-spec-yaml.d.ts +0 -2
  749. package/dist/services/workflow/workflow-spec-yaml.js +0 -2
  750. package/dist/services/workflow/workflow-spec.js +0 -1
  751. package/dist/services/workflow/workflow-state-store.js +0 -1
  752. package/dist/services/workspace/claude-settings-template.d.ts +0 -4
  753. package/dist/services/workspace/claude-settings-template.js +0 -4
  754. package/dist/services/workspace/generated-artifacts-stamp.d.ts +2 -2
  755. package/dist/services/workspace/generated-artifacts-stamp.js +2 -2
  756. package/dist/services/workspace/migrate-1-4-1-service.d.ts +0 -1
  757. package/dist/services/workspace/migrate-1-4-1-service.js +0 -1
  758. package/dist/services/workspace/migrate-service.js +0 -8
  759. package/dist/services/workspace/migrate-types.d.ts +0 -4
  760. package/dist/services/workspace/migrate-types.js +0 -1
  761. package/dist/services/workspace/reconcile-migrate.d.ts +0 -3
  762. package/dist/services/workspace/reconcile-migrate.js +0 -5
  763. package/dist/services/workspace/reconcile-service.d.ts +0 -3
  764. package/dist/services/workspace/reconcile-service.js +0 -7
  765. package/dist/services/workspace/reconcile-types.d.ts +0 -5
  766. package/dist/services/workspace/sid-naming-guard.d.ts +0 -1
  767. package/dist/services/workspace/sid-naming-guard.js +0 -1
  768. package/dist/services/workspace/templates/project-scan/index.d.ts +0 -3
  769. package/dist/services/workspace/templates/project-scan/index.js +0 -3
  770. package/dist/services/workspace/workspace-claude-settings-materializer.d.ts +0 -1
  771. package/dist/services/workspace/workspace-claude-settings-materializer.js +0 -4
  772. package/dist/services/workspace/workspace-service.d.ts +0 -7
  773. package/dist/services/workspace/workspace-service.js +1 -17
  774. package/dist/services/worktree/playwright-profile.js +0 -1
  775. package/dist/services/worktree/worktree-lease-types.d.ts +0 -1
  776. package/dist/services/worktree/worktree-lease-types.js +0 -1
  777. package/dist/services/worktree/worktree-lease.d.ts +0 -2
  778. package/dist/services/worktree/worktree-lease.js +0 -2
  779. package/dist/shared/format-md-compact.d.ts +0 -2
  780. package/dist/shared/format-md-compact.js +0 -2
  781. package/dist/shared/incrementing-number.d.ts +0 -1
  782. package/dist/shared/incrementing-number.js +0 -1
  783. package/dist/shared/path-utils.d.ts +0 -1
  784. package/dist/shared/path-utils.js +0 -1
  785. package/dist/shared/runtime-root.d.ts +0 -1
  786. package/dist/shared/runtime-root.js +0 -1
  787. package/dist/shared/stale-policy.d.ts +0 -1
  788. package/dist/shared/stale-policy.js +0 -1
  789. package/package.json +12 -10
  790. package/scripts/canonical-store-link.mjs +296 -0
  791. package/scripts/canonical-store-prune.mjs +131 -0
  792. package/scripts/canonical-store.mjs +298 -0
  793. package/scripts/install-skills.mjs +175 -560
  794. package/skills/bee/peaks-qa/references/reading-handoff-frontmatter.md +3 -1
  795. package/skills/bee/peaks-rd/references/parallel-review-fanout.md +1 -1
  796. package/skills/bee/peaks-rd/references/rd-fanout-contracts.md +3 -2
  797. package/skills/bee/peaks-rd/references/writing-handoff-frontmatter.md +29 -7
  798. package/skills/peaks-audit/SKILL.md +3 -3
  799. package/skills/peaks-code/references/frontend-only-mode.md +2 -2
  800. package/skills/peaks-code/references/startup-sequence.md +0 -4
  801. package/dist/cli/commands/upgrade-commands.d.ts +0 -25
  802. package/dist/cli/commands/upgrade-commands.js +0 -154
  803. package/dist/services/codegraph/codegraph-include-reconciler.d.ts +0 -10
  804. package/dist/services/codegraph/codegraph-include-reconciler.js +0 -160
  805. package/dist/services/upgrade/1x-detector-service.d.ts +0 -7
  806. package/dist/services/upgrade/1x-detector-service.js +0 -96
  807. package/dist/services/upgrade/gitignore-migrate-service.d.ts +0 -56
  808. package/dist/services/upgrade/gitignore-migrate-service.js +0 -170
  809. package/dist/services/upgrade/upgrade-service.d.ts +0 -81
  810. package/dist/services/upgrade/upgrade-service.js +0 -428
  811. package/skills/peaks-code/references/step-0-55-1x-detection.md +0 -83
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Comment-only views of a source file, and whether a citation it makes holds.
3
+ *
4
+ * The shape and candidate rules live in `citation-rules.ts`, shared with the
5
+ * repository's citation guard; this module holds the two things that rule needs in
6
+ * order to be applied: the comment lines of a file, and the probes that answer
7
+ * "does this path resolve here".
8
+ *
9
+ * Deliberately NOT `ts.getLeadingCommentRanges`:
10
+ * `src/services/qa/bdd-test-style-verifier.ts` records that the API returns zero
11
+ * ranges for comment-only blocks, which would silently read a header comment as no
12
+ * comment at all. The spans come from `comment-spans.ts` instead, which keeps both
13
+ * order and line numbers — what the worklist and the prune both need — and knows
14
+ * what character it is inside, which a per-line rule cannot.
15
+ */
16
+ import { type Citation } from './citation-rules.js';
17
+ /** One source line, with its 1-based number, as the classifier sees it. */
18
+ export type CommentLine = {
19
+ readonly line: number;
20
+ readonly text: string;
21
+ };
22
+ /**
23
+ * The comment lines of a file: full-line comments, plus the trailing comment of a
24
+ * code line. Non-comment lines are omitted but their numbers survive, so a report
25
+ * can point at the code a comment is attached to.
26
+ *
27
+ * Derived from `commentSpans`, which reads the text as a stream. The previous version
28
+ * decided per line and was wrong in both directions at once: a `//` inside a template
29
+ * literal became a comment (and then a deletion that cut the literal open), while a
30
+ * block comment's interior line that does not start with `*` was missed.
31
+ */
32
+ export declare function commentLines(source: string): CommentLine[];
33
+ /**
34
+ * The path-shaped backtick spans in a line, in order, with their bounds kept.
35
+ *
36
+ * The bounds are not decoration: two of the candidate rules read the text OUTSIDE
37
+ * the span — an illustration cue sits immediately before it, a `<…>` fill-in wraps
38
+ * it — so a caller that discards positions cannot apply them.
39
+ */
40
+ export declare function citations(text: string): Citation[];
41
+ /** Every path-shaped span in a line, without its bounds. */
42
+ export declare function citedPaths(text: string): string[];
43
+ /**
44
+ * The workspace package a citing file belongs to, or null at the repository root.
45
+ *
46
+ * In a pnpm workspace, `src/x.ts` written inside `packages/<name>/src/` names that
47
+ * package's own file, not a repository-root one: three comments in this repository cite
48
+ * `packages/peaks-loop-internal-runtime/src/status-protocol.ts` and
49
+ * `packages/peaks-loop-shared-channel/src/index.ts` by their package-relative spelling,
50
+ * and both files exist. Treating those as dead references would seed a ratchet with
51
+ * findings that refuse the next honest package-internal citation, so the package root is
52
+ * an origin — for a citing file that is itself inside a package, and never for a
53
+ * top-level one.
54
+ */
55
+ export declare function packageRootOf(citingFileRel: string): string | null;
56
+ /**
57
+ * Does this path-shaped citation resolve anywhere it is allowed to resolve?
58
+ *
59
+ * `installed` must be a filesystem-only probe, not the ignore-widened one:
60
+ * `node_modules` is itself in `.gitignore`, so an ignore-aware answer here is
61
+ * "yes, installed" for every first segment, and the whole dead-reference count
62
+ * collapses to zero while looking perfectly healthy. Measured, not theorised.
63
+ */
64
+ export declare function citationResolves(citation: string, citingFileRel: string, exists: (relPath: string) => boolean, installed?: (relPath: string) => boolean): boolean;
65
+ /** The default existence probe, against a real working tree. */
66
+ export declare function treeExists(repoRoot: string): (relPath: string) => boolean;
@@ -0,0 +1,184 @@
1
+ /**
2
+ * Comment-only views of a source file, and whether a citation it makes holds.
3
+ *
4
+ * The shape and candidate rules live in `citation-rules.ts`, shared with the
5
+ * repository's citation guard; this module holds the two things that rule needs in
6
+ * order to be applied: the comment lines of a file, and the probes that answer
7
+ * "does this path resolve here".
8
+ *
9
+ * Deliberately NOT `ts.getLeadingCommentRanges`:
10
+ * `src/services/qa/bdd-test-style-verifier.ts` records that the API returns zero
11
+ * ranges for comment-only blocks, which would silently read a header comment as no
12
+ * comment at all. The spans come from `comment-spans.ts` instead, which keeps both
13
+ * order and line numbers — what the worklist and the prune both need — and knows
14
+ * what character it is inside, which a per-line rule cannot.
15
+ */
16
+ import { existsSync } from 'node:fs';
17
+ import { dirname, join } from 'node:path';
18
+ import { LINE_SUFFIX, PATH_SHAPED, REPO_ANCHORS, SESSION_WORKSPACE_DIRS, SYNTHETIC_SEGMENT } from './citation-rules.js';
19
+ import { commentSpans } from './comment-spans.js';
20
+ /** Repo-relative paths are POSIX even on a Windows host, or every lookup below
21
+ * compares a `src\a.ts` against the forward-slash keys and the answer is always "no". */
22
+ function toPosix(path) {
23
+ return path.replace(/\\/g, '/');
24
+ }
25
+ /**
26
+ * The comment lines of a file: full-line comments, plus the trailing comment of a
27
+ * code line. Non-comment lines are omitted but their numbers survive, so a report
28
+ * can point at the code a comment is attached to.
29
+ *
30
+ * Derived from `commentSpans`, which reads the text as a stream. The previous version
31
+ * decided per line and was wrong in both directions at once: a `//` inside a template
32
+ * literal became a comment (and then a deletion that cut the literal open), while a
33
+ * block comment's interior line that does not start with `*` was missed.
34
+ */
35
+ export function commentLines(source) {
36
+ const out = [];
37
+ const rows = source.split(/\r?\n/);
38
+ for (const span of commentSpans(source)) {
39
+ for (let line = span.line; line <= span.endLine; line += 1) {
40
+ const row = rows[line - 1];
41
+ if (row === undefined)
42
+ continue;
43
+ // The first line of a block comment that opens mid-code keeps only its own tail,
44
+ // so a caller never reads the code before `/*` as part of the comment.
45
+ const from = line === span.line ? span.start - lineStart(source, line) : 0;
46
+ out.push({ line, text: row.slice(Math.max(0, from)) });
47
+ }
48
+ }
49
+ return out;
50
+ }
51
+ /** The offset `source` has advanced by the start of 1-based `line`. */
52
+ function lineStart(source, line) {
53
+ let at = 0;
54
+ for (let n = 1; n < line; n += 1) {
55
+ const next = source.indexOf('\n', at);
56
+ if (next < 0)
57
+ return source.length;
58
+ at = next + 1;
59
+ }
60
+ return at;
61
+ }
62
+ /**
63
+ * The path-shaped backtick spans in a line, in order, with their bounds kept.
64
+ *
65
+ * The bounds are not decoration: two of the candidate rules read the text OUTSIDE
66
+ * the span — an illustration cue sits immediately before it, a `<…>` fill-in wraps
67
+ * it — so a caller that discards positions cannot apply them.
68
+ */
69
+ export function citations(text) {
70
+ const found = [];
71
+ for (const match of text.matchAll(/`([^`\s]+)`/g)) {
72
+ const span = match[1] ?? '';
73
+ const from = match.index ?? 0;
74
+ if (PATH_SHAPED.test(span)) {
75
+ found.push({ span, from, to: from + span.length + 2 });
76
+ }
77
+ }
78
+ return found;
79
+ }
80
+ /** Every path-shaped span in a line, without its bounds. */
81
+ export function citedPaths(text) {
82
+ return citations(text).map((citation) => citation.span);
83
+ }
84
+ /**
85
+ * Is this span a module specifier rather than a repo path? `peaks-loop-shared/result`
86
+ * in prose names an import, and no rule about files applies to it. Decided through
87
+ * the dependency tree instead of an allowlist: the first segment is checked against
88
+ * installed packages, so a new dependency needs no edit here. An allowlist of
89
+ * today's package names would turn every future one into a false finding — and a
90
+ * rule that is wrong the moment the repository grows is a rule that gets widened
91
+ * until it stops meaning anything.
92
+ */
93
+ function isInstalledPackageName(head, second, installed) {
94
+ const name = head.startsWith('@') && second !== undefined ? `${head}/${second}` : head;
95
+ return installed(`node_modules/${name}`);
96
+ }
97
+ /**
98
+ * The two shapes a citation may clear without touching the tree: an installed
99
+ * package's module specifier, and a session-runtime dir abbreviated in prose.
100
+ */
101
+ function resolvesOutsideTheTree(stripped, exists, installed) {
102
+ const [head, second] = stripped.split('/');
103
+ if (head === undefined)
104
+ return false;
105
+ if (isInstalledPackageName(head, second, installed))
106
+ return true;
107
+ return SESSION_WORKSPACE_DIRS.has(head) && !REPO_ANCHORS.test(stripped);
108
+ }
109
+ /**
110
+ * The workspace package a citing file belongs to, or null at the repository root.
111
+ *
112
+ * In a pnpm workspace, `src/x.ts` written inside `packages/<name>/src/` names that
113
+ * package's own file, not a repository-root one: three comments in this repository cite
114
+ * `packages/peaks-loop-internal-runtime/src/status-protocol.ts` and
115
+ * `packages/peaks-loop-shared-channel/src/index.ts` by their package-relative spelling,
116
+ * and both files exist. Treating those as dead references would seed a ratchet with
117
+ * findings that refuse the next honest package-internal citation, so the package root is
118
+ * an origin — for a citing file that is itself inside a package, and never for a
119
+ * top-level one.
120
+ */
121
+ export function packageRootOf(citingFileRel) {
122
+ const segments = citingFileRel.split('/');
123
+ if (segments[0] !== 'packages' || segments[1] === undefined)
124
+ return null;
125
+ return `packages/${segments[1]}`;
126
+ }
127
+ /**
128
+ * Does the citation point at a file inside the citing file's OWN workspace package?
129
+ *
130
+ * `join` is POSIX-normalised on the way through, because a `packages\alpha/src/x.ts`
131
+ * key matches nothing on the host this repository is developed on.
132
+ */
133
+ function resolvesInOwnPackage(stripped, citingFileRel, exists) {
134
+ const pkg = packageRootOf(citingFileRel);
135
+ return pkg !== null && exists(toPosix(join(pkg, stripped)));
136
+ }
137
+ /**
138
+ * The two origins a repo-anchored citation may be satisfied at: the repository root,
139
+ * or the workspace package the citing file itself lives in.
140
+ *
141
+ * Extracted because `citationResolves` is at the complexity ceiling the shipped rule
142
+ * sets, and an inlined `||` there would have been the second branch this file cannot
143
+ * afford — a limit that forces a helper out is the limit working, not the limit being
144
+ * in the way.
145
+ */
146
+ function resolvesAtARootOrigin(stripped, citingFileRel, exists) {
147
+ return exists(stripped) || resolvesInOwnPackage(stripped, citingFileRel, exists);
148
+ }
149
+ /**
150
+ * Does this path-shaped citation resolve anywhere it is allowed to resolve?
151
+ *
152
+ * `installed` must be a filesystem-only probe, not the ignore-widened one:
153
+ * `node_modules` is itself in `.gitignore`, so an ignore-aware answer here is
154
+ * "yes, installed" for every first segment, and the whole dead-reference count
155
+ * collapses to zero while looking perfectly healthy. Measured, not theorised.
156
+ */
157
+ export function citationResolves(citation, citingFileRel, exists, installed = exists) {
158
+ const stripped = citation.replace(LINE_SUFFIX, '');
159
+ if (stripped.length === 0 || SYNTHETIC_SEGMENT.test(stripped))
160
+ return true;
161
+ if (resolvesOutsideTheTree(stripped, exists, installed))
162
+ return true;
163
+ if (resolvesAtARootOrigin(stripped, citingFileRel, exists))
164
+ return true;
165
+ // An anchored citation claims the repo root and nowhere else; anything that did
166
+ // not resolve above is dead.
167
+ if (REPO_ANCHORS.test(stripped))
168
+ return false;
169
+ // No repo anchor: read from the citing file's own directory and each ancestor
170
+ // below the repo root, which is where a sibling reference (a subdirectory path
171
+ // written by the file sitting next to it) actually points.
172
+ for (let dir = dirname(citingFileRel); dir.length > 0 && dir !== dirname(dir);) {
173
+ if (exists(toPosix(join(dir, stripped))))
174
+ return true;
175
+ dir = dirname(dir);
176
+ if (dir === '.')
177
+ return false;
178
+ }
179
+ return false;
180
+ }
181
+ /** The default existence probe, against a real working tree. */
182
+ export function treeExists(repoRoot) {
183
+ return (relPath) => existsSync(join(repoRoot, relPath));
184
+ }
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Which comments are still worth their bytes to the next reader.
3
+ *
4
+ * Two categories are reported as hygiene debt, and they fail in different
5
+ * directions, so they are kept separate rather than summed into one number:
6
+ *
7
+ * - `dead-reference` — the comment asserts that some file exists by naming a
8
+ * path, and that path resolves nowhere the citation is allowed to mean. This
9
+ * is checkable, and it is the class that has already cost this repository a
10
+ * wrong decision: the header of `src/services/prd/handoff-gate-evidence.ts`
11
+ * described a pre-existing "no producer" state in the same voice as the
12
+ * current one, a reader took it as fact, and the fix was chased into
13
+ * `dist/` instead of the source.
14
+ * - `narrative` — the comment is about the work rather than the code: slice
15
+ * or `.peaks/docs/backlog.md`; in a source file it is re-read by every
16
+ * later agent, at their token cost, and it rots silently the moment the
17
+ * history it summarises moves.
18
+ *
19
+ * The narrative rule is a marker list, not a heuristic about length or
20
+ * sentence shape, precisely because a false positive here is worse than a false
21
+ * positive on `dead-reference`: a wrong `dead-reference` is visible in a diff as
22
+ * a removed path, while a wrong `narrative` deletes a reason someone wrote down
23
+ * on purpose. Every finding carries its matched marker for that reason — an
24
+ * unattributable finding is one nobody can review, and a rule nobody can review
25
+ * is a rule that will be widened until it stops mattering.
26
+ */
27
+ /** Why a comment line was flagged. */
28
+ export type CommentFindingKind = 'dead-reference' | 'narrative';
29
+ export type CommentFinding = {
30
+ readonly file: string;
31
+ readonly line: number;
32
+ readonly kind: CommentFindingKind;
33
+ /** The path that does not resolve, or the marker that matched. Never prose. */
34
+ readonly matched: string;
35
+ readonly text: string;
36
+ };
37
+ /**
38
+ * Development-process markers. Each entry is a named rule so a report can say
39
+ * WHICH one fired — the failure mode this whole feature is modelled on is a
40
+ * refusal that could not name itself (the content scan in
41
+ * `src/services/memory/project-memory-service/store/atomic-write.ts` answered a
42
+ * ten-pattern `||` chain with `matchedTerm: null`).
43
+ *
44
+ * Order is significant and is the whole attribution: one line reports its FIRST
45
+ * match, so a specific marker must precede the general one that also fits it.
46
+ * the other way round would blame the wrong rule for every such line.
47
+ */
48
+ export declare const NARRATIVE_MARKERS: ReadonlyArray<{
49
+ name: string;
50
+ pattern: RegExp;
51
+ }>;
52
+ /**
53
+ * Comments that are LOAD-BEARING: text some program parses as data, not prose it reads.
54
+ *
55
+ * These are exempt from BOTH kinds, because the prune acts on a finding of either kind and
56
+ * deleting any of them does not reduce debt — it removes an enforcement mechanism, or
57
+ * adds a finding to a gated row. Each shape names the reader that consumes it; a shape
58
+ * with no reader to point at is a guess, and guesses are what the 4.1.1 prune learned from
59
+ * `HARD_FLOOR_CATEGORIES` member in `src/services/code/mode-gate.ts`, which is the only
60
+ * thing backing this repo's one real layer-C promotion, and the gate-H backing check went
61
+ * red — `feedback-promotion-artifact.test.ts` AC5).
62
+ *
63
+ * - `promotion-evidence` — `src/services/feedback/promotion-source-comments.ts:79`
64
+ * (`citedMemories`) feeds `promotion-artifact-evidence.ts:214`, which decides whether a
65
+ * promoted rule is actually backed.
66
+ * - `grace-marker` — `scripts/lint/silent-warning-detector.mjs:149` subtracts a
67
+ * silent-warning finding for any line the offending node spans that carries
68
+ * `TODO(g2)`. Deleting the marker therefore RAISES `silentWarningCatchReturnNull` /
69
+ * `…EmptyCatch`, both of which may only go down.
70
+ * - `toolchain-directive` — `@ts-expect-error` and friends are read by the compiler (an
71
+ * unused one is itself an error) and `eslint-disable` by the lint leg; a paired disable
72
+ * like `src/services/compact-statusline/compact-statusline-cell-table.ts:72`+`:99`
73
+ * must move as a pair or the file starts reporting.
74
+ */
75
+ export declare const LOAD_BEARING_SHAPES: ReadonlyArray<{
76
+ name: string;
77
+ pattern: RegExp;
78
+ }>;
79
+ /** Is this comment text consumed by a program? */
80
+ export declare function isLoadBearing(text: string): boolean;
81
+ export type CommentScanInput = {
82
+ /** Repo-relative path, e.g. `src/services/x/y.ts`. */
83
+ readonly file: string;
84
+ readonly source: string;
85
+ };
86
+ export type CommentScanOptions = {
87
+ /** Injected for tests; defaults to nothing-exists so a caller must decide. */
88
+ readonly exists?: (relPath: string) => boolean;
89
+ /** True for directories only; defaults to `exists`, which is true for both. */
90
+ readonly dirExists?: (relDir: string) => boolean;
91
+ /** Filesystem-only view of the tree, for the installed-package question.
92
+ * Defaults to `exists`. */
93
+ readonly installed?: (relPath: string) => boolean;
94
+ readonly kinds?: readonly CommentFindingKind[];
95
+ };
96
+ /** Every finding in one file, in line order. */
97
+ export declare function scanComments(input: CommentScanInput, options?: CommentScanOptions): CommentFinding[];
98
+ /** Per-file totals, which is the shape the gate ratchets and the worklist sorts by. */
99
+ export type CommentFileSummary = {
100
+ readonly file: string;
101
+ readonly commentLines: number;
102
+ readonly deadReferences: number;
103
+ readonly narrative: number;
104
+ };
105
+ export declare function summarize(input: CommentScanInput, findings: readonly CommentFinding[]): CommentFileSummary;
@@ -0,0 +1,170 @@
1
+ /**
2
+ * Which comments are still worth their bytes to the next reader.
3
+ *
4
+ * Two categories are reported as hygiene debt, and they fail in different
5
+ * directions, so they are kept separate rather than summed into one number:
6
+ *
7
+ * - `dead-reference` — the comment asserts that some file exists by naming a
8
+ * path, and that path resolves nowhere the citation is allowed to mean. This
9
+ * is checkable, and it is the class that has already cost this repository a
10
+ * wrong decision: the header of `src/services/prd/handoff-gate-evidence.ts`
11
+ * described a pre-existing "no producer" state in the same voice as the
12
+ * current one, a reader took it as fact, and the fix was chased into
13
+ * `dist/` instead of the source.
14
+ * - `narrative` — the comment is about the work rather than the code: slice
15
+ * or `.peaks/docs/backlog.md`; in a source file it is re-read by every
16
+ * later agent, at their token cost, and it rots silently the moment the
17
+ * history it summarises moves.
18
+ *
19
+ * The narrative rule is a marker list, not a heuristic about length or
20
+ * sentence shape, precisely because a false positive here is worse than a false
21
+ * positive on `dead-reference`: a wrong `dead-reference` is visible in a diff as
22
+ * a removed path, while a wrong `narrative` deletes a reason someone wrote down
23
+ * on purpose. Every finding carries its matched marker for that reason — an
24
+ * unattributable finding is one nobody can review, and a rule nobody can review
25
+ * is a rule that will be widened until it stops mattering.
26
+ */
27
+ import { citationResolves, citations, commentLines } from './comment-citations.js';
28
+ import { isCitationCandidate } from './citation-rules.js';
29
+ /**
30
+ * Development-process markers. Each entry is a named rule so a report can say
31
+ * WHICH one fired — the failure mode this whole feature is modelled on is a
32
+ * refusal that could not name itself (the content scan in
33
+ * `src/services/memory/project-memory-service/store/atomic-write.ts` answered a
34
+ * ten-pattern `||` chain with `matchedTerm: null`).
35
+ *
36
+ * Order is significant and is the whole attribution: one line reports its FIRST
37
+ * match, so a specific marker must precede the general one that also fits it.
38
+ * the other way round would blame the wrong rule for every such line.
39
+ */
40
+ export const NARRATIVE_MARKERS = [
41
+ { name: 'finding-id', pattern: /\b[DF]\d+\s+of\b/ },
42
+ { name: 'acceptance-id', pattern: /\bAC-\d+\b/ },
43
+ {
44
+ name: 'slice-id',
45
+ pattern: /\bslice\s+(?:`?)?(?:20\d\d-\d\d-\d\d|rid-|change-|S\d+\b|0\d\d\b)/i
46
+ },
47
+ { name: 'change-folder', pattern: /\b20\d\d-\d\d-\d\d-[a-z]+-[a-z-]+/ },
48
+ { name: 'rid-id', pattern: /\brid-[a-z0-9][a-z0-9._-]*\b/i },
49
+ {
50
+ name: 'historical-voice',
51
+ pattern: /\b(used to (?:say|claim|read|write)|previously (?:named|said)|no longer (?:exists|ships|carries)|which never existed|did not exist)\b/i
52
+ },
53
+ { name: 'deleted-test-ref', pattern: /\b(?:tests?|specs?)\b[^.]{0,48}\b(?:was|were) deleted\b/i },
54
+ {
55
+ name: 'guard-self-reference',
56
+ pattern: /\bthis (?:comment|header|paragraph|note) (?:says|claimed|documents|is )/i
57
+ }
58
+ ];
59
+ /**
60
+ * Comments that are LOAD-BEARING: text some program parses as data, not prose it reads.
61
+ *
62
+ * These are exempt from BOTH kinds, because the prune acts on a finding of either kind and
63
+ * deleting any of them does not reduce debt — it removes an enforcement mechanism, or
64
+ * adds a finding to a gated row. Each shape names the reader that consumes it; a shape
65
+ * with no reader to point at is a guess, and guesses are what the 4.1.1 prune learned from
66
+ * `HARD_FLOOR_CATEGORIES` member in `src/services/code/mode-gate.ts`, which is the only
67
+ * thing backing this repo's one real layer-C promotion, and the gate-H backing check went
68
+ * red — `feedback-promotion-artifact.test.ts` AC5).
69
+ *
70
+ * - `promotion-evidence` — `src/services/feedback/promotion-source-comments.ts:79`
71
+ * (`citedMemories`) feeds `promotion-artifact-evidence.ts:214`, which decides whether a
72
+ * promoted rule is actually backed.
73
+ * - `grace-marker` — `scripts/lint/silent-warning-detector.mjs:149` subtracts a
74
+ * silent-warning finding for any line the offending node spans that carries
75
+ * `TODO(g2)`. Deleting the marker therefore RAISES `silentWarningCatchReturnNull` /
76
+ * `…EmptyCatch`, both of which may only go down.
77
+ * - `toolchain-directive` — `@ts-expect-error` and friends are read by the compiler (an
78
+ * unused one is itself an error) and `eslint-disable` by the lint leg; a paired disable
79
+ * like `src/services/compact-statusline/compact-statusline-cell-table.ts:72`+`:99`
80
+ * must move as a pair or the file starts reporting.
81
+ */
82
+ export const LOAD_BEARING_SHAPES = [
83
+ { name: 'promotion-evidence', pattern: /\.peaks\/memory\/[^\s`]+\.md/ },
84
+ { name: 'grace-marker', pattern: /\bTODO\(g2\)/ },
85
+ {
86
+ name: 'toolchain-directive',
87
+ pattern: /(?:eslint-disable|prettier-ignore|@ts-[a-z-]+|@type\b|@vitest-slow|@covers\b)/
88
+ }
89
+ ];
90
+ /** Is this comment text consumed by a program? */
91
+ export function isLoadBearing(text) {
92
+ return LOAD_BEARING_SHAPES.some((shape) => shape.pattern.test(text));
93
+ }
94
+ function deadReferenceFindings(entry, judge) {
95
+ const ctx = { file: judge.file, dirExists: judge.dirExists };
96
+ const out = [];
97
+ for (const citation of citations(entry.text)) {
98
+ if (!isCitationCandidate(citation, entry.text, ctx))
99
+ continue;
100
+ if (citationResolves(citation.span, judge.file, judge.exists, judge.installed))
101
+ continue;
102
+ out.push({
103
+ file: judge.file,
104
+ line: entry.line,
105
+ kind: 'dead-reference',
106
+ matched: citation.span,
107
+ text: entry.text.trim()
108
+ });
109
+ }
110
+ return out;
111
+ }
112
+ /**
113
+ * One line, both readings. A line reports at most ONE narrative marker — its
114
+ * first — because the list is ordered specific-before-general, and a line that
115
+ * named every rule it matches would multiply the count without naming anything
116
+ * a reader could not already see.
117
+ */
118
+ function classifyLine(entry, judge) {
119
+ // Before either kind: a load-bearing line is not debt under any reading, so it must not
120
+ // be reported as a dead reference either — the path it cites is evidence, not a claim
121
+ // about where a file lives.
122
+ if (isLoadBearing(entry.text))
123
+ return [];
124
+ const out = judge.kinds.has('dead-reference')
125
+ ? deadReferenceFindings(entry, judge)
126
+ : [];
127
+ if (!judge.kinds.has('narrative'))
128
+ return out;
129
+ for (const marker of NARRATIVE_MARKERS) {
130
+ const hit = marker.pattern.exec(entry.text);
131
+ if (hit === null)
132
+ continue;
133
+ out.push({
134
+ file: judge.file,
135
+ line: entry.line,
136
+ kind: 'narrative',
137
+ matched: `${marker.name}:${hit[0].trim()}`,
138
+ text: entry.text.trim()
139
+ });
140
+ break;
141
+ }
142
+ return out;
143
+ }
144
+ /** Every finding in one file, in line order. */
145
+ export function scanComments(input, options = {}) {
146
+ const exists = options.exists ?? (() => false);
147
+ const judge = {
148
+ file: input.file,
149
+ exists,
150
+ installed: options.installed ?? exists,
151
+ dirExists: options.dirExists ?? exists,
152
+ kinds: new Set(options.kinds ?? ['dead-reference', 'narrative'])
153
+ };
154
+ const out = [];
155
+ for (const entry of commentLines(input.source)) {
156
+ out.push(...classifyLine(entry, judge));
157
+ }
158
+ return out;
159
+ }
160
+ function countKind(findings, kind) {
161
+ return findings.filter((finding) => finding.kind === kind).length;
162
+ }
163
+ export function summarize(input, findings) {
164
+ return {
165
+ file: input.file,
166
+ commentLines: commentLines(input.source).length,
167
+ deadReferences: countKind(findings, 'dead-reference'),
168
+ narrative: countKind(findings, 'narrative')
169
+ };
170
+ }
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Remove the comments the scan says are debt — and prove nothing else moved.
3
+ *
4
+ * The actuator is the dangerous half of this feature: a classifier that is 86%
5
+ * precise only misinforms, but a pruner that is 86% precise deletes. So the
6
+ * deliverable here is not the deletion, it is the PROOF, and the proof is a
7
+ * structural check run on every file before it is written:
8
+ *
9
+ * - the diff is computed line-by-line against the plan, so a changed line that
10
+ * the scan never named is a violation, not a surprise;
11
+ * - every removed line must be a comment line, and a stripped trailing comment
12
+ * must leave its code byte-identical;
13
+ * - a line that carries a block-comment delimiter opening or closing ELSEWHERE
14
+ * is never removed, because deleting it would turn the rest of the comment into
15
+ * code — the one failure mode that makes this a compile error rather than a
16
+ * lost sentence;
17
+ * - a file whose line endings are mixed is left alone, since re-joining it would
18
+ * rewrite every line and the proof would stop meaning anything.
19
+ *
20
+ * Anything that fails the check is reported and NOT written. The ledger records
21
+ * every line removed, with the rule that fired, so a prune is reviewable after the
22
+ * fact instead of only before it.
23
+ */
24
+ import type { CommentFinding, CommentFindingKind } from './comment-hygiene.js';
25
+ /** What the pruner will do to one line. */
26
+ export type PruneAction = {
27
+ readonly file: string;
28
+ readonly line: number;
29
+ readonly kind: CommentFindingKind;
30
+ readonly matched: string;
31
+ /** `drop-line` deletes the whole comment line; `strip-trailing` keeps the code. */
32
+ readonly mode: 'drop-line' | 'strip-trailing';
33
+ /** The full text of the line as it sits on disk right now. */
34
+ readonly lineText: string;
35
+ /** The comment as the SCAN saw it — for a trailing comment, not the whole line. */
36
+ readonly comment: string;
37
+ };
38
+ /** A finding the pruner refused to act on, with the reason. */
39
+ export type PruneSkip = {
40
+ readonly file: string;
41
+ readonly line: number;
42
+ readonly reason: string;
43
+ readonly text: string;
44
+ };
45
+ export type PruneOptions = {
46
+ readonly projectRoot: string;
47
+ /** Narrow to one category; the default is both, which is the accepted boundary. */
48
+ readonly kinds?: readonly CommentFindingKind[];
49
+ /** Restrict to one file, repo-relative — how a single-case proof is run. */
50
+ readonly onlyFile?: string;
51
+ /** Write the files. False (the default) plans and proves without touching disk. */
52
+ readonly apply?: boolean;
53
+ };
54
+ export type PruneResult = {
55
+ readonly scannedFiles: number;
56
+ readonly planned: number;
57
+ readonly dropped: number;
58
+ readonly stripped: number;
59
+ readonly skipped: number;
60
+ readonly touchedFiles: readonly string[];
61
+ readonly notWritten: readonly string[];
62
+ readonly ledgerPath: string;
63
+ readonly actions: readonly PruneAction[];
64
+ readonly skips: readonly PruneSkip[];
65
+ readonly applied: boolean;
66
+ };
67
+ /**
68
+ * Decide the fate of every finding.
69
+ *
70
+ * The line is re-read here and passed back through `commentLines`, the scan's own
71
+ * extractor, rather than compared against the whole line: a trailing comment's
72
+ * recorded text is the comment, not the code before it, and an equality test on the
73
+ * raw line would reject every one of them. Re-using the extractor is what makes the
74
+ * plan and the scan agree BY CONSTRUCTION instead of by two copies of a rule — the
75
+ * defect class this whole feature is a reply to.
76
+ */
77
+ export declare function planPrune(options: PruneOptions, findings: readonly CommentFinding[]): {
78
+ actions: PruneAction[];
79
+ skips: PruneSkip[];
80
+ };
81
+ /**
82
+ * Plan, prove, and (on `apply`) write.
83
+ *
84
+ * The scan runs through `auditComments`, so a pruned line is one the worklist
85
+ * already showed a human; the pruner adds no rule of its own about what counts as
86
+ * debt.
87
+ */
88
+ export declare function pruneComments(options: PruneOptions): PruneResult;