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.
- package/.claude/agents/v3/qe-coverage-specialist.md +1 -1
- package/.claude/agents/v3/qe-fleet-commander.md +1 -1
- package/.claude/agents/v3/qe-pentest-validator.md +1 -1
- package/.claude/agents/v3/qe-queen-coordinator.md +1 -1
- package/.claude/agents/v3/qe-risk-assessor.md +1 -1
- package/.claude/agents/v3/qe-root-cause-analyzer.md +1 -1
- package/.claude/agents/v3/qe-security-auditor.md +1 -1
- package/.claude/agents/v3/qe-test-architect.md +1 -1
- package/.claude/commands/aqe-costs.md +10 -10
- package/.claude/helpers/advisor-call.cjs +3 -3
- package/.claude/helpers/v3/advisor-call.cjs +3 -3
- package/.claude/skills/.validation/examples/chaos-engineering-output.example.json +1 -1
- package/.claude/skills/.validation/examples/performance-testing-output.example.json +1 -1
- package/.claude/skills/.validation/examples/security-testing-output.example.json +1 -1
- package/.claude/skills/.validation/examples/testability-scoring-output.example.json +1 -1
- package/.claude/skills/.validation/schemas/skill-eval.schema.json +4 -1
- package/.claude/skills/.validation/schemas/skill-frontmatter.schema.json +1 -1
- package/.claude/skills/.validation/schemas/skill-output.template.json +1 -1
- package/.claude/skills/.validation/templates/eval.template.yaml +1 -1
- package/.claude/skills/.validation/templates/security-testing-eval.template.yaml +1 -1
- package/.claude/skills/.validation/templates/skill-frontmatter.example.yaml +1 -1
- package/.claude/skills/.validation/test-data/sample-output.json +1 -1
- package/.claude/skills/a11y-ally/SKILL.md +1 -1
- package/.claude/skills/a11y-ally/evals/a11y-ally.yaml +1 -1
- package/.claude/skills/accessibility-testing/evals/accessibility-testing.yaml +1 -1
- package/.claude/skills/api-testing-patterns/evals/api-testing-patterns.yaml +1 -1
- package/.claude/skills/chaos-engineering-resilience/evals/chaos-engineering-resilience.yaml +1 -1
- package/.claude/skills/cicd-pipeline-qe-orchestrator/evals/cicd-pipeline-qe-orchestrator.yaml +1 -1
- package/.claude/skills/compatibility-testing/evals/compatibility-testing.yaml +1 -1
- package/.claude/skills/compliance-testing/evals/compliance-testing.yaml +1 -1
- package/.claude/skills/contract-testing/evals/contract-testing.yaml +1 -1
- package/.claude/skills/database-testing/evals/database-testing.yaml +1 -1
- package/.claude/skills/enterprise-integration-testing/evals/enterprise-integration-testing.yaml +1 -1
- package/.claude/skills/localization-testing/evals/localization-testing.yaml +1 -1
- package/.claude/skills/middleware-testing-patterns/evals/middleware-testing-patterns.yaml +1 -1
- package/.claude/skills/mobile-testing/evals/mobile-testing.yaml +1 -1
- package/.claude/skills/mutation-testing/evals/mutation-testing.yaml +1 -1
- package/.claude/skills/mutation-testing/test-data/sample-output.json +1 -1
- package/.claude/skills/n8n-expression-testing/evals/n8n-expression-testing.yaml +1 -1
- package/.claude/skills/n8n-integration-testing-patterns/evals/n8n-integration-testing-patterns.yaml +1 -1
- package/.claude/skills/n8n-security-testing/evals/n8n-security-testing.yaml +1 -1
- package/.claude/skills/n8n-trigger-testing-strategies/evals/n8n-trigger-testing-strategies.yaml +1 -1
- package/.claude/skills/n8n-workflow-testing-fundamentals/evals/n8n-workflow-testing-fundamentals.yaml +1 -1
- package/.claude/skills/observability-testing-patterns/evals/observability-testing-patterns.yaml +1 -1
- package/.claude/skills/pentest-validation/evals/pentest-validation.yaml +1 -1
- package/.claude/skills/performance-testing/evals/performance-testing.yaml +1 -1
- package/.claude/skills/qcsd-cicd-swarm/evals/qcsd-cicd-swarm.yaml +1 -1
- package/.claude/skills/qcsd-development-swarm/evals/qcsd-development-swarm.yaml +1 -1
- package/.claude/skills/qcsd-ideation-swarm/evals/qcsd-ideation-swarm.yaml +1 -1
- package/.claude/skills/qcsd-production-swarm/evals/qcsd-production-swarm.yaml +1 -1
- package/.claude/skills/qcsd-refinement-swarm/evals/qcsd-refinement-swarm.yaml +1 -1
- package/.claude/skills/qe-browser/evals/qe-browser.yaml +1 -1
- package/.claude/skills/qe-chaos-resilience/evals/qe-chaos-resilience.yaml +1 -1
- package/.claude/skills/qe-code-intelligence/evals/qe-code-intelligence.yaml +1 -1
- package/.claude/skills/qe-coverage-analysis/evals/qe-coverage-analysis.yaml +1 -1
- package/.claude/skills/qe-defect-intelligence/evals/qe-defect-intelligence.yaml +1 -1
- package/.claude/skills/qe-learning-optimization/evals/qe-learning-optimization.yaml +2 -2
- package/.claude/skills/qe-quality-assessment/evals/qe-quality-assessment.yaml +1 -1
- package/.claude/skills/qe-requirements-validation/evals/qe-requirements-validation.yaml +1 -1
- package/.claude/skills/qe-test-execution/evals/qe-test-execution.yaml +1 -1
- package/.claude/skills/qe-test-generation/evals/qe-test-generation.yaml +1 -1
- package/.claude/skills/qe-visual-accessibility/evals/qe-visual-accessibility.yaml +1 -1
- package/.claude/skills/quality-metrics/evals/quality-metrics.yaml +1 -1
- package/.claude/skills/regression-testing/evals/regression-testing.yaml +1 -1
- package/.claude/skills/risk-based-testing/evals/risk-based-testing.yaml +1 -1
- package/.claude/skills/security-testing/evals/security-testing.yaml +1 -1
- package/.claude/skills/security-visual-testing/evals/security-visual-testing.yaml +1 -1
- package/.claude/skills/shift-left-testing/evals/shift-left-testing.yaml +1 -1
- package/.claude/skills/shift-right-testing/evals/shift-right-testing.yaml +1 -1
- package/.claude/skills/skills-manifest.json +1 -1
- package/.claude/skills/test-automation-strategy/evals/test-automation-strategy.yaml +1 -1
- package/.claude/skills/test-data-management/evals/test-data-management.yaml +1 -1
- package/.claude/skills/test-design-techniques/evals/test-design-techniques.yaml +1 -1
- package/.claude/skills/test-reporting-analytics/evals/test-reporting-analytics.yaml +1 -1
- package/.claude/skills/testability-scoring/evals/testability-scoring.yaml +1 -1
- package/.claude/skills/validation-pipeline/evals/validation-pipeline.yaml +1 -1
- package/.claude/skills/verification-quality/evals/verification-quality.yaml +1 -1
- package/.claude/skills/visual-testing-advanced/evals/visual-testing-advanced.yaml +1 -1
- package/.claude/skills/wms-testing-patterns/evals/wms-testing-patterns.yaml +1 -1
- package/.opencode/agents/collective-intelligence-coordinator.yaml +1 -1
- package/.opencode/agents/ddd-domain-expert.yaml +1 -1
- package/.opencode/agents/memory-specialist.yaml +1 -1
- package/.opencode/agents/performance-engineer.yaml +1 -1
- package/.opencode/agents/qe-accessibility-auditor.yaml +1 -1
- package/.opencode/agents/qe-api-contract-validator.yaml +1 -1
- package/.opencode/agents/qe-bdd-generator.yaml +1 -1
- package/.opencode/agents/qe-chaos-engineer.yaml +1 -1
- package/.opencode/agents/qe-code-complexity.yaml +1 -1
- package/.opencode/agents/qe-code-intelligence.yaml +1 -1
- package/.opencode/agents/qe-coverage-analyzer.yaml +1 -1
- package/.opencode/agents/qe-defect-predictor.yaml +1 -1
- package/.opencode/agents/qe-dependency-mapper.yaml +1 -1
- package/.opencode/agents/qe-deployment-advisor.yaml +1 -1
- package/.opencode/agents/qe-devils-advocate.yaml +1 -1
- package/.opencode/agents/qe-flaky-hunter.yaml +1 -1
- package/.opencode/agents/qe-fleet-commander.yaml +1 -1
- package/.opencode/agents/qe-gap-detector.yaml +1 -1
- package/.opencode/agents/qe-graphql-tester.yaml +1 -1
- package/.opencode/agents/qe-impact-analyzer.yaml +1 -1
- package/.opencode/agents/qe-integration-architect.yaml +1 -1
- package/.opencode/agents/qe-integration-tester.yaml +1 -1
- package/.opencode/agents/qe-kg-builder.yaml +1 -1
- package/.opencode/agents/qe-learning-coordinator.yaml +1 -1
- package/.opencode/agents/qe-load-tester.yaml +1 -1
- package/.opencode/agents/qe-message-broker-tester.yaml +1 -1
- package/.opencode/agents/qe-metrics-optimizer.yaml +1 -1
- package/.opencode/agents/qe-middleware-validator.yaml +1 -1
- package/.opencode/agents/qe-mutation-tester.yaml +1 -1
- package/.opencode/agents/qe-odata-contract-tester.yaml +1 -1
- package/.opencode/agents/qe-parallel-executor.yaml +1 -1
- package/.opencode/agents/qe-pattern-learner.yaml +1 -1
- package/.opencode/agents/qe-pentest-validator.yaml +1 -1
- package/.opencode/agents/qe-performance-tester.yaml +1 -1
- package/.opencode/agents/qe-product-factors-assessor.yaml +1 -1
- package/.opencode/agents/qe-property-tester.yaml +1 -1
- package/.opencode/agents/qe-quality-criteria-recommender.yaml +1 -1
- package/.opencode/agents/qe-quality-gate.yaml +1 -1
- package/.opencode/agents/qe-queen-coordinator.yaml +1 -1
- package/.opencode/agents/qe-qx-partner.yaml +1 -1
- package/.opencode/agents/qe-regression-analyzer.yaml +1 -1
- package/.opencode/agents/qe-requirements-validator.yaml +1 -1
- package/.opencode/agents/qe-responsive-tester.yaml +1 -1
- package/.opencode/agents/qe-retry-handler.yaml +1 -1
- package/.opencode/agents/qe-risk-assessor.yaml +1 -1
- package/.opencode/agents/qe-root-cause-analyzer.yaml +1 -1
- package/.opencode/agents/qe-sap-idoc-tester.yaml +1 -1
- package/.opencode/agents/qe-sap-rfc-tester.yaml +1 -1
- package/.opencode/agents/qe-security-auditor.yaml +1 -1
- package/.opencode/agents/qe-security-scanner.yaml +1 -1
- package/.opencode/agents/qe-soap-tester.yaml +1 -1
- package/.opencode/agents/qe-sod-analyzer.yaml +1 -1
- package/.opencode/agents/qe-tdd-specialist.yaml +1 -1
- package/.opencode/agents/qe-test-generator.yaml +1 -1
- package/.opencode/agents/qe-test-idea-rewriter.yaml +1 -1
- package/.opencode/agents/qe-transfer-specialist.yaml +1 -1
- package/.opencode/agents/qe-visual-tester.yaml +1 -1
- package/.opencode/agents/security-architect.yaml +1 -1
- package/.opencode/agents/security-auditor.yaml +1 -1
- package/CHANGELOG.md +183 -0
- package/README.md +7 -2
- package/assets/agents/v3/helpers/advisor-call.cjs +3 -3
- package/assets/agents/v3/qe-coverage-specialist.md +1 -1
- package/assets/agents/v3/qe-fleet-commander.md +1 -1
- package/assets/agents/v3/qe-pentest-validator.md +1 -1
- package/assets/agents/v3/qe-queen-coordinator.md +1 -1
- package/assets/agents/v3/qe-risk-assessor.md +1 -1
- package/assets/agents/v3/qe-root-cause-analyzer.md +1 -1
- package/assets/agents/v3/qe-security-auditor.md +1 -1
- package/assets/agents/v3/qe-test-architect.md +1 -1
- package/assets/skills/.validation/examples/chaos-engineering-output.example.json +1 -1
- package/assets/skills/.validation/examples/performance-testing-output.example.json +1 -1
- package/assets/skills/.validation/examples/security-testing-output.example.json +1 -1
- package/assets/skills/.validation/examples/testability-scoring-output.example.json +1 -1
- package/assets/skills/.validation/schemas/skill-eval.schema.json +4 -1
- package/assets/skills/.validation/schemas/skill-frontmatter.schema.json +1 -1
- package/assets/skills/.validation/schemas/skill-output.template.json +1 -1
- package/assets/skills/.validation/templates/eval.template.yaml +1 -1
- package/assets/skills/.validation/templates/security-testing-eval.template.yaml +1 -1
- package/assets/skills/.validation/templates/skill-frontmatter.example.yaml +1 -1
- package/assets/skills/.validation/test-data/sample-output.json +1 -1
- package/assets/skills/a11y-ally/SKILL.md +1 -1
- package/assets/skills/a11y-ally/evals/a11y-ally.yaml +1 -1
- package/assets/skills/accessibility-testing/evals/accessibility-testing.yaml +1 -1
- package/assets/skills/api-testing-patterns/evals/api-testing-patterns.yaml +1 -1
- package/assets/skills/chaos-engineering-resilience/evals/chaos-engineering-resilience.yaml +1 -1
- package/assets/skills/cicd-pipeline-qe-orchestrator/evals/cicd-pipeline-qe-orchestrator.yaml +1 -1
- package/assets/skills/compatibility-testing/evals/compatibility-testing.yaml +1 -1
- package/assets/skills/compliance-testing/evals/compliance-testing.yaml +1 -1
- package/assets/skills/contract-testing/evals/contract-testing.yaml +1 -1
- package/assets/skills/database-testing/evals/database-testing.yaml +1 -1
- package/assets/skills/enterprise-integration-testing/evals/enterprise-integration-testing.yaml +1 -1
- package/assets/skills/localization-testing/evals/localization-testing.yaml +1 -1
- package/assets/skills/middleware-testing-patterns/evals/middleware-testing-patterns.yaml +1 -1
- package/assets/skills/mobile-testing/evals/mobile-testing.yaml +1 -1
- package/assets/skills/mutation-testing/evals/mutation-testing.yaml +1 -1
- package/assets/skills/mutation-testing/test-data/sample-output.json +1 -1
- package/assets/skills/n8n-expression-testing/evals/n8n-expression-testing.yaml +1 -1
- package/assets/skills/n8n-integration-testing-patterns/evals/n8n-integration-testing-patterns.yaml +1 -1
- package/assets/skills/n8n-security-testing/evals/n8n-security-testing.yaml +1 -1
- package/assets/skills/n8n-trigger-testing-strategies/evals/n8n-trigger-testing-strategies.yaml +1 -1
- package/assets/skills/n8n-workflow-testing-fundamentals/evals/n8n-workflow-testing-fundamentals.yaml +1 -1
- package/assets/skills/observability-testing-patterns/evals/observability-testing-patterns.yaml +1 -1
- package/assets/skills/pentest-validation/evals/pentest-validation.yaml +1 -1
- package/assets/skills/performance-testing/evals/performance-testing.yaml +1 -1
- package/assets/skills/qcsd-cicd-swarm/evals/qcsd-cicd-swarm.yaml +1 -1
- package/assets/skills/qcsd-development-swarm/evals/qcsd-development-swarm.yaml +1 -1
- package/assets/skills/qcsd-ideation-swarm/evals/qcsd-ideation-swarm.yaml +1 -1
- package/assets/skills/qcsd-production-swarm/evals/qcsd-production-swarm.yaml +1 -1
- package/assets/skills/qcsd-refinement-swarm/evals/qcsd-refinement-swarm.yaml +1 -1
- package/assets/skills/qe-browser/evals/qe-browser.yaml +1 -1
- package/assets/skills/qe-chaos-resilience/evals/qe-chaos-resilience.yaml +1 -1
- package/assets/skills/qe-code-intelligence/evals/qe-code-intelligence.yaml +1 -1
- package/assets/skills/qe-coverage-analysis/evals/qe-coverage-analysis.yaml +1 -1
- package/assets/skills/qe-defect-intelligence/evals/qe-defect-intelligence.yaml +1 -1
- package/assets/skills/qe-learning-optimization/evals/qe-learning-optimization.yaml +2 -2
- package/assets/skills/qe-quality-assessment/evals/qe-quality-assessment.yaml +1 -1
- package/assets/skills/qe-requirements-validation/evals/qe-requirements-validation.yaml +1 -1
- package/assets/skills/qe-test-execution/evals/qe-test-execution.yaml +1 -1
- package/assets/skills/qe-test-generation/evals/qe-test-generation.yaml +1 -1
- package/assets/skills/qe-visual-accessibility/evals/qe-visual-accessibility.yaml +1 -1
- package/assets/skills/quality-metrics/evals/quality-metrics.yaml +1 -1
- package/assets/skills/regression-testing/evals/regression-testing.yaml +1 -1
- package/assets/skills/risk-based-testing/evals/risk-based-testing.yaml +1 -1
- package/assets/skills/security-testing/evals/security-testing.yaml +1 -1
- package/assets/skills/security-visual-testing/evals/security-visual-testing.yaml +1 -1
- package/assets/skills/shift-left-testing/evals/shift-left-testing.yaml +1 -1
- package/assets/skills/shift-right-testing/evals/shift-right-testing.yaml +1 -1
- package/assets/skills/skills-manifest.json +1 -1
- package/assets/skills/test-automation-strategy/evals/test-automation-strategy.yaml +1 -1
- package/assets/skills/test-data-management/evals/test-data-management.yaml +1 -1
- package/assets/skills/test-design-techniques/evals/test-design-techniques.yaml +1 -1
- package/assets/skills/test-reporting-analytics/evals/test-reporting-analytics.yaml +1 -1
- package/assets/skills/testability-scoring/evals/testability-scoring.yaml +1 -1
- package/assets/skills/validation-pipeline/evals/validation-pipeline.yaml +1 -1
- package/assets/skills/verification-quality/evals/verification-quality.yaml +1 -1
- package/assets/skills/visual-testing-advanced/evals/visual-testing-advanced.yaml +1 -1
- package/assets/skills/wms-testing-patterns/evals/wms-testing-patterns.yaml +1 -1
- package/dist/cli/bundle.js +7 -7
- package/dist/cli/chunks/adapter-TNNNJRDG.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-SD5N32MX.js → agent-booster-wasm-5PC7D2FW.js} +2 -2
- package/dist/cli/chunks/{agent-handler-OZRSJM7F.js → agent-handler-RDNTK4CA.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-NYTRANRN.js → agent-memory-branch-NAAMBWIR.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-5ZRMYJLB.js +2 -0
- package/dist/cli/chunks/{arena-EX3SC2DP.js → arena-HXTWJ5YY.js} +4 -4
- package/dist/cli/chunks/{arena-FOTVSRK4.js → arena-KXFHRWX4.js} +2 -2
- package/dist/cli/chunks/{audit-Q5GHSUQY.js → audit-YSGA7UWT.js} +3 -3
- package/dist/cli/chunks/base-KWZHOPSH.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-S7M5R2HS.js → better-sqlite3-UICJZIDG.js} +2 -2
- package/dist/cli/chunks/brain-handler-ET6YAP4B.js +90 -0
- package/dist/cli/chunks/{branch-enumerator-RWAXTGEU.js → branch-enumerator-SS7UNVIA.js} +2 -2
- package/dist/cli/chunks/{browser-IGDESJGF.js → browser-77GI6KBE.js} +2 -2
- package/dist/cli/chunks/browser-workflow-2FZTKDUL.js +2 -0
- package/dist/cli/chunks/{chunk-U54OOA24.js → chunk-2JW3BCGG.js} +1 -1
- package/dist/cli/chunks/{chunk-LML5VTFK.js → chunk-33YYYWBQ.js} +1 -1
- package/dist/cli/chunks/{chunk-P64DMQ2C.js → chunk-34WO57CW.js} +1 -1
- package/dist/cli/chunks/{chunk-57TNBR2P.js → chunk-3QHGWY7T.js} +2 -2
- package/dist/cli/chunks/chunk-3TW5W5LX.js +2 -0
- package/dist/cli/chunks/{chunk-S4MR6RTE.js → chunk-3UPAMMCB.js} +1 -1
- package/dist/cli/chunks/{chunk-5WJUNRTY.js → chunk-3VOQRIQM.js} +2 -2
- package/dist/cli/chunks/{chunk-4RT7I7PI.js → chunk-3X3DJZJJ.js} +1 -1
- package/dist/cli/chunks/{chunk-RFNEHNJV.js → chunk-4MHXCAG2.js} +1 -1
- package/dist/cli/chunks/{chunk-PMUBG2RU.js → chunk-4OYFXLBK.js} +2 -2
- package/dist/cli/chunks/{chunk-W2FLULF4.js → chunk-55RWDRJD.js} +3 -3
- package/dist/cli/chunks/chunk-5R3QL7WN.js +14 -0
- package/dist/cli/chunks/{chunk-RHJVDCLV.js → chunk-5SJHQ2CO.js} +2 -2
- package/dist/cli/chunks/{chunk-HBTC4L53.js → chunk-5YPYDPBJ.js} +2 -2
- package/dist/cli/chunks/chunk-5Z6XZV7K.js +65 -0
- package/dist/cli/chunks/{chunk-6EHN7Q2Q.js → chunk-64PFWE2F.js} +2 -2
- package/dist/cli/chunks/{chunk-KFXZDQ5J.js → chunk-6CQN24ZK.js} +1 -1
- package/dist/cli/chunks/{chunk-WVY22NHZ.js → chunk-6J62K3SW.js} +2 -2
- package/dist/cli/chunks/{chunk-TLPL3EQY.js → chunk-6KJABXAR.js} +2 -2
- package/dist/cli/chunks/{chunk-PZKZY6PB.js → chunk-6QYNWR7U.js} +2 -2
- package/dist/cli/chunks/{chunk-A7N3YUDJ.js → chunk-6TPKK7LD.js} +2 -2
- package/dist/cli/chunks/{chunk-RYJHREYS.js → chunk-6UWGMOND.js} +2 -2
- package/dist/cli/chunks/{chunk-XPLSLHRB.js → chunk-6VRA2QGL.js} +1 -1
- package/dist/cli/chunks/{chunk-Q3JHS3UD.js → chunk-7D777LTF.js} +2 -2
- package/dist/cli/chunks/chunk-7ZIOFPL3.js +2 -0
- package/dist/cli/chunks/chunk-A4FYONNU.js +2 -0
- package/dist/cli/chunks/{chunk-7AFBNU6K.js → chunk-AIHDEEJO.js} +2 -2
- package/dist/cli/chunks/{chunk-L2F7FVIU.js → chunk-AUXFKCQL.js} +2 -2
- package/dist/cli/chunks/{chunk-67A6PEZM.js → chunk-AWWNB2T7.js} +2 -2
- package/dist/cli/chunks/{chunk-DVHWLAEO.js → chunk-BDESSCVR.js} +3 -3
- package/dist/cli/chunks/{chunk-JQ2ZD3WO.js → chunk-BFP7KO7P.js} +2 -2
- package/dist/cli/chunks/{chunk-N5ZRUOMR.js → chunk-BGE6FOLM.js} +2 -2
- package/dist/cli/chunks/{chunk-BWRHOIYC.js → chunk-BOARZKU3.js} +2 -2
- package/dist/cli/chunks/{chunk-CTCQOYBS.js → chunk-BOZZYWCR.js} +1 -1
- package/dist/cli/chunks/{chunk-NHHWLJQF.js → chunk-C2WU3533.js} +1 -1
- package/dist/cli/chunks/{chunk-5EHLGOWW.js → chunk-CDHQFHRP.js} +2 -2
- package/dist/cli/chunks/chunk-CDKG6EI7.js +16 -0
- package/dist/cli/chunks/{chunk-RGH3WGWD.js → chunk-CIKSHTEQ.js} +3 -3
- package/dist/cli/chunks/{chunk-K574FLVB.js → chunk-CIZ5JPDC.js} +2 -2
- package/dist/cli/chunks/{chunk-LWUJQGCS.js → chunk-CLTMDCSE.js} +2 -2
- package/dist/cli/chunks/{chunk-GHQ5PUOV.js → chunk-CNG6GQEZ.js} +2 -2
- package/dist/cli/chunks/{chunk-3C2K4YMS.js → chunk-CSU5NYOX.js} +3 -3
- package/dist/cli/chunks/chunk-CU46J64M.js +4 -0
- package/dist/cli/chunks/{chunk-EH5OCHAJ.js → chunk-CXQPR5MY.js} +1 -1
- package/dist/cli/chunks/chunk-DA5K5754.js +96 -0
- package/dist/cli/chunks/{chunk-FVGTINVR.js → chunk-DAEFDCJ4.js} +81 -65
- package/dist/cli/chunks/{chunk-MH73D5TN.js → chunk-DEYLEDJN.js} +2 -2
- package/dist/cli/chunks/{chunk-7FWP7CZY.js → chunk-DFZCKIGY.js} +3 -3
- package/dist/cli/chunks/{chunk-QXTW7XCS.js → chunk-DHJPWQBR.js} +2 -2
- package/dist/cli/chunks/{chunk-NAZVPZJS.js → chunk-DOTK76IJ.js} +2 -2
- package/dist/cli/chunks/{chunk-RCI64RIJ.js → chunk-DPFRKBOG.js} +2 -2
- package/dist/cli/chunks/{chunk-WMW47QMR.js → chunk-EDJ3O7RH.js} +2 -2
- package/dist/cli/chunks/{chunk-4K27ESCA.js → chunk-EKQ673SA.js} +1 -1
- package/dist/cli/chunks/chunk-F3SBRQC6.js +2 -0
- package/dist/cli/chunks/{chunk-4N44UJGI.js → chunk-FGYMFUE2.js} +2 -2
- package/dist/cli/chunks/chunk-FLYOJOKN.js +2 -0
- package/dist/cli/chunks/{chunk-W4OQYLYO.js → chunk-FRH6VAUS.js} +1 -1
- package/dist/cli/chunks/{chunk-VOYJJ3KA.js → chunk-FWGOHAAB.js} +2 -2
- package/dist/cli/chunks/{chunk-D4RCV4LY.js → chunk-G6T45OIC.js} +2 -2
- package/dist/cli/chunks/{chunk-2EHFEMRU.js → chunk-GPLQ6DOK.js} +2 -2
- package/dist/cli/chunks/{chunk-RVCWSAXI.js → chunk-HDSAM2RE.js} +2 -2
- package/dist/cli/chunks/chunk-HIVA55CJ.js +2 -0
- package/dist/cli/chunks/{chunk-6F4WHN7D.js → chunk-HIYXCDEP.js} +1 -1
- package/dist/cli/chunks/{chunk-NRR23SJV.js → chunk-HUWNIPZ5.js} +1 -1
- package/dist/cli/chunks/{chunk-4M6A3PVJ.js → chunk-HV2J7KKQ.js} +2 -2
- package/dist/cli/chunks/{chunk-CJHVOBJY.js → chunk-IFCLB7FJ.js} +1 -1
- package/dist/cli/chunks/{chunk-Q335R4MR.js → chunk-IPR4QP3H.js} +2 -2
- package/dist/cli/chunks/{chunk-HZMLNM2T.js → chunk-ISDMD6EU.js} +178 -175
- package/dist/cli/chunks/chunk-J6GNQS62.js +5 -0
- package/dist/cli/chunks/{chunk-3DFFFXXO.js → chunk-JBNEE5UH.js} +2 -2
- package/dist/cli/chunks/chunk-JZ3ORVZ3.js +54 -0
- package/dist/cli/chunks/{chunk-T4C56HBW.js → chunk-KCZR45PA.js} +2 -2
- package/dist/cli/chunks/chunk-KGT36Z42.js +14 -0
- package/dist/cli/chunks/{chunk-JIUF6NV6.js → chunk-KHFNNVJA.js} +2 -2
- package/dist/cli/chunks/{chunk-7SK6IMGZ.js → chunk-KPA7MZ6C.js} +2 -2
- package/dist/cli/chunks/{chunk-G2CLZVYI.js → chunk-KSKEF7LZ.js} +3 -3
- package/dist/cli/chunks/{chunk-6LMLN5R2.js → chunk-M2JBBZQB.js} +2 -2
- package/dist/cli/chunks/{chunk-UHTAI4ZB.js → chunk-M4WJKGVK.js} +1 -1
- package/dist/cli/chunks/{chunk-KZOBLLXW.js → chunk-M5QUBZY6.js} +2 -2
- package/dist/cli/chunks/{chunk-42WUDDUU.js → chunk-MCUJEZT6.js} +2 -2
- package/dist/cli/chunks/{chunk-ZFGND4QK.js → chunk-MDWCE7YW.js} +1 -1
- package/dist/cli/chunks/{chunk-TYVQNYXX.js → chunk-MEGDYJPV.js} +7 -7
- package/dist/cli/chunks/chunk-MIQTXNBG.js +4 -0
- package/dist/cli/chunks/{chunk-PFXX5Q32.js → chunk-MNW6QGNJ.js} +2 -2
- package/dist/cli/chunks/{chunk-IVGVOGIZ.js → chunk-MOBNBMFW.js} +1 -1
- package/dist/cli/chunks/{chunk-NWFIJNEB.js → chunk-MTZH7AHC.js} +1 -1
- package/dist/cli/chunks/chunk-MVNP7GIR.js +2 -0
- package/dist/cli/chunks/chunk-MVPCNSPY.js +2 -0
- package/dist/cli/chunks/chunk-NA7B2QYB.js +2 -0
- package/dist/cli/chunks/{chunk-E3Q7WNJD.js → chunk-NDPFGIMJ.js} +3 -3
- package/dist/cli/chunks/{chunk-GHUPID5E.js → chunk-NJBGXDQ7.js} +1 -1
- package/dist/cli/chunks/chunk-OBAP2TXZ.js +2 -0
- package/dist/cli/chunks/{chunk-OBCKP3G4.js → chunk-OCWWP5PL.js} +4 -4
- package/dist/cli/chunks/{chunk-CJCT452S.js → chunk-ODKLFVYC.js} +2 -2
- package/dist/cli/chunks/{chunk-YN6W2XIT.js → chunk-ONII3572.js} +4 -4
- package/dist/cli/chunks/{chunk-QW4LN5NK.js → chunk-OSLYSG3B.js} +2 -2
- package/dist/cli/chunks/{chunk-HZ6NEJMO.js → chunk-OULHKEVH.js} +2 -2
- package/dist/cli/chunks/{chunk-CG2MUD7U.js → chunk-PAWXJ73E.js} +1 -1
- package/dist/cli/chunks/chunk-PEPFCPES.js +2 -0
- package/dist/cli/chunks/{chunk-UIGEUEBT.js → chunk-PFR4G3DJ.js} +2 -2
- package/dist/cli/chunks/chunk-PO3IXGMQ.js +2 -0
- package/dist/cli/chunks/{chunk-6SZKLWZT.js → chunk-PZJOPURC.js} +5 -5
- package/dist/cli/chunks/{chunk-ARMZYHYL.js → chunk-Q5DO24IJ.js} +2 -2
- package/dist/cli/chunks/chunk-QGIU2WRL.js +2 -0
- package/dist/cli/chunks/{chunk-N3RN4QTC.js → chunk-R4VL6E65.js} +2 -2
- package/dist/cli/chunks/{chunk-MWQTACNA.js → chunk-R5NE6B2M.js} +2 -2
- package/dist/cli/chunks/{chunk-T46LOLW3.js → chunk-RJCYCLZV.js} +2 -2
- package/dist/cli/chunks/{chunk-CH2TQCV5.js → chunk-SGYJ4NFZ.js} +1 -1
- package/dist/cli/chunks/{chunk-NG2UVPTW.js → chunk-SRKETSFF.js} +1 -1
- package/dist/cli/chunks/{chunk-QFUX7ELG.js → chunk-STJCATGN.js} +2 -2
- package/dist/cli/chunks/{chunk-CIESXO73.js → chunk-STM3UDNO.js} +1 -1
- package/dist/cli/chunks/{chunk-C7AXRI7E.js → chunk-T6BVLVI5.js} +1 -1
- package/dist/cli/chunks/{chunk-HSJ5FQCF.js → chunk-TDZ53WO2.js} +2 -2
- package/dist/cli/chunks/{chunk-YF5OP6CR.js → chunk-TPGED2IF.js} +2 -2
- package/dist/cli/chunks/{chunk-2TG24LYQ.js → chunk-TSRSV3LD.js} +1 -1
- package/dist/cli/chunks/{chunk-6VKJAMZY.js → chunk-TT23RRB7.js} +1 -1
- package/dist/cli/chunks/{chunk-WXMSRBQF.js → chunk-TWAWHOP7.js} +2 -2
- package/dist/cli/chunks/{chunk-ZCDXJ27H.js → chunk-U5K45TFH.js} +1 -1
- package/dist/cli/chunks/{chunk-3WV4H33V.js → chunk-UDHKLT4C.js} +1 -1
- package/dist/cli/chunks/{chunk-VNAKBHJI.js → chunk-UEM7ZF5K.js} +2 -2
- package/dist/cli/chunks/{chunk-4ZUZDFAA.js → chunk-UGVHCMUN.js} +6 -6
- package/dist/cli/chunks/{chunk-NNOMDM4N.js → chunk-V3QLFNA2.js} +2 -2
- package/dist/cli/chunks/{chunk-S7N4BKI3.js → chunk-VD6QRULW.js} +2 -2
- package/dist/cli/chunks/{chunk-WBH4C4BG.js → chunk-VIHTL3U2.js} +2 -2
- package/dist/cli/chunks/chunk-W7BWUTVV.js +2 -0
- package/dist/cli/chunks/{chunk-IWFL6EFI.js → chunk-WLG5AJ4N.js} +2 -2
- package/dist/cli/chunks/{chunk-KEEBUVGV.js → chunk-XC7DYDSY.js} +8 -8
- package/dist/cli/chunks/{chunk-F2KRT2II.js → chunk-XJ7QNVI5.js} +3 -3
- package/dist/cli/chunks/chunk-XRT2WRMS.js +2 -0
- package/dist/cli/chunks/{chunk-ADK7DF3G.js → chunk-XRYF6JV7.js} +2 -2
- package/dist/cli/chunks/{chunk-PWEIDHT7.js → chunk-XWMZ6D6N.js} +2 -2
- package/dist/cli/chunks/{chunk-ICKLBATY.js → chunk-Y3MW3YBC.js} +2 -2
- package/dist/cli/chunks/chunk-YNXS6CGV.js +2 -0
- package/dist/cli/chunks/{chunk-PVHO6KLB.js → chunk-Z3RHREWF.js} +1 -1
- package/dist/cli/chunks/{chunk-EAJK25IS.js → chunk-ZBAKA4YB.js} +1 -1
- package/dist/cli/chunks/chunk-ZBJ4XOOV.js +180 -0
- package/dist/cli/chunks/chunk-ZBQY5GLF.js +11 -0
- package/dist/cli/chunks/{chunk-R5RNOLHI.js → chunk-ZJ26AQA5.js} +1 -1
- package/dist/cli/chunks/{chunk-KPFG4OIM.js → chunk-ZNEMGX5O.js} +1 -1
- package/dist/cli/chunks/{chunk-2H5YJ5ZK.js → chunk-ZNPKDCZR.js} +2 -2
- package/dist/cli/chunks/{chunk-DW6ZMNMR.js → chunk-ZZDIMOOV.js} +2 -2
- package/dist/cli/chunks/ci-464KPQNP.js +81 -0
- package/dist/cli/chunks/ci-output-I7FX2RSO.js +2 -0
- package/dist/cli/chunks/{circuit-breaker-4WST3QSA.js → circuit-breaker-3FW237WW.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-KB4TKMYI.js → claude-flow-setup-6JKMBPGU.js} +2 -2
- package/dist/cli/chunks/client-7E4LM2WW.js +2 -0
- package/dist/cli/chunks/{cline-installer-W2ZHQ6WM.js → cline-installer-UWFHT6VY.js} +2 -2
- package/dist/cli/chunks/{code-TF2AVR5D.js → code-KQSUT3FS.js} +29 -29
- package/dist/cli/chunks/{code-index-extractor-RMDRUVQJ.js → code-index-extractor-PABBNUSC.js} +2 -2
- package/dist/cli/chunks/{codex-installer-VSTRHJHV.js → codex-installer-CQ24DTP5.js} +2 -2
- package/dist/cli/chunks/{completions-3Q37QVFR.js → completions-7RWHAUAR.js} +2 -2
- package/dist/cli/chunks/complexity-analyzer-XPOAF33E.js +2 -0
- package/dist/cli/chunks/{continuedev-installer-VTEXM455.js → continuedev-installer-V4F2FIZP.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-AGY7DQUS.js → copilot-installer-JMICURQB.js} +2 -2
- package/dist/cli/chunks/core-handlers-IFG3757P.js +2 -0
- package/dist/cli/chunks/cost-tracker-5OFHEYFJ.js +2 -0
- package/dist/cli/chunks/{coverage-TT64IOS4.js → coverage-QKN57JDS.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-EK7W4PGP.js +2 -0
- package/dist/cli/chunks/{cursor-installer-OVOJIOHN.js → cursor-installer-GBJ7YXSM.js} +2 -2
- package/dist/cli/chunks/{daemon-DMFZMXKA.js → daemon-GKP7CMEK.js} +3 -3
- package/dist/cli/chunks/{daemon-XCULEHWY.js → daemon-IAVSO6HK.js} +4 -4
- package/dist/cli/chunks/{dag-attention-scheduler-WW2RX4B5.js → dag-attention-scheduler-S225TCI7.js} +2 -2
- package/dist/cli/chunks/{detect-QNWIM232.js → detect-IUYH422U.js} +2 -2
- package/dist/cli/chunks/{dist-node-6GQIY3CG.js → dist-node-2YRE6A7C.js} +2 -2
- package/dist/cli/chunks/{domain-handler-6RJPDELX.js → domain-handler-PL2TZC6H.js} +2 -2
- package/dist/cli/chunks/domain-plugins-HCGLXKIT.js +2 -0
- package/dist/cli/chunks/{domain-transfer-WK524LBS.js → domain-transfer-KQJRUPXA.js} +2 -2
- package/dist/cli/chunks/dream-NFSCSLY7.js +2 -0
- package/dist/cli/chunks/{embed-and-insert-pattern-SO6GWJW7.js → embed-and-insert-pattern-ZPAG7235.js} +2 -2
- package/dist/cli/chunks/eval-WCK7KNFN.js +17 -0
- package/dist/cli/chunks/{experience-capture-middleware-BCCJ35OX.js → experience-capture-middleware-2MSQWSAR.js} +3 -3
- package/dist/cli/chunks/{fast-paths-CATDDBEU.js → fast-paths-VYOSIBKF.js} +2 -2
- package/dist/cli/chunks/{feature-flags-BUXNAORY.js → feature-flags-UJRHFBRX.js} +2 -2
- package/dist/cli/chunks/{feature-flags-KNNWWP5G.js → feature-flags-WCFUKHNQ.js} +2 -2
- package/dist/cli/chunks/{file-discovery-S4HF3O7D.js → file-discovery-JDGL4ZWS.js} +2 -2
- package/dist/cli/chunks/fleet-ROXVMZ2F.js +43 -0
- package/dist/cli/chunks/{gnn-wrapper-G7ABZUG7.js → gnn-wrapper-NIO4ZCO3.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-UFMELIWT.js → heartbeat-handler-PI42WD3C.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-ZATCDJDK.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-WXQABRCA.js +2 -0
- package/dist/cli/chunks/hnsw-index-TPSWLEA5.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-YIILSRXI.js → hnsw-legacy-bridge-YLC7SPK2.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-TSVRMXDH.js → hnswlib-node-LG6OS3B7.js} +2 -2
- package/dist/cli/chunks/{hooks-OHQPNK74.js → hooks-WVALP5GX.js} +10 -10
- package/dist/cli/chunks/{hypergraph-engine-LY7PJDSL.js → hypergraph-engine-GJEMW3EG.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-YGDYZO6H.js → hypergraph-handler-BLF6LXEV.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-HNIU45P5.js +2 -0
- package/dist/cli/chunks/{init-handler-MTK65LI3.js → init-handler-K25RWRYY.js} +6 -6
- package/dist/cli/chunks/init-wizard-JUIPBMHG.js +2 -0
- package/dist/cli/chunks/kernel-5BOZQ754.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-3IICU4RS.js → kilocode-installer-BXN6WZ7G.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-MXOVQYQA.js → kiro-installer-PM362DLN.js} +12 -12
- package/dist/cli/chunks/knowledge-graph-EWDAENWM.js +2 -0
- package/dist/cli/chunks/learning-CPERDDRG.js +122 -0
- package/dist/cli/chunks/llm-router-GOAV5FPI.js +37 -0
- package/dist/cli/chunks/llm-router-service-3YT7JGBS.js +2 -0
- package/dist/cli/chunks/{load-F4PVAMXQ.js → load-2BG6SHAK.js} +2 -2
- package/dist/cli/chunks/load-test-BP2CPLIV.js +2 -0
- package/dist/cli/chunks/{mcp-DUYJUEME.js → mcp-5TTB37DC.js} +2 -2
- package/dist/cli/chunks/{memory-XTTYORAS.js → memory-4NHBYT6S.js} +5 -5
- package/dist/cli/chunks/memory-backend-4PYQBPRM.js +2 -0
- package/dist/cli/chunks/memory-handlers-2B27NITS.js +2 -0
- package/dist/cli/chunks/multi-model-executor-KCWSGCDT.js +14 -0
- package/dist/cli/chunks/{opencode-installer-33ULBU2F.js → opencode-installer-ATZLLK74.js} +2 -2
- package/dist/cli/chunks/{orchestrator-34ZJEKTJ.js → orchestrator-RKB7XJRG.js} +19 -19
- package/dist/cli/chunks/pattern-null-store-OYOQOV2O.js +2 -0
- package/dist/cli/chunks/{pattern-usage-recorder-GZ2M3F2E.js → pattern-usage-recorder-7VE4XDAI.js} +2 -2
- package/dist/cli/chunks/pipeline-LQZSNDD2.js +19 -0
- package/dist/cli/chunks/{platform-VKJFJIAW.js → platform-OD5H5U6G.js} +2 -2
- package/dist/cli/chunks/{plugin-5C5UBQUQ.js → plugin-EJ6K2MGU.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-KO2PQI3D.js → prime-radiant-advanced-wasm-OIHTKJMN.js} +2 -2
- package/dist/cli/chunks/protocol-executor-3ATJTXWG.js +2 -0
- package/dist/cli/chunks/{protocol-handler-ZF74NIKA.js → protocol-handler-NRBROAU7.js} +2 -2
- package/dist/cli/chunks/{prove-MO5TQQU4.js → prove-EJOGEGD3.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-LLMYZT4X.js +2 -0
- package/dist/cli/chunks/{quality-EYIN6AER.js → quality-E55UC73D.js} +2 -2
- package/dist/cli/chunks/{quality-gate-V6OQM57O.js → quality-gate-OIQATNT3.js} +3 -3
- package/dist/cli/chunks/queen-coordinator-RN7L6KG5.js +2 -0
- package/dist/cli/chunks/{real-embeddings-AR7TZX7U.js → real-embeddings-FPFFNOSZ.js} +2 -2
- package/dist/cli/chunks/ref-validation-OPO6J7OL.js +2 -0
- package/dist/cli/chunks/{roocode-installer-46E626VZ.js → roocode-installer-ODY5KRWU.js} +2 -2
- package/dist/cli/chunks/router-MDHITQ2V.js +2 -0
- package/dist/cli/chunks/routing-feedback-5XLNJ3Y3.js +2 -0
- package/dist/cli/chunks/{routing-handler-ZNRVW6QW.js → routing-handler-KQM6VWLC.js} +4 -4
- package/dist/cli/chunks/{ruvector-commands-4L2CQMWS.js → ruvector-commands-U2GVV6PF.js} +2 -2
- package/dist/cli/chunks/rvf-dual-writer-JBW4O3II.js +2 -0
- package/dist/cli/chunks/rvf-migration-adapter-BPPQL4XJ.js +2 -0
- package/dist/cli/chunks/{rvf-migration-coordinator-H4RVGBIA.js → rvf-migration-coordinator-V2GHCJKN.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-S4562CG5.js +2 -0
- package/dist/cli/chunks/rvf-store-integrity-KMIHD3LP.js +2 -0
- package/dist/cli/chunks/safe-db-FIRHSXVF.js +2 -0
- package/dist/cli/chunks/schedule-RVXFB4HK.js +2 -0
- package/dist/cli/chunks/scheduler-IKKAMAOO.js +2 -0
- package/dist/cli/chunks/security-P5NM353C.js +13 -0
- package/dist/cli/chunks/{shared-rvf-adapter-M6NNIZ5W.js → shared-rvf-adapter-LVIUOO4S.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-LHMFCYVE.js → shared-rvf-dual-writer-2CSG7C4W.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-SQ3HCUQ7.js +2 -0
- package/dist/cli/chunks/{status-handler-GMIOXQIE.js → status-handler-6TU6O37R.js} +2 -2
- package/dist/cli/chunks/{structural-health-YZXHVHM6.js → structural-health-KBIJSTXJ.js} +2 -2
- package/dist/cli/chunks/{sync-GMPCPV5L.js → sync-LNHI5SB7.js} +2 -2
- package/dist/cli/chunks/{sync-N56UQGCS.js → sync-UHOX6RJW.js} +2 -2
- package/dist/cli/chunks/task-handler-AVDHMLGI.js +49 -0
- package/dist/cli/chunks/task-handlers-KYK4VTRA.js +9 -0
- package/dist/cli/chunks/{test-GQNCKRSP.js → test-DHAAI3DU.js} +11 -11
- package/dist/cli/chunks/test-scheduling-XDBZ3QC2.js +15 -0
- package/dist/cli/chunks/{token-bootstrap-76SRNXGG.js → token-bootstrap-GUTTLPZX.js} +2 -2
- package/dist/cli/chunks/{token-usage-O7CZDP5Q.js → token-usage-Q2YG5YQN.js} +2 -2
- package/dist/cli/chunks/{transformers-LTU4LSSC.js → transformers-F5UQTQCY.js} +2 -2
- package/dist/cli/chunks/{tree-sitter-wasm-parser-NQSQCMBM.js → tree-sitter-wasm-parser-DEGOHS6F.js} +2 -2
- package/dist/cli/chunks/types-JQ7EQO5Q.js +2 -0
- package/dist/cli/chunks/unified-memory-CXHLHB5I.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-I7WAE54M.js +2 -0
- package/dist/cli/chunks/unified-persistence-6CPF65WI.js +2 -0
- package/dist/cli/chunks/{upgrade-OQWRBZ3R.js → upgrade-TJRVGHGD.js} +2 -2
- package/dist/cli/chunks/{validate-TH5SRP3E.js → validate-BWPCVHBN.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-UITL2JUS.js → validate-swarm-QVVKCQLP.js} +2 -2
- package/dist/cli/chunks/{vibium-O6PRAG4J.js → vibium-ZFATIWHO.js} +2 -2
- package/dist/cli/chunks/visual-security-GNPHME5H.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-XBFBY4OF.js → web-tree-sitter-KPLY7ONR.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-DVT5NRNY.js → windsurf-installer-H7XM7ISA.js} +2 -2
- package/dist/cli/chunks/{witness-chain-VRSH2F36.js → witness-chain-RRN6NDCH.js} +2 -2
- package/dist/cli/chunks/witness-chain-VT4UHHBR.js +2 -0
- package/dist/cli/chunks/{witness-key-manager-GFHRDKQ4.js → witness-key-manager-DFRL42GE.js} +2 -2
- package/dist/cli/chunks/workflow-2ZQO6WYI.js +51 -0
- package/dist/cli/chunks/workflow-orchestrator-DB3HIECD.js +2 -0
- package/dist/cli/chunks/{wrappers-5LLLT7GM.js → wrappers-SUS6XEJD.js} +2 -2
- package/dist/cli/commands/ci.js +54 -28
- package/dist/cli/commands/code.js +6 -0
- package/dist/cli/commands/eval.js +3 -2
- package/dist/cli/commands/fleet.js +35 -16
- package/dist/cli/commands/learning-snapshot.d.ts +38 -0
- package/dist/cli/commands/learning-snapshot.js +171 -0
- package/dist/cli/commands/learning.js +16 -64
- package/dist/cli/commands/llm-router.js +13 -12
- package/dist/cli/commands/pipeline.js +9 -0
- package/dist/cli/commands/security.js +167 -100
- package/dist/cli/commands/test.js +1 -0
- package/dist/cli/commands/workflow.js +9 -1
- package/dist/cli/handlers/task-handler.js +19 -9
- package/dist/cli/helpers/domain-plugins.d.ts +5 -0
- package/dist/cli/helpers/domain-plugins.js +11 -0
- package/dist/cli/index.js +17 -8
- package/dist/cli/utils/ci-config.d.ts +3 -0
- package/dist/cli/utils/ci-output.d.ts +17 -0
- package/dist/cli/utils/ci-output.js +34 -2
- package/dist/context/sources/git-source.d.ts +2 -0
- package/dist/context/sources/git-source.js +9 -2
- package/dist/coordination/cancelled-task-settlement.d.ts +11 -0
- package/dist/coordination/cancelled-task-settlement.js +15 -0
- package/dist/coordination/consensus/providers/claude-provider.d.ts +2 -2
- package/dist/coordination/consensus/providers/claude-provider.js +18 -25
- package/dist/coordination/consensus/providers/gemini-provider.d.ts +14 -4
- package/dist/coordination/consensus/providers/gemini-provider.js +39 -36
- package/dist/coordination/consensus/providers/ollama-provider.d.ts +8 -7
- package/dist/coordination/consensus/providers/ollama-provider.js +16 -18
- package/dist/coordination/consensus/providers/openai-provider.d.ts +14 -4
- package/dist/coordination/consensus/providers/openai-provider.js +36 -34
- package/dist/coordination/consensus/providers/openrouter-provider.d.ts +5 -5
- package/dist/coordination/consensus/providers/openrouter-provider.js +64 -37
- package/dist/coordination/handlers/handler-types.d.ts +3 -0
- package/dist/coordination/handlers/quality-handlers.js +10 -0
- package/dist/coordination/handlers/security-handlers.js +168 -72
- package/dist/coordination/handlers/test-execution-handlers.js +39 -43
- package/dist/coordination/interfaces.d.ts +2 -2
- package/dist/coordination/protocol-executor.js +68 -9
- package/dist/coordination/protocols/security-audit.d.ts +3 -0
- package/dist/coordination/protocols/security-audit.js +61 -39
- package/dist/coordination/queen-coordinator.js +10 -4
- package/dist/coordination/queen-event-handlers.js +17 -0
- package/dist/coordination/queen-task-management.js +25 -0
- package/dist/coordination/queen-types.d.ts +2 -0
- package/dist/coordination/result-saver.js +36 -5
- package/dist/coordination/task-executor.d.ts +3 -1
- package/dist/coordination/task-executor.js +8 -8
- package/dist/coordination/workflow-composition.d.ts +19 -0
- package/dist/coordination/workflow-composition.js +114 -0
- package/dist/coordination/workflow-orchestrator.d.ts +3 -2
- package/dist/coordination/workflow-orchestrator.js +219 -85
- package/dist/coordination/workflow-types.d.ts +30 -1
- package/dist/coordination/yaml-pipeline-loader.js +9 -5
- package/dist/domains/chaos-resilience/services/chaos-engineer.js +2 -7
- package/dist/domains/code-intelligence/services/knowledge-graph.js +2 -7
- package/dist/domains/code-intelligence/services/metric-collector/test-counter.js +9 -40
- package/dist/domains/constants.d.ts +1 -6
- package/dist/domains/constants.js +2 -6
- package/dist/domains/contract-testing/services/contract-validator.js +2 -7
- package/dist/domains/coverage-analysis/services/coverage-analyzer.js +2 -12
- package/dist/domains/coverage-analysis/services/gap-detector.js +2 -7
- package/dist/domains/defect-intelligence/services/defect-predictor.js +2 -12
- package/dist/domains/defect-intelligence/services/root-cause-analyzer.js +2 -7
- package/dist/domains/learning-optimization/services/learning-coordinator.js +2 -7
- package/dist/domains/quality-assessment/services/deployment-advisor.js +2 -7
- package/dist/domains/quality-assessment/services/quality-analyzer.js +2 -7
- package/dist/domains/requirements-validation/services/requirements-validator.js +2 -7
- package/dist/domains/security-compliance/interfaces.d.ts +5 -0
- package/dist/domains/security-compliance/interfaces.js +0 -6
- package/dist/domains/security-compliance/scan-discovery.d.ts +12 -0
- package/dist/domains/security-compliance/scan-discovery.js +105 -0
- package/dist/domains/security-compliance/scan-evidence.d.ts +57 -0
- package/dist/domains/security-compliance/scan-evidence.js +2 -0
- package/dist/domains/security-compliance/services/scanners/sast-scanner.d.ts +3 -2
- package/dist/domains/security-compliance/services/scanners/sast-scanner.js +112 -72
- package/dist/domains/security-compliance/services/semgrep-integration.d.ts +9 -2
- package/dist/domains/security-compliance/services/semgrep-integration.js +68 -20
- package/dist/domains/test-execution/services/flaky-detector.js +46 -5
- package/dist/domains/test-execution/services/retry-handler.js +38 -20
- package/dist/domains/test-execution/services/test-executor.js +84 -29
- package/dist/domains/test-generation/services/test-generator.js +2 -7
- package/dist/domains/visual-accessibility/services/visual-tester.js +2 -7
- package/dist/init/init-wizard-hooks.js +2 -2
- package/dist/init/init-wizard-steps.js +1 -1
- package/dist/init/kiro-installer.js +9 -8
- package/dist/init/opencode-installer.js +1 -1
- package/dist/init/phases/07-hooks.js +4 -2
- package/dist/init/phases/12-verification.js +1 -1
- package/dist/init/settings-merge.d.ts +10 -3
- package/dist/init/settings-merge.js +40 -9
- package/dist/integrations/agentic-flow/model-router/types.js +6 -8
- package/dist/integrations/agentic-flow/reasoning-bank/index.js +3 -20
- package/dist/integrations/coherence/engines/cohomology-adapter.js +100 -30
- package/dist/integrations/ruvector/brain-exporter.js +9 -15
- package/dist/integrations/ruvector/brain-rvf-exporter.js +17 -30
- package/dist/integrations/ruvector/brain-shared.d.ts +5 -1
- package/dist/integrations/ruvector/brain-shared.js +70 -4
- package/dist/integrations/ruvector/rvf-dual-writer.js +36 -15
- package/dist/integrations/ruvector/rvf-store-integrity.d.ts +14 -9
- package/dist/integrations/ruvector/rvf-store-integrity.js +39 -9
- package/dist/integrations/ruvector/shared-rvf-adapter.js +20 -23
- package/dist/kernel/memory-factory.js +14 -4
- package/dist/kernel/project-root.js +10 -8
- package/dist/kernel/unified-memory.js +1 -1
- package/dist/learning/local-judge-client.d.ts +6 -5
- package/dist/learning/local-judge-client.js +7 -6
- package/dist/learning/pattern-store.js +29 -11
- package/dist/mcp/bundle.js +548 -527
- package/dist/mcp/handlers/domain-handler-configs.d.ts +22 -1
- package/dist/mcp/handlers/domain-handler-configs.js +50 -19
- package/dist/mcp/handlers/domain-handlers.d.ts +7 -5
- package/dist/mcp/handlers/domain-handlers.js +7 -5
- package/dist/mcp/handlers/index.d.ts +1 -1
- package/dist/mcp/handlers/index.js +1 -1
- package/dist/mcp/handlers/pipeline-handlers.d.ts +31 -1
- package/dist/mcp/handlers/pipeline-handlers.js +63 -0
- package/dist/mcp/handlers/task-handlers.d.ts +1 -0
- package/dist/mcp/handlers/task-handlers.js +12 -4
- package/dist/mcp/protocol-server.d.ts +2 -0
- package/dist/mcp/protocol-server.js +112 -53
- package/dist/mcp/security/sampling-server.js +2 -1
- package/dist/mcp/tool-annotations.js +1 -1
- package/dist/mcp/tools/test-execution/schedule.js +7 -0
- package/dist/mcp/types.d.ts +10 -1
- package/dist/optimization/session-cache.d.ts +5 -0
- package/dist/optimization/session-cache.js +23 -0
- package/dist/routing/advisor/multi-model-executor.d.ts +4 -1
- package/dist/routing/advisor/multi-model-executor.js +8 -1
- package/dist/routing/free-tier/ladder.d.ts +2 -1
- package/dist/routing/free-tier/ladder.js +3 -2
- package/dist/routing/security/cyber-pin.d.ts +35 -11
- package/dist/routing/security/cyber-pin.js +76 -14
- package/dist/routing/value-score.js +1 -1
- package/dist/shared/git/index.d.ts +1 -0
- package/dist/shared/git/index.js +1 -0
- package/dist/shared/git/ref-validation.d.ts +20 -0
- package/dist/shared/git/ref-validation.js +43 -0
- package/dist/shared/llm/anthropic-params.d.ts +40 -0
- package/dist/shared/llm/anthropic-params.js +51 -0
- package/dist/shared/llm/cost-tracker.d.ts +15 -2
- package/dist/shared/llm/cost-tracker.js +62 -10
- package/dist/shared/llm/index.d.ts +2 -2
- package/dist/shared/llm/index.js +2 -2
- package/dist/shared/llm/interfaces.d.ts +1 -1
- package/dist/shared/llm/metrics/cost-metrics.js +5 -4
- package/dist/shared/llm/model-mapping.js +131 -0
- package/dist/shared/llm/model-registry.d.ts +37 -11
- package/dist/shared/llm/model-registry.js +393 -18
- package/dist/shared/llm/openai-params.d.ts +35 -0
- package/dist/shared/llm/openai-params.js +54 -0
- package/dist/shared/llm/provider-manager.js +4 -3
- package/dist/shared/llm/providers/azure-openai.d.ts +11 -0
- package/dist/shared/llm/providers/azure-openai.js +26 -15
- package/dist/shared/llm/providers/bedrock.js +11 -19
- package/dist/shared/llm/providers/claude.js +6 -29
- package/dist/shared/llm/providers/codex.js +4 -3
- package/dist/shared/llm/providers/gemini.d.ts +3 -2
- package/dist/shared/llm/providers/gemini.js +19 -10
- package/dist/shared/llm/providers/ollama.d.ts +2 -0
- package/dist/shared/llm/providers/ollama.js +30 -20
- package/dist/shared/llm/providers/openai.js +10 -17
- package/dist/shared/llm/providers/openrouter.d.ts +1 -1
- package/dist/shared/llm/providers/openrouter.js +57 -21
- package/dist/shared/llm/router/agent-router-config.js +33 -32
- package/dist/shared/llm/router/hybrid-router.d.ts +4 -0
- package/dist/shared/llm/router/hybrid-router.js +95 -35
- package/dist/shared/llm/router/routing-rules.js +9 -8
- package/dist/shared/llm/router/types.d.ts +9 -2
- package/dist/shared/llm/router/types.js +81 -13
- package/dist/shared/llm/translation/message-formatter.js +4 -23
- package/dist/shared/test-runner-verdict.d.ts +29 -0
- package/dist/shared/test-runner-verdict.js +43 -0
- package/dist/shared/vitest-json-report.d.ts +45 -0
- package/dist/shared/vitest-json-report.js +80 -0
- package/dist/test-scheduling/executors/vitest-executor.d.ts +7 -2
- package/dist/test-scheduling/executors/vitest-executor.js +174 -52
- package/dist/test-scheduling/git-aware/test-selector.js +3 -0
- package/dist/test-scheduling/phase-scheduler.d.ts +1 -0
- package/dist/test-scheduling/phase-scheduler.js +23 -1
- package/dist/validation/frontier-judge.d.ts +7 -4
- package/dist/validation/frontier-judge.js +11 -6
- package/package.json +6 -6
- package/dist/cli/chunks/adapter-OJF6LAJV.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-FGT474XB.js +0 -2
- package/dist/cli/chunks/base-HH765JFV.js +0 -2
- package/dist/cli/chunks/brain-handler-5FSA46R5.js +0 -90
- package/dist/cli/chunks/browser-workflow-NPM4FUPI.js +0 -2
- package/dist/cli/chunks/chunk-2LKAMMMI.js +0 -2
- package/dist/cli/chunks/chunk-4AKGBUYD.js +0 -4
- package/dist/cli/chunks/chunk-4MH22236.js +0 -2
- package/dist/cli/chunks/chunk-4PH7O5ZH.js +0 -2
- package/dist/cli/chunks/chunk-4UCMTYFQ.js +0 -65
- package/dist/cli/chunks/chunk-DRO5NJZA.js +0 -11
- package/dist/cli/chunks/chunk-FPHPP5TQ.js +0 -2
- package/dist/cli/chunks/chunk-FREF6Y4L.js +0 -14
- package/dist/cli/chunks/chunk-G6AV2HGY.js +0 -54
- package/dist/cli/chunks/chunk-GJAWEUIN.js +0 -16
- package/dist/cli/chunks/chunk-IUNMW454.js +0 -2
- package/dist/cli/chunks/chunk-JDXLCNKV.js +0 -2
- package/dist/cli/chunks/chunk-OC2CKU7I.js +0 -2
- package/dist/cli/chunks/chunk-OX6T26CD.js +0 -180
- package/dist/cli/chunks/chunk-PHHXHG2W.js +0 -2
- package/dist/cli/chunks/chunk-SEHCX4NH.js +0 -2
- package/dist/cli/chunks/chunk-TENYL5TI.js +0 -14
- package/dist/cli/chunks/chunk-U2AY57XZ.js +0 -5
- package/dist/cli/chunks/chunk-UYTWDS2R.js +0 -2
- package/dist/cli/chunks/chunk-VSYBMNIR.js +0 -2
- package/dist/cli/chunks/chunk-WBMRADQP.js +0 -81
- package/dist/cli/chunks/chunk-ZWRQ5VAU.js +0 -2
- package/dist/cli/chunks/chunk-ZYLSOBOR.js +0 -2
- package/dist/cli/chunks/ci-NTRH7PAW.js +0 -81
- package/dist/cli/chunks/ci-output-F57RSD35.js +0 -2
- package/dist/cli/chunks/client-GPZEC54E.js +0 -2
- package/dist/cli/chunks/complexity-analyzer-3FNFLACD.js +0 -2
- package/dist/cli/chunks/core-handlers-YMGHYIBR.js +0 -2
- package/dist/cli/chunks/cost-tracker-LTZAQBX7.js +0 -2
- package/dist/cli/chunks/cross-domain-router-ECBNTGYJ.js +0 -2
- package/dist/cli/chunks/dream-EHGKCFWH.js +0 -2
- package/dist/cli/chunks/eval-GL544IPO.js +0 -17
- package/dist/cli/chunks/fleet-DQVQQONW.js +0 -43
- package/dist/cli/chunks/heartbeat-scheduler-UFEL2CBW.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-BLSD45CX.js +0 -2
- package/dist/cli/chunks/hnsw-index-A3RZODEN.js +0 -2
- package/dist/cli/chunks/impact-analyzer-OXHD3FOH.js +0 -2
- package/dist/cli/chunks/init-wizard-PKZL7QBU.js +0 -2
- package/dist/cli/chunks/kernel-XWPM72UJ.js +0 -2
- package/dist/cli/chunks/knowledge-graph-FRKR5XWI.js +0 -2
- package/dist/cli/chunks/learning-EV5LSOOM.js +0 -122
- package/dist/cli/chunks/llm-router-7LYDJUOT.js +0 -37
- package/dist/cli/chunks/llm-router-service-R7A5HHDM.js +0 -2
- package/dist/cli/chunks/load-test-5IKDWSYL.js +0 -2
- package/dist/cli/chunks/memory-backend-7VW5QCMO.js +0 -2
- package/dist/cli/chunks/memory-handlers-VZH3R2TQ.js +0 -2
- package/dist/cli/chunks/multi-model-executor-R6XCTMCF.js +0 -14
- package/dist/cli/chunks/pattern-null-store-BU6LCB2W.js +0 -2
- package/dist/cli/chunks/pipeline-SR5OTY45.js +0 -19
- package/dist/cli/chunks/protocol-executor-BSP5LWJN.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-J2RC7P25.js +0 -2
- package/dist/cli/chunks/queen-coordinator-XI5AJV2V.js +0 -2
- package/dist/cli/chunks/router-VXQYYA3D.js +0 -2
- package/dist/cli/chunks/routing-feedback-HZQTASFF.js +0 -2
- package/dist/cli/chunks/rvf-dual-writer-BDTLLJER.js +0 -2
- package/dist/cli/chunks/rvf-migration-adapter-IB343MDN.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-Y7SN7LHU.js +0 -2
- package/dist/cli/chunks/rvf-store-integrity-OJGWWPLL.js +0 -2
- package/dist/cli/chunks/safe-db-2VTKKBJU.js +0 -2
- package/dist/cli/chunks/schedule-QJ4CFGJY.js +0 -2
- package/dist/cli/chunks/scheduler-2NHDQPC3.js +0 -2
- package/dist/cli/chunks/security-JF3BVNRO.js +0 -14
- package/dist/cli/chunks/sqlite-persistence-NVVAPZN3.js +0 -2
- package/dist/cli/chunks/task-handler-VTNRGAXP.js +0 -49
- package/dist/cli/chunks/task-handlers-FYSDH55N.js +0 -9
- package/dist/cli/chunks/test-scheduling-GPRXSIRP.js +0 -15
- package/dist/cli/chunks/types-OP6IWE6N.js +0 -2
- package/dist/cli/chunks/unified-memory-DSTIEDSH.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-KBV3P4OS.js +0 -2
- package/dist/cli/chunks/unified-persistence-XKCOUBKY.js +0 -2
- package/dist/cli/chunks/visual-security-TTWSPZTZ.js +0 -2
- package/dist/cli/chunks/witness-chain-2KY73HPN.js +0 -2
- package/dist/cli/chunks/workflow-HAZ6YKOG.js +0 -51
- package/dist/cli/chunks/workflow-orchestrator-UK56AVOT.js +0 -2
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* - Override mechanism for specific tasks
|
|
9
9
|
* - Agent category detection and preferred model resolution
|
|
10
10
|
*/
|
|
11
|
+
import { DEFAULT_OPUS_MODEL, DEFAULT_SONNET_MODEL } from '../model-registry.js';
|
|
11
12
|
// ============================================================================
|
|
12
13
|
// Default Model Preferences by Category
|
|
13
14
|
// ============================================================================
|
|
@@ -18,7 +19,7 @@ export const DEFAULT_CATEGORY_MODELS = {
|
|
|
18
19
|
// Security agents need best reasoning capabilities
|
|
19
20
|
security: {
|
|
20
21
|
provider: 'claude',
|
|
21
|
-
model:
|
|
22
|
+
model: DEFAULT_OPUS_MODEL,
|
|
22
23
|
temperature: 0.1,
|
|
23
24
|
maxTokens: 16000,
|
|
24
25
|
priority: 100,
|
|
@@ -26,7 +27,7 @@ export const DEFAULT_CATEGORY_MODELS = {
|
|
|
26
27
|
// Test generation needs good balance of quality and speed
|
|
27
28
|
'test-generation': {
|
|
28
29
|
provider: 'claude',
|
|
29
|
-
model:
|
|
30
|
+
model: DEFAULT_SONNET_MODEL,
|
|
30
31
|
temperature: 0.3,
|
|
31
32
|
maxTokens: 8000,
|
|
32
33
|
priority: 90,
|
|
@@ -34,7 +35,7 @@ export const DEFAULT_CATEGORY_MODELS = {
|
|
|
34
35
|
// Code analysis requires good understanding
|
|
35
36
|
'code-analysis': {
|
|
36
37
|
provider: 'claude',
|
|
37
|
-
model:
|
|
38
|
+
model: DEFAULT_SONNET_MODEL,
|
|
38
39
|
temperature: 0.2,
|
|
39
40
|
maxTokens: 8000,
|
|
40
41
|
priority: 85,
|
|
@@ -58,7 +59,7 @@ export const DEFAULT_CATEGORY_MODELS = {
|
|
|
58
59
|
// Learning/ML agents - balanced
|
|
59
60
|
learning: {
|
|
60
61
|
provider: 'claude',
|
|
61
|
-
model:
|
|
62
|
+
model: DEFAULT_SONNET_MODEL,
|
|
62
63
|
temperature: 0.3,
|
|
63
64
|
maxTokens: 8000,
|
|
64
65
|
priority: 80,
|
|
@@ -74,7 +75,7 @@ export const DEFAULT_CATEGORY_MODELS = {
|
|
|
74
75
|
// Simple tasks - cheapest models
|
|
75
76
|
simple: {
|
|
76
77
|
provider: 'openai',
|
|
77
|
-
model: 'gpt-
|
|
78
|
+
model: 'gpt-6-luna',
|
|
78
79
|
temperature: 0.3,
|
|
79
80
|
maxTokens: 2000,
|
|
80
81
|
priority: 50,
|
|
@@ -82,7 +83,7 @@ export const DEFAULT_CATEGORY_MODELS = {
|
|
|
82
83
|
// General purpose - balanced default
|
|
83
84
|
general: {
|
|
84
85
|
provider: 'claude',
|
|
85
|
-
model:
|
|
86
|
+
model: DEFAULT_SONNET_MODEL,
|
|
86
87
|
temperature: 0.3,
|
|
87
88
|
maxTokens: 4000,
|
|
88
89
|
priority: 60,
|
|
@@ -348,7 +349,7 @@ let agentProviderOverrides = {};
|
|
|
348
349
|
* Needed because the category defaults in `DEFAULT_CATEGORY_MODELS` pair a
|
|
349
350
|
* provider with a provider-specific model id. If a user writes
|
|
350
351
|
* `{ "provider": "ollama" }` and we inherited the category *model* too, the
|
|
351
|
-
* agent would be routed to ollama asking for `claude-sonnet-
|
|
352
|
+
* agent would be routed to ollama asking for `claude-sonnet-5` — a model that
|
|
352
353
|
* provider cannot serve. Changing provider without naming a model must fall
|
|
353
354
|
* back to that provider's own default, not the previous provider's model.
|
|
354
355
|
*/
|
|
@@ -575,7 +576,7 @@ export const DEFAULT_ROUTING_OVERRIDES = [
|
|
|
575
576
|
},
|
|
576
577
|
modelPreference: {
|
|
577
578
|
provider: 'claude',
|
|
578
|
-
model:
|
|
579
|
+
model: DEFAULT_OPUS_MODEL,
|
|
579
580
|
temperature: 0.2,
|
|
580
581
|
maxTokens: 16000,
|
|
581
582
|
priority: 150,
|
|
@@ -590,7 +591,7 @@ export const DEFAULT_ROUTING_OVERRIDES = [
|
|
|
590
591
|
},
|
|
591
592
|
modelPreference: {
|
|
592
593
|
provider: 'openai',
|
|
593
|
-
model: 'gpt-
|
|
594
|
+
model: 'gpt-6-luna',
|
|
594
595
|
temperature: 0.3,
|
|
595
596
|
maxTokens: 2000,
|
|
596
597
|
priority: 40,
|
|
@@ -605,7 +606,7 @@ export const DEFAULT_ROUTING_OVERRIDES = [
|
|
|
605
606
|
},
|
|
606
607
|
modelPreference: {
|
|
607
608
|
provider: 'ollama',
|
|
608
|
-
model: '
|
|
609
|
+
model: 'qwen3-coder:30b', // ADR-111 local QE default
|
|
609
610
|
temperature: 0.2,
|
|
610
611
|
maxTokens: 4000,
|
|
611
612
|
priority: 200,
|
|
@@ -620,7 +621,7 @@ export const DEFAULT_ROUTING_OVERRIDES = [
|
|
|
620
621
|
},
|
|
621
622
|
modelPreference: {
|
|
622
623
|
provider: 'claude',
|
|
623
|
-
model:
|
|
624
|
+
model: DEFAULT_SONNET_MODEL,
|
|
624
625
|
temperature: 0.3,
|
|
625
626
|
maxTokens: 8000,
|
|
626
627
|
priority: 95,
|
|
@@ -636,49 +637,49 @@ export const DEFAULT_ROUTING_OVERRIDES = [
|
|
|
636
637
|
*/
|
|
637
638
|
export const ALTERNATIVE_MODELS = {
|
|
638
639
|
security: [
|
|
639
|
-
{ provider: 'openai', model: 'gpt-
|
|
640
|
-
{ provider: 'claude', model:
|
|
640
|
+
{ provider: 'openai', model: 'gpt-6-sol', temperature: 0.1, priority: 90 },
|
|
641
|
+
{ provider: 'claude', model: DEFAULT_SONNET_MODEL, temperature: 0.1, priority: 80 },
|
|
641
642
|
{ provider: 'openrouter', model: 'anthropic/claude-opus-4.5', temperature: 0.1, priority: 70 },
|
|
642
643
|
],
|
|
643
644
|
'test-generation': [
|
|
644
|
-
{ provider: 'openai', model: 'gpt-
|
|
645
|
+
{ provider: 'openai', model: 'gpt-6-sol', temperature: 0.3, priority: 80 },
|
|
645
646
|
{ provider: 'claude', model: 'claude-haiku-4-5-20251001', temperature: 0.3, priority: 70 },
|
|
646
|
-
{ provider: 'gemini', model: 'gemini-2.
|
|
647
|
+
{ provider: 'gemini', model: 'gemini-2.5-pro', temperature: 0.3, priority: 60 },
|
|
647
648
|
],
|
|
648
649
|
'code-analysis': [
|
|
649
|
-
{ provider: 'openai', model: 'gpt-
|
|
650
|
+
{ provider: 'openai', model: 'gpt-6-sol', temperature: 0.2, priority: 75 },
|
|
650
651
|
{ provider: 'claude', model: 'claude-haiku-4-5-20251001', temperature: 0.2, priority: 65 },
|
|
651
|
-
{ provider: 'gemini', model: 'gemini-2.
|
|
652
|
+
{ provider: 'gemini', model: 'gemini-2.5-pro', temperature: 0.2, priority: 55 },
|
|
652
653
|
],
|
|
653
654
|
performance: [
|
|
654
|
-
{ provider: 'openai', model: 'gpt-
|
|
655
|
-
{ provider: 'gemini', model: 'gemini-2.
|
|
656
|
-
{ provider: 'ollama', model: '
|
|
655
|
+
{ provider: 'openai', model: 'gpt-6-luna', temperature: 0.2, priority: 60 },
|
|
656
|
+
{ provider: 'gemini', model: 'gemini-2.5-flash', temperature: 0.2, priority: 50 },
|
|
657
|
+
{ provider: 'ollama', model: 'qwen3-coder:30b', temperature: 0.2, priority: 40 },
|
|
657
658
|
],
|
|
658
659
|
documentation: [
|
|
659
|
-
{ provider: 'openai', model: 'gpt-
|
|
660
|
-
{ provider: 'gemini', model: 'gemini-2.
|
|
661
|
-
{ provider: 'ollama', model: '
|
|
660
|
+
{ provider: 'openai', model: 'gpt-6-luna', temperature: 0.4, priority: 50 },
|
|
661
|
+
{ provider: 'gemini', model: 'gemini-2.5-flash', temperature: 0.4, priority: 40 },
|
|
662
|
+
{ provider: 'ollama', model: 'qwen3-coder:30b', temperature: 0.4, priority: 30 },
|
|
662
663
|
],
|
|
663
664
|
learning: [
|
|
664
|
-
{ provider: 'openai', model: 'gpt-
|
|
665
|
+
{ provider: 'openai', model: 'gpt-6-sol', temperature: 0.3, priority: 70 },
|
|
665
666
|
{ provider: 'claude', model: 'claude-haiku-4-5-20251001', temperature: 0.3, priority: 60 },
|
|
666
|
-
{ provider: 'gemini', model: 'gemini-2.
|
|
667
|
+
{ provider: 'gemini', model: 'gemini-2.5-pro', temperature: 0.3, priority: 50 },
|
|
667
668
|
],
|
|
668
669
|
coordination: [
|
|
669
|
-
{ provider: 'openai', model: 'gpt-
|
|
670
|
-
{ provider: 'gemini', model: 'gemini-2.
|
|
671
|
-
{ provider: 'ollama', model: '
|
|
670
|
+
{ provider: 'openai', model: 'gpt-6-luna', temperature: 0.2, priority: 65 },
|
|
671
|
+
{ provider: 'gemini', model: 'gemini-2.5-flash', temperature: 0.2, priority: 55 },
|
|
672
|
+
{ provider: 'ollama', model: 'qwen3-coder:30b', temperature: 0.2, priority: 45 },
|
|
672
673
|
],
|
|
673
674
|
simple: [
|
|
674
|
-
{ provider: 'gemini', model: 'gemini-2.
|
|
675
|
+
{ provider: 'gemini', model: 'gemini-2.5-flash', temperature: 0.3, priority: 40 },
|
|
675
676
|
{ provider: 'claude', model: 'claude-haiku-4-5-20251001', temperature: 0.3, priority: 30 },
|
|
676
|
-
{ provider: 'ollama', model: '
|
|
677
|
+
{ provider: 'ollama', model: 'qwen3-coder:30b', temperature: 0.3, priority: 20 },
|
|
677
678
|
],
|
|
678
679
|
general: [
|
|
679
|
-
{ provider: 'openai', model: 'gpt-
|
|
680
|
+
{ provider: 'openai', model: 'gpt-6-sol', temperature: 0.3, priority: 50 },
|
|
680
681
|
{ provider: 'claude', model: 'claude-haiku-4-5-20251001', temperature: 0.3, priority: 40 },
|
|
681
|
-
{ provider: 'gemini', model: 'gemini-2.
|
|
682
|
+
{ provider: 'gemini', model: 'gemini-2.5-pro', temperature: 0.3, priority: 30 },
|
|
682
683
|
],
|
|
683
684
|
};
|
|
684
685
|
/**
|
|
@@ -113,6 +113,8 @@ export declare class HybridRouter {
|
|
|
113
113
|
* Clear decision cache
|
|
114
114
|
*/
|
|
115
115
|
clearCache(): void;
|
|
116
|
+
/** Select an explicitly pinned model without rules, shared cache, or fallback. */
|
|
117
|
+
private selectStrict;
|
|
116
118
|
/**
|
|
117
119
|
* Manual selection - use preferredProvider or default
|
|
118
120
|
*/
|
|
@@ -133,6 +135,8 @@ export declare class HybridRouter {
|
|
|
133
135
|
* Execute request with fallback chain
|
|
134
136
|
*/
|
|
135
137
|
private executeWithFallback;
|
|
138
|
+
/** Compare identity independently of the API transport hosting the model. */
|
|
139
|
+
private isSameModel;
|
|
136
140
|
/**
|
|
137
141
|
* Create a routing decision with proper model ID normalization (ADR-043)
|
|
138
142
|
*/
|
|
@@ -13,11 +13,11 @@ import { v4 as uuidv4 } from 'uuid';
|
|
|
13
13
|
import { createLLMError, isLLMError, } from '../interfaces.js';
|
|
14
14
|
import { DEFAULT_ROUTER_CONFIG, } from './types.js';
|
|
15
15
|
import { RoutingRuleEngine, DEFAULT_QE_ROUTING_RULES } from './routing-rules.js';
|
|
16
|
-
import { applyCyberPin, CYBER_PIN_CHAT_FALLBACK, shouldCyberPin,
|
|
16
|
+
import { applyCyberPin, CYBER_PIN_CHAT_FALLBACK, cyberPinFallbackFor, shouldCyberPin, isCyberGatedModel, } from '../../../routing/security/cyber-pin.js';
|
|
17
17
|
import { createRouterMetricsCollector, createCostMetricsCollector, } from '../metrics/index.js';
|
|
18
18
|
import { toError } from '../../error-utils.js';
|
|
19
19
|
import { mapModelId, normalizeModelId, getModelMapping, } from '../model-mapping.js';
|
|
20
|
-
import { modelSupportsTools } from '../model-registry.js';
|
|
20
|
+
import { modelSupportsTools, DEFAULT_SONNET_MODEL } from '../model-registry.js';
|
|
21
21
|
/**
|
|
22
22
|
* Simple LRU-like decision cache
|
|
23
23
|
*/
|
|
@@ -139,8 +139,11 @@ export class HybridRouter {
|
|
|
139
139
|
async selectProvider(params) {
|
|
140
140
|
await this.ensureInitialized();
|
|
141
141
|
const startTime = Date.now();
|
|
142
|
+
// Strict requests carry their own execution identity. They must neither
|
|
143
|
+
// consume an ordinary cached decision nor replace one used by other callers.
|
|
144
|
+
const cacheDecision = this.config.cacheDecisions && !params.strictModel;
|
|
142
145
|
// Check cache first
|
|
143
|
-
if (
|
|
146
|
+
if (cacheDecision) {
|
|
144
147
|
const cacheKey = this.generateCacheKey(params);
|
|
145
148
|
const cached = this.decisionCache.get(cacheKey);
|
|
146
149
|
if (cached) {
|
|
@@ -152,26 +155,31 @@ export class HybridRouter {
|
|
|
152
155
|
this.routerMetrics.recordCacheMiss();
|
|
153
156
|
}
|
|
154
157
|
let decision;
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
158
|
+
if (params.strictModel) {
|
|
159
|
+
decision = this.selectStrict(params);
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
switch (this.config.mode) {
|
|
163
|
+
case 'manual':
|
|
164
|
+
decision = await this.selectManual(params);
|
|
165
|
+
break;
|
|
166
|
+
case 'rule-based':
|
|
167
|
+
decision = await this.selectRuleBased(params);
|
|
168
|
+
break;
|
|
169
|
+
case 'cost-optimized':
|
|
170
|
+
decision = await this.selectCostOptimized(params);
|
|
171
|
+
break;
|
|
172
|
+
case 'performance-optimized':
|
|
173
|
+
decision = await this.selectPerformanceOptimized(params);
|
|
174
|
+
break;
|
|
175
|
+
default:
|
|
176
|
+
decision = await this.selectRuleBased(params);
|
|
177
|
+
}
|
|
170
178
|
}
|
|
171
179
|
// Update decision time
|
|
172
180
|
decision.metadata.decisionTimeMs = Date.now() - startTime;
|
|
173
181
|
// Cache the decision
|
|
174
|
-
if (
|
|
182
|
+
if (cacheDecision) {
|
|
175
183
|
const cacheKey = this.generateCacheKey(params);
|
|
176
184
|
this.decisionCache.set(cacheKey, decision);
|
|
177
185
|
}
|
|
@@ -187,17 +195,21 @@ export class HybridRouter {
|
|
|
187
195
|
const requestId = uuidv4();
|
|
188
196
|
const decision = await this.selectProvider(params);
|
|
189
197
|
// ADR-093: apply Cyber Verification pin before dispatch. Security agents
|
|
190
|
-
// cannot reach Opus 4.7 until AQE_CYBER_VERIFIED=true.
|
|
191
|
-
// canonical model field and the provider-specific id — if
|
|
192
|
-
//
|
|
193
|
-
//
|
|
198
|
+
// cannot reach an Opus/Fable model >= 4.7 until AQE_CYBER_VERIFIED=true.
|
|
199
|
+
// Covers both the canonical model field and the provider-specific id — if
|
|
200
|
+
// either targets a cyber-gated model for a cyber-pinned agent, downgrade
|
|
201
|
+
// to the pinned Sonnet 4.6 on the same provider (fallback candidates are
|
|
202
|
+
// pinned again in executeWithFallback). MultiModelExecutor.consult()
|
|
194
203
|
// applies the same pin independently for advisor escalations.
|
|
195
204
|
const agentName = params.agentType ?? '';
|
|
196
|
-
if (shouldCyberPin(agentName) && (
|
|
205
|
+
if (shouldCyberPin(agentName) && (isCyberGatedModel(decision.model) || isCyberGatedModel(decision.providerModelId))) {
|
|
206
|
+
if (params.strictModel) {
|
|
207
|
+
throw createLLMError(`Strict model request for ${decision.model} conflicts with the cyber verification pin for ${agentName}`, 'MODEL_NOT_FOUND', { provider: decision.providerType, model: decision.model, retryable: false });
|
|
208
|
+
}
|
|
197
209
|
const originalModel = decision.model;
|
|
198
210
|
const originalProviderModelId = decision.providerModelId;
|
|
199
211
|
decision.model = applyCyberPin(agentName, decision.model, CYBER_PIN_CHAT_FALLBACK);
|
|
200
|
-
decision.providerModelId = applyCyberPin(agentName, decision.providerModelId,
|
|
212
|
+
decision.providerModelId = applyCyberPin(agentName, decision.providerModelId, cyberPinFallbackFor(decision.providerType));
|
|
201
213
|
// eslint-disable-next-line no-console
|
|
202
214
|
console.warn(`[aqe] ADR-093: ${agentName} pinned to ${decision.model} (was ${originalModel}/${originalProviderModelId}); ` +
|
|
203
215
|
`set AQE_CYBER_VERIFIED=true after Cyber Verification Program approval`);
|
|
@@ -313,6 +325,18 @@ export class HybridRouter {
|
|
|
313
325
|
// ============================================================================
|
|
314
326
|
// Provider Selection Methods
|
|
315
327
|
// ============================================================================
|
|
328
|
+
/** Select an explicitly pinned model without rules, shared cache, or fallback. */
|
|
329
|
+
selectStrict(params) {
|
|
330
|
+
if (!params.model?.trim()) {
|
|
331
|
+
throw createLLMError('strictModel requires an explicit nonempty model', 'MODEL_NOT_FOUND', { retryable: false });
|
|
332
|
+
}
|
|
333
|
+
const providerType = (params.preferredProvider ?? this.config.defaultProvider);
|
|
334
|
+
const provider = this.providerManager.getProvider(providerType);
|
|
335
|
+
if (!provider) {
|
|
336
|
+
throw createLLMError(`Strict model provider ${providerType} is unavailable`, 'PROVIDER_UNAVAILABLE', { provider: providerType, model: params.model, retryable: false });
|
|
337
|
+
}
|
|
338
|
+
return this.createDecision(provider, providerType, params.model, 'manual');
|
|
339
|
+
}
|
|
316
340
|
/**
|
|
317
341
|
* Manual selection - use preferredProvider or default
|
|
318
342
|
*/
|
|
@@ -452,7 +476,7 @@ export class HybridRouter {
|
|
|
452
476
|
// surfaced by the rule-based E2E test in
|
|
453
477
|
// tests/e2e/llm-router-real-providers.test.ts.
|
|
454
478
|
const defaultProviderType = this.config.defaultProvider;
|
|
455
|
-
if (defaultProviderType && defaultProviderType !== decision.providerType) {
|
|
479
|
+
if (!params.strictModel && defaultProviderType && defaultProviderType !== decision.providerType) {
|
|
456
480
|
executionOrder.push({
|
|
457
481
|
provider: defaultProviderType,
|
|
458
482
|
model: this.config.defaultModel,
|
|
@@ -464,13 +488,26 @@ export class HybridRouter {
|
|
|
464
488
|
// openrouter/gemini/azure-openai/bedrock from ADR-043) and
|
|
465
489
|
// ProviderManager.createProvider() builds all of them. The narrower
|
|
466
490
|
// list silently excluded users' actual fallback providers.
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
491
|
+
if (!params.strictModel) {
|
|
492
|
+
for (const entry of fallbackChain.entries) {
|
|
493
|
+
if (!entry.enabled)
|
|
494
|
+
continue;
|
|
495
|
+
if (entry.provider === decision.providerType)
|
|
496
|
+
continue;
|
|
497
|
+
for (const model of entry.models) {
|
|
498
|
+
executionOrder.push({ provider: entry.provider, model });
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
// ADR-093: fallback candidates (default model, fallback chain) are added
|
|
503
|
+
// after chat() applied the cyber pin, so pin them here too — otherwise a
|
|
504
|
+
// failed primary could escalate a security agent to an Opus/Fable model.
|
|
505
|
+
const pinAgent = params.agentType ?? '';
|
|
506
|
+
if (shouldCyberPin(pinAgent)) {
|
|
507
|
+
for (const entry of executionOrder) {
|
|
508
|
+
if (isCyberGatedModel(entry.model)) {
|
|
509
|
+
entry.model = cyberPinFallbackFor(entry.provider);
|
|
510
|
+
}
|
|
474
511
|
}
|
|
475
512
|
}
|
|
476
513
|
// Capability-aware guard: when the request needs tools, drop any candidate
|
|
@@ -520,6 +557,17 @@ export class HybridRouter {
|
|
|
520
557
|
// ADR-123: persist the charge to the cross-process ledger so budgets
|
|
521
558
|
// hold across a fleet of processes. ADR-124 M2.3: attribute to the agent.
|
|
522
559
|
this.providerManager.recordResponseSpend(response, params.agentType);
|
|
560
|
+
// A provider can return an unexpected model even when its request was
|
|
561
|
+
// pinned. Account for the completed call, but do not accept that answer
|
|
562
|
+
// as evidence from the requested model (e.g. a frontier quality judge).
|
|
563
|
+
if (params.strictModel) {
|
|
564
|
+
if (response.provider !== providerType) {
|
|
565
|
+
throw createLLMError(`Strict model provider mismatch: expected ${providerType}, received ${response.provider}`, 'PROVIDER_UNAVAILABLE', { provider: providerType, model, retryable: false });
|
|
566
|
+
}
|
|
567
|
+
if (!this.isSameModel(decision.model, response.model)) {
|
|
568
|
+
throw createLLMError(`Strict model mismatch: expected ${decision.model}, received ${response.model}`, 'MODEL_NOT_FOUND', { provider: providerType, model, retryable: false });
|
|
569
|
+
}
|
|
570
|
+
}
|
|
523
571
|
const callLatency = Date.now() - callStartTime;
|
|
524
572
|
// Record success in legacy tracker
|
|
525
573
|
this.metrics.recordSuccess(providerType);
|
|
@@ -585,7 +633,7 @@ export class HybridRouter {
|
|
|
585
633
|
// delay (because no need to wait) but DOES continue to the next
|
|
586
634
|
// entry in executionOrder. Only retryable errors get the delay.
|
|
587
635
|
const nonRetryable = isLLMError(error) && !error.retryable;
|
|
588
|
-
if (!nonRetryable && attempts < fallbackBehavior.maxAttempts) {
|
|
636
|
+
if (!params.strictModel && !nonRetryable && attempts < fallbackBehavior.maxAttempts) {
|
|
589
637
|
await this.delay(fallbackBehavior.delayMs);
|
|
590
638
|
}
|
|
591
639
|
}
|
|
@@ -595,6 +643,18 @@ export class HybridRouter {
|
|
|
595
643
|
// ============================================================================
|
|
596
644
|
// Helper Methods
|
|
597
645
|
// ============================================================================
|
|
646
|
+
/** Compare identity independently of the API transport hosting the model. */
|
|
647
|
+
isSameModel(expected, actual) {
|
|
648
|
+
if (expected === actual)
|
|
649
|
+
return true;
|
|
650
|
+
try {
|
|
651
|
+
return normalizeModelId(expected) === normalizeModelId(actual);
|
|
652
|
+
}
|
|
653
|
+
catch {
|
|
654
|
+
// Unregistered model IDs are only equivalent when they match exactly.
|
|
655
|
+
return false;
|
|
656
|
+
}
|
|
657
|
+
}
|
|
598
658
|
/**
|
|
599
659
|
* Create a routing decision with proper model ID normalization (ADR-043)
|
|
600
660
|
*/
|
|
@@ -903,7 +963,7 @@ export function createQERouter(providerManager) {
|
|
|
903
963
|
mode: 'rule-based',
|
|
904
964
|
rules: DEFAULT_QE_ROUTING_RULES,
|
|
905
965
|
defaultProvider: 'claude',
|
|
906
|
-
defaultModel:
|
|
966
|
+
defaultModel: DEFAULT_SONNET_MODEL,
|
|
907
967
|
enableMetrics: true,
|
|
908
968
|
cacheDecisions: true,
|
|
909
969
|
});
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
* - Override mechanism for specific tasks
|
|
16
16
|
*/
|
|
17
17
|
import { getAgentRoutingCategory, getPreferredModelForAgent, getAgentCapabilityRequirements, createAllAgentRoutingRules, AGENT_CATEGORY_MAP, DEFAULT_CATEGORY_MODELS, } from './agent-router-config.js';
|
|
18
|
+
import { DEFAULT_OPUS_MODEL, DEFAULT_SONNET_MODEL } from '../model-registry.js';
|
|
18
19
|
// ============================================================================
|
|
19
20
|
// Rule Engine
|
|
20
21
|
// ============================================================================
|
|
@@ -198,7 +199,7 @@ export const DEFAULT_QE_ROUTING_RULES = [
|
|
|
198
199
|
},
|
|
199
200
|
action: {
|
|
200
201
|
provider: 'claude',
|
|
201
|
-
model:
|
|
202
|
+
model: DEFAULT_OPUS_MODEL,
|
|
202
203
|
temperature: 0.1,
|
|
203
204
|
},
|
|
204
205
|
enabled: true,
|
|
@@ -215,7 +216,7 @@ export const DEFAULT_QE_ROUTING_RULES = [
|
|
|
215
216
|
},
|
|
216
217
|
action: {
|
|
217
218
|
provider: 'claude',
|
|
218
|
-
model:
|
|
219
|
+
model: DEFAULT_SONNET_MODEL,
|
|
219
220
|
temperature: 0.3,
|
|
220
221
|
},
|
|
221
222
|
enabled: true,
|
|
@@ -232,7 +233,7 @@ export const DEFAULT_QE_ROUTING_RULES = [
|
|
|
232
233
|
},
|
|
233
234
|
action: {
|
|
234
235
|
provider: 'claude',
|
|
235
|
-
model:
|
|
236
|
+
model: DEFAULT_OPUS_MODEL,
|
|
236
237
|
temperature: 0.2,
|
|
237
238
|
},
|
|
238
239
|
enabled: true,
|
|
@@ -248,7 +249,7 @@ export const DEFAULT_QE_ROUTING_RULES = [
|
|
|
248
249
|
},
|
|
249
250
|
action: {
|
|
250
251
|
provider: 'claude',
|
|
251
|
-
model:
|
|
252
|
+
model: DEFAULT_SONNET_MODEL,
|
|
252
253
|
temperature: 0.2,
|
|
253
254
|
},
|
|
254
255
|
enabled: true,
|
|
@@ -264,7 +265,7 @@ export const DEFAULT_QE_ROUTING_RULES = [
|
|
|
264
265
|
},
|
|
265
266
|
action: {
|
|
266
267
|
provider: 'claude',
|
|
267
|
-
model:
|
|
268
|
+
model: DEFAULT_SONNET_MODEL,
|
|
268
269
|
temperature: 0.1,
|
|
269
270
|
},
|
|
270
271
|
enabled: true,
|
|
@@ -280,7 +281,7 @@ export const DEFAULT_QE_ROUTING_RULES = [
|
|
|
280
281
|
},
|
|
281
282
|
action: {
|
|
282
283
|
provider: 'claude',
|
|
283
|
-
model:
|
|
284
|
+
model: DEFAULT_SONNET_MODEL,
|
|
284
285
|
temperature: 0.3,
|
|
285
286
|
},
|
|
286
287
|
enabled: true,
|
|
@@ -296,7 +297,7 @@ export const DEFAULT_QE_ROUTING_RULES = [
|
|
|
296
297
|
},
|
|
297
298
|
action: {
|
|
298
299
|
provider: 'claude',
|
|
299
|
-
model:
|
|
300
|
+
model: DEFAULT_SONNET_MODEL,
|
|
300
301
|
temperature: 0.3,
|
|
301
302
|
},
|
|
302
303
|
enabled: true,
|
|
@@ -328,7 +329,7 @@ export const DEFAULT_QE_ROUTING_RULES = [
|
|
|
328
329
|
},
|
|
329
330
|
action: {
|
|
330
331
|
provider: 'ollama',
|
|
331
|
-
model: '
|
|
332
|
+
model: 'qwen3-coder:30b',
|
|
332
333
|
temperature: 0.3,
|
|
333
334
|
},
|
|
334
335
|
enabled: true,
|
|
@@ -686,9 +686,16 @@ export interface ChatParams {
|
|
|
686
686
|
agentType?: string;
|
|
687
687
|
/** Task complexity hint */
|
|
688
688
|
complexity?: TaskComplexity;
|
|
689
|
-
/** Specific model to use (for manual mode) - canonical or provider-specific ID */
|
|
689
|
+
/** Specific model to use (for manual mode or strictModel) - canonical or provider-specific ID */
|
|
690
690
|
model?: string;
|
|
691
|
-
/**
|
|
691
|
+
/**
|
|
692
|
+
* Require the explicit model on preferredProvider (or the configured default).
|
|
693
|
+
* Bypasses routing rules and decision caching, disallows provider/model
|
|
694
|
+
* fallback, and rejects responses from a different provider or model.
|
|
695
|
+
* Equivalent canonical and provider-specific model IDs are accepted.
|
|
696
|
+
*/
|
|
697
|
+
strictModel?: boolean;
|
|
698
|
+
/** Preferred provider (for manual mode or strictModel) - supports extended providers */
|
|
692
699
|
preferredProvider?: ExtendedProviderType;
|
|
693
700
|
/** Required capabilities (legacy) */
|
|
694
701
|
requiredCapabilities?: string[];
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
* @see ADR-043 - Vendor-Independent LLM Support (this extension)
|
|
20
20
|
*/
|
|
21
21
|
import { isBuiltinProviderType, } from '../interfaces.js';
|
|
22
|
+
import { CLAUDE_TIER_MODELS, DEFAULT_SONNET_MODEL } from '../model-registry.js';
|
|
22
23
|
/**
|
|
23
24
|
* Type guard for the closed extended set. Use before indexing any
|
|
24
25
|
* `Record<BuiltinExtendedProviderType, _>` with an open provider type, so the
|
|
@@ -84,7 +85,7 @@ export const DEFAULT_FALLBACK_BEHAVIOR = {
|
|
|
84
85
|
export const DEFAULT_FALLBACK_CHAIN_ENTRIES = [
|
|
85
86
|
{
|
|
86
87
|
provider: 'claude',
|
|
87
|
-
models: [
|
|
88
|
+
models: [DEFAULT_SONNET_MODEL, CLAUDE_TIER_MODELS[1]],
|
|
88
89
|
enabled: true,
|
|
89
90
|
priority: 100,
|
|
90
91
|
maxAttempts: 2,
|
|
@@ -92,7 +93,7 @@ export const DEFAULT_FALLBACK_CHAIN_ENTRIES = [
|
|
|
92
93
|
},
|
|
93
94
|
{
|
|
94
95
|
provider: 'openai',
|
|
95
|
-
models: ['gpt-
|
|
96
|
+
models: ['gpt-6-sol', 'gpt-6-luna'],
|
|
96
97
|
enabled: true,
|
|
97
98
|
priority: 90,
|
|
98
99
|
maxAttempts: 2,
|
|
@@ -100,7 +101,7 @@ export const DEFAULT_FALLBACK_CHAIN_ENTRIES = [
|
|
|
100
101
|
},
|
|
101
102
|
{
|
|
102
103
|
provider: 'openrouter',
|
|
103
|
-
models: ['anthropic/claude-sonnet-
|
|
104
|
+
models: ['anthropic/claude-sonnet-5', 'openai/gpt-6-sol'],
|
|
104
105
|
enabled: true,
|
|
105
106
|
priority: 85,
|
|
106
107
|
maxAttempts: 2,
|
|
@@ -108,7 +109,7 @@ export const DEFAULT_FALLBACK_CHAIN_ENTRIES = [
|
|
|
108
109
|
},
|
|
109
110
|
{
|
|
110
111
|
provider: 'ollama',
|
|
111
|
-
models: ['
|
|
112
|
+
models: ['qwen3-coder:30b', 'qwen3:30b-a3b'],
|
|
112
113
|
enabled: true,
|
|
113
114
|
priority: 80,
|
|
114
115
|
maxAttempts: 2,
|
|
@@ -141,18 +142,18 @@ export const DEFAULT_ROUTER_CONFIG = {
|
|
|
141
142
|
mode: 'rule-based',
|
|
142
143
|
rules: [],
|
|
143
144
|
defaultProvider: 'claude',
|
|
144
|
-
defaultModel:
|
|
145
|
+
defaultModel: DEFAULT_SONNET_MODEL,
|
|
145
146
|
fallbackChain: DEFAULT_FALLBACK_CHAIN,
|
|
146
147
|
fallbackBehavior: DEFAULT_FALLBACK_BEHAVIOR,
|
|
147
148
|
providers: {
|
|
148
|
-
claude: { enabled: true, defaultModel:
|
|
149
|
+
claude: { enabled: true, defaultModel: DEFAULT_SONNET_MODEL },
|
|
149
150
|
// ADR-123: opt-in (issue #557 — don't default the subscription/fleet path
|
|
150
151
|
// on). Enabled explicitly via AQE_LLM_PROVIDER=claude-code or disk config.
|
|
151
|
-
'claude-code': { enabled: false, defaultModel:
|
|
152
|
-
openai: { enabled: true, defaultModel: 'gpt-
|
|
153
|
-
ollama: { enabled: true, defaultModel: '
|
|
154
|
-
openrouter: { enabled: true, defaultModel: 'anthropic/claude-sonnet-
|
|
155
|
-
gemini: { enabled: false, defaultModel: 'gemini-
|
|
152
|
+
'claude-code': { enabled: false, defaultModel: DEFAULT_SONNET_MODEL },
|
|
153
|
+
openai: { enabled: true, defaultModel: 'gpt-6-sol' },
|
|
154
|
+
ollama: { enabled: true, defaultModel: 'qwen3-coder:30b' },
|
|
155
|
+
openrouter: { enabled: true, defaultModel: 'anthropic/claude-sonnet-5' },
|
|
156
|
+
gemini: { enabled: false, defaultModel: 'gemini-2.5-flash' },
|
|
156
157
|
'azure-openai': { enabled: false },
|
|
157
158
|
bedrock: { enabled: false },
|
|
158
159
|
// ADR-123: opt-in; enabled when COGNITUM_API_KEY present or via override.
|
|
@@ -190,6 +191,73 @@ export const DEFAULT_ROUTER_CONFIG = {
|
|
|
190
191
|
* This enables vendor-neutral model references
|
|
191
192
|
*/
|
|
192
193
|
export const DEFAULT_MODEL_MAPPINGS = [
|
|
194
|
+
// Claude 5 generation (2026-09 model refresh; routing tiers 2-4)
|
|
195
|
+
{
|
|
196
|
+
canonicalId: 'claude-opus-5',
|
|
197
|
+
canonicalName: 'Claude Opus 5',
|
|
198
|
+
providerIds: {
|
|
199
|
+
claude: 'claude-opus-5',
|
|
200
|
+
openrouter: 'anthropic/claude-opus-5',
|
|
201
|
+
},
|
|
202
|
+
capabilities: {
|
|
203
|
+
supportsStreaming: true,
|
|
204
|
+
supportsTools: true,
|
|
205
|
+
supportsMCP: true,
|
|
206
|
+
supportsVision: true,
|
|
207
|
+
supportsExtendedThinking: true,
|
|
208
|
+
supportsJsonMode: true,
|
|
209
|
+
maxContextTokens: 1_000_000,
|
|
210
|
+
maxOutputTokens: 128000,
|
|
211
|
+
},
|
|
212
|
+
tier: 'flagship',
|
|
213
|
+
family: 'claude',
|
|
214
|
+
inputCostPer1M: 5,
|
|
215
|
+
outputCostPer1M: 25,
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
canonicalId: 'claude-sonnet-5',
|
|
219
|
+
canonicalName: 'Claude Sonnet 5',
|
|
220
|
+
providerIds: {
|
|
221
|
+
claude: 'claude-sonnet-5',
|
|
222
|
+
openrouter: 'anthropic/claude-sonnet-5',
|
|
223
|
+
},
|
|
224
|
+
capabilities: {
|
|
225
|
+
supportsStreaming: true,
|
|
226
|
+
supportsTools: true,
|
|
227
|
+
supportsMCP: true,
|
|
228
|
+
supportsVision: true,
|
|
229
|
+
supportsExtendedThinking: true,
|
|
230
|
+
supportsJsonMode: true,
|
|
231
|
+
maxContextTokens: 1_000_000,
|
|
232
|
+
maxOutputTokens: 128000,
|
|
233
|
+
},
|
|
234
|
+
tier: 'advanced',
|
|
235
|
+
family: 'claude',
|
|
236
|
+
inputCostPer1M: 2,
|
|
237
|
+
outputCostPer1M: 10,
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
canonicalId: 'claude-opus-5-5',
|
|
241
|
+
canonicalName: 'Claude Opus 5.5',
|
|
242
|
+
providerIds: {
|
|
243
|
+
claude: 'claude-opus-5-5',
|
|
244
|
+
openrouter: 'anthropic/claude-opus-5.5',
|
|
245
|
+
},
|
|
246
|
+
capabilities: {
|
|
247
|
+
supportsStreaming: true,
|
|
248
|
+
supportsTools: true,
|
|
249
|
+
supportsMCP: true,
|
|
250
|
+
supportsVision: true,
|
|
251
|
+
supportsExtendedThinking: true,
|
|
252
|
+
supportsJsonMode: true,
|
|
253
|
+
maxContextTokens: 1_000_000,
|
|
254
|
+
maxOutputTokens: 128000,
|
|
255
|
+
},
|
|
256
|
+
tier: 'flagship',
|
|
257
|
+
family: 'claude',
|
|
258
|
+
inputCostPer1M: 4,
|
|
259
|
+
outputCostPer1M: 20,
|
|
260
|
+
},
|
|
193
261
|
// ADR-093: Claude Opus 4.7 (flagship, Apr 2026)
|
|
194
262
|
{
|
|
195
263
|
canonicalId: 'claude-opus-4-7',
|
|
@@ -230,8 +298,8 @@ export const DEFAULT_MODEL_MAPPINGS = [
|
|
|
230
298
|
supportsVision: true,
|
|
231
299
|
supportsExtendedThinking: true,
|
|
232
300
|
supportsJsonMode: true,
|
|
233
|
-
maxContextTokens:
|
|
234
|
-
maxOutputTokens:
|
|
301
|
+
maxContextTokens: 1_000_000,
|
|
302
|
+
maxOutputTokens: 128000,
|
|
235
303
|
},
|
|
236
304
|
tier: 'advanced',
|
|
237
305
|
family: 'claude',
|