agentic-qe 3.14.3 → 3.14.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +204 -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/audit/witness-chain.d.ts +1 -1
- package/dist/audit/witness-chain.js +29 -22
- package/dist/cli/bundle.js +13 -10
- package/dist/cli/chunks/adapter-IYC62SXA.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-TQOMLWWX.js → agent-booster-wasm-EDNKP3SP.js} +2 -2
- package/dist/cli/chunks/{agent-handler-Q3SEMMI2.js → agent-handler-V6CZ7Q6S.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-SJXAQSZI.js → agent-memory-branch-ZMD6ULC3.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-LLOU2IXD.js +2 -0
- package/dist/cli/chunks/{arena-7RC7TBGW.js → arena-4UPAEHFT.js} +4 -4
- package/dist/cli/chunks/{arena-UPB7TKUY.js → arena-QLSBESC7.js} +2 -2
- package/dist/cli/chunks/{audit-IXN5R4WB.js → audit-CVZQMF55.js} +3 -3
- package/dist/cli/chunks/base-P3Z4IKCT.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-RP4DEGK3.js → better-sqlite3-4DSBPDRH.js} +2 -2
- package/dist/cli/chunks/brain-handler-GBY4EZ4P.js +94 -0
- package/dist/cli/chunks/{branch-enumerator-VPRWDGFJ.js → branch-enumerator-XYBVXCNO.js} +2 -2
- package/dist/cli/chunks/{browser-B6E7JPPJ.js → browser-32F6MREU.js} +2 -2
- package/dist/cli/chunks/browser-workflow-YYHQQ25X.js +2 -0
- package/dist/cli/chunks/{chunk-HOQQCY2K.js → chunk-2JGEZHWY.js} +2 -2
- package/dist/cli/chunks/{chunk-NN76NTOX.js → chunk-2KJQ2UQE.js} +1 -1
- package/dist/cli/chunks/{chunk-D4Z2N74A.js → chunk-2OMLTYQK.js} +1 -1
- package/dist/cli/chunks/chunk-37TUN44F.js +4 -0
- package/dist/cli/chunks/{chunk-LVLBIKJD.js → chunk-3DDXWYMO.js} +1 -1
- package/dist/cli/chunks/{chunk-UHQY3GK7.js → chunk-3EZ5DR2R.js} +3 -3
- package/dist/cli/chunks/{chunk-3P6NCFI2.js → chunk-3KDL6QDK.js} +2 -2
- package/dist/cli/chunks/{chunk-SG47AXJG.js → chunk-3VIXOHMS.js} +1 -1
- package/dist/cli/chunks/{chunk-7FYMDKQH.js → chunk-3YUB5HER.js} +165 -167
- package/dist/cli/chunks/chunk-4FWTLJEP.js +16 -0
- package/dist/cli/chunks/{chunk-PI74GOE4.js → chunk-52L77RMG.js} +2 -2
- package/dist/cli/chunks/{chunk-LS3EUMBP.js → chunk-5D36YHS3.js} +5 -5
- package/dist/cli/chunks/{chunk-EY4OQHU3.js → chunk-5WOSWNDN.js} +1 -1
- package/dist/cli/chunks/{chunk-F67AV5P2.js → chunk-67YV75XP.js} +2 -2
- package/dist/cli/chunks/{chunk-IP7NSFQQ.js → chunk-6A44AOGN.js} +2 -2
- package/dist/cli/chunks/{chunk-3ABRGG3C.js → chunk-6CR4VQBQ.js} +2 -2
- package/dist/cli/chunks/chunk-6ITZZIQX.js +2 -0
- package/dist/cli/chunks/{chunk-7BUERZYL.js → chunk-6LKDHEBY.js} +2 -2
- package/dist/cli/chunks/{chunk-FKG5OQFT.js → chunk-6TU7FEMD.js} +1 -1
- package/dist/cli/chunks/{chunk-KF63AYXD.js → chunk-6VAZAHQG.js} +2 -2
- package/dist/cli/chunks/{chunk-XXCYQXK3.js → chunk-73EI4C2E.js} +2 -2
- package/dist/cli/chunks/chunk-75QJ5HWE.js +14 -0
- package/dist/cli/chunks/{chunk-72UJXEKQ.js → chunk-7CD7PBHY.js} +2 -2
- package/dist/cli/chunks/chunk-7DETTOPZ.js +14 -0
- package/dist/cli/chunks/{chunk-7JQHPANT.js → chunk-7JZJJA7U.js} +3 -3
- package/dist/cli/chunks/{chunk-5Y5TC6BY.js → chunk-7VFY7TUR.js} +2 -2
- package/dist/cli/chunks/chunk-7X7JYWT4.js +27 -0
- package/dist/cli/chunks/chunk-AF4XKLXO.js +2 -0
- package/dist/cli/chunks/{chunk-7SLAZAVU.js → chunk-AFEDJ3RU.js} +2 -2
- package/dist/cli/chunks/{chunk-ZUG5MOUB.js → chunk-AMMQOV35.js} +2 -2
- package/dist/cli/chunks/{chunk-ZN3J6TZD.js → chunk-BHFR2EXL.js} +1 -1
- package/dist/cli/chunks/{chunk-HXE5NBJG.js → chunk-BJPL6THQ.js} +1 -1
- package/dist/cli/chunks/{chunk-37BASGWC.js → chunk-BXVAVFGU.js} +2 -2
- package/dist/cli/chunks/{chunk-VWNHKYK7.js → chunk-BYG36QC5.js} +2 -2
- package/dist/cli/chunks/chunk-C3HQL6S4.js +2 -0
- package/dist/cli/chunks/{chunk-OY7MLMEX.js → chunk-C3Z4VVHP.js} +5 -5
- package/dist/cli/chunks/{chunk-CB5JPRIZ.js → chunk-CPC7FN52.js} +2 -2
- package/dist/cli/chunks/{chunk-OVDKWCD7.js → chunk-CVMNJSCB.js} +2 -2
- package/dist/cli/chunks/{chunk-N4H2QOT5.js → chunk-CYE2TJFV.js} +2 -2
- package/dist/cli/chunks/{chunk-YCBDE2N7.js → chunk-CZO4BJG5.js} +2 -2
- package/dist/cli/chunks/{chunk-YEXPFHV6.js → chunk-D6OUCB2H.js} +2 -2
- package/dist/cli/chunks/{chunk-JRYZKBY2.js → chunk-DDCIYOGT.js} +2 -2
- package/dist/cli/chunks/{chunk-XX7HUSX2.js → chunk-DKUBQQFG.js} +2 -2
- package/dist/cli/chunks/{chunk-SGXSB7YO.js → chunk-DLF5BOJD.js} +1 -1
- package/dist/cli/chunks/{chunk-5BLFXQEB.js → chunk-DO6EI5KB.js} +1 -1
- package/dist/cli/chunks/{chunk-33VPWGCM.js → chunk-DPBRWP4J.js} +3 -3
- package/dist/cli/chunks/{chunk-H6XBM2LY.js → chunk-E3W6XQ57.js} +2 -2
- package/dist/cli/chunks/{chunk-KPMGTVB4.js → chunk-E4AZXCT5.js} +1 -1
- package/dist/cli/chunks/chunk-E4EYPYR3.js +2 -0
- package/dist/cli/chunks/{chunk-TFHQE6NK.js → chunk-EFV4ADMO.js} +4 -4
- package/dist/cli/chunks/{chunk-VIDBBB6F.js → chunk-ELBZON4V.js} +2 -2
- package/dist/cli/chunks/chunk-EOR2UT72.js +2 -0
- package/dist/cli/chunks/{chunk-H5ZRV5K5.js → chunk-F34OAHOM.js} +2 -2
- package/dist/cli/chunks/{chunk-UMENRGHK.js → chunk-FUNGTIF2.js} +2 -2
- package/dist/cli/chunks/{chunk-DBA3N742.js → chunk-G3L5L6YQ.js} +1 -1
- package/dist/cli/chunks/{chunk-ELU4IC3I.js → chunk-G3W6BMVJ.js} +1 -1
- package/dist/cli/chunks/{chunk-RTJ2M6V6.js → chunk-GTKCGPJZ.js} +3 -3
- package/dist/cli/chunks/chunk-HBCGYMQU.js +2 -0
- package/dist/cli/chunks/{chunk-YL7T3VV7.js → chunk-HSVKZ5KI.js} +4 -4
- package/dist/cli/chunks/{chunk-MXMFGSWR.js → chunk-HVU64GP5.js} +2 -2
- package/dist/cli/chunks/chunk-HVXJC3OC.js +2 -0
- package/dist/cli/chunks/chunk-HYEJJJY3.js +4 -0
- package/dist/cli/chunks/{chunk-CR3QGHVN.js → chunk-I2NENQ44.js} +2 -2
- package/dist/cli/chunks/{chunk-GNTVFN7D.js → chunk-I6X3EGJI.js} +1 -1
- package/dist/cli/chunks/{chunk-2GNRW3OD.js → chunk-IGBEJ4UJ.js} +2 -2
- package/dist/cli/chunks/{chunk-UYJHYMEQ.js → chunk-IIAR5S7Q.js} +2 -2
- package/dist/cli/chunks/{chunk-YAKS3CAB.js → chunk-IJHCIXJC.js} +2 -2
- package/dist/cli/chunks/{chunk-YDNSLLBS.js → chunk-IUDWEOLX.js} +2 -2
- package/dist/cli/chunks/chunk-IUHB5GVS.js +3 -0
- package/dist/cli/chunks/{chunk-4UDZLD42.js → chunk-IYTLXUBO.js} +2 -2
- package/dist/cli/chunks/chunk-J27F4NSB.js +2 -0
- package/dist/cli/chunks/{chunk-HRUU7E3D.js → chunk-J5UNP6W3.js} +2 -2
- package/dist/cli/chunks/{chunk-E3FBW6G2.js → chunk-JES6R5KP.js} +1 -1
- package/dist/cli/chunks/chunk-JROVR6YS.js +11 -0
- package/dist/cli/chunks/chunk-JSZ663MU.js +2 -0
- package/dist/cli/chunks/{chunk-FUE6LL72.js → chunk-JVQBWYHW.js} +2 -2
- package/dist/cli/chunks/{chunk-G6ZHTF42.js → chunk-K27SU3RE.js} +2 -2
- package/dist/cli/chunks/chunk-K7NJHFLZ.js +54 -0
- package/dist/cli/chunks/{chunk-MDZ6RRLX.js → chunk-KEY43ANX.js} +2 -2
- package/dist/cli/chunks/chunk-KIP6WZGV.js +13 -0
- package/dist/cli/chunks/{chunk-SQ3PPISY.js → chunk-KKHYJF5U.js} +1 -1
- package/dist/cli/chunks/{chunk-TJEIOE7F.js → chunk-KLTP5IDB.js} +1 -1
- package/dist/cli/chunks/{chunk-IKIITGU5.js → chunk-KO4FNAUR.js} +4 -4
- package/dist/cli/chunks/{chunk-DX3C5HPN.js → chunk-KYA5LARK.js} +1 -1
- package/dist/cli/chunks/{chunk-ZHXWGNYM.js → chunk-LSUILON7.js} +1 -1
- package/dist/cli/chunks/chunk-LULD4JV2.js +15 -0
- package/dist/cli/chunks/{chunk-MWWAMDHI.js → chunk-M23ZOZVY.js} +1 -1
- package/dist/cli/chunks/{chunk-RKJZWWB7.js → chunk-M5AEL7IS.js} +2 -2
- package/dist/cli/chunks/chunk-MI5Q55DG.js +65 -0
- package/dist/cli/chunks/chunk-N7H767TP.js +4 -0
- package/dist/cli/chunks/{chunk-5F6DWHQG.js → chunk-NQI7FWCS.js} +2 -2
- package/dist/cli/chunks/{chunk-LLVGTEHU.js → chunk-NRE4NAVA.js} +1 -1
- package/dist/cli/chunks/{chunk-XA7CG3LH.js → chunk-NU7UTXMP.js} +2 -2
- package/dist/cli/chunks/chunk-NVYBM3R4.js +2 -0
- package/dist/cli/chunks/chunk-O3JTQ7N4.js +2 -0
- package/dist/cli/chunks/{chunk-TISSZFHO.js → chunk-OEIQTWQP.js} +1 -1
- package/dist/cli/chunks/{chunk-2IGT5WNQ.js → chunk-PSPKSUF6.js} +1 -1
- package/dist/cli/chunks/{chunk-B7SWW5A6.js → chunk-QIRL6B3C.js} +2 -2
- package/dist/cli/chunks/{chunk-JBB7E26R.js → chunk-QRCIZFNK.js} +2 -2
- package/dist/cli/chunks/{chunk-4JBFJTHJ.js → chunk-QWUXCG2L.js} +1 -1
- package/dist/cli/chunks/{chunk-B5XFDFBT.js → chunk-QYOGD2VW.js} +1 -1
- package/dist/cli/chunks/chunk-QZMUXJHZ.js +2 -0
- package/dist/cli/chunks/chunk-R6IU3EWP.js +2 -0
- package/dist/cli/chunks/{chunk-G5C2XVZC.js → chunk-R74ZKREV.js} +1 -1
- package/dist/cli/chunks/chunk-RD2VGOUH.js +2 -0
- package/dist/cli/chunks/{chunk-OV5EZO3U.js → chunk-RD6TEZ64.js} +2 -2
- package/dist/cli/chunks/{chunk-4C6UJIHB.js → chunk-RGGK6VZ7.js} +1 -1
- package/dist/cli/chunks/{chunk-4XPPMADQ.js → chunk-RIZVC4XY.js} +6 -6
- package/dist/cli/chunks/{chunk-4RP5VUBI.js → chunk-RKOUXVZZ.js} +2 -2
- package/dist/cli/chunks/{chunk-IFFZR6GY.js → chunk-RP2ZKPYV.js} +1 -1
- package/dist/cli/chunks/{chunk-BN7DKW5D.js → chunk-SQF6HRXR.js} +1 -1
- package/dist/cli/chunks/chunk-SQKW3B6B.js +2 -0
- package/dist/cli/chunks/{chunk-LKN7JQTW.js → chunk-SX4JLSLV.js} +2 -2
- package/dist/cli/chunks/{chunk-YGB6R5DW.js → chunk-TUSSPKRM.js} +1 -1
- package/dist/cli/chunks/{chunk-LHGNNZ76.js → chunk-TY5WC3FT.js} +3 -3
- package/dist/cli/chunks/{chunk-B2ZONZPZ.js → chunk-UDHVCKGA.js} +2 -2
- package/dist/cli/chunks/{chunk-IU4EBTA2.js → chunk-UJWAWIRV.js} +4 -4
- package/dist/cli/chunks/{chunk-LTBCAFTZ.js → chunk-UKGXWW64.js} +3 -3
- package/dist/cli/chunks/{chunk-JV4FZUE7.js → chunk-UMGFMKDW.js} +2 -2
- package/dist/cli/chunks/{chunk-STRDSVH3.js → chunk-URVHZPWY.js} +2 -2
- package/dist/cli/chunks/{chunk-PZTVH2AS.js → chunk-UTBYJ4RF.js} +2 -2
- package/dist/cli/chunks/{chunk-ZK5JKHP4.js → chunk-VD5IO5EO.js} +1 -1
- package/dist/cli/chunks/chunk-VTOVWHEM.js +2 -0
- package/dist/cli/chunks/{chunk-OYMLHX2B.js → chunk-W2XCZU62.js} +1 -1
- package/dist/cli/chunks/{chunk-T35GZXTU.js → chunk-WJHWH5D2.js} +2 -2
- package/dist/cli/chunks/{chunk-NBWQBQO5.js → chunk-WJTSY5MC.js} +1 -1
- package/dist/cli/chunks/{chunk-NTSXHZTC.js → chunk-WK7B4B6Y.js} +4 -4
- package/dist/cli/chunks/{chunk-2WT7AKKK.js → chunk-WLXK2KNU.js} +2 -2
- package/dist/cli/chunks/chunk-WOIGKU2N.js +180 -0
- package/dist/cli/chunks/{chunk-WYMGK5DX.js → chunk-WX6RRIGW.js} +2 -2
- package/dist/cli/chunks/{chunk-C46DMCWF.js → chunk-XEZIIQYJ.js} +2 -2
- package/dist/cli/chunks/{chunk-TTMHIOQ3.js → chunk-XFPPERA2.js} +2 -2
- package/dist/cli/chunks/{chunk-OVPJQWHW.js → chunk-XLAUGSW7.js} +2 -2
- package/dist/cli/chunks/{chunk-V4AOVDCJ.js → chunk-XQSIRBKT.js} +8 -8
- package/dist/cli/chunks/{chunk-4Q35TI6Z.js → chunk-XUR2M2WB.js} +2 -2
- package/dist/cli/chunks/{chunk-5IAB5NRZ.js → chunk-XZSMZHM2.js} +2 -2
- package/dist/cli/chunks/{chunk-AB4U6ZNI.js → chunk-Y5L3ES4L.js} +2 -2
- package/dist/cli/chunks/chunk-YDFL445W.js +2 -0
- package/dist/cli/chunks/{chunk-7G6UX2QN.js → chunk-YQGPQBCX.js} +2 -2
- package/dist/cli/chunks/{chunk-5FOZO7KM.js → chunk-YXP6BKGS.js} +46 -46
- package/dist/cli/chunks/chunk-ZBABIZ2D.js +2 -0
- package/dist/cli/chunks/{chunk-IQEJGZV6.js → chunk-ZCWERUYB.js} +4 -4
- package/dist/cli/chunks/ci-RACDAJMR.js +81 -0
- package/dist/cli/chunks/{ci-output-LK3MBXLZ.js → ci-output-EHRSZBKG.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-7AIXACR7.js → circuit-breaker-GBV7M5XG.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-UA7EO6VN.js → claude-flow-setup-5LVJOFKP.js} +2 -2
- package/dist/cli/chunks/client-HUVFA5PF.js +2 -0
- package/dist/cli/chunks/{cline-installer-YDDCKKEV.js → cline-installer-W4NMXJSG.js} +2 -2
- package/dist/cli/chunks/{code-URB7UAKW.js → code-JWXJMYXB.js} +29 -29
- package/dist/cli/chunks/{code-index-extractor-BL6HWH4Q.js → code-index-extractor-RVI2IFTM.js} +2 -2
- package/dist/cli/chunks/codex-installer-3BORJINH.js +14 -0
- package/dist/cli/chunks/{completions-RCKBSSSS.js → completions-A55NCTAO.js} +2 -2
- package/dist/cli/chunks/complexity-analyzer-JCXHGGLY.js +2 -0
- package/dist/cli/chunks/{continuedev-installer-VOTCEBFH.js → continuedev-installer-PUVFMGYW.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-NVTGLZX3.js → copilot-installer-4DCMYWHB.js} +2 -2
- package/dist/cli/chunks/core-handlers-UEXO3VAA.js +2 -0
- package/dist/cli/chunks/cost-tracker-5TV2GGKY.js +2 -0
- package/dist/cli/chunks/{coverage-ZTPJWXWE.js → coverage-NNWM7TX3.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-ODU5IZD6.js +2 -0
- package/dist/cli/chunks/{cursor-installer-CMGJQMHX.js → cursor-installer-4NCHGJGK.js} +2 -2
- package/dist/cli/chunks/{daemon-Y2I3YVIU.js → daemon-QIKCXKWO.js} +4 -4
- package/dist/cli/chunks/{daemon-V456IWR3.js → daemon-T4JO4IXP.js} +3 -3
- package/dist/cli/chunks/{dag-attention-scheduler-ZCBBOD3D.js → dag-attention-scheduler-RPAAIDAD.js} +2 -2
- package/dist/cli/chunks/{detect-2GHEA4A3.js → detect-SBEEVDSN.js} +2 -2
- package/dist/cli/chunks/{dist-node-44AGYJCH.js → dist-node-ZHI6NCSU.js} +2 -2
- package/dist/cli/chunks/{domain-handler-IDLIEP6X.js → domain-handler-LBC3GJ7Z.js} +2 -2
- package/dist/cli/chunks/domain-plugins-H6IZ5USZ.js +2 -0
- package/dist/cli/chunks/{domain-transfer-KLEXGIRF.js → domain-transfer-JZA5TMW3.js} +2 -2
- package/dist/cli/chunks/dream-HE3OX42F.js +2 -0
- package/dist/cli/chunks/embed-and-insert-pattern-AHTR7CRU.js +3 -0
- package/dist/cli/chunks/eval-DZU2KISM.js +17 -0
- package/dist/cli/chunks/{experience-capture-middleware-CJJJN7CF.js → experience-capture-middleware-5IQCWKSL.js} +4 -4
- package/dist/cli/chunks/{fast-paths-LGLLKX6P.js → fast-paths-2KLDUWCY.js} +2 -2
- package/dist/cli/chunks/{feature-flags-33D3I4DD.js → feature-flags-7AC3XDZA.js} +2 -2
- package/dist/cli/chunks/{feature-flags-QL4NCEGW.js → feature-flags-N6UAEZY4.js} +2 -2
- package/dist/cli/chunks/{file-discovery-GKCYJPFZ.js → file-discovery-5SDIW4V2.js} +2 -2
- package/dist/cli/chunks/fleet-ZIQCAZ2Y.js +43 -0
- package/dist/cli/chunks/{gnn-wrapper-ELSGT67Z.js → gnn-wrapper-DUMBZJEV.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-ZUI3DOOP.js → heartbeat-handler-6HVM6ZMR.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-QUIFGGLX.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-42KB37KP.js +2 -0
- package/dist/cli/chunks/hnsw-index-T2PGO77J.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-EZMM5JWL.js → hnsw-legacy-bridge-5DRL5FLX.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-G4CE3EOS.js → hnswlib-node-GW67GTCL.js} +2 -2
- package/dist/cli/chunks/{hooks-LCVXXA55.js → hooks-QHH6FVO4.js} +10 -10
- package/dist/cli/chunks/hybrid-backend-FRNWYRKH.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-6Z7RQ3HI.js → hypergraph-engine-7XDCCVG2.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-PLI2GYPK.js → hypergraph-handler-QHF7NOU5.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-A5QYOYBR.js +2 -0
- package/dist/cli/chunks/{init-handler-7VH3QJ5Y.js → init-handler-5UIVOM7K.js} +6 -6
- package/dist/cli/chunks/init-wizard-XBU674YH.js +2 -0
- package/dist/cli/chunks/kernel-DV5MTNZD.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-U3MW62DE.js → kilocode-installer-TGGV6K5Q.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-PPEAC44T.js → kiro-installer-4XYBHZWW.js} +12 -12
- package/dist/cli/chunks/knowledge-graph-4ACGVJQK.js +2 -0
- package/dist/cli/chunks/learning-STE5W6BS.js +122 -0
- package/dist/cli/chunks/llm-router-NKF7J3RI.js +37 -0
- package/dist/cli/chunks/llm-router-service-PSMASERT.js +2 -0
- package/dist/cli/chunks/{load-VO7ABNHV.js → load-B2T77UJQ.js} +2 -2
- package/dist/cli/chunks/load-test-MRUO2VPF.js +2 -0
- package/dist/cli/chunks/mcp-JGSFCEMH.js +2 -0
- package/dist/cli/chunks/{memory-FZTT7ADM.js → memory-WRFZKG56.js} +6 -6
- package/dist/cli/chunks/memory-backend-2MPGI6JW.js +2 -0
- package/dist/cli/chunks/memory-handlers-XT4HMITB.js +2 -0
- package/dist/cli/chunks/multi-model-executor-26Q5BSVG.js +14 -0
- package/dist/cli/chunks/{opencode-installer-GQ7J5SBG.js → opencode-installer-J36EMQU7.js} +2 -2
- package/dist/cli/chunks/{orchestrator-66JK2OS5.js → orchestrator-D5IFV65I.js} +20 -20
- package/dist/cli/chunks/pattern-null-store-TGWUL237.js +2 -0
- package/dist/cli/chunks/{pattern-usage-recorder-O6XHM2G5.js → pattern-usage-recorder-BVMTWI3E.js} +2 -2
- package/dist/cli/chunks/pipeline-OWAHDUAQ.js +19 -0
- package/dist/cli/chunks/platform-ANGBFWBV.js +2 -0
- package/dist/cli/chunks/{plugin-7OFLNGOS.js → plugin-OO7ON2YW.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-OSRDK2FW.js → prime-radiant-advanced-wasm-HFG3BXWU.js} +2 -2
- package/dist/cli/chunks/project-root-LNOYVTYY.js +2 -0
- package/dist/cli/chunks/protocol-executor-GEVH5KD6.js +2 -0
- package/dist/cli/chunks/{protocol-handler-WLYTX6FS.js → protocol-handler-CE3Q6LY4.js} +2 -2
- package/dist/cli/chunks/{prove-QVNE4V3J.js → prove-7XPN53PY.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-DJ2JL6QB.js +2 -0
- package/dist/cli/chunks/{quality-DNE2RKE5.js → quality-TT23JRFX.js} +2 -2
- package/dist/cli/chunks/{quality-gate-2K35GCSI.js → quality-gate-PPPRP255.js} +3 -3
- package/dist/cli/chunks/queen-coordinator-F7E3AS26.js +2 -0
- package/dist/cli/chunks/real-embeddings-EYNZIFJE.js +2 -0
- package/dist/cli/chunks/ref-validation-QQR64ZXD.js +2 -0
- package/dist/cli/chunks/{roocode-installer-NCEZPF5L.js → roocode-installer-UIGS7ZJD.js} +2 -2
- package/dist/cli/chunks/router-OZH3QSAU.js +2 -0
- package/dist/cli/chunks/routing-feedback-J2E3ADZB.js +2 -0
- package/dist/cli/chunks/{routing-handler-4MXXZRYP.js → routing-handler-6AENUIRG.js} +4 -4
- package/dist/cli/chunks/{ruvector-commands-WDFMMCMK.js → ruvector-commands-5AWMEV34.js} +2 -2
- package/dist/cli/chunks/rvf-dual-writer-HK525Y5Y.js +2 -0
- package/dist/cli/chunks/rvf-migration-adapter-Q7FB3BKR.js +2 -0
- package/dist/cli/chunks/rvf-migration-coordinator-NWRJ7C22.js +2 -0
- package/dist/cli/chunks/rvf-native-adapter-5ZRCGUI6.js +2 -0
- package/dist/cli/chunks/rvf-store-integrity-ISKRP563.js +2 -0
- package/dist/cli/chunks/safe-db-3OYEPVEH.js +2 -0
- package/dist/cli/chunks/schedule-AG4C2EIQ.js +2 -0
- package/dist/cli/chunks/scheduler-SQS2CZFZ.js +2 -0
- package/dist/cli/chunks/{security-CJJ3WJSB.js → security-325A7FMB.js} +3 -3
- package/dist/cli/chunks/{shared-rvf-adapter-6RGCTLHD.js → shared-rvf-adapter-NFL6QSZ6.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-KIA6Q6MT.js → shared-rvf-dual-writer-THFDYS2Z.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-MAKDFSHC.js +2 -0
- package/dist/cli/chunks/standalone-memory-UD4MJ6GZ.js +2 -0
- package/dist/cli/chunks/{status-handler-BADQV2KA.js → status-handler-CPFTN4XL.js} +2 -2
- package/dist/cli/chunks/{structural-health-VMYEYRZG.js → structural-health-2MG2IVBL.js} +2 -2
- package/dist/cli/chunks/{sync-PXLROLHB.js → sync-EE4VVKOW.js} +2 -2
- package/dist/cli/chunks/{sync-ULY7T5II.js → sync-MBTW5XBF.js} +2 -2
- package/dist/cli/chunks/task-handler-7H5OYJG4.js +54 -0
- package/dist/cli/chunks/task-handlers-NH4GJHCJ.js +9 -0
- package/dist/cli/chunks/{test-WCLURQUT.js → test-MPHGT4T6.js} +4 -4
- package/dist/cli/chunks/test-scheduling-CHQ4ZLLJ.js +15 -0
- package/dist/cli/chunks/token-bootstrap-SSDCYEKK.js +2 -0
- package/dist/cli/chunks/{token-usage-DRVG6PKO.js → token-usage-EBXUJNRB.js} +2 -2
- package/dist/cli/chunks/{transformers-IMDDAMYQ.js → transformers-ZEKS2OJZ.js} +2 -2
- package/dist/cli/chunks/{tree-sitter-wasm-parser-WBZIHVFA.js → tree-sitter-wasm-parser-J6ZMAK37.js} +2 -2
- package/dist/cli/chunks/types-KYAA5VLV.js +2 -0
- package/dist/cli/chunks/unified-memory-DDWMC435.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-4JA7SGBK.js +2 -0
- package/dist/cli/chunks/unified-persistence-F6OSNTXY.js +2 -0
- package/dist/cli/chunks/{upgrade-6ALSDWDD.js → upgrade-UJBJ5AYM.js} +2 -2
- package/dist/cli/chunks/{validate-XF4ZG3LC.js → validate-RUV6YMWS.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-P5TAFRDA.js → validate-swarm-IVEVMGVM.js} +2 -2
- package/dist/cli/chunks/{vibium-2XDXKNKZ.js → vibium-HOGMFJ2Z.js} +2 -2
- package/dist/cli/chunks/visual-security-25SMBIYT.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-4JVRQPX5.js → web-tree-sitter-AVWA6HKE.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-WYJXVDO5.js → windsurf-installer-DAH7HI2W.js} +2 -2
- package/dist/cli/chunks/{witness-chain-RPZ2SE2V.js → witness-chain-PJOQPFUX.js} +2 -2
- package/dist/cli/chunks/witness-chain-ZW6KKUZU.js +2 -0
- package/dist/cli/chunks/{witness-key-manager-LXG2VBQQ.js → witness-key-manager-JSTBMG43.js} +2 -2
- package/dist/cli/chunks/workflow-TWOIA6LZ.js +51 -0
- package/dist/cli/chunks/workflow-orchestrator-UKSIDM7Q.js +2 -0
- package/dist/cli/chunks/{wrappers-DIJNNFU6.js → wrappers-UR7BLXKV.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/mcp.js +6 -0
- package/dist/cli/commands/memory.d.ts +1 -1
- package/dist/cli/commands/memory.js +8 -8
- package/dist/cli/commands/pipeline.js +9 -0
- package/dist/cli/commands/platform.js +15 -2
- package/dist/cli/commands/upgrade.d.ts +3 -3
- package/dist/cli/commands/upgrade.js +3 -3
- package/dist/cli/commands/workflow.js +9 -1
- package/dist/cli/handlers/init-handler.d.ts +10 -0
- package/dist/cli/handlers/task-handler.js +43 -12
- package/dist/cli/helpers/domain-plugins.d.ts +5 -0
- package/dist/cli/helpers/domain-plugins.js +11 -0
- package/dist/cli/helpers/standalone-memory.d.ts +12 -0
- package/dist/cli/helpers/standalone-memory.js +46 -0
- package/dist/cli/index.js +54 -49
- package/dist/cli/log-gate.d.ts +66 -0
- package/dist/cli/log-gate.js +170 -0
- package/dist/cli/utils/ci-config.d.ts +3 -0
- 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/test-execution-handlers.js +5 -3
- package/dist/coordination/interfaces.d.ts +2 -2
- package/dist/coordination/protocol-executor.js +68 -9
- 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/task-executor.js +4 -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/services/scanners/sast-scanner.js +3 -7
- package/dist/domains/test-execution/services/flaky-detector.js +33 -3
- package/dist/domains/test-execution/services/retry-handler.js +22 -14
- package/dist/domains/test-execution/services/test-executor.js +42 -21
- 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/codex-installer.js +18 -6
- 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/orchestrator.js +1 -0
- package/dist/init/phases/07-hooks.js +4 -2
- package/dist/init/phases/09-assets.d.ts +10 -0
- package/dist/init/phases/09-assets.js +3 -0
- 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/init/token-bootstrap.d.ts +1 -1
- package/dist/init/token-bootstrap.js +12 -2
- package/dist/init/types.d.ts +10 -0
- package/dist/integrations/agentic-flow/model-router/types.js +6 -8
- package/dist/integrations/ruvector/brain-exporter.js +26 -15
- package/dist/integrations/ruvector/brain-import-audit.d.ts +20 -0
- package/dist/integrations/ruvector/brain-import-audit.js +22 -0
- package/dist/integrations/ruvector/brain-rvf-exporter.js +33 -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 +42 -16
- 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/hybrid-backend.d.ts +6 -0
- package/dist/kernel/hybrid-backend.js +18 -0
- package/dist/kernel/kernel.js +9 -14
- package/dist/kernel/memory-factory.js +14 -4
- package/dist/kernel/project-root.d.ts +1 -1
- package/dist/kernel/project-root.js +33 -10
- package/dist/kernel/unified-memory.js +1 -1
- package/dist/learning/embedder-identity-store.js +4 -3
- 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 +34 -12
- package/dist/learning/real-embeddings.d.ts +8 -0
- package/dist/learning/real-embeddings.js +16 -0
- package/dist/learning/rvf-pattern-store.js +10 -3
- package/dist/mcp/bundle.js +480 -480
- package/dist/mcp/entry.js +2 -0
- package/dist/mcp/handlers/index.d.ts +1 -1
- package/dist/mcp/handlers/index.js +1 -1
- package/dist/mcp/handlers/memory-handlers.d.ts +6 -1
- package/dist/mcp/handlers/memory-handlers.js +44 -22
- 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 +26 -5
- package/dist/mcp/protocol-server.d.ts +2 -0
- package/dist/mcp/protocol-server.js +105 -49
- package/dist/mcp/security/sampling-server.js +2 -1
- package/dist/mcp/services/session-store.js +5 -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 +5 -1
- package/dist/optimization/session-cache.d.ts +5 -0
- package/dist/optimization/session-cache.js +23 -0
- package/dist/plugins/cache.d.ts +2 -0
- package/dist/plugins/cache.js +15 -2
- package/dist/plugins/lifecycle.js +15 -2
- package/dist/plugins/manifest.js +7 -5
- package/dist/plugins/resolver.d.ts +13 -22
- package/dist/plugins/resolver.js +169 -61
- package/dist/plugins/version-policy.d.ts +13 -0
- package/dist/plugins/version-policy.js +18 -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.js +21 -9
- package/dist/shared/llm/router/routing-rules.js +9 -8
- package/dist/shared/llm/router/types.js +81 -13
- package/dist/shared/llm/translation/message-formatter.js +4 -23
- package/dist/shared/types/index.d.ts +6 -0
- package/dist/shared/types/index.js +8 -0
- package/dist/shared/vitest-json-report.d.ts +7 -7
- package/dist/shared/vitest-json-report.js +23 -14
- package/dist/test-scheduling/executors/vitest-executor.d.ts +7 -2
- package/dist/test-scheduling/executors/vitest-executor.js +157 -47
- 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/package.json +2 -1
- package/dist/cli/chunks/adapter-AKQYU6UH.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-MICRPL3N.js +0 -2
- package/dist/cli/chunks/base-DZK36ITB.js +0 -2
- package/dist/cli/chunks/brain-handler-H5OVZ22L.js +0 -90
- package/dist/cli/chunks/browser-workflow-ADK54DOE.js +0 -2
- package/dist/cli/chunks/chunk-26GM5CWD.js +0 -13
- package/dist/cli/chunks/chunk-42VSQ2MX.js +0 -4
- package/dist/cli/chunks/chunk-44WISFTU.js +0 -2
- package/dist/cli/chunks/chunk-4OUPCTBS.js +0 -16
- package/dist/cli/chunks/chunk-4TXAP3YH.js +0 -2
- package/dist/cli/chunks/chunk-4W7QVUNO.js +0 -2
- package/dist/cli/chunks/chunk-527HQAY7.js +0 -14
- package/dist/cli/chunks/chunk-5DFHE4H5.js +0 -180
- package/dist/cli/chunks/chunk-5P3G6ZW4.js +0 -2
- package/dist/cli/chunks/chunk-6F2RM6X2.js +0 -2
- package/dist/cli/chunks/chunk-74PK3NEW.js +0 -15
- package/dist/cli/chunks/chunk-7Y2CEXRS.js +0 -65
- package/dist/cli/chunks/chunk-AWNYEAGB.js +0 -2
- package/dist/cli/chunks/chunk-CBOPBYPU.js +0 -2
- package/dist/cli/chunks/chunk-FD2JFEQC.js +0 -2
- package/dist/cli/chunks/chunk-G6DCESPU.js +0 -2
- package/dist/cli/chunks/chunk-I4NDQGKP.js +0 -2
- package/dist/cli/chunks/chunk-L2GKMBDP.js +0 -2
- package/dist/cli/chunks/chunk-QLWNXBRU.js +0 -2
- package/dist/cli/chunks/chunk-R2AFVFRF.js +0 -2
- package/dist/cli/chunks/chunk-ROX7NLS4.js +0 -14
- package/dist/cli/chunks/chunk-SHGKY3QB.js +0 -2
- package/dist/cli/chunks/chunk-SJPZSCZP.js +0 -27
- package/dist/cli/chunks/chunk-T62DH4GG.js +0 -11
- package/dist/cli/chunks/chunk-TGLAWI62.js +0 -4
- package/dist/cli/chunks/chunk-UMNYF5EZ.js +0 -2
- package/dist/cli/chunks/chunk-UTVRQEZM.js +0 -54
- package/dist/cli/chunks/chunk-Y2DVFVGI.js +0 -2
- package/dist/cli/chunks/chunk-Y5SQBI2F.js +0 -2
- package/dist/cli/chunks/ci-YVKDQWIX.js +0 -81
- package/dist/cli/chunks/client-M72GXFVQ.js +0 -2
- package/dist/cli/chunks/codex-installer-2AVEO4EA.js +0 -14
- package/dist/cli/chunks/complexity-analyzer-LEDG62YK.js +0 -2
- package/dist/cli/chunks/core-handlers-C32RAMVI.js +0 -2
- package/dist/cli/chunks/cost-tracker-GJIFB2BM.js +0 -2
- package/dist/cli/chunks/cross-domain-router-UGFUCPKC.js +0 -2
- package/dist/cli/chunks/dream-UFBBXY5W.js +0 -2
- package/dist/cli/chunks/embed-and-insert-pattern-DUW6K35A.js +0 -3
- package/dist/cli/chunks/eval-PR6YWDFM.js +0 -17
- package/dist/cli/chunks/fleet-QNT6X2YI.js +0 -43
- package/dist/cli/chunks/heartbeat-scheduler-VQWHSGTY.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-BS3NXWGU.js +0 -2
- package/dist/cli/chunks/hnsw-index-JP26B4HW.js +0 -2
- package/dist/cli/chunks/impact-analyzer-WRE4CWPJ.js +0 -2
- package/dist/cli/chunks/init-wizard-OFOEYB75.js +0 -2
- package/dist/cli/chunks/kernel-MXNFWNUD.js +0 -2
- package/dist/cli/chunks/knowledge-graph-7JE2TVKJ.js +0 -2
- package/dist/cli/chunks/learning-7B5NITDV.js +0 -122
- package/dist/cli/chunks/llm-router-BNEPT5OB.js +0 -37
- package/dist/cli/chunks/llm-router-service-GTDVDKSU.js +0 -2
- package/dist/cli/chunks/load-test-JZ4CLSBF.js +0 -2
- package/dist/cli/chunks/mcp-THXEINCL.js +0 -2
- package/dist/cli/chunks/memory-backend-Q54CC5A5.js +0 -2
- package/dist/cli/chunks/memory-handlers-IIBJXKHZ.js +0 -2
- package/dist/cli/chunks/multi-model-executor-HEDVOZ6X.js +0 -14
- package/dist/cli/chunks/pattern-null-store-W33O7FYO.js +0 -2
- package/dist/cli/chunks/pipeline-UOG6UO6D.js +0 -19
- package/dist/cli/chunks/platform-Q7UH7FZQ.js +0 -2
- package/dist/cli/chunks/protocol-executor-VGN4M7XY.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-7VB5LJGS.js +0 -2
- package/dist/cli/chunks/queen-coordinator-HIDMJMMG.js +0 -2
- package/dist/cli/chunks/real-embeddings-SF42ML7G.js +0 -2
- package/dist/cli/chunks/router-CTIJS4D7.js +0 -2
- package/dist/cli/chunks/routing-feedback-LFYYZS5J.js +0 -2
- package/dist/cli/chunks/rvf-dual-writer-MNPMIWVM.js +0 -2
- package/dist/cli/chunks/rvf-migration-adapter-DXOKSSNW.js +0 -2
- package/dist/cli/chunks/rvf-migration-coordinator-JT7ZCJY7.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-PZKUKA7R.js +0 -2
- package/dist/cli/chunks/rvf-store-integrity-Q3FGYKFT.js +0 -2
- package/dist/cli/chunks/safe-db-73BLFV2C.js +0 -2
- package/dist/cli/chunks/schedule-YVTGTTI4.js +0 -2
- package/dist/cli/chunks/scheduler-5DSAFIRQ.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-LRG4IPCU.js +0 -2
- package/dist/cli/chunks/task-handler-L7E2I267.js +0 -49
- package/dist/cli/chunks/task-handlers-6DPKE4AK.js +0 -9
- package/dist/cli/chunks/test-scheduling-4CNJA6TW.js +0 -15
- package/dist/cli/chunks/token-bootstrap-GTI24JAL.js +0 -2
- package/dist/cli/chunks/types-TXMY5M2K.js +0 -2
- package/dist/cli/chunks/unified-memory-VBQ572X4.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-J3L74ZRY.js +0 -2
- package/dist/cli/chunks/unified-persistence-EM2VYRTQ.js +0 -2
- package/dist/cli/chunks/visual-security-GX4S7K6O.js +0 -2
- package/dist/cli/chunks/witness-chain-QGKMHCNW.js +0 -2
- package/dist/cli/chunks/workflow-2OYNO7UU.js +0 -51
- package/dist/cli/chunks/workflow-orchestrator-KWHIJMFV.js +0 -2
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
*/
|
|
30
30
|
import { createLLMError, } from '../interfaces.js';
|
|
31
31
|
import { CostTracker } from '../cost-tracker.js';
|
|
32
|
+
import { applyOpenAIParams } from '../openai-params.js';
|
|
32
33
|
import { TokenMetricsCollector } from '../../../learning/token-tracker.js';
|
|
33
34
|
import { toError } from '../../error-utils.js';
|
|
34
35
|
import { backoffDelay } from '../retry.js';
|
|
@@ -36,7 +37,11 @@ import { backoffDelay } from '../retry.js';
|
|
|
36
37
|
* Default Azure OpenAI configuration
|
|
37
38
|
*/
|
|
38
39
|
export const DEFAULT_AZURE_OPENAI_CONFIG = {
|
|
39
|
-
model
|
|
40
|
+
// Logical base model for cost tracking only — the deployment decides which
|
|
41
|
+
// model runs. Kept at gpt-4o so existing deployments keep their request
|
|
42
|
+
// shape; GPT-5/6 deployments must set `model` explicitly (e.g. 'gpt-6-sol')
|
|
43
|
+
// so the request uses max_completion_tokens.
|
|
44
|
+
model: 'gpt-4o',
|
|
40
45
|
maxTokens: 4096,
|
|
41
46
|
temperature: 0.7,
|
|
42
47
|
timeoutMs: 60000,
|
|
@@ -54,8 +59,22 @@ export class AzureOpenAIProvider {
|
|
|
54
59
|
name = 'Azure OpenAI';
|
|
55
60
|
config;
|
|
56
61
|
requestId = 0;
|
|
62
|
+
/** Model the caller configured explicitly (not the default), for parameter policy. */
|
|
63
|
+
explicitModel;
|
|
57
64
|
constructor(config) {
|
|
58
65
|
this.config = { ...DEFAULT_AZURE_OPENAI_CONFIG, ...config };
|
|
66
|
+
this.explicitModel = config.model;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Model ID used to pick the request-parameter policy. The deployment decides
|
|
70
|
+
* which model actually runs, so the default `model` is not trusted here: an
|
|
71
|
+
* explicit model wins, otherwise the deployment name is looked up. A
|
|
72
|
+
* deployment name that hides the base model (e.g. 'prod-chat') falls back to
|
|
73
|
+
* the name heuristic in openai-params, i.e. the legacy max_tokens shape —
|
|
74
|
+
* GPT-5/6 deployments with opaque names must therefore set `model`.
|
|
75
|
+
*/
|
|
76
|
+
paramPolicyModel(requestModel) {
|
|
77
|
+
return requestModel ?? this.explicitModel ?? this.config.deploymentId;
|
|
59
78
|
}
|
|
60
79
|
/**
|
|
61
80
|
* Check if Azure OpenAI is available and configured
|
|
@@ -104,10 +123,7 @@ export class AzureOpenAIProvider {
|
|
|
104
123
|
const response = await this.fetchWithTimeout(this.buildUrl('chat/completions'), {
|
|
105
124
|
method: 'POST',
|
|
106
125
|
headers: this.getHeaders(),
|
|
107
|
-
body: JSON.stringify({
|
|
108
|
-
max_tokens: 1,
|
|
109
|
-
messages: [{ role: 'user', content: 'Hi' }],
|
|
110
|
-
}),
|
|
126
|
+
body: JSON.stringify(applyOpenAIParams({ messages: [{ role: 'user', content: 'Hi' }] }, this.paramPolicyModel(), { maxTokens: 1 })),
|
|
111
127
|
}, 5000);
|
|
112
128
|
const latencyMs = Date.now() - start;
|
|
113
129
|
if (!response.ok) {
|
|
@@ -152,11 +168,7 @@ export class AzureOpenAIProvider {
|
|
|
152
168
|
const temperature = options?.temperature ?? this.config.temperature ?? 0.7;
|
|
153
169
|
const requestId = `azure-openai-${++this.requestId}-${Date.now()}`;
|
|
154
170
|
const start = Date.now();
|
|
155
|
-
const body = {
|
|
156
|
-
max_tokens: maxTokens,
|
|
157
|
-
temperature,
|
|
158
|
-
messages,
|
|
159
|
-
};
|
|
171
|
+
const body = applyOpenAIParams({ messages }, this.paramPolicyModel(options?.model), { maxTokens, temperature });
|
|
160
172
|
if (options?.stopSequences && options.stopSequences.length > 0) {
|
|
161
173
|
body.stop = options.stopSequences;
|
|
162
174
|
}
|
|
@@ -291,11 +303,10 @@ export class AzureOpenAIProvider {
|
|
|
291
303
|
*/
|
|
292
304
|
getSupportedModels() {
|
|
293
305
|
return [
|
|
294
|
-
'gpt-
|
|
295
|
-
'gpt-
|
|
296
|
-
'gpt-
|
|
297
|
-
'gpt-4',
|
|
298
|
-
'gpt-35-turbo', // Azure uses different naming
|
|
306
|
+
'gpt-6-sol',
|
|
307
|
+
'gpt-6-luna',
|
|
308
|
+
'gpt-6-astra',
|
|
309
|
+
'gpt-5.4-mini',
|
|
299
310
|
'text-embedding-ada-002',
|
|
300
311
|
'text-embedding-3-small',
|
|
301
312
|
'text-embedding-3-large',
|
|
@@ -16,11 +16,14 @@ import { CostTracker } from '../cost-tracker.js';
|
|
|
16
16
|
import { TokenMetricsCollector } from '../../../learning/token-tracker.js';
|
|
17
17
|
import { toError } from '../../error-utils.js';
|
|
18
18
|
import { backoffDelay } from '../retry.js';
|
|
19
|
+
import { applyAnthropicParams } from '../anthropic-params.js';
|
|
19
20
|
/**
|
|
20
21
|
* Default Bedrock configuration
|
|
21
22
|
*/
|
|
22
23
|
export const DEFAULT_BEDROCK_CONFIG = {
|
|
23
|
-
model
|
|
24
|
+
// Sonnet 4.6 is the newest model verified on the InvokeModel path this
|
|
25
|
+
// provider uses; Claude 5 models are documented on Bedrock's Mantle endpoint.
|
|
26
|
+
model: 'anthropic.claude-sonnet-4-6-v1:0',
|
|
24
27
|
region: 'us-east-1',
|
|
25
28
|
maxTokens: 4096,
|
|
26
29
|
temperature: 0.7,
|
|
@@ -41,24 +44,12 @@ export const BEDROCK_MODEL_MAPPING = {
|
|
|
41
44
|
'claude-sonnet-4-6': 'anthropic.claude-sonnet-4-6-v1:0',
|
|
42
45
|
'claude-haiku-4-5-20251001': 'anthropic.claude-haiku-4-5-v1:0',
|
|
43
46
|
'claude-haiku-4-5': 'anthropic.claude-haiku-4-5-v1:0',
|
|
44
|
-
//
|
|
47
|
+
// Previous generation, still served by Anthropic
|
|
45
48
|
'claude-opus-4-5-20251101': 'anthropic.claude-opus-4-5-v1:0',
|
|
46
49
|
'claude-opus-4-5': 'anthropic.claude-opus-4-5-v1:0',
|
|
47
|
-
'claude-opus-4-20250514': 'anthropic.claude-opus-4-v1:0',
|
|
48
|
-
'claude-opus-4': 'anthropic.claude-opus-4-v1:0',
|
|
49
|
-
'claude-sonnet-4-20250514': 'anthropic.claude-sonnet-4-v1:0',
|
|
50
|
-
'claude-sonnet-4': 'anthropic.claude-sonnet-4-v1:0',
|
|
51
|
-
'claude-3-5-haiku-20241022': 'anthropic.claude-3-5-haiku-v1:0',
|
|
52
|
-
'claude-haiku-3-5': 'anthropic.claude-3-5-haiku-v1:0',
|
|
53
|
-
// Claude Sonnet 4.5
|
|
54
50
|
'claude-sonnet-4-5-20250929': 'anthropic.claude-sonnet-4-5-v2:0',
|
|
55
51
|
'claude-sonnet-4-5': 'anthropic.claude-sonnet-4-5-v2:0',
|
|
56
|
-
//
|
|
57
|
-
'claude-3-opus-20240229': 'anthropic.claude-3-opus-20240229-v1:0',
|
|
58
|
-
'claude-3-sonnet-20240229': 'anthropic.claude-3-sonnet-20240229-v1:0',
|
|
59
|
-
'claude-3-haiku-20240307': 'anthropic.claude-3-haiku-20240307-v1:0',
|
|
60
|
-
// Claude 3.5 Sonnet
|
|
61
|
-
'claude-3-5-sonnet-20241022': 'anthropic.claude-3-5-sonnet-20241022-v2:0',
|
|
52
|
+
// Claude 3.x, Sonnet 4 and Opus 4/4.1 are retired and intentionally absent.
|
|
62
53
|
};
|
|
63
54
|
/**
|
|
64
55
|
* Reverse mapping from Bedrock model IDs to canonical IDs
|
|
@@ -160,10 +151,11 @@ export class BedrockProvider {
|
|
|
160
151
|
max_tokens: maxTokens,
|
|
161
152
|
messages,
|
|
162
153
|
};
|
|
163
|
-
// Temperature must be between 0 and 1 for Bedrock
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
154
|
+
// Temperature must be between 0 and 1 for Bedrock, and newer Claude
|
|
155
|
+
// models reject it entirely.
|
|
156
|
+
applyAnthropicParams(body, bedrockModelId, {
|
|
157
|
+
temperature: temperature !== undefined ? Math.min(Math.max(temperature, 0), 1) : undefined,
|
|
158
|
+
});
|
|
167
159
|
if (options?.systemPrompt) {
|
|
168
160
|
body.system = options.systemPrompt;
|
|
169
161
|
}
|
|
@@ -10,13 +10,13 @@ import { CostTracker } from '../cost-tracker.js';
|
|
|
10
10
|
import { TokenMetricsCollector } from '../../../learning/token-tracker.js';
|
|
11
11
|
import { toError } from '../../error-utils.js';
|
|
12
12
|
import { backoffDelay } from '../retry.js';
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
13
|
+
import { applyAnthropicParams } from '../anthropic-params.js';
|
|
14
|
+
import { DEFAULT_SONNET_MODEL } from '../model-registry.js';
|
|
15
15
|
/**
|
|
16
16
|
* Default Claude configuration
|
|
17
17
|
*/
|
|
18
18
|
export const DEFAULT_CLAUDE_CONFIG = {
|
|
19
|
-
model:
|
|
19
|
+
model: DEFAULT_SONNET_MODEL,
|
|
20
20
|
maxTokens: 4096,
|
|
21
21
|
temperature: 0.7,
|
|
22
22
|
timeoutMs: 60000,
|
|
@@ -118,9 +118,11 @@ export class ClaudeProvider {
|
|
|
118
118
|
const body = {
|
|
119
119
|
model,
|
|
120
120
|
max_tokens: maxTokens,
|
|
121
|
-
temperature,
|
|
122
121
|
messages,
|
|
123
122
|
};
|
|
123
|
+
// Sampling params and effort are model-dependent: current Claude models
|
|
124
|
+
// reject `temperature` and take effort only as `output_config.effort`.
|
|
125
|
+
applyAnthropicParams(body, model, { temperature, effort: options?.effort });
|
|
124
126
|
if (options?.systemPrompt) {
|
|
125
127
|
// ADR-088: when caching is enabled, send the system prompt as a
|
|
126
128
|
// content-block array with an ephemeral cache breakpoint — repeated
|
|
@@ -135,31 +137,6 @@ export class ClaudeProvider {
|
|
|
135
137
|
if (options?.stopSequences && options.stopSequences.length > 0) {
|
|
136
138
|
body.stop_sequences = options.stopSequences;
|
|
137
139
|
}
|
|
138
|
-
// ADR-093: apply effort level only on models that actually advertise it.
|
|
139
|
-
//
|
|
140
|
-
// Anthropic's Messages API accepts effort nested under the `thinking`
|
|
141
|
-
// block, not as a top-level field. We only set it when the target model
|
|
142
|
-
// has `supportsEffortXHigh: true` in the registry (= Opus 4.7 today).
|
|
143
|
-
// For every other model we send nothing thinking/effort-related — the
|
|
144
|
-
// caller's `options.effort` is ignored rather than silently downgraded
|
|
145
|
-
// to a value the model may not accept.
|
|
146
|
-
//
|
|
147
|
-
// Rationale: the top-level `effort` shape was unverified against
|
|
148
|
-
// Anthropic's public schema and risked 400-ing Sonnet 4.6 / Haiku 4.5
|
|
149
|
-
// calls. Gating behind the capability flag keeps behavior safe on
|
|
150
|
-
// models without xhigh support; Opus 4.7 gets the advertised quality
|
|
151
|
-
// boost once we verify the exact nested shape Anthropic accepts.
|
|
152
|
-
try {
|
|
153
|
-
const caps = getModelCapabilities(model);
|
|
154
|
-
if (caps.supportsEffortXHigh) {
|
|
155
|
-
const requested = resolveEffortLevel({ override: options?.effort });
|
|
156
|
-
const effort = downgradeEffort(requested, 'xhigh');
|
|
157
|
-
body.thinking = { type: 'adaptive', effort };
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
catch {
|
|
161
|
-
// Model not in registry — skip effort entirely.
|
|
162
|
-
}
|
|
163
140
|
try {
|
|
164
141
|
const response = await this.fetchWithRetry(`${this.getBaseUrl()}/v1/messages`, {
|
|
165
142
|
method: 'POST',
|
|
@@ -174,9 +174,10 @@ export class CodexProvider {
|
|
|
174
174
|
return { ...this.config };
|
|
175
175
|
}
|
|
176
176
|
getSupportedModels() {
|
|
177
|
-
//
|
|
178
|
-
//
|
|
179
|
-
|
|
177
|
+
// Informational only — not used to validate. Codex resolves the concrete
|
|
178
|
+
// model from its profile/login and validates any id passed via -m itself.
|
|
179
|
+
// `default` = whatever the CLI is configured to.
|
|
180
|
+
return [CODEX_DEFAULT_MODEL, 'gpt-6-sol', 'gpt-6-luna', 'gpt-6-astra', 'gpt-5.6-sol', 'gpt-5.3-codex'];
|
|
180
181
|
}
|
|
181
182
|
getCostPerToken() {
|
|
182
183
|
return { input: 0, output: 0 };
|
|
@@ -13,7 +13,7 @@ import { LLMProvider, LLMProviderType, LLMConfig, Message, GenerateOptions, Embe
|
|
|
13
13
|
* Gemini-specific configuration
|
|
14
14
|
*/
|
|
15
15
|
export interface GeminiConfig extends LLMConfig {
|
|
16
|
-
/** Gemini model (e.g., 'gemini-
|
|
16
|
+
/** Gemini model (e.g., 'gemini-2.5-flash', 'gemini-2.5-pro', 'gemini-3.8-flash') */
|
|
17
17
|
model: string;
|
|
18
18
|
/** Safety settings threshold */
|
|
19
19
|
safetyThreshold?: 'BLOCK_NONE' | 'BLOCK_ONLY_HIGH' | 'BLOCK_MEDIUM_AND_ABOVE' | 'BLOCK_LOW_AND_ABOVE';
|
|
@@ -24,7 +24,8 @@ export interface GeminiConfig extends LLMConfig {
|
|
|
24
24
|
export declare const DEFAULT_GEMINI_CONFIG: GeminiConfig;
|
|
25
25
|
/**
|
|
26
26
|
* Gemini model pricing (cost per 1M tokens in USD)
|
|
27
|
-
*
|
|
27
|
+
* 3.x prices from the OpenRouter catalog (2026-09-27); 3.x IDs other than
|
|
28
|
+
* gemini-3.5-flash are not yet verified against the Gemini ListModels API.
|
|
28
29
|
*/
|
|
29
30
|
export declare const GEMINI_PRICING: Record<string, {
|
|
30
31
|
input: number;
|
|
@@ -29,24 +29,28 @@ export const DEFAULT_GEMINI_CONFIG = {
|
|
|
29
29
|
};
|
|
30
30
|
/**
|
|
31
31
|
* Gemini model pricing (cost per 1M tokens in USD)
|
|
32
|
-
*
|
|
32
|
+
* 3.x prices from the OpenRouter catalog (2026-09-27); 3.x IDs other than
|
|
33
|
+
* gemini-3.5-flash are not yet verified against the Gemini ListModels API.
|
|
33
34
|
*/
|
|
34
35
|
export const GEMINI_PRICING = {
|
|
35
|
-
// Gemini
|
|
36
|
+
// Gemini 3.x (current generation)
|
|
37
|
+
'gemini-3.8-flash': { input: 0.75, output: 3.75 },
|
|
38
|
+
'gemini-3.5-flash': { input: 1.5, output: 9.0 },
|
|
39
|
+
'gemini-3.5-flash-lite': { input: 0.3, output: 2.5 },
|
|
40
|
+
'gemini-3.1-pro-preview': { input: 2.0, output: 12.0 },
|
|
41
|
+
// Gemini 2.5
|
|
42
|
+
'gemini-2.5-pro': { input: 1.25, output: 10.0 },
|
|
43
|
+
'gemini-2.5-flash': { input: 0.3, output: 2.5 },
|
|
44
|
+
'gemini-flash-latest': { input: 0.3, output: 2.5 },
|
|
45
|
+
// Deprecated: retired by Google. Kept only so historical usage records
|
|
46
|
+
// still price correctly — never use as a default.
|
|
36
47
|
'gemini-pro': { input: 0.5, output: 1.5 },
|
|
37
48
|
'gemini-1.0-pro': { input: 0.5, output: 1.5 },
|
|
38
|
-
// Gemini 1.5 Pro models
|
|
39
49
|
'gemini-1.5-pro': { input: 3.5, output: 10.5 },
|
|
40
50
|
'gemini-1.5-pro-latest': { input: 3.5, output: 10.5 },
|
|
41
|
-
// Gemini Flash models (economical)
|
|
42
51
|
'gemini-1.5-flash': { input: 0.075, output: 0.3 },
|
|
43
52
|
'gemini-1.5-flash-latest': { input: 0.075, output: 0.3 },
|
|
44
53
|
'gemini-2.0-flash-exp': { input: 0.075, output: 0.3 },
|
|
45
|
-
// Gemini 2.5 (current generation)
|
|
46
|
-
'gemini-2.5-pro': { input: 1.25, output: 10.0 },
|
|
47
|
-
'gemini-2.5-flash': { input: 0.3, output: 2.5 },
|
|
48
|
-
'gemini-flash-latest': { input: 0.3, output: 2.5 },
|
|
49
|
-
// Gemini Ultra (flagship)
|
|
50
54
|
'gemini-ultra': { input: 7.0, output: 21.0 },
|
|
51
55
|
'gemini-1.0-ultra': { input: 7.0, output: 21.0 },
|
|
52
56
|
// Default fallback
|
|
@@ -399,16 +403,21 @@ export class GeminiProvider {
|
|
|
399
403
|
}
|
|
400
404
|
// Current text-generation models (verified via Gemini ListModels API 2026-06-27).
|
|
401
405
|
// Prefer the `-latest` aliases as defaults so they don't rot (gemini-1.5-pro was retired).
|
|
406
|
+
// gemini-3.8-flash, gemini-3.5-flash-lite and gemini-3.1-pro-preview come from the
|
|
407
|
+
// OpenRouter catalog (2026-09-27) and are not yet verified against ListModels.
|
|
402
408
|
return [
|
|
403
409
|
'gemini-flash-latest',
|
|
404
410
|
'gemini-pro-latest',
|
|
405
411
|
'gemini-flash-lite-latest',
|
|
412
|
+
'gemini-3.8-flash',
|
|
413
|
+
'gemini-3.5-flash',
|
|
414
|
+
'gemini-3.5-flash-lite',
|
|
415
|
+
'gemini-3.1-pro-preview',
|
|
406
416
|
'gemini-2.5-pro',
|
|
407
417
|
'gemini-2.5-flash',
|
|
408
418
|
'gemini-2.5-flash-lite',
|
|
409
419
|
'gemini-2.0-flash',
|
|
410
420
|
'gemini-2.0-flash-lite',
|
|
411
|
-
'gemini-3.5-flash',
|
|
412
421
|
];
|
|
413
422
|
}
|
|
414
423
|
/**
|
|
@@ -19,6 +19,8 @@ export declare class OllamaProvider implements LLMProvider {
|
|
|
19
19
|
private config;
|
|
20
20
|
private requestId;
|
|
21
21
|
private availableModels;
|
|
22
|
+
/** Full installed names including tag (e.g. 'qwen3-coder:30b'), from the last health check. */
|
|
23
|
+
private installedTags;
|
|
22
24
|
/** EMA of observed generation throughput (tok/s) per model, for adaptive timeouts (#3). */
|
|
23
25
|
private observedTokPerSec;
|
|
24
26
|
constructor(config?: Partial<OllamaConfig>);
|
|
@@ -14,7 +14,7 @@ import { computeAdaptiveTimeoutMs } from './ollama-timeout.js';
|
|
|
14
14
|
* Default Ollama configuration
|
|
15
15
|
*/
|
|
16
16
|
export const DEFAULT_OLLAMA_CONFIG = {
|
|
17
|
-
model: '
|
|
17
|
+
model: 'qwen3-coder:30b', // ADR-111 local QE floor — never qwen3:8b
|
|
18
18
|
baseUrl: resolveOllamaBaseUrl('http://localhost:11434'),
|
|
19
19
|
maxTokens: 4096,
|
|
20
20
|
temperature: 0.7,
|
|
@@ -34,6 +34,8 @@ export class OllamaProvider {
|
|
|
34
34
|
config;
|
|
35
35
|
requestId = 0;
|
|
36
36
|
availableModels = [];
|
|
37
|
+
/** Full installed names including tag (e.g. 'qwen3-coder:30b'), from the last health check. */
|
|
38
|
+
installedTags = [];
|
|
37
39
|
/** EMA of observed generation throughput (tok/s) per model, for adaptive timeouts (#3). */
|
|
38
40
|
observedTokPerSec = new Map();
|
|
39
41
|
constructor(config = {}) {
|
|
@@ -92,12 +94,17 @@ export class OllamaProvider {
|
|
|
92
94
|
}
|
|
93
95
|
const data = await response.json();
|
|
94
96
|
// Extract available model names
|
|
95
|
-
this.
|
|
96
|
-
|
|
97
|
-
// Check if the configured model is available
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
97
|
+
this.installedTags = data.models?.map((m) => m.name) ?? [];
|
|
98
|
+
this.availableModels = this.installedTags.map((name) => name.split(':')[0]);
|
|
99
|
+
// Check if the configured model is available. A tagged model
|
|
100
|
+
// ('qwen3-coder:30b') must match an installed tag exactly; prefix
|
|
101
|
+
// matching reported 'qwen3:8b' as satisfying 'qwen3-coder:30b', a false
|
|
102
|
+
// healthy that only failed later at generate time. An untagged model
|
|
103
|
+
// ('llama3.1') matches any installed tag of that name.
|
|
104
|
+
const configured = this.config.model;
|
|
105
|
+
const hasConfiguredModel = configured.includes(':')
|
|
106
|
+
? this.installedTags.includes(configured)
|
|
107
|
+
: this.availableModels.includes(configured);
|
|
101
108
|
if (!hasConfiguredModel && this.availableModels.length > 0) {
|
|
102
109
|
return {
|
|
103
110
|
healthy: true,
|
|
@@ -269,7 +276,7 @@ export class OllamaProvider {
|
|
|
269
276
|
*/
|
|
270
277
|
async complete(prompt, options) {
|
|
271
278
|
// Use generate with code-completion-optimized settings
|
|
272
|
-
// Prefer
|
|
279
|
+
// Prefer a code-tuned model for completion if one is installed
|
|
273
280
|
const model = options?.model ?? this.selectCodeModel();
|
|
274
281
|
const response = await this.generate(prompt, {
|
|
275
282
|
model,
|
|
@@ -297,16 +304,15 @@ export class OllamaProvider {
|
|
|
297
304
|
*/
|
|
298
305
|
getSupportedModels() {
|
|
299
306
|
// Return known models plus any detected from health check
|
|
307
|
+
// Curated current families; installed models are merged in below.
|
|
308
|
+
// Tag availability varies by Ollama library version — pull to confirm.
|
|
300
309
|
const knownModels = [
|
|
301
|
-
'
|
|
302
|
-
'
|
|
303
|
-
'
|
|
304
|
-
'
|
|
305
|
-
'
|
|
306
|
-
'
|
|
307
|
-
'phi3',
|
|
308
|
-
'qwen2',
|
|
309
|
-
'gemma',
|
|
310
|
+
'qwen3-coder:30b',
|
|
311
|
+
'qwen3:30b-a3b',
|
|
312
|
+
'gpt-oss:20b',
|
|
313
|
+
'gpt-oss:120b',
|
|
314
|
+
'llama4:scout',
|
|
315
|
+
'gemma4',
|
|
310
316
|
'nomic-embed-text',
|
|
311
317
|
];
|
|
312
318
|
const uniqueModels = new Set([...knownModels, ...this.availableModels]);
|
|
@@ -368,10 +374,14 @@ export class OllamaProvider {
|
|
|
368
374
|
* Select the best available code model
|
|
369
375
|
*/
|
|
370
376
|
selectCodeModel() {
|
|
371
|
-
|
|
377
|
+
// Most-preferred first. Deliberately excludes qwen3:8b (below the ADR-111 floor).
|
|
378
|
+
const codeModels = ['qwen3-coder', 'gpt-oss', 'qwen3:30b-a3b', 'codellama'];
|
|
372
379
|
for (const model of codeModels) {
|
|
373
|
-
|
|
374
|
-
|
|
380
|
+
// Return the full installed tag (e.g. 'qwen3-coder:30b'), not the prefix — a bare
|
|
381
|
+
// family name resolves to ':latest', which may not be the tag that is pulled.
|
|
382
|
+
const installed = this.installedTags.find((m) => m === model || m.startsWith(model));
|
|
383
|
+
if (installed) {
|
|
384
|
+
return installed;
|
|
375
385
|
}
|
|
376
386
|
}
|
|
377
387
|
return this.config.model;
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { createLLMError, } from '../interfaces.js';
|
|
9
9
|
import { CostTracker } from '../cost-tracker.js';
|
|
10
|
+
import { applyOpenAIParams } from '../openai-params.js';
|
|
10
11
|
import { TokenMetricsCollector } from '../../../learning/token-tracker.js';
|
|
11
12
|
import { toError } from '../../error-utils.js';
|
|
12
13
|
import { backoffDelay } from '../retry.js';
|
|
@@ -14,7 +15,7 @@ import { backoffDelay } from '../retry.js';
|
|
|
14
15
|
* Default OpenAI configuration
|
|
15
16
|
*/
|
|
16
17
|
export const DEFAULT_OPENAI_CONFIG = {
|
|
17
|
-
model: 'gpt-
|
|
18
|
+
model: 'gpt-6-sol',
|
|
18
19
|
maxTokens: 4096,
|
|
19
20
|
temperature: 0.7,
|
|
20
21
|
timeoutMs: 60000,
|
|
@@ -66,11 +67,7 @@ export class OpenAIProvider {
|
|
|
66
67
|
const response = await this.fetchWithTimeout(`${this.getBaseUrl()}/v1/chat/completions`, {
|
|
67
68
|
method: 'POST',
|
|
68
69
|
headers: this.getHeaders(),
|
|
69
|
-
body: JSON.stringify({
|
|
70
|
-
model: this.config.model,
|
|
71
|
-
max_tokens: 1,
|
|
72
|
-
messages: [{ role: 'user', content: 'Hi' }],
|
|
73
|
-
}),
|
|
70
|
+
body: JSON.stringify(applyOpenAIParams({ model: this.config.model, messages: [{ role: 'user', content: 'Hi' }] }, this.config.model, { maxTokens: 1 })),
|
|
74
71
|
}, 5000);
|
|
75
72
|
const latencyMs = Date.now() - start;
|
|
76
73
|
if (!response.ok) {
|
|
@@ -112,12 +109,7 @@ export class OpenAIProvider {
|
|
|
112
109
|
const temperature = options?.temperature ?? this.config.temperature ?? 0.7;
|
|
113
110
|
const requestId = `openai-${++this.requestId}-${Date.now()}`;
|
|
114
111
|
const start = Date.now();
|
|
115
|
-
const body = {
|
|
116
|
-
model,
|
|
117
|
-
max_tokens: maxTokens,
|
|
118
|
-
temperature,
|
|
119
|
-
messages,
|
|
120
|
-
};
|
|
112
|
+
const body = applyOpenAIParams({ model, messages }, model, { maxTokens, temperature });
|
|
121
113
|
if (options?.stopSequences && options.stopSequences.length > 0) {
|
|
122
114
|
body.stop = options.stopSequences;
|
|
123
115
|
}
|
|
@@ -248,11 +240,12 @@ export class OpenAIProvider {
|
|
|
248
240
|
*/
|
|
249
241
|
getSupportedModels() {
|
|
250
242
|
return [
|
|
251
|
-
'gpt-
|
|
252
|
-
'gpt-
|
|
253
|
-
'gpt-
|
|
254
|
-
'gpt-
|
|
255
|
-
'gpt-
|
|
243
|
+
'gpt-6-sol',
|
|
244
|
+
'gpt-6-luna',
|
|
245
|
+
'gpt-6-astra',
|
|
246
|
+
'gpt-5.6-sol',
|
|
247
|
+
'gpt-5.6-luna',
|
|
248
|
+
'gpt-5.4-mini',
|
|
256
249
|
];
|
|
257
250
|
}
|
|
258
251
|
/**
|
|
@@ -14,7 +14,7 @@ import { LLMProvider, LLMProviderType, LLMConfig, Message, GenerateOptions, Embe
|
|
|
14
14
|
* OpenRouter-specific configuration
|
|
15
15
|
*/
|
|
16
16
|
export interface OpenRouterConfig extends LLMConfig {
|
|
17
|
-
/** OpenRouter model (e.g., 'anthropic/claude-
|
|
17
|
+
/** OpenRouter model (e.g., 'anthropic/claude-sonnet-5', 'openai/gpt-6-sol') */
|
|
18
18
|
model: string;
|
|
19
19
|
/** Site URL for OpenRouter attribution (optional but recommended) */
|
|
20
20
|
siteUrl?: string;
|
|
@@ -14,11 +14,12 @@ import { TokenMetricsCollector } from '../../../learning/token-tracker.js';
|
|
|
14
14
|
import { toError } from '../../error-utils.js';
|
|
15
15
|
import { backoffDelay } from '../retry.js';
|
|
16
16
|
import { safeJsonParse } from '../../safe-json.js';
|
|
17
|
+
import { resolveModelPricing } from '../cost-tracker.js';
|
|
17
18
|
/**
|
|
18
19
|
* Default OpenRouter configuration
|
|
19
20
|
*/
|
|
20
21
|
export const DEFAULT_OPENROUTER_CONFIG = {
|
|
21
|
-
model: 'anthropic/claude-
|
|
22
|
+
model: 'anthropic/claude-sonnet-5',
|
|
22
23
|
maxTokens: 4096,
|
|
23
24
|
temperature: 0.7,
|
|
24
25
|
timeoutMs: 60000,
|
|
@@ -34,29 +35,62 @@ export const DEFAULT_OPENROUTER_CONFIG = {
|
|
|
34
35
|
*/
|
|
35
36
|
export const OPENROUTER_PRICING = {
|
|
36
37
|
// Anthropic models via OpenRouter
|
|
38
|
+
'anthropic/claude-sonnet-5': { input: 2.0, output: 10.0 },
|
|
39
|
+
'anthropic/claude-opus-5': { input: 5.0, output: 25.0 },
|
|
40
|
+
'anthropic/claude-opus-5.5': { input: 4.0, output: 20.0 },
|
|
41
|
+
'anthropic/claude-haiku-4.5': { input: 1.0, output: 5.0 },
|
|
42
|
+
// OpenAI models via OpenRouter
|
|
43
|
+
'openai/gpt-6-astra': { input: 10.0, output: 50.0 },
|
|
44
|
+
'openai/gpt-6-sol': { input: 2.0, output: 10.0 },
|
|
45
|
+
'openai/gpt-6-luna': { input: 0.1, output: 0.5 },
|
|
46
|
+
'openai/gpt-oss-120b': { input: 0.15, output: 0.6 },
|
|
47
|
+
// Google models via OpenRouter
|
|
48
|
+
'google/gemini-3.8-flash': { input: 0.75, output: 3.75 },
|
|
49
|
+
'google/gemini-3.5-flash': { input: 1.5, output: 9.0 },
|
|
50
|
+
'google/gemini-3.5-flash-lite': { input: 0.3, output: 2.5 },
|
|
51
|
+
'google/gemini-3.1-pro-preview': { input: 2.0, output: 12.0 },
|
|
52
|
+
'google/gemini-2.5-pro': { input: 1.25, output: 10.0 },
|
|
53
|
+
'google/gemini-2.5-flash': { input: 0.3, output: 2.5 },
|
|
54
|
+
// Meta models via OpenRouter
|
|
55
|
+
'meta-llama/llama-4-maverick': { input: 0.1875, output: 0.6525 },
|
|
56
|
+
'meta-llama/llama-4-scout': { input: 0.1, output: 0.3 },
|
|
57
|
+
// Mistral models via OpenRouter
|
|
58
|
+
'mistralai/mistral-large-2512': { input: 0.5, output: 1.5 },
|
|
59
|
+
// DeepSeek / Qwen models via OpenRouter
|
|
60
|
+
'deepseek/deepseek-v4-pro': { input: 0.348, output: 0.696 },
|
|
61
|
+
'deepseek/deepseek-v4.1-flash': { input: 0.035, output: 0.29 },
|
|
62
|
+
'qwen/qwen3-coder': { input: 0.3, output: 1.0 },
|
|
63
|
+
'openai/gpt-oss-20b': { input: 0.018, output: 0.09 },
|
|
64
|
+
// Deprecated: no longer served by OpenRouter. Kept only so historical
|
|
65
|
+
// usage records still price correctly — never use as a default.
|
|
37
66
|
'anthropic/claude-3.5-sonnet': { input: 3.0, output: 15.0 },
|
|
38
67
|
'anthropic/claude-3.5-sonnet:beta': { input: 3.0, output: 15.0 },
|
|
39
68
|
'anthropic/claude-3-opus': { input: 15.0, output: 75.0 },
|
|
40
69
|
'anthropic/claude-3-sonnet': { input: 3.0, output: 15.0 },
|
|
41
70
|
'anthropic/claude-3-haiku': { input: 0.25, output: 1.25 },
|
|
42
|
-
// OpenAI models via OpenRouter
|
|
43
71
|
'openai/gpt-4o': { input: 5.0, output: 15.0 },
|
|
44
72
|
'openai/gpt-4o-mini': { input: 0.15, output: 0.6 },
|
|
45
73
|
'openai/gpt-4-turbo': { input: 10.0, output: 30.0 },
|
|
46
74
|
'openai/gpt-3.5-turbo': { input: 0.5, output: 1.5 },
|
|
47
|
-
// Google models via OpenRouter
|
|
48
75
|
'google/gemini-pro': { input: 0.125, output: 0.375 },
|
|
49
76
|
'google/gemini-pro-1.5': { input: 3.5, output: 10.5 },
|
|
50
|
-
// Meta models via OpenRouter
|
|
51
77
|
'meta-llama/llama-3.1-70b-instruct': { input: 0.59, output: 0.79 },
|
|
52
78
|
'meta-llama/llama-3.1-8b-instruct': { input: 0.06, output: 0.06 },
|
|
53
|
-
// Mistral models via OpenRouter
|
|
54
79
|
'mistralai/mistral-large': { input: 2.0, output: 6.0 },
|
|
55
80
|
'mistralai/mixtral-8x7b-instruct': { input: 0.24, output: 0.24 },
|
|
56
81
|
'mistralai/mistral-7b-instruct': { input: 0.06, output: 0.06 },
|
|
57
82
|
// Default fallback for unknown models
|
|
58
83
|
'default': { input: 1.0, output: 3.0 },
|
|
59
84
|
};
|
|
85
|
+
/**
|
|
86
|
+
* Per-million-token pricing for an OpenRouter slug. The local table wins;
|
|
87
|
+
* otherwise the shared cost tracker / model registry (which normalize
|
|
88
|
+
* `anthropic/…`, `openai/…` slugs) are consulted before the generic default,
|
|
89
|
+
* so routable models are never billed at the placeholder rate.
|
|
90
|
+
*/
|
|
91
|
+
function openRouterPricing(model) {
|
|
92
|
+
return OPENROUTER_PRICING[model] ?? resolveModelPricing(model) ?? OPENROUTER_PRICING['default'];
|
|
93
|
+
}
|
|
60
94
|
/**
|
|
61
95
|
* OpenRouter LLM provider implementation
|
|
62
96
|
*/
|
|
@@ -146,6 +180,7 @@ export class OpenRouterProvider {
|
|
|
146
180
|
const temperature = options?.temperature ?? this.config.temperature ?? 0.7;
|
|
147
181
|
const requestId = `openrouter-${++this.requestId}-${Date.now()}`;
|
|
148
182
|
const start = Date.now();
|
|
183
|
+
// Sent as-is (no openai-params gating): OpenRouter drops params a model's catalog entry doesn't support.
|
|
149
184
|
const body = {
|
|
150
185
|
model,
|
|
151
186
|
max_tokens: maxTokens,
|
|
@@ -399,27 +434,28 @@ export class OpenRouterProvider {
|
|
|
399
434
|
}
|
|
400
435
|
// Return common models as fallback
|
|
401
436
|
return [
|
|
402
|
-
'anthropic/claude-
|
|
403
|
-
'anthropic/claude-
|
|
404
|
-
'anthropic/claude-
|
|
405
|
-
'anthropic/claude-
|
|
406
|
-
'openai/gpt-
|
|
407
|
-
'openai/gpt-
|
|
408
|
-
'openai/gpt-
|
|
409
|
-
'
|
|
410
|
-
'google/gemini-pro',
|
|
411
|
-
'google/gemini-
|
|
412
|
-
'meta-llama/llama-
|
|
413
|
-
'
|
|
414
|
-
'
|
|
415
|
-
'mistralai/
|
|
437
|
+
'anthropic/claude-sonnet-5',
|
|
438
|
+
'anthropic/claude-opus-5.5',
|
|
439
|
+
'anthropic/claude-opus-5',
|
|
440
|
+
'anthropic/claude-haiku-4.5',
|
|
441
|
+
'openai/gpt-6-sol',
|
|
442
|
+
'openai/gpt-6-luna',
|
|
443
|
+
'openai/gpt-6-astra',
|
|
444
|
+
'google/gemini-3.8-flash',
|
|
445
|
+
'google/gemini-3.1-pro-preview',
|
|
446
|
+
'google/gemini-2.5-flash',
|
|
447
|
+
'meta-llama/llama-4-maverick',
|
|
448
|
+
'deepseek/deepseek-v4-pro',
|
|
449
|
+
'qwen/qwen3-coder',
|
|
450
|
+
'mistralai/mistral-large-2512',
|
|
451
|
+
'openai/gpt-oss-120b',
|
|
416
452
|
];
|
|
417
453
|
}
|
|
418
454
|
/**
|
|
419
455
|
* Get cost per token for current model
|
|
420
456
|
*/
|
|
421
457
|
getCostPerToken() {
|
|
422
|
-
const pricing =
|
|
458
|
+
const pricing = openRouterPricing(this.config.model);
|
|
423
459
|
return {
|
|
424
460
|
input: pricing.input / 1_000_000,
|
|
425
461
|
output: pricing.output / 1_000_000,
|
|
@@ -435,7 +471,7 @@ export class OpenRouterProvider {
|
|
|
435
471
|
* Calculate cost for a given usage
|
|
436
472
|
*/
|
|
437
473
|
calculateCost(model, usage) {
|
|
438
|
-
const pricing =
|
|
474
|
+
const pricing = openRouterPricing(model);
|
|
439
475
|
// Convert from per-million to actual cost
|
|
440
476
|
const inputCost = (usage.promptTokens / 1_000_000) * pricing.input;
|
|
441
477
|
const outputCost = (usage.completionTokens / 1_000_000) * pricing.output;
|