peaks-loop 4.0.54 → 4.1.0

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 (1028) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README-en.md +16 -1
  3. package/README.md +15 -1
  4. package/config/eslint/.peaks-rules.cjs +158 -13
  5. package/config/eslint/tsconfig.lint.json +47 -0
  6. package/dist/cli/cli-envelope.d.ts +114 -0
  7. package/dist/cli/cli-envelope.js +85 -0
  8. package/dist/cli/cli-helpers.d.ts +1 -1
  9. package/dist/cli/cli-helpers.js +8 -4
  10. package/dist/cli/commands/_cli-error-envelope.js +1 -1
  11. package/dist/cli/commands/_register.js +85 -38
  12. package/dist/cli/commands/_super.js +40 -7
  13. package/dist/cli/commands/adapter-commands-s2a.js +8 -7
  14. package/dist/cli/commands/adapter-commands.d.ts +2 -2
  15. package/dist/cli/commands/adapter-commands.js +7 -8
  16. package/dist/cli/commands/api-diff-commands.js +5 -4
  17. package/dist/cli/commands/asset-commands.d.ts +2 -2
  18. package/dist/cli/commands/asset-commands.js +135 -132
  19. package/dist/cli/commands/audit-commands.d.ts +1 -1
  20. package/dist/cli/commands/audit-commands.js +75 -32
  21. package/dist/cli/commands/autonomous-swarm-commands.d.ts +1 -1
  22. package/dist/cli/commands/autonomous-swarm-commands.js +14 -8
  23. package/dist/cli/commands/baseline-commands.js +34 -9
  24. package/dist/cli/commands/bee-commands.d.ts +1 -1
  25. package/dist/cli/commands/bee-commands.js +18 -21
  26. package/dist/cli/commands/best-practice-scan-command.js +6 -34
  27. package/dist/cli/commands/best-practice-scan-helpers.d.ts +12 -0
  28. package/dist/cli/commands/best-practice-scan-helpers.js +37 -0
  29. package/dist/cli/commands/capability-commands.d.ts +1 -1
  30. package/dist/cli/commands/capability-commands.js +14 -4
  31. package/dist/cli/commands/capability-worker-config-sc-commands.d.ts +1 -1
  32. package/dist/cli/commands/changeset-commands.js +21 -18
  33. package/dist/cli/commands/code-gate-command.js +9 -2
  34. package/dist/cli/commands/code-job-shape-commands-read-job-shape.d.ts +15 -0
  35. package/dist/cli/commands/code-job-shape-commands-read-job-shape.js +70 -0
  36. package/dist/cli/commands/code-job-shape-commands.js +21 -45
  37. package/dist/cli/commands/code-mode-gate-commands.d.ts +15 -1
  38. package/dist/cli/commands/code-mode-gate-commands.js +19 -199
  39. package/dist/cli/commands/code-mode-gate-plan-command.d.ts +14 -0
  40. package/dist/cli/commands/code-mode-gate-plan-command.js +23 -0
  41. package/dist/cli/commands/code-mode-gate-should-pause-command.d.ts +24 -0
  42. package/dist/cli/commands/code-mode-gate-should-pause-command.js +137 -0
  43. package/dist/cli/commands/code-mode-gate-should-pause-envelope.d.ts +59 -0
  44. package/dist/cli/commands/code-mode-gate-should-pause-envelope.js +144 -0
  45. package/dist/cli/commands/code-orchestrator-can-do.js +4 -4
  46. package/dist/cli/commands/code-review-commands.js +18 -3
  47. package/dist/cli/commands/code-run-command.js +44 -7
  48. package/dist/cli/commands/code-runtime-commands.d.ts +17 -0
  49. package/dist/cli/commands/code-runtime-commands.js +105 -73
  50. package/dist/cli/commands/codegraph-commands.js +11 -6
  51. package/dist/cli/commands/codegraph-status-command.js +6 -2
  52. package/dist/cli/commands/compact-command.js +52 -26
  53. package/dist/cli/commands/complexity-commands.js +6 -7
  54. package/dist/cli/commands/config-commands.d.ts +1 -1
  55. package/dist/cli/commands/config-commands.js +33 -9
  56. package/dist/cli/commands/container-commands.js +39 -15
  57. package/dist/cli/commands/context-commands.d.ts +1 -1
  58. package/dist/cli/commands/context-commands.js +40 -13
  59. package/dist/cli/commands/core/artifacts-command.js +11 -3
  60. package/dist/cli/commands/core/binding-commands.js +9 -6
  61. package/dist/cli/commands/core/doctor-command.js +7 -4
  62. package/dist/cli/commands/core/memory-command.js +47 -21
  63. package/dist/cli/commands/core/proxy-command.js +3 -1
  64. package/dist/cli/commands/core/session-command.js +16 -8
  65. package/dist/cli/commands/core/skill-command.js +31 -16
  66. package/dist/cli/commands/core/standards-command.js +55 -13
  67. package/dist/cli/commands/cron-commands-actions.d.ts +43 -0
  68. package/dist/cli/commands/cron-commands-actions.js +128 -0
  69. package/dist/cli/commands/cron-commands-schedule.d.ts +86 -0
  70. package/dist/cli/commands/cron-commands-schedule.js +151 -0
  71. package/dist/cli/commands/cron-commands.d.ts +35 -32
  72. package/dist/cli/commands/cron-commands.js +167 -211
  73. package/dist/cli/commands/cron-scheduler-commands.js +40 -20
  74. package/dist/cli/commands/cron-scheduler-persist.d.ts +110 -0
  75. package/dist/cli/commands/cron-scheduler-persist.js +171 -0
  76. package/dist/cli/commands/dashboard-long-run.js +45 -14
  77. package/dist/cli/commands/dashboard-summary.js +15 -5
  78. package/dist/cli/commands/dispatch-commands.js +65 -32
  79. package/dist/cli/commands/dispatch-from-dag.js +9 -10
  80. package/dist/cli/commands/doc-commands.js +8 -9
  81. package/dist/cli/commands/doctor/invoke-from-code.js +1 -1
  82. package/dist/cli/commands/e2e-verify-env.d.ts +19 -0
  83. package/dist/cli/commands/e2e-verify-env.js +19 -0
  84. package/dist/cli/commands/e2e-verify.d.ts +3 -14
  85. package/dist/cli/commands/e2e-verify.js +49 -29
  86. package/dist/cli/commands/ecc-commands.d.ts +1 -1
  87. package/dist/cli/commands/ecc-commands.js +8 -17
  88. package/dist/cli/commands/evidence-commands.js +10 -6
  89. package/dist/cli/commands/evolution-commands.d.ts +2 -2
  90. package/dist/cli/commands/evolution-commands.js +109 -115
  91. package/dist/cli/commands/feedback-commands-helpers.d.ts +22 -0
  92. package/dist/cli/commands/feedback-commands-helpers.js +33 -0
  93. package/dist/cli/commands/feedback-commands.js +15 -38
  94. package/dist/cli/commands/final-review-commands.d.ts +1 -1
  95. package/dist/cli/commands/final-review-commands.js +24 -22
  96. package/dist/cli/commands/fixture-commands.d.ts +1 -1
  97. package/dist/cli/commands/fixture-commands.js +17 -6
  98. package/dist/cli/commands/fork-commands-sync-verify.d.ts +12 -0
  99. package/dist/cli/commands/fork-commands-sync-verify.js +72 -0
  100. package/dist/cli/commands/fork-commands.js +19 -51
  101. package/dist/cli/commands/fresh-context-commands.js +3 -1
  102. package/dist/cli/commands/gate-commands-enforce.d.ts +82 -0
  103. package/dist/cli/commands/gate-commands-enforce.js +210 -0
  104. package/dist/cli/commands/gate-commands.d.ts +1 -1
  105. package/dist/cli/commands/gate-commands.js +85 -205
  106. package/dist/cli/commands/governance-classify-contract-commands.d.ts +1 -1
  107. package/dist/cli/commands/governance-classify-contract-commands.js +28 -17
  108. package/dist/cli/commands/heartbeat-commands-action.d.ts +7 -0
  109. package/dist/cli/commands/heartbeat-commands-action.js +192 -0
  110. package/dist/cli/commands/heartbeat-commands-validation.d.ts +57 -0
  111. package/dist/cli/commands/heartbeat-commands-validation.js +120 -0
  112. package/dist/cli/commands/heartbeat-commands.d.ts +27 -6
  113. package/dist/cli/commands/heartbeat-commands.js +19 -198
  114. package/dist/cli/commands/hook-handle.d.ts +1 -1
  115. package/dist/cli/commands/hook-handle.js +46 -13
  116. package/dist/cli/commands/hooks-commands.d.ts +1 -1
  117. package/dist/cli/commands/hooks-commands.js +18 -6
  118. package/dist/cli/commands/ide-commands.d.ts +1 -1
  119. package/dist/cli/commands/ide-commands.js +5 -3
  120. package/dist/cli/commands/impact-commands.js +8 -2
  121. package/dist/cli/commands/job-add-slice-command.d.ts +43 -0
  122. package/dist/cli/commands/job-add-slice-command.js +151 -0
  123. package/dist/cli/commands/job-commands.d.ts +64 -0
  124. package/dist/cli/commands/job-commands.js +134 -63
  125. package/dist/cli/commands/lease-metrics-commands-support.d.ts +73 -0
  126. package/dist/cli/commands/lease-metrics-commands-support.js +67 -0
  127. package/dist/cli/commands/lease-metrics-commands.d.ts +3 -44
  128. package/dist/cli/commands/lease-metrics-commands.js +21 -61
  129. package/dist/cli/commands/lease-stats-commands.d.ts +1 -1
  130. package/dist/cli/commands/lease-stats-commands.js +9 -6
  131. package/dist/cli/commands/lint-commands.d.ts +9 -3
  132. package/dist/cli/commands/lint-commands.js +15 -8
  133. package/dist/cli/commands/log-commands.d.ts +1 -1
  134. package/dist/cli/commands/log-commands.js +8 -6
  135. package/dist/cli/commands/loop-commands.d.ts +1 -1
  136. package/dist/cli/commands/loop-commands.js +50 -50
  137. package/dist/cli/commands/loop-eval-commands.d.ts +1 -1
  138. package/dist/cli/commands/loop-eval-commands.js +101 -30
  139. package/dist/cli/commands/memory-commands.js +21 -13
  140. package/dist/cli/commands/migrate-1-4-1-command.js +1 -1
  141. package/dist/cli/commands/migrate-v2-10-to-v2-11-command.js +2 -2
  142. package/dist/cli/commands/mut-commands-helpers.d.ts +30 -0
  143. package/dist/cli/commands/mut-commands-helpers.js +43 -0
  144. package/dist/cli/commands/mut-commands.js +16 -58
  145. package/dist/cli/commands/observability-commands-queries.d.ts +37 -0
  146. package/dist/cli/commands/observability-commands-queries.js +113 -0
  147. package/dist/cli/commands/observability-commands.d.ts +1 -1
  148. package/dist/cli/commands/observability-commands.js +7 -92
  149. package/dist/cli/commands/openspec-commands.d.ts +1 -1
  150. package/dist/cli/commands/openspec-commands.js +20 -8
  151. package/dist/cli/commands/outer-cache-commands.js +18 -7
  152. package/dist/cli/commands/perf-audit-commands.d.ts +1 -1
  153. package/dist/cli/commands/perf-audit-commands.js +12 -7
  154. package/dist/cli/commands/perf-commands.d.ts +1 -1
  155. package/dist/cli/commands/perf-commands.js +5 -5
  156. package/dist/cli/commands/playwright-commands.d.ts +1 -1
  157. package/dist/cli/commands/playwright-commands.js +20 -8
  158. package/dist/cli/commands/polyrepo-commands.js +21 -19
  159. package/dist/cli/commands/prd-blocks-commands.js +1 -3
  160. package/dist/cli/commands/prd-commands.d.ts +1 -1
  161. package/dist/cli/commands/prd-commands.js +8 -4
  162. package/dist/cli/commands/preferences-commands.js +13 -12
  163. package/dist/cli/commands/primer-command.js +5 -5
  164. package/dist/cli/commands/project-commands.d.ts +1 -1
  165. package/dist/cli/commands/project-commands.js +33 -9
  166. package/dist/cli/commands/qa-business-review-commands.js +16 -12
  167. package/dist/cli/commands/qa-commands.d.ts +1 -1
  168. package/dist/cli/commands/qa-commands.js +3 -5
  169. package/dist/cli/commands/release-commands.d.ts +3 -1
  170. package/dist/cli/commands/release-commands.js +33 -22
  171. package/dist/cli/commands/request-commands.js +47 -30
  172. package/dist/cli/commands/request-format-helpers.js +1 -1
  173. package/dist/cli/commands/retrospective-commands.d.ts +18 -11
  174. package/dist/cli/commands/retrospective-commands.js +24 -173
  175. package/dist/cli/commands/retrospective-index-command.d.ts +26 -0
  176. package/dist/cli/commands/retrospective-index-command.js +99 -0
  177. package/dist/cli/commands/retrospective-project-root.d.ts +9 -0
  178. package/dist/cli/commands/retrospective-project-root.js +15 -0
  179. package/dist/cli/commands/retrospective-search-command.d.ts +27 -0
  180. package/dist/cli/commands/retrospective-search-command.js +97 -0
  181. package/dist/cli/commands/retrospective-show-command.d.ts +23 -0
  182. package/dist/cli/commands/retrospective-show-command.js +80 -0
  183. package/dist/cli/commands/reviewer-commands.d.ts +1 -1
  184. package/dist/cli/commands/role-commands.js +14 -9
  185. package/dist/cli/commands/runtime-commands.js +14 -7
  186. package/dist/cli/commands/sc-commands.d.ts +1 -1
  187. package/dist/cli/commands/sc-commands.js +39 -6
  188. package/dist/cli/commands/scan-commands.js +36 -13
  189. package/dist/cli/commands/security-audit-commands.d.ts +1 -1
  190. package/dist/cli/commands/security-audit-commands.js +12 -7
  191. package/dist/cli/commands/sediment-commands.d.ts +2 -2
  192. package/dist/cli/commands/sediment-commands.js +146 -139
  193. package/dist/cli/commands/session-24h-mode.js +15 -2
  194. package/dist/cli/commands/session-checkpoint-command.js +1 -1
  195. package/dist/cli/commands/session-migrate-skill-name.js +1 -1
  196. package/dist/cli/commands/shadcn-commands.d.ts +1 -1
  197. package/dist/cli/commands/shadcn-commands.js +3 -1
  198. package/dist/cli/commands/share-commands.js +38 -39
  199. package/dist/cli/commands/skill-conformance-commands.d.ts +1 -1
  200. package/dist/cli/commands/skill-conformance-commands.js +1 -1
  201. package/dist/cli/commands/skill-loop-engineering-readiness-commands.js +16 -17
  202. package/dist/cli/commands/skill-visibility.js +2 -2
  203. package/dist/cli/commands/slice-commands.d.ts +1 -1
  204. package/dist/cli/commands/slice-commands.js +36 -12
  205. package/dist/cli/commands/slice-integrate-commands.js +6 -7
  206. package/dist/cli/commands/slice-review-commands-helpers.d.ts +26 -0
  207. package/dist/cli/commands/slice-review-commands-helpers.js +26 -0
  208. package/dist/cli/commands/slice-review-commands.js +16 -24
  209. package/dist/cli/commands/smoke-commands-add-path.d.ts +14 -0
  210. package/dist/cli/commands/smoke-commands-add-path.js +39 -0
  211. package/dist/cli/commands/smoke-commands-define.d.ts +18 -0
  212. package/dist/cli/commands/smoke-commands-define.js +97 -0
  213. package/dist/cli/commands/smoke-commands-run.d.ts +18 -0
  214. package/dist/cli/commands/smoke-commands-run.js +119 -0
  215. package/dist/cli/commands/smoke-commands.d.ts +10 -1
  216. package/dist/cli/commands/smoke-commands.js +17 -179
  217. package/dist/cli/commands/sop-commands.d.ts +1 -1
  218. package/dist/cli/commands/sop-commands.js +38 -10
  219. package/dist/cli/commands/statusline-commands.d.ts +1 -1
  220. package/dist/cli/commands/statusline-commands.js +21 -10
  221. package/dist/cli/commands/sub-agent/detached.js +3 -3
  222. package/dist/cli/commands/sub-agent-dispatch-guard.d.ts +1 -1
  223. package/dist/cli/commands/sub-agent-shared.js +1 -1
  224. package/dist/cli/commands/sub-agent-shutdown-commands.js +17 -9
  225. package/dist/cli/commands/swarm-commands.d.ts +1 -1
  226. package/dist/cli/commands/swarm-commands.js +13 -6
  227. package/dist/cli/commands/tech-commands-helpers.d.ts +37 -0
  228. package/dist/cli/commands/tech-commands-helpers.js +24 -0
  229. package/dist/cli/commands/tech-commands.d.ts +2 -29
  230. package/dist/cli/commands/tech-commands.js +15 -28
  231. package/dist/cli/commands/test-commands.js +27 -7
  232. package/dist/cli/commands/upgrade-commands.d.ts +1 -1
  233. package/dist/cli/commands/user-touchpoint-commands.js +1 -3
  234. package/dist/cli/commands/verdict-aggregate-command.d.ts +1 -1
  235. package/dist/cli/commands/verdict-aggregate-command.js +20 -7
  236. package/dist/cli/commands/vm-commands.js +48 -19
  237. package/dist/cli/commands/wave-plan-commands.js +5 -2
  238. package/dist/cli/commands/web-commands.js +14 -4
  239. package/dist/cli/commands/web-lifecycle-commands.js +5 -3
  240. package/dist/cli/commands/workflow-commands.d.ts +1 -1
  241. package/dist/cli/commands/workflow-commands.js +64 -29
  242. package/dist/cli/commands/workflow-lifecycle-commands.js +19 -17
  243. package/dist/cli/commands/workflow-plan-commands-actions.d.ts +20 -0
  244. package/dist/cli/commands/workflow-plan-commands-actions.js +115 -0
  245. package/dist/cli/commands/workflow-plan-commands-session.d.ts +17 -0
  246. package/dist/cli/commands/workflow-plan-commands-session.js +59 -0
  247. package/dist/cli/commands/workflow-plan-commands.d.ts +10 -21
  248. package/dist/cli/commands/workflow-plan-commands.js +15 -141
  249. package/dist/cli/commands/workspace/clean-command.js +4 -1
  250. package/dist/cli/commands/workspace/helpers.js +2 -1
  251. package/dist/cli/commands/workspace/init-command.js +80 -20
  252. package/dist/cli/commands/workspace/reconcile-command.js +3 -1
  253. package/dist/cli/commands/workspace-commands.d.ts +1 -1
  254. package/dist/cli/commands/workspace-commands.js +1 -1
  255. package/dist/cli/commands/worktree-auth-commands.d.ts +1 -1
  256. package/dist/cli/commands/worktree-auth-commands.js +16 -169
  257. package/dist/cli/commands/worktree-auth-grant-command.d.ts +14 -0
  258. package/dist/cli/commands/worktree-auth-grant-command.js +118 -0
  259. package/dist/cli/commands/worktree-auth-manage-commands.d.ts +17 -0
  260. package/dist/cli/commands/worktree-auth-manage-commands.js +128 -0
  261. package/dist/cli/commands/worktree-lease-commands.d.ts +1 -1
  262. package/dist/cli/commands/worktree-lease-commands.js +65 -37
  263. package/dist/cli/index.js +6 -2
  264. package/dist/cli/program.js +6 -3
  265. package/dist/hooks/pre-tool-use-sub-agent.js +1 -6
  266. package/dist/reporters/bdd-reporter.js +9 -3
  267. package/dist/services/24h-mode/auto-engage.d.ts +19 -0
  268. package/dist/services/24h-mode/auto-engage.js +35 -0
  269. package/dist/services/24h-mode/decider.js +5 -1
  270. package/dist/services/24h-mode/store.js +4 -2
  271. package/dist/services/adapter/adapter-registry.js +20 -8
  272. package/dist/services/adapter/adapter.d.ts +2 -2
  273. package/dist/services/adapter/auto-adapter.d.ts +2 -2
  274. package/dist/services/adapter/auto-adapter.js +1 -1
  275. package/dist/services/adapter/claude-adapter.d.ts +1 -1
  276. package/dist/services/adapter/claude-adapter.js +8 -8
  277. package/dist/services/adapter/codex-adapter.d.ts +2 -2
  278. package/dist/services/adapter/codex-adapter.js +20 -8
  279. package/dist/services/adapter/copilot-adapter.d.ts +2 -2
  280. package/dist/services/adapter/copilot-adapter.js +20 -8
  281. package/dist/services/artifacts/artifact-prerequisites.js +10 -8
  282. package/dist/services/artifacts/artifact-service.js +3 -1
  283. package/dist/services/artifacts/artifact-template-bodies.d.ts +12 -0
  284. package/dist/services/artifacts/artifact-template-bodies.js +165 -0
  285. package/dist/services/artifacts/artifact-templates.js +26 -168
  286. package/dist/services/artifacts/request-artifact-service.js +14 -7
  287. package/dist/services/artifacts/request-artifact-state-helpers.d.ts +3 -2
  288. package/dist/services/artifacts/request-artifact-state-helpers.js +3 -5
  289. package/dist/services/artifacts/workspace-artifact-helpers.d.ts +28 -0
  290. package/dist/services/artifacts/workspace-artifact-helpers.js +54 -0
  291. package/dist/services/artifacts/workspace-service.d.ts +3 -22
  292. package/dist/services/artifacts/workspace-service.js +10 -60
  293. package/dist/services/audit/artifact-writer.js +21 -21
  294. package/dist/services/audit/audit-goal-service.js +2 -2
  295. package/dist/services/audit/backing-detector.js +7 -4
  296. package/dist/services/audit/classifier.js +3 -3
  297. package/dist/services/audit/decision-writer.js +13 -9
  298. package/dist/services/audit/enforcers/active-skill-resolver.js +15 -7
  299. package/dist/services/audit/enforcers/design-draft-confirm.js +4 -4
  300. package/dist/services/audit/enforcers/lint-audit-regression.js +10 -5
  301. package/dist/services/audit/enforcers/lint-bee-runtime-contract.js +16 -8
  302. package/dist/services/audit/enforcers/lint-catalog-governance.js +8 -4
  303. package/dist/services/audit/enforcers/lint-output-style.js +4 -2
  304. package/dist/services/audit/enforcers/lint-peaks-code-runtime.js +8 -3
  305. package/dist/services/audit/enforcers/lint-peaks-skill-runtime.js +8 -3
  306. package/dist/services/audit/enforcers/lint-peaks-ui-sc-txt-runtime.js +20 -20
  307. package/dist/services/audit/enforcers/lint-prd-artifact-handoff.js +5 -5
  308. package/dist/services/audit/enforcers/lint-prd-source-snapshot.d.ts +1 -1
  309. package/dist/services/audit/enforcers/lint-prd-source-snapshot.js +5 -5
  310. package/dist/services/audit/enforcers/lint-qa-gateguard-and-runtime.js +10 -10
  311. package/dist/services/audit/enforcers/lint-rd-handoff-coverage.js +10 -8
  312. package/dist/services/audit/enforcers/lint-reference-shape.js +50 -18
  313. package/dist/services/audit/enforcers/lint-skill-presence-mandatory.js +5 -5
  314. package/dist/services/audit/enforcers/lint-style.js +44 -11
  315. package/dist/services/audit/enforcers/lint-workflow-shape.js +4 -2
  316. package/dist/services/audit/enforcers/login-gate.js +2 -6
  317. package/dist/services/audit/enforcers/mock-placement.js +2 -2
  318. package/dist/services/audit/enforcers/no-root-pollution.js +38 -9
  319. package/dist/services/audit/enforcers/pre-rd-scan.js +1 -1
  320. package/dist/services/audit/enforcers/prototype-fidelity.js +1 -1
  321. package/dist/services/audit/enforcers/resume-detection.js +5 -4
  322. package/dist/services/audit/prose-ratio-calculator.js +1 -1
  323. package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.d.ts +39 -0
  324. package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.js +205 -0
  325. package/dist/services/audit/red-line-catalog-p2-a-lint-style.d.ts +52 -0
  326. package/dist/services/audit/red-line-catalog-p2-a-lint-style.js +205 -0
  327. package/dist/services/audit/red-line-catalog-p2-a.js +3 -374
  328. package/dist/services/audit/red-line-catalog-p2-b.js +26 -26
  329. package/dist/services/audit/red-line-catalog.js +26 -38
  330. package/dist/services/audit/red-lines-service.js +64 -49
  331. package/dist/services/audit/scanners/openspec-scanner.js +2 -2
  332. package/dist/services/audit/scanners/rules-tree-scanner.js +2 -2
  333. package/dist/services/audit/scanners/skills-tree-scanner.js +2 -2
  334. package/dist/services/audit/static-service.js +3 -3
  335. package/dist/services/audit-independent/index.d.ts +2 -2
  336. package/dist/services/audit-independent/index.js +2 -2
  337. package/dist/services/audit-independent/perf-audit-service.js +19 -8
  338. package/dist/services/audit-independent/security-audit-service.js +31 -16
  339. package/dist/services/autonomous-swarm/autonomous-swarm-service.js +75 -46
  340. package/dist/services/best-practice/output-formatter.js +7 -1
  341. package/dist/services/capability-audit-service/cross-check.js +11 -5
  342. package/dist/services/capability-audit-service/runner.js +15 -7
  343. package/dist/services/capability-baseline/store.js +16 -4
  344. package/dist/services/capability-baseline/types.js +15 -3
  345. package/dist/services/capability-baseline/validator.js +43 -7
  346. package/dist/services/capability-guard-runner/contracts/J02.js +36 -6
  347. package/dist/services/capability-guard-runner/contracts/J03.js +20 -11
  348. package/dist/services/capability-guard-runner/contracts/J04.js +24 -15
  349. package/dist/services/capability-guard-runner/contracts/J05.js +26 -10
  350. package/dist/services/capability-guard-runner/contracts/J07.js +8 -2
  351. package/dist/services/capability-guard-runner/contracts/J08.js +22 -5
  352. package/dist/services/capability-guard-runner/contracts/J10.js +6 -2
  353. package/dist/services/capability-guard-runner/contracts/J11.d.ts +5 -0
  354. package/dist/services/capability-guard-runner/contracts/J11.js +14 -2
  355. package/dist/services/capability-guard-runner/contracts/J12.js +12 -3
  356. package/dist/services/capability-guard-runner/diff.js +1 -5
  357. package/dist/services/changeset/changeset-check-service.js +1 -3
  358. package/dist/services/classify/classify-service.js +20 -8
  359. package/dist/services/classify/classify-types.js +22 -9
  360. package/dist/services/code/auto-compact-lifecycle.js +62 -39
  361. package/dist/services/code/auto-compact-modes.js +2 -2
  362. package/dist/services/code/auto-compact-orchestrator.js +14 -9
  363. package/dist/services/code/batch-heartbeat-poller.d.ts +10 -0
  364. package/dist/services/code/batch-heartbeat-poller.js +17 -1
  365. package/dist/services/code/compact-event-settle-types.d.ts +80 -0
  366. package/dist/services/code/compact-event-settle-types.js +20 -0
  367. package/dist/services/code/compact-event-settle.d.ts +3 -68
  368. package/dist/services/code/compact-event-settle.js +14 -10
  369. package/dist/services/code/dag-orchestrator.js +32 -26
  370. package/dist/services/code/job-shape-decision.js +3 -1
  371. package/dist/services/code/mode-gate-types.d.ts +57 -0
  372. package/dist/services/code/mode-gate-types.js +67 -0
  373. package/dist/services/code/mode-gate.d.ts +4 -58
  374. package/dist/services/code/mode-gate.js +24 -60
  375. package/dist/services/code/orchestrator-can-do-advisories.d.ts +30 -0
  376. package/dist/services/code/orchestrator-can-do-advisories.js +81 -0
  377. package/dist/services/code/orchestrator-can-do-probes.d.ts +30 -0
  378. package/dist/services/code/orchestrator-can-do-probes.js +77 -0
  379. package/dist/services/code/orchestrator-can-do.d.ts +11 -22
  380. package/dist/services/code/orchestrator-can-do.js +37 -137
  381. package/dist/services/code/post-compact-checkpoint.d.ts +28 -0
  382. package/dist/services/code/post-compact-checkpoint.js +57 -0
  383. package/dist/services/code/post-compact-detector.js +16 -48
  384. package/dist/services/code/step-08-gate.d.ts +4 -3
  385. package/dist/services/code/step-08-gate.js +21 -9
  386. package/dist/services/code-review/ecc-bridge.js +23 -23
  387. package/dist/services/codegraph/codegraph-autorefresh.js +56 -39
  388. package/dist/services/codegraph/codegraph-config-repair-writer.js +4 -1
  389. package/dist/services/codegraph/codegraph-exclude-integrity.js +4 -1
  390. package/dist/services/codegraph/codegraph-exclude-repair.js +1 -2
  391. package/dist/services/codegraph/codegraph-index-integrity.js +1 -1
  392. package/dist/services/codegraph/codegraph-preflight-service.d.ts +3 -26
  393. package/dist/services/codegraph/codegraph-preflight-service.js +16 -37
  394. package/dist/services/codegraph/codegraph-preflight-structure.d.ts +32 -0
  395. package/dist/services/codegraph/codegraph-preflight-structure.js +33 -0
  396. package/dist/services/codegraph/codegraph-process-runner.js +12 -1
  397. package/dist/services/codegraph/codegraph-service.js +9 -1
  398. package/dist/services/compact/request-transition-hook.js +2 -1
  399. package/dist/services/compact/suggest-service.d.ts +3 -61
  400. package/dist/services/compact/suggest-service.js +9 -12
  401. package/dist/services/compact/suggest-types.d.ts +76 -0
  402. package/dist/services/compact/suggest-types.js +10 -0
  403. package/dist/services/compact-history/compact-history-service.js +2 -2
  404. package/dist/services/compact-statusline/compact-lifecycle-store.d.ts +2 -32
  405. package/dist/services/compact-statusline/compact-lifecycle-store.js +7 -12
  406. package/dist/services/compact-statusline/compact-lifecycle-types.d.ts +32 -0
  407. package/dist/services/compact-statusline/compact-lifecycle-types.js +8 -0
  408. package/dist/services/compact-statusline/compact-statusline-cell-table.d.ts +42 -0
  409. package/dist/services/compact-statusline/compact-statusline-cell-table.js +63 -0
  410. package/dist/services/compact-statusline/compact-statusline-service.d.ts +4 -21
  411. package/dist/services/compact-statusline/compact-statusline-service.js +9 -101
  412. package/dist/services/compact-statusline/compact-statusline-state.d.ts +4 -0
  413. package/dist/services/compact-statusline/compact-statusline-state.js +50 -0
  414. package/dist/services/config/config-migration.js +2 -2
  415. package/dist/services/config/config-restore.js +1 -1
  416. package/dist/services/config/config-rollback.js +1 -1
  417. package/dist/services/config/config-safety.js +28 -10
  418. package/dist/services/config/config-service.js +114 -31
  419. package/dist/services/config/model-routing.js +5 -2
  420. package/dist/services/config/proxy-service.js +6 -1
  421. package/dist/services/config/workspace-state-service.js +17 -5
  422. package/dist/services/context/auto-compact-dispatcher-input.d.ts +38 -0
  423. package/dist/services/context/auto-compact-dispatcher-input.js +9 -0
  424. package/dist/services/context/auto-compact-dispatcher.d.ts +2 -30
  425. package/dist/services/context/auto-compact-reader-input.d.ts +30 -0
  426. package/dist/services/context/auto-compact-reader-input.js +8 -0
  427. package/dist/services/context/auto-compact-reader.d.ts +2 -24
  428. package/dist/services/context/auto-compact-reader.js +4 -1
  429. package/dist/services/context/auto-compact-thresholds.d.ts +54 -0
  430. package/dist/services/context/auto-compact-thresholds.js +19 -0
  431. package/dist/services/context/auto-compact-types.d.ts +2 -46
  432. package/dist/services/context/auto-compact-types.js +1 -11
  433. package/dist/services/context/build-dispatch-system-prompt.js +2 -2
  434. package/dist/services/context/collector.js +8 -10
  435. package/dist/services/context/context-audit-hint.js +7 -5
  436. package/dist/services/context/context-audit-keys.d.ts +15 -0
  437. package/dist/services/context/context-audit-keys.js +77 -0
  438. package/dist/services/context/context-audit-limits.d.ts +20 -0
  439. package/dist/services/context/context-audit-limits.js +31 -0
  440. package/dist/services/context/context-audit-scan.d.ts +19 -0
  441. package/dist/services/context/context-audit-scan.js +246 -0
  442. package/dist/services/context/context-audit-types.d.ts +65 -0
  443. package/dist/services/context/context-audit-types.js +10 -0
  444. package/dist/services/context/context-audit.d.ts +13 -59
  445. package/dist/services/context/context-audit.js +38 -254
  446. package/dist/services/context/context-builder.js +4 -4
  447. package/dist/services/context/context-schema.d.ts +1 -1
  448. package/dist/services/context/context-schema.js +13 -13
  449. package/dist/services/context/doc-retriever.js +2 -2
  450. package/dist/services/context/harness-context-witness.js +43 -24
  451. package/dist/services/context/harness-window-config.js +27 -7
  452. package/dist/services/context/ide-detect.js +2 -1
  453. package/dist/services/context/index.d.ts +1 -1
  454. package/dist/services/context/memory-index-reader.js +3 -9
  455. package/dist/services/context/memory-preflight-config.js +3 -5
  456. package/dist/services/context/memory-preflight-service.d.ts +2 -20
  457. package/dist/services/context/memory-preflight-service.js +37 -68
  458. package/dist/services/context/memory-preflight-support.d.ts +48 -0
  459. package/dist/services/context/memory-preflight-support.js +56 -0
  460. package/dist/services/context/post-compact-reinjection.js +3 -3
  461. package/dist/services/context/renderer.js +7 -3
  462. package/dist/services/context/spillover-store.js +3 -1
  463. package/dist/services/context/summary-view.js +1 -1
  464. package/dist/services/context/threshold.js +2 -2
  465. package/dist/services/context/tokenizer.js +3 -3
  466. package/dist/services/crystallization/crystallization-brief-schema.d.ts +80 -0
  467. package/dist/services/crystallization/crystallization-brief-schema.js +159 -0
  468. package/dist/services/crystallization/crystallization-service.d.ts +7 -7
  469. package/dist/services/crystallization/crystallization-service.js +56 -55
  470. package/dist/services/crystallization/crystallization-store.d.ts +2 -2
  471. package/dist/services/crystallization/crystallization-store.js +37 -20
  472. package/dist/services/crystallization/crystallization-types.d.ts +4 -56
  473. package/dist/services/crystallization/crystallization-types.js +31 -184
  474. package/dist/services/crystallization/evidence-brief-builder.d.ts +3 -3
  475. package/dist/services/crystallization/evidence-brief-builder.js +32 -38
  476. package/dist/services/crystallization/index.d.ts +4 -4
  477. package/dist/services/crystallization/index.js +4 -4
  478. package/dist/services/dashboard/project-dashboard-service.js +7 -1
  479. package/dist/services/dispatch/await-batch-helpers.d.ts +55 -0
  480. package/dist/services/dispatch/await-batch-helpers.js +206 -0
  481. package/dist/services/dispatch/await-batch.d.ts +50 -7
  482. package/dist/services/dispatch/await-batch.js +97 -194
  483. package/dist/services/dispatch/batch-counter.js +2 -1
  484. package/dist/services/dispatch/conflict-replay.js +2 -2
  485. package/dist/services/dispatch/contract-store.js +5 -2
  486. package/dist/services/dispatch/dispatch-record-input-types.d.ts +81 -0
  487. package/dist/services/dispatch/dispatch-record-input-types.js +1 -0
  488. package/dist/services/dispatch/dispatch-record-types.d.ts +6 -73
  489. package/dist/services/dispatch/dispatch-record-upgrade-fields.d.ts +72 -0
  490. package/dist/services/dispatch/dispatch-record-upgrade-fields.js +242 -0
  491. package/dist/services/dispatch/dispatch-record-upgrade-guards.d.ts +15 -0
  492. package/dist/services/dispatch/dispatch-record-upgrade-guards.js +55 -0
  493. package/dist/services/dispatch/dispatch-record-upgrade.d.ts +2 -4
  494. package/dist/services/dispatch/dispatch-record-upgrade.js +21 -213
  495. package/dist/services/dispatch/dispatch-record-writer.js +54 -26
  496. package/dist/services/dispatch/dispatch-sub-agent.js +7 -2
  497. package/dist/services/dispatch/e2e-fixtures.js +1 -1
  498. package/dist/services/dispatch/isolation-lease.js +39 -17
  499. package/dist/services/dispatch/merge-back-runner.js +51 -11
  500. package/dist/services/dispatch/service-shutdown.js +4 -1
  501. package/dist/services/dispatch/slice-dag-types.d.ts +116 -0
  502. package/dist/services/dispatch/slice-dag-types.js +41 -0
  503. package/dist/services/dispatch/slice-dag.d.ts +3 -109
  504. package/dist/services/dispatch/slice-dag.js +13 -36
  505. package/dist/services/dispatch/sub-agent-batch-await.d.ts +47 -0
  506. package/dist/services/dispatch/sub-agent-batch-await.js +73 -0
  507. package/dist/services/dispatch/sub-agent-dispatcher-types.d.ts +122 -0
  508. package/dist/services/dispatch/sub-agent-dispatcher-types.js +12 -0
  509. package/dist/services/dispatch/sub-agent-dispatcher.d.ts +3 -145
  510. package/dist/services/dispatch/sub-agent-dispatcher.js +14 -70
  511. package/dist/services/dispatch/test-tool-detection.js +12 -1
  512. package/dist/services/doc/doc-generator.js +19 -4
  513. package/dist/services/doctor/doctor-service/checks/check-id-schema.js +16 -8
  514. package/dist/services/doctor/doctor-service/checks/codegraph-capability.d.ts +7 -2
  515. package/dist/services/doctor/doctor-service/checks/codegraph-capability.js +26 -8
  516. package/dist/services/doctor/doctor-service/checks/codegraph-exclude-integrity.js +16 -8
  517. package/dist/services/doctor/doctor-service/checks/codegraph-index-integrity.js +16 -8
  518. package/dist/services/doctor/doctor-service/checks/dist-source-version.js +18 -9
  519. package/dist/services/doctor/doctor-service/checks/ecc-hooks-schema-drift.js +20 -10
  520. package/dist/services/doctor/doctor-service/checks/gateguard-conflict.js +18 -9
  521. package/dist/services/doctor/doctor-service/checks/l3-memory-health.js +25 -11
  522. package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.js +12 -6
  523. package/dist/services/doctor/doctor-service/checks/multi-binary-drift.d.ts +7 -16
  524. package/dist/services/doctor/doctor-service/checks/multi-binary-drift.js +50 -70
  525. package/dist/services/doctor/doctor-service/checks/schema-validity.js +5 -1
  526. package/dist/services/doctor/doctor-service/checks/skill-presence.js +4 -2
  527. package/dist/services/doctor/doctor-service/checks/statusline-install.js +8 -4
  528. package/dist/services/doctor/doctor-service/checks/statusline-runtime.js +8 -4
  529. package/dist/services/doctor/doctor-service/checks/user-config.js +4 -2
  530. package/dist/services/doctor/doctor-service/checks/workspace-init.js +8 -4
  531. package/dist/services/doctor/doctor-service/checks/workspace-layout.js +19 -11
  532. package/dist/services/doctor/doctor-service/index.js +4 -2
  533. package/dist/services/doctor/doctor-service/multi-binary-drift-helpers.d.ts +40 -0
  534. package/dist/services/doctor/doctor-service/multi-binary-drift-helpers.js +49 -0
  535. package/dist/services/doctor/doctor-service/plugin-registry.js +1 -1
  536. package/dist/services/doctor/doctor-service/probe-types.d.ts +210 -0
  537. package/dist/services/doctor/doctor-service/probe-types.js +14 -0
  538. package/dist/services/doctor/doctor-service/types.d.ts +7 -197
  539. package/dist/services/doctor/index.d.ts +1 -1
  540. package/dist/services/doctor/index.js +1 -1
  541. package/dist/services/env/shell-probe.js +8 -2
  542. package/dist/services/evidence/evidence-body-builders.d.ts +23 -0
  543. package/dist/services/evidence/evidence-body-builders.js +197 -0
  544. package/dist/services/evidence/evidence-generator.js +6 -187
  545. package/dist/services/evolution/evolution-constraints.d.ts +43 -0
  546. package/dist/services/evolution/evolution-constraints.js +54 -0
  547. package/dist/services/evolution/evolution-evaluation-schema.d.ts +43 -0
  548. package/dist/services/evolution/evolution-evaluation-schema.js +43 -0
  549. package/dist/services/evolution/evolution-service.d.ts +6 -6
  550. package/dist/services/evolution/evolution-service.js +58 -58
  551. package/dist/services/evolution/evolution-store.d.ts +2 -2
  552. package/dist/services/evolution/evolution-store.js +37 -51
  553. package/dist/services/evolution/evolution-types.d.ts +2 -22
  554. package/dist/services/evolution/evolution-types.js +41 -101
  555. package/dist/services/evolution/independent-evaluator-runner.d.ts +3 -3
  556. package/dist/services/evolution/independent-evaluator-runner.js +20 -22
  557. package/dist/services/evolution/regression-skeptic-runner.d.ts +2 -2
  558. package/dist/services/evolution/regression-skeptic-runner.js +18 -18
  559. package/dist/services/feedback/feedback-promotion-service.js +48 -12
  560. package/dist/services/feedback/promotion-artifact-evidence.d.ts +2 -16
  561. package/dist/services/feedback/promotion-artifact-evidence.js +6 -83
  562. package/dist/services/feedback/promotion-artifact-json-evidence.d.ts +29 -0
  563. package/dist/services/feedback/promotion-artifact-json-evidence.js +39 -0
  564. package/dist/services/feedback/promotion-source-comments.d.ts +47 -0
  565. package/dist/services/feedback/promotion-source-comments.js +61 -0
  566. package/dist/services/final-review/final-review-contract.d.ts +26 -0
  567. package/dist/services/final-review/final-review-contract.js +14 -0
  568. package/dist/services/final-review/final-review-delivery.d.ts +63 -0
  569. package/dist/services/final-review/final-review-delivery.js +124 -0
  570. package/dist/services/final-review/final-review-evidence-budget.d.ts +125 -0
  571. package/dist/services/final-review/final-review-evidence-budget.js +218 -0
  572. package/dist/services/final-review/final-review-evidence-collect.d.ts +4 -0
  573. package/dist/services/final-review/final-review-evidence-collect.js +230 -0
  574. package/dist/services/final-review/final-review-evidence-sources.d.ts +138 -0
  575. package/dist/services/final-review/final-review-evidence-sources.js +139 -0
  576. package/dist/services/final-review/final-review-fifth-dim.d.ts +8 -0
  577. package/dist/services/final-review/final-review-fifth-dim.js +20 -0
  578. package/dist/services/final-review/final-review-gates.d.ts +119 -0
  579. package/dist/services/final-review/final-review-gates.js +214 -0
  580. package/dist/services/final-review/final-review-output-budget.d.ts +88 -0
  581. package/dist/services/final-review/final-review-output-budget.js +161 -0
  582. package/dist/services/final-review/final-review-prompt.d.ts +35 -0
  583. package/dist/services/final-review/final-review-prompt.js +112 -0
  584. package/dist/services/final-review/final-review-reviewer.d.ts +57 -0
  585. package/dist/services/final-review/final-review-reviewer.js +95 -0
  586. package/dist/services/final-review/final-review-runner.d.ts +3 -0
  587. package/dist/services/final-review/final-review-runner.js +158 -0
  588. package/dist/services/final-review/final-review-service.d.ts +119 -373
  589. package/dist/services/final-review/final-review-service.js +48 -1380
  590. package/dist/services/final-review/final-review-verdicts.d.ts +60 -0
  591. package/dist/services/final-review/final-review-verdicts.js +91 -0
  592. package/dist/services/final-review/index.d.ts +3 -3
  593. package/dist/services/final-review/index.js +2 -2
  594. package/dist/services/final-review/pre-post-diff.js +32 -29
  595. package/dist/services/fixture/fixture-capture-service.js +14 -6
  596. package/dist/services/fresh-context/trigger-scan.js +13 -2
  597. package/dist/services/fuzzy-matching/fuzzy-match-service.js +1 -1
  598. package/dist/services/fuzzy-matching/fzf-pick-service.js +6 -1
  599. package/dist/services/hooks/pre-tool-code-gate.js +2 -2
  600. package/dist/services/hooks/presence-marker-detector.js +12 -2
  601. package/dist/services/hooks/worktree-authorization-gate.js +21 -7
  602. package/dist/services/ide/adapters/claude-code-adapter.js +30 -17
  603. package/dist/services/ide/adapters/codex-adapter.js +3 -5
  604. package/dist/services/ide/adapters/cursor-adapter.js +3 -5
  605. package/dist/services/ide/adapters/hermes-adapter.js +2 -4
  606. package/dist/services/ide/adapters/openclaw-adapter.js +2 -4
  607. package/dist/services/ide/adapters/qoder-adapter.js +2 -4
  608. package/dist/services/ide/adapters/tongyi-lingma-adapter.js +1 -1
  609. package/dist/services/ide/adapters/trae-adapter.js +3 -5
  610. package/dist/services/ide/adapters/zcode-adapter.js +8 -7
  611. package/dist/services/ide/current-model-detector.js +2 -1
  612. package/dist/services/ide/ide-compact-types.d.ts +153 -0
  613. package/dist/services/ide/ide-compact-types.js +1 -0
  614. package/dist/services/ide/ide-registry.js +1 -1
  615. package/dist/services/ide/ide-types.d.ts +7 -145
  616. package/dist/services/ide/resource-profile.js +1 -1
  617. package/dist/services/ide/shared/atomic-json.js +2 -1
  618. package/dist/services/impact/impact-scan-service.js +12 -5
  619. package/dist/services/job/job-commit-verification.d.ts +73 -0
  620. package/dist/services/job/job-commit-verification.js +72 -0
  621. package/dist/services/job/job-orchestrator.d.ts +42 -0
  622. package/dist/services/job/job-orchestrator.js +110 -10
  623. package/dist/services/job/job-progress-store.d.ts +75 -5
  624. package/dist/services/job/job-progress-store.js +83 -6
  625. package/dist/services/job/job-rotation.d.ts +1 -1
  626. package/dist/services/job/job-rotation.js +5 -1
  627. package/dist/services/job/job-state-store.js +2 -2
  628. package/dist/services/job/job-types.js +49 -20
  629. package/dist/services/job/subagent-job-wrapper.d.ts +1 -1
  630. package/dist/services/job/subagent-job-wrapper.js +5 -1
  631. package/dist/services/job-snapshot/snapshot.js +2 -2
  632. package/dist/services/karpathy-cost/karpathy-cost-check-service.js +23 -13
  633. package/dist/services/legacy/legacy-detector.js +51 -5
  634. package/dist/services/lint/detect-eslint.js +10 -4
  635. package/dist/services/lint/detect-ocr-18.js +11 -3
  636. package/dist/services/lint/eslint-runner-support.d.ts +22 -0
  637. package/dist/services/lint/eslint-runner-support.js +185 -0
  638. package/dist/services/lint/eslint-runner-types.d.ts +69 -0
  639. package/dist/services/lint/eslint-runner-types.js +11 -0
  640. package/dist/services/lint/eslint-runner.d.ts +4 -56
  641. package/dist/services/lint/eslint-runner.js +24 -178
  642. package/dist/services/lint/npx-resolver.js +1 -3
  643. package/dist/services/lint/ocr-18-acquire.js +15 -4
  644. package/dist/services/lint/ocr-multilang-adapter.js +4 -5
  645. package/dist/services/llm/anthropic-runner.js +4 -1
  646. package/dist/services/log/log-commands-service.js +2 -6
  647. package/dist/services/log/logger.js +15 -12
  648. package/dist/services/log/retention.js +3 -2
  649. package/dist/services/loop/evaluator-dispatcher.js +78 -42
  650. package/dist/services/loop/loop-bee-relation-service.d.ts +4 -4
  651. package/dist/services/loop/loop-bee-relation-service.js +36 -40
  652. package/dist/services/loop/loop-bee-relation-store.d.ts +3 -3
  653. package/dist/services/loop/loop-bee-relation-store.js +9 -11
  654. package/dist/services/loop/loop-bee-relation-types.d.ts +1 -1
  655. package/dist/services/loop/loop-bee-relation-types.js +14 -25
  656. package/dist/services/loop/loop-release-service.d.ts +2 -2
  657. package/dist/services/loop/loop-release-service.js +3 -3
  658. package/dist/services/loop/loop-release-store.d.ts +2 -2
  659. package/dist/services/loop/loop-release-store.js +4 -6
  660. package/dist/services/loop/loop-release-types.d.ts +1 -1
  661. package/dist/services/loop/loop-release-types.js +21 -31
  662. package/dist/services/loop/monotonic-guard-types.d.ts +51 -0
  663. package/dist/services/loop/monotonic-guard-types.js +9 -0
  664. package/dist/services/loop/monotonic-guard.d.ts +2 -43
  665. package/dist/services/loop/monotonic-runner-types.d.ts +63 -0
  666. package/dist/services/loop/monotonic-runner-types.js +17 -0
  667. package/dist/services/loop/monotonic-runner.d.ts +3 -34
  668. package/dist/services/loop/monotonic-runner.js +10 -20
  669. package/dist/services/loop/run-driver.js +16 -8
  670. package/dist/services/loop/spec-service.d.ts +0 -5
  671. package/dist/services/loop/spec-service.js +49 -9
  672. package/dist/services/memory/llm-reranker-core.d.ts +108 -0
  673. package/dist/services/memory/llm-reranker-core.js +105 -0
  674. package/dist/services/memory/llm-reranker.d.ts +3 -94
  675. package/dist/services/memory/llm-reranker.js +13 -102
  676. package/dist/services/memory/memory-ingest-service.d.ts +1 -22
  677. package/dist/services/memory/memory-ingest-service.js +29 -76
  678. package/dist/services/memory/memory-ingest-support.d.ts +23 -0
  679. package/dist/services/memory/memory-ingest-support.js +81 -0
  680. package/dist/services/memory/memory-rotate-service.js +41 -8
  681. package/dist/services/memory/memory-search-service.js +8 -4
  682. package/dist/services/memory/project-context-service.js +26 -5
  683. package/dist/services/memory/project-memory-service/index/kind-dispatch.d.ts +2 -7
  684. package/dist/services/memory/project-memory-service/index/kind-dispatch.js +17 -136
  685. package/dist/services/memory/project-memory-service/index/project-memory-plan-exec.d.ts +7 -0
  686. package/dist/services/memory/project-memory-service/index/project-memory-plan-exec.js +150 -0
  687. package/dist/services/memory/project-memory-service/index/ranking.js +6 -3
  688. package/dist/services/memory/project-memory-service/index/reindex.js +14 -5
  689. package/dist/services/memory/project-memory-service/memory-kinds.d.ts +31 -0
  690. package/dist/services/memory/project-memory-service/memory-kinds.js +87 -0
  691. package/dist/services/memory/project-memory-service/parsers/frontmatter-parse.d.ts +24 -0
  692. package/dist/services/memory/project-memory-service/parsers/frontmatter-parse.js +104 -0
  693. package/dist/services/memory/project-memory-service/parsers/frontmatter.d.ts +2 -24
  694. package/dist/services/memory/project-memory-service/parsers/frontmatter.js +28 -79
  695. package/dist/services/memory/project-memory-service/parsers/markdown-pure.js +15 -3
  696. package/dist/services/memory/project-memory-service/store/atomic-write.js +34 -22
  697. package/dist/services/memory/project-memory-service/store/paths.js +2 -1
  698. package/dist/services/memory/project-memory-service/types.d.ts +3 -31
  699. package/dist/services/memory/project-memory-service/types.js +1 -76
  700. package/dist/services/migrate-skill-name/migrate.js +1 -1
  701. package/dist/services/migrate-skill-name/schema.js +1 -1
  702. package/dist/services/mode/mode-enforcement.js +4 -2
  703. package/dist/services/mode/mode-status-service.d.ts +27 -9
  704. package/dist/services/mode/mode-status-service.js +64 -12
  705. package/dist/services/observability/aggregation-helpers.d.ts +22 -0
  706. package/dist/services/observability/aggregation-helpers.js +65 -0
  707. package/dist/services/observability/aggregation-types.d.ts +66 -0
  708. package/dist/services/observability/aggregation-types.js +34 -0
  709. package/dist/services/observability/aggregation.d.ts +5 -53
  710. package/dist/services/observability/aggregation.js +17 -80
  711. package/dist/services/observability/jsonl-store.js +2 -1
  712. package/dist/services/observability/observability-schema.d.ts +71 -0
  713. package/dist/services/observability/observability-schema.js +64 -0
  714. package/dist/services/observability/observability-service.d.ts +3 -56
  715. package/dist/services/observability/observability-service.js +9 -49
  716. package/dist/services/openspec/coverage-evidence-reader.js +18 -11
  717. package/dist/services/openspec/openspec-archive-service.js +31 -24
  718. package/dist/services/openspec/openspec-init-service.js +8 -2
  719. package/dist/services/openspec/openspec-propose-from-doctor-service.js +1 -1
  720. package/dist/services/openspec/openspec-scan-service.js +4 -1
  721. package/dist/services/openspec/openspec-validate-service.js +26 -5
  722. package/dist/services/perf/perf-baseline-service.js +2 -6
  723. package/dist/services/polyrepo/polyrepo-dispatcher.js +2 -1
  724. package/dist/services/polyrepo/polyrepo-scanner.js +4 -1
  725. package/dist/services/prd/handoff-frontmatter-shape.d.ts +42 -0
  726. package/dist/services/prd/handoff-frontmatter-shape.js +67 -0
  727. package/dist/services/prd/handoff-frontmatter.js +1 -1
  728. package/dist/services/prd/handoff-path-resolution.d.ts +37 -0
  729. package/dist/services/prd/handoff-path-resolution.js +101 -0
  730. package/dist/services/prd/handoff-service.d.ts +1 -37
  731. package/dist/services/prd/handoff-service.js +16 -148
  732. package/dist/services/prd/prd-blocks-checker.js +28 -8
  733. package/dist/services/prd/project-scan-bootstrap-service.js +1 -5
  734. package/dist/services/prd/project-scan-reader.js +1 -4
  735. package/dist/services/prd/project-scan-sediment.js +1 -4
  736. package/dist/services/preferences/preferences-service.js +6 -8
  737. package/dist/services/preferences/preferences-types.js +4 -4
  738. package/dist/services/qa/bdd-test-style-contract.d.ts +41 -0
  739. package/dist/services/qa/bdd-test-style-contract.js +37 -0
  740. package/dist/services/qa/bdd-test-style-verifier.d.ts +2 -24
  741. package/dist/services/qa/bdd-test-style-verifier.js +5 -31
  742. package/dist/services/qa/browser-event-logger.js +2 -1
  743. package/dist/services/qa/qa-business-review-state.js +20 -5
  744. package/dist/services/qa/screenshot-archive-service.js +1 -3
  745. package/dist/services/rd/ast-gate.js +2 -2
  746. package/dist/services/rd/impl.js +1 -1
  747. package/dist/services/rd/rd-service.js +117 -43
  748. package/dist/services/rd/reviewer-dispatch-policy.js +4 -7
  749. package/dist/services/rd/standards-diagnostic.js +4 -1
  750. package/dist/services/rd/strategy.js +10 -3
  751. package/dist/services/rd/tactical-stage.js +2 -2
  752. package/dist/services/rd/types.js +9 -7
  753. package/dist/services/rd-swarm/rd-swarm-service.d.ts +2 -45
  754. package/dist/services/rd-swarm/rd-swarm-service.js +140 -21
  755. package/dist/services/rd-swarm/rd-swarm-types.d.ts +54 -0
  756. package/dist/services/rd-swarm/rd-swarm-types.js +10 -0
  757. package/dist/services/recommendations/capability-map-service.js +10 -2
  758. package/dist/services/recommendations/capability-seed-items.js +81 -14
  759. package/dist/services/recommendations/capability-seed-mappings.js +420 -48
  760. package/dist/services/recommendations/capability-seed-sources-mcp-server.d.ts +9 -0
  761. package/dist/services/recommendations/capability-seed-sources-mcp-server.js +233 -0
  762. package/dist/services/recommendations/capability-seed-sources.js +127 -32
  763. package/dist/services/release/release-state.d.ts +2 -2
  764. package/dist/services/release/release-state.js +44 -15
  765. package/dist/services/release/version-precheck-layer-changeset.d.ts +2 -0
  766. package/dist/services/release/version-precheck-layer-changeset.js +43 -0
  767. package/dist/services/release/version-precheck-service.d.ts +11 -36
  768. package/dist/services/release/version-precheck-service.js +20 -104
  769. package/dist/services/release/version-precheck-support.d.ts +53 -0
  770. package/dist/services/release/version-precheck-support.js +64 -0
  771. package/dist/services/retrospective/retrospective-index.js +17 -3
  772. package/dist/services/retrospective/retrospective-search-service.js +6 -2
  773. package/dist/services/retrospective/retrospective-show.js +4 -1
  774. package/dist/services/reviewer/model-family.js +7 -1
  775. package/dist/services/reviewer/providers/anthropic.d.ts +5 -0
  776. package/dist/services/reviewer/providers/anthropic.js +10 -1
  777. package/dist/services/reviewer/providers/openai.d.ts +5 -0
  778. package/dist/services/reviewer/providers/openai.js +10 -1
  779. package/dist/services/reviewer/reviewer-config.js +4 -2
  780. package/dist/services/reviewer/reviewer-service.d.ts +2 -36
  781. package/dist/services/reviewer/reviewer-service.js +2 -1
  782. package/dist/services/reviewer/reviewer-types.d.ts +43 -0
  783. package/dist/services/reviewer/reviewer-types.js +1 -0
  784. package/dist/services/role/role-registry.js +9 -1
  785. package/dist/services/runtime/runtime-detector.js +4 -1
  786. package/dist/services/runtime/vendors/claude-code.js +14 -6
  787. package/dist/services/runtime/vendors/codex.js +11 -3
  788. package/dist/services/runtime/vendors/copilot.js +11 -3
  789. package/dist/services/sc/sc-service.js +28 -15
  790. package/dist/services/scan/acceptance-coverage-service.js +4 -1
  791. package/dist/services/scan/api-diff-openapi-schema-read.d.ts +67 -0
  792. package/dist/services/scan/api-diff-openapi-schema-read.js +154 -0
  793. package/dist/services/scan/api-diff-openapi.d.ts +16 -2
  794. package/dist/services/scan/api-diff-openapi.js +19 -123
  795. package/dist/services/scan/api-diff-recorded.js +16 -3
  796. package/dist/services/scan/api-diff-service.js +49 -16
  797. package/dist/services/scan/api-diff-types.js +12 -3
  798. package/dist/services/scan/api-surface-helpers.d.ts +13 -0
  799. package/dist/services/scan/api-surface-helpers.js +31 -0
  800. package/dist/services/scan/api-surface-service.d.ts +2 -45
  801. package/dist/services/scan/api-surface-service.js +15 -26
  802. package/dist/services/scan/api-surface-types.d.ts +54 -0
  803. package/dist/services/scan/api-surface-types.js +10 -0
  804. package/dist/services/scan/archetype-detection.d.ts +37 -0
  805. package/dist/services/scan/archetype-detection.js +142 -0
  806. package/dist/services/scan/archetype-service.js +36 -125
  807. package/dist/services/scan/diff-scope-service.js +35 -15
  808. package/dist/services/scan/existing-system-service.js +16 -99
  809. package/dist/services/scan/existing-system-visual-tokens.d.ts +20 -0
  810. package/dist/services/scan/existing-system-visual-tokens.js +123 -0
  811. package/dist/services/scan/file-size-policy.d.ts +86 -0
  812. package/dist/services/scan/file-size-policy.js +184 -0
  813. package/dist/services/scan/file-size-scan.d.ts +30 -3
  814. package/dist/services/scan/file-size-scan.js +47 -9
  815. package/dist/services/scan/karpathy-service.js +6 -1
  816. package/dist/services/scan/orphan-service.js +86 -20
  817. package/dist/services/scan/type-sanity-service.js +104 -10
  818. package/dist/services/sediment/dispose-confirm.d.ts +2 -2
  819. package/dist/services/sediment/dispose-confirm.js +2 -2
  820. package/dist/services/sediment/json-schema.d.ts +1 -1
  821. package/dist/services/sediment/json-schema.js +25 -13
  822. package/dist/services/sediment/manifest-lint.d.ts +1 -12
  823. package/dist/services/sediment/manifest-lint.js +1 -7
  824. package/dist/services/sediment/pool-paths.js +13 -9
  825. package/dist/services/sediment/pool-read.d.ts +1 -1
  826. package/dist/services/sediment/pool-read.js +42 -18
  827. package/dist/services/sediment/pool-rebuild-index.d.ts +1 -1
  828. package/dist/services/sediment/pool-rebuild-index.js +5 -5
  829. package/dist/services/sediment/pool-write.d.ts +1 -1
  830. package/dist/services/sediment/pool-write.js +7 -7
  831. package/dist/services/sediment/promotion-gate.d.ts +1 -1
  832. package/dist/services/sediment/promotion-gate.js +9 -9
  833. package/dist/services/sediment/types.d.ts +8 -8
  834. package/dist/services/session/binding-status-service.js +14 -4
  835. package/dist/services/session/caller-binding-service.js +2 -1
  836. package/dist/services/session/getSessionDir.js +4 -1
  837. package/dist/services/session/index.d.ts +1 -1
  838. package/dist/services/session/index.js +1 -1
  839. package/dist/services/session/resolve-caller-id.js +7 -5
  840. package/dist/services/session/session-binding-bridge.js +26 -25
  841. package/dist/services/session/session-checkpoint-service.js +1 -1
  842. package/dist/services/session/session-file-schema.d.ts +70 -0
  843. package/dist/services/session/session-file-schema.js +68 -0
  844. package/dist/services/session/session-manager.d.ts +6 -6
  845. package/dist/services/session/session-manager.js +30 -29
  846. package/dist/services/session/session-resume-service.js +2 -1
  847. package/dist/services/share/bundle-format-constants.d.ts +85 -0
  848. package/dist/services/share/bundle-format-constants.js +100 -0
  849. package/dist/services/share/bundle-reader.d.ts +3 -3
  850. package/dist/services/share/bundle-reader.js +75 -68
  851. package/dist/services/share/bundle-types.d.ts +3 -70
  852. package/dist/services/share/bundle-types.js +38 -107
  853. package/dist/services/share/bundle-writer.d.ts +3 -3
  854. package/dist/services/share/bundle-writer.js +101 -91
  855. package/dist/services/share/run-state-contract.d.ts +1 -1
  856. package/dist/services/share/run-state-contract.js +7 -13
  857. package/dist/services/signal/cancel-handler.js +2 -1
  858. package/dist/services/skill/resume-detector.js +6 -4
  859. package/dist/services/skill/skill-scheduler.js +3 -1
  860. package/dist/services/skill/skill-search-service.js +4 -4
  861. package/dist/services/skillhub/release-diff.d.ts +2 -2
  862. package/dist/services/skillhub/release-diff.js +6 -10
  863. package/dist/services/skillhub/release-export.d.ts +2 -2
  864. package/dist/services/skillhub/release-export.js +15 -17
  865. package/dist/services/skillhub/release-gc-blobs.d.ts +2 -2
  866. package/dist/services/skillhub/release-gc-blobs.js +4 -4
  867. package/dist/services/skillhub/release-import.d.ts +2 -2
  868. package/dist/services/skillhub/release-import.js +13 -12
  869. package/dist/services/skillhub/release-retain.d.ts +3 -3
  870. package/dist/services/skillhub/release-retain.js +22 -22
  871. package/dist/services/skillhub/sqlite-store.d.ts +1 -1
  872. package/dist/services/skillhub/sqlite-store.js +12 -11
  873. package/dist/services/skillhub/tar-runtime.js +15 -15
  874. package/dist/services/skillhub/types.d.ts +4 -4
  875. package/dist/services/skills/hooks-codegate-superpowers.js +16 -7
  876. package/dist/services/skills/hooks-settings-service.js +61 -19
  877. package/dist/services/skills/presence-lease-service.js +26 -16
  878. package/dist/services/skills/presence-lease-types.d.ts +1 -1
  879. package/dist/services/skills/presence-lease-types.js +1 -1
  880. package/dist/services/skills/skill-conformance-service.js +40 -8
  881. package/dist/services/skills/skill-presence-service.js +16 -14
  882. package/dist/services/skills/skill-runbook-service.js +2 -1
  883. package/dist/services/skills/skill-statusline-model.d.ts +128 -0
  884. package/dist/services/skills/skill-statusline-model.js +163 -0
  885. package/dist/services/skills/skill-statusline-renderer.js +4 -3
  886. package/dist/services/skills/skill-statusline-service.d.ts +3 -100
  887. package/dist/services/skills/skill-statusline-service.js +56 -163
  888. package/dist/services/skills/statusline-palette.js +11 -6
  889. package/dist/services/skills/statusline-settings-service.js +2 -1
  890. package/dist/services/skills/sync-service-support.d.ts +65 -0
  891. package/dist/services/skills/sync-service-support.js +50 -0
  892. package/dist/services/skills/sync-service.d.ts +3 -66
  893. package/dist/services/skills/sync-service.js +15 -53
  894. package/dist/services/slice/calibration-store.js +8 -2
  895. package/dist/services/slice/cross-pass-edge-merger.d.ts +3 -28
  896. package/dist/services/slice/cross-pass-edge-merger.js +13 -63
  897. package/dist/services/slice/cross-pass-edge-static-scan-support.d.ts +69 -0
  898. package/dist/services/slice/cross-pass-edge-static-scan-support.js +74 -0
  899. package/dist/services/slice/granularity-decider.js +2 -2
  900. package/dist/services/slice/slice-archive-service.js +8 -3
  901. package/dist/services/slice/slice-check-service.js +19 -8
  902. package/dist/services/slice/slice-decompose-runners.js +61 -23
  903. package/dist/services/slice/slice-decompose-service.js +4 -4
  904. package/dist/services/slice/slice-review-state.js +8 -2
  905. package/dist/services/smoke/smoke-paths-state.js +9 -2
  906. package/dist/services/sop/gate-enforce-service.js +9 -2
  907. package/dist/services/sop/sop-advance-service.js +14 -2
  908. package/dist/services/sop/sop-check-service.js +16 -4
  909. package/dist/services/sop/sop-paths.js +3 -1
  910. package/dist/services/sop/sop-registry-service.js +5 -1
  911. package/dist/services/sop/sop-service.js +29 -7
  912. package/dist/services/sop/sop-types.js +5 -1
  913. package/dist/services/standards/ide-aware-standards-service.js +2 -2
  914. package/dist/services/standards/loop-engineering-lint.js +12 -5
  915. package/dist/services/standards/loop-engineering-readiness-lint.js +5 -5
  916. package/dist/services/standards/migrate-claude-rules-service.js +9 -7
  917. package/dist/services/standards/missing-standards-detector.js +1 -3
  918. package/dist/services/standards/project-context-support.d.ts +50 -0
  919. package/dist/services/standards/project-context-support.js +244 -0
  920. package/dist/services/standards/project-context-types.d.ts +30 -0
  921. package/dist/services/standards/project-context-types.js +11 -0
  922. package/dist/services/standards/project-context.d.ts +10 -22
  923. package/dist/services/standards/project-context.js +27 -214
  924. package/dist/services/standards/project-standards-service.js +43 -12
  925. package/dist/services/standards/standards-render-common.d.ts +15 -0
  926. package/dist/services/standards/standards-render-common.js +49 -0
  927. package/dist/services/standards/standards-render.d.ts +1 -2
  928. package/dist/services/standards/standards-render.js +31 -58
  929. package/dist/services/standards/ui-library-dispatch-block.js +1 -1
  930. package/dist/services/tech/tech-change-id-service.js +7 -7
  931. package/dist/services/tech/tech-service.js +73 -26
  932. package/dist/services/test-cache/test-cache-service.js +8 -3
  933. package/dist/services/upgrade/1x-detector-service.js +5 -3
  934. package/dist/services/upgrade/gitignore-migrate-service.js +5 -5
  935. package/dist/services/upgrade/upgrade-service.js +36 -13
  936. package/dist/services/verdict/envelope-parsers.d.ts +84 -0
  937. package/dist/services/verdict/envelope-parsers.js +146 -0
  938. package/dist/services/verdict/envelopes.d.ts +50 -60
  939. package/dist/services/verdict/envelopes.js +18 -156
  940. package/dist/services/verdict/verdict-aggregator.js +27 -3
  941. package/dist/services/vm/vm-lease.js +15 -3
  942. package/dist/services/web/aria-node.d.ts +27 -0
  943. package/dist/services/web/aria-node.js +1 -0
  944. package/dist/services/web/browser-acquire.js +3 -1
  945. package/dist/services/web/browser-cache-probe.d.ts +18 -0
  946. package/dist/services/web/browser-cache-probe.js +110 -0
  947. package/dist/services/web/browser-session-manager.js +6 -2
  948. package/dist/services/web/daemon-registry.js +4 -1
  949. package/dist/services/web/playwright-loader.d.ts +2 -70
  950. package/dist/services/web/playwright-types.d.ts +75 -0
  951. package/dist/services/web/playwright-types.js +1 -0
  952. package/dist/services/web/snapshot-pruner.d.ts +2 -23
  953. package/dist/services/web/snapshot-pruner.js +8 -3
  954. package/dist/services/web/web-daemon-service.js +1 -3
  955. package/dist/services/web/web-install-service.d.ts +3 -32
  956. package/dist/services/web/web-install-service.js +21 -100
  957. package/dist/services/web/web-install-types.d.ts +31 -0
  958. package/dist/services/web/web-install-types.js +13 -0
  959. package/dist/services/web/web-login-profile.js +7 -5
  960. package/dist/services/web/web-protocol.js +3 -1
  961. package/dist/services/workflow/pipeline-verify-gate-support.js +63 -17
  962. package/dist/services/workflow/pipeline-verify-service.js +17 -6
  963. package/dist/services/workflow/plan-reader.js +5 -1
  964. package/dist/services/workflow/plan-refresher.js +20 -6
  965. package/dist/services/workflow/plan-trigger-detector.js +31 -8
  966. package/dist/services/workflow/provision-dispatch-node.js +8 -3
  967. package/dist/services/workflow/workflow-autonomous-resume-helpers.d.ts +3 -1
  968. package/dist/services/workflow/workflow-autonomous-resume-helpers.js +35 -144
  969. package/dist/services/workflow/workflow-autonomous-resume-validation.d.ts +16 -0
  970. package/dist/services/workflow/workflow-autonomous-resume-validation.js +155 -0
  971. package/dist/services/workflow/workflow-autonomous-service.js +25 -13
  972. package/dist/services/workflow/workflow-graph-store-helpers.d.ts +51 -0
  973. package/dist/services/workflow/workflow-graph-store-helpers.js +111 -0
  974. package/dist/services/workflow/workflow-graph-store.d.ts +2 -35
  975. package/dist/services/workflow/workflow-graph-store.js +30 -107
  976. package/dist/services/workflow/workflow-graph-types.js +3 -3
  977. package/dist/services/workflow/workflow-inflight-probe.js +14 -7
  978. package/dist/services/workflow/workflow-loader.js +5 -1
  979. package/dist/services/workflow/workflow-node-lifecycle.js +22 -21
  980. package/dist/services/workflow/workflow-presence-lifecycle-types.d.ts +50 -0
  981. package/dist/services/workflow/workflow-presence-lifecycle-types.js +1 -0
  982. package/dist/services/workflow/workflow-presence-lifecycle.d.ts +2 -42
  983. package/dist/services/workflow/workflow-presence-lifecycle.js +19 -21
  984. package/dist/services/workflow/workflow-router-service.js +169 -27
  985. package/dist/services/workflow/workflow-skip-service.js +14 -4
  986. package/dist/services/workflow/workflow-spec-builders.d.ts +15 -0
  987. package/dist/services/workflow/workflow-spec-builders.js +121 -0
  988. package/dist/services/workflow/workflow-spec.d.ts +7 -6
  989. package/dist/services/workflow/workflow-spec.js +22 -116
  990. package/dist/services/workflow/workflow-state-store.js +2 -1
  991. package/dist/services/workspace/migrate-1-4-1-service.js +80 -14
  992. package/dist/services/workspace/migrate-service.js +66 -16
  993. package/dist/services/workspace/reconcile-migrate.js +6 -2
  994. package/dist/services/workspace/reconcile-service.js +37 -16
  995. package/dist/services/workspace/workspace-claude-settings-materializer.js +7 -5
  996. package/dist/services/workspace/workspace-clean-service.js +4 -1
  997. package/dist/services/workspace/workspace-service.js +11 -3
  998. package/dist/services/workspace/workspace-state-service.js +1 -1
  999. package/dist/services/worktree/git-worktree-parser.js +13 -3
  1000. package/dist/services/worktree/host-worktree-reconciler.js +8 -4
  1001. package/dist/services/worktree/long-path-cleanup.js +23 -6
  1002. package/dist/services/worktree/worktree-gc-guard.js +3 -1
  1003. package/dist/services/worktree/worktree-lease-types.d.ts +53 -0
  1004. package/dist/services/worktree/worktree-lease-types.js +10 -0
  1005. package/dist/services/worktree/worktree-lease.d.ts +2 -44
  1006. package/dist/shared/array-guards.d.ts +30 -0
  1007. package/dist/shared/array-guards.js +32 -0
  1008. package/dist/shared/format-md-compact-internals.d.ts +26 -0
  1009. package/dist/shared/format-md-compact-internals.js +125 -0
  1010. package/dist/shared/format-md-compact.js +1 -117
  1011. package/dist/shared/fs-utils.js +2 -1
  1012. package/dist/shared/incrementing-number.js +3 -3
  1013. package/dist/shared/json-parse.d.ts +71 -0
  1014. package/dist/shared/json-parse.js +32 -0
  1015. package/dist/shared/json-schema-mini.js +3 -1
  1016. package/dist/shared/path-safety.js +3 -1
  1017. package/dist/shared/path-utils.d.ts +20 -0
  1018. package/dist/shared/path-utils.js +26 -0
  1019. package/dist/shared/planner-response.js +3 -3
  1020. package/dist/shared/stale-policy.js +1 -3
  1021. package/dist/skills/peaks-maker/index.js +11 -11
  1022. package/package.json +31 -8
  1023. package/scripts/clean-dist.mjs +1 -2
  1024. package/scripts/copy-templates.mjs +2 -4
  1025. package/scripts/install-skills.mjs +305 -125
  1026. package/scripts/sync-version.mjs +25 -8
  1027. package/scripts/watch.mjs +8 -2
  1028. package/skills/peaks-code/SKILL.md +1 -1
@@ -24,21 +24,21 @@
24
24
  * `{ ok, error?, data? }` envelope so program.ts can render the result
25
25
  * as JSON via peaks-cli's existing printResult primitive.
26
26
  */
27
- import { writeFileSync, mkdirSync, readFileSync, existsSync, readdirSync, rmSync } from "node:fs";
28
- import { join, basename } from "node:path";
29
- import { SYSTEM_PATH_FORBIDDEN, assertNotSystemPath, resolveSegmentsDir, resolveStateDbPath, resolveBlobsDir, resolveUserBeesDir, resolveUserBeeDir, } from "../../services/sediment/pool-paths.js";
30
- import { peaksHome } from "../../services/sop/sop-paths.js";
31
- import { writeBeeManifest } from "../../services/sediment/pool-write.js";
32
- import { readPool } from "../../services/sediment/pool-read.js";
33
- import { rebuildIndexFromFs } from "../../services/sediment/pool-rebuild-index.js";
34
- import { evaluateGate } from "../../services/sediment/promotion-gate.js";
35
- import { printCliEnvelope } from "../cli-helpers.js";
36
- import { openStateDb } from "../../services/skillhub/sqlite-store.js";
37
- import { retainRelease } from "../../services/skillhub/release-retain.js";
38
- import { releaseDiff } from "../../services/skillhub/release-diff.js";
39
- import { exportRelease } from "../../services/skillhub/release-export.js";
40
- import { importRelease } from "../../services/skillhub/release-import.js";
41
- import { gcBlobs } from "../../services/skillhub/release-gc-blobs.js";
27
+ import { writeFileSync, mkdirSync, readFileSync, existsSync, readdirSync, rmSync } from 'node:fs';
28
+ import { join, basename } from 'node:path';
29
+ import { SYSTEM_PATH_FORBIDDEN, assertNotSystemPath, resolveSegmentsDir, resolveStateDbPath, resolveBlobsDir, resolveUserBeesDir, resolveUserBeeDir } from '../../services/sediment/pool-paths.js';
30
+ import { peaksHome } from '../../services/sop/sop-paths.js';
31
+ import { writeBeeManifest } from '../../services/sediment/pool-write.js';
32
+ import { readPool } from '../../services/sediment/pool-read.js';
33
+ import { rebuildIndexFromFs } from '../../services/sediment/pool-rebuild-index.js';
34
+ import { evaluateGate } from '../../services/sediment/promotion-gate.js';
35
+ import { printCliEnvelope } from '../cli-helpers.js';
36
+ import { openStateDb } from '../../services/skillhub/sqlite-store.js';
37
+ import { retainRelease } from '../../services/skillhub/release-retain.js';
38
+ import { releaseDiff } from '../../services/skillhub/release-diff.js';
39
+ import { exportRelease } from '../../services/skillhub/release-export.js';
40
+ import { importRelease } from '../../services/skillhub/release-import.js';
41
+ import { gcBlobs } from '../../services/skillhub/release-gc-blobs.js';
42
42
  /** Typed accessor over the flag map produced by `parseFlags`.
43
43
  *
44
44
  * `parseFlags` internally stores every flag with at least one value as a
@@ -118,10 +118,10 @@ export function parseFlags(argv) {
118
118
  const rawFlags = {};
119
119
  for (let i = 0; i < argv.length; i++) {
120
120
  const a = argv[i];
121
- if (a.startsWith("--")) {
121
+ if (a.startsWith('--')) {
122
122
  const k = a.slice(2);
123
123
  const v = argv[i + 1];
124
- if (v === undefined || v.startsWith("--")) {
124
+ if (v === undefined || v.startsWith('--')) {
125
125
  rawFlags[k] = true;
126
126
  }
127
127
  else {
@@ -131,7 +131,7 @@ export function parseFlags(argv) {
131
131
  while (i < argv.length &&
132
132
  argv[i] === `--${k}` &&
133
133
  i + 1 < argv.length &&
134
- !argv[i + 1].startsWith("--")) {
134
+ !argv[i + 1].startsWith('--')) {
135
135
  values.push(argv[i + 1]);
136
136
  i += 2;
137
137
  }
@@ -159,50 +159,50 @@ export async function runSediment(argv, { home }) {
159
159
  const verb = positional[0];
160
160
  try {
161
161
  switch (verb) {
162
- case "add-segment": {
162
+ case 'add-segment': {
163
163
  const name = positional[1];
164
164
  if (!name)
165
- return { ok: false, error: "MISSING_ARG: name" };
166
- const description = flags.maybeString("describe") ?? "";
165
+ return { ok: false, error: 'MISSING_ARG: name' };
166
+ const description = flags.maybeString('describe') ?? '';
167
167
  const segDir = join(resolveSegmentsDir({ home }), name);
168
168
  // Soft-protection guard: refuse to write under any `.system` path
169
169
  // segment. Mirrors the same guard in writeBeeManifest.
170
170
  assertNotSystemPath(segDir);
171
171
  mkdirSync(segDir, { recursive: true });
172
- writeFileSync(join(segDir, "SKILL.md"), `---\nname: ${name}\ndescription: ${description}\n---\n`);
172
+ writeFileSync(join(segDir, 'SKILL.md'), `---\nname: ${name}\ndescription: ${description}\n---\n`);
173
173
  rebuildIndexFromFs({ home });
174
174
  return { ok: true };
175
175
  }
176
- case "add-bee": {
176
+ case 'add-bee': {
177
177
  const name = positional[1];
178
178
  if (!name)
179
- return { ok: false, error: "MISSING_ARG: name" };
179
+ return { ok: false, error: 'MISSING_ARG: name' };
180
180
  // Collect --segment values; the brief uses repeatable --segment
181
181
  // flags (one token per segment). parseFlags now returns a
182
182
  // 1-element array for a single occurrence and a longer array
183
183
  // for repeated keys, so .list() returns a uniform string[].
184
- const segList = flags.list("segment");
185
- const description = flags.maybeString("description") ?? "";
184
+ const segList = flags.list('segment');
185
+ const description = flags.maybeString('description') ?? '';
186
186
  const m = {
187
- schemaVersion: "peaks.bee/1",
187
+ schemaVersion: 'peaks.bee/1',
188
188
  name,
189
- source: "user",
190
- promotion_status: "candidate",
189
+ source: 'user',
190
+ promotion_status: 'candidate',
191
191
  description,
192
192
  segments: segList.map((s) => ({
193
193
  name: s,
194
194
  inputs: [],
195
195
  outputs: [],
196
- sideEffects: [],
196
+ sideEffects: []
197
197
  })),
198
198
  entrypoint: { preamble: `## ${name}`, refs: [] },
199
199
  promotion: {
200
200
  minCycles: 1,
201
201
  requiresHumanApproval: true,
202
- requiresSmokeTest: true,
202
+ requiresSmokeTest: true
203
203
  },
204
- createdBy: "llm",
205
- lastTouchedAt: new Date().toISOString(),
204
+ createdBy: 'llm',
205
+ lastTouchedAt: new Date().toISOString()
206
206
  };
207
207
  // writeBeeManifest runs zod validation + SYSTEM_PATH_FORBIDDEN
208
208
  // guard internally.
@@ -210,103 +210,106 @@ export async function runSediment(argv, { home }) {
210
210
  rebuildIndexFromFs({ home });
211
211
  return { ok: true };
212
212
  }
213
- case "list": {
213
+ case 'list': {
214
214
  const idx = readPool({ home });
215
215
  return { ok: true, data: idx.entries };
216
216
  }
217
- case "rebuild-index": {
217
+ case 'rebuild-index': {
218
218
  const idx = rebuildIndexFromFs({ home });
219
219
  return { ok: true, data: idx };
220
220
  }
221
221
  // --- Task 15b verbs ---
222
- case "refine-bee": {
222
+ case 'refine-bee': {
223
223
  const name = positional[1];
224
224
  if (!name)
225
- return { ok: false, error: "MISSING_ARG: refine-bee requires <name>" };
226
- const patch = flags.maybeString("patch") ?? "";
225
+ return { ok: false, error: 'MISSING_ARG: refine-bee requires <name>' };
226
+ const patch = flags.maybeString('patch') ?? '';
227
227
  if (!patch)
228
- return { ok: false, error: "MISSING_ARG: refine-bee requires --patch" };
229
- const manifestPath = join(resolveUserBeesDir({ home }), name, "manifest.json");
228
+ return { ok: false, error: 'MISSING_ARG: refine-bee requires --patch' };
229
+ const manifestPath = join(resolveUserBeesDir({ home }), name, 'manifest.json');
230
230
  if (!existsSync(manifestPath))
231
- return { ok: false, error: "BEE_NOT_FOUND" };
232
- const m = JSON.parse(readFileSync(manifestPath, "utf-8"));
231
+ return { ok: false, error: 'BEE_NOT_FOUND' };
232
+ const m = JSON.parse(readFileSync(manifestPath, 'utf-8'));
233
233
  // Append patch note to description, preserving prior content. Cap at
234
234
  // 1000 chars to avoid unbounded growth.
235
235
  const ts = new Date().toISOString();
236
236
  const note = `[refine ${ts}] ${patch}`;
237
- m.description = (m.description + (m.description ? "\n" : "") + note).slice(0, 1000);
237
+ m.description = (m.description + (m.description ? '\n' : '') + note).slice(0, 1000);
238
238
  m.lastTouchedAt = ts;
239
239
  // promotion_status is preserved (do not touch it here).
240
240
  writeBeeManifest({ home }, m);
241
241
  rebuildIndexFromFs({ home });
242
242
  return { ok: true };
243
243
  }
244
- case "clone-bee": {
244
+ case 'clone-bee': {
245
245
  const name = positional[1];
246
246
  if (!name)
247
- return { ok: false, error: "MISSING_ARG: clone-bee requires <name>" };
248
- const asName = flags.maybeString("as") ?? "";
247
+ return { ok: false, error: 'MISSING_ARG: clone-bee requires <name>' };
248
+ const asName = flags.maybeString('as') ?? '';
249
249
  if (!asName)
250
- return { ok: false, error: "MISSING_ARG: clone-bee requires --as <new-name>" };
251
- const srcPath = join(resolveUserBeesDir({ home }), name, "manifest.json");
250
+ return { ok: false, error: 'MISSING_ARG: clone-bee requires --as <new-name>' };
251
+ const srcPath = join(resolveUserBeesDir({ home }), name, 'manifest.json');
252
252
  if (!existsSync(srcPath))
253
- return { ok: false, error: "BEE_NOT_FOUND" };
254
- const src = JSON.parse(readFileSync(srcPath, "utf-8"));
253
+ return { ok: false, error: 'BEE_NOT_FOUND' };
254
+ const src = JSON.parse(readFileSync(srcPath, 'utf-8'));
255
255
  // Fresh id, reset promotion_status to candidate, rename. The source
256
256
  // manifest is unchanged on disk.
257
257
  const clone = {
258
258
  ...src,
259
259
  name: asName,
260
- promotion_status: "candidate",
261
- lastTouchedAt: new Date().toISOString(),
260
+ promotion_status: 'candidate',
261
+ lastTouchedAt: new Date().toISOString()
262
262
  };
263
263
  writeBeeManifest({ home }, clone);
264
264
  rebuildIndexFromFs({ home });
265
265
  return { ok: true };
266
266
  }
267
- case "promote": {
267
+ case 'promote': {
268
268
  const name = positional[1];
269
269
  if (!name)
270
- return { ok: false, error: "MISSING_ARG: promote requires <name>" };
271
- const manifestPath = join(resolveUserBeesDir({ home }), name, "manifest.json");
270
+ return { ok: false, error: 'MISSING_ARG: promote requires <name>' };
271
+ const manifestPath = join(resolveUserBeesDir({ home }), name, 'manifest.json');
272
272
  if (!existsSync(manifestPath))
273
- return { ok: false, error: "BEE_NOT_FOUND" };
274
- const m = JSON.parse(readFileSync(manifestPath, "utf-8"));
275
- if (m.source === "system")
276
- return { ok: false, error: "PROMOTION_SYSTEM_REFUSED" };
273
+ return { ok: false, error: 'BEE_NOT_FOUND' };
274
+ const m = JSON.parse(readFileSync(manifestPath, 'utf-8'));
275
+ if (m.source === 'system')
276
+ return { ok: false, error: 'PROMOTION_SYSTEM_REFUSED' };
277
277
  // Evaluate the PromotionGate (Task 5). The CLI is a thin shim; the
278
278
  // humanApproved / smokeTestPresent inputs default to "true" here
279
279
  // because the LLM-driven peaks-maker workflow has already obtained
280
280
  // those approvals before calling promote.
281
- const gate = evaluateGate({ home }, m, { humanApproved: true, smokeTestPresent: m.promotion.requiresSmokeTest });
281
+ const gate = evaluateGate({ home }, m, {
282
+ humanApproved: true,
283
+ smokeTestPresent: m.promotion.requiresSmokeTest
284
+ });
282
285
  if (!gate.ok) {
283
286
  return {
284
287
  ok: false,
285
- error: `PROMOTION_GATE_FAILED: ${gate.failedSubconditions.join(",")}`,
288
+ error: `PROMOTION_GATE_FAILED: ${gate.failedSubconditions.join(',')}`
286
289
  };
287
290
  }
288
- m.promotion_status = "stable";
291
+ m.promotion_status = 'stable';
289
292
  m.lastTouchedAt = new Date().toISOString();
290
293
  writeBeeManifest({ home }, m);
291
294
  rebuildIndexFromFs({ home });
292
295
  return { ok: true };
293
296
  }
294
- case "retire": {
297
+ case 'retire': {
295
298
  const name = positional[1];
296
299
  if (!name)
297
- return { ok: false, error: "MISSING_ARG: retire requires <name>" };
298
- const reason = flags.maybeString("reason") ?? "";
299
- const manifestPath = join(resolveUserBeesDir({ home }), name, "manifest.json");
300
+ return { ok: false, error: 'MISSING_ARG: retire requires <name>' };
301
+ const reason = flags.maybeString('reason') ?? '';
302
+ const manifestPath = join(resolveUserBeesDir({ home }), name, 'manifest.json');
300
303
  if (!existsSync(manifestPath))
301
- return { ok: false, error: "BEE_NOT_FOUND" };
302
- const m = JSON.parse(readFileSync(manifestPath, "utf-8"));
303
- if (m.source === "system")
304
- return { ok: false, error: "RETIRE_SYSTEM_REFUSED" };
305
- m.promotion_status = "retired";
304
+ return { ok: false, error: 'BEE_NOT_FOUND' };
305
+ const m = JSON.parse(readFileSync(manifestPath, 'utf-8'));
306
+ if (m.source === 'system')
307
+ return { ok: false, error: 'RETIRE_SYSTEM_REFUSED' };
308
+ m.promotion_status = 'retired';
306
309
  if (reason) {
307
310
  const ts = new Date().toISOString();
308
311
  const note = `[retire ${ts}] ${reason}`;
309
- m.description = (m.description + (m.description ? "\n" : "") + note).slice(0, 1000);
312
+ m.description = (m.description + (m.description ? '\n' : '') + note).slice(0, 1000);
310
313
  }
311
314
  m.lastTouchedAt = new Date().toISOString();
312
315
  writeBeeManifest({ home }, m);
@@ -314,39 +317,39 @@ export async function runSediment(argv, { home }) {
314
317
  return { ok: true };
315
318
  }
316
319
  // --- Task 15c verbs ---
317
- case "dispose": {
320
+ case 'dispose': {
318
321
  const name = positional[1];
319
322
  if (!name)
320
- return { ok: false, error: "MISSING_ARG: dispose requires <name>" };
321
- const decision = flags.maybeString("decision") ?? "";
322
- if (decision !== "destroy" && decision !== "retain") {
323
- return { ok: false, error: "MISSING_ARG: dispose requires --decision destroy|retain" };
323
+ return { ok: false, error: 'MISSING_ARG: dispose requires <name>' };
324
+ const decision = flags.maybeString('decision') ?? '';
325
+ if (decision !== 'destroy' && decision !== 'retain') {
326
+ return { ok: false, error: 'MISSING_ARG: dispose requires --decision destroy|retain' };
324
327
  }
325
- const manifestPath = join(resolveUserBeesDir({ home }), name, "manifest.json");
328
+ const manifestPath = join(resolveUserBeesDir({ home }), name, 'manifest.json');
326
329
  if (!existsSync(manifestPath))
327
- return { ok: false, error: "BEE_NOT_FOUND" };
328
- const m = JSON.parse(readFileSync(manifestPath, "utf-8"));
330
+ return { ok: false, error: 'BEE_NOT_FOUND' };
331
+ const m = JSON.parse(readFileSync(manifestPath, 'utf-8'));
329
332
  // System bees: silently destroy; refuse retain (Task 9 contract).
330
- if (m.source === "system") {
331
- if (decision === "retain")
332
- return { ok: false, error: "RETAIN_SYSTEM_REFUSED" };
333
+ if (m.source === 'system') {
334
+ if (decision === 'retain')
335
+ return { ok: false, error: 'RETAIN_SYSTEM_REFUSED' };
333
336
  return { ok: true, data: { systemDestroyed: true } };
334
337
  }
335
338
  // User bee destroy: remove the manifest dir from the pool. The
336
339
  // scratch materialization is cleaned up by the dispatch flow
337
340
  // (its concern), but the pool's bees/<name>/manifest.json entry
338
341
  // is removed here so the index reflects reality on next read.
339
- if (decision === "destroy") {
342
+ if (decision === 'destroy') {
340
343
  const beeDir = resolveUserBeeDir({ home }, name);
341
344
  rmSync(beeDir, { recursive: true, force: true });
342
345
  rebuildIndexFromFs({ home });
343
346
  return { ok: true, data: { userDestroyed: true, path: beeDir } };
344
347
  }
345
348
  // User bee retain: open state.db, call retainRelease.
346
- const version = flags.maybeString("version") ?? "0.1.0";
347
- const scratchDir = flags.maybeString("scratch") ?? join(home, "scratch");
349
+ const version = flags.maybeString('version') ?? '0.1.0';
350
+ const scratchDir = flags.maybeString('scratch') ?? join(home, 'scratch');
348
351
  if (!existsSync(scratchDir))
349
- return { ok: false, error: "SCRATCH_NOT_FOUND" };
352
+ return { ok: false, error: 'SCRATCH_NOT_FOUND' };
350
353
  const stateDbPath = resolveStateDbPath({ home });
351
354
  const blobsDir = resolveBlobsDir({ home });
352
355
  mkdirSync(blobsDir, { recursive: true });
@@ -359,15 +362,15 @@ export async function runSediment(argv, { home }) {
359
362
  }
360
363
  return { ok: true, data: { retained: true, version } };
361
364
  }
362
- case "releases": {
365
+ case 'releases': {
363
366
  const beeName = positional[1];
364
367
  if (!beeName)
365
- return { ok: false, error: "MISSING_ARG: releases requires <bee-name>" };
368
+ return { ok: false, error: 'MISSING_ARG: releases requires <bee-name>' };
366
369
  const stateDbPath = resolveStateDbPath({ home });
367
370
  const db = openStateDb(stateDbPath);
368
371
  try {
369
372
  const rows = db
370
- .prepare("SELECT id, bee_name, version, source, archived_at, archived_by FROM bee_release WHERE bee_name = ? ORDER BY archived_at DESC")
373
+ .prepare('SELECT id, bee_name, version, source, archived_at, archived_by FROM bee_release WHERE bee_name = ? ORDER BY archived_at DESC')
371
374
  .all(beeName);
372
375
  return { ok: true, data: rows };
373
376
  }
@@ -375,11 +378,14 @@ export async function runSediment(argv, { home }) {
375
378
  db.close();
376
379
  }
377
380
  }
378
- case "release-show": {
381
+ case 'release-show': {
379
382
  const beeName = positional[1];
380
- const version = flags.maybeString("version") ?? "";
383
+ const version = flags.maybeString('version') ?? '';
381
384
  if (!beeName || !version) {
382
- return { ok: false, error: "MISSING_ARG: release-show requires <bee-name> and --version" };
385
+ return {
386
+ ok: false,
387
+ error: 'MISSING_ARG: release-show requires <bee-name> and --version'
388
+ };
383
389
  }
384
390
  const stateDbPath = resolveStateDbPath({ home });
385
391
  const db = openStateDb(stateDbPath);
@@ -389,19 +395,17 @@ export async function runSediment(argv, { home }) {
389
395
  // renderers) get a structural shape rather than
390
396
  // Record<string, unknown>. Minor #12 fix.
391
397
  const row = db
392
- .prepare("SELECT * FROM bee_release WHERE bee_name = ? AND version = ?")
398
+ .prepare('SELECT * FROM bee_release WHERE bee_name = ? AND version = ?')
393
399
  .get(beeName, version);
394
400
  if (!row)
395
- return { ok: false, error: "VERSION_NOT_FOUND" };
401
+ return { ok: false, error: 'VERSION_NOT_FOUND' };
396
402
  const id = row.id;
397
- const manifest = db
398
- .prepare("SELECT * FROM bee_manifest WHERE release_id = ?")
399
- .get(id);
403
+ const manifest = db.prepare('SELECT * FROM bee_manifest WHERE release_id = ?').get(id);
400
404
  const segments = db
401
- .prepare("SELECT * FROM bee_segment_ref WHERE release_id = ?")
405
+ .prepare('SELECT * FROM bee_segment_ref WHERE release_id = ?')
402
406
  .all(id);
403
407
  const files = db
404
- .prepare("SELECT * FROM bee_file WHERE release_id = ?")
408
+ .prepare('SELECT * FROM bee_file WHERE release_id = ?')
405
409
  .all(id);
406
410
  return { ok: true, data: { release: row, manifest, segments, files } };
407
411
  }
@@ -409,12 +413,15 @@ export async function runSediment(argv, { home }) {
409
413
  db.close();
410
414
  }
411
415
  }
412
- case "release-diff": {
416
+ case 'release-diff': {
413
417
  const beeName = positional[1];
414
- const fromVersion = flags.maybeString("from") ?? "";
415
- const toVersion = flags.maybeString("to") ?? "";
418
+ const fromVersion = flags.maybeString('from') ?? '';
419
+ const toVersion = flags.maybeString('to') ?? '';
416
420
  if (!beeName || !fromVersion || !toVersion) {
417
- return { ok: false, error: "MISSING_ARG: release-diff requires <bee-name> and --from and --to" };
421
+ return {
422
+ ok: false,
423
+ error: 'MISSING_ARG: release-diff requires <bee-name> and --from and --to'
424
+ };
418
425
  }
419
426
  const stateDbPath = resolveStateDbPath({ home });
420
427
  const db = openStateDb(stateDbPath);
@@ -431,12 +438,12 @@ export async function runSediment(argv, { home }) {
431
438
  }
432
439
  }
433
440
  // --- Task 15d verbs ---
434
- case "export": {
441
+ case 'export': {
435
442
  const beeName = positional[1];
436
- const version = flags.maybeString("version") ?? "";
437
- const outPath = flags.maybeString("out") ?? "";
443
+ const version = flags.maybeString('version') ?? '';
444
+ const outPath = flags.maybeString('out') ?? '';
438
445
  if (!beeName || !version || !outPath) {
439
- return { ok: false, error: "MISSING_ARG: export requires <bee-name>, --version, --out" };
446
+ return { ok: false, error: 'MISSING_ARG: export requires <bee-name>, --version, --out' };
440
447
  }
441
448
  const stateDbPath = resolveStateDbPath({ home });
442
449
  const blobsDir = resolveBlobsDir({ home });
@@ -458,14 +465,14 @@ export async function runSediment(argv, { home }) {
458
465
  process.stderr.write("warning: 'peaks skill sediment export' is deprecated; use 'peaks loop export' or 'peaks bee export' (peaks.bundle/1, spec §7A.2)\n");
459
466
  return { ok: true, data: { outPath } };
460
467
  }
461
- case "import": {
468
+ case 'import': {
462
469
  const bundlePath = positional[1];
463
- const asNameRaw = flags.maybeString("as");
470
+ const asNameRaw = flags.maybeString('as');
464
471
  const asName = asNameRaw && asNameRaw.length > 0 ? asNameRaw : undefined;
465
472
  if (!bundlePath)
466
- return { ok: false, error: "MISSING_ARG: import requires <bundle-path>" };
473
+ return { ok: false, error: 'MISSING_ARG: import requires <bundle-path>' };
467
474
  if (!existsSync(bundlePath))
468
- return { ok: false, error: "BUNDLE_NOT_FOUND" };
475
+ return { ok: false, error: 'BUNDLE_NOT_FOUND' };
469
476
  const stateDbPath = resolveStateDbPath({ home });
470
477
  const blobsDir = resolveBlobsDir({ home });
471
478
  mkdirSync(blobsDir, { recursive: true });
@@ -491,8 +498,8 @@ export async function runSediment(argv, { home }) {
491
498
  process.stderr.write("warning: 'peaks skill sediment import' is deprecated; use 'peaks loop import' or 'peaks bee import' (peaks.bundle/1, spec §7A.2)\n");
492
499
  return { ok: true, data: { asName: asName ?? basename(bundlePath) } };
493
500
  }
494
- case "gc-blobs": {
495
- const dryRun = flags.bool("dry-run");
501
+ case 'gc-blobs': {
502
+ const dryRun = flags.bool('dry-run');
496
503
  const stateDbPath = resolveStateDbPath({ home });
497
504
  const blobsDir = resolveBlobsDir({ home });
498
505
  const db = openStateDb(stateDbPath);
@@ -508,46 +515,46 @@ export async function runSediment(argv, { home }) {
508
515
  db.close();
509
516
  }
510
517
  }
511
- case "search": {
512
- const query = positional[1] ?? flags.maybeString("q") ?? "";
518
+ case 'search': {
519
+ const query = positional[1] ?? flags.maybeString('q') ?? '';
513
520
  if (!query)
514
- return { ok: false, error: "MISSING_ARG: search requires <query>" };
521
+ return { ok: false, error: 'MISSING_ARG: search requires <query>' };
515
522
  const beesDir = resolveUserBeesDir({ home });
516
523
  const matches = [];
517
524
  const warnings = [];
518
525
  if (existsSync(beesDir)) {
519
526
  const q = query.toLowerCase();
520
527
  for (const name of readdirSync(beesDir)) {
521
- const manifestPath = join(beesDir, name, "manifest.json");
528
+ const manifestPath = join(beesDir, name, 'manifest.json');
522
529
  if (!existsSync(manifestPath))
523
530
  continue;
524
531
  let m;
525
532
  try {
526
- m = JSON.parse(readFileSync(manifestPath, "utf-8"));
533
+ m = JSON.parse(readFileSync(manifestPath, 'utf-8'));
527
534
  }
528
535
  catch (e) {
529
536
  const msg = e instanceof Error ? e.message : String(e);
530
537
  warnings.push(`skipped ${name}: ${msg}`);
531
538
  continue;
532
539
  }
533
- const haystack = `${m.name ?? ""} ${m.description ?? ""}`.toLowerCase();
540
+ const haystack = `${m.name ?? ''} ${m.description ?? ''}`.toLowerCase();
534
541
  if (haystack.includes(q)) {
535
542
  matches.push({
536
543
  name: m.name,
537
544
  description: m.description,
538
545
  source: m.source,
539
- promotion_status: m.promotion_status,
546
+ promotion_status: m.promotion_status
540
547
  });
541
548
  }
542
549
  }
543
550
  }
544
551
  return { ok: true, data: { matches, warnings } };
545
552
  }
546
- case "recent": {
547
- const sinceRaw = flags.maybeString("since") ?? "7d";
553
+ case 'recent': {
554
+ const sinceRaw = flags.maybeString('since') ?? '7d';
548
555
  const m = sinceRaw.match(/^(\d+)d$/);
549
556
  if (!m)
550
- return { ok: false, error: "MISSING_ARG: recent requires --since Nd (e.g. 7d)" };
557
+ return { ok: false, error: 'MISSING_ARG: recent requires --since Nd (e.g. 7d)' };
551
558
  const sinceDays = parseInt(m[1], 10);
552
559
  const cutoff = new Date(Date.now() - sinceDays * 24 * 60 * 60 * 1000).toISOString();
553
560
  const beesDir = resolveUserBeesDir({ home });
@@ -555,38 +562,38 @@ export async function runSediment(argv, { home }) {
555
562
  const warnings = [];
556
563
  if (existsSync(beesDir)) {
557
564
  for (const name of readdirSync(beesDir)) {
558
- const manifestPath = join(beesDir, name, "manifest.json");
565
+ const manifestPath = join(beesDir, name, 'manifest.json');
559
566
  if (!existsSync(manifestPath))
560
567
  continue;
561
568
  let b;
562
569
  try {
563
- b = JSON.parse(readFileSync(manifestPath, "utf-8"));
570
+ b = JSON.parse(readFileSync(manifestPath, 'utf-8'));
564
571
  }
565
572
  catch (e) {
566
573
  const msg = e instanceof Error ? e.message : String(e);
567
574
  warnings.push(`skipped ${name}: ${msg}`);
568
575
  continue;
569
576
  }
570
- if (typeof b.lastTouchedAt === "string" && b.lastTouchedAt >= cutoff) {
577
+ if (typeof b.lastTouchedAt === 'string' && b.lastTouchedAt >= cutoff) {
571
578
  matches.push({
572
579
  name: b.name,
573
580
  lastTouchedAt: b.lastTouchedAt,
574
- promotion_status: b.promotion_status,
581
+ promotion_status: b.promotion_status
575
582
  });
576
583
  }
577
584
  }
578
585
  }
579
586
  return { ok: true, data: { matches, warnings } };
580
587
  }
581
- case "show": {
588
+ case 'show': {
582
589
  const name = positional[1];
583
590
  if (!name)
584
- return { ok: false, error: "MISSING_ARG: show requires <name>" };
585
- const manifestPath = join(resolveUserBeesDir({ home }), name, "manifest.json");
591
+ return { ok: false, error: 'MISSING_ARG: show requires <name>' };
592
+ const manifestPath = join(resolveUserBeesDir({ home }), name, 'manifest.json');
586
593
  if (!existsSync(manifestPath))
587
- return { ok: false, error: "BEE_NOT_FOUND" };
594
+ return { ok: false, error: 'BEE_NOT_FOUND' };
588
595
  try {
589
- return { ok: true, data: JSON.parse(readFileSync(manifestPath, "utf-8")) };
596
+ return { ok: true, data: JSON.parse(readFileSync(manifestPath, 'utf-8')) };
590
597
  }
591
598
  catch (e) {
592
599
  const msg = e instanceof Error ? e.message : String(e);
@@ -594,14 +601,14 @@ export async function runSediment(argv, { home }) {
594
601
  }
595
602
  }
596
603
  default:
597
- return { ok: false, error: `UNKNOWN_VERB: ${verb ?? ""}` };
604
+ return { ok: false, error: `UNKNOWN_VERB: ${verb ?? ''}` };
598
605
  }
599
606
  }
600
607
  catch (e) {
601
608
  if (e instanceof SYSTEM_PATH_FORBIDDEN) {
602
609
  return { ok: false, error: e.message };
603
610
  }
604
- const msg = e instanceof Error ? e.message : typeof e === "string" ? e : String(e);
611
+ const msg = e instanceof Error ? e.message : typeof e === 'string' ? e : String(e);
605
612
  return { ok: false, error: msg };
606
613
  }
607
614
  }
@@ -618,10 +625,10 @@ export async function runSediment(argv, { home }) {
618
625
  * exists, so the lazy lookup is safe.
619
626
  */
620
627
  function getOrCreateSkillCmd(program) {
621
- const existing = program.commands.find((c) => c.name() === "skill");
628
+ const existing = program.commands.find((c) => c.name() === 'skill');
622
629
  if (existing !== undefined)
623
630
  return existing;
624
- return program.command("skill").description("Manage Peaks skills");
631
+ return program.command('skill').description('Manage Peaks skills');
625
632
  }
626
633
  /** Register the `peaks skill sediment <verb>` subcommand group.
627
634
  *
@@ -634,8 +641,8 @@ function getOrCreateSkillCmd(program) {
634
641
  export function registerSedimentCommands(program, io) {
635
642
  const skill = getOrCreateSkillCmd(program);
636
643
  skill
637
- .command("sediment <args...>")
638
- .description("Sediment pool operations (LLM-coordinated; see peaks-maker skill)")
644
+ .command('sediment <args...>')
645
+ .description('Sediment pool operations (LLM-coordinated; see peaks-maker skill)')
639
646
  .action(async (args) => {
640
647
  // D-018: peaks-loop's `state.db` (loop engineering + bee sediment pool)
641
648
  // lives at PEAKS_HOME-based path, NOT under the project root. The
@@ -20,7 +20,7 @@
20
20
  import { resolveCanonicalProjectRoot } from '../../services/config/config-service.js';
21
21
  import { getErrorMessage } from '../cli-helpers.js';
22
22
  import { HANDOFF_EXIT_CONDITIONS, STATES, emptySnapshot, isHandoffExitCondition, isState, read24hState, write24hState } from '../../services/24h-mode/index.js';
23
- import { applyAutoEngagePresenceMode } from '../../services/24h-mode/auto-engage.js';
23
+ import { applyAutoEngagePresenceMode, presenceModeAdvisory } from '../../services/24h-mode/auto-engage.js';
24
24
  function splitList(value) {
25
25
  if (!value)
26
26
  return [];
@@ -143,7 +143,20 @@ export function registerSession24hModeCommand(session, io) {
143
143
  const presenceMode = target === '24H_ACTIVE'
144
144
  ? applyAutoEngagePresenceMode({ projectRoot, sessionId: sid })
145
145
  : null;
146
- printJson(io, { ok: true, data: { ...next, path: result.path, presenceMode } }, merged);
146
+ // Slice H3 (rid=h3-24h-threshold-not-wired): a failed stamp used
147
+ // to live only in `data.presenceMode`, where nothing read it.
148
+ // Surface it at the envelope level so the caller cannot report a
149
+ // 24h threshold shift that the mode layer never recorded.
150
+ const advisory = presenceMode === null
151
+ ? { warnings: [], nextActions: [] }
152
+ : presenceModeAdvisory(presenceMode);
153
+ printJson(io, {
154
+ ok: true,
155
+ command: 'session.24h-mode.transition',
156
+ data: { ...next, path: result.path, presenceMode },
157
+ warnings: [...advisory.warnings],
158
+ nextActions: [...advisory.nextActions]
159
+ }, merged);
147
160
  }
148
161
  catch (error) {
149
162
  printError(io, '24H_STATE_WRITE_FAILED', getErrorMessage(error), merged);