@agentic-qe/v3 3.0.0-alpha.6 → 3.0.0-alpha.7
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/assets/agents/v3/subagents/v3-qe-code-reviewer.md +339 -0
- package/assets/agents/v3/subagents/v3-qe-integration-reviewer.md +344 -0
- package/assets/agents/v3/subagents/v3-qe-performance-reviewer.md +351 -0
- package/assets/agents/v3/subagents/v3-qe-security-reviewer.md +374 -0
- package/assets/agents/v3/subagents/v3-qe-tdd-green.md +334 -0
- package/assets/agents/v3/subagents/v3-qe-tdd-red.md +329 -0
- package/assets/agents/v3/subagents/v3-qe-tdd-refactor.md +361 -0
- package/assets/agents/v3/v3-qe-accessibility-auditor.md +266 -0
- package/assets/agents/v3/v3-qe-bdd-generator.md +279 -0
- package/assets/agents/v3/v3-qe-chaos-engineer.md +265 -0
- package/assets/agents/v3/v3-qe-code-complexity.md +298 -0
- package/assets/agents/v3/v3-qe-code-intelligence.md +262 -0
- package/assets/agents/v3/v3-qe-contract-validator.md +267 -0
- package/assets/agents/v3/v3-qe-coverage-specialist.md +227 -0
- package/assets/agents/v3/v3-qe-defect-predictor.md +251 -0
- package/assets/agents/v3/v3-qe-dependency-mapper.md +277 -0
- package/assets/agents/v3/v3-qe-deployment-advisor.md +275 -0
- package/assets/agents/v3/v3-qe-flaky-hunter.md +248 -0
- package/assets/agents/v3/v3-qe-fleet-commander.md +293 -0
- package/assets/agents/v3/v3-qe-gap-detector.md +260 -0
- package/assets/agents/v3/v3-qe-graphql-tester.md +308 -0
- package/assets/agents/v3/v3-qe-impact-analyzer.md +299 -0
- package/assets/agents/v3/v3-qe-integration-tester.md +238 -0
- package/assets/agents/v3/v3-qe-kg-builder.md +273 -0
- package/assets/agents/v3/v3-qe-learning-coordinator.md +226 -0
- package/assets/agents/v3/v3-qe-load-tester.md +280 -0
- package/assets/agents/v3/v3-qe-metrics-optimizer.md +300 -0
- package/assets/agents/v3/v3-qe-mutation-tester.md +301 -0
- package/assets/agents/v3/v3-qe-parallel-executor.md +240 -0
- package/assets/agents/v3/v3-qe-pattern-learner.md +271 -0
- package/assets/agents/v3/v3-qe-performance-tester.md +262 -0
- package/assets/agents/v3/v3-qe-property-tester.md +247 -0
- package/assets/agents/v3/v3-qe-quality-gate.md +218 -0
- package/assets/agents/v3/v3-qe-queen-coordinator.md +214 -0
- package/assets/agents/v3/v3-qe-qx-partner.md +313 -0
- package/assets/agents/v3/v3-qe-regression-analyzer.md +322 -0
- package/assets/agents/v3/v3-qe-requirements-validator.md +360 -0
- package/assets/agents/v3/v3-qe-responsive-tester.md +311 -0
- package/assets/agents/v3/v3-qe-retry-handler.md +256 -0
- package/assets/agents/v3/v3-qe-risk-assessor.md +273 -0
- package/assets/agents/v3/v3-qe-root-cause-analyzer.md +286 -0
- package/assets/agents/v3/v3-qe-security-auditor.md +299 -0
- package/assets/agents/v3/v3-qe-security-scanner.md +235 -0
- package/assets/agents/v3/v3-qe-tdd-specialist.md +239 -0
- package/assets/agents/v3/v3-qe-test-architect.md +233 -0
- package/assets/agents/v3/v3-qe-transfer-specialist.md +295 -0
- package/assets/agents/v3/v3-qe-visual-tester.md +232 -0
- package/assets/skills/accessibility-testing/SKILL.md +216 -0
- package/assets/skills/agentdb-advanced/SKILL.md +550 -0
- package/assets/skills/agentdb-learning/SKILL.md +545 -0
- package/assets/skills/agentdb-memory-patterns/SKILL.md +339 -0
- package/assets/skills/agentdb-optimization/SKILL.md +509 -0
- package/assets/skills/agentdb-vector-search/SKILL.md +339 -0
- package/assets/skills/agentic-jujutsu/SKILL.md +645 -0
- package/assets/skills/agentic-quality-engineering/SKILL.md +335 -0
- package/assets/skills/api-testing-patterns/SKILL.md +294 -0
- package/assets/skills/aqe-v2-v3-migration/skill.md +322 -0
- package/assets/skills/brutal-honesty-review/README.md +218 -0
- package/assets/skills/brutal-honesty-review/SKILL.md +235 -0
- package/assets/skills/brutal-honesty-review/resources/assessment-rubrics.md +295 -0
- package/assets/skills/brutal-honesty-review/resources/review-template.md +102 -0
- package/assets/skills/brutal-honesty-review/scripts/assess-code.sh +179 -0
- package/assets/skills/brutal-honesty-review/scripts/assess-tests.sh +223 -0
- package/assets/skills/bug-reporting-excellence/SKILL.md +225 -0
- package/assets/skills/chaos-engineering-resilience/SKILL.md +158 -0
- package/assets/skills/cicd-pipeline-qe-orchestrator/README.md +304 -0
- package/assets/skills/cicd-pipeline-qe-orchestrator/SKILL.md +315 -0
- package/assets/skills/cicd-pipeline-qe-orchestrator/resources/workflows/microservice-pipeline.md +239 -0
- package/assets/skills/cicd-pipeline-qe-orchestrator/resources/workflows/mobile-pipeline.md +375 -0
- package/assets/skills/cicd-pipeline-qe-orchestrator/resources/workflows/monolith-pipeline.md +268 -0
- package/assets/skills/code-review-quality/SKILL.md +227 -0
- package/assets/skills/compatibility-testing/SKILL.md +205 -0
- package/assets/skills/compliance-testing/SKILL.md +225 -0
- package/assets/skills/consultancy-practices/SKILL.md +202 -0
- package/assets/skills/context-driven-testing/SKILL.md +196 -0
- package/assets/skills/contract-testing/SKILL.md +222 -0
- package/assets/skills/database-testing/SKILL.md +244 -0
- package/assets/skills/exploratory-testing-advanced/SKILL.md +201 -0
- package/assets/skills/flow-nexus-neural/SKILL.md +738 -0
- package/assets/skills/flow-nexus-platform/SKILL.md +1157 -0
- package/assets/skills/flow-nexus-swarm/SKILL.md +610 -0
- package/assets/skills/github-code-review/SKILL.md +1140 -0
- package/assets/skills/github-multi-repo/SKILL.md +874 -0
- package/assets/skills/github-project-management/SKILL.md +1277 -0
- package/assets/skills/github-release-management/SKILL.md +1081 -0
- package/assets/skills/github-workflow-automation/SKILL.md +1065 -0
- package/assets/skills/hive-mind-advanced/SKILL.md +712 -0
- package/assets/skills/holistic-testing-pact/SKILL.md +171 -0
- package/assets/skills/hooks-automation/SKILL.md +1201 -0
- package/assets/skills/localization-testing/SKILL.md +221 -0
- package/assets/skills/mobile-testing/SKILL.md +219 -0
- package/assets/skills/mutation-testing/SKILL.md +229 -0
- package/assets/skills/n8n-expression-testing/SKILL.md +434 -0
- package/assets/skills/n8n-integration-testing-patterns/SKILL.md +540 -0
- package/assets/skills/n8n-security-testing/SKILL.md +599 -0
- package/assets/skills/n8n-trigger-testing-strategies/SKILL.md +541 -0
- package/assets/skills/n8n-workflow-testing-fundamentals/SKILL.md +447 -0
- package/assets/skills/pair-programming/SKILL.md +1202 -0
- package/assets/skills/performance-analysis/SKILL.md +563 -0
- package/assets/skills/performance-testing/SKILL.md +310 -0
- package/assets/skills/quality-metrics/SKILL.md +225 -0
- package/assets/skills/reasoningbank-agentdb/SKILL.md +446 -0
- package/assets/skills/reasoningbank-intelligence/SKILL.md +201 -0
- package/assets/skills/refactoring-patterns/SKILL.md +205 -0
- package/assets/skills/regression-testing/SKILL.md +227 -0
- package/assets/skills/risk-based-testing/SKILL.md +206 -0
- package/assets/skills/security-testing/SKILL.md +306 -0
- package/assets/skills/sherlock-review/SKILL.md +250 -0
- package/assets/skills/shift-left-testing/SKILL.md +225 -0
- package/assets/skills/shift-right-testing/SKILL.md +227 -0
- package/assets/skills/six-thinking-hats/README.md +190 -0
- package/assets/skills/six-thinking-hats/SKILL.md +280 -0
- package/assets/skills/six-thinking-hats/resources/examples/api-testing-example.md +345 -0
- package/assets/skills/six-thinking-hats/resources/templates/solo-session-template.md +167 -0
- package/assets/skills/six-thinking-hats/resources/templates/team-session-template.md +336 -0
- package/assets/skills/skill-builder/SKILL.md +910 -0
- package/assets/skills/sparc-methodology/SKILL.md +1115 -0
- package/assets/skills/stream-chain/SKILL.md +563 -0
- package/assets/skills/swarm-advanced/SKILL.md +973 -0
- package/assets/skills/swarm-orchestration/SKILL.md +179 -0
- package/assets/skills/tdd-london-chicago/SKILL.md +244 -0
- package/assets/skills/technical-writing/SKILL.md +178 -0
- package/assets/skills/test-automation-strategy/SKILL.md +230 -0
- package/assets/skills/test-data-management/SKILL.md +270 -0
- package/assets/skills/test-design-techniques/SKILL.md +244 -0
- package/assets/skills/test-environment-management/SKILL.md +243 -0
- package/assets/skills/test-reporting-analytics/SKILL.md +214 -0
- package/assets/skills/testability-scoring/README.md +71 -0
- package/assets/skills/testability-scoring/SKILL.md +346 -0
- package/assets/skills/testability-scoring/resources/templates/config.template.js +84 -0
- package/assets/skills/testability-scoring/resources/templates/testability-scoring.spec.template.js +532 -0
- package/assets/skills/testability-scoring/scripts/generate-html-report.js +1007 -0
- package/assets/skills/testability-scoring/scripts/run-assessment.sh +70 -0
- package/assets/skills/v3-qe-chaos-resilience/SKILL.md +238 -0
- package/assets/skills/v3-qe-code-intelligence/SKILL.md +209 -0
- package/assets/skills/v3-qe-contract-testing/SKILL.md +218 -0
- package/assets/skills/v3-qe-coverage-analysis/SKILL.md +187 -0
- package/assets/skills/v3-qe-defect-intelligence/SKILL.md +205 -0
- package/assets/skills/v3-qe-learning-optimization/SKILL.md +238 -0
- package/assets/skills/v3-qe-quality-assessment/SKILL.md +213 -0
- package/assets/skills/v3-qe-requirements-validation/SKILL.md +248 -0
- package/assets/skills/v3-qe-test-execution/SKILL.md +182 -0
- package/assets/skills/v3-qe-test-generation/SKILL.md +141 -0
- package/assets/skills/v3-qe-visual-accessibility/SKILL.md +242 -0
- package/assets/skills/verification-quality/SKILL.md +649 -0
- package/assets/skills/visual-testing-advanced/SKILL.md +219 -0
- package/assets/skills/xp-practices/SKILL.md +229 -0
- package/dist/cli/bundle.js +8 -8
- package/dist/init/agents-installer.js +4 -4
- package/dist/init/agents-installer.js.map +1 -1
- package/dist/init/skills-installer.js +4 -4
- package/dist/init/skills-installer.js.map +1 -1
- package/package.json +7 -1
- package/docs/analysis/V3-INIT-REQUIREMENTS-ANALYSIS.md +0 -352
- package/implementation/README.md +0 -90
- package/implementation/adrs/ADR-030-coherence-gated-quality-gates.md +0 -312
- package/implementation/adrs/ADR-031-strange-loop-self-awareness.md +0 -484
- package/implementation/adrs/ADR-032-time-crystal-scheduling.md +0 -530
- package/implementation/adrs/ADR-033-early-exit-testing.md +0 -634
- package/implementation/adrs/ADR-034-neural-topology-optimizer.md +0 -589
- package/implementation/adrs/ADR-035-causal-discovery.md +0 -610
- package/implementation/adrs/ADR-036-result-persistence.md +0 -326
- package/implementation/adrs/ADR-037-v3-qe-agent-naming.md +0 -105
- package/implementation/adrs/ADR-038-v3-qe-memory-unification.md +0 -154
- package/implementation/adrs/ADR-039-v3-qe-mcp-optimization.md +0 -179
- package/implementation/adrs/ADR-040-v3-qe-agentic-flow-integration.md +0 -240
- package/implementation/adrs/ADR-041-v3-qe-cli-enhancement.md +0 -296
- package/implementation/adrs/ADR-042-v3-qe-token-tracking-integration.md +0 -517
- package/implementation/adrs/v3-adrs.md +0 -2783
- package/implementation/planning/AQE-V3-MASTER-PLAN.md +0 -815
- package/security-scan-report-2026-01-11.md +0 -410
- package/security-verification-report-2026-01-11.md +0 -278
- package/src/benchmarks/performance-benchmarks.ts +0 -646
- package/src/benchmarks/run-benchmarks.ts +0 -324
- package/src/causal-discovery/causal-graph.ts +0 -450
- package/src/causal-discovery/discovery-engine.ts +0 -438
- package/src/causal-discovery/index.ts +0 -117
- package/src/causal-discovery/types.ts +0 -456
- package/src/causal-discovery/weight-matrix.ts +0 -453
- package/src/cli/commands/qe-tools.ts +0 -634
- package/src/cli/index.ts +0 -1976
- package/src/compatibility/agent-mapper.ts +0 -291
- package/src/compatibility/cli-adapter.ts +0 -277
- package/src/compatibility/config-migrator.ts +0 -334
- package/src/compatibility/index.ts +0 -112
- package/src/compatibility/mcp-adapter.ts +0 -248
- package/src/compatibility/types.ts +0 -156
- package/src/coordination/claims/claim-repository.ts +0 -636
- package/src/coordination/claims/claim-service.ts +0 -675
- package/src/coordination/claims/handoff-manager.ts +0 -535
- package/src/coordination/claims/index.ts +0 -276
- package/src/coordination/claims/interfaces.ts +0 -687
- package/src/coordination/claims/work-stealing.ts +0 -436
- package/src/coordination/cross-domain-router.ts +0 -492
- package/src/coordination/index.ts +0 -127
- package/src/coordination/interfaces.ts +0 -691
- package/src/coordination/protocol-executor.ts +0 -760
- package/src/coordination/protocols/code-intelligence-index.ts +0 -855
- package/src/coordination/protocols/defect-investigation.ts +0 -1184
- package/src/coordination/protocols/index.ts +0 -11
- package/src/coordination/protocols/learning-consolidation.ts +0 -1181
- package/src/coordination/protocols/morning-sync.ts +0 -1055
- package/src/coordination/protocols/quality-gate.ts +0 -1566
- package/src/coordination/protocols/security-audit.ts +0 -1587
- package/src/coordination/queen-coordinator.ts +0 -1176
- package/src/coordination/result-saver.ts +0 -780
- package/src/coordination/task-executor.ts +0 -1146
- package/src/coordination/workflow-orchestrator.ts +0 -1917
- package/src/domains/chaos-resilience/coordinator.ts +0 -1032
- package/src/domains/chaos-resilience/index.ts +0 -143
- package/src/domains/chaos-resilience/interfaces.ts +0 -659
- package/src/domains/chaos-resilience/plugin.ts +0 -691
- package/src/domains/chaos-resilience/services/chaos-engineer.ts +0 -1097
- package/src/domains/chaos-resilience/services/index.ts +0 -19
- package/src/domains/chaos-resilience/services/load-tester.ts +0 -799
- package/src/domains/chaos-resilience/services/performance-profiler.ts +0 -792
- package/src/domains/code-intelligence/coordinator.ts +0 -631
- package/src/domains/code-intelligence/index.ts +0 -86
- package/src/domains/code-intelligence/interfaces.ts +0 -162
- package/src/domains/code-intelligence/plugin.ts +0 -451
- package/src/domains/code-intelligence/services/impact-analyzer.ts +0 -567
- package/src/domains/code-intelligence/services/index.ts +0 -26
- package/src/domains/code-intelligence/services/knowledge-graph.ts +0 -1067
- package/src/domains/code-intelligence/services/semantic-analyzer.ts +0 -901
- package/src/domains/contract-testing/coordinator.ts +0 -1038
- package/src/domains/contract-testing/index.ts +0 -122
- package/src/domains/contract-testing/interfaces.ts +0 -458
- package/src/domains/contract-testing/plugin.ts +0 -746
- package/src/domains/contract-testing/services/api-compatibility.ts +0 -748
- package/src/domains/contract-testing/services/contract-validator.ts +0 -1700
- package/src/domains/contract-testing/services/index.ts +0 -19
- package/src/domains/contract-testing/services/schema-validator.ts +0 -1102
- package/src/domains/coverage-analysis/coordinator.ts +0 -485
- package/src/domains/coverage-analysis/index.ts +0 -114
- package/src/domains/coverage-analysis/interfaces.ts +0 -142
- package/src/domains/coverage-analysis/plugin.ts +0 -172
- package/src/domains/coverage-analysis/services/coverage-analyzer.ts +0 -449
- package/src/domains/coverage-analysis/services/coverage-embedder.ts +0 -733
- package/src/domains/coverage-analysis/services/coverage-parser.ts +0 -753
- package/src/domains/coverage-analysis/services/gap-detector.ts +0 -592
- package/src/domains/coverage-analysis/services/hnsw-index.ts +0 -728
- package/src/domains/coverage-analysis/services/index.ts +0 -61
- package/src/domains/coverage-analysis/services/risk-scorer.ts +0 -540
- package/src/domains/coverage-analysis/services/sublinear-analyzer.ts +0 -747
- package/src/domains/defect-intelligence/coordinator.ts +0 -635
- package/src/domains/defect-intelligence/index.ts +0 -83
- package/src/domains/defect-intelligence/interfaces.ts +0 -152
- package/src/domains/defect-intelligence/plugin.ts +0 -483
- package/src/domains/defect-intelligence/services/causal-root-cause-analyzer.ts +0 -494
- package/src/domains/defect-intelligence/services/defect-predictor.ts +0 -852
- package/src/domains/defect-intelligence/services/index.ts +0 -37
- package/src/domains/defect-intelligence/services/pattern-learner.ts +0 -738
- package/src/domains/defect-intelligence/services/root-cause-analyzer.ts +0 -637
- package/src/domains/domain-interface.ts +0 -77
- package/src/domains/index.ts +0 -23
- package/src/domains/learning-optimization/coordinator.ts +0 -1215
- package/src/domains/learning-optimization/index.ts +0 -127
- package/src/domains/learning-optimization/interfaces.ts +0 -570
- package/src/domains/learning-optimization/plugin.ts +0 -851
- package/src/domains/learning-optimization/services/index.ts +0 -29
- package/src/domains/learning-optimization/services/learning-coordinator.ts +0 -972
- package/src/domains/learning-optimization/services/metrics-optimizer.ts +0 -915
- package/src/domains/learning-optimization/services/production-intel.ts +0 -971
- package/src/domains/learning-optimization/services/transfer-specialist.ts +0 -723
- package/src/domains/quality-assessment/coherence/gate-controller.ts +0 -549
- package/src/domains/quality-assessment/coherence/index.ts +0 -211
- package/src/domains/quality-assessment/coherence/lambda-calculator.ts +0 -384
- package/src/domains/quality-assessment/coherence/partition-detector.ts +0 -469
- package/src/domains/quality-assessment/coherence/types.ts +0 -384
- package/src/domains/quality-assessment/coordinator.ts +0 -605
- package/src/domains/quality-assessment/index.ts +0 -97
- package/src/domains/quality-assessment/interfaces.ts +0 -152
- package/src/domains/quality-assessment/plugin.ts +0 -496
- package/src/domains/quality-assessment/services/coherence-gate.ts +0 -358
- package/src/domains/quality-assessment/services/deployment-advisor.ts +0 -571
- package/src/domains/quality-assessment/services/index.ts +0 -34
- package/src/domains/quality-assessment/services/quality-analyzer.ts +0 -670
- package/src/domains/quality-assessment/services/quality-gate.ts +0 -384
- package/src/domains/requirements-validation/coordinator.ts +0 -812
- package/src/domains/requirements-validation/index.ts +0 -92
- package/src/domains/requirements-validation/interfaces.ts +0 -303
- package/src/domains/requirements-validation/plugin.ts +0 -576
- package/src/domains/requirements-validation/services/bdd-scenario-writer.ts +0 -676
- package/src/domains/requirements-validation/services/index.ts +0 -20
- package/src/domains/requirements-validation/services/requirements-validator.ts +0 -559
- package/src/domains/requirements-validation/services/testability-scorer.ts +0 -639
- package/src/domains/security-compliance/coordinator.ts +0 -757
- package/src/domains/security-compliance/index.ts +0 -120
- package/src/domains/security-compliance/interfaces.ts +0 -434
- package/src/domains/security-compliance/plugin.ts +0 -509
- package/src/domains/security-compliance/services/compliance-validator.ts +0 -1226
- package/src/domains/security-compliance/services/index.ts +0 -31
- package/src/domains/security-compliance/services/security-auditor.ts +0 -2227
- package/src/domains/security-compliance/services/security-scanner.ts +0 -2354
- package/src/domains/security-compliance/services/semgrep-integration.ts +0 -289
- package/src/domains/test-execution/coordinator.ts +0 -426
- package/src/domains/test-execution/index.ts +0 -76
- package/src/domains/test-execution/interfaces.ts +0 -119
- package/src/domains/test-execution/plugin.ts +0 -208
- package/src/domains/test-execution/services/flaky-detector.ts +0 -1240
- package/src/domains/test-execution/services/index.ts +0 -8
- package/src/domains/test-execution/services/retry-handler.ts +0 -820
- package/src/domains/test-execution/services/test-executor.ts +0 -885
- package/src/domains/test-generation/coordinator.ts +0 -656
- package/src/domains/test-generation/index.ts +0 -77
- package/src/domains/test-generation/interfaces.ts +0 -118
- package/src/domains/test-generation/plugin.ts +0 -397
- package/src/domains/test-generation/services/index.ts +0 -23
- package/src/domains/test-generation/services/pattern-matcher.ts +0 -1725
- package/src/domains/test-generation/services/test-generator.ts +0 -2750
- package/src/domains/visual-accessibility/coordinator.ts +0 -860
- package/src/domains/visual-accessibility/index.ts +0 -116
- package/src/domains/visual-accessibility/interfaces.ts +0 -435
- package/src/domains/visual-accessibility/plugin.ts +0 -568
- package/src/domains/visual-accessibility/services/accessibility-tester.ts +0 -982
- package/src/domains/visual-accessibility/services/axe-core-audit.ts +0 -630
- package/src/domains/visual-accessibility/services/index.ts +0 -28
- package/src/domains/visual-accessibility/services/responsive-tester.ts +0 -934
- package/src/domains/visual-accessibility/services/visual-tester.ts +0 -458
- package/src/early-exit/early-exit-controller.ts +0 -490
- package/src/early-exit/early-exit-decision.ts +0 -391
- package/src/early-exit/index.ts +0 -115
- package/src/early-exit/quality-signal.ts +0 -389
- package/src/early-exit/speculative-executor.ts +0 -505
- package/src/early-exit/types.ts +0 -407
- package/src/feedback/coverage-learner.ts +0 -456
- package/src/feedback/feedback-loop.ts +0 -426
- package/src/feedback/index.ts +0 -72
- package/src/feedback/pattern-promotion.ts +0 -373
- package/src/feedback/quality-score-calculator.ts +0 -334
- package/src/feedback/test-outcome-tracker.ts +0 -450
- package/src/feedback/types.ts +0 -497
- package/src/index.ts +0 -224
- package/src/init/agents-installer.ts +0 -536
- package/src/init/index.ts +0 -80
- package/src/init/init-wizard.ts +0 -1061
- package/src/init/project-analyzer.ts +0 -696
- package/src/init/self-configurator.ts +0 -488
- package/src/init/skills-installer.ts +0 -467
- package/src/init/types.ts +0 -432
- package/src/integrations/ruvector/ast-complexity.ts +0 -470
- package/src/integrations/ruvector/coverage-router.ts +0 -594
- package/src/integrations/ruvector/diff-risk-classifier.ts +0 -759
- package/src/integrations/ruvector/fallback.ts +0 -942
- package/src/integrations/ruvector/graph-boundaries.ts +0 -809
- package/src/integrations/ruvector/index.ts +0 -363
- package/src/integrations/ruvector/interfaces.ts +0 -609
- package/src/integrations/ruvector/q-learning-router.ts +0 -550
- package/src/kernel/agent-coordinator.ts +0 -165
- package/src/kernel/agentdb-backend.ts +0 -504
- package/src/kernel/event-bus.ts +0 -129
- package/src/kernel/hybrid-backend.ts +0 -538
- package/src/kernel/index.ts +0 -28
- package/src/kernel/interfaces.ts +0 -257
- package/src/kernel/kernel.ts +0 -285
- package/src/kernel/memory-backend.ts +0 -169
- package/src/kernel/memory-factory.ts +0 -293
- package/src/kernel/plugin-loader.ts +0 -179
- package/src/learning/index.ts +0 -219
- package/src/learning/pattern-store.ts +0 -990
- package/src/learning/qe-guidance.ts +0 -832
- package/src/learning/qe-hooks.ts +0 -644
- package/src/learning/qe-patterns.ts +0 -449
- package/src/learning/qe-reasoning-bank.ts +0 -951
- package/src/learning/real-embeddings.ts +0 -277
- package/src/learning/real-qe-reasoning-bank.ts +0 -833
- package/src/learning/sqlite-persistence.ts +0 -554
- package/src/mcp/entry.ts +0 -59
- package/src/mcp/handlers/agent-handlers.ts +0 -285
- package/src/mcp/handlers/core-handlers.ts +0 -317
- package/src/mcp/handlers/domain-handlers.ts +0 -1444
- package/src/mcp/handlers/index.ts +0 -57
- package/src/mcp/handlers/memory-handlers.ts +0 -338
- package/src/mcp/handlers/task-handlers.ts +0 -363
- package/src/mcp/index.ts +0 -30
- package/src/mcp/metrics/index.ts +0 -14
- package/src/mcp/metrics/metrics-collector.ts +0 -503
- package/src/mcp/protocol-server.ts +0 -752
- package/src/mcp/security/cve-prevention.ts +0 -742
- package/src/mcp/security/index.ts +0 -356
- package/src/mcp/security/oauth21-provider.ts +0 -821
- package/src/mcp/security/rate-limiter.ts +0 -615
- package/src/mcp/security/sampling-server.ts +0 -662
- package/src/mcp/security/schema-validator.ts +0 -855
- package/src/mcp/server.ts +0 -657
- package/src/mcp/tool-registry.ts +0 -391
- package/src/mcp/tools/base.ts +0 -399
- package/src/mcp/tools/chaos-resilience/inject.ts +0 -699
- package/src/mcp/tools/code-intelligence/analyze.ts +0 -745
- package/src/mcp/tools/contract-testing/validate.ts +0 -708
- package/src/mcp/tools/coverage-analysis/index.ts +0 -770
- package/src/mcp/tools/defect-intelligence/predict.ts +0 -466
- package/src/mcp/tools/index.ts +0 -214
- package/src/mcp/tools/learning-optimization/optimize.ts +0 -772
- package/src/mcp/tools/quality-assessment/evaluate.ts +0 -385
- package/src/mcp/tools/registry.ts +0 -248
- package/src/mcp/tools/requirements-validation/validate.ts +0 -394
- package/src/mcp/tools/security-compliance/scan.ts +0 -365
- package/src/mcp/tools/test-execution/execute.ts +0 -291
- package/src/mcp/tools/test-generation/generate.ts +0 -544
- package/src/mcp/tools/visual-accessibility/index.ts +0 -791
- package/src/mcp/transport/index.ts +0 -31
- package/src/mcp/transport/stdio.ts +0 -318
- package/src/mcp/types.ts +0 -543
- package/src/neural-optimizer/index.ts +0 -111
- package/src/neural-optimizer/replay-buffer.ts +0 -455
- package/src/neural-optimizer/swarm-topology.ts +0 -508
- package/src/neural-optimizer/topology-optimizer.ts +0 -828
- package/src/neural-optimizer/types.ts +0 -481
- package/src/neural-optimizer/value-network.ts +0 -351
- package/src/optimization/auto-tuner.ts +0 -817
- package/src/optimization/index.ts +0 -77
- package/src/optimization/metric-collectors.ts +0 -474
- package/src/optimization/qe-workers.ts +0 -704
- package/src/optimization/tuning-algorithm.ts +0 -401
- package/src/optimization/types.ts +0 -314
- package/src/routing/index.ts +0 -51
- package/src/routing/qe-agent-registry.ts +0 -963
- package/src/routing/qe-task-router.ts +0 -564
- package/src/routing/routing-feedback.ts +0 -365
- package/src/routing/types.ts +0 -406
- package/src/shared/embeddings/embedding-cache.ts +0 -157
- package/src/shared/embeddings/index.ts +0 -50
- package/src/shared/embeddings/nomic-embedder.ts +0 -404
- package/src/shared/embeddings/ollama-client.ts +0 -195
- package/src/shared/embeddings/types.ts +0 -147
- package/src/shared/entities/agent.ts +0 -141
- package/src/shared/entities/base-entity.ts +0 -79
- package/src/shared/entities/index.ts +0 -6
- package/src/shared/events/domain-events.ts +0 -259
- package/src/shared/events/index.ts +0 -5
- package/src/shared/git/git-analyzer.ts +0 -656
- package/src/shared/git/index.ts +0 -11
- package/src/shared/http/http-client.ts +0 -420
- package/src/shared/http/index.ts +0 -13
- package/src/shared/index.ts +0 -41
- package/src/shared/io/file-reader.ts +0 -525
- package/src/shared/io/index.ts +0 -25
- package/src/shared/llm/cache.ts +0 -473
- package/src/shared/llm/circuit-breaker.ts +0 -369
- package/src/shared/llm/cost-tracker.ts +0 -460
- package/src/shared/llm/index.ts +0 -140
- package/src/shared/llm/interfaces.ts +0 -629
- package/src/shared/llm/provider-manager.ts +0 -685
- package/src/shared/llm/providers/claude.ts +0 -524
- package/src/shared/llm/providers/index.ts +0 -8
- package/src/shared/llm/providers/ollama.ts +0 -575
- package/src/shared/llm/providers/openai.ts +0 -609
- package/src/shared/metrics/code-metrics.ts +0 -520
- package/src/shared/metrics/index.ts +0 -23
- package/src/shared/metrics/system-metrics.ts +0 -353
- package/src/shared/parsers/index.ts +0 -6
- package/src/shared/parsers/typescript-parser.ts +0 -841
- package/src/shared/security/compliance-patterns.ts +0 -666
- package/src/shared/security/index.ts +0 -30
- package/src/shared/security/osv-client.ts +0 -468
- package/src/shared/types/index.ts +0 -150
- package/src/shared/value-objects/index.ts +0 -273
- package/src/strange-loop/healing-controller.ts +0 -833
- package/src/strange-loop/index.ts +0 -104
- package/src/strange-loop/self-model.ts +0 -494
- package/src/strange-loop/strange-loop.ts +0 -446
- package/src/strange-loop/swarm-observer.ts +0 -448
- package/src/strange-loop/topology-analyzer.ts +0 -565
- package/src/strange-loop/types.ts +0 -640
- package/src/time-crystal/default-phases.ts +0 -520
- package/src/time-crystal/index.ts +0 -164
- package/src/time-crystal/oscillator.ts +0 -425
- package/src/time-crystal/phase-executor.ts +0 -521
- package/src/time-crystal/scheduler.ts +0 -1025
- package/src/time-crystal/test-runner.ts +0 -787
- package/src/time-crystal/types.ts +0 -421
- package/src/workers/base-worker.ts +0 -304
- package/src/workers/daemon.ts +0 -264
- package/src/workers/index.ts +0 -119
- package/src/workers/interfaces.ts +0 -393
- package/src/workers/worker-manager.ts +0 -424
- package/src/workers/workers/compliance-checker.ts +0 -445
- package/src/workers/workers/coverage-tracker.ts +0 -344
- package/src/workers/workers/defect-predictor.ts +0 -375
- package/src/workers/workers/flaky-detector.ts +0 -390
- package/src/workers/workers/index.ts +0 -17
- package/src/workers/workers/learning-consolidation.ts +0 -442
- package/src/workers/workers/performance-baseline.ts +0 -434
- package/src/workers/workers/quality-gate.ts +0 -419
- package/src/workers/workers/regression-monitor.ts +0 -357
- package/src/workers/workers/security-scan.ts +0 -349
- package/src/workers/workers/test-health.ts +0 -359
- package/tests/integration/code-intelligence/knowledge-graph-real.test.ts +0 -540
- package/tests/integration/coordination/cross-domain-router.test.ts +0 -403
- package/tests/integration/coordination/protocol-executor.test.ts +0 -454
- package/tests/integration/coordination/workflow-orchestrator.test.ts +0 -418
- package/tests/integration/feedback/feedback-loop-integration.test.ts +0 -560
- package/tests/integration/migration/v2-to-v3-migration.test.ts +0 -471
- package/tests/integration/parsers/typescript-parser.test.ts +0 -463
- package/tests/integration/security/vulnerability-detection.test.ts +0 -628
- package/tests/integration/test-execution/coordinator.test.ts +0 -410
- package/tests/integration/test-generation/coordinator.test.ts +0 -361
- package/tests/mocks/index.ts +0 -228
- package/tests/time-crystal/default-phases.test.ts +0 -476
- package/tests/time-crystal/oscillator.test.ts +0 -541
- package/tests/time-crystal/phase-executor.test.ts +0 -653
- package/tests/time-crystal/scheduler.test.ts +0 -626
- package/tests/time-crystal/test-runner.test.ts +0 -594
- package/tests/unit/causal-discovery/causal-graph.test.ts +0 -504
- package/tests/unit/causal-discovery/causal-root-cause-analyzer.test.ts +0 -347
- package/tests/unit/causal-discovery/discovery-engine.test.ts +0 -435
- package/tests/unit/causal-discovery/weight-matrix.test.ts +0 -328
- package/tests/unit/cli/cli.test.ts +0 -341
- package/tests/unit/cli/commands.test.ts +0 -414
- package/tests/unit/cli/init-command.test.ts +0 -274
- package/tests/unit/cli/migrate-command.test.ts +0 -396
- package/tests/unit/coordination/claims/claim-service.test.ts +0 -949
- package/tests/unit/coordination/claims/handoff-manager.test.ts +0 -773
- package/tests/unit/coordination/claims/work-stealing.test.ts +0 -492
- package/tests/unit/coordination/queen-coordinator.test.ts +0 -966
- package/tests/unit/coordination/result-saver.test.ts +0 -653
- package/tests/unit/coordination/task-executor.test.ts +0 -810
- package/tests/unit/domains/chaos-resilience/chaos-engineer.test.ts +0 -484
- package/tests/unit/domains/chaos-resilience/load-tester.test.ts +0 -559
- package/tests/unit/domains/chaos-resilience/performance-profiler.test.ts +0 -490
- package/tests/unit/domains/code-intelligence/impact-analyzer.test.ts +0 -560
- package/tests/unit/domains/code-intelligence/knowledge-graph.test.ts +0 -460
- package/tests/unit/domains/code-intelligence/semantic-analyzer.test.ts +0 -584
- package/tests/unit/domains/contract-testing/api-compatibility.test.ts +0 -483
- package/tests/unit/domains/contract-testing/contract-validator.test.ts +0 -370
- package/tests/unit/domains/contract-testing/schema-validator.test.ts +0 -610
- package/tests/unit/domains/coverage-analysis/coverage-embedder.test.ts +0 -298
- package/tests/unit/domains/coverage-analysis/hnsw-index.test.ts +0 -292
- package/tests/unit/domains/coverage-analysis/sublinear-analyzer.test.ts +0 -506
- package/tests/unit/domains/defect-intelligence/defect-predictor.test.ts +0 -370
- package/tests/unit/domains/defect-intelligence/pattern-learner.test.ts +0 -546
- package/tests/unit/domains/defect-intelligence/root-cause-analyzer.test.ts +0 -534
- package/tests/unit/domains/learning-optimization/learning-coordinator.test.ts +0 -541
- package/tests/unit/domains/learning-optimization/metrics-optimizer.test.ts +0 -552
- package/tests/unit/domains/learning-optimization/production-intel.test.ts +0 -589
- package/tests/unit/domains/learning-optimization/transfer-specialist.test.ts +0 -453
- package/tests/unit/domains/quality-assessment/coherence-gate.test.ts +0 -1006
- package/tests/unit/domains/quality-assessment/deployment-advisor.test.ts +0 -515
- package/tests/unit/domains/quality-assessment/quality-analyzer.test.ts +0 -401
- package/tests/unit/domains/quality-assessment/quality-gate.test.ts +0 -324
- package/tests/unit/domains/requirements-validation/bdd-scenario-writer.test.ts +0 -479
- package/tests/unit/domains/requirements-validation/requirements-validator.test.ts +0 -452
- package/tests/unit/domains/requirements-validation/testability-scorer.test.ts +0 -505
- package/tests/unit/domains/security-compliance/compliance-validator.test.ts +0 -500
- package/tests/unit/domains/security-compliance/security-auditor.test.ts +0 -498
- package/tests/unit/domains/security-compliance/security-scanner.test.ts +0 -412
- package/tests/unit/domains/visual-accessibility/accessibility-tester.test.ts +0 -432
- package/tests/unit/domains/visual-accessibility/responsive-tester.test.ts +0 -506
- package/tests/unit/domains/visual-accessibility/visual-tester.test.ts +0 -412
- package/tests/unit/early-exit/early-exit-controller.test.ts +0 -548
- package/tests/unit/early-exit/early-exit-decision.test.ts +0 -617
- package/tests/unit/early-exit/index.test.ts +0 -254
- package/tests/unit/early-exit/quality-signal.test.ts +0 -589
- package/tests/unit/early-exit/speculative-executor.test.ts +0 -453
- package/tests/unit/feedback/coverage-learner.test.ts +0 -288
- package/tests/unit/feedback/feedback-loop.test.ts +0 -458
- package/tests/unit/feedback/pattern-promotion.test.ts +0 -390
- package/tests/unit/feedback/quality-score-calculator.test.ts +0 -364
- package/tests/unit/feedback/test-outcome-tracker.test.ts +0 -243
- package/tests/unit/init/init-wizard.test.ts +0 -881
- package/tests/unit/init/project-analyzer.test.ts +0 -807
- package/tests/unit/init/self-configurator.test.ts +0 -493
- package/tests/unit/integrations/ruvector/ast-complexity.test.ts +0 -240
- package/tests/unit/integrations/ruvector/coverage-router.test.ts +0 -366
- package/tests/unit/integrations/ruvector/diff-risk-classifier.test.ts +0 -340
- package/tests/unit/integrations/ruvector/graph-boundaries.test.ts +0 -355
- package/tests/unit/integrations/ruvector/q-learning-router.test.ts +0 -314
- package/tests/unit/kernel/agent-coordinator.test.ts +0 -220
- package/tests/unit/kernel/event-bus.test.ts +0 -197
- package/tests/unit/learning/qe-reasoning-bank.test.ts +0 -666
- package/tests/unit/learning/real-qe-reasoning-bank.benchmark.test.ts +0 -415
- package/tests/unit/mcp/mcp-server.test.ts +0 -544
- package/tests/unit/mcp/metrics/metrics-collector.test.ts +0 -340
- package/tests/unit/mcp/security/cve-prevention.test.ts +0 -512
- package/tests/unit/mcp/security/oauth21-provider.test.ts +0 -624
- package/tests/unit/mcp/security/rate-limiter.test.ts +0 -410
- package/tests/unit/mcp/security/sampling-server.test.ts +0 -420
- package/tests/unit/mcp/security/schema-validator.test.ts +0 -494
- package/tests/unit/mcp/tools/base.test.ts +0 -336
- package/tests/unit/mcp/tools/domain-tools.test.ts +0 -759
- package/tests/unit/mcp/tools/registry.test.ts +0 -240
- package/tests/unit/neural-optimizer/replay-buffer.test.ts +0 -403
- package/tests/unit/neural-optimizer/swarm-topology.test.ts +0 -473
- package/tests/unit/neural-optimizer/topology-optimizer.test.ts +0 -595
- package/tests/unit/neural-optimizer/value-network.test.ts +0 -343
- package/tests/unit/optimization/auto-tuner.test.ts +0 -506
- package/tests/unit/optimization/metric-collectors.test.ts +0 -352
- package/tests/unit/optimization/qe-workers.test.ts +0 -407
- package/tests/unit/optimization/tuning-algorithm.test.ts +0 -467
- package/tests/unit/routing/qe-agent-registry.test.ts +0 -229
- package/tests/unit/routing/qe-task-router.test.ts +0 -390
- package/tests/unit/routing/routing-feedback.test.ts +0 -339
- package/tests/unit/shared/embeddings/nomic-embedder.test.ts +0 -419
- package/tests/unit/shared/http/http-client.test.ts +0 -719
- package/tests/unit/shared/io/file-reader.test.ts +0 -511
- package/tests/unit/shared/llm/cache.test.ts +0 -391
- package/tests/unit/shared/llm/circuit-breaker.test.ts +0 -293
- package/tests/unit/shared/llm/cost-tracker.test.ts +0 -431
- package/tests/unit/shared/llm/provider-manager.test.ts +0 -550
- package/tests/unit/shared/llm/providers.test.ts +0 -532
- package/tests/unit/shared/parsers/typescript-parser.test.ts +0 -693
- package/tests/unit/shared/value-objects.test.ts +0 -184
- package/tests/unit/strange-loop/strange-loop.test.ts +0 -1170
- package/tests/unit/workers/base-worker.test.ts +0 -341
- package/tests/unit/workers/daemon.test.ts +0 -291
- package/tests/unit/workers/worker-manager.test.ts +0 -284
- package/tsconfig.json +0 -32
- package/vitest.config.ts +0 -27
|
@@ -1,211 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agentic QE v3 - Coherence-Gated Quality Gates Module
|
|
3
|
-
* ADR-030: RuVector lambda-coherence integration with 4-tier compute allocation
|
|
4
|
-
*
|
|
5
|
-
* This module provides coherence-based quality gate decisions using:
|
|
6
|
-
* - Lambda calculation (minimum cut in quality dimension graph)
|
|
7
|
-
* - 4-tier response allocation (Normal, Reduced, Safe, Quarantine)
|
|
8
|
-
* - Quality partition detection (clusters of related issues)
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* ```typescript
|
|
12
|
-
* import {
|
|
13
|
-
* calculateQualityLambda,
|
|
14
|
-
* evaluateQualityGate,
|
|
15
|
-
* detectQualityPartitions,
|
|
16
|
-
* QualityTier,
|
|
17
|
-
* } from './coherence';
|
|
18
|
-
*
|
|
19
|
-
* // Calculate lambda from raw metrics
|
|
20
|
-
* const lambda = calculateQualityLambda({
|
|
21
|
-
* lineCoverage: 85,
|
|
22
|
-
* testPassRate: 98,
|
|
23
|
-
* criticalVulns: 0,
|
|
24
|
-
* p95Latency: 150,
|
|
25
|
-
* targetLatency: 200,
|
|
26
|
-
* maintainabilityIndex: 75,
|
|
27
|
-
* });
|
|
28
|
-
*
|
|
29
|
-
* // Get 4-tier decision
|
|
30
|
-
* const decision = evaluateQualityGate(lambda);
|
|
31
|
-
*
|
|
32
|
-
* if (decision.tier === QualityTier.NORMAL) {
|
|
33
|
-
* console.log('Deployment allowed');
|
|
34
|
-
* } else {
|
|
35
|
-
* console.log(`Actions required: ${decision.actions.join(', ')}`);
|
|
36
|
-
* }
|
|
37
|
-
*
|
|
38
|
-
* // Detect quality partitions
|
|
39
|
-
* const partitions = detectQualityPartitions(lambda.dimensions);
|
|
40
|
-
* console.log(`Found ${partitions.partitionCount} quality partitions`);
|
|
41
|
-
* ```
|
|
42
|
-
*/
|
|
43
|
-
|
|
44
|
-
// Types (use 'export type' for type-only exports with isolatedModules)
|
|
45
|
-
export type {
|
|
46
|
-
// Lambda Types
|
|
47
|
-
QualityLambda,
|
|
48
|
-
QualityDimensions,
|
|
49
|
-
QualityMetricsInput,
|
|
50
|
-
|
|
51
|
-
// 4-Tier Response Types
|
|
52
|
-
QualityGateReason,
|
|
53
|
-
QualityAction,
|
|
54
|
-
QualityGateDecision,
|
|
55
|
-
|
|
56
|
-
// Policy Types
|
|
57
|
-
CoherenceGatePolicy,
|
|
58
|
-
|
|
59
|
-
// Partition Types
|
|
60
|
-
QualityPartition,
|
|
61
|
-
|
|
62
|
-
// History Types
|
|
63
|
-
LambdaHistoryPoint,
|
|
64
|
-
LambdaTrend,
|
|
65
|
-
} from './types.js';
|
|
66
|
-
|
|
67
|
-
// Runtime values (enums and constants)
|
|
68
|
-
export {
|
|
69
|
-
QualityTier,
|
|
70
|
-
QualityLambdaFlags,
|
|
71
|
-
DEFAULT_COHERENCE_GATE_POLICY,
|
|
72
|
-
} from './types.js';
|
|
73
|
-
|
|
74
|
-
// Type re-export for QualityPartitionType (string union type)
|
|
75
|
-
export type { QualityPartitionType } from './types.js';
|
|
76
|
-
|
|
77
|
-
// Lambda Calculator
|
|
78
|
-
export {
|
|
79
|
-
LambdaCalculator,
|
|
80
|
-
createLambdaCalculator,
|
|
81
|
-
calculateQualityLambda,
|
|
82
|
-
} from './lambda-calculator.js';
|
|
83
|
-
|
|
84
|
-
export type {
|
|
85
|
-
LambdaCalculatorConfig,
|
|
86
|
-
} from './lambda-calculator.js';
|
|
87
|
-
|
|
88
|
-
// Gate Controller
|
|
89
|
-
export {
|
|
90
|
-
CoherenceGateController,
|
|
91
|
-
createCoherenceGateController,
|
|
92
|
-
evaluateQualityGate,
|
|
93
|
-
} from './gate-controller.js';
|
|
94
|
-
|
|
95
|
-
export type {
|
|
96
|
-
CoherenceGateControllerConfig,
|
|
97
|
-
} from './gate-controller.js';
|
|
98
|
-
|
|
99
|
-
// Partition Detector
|
|
100
|
-
export {
|
|
101
|
-
PartitionDetector,
|
|
102
|
-
createPartitionDetector,
|
|
103
|
-
detectQualityPartitions,
|
|
104
|
-
} from './partition-detector.js';
|
|
105
|
-
|
|
106
|
-
export type {
|
|
107
|
-
PartitionDetectorConfig,
|
|
108
|
-
PartitionDetectionResult,
|
|
109
|
-
RemediationStep,
|
|
110
|
-
RemediationPlan,
|
|
111
|
-
} from './partition-detector.js';
|
|
112
|
-
|
|
113
|
-
// ============================================================================
|
|
114
|
-
// Convenience Functions
|
|
115
|
-
// ============================================================================
|
|
116
|
-
|
|
117
|
-
import type { QualityMetricsInput, QualityGateDecision, QualityLambda } from './types.js';
|
|
118
|
-
import { calculateQualityLambda } from './lambda-calculator.js';
|
|
119
|
-
import { evaluateQualityGate } from './gate-controller.js';
|
|
120
|
-
import { createPartitionDetector } from './partition-detector.js';
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* End-to-end coherence gate evaluation from raw metrics
|
|
124
|
-
*
|
|
125
|
-
* @param metrics - Raw quality metrics
|
|
126
|
-
* @returns Complete quality gate decision with lambda and partitions
|
|
127
|
-
*/
|
|
128
|
-
export function evaluateCoherenceGate(metrics: QualityMetricsInput): QualityGateDecision {
|
|
129
|
-
// Step 1: Calculate lambda
|
|
130
|
-
const lambda = calculateQualityLambda(metrics);
|
|
131
|
-
|
|
132
|
-
// Step 2: Detect partitions and update lambda
|
|
133
|
-
const partitionDetector = createPartitionDetector();
|
|
134
|
-
const updatedLambda = partitionDetector.updateLambdaWithPartitions(lambda);
|
|
135
|
-
|
|
136
|
-
// Step 3: Get gate decision
|
|
137
|
-
return evaluateQualityGate(updatedLambda);
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
/**
|
|
141
|
-
* Quick check if deployment is allowed based on metrics
|
|
142
|
-
*
|
|
143
|
-
* @param metrics - Raw quality metrics
|
|
144
|
-
* @returns true if deployment is allowed
|
|
145
|
-
*/
|
|
146
|
-
export function canDeploy(metrics: QualityMetricsInput): boolean {
|
|
147
|
-
const decision = evaluateCoherenceGate(metrics);
|
|
148
|
-
return decision.decision === 'allow';
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
/**
|
|
152
|
-
* Get the quality tier from raw metrics
|
|
153
|
-
*
|
|
154
|
-
* @param metrics - Raw quality metrics
|
|
155
|
-
* @returns Quality tier (0-3)
|
|
156
|
-
*/
|
|
157
|
-
export function getQualityTier(metrics: QualityMetricsInput): number {
|
|
158
|
-
const decision = evaluateCoherenceGate(metrics);
|
|
159
|
-
return decision.tier;
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
/**
|
|
163
|
-
* Calculate and return just the lambda value from metrics
|
|
164
|
-
*
|
|
165
|
-
* @param metrics - Raw quality metrics
|
|
166
|
-
* @returns Lambda value (0-100)
|
|
167
|
-
*/
|
|
168
|
-
export function getLambdaValue(metrics: QualityMetricsInput): number {
|
|
169
|
-
const lambda = calculateQualityLambda(metrics);
|
|
170
|
-
return lambda.lambda;
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
/**
|
|
174
|
-
* Get a summary of quality issues
|
|
175
|
-
*
|
|
176
|
-
* @param metrics - Raw quality metrics
|
|
177
|
-
* @returns Summary object with issues and recommendations
|
|
178
|
-
*/
|
|
179
|
-
export function getQualitySummary(metrics: QualityMetricsInput): QualitySummary {
|
|
180
|
-
const lambda = calculateQualityLambda(metrics);
|
|
181
|
-
const partitionDetector = createPartitionDetector();
|
|
182
|
-
const partitionResult = partitionDetector.detect(lambda.dimensions);
|
|
183
|
-
const decision = evaluateQualityGate(partitionDetector.updateLambdaWithPartitions(lambda));
|
|
184
|
-
|
|
185
|
-
return {
|
|
186
|
-
lambda: lambda.lambda,
|
|
187
|
-
tier: decision.tier,
|
|
188
|
-
decision: decision.decision,
|
|
189
|
-
partitionCount: partitionResult.partitionCount,
|
|
190
|
-
isFragmented: partitionResult.isFragmented,
|
|
191
|
-
actions: decision.actions,
|
|
192
|
-
explanation: decision.explanation,
|
|
193
|
-
topIssue: partitionResult.priorityPartition?.type,
|
|
194
|
-
topRemediation: partitionResult.priorityPartition?.remediation,
|
|
195
|
-
};
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
/**
|
|
199
|
-
* Quality summary result type
|
|
200
|
-
*/
|
|
201
|
-
export interface QualitySummary {
|
|
202
|
-
lambda: number;
|
|
203
|
-
tier: number;
|
|
204
|
-
decision: string;
|
|
205
|
-
partitionCount: number;
|
|
206
|
-
isFragmented: boolean;
|
|
207
|
-
actions: string[];
|
|
208
|
-
explanation: string;
|
|
209
|
-
topIssue?: string;
|
|
210
|
-
topRemediation?: string;
|
|
211
|
-
}
|
|
@@ -1,384 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agentic QE v3 - Lambda Calculator for Coherence-Gated Quality Gates
|
|
3
|
-
* ADR-030: Calculates quality lambda (minimum cut) from metrics
|
|
4
|
-
*
|
|
5
|
-
* Lambda represents the "minimum cut" between acceptable and unacceptable quality states.
|
|
6
|
-
* Based on ruvector-mincut-gated-transformer's coherence calculation patterns.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import {
|
|
10
|
-
QualityLambda,
|
|
11
|
-
QualityDimensions,
|
|
12
|
-
QualityMetricsInput,
|
|
13
|
-
QualityLambdaFlags,
|
|
14
|
-
CoherenceGatePolicy,
|
|
15
|
-
DEFAULT_COHERENCE_GATE_POLICY,
|
|
16
|
-
} from './types';
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Configuration for lambda calculation
|
|
20
|
-
*/
|
|
21
|
-
export interface LambdaCalculatorConfig {
|
|
22
|
-
/** Policy settings for thresholds */
|
|
23
|
-
policy: CoherenceGatePolicy;
|
|
24
|
-
|
|
25
|
-
/** Dimension weights (default: equal weights) */
|
|
26
|
-
dimensionWeights?: Partial<Record<keyof QualityDimensions, number>>;
|
|
27
|
-
|
|
28
|
-
/** Critical dimensions that cannot be below threshold */
|
|
29
|
-
criticalDimensions?: (keyof QualityDimensions)[];
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Default dimension weights
|
|
34
|
-
*/
|
|
35
|
-
const DEFAULT_DIMENSION_WEIGHTS: Record<keyof QualityDimensions, number> = {
|
|
36
|
-
coverage: 1.0,
|
|
37
|
-
passRate: 1.5, // Test pass rate is critical
|
|
38
|
-
security: 2.0, // Security is highest priority
|
|
39
|
-
performance: 1.0,
|
|
40
|
-
maintainability: 0.8,
|
|
41
|
-
reliability: 1.2,
|
|
42
|
-
technicalDebt: 0.6,
|
|
43
|
-
duplication: 0.5,
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Default critical dimensions
|
|
48
|
-
*/
|
|
49
|
-
const DEFAULT_CRITICAL_DIMENSIONS: (keyof QualityDimensions)[] = [
|
|
50
|
-
'passRate',
|
|
51
|
-
'security',
|
|
52
|
-
];
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Calculator for quality lambda (minimum cut) values
|
|
56
|
-
*/
|
|
57
|
-
export class LambdaCalculator {
|
|
58
|
-
private readonly policy: CoherenceGatePolicy;
|
|
59
|
-
private readonly weights: Record<keyof QualityDimensions, number>;
|
|
60
|
-
private readonly criticalDimensions: Set<keyof QualityDimensions>;
|
|
61
|
-
|
|
62
|
-
constructor(config: Partial<LambdaCalculatorConfig> = {}) {
|
|
63
|
-
this.policy = { ...DEFAULT_COHERENCE_GATE_POLICY, ...config.policy };
|
|
64
|
-
this.weights = { ...DEFAULT_DIMENSION_WEIGHTS, ...config.dimensionWeights };
|
|
65
|
-
this.criticalDimensions = new Set(
|
|
66
|
-
config.criticalDimensions || DEFAULT_CRITICAL_DIMENSIONS
|
|
67
|
-
);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Calculate quality lambda from raw metrics
|
|
72
|
-
*/
|
|
73
|
-
calculate(metrics: QualityMetricsInput): QualityLambda {
|
|
74
|
-
// Step 1: Normalize all metrics to 0-1 scale
|
|
75
|
-
const dimensions = this.normalizeMetrics(metrics);
|
|
76
|
-
|
|
77
|
-
// Step 2: Calculate lambda (minimum cut)
|
|
78
|
-
const lambda = this.calculateMinimumCut(dimensions);
|
|
79
|
-
|
|
80
|
-
// Step 3: Count boundary edges (dimensions near threshold)
|
|
81
|
-
const boundaryEdges = this.countBoundaryEdges(dimensions);
|
|
82
|
-
|
|
83
|
-
// Step 4: Calculate boundary concentration (Q15 fixed-point)
|
|
84
|
-
const boundaryConcentrationQ15 = this.calculateBoundaryConcentration(dimensions);
|
|
85
|
-
|
|
86
|
-
// Step 5: Calculate flags
|
|
87
|
-
const flags = this.calculateFlags(lambda, metrics.previousLambda);
|
|
88
|
-
|
|
89
|
-
// Step 6: Return complete lambda object
|
|
90
|
-
return {
|
|
91
|
-
lambda,
|
|
92
|
-
lambdaPrev: metrics.previousLambda ?? lambda,
|
|
93
|
-
boundaryEdges,
|
|
94
|
-
boundaryConcentrationQ15,
|
|
95
|
-
partitionCount: 0, // Will be set by partition detector
|
|
96
|
-
flags,
|
|
97
|
-
calculatedAt: new Date(),
|
|
98
|
-
dimensions,
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* Normalize raw metrics to 0-1 scale dimensions
|
|
104
|
-
*/
|
|
105
|
-
normalizeMetrics(metrics: QualityMetricsInput): QualityDimensions {
|
|
106
|
-
// Coverage: Direct percentage to 0-1
|
|
107
|
-
const coverage = Math.min(Math.max(metrics.lineCoverage / 100, 0), 1);
|
|
108
|
-
|
|
109
|
-
// Pass rate: Direct percentage to 0-1
|
|
110
|
-
const passRate = Math.min(Math.max(metrics.testPassRate / 100, 0), 1);
|
|
111
|
-
|
|
112
|
-
// Security: Inverse of vulnerability count, capped at 5 critical vulns
|
|
113
|
-
// 0 vulns = 1.0, 5+ critical vulns = 0.0
|
|
114
|
-
const criticalImpact = Math.min(metrics.criticalVulns / 5, 1);
|
|
115
|
-
const highImpact = Math.min((metrics.highVulns || 0) / 10, 0.3);
|
|
116
|
-
const mediumImpact = Math.min((metrics.mediumVulns || 0) / 20, 0.1);
|
|
117
|
-
const security = Math.max(1 - criticalImpact - highImpact - mediumImpact, 0);
|
|
118
|
-
|
|
119
|
-
// Performance: Ratio of target to actual P95 latency, capped at 1
|
|
120
|
-
const performance = metrics.targetLatency > 0
|
|
121
|
-
? Math.min(metrics.targetLatency / Math.max(metrics.p95Latency, 1), 1)
|
|
122
|
-
: 1;
|
|
123
|
-
|
|
124
|
-
// Maintainability: Direct index to 0-1
|
|
125
|
-
const maintainability = Math.min(Math.max(metrics.maintainabilityIndex / 100, 0), 1);
|
|
126
|
-
|
|
127
|
-
// Reliability: Inverse of flaky test ratio
|
|
128
|
-
const reliability = 1 - (metrics.flakyTestRatio || 0);
|
|
129
|
-
|
|
130
|
-
// Technical debt: Inverse ratio of debt to max acceptable
|
|
131
|
-
let technicalDebt: number | undefined;
|
|
132
|
-
if (metrics.technicalDebtHours !== undefined && metrics.maxAcceptableDebtHours) {
|
|
133
|
-
technicalDebt = Math.max(
|
|
134
|
-
1 - metrics.technicalDebtHours / metrics.maxAcceptableDebtHours,
|
|
135
|
-
0
|
|
136
|
-
);
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
// Duplication: Inverse of duplication percentage (capped at 20%)
|
|
140
|
-
let duplication: number | undefined;
|
|
141
|
-
if (metrics.duplicationPercent !== undefined) {
|
|
142
|
-
duplication = Math.max(1 - metrics.duplicationPercent / 20, 0);
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
return {
|
|
146
|
-
coverage,
|
|
147
|
-
passRate,
|
|
148
|
-
security,
|
|
149
|
-
performance,
|
|
150
|
-
maintainability,
|
|
151
|
-
reliability,
|
|
152
|
-
technicalDebt,
|
|
153
|
-
duplication,
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
/**
|
|
158
|
-
* Calculate the minimum cut (lambda) from dimensions
|
|
159
|
-
* This is the weakest quality dimension, representing the "minimum cut" in the quality graph
|
|
160
|
-
*/
|
|
161
|
-
calculateMinimumCut(dimensions: QualityDimensions): number {
|
|
162
|
-
// Get all defined dimension values
|
|
163
|
-
const values: number[] = [];
|
|
164
|
-
const entries = Object.entries(dimensions) as [keyof QualityDimensions, number | undefined][];
|
|
165
|
-
|
|
166
|
-
for (const [key, value] of entries) {
|
|
167
|
-
if (value !== undefined) {
|
|
168
|
-
// Apply weight to the dimension
|
|
169
|
-
const weight = this.weights[key] || 1.0;
|
|
170
|
-
|
|
171
|
-
// For critical dimensions, don't apply weight reduction
|
|
172
|
-
if (this.criticalDimensions.has(key)) {
|
|
173
|
-
values.push(value);
|
|
174
|
-
} else {
|
|
175
|
-
// Non-critical dimensions have weighted contribution
|
|
176
|
-
// Higher weight means more impact on lambda
|
|
177
|
-
values.push(value * (2 - weight) / 2 + value / 2);
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
if (values.length === 0) {
|
|
183
|
-
return 0;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
// Lambda is the minimum value (minimum cut)
|
|
187
|
-
const minValue = Math.min(...values);
|
|
188
|
-
|
|
189
|
-
// Scale to 0-100
|
|
190
|
-
return Math.round(minValue * 100);
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
/**
|
|
194
|
-
* Count dimensions that are at the boundary (near threshold, unstable)
|
|
195
|
-
*/
|
|
196
|
-
countBoundaryEdges(dimensions: QualityDimensions): number {
|
|
197
|
-
const threshold = this.policy.boundaryThreshold;
|
|
198
|
-
const tolerance = this.policy.boundaryTolerance;
|
|
199
|
-
let boundaryCount = 0;
|
|
200
|
-
|
|
201
|
-
const entries = Object.entries(dimensions) as [keyof QualityDimensions, number | undefined][];
|
|
202
|
-
|
|
203
|
-
for (const [, value] of entries) {
|
|
204
|
-
if (value !== undefined) {
|
|
205
|
-
// A dimension is at the boundary if it's within tolerance of the threshold
|
|
206
|
-
if (value >= threshold - tolerance && value < threshold + tolerance) {
|
|
207
|
-
boundaryCount++;
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
return boundaryCount;
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
/**
|
|
216
|
-
* Calculate boundary concentration in Q15 fixed-point format (0-32767)
|
|
217
|
-
* Higher values indicate more concentrated instability
|
|
218
|
-
*/
|
|
219
|
-
calculateBoundaryConcentration(dimensions: QualityDimensions): number {
|
|
220
|
-
const threshold = this.policy.boundaryThreshold;
|
|
221
|
-
|
|
222
|
-
// Get all dimensions below threshold
|
|
223
|
-
const belowThreshold: number[] = [];
|
|
224
|
-
const entries = Object.entries(dimensions) as [keyof QualityDimensions, number | undefined][];
|
|
225
|
-
|
|
226
|
-
for (const [, value] of entries) {
|
|
227
|
-
if (value !== undefined && value < threshold) {
|
|
228
|
-
belowThreshold.push(value);
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
if (belowThreshold.length === 0) {
|
|
233
|
-
// No dimensions below threshold = maximum stability
|
|
234
|
-
return 32767;
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
// Calculate average of below-threshold dimensions
|
|
238
|
-
const avgBelowThreshold = belowThreshold.reduce((a, b) => a + b, 0) / belowThreshold.length;
|
|
239
|
-
|
|
240
|
-
// Convert to Q15 (0-32767)
|
|
241
|
-
// Lower values in below-threshold = lower Q15 = more concerning
|
|
242
|
-
return Math.round(avgBelowThreshold * 32767);
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
/**
|
|
246
|
-
* Calculate control flags based on lambda and trend
|
|
247
|
-
*/
|
|
248
|
-
calculateFlags(lambda: number, previousLambda?: number): QualityLambdaFlags {
|
|
249
|
-
let flags = QualityLambdaFlags.NONE;
|
|
250
|
-
|
|
251
|
-
// Check if this is first evaluation
|
|
252
|
-
if (previousLambda === undefined) {
|
|
253
|
-
flags |= QualityLambdaFlags.FIRST_EVALUATION;
|
|
254
|
-
return flags;
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
// Calculate trend
|
|
258
|
-
const delta = lambda - previousLambda;
|
|
259
|
-
const deltaRatio = previousLambda > 0 ? Math.abs(delta) / previousLambda : 0;
|
|
260
|
-
|
|
261
|
-
// Set trend flags
|
|
262
|
-
if (delta > 0 && deltaRatio > 0.05) {
|
|
263
|
-
flags |= QualityLambdaFlags.TRENDING_UP;
|
|
264
|
-
} else if (delta < 0 && deltaRatio > 0.05) {
|
|
265
|
-
flags |= QualityLambdaFlags.TRENDING_DOWN;
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
return flags;
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
/**
|
|
272
|
-
* Calculate the drop ratio in Q15 format (0-32767)
|
|
273
|
-
* Used by gate controller to detect rapid quality degradation
|
|
274
|
-
*/
|
|
275
|
-
calculateDropRatioQ15(lambda: QualityLambda): number {
|
|
276
|
-
if (lambda.lambdaPrev === 0 || lambda.lambdaPrev === lambda.lambda) {
|
|
277
|
-
return 0;
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
const drop = lambda.lambdaPrev - lambda.lambda;
|
|
281
|
-
if (drop <= 0) {
|
|
282
|
-
return 0; // No drop (improved or stayed same)
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
const dropRatio = drop / lambda.lambdaPrev;
|
|
286
|
-
return Math.round(dropRatio * 32767);
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
/**
|
|
290
|
-
* Get weighted dimension score for a specific dimension
|
|
291
|
-
*/
|
|
292
|
-
getWeightedScore(dimension: keyof QualityDimensions, value: number): number {
|
|
293
|
-
const weight = this.weights[dimension] || 1.0;
|
|
294
|
-
return value * weight;
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
/**
|
|
298
|
-
* Check if a dimension is critical
|
|
299
|
-
*/
|
|
300
|
-
isCriticalDimension(dimension: keyof QualityDimensions): boolean {
|
|
301
|
-
return this.criticalDimensions.has(dimension);
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
/**
|
|
305
|
-
* Get all dimensions below a specific threshold
|
|
306
|
-
*/
|
|
307
|
-
getDimensionsBelowThreshold(
|
|
308
|
-
dimensions: QualityDimensions,
|
|
309
|
-
threshold?: number
|
|
310
|
-
): Array<{ dimension: keyof QualityDimensions; value: number; deficit: number }> {
|
|
311
|
-
const thresh = threshold ?? this.policy.boundaryThreshold;
|
|
312
|
-
const below: Array<{ dimension: keyof QualityDimensions; value: number; deficit: number }> = [];
|
|
313
|
-
|
|
314
|
-
const entries = Object.entries(dimensions) as [keyof QualityDimensions, number | undefined][];
|
|
315
|
-
|
|
316
|
-
for (const [key, value] of entries) {
|
|
317
|
-
if (value !== undefined && value < thresh) {
|
|
318
|
-
below.push({
|
|
319
|
-
dimension: key,
|
|
320
|
-
value,
|
|
321
|
-
deficit: thresh - value,
|
|
322
|
-
});
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
// Sort by deficit (largest first)
|
|
327
|
-
return below.sort((a, b) => b.deficit - a.deficit);
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
/**
|
|
331
|
-
* Calculate a summary of dimension health
|
|
332
|
-
*/
|
|
333
|
-
getDimensionSummary(dimensions: QualityDimensions): {
|
|
334
|
-
healthy: number;
|
|
335
|
-
warning: number;
|
|
336
|
-
critical: number;
|
|
337
|
-
total: number;
|
|
338
|
-
} {
|
|
339
|
-
const thresh = this.policy.boundaryThreshold;
|
|
340
|
-
const criticalThresh = thresh - this.policy.boundaryTolerance;
|
|
341
|
-
|
|
342
|
-
let healthy = 0;
|
|
343
|
-
let warning = 0;
|
|
344
|
-
let critical = 0;
|
|
345
|
-
let total = 0;
|
|
346
|
-
|
|
347
|
-
const entries = Object.entries(dimensions) as [keyof QualityDimensions, number | undefined][];
|
|
348
|
-
|
|
349
|
-
for (const [, value] of entries) {
|
|
350
|
-
if (value !== undefined) {
|
|
351
|
-
total++;
|
|
352
|
-
if (value >= thresh) {
|
|
353
|
-
healthy++;
|
|
354
|
-
} else if (value >= criticalThresh) {
|
|
355
|
-
warning++;
|
|
356
|
-
} else {
|
|
357
|
-
critical++;
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
}
|
|
361
|
-
|
|
362
|
-
return { healthy, warning, critical, total };
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
|
|
366
|
-
/**
|
|
367
|
-
* Factory function to create a lambda calculator with default settings
|
|
368
|
-
*/
|
|
369
|
-
export function createLambdaCalculator(
|
|
370
|
-
config?: Partial<LambdaCalculatorConfig>
|
|
371
|
-
): LambdaCalculator {
|
|
372
|
-
return new LambdaCalculator(config);
|
|
373
|
-
}
|
|
374
|
-
|
|
375
|
-
/**
|
|
376
|
-
* Convenience function to calculate lambda from metrics
|
|
377
|
-
*/
|
|
378
|
-
export function calculateQualityLambda(
|
|
379
|
-
metrics: QualityMetricsInput,
|
|
380
|
-
config?: Partial<LambdaCalculatorConfig>
|
|
381
|
-
): QualityLambda {
|
|
382
|
-
const calculator = createLambdaCalculator(config);
|
|
383
|
-
return calculator.calculate(metrics);
|
|
384
|
-
}
|