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,85 @@
1
+ // src/services/codegraph/codegraph-upstream-layout.ts
2
+ //
3
+ // ONE answer to "where did the installed `@colbymchenry/codegraph` put its
4
+ // files", for the four places peaks-loop reaches into the package.
5
+ //
6
+ // WHY THIS EXISTS (the 1.6.2 upgrade). Before it, one rule covered all four
7
+ // sites: join `dist/…` onto whatever directory upstream's `package.json`
8
+ // sits in. That rule is false from 1.6.x. The main package there is TYPE
9
+ // DEFINITIONS ONLY — `find dist -name '*.js' | wc -l` is 0 — and the runtime
10
+ // moved into a per-platform optionalDependency
11
+ // (`@colbymchenry/codegraph-<platform>-<arch>`), whose own `lib/dist/` holds
12
+ // the entry AND the modules. Every one of the four joins therefore resolved
13
+ // to a path that does not exist, so the binary could not be spawned and the
14
+ // two oracles could not be loaded.
15
+ //
16
+ // The fix is a PROBE, not a version check: the candidates are ordered
17
+ // newest-layout-first (per-platform bundle, then the main package's own
18
+ // `dist/`) and the first one whose `dist/bin/codegraph.js` actually exists
19
+ // wins. So a 0.7.x install still resolves, a future release that moves the
20
+ // files again is found without an edit here, and nothing is decided by a
21
+ // version string that can drift from the filesystem.
22
+ //
23
+ // This module is separate from `codegraph-service.ts` rather than a few more
24
+ // functions inside it, because that file sits under eslint's `max-lines` cap
25
+ // and the resolver does not fit. It has no dependency on the service, so the
26
+ // two oracles can import it without pulling in the service's session and
27
+ // process-runner imports.
28
+ import { existsSync } from 'node:fs';
29
+ import { createRequire } from 'node:module';
30
+ import { dirname, join } from 'node:path';
31
+ const CODEGRAPH_PACKAGE_NAME = '@colbymchenry/codegraph';
32
+ /** The directory a 1.6.x per-platform bundle keeps its `dist/` under. */
33
+ const CODEGRAPH_BUNDLE_LIB_DIR = 'lib';
34
+ /**
35
+ * Directories a `dist/` might hang off, newest layout first.
36
+ *
37
+ * The platform bundle is resolved through a require anchored AT the main
38
+ * package's own `package.json`, never at this module: the bundle is a
39
+ * dependency OF the main package, so under pnpm's isolated layout it is
40
+ * linked into the MAIN package's `node_modules/` and is invisible to a
41
+ * require anchored here. A missing bundle (0.7.x, or a registry mirror that
42
+ * skipped the optionalDependency) is not an error — the main package's own
43
+ * `dist/` is the next candidate.
44
+ */
45
+ function upstreamDistRoots(packageJsonPath) {
46
+ const bundlePackageName = `${CODEGRAPH_PACKAGE_NAME}-${process.platform}-${process.arch}`;
47
+ let bundleDir = null;
48
+ try {
49
+ const require = createRequire(packageJsonPath);
50
+ const bundlePackageJson = require.resolve(`${bundlePackageName}/package.json`);
51
+ bundleDir = dirname(bundlePackageJson);
52
+ }
53
+ catch {
54
+ // A missing bundle is an EXPECTED state, not a swallow: 0.7.x has none,
55
+ // and a registry mirror that did not mirror the optionalDependency
56
+ // leaves the install without one. It is reported by the assignment —
57
+ // the caller below then has exactly one candidate root instead of two.
58
+ bundleDir = null;
59
+ }
60
+ const roots = bundleDir === null ? [] : [join(bundleDir, CODEGRAPH_BUNDLE_LIB_DIR)];
61
+ roots.push(dirname(packageJsonPath));
62
+ return roots;
63
+ }
64
+ /**
65
+ * Resolve upstream's layout for one `package.json` path.
66
+ *
67
+ * `packageJsonPath` is a parameter rather than a lookup because the doctor's
68
+ * yarn-pnp fallback reaches the same package by a filesystem walk and needs
69
+ * the layout for THAT path, not for whatever `createRequire` finds.
70
+ */
71
+ export function codegraphUpstreamLayoutFor(packageJsonPath) {
72
+ const distDirs = upstreamDistRoots(packageJsonPath).map((root) => join(root, 'dist'));
73
+ const probed = distDirs.find((dir) => existsSync(join(dir, 'bin', 'codegraph.js')));
74
+ const moduleDir = probed ?? distDirs[0] ?? '';
75
+ return {
76
+ binaryPath: moduleDir === '' ? '' : join(moduleDir, 'bin', 'codegraph.js'),
77
+ moduleDir
78
+ };
79
+ }
80
+ /** `codegraphUpstreamLayoutFor` for whichever install this process runs against. */
81
+ export function resolveCodegraphUpstreamLayout() {
82
+ const require = createRequire(import.meta.url);
83
+ const packageJsonPath = require.resolve(`${CODEGRAPH_PACKAGE_NAME}/package.json`);
84
+ return codegraphUpstreamLayoutFor(packageJsonPath);
85
+ }
@@ -0,0 +1,154 @@
1
+ /**
2
+ * What makes a backtick span a claim about this repository's file tree.
3
+ *
4
+ * These are the candidate rules, shared by the two readers of the same judgement:
5
+ * the comment classifier (`comment-hygiene.ts`) and, by literal, the repository's
6
+ * citation guard (`tests/unit/standards/repo-citation-integrity.test.ts`).
7
+ * `tests/unit/comments/citation-parity.test.ts` pins that the two spellings agree —
8
+ * a shape rule restated in a second place and then drifting is the defect this
9
+ * repository keeps documenting for itself.
10
+ *
11
+ * The rules are exclusions, and every one of them exists because of a measured
12
+ * false positive rather than a taste for tidiness. See `isCitationCandidate`.
13
+ */
14
+ /** Backtick span that has at least one `/` — a path citation, not a mention. */
15
+ export declare const PATH_SHAPED: RegExp;
16
+ /** First segments that make a span repo-relative rather than document-relative. */
17
+ export declare const REPO_ANCHORS: RegExp;
18
+ /** `path.ts:14-17` — strip before judging; the FILE must exist, the line may move. */
19
+ export declare const LINE_SUFFIX: RegExp;
20
+ /**
21
+ * Session-runtime dirs. A path starting with one of these is a runtime artifact
22
+ * written under `.peaks/_runtime/<sessionId>/` and abbreviated in prose; it is
23
+ * not a repo file, and reporting it as missing is how a guard starts being
24
+ * ignored. Same exemption list the citation guard carries.
25
+ */
26
+ export declare const SESSION_WORKSPACE_DIRS: Set<string>;
27
+ /** `<placeholder>`, an ellipsis, a glob segment — illustrative, not asserted. */
28
+ export declare const SYNTHETIC_SEGMENT: RegExp;
29
+ /**
30
+ * A segment that is exactly an ASCII ellipsis names a path *family*
31
+ * (`src/...`, `openspec/changes/...`), not a file. `SYNTHETIC_SEGMENT` above
32
+ * catches the Unicode `…` and the glob `*`; this catches `...`, which its
33
+ * character class admits.
34
+ */
35
+ export declare const ELLIPSIS_SEGMENT: RegExp;
36
+ export declare const BARE_TEST_FILENAME_SHAPE: RegExp;
37
+ /**
38
+ * Runtime state the CLI writes into a project. In a checkout of THIS repository
39
+ * these are absent by design — they are produced in the consuming project at run
40
+ * time — so a comment naming them makes no claim about this tree.
41
+ */
42
+ export declare const RUNTIME_STATE_PREFIXES: readonly [".peaks/_runtime/", ".peaks/cron/", ".peaks/cache/", ".peaks/_dogfood/", ".peaks/_sub_agents/"];
43
+ /**
44
+ * A file sitting flat in a project's `.peaks/` root is state the CLI writes there
45
+ * at run time — `.peaks/fork-state.json`, `.peaks/polyrepo.json`,
46
+ * `.peaks/role-registry.json`, `.peaks/.gitignore`, `.peaks/smoke-paths.json`.
47
+ *
48
+ * What this repository's own `.peaks/` commits is directories (`standards/`,
49
+ * `docs/`, `lint/`, `memory/`) plus four flat files, every one of which is
50
+ * present, so a citation to a tracked flat file resolves and this rule never fires
51
+ * for it. The shape is trusted over an entry list because an entry list has to
52
+ * grow with every runtime file the CLI adds — and the cost is stated: a future flat
53
+ * `.peaks/<file>` that is committed and later deleted would be hidden here.
54
+ * Repository convention is that top-level `.peaks/` entries are session or decision
55
+ * state, and a citation of that shape describes the consuming project.
56
+ */
57
+ export declare const RUNTIME_STATE_ROOT_FILE: RegExp;
58
+ /** Stems that name a shape rather than a file (`src/services/x/y.ts`, `foo.ts`). */
59
+ export declare const SYNTHETIC_STEMS: Set<string>;
60
+ /**
61
+ * Text that introduces a path as a shape to copy into the consumer's own
62
+ * repository, rather than a claim that this tree contains it.
63
+ */
64
+ export declare const ILLUSTRATION_CUE: RegExp;
65
+ /**
66
+ * A sentence that reasons about what a path *would* do, rather than reporting
67
+ * that a file is there.
68
+ *
69
+ * Two measured shapes, both read from the whole line because the cue sits on
70
+ * either side of the span:
71
+ *
72
+ * - a matching rule illustrated with made-up operands —
73
+ * `E.g. \`src/services/login\` should match \`src/services/login/handler.ts\``.
74
+ * Neither path is in any repository; the line is about the glob semantics.
75
+ * The `ILLUSTRATION_CUE` above cannot reach the second operand, because the
76
+ * cue must sit immediately before the span to fire, and here it does not.
77
+ * - a deliberate counterexample — `Written into \`.peaks/.gitignore\` they
78
+ * resolved to \`…\` and \`…\` — matching nothing, in every project`. The comment
79
+ * names two paths precisely because they match nothing; reporting them as
80
+ * missing files asks the reader to fix a bug the text is describing.
81
+ *
82
+ * The list is modal phrases only, and the boundary is load-bearing: the real
83
+ * finding at `src/services/workspace/claude-settings-template.ts:90` asserts that a
84
+ * handler "invokes the shipped script" by path, uses no modal, and stays reported —
85
+ * the script is not in the tree. Bare `resolves to` was tried and dropped from the
86
+ * list for the opposite reason: it also appears in live assertions about files that
87
+ * DO exist, and a cue that clears those is a cue that hides debt.
88
+ *
89
+ * (This rule's own header was reported by the scan it documents — the sentence
90
+ * above quoted the missing script's path verbatim, and quoting a dead path in prose
91
+ * about a dead path is still a dead path. Cited by file and line now.)
92
+ */
93
+ export declare const HYPOTHETICAL_CUE: RegExp;
94
+ /**
95
+ * Documented runtime paths that are legitimately absent from a checkout. Each
96
+ * entry needs a reason; an allowlist without one is how a guard dies.
97
+ */
98
+ export declare const OPTIONAL_RUNTIME_PATHS: Set<string>;
99
+ /** One path-shaped backtick span, with the offsets that bound it in its line. */
100
+ export type Citation = {
101
+ readonly span: string;
102
+ /** Offset of the opening backtick. */
103
+ readonly from: number;
104
+ /** Offset just past the closing backtick. */
105
+ readonly to: number;
106
+ };
107
+ /** What the candidate rule needs beyond the span itself. */
108
+ export type CitationContext = {
109
+ /** Repo-relative path of the citing file or document. */
110
+ readonly file: string;
111
+ /** True when a repo-relative path is a directory in the working tree. */
112
+ readonly dirExists: (relDir: string) => boolean;
113
+ };
114
+ /**
115
+ * The second resolution origin, made explicit: an unanchored span is a SIBLING
116
+ * reference, so its parent directory must exist next to the citing file — and only
117
+ * there.
118
+ *
119
+ * The repo root is deliberately not an origin for an unanchored span: writing a
120
+ * repo-root path is exactly what the anchors are for. The walk is narrower than the
121
+ * citation guard's every-ancestor version, and the reason is measured: with every
122
+ * ancestor tried, `hooks/hooks.json` cited from
123
+ * `src/services/doctor/doctor-service/checks/` was adopted by `src/services/hooks/`
124
+ * four levels up, and `memory/index.json` by `src/services/memory/` — 16 findings
125
+ * of paths inside installed packages and under
126
+ * `.peaks/_runtime/<sessionId>/`, reported as missing repository files. A
127
+ * sibling-only reading loses nothing real: a deleted file cited by the directory it
128
+ * lived in still has that parent dir, and is still reported.
129
+ */
130
+ export declare function isFileRelative(citation: string, ctx: CitationContext): boolean;
131
+ /**
132
+ * Is this span a claim about the working tree at all?
133
+ *
134
+ * These are the candidate exclusions the repository's citation guard applies to
135
+ * markdown and to `scripts/` comments, transplanted to source comments —
136
+ * deliberately the SAME rules, not a second definition of "citation". Porting them
137
+ * was the answer to a measurement: 188 findings for roughly 20 real dead
138
+ * references, because a comment that gives a shape as an example (`a/b`,
139
+ * `pages/api`), names a path inside an installed package (`hooks/hooks.json`), or
140
+ * documents runtime state the CLI writes in the user's project
141
+ * (`.peaks/cron/schedule.json`) all read as "missing file" to a probe that only
142
+ * knows `exists`.
143
+ *
144
+ * The direction to preserve is the guard's stated invariant: these must never hide
145
+ * an ANCHORED citation. A path beginning `src/`, `tests/`, `docs/`, `skills/`,
146
+ * `scripts/`, `packages/` or `.peaks/` claims a location in this repository, and
147
+ * nothing below lets it through unread.
148
+ *
149
+ * `namesNoDirectory` is set only by the bare-`*.test.ts`-filename reading, whose own
150
+ * pattern has already established the filename shape: a filename names no
151
+ * directory, so it cannot satisfy `PATH_SHAPED`, and it has no parent directory to
152
+ * read as a sibling.
153
+ */
154
+ export declare function isCitationCandidate(citation: Citation, line: string, ctx: CitationContext, namesNoDirectory?: boolean): boolean;
@@ -0,0 +1,241 @@
1
+ /**
2
+ * What makes a backtick span a claim about this repository's file tree.
3
+ *
4
+ * These are the candidate rules, shared by the two readers of the same judgement:
5
+ * the comment classifier (`comment-hygiene.ts`) and, by literal, the repository's
6
+ * citation guard (`tests/unit/standards/repo-citation-integrity.test.ts`).
7
+ * `tests/unit/comments/citation-parity.test.ts` pins that the two spellings agree —
8
+ * a shape rule restated in a second place and then drifting is the defect this
9
+ * repository keeps documenting for itself.
10
+ *
11
+ * The rules are exclusions, and every one of them exists because of a measured
12
+ * false positive rather than a taste for tidiness. See `isCitationCandidate`.
13
+ */
14
+ /** Backtick span that has at least one `/` — a path citation, not a mention. */
15
+ export const PATH_SHAPED = /^[A-Za-z0-9_.@-]+(?:\/[A-Za-z0-9_.@-]+)+$/;
16
+ /** First segments that make a span repo-relative rather than document-relative. */
17
+ export const REPO_ANCHORS = /^(\.peaks|\.claude|\.github|src|tests|docs|scripts|skills|packages|bin|openspec|contracts)\//;
18
+ /** `path.ts:14-17` — strip before judging; the FILE must exist, the line may move. */
19
+ export const LINE_SUFFIX = /:\d+(?:-\d+)?$/;
20
+ /**
21
+ * Session-runtime dirs. A path starting with one of these is a runtime artifact
22
+ * written under `.peaks/_runtime/<sessionId>/` and abbreviated in prose; it is
23
+ * not a repo file, and reporting it as missing is how a guard starts being
24
+ * ignored. Same exemption list the citation guard carries.
25
+ */
26
+ export const SESSION_WORKSPACE_DIRS = new Set([
27
+ 'prd',
28
+ 'rd',
29
+ 'qa',
30
+ 'sc',
31
+ 'txt',
32
+ 'audit',
33
+ 'ui',
34
+ 'session',
35
+ 'system'
36
+ ]);
37
+ /** `<placeholder>`, an ellipsis, a glob segment — illustrative, not asserted. */
38
+ export const SYNTHETIC_SEGMENT = /[<>*…]|etc\.$/;
39
+ /**
40
+ * A segment that is exactly an ASCII ellipsis names a path *family*
41
+ * (`src/...`, `openspec/changes/...`), not a file. `SYNTHETIC_SEGMENT` above
42
+ * catches the Unicode `…` and the glob `*`; this catches `...`, which its
43
+ * character class admits.
44
+ */
45
+ export const ELLIPSIS_SEGMENT = /(?:^|\/)\.\.\.(?:$|\/)/;
46
+ /**
47
+ * The bare-`*.test.ts`-filename shape, written once. A filename carries no slash,
48
+ * so `PATH_SHAPED` cannot see it; this is the second shape a candidate claim can
49
+ * take, and the guard reads the same character classes.
50
+ */
51
+ const BARE_FILENAME_NAME = String.raw `[A-Za-z0-9_][A-Za-z0-9_.-]*-[A-Za-z0-9_.-]*\.test\.ts`;
52
+ export const BARE_TEST_FILENAME_SHAPE = new RegExp(`^${BARE_FILENAME_NAME}$`);
53
+ /**
54
+ * Runtime state the CLI writes into a project. In a checkout of THIS repository
55
+ * these are absent by design — they are produced in the consuming project at run
56
+ * time — so a comment naming them makes no claim about this tree.
57
+ */
58
+ export const RUNTIME_STATE_PREFIXES = [
59
+ '.peaks/_runtime/',
60
+ '.peaks/cron/',
61
+ '.peaks/cache/',
62
+ // Both are gitignored at the repository root and written per run: `_dogfood/` by
63
+ // the dogfood harness, `_sub_agents/` by `peaks sub-agent dispatch`.
64
+ '.peaks/_dogfood/',
65
+ '.peaks/_sub_agents/'
66
+ ];
67
+ /**
68
+ * A file sitting flat in a project's `.peaks/` root is state the CLI writes there
69
+ * at run time — `.peaks/fork-state.json`, `.peaks/polyrepo.json`,
70
+ * `.peaks/role-registry.json`, `.peaks/.gitignore`, `.peaks/smoke-paths.json`.
71
+ *
72
+ * What this repository's own `.peaks/` commits is directories (`standards/`,
73
+ * `docs/`, `lint/`, `memory/`) plus four flat files, every one of which is
74
+ * present, so a citation to a tracked flat file resolves and this rule never fires
75
+ * for it. The shape is trusted over an entry list because an entry list has to
76
+ * grow with every runtime file the CLI adds — and the cost is stated: a future flat
77
+ * `.peaks/<file>` that is committed and later deleted would be hidden here.
78
+ * Repository convention is that top-level `.peaks/` entries are session or decision
79
+ * state, and a citation of that shape describes the consuming project.
80
+ */
81
+ export const RUNTIME_STATE_ROOT_FILE = /^\.peaks\/[^/]+$/;
82
+ /** Stems that name a shape rather than a file (`src/services/x/y.ts`, `foo.ts`). */
83
+ export const SYNTHETIC_STEMS = new Set([
84
+ 'x',
85
+ 'y',
86
+ 'z',
87
+ 'foo',
88
+ 'bar',
89
+ 'baz',
90
+ 'qux',
91
+ 'example',
92
+ 'sample',
93
+ 'dummy',
94
+ 'placeholder'
95
+ ]);
96
+ /**
97
+ * Text that introduces a path as a shape to copy into the consumer's own
98
+ * repository, rather than a claim that this tree contains it.
99
+ */
100
+ export const ILLUSTRATION_CUE = /(?:e\.g\.|i\.e\.|for example|such as|reference shape|Example:)\s*\(?\s*$/i;
101
+ /**
102
+ * A sentence that reasons about what a path *would* do, rather than reporting
103
+ * that a file is there.
104
+ *
105
+ * Two measured shapes, both read from the whole line because the cue sits on
106
+ * either side of the span:
107
+ *
108
+ * - a matching rule illustrated with made-up operands —
109
+ * `E.g. \`src/services/login\` should match \`src/services/login/handler.ts\``.
110
+ * Neither path is in any repository; the line is about the glob semantics.
111
+ * The `ILLUSTRATION_CUE` above cannot reach the second operand, because the
112
+ * cue must sit immediately before the span to fire, and here it does not.
113
+ * - a deliberate counterexample — `Written into \`.peaks/.gitignore\` they
114
+ * resolved to \`…\` and \`…\` — matching nothing, in every project`. The comment
115
+ * names two paths precisely because they match nothing; reporting them as
116
+ * missing files asks the reader to fix a bug the text is describing.
117
+ *
118
+ * The list is modal phrases only, and the boundary is load-bearing: the real
119
+ * finding at `src/services/workspace/claude-settings-template.ts:90` asserts that a
120
+ * handler "invokes the shipped script" by path, uses no modal, and stays reported —
121
+ * the script is not in the tree. Bare `resolves to` was tried and dropped from the
122
+ * list for the opposite reason: it also appears in live assertions about files that
123
+ * DO exist, and a cue that clears those is a cue that hides debt.
124
+ *
125
+ * (This rule's own header was reported by the scan it documents — the sentence
126
+ * above quoted the missing script's path verbatim, and quoting a dead path in prose
127
+ * about a dead path is still a dead path. Cited by file and line now.)
128
+ */
129
+ export const HYPOTHETICAL_CUE = /\b(?:should match|would (?:match|resolve|be|land|fail)|matching nothing|matched nothing|resolved to|do(?:es)? not match|never matched|hypothetical|counterexample|in that case)\b/i;
130
+ /**
131
+ * Documented runtime paths that are legitimately absent from a checkout. Each
132
+ * entry needs a reason; an allowlist without one is how a guard dies.
133
+ */
134
+ export const OPTIONAL_RUNTIME_PATHS = new Set([
135
+ // Legacy fallback location of the active-skill marker; the canonical path is
136
+ // `.peaks/_runtime/active-skill.json`, so this dotfile is absent by design.
137
+ '.peaks/.active-skill.json',
138
+ // Legacy back-compat location of the session binding file, read by
139
+ // `peaks session` when the canonical `.peaks/_runtime/session.json` is gone.
140
+ '.peaks/.session.json'
141
+ ]);
142
+ /**
143
+ * The second resolution origin, made explicit: an unanchored span is a SIBLING
144
+ * reference, so its parent directory must exist next to the citing file — and only
145
+ * there.
146
+ *
147
+ * The repo root is deliberately not an origin for an unanchored span: writing a
148
+ * repo-root path is exactly what the anchors are for. The walk is narrower than the
149
+ * citation guard's every-ancestor version, and the reason is measured: with every
150
+ * ancestor tried, `hooks/hooks.json` cited from
151
+ * `src/services/doctor/doctor-service/checks/` was adopted by `src/services/hooks/`
152
+ * four levels up, and `memory/index.json` by `src/services/memory/` — 16 findings
153
+ * of paths inside installed packages and under
154
+ * `.peaks/_runtime/<sessionId>/`, reported as missing repository files. A
155
+ * sibling-only reading loses nothing real: a deleted file cited by the directory it
156
+ * lived in still has that parent dir, and is still reported.
157
+ */
158
+ export function isFileRelative(citation, ctx) {
159
+ const parent = citation.slice(0, citation.lastIndexOf('/'));
160
+ const cut = ctx.file.lastIndexOf('/');
161
+ if (cut === -1)
162
+ return false;
163
+ return ctx.dirExists(`${ctx.file.slice(0, cut)}/${parent}`);
164
+ }
165
+ /**
166
+ * Spans that name something outside this repository: a package, a GitHub Action,
167
+ * runtime state the CLI writes in the consuming project, a path *family*, or the
168
+ * `./` form a document uses for a project it is installed into.
169
+ */
170
+ function namesSomethingElse(span) {
171
+ if (span.includes('@'))
172
+ return true; // npm package / GitHub-Action refs
173
+ if (RUNTIME_STATE_PREFIXES.some((prefix) => span.startsWith(prefix)))
174
+ return true;
175
+ if (RUNTIME_STATE_ROOT_FILE.test(span))
176
+ return true;
177
+ if (OPTIONAL_RUNTIME_PATHS.has(span))
178
+ return true;
179
+ if (ELLIPSIS_SEGMENT.test(span))
180
+ return true;
181
+ // A repo path in this tree is written from the repo root; `./x` is where the
182
+ // CONSUMING project must not put a file.
183
+ return span.startsWith('./');
184
+ }
185
+ /**
186
+ * Spans that are template text or an illustration rather than an assertion: wrapped
187
+ * in a `<…>` fill-in, introduced by an example cue, or built from stems that exist
188
+ * only to show a shape.
189
+ */
190
+ function illustratesRatherThanAsserts(citation, line, span) {
191
+ const before = line.slice(0, citation.from);
192
+ const after = line.slice(citation.to);
193
+ // Inside a `<…>` fill-in the span is template text meant to be replaced.
194
+ if (before.lastIndexOf('<') > before.lastIndexOf('>') && after.includes('>'))
195
+ return true;
196
+ if (ILLUSTRATION_CUE.test(before))
197
+ return true;
198
+ const basename = span.slice(span.lastIndexOf('/') + 1);
199
+ const dot = basename.indexOf('.');
200
+ return SYNTHETIC_STEMS.has(dot === -1 ? basename : basename.slice(0, dot));
201
+ }
202
+ /**
203
+ * Is this span a claim about the working tree at all?
204
+ *
205
+ * These are the candidate exclusions the repository's citation guard applies to
206
+ * markdown and to `scripts/` comments, transplanted to source comments —
207
+ * deliberately the SAME rules, not a second definition of "citation". Porting them
208
+ * was the answer to a measurement: 188 findings for roughly 20 real dead
209
+ * references, because a comment that gives a shape as an example (`a/b`,
210
+ * `pages/api`), names a path inside an installed package (`hooks/hooks.json`), or
211
+ * documents runtime state the CLI writes in the user's project
212
+ * (`.peaks/cron/schedule.json`) all read as "missing file" to a probe that only
213
+ * knows `exists`.
214
+ *
215
+ * The direction to preserve is the guard's stated invariant: these must never hide
216
+ * an ANCHORED citation. A path beginning `src/`, `tests/`, `docs/`, `skills/`,
217
+ * `scripts/`, `packages/` or `.peaks/` claims a location in this repository, and
218
+ * nothing below lets it through unread.
219
+ *
220
+ * `namesNoDirectory` is set only by the bare-`*.test.ts`-filename reading, whose own
221
+ * pattern has already established the filename shape: a filename names no
222
+ * directory, so it cannot satisfy `PATH_SHAPED`, and it has no parent directory to
223
+ * read as a sibling.
224
+ */
225
+ export function isCitationCandidate(citation, line, ctx, namesNoDirectory = false) {
226
+ const span = citation.span;
227
+ if (!(namesNoDirectory ? BARE_TEST_FILENAME_SHAPE.test(span) : PATH_SHAPED.test(span)))
228
+ return false;
229
+ if (namesSomethingElse(span))
230
+ return false;
231
+ if (illustratesRatherThanAsserts(citation, line, span))
232
+ return false;
233
+ // The line reasons about what a path would do; it does not claim one is there.
234
+ if (HYPOTHETICAL_CUE.test(line))
235
+ return false;
236
+ if (REPO_ANCHORS.test(span))
237
+ return true;
238
+ if (namesNoDirectory)
239
+ return true;
240
+ return isFileRelative(span, ctx);
241
+ }
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Project-wide comment scan: what the classifier finds across the enforced scope.
3
+ *
4
+ * Scope follows the repository's existing lint boundary — `src` plus each
5
+ * workspace package's `src`, as `.husky/lint-scope.mjs` defines it — rather than
6
+ * a second definition of "product code" written here. Two names for one rule is
7
+ * the failure the parity test in `tests/unit/comments/citation-parity.test.ts`
8
+ * exists to prevent, and the parity that second name actually caused is pinned by
9
+ * `tests/unit/comments/comment-audit.test.ts`, which requires this walk to read the
10
+ * same number of files the artifact records the ratchet measuring.
11
+ *
12
+ * This is the read side only. Nothing here writes a file: the counts it produces
13
+ * are the numbers a ratchet would start from, and a ratchet seeded from a scan
14
+ * nobody has spot-checked is a gate that will be trained away the first time it
15
+ * refuses a legitimate change.
16
+ */
17
+ import { type CommentFileSummary, type CommentFinding, type CommentFindingKind } from './comment-hygiene.js';
18
+ /**
19
+ * Product-code directories, in report order: `src`, then every package under
20
+ * `packages/` that has a `src`.
21
+ *
22
+ * Derived from the rule rather than enumerated, because `.husky/lint-scope.mjs` says a
23
+ * new `packages/<anything>/src` joins the enforced scope BY EXISTING. The first version
24
+ * of this list spelled it `['src', 'packages/peaks-loop-mut/src']`, which was the second
25
+ * definition of "product code" this file's header claims not to be: the ratchet measures
26
+ * 953 files and the worklist read 926, so 14 gated narrative rows lived in three
27
+ * packages no `peaks comments audit` would show and no `prune` could clear.
28
+ */
29
+ export declare function commentScanScope(projectRoot: string): string[];
30
+ /**
31
+ * Every source file under one scope dir, repo-relative, sorted.
32
+ *
33
+ * The relative form is not cosmetic: `citationResolves` tries a citation with no
34
+ * repo anchor against the citing file's own directory and its ancestors, so an
35
+ * absolute path here turns every sibling reference into a false "missing file".
36
+ * `relative()` + separator normalisation is what keeps that resolution honest on
37
+ * a Windows host.
38
+ */
39
+ export declare function scopeFiles(projectRoot: string, scopeDir: string): string[];
40
+ export type CommentAuditResult = {
41
+ readonly scannedFiles: number;
42
+ /** Files the caller named. Equal to `scannedFiles` unless one was unreadable. */
43
+ readonly askedFiles: number;
44
+ readonly commentLines: number;
45
+ readonly deadReferences: number;
46
+ readonly narrative: number;
47
+ readonly files: readonly CommentFileSummary[];
48
+ readonly findings: readonly CommentFinding[];
49
+ };
50
+ export type CommentAuditOptions = {
51
+ readonly projectRoot: string;
52
+ /** Narrow to one category, the way the prune will be able to. */
53
+ readonly kind?: CommentFindingKind;
54
+ /** Cap the finding list; totals are never capped. */
55
+ readonly limit?: number;
56
+ /**
57
+ * Scan EXACTLY these repo-relative files instead of walking the scope dirs.
58
+ *
59
+ * A ratchet row must be measured over the population its callers agree to, and a
60
+ * walk is not a scope: the walk sees untracked files the index never heard of and
61
+ * misses tracked files the disk dropped, so a row measured over a walk can move
62
+ * while nobody edits source. `git ls-files` filtered by the published scope rule is
63
+ * that population — the same list the eslint, prettier and silent-warning legs
64
+ */
65
+ readonly files?: readonly string[];
66
+ };
67
+ /** Scan the enforced scope. Synchronous by design: it is a CLI read path. */
68
+ export declare function auditComments(options: CommentAuditOptions): CommentAuditResult;
@@ -0,0 +1,121 @@
1
+ /**
2
+ * Project-wide comment scan: what the classifier finds across the enforced scope.
3
+ *
4
+ * Scope follows the repository's existing lint boundary — `src` plus each
5
+ * workspace package's `src`, as `.husky/lint-scope.mjs` defines it — rather than
6
+ * a second definition of "product code" written here. Two names for one rule is
7
+ * the failure the parity test in `tests/unit/comments/citation-parity.test.ts`
8
+ * exists to prevent, and the parity that second name actually caused is pinned by
9
+ * `tests/unit/comments/comment-audit.test.ts`, which requires this walk to read the
10
+ * same number of files the artifact records the ratchet measuring.
11
+ *
12
+ * This is the read side only. Nothing here writes a file: the counts it produces
13
+ * are the numbers a ratchet would start from, and a ratchet seeded from a scan
14
+ * nobody has spot-checked is a gate that will be trained away the first time it
15
+ * refuses a legitimate change.
16
+ */
17
+ import { existsSync, readFileSync, readdirSync } from 'node:fs';
18
+ import { join, relative, resolve } from 'node:path';
19
+ import { scanComments, summarize } from './comment-hygiene.js';
20
+ import { createFsProbe, createRepoProbe } from './repo-path-probe.js';
21
+ /**
22
+ * Product-code directories, in report order: `src`, then every package under
23
+ * `packages/` that has a `src`.
24
+ *
25
+ * Derived from the rule rather than enumerated, because `.husky/lint-scope.mjs` says a
26
+ * new `packages/<anything>/src` joins the enforced scope BY EXISTING. The first version
27
+ * of this list spelled it `['src', 'packages/peaks-loop-mut/src']`, which was the second
28
+ * definition of "product code" this file's header claims not to be: the ratchet measures
29
+ * 953 files and the worklist read 926, so 14 gated narrative rows lived in three
30
+ * packages no `peaks comments audit` would show and no `prune` could clear.
31
+ */
32
+ export function commentScanScope(projectRoot) {
33
+ const packagesDir = join(projectRoot, 'packages');
34
+ if (!existsSync(packagesDir))
35
+ return ['src'];
36
+ const names = readdirSync(packagesDir, { withFileTypes: true })
37
+ .filter((entry) => entry.isDirectory() && existsSync(join(packagesDir, entry.name, 'src')))
38
+ .map((entry) => entry.name)
39
+ .sort();
40
+ return ['src', ...names.map((name) => join('packages', name, 'src'))];
41
+ }
42
+ const SOURCE_SUFFIXES = ['.ts', '.tsx', '.mts', '.cts'];
43
+ function isSourceFile(name) {
44
+ return SOURCE_SUFFIXES.some((suffix) => name.endsWith(suffix));
45
+ }
46
+ /**
47
+ * Every source file under one scope dir, repo-relative, sorted.
48
+ *
49
+ * The relative form is not cosmetic: `citationResolves` tries a citation with no
50
+ * repo anchor against the citing file's own directory and its ancestors, so an
51
+ * absolute path here turns every sibling reference into a false "missing file".
52
+ * `relative()` + separator normalisation is what keeps that resolution honest on
53
+ * a Windows host.
54
+ */
55
+ export function scopeFiles(projectRoot, scopeDir) {
56
+ const root = resolve(projectRoot, scopeDir);
57
+ const base = resolve(projectRoot);
58
+ if (!existsSync(root))
59
+ return [];
60
+ const out = [];
61
+ const walk = (absDir) => {
62
+ for (const entry of readdirSync(absDir, { withFileTypes: true })) {
63
+ const abs = join(absDir, entry.name);
64
+ if (entry.isDirectory()) {
65
+ walk(abs);
66
+ }
67
+ else if (isSourceFile(entry.name)) {
68
+ out.push(relative(base, abs).replace(/\\/g, '/'));
69
+ }
70
+ }
71
+ };
72
+ walk(root);
73
+ return out.sort();
74
+ }
75
+ function totalOf(files, key) {
76
+ return files.reduce((sum, file) => sum + file[key], 0);
77
+ }
78
+ /** Scan the enforced scope. Synchronous by design: it is a CLI read path. */
79
+ export function auditComments(options) {
80
+ const { projectRoot } = options;
81
+ const exists = createRepoProbe(projectRoot);
82
+ const installed = createFsProbe(projectRoot);
83
+ const kinds = options.kind === undefined ? undefined : [options.kind];
84
+ const population = options.files ?? scopePopulation(projectRoot);
85
+ const findings = [];
86
+ const summaries = [];
87
+ // Files actually READ, not files handed in. A tracked path the disk no longer
88
+ // carries has to show up as `scanned < asked`, which is how a leg refuses instead
89
+ // of printing a count measured over a population nobody agreed to.
90
+ let scanned = 0;
91
+ for (const file of population) {
92
+ if (!existsSync(resolve(projectRoot, file)))
93
+ continue;
94
+ scanned += 1;
95
+ const source = readFileSync(resolve(projectRoot, file), 'utf8');
96
+ const input = { file, source };
97
+ const found = scanComments(input, {
98
+ exists,
99
+ installed,
100
+ ...(kinds === undefined ? {} : { kinds })
101
+ });
102
+ if (found.length === 0)
103
+ continue;
104
+ summaries.push(summarize(input, found));
105
+ findings.push(...found);
106
+ }
107
+ const capped = options.limit === undefined ? findings : findings.slice(0, options.limit);
108
+ return {
109
+ scannedFiles: scanned,
110
+ askedFiles: population.length,
111
+ commentLines: summaries.reduce((n, file) => n + file.commentLines, 0),
112
+ deadReferences: totalOf(summaries, 'deadReferences'),
113
+ narrative: totalOf(summaries, 'narrative'),
114
+ files: summaries.sort((a, b) => b.deadReferences + b.narrative - (a.deadReferences + a.narrative)),
115
+ findings: capped
116
+ };
117
+ }
118
+ /** The walked population, used only when a caller did not hand an explicit list. */
119
+ function scopePopulation(projectRoot) {
120
+ return commentScanScope(projectRoot).flatMap((scopeDir) => scopeFiles(projectRoot, scopeDir));
121
+ }