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.
Files changed (410) hide show
  1. package/.claude/agents/qe-api-contract-validator.md +133 -27
  2. package/.claude/agents/qe-api-contract-validator.md.backup +1148 -0
  3. package/.claude/agents/qe-api-contract-validator.md.backup-20251107-134747 +1148 -0
  4. package/.claude/agents/qe-api-contract-validator.md.backup-phase2-20251107-140039 +1123 -0
  5. package/.claude/agents/qe-chaos-engineer.md +142 -23
  6. package/.claude/agents/qe-chaos-engineer.md.backup +808 -0
  7. package/.claude/agents/qe-chaos-engineer.md.backup-20251107-134747 +808 -0
  8. package/.claude/agents/qe-chaos-engineer.md.backup-phase2-20251107-140039 +787 -0
  9. package/.claude/agents/qe-code-complexity.md +111 -23
  10. package/.claude/agents/qe-code-complexity.md.backup +291 -0
  11. package/.claude/agents/qe-code-complexity.md.backup-20251107-134747 +291 -0
  12. package/.claude/agents/qe-code-complexity.md.backup-phase2-20251107-140039 +286 -0
  13. package/.claude/agents/qe-coverage-analyzer.md +306 -30
  14. package/.claude/agents/qe-coverage-analyzer.md.backup +467 -0
  15. package/.claude/agents/qe-coverage-analyzer.md.backup-20251107-134747 +467 -0
  16. package/.claude/agents/qe-coverage-analyzer.md.backup-phase2-20251107-140039 +438 -0
  17. package/.claude/agents/qe-deployment-readiness.md +84 -28
  18. package/.claude/agents/qe-deployment-readiness.md.backup +1166 -0
  19. package/.claude/agents/qe-deployment-readiness.md.backup-20251107-134747 +1166 -0
  20. package/.claude/agents/qe-deployment-readiness.md.backup-phase2-20251107-140039 +1140 -0
  21. package/.claude/agents/qe-flaky-test-hunter.md +277 -35
  22. package/.claude/agents/qe-flaky-test-hunter.md.backup +1195 -0
  23. package/.claude/agents/qe-flaky-test-hunter.md.backup-20251107-134747 +1195 -0
  24. package/.claude/agents/qe-flaky-test-hunter.md.backup-phase2-20251107-140039 +1162 -0
  25. package/.claude/agents/qe-fleet-commander.md +126 -23
  26. package/.claude/agents/qe-fleet-commander.md.backup +718 -0
  27. package/.claude/agents/qe-fleet-commander.md.backup-20251107-134747 +718 -0
  28. package/.claude/agents/qe-fleet-commander.md.backup-phase2-20251107-140039 +697 -0
  29. package/.claude/agents/qe-performance-tester.md +314 -57
  30. package/.claude/agents/qe-performance-tester.md.backup +428 -0
  31. package/.claude/agents/qe-performance-tester.md.backup-20251107-134747 +428 -0
  32. package/.claude/agents/qe-performance-tester.md.backup-phase2-20251107-140039 +372 -0
  33. package/.claude/agents/qe-production-intelligence.md +126 -27
  34. package/.claude/agents/qe-production-intelligence.md.backup +1219 -0
  35. package/.claude/agents/qe-production-intelligence.md.backup-20251107-134747 +1219 -0
  36. package/.claude/agents/qe-production-intelligence.md.backup-phase2-20251107-140039 +1194 -0
  37. package/.claude/agents/qe-quality-analyzer.md +127 -32
  38. package/.claude/agents/qe-quality-analyzer.md.backup +425 -0
  39. package/.claude/agents/qe-quality-analyzer.md.backup-20251107-134747 +425 -0
  40. package/.claude/agents/qe-quality-analyzer.md.backup-phase2-20251107-140039 +394 -0
  41. package/.claude/agents/qe-quality-gate.md +148 -33
  42. package/.claude/agents/qe-quality-gate.md.backup +446 -0
  43. package/.claude/agents/qe-quality-gate.md.backup-20251107-134747 +446 -0
  44. package/.claude/agents/qe-quality-gate.md.backup-phase2-20251107-140039 +415 -0
  45. package/.claude/agents/qe-regression-risk-analyzer.md +78 -27
  46. package/.claude/agents/qe-regression-risk-analyzer.md.backup +1009 -0
  47. package/.claude/agents/qe-regression-risk-analyzer.md.backup-20251107-134747 +1009 -0
  48. package/.claude/agents/qe-regression-risk-analyzer.md.backup-phase2-20251107-140039 +984 -0
  49. package/.claude/agents/qe-requirements-validator.md +131 -27
  50. package/.claude/agents/qe-requirements-validator.md.backup +748 -0
  51. package/.claude/agents/qe-requirements-validator.md.backup-20251107-134747 +748 -0
  52. package/.claude/agents/qe-requirements-validator.md.backup-phase2-20251107-140039 +723 -0
  53. package/.claude/agents/qe-security-scanner.md +137 -62
  54. package/.claude/agents/qe-security-scanner.md.backup +634 -0
  55. package/.claude/agents/qe-security-scanner.md.backup-20251107-134747 +634 -0
  56. package/.claude/agents/qe-security-scanner.md.backup-phase2-20251107-140039 +573 -0
  57. package/.claude/agents/qe-test-data-architect.md +129 -26
  58. package/.claude/agents/qe-test-data-architect.md.backup +1064 -0
  59. package/.claude/agents/qe-test-data-architect.md.backup-20251107-134747 +1064 -0
  60. package/.claude/agents/qe-test-data-architect.md.backup-phase2-20251107-140039 +1040 -0
  61. package/.claude/agents/qe-test-executor.md +165 -21
  62. package/.claude/agents/qe-test-executor.md.backup +389 -0
  63. package/.claude/agents/qe-test-executor.md.backup-20251107-134747 +389 -0
  64. package/.claude/agents/qe-test-executor.md.backup-phase2-20251107-140039 +369 -0
  65. package/.claude/agents/qe-test-generator.md +379 -34
  66. package/.claude/agents/qe-test-generator.md.backup +997 -0
  67. package/.claude/agents/qe-test-generator.md.backup-20251107-134747 +997 -0
  68. package/.claude/agents/qe-visual-tester.md +236 -23
  69. package/.claude/agents/qe-visual-tester.md.backup +777 -0
  70. package/.claude/agents/qe-visual-tester.md.backup-20251107-134747 +777 -0
  71. package/.claude/agents/qe-visual-tester.md.backup-phase2-20251107-140039 +756 -0
  72. package/.claude/agents/subagents/qe-code-reviewer.md +59 -0
  73. package/.claude/agents/subagents/qe-data-generator.md +60 -0
  74. package/.claude/agents/subagents/qe-integration-tester.md +77 -0
  75. package/.claude/agents/subagents/qe-performance-validator.md +55 -0
  76. package/.claude/agents/subagents/qe-security-auditor.md +51 -0
  77. package/.claude/agents/subagents/qe-test-implementer.md +371 -0
  78. package/.claude/agents/subagents/qe-test-refactorer.md +510 -0
  79. package/.claude/agents/subagents/qe-test-writer.md +603 -0
  80. package/.claude/skills/accessibility-testing/SKILL.md +764 -777
  81. package/.claude/skills/agentic-quality-engineering/SKILL.md +0 -6
  82. package/.claude/skills/api-testing-patterns/SKILL.md +0 -12
  83. package/.claude/skills/bug-reporting-excellence/SKILL.md +0 -6
  84. package/.claude/skills/chaos-engineering-resilience/SKILL.md +0 -6
  85. package/.claude/skills/code-review-quality/SKILL.md +0 -6
  86. package/.claude/skills/compatibility-testing/SKILL.md +0 -6
  87. package/.claude/skills/compliance-testing/SKILL.md +0 -6
  88. package/.claude/skills/consultancy-practices/SKILL.md +0 -6
  89. package/.claude/skills/context-driven-testing/SKILL.md +0 -6
  90. package/.claude/skills/contract-testing/SKILL.md +0 -6
  91. package/.claude/skills/database-testing/SKILL.md +0 -6
  92. package/.claude/skills/exploratory-testing-advanced/SKILL.md +0 -6
  93. package/.claude/skills/holistic-testing-pact/SKILL.md +0 -6
  94. package/.claude/skills/localization-testing/SKILL.md +0 -6
  95. package/.claude/skills/mobile-testing/SKILL.md +535 -548
  96. package/.claude/skills/mutation-testing/SKILL.md +0 -6
  97. package/.claude/skills/performance-testing/SKILL.md +0 -6
  98. package/.claude/skills/quality-metrics/SKILL.md +0 -12
  99. package/.claude/skills/refactoring-patterns/SKILL.md +0 -6
  100. package/.claude/skills/regression-testing/SKILL.md +1033 -1045
  101. package/.claude/skills/risk-based-testing/SKILL.md +0 -12
  102. package/.claude/skills/security-testing/SKILL.md +0 -6
  103. package/.claude/skills/shift-left-testing/SKILL.md +529 -535
  104. package/.claude/skills/shift-right-testing/SKILL.md +585 -591
  105. package/.claude/skills/tdd-london-chicago/SKILL.md +0 -6
  106. package/.claude/skills/technical-writing/SKILL.md +0 -6
  107. package/.claude/skills/test-automation-strategy/SKILL.md +0 -6
  108. package/.claude/skills/test-data-management/SKILL.md +1054 -1067
  109. package/.claude/skills/test-design-techniques/SKILL.md +0 -6
  110. package/.claude/skills/test-environment-management/SKILL.md +0 -6
  111. package/.claude/skills/test-reporting-analytics/SKILL.md +0 -6
  112. package/.claude/skills/visual-testing-advanced/SKILL.md +0 -6
  113. package/.claude/skills/xp-practices/SKILL.md +0 -6
  114. package/CHANGELOG.md +504 -0
  115. package/README.md +24 -16
  116. package/dist/cli/commands/init.d.ts +4 -0
  117. package/dist/cli/commands/init.d.ts.map +1 -1
  118. package/dist/cli/commands/init.js +97 -44
  119. package/dist/cli/commands/init.js.map +1 -1
  120. package/dist/core/FleetManager.d.ts.map +1 -1
  121. package/dist/core/FleetManager.js +17 -5
  122. package/dist/core/FleetManager.js.map +1 -1
  123. package/dist/core/MemoryManager.d.ts +27 -0
  124. package/dist/core/MemoryManager.d.ts.map +1 -1
  125. package/dist/core/MemoryManager.js +69 -4
  126. package/dist/core/MemoryManager.js.map +1 -1
  127. package/dist/core/PatternDatabaseAdapter.d.ts.map +1 -1
  128. package/dist/core/PatternDatabaseAdapter.js +14 -4
  129. package/dist/core/PatternDatabaseAdapter.js.map +1 -1
  130. package/dist/learning/LearningEngine.d.ts.map +1 -1
  131. package/dist/learning/LearningEngine.js +18 -4
  132. package/dist/learning/LearningEngine.js.map +1 -1
  133. package/dist/mcp/handlers/coordination/index.d.ts +14 -14
  134. package/dist/mcp/handlers/coordination/index.d.ts.map +1 -1
  135. package/dist/mcp/handlers/coordination/index.js +14 -14
  136. package/dist/mcp/handlers/coordination/index.js.map +1 -1
  137. package/dist/mcp/handlers/coordination/task-status.d.ts.map +1 -1
  138. package/dist/mcp/handlers/coordination/task-status.js +3 -5
  139. package/dist/mcp/handlers/coordination/task-status.js.map +1 -1
  140. package/dist/mcp/handlers/phase2/Phase2Tools.d.ts.map +1 -1
  141. package/dist/mcp/handlers/phase2/Phase2Tools.js +39 -10
  142. package/dist/mcp/handlers/phase2/Phase2Tools.js.map +1 -1
  143. package/dist/mcp/handlers/phase3/Phase3DomainTools.d.ts +63 -0
  144. package/dist/mcp/handlers/phase3/Phase3DomainTools.d.ts.map +1 -0
  145. package/dist/mcp/handlers/phase3/Phase3DomainTools.js +885 -0
  146. package/dist/mcp/handlers/phase3/Phase3DomainTools.js.map +1 -0
  147. package/dist/mcp/handlers/phase3/index.d.ts +6 -0
  148. package/dist/mcp/handlers/phase3/index.d.ts.map +1 -0
  149. package/dist/mcp/handlers/phase3/index.js +10 -0
  150. package/dist/mcp/handlers/phase3/index.js.map +1 -0
  151. package/dist/mcp/handlers/prediction/index.d.ts +10 -10
  152. package/dist/mcp/handlers/prediction/index.d.ts.map +1 -1
  153. package/dist/mcp/handlers/prediction/index.js +10 -10
  154. package/dist/mcp/handlers/prediction/index.js.map +1 -1
  155. package/dist/mcp/handlers/security/check-authz.d.ts +152 -0
  156. package/dist/mcp/handlers/security/check-authz.d.ts.map +1 -0
  157. package/dist/mcp/handlers/security/check-authz.js +434 -0
  158. package/dist/mcp/handlers/security/check-authz.js.map +1 -0
  159. package/dist/mcp/handlers/security/generate-report.d.ts +156 -0
  160. package/dist/mcp/handlers/security/generate-report.d.ts.map +1 -0
  161. package/dist/mcp/handlers/security/generate-report.js +469 -0
  162. package/dist/mcp/handlers/security/generate-report.js.map +1 -0
  163. package/dist/mcp/handlers/security/index.d.ts +80 -0
  164. package/dist/mcp/handlers/security/index.d.ts.map +1 -0
  165. package/dist/mcp/handlers/security/index.js +91 -0
  166. package/dist/mcp/handlers/security/index.js.map +1 -0
  167. package/dist/mcp/handlers/security/scan-comprehensive.d.ts +66 -0
  168. package/dist/mcp/handlers/security/scan-comprehensive.d.ts.map +1 -0
  169. package/dist/mcp/handlers/security/scan-comprehensive.js +296 -0
  170. package/dist/mcp/handlers/security/scan-comprehensive.js.map +1 -0
  171. package/dist/mcp/handlers/security/scan-dependencies.d.ts +148 -0
  172. package/dist/mcp/handlers/security/scan-dependencies.d.ts.map +1 -0
  173. package/dist/mcp/handlers/security/scan-dependencies.js +354 -0
  174. package/dist/mcp/handlers/security/scan-dependencies.js.map +1 -0
  175. package/dist/mcp/handlers/security/validate-auth.d.ts +128 -0
  176. package/dist/mcp/handlers/security/validate-auth.d.ts.map +1 -0
  177. package/dist/mcp/handlers/security/validate-auth.js +294 -0
  178. package/dist/mcp/handlers/security/validate-auth.js.map +1 -0
  179. package/dist/mcp/handlers/task-orchestrate.d.ts +21 -1
  180. package/dist/mcp/handlers/task-orchestrate.d.ts.map +1 -1
  181. package/dist/mcp/handlers/task-orchestrate.js +32 -2
  182. package/dist/mcp/handlers/task-orchestrate.js.map +1 -1
  183. package/dist/mcp/handlers/test/generate-integration-tests.d.ts +95 -0
  184. package/dist/mcp/handlers/test/generate-integration-tests.d.ts.map +1 -0
  185. package/dist/mcp/handlers/test/generate-integration-tests.js +286 -0
  186. package/dist/mcp/handlers/test/generate-integration-tests.js.map +1 -0
  187. package/dist/mcp/handlers/test/generate-unit-tests.d.ts +89 -0
  188. package/dist/mcp/handlers/test/generate-unit-tests.d.ts.map +1 -0
  189. package/dist/mcp/handlers/test/generate-unit-tests.js +273 -0
  190. package/dist/mcp/handlers/test/generate-unit-tests.js.map +1 -0
  191. package/dist/mcp/handlers/test/optimize-test-suite.d.ts +97 -0
  192. package/dist/mcp/handlers/test/optimize-test-suite.d.ts.map +1 -0
  193. package/dist/mcp/handlers/test/optimize-test-suite.js +282 -0
  194. package/dist/mcp/handlers/test/optimize-test-suite.js.map +1 -0
  195. package/dist/mcp/server.d.ts.map +1 -1
  196. package/dist/mcp/server.js +212 -1
  197. package/dist/mcp/server.js.map +1 -1
  198. package/dist/mcp/tools/deprecated.d.ts +1390 -0
  199. package/dist/mcp/tools/deprecated.d.ts.map +1 -0
  200. package/dist/mcp/tools/deprecated.js +859 -0
  201. package/dist/mcp/tools/deprecated.js.map +1 -0
  202. package/dist/mcp/tools/qe/api-contract/index.d.ts +138 -0
  203. package/dist/mcp/tools/qe/api-contract/index.d.ts.map +1 -0
  204. package/dist/mcp/tools/qe/api-contract/index.js +572 -0
  205. package/dist/mcp/tools/qe/api-contract/index.js.map +1 -0
  206. package/dist/mcp/tools/qe/code-quality/analyze-complexity.d.ts +110 -0
  207. package/dist/mcp/tools/qe/code-quality/analyze-complexity.d.ts.map +1 -0
  208. package/dist/mcp/tools/qe/code-quality/analyze-complexity.js +381 -0
  209. package/dist/mcp/tools/qe/code-quality/analyze-complexity.js.map +1 -0
  210. package/dist/mcp/tools/qe/code-quality/calculate-quality-metrics.d.ts +115 -0
  211. package/dist/mcp/tools/qe/code-quality/calculate-quality-metrics.d.ts.map +1 -0
  212. package/dist/mcp/tools/qe/code-quality/calculate-quality-metrics.js +461 -0
  213. package/dist/mcp/tools/qe/code-quality/calculate-quality-metrics.js.map +1 -0
  214. package/dist/mcp/tools/qe/code-quality/index.d.ts +12 -0
  215. package/dist/mcp/tools/qe/code-quality/index.d.ts.map +1 -0
  216. package/dist/mcp/tools/qe/code-quality/index.js +30 -0
  217. package/dist/mcp/tools/qe/code-quality/index.js.map +1 -0
  218. package/dist/mcp/tools/qe/coverage/analyze-with-risk-scoring.d.ts +58 -0
  219. package/dist/mcp/tools/qe/coverage/analyze-with-risk-scoring.d.ts.map +1 -0
  220. package/dist/mcp/tools/qe/coverage/analyze-with-risk-scoring.js +172 -0
  221. package/dist/mcp/tools/qe/coverage/analyze-with-risk-scoring.js.map +1 -0
  222. package/dist/mcp/tools/qe/coverage/calculate-trends.d.ts +73 -0
  223. package/dist/mcp/tools/qe/coverage/calculate-trends.d.ts.map +1 -0
  224. package/dist/mcp/tools/qe/coverage/calculate-trends.js +240 -0
  225. package/dist/mcp/tools/qe/coverage/calculate-trends.js.map +1 -0
  226. package/dist/mcp/tools/qe/coverage/detect-gaps-ml.d.ts +38 -0
  227. package/dist/mcp/tools/qe/coverage/detect-gaps-ml.d.ts.map +1 -0
  228. package/dist/mcp/tools/qe/coverage/detect-gaps-ml.js +204 -0
  229. package/dist/mcp/tools/qe/coverage/detect-gaps-ml.js.map +1 -0
  230. package/dist/mcp/tools/qe/coverage/index.d.ts +12 -0
  231. package/dist/mcp/tools/qe/coverage/index.d.ts.map +1 -0
  232. package/dist/mcp/tools/qe/coverage/index.js +23 -0
  233. package/dist/mcp/tools/qe/coverage/index.js.map +1 -0
  234. package/dist/mcp/tools/qe/coverage/recommend-tests.d.ts +46 -0
  235. package/dist/mcp/tools/qe/coverage/recommend-tests.d.ts.map +1 -0
  236. package/dist/mcp/tools/qe/coverage/recommend-tests.js +248 -0
  237. package/dist/mcp/tools/qe/coverage/recommend-tests.js.map +1 -0
  238. package/dist/mcp/tools/qe/flaky-detection/analyze-patterns.d.ts +179 -0
  239. package/dist/mcp/tools/qe/flaky-detection/analyze-patterns.d.ts.map +1 -0
  240. package/dist/mcp/tools/qe/flaky-detection/analyze-patterns.js +554 -0
  241. package/dist/mcp/tools/qe/flaky-detection/analyze-patterns.js.map +1 -0
  242. package/dist/mcp/tools/qe/flaky-detection/detect-statistical.d.ts +172 -0
  243. package/dist/mcp/tools/qe/flaky-detection/detect-statistical.d.ts.map +1 -0
  244. package/dist/mcp/tools/qe/flaky-detection/detect-statistical.js +498 -0
  245. package/dist/mcp/tools/qe/flaky-detection/detect-statistical.js.map +1 -0
  246. package/dist/mcp/tools/qe/flaky-detection/index.d.ts +35 -0
  247. package/dist/mcp/tools/qe/flaky-detection/index.d.ts.map +1 -0
  248. package/dist/mcp/tools/qe/flaky-detection/index.js +66 -0
  249. package/dist/mcp/tools/qe/flaky-detection/index.js.map +1 -0
  250. package/dist/mcp/tools/qe/flaky-detection/stabilize-auto.d.ts +159 -0
  251. package/dist/mcp/tools/qe/flaky-detection/stabilize-auto.d.ts.map +1 -0
  252. package/dist/mcp/tools/qe/flaky-detection/stabilize-auto.js +462 -0
  253. package/dist/mcp/tools/qe/flaky-detection/stabilize-auto.js.map +1 -0
  254. package/dist/mcp/tools/qe/fleet/index.d.ts +422 -0
  255. package/dist/mcp/tools/qe/fleet/index.d.ts.map +1 -0
  256. package/dist/mcp/tools/qe/fleet/index.js +652 -0
  257. package/dist/mcp/tools/qe/fleet/index.js.map +1 -0
  258. package/dist/mcp/tools/qe/performance/analyze-bottlenecks.d.ts +180 -0
  259. package/dist/mcp/tools/qe/performance/analyze-bottlenecks.d.ts.map +1 -0
  260. package/dist/mcp/tools/qe/performance/analyze-bottlenecks.js +347 -0
  261. package/dist/mcp/tools/qe/performance/analyze-bottlenecks.js.map +1 -0
  262. package/dist/mcp/tools/qe/performance/generate-report.d.ts +146 -0
  263. package/dist/mcp/tools/qe/performance/generate-report.d.ts.map +1 -0
  264. package/dist/mcp/tools/qe/performance/generate-report.js +354 -0
  265. package/dist/mcp/tools/qe/performance/generate-report.js.map +1 -0
  266. package/dist/mcp/tools/qe/performance/index.d.ts +13 -0
  267. package/dist/mcp/tools/qe/performance/index.d.ts.map +1 -0
  268. package/dist/mcp/tools/qe/performance/index.js +24 -0
  269. package/dist/mcp/tools/qe/performance/index.js.map +1 -0
  270. package/dist/mcp/tools/qe/performance/monitor-realtime.d.ts +120 -0
  271. package/dist/mcp/tools/qe/performance/monitor-realtime.d.ts.map +1 -0
  272. package/dist/mcp/tools/qe/performance/monitor-realtime.js +215 -0
  273. package/dist/mcp/tools/qe/performance/monitor-realtime.js.map +1 -0
  274. package/dist/mcp/tools/qe/performance/run-benchmark.d.ts +68 -0
  275. package/dist/mcp/tools/qe/performance/run-benchmark.d.ts.map +1 -0
  276. package/dist/mcp/tools/qe/performance/run-benchmark.js +120 -0
  277. package/dist/mcp/tools/qe/performance/run-benchmark.js.map +1 -0
  278. package/dist/mcp/tools/qe/quality-gates/assess-deployment-risk.d.ts +239 -0
  279. package/dist/mcp/tools/qe/quality-gates/assess-deployment-risk.d.ts.map +1 -0
  280. package/dist/mcp/tools/qe/quality-gates/assess-deployment-risk.js +671 -0
  281. package/dist/mcp/tools/qe/quality-gates/assess-deployment-risk.js.map +1 -0
  282. package/dist/mcp/tools/qe/quality-gates/evaluate-quality-gate.d.ts +219 -0
  283. package/dist/mcp/tools/qe/quality-gates/evaluate-quality-gate.d.ts.map +1 -0
  284. package/dist/mcp/tools/qe/quality-gates/evaluate-quality-gate.js +732 -0
  285. package/dist/mcp/tools/qe/quality-gates/evaluate-quality-gate.js.map +1 -0
  286. package/dist/mcp/tools/qe/quality-gates/generate-quality-report.d.ts +447 -0
  287. package/dist/mcp/tools/qe/quality-gates/generate-quality-report.d.ts.map +1 -0
  288. package/dist/mcp/tools/qe/quality-gates/generate-quality-report.js +551 -0
  289. package/dist/mcp/tools/qe/quality-gates/generate-quality-report.js.map +1 -0
  290. package/dist/mcp/tools/qe/quality-gates/index.d.ts +40 -0
  291. package/dist/mcp/tools/qe/quality-gates/index.d.ts.map +1 -0
  292. package/dist/mcp/tools/qe/quality-gates/index.js +56 -0
  293. package/dist/mcp/tools/qe/quality-gates/index.js.map +1 -0
  294. package/dist/mcp/tools/qe/quality-gates/validate-quality-metrics.d.ts +226 -0
  295. package/dist/mcp/tools/qe/quality-gates/validate-quality-metrics.d.ts.map +1 -0
  296. package/dist/mcp/tools/qe/quality-gates/validate-quality-metrics.js +603 -0
  297. package/dist/mcp/tools/qe/quality-gates/validate-quality-metrics.js.map +1 -0
  298. package/dist/mcp/tools/qe/regression/analyze-risk.d.ts +212 -0
  299. package/dist/mcp/tools/qe/regression/analyze-risk.d.ts.map +1 -0
  300. package/dist/mcp/tools/qe/regression/analyze-risk.js +617 -0
  301. package/dist/mcp/tools/qe/regression/analyze-risk.js.map +1 -0
  302. package/dist/mcp/tools/qe/regression/index.d.ts +36 -0
  303. package/dist/mcp/tools/qe/regression/index.d.ts.map +1 -0
  304. package/dist/mcp/tools/qe/regression/index.js +63 -0
  305. package/dist/mcp/tools/qe/regression/index.js.map +1 -0
  306. package/dist/mcp/tools/qe/regression/select-tests.d.ts +241 -0
  307. package/dist/mcp/tools/qe/regression/select-tests.d.ts.map +1 -0
  308. package/dist/mcp/tools/qe/regression/select-tests.js +601 -0
  309. package/dist/mcp/tools/qe/regression/select-tests.js.map +1 -0
  310. package/dist/mcp/tools/qe/requirements/generate-bdd-scenarios.d.ts +134 -0
  311. package/dist/mcp/tools/qe/requirements/generate-bdd-scenarios.d.ts.map +1 -0
  312. package/dist/mcp/tools/qe/requirements/generate-bdd-scenarios.js +737 -0
  313. package/dist/mcp/tools/qe/requirements/generate-bdd-scenarios.js.map +1 -0
  314. package/dist/mcp/tools/qe/requirements/index.d.ts +40 -0
  315. package/dist/mcp/tools/qe/requirements/index.d.ts.map +1 -0
  316. package/dist/mcp/tools/qe/requirements/index.js +84 -0
  317. package/dist/mcp/tools/qe/requirements/index.js.map +1 -0
  318. package/dist/mcp/tools/qe/requirements/validate-requirements.d.ts +196 -0
  319. package/dist/mcp/tools/qe/requirements/validate-requirements.d.ts.map +1 -0
  320. package/dist/mcp/tools/qe/requirements/validate-requirements.js +740 -0
  321. package/dist/mcp/tools/qe/requirements/validate-requirements.js.map +1 -0
  322. package/dist/mcp/tools/qe/security/detect-vulnerabilities.d.ts +300 -0
  323. package/dist/mcp/tools/qe/security/detect-vulnerabilities.d.ts.map +1 -0
  324. package/dist/mcp/tools/qe/security/detect-vulnerabilities.js +492 -0
  325. package/dist/mcp/tools/qe/security/detect-vulnerabilities.js.map +1 -0
  326. package/dist/mcp/tools/qe/security/index.d.ts +34 -0
  327. package/dist/mcp/tools/qe/security/index.d.ts.map +1 -0
  328. package/dist/mcp/tools/qe/security/index.js +44 -0
  329. package/dist/mcp/tools/qe/security/index.js.map +1 -0
  330. package/dist/mcp/tools/qe/security/scan-comprehensive.d.ts +240 -0
  331. package/dist/mcp/tools/qe/security/scan-comprehensive.d.ts.map +1 -0
  332. package/dist/mcp/tools/qe/security/scan-comprehensive.js +535 -0
  333. package/dist/mcp/tools/qe/security/scan-comprehensive.js.map +1 -0
  334. package/dist/mcp/tools/qe/security/validate-compliance.d.ts +299 -0
  335. package/dist/mcp/tools/qe/security/validate-compliance.d.ts.map +1 -0
  336. package/dist/mcp/tools/qe/security/validate-compliance.js +517 -0
  337. package/dist/mcp/tools/qe/security/validate-compliance.js.map +1 -0
  338. package/dist/mcp/tools/qe/shared/types.d.ts +840 -0
  339. package/dist/mcp/tools/qe/shared/types.d.ts.map +1 -0
  340. package/dist/mcp/tools/qe/shared/types.js +13 -0
  341. package/dist/mcp/tools/qe/shared/types.js.map +1 -0
  342. package/dist/mcp/tools/qe/test-data/analyze-schema.d.ts +264 -0
  343. package/dist/mcp/tools/qe/test-data/analyze-schema.d.ts.map +1 -0
  344. package/dist/mcp/tools/qe/test-data/analyze-schema.js +553 -0
  345. package/dist/mcp/tools/qe/test-data/analyze-schema.js.map +1 -0
  346. package/dist/mcp/tools/qe/test-data/generate-test-data.d.ts +167 -0
  347. package/dist/mcp/tools/qe/test-data/generate-test-data.d.ts.map +1 -0
  348. package/dist/mcp/tools/qe/test-data/generate-test-data.js +336 -0
  349. package/dist/mcp/tools/qe/test-data/generate-test-data.js.map +1 -0
  350. package/dist/mcp/tools/qe/test-data/index.d.ts +44 -0
  351. package/dist/mcp/tools/qe/test-data/index.d.ts.map +1 -0
  352. package/dist/mcp/tools/qe/test-data/index.js +90 -0
  353. package/dist/mcp/tools/qe/test-data/index.js.map +1 -0
  354. package/dist/mcp/tools/qe/test-data/mask-sensitive-data.d.ts +165 -0
  355. package/dist/mcp/tools/qe/test-data/mask-sensitive-data.d.ts.map +1 -0
  356. package/dist/mcp/tools/qe/test-data/mask-sensitive-data.js +342 -0
  357. package/dist/mcp/tools/qe/test-data/mask-sensitive-data.js.map +1 -0
  358. package/dist/mcp/tools/qe/test-generation/analyze-test-quality.d.ts +144 -0
  359. package/dist/mcp/tools/qe/test-generation/analyze-test-quality.d.ts.map +1 -0
  360. package/dist/mcp/tools/qe/test-generation/analyze-test-quality.js +432 -0
  361. package/dist/mcp/tools/qe/test-generation/analyze-test-quality.js.map +1 -0
  362. package/dist/mcp/tools/qe/test-generation/generate-integration-tests.d.ts +98 -0
  363. package/dist/mcp/tools/qe/test-generation/generate-integration-tests.d.ts.map +1 -0
  364. package/dist/mcp/tools/qe/test-generation/generate-integration-tests.js +459 -0
  365. package/dist/mcp/tools/qe/test-generation/generate-integration-tests.js.map +1 -0
  366. package/dist/mcp/tools/qe/test-generation/generate-unit-tests.d.ts +83 -0
  367. package/dist/mcp/tools/qe/test-generation/generate-unit-tests.d.ts.map +1 -0
  368. package/dist/mcp/tools/qe/test-generation/generate-unit-tests.js +483 -0
  369. package/dist/mcp/tools/qe/test-generation/generate-unit-tests.js.map +1 -0
  370. package/dist/mcp/tools/qe/test-generation/index.d.ts +56 -0
  371. package/dist/mcp/tools/qe/test-generation/index.d.ts.map +1 -0
  372. package/dist/mcp/tools/qe/test-generation/index.js +97 -0
  373. package/dist/mcp/tools/qe/test-generation/index.js.map +1 -0
  374. package/dist/mcp/tools/qe/test-generation/optimize-test-suite.d.ts +124 -0
  375. package/dist/mcp/tools/qe/test-generation/optimize-test-suite.d.ts.map +1 -0
  376. package/dist/mcp/tools/qe/test-generation/optimize-test-suite.js +362 -0
  377. package/dist/mcp/tools/qe/test-generation/optimize-test-suite.js.map +1 -0
  378. package/dist/mcp/tools/qe/visual/compare-screenshots.d.ts +119 -0
  379. package/dist/mcp/tools/qe/visual/compare-screenshots.d.ts.map +1 -0
  380. package/dist/mcp/tools/qe/visual/compare-screenshots.js +280 -0
  381. package/dist/mcp/tools/qe/visual/compare-screenshots.js.map +1 -0
  382. package/dist/mcp/tools/qe/visual/detect-regression.d.ts +138 -0
  383. package/dist/mcp/tools/qe/visual/detect-regression.d.ts.map +1 -0
  384. package/dist/mcp/tools/qe/visual/detect-regression.js +271 -0
  385. package/dist/mcp/tools/qe/visual/detect-regression.js.map +1 -0
  386. package/dist/mcp/tools/qe/visual/index.d.ts +16 -0
  387. package/dist/mcp/tools/qe/visual/index.d.ts.map +1 -0
  388. package/dist/mcp/tools/qe/visual/index.js +22 -0
  389. package/dist/mcp/tools/qe/visual/index.js.map +1 -0
  390. package/dist/mcp/tools/qe/visual/validate-accessibility.d.ts +276 -0
  391. package/dist/mcp/tools/qe/visual/validate-accessibility.d.ts.map +1 -0
  392. package/dist/mcp/tools/qe/visual/validate-accessibility.js +413 -0
  393. package/dist/mcp/tools/qe/visual/validate-accessibility.js.map +1 -0
  394. package/dist/mcp/tools.d.ts +44 -0
  395. package/dist/mcp/tools.d.ts.map +1 -1
  396. package/dist/mcp/tools.js +1980 -1
  397. package/dist/mcp/tools.js.map +1 -1
  398. package/package.json +2 -2
  399. package/dist/learning/__mocks__/LearningEngine.d.ts +0 -39
  400. package/dist/learning/__mocks__/LearningEngine.d.ts.map +0 -1
  401. package/dist/learning/__mocks__/LearningEngine.js +0 -116
  402. package/dist/learning/__mocks__/LearningEngine.js.map +0 -1
  403. package/dist/utils/__mocks__/Database.d.ts +0 -85
  404. package/dist/utils/__mocks__/Database.d.ts.map +0 -1
  405. package/dist/utils/__mocks__/Database.js +0 -125
  406. package/dist/utils/__mocks__/Database.js.map +0 -1
  407. package/dist/utils/__mocks__/Logger.d.ts +0 -26
  408. package/dist/utils/__mocks__/Logger.d.ts.map +0 -1
  409. package/dist/utils/__mocks__/Logger.js +0 -44
  410. package/dist/utils/__mocks__/Logger.js.map +0 -1
@@ -0,0 +1,271 @@
1
+ "use strict";
2
+ /**
3
+ * Visual Regression Testing Handler
4
+ *
5
+ * Detects visual changes and regressions in UI components using
6
+ * computer vision and perceptual diffing algorithms.
7
+ *
8
+ * @version 1.0.0
9
+ * @author Agentic QE Team
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.VisualTestRegressionHandler = void 0;
13
+ const base_handler_js_1 = require("../../../handlers/base-handler.js");
14
+ const SecureRandom_js_1 = require("../../../../utils/SecureRandom.js");
15
+ /**
16
+ * Visual Regression Testing Handler
17
+ */
18
+ class VisualTestRegressionHandler extends base_handler_js_1.BaseHandler {
19
+ constructor(registry, hookExecutor) {
20
+ super();
21
+ this.registry = registry;
22
+ this.hookExecutor = hookExecutor;
23
+ }
24
+ async handle(args) {
25
+ return this.safeHandle(async () => {
26
+ const requestId = this.generateRequestId();
27
+ const startTime = performance.now();
28
+ this.log('info', 'Starting visual regression testing', { requestId, args });
29
+ // Validate input
30
+ this.validateRequired(args, ['testConfig']);
31
+ if (!args.testConfig.baselineImages || args.testConfig.baselineImages.length === 0) {
32
+ throw new Error('Baseline images are required');
33
+ }
34
+ if (!args.testConfig.comparisonImages || args.testConfig.comparisonImages.length === 0) {
35
+ throw new Error('Comparison images are required');
36
+ }
37
+ // Execute pre-task hook
38
+ await this.hookExecutor.executeHook('pre-task', {
39
+ taskId: requestId,
40
+ taskType: 'visual-test-regression',
41
+ metadata: args
42
+ });
43
+ // Run visual regression testing
44
+ const result = await this.runVisualRegression(args, requestId);
45
+ // Execute post-task hook
46
+ await this.hookExecutor.executeHook('post-task', {
47
+ taskId: requestId,
48
+ taskType: 'visual-test-regression',
49
+ result
50
+ });
51
+ const executionTime = performance.now() - startTime;
52
+ this.log('info', 'Visual regression testing completed', {
53
+ requestId,
54
+ totalTests: result.summary.totalTests,
55
+ failed: result.summary.failed,
56
+ executionTime
57
+ });
58
+ return this.createSuccessResponse(result, requestId);
59
+ });
60
+ }
61
+ /**
62
+ * Run visual regression testing
63
+ */
64
+ async runVisualRegression(args, requestId) {
65
+ const comparisonStartTime = performance.now();
66
+ const threshold = args.testConfig.threshold || 0.05;
67
+ const viewports = args.testConfig.viewports || [{ width: 1920, height: 1080, name: 'desktop' }];
68
+ // Perform comparisons
69
+ const comparisons = [];
70
+ const totalComparisons = args.testConfig.baselineImages.length * viewports.length;
71
+ for (let i = 0; i < args.testConfig.baselineImages.length; i++) {
72
+ for (const viewport of viewports) {
73
+ const comparison = await this.compareImages(args.testConfig.baselineImages[i], args.testConfig.comparisonImages[i] || args.testConfig.baselineImages[i], viewport, threshold, args.options);
74
+ comparisons.push(comparison);
75
+ }
76
+ }
77
+ const comparisonTime = performance.now() - comparisonStartTime;
78
+ // Analyze results
79
+ const passed = comparisons.filter(c => c.result.status === 'pass').length;
80
+ const failed = comparisons.filter(c => c.result.status === 'fail').length;
81
+ const warnings = comparisons.filter(c => c.result.status === 'warning').length;
82
+ // Generate insights
83
+ const insights = this.generateInsights(comparisons);
84
+ // Generate recommendations
85
+ const recommendations = this.generateRecommendations(comparisons, insights);
86
+ // Generate report if requested
87
+ let report;
88
+ if (args.options?.generateReport) {
89
+ report = {
90
+ htmlPath: `/reports/visual-regression-${requestId}.html`,
91
+ jsonPath: `/reports/visual-regression-${requestId}.json`
92
+ };
93
+ }
94
+ return {
95
+ id: requestId,
96
+ summary: {
97
+ totalTests: totalComparisons,
98
+ passed,
99
+ failed,
100
+ warnings,
101
+ overallStatus: failed > 0 ? 'fail' : warnings > 0 ? 'warning' : 'pass'
102
+ },
103
+ comparisons,
104
+ insights,
105
+ recommendations,
106
+ performance: {
107
+ comparisonTime,
108
+ avgDiffCalculation: comparisonTime / totalComparisons
109
+ },
110
+ report
111
+ };
112
+ }
113
+ /**
114
+ * Compare two images
115
+ */
116
+ async compareImages(baseline, comparison, viewport, threshold, options) {
117
+ // Simulate image comparison
118
+ // In production, this would use actual image diffing libraries like pixelmatch
119
+ const diffPercentage = SecureRandom_js_1.SecureRandom.randomFloat() * 0.15; // 0-15% difference
120
+ const pixelDiffCount = Math.floor(diffPercentage * viewport.width * viewport.height);
121
+ let status = 'pass';
122
+ if (diffPercentage > threshold * 2) {
123
+ status = 'fail';
124
+ }
125
+ else if (diffPercentage > threshold) {
126
+ status = 'warning';
127
+ }
128
+ // Determine change type
129
+ const changeType = this.determineChangeType(diffPercentage);
130
+ // Find affected areas (simulate)
131
+ const affectedAreas = diffPercentage > threshold ? [
132
+ {
133
+ x: Math.floor(SecureRandom_js_1.SecureRandom.randomFloat() * viewport.width / 2),
134
+ y: Math.floor(SecureRandom_js_1.SecureRandom.randomFloat() * viewport.height / 2),
135
+ width: Math.floor(SecureRandom_js_1.SecureRandom.randomFloat() * 200) + 50,
136
+ height: Math.floor(SecureRandom_js_1.SecureRandom.randomFloat() * 200) + 50,
137
+ severity: status === 'fail' ? 'high' : 'medium'
138
+ }
139
+ ] : [];
140
+ return {
141
+ id: `comp-${Date.now()}-${SecureRandom_js_1.SecureRandom.generateId(5)}`,
142
+ baseline,
143
+ comparison,
144
+ viewport: { width: viewport.width, height: viewport.height },
145
+ result: {
146
+ status,
147
+ diffPercentage,
148
+ pixelDiffCount,
149
+ diffImage: status !== 'pass' ? `/diffs/diff-${Date.now()}.png` : undefined
150
+ },
151
+ analysis: {
152
+ changeType,
153
+ affectedAreas,
154
+ perceptualDiff: diffPercentage * 1.2 // Perceptual diff is slightly higher
155
+ },
156
+ metadata: {
157
+ timestamp: new Date().toISOString(),
158
+ browser: 'chrome',
159
+ device: viewport.name
160
+ }
161
+ };
162
+ }
163
+ /**
164
+ * Determine change type based on diff
165
+ */
166
+ determineChangeType(diffPercentage) {
167
+ if (diffPercentage === 0)
168
+ return 'none';
169
+ if (diffPercentage < 0.02)
170
+ return 'color';
171
+ if (diffPercentage < 0.05)
172
+ return 'text';
173
+ if (diffPercentage < 0.1)
174
+ return 'layout';
175
+ return 'mixed';
176
+ }
177
+ /**
178
+ * Generate insights from comparisons
179
+ */
180
+ generateInsights(comparisons) {
181
+ const insights = [];
182
+ const failedComparisons = comparisons.filter(c => c.result.status === 'fail');
183
+ if (failedComparisons.length > 0) {
184
+ insights.push({
185
+ type: 'regression',
186
+ severity: 'high',
187
+ description: `${failedComparisons.length} visual regression(s) detected with significant differences`,
188
+ affectedTests: failedComparisons.map(c => c.baseline),
189
+ suggestedAction: 'Review changes and update baselines if intentional, otherwise fix the regression'
190
+ });
191
+ }
192
+ const layoutChanges = comparisons.filter(c => c.analysis.changeType === 'layout');
193
+ if (layoutChanges.length > comparisons.length / 2) {
194
+ insights.push({
195
+ type: 'intentional-change',
196
+ severity: 'medium',
197
+ description: 'Multiple layout changes detected, possibly from a design update',
198
+ affectedTests: layoutChanges.map(c => c.baseline),
199
+ suggestedAction: 'If this is an intentional redesign, update all baselines'
200
+ });
201
+ }
202
+ const colorOnlyChanges = comparisons.filter(c => c.analysis.changeType === 'color' && c.result.status !== 'pass');
203
+ if (colorOnlyChanges.length > 0) {
204
+ insights.push({
205
+ type: 'false-positive',
206
+ severity: 'low',
207
+ description: 'Minor color variations detected, possibly from rendering differences',
208
+ affectedTests: colorOnlyChanges.map(c => c.baseline),
209
+ suggestedAction: 'Consider adjusting threshold or ignoring antialiasing differences'
210
+ });
211
+ }
212
+ return insights;
213
+ }
214
+ /**
215
+ * Generate recommendations
216
+ */
217
+ generateRecommendations(comparisons, insights) {
218
+ const recommendations = [];
219
+ const hasRegressions = insights.some(i => i.type === 'regression');
220
+ if (hasRegressions) {
221
+ recommendations.push({
222
+ id: `rec-${Date.now()}-1`,
223
+ priority: 'critical',
224
+ category: 'code-fix',
225
+ title: 'Fix visual regressions',
226
+ description: 'Critical visual regressions detected that need immediate attention',
227
+ actions: [
228
+ 'Review the diff images to understand the changes',
229
+ 'Revert unintended changes or fix CSS/layout issues',
230
+ 'Re-run visual tests to verify fixes'
231
+ ],
232
+ confidence: 0.95
233
+ });
234
+ }
235
+ const hasIntentionalChanges = insights.some(i => i.type === 'intentional-change');
236
+ if (hasIntentionalChanges) {
237
+ recommendations.push({
238
+ id: `rec-${Date.now()}-2`,
239
+ priority: 'high',
240
+ category: 'baseline-update',
241
+ title: 'Update visual baselines',
242
+ description: 'Intentional design changes detected, baselines need updating',
243
+ actions: [
244
+ 'Verify all changes are intentional and approved',
245
+ 'Update baseline images with new screenshots',
246
+ 'Document the design changes in release notes'
247
+ ],
248
+ confidence: 0.85
249
+ });
250
+ }
251
+ const hasFalsePositives = insights.some(i => i.type === 'false-positive');
252
+ if (hasFalsePositives) {
253
+ recommendations.push({
254
+ id: `rec-${Date.now()}-3`,
255
+ priority: 'medium',
256
+ category: 'threshold-adjustment',
257
+ title: 'Adjust comparison thresholds',
258
+ description: 'Multiple minor differences suggest threshold tuning needed',
259
+ actions: [
260
+ 'Increase threshold slightly for color-only changes',
261
+ 'Enable antialiasing ignore option',
262
+ 'Consider platform-specific baselines'
263
+ ],
264
+ confidence: 0.75
265
+ });
266
+ }
267
+ return recommendations;
268
+ }
269
+ }
270
+ exports.VisualTestRegressionHandler = VisualTestRegressionHandler;
271
+ //# sourceMappingURL=detect-regression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect-regression.js","sourceRoot":"","sources":["../../../../../src/mcp/tools/qe/visual/detect-regression.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Visual Testing Domain Tools
3
+ *
4
+ * This module provides domain-specific tools for visual testing including:
5
+ * - AI-powered screenshot comparison
6
+ * - Visual regression detection
7
+ * - WCAG accessibility validation
8
+ *
9
+ * @module visual
10
+ * @version 1.0.0
11
+ * @author Agentic QE Team
12
+ */
13
+ export { compareScreenshotsAI, type CompareScreenshotsParams, type ScreenshotComparison, type VisualDifference } from './compare-screenshots';
14
+ export { validateAccessibilityWCAG, type ValidateAccessibilityParams, type AccessibilityReport, type AccessibilityViolation, type ColorContrastResults, type KeyboardNavigationResults, type ScreenReaderResults, type AccessibilityRecommendation, type WCAGLevel } from './validate-accessibility';
15
+ export type { VisualTestRegressionArgs, VisualRegressionResult } from './detect-regression';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/mcp/tools/qe/visual/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EACL,oBAAoB,EACpB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EACL,yBAAyB,EACzB,KAAK,2BAA2B,EAChC,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,2BAA2B,EAChC,KAAK,SAAS,EACf,MAAM,0BAA0B,CAAA;AAGjC,YAAY,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ /**
3
+ * Visual Testing Domain Tools
4
+ *
5
+ * This module provides domain-specific tools for visual testing including:
6
+ * - AI-powered screenshot comparison
7
+ * - Visual regression detection
8
+ * - WCAG accessibility validation
9
+ *
10
+ * @module visual
11
+ * @version 1.0.0
12
+ * @author Agentic QE Team
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.validateAccessibilityWCAG = exports.compareScreenshotsAI = void 0;
16
+ // Screenshot Comparison
17
+ var compare_screenshots_1 = require("./compare-screenshots");
18
+ Object.defineProperty(exports, "compareScreenshotsAI", { enumerable: true, get: function () { return compare_screenshots_1.compareScreenshotsAI; } });
19
+ // Accessibility Validation
20
+ var validate_accessibility_1 = require("./validate-accessibility");
21
+ Object.defineProperty(exports, "validateAccessibilityWCAG", { enumerable: true, get: function () { return validate_accessibility_1.validateAccessibilityWCAG; } });
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/mcp/tools/qe/visual/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAEH,wBAAwB;AACxB,6DAK8B;AAJ5B,2HAAA,oBAAoB,OAAA;AAMtB,2BAA2B;AAC3B,mEAUiC;AAT/B,mIAAA,yBAAyB,OAAA"}
@@ -0,0 +1,276 @@
1
+ /**
2
+ * WCAG Accessibility Validation Tool
3
+ *
4
+ * Validates WCAG compliance (A, AA, AAA levels) with screenshot-based analysis.
5
+ * Generates comprehensive accessibility reports.
6
+ *
7
+ * @version 1.0.0
8
+ * @author Agentic QE Team
9
+ * @domain visual-testing
10
+ */
11
+ import { QEToolResponse } from '../shared/types.js';
12
+ /**
13
+ * WCAG compliance levels
14
+ */
15
+ export type WCAGLevel = 'A' | 'AA' | 'AAA';
16
+ /**
17
+ * Parameters for WCAG accessibility validation
18
+ */
19
+ export interface ValidateAccessibilityParams {
20
+ /** URL to validate */
21
+ url: string;
22
+ /** WCAG compliance level to validate against */
23
+ level: WCAGLevel;
24
+ /** Include screenshots in the report */
25
+ includeScreenshots: boolean;
26
+ /** Additional validation options */
27
+ options?: {
28
+ /** Specific WCAG criteria to validate (default: all) */
29
+ criteria?: string[];
30
+ /** Viewport configuration for screenshot */
31
+ viewport?: {
32
+ width: number;
33
+ height: number;
34
+ };
35
+ /** Enable color contrast analysis */
36
+ colorContrastAnalysis?: boolean;
37
+ /** Enable keyboard navigation testing */
38
+ keyboardNavigationTest?: boolean;
39
+ /** Enable screen reader compatibility check */
40
+ screenReaderCheck?: boolean;
41
+ };
42
+ }
43
+ /**
44
+ * Accessibility validation report
45
+ */
46
+ export interface AccessibilityReport {
47
+ /** Report identifier */
48
+ id: string;
49
+ /** URL validated */
50
+ url: string;
51
+ /** WCAG level tested */
52
+ wcagLevel: WCAGLevel;
53
+ /** Overall compliance status */
54
+ status: 'compliant' | 'partially-compliant' | 'non-compliant';
55
+ /** Compliance score (0-100) */
56
+ complianceScore: number;
57
+ /** Summary of violations */
58
+ summary: {
59
+ /** Total violations found */
60
+ totalViolations: number;
61
+ /** Critical violations (fail accessibility) */
62
+ critical: number;
63
+ /** Serious violations (major issues) */
64
+ serious: number;
65
+ /** Moderate violations (should fix) */
66
+ moderate: number;
67
+ /** Minor violations (nice to fix) */
68
+ minor: number;
69
+ };
70
+ /** Detailed violations */
71
+ violations: AccessibilityViolation[];
72
+ /** Color contrast analysis results */
73
+ colorContrast?: ColorContrastResults;
74
+ /** Keyboard navigation test results */
75
+ keyboardNavigation?: KeyboardNavigationResults;
76
+ /** Screen reader compatibility results */
77
+ screenReaderCompatibility?: ScreenReaderResults;
78
+ /** Generated screenshots */
79
+ screenshots?: {
80
+ /** Main page screenshot */
81
+ mainPage?: string;
82
+ /** Annotated screenshot with violation highlights */
83
+ annotated?: string;
84
+ };
85
+ /** Recommendations for remediation */
86
+ recommendations: AccessibilityRecommendation[];
87
+ /** Performance metrics */
88
+ performance: {
89
+ /** Validation time (ms) */
90
+ validationTime: number;
91
+ /** Number of elements scanned */
92
+ elementsScanned: number;
93
+ };
94
+ }
95
+ /**
96
+ * Individual accessibility violation
97
+ */
98
+ export interface AccessibilityViolation {
99
+ /** Violation ID */
100
+ id: string;
101
+ /** WCAG success criterion */
102
+ criterion: string;
103
+ /** Violation severity */
104
+ severity: 'critical' | 'serious' | 'moderate' | 'minor';
105
+ /** Violation description */
106
+ description: string;
107
+ /** Impact on users */
108
+ impact: string;
109
+ /** Affected elements */
110
+ elements: ViolationElement[];
111
+ /** How to fix */
112
+ howToFix: string;
113
+ /** WCAG reference URL */
114
+ wcagUrl: string;
115
+ /** Confidence score (0-1) */
116
+ confidence: number;
117
+ }
118
+ /**
119
+ * Element with accessibility violation
120
+ */
121
+ export interface ViolationElement {
122
+ /** HTML selector */
123
+ selector: string;
124
+ /** Element snapshot (HTML) */
125
+ html: string;
126
+ /** Location in page */
127
+ location: {
128
+ x: number;
129
+ y: number;
130
+ width: number;
131
+ height: number;
132
+ };
133
+ /** Suggested fix */
134
+ suggestedFix?: string;
135
+ }
136
+ /**
137
+ * Color contrast analysis results
138
+ */
139
+ export interface ColorContrastResults {
140
+ /** Overall status */
141
+ status: 'pass' | 'fail';
142
+ /** Elements checked */
143
+ elementsChecked: number;
144
+ /** Contrast violations */
145
+ violations: ColorContrastViolation[];
146
+ /** Minimum contrast ratio required */
147
+ minimumRatio: number;
148
+ /** Worst contrast ratio found */
149
+ worstRatio: number;
150
+ }
151
+ /**
152
+ * Color contrast violation
153
+ */
154
+ export interface ColorContrastViolation {
155
+ /** Element selector */
156
+ selector: string;
157
+ /** Foreground color */
158
+ foreground: string;
159
+ /** Background color */
160
+ background: string;
161
+ /** Contrast ratio */
162
+ ratio: number;
163
+ /** Required ratio */
164
+ required: number;
165
+ /** Element size category */
166
+ sizeCategory: 'normal-text' | 'large-text' | 'ui-component';
167
+ }
168
+ /**
169
+ * Keyboard navigation test results
170
+ */
171
+ export interface KeyboardNavigationResults {
172
+ /** Overall status */
173
+ status: 'pass' | 'fail';
174
+ /** Tab order is logical */
175
+ tabOrderLogical: boolean;
176
+ /** All interactive elements reachable */
177
+ allElementsReachable: boolean;
178
+ /** Focus indicators visible */
179
+ focusIndicatorsVisible: boolean;
180
+ /** Keyboard traps detected */
181
+ keyboardTraps: KeyboardTrap[];
182
+ /** Skip links present */
183
+ skipLinksPresent: boolean;
184
+ }
185
+ /**
186
+ * Keyboard trap detected
187
+ */
188
+ export interface KeyboardTrap {
189
+ /** Element where trap occurs */
190
+ element: string;
191
+ /** Description of trap */
192
+ description: string;
193
+ /** How to fix */
194
+ fix: string;
195
+ }
196
+ /**
197
+ * Screen reader compatibility results
198
+ */
199
+ export interface ScreenReaderResults {
200
+ /** Overall status */
201
+ status: 'pass' | 'fail';
202
+ /** ARIA labels present */
203
+ ariaLabelsPresent: boolean;
204
+ /** Alt text for images */
205
+ altTextCoverage: number;
206
+ /** Semantic HTML usage */
207
+ semanticHtmlScore: number;
208
+ /** Form labels present */
209
+ formLabelsPresent: boolean;
210
+ /** Heading structure logical */
211
+ headingStructureLogical: boolean;
212
+ /** Issues detected */
213
+ issues: ScreenReaderIssue[];
214
+ }
215
+ /**
216
+ * Screen reader issue
217
+ */
218
+ export interface ScreenReaderIssue {
219
+ /** Issue type */
220
+ type: 'missing-aria' | 'missing-alt' | 'incorrect-heading' | 'missing-label' | 'other';
221
+ /** Element affected */
222
+ element: string;
223
+ /** Description */
224
+ description: string;
225
+ /** Suggested fix */
226
+ fix: string;
227
+ }
228
+ /**
229
+ * Accessibility recommendation
230
+ */
231
+ export interface AccessibilityRecommendation {
232
+ /** Recommendation ID */
233
+ id: string;
234
+ /** Priority level */
235
+ priority: 'critical' | 'high' | 'medium' | 'low';
236
+ /** Category */
237
+ category: 'perceivable' | 'operable' | 'understandable' | 'robust';
238
+ /** Title */
239
+ title: string;
240
+ /** Description */
241
+ description: string;
242
+ /** Action items */
243
+ actions: string[];
244
+ /** Estimated effort (hours) */
245
+ estimatedEffort: number;
246
+ /** Confidence score (0-1) */
247
+ confidence: number;
248
+ }
249
+ /**
250
+ * Validate WCAG accessibility compliance
251
+ *
252
+ * @param params - Validation parameters
253
+ * @returns Accessibility validation report
254
+ *
255
+ * @example
256
+ * ```typescript
257
+ * const result = await validateAccessibilityWCAG({
258
+ * url: 'https://example.com',
259
+ * level: 'AA',
260
+ * includeScreenshots: true,
261
+ * options: {
262
+ * colorContrastAnalysis: true,
263
+ * keyboardNavigationTest: true,
264
+ * screenReaderCheck: true
265
+ * }
266
+ * });
267
+ *
268
+ * if (result.success) {
269
+ * console.log(`Compliance score: ${result.data.complianceScore}%`);
270
+ * console.log(`Total violations: ${result.data.summary.totalViolations}`);
271
+ * console.log(`Critical issues: ${result.data.summary.critical}`);
272
+ * }
273
+ * ```
274
+ */
275
+ export declare function validateAccessibilityWCAG(params: ValidateAccessibilityParams): Promise<QEToolResponse<AccessibilityReport>>;
276
+ //# sourceMappingURL=validate-accessibility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-accessibility.d.ts","sourceRoot":"","sources":["../../../../../src/mcp/tools/qe/visual/validate-accessibility.ts"],"names":[],"mappings":"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"}