peaks-loop 4.0.0-beta.7 → 4.0.0-beta.8

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 (1072) hide show
  1. package/CHANGELOG.md +90 -0
  2. package/README-en.md +178 -67
  3. package/README.md +178 -57
  4. package/examples/video-demo/README.md +108 -23
  5. package/examples/video-demo/preview/peaks-loop-demo-en.mp4 +0 -0
  6. package/examples/video-demo/preview/peaks-loop-demo.mp4 +0 -0
  7. package/package.json +19 -6
  8. package/scripts/copy-templates.mjs +64 -0
  9. package/skills/bee/peaks-rd/SKILL.md +1 -1
  10. package/skills/bee/peaks-rd/references/library-version-awareness.md +2 -2
  11. package/skills/bee/peaks-rd/references/mock-data-placement.md +1 -1
  12. package/skills/bee/peaks-rd/references/rd-runbook.md +2 -2
  13. package/skills/bee/peaks-rd/references/rd-transition-gates.md +2 -2
  14. package/skills/bee/peaks-rd/references/writing-handoff-frontmatter.md +1 -1
  15. package/skills/bee/peaks-ui/SKILL.md +2 -2
  16. package/skills/peaks-code/SKILL.md +18 -49
  17. package/skills/peaks-code/references/project-scan-checklist.md +3 -1
  18. package/skills/peaks-code/references/runbook.md +2 -2
  19. package/skills/peaks-code/references/standards-preflight.md +1 -1
  20. package/skills/peaks-code/references/step-11-memory-sediment.md +56 -0
  21. package/skills/peaks-code/references/swarm-dispatch-contract.md +1 -1
  22. package/skills/peaks-code/references/workflow-gates-and-types.md +3 -3
  23. package/dist/src/cli/cli-helpers.d.ts +0 -43
  24. package/dist/src/cli/cli-helpers.js +0 -86
  25. package/dist/src/cli/commands/adapter-commands-s2a.d.ts +0 -34
  26. package/dist/src/cli/commands/adapter-commands-s2a.js +0 -92
  27. package/dist/src/cli/commands/adapter-commands.d.ts +0 -30
  28. package/dist/src/cli/commands/adapter-commands.js +0 -35
  29. package/dist/src/cli/commands/agent-commands.d.ts +0 -20
  30. package/dist/src/cli/commands/agent-commands.js +0 -48
  31. package/dist/src/cli/commands/asset-commands.d.ts +0 -45
  32. package/dist/src/cli/commands/asset-commands.js +0 -404
  33. package/dist/src/cli/commands/audit-commands.d.ts +0 -28
  34. package/dist/src/cli/commands/audit-commands.js +0 -437
  35. package/dist/src/cli/commands/bee-commands.d.ts +0 -26
  36. package/dist/src/cli/commands/bee-commands.js +0 -169
  37. package/dist/src/cli/commands/capability-commands.d.ts +0 -16
  38. package/dist/src/cli/commands/capability-commands.js +0 -45
  39. package/dist/src/cli/commands/capability-worker-config-sc-commands.d.ts +0 -3
  40. package/dist/src/cli/commands/capability-worker-config-sc-commands.js +0 -10
  41. package/dist/src/cli/commands/classify-classify-commands.d.ts +0 -19
  42. package/dist/src/cli/commands/classify-classify-commands.js +0 -151
  43. package/dist/src/cli/commands/code-commands.d.ts +0 -80
  44. package/dist/src/cli/commands/code-commands.js +0 -798
  45. package/dist/src/cli/commands/code-review-commands.d.ts +0 -34
  46. package/dist/src/cli/commands/code-review-commands.js +0 -83
  47. package/dist/src/cli/commands/codegraph-commands.d.ts +0 -3
  48. package/dist/src/cli/commands/codegraph-commands.js +0 -99
  49. package/dist/src/cli/commands/compact-command.d.ts +0 -21
  50. package/dist/src/cli/commands/compact-command.js +0 -252
  51. package/dist/src/cli/commands/complexity-commands.d.ts +0 -9
  52. package/dist/src/cli/commands/complexity-commands.js +0 -34
  53. package/dist/src/cli/commands/config-commands.d.ts +0 -3
  54. package/dist/src/cli/commands/config-commands.js +0 -220
  55. package/dist/src/cli/commands/context-builder-commands.d.ts +0 -11
  56. package/dist/src/cli/commands/context-builder-commands.js +0 -85
  57. package/dist/src/cli/commands/context-commands.d.ts +0 -21
  58. package/dist/src/cli/commands/context-commands.js +0 -254
  59. package/dist/src/cli/commands/contract-commands.d.ts +0 -26
  60. package/dist/src/cli/commands/contract-commands.js +0 -114
  61. package/dist/src/cli/commands/core/artifacts-command.d.ts +0 -3
  62. package/dist/src/cli/commands/core/artifacts-command.js +0 -62
  63. package/dist/src/cli/commands/core/binding-commands.d.ts +0 -3
  64. package/dist/src/cli/commands/core/binding-commands.js +0 -58
  65. package/dist/src/cli/commands/core/doctor-command.d.ts +0 -11
  66. package/dist/src/cli/commands/core/doctor-command.js +0 -204
  67. package/dist/src/cli/commands/core/memory-command.d.ts +0 -3
  68. package/dist/src/cli/commands/core/memory-command.js +0 -98
  69. package/dist/src/cli/commands/core/profile-command.d.ts +0 -3
  70. package/dist/src/cli/commands/core/profile-command.js +0 -9
  71. package/dist/src/cli/commands/core/proxy-command.d.ts +0 -3
  72. package/dist/src/cli/commands/core/proxy-command.js +0 -26
  73. package/dist/src/cli/commands/core/session-command.d.ts +0 -3
  74. package/dist/src/cli/commands/core/session-command.js +0 -241
  75. package/dist/src/cli/commands/core/skill-command.d.ts +0 -3
  76. package/dist/src/cli/commands/core/skill-command.js +0 -297
  77. package/dist/src/cli/commands/core/standards-command.d.ts +0 -3
  78. package/dist/src/cli/commands/core/standards-command.js +0 -95
  79. package/dist/src/cli/commands/core-artifact-commands.d.ts +0 -15
  80. package/dist/src/cli/commands/core-artifact-commands.js +0 -31
  81. package/dist/src/cli/commands/dispatch-commands.d.ts +0 -10
  82. package/dist/src/cli/commands/dispatch-commands.js +0 -351
  83. package/dist/src/cli/commands/dispatch-from-dag.d.ts +0 -3
  84. package/dist/src/cli/commands/dispatch-from-dag.js +0 -251
  85. package/dist/src/cli/commands/doc-commands.d.ts +0 -11
  86. package/dist/src/cli/commands/doc-commands.js +0 -65
  87. package/dist/src/cli/commands/evolution-commands.d.ts +0 -27
  88. package/dist/src/cli/commands/evolution-commands.js +0 -393
  89. package/dist/src/cli/commands/feedback-commands.d.ts +0 -18
  90. package/dist/src/cli/commands/feedback-commands.js +0 -145
  91. package/dist/src/cli/commands/final-review-commands.d.ts +0 -31
  92. package/dist/src/cli/commands/final-review-commands.js +0 -161
  93. package/dist/src/cli/commands/fixture-commands.d.ts +0 -32
  94. package/dist/src/cli/commands/fixture-commands.js +0 -91
  95. package/dist/src/cli/commands/fork-commands.d.ts +0 -16
  96. package/dist/src/cli/commands/fork-commands.js +0 -163
  97. package/dist/src/cli/commands/gate-commands.d.ts +0 -3
  98. package/dist/src/cli/commands/gate-commands.js +0 -117
  99. package/dist/src/cli/commands/heartbeat-commands.d.ts +0 -3
  100. package/dist/src/cli/commands/heartbeat-commands.js +0 -135
  101. package/dist/src/cli/commands/hook-handle.d.ts +0 -17
  102. package/dist/src/cli/commands/hook-handle.js +0 -157
  103. package/dist/src/cli/commands/hooks-commands.d.ts +0 -3
  104. package/dist/src/cli/commands/hooks-commands.js +0 -156
  105. package/dist/src/cli/commands/ide-commands.d.ts +0 -25
  106. package/dist/src/cli/commands/ide-commands.js +0 -42
  107. package/dist/src/cli/commands/impact-commands.d.ts +0 -15
  108. package/dist/src/cli/commands/impact-commands.js +0 -62
  109. package/dist/src/cli/commands/job-commands.d.ts +0 -3
  110. package/dist/src/cli/commands/job-commands.js +0 -289
  111. package/dist/src/cli/commands/legacy-commands.d.ts +0 -11
  112. package/dist/src/cli/commands/legacy-commands.js +0 -32
  113. package/dist/src/cli/commands/log-commands.d.ts +0 -17
  114. package/dist/src/cli/commands/log-commands.js +0 -64
  115. package/dist/src/cli/commands/loop-commands.d.ts +0 -27
  116. package/dist/src/cli/commands/loop-commands.js +0 -262
  117. package/dist/src/cli/commands/loop-eval-commands.d.ts +0 -20
  118. package/dist/src/cli/commands/loop-eval-commands.js +0 -526
  119. package/dist/src/cli/commands/memory-commands.d.ts +0 -23
  120. package/dist/src/cli/commands/memory-commands.js +0 -129
  121. package/dist/src/cli/commands/migrate-1-4-1-command.d.ts +0 -11
  122. package/dist/src/cli/commands/migrate-1-4-1-command.js +0 -34
  123. package/dist/src/cli/commands/migrate-v2-10-to-v2-11-command.d.ts +0 -20
  124. package/dist/src/cli/commands/migrate-v2-10-to-v2-11-command.js +0 -52
  125. package/dist/src/cli/commands/mut-commands.d.ts +0 -20
  126. package/dist/src/cli/commands/mut-commands.js +0 -239
  127. package/dist/src/cli/commands/observability-commands.d.ts +0 -22
  128. package/dist/src/cli/commands/observability-commands.js +0 -201
  129. package/dist/src/cli/commands/openspec-commands.d.ts +0 -3
  130. package/dist/src/cli/commands/openspec-commands.js +0 -237
  131. package/dist/src/cli/commands/perf-audit-commands.d.ts +0 -22
  132. package/dist/src/cli/commands/perf-audit-commands.js +0 -132
  133. package/dist/src/cli/commands/perf-commands.d.ts +0 -3
  134. package/dist/src/cli/commands/perf-commands.js +0 -41
  135. package/dist/src/cli/commands/playwright-commands.d.ts +0 -95
  136. package/dist/src/cli/commands/playwright-commands.js +0 -432
  137. package/dist/src/cli/commands/polyrepo-commands.d.ts +0 -37
  138. package/dist/src/cli/commands/polyrepo-commands.js +0 -155
  139. package/dist/src/cli/commands/prd-blocks-commands.d.ts +0 -18
  140. package/dist/src/cli/commands/prd-blocks-commands.js +0 -50
  141. package/dist/src/cli/commands/prd-commands.d.ts +0 -18
  142. package/dist/src/cli/commands/prd-commands.js +0 -141
  143. package/dist/src/cli/commands/preferences-commands.d.ts +0 -2
  144. package/dist/src/cli/commands/preferences-commands.js +0 -197
  145. package/dist/src/cli/commands/project-commands.d.ts +0 -3
  146. package/dist/src/cli/commands/project-commands.js +0 -248
  147. package/dist/src/cli/commands/qa-business-review-commands.d.ts +0 -17
  148. package/dist/src/cli/commands/qa-business-review-commands.js +0 -148
  149. package/dist/src/cli/commands/qa-commands.d.ts +0 -94
  150. package/dist/src/cli/commands/qa-commands.js +0 -271
  151. package/dist/src/cli/commands/release-commands.d.ts +0 -24
  152. package/dist/src/cli/commands/release-commands.js +0 -231
  153. package/dist/src/cli/commands/request-commands.d.ts +0 -3
  154. package/dist/src/cli/commands/request-commands.js +0 -548
  155. package/dist/src/cli/commands/retrospective-commands.d.ts +0 -12
  156. package/dist/src/cli/commands/retrospective-commands.js +0 -175
  157. package/dist/src/cli/commands/reviewer-commands.d.ts +0 -14
  158. package/dist/src/cli/commands/reviewer-commands.js +0 -64
  159. package/dist/src/cli/commands/role-commands.d.ts +0 -13
  160. package/dist/src/cli/commands/role-commands.js +0 -85
  161. package/dist/src/cli/commands/runtime-commands.d.ts +0 -52
  162. package/dist/src/cli/commands/runtime-commands.js +0 -150
  163. package/dist/src/cli/commands/sc-commands.d.ts +0 -3
  164. package/dist/src/cli/commands/sc-commands.js +0 -45
  165. package/dist/src/cli/commands/scan-commands.d.ts +0 -3
  166. package/dist/src/cli/commands/scan-commands.js +0 -445
  167. package/dist/src/cli/commands/security-audit-commands.d.ts +0 -23
  168. package/dist/src/cli/commands/security-audit-commands.js +0 -132
  169. package/dist/src/cli/commands/sediment-commands.d.ts +0 -80
  170. package/dist/src/cli/commands/sediment-commands.js +0 -649
  171. package/dist/src/cli/commands/session-auto-compact-hook-command.d.ts +0 -37
  172. package/dist/src/cli/commands/session-auto-compact-hook-command.js +0 -127
  173. package/dist/src/cli/commands/session-checkpoint-command.d.ts +0 -10
  174. package/dist/src/cli/commands/session-checkpoint-command.js +0 -100
  175. package/dist/src/cli/commands/session-migrate-skill-name.d.ts +0 -17
  176. package/dist/src/cli/commands/session-migrate-skill-name.js +0 -41
  177. package/dist/src/cli/commands/session-resume-command.d.ts +0 -11
  178. package/dist/src/cli/commands/session-resume-command.js +0 -83
  179. package/dist/src/cli/commands/share-commands.d.ts +0 -17
  180. package/dist/src/cli/commands/share-commands.js +0 -296
  181. package/dist/src/cli/commands/skill-conformance-commands.d.ts +0 -9
  182. package/dist/src/cli/commands/skill-conformance-commands.js +0 -39
  183. package/dist/src/cli/commands/skill-loop-engineering-readiness-commands.d.ts +0 -67
  184. package/dist/src/cli/commands/skill-loop-engineering-readiness-commands.js +0 -173
  185. package/dist/src/cli/commands/skill-search-commands.d.ts +0 -25
  186. package/dist/src/cli/commands/skill-search-commands.js +0 -68
  187. package/dist/src/cli/commands/skill-visibility.d.ts +0 -8
  188. package/dist/src/cli/commands/skill-visibility.js +0 -63
  189. package/dist/src/cli/commands/slice-commands.d.ts +0 -24
  190. package/dist/src/cli/commands/slice-commands.js +0 -492
  191. package/dist/src/cli/commands/slice-integrate-commands.d.ts +0 -11
  192. package/dist/src/cli/commands/slice-integrate-commands.js +0 -74
  193. package/dist/src/cli/commands/slice-review-commands.d.ts +0 -23
  194. package/dist/src/cli/commands/slice-review-commands.js +0 -162
  195. package/dist/src/cli/commands/smoke-commands.d.ts +0 -21
  196. package/dist/src/cli/commands/smoke-commands.js +0 -203
  197. package/dist/src/cli/commands/sop-commands.d.ts +0 -3
  198. package/dist/src/cli/commands/sop-commands.js +0 -215
  199. package/dist/src/cli/commands/statusline-commands.d.ts +0 -3
  200. package/dist/src/cli/commands/statusline-commands.js +0 -169
  201. package/dist/src/cli/commands/sub-agent-commands.d.ts +0 -22
  202. package/dist/src/cli/commands/sub-agent-commands.js +0 -19
  203. package/dist/src/cli/commands/sub-agent-dispatch-guard.d.ts +0 -55
  204. package/dist/src/cli/commands/sub-agent-dispatch-guard.js +0 -57
  205. package/dist/src/cli/commands/sub-agent-shared.d.ts +0 -99
  206. package/dist/src/cli/commands/sub-agent-shared.js +0 -67
  207. package/dist/src/cli/commands/test-commands.d.ts +0 -47
  208. package/dist/src/cli/commands/test-commands.js +0 -204
  209. package/dist/src/cli/commands/understand-commands.d.ts +0 -3
  210. package/dist/src/cli/commands/understand-commands.js +0 -148
  211. package/dist/src/cli/commands/upgrade-commands.d.ts +0 -23
  212. package/dist/src/cli/commands/upgrade-commands.js +0 -119
  213. package/dist/src/cli/commands/user-touchpoint-commands.d.ts +0 -18
  214. package/dist/src/cli/commands/user-touchpoint-commands.js +0 -78
  215. package/dist/src/cli/commands/verdict-aggregate-command.d.ts +0 -14
  216. package/dist/src/cli/commands/verdict-aggregate-command.js +0 -106
  217. package/dist/src/cli/commands/worker-commands.d.ts +0 -3
  218. package/dist/src/cli/commands/worker-commands.js +0 -52
  219. package/dist/src/cli/commands/workflow-commands.d.ts +0 -3
  220. package/dist/src/cli/commands/workflow-commands.js +0 -535
  221. package/dist/src/cli/commands/workflow-plan-commands.d.ts +0 -39
  222. package/dist/src/cli/commands/workflow-plan-commands.js +0 -163
  223. package/dist/src/cli/commands/workspace/clean-command.d.ts +0 -14
  224. package/dist/src/cli/commands/workspace/clean-command.js +0 -49
  225. package/dist/src/cli/commands/workspace/helpers.d.ts +0 -28
  226. package/dist/src/cli/commands/workspace/helpers.js +0 -87
  227. package/dist/src/cli/commands/workspace/init-command.d.ts +0 -121
  228. package/dist/src/cli/commands/workspace/init-command.js +0 -436
  229. package/dist/src/cli/commands/workspace/migrate-command.d.ts +0 -11
  230. package/dist/src/cli/commands/workspace/migrate-command.js +0 -91
  231. package/dist/src/cli/commands/workspace/reconcile-command.d.ts +0 -14
  232. package/dist/src/cli/commands/workspace/reconcile-command.js +0 -103
  233. package/dist/src/cli/commands/workspace-commands.d.ts +0 -18
  234. package/dist/src/cli/commands/workspace-commands.js +0 -50
  235. package/dist/src/cli/index.d.ts +0 -1
  236. package/dist/src/cli/index.js +0 -30
  237. package/dist/src/cli/program.d.ts +0 -5
  238. package/dist/src/cli/program.js +0 -408
  239. package/dist/src/hooks/pre-tool-use-sub-agent.d.ts +0 -28
  240. package/dist/src/hooks/pre-tool-use-sub-agent.js +0 -105
  241. package/dist/src/lib/render/message-renderer.d.ts +0 -20
  242. package/dist/src/lib/render/message-renderer.js +0 -80
  243. package/dist/src/services/adapter/adapter-registry.d.ts +0 -48
  244. package/dist/src/services/adapter/adapter-registry.js +0 -186
  245. package/dist/src/services/adapter/adapter.d.ts +0 -27
  246. package/dist/src/services/adapter/adapter.js +0 -5
  247. package/dist/src/services/adapter/auto-adapter.d.ts +0 -11
  248. package/dist/src/services/adapter/auto-adapter.js +0 -15
  249. package/dist/src/services/adapter/claude-adapter.d.ts +0 -14
  250. package/dist/src/services/adapter/claude-adapter.js +0 -40
  251. package/dist/src/services/adapter/codex-adapter.d.ts +0 -14
  252. package/dist/src/services/adapter/codex-adapter.js +0 -14
  253. package/dist/src/services/adapter/copilot-adapter.d.ts +0 -14
  254. package/dist/src/services/adapter/copilot-adapter.js +0 -14
  255. package/dist/src/services/agent/ecc-agent-service.d.ts +0 -47
  256. package/dist/src/services/agent/ecc-agent-service.js +0 -143
  257. package/dist/src/services/artifacts/artifact-lint-service.d.ts +0 -23
  258. package/dist/src/services/artifacts/artifact-lint-service.js +0 -99
  259. package/dist/src/services/artifacts/artifact-prerequisites.d.ts +0 -78
  260. package/dist/src/services/artifacts/artifact-prerequisites.js +0 -491
  261. package/dist/src/services/artifacts/artifact-service.d.ts +0 -43
  262. package/dist/src/services/artifacts/artifact-service.js +0 -98
  263. package/dist/src/services/artifacts/artifact-templates.d.ts +0 -30
  264. package/dist/src/services/artifacts/artifact-templates.js +0 -302
  265. package/dist/src/services/artifacts/repair-cycle-service.d.ts +0 -23
  266. package/dist/src/services/artifacts/repair-cycle-service.js +0 -52
  267. package/dist/src/services/artifacts/request-artifact-service.d.ts +0 -116
  268. package/dist/src/services/artifacts/request-artifact-service.js +0 -451
  269. package/dist/src/services/artifacts/request-artifact-state-helpers.d.ts +0 -51
  270. package/dist/src/services/artifacts/request-artifact-state-helpers.js +0 -114
  271. package/dist/src/services/artifacts/workspace-service.d.ts +0 -34
  272. package/dist/src/services/artifacts/workspace-service.js +0 -272
  273. package/dist/src/services/audit/artifact-writer.d.ts +0 -93
  274. package/dist/src/services/audit/artifact-writer.js +0 -303
  275. package/dist/src/services/audit/audit-goal-service.d.ts +0 -35
  276. package/dist/src/services/audit/audit-goal-service.js +0 -75
  277. package/dist/src/services/audit/audit-goal-types.d.ts +0 -40
  278. package/dist/src/services/audit/audit-goal-types.js +0 -15
  279. package/dist/src/services/audit/backing-detector.d.ts +0 -24
  280. package/dist/src/services/audit/backing-detector.js +0 -59
  281. package/dist/src/services/audit/classifier.d.ts +0 -38
  282. package/dist/src/services/audit/classifier.js +0 -134
  283. package/dist/src/services/audit/decision-writer.d.ts +0 -76
  284. package/dist/src/services/audit/decision-writer.js +0 -217
  285. package/dist/src/services/audit/enforcers/active-skill-resolver.d.ts +0 -29
  286. package/dist/src/services/audit/enforcers/active-skill-resolver.js +0 -71
  287. package/dist/src/services/audit/enforcers/code-ban.d.ts +0 -23
  288. package/dist/src/services/audit/enforcers/code-ban.js +0 -27
  289. package/dist/src/services/audit/enforcers/design-draft-confirm.d.ts +0 -24
  290. package/dist/src/services/audit/enforcers/design-draft-confirm.js +0 -58
  291. package/dist/src/services/audit/enforcers/lint-audit-regression.d.ts +0 -21
  292. package/dist/src/services/audit/enforcers/lint-audit-regression.js +0 -86
  293. package/dist/src/services/audit/enforcers/lint-catalog-governance.d.ts +0 -32
  294. package/dist/src/services/audit/enforcers/lint-catalog-governance.js +0 -48
  295. package/dist/src/services/audit/enforcers/lint-cli-back.d.ts +0 -16
  296. package/dist/src/services/audit/enforcers/lint-cli-back.js +0 -35
  297. package/dist/src/services/audit/enforcers/lint-output-style.d.ts +0 -11
  298. package/dist/src/services/audit/enforcers/lint-output-style.js +0 -94
  299. package/dist/src/services/audit/enforcers/lint-reference-integrity.d.ts +0 -6
  300. package/dist/src/services/audit/enforcers/lint-reference-integrity.js +0 -83
  301. package/dist/src/services/audit/enforcers/lint-reference-shape.d.ts +0 -30
  302. package/dist/src/services/audit/enforcers/lint-reference-shape.js +0 -272
  303. package/dist/src/services/audit/enforcers/lint-style.d.ts +0 -49
  304. package/dist/src/services/audit/enforcers/lint-style.js +0 -173
  305. package/dist/src/services/audit/enforcers/lint-workflow-shape.d.ts +0 -4
  306. package/dist/src/services/audit/enforcers/lint-workflow-shape.js +0 -100
  307. package/dist/src/services/audit/enforcers/login-gate.d.ts +0 -23
  308. package/dist/src/services/audit/enforcers/login-gate.js +0 -40
  309. package/dist/src/services/audit/enforcers/mock-placement.d.ts +0 -25
  310. package/dist/src/services/audit/enforcers/mock-placement.js +0 -48
  311. package/dist/src/services/audit/enforcers/no-root-pollution.d.ts +0 -21
  312. package/dist/src/services/audit/enforcers/no-root-pollution.js +0 -56
  313. package/dist/src/services/audit/enforcers/pre-rd-scan.d.ts +0 -22
  314. package/dist/src/services/audit/enforcers/pre-rd-scan.js +0 -23
  315. package/dist/src/services/audit/enforcers/prototype-fidelity.d.ts +0 -25
  316. package/dist/src/services/audit/enforcers/prototype-fidelity.js +0 -75
  317. package/dist/src/services/audit/enforcers/resume-detection.d.ts +0 -21
  318. package/dist/src/services/audit/enforcers/resume-detection.js +0 -52
  319. package/dist/src/services/audit/enforcers/sub-agent-sid.d.ts +0 -25
  320. package/dist/src/services/audit/enforcers/sub-agent-sid.js +0 -63
  321. package/dist/src/services/audit/prose-ratio-calculator.d.ts +0 -45
  322. package/dist/src/services/audit/prose-ratio-calculator.js +0 -52
  323. package/dist/src/services/audit/red-line-catalog-p2-a.d.ts +0 -21
  324. package/dist/src/services/audit/red-line-catalog-p2-a.js +0 -229
  325. package/dist/src/services/audit/red-line-catalog-p2-b.d.ts +0 -19
  326. package/dist/src/services/audit/red-line-catalog-p2-b.js +0 -225
  327. package/dist/src/services/audit/red-line-catalog.d.ts +0 -51
  328. package/dist/src/services/audit/red-line-catalog.js +0 -195
  329. package/dist/src/services/audit/red-lines-service.d.ts +0 -23
  330. package/dist/src/services/audit/red-lines-service.js +0 -464
  331. package/dist/src/services/audit/scanners/openspec-scanner.d.ts +0 -15
  332. package/dist/src/services/audit/scanners/openspec-scanner.js +0 -55
  333. package/dist/src/services/audit/scanners/rules-tree-scanner.d.ts +0 -16
  334. package/dist/src/services/audit/scanners/rules-tree-scanner.js +0 -56
  335. package/dist/src/services/audit/scanners/skills-tree-scanner.d.ts +0 -17
  336. package/dist/src/services/audit/scanners/skills-tree-scanner.js +0 -68
  337. package/dist/src/services/audit/static-service.d.ts +0 -60
  338. package/dist/src/services/audit/static-service.js +0 -130
  339. package/dist/src/services/audit/types.d.ts +0 -86
  340. package/dist/src/services/audit/types.js +0 -13
  341. package/dist/src/services/audit-independent/perf-audit-service.d.ts +0 -151
  342. package/dist/src/services/audit-independent/perf-audit-service.js +0 -316
  343. package/dist/src/services/audit-independent/security-audit-service.d.ts +0 -155
  344. package/dist/src/services/audit-independent/security-audit-service.js +0 -316
  345. package/dist/src/services/classify/classify-service.d.ts +0 -42
  346. package/dist/src/services/classify/classify-service.js +0 -122
  347. package/dist/src/services/classify/classify-types.d.ts +0 -79
  348. package/dist/src/services/classify/classify-types.js +0 -90
  349. package/dist/src/services/code/auto-compact-orchestrator.d.ts +0 -98
  350. package/dist/src/services/code/auto-compact-orchestrator.js +0 -343
  351. package/dist/src/services/code/batch-heartbeat-poller.d.ts +0 -51
  352. package/dist/src/services/code/batch-heartbeat-poller.js +0 -88
  353. package/dist/src/services/code/dag-orchestrator.d.ts +0 -128
  354. package/dist/src/services/code/dag-orchestrator.js +0 -304
  355. package/dist/src/services/code/emit-handoff.d.ts +0 -49
  356. package/dist/src/services/code/emit-handoff.js +0 -79
  357. package/dist/src/services/code/job-shape-decision.d.ts +0 -71
  358. package/dist/src/services/code/job-shape-decision.js +0 -151
  359. package/dist/src/services/code/mode-gate.d.ts +0 -163
  360. package/dist/src/services/code/mode-gate.js +0 -212
  361. package/dist/src/services/code/post-compact-detector.d.ts +0 -61
  362. package/dist/src/services/code/post-compact-detector.js +0 -240
  363. package/dist/src/services/code/status-line-renderer.d.ts +0 -34
  364. package/dist/src/services/code/status-line-renderer.js +0 -55
  365. package/dist/src/services/code/step-08-gate.d.ts +0 -90
  366. package/dist/src/services/code/step-08-gate.js +0 -136
  367. package/dist/src/services/code/user-touchpoint-classifier.d.ts +0 -44
  368. package/dist/src/services/code/user-touchpoint-classifier.js +0 -145
  369. package/dist/src/services/code-review/ecc-bridge.d.ts +0 -148
  370. package/dist/src/services/code-review/ecc-bridge.js +0 -242
  371. package/dist/src/services/code-review/ocr-service.d.ts +0 -129
  372. package/dist/src/services/code-review/ocr-service.js +0 -369
  373. package/dist/src/services/codegraph/codegraph-process-runner.d.ts +0 -2
  374. package/dist/src/services/codegraph/codegraph-process-runner.js +0 -93
  375. package/dist/src/services/codegraph/codegraph-service.d.ts +0 -43
  376. package/dist/src/services/codegraph/codegraph-service.js +0 -160
  377. package/dist/src/services/compact/decision-tables.d.ts +0 -66
  378. package/dist/src/services/compact/decision-tables.js +0 -127
  379. package/dist/src/services/compact/request-transition-hook.d.ts +0 -20
  380. package/dist/src/services/compact/request-transition-hook.js +0 -110
  381. package/dist/src/services/compact/suggest-service.d.ts +0 -74
  382. package/dist/src/services/compact/suggest-service.js +0 -203
  383. package/dist/src/services/complexity/complexity-estimator.d.ts +0 -34
  384. package/dist/src/services/complexity/complexity-estimator.js +0 -64
  385. package/dist/src/services/config/config-migration.d.ts +0 -45
  386. package/dist/src/services/config/config-migration.js +0 -154
  387. package/dist/src/services/config/config-restore.d.ts +0 -10
  388. package/dist/src/services/config/config-restore.js +0 -47
  389. package/dist/src/services/config/config-rollback.d.ts +0 -13
  390. package/dist/src/services/config/config-rollback.js +0 -26
  391. package/dist/src/services/config/config-safety.d.ts +0 -40
  392. package/dist/src/services/config/config-safety.js +0 -359
  393. package/dist/src/services/config/config-service.d.ts +0 -69
  394. package/dist/src/services/config/config-service.js +0 -814
  395. package/dist/src/services/config/config-types.d.ts +0 -119
  396. package/dist/src/services/config/config-types.js +0 -18
  397. package/dist/src/services/config/model-routing.d.ts +0 -57
  398. package/dist/src/services/config/model-routing.js +0 -93
  399. package/dist/src/services/config/provider-service.d.ts +0 -48
  400. package/dist/src/services/config/provider-service.js +0 -143
  401. package/dist/src/services/config/proxy-service.d.ts +0 -21
  402. package/dist/src/services/config/proxy-service.js +0 -44
  403. package/dist/src/services/config/sidecar-store.d.ts +0 -25
  404. package/dist/src/services/config/sidecar-store.js +0 -61
  405. package/dist/src/services/config/workspace-state-service.d.ts +0 -30
  406. package/dist/src/services/config/workspace-state-service.js +0 -142
  407. package/dist/src/services/context/artifact-meta.d.ts +0 -72
  408. package/dist/src/services/context/artifact-meta.js +0 -105
  409. package/dist/src/services/context/auto-compact-dispatcher.d.ts +0 -37
  410. package/dist/src/services/context/auto-compact-dispatcher.js +0 -240
  411. package/dist/src/services/context/auto-compact-reader.d.ts +0 -51
  412. package/dist/src/services/context/auto-compact-reader.js +0 -164
  413. package/dist/src/services/context/auto-compact-types.d.ts +0 -143
  414. package/dist/src/services/context/auto-compact-types.js +0 -36
  415. package/dist/src/services/context/collector.d.ts +0 -24
  416. package/dist/src/services/context/collector.js +0 -133
  417. package/dist/src/services/context/context-builder.d.ts +0 -30
  418. package/dist/src/services/context/context-builder.js +0 -78
  419. package/dist/src/services/context/context-guard.d.ts +0 -49
  420. package/dist/src/services/context/context-guard.js +0 -91
  421. package/dist/src/services/context/context-schema.d.ts +0 -415
  422. package/dist/src/services/context/context-schema.js +0 -73
  423. package/dist/src/services/context/dispatch-context-guard.d.ts +0 -27
  424. package/dist/src/services/context/dispatch-context-guard.js +0 -192
  425. package/dist/src/services/context/doc-retriever.d.ts +0 -26
  426. package/dist/src/services/context/doc-retriever.js +0 -51
  427. package/dist/src/services/context/headroom-client.d.ts +0 -34
  428. package/dist/src/services/context/headroom-client.js +0 -117
  429. package/dist/src/services/context/headroom-fetcher.d.ts +0 -6
  430. package/dist/src/services/context/headroom-fetcher.js +0 -28
  431. package/dist/src/services/context/headroom-prefs.d.ts +0 -46
  432. package/dist/src/services/context/headroom-prefs.js +0 -34
  433. package/dist/src/services/context/index.d.ts +0 -7
  434. package/dist/src/services/context/index.js +0 -6
  435. package/dist/src/services/context/main-session-monitor.d.ts +0 -89
  436. package/dist/src/services/context/main-session-monitor.js +0 -142
  437. package/dist/src/services/context/renderer.d.ts +0 -20
  438. package/dist/src/services/context/renderer.js +0 -30
  439. package/dist/src/services/context/shared-channel.d.ts +0 -93
  440. package/dist/src/services/context/shared-channel.js +0 -308
  441. package/dist/src/services/context/threshold.d.ts +0 -35
  442. package/dist/src/services/context/threshold.js +0 -76
  443. package/dist/src/services/context/tokenizer.d.ts +0 -12
  444. package/dist/src/services/context/tokenizer.js +0 -43
  445. package/dist/src/services/context/types.d.ts +0 -93
  446. package/dist/src/services/context/types.js +0 -9
  447. package/dist/src/services/crystallization/crystallization-service.d.ts +0 -239
  448. package/dist/src/services/crystallization/crystallization-service.js +0 -397
  449. package/dist/src/services/crystallization/crystallization-store.d.ts +0 -75
  450. package/dist/src/services/crystallization/crystallization-store.js +0 -193
  451. package/dist/src/services/crystallization/crystallization-types.d.ts +0 -313
  452. package/dist/src/services/crystallization/crystallization-types.js +0 -299
  453. package/dist/src/services/crystallization/evidence-brief-builder.d.ts +0 -237
  454. package/dist/src/services/crystallization/evidence-brief-builder.js +0 -240
  455. package/dist/src/services/dashboard/project-dashboard-service.d.ts +0 -91
  456. package/dist/src/services/dashboard/project-dashboard-service.js +0 -147
  457. package/dist/src/services/dispatch/batch-counter.d.ts +0 -27
  458. package/dist/src/services/dispatch/batch-counter.js +0 -102
  459. package/dist/src/services/dispatch/contract-store.d.ts +0 -63
  460. package/dist/src/services/dispatch/contract-store.js +0 -157
  461. package/dist/src/services/dispatch/dispatch-record-writer.d.ts +0 -138
  462. package/dist/src/services/dispatch/dispatch-record-writer.js +0 -460
  463. package/dist/src/services/dispatch/heartbeat-truncator.d.ts +0 -26
  464. package/dist/src/services/dispatch/heartbeat-truncator.js +0 -13
  465. package/dist/src/services/dispatch/leak-detector.d.ts +0 -11
  466. package/dist/src/services/dispatch/leak-detector.js +0 -72
  467. package/dist/src/services/dispatch/slice-dag.d.ts +0 -81
  468. package/dist/src/services/dispatch/slice-dag.js +0 -238
  469. package/dist/src/services/dispatch/sub-agent-dispatcher.d.ts +0 -239
  470. package/dist/src/services/dispatch/sub-agent-dispatcher.js +0 -382
  471. package/dist/src/services/dispatch/test-tool-detection.d.ts +0 -36
  472. package/dist/src/services/dispatch/test-tool-detection.js +0 -46
  473. package/dist/src/services/doc/doc-generator.d.ts +0 -38
  474. package/dist/src/services/doc/doc-generator.js +0 -122
  475. package/dist/src/services/doctor/doctor-service.d.ts +0 -149
  476. package/dist/src/services/doctor/doctor-service.js +0 -929
  477. package/dist/src/services/evolution/evolution-service.d.ts +0 -137
  478. package/dist/src/services/evolution/evolution-service.js +0 -281
  479. package/dist/src/services/evolution/evolution-store.d.ts +0 -57
  480. package/dist/src/services/evolution/evolution-store.js +0 -232
  481. package/dist/src/services/evolution/evolution-types.d.ts +0 -706
  482. package/dist/src/services/evolution/evolution-types.js +0 -286
  483. package/dist/src/services/evolution/independent-evaluator-runner.d.ts +0 -90
  484. package/dist/src/services/evolution/independent-evaluator-runner.js +0 -106
  485. package/dist/src/services/evolution/regression-skeptic-runner.d.ts +0 -64
  486. package/dist/src/services/evolution/regression-skeptic-runner.js +0 -113
  487. package/dist/src/services/feedback/feedback-promotion-service.d.ts +0 -123
  488. package/dist/src/services/feedback/feedback-promotion-service.js +0 -300
  489. package/dist/src/services/filesystem/file-lock.d.ts +0 -11
  490. package/dist/src/services/filesystem/file-lock.js +0 -129
  491. package/dist/src/services/final-review/final-review-service.d.ts +0 -12
  492. package/dist/src/services/final-review/final-review-service.js +0 -52
  493. package/dist/src/services/final-review/final-review-types.d.ts +0 -42
  494. package/dist/src/services/final-review/final-review-types.js +0 -18
  495. package/dist/src/services/fixture/fixture-capture-service.d.ts +0 -87
  496. package/dist/src/services/fixture/fixture-capture-service.js +0 -317
  497. package/dist/src/services/fixture/fixture-sanitize-service.d.ts +0 -117
  498. package/dist/src/services/fixture/fixture-sanitize-service.js +0 -161
  499. package/dist/src/services/fixture/index.d.ts +0 -8
  500. package/dist/src/services/fixture/index.js +0 -8
  501. package/dist/src/services/fork/fork-sync-state.d.ts +0 -85
  502. package/dist/src/services/fork/fork-sync-state.js +0 -130
  503. package/dist/src/services/fuzzy-matching/fuzzy-match-service.d.ts +0 -15
  504. package/dist/src/services/fuzzy-matching/fuzzy-match-service.js +0 -56
  505. package/dist/src/services/fuzzy-matching/fzf-pick-service.d.ts +0 -68
  506. package/dist/src/services/fuzzy-matching/fzf-pick-service.js +0 -158
  507. package/dist/src/services/fuzzy-matching/types.d.ts +0 -20
  508. package/dist/src/services/fuzzy-matching/types.js +0 -1
  509. package/dist/src/services/handoff/handoff-parser.d.ts +0 -28
  510. package/dist/src/services/handoff/handoff-parser.js +0 -69
  511. package/dist/src/services/handoff/handoff-types.d.ts +0 -39
  512. package/dist/src/services/handoff/handoff-types.js +0 -19
  513. package/dist/src/services/handoff/handoff-writer.d.ts +0 -23
  514. package/dist/src/services/handoff/handoff-writer.js +0 -30
  515. package/dist/src/services/hooks/auto-compact-hook-install.d.ts +0 -104
  516. package/dist/src/services/hooks/auto-compact-hook-install.js +0 -157
  517. package/dist/src/services/hooks/output.d.ts +0 -92
  518. package/dist/src/services/hooks/output.js +0 -111
  519. package/dist/src/services/hooks/presence-marker-detector.d.ts +0 -16
  520. package/dist/src/services/hooks/presence-marker-detector.js +0 -105
  521. package/dist/src/services/ide/adapters/claude-code-adapter.d.ts +0 -18
  522. package/dist/src/services/ide/adapters/claude-code-adapter.js +0 -103
  523. package/dist/src/services/ide/adapters/codex-adapter.d.ts +0 -46
  524. package/dist/src/services/ide/adapters/codex-adapter.js +0 -97
  525. package/dist/src/services/ide/adapters/cursor-adapter.d.ts +0 -36
  526. package/dist/src/services/ide/adapters/cursor-adapter.js +0 -84
  527. package/dist/src/services/ide/adapters/hermes-adapter.d.ts +0 -21
  528. package/dist/src/services/ide/adapters/hermes-adapter.js +0 -51
  529. package/dist/src/services/ide/adapters/openclaw-adapter.d.ts +0 -14
  530. package/dist/src/services/ide/adapters/openclaw-adapter.js +0 -42
  531. package/dist/src/services/ide/adapters/trae-adapter.d.ts +0 -42
  532. package/dist/src/services/ide/adapters/trae-adapter.js +0 -83
  533. package/dist/src/services/ide/adapters/zcode-adapter.d.ts +0 -40
  534. package/dist/src/services/ide/adapters/zcode-adapter.js +0 -220
  535. package/dist/src/services/ide/current-model-detector.d.ts +0 -14
  536. package/dist/src/services/ide/current-model-detector.js +0 -60
  537. package/dist/src/services/ide/hook-protocol.d.ts +0 -47
  538. package/dist/src/services/ide/hook-protocol.js +0 -74
  539. package/dist/src/services/ide/hook-translator.d.ts +0 -72
  540. package/dist/src/services/ide/hook-translator.js +0 -128
  541. package/dist/src/services/ide/ide-detector.d.ts +0 -10
  542. package/dist/src/services/ide/ide-detector.js +0 -19
  543. package/dist/src/services/ide/ide-registry.d.ts +0 -14
  544. package/dist/src/services/ide/ide-registry.js +0 -63
  545. package/dist/src/services/ide/ide-types.d.ts +0 -253
  546. package/dist/src/services/ide/ide-types.js +0 -2
  547. package/dist/src/services/ide/resource-profile.d.ts +0 -52
  548. package/dist/src/services/ide/resource-profile.js +0 -33
  549. package/dist/src/services/ide/shared/atomic-json.d.ts +0 -15
  550. package/dist/src/services/ide/shared/atomic-json.js +0 -58
  551. package/dist/src/services/ide/shared/safe-path.d.ts +0 -11
  552. package/dist/src/services/ide/shared/safe-path.js +0 -29
  553. package/dist/src/services/impact/impact-scan-service.d.ts +0 -66
  554. package/dist/src/services/impact/impact-scan-service.js +0 -197
  555. package/dist/src/services/job/job-event-emitter.d.ts +0 -30
  556. package/dist/src/services/job/job-event-emitter.js +0 -5
  557. package/dist/src/services/job/job-orchestrator.d.ts +0 -50
  558. package/dist/src/services/job/job-orchestrator.js +0 -104
  559. package/dist/src/services/job/job-progress-store.d.ts +0 -60
  560. package/dist/src/services/job/job-progress-store.js +0 -70
  561. package/dist/src/services/job/job-resource-snapshot.d.ts +0 -7
  562. package/dist/src/services/job/job-resource-snapshot.js +0 -75
  563. package/dist/src/services/job/job-rotation.d.ts +0 -17
  564. package/dist/src/services/job/job-rotation.js +0 -30
  565. package/dist/src/services/job/job-state-store.d.ts +0 -24
  566. package/dist/src/services/job/job-state-store.js +0 -60
  567. package/dist/src/services/job/job-types.d.ts +0 -444
  568. package/dist/src/services/job/job-types.js +0 -87
  569. package/dist/src/services/job/subagent-job-wrapper.d.ts +0 -35
  570. package/dist/src/services/job/subagent-job-wrapper.js +0 -30
  571. package/dist/src/services/legacy/legacy-detector.d.ts +0 -34
  572. package/dist/src/services/legacy/legacy-detector.js +0 -111
  573. package/dist/src/services/log/log-commands-service.d.ts +0 -54
  574. package/dist/src/services/log/log-commands-service.js +0 -83
  575. package/dist/src/services/log/logger.d.ts +0 -103
  576. package/dist/src/services/log/logger.js +0 -224
  577. package/dist/src/services/log/redact.d.ts +0 -32
  578. package/dist/src/services/log/redact.js +0 -89
  579. package/dist/src/services/log/retention.d.ts +0 -34
  580. package/dist/src/services/log/retention.js +0 -78
  581. package/dist/src/services/loop/evaluator-dispatcher.d.ts +0 -50
  582. package/dist/src/services/loop/evaluator-dispatcher.js +0 -552
  583. package/dist/src/services/loop/loop-bee-relation-service.d.ts +0 -107
  584. package/dist/src/services/loop/loop-bee-relation-service.js +0 -211
  585. package/dist/src/services/loop/loop-bee-relation-store.d.ts +0 -53
  586. package/dist/src/services/loop/loop-bee-relation-store.js +0 -130
  587. package/dist/src/services/loop/loop-bee-relation-types.d.ts +0 -118
  588. package/dist/src/services/loop/loop-bee-relation-types.js +0 -114
  589. package/dist/src/services/loop/loop-release-service.d.ts +0 -46
  590. package/dist/src/services/loop/loop-release-service.js +0 -66
  591. package/dist/src/services/loop/loop-release-store.d.ts +0 -55
  592. package/dist/src/services/loop/loop-release-store.js +0 -134
  593. package/dist/src/services/loop/loop-release-types.d.ts +0 -250
  594. package/dist/src/services/loop/loop-release-types.js +0 -162
  595. package/dist/src/services/loop/monotonic-guard.d.ts +0 -80
  596. package/dist/src/services/loop/monotonic-guard.js +0 -232
  597. package/dist/src/services/loop/monotonic-runner.d.ts +0 -58
  598. package/dist/src/services/loop/monotonic-runner.js +0 -231
  599. package/dist/src/services/loop/run-driver.d.ts +0 -70
  600. package/dist/src/services/loop/run-driver.js +0 -400
  601. package/dist/src/services/loop/spec-service.d.ts +0 -90
  602. package/dist/src/services/loop/spec-service.js +0 -497
  603. package/dist/src/services/memory/llm-reranker.d.ts +0 -174
  604. package/dist/src/services/memory/llm-reranker.js +0 -284
  605. package/dist/src/services/memory/memory-search-service.d.ts +0 -93
  606. package/dist/src/services/memory/memory-search-service.js +0 -117
  607. package/dist/src/services/memory/project-context-service.d.ts +0 -11
  608. package/dist/src/services/memory/project-context-service.js +0 -148
  609. package/dist/src/services/memory/project-memory-service.d.ts +0 -167
  610. package/dist/src/services/memory/project-memory-service.js +0 -817
  611. package/dist/src/services/migrate-skill-name/migrate.d.ts +0 -17
  612. package/dist/src/services/migrate-skill-name/migrate.js +0 -152
  613. package/dist/src/services/migrate-skill-name/schema.d.ts +0 -42
  614. package/dist/src/services/migrate-skill-name/schema.js +0 -25
  615. package/dist/src/services/migration/v2-10-to-v2-11-service.d.ts +0 -44
  616. package/dist/src/services/migration/v2-10-to-v2-11-service.js +0 -190
  617. package/dist/src/services/migration/v2-10-to-v2-11-types.d.ts +0 -41
  618. package/dist/src/services/migration/v2-10-to-v2-11-types.js +0 -23
  619. package/dist/src/services/mode/bypass-tracker.d.ts +0 -4
  620. package/dist/src/services/mode/bypass-tracker.js +0 -31
  621. package/dist/src/services/mode/mode-enforcement.d.ts +0 -14
  622. package/dist/src/services/mode/mode-enforcement.js +0 -84
  623. package/dist/src/services/mut/assert-scanner.d.ts +0 -6
  624. package/dist/src/services/mut/assert-scanner.js +0 -116
  625. package/dist/src/services/mut/index.d.ts +0 -8
  626. package/dist/src/services/mut/index.js +0 -7
  627. package/dist/src/services/mut/mut-runner.d.ts +0 -39
  628. package/dist/src/services/mut/mut-runner.js +0 -29
  629. package/dist/src/services/mut/production-stryker.d.ts +0 -2
  630. package/dist/src/services/mut/production-stryker.js +0 -75
  631. package/dist/src/services/mut/report-builder.d.ts +0 -11
  632. package/dist/src/services/mut/report-builder.js +0 -110
  633. package/dist/src/services/mut/report-loader.d.ts +0 -31
  634. package/dist/src/services/mut/report-loader.js +0 -78
  635. package/dist/src/services/mut/thresholds.d.ts +0 -21
  636. package/dist/src/services/mut/thresholds.js +0 -22
  637. package/dist/src/services/mut/types.d.ts +0 -336
  638. package/dist/src/services/mut/types.js +0 -59
  639. package/dist/src/services/observability/aggregation.d.ts +0 -64
  640. package/dist/src/services/observability/aggregation.js +0 -217
  641. package/dist/src/services/observability/jsonl-store.d.ts +0 -59
  642. package/dist/src/services/observability/jsonl-store.js +0 -120
  643. package/dist/src/services/observability/observability-service.d.ts +0 -95
  644. package/dist/src/services/observability/observability-service.js +0 -119
  645. package/dist/src/services/observability/report-formatter.d.ts +0 -42
  646. package/dist/src/services/observability/report-formatter.js +0 -156
  647. package/dist/src/services/openspec/openspec-archive-service.d.ts +0 -12
  648. package/dist/src/services/openspec/openspec-archive-service.js +0 -28
  649. package/dist/src/services/openspec/openspec-bridge-service.d.ts +0 -16
  650. package/dist/src/services/openspec/openspec-bridge-service.js +0 -76
  651. package/dist/src/services/openspec/openspec-init-service.d.ts +0 -23
  652. package/dist/src/services/openspec/openspec-init-service.js +0 -122
  653. package/dist/src/services/openspec/openspec-propose-from-doctor-service.d.ts +0 -31
  654. package/dist/src/services/openspec/openspec-propose-from-doctor-service.js +0 -95
  655. package/dist/src/services/openspec/openspec-render-service.d.ts +0 -38
  656. package/dist/src/services/openspec/openspec-render-service.js +0 -130
  657. package/dist/src/services/openspec/openspec-scan-service.d.ts +0 -6
  658. package/dist/src/services/openspec/openspec-scan-service.js +0 -123
  659. package/dist/src/services/openspec/openspec-types.d.ts +0 -39
  660. package/dist/src/services/openspec/openspec-types.js +0 -1
  661. package/dist/src/services/openspec/openspec-validate-service.d.ts +0 -27
  662. package/dist/src/services/openspec/openspec-validate-service.js +0 -77
  663. package/dist/src/services/perf/perf-baseline-service.d.ts +0 -70
  664. package/dist/src/services/perf/perf-baseline-service.js +0 -214
  665. package/dist/src/services/polyrepo/polyrepo-dispatcher.d.ts +0 -34
  666. package/dist/src/services/polyrepo/polyrepo-dispatcher.js +0 -119
  667. package/dist/src/services/polyrepo/polyrepo-scanner.d.ts +0 -9
  668. package/dist/src/services/polyrepo/polyrepo-scanner.js +0 -94
  669. package/dist/src/services/polyrepo/polyrepo-service.d.ts +0 -34
  670. package/dist/src/services/polyrepo/polyrepo-service.js +0 -49
  671. package/dist/src/services/polyrepo/polyrepo-types.d.ts +0 -55
  672. package/dist/src/services/polyrepo/polyrepo-types.js +0 -1
  673. package/dist/src/services/prd/handoff-auto-regen.d.ts +0 -22
  674. package/dist/src/services/prd/handoff-auto-regen.js +0 -73
  675. package/dist/src/services/prd/handoff-service.d.ts +0 -54
  676. package/dist/src/services/prd/handoff-service.js +0 -142
  677. package/dist/src/services/prd/handoff-types.d.ts +0 -64
  678. package/dist/src/services/prd/handoff-types.js +0 -22
  679. package/dist/src/services/prd/prd-blocks-checker.d.ts +0 -51
  680. package/dist/src/services/prd/prd-blocks-checker.js +0 -130
  681. package/dist/src/services/prd/project-scan-reader.d.ts +0 -24
  682. package/dist/src/services/prd/project-scan-reader.js +0 -150
  683. package/dist/src/services/prd/project-scan-sediment.d.ts +0 -97
  684. package/dist/src/services/prd/project-scan-sediment.js +0 -445
  685. package/dist/src/services/prd/project-scan-types.d.ts +0 -66
  686. package/dist/src/services/prd/project-scan-types.js +0 -20
  687. package/dist/src/services/preferences/preferences-service.d.ts +0 -38
  688. package/dist/src/services/preferences/preferences-service.js +0 -198
  689. package/dist/src/services/preferences/preferences-types.d.ts +0 -148
  690. package/dist/src/services/preferences/preferences-types.js +0 -53
  691. package/dist/src/services/profiles/profile-service.d.ts +0 -6
  692. package/dist/src/services/profiles/profile-service.js +0 -19
  693. package/dist/src/services/progress/progress-service.d.ts +0 -125
  694. package/dist/src/services/progress/progress-service.js +0 -192
  695. package/dist/src/services/providers/minimax-provider-service.d.ts +0 -24
  696. package/dist/src/services/providers/minimax-provider-service.js +0 -143
  697. package/dist/src/services/providers/minimax-worker-service.d.ts +0 -21
  698. package/dist/src/services/providers/minimax-worker-service.js +0 -83
  699. package/dist/src/services/proxy/proxy-service.d.ts +0 -7
  700. package/dist/src/services/proxy/proxy-service.js +0 -31
  701. package/dist/src/services/qa/browser-event-logger.d.ts +0 -40
  702. package/dist/src/services/qa/browser-event-logger.js +0 -54
  703. package/dist/src/services/qa/browser-restart-detector.d.ts +0 -74
  704. package/dist/src/services/qa/browser-restart-detector.js +0 -138
  705. package/dist/src/services/qa/browser-reuse-hint.d.ts +0 -18
  706. package/dist/src/services/qa/browser-reuse-hint.js +0 -18
  707. package/dist/src/services/qa/browser-wrapper-service.d.ts +0 -37
  708. package/dist/src/services/qa/browser-wrapper-service.js +0 -88
  709. package/dist/src/services/qa/qa-business-review-state.d.ts +0 -47
  710. package/dist/src/services/qa/qa-business-review-state.js +0 -96
  711. package/dist/src/services/rd/ast-gate.d.ts +0 -19
  712. package/dist/src/services/rd/ast-gate.js +0 -71
  713. package/dist/src/services/rd/impl.d.ts +0 -9
  714. package/dist/src/services/rd/impl.js +0 -57
  715. package/dist/src/services/rd/rd-service.d.ts +0 -129
  716. package/dist/src/services/rd/rd-service.js +0 -441
  717. package/dist/src/services/rd/reviewer-dispatch-policy.d.ts +0 -122
  718. package/dist/src/services/rd/reviewer-dispatch-policy.js +0 -148
  719. package/dist/src/services/rd/standards-diagnostic.d.ts +0 -76
  720. package/dist/src/services/rd/standards-diagnostic.js +0 -166
  721. package/dist/src/services/rd/strategic-stage.d.ts +0 -4
  722. package/dist/src/services/rd/strategic-stage.js +0 -15
  723. package/dist/src/services/rd/strategy.d.ts +0 -13
  724. package/dist/src/services/rd/strategy.js +0 -60
  725. package/dist/src/services/rd/tactical-stage.d.ts +0 -33
  726. package/dist/src/services/rd/tactical-stage.js +0 -62
  727. package/dist/src/services/rd/types.d.ts +0 -252
  728. package/dist/src/services/rd/types.js +0 -47
  729. package/dist/src/services/recommendations/capability-availability.d.ts +0 -5
  730. package/dist/src/services/recommendations/capability-availability.js +0 -40
  731. package/dist/src/services/recommendations/capability-map-service.d.ts +0 -7
  732. package/dist/src/services/recommendations/capability-map-service.js +0 -131
  733. package/dist/src/services/recommendations/capability-seed-items.d.ts +0 -2
  734. package/dist/src/services/recommendations/capability-seed-items.js +0 -140
  735. package/dist/src/services/recommendations/capability-seed-mappings.d.ts +0 -2
  736. package/dist/src/services/recommendations/capability-seed-mappings.js +0 -54
  737. package/dist/src/services/recommendations/capability-seed-sources.d.ts +0 -2
  738. package/dist/src/services/recommendations/capability-seed-sources.js +0 -35
  739. package/dist/src/services/recommendations/recommendation-service.d.ts +0 -8
  740. package/dist/src/services/recommendations/recommendation-service.js +0 -106
  741. package/dist/src/services/recommendations/recommendation-types.d.ts +0 -129
  742. package/dist/src/services/recommendations/recommendation-types.js +0 -1
  743. package/dist/src/services/recommendations/seed-capability-catalog.d.ts +0 -3
  744. package/dist/src/services/recommendations/seed-capability-catalog.js +0 -3
  745. package/dist/src/services/refactor/refactor-service.d.ts +0 -9
  746. package/dist/src/services/refactor/refactor-service.js +0 -36
  747. package/dist/src/services/release/release-state.d.ts +0 -70
  748. package/dist/src/services/release/release-state.js +0 -140
  749. package/dist/src/services/retrospective/retrospective-index.d.ts +0 -37
  750. package/dist/src/services/retrospective/retrospective-index.js +0 -110
  751. package/dist/src/services/retrospective/retrospective-search-service.d.ts +0 -55
  752. package/dist/src/services/retrospective/retrospective-search-service.js +0 -107
  753. package/dist/src/services/retrospective/retrospective-show.d.ts +0 -40
  754. package/dist/src/services/retrospective/retrospective-show.js +0 -109
  755. package/dist/src/services/reviewer/model-family.d.ts +0 -18
  756. package/dist/src/services/reviewer/model-family.js +0 -70
  757. package/dist/src/services/reviewer/providers/anthropic.d.ts +0 -2
  758. package/dist/src/services/reviewer/providers/anthropic.js +0 -61
  759. package/dist/src/services/reviewer/providers/ollama.d.ts +0 -26
  760. package/dist/src/services/reviewer/providers/ollama.js +0 -38
  761. package/dist/src/services/reviewer/providers/openai.d.ts +0 -2
  762. package/dist/src/services/reviewer/providers/openai.js +0 -63
  763. package/dist/src/services/reviewer/reviewer-config.d.ts +0 -34
  764. package/dist/src/services/reviewer/reviewer-config.js +0 -100
  765. package/dist/src/services/reviewer/reviewer-service.d.ts +0 -56
  766. package/dist/src/services/reviewer/reviewer-service.js +0 -263
  767. package/dist/src/services/reviewer/selection-strategies.d.ts +0 -27
  768. package/dist/src/services/reviewer/selection-strategies.js +0 -53
  769. package/dist/src/services/role/role-registry.d.ts +0 -38
  770. package/dist/src/services/role/role-registry.js +0 -83
  771. package/dist/src/services/runtime/runtime-detector.d.ts +0 -15
  772. package/dist/src/services/runtime/runtime-detector.js +0 -62
  773. package/dist/src/services/runtime/runtime-service.d.ts +0 -59
  774. package/dist/src/services/runtime/runtime-service.js +0 -51
  775. package/dist/src/services/runtime/vendor-adapter.d.ts +0 -59
  776. package/dist/src/services/runtime/vendor-adapter.js +0 -1
  777. package/dist/src/services/runtime/vendors/claude-code.d.ts +0 -7
  778. package/dist/src/services/runtime/vendors/claude-code.js +0 -39
  779. package/dist/src/services/runtime/vendors/codex.d.ts +0 -7
  780. package/dist/src/services/runtime/vendors/codex.js +0 -43
  781. package/dist/src/services/runtime/vendors/copilot.d.ts +0 -7
  782. package/dist/src/services/runtime/vendors/copilot.js +0 -40
  783. package/dist/src/services/sc/index.d.ts +0 -1
  784. package/dist/src/services/sc/index.js +0 -1
  785. package/dist/src/services/sc/sc-service.d.ts +0 -131
  786. package/dist/src/services/sc/sc-service.js +0 -552
  787. package/dist/src/services/scan/acceptance-coverage-service.d.ts +0 -42
  788. package/dist/src/services/scan/acceptance-coverage-service.js +0 -140
  789. package/dist/src/services/scan/api-surface-service.d.ts +0 -69
  790. package/dist/src/services/scan/api-surface-service.js +0 -239
  791. package/dist/src/services/scan/archetype-service.d.ts +0 -5
  792. package/dist/src/services/scan/archetype-service.js +0 -242
  793. package/dist/src/services/scan/diff-scope-service.d.ts +0 -40
  794. package/dist/src/services/scan/diff-scope-service.js +0 -198
  795. package/dist/src/services/scan/existing-system-service.d.ts +0 -7
  796. package/dist/src/services/scan/existing-system-service.js +0 -300
  797. package/dist/src/services/scan/file-size-scan.d.ts +0 -23
  798. package/dist/src/services/scan/file-size-scan.js +0 -68
  799. package/dist/src/services/scan/karpathy-service.d.ts +0 -60
  800. package/dist/src/services/scan/karpathy-service.js +0 -228
  801. package/dist/src/services/scan/libraries-service.d.ts +0 -24
  802. package/dist/src/services/scan/libraries-service.js +0 -419
  803. package/dist/src/services/scan/libraries-types.d.ts +0 -59
  804. package/dist/src/services/scan/libraries-types.js +0 -9
  805. package/dist/src/services/scan/orphan-service.d.ts +0 -76
  806. package/dist/src/services/scan/orphan-service.js +0 -538
  807. package/dist/src/services/scan/scan-types.d.ts +0 -59
  808. package/dist/src/services/scan/scan-types.js +0 -1
  809. package/dist/src/services/scan/type-sanity-service.d.ts +0 -23
  810. package/dist/src/services/scan/type-sanity-service.js +0 -116
  811. package/dist/src/services/security/safe-settings-path.d.ts +0 -12
  812. package/dist/src/services/security/safe-settings-path.js +0 -104
  813. package/dist/src/services/sediment/dispose-confirm.d.ts +0 -9
  814. package/dist/src/services/sediment/dispose-confirm.js +0 -5
  815. package/dist/src/services/sediment/json-schema.d.ts +0 -247
  816. package/dist/src/services/sediment/json-schema.js +0 -26
  817. package/dist/src/services/sediment/manifest-lint.d.ts +0 -13
  818. package/dist/src/services/sediment/manifest-lint.js +0 -11
  819. package/dist/src/services/sediment/pool-paths.d.ts +0 -22
  820. package/dist/src/services/sediment/pool-paths.js +0 -25
  821. package/dist/src/services/sediment/pool-read.d.ts +0 -20
  822. package/dist/src/services/sediment/pool-read.js +0 -73
  823. package/dist/src/services/sediment/pool-rebuild-index.d.ts +0 -15
  824. package/dist/src/services/sediment/pool-rebuild-index.js +0 -28
  825. package/dist/src/services/sediment/pool-write.d.ts +0 -14
  826. package/dist/src/services/sediment/pool-write.js +0 -25
  827. package/dist/src/services/sediment/promotion-gate.d.ts +0 -12
  828. package/dist/src/services/sediment/promotion-gate.js +0 -20
  829. package/dist/src/services/sediment/types.d.ts +0 -52
  830. package/dist/src/services/sediment/types.js +0 -1
  831. package/dist/src/services/session/binding-status-service.d.ts +0 -56
  832. package/dist/src/services/session/binding-status-service.js +0 -106
  833. package/dist/src/services/session/binding-store.d.ts +0 -161
  834. package/dist/src/services/session/binding-store.js +0 -509
  835. package/dist/src/services/session/caller-binding-service.d.ts +0 -70
  836. package/dist/src/services/session/caller-binding-service.js +0 -148
  837. package/dist/src/services/session/caller-id-types.d.ts +0 -77
  838. package/dist/src/services/session/caller-id-types.js +0 -46
  839. package/dist/src/services/session/getSessionDir.d.ts +0 -1
  840. package/dist/src/services/session/getSessionDir.js +0 -27
  841. package/dist/src/services/session/index.d.ts +0 -6
  842. package/dist/src/services/session/index.js +0 -7
  843. package/dist/src/services/session/platform-fallbacks.d.ts +0 -31
  844. package/dist/src/services/session/platform-fallbacks.js +0 -35
  845. package/dist/src/services/session/resolve-caller-id.d.ts +0 -57
  846. package/dist/src/services/session/resolve-caller-id.js +0 -88
  847. package/dist/src/services/session/session-binding-bridge.d.ts +0 -76
  848. package/dist/src/services/session/session-binding-bridge.js +0 -247
  849. package/dist/src/services/session/session-checkpoint-service.d.ts +0 -57
  850. package/dist/src/services/session/session-checkpoint-service.js +0 -143
  851. package/dist/src/services/session/session-manager.d.ts +0 -168
  852. package/dist/src/services/session/session-manager.js +0 -502
  853. package/dist/src/services/session/session-resume-service.d.ts +0 -25
  854. package/dist/src/services/session/session-resume-service.js +0 -101
  855. package/dist/src/services/share/bundle-reader.d.ts +0 -100
  856. package/dist/src/services/share/bundle-reader.js +0 -434
  857. package/dist/src/services/share/bundle-types.d.ts +0 -392
  858. package/dist/src/services/share/bundle-types.js +0 -318
  859. package/dist/src/services/share/bundle-writer.d.ts +0 -97
  860. package/dist/src/services/share/bundle-writer.js +0 -429
  861. package/dist/src/services/share/run-state-contract.d.ts +0 -133
  862. package/dist/src/services/share/run-state-contract.js +0 -138
  863. package/dist/src/services/signal/cancel-handler.d.ts +0 -14
  864. package/dist/src/services/signal/cancel-handler.js +0 -76
  865. package/dist/src/services/skill/resume-detector.d.ts +0 -54
  866. package/dist/src/services/skill/resume-detector.js +0 -334
  867. package/dist/src/services/skill/skill-scheduler.d.ts +0 -40
  868. package/dist/src/services/skill/skill-scheduler.js +0 -53
  869. package/dist/src/services/skill/skill-search-service.d.ts +0 -88
  870. package/dist/src/services/skill/skill-search-service.js +0 -228
  871. package/dist/src/services/skillhub/release-diff.d.ts +0 -18
  872. package/dist/src/services/skillhub/release-diff.js +0 -38
  873. package/dist/src/services/skillhub/release-export.d.ts +0 -8
  874. package/dist/src/services/skillhub/release-export.js +0 -31
  875. package/dist/src/services/skillhub/release-gc-blobs.d.ts +0 -13
  876. package/dist/src/services/skillhub/release-gc-blobs.js +0 -32
  877. package/dist/src/services/skillhub/release-import.d.ts +0 -7
  878. package/dist/src/services/skillhub/release-import.js +0 -64
  879. package/dist/src/services/skillhub/release-retain.d.ts +0 -23
  880. package/dist/src/services/skillhub/release-retain.js +0 -94
  881. package/dist/src/services/skillhub/sqlite-store.d.ts +0 -22
  882. package/dist/src/services/skillhub/sqlite-store.js +0 -63
  883. package/dist/src/services/skillhub/tar-runtime.d.ts +0 -21
  884. package/dist/src/services/skillhub/tar-runtime.js +0 -91
  885. package/dist/src/services/skillhub/types.d.ts +0 -115
  886. package/dist/src/services/skillhub/types.js +0 -1
  887. package/dist/src/services/skills/hooks-settings-service.d.ts +0 -137
  888. package/dist/src/services/skills/hooks-settings-service.js +0 -396
  889. package/dist/src/services/skills/skill-conformance-service.d.ts +0 -40
  890. package/dist/src/services/skills/skill-conformance-service.js +0 -139
  891. package/dist/src/services/skills/skill-presence-service.d.ts +0 -158
  892. package/dist/src/services/skills/skill-presence-service.js +0 -474
  893. package/dist/src/services/skills/skill-registry.d.ts +0 -17
  894. package/dist/src/services/skills/skill-registry.js +0 -67
  895. package/dist/src/services/skills/skill-runbook-service.d.ts +0 -11
  896. package/dist/src/services/skills/skill-runbook-service.js +0 -128
  897. package/dist/src/services/skills/skill-statusline-renderer.d.ts +0 -6
  898. package/dist/src/services/skills/skill-statusline-renderer.js +0 -55
  899. package/dist/src/services/skills/skill-statusline-service.d.ts +0 -24
  900. package/dist/src/services/skills/skill-statusline-service.js +0 -110
  901. package/dist/src/services/skills/statusline-settings-service.d.ts +0 -59
  902. package/dist/src/services/skills/statusline-settings-service.js +0 -141
  903. package/dist/src/services/skills/sync-service.d.ts +0 -86
  904. package/dist/src/services/skills/sync-service.js +0 -271
  905. package/dist/src/services/slice/calibration-store.d.ts +0 -39
  906. package/dist/src/services/slice/calibration-store.js +0 -68
  907. package/dist/src/services/slice/cross-pass-edge-merger.d.ts +0 -53
  908. package/dist/src/services/slice/cross-pass-edge-merger.js +0 -246
  909. package/dist/src/services/slice/granularity-decider.d.ts +0 -37
  910. package/dist/src/services/slice/granularity-decider.js +0 -40
  911. package/dist/src/services/slice/llm-arbitrator.d.ts +0 -35
  912. package/dist/src/services/slice/llm-arbitrator.js +0 -63
  913. package/dist/src/services/slice/multi-pass-orchestrator.d.ts +0 -67
  914. package/dist/src/services/slice/multi-pass-orchestrator.js +0 -225
  915. package/dist/src/services/slice/schema-router.d.ts +0 -44
  916. package/dist/src/services/slice/schema-router.js +0 -61
  917. package/dist/src/services/slice/slice-archive-service.d.ts +0 -20
  918. package/dist/src/services/slice/slice-archive-service.js +0 -111
  919. package/dist/src/services/slice/slice-benchmark-service.d.ts +0 -19
  920. package/dist/src/services/slice/slice-benchmark-service.js +0 -60
  921. package/dist/src/services/slice/slice-check-service.d.ts +0 -2
  922. package/dist/src/services/slice/slice-check-service.js +0 -459
  923. package/dist/src/services/slice/slice-check-types.d.ts +0 -104
  924. package/dist/src/services/slice/slice-check-types.js +0 -28
  925. package/dist/src/services/slice/slice-decompose-runners.d.ts +0 -23
  926. package/dist/src/services/slice/slice-decompose-runners.js +0 -174
  927. package/dist/src/services/slice/slice-decompose-service.d.ts +0 -24
  928. package/dist/src/services/slice/slice-decompose-service.js +0 -532
  929. package/dist/src/services/slice/slice-decompose-types.d.ts +0 -263
  930. package/dist/src/services/slice/slice-decompose-types.js +0 -30
  931. package/dist/src/services/slice/slice-integration.d.ts +0 -43
  932. package/dist/src/services/slice/slice-integration.js +0 -106
  933. package/dist/src/services/slice/slice-pick-service.d.ts +0 -32
  934. package/dist/src/services/slice/slice-pick-service.js +0 -75
  935. package/dist/src/services/slice/slice-review-state.d.ts +0 -70
  936. package/dist/src/services/slice/slice-review-state.js +0 -109
  937. package/dist/src/services/slice/slice-topology-types.d.ts +0 -115
  938. package/dist/src/services/slice/slice-topology-types.js +0 -20
  939. package/dist/src/services/smoke/smoke-paths-state.d.ts +0 -73
  940. package/dist/src/services/smoke/smoke-paths-state.js +0 -117
  941. package/dist/src/services/sop/gate-enforce-service.d.ts +0 -33
  942. package/dist/src/services/sop/gate-enforce-service.js +0 -168
  943. package/dist/src/services/sop/sop-advance-service.d.ts +0 -74
  944. package/dist/src/services/sop/sop-advance-service.js +0 -115
  945. package/dist/src/services/sop/sop-check-service.d.ts +0 -45
  946. package/dist/src/services/sop/sop-check-service.js +0 -181
  947. package/dist/src/services/sop/sop-paths.d.ts +0 -62
  948. package/dist/src/services/sop/sop-paths.js +0 -92
  949. package/dist/src/services/sop/sop-registry-service.d.ts +0 -46
  950. package/dist/src/services/sop/sop-registry-service.js +0 -89
  951. package/dist/src/services/sop/sop-service.d.ts +0 -55
  952. package/dist/src/services/sop/sop-service.js +0 -222
  953. package/dist/src/services/sop/sop-types.d.ts +0 -95
  954. package/dist/src/services/sop/sop-types.js +0 -11
  955. package/dist/src/services/standards/ide-aware-standards-service.d.ts +0 -94
  956. package/dist/src/services/standards/ide-aware-standards-service.js +0 -89
  957. package/dist/src/services/standards/loop-engineering-lint.d.ts +0 -38
  958. package/dist/src/services/standards/loop-engineering-lint.js +0 -101
  959. package/dist/src/services/standards/loop-engineering-readiness-lint.d.ts +0 -111
  960. package/dist/src/services/standards/loop-engineering-readiness-lint.js +0 -248
  961. package/dist/src/services/standards/migrate-claude-rules-service.d.ts +0 -19
  962. package/dist/src/services/standards/migrate-claude-rules-service.js +0 -193
  963. package/dist/src/services/standards/migrate-service.d.ts +0 -63
  964. package/dist/src/services/standards/migrate-service.js +0 -193
  965. package/dist/src/services/standards/missing-standards-detector.d.ts +0 -79
  966. package/dist/src/services/standards/missing-standards-detector.js +0 -132
  967. package/dist/src/services/standards/project-context.d.ts +0 -24
  968. package/dist/src/services/standards/project-context.js +0 -314
  969. package/dist/src/services/standards/project-standards-service.d.ts +0 -114
  970. package/dist/src/services/standards/project-standards-service.js +0 -574
  971. package/dist/src/services/tech/tech-service.d.ts +0 -69
  972. package/dist/src/services/tech/tech-service.js +0 -299
  973. package/dist/src/services/test-cache/test-cache-service.d.ts +0 -70
  974. package/dist/src/services/test-cache/test-cache-service.js +0 -175
  975. package/dist/src/services/understand/hybrid-types.d.ts +0 -32
  976. package/dist/src/services/understand/hybrid-types.js +0 -1
  977. package/dist/src/services/understand/understand-hybrid-service.d.ts +0 -10
  978. package/dist/src/services/understand/understand-hybrid-service.js +0 -100
  979. package/dist/src/services/understand/understand-scan-service.d.ts +0 -28
  980. package/dist/src/services/understand/understand-scan-service.js +0 -170
  981. package/dist/src/services/understand/understand-types.d.ts +0 -50
  982. package/dist/src/services/understand/understand-types.js +0 -1
  983. package/dist/src/services/upgrade/1x-detector-service.d.ts +0 -7
  984. package/dist/src/services/upgrade/1x-detector-service.js +0 -94
  985. package/dist/src/services/upgrade/gitignore-migrate-service.d.ts +0 -56
  986. package/dist/src/services/upgrade/gitignore-migrate-service.js +0 -170
  987. package/dist/src/services/upgrade/upgrade-service.d.ts +0 -81
  988. package/dist/src/services/upgrade/upgrade-service.js +0 -403
  989. package/dist/src/services/verdict/envelopes.d.ts +0 -93
  990. package/dist/src/services/verdict/envelopes.js +0 -349
  991. package/dist/src/services/verdict/verdict-aggregator.d.ts +0 -94
  992. package/dist/src/services/verdict/verdict-aggregator.js +0 -112
  993. package/dist/src/services/workflow/artifact-paths.d.ts +0 -59
  994. package/dist/src/services/workflow/artifact-paths.js +0 -166
  995. package/dist/src/services/workflow/autonomous-resume-writer.d.ts +0 -16
  996. package/dist/src/services/workflow/autonomous-resume-writer.js +0 -170
  997. package/dist/src/services/workflow/pipeline-verify-service.d.ts +0 -90
  998. package/dist/src/services/workflow/pipeline-verify-service.js +0 -449
  999. package/dist/src/services/workflow/plan-reader.d.ts +0 -29
  1000. package/dist/src/services/workflow/plan-reader.js +0 -174
  1001. package/dist/src/services/workflow/plan-refresher.d.ts +0 -32
  1002. package/dist/src/services/workflow/plan-refresher.js +0 -353
  1003. package/dist/src/services/workflow/plan-trigger-detector.d.ts +0 -55
  1004. package/dist/src/services/workflow/plan-trigger-detector.js +0 -142
  1005. package/dist/src/services/workflow/workflow-autonomous-resume-helpers.d.ts +0 -19
  1006. package/dist/src/services/workflow/workflow-autonomous-resume-helpers.js +0 -300
  1007. package/dist/src/services/workflow/workflow-autonomous-service.d.ts +0 -100
  1008. package/dist/src/services/workflow/workflow-autonomous-service.js +0 -306
  1009. package/dist/src/services/workflow/workflow-loader.d.ts +0 -63
  1010. package/dist/src/services/workflow/workflow-loader.js +0 -168
  1011. package/dist/src/services/workflow/workflow-router-service.d.ts +0 -85
  1012. package/dist/src/services/workflow/workflow-router-service.js +0 -233
  1013. package/dist/src/services/workflow/workflow-skip-service.d.ts +0 -106
  1014. package/dist/src/services/workflow/workflow-skip-service.js +0 -209
  1015. package/dist/src/services/workflow/workflow-spec.d.ts +0 -116
  1016. package/dist/src/services/workflow/workflow-spec.js +0 -431
  1017. package/dist/src/services/workflow/workflow-state-store.d.ts +0 -27
  1018. package/dist/src/services/workflow/workflow-state-store.js +0 -95
  1019. package/dist/src/services/workspace/claude-settings-template.d.ts +0 -101
  1020. package/dist/src/services/workspace/claude-settings-template.js +0 -254
  1021. package/dist/src/services/workspace/migrate-1-4-1-service.d.ts +0 -44
  1022. package/dist/src/services/workspace/migrate-1-4-1-service.js +0 -195
  1023. package/dist/src/services/workspace/migrate-service.d.ts +0 -2
  1024. package/dist/src/services/workspace/migrate-service.js +0 -613
  1025. package/dist/src/services/workspace/migrate-types.d.ts +0 -127
  1026. package/dist/src/services/workspace/migrate-types.js +0 -21
  1027. package/dist/src/services/workspace/reconcile-service.d.ts +0 -188
  1028. package/dist/src/services/workspace/reconcile-service.js +0 -683
  1029. package/dist/src/services/workspace/reconcile-types.d.ts +0 -130
  1030. package/dist/src/services/workspace/reconcile-types.js +0 -13
  1031. package/dist/src/services/workspace/sid-naming-guard.d.ts +0 -17
  1032. package/dist/src/services/workspace/sid-naming-guard.js +0 -34
  1033. package/dist/src/services/workspace/workspace-claude-settings-materializer.d.ts +0 -45
  1034. package/dist/src/services/workspace/workspace-claude-settings-materializer.js +0 -194
  1035. package/dist/src/services/workspace/workspace-clean-service.d.ts +0 -28
  1036. package/dist/src/services/workspace/workspace-clean-service.js +0 -46
  1037. package/dist/src/services/workspace/workspace-service.d.ts +0 -177
  1038. package/dist/src/services/workspace/workspace-service.js +0 -432
  1039. package/dist/src/services/workspace/workspace-state-service.d.ts +0 -7
  1040. package/dist/src/services/workspace/workspace-state-service.js +0 -43
  1041. package/dist/src/shared/format-md-compact.d.ts +0 -32
  1042. package/dist/src/shared/format-md-compact.js +0 -297
  1043. package/dist/src/shared/frontmatter.d.ts +0 -6
  1044. package/dist/src/shared/frontmatter.js +0 -165
  1045. package/dist/src/shared/fs-utils.d.ts +0 -4
  1046. package/dist/src/shared/fs-utils.js +0 -16
  1047. package/dist/src/shared/fs.d.ts +0 -4
  1048. package/dist/src/shared/fs.js +0 -26
  1049. package/dist/src/shared/incrementing-number.d.ts +0 -23
  1050. package/dist/src/shared/incrementing-number.js +0 -68
  1051. package/dist/src/shared/json-schema-mini.d.ts +0 -10
  1052. package/dist/src/shared/json-schema-mini.js +0 -113
  1053. package/dist/src/shared/path-safety.d.ts +0 -21
  1054. package/dist/src/shared/path-safety.js +0 -54
  1055. package/dist/src/shared/path-utils.d.ts +0 -13
  1056. package/dist/src/shared/path-utils.js +0 -56
  1057. package/dist/src/shared/paths.d.ts +0 -6
  1058. package/dist/src/shared/paths.js +0 -50
  1059. package/dist/src/shared/planner-response.d.ts +0 -21
  1060. package/dist/src/shared/planner-response.js +0 -26
  1061. package/dist/src/shared/platform.d.ts +0 -6
  1062. package/dist/src/shared/platform.js +0 -11
  1063. package/dist/src/shared/process.d.ts +0 -5
  1064. package/dist/src/shared/process.js +0 -12
  1065. package/dist/src/shared/result.d.ts +0 -22
  1066. package/dist/src/shared/result.js +0 -46
  1067. package/dist/src/shared/stale-policy.d.ts +0 -67
  1068. package/dist/src/shared/stale-policy.js +0 -85
  1069. package/dist/src/shared/version.d.ts +0 -1
  1070. package/dist/src/shared/version.js +0 -1
  1071. package/dist/src/skills/peaks-maker/index.d.ts +0 -5
  1072. package/dist/src/skills/peaks-maker/index.js +0 -32
@@ -1,929 +0,0 @@
1
- import { join } from 'node:path';
2
- import { homedir } from 'node:os';
3
- import { existsSync, lstatSync, readFileSync, readdirSync } from 'node:fs';
4
- import { createRequire } from 'node:module';
5
- import { dirname, resolve as resolvePath } from 'node:path';
6
- import { readText } from '../../shared/fs.js';
7
- import { requiredSchemaFiles, requiredSkillNames, schemasDir } from '../../shared/paths.js';
8
- import { getErrorMessage } from '../../shared/result.js';
9
- import { loadSkillRegistry } from '../skills/skill-registry.js';
10
- import { getSkillPresence } from '../skills/skill-presence-service.js';
11
- import { planStatusLineInstall } from '../skills/statusline-settings-service.js';
12
- import { findProjectRoot } from '../config/config-safety.js';
13
- import { isValidSessionId } from '../workspace/sid-naming-guard.js';
14
- import { CLI_VERSION } from '../../shared/version.js';
15
- const CODEGRAPH_EXPECTED_VERSION = '0.7.10';
16
- const SKILL_PRESENCE_FRESHNESS_THRESHOLD_MS = 24 * 60 * 60 * 1000;
17
- function defaultCodegraphProbe() {
18
- const require = createRequire(import.meta.url);
19
- const packagePath = require.resolve('@colbymchenry/codegraph/package.json');
20
- const pkg = require(packagePath);
21
- const binaryPath = resolvePath(dirname(packagePath), 'dist', 'bin', 'codegraph.js');
22
- return {
23
- packagePath,
24
- version: pkg.version ?? 'unknown',
25
- binaryPath,
26
- binaryExists: existsSync(binaryPath)
27
- };
28
- }
29
- function defaultStatusLineInstalledProbe() {
30
- const projectRoot = findProjectRoot(process.cwd());
31
- // Check both scopes: a user may have installed the statusLine globally, which
32
- // the project-only check would miss and falsely report as "not installed".
33
- try {
34
- if (projectRoot !== null && planStatusLineInstall('project', projectRoot).alreadyInstalled) {
35
- return true;
36
- }
37
- }
38
- catch { // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
39
- /* fall through to global */
40
- }
41
- try {
42
- return planStatusLineInstall('global').alreadyInstalled;
43
- }
44
- catch {
45
- return false;
46
- }
47
- }
48
- function defaultWorkspaceInitializedProbe() {
49
- const projectRoot = findProjectRoot(process.cwd());
50
- if (projectRoot === null)
51
- return false;
52
- // Workspace is "initialized" when EITHER the canonical runtime-layer session
53
- // binding (`.peaks/_runtime/session.json`, the home since slice
54
- // 2026-06-05-peaks-runtime-layer) OR the legacy top-level binding
55
- // (`.peaks/.session.json`, kept as read-only back-compat for one minor
56
- // release) is present. The legacy check is what catches projects that ran
57
- // `peaks workspace init` before the runtime-layer migration and have not yet
58
- // been reconciled; both paths must continue to satisfy the doctor until the
59
- // legacy location is removed.
60
- return isWorkspaceInitializedAt(projectRoot);
61
- }
62
- /**
63
- * Pure helper extracted from `defaultWorkspaceInitializedProbe` so tests can
64
- * drive the filesystem check without monkey-patching `process.cwd()` or
65
- * `findProjectRoot`. Returns `true` when EITHER the canonical
66
- * `.peaks/_runtime/session.json` OR the legacy `.peaks/.session.json` exists.
67
- */
68
- export function isWorkspaceInitializedAt(projectRoot) {
69
- return (existsSync(join(projectRoot, '.peaks', '_runtime', 'session.json')) ||
70
- existsSync(join(projectRoot, '.peaks', '.session.json')));
71
- }
72
- /**
73
- * Pure helper that compares the published dist `CLI_VERSION` against the
74
- * source-of-truth `package.json#version`. Default readers fail-soft to `null`
75
- * on missing/unreadable/malformed input. Exported so tests can drive the
76
- * filesystem reads without monkey-patching `process.cwd()`.
77
- */
78
- export function compareDistVersion(opts) {
79
- const distReader = opts.distVersionReader ?? defaultDistVersionReader;
80
- const sourceReader = opts.sourceVersionReader ?? defaultSourceVersionReader;
81
- const dist = safeRead(() => distReader(opts.projectRoot));
82
- const source = safeRead(() => sourceReader(opts.projectRoot)) ?? 'unknown';
83
- const distReadable = dist !== null;
84
- return {
85
- dist,
86
- source,
87
- match: distReadable && dist === source,
88
- distReadable
89
- };
90
- }
91
- function safeRead(reader) {
92
- try {
93
- return reader();
94
- }
95
- catch { // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
96
- return null;
97
- }
98
- }
99
- function defaultDistVersionReader(projectRoot) {
100
- // Synchronous read is fine: the dist version.js is small and on the
101
- // local build pipeline's hot path. readFileSync + regex is cheaper
102
- // than pulling in fs/promises for a single short file.
103
- const distPath = join(projectRoot, 'dist', 'src', 'shared', 'version.js');
104
- if (!existsSync(distPath)) {
105
- return null;
106
- }
107
- const body = readFileSync(distPath, 'utf8');
108
- const match = /export\s+const\s+CLI_VERSION\s*=\s*["']([^"']+)["']/.exec(body);
109
- return match?.[1] ?? null;
110
- }
111
- function defaultSourceVersionReader(projectRoot) {
112
- const pkgPath = join(projectRoot, 'package.json');
113
- if (!existsSync(pkgPath)) {
114
- return null;
115
- }
116
- const body = readFileSync(pkgPath, 'utf8');
117
- const parsed = JSON.parse(body);
118
- return typeof parsed.version === 'string' ? parsed.version : null;
119
- }
120
- function defaultDistVersionProbe() {
121
- const projectRoot = findProjectRoot(process.cwd());
122
- if (projectRoot === null) {
123
- return { dist: null, source: 'unknown', match: false, distReadable: false };
124
- }
125
- return compareDistVersion({ projectRoot });
126
- }
127
- /**
128
- * Pure helper that inspects the on-disk workspace layout for
129
- * post-F3-canonical violations. The post-F3 canonical layout puts
130
- * session dirs under `.peaks/_runtime/<sid>/` and the runtime
131
- * binding at `.peaks/_runtime/session.json`; the legacy paths
132
- * (top-level `<YYYY-MM-DD-session-<hex>>/` dirs and the legacy
133
- * top-level `.peaks/.session.json` / `.peaks/.active-skill.json`
134
- * dotfiles) must be absent. This helper is exported so tests can
135
- * drive the filesystem walk without monkey-patching `process.cwd()`
136
- * or `findProjectRoot`.
137
- *
138
- * Both scanners fail-soft (return `[]` on read errors) so a flaky
139
- * filesystem read on a non-fatal probe path never escalates into a
140
- * doctor failure.
141
- */
142
- export function inspectWorkspaceLayout(opts) {
143
- const topLevel = opts.topLevelScanner ?? defaultTopLevelSessionDirScanner;
144
- const dotfiles = opts.dotfileScanner ?? defaultLegacyDotfileScanner;
145
- const perChangeId = opts.perChangeIdScanner ?? defaultPerChangeIdDirScanner;
146
- return {
147
- topLevelSessionDirs: safeList(() => topLevel(opts.projectRoot)),
148
- legacyDotfiles: safeList(() => dotfiles(opts.projectRoot)),
149
- perChangeIdDirs: safeList(() => perChangeId(opts.projectRoot))
150
- };
151
- }
152
- function safeList(reader) {
153
- try {
154
- const out = reader();
155
- return Array.isArray(out) ? out : [];
156
- }
157
- catch {
158
- return [];
159
- }
160
- }
161
- const SESSION_DIR_PATTERN = /^\d{4}-\d{2}-\d{2}-session-[a-f0-9]+$/;
162
- function defaultTopLevelSessionDirScanner(projectRoot) {
163
- const peaksRoot = join(projectRoot, '.peaks');
164
- if (!existsSync(peaksRoot))
165
- return [];
166
- let names;
167
- try {
168
- names = readdirSync(peaksRoot);
169
- }
170
- catch {
171
- return [];
172
- }
173
- const offenders = [];
174
- for (const name of names) {
175
- if (!SESSION_DIR_PATTERN.test(name))
176
- continue;
177
- const full = join(peaksRoot, name);
178
- try {
179
- const stat = existsSync(full) ? lstatSync(full) : null;
180
- if (stat === null)
181
- continue;
182
- // Directories only — the regex should never match a dotfile or
183
- // regular file, but be defensive against weird filesystem state
184
- // (e.g. someone manually created a file whose name happens to
185
- // match the session-id pattern).
186
- if (stat.isDirectory()) {
187
- offenders.push(join('.peaks', name) + '/');
188
- }
189
- }
190
- catch {
191
- continue;
192
- }
193
- }
194
- return offenders;
195
- }
196
- const LEGACY_DOTFILES = ['.session.json', '.active-skill.json'];
197
- function defaultLegacyDotfileScanner(projectRoot) {
198
- const peaksRoot = join(projectRoot, '.peaks');
199
- if (!existsSync(peaksRoot))
200
- return [];
201
- const offenders = [];
202
- for (const name of LEGACY_DOTFILES) {
203
- if (existsSync(join(peaksRoot, name))) {
204
- offenders.push(join('.peaks', name));
205
- }
206
- }
207
- return offenders;
208
- }
209
- function defaultWorkspaceLayoutProbe() {
210
- const projectRoot = findProjectRoot(process.cwd());
211
- if (projectRoot === null) {
212
- return { topLevelSessionDirs: [], legacyDotfiles: [], perChangeIdDirs: [] };
213
- }
214
- return inspectWorkspaceLayout({ projectRoot });
215
- }
216
- // Slice 007 — per-change-id top-level dir pattern. Matches the
217
- // F3-canonical (pre-canonicalization) layout the 5 already-shipped
218
- // slices left behind, e.g. `.peaks/001-2026-06-06-doctor-dist-version-check/`.
219
- // The pattern is intentionally narrow so it does NOT match the
220
- // post-F3 system dirs (`_runtime/`, `_dogfood/`, `retrospective/`,
221
- // `memory/`, `perf-baseline/`, `project-scan/`, `sops/`,
222
- // `0NN-session-...`, `YYYY-MM-DD-session-...`).
223
- const PER_CHANGE_ID_PATTERN = /^\d{3}-\d{4}-\d{2}-\d{2}-[a-z][a-z0-9-]*[a-z0-9]$/;
224
- function defaultPerChangeIdDirScanner(projectRoot) {
225
- const peaksRoot = join(projectRoot, '.peaks');
226
- if (!existsSync(peaksRoot))
227
- return [];
228
- let names;
229
- try {
230
- names = readdirSync(peaksRoot);
231
- }
232
- catch {
233
- return [];
234
- }
235
- const offenders = [];
236
- for (const name of names) {
237
- if (!PER_CHANGE_ID_PATTERN.test(name))
238
- continue;
239
- const full = join(peaksRoot, name);
240
- try {
241
- const stat = existsSync(full) ? lstatSync(full) : null;
242
- if (stat === null)
243
- continue;
244
- // Directories only — the regex should never match a dotfile
245
- // or regular file, but be defensive against weird filesystem
246
- // state (e.g. someone manually created a file whose name
247
- // happens to match the per-change-id pattern).
248
- if (stat.isDirectory()) {
249
- offenders.push(join('.peaks', name) + '/');
250
- }
251
- }
252
- catch {
253
- continue;
254
- }
255
- }
256
- return offenders;
257
- }
258
- const DESTRUCTIVE_APPLY_PATTERNS = [
259
- /peaks\s+memory\s+sync[^\n]*--apply/,
260
- /peaks\s+memory\s+extract[^\n]*--apply/,
261
- /peaks\s+artifacts\s+sync[^\n]*--apply/,
262
- /peaks\s+openspec\s+archive[^\n]*--apply/,
263
- /peaks\s+standards\s+(?:init|update)[^\n]*--apply/
264
- ];
265
- const AUTHORIZATION_KEYWORDS_PATTERN = /authoriz|explicit|--dry-run|approv|only after|only when/i;
266
- function extractRunbookSection(body) {
267
- const match = /## Default runbook\n+([\s\S]*?)(?=\n## |$)/.exec(body);
268
- return match === null ? null : (match[1] ?? null);
269
- }
270
- function findDestructiveApplyLines(section) {
271
- const lines = section.split(/\r?\n/);
272
- return lines.filter((line) => DESTRUCTIVE_APPLY_PATTERNS.some((pattern) => pattern.test(line)));
273
- }
274
- // ---------------------------------------------------------------------------
275
- // 2026-06-10 — gateguard-fact-force integration check (NOT a peaks-loop hook).
276
- //
277
- // The `gateguard-fact-force` hook is a third-party PreToolUse hook that
278
- // fires on Edit / Write / MultiEdit and demands a 4-fact questionnaire
279
- // before allowing the edit. It is unrelated to peaks-loop, but when the
280
- // LLM is in a peaks-qa flow and edits `.peaks/_runtime/<sid>/qa/requests/
281
- // *.md`, the questionnaire demands facts that do not apply (no
282
- // importers, no public API, no data files, user instruction already
283
- // in the conversation context). The check below detects the hook in
284
- // `~/.claude/settings.json` and the project `.claude/settings.json`,
285
- // and warns when no `.peaks/**` skip is configured.
286
- //
287
- // Probing is split out of the check so the check itself stays a pure
288
- // mapping over `GateguardProbeResult`. Tests inject the probe to keep
289
- // `~/.claude/settings.json` from leaking into test fixtures.
290
- // ---------------------------------------------------------------------------
291
- /** Hook command fragments that identify the gateguard-fact-force hook. */
292
- const GATEGUARD_HOOK_NEEDLES = ['gateguard', 'fact-force', 'fact_force'];
293
- /** Token the gateguard hook exposes for "skip these paths" — the check
294
- * treats any match against `.peaks` (path or globs) as a routed
295
- * configuration. We accept a few common spellings because the third-
296
- * party hook's CLI surface is not part of peaks-loop's contract. */
297
- const GATEGUARD_PEAKS_SKIP_NEEDLES = [
298
- '.peaks',
299
- 'peaks-skip',
300
- 'skip-glob',
301
- '--skip',
302
- 'skip_paths'
303
- ];
304
- function commandMentionsGateguard(command) {
305
- if (typeof command !== 'string' || command.length === 0)
306
- return false;
307
- const lower = command.toLowerCase();
308
- return GATEGUARD_HOOK_NEEDLES.some((needle) => lower.includes(needle));
309
- }
310
- function entrySkipsPeaks(entry) {
311
- const matcher = typeof entry.matcher === 'string' ? entry.matcher : '';
312
- const matcherMentionsPeaks = matcher.toLowerCase().includes('.peaks');
313
- if (matcherMentionsPeaks)
314
- return true;
315
- for (const hook of entry.hooks) {
316
- const command = typeof hook.command === 'string' ? hook.command : '';
317
- const lower = command.toLowerCase();
318
- if (GATEGUARD_PEAKS_SKIP_NEEDLES.some((needle) => lower.includes(needle))) {
319
- return true;
320
- }
321
- }
322
- return false;
323
- }
324
- function extractGateguardEntries(source, sourcePath, settings) {
325
- if (settings === null || typeof settings !== 'object')
326
- return [];
327
- const hooks = settings.hooks;
328
- if (hooks === null || typeof hooks !== 'object')
329
- return [];
330
- const preToolUse = hooks.PreToolUse;
331
- if (!Array.isArray(preToolUse))
332
- return [];
333
- const out = [];
334
- for (const rawEntry of preToolUse) {
335
- if (rawEntry === null || typeof rawEntry !== 'object')
336
- continue;
337
- const entry = rawEntry;
338
- if (!Array.isArray(entry.hooks))
339
- continue;
340
- const hooks = [];
341
- for (const rawHook of entry.hooks) {
342
- if (rawHook === null || typeof rawHook !== 'object')
343
- continue;
344
- const h = rawHook;
345
- const hookEntry = {};
346
- if (typeof h.type === 'string')
347
- hookEntry.type = h.type;
348
- if (typeof h.command === 'string')
349
- hookEntry.command = h.command;
350
- hooks.push(hookEntry);
351
- }
352
- if (!hooks.some((h) => commandMentionsGateguard(h.command)))
353
- continue;
354
- const outEntry = { hooks };
355
- if (typeof entry.matcher === 'string')
356
- outEntry.matcher = entry.matcher;
357
- out.push({ source, sourcePath, entry: outEntry });
358
- }
359
- return out;
360
- }
361
- function readSettingsJson(path) {
362
- if (!existsSync(path))
363
- return null;
364
- try {
365
- return JSON.parse(readFileSync(path, 'utf8'));
366
- }
367
- catch { // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
368
- return null;
369
- }
370
- }
371
- function defaultGateguardProbe() {
372
- const projectRoot = findProjectRoot(process.cwd());
373
- const globalPath = join(homedir(), '.claude', 'settings.json');
374
- const projectPath = projectRoot === null ? null : join(projectRoot, '.claude', 'settings.json');
375
- return {
376
- globalSettingsPath: globalPath,
377
- globalSettings: readSettingsJson(globalPath),
378
- projectSettingsPath: projectPath,
379
- projectSettings: projectPath === null ? null : readSettingsJson(projectPath)
380
- };
381
- }
382
- export function collectGateguardEntries(probe) {
383
- const fromGlobal = extractGateguardEntries('global', probe.globalSettingsPath ?? '~/.claude/settings.json', probe.globalSettings);
384
- const fromProject = probe.projectSettingsPath === null
385
- ? []
386
- : extractGateguardEntries('project', probe.projectSettingsPath, probe.projectSettings);
387
- return [...fromGlobal, ...fromProject];
388
- }
389
- export async function runDoctor(options = {}) {
390
- const checks = [];
391
- const registry = await loadSkillRegistry(options.skillsBaseDir);
392
- const skills = registry.skills;
393
- const skillNames = new Set(skills.map((skill) => skill.name));
394
- for (const requiredSkill of requiredSkillNames) {
395
- checks.push({
396
- id: `skill:${requiredSkill}`,
397
- ok: skillNames.has(requiredSkill),
398
- message: skillNames.has(requiredSkill)
399
- ? `Required skill ${requiredSkill} exists`
400
- : `Missing required skill ${requiredSkill}`
401
- });
402
- }
403
- for (const skill of skills) {
404
- checks.push({
405
- id: `skill-name:${skill.directory}`,
406
- ok: skill.name === skill.directory,
407
- message: skill.name === skill.directory
408
- ? `Skill ${skill.name} matches its directory`
409
- : `Skill ${skill.directory} declares mismatched name ${skill.name}`
410
- });
411
- }
412
- for (const failure of registry.failures) {
413
- checks.push({
414
- id: `skill-parse:${failure.directory}`,
415
- ok: false,
416
- message: `Skill ${failure.directory} has invalid metadata: ${failure.message}`
417
- });
418
- }
419
- const requiredSkillNameSet = new Set(requiredSkillNames);
420
- for (const skill of skills) {
421
- if (!requiredSkillNameSet.has(skill.name)) {
422
- continue;
423
- }
424
- try {
425
- const body = await readText(skill.skillPath);
426
- const hasRunbook = /## Default runbook\s/.test(body);
427
- checks.push({
428
- id: `skill-runbook:${skill.name}`,
429
- ok: hasRunbook,
430
- message: hasRunbook
431
- ? `Skill ${skill.name} declares a Default runbook`
432
- : `Skill ${skill.name} is missing a ## Default runbook section`
433
- });
434
- const runbookSection = extractRunbookSection(body);
435
- if (runbookSection !== null) {
436
- const destructiveLines = findDestructiveApplyLines(runbookSection);
437
- if (destructiveLines.length === 0) {
438
- checks.push({
439
- id: `skill-apply-note:${skill.name}`,
440
- ok: true,
441
- message: `Skill ${skill.name} runbook has no destructive --apply commands to gate`
442
- });
443
- }
444
- else {
445
- const hasAuthorizationNote = AUTHORIZATION_KEYWORDS_PATTERN.test(runbookSection);
446
- checks.push({
447
- id: `skill-apply-note:${skill.name}`,
448
- ok: hasAuthorizationNote,
449
- message: hasAuthorizationNote
450
- ? `Skill ${skill.name} gates ${destructiveLines.length} destructive --apply command(s) with an authorization note`
451
- : `Skill ${skill.name} has ${destructiveLines.length} destructive --apply command(s) without an authorization/dry-run note in the runbook section`
452
- });
453
- }
454
- }
455
- }
456
- catch (error) {
457
- checks.push({
458
- id: `skill-runbook:${skill.name}`,
459
- ok: false,
460
- message: `Skill ${skill.name} runbook check failed: ${getErrorMessage(error)}`
461
- });
462
- }
463
- }
464
- const schemaRoot = options.schemasBaseDir ?? schemasDir;
465
- for (const schemaFile of requiredSchemaFiles) {
466
- try {
467
- JSON.parse(await readText(join(schemaRoot, schemaFile)));
468
- checks.push({ id: `schema:${schemaFile}`, ok: true, message: `Schema ${schemaFile} is valid JSON` });
469
- }
470
- catch (error) {
471
- checks.push({
472
- id: `schema:${schemaFile}`,
473
- ok: false,
474
- message: `Schema ${schemaFile} is missing or invalid: ${getErrorMessage(error)}`
475
- });
476
- }
477
- }
478
- const userConfigPath = join(homedir(), '.peaks', 'config.json');
479
- const hasUserConfig = existsSync(userConfigPath);
480
- checks.push({
481
- id: 'config:user',
482
- ok: true,
483
- message: hasUserConfig ? 'User config exists at ~/.peaks/config.json' : 'Optional user config not found at ~/.peaks/config.json'
484
- });
485
- const presenceProbe = options.skillPresenceProbe ?? getSkillPresence;
486
- const freshnessThresholdMs = options.skillPresenceFreshnessThresholdMs ?? SKILL_PRESENCE_FRESHNESS_THRESHOLD_MS;
487
- let presence = null;
488
- try {
489
- presence = presenceProbe();
490
- }
491
- catch {
492
- presence = null;
493
- }
494
- if (presence === null) {
495
- checks.push({
496
- id: 'skill-presence:current',
497
- ok: true,
498
- message: 'No active Peaks skill presence (.peaks/.active-skill.json absent or invalid)'
499
- });
500
- checks.push({
501
- id: 'skill-presence:freshness',
502
- ok: true,
503
- message: 'No active Peaks skill presence to age-check'
504
- });
505
- }
506
- else {
507
- const modePart = presence.mode !== undefined ? `, mode ${presence.mode}` : '';
508
- const gatePart = presence.gate !== undefined ? `, gate ${presence.gate}` : '';
509
- checks.push({
510
- id: 'skill-presence:current',
511
- ok: true,
512
- message: `Active Peaks skill presence: ${presence.skill}${modePart}${gatePart} (set ${presence.setAt})`
513
- });
514
- const setAtMs = Date.parse(presence.setAt);
515
- if (Number.isNaN(setAtMs)) {
516
- checks.push({
517
- id: 'skill-presence:freshness',
518
- ok: false,
519
- message: `Skill presence ${presence.skill} has invalid setAt: ${presence.setAt}`
520
- });
521
- }
522
- else {
523
- const ageMs = Date.now() - setAtMs;
524
- if (ageMs > freshnessThresholdMs) {
525
- const ageHours = Math.round(ageMs / (60 * 60 * 1000));
526
- checks.push({
527
- id: 'skill-presence:freshness',
528
- ok: false,
529
- message: `Skill presence ${presence.skill} is stale (set ${presence.setAt}, ~${ageHours}h ago); run peaks skill presence:clear if the role has ended`
530
- });
531
- }
532
- else {
533
- checks.push({
534
- id: 'skill-presence:freshness',
535
- ok: true,
536
- message: `Skill presence ${presence.skill} is fresh (set ${presence.setAt})`
537
- });
538
- }
539
- }
540
- }
541
- // Workspace guard: an active workflow presence (peaks-code) with no workspace
542
- // session means the skill was anchored but `peaks workspace init` never ran —
543
- // the #1 reported failure where .peaks/ artifacts are never created. This
544
- // turns the SKILL.md "MUST create the workspace" prose into an executable check.
545
- const workspaceProbe = options.workspaceInitializedProbe ?? defaultWorkspaceInitializedProbe;
546
- let workspaceInitialized = false;
547
- try {
548
- workspaceInitialized = workspaceProbe();
549
- }
550
- catch {
551
- workspaceInitialized = false;
552
- }
553
- if (presence !== null && !workspaceInitialized) {
554
- checks.push({
555
- id: 'skill-presence:workspace',
556
- ok: false,
557
- message: `Skill ${presence.skill} is active but no workspace session exists (.peaks/_runtime/session.json missing); run \`peaks workspace init --project <repo>\` — peaks-code Step 0 must anchor the workspace before any work`
558
- });
559
- }
560
- else {
561
- checks.push({
562
- id: 'skill-presence:workspace',
563
- ok: true,
564
- message: presence === null
565
- ? 'No active skill presence; workspace guard not applicable'
566
- : `Workspace session present for active skill ${presence.skill}`
567
- });
568
- }
569
- // Discoverability nudge: when a skill is actively orchestrating but the
570
- // out-of-band statusLine isn't installed, the user has no terminal-level
571
- // signal that Peaks is in control. Suggest installing it (non-failing).
572
- const statusLineProbe = options.statusLineInstalledProbe ?? defaultStatusLineInstalledProbe;
573
- let statusLineInstalled = false;
574
- try {
575
- statusLineInstalled = statusLineProbe();
576
- }
577
- catch {
578
- statusLineInstalled = false;
579
- }
580
- if (presence !== null && !statusLineInstalled) {
581
- checks.push({
582
- id: 'statusline:install',
583
- ok: true,
584
- message: 'A Peaks skill is active but the statusLine is not installed; run `peaks statusline install` so the active skill shows in the terminal status bar'
585
- });
586
- }
587
- else {
588
- checks.push({
589
- id: 'statusline:install',
590
- ok: true,
591
- message: statusLineInstalled
592
- ? 'Peaks statusLine is installed'
593
- : 'Peaks statusLine not installed (no active skill; install optional)'
594
- });
595
- }
596
- // Runtime/platform diagnostic for the "statusLine shows nothing" reports.
597
- // Surfaces (a) the running peaks version — a stale global install predating
598
- // the statusLine feature is a common cause — and (b) on Windows, the fact that
599
- // the bare `peaks statusline` command must resolve in the shell Claude Code
600
- // spawns, which fails when the npm global bin dir is not on that shell's PATH.
601
- const platform = options.platform ?? process.platform;
602
- if (platform === 'win32') {
603
- checks.push({
604
- id: 'statusline:runtime',
605
- ok: true,
606
- message: `peaks ${CLI_VERSION} (win32): if the statusLine shows nothing in git bash, verify \`peaks\` resolves on PATH in the shell Claude Code uses (run \`peaks -v\` there), reinstall globally with \`npm i -g peaks-loop@latest\` if the version is older than ${CLI_VERSION}, then re-run \`peaks statusline install\` and reload Claude Code`
607
- });
608
- }
609
- else {
610
- checks.push({
611
- id: 'statusline:runtime',
612
- ok: true,
613
- message: `peaks ${CLI_VERSION} (${platform}): statusLine command is \`peaks statusline\``
614
- });
615
- }
616
- const probe = options.codegraphProbe ?? defaultCodegraphProbe;
617
- try {
618
- const result = probe();
619
- const versionOk = result.version === CODEGRAPH_EXPECTED_VERSION;
620
- if (!versionOk) {
621
- checks.push({
622
- id: 'capability:codegraph',
623
- ok: false,
624
- message: `@colbymchenry/codegraph version mismatch: expected ${CODEGRAPH_EXPECTED_VERSION}, resolved ${result.version} at ${result.packagePath}`
625
- });
626
- }
627
- else if (!result.binaryExists) {
628
- checks.push({
629
- id: 'capability:codegraph',
630
- ok: false,
631
- message: `@colbymchenry/codegraph@${result.version} resolved at ${result.packagePath} but binary is missing at ${result.binaryPath}`
632
- });
633
- }
634
- else {
635
- checks.push({
636
- id: 'capability:codegraph',
637
- ok: true,
638
- message: `@colbymchenry/codegraph@${result.version} resolves with binary at ${result.binaryPath}`
639
- });
640
- }
641
- }
642
- catch (error) {
643
- checks.push({
644
- id: 'capability:codegraph',
645
- ok: false,
646
- message: `@colbymchenry/codegraph not resolvable: ${getErrorMessage(error)}`
647
- });
648
- }
649
- // Build-hygiene check: the published `dist/` ships a different CLI_VERSION
650
- // than the source-of-truth `src/shared/version.ts` / `package.json#version`
651
- // whenever the user runs `npx peaks` or `node bin/peaks.js` after `pnpm
652
- // install` but before `pnpm build`. This is the silent-stale-CLI failure
653
- // mode reported in `.peaks/2026-06-05-session-fecddb/txt/dogfood-2026-06-04-05.md`
654
- // (F1). A missing dist/ is treated as informational (fresh clone, not broken)
655
- // so the check does not flip the summary to red on a clean checkout.
656
- const distProbe = options.distVersionProbe ?? defaultDistVersionProbe;
657
- try {
658
- const result = distProbe();
659
- if (!result.distReadable) {
660
- checks.push({
661
- id: 'build:dist-version-matches-source',
662
- ok: true,
663
- message: `dist/ is not present; run \`pnpm build\` to populate dist/src/shared/version.js (source version ${result.source})`
664
- });
665
- }
666
- else if (result.match) {
667
- checks.push({
668
- id: 'build:dist-version-matches-source',
669
- ok: true,
670
- message: `dist/src/shared/version.js ships CLI_VERSION ${result.dist} matching source ${result.source}`
671
- });
672
- }
673
- else {
674
- checks.push({
675
- id: 'build:dist-version-matches-source',
676
- ok: false,
677
- message: `dist/src/shared/version.js ships CLI_VERSION ${result.dist} but source ${result.source} is in src/shared/version.ts; run \`pnpm build\` to refresh dist/`
678
- });
679
- }
680
- }
681
- catch (error) {
682
- checks.push({
683
- id: 'build:dist-version-matches-source',
684
- ok: false,
685
- message: `dist version check failed: ${getErrorMessage(error)}`
686
- });
687
- }
688
- // Build-hygiene check: a non-canonical post-F3 workspace layout is
689
- // the silent-regression failure mode that slice 003 explicitly chose
690
- // to allow (the current session binding was kept at top-level as a
691
- // safety measure). This check surfaces any leftover top-level
692
- // session dirs, the legacy runtime dotfiles (`.peaks/.session.json`,
693
- // `.peaks/.active-skill.json`), OR per-change-id top-level dirs
694
- // (`.peaks/NNN-YYYY-MM-DD-<slug>/`) so a future contributor who
695
- // manually recreates one of them is warned. The check is read-only;
696
- // the fix path is `peaks workspace migrate --to-runtime --project
697
- // <repo> --apply`.
698
- //
699
- // Slice 007 broadened this check to flag per-change-id top-level
700
- // dirs (the 5 already-shipped slices left them behind). Until
701
- // slice 008's migration consolidates them, the check reports
702
- // `ok: false` for any repo that still has the legacy per-change-id
703
- // layout.
704
- const layoutProbe = options.workspaceLayoutProbe ?? defaultWorkspaceLayoutProbe;
705
- try {
706
- const layout = layoutProbe();
707
- // Back-compat: probes injected by older tests (pre-slice-007)
708
- // return a 2-field shape (no perChangeIdDirs). Treat missing
709
- // field as empty.
710
- const perChangeIdDirs = layout.perChangeIdDirs ?? [];
711
- if (layout.topLevelSessionDirs.length === 0 && layout.legacyDotfiles.length === 0 && perChangeIdDirs.length === 0) {
712
- checks.push({
713
- id: 'build:workspace-layout-canonical',
714
- ok: true,
715
- message: 'Workspace layout is canonical: no top-level session dirs, no legacy runtime dotfiles, no per-change-id top-level dirs'
716
- });
717
- }
718
- else {
719
- const offenders = [
720
- ...layout.topLevelSessionDirs.map((p) => `top-level session dir: ${p}`),
721
- ...layout.legacyDotfiles.map((p) => `legacy dotfile: ${p}`),
722
- ...perChangeIdDirs.map((p) => `per-change-id top-level dir: ${p}`)
723
- ];
724
- checks.push({
725
- id: 'build:workspace-layout-canonical',
726
- ok: false,
727
- message: `Workspace layout is not canonical. Offenders: ${offenders.join('; ')}. Run \`peaks workspace migrate --to-runtime --project <repo> --apply\` to consolidate.`
728
- });
729
- }
730
- }
731
- catch (error) {
732
- checks.push({
733
- id: 'build:workspace-layout-canonical',
734
- ok: false,
735
- message: `Workspace layout check failed: ${getErrorMessage(error)}`
736
- });
737
- }
738
- // 2026-06-10 — gateguard-fact-force integration check. The hook is a
739
- // third-party PreToolUse that fires on Edit / Write and demands a
740
- // 4-fact questionnaire; when the LLM is in a peaks-qa flow updating
741
- // `.peaks/_runtime/<sid>/qa/requests/*.md` the facts do not apply.
742
- // We warn when the hook is installed and no `.peaks/**` skip is
743
- // configured. The check stays a pure mapping over the probe result
744
- // so tests can drive it without touching the real `~/.claude/`.
745
- const gateguardProbe = options.gateguardProbe ?? defaultGateguardProbe;
746
- try {
747
- const probe = gateguardProbe();
748
- const offending = collectGateguardEntries(probe);
749
- if (offending.length === 0) {
750
- checks.push({
751
- id: 'integration:gateguard-peaks-conflict',
752
- ok: true,
753
- message: 'No gateguard-fact-force PreToolUse hook detected in ~/.claude/settings.json or project .claude/settings.json; the Edit/Write fact-forcing flow will not interfere with peaks-qa .peaks/ artifact writes'
754
- });
755
- }
756
- else {
757
- const unrouted = offending.filter((location) => !entrySkipsPeaks(location.entry));
758
- if (unrouted.length === 0) {
759
- checks.push({
760
- id: 'integration:gateguard-peaks-conflict',
761
- ok: true,
762
- message: `gateguard-fact-force hook is installed in ${offending.map((l) => l.source).join(' + ')} but a .peaks/** skip pattern is configured; peaks-qa .peaks/ artifact writes are not blocked`
763
- });
764
- }
765
- else {
766
- const sources = Array.from(new Set(unrouted.map((u) => u.sourcePath))).join(' + ');
767
- const matchers = unrouted.map((u) => u.entry.matcher ?? '*').join(', ');
768
- checks.push({
769
- id: 'integration:gateguard-peaks-conflict',
770
- ok: false,
771
- message: `gateguard-fact-force PreToolUse hook is installed (${sources}, matcher: ${matchers}) with no .peaks/** skip pattern; every Edit/Write of a peaks-qa envelope (.peaks/_runtime/<sid>/qa/requests/*.md) will be intercepted and demand a 4-fact questionnaire that does not apply to QA templates. Workaround: set \`ECC_DISABLED_HOOKS=pre:edit-write:gateguard-fact-force\` for the session, OR add a paired PreToolUse entry whose matcher restricts the hook to non-.peaks paths. peaks-loop is NOT the source of this hook.`
772
- });
773
- }
774
- }
775
- }
776
- catch (error) {
777
- checks.push({
778
- id: 'integration:gateguard-peaks-conflict',
779
- ok: true,
780
- message: `gateguard probe failed (${getErrorMessage(error)}); skipping check`
781
- });
782
- }
783
- try {
784
- const schemaText = await readText(join(schemaRoot, 'doctor-report.schema.json'));
785
- const schema = JSON.parse(schemaText);
786
- const patternSource = schema.properties?.checks?.items?.properties?.id?.pattern;
787
- if (typeof patternSource === 'string') {
788
- const pattern = new RegExp(patternSource);
789
- const mismatches = checks.filter((check) => !pattern.test(check.id)).map((check) => check.id);
790
- checks.push({
791
- id: 'doctor-self:check-id-pattern',
792
- ok: mismatches.length === 0,
793
- message: mismatches.length === 0
794
- ? 'All doctor check IDs match the doctor-report schema pattern'
795
- : `Doctor check IDs missing from schema pattern: ${mismatches.join(', ')}`
796
- });
797
- }
798
- else {
799
- checks.push({
800
- id: 'doctor-self:check-id-pattern',
801
- ok: false,
802
- message: 'doctor-report.schema.json does not declare a check.id pattern'
803
- });
804
- }
805
- }
806
- catch (error) {
807
- checks.push({
808
- id: 'doctor-self:check-id-pattern',
809
- ok: false,
810
- message: `Failed to load doctor-report.schema.json for self-validation: ${getErrorMessage(error)}`
811
- });
812
- }
813
- // Slice L3.2: project doctor MVP — 2 new diagnostic checks.
814
- // 1. L3:l3-orphan-sessions — flags bare sids in .peaks/_runtime/ that
815
- // fail isValidSessionId. Reuses the Slice 0.5 sid-naming-guard.
816
- // 2. L3:l3-memory-health — verifies .peaks/memory/index.json is
817
- // well-formed JSON with the expected schema_version field and
818
- // references real files on disk.
819
- // Slice L3.2: project doctor MVP — 2 new diagnostic checks.
820
- // 1. L3:l3-orphan-sessions — flags bare sids in .peaks/_runtime/ that
821
- // fail isValidSessionId. Reuses the Slice 0.5 sid-naming-guard.
822
- // 2. L3:l3-memory-health — verifies .peaks/memory/index.json is
823
- // well-formed JSON with the expected schema_version field and
824
- // references real files on disk.
825
- //
826
- // Round 2 (slice 2026-06-24-doctor-1xdetector-residual): the reducer
827
- // must skip canonical system subdirs that intentionally live under
828
- // `.peaks/_runtime/` — used by `request-artifact-service` /
829
- // `workflow-autonomous-service` to route reviewable artifacts under
830
- // session-axis dirs. Excluding these from the orphan scan is a
831
- // reducer-level narrowing of which entries are subject to the check;
832
- // it does NOT change the pass/fail rule for actual session ids.
833
- const RUNTIME_SYSTEM_SUBDIRS = new Set(['change']);
834
- const l3ProjectRoot = options.l3ProjectRoot ?? findProjectRoot(process.cwd()) ?? process.cwd();
835
- try {
836
- const runtimeDir = join(l3ProjectRoot, '.peaks/_runtime');
837
- if (existsSync(runtimeDir)) {
838
- const entries = readdirSync(runtimeDir, { withFileTypes: true })
839
- .filter((e) => e.isDirectory())
840
- .map((e) => e.name)
841
- .filter((name) => !RUNTIME_SYSTEM_SUBDIRS.has(name));
842
- const validSids = entries.filter((sid) => isValidSessionId(sid));
843
- const invalidSids = entries.filter((sid) => !isValidSessionId(sid));
844
- checks.push({
845
- id: 'L3:l3-orphan-sessions',
846
- ok: invalidSids.length === 0,
847
- message: invalidSids.length === 0
848
- ? `All ${validSids.length} session(s) under .peaks/_runtime/ are valid (isValidSessionId)`
849
- : `${invalidSids.length} orphan session(s) under .peaks/_runtime/ fail isValidSessionId: ${invalidSids.slice(0, 5).join(', ')}${invalidSids.length > 5 ? '...' : ''}. Run \`peaks workspace clean --project <repo>\` to archive.`
850
- });
851
- }
852
- else {
853
- checks.push({
854
- id: 'L3:l3-orphan-sessions',
855
- ok: true,
856
- message: 'No .peaks/_runtime/ directory; nothing to check.'
857
- });
858
- }
859
- }
860
- catch (error) {
861
- checks.push({
862
- id: 'L3:l3-orphan-sessions',
863
- ok: true,
864
- message: `L3:l3-orphan-sessions probe failed (${getErrorMessage(error)}); skipping check`
865
- });
866
- }
867
- try {
868
- const memoryIndexPath = join(l3ProjectRoot, '.peaks/memory/index.json');
869
- if (existsSync(memoryIndexPath)) {
870
- const raw = readFileSync(memoryIndexPath, 'utf8');
871
- try {
872
- // Slice 2026-06-13-repair-pre-existing-test-failures: the
873
- // production MemoryIndex schema (see
874
- // src/services/memory/project-memory-service.ts) uses
875
- // `version: 1` as the schema marker, NOT `schema_version`.
876
- // Accept BOTH names for back-compat with any external index
877
- // writers (e.g. a future `schema_version: '2.0.0'` form).
878
- const parsed = JSON.parse(raw);
879
- const schemaMarker = parsed.schema_version ?? parsed.version;
880
- if (schemaMarker === undefined) {
881
- checks.push({
882
- id: 'L3:l3-memory-health',
883
- ok: false,
884
- message: '.peaks/memory/index.json missing schema_version / version field'
885
- });
886
- }
887
- else {
888
- const hotCount = Object.values(parsed.hot ?? {}).reduce((sum, arr) => sum + (Array.isArray(arr) ? arr.length : 0), 0);
889
- const warmCount = Object.values(parsed.warm ?? {}).reduce((sum, arr) => sum + (Array.isArray(arr) ? arr.length : 0), 0);
890
- checks.push({
891
- id: 'L3:l3-memory-health',
892
- ok: true,
893
- message: `.peaks/memory/index.json is well-formed JSON; version=${schemaMarker}; ${hotCount} hot + ${warmCount} warm memory entries`
894
- });
895
- }
896
- }
897
- catch (parseError) {
898
- checks.push({
899
- id: 'L3:l3-memory-health',
900
- ok: false,
901
- message: `.peaks/memory/index.json is not valid JSON: ${getErrorMessage(parseError)}`
902
- });
903
- }
904
- }
905
- else {
906
- checks.push({
907
- id: 'L3:l3-memory-health',
908
- ok: true,
909
- message: 'No .peaks/memory/index.json yet (no memories extracted)'
910
- });
911
- }
912
- }
913
- catch (error) {
914
- checks.push({
915
- id: 'L3:l3-memory-health',
916
- ok: true,
917
- message: `L3:l3-memory-health probe failed (${getErrorMessage(error)}); skipping check`
918
- });
919
- }
920
- const failed = checks.filter((check) => !check.ok).length;
921
- return {
922
- checks,
923
- summary: {
924
- ok: failed === 0,
925
- passed: checks.length - failed,
926
- failed
927
- }
928
- };
929
- }