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
|
@@ -2,16 +2,28 @@
|
|
|
2
2
|
* Agentic QE v3 - Cyber Verification Pin
|
|
3
3
|
* ADR-093: Opus 4.7 Migration
|
|
4
4
|
*
|
|
5
|
-
* Security and pentest agents may trip
|
|
6
|
-
* safeguards
|
|
7
|
-
*
|
|
8
|
-
* until
|
|
5
|
+
* Security and pentest agents may trip the real-time cybersecurity
|
|
6
|
+
* safeguards that ship with Opus 4.7 and later Opus/Fable-class models until
|
|
7
|
+
* the organization is enrolled in Anthropic's Cyber Verification Program.
|
|
8
|
+
* This module pins those agents to a fallback model until
|
|
9
|
+
* `AQE_CYBER_VERIFIED=true`.
|
|
9
10
|
*
|
|
10
11
|
* Applied in BOTH:
|
|
11
12
|
* - HybridRouter.chat() — catches direct routing calls
|
|
12
13
|
* - MultiModelExecutor.consult() — catches advisor escalations
|
|
13
14
|
*
|
|
14
|
-
*
|
|
15
|
+
* HybridRouter also re-pins its fallback candidates (default model and
|
|
16
|
+
* fallback chain), so a failed primary cannot escalate a pinned agent. Scope:
|
|
17
|
+
* the pin covers the Opus/Fable-class models that ship these safeguards; it
|
|
18
|
+
* does NOT restrict ordinary Sonnet routing (security tasks may route to the
|
|
19
|
+
* default Sonnet).
|
|
20
|
+
|
|
21
|
+
*
|
|
22
|
+
* 2026-09 model refresh: the gate was generalized from Opus 4.7 only to every
|
|
23
|
+
* Opus/Fable model at or above 4.7, including the Claude Code aliases
|
|
24
|
+
* `opus` / `fable` (see {@link isCyberGatedModel}). Routing tier 4 and the
|
|
25
|
+
* default advisor now target Opus 5.5; matching 4.7 alone would have left the
|
|
26
|
+
* pin unreachable.
|
|
15
27
|
*/
|
|
16
28
|
/**
|
|
17
29
|
* Agent names subject to the cyber pin. These are the agents covered by
|
|
@@ -28,23 +40,58 @@ export const CYBER_PINNED_AGENTS = [
|
|
|
28
40
|
'qe-security-reviewer',
|
|
29
41
|
];
|
|
30
42
|
/**
|
|
31
|
-
* Fallback
|
|
43
|
+
* Fallback model for pinned requests. Deliberately Sonnet 4.6 — the model
|
|
44
|
+
* docs/security/cyber-verification-application.md names for security agents —
|
|
45
|
+
* rather than DEFAULT_SONNET_MODEL, so the pin's target stays the documented,
|
|
46
|
+
* reviewed model across default bumps. (Claude Code maps model IDs to its
|
|
47
|
+
* `sonnet` alias, so on that provider the fallback runs on the CLI's Sonnet.)
|
|
48
|
+
* Sonnet 4.6 is served until at least 2027-02-17.
|
|
49
|
+
*/
|
|
50
|
+
const CYBER_PIN_SONNET = 'claude-sonnet-4-6';
|
|
51
|
+
/**
|
|
52
|
+
* Fallback advisor model for cyber-pinned agents, in OpenRouter form.
|
|
32
53
|
* Used by MultiModelExecutor.consult.
|
|
33
54
|
*/
|
|
34
|
-
export const CYBER_PIN_ADVISOR_FALLBACK = '
|
|
55
|
+
export const CYBER_PIN_ADVISOR_FALLBACK = `anthropic/${CYBER_PIN_SONNET.replace('4-6', '4.6')}`;
|
|
35
56
|
/**
|
|
36
57
|
* Fallback chat model for cyber-pinned agents when targeting the Anthropic
|
|
37
58
|
* provider directly. Used by HybridRouter.chat.
|
|
38
59
|
*/
|
|
39
|
-
export const CYBER_PIN_CHAT_FALLBACK =
|
|
60
|
+
export const CYBER_PIN_CHAT_FALLBACK = CYBER_PIN_SONNET;
|
|
40
61
|
/**
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
62
|
+
* Family + version in any known ID form: canonical (claude-opus-5-5),
|
|
63
|
+
* OpenRouter (anthropic/claude-opus-5.5), Bedrock (anthropic.claude-opus-4-7-v1:0)
|
|
64
|
+
* and dated snapshots (claude-opus-4-5-20251101). The minor version is at most
|
|
65
|
+
* two digits so a date suffix (claude-opus-4-20250514) is not read as one.
|
|
44
66
|
*/
|
|
45
|
-
|
|
46
|
-
|
|
67
|
+
const CLI_GATED_ALIASES = new Set(['opus', 'fable']);
|
|
68
|
+
const OPUS_FABLE_ID = /claude-(opus|fable)-(\d+)(?:[-.](\d{1,2})(?!\d))?/;
|
|
69
|
+
/** First Opus/Fable version that ships the cyber safeguards. */
|
|
70
|
+
const CYBER_GATE_MIN = { major: 4, minor: 7 };
|
|
71
|
+
/**
|
|
72
|
+
* Returns true if the model ID is an Opus- or Fable-class model at or above
|
|
73
|
+
* 4.7 (claude-opus-4-7, claude-opus-4-8, claude-opus-5, claude-opus-5-5,
|
|
74
|
+
* claude-fable-5, claude-fable-5-1, …) in canonical, OpenRouter or Bedrock
|
|
75
|
+
* form. Sonnet, Haiku and Opus below 4.7 are not gated.
|
|
76
|
+
*/
|
|
77
|
+
export function isCyberGatedModel(modelId) {
|
|
78
|
+
const id = modelId.trim().toLowerCase();
|
|
79
|
+
// Claude Code CLI aliases resolve to the latest Opus/Fable (>= 4.7).
|
|
80
|
+
if (CLI_GATED_ALIASES.has(id))
|
|
81
|
+
return true;
|
|
82
|
+
const match = OPUS_FABLE_ID.exec(id);
|
|
83
|
+
if (!match)
|
|
84
|
+
return false;
|
|
85
|
+
const major = Number(match[2]);
|
|
86
|
+
const minor = match[3] === undefined ? 0 : Number(match[3]);
|
|
87
|
+
return (major > CYBER_GATE_MIN.major ||
|
|
88
|
+
(major === CYBER_GATE_MIN.major && minor >= CYBER_GATE_MIN.minor));
|
|
47
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* @deprecated Use {@link isCyberGatedModel}. Kept as an alias for existing
|
|
92
|
+
* callers; it matches every cyber-gated model, not only Opus 4.7.
|
|
93
|
+
*/
|
|
94
|
+
export const isOpus47 = isCyberGatedModel;
|
|
48
95
|
/**
|
|
49
96
|
* Returns true if the agent is cyber-pinned and env does not grant
|
|
50
97
|
* Cyber Verification bypass. Case-sensitive "true" only — '1', 'yes',
|
|
@@ -68,8 +115,23 @@ export function shouldCyberPin(agentName, env = process.env) {
|
|
|
68
115
|
export function applyCyberPin(agentName, requestedModel, fallback, env = process.env) {
|
|
69
116
|
if (!shouldCyberPin(agentName, env))
|
|
70
117
|
return requestedModel;
|
|
71
|
-
if (!
|
|
118
|
+
if (!isCyberGatedModel(requestedModel))
|
|
72
119
|
return requestedModel;
|
|
73
120
|
return fallback;
|
|
74
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* The pinned Sonnet 4.6 fallback in the model-ID form a given provider
|
|
124
|
+
* expects, so a pinned request stays routable (OpenRouter needs the dotted
|
|
125
|
+
* `anthropic/…` slug, Bedrock the `anthropic.…-v1:0` form).
|
|
126
|
+
*/
|
|
127
|
+
export function cyberPinFallbackFor(provider) {
|
|
128
|
+
switch (provider) {
|
|
129
|
+
case 'openrouter':
|
|
130
|
+
return CYBER_PIN_ADVISOR_FALLBACK;
|
|
131
|
+
case 'bedrock':
|
|
132
|
+
return 'anthropic.claude-sonnet-4-6-v1:0';
|
|
133
|
+
default:
|
|
134
|
+
return CYBER_PIN_CHAT_FALLBACK;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
75
137
|
//# sourceMappingURL=cyber-pin.js.map
|
|
@@ -52,6 +52,6 @@ export const MEASURED_QE_TEST_GEN = [
|
|
|
52
52
|
{ model: 'qwen2.5-coder:7b', quality: 0.50, costPerInstance: 0 }, // 2026-06-29: stock 7B coder = 4/8 (50%) — beats general qwen3:8b (38%), 16× faster; ~25pp below 30B (PEFT-tune target)
|
|
53
53
|
{ model: 'qwen2.5-coder:1.5b', quality: 0.08, costPerInstance: 0 }, // 2026-06-29: stock 1.5B coder = 1/8 (8%); below floor, size dominates coder-tuning at tiny scale
|
|
54
54
|
{ model: 'z-ai/glm-5.2', quality: 0.71, costPerInstance: 0.0065 }, // A12: diverse, higher per-model best
|
|
55
|
-
{ model: 'claude-sonnet-4-6', quality: 0.83, costPerInstance: 0.045 }, // D3: frontier
|
|
55
|
+
{ model: 'claude-sonnet-4-6', quality: 0.83, costPerInstance: 0.045 }, // D3: measured frontier reference as of 2026-06-24 (not re-run on newer models)
|
|
56
56
|
];
|
|
57
57
|
//# sourceMappingURL=value-score.js.map
|
package/dist/shared/git/index.js
CHANGED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Git ref validation
|
|
3
|
+
*
|
|
4
|
+
* Caller-supplied refs (MCP tool arguments, CLI flags) are passed to git as
|
|
5
|
+
* positional argv entries. Even without a shell, a value beginning with "-"
|
|
6
|
+
* is parsed by git as an option (e.g. `--output=<path>` makes `git diff`
|
|
7
|
+
* create or truncate an arbitrary file), so refs must be validated at the
|
|
8
|
+
* boundary before reaching git.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Returns an error message when `ref` is not a safe git revision argument,
|
|
12
|
+
* or undefined when it is safe. Accepts ordinary revisions such as `main`,
|
|
13
|
+
* `origin/main`, `HEAD~3`, `v1.2.0^{commit}` and commit SHAs.
|
|
14
|
+
*/
|
|
15
|
+
export declare function getGitRefError(ref: unknown, label?: string): string | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* Throws when `ref` is not a safe git revision argument.
|
|
18
|
+
*/
|
|
19
|
+
export declare function assertSafeGitRef(ref: unknown, label?: string): asserts ref is string;
|
|
20
|
+
//# sourceMappingURL=ref-validation.d.ts.map
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Git ref validation
|
|
3
|
+
*
|
|
4
|
+
* Caller-supplied refs (MCP tool arguments, CLI flags) are passed to git as
|
|
5
|
+
* positional argv entries. Even without a shell, a value beginning with "-"
|
|
6
|
+
* is parsed by git as an option (e.g. `--output=<path>` makes `git diff`
|
|
7
|
+
* create or truncate an arbitrary file), so refs must be validated at the
|
|
8
|
+
* boundary before reaching git.
|
|
9
|
+
*/
|
|
10
|
+
const MAX_GIT_REF_LENGTH = 256;
|
|
11
|
+
// Whitespace and ASCII control characters are never valid in a revision.
|
|
12
|
+
// eslint-disable-next-line no-control-regex
|
|
13
|
+
const UNSAFE_REF_CHARS = /[\s\x00-\x1f\x7f]/;
|
|
14
|
+
/**
|
|
15
|
+
* Returns an error message when `ref` is not a safe git revision argument,
|
|
16
|
+
* or undefined when it is safe. Accepts ordinary revisions such as `main`,
|
|
17
|
+
* `origin/main`, `HEAD~3`, `v1.2.0^{commit}` and commit SHAs.
|
|
18
|
+
*/
|
|
19
|
+
export function getGitRefError(ref, label = 'git ref') {
|
|
20
|
+
if (typeof ref !== 'string' || ref.length === 0) {
|
|
21
|
+
return `Invalid ${label}: must be a non-empty string`;
|
|
22
|
+
}
|
|
23
|
+
if (ref.length > MAX_GIT_REF_LENGTH) {
|
|
24
|
+
return `Invalid ${label}: longer than ${MAX_GIT_REF_LENGTH} characters`;
|
|
25
|
+
}
|
|
26
|
+
if (ref.startsWith('-')) {
|
|
27
|
+
return `Invalid ${label} "${ref}": must not start with "-"`;
|
|
28
|
+
}
|
|
29
|
+
if (UNSAFE_REF_CHARS.test(ref)) {
|
|
30
|
+
return `Invalid ${label}: must not contain whitespace or control characters`;
|
|
31
|
+
}
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Throws when `ref` is not a safe git revision argument.
|
|
36
|
+
*/
|
|
37
|
+
export function assertSafeGitRef(ref, label = 'git ref') {
|
|
38
|
+
const error = getGitRefError(ref, label);
|
|
39
|
+
if (error) {
|
|
40
|
+
throw new Error(error);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=ref-validation.js.map
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Anthropic Messages API parameter policy
|
|
3
|
+
*
|
|
4
|
+
* Newer Claude models reject request fields that older ones accepted:
|
|
5
|
+
* `temperature` / `top_p` / `top_k` return 400 ("`temperature` is deprecated
|
|
6
|
+
* for this model") on Opus 4.7+, Sonnet 5 and the Fable family, and effort
|
|
7
|
+
* must be sent as `output_config.effort` (a nested `thinking.effort` is
|
|
8
|
+
* rejected). Every Anthropic-format request builder applies this policy so a
|
|
9
|
+
* model bump cannot silently break calls.
|
|
10
|
+
*/
|
|
11
|
+
import { type EffortLevel } from './effort-resolver';
|
|
12
|
+
export interface AnthropicParamPolicy {
|
|
13
|
+
/** Whether `temperature` (and other sampling params) may be sent. */
|
|
14
|
+
sendSampling: boolean;
|
|
15
|
+
/** Whether `output_config.effort` is accepted. */
|
|
16
|
+
supportsEffort: boolean;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Parameter policy for a model ID (canonical, dated, Bedrock, or OpenRouter
|
|
20
|
+
* form). Models missing from the registry get the conservative policy:
|
|
21
|
+
* no sampling params (current models reject them; retired models no longer
|
|
22
|
+
* serve requests) and no effort.
|
|
23
|
+
*/
|
|
24
|
+
export declare function getAnthropicParamPolicy(model: string): AnthropicParamPolicy;
|
|
25
|
+
export interface AnthropicParamInput {
|
|
26
|
+
temperature?: number;
|
|
27
|
+
/**
|
|
28
|
+
* Explicit effort. When omitted, flagship (Opus/Fable-class) models get the
|
|
29
|
+
* fleet effort (QE_EFFORT_LEVEL > config/fleet-defaults.yaml > xhigh, per
|
|
30
|
+
* ADR-093); other models keep their API default to avoid raising cost on
|
|
31
|
+
* every Sonnet/Haiku call.
|
|
32
|
+
*/
|
|
33
|
+
effort?: EffortLevel;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Add sampling and effort fields to an Anthropic Messages request body
|
|
37
|
+
* according to the model's policy. Mutates and returns `body`.
|
|
38
|
+
*/
|
|
39
|
+
export declare function applyAnthropicParams(body: Record<string, unknown>, model: string, input: AnthropicParamInput): Record<string, unknown>;
|
|
40
|
+
//# sourceMappingURL=anthropic-params.d.ts.map
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Anthropic Messages API parameter policy
|
|
3
|
+
*
|
|
4
|
+
* Newer Claude models reject request fields that older ones accepted:
|
|
5
|
+
* `temperature` / `top_p` / `top_k` return 400 ("`temperature` is deprecated
|
|
6
|
+
* for this model") on Opus 4.7+, Sonnet 5 and the Fable family, and effort
|
|
7
|
+
* must be sent as `output_config.effort` (a nested `thinking.effort` is
|
|
8
|
+
* rejected). Every Anthropic-format request builder applies this policy so a
|
|
9
|
+
* model bump cannot silently break calls.
|
|
10
|
+
*/
|
|
11
|
+
import { getModelCapabilities, getModelInfo } from './model-registry.js';
|
|
12
|
+
import { resolveEffortLevel } from './effort-resolver.js';
|
|
13
|
+
/**
|
|
14
|
+
* Parameter policy for a model ID (canonical, dated, Bedrock, or OpenRouter
|
|
15
|
+
* form). Models missing from the registry get the conservative policy:
|
|
16
|
+
* no sampling params (current models reject them; retired models no longer
|
|
17
|
+
* serve requests) and no effort.
|
|
18
|
+
*/
|
|
19
|
+
export function getAnthropicParamPolicy(model) {
|
|
20
|
+
try {
|
|
21
|
+
const caps = getModelCapabilities(model);
|
|
22
|
+
return {
|
|
23
|
+
sendSampling: caps.supportsSamplingParams !== false,
|
|
24
|
+
supportsEffort: caps.supportsEffortXHigh === true,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return { sendSampling: false, supportsEffort: false };
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Add sampling and effort fields to an Anthropic Messages request body
|
|
33
|
+
* according to the model's policy. Mutates and returns `body`.
|
|
34
|
+
*/
|
|
35
|
+
export function applyAnthropicParams(body, model, input) {
|
|
36
|
+
const policy = getAnthropicParamPolicy(model);
|
|
37
|
+
if (policy.sendSampling && input.temperature !== undefined) {
|
|
38
|
+
body.temperature = input.temperature;
|
|
39
|
+
}
|
|
40
|
+
if (policy.supportsEffort) {
|
|
41
|
+
const effort = input.effort ?? (isFlagship(model) ? resolveEffortLevel() : undefined);
|
|
42
|
+
if (effort !== undefined) {
|
|
43
|
+
body.output_config = { effort };
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return body;
|
|
47
|
+
}
|
|
48
|
+
function isFlagship(model) {
|
|
49
|
+
return getModelInfo(model)?.tier === 'flagship';
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=anthropic-params.js.map
|
|
@@ -7,14 +7,27 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { LLMProviderType, TokenUsage, CostInfo, CostPeriod, CostSummary } from './interfaces';
|
|
9
9
|
/**
|
|
10
|
-
* Token pricing per model (cost per 1M tokens in USD)
|
|
11
|
-
*
|
|
10
|
+
* Token pricing per model (cost per 1M tokens in USD).
|
|
11
|
+
* Current-generation prices verified 2026-09-27 (Anthropic docs, OpenRouter
|
|
12
|
+
* catalog). Models missing here fall back to the model registry via
|
|
13
|
+
* `resolveModelPricing()` before being treated as free/local.
|
|
12
14
|
*/
|
|
13
15
|
export declare const MODEL_PRICING: Record<string, {
|
|
14
16
|
input: number;
|
|
15
17
|
output: number;
|
|
16
18
|
provider: LLMProviderType;
|
|
17
19
|
}>;
|
|
20
|
+
/**
|
|
21
|
+
* Resolve per-million-token pricing for a model. Exact `MODEL_PRICING` keys
|
|
22
|
+
* win; otherwise the model registry is consulted (it normalizes provider
|
|
23
|
+
* IDs such as `anthropic/claude-sonnet-5` or dated Anthropic IDs). Returns
|
|
24
|
+
* `undefined` only when neither source knows the model, which callers treat
|
|
25
|
+
* as a free/local model.
|
|
26
|
+
*/
|
|
27
|
+
export declare function resolveModelPricing(model: string): {
|
|
28
|
+
input: number;
|
|
29
|
+
output: number;
|
|
30
|
+
} | undefined;
|
|
18
31
|
/**
|
|
19
32
|
* Usage record for a single request
|
|
20
33
|
*/
|
|
@@ -6,25 +6,41 @@
|
|
|
6
6
|
* Supports cost limits, alerts, and detailed breakdowns.
|
|
7
7
|
*/
|
|
8
8
|
import { randomUUID } from 'crypto';
|
|
9
|
+
import { getModelCost } from './model-registry.js';
|
|
9
10
|
/**
|
|
10
|
-
* Token pricing per model (cost per 1M tokens in USD)
|
|
11
|
-
*
|
|
11
|
+
* Token pricing per model (cost per 1M tokens in USD).
|
|
12
|
+
* Current-generation prices verified 2026-09-27 (Anthropic docs, OpenRouter
|
|
13
|
+
* catalog). Models missing here fall back to the model registry via
|
|
14
|
+
* `resolveModelPricing()` before being treated as free/local.
|
|
12
15
|
*/
|
|
13
16
|
export const MODEL_PRICING = {
|
|
14
|
-
// Claude models
|
|
17
|
+
// Claude models — current generation (2026-09 model refresh)
|
|
18
|
+
'claude-sonnet-5': { input: 2.0, output: 10.0, provider: 'claude' },
|
|
19
|
+
'claude-opus-5': { input: 5.0, output: 25.0, provider: 'claude' },
|
|
20
|
+
'claude-opus-5-5': { input: 4.0, output: 20.0, provider: 'claude' },
|
|
21
|
+
'claude-fable-5-1': { input: 10.0, output: 50.0, provider: 'claude' },
|
|
22
|
+
'claude-fable-5': { input: 10.0, output: 50.0, provider: 'claude' },
|
|
23
|
+
'claude-opus-4-8': { input: 5.0, output: 25.0, provider: 'claude' },
|
|
15
24
|
// ADR-093: Opus 4.7 (2026-04-16), Sonnet 4.6, Haiku 4.5 (Apr 2026 cluster)
|
|
16
25
|
'claude-opus-4-7': { input: 5.0, output: 25.0, provider: 'claude' },
|
|
17
26
|
'claude-sonnet-4-6': { input: 3.0, output: 15.0, provider: 'claude' },
|
|
18
27
|
'claude-haiku-4-5-20251001': { input: 1.0, output: 5.0, provider: 'claude' },
|
|
19
|
-
|
|
20
|
-
|
|
28
|
+
'claude-haiku-4-5': { input: 1.0, output: 5.0, provider: 'claude' },
|
|
29
|
+
// Previous generation, still served
|
|
30
|
+
'claude-opus-4-5-20251101': { input: 5.0, output: 25.0, provider: 'claude' },
|
|
31
|
+
'claude-opus-4-6': { input: 5.0, output: 25.0, provider: 'claude' },
|
|
32
|
+
// Retired — kept only to price historical usage records
|
|
21
33
|
'claude-sonnet-4-20250514': { input: 3.0, output: 15.0, provider: 'claude' },
|
|
22
34
|
'claude-3-5-haiku-20241022': { input: 1.0, output: 5.0, provider: 'claude' },
|
|
23
|
-
// Legacy Claude models
|
|
35
|
+
// Legacy Claude models (retired)
|
|
24
36
|
'claude-3-opus-20240229': { input: 15.0, output: 75.0, provider: 'claude' },
|
|
25
37
|
'claude-3-sonnet-20240229': { input: 3.0, output: 15.0, provider: 'claude' },
|
|
26
38
|
'claude-3-haiku-20240307': { input: 0.25, output: 1.25, provider: 'claude' },
|
|
27
|
-
// OpenAI models
|
|
39
|
+
// OpenAI models — GPT-6 generation (OpenRouter pass-through pricing)
|
|
40
|
+
'gpt-6-astra': { input: 10.0, output: 50.0, provider: 'openai' },
|
|
41
|
+
'gpt-6-sol': { input: 2.0, output: 10.0, provider: 'openai' },
|
|
42
|
+
'gpt-6-luna': { input: 0.1, output: 0.5, provider: 'openai' },
|
|
43
|
+
// OpenAI legacy generation
|
|
28
44
|
'gpt-4o': { input: 5.0, output: 15.0, provider: 'openai' },
|
|
29
45
|
'gpt-4o-mini': { input: 0.15, output: 0.6, provider: 'openai' },
|
|
30
46
|
'gpt-4-turbo': { input: 10.0, output: 30.0, provider: 'openai' },
|
|
@@ -38,7 +54,18 @@ export const MODEL_PRICING = {
|
|
|
38
54
|
'mixtral': { input: 0, output: 0, provider: 'ollama' },
|
|
39
55
|
'phi3': { input: 0, output: 0, provider: 'ollama' },
|
|
40
56
|
'qwen2': { input: 0, output: 0, provider: 'ollama' },
|
|
41
|
-
// OpenRouter models (provider prefixed)
|
|
57
|
+
// OpenRouter models (provider prefixed) — current generation
|
|
58
|
+
'anthropic/claude-sonnet-5': { input: 2.0, output: 10.0, provider: 'openrouter' },
|
|
59
|
+
'anthropic/claude-opus-5': { input: 5.0, output: 25.0, provider: 'openrouter' },
|
|
60
|
+
'anthropic/claude-opus-5.5': { input: 4.0, output: 20.0, provider: 'openrouter' },
|
|
61
|
+
'anthropic/claude-haiku-4.5': { input: 1.0, output: 5.0, provider: 'openrouter' },
|
|
62
|
+
'openai/gpt-6-sol': { input: 2.0, output: 10.0, provider: 'openrouter' },
|
|
63
|
+
'openai/gpt-6-luna': { input: 0.1, output: 0.5, provider: 'openrouter' },
|
|
64
|
+
'google/gemini-3.8-flash': { input: 0.75, output: 3.75, provider: 'openrouter' },
|
|
65
|
+
'meta-llama/llama-4-maverick': { input: 0.1875, output: 0.6525, provider: 'openrouter' },
|
|
66
|
+
'openai/gpt-oss-120b': { input: 0.15, output: 0.6, provider: 'openrouter' },
|
|
67
|
+
'qwen/qwen3-coder': { input: 0.3, output: 1.0, provider: 'openrouter' },
|
|
68
|
+
// OpenRouter legacy slugs (retired upstream for Claude 3.x)
|
|
42
69
|
'anthropic/claude-3.5-sonnet': { input: 3.0, output: 15.0, provider: 'openrouter' },
|
|
43
70
|
'anthropic/claude-3.5-sonnet:beta': { input: 3.0, output: 15.0, provider: 'openrouter' },
|
|
44
71
|
'anthropic/claude-3-opus': { input: 15.0, output: 75.0, provider: 'openrouter' },
|
|
@@ -57,6 +84,8 @@ export const MODEL_PRICING = {
|
|
|
57
84
|
'mistralai/mistral-7b-instruct': { input: 0.06, output: 0.06, provider: 'openrouter' },
|
|
58
85
|
// AWS Bedrock models (ARN-style model IDs)
|
|
59
86
|
// Pricing reflects Bedrock's pricing which may differ slightly from Anthropic direct
|
|
87
|
+
// Bedrock sets its own Claude pricing; this row is unverified since the
|
|
88
|
+
// 2026-09 refresh (direct API / OpenRouter Opus 4.5 is $5/$25).
|
|
60
89
|
'anthropic.claude-opus-4-5-v1:0': { input: 15.0, output: 75.0, provider: 'bedrock' },
|
|
61
90
|
'anthropic.claude-opus-4-v1:0': { input: 15.0, output: 75.0, provider: 'bedrock' },
|
|
62
91
|
'anthropic.claude-sonnet-4-5-v2:0': { input: 3.0, output: 15.0, provider: 'bedrock' },
|
|
@@ -79,6 +108,11 @@ export const MODEL_PRICING = {
|
|
|
79
108
|
'azure/text-embedding-3-small': { input: 0.02, output: 0, provider: 'azure-openai' },
|
|
80
109
|
'azure/text-embedding-3-large': { input: 0.13, output: 0, provider: 'azure-openai' },
|
|
81
110
|
// Google Gemini models (direct API)
|
|
111
|
+
'gemini-3.8-flash': { input: 0.75, output: 3.75, provider: 'gemini' },
|
|
112
|
+
'gemini-3.5-flash': { input: 1.5, output: 9.0, provider: 'gemini' },
|
|
113
|
+
'gemini-3.1-pro-preview': { input: 2.0, output: 12.0, provider: 'gemini' },
|
|
114
|
+
'gemini-2.5-flash': { input: 0.3, output: 2.5, provider: 'gemini' },
|
|
115
|
+
'gemini-2.5-pro': { input: 1.25, output: 10.0, provider: 'gemini' },
|
|
82
116
|
'gemini-pro': { input: 0.5, output: 1.5, provider: 'gemini' },
|
|
83
117
|
'gemini-1.0-pro': { input: 0.5, output: 1.5, provider: 'gemini' },
|
|
84
118
|
'gemini-1.5-pro': { input: 3.5, output: 10.5, provider: 'gemini' },
|
|
@@ -91,6 +125,24 @@ export const MODEL_PRICING = {
|
|
|
91
125
|
// Gemini embedding models
|
|
92
126
|
'text-embedding-004': { input: 0.025, output: 0, provider: 'gemini' },
|
|
93
127
|
};
|
|
128
|
+
/**
|
|
129
|
+
* Resolve per-million-token pricing for a model. Exact `MODEL_PRICING` keys
|
|
130
|
+
* win; otherwise the model registry is consulted (it normalizes provider
|
|
131
|
+
* IDs such as `anthropic/claude-sonnet-5` or dated Anthropic IDs). Returns
|
|
132
|
+
* `undefined` only when neither source knows the model, which callers treat
|
|
133
|
+
* as a free/local model.
|
|
134
|
+
*/
|
|
135
|
+
export function resolveModelPricing(model) {
|
|
136
|
+
const pricing = MODEL_PRICING[model];
|
|
137
|
+
if (pricing) {
|
|
138
|
+
return { input: pricing.input, output: pricing.output };
|
|
139
|
+
}
|
|
140
|
+
const registryCost = getModelCost(model);
|
|
141
|
+
if (registryCost.inputCostPerMillion > 0 || registryCost.outputCostPerMillion > 0) {
|
|
142
|
+
return { input: registryCost.inputCostPerMillion, output: registryCost.outputCostPerMillion };
|
|
143
|
+
}
|
|
144
|
+
return undefined;
|
|
145
|
+
}
|
|
94
146
|
/**
|
|
95
147
|
* Cost tracker for LLM usage
|
|
96
148
|
*/
|
|
@@ -106,7 +158,7 @@ export class CostTracker {
|
|
|
106
158
|
* Calculate cost for a given usage
|
|
107
159
|
*/
|
|
108
160
|
static calculateCost(model, usage) {
|
|
109
|
-
const pricing =
|
|
161
|
+
const pricing = resolveModelPricing(model);
|
|
110
162
|
if (!pricing) {
|
|
111
163
|
// Unknown model - assume Ollama (local) for safety
|
|
112
164
|
return {
|
|
@@ -134,7 +186,7 @@ export class CostTracker {
|
|
|
134
186
|
* Get cost per token for a model
|
|
135
187
|
*/
|
|
136
188
|
static getCostPerToken(model) {
|
|
137
|
-
const pricing =
|
|
189
|
+
const pricing = resolveModelPricing(model);
|
|
138
190
|
if (!pricing) {
|
|
139
191
|
return { input: 0, output: 0 };
|
|
140
192
|
}
|
|
@@ -45,13 +45,13 @@ export { type LLMProviderType, type MessageRole, type Message, type TokenUsage,
|
|
|
45
45
|
export { ClaudeProvider, DEFAULT_CLAUDE_CONFIG, OpenAIProvider, DEFAULT_OPENAI_CONFIG, OllamaProvider, DEFAULT_OLLAMA_CONFIG, OpenRouterProvider, DEFAULT_OPENROUTER_CONFIG, GeminiProvider, DEFAULT_GEMINI_CONFIG, AzureOpenAIProvider, DEFAULT_AZURE_OPENAI_CONFIG, BedrockProvider, DEFAULT_BEDROCK_CONFIG, } from './providers';
|
|
46
46
|
export { CircuitBreaker, CircuitBreakerManager, DEFAULT_CIRCUIT_BREAKER_CONFIG, } from './circuit-breaker';
|
|
47
47
|
export { LLMCache, LLMResponseCache, DEFAULT_CACHE_CONFIG, type CacheableResponse, } from './cache';
|
|
48
|
-
export { CostTracker, MODEL_PRICING, getGlobalCostTracker, resetGlobalCostTracker, } from './cost-tracker';
|
|
48
|
+
export { CostTracker, MODEL_PRICING, resolveModelPricing, getGlobalCostTracker, resetGlobalCostTracker, } from './cost-tracker';
|
|
49
49
|
export { registerProvider, tryRegisterProvider, unregisterProvider, resetProviderRegistry, isRegisteredProvider, getRegisteredProvider, listRegisteredProviders, registeredProviderTypes, createRegisteredProvider, registeredBillingDeclaration, validateProviderType, validateProviderInstance, type ProviderFactory, type ProviderRegistrationOptions, type ProviderRegistrationSource, type RegisteredProvider, } from './provider-registry';
|
|
50
50
|
export { ExternalCliProvider, validateExternalCliConfig, resolvesOnPath, DEFAULT_EXTERNAL_CLI_TIMEOUT_MS, DEFAULT_EXTERNAL_CLI_CONCURRENCY, EXTERNAL_CLI_DEFAULT_MODEL, type ExternalCliProviderConfig, } from './providers/external-cli';
|
|
51
51
|
export { registerExternalProviders, sanitizeExternalProviders, type ExternalProviderRegistrationResult, } from './router/external-provider-config';
|
|
52
52
|
export { ProviderManager, createProviderManager, createQEProviderManager, DEFAULT_PROVIDER_MANAGER_CONFIG, } from './provider-manager';
|
|
53
53
|
export { mapModelId, normalizeModelId, getCanonicalName, getModelFamily, getModelTier, isModelAvailableOnProvider, getSupportedProviders, listCanonicalModels, listModelsByProvider, listModelsByFamily, listModelsByTier, getModelMapping, MODEL_MAPPINGS, type ProviderType, type ModelMapping, } from './model-mapping';
|
|
54
|
-
export { getModelCapabilities, getModelCost, getModelInfo, listModels, findModelsByCapability, findModelsByCost, findCheapestModel, findBestModelInBudget, getRecommendedModels, getDeprecationStatus, estimateRequestCost, compareModels, MODEL_REGISTRY, type ModelCapabilities, type ModelCostInfo, type ModelInfo, } from './model-registry';
|
|
54
|
+
export { getModelCapabilities, getModelCost, getModelInfo, listModels, findModelsByCapability, findModelsByCost, findCheapestModel, findBestModelInBudget, getRecommendedModels, getDeprecationStatus, estimateRequestCost, compareModels, MODEL_REGISTRY, DEFAULT_SONNET_MODEL, DEFAULT_OPUS_MODEL, DEFAULT_HAIKU_MODEL, CLAUDE_TIER_MODELS, getClaudeModelForTier, RETIRING_MODELS, type ModelCapabilities, type ModelCostInfo, type ModelInfo, } from './model-registry';
|
|
55
55
|
export { RouterMetricsCollector, createRouterMetricsCollector, getGlobalRouterMetrics, resetGlobalRouterMetrics, CostMetricsCollector, createCostMetricsCollector, getGlobalCostMetrics, resetGlobalCostMetrics, type RoutingDecisionRecord, type ProviderCallRecord, type FallbackRecord, type RouterMetricsSummary, type ProviderMetrics as RouterProviderMetrics, type AgentMetrics, type MetricsTimeWindow, type CostRecord, type CostTrend, type CostBreakdown, type BudgetAlert, type CostOptimizationSuggestion, } from './metrics';
|
|
56
56
|
export { HybridRouter, createHybridRouter, createQERouter, } from './router';
|
|
57
57
|
export type { ExtendedProviderType, RoutingMode, RoutingDecision, RouterConfig, ChatParams, ChatResponse, FallbackChain, } from './router';
|
package/dist/shared/llm/index.js
CHANGED
|
@@ -52,7 +52,7 @@ export { CircuitBreaker, CircuitBreakerManager, DEFAULT_CIRCUIT_BREAKER_CONFIG,
|
|
|
52
52
|
// Cache
|
|
53
53
|
export { LLMCache, LLMResponseCache, DEFAULT_CACHE_CONFIG, } from './cache.js';
|
|
54
54
|
// Cost tracker
|
|
55
|
-
export { CostTracker, MODEL_PRICING, getGlobalCostTracker, resetGlobalCostTracker, } from './cost-tracker.js';
|
|
55
|
+
export { CostTracker, MODEL_PRICING, resolveModelPricing, getGlobalCostTracker, resetGlobalCostTracker, } from './cost-tracker.js';
|
|
56
56
|
// External provider registration (ADR-127 / issue #628)
|
|
57
57
|
export { registerProvider, tryRegisterProvider, unregisterProvider, resetProviderRegistry, isRegisteredProvider, getRegisteredProvider, listRegisteredProviders, registeredProviderTypes, createRegisteredProvider, registeredBillingDeclaration, validateProviderType, validateProviderInstance, } from './provider-registry.js';
|
|
58
58
|
export { ExternalCliProvider, validateExternalCliConfig, resolvesOnPath, DEFAULT_EXTERNAL_CLI_TIMEOUT_MS, DEFAULT_EXTERNAL_CLI_CONCURRENCY, EXTERNAL_CLI_DEFAULT_MODEL, } from './providers/external-cli.js';
|
|
@@ -62,7 +62,7 @@ export { ProviderManager, createProviderManager, createQEProviderManager, DEFAUL
|
|
|
62
62
|
// Model mapping (ADR-043)
|
|
63
63
|
export { mapModelId, normalizeModelId, getCanonicalName, getModelFamily, getModelTier, isModelAvailableOnProvider, getSupportedProviders, listCanonicalModels, listModelsByProvider, listModelsByFamily, listModelsByTier, getModelMapping, MODEL_MAPPINGS, } from './model-mapping.js';
|
|
64
64
|
// Model registry (ADR-043)
|
|
65
|
-
export { getModelCapabilities, getModelCost, getModelInfo, listModels, findModelsByCapability, findModelsByCost, findCheapestModel, findBestModelInBudget, getRecommendedModels, getDeprecationStatus, estimateRequestCost, compareModels, MODEL_REGISTRY, } from './model-registry.js';
|
|
65
|
+
export { getModelCapabilities, getModelCost, getModelInfo, listModels, findModelsByCapability, findModelsByCost, findCheapestModel, findBestModelInBudget, getRecommendedModels, getDeprecationStatus, estimateRequestCost, compareModels, MODEL_REGISTRY, DEFAULT_SONNET_MODEL, DEFAULT_OPUS_MODEL, DEFAULT_HAIKU_MODEL, CLAUDE_TIER_MODELS, getClaudeModelForTier, RETIRING_MODELS, } from './model-registry.js';
|
|
66
66
|
// Metrics (ADR-043 Milestone 11)
|
|
67
67
|
export { RouterMetricsCollector, createRouterMetricsCollector, getGlobalRouterMetrics, resetGlobalRouterMetrics, CostMetricsCollector, createCostMetricsCollector, getGlobalCostMetrics, resetGlobalCostMetrics, } from './metrics/index.js';
|
|
68
68
|
// HybridRouter (ADR-043: Intelligent provider routing)
|
|
@@ -178,7 +178,7 @@ export interface LLMConfig {
|
|
|
178
178
|
*/
|
|
179
179
|
export interface ClaudeConfig extends LLMConfig {
|
|
180
180
|
/** Claude model version */
|
|
181
|
-
model: 'claude-opus-4-7' | 'claude-sonnet-4-6' | 'claude-haiku-4-5-20251001' | string;
|
|
181
|
+
model: 'claude-opus-5' | 'claude-sonnet-5' | 'claude-opus-4-7' | 'claude-sonnet-4-6' | 'claude-haiku-4-5-20251001' | string;
|
|
182
182
|
/** Anthropic API version */
|
|
183
183
|
anthropicVersion?: string;
|
|
184
184
|
/** Maximum thinking tokens for extended thinking */
|
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
* - Cost optimization insights
|
|
10
10
|
*/
|
|
11
11
|
import { ALL_PROVIDER_TYPES } from '../router/types.js';
|
|
12
|
-
import {
|
|
12
|
+
import { resolveModelPricing } from '../cost-tracker.js';
|
|
13
|
+
import { DEFAULT_SONNET_MODEL } from '../model-registry.js';
|
|
13
14
|
// ============================================================================
|
|
14
15
|
// CostMetricsCollector Implementation
|
|
15
16
|
// ============================================================================
|
|
@@ -244,7 +245,7 @@ export class CostMetricsCollector {
|
|
|
244
245
|
const byModel = this.getCostByModel('24h');
|
|
245
246
|
// Check for expensive models that could use cheaper alternatives
|
|
246
247
|
for (const [model, breakdown] of byModel) {
|
|
247
|
-
const pricing =
|
|
248
|
+
const pricing = resolveModelPricing(model);
|
|
248
249
|
if (pricing && breakdown.totalCost > 1) {
|
|
249
250
|
// Suggest cheaper alternatives
|
|
250
251
|
if (model.includes('opus')) {
|
|
@@ -253,7 +254,7 @@ export class CostMetricsCollector {
|
|
|
253
254
|
description: `Consider using Sonnet instead of Opus for non-critical tasks`,
|
|
254
255
|
estimatedSavings: breakdown.totalCost * 0.5,
|
|
255
256
|
currentCost: breakdown.totalCost,
|
|
256
|
-
suggestedModel:
|
|
257
|
+
suggestedModel: DEFAULT_SONNET_MODEL,
|
|
257
258
|
});
|
|
258
259
|
}
|
|
259
260
|
if (model === 'gpt-4o') {
|
|
@@ -330,7 +331,7 @@ export class CostMetricsCollector {
|
|
|
330
331
|
// Private Helper Methods
|
|
331
332
|
// ==========================================================================
|
|
332
333
|
calculateCost(model, inputTokens, outputTokens) {
|
|
333
|
-
const pricing =
|
|
334
|
+
const pricing = resolveModelPricing(model);
|
|
334
335
|
if (!pricing) {
|
|
335
336
|
return {
|
|
336
337
|
inputCost: 0,
|