agentic-qe 3.14.3 → 3.14.5

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 (786) hide show
  1. package/.claude/agents/v3/qe-coverage-specialist.md +1 -1
  2. package/.claude/agents/v3/qe-fleet-commander.md +1 -1
  3. package/.claude/agents/v3/qe-pentest-validator.md +1 -1
  4. package/.claude/agents/v3/qe-queen-coordinator.md +1 -1
  5. package/.claude/agents/v3/qe-risk-assessor.md +1 -1
  6. package/.claude/agents/v3/qe-root-cause-analyzer.md +1 -1
  7. package/.claude/agents/v3/qe-security-auditor.md +1 -1
  8. package/.claude/agents/v3/qe-test-architect.md +1 -1
  9. package/.claude/commands/aqe-costs.md +10 -10
  10. package/.claude/helpers/advisor-call.cjs +3 -3
  11. package/.claude/helpers/v3/advisor-call.cjs +3 -3
  12. package/.claude/skills/.validation/examples/chaos-engineering-output.example.json +1 -1
  13. package/.claude/skills/.validation/examples/performance-testing-output.example.json +1 -1
  14. package/.claude/skills/.validation/examples/security-testing-output.example.json +1 -1
  15. package/.claude/skills/.validation/examples/testability-scoring-output.example.json +1 -1
  16. package/.claude/skills/.validation/schemas/skill-eval.schema.json +4 -1
  17. package/.claude/skills/.validation/schemas/skill-frontmatter.schema.json +1 -1
  18. package/.claude/skills/.validation/schemas/skill-output.template.json +1 -1
  19. package/.claude/skills/.validation/templates/eval.template.yaml +1 -1
  20. package/.claude/skills/.validation/templates/security-testing-eval.template.yaml +1 -1
  21. package/.claude/skills/.validation/templates/skill-frontmatter.example.yaml +1 -1
  22. package/.claude/skills/.validation/test-data/sample-output.json +1 -1
  23. package/.claude/skills/a11y-ally/SKILL.md +1 -1
  24. package/.claude/skills/a11y-ally/evals/a11y-ally.yaml +1 -1
  25. package/.claude/skills/accessibility-testing/evals/accessibility-testing.yaml +1 -1
  26. package/.claude/skills/api-testing-patterns/evals/api-testing-patterns.yaml +1 -1
  27. package/.claude/skills/chaos-engineering-resilience/evals/chaos-engineering-resilience.yaml +1 -1
  28. package/.claude/skills/cicd-pipeline-qe-orchestrator/evals/cicd-pipeline-qe-orchestrator.yaml +1 -1
  29. package/.claude/skills/compatibility-testing/evals/compatibility-testing.yaml +1 -1
  30. package/.claude/skills/compliance-testing/evals/compliance-testing.yaml +1 -1
  31. package/.claude/skills/contract-testing/evals/contract-testing.yaml +1 -1
  32. package/.claude/skills/database-testing/evals/database-testing.yaml +1 -1
  33. package/.claude/skills/enterprise-integration-testing/evals/enterprise-integration-testing.yaml +1 -1
  34. package/.claude/skills/localization-testing/evals/localization-testing.yaml +1 -1
  35. package/.claude/skills/middleware-testing-patterns/evals/middleware-testing-patterns.yaml +1 -1
  36. package/.claude/skills/mobile-testing/evals/mobile-testing.yaml +1 -1
  37. package/.claude/skills/mutation-testing/evals/mutation-testing.yaml +1 -1
  38. package/.claude/skills/mutation-testing/test-data/sample-output.json +1 -1
  39. package/.claude/skills/n8n-expression-testing/evals/n8n-expression-testing.yaml +1 -1
  40. package/.claude/skills/n8n-integration-testing-patterns/evals/n8n-integration-testing-patterns.yaml +1 -1
  41. package/.claude/skills/n8n-security-testing/evals/n8n-security-testing.yaml +1 -1
  42. package/.claude/skills/n8n-trigger-testing-strategies/evals/n8n-trigger-testing-strategies.yaml +1 -1
  43. package/.claude/skills/n8n-workflow-testing-fundamentals/evals/n8n-workflow-testing-fundamentals.yaml +1 -1
  44. package/.claude/skills/observability-testing-patterns/evals/observability-testing-patterns.yaml +1 -1
  45. package/.claude/skills/pentest-validation/evals/pentest-validation.yaml +1 -1
  46. package/.claude/skills/performance-testing/evals/performance-testing.yaml +1 -1
  47. package/.claude/skills/qcsd-cicd-swarm/evals/qcsd-cicd-swarm.yaml +1 -1
  48. package/.claude/skills/qcsd-development-swarm/evals/qcsd-development-swarm.yaml +1 -1
  49. package/.claude/skills/qcsd-ideation-swarm/evals/qcsd-ideation-swarm.yaml +1 -1
  50. package/.claude/skills/qcsd-production-swarm/evals/qcsd-production-swarm.yaml +1 -1
  51. package/.claude/skills/qcsd-refinement-swarm/evals/qcsd-refinement-swarm.yaml +1 -1
  52. package/.claude/skills/qe-browser/evals/qe-browser.yaml +1 -1
  53. package/.claude/skills/qe-chaos-resilience/evals/qe-chaos-resilience.yaml +1 -1
  54. package/.claude/skills/qe-code-intelligence/evals/qe-code-intelligence.yaml +1 -1
  55. package/.claude/skills/qe-coverage-analysis/evals/qe-coverage-analysis.yaml +1 -1
  56. package/.claude/skills/qe-defect-intelligence/evals/qe-defect-intelligence.yaml +1 -1
  57. package/.claude/skills/qe-learning-optimization/evals/qe-learning-optimization.yaml +2 -2
  58. package/.claude/skills/qe-quality-assessment/evals/qe-quality-assessment.yaml +1 -1
  59. package/.claude/skills/qe-requirements-validation/evals/qe-requirements-validation.yaml +1 -1
  60. package/.claude/skills/qe-test-execution/evals/qe-test-execution.yaml +1 -1
  61. package/.claude/skills/qe-test-generation/evals/qe-test-generation.yaml +1 -1
  62. package/.claude/skills/qe-visual-accessibility/evals/qe-visual-accessibility.yaml +1 -1
  63. package/.claude/skills/quality-metrics/evals/quality-metrics.yaml +1 -1
  64. package/.claude/skills/regression-testing/evals/regression-testing.yaml +1 -1
  65. package/.claude/skills/risk-based-testing/evals/risk-based-testing.yaml +1 -1
  66. package/.claude/skills/security-testing/evals/security-testing.yaml +1 -1
  67. package/.claude/skills/security-visual-testing/evals/security-visual-testing.yaml +1 -1
  68. package/.claude/skills/shift-left-testing/evals/shift-left-testing.yaml +1 -1
  69. package/.claude/skills/shift-right-testing/evals/shift-right-testing.yaml +1 -1
  70. package/.claude/skills/skills-manifest.json +1 -1
  71. package/.claude/skills/test-automation-strategy/evals/test-automation-strategy.yaml +1 -1
  72. package/.claude/skills/test-data-management/evals/test-data-management.yaml +1 -1
  73. package/.claude/skills/test-design-techniques/evals/test-design-techniques.yaml +1 -1
  74. package/.claude/skills/test-reporting-analytics/evals/test-reporting-analytics.yaml +1 -1
  75. package/.claude/skills/testability-scoring/evals/testability-scoring.yaml +1 -1
  76. package/.claude/skills/validation-pipeline/evals/validation-pipeline.yaml +1 -1
  77. package/.claude/skills/verification-quality/evals/verification-quality.yaml +1 -1
  78. package/.claude/skills/visual-testing-advanced/evals/visual-testing-advanced.yaml +1 -1
  79. package/.claude/skills/wms-testing-patterns/evals/wms-testing-patterns.yaml +1 -1
  80. package/.opencode/agents/collective-intelligence-coordinator.yaml +1 -1
  81. package/.opencode/agents/ddd-domain-expert.yaml +1 -1
  82. package/.opencode/agents/memory-specialist.yaml +1 -1
  83. package/.opencode/agents/performance-engineer.yaml +1 -1
  84. package/.opencode/agents/qe-accessibility-auditor.yaml +1 -1
  85. package/.opencode/agents/qe-api-contract-validator.yaml +1 -1
  86. package/.opencode/agents/qe-bdd-generator.yaml +1 -1
  87. package/.opencode/agents/qe-chaos-engineer.yaml +1 -1
  88. package/.opencode/agents/qe-code-complexity.yaml +1 -1
  89. package/.opencode/agents/qe-code-intelligence.yaml +1 -1
  90. package/.opencode/agents/qe-coverage-analyzer.yaml +1 -1
  91. package/.opencode/agents/qe-defect-predictor.yaml +1 -1
  92. package/.opencode/agents/qe-dependency-mapper.yaml +1 -1
  93. package/.opencode/agents/qe-deployment-advisor.yaml +1 -1
  94. package/.opencode/agents/qe-devils-advocate.yaml +1 -1
  95. package/.opencode/agents/qe-flaky-hunter.yaml +1 -1
  96. package/.opencode/agents/qe-fleet-commander.yaml +1 -1
  97. package/.opencode/agents/qe-gap-detector.yaml +1 -1
  98. package/.opencode/agents/qe-graphql-tester.yaml +1 -1
  99. package/.opencode/agents/qe-impact-analyzer.yaml +1 -1
  100. package/.opencode/agents/qe-integration-architect.yaml +1 -1
  101. package/.opencode/agents/qe-integration-tester.yaml +1 -1
  102. package/.opencode/agents/qe-kg-builder.yaml +1 -1
  103. package/.opencode/agents/qe-learning-coordinator.yaml +1 -1
  104. package/.opencode/agents/qe-load-tester.yaml +1 -1
  105. package/.opencode/agents/qe-message-broker-tester.yaml +1 -1
  106. package/.opencode/agents/qe-metrics-optimizer.yaml +1 -1
  107. package/.opencode/agents/qe-middleware-validator.yaml +1 -1
  108. package/.opencode/agents/qe-mutation-tester.yaml +1 -1
  109. package/.opencode/agents/qe-odata-contract-tester.yaml +1 -1
  110. package/.opencode/agents/qe-parallel-executor.yaml +1 -1
  111. package/.opencode/agents/qe-pattern-learner.yaml +1 -1
  112. package/.opencode/agents/qe-pentest-validator.yaml +1 -1
  113. package/.opencode/agents/qe-performance-tester.yaml +1 -1
  114. package/.opencode/agents/qe-product-factors-assessor.yaml +1 -1
  115. package/.opencode/agents/qe-property-tester.yaml +1 -1
  116. package/.opencode/agents/qe-quality-criteria-recommender.yaml +1 -1
  117. package/.opencode/agents/qe-quality-gate.yaml +1 -1
  118. package/.opencode/agents/qe-queen-coordinator.yaml +1 -1
  119. package/.opencode/agents/qe-qx-partner.yaml +1 -1
  120. package/.opencode/agents/qe-regression-analyzer.yaml +1 -1
  121. package/.opencode/agents/qe-requirements-validator.yaml +1 -1
  122. package/.opencode/agents/qe-responsive-tester.yaml +1 -1
  123. package/.opencode/agents/qe-retry-handler.yaml +1 -1
  124. package/.opencode/agents/qe-risk-assessor.yaml +1 -1
  125. package/.opencode/agents/qe-root-cause-analyzer.yaml +1 -1
  126. package/.opencode/agents/qe-sap-idoc-tester.yaml +1 -1
  127. package/.opencode/agents/qe-sap-rfc-tester.yaml +1 -1
  128. package/.opencode/agents/qe-security-auditor.yaml +1 -1
  129. package/.opencode/agents/qe-security-scanner.yaml +1 -1
  130. package/.opencode/agents/qe-soap-tester.yaml +1 -1
  131. package/.opencode/agents/qe-sod-analyzer.yaml +1 -1
  132. package/.opencode/agents/qe-tdd-specialist.yaml +1 -1
  133. package/.opencode/agents/qe-test-generator.yaml +1 -1
  134. package/.opencode/agents/qe-test-idea-rewriter.yaml +1 -1
  135. package/.opencode/agents/qe-transfer-specialist.yaml +1 -1
  136. package/.opencode/agents/qe-visual-tester.yaml +1 -1
  137. package/.opencode/agents/security-architect.yaml +1 -1
  138. package/.opencode/agents/security-auditor.yaml +1 -1
  139. package/CHANGELOG.md +204 -0
  140. package/README.md +7 -2
  141. package/assets/agents/v3/helpers/advisor-call.cjs +3 -3
  142. package/assets/agents/v3/qe-coverage-specialist.md +1 -1
  143. package/assets/agents/v3/qe-fleet-commander.md +1 -1
  144. package/assets/agents/v3/qe-pentest-validator.md +1 -1
  145. package/assets/agents/v3/qe-queen-coordinator.md +1 -1
  146. package/assets/agents/v3/qe-risk-assessor.md +1 -1
  147. package/assets/agents/v3/qe-root-cause-analyzer.md +1 -1
  148. package/assets/agents/v3/qe-security-auditor.md +1 -1
  149. package/assets/agents/v3/qe-test-architect.md +1 -1
  150. package/assets/skills/.validation/examples/chaos-engineering-output.example.json +1 -1
  151. package/assets/skills/.validation/examples/performance-testing-output.example.json +1 -1
  152. package/assets/skills/.validation/examples/security-testing-output.example.json +1 -1
  153. package/assets/skills/.validation/examples/testability-scoring-output.example.json +1 -1
  154. package/assets/skills/.validation/schemas/skill-eval.schema.json +4 -1
  155. package/assets/skills/.validation/schemas/skill-frontmatter.schema.json +1 -1
  156. package/assets/skills/.validation/schemas/skill-output.template.json +1 -1
  157. package/assets/skills/.validation/templates/eval.template.yaml +1 -1
  158. package/assets/skills/.validation/templates/security-testing-eval.template.yaml +1 -1
  159. package/assets/skills/.validation/templates/skill-frontmatter.example.yaml +1 -1
  160. package/assets/skills/.validation/test-data/sample-output.json +1 -1
  161. package/assets/skills/a11y-ally/SKILL.md +1 -1
  162. package/assets/skills/a11y-ally/evals/a11y-ally.yaml +1 -1
  163. package/assets/skills/accessibility-testing/evals/accessibility-testing.yaml +1 -1
  164. package/assets/skills/api-testing-patterns/evals/api-testing-patterns.yaml +1 -1
  165. package/assets/skills/chaos-engineering-resilience/evals/chaos-engineering-resilience.yaml +1 -1
  166. package/assets/skills/cicd-pipeline-qe-orchestrator/evals/cicd-pipeline-qe-orchestrator.yaml +1 -1
  167. package/assets/skills/compatibility-testing/evals/compatibility-testing.yaml +1 -1
  168. package/assets/skills/compliance-testing/evals/compliance-testing.yaml +1 -1
  169. package/assets/skills/contract-testing/evals/contract-testing.yaml +1 -1
  170. package/assets/skills/database-testing/evals/database-testing.yaml +1 -1
  171. package/assets/skills/enterprise-integration-testing/evals/enterprise-integration-testing.yaml +1 -1
  172. package/assets/skills/localization-testing/evals/localization-testing.yaml +1 -1
  173. package/assets/skills/middleware-testing-patterns/evals/middleware-testing-patterns.yaml +1 -1
  174. package/assets/skills/mobile-testing/evals/mobile-testing.yaml +1 -1
  175. package/assets/skills/mutation-testing/evals/mutation-testing.yaml +1 -1
  176. package/assets/skills/mutation-testing/test-data/sample-output.json +1 -1
  177. package/assets/skills/n8n-expression-testing/evals/n8n-expression-testing.yaml +1 -1
  178. package/assets/skills/n8n-integration-testing-patterns/evals/n8n-integration-testing-patterns.yaml +1 -1
  179. package/assets/skills/n8n-security-testing/evals/n8n-security-testing.yaml +1 -1
  180. package/assets/skills/n8n-trigger-testing-strategies/evals/n8n-trigger-testing-strategies.yaml +1 -1
  181. package/assets/skills/n8n-workflow-testing-fundamentals/evals/n8n-workflow-testing-fundamentals.yaml +1 -1
  182. package/assets/skills/observability-testing-patterns/evals/observability-testing-patterns.yaml +1 -1
  183. package/assets/skills/pentest-validation/evals/pentest-validation.yaml +1 -1
  184. package/assets/skills/performance-testing/evals/performance-testing.yaml +1 -1
  185. package/assets/skills/qcsd-cicd-swarm/evals/qcsd-cicd-swarm.yaml +1 -1
  186. package/assets/skills/qcsd-development-swarm/evals/qcsd-development-swarm.yaml +1 -1
  187. package/assets/skills/qcsd-ideation-swarm/evals/qcsd-ideation-swarm.yaml +1 -1
  188. package/assets/skills/qcsd-production-swarm/evals/qcsd-production-swarm.yaml +1 -1
  189. package/assets/skills/qcsd-refinement-swarm/evals/qcsd-refinement-swarm.yaml +1 -1
  190. package/assets/skills/qe-browser/evals/qe-browser.yaml +1 -1
  191. package/assets/skills/qe-chaos-resilience/evals/qe-chaos-resilience.yaml +1 -1
  192. package/assets/skills/qe-code-intelligence/evals/qe-code-intelligence.yaml +1 -1
  193. package/assets/skills/qe-coverage-analysis/evals/qe-coverage-analysis.yaml +1 -1
  194. package/assets/skills/qe-defect-intelligence/evals/qe-defect-intelligence.yaml +1 -1
  195. package/assets/skills/qe-learning-optimization/evals/qe-learning-optimization.yaml +2 -2
  196. package/assets/skills/qe-quality-assessment/evals/qe-quality-assessment.yaml +1 -1
  197. package/assets/skills/qe-requirements-validation/evals/qe-requirements-validation.yaml +1 -1
  198. package/assets/skills/qe-test-execution/evals/qe-test-execution.yaml +1 -1
  199. package/assets/skills/qe-test-generation/evals/qe-test-generation.yaml +1 -1
  200. package/assets/skills/qe-visual-accessibility/evals/qe-visual-accessibility.yaml +1 -1
  201. package/assets/skills/quality-metrics/evals/quality-metrics.yaml +1 -1
  202. package/assets/skills/regression-testing/evals/regression-testing.yaml +1 -1
  203. package/assets/skills/risk-based-testing/evals/risk-based-testing.yaml +1 -1
  204. package/assets/skills/security-testing/evals/security-testing.yaml +1 -1
  205. package/assets/skills/security-visual-testing/evals/security-visual-testing.yaml +1 -1
  206. package/assets/skills/shift-left-testing/evals/shift-left-testing.yaml +1 -1
  207. package/assets/skills/shift-right-testing/evals/shift-right-testing.yaml +1 -1
  208. package/assets/skills/skills-manifest.json +1 -1
  209. package/assets/skills/test-automation-strategy/evals/test-automation-strategy.yaml +1 -1
  210. package/assets/skills/test-data-management/evals/test-data-management.yaml +1 -1
  211. package/assets/skills/test-design-techniques/evals/test-design-techniques.yaml +1 -1
  212. package/assets/skills/test-reporting-analytics/evals/test-reporting-analytics.yaml +1 -1
  213. package/assets/skills/testability-scoring/evals/testability-scoring.yaml +1 -1
  214. package/assets/skills/validation-pipeline/evals/validation-pipeline.yaml +1 -1
  215. package/assets/skills/verification-quality/evals/verification-quality.yaml +1 -1
  216. package/assets/skills/visual-testing-advanced/evals/visual-testing-advanced.yaml +1 -1
  217. package/assets/skills/wms-testing-patterns/evals/wms-testing-patterns.yaml +1 -1
  218. package/dist/audit/witness-chain.d.ts +1 -1
  219. package/dist/audit/witness-chain.js +29 -22
  220. package/dist/cli/bundle.js +13 -10
  221. package/dist/cli/chunks/adapter-IYC62SXA.js +2 -0
  222. package/dist/cli/chunks/{agent-booster-wasm-TQOMLWWX.js → agent-booster-wasm-EDNKP3SP.js} +2 -2
  223. package/dist/cli/chunks/{agent-handler-Q3SEMMI2.js → agent-handler-V6CZ7Q6S.js} +2 -2
  224. package/dist/cli/chunks/{agent-memory-branch-SJXAQSZI.js → agent-memory-branch-ZMD6ULC3.js} +2 -2
  225. package/dist/cli/chunks/aqe-learning-engine-LLOU2IXD.js +2 -0
  226. package/dist/cli/chunks/{arena-7RC7TBGW.js → arena-4UPAEHFT.js} +4 -4
  227. package/dist/cli/chunks/{arena-UPB7TKUY.js → arena-QLSBESC7.js} +2 -2
  228. package/dist/cli/chunks/{audit-IXN5R4WB.js → audit-CVZQMF55.js} +3 -3
  229. package/dist/cli/chunks/base-P3Z4IKCT.js +2 -0
  230. package/dist/cli/chunks/{better-sqlite3-RP4DEGK3.js → better-sqlite3-4DSBPDRH.js} +2 -2
  231. package/dist/cli/chunks/brain-handler-GBY4EZ4P.js +94 -0
  232. package/dist/cli/chunks/{branch-enumerator-VPRWDGFJ.js → branch-enumerator-XYBVXCNO.js} +2 -2
  233. package/dist/cli/chunks/{browser-B6E7JPPJ.js → browser-32F6MREU.js} +2 -2
  234. package/dist/cli/chunks/browser-workflow-YYHQQ25X.js +2 -0
  235. package/dist/cli/chunks/{chunk-HOQQCY2K.js → chunk-2JGEZHWY.js} +2 -2
  236. package/dist/cli/chunks/{chunk-NN76NTOX.js → chunk-2KJQ2UQE.js} +1 -1
  237. package/dist/cli/chunks/{chunk-D4Z2N74A.js → chunk-2OMLTYQK.js} +1 -1
  238. package/dist/cli/chunks/chunk-37TUN44F.js +4 -0
  239. package/dist/cli/chunks/{chunk-LVLBIKJD.js → chunk-3DDXWYMO.js} +1 -1
  240. package/dist/cli/chunks/{chunk-UHQY3GK7.js → chunk-3EZ5DR2R.js} +3 -3
  241. package/dist/cli/chunks/{chunk-3P6NCFI2.js → chunk-3KDL6QDK.js} +2 -2
  242. package/dist/cli/chunks/{chunk-SG47AXJG.js → chunk-3VIXOHMS.js} +1 -1
  243. package/dist/cli/chunks/{chunk-7FYMDKQH.js → chunk-3YUB5HER.js} +165 -167
  244. package/dist/cli/chunks/chunk-4FWTLJEP.js +16 -0
  245. package/dist/cli/chunks/{chunk-PI74GOE4.js → chunk-52L77RMG.js} +2 -2
  246. package/dist/cli/chunks/{chunk-LS3EUMBP.js → chunk-5D36YHS3.js} +5 -5
  247. package/dist/cli/chunks/{chunk-EY4OQHU3.js → chunk-5WOSWNDN.js} +1 -1
  248. package/dist/cli/chunks/{chunk-F67AV5P2.js → chunk-67YV75XP.js} +2 -2
  249. package/dist/cli/chunks/{chunk-IP7NSFQQ.js → chunk-6A44AOGN.js} +2 -2
  250. package/dist/cli/chunks/{chunk-3ABRGG3C.js → chunk-6CR4VQBQ.js} +2 -2
  251. package/dist/cli/chunks/chunk-6ITZZIQX.js +2 -0
  252. package/dist/cli/chunks/{chunk-7BUERZYL.js → chunk-6LKDHEBY.js} +2 -2
  253. package/dist/cli/chunks/{chunk-FKG5OQFT.js → chunk-6TU7FEMD.js} +1 -1
  254. package/dist/cli/chunks/{chunk-KF63AYXD.js → chunk-6VAZAHQG.js} +2 -2
  255. package/dist/cli/chunks/{chunk-XXCYQXK3.js → chunk-73EI4C2E.js} +2 -2
  256. package/dist/cli/chunks/chunk-75QJ5HWE.js +14 -0
  257. package/dist/cli/chunks/{chunk-72UJXEKQ.js → chunk-7CD7PBHY.js} +2 -2
  258. package/dist/cli/chunks/chunk-7DETTOPZ.js +14 -0
  259. package/dist/cli/chunks/{chunk-7JQHPANT.js → chunk-7JZJJA7U.js} +3 -3
  260. package/dist/cli/chunks/{chunk-5Y5TC6BY.js → chunk-7VFY7TUR.js} +2 -2
  261. package/dist/cli/chunks/chunk-7X7JYWT4.js +27 -0
  262. package/dist/cli/chunks/chunk-AF4XKLXO.js +2 -0
  263. package/dist/cli/chunks/{chunk-7SLAZAVU.js → chunk-AFEDJ3RU.js} +2 -2
  264. package/dist/cli/chunks/{chunk-ZUG5MOUB.js → chunk-AMMQOV35.js} +2 -2
  265. package/dist/cli/chunks/{chunk-ZN3J6TZD.js → chunk-BHFR2EXL.js} +1 -1
  266. package/dist/cli/chunks/{chunk-HXE5NBJG.js → chunk-BJPL6THQ.js} +1 -1
  267. package/dist/cli/chunks/{chunk-37BASGWC.js → chunk-BXVAVFGU.js} +2 -2
  268. package/dist/cli/chunks/{chunk-VWNHKYK7.js → chunk-BYG36QC5.js} +2 -2
  269. package/dist/cli/chunks/chunk-C3HQL6S4.js +2 -0
  270. package/dist/cli/chunks/{chunk-OY7MLMEX.js → chunk-C3Z4VVHP.js} +5 -5
  271. package/dist/cli/chunks/{chunk-CB5JPRIZ.js → chunk-CPC7FN52.js} +2 -2
  272. package/dist/cli/chunks/{chunk-OVDKWCD7.js → chunk-CVMNJSCB.js} +2 -2
  273. package/dist/cli/chunks/{chunk-N4H2QOT5.js → chunk-CYE2TJFV.js} +2 -2
  274. package/dist/cli/chunks/{chunk-YCBDE2N7.js → chunk-CZO4BJG5.js} +2 -2
  275. package/dist/cli/chunks/{chunk-YEXPFHV6.js → chunk-D6OUCB2H.js} +2 -2
  276. package/dist/cli/chunks/{chunk-JRYZKBY2.js → chunk-DDCIYOGT.js} +2 -2
  277. package/dist/cli/chunks/{chunk-XX7HUSX2.js → chunk-DKUBQQFG.js} +2 -2
  278. package/dist/cli/chunks/{chunk-SGXSB7YO.js → chunk-DLF5BOJD.js} +1 -1
  279. package/dist/cli/chunks/{chunk-5BLFXQEB.js → chunk-DO6EI5KB.js} +1 -1
  280. package/dist/cli/chunks/{chunk-33VPWGCM.js → chunk-DPBRWP4J.js} +3 -3
  281. package/dist/cli/chunks/{chunk-H6XBM2LY.js → chunk-E3W6XQ57.js} +2 -2
  282. package/dist/cli/chunks/{chunk-KPMGTVB4.js → chunk-E4AZXCT5.js} +1 -1
  283. package/dist/cli/chunks/chunk-E4EYPYR3.js +2 -0
  284. package/dist/cli/chunks/{chunk-TFHQE6NK.js → chunk-EFV4ADMO.js} +4 -4
  285. package/dist/cli/chunks/{chunk-VIDBBB6F.js → chunk-ELBZON4V.js} +2 -2
  286. package/dist/cli/chunks/chunk-EOR2UT72.js +2 -0
  287. package/dist/cli/chunks/{chunk-H5ZRV5K5.js → chunk-F34OAHOM.js} +2 -2
  288. package/dist/cli/chunks/{chunk-UMENRGHK.js → chunk-FUNGTIF2.js} +2 -2
  289. package/dist/cli/chunks/{chunk-DBA3N742.js → chunk-G3L5L6YQ.js} +1 -1
  290. package/dist/cli/chunks/{chunk-ELU4IC3I.js → chunk-G3W6BMVJ.js} +1 -1
  291. package/dist/cli/chunks/{chunk-RTJ2M6V6.js → chunk-GTKCGPJZ.js} +3 -3
  292. package/dist/cli/chunks/chunk-HBCGYMQU.js +2 -0
  293. package/dist/cli/chunks/{chunk-YL7T3VV7.js → chunk-HSVKZ5KI.js} +4 -4
  294. package/dist/cli/chunks/{chunk-MXMFGSWR.js → chunk-HVU64GP5.js} +2 -2
  295. package/dist/cli/chunks/chunk-HVXJC3OC.js +2 -0
  296. package/dist/cli/chunks/chunk-HYEJJJY3.js +4 -0
  297. package/dist/cli/chunks/{chunk-CR3QGHVN.js → chunk-I2NENQ44.js} +2 -2
  298. package/dist/cli/chunks/{chunk-GNTVFN7D.js → chunk-I6X3EGJI.js} +1 -1
  299. package/dist/cli/chunks/{chunk-2GNRW3OD.js → chunk-IGBEJ4UJ.js} +2 -2
  300. package/dist/cli/chunks/{chunk-UYJHYMEQ.js → chunk-IIAR5S7Q.js} +2 -2
  301. package/dist/cli/chunks/{chunk-YAKS3CAB.js → chunk-IJHCIXJC.js} +2 -2
  302. package/dist/cli/chunks/{chunk-YDNSLLBS.js → chunk-IUDWEOLX.js} +2 -2
  303. package/dist/cli/chunks/chunk-IUHB5GVS.js +3 -0
  304. package/dist/cli/chunks/{chunk-4UDZLD42.js → chunk-IYTLXUBO.js} +2 -2
  305. package/dist/cli/chunks/chunk-J27F4NSB.js +2 -0
  306. package/dist/cli/chunks/{chunk-HRUU7E3D.js → chunk-J5UNP6W3.js} +2 -2
  307. package/dist/cli/chunks/{chunk-E3FBW6G2.js → chunk-JES6R5KP.js} +1 -1
  308. package/dist/cli/chunks/chunk-JROVR6YS.js +11 -0
  309. package/dist/cli/chunks/chunk-JSZ663MU.js +2 -0
  310. package/dist/cli/chunks/{chunk-FUE6LL72.js → chunk-JVQBWYHW.js} +2 -2
  311. package/dist/cli/chunks/{chunk-G6ZHTF42.js → chunk-K27SU3RE.js} +2 -2
  312. package/dist/cli/chunks/chunk-K7NJHFLZ.js +54 -0
  313. package/dist/cli/chunks/{chunk-MDZ6RRLX.js → chunk-KEY43ANX.js} +2 -2
  314. package/dist/cli/chunks/chunk-KIP6WZGV.js +13 -0
  315. package/dist/cli/chunks/{chunk-SQ3PPISY.js → chunk-KKHYJF5U.js} +1 -1
  316. package/dist/cli/chunks/{chunk-TJEIOE7F.js → chunk-KLTP5IDB.js} +1 -1
  317. package/dist/cli/chunks/{chunk-IKIITGU5.js → chunk-KO4FNAUR.js} +4 -4
  318. package/dist/cli/chunks/{chunk-DX3C5HPN.js → chunk-KYA5LARK.js} +1 -1
  319. package/dist/cli/chunks/{chunk-ZHXWGNYM.js → chunk-LSUILON7.js} +1 -1
  320. package/dist/cli/chunks/chunk-LULD4JV2.js +15 -0
  321. package/dist/cli/chunks/{chunk-MWWAMDHI.js → chunk-M23ZOZVY.js} +1 -1
  322. package/dist/cli/chunks/{chunk-RKJZWWB7.js → chunk-M5AEL7IS.js} +2 -2
  323. package/dist/cli/chunks/chunk-MI5Q55DG.js +65 -0
  324. package/dist/cli/chunks/chunk-N7H767TP.js +4 -0
  325. package/dist/cli/chunks/{chunk-5F6DWHQG.js → chunk-NQI7FWCS.js} +2 -2
  326. package/dist/cli/chunks/{chunk-LLVGTEHU.js → chunk-NRE4NAVA.js} +1 -1
  327. package/dist/cli/chunks/{chunk-XA7CG3LH.js → chunk-NU7UTXMP.js} +2 -2
  328. package/dist/cli/chunks/chunk-NVYBM3R4.js +2 -0
  329. package/dist/cli/chunks/chunk-O3JTQ7N4.js +2 -0
  330. package/dist/cli/chunks/{chunk-TISSZFHO.js → chunk-OEIQTWQP.js} +1 -1
  331. package/dist/cli/chunks/{chunk-2IGT5WNQ.js → chunk-PSPKSUF6.js} +1 -1
  332. package/dist/cli/chunks/{chunk-B7SWW5A6.js → chunk-QIRL6B3C.js} +2 -2
  333. package/dist/cli/chunks/{chunk-JBB7E26R.js → chunk-QRCIZFNK.js} +2 -2
  334. package/dist/cli/chunks/{chunk-4JBFJTHJ.js → chunk-QWUXCG2L.js} +1 -1
  335. package/dist/cli/chunks/{chunk-B5XFDFBT.js → chunk-QYOGD2VW.js} +1 -1
  336. package/dist/cli/chunks/chunk-QZMUXJHZ.js +2 -0
  337. package/dist/cli/chunks/chunk-R6IU3EWP.js +2 -0
  338. package/dist/cli/chunks/{chunk-G5C2XVZC.js → chunk-R74ZKREV.js} +1 -1
  339. package/dist/cli/chunks/chunk-RD2VGOUH.js +2 -0
  340. package/dist/cli/chunks/{chunk-OV5EZO3U.js → chunk-RD6TEZ64.js} +2 -2
  341. package/dist/cli/chunks/{chunk-4C6UJIHB.js → chunk-RGGK6VZ7.js} +1 -1
  342. package/dist/cli/chunks/{chunk-4XPPMADQ.js → chunk-RIZVC4XY.js} +6 -6
  343. package/dist/cli/chunks/{chunk-4RP5VUBI.js → chunk-RKOUXVZZ.js} +2 -2
  344. package/dist/cli/chunks/{chunk-IFFZR6GY.js → chunk-RP2ZKPYV.js} +1 -1
  345. package/dist/cli/chunks/{chunk-BN7DKW5D.js → chunk-SQF6HRXR.js} +1 -1
  346. package/dist/cli/chunks/chunk-SQKW3B6B.js +2 -0
  347. package/dist/cli/chunks/{chunk-LKN7JQTW.js → chunk-SX4JLSLV.js} +2 -2
  348. package/dist/cli/chunks/{chunk-YGB6R5DW.js → chunk-TUSSPKRM.js} +1 -1
  349. package/dist/cli/chunks/{chunk-LHGNNZ76.js → chunk-TY5WC3FT.js} +3 -3
  350. package/dist/cli/chunks/{chunk-B2ZONZPZ.js → chunk-UDHVCKGA.js} +2 -2
  351. package/dist/cli/chunks/{chunk-IU4EBTA2.js → chunk-UJWAWIRV.js} +4 -4
  352. package/dist/cli/chunks/{chunk-LTBCAFTZ.js → chunk-UKGXWW64.js} +3 -3
  353. package/dist/cli/chunks/{chunk-JV4FZUE7.js → chunk-UMGFMKDW.js} +2 -2
  354. package/dist/cli/chunks/{chunk-STRDSVH3.js → chunk-URVHZPWY.js} +2 -2
  355. package/dist/cli/chunks/{chunk-PZTVH2AS.js → chunk-UTBYJ4RF.js} +2 -2
  356. package/dist/cli/chunks/{chunk-ZK5JKHP4.js → chunk-VD5IO5EO.js} +1 -1
  357. package/dist/cli/chunks/chunk-VTOVWHEM.js +2 -0
  358. package/dist/cli/chunks/{chunk-OYMLHX2B.js → chunk-W2XCZU62.js} +1 -1
  359. package/dist/cli/chunks/{chunk-T35GZXTU.js → chunk-WJHWH5D2.js} +2 -2
  360. package/dist/cli/chunks/{chunk-NBWQBQO5.js → chunk-WJTSY5MC.js} +1 -1
  361. package/dist/cli/chunks/{chunk-NTSXHZTC.js → chunk-WK7B4B6Y.js} +4 -4
  362. package/dist/cli/chunks/{chunk-2WT7AKKK.js → chunk-WLXK2KNU.js} +2 -2
  363. package/dist/cli/chunks/chunk-WOIGKU2N.js +180 -0
  364. package/dist/cli/chunks/{chunk-WYMGK5DX.js → chunk-WX6RRIGW.js} +2 -2
  365. package/dist/cli/chunks/{chunk-C46DMCWF.js → chunk-XEZIIQYJ.js} +2 -2
  366. package/dist/cli/chunks/{chunk-TTMHIOQ3.js → chunk-XFPPERA2.js} +2 -2
  367. package/dist/cli/chunks/{chunk-OVPJQWHW.js → chunk-XLAUGSW7.js} +2 -2
  368. package/dist/cli/chunks/{chunk-V4AOVDCJ.js → chunk-XQSIRBKT.js} +8 -8
  369. package/dist/cli/chunks/{chunk-4Q35TI6Z.js → chunk-XUR2M2WB.js} +2 -2
  370. package/dist/cli/chunks/{chunk-5IAB5NRZ.js → chunk-XZSMZHM2.js} +2 -2
  371. package/dist/cli/chunks/{chunk-AB4U6ZNI.js → chunk-Y5L3ES4L.js} +2 -2
  372. package/dist/cli/chunks/chunk-YDFL445W.js +2 -0
  373. package/dist/cli/chunks/{chunk-7G6UX2QN.js → chunk-YQGPQBCX.js} +2 -2
  374. package/dist/cli/chunks/{chunk-5FOZO7KM.js → chunk-YXP6BKGS.js} +46 -46
  375. package/dist/cli/chunks/chunk-ZBABIZ2D.js +2 -0
  376. package/dist/cli/chunks/{chunk-IQEJGZV6.js → chunk-ZCWERUYB.js} +4 -4
  377. package/dist/cli/chunks/ci-RACDAJMR.js +81 -0
  378. package/dist/cli/chunks/{ci-output-LK3MBXLZ.js → ci-output-EHRSZBKG.js} +2 -2
  379. package/dist/cli/chunks/{circuit-breaker-7AIXACR7.js → circuit-breaker-GBV7M5XG.js} +2 -2
  380. package/dist/cli/chunks/{claude-flow-setup-UA7EO6VN.js → claude-flow-setup-5LVJOFKP.js} +2 -2
  381. package/dist/cli/chunks/client-HUVFA5PF.js +2 -0
  382. package/dist/cli/chunks/{cline-installer-YDDCKKEV.js → cline-installer-W4NMXJSG.js} +2 -2
  383. package/dist/cli/chunks/{code-URB7UAKW.js → code-JWXJMYXB.js} +29 -29
  384. package/dist/cli/chunks/{code-index-extractor-BL6HWH4Q.js → code-index-extractor-RVI2IFTM.js} +2 -2
  385. package/dist/cli/chunks/codex-installer-3BORJINH.js +14 -0
  386. package/dist/cli/chunks/{completions-RCKBSSSS.js → completions-A55NCTAO.js} +2 -2
  387. package/dist/cli/chunks/complexity-analyzer-JCXHGGLY.js +2 -0
  388. package/dist/cli/chunks/{continuedev-installer-VOTCEBFH.js → continuedev-installer-PUVFMGYW.js} +2 -2
  389. package/dist/cli/chunks/{copilot-installer-NVTGLZX3.js → copilot-installer-4DCMYWHB.js} +2 -2
  390. package/dist/cli/chunks/core-handlers-UEXO3VAA.js +2 -0
  391. package/dist/cli/chunks/cost-tracker-5TV2GGKY.js +2 -0
  392. package/dist/cli/chunks/{coverage-ZTPJWXWE.js → coverage-NNWM7TX3.js} +3 -3
  393. package/dist/cli/chunks/cross-domain-router-ODU5IZD6.js +2 -0
  394. package/dist/cli/chunks/{cursor-installer-CMGJQMHX.js → cursor-installer-4NCHGJGK.js} +2 -2
  395. package/dist/cli/chunks/{daemon-Y2I3YVIU.js → daemon-QIKCXKWO.js} +4 -4
  396. package/dist/cli/chunks/{daemon-V456IWR3.js → daemon-T4JO4IXP.js} +3 -3
  397. package/dist/cli/chunks/{dag-attention-scheduler-ZCBBOD3D.js → dag-attention-scheduler-RPAAIDAD.js} +2 -2
  398. package/dist/cli/chunks/{detect-2GHEA4A3.js → detect-SBEEVDSN.js} +2 -2
  399. package/dist/cli/chunks/{dist-node-44AGYJCH.js → dist-node-ZHI6NCSU.js} +2 -2
  400. package/dist/cli/chunks/{domain-handler-IDLIEP6X.js → domain-handler-LBC3GJ7Z.js} +2 -2
  401. package/dist/cli/chunks/domain-plugins-H6IZ5USZ.js +2 -0
  402. package/dist/cli/chunks/{domain-transfer-KLEXGIRF.js → domain-transfer-JZA5TMW3.js} +2 -2
  403. package/dist/cli/chunks/dream-HE3OX42F.js +2 -0
  404. package/dist/cli/chunks/embed-and-insert-pattern-AHTR7CRU.js +3 -0
  405. package/dist/cli/chunks/eval-DZU2KISM.js +17 -0
  406. package/dist/cli/chunks/{experience-capture-middleware-CJJJN7CF.js → experience-capture-middleware-5IQCWKSL.js} +4 -4
  407. package/dist/cli/chunks/{fast-paths-LGLLKX6P.js → fast-paths-2KLDUWCY.js} +2 -2
  408. package/dist/cli/chunks/{feature-flags-33D3I4DD.js → feature-flags-7AC3XDZA.js} +2 -2
  409. package/dist/cli/chunks/{feature-flags-QL4NCEGW.js → feature-flags-N6UAEZY4.js} +2 -2
  410. package/dist/cli/chunks/{file-discovery-GKCYJPFZ.js → file-discovery-5SDIW4V2.js} +2 -2
  411. package/dist/cli/chunks/fleet-ZIQCAZ2Y.js +43 -0
  412. package/dist/cli/chunks/{gnn-wrapper-ELSGT67Z.js → gnn-wrapper-DUMBZJEV.js} +2 -2
  413. package/dist/cli/chunks/{heartbeat-handler-ZUI3DOOP.js → heartbeat-handler-6HVM6ZMR.js} +4 -4
  414. package/dist/cli/chunks/heartbeat-scheduler-QUIFGGLX.js +2 -0
  415. package/dist/cli/chunks/hnsw-adapter-42KB37KP.js +2 -0
  416. package/dist/cli/chunks/hnsw-index-T2PGO77J.js +2 -0
  417. package/dist/cli/chunks/{hnsw-legacy-bridge-EZMM5JWL.js → hnsw-legacy-bridge-5DRL5FLX.js} +2 -2
  418. package/dist/cli/chunks/{hnswlib-node-G4CE3EOS.js → hnswlib-node-GW67GTCL.js} +2 -2
  419. package/dist/cli/chunks/{hooks-LCVXXA55.js → hooks-QHH6FVO4.js} +10 -10
  420. package/dist/cli/chunks/hybrid-backend-FRNWYRKH.js +2 -0
  421. package/dist/cli/chunks/{hypergraph-engine-6Z7RQ3HI.js → hypergraph-engine-7XDCCVG2.js} +2 -2
  422. package/dist/cli/chunks/{hypergraph-handler-PLI2GYPK.js → hypergraph-handler-QHF7NOU5.js} +3 -3
  423. package/dist/cli/chunks/impact-analyzer-A5QYOYBR.js +2 -0
  424. package/dist/cli/chunks/{init-handler-7VH3QJ5Y.js → init-handler-5UIVOM7K.js} +6 -6
  425. package/dist/cli/chunks/init-wizard-XBU674YH.js +2 -0
  426. package/dist/cli/chunks/kernel-DV5MTNZD.js +2 -0
  427. package/dist/cli/chunks/{kilocode-installer-U3MW62DE.js → kilocode-installer-TGGV6K5Q.js} +2 -2
  428. package/dist/cli/chunks/{kiro-installer-PPEAC44T.js → kiro-installer-4XYBHZWW.js} +12 -12
  429. package/dist/cli/chunks/knowledge-graph-4ACGVJQK.js +2 -0
  430. package/dist/cli/chunks/learning-STE5W6BS.js +122 -0
  431. package/dist/cli/chunks/llm-router-NKF7J3RI.js +37 -0
  432. package/dist/cli/chunks/llm-router-service-PSMASERT.js +2 -0
  433. package/dist/cli/chunks/{load-VO7ABNHV.js → load-B2T77UJQ.js} +2 -2
  434. package/dist/cli/chunks/load-test-MRUO2VPF.js +2 -0
  435. package/dist/cli/chunks/mcp-JGSFCEMH.js +2 -0
  436. package/dist/cli/chunks/{memory-FZTT7ADM.js → memory-WRFZKG56.js} +6 -6
  437. package/dist/cli/chunks/memory-backend-2MPGI6JW.js +2 -0
  438. package/dist/cli/chunks/memory-handlers-XT4HMITB.js +2 -0
  439. package/dist/cli/chunks/multi-model-executor-26Q5BSVG.js +14 -0
  440. package/dist/cli/chunks/{opencode-installer-GQ7J5SBG.js → opencode-installer-J36EMQU7.js} +2 -2
  441. package/dist/cli/chunks/{orchestrator-66JK2OS5.js → orchestrator-D5IFV65I.js} +20 -20
  442. package/dist/cli/chunks/pattern-null-store-TGWUL237.js +2 -0
  443. package/dist/cli/chunks/{pattern-usage-recorder-O6XHM2G5.js → pattern-usage-recorder-BVMTWI3E.js} +2 -2
  444. package/dist/cli/chunks/pipeline-OWAHDUAQ.js +19 -0
  445. package/dist/cli/chunks/platform-ANGBFWBV.js +2 -0
  446. package/dist/cli/chunks/{plugin-7OFLNGOS.js → plugin-OO7ON2YW.js} +2 -2
  447. package/dist/cli/chunks/{prime-radiant-advanced-wasm-OSRDK2FW.js → prime-radiant-advanced-wasm-HFG3BXWU.js} +2 -2
  448. package/dist/cli/chunks/project-root-LNOYVTYY.js +2 -0
  449. package/dist/cli/chunks/protocol-executor-GEVH5KD6.js +2 -0
  450. package/dist/cli/chunks/{protocol-handler-WLYTX6FS.js → protocol-handler-CE3Q6LY4.js} +2 -2
  451. package/dist/cli/chunks/{prove-QVNE4V3J.js → prove-7XPN53PY.js} +2 -2
  452. package/dist/cli/chunks/qe-reasoning-bank-DJ2JL6QB.js +2 -0
  453. package/dist/cli/chunks/{quality-DNE2RKE5.js → quality-TT23JRFX.js} +2 -2
  454. package/dist/cli/chunks/{quality-gate-2K35GCSI.js → quality-gate-PPPRP255.js} +3 -3
  455. package/dist/cli/chunks/queen-coordinator-F7E3AS26.js +2 -0
  456. package/dist/cli/chunks/real-embeddings-EYNZIFJE.js +2 -0
  457. package/dist/cli/chunks/ref-validation-QQR64ZXD.js +2 -0
  458. package/dist/cli/chunks/{roocode-installer-NCEZPF5L.js → roocode-installer-UIGS7ZJD.js} +2 -2
  459. package/dist/cli/chunks/router-OZH3QSAU.js +2 -0
  460. package/dist/cli/chunks/routing-feedback-J2E3ADZB.js +2 -0
  461. package/dist/cli/chunks/{routing-handler-4MXXZRYP.js → routing-handler-6AENUIRG.js} +4 -4
  462. package/dist/cli/chunks/{ruvector-commands-WDFMMCMK.js → ruvector-commands-5AWMEV34.js} +2 -2
  463. package/dist/cli/chunks/rvf-dual-writer-HK525Y5Y.js +2 -0
  464. package/dist/cli/chunks/rvf-migration-adapter-Q7FB3BKR.js +2 -0
  465. package/dist/cli/chunks/rvf-migration-coordinator-NWRJ7C22.js +2 -0
  466. package/dist/cli/chunks/rvf-native-adapter-5ZRCGUI6.js +2 -0
  467. package/dist/cli/chunks/rvf-store-integrity-ISKRP563.js +2 -0
  468. package/dist/cli/chunks/safe-db-3OYEPVEH.js +2 -0
  469. package/dist/cli/chunks/schedule-AG4C2EIQ.js +2 -0
  470. package/dist/cli/chunks/scheduler-SQS2CZFZ.js +2 -0
  471. package/dist/cli/chunks/{security-CJJ3WJSB.js → security-325A7FMB.js} +3 -3
  472. package/dist/cli/chunks/{shared-rvf-adapter-6RGCTLHD.js → shared-rvf-adapter-NFL6QSZ6.js} +2 -2
  473. package/dist/cli/chunks/{shared-rvf-dual-writer-KIA6Q6MT.js → shared-rvf-dual-writer-THFDYS2Z.js} +2 -2
  474. package/dist/cli/chunks/sqlite-persistence-MAKDFSHC.js +2 -0
  475. package/dist/cli/chunks/standalone-memory-UD4MJ6GZ.js +2 -0
  476. package/dist/cli/chunks/{status-handler-BADQV2KA.js → status-handler-CPFTN4XL.js} +2 -2
  477. package/dist/cli/chunks/{structural-health-VMYEYRZG.js → structural-health-2MG2IVBL.js} +2 -2
  478. package/dist/cli/chunks/{sync-PXLROLHB.js → sync-EE4VVKOW.js} +2 -2
  479. package/dist/cli/chunks/{sync-ULY7T5II.js → sync-MBTW5XBF.js} +2 -2
  480. package/dist/cli/chunks/task-handler-7H5OYJG4.js +54 -0
  481. package/dist/cli/chunks/task-handlers-NH4GJHCJ.js +9 -0
  482. package/dist/cli/chunks/{test-WCLURQUT.js → test-MPHGT4T6.js} +4 -4
  483. package/dist/cli/chunks/test-scheduling-CHQ4ZLLJ.js +15 -0
  484. package/dist/cli/chunks/token-bootstrap-SSDCYEKK.js +2 -0
  485. package/dist/cli/chunks/{token-usage-DRVG6PKO.js → token-usage-EBXUJNRB.js} +2 -2
  486. package/dist/cli/chunks/{transformers-IMDDAMYQ.js → transformers-ZEKS2OJZ.js} +2 -2
  487. package/dist/cli/chunks/{tree-sitter-wasm-parser-WBZIHVFA.js → tree-sitter-wasm-parser-J6ZMAK37.js} +2 -2
  488. package/dist/cli/chunks/types-KYAA5VLV.js +2 -0
  489. package/dist/cli/chunks/unified-memory-DDWMC435.js +2 -0
  490. package/dist/cli/chunks/unified-memory-hnsw-4JA7SGBK.js +2 -0
  491. package/dist/cli/chunks/unified-persistence-F6OSNTXY.js +2 -0
  492. package/dist/cli/chunks/{upgrade-6ALSDWDD.js → upgrade-UJBJ5AYM.js} +2 -2
  493. package/dist/cli/chunks/{validate-XF4ZG3LC.js → validate-RUV6YMWS.js} +2 -2
  494. package/dist/cli/chunks/{validate-swarm-P5TAFRDA.js → validate-swarm-IVEVMGVM.js} +2 -2
  495. package/dist/cli/chunks/{vibium-2XDXKNKZ.js → vibium-HOGMFJ2Z.js} +2 -2
  496. package/dist/cli/chunks/visual-security-25SMBIYT.js +2 -0
  497. package/dist/cli/chunks/{web-tree-sitter-4JVRQPX5.js → web-tree-sitter-AVWA6HKE.js} +2 -2
  498. package/dist/cli/chunks/{windsurf-installer-WYJXVDO5.js → windsurf-installer-DAH7HI2W.js} +2 -2
  499. package/dist/cli/chunks/{witness-chain-RPZ2SE2V.js → witness-chain-PJOQPFUX.js} +2 -2
  500. package/dist/cli/chunks/witness-chain-ZW6KKUZU.js +2 -0
  501. package/dist/cli/chunks/{witness-key-manager-LXG2VBQQ.js → witness-key-manager-JSTBMG43.js} +2 -2
  502. package/dist/cli/chunks/workflow-TWOIA6LZ.js +51 -0
  503. package/dist/cli/chunks/workflow-orchestrator-UKSIDM7Q.js +2 -0
  504. package/dist/cli/chunks/{wrappers-DIJNNFU6.js → wrappers-UR7BLXKV.js} +2 -2
  505. package/dist/cli/commands/ci.js +54 -28
  506. package/dist/cli/commands/code.js +6 -0
  507. package/dist/cli/commands/eval.js +3 -2
  508. package/dist/cli/commands/fleet.js +35 -16
  509. package/dist/cli/commands/learning-snapshot.d.ts +38 -0
  510. package/dist/cli/commands/learning-snapshot.js +171 -0
  511. package/dist/cli/commands/learning.js +16 -64
  512. package/dist/cli/commands/llm-router.js +13 -12
  513. package/dist/cli/commands/mcp.js +6 -0
  514. package/dist/cli/commands/memory.d.ts +1 -1
  515. package/dist/cli/commands/memory.js +8 -8
  516. package/dist/cli/commands/pipeline.js +9 -0
  517. package/dist/cli/commands/platform.js +15 -2
  518. package/dist/cli/commands/upgrade.d.ts +3 -3
  519. package/dist/cli/commands/upgrade.js +3 -3
  520. package/dist/cli/commands/workflow.js +9 -1
  521. package/dist/cli/handlers/init-handler.d.ts +10 -0
  522. package/dist/cli/handlers/task-handler.js +43 -12
  523. package/dist/cli/helpers/domain-plugins.d.ts +5 -0
  524. package/dist/cli/helpers/domain-plugins.js +11 -0
  525. package/dist/cli/helpers/standalone-memory.d.ts +12 -0
  526. package/dist/cli/helpers/standalone-memory.js +46 -0
  527. package/dist/cli/index.js +54 -49
  528. package/dist/cli/log-gate.d.ts +66 -0
  529. package/dist/cli/log-gate.js +170 -0
  530. package/dist/cli/utils/ci-config.d.ts +3 -0
  531. package/dist/context/sources/git-source.d.ts +2 -0
  532. package/dist/context/sources/git-source.js +9 -2
  533. package/dist/coordination/cancelled-task-settlement.d.ts +11 -0
  534. package/dist/coordination/cancelled-task-settlement.js +15 -0
  535. package/dist/coordination/consensus/providers/claude-provider.d.ts +2 -2
  536. package/dist/coordination/consensus/providers/claude-provider.js +18 -25
  537. package/dist/coordination/consensus/providers/gemini-provider.d.ts +14 -4
  538. package/dist/coordination/consensus/providers/gemini-provider.js +39 -36
  539. package/dist/coordination/consensus/providers/ollama-provider.d.ts +8 -7
  540. package/dist/coordination/consensus/providers/ollama-provider.js +16 -18
  541. package/dist/coordination/consensus/providers/openai-provider.d.ts +14 -4
  542. package/dist/coordination/consensus/providers/openai-provider.js +36 -34
  543. package/dist/coordination/consensus/providers/openrouter-provider.d.ts +5 -5
  544. package/dist/coordination/consensus/providers/openrouter-provider.js +64 -37
  545. package/dist/coordination/handlers/test-execution-handlers.js +5 -3
  546. package/dist/coordination/interfaces.d.ts +2 -2
  547. package/dist/coordination/protocol-executor.js +68 -9
  548. package/dist/coordination/queen-coordinator.js +10 -4
  549. package/dist/coordination/queen-event-handlers.js +17 -0
  550. package/dist/coordination/queen-task-management.js +25 -0
  551. package/dist/coordination/queen-types.d.ts +2 -0
  552. package/dist/coordination/task-executor.js +4 -8
  553. package/dist/coordination/workflow-composition.d.ts +19 -0
  554. package/dist/coordination/workflow-composition.js +114 -0
  555. package/dist/coordination/workflow-orchestrator.d.ts +3 -2
  556. package/dist/coordination/workflow-orchestrator.js +219 -85
  557. package/dist/coordination/workflow-types.d.ts +30 -1
  558. package/dist/coordination/yaml-pipeline-loader.js +9 -5
  559. package/dist/domains/chaos-resilience/services/chaos-engineer.js +2 -7
  560. package/dist/domains/code-intelligence/services/knowledge-graph.js +2 -7
  561. package/dist/domains/code-intelligence/services/metric-collector/test-counter.js +9 -40
  562. package/dist/domains/constants.d.ts +1 -6
  563. package/dist/domains/constants.js +2 -6
  564. package/dist/domains/contract-testing/services/contract-validator.js +2 -7
  565. package/dist/domains/coverage-analysis/services/coverage-analyzer.js +2 -12
  566. package/dist/domains/coverage-analysis/services/gap-detector.js +2 -7
  567. package/dist/domains/defect-intelligence/services/defect-predictor.js +2 -12
  568. package/dist/domains/defect-intelligence/services/root-cause-analyzer.js +2 -7
  569. package/dist/domains/learning-optimization/services/learning-coordinator.js +2 -7
  570. package/dist/domains/quality-assessment/services/deployment-advisor.js +2 -7
  571. package/dist/domains/quality-assessment/services/quality-analyzer.js +2 -7
  572. package/dist/domains/requirements-validation/services/requirements-validator.js +2 -7
  573. package/dist/domains/security-compliance/services/scanners/sast-scanner.js +3 -7
  574. package/dist/domains/test-execution/services/flaky-detector.js +33 -3
  575. package/dist/domains/test-execution/services/retry-handler.js +22 -14
  576. package/dist/domains/test-execution/services/test-executor.js +42 -21
  577. package/dist/domains/test-generation/services/test-generator.js +2 -7
  578. package/dist/domains/visual-accessibility/services/visual-tester.js +2 -7
  579. package/dist/init/codex-installer.js +18 -6
  580. package/dist/init/init-wizard-steps.js +1 -1
  581. package/dist/init/kiro-installer.js +9 -8
  582. package/dist/init/opencode-installer.js +1 -1
  583. package/dist/init/orchestrator.js +1 -0
  584. package/dist/init/phases/07-hooks.js +4 -2
  585. package/dist/init/phases/09-assets.d.ts +10 -0
  586. package/dist/init/phases/09-assets.js +3 -0
  587. package/dist/init/phases/12-verification.js +1 -1
  588. package/dist/init/settings-merge.d.ts +10 -3
  589. package/dist/init/settings-merge.js +40 -9
  590. package/dist/init/token-bootstrap.d.ts +1 -1
  591. package/dist/init/token-bootstrap.js +12 -2
  592. package/dist/init/types.d.ts +10 -0
  593. package/dist/integrations/agentic-flow/model-router/types.js +6 -8
  594. package/dist/integrations/ruvector/brain-exporter.js +26 -15
  595. package/dist/integrations/ruvector/brain-import-audit.d.ts +20 -0
  596. package/dist/integrations/ruvector/brain-import-audit.js +22 -0
  597. package/dist/integrations/ruvector/brain-rvf-exporter.js +33 -30
  598. package/dist/integrations/ruvector/brain-shared.d.ts +5 -1
  599. package/dist/integrations/ruvector/brain-shared.js +70 -4
  600. package/dist/integrations/ruvector/rvf-dual-writer.js +42 -16
  601. package/dist/integrations/ruvector/rvf-store-integrity.d.ts +14 -9
  602. package/dist/integrations/ruvector/rvf-store-integrity.js +39 -9
  603. package/dist/integrations/ruvector/shared-rvf-adapter.js +20 -23
  604. package/dist/kernel/hybrid-backend.d.ts +6 -0
  605. package/dist/kernel/hybrid-backend.js +18 -0
  606. package/dist/kernel/kernel.js +9 -14
  607. package/dist/kernel/memory-factory.js +14 -4
  608. package/dist/kernel/project-root.d.ts +1 -1
  609. package/dist/kernel/project-root.js +33 -10
  610. package/dist/kernel/unified-memory.js +1 -1
  611. package/dist/learning/embedder-identity-store.js +4 -3
  612. package/dist/learning/local-judge-client.d.ts +6 -5
  613. package/dist/learning/local-judge-client.js +7 -6
  614. package/dist/learning/pattern-store.js +34 -12
  615. package/dist/learning/real-embeddings.d.ts +8 -0
  616. package/dist/learning/real-embeddings.js +16 -0
  617. package/dist/learning/rvf-pattern-store.js +10 -3
  618. package/dist/mcp/bundle.js +480 -480
  619. package/dist/mcp/entry.js +2 -0
  620. package/dist/mcp/handlers/index.d.ts +1 -1
  621. package/dist/mcp/handlers/index.js +1 -1
  622. package/dist/mcp/handlers/memory-handlers.d.ts +6 -1
  623. package/dist/mcp/handlers/memory-handlers.js +44 -22
  624. package/dist/mcp/handlers/pipeline-handlers.d.ts +31 -1
  625. package/dist/mcp/handlers/pipeline-handlers.js +63 -0
  626. package/dist/mcp/handlers/task-handlers.d.ts +1 -0
  627. package/dist/mcp/handlers/task-handlers.js +26 -5
  628. package/dist/mcp/protocol-server.d.ts +2 -0
  629. package/dist/mcp/protocol-server.js +105 -49
  630. package/dist/mcp/security/sampling-server.js +2 -1
  631. package/dist/mcp/services/session-store.js +5 -1
  632. package/dist/mcp/tool-annotations.js +1 -1
  633. package/dist/mcp/tools/test-execution/schedule.js +7 -0
  634. package/dist/mcp/types.d.ts +5 -1
  635. package/dist/optimization/session-cache.d.ts +5 -0
  636. package/dist/optimization/session-cache.js +23 -0
  637. package/dist/plugins/cache.d.ts +2 -0
  638. package/dist/plugins/cache.js +15 -2
  639. package/dist/plugins/lifecycle.js +15 -2
  640. package/dist/plugins/manifest.js +7 -5
  641. package/dist/plugins/resolver.d.ts +13 -22
  642. package/dist/plugins/resolver.js +169 -61
  643. package/dist/plugins/version-policy.d.ts +13 -0
  644. package/dist/plugins/version-policy.js +18 -0
  645. package/dist/routing/advisor/multi-model-executor.d.ts +4 -1
  646. package/dist/routing/advisor/multi-model-executor.js +8 -1
  647. package/dist/routing/free-tier/ladder.d.ts +2 -1
  648. package/dist/routing/free-tier/ladder.js +3 -2
  649. package/dist/routing/security/cyber-pin.d.ts +35 -11
  650. package/dist/routing/security/cyber-pin.js +76 -14
  651. package/dist/routing/value-score.js +1 -1
  652. package/dist/shared/git/index.d.ts +1 -0
  653. package/dist/shared/git/index.js +1 -0
  654. package/dist/shared/git/ref-validation.d.ts +20 -0
  655. package/dist/shared/git/ref-validation.js +43 -0
  656. package/dist/shared/llm/anthropic-params.d.ts +40 -0
  657. package/dist/shared/llm/anthropic-params.js +51 -0
  658. package/dist/shared/llm/cost-tracker.d.ts +15 -2
  659. package/dist/shared/llm/cost-tracker.js +62 -10
  660. package/dist/shared/llm/index.d.ts +2 -2
  661. package/dist/shared/llm/index.js +2 -2
  662. package/dist/shared/llm/interfaces.d.ts +1 -1
  663. package/dist/shared/llm/metrics/cost-metrics.js +5 -4
  664. package/dist/shared/llm/model-mapping.js +131 -0
  665. package/dist/shared/llm/model-registry.d.ts +37 -11
  666. package/dist/shared/llm/model-registry.js +393 -18
  667. package/dist/shared/llm/openai-params.d.ts +35 -0
  668. package/dist/shared/llm/openai-params.js +54 -0
  669. package/dist/shared/llm/provider-manager.js +4 -3
  670. package/dist/shared/llm/providers/azure-openai.d.ts +11 -0
  671. package/dist/shared/llm/providers/azure-openai.js +26 -15
  672. package/dist/shared/llm/providers/bedrock.js +11 -19
  673. package/dist/shared/llm/providers/claude.js +6 -29
  674. package/dist/shared/llm/providers/codex.js +4 -3
  675. package/dist/shared/llm/providers/gemini.d.ts +3 -2
  676. package/dist/shared/llm/providers/gemini.js +19 -10
  677. package/dist/shared/llm/providers/ollama.d.ts +2 -0
  678. package/dist/shared/llm/providers/ollama.js +30 -20
  679. package/dist/shared/llm/providers/openai.js +10 -17
  680. package/dist/shared/llm/providers/openrouter.d.ts +1 -1
  681. package/dist/shared/llm/providers/openrouter.js +57 -21
  682. package/dist/shared/llm/router/agent-router-config.js +33 -32
  683. package/dist/shared/llm/router/hybrid-router.js +21 -9
  684. package/dist/shared/llm/router/routing-rules.js +9 -8
  685. package/dist/shared/llm/router/types.js +81 -13
  686. package/dist/shared/llm/translation/message-formatter.js +4 -23
  687. package/dist/shared/types/index.d.ts +6 -0
  688. package/dist/shared/types/index.js +8 -0
  689. package/dist/shared/vitest-json-report.d.ts +7 -7
  690. package/dist/shared/vitest-json-report.js +23 -14
  691. package/dist/test-scheduling/executors/vitest-executor.d.ts +7 -2
  692. package/dist/test-scheduling/executors/vitest-executor.js +157 -47
  693. package/dist/test-scheduling/git-aware/test-selector.js +3 -0
  694. package/dist/test-scheduling/phase-scheduler.d.ts +1 -0
  695. package/dist/test-scheduling/phase-scheduler.js +23 -1
  696. package/package.json +2 -1
  697. package/dist/cli/chunks/adapter-AKQYU6UH.js +0 -2
  698. package/dist/cli/chunks/aqe-learning-engine-MICRPL3N.js +0 -2
  699. package/dist/cli/chunks/base-DZK36ITB.js +0 -2
  700. package/dist/cli/chunks/brain-handler-H5OVZ22L.js +0 -90
  701. package/dist/cli/chunks/browser-workflow-ADK54DOE.js +0 -2
  702. package/dist/cli/chunks/chunk-26GM5CWD.js +0 -13
  703. package/dist/cli/chunks/chunk-42VSQ2MX.js +0 -4
  704. package/dist/cli/chunks/chunk-44WISFTU.js +0 -2
  705. package/dist/cli/chunks/chunk-4OUPCTBS.js +0 -16
  706. package/dist/cli/chunks/chunk-4TXAP3YH.js +0 -2
  707. package/dist/cli/chunks/chunk-4W7QVUNO.js +0 -2
  708. package/dist/cli/chunks/chunk-527HQAY7.js +0 -14
  709. package/dist/cli/chunks/chunk-5DFHE4H5.js +0 -180
  710. package/dist/cli/chunks/chunk-5P3G6ZW4.js +0 -2
  711. package/dist/cli/chunks/chunk-6F2RM6X2.js +0 -2
  712. package/dist/cli/chunks/chunk-74PK3NEW.js +0 -15
  713. package/dist/cli/chunks/chunk-7Y2CEXRS.js +0 -65
  714. package/dist/cli/chunks/chunk-AWNYEAGB.js +0 -2
  715. package/dist/cli/chunks/chunk-CBOPBYPU.js +0 -2
  716. package/dist/cli/chunks/chunk-FD2JFEQC.js +0 -2
  717. package/dist/cli/chunks/chunk-G6DCESPU.js +0 -2
  718. package/dist/cli/chunks/chunk-I4NDQGKP.js +0 -2
  719. package/dist/cli/chunks/chunk-L2GKMBDP.js +0 -2
  720. package/dist/cli/chunks/chunk-QLWNXBRU.js +0 -2
  721. package/dist/cli/chunks/chunk-R2AFVFRF.js +0 -2
  722. package/dist/cli/chunks/chunk-ROX7NLS4.js +0 -14
  723. package/dist/cli/chunks/chunk-SHGKY3QB.js +0 -2
  724. package/dist/cli/chunks/chunk-SJPZSCZP.js +0 -27
  725. package/dist/cli/chunks/chunk-T62DH4GG.js +0 -11
  726. package/dist/cli/chunks/chunk-TGLAWI62.js +0 -4
  727. package/dist/cli/chunks/chunk-UMNYF5EZ.js +0 -2
  728. package/dist/cli/chunks/chunk-UTVRQEZM.js +0 -54
  729. package/dist/cli/chunks/chunk-Y2DVFVGI.js +0 -2
  730. package/dist/cli/chunks/chunk-Y5SQBI2F.js +0 -2
  731. package/dist/cli/chunks/ci-YVKDQWIX.js +0 -81
  732. package/dist/cli/chunks/client-M72GXFVQ.js +0 -2
  733. package/dist/cli/chunks/codex-installer-2AVEO4EA.js +0 -14
  734. package/dist/cli/chunks/complexity-analyzer-LEDG62YK.js +0 -2
  735. package/dist/cli/chunks/core-handlers-C32RAMVI.js +0 -2
  736. package/dist/cli/chunks/cost-tracker-GJIFB2BM.js +0 -2
  737. package/dist/cli/chunks/cross-domain-router-UGFUCPKC.js +0 -2
  738. package/dist/cli/chunks/dream-UFBBXY5W.js +0 -2
  739. package/dist/cli/chunks/embed-and-insert-pattern-DUW6K35A.js +0 -3
  740. package/dist/cli/chunks/eval-PR6YWDFM.js +0 -17
  741. package/dist/cli/chunks/fleet-QNT6X2YI.js +0 -43
  742. package/dist/cli/chunks/heartbeat-scheduler-VQWHSGTY.js +0 -2
  743. package/dist/cli/chunks/hnsw-adapter-BS3NXWGU.js +0 -2
  744. package/dist/cli/chunks/hnsw-index-JP26B4HW.js +0 -2
  745. package/dist/cli/chunks/impact-analyzer-WRE4CWPJ.js +0 -2
  746. package/dist/cli/chunks/init-wizard-OFOEYB75.js +0 -2
  747. package/dist/cli/chunks/kernel-MXNFWNUD.js +0 -2
  748. package/dist/cli/chunks/knowledge-graph-7JE2TVKJ.js +0 -2
  749. package/dist/cli/chunks/learning-7B5NITDV.js +0 -122
  750. package/dist/cli/chunks/llm-router-BNEPT5OB.js +0 -37
  751. package/dist/cli/chunks/llm-router-service-GTDVDKSU.js +0 -2
  752. package/dist/cli/chunks/load-test-JZ4CLSBF.js +0 -2
  753. package/dist/cli/chunks/mcp-THXEINCL.js +0 -2
  754. package/dist/cli/chunks/memory-backend-Q54CC5A5.js +0 -2
  755. package/dist/cli/chunks/memory-handlers-IIBJXKHZ.js +0 -2
  756. package/dist/cli/chunks/multi-model-executor-HEDVOZ6X.js +0 -14
  757. package/dist/cli/chunks/pattern-null-store-W33O7FYO.js +0 -2
  758. package/dist/cli/chunks/pipeline-UOG6UO6D.js +0 -19
  759. package/dist/cli/chunks/platform-Q7UH7FZQ.js +0 -2
  760. package/dist/cli/chunks/protocol-executor-VGN4M7XY.js +0 -2
  761. package/dist/cli/chunks/qe-reasoning-bank-7VB5LJGS.js +0 -2
  762. package/dist/cli/chunks/queen-coordinator-HIDMJMMG.js +0 -2
  763. package/dist/cli/chunks/real-embeddings-SF42ML7G.js +0 -2
  764. package/dist/cli/chunks/router-CTIJS4D7.js +0 -2
  765. package/dist/cli/chunks/routing-feedback-LFYYZS5J.js +0 -2
  766. package/dist/cli/chunks/rvf-dual-writer-MNPMIWVM.js +0 -2
  767. package/dist/cli/chunks/rvf-migration-adapter-DXOKSSNW.js +0 -2
  768. package/dist/cli/chunks/rvf-migration-coordinator-JT7ZCJY7.js +0 -2
  769. package/dist/cli/chunks/rvf-native-adapter-PZKUKA7R.js +0 -2
  770. package/dist/cli/chunks/rvf-store-integrity-Q3FGYKFT.js +0 -2
  771. package/dist/cli/chunks/safe-db-73BLFV2C.js +0 -2
  772. package/dist/cli/chunks/schedule-YVTGTTI4.js +0 -2
  773. package/dist/cli/chunks/scheduler-5DSAFIRQ.js +0 -2
  774. package/dist/cli/chunks/sqlite-persistence-LRG4IPCU.js +0 -2
  775. package/dist/cli/chunks/task-handler-L7E2I267.js +0 -49
  776. package/dist/cli/chunks/task-handlers-6DPKE4AK.js +0 -9
  777. package/dist/cli/chunks/test-scheduling-4CNJA6TW.js +0 -15
  778. package/dist/cli/chunks/token-bootstrap-GTI24JAL.js +0 -2
  779. package/dist/cli/chunks/types-TXMY5M2K.js +0 -2
  780. package/dist/cli/chunks/unified-memory-VBQ572X4.js +0 -2
  781. package/dist/cli/chunks/unified-memory-hnsw-J3L74ZRY.js +0 -2
  782. package/dist/cli/chunks/unified-persistence-EM2VYRTQ.js +0 -2
  783. package/dist/cli/chunks/visual-security-GX4S7K6O.js +0 -2
  784. package/dist/cli/chunks/witness-chain-QGKMHCNW.js +0 -2
  785. package/dist/cli/chunks/workflow-2OYNO7UU.js +0 -51
  786. package/dist/cli/chunks/workflow-orchestrator-KWHIJMFV.js +0 -2
@@ -0,0 +1,2 @@
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.14.5");process.exit(0)}
2
+ import{a}from"./chunk-E3W6XQ57.js";import"./chunk-YDFL445W.js";import"./chunk-LULD4JV2.js";import"./chunk-EFV4ADMO.js";import"./chunk-RKOUXVZZ.js";import"./chunk-IJHCIXJC.js";import"./chunk-NQI7FWCS.js";import"./chunk-C3HQL6S4.js";import"./chunk-J27F4NSB.js";import"./chunk-7CD7PBHY.js";import"./chunk-J5UNP6W3.js";import"./chunk-W2XCZU62.js";import"./chunk-7VFY7TUR.js";import"./chunk-HVU64GP5.js";import"./chunk-ELBZON4V.js";import"./chunk-52L77RMG.js";import"./chunk-XZSMZHM2.js";import"./chunk-CVMNJSCB.js";import"./chunk-NU7UTXMP.js";import"./chunk-D6OUCB2H.js";import"./chunk-6A44AOGN.js";import"./chunk-WJHWH5D2.js";import"./chunk-JSZ663MU.js";export{a as BrowserWorkflowTool};
@@ -1,3 +1,3 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.14.3");process.exit(0)}
2
- import{k as f,o as P}from"./chunk-TFHQE6NK.js";import{d as p,e as y}from"./chunk-72UJXEKQ.js";import{b as h,d as U}from"./chunk-YAKS3CAB.js";import{a as T,c as C}from"./chunk-HRUU7E3D.js";P();C();U();y();import{randomUUID as v}from"crypto";var M=p("TokenTracker"),S={costPerInputToken:.003/1e3,costPerOutputToken:.015/1e3},I={filePath:".agentic-qe/token-metrics.json",autoSaveIntervalMs:6e4,maxMetricsInMemory:1e4},m=class u{taskMetrics=[];agentMetrics=new Map;domainMetrics=new Map;sessionId;sessionStartTime;costConfig;cacheHits=0;earlyExits=0;totalTokensSaved=0;totalPatternsReused=0;initialized=!1;persistenceConfig=I;autoSaveTimer=null;isDirty=!1;db=null;kvPersistCount=0;static KV_NAMESPACE="token-usage-metrics";static KV_KEY="token-tracker-snapshot";static KV_TTL=604800;static KV_PERSIST_INTERVAL=10;constructor(){this.sessionId=`session-${Date.now()}-${v().substring(0,8)}`,this.sessionStartTime=Date.now(),this.costConfig=S}initialize(t){this.initialized||(this.initialized=!0,t&&(this.costConfig={...S,...t}),this.initializeDb().catch(e=>{M.warn("DB initialization failed",{error:e instanceof Error?e.message:String(e)})}),this.startAutoSave())}setCostConfig(t){this.costConfig={...this.costConfig,...t}}recordTokenUsage(t,e,n,a,s,r){this.ensureInitialized();let c,d,i,o,l,k;typeof e=="object"?(c="default",d="unknown",i="unknown",o=e,l=!1,k=0):(c=e,d=n??"unknown",i=a??"unknown",o=s,l=r?.patternReused??!1,k=r?.tokensSaved??0),o.estimatedCostUsd===void 0&&(o.estimatedCostUsd=this.calculateCost(o));let g={taskId:t,agentId:c,domain:d,operation:i,timestamp:Date.now(),usage:o,patternReused:l,tokensSaved:k};this.taskMetrics.push(g),this.updateAgentMetrics(c,o,l,k),this.updateDomainMetrics(d,o),l&&this.totalPatternsReused++,k>0&&(this.totalTokensSaved+=k),this.isDirty=!0,this.maybePersistToKv()}recordPatternReuse(t,e){this.ensureInitialized(),this.totalPatternsReused++,this.totalTokensSaved+=e;let n={taskId:t,agentId:"pattern-cache",domain:"optimization",operation:"pattern-reuse",timestamp:Date.now(),usage:{inputTokens:0,outputTokens:0,totalTokens:0,estimatedCostUsd:0},patternReused:!0,tokensSaved:e};this.taskMetrics.push(n),this.isDirty=!0}recordCacheHit(t){this.cacheHits++,this.totalTokensSaved+=t,this.isDirty=!0}recordEarlyExit(t){this.earlyExits++,this.totalTokensSaved+=t,this.isDirty=!0}getSessionSummary(t){this.ensureInitialized();let e=this.filterByTimeframe(this.taskMetrics,t),n=this.aggregateTokenUsage(e),a=new Map;for(let i of e){let o=a.get(i.agentId);o?(o.totalInputTokens+=i.usage.inputTokens,o.totalOutputTokens+=i.usage.outputTokens,o.totalTokens+=i.usage.totalTokens,o.totalCost+=i.usage.estimatedCostUsd||0,o.tasksExecuted++,i.patternReused&&o.patternsReused++,o.estimatedTokensSaved+=i.tokensSaved||0):a.set(i.agentId,{agentId:i.agentId,totalInputTokens:i.usage.inputTokens,totalOutputTokens:i.usage.outputTokens,totalTokens:i.usage.totalTokens,totalCost:i.usage.estimatedCostUsd||0,tasksExecuted:1,patternsReused:i.patternReused?1:0,estimatedTokensSaved:i.tokensSaved||0})}let s=new Map;for(let i of e){let o=s.get(i.domain);o?(o.inputTokens+=i.usage.inputTokens,o.outputTokens+=i.usage.outputTokens,o.totalTokens+=i.usage.totalTokens,o.estimatedCostUsd=(o.estimatedCostUsd||0)+(i.usage.estimatedCostUsd||0)):s.set(i.domain,{...i.usage})}let r=n.totalTokens,c=this.totalTokensSaved,d=r+c>0?c/(r+c)*100:0;return{sessionId:this.sessionId,startTime:this.sessionStartTime,endTime:Date.now(),byAgent:a,byDomain:s,totalUsage:n,optimizationStats:{patternsReused:this.totalPatternsReused,cacheHits:this.cacheHits,earlyExits:this.earlyExits,tokensSaved:this.totalTokensSaved,savingsPercentage:Math.round(d*100)/100}}}getAgentMetrics(t,e){this.ensureInitialized();let n=this.filterByTimeframe(this.taskMetrics,e);if(t){let s=n.filter(r=>r.agentId===t);return this.aggregateAgentMetrics(t,s)}let a=new Map;for(let s of n){let r=a.get(s.agentId)||[];r.push(s),a.set(s.agentId,r)}return Array.from(a.entries()).map(([s,r])=>this.aggregateAgentMetrics(s,r))}getDomainMetrics(t,e){this.ensureInitialized();let n=this.filterByTimeframe(this.taskMetrics,e);if(t){let s=n.filter(r=>r.domain===t);return this.aggregateTokenUsage(s)}let a=new Map;for(let s of n){let r=a.get(s.domain);r?(r.inputTokens+=s.usage.inputTokens,r.outputTokens+=s.usage.outputTokens,r.totalTokens+=s.usage.totalTokens,r.estimatedCostUsd=(r.estimatedCostUsd||0)+(s.usage.estimatedCostUsd||0)):a.set(s.domain,{...s.usage})}return a}getTaskMetrics(t){return this.ensureInitialized(),this.filterByTimeframe(this.taskMetrics,t)}getEfficiencyReport(t){return this.getTokenEfficiency(t)}getTokenEfficiency(t){this.ensureInitialized();let e=this.filterByTimeframe(this.taskMetrics,t),a=this.aggregateTokenUsage(e).totalTokens,s=this.totalTokensSaved,r=a+s>0?s/(a+s)*100:0,c=e.length,d=c>0?e.filter(l=>l.patternReused).length/c:0,i=c>0?a/c:0,o=this.generateRecommendations(e);return{totalTokensUsed:a,totalTokensSaved:s,savingsPercentage:Math.round(r*100)/100,patternReuseRate:Math.round(d*100)/100,averageTokensPerTask:Math.round(i),recommendations:o}}reset(){this.stopAutoSave(),this.taskMetrics=[],this.agentMetrics.clear(),this.domainMetrics.clear(),this.sessionId=`session-${Date.now()}-${v().substring(0,8)}`,this.sessionStartTime=Date.now(),this.cacheHits=0,this.earlyExits=0,this.totalTokensSaved=0,this.totalPatternsReused=0,this.isDirty=!1}configurePersistence(t){this.persistenceConfig={...this.persistenceConfig,...t},t.autoSaveIntervalMs!==void 0&&(this.stopAutoSave(),t.autoSaveIntervalMs>0&&this.startAutoSave())}startAutoSave(){this.autoSaveTimer||this.persistenceConfig.autoSaveIntervalMs>0&&(this.autoSaveTimer=setInterval(()=>{this.isDirty&&this.save().catch(t=>{console.warn("[TokenMetricsCollector] Auto-save failed:",t)})},this.persistenceConfig.autoSaveIntervalMs))}stopAutoSave(){this.autoSaveTimer&&(clearInterval(this.autoSaveTimer),this.autoSaveTimer=null)}async save(){let t=await import("fs"),e=await import("path"),n={version:"1.0.0",sessionId:this.sessionId,sessionStartTime:this.sessionStartTime,taskMetrics:this.taskMetrics.slice(-this.persistenceConfig.maxMetricsInMemory),optimizationStats:{cacheHits:this.cacheHits,earlyExits:this.earlyExits,totalTokensSaved:this.totalTokensSaved,totalPatternsReused:this.totalPatternsReused},lastSavedAt:Date.now()},a=e.resolve(this.persistenceConfig.filePath),s=e.dirname(a);t.existsSync(s)||t.mkdirSync(s,{recursive:!0}),t.writeFileSync(a,JSON.stringify(n,null,2)),this.isDirty=!1}async load(){let t=await import("fs"),n=(await import("path")).resolve(this.persistenceConfig.filePath);if(!t.existsSync(n))return!1;try{let a=t.readFileSync(n,"utf-8"),s=h(a);if(!s.version||!s.version.startsWith("1."))return console.warn("[TokenMetricsCollector] Incompatible data version, skipping load"),!1;let r=s.taskMetrics||[];this.taskMetrics=[...r,...this.taskMetrics],this.cacheHits+=s.optimizationStats?.cacheHits||0,this.earlyExits+=s.optimizationStats?.earlyExits||0,this.totalTokensSaved+=s.optimizationStats?.totalTokensSaved||0,this.totalPatternsReused+=s.optimizationStats?.totalPatternsReused||0;for(let c of r)this.updateAgentMetrics(c.agentId,c.usage,c.patternReused,c.tokensSaved||0),this.updateDomainMetrics(c.domain,c.usage);return this.taskMetrics.length>this.persistenceConfig.maxMetricsInMemory&&(this.taskMetrics=this.taskMetrics.slice(-this.persistenceConfig.maxMetricsInMemory)),!0}catch(a){return console.warn("[TokenMetricsCollector] Failed to load persisted data:",a),!1}}getPersistenceFilePath(){return this.persistenceConfig.filePath}hasUnsavedChanges(){return this.isDirty}async initializeDb(){try{this.db=f(),this.db.isInitialized()||await this.db.initialize(),await this.loadFromKv()}catch(t){console.warn("[TokenMetricsCollector] DB init failed, using memory-only:",T(t)),this.db=null}}async persistToKv(){if(!this.db)return;let t={version:"1.0.0",sessionId:this.sessionId,sessionStartTime:this.sessionStartTime,taskMetrics:this.taskMetrics.slice(-this.persistenceConfig.maxMetricsInMemory),optimizationStats:{cacheHits:this.cacheHits,earlyExits:this.earlyExits,totalTokensSaved:this.totalTokensSaved,totalPatternsReused:this.totalPatternsReused},lastSavedAt:Date.now()};await this.db.kvSet(u.KV_KEY,t,u.KV_NAMESPACE,u.KV_TTL)}async loadFromKv(){if(!this.db)return!1;let t=await this.db.kvGet(u.KV_KEY,u.KV_NAMESPACE);if(!t)return!1;if(!t.version||!t.version.startsWith("1."))return console.warn("[TokenMetricsCollector] Incompatible kv_store data version, skipping load"),!1;let e=t.taskMetrics||[];this.taskMetrics=[...e,...this.taskMetrics],this.cacheHits+=t.optimizationStats?.cacheHits||0,this.earlyExits+=t.optimizationStats?.earlyExits||0,this.totalTokensSaved+=t.optimizationStats?.totalTokensSaved||0,this.totalPatternsReused+=t.optimizationStats?.totalPatternsReused||0;for(let n of e)this.updateAgentMetrics(n.agentId,n.usage,n.patternReused,n.tokensSaved||0),this.updateDomainMetrics(n.domain,n.usage);return this.taskMetrics.length>this.persistenceConfig.maxMetricsInMemory&&(this.taskMetrics=this.taskMetrics.slice(-this.persistenceConfig.maxMetricsInMemory)),!0}maybePersistToKv(){this.kvPersistCount++,this.kvPersistCount>=u.KV_PERSIST_INTERVAL&&(this.kvPersistCount=0,this.persistToKv().catch(t=>{M.warn("KV persist failed",{error:t instanceof Error?t.message:String(t)})}))}ensureInitialized(){this.initialized||this.initialize()}calculateCost(t){let e=t.inputTokens*this.costConfig.costPerInputToken,n=t.outputTokens*this.costConfig.costPerOutputToken;return Math.round((e+n)*1e5)/1e5}filterByTimeframe(t,e){if(!e)return t;let n=Date.now(),a;switch(e){case"1h":a=n-3600*1e3;break;case"24h":a=n-1440*60*1e3;break;case"7d":a=n-10080*60*1e3;break;case"30d":a=n-720*60*60*1e3;break;default:return t}return t.filter(s=>s.timestamp>=a)}aggregateTokenUsage(t){let e=0,n=0,a=0,s=0;for(let r of t)e+=r.usage.inputTokens,n+=r.usage.outputTokens,a+=r.usage.totalTokens,s+=r.usage.estimatedCostUsd||0;return{inputTokens:e,outputTokens:n,totalTokens:a,estimatedCostUsd:Math.round(s*1e5)/1e5}}aggregateAgentMetrics(t,e){let n=0,a=0,s=0,r=0,c=0,d=0;for(let i of e)n+=i.usage.inputTokens,a+=i.usage.outputTokens,s+=i.usage.totalTokens,r+=i.usage.estimatedCostUsd||0,i.patternReused&&c++,d+=i.tokensSaved||0;return{agentId:t,totalInputTokens:n,totalOutputTokens:a,totalTokens:s,totalCost:Math.round(r*1e5)/1e5,tasksExecuted:e.length,patternsReused:c,estimatedTokensSaved:d}}updateAgentMetrics(t,e,n,a){let s=this.agentMetrics.get(t);s?(s.totalInputTokens+=e.inputTokens,s.totalOutputTokens+=e.outputTokens,s.totalTokens+=e.totalTokens,s.totalCost+=e.estimatedCostUsd||0,s.tasksExecuted++,n&&s.patternsReused++,s.estimatedTokensSaved+=a):this.agentMetrics.set(t,{agentId:t,totalInputTokens:e.inputTokens,totalOutputTokens:e.outputTokens,totalTokens:e.totalTokens,totalCost:e.estimatedCostUsd||0,tasksExecuted:1,patternsReused:n?1:0,estimatedTokensSaved:a})}updateDomainMetrics(t,e){let n=this.domainMetrics.get(t);n?(n.inputTokens+=e.inputTokens,n.outputTokens+=e.outputTokens,n.totalTokens+=e.totalTokens,n.estimatedCostUsd=(n.estimatedCostUsd||0)+(e.estimatedCostUsd||0)):this.domainMetrics.set(t,{...e})}generateRecommendations(t){let e=[];if(t.length===0)return["No token usage data available yet. Start executing tasks to track consumption."];let n=t.filter(i=>i.patternReused).length/t.length;n<.2?e.push("Low pattern reuse rate detected. Consider enabling pattern caching for similar tasks."):n>.5&&e.push("Good pattern reuse rate. Continue leveraging cached patterns for token savings.");let a=new Map;for(let i of t){let o=a.get(i.domain)||0;a.set(i.domain,o+i.usage.totalTokens)}let s=Array.from(a.entries()).sort((i,o)=>o[1]-i[1]);if(s.length>0){let i=s[0];e.push(`Highest token consumer: ${i[0]} (${i[1].toLocaleString()} tokens). Consider optimizing prompts or increasing caching.`)}let r=t.reduce((i,o)=>i+o.usage.inputTokens,0);return t.reduce((i,o)=>i+o.usage.outputTokens,0)/(r||1)>2&&e.push("High output-to-input token ratio. Consider requesting more concise responses."),this.cacheHits===0&&t.length>10&&e.push("No cache hits detected. Enable response caching to reduce duplicate API calls."),this.earlyExits===0&&t.length>20&&e.push("Early exit optimization not utilized. Enable high-confidence pattern matching to skip unnecessary LLM calls."),e}};function b(u){return u.toLocaleString("en-US")}function z(u){if(process.env.AQE_TOKEN_DASHBOARD_ENABLED==="false")return"Token dashboard disabled (AQE_TOKEN_DASHBOARD_ENABLED=false)";if(!u){let d=E.getSessionSummary(),i=d.totalUsage.totalTokens,o=d.totalUsage.estimatedCostUsd??0,l=d.optimizationStats.tokensSaved,k=i>0?o/i:0,g=l*k;u={totalTokens:i,totalCostUsd:o,savedTokens:l,savedCostUsd:g}}let t=u.totalTokens??0,e=u.totalCostUsd??0,n=u.savedTokens??0,a=u.savedCostUsd??0,s=u.budgetLimitUsd;if(t===0&&n===0)return"Token Dashboard: No data available";let r=`Token Usage: ${b(t)} tokens ($${e.toFixed(2)})`;n>0&&(r+=` | Saved: ${b(n)} tokens ($${a.toFixed(2)}) via pattern reuse`);let c=[];if(s!==void 0&&s>0){let d=Math.round(e/s*100);c.push(`Budget: $${e.toFixed(2)} / $${s.toFixed(2)} (${d}%)`)}if(u.tierSplit&&Object.keys(u.tierSplit).length>0){let d=Object.entries(u.tierSplit).sort((i,o)=>o[1]-i[1]).map(([i,o])=>`${i} ${o}%`);c.push(`Tier split: ${d.join(" | ")}`)}return c.length===0?r:`${r}
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.14.5");process.exit(0)}
2
+ import{k as f,o as P}from"./chunk-EFV4ADMO.js";import{b as h,d as U}from"./chunk-IJHCIXJC.js";import{d as p,e as y}from"./chunk-7CD7PBHY.js";import{a as T,c as C}from"./chunk-J5UNP6W3.js";P();C();U();y();import{randomUUID as v}from"crypto";var M=p("TokenTracker"),S={costPerInputToken:.003/1e3,costPerOutputToken:.015/1e3},I={filePath:".agentic-qe/token-metrics.json",autoSaveIntervalMs:6e4,maxMetricsInMemory:1e4},m=class u{taskMetrics=[];agentMetrics=new Map;domainMetrics=new Map;sessionId;sessionStartTime;costConfig;cacheHits=0;earlyExits=0;totalTokensSaved=0;totalPatternsReused=0;initialized=!1;persistenceConfig=I;autoSaveTimer=null;isDirty=!1;db=null;kvPersistCount=0;static KV_NAMESPACE="token-usage-metrics";static KV_KEY="token-tracker-snapshot";static KV_TTL=604800;static KV_PERSIST_INTERVAL=10;constructor(){this.sessionId=`session-${Date.now()}-${v().substring(0,8)}`,this.sessionStartTime=Date.now(),this.costConfig=S}initialize(t){this.initialized||(this.initialized=!0,t&&(this.costConfig={...S,...t}),this.initializeDb().catch(e=>{M.warn("DB initialization failed",{error:e instanceof Error?e.message:String(e)})}),this.startAutoSave())}setCostConfig(t){this.costConfig={...this.costConfig,...t}}recordTokenUsage(t,e,n,a,s,r){this.ensureInitialized();let c,d,i,o,l,k;typeof e=="object"?(c="default",d="unknown",i="unknown",o=e,l=!1,k=0):(c=e,d=n??"unknown",i=a??"unknown",o=s,l=r?.patternReused??!1,k=r?.tokensSaved??0),o.estimatedCostUsd===void 0&&(o.estimatedCostUsd=this.calculateCost(o));let g={taskId:t,agentId:c,domain:d,operation:i,timestamp:Date.now(),usage:o,patternReused:l,tokensSaved:k};this.taskMetrics.push(g),this.updateAgentMetrics(c,o,l,k),this.updateDomainMetrics(d,o),l&&this.totalPatternsReused++,k>0&&(this.totalTokensSaved+=k),this.isDirty=!0,this.maybePersistToKv()}recordPatternReuse(t,e){this.ensureInitialized(),this.totalPatternsReused++,this.totalTokensSaved+=e;let n={taskId:t,agentId:"pattern-cache",domain:"optimization",operation:"pattern-reuse",timestamp:Date.now(),usage:{inputTokens:0,outputTokens:0,totalTokens:0,estimatedCostUsd:0},patternReused:!0,tokensSaved:e};this.taskMetrics.push(n),this.isDirty=!0}recordCacheHit(t){this.cacheHits++,this.totalTokensSaved+=t,this.isDirty=!0}recordEarlyExit(t){this.earlyExits++,this.totalTokensSaved+=t,this.isDirty=!0}getSessionSummary(t){this.ensureInitialized();let e=this.filterByTimeframe(this.taskMetrics,t),n=this.aggregateTokenUsage(e),a=new Map;for(let i of e){let o=a.get(i.agentId);o?(o.totalInputTokens+=i.usage.inputTokens,o.totalOutputTokens+=i.usage.outputTokens,o.totalTokens+=i.usage.totalTokens,o.totalCost+=i.usage.estimatedCostUsd||0,o.tasksExecuted++,i.patternReused&&o.patternsReused++,o.estimatedTokensSaved+=i.tokensSaved||0):a.set(i.agentId,{agentId:i.agentId,totalInputTokens:i.usage.inputTokens,totalOutputTokens:i.usage.outputTokens,totalTokens:i.usage.totalTokens,totalCost:i.usage.estimatedCostUsd||0,tasksExecuted:1,patternsReused:i.patternReused?1:0,estimatedTokensSaved:i.tokensSaved||0})}let s=new Map;for(let i of e){let o=s.get(i.domain);o?(o.inputTokens+=i.usage.inputTokens,o.outputTokens+=i.usage.outputTokens,o.totalTokens+=i.usage.totalTokens,o.estimatedCostUsd=(o.estimatedCostUsd||0)+(i.usage.estimatedCostUsd||0)):s.set(i.domain,{...i.usage})}let r=n.totalTokens,c=this.totalTokensSaved,d=r+c>0?c/(r+c)*100:0;return{sessionId:this.sessionId,startTime:this.sessionStartTime,endTime:Date.now(),byAgent:a,byDomain:s,totalUsage:n,optimizationStats:{patternsReused:this.totalPatternsReused,cacheHits:this.cacheHits,earlyExits:this.earlyExits,tokensSaved:this.totalTokensSaved,savingsPercentage:Math.round(d*100)/100}}}getAgentMetrics(t,e){this.ensureInitialized();let n=this.filterByTimeframe(this.taskMetrics,e);if(t){let s=n.filter(r=>r.agentId===t);return this.aggregateAgentMetrics(t,s)}let a=new Map;for(let s of n){let r=a.get(s.agentId)||[];r.push(s),a.set(s.agentId,r)}return Array.from(a.entries()).map(([s,r])=>this.aggregateAgentMetrics(s,r))}getDomainMetrics(t,e){this.ensureInitialized();let n=this.filterByTimeframe(this.taskMetrics,e);if(t){let s=n.filter(r=>r.domain===t);return this.aggregateTokenUsage(s)}let a=new Map;for(let s of n){let r=a.get(s.domain);r?(r.inputTokens+=s.usage.inputTokens,r.outputTokens+=s.usage.outputTokens,r.totalTokens+=s.usage.totalTokens,r.estimatedCostUsd=(r.estimatedCostUsd||0)+(s.usage.estimatedCostUsd||0)):a.set(s.domain,{...s.usage})}return a}getTaskMetrics(t){return this.ensureInitialized(),this.filterByTimeframe(this.taskMetrics,t)}getEfficiencyReport(t){return this.getTokenEfficiency(t)}getTokenEfficiency(t){this.ensureInitialized();let e=this.filterByTimeframe(this.taskMetrics,t),a=this.aggregateTokenUsage(e).totalTokens,s=this.totalTokensSaved,r=a+s>0?s/(a+s)*100:0,c=e.length,d=c>0?e.filter(l=>l.patternReused).length/c:0,i=c>0?a/c:0,o=this.generateRecommendations(e);return{totalTokensUsed:a,totalTokensSaved:s,savingsPercentage:Math.round(r*100)/100,patternReuseRate:Math.round(d*100)/100,averageTokensPerTask:Math.round(i),recommendations:o}}reset(){this.stopAutoSave(),this.taskMetrics=[],this.agentMetrics.clear(),this.domainMetrics.clear(),this.sessionId=`session-${Date.now()}-${v().substring(0,8)}`,this.sessionStartTime=Date.now(),this.cacheHits=0,this.earlyExits=0,this.totalTokensSaved=0,this.totalPatternsReused=0,this.isDirty=!1}configurePersistence(t){this.persistenceConfig={...this.persistenceConfig,...t},t.autoSaveIntervalMs!==void 0&&(this.stopAutoSave(),t.autoSaveIntervalMs>0&&this.startAutoSave())}startAutoSave(){this.autoSaveTimer||this.persistenceConfig.autoSaveIntervalMs>0&&(this.autoSaveTimer=setInterval(()=>{this.isDirty&&this.save().catch(t=>{console.warn("[TokenMetricsCollector] Auto-save failed:",t)})},this.persistenceConfig.autoSaveIntervalMs))}stopAutoSave(){this.autoSaveTimer&&(clearInterval(this.autoSaveTimer),this.autoSaveTimer=null)}async save(){let t=await import("fs"),e=await import("path"),n={version:"1.0.0",sessionId:this.sessionId,sessionStartTime:this.sessionStartTime,taskMetrics:this.taskMetrics.slice(-this.persistenceConfig.maxMetricsInMemory),optimizationStats:{cacheHits:this.cacheHits,earlyExits:this.earlyExits,totalTokensSaved:this.totalTokensSaved,totalPatternsReused:this.totalPatternsReused},lastSavedAt:Date.now()},a=e.resolve(this.persistenceConfig.filePath),s=e.dirname(a);t.existsSync(s)||t.mkdirSync(s,{recursive:!0}),t.writeFileSync(a,JSON.stringify(n,null,2)),this.isDirty=!1}async load(){let t=await import("fs"),n=(await import("path")).resolve(this.persistenceConfig.filePath);if(!t.existsSync(n))return!1;try{let a=t.readFileSync(n,"utf-8"),s=h(a);if(!s.version||!s.version.startsWith("1."))return console.warn("[TokenMetricsCollector] Incompatible data version, skipping load"),!1;let r=s.taskMetrics||[];this.taskMetrics=[...r,...this.taskMetrics],this.cacheHits+=s.optimizationStats?.cacheHits||0,this.earlyExits+=s.optimizationStats?.earlyExits||0,this.totalTokensSaved+=s.optimizationStats?.totalTokensSaved||0,this.totalPatternsReused+=s.optimizationStats?.totalPatternsReused||0;for(let c of r)this.updateAgentMetrics(c.agentId,c.usage,c.patternReused,c.tokensSaved||0),this.updateDomainMetrics(c.domain,c.usage);return this.taskMetrics.length>this.persistenceConfig.maxMetricsInMemory&&(this.taskMetrics=this.taskMetrics.slice(-this.persistenceConfig.maxMetricsInMemory)),!0}catch(a){return console.warn("[TokenMetricsCollector] Failed to load persisted data:",a),!1}}getPersistenceFilePath(){return this.persistenceConfig.filePath}hasUnsavedChanges(){return this.isDirty}async initializeDb(){try{this.db=f(),this.db.isInitialized()||await this.db.initialize(),await this.loadFromKv()}catch(t){console.warn("[TokenMetricsCollector] DB init failed, using memory-only:",T(t)),this.db=null}}async persistToKv(){if(!this.db)return;let t={version:"1.0.0",sessionId:this.sessionId,sessionStartTime:this.sessionStartTime,taskMetrics:this.taskMetrics.slice(-this.persistenceConfig.maxMetricsInMemory),optimizationStats:{cacheHits:this.cacheHits,earlyExits:this.earlyExits,totalTokensSaved:this.totalTokensSaved,totalPatternsReused:this.totalPatternsReused},lastSavedAt:Date.now()};await this.db.kvSet(u.KV_KEY,t,u.KV_NAMESPACE,u.KV_TTL)}async loadFromKv(){if(!this.db)return!1;let t=await this.db.kvGet(u.KV_KEY,u.KV_NAMESPACE);if(!t)return!1;if(!t.version||!t.version.startsWith("1."))return console.warn("[TokenMetricsCollector] Incompatible kv_store data version, skipping load"),!1;let e=t.taskMetrics||[];this.taskMetrics=[...e,...this.taskMetrics],this.cacheHits+=t.optimizationStats?.cacheHits||0,this.earlyExits+=t.optimizationStats?.earlyExits||0,this.totalTokensSaved+=t.optimizationStats?.totalTokensSaved||0,this.totalPatternsReused+=t.optimizationStats?.totalPatternsReused||0;for(let n of e)this.updateAgentMetrics(n.agentId,n.usage,n.patternReused,n.tokensSaved||0),this.updateDomainMetrics(n.domain,n.usage);return this.taskMetrics.length>this.persistenceConfig.maxMetricsInMemory&&(this.taskMetrics=this.taskMetrics.slice(-this.persistenceConfig.maxMetricsInMemory)),!0}maybePersistToKv(){this.kvPersistCount++,this.kvPersistCount>=u.KV_PERSIST_INTERVAL&&(this.kvPersistCount=0,this.persistToKv().catch(t=>{M.warn("KV persist failed",{error:t instanceof Error?t.message:String(t)})}))}ensureInitialized(){this.initialized||this.initialize()}calculateCost(t){let e=t.inputTokens*this.costConfig.costPerInputToken,n=t.outputTokens*this.costConfig.costPerOutputToken;return Math.round((e+n)*1e5)/1e5}filterByTimeframe(t,e){if(!e)return t;let n=Date.now(),a;switch(e){case"1h":a=n-3600*1e3;break;case"24h":a=n-1440*60*1e3;break;case"7d":a=n-10080*60*1e3;break;case"30d":a=n-720*60*60*1e3;break;default:return t}return t.filter(s=>s.timestamp>=a)}aggregateTokenUsage(t){let e=0,n=0,a=0,s=0;for(let r of t)e+=r.usage.inputTokens,n+=r.usage.outputTokens,a+=r.usage.totalTokens,s+=r.usage.estimatedCostUsd||0;return{inputTokens:e,outputTokens:n,totalTokens:a,estimatedCostUsd:Math.round(s*1e5)/1e5}}aggregateAgentMetrics(t,e){let n=0,a=0,s=0,r=0,c=0,d=0;for(let i of e)n+=i.usage.inputTokens,a+=i.usage.outputTokens,s+=i.usage.totalTokens,r+=i.usage.estimatedCostUsd||0,i.patternReused&&c++,d+=i.tokensSaved||0;return{agentId:t,totalInputTokens:n,totalOutputTokens:a,totalTokens:s,totalCost:Math.round(r*1e5)/1e5,tasksExecuted:e.length,patternsReused:c,estimatedTokensSaved:d}}updateAgentMetrics(t,e,n,a){let s=this.agentMetrics.get(t);s?(s.totalInputTokens+=e.inputTokens,s.totalOutputTokens+=e.outputTokens,s.totalTokens+=e.totalTokens,s.totalCost+=e.estimatedCostUsd||0,s.tasksExecuted++,n&&s.patternsReused++,s.estimatedTokensSaved+=a):this.agentMetrics.set(t,{agentId:t,totalInputTokens:e.inputTokens,totalOutputTokens:e.outputTokens,totalTokens:e.totalTokens,totalCost:e.estimatedCostUsd||0,tasksExecuted:1,patternsReused:n?1:0,estimatedTokensSaved:a})}updateDomainMetrics(t,e){let n=this.domainMetrics.get(t);n?(n.inputTokens+=e.inputTokens,n.outputTokens+=e.outputTokens,n.totalTokens+=e.totalTokens,n.estimatedCostUsd=(n.estimatedCostUsd||0)+(e.estimatedCostUsd||0)):this.domainMetrics.set(t,{...e})}generateRecommendations(t){let e=[];if(t.length===0)return["No token usage data available yet. Start executing tasks to track consumption."];let n=t.filter(i=>i.patternReused).length/t.length;n<.2?e.push("Low pattern reuse rate detected. Consider enabling pattern caching for similar tasks."):n>.5&&e.push("Good pattern reuse rate. Continue leveraging cached patterns for token savings.");let a=new Map;for(let i of t){let o=a.get(i.domain)||0;a.set(i.domain,o+i.usage.totalTokens)}let s=Array.from(a.entries()).sort((i,o)=>o[1]-i[1]);if(s.length>0){let i=s[0];e.push(`Highest token consumer: ${i[0]} (${i[1].toLocaleString()} tokens). Consider optimizing prompts or increasing caching.`)}let r=t.reduce((i,o)=>i+o.usage.inputTokens,0);return t.reduce((i,o)=>i+o.usage.outputTokens,0)/(r||1)>2&&e.push("High output-to-input token ratio. Consider requesting more concise responses."),this.cacheHits===0&&t.length>10&&e.push("No cache hits detected. Enable response caching to reduce duplicate API calls."),this.earlyExits===0&&t.length>20&&e.push("Early exit optimization not utilized. Enable high-confidence pattern matching to skip unnecessary LLM calls."),e}};function b(u){return u.toLocaleString("en-US")}function z(u){if(process.env.AQE_TOKEN_DASHBOARD_ENABLED==="false")return"Token dashboard disabled (AQE_TOKEN_DASHBOARD_ENABLED=false)";if(!u){let d=E.getSessionSummary(),i=d.totalUsage.totalTokens,o=d.totalUsage.estimatedCostUsd??0,l=d.optimizationStats.tokensSaved,k=i>0?o/i:0,g=l*k;u={totalTokens:i,totalCostUsd:o,savedTokens:l,savedCostUsd:g}}let t=u.totalTokens??0,e=u.totalCostUsd??0,n=u.savedTokens??0,a=u.savedCostUsd??0,s=u.budgetLimitUsd;if(t===0&&n===0)return"Token Dashboard: No data available";let r=`Token Usage: ${b(t)} tokens ($${e.toFixed(2)})`;n>0&&(r+=` | Saved: ${b(n)} tokens ($${a.toFixed(2)}) via pattern reuse`);let c=[];if(s!==void 0&&s>0){let d=Math.round(e/s*100);c.push(`Budget: $${e.toFixed(2)} / $${s.toFixed(2)} (${d}%)`)}if(u.tierSplit&&Object.keys(u.tierSplit).length>0){let d=Object.entries(u.tierSplit).sort((i,o)=>o[1]-i[1]).map(([i,o])=>`${i} ${o}%`);c.push(`Tier split: ${d.join(" | ")}`)}return c.length===0?r:`${r}
3
3
  ${c.join(" | ")}`}var E=new m;function $(u){return`$${u.toFixed(2)}`}export{z as a,E as b,$ as c};
@@ -1,3 +1,3 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.14.3");process.exit(0)}
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.14.5");process.exit(0)}
2
2
  import{readFileSync as R,existsSync as v,readdirSync as y}from"fs";import{join as S}from"path";var M=100*1024,b=/mcp__([a-z][a-z0-9-]*)__([a-z][a-z0-9_]*)/g,x=/^```/;function w(e,r){let n=e.length>M?e.slice(0,M):e,o=[],i=n.split(`
3
3
  `),a=!1;for(let s=0;s<i.length;s++){let p=i[s];if(x.test(p.trim())){a=!a;continue}let l,c=new RegExp(b.source,"g");for(;(l=c.exec(p))!==null;){let t=l[1],g=l[2],f=l[0],d=a?"code-block":"prose",u=d==="prose"?.9:.5;o.push({toolName:f,serverName:t,actionName:g,confidence:u,context:d,lineNumber:s+1})}}return o}function E(e){let r=new Map;for(let n of e)r.has(n.serverName)||r.set(n.serverName,[]),r.get(n.serverName).push(n);return r}function N(e){let r=[],n=[S(e,".claude","mcp.json"),S(e,".mcp.json")],o=process.env.HOME||process.env.USERPROFILE||"";o&&n.push(S(o,".claude","mcp.json"));for(let i of n)if(v(i))try{let a=R(i,"utf-8"),s=JSON.parse(a);s.mcpServers&&typeof s.mcpServers=="object"&&r.push(...Object.keys(s.mcpServers))}catch{}return[...new Set(r)]}function h(e,r,n){if(!v(e))return{agentName:r,references:[],requiredServers:[],availableServers:n,missingServers:[],warnings:[`Agent file not found: ${e}`],allSatisfied:!0};let o;try{o=R(e,"utf-8")}catch{return{agentName:r,references:[],requiredServers:[],availableServers:n,missingServers:[],warnings:[`Failed to read agent file: ${e}`],allSatisfied:!0}}let i=w(o,r),a=E(i),s=[...a.keys()],p=new Set(n),l=s.filter(t=>!p.has(t)),c=[];for(let t of l){let g=a.get(t)||[],f=Math.max(...g.map(m=>m.confidence)),d=g.length,u=[...new Set(g.map(m=>m.context))].join(", ");c.push(`[advisory] Agent "${r}" references MCP server "${t}" (${d} tool ref${d>1?"s":""}, confidence: ${f}, context: ${u}) but server is not configured. Agent may have reduced capabilities.`)}return{agentName:r,references:i,requiredServers:s,availableServers:n,missingServers:l,warnings:c,allSatisfied:l.length===0}}function C(e,r){let n=Date.now(),o=[],i=[],a=N(r);if(!v(e))return{agents:[],totalServersReferenced:0,globalMissingServers:[],agentsWithMissingDeps:[],warnings:[`Agents directory not found: ${e}`],durationMs:Date.now()-n};try{let c=y(e);for(let g of c){if(!g.endsWith(".md"))continue;let f=g.replace(".md",""),d=S(e,g),u=h(d,f,a);o.push(u),i.push(...u.warnings)}let t=S(e,"subagents");if(v(t)){let g=y(t);for(let f of g){if(!f.endsWith(".md"))continue;let d=f.replace(".md",""),u=S(t,f),m=h(u,d,a);o.push(m),i.push(...m.warnings)}}}catch(c){i.push(`Error scanning agents directory: ${c.message}`)}let s=new Set,p=new Set,l=[];for(let c of o){for(let t of c.requiredServers)s.add(t);for(let t of c.missingServers)p.add(t);c.missingServers.length>0&&l.push(c.agentName)}return{agents:o,totalServersReferenced:s.size,globalMissingServers:[...p],agentsWithMissingDeps:l,warnings:i,durationMs:Date.now()-n}}export{N as a,C as b};
@@ -1,2 +1,2 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.14.3");process.exit(0)}
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.14.5");process.exit(0)}
2
2
  var i=class r{constructor(e){this._value=e;if(!e||e.trim()==="")throw new Error("FilePath cannot be empty")}_value;get value(){return this._value}get extension(){let e=this._value.split(".");return e.length>1?e[e.length-1]:""}get directory(){let e=this._value.lastIndexOf("/");return e>0?this._value.substring(0,e):""}get filename(){let e=this._value.lastIndexOf("/");return e>=0?this._value.substring(e+1):this._value}equals(e){return this._value===e._value}static create(e){return new r(e)}};var s=class r{constructor(e){this._value=e;if(e<0||e>1)throw new Error("RiskScore must be between 0 and 1")}_value;get value(){return this._value}get percentage(){return this._value*100}get level(){return this._value>=.8?"critical":this._value>=.6?"high":this._value>=.3?"medium":"low"}isHigherThan(e){return this._value>e._value}equals(e){return this._value===e._value}static create(e){return new r(e)}static fromPercentage(e){return new r(e/100)}},u=class r{constructor(e,t){this._start=e;this._end=t;if(e>t)throw new Error("Start date cannot be after end date")}_start;_end;get start(){return this._start}get end(){return this._end}get durationMs(){return this._end.getTime()-this._start.getTime()}get durationSeconds(){return this.durationMs/1e3}contains(e){return e>=this._start&&e<=this._end}overlaps(e){return this._start<=e._end&&e._start<=this._end}equals(e){return this._start.getTime()===e._start.getTime()&&this._end.getTime()===e._end.getTime()}static create(e,t){return new r(e,t)}static lastNDays(e){let t=new Date,n=new Date(t.getTime()-e*24*60*60*1e3);return new r(n,t)}},o=class r{constructor(e,t,n,a){this._major=e;this._minor=t;this._patch=n;this._prerelease=a}_major;_minor;_patch;_prerelease;get major(){return this._major}get minor(){return this._minor}get patch(){return this._patch}get prerelease(){return this._prerelease}toString(){let e=`${this._major}.${this._minor}.${this._patch}`;return this._prerelease?`${e}-${this._prerelease}`:e}isNewerThan(e){return this._major!==e._major?this._major>e._major:this._minor!==e._minor?this._minor>e._minor:this._patch>e._patch}equals(e){return this._major===e._major&&this._minor===e._minor&&this._patch===e._patch&&this._prerelease===e._prerelease}static create(e,t,n,a){return new r(e,t,n,a)}static parse(e){let t=e.match(/^(\d+)\.(\d+)\.(\d+)(?:-(.+))?$/);if(!t)throw new Error(`Invalid version format: ${e}`);return new r(parseInt(t[1]),parseInt(t[2]),parseInt(t[3]),t[4])}};export{i as a,s as b,u as c,o as d};
@@ -0,0 +1,4 @@
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.14.5");process.exit(0)}
2
+ import{a as p}from"./chunk-OEIQTWQP.js";import{j as m,n as E}from"./chunk-R6IU3EWP.js";import{o as T}from"./chunk-EFV4ADMO.js";import{b as V}from"./chunk-C3HQL6S4.js";import k from"node:path";async function y(e){if(e.checklist.requirements.length===0)throw new Error("RequirementChecklist must have a non-empty, constant denominator (ADR-117).");if(!(e.oracle!=null&&e.oracle.baselinePassed&&e.oracle.passed)){let s=e.oracle==null?"oracle did not run":e.oracle.baselinePassed?"mutation score below threshold":"tests did not execute against the reference implementation";return{verdict:"fail",mechanical:"fail",specCoverage:null,unmet:[],attempts:0,reason:`mechanical gate failed: ${s}`}}if(!await e.judge.preflight())return{verdict:"inconclusive",mechanical:"pass",specCoverage:null,unmet:[],attempts:0,reason:"judge preflight failed: judge tooling did not run \u2014 refusing to report success"};let r=[],n=null,a=[],o=0;for(let s=0;s<2;s++){o++;let u=await e.judge.grade(e.artifact,e.checklist);if(u.ran&&(r.push(u),(n==null||u.coverage>n)&&(n=u.coverage,a=u.unmet),u.coverage>=1))return{verdict:"pass",mechanical:"pass",specCoverage:u.coverage,unmet:[],attempts:o,reason:`spec gate passed at coverage ${u.coverage.toFixed(3)} on attempt ${o}`}}return r.length>=2?{verdict:"fail",mechanical:"pass",specCoverage:n,unmet:a,attempts:o,reason:`spec gate failed: ${r.length} real opinions, best coverage ${(n??0).toFixed(3)} < 1 (${a.length} unmet)`}:{verdict:"inconclusive",mechanical:"pass",specCoverage:n,unmet:a,attempts:o,reason:`spec gate inconclusive: only ${r.length} real opinion(s) obtainable (need 2 to fail) \u2014 retry later, record neither pass nor fail`}}T();import{createHash as R}from"node:crypto";function I(e){let{manifestHash:t,...i}=e;return`sha256:${R("sha256").update(h(i)).digest("hex")}`}function b(e){return`sha256:${R("sha256").update(e).digest("hex")}`}function x(e,t={}){q(e);let i=I(e);if(e.manifestHash!==i)throw new Error(`Verification reach manifestHash mismatch: expected ${i}`);let r=t.now??new Date,n=r.toISOString(),a=e.expiresAt!=null&&r.getTime()>l(e.expiresAt,"expiresAt"),o=e.risks.map(s=>O(s,e,a,r.getTime()));return{manifestId:e.id,manifestHash:e.manifestHash,systemUnderTest:e.systemUnderTest,artifact:structuredClone(e.artifact),coverageVerdict:P(o.map(s=>s.verdict)),risks:o,evaluatedAt:n}}function O(e,t,i,r){let n=new Set,a=new Set,o=new Set,s=new Set,u=new Set;for(let c of e.checks){for(let v of c.limitations)u.add(v);if(S(c,t,i,r)){if(c.reach==="partial"){a.add(c.checkId);continue}if(c.reach==="direct"&&e.requiredObservations.includes(c.channel)&&c.oracleRef===e.requiredOracle){if(c.executionStatus==="failed"){o.add(c.checkId);continue}c.executionStatus==="passed"&&(n.add(c.checkId),s.add(c.channel))}}}let d=e.requiredObservations.filter(c=>!s.has(c)),f=o.size>0?"fail":d.length===0?"pass":e.dispositionWhenUncovered;return{riskId:e.riskId,failureMode:e.failureMode,severity:e.severity,verdict:f,directCheckIds:[...n],partialCheckIds:[...a],failedCheckIds:[...o],uncoveredObservations:d,limitations:[...u],reason:j(f,o,d,i)}}function S(e,t,i,r){if(i||!$(e.target,t.artifact)||e.evidenceClass!=="EXECUTED"||e.executionStatus==="not-run"||e.executionStatus==="unavailable"||!e.observedAt)return!1;let n=l(e.observedAt,`check ${e.checkId} observedAt`),a=l(t.generatedAt,"generatedAt");return!(n<a||n>r||t.expiresAt&&n>l(t.expiresAt,"expiresAt"))}function $(e,t){return e.revision===t.revision&&e.digest===t.digest&&e.environment===t.environment}function P(e){return e.some(t=>t==="fail")?"fail":e.some(t=>t==="human-review")?"human-review":e.some(t=>t==="inconclusive")?"inconclusive":"pass"}function j(e,t,i,r){return r?`verification manifest expired; uncovered: ${i.join(", ")}`:t.size>0?`direct check failed: ${[...t].join(", ")}`:e==="pass"?"all required observation channels have direct executed reach":`required reach is uncovered (${i.join(", ")}); disposition: ${e}`}function q(e){if(!e.id||!e.systemUnderTest)throw new Error("Verification reach manifest requires id and systemUnderTest");if(!e.artifact.revision||!e.artifact.digest||!e.artifact.environment)throw new Error("Verification reach manifest artifact requires revision, digest, and environment");if(l(e.generatedAt,"generatedAt"),e.expiresAt&&l(e.expiresAt,"expiresAt"),e.risks.length===0)throw new Error("Verification reach manifest requires at least one failure mode");let t=new Set;for(let i of e.risks){if(t.has(i.riskId))throw new Error(`Duplicate riskId: ${i.riskId}`);if(t.add(i.riskId),!i.riskId||!i.failureMode||!i.requiredOracle)throw new Error("Each failure mode requires riskId, failureMode, and requiredOracle");if(i.requiredObservations.length===0)throw new Error(`Failure mode ${i.riskId} requires at least one observation channel`)}}function l(e,t){let i=Date.parse(e);if(!Number.isFinite(i))throw new Error(`Invalid ${t} timestamp: ${e}`);return i}function h(e){return Array.isArray(e)?`[${e.map(h).join(",")}]`:e&&typeof e=="object"?`{${Object.entries(e).filter(([,i])=>i!==void 0).sort(([i],[r])=>i<r?-1:i>r?1:0).map(([i,r])=>`${JSON.stringify(i)}:${h(r)}`).join(",")}}`:JSON.stringify(e)}var U="verification/anchors/qe-anchor-v1.json";async function te(e){let t=J(e.checklistId,e.anchorPath);if(e.verificationManifest&&e.verificationManifest.artifact.digest!==b(e.artifact))throw new Error("Verification reach manifest artifact digest does not match the judged artifact");let i=e.verificationManifest?{kind:"verified",...x(e.verificationManifest)}:{kind:"legacy-unknown",coverageVerdict:"inconclusive",reason:"legacy quality-gate request has no verification reach manifest"},r=i.coverageVerdict,n=await y({oracle:e.oracleResult,artifact:e.artifact,checklist:t,judge:e.judge});return{...n,qualityVerdict:n.verdict,coverageVerdict:r,verdict:F(n.verdict,r),verification:i}}function F(e,t){return e==="fail"||t==="fail"?"fail":e==="pass"&&t==="pass"?"pass":"inconclusive"}function J(e,t){let i=C(t),r=p(i),n=r.items.find(a=>a.id===e);if(!n){let a=r.items.map(o=>o.id).join(", ");throw new Error(`Unknown checklist id "${e}" in anchor ${i}. Available: ${a}`)}return{id:n.id,requirements:n.requirements}}function ie(e){return p(C(e)).items.map(i=>i.id)}function C(e){if(e&&k.isAbsolute(e))return e;let t=V();return k.resolve(t,e??U)}E();var D=6e4,Q=15e3;function N(e){let t=e.timeoutMs??D,i=e.logger??(()=>{}),r=e.model??"frontier",n=e.ping??(async()=>{let a=await w(e.complete("Reply with exactly: OK"),Math.min(Q,t),"judge preflight ping");return typeof a=="string"&&a.trim().length>0});return{async preflight(){try{let a=await n();return a||i(`frontier-judge preflight: provider (${r}) returned empty \u2014 not ready`),a}catch(a){return i(`frontier-judge preflight failed (${r}): ${M(a)}`),!1}},async grade(a,o){let s=o.requirements.length;try{let u=H(a,o),d=await w(e.complete(u),t,"judge grade"),f=G(d,s);if(f==null)return i(`frontier-judge grade: could not parse response for ${o.id}`),{ran:!1,coverage:0,unmet:[]};let c=[...f].sort((g,A)=>g-A).map(g=>o.requirements[g]);return{ran:!0,coverage:(s-c.length)/s,unmet:c}}catch(u){return i(`frontier-judge grade failed for ${o.id} (${r}): ${M(u)}`),{ran:!1,coverage:0,unmet:[]}}}}}function _(e,t={}){let i=t.model??m;return async r=>(await e.chat({messages:[{role:"user",content:r}],model:i,strictModel:!0,preferredProvider:t.preferredProvider,temperature:t.temperature??0,maxTokens:t.maxTokens??1024,timeoutMs:t.timeoutMs,skipCache:!0})).content??""}function ae(e,t={}){let i=t.model??m;return N({complete:_(e,{...t,model:i}),model:i,timeoutMs:t.timeoutMs,logger:t.logger})}function oe(e){return{preflight:()=>!1,grade:()=>({ran:!1,coverage:0,unmet:[]})}}function H(e,t){let i=t.requirements.map((r,n)=>`${n+1}. ${r}`).join(`
3
+ `);return["You are a rigorous, frontier-tier quality oracle grading a software artifact","against a FIXED requirement checklist. Judge only what the artifact actually","verifies \u2014 do not give credit for requirements it merely mentions or leaves",'implicit. A requirement is "met" only if the artifact demonstrably covers it.',"",`Checklist id: ${t.id}`,"Requirements (the denominator is fixed \u2014 grade ALL of them):",i,"","--- ARTIFACT UNDER JUDGEMENT ---",e,"--- END ARTIFACT ---","","Return ONLY a single JSON object, no prose, no markdown fences, of the form:",'{"unmet": [<numbers of requirements NOT met>]}','Use the requirement numbers above. If every requirement is met, return {"unmet": []}.'].join(`
4
+ `)}function G(e,t){let i=L(e);if(i==null||!Array.isArray(i.unmet))return null;let r=i.unmet,n=new Set;for(let a of r){let o=typeof a=="number"?a:typeof a=="string"?Number(a.trim()):NaN;if(!Number.isInteger(o))continue;let s=o-1;s>=0&&s<t&&n.add(s)}return r.length>0&&n.size===0?null:n}function L(e){if(typeof e!="string")return null;let t=e.indexOf("{");if(t===-1)return null;let i=0,r=!1,n=!1;for(let a=t;a<e.length;a++){let o=e[a];if(r){n?n=!1:o==="\\"?n=!0:o==='"'&&(r=!1);continue}if(o==='"')r=!0;else if(o==="{")i++;else if(o==="}"&&(i--,i===0))try{return JSON.parse(e.slice(t,a+1))}catch{return null}}return null}function w(e,t,i){return new Promise((r,n)=>{let a=setTimeout(()=>n(new Error(`${i} timed out after ${t}ms`)),t);e.then(o=>{clearTimeout(a),r(o)},o=>{clearTimeout(a),n(o)})})}function M(e){return e instanceof Error?e.message:String(e)}export{te as a,ie as b,ae as c,oe as d};
@@ -1,2 +1,2 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.14.3");process.exit(0)}
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.14.5");process.exit(0)}
2
2
  var o=!1;function r(t){if(!o){for(let e of["ALTER TABLE routing_outcomes ADD COLUMN exploration INTEGER NOT NULL DEFAULT 0","ALTER TABLE routing_outcomes ADD COLUMN criticality REAL","ALTER TABLE routing_outcomes ADD COLUMN q_weight REAL"])try{t.prepare(e).run()}catch{}try{t.prepare("CREATE INDEX IF NOT EXISTS idx_routing_outcomes_exploration ON routing_outcomes(exploration)").run()}catch{}o=!0}}export{r as a};
@@ -1,5 +1,5 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.14.3");process.exit(0)}
2
- import{a as Y}from"./chunk-B5XFDFBT.js";import{a as q,e as C,f as J}from"./chunk-B7SWW5A6.js";import{a as T}from"./chunk-ZN3J6TZD.js";import{a as U,b as j,c as G,d as B,f as $}from"./chunk-IFFZR6GY.js";import{a as O,b as z,f as _,i as H}from"./chunk-EY4OQHU3.js";import{d as F}from"./chunk-PZTVH2AS.js";import{a as M,e as P,g as A,i as N,j as S,n as W}from"./chunk-26GM5CWD.js";import{a as Z}from"./chunk-L2GKMBDP.js";import{c as L}from"./chunk-72UJXEKQ.js";import{b as v,d as ee}from"./chunk-YAKS3CAB.js";import{b as h,c as p}from"./chunk-C46DMCWF.js";import{a as I,b as f,c as X}from"./chunk-HRUU7E3D.js";import{i as D}from"./chunk-OYMLHX2B.js";Z();X();ee();var o=L.create("RealQEReasoningBank"),te={sqlite:{dbPath:".agentic-qe/memory.db",walMode:!0,useUnified:!0},embeddings:{modelName:"Xenova/all-MiniLM-L6-v2",quantized:!0,enableCache:!0},enableLearning:!0,enableRouting:!0,enableGuidance:!0,hnsw:{M:16,efConstruction:200,efSearch:100},routingWeights:{similarity:.3,performance:.4,capabilities:.3},coherenceThreshold:.4},R=class{constructor(e={},t){this.coherenceService=t;this.qeConfig={...te,...e},this.sqliteStore=F(this.qeConfig.sqlite),this.asymmetricEngine=new Y}coherenceService;qeConfig;sqliteStore;hnswIndex=null;patternIdMap=new Map;initialized=!1;stats={routingRequests:0,totalRoutingLatency:0,learningOutcomes:0,successfulOutcomes:0};routingLatencies=new T(1e3);asymmetricEngine;agentCapabilities={"qe-test-generator":{domains:["test-generation"],capabilities:["test-generation","tdd","bdd","unit-test","integration-test"],performanceScore:.85},"qe-coverage-analyzer":{domains:["coverage-analysis"],capabilities:["coverage-analysis","gap-detection","risk-scoring"],performanceScore:.92},"qe-coverage-specialist":{domains:["coverage-analysis"],capabilities:["sublinear-analysis","branch-coverage","mutation-testing"],performanceScore:.88},"qe-test-architect":{domains:["test-generation","coverage-analysis"],capabilities:["test-strategy","test-pyramid","architecture"],performanceScore:.9},"qe-api-contract-validator":{domains:["contract-testing"],capabilities:["contract-testing","openapi","graphql","pact"],performanceScore:.87},"qe-security-auditor":{domains:["security-compliance"],capabilities:["sast","dast","vulnerability","owasp"],performanceScore:.82},"qe-visual-tester":{domains:["visual-accessibility"],capabilities:["screenshot","visual-regression","percy","chromatic"],performanceScore:.8},"qe-a11y-ally":{domains:["visual-accessibility"],capabilities:["wcag","aria","screen-reader","contrast"],performanceScore:.85},"qe-performance-tester":{domains:["chaos-resilience"],capabilities:["load-testing","stress-testing","k6","artillery"],performanceScore:.83},"qe-flaky-investigator":{domains:["test-execution"],capabilities:["flaky-detection","test-stability","retry"],performanceScore:.78},"qe-chaos-engineer":{domains:["chaos-resilience"],capabilities:["chaos-testing","resilience","fault-injection"],performanceScore:.75}};async initialize(){if(this.initialized)return;let e=performance.now();await this.sqliteStore.initialize(),o.info("SQLite persistence initialized"),await P(M,this.qeConfig.embeddings),await this.initializeHNSW(),o.info("HNSW index initialized"),await this.loadPatternsIntoHNSW(),this.sqliteStore.getStats().totalPatterns===0&&(this.sqliteStore.hasAnyHistoricalData?.()??!1?o.error("qe_patterns table is EMPTY but historical data exists \u2014 possible data loss! Restore from backup instead of loading seed patterns. Skipping foundational pattern load to avoid masking data loss."):await this.loadFoundationalPatterns()),this.initialized=!0;let i=performance.now()-e;o.info("Fully initialized",{durationMs:Math.round(i)})}async initializeHNSW(){try{let e=await import("./hnswlib-node-G4CE3EOS.js"),i=e.default?.HierarchicalNSW||e.HierarchicalNSW;if(typeof i!="function")throw new Error("HierarchicalNSW not found in hnswlib-node module");let n=i,a=S();this.hnswIndex=new n("cosine",a),this.hnswIndex.initIndex(1e5,this.qeConfig.hnsw.M,this.qeConfig.hnsw.efConstruction),this.hnswIndex.setEf(this.qeConfig.hnsw.efSearch),o.info("HNSW initialized",{dimension:a,M:this.qeConfig.hnsw.M})}catch(e){throw o.error("HNSW initialization failed",e instanceof Error?e:void 0),e}}async loadPatternsIntoHNSW(){if(!this.hnswIndex)return;let e=this.sqliteStore.getAllEmbeddings(),t=S(),i=0,n=0,a=W()?.spaceId;for(let{patternId:s,embedding:r,spaceId:c}of e){if(!a||c!==a||!r||!Array.isArray(r)||r.length!==t){n++;continue}let m=this.hnswIndex.getCurrentCount();this.hnswIndex.addPoint(r,m),this.patternIdMap.set(m,s),i++}n>0&&o.warn("Skipped invalid embeddings",{skipped:n,expectedDim:t}),o.info("Loaded patterns into HNSW index",{count:i})}async loadFoundationalPatterns(){let e=[{patternType:"test-template",name:"AAA Unit Test",description:"Arrange-Act-Assert pattern for clear, maintainable unit tests",template:{type:"code",content:`describe('{{className}}', () => {
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.14.5");process.exit(0)}
2
+ import{a as Y}from"./chunk-QYOGD2VW.js";import{a as q,e as C,f as J}from"./chunk-QIRL6B3C.js";import{a as D}from"./chunk-BHFR2EXL.js";import{a as U,b as j,c as G,d as B,f as $}from"./chunk-RP2ZKPYV.js";import{a as O,b as z,f as _,i as H}from"./chunk-5WOSWNDN.js";import{d as F}from"./chunk-UTBYJ4RF.js";import{a as M,e as P,g as A,i as N,j as S,n as W}from"./chunk-KIP6WZGV.js";import{b as v,d as ee}from"./chunk-IJHCIXJC.js";import{c as h,d as p}from"./chunk-XEZIIQYJ.js";import{a as Z}from"./chunk-J27F4NSB.js";import{c as T}from"./chunk-7CD7PBHY.js";import{a as I,b as f,c as X}from"./chunk-J5UNP6W3.js";import{i as L}from"./chunk-W2XCZU62.js";Z();X();ee();var o=T.create("RealQEReasoningBank"),te={sqlite:{dbPath:".agentic-qe/memory.db",walMode:!0,useUnified:!0},embeddings:{modelName:"Xenova/all-MiniLM-L6-v2",quantized:!0,enableCache:!0},enableLearning:!0,enableRouting:!0,enableGuidance:!0,hnsw:{M:16,efConstruction:200,efSearch:100},routingWeights:{similarity:.3,performance:.4,capabilities:.3},coherenceThreshold:.4},R=class{constructor(e={},t){this.coherenceService=t;this.qeConfig={...te,...e},this.sqliteStore=F(this.qeConfig.sqlite),this.asymmetricEngine=new Y}coherenceService;qeConfig;sqliteStore;hnswIndex=null;patternIdMap=new Map;initialized=!1;stats={routingRequests:0,totalRoutingLatency:0,learningOutcomes:0,successfulOutcomes:0};routingLatencies=new D(1e3);asymmetricEngine;agentCapabilities={"qe-test-generator":{domains:["test-generation"],capabilities:["test-generation","tdd","bdd","unit-test","integration-test"],performanceScore:.85},"qe-coverage-analyzer":{domains:["coverage-analysis"],capabilities:["coverage-analysis","gap-detection","risk-scoring"],performanceScore:.92},"qe-coverage-specialist":{domains:["coverage-analysis"],capabilities:["sublinear-analysis","branch-coverage","mutation-testing"],performanceScore:.88},"qe-test-architect":{domains:["test-generation","coverage-analysis"],capabilities:["test-strategy","test-pyramid","architecture"],performanceScore:.9},"qe-api-contract-validator":{domains:["contract-testing"],capabilities:["contract-testing","openapi","graphql","pact"],performanceScore:.87},"qe-security-auditor":{domains:["security-compliance"],capabilities:["sast","dast","vulnerability","owasp"],performanceScore:.82},"qe-visual-tester":{domains:["visual-accessibility"],capabilities:["screenshot","visual-regression","percy","chromatic"],performanceScore:.8},"qe-a11y-ally":{domains:["visual-accessibility"],capabilities:["wcag","aria","screen-reader","contrast"],performanceScore:.85},"qe-performance-tester":{domains:["chaos-resilience"],capabilities:["load-testing","stress-testing","k6","artillery"],performanceScore:.83},"qe-flaky-investigator":{domains:["test-execution"],capabilities:["flaky-detection","test-stability","retry"],performanceScore:.78},"qe-chaos-engineer":{domains:["chaos-resilience"],capabilities:["chaos-testing","resilience","fault-injection"],performanceScore:.75}};async initialize(){if(this.initialized)return;let e=performance.now();await this.sqliteStore.initialize(),o.info("SQLite persistence initialized"),await P(M,this.qeConfig.embeddings),await this.initializeHNSW(),o.info("HNSW index initialized"),await this.loadPatternsIntoHNSW(),this.sqliteStore.getStats().totalPatterns===0&&(this.sqliteStore.hasAnyHistoricalData?.()??!1?o.error("qe_patterns table is EMPTY but historical data exists \u2014 possible data loss! Restore from backup instead of loading seed patterns. Skipping foundational pattern load to avoid masking data loss."):await this.loadFoundationalPatterns()),this.initialized=!0;let i=performance.now()-e;o.info("Fully initialized",{durationMs:Math.round(i)})}async initializeHNSW(){try{let e=await import("./hnswlib-node-GW67GTCL.js"),i=e.default?.HierarchicalNSW||e.HierarchicalNSW;if(typeof i!="function")throw new Error("HierarchicalNSW not found in hnswlib-node module");let n=i,a=S();this.hnswIndex=new n("cosine",a),this.hnswIndex.initIndex(1e5,this.qeConfig.hnsw.M,this.qeConfig.hnsw.efConstruction),this.hnswIndex.setEf(this.qeConfig.hnsw.efSearch),o.info("HNSW initialized",{dimension:a,M:this.qeConfig.hnsw.M})}catch(e){throw o.error("HNSW initialization failed",e instanceof Error?e:void 0),e}}async loadPatternsIntoHNSW(){if(!this.hnswIndex)return;let e=this.sqliteStore.getAllEmbeddings(),t=S(),i=0,n=0,a=W()?.spaceId;for(let{patternId:s,embedding:r,spaceId:c}of e){if(!a||c!==a||!r||!Array.isArray(r)||r.length!==t){n++;continue}let m=this.hnswIndex.getCurrentCount();this.hnswIndex.addPoint(r,m),this.patternIdMap.set(m,s),i++}n>0&&o.warn("Skipped invalid embeddings",{skipped:n,expectedDim:t}),o.info("Loaded patterns into HNSW index",{count:i})}async loadFoundationalPatterns(){let e=[{patternType:"test-template",name:"AAA Unit Test",description:"Arrange-Act-Assert pattern for clear, maintainable unit tests",template:{type:"code",content:`describe('{{className}}', () => {
3
3
  describe('{{methodName}}', () => {
4
4
  it('should {{expectedBehavior}}', {{async}} () => {
5
5
  // Arrange
@@ -12,7 +12,7 @@ import{a as Y}from"./chunk-B5XFDFBT.js";import{a as q,e as C,f as J}from"./chunk
12
12
  {{assertCode}}
13
13
  });
14
14
  });
15
- });`,variables:[{name:"className",type:"string",required:!0},{name:"methodName",type:"string",required:!0},{name:"expectedBehavior",type:"string",required:!0}]},context:{testType:"unit",tags:["unit-test","aaa","best-practice"]}},{patternType:"coverage-strategy",name:"Risk-Based Coverage",description:"Prioritize coverage by code risk and complexity",template:{type:"prompt",content:"Analyze coverage gaps focusing on critical business logic, error handling, and high-complexity functions.",variables:[]},context:{tags:["coverage","risk-based"]}}];for(let t of e)try{await this.storeQEPattern(t)}catch(i){o.warn("Failed to load foundational pattern",{name:t.name,error:i})}o.info("Loaded foundational patterns",{count:e.length})}async storeQEPattern(e){try{let t=`${e.name} ${e.description||""} ${e.context?.tags?.join(" ")||""}`,i=await P(t,this.qeConfig.embeddings),n=O(t)||"test-generation";if(q())try{let r=J(e.name,{description:e.description,template:e.template,patternType:e.patternType},n,{tags:e.context?.tags}),c=await C.evaluateWrite(r);if(!c.allowed&&(o.warn("Pattern blocked by MemoryWriteGate",{name:e.name,reason:c.reason,conflicts:c.conflictingPatterns?.join(", ")||"none"}),c.reason?.includes("strict")))return p(new Error(`Pattern blocked by governance: ${c.reason}`))}catch(r){o.warn("MemoryWriteGate check error (continuing)",{error:r})}let a=D(),s={id:a,patternType:e.patternType,qeDomain:n,domain:n,name:e.name,description:e.description||"",confidence:.5,usageCount:0,successRate:0,qualityScore:0,tier:"short-term",template:e.template,context:{tags:[],...e.context},createdAt:new Date,lastUsedAt:new Date,successfulUses:0,embedding:i,reusable:!1,reuseCount:0,averageTokenSavings:0};if(this.sqliteStore.storePattern(s,i),this.hnswIndex){let r=this.hnswIndex.getCurrentCount();this.hnswIndex.addPoint(i,r),this.patternIdMap.set(r,a)}if(q())try{C.registerPattern({key:a,value:{name:s.name,description:s.description,patternType:s.patternType},domain:s.domain})}catch(r){o.warn("Pattern registration with MemoryWriteGate failed",{error:r})}return h(s)}catch(t){return p(f(t))}}async searchQEPatterns(e,t={}){let i=performance.now();try{if(!this.hnswIndex)return p(new Error("HNSW index not available"));let n=await P(e,this.qeConfig.embeddings),a=t.limit||10,s=this.hnswIndex.searchKnn(n,a*2),r=[];for(let m=0;m<s.neighbors.length&&r.length<a;m++){let g=s.neighbors[m],l=1-s.distances[m];if(t.minSimilarity&&l<t.minSimilarity)continue;let d=this.patternIdMap.get(g);if(!d)continue;let u=this.sqliteStore.getPattern(d);u&&(t.domain&&u.qeDomain!==t.domain||r.push({pattern:u,similarity:l}))}let c=performance.now()-i;return c>10&&o.warn("Slow search",{searchTimeMs:Number(c.toFixed(1))}),h(r)}catch(n){return p(f(n))}}async routeTask(e){let t=performance.now();this.stats.routingRequests++;try{let i=e.domain?[e.domain]:z(e.task);i.length===0&&i.push("test-generation");let n=await this.searchQEPatterns(e.task,{limit:10,domain:i[0]}),a=n.success?n.value.map(l=>l.pattern):[],s=[];for(let[l,d]of Object.entries(this.agentCapabilities)){let u=0,b=[],Q=i.filter(y=>d.domains.includes(y)).length,E=Q>0?Q/i.length*.4:0;if(u+=E*this.qeConfig.routingWeights.similarity,E>0&&b.push(`Domain: ${(E*100).toFixed(0)}%`),e.capabilities&&e.capabilities.length>0){let y=e.capabilities.filter(K=>d.capabilities.some(V=>V.toLowerCase().includes(K.toLowerCase()))).length,w=y>0?y/e.capabilities.length*.3:0;u+=w*this.qeConfig.routingWeights.capabilities,w>0&&b.push(`Caps: ${(w*100).toFixed(0)}%`)}else u+=.15*this.qeConfig.routingWeights.capabilities;u+=d.performanceScore*.3*this.qeConfig.routingWeights.performance,b.push(`Perf: ${(d.performanceScore*100).toFixed(0)}%`),s.push({agent:l,score:u,reasoning:b})}s.sort((l,d)=>d.score-l.score);let r=s[0],c=s.slice(1,4),m=[];if(this.qeConfig.enableGuidance&&i.length>0){let l=j(i[0],{framework:e.context?.framework,language:e.context?.language,includeAntiPatterns:!0});m.push(...l.slice(0,5))}let g=performance.now()-t;this.stats.totalRoutingLatency+=g,this.routingLatencies.push(g);let x={recommendedAgent:r.agent,confidence:r.score,alternatives:c.map(l=>({agent:l.agent,score:l.score})),domains:i,patterns:a,guidance:m,reasoning:r.reasoning.join("; "),latencyMs:g};return h($(e.includePatternGuidance,x,n.success?n.value:[]))}catch(i){return p(f(i))}}async recordOutcome(e){if(!this.qeConfig.enableLearning)return h(void 0);try{this.sqliteStore.recordUsage(e.patternId,e.success,e.metrics,e.feedback),this.stats.learningOutcomes++,e.success&&this.stats.successfulOutcomes++;let t=this.sqliteStore.getPattern(e.patternId);if(t){let i=t.qeDomain,n=this.asymmetricEngine.computeConfidenceUpdate(t.confidence,e.success?"success":"failure",i);this.asymmetricEngine.shouldQuarantine(n,i).shouldQuarantine&&o.info("Pattern quarantined (asymmetric drop)",{name:t.name}),this.sqliteStore.updatePattern(e.patternId,{confidence:n}),await this.checkPatternPromotionWithCoherence(t)&&(this.sqliteStore.promotePattern(e.patternId),o.info("Pattern promoted to long-term",{name:t.name}))}return h(void 0)}catch(t){return p(f(t))}}async checkPatternPromotionWithCoherence(e){let t=_(e);if(!t.meetsUsageCriteria||!t.meetsQualityCriteria)return!1;if(this.coherenceService&&this.coherenceService.isInitialized()){let a=[...await this.getLongTermPatterns(),e].map(r=>({id:r.id,embedding:r.embedding||[],weight:r.confidence,metadata:{name:r.name,domain:r.qeDomain}})),s=await this.coherenceService.checkCoherence(a);if(s.energy>=(this.qeConfig.coherenceThreshold||.4))return o.info("Pattern promotion blocked due to coherence violation",{name:e.name,energy:s.energy}),s.contradictions&&s.contradictions.length>0&&o.info("Conflicts with existing patterns",{conflictingNodeIds:s.contradictions.map(r=>r.nodeIds).flat()}),!1}return!0}async getLongTermPatterns(){return this.sqliteStore.getPatterns({limit:1e3}).filter(t=>t.tier==="long-term")}shouldPromote(e){return e.tier==="short-term"&&e.successfulUses>=3&&e.successRate>=.7&&e.confidence>=.6}getQEGuidance(e){return U(e)}generateQEContext(e,t){return B(e,t||{})}checkQEAntiPatterns(e,t){return G(e,t)}async getQEStats(){let e=this.sqliteStore.getStats(),t=this.routingLatencies.percentile(95)||0,i={};for(let n of H)i[n]=e.byDomain[n]||0;return{totalPatterns:e.totalPatterns,byDomain:i,byTier:e.byTier,routingRequests:this.stats.routingRequests,avgRoutingLatencyMs:this.stats.routingRequests>0?this.stats.totalRoutingLatency/this.stats.routingRequests:0,p95RoutingLatencyMs:t,learningOutcomes:this.stats.learningOutcomes,patternSuccessRate:this.stats.learningOutcomes>0?this.stats.successfulOutcomes/this.stats.learningOutcomes:0,embeddingCacheSize:0,transformerAvailable:N(),embeddingDimension:S(),sqliteDbPath:this.qeConfig.sqlite.dbPath||".agentic-qe/memory.db",asymmetricLearning:{failurePenaltyRatio:"10:1",quarantinedPatterns:this.sqliteStore.getPatterns({limit:1e4}).filter(n=>n.quarantined===!0).length,rehabilitatedPatterns:this.sqliteStore.getPatterns({limit:1e4}).filter(n=>n.quarantined===!1&&n.quarantinedAt).length,avgConfidenceDelta:this.stats.learningOutcomes>0?this.stats.successfulOutcomes/this.stats.learningOutcomes-.5:0}}}async storeLoopPattern(e){try{let t=await this.storeQEPattern({patternType:"anti-pattern",name:`loop-detection:${e.toolCallSignature}`,description:`Tool call loop detected for agent ${e.agentId} during ${e.taskType}. Steering: ${e.steeringUsed}. Resolved: ${e.resolved}`,template:{type:"prompt",content:e.steeringUsed,variables:[]},context:{tags:["anti-pattern","loop-detection","learning-optimization",e.taskType]}});return t.success?{success:!0,patternId:t.value.id}:{success:!1,error:t.error?.message??"Unknown error"}}catch(t){return{success:!1,error:I(t)}}}async recordPatternOutcome(e,t,i){let n=this.sqliteStore.getPattern(e);if(!n)return;let a=n.usageCount+1,s=t?n.successfulUses+1:n.successfulUses,r=s/a,c=.3,m=(1-c)*n.qualityScore+c*i,g=Math.min(1,.5+a*.05+r*.3);this.sqliteStore.updatePattern(e,{usageCount:a,successfulUses:s,successRate:r,qualityScore:m,confidence:g})}async checkPatternPromotion(e,t,i,n){let a=this.sqliteStore.getPattern(e);return a?a.tier==="short-term"?t>=3&&i>=.6&&n>=.5:a.tier==="long-term"?t>=10&&i>=.75&&n>=.7:!1:!1}async promotePattern(e){this.sqliteStore.promotePattern(e)}async demotePattern(e){let t=this.sqliteStore.getPattern(e);if(!t)return;let i=["short-term","working","long-term"],n=i.indexOf(t.tier);if(n>0){let a=i[n-1];this.sqliteStore.updatePattern(e,{tier:a}),o.info("Pattern demoted",{name:t.name,newTier:a})}}cleanupPatternIdMap(){if(!this.initialized)return 0;let e=0,t=this.sqliteStore.getPatterns({limit:1e5}),i=new Set(t.map(n=>n.id));for(let[n,a]of Array.from(this.patternIdMap.entries()))i.has(a)||(this.patternIdMap.delete(n),e++);return e>0&&o.info("Cleaned stale patternIdMap entries",{count:e}),e}removePatternFromHNSW(e){for(let[t,i]of Array.from(this.patternIdMap.entries()))if(i===e)return this.patternIdMap.delete(t),o.info("Removed pattern from HNSW mapping",{patternId:e}),!0;return!1}getMemoryStats(){return{patternIdMapSize:this.patternIdMap.size,routingLatenciesSize:this.routingLatencies.length,hnswIndexCount:this.hnswIndex?.getCurrentCount()??0}}async storeTrajectory(e){return this.sqliteStore.getDb().prepare(`
15
+ });`,variables:[{name:"className",type:"string",required:!0},{name:"methodName",type:"string",required:!0},{name:"expectedBehavior",type:"string",required:!0}]},context:{testType:"unit",tags:["unit-test","aaa","best-practice"]}},{patternType:"coverage-strategy",name:"Risk-Based Coverage",description:"Prioritize coverage by code risk and complexity",template:{type:"prompt",content:"Analyze coverage gaps focusing on critical business logic, error handling, and high-complexity functions.",variables:[]},context:{tags:["coverage","risk-based"]}}];for(let t of e)try{await this.storeQEPattern(t)}catch(i){o.warn("Failed to load foundational pattern",{name:t.name,error:i})}o.info("Loaded foundational patterns",{count:e.length})}async storeQEPattern(e){try{let t=`${e.name} ${e.description||""} ${e.context?.tags?.join(" ")||""}`,i=await P(t,this.qeConfig.embeddings),n=O(t)||"test-generation";if(q())try{let r=J(e.name,{description:e.description,template:e.template,patternType:e.patternType},n,{tags:e.context?.tags}),c=await C.evaluateWrite(r);if(!c.allowed&&(o.warn("Pattern blocked by MemoryWriteGate",{name:e.name,reason:c.reason,conflicts:c.conflictingPatterns?.join(", ")||"none"}),c.reason?.includes("strict")))return p(new Error(`Pattern blocked by governance: ${c.reason}`))}catch(r){o.warn("MemoryWriteGate check error (continuing)",{error:r})}let a=L(),s={id:a,patternType:e.patternType,qeDomain:n,domain:n,name:e.name,description:e.description||"",confidence:.5,usageCount:0,successRate:0,qualityScore:0,tier:"short-term",template:e.template,context:{tags:[],...e.context},createdAt:new Date,lastUsedAt:new Date,successfulUses:0,embedding:i,reusable:!1,reuseCount:0,averageTokenSavings:0};if(this.sqliteStore.storePattern(s,i),this.hnswIndex){let r=this.hnswIndex.getCurrentCount();this.hnswIndex.addPoint(i,r),this.patternIdMap.set(r,a)}if(q())try{C.registerPattern({key:a,value:{name:s.name,description:s.description,patternType:s.patternType},domain:s.domain})}catch(r){o.warn("Pattern registration with MemoryWriteGate failed",{error:r})}return h(s)}catch(t){return p(f(t))}}async searchQEPatterns(e,t={}){let i=performance.now();try{if(!this.hnswIndex)return p(new Error("HNSW index not available"));let n=await P(e,this.qeConfig.embeddings),a=t.limit||10,s=this.hnswIndex.searchKnn(n,a*2),r=[];for(let m=0;m<s.neighbors.length&&r.length<a;m++){let g=s.neighbors[m],l=1-s.distances[m];if(t.minSimilarity&&l<t.minSimilarity)continue;let d=this.patternIdMap.get(g);if(!d)continue;let u=this.sqliteStore.getPattern(d);u&&(t.domain&&u.qeDomain!==t.domain||r.push({pattern:u,similarity:l}))}let c=performance.now()-i;return c>10&&o.warn("Slow search",{searchTimeMs:Number(c.toFixed(1))}),h(r)}catch(n){return p(f(n))}}async routeTask(e){let t=performance.now();this.stats.routingRequests++;try{let i=e.domain?[e.domain]:z(e.task);i.length===0&&i.push("test-generation");let n=await this.searchQEPatterns(e.task,{limit:10,domain:i[0]}),a=n.success?n.value.map(l=>l.pattern):[],s=[];for(let[l,d]of Object.entries(this.agentCapabilities)){let u=0,b=[],Q=i.filter(y=>d.domains.includes(y)).length,E=Q>0?Q/i.length*.4:0;if(u+=E*this.qeConfig.routingWeights.similarity,E>0&&b.push(`Domain: ${(E*100).toFixed(0)}%`),e.capabilities&&e.capabilities.length>0){let y=e.capabilities.filter(K=>d.capabilities.some(V=>V.toLowerCase().includes(K.toLowerCase()))).length,w=y>0?y/e.capabilities.length*.3:0;u+=w*this.qeConfig.routingWeights.capabilities,w>0&&b.push(`Caps: ${(w*100).toFixed(0)}%`)}else u+=.15*this.qeConfig.routingWeights.capabilities;u+=d.performanceScore*.3*this.qeConfig.routingWeights.performance,b.push(`Perf: ${(d.performanceScore*100).toFixed(0)}%`),s.push({agent:l,score:u,reasoning:b})}s.sort((l,d)=>d.score-l.score);let r=s[0],c=s.slice(1,4),m=[];if(this.qeConfig.enableGuidance&&i.length>0){let l=j(i[0],{framework:e.context?.framework,language:e.context?.language,includeAntiPatterns:!0});m.push(...l.slice(0,5))}let g=performance.now()-t;this.stats.totalRoutingLatency+=g,this.routingLatencies.push(g);let x={recommendedAgent:r.agent,confidence:r.score,alternatives:c.map(l=>({agent:l.agent,score:l.score})),domains:i,patterns:a,guidance:m,reasoning:r.reasoning.join("; "),latencyMs:g};return h($(e.includePatternGuidance,x,n.success?n.value:[]))}catch(i){return p(f(i))}}async recordOutcome(e){if(!this.qeConfig.enableLearning)return h(void 0);try{this.sqliteStore.recordUsage(e.patternId,e.success,e.metrics,e.feedback),this.stats.learningOutcomes++,e.success&&this.stats.successfulOutcomes++;let t=this.sqliteStore.getPattern(e.patternId);if(t){let i=t.qeDomain,n=this.asymmetricEngine.computeConfidenceUpdate(t.confidence,e.success?"success":"failure",i);this.asymmetricEngine.shouldQuarantine(n,i).shouldQuarantine&&o.info("Pattern quarantined (asymmetric drop)",{name:t.name}),this.sqliteStore.updatePattern(e.patternId,{confidence:n}),await this.checkPatternPromotionWithCoherence(t)&&(this.sqliteStore.promotePattern(e.patternId),o.info("Pattern promoted to long-term",{name:t.name}))}return h(void 0)}catch(t){return p(f(t))}}async checkPatternPromotionWithCoherence(e){let t=_(e);if(!t.meetsUsageCriteria||!t.meetsQualityCriteria)return!1;if(this.coherenceService&&this.coherenceService.isInitialized()){let a=[...await this.getLongTermPatterns(),e].map(r=>({id:r.id,embedding:r.embedding||[],weight:r.confidence,metadata:{name:r.name,domain:r.qeDomain}})),s=await this.coherenceService.checkCoherence(a);if(s.energy>=(this.qeConfig.coherenceThreshold||.4))return o.info("Pattern promotion blocked due to coherence violation",{name:e.name,energy:s.energy}),s.contradictions&&s.contradictions.length>0&&o.info("Conflicts with existing patterns",{conflictingNodeIds:s.contradictions.map(r=>r.nodeIds).flat()}),!1}return!0}async getLongTermPatterns(){return this.sqliteStore.getPatterns({limit:1e3}).filter(t=>t.tier==="long-term")}shouldPromote(e){return e.tier==="short-term"&&e.successfulUses>=3&&e.successRate>=.7&&e.confidence>=.6}getQEGuidance(e){return U(e)}generateQEContext(e,t){return B(e,t||{})}checkQEAntiPatterns(e,t){return G(e,t)}async getQEStats(){let e=this.sqliteStore.getStats(),t=this.routingLatencies.percentile(95)||0,i={};for(let n of H)i[n]=e.byDomain[n]||0;return{totalPatterns:e.totalPatterns,byDomain:i,byTier:e.byTier,routingRequests:this.stats.routingRequests,avgRoutingLatencyMs:this.stats.routingRequests>0?this.stats.totalRoutingLatency/this.stats.routingRequests:0,p95RoutingLatencyMs:t,learningOutcomes:this.stats.learningOutcomes,patternSuccessRate:this.stats.learningOutcomes>0?this.stats.successfulOutcomes/this.stats.learningOutcomes:0,embeddingCacheSize:0,transformerAvailable:N(),embeddingDimension:S(),sqliteDbPath:this.qeConfig.sqlite.dbPath||".agentic-qe/memory.db",asymmetricLearning:{failurePenaltyRatio:"10:1",quarantinedPatterns:this.sqliteStore.getPatterns({limit:1e4}).filter(n=>n.quarantined===!0).length,rehabilitatedPatterns:this.sqliteStore.getPatterns({limit:1e4}).filter(n=>n.quarantined===!1&&n.quarantinedAt).length,avgConfidenceDelta:this.stats.learningOutcomes>0?this.stats.successfulOutcomes/this.stats.learningOutcomes-.5:0}}}async storeLoopPattern(e){try{let t=await this.storeQEPattern({patternType:"anti-pattern",name:`loop-detection:${e.toolCallSignature}`,description:`Tool call loop detected for agent ${e.agentId} during ${e.taskType}. Steering: ${e.steeringUsed}. Resolved: ${e.resolved}`,template:{type:"prompt",content:e.steeringUsed,variables:[]},context:{tags:["anti-pattern","loop-detection","learning-optimization",e.taskType]}});return t.success?{success:!0,patternId:t.value.id}:{success:!1,error:t.error?.message??"Unknown error"}}catch(t){return{success:!1,error:I(t)}}}async recordPatternOutcome(e,t,i){let n=this.sqliteStore.getPattern(e);if(!n)return;let a=n.usageCount+1,s=t?n.successfulUses+1:n.successfulUses,r=s/a,c=.3,m=(1-c)*n.qualityScore+c*i,g=Math.min(1,.5+a*.05+r*.3);this.sqliteStore.updatePattern(e,{usageCount:a,successfulUses:s,successRate:r,qualityScore:m,confidence:g})}async checkPatternPromotion(e,t,i,n){let a=this.sqliteStore.getPattern(e);return a?a.tier==="short-term"?t>=3&&i>=.6&&n>=.5:a.tier==="long-term"?t>=10&&i>=.75&&n>=.7:!1:!1}async promotePattern(e){this.sqliteStore.promotePattern(e)}async demotePattern(e){let t=this.sqliteStore.getPattern(e);if(!t)return;let i=["short-term","working","long-term"],n=i.indexOf(t.tier);if(n>0){let a=i[n-1];this.sqliteStore.updatePattern(e,{tier:a}),o.info("Pattern demoted",{name:t.name,newTier:a})}}cleanupPatternIdMap(){if(!this.initialized)return 0;let e=0,t=this.sqliteStore.getPatterns({limit:1e5}),i=new Set(t.map(n=>n.id));for(let[n,a]of Array.from(this.patternIdMap.entries()))i.has(a)||(this.patternIdMap.delete(n),e++);return e>0&&o.info("Cleaned stale patternIdMap entries",{count:e}),e}removePatternFromHNSW(e){for(let[t,i]of Array.from(this.patternIdMap.entries()))if(i===e)return this.patternIdMap.delete(t),o.info("Removed pattern from HNSW mapping",{patternId:e}),!0;return!1}getMemoryStats(){return{patternIdMapSize:this.patternIdMap.size,routingLatenciesSize:this.routingLatencies.length,hnswIndexCount:this.hnswIndex?.getCurrentCount()??0}}async storeTrajectory(e){return this.sqliteStore.getDb().prepare(`
16
16
  INSERT OR REPLACE INTO qe_trajectories (
17
17
  id, task, agent, domain, started_at, ended_at, success, steps_json, metadata_json
18
18
  ) VALUES (?, ?, ?, ?, datetime('now'), datetime('now'), ?, ?, ?)
@@ -1,5 +1,5 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.14.3");process.exit(0)}
2
- import{n as g}from"./chunk-26GM5CWD.js";var m={0:"sqlite-only",1:"hybrid",2:"dual-write-sqlite-primary",3:"dual-write-rvf-primary",4:"rvf-primary"},b=class{config;db=null;rvfStore=null;totalWrites=0;totalReads=0;rvfWriteFailures=0;rvfReadFailures=0;fallbacksUsed=0;sqliteLatencies=[];rvfLatencies=[];sqliteWriteLatencies=[];rvfWriteLatencies=[];constructor(e){this.config={rvfPath:".agentic-qe/patterns.rvf",dimensions:384,enableFallback:!0,...e}}setSqliteDb(e){this.db=e}setRvfStore(e){this.rvfStore=e}get stage(){return this.config.stage}setStage(e){this.config={...this.config,stage:e}}write(e,t){this.totalWrites++;let r={sqliteSuccess:!1,rvfSuccess:!1,stage:this.config.stage,fallbackUsed:!1},n=this.db?this.db.prepare("PRAGMA table_info('qe_pattern_embeddings')").all().some(s=>s.name==="space_id"):!1,c=g()?.spaceId??this.config.embeddingSpaceId;if(!n||!c)return r;let o=this.config.stage<4,i=this.config.stage>=2;if(o&&this.db){let s=performance.now();try{let a=Buffer.from(t instanceof Float32Array?t.buffer:new Float32Array(t).buffer);n?this.db.prepare(`
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.14.5");process.exit(0)}
2
+ import{n as g}from"./chunk-KIP6WZGV.js";var m={0:"sqlite-only",1:"hybrid",2:"dual-write-sqlite-primary",3:"dual-write-rvf-primary",4:"rvf-primary"},b=class{config;db=null;rvfStore=null;totalWrites=0;totalReads=0;rvfWriteFailures=0;rvfReadFailures=0;fallbacksUsed=0;sqliteLatencies=[];rvfLatencies=[];sqliteWriteLatencies=[];rvfWriteLatencies=[];constructor(e){this.config={rvfPath:".agentic-qe/patterns.rvf",dimensions:384,enableFallback:!0,...e}}setSqliteDb(e){this.db=e}setRvfStore(e){this.rvfStore=e}get stage(){return this.config.stage}setStage(e){this.config={...this.config,stage:e}}write(e,t){this.totalWrites++;let r={sqliteSuccess:!1,rvfSuccess:!1,stage:this.config.stage,fallbackUsed:!1},n=this.db?this.db.prepare("PRAGMA table_info('qe_pattern_embeddings')").all().some(s=>s.name==="space_id"):!1,c=g()?.spaceId??this.config.embeddingSpaceId;if(!n||!c)return r;let o=this.config.stage<4,i=this.config.stage>=2;if(o&&this.db){let s=performance.now();try{let a=Buffer.from(t instanceof Float32Array?t.buffer:new Float32Array(t).buffer);n?this.db.prepare(`
3
3
  INSERT INTO qe_pattern_embeddings (pattern_id, embedding, dimension, model, space_id, created_at)
4
4
  VALUES (?, ?, ?, 'all-MiniLM-L6-v2', ?, datetime('now'))
5
5
  ON CONFLICT(pattern_id) DO UPDATE SET
@@ -1,2 +1,2 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.14.3");process.exit(0)}
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.14.5");process.exit(0)}
2
2
  var h=class{executionHistory=[];learnedDurations=new Map;runCount=0;lastPrunedCount=0;learningRate;maxHistorySize;constructor(t){this.learningRate=t?.learningRate??.3,this.maxHistorySize=t?.maxHistorySize??1e4}buildTestDAG(t){let e=new Map,n=new Map;for(let i of t){let s=this.applyLearnedDuration(i);e.set(s.id,s),n.set(s.id,[])}for(let i of t)for(let s of i.dependencies){if(!e.has(s))throw new Error(`Test '${i.id}' depends on '${s}' which does not exist in the test set`);n.get(s).push(i.id)}let o=this.computeCriticalPath(e,n),a=this.computeParallelGroups(e,n);return{nodes:e,edges:n,criticalPath:o,parallelGroups:a}}findCriticalPath(t){return t.criticalPath.map(e=>t.nodes.get(e)).filter(e=>e!==void 0)}findParallelBranches(t){return t.parallelGroups.map(e=>e.map(n=>t.nodes.get(n)).filter(n=>n!==void 0))}pruneByMinCut(t,e){let n=this.sumDurations(t.nodes);if(n<=e)return this.lastPrunedCount=0,t;let o=this.computeAttentionScores(t),a=Array.from(o.entries()).sort((r,l)=>r[1]-l[1]),i=new Set(t.criticalPath),s=new Set,c=n;for(let[r]of a){if(c<=e)break;if(i.has(r)||(t.edges.get(r)??[]).some(p=>!s.has(p)))continue;let d=t.nodes.get(r);d&&(s.add(r),c-=d.estimatedDuration)}this.lastPrunedCount=s.size;let u=Array.from(t.nodes.values()).filter(r=>!s.has(r.id));return this.buildTestDAG(u)}schedule(t){if(t.length===0)return{phases:[],totalEstimatedTime:0,criticalPathTime:0,parallelism:0};let e=this.buildTestDAG(t),o=this.findParallelBranches(e).map(u=>({tests:u,canRunInParallel:u.length>1})),a=this.computeCriticalPathDuration(e),i=this.sumDurations(e.nodes),s=o.reduce((u,r)=>r.canRunInParallel?u+Math.max(...r.tests.map(l=>l.estimatedDuration)):u+r.tests.reduce((l,d)=>l+d.estimatedDuration,0),0),c=s>0?i/s:1;return this.runCount++,{phases:o,totalEstimatedTime:s,criticalPathTime:a,parallelism:c}}getOptimizationStats(){return{totalTests:0,criticalPathLength:0,parallelGroupCount:0,prunedTests:this.lastPrunedCount,estimatedTimeSaved:0,historicalRuns:this.runCount,usingNativeBackend:!1}}recordExecution(t,e,n){this.executionHistory.push({testId:t,actualDuration:e,result:n,timestamp:Date.now()}),this.executionHistory.length>this.maxHistorySize&&(this.executionHistory=this.executionHistory.slice(-this.maxHistorySize));let o=this.learnedDurations.get(t);o!==void 0?this.learnedDurations.set(t,o*(1-this.learningRate)+e*this.learningRate):this.learnedDurations.set(t,e)}getLearnedDuration(t){return this.learnedDurations.get(t)}isNativeBackendAvailable(){return!1}computeCriticalPath(t,e){let n=this.topologicalSort(t,e);if(n.length===0)return[];let o=new Map,a=new Map;for(let r of n)o.set(r,t.get(r).estimatedDuration),a.set(r,null);for(let r of n){let l=o.get(r);for(let d of e.get(r)??[]){let p=t.get(d);if(!p)continue;let g=l+p.estimatedDuration;g>(o.get(d)??0)&&(o.set(d,g),a.set(d,r))}}let i=0,s=null;for(let[r,l]of o)l>i&&(i=l,s=r);if(!s)return[];let c=[],u=s;for(;u!==null;)c.unshift(u),u=a.get(u)??null;return c}computeCriticalPathDuration(t){return t.criticalPath.reduce((e,n)=>e+(t.nodes.get(n)?.estimatedDuration??0),0)}computeParallelGroups(t,e){let n=this.topologicalSort(t,e);if(n.length===0)return[];let o=new Map;for(let[u,r]of t)o.set(u,new Set(r.dependencies));let a=new Map;for(let u of n){let r=-1;for(let l of o.get(u)??new Set){let d=a.get(l);d!==void 0&&d>r&&(r=d)}a.set(u,r+1)}let i=new Map;for(let u of n){let r=a.get(u)??0;i.has(r)||i.set(r,[]),i.get(r).push(u)}let s=Math.max(...Array.from(i.keys()),-1),c=[];for(let u=0;u<=s;u++){let r=i.get(u);r&&r.length>0&&c.push(r)}return c}computeAttentionScores(t){let e=new Map,n=this.countTransitiveDependents(t);for(let[o,a]of t.nodes){let i=a.lastResult==="fail"?2:1,s=n.get(o)??0;e.set(o,a.priority*i*(1+s))}return e}countTransitiveDependents(t){let e=new Map,n=new Map,o=a=>{if(n.has(a))return n.get(a);let i=new Set;for(let s of t.edges.get(a)??[]){i.add(s);for(let c of o(s))i.add(c)}return n.set(a,i),i};for(let a of t.nodes.keys())e.set(a,o(a).size);return e}topologicalSort(t,e){let n=new Map;for(let i of t.keys())n.set(i,0);for(let i of e.values())for(let s of i)n.has(s)&&n.set(s,(n.get(s)??0)+1);let o=[];for(let[i,s]of n)s===0&&o.push(i);let a=[];for(;o.length>0;){let i=o.shift();a.push(i);for(let s of e.get(i)??[]){let c=(n.get(s)??0)-1;n.set(s,c),c===0&&o.push(s)}}if(a.length!==t.size)throw new Error(`Cycle detected in test DAG: sorted ${a.length} of ${t.size} nodes`);return a}applyLearnedDuration(t){let e=this.learnedDurations.get(t.id);return e!==void 0?{...t,estimatedDuration:Math.round(e)}:t}sumDurations(t){let e=0;for(let n of t.values())e+=n.estimatedDuration;return e}};function m(f){return new h(f)}export{h as a,m as b};