agentic-qe 3.14.2 → 3.14.4

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 (760) 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 +183 -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/cli/bundle.js +7 -7
  219. package/dist/cli/chunks/adapter-TNNNJRDG.js +2 -0
  220. package/dist/cli/chunks/{agent-booster-wasm-SD5N32MX.js → agent-booster-wasm-5PC7D2FW.js} +2 -2
  221. package/dist/cli/chunks/{agent-handler-OZRSJM7F.js → agent-handler-RDNTK4CA.js} +2 -2
  222. package/dist/cli/chunks/{agent-memory-branch-NYTRANRN.js → agent-memory-branch-NAAMBWIR.js} +2 -2
  223. package/dist/cli/chunks/aqe-learning-engine-5ZRMYJLB.js +2 -0
  224. package/dist/cli/chunks/{arena-EX3SC2DP.js → arena-HXTWJ5YY.js} +4 -4
  225. package/dist/cli/chunks/{arena-FOTVSRK4.js → arena-KXFHRWX4.js} +2 -2
  226. package/dist/cli/chunks/{audit-Q5GHSUQY.js → audit-YSGA7UWT.js} +3 -3
  227. package/dist/cli/chunks/base-KWZHOPSH.js +2 -0
  228. package/dist/cli/chunks/{better-sqlite3-S7M5R2HS.js → better-sqlite3-UICJZIDG.js} +2 -2
  229. package/dist/cli/chunks/brain-handler-ET6YAP4B.js +90 -0
  230. package/dist/cli/chunks/{branch-enumerator-RWAXTGEU.js → branch-enumerator-SS7UNVIA.js} +2 -2
  231. package/dist/cli/chunks/{browser-IGDESJGF.js → browser-77GI6KBE.js} +2 -2
  232. package/dist/cli/chunks/browser-workflow-2FZTKDUL.js +2 -0
  233. package/dist/cli/chunks/{chunk-U54OOA24.js → chunk-2JW3BCGG.js} +1 -1
  234. package/dist/cli/chunks/{chunk-LML5VTFK.js → chunk-33YYYWBQ.js} +1 -1
  235. package/dist/cli/chunks/{chunk-P64DMQ2C.js → chunk-34WO57CW.js} +1 -1
  236. package/dist/cli/chunks/{chunk-57TNBR2P.js → chunk-3QHGWY7T.js} +2 -2
  237. package/dist/cli/chunks/chunk-3TW5W5LX.js +2 -0
  238. package/dist/cli/chunks/{chunk-S4MR6RTE.js → chunk-3UPAMMCB.js} +1 -1
  239. package/dist/cli/chunks/{chunk-5WJUNRTY.js → chunk-3VOQRIQM.js} +2 -2
  240. package/dist/cli/chunks/{chunk-4RT7I7PI.js → chunk-3X3DJZJJ.js} +1 -1
  241. package/dist/cli/chunks/{chunk-RFNEHNJV.js → chunk-4MHXCAG2.js} +1 -1
  242. package/dist/cli/chunks/{chunk-PMUBG2RU.js → chunk-4OYFXLBK.js} +2 -2
  243. package/dist/cli/chunks/{chunk-W2FLULF4.js → chunk-55RWDRJD.js} +3 -3
  244. package/dist/cli/chunks/chunk-5R3QL7WN.js +14 -0
  245. package/dist/cli/chunks/{chunk-RHJVDCLV.js → chunk-5SJHQ2CO.js} +2 -2
  246. package/dist/cli/chunks/{chunk-HBTC4L53.js → chunk-5YPYDPBJ.js} +2 -2
  247. package/dist/cli/chunks/chunk-5Z6XZV7K.js +65 -0
  248. package/dist/cli/chunks/{chunk-6EHN7Q2Q.js → chunk-64PFWE2F.js} +2 -2
  249. package/dist/cli/chunks/{chunk-KFXZDQ5J.js → chunk-6CQN24ZK.js} +1 -1
  250. package/dist/cli/chunks/{chunk-WVY22NHZ.js → chunk-6J62K3SW.js} +2 -2
  251. package/dist/cli/chunks/{chunk-TLPL3EQY.js → chunk-6KJABXAR.js} +2 -2
  252. package/dist/cli/chunks/{chunk-PZKZY6PB.js → chunk-6QYNWR7U.js} +2 -2
  253. package/dist/cli/chunks/{chunk-A7N3YUDJ.js → chunk-6TPKK7LD.js} +2 -2
  254. package/dist/cli/chunks/{chunk-RYJHREYS.js → chunk-6UWGMOND.js} +2 -2
  255. package/dist/cli/chunks/{chunk-XPLSLHRB.js → chunk-6VRA2QGL.js} +1 -1
  256. package/dist/cli/chunks/{chunk-Q3JHS3UD.js → chunk-7D777LTF.js} +2 -2
  257. package/dist/cli/chunks/chunk-7ZIOFPL3.js +2 -0
  258. package/dist/cli/chunks/chunk-A4FYONNU.js +2 -0
  259. package/dist/cli/chunks/{chunk-7AFBNU6K.js → chunk-AIHDEEJO.js} +2 -2
  260. package/dist/cli/chunks/{chunk-L2F7FVIU.js → chunk-AUXFKCQL.js} +2 -2
  261. package/dist/cli/chunks/{chunk-67A6PEZM.js → chunk-AWWNB2T7.js} +2 -2
  262. package/dist/cli/chunks/{chunk-DVHWLAEO.js → chunk-BDESSCVR.js} +3 -3
  263. package/dist/cli/chunks/{chunk-JQ2ZD3WO.js → chunk-BFP7KO7P.js} +2 -2
  264. package/dist/cli/chunks/{chunk-N5ZRUOMR.js → chunk-BGE6FOLM.js} +2 -2
  265. package/dist/cli/chunks/{chunk-BWRHOIYC.js → chunk-BOARZKU3.js} +2 -2
  266. package/dist/cli/chunks/{chunk-CTCQOYBS.js → chunk-BOZZYWCR.js} +1 -1
  267. package/dist/cli/chunks/{chunk-NHHWLJQF.js → chunk-C2WU3533.js} +1 -1
  268. package/dist/cli/chunks/{chunk-5EHLGOWW.js → chunk-CDHQFHRP.js} +2 -2
  269. package/dist/cli/chunks/chunk-CDKG6EI7.js +16 -0
  270. package/dist/cli/chunks/{chunk-RGH3WGWD.js → chunk-CIKSHTEQ.js} +3 -3
  271. package/dist/cli/chunks/{chunk-K574FLVB.js → chunk-CIZ5JPDC.js} +2 -2
  272. package/dist/cli/chunks/{chunk-LWUJQGCS.js → chunk-CLTMDCSE.js} +2 -2
  273. package/dist/cli/chunks/{chunk-GHQ5PUOV.js → chunk-CNG6GQEZ.js} +2 -2
  274. package/dist/cli/chunks/{chunk-3C2K4YMS.js → chunk-CSU5NYOX.js} +3 -3
  275. package/dist/cli/chunks/chunk-CU46J64M.js +4 -0
  276. package/dist/cli/chunks/{chunk-EH5OCHAJ.js → chunk-CXQPR5MY.js} +1 -1
  277. package/dist/cli/chunks/chunk-DA5K5754.js +96 -0
  278. package/dist/cli/chunks/{chunk-FVGTINVR.js → chunk-DAEFDCJ4.js} +81 -65
  279. package/dist/cli/chunks/{chunk-MH73D5TN.js → chunk-DEYLEDJN.js} +2 -2
  280. package/dist/cli/chunks/{chunk-7FWP7CZY.js → chunk-DFZCKIGY.js} +3 -3
  281. package/dist/cli/chunks/{chunk-QXTW7XCS.js → chunk-DHJPWQBR.js} +2 -2
  282. package/dist/cli/chunks/{chunk-NAZVPZJS.js → chunk-DOTK76IJ.js} +2 -2
  283. package/dist/cli/chunks/{chunk-RCI64RIJ.js → chunk-DPFRKBOG.js} +2 -2
  284. package/dist/cli/chunks/{chunk-WMW47QMR.js → chunk-EDJ3O7RH.js} +2 -2
  285. package/dist/cli/chunks/{chunk-4K27ESCA.js → chunk-EKQ673SA.js} +1 -1
  286. package/dist/cli/chunks/chunk-F3SBRQC6.js +2 -0
  287. package/dist/cli/chunks/{chunk-4N44UJGI.js → chunk-FGYMFUE2.js} +2 -2
  288. package/dist/cli/chunks/chunk-FLYOJOKN.js +2 -0
  289. package/dist/cli/chunks/{chunk-W4OQYLYO.js → chunk-FRH6VAUS.js} +1 -1
  290. package/dist/cli/chunks/{chunk-VOYJJ3KA.js → chunk-FWGOHAAB.js} +2 -2
  291. package/dist/cli/chunks/{chunk-D4RCV4LY.js → chunk-G6T45OIC.js} +2 -2
  292. package/dist/cli/chunks/{chunk-2EHFEMRU.js → chunk-GPLQ6DOK.js} +2 -2
  293. package/dist/cli/chunks/{chunk-RVCWSAXI.js → chunk-HDSAM2RE.js} +2 -2
  294. package/dist/cli/chunks/chunk-HIVA55CJ.js +2 -0
  295. package/dist/cli/chunks/{chunk-6F4WHN7D.js → chunk-HIYXCDEP.js} +1 -1
  296. package/dist/cli/chunks/{chunk-NRR23SJV.js → chunk-HUWNIPZ5.js} +1 -1
  297. package/dist/cli/chunks/{chunk-4M6A3PVJ.js → chunk-HV2J7KKQ.js} +2 -2
  298. package/dist/cli/chunks/{chunk-CJHVOBJY.js → chunk-IFCLB7FJ.js} +1 -1
  299. package/dist/cli/chunks/{chunk-Q335R4MR.js → chunk-IPR4QP3H.js} +2 -2
  300. package/dist/cli/chunks/{chunk-HZMLNM2T.js → chunk-ISDMD6EU.js} +178 -175
  301. package/dist/cli/chunks/chunk-J6GNQS62.js +5 -0
  302. package/dist/cli/chunks/{chunk-3DFFFXXO.js → chunk-JBNEE5UH.js} +2 -2
  303. package/dist/cli/chunks/chunk-JZ3ORVZ3.js +54 -0
  304. package/dist/cli/chunks/{chunk-T4C56HBW.js → chunk-KCZR45PA.js} +2 -2
  305. package/dist/cli/chunks/chunk-KGT36Z42.js +14 -0
  306. package/dist/cli/chunks/{chunk-JIUF6NV6.js → chunk-KHFNNVJA.js} +2 -2
  307. package/dist/cli/chunks/{chunk-7SK6IMGZ.js → chunk-KPA7MZ6C.js} +2 -2
  308. package/dist/cli/chunks/{chunk-G2CLZVYI.js → chunk-KSKEF7LZ.js} +3 -3
  309. package/dist/cli/chunks/{chunk-6LMLN5R2.js → chunk-M2JBBZQB.js} +2 -2
  310. package/dist/cli/chunks/{chunk-UHTAI4ZB.js → chunk-M4WJKGVK.js} +1 -1
  311. package/dist/cli/chunks/{chunk-KZOBLLXW.js → chunk-M5QUBZY6.js} +2 -2
  312. package/dist/cli/chunks/{chunk-42WUDDUU.js → chunk-MCUJEZT6.js} +2 -2
  313. package/dist/cli/chunks/{chunk-ZFGND4QK.js → chunk-MDWCE7YW.js} +1 -1
  314. package/dist/cli/chunks/{chunk-TYVQNYXX.js → chunk-MEGDYJPV.js} +7 -7
  315. package/dist/cli/chunks/chunk-MIQTXNBG.js +4 -0
  316. package/dist/cli/chunks/{chunk-PFXX5Q32.js → chunk-MNW6QGNJ.js} +2 -2
  317. package/dist/cli/chunks/{chunk-IVGVOGIZ.js → chunk-MOBNBMFW.js} +1 -1
  318. package/dist/cli/chunks/{chunk-NWFIJNEB.js → chunk-MTZH7AHC.js} +1 -1
  319. package/dist/cli/chunks/chunk-MVNP7GIR.js +2 -0
  320. package/dist/cli/chunks/chunk-MVPCNSPY.js +2 -0
  321. package/dist/cli/chunks/chunk-NA7B2QYB.js +2 -0
  322. package/dist/cli/chunks/{chunk-E3Q7WNJD.js → chunk-NDPFGIMJ.js} +3 -3
  323. package/dist/cli/chunks/{chunk-GHUPID5E.js → chunk-NJBGXDQ7.js} +1 -1
  324. package/dist/cli/chunks/chunk-OBAP2TXZ.js +2 -0
  325. package/dist/cli/chunks/{chunk-OBCKP3G4.js → chunk-OCWWP5PL.js} +4 -4
  326. package/dist/cli/chunks/{chunk-CJCT452S.js → chunk-ODKLFVYC.js} +2 -2
  327. package/dist/cli/chunks/{chunk-YN6W2XIT.js → chunk-ONII3572.js} +4 -4
  328. package/dist/cli/chunks/{chunk-QW4LN5NK.js → chunk-OSLYSG3B.js} +2 -2
  329. package/dist/cli/chunks/{chunk-HZ6NEJMO.js → chunk-OULHKEVH.js} +2 -2
  330. package/dist/cli/chunks/{chunk-CG2MUD7U.js → chunk-PAWXJ73E.js} +1 -1
  331. package/dist/cli/chunks/chunk-PEPFCPES.js +2 -0
  332. package/dist/cli/chunks/{chunk-UIGEUEBT.js → chunk-PFR4G3DJ.js} +2 -2
  333. package/dist/cli/chunks/chunk-PO3IXGMQ.js +2 -0
  334. package/dist/cli/chunks/{chunk-6SZKLWZT.js → chunk-PZJOPURC.js} +5 -5
  335. package/dist/cli/chunks/{chunk-ARMZYHYL.js → chunk-Q5DO24IJ.js} +2 -2
  336. package/dist/cli/chunks/chunk-QGIU2WRL.js +2 -0
  337. package/dist/cli/chunks/{chunk-N3RN4QTC.js → chunk-R4VL6E65.js} +2 -2
  338. package/dist/cli/chunks/{chunk-MWQTACNA.js → chunk-R5NE6B2M.js} +2 -2
  339. package/dist/cli/chunks/{chunk-T46LOLW3.js → chunk-RJCYCLZV.js} +2 -2
  340. package/dist/cli/chunks/{chunk-CH2TQCV5.js → chunk-SGYJ4NFZ.js} +1 -1
  341. package/dist/cli/chunks/{chunk-NG2UVPTW.js → chunk-SRKETSFF.js} +1 -1
  342. package/dist/cli/chunks/{chunk-QFUX7ELG.js → chunk-STJCATGN.js} +2 -2
  343. package/dist/cli/chunks/{chunk-CIESXO73.js → chunk-STM3UDNO.js} +1 -1
  344. package/dist/cli/chunks/{chunk-C7AXRI7E.js → chunk-T6BVLVI5.js} +1 -1
  345. package/dist/cli/chunks/{chunk-HSJ5FQCF.js → chunk-TDZ53WO2.js} +2 -2
  346. package/dist/cli/chunks/{chunk-YF5OP6CR.js → chunk-TPGED2IF.js} +2 -2
  347. package/dist/cli/chunks/{chunk-2TG24LYQ.js → chunk-TSRSV3LD.js} +1 -1
  348. package/dist/cli/chunks/{chunk-6VKJAMZY.js → chunk-TT23RRB7.js} +1 -1
  349. package/dist/cli/chunks/{chunk-WXMSRBQF.js → chunk-TWAWHOP7.js} +2 -2
  350. package/dist/cli/chunks/{chunk-ZCDXJ27H.js → chunk-U5K45TFH.js} +1 -1
  351. package/dist/cli/chunks/{chunk-3WV4H33V.js → chunk-UDHKLT4C.js} +1 -1
  352. package/dist/cli/chunks/{chunk-VNAKBHJI.js → chunk-UEM7ZF5K.js} +2 -2
  353. package/dist/cli/chunks/{chunk-4ZUZDFAA.js → chunk-UGVHCMUN.js} +6 -6
  354. package/dist/cli/chunks/{chunk-NNOMDM4N.js → chunk-V3QLFNA2.js} +2 -2
  355. package/dist/cli/chunks/{chunk-S7N4BKI3.js → chunk-VD6QRULW.js} +2 -2
  356. package/dist/cli/chunks/{chunk-WBH4C4BG.js → chunk-VIHTL3U2.js} +2 -2
  357. package/dist/cli/chunks/chunk-W7BWUTVV.js +2 -0
  358. package/dist/cli/chunks/{chunk-IWFL6EFI.js → chunk-WLG5AJ4N.js} +2 -2
  359. package/dist/cli/chunks/{chunk-KEEBUVGV.js → chunk-XC7DYDSY.js} +8 -8
  360. package/dist/cli/chunks/{chunk-F2KRT2II.js → chunk-XJ7QNVI5.js} +3 -3
  361. package/dist/cli/chunks/chunk-XRT2WRMS.js +2 -0
  362. package/dist/cli/chunks/{chunk-ADK7DF3G.js → chunk-XRYF6JV7.js} +2 -2
  363. package/dist/cli/chunks/{chunk-PWEIDHT7.js → chunk-XWMZ6D6N.js} +2 -2
  364. package/dist/cli/chunks/{chunk-ICKLBATY.js → chunk-Y3MW3YBC.js} +2 -2
  365. package/dist/cli/chunks/chunk-YNXS6CGV.js +2 -0
  366. package/dist/cli/chunks/{chunk-PVHO6KLB.js → chunk-Z3RHREWF.js} +1 -1
  367. package/dist/cli/chunks/{chunk-EAJK25IS.js → chunk-ZBAKA4YB.js} +1 -1
  368. package/dist/cli/chunks/chunk-ZBJ4XOOV.js +180 -0
  369. package/dist/cli/chunks/chunk-ZBQY5GLF.js +11 -0
  370. package/dist/cli/chunks/{chunk-R5RNOLHI.js → chunk-ZJ26AQA5.js} +1 -1
  371. package/dist/cli/chunks/{chunk-KPFG4OIM.js → chunk-ZNEMGX5O.js} +1 -1
  372. package/dist/cli/chunks/{chunk-2H5YJ5ZK.js → chunk-ZNPKDCZR.js} +2 -2
  373. package/dist/cli/chunks/{chunk-DW6ZMNMR.js → chunk-ZZDIMOOV.js} +2 -2
  374. package/dist/cli/chunks/ci-464KPQNP.js +81 -0
  375. package/dist/cli/chunks/ci-output-I7FX2RSO.js +2 -0
  376. package/dist/cli/chunks/{circuit-breaker-4WST3QSA.js → circuit-breaker-3FW237WW.js} +2 -2
  377. package/dist/cli/chunks/{claude-flow-setup-KB4TKMYI.js → claude-flow-setup-6JKMBPGU.js} +2 -2
  378. package/dist/cli/chunks/client-7E4LM2WW.js +2 -0
  379. package/dist/cli/chunks/{cline-installer-W2ZHQ6WM.js → cline-installer-UWFHT6VY.js} +2 -2
  380. package/dist/cli/chunks/{code-TF2AVR5D.js → code-KQSUT3FS.js} +29 -29
  381. package/dist/cli/chunks/{code-index-extractor-RMDRUVQJ.js → code-index-extractor-PABBNUSC.js} +2 -2
  382. package/dist/cli/chunks/{codex-installer-VSTRHJHV.js → codex-installer-CQ24DTP5.js} +2 -2
  383. package/dist/cli/chunks/{completions-3Q37QVFR.js → completions-7RWHAUAR.js} +2 -2
  384. package/dist/cli/chunks/complexity-analyzer-XPOAF33E.js +2 -0
  385. package/dist/cli/chunks/{continuedev-installer-VTEXM455.js → continuedev-installer-V4F2FIZP.js} +2 -2
  386. package/dist/cli/chunks/{copilot-installer-AGY7DQUS.js → copilot-installer-JMICURQB.js} +2 -2
  387. package/dist/cli/chunks/core-handlers-IFG3757P.js +2 -0
  388. package/dist/cli/chunks/cost-tracker-5OFHEYFJ.js +2 -0
  389. package/dist/cli/chunks/{coverage-TT64IOS4.js → coverage-QKN57JDS.js} +3 -3
  390. package/dist/cli/chunks/cross-domain-router-EK7W4PGP.js +2 -0
  391. package/dist/cli/chunks/{cursor-installer-OVOJIOHN.js → cursor-installer-GBJ7YXSM.js} +2 -2
  392. package/dist/cli/chunks/{daemon-DMFZMXKA.js → daemon-GKP7CMEK.js} +3 -3
  393. package/dist/cli/chunks/{daemon-XCULEHWY.js → daemon-IAVSO6HK.js} +4 -4
  394. package/dist/cli/chunks/{dag-attention-scheduler-WW2RX4B5.js → dag-attention-scheduler-S225TCI7.js} +2 -2
  395. package/dist/cli/chunks/{detect-QNWIM232.js → detect-IUYH422U.js} +2 -2
  396. package/dist/cli/chunks/{dist-node-6GQIY3CG.js → dist-node-2YRE6A7C.js} +2 -2
  397. package/dist/cli/chunks/{domain-handler-6RJPDELX.js → domain-handler-PL2TZC6H.js} +2 -2
  398. package/dist/cli/chunks/domain-plugins-HCGLXKIT.js +2 -0
  399. package/dist/cli/chunks/{domain-transfer-WK524LBS.js → domain-transfer-KQJRUPXA.js} +2 -2
  400. package/dist/cli/chunks/dream-NFSCSLY7.js +2 -0
  401. package/dist/cli/chunks/{embed-and-insert-pattern-SO6GWJW7.js → embed-and-insert-pattern-ZPAG7235.js} +2 -2
  402. package/dist/cli/chunks/eval-WCK7KNFN.js +17 -0
  403. package/dist/cli/chunks/{experience-capture-middleware-BCCJ35OX.js → experience-capture-middleware-2MSQWSAR.js} +3 -3
  404. package/dist/cli/chunks/{fast-paths-CATDDBEU.js → fast-paths-VYOSIBKF.js} +2 -2
  405. package/dist/cli/chunks/{feature-flags-BUXNAORY.js → feature-flags-UJRHFBRX.js} +2 -2
  406. package/dist/cli/chunks/{feature-flags-KNNWWP5G.js → feature-flags-WCFUKHNQ.js} +2 -2
  407. package/dist/cli/chunks/{file-discovery-S4HF3O7D.js → file-discovery-JDGL4ZWS.js} +2 -2
  408. package/dist/cli/chunks/fleet-ROXVMZ2F.js +43 -0
  409. package/dist/cli/chunks/{gnn-wrapper-G7ABZUG7.js → gnn-wrapper-NIO4ZCO3.js} +2 -2
  410. package/dist/cli/chunks/{heartbeat-handler-UFMELIWT.js → heartbeat-handler-PI42WD3C.js} +4 -4
  411. package/dist/cli/chunks/heartbeat-scheduler-ZATCDJDK.js +2 -0
  412. package/dist/cli/chunks/hnsw-adapter-WXQABRCA.js +2 -0
  413. package/dist/cli/chunks/hnsw-index-TPSWLEA5.js +2 -0
  414. package/dist/cli/chunks/{hnsw-legacy-bridge-YIILSRXI.js → hnsw-legacy-bridge-YLC7SPK2.js} +2 -2
  415. package/dist/cli/chunks/{hnswlib-node-TSVRMXDH.js → hnswlib-node-LG6OS3B7.js} +2 -2
  416. package/dist/cli/chunks/{hooks-OHQPNK74.js → hooks-WVALP5GX.js} +10 -10
  417. package/dist/cli/chunks/{hypergraph-engine-LY7PJDSL.js → hypergraph-engine-GJEMW3EG.js} +2 -2
  418. package/dist/cli/chunks/{hypergraph-handler-YGDYZO6H.js → hypergraph-handler-BLF6LXEV.js} +3 -3
  419. package/dist/cli/chunks/impact-analyzer-HNIU45P5.js +2 -0
  420. package/dist/cli/chunks/{init-handler-MTK65LI3.js → init-handler-K25RWRYY.js} +6 -6
  421. package/dist/cli/chunks/init-wizard-JUIPBMHG.js +2 -0
  422. package/dist/cli/chunks/kernel-5BOZQ754.js +2 -0
  423. package/dist/cli/chunks/{kilocode-installer-3IICU4RS.js → kilocode-installer-BXN6WZ7G.js} +2 -2
  424. package/dist/cli/chunks/{kiro-installer-MXOVQYQA.js → kiro-installer-PM362DLN.js} +12 -12
  425. package/dist/cli/chunks/knowledge-graph-EWDAENWM.js +2 -0
  426. package/dist/cli/chunks/learning-CPERDDRG.js +122 -0
  427. package/dist/cli/chunks/llm-router-GOAV5FPI.js +37 -0
  428. package/dist/cli/chunks/llm-router-service-3YT7JGBS.js +2 -0
  429. package/dist/cli/chunks/{load-F4PVAMXQ.js → load-2BG6SHAK.js} +2 -2
  430. package/dist/cli/chunks/load-test-BP2CPLIV.js +2 -0
  431. package/dist/cli/chunks/{mcp-DUYJUEME.js → mcp-5TTB37DC.js} +2 -2
  432. package/dist/cli/chunks/{memory-XTTYORAS.js → memory-4NHBYT6S.js} +5 -5
  433. package/dist/cli/chunks/memory-backend-4PYQBPRM.js +2 -0
  434. package/dist/cli/chunks/memory-handlers-2B27NITS.js +2 -0
  435. package/dist/cli/chunks/multi-model-executor-KCWSGCDT.js +14 -0
  436. package/dist/cli/chunks/{opencode-installer-33ULBU2F.js → opencode-installer-ATZLLK74.js} +2 -2
  437. package/dist/cli/chunks/{orchestrator-34ZJEKTJ.js → orchestrator-RKB7XJRG.js} +19 -19
  438. package/dist/cli/chunks/pattern-null-store-OYOQOV2O.js +2 -0
  439. package/dist/cli/chunks/{pattern-usage-recorder-GZ2M3F2E.js → pattern-usage-recorder-7VE4XDAI.js} +2 -2
  440. package/dist/cli/chunks/pipeline-LQZSNDD2.js +19 -0
  441. package/dist/cli/chunks/{platform-VKJFJIAW.js → platform-OD5H5U6G.js} +2 -2
  442. package/dist/cli/chunks/{plugin-5C5UBQUQ.js → plugin-EJ6K2MGU.js} +2 -2
  443. package/dist/cli/chunks/{prime-radiant-advanced-wasm-KO2PQI3D.js → prime-radiant-advanced-wasm-OIHTKJMN.js} +2 -2
  444. package/dist/cli/chunks/protocol-executor-3ATJTXWG.js +2 -0
  445. package/dist/cli/chunks/{protocol-handler-ZF74NIKA.js → protocol-handler-NRBROAU7.js} +2 -2
  446. package/dist/cli/chunks/{prove-MO5TQQU4.js → prove-EJOGEGD3.js} +2 -2
  447. package/dist/cli/chunks/qe-reasoning-bank-LLMYZT4X.js +2 -0
  448. package/dist/cli/chunks/{quality-EYIN6AER.js → quality-E55UC73D.js} +2 -2
  449. package/dist/cli/chunks/{quality-gate-V6OQM57O.js → quality-gate-OIQATNT3.js} +3 -3
  450. package/dist/cli/chunks/queen-coordinator-RN7L6KG5.js +2 -0
  451. package/dist/cli/chunks/{real-embeddings-AR7TZX7U.js → real-embeddings-FPFFNOSZ.js} +2 -2
  452. package/dist/cli/chunks/ref-validation-OPO6J7OL.js +2 -0
  453. package/dist/cli/chunks/{roocode-installer-46E626VZ.js → roocode-installer-ODY5KRWU.js} +2 -2
  454. package/dist/cli/chunks/router-MDHITQ2V.js +2 -0
  455. package/dist/cli/chunks/routing-feedback-5XLNJ3Y3.js +2 -0
  456. package/dist/cli/chunks/{routing-handler-ZNRVW6QW.js → routing-handler-KQM6VWLC.js} +4 -4
  457. package/dist/cli/chunks/{ruvector-commands-4L2CQMWS.js → ruvector-commands-U2GVV6PF.js} +2 -2
  458. package/dist/cli/chunks/rvf-dual-writer-JBW4O3II.js +2 -0
  459. package/dist/cli/chunks/rvf-migration-adapter-BPPQL4XJ.js +2 -0
  460. package/dist/cli/chunks/{rvf-migration-coordinator-H4RVGBIA.js → rvf-migration-coordinator-V2GHCJKN.js} +2 -2
  461. package/dist/cli/chunks/rvf-native-adapter-S4562CG5.js +2 -0
  462. package/dist/cli/chunks/rvf-store-integrity-KMIHD3LP.js +2 -0
  463. package/dist/cli/chunks/safe-db-FIRHSXVF.js +2 -0
  464. package/dist/cli/chunks/schedule-RVXFB4HK.js +2 -0
  465. package/dist/cli/chunks/scheduler-IKKAMAOO.js +2 -0
  466. package/dist/cli/chunks/security-P5NM353C.js +13 -0
  467. package/dist/cli/chunks/{shared-rvf-adapter-M6NNIZ5W.js → shared-rvf-adapter-LVIUOO4S.js} +2 -2
  468. package/dist/cli/chunks/{shared-rvf-dual-writer-LHMFCYVE.js → shared-rvf-dual-writer-2CSG7C4W.js} +2 -2
  469. package/dist/cli/chunks/sqlite-persistence-SQ3HCUQ7.js +2 -0
  470. package/dist/cli/chunks/{status-handler-GMIOXQIE.js → status-handler-6TU6O37R.js} +2 -2
  471. package/dist/cli/chunks/{structural-health-YZXHVHM6.js → structural-health-KBIJSTXJ.js} +2 -2
  472. package/dist/cli/chunks/{sync-GMPCPV5L.js → sync-LNHI5SB7.js} +2 -2
  473. package/dist/cli/chunks/{sync-N56UQGCS.js → sync-UHOX6RJW.js} +2 -2
  474. package/dist/cli/chunks/task-handler-AVDHMLGI.js +49 -0
  475. package/dist/cli/chunks/task-handlers-KYK4VTRA.js +9 -0
  476. package/dist/cli/chunks/{test-GQNCKRSP.js → test-DHAAI3DU.js} +11 -11
  477. package/dist/cli/chunks/test-scheduling-XDBZ3QC2.js +15 -0
  478. package/dist/cli/chunks/{token-bootstrap-76SRNXGG.js → token-bootstrap-GUTTLPZX.js} +2 -2
  479. package/dist/cli/chunks/{token-usage-O7CZDP5Q.js → token-usage-Q2YG5YQN.js} +2 -2
  480. package/dist/cli/chunks/{transformers-LTU4LSSC.js → transformers-F5UQTQCY.js} +2 -2
  481. package/dist/cli/chunks/{tree-sitter-wasm-parser-NQSQCMBM.js → tree-sitter-wasm-parser-DEGOHS6F.js} +2 -2
  482. package/dist/cli/chunks/types-JQ7EQO5Q.js +2 -0
  483. package/dist/cli/chunks/unified-memory-CXHLHB5I.js +2 -0
  484. package/dist/cli/chunks/unified-memory-hnsw-I7WAE54M.js +2 -0
  485. package/dist/cli/chunks/unified-persistence-6CPF65WI.js +2 -0
  486. package/dist/cli/chunks/{upgrade-OQWRBZ3R.js → upgrade-TJRVGHGD.js} +2 -2
  487. package/dist/cli/chunks/{validate-TH5SRP3E.js → validate-BWPCVHBN.js} +2 -2
  488. package/dist/cli/chunks/{validate-swarm-UITL2JUS.js → validate-swarm-QVVKCQLP.js} +2 -2
  489. package/dist/cli/chunks/{vibium-O6PRAG4J.js → vibium-ZFATIWHO.js} +2 -2
  490. package/dist/cli/chunks/visual-security-GNPHME5H.js +2 -0
  491. package/dist/cli/chunks/{web-tree-sitter-XBFBY4OF.js → web-tree-sitter-KPLY7ONR.js} +2 -2
  492. package/dist/cli/chunks/{windsurf-installer-DVT5NRNY.js → windsurf-installer-H7XM7ISA.js} +2 -2
  493. package/dist/cli/chunks/{witness-chain-VRSH2F36.js → witness-chain-RRN6NDCH.js} +2 -2
  494. package/dist/cli/chunks/witness-chain-VT4UHHBR.js +2 -0
  495. package/dist/cli/chunks/{witness-key-manager-GFHRDKQ4.js → witness-key-manager-DFRL42GE.js} +2 -2
  496. package/dist/cli/chunks/workflow-2ZQO6WYI.js +51 -0
  497. package/dist/cli/chunks/workflow-orchestrator-DB3HIECD.js +2 -0
  498. package/dist/cli/chunks/{wrappers-5LLLT7GM.js → wrappers-SUS6XEJD.js} +2 -2
  499. package/dist/cli/commands/ci.js +54 -28
  500. package/dist/cli/commands/code.js +6 -0
  501. package/dist/cli/commands/eval.js +3 -2
  502. package/dist/cli/commands/fleet.js +35 -16
  503. package/dist/cli/commands/learning-snapshot.d.ts +38 -0
  504. package/dist/cli/commands/learning-snapshot.js +171 -0
  505. package/dist/cli/commands/learning.js +16 -64
  506. package/dist/cli/commands/llm-router.js +13 -12
  507. package/dist/cli/commands/pipeline.js +9 -0
  508. package/dist/cli/commands/security.js +167 -100
  509. package/dist/cli/commands/test.js +1 -0
  510. package/dist/cli/commands/workflow.js +9 -1
  511. package/dist/cli/handlers/task-handler.js +19 -9
  512. package/dist/cli/helpers/domain-plugins.d.ts +5 -0
  513. package/dist/cli/helpers/domain-plugins.js +11 -0
  514. package/dist/cli/index.js +17 -8
  515. package/dist/cli/utils/ci-config.d.ts +3 -0
  516. package/dist/cli/utils/ci-output.d.ts +17 -0
  517. package/dist/cli/utils/ci-output.js +34 -2
  518. package/dist/context/sources/git-source.d.ts +2 -0
  519. package/dist/context/sources/git-source.js +9 -2
  520. package/dist/coordination/cancelled-task-settlement.d.ts +11 -0
  521. package/dist/coordination/cancelled-task-settlement.js +15 -0
  522. package/dist/coordination/consensus/providers/claude-provider.d.ts +2 -2
  523. package/dist/coordination/consensus/providers/claude-provider.js +18 -25
  524. package/dist/coordination/consensus/providers/gemini-provider.d.ts +14 -4
  525. package/dist/coordination/consensus/providers/gemini-provider.js +39 -36
  526. package/dist/coordination/consensus/providers/ollama-provider.d.ts +8 -7
  527. package/dist/coordination/consensus/providers/ollama-provider.js +16 -18
  528. package/dist/coordination/consensus/providers/openai-provider.d.ts +14 -4
  529. package/dist/coordination/consensus/providers/openai-provider.js +36 -34
  530. package/dist/coordination/consensus/providers/openrouter-provider.d.ts +5 -5
  531. package/dist/coordination/consensus/providers/openrouter-provider.js +64 -37
  532. package/dist/coordination/handlers/handler-types.d.ts +3 -0
  533. package/dist/coordination/handlers/quality-handlers.js +10 -0
  534. package/dist/coordination/handlers/security-handlers.js +168 -72
  535. package/dist/coordination/handlers/test-execution-handlers.js +39 -43
  536. package/dist/coordination/interfaces.d.ts +2 -2
  537. package/dist/coordination/protocol-executor.js +68 -9
  538. package/dist/coordination/protocols/security-audit.d.ts +3 -0
  539. package/dist/coordination/protocols/security-audit.js +61 -39
  540. package/dist/coordination/queen-coordinator.js +10 -4
  541. package/dist/coordination/queen-event-handlers.js +17 -0
  542. package/dist/coordination/queen-task-management.js +25 -0
  543. package/dist/coordination/queen-types.d.ts +2 -0
  544. package/dist/coordination/result-saver.js +36 -5
  545. package/dist/coordination/task-executor.d.ts +3 -1
  546. package/dist/coordination/task-executor.js +8 -8
  547. package/dist/coordination/workflow-composition.d.ts +19 -0
  548. package/dist/coordination/workflow-composition.js +114 -0
  549. package/dist/coordination/workflow-orchestrator.d.ts +3 -2
  550. package/dist/coordination/workflow-orchestrator.js +219 -85
  551. package/dist/coordination/workflow-types.d.ts +30 -1
  552. package/dist/coordination/yaml-pipeline-loader.js +9 -5
  553. package/dist/domains/chaos-resilience/services/chaos-engineer.js +2 -7
  554. package/dist/domains/code-intelligence/services/knowledge-graph.js +2 -7
  555. package/dist/domains/code-intelligence/services/metric-collector/test-counter.js +9 -40
  556. package/dist/domains/constants.d.ts +1 -6
  557. package/dist/domains/constants.js +2 -6
  558. package/dist/domains/contract-testing/services/contract-validator.js +2 -7
  559. package/dist/domains/coverage-analysis/services/coverage-analyzer.js +2 -12
  560. package/dist/domains/coverage-analysis/services/gap-detector.js +2 -7
  561. package/dist/domains/defect-intelligence/services/defect-predictor.js +2 -12
  562. package/dist/domains/defect-intelligence/services/root-cause-analyzer.js +2 -7
  563. package/dist/domains/learning-optimization/services/learning-coordinator.js +2 -7
  564. package/dist/domains/quality-assessment/services/deployment-advisor.js +2 -7
  565. package/dist/domains/quality-assessment/services/quality-analyzer.js +2 -7
  566. package/dist/domains/requirements-validation/services/requirements-validator.js +2 -7
  567. package/dist/domains/security-compliance/interfaces.d.ts +5 -0
  568. package/dist/domains/security-compliance/interfaces.js +0 -6
  569. package/dist/domains/security-compliance/scan-discovery.d.ts +12 -0
  570. package/dist/domains/security-compliance/scan-discovery.js +105 -0
  571. package/dist/domains/security-compliance/scan-evidence.d.ts +57 -0
  572. package/dist/domains/security-compliance/scan-evidence.js +2 -0
  573. package/dist/domains/security-compliance/services/scanners/sast-scanner.d.ts +3 -2
  574. package/dist/domains/security-compliance/services/scanners/sast-scanner.js +112 -72
  575. package/dist/domains/security-compliance/services/semgrep-integration.d.ts +9 -2
  576. package/dist/domains/security-compliance/services/semgrep-integration.js +68 -20
  577. package/dist/domains/test-execution/services/flaky-detector.js +46 -5
  578. package/dist/domains/test-execution/services/retry-handler.js +38 -20
  579. package/dist/domains/test-execution/services/test-executor.js +84 -29
  580. package/dist/domains/test-generation/services/test-generator.js +2 -7
  581. package/dist/domains/visual-accessibility/services/visual-tester.js +2 -7
  582. package/dist/init/init-wizard-hooks.js +2 -2
  583. package/dist/init/init-wizard-steps.js +1 -1
  584. package/dist/init/kiro-installer.js +9 -8
  585. package/dist/init/opencode-installer.js +1 -1
  586. package/dist/init/phases/07-hooks.js +4 -2
  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/integrations/agentic-flow/model-router/types.js +6 -8
  591. package/dist/integrations/agentic-flow/reasoning-bank/index.js +3 -20
  592. package/dist/integrations/coherence/engines/cohomology-adapter.js +100 -30
  593. package/dist/integrations/ruvector/brain-exporter.js +9 -15
  594. package/dist/integrations/ruvector/brain-rvf-exporter.js +17 -30
  595. package/dist/integrations/ruvector/brain-shared.d.ts +5 -1
  596. package/dist/integrations/ruvector/brain-shared.js +70 -4
  597. package/dist/integrations/ruvector/rvf-dual-writer.js +36 -15
  598. package/dist/integrations/ruvector/rvf-store-integrity.d.ts +14 -9
  599. package/dist/integrations/ruvector/rvf-store-integrity.js +39 -9
  600. package/dist/integrations/ruvector/shared-rvf-adapter.js +20 -23
  601. package/dist/kernel/memory-factory.js +14 -4
  602. package/dist/kernel/project-root.js +10 -8
  603. package/dist/kernel/unified-memory.js +1 -1
  604. package/dist/learning/local-judge-client.d.ts +6 -5
  605. package/dist/learning/local-judge-client.js +7 -6
  606. package/dist/learning/pattern-store.js +29 -11
  607. package/dist/mcp/bundle.js +548 -527
  608. package/dist/mcp/handlers/domain-handler-configs.d.ts +22 -1
  609. package/dist/mcp/handlers/domain-handler-configs.js +50 -19
  610. package/dist/mcp/handlers/domain-handlers.d.ts +7 -5
  611. package/dist/mcp/handlers/domain-handlers.js +7 -5
  612. package/dist/mcp/handlers/index.d.ts +1 -1
  613. package/dist/mcp/handlers/index.js +1 -1
  614. package/dist/mcp/handlers/pipeline-handlers.d.ts +31 -1
  615. package/dist/mcp/handlers/pipeline-handlers.js +63 -0
  616. package/dist/mcp/handlers/task-handlers.d.ts +1 -0
  617. package/dist/mcp/handlers/task-handlers.js +12 -4
  618. package/dist/mcp/protocol-server.d.ts +2 -0
  619. package/dist/mcp/protocol-server.js +112 -53
  620. package/dist/mcp/security/sampling-server.js +2 -1
  621. package/dist/mcp/tool-annotations.js +1 -1
  622. package/dist/mcp/tools/test-execution/schedule.js +7 -0
  623. package/dist/mcp/types.d.ts +10 -1
  624. package/dist/optimization/session-cache.d.ts +5 -0
  625. package/dist/optimization/session-cache.js +23 -0
  626. package/dist/routing/advisor/multi-model-executor.d.ts +4 -1
  627. package/dist/routing/advisor/multi-model-executor.js +8 -1
  628. package/dist/routing/free-tier/ladder.d.ts +2 -1
  629. package/dist/routing/free-tier/ladder.js +3 -2
  630. package/dist/routing/security/cyber-pin.d.ts +35 -11
  631. package/dist/routing/security/cyber-pin.js +76 -14
  632. package/dist/routing/value-score.js +1 -1
  633. package/dist/shared/git/index.d.ts +1 -0
  634. package/dist/shared/git/index.js +1 -0
  635. package/dist/shared/git/ref-validation.d.ts +20 -0
  636. package/dist/shared/git/ref-validation.js +43 -0
  637. package/dist/shared/llm/anthropic-params.d.ts +40 -0
  638. package/dist/shared/llm/anthropic-params.js +51 -0
  639. package/dist/shared/llm/cost-tracker.d.ts +15 -2
  640. package/dist/shared/llm/cost-tracker.js +62 -10
  641. package/dist/shared/llm/index.d.ts +2 -2
  642. package/dist/shared/llm/index.js +2 -2
  643. package/dist/shared/llm/interfaces.d.ts +1 -1
  644. package/dist/shared/llm/metrics/cost-metrics.js +5 -4
  645. package/dist/shared/llm/model-mapping.js +131 -0
  646. package/dist/shared/llm/model-registry.d.ts +37 -11
  647. package/dist/shared/llm/model-registry.js +393 -18
  648. package/dist/shared/llm/openai-params.d.ts +35 -0
  649. package/dist/shared/llm/openai-params.js +54 -0
  650. package/dist/shared/llm/provider-manager.js +4 -3
  651. package/dist/shared/llm/providers/azure-openai.d.ts +11 -0
  652. package/dist/shared/llm/providers/azure-openai.js +26 -15
  653. package/dist/shared/llm/providers/bedrock.js +11 -19
  654. package/dist/shared/llm/providers/claude.js +6 -29
  655. package/dist/shared/llm/providers/codex.js +4 -3
  656. package/dist/shared/llm/providers/gemini.d.ts +3 -2
  657. package/dist/shared/llm/providers/gemini.js +19 -10
  658. package/dist/shared/llm/providers/ollama.d.ts +2 -0
  659. package/dist/shared/llm/providers/ollama.js +30 -20
  660. package/dist/shared/llm/providers/openai.js +10 -17
  661. package/dist/shared/llm/providers/openrouter.d.ts +1 -1
  662. package/dist/shared/llm/providers/openrouter.js +57 -21
  663. package/dist/shared/llm/router/agent-router-config.js +33 -32
  664. package/dist/shared/llm/router/hybrid-router.d.ts +4 -0
  665. package/dist/shared/llm/router/hybrid-router.js +95 -35
  666. package/dist/shared/llm/router/routing-rules.js +9 -8
  667. package/dist/shared/llm/router/types.d.ts +9 -2
  668. package/dist/shared/llm/router/types.js +81 -13
  669. package/dist/shared/llm/translation/message-formatter.js +4 -23
  670. package/dist/shared/test-runner-verdict.d.ts +29 -0
  671. package/dist/shared/test-runner-verdict.js +43 -0
  672. package/dist/shared/vitest-json-report.d.ts +45 -0
  673. package/dist/shared/vitest-json-report.js +80 -0
  674. package/dist/test-scheduling/executors/vitest-executor.d.ts +7 -2
  675. package/dist/test-scheduling/executors/vitest-executor.js +174 -52
  676. package/dist/test-scheduling/git-aware/test-selector.js +3 -0
  677. package/dist/test-scheduling/phase-scheduler.d.ts +1 -0
  678. package/dist/test-scheduling/phase-scheduler.js +23 -1
  679. package/dist/validation/frontier-judge.d.ts +7 -4
  680. package/dist/validation/frontier-judge.js +11 -6
  681. package/package.json +6 -6
  682. package/dist/cli/chunks/adapter-OJF6LAJV.js +0 -2
  683. package/dist/cli/chunks/aqe-learning-engine-FGT474XB.js +0 -2
  684. package/dist/cli/chunks/base-HH765JFV.js +0 -2
  685. package/dist/cli/chunks/brain-handler-5FSA46R5.js +0 -90
  686. package/dist/cli/chunks/browser-workflow-NPM4FUPI.js +0 -2
  687. package/dist/cli/chunks/chunk-2LKAMMMI.js +0 -2
  688. package/dist/cli/chunks/chunk-4AKGBUYD.js +0 -4
  689. package/dist/cli/chunks/chunk-4MH22236.js +0 -2
  690. package/dist/cli/chunks/chunk-4PH7O5ZH.js +0 -2
  691. package/dist/cli/chunks/chunk-4UCMTYFQ.js +0 -65
  692. package/dist/cli/chunks/chunk-DRO5NJZA.js +0 -11
  693. package/dist/cli/chunks/chunk-FPHPP5TQ.js +0 -2
  694. package/dist/cli/chunks/chunk-FREF6Y4L.js +0 -14
  695. package/dist/cli/chunks/chunk-G6AV2HGY.js +0 -54
  696. package/dist/cli/chunks/chunk-GJAWEUIN.js +0 -16
  697. package/dist/cli/chunks/chunk-IUNMW454.js +0 -2
  698. package/dist/cli/chunks/chunk-JDXLCNKV.js +0 -2
  699. package/dist/cli/chunks/chunk-OC2CKU7I.js +0 -2
  700. package/dist/cli/chunks/chunk-OX6T26CD.js +0 -180
  701. package/dist/cli/chunks/chunk-PHHXHG2W.js +0 -2
  702. package/dist/cli/chunks/chunk-SEHCX4NH.js +0 -2
  703. package/dist/cli/chunks/chunk-TENYL5TI.js +0 -14
  704. package/dist/cli/chunks/chunk-U2AY57XZ.js +0 -5
  705. package/dist/cli/chunks/chunk-UYTWDS2R.js +0 -2
  706. package/dist/cli/chunks/chunk-VSYBMNIR.js +0 -2
  707. package/dist/cli/chunks/chunk-WBMRADQP.js +0 -81
  708. package/dist/cli/chunks/chunk-ZWRQ5VAU.js +0 -2
  709. package/dist/cli/chunks/chunk-ZYLSOBOR.js +0 -2
  710. package/dist/cli/chunks/ci-NTRH7PAW.js +0 -81
  711. package/dist/cli/chunks/ci-output-F57RSD35.js +0 -2
  712. package/dist/cli/chunks/client-GPZEC54E.js +0 -2
  713. package/dist/cli/chunks/complexity-analyzer-3FNFLACD.js +0 -2
  714. package/dist/cli/chunks/core-handlers-YMGHYIBR.js +0 -2
  715. package/dist/cli/chunks/cost-tracker-LTZAQBX7.js +0 -2
  716. package/dist/cli/chunks/cross-domain-router-ECBNTGYJ.js +0 -2
  717. package/dist/cli/chunks/dream-EHGKCFWH.js +0 -2
  718. package/dist/cli/chunks/eval-GL544IPO.js +0 -17
  719. package/dist/cli/chunks/fleet-DQVQQONW.js +0 -43
  720. package/dist/cli/chunks/heartbeat-scheduler-UFEL2CBW.js +0 -2
  721. package/dist/cli/chunks/hnsw-adapter-BLSD45CX.js +0 -2
  722. package/dist/cli/chunks/hnsw-index-A3RZODEN.js +0 -2
  723. package/dist/cli/chunks/impact-analyzer-OXHD3FOH.js +0 -2
  724. package/dist/cli/chunks/init-wizard-PKZL7QBU.js +0 -2
  725. package/dist/cli/chunks/kernel-XWPM72UJ.js +0 -2
  726. package/dist/cli/chunks/knowledge-graph-FRKR5XWI.js +0 -2
  727. package/dist/cli/chunks/learning-EV5LSOOM.js +0 -122
  728. package/dist/cli/chunks/llm-router-7LYDJUOT.js +0 -37
  729. package/dist/cli/chunks/llm-router-service-R7A5HHDM.js +0 -2
  730. package/dist/cli/chunks/load-test-5IKDWSYL.js +0 -2
  731. package/dist/cli/chunks/memory-backend-7VW5QCMO.js +0 -2
  732. package/dist/cli/chunks/memory-handlers-VZH3R2TQ.js +0 -2
  733. package/dist/cli/chunks/multi-model-executor-R6XCTMCF.js +0 -14
  734. package/dist/cli/chunks/pattern-null-store-BU6LCB2W.js +0 -2
  735. package/dist/cli/chunks/pipeline-SR5OTY45.js +0 -19
  736. package/dist/cli/chunks/protocol-executor-BSP5LWJN.js +0 -2
  737. package/dist/cli/chunks/qe-reasoning-bank-J2RC7P25.js +0 -2
  738. package/dist/cli/chunks/queen-coordinator-XI5AJV2V.js +0 -2
  739. package/dist/cli/chunks/router-VXQYYA3D.js +0 -2
  740. package/dist/cli/chunks/routing-feedback-HZQTASFF.js +0 -2
  741. package/dist/cli/chunks/rvf-dual-writer-BDTLLJER.js +0 -2
  742. package/dist/cli/chunks/rvf-migration-adapter-IB343MDN.js +0 -2
  743. package/dist/cli/chunks/rvf-native-adapter-Y7SN7LHU.js +0 -2
  744. package/dist/cli/chunks/rvf-store-integrity-OJGWWPLL.js +0 -2
  745. package/dist/cli/chunks/safe-db-2VTKKBJU.js +0 -2
  746. package/dist/cli/chunks/schedule-QJ4CFGJY.js +0 -2
  747. package/dist/cli/chunks/scheduler-2NHDQPC3.js +0 -2
  748. package/dist/cli/chunks/security-JF3BVNRO.js +0 -14
  749. package/dist/cli/chunks/sqlite-persistence-NVVAPZN3.js +0 -2
  750. package/dist/cli/chunks/task-handler-VTNRGAXP.js +0 -49
  751. package/dist/cli/chunks/task-handlers-FYSDH55N.js +0 -9
  752. package/dist/cli/chunks/test-scheduling-GPRXSIRP.js +0 -15
  753. package/dist/cli/chunks/types-OP6IWE6N.js +0 -2
  754. package/dist/cli/chunks/unified-memory-DSTIEDSH.js +0 -2
  755. package/dist/cli/chunks/unified-memory-hnsw-KBV3P4OS.js +0 -2
  756. package/dist/cli/chunks/unified-persistence-XKCOUBKY.js +0 -2
  757. package/dist/cli/chunks/visual-security-TTWSPZTZ.js +0 -2
  758. package/dist/cli/chunks/witness-chain-2KY73HPN.js +0 -2
  759. package/dist/cli/chunks/workflow-HAZ6YKOG.js +0 -51
  760. package/dist/cli/chunks/workflow-orchestrator-UK56AVOT.js +0 -2
@@ -1,180 +0,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.2");process.exit(0)}
2
- import{b as pe}from"./chunk-ZFGND4QK.js";import{a as dt}from"./chunk-IVGVOGIZ.js";import{a as mt,b as gt}from"./chunk-RHJVDCLV.js";import{j as I}from"./chunk-5EHLGOWW.js";import{a as lt,b as ut}from"./chunk-VOYJJ3KA.js";import{a as nt}from"./chunk-XPLSLHRB.js";import{a as at,b as ot,c as ct}from"./chunk-PMUBG2RU.js";import{b as st}from"./chunk-EAJK25IS.js";import{a as ge}from"./chunk-C7AXRI7E.js";import{k as w,o as me}from"./chunk-W2FLULF4.js";import{a as an}from"./chunk-PHHXHG2W.js";import{c as it}from"./chunk-ICKLBATY.js";import{b as M,d as rt}from"./chunk-QXTW7XCS.js";import{a as v,b,c as y}from"./chunk-CIESXO73.js";import{a as h,b as tt,c as k}from"./chunk-D4RCV4LY.js";import{i as T}from"./chunk-NG2UVPTW.js";import{R as on,S as cn}from"./chunk-GHQ5PUOV.js";import{c as z,e as sn,g as et}from"./chunk-6VKJAMZY.js";function ft(a){let e=[],t=0;if(a.fileCount!==void 0&&(a.fileCount>20?(t+=25,e.push({name:"very-high-file-count",weight:25,description:`Task involves ${a.fileCount} files (>20)`})):a.fileCount>10?(t+=20,e.push({name:"high-file-count",weight:20,description:`Task involves ${a.fileCount} files (>10)`})):a.fileCount>5&&(t+=10,e.push({name:"moderate-file-count",weight:10,description:`Task involves ${a.fileCount} files (>5)`}))),a.domain&&(dn.includes(a.domain)?(t+=30,e.push({name:"complex-domain",weight:30,description:`Domain '${a.domain}' requires complex reasoning`})):mn.includes(a.domain)&&(t+=15,e.push({name:"moderate-domain",weight:15,description:`Domain '${a.domain}' has moderate complexity`}))),a.crossComponent&&(t+=25,e.push({name:"cross-component",weight:25,description:"Task spans multiple components/modules"})),a.priority==="critical"?(t+=25,e.push({name:"critical-priority",weight:25,description:"Critical priority requires careful attention"})):a.priority==="high"&&(t+=15,e.push({name:"high-priority",weight:15,description:"High priority task"})),a.requiredCapabilities){let r=a.requiredCapabilities.filter(s=>gn.includes(s)).length;if(r>0){let s=Math.min(20,r*10);t+=s,e.push({name:"complex-capabilities",weight:s,description:`Requires ${r} complex capabilit${r===1?"y":"ies"}`})}}a.requiresExternalApis&&(t+=10,e.push({name:"external-apis",weight:10,description:"Requires external API integration"})),a.involvesDatabaseOps&&(t+=10,e.push({name:"database-ops",weight:10,description:"Involves database operations"})),a.timeSensitive&&(t+=5,e.push({name:"time-sensitive",weight:5,description:"Time-sensitive task"})),a.estimatedLinesAffected!==void 0&&(a.estimatedLinesAffected>500?(t+=15,e.push({name:"large-change",weight:15,description:`Estimated ${a.estimatedLinesAffected} lines affected (>500)`})):a.estimatedLinesAffected>200&&(t+=10,e.push({name:"medium-change",weight:10,description:`Estimated ${a.estimatedLinesAffected} lines affected (>200)`}))),(a.type==="security-scan"||a.type==="vulnerability-assessment")&&(t+=20,e.push({name:"security-task",weight:20,description:"Security-related task requires careful analysis"}));let n=t>=S.critical?"critical":t>=S.complex?"complex":t>=S.moderate?"moderate":"simple",i=pn[n];return{complexity:n,recommendedModel:i,factors:e,score:t,timestamp:new Date}}var dn,mn,gn,S,pn,yt=z(()=>{"use strict";dn=["security-compliance","chaos-resilience","defect-intelligence"],mn=["code-intelligence","contract-testing","quality-assessment","learning-optimization"],gn=["sast","dast","vulnerability","owasp","chaos-testing","resilience","fault-injection","mutation-testing"],S={critical:70,complex:45,moderate:20},pn={critical:"opus",complex:"sonnet",moderate:"sonnet",simple:"haiku"}});var R,Te=z(()=>{"use strict";R=class{weightsInputHidden;weightsHiddenOutput;biasHidden;biasOutput;learningRate;constructor(e=.01){this.learningRate=e,this.weightsInputHidden=this.xavierInit(4,32),this.weightsHiddenOutput=this.xavierInit(32,3),this.biasHidden=new Float32Array(32),this.biasOutput=new Float32Array(3)}xavierInit(e,t){let n=Math.sqrt(2/(e+t)),i=new Float32Array(e*t);for(let r=0;r<i.length;r++){let s=Math.random(),o=Math.random(),l=Math.sqrt(-2*Math.log(Math.max(s,1e-10)))*Math.cos(2*Math.PI*o);i[r]=l*n}return i}forward(e){if(e.length!==4)throw new Error(`Expected 4 features, got ${e.length}`);let t=new Float32Array(32);for(let i=0;i<32;i++){let r=this.biasHidden[i];for(let s=0;s<4;s++)r+=e[s]*this.weightsInputHidden[s*32+i];t[i]=Math.max(0,r)}let n=new Float32Array(3);for(let i=0;i<3;i++){let r=this.biasOutput[i];for(let s=0;s<32;s++)r+=t[s]*this.weightsHiddenOutput[s*3+i];n[i]=r}return this.softmax(n)}softmax(e){let t=Math.max(...e),n=new Float32Array(e.length),i=0;for(let s=0;s<e.length;s++)n[s]=Math.exp(e[s]-t),i+=n[s];let r=[];for(let s=0;s<e.length;s++)r.push(n[s]/i);return r}updateWeights(e,t,n){let i=new Float32Array(32);for(let c=0;c<32;c++){let u=this.biasHidden[c];for(let d=0;d<4;d++)u+=e[d]*this.weightsInputHidden[d*32+c];i[c]=Math.max(0,u)}let r=new Float32Array(3);for(let c=0;c<3;c++){let u=this.biasOutput[c];for(let d=0;d<32;d++)u+=i[d]*this.weightsHiddenOutput[d*3+c];r[c]=u}let s=this.softmax(r),o=new Float32Array(3);for(let c=0;c<3;c++)o[c]=(c===t?1:0)-s[c],o[c]*=n*this.learningRate;for(let c=0;c<32;c++)for(let u=0;u<3;u++)this.weightsHiddenOutput[c*3+u]+=i[c]*o[u];for(let c=0;c<3;c++)this.biasOutput[c]+=o[c];let l=new Float32Array(32);for(let c=0;c<32;c++){if(i[c]<=0)continue;let u=0;for(let d=0;d<3;d++)u+=o[d]*this.weightsHiddenOutput[c*3+d];l[c]=u}for(let c=0;c<4;c++)for(let u=0;u<32;u++)this.weightsInputHidden[c*32+u]+=e[c]*l[u];for(let c=0;c<32;c++)this.biasHidden[c]+=l[c]}serialize(){return{weightsInputHidden:Array.from(this.weightsInputHidden),weightsHiddenOutput:Array.from(this.weightsHiddenOutput),biasHidden:Array.from(this.biasHidden),biasOutput:Array.from(this.biasOutput)}}deserialize(e){e.weightsInputHidden.length===128&&(this.weightsInputHidden=new Float32Array(e.weightsInputHidden)),e.weightsHiddenOutput.length===96&&(this.weightsHiddenOutput=new Float32Array(e.weightsHiddenOutput)),e.biasHidden.length===32&&(this.biasHidden=new Float32Array(e.biasHidden)),e.biasOutput.length===3&&(this.biasOutput=new Float32Array(e.biasOutput))}}});var vt={};sn(vt,{NeuralTinyDancerRouter:()=>G,SimpleNeuralRouter:()=>R,createNeuralTinyDancerRouter:()=>Sn});import{performance as Tt}from"perf_hooks";function Sn(a){return new G(a)}var hn,fn,yn,Tn,vn,Cn,bn,kn,G,Ct=z(()=>{"use strict";ve();Te();Te();hn=1e3,fn=.1,yn=.2,Tn=50,vn=.01,Cn=["haiku","sonnet","opus"],bn={haiku:0,sonnet:1,opus:2},kn={"test-generation":.1,"test-execution":.15,"coverage-analysis":.2,"quality-assessment":.3,"requirements-validation":.35,"code-intelligence":.4,"contract-testing":.45,"visual-accessibility":.5,"learning-optimization":.55,"defect-intelligence":.7,"chaos-resilience":.8,"security-compliance":.9},G=class{ruleRouter;neuralNet;circuitBreakerThreshold;shadowModeDecisionLimit;shadowModeMaxDisagreement;shadowModeActive;shadowDecisions=[];shadowDisagreements=0;circuitBreakerTripped=!1;recentOutcomes=[];totalNeuralDecisions=0;totalWeightUpdates=0;neuralPrimary=!1;calibrationScores=[];maxCalibrationScores=500;domainSuccessRates=new Map;config;nativeRouterAvailable=!1;constructor(e={}){this.config=e,this.ruleRouter=new F(e),this.neuralNet=new R(e.learningRate??vn),this.circuitBreakerThreshold=e.circuitBreakerThreshold??yn,this.shadowModeDecisionLimit=e.shadowModeDecisions??hn,this.shadowModeMaxDisagreement=e.shadowModeMaxDisagreement??fn,e.forceShadowMode!==void 0?(this.shadowModeActive=e.forceShadowMode,this.neuralPrimary=!e.forceShadowMode):(this.shadowModeActive=!0,this.neuralPrimary=!1),this.tryLoadNativeRouter()}tryLoadNativeRouter(){this.nativeRouterAvailable=!1}async route(e){let t=Tt.now(),n=await this.ruleRouter.route(e);if(this.circuitBreakerTripped)return n;let i=this.extractFeatures(e,n.classification),r;try{r=this.neuralNet.forward(i)}catch{return this.tripCircuitBreaker(),n}let s=this.argmax(r),o=Cn[s],l=r[s];if(this.totalNeuralDecisions++,this.shadowModeActive){let m=n.model===o;return m||this.shadowDisagreements++,this.shadowDecisions.push({taskDescription:e.description.slice(0,100),ruleDecision:n.model,neuralDecision:o,agreed:m,neuralConfidence:l,timestamp:new Date}),this.evaluateShadowModeExit(),n}let c=Tt.now()-t,u=this.computeEmpiricalConfidenceBounds(r);return l<.3||u.calibrationScore>.8?n:{model:o,confidence:l,uncertainty:1-l,triggerMultiModel:n.triggerMultiModel,triggerHumanReview:n.triggerHumanReview,complexity:n.complexity,classification:n.classification,latencyMs:c,reasoning:this.buildNeuralReasoning(o,l,r,n,u)}}extractFeatures(e,t){let n=Math.min(1,t.score/100),i=e.description.length,r=e.context?.code?.length??0,s=(i+r)/4,o=Math.min(1,s/1e4),l=e.domain??"",c=kn[l]??.25,u=this.domainSuccessRates.get(l),d=u?u.success/Math.max(1,u.total):.7;return[n,o,c,d]}recordNeuralOutcome(e,t,n,i=n?1:0,r=t.model,s=0){this.ruleRouter.recordOutcome(e,t,n,i,r,s);let o=e.domain??"unknown",l=this.domainSuccessRates.get(o)??{success:0,total:0};l.total++,n&&l.success++,this.domainSuccessRates.set(o,l),this.recentOutcomes.push(n),this.recentOutcomes.length>Tn&&this.recentOutcomes.shift(),this.checkCircuitBreaker();let c=this.extractFeatures(e,t.classification),u=bn[r],d=(i-.5)*2;try{this.neuralNet.updateWeights(c,u,d),this.totalWeightUpdates++}catch{}let m=this.neuralNet.forward(c),p=this.argmax(m),f=1-m[u];this.calibrationScores.push(f),this.calibrationScores.length>this.maxCalibrationScores&&this.calibrationScores.shift()}computeEmpiricalConfidenceBounds(e){let n=Math.max(...e),i=1-n;if(this.calibrationScores.length<10)return{lower:0,upper:1,coverageLevel:.9,calibrationScore:i};let r=[...this.calibrationScores].sort((l,c)=>l-c),s=Math.ceil(.9*r.length)-1,o=r[Math.min(s,r.length-1)];return{lower:Math.max(0,n-o),upper:Math.min(1,n+o),coverageLevel:.9,calibrationScore:i}}computeConformalBounds(e){return this.computeEmpiricalConfidenceBounds(e)}evaluateShadowModeExit(){if(!this.shadowModeActive||this.config.forceShadowMode===!0)return;let e=this.shadowDecisions.length;if(e<this.shadowModeDecisionLimit)return;this.shadowDisagreements/e<=this.shadowModeMaxDisagreement&&(this.shadowModeActive=!1,this.neuralPrimary=!0)}checkCircuitBreaker(){if(this.recentOutcomes.length<10)return;let t=this.recentOutcomes.filter(n=>!n).length/this.recentOutcomes.length;t>this.circuitBreakerThreshold?this.tripCircuitBreaker():this.circuitBreakerTripped&&t<this.circuitBreakerThreshold*.5&&(this.circuitBreakerTripped=!1)}tripCircuitBreaker(){this.circuitBreakerTripped=!0,this.neuralPrimary=!1}buildNeuralReasoning(e,t,n,i,r){let s=[];return s.push(`[Neural] Routing to ${e.toUpperCase()}`),s.push(`with ${(t*100).toFixed(0)}% neural confidence.`),s.push(`Tier probabilities: haiku=${(n[0]*100).toFixed(0)}%,`),s.push(`sonnet=${(n[1]*100).toFixed(0)}%,`),s.push(`opus=${(n[2]*100).toFixed(0)}%.`),e!==i.model&&s.push(`Rule-based would choose ${i.model.toUpperCase()}.`),s.push(`Empirical bounds: [${r.lower.toFixed(2)}, ${r.upper.toFixed(2)}]`),s.push(`at ${(r.coverageLevel*100).toFixed(0)}% coverage.`),s.join(" ")}argmax(e){let t=0,n=e[0];for(let i=1;i<e.length;i++)e[i]>n&&(n=e[i],t=i);return t}getNeuralStats(){let e=this.shadowDecisions.length,t=e>0?this.shadowDisagreements/e:0,n=this.recentOutcomes.filter(r=>!r).length,i=this.recentOutcomes.length>0?n/this.recentOutcomes.length:0;return{shadowModeActive:this.shadowModeActive,shadowDecisions:e,disagreementRate:t,circuitBreakerTripped:this.circuitBreakerTripped,recentErrorRate:i,totalNeuralDecisions:this.totalNeuralDecisions,totalWeightUpdates:this.totalWeightUpdates,neuralPrimary:this.neuralPrimary}}getShadowDecisionLogs(){return this.shadowDecisions}getRuleRouter(){return this.ruleRouter}getNeuralNet(){return this.neuralNet}isNativeRouterAvailable(){return this.nativeRouterAvailable}isShadowModeActive(){return this.shadowModeActive}isNeuralPrimary(){return this.neuralPrimary}isCircuitBreakerTripped(){return this.circuitBreakerTripped}resetCircuitBreaker(){this.circuitBreakerTripped=!1,this.recentOutcomes=[]}getStats(){return this.ruleRouter.getStats()}getConfig(){return this.ruleRouter.getConfig()}reset(){this.ruleRouter.reset(),this.shadowDecisions=[],this.shadowDisagreements=0,this.circuitBreakerTripped=!1,this.recentOutcomes=[],this.totalNeuralDecisions=0,this.totalWeightUpdates=0,this.calibrationScores=[],this.domainSuccessRates.clear(),this.config.forceShadowMode!==void 0?(this.shadowModeActive=this.config.forceShadowMode,this.neuralPrimary=!this.config.forceShadowMode):(this.shadowModeActive=!0,this.neuralPrimary=!1)}}});import{performance as bt}from"perf_hooks";function kt(a){try{let{getRuVectorFeatureFlags:e}=(cn(),et(on));if(e().useNeuralRouting){let{NeuralTinyDancerRouter:n}=(Ct(),et(vt));return new n(a)}}catch(e){process.env.DEBUG&&console.debug("[Router] Neural router unavailable, using rule-based:",e instanceof Error?e.message:e)}return new F(a)}var F,ve=z(()=>{"use strict";yt();F=class{confidenceThreshold;uncertaintyThreshold;securityConfidenceThreshold;enableLearning;verbose;executor;totalRouted=0;routesByModel={haiku:0,sonnet:0,opus:0};routesByComplexity={simple:0,moderate:0,complex:0,critical:0};multiModelTriggers=0;humanReviewTriggers=0;advisorConsultations=0;totalConfidence=0;totalLatencyMs=0;outcomes=[];maxOutcomes=1e3;constructor(e={}){this.confidenceThreshold=e.confidenceThreshold??.8,this.uncertaintyThreshold=e.uncertaintyThreshold??.2,this.securityConfidenceThreshold=e.securityConfidenceThreshold??.85,this.enableLearning=e.enableLearning??!0,this.verbose=e.verbose??!1,this.executor=e.executor}hasExecutor(){return this.executor!==void 0}async routeWithAdvisor(e,t){let n=await this.route(e);if(!n.triggerMultiModel||!this.executor||!t)return{route:n};let i=await this.executor.consult(t,{agentName:e.agentId??e.id??"unknown",triggerReason:`tiny_dancer.confidence=${n.confidence.toFixed(2)}<${this.confidenceThreshold}`});return this.advisorConsultations++,{route:n,advisor:i}}async route(e){let t=bt.now(),n=ft(e),i=this.calculateConfidence(n),r=1-i,s=this.isSecurityTask(e),o=s&&i<this.securityConfidenceThreshold||i<this.confidenceThreshold&&n.complexity!=="simple",l=r>this.uncertaintyThreshold||s&&n.complexity==="critical",c=bt.now()-t,u=this.buildReasoning(n,i,s,o,l),d={model:n.recommendedModel,confidence:i,uncertainty:r,triggerMultiModel:o,triggerHumanReview:l,complexity:n.complexity,classification:n,latencyMs:c,reasoning:u};return this.updateStats(d),this.verbose&&console.log(`[TinyDancer] Route: ${n.recommendedModel} (complexity=${n.complexity}, confidence=${(i*100).toFixed(1)}%)`),d}calculateConfidence(e){let{score:t,complexity:n}=e;if(n==="simple"&&t<10)return .9;if(n==="critical"&&t>85)return .92;let i=[S.moderate,S.complex,S.critical],r=1/0;for(let d of i){let m=Math.abs(t-d);m<r&&(r=m)}let s=.55,o=.35,l=Math.min(r/25,1),c=s+l*o,u=n!=="simple"?Math.min(.05,e.factors.length*.01):0;return Math.min(.95,c+u)}isSecurityTask(e){let t=e;if(t.type==="security-scan"||t.type==="vulnerability-assessment"||e.domain==="security-compliance")return!0;let n=["sast","dast","vulnerability","owasp","security-scanning"];if(e.requiredCapabilities?.some(s=>n.includes(s)))return!0;let i=["security","vulnerability","cve","owasp","exploit","injection"],r=e.description.toLowerCase();return!!i.some(s=>r.includes(s))}buildReasoning(e,t,n,i,r){let s=[];if(s.push(`Routing to ${e.recommendedModel.toUpperCase()}`),s.push(`(complexity: ${e.complexity}, score: ${e.score})`),s.push(`with ${(t*100).toFixed(0)}% confidence.`),e.factors.length>0){let o=e.factors.slice(0,3).map(l=>l.name).join(", ");s.push(`Key factors: ${o}.`)}return n&&s.push("Security-sensitive task detected."),i&&s.push("Multi-model verification recommended due to uncertainty."),r&&s.push("Human review flagged due to high uncertainty or criticality."),s.join(" ")}updateStats(e){this.totalRouted++,this.routesByModel[e.model]++,this.routesByComplexity[e.complexity]++,this.totalConfidence+=e.confidence,this.totalLatencyMs+=e.latencyMs,e.triggerMultiModel&&this.multiModelTriggers++,e.triggerHumanReview&&this.humanReviewTriggers++}recordOutcome(e,t,n,i=n?1:0,r=t.model,s=0){if(!this.enableLearning)return;let o={task:e,routeResult:t,success:n,qualityScore:i,actualModelUsed:r,durationMs:s,timestamp:new Date};this.outcomes.push(o),this.outcomes.length>this.maxOutcomes&&this.outcomes.shift(),this.verbose&&console.log(`[TinyDancer] Recorded outcome: success=${n}, quality=${(i*100).toFixed(0)}%, model=${r}`)}getStats(){return{totalRouted:this.totalRouted,routesByModel:{...this.routesByModel},routesByComplexity:{...this.routesByComplexity},multiModelTriggers:this.multiModelTriggers,advisorConsultations:this.advisorConsultations,humanReviewTriggers:this.humanReviewTriggers,avgConfidence:this.totalRouted>0?this.totalConfidence/this.totalRouted:0,avgLatencyMs:this.totalRouted>0?this.totalLatencyMs/this.totalRouted:0,outcomesRecorded:this.outcomes.length}}getOutcomes(){return this.outcomes}getSuccessRateByModel(){let e={haiku:{success:0,total:0},sonnet:{success:0,total:0},opus:{success:0,total:0}};for(let t of this.outcomes){let n=t.actualModelUsed;e[n].total++,t.success&&e[n].success++}return{haiku:e.haiku.total>0?e.haiku.success/e.haiku.total:0,sonnet:e.sonnet.total>0?e.sonnet.success/e.sonnet.total:0,opus:e.opus.total>0?e.opus.success/e.opus.total:0}}reset(){this.totalRouted=0,this.routesByModel={haiku:0,sonnet:0,opus:0},this.routesByComplexity={simple:0,moderate:0,complex:0,critical:0},this.multiModelTriggers=0,this.advisorConsultations=0,this.humanReviewTriggers=0,this.totalConfidence=0,this.totalLatencyMs=0,this.outcomes=[]}getConfig(){return{confidenceThreshold:this.confidenceThreshold,uncertaintyThreshold:this.uncertaintyThreshold,securityConfidenceThreshold:this.securityConfidenceThreshold,enableLearning:this.enableLearning,verbose:this.verbose}}}});var ln={enableConsoleLog:!0,maxEntries:1e3,logPrefix:"[TASK]"},q=class{entries=[];config;constructor(e={}){this.config={...ln,...e}}log(e,t,n){let i={timestamp:new Date,operation:e,taskId:t,agentId:n?.agentId,domain:n?.domain,details:n?.details};if(this.entries.push(i),this.entries.length>this.config.maxEntries&&this.entries.splice(0,this.entries.length-this.config.maxEntries),this.config.enableConsoleLog){let r=n?.agentId?` by ${n.agentId}`:"",s=n?.domain?` (${n.domain})`:"";console.log(`${this.config.logPrefix} ${e.toUpperCase()} ${t}${r}${s}`)}}logSubmit(e,t){this.log("submit",e,{details:t})}logAssign(e,t,n){this.log("assign",e,{agentId:t,domain:n})}logReassign(e,t,n,i){this.log("reassign",e,{agentId:n,domain:i,details:{fromAgent:t}})}logComplete(e,t){this.log("complete",e,{agentId:t})}logFail(e,t,n){this.log("fail",e,{agentId:t,details:n?{error:n}:void 0})}logCancel(e){this.log("cancel",e)}logSteal(e,t,n){this.log("steal",e,{domain:n,details:{fromDomain:t}})}logQueue(e,t){this.log("queue",e,{details:{position:t}})}logDequeue(e){this.log("dequeue",e)}getEntries(e){let t=[...this.entries];e&&(e.operation&&(t=t.filter(i=>i.operation===e.operation)),e.taskId&&(t=t.filter(i=>i.taskId===e.taskId)),e.agentId&&(t=t.filter(i=>i.agentId===e.agentId)),e.domain&&(t=t.filter(i=>i.domain===e.domain)),e.fromTimestamp&&(t=t.filter(i=>i.timestamp>=e.fromTimestamp)),e.toTimestamp&&(t=t.filter(i=>i.timestamp<=e.toTimestamp)));let n=e?.limit??t.length;return t.slice(-n)}getStatistics(){let e={submit:0,assign:0,reassign:0,complete:0,fail:0,cancel:0,steal:0,queue:0,dequeue:0},t=new Set,n=new Set;for(let i of this.entries)e[i.operation]++,t.add(i.taskId),i.agentId&&n.add(i.agentId);return{totalEntries:this.entries.length,operationCounts:e,taskCount:t.size,agentCount:n.size}}clear(){this.entries.length=0}};function he(a){return new q(a)}me();rt();var fe=class{memory;initialized=!1;constructor(e){this.memory=e??w()}async initialize(){this.initialized||(this.memory.isInitialized()||await this.memory.initialize(),this.initialized=!0)}async saveSnapshot(e){this.ensureInitialized();let t=T();return this.memory.getDatabase().prepare(`
3
- INSERT INTO mincut_snapshots (
4
- id, timestamp, vertex_count, edge_count, total_weight,
5
- is_connected, component_count, vertices_json, edges_json
6
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
7
- `).run(t,e.timestamp.toISOString(),e.stats.vertexCount,e.stats.edgeCount,e.stats.totalWeight,e.stats.isConnected?1:0,e.stats.componentCount,JSON.stringify(e.vertices),JSON.stringify(e.edges)),await this.enforceRetention(),t}async enforceRetention(e=200){let t=this.memory.getDatabase();if(!t)return 0;let n=t.prepare("SELECT COUNT(*) as count FROM mincut_snapshots").get();if(!n||n.count<=e)return 0;let i=n.count-e;t.prepare(`
8
- DELETE FROM mincut_snapshots WHERE id IN (
9
- SELECT id FROM mincut_snapshots ORDER BY created_at ASC LIMIT ?
10
- )
11
- `).run(i);let r=t.prepare("SELECT COUNT(*) as count FROM mincut_history").get();if(r.count>500){let s=r.count-500;t.prepare(`
12
- DELETE FROM mincut_history WHERE id IN (
13
- SELECT id FROM mincut_history ORDER BY created_at ASC LIMIT ?
14
- )
15
- `).run(s)}return i}async getSnapshot(e){this.ensureInitialized();let n=this.memory.getDatabase().prepare("SELECT * FROM mincut_snapshots WHERE id = ?").get(e);return n?this.rowToSnapshot(n):null}async getRecentSnapshots(e=10){return this.ensureInitialized(),this.memory.getDatabase().prepare(`
16
- SELECT * FROM mincut_snapshots
17
- ORDER BY timestamp DESC
18
- LIMIT ?
19
- `).all(e).map(i=>this.rowToSnapshot(i))}async recordHistory(e){this.ensureInitialized();let n=this.memory.getDatabase().prepare(`
20
- INSERT INTO mincut_history (
21
- mincut_value, vertex_count, edge_count, algorithm, duration_ms, snapshot_id
22
- ) VALUES (?, ?, ?, ?, ?, ?)
23
- `).run(e.minCutValue,e.vertexCount,e.edgeCount,e.algorithm??"weighted-degree",e.durationMs??null,e.snapshotId??null);return Number(n.lastInsertRowid)}async getHistory(e={}){this.ensureInitialized();let t=this.memory.getDatabase(),n="SELECT * FROM mincut_history WHERE 1=1",i=[];return e.since&&(n+=" AND timestamp >= ?",i.push(e.since.toISOString())),e.until&&(n+=" AND timestamp <= ?",i.push(e.until.toISOString())),n+=" ORDER BY timestamp DESC",e.limit&&(n+=" LIMIT ?",i.push(e.limit)),t.prepare(n).all(...i).map(s=>({timestamp:new Date(s.timestamp),value:s.mincut_value,vertexCount:s.vertex_count,edgeCount:s.edge_count}))}async getHistoryStats(e=36e5){this.ensureInitialized();let t=this.memory.getDatabase(),n=new Date(Date.now()-e),i=t.prepare(`
24
- SELECT
25
- MIN(mincut_value) as min_value,
26
- MAX(mincut_value) as max_value,
27
- AVG(mincut_value) as avg_value,
28
- COUNT(*) as count
29
- FROM mincut_history
30
- WHERE timestamp >= ?
31
- `).get(n.toISOString()),r=t.prepare(`
32
- SELECT mincut_value, timestamp FROM (
33
- SELECT mincut_value, timestamp FROM mincut_history
34
- WHERE timestamp >= ?
35
- ORDER BY timestamp ASC
36
- LIMIT 1
37
- )
38
- UNION ALL
39
- SELECT mincut_value, timestamp FROM (
40
- SELECT mincut_value, timestamp FROM mincut_history
41
- WHERE timestamp >= ?
42
- ORDER BY timestamp DESC
43
- LIMIT 1
44
- )
45
- `).all(n.toISOString(),n.toISOString()),s="stable";if(r.length>=2){let o=r[1].mincut_value-r[0].mincut_value,l=(i.avg_value??0)*.1;o>l?s="improving":o<-l&&(s="degrading")}return{min:i.min_value??0,max:i.max_value??0,average:i.avg_value??0,count:i.count,trend:s}}async saveWeakVertices(e,t){this.ensureInitialized();let n=this.memory.getDatabase(),i=[],r=n.prepare(`
46
- INSERT INTO mincut_weak_vertices (
47
- id, vertex_id, weighted_degree, risk_score, reason,
48
- domain, vertex_type, suggestions_json, snapshot_id
49
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
50
- `);return n.transaction(o=>{for(let l of o){let c=T();r.run(c,l.vertexId,l.weightedDegree,l.riskScore,l.reason,l.vertex.domain??null,l.vertex.type,JSON.stringify(l.suggestions),t??null),i.push(c)}})(e),i}async getUnresolvedWeakVertices(){return this.ensureInitialized(),this.memory.getDatabase().prepare(`
51
- SELECT id, vertex_id, risk_score, reason, detected_at
52
- FROM mincut_weak_vertices
53
- WHERE resolved_at IS NULL
54
- ORDER BY risk_score DESC
55
- `).all().map(n=>({id:n.id,vertexId:n.vertex_id,riskScore:n.risk_score,reason:n.reason,detectedAt:new Date(n.detected_at)}))}async resolveWeakVertex(e){return this.ensureInitialized(),this.memory.getDatabase().prepare(`
56
- UPDATE mincut_weak_vertices
57
- SET resolved_at = datetime('now')
58
- WHERE id = ? AND resolved_at IS NULL
59
- `).run(e).changes>0}async saveAlert(e){return this.ensureInitialized(),this.memory.getDatabase().prepare(`
60
- INSERT INTO mincut_alerts (
61
- id, severity, message, mincut_value, threshold,
62
- affected_vertices_json, remediations_json, acknowledged, timestamp
63
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
64
- `).run(e.id,e.severity,e.message,e.minCutValue,e.threshold,JSON.stringify(e.affectedVertices),JSON.stringify(e.remediations),e.acknowledged?1:0,e.timestamp.toISOString()),e.id}async getUnacknowledgedAlerts(){return this.ensureInitialized(),this.memory.getDatabase().prepare(`
65
- SELECT * FROM mincut_alerts
66
- WHERE acknowledged = 0
67
- ORDER BY timestamp DESC
68
- `).all().map(n=>this.rowToAlert(n))}async acknowledgeAlert(e,t){return this.ensureInitialized(),this.memory.getDatabase().prepare(`
69
- UPDATE mincut_alerts
70
- SET acknowledged = 1,
71
- acknowledged_at = datetime('now'),
72
- acknowledged_by = ?
73
- WHERE id = ? AND acknowledged = 0
74
- `).run(t??null,e).changes>0}async getAlertHistory(e=50){return this.ensureInitialized(),this.memory.getDatabase().prepare(`
75
- SELECT * FROM mincut_alerts
76
- ORDER BY timestamp DESC
77
- LIMIT ?
78
- `).all(e).map(i=>this.rowToAlert(i))}async recordHealingAction(e){this.ensureInitialized();let t=T();return this.memory.getDatabase().prepare(`
79
- INSERT INTO mincut_healing_actions (
80
- id, action_type, action_params_json, success,
81
- mincut_before, mincut_after, improvement,
82
- error_message, duration_ms, triggered_by,
83
- snapshot_before_id, snapshot_after_id
84
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
85
- `).run(t,e.action.type,JSON.stringify(e.action),e.success?1:0,e.minCutBefore,e.minCutAfter,e.improvement,e.error??null,e.durationMs,e.triggeredBy??null,e.snapshotBeforeId??null,e.snapshotAfterId??null),t}async getHealingHistory(e={}){this.ensureInitialized();let t=this.memory.getDatabase(),n="SELECT * FROM mincut_healing_actions WHERE 1=1",i=[];return e.successOnly&&(n+=" AND success = 1"),n+=" ORDER BY created_at DESC",e.limit&&(n+=" LIMIT ?",i.push(e.limit)),t.prepare(n).all(...i).map(s=>({id:s.id,actionType:s.action_type,success:s.success===1,improvement:s.improvement,durationMs:s.duration_ms,createdAt:new Date(s.created_at)}))}async getHealingSuccessRate(e=864e5){this.ensureInitialized();let t=this.memory.getDatabase(),n=new Date(Date.now()-e),i=t.prepare(`
86
- SELECT
87
- COUNT(*) as total,
88
- SUM(CASE WHEN success = 1 THEN 1 ELSE 0 END) as successful,
89
- AVG(CASE WHEN success = 1 THEN improvement ELSE 0 END) as avg_improvement
90
- FROM mincut_healing_actions
91
- WHERE created_at >= ?
92
- `).get(n.toISOString());return{total:i.total,successful:i.successful,rate:i.total>0?i.successful/i.total:0,averageImprovement:i.avg_improvement??0}}async recordObservation(e){this.ensureInitialized();let t=T(),n=this.memory.getDatabase(),i=null;return e.prediction&&(i=e.minCutValue-e.prediction.predictedMinCut),n.prepare(`
93
- INSERT INTO mincut_observations (
94
- id, iteration, mincut_value, weak_vertex_count,
95
- weak_vertices_json, snapshot_id, prediction_json,
96
- actual_vs_predicted_diff
97
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
98
- `).run(t,e.iteration,e.minCutValue,e.weakVertices.length,JSON.stringify(e.weakVertices.map(r=>r.vertexId)),e.snapshotId??null,e.prediction?JSON.stringify(e.prediction):null,i),t}async getRecentObservations(e=20){return this.ensureInitialized(),this.memory.getDatabase().prepare(`
99
- SELECT id, iteration, mincut_value, weak_vertex_count, timestamp
100
- FROM mincut_observations
101
- ORDER BY iteration DESC
102
- LIMIT ?
103
- `).all(e).map(i=>({id:i.id,iteration:i.iteration,minCutValue:i.mincut_value,weakVertexCount:i.weak_vertex_count,timestamp:new Date(i.timestamp)}))}async getPredictionAccuracy(e=100){this.ensureInitialized();let n=this.memory.getDatabase().prepare(`
104
- SELECT
105
- COUNT(*) as count,
106
- AVG(ABS(actual_vs_predicted_diff)) as mae
107
- FROM mincut_observations
108
- WHERE prediction_json IS NOT NULL
109
- AND actual_vs_predicted_diff IS NOT NULL
110
- ORDER BY iteration DESC
111
- LIMIT ?
112
- `).get(e);return{count:n.count,meanAbsoluteError:n.mae??0,accuracy:n.mae!==null?Math.max(0,1-n.mae/3):0}}async cleanup(e={}){this.ensureInitialized();let t=this.memory.getDatabase(),n=Date.now(),i=e.historyMaxAge??10080*60*1e3,r=e.snapshotMaxAge??1440*60*1e3,s=e.alertMaxAge??720*60*60*1e3,o=t.prepare(`
113
- DELETE FROM mincut_history
114
- WHERE timestamp < ?
115
- `).run(new Date(n-i).toISOString()),l=t.prepare(`
116
- DELETE FROM mincut_snapshots
117
- WHERE timestamp < ?
118
- `).run(new Date(n-r).toISOString()),c=t.prepare(`
119
- DELETE FROM mincut_alerts
120
- WHERE timestamp < ? AND acknowledged = 1
121
- `).run(new Date(n-s).toISOString());return{historyDeleted:o.changes,snapshotsDeleted:l.changes,alertsDeleted:c.changes}}ensureInitialized(){if(!this.initialized)throw new Error("MinCutPersistence not initialized. Call initialize() first.")}rowToSnapshot(e){return{timestamp:new Date(e.timestamp),vertices:M(e.vertices_json),edges:M(e.edges_json),stats:{vertexCount:e.vertex_count,edgeCount:e.edge_count,totalWeight:e.total_weight,averageDegree:e.edge_count>0&&e.vertex_count>0?e.edge_count*2/e.vertex_count:0,density:e.vertex_count>1?e.edge_count/(e.vertex_count*(e.vertex_count-1)/2):0,isConnected:e.is_connected===1,componentCount:e.component_count}}}rowToAlert(e){return{id:e.id,severity:e.severity,message:e.message,minCutValue:e.mincut_value,threshold:e.threshold,affectedVertices:e.affected_vertices_json?M(e.affected_vertices_json):[],remediations:e.remediations_json?M(e.remediations_json):[],acknowledged:e.acknowledged===1,timestamp:new Date(e.timestamp)}}};function pt(a){return new fe(a)}var un={...at,autoUpdateFromEvents:!0,persistData:!0,snapshotIntervalMs:6e4,includeInQueenHealth:!0,minHealthIssueSeverity:"medium"},ye=class{constructor(e,t,n={}){this.eventBus=e;this.agentCoordinator=t;this.config={...un,...n},this.graph=n.sharedGraph??st(),this.monitor=ot(this.graph,this.config,this.eventBus),this.persistence=pt()}eventBus;agentCoordinator;config;graph;monitor;persistence;eventSubscriptions=[];snapshotTimer=null;initialized=!1;async initialize(){this.initialized||(this.config.persistData&&await this.persistence.initialize(),await this.buildGraphFromAgents(),this.config.autoUpdateFromEvents&&this.subscribeToEvents(),this.monitor.start(),this.config.persistData&&this.startSnapshotTimer(),this.initialized=!0)}async dispose(){this.monitor.stop(),this.snapshotTimer&&(clearInterval(this.snapshotTimer),this.snapshotTimer=null);for(let e of this.eventSubscriptions)e();if(this.eventSubscriptions=[],this.config.persistData)try{await this.saveSnapshot()}catch{}this.initialized=!1}async buildGraphFromAgents(){this.config.sharedGraph||this.graph.clear();let e=this.agentCoordinator.listAgents();for(let t of v)this.graph.addVertex({id:`domain:${t}`,type:"domain",domain:t,weight:2,createdAt:new Date});for(let t of e)this.addAgentVertex(t);this.buildCoordinationEdges(e)}addAgentVertex(e){let t=e,n={id:`agent:${e.id}`,type:"agent",domain:e.domain,capabilities:t.capabilities,weight:1,createdAt:e.startedAt??new Date,metadata:{status:e.status,taskCount:t.taskCount??0,health:t.health??1}};if(this.graph.addVertex(n),e.domain){let i=`domain:${e.domain}`;this.graph.hasVertex(i)&&this.graph.addEdge({source:`agent:${e.id}`,target:i,weight:1,type:"coordination",bidirectional:!0})}}buildCoordinationEdges(e){let t=new Map;for(let i of e)if(i.domain){let r=t.get(i.domain)||[];r.push(i),t.set(i.domain,r)}for(let[i,r]of t)for(let s=0;s<r.length;s++)for(let o=s+1;o<r.length;o++)this.graph.addEdge({source:`agent:${r[s].id}`,target:`agent:${r[o].id}`,weight:.5,type:"communication",bidirectional:!0});let n=[["test-generation","test-execution"],["test-execution","coverage-analysis"],["coverage-analysis","quality-assessment"],["quality-assessment","defect-intelligence"],["requirements-validation","test-generation"],["code-intelligence","test-generation"],["security-compliance","quality-assessment"],["contract-testing","test-execution"],["visual-accessibility","quality-assessment"],["chaos-resilience","test-execution"],["learning-optimization","defect-intelligence"]];for(let[i,r]of n){let s=`domain:${i}`,o=`domain:${r}`;this.graph.hasVertex(s)&&this.graph.hasVertex(o)&&this.graph.addEdge({source:s,target:o,weight:1.5,type:"workflow",bidirectional:!1})}}subscribeToEvents(){let e=async c=>{let{agentId:u,domain:d,type:m,capabilities:p}=c.payload;this.addAgentVertex({id:u,name:`${d}-${m}`,domain:d,type:m,status:"running",startedAt:new Date,capabilities:p,health:1,taskCount:0}),this.config.persistData&&await this.persistence.recordHistory({minCutValue:this.monitor.getMinCutValue(),vertexCount:this.graph.vertexCount,edgeCount:this.graph.edgeCount})},t=async c=>{let{agentId:u}=c.payload;this.graph.removeVertex(`agent:${u}`),this.monitor.checkHealth().status==="critical"&&await this.reportHealthIssue({severity:"high",message:`Agent ${u} termination caused critical MinCut degradation`,timestamp:new Date})},n=async c=>{let{agentId:u,status:d}=c.payload,m=`agent:${u}`,p=this.graph.getVertex(m);p&&this.graph.addVertex({...p,metadata:{...p.metadata,status:d}})},i=async c=>{let{fromAgent:u,toAgent:d}=c.payload,m=`agent:${u}`,p=`agent:${d}`;if(this.graph.hasVertex(m)&&this.graph.hasVertex(p)){let f=this.graph.getEdge(m,p);f?this.graph.addEdge({...f,weight:Math.min(f.weight+.1,3),lastActivity:new Date,messageCount:(f.messageCount??0)+1}):this.graph.addEdge({source:m,target:p,weight:.5,type:"communication",bidirectional:!0,lastActivity:new Date,messageCount:1})}},r=this.eventBus.subscribe("QueenAgentSpawned",e),s=this.eventBus.subscribe("QueenAgentTerminated",t),o=this.eventBus.subscribe("QueenAgentStatusChanged",n),l=this.eventBus.subscribe("QueenTaskCoordination",i);this.eventSubscriptions.push(()=>r.unsubscribe(),()=>s.unsubscribe(),()=>o.unsubscribe(),()=>l.unsubscribe())}getMinCutHealth(){return this.monitor.getHealth()}isEmptyTopology(){return this.graph.getVerticesByType("agent").length===0}getHealthIssuesFromMinCut(){if(this.isEmptyTopology())return[];let e=this.monitor.getActiveAlerts(),t=[];for(let i of e){let r=this.mapSeverity(i.severity);this.severityValue(r)>=this.severityValue(this.config.minHealthIssueSeverity)&&t.push({severity:r,message:`MinCut: ${i.message}`,timestamp:i.timestamp})}let n=this.monitor.getWeakVertices();for(let i of n.slice(0,3))i.riskScore>.7&&t.push({severity:"high",message:`Weak agent topology: ${i.reason} (risk: ${(i.riskScore*100).toFixed(0)}%)`,timestamp:new Date,domain:i.vertex.domain});return t}extendQueenHealth(e){if(!this.config.includeInQueenHealth)return e;let t=this.getMinCutHealth(),n=this.getHealthIssuesFromMinCut(),i=e.status;return t.status==="critical"&&i==="healthy"&&(i="degraded"),{...e,status:i,issues:[...e.issues,...n],minCut:t}}extendQueenMetrics(e){let t=this.monitor.getHealth(),n=this.graph.getStats();return{...e,minCutValue:t.minCutValue,weakVertexCount:t.weakVertexCount,topologyDensity:n.density}}async saveSnapshot(){if(!this.config.persistData)return;let e=this.graph.snapshot();await this.persistence.saveSnapshot(e)}startSnapshotTimer(){this.snapshotTimer=setInterval(async()=>{this.isEmptyTopology()||(await this.saveSnapshot(),await this.persistence.recordHistory({minCutValue:this.monitor.getMinCutValue(),vertexCount:this.graph.vertexCount,edgeCount:this.graph.edgeCount}))},this.config.snapshotIntervalMs)}getGraph(){return this.graph}getMonitor(){return this.monitor}getPersistence(){return this.persistence}getMinCutValue(){return this.monitor.getMinCutValue()}getWeakVertices(){return this.monitor.getWeakVertices()}isTopologyCritical(){return this.monitor.isCritical()}addVertex(e){this.graph.addVertex(e)}addEdge(e){this.graph.addEdge(e)}removeVertex(e){return this.graph.removeVertex(e)}async refreshGraph(){await this.buildGraphFromAgents()}async reportHealthIssue(e){await this.eventBus.publish({id:T(),type:"MinCutHealthIssue",source:"mincut-bridge",timestamp:new Date,payload:{issue:e}})}mapSeverity(e){return e}severityValue(e){return{critical:5,high:4,medium:3,low:2,info:1}[e]}};function ht(a,e,t){return new ye(a,e,t)}ve();import{performance as Et}from"perf_hooks";var Dn={multiModel:.8,humanReview:.2,security:.85,escalation:.6},xn={trivial:["booster","haiku"],simple:["haiku"],moderate:["sonnet"],complex:["sonnet","opus"],critical:["opus"]},An={enabled:!0,preferCheaperModels:!0,costPerMillionTokens:{haiku:{input:.25,output:1.25},sonnet:{input:3,output:15},opus:{input:15,output:75}},dailyCostLimit:0,costAlertThreshold:.8},En={enabled:!0,maxAttempts:2,retryDelayMs:1e3,chain:{booster:"haiku",haiku:"sonnet",sonnet:"opus",opus:null}},D={confidence:Dn,tierMapping:xn,costOptimization:An,fallback:En,verbose:!1,enableEMACalibration:!0,enableAutoEscalation:!0,enableNeuralRouting:!1};function St(a=D){let e=structuredClone(a);return process.env.ROUTING_CONFIDENCE_MULTI_MODEL&&(e.confidence.multiModel=parseFloat(process.env.ROUTING_CONFIDENCE_MULTI_MODEL)),process.env.ROUTING_CONFIDENCE_HUMAN_REVIEW&&(e.confidence.humanReview=parseFloat(process.env.ROUTING_CONFIDENCE_HUMAN_REVIEW)),process.env.ROUTING_CONFIDENCE_SECURITY&&(e.confidence.security=parseFloat(process.env.ROUTING_CONFIDENCE_SECURITY)),process.env.ROUTING_CONFIDENCE_ESCALATION&&(e.confidence.escalation=parseFloat(process.env.ROUTING_CONFIDENCE_ESCALATION)),process.env.ROUTING_COST_DAILY_LIMIT&&(e.costOptimization.dailyCostLimit=parseFloat(process.env.ROUTING_COST_DAILY_LIMIT)),process.env.ROUTING_COST_PREFER_CHEAPER&&(e.costOptimization.preferCheaperModels=process.env.ROUTING_COST_PREFER_CHEAPER.toLowerCase()==="true"),process.env.ROUTING_FALLBACK_ENABLED&&(e.fallback.enabled=process.env.ROUTING_FALLBACK_ENABLED.toLowerCase()==="true"),process.env.ROUTING_FALLBACK_MAX_ATTEMPTS&&(e.fallback.maxAttempts=parseInt(process.env.ROUTING_FALLBACK_MAX_ATTEMPTS,10)),process.env.ROUTING_VERBOSE&&(e.verbose=process.env.ROUTING_VERBOSE.toLowerCase()==="true"),e}function Dt(a,e,t=D){if(e/100<=.2)return t.tierMapping.trivial;switch(a){case"simple":return t.tierMapping.simple;case"moderate":return t.tierMapping.moderate;case"complex":return t.tierMapping.complex;case"critical":return t.tierMapping.critical}}function xt(a,e=D){return e.fallback.enabled?e.fallback.chain[a]??null:null}function Ce(a){switch(a){case"booster":case"haiku":return"haiku";case"sonnet":return"sonnet";case"opus":return"opus"}}function At(a,e,t,n=D){let i=n.costOptimization.costPerMillionTokens[a],r=e/1e6*i.input,s=t/1e6*i.output;return r+s}function be(a){let{confidence:e}=a;if(e.multiModel<0||e.multiModel>1)throw new Error("multiModel confidence must be between 0 and 1");if(e.humanReview<0||e.humanReview>1)throw new Error("humanReview confidence must be between 0 and 1");if(e.security<0||e.security>1)throw new Error("security confidence must be between 0 and 1");if(e.escalation<0||e.escalation>1)throw new Error("escalation confidence must be between 0 and 1");if(a.costOptimization.dailyCostLimit<0)throw new Error("dailyCostLimit must be non-negative");if(a.costOptimization.costAlertThreshold<0||a.costOptimization.costAlertThreshold>1)throw new Error("costAlertThreshold must be between 0 and 1");if(a.fallback.maxAttempts<0)throw new Error("maxAttempts must be non-negative");if(a.fallback.retryDelayMs<0)throw new Error("retryDelayMs must be non-negative")}var j=class{tinyDancer;routingConfig;enableCostTracking;avgInputTokens;avgOutputTokens;totalCost=0;costByModel={haiku:0,sonnet:0,opus:0};totalTasks=0;dailyCost=0;lastCostReset=new Date;outcomes=[];maxOutcomes=1e3;constructor(e={}){this.tinyDancer=kt(e.tinyDancer);let t=this.mergeRoutingConfig(e.routing);this.routingConfig=St(t),be(this.routingConfig),this.enableCostTracking=e.enableCostTracking??!0,this.avgInputTokens=e.avgInputTokens??2e3,this.avgOutputTokens=e.avgOutputTokens??500}async route(e){let t=Et.now();this.checkDailyCostReset();let n=await this.tinyDancer.route(e),i=void 0,s=Dt(n.complexity,n.classification.score,this.routingConfig)[0],o=Ce(s),l=this.buildFallbackChain(s),c=this.enableCostTracking?At(o,this.avgInputTokens,this.avgOutputTokens,this.routingConfig):0;this.checkCostLimits(c);let u=this.buildQueenReasoning(n,s,l,c),d=Et.now()-t,m={tier:s,model:o,complexity:n.complexity,confidence:n.confidence,triggerMultiModel:n.triggerMultiModel,triggerHumanReview:n.triggerHumanReview,fallbackTiers:l,estimatedCost:c,reasoning:u,latencyMs:d,tinyDancerResult:n,advisorResult:i,timestamp:new Date};return this.enableCostTracking&&(this.totalCost+=c,this.costByModel[o]+=c,this.dailyCost+=c),this.totalTasks++,this.routingConfig.verbose&&console.log(`[QueenRouter] Route: ${s} (${o}) complexity=${n.complexity}, confidence=${(n.confidence*100).toFixed(1)}%, cost=$${c.toFixed(4)}`),m}recordOutcome(e,t,n,i,r=i?1:0,s=0,o=0,l){let c={task:e,decision:t,usedTier:n,success:i,qualityScore:r,durationMs:s,fallbackAttempts:o,error:l,timestamp:new Date};this.outcomes.push(c),this.outcomes.length>this.maxOutcomes&&this.outcomes.shift(),this.tinyDancer.recordOutcome?.(e,t.tinyDancerResult,i,r,Ce(n),s),this.routingConfig.verbose&&console.log(`[QueenRouter] Recorded outcome: tier=${n}, success=${i}, quality=${(r*100).toFixed(0)}%, fallbacks=${o}`)}getSuccessRateByTier(){let e={booster:{success:0,total:0},haiku:{success:0,total:0},sonnet:{success:0,total:0},opus:{success:0,total:0}};for(let t of this.outcomes){let n=t.usedTier;e[n].total++,t.success&&e[n].success++}return{booster:e.booster.total>0?e.booster.success/e.booster.total:0,haiku:e.haiku.total>0?e.haiku.success/e.haiku.total:0,sonnet:e.sonnet.total>0?e.sonnet.success/e.sonnet.total:0,opus:e.opus.total>0?e.opus.success/e.opus.total:0}}getFallbackStats(){let e=this.outcomes.filter(i=>i.fallbackAttempts>0),t=e.filter(i=>i.success),n=e.reduce((i,r)=>i+r.fallbackAttempts,0);return{totalWithFallback:e.length,avgFallbackAttempts:e.length>0?n/e.length:0,fallbackSuccessRate:e.length>0?t.length/e.length:0}}getCostStats(){return{totalCost:this.totalCost,costByModel:{...this.costByModel},totalTasks:this.totalTasks,avgCostPerTask:this.totalTasks>0?this.totalCost/this.totalTasks:0,dailyCost:this.dailyCost,lastReset:this.lastCostReset}}getOutcomes(){return this.outcomes}getConfig(){return this.routingConfig}updateConfidenceThresholds(e){Object.assign(this.routingConfig.confidence,e),be(this.routingConfig),this.routingConfig.verbose&&console.log("[QueenRouter] Updated confidence thresholds:",e)}reset(){this.totalCost=0,this.costByModel={haiku:0,sonnet:0,opus:0},this.totalTasks=0,this.dailyCost=0,this.lastCostReset=new Date,this.outcomes=[],this.tinyDancer.reset?.()}buildFallbackChain(e){let t=[];if(!this.routingConfig.fallback.enabled)return t;let n=e,i=0;for(;n&&i<this.routingConfig.fallback.maxAttempts;){let r=xt(n,this.routingConfig);if(r)t.push(r),n=r;else break;i++}return t}buildQueenReasoning(e,t,n,i){let r=[];return r.push(e.reasoning),r.push(`Assigned to ${t.toUpperCase()} tier.`),n.length>0&&r.push(`Fallback chain: ${n.map(s=>s.toUpperCase()).join(" \u2192 ")}.`),this.enableCostTracking&&i>0&&r.push(`Estimated cost: $${i.toFixed(4)}.`),r.join(" ")}checkDailyCostReset(){let e=new Date,t=this.lastCostReset;(e.getUTCDate()!==t.getUTCDate()||e.getUTCMonth()!==t.getUTCMonth()||e.getUTCFullYear()!==t.getUTCFullYear())&&(this.dailyCost=0,this.lastCostReset=e,this.routingConfig.verbose&&console.log("[QueenRouter] Reset daily cost tracking"))}checkCostLimits(e){if(!this.routingConfig.costOptimization.enabled)return;let{dailyCostLimit:t,costAlertThreshold:n}=this.routingConfig.costOptimization;if(t>0){let i=this.dailyCost+e,r=i/t;i>t?console.warn(`[QueenRouter] COST LIMIT EXCEEDED: Daily cost $${i.toFixed(2)} exceeds limit of $${t.toFixed(2)}`):r>=n&&console.warn(`[QueenRouter] Cost alert: ${(r*100).toFixed(0)}% of daily limit ($${i.toFixed(2)} / $${t.toFixed(2)})`)}}mergeRoutingConfig(e){if(!e)return structuredClone(D);let t=structuredClone(D);return e.confidence&&(t.confidence={...t.confidence,...e.confidence}),e.tierMapping&&(t.tierMapping={...t.tierMapping,...e.tierMapping}),e.costOptimization&&(t.costOptimization={...t.costOptimization,...e.costOptimization,costPerMillionTokens:e.costOptimization.costPerMillionTokens?{...t.costOptimization.costPerMillionTokens,...e.costOptimization.costPerMillionTokens}:t.costOptimization.costPerMillionTokens}),e.fallback&&(t.fallback={...t.fallback,...e.fallback,chain:e.fallback.chain?{...t.fallback.chain,...e.fallback.chain}:t.fallback.chain}),e.verbose!==void 0&&(t.verbose=e.verbose),t}};k();var Mt=20,Se=class{db=null;initialized=!1;initialize(e){if(!this.initialized){this.db=e;try{this.db.exec(`
122
- CREATE TABLE IF NOT EXISTS qe_agent_co_execution (
123
- id INTEGER PRIMARY KEY AUTOINCREMENT,
124
- agent_a TEXT NOT NULL,
125
- agent_b TEXT NOT NULL,
126
- domain TEXT NOT NULL,
127
- success INTEGER NOT NULL DEFAULT 0,
128
- task_description TEXT,
129
- created_at TEXT DEFAULT (datetime('now'))
130
- );
131
-
132
- CREATE INDEX IF NOT EXISTS idx_co_exec_agents
133
- ON qe_agent_co_execution(agent_a, agent_b);
134
- CREATE INDEX IF NOT EXISTS idx_co_exec_domain
135
- ON qe_agent_co_execution(domain);
136
- `),this.initialized=!0}catch(t){console.error(`[CoExecutionRepository] Init error: ${h(t)}`)}}}recordCoExecution(e){if(!this.db)return;let[t,n]=[e.agentA,e.agentB].sort();try{this.db.prepare(`
137
- INSERT INTO qe_agent_co_execution (agent_a, agent_b, domain, success, task_description)
138
- VALUES (?, ?, ?, ?, ?)
139
- `).run(t,n,e.domain,e.success?1:0,e.taskDescription?.slice(0,500)||null)}catch(i){console.debug(`[CoExecutionRepository] Record error: ${h(i)}`)}}getCoExecutionStats(e,t){if(!this.db)return null;let[n,i]=[e,t].sort();try{let r=this.db.prepare(`
140
- SELECT
141
- agent_a,
142
- agent_b,
143
- COUNT(*) as total_executions,
144
- SUM(CASE WHEN success = 1 THEN 1 ELSE 0 END) as success_count
145
- FROM qe_agent_co_execution
146
- WHERE agent_a = ? AND agent_b = ?
147
- GROUP BY agent_a, agent_b
148
- `).get(n,i);if(!r)return null;let s=r.total_executions>0?r.success_count/r.total_executions:0,o=Math.min(1,r.success_count/Mt);return{agentA:r.agent_a,agentB:r.agent_b,totalExecutions:r.total_executions,successCount:r.success_count,successRate:s,behavioralConfidence:o}}catch(r){return console.debug(`[CoExecutionRepository] Stats error: ${h(r)}`),null}}getCoExecutionPartners(e,t=10){if(!this.db)return[];try{return this.db.prepare(`
149
- SELECT
150
- agent_a,
151
- agent_b,
152
- COUNT(*) as total_executions,
153
- SUM(CASE WHEN success = 1 THEN 1 ELSE 0 END) as success_count
154
- FROM qe_agent_co_execution
155
- WHERE agent_a = ? OR agent_b = ?
156
- GROUP BY agent_a, agent_b
157
- ORDER BY success_count DESC
158
- LIMIT ?
159
- `).all(e,e,t).map(i=>{let r=i.total_executions>0?i.success_count/i.total_executions:0;return{agentA:i.agent_a,agentB:i.agent_b,totalExecutions:i.total_executions,successCount:i.success_count,successRate:r,behavioralConfidence:Math.min(1,i.success_count/Mt)}})}catch(n){return console.debug(`[CoExecutionRepository] Partners error: ${h(n)}`),[]}}recordSwarmCoExecution(e,t,n,i){if(!(!this.db||e.length<2))try{let r=this.db.prepare(`
160
- INSERT INTO qe_agent_co_execution (agent_a, agent_b, domain, success, task_description)
161
- VALUES (?, ?, ?, ?, ?)
162
- `);this.db.transaction(()=>{for(let o=0;o<e.length;o++)for(let l=o+1;l<e.length;l++){let[c,u]=[e[o],e[l]].sort();r.run(c,u,t,n?1:0,i?.slice(0,500)||null)}})()}catch(r){console.debug(`[CoExecutionRepository] Swarm record error: ${h(r)}`)}}},ke=null;function wt(){return ke||(ke=new Se),ke}import{readFileSync as Mn,existsSync as wn,readdirSync as In}from"fs";import{join as Rn,basename as _n}from"path";function It(a){let e=a.split(`
163
- `);if(e.length<2||e[0].trim()!=="---")return null;for(let t=1;t<e.length;t++)if(e[t].trim()==="---")return e.slice(1,t).join(`
164
- `);return null}function _(a){let e=a.trim();return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function Pn(a){let e=It(a);if(!e)return null;let t=e.split(`
165
- `),n=-1;for(let c=0;c<t.length;c++)if(/^dependencies:\s*$/.test(t[c])){n=c+1;break}if(n===-1)return null;let i=[];for(let c=n;c<t.length;c++){let u=t[c];if(u.trim()!==""){if(u.length>0&&u[0]!==" "&&u[0]!==" ")break;i.push(u)}}if(i.length===0)return null;let r={},s={section:"none",item:{},inList:!1},o=()=>{s.item.name&&(r.agents||(r.agents=[]),r.agents.push({name:s.item.name,type:s.item.type||"hard",reason:s.item.reason||""}),s.item={})},l=()=>{s.item.name&&(r.mcpServers||(r.mcpServers=[]),r.mcpServers.push({name:s.item.name,required:s.item.required==="true"}),s.item={})};for(let c of i){let u=c.trim();if(u==="")continue;let d=u.match(/^(agents|mcp_servers|models):\s*$/);if(d){s.section==="agents"&&s.inList&&o(),s.section==="mcp_servers"&&s.inList&&l(),s.inList=!1,s.section=d[1];continue}if(s.section==="agents"||s.section==="mcp_servers"){let m=u.match(/^-\s+(\w+):\s*(.*)$/);if(m){s.inList&&(s.section==="agents"?o():l()),s.inList=!0,s.item={[m[1]]:_(m[2])};continue}if(s.inList){let p=u.match(/^(\w+):\s*(.*)$/);if(p){s.item[p[1]]=_(p[2]);continue}}}if(s.section==="models"){r.models||(r.models={});let m=u.match(/^(\w+):\s*(.*)$/);if(m){let f=_(m[2]);if(m[1]==="minimum")r.models={...r.models,minimum:f};else if(m[1]==="capabilities"){let U=f.match(/^\[(.+)]$/);U&&(r.models={...r.models,capabilities:U[1].split(",").map(rn=>_(rn.trim()))})}}let p=u.match(/^-\s+(.+)$/);if(p&&r.models){let f=r.models.capabilities||[];r.models={...r.models,capabilities:[...f,_(p[1])]}}}}return s.section==="agents"&&s.inList&&o(),s.section==="mcp_servers"&&s.inList&&l(),!r.agents&&!r.mcpServers&&!r.models?null:r}function Fn(a){let e=It(a);if(!e)return null;for(let t of e.split(`
166
- `)){let n=t.match(/^name:\s*(.+)$/);if(n)return _(n[1])}return null}function Rt(a){let e=new Map,t=[];if(!wn(a))return t.push(`Agents directory not found: ${a}`),{nodes:e,spawnOrder:[],cycles:[],warnings:t};let n=In(a).filter(s=>s.startsWith("qe-")&&s.endsWith(".md"));for(let s of n){let o;try{o=Mn(Rn(a,s),"utf-8")}catch{t.push(`Failed to read agent file: ${s}`);continue}let l=Fn(o)||_n(s,".md"),c=Pn(o),u=[],d=[],m=[];if(c?.agents)for(let p of c.agents)p.type==="hard"?u.push(p.name):p.type==="soft"?d.push(p.name):p.type==="peer"&&m.push(p.name);e.set(l,{agentName:l,hardDeps:u,softDeps:d,peerDeps:m,dependencies:c||{}})}let i=new Set(e.keys());for(let[s,o]of e)for(let l of o.hardDeps)i.has(l)||t.push(`Agent "${s}" declares hard dependency on "${l}" which is not in the agent directory`);let r=Hn(e);for(let s of r)t.push(`Dependency cycle detected: ${s.join(" -> ")}`);return{nodes:e,spawnOrder:On(e,r),cycles:r,warnings:t}}function Hn(a){let e=[],t=new Set,n=new Set,i=[];function r(s){t.add(s),n.add(s),i.push(s);let o=a.get(s);if(o){for(let l of o.hardDeps)if(!t.has(l)&&a.has(l))r(l);else if(n.has(l)){let c=i.indexOf(l);c!==-1&&e.push([...i.slice(c),l])}}i.pop(),n.delete(s)}for(let s of a.keys())t.has(s)||r(s);return e}function On(a,e){let t=new Set(e.flat()),n=[],i=new Set,r=new Set;function s(o){if(i.has(o)||t.has(o)||r.has(o))return;r.add(o);let l=a.get(o);if(l)for(let c of l.hardDeps)a.has(c)&&s(c);r.delete(o),i.add(o),n.push(o)}for(let o of a.keys())s(o);for(let o of t)n.includes(o)||n.push(o);return n}function _t(a,e){let t=new Set(a),n=[],i=[];for(let l of a){let c=e.nodes.get(l);if(!c)continue;let u=c.hardDeps.filter(d=>!t.has(d));u.length>0&&(i.push({agent:l,missing:u}),n.push(`Advisory: "${l}" has unsatisfied hard dependencies: ${u.join(", ")}. Proceeding anyway.`))}let r=[],s=new Set,o=new Set(a);for(;o.size>0;){let l=[];for(let c of o){let u=e.nodes.get(c);if(!u){l.push(c);continue}u.hardDeps.filter(m=>t.has(m)).every(m=>s.has(m))&&l.push(c)}if(l.length===0){n.push(`Could not resolve dependency ordering for: ${[...o].join(", ")}. Placing in final phase.`),r.push([...o]);break}r.push(l);for(let c of l)s.add(c),o.delete(c);o=new Set([...o])}return{phases:r,unsatisfiedHardDeps:i,warnings:n}}var De={defaultTtlMs:0,cleanupIntervalMs:6e4,maxMailboxSize:1e3};var H=class{mailboxes=new Map;messageHandlers=new Map;broadcastHandlers=new Map;domainAgents=new Map;cognitiveRouter=null;cognitiveRouterInitialized=!1;compressedMessages=new Map;createMailbox(e,t){let n=this.mailboxes.get(e);if(n)return this.toSnapshot(n);let i={agentId:e,domain:t,messages:[],unreadCount:0,lastRead:Date.now()};this.mailboxes.set(e,i);let r=this.domainAgents.get(t);return r||(r=new Set,this.domainAgents.set(t,r)),r.add(e),this.toSnapshot(i)}getMailbox(e){let t=this.mailboxes.get(e);if(t)return this.toSnapshot(t)}deleteMailbox(e){let t=this.mailboxes.get(e);if(!t)return!1;let n=this.domainAgents.get(t.domain);n&&(n.delete(e),n.size===0&&this.domainAgents.delete(t.domain));for(let i of t.messages)this.compressedMessages.delete(i.id);return this.messageHandlers.delete(e),this.mailboxes.delete(e),!0}send(e){if(e.to==="broadcast"){this.broadcast(e.domain,e);return}let t=this.mailboxes.get(e.to);if(!t)throw new Error(`No mailbox found for agent '${e.to}'. Create a mailbox first with createMailbox().`);let n=this.compressViaCognitive(e);t.messages.push(n),t.unreadCount++;let i=this.messageHandlers.get(e.to);if(i)for(let r of i)try{r(e)}catch{}}broadcast(e,t){let n=this.domainAgents.get(e);if(!n)return;for(let r of n){if(r===t.from)continue;let s=this.mailboxes.get(r);if(s){s.messages.push(t),s.unreadCount++;let o=this.messageHandlers.get(r);if(o)for(let l of o)try{l(t)}catch{}}}let i=this.broadcastHandlers.get(e);if(i)for(let r of i)try{r(e,t)}catch{}}receive(e,t){let n=this.mailboxes.get(e);if(!n||n.unreadCount===0)return[];let i=Date.now(),r=n.messages.length-n.unreadCount,s=n.messages.slice(r);return s=s.filter(o=>!this.isExpired(o,i)),t?.type&&(s=s.filter(o=>o.type===t.type)),t?.since!==void 0&&(s=s.filter(o=>o.timestamp>=t.since)),t?.limit!==void 0&&t.limit>0&&(s=s.slice(0,t.limit)),n.unreadCount=0,n.lastRead=i,this.decompressMessages(s)}peek(e){let t=this.mailboxes.get(e);if(!t)return 0;let n=Date.now(),i=t.messages.length-t.unreadCount,r=0;for(let s=i;s<t.messages.length;s++)this.isExpired(t.messages[s],n)||r++;return r}cleanup(e){let t=Date.now(),n=t-e,i=0;for(let r of this.mailboxes.values()){let s=r.messages.length,o=r.messages.length-r.unreadCount;r.messages=r.messages.filter((c,u)=>c.timestamp<n?(this.compressedMessages.delete(c.id),!1):this.isExpired(c,t)?(this.compressedMessages.delete(c.id),!1):!0);let l=s-r.messages.length;i+=l,l>0&&(r.unreadCount=r.messages.filter(c=>c.timestamp>r.lastRead).length)}return i}onMessage(e,t){let n=this.messageHandlers.get(e);return n||(n=[],this.messageHandlers.set(e,n)),n.push(t),()=>{let i=this.messageHandlers.get(e);if(i){let r=i.indexOf(t);r>=0&&i.splice(r,1)}}}onBroadcast(e,t){let n=this.broadcastHandlers.get(e);return n||(n=[],this.broadcastHandlers.set(e,n)),n.push(t),()=>{let i=this.broadcastHandlers.get(e);if(i){let r=i.indexOf(t);r>=0&&i.splice(r,1)}}}getAgentsInDomain(e){let t=this.domainAgents.get(e);return t?Array.from(t):[]}getDomains(){return Array.from(this.domainAgents.keys())}get size(){return this.mailboxes.size}clear(){this.mailboxes.clear(),this.messageHandlers.clear(),this.broadcastHandlers.clear(),this.domainAgents.clear(),this.compressedMessages.clear(),this.cognitiveRouter=null,this.cognitiveRouterInitialized=!1}isExpired(e,t){return!e.ttl||e.ttl<=0?!1:t>e.timestamp+e.ttl}toSnapshot(e){return{agentId:e.agentId,domain:e.domain,messages:[...e.messages],unreadCount:e.unreadCount,lastRead:e.lastRead}}ensureCognitiveRouter(){if(this.cognitiveRouterInitialized)return this.cognitiveRouter;if(this.cognitiveRouterInitialized=!0,!gt())return null;try{this.cognitiveRouter=mt()??null}catch{this.cognitiveRouter=null}return this.cognitiveRouter}compressViaCognitive(e){try{let t=this.ensureCognitiveRouter();if(!t)return e;let n=`${e.from}->${e.to}`,i=t.send(n,e.from,e.to,e.payload);return i.compressed&&i.compressedSize<i.originalSize?(this.compressedMessages.set(e.id,i),{...e,payload:i.payload}):e}catch{return e}}decompressMessages(e){let t=this.cognitiveRouter;return!t||this.compressedMessages.size===0?e:e.map(n=>{try{let i=this.compressedMessages.get(n.id);if(!i)return n;let r=t.receive(i);return this.compressedMessages.delete(n.id),{...n,payload:r}}catch{return n}})}getCognitiveRoutingStats(){return this.cognitiveRouter?this.cognitiveRouter.getStats():null}};import{randomUUID as Pt}from"node:crypto";rt();import{randomUUID as W}from"node:crypto";var V=class{spans=new Map;traceIndex=new Map;maxSpans;constructor(e=1e4){this.maxSpans=e}startTrace(e){let t=W(),n=W(),i={traceId:t,spanId:n},r=this.createSpan(i,e);return{context:i,span:r}}startSpan(e){let t=e.parentContext,n=t?.traceId??W(),i=W(),r={traceId:n,spanId:i,parentSpanId:t?.spanId,baggage:t?.baggage},s=this.createSpan(r,e);return{context:r,span:s}}completeSpan(e){let t=this.spans.get(e);t&&(t.endTime=Date.now(),t.status="completed")}failSpan(e,t){let n=this.spans.get(e);n&&(n.endTime=Date.now(),n.status="error",n.errorMessage=t)}getTrace(e){let t=this.traceIndex.get(e);return t?Array.from(t).map(n=>this.spans.get(n)).filter(n=>n!==void 0).sort((n,i)=>n.startTime-i.startTime):[]}getSpan(e){return this.spans.get(e)}getActiveSpans(){return Array.from(this.spans.values()).filter(e=>e.status==="active")}getStats(){let e=new Set,t=new Set;for(let[n,i]of this.traceIndex)Array.from(i).map(s=>this.spans.get(s)).filter(s=>s!==void 0).some(s=>s.status==="active")?e.add(n):t.add(n);return{totalSpans:this.spans.size,activeTraces:e.size,completedTraces:t.size}}purge(e){let t=Date.now()-e,n=0;for(let[i,r]of this.traceIndex){let s=Array.from(r).map(c=>this.spans.get(c)).filter(c=>c!==void 0),o=s.every(c=>c.status!=="active"),l=s.every(c=>(c.endTime??c.startTime)<t);if(o&&l){for(let c of r)this.spans.delete(c),n++;this.traceIndex.delete(i)}}return n}dispose(){this.spans.clear(),this.traceIndex.clear()}createSpan(e,t){this.spans.size>=this.maxSpans&&this.purge(6e4);let n={traceId:e.traceId,spanId:e.spanId,parentSpanId:e.parentSpanId,operationName:t.operationName,agentId:t.agentId,domain:t.domain,startTime:Date.now(),tags:t.tags??{},status:"active"};this.spans.set(e.spanId,n);let i=this.traceIndex.get(e.traceId);return i||(i=new Set,this.traceIndex.set(e.traceId,i)),i.add(e.spanId),n}},Nn="trace:";function K(a){return`${Nn}${JSON.stringify({traceId:a.traceId,spanId:a.spanId,parentSpanId:a.parentSpanId})}`}function xe(a){return new V(a)}var Y=class{mailbox;config;teams=new Map;registeredAgents=new Set;agentDomains=new Map;subscriptions=new Map;cleanupTimer=null;initialized=!1;constructor(e,t){this.mailbox=e??new H,this.config={...De,...t}}initialize(e){this.initialized||(e&&Object.assign(this.config,e),this.config.cleanupIntervalMs>0&&(this.cleanupTimer=setInterval(()=>{this.performCleanup()},this.config.cleanupIntervalMs)),this.initialized=!0)}shutdown(){this.cleanupTimer&&(clearInterval(this.cleanupTimer),this.cleanupTimer=null),this.mailbox.clear(),this.teams.clear(),this.registeredAgents.clear(),this.agentDomains.clear(),this.subscriptions.clear(),this.initialized=!1}createTeam(e){if(this.teams.has(e.domain))throw new Error(`Team already exists for domain '${e.domain}'. Use getTeamStatus() to inspect the existing team.`);let t={domain:e.domain,leadAgentId:e.leadAgentId,maxTeammates:e.maxTeammates,teammateIds:[...e.teammateIds],autoAssignEnabled:e.autoAssignEnabled};this.teams.set(e.domain,t),this.registerAgent(e.leadAgentId,e.domain);for(let n of e.teammateIds)this.registerAgent(n,e.domain)}getTeamStatus(e){let t=this.teams.get(e);if(!t)return;let n=[t.leadAgentId,...t.teammateIds],i=n.filter(s=>this.mailbox.peek(s)===0),r=0;for(let s of n)r+=this.mailbox.peek(s);return{domain:t.domain,leadAgentId:t.leadAgentId,teammateIds:[...t.teammateIds],activeAgentCount:n.filter(s=>this.registeredAgents.has(s)).length,idleAgentIds:i,totalUnreadMessages:r}}registerAgent(e,t){if(this.registeredAgents.has(e))return;this.registeredAgents.add(e),this.agentDomains.set(e,t),this.mailbox.createMailbox(e,t);let n=this.teams.get(t);n&&n.autoAssignEnabled&&e!==n.leadAgentId&&!n.teammateIds.includes(e)&&n.teammateIds.length<n.maxTeammates&&n.teammateIds.push(e)}unregisterAgent(e){if(!this.registeredAgents.has(e))return!1;let t=this.agentDomains.get(e);if(t){let n=this.teams.get(t);if(n){let i=n.teammateIds.indexOf(e);i>=0&&n.teammateIds.splice(i,1)}}return this.mailbox.deleteMailbox(e),this.subscriptions.delete(e),this.registeredAgents.delete(e),this.agentDomains.delete(e),!0}sendMessage(e,t,n,i,r){this.validateAgent(e,"sender"),this.validateAgent(t,"recipient");let s=this.agentDomains.get(e),o=r?.traceContext?K(r.traceContext):r?.correlationId,l={id:Pt(),from:e,to:t,domain:r?.domain??s,type:n,payload:i,timestamp:Date.now(),correlationId:o,replyTo:r?.replyTo,ttl:r?.ttl??(this.config.defaultTtlMs>0?this.config.defaultTtlMs:void 0)};return this.mailbox.send(l),this.notifySubscribers(t,l),l}broadcast(e,t,n,i){let r=i?.from??"__system__";r!=="__system__"&&this.validateAgent(r,"broadcast sender");let s=i?.traceContext?K(i.traceContext):i?.correlationId,o={id:Pt(),from:r,to:"broadcast",domain:e,type:t,payload:n,timestamp:Date.now(),correlationId:s,ttl:i?.ttl??(this.config.defaultTtlMs>0?this.config.defaultTtlMs:void 0)};this.mailbox.broadcast(e,o);let l=this.mailbox.getAgentsInDomain(e);for(let c of l)c!==r&&this.notifySubscribers(c,o);return o}onMessage(e,t){this.validateAgent(e,"subscription target");let n=this.subscriptions.get(e);return n||(n=[],this.subscriptions.set(e,n)),n.push(t),()=>{let i=this.subscriptions.get(e);if(i){let r=i.indexOf(t);r>=0&&i.splice(r,1)}}}getIdleAgents(e){let t=[],n=e?this.mailbox.getAgentsInDomain(e):Array.from(this.registeredAgents);for(let i of n)this.mailbox.peek(i)===0&&t.push(i);return t}isRegistered(e){return this.registeredAgents.has(e)}getAgentDomain(e){return this.agentDomains.get(e)}getRegisteredAgents(){return Array.from(this.registeredAgents)}getUnreadCount(e){return this.mailbox.peek(e)}receiveMessages(e){return this.mailbox.receive(e)}getMailboxService(){return this.mailbox}validateAgent(e,t){if(!this.registeredAgents.has(e))throw new Error(`Unknown ${t} '${e}'. Register the agent first with registerAgent() or createTeam().`)}notifySubscribers(e,t){let n=this.subscriptions.get(e);if(!(!n||n.length===0))for(let i of n)try{i(t)}catch{}}performCleanup(){let e=this.config.defaultTtlMs>0?this.config.defaultTtlMs*10:this.config.cleanupIntervalMs*60;this.mailbox.cleanup(e)}};function Ae(a){return new Y(void 0,a)}var Ft={maxActiveTeams:13,defaultTeamSize:3,autoScaleEnabled:!1,scaleUpThreshold:10,scaleDownIdleMs:6e4},Z=class a{static SYSTEM_AGENT_ID="__dtm_system__";static SYSTEM_DOMAIN="__system__";adapter;config;teams=new Map;systemAgentRegistered=!1;constructor(e,t){this.adapter=e,this.config={...Ft,...t}}createDomainTeam(e,t,n){if(this.teams.has(e))throw new Error(`Domain team already exists for '${e}'. Use getDomainTeam() to inspect the existing team.`);if(this.teams.size>=this.config.maxActiveTeams)throw new Error(`Maximum active teams (${this.config.maxActiveTeams}) reached. Remove an existing team before creating a new one.`);let i=n?[...n]:[],r=this.getMaxTeamSize(e);i.length+1>r&&(i.length=r-1);let s=Date.now(),o={domain:e,leadAgentId:t,teammateIds:i,createdAt:s,taskCount:0,completedCount:0,lastActivity:new Map};o.lastActivity.set(t,s);for(let c of i)o.lastActivity.set(c,s);this.teams.set(e,o);let l={domain:e,leadAgentId:t,maxTeammates:r-1,teammateIds:i,autoAssignEnabled:!1};return this.adapter.createTeam(l),this.toSnapshot(o)}removeDomainTeam(e){let t=this.teams.get(e);if(!t)return!1;for(let n of[t.leadAgentId,...t.teammateIds])this.adapter.unregisterAgent(n);return this.teams.delete(e),!0}getDomainTeam(e){let t=this.teams.get(e);return t?this.toSnapshot(t):void 0}addTeammate(e,t){let n=this.teams.get(e);if(!n||t===n.leadAgentId||n.teammateIds.includes(t))return!1;let i=this.getMaxTeamSize(e);return 1+n.teammateIds.length>=i?!1:(n.teammateIds.push(t),n.lastActivity.set(t,Date.now()),this.adapter.registerAgent(t,e),!0)}listDomainTeams(){return Array.from(this.teams.values(),e=>this.toSnapshot(e))}assignTaskToTeam(e,t,n){let i=this.teams.get(e);return i?(this.ensureSystemAgent(),this.adapter.sendMessage(a.SYSTEM_AGENT_ID,i.leadAgentId,"task-assignment",{taskId:t,payload:n},{domain:e}),i.taskCount++,i.lastActivity.set(i.leadAgentId,Date.now()),!0):!1}broadcastToDomain(e,t,n){let i=this.teams.get(e);if(!i)throw new Error(`No domain team found for '${e}'. Create a team first with createDomainTeam().`);this.adapter.broadcast(e,t,n,{from:"__system__"});let r=Date.now();i.lastActivity.set(i.leadAgentId,r);for(let s of i.teammateIds)i.lastActivity.set(s,r)}getTeamHealth(e){let t=this.teams.get(e);if(!t)return;let n=[t.leadAgentId,...t.teammateIds],i=n.length,r=0,s=0,o=0;for(let c of n)if(this.adapter.isRegistered(c)){r++;let u=this.adapter.getUnreadCount(c);o+=u,u===0&&s++}let l=t.taskCount-t.completedCount;return{domain:e,teamSize:i,activeAgents:r,idleAgents:s,pendingMessages:o,tasksPending:l,tasksCompleted:t.completedCount,healthy:r>0&&r===i&&l<this.config.scaleUpThreshold*2}}scaleTeam(e,t){let n=this.teams.get(e);if(!n)throw new Error(`No domain team found for '${e}'. Create a team first with createDomainTeam().`);let i=Math.max(this.getMaxTeamSize(e),t,this.config.maxActiveTeams),r=Math.max(1,Math.min(t,i)),s=1+n.teammateIds.length,o=[],l=[];if(r>s){let c=r-s;for(let u=0;u<c;u++){let d=`${e}-teammate-${Date.now()}-${u}`;n.teammateIds.push(d),n.lastActivity.set(d,Date.now()),this.adapter.registerAgent(d,e),o.push(d)}}else if(r<s){let c=s-r;for(let u=0;u<c;u++){let d=n.teammateIds.pop();d&&(n.lastActivity.delete(d),this.adapter.unregisterAgent(d),l.push(d))}}return{domain:e,previousSize:s,newSize:1+n.teammateIds.length,addedAgents:o,removedAgents:l}}getIdleTeammates(e){if(e){let n=this.teams.get(e);return n?this.getIdleAgentsForTeam(n):[]}let t=[];for(let n of this.teams.values())t.push(...this.getIdleAgentsForTeam(n));return t}rebalance(){let e=[],t=new Set,n=Array.from(this.teams.values(),s=>{let o=this.getTargetTeamSize(s.domain),l=1+s.teammateIds.length,c=this.getIdleAgentsForTeam(s).filter(u=>u!==s.leadAgentId);return{domain:s.domain,team:s,currentSize:l,targetSize:o,idleTeammates:c}}),i=n.filter(s=>s.currentSize>s.targetSize&&s.idleTeammates.length>0).sort((s,o)=>o.currentSize-o.targetSize-(s.currentSize-s.targetSize)),r=n.filter(s=>s.currentSize<s.targetSize).sort((s,o)=>s.currentSize-s.targetSize-(o.currentSize-o.targetSize));for(let s of i)for(let o of r){if(o.currentSize>=o.targetSize)continue;if(s.idleTeammates.length===0)break;if(o.currentSize>=this.getMaxTeamSize(o.domain))continue;let l=s.idleTeammates.shift(),c=s.team.teammateIds.indexOf(l);c>=0&&s.team.teammateIds.splice(c,1),s.team.lastActivity.delete(l),s.currentSize--,this.adapter.unregisterAgent(l),this.adapter.registerAgent(l,o.domain),o.team.teammateIds.push(l),o.team.lastActivity.set(l,Date.now()),o.currentSize++,e.push({agentId:l,fromDomain:s.domain,toDomain:o.domain}),t.add(s.domain),t.add(o.domain)}return{moves:e,teamsAffected:t.size}}dispose(){for(let e of this.teams.values())for(let t of[e.leadAgentId,...e.teammateIds])this.adapter.unregisterAgent(t);this.teams.clear(),this.systemAgentRegistered&&(this.adapter.unregisterAgent(a.SYSTEM_AGENT_ID),this.systemAgentRegistered=!1)}markTaskCompleted(e){let t=this.teams.get(e);return t?(t.completedCount<t.taskCount&&t.completedCount++,!0):!1}ensureSystemAgent(){this.systemAgentRegistered||(this.adapter.registerAgent(a.SYSTEM_AGENT_ID,a.SYSTEM_DOMAIN),this.systemAgentRegistered=!0)}getMaxTeamSize(e){return this.config.domainTeamSizes&&e in this.config.domainTeamSizes?this.config.domainTeamSizes[e]:this.config.defaultTeamSize}getTargetTeamSize(e){return this.getMaxTeamSize(e)}getIdleAgentsForTeam(e){let t=[];for(let n of[e.leadAgentId,...e.teammateIds])this.adapter.isRegistered(n)&&this.adapter.getUnreadCount(n)===0&&t.push(n);return t}toSnapshot(e){return{domain:e.domain,leadAgentId:e.leadAgentId,teammateIds:[...e.teammateIds],createdAt:e.createdAt,taskCount:e.taskCount,completedCount:e.completedCount}}};function Ee(a,e){return new Z(a,e)}k();var J={failureThreshold:3,resetTimeoutMs:6e4,halfOpenSuccessThreshold:2,failureWindowMs:12e4,cascadeEnabled:!1,cascadeTargets:void 0},X=class extends Error{domain;retryAfterMs;constructor(e,t){let n=t!=null?` (retry after ${t}ms)`:"";super(`Circuit breaker is open for domain '${e}'${n}`),this.name="DomainCircuitOpenError",this.domain=e,this.retryAfterMs=t}},x=class{state="closed";failures=[];totalRequests=0;totalSuccesses=0;totalFailures=0;rejectedCount=0;lastFailureTime;lastSuccessTime;openedAt;halfOpenSuccesses=0;config;stateChangeHandlers=new Set;domain;constructor(e,t){this.domain=e,this.config={...J,...t}}canExecute(){let e=this.getState();return e==="closed"?!0:e!=="open"}async execute(e){if(this.totalRequests++,this.getState()==="open")throw this.rejectedCount++,this.emitEvent({type:"request-rejected",domain:this.domain,timestamp:Date.now(),metadata:{retryAfterMs:this.getTimeUntilTransition()}}),new X(this.domain,this.getTimeUntilTransition());try{let n=await e();return this.recordSuccess(),n}catch(n){throw this.recordFailure(tt(n)),n}}recordSuccess(){this.totalSuccesses++,this.lastSuccessTime=Date.now(),this.getState()==="half-open"&&(this.halfOpenSuccesses++,console.log(`[DomainCircuitBreaker:${this.domain}] Half-open success ${this.halfOpenSuccesses}/${this.config.halfOpenSuccessThreshold}`),this.halfOpenSuccesses>=this.config.halfOpenSuccessThreshold&&this.transitionTo("closed"))}recordFailure(e){this.totalFailures++,this.lastFailureTime=Date.now(),this.failures.push({timestamp:Date.now(),message:e.message}),this.cleanOldFailures();let t=this.getState();if(t==="half-open"){console.log(`[DomainCircuitBreaker:${this.domain}] Failure in half-open state, re-opening`),this.transitionTo("open");return}t==="closed"&&this.failures.length>=this.config.failureThreshold&&(console.log(`[DomainCircuitBreaker:${this.domain}] Failure threshold reached (${this.failures.length}/${this.config.failureThreshold}), opening circuit`),this.transitionTo("open"))}getState(){return this.state==="open"&&this.openedAt!=null&&Date.now()-this.openedAt>=this.config.resetTimeoutMs&&this.transitionTo("half-open"),this.state}getStats(){let e=this.getState();return{domain:this.domain,state:e,totalRequests:this.totalRequests,successCount:this.totalSuccesses,failureCount:this.totalFailures,rejectedCount:this.rejectedCount,lastFailureTime:this.lastFailureTime,lastSuccessTime:this.lastSuccessTime,openedAt:this.openedAt,timeUntilHalfOpen:e==="open"?this.getTimeUntilTransition():void 0,consecutiveSuccesses:this.halfOpenSuccesses}}reset(){let e=this.state;this.state="closed",this.failures=[],this.halfOpenSuccesses=0,this.openedAt=void 0,e!=="closed"&&(console.log(`[DomainCircuitBreaker:${this.domain}] Manually reset from '${e}' to 'closed'`),this.emitEvent({type:"state-change",domain:this.domain,previousState:e,newState:"closed",timestamp:Date.now(),metadata:{trigger:"manual-reset"}}))}forceOpen(){console.log(`[DomainCircuitBreaker:${this.domain}] Force-opening circuit`),this.transitionTo("open")}getRecentFailures(e=5){return this.failures.slice(-e).map(t=>`[${new Date(t.timestamp).toISOString()}] ${t.message}`)}onStateChange(e){return this.stateChangeHandlers.add(e),()=>{this.stateChangeHandlers.delete(e)}}getConfig(){return this.config}transitionTo(e){let t=this.state;if(t!==e){switch(this.state=e,e){case"open":this.openedAt=Date.now(),this.halfOpenSuccesses=0;break;case"half-open":this.halfOpenSuccesses=0,console.log(`[DomainCircuitBreaker:${this.domain}] Transitioning to half-open, allowing probe requests`);break;case"closed":this.failures=[],this.openedAt=void 0,this.halfOpenSuccesses=0,console.log(`[DomainCircuitBreaker:${this.domain}] Circuit closed, domain is healthy`);break}this.emitEvent({type:"state-change",domain:this.domain,previousState:t,newState:e,timestamp:Date.now()})}}cleanOldFailures(){let e=Date.now()-this.config.failureWindowMs;this.failures=this.failures.filter(t=>t.timestamp>e)}getTimeUntilTransition(){if(this.state==="open"&&this.openedAt!=null){let e=Date.now()-this.openedAt,t=this.config.resetTimeoutMs-e;return Math.max(0,t)}}emitEvent(e){for(let t of this.stateChangeHandlers)try{t(e)}catch(n){console.log(`[DomainCircuitBreaker:${this.domain}] State change handler error: ${h(n)}`)}}};k();var Me={critical:{failureThreshold:2,resetTimeoutMs:3e4,halfOpenSuccessThreshold:2,failureWindowMs:6e4,cascadeEnabled:!1,cascadeTargets:void 0},standard:{failureThreshold:3,resetTimeoutMs:6e4,halfOpenSuccessThreshold:2,failureWindowMs:12e4,cascadeEnabled:!1,cascadeTargets:void 0},lenient:{failureThreshold:5,resetTimeoutMs:12e4,halfOpenSuccessThreshold:3,failureWindowMs:3e5,cascadeEnabled:!1,cascadeTargets:void 0}},Ht={"test-generation":"critical","test-execution":"critical","coverage-analysis":"critical","quality-assessment":"critical","security-compliance":"critical","defect-intelligence":"standard","requirements-validation":"standard","code-intelligence":"standard","contract-testing":"standard","visual-accessibility":"lenient","chaos-resilience":"lenient","learning-optimization":"lenient","enterprise-integration":"standard"},O=class{breakers=new Map;defaultConfig;globalHandlers=new Set;constructor(e){this.defaultConfig={...J,...e}}getBreaker(e){let t=this.breakers.get(e);if(!t){let n=Ht[e],i=n?{...this.defaultConfig,...Me[n]}:this.defaultConfig;t=new x(e,i),this.breakers.set(e,t),t.onStateChange(r=>this.handleBreakerEvent(r)),console.log(`[DomainBreakerRegistry] Created breaker for '${e}' (criticality: ${n??"default"})`)}return t}configureBreaker(e,t){let n={...this.defaultConfig,...t},i=new x(e,n);i.onStateChange(r=>this.handleBreakerEvent(r)),this.breakers.set(e,i),console.log(`[DomainBreakerRegistry] Reconfigured breaker for '${e}'`)}configureCriticality(e,t){let n=Me[t];this.configureBreaker(e,n),console.log(`[DomainBreakerRegistry] Set '${e}' criticality to '${t}'`)}canExecuteInDomain(e){return this.getBreaker(e).canExecute()}async executeInDomain(e,t){return this.getBreaker(e).execute(t)}getAllStats(){let e=new Map;for(let[t,n]of this.breakers)e.set(t,n.getStats());return e}getOpenDomains(){let e=[];for(let[t,n]of this.breakers)n.getState()==="open"&&e.push(t);return e}getHealthyDomains(){let e=[];for(let[t,n]of this.breakers)n.getState()==="closed"&&e.push(t);return e}getDegradedDomains(){let e=[];for(let[t,n]of this.breakers)n.getState()==="half-open"&&e.push(t);return e}getHealthSummary(){let e=0,t=0,n=0;for(let i of this.breakers.values())switch(i.getState()){case"closed":e++;break;case"half-open":t++;break;case"open":n++;break}return{healthy:e,degraded:t,open:n,total:this.breakers.size}}resetAll(){for(let e of this.breakers.values())e.reset();console.log(`[DomainBreakerRegistry] Reset all ${this.breakers.size} breakers`)}reset(e){let t=this.breakers.get(e);t&&t.reset()}onAnyStateChange(e){return this.globalHandlers.add(e),()=>{this.globalHandlers.delete(e)}}handleBreakerEvent(e){for(let t of this.globalHandlers)try{t(e)}catch(n){console.log(`[DomainBreakerRegistry] Global handler error: ${h(n)}`)}e.type==="state-change"&&e.newState==="open"&&this.propagateCascade(e.domain)}propagateCascade(e){let t=this.breakers.get(e);if(!t)return;let n=t.getConfig();if(!(!n.cascadeEnabled||!n.cascadeTargets?.length))for(let i of n.cascadeTargets){if(i===e)continue;let r=this.getBreaker(i);if(r.getState()!=="open"){console.log(`[DomainBreakerRegistry] Cascading open from '${e}' to '${i}'`),r.forceOpen();let o={type:"cascade-triggered",domain:i,timestamp:Date.now(),metadata:{sourceDomain:e,cascadedFrom:e}};for(let l of this.globalHandlers)try{l(o)}catch(c){console.log(`[DomainBreakerRegistry] Cascade event handler error: ${h(c)}`)}}}}};function Ot(a){return new O(a)}var A=["smoke","standard","deep","crisis"];var N=["test-generation","test-execution","coverage-analysis","quality-assessment","defect-intelligence","requirements-validation","code-intelligence","security-compliance","contract-testing","visual-accessibility","chaos-resilience","learning-optimization","enterprise-integration"],ee=["test-generation","coverage-analysis","quality-assessment"],we={"test-generation":["generator","specialist"],"test-execution":["tester","coordinator"],"coverage-analysis":["analyzer","specialist"],"quality-assessment":["analyzer","validator"],"defect-intelligence":["analyzer","specialist"],"requirements-validation":["validator","reviewer"],"code-intelligence":["analyzer","specialist"],"security-compliance":["analyzer","validator"],"contract-testing":["tester","validator"],"visual-accessibility":["tester","validator"],"chaos-resilience":["tester","specialist"],"learning-optimization":["optimizer","specialist"],"enterprise-integration":["coordinator","validator"]},Ln={tier:"smoke",maxAgents:3,agentTeamsEnabled:!1,domains:["test-execution","quality-assessment"],estimatedCost:"minimal",description:"Lightweight smoke test on every commit. Runs core test execution and quality assessment with minimal agent count to catch obvious regressions quickly.",triggers:[{type:"commit"},{type:"schedule",conditions:{interval:"hourly"}}]},Qn={tier:"standard",maxAgents:7,agentTeamsEnabled:!1,domains:["test-generation","test-execution","coverage-analysis","quality-assessment","security-compliance"],estimatedCost:"moderate",description:"Standard validation for pull requests. Covers test generation, execution, coverage, quality, and security across up to 7 agents. Agent teams are optional.",triggers:[{type:"pr"},{type:"manual"}]},Bn={tier:"deep",maxAgents:15,agentTeamsEnabled:!0,domains:[...N],estimatedCost:"high",description:"Deep validation for pre-release and critical path changes. Activates all 13 domains with up to 15 agents and full agent team collaboration.",triggers:[{type:"release"},{type:"pr",conditions:{criticalPath:!0}},{type:"manual",conditions:{requestedTier:"deep"}}]},$n={tier:"crisis",maxAgents:15,agentTeamsEnabled:!0,domains:[...N],estimatedCost:"unlimited",description:"Crisis response for production incidents. All domains active with competing hypotheses enabled. Unlimited cost budget to resolve incidents as fast as possible.",triggers:[{type:"incident"},{type:"manual",conditions:{requestedTier:"crisis"}}]},Ie={smoke:Ln,standard:Qn,deep:Bn,crisis:$n};var Un=["password","secret","token","crypto","auth","credential","jwt","oauth"],zn=["async","await","Promise","setTimeout","setInterval","Worker","mutex","lock"],qn={securityKeywords:Un,concurrencyKeywords:zn,enableDimensionOverrides:!1};function Gn(a,e){let t=a+e;return t<=8?"trivial":t<=20?"simple":t<=40?"moderate":t<=70?"complex":"critical"}var L=class{config;constructor(e){this.config={...qn,...e}}analyzeExtendedDimensions(e){let t=e.split(`
167
- `),n=Math.max(t.length,1),i=this.countKeywordLines(t,this.config.securityKeywords),r=te(i/n,0,1),s=this.countKeywordLines(t,this.config.concurrencyKeywords),o=te(s/n,0,1),l=this.countPatternMatches(e,/\.(map|filter|reduce|flatMap|forEach)\s*\(/g),c=te(l/n,0,1),u=this.countPatternMatches(e,/^export\s/gm),d=Math.max(this.countPatternMatches(e,/^(export\s+)?(const|let|var|function|class|interface|type|enum)\s/gm),1),m=te(u/d,0,1);return{securitySurface:r,concurrency:o,dataFlow:c,apiSurface:m}}compose(e,t,n){let i=Gn(e.cyclomatic,e.cognitive),r=this.analyzeExtendedDimensions(n),s=[],o=[],l;switch(i){case"trivial":case"simple":s.push({agentType:"qe-test-generator",priority:1,reason:`${i} complexity \u2014 basic test generation sufficient`}),o.push("unit"),l="haiku";break;case"moderate":s.push({agentType:"qe-test-generator",priority:1,reason:"Moderate complexity requires thorough test generation"},{agentType:"qe-code-intelligence",priority:2,reason:"Moderate complexity benefits from code intelligence analysis"}),o.push("unit","integration"),l="sonnet";break;case"complex":s.push({agentType:"qe-test-generator",priority:1,reason:"Complex code needs comprehensive test generation"},{agentType:"qe-security-scanner",priority:2,reason:"High complexity warrants security analysis"},{agentType:"qe-code-intelligence",priority:2,reason:"Complex code requires deep code intelligence"}),o.push("unit","integration","security"),l="sonnet";break;case"critical":s.push({agentType:"qe-test-generator",priority:1,reason:"Critical complexity demands full test generation"},{agentType:"qe-security-scanner",priority:1,reason:"Critical complexity mandates security scanning"},{agentType:"qe-code-intelligence",priority:1,reason:"Critical complexity requires deep analysis"},{agentType:"qe-chaos-resilience",priority:2,reason:"Critical systems need chaos/resilience testing"},{agentType:"qe-performance",priority:2,reason:"Critical complexity warrants performance analysis"}),o.push("unit","integration","security","chaos","performance"),l="opus";break}return r.securitySurface>.3&&(s.some(c=>c.agentType==="qe-security-scanner")||s.push({agentType:"qe-security-scanner",priority:2,reason:`High security surface (${(r.securitySurface*100).toFixed(0)}%) \u2014 security scanning recommended`}),o.includes("security")||o.push("security")),r.concurrency>.3&&(s.some(c=>c.agentType==="qe-chaos-resilience")||s.push({agentType:"qe-chaos-resilience",priority:2,reason:`High concurrency (${(r.concurrency*100).toFixed(0)}%) \u2014 chaos/resilience testing recommended`}),o.includes("chaos")||o.push("chaos")),r.apiSurface>.5&&(o.includes("integration")||o.push("integration")),s.sort((c,u)=>c.priority-u.priority),{agents:s,testTypes:o,recommendedTier:l,complexityCategory:i}}countKeywordLines(e,t){let n=0;for(let i of e)for(let r of t)if(i.includes(r)){n++;break}return n}countPatternMatches(e,t){let n=e.match(t);return n?n.length:0}};function te(a,e,t){return Math.max(e,Math.min(t,a))}var Nt=200,Lt=10,Qt=3,ne=class{configs;history=[];escalationCount=0;deescalationCount=0;constructor(e){this.configs={...Ie,...e}}selectTier(e){let t,n;if(e.manualOverride)return t=e.manualOverride,n=`Manual override to "${t}" tier`,this.buildResult(t,n,e);if(e.trigger==="incident"||e.isHotfix)return t="crisis",n=e.isHotfix?"Hotfix deployment triggers crisis-level validation":"Production incident triggers crisis-level response",this.buildResult(t,n,e);if(e.trigger==="release")return t="deep",n="Pre-release validation requires deep tier across all domains",this.buildResult(t,n,e);if(e.trigger==="pr"){let i=e.changedFiles!==void 0&&e.changedFiles>Lt,r=e.affectedDomains!==void 0&&e.affectedDomains.length>Qt;if(i||r){t="deep";let s=[];return i&&s.push(`>${Lt} changed files (${e.changedFiles})`),r&&s.push(`>${Qt} affected domains (${e.affectedDomains.length})`),n=`PR escalated to deep tier: ${s.join(" and ")}`,this.buildResult(t,n,e)}return t="standard",n="Pull request triggers standard tier validation",this.buildResult(t,n,e)}return t="smoke",n=e.trigger==="commit"?"Commit triggers lightweight smoke validation":`Trigger "${e.trigger}" defaults to smoke tier`,this.buildResult(t,n,e)}allocateAgents(e,t){let n=this.resolveTargetDomains(e,t);if(n.length===0)return[];let i=e.maxAgents;return n.length>=i?this.allocateWithPriority(n,i):this.allocateWithSurplus(n,i)}escalate(e,t){let n=A.indexOf(e),i=Math.min(n+1,A.length-1),r=A[i],s=e!==r,o=s?`Escalated from "${e}" to "${r}": ${t}`:`Already at maximum tier "${e}", cannot escalate further`;return s&&this.escalationCount++,this.buildResult(r,o,{trigger:"manual"})}deescalate(e){let t=A.indexOf(e),n=Math.max(t-1,0),i=A[n],r=e!==i,s=r?`De-escalated from "${e}" to "${i}"`:`Already at minimum tier "${e}", cannot de-escalate further`;return r&&this.deescalationCount++,this.buildResult(i,s,{trigger:"manual"})}getStats(){let e={smoke:0,standard:0,deep:0,crisis:0};for(let t of this.history)e[t.tier]++;return{totalSelections:this.history.length,selectionsByTier:e,escalationCount:this.escalationCount,deescalationCount:this.deescalationCount,recentSelections:[...this.history].slice(-20)}}_teamComposer;setTeamComposer(e){this._teamComposer=e}selectTierWithComposition(e,t,n){let i=this.selectTier(e);if(!t||!n)return{...i,composition:void 0};let s=(this._teamComposer??new L).compose(t,i.selectedTier,n);return{...i,composition:s}}buildResult(e,t,n){let i=this.configs[e],r=this.allocateAgents(i,n.affectedDomains),s={tier:e,reason:t,timestamp:Date.now(),trigger:n.trigger};return this.history.push(s),this.history.length>Nt&&this.history.splice(0,this.history.length-Nt),{selectedTier:e,config:i,reason:t,agentAllocation:r}}resolveTargetDomains(e,t){let n=e.domains.includes("all")?N:e.domains;if(!t||t.length===0)return[...n];let i=new Set(n),r=t.filter(s=>i.has(s));return r.length>0?r:[...n]}allocateWithPriority(e,t){let n=new Set(ee),i=[],r=t,s=e.filter(l=>n.has(l)),o=e.filter(l=>!n.has(l));for(let l of s){if(r<=0)break;i.push(this.createAllocation(l,1)),r--}for(let l of o){if(r<=0)break;i.push(this.createAllocation(l,1)),r--}return i}allocateWithSurplus(e,t){let n=new Set(ee),i=new Map;for(let u of e)i.set(u,1);let r=t-e.length,s=e.filter(u=>n.has(u)),o=e.filter(u=>!n.has(u)),l=0;for(;r>0&&s.length>0;){let u=s[l%s.length];if(i.set(u,(i.get(u)??0)+1),r--,l++,l>=s.length*2)break}let c=0;for(;r>0&&o.length>0;){let u=o[c%o.length];i.set(u,(i.get(u)??0)+1),r--,c++}for(;r>0&&s.length>0;){let u=s[l%s.length];i.set(u,(i.get(u)??0)+1),r--,l++}return e.map(u=>this.createAllocation(u,i.get(u)??1))}createAllocation(e,t){let n=we[e]??["specialist"];return{domain:e,agentCount:t,agentTypes:[...n]}}};function Re(a){return new ne(a)}k();var re={enabled:!0,minQualityScore:.6,rejectOnFailure:!0,gates:[{name:"test-pass-rate",type:"test-pass-rate",threshold:.8,weight:.35,required:!0},{name:"coverage",type:"coverage",threshold:0,weight:.25,required:!1},{name:"security",type:"security",threshold:0,weight:.25,required:!0},{name:"performance",type:"performance",threshold:3e4,weight:.15,required:!1}]},ie=class{config;constructor(e={}){this.config={...re,...e},e.gates&&(this.config={...this.config,gates:e.gates})}evaluate(e){if(!this.config.enabled)return console.log("[QualityGateEnforcer] Gates disabled, auto-passing"),{passed:!0,score:1,exitCode:0,gates:[],reason:"Quality gates disabled"};if(e.status==="failed")return console.log(`[QualityGateEnforcer] Task ${e.taskId} has failed status`),{passed:!1,score:0,exitCode:this.config.rejectOnFailure?2:0,gates:[],reason:"Task reported failed status"};let t=[],n=[];for(let d of this.config.gates){let m=this.checkGate(d,e);t.push(m),!m.passed&&d.required&&n.push(d.name)}let i=this.config.gates.reduce((d,m)=>d+m.weight,0),r=i>0?t.reduce((d,m)=>{let p=this.config.gates.find(U=>U.name===m.gate);if(!p)return d;let f=m.passed?1:this.computePartialScore(m);return d+f*(p.weight/i)},0):1,s=n.length>0,o=r<this.config.minQualityScore,l=!s&&!o,c;if(!l){let d=[];s&&d.push(`Required gates failed: ${n.join(", ")}`),o&&d.push(`Score ${r.toFixed(3)} below minimum ${this.config.minQualityScore}`),c=d.join("; ")}let u=!l&&this.config.rejectOnFailure?2:0;return console.log(`[QualityGateEnforcer] Task ${e.taskId}: ${l?"PASSED":"FAILED"} (score=${r.toFixed(3)}, gates=${t.filter(d=>d.passed).length}/${t.length})`),{passed:l,score:r,exitCode:u,gates:t,reason:c}}getConfig(){return{...this.config}}checkGate(e,t){let n=this.extractMetricForGate(e,t),i=this.meetsThreshold(e,n);return{gate:e.name,passed:i,actual:n,threshold:e.threshold,weight:e.weight}}extractMetricForGate(e,t){let n=t.metrics;switch(e.type){case"coverage":return n.coverageChange??0;case"test-pass-rate":{let i=n.testsPassed??0,r=n.testsFailed??0,s=i+r;return s>0?i/s:1}case"security":return n.securityIssues??0;case"performance":return n.performanceMs??t.duration;case"custom":{let i=t.output[e.name];return typeof i=="number"?i:0}default:return 0}}meetsThreshold(e,t){switch(e.type){case"security":return t<=e.threshold;case"performance":return t<=e.threshold;default:return t>=e.threshold}}computePartialScore(e){let t=this.config.gates.find(n=>n.name===e.gate);if(!t)return 0;switch(t.type){case"security":case"performance":{if(t.threshold===0)return 0;let n=t.threshold/e.actual;return Math.max(0,Math.min(1,n))}default:{if(t.threshold===0)return 1;let n=e.actual/t.threshold;return Math.max(0,Math.min(1,n))}}}};var jn={trainPatterns:!0,qualityGate:re,patternDomains:["test-generation","coverage-analysis","security-compliance","quality-assessment","defect-intelligence","contract-testing"],emitEvents:!0,maxPatternsPerTask:5},Wn={"test-generation":{types:["test-template","assertion-pattern","mock-pattern"],contentKeys:["testCode","template","assertions","mocks"],baseConfidence:.6},"coverage-analysis":{types:["coverage-strategy","mutation-strategy"],contentKeys:["coverageReport","gaps","strategy","recommendations"],baseConfidence:.55},"security-compliance":{types:["security-pattern","vulnerability-fix"],contentKeys:["findings","fixes","recommendations","rules"],baseConfidence:.5},"quality-assessment":{types:["quality-rule","threshold-pattern"],contentKeys:["rules","thresholds","assessments"],baseConfidence:.5},"defect-intelligence":{types:["defect-pattern","root-cause"],contentKeys:["rootCause","pattern","prediction","analysis"],baseConfidence:.45},"contract-testing":{types:["api-contract","schema-pattern"],contentKeys:["contract","schema","endpoints","violations"],baseConfidence:.55},"test-execution":{types:["flaky-fix","retry-strategy"],contentKeys:["flakyTests","retryPolicy","stabilization"],baseConfidence:.5},"visual-accessibility":{types:["visual-baseline","a11y-check"],contentKeys:["baseline","violations","wcagResults"],baseConfidence:.5},"chaos-resilience":{types:["perf-benchmark","resilience-pattern"],contentKeys:["benchmark","faultInjection","recoveryTime"],baseConfidence:.45}},se=class{config;gateEnforcer;patternStore;completionHandlers=new Set;stats={totalProcessed:0,accepted:0,rejected:0,patternsExtracted:0};constructor(e={},t){this.config={...jn,...e},e.qualityGate&&(this.config={...this.config,qualityGate:{...re,...e.qualityGate}}),this.gateEnforcer=new ie(this.config.qualityGate),this.patternStore=t??null}async onTaskCompleted(e){this.stats.totalProcessed++,console.log(`[TaskCompletedHook] Processing task ${e.taskId} (agent=${e.agentId}, domain=${e.domain}, status=${e.status})`);let t=this.gateEnforcer.evaluate(e);if(!t.passed&&this.config.qualityGate.rejectOnFailure){this.stats.rejected++;let r={action:"reject",exitCode:2,reason:t.reason||"Quality gate check failed",gateResult:t};return console.log(`[TaskCompletedHook] Task ${e.taskId} REJECTED: ${r.reason}`),this.emitCompletion(e.taskId,r),r}let n=0;if(this.config.trainPatterns&&this.patternStore){let r=this.extractPatterns(e);n=await this.storePatterns(r,e),this.stats.patternsExtracted+=n}this.stats.accepted++;let i={action:"accept",patternsExtracted:n};return console.log(`[TaskCompletedHook] Task ${e.taskId} ACCEPTED (score=${t.score.toFixed(3)}, patterns=${n})`),this.emitCompletion(e.taskId,i),i}extractPatterns(e){let t=[],n=e.domain;if(!this.config.patternDomains.includes(n))return t;let i=Wn[n];if(!i)return this.extractGenericPatterns(e);let r=this.computeConfidenceBoost(e.metrics);for(let s of i.types){if(t.length>=this.config.maxPatternsPerTask)break;for(let o of i.contentKeys){if(t.length>=this.config.maxPatternsPerTask)break;let l=e.output[o];if(l==null)continue;let c=typeof l=="string"?l:JSON.stringify(l);if(c.length<10)continue;let u=Math.min(1,i.baseConfidence+r);t.push({domain:n,type:s,content:c,confidence:u,metadata:{sourceTaskId:e.taskId,sourceAgent:e.agentId,taskType:e.type,duration:e.duration,extractedFrom:o,timestamp:e.timestamp}})}}return t}onCompletion(e){this.completionHandlers.add(e)}offCompletion(e){this.completionHandlers.delete(e)}getStats(){return{...this.stats}}resetStats(){this.stats={totalProcessed:0,accepted:0,rejected:0,patternsExtracted:0}}async storePatterns(e,t){if(!this.patternStore||e.length===0)return 0;let n=0;for(let i of e)try{let r=await this.patternStore.store(i),s=t.status==="completed";await this.patternStore.recordOutcome(r,s),n++}catch(r){console.error(`[TaskCompletedHook] Failed to store pattern: ${h(r)}`)}return n>0&&console.log(`[TaskCompletedHook] Stored ${n}/${e.length} patterns from task ${t.taskId}`),n}extractGenericPatterns(e){let t=[];for(let[n,i]of Object.entries(e.output)){if(t.length>=this.config.maxPatternsPerTask)break;if(i==null)continue;let r=typeof i=="string"?i:JSON.stringify(i);r.length<10||t.push({domain:e.domain,type:"generic",content:r,confidence:.3+this.computeConfidenceBoost(e.metrics),metadata:{sourceTaskId:e.taskId,sourceAgent:e.agentId,taskType:e.type,extractedFrom:n,timestamp:e.timestamp}})}return t}computeConfidenceBoost(e){let t=0,n=e.testsPassed??0,i=e.testsFailed??0,r=n+i;return r>0&&(t+=n/r*.15),e.coverageChange!==void 0&&e.coverageChange>0&&(t+=Math.min(.1,e.coverageChange*.5)),e.securityIssues!==void 0&&e.securityIssues===0&&(t+=.1),e.performanceMs!==void 0&&e.performanceMs<5e3&&(t+=.05),Math.min(.4,t)}emitCompletion(e,t){if(this.config.emitEvents)for(let n of this.completionHandlers)try{n(e,t)}catch(i){console.error(`[TaskCompletedHook] Completion handler error: ${h(i)}`)}}};k();var Vn={"test-template":"test-template","assertion-pattern":"assertion-pattern","mock-pattern":"mock-pattern","coverage-strategy":"coverage-strategy","mutation-strategy":"mutation-strategy","security-pattern":"error-handling","vulnerability-fix":"error-handling","quality-rule":"test-template","threshold-pattern":"test-template","defect-pattern":"error-handling","root-cause":"error-handling","api-contract":"api-contract","schema-pattern":"api-contract","flaky-fix":"flaky-fix","retry-strategy":"flaky-fix","visual-baseline":"visual-baseline","a11y-check":"a11y-check","perf-benchmark":"perf-benchmark","resilience-pattern":"perf-benchmark",generic:"test-template"};function Kn(a){return Vn[a]??"test-template"}function Yn(a){let e=ge(a.domain);if(e)return e;let t=ge(a.content);return t||"test-generation"}function Zn(a){let e=0;for(let t=0;t<a.length;t++){let n=a.charCodeAt(t);e=(e<<5)-e+n,e=e&e}return Math.abs(e).toString(36).slice(0,8)}var ae=class{constructor(e){this.reasoningBank=e}reasoningBank;async store(e){let t=Yn(e),n=Kn(e.type),i=Zn(e.content),r=`${t}-${e.type}-${i}`,s=[t,e.type,...e.metadata.sourceTaskId?[`task:${e.metadata.sourceTaskId}`]:[]],o={patternType:n,name:r,description:`Auto-extracted ${e.type} pattern from ${e.domain} domain`,template:{type:"prompt",content:e.content,variables:[]},context:{tags:s},confidence:e.confidence};try{let l=await this.reasoningBank.storePattern(o);if(l.success)return l.value.id;throw console.error(`[ReasoningBankPatternStore] Failed to store pattern: ${l.error.message}`),l.error}catch(l){throw console.error(`[ReasoningBankPatternStore] Store error: ${h(l)}`),l}}async recordOutcome(e,t){let n={patternId:e,success:t};try{let i=await this.reasoningBank.recordOutcome(n);i.success||console.error(`[ReasoningBankPatternStore] Failed to record outcome: ${i.error.message}`)}catch(i){console.error(`[ReasoningBankPatternStore] recordOutcome error: ${h(i)}`)}}};an();var _e={maxHypothesesPerInvestigation:5,convergenceThreshold:.2,investigationTimeoutMs:3e5,minEvidenceForConvergence:3,autoRejectThreshold:.15};import{randomUUID as Pe}from"node:crypto";var oe=class{investigations=new Map;config;constructor(e){this.config={..._e,...e}}createInvestigation(e,t,n){let i=`inv-${Pe().slice(0,8)}`,r=Date.now(),s={id:i,taskId:e,domain:t,description:n,hypotheses:[],status:"open",maxHypotheses:this.config.maxHypothesesPerInvestigation,convergenceThreshold:this.config.convergenceThreshold,createdAt:r,updatedAt:r};return this.investigations.set(i,s),this.toSnapshot(s)}addHypothesis(e,t,n,i){let r=this.getInvestigationMutable(e);if(r.hypotheses.length>=r.maxHypotheses)throw new Error(`Investigation ${e} already has ${r.maxHypotheses} hypotheses (max)`);let s={id:`hyp-${Pe().slice(0,8)}`,description:t,investigatorAgentId:i,strategy:n,status:"pending",evidence:[],confidenceScore:.5,createdAt:Date.now(),updatedAt:Date.now()};return r.hypotheses.push(s),r.updatedAt=Date.now(),r.status==="open"&&(r.status="investigating"),s}startHypothesis(e,t){let n=this.getInvestigationMutable(e),i=this.findHypothesis(n,t);if(i.status!=="pending")throw new Error(`Hypothesis ${t} cannot be started (current status: ${i.status})`);i.status="investigating",i.updatedAt=Date.now(),n.updatedAt=Date.now()}completeHypothesis(e,t){let n=this.getInvestigationMutable(e),i=this.findHypothesis(n,t);i.status="completed",i.updatedAt=Date.now(),n.updatedAt=Date.now()}submitEvidence(e,t,n){let i=this.getInvestigationMutable(e),r=this.findHypothesis(i,t),s={...n,id:`evi-${Pe().slice(0,8)}`,hypothesisId:t,timestamp:Date.now()};return r.evidence.push(s),r.confidenceScore=this.calculateConfidence(r),r.updatedAt=Date.now(),i.updatedAt=Date.now(),r.confidenceScore<this.config.autoRejectThreshold&&r.evidence.length>=2&&(r.status="rejected"),s}converge(e){let t=this.getInvestigationMutable(e),n=t.hypotheses.reduce((c,u)=>c+u.evidence.length,0);if(n<this.config.minEvidenceForConvergence){t.status="inconclusive";let c={winningHypothesisId:null,confidence:0,evidenceSummary:`Insufficient evidence (${n}/${this.config.minEvidenceForConvergence} required)`,rejectedHypotheses:t.hypotheses.filter(u=>u.status==="rejected").map(u=>u.id),method:"evidence-scoring"};return t.convergenceResult=c,t.updatedAt=Date.now(),c}let i=[...t.hypotheses].filter(c=>c.status!=="rejected").sort((c,u)=>u.confidenceScore-c.confidenceScore),r="evidence-scoring",s=null,o=0;i.length===0?t.status="inconclusive":i.length===1?(s=i[0].id,o=i[0].confidenceScore,r="unanimous",t.status="converged"):i[0].confidenceScore-i[1].confidenceScore>=t.convergenceThreshold?(s=i[0].id,o=i[0].confidenceScore,t.status="converged"):t.status="inconclusive";let l={winningHypothesisId:s,confidence:o,evidenceSummary:this.buildEvidenceSummary(t),rejectedHypotheses:t.hypotheses.filter(c=>c.status==="rejected").map(c=>c.id),method:r};return t.convergenceResult=l,t.updatedAt=Date.now(),l}getInvestigation(e){let t=this.investigations.get(e);return t?this.toSnapshot(t):void 0}listInvestigations(){return Array.from(this.investigations.values()).map(e=>this.toSnapshot(e))}getConfig(){return this.config}dispose(){this.investigations.clear()}getInvestigationMutable(e){let t=this.investigations.get(e);if(!t)throw new Error(`Investigation ${e} not found`);return t}findHypothesis(e,t){let n=e.hypotheses.find(i=>i.id===t);if(!n)throw new Error(`Hypothesis ${t} not found in investigation ${e.id}`);return n}calculateConfidence(e){if(e.evidence.length===0)return .5;let t=0,n=0;for(let r of e.evidence)r.supports?t+=r.weight:n+=r.weight;let i=t+n;return i===0?.5:Math.min(1,Math.max(0,t/i))}buildEvidenceSummary(e){let t=[];for(let n of e.hypotheses){let i=n.evidence.filter(s=>s.supports).length,r=n.evidence.filter(s=>!s.supports).length;t.push(`${n.id}: ${i} supporting, ${r} refuting (confidence: ${n.confidenceScore.toFixed(2)})`)}return t.join("; ")}toSnapshot(e){return{...e,hypotheses:e.hypotheses.map(t=>({...t,evidence:[...t.evidence]}))}}};function Fe(a){return new oe(a)}import{randomUUID as Xn}from"node:crypto";var He={localFleetId:"local",heartbeatIntervalMs:3e4,serviceTimeoutMs:9e4,maxPendingMessages:5e3,maxRoutes:100};var le=class{config;services=new Map;routes=[];outbox=[];inbox=[];handlers=[];messagesSent=0;messagesReceived=0;constructor(e){this.config={...He,...e}}registerService(e,t,n,i){if(this.services.has(e))throw new Error(`Service '${e}' already registered`);let r=Date.now(),s={fleetId:e,name:t,domains:[...n],status:"active",registeredAt:r,lastHeartbeat:r,metadata:i};return this.services.set(e,s),ce(s)}deregisterService(e){let t=this.services.get(e);if(!t)return!1;t.status="deregistered";for(let n=this.routes.length-1;n>=0;n--)this.routes[n].targetFleetId===e&&this.routes.splice(n,1);return this.services.delete(e),!0}heartbeat(e){let t=this.services.get(e);return t?(t.lastHeartbeat=Date.now(),(t.status==="degraded"||t.status==="unreachable")&&(t.status="active"),!0):!1}addRoute(e,t,n,i=0){if(this.routes.length>=this.config.maxRoutes)throw new Error(`Maximum routes (${this.config.maxRoutes}) reached`);let r={sourceDomain:e,targetDomain:t,targetFleetId:n,priority:i,active:!0};return this.routes.push(r),this.routes.sort((s,o)=>o.priority-s.priority),Bt(r)}removeRoute(e,t){let n=this.routes.findIndex(i=>i.sourceDomain===e&&i.targetFleetId===t);return n<0?!1:(this.routes.splice(n,1),!0)}send(e,t,n,i,r,s){let o=e==="any"?this.resolveRoute(t,n):e;if(!o)throw new Error(`No route found for ${t} -> ${n}`);let l={id:Xn(),sourceFleetId:this.config.localFleetId,targetFleetId:o,sourceDomain:t,targetDomain:n,type:i,payload:r,timestamp:Date.now(),ttl:s?.ttl,correlationId:s?.correlationId};return this.outbox.length>=this.config.maxPendingMessages&&this.outbox.shift(),this.outbox.push(l),this.messagesSent++,l}receive(e){this.inbox.length>=this.config.maxPendingMessages&&this.inbox.shift(),this.inbox.push(e),this.messagesReceived++;for(let t of this.handlers)try{t(e)}catch{}}onMessage(e){return this.handlers.push(e),()=>{let t=this.handlers.indexOf(e);t>=0&&this.handlers.splice(t,1)}}drainOutbox(){let e=[...this.outbox];return this.outbox.length=0,e}drainInbox(){let e=[...this.inbox];return this.inbox.length=0,e}findServicesByDomain(e){return Array.from(this.services.values()).filter(t=>t.status==="active"&&t.domains.includes(e)).map(ce)}getService(e){let t=this.services.get(e);return t?ce(t):void 0}listServices(){return Array.from(this.services.values()).map(ce)}listRoutes(){return this.routes.map(Bt)}checkHealth(){let e=Date.now();for(let t of this.services.values()){if(t.status==="deregistered")continue;let n=e-t.lastHeartbeat;n>this.config.serviceTimeoutMs?t.status="unreachable":n>this.config.serviceTimeoutMs*.6&&(t.status="degraded")}}getHealth(){return{localFleetId:this.config.localFleetId,connectedServices:Array.from(this.services.values()).filter(e=>e.status==="active").length,activeRoutes:this.routes.filter(e=>e.active).length,pendingMessages:this.outbox.length+this.inbox.length,messagesSent:this.messagesSent,messagesReceived:this.messagesReceived}}dispose(){this.services.clear(),this.routes.length=0,this.outbox.length=0,this.inbox.length=0,this.handlers.length=0}resolveRoute(e,t){for(let i of this.routes)if(i.active&&i.sourceDomain===e&&i.targetDomain===t){let r=this.services.get(i.targetFleetId);if(r&&r.status==="active")return i.targetFleetId}let n=this.findServicesByDomain(t);return n.length>0?n[0].fleetId:void 0}};function ce(a){return{fleetId:a.fleetId,name:a.name,domains:[...a.domains],status:a.status,registeredAt:a.registeredAt,lastHeartbeat:a.lastHeartbeat,metadata:a.metadata,endpoint:void 0}}function Bt(a){return{sourceDomain:a.sourceDomain,targetDomain:a.targetDomain,targetFleetId:a.targetFleetId,priority:a.priority,active:a.active}}function Oe(a){return new le(a)}var $t={name:"default",scaleUpQueueRatio:3,scaleDownIdleRatio:.5,errorRateScaleUpThreshold:.3,minAgents:2,maxAgents:15,cooldownMs:3e4,sampleWindowSize:5},Ne={defaultPolicy:$t,metricsHistorySize:100,decisionHistorySize:50};import{randomUUID as Jn}from"node:crypto";me();k();var ue=class a{config;policy;metricsHistory=[];events=[];lastScaleTime=0;scaleUpCount=0;scaleDownCount=0;totalDecisions=0;currentAgents;lastDecision;db=null;persistCount=0;static KV_NAMESPACE="scaling-metrics";static KV_KEY="dynamic-scaler-snapshot";static PERSIST_INTERVAL=10;static KV_TTL=7200;constructor(e=2,t){this.config={...Ne,...t},this.policy=this.config.defaultPolicy,this.currentAgents=e}recordMetrics(e){this.metricsHistory.push(e),this.metricsHistory.length>this.config.metricsHistorySize&&this.metricsHistory.shift(),this.persistCount++,this.persistCount%a.PERSIST_INTERVAL===0&&this.persistSnapshot().catch(()=>{})}evaluate(){let e=this.getAverageMetrics(),t=Date.now();if(this.totalDecisions++,t-this.lastScaleTime<this.policy.cooldownMs){let o={action:"maintain",currentAgents:this.currentAgents,targetAgents:this.currentAgents,reason:"Cooldown period active",metrics:e,timestamp:t};return this.lastDecision=o,o}let n="maintain",i=this.currentAgents,r="Workload within acceptable range";if(e.errorRate>this.policy.errorRateScaleUpThreshold)n="scale-up",i=Math.min(this.currentAgents+2,this.policy.maxAgents),r=`High error rate (${(e.errorRate*100).toFixed(1)}% > ${(this.policy.errorRateScaleUpThreshold*100).toFixed(1)}% threshold)`;else if(this.currentAgents>0&&e.queueDepth/Math.max(1,this.currentAgents)>this.policy.scaleUpQueueRatio){n="scale-up";let o=Math.ceil(e.queueDepth/this.policy.scaleUpQueueRatio);i=Math.min(o,this.policy.maxAgents),r=`Queue depth ratio ${(e.queueDepth/Math.max(1,this.currentAgents)).toFixed(1)} > ${this.policy.scaleUpQueueRatio} threshold`}if(n==="maintain"&&this.currentAgents>this.policy.minAgents){let o=this.currentAgents>0?e.idleAgents/this.currentAgents:0;if(o>this.policy.scaleDownIdleRatio){n="scale-down";let l=Math.floor(e.idleAgents*.5);i=Math.max(this.currentAgents-l,this.policy.minAgents),r=`Idle ratio ${(o*100).toFixed(1)}% > ${(this.policy.scaleDownIdleRatio*100).toFixed(1)}% threshold`}}i=Math.max(this.policy.minAgents,Math.min(this.policy.maxAgents,i)),i===this.currentAgents&&(n="maintain");let s={action:n,currentAgents:this.currentAgents,targetAgents:i,reason:r,metrics:e,timestamp:t};return this.lastDecision=s,s}async execute(e,t){let n={id:`scale-${Jn().slice(0,8)}`,decision:e,executedAt:Date.now(),success:!0};if(e.action==="maintain")return this.recordEvent(n),n;try{if(t&&!await t(e.currentAgents,e.targetAgents)){let r={...n,success:!1,error:"Executor returned false"};return this.recordEvent(r),r}return this.currentAgents=e.targetAgents,this.lastScaleTime=Date.now(),e.action==="scale-up"&&this.scaleUpCount++,e.action==="scale-down"&&this.scaleDownCount++,this.recordEvent(n),n}catch(i){let r={...n,success:!1,error:h(i)};return this.recordEvent(r),r}}setPolicy(e){this.policy=e}getPolicy(){return{...this.policy}}getCurrentAgents(){return this.currentAgents}getStats(){return{scaleUpCount:this.scaleUpCount,scaleDownCount:this.scaleDownCount,totalDecisions:this.totalDecisions,currentAgents:this.currentAgents,policyName:this.policy.name,lastDecision:this.lastDecision,recentEvents:[...this.events].slice(-10)}}getMetricsHistory(){return[...this.metricsHistory]}async initialize(){try{this.db=w(),this.db.isInitialized()||await this.db.initialize(),await this.loadFromKv()}catch(e){console.warn("[DynamicScaler] DB init failed, using memory-only:",h(e)),this.db=null}}dispose(){this.metricsHistory.length=0,this.events.length=0}getAverageMetrics(){let e=this.metricsHistory.slice(-this.policy.sampleWindowSize);if(e.length===0)return{queueDepth:0,activeAgents:this.currentAgents,idleAgents:0,avgTaskDurationMs:0,errorRate:0,throughput:0,timestamp:Date.now()};let t=n=>e.reduce((i,r)=>i+n(r),0)/e.length;return{queueDepth:Math.round(t(n=>n.queueDepth)),activeAgents:Math.round(t(n=>n.activeAgents)),idleAgents:Math.round(t(n=>n.idleAgents)),avgTaskDurationMs:Math.round(t(n=>n.avgTaskDurationMs)),errorRate:t(n=>n.errorRate),throughput:t(n=>n.throughput),timestamp:Date.now()}}recordEvent(e){this.events.push(e),this.events.length>this.config.decisionHistorySize&&this.events.shift(),this.persistCount++,this.persistCount%a.PERSIST_INTERVAL===0&&this.persistSnapshot().catch(()=>{})}async loadFromKv(){if(this.db)try{let e=await this.db.kvGet(a.KV_KEY,a.KV_NAMESPACE);if(e){if(Array.isArray(e.metricsHistory))for(let t of e.metricsHistory)this.metricsHistory.push(t);if(Array.isArray(e.events))for(let t of e.events)this.events.push(t)}}catch(e){console.warn("[DynamicScaler] Failed to load KV snapshot:",h(e))}}async persistSnapshot(){if(this.db)try{let e={metricsHistory:this.metricsHistory.slice(-50),events:this.events.slice(-50)};await this.db.kvSet(a.KV_KEY,e,a.KV_NAMESPACE,a.KV_TTL)}catch(e){console.warn("[DynamicScaler] Failed to persist KV snapshot:",h(e))}}};function Le(a,e){return new ue(a,e)}var ei=[{name:"Core Testing",domains:["test-generation","test-execution","coverage-analysis","quality-assessment"],priority:"p0",description:"Core testing workflow domains"},{name:"Intelligence",domains:["defect-intelligence","code-intelligence","requirements-validation","security-compliance"],priority:"p0",description:"Intelligence and analysis domains"},{name:"Specialized",domains:["contract-testing","visual-accessibility","chaos-resilience","learning-optimization"],priority:"p1",description:"Specialized testing domains"}],P={"generate-tests":["test-generation"],"execute-tests":["test-execution"],"analyze-coverage":["coverage-analysis"],"assess-quality":["quality-assessment"],"predict-defects":["defect-intelligence"],"validate-requirements":["requirements-validation"],"index-code":["code-intelligence"],"scan-security":["security-compliance"],"validate-contracts":["contract-testing"],"test-accessibility":["visual-accessibility"],"run-chaos":["chaos-resilience"],"optimize-learning":["learning-optimization"],"cross-domain-workflow":[],"protocol-execution":[],"ideation-assessment":["requirements-validation","coverage-analysis","security-compliance"]},Ut={maxConcurrentTasks:50,defaultTaskTimeout:3e5,taskRetryLimit:3,workStealing:{enabled:!0,idleThreshold:5e3,loadThreshold:10,stealBatchSize:3,checkInterval:1e4},enableMetrics:!0,metricsInterval:6e4,priorityWeights:{p0:100,p1:50,p2:25,p3:10},enableRouting:!0};function zt(a){P["cross-domain-workflow"]=a,P["protocol-execution"]=a}import{readFileSync as ni,existsSync as ii}from"fs";import{join as ri}from"path";import{parse as si}from"yaml";me();import{randomUUID as ti}from"crypto";var Q={RISK_WEIGHTS:2160*60*60*1e3,SFDIPOT_WEIGHTS:2160*60*60*1e3,FLAKY_PATTERNS:720*60*60*1e3,AC_QUALITY:1440*60*60*1e3};function B(a,e){let t=Date.now(),n=ti().split("-")[0];return`${e||a}-signal-${t}-${n}`}function $(a){return new Date(Date.now()+a).toISOString()}function E(a){return new Date(a.expiresAt)<new Date}var C={STRATEGIC:"qcsd/strategic",TACTICAL:"qcsd/tactical",OPERATIONAL:"qcsd/operational",QUALITY_CRITERIA:"qcsd/quality-criteria"},Be=class{memory;initialized=!1;constructor(e={}){this.memory=e.memoryManager||w()}async initialize(){this.initialized||(await this.memory.initialize(),this.initialized=!0,console.log("[CrossPhaseMemory] Initialized with UnifiedMemoryManager"))}async storeRiskSignal(e,t){await this.ensureInitialized();let n={id:B("strategic","risk"),timestamp:new Date().toISOString(),source:"production",target:"ideation",loopType:"strategic",version:"1.0.0",expiresAt:$(Q.RISK_WEIGHTS),riskWeights:e,recommendations:t};return await this.store(C.STRATEGIC,n),n}async queryRiskSignals(){return await this.ensureInitialized(),(await this.queryByNamespace(C.STRATEGIC)).filter(t=>!E(t))}async storeSFDIPOTSignal(e,t,n){await this.ensureInitialized();let i={id:B("tactical","sfdipot"),timestamp:new Date().toISOString(),source:"production",target:"refinement",loopType:"tactical",version:"1.0.0",expiresAt:$(Q.SFDIPOT_WEIGHTS),factorWeights:e,featureContext:t,recommendations:n};return await this.store(C.TACTICAL,i),i}async querySFDIPOTSignals(e){await this.ensureInitialized();let t=await this.queryByNamespace(C.TACTICAL);return t=t.filter(n=>!E(n)),e&&(t=t.filter(n=>n.featureContext.toLowerCase().includes(e.toLowerCase()))),t}async storeTestHealthSignal(e,t,n){await this.ensureInitialized();let i={id:B("operational","test-health"),timestamp:new Date().toISOString(),source:"cicd",target:"development",loopType:"operational",version:"1.0.0",expiresAt:$(Q.FLAKY_PATTERNS),flakyPatterns:e,gateFailures:t,recommendations:n};return await this.store(C.OPERATIONAL,i),i}async queryTestHealthSignals(){return await this.ensureInitialized(),(await this.queryByNamespace(C.OPERATIONAL)).filter(t=>!E(t))}async storeACQualitySignal(e,t,n){await this.ensureInitialized();let i={id:B("quality-criteria","ac-quality"),timestamp:new Date().toISOString(),source:"development",target:"refinement",loopType:"quality-criteria",version:"1.0.0",expiresAt:$(Q.AC_QUALITY),untestablePatterns:e,coverageGaps:t,recommendations:n};return await this.store(C.QUALITY_CRITERIA,i),i}async queryACQualitySignals(){return await this.ensureInitialized(),(await this.queryByNamespace(C.QUALITY_CRITERIA)).filter(t=>!E(t))}async store(e,t){let n=new Date(t.expiresAt).getTime(),i=Math.max(0,Math.floor((n-Date.now())/1e3));await this.memory.kvSet(t.id,t,e,i>0?i:void 0),console.log(`[CrossPhaseMemory] Stored signal: ${t.id} in ${e}`)}async queryByNamespace(e){let t=await this.memory.kvSearch("*",e,1e3),n=[];for(let i of t){let r=await this.memory.kvGet(i,e);r&&n.push(r)}return n.sort((i,r)=>new Date(r.timestamp).getTime()-new Date(i.timestamp).getTime())}async delete(e,t){let n=await this.memory.kvDelete(t,e);return n&&console.log(`[CrossPhaseMemory] Deleted signal: ${t}`),n}async cleanupExpired(){let e={deleted:0,namespaces:{}};for(let t of Object.values(C)){let n=await this.queryByNamespace(t),i=0;for(let r of n)E(r)&&(await this.delete(t,r.id),i++,e.deleted++);i>0&&(e.namespaces[t]=i)}return e.deleted>0&&console.log(`[CrossPhaseMemory] Cleanup: deleted ${e.deleted} expired signals`),e}async getStats(){await this.ensureInitialized();let e={totalSignals:0,byLoop:{strategic:0,tactical:0,operational:0,"quality-criteria":0},byNamespace:{},oldestSignal:null,newestSignal:null},t=null,n=null;for(let i of Object.values(C)){let s=(await this.queryByNamespace(i)).filter(o=>!E(o));e.byNamespace[i]=s.length,e.totalSignals+=s.length;for(let o of s){e.byLoop[o.loopType]++;let l=new Date(o.timestamp);(!t||l<t)&&(t=l,e.oldestSignal=o.timestamp),(!n||l>n)&&(n=l,e.newestSignal=o.timestamp)}}return e}async ensureInitialized(){this.initialized||await this.initialize()}},Qe=null;function qt(a){return Qe||(Qe=new Be(a)),Qe}function $e(a){let e=Object.getOwnPropertyNames(a);for(let t of e){let n=a[t];n&&typeof n=="object"&&!Object.isFrozen(n)&&$e(n)}return Object.freeze(a)}function Ue(a){let e=structuredClone(a);return $e(e)}function ze(a){return a===0?"success":a===2?"model_blocking":"user_error"}var Ge=class{config=null;memory;configPath;listeners=new Map;constructor(e){this.configPath=e||ri(process.cwd(),".claude/hooks/cross-phase-memory.yaml"),this.memory=qt()}async initialize(){if(process.env.AQE_HOOKS_DISABLED==="true")return console.log("[CrossPhaseHooks] All hooks disabled via AQE_HOOKS_DISABLED"),!1;if(!ii(this.configPath))return console.warn(`[CrossPhaseHooks] Config not found: ${this.configPath}`),!1;try{let e=ni(this.configPath,"utf-8"),t=si(e);return t.enabled?(this.config=Ue(t),await this.memory.initialize(),console.log(`[CrossPhaseHooks] Initialized with ${Object.keys(this.config.hooks).length} hooks`),!0):(console.log("[CrossPhaseHooks] Hooks disabled in config"),!1)}catch(e){return console.error("[CrossPhaseHooks] Failed to load config:",e),!1}}async onAgentComplete(e,t){if(!this.config||process.env.AQE_HOOKS_DISABLED==="true")return;let n=this.filterManagedHooks(Object.entries(this.config.hooks).filter(([i,r])=>r.trigger.event==="agent-complete"&&r.trigger.agent===e));for(let[i,r]of n)this.checkConditions(r.trigger.conditions,t)&&(console.log(`[CrossPhaseHooks] Executing hook: ${i}`),await this.executeActions(r.actions,t))}async onPhaseStart(e,t={}){if(!this.config)return{};if(process.env.AQE_HOOKS_DISABLED==="true")return{};let n={},i=this.filterManagedHooks(Object.entries(this.config.hooks).filter(([r,s])=>s.trigger.event==="phase-start"&&s.trigger.phase===e));for(let[r,s]of i){console.log(`[CrossPhaseHooks] Executing phase-start hook: ${r}`);for(let o of s.actions)if(o.type==="query-signals"&&o.injectInto){let l=await this.querySignalsForInjection(o.namespace,o.maxAge,o.filterBy?t[o.filterBy]:void 0);for(let c of o.injectInto)n[c]||(n[c]=[]),n[c].push(...l)}}return n}async onPhaseEnd(e,t){if(!this.config||process.env.AQE_HOOKS_DISABLED==="true")return;let n=this.filterManagedHooks(Object.entries(this.config.hooks).filter(([i,r])=>r.trigger.event==="phase-end"&&r.trigger.phase===e));for(let[i,r]of n)console.log(`[CrossPhaseHooks] Executing phase-end hook: ${i}`),await this.executeActions(r.actions,t)}async executeActions(e,t){for(let n of e)try{await this.executeAction(n,t)}catch(i){let r=i?.exitCode;if(typeof r=="number"){let s=ze(r);if(s==="model_blocking")throw console.error(`[CrossPhaseHooks] Model-blocking hook failure (exit ${r}):`,i),i;console.warn(`[CrossPhaseHooks] Hook ${s} (exit ${r}):`,i)}else console.error("[CrossPhaseHooks] Action failed:",i)}}async executeAction(e,t){switch(e.type){case"store-signal":await this.executeStoreSignal(e,t);break;case"query-signals":break;case"notify-agent":await this.executeNotifyAgent(e,t);break;case"invoke-agent":await this.executeInvokeAgent(e,t);break;case"conditional":e.condition&&e.action&&this.evaluateCondition(e.condition,t)&&await this.executeAction(e.action,t);break;case"delete-expired":await this.memory.cleanupExpired();break;default:console.warn(`[CrossPhaseHooks] Unknown action type: ${e.type}`)}}async executeStoreSignal(e,t){if(!e.loop||!e.namespace||!e.extract)return;let n=this.extractFromContext(e.extract,t);switch(e.loop){case"strategic":await this.memory.storeRiskSignal(n.riskWeights||[],n.recommendations||{forRiskAssessor:[],forQualityCriteria:[]});break;case"tactical":await this.memory.storeSFDIPOTSignal(n.factorWeights||[],n.featureContext||"unknown",n.recommendations||{forProductFactorsAssessor:[]});break;case"operational":await this.memory.storeTestHealthSignal(n.flakyPatterns||[],n.gateFailures||[],n.recommendations||{forTestArchitect:[],antiPatterns:[]});break;case"quality-criteria":await this.memory.storeACQualitySignal(n.untestablePatterns||[],n.coverageGaps||[],n.recommendations||{forRequirementsValidator:[],acTemplates:{}});break}this.emit("signal-stored",{loop:e.loop,namespace:e.namespace})}async executeNotifyAgent(e,t){!e.target||!e.message||await this.isBlockedUrl(e.target)||(console.log(`[CrossPhaseHooks] Notify ${e.target}: ${e.message}`),this.emit("agent-notification",{target:e.target,message:e.message,priority:e.priority||"normal",context:t}))}async executeInvokeAgent(e,t){e.target&&(await this.isBlockedUrl(e.target)||(console.log(`[CrossPhaseHooks] Invoke agent: ${e.target}`),this.emit("agent-invocation",{agent:e.target,input:{...t,...e.input||{}}})))}async querySignalsForInjection(e,t,n){let r=await this.memory.queryByNamespace(e);if(t){let s=this.parseMaxAge(t),o=Date.now()-s;r=r.filter(l=>new Date(l.timestamp).getTime()>o)}return r}formatSignalsForInjection(e){if(e.length===0)return"";let t=`## CROSS-PHASE LEARNING SIGNALS
168
-
169
- `;t+=`The following signals have been automatically injected from previous phases.
170
- `,t+=`Apply these learnings to your analysis.
171
-
172
- `;for(let n of e){t+=`### Signal: ${n.id}
173
- `,t+=`- **From:** ${n.source} phase
174
- `,t+=`- **Loop:** ${n.loopType}
175
- `,t+=`- **Timestamp:** ${n.timestamp}
176
-
177
- `;let i=this.getRecommendations(n);if(i.length>0){t+=`**Recommendations:**
178
- `;for(let r of i)t+=`- ${r}
179
- `;t+=`
180
- `}}return t}getRecommendations(e){switch(e.loopType){case"strategic":return[...e.recommendations.forRiskAssessor,...e.recommendations.forQualityCriteria];case"tactical":return e.recommendations.forProductFactorsAssessor;case"operational":return[...e.recommendations.forTestArchitect,...e.recommendations.antiPatterns];case"quality-criteria":return e.recommendations.forRequirementsValidator;default:return[]}}filterManagedHooks(e){if(process.env.AQE_HOOKS_MANAGED_ONLY!=="true")return e;let t=e.filter(([n])=>n.startsWith("managed:"));return t.length<e.length&&console.log(`[CrossPhaseHooks] AQE_HOOKS_MANAGED_ONLY: filtered ${e.length-t.length} non-managed hooks`),t}async isBlockedUrl(e){if(!e.includes("://"))return!1;let t=await pe(e);return t.safe?!1:(console.warn(`[CrossPhaseHooks] SSRF blocked: ${t.reason}`),!0)}checkConditions(e,t){return!e||e.length===0?!0:e.every(n=>this.evaluateCondition(n,t))}evaluateCondition(e,t){try{let n=e.split(/\s*(>|<|>=|<=|==|!=)\s*/);if(n.length!==3)return!1;let[i,r,s]=n,o=this.getValueFromPath(t,i),l=isNaN(Number(s))?s:Number(s),c=typeof o=="number"?o:Number(o),u=typeof l=="number"?l:Number(l);switch(r){case">":return c>u;case"<":return c<u;case">=":return c>=u;case"<=":return c<=u;case"==":return o==l;case"!=":return o!=l;default:return!1}}catch{return!1}}getValueFromPath(e,t){return t.split(".").reduce((n,i)=>{if(n&&typeof n=="object"&&i in n)return n[i]},e)}extractFromContext(e,t){let n={};for(let[i,r]of Object.entries(e))n[i]=this.getValueFromPath(t,r);return n}parseMaxAge(e){let t=e.match(/^(\d+)(d|h|m|s)$/);if(!t)return 0;let[,n,i]=t,r=parseInt(n,10);switch(i){case"d":return r*24*60*60*1e3;case"h":return r*60*60*1e3;case"m":return r*60*1e3;case"s":return r*1e3;default:return 0}}on(e,t){this.listeners.has(e)||this.listeners.set(e,new Set),this.listeners.get(e).add(t)}off(e,t){this.listeners.get(e)?.delete(t)}emit(e,t){this.listeners.get(e)?.forEach(n=>n(t))}async runCleanup(){if(!this.config?.cleanup.enabled)return;console.log("[CrossPhaseHooks] Running cleanup...");let e=await this.memory.cleanupExpired();console.log(`[CrossPhaseHooks] Cleanup complete: ${e.deleted} signals deleted`)}},qe=null;function Gt(a){return qe||(qe=new Ge(a)),qe}function jt(a,e){let t=[];for(let s of e){let o=a.router.subscribeToDoamin(s,async l=>{await ai(a,l)});t.push(o)}let n=a.router.subscribeToEventType("TaskCompleted",async s=>{await oi(a,s)});t.push(n);let i=a.router.subscribeToEventType("TaskFailed",async s=>{await ci(a,s)});t.push(i);let r=a.router.subscribeToEventType("AgentStatusChanged",async s=>{await li(a,s)});return t.push(r),t}async function ai(a,e){a.domainLastActivity.set(e.source,new Date),await a.processQueue()}async function oi(a,e){let{taskId:t,result:n}=e.payload,i=a.tasks.get(t);if(i){(i.status==="running"||i.status==="assigned")&&(a.runningTaskCounter=Math.max(0,a.runningTaskCounter-1));let r=i.startedAt?Date.now()-i.startedAt.getTime():0;a.tasks.set(t,{...i,status:"completed",completedAt:new Date,result:n}),a.tasksCompleted++,a.taskDurations.push(r),a.auditLogger.logComplete(t,i.assignedAgents[0]);try{let s=Gt(),o=i.assignedAgents[0];o&&await s.onAgentComplete(o,{taskId:t,taskType:i.task.type,domain:i.assignedDomain,result:n,duration:r})}catch(s){console.warn("[QueenCoordinator] Cross-phase hook error:",s)}try{await I.afterTaskExecution({taskId:t,taskType:i.task.type,agentId:i.assignedAgents[0]||"unknown",domain:i.assignedDomain||"test-generation",priority:i.task.priority},!0,0,0)}catch(s){console.warn("[QueenCoordinator] Governance tracking error:",s)}if(a.domainBreakerRegistry&&i.assignedDomain&&a.domainBreakerRegistry.getBreaker(i.assignedDomain).recordSuccess(),a.traceCollector){let s=a.taskTraceContexts.get(t);s&&(a.traceCollector.completeSpan(s.spanId),a.taskTraceContexts.delete(t))}if(a.taskCompletedHook)try{let s=typeof n=="object"&&n!==null?n:null;if(s===null)console.error(`[QueenCoordinator] Pattern training skipped for task ${t}: result is not an object (got ${typeof n})`);else{let o=ui(s,t);if(o){let l={taskId:t,agentId:i.assignedAgents[0]||"unknown",domain:i.assignedDomain||"test-generation",type:i.task.type,status:"completed",output:s,metrics:o,duration:r,timestamp:Date.now()};a.taskCompletedHook.onTaskCompleted(l).catch(c=>{console.warn("[QueenCoordinator] Pattern training error:",c)})}}}catch(s){console.warn("[QueenCoordinator] Pattern training setup error:",s)}}await a.processQueue()}async function ci(a,e){let{taskId:t,error:n}=e.payload,i=a.tasks.get(t);if(i){if((i.status==="running"||i.status==="assigned")&&(a.runningTaskCounter=Math.max(0,a.runningTaskCounter-1)),a.domainBreakerRegistry&&i.assignedDomain&&a.domainBreakerRegistry.getBreaker(i.assignedDomain).recordFailure(new Error(n||"Task failed")),a.traceCollector){let r=a.taskTraceContexts.get(t);r&&(a.traceCollector.failSpan(r.spanId,n||"Task failed"),a.taskTraceContexts.delete(t))}if(i.retryCount<a.config.taskRetryLimit){a.auditLogger.logFail(t,i.assignedAgents[0],n);let r={...i,status:"queued",retryCount:i.retryCount+1,error:n};a.tasks.set(t,r),a.enqueueTask(i.task)}else{a.tasks.set(t,{...i,status:"failed",completedAt:new Date,error:n}),a.tasksFailed++,a.auditLogger.logFail(t,i.assignedAgents[0],n);try{await I.afterTaskExecution({taskId:t,taskType:i.task.type,agentId:i.assignedAgents[0]||"unknown",domain:i.assignedDomain||"test-generation",priority:i.task.priority},!1,0,0)}catch(r){console.warn("[QueenCoordinator] Governance tracking error:",r)}if(a.hypothesisManager&&(i.task.priority==="p0"||i.task.priority==="p1"))try{let r=i.assignedDomain||"test-generation",s=a.hypothesisManager.createInvestigation(t,r,`Root cause analysis for ${i.task.type} failure: ${n}`);a.hypothesisManager.addHypothesis(s.id,`Infrastructure failure in domain '${r}' caused task ${t} to fail`,"log-analysis",`${r}-lead`),a.hypothesisManager.addHypothesis(s.id,`Logic/configuration error in task payload caused ${i.task.type} to fail: ${n}`,"code-analysis",i.assignedAgents[0]||"unknown"),console.log(`[QueenCoordinator] Competing hypotheses investigation created: ${s.id}`)}catch(r){console.warn("[QueenCoordinator] Hypothesis creation error:",r)}}}await a.processQueue()}async function li(a,e){let{agentId:t,status:n,domain:i}=e.payload;a.domainLastActivity.set(i,new Date),(n==="completed"||n==="failed")&&await a.processQueue()}function ui(a,e){if("metrics"in a&&typeof a.metrics=="object"&&a.metrics!==null){let t=a.metrics;return{testsPassed:typeof t.testsPassed=="number"?t.testsPassed:void 0,testsFailed:typeof t.testsFailed=="number"?t.testsFailed:void 0,coverageChange:typeof t.coverageChange=="number"?t.coverageChange:void 0,securityIssues:typeof t.securityIssues=="number"?t.securityIssues:void 0,performanceMs:typeof t.performanceMs=="number"?t.performanceMs:void 0,linesChanged:typeof t.linesChanged=="number"?t.linesChanged:void 0}}return"testsPassed"in a||"testsFailed"in a?{testsPassed:typeof a.testsPassed=="number"?a.testsPassed:void 0,testsFailed:typeof a.testsFailed=="number"?a.testsFailed:void 0,coverageChange:typeof a.coverageChange=="number"?a.coverageChange:void 0,securityIssues:typeof a.securityIssues=="number"?a.securityIssues:void 0,performanceMs:typeof a.performanceMs=="number"?a.performanceMs:void 0,linesChanged:typeof a.linesChanged=="number"?a.linesChanged:void 0}:(console.error(`[QueenCoordinator] Pattern training skipped for task ${e}: result object has no recognizable metrics shape (keys: ${Object.keys(a).join(", ")})`),null)}function Wt(a,e,t){let n=a.listAgents({domain:e}),i=n.filter(l=>l.status==="running").length,r=n.filter(l=>l.status==="idle").length,s=n.filter(l=>l.status==="failed").length,o;return s>0&&s>=n.length/2?o="unhealthy":s>0?o="degraded":i>0?o="healthy":o="idle",{status:o,agents:{total:n.length,active:i,idle:r,failed:s},lastActivity:t,errors:[]}}var di=ut();function Vt(a,e,t){let n=a.get(t.priority);n&&lt(n,t,di);for(let i of t.targetDomains){let r=e.get(i);r&&r.push(t)}}function de(a,e,t){let n=a.get(t.priority);if(n){let i=n.findIndex(r=>r.id===t.id);i!==-1&&n.splice(i,1)}for(let i of t.targetDomains){let r=e.get(i);if(r){let s=r.findIndex(o=>o.id===t.id);s!==-1&&r.splice(s,1)}}}function je(a,e){let t=0;for(let n of["p0","p1","p2","p3"]){let i=a.get(n);if(i){if(n===e.priority){t+=i.findIndex(r=>r.id===e.id);break}t+=i.length}}return t}async function We(a){if(!(a.runningTaskCounter>=a.config.maxConcurrentTasks))for(let e of["p0","p1","p2","p3"]){let t=a.taskQueue.get(e);if(!t||t.length===0)continue;let n=t.shift();if(n){de(a.taskQueue,a.domainQueues,n),a.runningTaskCounter++;try{await Ve(a,n)}catch(i){throw a.runningTaskCounter--,i}if(a.runningTaskCounter>=a.config.maxConcurrentTasks)return}}}function Kt(a,e){let t=Array.from(a.values());return e&&(e.status&&(t=t.filter(n=>n.status===e.status)),e.domain&&(t=t.filter(n=>n.assignedDomain===e.domain)),e.priority&&(t=t.filter(n=>n.task.priority===e.priority)),e.type&&(t=t.filter(n=>n.task.type===e.type)),e.fromDate&&(t=t.filter(n=>n.task.createdAt>=e.fromDate)),e.toDate&&(t=t.filter(n=>n.task.createdAt<=e.toDate))),t}async function Ve(a,e){let t=e.targetDomains.length>0?e.targetDomains:P[e.type]||[];if(t.length===0)return y(new Error(`No domains configured for task type: ${e.type}`));let n,i=1/0;for(let r of t){let s=a.getDomainLoad(r);a.getDomainHealth(r)?.status!=="unhealthy"&&s<i&&(i=s,n=r)}return n?Ke(a,e,n):y(new Error("No healthy domain available for task"))}async function Ke(a,e,t){let n;if(a.tinyDancerRouter){let c={p0:"critical",p1:"high",p2:"normal",p3:"low"},u={description:`${e.type}: ${JSON.stringify(e.payload).slice(0,200)}`,type:e.type,domain:t,priority:c[e.priority]};n=await a.tinyDancerRouter.route(u),a.config.enableMetrics&&console.log(`[Queen] TinyDancer routing: ${e.type} \u2192 tier=${n.tier}, model=${n.model}, cost=$${n.estimatedCost.toFixed(4)}`)}if(a.domainBreakerRegistry&&!a.domainBreakerRegistry.canExecuteInDomain(t))return y(new Error(`Domain '${t}' circuit breaker is open \u2014 too many recent failures`));if(a.domainTeamManager)try{if(!a.domainTeamManager.getDomainTeam(t)){let u=`${t}-lead`;a.domainTeamManager.createDomainTeam(t,u)}}catch(c){console.warn(`[Queen] Domain team setup for '${t}' failed (continuing):`,c)}let i=n?.tier||"task-worker",r=["task-execution",e.type,...n?[`model:${n.model}`]:[],...n?.triggerMultiModel?["advisor:triggerMultiModel"]:[]],s=await a.requestAgentSpawn(t,i,r),o=[];s.success&&o.push(s.value);let l={taskId:e.id,task:e,status:"running",assignedDomain:t,assignedAgents:o,startedAt:new Date,retryCount:0};a.tasks.set(e.id,l),a.domainLastActivity.set(t,new Date);for(let c of o)a.auditLogger.logAssign(e.id,c,t);if(await a.publishEvent("TaskAssigned",{taskId:e.id,domain:t,agentIds:o}),a.domainPlugins){let c=a.domainPlugins.get(t);if(c?.executeTask&&c.canHandleTask?.(e.type)){let u={taskId:e.id,taskType:e.type,payload:e.payload,priority:e.priority,timeout:e.timeout,correlationId:e.correlationId},d=await c.executeTask(u,m=>mi(a,m));return d.success?b(e.id):(a.tasks.set(e.id,{...l,status:"failed",error:d.error.message,completedAt:new Date}),a.runningTaskCounter=Math.max(0,a.runningTaskCounter-1),a.tasksFailed++,a.auditLogger.logFail(e.id,o[0],d.error.message),y(d.error))}if(c)try{await c.handleEvent({id:T(),type:"TaskAssigned",timestamp:new Date,source:"queen-coordinator",correlationId:e.correlationId,payload:{task:e}}),console.warn(`[Queen] Domain ${t} has no executeTask handler, using event fallback`)}catch(u){console.warn(`[Queen] Failed to invoke domain ${t} event handler:`,u)}}return b(e.id)}async function mi(a,e){let t=a.tasks.get(e.taskId);if(!t){console.warn(`[Queen] Received completion for unknown task: ${e.taskId}`);return}let n={...t,status:e.success?"completed":"failed",completedAt:new Date,result:e.data,error:e.error};if(a.tasks.set(e.taskId,n),e.success?(a.tasksCompleted++,a.taskDurations.push(e.duration),a.auditLogger.logComplete(e.taskId,t.assignedAgents[0])):(a.tasksFailed++,a.auditLogger.logFail(e.taskId,t.assignedAgents[0],e.error||"Unknown error")),a.runningTaskCounter=Math.max(0,a.runningTaskCounter-1),a.coExecutionRepo&&t.assignedAgents.length>=2)try{a.coExecutionRepo.recordSwarmCoExecution(t.assignedAgents,t.assignedDomain||"unknown",e.success,t.task.type)}catch{}for(let i of t.assignedAgents)await a.agentCoordinator.stop(i);await a.publishEvent(e.success?"TaskCompleted":"TaskFailed",{taskId:e.taskId,domain:t.assignedDomain,result:e.data,error:e.error,duration:e.duration}),await We(a)}function Yt(a,e){return(P[e.type]||[]).includes(a)}k();async function Zt(a){let e=0,t=a.getIdleDomains(),n=a.getBusyDomains();if(t.length===0||n.length===0)return 0;n.sort((i,r)=>a.getDomainLoad(r)-a.getDomainLoad(i));for(let i of n){if(t.length===0)break;let r=a.domainQueues.get(i)||[],s=Math.min(r.length,a.config.workStealing.stealBatchSize);for(let o=0;o<s&&t.length>0;o++){let l=r.find(c=>Yt(t[0],c));if(l){let c=t.shift();a.removeFromQueues(l),a.auditLogger.logSteal(l.id,i,c),await a.assignTaskToDomain(l,c),e++,a.tasksStolen++,await a.publishEvent("TaskStolen",{taskId:l.id,fromDomain:i,toDomain:c})}}}return e}function Ye(a,e){let t=0,n=10,i=setInterval(async()=>{try{await e(),t=0}catch(r){t++;let s=Math.min(1e3*Math.pow(2,t),3e4);if(console.warn(`[QueenCoordinator] Work-stealing failed (attempt ${t}), backing off ${s}ms`,h(r)),t>n){console.error(`[QueenCoordinator] Work-stealing exceeded ${n} consecutive failures, stopping interval`),clearInterval(i);return}await new Promise(o=>setTimeout(o,s))}},a.workStealing.checkInterval);return i}function Ze(a){return typeof a.setMinCutBridge=="function"}function Xt(a,e){for(let[t,n]of a)Ze(n)&&(n.setMinCutBridge(e),console.log(`[QueenCoordinator] MinCut bridge injected into ${t}`))}async function Jt(a,e,t){try{let n=await a.get("queen:state");if(n)for(let[i,r]of n.tasks)r.status==="queued"&&(e.set(i,r),t(r.task))}catch(n){console.debug("[QueenCoordinator] State loading failed:",n instanceof Error?n.message:n)}}async function en(a,e){let t=Array.from(e.entries()).filter(([,n])=>n.status==="queued");await a.set("queen:state",{tasks:t},{namespace:"queen-coordinator",persist:!0})}function tn(a){return setInterval(async()=>{let e=a.getMetrics();if(await a.publishEvent("MetricsCollected",{metrics:e}),await a.memory.set(`queen:metrics:${Date.now()}`,e,{ttl:86400,namespace:"queen-coordinator"}),a.dynamicScaler)try{let t=a.getAverageTaskDuration(),n={queueDepth:a.getQueuedTaskCount(),activeAgents:a.getActiveAgentCount(),idleAgents:a.getIdleAgentCount(),avgTaskDurationMs:t,errorRate:a.getTasksReceived()>0?a.getTasksFailed()/a.getTasksReceived():0,throughput:e.uptime>0?a.getTasksCompleted()/(e.uptime/1e3):0,timestamp:Date.now()};a.dynamicScaler.recordMetrics(n);let i=a.dynamicScaler.evaluate();i&&i.action!=="maintain"&&(console.log(`[QueenCoordinator] Dynamic scaler: ${i.action} to ${i.targetAgents} agents \u2014 ${i.reason}`),a.dynamicScaler.execute(i).catch(r=>{console.warn("[QueenCoordinator] Dynamic scaling execution error:",r)}))}catch(t){console.warn("[QueenCoordinator] Dynamic scaler metrics error:",t)}},a.config.metricsInterval)}function Xe(a,e,t=36e5){let n=Date.now(),i=0;for(let[s,o]of a)if(o.status==="completed"||o.status==="failed"||o.status==="cancelled"){let l=o.completedAt?.getTime()||o.startedAt?.getTime()||0;l>0&&n-l>t&&(a.delete(s),e.delete(s),i++)}let r=1e4;if(e.size>r){let s=e.size-r,o=e.keys();for(let l=0;l<s;l++){let c=o.next().value;c!==void 0&&e.delete(c)}console.log(`[QueenCoordinator] Evicted ${s} oldest trace contexts (max: ${r})`)}return i>0&&console.log(`[QueenCoordinator] Cleaned up ${i} old tasks (retention: ${t}ms)`),i}function nn(a,e){return a&&a.size>0?Array.from(a.keys()):[...e]}var g=it.create("QueenCoordinator");zt(v);var Je=class{constructor(e,t,n,i,r,s,o,l={}){this.eventBus=e;this.agentCoordinator=t;this.memory=n;this.router=i;this.protocolExecutor=r;this.workflowExecutor=s;this.domainPlugins=o;this.config={...Ut,...l},this.auditLogger=he({enableConsoleLog:this.config.enableMetrics,maxEntries:1e3,logPrefix:"[QUEEN]"}),["p0","p1","p2","p3"].forEach(c=>{this.taskQueue.set(c,[])}),this.config.enableRouting!==!1&&(this.tinyDancerRouter=new j(this.config.routing)),v.forEach(c=>{this.domainQueues.set(c,[]),this.domainLastActivity.set(c,new Date)})}eventBus;agentCoordinator;memory;router;protocolExecutor;workflowExecutor;domainPlugins;config;tasks=new Map;taskQueue=new Map;domainQueues=new Map;domainLastActivity=new Map;initialized=!1;workStealingTimer=null;metricsTimer=null;cleanupTimer=null;startTime=new Date;eventSubscriptionIds=[];runningTaskCounter=0;tasksReceived=0;tasksCompleted=0;tasksFailed=0;tasksStolen=0;taskDurations=new nt(1e3);protocolsExecuted=0;workflowsExecuted=0;auditLogger;minCutBridge=null;tinyDancerRouter=null;domainBreakerRegistry=null;domainTeamManager=null;agentTeamsAdapter=null;tierSelector=null;taskCompletedHook=null;traceCollector=null;taskTraceContexts=new Map;hypothesisManager=null;federationMailbox=null;dynamicScaler=null;coExecutionRepo=null;dependencyGraph=null;availableMcpServers=[];async initialize(){if(!this.initialized){this.startTime=new Date,await this.router.initialize(),this.subscribeToEvents(),this.config.workStealing.enabled&&(this.workStealingTimer=Ye(this.config,()=>this.triggerWorkStealing().then(()=>{}))),this.config.enableMetrics&&(this.metricsTimer=tn(this.createMetricsContext())),this.cleanupTimer=setInterval(()=>{Xe(this.tasks,this.taskTraceContexts,36e5)},3e5),this.cleanupTimer.unref(),await Jt(this.memory,this.tasks,e=>this.enqueueTaskInternal(e)),this.minCutBridge=ht(this.eventBus,this.agentCoordinator,{autoUpdateFromEvents:!0,persistData:!0,includeInQueenHealth:!0,sharedGraph:ct()}),await this.minCutBridge.initialize(),this.domainPlugins&&Xt(this.domainPlugins,this.minCutBridge);try{await I.initialize(),g.info("Governance adapter initialized")}catch(e){g.warn("Governance initialization failed (continuing)",{error:e})}this.initializeSubsystems();try{let{join:e}=await import("path"),t=e(process.cwd(),".claude","agents","v3");this.dependencyGraph=Rt(t),this.availableMcpServers=dt(process.cwd());let{getUnifiedMemory:n}=await import("./unified-memory-DSTIEDSH.js"),i=n();await i.initialize(),this.coExecutionRepo=wt(),this.coExecutionRepo.initialize(i.getDatabase()),this.dependencyGraph.warnings.length>0&&g.warn(`Dependency graph: ${this.dependencyGraph.warnings.length} warning(s)`,{warnings:this.dependencyGraph.warnings.slice(0,5)}),g.info("Dependency intelligence initialized",{agents:this.dependencyGraph.nodes.size,mcpServers:this.availableMcpServers.length})}catch(e){g.warn("Dependency intelligence initialization failed (continuing)",{error:e})}await this.publishEvent("QueenInitialized",{timestamp:new Date,config:this.config,domains:v}),this.initialized=!0}}async dispose(){this.workStealingTimer&&(clearInterval(this.workStealingTimer),this.workStealingTimer=null),this.metricsTimer&&(clearInterval(this.metricsTimer),this.metricsTimer=null),this.cleanupTimer&&(clearInterval(this.cleanupTimer),this.cleanupTimer=null),this.minCutBridge&&(await this.minCutBridge.dispose(),this.minCutBridge=null),this.domainTeamManager&&(this.domainTeamManager.dispose(),this.domainTeamManager=null),this.agentTeamsAdapter&&(this.agentTeamsAdapter.shutdown(),this.agentTeamsAdapter=null),this.domainBreakerRegistry=null,this.tierSelector=null,this.traceCollector&&(this.traceCollector.dispose(),this.traceCollector=null),this.hypothesisManager&&(this.hypothesisManager.dispose(),this.hypothesisManager=null),this.federationMailbox&&(this.federationMailbox.dispose(),this.federationMailbox=null),this.dynamicScaler&&(this.dynamicScaler.dispose(),this.dynamicScaler=null),await en(this.memory,this.tasks);for(let[e,t]of this.tasks)(t.status==="queued"||t.status==="running")&&await this.cancelTask(e);await this.publishEvent("QueenShutdown",{timestamp:new Date,metrics:this.getMetrics()});for(let e of this.eventSubscriptionIds)this.router.unsubscribe(e);this.eventSubscriptionIds=[],await this.router.dispose(),this.initialized=!1}async submitTask(e){if(!this.initialized)return y(new Error("Queen Coordinator not initialized"));let t=`task_${T()}`,n={...e,id:t,createdAt:new Date,timeout:e.timeout||this.config.defaultTaskTimeout},i={taskId:n.id,taskType:n.type,agentId:n.requester||`queen-task:${n.id}`,domain:n.targetDomains[0]||"test-generation",priority:n.priority,payload:n.payload};try{let r=await I.beforeTaskExecution(i);if(!r.allowed)return this.auditLogger.logFail(t,"governance",r.reason||"Governance check failed"),await this.publishEvent("TaskRejected",{taskId:t,reason:r.reason,escalate:r.escalate}),y(new Error(`Task blocked by governance: ${r.reason}`))}catch(r){g.warn("Governance check error (continuing)",{error:r})}this.runningTaskCounter++;try{if(this.runningTaskCounter>this.config.maxConcurrentTasks)return this.runningTaskCounter--,this.queueTask(n);this.auditLogger.logSubmit(t,{type:n.type,priority:n.priority}),this.selectFleetTier(n),this.startTaskTrace(n,t);let r=await Ve(this.createTaskContext(),n);return r.success?(this.tasksReceived++,await this.publishEvent("TaskSubmitted",{taskId:t,task:n}),b(t)):(this.runningTaskCounter--,r)}catch(r){throw this.runningTaskCounter--,r}}async cancelTask(e){let t=this.tasks.get(e);if(!t)return y(new Error(`Task not found: ${e}`));if(t.status==="completed"||t.status==="failed")return y(new Error(`Task already finished: ${e}`));(t.status==="running"||t.status==="assigned")&&(this.runningTaskCounter=Math.max(0,this.runningTaskCounter-1)),this.tasks.set(e,{...t,status:"cancelled",completedAt:new Date}),de(this.taskQueue,this.domainQueues,t.task);for(let n of t.assignedAgents)await this.agentCoordinator.stop(n);return this.auditLogger.logCancel(e),await this.publishEvent("TaskCancelled",{taskId:e}),b(void 0)}getTaskStatus(e){return this.tasks.get(e)}listTasks(e){return Kt(this.tasks,e)}getDomainHealth(e){if(this.domainPlugins){let t=this.domainPlugins.get(e);if(t)return t.getHealth()}return Wt(this.agentCoordinator,e,this.domainLastActivity.get(e))}getDomainLoad(e){let t=this.domainQueues.get(e)||[],n=Array.from(this.tasks.values()).filter(i=>i.assignedDomain===e&&i.status==="running");return t.length+n.length}getIdleDomains(){let e=Date.now(),t=this.config.workStealing.idleThreshold;return v.filter(n=>{let i=this.domainLastActivity.get(n);return this.getDomainLoad(n)===0&&i&&e-i.getTime()>t})}getBusyDomains(){return v.filter(e=>this.getDomainLoad(e)>this.config.workStealing.loadThreshold)}getSpawnPlan(e){return this.dependencyGraph?_t(e,this.dependencyGraph):{phases:[e],warnings:[],unsatisfiedHardDeps:[]}}getDependencyGraph(){return this.dependencyGraph}enableWorkStealing(){this.workStealingTimer||(this.workStealingTimer=Ye(this.config,()=>this.triggerWorkStealing().then(()=>{})))}disableWorkStealing(){this.workStealingTimer&&(clearInterval(this.workStealingTimer),this.workStealingTimer=null)}async triggerWorkStealing(){return Zt(this.createWorkStealingContext())}listAllAgents(){return this.agentCoordinator.listAgents()}getAgentsByDomain(e){return this.agentCoordinator.listAgents({domain:e})}async requestAgentSpawn(e,t,n){if(!this.agentCoordinator.canSpawn())return y(new Error("Maximum concurrent agents reached (15)"));if(this.dependencyGraph&&this.availableMcpServers.length>0)try{for(let[,r]of this.dependencyGraph.nodes){let s=r.dependencies.mcpServers;if(!s||s.length===0)continue;let o=s.filter(l=>l.required&&!this.availableMcpServers.includes(l.name));if(o.length>0){g.warn(`Pre-spawn MCP advisory: ${r.agentName} needs ${o.map(l=>l.name).join(", ")}`,{agent:r.agentName,domain:e,missing:o.map(l=>l.name)});break}}}catch{}let i=await this.agentCoordinator.spawn({name:`${e}-${t}-${Date.now()}`,domain:e,type:t,capabilities:n});if(i.success){if(this.domainLastActivity.set(e,new Date),this.domainTeamManager&&typeof this.domainTeamManager.getDomainTeam=="function")try{if(this.domainTeamManager.getDomainTeam(e))this.domainTeamManager.addTeammate(e,i.value)||g.warn(`Agent ${i.value} could not join ${e} team (full)`);else try{this.domainTeamManager.createDomainTeam(e,i.value)}catch{this.domainTeamManager.addTeammate(e,i.value)||g.warn(`Agent ${i.value} could not join ${e} team (full or max teams reached)`)}}catch(r){g.warn(`Auto-team-wiring failed for ${i.value}`,{error:r})}await this.publishEvent("AgentSpawned",{agentId:i.value,domain:e,type:t,capabilities:n})}return i}getHealth(){let e=new Map,t=[],n=0,i=0,r=nn(this.domainPlugins,v);for(let u of r){let d=this.getDomainHealth(u);d&&(e.set(u,d),d.status==="unhealthy"?(n++,t.push({domain:u,severity:"high",message:`Domain ${u} is unhealthy`,timestamp:new Date})):d.status==="degraded"&&(i++,t.push({domain:u,severity:"medium",message:`Domain ${u} is degraded`,timestamp:new Date})))}let s=this.agentCoordinator.listAgents(),o=s.filter(u=>u.status==="running").length,l="healthy";n>0?l="unhealthy":i>r.length/2&&(l="degraded");let c={status:l,domainHealth:e,totalAgents:s.length,activeAgents:o,pendingTasks:this.getQueuedTaskCount(),runningTasks:this.getRunningTaskCount(),workStealingActive:this.workStealingTimer!==null,lastHealthCheck:new Date,issues:t};return this.minCutBridge?this.minCutBridge.extendQueenHealth(c):c}getMetrics(){let e=new Map;for(let o of v){let l=this.getDomainLoad(o);e.set(o,l)}let t=this.agentCoordinator.listAgents(),n=t.filter(o=>o.status==="running").length,i=t.length>0?n/t.length:0,r=this.taskDurations.average(),s={tasksReceived:this.tasksReceived,tasksCompleted:this.tasksCompleted,tasksFailed:this.tasksFailed,tasksStolen:this.tasksStolen,averageTaskDuration:r,domainUtilization:e,agentUtilization:i,protocolsExecuted:this.protocolsExecuted,workflowsExecuted:this.workflowsExecuted,uptime:Date.now()-this.startTime.getTime()};return this.minCutBridge?this.minCutBridge.extendQueenMetrics(s):s}getMinCutBridge(){return this.minCutBridge}injectMinCutBridgeIntoDomain(e){if(!this.minCutBridge)return g.warn("Cannot inject MinCut bridge: bridge not initialized"),!1;if(!this.domainPlugins)return g.warn("Cannot inject MinCut bridge: no domain plugins registered"),!1;let t=this.domainPlugins.get(e);return t?Ze(t)?(t.setMinCutBridge(this.minCutBridge),g.info(`MinCut bridge injected into ${e} (late binding)`),!0):(g.warn(`Domain ${e} does not support MinCut integration`),!1):(g.warn(`Cannot inject MinCut bridge: domain ${e} not found`),!1)}getTinyDancerRouter(){return this.tinyDancerRouter}getDomainBreakerRegistry(){return this.domainBreakerRegistry}getDomainTeamManager(){return this.domainTeamManager}getAgentTeamsAdapter(){return this.agentTeamsAdapter}getTierSelector(){return this.tierSelector}getTraceCollector(){return this.traceCollector}getHypothesisManager(){return this.hypothesisManager}getFederationMailbox(){return this.federationMailbox}getDynamicScaler(){return this.dynamicScaler}connectReasoningBank(e){let t=new ae(e);this.taskCompletedHook=new se({},t),g.info("ReasoningBank connected for pattern training")}async executeProtocol(e,t){if(!this.protocolExecutor)return y(new Error("Protocol executor not configured"));let n=await this.protocolExecutor.execute(e,t);return n.success?(this.protocolsExecuted++,await this.publishEvent("ProtocolExecuted",{protocolId:e,executionId:n.value.executionId}),b(n.value.executionId)):n}async executeWorkflow(e,t){if(!this.workflowExecutor)return y(new Error("Workflow executor not configured"));let n=await this.workflowExecutor.execute(e,t);return n.success?(this.workflowsExecuted++,await this.publishEvent("WorkflowExecuted",{workflowId:e,executionId:n.value.executionId}),b(n.value.executionId)):n}cleanupCompletedTasks(e=36e5){return Xe(this.tasks,this.taskTraceContexts,e)}subscribeToEvents(){this.eventSubscriptionIds=jt(this.createEventHandlerContext(),v)}enqueueTaskInternal(e){Vt(this.taskQueue,this.domainQueues,e)}async publishEvent(e,t){await this.eventBus.publish({id:T(),type:`Queen${e}`,timestamp:new Date,source:"queen-coordinator",payload:t})}queueTask(e){this.enqueueTaskInternal(e);let t={taskId:e.id,task:e,status:"queued",assignedAgents:[],retryCount:0};return this.tasks.set(e.id,t),this.tasksReceived++,this.auditLogger.logSubmit(e.id,{type:e.type,priority:e.priority}),this.auditLogger.logQueue(e.id,je(this.taskQueue,e)),this.publishEvent("TaskQueued",{taskId:e.id,task:e,position:je(this.taskQueue,e)}),b(e.id)}selectFleetTier(e){if(this.tierSelector)try{let t={trigger:e.payload?.trigger??"manual",changedFiles:e.payload?.changedFiles,affectedDomains:e.targetDomains,severity:e.priority==="p0"?"critical":e.priority==="p1"?"high":void 0,isHotfix:e.payload?.isHotfix},n=this.tierSelector.selectTier(t);return g.info(`Fleet tier: ${n.selectedTier} (${n.reason})`),n.selectedTier}catch(t){g.warn("Tier selection error (continuing)",{error:t});return}}startTaskTrace(e,t){if(this.traceCollector)try{let{context:n}=this.traceCollector.startTrace({operationName:e.type,agentId:e.requester||"queen",domain:e.targetDomains[0]||"test-generation",tags:{taskId:t,priority:e.priority}});if(this.taskTraceContexts.size>=1e4){let r=this.taskTraceContexts.keys().next().value;r!==void 0&&this.taskTraceContexts.delete(r)}this.taskTraceContexts.set(t,n)}catch(n){g.warn("Trace start error (continuing)",{error:n})}}getRunningTaskCount(){return Array.from(this.tasks.values()).filter(e=>e.status==="running"||e.status==="assigned").length}getQueuedTaskCount(){return Array.from(this.tasks.values()).filter(e=>e.status==="queued").length}initializeSubsystems(){if(this.config.enableCircuitBreakers!==!1)try{this.domainBreakerRegistry=Ot(),g.info("Domain circuit breaker registry initialized")}catch(e){g.warn("Circuit breaker initialization failed (continuing)",{error:e})}if(this.config.enableDomainTeams!==!1)try{this.agentTeamsAdapter=Ae(),this.agentTeamsAdapter.initialize(),this.domainTeamManager=Ee(this.agentTeamsAdapter),g.info("Domain team manager initialized")}catch(e){g.warn("Domain team manager initialization failed (continuing)",{error:e})}if(this.config.enableFleetTiers!==!1)try{this.tierSelector=Re(),g.info("Fleet tier selector initialized")}catch(e){g.warn("Tier selector initialization failed (continuing)",{error:e})}try{this.traceCollector=xe(),g.info("Trace collector initialized")}catch(e){g.warn("Trace collector initialization failed (continuing)",{error:e})}try{this.hypothesisManager=Fe(),this.federationMailbox=Oe(),this.dynamicScaler=Le(),g.info("Phase 4 modules initialized (hypotheses, federation, scaling)")}catch(e){g.warn("Phase 4 initialization failed (continuing)",{error:e})}}createEventHandlerContext(){let e=this;return{config:e.config,tasks:e.tasks,domainLastActivity:e.domainLastActivity,auditLogger:e.auditLogger,router:e.router,agentCoordinator:e.agentCoordinator,get runningTaskCounter(){return e.runningTaskCounter},set runningTaskCounter(t){e.runningTaskCounter=t},get tasksCompleted(){return e.tasksCompleted},set tasksCompleted(t){e.tasksCompleted=t},get tasksFailed(){return e.tasksFailed},set tasksFailed(t){e.tasksFailed=t},taskDurations:e.taskDurations,get domainBreakerRegistry(){return e.domainBreakerRegistry},get traceCollector(){return e.traceCollector},taskTraceContexts:e.taskTraceContexts,get taskCompletedHook(){return e.taskCompletedHook},get hypothesisManager(){return e.hypothesisManager},processQueue:()=>We(e.createTaskContext()),enqueueTask:t=>e.enqueueTaskInternal(t)}}createTaskContext(){let e=this;return{config:e.config,tasks:e.tasks,taskQueue:e.taskQueue,domainQueues:e.domainQueues,domainLastActivity:e.domainLastActivity,auditLogger:e.auditLogger,agentCoordinator:e.agentCoordinator,domainPlugins:e.domainPlugins,get runningTaskCounter(){return e.runningTaskCounter},set runningTaskCounter(t){e.runningTaskCounter=t},get tasksReceived(){return e.tasksReceived},set tasksReceived(t){e.tasksReceived=t},get tasksCompleted(){return e.tasksCompleted},set tasksCompleted(t){e.tasksCompleted=t},get tasksFailed(){return e.tasksFailed},set tasksFailed(t){e.tasksFailed=t},taskDurations:e.taskDurations,get tinyDancerRouter(){return e.tinyDancerRouter},get domainBreakerRegistry(){return e.domainBreakerRegistry},get domainTeamManager(){return e.domainTeamManager},get tierSelector(){return e.tierSelector},get traceCollector(){return e.traceCollector},taskTraceContexts:e.taskTraceContexts,get coExecutionRepo(){return e.coExecutionRepo},requestAgentSpawn:(t,n,i)=>e.requestAgentSpawn(t,n,i),publishEvent:(t,n)=>e.publishEvent(t,n),getDomainLoad:t=>e.getDomainLoad(t),getDomainHealth:t=>e.getDomainHealth(t)}}createWorkStealingContext(){let e=this;return{config:e.config,domainQueues:e.domainQueues,auditLogger:e.auditLogger,get tasksStolen(){return e.tasksStolen},set tasksStolen(t){e.tasksStolen=t},getIdleDomains:()=>e.getIdleDomains(),getBusyDomains:()=>e.getBusyDomains(),getDomainLoad:t=>e.getDomainLoad(t),removeFromQueues:t=>de(e.taskQueue,e.domainQueues,t),assignTaskToDomain:(t,n)=>Ke(e.createTaskContext(),t,n).then(()=>{}),publishEvent:(t,n)=>e.publishEvent(t,n)}}createMetricsContext(){let e=this;return{config:e.config,memory:e.memory,get dynamicScaler(){return e.dynamicScaler},getMetrics:()=>e.getMetrics(),publishEvent:(t,n)=>e.publishEvent(t,n),getQueuedTaskCount:()=>e.getQueuedTaskCount(),getActiveAgentCount:()=>e.agentCoordinator.listAgents().filter(t=>t.status==="running").length,getIdleAgentCount:()=>e.agentCoordinator.listAgents().filter(t=>t.status==="idle").length,getAverageTaskDuration:()=>e.taskDurations.average(),getTasksReceived:()=>e.tasksReceived,getTasksFailed:()=>e.tasksFailed,getTasksCompleted:()=>e.tasksCompleted}}};function uo(a,e,t,n,i,r){return new Je(a.eventBus,a.coordinator,a.memory,e,t,n,i,r)}export{ei as a,P as b,Je as c,uo as d};
@@ -1,2 +0,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.2");process.exit(0)}
2
- import{a as e,b as g,e as r}from"./chunk-ICKLBATY.js";import{c as o}from"./chunk-6VKJAMZY.js";var L=o(()=>{"use strict";e();g();r()});export{L as a};
@@ -1,2 +0,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.2");process.exit(0)}
2
- var s=["qe-pentest-validator","qe-security-auditor","qe-security-scanner","qe-security-reviewer"],c="anthropic/claude-sonnet-4.6",u="claude-sonnet-4-6";function o(n){return n.includes("claude-opus-4-7")||n.includes("claude-opus-4.7")}function i(n,e=process.env){return e.AQE_CYBER_VERIFIED==="true"?!1:s.includes(n)}function a(n,e,r,t=process.env){return!i(n,t)||!o(e)?e:r}export{c as a,u as b,o as c,i as d,a as e};
@@ -1,14 +0,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.2");process.exit(0)}
2
- import{c as g,n as S}from"./chunk-E3Q7WNJD.js";function E(i,e){return{ingest(t){i.ingest(t)},search(t,r){return i.search(t,r).map(n=>({id:n.id,score:n.score}))},delete(t){i.delete(t)},status(){let t=i.status();return{totalVectors:t.totalVectors,dimensions:e,totalSegments:t.totalSegments,fileSizeBytes:t.fileSizeBytes,epoch:t.epoch,witnessValid:t.witnessValid,witnessEntries:t.witnessEntries}},close(){i.close()},compact(){return i.compact()}}}function c(i,e){return(i.prepare("SELECT COUNT(*) as cnt FROM sqlite_master WHERE type='table' AND name=?").get(e)?.cnt??0)>0}function u(i,e,t){return i.prepare(`PRAGMA table_info(${e})`).all().some(n=>n.name===t)}var p=class{db;config;rvfStore=null;rvfAvailable=!1;constructor(e,t){this.db=e,this.config={...t,dimensions:t.dimensions??384},c(this.db,"qe_pattern_embeddings")&&!u(this.db,"qe_pattern_embeddings","space_id")&&(this.db.exec("ALTER TABLE qe_pattern_embeddings ADD COLUMN space_id TEXT"),this.db.exec("CREATE INDEX IF NOT EXISTS idx_qe_pattern_embeddings_space ON qe_pattern_embeddings(space_id)"))}activeSpaceId(){return this.config.embeddingSpaceId??S()?.spaceId}async initialize(){if(this.config.mode==="sqlite-only"){this.rvfAvailable=!1;return}try{let e=await import("./rvf-native-adapter-Y7SN7LHU.js");if(!e.isRvfNativeAvailable()){this.rvfAvailable=!1;return}let t;try{t=e.openRvfStore(this.config.rvfPath)}catch{try{t=e.createRvfStore(this.config.rvfPath,this.config.dimensions)}catch(r){let{quarantineUnusableStore:n}=await import("./rvf-store-integrity-OJGWWPLL.js");if(!n(this.config.rvfPath,r instanceof Error?r.message:String(r)))throw r;t=e.createRvfStore(this.config.rvfPath,this.config.dimensions)}}this.rvfStore=E(t,this.config.dimensions),g(this.config.rvfPath,this.activeSpaceId()??null,this.rvfStore.status().totalVectors),this.rvfAvailable=!0}catch(e){this.rvfAvailable=!1,console.warn(`[RVF] Dual-writer disabled for ${this.config.rvfPath}; falling back to SQLite: ${e instanceof Error?e.message:String(e)}`)}}setRvfStore(e){this.rvfStore=e,this.rvfAvailable=!0}writePattern(e,t){let r={sqliteSuccess:!1,rvfSuccess:!1};if(!u(this.db,"qe_pattern_embeddings","space_id")||!this.activeSpaceId())return{...r,divergence:"VECTOR_SPACE_UNVERIFIED"};try{this.writeSqliteEmbedding(e,t),r.sqliteSuccess=!0}catch{r.sqliteSuccess=!1}if(this.shouldWriteRvf())try{this.rvfStore.ingest([{id:e,vector:t instanceof Float32Array?Array.from(t):t}]),r.rvfSuccess=!0}catch{r.rvfSuccess=!1,r.divergence="rvf-write-failed"}return r}deletePattern(e){let t={sqliteSuccess:!1,rvfSuccess:!1};try{this.deleteSqliteEmbedding(e),t.sqliteSuccess=!0}catch{t.sqliteSuccess=!1}if(this.shouldWriteRvf())try{this.rvfStore.delete([e]),t.rvfSuccess=!0}catch{t.rvfSuccess=!1,t.divergence="rvf-delete-failed"}return t}search(e,t){if(!this.hasCompatibleEmbeddingSpace())return[];if(this.config.mode==="rvf-primary"&&this.rvfAvailable&&this.rvfStore)try{return this.rvfStore.search(e,t)}catch{}return this.searchSqlite(e,t)}getDivergenceReport(){let e={totalChecked:0,divergences:0,details:[]},t=this.getSqliteEmbeddingCount();if(e.totalChecked=t,!this.rvfAvailable||!this.rvfStore)return this.config.mode!=="sqlite-only"&&t>0&&(e.divergences=1,e.details.push({patternId:"*",issue:"count-mismatch"})),e;let n=this.rvfStore.status().totalVectors;return t!==n&&(e.divergences=1,e.details.push({patternId:"*",issue:"count-mismatch"})),e}isPromotionSafe(){return this.getDivergenceReport().divergences===0}status(){let e=this.getSqlitePatternCount(),t=this.getSqliteEmbeddingCount(),r=null;if(this.rvfAvailable&&this.rvfStore)try{r=this.rvfStore.status()}catch{r=null}return{sqlite:{patternCount:e,vectorCount:t},rvf:r,mode:this.config.mode}}close(){if(this.rvfStore){try{this.rvfStore.close()}catch{}this.rvfStore=null,this.rvfAvailable=!1}}compact(){if(!this.rvfStore||!this.rvfAvailable||!this.rvfStore.compact)return null;try{return this.rvfStore.compact()??null}catch{return null}}shouldWriteRvf(){return(this.config.mode==="dual-write"||this.config.mode==="rvf-primary")&&this.rvfAvailable&&this.rvfStore!==null}hasCompatibleEmbeddingSpace(){if(!u(this.db,"qe_pattern_embeddings","space_id"))return!1;let e=this.activeSpaceId();return e?(this.db.prepare(`
3
- SELECT COUNT(*) AS incompatible
4
- FROM qe_pattern_embeddings
5
- WHERE space_id IS NULL OR space_id <> ?
6
- `).get(e)?.incompatible??0)===0:!1}writeSqliteEmbedding(e,t){let r=Buffer.from(t instanceof Float32Array?t.buffer:new Float32Array(t).buffer),n=t.length;if(c(this.db,"qe_pattern_embeddings")){let d=this.activeSpaceId();if(u(this.db,"qe_pattern_embeddings","space_id")){if(!d)throw new Error("VECTOR_SPACE_UNVERIFIED: dual writer has no runtime provenance");this.db.prepare(`
7
- INSERT INTO qe_pattern_embeddings (pattern_id, embedding, dimension, model, space_id, created_at)
8
- VALUES (?, ?, ?, 'all-MiniLM-L6-v2', ?, datetime('now'))
9
- ON CONFLICT(pattern_id) DO UPDATE SET
10
- embedding = excluded.embedding,
11
- dimension = excluded.dimension,
12
- space_id = excluded.space_id,
13
- created_at = datetime('now')
14
- `).run(e,r,n,d);return}throw new Error("VECTOR_SPACE_UNVERIFIED: canonical space_id column is unavailable")}}deleteSqliteEmbedding(e){c(this.db,"qe_pattern_embeddings")&&this.db.prepare("DELETE FROM qe_pattern_embeddings WHERE pattern_id = ?").run(e)}getSqliteEmbeddingCount(){return c(this.db,"qe_pattern_embeddings")?this.db.prepare("SELECT COUNT(*) as cnt FROM qe_pattern_embeddings").get()?.cnt??0:0}getSqlitePatternCount(){return c(this.db,"qe_patterns")?this.db.prepare("SELECT COUNT(*) as cnt FROM qe_patterns").get()?.cnt??0:0}searchSqlite(e,t){if(!c(this.db,"qe_pattern_embeddings"))return[];let r=this.activeSpaceId();if(!u(this.db,"qe_pattern_embeddings","space_id")||!r)return[];let d=this.db.prepare("SELECT pattern_id, embedding, dimension FROM qe_pattern_embeddings WHERE space_id = ?").all(r),m=e instanceof Float32Array?Array.from(e):e,h=Math.sqrt(m.reduce((s,o)=>s+o*o,0));if(h===0)return[];let v=[];for(let s of d){let o=new Float32Array(s.embedding.buffer,s.embedding.byteOffset,s.dimension),f=Array.from(o),b=0,l=0;for(let a=0;a<f.length&&a<m.length;a++)b+=f[a]*m[a],l+=f[a]*f[a];l=Math.sqrt(l);let _=l>0?b/(h*l):0;v.push({id:s.pattern_id,score:_})}return v.sort((s,o)=>o.score-s.score),v.slice(0,t)}};function A(i,e){return new p(i,e)}export{p as a,A as b};