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
@@ -10,8 +10,8 @@
10
10
  * `decideIntegrationMode`) and the public `scanArchetype` entry; the
11
11
  * `frontendOnly` / `frontendOnlyReason` output contract is unchanged.
12
12
  */
13
- import { stat } from 'node:fs/promises';
14
- import { join } from 'node:path';
13
+ import { readdir, stat } from 'node:fs/promises';
14
+ import { join, relative as relativePath } from 'node:path';
15
15
  import { isDirectory, pathExists, readText } from 'peaks-loop-shared/fs';
16
16
  export const BACKEND_DEP_NAMES = [
17
17
  'express',
@@ -85,6 +85,179 @@ export async function readPackageJsonDeps(projectRoot) {
85
85
  export async function detectBackendFrameworks(deps) {
86
86
  return BACKEND_DEP_NAMES.filter((name) => name !== 'next' && Object.prototype.hasOwnProperty.call(deps, name));
87
87
  }
88
+ /**
89
+ * Manifests that only a service writes. Language-diverse on purpose: every
90
+ * other probe in this file is Node-specific, and a repository whose backend is
91
+ * Go / Java / Kotlin / Python / Ruby / PHP / Rust has no Node manifest at all,
92
+ * so a Node-only evidence set reported it as `frontendOnly`.
93
+ */
94
+ export const SERVICE_ONLY_MANIFEST_FILES = [
95
+ 'go.mod',
96
+ 'pom.xml',
97
+ 'build.gradle',
98
+ 'build.gradle.kts',
99
+ 'settings.gradle',
100
+ 'settings.gradle.kts',
101
+ 'manage.py',
102
+ 'config.ru',
103
+ 'artisan'
104
+ ];
105
+ /**
106
+ * Manifests a service MAY write and a library or CLI also writes. Counted as
107
+ * backend evidence only when the file itself names a web framework — the
108
+ * alternative is a boolean that fires on any Python or Rust directory, which
109
+ * trades one wrong answer for another.
110
+ */
111
+ export const CONDITIONAL_SERVICE_MANIFESTS = [
112
+ ['requirements.txt', /\b(fastapi|flask|django|uvicorn|gunicorn|aiohttp|tornado|starlette)\b/i],
113
+ ['pyproject.toml', /\b(fastapi|flask|django|uvicorn|gunicorn|aiohttp|tornado|starlette)\b/i],
114
+ ['Cargo.toml', /\b(actix-web|axum|rocket|warp|tonic|hyper|poem)\b/i],
115
+ ['Gemfile', /\b(rails|sinatra|hanami|puma|rack)\b/i],
116
+ ['composer.json', /\b(laravel|symfony|slim)\b/i]
117
+ ];
118
+ /** Directories never worth descending into when looking for a service manifest. */
119
+ const MANIFEST_WALK_SKIP_DIRS = new Set([
120
+ 'node_modules',
121
+ 'dist',
122
+ 'build',
123
+ 'out',
124
+ 'coverage',
125
+ 'target',
126
+ 'vendor',
127
+ '__pycache__',
128
+ '.git'
129
+ ]);
130
+ /**
131
+ * How deep from the project root a service is allowed to sit before its
132
+ * manifest stops being counted. Two levels covers the layouts that were
133
+ * invisible (`apps/gateway/package.json`, `services/checkout/requirements.txt`,
134
+ * `web/` + `cmd/server`), and a deeper walk would read generated trees.
135
+ */
136
+ export const SERVICE_MANIFEST_MAX_DEPTH = 2;
137
+ /**
138
+ * How many leading bytes of a source file are read to find a directive. `'use
139
+ * server'` must be the first statement, so the head is the whole question, and
140
+ * reading a bounded head keeps this probe from pulling multi-megabyte files into
141
+ * memory.
142
+ */
143
+ const DIRECTIVE_HEAD_BYTES = 400;
144
+ async function readDirSafe(dir) {
145
+ try {
146
+ return await readdir(dir, { withFileTypes: true });
147
+ }
148
+ catch {
149
+ // An unreadable directory is not evidence of a backend, and not of its
150
+ // absence either; the root manifest already carries the project.
151
+ return [];
152
+ }
153
+ }
154
+ function relativeFromRoot(projectRoot, dir) {
155
+ return relativePath(projectRoot, dir).replace(/\\/g, '/');
156
+ }
157
+ function labeled(relative, file) {
158
+ return relative === '' ? file : `${relative}/${file}`;
159
+ }
160
+ function descendable(entries, dir, depth) {
161
+ if (depth >= SERVICE_MANIFEST_MAX_DEPTH)
162
+ return [];
163
+ return entries
164
+ .filter((entry) => entry.isDirectory() &&
165
+ !MANIFEST_WALK_SKIP_DIRS.has(entry.name) &&
166
+ !entry.name.startsWith('.'))
167
+ .map((entry) => ({ dir: join(dir, entry.name), depth: depth + 1 }));
168
+ }
169
+ /**
170
+ * Service manifests sitting in ONE directory: the unmistakable ones by name,
171
+ * and the shared ones only when the file names a web framework.
172
+ */
173
+ async function manifestEvidenceInDir(dir, relative, names) {
174
+ const found = SERVICE_ONLY_MANIFEST_FILES.filter((manifest) => names.has(manifest)).map((manifest) => labeled(relative, manifest));
175
+ for (const [manifest, pattern] of CONDITIONAL_SERVICE_MANIFESTS) {
176
+ if (!names.has(manifest))
177
+ continue;
178
+ const text = await readText(join(dir, manifest)).catch(() => '');
179
+ const matched = pattern.exec(text);
180
+ if (matched !== null) {
181
+ found.push(`${labeled(relative, manifest)} (${matched[0].toLowerCase()})`);
182
+ }
183
+ }
184
+ return found;
185
+ }
186
+ /**
187
+ * A nested `package.json` declares its own dependencies, and a workspace root
188
+ * does not list them. Reading only the root is how an express service under
189
+ * `apps/` became `frontendOnly`.
190
+ */
191
+ async function workspacePackageEvidence(dir, relative, names, backendDepNames) {
192
+ if (relative === '' || !names.has('package.json'))
193
+ return [];
194
+ const { deps } = await readPackageJsonDeps(dir);
195
+ return backendDepNames
196
+ .filter((dep) => dep !== 'next' && Object.prototype.hasOwnProperty.call(deps, dep))
197
+ .map((dep) => `${relative}: ${dep}`);
198
+ }
199
+ /**
200
+ * Backend evidence that lives OUTSIDE the root manifest: a workspace package's
201
+ * own `package.json`, and any non-Node service manifest.
202
+ *
203
+ * Returns `dir: evidence` strings (`apps/gateway: express`, `go.mod`,
204
+ * `services/checkout: requirements.txt`) rather than a boolean, because the
205
+ * whole defect this probe closes was a verdict that could not say what it saw.
206
+ */
207
+ export async function detectNestedServiceEvidence(projectRoot, backendDepNames = BACKEND_DEP_NAMES) {
208
+ const evidence = [];
209
+ const queue = [{ dir: projectRoot, depth: 0 }];
210
+ while (queue.length > 0) {
211
+ const current = queue.shift();
212
+ if (current === undefined)
213
+ break;
214
+ const entries = await readDirSafe(current.dir);
215
+ const names = new Set(entries.map((entry) => entry.name));
216
+ const relative = relativeFromRoot(projectRoot, current.dir);
217
+ evidence.push(...(await manifestEvidenceInDir(current.dir, relative, names)));
218
+ evidence.push(...(await workspacePackageEvidence(current.dir, relative, names, backendDepNames)));
219
+ queue.push(...descendable(entries, current.dir, current.depth));
220
+ }
221
+ return evidence.sort();
222
+ }
223
+ /** Does this directory tree contain a file opening with `'use server'`? */
224
+ async function hasUseServerFile(rootDir) {
225
+ const queue = [{ dir: rootDir, depth: 0 }];
226
+ while (queue.length > 0) {
227
+ const current = queue.shift();
228
+ if (current === undefined)
229
+ break;
230
+ const entries = await readDirSafe(current.dir);
231
+ for (const entry of entries) {
232
+ const full = join(current.dir, entry.name);
233
+ if (entry.isDirectory())
234
+ continue;
235
+ if (!/\.(ts|tsx|js|jsx)$/.test(entry.name))
236
+ continue;
237
+ const text = await readText(full).catch(() => '');
238
+ if (/['"]use server['"]/.test(text.slice(0, DIRECTIVE_HEAD_BYTES)))
239
+ return true;
240
+ }
241
+ queue.push(...descendable(entries, current.dir, current.depth));
242
+ }
243
+ return false;
244
+ }
245
+ /**
246
+ * Next.js server actions: `'use server'` in a file under `app/`. Route handlers
247
+ * under `pages/api` / `app/api` were the only Next backend the detector knew
248
+ * about, so a Next app that mutates data through actions — the documented
249
+ * Next.js way — was reported as having no backend at all.
250
+ */
251
+ export async function detectNextServerActions(projectRoot) {
252
+ for (const root of ['app', 'src/app']) {
253
+ const rootDir = join(projectRoot, root);
254
+ if (await isDirectory(rootDir)) {
255
+ if (await hasUseServerFile(rootDir))
256
+ return true;
257
+ }
258
+ }
259
+ return false;
260
+ }
88
261
  export async function detectNextApiRoutes(projectRoot, hasNext) {
89
262
  if (!hasNext) {
90
263
  return false;
@@ -1,7 +1,7 @@
1
1
  import { readdir } from 'node:fs/promises';
2
2
  import { join } from 'node:path';
3
3
  import { isDirectory } from 'peaks-loop-shared/fs';
4
- import { detectBackendDirs, detectBackendFrameworks, detectMonorepoConfigs, detectNextApiRoutes, detectSwagger, GREENFIELD_MAX_SRC_FILES, GREENFIELD_MAX_LOCKFILE_DAYS, HIGH_CONFIDENCE_SIGNAL_COUNT, LEGACY_MIN_SRC_FILES, lockfileAgeDays, LOCKFILE_STALE_DAYS, readPackageJsonDeps } from './archetype-detection.js';
4
+ import { detectBackendDirs, detectBackendFrameworks, detectMonorepoConfigs, detectNestedServiceEvidence, detectNextApiRoutes, detectNextServerActions, detectSwagger, GREENFIELD_MAX_SRC_FILES, GREENFIELD_MAX_LOCKFILE_DAYS, HIGH_CONFIDENCE_SIGNAL_COUNT, LEGACY_MIN_SRC_FILES, lockfileAgeDays, LOCKFILE_STALE_DAYS, readPackageJsonDeps } from './archetype-detection.js';
5
5
  async function countSrcFiles(projectRoot, max = 500) {
6
6
  const srcDir = join(projectRoot, 'src');
7
7
  if (!(await isDirectory(srcDir))) {
@@ -30,11 +30,26 @@ async function countSrcFiles(projectRoot, max = 500) {
30
30
  }
31
31
  return count;
32
32
  }
33
+ /**
34
+ * THE backend predicate — one answer, three callers.
35
+ *
36
+ * `decideArchetype`, `decideFrontendOnly` and `decideIntegrationMode` each
37
+ * spelled the same triple out inline, so a signal added for one of them left
38
+ * the other two reading a different project. The report then contradicted
39
+ * itself, which is the failure `54ba0cc4` ("one answer for where frontendOnly
40
+ * lives") was meant to end but did not. Anything that asks "does this repo
41
+ * have a backend?" asks here.
42
+ */
43
+ function hasBackendEvidence(detected) {
44
+ return (detected.hasBackendFramework ||
45
+ detected.hasNextApiRoutes ||
46
+ detected.hasNextServerActions ||
47
+ detected.backendDirsPresent.length > 0 ||
48
+ detected.nestedServiceEvidence.length > 0);
49
+ }
33
50
  function decideArchetype(detected) {
34
51
  const signals = [];
35
- const hasBackend = detected.hasBackendFramework ||
36
- detected.hasNextApiRoutes ||
37
- detected.backendDirsPresent.length > 0;
52
+ const hasBackend = hasBackendEvidence(detected);
38
53
  signals.push({
39
54
  name: 'backend-presence',
40
55
  matched: hasBackend,
@@ -44,8 +59,12 @@ function decideArchetype(detected) {
44
59
  ? `framework: ${detected.backendFrameworks.join(', ')}`
45
60
  : null,
46
61
  detected.hasNextApiRoutes ? 'next-api-routes' : null,
62
+ detected.hasNextServerActions ? 'next-server-actions' : null,
47
63
  detected.backendDirsPresent.length > 0
48
64
  ? `dirs: ${detected.backendDirsPresent.join(', ')}`
65
+ : null,
66
+ detected.nestedServiceEvidence.length > 0
67
+ ? `nested: ${detected.nestedServiceEvidence.join(', ')}`
49
68
  : null
50
69
  ]
51
70
  .filter(Boolean)
@@ -79,7 +98,6 @@ function decideArchetype(detected) {
79
98
  }
80
99
  // Monorepo detection runs BEFORE the backend check: a monorepo with
81
100
  // a packages/server dir is a fullstack-monorepo, NOT legacy-fullstack.
82
- // Slice 2026-07-15 ice-cola hot-fix: previously a monorepo with a
83
101
  // backend sub-package fell through to `legacy-fullstack` because
84
102
  // `hasBackend` includes `backendDirsPresent.length > 0`, which the
85
103
  // L199 guard above couldn't handle. We now treat `hasMonorepoConfig`
@@ -131,33 +149,24 @@ function decideFrontendOnly(report) {
131
149
  if (report.archetype === 'legacy-frontend' || report.archetype === 'frontend-monorepo') {
132
150
  return { frontendOnly: true, reason: `archetype=${report.archetype}` };
133
151
  }
134
- const noBackend = !report.detected.hasBackendFramework &&
135
- !report.detected.hasNextApiRoutes &&
136
- report.detected.backendDirsPresent.length === 0;
152
+ const noBackend = !hasBackendEvidence(report.detected);
137
153
  if (noBackend && !report.detected.hasSwaggerOrProto) {
138
154
  return { frontendOnly: true, reason: 'no-backend-no-swagger' };
139
155
  }
140
- if (report.detected.hasBackendFramework ||
141
- report.detected.hasNextApiRoutes ||
142
- report.detected.backendDirsPresent.length > 0) {
143
- return { frontendOnly: false, reason: 'backend-detected' };
156
+ if (noBackend) {
157
+ return { frontendOnly: false, reason: 'swagger-or-proto-present' };
144
158
  }
145
- return { frontendOnly: false, reason: 'swagger-or-proto-present' };
159
+ return { frontendOnly: false, reason: 'backend-detected' };
146
160
  }
147
161
  /**
148
162
  * Three frontend integration scenarios, from the signals `detected`
149
- * already holds. Backend presence uses the SAME triple as
150
- * `decideArchetype`'s `hasBackend` (framework OR next API routes OR
151
- * backend dirs) rather than `hasBackendFramework` alone: `next` is
152
- * deliberately excluded from `backendFrameworks` (:77), so a Next
153
- * project with `pages/api` is `legacy-fullstack` there and must not be
154
- * `prd-only` here — one report cannot contradict itself.
163
+ * already holds. Backend presence is the SAME predicate `decideArchetype`
164
+ * uses (`hasBackendEvidence`), because one report cannot be
165
+ * `legacy-fullstack` and `prd-only` at once — a Next project with server
166
+ * actions, or an express service under `apps/`, is a backend for both.
155
167
  */
156
168
  function decideIntegrationMode(report) {
157
- const hasBackend = report.detected.hasBackendFramework ||
158
- report.detected.hasNextApiRoutes ||
159
- report.detected.backendDirsPresent.length > 0;
160
- if (hasBackend) {
169
+ if (hasBackendEvidence(report.detected)) {
161
170
  return { integrationMode: 'full-stack', reason: 'backend-detected' };
162
171
  }
163
172
  if (report.detected.hasSwaggerOrProto) {
@@ -172,6 +181,8 @@ export async function scanArchetype(options) {
172
181
  const hasNext = Object.prototype.hasOwnProperty.call(deps, 'next');
173
182
  const hasNextApiRoutes = await detectNextApiRoutes(projectRoot, hasNext);
174
183
  const backendDirsPresent = await detectBackendDirs(projectRoot);
184
+ const nestedServiceEvidence = await detectNestedServiceEvidence(projectRoot);
185
+ const hasNextServerActions = hasNext ? await detectNextServerActions(projectRoot) : false;
175
186
  const swaggerPaths = await detectSwagger(projectRoot);
176
187
  const monorepoConfigs = await detectMonorepoConfigs(projectRoot);
177
188
  const srcFileCount = await countSrcFiles(projectRoot);
@@ -180,6 +191,8 @@ export async function scanArchetype(options) {
180
191
  hasPackageJson,
181
192
  hasBackendFramework: backendFrameworks.length > 0,
182
193
  backendFrameworks,
194
+ nestedServiceEvidence,
195
+ hasNextServerActions,
183
196
  hasSwaggerOrProto: swaggerPaths.length > 0,
184
197
  swaggerPaths,
185
198
  hasMonorepoConfig: monorepoConfigs.length > 0,
@@ -26,7 +26,6 @@ export declare function inFileSizeScope(file: string): boolean;
26
26
  * of a scope extension. Both consumers read this instead of each carrying its own
27
27
  * half of the rule.
28
28
  *
29
- * WHY IT MATTERS (F3 of the repair cycle, rid `2026-09-30-cap-unify-01`). The
30
29
  * census enumerated its scope with `git ls-files <dirs>` plus the extension test,
31
30
  * while the scan measured EVERY changed non-exempt file at `fileSizeCapFor`'s
32
31
  * else-branch 300 — including paths in neither list. The two disagreed about the
@@ -7,7 +7,6 @@
7
7
  // `scripts/lint/file-size-census.ts` (the whole-tree count the husky gate
8
8
  // ratchets). Neither may restate a number.
9
9
  //
10
- // WHY ONE MODULE (rid 2026-09-30-cap-unify-01). The policy was written twice,
11
10
  // in two units: `max-lines: [error, {max: 400, skipBlankLines, skipComments}]`
12
11
  // in `config/eslint/.peaks-rules.cjs` and a raw `DEFAULT_FILE_SIZE_THRESHOLD`
13
12
  // of 800 here. Two spellings of one decision drift by construction, and the only
@@ -30,7 +29,6 @@
30
29
  // A row that silently excluded them would not equal its own measurement — the
31
30
  // same class of hole as lint-gate §4b (a surface asserted but never counted).
32
31
  //
33
- // NUMBERS THIS MODULE DOES NOT OWN, DECIDED 2026-09-30 (F6 of the repair cycle).
34
32
  // A line-count constant elsewhere in the repo is a second copy of THIS policy only
35
33
  // if it decides the same question — "may this file be committed at this size?".
36
34
  // Three that do not, recorded here so the next reader does not re-litigate them:
@@ -43,7 +41,6 @@
43
41
  // this cap and is NOT folded into it — folding it in would silently change what
44
42
  // the legacy report says. Its name does not match the census's `CAP_NAME`
45
43
  // second-copy rule on purpose; see lint-gate §4b row 7.
46
- // - `src/services/skills/lint-reference-shape.ts` 800: the shape of an
47
44
  // example lint report, not a cap.
48
45
  /** Raw-line cap for `src/`, `scripts/` and `packages/` — including a `tests` directory inside a package. */
49
46
  export const FILE_SIZE_CAP_DEFAULT = 300;
@@ -84,7 +81,6 @@ export function inFileSizeScope(file) {
84
81
  * of a scope extension. Both consumers read this instead of each carrying its own
85
82
  * half of the rule.
86
83
  *
87
- * WHY IT MATTERS (F3 of the repair cycle, rid `2026-09-30-cap-unify-01`). The
88
84
  * census enumerated its scope with `git ls-files <dirs>` plus the extension test,
89
85
  * while the scan measured EVERY changed non-exempt file at `fileSizeCapFor`'s
90
86
  * else-branch 300 — including paths in neither list. The two disagreed about the
@@ -128,7 +124,6 @@ export function fileSizeScopeBucket(file) {
128
124
  }
129
125
  // ---------------------------------------------------------------------------
130
126
  // THE SECOND SCOPE — `.husky/`, the directory the ratchet itself lives in
131
- // (backlog §2.32, rid 2026-10-02-hooks-size-rows)
132
127
  // ---------------------------------------------------------------------------
133
128
  //
134
129
  // WHAT WAS INVISIBLE. `FILE_SIZE_SCOPE_DIRS` names four directories, and `.husky`
@@ -49,7 +49,6 @@ export type FileSizeScanResult = {
49
49
  * four scope directories, or with an extension it does not count. Reported
50
50
  * rather than silently skipped, for the same reason `exemptFiles` is.
51
51
  *
52
- * WHY THEY ARE NOT VIOLATIONS (F3, rid 2026-09-30-cap-unify-01). Every file
53
52
  * the scan checked used to be measured against `fileSizeCapFor`, whose
54
53
  * else-branch is 300 — a number that is only defined for `src`/`packages`/
55
54
  * `scripts`. So an out-of-scope path (a `.md`, a file under `.husky/`) could
@@ -22,6 +22,15 @@ export type ArchetypeReport = {
22
22
  hasPackageJson: boolean;
23
23
  hasBackendFramework: boolean;
24
24
  backendFrameworks: string[];
25
+ /** Backend evidence the ROOT manifest cannot see: a workspace package's own
26
+ * `package.json` (`apps/gateway: express`) and any non-Node service
27
+ * manifest (`go.mod`, `services/checkout/requirements.txt (fastapi)`).
28
+ * Every probe that filled `detected` before this field read Node's
29
+ * manifest only, so a Go or Java service reported as `frontendOnly`. */
30
+ nestedServiceEvidence: string[];
31
+ /** Next.js server actions (`'use server'` under `app/`). Route handlers
32
+ * (`pages/api` / `app/api`) were the only Next backend recognised. */
33
+ hasNextServerActions: boolean;
25
34
  hasSwaggerOrProto: boolean;
26
35
  swaggerPaths: string[];
27
36
  hasMonorepoConfig: boolean;
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * R-2 path-safety guard for sub-agent state files.
3
3
  *
4
- * Slice 2026-06-07-sub-agent-dispatch-decouple (G4) — reuses the same
5
4
  * R-2 symlink/junction guard as `assertSafeSettingsFile` for
6
5
  * `.peaks/_sub_agents/<sid>/dispatch-<rid>-<ts>.json` paths.
7
6
  *
@@ -6,7 +6,6 @@
6
6
  *
7
7
  * v2.16.0 schema is a multi-instance registry with conflict-detection
8
8
  * sentinel fields (ownerHint, pid, lastHeartbeat, instances Map).
9
- * See PRD `001-2026-06-29-v2-16-0-change-id-axis-removal` AC-8.
10
9
  *
11
10
  * The store keeps a one-shot migration from the legacy schema:
12
11
  * legacy single-session binding → v2.16.0 instances Map with one entry,
@@ -80,13 +79,11 @@ export declare function registerInstance(projectRoot: string, opts: {
80
79
  };
81
80
  /**
82
81
  * Touch the `lastHeartbeat` for a specific instance. Used by the
83
- * Doctor periodic loop (AC-10) and by the Skill presence `startup`
84
82
  * gate.
85
83
  */
86
84
  export declare function heartbeat(projectRoot: string, sid: string): Binding | null;
87
85
  /**
88
86
  * Drop an instance entry from the binding. Used when the last peaks-*
89
- * skill on a Claude instance exits (AC-7: all skills inactive →
90
87
  * no record). Returns the updated binding (or null if no instances
91
88
  * remain and the caller wants to delete the binding entirely).
92
89
  */
@@ -94,7 +91,6 @@ export declare function dropInstance(projectRoot: string, sid: string): Binding
94
91
  /**
95
92
  * Drop stale instances (lastHeartbeat older than `ttlMs`). Returns
96
93
  * the list of dropped sid values so the caller can log them. Used
97
- * by AC-10 Doctor.
98
94
  */
99
95
  export declare function dropStale(projectRoot: string, ttlMs: number): {
100
96
  binding: Binding | null;
@@ -6,7 +6,6 @@
6
6
  *
7
7
  * v2.16.0 schema is a multi-instance registry with conflict-detection
8
8
  * sentinel fields (ownerHint, pid, lastHeartbeat, instances Map).
9
- * See PRD `001-2026-06-29-v2-16-0-change-id-axis-removal` AC-8.
10
9
  *
11
10
  * The store keeps a one-shot migration from the legacy schema:
12
11
  * legacy single-session binding → v2.16.0 instances Map with one entry,
@@ -60,7 +59,6 @@ function getCurrentOuterSessionId() {
60
59
  * both env vars unset returns the literal `'unknown'` sentinel
61
60
  * for every process. Suffixing with `process.pid` makes the
62
61
  * callerId process-unique without changing the surface (no new
63
- * env var, no new schema field), preserving the AC-5 hard rule
64
62
  * that "one Claude instance keeps one sid across multiple
65
63
  * peaks-* skill activations" — a single process keeps a constant
66
64
  * pid across the whole run, including `/compact`.
@@ -144,7 +142,6 @@ export function readBinding(projectRoot) {
144
142
  typeof legacyShape.createdAt === 'string' &&
145
143
  typeof legacyShape.projectRoot === 'string') {
146
144
  // Auto-migrate marks lastHeartbeat as `now` (not `createdAt`) so the
147
- // migrated instance does NOT immediately appear stale to AC-10.
148
145
  // Legacy bindings date from the pre-v2.16.0 single-session era;
149
146
  // their createdAt predates the binding sentinel concept entirely.
150
147
  const migratedAt = nowIso();
@@ -226,7 +223,6 @@ export function registerInstance(projectRoot, opts) {
226
223
  }
227
224
  // Auto-resume: caller already has an instance in this scope —
228
225
  // append roles and refresh heartbeat instead of creating a new
229
- // sid. This is the AC-5 Claude-instance-level hard rule: a
230
226
  // single Claude caller keeps one sid across multiple peaks-*
231
227
  // skill activations.
232
228
  const existingSidForCaller = Object.entries(existing.instances).find(([, inst]) => inst.callerId === callerId)?.[0];
@@ -283,7 +279,6 @@ export function registerInstance(projectRoot, opts) {
283
279
  }
284
280
  /**
285
281
  * Touch the `lastHeartbeat` for a specific instance. Used by the
286
- * Doctor periodic loop (AC-10) and by the Skill presence `startup`
287
282
  * gate.
288
283
  */
289
284
  export function heartbeat(projectRoot, sid) {
@@ -307,7 +302,6 @@ export function heartbeat(projectRoot, sid) {
307
302
  }
308
303
  /**
309
304
  * Drop an instance entry from the binding. Used when the last peaks-*
310
- * skill on a Claude instance exits (AC-7: all skills inactive →
311
305
  * no record). Returns the updated binding (or null if no instances
312
306
  * remain and the caller wants to delete the binding entirely).
313
307
  */
@@ -328,7 +322,6 @@ export function dropInstance(projectRoot, sid) {
328
322
  /**
329
323
  * Drop stale instances (lastHeartbeat older than `ttlMs`). Returns
330
324
  * the list of dropped sid values so the caller can log them. Used
331
- * by AC-10 Doctor.
332
325
  */
333
326
  export function dropStale(projectRoot, ttlMs) {
334
327
  const existing = readBinding(projectRoot);
@@ -1,5 +1,4 @@
1
1
  /**
2
- * Caller-Binding Service (slice 020 — caller-keyed session binding).
3
2
  *
4
3
  * Each caller has its own on-disk binding file at
5
4
  * `.peaks/_runtime/callers/<callerId>.json`. This service is the
@@ -33,7 +32,6 @@ export declare function getActiveSkillFileForCaller(projectRoot: string, peakSes
33
32
  * Resolve a stable, deterministic callerId for a legacy single-file
34
33
  * binding (M2). The hash input priority is:
35
34
  *
36
- * 1. `outerSessionId` (slice 018 stamped this on the per-peak
37
35
  * session.json for sessions created after the slice shipped).
38
36
  * 2. `claudeSessionId` (legacy field name on pre-018 presence
39
37
  * files; honour the read side so v1.2.x data does not lose its
@@ -59,11 +57,9 @@ export declare function getCallerBinding(projectRoot: string, callerId: string):
59
57
  *
60
58
  * `getCallerBinding` answers a SHAPE question: "is there a well-formed
61
59
  * binding file for this caller?". Session resolution needs a second
62
- * answer: "is that binding still USABLE?". Slice 2026-09-12
63
60
  * (rid=caller-binding-staleness) found it is not when the bound session's
64
61
  * directory is gone — the binding was still trusted, so a command
65
62
  * resolved the dead session id and `mkdir`'d a fresh tree under
66
- * `.peaks/_runtime/<gone-sid>/...` for a session that no longer exists.
67
63
  *
68
64
  * Returns a tagged result rather than `null` so the fall-through is
69
65
  * observable to the caller instead of silent:
@@ -88,7 +84,6 @@ export declare function resolveCallerBinding(projectRoot: string, callerId: stri
88
84
  * must be a valid session id, projectRoot is canonicalized). Idempotent:
89
85
  * re-writing the same callerId overwrites the file.
90
86
  *
91
- * Slice 2026-08-06-session-cacde8-A.5b: writes via `atomicWriteJson`
92
87
  * (temp-file-then-rename) so a power-loss mid-write cannot leave the
93
88
  * caller-binding file in a half-truncated state. `atomicWriteJson`
94
89
  * owns its own `mkdirSync(dir, { recursive: true })`, so the inline
@@ -99,7 +94,6 @@ export declare function setCallerBinding(projectRoot: string, callerId: string,
99
94
  /**
100
95
  * Repoint an EXISTING per-caller binding at a new peak session id.
101
96
  *
102
- * Slice 2026-09-10 (rid=rebind-must-update-caller-binding): an explicit
103
97
  * `peaks workspace init --session-id <X> --allow-session-rebind` rewrites
104
98
  * the project-global `.peaks/_runtime/session.json`. Without this call the
105
99
  * per-caller file keeps shadowing it for `getSessionIdCanonical`, so the
@@ -1,5 +1,4 @@
1
1
  /**
2
- * Caller-Binding Service (slice 020 — caller-keyed session binding).
3
2
  *
4
3
  * Each caller has its own on-disk binding file at
5
4
  * `.peaks/_runtime/callers/<callerId>.json`. This service is the
@@ -50,7 +49,6 @@ export function getActiveSkillFileForCaller(projectRoot, peakSessionId, callerId
50
49
  * Resolve a stable, deterministic callerId for a legacy single-file
51
50
  * binding (M2). The hash input priority is:
52
51
  *
53
- * 1. `outerSessionId` (slice 018 stamped this on the per-peak
54
52
  * session.json for sessions created after the slice shipped).
55
53
  * 2. `claudeSessionId` (legacy field name on pre-018 presence
56
54
  * files; honour the read side so v1.2.x data does not lose its
@@ -112,7 +110,6 @@ export function resolveCallerBinding(projectRoot, callerId) {
112
110
  * must be a valid session id, projectRoot is canonicalized). Idempotent:
113
111
  * re-writing the same callerId overwrites the file.
114
112
  *
115
- * Slice 2026-08-06-session-cacde8-A.5b: writes via `atomicWriteJson`
116
113
  * (temp-file-then-rename) so a power-loss mid-write cannot leave the
117
114
  * caller-binding file in a half-truncated state. `atomicWriteJson`
118
115
  * owns its own `mkdirSync(dir, { recursive: true })`, so the inline
@@ -133,7 +130,6 @@ export function setCallerBinding(projectRoot, callerId, binding) {
133
130
  /**
134
131
  * Repoint an EXISTING per-caller binding at a new peak session id.
135
132
  *
136
- * Slice 2026-09-10 (rid=rebind-must-update-caller-binding): an explicit
137
133
  * `peaks workspace init --session-id <X> --allow-session-rebind` rewrites
138
134
  * the project-global `.peaks/_runtime/session.json`. Without this call the
139
135
  * per-caller file keeps shadowing it for `getSessionIdCanonical`, so the
@@ -1,5 +1,4 @@
1
1
  /**
2
- * Caller-Id Resolution types (slice 020 — caller-keyed session binding,
3
2
  * refactored in slice 4.0.8 to be adapter-owned per RD §5).
4
3
  *
5
4
  * Per RD §5 + C1 user-confirmed product decision (binding 2026-08-03):
@@ -14,7 +13,6 @@
14
13
  * core resolution path only ever emits `'env-flag' | 'adapter' | 'none'`
15
14
  * via the new `CallerProjection.source` field.
16
15
  *
17
- * See `.peaks/_runtime/2026-08-03-session-bee258/rd/requests/001-2026-08-03-presence-lease-graph-design.md`
18
16
  * for the slice 4.0.8 contract.
19
17
  */
20
18
  export type CallerIdSource = 'flag' | 'env' | 'fallback' | 'none';
@@ -59,7 +57,6 @@ export interface CallerProjection {
59
57
  * On-disk shape of `.peaks/_runtime/callers/<callerId>.json`. One file
60
58
  * per caller; two callers may point to the same `peakSessionId` (D6).
61
59
  *
62
- * Slice 2026-09-12 (rid=caller-binding-staleness): the former
63
60
  * `lastActivityAt` field is REMOVED. It promised "bumped on every
64
61
  * `peaks <cmd>` that touches the binding" but was written only at first
65
62
  * bind and at an explicit rebind — never on reuse — so no freshness
@@ -1,5 +1,4 @@
1
1
  /**
2
- * Caller-Id Resolution types (slice 020 — caller-keyed session binding,
3
2
  * refactored in slice 4.0.8 to be adapter-owned per RD §5).
4
3
  *
5
4
  * Per RD §5 + C1 user-confirmed product decision (binding 2026-08-03):
@@ -14,7 +13,6 @@
14
13
  * core resolution path only ever emits `'env-flag' | 'adapter' | 'none'`
15
14
  * via the new `CallerProjection.source` field.
16
15
  *
17
- * See `.peaks/_runtime/2026-08-03-session-bee258/rd/requests/001-2026-08-03-presence-lease-graph-design.md`
18
16
  * for the slice 4.0.8 contract.
19
17
  */
20
18
  /**
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * Canonical session-directory resolver.
3
3
  *
4
- * As of slice 2026-06-05-peaks-runtime-layer the per-session workspace
5
4
  * lives at `<root>/.peaks/_runtime/<sessionId>/`, NOT at the legacy
6
5
  * `<root>/.peaks/<sessionId>/` location. All **write** paths MUST route
7
6
  * through this helper. The legacy top-level path survives only as a
@@ -1,6 +1,5 @@
1
1
  export { ensureSession, getSessionId, resolveCallerBoundSession, getCurrentSessionDir, listSessions, getSessionMeta, setSessionMeta, setSessionTitle, listSessionMetas, getProjectScanPath, hasProjectScan, setCurrentSessionBinding, rotateSessionBinding } from './session-manager.js';
2
2
  export { getSessionDir } from './getSessionDir.js';
3
- // Slice 020 — caller-keyed session binding. The new canonical path.
4
3
  export { resolveCallerId } from './resolve-caller-id.js';
5
4
  export { getCallerBindingFile, getActiveSkillFileForCaller, synthesiseLegacyCallerId, getCallerBinding, resolveCallerBinding, setCallerBinding, listCallerBindings } from './caller-binding-service.js';
6
5
  // Slice 4.0.8 (C1): PLATFORM_FALLBACKS is deleted. Re-export kept as
@@ -11,8 +11,6 @@
11
11
  * This file remains for one minor release as a no-op stub so legacy
12
12
  * imports keep type-checking. The named export is now an empty
13
13
  * readonly array; tests asserting `PLATFORM_FALLBACKS.length === 1`
14
- * (slice 020 A5) have been moved into the 4.0.8 deprecation bucket
15
- * (`tests/unit/services/session/caller-id-resolution.test.ts` will be
16
14
  * updated in a follow-up slice — out of scope for the 4.0.8 contract
17
15
  * freeze).
18
16
  *
@@ -21,7 +19,6 @@
21
19
  * (`getAdapter(ide).resolveCallerId(env)`), with `PEAKS_CALLER_ID` /
22
20
  * `--caller-id <id>` as the vendor-neutral short-circuits.
23
21
  *
24
- * See `.peaks/_runtime/2026-08-03-session-bee258/rd/requests/001-2026-08-03-presence-lease-graph-design.md`
25
22
  * for the slice 4.0.8 contract.
26
23
  */
27
24
  export interface PlatformFallback {
@@ -11,8 +11,6 @@
11
11
  * This file remains for one minor release as a no-op stub so legacy
12
12
  * imports keep type-checking. The named export is now an empty
13
13
  * readonly array; tests asserting `PLATFORM_FALLBACKS.length === 1`
14
- * (slice 020 A5) have been moved into the 4.0.8 deprecation bucket
15
- * (`tests/unit/services/session/caller-id-resolution.test.ts` will be
16
14
  * updated in a follow-up slice — out of scope for the 4.0.8 contract
17
15
  * freeze).
18
16
  *
@@ -21,7 +19,6 @@
21
19
  * (`getAdapter(ide).resolveCallerId(env)`), with `PEAKS_CALLER_ID` /
22
20
  * `--caller-id <id>` as the vendor-neutral short-circuits.
23
21
  *
24
- * See `.peaks/_runtime/2026-08-03-session-bee258/rd/requests/001-2026-08-03-presence-lease-graph-design.md`
25
22
  * for the slice 4.0.8 contract.
26
23
  */
27
24
  /**
@@ -1,5 +1,4 @@
1
1
  /**
2
- * Caller-Id Resolution (slice 020 — caller-keyed session binding,
3
2
  * refactored in slice 4.0.8 to be adapter-owned per RD §5 + C1).
4
3
  *
5
4
  * As of 4.0.8 the per-platform `PLATFORM_FALLBACKS` table is DELETED.
@@ -30,7 +29,6 @@
30
29
  * mutate state. The caller (a CLI command, a service, a test) decides
31
30
  * what to do with the resolved id.
32
31
  *
33
- * See `.peaks/_runtime/2026-08-03-session-bee258/rd/requests/001-2026-08-03-presence-lease-graph-design.md`
34
32
  * for the slice 4.0.8 contract.
35
33
  */
36
34
  import { CallerIdError, type CallerProjection, type CallerProjectionSource } from './caller-id-types.js';