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
package/dist/plugins/resolver.js
CHANGED
|
@@ -1,80 +1,188 @@
|
|
|
1
|
-
|
|
2
|
-
* Agentic QE v3 - Plugin Dependency Resolver (IMP-09)
|
|
3
|
-
*
|
|
4
|
-
* DFS dependency resolution with cycle detection.
|
|
5
|
-
* Given a set of plugin manifests, produces a topologically-sorted
|
|
6
|
-
* load order where dependencies are loaded before dependents.
|
|
7
|
-
*/
|
|
8
|
-
// ============================================================================
|
|
9
|
-
// PluginResolver
|
|
10
|
-
// ============================================================================
|
|
1
|
+
import { AQE_VERSION, validVersion, validRange, compareVersions, newestVersionFirst, satisfiesVersion, } from './version-policy.js';
|
|
11
2
|
export class PluginResolver {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
3
|
+
aqeVersion;
|
|
4
|
+
constructor(aqeVersion = AQE_VERSION) {
|
|
5
|
+
this.aqeVersion = aqeVersion;
|
|
6
|
+
}
|
|
7
|
+
resolve(manifests, roots) {
|
|
8
|
+
const groups = new Map();
|
|
9
|
+
const rejected = new Map();
|
|
10
|
+
for (const manifest of manifests) {
|
|
11
|
+
const candidates = groups.get(manifest.name) ?? [];
|
|
12
|
+
groups.set(manifest.name, candidates);
|
|
13
|
+
const error = this.validateVersions(manifest);
|
|
14
|
+
if (error)
|
|
15
|
+
rejected.set(manifest.name, [...(rejected.get(manifest.name) ?? []), error]);
|
|
16
|
+
else
|
|
17
|
+
candidates.push(manifest);
|
|
18
|
+
}
|
|
19
|
+
for (const candidates of groups.values()) {
|
|
20
|
+
candidates.sort((a, b) => newestVersionFirst(a.version, b.version));
|
|
23
21
|
}
|
|
24
|
-
const ordered = [];
|
|
25
|
-
const visited = new Set();
|
|
26
|
-
const visiting = new Set(); // cycle detection (gray nodes)
|
|
27
22
|
const missing = new Map();
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
23
|
+
const errors = [];
|
|
24
|
+
const result = (ordered) => ({
|
|
25
|
+
ordered: ordered.map((manifest, order) => ({ manifest, order })), missing, errors,
|
|
26
|
+
selectedVersions: Object.fromEntries(ordered.map(m => [m.name, m.version])),
|
|
27
|
+
aqeVersion: this.aqeVersion,
|
|
28
|
+
});
|
|
29
|
+
const names = [...(roots ?? groups.keys())].sort();
|
|
30
|
+
const required = new Set(names);
|
|
31
|
+
const selected = new Map();
|
|
32
|
+
let attempts = 0;
|
|
33
|
+
let limited = false;
|
|
34
|
+
const compatible = () => {
|
|
35
|
+
for (const manifest of selected.values()) {
|
|
36
|
+
for (const [dep, range] of Object.entries(manifest.dependencies ?? {})) {
|
|
37
|
+
const chosen = selected.get(dep);
|
|
38
|
+
const candidates = chosen ? [chosen] : groups.get(dep) ?? [];
|
|
39
|
+
if (!candidates.some(candidate => satisfiesVersion(candidate.version, range)))
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
34
42
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
43
|
+
return true;
|
|
44
|
+
};
|
|
45
|
+
let cycle;
|
|
46
|
+
const findCycle = () => {
|
|
47
|
+
const visited = new Set();
|
|
48
|
+
const visiting = new Set();
|
|
49
|
+
const visit = (name, path) => {
|
|
50
|
+
if (visiting.has(name))
|
|
51
|
+
return [...path.slice(path.indexOf(name)), name];
|
|
52
|
+
if (visited.has(name))
|
|
53
|
+
return;
|
|
54
|
+
visiting.add(name);
|
|
55
|
+
for (const dependency of Object.keys(selected.get(name)?.dependencies ?? {})) {
|
|
56
|
+
const found = visit(dependency, [...path, name]);
|
|
57
|
+
if (found)
|
|
58
|
+
return found;
|
|
59
|
+
}
|
|
60
|
+
visiting.delete(name);
|
|
61
|
+
visited.add(name);
|
|
62
|
+
return undefined;
|
|
63
|
+
};
|
|
64
|
+
for (const name of selected.keys()) {
|
|
65
|
+
const found = visit(name, []);
|
|
66
|
+
if (found)
|
|
67
|
+
return found;
|
|
39
68
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
const
|
|
44
|
-
for (const
|
|
45
|
-
|
|
46
|
-
|
|
69
|
+
return undefined;
|
|
70
|
+
};
|
|
71
|
+
const choose = () => {
|
|
72
|
+
const pending = new Set(names);
|
|
73
|
+
for (const manifest of selected.values()) {
|
|
74
|
+
for (const name of Object.keys(manifest.dependencies ?? {}))
|
|
75
|
+
pending.add(name);
|
|
76
|
+
}
|
|
77
|
+
const name = [...pending].sort().find(name => !selected.has(name));
|
|
78
|
+
if (!name) {
|
|
79
|
+
const found = findCycle();
|
|
80
|
+
if (found) {
|
|
81
|
+
cycle = found;
|
|
82
|
+
return false;
|
|
47
83
|
}
|
|
48
|
-
|
|
49
|
-
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
required.add(name);
|
|
87
|
+
for (const candidate of groups.get(name) ?? []) {
|
|
88
|
+
if (++attempts > 10_000) {
|
|
89
|
+
limited = true;
|
|
90
|
+
return false;
|
|
50
91
|
}
|
|
92
|
+
selected.set(name, candidate);
|
|
93
|
+
if (compatible() && choose())
|
|
94
|
+
return true;
|
|
95
|
+
selected.delete(name);
|
|
96
|
+
if (limited)
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
return false;
|
|
100
|
+
};
|
|
101
|
+
if (!choose()) {
|
|
102
|
+
if (cycle && !limited)
|
|
103
|
+
throw new Error(`Dependency cycle detected: ${cycle.join(' -> ')}`);
|
|
104
|
+
for (const name of required) {
|
|
105
|
+
if (!groups.get(name)?.length)
|
|
106
|
+
errors.push(...(rejected.get(name) ?? []));
|
|
51
107
|
}
|
|
52
|
-
|
|
53
|
-
|
|
108
|
+
for (const [name, candidates] of groups) {
|
|
109
|
+
const absent = [...new Set(candidates.flatMap(m => Object.keys(m.dependencies ?? {})))].filter(dep => !groups.has(dep));
|
|
110
|
+
if (absent.length)
|
|
111
|
+
missing.set(name, absent);
|
|
54
112
|
}
|
|
113
|
+
errors.push({
|
|
114
|
+
code: limited ? 'RESOLUTION_LIMIT' : missing.size ? 'MISSING_DEPENDENCY' : 'UNSATISFIED_DEPENDENCY_RANGE',
|
|
115
|
+
plugin: names.join(', '),
|
|
116
|
+
message: limited ? 'Plugin dependency search exceeded 10000 candidates' : 'No cached plugin selection satisfies all dependency ranges',
|
|
117
|
+
});
|
|
118
|
+
return result([]);
|
|
119
|
+
}
|
|
120
|
+
const ordered = [];
|
|
121
|
+
const visited = new Set();
|
|
122
|
+
const visiting = new Set();
|
|
123
|
+
const visit = (name, path) => {
|
|
124
|
+
if (visited.has(name))
|
|
125
|
+
return;
|
|
126
|
+
if (visiting.has(name))
|
|
127
|
+
throw new Error(`Dependency cycle detected: ${[...path.slice(path.indexOf(name)), name].join(' -> ')}`);
|
|
128
|
+
visiting.add(name);
|
|
129
|
+
const manifest = selected.get(name);
|
|
130
|
+
for (const dep of Object.keys(manifest.dependencies ?? {}))
|
|
131
|
+
visit(dep, [...path, name]);
|
|
55
132
|
visiting.delete(name);
|
|
56
133
|
visited.add(name);
|
|
57
134
|
ordered.push(manifest);
|
|
58
135
|
};
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
136
|
+
for (const name of [...selected.keys()].sort())
|
|
137
|
+
visit(name, []);
|
|
138
|
+
return result(ordered);
|
|
139
|
+
}
|
|
140
|
+
/** Startup is best-effort: retain admitted roots when another root fails. */
|
|
141
|
+
resolveAvailable(manifests) {
|
|
142
|
+
const accepted = [];
|
|
143
|
+
let result = this.resolve(manifests, []);
|
|
144
|
+
const errors = [];
|
|
145
|
+
const missing = new Map();
|
|
146
|
+
for (const name of [...new Set(manifests.map(m => m.name))].sort()) {
|
|
147
|
+
try {
|
|
148
|
+
// Re-solve together so shared dependency versions remain compatible.
|
|
149
|
+
// A failed candidate cannot invalidate the last successful selection.
|
|
150
|
+
const candidate = this.resolve(manifests, [...accepted, name]);
|
|
151
|
+
if (candidate.errors.length) {
|
|
152
|
+
errors.push(...candidate.errors.map(error => ({ ...error, plugin: name })));
|
|
153
|
+
for (const [plugin, dependencies] of candidate.missing)
|
|
154
|
+
missing.set(plugin, dependencies);
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
157
|
+
accepted.push(name);
|
|
158
|
+
result = candidate;
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
errors.push({ code: 'DEPENDENCY_CYCLE', plugin: name,
|
|
162
|
+
message: error instanceof Error ? error.message : String(error) });
|
|
163
|
+
}
|
|
62
164
|
}
|
|
63
|
-
return {
|
|
64
|
-
ordered: ordered.map((manifest, index) => ({ manifest, order: index })),
|
|
65
|
-
missing,
|
|
66
|
-
};
|
|
165
|
+
return { ...result, errors, missing };
|
|
67
166
|
}
|
|
68
|
-
/**
|
|
69
|
-
* Check if a specific plugin can be loaded given the currently loaded set.
|
|
70
|
-
*/
|
|
167
|
+
/** Version-constrained dependencies require versions, not a legacy name-only Set. */
|
|
71
168
|
canLoad(manifest, loaded) {
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
169
|
+
const missingDeps = Object.entries(manifest.dependencies ?? {}).filter(([name, range]) => {
|
|
170
|
+
const version = loaded instanceof Set ? undefined : loaded.get(name);
|
|
171
|
+
return !version || !validRange(range) || !satisfiesVersion(version, range);
|
|
172
|
+
}).map(([name]) => name);
|
|
173
|
+
return { canLoad: !this.validateVersions(manifest) && missingDeps.length === 0, missingDeps };
|
|
174
|
+
}
|
|
175
|
+
validateVersions(manifest) {
|
|
176
|
+
if (!validVersion(manifest.version))
|
|
177
|
+
return { code: 'INVALID_PLUGIN_VERSION', plugin: manifest.name, message: 'Invalid plugin version' };
|
|
178
|
+
for (const range of Object.values(manifest.dependencies ?? {})) {
|
|
179
|
+
if (!validRange(range))
|
|
180
|
+
return { code: 'INVALID_DEPENDENCY_RANGE', plugin: manifest.name, message: 'Invalid dependency range' };
|
|
181
|
+
}
|
|
182
|
+
if (manifest.minAqeVersion && (!validVersion(manifest.minAqeVersion) || !validVersion(this.aqeVersion) || compareVersions(this.aqeVersion, manifest.minAqeVersion) < 0)) {
|
|
183
|
+
return { code: 'AQE_VERSION_INCOMPATIBLE', plugin: manifest.name, message: `Requires AQE ${manifest.minAqeVersion}; running ${this.aqeVersion}` };
|
|
184
|
+
}
|
|
185
|
+
return undefined;
|
|
78
186
|
}
|
|
79
187
|
}
|
|
80
188
|
//# sourceMappingURL=resolver.js.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const AQE_VERSION: string;
|
|
2
|
+
export declare const validVersion: (value: unknown) => boolean;
|
|
3
|
+
export declare const validRange: (value: string) => boolean;
|
|
4
|
+
export declare const satisfiesVersion: (version: string, range: string) => boolean;
|
|
5
|
+
export declare const compareVersions: (a: string, b: string) => number;
|
|
6
|
+
/** Equal-precedence build metadata has a stable lexical tie-break, not higher precedence. */
|
|
7
|
+
export declare const newestVersionFirst: (a: string, b: string) => number;
|
|
8
|
+
export interface PluginVersionFailure {
|
|
9
|
+
code: 'INVALID_PLUGIN_VERSION' | 'INVALID_DEPENDENCY_RANGE' | 'MISSING_DEPENDENCY' | 'DEPENDENCY_CYCLE' | 'UNSATISFIED_DEPENDENCY_RANGE' | 'AQE_VERSION_INCOMPATIBLE' | 'RESOLUTION_LIMIT';
|
|
10
|
+
plugin: string;
|
|
11
|
+
message: string;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=version-policy.d.ts.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/** npm SemVer is the single oracle for plugin versions and ranges. */
|
|
2
|
+
import { createRequire } from 'node:module';
|
|
3
|
+
const require = createRequire(import.meta.url);
|
|
4
|
+
const semver = require('semver');
|
|
5
|
+
export const AQE_VERSION = typeof __CLI_VERSION__ !== 'undefined' ? __CLI_VERSION__
|
|
6
|
+
: typeof __MCP_VERSION__ !== 'undefined' ? __MCP_VERSION__
|
|
7
|
+
: require('../../package.json').version;
|
|
8
|
+
// semver.valid drops build metadata; retain valid metadata but reject normalized
|
|
9
|
+
// prefixes/whitespace so cache directory names remain canonical.
|
|
10
|
+
// Cached manifests are untrusted JSON (older releases admitted a non-string
|
|
11
|
+
// minAqeVersion), so a non-string must be rejected here rather than throw.
|
|
12
|
+
export const validVersion = (value) => typeof value === 'string' && semver.valid(value) === value.split('+')[0];
|
|
13
|
+
export const validRange = (value) => semver.validRange(value) !== null;
|
|
14
|
+
export const satisfiesVersion = (version, range) => semver.satisfies(version, range);
|
|
15
|
+
export const compareVersions = (a, b) => semver.compare(a, b);
|
|
16
|
+
/** Equal-precedence build metadata has a stable lexical tie-break, not higher precedence. */
|
|
17
|
+
export const newestVersionFirst = (a, b) => compareVersions(b, a) || a.localeCompare(b);
|
|
18
|
+
//# sourceMappingURL=version-policy.js.map
|
|
@@ -26,9 +26,12 @@ import { type CircuitBreakerState } from './circuit-breaker.js';
|
|
|
26
26
|
* ADR-093 (2026-04-17): default advisor model upgraded from Opus 4 to Opus 4.7.
|
|
27
27
|
* SWE-bench Verified 87.6% (vs 80.8% on 4.6), new `xhigh` effort level,
|
|
28
28
|
* 1M context at standard pricing, adaptive thinking.
|
|
29
|
+
*
|
|
30
|
+
* 2026-09 model refresh: follows DEFAULT_OPUS_MODEL (Claude Opus 5.5), in its
|
|
31
|
+
* OpenRouter form.
|
|
29
32
|
*/
|
|
30
33
|
export declare const DEFAULT_ADVISOR_PROVIDER: ExtendedProviderType;
|
|
31
|
-
export declare const DEFAULT_ADVISOR_MODEL
|
|
34
|
+
export declare const DEFAULT_ADVISOR_MODEL: string;
|
|
32
35
|
export declare const DEFAULT_MAX_WORDS = 100;
|
|
33
36
|
/**
|
|
34
37
|
* Phase 0 MultiModelExecutor implementation.
|
|
@@ -18,6 +18,8 @@ import { createHash } from 'crypto';
|
|
|
18
18
|
import { redact, validateProviderForAgent, isSelfHosted, } from './redaction.js';
|
|
19
19
|
import { AdvisorCircuitBreaker } from './circuit-breaker.js';
|
|
20
20
|
import { applyCyberPin, CYBER_PIN_ADVISOR_FALLBACK } from '../security/cyber-pin.js';
|
|
21
|
+
import { DEFAULT_OPUS_MODEL } from '../../shared/llm/model-registry.js';
|
|
22
|
+
import { mapModelId } from '../../shared/llm/model-mapping.js';
|
|
21
23
|
/**
|
|
22
24
|
* Default advisor model per ADR-092 Phase 0 and ADR-093.
|
|
23
25
|
* OpenRouter exposes Anthropic Opus — chosen for vendor-independence as the
|
|
@@ -26,9 +28,14 @@ import { applyCyberPin, CYBER_PIN_ADVISOR_FALLBACK } from '../security/cyber-pin
|
|
|
26
28
|
* ADR-093 (2026-04-17): default advisor model upgraded from Opus 4 to Opus 4.7.
|
|
27
29
|
* SWE-bench Verified 87.6% (vs 80.8% on 4.6), new `xhigh` effort level,
|
|
28
30
|
* 1M context at standard pricing, adaptive thinking.
|
|
31
|
+
*
|
|
32
|
+
* 2026-09 model refresh: follows DEFAULT_OPUS_MODEL (Claude Opus 5.5), in its
|
|
33
|
+
* OpenRouter form.
|
|
29
34
|
*/
|
|
30
35
|
export const DEFAULT_ADVISOR_PROVIDER = 'openrouter';
|
|
31
|
-
|
|
36
|
+
// OpenRouter IDs use dotted versions (anthropic/claude-opus-5.5), so map
|
|
37
|
+
// rather than prefix the canonical ID.
|
|
38
|
+
export const DEFAULT_ADVISOR_MODEL = mapModelId(DEFAULT_OPUS_MODEL, 'openrouter');
|
|
32
39
|
export const DEFAULT_MAX_WORDS = 100;
|
|
33
40
|
// ADR-093: cyber-pin helpers moved to src/routing/security/cyber-pin.ts
|
|
34
41
|
// so HybridRouter.chat() can also apply the pin — direct chat calls must
|
|
@@ -12,7 +12,8 @@ import type { AgentTier } from '../routing-config.js';
|
|
|
12
12
|
/**
|
|
13
13
|
* A ready-to-use, opinionated default: a free local Ollama tier under the three
|
|
14
14
|
* Claude tiers. Override `bindings.local.config.model` / `.kind` to point at
|
|
15
|
-
* cloud Ollama, OpenRouter, or any compatible endpoint.
|
|
15
|
+
* cloud Ollama, OpenRouter, or any compatible endpoint. The default local model
|
|
16
|
+
* is qwen3-coder:30b (ADR-111); qwen3:8b is below the QE test-gen quality floor.
|
|
16
17
|
*/
|
|
17
18
|
export declare function defaultFreeTierLadder(model?: string): QeRoutingLadder;
|
|
18
19
|
/** Validate a ladder: every tier in `tierOrder` must have a binding, bounds must exist. */
|
|
@@ -11,9 +11,10 @@ import { resolveFreeTierProvider } from './provider.js';
|
|
|
11
11
|
/**
|
|
12
12
|
* A ready-to-use, opinionated default: a free local Ollama tier under the three
|
|
13
13
|
* Claude tiers. Override `bindings.local.config.model` / `.kind` to point at
|
|
14
|
-
* cloud Ollama, OpenRouter, or any compatible endpoint.
|
|
14
|
+
* cloud Ollama, OpenRouter, or any compatible endpoint. The default local model
|
|
15
|
+
* is qwen3-coder:30b (ADR-111); qwen3:8b is below the QE test-gen quality floor.
|
|
15
16
|
*/
|
|
16
|
-
export function defaultFreeTierLadder(model = 'qwen3:
|
|
17
|
+
export function defaultFreeTierLadder(model = 'qwen3-coder:30b') {
|
|
17
18
|
return {
|
|
18
19
|
tierOrder: ['local', 'haiku', 'sonnet', 'opus'],
|
|
19
20
|
minTier: 'local',
|
|
@@ -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
|
|
@@ -23,21 +35,27 @@
|
|
|
23
35
|
*/
|
|
24
36
|
export declare const CYBER_PINNED_AGENTS: readonly string[];
|
|
25
37
|
/**
|
|
26
|
-
* Fallback advisor model for cyber-pinned agents
|
|
38
|
+
* Fallback advisor model for cyber-pinned agents, in OpenRouter form.
|
|
27
39
|
* Used by MultiModelExecutor.consult.
|
|
28
40
|
*/
|
|
29
|
-
export declare const CYBER_PIN_ADVISOR_FALLBACK
|
|
41
|
+
export declare const CYBER_PIN_ADVISOR_FALLBACK: string;
|
|
30
42
|
/**
|
|
31
43
|
* Fallback chat model for cyber-pinned agents when targeting the Anthropic
|
|
32
44
|
* provider directly. Used by HybridRouter.chat.
|
|
33
45
|
*/
|
|
34
46
|
export declare const CYBER_PIN_CHAT_FALLBACK = "claude-sonnet-4-6";
|
|
35
47
|
/**
|
|
36
|
-
* Returns true if the model ID
|
|
37
|
-
*
|
|
38
|
-
*
|
|
48
|
+
* Returns true if the model ID is an Opus- or Fable-class model at or above
|
|
49
|
+
* 4.7 (claude-opus-4-7, claude-opus-4-8, claude-opus-5, claude-opus-5-5,
|
|
50
|
+
* claude-fable-5, claude-fable-5-1, …) in canonical, OpenRouter or Bedrock
|
|
51
|
+
* form. Sonnet, Haiku and Opus below 4.7 are not gated.
|
|
52
|
+
*/
|
|
53
|
+
export declare function isCyberGatedModel(modelId: string): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* @deprecated Use {@link isCyberGatedModel}. Kept as an alias for existing
|
|
56
|
+
* callers; it matches every cyber-gated model, not only Opus 4.7.
|
|
39
57
|
*/
|
|
40
|
-
export declare
|
|
58
|
+
export declare const isOpus47: typeof isCyberGatedModel;
|
|
41
59
|
/**
|
|
42
60
|
* Returns true if the agent is cyber-pinned and env does not grant
|
|
43
61
|
* Cyber Verification bypass. Case-sensitive "true" only — '1', 'yes',
|
|
@@ -55,4 +73,10 @@ export declare function shouldCyberPin(agentName: string, env?: NodeJS.ProcessEn
|
|
|
55
73
|
* or `fallback` if pin fires.
|
|
56
74
|
*/
|
|
57
75
|
export declare function applyCyberPin(agentName: string, requestedModel: string, fallback: string, env?: NodeJS.ProcessEnv): string;
|
|
76
|
+
/**
|
|
77
|
+
* The pinned Sonnet 4.6 fallback in the model-ID form a given provider
|
|
78
|
+
* expects, so a pinned request stays routable (OpenRouter needs the dotted
|
|
79
|
+
* `anthropic/…` slug, Bedrock the `anthropic.…-v1:0` form).
|
|
80
|
+
*/
|
|
81
|
+
export declare function cyberPinFallbackFor(provider: string): string;
|
|
58
82
|
//# sourceMappingURL=cyber-pin.d.ts.map
|
|
@@ -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
|