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
|
@@ -29,7 +29,7 @@ handleTeamList, handleTeamHealth, handleTeamMessage, handleTeamBroadcast, handle
|
|
|
29
29
|
// BMAD-003: Validation pipeline handler
|
|
30
30
|
handleValidationPipeline,
|
|
31
31
|
// Imp-9: YAML pipeline handlers
|
|
32
|
-
handlePipelineLoad, handlePipelineRun, handlePipelineList, handlePipelineValidate,
|
|
32
|
+
handlePipelineLoad, handlePipelineRun, handlePipelineStatus, handlePipelineApprove, handlePipelineReject, handlePipelineList, handlePipelineValidate,
|
|
33
33
|
// Cross-phase handlers
|
|
34
34
|
handleCrossPhaseStore, handleCrossPhaseQuery, handleAgentComplete, handlePhaseStart, handlePhaseEnd, handleCrossPhaseStats, handleFormatSignals, handleCrossPhaseCleanup,
|
|
35
35
|
// ADR-072: RVF Migration handlers
|
|
@@ -44,6 +44,19 @@ import { ToolCallSignatureTracker } from '../kernel/anti-drift-middleware.js';
|
|
|
44
44
|
import { createRequire } from 'module';
|
|
45
45
|
const _require = createRequire(import.meta.url);
|
|
46
46
|
const _pkg = _require('../../package.json');
|
|
47
|
+
function toolExecutionError() {
|
|
48
|
+
return {
|
|
49
|
+
content: [{
|
|
50
|
+
type: 'text',
|
|
51
|
+
text: JSON.stringify({
|
|
52
|
+
success: false,
|
|
53
|
+
code: 'tool_execution_error',
|
|
54
|
+
error: 'Tool execution failed',
|
|
55
|
+
}),
|
|
56
|
+
}],
|
|
57
|
+
isError: true,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
47
60
|
// ============================================================================
|
|
48
61
|
// MCP Protocol Server
|
|
49
62
|
// ============================================================================
|
|
@@ -81,6 +94,15 @@ export class MCPProtocolServer {
|
|
|
81
94
|
return false;
|
|
82
95
|
return true;
|
|
83
96
|
}
|
|
97
|
+
/** A completed tool can legitimately report a negative domain verdict. */
|
|
98
|
+
isFailedToolResult(result) {
|
|
99
|
+
if (!result || typeof result !== 'object')
|
|
100
|
+
return false;
|
|
101
|
+
const value = result;
|
|
102
|
+
if (value.isError === true || value.success === false)
|
|
103
|
+
return true;
|
|
104
|
+
return value.success !== true && typeof value.error === 'string' && value.error.length > 0;
|
|
105
|
+
}
|
|
84
106
|
config;
|
|
85
107
|
transport;
|
|
86
108
|
registry;
|
|
@@ -167,14 +189,10 @@ export class MCPProtocolServer {
|
|
|
167
189
|
}
|
|
168
190
|
// Last-resort safety net: catch anything else that escapes handleToolsCall
|
|
169
191
|
// to prevent MCP connection from being killed (-32000)
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
type: 'text',
|
|
175
|
-
text: JSON.stringify({ success: false, error: `Internal error: ${message}` }),
|
|
176
|
-
}],
|
|
177
|
-
};
|
|
192
|
+
console.error('[MCP] Unhandled error in request handler:', err);
|
|
193
|
+
if (request.method === 'tools/call')
|
|
194
|
+
return toolExecutionError();
|
|
195
|
+
throw new McpError(JSON_RPC_ERRORS.INTERNAL_ERROR, 'Internal server error');
|
|
178
196
|
}
|
|
179
197
|
});
|
|
180
198
|
// Set up notification handler
|
|
@@ -220,7 +238,7 @@ export class MCPProtocolServer {
|
|
|
220
238
|
const result = await this.handleRequest(request);
|
|
221
239
|
resolve(result);
|
|
222
240
|
}
|
|
223
|
-
catch
|
|
241
|
+
catch {
|
|
224
242
|
console.error(`[MCP] Failed to replay buffered request: ${request.method}`);
|
|
225
243
|
}
|
|
226
244
|
}
|
|
@@ -389,6 +407,7 @@ export class MCPProtocolServer {
|
|
|
389
407
|
// ADR-039: Track tool invocation with performance monitoring
|
|
390
408
|
const startTime = performance.now();
|
|
391
409
|
let success = false;
|
|
410
|
+
let cacheable;
|
|
392
411
|
// Emit AG-UI progress event for tool start
|
|
393
412
|
const stepId = `${name}-${Date.now()}`;
|
|
394
413
|
this.eventAdapter.adapt({
|
|
@@ -408,7 +427,10 @@ export class MCPProtocolServer {
|
|
|
408
427
|
};
|
|
409
428
|
// ADR-062: Loop detection — check for repeated identical tool calls
|
|
410
429
|
let loopSteeringPrefix = '';
|
|
411
|
-
|
|
430
|
+
// Polling a known execution is a normal status protocol, not a repeated
|
|
431
|
+
// action loop. The default three-strike detector would block the third
|
|
432
|
+
// pipeline_status call within 30 seconds while a workflow is running.
|
|
433
|
+
if (process.env.AQE_LOOP_DETECTION_ENABLED !== 'false' && name !== 'pipeline_status') {
|
|
412
434
|
try {
|
|
413
435
|
const loopResult = this.loopTracker.trackCall('mcp-client', name, args);
|
|
414
436
|
if (loopResult.action === 'steer') {
|
|
@@ -434,20 +456,28 @@ export class MCPProtocolServer {
|
|
|
434
456
|
// the same output, so we can short-circuit repeated calls with an O(1)
|
|
435
457
|
// fingerprint lookup. Tools without isConcurrencySafe (writes, scans,
|
|
436
458
|
// executions) always re-run.
|
|
437
|
-
|
|
459
|
+
// Explicit quality gates depend on current measured evidence and its age,
|
|
460
|
+
// not just arguments. A cached approval can outlive or contradict evidence.
|
|
461
|
+
const measuredQualityGate = name === 'quality_assess' && processedCtx.params?.runGate === true;
|
|
462
|
+
cacheable = tool.definition.isConcurrencySafe === true && !measuredQualityGate;
|
|
438
463
|
let cacheFingerprint = null;
|
|
464
|
+
let cacheGeneration = null;
|
|
439
465
|
if (cacheable && process.env.AQE_SESSION_CACHE !== 'off') {
|
|
440
466
|
try {
|
|
441
467
|
const { getSessionCache } = await import('../optimization/session-cache.js');
|
|
442
468
|
const cache = getSessionCache();
|
|
443
469
|
const { domain, action } = parseToolDomainAction(name);
|
|
470
|
+
cacheGeneration = cache.getGeneration();
|
|
444
471
|
cacheFingerprint = cache.computeFingerprint(domain, action, processedCtx.params || {});
|
|
445
472
|
const hit = cache.get(cacheFingerprint);
|
|
446
473
|
if (hit) {
|
|
447
474
|
// Cache hit — return the stored result without running the handler.
|
|
448
475
|
const cachedText = JSON.stringify(hit.result, null, 2);
|
|
476
|
+
if (typeof cachedText !== 'string')
|
|
477
|
+
throw new Error('Missing cached tool result');
|
|
478
|
+
const cachedSuccess = !this.isFailedToolResult(hit.result);
|
|
449
479
|
this.eventAdapter.adapt({
|
|
450
|
-
success:
|
|
480
|
+
success: cachedSuccess,
|
|
451
481
|
data: hit.result,
|
|
452
482
|
metadata: {
|
|
453
483
|
executionTime: performance.now() - startTime,
|
|
@@ -456,12 +486,13 @@ export class MCPProtocolServer {
|
|
|
456
486
|
toolName: name,
|
|
457
487
|
},
|
|
458
488
|
});
|
|
459
|
-
success =
|
|
489
|
+
success = cachedSuccess;
|
|
460
490
|
return {
|
|
461
491
|
content: [{
|
|
462
492
|
type: 'text',
|
|
463
493
|
text: loopSteeringPrefix ? loopSteeringPrefix + cachedText : cachedText,
|
|
464
494
|
}],
|
|
495
|
+
...(cachedSuccess ? {} : { isError: true }),
|
|
465
496
|
};
|
|
466
497
|
}
|
|
467
498
|
}
|
|
@@ -471,36 +502,26 @@ export class MCPProtocolServer {
|
|
|
471
502
|
}
|
|
472
503
|
}
|
|
473
504
|
const result = await tool.handler(processedCtx.params);
|
|
474
|
-
success = true;
|
|
475
505
|
// IMP-00: Execute post-tool-result middleware
|
|
476
506
|
const processedResult = await this.middlewareChain.executePostHooks(processedCtx, result);
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
/_(store|delete|set|share|update|remove|clear|promote|cleanup)$/.test(name) &&
|
|
484
|
-
this.isSuccessfulResult(processedResult)) {
|
|
485
|
-
try {
|
|
486
|
-
const { getSessionCache } = await import('../optimization/session-cache.js');
|
|
487
|
-
const { domain } = parseToolDomainAction(name);
|
|
488
|
-
getSessionCache().invalidateDomain(domain);
|
|
489
|
-
}
|
|
490
|
-
catch {
|
|
491
|
-
// never block tool execution on cache invalidation
|
|
492
|
-
}
|
|
493
|
-
}
|
|
507
|
+
if (processedResult === null)
|
|
508
|
+
throw new Error('Missing tool result');
|
|
509
|
+
const resultText = JSON.stringify(processedResult, null, 2);
|
|
510
|
+
if (typeof resultText !== 'string')
|
|
511
|
+
throw new Error('Missing tool result');
|
|
512
|
+
const resultSucceeded = !this.isFailedToolResult(processedResult);
|
|
494
513
|
// Issue #473: Store successful results for future cache hits.
|
|
495
514
|
// Only cache successful results — error objects shouldn't be served back.
|
|
496
515
|
if (cacheable && cacheFingerprint && this.isSuccessfulResult(processedResult)) {
|
|
497
516
|
try {
|
|
498
517
|
const { getSessionCache } = await import('../optimization/session-cache.js');
|
|
499
518
|
const cache = getSessionCache();
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
519
|
+
if (cache.getGeneration() === cacheGeneration) {
|
|
520
|
+
const { domain, action } = parseToolDomainAction(name);
|
|
521
|
+
// Estimate tokens conservatively by length-of-JSON / 4 chars-per-token.
|
|
522
|
+
const tokenEstimate = Math.max(50, Math.floor(JSON.stringify(processedResult).length / 4));
|
|
523
|
+
cache.set(cacheFingerprint, domain, action, processedResult, tokenEstimate);
|
|
524
|
+
}
|
|
504
525
|
}
|
|
505
526
|
catch {
|
|
506
527
|
// never block on cache write
|
|
@@ -508,14 +529,14 @@ export class MCPProtocolServer {
|
|
|
508
529
|
}
|
|
509
530
|
// Emit AG-UI result event for tool completion
|
|
510
531
|
this.eventAdapter.adapt({
|
|
511
|
-
success:
|
|
532
|
+
success: resultSucceeded,
|
|
512
533
|
data: processedResult,
|
|
513
534
|
metadata: {
|
|
514
535
|
executionTime: performance.now() - startTime,
|
|
515
536
|
requestId: stepId,
|
|
516
537
|
},
|
|
517
538
|
});
|
|
518
|
-
|
|
539
|
+
success = resultSucceeded;
|
|
519
540
|
return {
|
|
520
541
|
content: [
|
|
521
542
|
{
|
|
@@ -523,10 +544,14 @@ export class MCPProtocolServer {
|
|
|
523
544
|
text: loopSteeringPrefix ? loopSteeringPrefix + resultText : resultText,
|
|
524
545
|
},
|
|
525
546
|
],
|
|
547
|
+
...(resultSucceeded ? {} : { isError: true }),
|
|
526
548
|
};
|
|
527
549
|
}
|
|
528
550
|
catch (err) {
|
|
529
|
-
|
|
551
|
+
// Preserve the diagnostic for operators without exposing it in the MCP
|
|
552
|
+
// response or AG-UI event. Stderr keeps stdio protocol output valid.
|
|
553
|
+
console.error(`[MCP] Tool ${name} failed:`, err);
|
|
554
|
+
const error = err instanceof Error ? err : new Error('Tool execution failed');
|
|
530
555
|
// IMP-08: Detect context overflow (413) and trigger reactive compaction
|
|
531
556
|
const errorMsg = error.message || '';
|
|
532
557
|
const is413 = errorMsg.includes('413')
|
|
@@ -546,22 +571,27 @@ export class MCPProtocolServer {
|
|
|
546
571
|
// Emit AG-UI result event for tool failure
|
|
547
572
|
this.eventAdapter.adapt({
|
|
548
573
|
success: false,
|
|
549
|
-
error:
|
|
574
|
+
error: 'Tool execution failed',
|
|
550
575
|
metadata: {
|
|
551
576
|
executionTime: performance.now() - startTime,
|
|
552
577
|
requestId: stepId,
|
|
553
578
|
},
|
|
554
579
|
});
|
|
555
|
-
return
|
|
556
|
-
content: [
|
|
557
|
-
{
|
|
558
|
-
type: 'text',
|
|
559
|
-
text: JSON.stringify({ error: error.message || 'Tool execution failed' }),
|
|
560
|
-
},
|
|
561
|
-
],
|
|
562
|
-
};
|
|
580
|
+
return toolExecutionError();
|
|
563
581
|
}
|
|
564
582
|
finally {
|
|
583
|
+
// Tool names and success flags do not prove whether state changed.
|
|
584
|
+
// Unknown cross-domain effects require a global flush, including after
|
|
585
|
+
// a handler throws or reports failure following a partial effect.
|
|
586
|
+
if (cacheable === false && process.env.AQE_SESSION_CACHE !== 'off') {
|
|
587
|
+
try {
|
|
588
|
+
const { getSessionCache } = await import('../optimization/session-cache.js');
|
|
589
|
+
getSessionCache().invalidateAll();
|
|
590
|
+
}
|
|
591
|
+
catch {
|
|
592
|
+
// Cache failure must not hide the tool response.
|
|
593
|
+
}
|
|
594
|
+
}
|
|
565
595
|
// Record actual MCP tool execution latency
|
|
566
596
|
const latency = performance.now() - startTime;
|
|
567
597
|
this.monitor.recordLatency(name, latency, success);
|
|
@@ -652,7 +682,7 @@ export class MCPProtocolServer {
|
|
|
652
682
|
this.registerTool({
|
|
653
683
|
definition: {
|
|
654
684
|
name: 'task_cancel',
|
|
655
|
-
description: '
|
|
685
|
+
description: 'Request task cancellation by ID. A running handler may continue; check cancellationResultPending in task_status.',
|
|
656
686
|
category: 'task',
|
|
657
687
|
parameters: [
|
|
658
688
|
{ name: 'taskId', type: 'string', description: 'Task ID to cancel', required: true },
|
|
@@ -821,7 +851,7 @@ export class MCPProtocolServer {
|
|
|
821
851
|
description: 'Execute test files in parallel with automatic retry on flaky failures. Example: test_execute_parallel({ testFiles: ["tests/auth.test.ts"], parallel: true })',
|
|
822
852
|
category: 'domain',
|
|
823
853
|
parameters: [
|
|
824
|
-
{ name: 'testFiles', type: 'array', description: '
|
|
854
|
+
{ name: 'testFiles', type: 'array', description: 'Nonempty list of concrete test file paths (relative to the project working directory or absolute). Expand glob patterns before calling; glob patterns are rejected.' },
|
|
825
855
|
{ name: 'parallel', type: 'boolean', description: 'Enable parallel execution', default: true },
|
|
826
856
|
],
|
|
827
857
|
},
|
|
@@ -849,7 +879,7 @@ export class MCPProtocolServer {
|
|
|
849
879
|
category: 'domain',
|
|
850
880
|
isConcurrencySafe: true,
|
|
851
881
|
parameters: [
|
|
852
|
-
{ name: 'runGate', type: 'boolean', description: '
|
|
882
|
+
{ name: 'runGate', type: 'boolean', description: 'Evaluate all seven canonical measured quality checks; requires complete, valid evidence from the last 24 hours. Returns individual checks, not a static aggregate score.', default: false },
|
|
853
883
|
],
|
|
854
884
|
},
|
|
855
885
|
handler: (params) => handleQualityAssess(params),
|
|
@@ -858,12 +888,13 @@ export class MCPProtocolServer {
|
|
|
858
888
|
this.registerTool({
|
|
859
889
|
definition: {
|
|
860
890
|
name: 'security_scan_comprehensive',
|
|
861
|
-
description: 'Run
|
|
891
|
+
description: 'Run security scans with execution evidence and explicit coverage limitations. Complete means the declared required scope ran, not that all vulnerabilities are absent. Example: security_scan_comprehensive({ target: "src/", sast: true })',
|
|
862
892
|
category: 'domain',
|
|
863
893
|
parameters: [
|
|
864
894
|
{ name: 'sast', type: 'boolean', description: 'Run SAST scan', default: true },
|
|
865
895
|
{ name: 'dast', type: 'boolean', description: 'Run DAST scan', default: false },
|
|
866
|
-
{ name: 'target', type: 'string', description: '
|
|
896
|
+
{ name: 'target', type: 'string', description: 'Source file or directory for SAST' },
|
|
897
|
+
{ name: 'targetUrl', type: 'string', description: 'URL for a requested DAST scan' },
|
|
867
898
|
],
|
|
868
899
|
},
|
|
869
900
|
handler: (params) => handleSecurityScan(params),
|
|
@@ -1244,6 +1275,21 @@ export class MCPProtocolServer {
|
|
|
1244
1275
|
},
|
|
1245
1276
|
handler: (params) => handlePipelineRun(params),
|
|
1246
1277
|
});
|
|
1278
|
+
for (const decision of ['approve', 'reject']) {
|
|
1279
|
+
this.registerTool({
|
|
1280
|
+
definition: {
|
|
1281
|
+
name: `pipeline_${decision}`,
|
|
1282
|
+
description: `${decision === 'approve' ? 'Approve' : 'Reject'} a pending step in a pipeline started by this MCP server. Use the executionId from pipeline_run and stepId from the pipeline definition.`,
|
|
1283
|
+
category: 'coordination',
|
|
1284
|
+
parameters: [
|
|
1285
|
+
{ name: 'executionId', type: 'string', description: 'Running pipeline execution ID', required: true },
|
|
1286
|
+
{ name: 'stepId', type: 'string', description: 'Step awaiting approval', required: true },
|
|
1287
|
+
...(decision === 'reject' ? [{ name: 'reason', type: 'string', description: 'Reason for rejecting the step' }] : []),
|
|
1288
|
+
],
|
|
1289
|
+
},
|
|
1290
|
+
handler: (params) => (decision === 'approve' ? handlePipelineApprove : handlePipelineReject)(params),
|
|
1291
|
+
});
|
|
1292
|
+
}
|
|
1247
1293
|
this.registerTool({
|
|
1248
1294
|
definition: {
|
|
1249
1295
|
name: 'pipeline_list',
|
|
@@ -1254,6 +1300,19 @@ export class MCPProtocolServer {
|
|
|
1254
1300
|
},
|
|
1255
1301
|
handler: (params) => handlePipelineList(params),
|
|
1256
1302
|
});
|
|
1303
|
+
this.registerTool({
|
|
1304
|
+
definition: {
|
|
1305
|
+
name: 'pipeline_status',
|
|
1306
|
+
description: 'Read pipeline execution status and parallel composition receipts without raw step outputs.',
|
|
1307
|
+
category: 'coordination',
|
|
1308
|
+
// Status changes while a run is active; the session cache must not
|
|
1309
|
+
// replay an earlier "running" result for the same execution ID.
|
|
1310
|
+
parameters: [
|
|
1311
|
+
{ name: 'executionId', type: 'string', description: 'Execution ID returned by pipeline_run', required: true },
|
|
1312
|
+
],
|
|
1313
|
+
},
|
|
1314
|
+
handler: (params) => handlePipelineStatus(params),
|
|
1315
|
+
});
|
|
1257
1316
|
this.registerTool({
|
|
1258
1317
|
definition: {
|
|
1259
1318
|
name: 'pipeline_validate',
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* - Caching for repeated sampling requests
|
|
11
11
|
*/
|
|
12
12
|
import { createHash, randomUUID } from 'crypto';
|
|
13
|
+
import { DEFAULT_SONNET_MODEL } from '../../shared/llm/model-registry.js';
|
|
13
14
|
// ============================================================================
|
|
14
15
|
// Pre-built QE Decision Prompts
|
|
15
16
|
// ============================================================================
|
|
@@ -129,7 +130,7 @@ export class SamplingServer {
|
|
|
129
130
|
cleanupTimer = null;
|
|
130
131
|
constructor(config = {}) {
|
|
131
132
|
this.config = {
|
|
132
|
-
defaultModel: config.defaultModel ||
|
|
133
|
+
defaultModel: config.defaultModel || DEFAULT_SONNET_MODEL,
|
|
133
134
|
defaultMaxTokens: config.defaultMaxTokens || 4096,
|
|
134
135
|
defaultTemperature: config.defaultTemperature || 0.7,
|
|
135
136
|
enableCaching: config.enableCaching ?? true,
|
|
@@ -25,7 +25,7 @@ const HARD_CODED_TOOL_NAMES = [
|
|
|
25
25
|
'memory_query', 'memory_retrieve', 'memory_share', 'memory_store',
|
|
26
26
|
'memory_usage', 'migration_check', 'migration_promote', 'migration_status',
|
|
27
27
|
'model_route', 'phase_end', 'phase_start', 'pipeline_list', 'pipeline_load',
|
|
28
|
-
'pipeline_run', 'pipeline_validate', 'quality_assess',
|
|
28
|
+
'pipeline_approve', 'pipeline_reject', 'pipeline_run', 'pipeline_status', 'pipeline_validate', 'quality_assess',
|
|
29
29
|
'requirements_validate', 'routing_economics', 'routing_metrics',
|
|
30
30
|
'security_scan_comprehensive', 'session_cache_stats', 'task_cancel',
|
|
31
31
|
'task_list', 'task_orchestrate', 'task_status', 'task_submit',
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { MCPToolBase, getMemoryBackend, } from '../base.js';
|
|
8
8
|
import { toErrorMessage } from '../../../shared/error-utils.js';
|
|
9
|
+
import { getGitRefError } from '../../../shared/git/ref-validation.js';
|
|
9
10
|
// ============================================================================
|
|
10
11
|
// Tool Implementation
|
|
11
12
|
// ============================================================================
|
|
@@ -43,6 +44,12 @@ export class TestScheduleTool extends MCPToolBase {
|
|
|
43
44
|
};
|
|
44
45
|
}
|
|
45
46
|
async execute(params, context) {
|
|
47
|
+
if (params.gitRef !== undefined) {
|
|
48
|
+
const refError = getGitRefError(params.gitRef, 'gitRef');
|
|
49
|
+
if (refError) {
|
|
50
|
+
return { success: false, error: refError };
|
|
51
|
+
}
|
|
52
|
+
}
|
|
46
53
|
try {
|
|
47
54
|
const { runTestPipeline } = await import('../../../test-scheduling/index.js');
|
|
48
55
|
const memory = await getMemoryBackend(context);
|
package/dist/mcp/types.d.ts
CHANGED
|
@@ -176,6 +176,9 @@ export interface TestGenerateParams {
|
|
|
176
176
|
* Test execution parameters
|
|
177
177
|
*/
|
|
178
178
|
export interface TestExecuteParams {
|
|
179
|
+
/** Concrete test file paths for test_execute_parallel; provide a nonempty list.
|
|
180
|
+
* Expand glob patterns before calling. The task handler does not expand them.
|
|
181
|
+
*/
|
|
179
182
|
testFiles?: string[];
|
|
180
183
|
testSuites?: string[];
|
|
181
184
|
parallel?: boolean;
|
|
@@ -211,6 +214,8 @@ export interface SecurityScanParams {
|
|
|
211
214
|
dast?: boolean;
|
|
212
215
|
compliance?: string[];
|
|
213
216
|
target?: string;
|
|
217
|
+
/** URL for explicitly requested dynamic scanning. */
|
|
218
|
+
targetUrl?: string;
|
|
214
219
|
}
|
|
215
220
|
/**
|
|
216
221
|
* Contract validation parameters
|
|
@@ -428,7 +433,9 @@ export interface TaskSubmitResult {
|
|
|
428
433
|
taskId: string;
|
|
429
434
|
type: TaskType;
|
|
430
435
|
priority: Priority;
|
|
431
|
-
status: '
|
|
436
|
+
status: TaskStatusResult['status'];
|
|
437
|
+
/** Execution failure, if the task already reached a failed state. */
|
|
438
|
+
error?: string;
|
|
432
439
|
assignedDomain?: DomainName;
|
|
433
440
|
}
|
|
434
441
|
/**
|
|
@@ -438,6 +445,8 @@ export interface TaskStatusResult {
|
|
|
438
445
|
taskId: string;
|
|
439
446
|
type: TaskType;
|
|
440
447
|
status: 'queued' | 'assigned' | 'running' | 'completed' | 'failed' | 'cancelled';
|
|
448
|
+
/** Reports an outstanding task result; false does not prove external effects stopped. */
|
|
449
|
+
cancellationResultPending?: boolean;
|
|
441
450
|
priority: Priority;
|
|
442
451
|
assignedDomain?: DomainName;
|
|
443
452
|
assignedAgents: string[];
|
|
@@ -45,6 +45,7 @@ export declare class SessionOperationCache {
|
|
|
45
45
|
private config;
|
|
46
46
|
private hits;
|
|
47
47
|
private misses;
|
|
48
|
+
private generation;
|
|
48
49
|
constructor(config?: Partial<SessionCacheConfig>);
|
|
49
50
|
/**
|
|
50
51
|
* Compute a deterministic fingerprint from build + domain + action + input.
|
|
@@ -81,6 +82,10 @@ export declare class SessionOperationCache {
|
|
|
81
82
|
getStats(): SessionCacheStats;
|
|
82
83
|
/** Clear all cache entries and reset counters */
|
|
83
84
|
clear(): void;
|
|
85
|
+
/** Revision used to keep in-flight reads from repopulating a stale cache. */
|
|
86
|
+
getGeneration(): number;
|
|
87
|
+
/** Evict all cached reads, including persisted rows, after a stateful call. */
|
|
88
|
+
invalidateAll(): number;
|
|
84
89
|
/**
|
|
85
90
|
* Invalidate every cached entry for a domain. Issue #535: a mutating tool
|
|
86
91
|
* (e.g. memory_delete / memory_store) must evict the sibling read entries in
|
|
@@ -60,6 +60,7 @@ export class SessionOperationCache {
|
|
|
60
60
|
config;
|
|
61
61
|
hits = 0;
|
|
62
62
|
misses = 0;
|
|
63
|
+
generation = 0;
|
|
63
64
|
constructor(config) {
|
|
64
65
|
this.config = { ...DEFAULT_SESSION_CACHE_CONFIG, ...config };
|
|
65
66
|
}
|
|
@@ -182,6 +183,27 @@ export class SessionOperationCache {
|
|
|
182
183
|
this.cache.clear();
|
|
183
184
|
this.hits = 0;
|
|
184
185
|
this.misses = 0;
|
|
186
|
+
this.generation++;
|
|
187
|
+
}
|
|
188
|
+
/** Revision used to keep in-flight reads from repopulating a stale cache. */
|
|
189
|
+
getGeneration() {
|
|
190
|
+
return this.generation;
|
|
191
|
+
}
|
|
192
|
+
/** Evict all cached reads, including persisted rows, after a stateful call. */
|
|
193
|
+
invalidateAll() {
|
|
194
|
+
const removed = this.cache.size;
|
|
195
|
+
this.cache.clear();
|
|
196
|
+
this.generation++;
|
|
197
|
+
if (this.config.persistToDb) {
|
|
198
|
+
try {
|
|
199
|
+
const db = tryGetDb();
|
|
200
|
+
db?.prepare("DELETE FROM kv_store WHERE namespace = 'session_cache'").run();
|
|
201
|
+
}
|
|
202
|
+
catch {
|
|
203
|
+
// Cache invalidation must not prevent the tool response.
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
return removed;
|
|
185
207
|
}
|
|
186
208
|
/**
|
|
187
209
|
* Invalidate every cached entry for a domain. Issue #535: a mutating tool
|
|
@@ -192,6 +214,7 @@ export class SessionOperationCache {
|
|
|
192
214
|
* number of entries removed.
|
|
193
215
|
*/
|
|
194
216
|
invalidateDomain(domain) {
|
|
217
|
+
this.generation++;
|
|
195
218
|
let removed = 0;
|
|
196
219
|
for (const [key, entry] of this.cache) {
|
|
197
220
|
if (entry.domain === domain) {
|
|
@@ -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
|