agentic-qe 3.14.3 → 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 +111 -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-TQOMLWWX.js → agent-booster-wasm-5PC7D2FW.js} +2 -2
- package/dist/cli/chunks/{agent-handler-Q3SEMMI2.js → agent-handler-RDNTK4CA.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-SJXAQSZI.js → agent-memory-branch-NAAMBWIR.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-5ZRMYJLB.js +2 -0
- package/dist/cli/chunks/{arena-7RC7TBGW.js → arena-HXTWJ5YY.js} +4 -4
- package/dist/cli/chunks/{arena-UPB7TKUY.js → arena-KXFHRWX4.js} +2 -2
- package/dist/cli/chunks/{audit-IXN5R4WB.js → audit-YSGA7UWT.js} +3 -3
- package/dist/cli/chunks/base-KWZHOPSH.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-RP4DEGK3.js → better-sqlite3-UICJZIDG.js} +2 -2
- package/dist/cli/chunks/brain-handler-ET6YAP4B.js +90 -0
- package/dist/cli/chunks/{branch-enumerator-VPRWDGFJ.js → branch-enumerator-SS7UNVIA.js} +2 -2
- package/dist/cli/chunks/{browser-B6E7JPPJ.js → browser-77GI6KBE.js} +2 -2
- package/dist/cli/chunks/browser-workflow-2FZTKDUL.js +2 -0
- package/dist/cli/chunks/{chunk-ZHXWGNYM.js → chunk-2JW3BCGG.js} +1 -1
- package/dist/cli/chunks/{chunk-TGLAWI62.js → chunk-33YYYWBQ.js} +1 -1
- package/dist/cli/chunks/{chunk-BN7DKW5D.js → chunk-34WO57CW.js} +1 -1
- package/dist/cli/chunks/{chunk-TTMHIOQ3.js → chunk-3QHGWY7T.js} +2 -2
- package/dist/cli/chunks/chunk-3TW5W5LX.js +2 -0
- package/dist/cli/chunks/{chunk-E3FBW6G2.js → chunk-3UPAMMCB.js} +1 -1
- package/dist/cli/chunks/{chunk-MDZ6RRLX.js → chunk-3VOQRIQM.js} +2 -2
- package/dist/cli/chunks/{chunk-G5C2XVZC.js → chunk-3X3DJZJJ.js} +1 -1
- package/dist/cli/chunks/{chunk-4C6UJIHB.js → chunk-4MHXCAG2.js} +1 -1
- package/dist/cli/chunks/{chunk-7BUERZYL.js → chunk-4OYFXLBK.js} +2 -2
- package/dist/cli/chunks/{chunk-TFHQE6NK.js → chunk-55RWDRJD.js} +3 -3
- package/dist/cli/chunks/chunk-5R3QL7WN.js +14 -0
- package/dist/cli/chunks/{chunk-ZUG5MOUB.js → chunk-5SJHQ2CO.js} +2 -2
- package/dist/cli/chunks/{chunk-VIDBBB6F.js → chunk-5YPYDPBJ.js} +2 -2
- package/dist/cli/chunks/chunk-5Z6XZV7K.js +65 -0
- package/dist/cli/chunks/{chunk-JV4FZUE7.js → chunk-64PFWE2F.js} +2 -2
- package/dist/cli/chunks/{chunk-TISSZFHO.js → chunk-6CQN24ZK.js} +1 -1
- package/dist/cli/chunks/{chunk-G6DCESPU.js → chunk-6J62K3SW.js} +2 -2
- package/dist/cli/chunks/{chunk-7SLAZAVU.js → chunk-6KJABXAR.js} +2 -2
- package/dist/cli/chunks/{chunk-KF63AYXD.js → chunk-6QYNWR7U.js} +2 -2
- package/dist/cli/chunks/{chunk-74PK3NEW.js → chunk-6TPKK7LD.js} +2 -2
- package/dist/cli/chunks/{chunk-JRYZKBY2.js → chunk-6UWGMOND.js} +2 -2
- package/dist/cli/chunks/{chunk-ZN3J6TZD.js → chunk-6VRA2QGL.js} +1 -1
- package/dist/cli/chunks/{chunk-YCBDE2N7.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-5Y5TC6BY.js → chunk-AIHDEEJO.js} +2 -2
- package/dist/cli/chunks/{chunk-N4H2QOT5.js → chunk-AUXFKCQL.js} +2 -2
- package/dist/cli/chunks/{chunk-7G6UX2QN.js → chunk-AWWNB2T7.js} +2 -2
- package/dist/cli/chunks/{chunk-33VPWGCM.js → chunk-BDESSCVR.js} +3 -3
- package/dist/cli/chunks/{chunk-OVDKWCD7.js → chunk-BFP7KO7P.js} +2 -2
- package/dist/cli/chunks/{chunk-MXMFGSWR.js → chunk-BGE6FOLM.js} +2 -2
- package/dist/cli/chunks/{chunk-2GNRW3OD.js → chunk-BOARZKU3.js} +2 -2
- package/dist/cli/chunks/{chunk-4JBFJTHJ.js → chunk-BOZZYWCR.js} +1 -1
- package/dist/cli/chunks/{chunk-D4Z2N74A.js → chunk-C2WU3533.js} +1 -1
- package/dist/cli/chunks/{chunk-B7SWW5A6.js → chunk-CDHQFHRP.js} +2 -2
- package/dist/cli/chunks/chunk-CDKG6EI7.js +16 -0
- package/dist/cli/chunks/{chunk-IU4EBTA2.js → chunk-CIKSHTEQ.js} +3 -3
- package/dist/cli/chunks/{chunk-RTJ2M6V6.js → chunk-CIZ5JPDC.js} +2 -2
- package/dist/cli/chunks/{chunk-CR3QGHVN.js → chunk-CLTMDCSE.js} +2 -2
- package/dist/cli/chunks/{chunk-T35GZXTU.js → chunk-CNG6GQEZ.js} +2 -2
- package/dist/cli/chunks/{chunk-IQEJGZV6.js → chunk-CSU5NYOX.js} +3 -3
- package/dist/cli/chunks/chunk-CU46J64M.js +4 -0
- package/dist/cli/chunks/{chunk-LLVGTEHU.js → chunk-CXQPR5MY.js} +1 -1
- package/dist/cli/chunks/{chunk-5BLFXQEB.js → chunk-DA5K5754.js} +1 -1
- package/dist/cli/chunks/{chunk-5FOZO7KM.js → chunk-DAEFDCJ4.js} +45 -45
- package/dist/cli/chunks/{chunk-SJPZSCZP.js → chunk-DEYLEDJN.js} +2 -2
- package/dist/cli/chunks/{chunk-LHGNNZ76.js → chunk-DFZCKIGY.js} +3 -3
- package/dist/cli/chunks/{chunk-YAKS3CAB.js → chunk-DHJPWQBR.js} +2 -2
- package/dist/cli/chunks/{chunk-37BASGWC.js → chunk-DOTK76IJ.js} +2 -2
- package/dist/cli/chunks/{chunk-STRDSVH3.js → chunk-DPFRKBOG.js} +2 -2
- package/dist/cli/chunks/{chunk-H5ZRV5K5.js → chunk-EDJ3O7RH.js} +2 -2
- package/dist/cli/chunks/{chunk-DBA3N742.js → chunk-EKQ673SA.js} +1 -1
- package/dist/cli/chunks/chunk-F3SBRQC6.js +2 -0
- package/dist/cli/chunks/{chunk-HOQQCY2K.js → chunk-FGYMFUE2.js} +2 -2
- package/dist/cli/chunks/{chunk-FKG5OQFT.js → chunk-FLYOJOKN.js} +1 -1
- package/dist/cli/chunks/{chunk-MWWAMDHI.js → chunk-FRH6VAUS.js} +1 -1
- package/dist/cli/chunks/{chunk-UYJHYMEQ.js → chunk-FWGOHAAB.js} +2 -2
- package/dist/cli/chunks/{chunk-HRUU7E3D.js → chunk-G6T45OIC.js} +2 -2
- package/dist/cli/chunks/{chunk-4Q35TI6Z.js → chunk-GPLQ6DOK.js} +2 -2
- package/dist/cli/chunks/{chunk-PI74GOE4.js → chunk-HDSAM2RE.js} +2 -2
- package/dist/cli/chunks/chunk-HIVA55CJ.js +2 -0
- package/dist/cli/chunks/{chunk-B5XFDFBT.js → chunk-HIYXCDEP.js} +1 -1
- package/dist/cli/chunks/{chunk-ZK5JKHP4.js → chunk-HUWNIPZ5.js} +1 -1
- package/dist/cli/chunks/{chunk-H6XBM2LY.js → chunk-HV2J7KKQ.js} +2 -2
- package/dist/cli/chunks/{chunk-IFFZR6GY.js → chunk-IFCLB7FJ.js} +1 -1
- package/dist/cli/chunks/{chunk-3ABRGG3C.js → chunk-IPR4QP3H.js} +2 -2
- package/dist/cli/chunks/{chunk-7FYMDKQH.js → chunk-ISDMD6EU.js} +165 -167
- package/dist/cli/chunks/{chunk-B2ZONZPZ.js → chunk-J6GNQS62.js} +2 -2
- package/dist/cli/chunks/{chunk-G6ZHTF42.js → chunk-JBNEE5UH.js} +2 -2
- package/dist/cli/chunks/chunk-JZ3ORVZ3.js +54 -0
- package/dist/cli/chunks/{chunk-5IAB5NRZ.js → chunk-KCZR45PA.js} +2 -2
- package/dist/cli/chunks/chunk-KGT36Z42.js +14 -0
- package/dist/cli/chunks/{chunk-IP7NSFQQ.js → chunk-KHFNNVJA.js} +2 -2
- package/dist/cli/chunks/{chunk-2WT7AKKK.js → chunk-KPA7MZ6C.js} +2 -2
- package/dist/cli/chunks/{chunk-7JQHPANT.js → chunk-KSKEF7LZ.js} +3 -3
- package/dist/cli/chunks/{chunk-F67AV5P2.js → chunk-M2JBBZQB.js} +2 -2
- package/dist/cli/chunks/{chunk-SGXSB7YO.js → chunk-M4WJKGVK.js} +1 -1
- package/dist/cli/chunks/{chunk-4UDZLD42.js → chunk-M5QUBZY6.js} +2 -2
- package/dist/cli/chunks/{chunk-PZTVH2AS.js → chunk-MCUJEZT6.js} +2 -2
- package/dist/cli/chunks/{chunk-KPMGTVB4.js → chunk-MDWCE7YW.js} +1 -1
- package/dist/cli/chunks/{chunk-LS3EUMBP.js → chunk-MEGDYJPV.js} +5 -5
- package/dist/cli/chunks/chunk-MIQTXNBG.js +4 -0
- package/dist/cli/chunks/{chunk-VWNHKYK7.js → chunk-MNW6QGNJ.js} +2 -2
- package/dist/cli/chunks/{chunk-NN76NTOX.js → chunk-MOBNBMFW.js} +1 -1
- package/dist/cli/chunks/{chunk-SG47AXJG.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-26GM5CWD.js → chunk-NDPFGIMJ.js} +3 -3
- package/dist/cli/chunks/{chunk-ELU4IC3I.js → chunk-NJBGXDQ7.js} +1 -1
- package/dist/cli/chunks/chunk-OBAP2TXZ.js +2 -0
- package/dist/cli/chunks/{chunk-NTSXHZTC.js → chunk-OCWWP5PL.js} +4 -4
- package/dist/cli/chunks/{chunk-XA7CG3LH.js → chunk-ODKLFVYC.js} +2 -2
- package/dist/cli/chunks/{chunk-IKIITGU5.js → chunk-ONII3572.js} +4 -4
- package/dist/cli/chunks/{chunk-JBB7E26R.js → chunk-OSLYSG3B.js} +2 -2
- package/dist/cli/chunks/{chunk-CB5JPRIZ.js → chunk-OULHKEVH.js} +2 -2
- package/dist/cli/chunks/{chunk-YGB6R5DW.js → chunk-PAWXJ73E.js} +1 -1
- package/dist/cli/chunks/chunk-PEPFCPES.js +2 -0
- package/dist/cli/chunks/{chunk-FUE6LL72.js → chunk-PFR4G3DJ.js} +2 -2
- package/dist/cli/chunks/chunk-PO3IXGMQ.js +2 -0
- package/dist/cli/chunks/{chunk-OY7MLMEX.js → chunk-PZJOPURC.js} +5 -5
- package/dist/cli/chunks/{chunk-UHQY3GK7.js → chunk-Q5DO24IJ.js} +2 -2
- package/dist/cli/chunks/chunk-QGIU2WRL.js +2 -0
- package/dist/cli/chunks/{chunk-4RP5VUBI.js → chunk-R4VL6E65.js} +2 -2
- package/dist/cli/chunks/{chunk-RKJZWWB7.js → chunk-R5NE6B2M.js} +2 -2
- package/dist/cli/chunks/{chunk-5F6DWHQG.js → chunk-RJCYCLZV.js} +2 -2
- package/dist/cli/chunks/{chunk-GNTVFN7D.js → chunk-SGYJ4NFZ.js} +1 -1
- package/dist/cli/chunks/{chunk-OYMLHX2B.js → chunk-SRKETSFF.js} +1 -1
- package/dist/cli/chunks/{chunk-XX7HUSX2.js → chunk-STJCATGN.js} +2 -2
- package/dist/cli/chunks/{chunk-C46DMCWF.js → chunk-STM3UDNO.js} +1 -1
- package/dist/cli/chunks/{chunk-EY4OQHU3.js → chunk-T6BVLVI5.js} +1 -1
- package/dist/cli/chunks/{chunk-LKN7JQTW.js → chunk-TDZ53WO2.js} +2 -2
- package/dist/cli/chunks/{chunk-OV5EZO3U.js → chunk-TPGED2IF.js} +2 -2
- package/dist/cli/chunks/{chunk-DX3C5HPN.js → chunk-TSRSV3LD.js} +1 -1
- package/dist/cli/chunks/{chunk-Y2DVFVGI.js → chunk-TT23RRB7.js} +1 -1
- package/dist/cli/chunks/{chunk-XXCYQXK3.js → chunk-TWAWHOP7.js} +2 -2
- package/dist/cli/chunks/{chunk-2IGT5WNQ.js → chunk-U5K45TFH.js} +1 -1
- package/dist/cli/chunks/{chunk-SQ3PPISY.js → chunk-UDHKLT4C.js} +1 -1
- package/dist/cli/chunks/{chunk-YDNSLLBS.js → chunk-UEM7ZF5K.js} +2 -2
- package/dist/cli/chunks/{chunk-4XPPMADQ.js → chunk-UGVHCMUN.js} +6 -6
- package/dist/cli/chunks/{chunk-YL7T3VV7.js → chunk-V3QLFNA2.js} +2 -2
- package/dist/cli/chunks/{chunk-YEXPFHV6.js → chunk-VD6QRULW.js} +2 -2
- package/dist/cli/chunks/{chunk-OVPJQWHW.js → chunk-VIHTL3U2.js} +2 -2
- package/dist/cli/chunks/chunk-W7BWUTVV.js +2 -0
- package/dist/cli/chunks/{chunk-3P6NCFI2.js → chunk-WLG5AJ4N.js} +2 -2
- package/dist/cli/chunks/{chunk-V4AOVDCJ.js → chunk-XC7DYDSY.js} +8 -8
- package/dist/cli/chunks/{chunk-LTBCAFTZ.js → chunk-XJ7QNVI5.js} +3 -3
- package/dist/cli/chunks/chunk-XRT2WRMS.js +2 -0
- package/dist/cli/chunks/{chunk-UMENRGHK.js → chunk-XRYF6JV7.js} +2 -2
- package/dist/cli/chunks/{chunk-SHGKY3QB.js → chunk-XWMZ6D6N.js} +2 -2
- package/dist/cli/chunks/{chunk-72UJXEKQ.js → chunk-Y3MW3YBC.js} +2 -2
- package/dist/cli/chunks/chunk-YNXS6CGV.js +2 -0
- package/dist/cli/chunks/{chunk-LVLBIKJD.js → chunk-Z3RHREWF.js} +1 -1
- package/dist/cli/chunks/{chunk-HXE5NBJG.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-NBWQBQO5.js → chunk-ZJ26AQA5.js} +1 -1
- package/dist/cli/chunks/{chunk-TJEIOE7F.js → chunk-ZNEMGX5O.js} +1 -1
- package/dist/cli/chunks/{chunk-AB4U6ZNI.js → chunk-ZNPKDCZR.js} +2 -2
- package/dist/cli/chunks/{chunk-WYMGK5DX.js → chunk-ZZDIMOOV.js} +2 -2
- package/dist/cli/chunks/ci-464KPQNP.js +81 -0
- package/dist/cli/chunks/{ci-output-LK3MBXLZ.js → ci-output-I7FX2RSO.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-7AIXACR7.js → circuit-breaker-3FW237WW.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-UA7EO6VN.js → claude-flow-setup-6JKMBPGU.js} +2 -2
- package/dist/cli/chunks/client-7E4LM2WW.js +2 -0
- package/dist/cli/chunks/{cline-installer-YDDCKKEV.js → cline-installer-UWFHT6VY.js} +2 -2
- package/dist/cli/chunks/{code-URB7UAKW.js → code-KQSUT3FS.js} +29 -29
- package/dist/cli/chunks/{code-index-extractor-BL6HWH4Q.js → code-index-extractor-PABBNUSC.js} +2 -2
- package/dist/cli/chunks/{codex-installer-2AVEO4EA.js → codex-installer-CQ24DTP5.js} +2 -2
- package/dist/cli/chunks/{completions-RCKBSSSS.js → completions-7RWHAUAR.js} +2 -2
- package/dist/cli/chunks/complexity-analyzer-XPOAF33E.js +2 -0
- package/dist/cli/chunks/{continuedev-installer-VOTCEBFH.js → continuedev-installer-V4F2FIZP.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-NVTGLZX3.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-ZTPJWXWE.js → coverage-QKN57JDS.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-EK7W4PGP.js +2 -0
- package/dist/cli/chunks/{cursor-installer-CMGJQMHX.js → cursor-installer-GBJ7YXSM.js} +2 -2
- package/dist/cli/chunks/{daemon-V456IWR3.js → daemon-GKP7CMEK.js} +3 -3
- package/dist/cli/chunks/{daemon-Y2I3YVIU.js → daemon-IAVSO6HK.js} +4 -4
- package/dist/cli/chunks/{dag-attention-scheduler-ZCBBOD3D.js → dag-attention-scheduler-S225TCI7.js} +2 -2
- package/dist/cli/chunks/{detect-2GHEA4A3.js → detect-IUYH422U.js} +2 -2
- package/dist/cli/chunks/{dist-node-44AGYJCH.js → dist-node-2YRE6A7C.js} +2 -2
- package/dist/cli/chunks/{domain-handler-IDLIEP6X.js → domain-handler-PL2TZC6H.js} +2 -2
- package/dist/cli/chunks/domain-plugins-HCGLXKIT.js +2 -0
- package/dist/cli/chunks/{domain-transfer-KLEXGIRF.js → domain-transfer-KQJRUPXA.js} +2 -2
- package/dist/cli/chunks/dream-NFSCSLY7.js +2 -0
- package/dist/cli/chunks/{embed-and-insert-pattern-DUW6K35A.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-CJJJN7CF.js → experience-capture-middleware-2MSQWSAR.js} +3 -3
- package/dist/cli/chunks/{fast-paths-LGLLKX6P.js → fast-paths-VYOSIBKF.js} +2 -2
- package/dist/cli/chunks/{feature-flags-33D3I4DD.js → feature-flags-UJRHFBRX.js} +2 -2
- package/dist/cli/chunks/{feature-flags-QL4NCEGW.js → feature-flags-WCFUKHNQ.js} +2 -2
- package/dist/cli/chunks/{file-discovery-GKCYJPFZ.js → file-discovery-JDGL4ZWS.js} +2 -2
- package/dist/cli/chunks/fleet-ROXVMZ2F.js +43 -0
- package/dist/cli/chunks/{gnn-wrapper-ELSGT67Z.js → gnn-wrapper-NIO4ZCO3.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-ZUI3DOOP.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-EZMM5JWL.js → hnsw-legacy-bridge-YLC7SPK2.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-G4CE3EOS.js → hnswlib-node-LG6OS3B7.js} +2 -2
- package/dist/cli/chunks/{hooks-LCVXXA55.js → hooks-WVALP5GX.js} +10 -10
- package/dist/cli/chunks/{hypergraph-engine-6Z7RQ3HI.js → hypergraph-engine-GJEMW3EG.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-PLI2GYPK.js → hypergraph-handler-BLF6LXEV.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-HNIU45P5.js +2 -0
- package/dist/cli/chunks/{init-handler-7VH3QJ5Y.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-U3MW62DE.js → kilocode-installer-BXN6WZ7G.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-PPEAC44T.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-VO7ABNHV.js → load-2BG6SHAK.js} +2 -2
- package/dist/cli/chunks/load-test-BP2CPLIV.js +2 -0
- package/dist/cli/chunks/{mcp-THXEINCL.js → mcp-5TTB37DC.js} +2 -2
- package/dist/cli/chunks/{memory-FZTT7ADM.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-GQ7J5SBG.js → opencode-installer-ATZLLK74.js} +2 -2
- package/dist/cli/chunks/{orchestrator-66JK2OS5.js → orchestrator-RKB7XJRG.js} +19 -19
- package/dist/cli/chunks/pattern-null-store-OYOQOV2O.js +2 -0
- package/dist/cli/chunks/{pattern-usage-recorder-O6XHM2G5.js → pattern-usage-recorder-7VE4XDAI.js} +2 -2
- package/dist/cli/chunks/pipeline-LQZSNDD2.js +19 -0
- package/dist/cli/chunks/{platform-Q7UH7FZQ.js → platform-OD5H5U6G.js} +2 -2
- package/dist/cli/chunks/{plugin-7OFLNGOS.js → plugin-EJ6K2MGU.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-OSRDK2FW.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-WLYTX6FS.js → protocol-handler-NRBROAU7.js} +2 -2
- package/dist/cli/chunks/{prove-QVNE4V3J.js → prove-EJOGEGD3.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-LLMYZT4X.js +2 -0
- package/dist/cli/chunks/{quality-DNE2RKE5.js → quality-E55UC73D.js} +2 -2
- package/dist/cli/chunks/{quality-gate-2K35GCSI.js → quality-gate-OIQATNT3.js} +3 -3
- package/dist/cli/chunks/queen-coordinator-RN7L6KG5.js +2 -0
- package/dist/cli/chunks/{real-embeddings-SF42ML7G.js → real-embeddings-FPFFNOSZ.js} +2 -2
- package/dist/cli/chunks/ref-validation-OPO6J7OL.js +2 -0
- package/dist/cli/chunks/{roocode-installer-NCEZPF5L.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-4MXXZRYP.js → routing-handler-KQM6VWLC.js} +4 -4
- package/dist/cli/chunks/{ruvector-commands-WDFMMCMK.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-JT7ZCJY7.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-CJJ3WJSB.js → security-P5NM353C.js} +3 -3
- package/dist/cli/chunks/{shared-rvf-adapter-6RGCTLHD.js → shared-rvf-adapter-LVIUOO4S.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-KIA6Q6MT.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-BADQV2KA.js → status-handler-6TU6O37R.js} +2 -2
- package/dist/cli/chunks/{structural-health-VMYEYRZG.js → structural-health-KBIJSTXJ.js} +2 -2
- package/dist/cli/chunks/{sync-PXLROLHB.js → sync-LNHI5SB7.js} +2 -2
- package/dist/cli/chunks/{sync-ULY7T5II.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-WCLURQUT.js → test-DHAAI3DU.js} +4 -4
- package/dist/cli/chunks/test-scheduling-XDBZ3QC2.js +15 -0
- package/dist/cli/chunks/{token-bootstrap-GTI24JAL.js → token-bootstrap-GUTTLPZX.js} +2 -2
- package/dist/cli/chunks/{token-usage-DRVG6PKO.js → token-usage-Q2YG5YQN.js} +2 -2
- package/dist/cli/chunks/{transformers-IMDDAMYQ.js → transformers-F5UQTQCY.js} +2 -2
- package/dist/cli/chunks/{tree-sitter-wasm-parser-WBZIHVFA.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-6ALSDWDD.js → upgrade-TJRVGHGD.js} +2 -2
- package/dist/cli/chunks/{validate-XF4ZG3LC.js → validate-BWPCVHBN.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-P5TAFRDA.js → validate-swarm-QVVKCQLP.js} +2 -2
- package/dist/cli/chunks/{vibium-2XDXKNKZ.js → vibium-ZFATIWHO.js} +2 -2
- package/dist/cli/chunks/visual-security-GNPHME5H.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-4JVRQPX5.js → web-tree-sitter-KPLY7ONR.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-WYJXVDO5.js → windsurf-installer-H7XM7ISA.js} +2 -2
- package/dist/cli/chunks/{witness-chain-RPZ2SE2V.js → witness-chain-RRN6NDCH.js} +2 -2
- package/dist/cli/chunks/witness-chain-VT4UHHBR.js +2 -0
- package/dist/cli/chunks/{witness-key-manager-LXG2VBQQ.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-DIJNNFU6.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/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/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/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/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 +488 -488
- 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 +104 -49
- 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 +5 -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.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/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 +1 -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-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-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-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-T62DH4GG.js +0 -11
- package/dist/cli/chunks/chunk-UMNYF5EZ.js +0 -2
- package/dist/cli/chunks/chunk-UTVRQEZM.js +0 -54
- 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/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/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/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/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/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-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/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
|
@@ -13,13 +13,14 @@ import { Command } from 'commander';
|
|
|
13
13
|
import chalk from 'chalk';
|
|
14
14
|
import path from 'node:path';
|
|
15
15
|
import { findProjectRoot } from '../../kernel/unified-memory.js';
|
|
16
|
-
import { existsSync, writeFileSync, readFileSync,
|
|
16
|
+
import { existsSync, writeFileSync, readFileSync, copyFileSync, renameSync } from 'node:fs';
|
|
17
17
|
import { safeJsonParse } from '../../shared/safe-json.js';
|
|
18
18
|
import { stat, unlink } from 'node:fs/promises';
|
|
19
19
|
import { QE_DOMAIN_LIST } from '../../learning/qe-patterns.js';
|
|
20
20
|
import { createLearningMetricsTracker, } from '../../learning/metrics-tracker.js';
|
|
21
21
|
import { createRegretTracker, } from '../../learning/regret-tracker.js';
|
|
22
22
|
import { openDatabase } from '../../shared/safe-db.js';
|
|
23
|
+
import { backupLearningDatabase, restoreLearningDatabase } from './learning-snapshot.js';
|
|
23
24
|
import { createSQLitePatternStore } from '../../learning/sqlite-persistence.js';
|
|
24
25
|
import { getActiveEmbeddingSpaceIdentity } from '../../learning/real-embeddings.js';
|
|
25
26
|
import { inspectEmbeddingSpaceRows } from '../../learning/embedding-space.js';
|
|
@@ -692,7 +693,7 @@ function registerBackupCommand(learning) {
|
|
|
692
693
|
learning
|
|
693
694
|
.command('backup')
|
|
694
695
|
.description('Backup learning database to a file')
|
|
695
|
-
.option('-o, --output <path>', '
|
|
696
|
+
.option('-o, --output <path>', 'Dedicated backup artifact path; never another live database')
|
|
696
697
|
.option('--compress', 'Compress backup with gzip')
|
|
697
698
|
.option('--verify', 'Verify backup integrity after creation')
|
|
698
699
|
.option('--json', 'Output as JSON')
|
|
@@ -704,30 +705,11 @@ function registerBackupCommand(learning) {
|
|
|
704
705
|
const timestamp = new Date().toISOString().replace(/[:.]/g, '-').slice(0, 19);
|
|
705
706
|
const defaultOutput = path.join(process.cwd(), 'backups', `learning-${timestamp}.db`);
|
|
706
707
|
const outputPath = options.output ? path.resolve(options.output) : defaultOutput;
|
|
707
|
-
const
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
const sourceStats = await stat(dbPath);
|
|
711
|
-
const sourceSizeKB = (sourceStats.size / 1024).toFixed(2);
|
|
712
|
-
copyFileSync(dbPath, outputPath);
|
|
713
|
-
const walPath = `${dbPath}-wal`;
|
|
714
|
-
if (existsSync(walPath))
|
|
715
|
-
copyFileSync(walPath, `${outputPath}-wal`);
|
|
716
|
-
let finalPath = outputPath;
|
|
717
|
-
if (options.compress) {
|
|
718
|
-
finalPath = await compressFile(outputPath);
|
|
719
|
-
await unlink(outputPath);
|
|
720
|
-
if (existsSync(`${outputPath}-wal`))
|
|
721
|
-
await unlink(`${outputPath}-wal`);
|
|
722
|
-
}
|
|
723
|
-
const finalStats = await stat(finalPath);
|
|
724
|
-
const finalSizeKB = (finalStats.size / 1024).toFixed(2);
|
|
725
|
-
let verificationResult;
|
|
726
|
-
if (options.verify && !options.compress)
|
|
727
|
-
verificationResult = await verifyDatabaseIntegrity(outputPath);
|
|
728
|
-
const schemaVersion = await getSchemaVersion(dbPath);
|
|
708
|
+
const snapshot = await backupLearningDatabase(dbPath, outputPath, options);
|
|
709
|
+
const { backupPath: finalPath, sourceSizeKB, backupSizeKB: finalSizeKB, schemaVersion } = snapshot;
|
|
710
|
+
const verificationResult = options.verify ? snapshot.verification : undefined;
|
|
729
711
|
if (options.json) {
|
|
730
|
-
printJson({ success: true, sourcePath: dbPath, backupPath: finalPath, sourceSizeKB
|
|
712
|
+
printJson({ success: true, sourcePath: dbPath, backupPath: finalPath, sourceSizeKB, backupSizeKB: finalSizeKB, compressed: options.compress || false, schemaVersion, verification: verificationResult, timestamp: new Date().toISOString() });
|
|
731
713
|
}
|
|
732
714
|
else {
|
|
733
715
|
console.log(chalk.bold('\n💾 Learning Database Backup\n'));
|
|
@@ -737,7 +719,7 @@ function registerBackupCommand(learning) {
|
|
|
737
719
|
console.log(` Backup size: ${finalSizeKB} KB`);
|
|
738
720
|
console.log(` Schema version: ${schemaVersion}`);
|
|
739
721
|
if (options.compress) {
|
|
740
|
-
const compressionRatio = ((1 -
|
|
722
|
+
const compressionRatio = ((1 - finalSizeKB / sourceSizeKB) * 100).toFixed(1);
|
|
741
723
|
console.log(` Compression: ${compressionRatio}% reduction`);
|
|
742
724
|
}
|
|
743
725
|
if (verificationResult) {
|
|
@@ -759,9 +741,9 @@ function registerBackupCommand(learning) {
|
|
|
759
741
|
function registerRestoreCommand(learning) {
|
|
760
742
|
learning
|
|
761
743
|
.command('restore')
|
|
762
|
-
.description('Restore learning database
|
|
744
|
+
.description('Restore a verified learning database backup (stop project writers first)')
|
|
763
745
|
.requiredOption('-i, --input <path>', 'Backup file path to restore from')
|
|
764
|
-
.option('--verify', 'Verify backup integrity before restore')
|
|
746
|
+
.option('--verify', 'Verify backup integrity before restore (always enforced)')
|
|
765
747
|
.option('--force', 'Overwrite existing database without confirmation')
|
|
766
748
|
.option('--json', 'Output as JSON')
|
|
767
749
|
.action(async (options) => {
|
|
@@ -770,49 +752,19 @@ function registerRestoreCommand(learning) {
|
|
|
770
752
|
const dbPath = getDbPath();
|
|
771
753
|
if (!existsSync(inputPath))
|
|
772
754
|
throw new Error(`Backup file not found: ${inputPath}`);
|
|
773
|
-
const
|
|
774
|
-
|
|
775
|
-
if (isCompressed) {
|
|
776
|
-
const tempPath = inputPath.replace('.gz', '.tmp');
|
|
777
|
-
await decompressFile(inputPath, tempPath);
|
|
778
|
-
restorePath = tempPath;
|
|
779
|
-
}
|
|
780
|
-
if (options.verify) {
|
|
781
|
-
const verificationResult = await verifyDatabaseIntegrity(restorePath);
|
|
782
|
-
if (!verificationResult.valid) {
|
|
783
|
-
if (isCompressed && existsSync(restorePath))
|
|
784
|
-
await unlink(restorePath);
|
|
785
|
-
throw new Error(`Backup verification failed: ${verificationResult.message}`);
|
|
786
|
-
}
|
|
787
|
-
}
|
|
788
|
-
if (existsSync(dbPath) && !options.force) {
|
|
789
|
-
if (isCompressed && existsSync(restorePath))
|
|
790
|
-
await unlink(restorePath);
|
|
791
|
-
throw new Error(`Database already exists at: ${dbPath}. Use --force to overwrite`);
|
|
792
|
-
}
|
|
793
|
-
const targetDir = path.dirname(dbPath);
|
|
794
|
-
if (!existsSync(targetDir))
|
|
795
|
-
mkdirSync(targetDir, { recursive: true });
|
|
796
|
-
if (existsSync(dbPath))
|
|
797
|
-
await unlink(dbPath);
|
|
798
|
-
if (existsSync(`${dbPath}-wal`))
|
|
799
|
-
await unlink(`${dbPath}-wal`);
|
|
800
|
-
if (existsSync(`${dbPath}-shm`))
|
|
801
|
-
await unlink(`${dbPath}-shm`);
|
|
802
|
-
copyFileSync(restorePath, dbPath);
|
|
803
|
-
if (isCompressed && existsSync(restorePath))
|
|
804
|
-
await unlink(restorePath);
|
|
805
|
-
const restoredStats = await stat(dbPath);
|
|
806
|
-
const schemaVersion = await getSchemaVersion(dbPath);
|
|
755
|
+
const restored = await restoreLearningDatabase(inputPath, dbPath, { force: options.force });
|
|
756
|
+
const { sizeKB, schemaVersion, wasCompressed: isCompressed, safetyBackupPath } = restored;
|
|
807
757
|
if (options.json) {
|
|
808
|
-
printJson({ success: true, backupPath: inputPath, restoredPath: dbPath, sizeKB
|
|
758
|
+
printJson({ success: true, backupPath: inputPath, restoredPath: dbPath, sizeKB, schemaVersion, wasCompressed: isCompressed, safetyBackupPath, timestamp: new Date().toISOString() });
|
|
809
759
|
}
|
|
810
760
|
else {
|
|
811
761
|
console.log(chalk.bold('\n🔄 Learning Database Restore\n'));
|
|
812
762
|
console.log(` Backup: ${inputPath}`);
|
|
813
763
|
console.log(` Restored to: ${dbPath}`);
|
|
814
|
-
console.log(` Size: ${
|
|
764
|
+
console.log(` Size: ${sizeKB.toFixed(2)} KB`);
|
|
815
765
|
console.log(` Schema version: ${schemaVersion}`);
|
|
766
|
+
if (safetyBackupPath)
|
|
767
|
+
console.log(` Previous database: ${safetyBackupPath}`);
|
|
816
768
|
printSuccess('Database restored successfully\n');
|
|
817
769
|
}
|
|
818
770
|
return;
|
|
@@ -15,6 +15,7 @@ import { secureRandomInt } from '../../shared/utils/crypto-random.js';
|
|
|
15
15
|
import chalk from 'chalk';
|
|
16
16
|
import { ALL_PROVIDER_TYPES, DEFAULT_MODEL_MAPPINGS, isBuiltinExtendedProviderType, } from '../../shared/llm/router/types.js';
|
|
17
17
|
import { getRegisteredProvider, isRegisteredProvider, registeredProviderTypes, } from '../../shared/llm/provider-registry.js';
|
|
18
|
+
import { DEFAULT_OPUS_MODEL, DEFAULT_SONNET_MODEL } from '../../shared/llm/model-registry.js';
|
|
18
19
|
import { resolvesOnPath } from '../../shared/llm/providers/external-cli.js';
|
|
19
20
|
// ============================================================================
|
|
20
21
|
// CLI config state (lazy-loaded from .agentic-qe/llm-config.json)
|
|
@@ -74,7 +75,7 @@ Examples:
|
|
|
74
75
|
$ aqe llm route "security audit" Test routing for a task
|
|
75
76
|
$ aqe llm config --set mode=cost-optimized
|
|
76
77
|
$ aqe llm health Check provider health
|
|
77
|
-
$ aqe llm cost claude-sonnet-
|
|
78
|
+
$ aqe llm cost claude-sonnet-5 --tokens 10000
|
|
78
79
|
$ aqe llm advise --transcript t.json --json Consult advisor (ADR-092)
|
|
79
80
|
$ aqe llm verify --session <id> Check advisor quality gate
|
|
80
81
|
`);
|
|
@@ -411,15 +412,15 @@ function formatCost(cost) {
|
|
|
411
412
|
}
|
|
412
413
|
function getDefaultModelForProvider(provider) {
|
|
413
414
|
const defaults = {
|
|
414
|
-
claude:
|
|
415
|
+
claude: DEFAULT_SONNET_MODEL,
|
|
415
416
|
'claude-code': 'sonnet',
|
|
416
|
-
codex: '
|
|
417
|
-
openai: 'gpt-
|
|
418
|
-
ollama: '
|
|
419
|
-
openrouter: 'anthropic/claude-sonnet-
|
|
420
|
-
gemini: 'gemini-2.
|
|
417
|
+
codex: 'default',
|
|
418
|
+
openai: 'gpt-6-sol',
|
|
419
|
+
ollama: 'qwen3-coder:30b',
|
|
420
|
+
openrouter: 'anthropic/claude-sonnet-5',
|
|
421
|
+
gemini: 'gemini-2.5-flash',
|
|
421
422
|
'azure-openai': 'gpt-4o',
|
|
422
|
-
bedrock: 'anthropic.claude-sonnet-4-v1:0',
|
|
423
|
+
bedrock: 'anthropic.claude-sonnet-4-6-v1:0',
|
|
423
424
|
cognitum: 'cognitum-auto',
|
|
424
425
|
onnx: 'phi-4',
|
|
425
426
|
};
|
|
@@ -470,10 +471,10 @@ function simulateRoutingDecision(task, options) {
|
|
|
470
471
|
if (agentType?.includes('security') || task.toLowerCase().includes('security')) {
|
|
471
472
|
return {
|
|
472
473
|
provider: 'claude',
|
|
473
|
-
model:
|
|
474
|
+
model: DEFAULT_SONNET_MODEL,
|
|
474
475
|
reason: 'Security tasks require advanced reasoning (rule-match)',
|
|
475
476
|
confidence: 0.95,
|
|
476
|
-
estimatedCost: { inputTokens: 2000, outputTokens: 1000, totalCostUsd: 0.
|
|
477
|
+
estimatedCost: { inputTokens: 2000, outputTokens: 1000, totalCostUsd: 0.014 },
|
|
477
478
|
};
|
|
478
479
|
}
|
|
479
480
|
if (mode === 'cost-optimized' || complexity === 'trivial' || complexity === 'low') {
|
|
@@ -488,10 +489,10 @@ function simulateRoutingDecision(task, options) {
|
|
|
488
489
|
if (mode === 'performance-optimized' || complexity === 'expert') {
|
|
489
490
|
return {
|
|
490
491
|
provider: 'claude',
|
|
491
|
-
model:
|
|
492
|
+
model: DEFAULT_OPUS_MODEL,
|
|
492
493
|
reason: 'Complex task requires flagship model',
|
|
493
494
|
confidence: 0.92,
|
|
494
|
-
estimatedCost: { inputTokens: 2000, outputTokens: 1000, totalCostUsd: 0.
|
|
495
|
+
estimatedCost: { inputTokens: 2000, outputTokens: 1000, totalCostUsd: 0.028 },
|
|
495
496
|
};
|
|
496
497
|
}
|
|
497
498
|
// Default
|
|
@@ -170,6 +170,9 @@ export function createPipelineCommand(context, cleanupAndExit, ensureInitialized
|
|
|
170
170
|
if (status.error)
|
|
171
171
|
console.log(` Error: ${chalk.red(status.error)}`);
|
|
172
172
|
}
|
|
173
|
+
console.log('');
|
|
174
|
+
await cleanupAndExit(status?.status === 'completed' ? 0 : 1);
|
|
175
|
+
return;
|
|
173
176
|
}
|
|
174
177
|
console.log('');
|
|
175
178
|
await cleanupAndExit(0);
|
|
@@ -250,6 +253,12 @@ export function createPipelineCommand(context, cleanupAndExit, ensureInitialized
|
|
|
250
253
|
if (status.error) {
|
|
251
254
|
console.log(` Error: ${chalk.red(status.error)}`);
|
|
252
255
|
}
|
|
256
|
+
for (const receipt of status.parallelCompositionReceipts ?? []) {
|
|
257
|
+
console.log(` Composition ${receipt.groupId}: ${receipt.disposition}`);
|
|
258
|
+
for (const conflict of receipt.conflicts) {
|
|
259
|
+
console.log(` ${conflict.kind}: ${conflict.stepA}.${conflict.pathA} / ${conflict.stepB}.${conflict.pathB}`);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
253
262
|
console.log('');
|
|
254
263
|
await cleanupAndExit(0);
|
|
255
264
|
});
|
|
@@ -29,7 +29,6 @@ export function createWorkflowCommand(context, cleanupAndExit, ensureInitialized
|
|
|
29
29
|
.action(async (file, options) => {
|
|
30
30
|
if (!await ensureInitialized())
|
|
31
31
|
return;
|
|
32
|
-
const fs = await import('fs');
|
|
33
32
|
const pathModule = await import('path');
|
|
34
33
|
const filePath = pathModule.resolve(file);
|
|
35
34
|
try {
|
|
@@ -123,6 +122,9 @@ export function createWorkflowCommand(context, cleanupAndExit, ensureInitialized
|
|
|
123
122
|
console.log(chalk.yellow(`Workflow ${finalStatus.status}`));
|
|
124
123
|
}
|
|
125
124
|
}
|
|
125
|
+
console.log('');
|
|
126
|
+
await cleanupAndExit(finalStatus?.status === 'completed' ? 0 : 1);
|
|
127
|
+
return;
|
|
126
128
|
}
|
|
127
129
|
else {
|
|
128
130
|
console.log(chalk.green('Workflow execution started'));
|
|
@@ -424,6 +426,12 @@ export function createWorkflowCommand(context, cleanupAndExit, ensureInitialized
|
|
|
424
426
|
if (status.error) {
|
|
425
427
|
console.log(chalk.red(`\n Error: ${status.error}`));
|
|
426
428
|
}
|
|
429
|
+
for (const receipt of status.parallelCompositionReceipts ?? []) {
|
|
430
|
+
console.log(` Composition ${receipt.groupId}: ${receipt.disposition}`);
|
|
431
|
+
for (const conflict of receipt.conflicts) {
|
|
432
|
+
console.log(` ${conflict.kind}: ${conflict.stepA}.${conflict.pathA} / ${conflict.stepB}.${conflict.pathB}`);
|
|
433
|
+
}
|
|
434
|
+
}
|
|
427
435
|
if (options.verbose && status.stepResults.size > 0) {
|
|
428
436
|
console.log(chalk.cyan('\n Step Results:'));
|
|
429
437
|
for (const [stepId, result] of status.stepResults) {
|
|
@@ -68,7 +68,7 @@ export class TaskHandler {
|
|
|
68
68
|
}
|
|
69
69
|
async executeSubmit(type, options, context) {
|
|
70
70
|
if (!await this.ensureInitialized())
|
|
71
|
-
return;
|
|
71
|
+
return this.cleanupAndExit(1);
|
|
72
72
|
try {
|
|
73
73
|
const taskType = type;
|
|
74
74
|
const payload = parseJsonOption(options.payload, 'payload');
|
|
@@ -112,9 +112,9 @@ export class TaskHandler {
|
|
|
112
112
|
waitSpinner.succeed('Task completed successfully');
|
|
113
113
|
completed = true;
|
|
114
114
|
}
|
|
115
|
-
else if (taskStatus.status === 'failed') {
|
|
116
|
-
waitSpinner.fail(`Task
|
|
117
|
-
|
|
115
|
+
else if (taskStatus.status === 'failed' || taskStatus.status === 'cancelled') {
|
|
116
|
+
waitSpinner.fail(`Task ${taskStatus.status}: ${taskStatus.error || 'No successful result'}`);
|
|
117
|
+
return this.cleanupAndExit(1);
|
|
118
118
|
}
|
|
119
119
|
else {
|
|
120
120
|
// Update spinner with progress info
|
|
@@ -127,11 +127,13 @@ export class TaskHandler {
|
|
|
127
127
|
}
|
|
128
128
|
if (!completed) {
|
|
129
129
|
waitSpinner.fail('Task timed out');
|
|
130
|
+
return this.cleanupAndExit(1);
|
|
130
131
|
}
|
|
131
132
|
}
|
|
132
133
|
}
|
|
133
134
|
else {
|
|
134
135
|
console.log(chalk.red(` Error: ${result.error.message}`));
|
|
136
|
+
return this.cleanupAndExit(1);
|
|
135
137
|
}
|
|
136
138
|
console.log('');
|
|
137
139
|
}
|
|
@@ -142,7 +144,7 @@ export class TaskHandler {
|
|
|
142
144
|
}
|
|
143
145
|
async executeList(options, context) {
|
|
144
146
|
if (!await this.ensureInitialized())
|
|
145
|
-
return;
|
|
147
|
+
return this.cleanupAndExit(1);
|
|
146
148
|
try {
|
|
147
149
|
const tasks = context.queen.listTasks({
|
|
148
150
|
status: options.status,
|
|
@@ -155,6 +157,7 @@ export class TaskHandler {
|
|
|
155
157
|
taskId: task.taskId,
|
|
156
158
|
type: task.task.type,
|
|
157
159
|
status: task.status,
|
|
160
|
+
cancellationResultPending: task.cancellationResultPending,
|
|
158
161
|
priority: task.task.priority,
|
|
159
162
|
domain: task.assignedDomain || null,
|
|
160
163
|
startedAt: task.startedAt?.toISOString() || null,
|
|
@@ -189,11 +192,14 @@ export class TaskHandler {
|
|
|
189
192
|
}
|
|
190
193
|
async executeCancel(taskId, context) {
|
|
191
194
|
if (!await this.ensureInitialized())
|
|
192
|
-
return;
|
|
195
|
+
return this.cleanupAndExit(1);
|
|
193
196
|
try {
|
|
194
197
|
const result = await context.queen.cancelTask(taskId);
|
|
195
198
|
if (result.success) {
|
|
196
|
-
console.log(chalk.green(`\n
|
|
199
|
+
console.log(chalk.green(`\n Cancellation requested: ${taskId}\n`));
|
|
200
|
+
if (context.queen.getTaskStatus(taskId)?.cancellationResultPending) {
|
|
201
|
+
console.log(chalk.yellow(' Task result pending; work may continue.'));
|
|
202
|
+
}
|
|
197
203
|
}
|
|
198
204
|
else {
|
|
199
205
|
console.log(chalk.red(`\n Failed to cancel task: ${result.error.message}\n`));
|
|
@@ -206,12 +212,12 @@ export class TaskHandler {
|
|
|
206
212
|
}
|
|
207
213
|
async executeTaskStatus(taskId, options, context) {
|
|
208
214
|
if (!await this.ensureInitialized())
|
|
209
|
-
return;
|
|
215
|
+
return this.cleanupAndExit(1);
|
|
210
216
|
try {
|
|
211
217
|
const task = context.queen.getTaskStatus(taskId);
|
|
212
218
|
if (!task) {
|
|
213
219
|
console.log(chalk.red(`\n Task not found: ${taskId}\n`));
|
|
214
|
-
return;
|
|
220
|
+
return this.cleanupAndExit(1);
|
|
215
221
|
}
|
|
216
222
|
const format = (options.format || 'text');
|
|
217
223
|
if (format === 'json') {
|
|
@@ -219,6 +225,7 @@ export class TaskHandler {
|
|
|
219
225
|
taskId,
|
|
220
226
|
type: task.task.type,
|
|
221
227
|
status: task.status,
|
|
228
|
+
cancellationResultPending: task.cancellationResultPending,
|
|
222
229
|
priority: task.task.priority,
|
|
223
230
|
domain: task.assignedDomain || null,
|
|
224
231
|
agents: task.assignedAgents,
|
|
@@ -237,6 +244,9 @@ export class TaskHandler {
|
|
|
237
244
|
console.log(chalk.blue(`\n Task: ${taskId}\n`));
|
|
238
245
|
console.log(` Type: ${task.task.type}`);
|
|
239
246
|
console.log(` Status: ${getStatusColor(task.status)}`);
|
|
247
|
+
if (task.cancellationResultPending) {
|
|
248
|
+
console.log(chalk.yellow(' Task result pending; work may continue.'));
|
|
249
|
+
}
|
|
240
250
|
console.log(` Priority: ${task.task.priority}`);
|
|
241
251
|
if (task.assignedDomain) {
|
|
242
252
|
console.log(` Domain: ${task.assignedDomain}`);
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { DomainPlugin, PluginLoader } from '../../kernel/interfaces.js';
|
|
2
|
+
import type { DomainName } from '../../shared/types/index.js';
|
|
3
|
+
/** Supply the Queen with the actual plugin instances that execute CLI tasks. */
|
|
4
|
+
export declare function loadCLIDomainPlugins(loader: PluginLoader): Promise<Map<DomainName, DomainPlugin>>;
|
|
5
|
+
//# sourceMappingURL=domain-plugins.d.ts.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Supply the Queen with the actual plugin instances that execute CLI tasks. */
|
|
2
|
+
export async function loadCLIDomainPlugins(loader) {
|
|
3
|
+
await loader.loadAll();
|
|
4
|
+
const plugins = new Map();
|
|
5
|
+
for (const domain of loader.getLoaded()) {
|
|
6
|
+
// load() returns the cached instance after loadAll(), including dependencies.
|
|
7
|
+
plugins.set(domain, await loader.load(domain));
|
|
8
|
+
}
|
|
9
|
+
return plugins;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=domain-plugins.js.map
|
package/dist/cli/index.js
CHANGED
|
@@ -98,6 +98,7 @@ async function autoInitialize() {
|
|
|
98
98
|
const { WorkflowOrchestrator } = await import('../coordination/workflow-orchestrator.js');
|
|
99
99
|
const { createQueenCoordinator } = await import('../coordination/queen-coordinator.js');
|
|
100
100
|
const { createPersistentScheduler } = await import('./scheduler/index.js');
|
|
101
|
+
const { loadCLIDomainPlugins } = await import('./helpers/domain-plugins.js');
|
|
101
102
|
context.kernel = new QEKernelImpl({
|
|
102
103
|
maxConcurrentAgents: 15,
|
|
103
104
|
memoryBackend: 'sqlite',
|
|
@@ -105,10 +106,11 @@ async function autoInitialize() {
|
|
|
105
106
|
lazyLoading: true,
|
|
106
107
|
enabledDomains: [...ALL_DOMAINS],
|
|
107
108
|
// CLI commands are short-lived and don't benefit from the bridge's
|
|
108
|
-
// event-driven domain reactions.
|
|
109
|
+
// event-driven domain reactions.
|
|
109
110
|
enableExperienceBridge: false,
|
|
110
111
|
});
|
|
111
112
|
await context.kernel.initialize();
|
|
113
|
+
const domainPlugins = await loadCLIDomainPlugins(context.kernel.plugins);
|
|
112
114
|
context.router = new CrossDomainEventRouter(context.kernel.eventBus);
|
|
113
115
|
await context.router.initialize();
|
|
114
116
|
const getDomainAPI = (domain) => {
|
|
@@ -119,7 +121,7 @@ async function autoInitialize() {
|
|
|
119
121
|
await context.workflowOrchestrator.initialize();
|
|
120
122
|
registerDomainWorkflowActions(context.kernel, context.workflowOrchestrator);
|
|
121
123
|
context.persistentScheduler = createPersistentScheduler();
|
|
122
|
-
context.queen = createQueenCoordinator(context.kernel, context.router, protocolExecutor, undefined);
|
|
124
|
+
context.queen = createQueenCoordinator(context.kernel, context.router, protocolExecutor, undefined, domainPlugins);
|
|
123
125
|
await context.queen.initialize();
|
|
124
126
|
// Bridge the CLI-initialized components into the MCP handlers' fleet state.
|
|
125
127
|
// The memory/agent/task/team/pipeline handlers are shared between the MCP
|
|
@@ -400,12 +402,19 @@ async function main() {
|
|
|
400
402
|
console.log(VERSION);
|
|
401
403
|
process.exit(0);
|
|
402
404
|
}
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
405
|
+
// File recovery must validate its input before anything opens, migrates, or
|
|
406
|
+
// auto-restores the project's database. Commander accepts `--` separators.
|
|
407
|
+
const commandArgs = process.argv.slice(2).filter(arg => arg !== '--');
|
|
408
|
+
const learningSnapshot = commandArgs[0] === 'learning'
|
|
409
|
+
&& (commandArgs[1] === 'backup' || commandArgs[1] === 'restore');
|
|
410
|
+
if (!learningSnapshot) {
|
|
411
|
+
const { bootstrapTokenTracking } = await import('../init/token-bootstrap.js');
|
|
412
|
+
await bootstrapTokenTracking({
|
|
413
|
+
enableOptimization: true,
|
|
414
|
+
enablePersistence: true,
|
|
415
|
+
verbose: process.env.AQE_VERBOSE === 'true',
|
|
416
|
+
});
|
|
417
|
+
}
|
|
409
418
|
await program.parseAsync();
|
|
410
419
|
// Foreground commands own their process lifetime after command dispatch.
|
|
411
420
|
if (isForegroundCommandActive())
|
|
@@ -72,7 +72,10 @@ export interface CIRunResult {
|
|
|
72
72
|
completedAt: Date;
|
|
73
73
|
duration: number;
|
|
74
74
|
phases: CIPhaseResult[];
|
|
75
|
+
/** True only when at least one gate ran and every gate passed. */
|
|
75
76
|
qualityGatePassed: boolean;
|
|
77
|
+
qualityGateStatus: 'passed' | 'failed' | 'not-run';
|
|
78
|
+
qualityGateEnforced: boolean;
|
|
76
79
|
overallStatus: 'passed' | 'failed' | 'warning';
|
|
77
80
|
exitCode: number;
|
|
78
81
|
}
|
|
@@ -3,10 +3,12 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import type { ContextSource, ContextRequest, ContextFragment } from './types.js';
|
|
5
5
|
export declare class GitContextSource implements ContextSource {
|
|
6
|
+
private readonly cwd?;
|
|
6
7
|
id: string;
|
|
7
8
|
name: string;
|
|
8
9
|
priority: number;
|
|
9
10
|
maxTokens: number;
|
|
11
|
+
constructor(cwd?: string | undefined);
|
|
10
12
|
gather(request: ContextRequest): Promise<ContextFragment[]>;
|
|
11
13
|
}
|
|
12
14
|
//# sourceMappingURL=git-source.d.ts.map
|
|
@@ -1,17 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Git Source - Recent commit context for target files
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { execFileSync } from 'node:child_process';
|
|
5
5
|
export class GitContextSource {
|
|
6
|
+
cwd;
|
|
6
7
|
id = 'git';
|
|
7
8
|
name = 'Git History';
|
|
8
9
|
priority = 60;
|
|
9
10
|
maxTokens = 1500;
|
|
11
|
+
constructor(cwd) {
|
|
12
|
+
this.cwd = cwd;
|
|
13
|
+
}
|
|
10
14
|
async gather(request) {
|
|
11
15
|
const fragments = [];
|
|
12
16
|
for (const file of request.targetFiles.slice(0, 5)) { // Cap at 5 files
|
|
13
17
|
try {
|
|
14
|
-
|
|
18
|
+
// filePaths can originate from MCP tool arguments. Pass each path as
|
|
19
|
+
// one argv element; interpolating it into a shell command would allow
|
|
20
|
+
// command execution via quotes or shell metacharacters.
|
|
21
|
+
const log = execFileSync('git', ['log', '--oneline', '-5', '--', file], { cwd: this.cwd ?? process.cwd(), encoding: 'utf-8', timeout: 5000, stdio: ['ignore', 'pipe', 'ignore'] }).trim();
|
|
15
22
|
if (log) {
|
|
16
23
|
const content = `Recent commits for ${file}:\n${log}`;
|
|
17
24
|
fragments.push({
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { TaskExecution } from './queen-types.js';
|
|
2
|
+
/**
|
|
3
|
+
* A late domain result closes the callback boundary after cancellation, but
|
|
4
|
+
* must not replace the terminal decision or count as a normal task outcome.
|
|
5
|
+
* A settled callback does not prove that arbitrary external effects stopped.
|
|
6
|
+
*/
|
|
7
|
+
export declare function settleCancelledTask(tasks: Map<string, TaskExecution>, taskId: string): {
|
|
8
|
+
ignored: boolean;
|
|
9
|
+
settledNow: boolean;
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=cancelled-task-settlement.d.ts.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A late domain result closes the callback boundary after cancellation, but
|
|
3
|
+
* must not replace the terminal decision or count as a normal task outcome.
|
|
4
|
+
* A settled callback does not prove that arbitrary external effects stopped.
|
|
5
|
+
*/
|
|
6
|
+
export function settleCancelledTask(tasks, taskId) {
|
|
7
|
+
const execution = tasks.get(taskId);
|
|
8
|
+
if (execution?.status !== 'cancelled')
|
|
9
|
+
return { ignored: false, settledNow: false };
|
|
10
|
+
if (!execution.cancellationResultPending)
|
|
11
|
+
return { ignored: true, settledNow: false };
|
|
12
|
+
tasks.set(taskId, { ...execution, cancellationResultPending: false });
|
|
13
|
+
return { ignored: true, settledNow: true };
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=cancelled-task-settlement.js.map
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* MM-003: Claude implementation for multi-model consensus verification
|
|
4
4
|
*
|
|
5
5
|
* Provides security finding verification using Claude models from Anthropic.
|
|
6
|
-
* Supports Claude
|
|
6
|
+
* Supports current Claude models (Sonnet 5, Opus 5.5, Haiku 4.5) with configurable parameters.
|
|
7
7
|
*
|
|
8
8
|
* @see docs/plans/AQE_V3_IMPROVEMENTS_PLAN.md - Phase 2: Multi-Model Verification
|
|
9
9
|
*/
|
|
@@ -12,7 +12,7 @@ import { BaseModelProvider } from '../model-provider';
|
|
|
12
12
|
/**
|
|
13
13
|
* Claude-specific API model versions (distinct from routing ClaudeModel)
|
|
14
14
|
*/
|
|
15
|
-
export type ClaudeAPIModel = 'claude-sonnet-
|
|
15
|
+
export type ClaudeAPIModel = 'claude-sonnet-5' | 'claude-opus-5' | 'claude-opus-5-5' | 'claude-haiku-4-5' | 'claude-sonnet-4-6' | 'claude-opus-4-7';
|
|
16
16
|
/**
|
|
17
17
|
* Configuration for Claude provider
|
|
18
18
|
*/
|
|
@@ -3,13 +3,15 @@
|
|
|
3
3
|
* MM-003: Claude implementation for multi-model consensus verification
|
|
4
4
|
*
|
|
5
5
|
* Provides security finding verification using Claude models from Anthropic.
|
|
6
|
-
* Supports Claude
|
|
6
|
+
* Supports current Claude models (Sonnet 5, Opus 5.5, Haiku 4.5) with configurable parameters.
|
|
7
7
|
*
|
|
8
8
|
* @see docs/plans/AQE_V3_IMPROVEMENTS_PLAN.md - Phase 2: Multi-Model Verification
|
|
9
9
|
*/
|
|
10
10
|
import { toErrorMessage, toError } from '../../../shared/error-utils.js';
|
|
11
11
|
import { BaseModelProvider, } from '../model-provider.js';
|
|
12
12
|
import { PromptCacheLatch } from '../../../shared/prompt-cache-latch.js';
|
|
13
|
+
import { getAnthropicParamPolicy } from '../../../shared/llm/anthropic-params.js';
|
|
14
|
+
import { DEFAULT_SONNET_MODEL, getModelCost } from '../../../shared/llm/model-registry.js';
|
|
13
15
|
// ============================================================================
|
|
14
16
|
// Claude Model Provider Implementation
|
|
15
17
|
// ============================================================================
|
|
@@ -34,21 +36,18 @@ export class ClaudeModelProvider extends BaseModelProvider {
|
|
|
34
36
|
id = 'claude';
|
|
35
37
|
name = 'Claude (Anthropic)';
|
|
36
38
|
type = 'claude';
|
|
37
|
-
//
|
|
38
|
-
// Claude 3.5 Sonnet: $3 input, $15 output per 1M tokens
|
|
39
|
-
// Claude 3 Opus: $15 input, $75 output per 1M tokens
|
|
39
|
+
// Per-token cost; set from the model registry in updateCostForModel().
|
|
40
40
|
costPerToken = {
|
|
41
41
|
input: 3 / 1_000_000, // Will be overridden per model
|
|
42
42
|
output: 15 / 1_000_000,
|
|
43
43
|
};
|
|
44
44
|
supportedModels = [
|
|
45
|
+
'claude-sonnet-5',
|
|
46
|
+
'claude-opus-5',
|
|
47
|
+
'claude-opus-5-5',
|
|
48
|
+
'claude-haiku-4-5',
|
|
45
49
|
'claude-sonnet-4-6',
|
|
46
50
|
'claude-opus-4-7',
|
|
47
|
-
'claude-haiku-4-5',
|
|
48
|
-
'claude-3-5-sonnet-20241022',
|
|
49
|
-
'claude-3-5-sonnet-latest',
|
|
50
|
-
'claude-3-opus-20240229',
|
|
51
|
-
'claude-3-opus-latest',
|
|
52
51
|
];
|
|
53
52
|
config;
|
|
54
53
|
apiKey;
|
|
@@ -72,7 +71,7 @@ export class ClaudeModelProvider extends BaseModelProvider {
|
|
|
72
71
|
this.baseUrl = config.baseUrl || process.env.ANTHROPIC_BASE_URL || 'https://api.anthropic.com';
|
|
73
72
|
this.config = {
|
|
74
73
|
apiKey,
|
|
75
|
-
defaultModel: config.defaultModel ||
|
|
74
|
+
defaultModel: config.defaultModel || DEFAULT_SONNET_MODEL,
|
|
76
75
|
baseUrl: this.baseUrl,
|
|
77
76
|
defaultTimeout: config.defaultTimeout || 30000,
|
|
78
77
|
maxRetries: config.maxRetries ?? 3,
|
|
@@ -118,7 +117,8 @@ export class ClaudeModelProvider extends BaseModelProvider {
|
|
|
118
117
|
const request = {
|
|
119
118
|
model,
|
|
120
119
|
max_tokens: maxTokens,
|
|
121
|
-
|
|
120
|
+
// Omitted for models that reject sampling params (Opus 4.7+, Sonnet 5).
|
|
121
|
+
temperature: getAnthropicParamPolicy(model).sendSampling ? temperature : undefined,
|
|
122
122
|
system: systemPrompt,
|
|
123
123
|
messages: [
|
|
124
124
|
{
|
|
@@ -253,20 +253,13 @@ Focus on accuracy over speed. It's better to mark something as "INCONCLUSIVE" if
|
|
|
253
253
|
* Update cost based on model selection
|
|
254
254
|
*/
|
|
255
255
|
updateCostForModel(model) {
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
}
|
|
263
|
-
else {
|
|
264
|
-
// Claude 3.5 Sonnet: $3 input, $15 output per 1M tokens
|
|
265
|
-
this.costPerToken = {
|
|
266
|
-
input: 3 / 1_000_000,
|
|
267
|
-
output: 15 / 1_000_000,
|
|
268
|
-
};
|
|
269
|
-
}
|
|
256
|
+
// Registry pricing; unknown models fall back to Sonnet-class pricing.
|
|
257
|
+
const cost = getModelCost(model);
|
|
258
|
+
const known = cost.inputCostPerMillion > 0 || cost.outputCostPerMillion > 0;
|
|
259
|
+
this.costPerToken = {
|
|
260
|
+
input: (known ? cost.inputCostPerMillion : 3) / 1_000_000,
|
|
261
|
+
output: (known ? cost.outputCostPerMillion : 15) / 1_000_000,
|
|
262
|
+
};
|
|
270
263
|
}
|
|
271
264
|
/**
|
|
272
265
|
* Sleep for specified milliseconds
|