agentic-qe 1.4.3 → 1.5.0
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 +504 -0
- package/README.md +24 -16
- 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/core/FleetManager.d.ts.map +1 -1
- package/dist/core/FleetManager.js +17 -5
- package/dist/core/FleetManager.js.map +1 -1
- package/dist/core/MemoryManager.d.ts +27 -0
- package/dist/core/MemoryManager.d.ts.map +1 -1
- package/dist/core/MemoryManager.js +69 -4
- package/dist/core/MemoryManager.js.map +1 -1
- package/dist/core/PatternDatabaseAdapter.d.ts.map +1 -1
- package/dist/core/PatternDatabaseAdapter.js +14 -4
- package/dist/core/PatternDatabaseAdapter.js.map +1 -1
- package/dist/learning/LearningEngine.d.ts.map +1 -1
- package/dist/learning/LearningEngine.js +18 -4
- package/dist/learning/LearningEngine.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/coordination/task-status.d.ts.map +1 -1
- package/dist/mcp/handlers/coordination/task-status.js +3 -5
- package/dist/mcp/handlers/coordination/task-status.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/task-orchestrate.d.ts +21 -1
- package/dist/mcp/handlers/task-orchestrate.d.ts.map +1 -1
- package/dist/mcp/handlers/task-orchestrate.js +32 -2
- package/dist/mcp/handlers/task-orchestrate.js.map +1 -1
- 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 +212 -1
- 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 +535 -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,483 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Generate Unit Tests Tool
|
|
4
|
+
* AI-powered unit test generation with pattern recognition and sublinear optimization
|
|
5
|
+
*
|
|
6
|
+
* @module tools/qe/test-generation/generate-unit-tests
|
|
7
|
+
* @version 1.0.0
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.generateUnitTests = generateUnitTests;
|
|
11
|
+
const SecureRandom_js_1 = require("../../../../utils/SecureRandom.js");
|
|
12
|
+
/**
|
|
13
|
+
* Analyze source code for test generation
|
|
14
|
+
*/
|
|
15
|
+
function analyzeSourceCode(params) {
|
|
16
|
+
const { sourceCode, targetClass, targetFunction } = params;
|
|
17
|
+
// Extract functions from source
|
|
18
|
+
const functions = extractFunctions(sourceCode.repositoryUrl, targetClass, targetFunction);
|
|
19
|
+
// Detect code patterns
|
|
20
|
+
const patterns = detectCodePatterns(sourceCode.repositoryUrl);
|
|
21
|
+
// Calculate complexity
|
|
22
|
+
const complexity = calculateComplexity(sourceCode.repositoryUrl);
|
|
23
|
+
// Extract dependencies
|
|
24
|
+
const dependencies = extractDependencies(sourceCode.repositoryUrl);
|
|
25
|
+
// Identify risk areas
|
|
26
|
+
const riskAreas = identifyRiskAreas(functions, complexity);
|
|
27
|
+
// Find mockable interfaces
|
|
28
|
+
const mockableInterfaces = params.generateMocks
|
|
29
|
+
? identifyMockableInterfaces(dependencies)
|
|
30
|
+
: [];
|
|
31
|
+
return {
|
|
32
|
+
functions,
|
|
33
|
+
patterns,
|
|
34
|
+
complexity,
|
|
35
|
+
dependencies,
|
|
36
|
+
riskAreas,
|
|
37
|
+
mockableInterfaces
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Extract functions from source code
|
|
42
|
+
*/
|
|
43
|
+
function extractFunctions(sourceCode, targetClass, targetFunction) {
|
|
44
|
+
const functions = [];
|
|
45
|
+
// Function extraction regex patterns
|
|
46
|
+
const functionPattern = /(?:async\s+)?function\s+(\w+)\s*\(([^)]*)\)/g;
|
|
47
|
+
const arrowPattern = /(?:const|let|var)\s+(\w+)\s*=\s*(?:async\s+)?\(([^)]*)\)\s*=>/g;
|
|
48
|
+
const methodPattern = /(?:async\s+)?(\w+)\s*\(([^)]*)\)\s*{/g;
|
|
49
|
+
// Extract traditional functions
|
|
50
|
+
let match;
|
|
51
|
+
while ((match = functionPattern.exec(sourceCode)) !== null) {
|
|
52
|
+
const name = match[1];
|
|
53
|
+
if (targetFunction && name !== targetFunction)
|
|
54
|
+
continue;
|
|
55
|
+
functions.push(createFunctionInfo(name, match[2], match.index, false));
|
|
56
|
+
}
|
|
57
|
+
// Extract arrow functions
|
|
58
|
+
while ((match = arrowPattern.exec(sourceCode)) !== null) {
|
|
59
|
+
const name = match[1];
|
|
60
|
+
if (targetFunction && name !== targetFunction)
|
|
61
|
+
continue;
|
|
62
|
+
functions.push(createFunctionInfo(name, match[2], match.index, false));
|
|
63
|
+
}
|
|
64
|
+
// Extract class methods
|
|
65
|
+
if (targetClass || !targetFunction) {
|
|
66
|
+
while ((match = methodPattern.exec(sourceCode)) !== null) {
|
|
67
|
+
const name = match[1];
|
|
68
|
+
if (targetFunction && name !== targetFunction)
|
|
69
|
+
continue;
|
|
70
|
+
functions.push(createFunctionInfo(name, match[2], match.index, false));
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return functions;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Create function info object
|
|
77
|
+
*/
|
|
78
|
+
function createFunctionInfo(name, paramsStr, lineIndex, isAsync) {
|
|
79
|
+
const parameters = paramsStr
|
|
80
|
+
.split(',')
|
|
81
|
+
.filter(p => p.trim())
|
|
82
|
+
.map(param => {
|
|
83
|
+
const trimmed = param.trim();
|
|
84
|
+
const [paramName, paramType] = trimmed.split(':').map(s => s.trim());
|
|
85
|
+
const optional = paramName.includes('?');
|
|
86
|
+
return {
|
|
87
|
+
name: paramName.replace('?', ''),
|
|
88
|
+
type: paramType || 'any',
|
|
89
|
+
optional
|
|
90
|
+
};
|
|
91
|
+
});
|
|
92
|
+
return {
|
|
93
|
+
name,
|
|
94
|
+
parameters,
|
|
95
|
+
returnType: 'unknown',
|
|
96
|
+
complexity: Math.max(1, parameters.length),
|
|
97
|
+
isAsync,
|
|
98
|
+
lineRange: { start: lineIndex, end: lineIndex + 10 }
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Detect code patterns
|
|
103
|
+
*/
|
|
104
|
+
function detectCodePatterns(sourceCode) {
|
|
105
|
+
const patterns = [];
|
|
106
|
+
if (sourceCode.includes('class '))
|
|
107
|
+
patterns.push('oop');
|
|
108
|
+
if (sourceCode.includes('function') || sourceCode.includes('const '))
|
|
109
|
+
patterns.push('functional');
|
|
110
|
+
if (sourceCode.includes('async ') || sourceCode.includes('await '))
|
|
111
|
+
patterns.push('async');
|
|
112
|
+
if (sourceCode.includes('Promise'))
|
|
113
|
+
patterns.push('promise');
|
|
114
|
+
if (sourceCode.includes('try') && sourceCode.includes('catch'))
|
|
115
|
+
patterns.push('error-handling');
|
|
116
|
+
return patterns;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Calculate code complexity
|
|
120
|
+
*/
|
|
121
|
+
function calculateComplexity(sourceCode) {
|
|
122
|
+
const lines = sourceCode.split('\n').length;
|
|
123
|
+
const branches = (sourceCode.match(/if|switch|for|while|\?\?/g) || []).length;
|
|
124
|
+
const nesting = (sourceCode.match(/{\s*{/g) || []).length;
|
|
125
|
+
const cyclomatic = branches + 1;
|
|
126
|
+
const cognitive = branches * 2 + nesting;
|
|
127
|
+
let level;
|
|
128
|
+
if (cyclomatic > 10 || cognitive > 15)
|
|
129
|
+
level = 'high';
|
|
130
|
+
else if (cyclomatic > 5 || cognitive > 7)
|
|
131
|
+
level = 'medium';
|
|
132
|
+
else
|
|
133
|
+
level = 'low';
|
|
134
|
+
return { cyclomatic, cognitive, level };
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Extract dependencies from source
|
|
138
|
+
*/
|
|
139
|
+
function extractDependencies(sourceCode) {
|
|
140
|
+
const dependencies = [];
|
|
141
|
+
const importPattern = /import.*from\s+['"](.+)['"]/g;
|
|
142
|
+
let match;
|
|
143
|
+
while ((match = importPattern.exec(sourceCode)) !== null) {
|
|
144
|
+
dependencies.push(match[1]);
|
|
145
|
+
}
|
|
146
|
+
return dependencies;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Identify risk areas needing thorough testing
|
|
150
|
+
*/
|
|
151
|
+
function identifyRiskAreas(functions, complexity) {
|
|
152
|
+
const risks = [];
|
|
153
|
+
if (complexity.cyclomatic > 10)
|
|
154
|
+
risks.push('high-complexity');
|
|
155
|
+
if (complexity.cognitive > 15)
|
|
156
|
+
risks.push('high-cognitive-load');
|
|
157
|
+
if (functions.some(f => f.isAsync))
|
|
158
|
+
risks.push('async-operations');
|
|
159
|
+
if (functions.some(f => f.parameters.length > 5))
|
|
160
|
+
risks.push('many-parameters');
|
|
161
|
+
return risks;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Identify interfaces that can be mocked
|
|
165
|
+
*/
|
|
166
|
+
function identifyMockableInterfaces(dependencies) {
|
|
167
|
+
return dependencies.filter(dep => !dep.startsWith('.') && !dep.startsWith('node:'));
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Generate unit tests for a function
|
|
171
|
+
*/
|
|
172
|
+
function generateTestsForFunction(func, framework, params, analysis) {
|
|
173
|
+
const tests = [];
|
|
174
|
+
// Calculate number of tests based on complexity
|
|
175
|
+
const testCount = Math.min(Math.max(2, func.complexity * 2), 10);
|
|
176
|
+
// Generate happy path test
|
|
177
|
+
tests.push(generateHappyPathTest(func, framework, params));
|
|
178
|
+
// Generate edge case tests if enabled
|
|
179
|
+
if (params.includeEdgeCases) {
|
|
180
|
+
tests.push(...generateEdgeCaseTests(func, framework, params, testCount - 1));
|
|
181
|
+
}
|
|
182
|
+
// Generate error handling tests
|
|
183
|
+
if (analysis.patterns.includes('error-handling')) {
|
|
184
|
+
tests.push(generateErrorHandlingTest(func, framework, params));
|
|
185
|
+
}
|
|
186
|
+
// Generate async tests if function is async
|
|
187
|
+
if (func.isAsync) {
|
|
188
|
+
tests.push(generateAsyncTest(func, framework, params));
|
|
189
|
+
}
|
|
190
|
+
return tests.slice(0, testCount);
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Generate happy path test
|
|
194
|
+
*/
|
|
195
|
+
function generateHappyPathTest(func, framework, params) {
|
|
196
|
+
const testCode = generateTestCode(func, framework, 'happy-path', params);
|
|
197
|
+
return {
|
|
198
|
+
id: `test-${func.name}-happy-${SecureRandom_js_1.SecureRandom.generateId(5)}`,
|
|
199
|
+
name: `test_${func.name}_happy_path`,
|
|
200
|
+
code: testCode,
|
|
201
|
+
assertions: [`expect(result).toBeDefined()`],
|
|
202
|
+
expectedResult: 'success',
|
|
203
|
+
estimatedDuration: 100,
|
|
204
|
+
priority: 'high',
|
|
205
|
+
coverageContribution: 0.3,
|
|
206
|
+
confidence: 0.95,
|
|
207
|
+
patterns: ['arrange-act-assert']
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Generate edge case tests
|
|
212
|
+
*/
|
|
213
|
+
function generateEdgeCaseTests(func, framework, params, count) {
|
|
214
|
+
const tests = [];
|
|
215
|
+
const edgeCases = ['null', 'undefined', 'empty', 'boundary'];
|
|
216
|
+
for (let i = 0; i < Math.min(count, edgeCases.length); i++) {
|
|
217
|
+
const edgeCase = edgeCases[i];
|
|
218
|
+
const testCode = generateTestCode(func, framework, edgeCase, params);
|
|
219
|
+
tests.push({
|
|
220
|
+
id: `test-${func.name}-edge-${edgeCase}-${SecureRandom_js_1.SecureRandom.generateId(5)}`,
|
|
221
|
+
name: `test_${func.name}_${edgeCase}_case`,
|
|
222
|
+
code: testCode,
|
|
223
|
+
assertions: [`expect(() => ${func.name}(${edgeCase})).not.toThrow()`],
|
|
224
|
+
expectedResult: 'handled',
|
|
225
|
+
estimatedDuration: 150,
|
|
226
|
+
priority: 'medium',
|
|
227
|
+
coverageContribution: 0.2,
|
|
228
|
+
confidence: 0.85,
|
|
229
|
+
patterns: ['arrange-act-assert', 'builder']
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
return tests;
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Generate error handling test
|
|
236
|
+
*/
|
|
237
|
+
function generateErrorHandlingTest(func, framework, params) {
|
|
238
|
+
const testCode = generateTestCode(func, framework, 'error', params);
|
|
239
|
+
return {
|
|
240
|
+
id: `test-${func.name}-error-${SecureRandom_js_1.SecureRandom.generateId(5)}`,
|
|
241
|
+
name: `test_${func.name}_error_handling`,
|
|
242
|
+
code: testCode,
|
|
243
|
+
assertions: [`expect(() => ${func.name}(invalidInput)).toThrow()`],
|
|
244
|
+
expectedResult: 'error-thrown',
|
|
245
|
+
estimatedDuration: 120,
|
|
246
|
+
priority: 'high',
|
|
247
|
+
coverageContribution: 0.25,
|
|
248
|
+
confidence: 0.90,
|
|
249
|
+
patterns: ['arrange-act-assert']
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Generate async test
|
|
254
|
+
*/
|
|
255
|
+
function generateAsyncTest(func, framework, params) {
|
|
256
|
+
const testCode = generateTestCode(func, framework, 'async', params);
|
|
257
|
+
return {
|
|
258
|
+
id: `test-${func.name}-async-${SecureRandom_js_1.SecureRandom.generateId(5)}`,
|
|
259
|
+
name: `test_${func.name}_async_operation`,
|
|
260
|
+
code: testCode,
|
|
261
|
+
assertions: [`await expect(${func.name}()).resolves.toBeDefined()`],
|
|
262
|
+
expectedResult: 'promise-resolved',
|
|
263
|
+
estimatedDuration: 200,
|
|
264
|
+
priority: 'high',
|
|
265
|
+
coverageContribution: 0.3,
|
|
266
|
+
confidence: 0.88,
|
|
267
|
+
patterns: ['arrange-act-assert']
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Generate test code based on framework
|
|
272
|
+
*/
|
|
273
|
+
function generateTestCode(func, framework, testType, params) {
|
|
274
|
+
const pattern = params.testPatterns[0] || 'arrange-act-assert';
|
|
275
|
+
switch (framework) {
|
|
276
|
+
case 'jest':
|
|
277
|
+
return generateJestTest(func, testType, pattern);
|
|
278
|
+
case 'mocha':
|
|
279
|
+
return generateMochaTest(func, testType, pattern);
|
|
280
|
+
case 'pytest':
|
|
281
|
+
return generatePytestTest(func, testType, pattern);
|
|
282
|
+
default:
|
|
283
|
+
return generateGenericTest(func, testType, pattern);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Generate Jest test code
|
|
288
|
+
*/
|
|
289
|
+
function generateJestTest(func, testType, pattern) {
|
|
290
|
+
const paramValues = func.parameters.map(p => {
|
|
291
|
+
if (testType === 'null')
|
|
292
|
+
return 'null';
|
|
293
|
+
if (testType === 'undefined')
|
|
294
|
+
return 'undefined';
|
|
295
|
+
if (testType === 'empty')
|
|
296
|
+
return p.type.includes('string') ? '""' : '[]';
|
|
297
|
+
return `mockParam_${p.name}`;
|
|
298
|
+
}).join(', ');
|
|
299
|
+
const asyncKeyword = func.isAsync ? 'async ' : '';
|
|
300
|
+
const awaitKeyword = func.isAsync ? 'await ' : '';
|
|
301
|
+
if (pattern === 'given-when-then') {
|
|
302
|
+
return `test('${func.name} - ${testType}', ${asyncKeyword}() => {
|
|
303
|
+
// Given
|
|
304
|
+
${func.parameters.map(p => `const ${p.name} = ${paramValues};`).join('\n ')}
|
|
305
|
+
|
|
306
|
+
// When
|
|
307
|
+
const result = ${awaitKeyword}${func.name}(${paramValues});
|
|
308
|
+
|
|
309
|
+
// Then
|
|
310
|
+
expect(result).toBeDefined();
|
|
311
|
+
});`;
|
|
312
|
+
}
|
|
313
|
+
return `test('${func.name} - ${testType}', ${asyncKeyword}() => {
|
|
314
|
+
// Arrange
|
|
315
|
+
${func.parameters.map(p => `const ${p.name} = ${paramValues};`).join('\n ')}
|
|
316
|
+
|
|
317
|
+
// Act
|
|
318
|
+
const result = ${awaitKeyword}${func.name}(${paramValues});
|
|
319
|
+
|
|
320
|
+
// Assert
|
|
321
|
+
expect(result).toBeDefined();
|
|
322
|
+
});`;
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Generate Mocha test code
|
|
326
|
+
*/
|
|
327
|
+
function generateMochaTest(func, testType, pattern) {
|
|
328
|
+
return `it('should handle ${testType} case', () => {
|
|
329
|
+
const result = ${func.name}();
|
|
330
|
+
expect(result).to.be.ok;
|
|
331
|
+
});`;
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Generate Pytest test code
|
|
335
|
+
*/
|
|
336
|
+
function generatePytestTest(func, testType, pattern) {
|
|
337
|
+
return `def test_${func.name}_${testType}():
|
|
338
|
+
result = ${func.name}()
|
|
339
|
+
assert result is not None`;
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* Generate generic test code
|
|
343
|
+
*/
|
|
344
|
+
function generateGenericTest(func, testType, pattern) {
|
|
345
|
+
return `// Test: ${func.name} - ${testType}\n// Pattern: ${pattern}\n// TODO: Implement test`;
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* Generate mock implementations
|
|
349
|
+
*/
|
|
350
|
+
function generateMocks(mockableInterfaces, framework) {
|
|
351
|
+
return mockableInterfaces.map(interfaceName => ({
|
|
352
|
+
name: `Mock${interfaceName}`,
|
|
353
|
+
code: generateMockCode(interfaceName, framework),
|
|
354
|
+
dependencies: [interfaceName]
|
|
355
|
+
}));
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Generate mock code
|
|
359
|
+
*/
|
|
360
|
+
function generateMockCode(interfaceName, framework) {
|
|
361
|
+
if (framework === 'jest') {
|
|
362
|
+
return `const mock${interfaceName} = {
|
|
363
|
+
// Auto-generated mock for ${interfaceName}
|
|
364
|
+
mockMethod: jest.fn(),
|
|
365
|
+
mockProperty: 'test-value'
|
|
366
|
+
};`;
|
|
367
|
+
}
|
|
368
|
+
return `// Mock for ${interfaceName}\nconst mock = {};`;
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* Calculate quality scores
|
|
372
|
+
*/
|
|
373
|
+
function calculateQualityScores(tests) {
|
|
374
|
+
const uniquePatterns = new Set(tests.flatMap(t => t.patterns)).size;
|
|
375
|
+
const diversity = Math.min(uniquePatterns / 5, 1.0);
|
|
376
|
+
const edgeCaseTests = tests.filter(t => t.name.includes('edge') || t.name.includes('error'));
|
|
377
|
+
const edgeCases = tests.length > 0 ? edgeCaseTests.length / tests.length : 0;
|
|
378
|
+
const avgConfidence = tests.reduce((sum, t) => sum + t.confidence, 0) / tests.length;
|
|
379
|
+
const mockQuality = avgConfidence;
|
|
380
|
+
const overall = (diversity + edgeCases + mockQuality) / 3;
|
|
381
|
+
return { diversity, edgeCases, mockQuality, overall };
|
|
382
|
+
}
|
|
383
|
+
/**
|
|
384
|
+
* Generate recommendations
|
|
385
|
+
*/
|
|
386
|
+
function generateRecommendations(analysis, tests, params) {
|
|
387
|
+
const recommendations = [];
|
|
388
|
+
if (analysis.complexity.level === 'high') {
|
|
389
|
+
recommendations.push('High complexity detected - consider refactoring before testing');
|
|
390
|
+
}
|
|
391
|
+
if (tests.length < analysis.functions.length * 2) {
|
|
392
|
+
recommendations.push('Consider adding more test cases for better coverage');
|
|
393
|
+
}
|
|
394
|
+
if (!params.generateMocks && analysis.dependencies.length > 0) {
|
|
395
|
+
recommendations.push('Enable mock generation for better isolation');
|
|
396
|
+
}
|
|
397
|
+
if (!params.includeEdgeCases) {
|
|
398
|
+
recommendations.push('Enable edge case testing for robustness');
|
|
399
|
+
}
|
|
400
|
+
if (analysis.riskAreas.includes('async-operations')) {
|
|
401
|
+
recommendations.push('Add timeout and error handling tests for async operations');
|
|
402
|
+
}
|
|
403
|
+
return recommendations;
|
|
404
|
+
}
|
|
405
|
+
/**
|
|
406
|
+
* Generate unit tests for source code
|
|
407
|
+
*
|
|
408
|
+
* @param params - Unit test generation parameters
|
|
409
|
+
* @returns Tool response with generated tests and metrics
|
|
410
|
+
*/
|
|
411
|
+
async function generateUnitTests(params) {
|
|
412
|
+
const startTime = Date.now();
|
|
413
|
+
const requestId = `unit-gen-${Date.now()}-${SecureRandom_js_1.SecureRandom.generateId(8)}`;
|
|
414
|
+
try {
|
|
415
|
+
// Analyze source code
|
|
416
|
+
const analysis = analyzeSourceCode(params);
|
|
417
|
+
// Generate tests for each function
|
|
418
|
+
const allTests = [];
|
|
419
|
+
for (const func of analysis.functions) {
|
|
420
|
+
const funcTests = generateTestsForFunction(func, params.framework, params, analysis);
|
|
421
|
+
allTests.push(...funcTests);
|
|
422
|
+
}
|
|
423
|
+
// Generate mocks if requested
|
|
424
|
+
const mocks = params.generateMocks
|
|
425
|
+
? generateMocks(analysis.mockableInterfaces, params.framework)
|
|
426
|
+
: undefined;
|
|
427
|
+
// Calculate quality scores
|
|
428
|
+
const quality = calculateQualityScores(allTests);
|
|
429
|
+
// Calculate projected coverage
|
|
430
|
+
const projectedCoverage = Math.min(params.coverageTarget, allTests.reduce((sum, t) => sum + t.coverageContribution, 0) * 100);
|
|
431
|
+
// Count patterns applied
|
|
432
|
+
const patternsApplied = new Set(allTests.flatMap(t => t.patterns)).size;
|
|
433
|
+
// Calculate AI enhancement ratio
|
|
434
|
+
const aiEnhancementRatio = allTests.filter(t => t.confidence > 0.85).length / allTests.length;
|
|
435
|
+
// Generate recommendations
|
|
436
|
+
const recommendations = generateRecommendations(analysis, allTests, params);
|
|
437
|
+
const executionTime = Date.now() - startTime;
|
|
438
|
+
const metadata = {
|
|
439
|
+
requestId,
|
|
440
|
+
timestamp: new Date().toISOString(),
|
|
441
|
+
executionTime,
|
|
442
|
+
agent: 'unit-test-generator',
|
|
443
|
+
version: '1.0.0'
|
|
444
|
+
};
|
|
445
|
+
return {
|
|
446
|
+
success: true,
|
|
447
|
+
data: {
|
|
448
|
+
tests: allTests,
|
|
449
|
+
metrics: {
|
|
450
|
+
testsGenerated: allTests.length,
|
|
451
|
+
generationTime: executionTime,
|
|
452
|
+
projectedCoverage,
|
|
453
|
+
patternsApplied,
|
|
454
|
+
aiEnhancementRatio
|
|
455
|
+
},
|
|
456
|
+
quality,
|
|
457
|
+
mocks,
|
|
458
|
+
recommendations
|
|
459
|
+
},
|
|
460
|
+
metadata
|
|
461
|
+
};
|
|
462
|
+
}
|
|
463
|
+
catch (error) {
|
|
464
|
+
const qeError = {
|
|
465
|
+
code: 'UNIT_TEST_GENERATION_FAILED',
|
|
466
|
+
message: error instanceof Error ? error.message : 'Unknown error during unit test generation',
|
|
467
|
+
details: { params },
|
|
468
|
+
stack: error instanceof Error ? error.stack : undefined
|
|
469
|
+
};
|
|
470
|
+
return {
|
|
471
|
+
success: false,
|
|
472
|
+
error: qeError,
|
|
473
|
+
metadata: {
|
|
474
|
+
requestId,
|
|
475
|
+
timestamp: new Date().toISOString(),
|
|
476
|
+
executionTime: Date.now() - startTime,
|
|
477
|
+
agent: 'unit-test-generator',
|
|
478
|
+
version: '1.0.0'
|
|
479
|
+
}
|
|
480
|
+
};
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
//# sourceMappingURL=generate-unit-tests.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-unit-tests.js","sourceRoot":"","sources":["../../../../../src/mcp/tools/qe/test-generation/generate-unit-tests.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test Generation Domain Tools
|
|
3
|
+
*
|
|
4
|
+
* Comprehensive test generation tools for unit, integration, and E2E testing
|
|
5
|
+
* with AI-powered analysis, sublinear optimization, and quality metrics.
|
|
6
|
+
*
|
|
7
|
+
* @module tools/qe/test-generation
|
|
8
|
+
* @version 1.0.0
|
|
9
|
+
*/
|
|
10
|
+
export { generateUnitTests, type GeneratedUnitTest, type UnitTestGenerationResult } from './generate-unit-tests';
|
|
11
|
+
export { generateIntegrationTests, type GeneratedIntegrationTest, type IntegrationTestGenerationResult } from './generate-integration-tests';
|
|
12
|
+
export { optimizeTestSuite, type TestSuiteOptimizationParams, type TestInput, type OptimizedTest, type TestSuiteOptimizationResult } from './optimize-test-suite';
|
|
13
|
+
export { analyzeTestQuality, type TestQualityAnalysisParams, type TestQualityInput, type TestQualityAnalysisResult } from './analyze-test-quality';
|
|
14
|
+
import { generateUnitTests } from './generate-unit-tests';
|
|
15
|
+
import { generateIntegrationTests } from './generate-integration-tests';
|
|
16
|
+
import { optimizeTestSuite } from './optimize-test-suite';
|
|
17
|
+
import { analyzeTestQuality } from './analyze-test-quality';
|
|
18
|
+
/**
|
|
19
|
+
* Test Generation Tools API
|
|
20
|
+
* Consolidated interface for all test generation operations
|
|
21
|
+
*/
|
|
22
|
+
export declare const TestGenerationTools: {
|
|
23
|
+
readonly generateUnitTests: typeof generateUnitTests;
|
|
24
|
+
readonly generateIntegrationTests: typeof generateIntegrationTests;
|
|
25
|
+
readonly optimizeTestSuite: typeof optimizeTestSuite;
|
|
26
|
+
readonly analyzeTestQuality: typeof analyzeTestQuality;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Tool metadata
|
|
30
|
+
*/
|
|
31
|
+
export declare const TestGenerationMetadata: {
|
|
32
|
+
readonly domain: "test-generation";
|
|
33
|
+
readonly version: "1.0.0";
|
|
34
|
+
readonly tools: readonly [{
|
|
35
|
+
readonly name: "generateUnitTests";
|
|
36
|
+
readonly description: "AI-powered unit test generation with pattern recognition";
|
|
37
|
+
readonly complexity: "O(n·log n)";
|
|
38
|
+
readonly features: readonly ["AST-based code analysis", "Pattern-based test generation", "Mock generation", "Edge case coverage", "Multi-framework support"];
|
|
39
|
+
}, {
|
|
40
|
+
readonly name: "generateIntegrationTests";
|
|
41
|
+
readonly description: "Integration test generation with dependency mocking and contract testing";
|
|
42
|
+
readonly complexity: "O(n·m)";
|
|
43
|
+
readonly features: readonly ["Dependency analysis", "Contract test generation", "Mock strategies (full/partial/none)", "Integration point detection", "Multi-framework support"];
|
|
44
|
+
}, {
|
|
45
|
+
readonly name: "optimizeTestSuite";
|
|
46
|
+
readonly description: "Sublinear test suite optimization with Johnson-Lindenstrauss";
|
|
47
|
+
readonly complexity: "O(log n / ε²)";
|
|
48
|
+
readonly features: readonly ["Johnson-Lindenstrauss dimension reduction", "Temporal advantage prediction", "Redundancy detection", "Critical test preservation", "Coverage maintenance"];
|
|
49
|
+
}, {
|
|
50
|
+
readonly name: "analyzeTestQuality";
|
|
51
|
+
readonly description: "Comprehensive test quality analysis with metrics and recommendations";
|
|
52
|
+
readonly complexity: "O(n)";
|
|
53
|
+
readonly features: readonly ["Pattern detection", "Anti-pattern detection", "Maintainability analysis", "Detailed test scoring", "Actionable recommendations"];
|
|
54
|
+
}];
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/mcp/tools/qe/test-generation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EACL,iBAAiB,EACjB,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC9B,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EACL,wBAAwB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,+BAA+B,EACrC,MAAM,8BAA8B,CAAA;AAGrC,OAAO,EACL,iBAAiB,EACjB,KAAK,2BAA2B,EAChC,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,2BAA2B,EACjC,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EACL,kBAAkB,EAClB,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,EACrB,KAAK,yBAAyB,EAC/B,MAAM,wBAAwB,CAAA;AAG/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAA;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAE3D;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;;CAKtB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;CAqDzB,CAAC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Test Generation Domain Tools
|
|
4
|
+
*
|
|
5
|
+
* Comprehensive test generation tools for unit, integration, and E2E testing
|
|
6
|
+
* with AI-powered analysis, sublinear optimization, and quality metrics.
|
|
7
|
+
*
|
|
8
|
+
* @module tools/qe/test-generation
|
|
9
|
+
* @version 1.0.0
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.TestGenerationMetadata = exports.TestGenerationTools = exports.analyzeTestQuality = exports.optimizeTestSuite = exports.generateIntegrationTests = exports.generateUnitTests = void 0;
|
|
13
|
+
// Unit test generation
|
|
14
|
+
var generate_unit_tests_1 = require("./generate-unit-tests");
|
|
15
|
+
Object.defineProperty(exports, "generateUnitTests", { enumerable: true, get: function () { return generate_unit_tests_1.generateUnitTests; } });
|
|
16
|
+
// Integration test generation
|
|
17
|
+
var generate_integration_tests_1 = require("./generate-integration-tests");
|
|
18
|
+
Object.defineProperty(exports, "generateIntegrationTests", { enumerable: true, get: function () { return generate_integration_tests_1.generateIntegrationTests; } });
|
|
19
|
+
// Test suite optimization
|
|
20
|
+
var optimize_test_suite_1 = require("./optimize-test-suite");
|
|
21
|
+
Object.defineProperty(exports, "optimizeTestSuite", { enumerable: true, get: function () { return optimize_test_suite_1.optimizeTestSuite; } });
|
|
22
|
+
// Test quality analysis
|
|
23
|
+
var analyze_test_quality_1 = require("./analyze-test-quality");
|
|
24
|
+
Object.defineProperty(exports, "analyzeTestQuality", { enumerable: true, get: function () { return analyze_test_quality_1.analyzeTestQuality; } });
|
|
25
|
+
// Re-import for TestGenerationTools object
|
|
26
|
+
const generate_unit_tests_2 = require("./generate-unit-tests");
|
|
27
|
+
const generate_integration_tests_2 = require("./generate-integration-tests");
|
|
28
|
+
const optimize_test_suite_2 = require("./optimize-test-suite");
|
|
29
|
+
const analyze_test_quality_2 = require("./analyze-test-quality");
|
|
30
|
+
/**
|
|
31
|
+
* Test Generation Tools API
|
|
32
|
+
* Consolidated interface for all test generation operations
|
|
33
|
+
*/
|
|
34
|
+
exports.TestGenerationTools = {
|
|
35
|
+
generateUnitTests: generate_unit_tests_2.generateUnitTests,
|
|
36
|
+
generateIntegrationTests: generate_integration_tests_2.generateIntegrationTests,
|
|
37
|
+
optimizeTestSuite: optimize_test_suite_2.optimizeTestSuite,
|
|
38
|
+
analyzeTestQuality: analyze_test_quality_2.analyzeTestQuality
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Tool metadata
|
|
42
|
+
*/
|
|
43
|
+
exports.TestGenerationMetadata = {
|
|
44
|
+
domain: 'test-generation',
|
|
45
|
+
version: '1.0.0',
|
|
46
|
+
tools: [
|
|
47
|
+
{
|
|
48
|
+
name: 'generateUnitTests',
|
|
49
|
+
description: 'AI-powered unit test generation with pattern recognition',
|
|
50
|
+
complexity: 'O(n·log n)',
|
|
51
|
+
features: [
|
|
52
|
+
'AST-based code analysis',
|
|
53
|
+
'Pattern-based test generation',
|
|
54
|
+
'Mock generation',
|
|
55
|
+
'Edge case coverage',
|
|
56
|
+
'Multi-framework support'
|
|
57
|
+
]
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'generateIntegrationTests',
|
|
61
|
+
description: 'Integration test generation with dependency mocking and contract testing',
|
|
62
|
+
complexity: 'O(n·m)',
|
|
63
|
+
features: [
|
|
64
|
+
'Dependency analysis',
|
|
65
|
+
'Contract test generation',
|
|
66
|
+
'Mock strategies (full/partial/none)',
|
|
67
|
+
'Integration point detection',
|
|
68
|
+
'Multi-framework support'
|
|
69
|
+
]
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
name: 'optimizeTestSuite',
|
|
73
|
+
description: 'Sublinear test suite optimization with Johnson-Lindenstrauss',
|
|
74
|
+
complexity: 'O(log n / ε²)',
|
|
75
|
+
features: [
|
|
76
|
+
'Johnson-Lindenstrauss dimension reduction',
|
|
77
|
+
'Temporal advantage prediction',
|
|
78
|
+
'Redundancy detection',
|
|
79
|
+
'Critical test preservation',
|
|
80
|
+
'Coverage maintenance'
|
|
81
|
+
]
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
name: 'analyzeTestQuality',
|
|
85
|
+
description: 'Comprehensive test quality analysis with metrics and recommendations',
|
|
86
|
+
complexity: 'O(n)',
|
|
87
|
+
features: [
|
|
88
|
+
'Pattern detection',
|
|
89
|
+
'Anti-pattern detection',
|
|
90
|
+
'Maintainability analysis',
|
|
91
|
+
'Detailed test scoring',
|
|
92
|
+
'Actionable recommendations'
|
|
93
|
+
]
|
|
94
|
+
}
|
|
95
|
+
]
|
|
96
|
+
};
|
|
97
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/mcp/tools/qe/test-generation/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH,uBAAuB;AACvB,6DAI8B;AAH5B,wHAAA,iBAAiB,OAAA;AAKnB,8BAA8B;AAC9B,2EAIqC;AAHnC,sIAAA,wBAAwB,OAAA;AAK1B,0BAA0B;AAC1B,6DAM8B;AAL5B,wHAAA,iBAAiB,OAAA;AAOnB,wBAAwB;AACxB,+DAK+B;AAJ7B,0HAAA,kBAAkB,OAAA;AAMpB,2CAA2C;AAC3C,+DAAyD;AACzD,6EAAuE;AACvE,+DAAyD;AACzD,iEAA2D;AAE3D;;;GAGG;AACU,QAAA,mBAAmB,GAAG;IACjC,iBAAiB,EAAjB,uCAAiB;IACjB,wBAAwB,EAAxB,qDAAwB;IACxB,iBAAiB,EAAjB,uCAAiB;IACjB,kBAAkB,EAAlB,yCAAkB;CACV,CAAC;AAEX;;GAEG;AACU,QAAA,sBAAsB,GAAG;IACpC,MAAM,EAAE,iBAAiB;IACzB,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE;QACL;YACE,IAAI,EAAE,mBAAmB;YACzB,WAAW,EAAE,0DAA0D;YACvE,UAAU,EAAE,YAAY;YACxB,QAAQ,EAAE;gBACR,yBAAyB;gBACzB,+BAA+B;gBAC/B,iBAAiB;gBACjB,oBAAoB;gBACpB,yBAAyB;aAC1B;SACF;QACD;YACE,IAAI,EAAE,0BAA0B;YAChC,WAAW,EAAE,0EAA0E;YACvF,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE;gBACR,qBAAqB;gBACrB,0BAA0B;gBAC1B,qCAAqC;gBACrC,6BAA6B;gBAC7B,yBAAyB;aAC1B;SACF;QACD;YACE,IAAI,EAAE,mBAAmB;YACzB,WAAW,EAAE,8DAA8D;YAC3E,UAAU,EAAE,eAAe;YAC3B,QAAQ,EAAE;gBACR,2CAA2C;gBAC3C,+BAA+B;gBAC/B,sBAAsB;gBACtB,4BAA4B;gBAC5B,sBAAsB;aACvB;SACF;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EAAE,sEAAsE;YACnF,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE;gBACR,mBAAmB;gBACnB,wBAAwB;gBACxB,0BAA0B;gBAC1B,uBAAuB;gBACvB,4BAA4B;aAC7B;SACF;KACF;CACO,CAAC"}
|