agentic-qe 1.4.4 → 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 +397 -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 +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,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Real-time Performance Monitoring Tool
|
|
3
|
+
*
|
|
4
|
+
* Monitors performance metrics in real-time with configurable sampling.
|
|
5
|
+
* Moved from: src/mcp/handlers/analysis/performance-monitor-realtime-handler.ts
|
|
6
|
+
*
|
|
7
|
+
* @module performance/monitor-realtime
|
|
8
|
+
* @version 1.0.0
|
|
9
|
+
*/
|
|
10
|
+
import type { RealtimeMonitorParams, MonitoringMetric } from '../shared/types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Real-time monitoring result
|
|
13
|
+
*/
|
|
14
|
+
export interface RealtimeMonitoringResult {
|
|
15
|
+
/** Target being monitored */
|
|
16
|
+
target: string;
|
|
17
|
+
/** Monitoring duration (seconds) */
|
|
18
|
+
duration: number;
|
|
19
|
+
/** Sampling interval (seconds) */
|
|
20
|
+
interval: number;
|
|
21
|
+
/** Collected data points */
|
|
22
|
+
dataPoints: DataPoint[];
|
|
23
|
+
/** Summary statistics */
|
|
24
|
+
summary: MonitoringSummary;
|
|
25
|
+
/** Alerts triggered */
|
|
26
|
+
alerts?: Alert[];
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Individual data point
|
|
30
|
+
*/
|
|
31
|
+
export interface DataPoint {
|
|
32
|
+
/** Timestamp */
|
|
33
|
+
timestamp: string;
|
|
34
|
+
/** CPU usage (percentage) */
|
|
35
|
+
cpu?: number;
|
|
36
|
+
/** Memory usage (MB) */
|
|
37
|
+
memory?: number;
|
|
38
|
+
/** Network usage (MB) */
|
|
39
|
+
network?: number;
|
|
40
|
+
/** Disk I/O (MB/s) */
|
|
41
|
+
disk?: number;
|
|
42
|
+
/** Response time (ms) */
|
|
43
|
+
responseTime?: number;
|
|
44
|
+
/** Throughput (requests/sec) */
|
|
45
|
+
throughput?: number;
|
|
46
|
+
/** Error rate (0-1) */
|
|
47
|
+
errorRate?: number;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Monitoring summary statistics
|
|
51
|
+
*/
|
|
52
|
+
export interface MonitoringSummary {
|
|
53
|
+
/** Average CPU usage */
|
|
54
|
+
avgCpu?: number;
|
|
55
|
+
/** Average memory usage */
|
|
56
|
+
avgMemory?: number;
|
|
57
|
+
/** Average response time */
|
|
58
|
+
avgResponseTime?: number;
|
|
59
|
+
/** Average throughput */
|
|
60
|
+
avgThroughput?: number;
|
|
61
|
+
/** Peak values */
|
|
62
|
+
peaks: {
|
|
63
|
+
cpu?: number;
|
|
64
|
+
memory?: number;
|
|
65
|
+
responseTime?: number;
|
|
66
|
+
throughput?: number;
|
|
67
|
+
};
|
|
68
|
+
/** Minimum values */
|
|
69
|
+
minimums: {
|
|
70
|
+
cpu?: number;
|
|
71
|
+
memory?: number;
|
|
72
|
+
responseTime?: number;
|
|
73
|
+
throughput?: number;
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Alert triggered during monitoring
|
|
78
|
+
*/
|
|
79
|
+
export interface Alert {
|
|
80
|
+
/** Alert timestamp */
|
|
81
|
+
timestamp: string;
|
|
82
|
+
/** Metric that triggered alert */
|
|
83
|
+
metric: MonitoringMetric;
|
|
84
|
+
/** Current value */
|
|
85
|
+
value: number;
|
|
86
|
+
/** Threshold value */
|
|
87
|
+
threshold: number;
|
|
88
|
+
/** Alert severity */
|
|
89
|
+
severity: 'warning' | 'critical';
|
|
90
|
+
/** Alert message */
|
|
91
|
+
message: string;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Monitor performance in real-time
|
|
95
|
+
*
|
|
96
|
+
* Collects performance metrics at regular intervals with optional alerting.
|
|
97
|
+
*
|
|
98
|
+
* @param params - Monitoring parameters
|
|
99
|
+
* @returns Promise resolving to monitoring results
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
* ```typescript
|
|
103
|
+
* const result = await monitorPerformanceRealtime({
|
|
104
|
+
* target: 'https://api.example.com',
|
|
105
|
+
* duration: 60,
|
|
106
|
+
* interval: 5,
|
|
107
|
+
* metrics: ['cpu', 'memory', 'response-time'],
|
|
108
|
+
* thresholds: {
|
|
109
|
+
* cpu: 80,
|
|
110
|
+
* memory: 1024,
|
|
111
|
+
* 'response-time': 200
|
|
112
|
+
* }
|
|
113
|
+
* });
|
|
114
|
+
*
|
|
115
|
+
* console.log(`Collected ${result.dataPoints.length} data points`);
|
|
116
|
+
* console.log(`Alerts: ${result.alerts?.length || 0}`);
|
|
117
|
+
* ```
|
|
118
|
+
*/
|
|
119
|
+
export declare function monitorPerformanceRealtime(params: RealtimeMonitorParams): Promise<RealtimeMonitoringResult>;
|
|
120
|
+
//# sourceMappingURL=monitor-realtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monitor-realtime.d.ts","sourceRoot":"","sources":["../../../../../src/mcp/tools/qe/performance/monitor-realtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAElF;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;IAEf,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IAEjB,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IAEjB,4BAA4B;IAC5B,UAAU,EAAE,SAAS,EAAE,CAAC;IAExB,yBAAyB;IACzB,OAAO,EAAE,iBAAiB,CAAC;IAE3B,uBAAuB;IACvB,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,gBAAgB;IAChB,SAAS,EAAE,MAAM,CAAC;IAElB,6BAA6B;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,yBAAyB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,sBAAsB;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,yBAAyB;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,4BAA4B;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,yBAAyB;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,kBAAkB;IAClB,KAAK,EAAE;QACL,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IAEF,qBAAqB;IACrB,QAAQ,EAAE;QACR,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,sBAAsB;IACtB,SAAS,EAAE,MAAM,CAAC;IAElB,kCAAkC;IAClC,MAAM,EAAE,gBAAgB,CAAC;IAEzB,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IAEd,sBAAsB;IACtB,SAAS,EAAE,MAAM,CAAC;IAElB,qBAAqB;IACrB,QAAQ,EAAE,SAAS,GAAG,UAAU,CAAC;IAEjC,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,wBAAwB,CAAC,CA0CnC"}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Real-time Performance Monitoring Tool
|
|
4
|
+
*
|
|
5
|
+
* Monitors performance metrics in real-time with configurable sampling.
|
|
6
|
+
* Moved from: src/mcp/handlers/analysis/performance-monitor-realtime-handler.ts
|
|
7
|
+
*
|
|
8
|
+
* @module performance/monitor-realtime
|
|
9
|
+
* @version 1.0.0
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.monitorPerformanceRealtime = monitorPerformanceRealtime;
|
|
13
|
+
/**
|
|
14
|
+
* Monitor performance in real-time
|
|
15
|
+
*
|
|
16
|
+
* Collects performance metrics at regular intervals with optional alerting.
|
|
17
|
+
*
|
|
18
|
+
* @param params - Monitoring parameters
|
|
19
|
+
* @returns Promise resolving to monitoring results
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* const result = await monitorPerformanceRealtime({
|
|
24
|
+
* target: 'https://api.example.com',
|
|
25
|
+
* duration: 60,
|
|
26
|
+
* interval: 5,
|
|
27
|
+
* metrics: ['cpu', 'memory', 'response-time'],
|
|
28
|
+
* thresholds: {
|
|
29
|
+
* cpu: 80,
|
|
30
|
+
* memory: 1024,
|
|
31
|
+
* 'response-time': 200
|
|
32
|
+
* }
|
|
33
|
+
* });
|
|
34
|
+
*
|
|
35
|
+
* console.log(`Collected ${result.dataPoints.length} data points`);
|
|
36
|
+
* console.log(`Alerts: ${result.alerts?.length || 0}`);
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
async function monitorPerformanceRealtime(params) {
|
|
40
|
+
const { target, duration, interval, metrics, thresholds } = params;
|
|
41
|
+
const dataPoints = [];
|
|
42
|
+
const alerts = [];
|
|
43
|
+
const startTime = Date.now();
|
|
44
|
+
const endTime = startTime + (duration * 1000);
|
|
45
|
+
const intervalMs = interval * 1000;
|
|
46
|
+
// Collect data points
|
|
47
|
+
while (Date.now() < endTime) {
|
|
48
|
+
const dataPoint = await collectDataPoint(target, metrics);
|
|
49
|
+
dataPoints.push(dataPoint);
|
|
50
|
+
// Check thresholds and generate alerts
|
|
51
|
+
if (thresholds) {
|
|
52
|
+
const newAlerts = checkThresholds(dataPoint, thresholds, metrics);
|
|
53
|
+
alerts.push(...newAlerts);
|
|
54
|
+
}
|
|
55
|
+
// Wait for next interval
|
|
56
|
+
await new Promise(resolve => setTimeout(resolve, intervalMs));
|
|
57
|
+
}
|
|
58
|
+
// Calculate summary statistics
|
|
59
|
+
const summary = calculateSummary(dataPoints, metrics);
|
|
60
|
+
return {
|
|
61
|
+
target,
|
|
62
|
+
duration,
|
|
63
|
+
interval,
|
|
64
|
+
dataPoints,
|
|
65
|
+
summary,
|
|
66
|
+
alerts: alerts.length > 0 ? alerts : undefined
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Collect a single data point
|
|
71
|
+
*/
|
|
72
|
+
async function collectDataPoint(target, metrics) {
|
|
73
|
+
const dataPoint = {
|
|
74
|
+
timestamp: new Date().toISOString()
|
|
75
|
+
};
|
|
76
|
+
// Simulate metric collection
|
|
77
|
+
for (const metric of metrics) {
|
|
78
|
+
switch (metric) {
|
|
79
|
+
case 'cpu':
|
|
80
|
+
dataPoint.cpu = Math.random() * 100;
|
|
81
|
+
break;
|
|
82
|
+
case 'memory':
|
|
83
|
+
dataPoint.memory = Math.random() * 2048;
|
|
84
|
+
break;
|
|
85
|
+
case 'network':
|
|
86
|
+
dataPoint.network = Math.random() * 100;
|
|
87
|
+
break;
|
|
88
|
+
case 'disk':
|
|
89
|
+
dataPoint.disk = Math.random() * 50;
|
|
90
|
+
break;
|
|
91
|
+
case 'response-time':
|
|
92
|
+
dataPoint.responseTime = 50 + Math.random() * 450;
|
|
93
|
+
break;
|
|
94
|
+
case 'throughput':
|
|
95
|
+
dataPoint.throughput = 50 + Math.random() * 950;
|
|
96
|
+
break;
|
|
97
|
+
case 'error-rate':
|
|
98
|
+
dataPoint.errorRate = Math.random() * 0.05;
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return dataPoint;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Check thresholds and generate alerts
|
|
106
|
+
*/
|
|
107
|
+
function checkThresholds(dataPoint, thresholds, metrics) {
|
|
108
|
+
const alerts = [];
|
|
109
|
+
for (const metric of metrics) {
|
|
110
|
+
const threshold = thresholds[metric];
|
|
111
|
+
if (!threshold)
|
|
112
|
+
continue;
|
|
113
|
+
let value;
|
|
114
|
+
let exceeded = false;
|
|
115
|
+
switch (metric) {
|
|
116
|
+
case 'cpu':
|
|
117
|
+
value = dataPoint.cpu;
|
|
118
|
+
exceeded = (value !== undefined && value > threshold);
|
|
119
|
+
break;
|
|
120
|
+
case 'memory':
|
|
121
|
+
value = dataPoint.memory;
|
|
122
|
+
exceeded = (value !== undefined && value > threshold);
|
|
123
|
+
break;
|
|
124
|
+
case 'response-time':
|
|
125
|
+
value = dataPoint.responseTime;
|
|
126
|
+
exceeded = (value !== undefined && value > threshold);
|
|
127
|
+
break;
|
|
128
|
+
case 'error-rate':
|
|
129
|
+
value = dataPoint.errorRate;
|
|
130
|
+
exceeded = (value !== undefined && value > threshold);
|
|
131
|
+
break;
|
|
132
|
+
case 'throughput':
|
|
133
|
+
value = dataPoint.throughput;
|
|
134
|
+
exceeded = (value !== undefined && value < threshold);
|
|
135
|
+
break;
|
|
136
|
+
default:
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
if (exceeded && value !== undefined) {
|
|
140
|
+
const severity = getSeverity(value, threshold, metric);
|
|
141
|
+
alerts.push({
|
|
142
|
+
timestamp: dataPoint.timestamp,
|
|
143
|
+
metric,
|
|
144
|
+
value,
|
|
145
|
+
threshold,
|
|
146
|
+
severity,
|
|
147
|
+
message: `${metric} ${severity === 'critical' ? 'critically ' : ''}exceeded threshold: ${value.toFixed(1)} (threshold: ${threshold})`
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return alerts;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Get alert severity
|
|
155
|
+
*/
|
|
156
|
+
function getSeverity(value, threshold, metric) {
|
|
157
|
+
const percentageAbove = Math.abs((value - threshold) / threshold * 100);
|
|
158
|
+
// Critical if more than 50% above threshold
|
|
159
|
+
if (percentageAbove > 50) {
|
|
160
|
+
return 'critical';
|
|
161
|
+
}
|
|
162
|
+
return 'warning';
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Calculate summary statistics
|
|
166
|
+
*/
|
|
167
|
+
function calculateSummary(dataPoints, metrics) {
|
|
168
|
+
const summary = {
|
|
169
|
+
peaks: {},
|
|
170
|
+
minimums: {}
|
|
171
|
+
};
|
|
172
|
+
if (dataPoints.length === 0) {
|
|
173
|
+
return summary;
|
|
174
|
+
}
|
|
175
|
+
// Calculate averages and peaks
|
|
176
|
+
for (const metric of metrics) {
|
|
177
|
+
let values = [];
|
|
178
|
+
switch (metric) {
|
|
179
|
+
case 'cpu':
|
|
180
|
+
values = dataPoints.map(d => d.cpu).filter((v) => v !== undefined);
|
|
181
|
+
if (values.length > 0) {
|
|
182
|
+
summary.avgCpu = values.reduce((sum, v) => sum + v, 0) / values.length;
|
|
183
|
+
summary.peaks.cpu = Math.max(...values);
|
|
184
|
+
summary.minimums.cpu = Math.min(...values);
|
|
185
|
+
}
|
|
186
|
+
break;
|
|
187
|
+
case 'memory':
|
|
188
|
+
values = dataPoints.map(d => d.memory).filter((v) => v !== undefined);
|
|
189
|
+
if (values.length > 0) {
|
|
190
|
+
summary.avgMemory = values.reduce((sum, v) => sum + v, 0) / values.length;
|
|
191
|
+
summary.peaks.memory = Math.max(...values);
|
|
192
|
+
summary.minimums.memory = Math.min(...values);
|
|
193
|
+
}
|
|
194
|
+
break;
|
|
195
|
+
case 'response-time':
|
|
196
|
+
values = dataPoints.map(d => d.responseTime).filter((v) => v !== undefined);
|
|
197
|
+
if (values.length > 0) {
|
|
198
|
+
summary.avgResponseTime = values.reduce((sum, v) => sum + v, 0) / values.length;
|
|
199
|
+
summary.peaks.responseTime = Math.max(...values);
|
|
200
|
+
summary.minimums.responseTime = Math.min(...values);
|
|
201
|
+
}
|
|
202
|
+
break;
|
|
203
|
+
case 'throughput':
|
|
204
|
+
values = dataPoints.map(d => d.throughput).filter((v) => v !== undefined);
|
|
205
|
+
if (values.length > 0) {
|
|
206
|
+
summary.avgThroughput = values.reduce((sum, v) => sum + v, 0) / values.length;
|
|
207
|
+
summary.peaks.throughput = Math.max(...values);
|
|
208
|
+
summary.minimums.throughput = Math.min(...values);
|
|
209
|
+
}
|
|
210
|
+
break;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
return summary;
|
|
214
|
+
}
|
|
215
|
+
//# sourceMappingURL=monitor-realtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monitor-realtime.js","sourceRoot":"","sources":["../../../../../src/mcp/tools/qe/performance/monitor-realtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Performance Benchmark Execution Tool
|
|
3
|
+
*
|
|
4
|
+
* Executes performance benchmarks with configurable iterations and warmup.
|
|
5
|
+
* Moved from: src/mcp/handlers/analysis/performance-benchmark-run-handler.ts
|
|
6
|
+
*
|
|
7
|
+
* @module performance/run-benchmark
|
|
8
|
+
* @version 1.0.0
|
|
9
|
+
*/
|
|
10
|
+
import type { PerformanceBenchmarkParams } from '../shared/types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Benchmark execution result
|
|
13
|
+
*/
|
|
14
|
+
export interface BenchmarkResult {
|
|
15
|
+
/** Benchmark suite name */
|
|
16
|
+
suite: string;
|
|
17
|
+
/** Number of iterations completed */
|
|
18
|
+
iterations: number;
|
|
19
|
+
/** Average execution time (ms) */
|
|
20
|
+
averageTime: number;
|
|
21
|
+
/** Median execution time (ms) */
|
|
22
|
+
medianTime: number;
|
|
23
|
+
/** Minimum execution time (ms) */
|
|
24
|
+
minTime: number;
|
|
25
|
+
/** Maximum execution time (ms) */
|
|
26
|
+
maxTime: number;
|
|
27
|
+
/** Throughput (operations/second) */
|
|
28
|
+
throughput: number;
|
|
29
|
+
/** Standard deviation */
|
|
30
|
+
standardDeviation: number;
|
|
31
|
+
/** Successfully completed iterations */
|
|
32
|
+
completed: number;
|
|
33
|
+
/** Failed iterations */
|
|
34
|
+
failed: number;
|
|
35
|
+
/** Execution timestamps */
|
|
36
|
+
timestamps?: string[];
|
|
37
|
+
/** Resource usage during benchmark */
|
|
38
|
+
resourceUsage?: {
|
|
39
|
+
avgCpu: number;
|
|
40
|
+
avgMemory: number;
|
|
41
|
+
peakCpu: number;
|
|
42
|
+
peakMemory: number;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Run performance benchmark
|
|
47
|
+
*
|
|
48
|
+
* Executes a performance benchmark suite with warmup and multiple iterations.
|
|
49
|
+
*
|
|
50
|
+
* @param params - Benchmark parameters
|
|
51
|
+
* @returns Promise resolving to benchmark results
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```typescript
|
|
55
|
+
* const result = await runPerformanceBenchmark({
|
|
56
|
+
* benchmarkSuite: 'api-load-test',
|
|
57
|
+
* iterations: 100,
|
|
58
|
+
* warmupIterations: 10,
|
|
59
|
+
* parallel: false,
|
|
60
|
+
* reportFormat: 'json'
|
|
61
|
+
* });
|
|
62
|
+
*
|
|
63
|
+
* console.log(`Average time: ${result.averageTime}ms`);
|
|
64
|
+
* console.log(`Throughput: ${result.throughput} ops/sec`);
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
export declare function runPerformanceBenchmark(params: PerformanceBenchmarkParams): Promise<BenchmarkResult>;
|
|
68
|
+
//# sourceMappingURL=run-benchmark.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-benchmark.d.ts","sourceRoot":"","sources":["../../../../../src/mcp/tools/qe/performance/run-benchmark.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,0BAA0B,EAAmB,MAAM,oBAAoB,CAAC;AAEtF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IAEd,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IAEnB,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IAEpB,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;IAEnB,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAEhB,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAEhB,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IAEnB,yBAAyB;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAE1B,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAElB,wBAAwB;IACxB,MAAM,EAAE,MAAM,CAAC;IAEf,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB,sCAAsC;IACtC,aAAa,CAAC,EAAE;QACd,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,eAAe,CAAC,CAuB1B"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Performance Benchmark Execution Tool
|
|
4
|
+
*
|
|
5
|
+
* Executes performance benchmarks with configurable iterations and warmup.
|
|
6
|
+
* Moved from: src/mcp/handlers/analysis/performance-benchmark-run-handler.ts
|
|
7
|
+
*
|
|
8
|
+
* @module performance/run-benchmark
|
|
9
|
+
* @version 1.0.0
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.runPerformanceBenchmark = runPerformanceBenchmark;
|
|
13
|
+
/**
|
|
14
|
+
* Run performance benchmark
|
|
15
|
+
*
|
|
16
|
+
* Executes a performance benchmark suite with warmup and multiple iterations.
|
|
17
|
+
*
|
|
18
|
+
* @param params - Benchmark parameters
|
|
19
|
+
* @returns Promise resolving to benchmark results
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* const result = await runPerformanceBenchmark({
|
|
24
|
+
* benchmarkSuite: 'api-load-test',
|
|
25
|
+
* iterations: 100,
|
|
26
|
+
* warmupIterations: 10,
|
|
27
|
+
* parallel: false,
|
|
28
|
+
* reportFormat: 'json'
|
|
29
|
+
* });
|
|
30
|
+
*
|
|
31
|
+
* console.log(`Average time: ${result.averageTime}ms`);
|
|
32
|
+
* console.log(`Throughput: ${result.throughput} ops/sec`);
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
async function runPerformanceBenchmark(params) {
|
|
36
|
+
const { benchmarkSuite, iterations = 100, warmupIterations = 10, parallel = false, config } = params;
|
|
37
|
+
// Execute warmup iterations
|
|
38
|
+
if (warmupIterations > 0) {
|
|
39
|
+
await executeWarmup(benchmarkSuite, warmupIterations, config);
|
|
40
|
+
}
|
|
41
|
+
// Execute benchmark iterations
|
|
42
|
+
const results = await executeBenchmark(benchmarkSuite, iterations, parallel, config);
|
|
43
|
+
return results;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Execute warmup iterations
|
|
47
|
+
*/
|
|
48
|
+
async function executeWarmup(suite, warmupIterations, config) {
|
|
49
|
+
// In production, this would execute actual warmup iterations
|
|
50
|
+
// For now, simulate warmup delay
|
|
51
|
+
await new Promise(resolve => setTimeout(resolve, warmupIterations * 10));
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Execute benchmark iterations
|
|
55
|
+
*/
|
|
56
|
+
async function executeBenchmark(suite, iterations, parallel, config) {
|
|
57
|
+
const times = [];
|
|
58
|
+
const timestamps = [];
|
|
59
|
+
let completed = 0;
|
|
60
|
+
let failed = 0;
|
|
61
|
+
// Simulate benchmark execution
|
|
62
|
+
for (let i = 0; i < iterations; i++) {
|
|
63
|
+
try {
|
|
64
|
+
const startTime = Date.now();
|
|
65
|
+
// Simulate benchmark operation
|
|
66
|
+
await simulateBenchmarkOperation(suite, config);
|
|
67
|
+
const endTime = Date.now();
|
|
68
|
+
const duration = endTime - startTime;
|
|
69
|
+
times.push(duration);
|
|
70
|
+
timestamps.push(new Date(startTime).toISOString());
|
|
71
|
+
completed++;
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
failed++;
|
|
75
|
+
}
|
|
76
|
+
// Check timeout
|
|
77
|
+
if (config?.timeout && Date.now() > config.timeout) {
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
// Calculate statistics
|
|
82
|
+
const sortedTimes = [...times].sort((a, b) => a - b);
|
|
83
|
+
const averageTime = times.reduce((sum, t) => sum + t, 0) / times.length;
|
|
84
|
+
const medianTime = sortedTimes[Math.floor(sortedTimes.length / 2)];
|
|
85
|
+
const minTime = sortedTimes[0];
|
|
86
|
+
const maxTime = sortedTimes[sortedTimes.length - 1];
|
|
87
|
+
const throughput = 1000 / averageTime; // ops/sec
|
|
88
|
+
const variance = times.reduce((sum, t) => sum + Math.pow(t - averageTime, 2), 0) / times.length;
|
|
89
|
+
const standardDeviation = Math.sqrt(variance);
|
|
90
|
+
return {
|
|
91
|
+
suite,
|
|
92
|
+
iterations,
|
|
93
|
+
averageTime,
|
|
94
|
+
medianTime,
|
|
95
|
+
minTime,
|
|
96
|
+
maxTime,
|
|
97
|
+
throughput,
|
|
98
|
+
standardDeviation,
|
|
99
|
+
completed,
|
|
100
|
+
failed,
|
|
101
|
+
timestamps,
|
|
102
|
+
resourceUsage: {
|
|
103
|
+
avgCpu: 45.2,
|
|
104
|
+
avgMemory: 256.5,
|
|
105
|
+
peakCpu: 78.3,
|
|
106
|
+
peakMemory: 512.1
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Simulate benchmark operation
|
|
112
|
+
*/
|
|
113
|
+
async function simulateBenchmarkOperation(suite, config) {
|
|
114
|
+
// Simulate variable execution time (30-60ms)
|
|
115
|
+
const baseTime = 30;
|
|
116
|
+
const variance = Math.random() * 30;
|
|
117
|
+
const executionTime = baseTime + variance;
|
|
118
|
+
await new Promise(resolve => setTimeout(resolve, executionTime));
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=run-benchmark.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-benchmark.js","sourceRoot":"","sources":["../../../../../src/mcp/tools/qe/performance/run-benchmark.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AAwEH,0DAyBC;AA/CD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACI,KAAK,UAAU,uBAAuB,CAC3C,MAAkC;IAElC,MAAM,EACJ,cAAc,EACd,UAAU,GAAG,GAAG,EAChB,gBAAgB,GAAG,EAAE,EACrB,QAAQ,GAAG,KAAK,EAChB,MAAM,EACP,GAAG,MAAM,CAAC;IAEX,4BAA4B;IAC5B,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,aAAa,CAAC,cAAc,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAChE,CAAC;IAED,+BAA+B;IAC/B,MAAM,OAAO,GAAG,MAAM,gBAAgB,CACpC,cAAc,EACd,UAAU,EACV,QAAQ,EACR,MAAM,CACP,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAC1B,KAAa,EACb,gBAAwB,EACxB,MAAwB;IAExB,6DAA6D;IAC7D,iCAAiC;IACjC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,gBAAgB,GAAG,EAAE,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,gBAAgB,CAC7B,KAAa,EACb,UAAkB,EAClB,QAAiB,EACjB,MAAwB;IAExB,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,+BAA+B;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAE7B,+BAA+B;YAC/B,MAAM,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAEhD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;YAErC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrB,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YACnD,SAAS,EAAE,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,EAAE,CAAC;QACX,CAAC;QAED,gBAAgB;QAChB,IAAI,MAAM,EAAE,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YACnD,MAAM;QACR,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,MAAM,WAAW,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IACxE,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,OAAO,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,IAAI,GAAG,WAAW,CAAC,CAAC,UAAU;IACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IAChG,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE9C,OAAO;QACL,KAAK;QACL,UAAU;QACV,WAAW;QACX,UAAU;QACV,OAAO;QACP,OAAO;QACP,UAAU;QACV,iBAAiB;QACjB,SAAS;QACT,MAAM;QACN,UAAU;QACV,aAAa,EAAE;YACb,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,KAAK;SAClB;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,0BAA0B,CACvC,KAAa,EACb,MAAwB;IAExB,6CAA6C;IAC7C,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;IACpC,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAE1C,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;AACnE,CAAC"}
|