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
|
@@ -9,7 +9,7 @@ export { handleTestGenerate, handleTestExecute, handleCoverageAnalyze, handleQua
|
|
|
9
9
|
export { handleInfraHealingStatus, handleInfraHealingFeedOutput, handleInfraHealingRecover, setInfraHealingOrchestrator, } from './domain-handlers';
|
|
10
10
|
export { handleTeamList, handleTeamHealth, handleTeamMessage, handleTeamBroadcast, handleTeamScale, handleTeamRebalance, } from './team-handlers';
|
|
11
11
|
export { handleMemoryStore, handleMemoryRetrieve, handleMemoryQuery, handleMemoryDelete, handleMemoryUsage, handleMemoryShare, } from './memory-handlers';
|
|
12
|
-
export { handlePipelineLoad, handlePipelineRun, handlePipelineList, handlePipelineValidate, getPipelineRegistry, getPipelineLoader, type PipelineLoadParams, type PipelineLoadResult, type PipelineRunParams, type PipelineRunResult, type PipelineListParams, type PipelineListResult, type PipelineValidateParams, type PipelineValidateResult, } from './pipeline-handlers.js';
|
|
12
|
+
export { handlePipelineLoad, handlePipelineRun, handlePipelineStatus, handlePipelineApprove, handlePipelineReject, type PipelineApprovalParams, type PipelineApprovalResult, handlePipelineList, handlePipelineValidate, getPipelineRegistry, getPipelineLoader, type PipelineLoadParams, type PipelineLoadResult, type PipelineRunParams, type PipelineRunResult, type PipelineStatusParams, type PipelineStatusResult, type PipelineListParams, type PipelineListResult, type PipelineValidateParams, type PipelineValidateResult, } from './pipeline-handlers.js';
|
|
13
13
|
export { handleValidationPipeline, type ValidationPipelineParams, type ValidationPipelineResult, } from './validation-pipeline-handler.js';
|
|
14
14
|
export { handleHypergraphQuery, type HypergraphQueryParams, type HypergraphQueryResult, } from './hypergraph-handler.js';
|
|
15
15
|
export { handleHeartbeatStatus, handleHeartbeatTrigger, handleHeartbeatLog, type HeartbeatStatusParams, type HeartbeatStatusResult, type HeartbeatTriggerParams, type HeartbeatTriggerResult, type HeartbeatLogParams, type HeartbeatLogResult, } from './heartbeat-handlers.js';
|
|
@@ -21,7 +21,7 @@ export { handleTeamList, handleTeamHealth, handleTeamMessage, handleTeamBroadcas
|
|
|
21
21
|
// Memory handlers
|
|
22
22
|
export { handleMemoryStore, handleMemoryRetrieve, handleMemoryQuery, handleMemoryDelete, handleMemoryUsage, handleMemoryShare, } from './memory-handlers.js';
|
|
23
23
|
// Pipeline handlers (Imp-9: YAML Deterministic Pipelines)
|
|
24
|
-
export { handlePipelineLoad, handlePipelineRun, handlePipelineList, handlePipelineValidate, getPipelineRegistry, getPipelineLoader, } from './pipeline-handlers.js';
|
|
24
|
+
export { handlePipelineLoad, handlePipelineRun, handlePipelineStatus, handlePipelineApprove, handlePipelineReject, handlePipelineList, handlePipelineValidate, getPipelineRegistry, getPipelineLoader, } from './pipeline-handlers.js';
|
|
25
25
|
// Validation pipeline handler (BMAD-003)
|
|
26
26
|
export { handleValidationPipeline, } from './validation-pipeline-handler.js';
|
|
27
27
|
// Hypergraph query handler
|
|
@@ -4,13 +4,14 @@
|
|
|
4
4
|
* Exposes YAML deterministic pipelines through MCP tools:
|
|
5
5
|
* - pipeline_load: Load a pipeline from a YAML string
|
|
6
6
|
* - pipeline_run: Execute a loaded pipeline
|
|
7
|
+
* - pipeline_status: Read execution and composition evidence
|
|
7
8
|
* - pipeline_list: List all registered pipelines (built-in + YAML)
|
|
8
9
|
* - pipeline_validate: Validate YAML without registering
|
|
9
10
|
*/
|
|
10
11
|
import type { ToolResult } from '../types.js';
|
|
11
12
|
import { YamlPipelineLoader } from '../../coordination/yaml-pipeline-loader.js';
|
|
12
13
|
import { YamlPipelineRegistry } from '../../coordination/yaml-pipeline-registry.js';
|
|
13
|
-
import type { WorkflowListItem } from '../../coordination/workflow-types.js';
|
|
14
|
+
import type { ParallelCompositionReceipt, WorkflowListItem, WorkflowStatus } from '../../coordination/workflow-types.js';
|
|
14
15
|
export interface PipelineLoadParams {
|
|
15
16
|
yaml: string;
|
|
16
17
|
variables?: Record<string, unknown>;
|
|
@@ -32,6 +33,20 @@ export interface PipelineRunResult {
|
|
|
32
33
|
pipelineId: string;
|
|
33
34
|
status: string;
|
|
34
35
|
}
|
|
36
|
+
export interface PipelineStatusParams {
|
|
37
|
+
executionId: string;
|
|
38
|
+
}
|
|
39
|
+
export interface PipelineStatusResult {
|
|
40
|
+
executionId: string;
|
|
41
|
+
pipelineId: string;
|
|
42
|
+
status: WorkflowStatus;
|
|
43
|
+
progress: number;
|
|
44
|
+
error?: string;
|
|
45
|
+
completedSteps: string[];
|
|
46
|
+
failedSteps: string[];
|
|
47
|
+
skippedSteps: string[];
|
|
48
|
+
parallelCompositionReceipts: ParallelCompositionReceipt[];
|
|
49
|
+
}
|
|
35
50
|
export type PipelineListParams = Record<string, never>;
|
|
36
51
|
export interface PipelineListResult {
|
|
37
52
|
pipelines: WorkflowListItem[];
|
|
@@ -64,6 +79,8 @@ export declare function handlePipelineLoad(params: PipelineLoadParams): Promise<
|
|
|
64
79
|
* Execute a previously loaded/registered pipeline.
|
|
65
80
|
*/
|
|
66
81
|
export declare function handlePipelineRun(params: PipelineRunParams): Promise<ToolResult<PipelineRunResult>>;
|
|
82
|
+
/** Return composition evidence without exposing raw step outputs. */
|
|
83
|
+
export declare function handlePipelineStatus(params: PipelineStatusParams): Promise<ToolResult<PipelineStatusResult>>;
|
|
67
84
|
/**
|
|
68
85
|
* List all registered pipelines (built-in + YAML).
|
|
69
86
|
*/
|
|
@@ -72,4 +89,17 @@ export declare function handlePipelineList(_params: PipelineListParams): Promise
|
|
|
72
89
|
* Validate a YAML pipeline without registering it.
|
|
73
90
|
*/
|
|
74
91
|
export declare function handlePipelineValidate(params: PipelineValidateParams): Promise<ToolResult<PipelineValidateResult>>;
|
|
92
|
+
/** Resolve a pending gate on the same orchestrator used by pipeline_run. */
|
|
93
|
+
export interface PipelineApprovalParams {
|
|
94
|
+
executionId: string;
|
|
95
|
+
stepId: string;
|
|
96
|
+
reason?: string;
|
|
97
|
+
}
|
|
98
|
+
export interface PipelineApprovalResult {
|
|
99
|
+
executionId: string;
|
|
100
|
+
stepId: string;
|
|
101
|
+
decision: 'approve' | 'reject';
|
|
102
|
+
}
|
|
103
|
+
export declare function handlePipelineApprove(params: PipelineApprovalParams): Promise<ToolResult<PipelineApprovalResult>>;
|
|
104
|
+
export declare function handlePipelineReject(params: PipelineApprovalParams): Promise<ToolResult<PipelineApprovalResult>>;
|
|
75
105
|
//# sourceMappingURL=pipeline-handlers.d.ts.map
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Exposes YAML deterministic pipelines through MCP tools:
|
|
5
5
|
* - pipeline_load: Load a pipeline from a YAML string
|
|
6
6
|
* - pipeline_run: Execute a loaded pipeline
|
|
7
|
+
* - pipeline_status: Read execution and composition evidence
|
|
7
8
|
* - pipeline_list: List all registered pipelines (built-in + YAML)
|
|
8
9
|
* - pipeline_validate: Validate YAML without registering
|
|
9
10
|
*/
|
|
@@ -129,6 +130,34 @@ export async function handlePipelineRun(params) {
|
|
|
129
130
|
};
|
|
130
131
|
}
|
|
131
132
|
}
|
|
133
|
+
/** Return composition evidence without exposing raw step outputs. */
|
|
134
|
+
export async function handlePipelineStatus(params) {
|
|
135
|
+
if (!isFleetInitialized())
|
|
136
|
+
return { success: false, error: 'Fleet not initialized. Call fleet_init first.' };
|
|
137
|
+
const { workflowOrchestrator } = getFleetState();
|
|
138
|
+
if (!workflowOrchestrator)
|
|
139
|
+
return { success: false, error: 'Workflow orchestrator not available.' };
|
|
140
|
+
if (!params.executionId || typeof params.executionId !== 'string') {
|
|
141
|
+
return { success: false, error: "Parameter 'executionId' is required and must be a string." };
|
|
142
|
+
}
|
|
143
|
+
const status = workflowOrchestrator.getWorkflowStatus(params.executionId);
|
|
144
|
+
if (!status)
|
|
145
|
+
return { success: false, error: `Pipeline execution not found: ${params.executionId}` };
|
|
146
|
+
return {
|
|
147
|
+
success: true,
|
|
148
|
+
data: {
|
|
149
|
+
executionId: status.executionId,
|
|
150
|
+
pipelineId: status.workflowId,
|
|
151
|
+
status: status.status,
|
|
152
|
+
progress: status.progress,
|
|
153
|
+
error: status.error,
|
|
154
|
+
completedSteps: status.completedSteps,
|
|
155
|
+
failedSteps: status.failedSteps,
|
|
156
|
+
skippedSteps: status.skippedSteps,
|
|
157
|
+
parallelCompositionReceipts: status.parallelCompositionReceipts ?? [],
|
|
158
|
+
},
|
|
159
|
+
};
|
|
160
|
+
}
|
|
132
161
|
/**
|
|
133
162
|
* List all registered pipelines (built-in + YAML).
|
|
134
163
|
*/
|
|
@@ -205,4 +234,38 @@ export async function handlePipelineValidate(params) {
|
|
|
205
234
|
};
|
|
206
235
|
}
|
|
207
236
|
}
|
|
237
|
+
export async function handlePipelineApprove(params) {
|
|
238
|
+
return resolvePipelineApproval(params, 'approve');
|
|
239
|
+
}
|
|
240
|
+
export async function handlePipelineReject(params) {
|
|
241
|
+
return resolvePipelineApproval(params, 'reject');
|
|
242
|
+
}
|
|
243
|
+
function resolvePipelineApproval(params, decision) {
|
|
244
|
+
if (!isFleetInitialized()) {
|
|
245
|
+
return { success: false, error: 'Fleet not initialized. Call fleet_init first.' };
|
|
246
|
+
}
|
|
247
|
+
for (const key of ['executionId', 'stepId']) {
|
|
248
|
+
if (typeof params[key] !== 'string' || !params[key].trim()) {
|
|
249
|
+
return { success: false, error: `Parameter '${key}' is required and must be a non-empty string.` };
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
if (params.reason !== undefined && typeof params.reason !== 'string') {
|
|
253
|
+
return { success: false, error: "Parameter 'reason' must be a string." };
|
|
254
|
+
}
|
|
255
|
+
const { workflowOrchestrator } = getFleetState();
|
|
256
|
+
if (!workflowOrchestrator)
|
|
257
|
+
return { success: false, error: 'Workflow orchestrator not available.' };
|
|
258
|
+
const execution = workflowOrchestrator.getWorkflowStatus(params.executionId);
|
|
259
|
+
if (!execution)
|
|
260
|
+
return { success: false, error: `Execution not found: ${params.executionId}` };
|
|
261
|
+
if (execution.status !== 'running') {
|
|
262
|
+
return { success: false, error: `Cannot ${decision} a step while the workflow is ${execution.status}.` };
|
|
263
|
+
}
|
|
264
|
+
const accepted = decision === 'approve'
|
|
265
|
+
? workflowOrchestrator.approveStep(params.executionId, params.stepId)
|
|
266
|
+
: workflowOrchestrator.rejectStep(params.executionId, params.stepId, params.reason);
|
|
267
|
+
if (!accepted)
|
|
268
|
+
return { success: false, error: 'No pending approval found for this execution and step.' };
|
|
269
|
+
return { success: true, data: { executionId: params.executionId, stepId: params.stepId, decision } };
|
|
270
|
+
}
|
|
208
271
|
//# sourceMappingURL=pipeline-handlers.js.map
|
|
@@ -15,6 +15,7 @@ export declare function handleTaskStatus(params: TaskStatusParams): Promise<Tool
|
|
|
15
15
|
export declare function handleTaskCancel(params: TaskCancelParams): Promise<ToolResult<{
|
|
16
16
|
taskId: string;
|
|
17
17
|
cancelled: boolean;
|
|
18
|
+
cancellationResultPending: boolean;
|
|
18
19
|
}>>;
|
|
19
20
|
export interface TaskOrchestrateParams {
|
|
20
21
|
task: string;
|
|
@@ -47,14 +47,18 @@ export async function handleTaskSubmit(params) {
|
|
|
47
47
|
}
|
|
48
48
|
// Get task status for response
|
|
49
49
|
const taskStatus = queen.getTaskStatus(result.value);
|
|
50
|
+
if (!taskStatus) {
|
|
51
|
+
return { success: false, error: `Task ${result.value} was accepted but its execution status is unavailable.` };
|
|
52
|
+
}
|
|
50
53
|
return {
|
|
51
54
|
success: true,
|
|
52
55
|
data: {
|
|
53
56
|
taskId: result.value,
|
|
54
57
|
type: params.type,
|
|
55
58
|
priority: params.priority || 'p1',
|
|
56
|
-
status: taskStatus
|
|
57
|
-
|
|
59
|
+
status: taskStatus.status,
|
|
60
|
+
error: taskStatus.error,
|
|
61
|
+
assignedDomain: taskStatus.assignedDomain,
|
|
58
62
|
},
|
|
59
63
|
};
|
|
60
64
|
}
|
|
@@ -88,6 +92,7 @@ export async function handleTaskList(params) {
|
|
|
88
92
|
taskId: execution.taskId,
|
|
89
93
|
type: execution.task.type,
|
|
90
94
|
status: execution.status,
|
|
95
|
+
cancellationResultPending: execution.cancellationResultPending,
|
|
91
96
|
priority: execution.task.priority,
|
|
92
97
|
assignedDomain: execution.assignedDomain,
|
|
93
98
|
assignedAgents: execution.assignedAgents,
|
|
@@ -135,6 +140,7 @@ export async function handleTaskStatus(params) {
|
|
|
135
140
|
taskId: execution.taskId,
|
|
136
141
|
type: execution.task.type,
|
|
137
142
|
status: execution.status,
|
|
143
|
+
cancellationResultPending: execution.cancellationResultPending,
|
|
138
144
|
priority: execution.task.priority,
|
|
139
145
|
assignedDomain: execution.assignedDomain,
|
|
140
146
|
assignedAgents: execution.assignedAgents,
|
|
@@ -183,6 +189,7 @@ export async function handleTaskCancel(params) {
|
|
|
183
189
|
data: {
|
|
184
190
|
taskId: params.taskId,
|
|
185
191
|
cancelled: true,
|
|
192
|
+
cancellationResultPending: queen.getTaskStatus(params.taskId)?.cancellationResultPending ?? false,
|
|
186
193
|
},
|
|
187
194
|
};
|
|
188
195
|
}
|
|
@@ -780,6 +787,7 @@ export async function handleTaskStatusWithLearning(params) {
|
|
|
780
787
|
taskId: execution.taskId,
|
|
781
788
|
type: execution.task.type,
|
|
782
789
|
status: execution.status,
|
|
790
|
+
cancellationResultPending: execution.cancellationResultPending,
|
|
783
791
|
priority: execution.task.priority,
|
|
784
792
|
assignedDomain: execution.assignedDomain,
|
|
785
793
|
assignedAgents: execution.assignedAgents,
|
|
@@ -870,13 +878,13 @@ export function subscribeTrajectoryEvents(router) {
|
|
|
870
878
|
unsubscribeTrajectoryEvents(router);
|
|
871
879
|
const completedId = router.subscribeToEventType('TaskCompleted', async (event) => {
|
|
872
880
|
const { taskId } = event.payload;
|
|
873
|
-
if (taskId) {
|
|
881
|
+
if (taskId && getFleetState().queen?.getTaskStatus(taskId)?.status !== 'cancelled') {
|
|
874
882
|
await endTaskTrajectory(taskId, true).catch(() => { });
|
|
875
883
|
}
|
|
876
884
|
});
|
|
877
885
|
const failedId = router.subscribeToEventType('TaskFailed', async (event) => {
|
|
878
886
|
const { taskId, error: errorMsg } = event.payload;
|
|
879
|
-
if (taskId) {
|
|
887
|
+
if (taskId && getFleetState().queen?.getTaskStatus(taskId)?.status !== 'cancelled') {
|
|
880
888
|
await endTaskTrajectory(taskId, false, errorMsg).catch(() => { });
|
|
881
889
|
}
|
|
882
890
|
});
|
|
@@ -39,6 +39,8 @@ export declare class MCPProtocolServer {
|
|
|
39
39
|
* errors back to future callers.
|
|
40
40
|
*/
|
|
41
41
|
private isSuccessfulResult;
|
|
42
|
+
/** A completed tool can legitimately report a negative domain verdict. */
|
|
43
|
+
private isFailedToolResult;
|
|
42
44
|
private readonly config;
|
|
43
45
|
private readonly transport;
|
|
44
46
|
private readonly registry;
|
|
@@ -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') {
|
|
@@ -437,20 +459,25 @@ export class MCPProtocolServer {
|
|
|
437
459
|
// Explicit quality gates depend on current measured evidence and its age,
|
|
438
460
|
// not just arguments. A cached approval can outlive or contradict evidence.
|
|
439
461
|
const measuredQualityGate = name === 'quality_assess' && processedCtx.params?.runGate === true;
|
|
440
|
-
|
|
462
|
+
cacheable = tool.definition.isConcurrencySafe === true && !measuredQualityGate;
|
|
441
463
|
let cacheFingerprint = null;
|
|
464
|
+
let cacheGeneration = null;
|
|
442
465
|
if (cacheable && process.env.AQE_SESSION_CACHE !== 'off') {
|
|
443
466
|
try {
|
|
444
467
|
const { getSessionCache } = await import('../optimization/session-cache.js');
|
|
445
468
|
const cache = getSessionCache();
|
|
446
469
|
const { domain, action } = parseToolDomainAction(name);
|
|
470
|
+
cacheGeneration = cache.getGeneration();
|
|
447
471
|
cacheFingerprint = cache.computeFingerprint(domain, action, processedCtx.params || {});
|
|
448
472
|
const hit = cache.get(cacheFingerprint);
|
|
449
473
|
if (hit) {
|
|
450
474
|
// Cache hit — return the stored result without running the handler.
|
|
451
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);
|
|
452
479
|
this.eventAdapter.adapt({
|
|
453
|
-
success:
|
|
480
|
+
success: cachedSuccess,
|
|
454
481
|
data: hit.result,
|
|
455
482
|
metadata: {
|
|
456
483
|
executionTime: performance.now() - startTime,
|
|
@@ -459,12 +486,13 @@ export class MCPProtocolServer {
|
|
|
459
486
|
toolName: name,
|
|
460
487
|
},
|
|
461
488
|
});
|
|
462
|
-
success =
|
|
489
|
+
success = cachedSuccess;
|
|
463
490
|
return {
|
|
464
491
|
content: [{
|
|
465
492
|
type: 'text',
|
|
466
493
|
text: loopSteeringPrefix ? loopSteeringPrefix + cachedText : cachedText,
|
|
467
494
|
}],
|
|
495
|
+
...(cachedSuccess ? {} : { isError: true }),
|
|
468
496
|
};
|
|
469
497
|
}
|
|
470
498
|
}
|
|
@@ -474,36 +502,26 @@ export class MCPProtocolServer {
|
|
|
474
502
|
}
|
|
475
503
|
}
|
|
476
504
|
const result = await tool.handler(processedCtx.params);
|
|
477
|
-
success = true;
|
|
478
505
|
// IMP-00: Execute post-tool-result middleware
|
|
479
506
|
const processedResult = await this.middlewareChain.executePostHooks(processedCtx, result);
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
/_(store|delete|set|share|update|remove|clear|promote|cleanup)$/.test(name) &&
|
|
487
|
-
this.isSuccessfulResult(processedResult)) {
|
|
488
|
-
try {
|
|
489
|
-
const { getSessionCache } = await import('../optimization/session-cache.js');
|
|
490
|
-
const { domain } = parseToolDomainAction(name);
|
|
491
|
-
getSessionCache().invalidateDomain(domain);
|
|
492
|
-
}
|
|
493
|
-
catch {
|
|
494
|
-
// never block tool execution on cache invalidation
|
|
495
|
-
}
|
|
496
|
-
}
|
|
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);
|
|
497
513
|
// Issue #473: Store successful results for future cache hits.
|
|
498
514
|
// Only cache successful results — error objects shouldn't be served back.
|
|
499
515
|
if (cacheable && cacheFingerprint && this.isSuccessfulResult(processedResult)) {
|
|
500
516
|
try {
|
|
501
517
|
const { getSessionCache } = await import('../optimization/session-cache.js');
|
|
502
518
|
const cache = getSessionCache();
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
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
|
+
}
|
|
507
525
|
}
|
|
508
526
|
catch {
|
|
509
527
|
// never block on cache write
|
|
@@ -511,14 +529,14 @@ export class MCPProtocolServer {
|
|
|
511
529
|
}
|
|
512
530
|
// Emit AG-UI result event for tool completion
|
|
513
531
|
this.eventAdapter.adapt({
|
|
514
|
-
success:
|
|
532
|
+
success: resultSucceeded,
|
|
515
533
|
data: processedResult,
|
|
516
534
|
metadata: {
|
|
517
535
|
executionTime: performance.now() - startTime,
|
|
518
536
|
requestId: stepId,
|
|
519
537
|
},
|
|
520
538
|
});
|
|
521
|
-
|
|
539
|
+
success = resultSucceeded;
|
|
522
540
|
return {
|
|
523
541
|
content: [
|
|
524
542
|
{
|
|
@@ -526,10 +544,14 @@ export class MCPProtocolServer {
|
|
|
526
544
|
text: loopSteeringPrefix ? loopSteeringPrefix + resultText : resultText,
|
|
527
545
|
},
|
|
528
546
|
],
|
|
547
|
+
...(resultSucceeded ? {} : { isError: true }),
|
|
529
548
|
};
|
|
530
549
|
}
|
|
531
550
|
catch (err) {
|
|
532
|
-
|
|
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');
|
|
533
555
|
// IMP-08: Detect context overflow (413) and trigger reactive compaction
|
|
534
556
|
const errorMsg = error.message || '';
|
|
535
557
|
const is413 = errorMsg.includes('413')
|
|
@@ -549,22 +571,27 @@ export class MCPProtocolServer {
|
|
|
549
571
|
// Emit AG-UI result event for tool failure
|
|
550
572
|
this.eventAdapter.adapt({
|
|
551
573
|
success: false,
|
|
552
|
-
error:
|
|
574
|
+
error: 'Tool execution failed',
|
|
553
575
|
metadata: {
|
|
554
576
|
executionTime: performance.now() - startTime,
|
|
555
577
|
requestId: stepId,
|
|
556
578
|
},
|
|
557
579
|
});
|
|
558
|
-
return
|
|
559
|
-
content: [
|
|
560
|
-
{
|
|
561
|
-
type: 'text',
|
|
562
|
-
text: JSON.stringify({ error: error.message || 'Tool execution failed' }),
|
|
563
|
-
},
|
|
564
|
-
],
|
|
565
|
-
};
|
|
580
|
+
return toolExecutionError();
|
|
566
581
|
}
|
|
567
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
|
+
}
|
|
568
595
|
// Record actual MCP tool execution latency
|
|
569
596
|
const latency = performance.now() - startTime;
|
|
570
597
|
this.monitor.recordLatency(name, latency, success);
|
|
@@ -655,7 +682,7 @@ export class MCPProtocolServer {
|
|
|
655
682
|
this.registerTool({
|
|
656
683
|
definition: {
|
|
657
684
|
name: 'task_cancel',
|
|
658
|
-
description: '
|
|
685
|
+
description: 'Request task cancellation by ID. A running handler may continue; check cancellationResultPending in task_status.',
|
|
659
686
|
category: 'task',
|
|
660
687
|
parameters: [
|
|
661
688
|
{ name: 'taskId', type: 'string', description: 'Task ID to cancel', required: true },
|
|
@@ -1248,6 +1275,21 @@ export class MCPProtocolServer {
|
|
|
1248
1275
|
},
|
|
1249
1276
|
handler: (params) => handlePipelineRun(params),
|
|
1250
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
|
+
}
|
|
1251
1293
|
this.registerTool({
|
|
1252
1294
|
definition: {
|
|
1253
1295
|
name: 'pipeline_list',
|
|
@@ -1258,6 +1300,19 @@ export class MCPProtocolServer {
|
|
|
1258
1300
|
},
|
|
1259
1301
|
handler: (params) => handlePipelineList(params),
|
|
1260
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
|
+
});
|
|
1261
1316
|
this.registerTool({
|
|
1262
1317
|
definition: {
|
|
1263
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
|
@@ -433,7 +433,9 @@ export interface TaskSubmitResult {
|
|
|
433
433
|
taskId: string;
|
|
434
434
|
type: TaskType;
|
|
435
435
|
priority: Priority;
|
|
436
|
-
status: '
|
|
436
|
+
status: TaskStatusResult['status'];
|
|
437
|
+
/** Execution failure, if the task already reached a failed state. */
|
|
438
|
+
error?: string;
|
|
437
439
|
assignedDomain?: DomainName;
|
|
438
440
|
}
|
|
439
441
|
/**
|
|
@@ -443,6 +445,8 @@ export interface TaskStatusResult {
|
|
|
443
445
|
taskId: string;
|
|
444
446
|
type: TaskType;
|
|
445
447
|
status: 'queued' | 'assigned' | 'running' | 'completed' | 'failed' | 'cancelled';
|
|
448
|
+
/** Reports an outstanding task result; false does not prove external effects stopped. */
|
|
449
|
+
cancellationResultPending?: boolean;
|
|
446
450
|
priority: Priority;
|
|
447
451
|
assignedDomain?: DomainName;
|
|
448
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
|