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
@@ -52,9 +52,18 @@ function hasLegacyGlobalFields(raw) {
52
52
  */
53
53
  function promoteLegacyGlobalFieldsToSidecars(raw) {
54
54
  if (isRecord(raw.providers)) {
55
- const existing = readSidecarJson(providersConfigPath(), { version: SIDECAR_SCHEMA_VERSION, providers: {} });
56
- const mergedProviders = { ...(existing.providers ?? {}), ...raw.providers };
57
- writeSidecarJson(providersConfigPath(), { version: SIDECAR_SCHEMA_VERSION, providers: mergedProviders });
55
+ const existing = readSidecarJson(providersConfigPath(), {
56
+ version: SIDECAR_SCHEMA_VERSION,
57
+ providers: {}
58
+ });
59
+ const mergedProviders = {
60
+ ...(existing.providers ?? {}),
61
+ ...raw.providers
62
+ };
63
+ writeSidecarJson(providersConfigPath(), {
64
+ version: SIDECAR_SCHEMA_VERSION,
65
+ providers: mergedProviders
66
+ });
58
67
  }
59
68
  if (isRecord(raw.proxy) && typeof raw.proxy.httpProxy === 'string') {
60
69
  const httpProxy = raw.proxy.httpProxy;
@@ -104,7 +113,8 @@ function readJsonFile(path, validateBeforeRead, errorMessage = 'Config path must
104
113
  try {
105
114
  return JSON.parse(content);
106
115
  }
107
- catch { // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
116
+ catch {
117
+ // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
108
118
  return null;
109
119
  }
110
120
  }
@@ -125,7 +135,9 @@ function readUserJsonFile() {
125
135
  }
126
136
  function readProjectJsonFile(projectRoot) {
127
137
  const projectPath = getProjectConfigPath(projectRoot);
128
- return readJsonFile(projectPath, projectRoot && projectPath ? () => validateProjectBootstrapConfigPathForWrite(projectRoot, projectPath) : undefined, 'Project config path must stay inside the project root');
138
+ return readJsonFile(projectPath, projectRoot && projectPath
139
+ ? () => validateProjectBootstrapConfigPathForWrite(projectRoot, projectPath)
140
+ : undefined, 'Project config path must stay inside the project root');
129
141
  }
130
142
  function ensureDir(dirPath) {
131
143
  if (!existsSync(dirPath)) {
@@ -134,7 +146,10 @@ function ensureDir(dirPath) {
134
146
  }
135
147
  const UNSAFE_NESTED_PATH_SEGMENTS = new Set(['__proto__', 'constructor', 'prototype']);
136
148
  function getNestedPathParts(path) {
137
- return path.replace(/\[(\d+)\]/g, '.$1').split('.').filter(Boolean);
149
+ return path
150
+ .replace(/\[(\d+)\]/g, '.$1')
151
+ .split('.')
152
+ .filter(Boolean);
138
153
  }
139
154
  function hasUnsafeNestedPathSegment(parts) {
140
155
  return parts.some((part) => UNSAFE_NESTED_PATH_SEGMENTS.has(part));
@@ -146,7 +161,10 @@ function getNestedValue(obj, path) {
146
161
  }
147
162
  let current = obj;
148
163
  for (const part of parts) {
149
- if (current === null || current === undefined || typeof current !== 'object' || !Object.prototype.hasOwnProperty.call(current, part)) {
164
+ if (current === null ||
165
+ current === undefined ||
166
+ typeof current !== 'object' ||
167
+ !Object.prototype.hasOwnProperty.call(current, part)) {
150
168
  return undefined;
151
169
  }
152
170
  current = current[part];
@@ -161,7 +179,10 @@ function setNestedValue(obj, path, value) {
161
179
  let current = obj;
162
180
  for (let i = 0; i < parts.length - 1; i++) {
163
181
  const part = parts[i];
164
- if (!Object.prototype.hasOwnProperty.call(current, part) || typeof current[part] !== 'object' || current[part] === null || Array.isArray(current[part])) {
182
+ if (!Object.prototype.hasOwnProperty.call(current, part) ||
183
+ typeof current[part] !== 'object' ||
184
+ current[part] === null ||
185
+ Array.isArray(current[part])) {
165
186
  current[part] = {};
166
187
  }
167
188
  current = current[part];
@@ -206,13 +227,22 @@ export function readContextWindowTokensOverride(projectRoot) {
206
227
  }
207
228
  return undefined;
208
229
  }
209
- catch { // TODO(g2): legacy silent catch — never let config IO break a probe (grace: 1 minor release, v2.14.0)
230
+ catch {
231
+ // TODO(g2): legacy silent catch — never let config IO break a probe (grace: 1 minor release, v2.14.0)
210
232
  return undefined;
211
233
  }
212
234
  }
213
235
  export function isSensitiveConfigPath(path) {
214
236
  const normalized = path.toLowerCase().replace(/[^a-z0-9]/g, '');
215
- return normalized.includes('apikey') || normalized.includes('accesskey') || normalized.includes('privatekey') || normalized.includes('token') || normalized.includes('secret') || normalized.includes('password') || normalized.includes('bearer') || normalized.includes('credential') || normalized.includes('auth');
237
+ return (normalized.includes('apikey') ||
238
+ normalized.includes('accesskey') ||
239
+ normalized.includes('privatekey') ||
240
+ normalized.includes('token') ||
241
+ normalized.includes('secret') ||
242
+ normalized.includes('password') ||
243
+ normalized.includes('bearer') ||
244
+ normalized.includes('credential') ||
245
+ normalized.includes('auth'));
216
246
  }
217
247
  /**
218
248
  * 2.0.1 slim-config contract: `~/.peaks/config.json` only stores
@@ -259,7 +289,11 @@ function isProviderBaseUrlPath(path) {
259
289
  function isValidProviderBaseUrl(value) {
260
290
  try {
261
291
  const url = new URL(value);
262
- return url.protocol === 'https:' && url.username.length === 0 && url.password.length === 0 && url.search.length === 0 && url.hash.length === 0;
292
+ return (url.protocol === 'https:' &&
293
+ url.username.length === 0 &&
294
+ url.password.length === 0 &&
295
+ url.search.length === 0 &&
296
+ url.hash.length === 0);
263
297
  }
264
298
  catch {
265
299
  return false;
@@ -293,7 +327,12 @@ function validateProviderConfig(partial) {
293
327
  function isValidProxyUrl(value) {
294
328
  try {
295
329
  const url = new URL(value);
296
- return (url.protocol === 'http:' || url.protocol === 'https:') && url.username.length === 0 && url.password.length === 0 && url.pathname === '/' && url.search.length === 0 && url.hash.length === 0;
330
+ return ((url.protocol === 'http:' || url.protocol === 'https:') &&
331
+ url.username.length === 0 &&
332
+ url.password.length === 0 &&
333
+ url.pathname === '/' &&
334
+ url.search.length === 0 &&
335
+ url.hash.length === 0);
297
336
  }
298
337
  catch {
299
338
  return false;
@@ -311,10 +350,13 @@ function isRecord(value) {
311
350
  return value !== null && typeof value === 'object' && !Array.isArray(value);
312
351
  }
313
352
  function isSafeConfigSegment(value) {
314
- return /^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(value) && !value.includes('..') && !value.endsWith('.');
353
+ return (/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(value) && !value.includes('..') && !value.endsWith('.'));
315
354
  }
316
355
  function toArtifactRemoteRepoConfig(value) {
317
- if (!isRecord(value) || (value.provider !== 'github' && value.provider !== 'gitlab') || typeof value.owner !== 'string' || typeof value.name !== 'string') {
356
+ if (!isRecord(value) ||
357
+ (value.provider !== 'github' && value.provider !== 'gitlab') ||
358
+ typeof value.owner !== 'string' ||
359
+ typeof value.name !== 'string') {
318
360
  return null;
319
361
  }
320
362
  if (!isSafeConfigSegment(value.owner) || !isSafeConfigSegment(value.name)) {
@@ -339,7 +381,12 @@ function toWorkspaceConfig(value) {
339
381
  if (!isRecord(value))
340
382
  return null;
341
383
  const { workspaceId, name, rootPath, installedCapabilityIds } = value;
342
- if (typeof workspaceId !== 'string' || !isSafeConfigSegment(workspaceId) || typeof name !== 'string' || typeof rootPath !== 'string' || !Array.isArray(installedCapabilityIds) || !installedCapabilityIds.every((id) => typeof id === 'string')) {
384
+ if (typeof workspaceId !== 'string' ||
385
+ !isSafeConfigSegment(workspaceId) ||
386
+ typeof name !== 'string' ||
387
+ typeof rootPath !== 'string' ||
388
+ !Array.isArray(installedCapabilityIds) ||
389
+ !installedCapabilityIds.every((id) => typeof id === 'string')) {
343
390
  return null;
344
391
  }
345
392
  const artifactRepo = toArtifactRemoteRepoConfig(value.artifactRepo);
@@ -354,18 +401,29 @@ function toWorkspaceConfig(value) {
354
401
  };
355
402
  }
356
403
  function toWorkspaceConfigs(value) {
357
- return Array.isArray(value) ? value.map(toWorkspaceConfig).filter((workspace) => workspace !== null) : [];
404
+ return Array.isArray(value)
405
+ ? value
406
+ .map(toWorkspaceConfig)
407
+ .filter((workspace) => workspace !== null)
408
+ : [];
358
409
  }
359
410
  function toProviderModelConfig(value) {
360
411
  if (!isRecord(value))
361
412
  return {};
362
413
  return {
363
- ...(typeof value.model === 'string' && value.model.trim().length > 0 ? { model: value.model.trim() } : {}),
414
+ ...(typeof value.model === 'string' && value.model.trim().length > 0
415
+ ? { model: value.model.trim() }
416
+ : {}),
364
417
  ...(typeof value.baseUrl === 'string' ? { baseUrl: value.baseUrl } : {}),
365
418
  ...(typeof value.apiKey === 'string' ? { apiKey: value.apiKey } : {})
366
419
  };
367
420
  }
368
- const TOKEN_CONFIG_KEYS = new Set(['AnthropicApiKey', 'OpenAiApiKey', 'GitHubToken', 'GitLabToken']);
421
+ const TOKEN_CONFIG_KEYS = new Set([
422
+ 'AnthropicApiKey',
423
+ 'OpenAiApiKey',
424
+ 'GitHubToken',
425
+ 'GitLabToken'
426
+ ]);
369
427
  function toTokenRef(value) {
370
428
  if (!isRecord(value))
371
429
  return null;
@@ -399,12 +457,17 @@ function toTokenConfig(value) {
399
457
  function toModelProviderConfig(value) {
400
458
  if (!isRecord(value))
401
459
  return {};
402
- return Object.fromEntries(Object.entries(value).map(([providerId, providerConfig]) => [providerId, toProviderModelConfig(providerConfig)]));
460
+ return Object.fromEntries(Object.entries(value).map(([providerId, providerConfig]) => [
461
+ providerId,
462
+ toProviderModelConfig(providerConfig)
463
+ ]));
403
464
  }
404
465
  function toProxyConfig(value) {
405
466
  if (!isRecord(value))
406
467
  return null;
407
- return typeof value.httpProxy === 'string' && isValidProxyUrl(value.httpProxy) ? { httpProxy: value.httpProxy } : null;
468
+ return typeof value.httpProxy === 'string' && isValidProxyUrl(value.httpProxy)
469
+ ? { httpProxy: value.httpProxy }
470
+ : null;
408
471
  }
409
472
  function getProjectWriteTarget() {
410
473
  const projectRoot = findProjectRoot(process.cwd());
@@ -464,7 +527,9 @@ function toPeaksConfig(value) {
464
527
  return {
465
528
  ...(typeof value.version === 'string' ? { version: value.version } : {}),
466
529
  ...(typeof value.language === 'string' ? { language: value.language } : {}),
467
- ...(typeof value.model === 'string' && ['haiku', 'sonnet', 'opus'].includes(value.model) ? { model: value.model } : {}),
530
+ ...(typeof value.model === 'string' && ['haiku', 'sonnet', 'opus'].includes(value.model)
531
+ ? { model: value.model }
532
+ : {}),
468
533
  ...(typeof value.economyMode === 'boolean' ? { economyMode: value.economyMode } : {}),
469
534
  ...(typeof value.swarmMode === 'boolean' ? { swarmMode: value.swarmMode } : {}),
470
535
  ...(isRecord(value.tokens) ? { tokens: toTokenConfig(value.tokens) } : {}),
@@ -497,7 +562,9 @@ function sanitizeWorkspacePartial(partial) {
497
562
  if (Array.isArray(result.workspaces)) {
498
563
  result.workspaces = toWorkspaceConfigs(result.workspaces);
499
564
  }
500
- if (typeof result.currentWorkspace !== 'string' && result.currentWorkspace !== null && result.currentWorkspace !== undefined) {
565
+ if (typeof result.currentWorkspace !== 'string' &&
566
+ result.currentWorkspace !== null &&
567
+ result.currentWorkspace !== undefined) {
501
568
  delete result.currentWorkspace;
502
569
  }
503
570
  return result;
@@ -506,7 +573,10 @@ export function writeConfig(partial, layer = 'user') {
506
573
  if (!isConfigLayer(layer)) {
507
574
  throw new Error('Invalid config layer');
508
575
  }
509
- if (layer === 'project' && (partial.providers !== undefined || partial.proxy !== undefined || containsSensitiveConfigValue(partial))) {
576
+ if (layer === 'project' &&
577
+ (partial.providers !== undefined ||
578
+ partial.proxy !== undefined ||
579
+ containsSensitiveConfigValue(partial))) {
510
580
  throw new Error('Sensitive config keys must be stored in the user config layer');
511
581
  }
512
582
  validateProviderConfig(partial);
@@ -538,7 +608,12 @@ export function getConfig(options = {}) {
538
608
  ...userConfig,
539
609
  ...projectConfigWithoutProxy
540
610
  };
541
- const config = isRecord(source) ? { ...source, ...(source.tokens !== undefined ? { tokens: toTokenConfig(source.tokens) } : {}) } : source;
611
+ const config = isRecord(source)
612
+ ? {
613
+ ...source,
614
+ ...(source.tokens !== undefined ? { tokens: toTokenConfig(source.tokens) } : {})
615
+ }
616
+ : source;
542
617
  if (options.key !== undefined) {
543
618
  return getNestedValue(config, options.key);
544
619
  }
@@ -553,7 +628,11 @@ export function setConfig(options) {
553
628
  throw new Error(`Legacy config key "${options.key}" is no longer stored in ~/.peaks/config.json. ` +
554
629
  'Set it under <project>/.peaks/preferences.json (e.g. `peaks preferences set --key <key> --value <value>`).');
555
630
  }
556
- if (layer === 'project' && (isProviderConfigPath(options.key) || isProxyConfigPath(options.key) || isSensitiveConfigPath(options.key) || containsSensitiveConfigValue(options.value))) {
631
+ if (layer === 'project' &&
632
+ (isProviderConfigPath(options.key) ||
633
+ isProxyConfigPath(options.key) ||
634
+ isSensitiveConfigPath(options.key) ||
635
+ containsSensitiveConfigValue(options.value))) {
557
636
  throw new Error('Sensitive config keys must be stored in the user config layer');
558
637
  }
559
638
  if (options.key === 'providers') {
@@ -573,8 +652,8 @@ export function setConfig(options) {
573
652
  const targetPath = projectTarget?.configPath ?? getUserConfigPath();
574
653
  ensureDir(dirname(targetPath));
575
654
  const existing = projectTarget
576
- ? readJsonFile(targetPath, () => validateProjectBootstrapConfigPathForWrite(projectTarget.projectRoot, targetPath)) ?? {}
577
- : readJsonFile(targetPath, () => validateUserConfigPathForWrite(targetPath)) ?? {};
655
+ ? (readJsonFile(targetPath, () => validateProjectBootstrapConfigPathForWrite(projectTarget.projectRoot, targetPath)) ?? {})
656
+ : (readJsonFile(targetPath, () => validateUserConfigPathForWrite(targetPath)) ?? {});
578
657
  const updated = { ...existing };
579
658
  setNestedValue(updated, options.key, options.value);
580
659
  const content = JSON.stringify(updated, null, 2);
@@ -599,8 +678,8 @@ function writeRawWorkspaceData(data, layer) {
599
678
  const targetPath = projectTarget?.configPath ?? getUserConfigPath();
600
679
  ensureDir(dirname(targetPath));
601
680
  const existing = projectTarget
602
- ? readJsonFile(targetPath, () => validateProjectBootstrapConfigPathForWrite(projectTarget.projectRoot, targetPath)) ?? {}
603
- : readJsonFile(targetPath, () => validateUserConfigPathForWrite(targetPath)) ?? {};
681
+ ? (readJsonFile(targetPath, () => validateProjectBootstrapConfigPathForWrite(projectTarget.projectRoot, targetPath)) ?? {})
682
+ : (readJsonFile(targetPath, () => validateUserConfigPathForWrite(targetPath)) ?? {});
604
683
  const merged = { ...existing, ...data };
605
684
  const content = JSON.stringify(merged, null, 2);
606
685
  if (projectTarget) {
@@ -651,7 +730,9 @@ export function removeWorkspace(workspaceId, layer = 'user') {
651
730
  if (idx < 0)
652
731
  return false;
653
732
  const updatedWorkspaces = workspaces.filter((w) => w.workspaceId !== workspaceId);
654
- const currentWorkspace = config.currentWorkspace === workspaceId ? updatedWorkspaces[0]?.workspaceId ?? null : config.currentWorkspace ?? null;
733
+ const currentWorkspace = config.currentWorkspace === workspaceId
734
+ ? (updatedWorkspaces[0]?.workspaceId ?? null)
735
+ : (config.currentWorkspace ?? null);
655
736
  writeRawWorkspaceData({ workspaces: updatedWorkspaces, currentWorkspace }, layer);
656
737
  return true;
657
738
  }
@@ -689,7 +770,9 @@ function findWorkspaceForPath(workspaces, path) {
689
770
  return matches.reduce((best, match) => match.rootPath.length > best.rootPath.length ? match : best).workspace;
690
771
  }
691
772
  function getWorkspaceArtifactRoot(workspace) {
692
- return workspace.artifactStorage?.localPath ? resolve(workspace.artifactStorage.localPath) : resolve(workspace.rootPath, '.peaks', 'artifacts');
773
+ return workspace.artifactStorage?.localPath
774
+ ? resolve(workspace.artifactStorage.localPath)
775
+ : resolve(workspace.rootPath, '.peaks', 'artifacts');
693
776
  }
694
777
  function ensureArtifactWorkspaceMarker(workspace) {
695
778
  const artifactRoot = getWorkspaceArtifactRoot(workspace);
@@ -68,7 +68,8 @@ export async function getStrongestModelIdAsync(config, runtimeProbeDisabled = fa
68
68
  if (probed && probed.length > 0)
69
69
  return probed;
70
70
  }
71
- catch { // TODO(g2): best-effort runtime probe — fall through to back-compat default is intentional
71
+ catch {
72
+ // TODO(g2): best-effort runtime probe — fall through to back-compat default is intentional
72
73
  // best-effort — fall through to back-compat default
73
74
  }
74
75
  }
@@ -101,5 +102,7 @@ export function getEconomyAwareExecutionModelId(config) {
101
102
  // (matches the pre-slice implicit default from DEFAULT_CONFIG.economyMode = true). Only an
102
103
  // explicit `economyMode === false` switches execution to the strongest planner/reviewer
103
104
  // model (resolved dynamically per Slice 2026-07-09 add-zcode-adapter A.3).
104
- return config.economyMode !== false ? getConfiguredExecutionModelId(config.providers) : getStrongestModelId(config);
105
+ return config.economyMode !== false
106
+ ? getConfiguredExecutionModelId(config.providers)
107
+ : getStrongestModelId(config);
105
108
  }
@@ -3,7 +3,12 @@ const EMPTY_PROXY = { version: SIDECAR_SCHEMA_VERSION, httpProxy: null };
3
3
  export function isValidProxyUrl(value) {
4
4
  try {
5
5
  const url = new URL(value);
6
- return (url.protocol === 'http:' || url.protocol === 'https:') && url.username.length === 0 && url.password.length === 0 && url.pathname === '/' && url.search.length === 0 && url.hash.length === 0;
6
+ return ((url.protocol === 'http:' || url.protocol === 'https:') &&
7
+ url.username.length === 0 &&
8
+ url.password.length === 0 &&
9
+ url.pathname === '/' &&
10
+ url.search.length === 0 &&
11
+ url.hash.length === 0);
7
12
  }
8
13
  catch {
9
14
  return false;
@@ -16,7 +16,10 @@ function isRecord(value) {
16
16
  return value !== null && typeof value === 'object' && !Array.isArray(value);
17
17
  }
18
18
  function sanitizeArtifactRemoteRepo(value) {
19
- if (!isRecord(value) || (value.provider !== 'github' && value.provider !== 'gitlab') || typeof value.owner !== 'string' || typeof value.name !== 'string')
19
+ if (!isRecord(value) ||
20
+ (value.provider !== 'github' && value.provider !== 'gitlab') ||
21
+ typeof value.owner !== 'string' ||
22
+ typeof value.name !== 'string')
20
23
  return null;
21
24
  if (!isSafeSegment(value.owner) || !isSafeSegment(value.name))
22
25
  return null;
@@ -37,7 +40,12 @@ function sanitizeWorkspace(value) {
37
40
  if (!isRecord(value))
38
41
  return null;
39
42
  const { workspaceId, name, rootPath, installedCapabilityIds } = value;
40
- if (typeof workspaceId !== 'string' || !isSafeSegment(workspaceId) || typeof name !== 'string' || typeof rootPath !== 'string' || !Array.isArray(installedCapabilityIds) || !installedCapabilityIds.every((id) => typeof id === 'string'))
43
+ if (typeof workspaceId !== 'string' ||
44
+ !isSafeSegment(workspaceId) ||
45
+ typeof name !== 'string' ||
46
+ typeof rootPath !== 'string' ||
47
+ !Array.isArray(installedCapabilityIds) ||
48
+ !installedCapabilityIds.every((id) => typeof id === 'string'))
41
49
  return null;
42
50
  const artifactRepo = sanitizeArtifactRemoteRepo(value.artifactRepo);
43
51
  const artifactStorage = sanitizeArtifactStorage(value.artifactStorage);
@@ -51,7 +59,9 @@ function sanitizeWorkspace(value) {
51
59
  };
52
60
  }
53
61
  function sanitizeWorkspaces(value) {
54
- return Array.isArray(value) ? value.map(sanitizeWorkspace).filter((w) => w !== null) : [];
62
+ return Array.isArray(value)
63
+ ? value.map(sanitizeWorkspace).filter((w) => w !== null)
64
+ : [];
55
65
  }
56
66
  function loadWorkspacesSidecar() {
57
67
  const raw = readSidecarJson(workspacesConfigPath(), EMPTY_WORKSPACES);
@@ -103,7 +113,9 @@ export function removeWorkspace(workspaceId) {
103
113
  if (idx < 0)
104
114
  return false;
105
115
  const nextWorkspaces = data.workspaces.filter((w) => w.workspaceId !== workspaceId);
106
- const nextCurrent = data.currentWorkspace === workspaceId ? nextWorkspaces[0]?.workspaceId ?? null : data.currentWorkspace;
116
+ const nextCurrent = data.currentWorkspace === workspaceId
117
+ ? (nextWorkspaces[0]?.workspaceId ?? null)
118
+ : data.currentWorkspace;
107
119
  saveWorkspacesSidecar({ ...data, workspaces: nextWorkspaces, currentWorkspace: nextCurrent });
108
120
  return true;
109
121
  }
@@ -126,7 +138,7 @@ function findWorkspaceForPath(workspaces, path) {
126
138
  });
127
139
  if (matches.length === 0)
128
140
  return null;
129
- return matches.reduce((best, match) => (match.rootPath.length > best.rootPath.length ? match : best)).workspace;
141
+ return matches.reduce((best, match) => match.rootPath.length > best.rootPath.length ? match : best).workspace;
130
142
  }
131
143
  export function getWorkspaceConfigForPath(path) {
132
144
  return findWorkspaceForPath(getWorkspaces(), path);
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Input types for the IDE-aware compact dispatcher (`auto-compact-dispatcher.ts`).
3
+ *
4
+ * Split out of `auto-compact-dispatcher.ts` (file-size cap campaign) so the
5
+ * dispatcher stays under the raw-line cap. The dispatcher re-exports every
6
+ * name declared here, so existing importers keep using
7
+ * `./auto-compact-dispatcher.js` unchanged.
8
+ */
9
+ export type CompactTarget = 'main' | 'sub-agent';
10
+ export interface DispatchIdeCompactInput {
11
+ readonly projectRoot: string;
12
+ readonly sessionId: string;
13
+ readonly env?: NodeJS.ProcessEnv | undefined;
14
+ /** Spawn timeout (ms). Default 30s — Claude Code `/compact` is sync. */
15
+ readonly timeoutMs?: number | undefined;
16
+ /**
17
+ * Slice 2026-06-28-code-mode-bypass-fix (defect #4): which session
18
+ * the compact should target. Default `'main'` — the orchestrator
19
+ * (peaks-code body) runs in the main-session Claude Code window and
20
+ * wants to compress *its* context, not a sub-agent's. Sub-agent
21
+ * shells that spawn their own `peaks code auto-compact` flow pass
22
+ * `'sub-agent'` to preserve the legacy shell-spawn behaviour.
23
+ *
24
+ * Behaviour matrix, keyed on the ADAPTER'S DECLARED pathway only
25
+ * — never on the adapter's name (slice
26
+ * 2026-09-12-auto-compact-vendor-neutrality):
27
+ * - target='main' → llm-self-compress (write intent; main LLM
28
+ * fires its compact command on its next turn).
29
+ * - target='sub-agent'→ shell-exec stub (DEPRECATED — no host
30
+ * CLI spawn; returns envelope with
31
+ * `pathway: 'shell-exec'` for legacy
32
+ * contract only — see rid-031).
33
+ * An adapter with no registered `compact` profile returns noop for
34
+ * BOTH targets; an adapter whose profile serves the main session is
35
+ * dispatched regardless of which IDE it is.
36
+ */
37
+ readonly target?: CompactTarget | undefined;
38
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Input types for the IDE-aware compact dispatcher (`auto-compact-dispatcher.ts`).
3
+ *
4
+ * Split out of `auto-compact-dispatcher.ts` (file-size cap campaign) so the
5
+ * dispatcher stays under the raw-line cap. The dispatcher re-exports every
6
+ * name declared here, so existing importers keep using
7
+ * `./auto-compact-dispatcher.js` unchanged.
8
+ */
9
+ export {};
@@ -1,34 +1,6 @@
1
1
  import type { CompactDispatchResult } from './auto-compact-types.js';
2
- export type CompactTarget = 'main' | 'sub-agent';
3
- export interface DispatchIdeCompactInput {
4
- readonly projectRoot: string;
5
- readonly sessionId: string;
6
- readonly env?: NodeJS.ProcessEnv | undefined;
7
- /** Spawn timeout (ms). Default 30s — Claude Code `/compact` is sync. */
8
- readonly timeoutMs?: number | undefined;
9
- /**
10
- * Slice 2026-06-28-code-mode-bypass-fix (defect #4): which session
11
- * the compact should target. Default `'main'` — the orchestrator
12
- * (peaks-code body) runs in the main-session Claude Code window and
13
- * wants to compress *its* context, not a sub-agent's. Sub-agent
14
- * shells that spawn their own `peaks code auto-compact` flow pass
15
- * `'sub-agent'` to preserve the legacy shell-spawn behaviour.
16
- *
17
- * Behaviour matrix, keyed on the ADAPTER'S DECLARED pathway only
18
- * — never on the adapter's name (slice
19
- * 2026-09-12-auto-compact-vendor-neutrality):
20
- * - target='main' → llm-self-compress (write intent; main LLM
21
- * fires its compact command on its next turn).
22
- * - target='sub-agent'→ shell-exec stub (DEPRECATED — no host
23
- * CLI spawn; returns envelope with
24
- * `pathway: 'shell-exec'` for legacy
25
- * contract only — see rid-031).
26
- * An adapter with no registered `compact` profile returns noop for
27
- * BOTH targets; an adapter whose profile serves the main session is
28
- * dispatched regardless of which IDE it is.
29
- */
30
- readonly target?: CompactTarget | undefined;
31
- }
2
+ import type { CompactTarget, DispatchIdeCompactInput } from './auto-compact-dispatcher-input.js';
3
+ export type { CompactTarget, DispatchIdeCompactInput };
32
4
  /**
33
5
  * Dispatch compact via the active IDE's registered pathway.
34
6
  *
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Input type for the auto context-percent probe (`auto-compact-reader.ts`).
3
+ *
4
+ * Split out of `auto-compact-reader.ts` (file-size cap campaign) so the reader
5
+ * stays under the raw-line cap. The reader re-exports every name declared
6
+ * here, so existing importers keep using `./auto-compact-reader.js` unchanged.
7
+ */
8
+ export interface ReadContextPercentInput {
9
+ readonly projectRoot: string;
10
+ readonly sessionId: string;
11
+ /**
12
+ * Outer (harness / IDE) session id — the id the IDE uses to name its
13
+ * transcript / session files. Resolved by the caller (env signal → bound
14
+ * session meta) and passed through to the adapter's
15
+ * `readContextPercentFallback`. Optional: when unresolved, the adapter
16
+ * fallback returns null → conservative-fallback.
17
+ */
18
+ readonly outerSessionId?: string | undefined;
19
+ readonly env?: NodeJS.ProcessEnv | undefined;
20
+ /**
21
+ * Slice 2026-07-31-rid-002: explicit byte count from `--prompt-size <bytes>`.
22
+ * When set to a finite non-negative number, short-circuits the entire
23
+ * env / statusline / transcript chain with `source: 'user-overridden'`.
24
+ * Mac escape hatch — some IDEs (e.g. Claude Code on macOS) do NOT
25
+ * inject their context-percent env-var into PreToolUse sub-shells, so the
26
+ * user (or a hook wrapper) can inject the bytes they observed themselves.
27
+ * Priority P0 — above everything else.
28
+ */
29
+ readonly promptSizeBytes?: number | undefined;
30
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Input type for the auto context-percent probe (`auto-compact-reader.ts`).
3
+ *
4
+ * Split out of `auto-compact-reader.ts` (file-size cap campaign) so the reader
5
+ * stays under the raw-line cap. The reader re-exports every name declared
6
+ * here, so existing importers keep using `./auto-compact-reader.js` unchanged.
7
+ */
8
+ export {};
@@ -1,28 +1,7 @@
1
1
  import type { ContextPercentProbe } from './auto-compact-types.js';
2
2
  import { type HarnessWindowLocation, type HarnessWindowReadResult, type HarnessWindowSyncResult } from './harness-window-config.js';
3
- export interface ReadContextPercentInput {
4
- readonly projectRoot: string;
5
- readonly sessionId: string;
6
- /**
7
- * Outer (harness / IDE) session id — the id the IDE uses to name its
8
- * transcript / session files. Resolved by the caller (env signal → bound
9
- * session meta) and passed through to the adapter's
10
- * `readContextPercentFallback`. Optional: when unresolved, the adapter
11
- * fallback returns null → conservative-fallback.
12
- */
13
- readonly outerSessionId?: string | undefined;
14
- readonly env?: NodeJS.ProcessEnv | undefined;
15
- /**
16
- * Slice 2026-07-31-rid-002: explicit byte count from `--prompt-size <bytes>`.
17
- * When set to a finite non-negative number, short-circuits the entire
18
- * env / statusline / transcript chain with `source: 'user-overridden'`.
19
- * Mac escape hatch — some IDEs (e.g. Claude Code on macOS) do NOT
20
- * inject their context-percent env-var into PreToolUse sub-shells, so the
21
- * user (or a hook wrapper) can inject the bytes they observed themselves.
22
- * Priority P0 — above everything else.
23
- */
24
- readonly promptSizeBytes?: number | undefined;
25
- }
3
+ import type { ReadContextPercentInput } from './auto-compact-reader-input.js';
4
+ export type { ReadContextPercentInput };
26
5
  /**
27
6
  * Resolve WHERE the harness auto-compact window lives, for the IDE the
28
7
  * current env selects. Returns `null` when either half is undeclared:
@@ -113,4 +92,3 @@ export declare function readContextPercent(input: ReadContextPercentInput): Cont
113
92
  export declare const _internal: {
114
93
  readEnvPercent: typeof readEnvPercent;
115
94
  };
116
- export {};
@@ -238,7 +238,10 @@ export function readContextPercent(input) {
238
238
  // peaks-loop is the one that wrote it, so the adapter may self-correct
239
239
  // its own earlier resolution without ever overruling a human's pin.
240
240
  ...(harnessWindowTokens !== undefined
241
- ? { harnessWindowTokens, harnessWindowPeakWritten: harnessWindowState?.peakWritten === true }
241
+ ? {
242
+ harnessWindowTokens,
243
+ harnessWindowPeakWritten: harnessWindowState?.peakWritten === true
244
+ }
242
245
  : {})
243
246
  });
244
247
  if (fallback)
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Auto-compact threshold ratios and the `CompactTrigger` decision shape.
3
+ *
4
+ * Split out of `auto-compact-types.ts` (file-size cap campaign) so the shared
5
+ * types module stays under the raw-line cap. `auto-compact-types.ts`
6
+ * re-exports every name declared here, so existing importers keep using
7
+ * `./auto-compact-types.js` unchanged.
8
+ */
9
+ export declare const AUTO_COMPACT_SOFT_WARN_RATIO = 0.5;
10
+ export declare const AUTO_COMPACT_AUTO_FIRE_RATIO = 0.8;
11
+ export declare const AUTO_COMPACT_PRE_COMPACT_RATIO = 0.85;
12
+ export declare const AUTO_COMPACT_RED_LINE_RATIO = 0.95;
13
+ export declare const AUTO_COMPACT_THRESHOLD_RATIO = 0.8;
14
+ /** Single source of truth for "what should we do at ratio X?" */
15
+ export type CompactTrigger = {
16
+ kind: 'none';
17
+ } | {
18
+ kind: 'soft-warn';
19
+ ratio: number;
20
+ message: string;
21
+ }
22
+ /**
23
+ * Part 22: auto-fire zone (0.80 ≤ ratio < 0.85). peaks-loop
24
+ * preempts and runs `peaks code auto-compact` itself
25
+ * without LLM involvement. The LLM is not asked to "decide";
26
+ * the toolkit is applied synchronously.
27
+ */
28
+ | {
29
+ kind: 'auto-fire';
30
+ ratio: number;
31
+ message: string;
32
+ }
33
+ /**
34
+ * Pre-compact zone (0.85 ≤ ratio < 0.95): LLM-runner can still
35
+ * pre-empt the compact for one in-flight sub-agent or one
36
+ * todo row, but peaks-loop flags this as the last safe
37
+ * window. Kept for backward compat; in practice peaks-loop
38
+ * auto-fired at 0.80 already.
39
+ */
40
+ | {
41
+ kind: 'pre-compact';
42
+ ratio: number;
43
+ message: string;
44
+ toolkitReady: true;
45
+ }
46
+ /**
47
+ * Red line (ratio ≥ 0.95): peaks-loop asks the harness to compact and says
48
+ * it is waiting. Dispatch is NOT blocked — see `redLineRequested`.
49
+ */
50
+ | {
51
+ kind: 'red-line';
52
+ ratio: number;
53
+ message: string;
54
+ };
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Auto-compact threshold ratios and the `CompactTrigger` decision shape.
3
+ *
4
+ * Split out of `auto-compact-types.ts` (file-size cap campaign) so the shared
5
+ * types module stays under the raw-line cap. `auto-compact-types.ts`
6
+ * re-exports every name declared here, so existing importers keep using
7
+ * `./auto-compact-types.js` unchanged.
8
+ */
9
+ export const AUTO_COMPACT_SOFT_WARN_RATIO = 0.5;
10
+ // Part 22: auto-fire threshold (was 0.85 pre-compact zone where
11
+ // the LLM had to decide; LLM misjudged 0.85–0.95 and only fired
12
+ // at 0.95, which let the LLM time the run anyway). Lowered to
13
+ // 0.80 so peaks-loop auto-fires compact without LLM involvement
14
+ // — the LLM keeps working, peaks-loop preempts when ratio crosses
15
+ // the new threshold.
16
+ export const AUTO_COMPACT_AUTO_FIRE_RATIO = 0.8;
17
+ export const AUTO_COMPACT_PRE_COMPACT_RATIO = 0.85;
18
+ export const AUTO_COMPACT_RED_LINE_RATIO = 0.95;
19
+ export const AUTO_COMPACT_THRESHOLD_RATIO = AUTO_COMPACT_AUTO_FIRE_RATIO;