peaks-loop 4.0.53 → 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 (1053) hide show
  1. package/CHANGELOG.md +85 -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 +175 -11
  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 +81 -22
  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 +69 -34
  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 +21 -2
  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.d.ts +23 -0
  224. package/dist/cli/commands/sub-agent-shared.js +40 -1
  225. package/dist/cli/commands/sub-agent-shutdown-commands.js +17 -9
  226. package/dist/cli/commands/swarm-commands.d.ts +1 -1
  227. package/dist/cli/commands/swarm-commands.js +13 -6
  228. package/dist/cli/commands/tech-commands-helpers.d.ts +37 -0
  229. package/dist/cli/commands/tech-commands-helpers.js +24 -0
  230. package/dist/cli/commands/tech-commands.d.ts +2 -29
  231. package/dist/cli/commands/tech-commands.js +15 -28
  232. package/dist/cli/commands/test-commands.js +27 -7
  233. package/dist/cli/commands/upgrade-commands.d.ts +1 -1
  234. package/dist/cli/commands/user-touchpoint-commands.js +1 -3
  235. package/dist/cli/commands/verdict-aggregate-command.d.ts +1 -1
  236. package/dist/cli/commands/verdict-aggregate-command.js +20 -7
  237. package/dist/cli/commands/vm-commands.js +48 -19
  238. package/dist/cli/commands/wave-plan-commands.js +5 -2
  239. package/dist/cli/commands/web-commands.js +14 -4
  240. package/dist/cli/commands/web-lifecycle-commands.js +5 -3
  241. package/dist/cli/commands/workflow-commands.d.ts +1 -1
  242. package/dist/cli/commands/workflow-commands.js +64 -29
  243. package/dist/cli/commands/workflow-lifecycle-commands.js +19 -17
  244. package/dist/cli/commands/workflow-plan-commands-actions.d.ts +20 -0
  245. package/dist/cli/commands/workflow-plan-commands-actions.js +115 -0
  246. package/dist/cli/commands/workflow-plan-commands-session.d.ts +17 -0
  247. package/dist/cli/commands/workflow-plan-commands-session.js +59 -0
  248. package/dist/cli/commands/workflow-plan-commands.d.ts +10 -21
  249. package/dist/cli/commands/workflow-plan-commands.js +15 -141
  250. package/dist/cli/commands/workspace/clean-command.js +4 -1
  251. package/dist/cli/commands/workspace/helpers.js +2 -1
  252. package/dist/cli/commands/workspace/init-command.js +80 -20
  253. package/dist/cli/commands/workspace/reconcile-command.js +3 -1
  254. package/dist/cli/commands/workspace-commands.d.ts +1 -1
  255. package/dist/cli/commands/workspace-commands.js +1 -1
  256. package/dist/cli/commands/worktree-auth-commands.d.ts +1 -1
  257. package/dist/cli/commands/worktree-auth-commands.js +16 -169
  258. package/dist/cli/commands/worktree-auth-grant-command.d.ts +14 -0
  259. package/dist/cli/commands/worktree-auth-grant-command.js +118 -0
  260. package/dist/cli/commands/worktree-auth-manage-commands.d.ts +17 -0
  261. package/dist/cli/commands/worktree-auth-manage-commands.js +128 -0
  262. package/dist/cli/commands/worktree-lease-commands.d.ts +1 -1
  263. package/dist/cli/commands/worktree-lease-commands.js +65 -37
  264. package/dist/cli/index.js +6 -2
  265. package/dist/cli/program.js +6 -3
  266. package/dist/hooks/pre-tool-use-sub-agent.js +1 -6
  267. package/dist/reporters/bdd-reporter.js +9 -3
  268. package/dist/services/24h-mode/auto-engage.d.ts +19 -0
  269. package/dist/services/24h-mode/auto-engage.js +35 -0
  270. package/dist/services/24h-mode/decider.js +5 -1
  271. package/dist/services/24h-mode/store.js +4 -2
  272. package/dist/services/adapter/adapter-registry.js +20 -8
  273. package/dist/services/adapter/adapter.d.ts +2 -2
  274. package/dist/services/adapter/auto-adapter.d.ts +2 -2
  275. package/dist/services/adapter/auto-adapter.js +1 -1
  276. package/dist/services/adapter/claude-adapter.d.ts +1 -1
  277. package/dist/services/adapter/claude-adapter.js +8 -8
  278. package/dist/services/adapter/codex-adapter.d.ts +2 -2
  279. package/dist/services/adapter/codex-adapter.js +20 -8
  280. package/dist/services/adapter/copilot-adapter.d.ts +2 -2
  281. package/dist/services/adapter/copilot-adapter.js +20 -8
  282. package/dist/services/artifacts/artifact-prerequisites.js +44 -8
  283. package/dist/services/artifacts/artifact-service.js +3 -1
  284. package/dist/services/artifacts/artifact-template-bodies.d.ts +12 -0
  285. package/dist/services/artifacts/artifact-template-bodies.js +165 -0
  286. package/dist/services/artifacts/artifact-templates.js +26 -168
  287. package/dist/services/artifacts/request-artifact-service.js +14 -7
  288. package/dist/services/artifacts/request-artifact-state-helpers.d.ts +3 -2
  289. package/dist/services/artifacts/request-artifact-state-helpers.js +3 -5
  290. package/dist/services/artifacts/workspace-artifact-helpers.d.ts +28 -0
  291. package/dist/services/artifacts/workspace-artifact-helpers.js +54 -0
  292. package/dist/services/artifacts/workspace-service.d.ts +3 -22
  293. package/dist/services/artifacts/workspace-service.js +10 -60
  294. package/dist/services/audit/artifact-writer.js +21 -21
  295. package/dist/services/audit/audit-goal-service.js +2 -2
  296. package/dist/services/audit/backing-detector.js +7 -4
  297. package/dist/services/audit/classifier.js +3 -3
  298. package/dist/services/audit/decision-writer.js +13 -9
  299. package/dist/services/audit/enforcer-liveness.js +1 -1
  300. package/dist/services/audit/enforcers/active-skill-resolver.js +15 -7
  301. package/dist/services/audit/enforcers/design-draft-confirm.js +4 -4
  302. package/dist/services/audit/enforcers/lint-audit-regression.js +10 -5
  303. package/dist/services/audit/enforcers/lint-bee-runtime-contract.js +16 -8
  304. package/dist/services/audit/enforcers/lint-catalog-governance.js +8 -4
  305. package/dist/services/audit/enforcers/lint-output-style.js +4 -2
  306. package/dist/services/audit/enforcers/lint-peaks-code-runtime.js +8 -3
  307. package/dist/services/audit/enforcers/lint-peaks-skill-runtime.js +8 -3
  308. package/dist/services/audit/enforcers/lint-peaks-ui-sc-txt-runtime.js +20 -20
  309. package/dist/services/audit/enforcers/lint-prd-artifact-handoff.js +5 -5
  310. package/dist/services/audit/enforcers/lint-prd-source-snapshot.d.ts +1 -1
  311. package/dist/services/audit/enforcers/lint-prd-source-snapshot.js +5 -5
  312. package/dist/services/audit/enforcers/lint-qa-gateguard-and-runtime.js +10 -10
  313. package/dist/services/audit/enforcers/lint-rd-handoff-coverage.js +10 -8
  314. package/dist/services/audit/enforcers/lint-reference-shape.js +50 -18
  315. package/dist/services/audit/enforcers/lint-skill-presence-mandatory.js +5 -5
  316. package/dist/services/audit/enforcers/lint-style.js +44 -11
  317. package/dist/services/audit/enforcers/lint-workflow-shape.js +4 -2
  318. package/dist/services/audit/enforcers/login-gate.js +2 -6
  319. package/dist/services/audit/enforcers/mock-placement.js +2 -2
  320. package/dist/services/audit/enforcers/no-root-pollution.js +38 -9
  321. package/dist/services/audit/enforcers/pre-rd-scan.js +1 -1
  322. package/dist/services/audit/enforcers/prototype-fidelity.js +1 -1
  323. package/dist/services/audit/enforcers/resume-detection.js +5 -4
  324. package/dist/services/audit/prose-ratio-calculator.js +1 -1
  325. package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.d.ts +39 -0
  326. package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.js +205 -0
  327. package/dist/services/audit/red-line-catalog-p2-a-lint-style.d.ts +52 -0
  328. package/dist/services/audit/red-line-catalog-p2-a-lint-style.js +205 -0
  329. package/dist/services/audit/red-line-catalog-p2-a.js +3 -374
  330. package/dist/services/audit/red-line-catalog-p2-b.js +26 -26
  331. package/dist/services/audit/red-line-catalog.js +26 -38
  332. package/dist/services/audit/red-lines-service.js +64 -49
  333. package/dist/services/audit/scanners/openspec-scanner.js +2 -2
  334. package/dist/services/audit/scanners/rules-tree-scanner.js +2 -2
  335. package/dist/services/audit/scanners/skills-tree-scanner.js +2 -2
  336. package/dist/services/audit/static-service.js +3 -3
  337. package/dist/services/audit-independent/index.d.ts +2 -2
  338. package/dist/services/audit-independent/index.js +2 -2
  339. package/dist/services/audit-independent/perf-audit-service.js +19 -8
  340. package/dist/services/audit-independent/security-audit-service.js +31 -16
  341. package/dist/services/autonomous-swarm/autonomous-swarm-service.js +75 -46
  342. package/dist/services/best-practice/output-formatter.js +7 -1
  343. package/dist/services/capability-audit-service/cross-check.js +11 -5
  344. package/dist/services/capability-audit-service/runner.js +15 -7
  345. package/dist/services/capability-baseline/store.js +16 -4
  346. package/dist/services/capability-baseline/types.js +15 -3
  347. package/dist/services/capability-baseline/validator.js +43 -7
  348. package/dist/services/capability-guard-runner/contracts/J02.js +36 -6
  349. package/dist/services/capability-guard-runner/contracts/J03.js +20 -11
  350. package/dist/services/capability-guard-runner/contracts/J04.js +24 -15
  351. package/dist/services/capability-guard-runner/contracts/J05.js +26 -10
  352. package/dist/services/capability-guard-runner/contracts/J07.js +8 -2
  353. package/dist/services/capability-guard-runner/contracts/J08.js +22 -5
  354. package/dist/services/capability-guard-runner/contracts/J10.js +6 -2
  355. package/dist/services/capability-guard-runner/contracts/J11.d.ts +5 -0
  356. package/dist/services/capability-guard-runner/contracts/J11.js +14 -2
  357. package/dist/services/capability-guard-runner/contracts/J12.js +12 -3
  358. package/dist/services/capability-guard-runner/diff.js +1 -5
  359. package/dist/services/changeset/changeset-check-service.js +1 -3
  360. package/dist/services/classify/classify-service.js +20 -8
  361. package/dist/services/classify/classify-types.js +22 -9
  362. package/dist/services/code/auto-compact-lifecycle.js +62 -39
  363. package/dist/services/code/auto-compact-modes.js +2 -2
  364. package/dist/services/code/auto-compact-orchestrator.js +14 -9
  365. package/dist/services/code/batch-heartbeat-poller.d.ts +10 -0
  366. package/dist/services/code/batch-heartbeat-poller.js +17 -1
  367. package/dist/services/code/compact-event-settle-types.d.ts +80 -0
  368. package/dist/services/code/compact-event-settle-types.js +20 -0
  369. package/dist/services/code/compact-event-settle.d.ts +3 -68
  370. package/dist/services/code/compact-event-settle.js +14 -10
  371. package/dist/services/code/dag-orchestrator.js +32 -26
  372. package/dist/services/code/job-shape-decision.js +3 -1
  373. package/dist/services/code/mode-gate-types.d.ts +57 -0
  374. package/dist/services/code/mode-gate-types.js +67 -0
  375. package/dist/services/code/mode-gate.d.ts +4 -58
  376. package/dist/services/code/mode-gate.js +24 -60
  377. package/dist/services/code/orchestrator-can-do-advisories.d.ts +30 -0
  378. package/dist/services/code/orchestrator-can-do-advisories.js +81 -0
  379. package/dist/services/code/orchestrator-can-do-probes.d.ts +30 -0
  380. package/dist/services/code/orchestrator-can-do-probes.js +77 -0
  381. package/dist/services/code/orchestrator-can-do.d.ts +11 -22
  382. package/dist/services/code/orchestrator-can-do.js +37 -137
  383. package/dist/services/code/post-compact-checkpoint.d.ts +28 -0
  384. package/dist/services/code/post-compact-checkpoint.js +57 -0
  385. package/dist/services/code/post-compact-detector.js +16 -48
  386. package/dist/services/code/step-08-gate.d.ts +4 -3
  387. package/dist/services/code/step-08-gate.js +21 -9
  388. package/dist/services/code-review/ecc-bridge.js +23 -23
  389. package/dist/services/codegraph/codegraph-autorefresh.js +56 -39
  390. package/dist/services/codegraph/codegraph-config-repair-writer.d.ts +44 -0
  391. package/dist/services/codegraph/codegraph-config-repair-writer.js +116 -14
  392. package/dist/services/codegraph/codegraph-exclude-integrity.js +4 -1
  393. package/dist/services/codegraph/codegraph-exclude-repair.d.ts +23 -1
  394. package/dist/services/codegraph/codegraph-exclude-repair.js +7 -2
  395. package/dist/services/codegraph/codegraph-index-integrity.js +1 -1
  396. package/dist/services/codegraph/codegraph-preflight-service.d.ts +3 -26
  397. package/dist/services/codegraph/codegraph-preflight-service.js +16 -37
  398. package/dist/services/codegraph/codegraph-preflight-structure.d.ts +32 -0
  399. package/dist/services/codegraph/codegraph-preflight-structure.js +33 -0
  400. package/dist/services/codegraph/codegraph-process-runner.js +12 -1
  401. package/dist/services/codegraph/codegraph-service.js +9 -1
  402. package/dist/services/compact/request-transition-hook.js +2 -1
  403. package/dist/services/compact/suggest-service.d.ts +3 -61
  404. package/dist/services/compact/suggest-service.js +9 -12
  405. package/dist/services/compact/suggest-types.d.ts +76 -0
  406. package/dist/services/compact/suggest-types.js +10 -0
  407. package/dist/services/compact-history/compact-history-service.js +2 -2
  408. package/dist/services/compact-statusline/compact-lifecycle-store.d.ts +2 -32
  409. package/dist/services/compact-statusline/compact-lifecycle-store.js +7 -12
  410. package/dist/services/compact-statusline/compact-lifecycle-types.d.ts +32 -0
  411. package/dist/services/compact-statusline/compact-lifecycle-types.js +8 -0
  412. package/dist/services/compact-statusline/compact-statusline-cell-table.d.ts +42 -0
  413. package/dist/services/compact-statusline/compact-statusline-cell-table.js +63 -0
  414. package/dist/services/compact-statusline/compact-statusline-service.d.ts +4 -21
  415. package/dist/services/compact-statusline/compact-statusline-service.js +9 -101
  416. package/dist/services/compact-statusline/compact-statusline-state.d.ts +4 -0
  417. package/dist/services/compact-statusline/compact-statusline-state.js +50 -0
  418. package/dist/services/config/config-migration.js +2 -2
  419. package/dist/services/config/config-restore.js +1 -1
  420. package/dist/services/config/config-rollback.js +1 -1
  421. package/dist/services/config/config-safety.js +28 -10
  422. package/dist/services/config/config-service.js +114 -31
  423. package/dist/services/config/model-routing.js +5 -2
  424. package/dist/services/config/proxy-service.js +6 -1
  425. package/dist/services/config/workspace-state-service.js +17 -5
  426. package/dist/services/context/auto-compact-dispatcher-input.d.ts +38 -0
  427. package/dist/services/context/auto-compact-dispatcher-input.js +9 -0
  428. package/dist/services/context/auto-compact-dispatcher.d.ts +2 -30
  429. package/dist/services/context/auto-compact-reader-input.d.ts +30 -0
  430. package/dist/services/context/auto-compact-reader-input.js +8 -0
  431. package/dist/services/context/auto-compact-reader.d.ts +2 -24
  432. package/dist/services/context/auto-compact-reader.js +4 -1
  433. package/dist/services/context/auto-compact-thresholds.d.ts +54 -0
  434. package/dist/services/context/auto-compact-thresholds.js +19 -0
  435. package/dist/services/context/auto-compact-types.d.ts +2 -46
  436. package/dist/services/context/auto-compact-types.js +1 -11
  437. package/dist/services/context/build-dispatch-system-prompt.js +2 -2
  438. package/dist/services/context/collector.js +8 -10
  439. package/dist/services/context/context-audit-hint.js +7 -5
  440. package/dist/services/context/context-audit-keys.d.ts +15 -0
  441. package/dist/services/context/context-audit-keys.js +77 -0
  442. package/dist/services/context/context-audit-limits.d.ts +20 -0
  443. package/dist/services/context/context-audit-limits.js +31 -0
  444. package/dist/services/context/context-audit-scan.d.ts +19 -0
  445. package/dist/services/context/context-audit-scan.js +246 -0
  446. package/dist/services/context/context-audit-types.d.ts +65 -0
  447. package/dist/services/context/context-audit-types.js +10 -0
  448. package/dist/services/context/context-audit.d.ts +13 -59
  449. package/dist/services/context/context-audit.js +38 -254
  450. package/dist/services/context/context-builder.js +4 -4
  451. package/dist/services/context/context-schema.d.ts +1 -1
  452. package/dist/services/context/context-schema.js +13 -13
  453. package/dist/services/context/doc-retriever.js +2 -2
  454. package/dist/services/context/harness-context-witness.js +43 -24
  455. package/dist/services/context/harness-window-config.js +27 -7
  456. package/dist/services/context/ide-detect.js +2 -1
  457. package/dist/services/context/index.d.ts +1 -1
  458. package/dist/services/context/memory-index-reader.js +3 -9
  459. package/dist/services/context/memory-preflight-config.js +3 -5
  460. package/dist/services/context/memory-preflight-service.d.ts +2 -20
  461. package/dist/services/context/memory-preflight-service.js +37 -68
  462. package/dist/services/context/memory-preflight-support.d.ts +48 -0
  463. package/dist/services/context/memory-preflight-support.js +56 -0
  464. package/dist/services/context/post-compact-reinjection.js +3 -3
  465. package/dist/services/context/renderer.js +7 -3
  466. package/dist/services/context/spillover-store.js +3 -1
  467. package/dist/services/context/summary-view.js +1 -1
  468. package/dist/services/context/threshold.js +2 -2
  469. package/dist/services/context/tokenizer.js +3 -3
  470. package/dist/services/crystallization/crystallization-brief-schema.d.ts +80 -0
  471. package/dist/services/crystallization/crystallization-brief-schema.js +159 -0
  472. package/dist/services/crystallization/crystallization-service.d.ts +7 -7
  473. package/dist/services/crystallization/crystallization-service.js +56 -55
  474. package/dist/services/crystallization/crystallization-store.d.ts +2 -2
  475. package/dist/services/crystallization/crystallization-store.js +37 -20
  476. package/dist/services/crystallization/crystallization-types.d.ts +4 -56
  477. package/dist/services/crystallization/crystallization-types.js +31 -184
  478. package/dist/services/crystallization/evidence-brief-builder.d.ts +3 -3
  479. package/dist/services/crystallization/evidence-brief-builder.js +32 -38
  480. package/dist/services/crystallization/index.d.ts +4 -4
  481. package/dist/services/crystallization/index.js +4 -4
  482. package/dist/services/dashboard/project-dashboard-service.js +7 -1
  483. package/dist/services/dispatch/await-batch-helpers.d.ts +55 -0
  484. package/dist/services/dispatch/await-batch-helpers.js +206 -0
  485. package/dist/services/dispatch/await-batch.d.ts +50 -7
  486. package/dist/services/dispatch/await-batch.js +97 -194
  487. package/dist/services/dispatch/batch-counter.js +2 -1
  488. package/dist/services/dispatch/conflict-replay.js +2 -2
  489. package/dist/services/dispatch/contract-store.js +5 -2
  490. package/dist/services/dispatch/dispatch-record-input-types.d.ts +81 -0
  491. package/dist/services/dispatch/dispatch-record-input-types.js +1 -0
  492. package/dist/services/dispatch/dispatch-record-types.d.ts +6 -73
  493. package/dist/services/dispatch/dispatch-record-upgrade-fields.d.ts +72 -0
  494. package/dist/services/dispatch/dispatch-record-upgrade-fields.js +242 -0
  495. package/dist/services/dispatch/dispatch-record-upgrade-guards.d.ts +15 -0
  496. package/dist/services/dispatch/dispatch-record-upgrade-guards.js +55 -0
  497. package/dist/services/dispatch/dispatch-record-upgrade.d.ts +2 -4
  498. package/dist/services/dispatch/dispatch-record-upgrade.js +21 -213
  499. package/dist/services/dispatch/dispatch-record-writer.js +54 -26
  500. package/dist/services/dispatch/dispatch-sub-agent.js +7 -2
  501. package/dist/services/dispatch/e2e-fixtures.js +1 -1
  502. package/dist/services/dispatch/isolation-lease.js +39 -17
  503. package/dist/services/dispatch/merge-back-runner.js +51 -11
  504. package/dist/services/dispatch/service-shutdown.js +4 -1
  505. package/dist/services/dispatch/slice-dag-types.d.ts +116 -0
  506. package/dist/services/dispatch/slice-dag-types.js +41 -0
  507. package/dist/services/dispatch/slice-dag.d.ts +3 -109
  508. package/dist/services/dispatch/slice-dag.js +13 -36
  509. package/dist/services/dispatch/sub-agent-batch-await.d.ts +47 -0
  510. package/dist/services/dispatch/sub-agent-batch-await.js +73 -0
  511. package/dist/services/dispatch/sub-agent-dispatcher-types.d.ts +122 -0
  512. package/dist/services/dispatch/sub-agent-dispatcher-types.js +12 -0
  513. package/dist/services/dispatch/sub-agent-dispatcher.d.ts +3 -145
  514. package/dist/services/dispatch/sub-agent-dispatcher.js +14 -70
  515. package/dist/services/dispatch/test-tool-detection.js +12 -1
  516. package/dist/services/doc/doc-generator.js +19 -4
  517. package/dist/services/doctor/doctor-service/checks/check-id-schema.js +16 -8
  518. package/dist/services/doctor/doctor-service/checks/codegraph-capability.d.ts +7 -2
  519. package/dist/services/doctor/doctor-service/checks/codegraph-capability.js +26 -8
  520. package/dist/services/doctor/doctor-service/checks/codegraph-exclude-integrity.js +16 -8
  521. package/dist/services/doctor/doctor-service/checks/codegraph-index-integrity.js +16 -8
  522. package/dist/services/doctor/doctor-service/checks/dist-source-version.js +18 -9
  523. package/dist/services/doctor/doctor-service/checks/ecc-hooks-schema-drift.js +20 -10
  524. package/dist/services/doctor/doctor-service/checks/gateguard-conflict.js +18 -9
  525. package/dist/services/doctor/doctor-service/checks/l3-memory-health.js +25 -11
  526. package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.js +12 -6
  527. package/dist/services/doctor/doctor-service/checks/multi-binary-drift.d.ts +7 -16
  528. package/dist/services/doctor/doctor-service/checks/multi-binary-drift.js +50 -70
  529. package/dist/services/doctor/doctor-service/checks/schema-validity.js +5 -1
  530. package/dist/services/doctor/doctor-service/checks/skill-presence.js +4 -2
  531. package/dist/services/doctor/doctor-service/checks/statusline-install.js +8 -4
  532. package/dist/services/doctor/doctor-service/checks/statusline-runtime.js +8 -4
  533. package/dist/services/doctor/doctor-service/checks/user-config.js +4 -2
  534. package/dist/services/doctor/doctor-service/checks/workspace-init.js +8 -4
  535. package/dist/services/doctor/doctor-service/checks/workspace-layout.js +19 -11
  536. package/dist/services/doctor/doctor-service/index.js +4 -2
  537. package/dist/services/doctor/doctor-service/multi-binary-drift-helpers.d.ts +40 -0
  538. package/dist/services/doctor/doctor-service/multi-binary-drift-helpers.js +49 -0
  539. package/dist/services/doctor/doctor-service/plugin-registry.js +1 -1
  540. package/dist/services/doctor/doctor-service/probe-types.d.ts +210 -0
  541. package/dist/services/doctor/doctor-service/probe-types.js +14 -0
  542. package/dist/services/doctor/doctor-service/types.d.ts +7 -197
  543. package/dist/services/doctor/index.d.ts +1 -1
  544. package/dist/services/doctor/index.js +1 -1
  545. package/dist/services/env/shell-probe.js +8 -2
  546. package/dist/services/evidence/evidence-body-builders.d.ts +23 -0
  547. package/dist/services/evidence/evidence-body-builders.js +197 -0
  548. package/dist/services/evidence/evidence-generator.js +16 -189
  549. package/dist/services/evolution/evolution-constraints.d.ts +43 -0
  550. package/dist/services/evolution/evolution-constraints.js +54 -0
  551. package/dist/services/evolution/evolution-evaluation-schema.d.ts +43 -0
  552. package/dist/services/evolution/evolution-evaluation-schema.js +43 -0
  553. package/dist/services/evolution/evolution-service.d.ts +6 -6
  554. package/dist/services/evolution/evolution-service.js +58 -58
  555. package/dist/services/evolution/evolution-store.d.ts +2 -2
  556. package/dist/services/evolution/evolution-store.js +37 -51
  557. package/dist/services/evolution/evolution-types.d.ts +2 -22
  558. package/dist/services/evolution/evolution-types.js +41 -101
  559. package/dist/services/evolution/independent-evaluator-runner.d.ts +3 -3
  560. package/dist/services/evolution/independent-evaluator-runner.js +20 -22
  561. package/dist/services/evolution/regression-skeptic-runner.d.ts +2 -2
  562. package/dist/services/evolution/regression-skeptic-runner.js +18 -18
  563. package/dist/services/feedback/feedback-promotion-service.js +48 -12
  564. package/dist/services/feedback/promotion-artifact-evidence.d.ts +2 -16
  565. package/dist/services/feedback/promotion-artifact-evidence.js +6 -83
  566. package/dist/services/feedback/promotion-artifact-json-evidence.d.ts +29 -0
  567. package/dist/services/feedback/promotion-artifact-json-evidence.js +39 -0
  568. package/dist/services/feedback/promotion-source-comments.d.ts +47 -0
  569. package/dist/services/feedback/promotion-source-comments.js +61 -0
  570. package/dist/services/final-review/final-review-contract.d.ts +26 -0
  571. package/dist/services/final-review/final-review-contract.js +14 -0
  572. package/dist/services/final-review/final-review-delivery.d.ts +63 -0
  573. package/dist/services/final-review/final-review-delivery.js +124 -0
  574. package/dist/services/final-review/final-review-evidence-budget.d.ts +125 -0
  575. package/dist/services/final-review/final-review-evidence-budget.js +218 -0
  576. package/dist/services/final-review/final-review-evidence-collect.d.ts +4 -0
  577. package/dist/services/final-review/final-review-evidence-collect.js +230 -0
  578. package/dist/services/final-review/final-review-evidence-sources.d.ts +138 -0
  579. package/dist/services/final-review/final-review-evidence-sources.js +139 -0
  580. package/dist/services/final-review/final-review-fifth-dim.d.ts +8 -0
  581. package/dist/services/final-review/final-review-fifth-dim.js +20 -0
  582. package/dist/services/final-review/final-review-gates.d.ts +119 -0
  583. package/dist/services/final-review/final-review-gates.js +214 -0
  584. package/dist/services/final-review/final-review-output-budget.d.ts +88 -0
  585. package/dist/services/final-review/final-review-output-budget.js +161 -0
  586. package/dist/services/final-review/final-review-prompt.d.ts +35 -0
  587. package/dist/services/final-review/final-review-prompt.js +112 -0
  588. package/dist/services/final-review/final-review-reviewer.d.ts +57 -0
  589. package/dist/services/final-review/final-review-reviewer.js +95 -0
  590. package/dist/services/final-review/final-review-runner.d.ts +3 -0
  591. package/dist/services/final-review/final-review-runner.js +158 -0
  592. package/dist/services/final-review/final-review-service.d.ts +119 -373
  593. package/dist/services/final-review/final-review-service.js +48 -1380
  594. package/dist/services/final-review/final-review-verdicts.d.ts +60 -0
  595. package/dist/services/final-review/final-review-verdicts.js +91 -0
  596. package/dist/services/final-review/index.d.ts +3 -3
  597. package/dist/services/final-review/index.js +2 -2
  598. package/dist/services/final-review/pre-post-diff.js +32 -29
  599. package/dist/services/fixture/fixture-capture-service.js +14 -6
  600. package/dist/services/fresh-context/trigger-scan.js +13 -2
  601. package/dist/services/fuzzy-matching/fuzzy-match-service.js +1 -1
  602. package/dist/services/fuzzy-matching/fzf-pick-service.js +6 -1
  603. package/dist/services/hooks/pre-tool-code-gate.js +2 -2
  604. package/dist/services/hooks/presence-marker-detector.js +12 -2
  605. package/dist/services/hooks/worktree-authorization-gate.js +21 -7
  606. package/dist/services/ide/adapters/claude-code-adapter.js +30 -17
  607. package/dist/services/ide/adapters/codex-adapter.js +3 -5
  608. package/dist/services/ide/adapters/cursor-adapter.js +3 -5
  609. package/dist/services/ide/adapters/hermes-adapter.js +2 -4
  610. package/dist/services/ide/adapters/openclaw-adapter.js +2 -4
  611. package/dist/services/ide/adapters/qoder-adapter.js +2 -4
  612. package/dist/services/ide/adapters/tongyi-lingma-adapter.js +1 -1
  613. package/dist/services/ide/adapters/trae-adapter.js +3 -5
  614. package/dist/services/ide/adapters/zcode-adapter.js +8 -7
  615. package/dist/services/ide/current-model-detector.js +2 -1
  616. package/dist/services/ide/ide-compact-types.d.ts +153 -0
  617. package/dist/services/ide/ide-compact-types.js +1 -0
  618. package/dist/services/ide/ide-registry.js +1 -1
  619. package/dist/services/ide/ide-types.d.ts +7 -145
  620. package/dist/services/ide/resource-profile.js +1 -1
  621. package/dist/services/ide/shared/atomic-json.js +2 -1
  622. package/dist/services/impact/impact-scan-service.js +12 -5
  623. package/dist/services/job/job-commit-verification.d.ts +73 -0
  624. package/dist/services/job/job-commit-verification.js +72 -0
  625. package/dist/services/job/job-orchestrator.d.ts +42 -0
  626. package/dist/services/job/job-orchestrator.js +110 -10
  627. package/dist/services/job/job-progress-store.d.ts +75 -5
  628. package/dist/services/job/job-progress-store.js +83 -6
  629. package/dist/services/job/job-rotation.d.ts +1 -1
  630. package/dist/services/job/job-rotation.js +5 -1
  631. package/dist/services/job/job-state-store.js +2 -2
  632. package/dist/services/job/job-types.js +49 -20
  633. package/dist/services/job/subagent-job-wrapper.d.ts +1 -1
  634. package/dist/services/job/subagent-job-wrapper.js +5 -1
  635. package/dist/services/job-snapshot/snapshot.js +2 -2
  636. package/dist/services/karpathy-cost/karpathy-cost-check-service.js +23 -13
  637. package/dist/services/legacy/legacy-detector.js +51 -5
  638. package/dist/services/lint/detect-eslint.js +10 -4
  639. package/dist/services/lint/detect-ocr-18.js +11 -3
  640. package/dist/services/lint/eslint-runner-support.d.ts +22 -0
  641. package/dist/services/lint/eslint-runner-support.js +185 -0
  642. package/dist/services/lint/eslint-runner-types.d.ts +69 -0
  643. package/dist/services/lint/eslint-runner-types.js +11 -0
  644. package/dist/services/lint/eslint-runner.d.ts +4 -56
  645. package/dist/services/lint/eslint-runner.js +24 -178
  646. package/dist/services/lint/npx-resolver.js +1 -3
  647. package/dist/services/lint/ocr-18-acquire.js +15 -4
  648. package/dist/services/lint/ocr-multilang-adapter.js +4 -5
  649. package/dist/services/llm/anthropic-runner.js +4 -1
  650. package/dist/services/log/log-commands-service.js +2 -6
  651. package/dist/services/log/logger.js +15 -12
  652. package/dist/services/log/retention.js +3 -2
  653. package/dist/services/loop/evaluator-dispatcher.js +78 -42
  654. package/dist/services/loop/loop-bee-relation-service.d.ts +4 -4
  655. package/dist/services/loop/loop-bee-relation-service.js +36 -40
  656. package/dist/services/loop/loop-bee-relation-store.d.ts +3 -3
  657. package/dist/services/loop/loop-bee-relation-store.js +9 -11
  658. package/dist/services/loop/loop-bee-relation-types.d.ts +1 -1
  659. package/dist/services/loop/loop-bee-relation-types.js +14 -25
  660. package/dist/services/loop/loop-release-service.d.ts +2 -2
  661. package/dist/services/loop/loop-release-service.js +3 -3
  662. package/dist/services/loop/loop-release-store.d.ts +2 -2
  663. package/dist/services/loop/loop-release-store.js +4 -6
  664. package/dist/services/loop/loop-release-types.d.ts +1 -1
  665. package/dist/services/loop/loop-release-types.js +21 -31
  666. package/dist/services/loop/monotonic-guard-types.d.ts +51 -0
  667. package/dist/services/loop/monotonic-guard-types.js +9 -0
  668. package/dist/services/loop/monotonic-guard.d.ts +2 -43
  669. package/dist/services/loop/monotonic-runner-types.d.ts +63 -0
  670. package/dist/services/loop/monotonic-runner-types.js +17 -0
  671. package/dist/services/loop/monotonic-runner.d.ts +3 -34
  672. package/dist/services/loop/monotonic-runner.js +10 -20
  673. package/dist/services/loop/run-driver.js +16 -8
  674. package/dist/services/loop/spec-service.d.ts +0 -5
  675. package/dist/services/loop/spec-service.js +49 -9
  676. package/dist/services/memory/llm-reranker-core.d.ts +108 -0
  677. package/dist/services/memory/llm-reranker-core.js +105 -0
  678. package/dist/services/memory/llm-reranker.d.ts +3 -94
  679. package/dist/services/memory/llm-reranker.js +13 -102
  680. package/dist/services/memory/memory-ingest-service.d.ts +1 -22
  681. package/dist/services/memory/memory-ingest-service.js +29 -76
  682. package/dist/services/memory/memory-ingest-support.d.ts +23 -0
  683. package/dist/services/memory/memory-ingest-support.js +81 -0
  684. package/dist/services/memory/memory-rotate-service.js +41 -8
  685. package/dist/services/memory/memory-search-service.js +8 -4
  686. package/dist/services/memory/project-context-service.js +26 -5
  687. package/dist/services/memory/project-memory-service/index/kind-dispatch.d.ts +2 -7
  688. package/dist/services/memory/project-memory-service/index/kind-dispatch.js +17 -136
  689. package/dist/services/memory/project-memory-service/index/project-memory-plan-exec.d.ts +7 -0
  690. package/dist/services/memory/project-memory-service/index/project-memory-plan-exec.js +150 -0
  691. package/dist/services/memory/project-memory-service/index/ranking.js +6 -3
  692. package/dist/services/memory/project-memory-service/index/reindex.js +14 -5
  693. package/dist/services/memory/project-memory-service/index.d.ts +1 -1
  694. package/dist/services/memory/project-memory-service/index.js +1 -1
  695. package/dist/services/memory/project-memory-service/memory-kinds.d.ts +31 -0
  696. package/dist/services/memory/project-memory-service/memory-kinds.js +87 -0
  697. package/dist/services/memory/project-memory-service/parsers/frontmatter-parse.d.ts +24 -0
  698. package/dist/services/memory/project-memory-service/parsers/frontmatter-parse.js +104 -0
  699. package/dist/services/memory/project-memory-service/parsers/frontmatter.d.ts +2 -24
  700. package/dist/services/memory/project-memory-service/parsers/frontmatter.js +28 -79
  701. package/dist/services/memory/project-memory-service/parsers/markdown-pure.js +15 -3
  702. package/dist/services/memory/project-memory-service/store/atomic-write.d.ts +59 -0
  703. package/dist/services/memory/project-memory-service/store/atomic-write.js +189 -17
  704. package/dist/services/memory/project-memory-service/store/paths.js +2 -1
  705. package/dist/services/memory/project-memory-service/types.d.ts +3 -31
  706. package/dist/services/memory/project-memory-service/types.js +1 -76
  707. package/dist/services/migrate-skill-name/migrate.js +1 -1
  708. package/dist/services/migrate-skill-name/schema.js +1 -1
  709. package/dist/services/mode/mode-enforcement.js +4 -2
  710. package/dist/services/mode/mode-status-service.d.ts +27 -9
  711. package/dist/services/mode/mode-status-service.js +64 -12
  712. package/dist/services/observability/aggregation-helpers.d.ts +22 -0
  713. package/dist/services/observability/aggregation-helpers.js +65 -0
  714. package/dist/services/observability/aggregation-types.d.ts +66 -0
  715. package/dist/services/observability/aggregation-types.js +34 -0
  716. package/dist/services/observability/aggregation.d.ts +5 -53
  717. package/dist/services/observability/aggregation.js +17 -80
  718. package/dist/services/observability/jsonl-store.js +2 -1
  719. package/dist/services/observability/observability-schema.d.ts +71 -0
  720. package/dist/services/observability/observability-schema.js +64 -0
  721. package/dist/services/observability/observability-service.d.ts +3 -56
  722. package/dist/services/observability/observability-service.js +9 -49
  723. package/dist/services/openspec/coverage-evidence-reader.js +18 -11
  724. package/dist/services/openspec/openspec-archive-service.js +31 -24
  725. package/dist/services/openspec/openspec-init-service.js +8 -2
  726. package/dist/services/openspec/openspec-propose-from-doctor-service.js +1 -1
  727. package/dist/services/openspec/openspec-scan-service.js +4 -1
  728. package/dist/services/openspec/openspec-validate-service.js +26 -5
  729. package/dist/services/perf/perf-baseline-service.js +2 -6
  730. package/dist/services/polyrepo/polyrepo-dispatcher.js +2 -1
  731. package/dist/services/polyrepo/polyrepo-scanner.js +4 -1
  732. package/dist/services/prd/gate-evidence-derivation.d.ts +160 -0
  733. package/dist/services/prd/gate-evidence-derivation.js +270 -0
  734. package/dist/services/prd/handoff-auto-regen.js +13 -1
  735. package/dist/services/prd/handoff-frontmatter-shape.d.ts +42 -0
  736. package/dist/services/prd/handoff-frontmatter-shape.js +67 -0
  737. package/dist/services/prd/handoff-frontmatter.d.ts +1 -1
  738. package/dist/services/prd/handoff-frontmatter.js +63 -1
  739. package/dist/services/prd/handoff-gate-evidence.d.ts +95 -1
  740. package/dist/services/prd/handoff-gate-evidence.js +125 -57
  741. package/dist/services/prd/handoff-path-resolution.d.ts +37 -0
  742. package/dist/services/prd/handoff-path-resolution.js +101 -0
  743. package/dist/services/prd/handoff-service.d.ts +22 -38
  744. package/dist/services/prd/handoff-service.js +38 -127
  745. package/dist/services/prd/handoff-types.d.ts +40 -0
  746. package/dist/services/prd/handoff-types.js +28 -1
  747. package/dist/services/prd/prd-blocks-checker.js +28 -8
  748. package/dist/services/prd/project-scan-bootstrap-service.js +1 -5
  749. package/dist/services/prd/project-scan-reader.d.ts +7 -0
  750. package/dist/services/prd/project-scan-reader.js +8 -5
  751. package/dist/services/prd/project-scan-sediment.js +1 -4
  752. package/dist/services/preferences/preferences-service.js +6 -8
  753. package/dist/services/preferences/preferences-types.js +4 -4
  754. package/dist/services/qa/bdd-test-style-contract.d.ts +41 -0
  755. package/dist/services/qa/bdd-test-style-contract.js +37 -0
  756. package/dist/services/qa/bdd-test-style-verifier.d.ts +2 -24
  757. package/dist/services/qa/bdd-test-style-verifier.js +5 -31
  758. package/dist/services/qa/browser-event-logger.js +2 -1
  759. package/dist/services/qa/qa-business-review-state.js +20 -5
  760. package/dist/services/qa/screenshot-archive-service.js +1 -3
  761. package/dist/services/rd/ast-gate.js +2 -2
  762. package/dist/services/rd/impl.js +1 -1
  763. package/dist/services/rd/rd-service.js +117 -43
  764. package/dist/services/rd/reviewer-dispatch-policy.d.ts +36 -8
  765. package/dist/services/rd/reviewer-dispatch-policy.js +40 -15
  766. package/dist/services/rd/standards-diagnostic.js +4 -1
  767. package/dist/services/rd/strategy.js +10 -3
  768. package/dist/services/rd/tactical-stage.js +2 -2
  769. package/dist/services/rd/types.js +9 -7
  770. package/dist/services/rd-swarm/rd-swarm-service.d.ts +2 -45
  771. package/dist/services/rd-swarm/rd-swarm-service.js +140 -21
  772. package/dist/services/rd-swarm/rd-swarm-types.d.ts +54 -0
  773. package/dist/services/rd-swarm/rd-swarm-types.js +10 -0
  774. package/dist/services/recommendations/capability-map-service.js +10 -2
  775. package/dist/services/recommendations/capability-seed-items.js +81 -14
  776. package/dist/services/recommendations/capability-seed-mappings.js +420 -48
  777. package/dist/services/recommendations/capability-seed-sources-mcp-server.d.ts +9 -0
  778. package/dist/services/recommendations/capability-seed-sources-mcp-server.js +233 -0
  779. package/dist/services/recommendations/capability-seed-sources.js +127 -32
  780. package/dist/services/release/release-state.d.ts +2 -2
  781. package/dist/services/release/release-state.js +44 -15
  782. package/dist/services/release/version-precheck-layer-changeset.d.ts +2 -0
  783. package/dist/services/release/version-precheck-layer-changeset.js +43 -0
  784. package/dist/services/release/version-precheck-service.d.ts +11 -36
  785. package/dist/services/release/version-precheck-service.js +20 -104
  786. package/dist/services/release/version-precheck-support.d.ts +53 -0
  787. package/dist/services/release/version-precheck-support.js +64 -0
  788. package/dist/services/retrospective/retrospective-index.js +17 -3
  789. package/dist/services/retrospective/retrospective-search-service.js +6 -2
  790. package/dist/services/retrospective/retrospective-show.js +4 -1
  791. package/dist/services/reviewer/model-family.js +7 -1
  792. package/dist/services/reviewer/providers/anthropic.d.ts +5 -0
  793. package/dist/services/reviewer/providers/anthropic.js +10 -1
  794. package/dist/services/reviewer/providers/openai.d.ts +5 -0
  795. package/dist/services/reviewer/providers/openai.js +10 -1
  796. package/dist/services/reviewer/reviewer-config.js +4 -2
  797. package/dist/services/reviewer/reviewer-service.d.ts +2 -36
  798. package/dist/services/reviewer/reviewer-service.js +2 -1
  799. package/dist/services/reviewer/reviewer-types.d.ts +43 -0
  800. package/dist/services/reviewer/reviewer-types.js +1 -0
  801. package/dist/services/role/role-registry.js +9 -1
  802. package/dist/services/runtime/runtime-detector.js +4 -1
  803. package/dist/services/runtime/vendors/claude-code.js +14 -6
  804. package/dist/services/runtime/vendors/codex.js +11 -3
  805. package/dist/services/runtime/vendors/copilot.js +11 -3
  806. package/dist/services/sc/sc-service.js +28 -15
  807. package/dist/services/scan/acceptance-coverage-service.js +4 -1
  808. package/dist/services/scan/api-diff-openapi-schema-read.d.ts +67 -0
  809. package/dist/services/scan/api-diff-openapi-schema-read.js +154 -0
  810. package/dist/services/scan/api-diff-openapi.d.ts +16 -2
  811. package/dist/services/scan/api-diff-openapi.js +19 -123
  812. package/dist/services/scan/api-diff-recorded.js +16 -3
  813. package/dist/services/scan/api-diff-service.js +49 -16
  814. package/dist/services/scan/api-diff-types.js +12 -3
  815. package/dist/services/scan/api-surface-helpers.d.ts +13 -0
  816. package/dist/services/scan/api-surface-helpers.js +31 -0
  817. package/dist/services/scan/api-surface-service.d.ts +2 -45
  818. package/dist/services/scan/api-surface-service.js +15 -26
  819. package/dist/services/scan/api-surface-types.d.ts +54 -0
  820. package/dist/services/scan/api-surface-types.js +10 -0
  821. package/dist/services/scan/archetype-detection.d.ts +37 -0
  822. package/dist/services/scan/archetype-detection.js +142 -0
  823. package/dist/services/scan/archetype-service.js +36 -125
  824. package/dist/services/scan/diff-scope-service.js +35 -15
  825. package/dist/services/scan/existing-system-service.js +16 -99
  826. package/dist/services/scan/existing-system-visual-tokens.d.ts +20 -0
  827. package/dist/services/scan/existing-system-visual-tokens.js +123 -0
  828. package/dist/services/scan/file-size-policy.d.ts +86 -0
  829. package/dist/services/scan/file-size-policy.js +184 -0
  830. package/dist/services/scan/file-size-scan.d.ts +30 -3
  831. package/dist/services/scan/file-size-scan.js +47 -9
  832. package/dist/services/scan/karpathy-service.js +6 -1
  833. package/dist/services/scan/orphan-service.js +86 -20
  834. package/dist/services/scan/type-sanity-service.js +104 -10
  835. package/dist/services/sediment/dispose-confirm.d.ts +2 -2
  836. package/dist/services/sediment/dispose-confirm.js +2 -2
  837. package/dist/services/sediment/json-schema.d.ts +1 -1
  838. package/dist/services/sediment/json-schema.js +25 -13
  839. package/dist/services/sediment/manifest-lint.d.ts +1 -12
  840. package/dist/services/sediment/manifest-lint.js +1 -7
  841. package/dist/services/sediment/pool-paths.js +13 -9
  842. package/dist/services/sediment/pool-read.d.ts +1 -1
  843. package/dist/services/sediment/pool-read.js +42 -18
  844. package/dist/services/sediment/pool-rebuild-index.d.ts +1 -1
  845. package/dist/services/sediment/pool-rebuild-index.js +5 -5
  846. package/dist/services/sediment/pool-write.d.ts +1 -1
  847. package/dist/services/sediment/pool-write.js +7 -7
  848. package/dist/services/sediment/promotion-gate.d.ts +1 -1
  849. package/dist/services/sediment/promotion-gate.js +9 -9
  850. package/dist/services/sediment/types.d.ts +8 -8
  851. package/dist/services/session/binding-status-service.js +14 -4
  852. package/dist/services/session/caller-binding-service.js +2 -1
  853. package/dist/services/session/getSessionDir.js +4 -1
  854. package/dist/services/session/index.d.ts +1 -1
  855. package/dist/services/session/index.js +1 -1
  856. package/dist/services/session/resolve-caller-id.js +7 -5
  857. package/dist/services/session/session-binding-bridge.js +26 -25
  858. package/dist/services/session/session-checkpoint-service.js +1 -1
  859. package/dist/services/session/session-file-schema.d.ts +70 -0
  860. package/dist/services/session/session-file-schema.js +68 -0
  861. package/dist/services/session/session-manager.d.ts +6 -6
  862. package/dist/services/session/session-manager.js +30 -29
  863. package/dist/services/session/session-resume-service.js +2 -1
  864. package/dist/services/share/bundle-format-constants.d.ts +85 -0
  865. package/dist/services/share/bundle-format-constants.js +100 -0
  866. package/dist/services/share/bundle-reader.d.ts +3 -3
  867. package/dist/services/share/bundle-reader.js +75 -68
  868. package/dist/services/share/bundle-types.d.ts +3 -70
  869. package/dist/services/share/bundle-types.js +38 -107
  870. package/dist/services/share/bundle-writer.d.ts +3 -3
  871. package/dist/services/share/bundle-writer.js +101 -91
  872. package/dist/services/share/run-state-contract.d.ts +1 -1
  873. package/dist/services/share/run-state-contract.js +7 -13
  874. package/dist/services/signal/cancel-handler.js +2 -1
  875. package/dist/services/skill/resume-detector.js +6 -4
  876. package/dist/services/skill/skill-scheduler.js +3 -1
  877. package/dist/services/skill/skill-search-service.js +4 -4
  878. package/dist/services/skillhub/release-diff.d.ts +2 -2
  879. package/dist/services/skillhub/release-diff.js +6 -10
  880. package/dist/services/skillhub/release-export.d.ts +2 -2
  881. package/dist/services/skillhub/release-export.js +15 -17
  882. package/dist/services/skillhub/release-gc-blobs.d.ts +2 -2
  883. package/dist/services/skillhub/release-gc-blobs.js +4 -4
  884. package/dist/services/skillhub/release-import.d.ts +2 -2
  885. package/dist/services/skillhub/release-import.js +13 -12
  886. package/dist/services/skillhub/release-retain.d.ts +3 -3
  887. package/dist/services/skillhub/release-retain.js +22 -22
  888. package/dist/services/skillhub/sqlite-store.d.ts +1 -1
  889. package/dist/services/skillhub/sqlite-store.js +12 -11
  890. package/dist/services/skillhub/tar-runtime.js +15 -15
  891. package/dist/services/skillhub/types.d.ts +4 -4
  892. package/dist/services/skills/hooks-codegate-superpowers.js +16 -7
  893. package/dist/services/skills/hooks-settings-service.js +61 -19
  894. package/dist/services/skills/presence-lease-service.js +26 -16
  895. package/dist/services/skills/presence-lease-types.d.ts +1 -1
  896. package/dist/services/skills/presence-lease-types.js +1 -1
  897. package/dist/services/skills/skill-conformance-service.js +40 -8
  898. package/dist/services/skills/skill-presence-service.js +16 -14
  899. package/dist/services/skills/skill-runbook-service.js +2 -1
  900. package/dist/services/skills/skill-statusline-model.d.ts +128 -0
  901. package/dist/services/skills/skill-statusline-model.js +163 -0
  902. package/dist/services/skills/skill-statusline-renderer.js +4 -3
  903. package/dist/services/skills/skill-statusline-service.d.ts +3 -100
  904. package/dist/services/skills/skill-statusline-service.js +56 -163
  905. package/dist/services/skills/statusline-palette.js +11 -6
  906. package/dist/services/skills/statusline-settings-service.js +2 -1
  907. package/dist/services/skills/sync-service-support.d.ts +65 -0
  908. package/dist/services/skills/sync-service-support.js +50 -0
  909. package/dist/services/skills/sync-service.d.ts +3 -66
  910. package/dist/services/skills/sync-service.js +15 -53
  911. package/dist/services/slice/calibration-store.js +8 -2
  912. package/dist/services/slice/cross-pass-edge-merger.d.ts +3 -28
  913. package/dist/services/slice/cross-pass-edge-merger.js +13 -63
  914. package/dist/services/slice/cross-pass-edge-static-scan-support.d.ts +69 -0
  915. package/dist/services/slice/cross-pass-edge-static-scan-support.js +74 -0
  916. package/dist/services/slice/granularity-decider.js +2 -2
  917. package/dist/services/slice/slice-archive-service.js +8 -3
  918. package/dist/services/slice/slice-check-service.js +19 -8
  919. package/dist/services/slice/slice-decompose-runners.js +61 -23
  920. package/dist/services/slice/slice-decompose-service.js +4 -4
  921. package/dist/services/slice/slice-review-state.js +8 -2
  922. package/dist/services/smoke/smoke-paths-state.js +9 -2
  923. package/dist/services/sop/gate-enforce-service.js +9 -2
  924. package/dist/services/sop/sop-advance-service.js +14 -2
  925. package/dist/services/sop/sop-check-service.js +16 -4
  926. package/dist/services/sop/sop-paths.js +3 -1
  927. package/dist/services/sop/sop-registry-service.js +5 -1
  928. package/dist/services/sop/sop-service.js +29 -7
  929. package/dist/services/sop/sop-types.js +5 -1
  930. package/dist/services/standards/ide-aware-standards-service.js +2 -2
  931. package/dist/services/standards/loop-engineering-lint.js +12 -5
  932. package/dist/services/standards/loop-engineering-readiness-lint.js +5 -5
  933. package/dist/services/standards/migrate-claude-rules-service.js +9 -7
  934. package/dist/services/standards/missing-standards-detector.js +1 -3
  935. package/dist/services/standards/project-context-support.d.ts +50 -0
  936. package/dist/services/standards/project-context-support.js +244 -0
  937. package/dist/services/standards/project-context-types.d.ts +30 -0
  938. package/dist/services/standards/project-context-types.js +11 -0
  939. package/dist/services/standards/project-context.d.ts +10 -22
  940. package/dist/services/standards/project-context.js +27 -214
  941. package/dist/services/standards/project-standards-service.js +43 -12
  942. package/dist/services/standards/standards-render-common.d.ts +15 -0
  943. package/dist/services/standards/standards-render-common.js +49 -0
  944. package/dist/services/standards/standards-render.d.ts +1 -2
  945. package/dist/services/standards/standards-render.js +31 -58
  946. package/dist/services/standards/ui-library-dispatch-block.js +1 -1
  947. package/dist/services/tech/tech-change-id-service.js +7 -7
  948. package/dist/services/tech/tech-service.js +73 -26
  949. package/dist/services/test-cache/test-cache-service.js +8 -3
  950. package/dist/services/upgrade/1x-detector-service.js +5 -3
  951. package/dist/services/upgrade/gitignore-migrate-service.js +5 -5
  952. package/dist/services/upgrade/upgrade-service.js +36 -13
  953. package/dist/services/verdict/envelope-parsers.d.ts +84 -0
  954. package/dist/services/verdict/envelope-parsers.js +146 -0
  955. package/dist/services/verdict/envelopes.d.ts +50 -60
  956. package/dist/services/verdict/envelopes.js +18 -156
  957. package/dist/services/verdict/verdict-aggregator.js +27 -3
  958. package/dist/services/vm/vm-lease.js +15 -3
  959. package/dist/services/web/aria-node.d.ts +27 -0
  960. package/dist/services/web/aria-node.js +1 -0
  961. package/dist/services/web/browser-acquire.js +3 -1
  962. package/dist/services/web/browser-cache-probe.d.ts +18 -0
  963. package/dist/services/web/browser-cache-probe.js +110 -0
  964. package/dist/services/web/browser-session-manager.js +6 -2
  965. package/dist/services/web/daemon-registry.js +4 -1
  966. package/dist/services/web/playwright-loader.d.ts +2 -70
  967. package/dist/services/web/playwright-types.d.ts +75 -0
  968. package/dist/services/web/playwright-types.js +1 -0
  969. package/dist/services/web/snapshot-pruner.d.ts +2 -23
  970. package/dist/services/web/snapshot-pruner.js +8 -3
  971. package/dist/services/web/web-daemon-service.js +1 -3
  972. package/dist/services/web/web-install-service.d.ts +3 -32
  973. package/dist/services/web/web-install-service.js +21 -100
  974. package/dist/services/web/web-install-types.d.ts +31 -0
  975. package/dist/services/web/web-install-types.js +13 -0
  976. package/dist/services/web/web-login-profile.js +7 -5
  977. package/dist/services/web/web-protocol.js +3 -1
  978. package/dist/services/workflow/pipeline-verify-gate-support.js +63 -17
  979. package/dist/services/workflow/pipeline-verify-service.js +17 -6
  980. package/dist/services/workflow/plan-reader.js +5 -1
  981. package/dist/services/workflow/plan-refresher.js +20 -6
  982. package/dist/services/workflow/plan-trigger-detector.js +31 -8
  983. package/dist/services/workflow/provision-dispatch-node.js +8 -3
  984. package/dist/services/workflow/workflow-autonomous-resume-helpers.d.ts +3 -1
  985. package/dist/services/workflow/workflow-autonomous-resume-helpers.js +35 -144
  986. package/dist/services/workflow/workflow-autonomous-resume-validation.d.ts +16 -0
  987. package/dist/services/workflow/workflow-autonomous-resume-validation.js +155 -0
  988. package/dist/services/workflow/workflow-autonomous-service.js +25 -13
  989. package/dist/services/workflow/workflow-graph-store-helpers.d.ts +51 -0
  990. package/dist/services/workflow/workflow-graph-store-helpers.js +111 -0
  991. package/dist/services/workflow/workflow-graph-store.d.ts +2 -35
  992. package/dist/services/workflow/workflow-graph-store.js +30 -107
  993. package/dist/services/workflow/workflow-graph-types.js +3 -3
  994. package/dist/services/workflow/workflow-inflight-probe.js +14 -7
  995. package/dist/services/workflow/workflow-loader.js +5 -1
  996. package/dist/services/workflow/workflow-node-lifecycle.js +22 -21
  997. package/dist/services/workflow/workflow-presence-lifecycle-types.d.ts +50 -0
  998. package/dist/services/workflow/workflow-presence-lifecycle-types.js +1 -0
  999. package/dist/services/workflow/workflow-presence-lifecycle.d.ts +2 -42
  1000. package/dist/services/workflow/workflow-presence-lifecycle.js +19 -21
  1001. package/dist/services/workflow/workflow-router-service.js +169 -27
  1002. package/dist/services/workflow/workflow-skip-service.js +14 -4
  1003. package/dist/services/workflow/workflow-spec-builders.d.ts +15 -0
  1004. package/dist/services/workflow/workflow-spec-builders.js +121 -0
  1005. package/dist/services/workflow/workflow-spec.d.ts +7 -6
  1006. package/dist/services/workflow/workflow-spec.js +22 -116
  1007. package/dist/services/workflow/workflow-state-store.js +2 -1
  1008. package/dist/services/workspace/migrate-1-4-1-service.js +80 -14
  1009. package/dist/services/workspace/migrate-service.js +66 -16
  1010. package/dist/services/workspace/reconcile-migrate.js +6 -2
  1011. package/dist/services/workspace/reconcile-service.js +37 -16
  1012. package/dist/services/workspace/workspace-claude-settings-materializer.js +7 -5
  1013. package/dist/services/workspace/workspace-clean-service.js +4 -1
  1014. package/dist/services/workspace/workspace-service.js +11 -3
  1015. package/dist/services/workspace/workspace-state-service.js +1 -1
  1016. package/dist/services/worktree/git-worktree-parser.js +13 -3
  1017. package/dist/services/worktree/host-worktree-reconciler.js +8 -4
  1018. package/dist/services/worktree/long-path-cleanup.js +23 -6
  1019. package/dist/services/worktree/worktree-gc-guard.js +3 -1
  1020. package/dist/services/worktree/worktree-lease-types.d.ts +53 -0
  1021. package/dist/services/worktree/worktree-lease-types.js +10 -0
  1022. package/dist/services/worktree/worktree-lease.d.ts +2 -44
  1023. package/dist/shared/array-guards.d.ts +30 -0
  1024. package/dist/shared/array-guards.js +32 -0
  1025. package/dist/shared/format-md-compact-internals.d.ts +26 -0
  1026. package/dist/shared/format-md-compact-internals.js +125 -0
  1027. package/dist/shared/format-md-compact.js +1 -117
  1028. package/dist/shared/fs-utils.js +2 -1
  1029. package/dist/shared/incrementing-number.js +3 -3
  1030. package/dist/shared/json-parse.d.ts +71 -0
  1031. package/dist/shared/json-parse.js +32 -0
  1032. package/dist/shared/json-schema-mini.js +3 -1
  1033. package/dist/shared/path-safety.js +3 -1
  1034. package/dist/shared/path-utils.d.ts +20 -0
  1035. package/dist/shared/path-utils.js +26 -0
  1036. package/dist/shared/planner-response.js +3 -3
  1037. package/dist/shared/stale-policy.js +1 -3
  1038. package/dist/skills/peaks-maker/index.js +11 -11
  1039. package/package.json +32 -9
  1040. package/scripts/clean-dist.mjs +1 -2
  1041. package/scripts/copy-templates.mjs +2 -4
  1042. package/scripts/install-skills.mjs +305 -125
  1043. package/scripts/sync-version.mjs +25 -8
  1044. package/scripts/watch.mjs +8 -2
  1045. package/skills/bee/peaks-rd/SKILL.md +1 -1
  1046. package/skills/bee/peaks-rd/references/rd-fanout-contracts.md +26 -10
  1047. package/skills/bee/peaks-rd/references/rd-sub-agent-dispatch.md +1 -1
  1048. package/skills/bee/peaks-rd/references/writing-handoff-frontmatter.md +6 -1
  1049. package/skills/peaks-code/SKILL.md +1 -1
  1050. package/skills/peaks-code/references/periodic-checkpoint.md +7 -5
  1051. package/skills/peaks-code/references/startup-sequence.md +1 -1
  1052. package/skills/peaks-final-review/SKILL.md +1 -1
  1053. /package/{docs → contracts}/test-style-contract.md +0 -0
@@ -1,5 +1,22 @@
1
1
  #!/usr/bin/env node
2
- import { closeSync, constants, existsSync, fchmodSync, fstatSync, lstatSync, mkdirSync, openSync, readFileSync, readlinkSync, realpathSync, readdirSync, renameSync, symlinkSync, unlinkSync, writeFileSync } from 'node:fs';
2
+ import {
3
+ closeSync,
4
+ constants,
5
+ existsSync,
6
+ fchmodSync,
7
+ fstatSync,
8
+ lstatSync,
9
+ mkdirSync,
10
+ openSync,
11
+ readFileSync,
12
+ readlinkSync,
13
+ realpathSync,
14
+ readdirSync,
15
+ renameSync,
16
+ symlinkSync,
17
+ unlinkSync,
18
+ writeFileSync
19
+ } from 'node:fs';
3
20
  import { spawnSync } from 'node:child_process';
4
21
  import { createHash, randomUUID } from 'node:crypto';
5
22
  import { homedir } from 'node:os';
@@ -35,7 +52,12 @@ function validateManagedMarkerPath(markerPath) {
35
52
  function validateOpenFile(fd, path, errorMessage) {
36
53
  const fdStats = fstatSync(fd);
37
54
  const pathStats = lstatSync(path);
38
- if (!fdStats.isFile() || !pathStats.isFile() || fdStats.dev !== pathStats.dev || fdStats.ino !== pathStats.ino) {
55
+ if (
56
+ !fdStats.isFile() ||
57
+ !pathStats.isFile() ||
58
+ fdStats.dev !== pathStats.dev ||
59
+ fdStats.ino !== pathStats.ino
60
+ ) {
39
61
  throw new Error(errorMessage);
40
62
  }
41
63
  if (fdStats.nlink !== 1 || pathStats.nlink !== 1) {
@@ -54,11 +76,19 @@ function createFileIdentity(path) {
54
76
  function isSameFileIdentity(path, identity) {
55
77
  if (identity === null) return false;
56
78
  const stats = getPathStats(path);
57
- return Boolean(stats?.isFile() && !stats.isSymbolicLink() && stats.nlink === 1 && stats.dev === identity.dev && stats.ino === identity.ino);
79
+ return Boolean(
80
+ stats?.isFile() &&
81
+ !stats.isSymbolicLink() &&
82
+ stats.nlink === 1 &&
83
+ stats.dev === identity.dev &&
84
+ stats.ino === identity.ino
85
+ );
58
86
  }
59
87
 
60
88
  function getSafeReadOpenFlags() {
61
- return typeof constants.O_NOFOLLOW === 'number' ? constants.O_RDONLY | constants.O_NOFOLLOW : constants.O_RDONLY;
89
+ return typeof constants.O_NOFOLLOW === 'number'
90
+ ? constants.O_RDONLY | constants.O_NOFOLLOW
91
+ : constants.O_RDONLY;
62
92
  }
63
93
 
64
94
  function readFileSafely(path, errorMessage) {
@@ -83,7 +113,12 @@ function getManagedTarget(targetPath) {
83
113
  function markManagedPeaksLink(targetPath, sourcePath) {
84
114
  const markerPath = `${targetPath}.peaks-managed`;
85
115
  validateManagedMarkerPath(markerPath);
86
- writeFileAtomically(markerPath, `${sourcePath}\n`, 'Peaks managed marker path changed during write', () => validateManagedMarkerPath(markerPath));
116
+ writeFileAtomically(
117
+ markerPath,
118
+ `${sourcePath}\n`,
119
+ 'Peaks managed marker path changed during write',
120
+ () => validateManagedMarkerPath(markerPath)
121
+ );
87
122
  }
88
123
 
89
124
  function readPackageSourceFile(path) {
@@ -111,7 +146,13 @@ function parseManagedOutputStyleMarker(managedTarget) {
111
146
  if (managedTarget === null) return null;
112
147
  try {
113
148
  const marker = JSON.parse(managedTarget);
114
- if (marker?.version !== 1 || marker?.kind !== 'output-style' || typeof marker.outputStyleName !== 'string' || typeof marker.sourcePath !== 'string' || typeof marker.contentSha256 !== 'string') {
149
+ if (
150
+ marker?.version !== 1 ||
151
+ marker?.kind !== 'output-style' ||
152
+ typeof marker.outputStyleName !== 'string' ||
153
+ typeof marker.sourcePath !== 'string' ||
154
+ typeof marker.contentSha256 !== 'string'
155
+ ) {
115
156
  return null;
116
157
  }
117
158
  return marker;
@@ -121,13 +162,28 @@ function parseManagedOutputStyleMarker(managedTarget) {
121
162
  }
122
163
 
123
164
  function isTrustedOutputStyleSource(marker, sourcePath, outputStyleName) {
124
- return marker.outputStyleName === outputStyleName && resolve(marker.sourcePath) === resolve(sourcePath) && basename(resolve(marker.sourcePath)) === outputStyleName;
165
+ return (
166
+ marker.outputStyleName === outputStyleName &&
167
+ resolve(marker.sourcePath) === resolve(sourcePath) &&
168
+ basename(resolve(marker.sourcePath)) === outputStyleName
169
+ );
125
170
  }
126
171
 
127
- function getManagedPeaksOutputStyleIdentity(managedTarget, targetPath, sourcePath, outputStyleName) {
172
+ function getManagedPeaksOutputStyleIdentity(
173
+ managedTarget,
174
+ targetPath,
175
+ sourcePath,
176
+ outputStyleName
177
+ ) {
128
178
  const marker = parseManagedOutputStyleMarker(managedTarget);
129
179
  const sourceHash = hashContent(readPackageSourceFile(sourcePath));
130
- if (marker === null || !isTrustedOutputStyleSource(marker, sourcePath, outputStyleName) || !existsSync(targetPath) || hashFileContent(targetPath) !== sourceHash || marker.contentSha256 !== sourceHash) {
180
+ if (
181
+ marker === null ||
182
+ !isTrustedOutputStyleSource(marker, sourcePath, outputStyleName) ||
183
+ !existsSync(targetPath) ||
184
+ hashFileContent(targetPath) !== sourceHash ||
185
+ marker.contentSha256 !== sourceHash
186
+ ) {
131
187
  return null;
132
188
  }
133
189
  return createFileIdentity(targetPath);
@@ -172,15 +228,15 @@ function readPackageVersion(packageRoot = resolvePackageRoot()) {
172
228
  }
173
229
 
174
230
  function createConfigDefaults(packageRoot) {
175
- return {
231
+ return {
176
232
  version: readPackageVersion(packageRoot),
177
233
  currentWorkspace: null,
178
- workspaces: [],
179
- language: 'en',
180
- economyMode: true,
181
- swarmMode: true,
182
- tokens: {},
183
- proxy: {}
234
+ workspaces: [],
235
+ language: 'en',
236
+ economyMode: true,
237
+ swarmMode: true,
238
+ tokens: {},
239
+ proxy: {}
184
240
  };
185
241
  }
186
242
 
@@ -198,18 +254,21 @@ function isPlainObject(value) {
198
254
  }
199
255
 
200
256
  function mergeMissingConfigValues(existing, defaults) {
201
- return Object.entries(defaults).reduce((next, [key, defaultValue]) => {
202
- if (!(key in next)) {
203
- return { ...next, [key]: defaultValue };
204
- }
257
+ return Object.entries(defaults).reduce(
258
+ (next, [key, defaultValue]) => {
259
+ if (!(key in next)) {
260
+ return { ...next, [key]: defaultValue };
261
+ }
205
262
 
206
- const existingValue = next[key];
207
- if (isPlainObject(existingValue) && isPlainObject(defaultValue)) {
208
- return { ...next, [key]: mergeMissingConfigValues(existingValue, defaultValue) };
209
- }
263
+ const existingValue = next[key];
264
+ if (isPlainObject(existingValue) && isPlainObject(defaultValue)) {
265
+ return { ...next, [key]: mergeMissingConfigValues(existingValue, defaultValue) };
266
+ }
210
267
 
211
- return next;
212
- }, { ...existing });
268
+ return next;
269
+ },
270
+ { ...existing }
271
+ );
213
272
  }
214
273
 
215
274
  function readConfigFile(configPath, label) {
@@ -218,14 +277,21 @@ function readConfigFile(configPath, label) {
218
277
  }
219
278
 
220
279
  try {
221
- const parsed = JSON.parse(readFileSafely(configPath, `${label} config path changed during read`));
280
+ const parsed = JSON.parse(
281
+ readFileSafely(configPath, `${label} config path changed during read`)
282
+ );
222
283
  if (!isPlainObject(parsed)) {
223
284
  throw new Error(`${label} config must contain a JSON object`);
224
285
  }
225
286
 
226
287
  return parsed;
227
288
  } catch (error) {
228
- const message = error instanceof SyntaxError ? `${label} config must contain valid JSON` : error instanceof Error ? error.message : String(error);
289
+ const message =
290
+ error instanceof SyntaxError
291
+ ? `${label} config must contain valid JSON`
292
+ : error instanceof Error
293
+ ? error.message
294
+ : String(error);
229
295
  throw new Error(message);
230
296
  }
231
297
  }
@@ -234,7 +300,11 @@ function validateConfigPath(root, peaksRoot, configPath, label) {
234
300
  const rootReal = realpathSync(root);
235
301
  const peaksStats = lstatSync(peaksRoot);
236
302
  const peaksReal = realpathSync(peaksRoot);
237
- if (!peaksStats.isDirectory() || peaksStats.isSymbolicLink() || peaksReal !== resolve(rootReal, '.peaks')) {
303
+ if (
304
+ !peaksStats.isDirectory() ||
305
+ peaksStats.isSymbolicLink() ||
306
+ peaksReal !== resolve(rootReal, '.peaks')
307
+ ) {
238
308
  throw new Error(`${label} config path must stay inside the ${label.toLowerCase()} root`);
239
309
  }
240
310
 
@@ -342,7 +412,9 @@ function writeFileAtomically(configPath, content, errorMessage, validateBeforeWr
342
412
  }
343
413
 
344
414
  function writeUserConfig(userRoot, peaksRoot, configPath, content) {
345
- writeFileAtomically(configPath, content, 'User config path changed during write', () => validateUserConfigPaths(userRoot, peaksRoot, configPath));
415
+ writeFileAtomically(configPath, content, 'User config path changed during write', () =>
416
+ validateUserConfigPaths(userRoot, peaksRoot, configPath)
417
+ );
346
418
  }
347
419
 
348
420
  function resolveProjectRoot(options) {
@@ -387,7 +459,7 @@ export const IDE_DETECTION_DIRS = [
387
459
  { id: 'tongyi-lingma', dir: '.tongyi-lingma' },
388
460
  { id: 'zcode', dir: '.zcode' },
389
461
  { id: 'hermes', dir: '.hermes' },
390
- { id: 'openclaw', dir: '.openclaw' },
462
+ { id: 'openclaw', dir: '.openclaw' }
391
463
  ];
392
464
 
393
465
  /**
@@ -418,15 +490,15 @@ export const IDE_SKILL_INSTALL_PROFILES = {
418
490
  agentsDir: join(homedir(), '.claude', 'agents'),
419
491
  envVar: 'PEAKS_CLAUDE_SKILLS_DIR',
420
492
  outputStylesEnvVar: 'PEAKS_CLAUDE_OUTPUT_STYLES_DIR',
421
- agentsEnvVar: 'PEAKS_CLAUDE_AGENTS_DIR',
493
+ agentsEnvVar: 'PEAKS_CLAUDE_AGENTS_DIR'
422
494
  },
423
- 'trae': {
495
+ trae: {
424
496
  skillsDir: join(homedir(), '.trae', 'skills'),
425
497
  outputStylesDir: join(homedir(), '.trae', 'output-styles'),
426
498
  agentsDir: join(homedir(), '.trae', 'agents'),
427
499
  envVar: 'PEAKS_TRAE_SKILLS_DIR',
428
500
  outputStylesEnvVar: 'PEAKS_TRAE_OUTPUT_STYLES_DIR',
429
- agentsEnvVar: 'PEAKS_TRAE_AGENTS_DIR',
501
+ agentsEnvVar: 'PEAKS_TRAE_AGENTS_DIR'
430
502
  },
431
503
  'trae-cn': {
432
504
  skillsDir: join(homedir(), '.trae-cn', 'skills'),
@@ -434,56 +506,56 @@ export const IDE_SKILL_INSTALL_PROFILES = {
434
506
  agentsDir: join(homedir(), '.trae-cn', 'agents'),
435
507
  envVar: 'PEAKS_TRAE_CN_SKILLS_DIR',
436
508
  outputStylesEnvVar: 'PEAKS_TRAE_CN_OUTPUT_STYLES_DIR',
437
- agentsEnvVar: 'PEAKS_TRAE_CN_AGENTS_DIR',
509
+ agentsEnvVar: 'PEAKS_TRAE_CN_AGENTS_DIR'
438
510
  },
439
- 'codex': {
511
+ codex: {
440
512
  skillsDir: join(homedir(), '.codex', 'skills'),
441
513
  outputStylesDir: join(homedir(), '.codex', 'output-styles'),
442
514
  agentsDir: join(homedir(), '.codex', 'agents'),
443
515
  envVar: 'PEAKS_CODEX_SKILLS_DIR',
444
516
  outputStylesEnvVar: 'PEAKS_CODEX_OUTPUT_STYLES_DIR',
445
- agentsEnvVar: 'PEAKS_CODEX_AGENTS_DIR',
517
+ agentsEnvVar: 'PEAKS_CODEX_AGENTS_DIR'
446
518
  },
447
- 'cursor': {
519
+ cursor: {
448
520
  skillsDir: join(homedir(), '.cursor', 'skills'),
449
521
  outputStylesDir: join(homedir(), '.cursor', 'output-styles'),
450
522
  agentsDir: join(homedir(), '.cursor', 'agents'),
451
523
  envVar: 'PEAKS_CURSOR_SKILLS_DIR',
452
524
  outputStylesEnvVar: 'PEAKS_CURSOR_OUTPUT_STYLES_DIR',
453
- agentsEnvVar: 'PEAKS_CURSOR_AGENTS_DIR',
525
+ agentsEnvVar: 'PEAKS_CURSOR_AGENTS_DIR'
454
526
  },
455
- 'qoder': {
527
+ qoder: {
456
528
  skillsDir: join(homedir(), '.qoder', 'skills'),
457
529
  outputStylesDir: join(homedir(), '.qoder', 'output-styles'),
458
530
  envVar: 'PEAKS_QODER_SKILLS_DIR',
459
- outputStylesEnvVar: 'PEAKS_QODER_OUTPUT_STYLES_DIR',
531
+ outputStylesEnvVar: 'PEAKS_QODER_OUTPUT_STYLES_DIR'
460
532
  },
461
533
  'tongyi-lingma': {
462
534
  skillsDir: join(homedir(), '.tongyi-lingma', 'skills'),
463
535
  outputStylesDir: join(homedir(), '.tongyi-lingma', 'output-styles'),
464
536
  envVar: 'PEAKS_TONGYI_SKILLS_DIR',
465
- outputStylesEnvVar: 'PEAKS_TONGYI_OUTPUT_STYLES_DIR',
537
+ outputStylesEnvVar: 'PEAKS_TONGYI_OUTPUT_STYLES_DIR'
466
538
  },
467
- 'hermes': {
539
+ hermes: {
468
540
  skillsDir: join(homedir(), '.hermes', 'skills'),
469
541
  outputStylesDir: join(homedir(), '.hermes', 'output-styles'),
470
542
  envVar: 'PEAKS_HERMES_SKILLS_DIR',
471
- outputStylesEnvVar: 'PEAKS_HERMES_OUTPUT_STYLES_DIR',
543
+ outputStylesEnvVar: 'PEAKS_HERMES_OUTPUT_STYLES_DIR'
472
544
  },
473
- 'openclaw': {
545
+ openclaw: {
474
546
  skillsDir: join(homedir(), '.openclaw', 'skills'),
475
547
  outputStylesDir: join(homedir(), '.openclaw', 'output-styles'),
476
548
  envVar: 'PEAKS_OPENCLAW_SKILLS_DIR',
477
- outputStylesEnvVar: 'PEAKS_OPENCLAW_OUTPUT_STYLES_DIR',
549
+ outputStylesEnvVar: 'PEAKS_OPENCLAW_OUTPUT_STYLES_DIR'
478
550
  },
479
- 'zcode': {
551
+ zcode: {
480
552
  skillsDir: join(homedir(), '.zcode', 'skills'),
481
553
  outputStylesDir: join(homedir(), '.zcode', 'output-styles'),
482
554
  agentsDir: join(homedir(), '.zcode', 'agents'),
483
555
  envVar: 'PEAKS_ZCODE_SKILLS_DIR',
484
556
  outputStylesEnvVar: 'PEAKS_ZCODE_OUTPUT_STYLES_DIR',
485
- agentsEnvVar: 'PEAKS_ZCODE_AGENTS_DIR',
486
- },
557
+ agentsEnvVar: 'PEAKS_ZCODE_AGENTS_DIR'
558
+ }
487
559
  };
488
560
 
489
561
  function detectInstalledIdeId(projectRoot) {
@@ -535,7 +607,11 @@ function resolveIdeSkillInstallProfile(ideId) {
535
607
  function isPlatformPresent(ideId, profile, projectRoot) {
536
608
  if (profile.alwaysPresent === true) return true;
537
609
  const detection = IDE_DETECTION_DIRS.find((entry) => entry.id === ideId);
538
- if (detection !== undefined && projectRoot !== null && existsSync(join(projectRoot, detection.dir))) {
610
+ if (
611
+ detection !== undefined &&
612
+ projectRoot !== null &&
613
+ existsSync(join(projectRoot, detection.dir))
614
+ ) {
539
615
  return true;
540
616
  }
541
617
  return existsSync(dirname(profile.skillsDir));
@@ -560,7 +636,10 @@ function warnNoIdeDetected(projectRoot) {
560
636
 
561
637
  function writeMergedConfig(configPath, label, defaults, writeConfig) {
562
638
  const existing = readConfigFile(configPath, label);
563
- const next = { ...(existing === null ? defaults : mergeMissingConfigValues(existing, defaults)), version: defaults.version };
639
+ const next = {
640
+ ...(existing === null ? defaults : mergeMissingConfigValues(existing, defaults)),
641
+ version: defaults.version
642
+ };
564
643
  const currentJson = existing === null ? null : `${JSON.stringify(existing, null, 2)}\n`;
565
644
  const nextJson = `${JSON.stringify(next, null, 2)}\n`;
566
645
 
@@ -573,7 +652,10 @@ function writeMergedConfig(configPath, label, defaults, writeConfig) {
573
652
  }
574
653
 
575
654
  export function installUserConfig(options = {}) {
576
- if (process.env.PEAKS_SKIP_SKILL_INSTALL === '1' || process.env.PEAKS_SKIP_USER_CONFIG_INSTALL === '1') {
655
+ if (
656
+ process.env.PEAKS_SKIP_SKILL_INSTALL === '1' ||
657
+ process.env.PEAKS_SKIP_USER_CONFIG_INSTALL === '1'
658
+ ) {
577
659
  return createConfigResult({ skipped: true });
578
660
  }
579
661
 
@@ -589,7 +671,12 @@ export function installUserConfig(options = {}) {
589
671
  }
590
672
  validateUserConfigPaths(userRoot, peaksRoot, configPath);
591
673
 
592
- return writeMergedConfig(configPath, 'User', createConfigDefaults(options.packageRoot), (content) => writeUserConfig(userRoot, peaksRoot, configPath, content));
674
+ return writeMergedConfig(
675
+ configPath,
676
+ 'User',
677
+ createConfigDefaults(options.packageRoot),
678
+ (content) => writeUserConfig(userRoot, peaksRoot, configPath, content)
679
+ );
593
680
  }
594
681
 
595
682
  /*
@@ -631,20 +718,32 @@ export function installBundledSkills(options = {}) {
631
718
  const detectedIdeId = detectInstalledIdeId(projectRoot);
632
719
  const detectedProfile = resolveIdeSkillInstallProfile(detectedIdeId);
633
720
 
634
- if (options.targetRoot === undefined && options.ideId === undefined && detectedProfile === null && detectedIdeId !== null) {
721
+ if (
722
+ options.targetRoot === undefined &&
723
+ options.ideId === undefined &&
724
+ detectedProfile === null &&
725
+ detectedIdeId !== null
726
+ ) {
635
727
  warnUnverifiedIde(detectedIdeId, projectRoot ?? '(project root unknown)');
636
728
  }
637
- if (options.targetRoot === undefined && options.ideId === undefined && detectedIdeId === null && projectRoot !== null) {
729
+ if (
730
+ options.targetRoot === undefined &&
731
+ options.ideId === undefined &&
732
+ detectedIdeId === null &&
733
+ projectRoot !== null
734
+ ) {
638
735
  warnNoIdeDetected(projectRoot);
639
736
  }
640
737
 
641
738
  const profileSkillsDir = detectedProfile?.skillsDir ?? null;
642
739
  const targetRoot = resolve(
643
- options.targetRoot
644
- ?? (options.ideId !== undefined ? resolveIdeSkillInstallProfile(options.ideId)?.skillsDir ?? null : null)
645
- ?? process.env.PEAKS_CLAUDE_SKILLS_DIR
646
- ?? profileSkillsDir
647
- ?? join(homedir(), '.claude', 'skills')
740
+ options.targetRoot ??
741
+ (options.ideId !== undefined
742
+ ? (resolveIdeSkillInstallProfile(options.ideId)?.skillsDir ?? null)
743
+ : null) ??
744
+ process.env.PEAKS_CLAUDE_SKILLS_DIR ??
745
+ profileSkillsDir ??
746
+ join(homedir(), '.claude', 'skills')
648
747
  );
649
748
 
650
749
  const installed = [];
@@ -782,11 +881,13 @@ export function installBundledOutputStyles(options = {}) {
782
881
 
783
882
  const profileOutputStylesDir = detectedProfile?.outputStylesDir ?? null;
784
883
  const targetRoot = resolve(
785
- options.targetRoot
786
- ?? (options.ideId !== undefined ? resolveIdeSkillInstallProfile(options.ideId)?.outputStylesDir ?? null : null)
787
- ?? process.env.PEAKS_CLAUDE_OUTPUT_STYLES_DIR
788
- ?? profileOutputStylesDir
789
- ?? join(homedir(), '.claude', 'output-styles')
884
+ options.targetRoot ??
885
+ (options.ideId !== undefined
886
+ ? (resolveIdeSkillInstallProfile(options.ideId)?.outputStylesDir ?? null)
887
+ : null) ??
888
+ process.env.PEAKS_CLAUDE_OUTPUT_STYLES_DIR ??
889
+ profileOutputStylesDir ??
890
+ join(homedir(), '.claude', 'output-styles')
790
891
  );
791
892
 
792
893
  const installed = [];
@@ -805,7 +906,12 @@ export function installBundledOutputStyles(options = {}) {
805
906
  const current = getPathStats(targetPath);
806
907
  if (current) {
807
908
  const managedTarget = getManagedTarget(targetPath);
808
- const managedTargetIdentity = getManagedPeaksOutputStyleIdentity(managedTarget, targetPath, sourcePath, outputStyleName);
909
+ const managedTargetIdentity = getManagedPeaksOutputStyleIdentity(
910
+ managedTarget,
911
+ targetPath,
912
+ sourcePath,
913
+ outputStyleName
914
+ );
809
915
  if (isSameFileIdentity(targetPath, managedTargetIdentity)) {
810
916
  validateOutputStylesRoot();
811
917
  if (!isSameFileIdentity(targetPath, managedTargetIdentity)) {
@@ -826,12 +932,22 @@ export function installBundledOutputStyles(options = {}) {
826
932
  validateOutputStylesRoot();
827
933
  unlinkSync(markerPath);
828
934
  }
829
- const createdTargetIdentity = writeFileExclusively(targetPath, readPackageSourceFile(sourcePath), 'Peaks output style path changed during write', validateOutputStylesRoot);
935
+ const createdTargetIdentity = writeFileExclusively(
936
+ targetPath,
937
+ readPackageSourceFile(sourcePath),
938
+ 'Peaks output style path changed during write',
939
+ validateOutputStylesRoot
940
+ );
830
941
  try {
831
- writeFileExclusively(markerPath, createManagedOutputStyleMarker(sourcePath, outputStyleName), 'Peaks managed marker path changed during write', () => {
832
- validateOutputStylesRoot();
833
- validateManagedMarkerPath(markerPath);
834
- });
942
+ writeFileExclusively(
943
+ markerPath,
944
+ createManagedOutputStyleMarker(sourcePath, outputStyleName),
945
+ 'Peaks managed marker path changed during write',
946
+ () => {
947
+ validateOutputStylesRoot();
948
+ validateManagedMarkerPath(markerPath);
949
+ }
950
+ );
835
951
  } catch (error) {
836
952
  validateOutputStylesRoot();
837
953
  if (isSameFileIdentity(targetPath, createdTargetIdentity)) {
@@ -883,14 +999,17 @@ function resolveSettingsFilePath(options = {}) {
883
999
  }
884
1000
 
885
1001
  export function installBundledOutputStyleDefault(options = {}) {
886
- if (process.env.PEAKS_SKIP_SKILL_INSTALL === '1' || process.env.PEAKS_SKIP_OUTPUT_STYLE_DEFAULT === '1') {
1002
+ if (
1003
+ process.env.PEAKS_SKIP_SKILL_INSTALL === '1' ||
1004
+ process.env.PEAKS_SKIP_OUTPUT_STYLE_DEFAULT === '1'
1005
+ ) {
887
1006
  return { skipped: true, reason: 'PEAKS_SKIP_OUTPUT_STYLE_DEFAULT=1' };
888
1007
  }
889
1008
 
890
1009
  const bundledStylesDir = resolve(
891
- options.targetRoot
892
- ?? process.env.PEAKS_CLAUDE_OUTPUT_STYLES_DIR
893
- ?? join(homedir(), '.claude', 'output-styles')
1010
+ options.targetRoot ??
1011
+ process.env.PEAKS_CLAUDE_OUTPUT_STYLES_DIR ??
1012
+ join(homedir(), '.claude', 'output-styles')
894
1013
  );
895
1014
  const settingsPath = resolveSettingsFilePath(options);
896
1015
  const bundledStyleName = 'peaks-skill-swarm.md';
@@ -938,13 +1057,21 @@ export function installBundledOutputStyleDefault(options = {}) {
938
1057
  }
939
1058
 
940
1059
  // User-authored outputStyle wins — never overwrite.
941
- if (existing !== null && typeof existing.outputStyle === 'string' && existing.outputStyle.length > 0) {
942
- return { skipped: true, reason: `user-defined outputStyle already set: ${existing.outputStyle}` };
1060
+ if (
1061
+ existing !== null &&
1062
+ typeof existing.outputStyle === 'string' &&
1063
+ existing.outputStyle.length > 0
1064
+ ) {
1065
+ return {
1066
+ skipped: true,
1067
+ reason: `user-defined outputStyle already set: ${existing.outputStyle}`
1068
+ };
943
1069
  }
944
1070
 
945
- const next = existing === null
946
- ? { outputStyle: 'peaks-skill-swarm' }
947
- : { ...existing, outputStyle: 'peaks-skill-swarm' };
1071
+ const next =
1072
+ existing === null
1073
+ ? { outputStyle: 'peaks-skill-swarm' }
1074
+ : { ...existing, outputStyle: 'peaks-skill-swarm' };
948
1075
 
949
1076
  const existingJson = existing === null ? null : `${JSON.stringify(existing, null, 2)}\n`;
950
1077
  const nextJson = `${JSON.stringify(next, null, 2)}\n`;
@@ -978,7 +1105,7 @@ export function installBundledOutputStyleDefault(options = {}) {
978
1105
  created: existing === null,
979
1106
  updated: existing !== null,
980
1107
  settingsPath,
981
- outputStyle: 'peaks-skill-swarm',
1108
+ outputStyle: 'peaks-skill-swarm'
982
1109
  };
983
1110
  }
984
1111
 
@@ -1013,7 +1140,13 @@ function parseManagedAgentMarker(managedTarget) {
1013
1140
  if (managedTarget === null) return null;
1014
1141
  try {
1015
1142
  const marker = JSON.parse(managedTarget);
1016
- if (marker?.version !== 1 || marker?.kind !== 'agent' || typeof marker.agentName !== 'string' || typeof marker.sourcePath !== 'string' || typeof marker.contentSha256 !== 'string') {
1143
+ if (
1144
+ marker?.version !== 1 ||
1145
+ marker?.kind !== 'agent' ||
1146
+ typeof marker.agentName !== 'string' ||
1147
+ typeof marker.sourcePath !== 'string' ||
1148
+ typeof marker.contentSha256 !== 'string'
1149
+ ) {
1017
1150
  return null;
1018
1151
  }
1019
1152
  return marker;
@@ -1023,13 +1156,23 @@ function parseManagedAgentMarker(managedTarget) {
1023
1156
  }
1024
1157
 
1025
1158
  function isTrustedAgentSource(marker, sourcePath, agentName) {
1026
- return marker.agentName === agentName && resolve(marker.sourcePath) === resolve(sourcePath) && basename(resolve(marker.sourcePath)) === agentName;
1159
+ return (
1160
+ marker.agentName === agentName &&
1161
+ resolve(marker.sourcePath) === resolve(sourcePath) &&
1162
+ basename(resolve(marker.sourcePath)) === agentName
1163
+ );
1027
1164
  }
1028
1165
 
1029
1166
  function getManagedPeaksAgentIdentity(managedTarget, targetPath, sourcePath, agentName) {
1030
1167
  const marker = parseManagedAgentMarker(managedTarget);
1031
1168
  const sourceHash = hashContent(readPackageSourceFile(sourcePath));
1032
- if (marker === null || !isTrustedAgentSource(marker, sourcePath, agentName) || !existsSync(targetPath) || hashFileContent(targetPath) !== sourceHash || marker.contentSha256 !== sourceHash) {
1169
+ if (
1170
+ marker === null ||
1171
+ !isTrustedAgentSource(marker, sourcePath, agentName) ||
1172
+ !existsSync(targetPath) ||
1173
+ hashFileContent(targetPath) !== sourceHash ||
1174
+ marker.contentSha256 !== sourceHash
1175
+ ) {
1033
1176
  return null;
1034
1177
  }
1035
1178
  return createFileIdentity(targetPath);
@@ -1042,7 +1185,11 @@ export function installBundledAgents(options = {}) {
1042
1185
  // Per-IDE env-var override (claude-code only today): PEAKS_CLAUDE_AGENTS_DIR.
1043
1186
  // Universal escape hatch: PEAKS_SKIP_AGENT_INSTALL=1 (parallel to
1044
1187
  // PEAKS_SKIP_SKILL_INSTALL).
1045
- if (process.env.PEAKS_SKIP_SKILL_INSTALL === '1' || process.env.PEAKS_SKIP_AGENT_INSTALL === '1' || !existsSync(agentsRoot)) {
1188
+ if (
1189
+ process.env.PEAKS_SKIP_SKILL_INSTALL === '1' ||
1190
+ process.env.PEAKS_SKIP_AGENT_INSTALL === '1' ||
1191
+ !existsSync(agentsRoot)
1192
+ ) {
1046
1193
  return createInstallResult();
1047
1194
  }
1048
1195
 
@@ -1053,11 +1200,13 @@ export function installBundledAgents(options = {}) {
1053
1200
 
1054
1201
  const profileAgentsDir = detectedProfile?.agentsDir ?? null;
1055
1202
  const targetRoot = resolve(
1056
- options.targetRoot
1057
- ?? (options.ideId !== undefined ? resolveIdeSkillInstallProfile(options.ideId)?.agentsDir ?? null : null)
1058
- ?? process.env.PEAKS_CLAUDE_AGENTS_DIR
1059
- ?? profileAgentsDir
1060
- ?? join(homedir(), '.claude', 'agents')
1203
+ options.targetRoot ??
1204
+ (options.ideId !== undefined
1205
+ ? (resolveIdeSkillInstallProfile(options.ideId)?.agentsDir ?? null)
1206
+ : null) ??
1207
+ process.env.PEAKS_CLAUDE_AGENTS_DIR ??
1208
+ profileAgentsDir ??
1209
+ join(homedir(), '.claude', 'agents')
1061
1210
  );
1062
1211
 
1063
1212
  const installed = [];
@@ -1076,7 +1225,12 @@ export function installBundledAgents(options = {}) {
1076
1225
  const current = getPathStats(targetPath);
1077
1226
  if (current) {
1078
1227
  const managedTarget = getManagedTarget(targetPath);
1079
- const managedTargetIdentity = getManagedPeaksAgentIdentity(managedTarget, targetPath, sourcePath, agentFileName);
1228
+ const managedTargetIdentity = getManagedPeaksAgentIdentity(
1229
+ managedTarget,
1230
+ targetPath,
1231
+ sourcePath,
1232
+ agentFileName
1233
+ );
1080
1234
  if (isSameFileIdentity(targetPath, managedTargetIdentity)) {
1081
1235
  validateAgentsRoot();
1082
1236
  if (!isSameFileIdentity(targetPath, managedTargetIdentity)) {
@@ -1097,12 +1251,22 @@ export function installBundledAgents(options = {}) {
1097
1251
  validateAgentsRoot();
1098
1252
  unlinkSync(markerPath);
1099
1253
  }
1100
- const createdTargetIdentity = writeFileExclusively(targetPath, readPackageSourceFile(sourcePath), 'Peaks agent path changed during write', validateAgentsRoot);
1254
+ const createdTargetIdentity = writeFileExclusively(
1255
+ targetPath,
1256
+ readPackageSourceFile(sourcePath),
1257
+ 'Peaks agent path changed during write',
1258
+ validateAgentsRoot
1259
+ );
1101
1260
  try {
1102
- writeFileExclusively(markerPath, createManagedAgentMarker(sourcePath, agentFileName), 'Peaks managed marker path changed during write', () => {
1103
- validateAgentsRoot();
1104
- validateManagedMarkerPath(markerPath);
1105
- });
1261
+ writeFileExclusively(
1262
+ markerPath,
1263
+ createManagedAgentMarker(sourcePath, agentFileName),
1264
+ 'Peaks managed marker path changed during write',
1265
+ () => {
1266
+ validateAgentsRoot();
1267
+ validateManagedMarkerPath(markerPath);
1268
+ }
1269
+ );
1106
1270
  } catch (error) {
1107
1271
  validateAgentsRoot();
1108
1272
  if (isSameFileIdentity(targetPath, createdTargetIdentity)) {
@@ -1149,20 +1313,19 @@ export function installBundledAgentsForAllPlatforms(options = {}) {
1149
1313
  // claude-code iteration, if the env var is set, use it as
1150
1314
  // `targetRoot` (so the env var takes priority over the profile).
1151
1315
  // For test mode, options.targetRoot also wins.
1152
- const envOverride = ideId === 'claude-code'
1153
- ? process.env.PEAKS_CLAUDE_AGENTS_DIR
1154
- : undefined;
1155
- const platformOpts = (envOverride !== undefined && envOverride.length > 0)
1156
- ? { ...options, ideId, targetRoot: envOverride }
1157
- : (options.targetRoot !== undefined
1158
- ? { ...options, ideId, targetRoot: options.targetRoot }
1159
- : { ...options, ideId });
1316
+ const envOverride = ideId === 'claude-code' ? process.env.PEAKS_CLAUDE_AGENTS_DIR : undefined;
1317
+ const platformOpts =
1318
+ envOverride !== undefined && envOverride.length > 0
1319
+ ? { ...options, ideId, targetRoot: envOverride }
1320
+ : options.targetRoot !== undefined
1321
+ ? { ...options, ideId, targetRoot: options.targetRoot }
1322
+ : { ...options, ideId };
1160
1323
  const result = installBundledAgents(platformOpts);
1161
1324
  perPlatform.push({
1162
1325
  ideId,
1163
1326
  agentsDir: profile.agentsDir,
1164
1327
  installed: result.installed,
1165
- skipped: result.skipped,
1328
+ skipped: result.skipped
1166
1329
  });
1167
1330
  } catch (err) {
1168
1331
  const message = err instanceof Error ? err.message : String(err);
@@ -1174,7 +1337,7 @@ export function installBundledAgentsForAllPlatforms(options = {}) {
1174
1337
  agentsDir: profile.agentsDir,
1175
1338
  installed: [],
1176
1339
  skipped: [],
1177
- error: message,
1340
+ error: message
1178
1341
  });
1179
1342
  }
1180
1343
  }
@@ -1227,7 +1390,7 @@ export function installBundledSkillsForAllPlatforms(options = {}) {
1227
1390
  ideId,
1228
1391
  skillsDir: IDE_SKILL_INSTALL_PROFILES[ideId]?.skillsDir ?? '(unknown)',
1229
1392
  installed: result.installed,
1230
- skipped: result.skipped,
1393
+ skipped: result.skipped
1231
1394
  });
1232
1395
  } catch (err) {
1233
1396
  const message = err instanceof Error ? err.message : String(err);
@@ -1239,7 +1402,7 @@ export function installBundledSkillsForAllPlatforms(options = {}) {
1239
1402
  skillsDir: IDE_SKILL_INSTALL_PROFILES[ideId]?.skillsDir ?? '(unknown)',
1240
1403
  installed: [],
1241
1404
  skipped: [],
1242
- error: message,
1405
+ error: message
1243
1406
  });
1244
1407
  }
1245
1408
  }
@@ -1306,7 +1469,9 @@ export function detect1xProjectState(cwd = process.cwd()) {
1306
1469
  try {
1307
1470
  const body = readFileSync(devPref, 'utf8');
1308
1471
  if (/peaks progress/i.test(body)) {
1309
- signals.push(`${devPref} references "peaks progress" (1.x CLI surface, removed in slice #014)`);
1472
+ signals.push(
1473
+ `${devPref} references "peaks progress" (1.x CLI surface, removed in slice #014)`
1474
+ );
1310
1475
  }
1311
1476
  } catch {
1312
1477
  // ignore
@@ -1320,7 +1485,9 @@ export function detect1xProjectState(cwd = process.cwd()) {
1320
1485
  try {
1321
1486
  const raw = JSON.parse(readFileSync(prefs, 'utf8'));
1322
1487
  if (raw.schema_version !== '2.0.0') {
1323
- signals.push(`${prefs} has schema_version ${JSON.stringify(raw.schema_version)}, expected '2.0.0'`);
1488
+ signals.push(
1489
+ `${prefs} has schema_version ${JSON.stringify(raw.schema_version)}, expected '2.0.0'`
1490
+ );
1324
1491
  }
1325
1492
  } catch {
1326
1493
  signals.push(`${prefs} exists but is not valid JSON`);
@@ -1332,7 +1499,7 @@ export function detect1xProjectState(cwd = process.cwd()) {
1332
1499
  isOneX: signals.length > 0,
1333
1500
  signals,
1334
1501
  projectRoot,
1335
- configPath,
1502
+ configPath
1336
1503
  };
1337
1504
  }
1338
1505
 
@@ -1368,12 +1535,16 @@ export async function autoUpgrade1xProjectIfPresent(options = {}) {
1368
1535
  // We shell out via spawnSync (synchronous; the postinstall
1369
1536
  // is already synchronous and the umbrella is fast).
1370
1537
  try {
1371
- const result = spawnSync('peaks', ['upgrade', '--to', '2.0', '--auto', '--project', state.projectRoot], {
1372
- encoding: 'utf8',
1373
- stdio: ['ignore', 'pipe', 'pipe'],
1374
- timeout: 120_000,
1375
- windowsHide: true,
1376
- });
1538
+ const result = spawnSync(
1539
+ 'peaks',
1540
+ ['upgrade', '--to', '2.0', '--auto', '--project', state.projectRoot],
1541
+ {
1542
+ encoding: 'utf8',
1543
+ stdio: ['ignore', 'pipe', 'pipe'],
1544
+ timeout: 120_000,
1545
+ windowsHide: true
1546
+ }
1547
+ );
1377
1548
  return {
1378
1549
  ran: true,
1379
1550
  reason: 'auto-upgrade dispatched',
@@ -1381,7 +1552,7 @@ export async function autoUpgrade1xProjectIfPresent(options = {}) {
1381
1552
  projectRoot: state.projectRoot,
1382
1553
  exitCode: result.status,
1383
1554
  stdout: result.stdout ?? '',
1384
- stderr: result.stderr ?? '',
1555
+ stderr: result.stderr ?? ''
1385
1556
  };
1386
1557
  } catch (err) {
1387
1558
  return {
@@ -1389,12 +1560,15 @@ export async function autoUpgrade1xProjectIfPresent(options = {}) {
1389
1560
  reason: 'auto-upgrade dispatched but failed',
1390
1561
  signals: state.signals,
1391
1562
  projectRoot: state.projectRoot,
1392
- error: err instanceof Error ? err.message : String(err),
1563
+ error: err instanceof Error ? err.message : String(err)
1393
1564
  };
1394
1565
  }
1395
1566
  }
1396
1567
 
1397
- if (process.argv[1] !== undefined && import.meta.url === pathToFileURL(resolve(process.argv[1])).href) {
1568
+ if (
1569
+ process.argv[1] !== undefined &&
1570
+ import.meta.url === pathToFileURL(resolve(process.argv[1])).href
1571
+ ) {
1398
1572
  try {
1399
1573
  // 2.0 fix for the 1.x Trae bug (per real user feedback
1400
1574
  // 2026-06-11): iterate every platform the user HAS, not just the
@@ -1439,10 +1613,14 @@ if (process.argv[1] !== undefined && import.meta.url === pathToFileURL(resolve(p
1439
1613
  process.stderr.write(`Peaks user config was not installed: ${message}\n`);
1440
1614
  }
1441
1615
  if (outputStylesResult.installed.length > 0) {
1442
- process.stdout.write(`Peaks output styles installed: ${outputStylesResult.installed.join(', ')}\n`);
1616
+ process.stdout.write(
1617
+ `Peaks output styles installed: ${outputStylesResult.installed.join(', ')}\n`
1618
+ );
1443
1619
  }
1444
1620
  if (outputStylesResult.skipped.length > 0) {
1445
- process.stderr.write(`Peaks output styles skipped because local files already exist: ${outputStylesResult.skipped.join(', ')}\n`);
1621
+ process.stderr.write(
1622
+ `Peaks output styles skipped because local files already exist: ${outputStylesResult.skipped.join(', ')}\n`
1623
+ );
1446
1624
  }
1447
1625
 
1448
1626
  // Slice 2026-08-02 — auto-register bundled output style.
@@ -1465,9 +1643,11 @@ if (process.argv[1] !== undefined && import.meta.url === pathToFileURL(resolve(p
1465
1643
  // style file was dispatched to an env-overridden dir, the
1466
1644
  // auto-register step checks THAT dir, not the user's homedir.
1467
1645
  try {
1468
- const dispatchTargetRoot = process.env.PEAKS_CLAUDE_OUTPUT_STYLES_DIR
1469
- ?? join(homedir(), '.claude', 'output-styles');
1470
- const styleDefaultResult = installBundledOutputStyleDefault({ targetRoot: dispatchTargetRoot });
1646
+ const dispatchTargetRoot =
1647
+ process.env.PEAKS_CLAUDE_OUTPUT_STYLES_DIR ?? join(homedir(), '.claude', 'output-styles');
1648
+ const styleDefaultResult = installBundledOutputStyleDefault({
1649
+ targetRoot: dispatchTargetRoot
1650
+ });
1471
1651
  if (styleDefaultResult.installed) {
1472
1652
  process.stdout.write(
1473
1653
  `Peaks output style auto-registered: ${styleDefaultResult.outputStyle}\n` +