agentic-qe 1.4.4 → 1.5.1
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/qe-api-contract-validator.md +133 -27
- package/.claude/agents/qe-api-contract-validator.md.backup +1148 -0
- package/.claude/agents/qe-api-contract-validator.md.backup-20251107-134747 +1148 -0
- package/.claude/agents/qe-api-contract-validator.md.backup-phase2-20251107-140039 +1123 -0
- package/.claude/agents/qe-chaos-engineer.md +142 -23
- package/.claude/agents/qe-chaos-engineer.md.backup +808 -0
- package/.claude/agents/qe-chaos-engineer.md.backup-20251107-134747 +808 -0
- package/.claude/agents/qe-chaos-engineer.md.backup-phase2-20251107-140039 +787 -0
- package/.claude/agents/qe-code-complexity.md +111 -23
- package/.claude/agents/qe-code-complexity.md.backup +291 -0
- package/.claude/agents/qe-code-complexity.md.backup-20251107-134747 +291 -0
- package/.claude/agents/qe-code-complexity.md.backup-phase2-20251107-140039 +286 -0
- package/.claude/agents/qe-coverage-analyzer.md +306 -30
- package/.claude/agents/qe-coverage-analyzer.md.backup +467 -0
- package/.claude/agents/qe-coverage-analyzer.md.backup-20251107-134747 +467 -0
- package/.claude/agents/qe-coverage-analyzer.md.backup-phase2-20251107-140039 +438 -0
- package/.claude/agents/qe-deployment-readiness.md +84 -28
- package/.claude/agents/qe-deployment-readiness.md.backup +1166 -0
- package/.claude/agents/qe-deployment-readiness.md.backup-20251107-134747 +1166 -0
- package/.claude/agents/qe-deployment-readiness.md.backup-phase2-20251107-140039 +1140 -0
- package/.claude/agents/qe-flaky-test-hunter.md +277 -35
- package/.claude/agents/qe-flaky-test-hunter.md.backup +1195 -0
- package/.claude/agents/qe-flaky-test-hunter.md.backup-20251107-134747 +1195 -0
- package/.claude/agents/qe-flaky-test-hunter.md.backup-phase2-20251107-140039 +1162 -0
- package/.claude/agents/qe-fleet-commander.md +126 -23
- package/.claude/agents/qe-fleet-commander.md.backup +718 -0
- package/.claude/agents/qe-fleet-commander.md.backup-20251107-134747 +718 -0
- package/.claude/agents/qe-fleet-commander.md.backup-phase2-20251107-140039 +697 -0
- package/.claude/agents/qe-performance-tester.md +314 -57
- package/.claude/agents/qe-performance-tester.md.backup +428 -0
- package/.claude/agents/qe-performance-tester.md.backup-20251107-134747 +428 -0
- package/.claude/agents/qe-performance-tester.md.backup-phase2-20251107-140039 +372 -0
- package/.claude/agents/qe-production-intelligence.md +126 -27
- package/.claude/agents/qe-production-intelligence.md.backup +1219 -0
- package/.claude/agents/qe-production-intelligence.md.backup-20251107-134747 +1219 -0
- package/.claude/agents/qe-production-intelligence.md.backup-phase2-20251107-140039 +1194 -0
- package/.claude/agents/qe-quality-analyzer.md +127 -32
- package/.claude/agents/qe-quality-analyzer.md.backup +425 -0
- package/.claude/agents/qe-quality-analyzer.md.backup-20251107-134747 +425 -0
- package/.claude/agents/qe-quality-analyzer.md.backup-phase2-20251107-140039 +394 -0
- package/.claude/agents/qe-quality-gate.md +148 -33
- package/.claude/agents/qe-quality-gate.md.backup +446 -0
- package/.claude/agents/qe-quality-gate.md.backup-20251107-134747 +446 -0
- package/.claude/agents/qe-quality-gate.md.backup-phase2-20251107-140039 +415 -0
- package/.claude/agents/qe-regression-risk-analyzer.md +78 -27
- package/.claude/agents/qe-regression-risk-analyzer.md.backup +1009 -0
- package/.claude/agents/qe-regression-risk-analyzer.md.backup-20251107-134747 +1009 -0
- package/.claude/agents/qe-regression-risk-analyzer.md.backup-phase2-20251107-140039 +984 -0
- package/.claude/agents/qe-requirements-validator.md +131 -27
- package/.claude/agents/qe-requirements-validator.md.backup +748 -0
- package/.claude/agents/qe-requirements-validator.md.backup-20251107-134747 +748 -0
- package/.claude/agents/qe-requirements-validator.md.backup-phase2-20251107-140039 +723 -0
- package/.claude/agents/qe-security-scanner.md +137 -62
- package/.claude/agents/qe-security-scanner.md.backup +634 -0
- package/.claude/agents/qe-security-scanner.md.backup-20251107-134747 +634 -0
- package/.claude/agents/qe-security-scanner.md.backup-phase2-20251107-140039 +573 -0
- package/.claude/agents/qe-test-data-architect.md +129 -26
- package/.claude/agents/qe-test-data-architect.md.backup +1064 -0
- package/.claude/agents/qe-test-data-architect.md.backup-20251107-134747 +1064 -0
- package/.claude/agents/qe-test-data-architect.md.backup-phase2-20251107-140039 +1040 -0
- package/.claude/agents/qe-test-executor.md +165 -21
- package/.claude/agents/qe-test-executor.md.backup +389 -0
- package/.claude/agents/qe-test-executor.md.backup-20251107-134747 +389 -0
- package/.claude/agents/qe-test-executor.md.backup-phase2-20251107-140039 +369 -0
- package/.claude/agents/qe-test-generator.md +379 -34
- package/.claude/agents/qe-test-generator.md.backup +997 -0
- package/.claude/agents/qe-test-generator.md.backup-20251107-134747 +997 -0
- package/.claude/agents/qe-visual-tester.md +236 -23
- package/.claude/agents/qe-visual-tester.md.backup +777 -0
- package/.claude/agents/qe-visual-tester.md.backup-20251107-134747 +777 -0
- package/.claude/agents/qe-visual-tester.md.backup-phase2-20251107-140039 +756 -0
- package/.claude/agents/subagents/qe-code-reviewer.md +59 -0
- package/.claude/agents/subagents/qe-data-generator.md +60 -0
- package/.claude/agents/subagents/qe-integration-tester.md +77 -0
- package/.claude/agents/subagents/qe-performance-validator.md +55 -0
- package/.claude/agents/subagents/qe-security-auditor.md +51 -0
- package/.claude/agents/subagents/qe-test-implementer.md +371 -0
- package/.claude/agents/subagents/qe-test-refactorer.md +510 -0
- package/.claude/agents/subagents/qe-test-writer.md +603 -0
- package/.claude/skills/accessibility-testing/SKILL.md +764 -777
- package/.claude/skills/agentic-quality-engineering/SKILL.md +0 -6
- package/.claude/skills/api-testing-patterns/SKILL.md +0 -12
- package/.claude/skills/bug-reporting-excellence/SKILL.md +0 -6
- package/.claude/skills/chaos-engineering-resilience/SKILL.md +0 -6
- package/.claude/skills/code-review-quality/SKILL.md +0 -6
- package/.claude/skills/compatibility-testing/SKILL.md +0 -6
- package/.claude/skills/compliance-testing/SKILL.md +0 -6
- package/.claude/skills/consultancy-practices/SKILL.md +0 -6
- package/.claude/skills/context-driven-testing/SKILL.md +0 -6
- package/.claude/skills/contract-testing/SKILL.md +0 -6
- package/.claude/skills/database-testing/SKILL.md +0 -6
- package/.claude/skills/exploratory-testing-advanced/SKILL.md +0 -6
- package/.claude/skills/holistic-testing-pact/SKILL.md +0 -6
- package/.claude/skills/localization-testing/SKILL.md +0 -6
- package/.claude/skills/mobile-testing/SKILL.md +535 -548
- package/.claude/skills/mutation-testing/SKILL.md +0 -6
- package/.claude/skills/performance-testing/SKILL.md +0 -6
- package/.claude/skills/quality-metrics/SKILL.md +0 -12
- package/.claude/skills/refactoring-patterns/SKILL.md +0 -6
- package/.claude/skills/regression-testing/SKILL.md +1033 -1045
- package/.claude/skills/risk-based-testing/SKILL.md +0 -12
- package/.claude/skills/security-testing/SKILL.md +0 -6
- package/.claude/skills/shift-left-testing/SKILL.md +529 -535
- package/.claude/skills/shift-right-testing/SKILL.md +585 -591
- package/.claude/skills/tdd-london-chicago/SKILL.md +0 -6
- package/.claude/skills/technical-writing/SKILL.md +0 -6
- package/.claude/skills/test-automation-strategy/SKILL.md +0 -6
- package/.claude/skills/test-data-management/SKILL.md +1054 -1067
- package/.claude/skills/test-design-techniques/SKILL.md +0 -6
- package/.claude/skills/test-environment-management/SKILL.md +0 -6
- package/.claude/skills/test-reporting-analytics/SKILL.md +0 -6
- package/.claude/skills/visual-testing-advanced/SKILL.md +0 -6
- package/.claude/skills/xp-practices/SKILL.md +0 -6
- package/CHANGELOG.md +426 -5
- package/README.md +24 -19
- package/dist/cli/commands/init.d.ts +4 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +97 -44
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/mcp/handlers/coordination/index.d.ts +14 -14
- package/dist/mcp/handlers/coordination/index.d.ts.map +1 -1
- package/dist/mcp/handlers/coordination/index.js +14 -14
- package/dist/mcp/handlers/coordination/index.js.map +1 -1
- package/dist/mcp/handlers/phase2/Phase2Tools.d.ts.map +1 -1
- package/dist/mcp/handlers/phase2/Phase2Tools.js +39 -10
- package/dist/mcp/handlers/phase2/Phase2Tools.js.map +1 -1
- package/dist/mcp/handlers/phase3/Phase3DomainTools.d.ts +63 -0
- package/dist/mcp/handlers/phase3/Phase3DomainTools.d.ts.map +1 -0
- package/dist/mcp/handlers/phase3/Phase3DomainTools.js +885 -0
- package/dist/mcp/handlers/phase3/Phase3DomainTools.js.map +1 -0
- package/dist/mcp/handlers/phase3/index.d.ts +6 -0
- package/dist/mcp/handlers/phase3/index.d.ts.map +1 -0
- package/dist/mcp/handlers/phase3/index.js +10 -0
- package/dist/mcp/handlers/phase3/index.js.map +1 -0
- package/dist/mcp/handlers/prediction/index.d.ts +10 -10
- package/dist/mcp/handlers/prediction/index.d.ts.map +1 -1
- package/dist/mcp/handlers/prediction/index.js +10 -10
- package/dist/mcp/handlers/prediction/index.js.map +1 -1
- package/dist/mcp/handlers/security/check-authz.d.ts +152 -0
- package/dist/mcp/handlers/security/check-authz.d.ts.map +1 -0
- package/dist/mcp/handlers/security/check-authz.js +434 -0
- package/dist/mcp/handlers/security/check-authz.js.map +1 -0
- package/dist/mcp/handlers/security/generate-report.d.ts +156 -0
- package/dist/mcp/handlers/security/generate-report.d.ts.map +1 -0
- package/dist/mcp/handlers/security/generate-report.js +469 -0
- package/dist/mcp/handlers/security/generate-report.js.map +1 -0
- package/dist/mcp/handlers/security/index.d.ts +80 -0
- package/dist/mcp/handlers/security/index.d.ts.map +1 -0
- package/dist/mcp/handlers/security/index.js +91 -0
- package/dist/mcp/handlers/security/index.js.map +1 -0
- package/dist/mcp/handlers/security/scan-comprehensive.d.ts +66 -0
- package/dist/mcp/handlers/security/scan-comprehensive.d.ts.map +1 -0
- package/dist/mcp/handlers/security/scan-comprehensive.js +296 -0
- package/dist/mcp/handlers/security/scan-comprehensive.js.map +1 -0
- package/dist/mcp/handlers/security/scan-dependencies.d.ts +148 -0
- package/dist/mcp/handlers/security/scan-dependencies.d.ts.map +1 -0
- package/dist/mcp/handlers/security/scan-dependencies.js +354 -0
- package/dist/mcp/handlers/security/scan-dependencies.js.map +1 -0
- package/dist/mcp/handlers/security/validate-auth.d.ts +128 -0
- package/dist/mcp/handlers/security/validate-auth.d.ts.map +1 -0
- package/dist/mcp/handlers/security/validate-auth.js +294 -0
- package/dist/mcp/handlers/security/validate-auth.js.map +1 -0
- package/dist/mcp/handlers/test/generate-integration-tests.d.ts +95 -0
- package/dist/mcp/handlers/test/generate-integration-tests.d.ts.map +1 -0
- package/dist/mcp/handlers/test/generate-integration-tests.js +286 -0
- package/dist/mcp/handlers/test/generate-integration-tests.js.map +1 -0
- package/dist/mcp/handlers/test/generate-unit-tests.d.ts +89 -0
- package/dist/mcp/handlers/test/generate-unit-tests.d.ts.map +1 -0
- package/dist/mcp/handlers/test/generate-unit-tests.js +273 -0
- package/dist/mcp/handlers/test/generate-unit-tests.js.map +1 -0
- package/dist/mcp/handlers/test/optimize-test-suite.d.ts +97 -0
- package/dist/mcp/handlers/test/optimize-test-suite.d.ts.map +1 -0
- package/dist/mcp/handlers/test/optimize-test-suite.js +282 -0
- package/dist/mcp/handlers/test/optimize-test-suite.js.map +1 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +211 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/deprecated.d.ts +1390 -0
- package/dist/mcp/tools/deprecated.d.ts.map +1 -0
- package/dist/mcp/tools/deprecated.js +859 -0
- package/dist/mcp/tools/deprecated.js.map +1 -0
- package/dist/mcp/tools/qe/api-contract/index.d.ts +138 -0
- package/dist/mcp/tools/qe/api-contract/index.d.ts.map +1 -0
- package/dist/mcp/tools/qe/api-contract/index.js +572 -0
- package/dist/mcp/tools/qe/api-contract/index.js.map +1 -0
- package/dist/mcp/tools/qe/code-quality/analyze-complexity.d.ts +110 -0
- package/dist/mcp/tools/qe/code-quality/analyze-complexity.d.ts.map +1 -0
- package/dist/mcp/tools/qe/code-quality/analyze-complexity.js +381 -0
- package/dist/mcp/tools/qe/code-quality/analyze-complexity.js.map +1 -0
- package/dist/mcp/tools/qe/code-quality/calculate-quality-metrics.d.ts +115 -0
- package/dist/mcp/tools/qe/code-quality/calculate-quality-metrics.d.ts.map +1 -0
- package/dist/mcp/tools/qe/code-quality/calculate-quality-metrics.js +461 -0
- package/dist/mcp/tools/qe/code-quality/calculate-quality-metrics.js.map +1 -0
- package/dist/mcp/tools/qe/code-quality/index.d.ts +12 -0
- package/dist/mcp/tools/qe/code-quality/index.d.ts.map +1 -0
- package/dist/mcp/tools/qe/code-quality/index.js +30 -0
- package/dist/mcp/tools/qe/code-quality/index.js.map +1 -0
- package/dist/mcp/tools/qe/coverage/analyze-with-risk-scoring.d.ts +58 -0
- package/dist/mcp/tools/qe/coverage/analyze-with-risk-scoring.d.ts.map +1 -0
- package/dist/mcp/tools/qe/coverage/analyze-with-risk-scoring.js +172 -0
- package/dist/mcp/tools/qe/coverage/analyze-with-risk-scoring.js.map +1 -0
- package/dist/mcp/tools/qe/coverage/calculate-trends.d.ts +73 -0
- package/dist/mcp/tools/qe/coverage/calculate-trends.d.ts.map +1 -0
- package/dist/mcp/tools/qe/coverage/calculate-trends.js +240 -0
- package/dist/mcp/tools/qe/coverage/calculate-trends.js.map +1 -0
- package/dist/mcp/tools/qe/coverage/detect-gaps-ml.d.ts +38 -0
- package/dist/mcp/tools/qe/coverage/detect-gaps-ml.d.ts.map +1 -0
- package/dist/mcp/tools/qe/coverage/detect-gaps-ml.js +204 -0
- package/dist/mcp/tools/qe/coverage/detect-gaps-ml.js.map +1 -0
- package/dist/mcp/tools/qe/coverage/index.d.ts +12 -0
- package/dist/mcp/tools/qe/coverage/index.d.ts.map +1 -0
- package/dist/mcp/tools/qe/coverage/index.js +23 -0
- package/dist/mcp/tools/qe/coverage/index.js.map +1 -0
- package/dist/mcp/tools/qe/coverage/recommend-tests.d.ts +46 -0
- package/dist/mcp/tools/qe/coverage/recommend-tests.d.ts.map +1 -0
- package/dist/mcp/tools/qe/coverage/recommend-tests.js +248 -0
- package/dist/mcp/tools/qe/coverage/recommend-tests.js.map +1 -0
- package/dist/mcp/tools/qe/flaky-detection/analyze-patterns.d.ts +179 -0
- package/dist/mcp/tools/qe/flaky-detection/analyze-patterns.d.ts.map +1 -0
- package/dist/mcp/tools/qe/flaky-detection/analyze-patterns.js +554 -0
- package/dist/mcp/tools/qe/flaky-detection/analyze-patterns.js.map +1 -0
- package/dist/mcp/tools/qe/flaky-detection/detect-statistical.d.ts +172 -0
- package/dist/mcp/tools/qe/flaky-detection/detect-statistical.d.ts.map +1 -0
- package/dist/mcp/tools/qe/flaky-detection/detect-statistical.js +498 -0
- package/dist/mcp/tools/qe/flaky-detection/detect-statistical.js.map +1 -0
- package/dist/mcp/tools/qe/flaky-detection/index.d.ts +35 -0
- package/dist/mcp/tools/qe/flaky-detection/index.d.ts.map +1 -0
- package/dist/mcp/tools/qe/flaky-detection/index.js +66 -0
- package/dist/mcp/tools/qe/flaky-detection/index.js.map +1 -0
- package/dist/mcp/tools/qe/flaky-detection/stabilize-auto.d.ts +159 -0
- package/dist/mcp/tools/qe/flaky-detection/stabilize-auto.d.ts.map +1 -0
- package/dist/mcp/tools/qe/flaky-detection/stabilize-auto.js +462 -0
- package/dist/mcp/tools/qe/flaky-detection/stabilize-auto.js.map +1 -0
- package/dist/mcp/tools/qe/fleet/index.d.ts +422 -0
- package/dist/mcp/tools/qe/fleet/index.d.ts.map +1 -0
- package/dist/mcp/tools/qe/fleet/index.js +652 -0
- package/dist/mcp/tools/qe/fleet/index.js.map +1 -0
- package/dist/mcp/tools/qe/performance/analyze-bottlenecks.d.ts +180 -0
- package/dist/mcp/tools/qe/performance/analyze-bottlenecks.d.ts.map +1 -0
- package/dist/mcp/tools/qe/performance/analyze-bottlenecks.js +347 -0
- package/dist/mcp/tools/qe/performance/analyze-bottlenecks.js.map +1 -0
- package/dist/mcp/tools/qe/performance/generate-report.d.ts +146 -0
- package/dist/mcp/tools/qe/performance/generate-report.d.ts.map +1 -0
- package/dist/mcp/tools/qe/performance/generate-report.js +354 -0
- package/dist/mcp/tools/qe/performance/generate-report.js.map +1 -0
- package/dist/mcp/tools/qe/performance/index.d.ts +13 -0
- package/dist/mcp/tools/qe/performance/index.d.ts.map +1 -0
- package/dist/mcp/tools/qe/performance/index.js +24 -0
- package/dist/mcp/tools/qe/performance/index.js.map +1 -0
- package/dist/mcp/tools/qe/performance/monitor-realtime.d.ts +120 -0
- package/dist/mcp/tools/qe/performance/monitor-realtime.d.ts.map +1 -0
- package/dist/mcp/tools/qe/performance/monitor-realtime.js +215 -0
- package/dist/mcp/tools/qe/performance/monitor-realtime.js.map +1 -0
- package/dist/mcp/tools/qe/performance/run-benchmark.d.ts +68 -0
- package/dist/mcp/tools/qe/performance/run-benchmark.d.ts.map +1 -0
- package/dist/mcp/tools/qe/performance/run-benchmark.js +120 -0
- package/dist/mcp/tools/qe/performance/run-benchmark.js.map +1 -0
- package/dist/mcp/tools/qe/quality-gates/assess-deployment-risk.d.ts +239 -0
- package/dist/mcp/tools/qe/quality-gates/assess-deployment-risk.d.ts.map +1 -0
- package/dist/mcp/tools/qe/quality-gates/assess-deployment-risk.js +671 -0
- package/dist/mcp/tools/qe/quality-gates/assess-deployment-risk.js.map +1 -0
- package/dist/mcp/tools/qe/quality-gates/evaluate-quality-gate.d.ts +219 -0
- package/dist/mcp/tools/qe/quality-gates/evaluate-quality-gate.d.ts.map +1 -0
- package/dist/mcp/tools/qe/quality-gates/evaluate-quality-gate.js +732 -0
- package/dist/mcp/tools/qe/quality-gates/evaluate-quality-gate.js.map +1 -0
- package/dist/mcp/tools/qe/quality-gates/generate-quality-report.d.ts +447 -0
- package/dist/mcp/tools/qe/quality-gates/generate-quality-report.d.ts.map +1 -0
- package/dist/mcp/tools/qe/quality-gates/generate-quality-report.js +551 -0
- package/dist/mcp/tools/qe/quality-gates/generate-quality-report.js.map +1 -0
- package/dist/mcp/tools/qe/quality-gates/index.d.ts +40 -0
- package/dist/mcp/tools/qe/quality-gates/index.d.ts.map +1 -0
- package/dist/mcp/tools/qe/quality-gates/index.js +56 -0
- package/dist/mcp/tools/qe/quality-gates/index.js.map +1 -0
- package/dist/mcp/tools/qe/quality-gates/validate-quality-metrics.d.ts +226 -0
- package/dist/mcp/tools/qe/quality-gates/validate-quality-metrics.d.ts.map +1 -0
- package/dist/mcp/tools/qe/quality-gates/validate-quality-metrics.js +603 -0
- package/dist/mcp/tools/qe/quality-gates/validate-quality-metrics.js.map +1 -0
- package/dist/mcp/tools/qe/regression/analyze-risk.d.ts +212 -0
- package/dist/mcp/tools/qe/regression/analyze-risk.d.ts.map +1 -0
- package/dist/mcp/tools/qe/regression/analyze-risk.js +617 -0
- package/dist/mcp/tools/qe/regression/analyze-risk.js.map +1 -0
- package/dist/mcp/tools/qe/regression/index.d.ts +36 -0
- package/dist/mcp/tools/qe/regression/index.d.ts.map +1 -0
- package/dist/mcp/tools/qe/regression/index.js +63 -0
- package/dist/mcp/tools/qe/regression/index.js.map +1 -0
- package/dist/mcp/tools/qe/regression/select-tests.d.ts +241 -0
- package/dist/mcp/tools/qe/regression/select-tests.d.ts.map +1 -0
- package/dist/mcp/tools/qe/regression/select-tests.js +601 -0
- package/dist/mcp/tools/qe/regression/select-tests.js.map +1 -0
- package/dist/mcp/tools/qe/requirements/generate-bdd-scenarios.d.ts +134 -0
- package/dist/mcp/tools/qe/requirements/generate-bdd-scenarios.d.ts.map +1 -0
- package/dist/mcp/tools/qe/requirements/generate-bdd-scenarios.js +737 -0
- package/dist/mcp/tools/qe/requirements/generate-bdd-scenarios.js.map +1 -0
- package/dist/mcp/tools/qe/requirements/index.d.ts +40 -0
- package/dist/mcp/tools/qe/requirements/index.d.ts.map +1 -0
- package/dist/mcp/tools/qe/requirements/index.js +84 -0
- package/dist/mcp/tools/qe/requirements/index.js.map +1 -0
- package/dist/mcp/tools/qe/requirements/validate-requirements.d.ts +196 -0
- package/dist/mcp/tools/qe/requirements/validate-requirements.d.ts.map +1 -0
- package/dist/mcp/tools/qe/requirements/validate-requirements.js +740 -0
- package/dist/mcp/tools/qe/requirements/validate-requirements.js.map +1 -0
- package/dist/mcp/tools/qe/security/detect-vulnerabilities.d.ts +300 -0
- package/dist/mcp/tools/qe/security/detect-vulnerabilities.d.ts.map +1 -0
- package/dist/mcp/tools/qe/security/detect-vulnerabilities.js +492 -0
- package/dist/mcp/tools/qe/security/detect-vulnerabilities.js.map +1 -0
- package/dist/mcp/tools/qe/security/index.d.ts +34 -0
- package/dist/mcp/tools/qe/security/index.d.ts.map +1 -0
- package/dist/mcp/tools/qe/security/index.js +44 -0
- package/dist/mcp/tools/qe/security/index.js.map +1 -0
- package/dist/mcp/tools/qe/security/scan-comprehensive.d.ts +240 -0
- package/dist/mcp/tools/qe/security/scan-comprehensive.d.ts.map +1 -0
- package/dist/mcp/tools/qe/security/scan-comprehensive.js +557 -0
- package/dist/mcp/tools/qe/security/scan-comprehensive.js.map +1 -0
- package/dist/mcp/tools/qe/security/validate-compliance.d.ts +299 -0
- package/dist/mcp/tools/qe/security/validate-compliance.d.ts.map +1 -0
- package/dist/mcp/tools/qe/security/validate-compliance.js +517 -0
- package/dist/mcp/tools/qe/security/validate-compliance.js.map +1 -0
- package/dist/mcp/tools/qe/shared/types.d.ts +840 -0
- package/dist/mcp/tools/qe/shared/types.d.ts.map +1 -0
- package/dist/mcp/tools/qe/shared/types.js +13 -0
- package/dist/mcp/tools/qe/shared/types.js.map +1 -0
- package/dist/mcp/tools/qe/test-data/analyze-schema.d.ts +264 -0
- package/dist/mcp/tools/qe/test-data/analyze-schema.d.ts.map +1 -0
- package/dist/mcp/tools/qe/test-data/analyze-schema.js +553 -0
- package/dist/mcp/tools/qe/test-data/analyze-schema.js.map +1 -0
- package/dist/mcp/tools/qe/test-data/generate-test-data.d.ts +167 -0
- package/dist/mcp/tools/qe/test-data/generate-test-data.d.ts.map +1 -0
- package/dist/mcp/tools/qe/test-data/generate-test-data.js +336 -0
- package/dist/mcp/tools/qe/test-data/generate-test-data.js.map +1 -0
- package/dist/mcp/tools/qe/test-data/index.d.ts +44 -0
- package/dist/mcp/tools/qe/test-data/index.d.ts.map +1 -0
- package/dist/mcp/tools/qe/test-data/index.js +90 -0
- package/dist/mcp/tools/qe/test-data/index.js.map +1 -0
- package/dist/mcp/tools/qe/test-data/mask-sensitive-data.d.ts +165 -0
- package/dist/mcp/tools/qe/test-data/mask-sensitive-data.d.ts.map +1 -0
- package/dist/mcp/tools/qe/test-data/mask-sensitive-data.js +342 -0
- package/dist/mcp/tools/qe/test-data/mask-sensitive-data.js.map +1 -0
- package/dist/mcp/tools/qe/test-generation/analyze-test-quality.d.ts +144 -0
- package/dist/mcp/tools/qe/test-generation/analyze-test-quality.d.ts.map +1 -0
- package/dist/mcp/tools/qe/test-generation/analyze-test-quality.js +432 -0
- package/dist/mcp/tools/qe/test-generation/analyze-test-quality.js.map +1 -0
- package/dist/mcp/tools/qe/test-generation/generate-integration-tests.d.ts +98 -0
- package/dist/mcp/tools/qe/test-generation/generate-integration-tests.d.ts.map +1 -0
- package/dist/mcp/tools/qe/test-generation/generate-integration-tests.js +459 -0
- package/dist/mcp/tools/qe/test-generation/generate-integration-tests.js.map +1 -0
- package/dist/mcp/tools/qe/test-generation/generate-unit-tests.d.ts +83 -0
- package/dist/mcp/tools/qe/test-generation/generate-unit-tests.d.ts.map +1 -0
- package/dist/mcp/tools/qe/test-generation/generate-unit-tests.js +483 -0
- package/dist/mcp/tools/qe/test-generation/generate-unit-tests.js.map +1 -0
- package/dist/mcp/tools/qe/test-generation/index.d.ts +56 -0
- package/dist/mcp/tools/qe/test-generation/index.d.ts.map +1 -0
- package/dist/mcp/tools/qe/test-generation/index.js +97 -0
- package/dist/mcp/tools/qe/test-generation/index.js.map +1 -0
- package/dist/mcp/tools/qe/test-generation/optimize-test-suite.d.ts +124 -0
- package/dist/mcp/tools/qe/test-generation/optimize-test-suite.d.ts.map +1 -0
- package/dist/mcp/tools/qe/test-generation/optimize-test-suite.js +362 -0
- package/dist/mcp/tools/qe/test-generation/optimize-test-suite.js.map +1 -0
- package/dist/mcp/tools/qe/visual/compare-screenshots.d.ts +119 -0
- package/dist/mcp/tools/qe/visual/compare-screenshots.d.ts.map +1 -0
- package/dist/mcp/tools/qe/visual/compare-screenshots.js +280 -0
- package/dist/mcp/tools/qe/visual/compare-screenshots.js.map +1 -0
- package/dist/mcp/tools/qe/visual/detect-regression.d.ts +138 -0
- package/dist/mcp/tools/qe/visual/detect-regression.d.ts.map +1 -0
- package/dist/mcp/tools/qe/visual/detect-regression.js +271 -0
- package/dist/mcp/tools/qe/visual/detect-regression.js.map +1 -0
- package/dist/mcp/tools/qe/visual/index.d.ts +16 -0
- package/dist/mcp/tools/qe/visual/index.d.ts.map +1 -0
- package/dist/mcp/tools/qe/visual/index.js +22 -0
- package/dist/mcp/tools/qe/visual/index.js.map +1 -0
- package/dist/mcp/tools/qe/visual/validate-accessibility.d.ts +276 -0
- package/dist/mcp/tools/qe/visual/validate-accessibility.d.ts.map +1 -0
- package/dist/mcp/tools/qe/visual/validate-accessibility.js +413 -0
- package/dist/mcp/tools/qe/visual/validate-accessibility.js.map +1 -0
- package/dist/mcp/tools.d.ts +44 -0
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +1980 -1
- package/dist/mcp/tools.js.map +1 -1
- package/package.json +2 -2
- package/dist/learning/__mocks__/LearningEngine.d.ts +0 -39
- package/dist/learning/__mocks__/LearningEngine.d.ts.map +0 -1
- package/dist/learning/__mocks__/LearningEngine.js +0 -116
- package/dist/learning/__mocks__/LearningEngine.js.map +0 -1
- package/dist/utils/__mocks__/Database.d.ts +0 -85
- package/dist/utils/__mocks__/Database.d.ts.map +0 -1
- package/dist/utils/__mocks__/Database.js +0 -125
- package/dist/utils/__mocks__/Database.js.map +0 -1
- package/dist/utils/__mocks__/Logger.d.ts +0 -26
- package/dist/utils/__mocks__/Logger.d.ts.map +0 -1
- package/dist/utils/__mocks__/Logger.js +0 -44
- package/dist/utils/__mocks__/Logger.js.map +0 -1
|
@@ -0,0 +1,551 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Quality Report Generation Tool
|
|
4
|
+
*
|
|
5
|
+
* Generates comprehensive quality reports with metrics, trends, insights,
|
|
6
|
+
* and actionable recommendations for stakeholders.
|
|
7
|
+
*
|
|
8
|
+
* @module tools/qe/quality-gates/generate-quality-report
|
|
9
|
+
* @version 1.0.0
|
|
10
|
+
* @author Agentic QE Team - Phase 3
|
|
11
|
+
* @date 2025-11-09
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.generateQualityReport = generateQualityReport;
|
|
15
|
+
// ==================== Default Configuration ====================
|
|
16
|
+
const DEFAULT_CONFIG = {
|
|
17
|
+
format: 'json',
|
|
18
|
+
includeSections: {
|
|
19
|
+
executive: true,
|
|
20
|
+
metrics: true,
|
|
21
|
+
trends: true,
|
|
22
|
+
risks: true,
|
|
23
|
+
recommendations: true,
|
|
24
|
+
details: true
|
|
25
|
+
},
|
|
26
|
+
detailLevel: 'detailed',
|
|
27
|
+
includeCharts: false
|
|
28
|
+
};
|
|
29
|
+
// ==================== Main Report Generation ====================
|
|
30
|
+
/**
|
|
31
|
+
* Generate comprehensive quality report
|
|
32
|
+
*
|
|
33
|
+
* @param params - Report generation parameters
|
|
34
|
+
* @returns Comprehensive quality report
|
|
35
|
+
*/
|
|
36
|
+
async function generateQualityReport(params) {
|
|
37
|
+
const requestId = generateRequestId();
|
|
38
|
+
const startTime = Date.now();
|
|
39
|
+
try {
|
|
40
|
+
// Validate parameters
|
|
41
|
+
validateParameters(params);
|
|
42
|
+
// Use default config if not provided
|
|
43
|
+
const config = { ...DEFAULT_CONFIG, ...params.config };
|
|
44
|
+
// Generate report ID
|
|
45
|
+
const reportId = params.reportId || `qr-${Date.now()}`;
|
|
46
|
+
// Build report metadata
|
|
47
|
+
const metadata = buildReportMetadata(params, reportId);
|
|
48
|
+
// Calculate overall score
|
|
49
|
+
const overallScore = calculateOverallScore(params.metrics);
|
|
50
|
+
// Generate executive summary
|
|
51
|
+
const executiveSummary = generateExecutiveSummary(params.metrics, overallScore);
|
|
52
|
+
// Generate metrics section
|
|
53
|
+
const metricsSection = generateMetricsSection(params.metrics, params.historicalMetrics);
|
|
54
|
+
// Generate trends section (if historical data available)
|
|
55
|
+
const trendsSection = params.historicalMetrics
|
|
56
|
+
? generateTrendsSection(params.metrics, params.historicalMetrics)
|
|
57
|
+
: undefined;
|
|
58
|
+
// Generate risks section
|
|
59
|
+
const risksSection = generateRisksSection(params.metrics, params.testResults);
|
|
60
|
+
// Generate recommendations section
|
|
61
|
+
const recommendationsSection = generateRecommendationsSection(params.metrics, risksSection);
|
|
62
|
+
// Generate detailed findings (if requested)
|
|
63
|
+
const detailedFindings = config.includeSections.details
|
|
64
|
+
? generateDetailedFindings(params.metrics, params.testResults)
|
|
65
|
+
: undefined;
|
|
66
|
+
// Generate conclusion
|
|
67
|
+
const conclusion = generateConclusion(executiveSummary, overallScore);
|
|
68
|
+
const report = {
|
|
69
|
+
metadata,
|
|
70
|
+
executiveSummary,
|
|
71
|
+
metricsSection,
|
|
72
|
+
trendsSection,
|
|
73
|
+
risksSection,
|
|
74
|
+
recommendationsSection,
|
|
75
|
+
detailedFindings,
|
|
76
|
+
overallScore,
|
|
77
|
+
conclusion
|
|
78
|
+
};
|
|
79
|
+
return createSuccessResponse(report, requestId, Date.now() - startTime);
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
return createErrorResponse(error, requestId, Date.now() - startTime);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// ==================== Report Building Functions ====================
|
|
86
|
+
/**
|
|
87
|
+
* Build report metadata
|
|
88
|
+
*/
|
|
89
|
+
function buildReportMetadata(params, reportId) {
|
|
90
|
+
return {
|
|
91
|
+
reportId,
|
|
92
|
+
projectId: params.projectId,
|
|
93
|
+
generatedAt: new Date().toISOString(),
|
|
94
|
+
version: '1.0.0',
|
|
95
|
+
environment: params.environment || 'development',
|
|
96
|
+
build: params.metadata
|
|
97
|
+
? {
|
|
98
|
+
number: params.metadata.buildNumber || 'N/A',
|
|
99
|
+
commit: params.metadata.commit || 'N/A',
|
|
100
|
+
branch: params.metadata.branch || 'main'
|
|
101
|
+
}
|
|
102
|
+
: undefined
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Generate executive summary
|
|
107
|
+
*/
|
|
108
|
+
function generateExecutiveSummary(metrics, overallScore) {
|
|
109
|
+
const grade = calculateGrade(overallScore);
|
|
110
|
+
const status = calculateStatus(overallScore);
|
|
111
|
+
const highlights = [];
|
|
112
|
+
const criticalIssues = [];
|
|
113
|
+
const topRecommendations = [];
|
|
114
|
+
// Coverage highlights
|
|
115
|
+
if (metrics.coverage.overallPercentage >= 85) {
|
|
116
|
+
highlights.push(`Strong test coverage: ${metrics.coverage.overallPercentage.toFixed(1)}%`);
|
|
117
|
+
}
|
|
118
|
+
else if (metrics.coverage.overallPercentage < 70) {
|
|
119
|
+
criticalIssues.push(`Low test coverage: ${metrics.coverage.overallPercentage.toFixed(1)}%`);
|
|
120
|
+
topRecommendations.push('Increase test coverage to minimum 80%');
|
|
121
|
+
}
|
|
122
|
+
// Security highlights
|
|
123
|
+
if (metrics.security.summary.critical > 0) {
|
|
124
|
+
criticalIssues.push(`${metrics.security.summary.critical} critical security vulnerabilities`);
|
|
125
|
+
topRecommendations.push('Address critical security vulnerabilities immediately');
|
|
126
|
+
}
|
|
127
|
+
else if (metrics.security.summary.high === 0) {
|
|
128
|
+
highlights.push('No critical or high security vulnerabilities');
|
|
129
|
+
}
|
|
130
|
+
// Test quality
|
|
131
|
+
if (metrics.testResults.failureRate > 0.05) {
|
|
132
|
+
criticalIssues.push(`High test failure rate: ${(metrics.testResults.failureRate * 100).toFixed(1)}%`);
|
|
133
|
+
topRecommendations.push('Fix failing tests before deployment');
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
highlights.push(`Good test pass rate: ${((1 - metrics.testResults.failureRate) * 100).toFixed(1)}%`);
|
|
137
|
+
}
|
|
138
|
+
// Deployment readiness
|
|
139
|
+
const deploymentReady = overallScore >= 80 && metrics.security.summary.critical === 0 && metrics.testResults.failureRate <= 0.05;
|
|
140
|
+
const readinessExplanation = deploymentReady
|
|
141
|
+
? 'All critical quality criteria met. Deployment approved.'
|
|
142
|
+
: `Quality score of ${overallScore.toFixed(1)} below deployment threshold. ${criticalIssues.length} critical issues must be resolved.`;
|
|
143
|
+
return {
|
|
144
|
+
status,
|
|
145
|
+
overallScore,
|
|
146
|
+
grade,
|
|
147
|
+
highlights,
|
|
148
|
+
criticalIssues,
|
|
149
|
+
topRecommendations: topRecommendations.slice(0, 3),
|
|
150
|
+
deploymentReady,
|
|
151
|
+
readinessExplanation
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Generate metrics section
|
|
156
|
+
*/
|
|
157
|
+
function generateMetricsSection(metrics, historical) {
|
|
158
|
+
const coverage = generateCoverageMetrics(metrics);
|
|
159
|
+
const testQuality = generateTestQualityMetrics(metrics);
|
|
160
|
+
const security = generateSecurityMetrics(metrics);
|
|
161
|
+
const performance = generatePerformanceMetrics(metrics);
|
|
162
|
+
const codeQuality = generateCodeQualityMetrics(metrics);
|
|
163
|
+
const comparison = historical && historical.length > 0
|
|
164
|
+
? generateMetricsComparison(metrics, historical[historical.length - 1])
|
|
165
|
+
: undefined;
|
|
166
|
+
return {
|
|
167
|
+
coverage,
|
|
168
|
+
testQuality,
|
|
169
|
+
security,
|
|
170
|
+
performance,
|
|
171
|
+
codeQuality,
|
|
172
|
+
comparison
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Generate coverage metrics summary
|
|
177
|
+
*/
|
|
178
|
+
function generateCoverageMetrics(metrics) {
|
|
179
|
+
const score = metrics.coverage.overallPercentage;
|
|
180
|
+
const status = score >= 80 ? 'pass' : score >= 60 ? 'warning' : 'fail';
|
|
181
|
+
return {
|
|
182
|
+
category: 'Coverage',
|
|
183
|
+
status,
|
|
184
|
+
score,
|
|
185
|
+
keyMetrics: [
|
|
186
|
+
{ name: 'Overall', value: `${metrics.coverage.overallPercentage.toFixed(1)}%`, status },
|
|
187
|
+
{
|
|
188
|
+
name: 'Lines',
|
|
189
|
+
value: `${((metrics.coverage.coveredLines / Math.max(1, metrics.coverage.totalLines)) * 100).toFixed(1)}%`,
|
|
190
|
+
status: (metrics.coverage.coveredLines / Math.max(1, metrics.coverage.totalLines)) >= 0.8 ? 'pass' : 'warning'
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
name: 'Branches',
|
|
194
|
+
value: `${((metrics.coverage.coveredBranches / Math.max(1, metrics.coverage.totalBranches)) * 100).toFixed(1)}%`,
|
|
195
|
+
status: (metrics.coverage.coveredBranches / Math.max(1, metrics.coverage.totalBranches)) >= 0.75 ? 'pass' : 'warning'
|
|
196
|
+
}
|
|
197
|
+
],
|
|
198
|
+
summary: `Overall coverage is ${score.toFixed(1)}%. ${status === 'pass' ? 'Meets standards.' : 'Improvement needed.'}`
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Generate test quality metrics summary
|
|
203
|
+
*/
|
|
204
|
+
function generateTestQualityMetrics(metrics) {
|
|
205
|
+
const successRate = (1 - metrics.testResults.failureRate) * 100;
|
|
206
|
+
const score = successRate;
|
|
207
|
+
const status = successRate >= 95 ? 'pass' : successRate >= 90 ? 'warning' : 'fail';
|
|
208
|
+
return {
|
|
209
|
+
category: 'Test Quality',
|
|
210
|
+
status,
|
|
211
|
+
score,
|
|
212
|
+
keyMetrics: [
|
|
213
|
+
{ name: 'Total Tests', value: `${metrics.testResults.total}`, status: 'pass' },
|
|
214
|
+
{ name: 'Passed', value: `${metrics.testResults.passed}`, status: 'pass' },
|
|
215
|
+
{ name: 'Failed', value: `${metrics.testResults.failed}`, status: metrics.testResults.failed === 0 ? 'pass' : 'fail' },
|
|
216
|
+
{ name: 'Success Rate', value: `${successRate.toFixed(1)}%`, status }
|
|
217
|
+
],
|
|
218
|
+
summary: `${metrics.testResults.passed} of ${metrics.testResults.total} tests passing. ${status === 'pass' ? 'Good quality.' : 'Needs attention.'}`
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Generate security metrics summary
|
|
223
|
+
*/
|
|
224
|
+
function generateSecurityMetrics(metrics) {
|
|
225
|
+
const { critical, high, medium } = metrics.security.summary;
|
|
226
|
+
const score = Math.max(0, 100 - critical * 50 - high * 10 - medium * 2);
|
|
227
|
+
const status = critical === 0 && high === 0 ? 'pass' : critical > 0 ? 'fail' : 'warning';
|
|
228
|
+
return {
|
|
229
|
+
category: 'Security',
|
|
230
|
+
status,
|
|
231
|
+
score,
|
|
232
|
+
keyMetrics: [
|
|
233
|
+
{ name: 'Critical', value: `${critical}`, status: critical === 0 ? 'pass' : 'fail' },
|
|
234
|
+
{ name: 'High', value: `${high}`, status: high === 0 ? 'pass' : 'warning' },
|
|
235
|
+
{ name: 'Medium', value: `${medium}`, status: medium < 5 ? 'pass' : 'warning' }
|
|
236
|
+
],
|
|
237
|
+
summary: critical > 0
|
|
238
|
+
? `${critical} critical vulnerabilities must be addressed immediately.`
|
|
239
|
+
: high > 0
|
|
240
|
+
? `${high} high severity vulnerabilities require attention.`
|
|
241
|
+
: 'No critical or high security issues.'
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Generate performance metrics summary
|
|
246
|
+
*/
|
|
247
|
+
function generatePerformanceMetrics(metrics) {
|
|
248
|
+
const score = Math.max(0, (1 - metrics.performance.errorRate) * 100);
|
|
249
|
+
const status = metrics.performance.errorRate <= 0.05 ? 'pass' : metrics.performance.errorRate <= 0.10 ? 'warning' : 'fail';
|
|
250
|
+
return {
|
|
251
|
+
category: 'Performance',
|
|
252
|
+
status,
|
|
253
|
+
score,
|
|
254
|
+
keyMetrics: [
|
|
255
|
+
{ name: 'Error Rate', value: `${(metrics.performance.errorRate * 100).toFixed(2)}%`, status },
|
|
256
|
+
{ name: 'P99 Latency', value: `${metrics.performance.responseTime.p99}ms`, status: metrics.performance.responseTime.p99 < 2000 ? 'pass' : 'warning' },
|
|
257
|
+
{ name: 'Throughput', value: `${metrics.performance.throughput} req/s`, status: 'pass' }
|
|
258
|
+
],
|
|
259
|
+
summary: status === 'pass'
|
|
260
|
+
? 'Performance metrics within acceptable range.'
|
|
261
|
+
: 'Performance optimization recommended.'
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Generate code quality metrics summary
|
|
266
|
+
*/
|
|
267
|
+
function generateCodeQualityMetrics(metrics) {
|
|
268
|
+
const score = metrics.codeQuality.maintainabilityIndex;
|
|
269
|
+
const status = score >= 70 ? 'pass' : score >= 50 ? 'warning' : 'fail';
|
|
270
|
+
return {
|
|
271
|
+
category: 'Code Quality',
|
|
272
|
+
status,
|
|
273
|
+
score,
|
|
274
|
+
keyMetrics: [
|
|
275
|
+
{ name: 'Maintainability', value: `${metrics.codeQuality.maintainabilityIndex}`, status },
|
|
276
|
+
{ name: 'Complexity', value: `${metrics.codeQuality.cyclomaticComplexity}`, status: metrics.codeQuality.cyclomaticComplexity <= 15 ? 'pass' : 'warning' },
|
|
277
|
+
{ name: 'Duplication', value: `${metrics.codeQuality.duplications}%`, status: metrics.codeQuality.duplications <= 5 ? 'pass' : 'warning' }
|
|
278
|
+
],
|
|
279
|
+
summary: status === 'pass'
|
|
280
|
+
? 'Code quality is good.'
|
|
281
|
+
: 'Code quality improvements recommended.'
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Generate metrics comparison
|
|
286
|
+
*/
|
|
287
|
+
function generateMetricsComparison(current, previous) {
|
|
288
|
+
const currentScore = calculateOverallScore(current);
|
|
289
|
+
const previousScore = calculateOverallScore(previous);
|
|
290
|
+
const overallChange = ((currentScore - previousScore) / previousScore) * 100;
|
|
291
|
+
return {
|
|
292
|
+
period: 'Previous Build',
|
|
293
|
+
overallChange,
|
|
294
|
+
changes: {
|
|
295
|
+
coverage: current.coverage.overallPercentage - previous.coverage.overallPercentage,
|
|
296
|
+
testQuality: (1 - current.testResults.failureRate) * 100 - (1 - previous.testResults.failureRate) * 100,
|
|
297
|
+
security: 0,
|
|
298
|
+
performance: (1 - current.performance.errorRate) * 100 - (1 - previous.performance.errorRate) * 100,
|
|
299
|
+
codeQuality: current.codeQuality.maintainabilityIndex - previous.codeQuality.maintainabilityIndex
|
|
300
|
+
},
|
|
301
|
+
improvementSummary: overallChange > 0
|
|
302
|
+
? `Quality improved by ${overallChange.toFixed(1)}%`
|
|
303
|
+
: overallChange < 0
|
|
304
|
+
? `Quality decreased by ${Math.abs(overallChange).toFixed(1)}%`
|
|
305
|
+
: 'Quality remains stable'
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Generate trends section
|
|
310
|
+
*/
|
|
311
|
+
function generateTrendsSection(current, historical) {
|
|
312
|
+
const allMetrics = [...historical, current];
|
|
313
|
+
// Placeholder for trend analysis
|
|
314
|
+
return {
|
|
315
|
+
overallTrend: 'stable',
|
|
316
|
+
confidence: 0.75,
|
|
317
|
+
categoryTrends: [],
|
|
318
|
+
insights: ['Trend analysis requires historical data']
|
|
319
|
+
};
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Generate risks section
|
|
323
|
+
*/
|
|
324
|
+
function generateRisksSection(metrics, testResults) {
|
|
325
|
+
const risks = [];
|
|
326
|
+
// Security risks
|
|
327
|
+
if (metrics.security.summary.critical > 0) {
|
|
328
|
+
risks.push({
|
|
329
|
+
id: 'risk-security-critical',
|
|
330
|
+
category: 'security',
|
|
331
|
+
type: 'critical-vulnerabilities',
|
|
332
|
+
severity: 'critical',
|
|
333
|
+
probability: 0.9,
|
|
334
|
+
impact: 10,
|
|
335
|
+
description: `${metrics.security.summary.critical} critical security vulnerabilities`,
|
|
336
|
+
mitigation: ['Address vulnerabilities immediately', 'Run security scan', 'Update dependencies']
|
|
337
|
+
});
|
|
338
|
+
}
|
|
339
|
+
// Test quality risks
|
|
340
|
+
if (metrics.testResults.failureRate > 0.05) {
|
|
341
|
+
risks.push({
|
|
342
|
+
id: 'risk-test-failures',
|
|
343
|
+
category: 'quality',
|
|
344
|
+
type: 'test-failures',
|
|
345
|
+
severity: 'high',
|
|
346
|
+
probability: metrics.testResults.failureRate,
|
|
347
|
+
impact: 8,
|
|
348
|
+
description: `High test failure rate: ${(metrics.testResults.failureRate * 100).toFixed(1)}%`,
|
|
349
|
+
mitigation: ['Fix failing tests', 'Investigate root causes', 'Improve test stability']
|
|
350
|
+
});
|
|
351
|
+
}
|
|
352
|
+
const riskMatrix = {
|
|
353
|
+
critical: risks.filter((r) => r.severity === 'critical').length,
|
|
354
|
+
high: risks.filter((r) => r.severity === 'high').length,
|
|
355
|
+
medium: risks.filter((r) => r.severity === 'medium').length,
|
|
356
|
+
low: risks.filter((r) => r.severity === 'low').length,
|
|
357
|
+
total: risks.length
|
|
358
|
+
};
|
|
359
|
+
const overallRiskLevel = riskMatrix.critical > 0 ? 'critical' :
|
|
360
|
+
riskMatrix.high > 0 ? 'high' :
|
|
361
|
+
riskMatrix.medium > 0 ? 'medium' : 'low';
|
|
362
|
+
const riskScore = riskMatrix.critical * 25 + riskMatrix.high * 15 + riskMatrix.medium * 5 + riskMatrix.low * 2;
|
|
363
|
+
return {
|
|
364
|
+
overallRiskLevel,
|
|
365
|
+
riskScore,
|
|
366
|
+
risks,
|
|
367
|
+
riskMatrix,
|
|
368
|
+
mitigationSummary: `${risks.length} risks identified. ${riskMatrix.critical + riskMatrix.high} require immediate attention.`
|
|
369
|
+
};
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Generate recommendations section
|
|
373
|
+
*/
|
|
374
|
+
function generateRecommendationsSection(metrics, risksSection) {
|
|
375
|
+
const priorityRecommendations = [];
|
|
376
|
+
const quickWins = [];
|
|
377
|
+
const longTermImprovements = [];
|
|
378
|
+
// Coverage recommendations
|
|
379
|
+
if (metrics.coverage.overallPercentage < 80) {
|
|
380
|
+
priorityRecommendations.push({
|
|
381
|
+
priority: 'high',
|
|
382
|
+
recommendation: 'Increase test coverage to 80%',
|
|
383
|
+
category: 'coverage',
|
|
384
|
+
expectedImpact: 'Improved code quality and defect detection',
|
|
385
|
+
effort: 'high',
|
|
386
|
+
timeline: '2-3 weeks'
|
|
387
|
+
});
|
|
388
|
+
}
|
|
389
|
+
// Security recommendations
|
|
390
|
+
if (metrics.security.summary.critical > 0) {
|
|
391
|
+
priorityRecommendations.push({
|
|
392
|
+
priority: 'critical',
|
|
393
|
+
recommendation: 'Address critical security vulnerabilities',
|
|
394
|
+
category: 'security',
|
|
395
|
+
expectedImpact: 'Eliminates critical security risks',
|
|
396
|
+
effort: 'medium',
|
|
397
|
+
timeline: 'Immediate'
|
|
398
|
+
});
|
|
399
|
+
}
|
|
400
|
+
// Quick wins
|
|
401
|
+
if (metrics.testResults.failed > 0 && metrics.testResults.failed < 5) {
|
|
402
|
+
quickWins.push('Fix remaining failing tests');
|
|
403
|
+
}
|
|
404
|
+
if (metrics.codeQuality.duplications > 5) {
|
|
405
|
+
quickWins.push('Reduce code duplication');
|
|
406
|
+
}
|
|
407
|
+
// Long-term improvements
|
|
408
|
+
longTermImprovements.push('Establish quality gates for all deployments');
|
|
409
|
+
longTermImprovements.push('Implement continuous monitoring');
|
|
410
|
+
return {
|
|
411
|
+
priorityRecommendations,
|
|
412
|
+
quickWins,
|
|
413
|
+
longTermImprovements,
|
|
414
|
+
actionPlan: []
|
|
415
|
+
};
|
|
416
|
+
}
|
|
417
|
+
/**
|
|
418
|
+
* Generate detailed findings
|
|
419
|
+
*/
|
|
420
|
+
function generateDetailedFindings(metrics, testResults) {
|
|
421
|
+
return {
|
|
422
|
+
testResultsBreakdown: testResults
|
|
423
|
+
? {
|
|
424
|
+
total: metrics.testResults.total,
|
|
425
|
+
passed: metrics.testResults.passed,
|
|
426
|
+
failed: metrics.testResults.failed,
|
|
427
|
+
skipped: metrics.testResults.skipped,
|
|
428
|
+
flaky: metrics.testResults.flakyTests,
|
|
429
|
+
suites: []
|
|
430
|
+
}
|
|
431
|
+
: undefined
|
|
432
|
+
};
|
|
433
|
+
}
|
|
434
|
+
/**
|
|
435
|
+
* Generate conclusion
|
|
436
|
+
*/
|
|
437
|
+
function generateConclusion(summary, score) {
|
|
438
|
+
if (summary.deploymentReady) {
|
|
439
|
+
return `Quality assessment completed with a score of ${score.toFixed(1)}/100 (Grade: ${summary.grade}). All critical quality criteria are met. The project is ready for deployment. Continue maintaining high quality standards and address the ${summary.topRecommendations.length} recommendations for further improvement.`;
|
|
440
|
+
}
|
|
441
|
+
else {
|
|
442
|
+
return `Quality assessment completed with a score of ${score.toFixed(1)}/100 (Grade: ${summary.grade}). ${summary.criticalIssues.length} critical issues must be resolved before deployment. Priority should be given to: ${summary.topRecommendations.join(', ')}. Rerun quality assessment after addressing these issues.`;
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
// ==================== Scoring Functions ====================
|
|
446
|
+
/**
|
|
447
|
+
* Calculate overall quality score
|
|
448
|
+
*/
|
|
449
|
+
function calculateOverallScore(metrics) {
|
|
450
|
+
const weights = {
|
|
451
|
+
coverage: 0.25,
|
|
452
|
+
testQuality: 0.30,
|
|
453
|
+
security: 0.25,
|
|
454
|
+
performance: 0.10,
|
|
455
|
+
codeQuality: 0.10
|
|
456
|
+
};
|
|
457
|
+
const coverageScore = metrics.coverage.overallPercentage;
|
|
458
|
+
const testQualityScore = (1 - metrics.testResults.failureRate) * 100;
|
|
459
|
+
const securityScore = Math.max(0, 100 - metrics.security.summary.critical * 50 - metrics.security.summary.high * 10);
|
|
460
|
+
const performanceScore = (1 - metrics.performance.errorRate) * 100;
|
|
461
|
+
const codeQualityScore = metrics.codeQuality.maintainabilityIndex;
|
|
462
|
+
const weightedScore = coverageScore * weights.coverage +
|
|
463
|
+
testQualityScore * weights.testQuality +
|
|
464
|
+
securityScore * weights.security +
|
|
465
|
+
performanceScore * weights.performance +
|
|
466
|
+
codeQualityScore * weights.codeQuality;
|
|
467
|
+
return Math.round(weightedScore * 100) / 100;
|
|
468
|
+
}
|
|
469
|
+
/**
|
|
470
|
+
* Calculate grade from score
|
|
471
|
+
*/
|
|
472
|
+
function calculateGrade(score) {
|
|
473
|
+
if (score >= 95)
|
|
474
|
+
return 'A+';
|
|
475
|
+
if (score >= 85)
|
|
476
|
+
return 'A';
|
|
477
|
+
if (score >= 75)
|
|
478
|
+
return 'B';
|
|
479
|
+
if (score >= 65)
|
|
480
|
+
return 'C';
|
|
481
|
+
if (score >= 55)
|
|
482
|
+
return 'D';
|
|
483
|
+
return 'F';
|
|
484
|
+
}
|
|
485
|
+
/**
|
|
486
|
+
* Calculate status from score
|
|
487
|
+
*/
|
|
488
|
+
function calculateStatus(score) {
|
|
489
|
+
if (score >= 90)
|
|
490
|
+
return 'excellent';
|
|
491
|
+
if (score >= 75)
|
|
492
|
+
return 'good';
|
|
493
|
+
if (score >= 60)
|
|
494
|
+
return 'fair';
|
|
495
|
+
if (score >= 40)
|
|
496
|
+
return 'poor';
|
|
497
|
+
return 'critical';
|
|
498
|
+
}
|
|
499
|
+
// ==================== Utility Functions ====================
|
|
500
|
+
/**
|
|
501
|
+
* Validate parameters
|
|
502
|
+
*/
|
|
503
|
+
function validateParameters(params) {
|
|
504
|
+
if (!params.projectId)
|
|
505
|
+
throw new Error('projectId is required');
|
|
506
|
+
if (!params.metrics)
|
|
507
|
+
throw new Error('metrics are required');
|
|
508
|
+
}
|
|
509
|
+
/**
|
|
510
|
+
* Generate unique request ID
|
|
511
|
+
*/
|
|
512
|
+
function generateRequestId() {
|
|
513
|
+
return `qr-gen-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
|
|
514
|
+
}
|
|
515
|
+
/**
|
|
516
|
+
* Create success response
|
|
517
|
+
*/
|
|
518
|
+
function createSuccessResponse(data, requestId, executionTime) {
|
|
519
|
+
return {
|
|
520
|
+
success: true,
|
|
521
|
+
data,
|
|
522
|
+
metadata: {
|
|
523
|
+
requestId,
|
|
524
|
+
timestamp: new Date().toISOString(),
|
|
525
|
+
executionTime,
|
|
526
|
+
agent: 'quality-report-generator',
|
|
527
|
+
version: '1.0.0'
|
|
528
|
+
}
|
|
529
|
+
};
|
|
530
|
+
}
|
|
531
|
+
/**
|
|
532
|
+
* Create error response
|
|
533
|
+
*/
|
|
534
|
+
function createErrorResponse(error, requestId, executionTime) {
|
|
535
|
+
return {
|
|
536
|
+
success: false,
|
|
537
|
+
error: {
|
|
538
|
+
code: 'REPORT_GENERATION_ERROR',
|
|
539
|
+
message: error.message,
|
|
540
|
+
stack: process.env.NODE_ENV === 'development' ? error.stack : undefined
|
|
541
|
+
},
|
|
542
|
+
metadata: {
|
|
543
|
+
requestId,
|
|
544
|
+
timestamp: new Date().toISOString(),
|
|
545
|
+
executionTime,
|
|
546
|
+
agent: 'quality-report-generator',
|
|
547
|
+
version: '1.0.0'
|
|
548
|
+
}
|
|
549
|
+
};
|
|
550
|
+
}
|
|
551
|
+
//# sourceMappingURL=generate-quality-report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-quality-report.js","sourceRoot":"","sources":["../../../../../src/mcp/tools/qe/quality-gates/generate-quality-report.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Quality Gates Domain Tools
|
|
3
|
+
*
|
|
4
|
+
* Comprehensive quality gate evaluation and deployment readiness assessment.
|
|
5
|
+
*
|
|
6
|
+
* This module provides domain-specific tools for:
|
|
7
|
+
* - Quality gate evaluation with multi-factor decision trees
|
|
8
|
+
* - Deployment risk assessment with historical analysis
|
|
9
|
+
* - Quality metrics validation with anomaly detection
|
|
10
|
+
* - Quality report generation with actionable insights
|
|
11
|
+
*
|
|
12
|
+
* @module tools/qe/quality-gates
|
|
13
|
+
* @version 1.0.0
|
|
14
|
+
* @author Agentic QE Team - Phase 3
|
|
15
|
+
* @date 2025-11-09
|
|
16
|
+
*/
|
|
17
|
+
export { evaluateQualityGate, type EvaluateQualityGateParams, type QualityGateEvaluation, type DeploymentContext, type CodeChange, type PreviousDeployment, type CriterionEvaluation, type RiskFactor, type PolicyCompliance, type PolicyViolation, type PolicyWarning, type EvaluationMetadata, type ComplexityIndicators } from './evaluate-quality-gate';
|
|
18
|
+
export { assessDeploymentRisk, type AssessDeploymentRiskParams, type DeploymentRiskAssessment, type DeploymentConfig, type HistoricalDeployment, type CodeChangeInfo, type RiskCategories, type CategoryRisk, type MitigationStrategy, type ReadinessIndicators, type PredictionAnalysis } from './assess-deployment-risk';
|
|
19
|
+
export { validateQualityMetrics, type ValidateQualityMetricsParams, type QualityMetricsValidation, type QualityStandards, type CategoryValidation, type MetricValidation, type Anomaly, type TrendAnalysis, type CategoryTrend, type Recommendation, type ValidationSummary } from './validate-quality-metrics';
|
|
20
|
+
export { generateQualityReport, type GenerateQualityReportParams, type QualityReport, type ReportConfiguration, type ReportInputMetadata, type ReportMetadata, type ExecutiveSummary, type MetricsSection, type MetricsSummary, type KeyMetric, type MetricsComparison, type TrendsSection, type CategoryTrendInfo, type TrendPredictions, type RisksSection, type RiskInfo, type RiskMatrix, type RecommendationsSection, type PriorityRecommendation, type ActionItem, type DetailedFindings, type TestResultsBreakdown, type TestSuiteInfo, type CoverageGap, type SecurityVulnerability, type PerformanceBottleneck, type CodeQualityIssue } from './generate-quality-report';
|
|
21
|
+
import { evaluateQualityGate } from './evaluate-quality-gate';
|
|
22
|
+
import { assessDeploymentRisk } from './assess-deployment-risk';
|
|
23
|
+
import { validateQualityMetrics } from './validate-quality-metrics';
|
|
24
|
+
import { generateQualityReport } from './generate-quality-report';
|
|
25
|
+
/**
|
|
26
|
+
* Quality Gates Domain API
|
|
27
|
+
*
|
|
28
|
+
* Provides a unified interface for all quality gate operations
|
|
29
|
+
*/
|
|
30
|
+
export declare const QualityGateTools: {
|
|
31
|
+
readonly evaluateGate: typeof evaluateQualityGate;
|
|
32
|
+
readonly assessRisk: typeof assessDeploymentRisk;
|
|
33
|
+
readonly validateMetrics: typeof validateQualityMetrics;
|
|
34
|
+
readonly generateReport: typeof generateQualityReport;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Default export for convenience
|
|
38
|
+
*/
|
|
39
|
+
export default QualityGateTools;
|
|
40
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/mcp/tools/qe/quality-gates/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EACL,mBAAmB,EACnB,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,yBAAyB,CAAA;AAGhC,OAAO,EACL,oBAAoB,EACpB,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAA;AAGjC,OAAO,EACL,sBAAsB,EACtB,KAAK,4BAA4B,EACjC,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACvB,MAAM,4BAA4B,CAAA;AAGnC,OAAO,EACL,qBAAqB,EACrB,KAAK,2BAA2B,EAChC,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACtB,MAAM,2BAA2B,CAAA;AAGlC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AAEjE;;;;GAIG;AACH,eAAO,MAAM,gBAAgB;;;;;CAYnB,CAAC;AAEX;;GAEG;AACH,eAAe,gBAAgB,CAAC"}
|