agentic-qe 1.4.4 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (390) 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 +426 -5
  115. package/README.md +24 -19
  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/mcp/handlers/coordination/index.d.ts +14 -14
  121. package/dist/mcp/handlers/coordination/index.d.ts.map +1 -1
  122. package/dist/mcp/handlers/coordination/index.js +14 -14
  123. package/dist/mcp/handlers/coordination/index.js.map +1 -1
  124. package/dist/mcp/handlers/phase2/Phase2Tools.d.ts.map +1 -1
  125. package/dist/mcp/handlers/phase2/Phase2Tools.js +39 -10
  126. package/dist/mcp/handlers/phase2/Phase2Tools.js.map +1 -1
  127. package/dist/mcp/handlers/phase3/Phase3DomainTools.d.ts +63 -0
  128. package/dist/mcp/handlers/phase3/Phase3DomainTools.d.ts.map +1 -0
  129. package/dist/mcp/handlers/phase3/Phase3DomainTools.js +885 -0
  130. package/dist/mcp/handlers/phase3/Phase3DomainTools.js.map +1 -0
  131. package/dist/mcp/handlers/phase3/index.d.ts +6 -0
  132. package/dist/mcp/handlers/phase3/index.d.ts.map +1 -0
  133. package/dist/mcp/handlers/phase3/index.js +10 -0
  134. package/dist/mcp/handlers/phase3/index.js.map +1 -0
  135. package/dist/mcp/handlers/prediction/index.d.ts +10 -10
  136. package/dist/mcp/handlers/prediction/index.d.ts.map +1 -1
  137. package/dist/mcp/handlers/prediction/index.js +10 -10
  138. package/dist/mcp/handlers/prediction/index.js.map +1 -1
  139. package/dist/mcp/handlers/security/check-authz.d.ts +152 -0
  140. package/dist/mcp/handlers/security/check-authz.d.ts.map +1 -0
  141. package/dist/mcp/handlers/security/check-authz.js +434 -0
  142. package/dist/mcp/handlers/security/check-authz.js.map +1 -0
  143. package/dist/mcp/handlers/security/generate-report.d.ts +156 -0
  144. package/dist/mcp/handlers/security/generate-report.d.ts.map +1 -0
  145. package/dist/mcp/handlers/security/generate-report.js +469 -0
  146. package/dist/mcp/handlers/security/generate-report.js.map +1 -0
  147. package/dist/mcp/handlers/security/index.d.ts +80 -0
  148. package/dist/mcp/handlers/security/index.d.ts.map +1 -0
  149. package/dist/mcp/handlers/security/index.js +91 -0
  150. package/dist/mcp/handlers/security/index.js.map +1 -0
  151. package/dist/mcp/handlers/security/scan-comprehensive.d.ts +66 -0
  152. package/dist/mcp/handlers/security/scan-comprehensive.d.ts.map +1 -0
  153. package/dist/mcp/handlers/security/scan-comprehensive.js +296 -0
  154. package/dist/mcp/handlers/security/scan-comprehensive.js.map +1 -0
  155. package/dist/mcp/handlers/security/scan-dependencies.d.ts +148 -0
  156. package/dist/mcp/handlers/security/scan-dependencies.d.ts.map +1 -0
  157. package/dist/mcp/handlers/security/scan-dependencies.js +354 -0
  158. package/dist/mcp/handlers/security/scan-dependencies.js.map +1 -0
  159. package/dist/mcp/handlers/security/validate-auth.d.ts +128 -0
  160. package/dist/mcp/handlers/security/validate-auth.d.ts.map +1 -0
  161. package/dist/mcp/handlers/security/validate-auth.js +294 -0
  162. package/dist/mcp/handlers/security/validate-auth.js.map +1 -0
  163. package/dist/mcp/handlers/test/generate-integration-tests.d.ts +95 -0
  164. package/dist/mcp/handlers/test/generate-integration-tests.d.ts.map +1 -0
  165. package/dist/mcp/handlers/test/generate-integration-tests.js +286 -0
  166. package/dist/mcp/handlers/test/generate-integration-tests.js.map +1 -0
  167. package/dist/mcp/handlers/test/generate-unit-tests.d.ts +89 -0
  168. package/dist/mcp/handlers/test/generate-unit-tests.d.ts.map +1 -0
  169. package/dist/mcp/handlers/test/generate-unit-tests.js +273 -0
  170. package/dist/mcp/handlers/test/generate-unit-tests.js.map +1 -0
  171. package/dist/mcp/handlers/test/optimize-test-suite.d.ts +97 -0
  172. package/dist/mcp/handlers/test/optimize-test-suite.d.ts.map +1 -0
  173. package/dist/mcp/handlers/test/optimize-test-suite.js +282 -0
  174. package/dist/mcp/handlers/test/optimize-test-suite.js.map +1 -0
  175. package/dist/mcp/server.d.ts.map +1 -1
  176. package/dist/mcp/server.js +211 -0
  177. package/dist/mcp/server.js.map +1 -1
  178. package/dist/mcp/tools/deprecated.d.ts +1390 -0
  179. package/dist/mcp/tools/deprecated.d.ts.map +1 -0
  180. package/dist/mcp/tools/deprecated.js +859 -0
  181. package/dist/mcp/tools/deprecated.js.map +1 -0
  182. package/dist/mcp/tools/qe/api-contract/index.d.ts +138 -0
  183. package/dist/mcp/tools/qe/api-contract/index.d.ts.map +1 -0
  184. package/dist/mcp/tools/qe/api-contract/index.js +572 -0
  185. package/dist/mcp/tools/qe/api-contract/index.js.map +1 -0
  186. package/dist/mcp/tools/qe/code-quality/analyze-complexity.d.ts +110 -0
  187. package/dist/mcp/tools/qe/code-quality/analyze-complexity.d.ts.map +1 -0
  188. package/dist/mcp/tools/qe/code-quality/analyze-complexity.js +381 -0
  189. package/dist/mcp/tools/qe/code-quality/analyze-complexity.js.map +1 -0
  190. package/dist/mcp/tools/qe/code-quality/calculate-quality-metrics.d.ts +115 -0
  191. package/dist/mcp/tools/qe/code-quality/calculate-quality-metrics.d.ts.map +1 -0
  192. package/dist/mcp/tools/qe/code-quality/calculate-quality-metrics.js +461 -0
  193. package/dist/mcp/tools/qe/code-quality/calculate-quality-metrics.js.map +1 -0
  194. package/dist/mcp/tools/qe/code-quality/index.d.ts +12 -0
  195. package/dist/mcp/tools/qe/code-quality/index.d.ts.map +1 -0
  196. package/dist/mcp/tools/qe/code-quality/index.js +30 -0
  197. package/dist/mcp/tools/qe/code-quality/index.js.map +1 -0
  198. package/dist/mcp/tools/qe/coverage/analyze-with-risk-scoring.d.ts +58 -0
  199. package/dist/mcp/tools/qe/coverage/analyze-with-risk-scoring.d.ts.map +1 -0
  200. package/dist/mcp/tools/qe/coverage/analyze-with-risk-scoring.js +172 -0
  201. package/dist/mcp/tools/qe/coverage/analyze-with-risk-scoring.js.map +1 -0
  202. package/dist/mcp/tools/qe/coverage/calculate-trends.d.ts +73 -0
  203. package/dist/mcp/tools/qe/coverage/calculate-trends.d.ts.map +1 -0
  204. package/dist/mcp/tools/qe/coverage/calculate-trends.js +240 -0
  205. package/dist/mcp/tools/qe/coverage/calculate-trends.js.map +1 -0
  206. package/dist/mcp/tools/qe/coverage/detect-gaps-ml.d.ts +38 -0
  207. package/dist/mcp/tools/qe/coverage/detect-gaps-ml.d.ts.map +1 -0
  208. package/dist/mcp/tools/qe/coverage/detect-gaps-ml.js +204 -0
  209. package/dist/mcp/tools/qe/coverage/detect-gaps-ml.js.map +1 -0
  210. package/dist/mcp/tools/qe/coverage/index.d.ts +12 -0
  211. package/dist/mcp/tools/qe/coverage/index.d.ts.map +1 -0
  212. package/dist/mcp/tools/qe/coverage/index.js +23 -0
  213. package/dist/mcp/tools/qe/coverage/index.js.map +1 -0
  214. package/dist/mcp/tools/qe/coverage/recommend-tests.d.ts +46 -0
  215. package/dist/mcp/tools/qe/coverage/recommend-tests.d.ts.map +1 -0
  216. package/dist/mcp/tools/qe/coverage/recommend-tests.js +248 -0
  217. package/dist/mcp/tools/qe/coverage/recommend-tests.js.map +1 -0
  218. package/dist/mcp/tools/qe/flaky-detection/analyze-patterns.d.ts +179 -0
  219. package/dist/mcp/tools/qe/flaky-detection/analyze-patterns.d.ts.map +1 -0
  220. package/dist/mcp/tools/qe/flaky-detection/analyze-patterns.js +554 -0
  221. package/dist/mcp/tools/qe/flaky-detection/analyze-patterns.js.map +1 -0
  222. package/dist/mcp/tools/qe/flaky-detection/detect-statistical.d.ts +172 -0
  223. package/dist/mcp/tools/qe/flaky-detection/detect-statistical.d.ts.map +1 -0
  224. package/dist/mcp/tools/qe/flaky-detection/detect-statistical.js +498 -0
  225. package/dist/mcp/tools/qe/flaky-detection/detect-statistical.js.map +1 -0
  226. package/dist/mcp/tools/qe/flaky-detection/index.d.ts +35 -0
  227. package/dist/mcp/tools/qe/flaky-detection/index.d.ts.map +1 -0
  228. package/dist/mcp/tools/qe/flaky-detection/index.js +66 -0
  229. package/dist/mcp/tools/qe/flaky-detection/index.js.map +1 -0
  230. package/dist/mcp/tools/qe/flaky-detection/stabilize-auto.d.ts +159 -0
  231. package/dist/mcp/tools/qe/flaky-detection/stabilize-auto.d.ts.map +1 -0
  232. package/dist/mcp/tools/qe/flaky-detection/stabilize-auto.js +462 -0
  233. package/dist/mcp/tools/qe/flaky-detection/stabilize-auto.js.map +1 -0
  234. package/dist/mcp/tools/qe/fleet/index.d.ts +422 -0
  235. package/dist/mcp/tools/qe/fleet/index.d.ts.map +1 -0
  236. package/dist/mcp/tools/qe/fleet/index.js +652 -0
  237. package/dist/mcp/tools/qe/fleet/index.js.map +1 -0
  238. package/dist/mcp/tools/qe/performance/analyze-bottlenecks.d.ts +180 -0
  239. package/dist/mcp/tools/qe/performance/analyze-bottlenecks.d.ts.map +1 -0
  240. package/dist/mcp/tools/qe/performance/analyze-bottlenecks.js +347 -0
  241. package/dist/mcp/tools/qe/performance/analyze-bottlenecks.js.map +1 -0
  242. package/dist/mcp/tools/qe/performance/generate-report.d.ts +146 -0
  243. package/dist/mcp/tools/qe/performance/generate-report.d.ts.map +1 -0
  244. package/dist/mcp/tools/qe/performance/generate-report.js +354 -0
  245. package/dist/mcp/tools/qe/performance/generate-report.js.map +1 -0
  246. package/dist/mcp/tools/qe/performance/index.d.ts +13 -0
  247. package/dist/mcp/tools/qe/performance/index.d.ts.map +1 -0
  248. package/dist/mcp/tools/qe/performance/index.js +24 -0
  249. package/dist/mcp/tools/qe/performance/index.js.map +1 -0
  250. package/dist/mcp/tools/qe/performance/monitor-realtime.d.ts +120 -0
  251. package/dist/mcp/tools/qe/performance/monitor-realtime.d.ts.map +1 -0
  252. package/dist/mcp/tools/qe/performance/monitor-realtime.js +215 -0
  253. package/dist/mcp/tools/qe/performance/monitor-realtime.js.map +1 -0
  254. package/dist/mcp/tools/qe/performance/run-benchmark.d.ts +68 -0
  255. package/dist/mcp/tools/qe/performance/run-benchmark.d.ts.map +1 -0
  256. package/dist/mcp/tools/qe/performance/run-benchmark.js +120 -0
  257. package/dist/mcp/tools/qe/performance/run-benchmark.js.map +1 -0
  258. package/dist/mcp/tools/qe/quality-gates/assess-deployment-risk.d.ts +239 -0
  259. package/dist/mcp/tools/qe/quality-gates/assess-deployment-risk.d.ts.map +1 -0
  260. package/dist/mcp/tools/qe/quality-gates/assess-deployment-risk.js +671 -0
  261. package/dist/mcp/tools/qe/quality-gates/assess-deployment-risk.js.map +1 -0
  262. package/dist/mcp/tools/qe/quality-gates/evaluate-quality-gate.d.ts +219 -0
  263. package/dist/mcp/tools/qe/quality-gates/evaluate-quality-gate.d.ts.map +1 -0
  264. package/dist/mcp/tools/qe/quality-gates/evaluate-quality-gate.js +732 -0
  265. package/dist/mcp/tools/qe/quality-gates/evaluate-quality-gate.js.map +1 -0
  266. package/dist/mcp/tools/qe/quality-gates/generate-quality-report.d.ts +447 -0
  267. package/dist/mcp/tools/qe/quality-gates/generate-quality-report.d.ts.map +1 -0
  268. package/dist/mcp/tools/qe/quality-gates/generate-quality-report.js +551 -0
  269. package/dist/mcp/tools/qe/quality-gates/generate-quality-report.js.map +1 -0
  270. package/dist/mcp/tools/qe/quality-gates/index.d.ts +40 -0
  271. package/dist/mcp/tools/qe/quality-gates/index.d.ts.map +1 -0
  272. package/dist/mcp/tools/qe/quality-gates/index.js +56 -0
  273. package/dist/mcp/tools/qe/quality-gates/index.js.map +1 -0
  274. package/dist/mcp/tools/qe/quality-gates/validate-quality-metrics.d.ts +226 -0
  275. package/dist/mcp/tools/qe/quality-gates/validate-quality-metrics.d.ts.map +1 -0
  276. package/dist/mcp/tools/qe/quality-gates/validate-quality-metrics.js +603 -0
  277. package/dist/mcp/tools/qe/quality-gates/validate-quality-metrics.js.map +1 -0
  278. package/dist/mcp/tools/qe/regression/analyze-risk.d.ts +212 -0
  279. package/dist/mcp/tools/qe/regression/analyze-risk.d.ts.map +1 -0
  280. package/dist/mcp/tools/qe/regression/analyze-risk.js +617 -0
  281. package/dist/mcp/tools/qe/regression/analyze-risk.js.map +1 -0
  282. package/dist/mcp/tools/qe/regression/index.d.ts +36 -0
  283. package/dist/mcp/tools/qe/regression/index.d.ts.map +1 -0
  284. package/dist/mcp/tools/qe/regression/index.js +63 -0
  285. package/dist/mcp/tools/qe/regression/index.js.map +1 -0
  286. package/dist/mcp/tools/qe/regression/select-tests.d.ts +241 -0
  287. package/dist/mcp/tools/qe/regression/select-tests.d.ts.map +1 -0
  288. package/dist/mcp/tools/qe/regression/select-tests.js +601 -0
  289. package/dist/mcp/tools/qe/regression/select-tests.js.map +1 -0
  290. package/dist/mcp/tools/qe/requirements/generate-bdd-scenarios.d.ts +134 -0
  291. package/dist/mcp/tools/qe/requirements/generate-bdd-scenarios.d.ts.map +1 -0
  292. package/dist/mcp/tools/qe/requirements/generate-bdd-scenarios.js +737 -0
  293. package/dist/mcp/tools/qe/requirements/generate-bdd-scenarios.js.map +1 -0
  294. package/dist/mcp/tools/qe/requirements/index.d.ts +40 -0
  295. package/dist/mcp/tools/qe/requirements/index.d.ts.map +1 -0
  296. package/dist/mcp/tools/qe/requirements/index.js +84 -0
  297. package/dist/mcp/tools/qe/requirements/index.js.map +1 -0
  298. package/dist/mcp/tools/qe/requirements/validate-requirements.d.ts +196 -0
  299. package/dist/mcp/tools/qe/requirements/validate-requirements.d.ts.map +1 -0
  300. package/dist/mcp/tools/qe/requirements/validate-requirements.js +740 -0
  301. package/dist/mcp/tools/qe/requirements/validate-requirements.js.map +1 -0
  302. package/dist/mcp/tools/qe/security/detect-vulnerabilities.d.ts +300 -0
  303. package/dist/mcp/tools/qe/security/detect-vulnerabilities.d.ts.map +1 -0
  304. package/dist/mcp/tools/qe/security/detect-vulnerabilities.js +492 -0
  305. package/dist/mcp/tools/qe/security/detect-vulnerabilities.js.map +1 -0
  306. package/dist/mcp/tools/qe/security/index.d.ts +34 -0
  307. package/dist/mcp/tools/qe/security/index.d.ts.map +1 -0
  308. package/dist/mcp/tools/qe/security/index.js +44 -0
  309. package/dist/mcp/tools/qe/security/index.js.map +1 -0
  310. package/dist/mcp/tools/qe/security/scan-comprehensive.d.ts +240 -0
  311. package/dist/mcp/tools/qe/security/scan-comprehensive.d.ts.map +1 -0
  312. package/dist/mcp/tools/qe/security/scan-comprehensive.js +557 -0
  313. package/dist/mcp/tools/qe/security/scan-comprehensive.js.map +1 -0
  314. package/dist/mcp/tools/qe/security/validate-compliance.d.ts +299 -0
  315. package/dist/mcp/tools/qe/security/validate-compliance.d.ts.map +1 -0
  316. package/dist/mcp/tools/qe/security/validate-compliance.js +517 -0
  317. package/dist/mcp/tools/qe/security/validate-compliance.js.map +1 -0
  318. package/dist/mcp/tools/qe/shared/types.d.ts +840 -0
  319. package/dist/mcp/tools/qe/shared/types.d.ts.map +1 -0
  320. package/dist/mcp/tools/qe/shared/types.js +13 -0
  321. package/dist/mcp/tools/qe/shared/types.js.map +1 -0
  322. package/dist/mcp/tools/qe/test-data/analyze-schema.d.ts +264 -0
  323. package/dist/mcp/tools/qe/test-data/analyze-schema.d.ts.map +1 -0
  324. package/dist/mcp/tools/qe/test-data/analyze-schema.js +553 -0
  325. package/dist/mcp/tools/qe/test-data/analyze-schema.js.map +1 -0
  326. package/dist/mcp/tools/qe/test-data/generate-test-data.d.ts +167 -0
  327. package/dist/mcp/tools/qe/test-data/generate-test-data.d.ts.map +1 -0
  328. package/dist/mcp/tools/qe/test-data/generate-test-data.js +336 -0
  329. package/dist/mcp/tools/qe/test-data/generate-test-data.js.map +1 -0
  330. package/dist/mcp/tools/qe/test-data/index.d.ts +44 -0
  331. package/dist/mcp/tools/qe/test-data/index.d.ts.map +1 -0
  332. package/dist/mcp/tools/qe/test-data/index.js +90 -0
  333. package/dist/mcp/tools/qe/test-data/index.js.map +1 -0
  334. package/dist/mcp/tools/qe/test-data/mask-sensitive-data.d.ts +165 -0
  335. package/dist/mcp/tools/qe/test-data/mask-sensitive-data.d.ts.map +1 -0
  336. package/dist/mcp/tools/qe/test-data/mask-sensitive-data.js +342 -0
  337. package/dist/mcp/tools/qe/test-data/mask-sensitive-data.js.map +1 -0
  338. package/dist/mcp/tools/qe/test-generation/analyze-test-quality.d.ts +144 -0
  339. package/dist/mcp/tools/qe/test-generation/analyze-test-quality.d.ts.map +1 -0
  340. package/dist/mcp/tools/qe/test-generation/analyze-test-quality.js +432 -0
  341. package/dist/mcp/tools/qe/test-generation/analyze-test-quality.js.map +1 -0
  342. package/dist/mcp/tools/qe/test-generation/generate-integration-tests.d.ts +98 -0
  343. package/dist/mcp/tools/qe/test-generation/generate-integration-tests.d.ts.map +1 -0
  344. package/dist/mcp/tools/qe/test-generation/generate-integration-tests.js +459 -0
  345. package/dist/mcp/tools/qe/test-generation/generate-integration-tests.js.map +1 -0
  346. package/dist/mcp/tools/qe/test-generation/generate-unit-tests.d.ts +83 -0
  347. package/dist/mcp/tools/qe/test-generation/generate-unit-tests.d.ts.map +1 -0
  348. package/dist/mcp/tools/qe/test-generation/generate-unit-tests.js +483 -0
  349. package/dist/mcp/tools/qe/test-generation/generate-unit-tests.js.map +1 -0
  350. package/dist/mcp/tools/qe/test-generation/index.d.ts +56 -0
  351. package/dist/mcp/tools/qe/test-generation/index.d.ts.map +1 -0
  352. package/dist/mcp/tools/qe/test-generation/index.js +97 -0
  353. package/dist/mcp/tools/qe/test-generation/index.js.map +1 -0
  354. package/dist/mcp/tools/qe/test-generation/optimize-test-suite.d.ts +124 -0
  355. package/dist/mcp/tools/qe/test-generation/optimize-test-suite.d.ts.map +1 -0
  356. package/dist/mcp/tools/qe/test-generation/optimize-test-suite.js +362 -0
  357. package/dist/mcp/tools/qe/test-generation/optimize-test-suite.js.map +1 -0
  358. package/dist/mcp/tools/qe/visual/compare-screenshots.d.ts +119 -0
  359. package/dist/mcp/tools/qe/visual/compare-screenshots.d.ts.map +1 -0
  360. package/dist/mcp/tools/qe/visual/compare-screenshots.js +280 -0
  361. package/dist/mcp/tools/qe/visual/compare-screenshots.js.map +1 -0
  362. package/dist/mcp/tools/qe/visual/detect-regression.d.ts +138 -0
  363. package/dist/mcp/tools/qe/visual/detect-regression.d.ts.map +1 -0
  364. package/dist/mcp/tools/qe/visual/detect-regression.js +271 -0
  365. package/dist/mcp/tools/qe/visual/detect-regression.js.map +1 -0
  366. package/dist/mcp/tools/qe/visual/index.d.ts +16 -0
  367. package/dist/mcp/tools/qe/visual/index.d.ts.map +1 -0
  368. package/dist/mcp/tools/qe/visual/index.js +22 -0
  369. package/dist/mcp/tools/qe/visual/index.js.map +1 -0
  370. package/dist/mcp/tools/qe/visual/validate-accessibility.d.ts +276 -0
  371. package/dist/mcp/tools/qe/visual/validate-accessibility.d.ts.map +1 -0
  372. package/dist/mcp/tools/qe/visual/validate-accessibility.js +413 -0
  373. package/dist/mcp/tools/qe/visual/validate-accessibility.js.map +1 -0
  374. package/dist/mcp/tools.d.ts +44 -0
  375. package/dist/mcp/tools.d.ts.map +1 -1
  376. package/dist/mcp/tools.js +1980 -1
  377. package/dist/mcp/tools.js.map +1 -1
  378. package/package.json +2 -2
  379. package/dist/learning/__mocks__/LearningEngine.d.ts +0 -39
  380. package/dist/learning/__mocks__/LearningEngine.d.ts.map +0 -1
  381. package/dist/learning/__mocks__/LearningEngine.js +0 -116
  382. package/dist/learning/__mocks__/LearningEngine.js.map +0 -1
  383. package/dist/utils/__mocks__/Database.d.ts +0 -85
  384. package/dist/utils/__mocks__/Database.d.ts.map +0 -1
  385. package/dist/utils/__mocks__/Database.js +0 -125
  386. package/dist/utils/__mocks__/Database.js.map +0 -1
  387. package/dist/utils/__mocks__/Logger.d.ts +0 -26
  388. package/dist/utils/__mocks__/Logger.d.ts.map +0 -1
  389. package/dist/utils/__mocks__/Logger.js +0 -44
  390. package/dist/utils/__mocks__/Logger.js.map +0 -1
@@ -0,0 +1,432 @@
1
+ "use strict";
2
+ /**
3
+ * Analyze Test Quality Tool
4
+ * Comprehensive test quality analysis with metrics and recommendations
5
+ *
6
+ * @module tools/qe/test-generation/analyze-test-quality
7
+ * @version 1.0.0
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.analyzeTestQuality = analyzeTestQuality;
11
+ const SecureRandom_js_1 = require("../../../../utils/SecureRandom.js");
12
+ /**
13
+ * Analyze test pattern usage
14
+ */
15
+ function analyzePatterns(tests) {
16
+ const patternCounts = new Map();
17
+ tests.forEach(test => {
18
+ const patterns = detectPatternInTest(test);
19
+ patterns.forEach(pattern => {
20
+ patternCounts.set(pattern, (patternCounts.get(pattern) || 0) + 1);
21
+ });
22
+ });
23
+ return Array.from(patternCounts.entries()).map(([pattern, count]) => ({
24
+ pattern,
25
+ count,
26
+ percentage: (count / tests.length) * 100
27
+ }));
28
+ }
29
+ /**
30
+ * Detect pattern in test code
31
+ */
32
+ function detectPatternInTest(test) {
33
+ const patterns = [];
34
+ const code = test.code.toLowerCase();
35
+ if (code.includes('arrange') || code.includes('act') || code.includes('assert')) {
36
+ patterns.push('arrange-act-assert');
37
+ }
38
+ if (code.includes('given') || code.includes('when') || code.includes('then')) {
39
+ patterns.push('given-when-then');
40
+ }
41
+ if (code.includes('builder') || code.includes('withbuilder')) {
42
+ patterns.push('builder');
43
+ }
44
+ if (code.includes('mother') || code.includes('fixture')) {
45
+ patterns.push('object-mother');
46
+ }
47
+ // Default to four-phase if no pattern detected
48
+ if (patterns.length === 0) {
49
+ patterns.push('four-phase-test');
50
+ }
51
+ return patterns;
52
+ }
53
+ /**
54
+ * Detect anti-patterns
55
+ */
56
+ function detectAntiPatterns(tests) {
57
+ const antiPatterns = [];
58
+ // Detect missing assertions
59
+ const noAssertions = tests.filter(t => !t.assertions || t.assertions === 0);
60
+ if (noAssertions.length > 0) {
61
+ antiPatterns.push({
62
+ type: 'missing-assertions',
63
+ severity: 'critical',
64
+ affectedTests: noAssertions.map(t => t.id),
65
+ description: 'Tests without assertions provide no validation',
66
+ recommendation: 'Add expect() or assert() statements to validate behavior'
67
+ });
68
+ }
69
+ // Detect overly long tests (>100 lines)
70
+ const longTests = tests.filter(t => t.code.split('\n').length > 100);
71
+ if (longTests.length > 0) {
72
+ antiPatterns.push({
73
+ type: 'overly-long-test',
74
+ severity: 'medium',
75
+ affectedTests: longTests.map(t => t.id),
76
+ description: 'Tests longer than 100 lines are hard to maintain',
77
+ recommendation: 'Break into smaller, focused tests'
78
+ });
79
+ }
80
+ // Detect slow tests (>5s)
81
+ const slowTests = tests.filter(t => t.duration && t.duration > 5000);
82
+ if (slowTests.length > 0) {
83
+ antiPatterns.push({
84
+ type: 'slow-test',
85
+ severity: 'high',
86
+ affectedTests: slowTests.map(t => t.id),
87
+ description: 'Tests taking >5s slow down development',
88
+ recommendation: 'Use mocks/stubs or optimize setup/teardown'
89
+ });
90
+ }
91
+ // Detect multiple assertions (>10)
92
+ const manyAssertions = tests.filter(t => t.assertions && t.assertions > 10);
93
+ if (manyAssertions.length > 0) {
94
+ antiPatterns.push({
95
+ type: 'too-many-assertions',
96
+ severity: 'low',
97
+ affectedTests: manyAssertions.map(t => t.id),
98
+ description: 'Tests with >10 assertions test too many things',
99
+ recommendation: 'Split into multiple focused tests'
100
+ });
101
+ }
102
+ // Detect unclear test names
103
+ const unclearNames = tests.filter(t => t.name.length < 10 || !t.name.includes('_') && !t.name.includes(' '));
104
+ if (unclearNames.length > 0) {
105
+ antiPatterns.push({
106
+ type: 'unclear-test-name',
107
+ severity: 'medium',
108
+ affectedTests: unclearNames.map(t => t.id),
109
+ description: 'Test names should clearly describe what is being tested',
110
+ recommendation: 'Use descriptive names like "test_user_registration_with_valid_email"'
111
+ });
112
+ }
113
+ return antiPatterns;
114
+ }
115
+ /**
116
+ * Analyze maintainability
117
+ */
118
+ function analyzeMaintainability(tests) {
119
+ const issues = [];
120
+ // Check for test duplication
121
+ const duplicateCode = findDuplicateCode(tests);
122
+ if (duplicateCode.length > 0) {
123
+ issues.push({
124
+ type: 'code-duplication',
125
+ affectedTests: duplicateCode,
126
+ impact: 70,
127
+ recommendation: 'Extract common setup into helper functions or beforeEach hooks'
128
+ });
129
+ }
130
+ // Check for magic numbers
131
+ const magicNumbers = tests.filter(t => containsMagicNumbers(t.code));
132
+ if (magicNumbers.length > 0) {
133
+ issues.push({
134
+ type: 'magic-numbers',
135
+ affectedTests: magicNumbers.map(t => t.id),
136
+ impact: 40,
137
+ recommendation: 'Replace magic numbers with named constants'
138
+ });
139
+ }
140
+ // Check for deep nesting
141
+ const deepNesting = tests.filter(t => hasDeepNesting(t.code));
142
+ if (deepNesting.length > 0) {
143
+ issues.push({
144
+ type: 'deep-nesting',
145
+ affectedTests: deepNesting.map(t => t.id),
146
+ impact: 60,
147
+ recommendation: 'Reduce nesting by extracting helper functions'
148
+ });
149
+ }
150
+ return issues;
151
+ }
152
+ /**
153
+ * Find duplicate code patterns
154
+ */
155
+ function findDuplicateCode(tests) {
156
+ const duplicates = [];
157
+ const codeMap = new Map();
158
+ tests.forEach(test => {
159
+ // Extract setup code (first 5 lines)
160
+ const setupCode = test.code.split('\n').slice(0, 5).join('\n');
161
+ if (!codeMap.has(setupCode)) {
162
+ codeMap.set(setupCode, []);
163
+ }
164
+ codeMap.get(setupCode).push(test.id);
165
+ });
166
+ codeMap.forEach((testIds, code) => {
167
+ if (testIds.length > 3 && code.trim().length > 50) {
168
+ duplicates.push(...testIds);
169
+ }
170
+ });
171
+ return Array.from(new Set(duplicates));
172
+ }
173
+ /**
174
+ * Check if code contains magic numbers
175
+ */
176
+ function containsMagicNumbers(code) {
177
+ const numberRegex = /\b\d{2,}\b/g;
178
+ const matches = code.match(numberRegex) || [];
179
+ return matches.length > 3;
180
+ }
181
+ /**
182
+ * Check if code has deep nesting
183
+ */
184
+ function hasDeepNesting(code) {
185
+ const lines = code.split('\n');
186
+ let maxIndent = 0;
187
+ lines.forEach(line => {
188
+ const indent = line.search(/\S/);
189
+ if (indent > maxIndent)
190
+ maxIndent = indent;
191
+ });
192
+ return maxIndent > 16; // More than 4 levels (4 spaces per level)
193
+ }
194
+ /**
195
+ * Perform detailed test analysis
196
+ */
197
+ function performDetailedAnalysis(tests) {
198
+ return tests.map(test => {
199
+ const scores = {
200
+ readability: calculateReadability(test),
201
+ assertions: calculateAssertionQuality(test),
202
+ independence: calculateIndependence(test),
203
+ performance: calculatePerformance(test)
204
+ };
205
+ const issues = [];
206
+ const suggestions = [];
207
+ if (scores.readability < 60) {
208
+ issues.push('Low readability score');
209
+ suggestions.push('Improve test structure and naming');
210
+ }
211
+ if (scores.assertions < 50) {
212
+ issues.push('Insufficient or poor assertions');
213
+ suggestions.push('Add more specific assertions');
214
+ }
215
+ if (scores.independence < 70) {
216
+ issues.push('Test may depend on other tests');
217
+ suggestions.push('Ensure test can run in isolation');
218
+ }
219
+ if (scores.performance < 60) {
220
+ issues.push('Test execution is slow');
221
+ suggestions.push('Optimize setup or use mocks');
222
+ }
223
+ return {
224
+ testId: test.id,
225
+ scores,
226
+ issues,
227
+ suggestions
228
+ };
229
+ });
230
+ }
231
+ /**
232
+ * Calculate readability score
233
+ */
234
+ function calculateReadability(test) {
235
+ let score = 100;
236
+ // Penalty for long lines
237
+ const lines = test.code.split('\n');
238
+ const longLines = lines.filter(line => line.length > 120).length;
239
+ score -= longLines * 5;
240
+ // Penalty for unclear naming
241
+ if (test.name.length < 10)
242
+ score -= 20;
243
+ // Bonus for comments
244
+ const comments = (test.code.match(/\/\//g) || []).length;
245
+ score += Math.min(comments * 5, 20);
246
+ return Math.max(0, Math.min(score, 100));
247
+ }
248
+ /**
249
+ * Calculate assertion quality score
250
+ */
251
+ function calculateAssertionQuality(test) {
252
+ const assertionCount = test.assertions || 0;
253
+ if (assertionCount === 0)
254
+ return 0;
255
+ if (assertionCount > 10)
256
+ return 60; // Too many
257
+ // Optimal: 1-5 assertions
258
+ if (assertionCount >= 1 && assertionCount <= 5)
259
+ return 100;
260
+ if (assertionCount <= 8)
261
+ return 80;
262
+ return 70;
263
+ }
264
+ /**
265
+ * Calculate independence score
266
+ */
267
+ function calculateIndependence(test) {
268
+ let score = 100;
269
+ // Check for shared state indicators
270
+ if (test.code.includes('global') || test.code.includes('window.'))
271
+ score -= 30;
272
+ if (test.code.includes('beforeAll') && !test.code.includes('afterAll'))
273
+ score -= 20;
274
+ return Math.max(0, score);
275
+ }
276
+ /**
277
+ * Calculate performance score
278
+ */
279
+ function calculatePerformance(test) {
280
+ const duration = test.duration || 100;
281
+ if (duration < 100)
282
+ return 100;
283
+ if (duration < 500)
284
+ return 90;
285
+ if (duration < 1000)
286
+ return 75;
287
+ if (duration < 3000)
288
+ return 50;
289
+ if (duration < 5000)
290
+ return 30;
291
+ return 10;
292
+ }
293
+ /**
294
+ * Calculate overall quality metrics
295
+ */
296
+ function calculateQualityMetrics(tests, coverageData) {
297
+ const coverage = coverageData
298
+ ? (coverageData.lineCoverage + coverageData.branchCoverage + coverageData.functionCoverage) / 3
299
+ : 80;
300
+ const assertionQuality = tests.reduce((sum, t) => sum + calculateAssertionQuality(t), 0) / tests.length;
301
+ const independence = tests.reduce((sum, t) => sum + calculateIndependence(t), 0) / tests.length;
302
+ const readability = tests.reduce((sum, t) => sum + calculateReadability(t), 0) / tests.length;
303
+ const performance = tests.reduce((sum, t) => sum + calculatePerformance(t), 0) / tests.length;
304
+ // Maintainability is inverse of issues
305
+ const maintainability = 100 - (findDuplicateCode(tests).length / tests.length * 50);
306
+ return {
307
+ coverage,
308
+ assertionQuality,
309
+ independence,
310
+ readability,
311
+ maintainability,
312
+ performance
313
+ };
314
+ }
315
+ /**
316
+ * Generate recommendations
317
+ */
318
+ function generateRecommendations(metrics, antiPatterns, maintainability) {
319
+ const recommendations = [];
320
+ if (metrics.coverage < 80) {
321
+ recommendations.push(`Increase test coverage from ${metrics.coverage.toFixed(1)}% to at least 80%`);
322
+ }
323
+ if (metrics.assertionQuality < 70) {
324
+ recommendations.push('Improve assertion quality - add more specific and meaningful assertions');
325
+ }
326
+ if (metrics.independence < 70) {
327
+ recommendations.push('Reduce test interdependence - ensure tests can run in isolation');
328
+ }
329
+ if (metrics.readability < 70) {
330
+ recommendations.push('Improve test readability - use descriptive names and clear structure');
331
+ }
332
+ if (metrics.performance < 60) {
333
+ recommendations.push('Optimize test performance - use mocks and avoid unnecessary setup');
334
+ }
335
+ if (antiPatterns.length > 0) {
336
+ recommendations.push(`Fix ${antiPatterns.length} anti-patterns detected in tests`);
337
+ }
338
+ if (maintainability && maintainability.length > 0) {
339
+ recommendations.push(`Address ${maintainability.length} maintainability issues`);
340
+ }
341
+ return recommendations;
342
+ }
343
+ /**
344
+ * Analyze test quality
345
+ *
346
+ * @param params - Test quality analysis parameters
347
+ * @returns Tool response with quality metrics and recommendations
348
+ */
349
+ async function analyzeTestQuality(params) {
350
+ const startTime = Date.now();
351
+ const requestId = `test-quality-${Date.now()}-${SecureRandom_js_1.SecureRandom.generateId(8)}`;
352
+ try {
353
+ // Analyze patterns
354
+ const patterns = analyzePatterns(params.tests);
355
+ // Detect anti-patterns if requested
356
+ const antiPatterns = params.checkAntiPatterns
357
+ ? detectAntiPatterns(params.tests)
358
+ : [];
359
+ // Analyze maintainability if requested
360
+ const maintainability = params.analyzeMaintainability
361
+ ? analyzeMaintainability(params.tests)
362
+ : undefined;
363
+ // Perform detailed analysis if requested
364
+ const detailedAnalysis = params.detailedAnalysis
365
+ ? performDetailedAnalysis(params.tests)
366
+ : undefined;
367
+ // Calculate quality metrics
368
+ const metrics = calculateQualityMetrics(params.tests, params.coverageData);
369
+ // Calculate overall quality score
370
+ const overallQuality = (metrics.coverage +
371
+ metrics.assertionQuality +
372
+ metrics.independence +
373
+ metrics.readability +
374
+ metrics.maintainability +
375
+ metrics.performance) / 6;
376
+ // Calculate summary statistics
377
+ const summary = {
378
+ totalTests: params.tests.length,
379
+ passedTests: params.tests.filter(t => t.status === 'passed').length,
380
+ failedTests: params.tests.filter(t => t.status === 'failed').length,
381
+ averageDuration: params.tests.reduce((sum, t) => sum + (t.duration || 0), 0) / params.tests.length,
382
+ totalAssertions: params.tests.reduce((sum, t) => sum + (t.assertions || 0), 0),
383
+ testsWithIssues: detailedAnalysis
384
+ ? detailedAnalysis.filter(a => a.issues.length > 0).length
385
+ : 0
386
+ };
387
+ // Generate recommendations
388
+ const recommendations = generateRecommendations(metrics, antiPatterns, maintainability);
389
+ const executionTime = Date.now() - startTime;
390
+ const metadata = {
391
+ requestId,
392
+ timestamp: new Date().toISOString(),
393
+ executionTime,
394
+ agent: 'test-quality-analyzer',
395
+ version: '1.0.0'
396
+ };
397
+ return {
398
+ success: true,
399
+ data: {
400
+ overallQuality,
401
+ metrics,
402
+ patterns,
403
+ antiPatterns,
404
+ maintainability,
405
+ detailedAnalysis,
406
+ summary,
407
+ recommendations
408
+ },
409
+ metadata
410
+ };
411
+ }
412
+ catch (error) {
413
+ const qeError = {
414
+ code: 'TEST_QUALITY_ANALYSIS_FAILED',
415
+ message: error instanceof Error ? error.message : 'Unknown error during test quality analysis',
416
+ details: { params },
417
+ stack: error instanceof Error ? error.stack : undefined
418
+ };
419
+ return {
420
+ success: false,
421
+ error: qeError,
422
+ metadata: {
423
+ requestId,
424
+ timestamp: new Date().toISOString(),
425
+ executionTime: Date.now() - startTime,
426
+ agent: 'test-quality-analyzer',
427
+ version: '1.0.0'
428
+ }
429
+ };
430
+ }
431
+ }
432
+ //# sourceMappingURL=analyze-test-quality.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze-test-quality.js","sourceRoot":"","sources":["../../../../../src/mcp/tools/qe/test-generation/analyze-test-quality.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAinBH,gDAiGC;AAzsBD,uEAAiE;AA6KjE;;GAEG;AACH,SAAS,eAAe,CAAC,KAAyB;IAKhD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAuB,CAAC;IAErD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACnB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC3C,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACzB,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACpE,OAAO;QACP,KAAK;QACL,UAAU,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG;KACzC,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,IAAsB;IACjD,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IAErC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChF,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7E,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAC7D,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACxD,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACjC,CAAC;IAED,+CAA+C;IAC/C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,KAAyB;IAOnD,MAAM,YAAY,GAMb,EAAE,CAAC;IAER,4BAA4B;IAC5B,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC;IAC5E,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,YAAY,CAAC,IAAI,CAAC;YAChB,IAAI,EAAE,oBAAoB;YAC1B,QAAQ,EAAE,UAAU;YACpB,aAAa,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1C,WAAW,EAAE,gDAAgD;YAC7D,cAAc,EAAE,0DAA0D;SAC3E,CAAC,CAAC;IACL,CAAC;IAED,wCAAwC;IACxC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;IACrE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,YAAY,CAAC,IAAI,CAAC;YAChB,IAAI,EAAE,kBAAkB;YACxB,QAAQ,EAAE,QAAQ;YAClB,aAAa,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,WAAW,EAAE,kDAAkD;YAC/D,cAAc,EAAE,mCAAmC;SACpD,CAAC,CAAC;IACL,CAAC;IAED,0BAA0B;IAC1B,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IACrE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,YAAY,CAAC,IAAI,CAAC;YAChB,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE,MAAM;YAChB,aAAa,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,WAAW,EAAE,wCAAwC;YACrD,cAAc,EAAE,4CAA4C;SAC7D,CAAC,CAAC;IACL,CAAC;IAED,mCAAmC;IACnC,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;IAC5E,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,YAAY,CAAC,IAAI,CAAC;YAChB,IAAI,EAAE,qBAAqB;YAC3B,QAAQ,EAAE,KAAK;YACf,aAAa,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5C,WAAW,EAAE,gDAAgD;YAC7D,cAAc,EAAE,mCAAmC;SACpD,CAAC,CAAC;IACL,CAAC;IAED,4BAA4B;IAC5B,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACpC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CACrE,CAAC;IACF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,YAAY,CAAC,IAAI,CAAC;YAChB,IAAI,EAAE,mBAAmB;YACzB,QAAQ,EAAE,QAAQ;YAClB,aAAa,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1C,WAAW,EAAE,yDAAyD;YACtE,cAAc,EAAE,sEAAsE;SACvF,CAAC,CAAC;IACL,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAAC,KAAyB;IAMvD,MAAM,MAAM,GAKP,EAAE,CAAC;IAER,6BAA6B;IAC7B,MAAM,aAAa,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC/C,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,kBAAkB;YACxB,aAAa,EAAE,aAAa;YAC5B,MAAM,EAAE,EAAE;YACV,cAAc,EAAE,gEAAgE;SACjF,CAAC,CAAC;IACL,CAAC;IAED,0BAA0B;IAC1B,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACrE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,eAAe;YACrB,aAAa,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1C,MAAM,EAAE,EAAE;YACV,cAAc,EAAE,4CAA4C;SAC7D,CAAC,CAAC;IACL,CAAC;IAED,yBAAyB;IACzB,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,cAAc;YACpB,aAAa,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,MAAM,EAAE,EAAE;YACV,cAAc,EAAE,+CAA+C;SAChE,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,KAAyB;IAClD,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;IAE5C,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACnB,qCAAqC;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;QAChC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAClD,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,IAAY;IACxC,MAAM,WAAW,GAAG,aAAa,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAC9C,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,MAAM,GAAG,SAAS;YAAE,SAAS,GAAG,MAAM,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,OAAO,SAAS,GAAG,EAAE,CAAC,CAAC,0CAA0C;AACnE,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAAC,KAAyB;IAWxD,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACtB,MAAM,MAAM,GAAG;YACb,WAAW,EAAE,oBAAoB,CAAC,IAAI,CAAC;YACvC,UAAU,EAAE,yBAAyB,CAAC,IAAI,CAAC;YAC3C,YAAY,EAAE,qBAAqB,CAAC,IAAI,CAAC;YACzC,WAAW,EAAE,oBAAoB,CAAC,IAAI,CAAC;SACxC,CAAC;QAEF,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAa,EAAE,CAAC;QAEjC,IAAI,MAAM,CAAC,WAAW,GAAG,EAAE,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACrC,WAAW,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,MAAM,CAAC,UAAU,GAAG,EAAE,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YAC/C,WAAW,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,MAAM,CAAC,YAAY,GAAG,EAAE,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YAC9C,WAAW,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,MAAM,CAAC,WAAW,GAAG,EAAE,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACtC,WAAW,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAClD,CAAC;QAED,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,MAAM;YACN,MAAM;YACN,WAAW;SACZ,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,IAAsB;IAClD,IAAI,KAAK,GAAG,GAAG,CAAC;IAEhB,yBAAyB;IACzB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC;IACjE,KAAK,IAAI,SAAS,GAAG,CAAC,CAAC;IAEvB,6BAA6B;IAC7B,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE;QAAE,KAAK,IAAI,EAAE,CAAC;IAEvC,qBAAqB;IACrB,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IACzD,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IAEpC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB,CAAC,IAAsB;IACvD,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;IAE5C,IAAI,cAAc,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACnC,IAAI,cAAc,GAAG,EAAE;QAAE,OAAO,EAAE,CAAC,CAAC,WAAW;IAE/C,0BAA0B;IAC1B,IAAI,cAAc,IAAI,CAAC,IAAI,cAAc,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC;IAC3D,IAAI,cAAc,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAEnC,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,IAAsB;IACnD,IAAI,KAAK,GAAG,GAAG,CAAC;IAEhB,oCAAoC;IACpC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,KAAK,IAAI,EAAE,CAAC;IAC/E,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,KAAK,IAAI,EAAE,CAAC;IAEpF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,IAAsB;IAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC;IAEtC,IAAI,QAAQ,GAAG,GAAG;QAAE,OAAO,GAAG,CAAC;IAC/B,IAAI,QAAQ,GAAG,GAAG;QAAE,OAAO,EAAE,CAAC;IAC9B,IAAI,QAAQ,GAAG,IAAI;QAAE,OAAO,EAAE,CAAC;IAC/B,IAAI,QAAQ,GAAG,IAAI;QAAE,OAAO,EAAE,CAAC;IAC/B,IAAI,QAAQ,GAAG,IAAI;QAAE,OAAO,EAAE,CAAC;IAE/B,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAC9B,KAAyB,EACzB,YAAyF;IASzF,MAAM,QAAQ,GAAG,YAAY;QAC3B,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,GAAG,YAAY,CAAC,cAAc,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC;QAC/F,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,yBAAyB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IACxG,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IAChG,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IAC9F,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IAE9F,uCAAuC;IACvC,MAAM,eAAe,GAAG,GAAG,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAEpF,OAAO;QACL,QAAQ;QACR,gBAAgB;QAChB,YAAY;QACZ,WAAW;QACX,eAAe;QACf,WAAW;KACZ,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAC9B,OAAY,EACZ,YAAmB,EACnB,eAAuB;IAEvB,MAAM,eAAe,GAAa,EAAE,CAAC;IAErC,IAAI,OAAO,CAAC,QAAQ,GAAG,EAAE,EAAE,CAAC;QAC1B,eAAe,CAAC,IAAI,CAAC,+BAA+B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IACtG,CAAC;IAED,IAAI,OAAO,CAAC,gBAAgB,GAAG,EAAE,EAAE,CAAC;QAClC,eAAe,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;IAClG,CAAC;IAED,IAAI,OAAO,CAAC,YAAY,GAAG,EAAE,EAAE,CAAC;QAC9B,eAAe,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;IAC1F,CAAC;IAED,IAAI,OAAO,CAAC,WAAW,GAAG,EAAE,EAAE,CAAC;QAC7B,eAAe,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;IAC/F,CAAC;IAED,IAAI,OAAO,CAAC,WAAW,GAAG,EAAE,EAAE,CAAC;QAC7B,eAAe,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;IAC5F,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,eAAe,CAAC,IAAI,CAAC,OAAO,YAAY,CAAC,MAAM,kCAAkC,CAAC,CAAC;IACrF,CAAC;IAED,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,eAAe,CAAC,IAAI,CAAC,WAAW,eAAe,CAAC,MAAM,yBAAyB,CAAC,CAAC;IACnF,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,kBAAkB,CACtC,MAAiC;IAEjC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAG,gBAAgB,IAAI,CAAC,GAAG,EAAE,IAAI,8BAAY,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAE7E,IAAI,CAAC;QACH,mBAAmB;QACnB,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE/C,oCAAoC;QACpC,MAAM,YAAY,GAAG,MAAM,CAAC,iBAAiB;YAC3C,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC;YAClC,CAAC,CAAC,EAAE,CAAC;QAEP,uCAAuC;QACvC,MAAM,eAAe,GAAG,MAAM,CAAC,sBAAsB;YACnD,CAAC,CAAC,sBAAsB,CAAC,MAAM,CAAC,KAAK,CAAC;YACtC,CAAC,CAAC,SAAS,CAAC;QAEd,yCAAyC;QACzC,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB;YAC9C,CAAC,CAAC,uBAAuB,CAAC,MAAM,CAAC,KAAK,CAAC;YACvC,CAAC,CAAC,SAAS,CAAC;QAEd,4BAA4B;QAC5B,MAAM,OAAO,GAAG,uBAAuB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QAE3E,kCAAkC;QAClC,MAAM,cAAc,GAClB,CAAC,OAAO,CAAC,QAAQ;YAChB,OAAO,CAAC,gBAAgB;YACxB,OAAO,CAAC,YAAY;YACpB,OAAO,CAAC,WAAW;YACnB,OAAO,CAAC,eAAe;YACvB,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAE5B,+BAA+B;QAC/B,MAAM,OAAO,GAAG;YACd,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;YAC/B,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM;YACnE,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM;YACnE,eAAe,EACb,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM;YACnF,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9E,eAAe,EAAE,gBAAgB;gBAC/B,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM;gBAC1D,CAAC,CAAC,CAAC;SACN,CAAC;QAEF,2BAA2B;QAC3B,MAAM,eAAe,GAAG,uBAAuB,CAAC,OAAO,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;QAExF,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAE7C,MAAM,QAAQ,GAAqB;YACjC,SAAS;YACT,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,aAAa;YACb,KAAK,EAAE,uBAAuB;YAC9B,OAAO,EAAE,OAAO;SACjB,CAAC;QAEF,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE;gBACJ,cAAc;gBACd,OAAO;gBACP,QAAQ;gBACR,YAAY;gBACZ,eAAe;gBACf,gBAAgB;gBAChB,OAAO;gBACP,eAAe;aAChB;YACD,QAAQ;SACT,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAY;YACvB,IAAI,EAAE,8BAA8B;YACpC,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,4CAA4C;YAC9F,OAAO,EAAE,EAAE,MAAM,EAAE;YACnB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;SACxD,CAAC;QAEF,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE;gBACR,SAAS;gBACT,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBACrC,KAAK,EAAE,uBAAuB;gBAC9B,OAAO,EAAE,OAAO;aACjB;SACF,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Generate Integration Tests Tool
3
+ * Integration test generation with dependency mocking and contract testing
4
+ *
5
+ * @module tools/qe/test-generation/generate-integration-tests
6
+ * @version 1.0.0
7
+ */
8
+ import type { IntegrationTestGenerationParams, QEToolResponse } from '../shared/types.js';
9
+ /**
10
+ * Generated integration test structure
11
+ */
12
+ export interface GeneratedIntegrationTest {
13
+ /** Test identifier */
14
+ id: string;
15
+ /** Test name */
16
+ name: string;
17
+ /** Test code */
18
+ code: string;
19
+ /** Test scenario */
20
+ scenario: string;
21
+ /** Components under test */
22
+ components: string[];
23
+ /** Dependencies */
24
+ dependencies: string[];
25
+ /** Mock strategy used */
26
+ mockStrategy: 'full' | 'partial' | 'none';
27
+ /** Contract assertions */
28
+ contractAssertions: string[];
29
+ /** Estimated duration (ms) */
30
+ estimatedDuration: number;
31
+ /** Test priority */
32
+ priority: 'critical' | 'high' | 'medium' | 'low';
33
+ /** Integration complexity */
34
+ complexity: number;
35
+ }
36
+ /**
37
+ * Integration test generation result
38
+ */
39
+ export interface IntegrationTestGenerationResult {
40
+ /** Generated tests */
41
+ tests: GeneratedIntegrationTest[];
42
+ /** Generation metrics */
43
+ metrics: {
44
+ /** Total tests generated */
45
+ testsGenerated: number;
46
+ /** Generation time (ms) */
47
+ generationTime: number;
48
+ /** Integration points covered */
49
+ integrationPointsCovered: number;
50
+ /** Contract tests generated */
51
+ contractTests: number;
52
+ /** Mocks generated */
53
+ mocksGenerated: number;
54
+ };
55
+ /** Test quality analysis */
56
+ quality: {
57
+ /** Integration coverage (0-1) */
58
+ integrationCoverage: number;
59
+ /** Contract completeness (0-1) */
60
+ contractCompleteness: number;
61
+ /** Mock quality (0-1) */
62
+ mockQuality: number;
63
+ /** Overall quality (0-1) */
64
+ overall: number;
65
+ };
66
+ /** Generated mocks */
67
+ mocks: {
68
+ /** Mock name */
69
+ name: string;
70
+ /** Mock code */
71
+ code: string;
72
+ /** Mocked dependency */
73
+ dependency: string;
74
+ /** Mock type */
75
+ type: 'full' | 'partial' | 'spy';
76
+ }[];
77
+ /** Contract definitions */
78
+ contracts?: {
79
+ /** Contract name */
80
+ name: string;
81
+ /** Contract specification */
82
+ spec: string;
83
+ /** Provider */
84
+ provider: string;
85
+ /** Consumer */
86
+ consumer: string;
87
+ }[];
88
+ /** Recommendations */
89
+ recommendations: string[];
90
+ }
91
+ /**
92
+ * Generate integration tests
93
+ *
94
+ * @param params - Integration test generation parameters
95
+ * @returns Tool response with generated tests and metrics
96
+ */
97
+ export declare function generateIntegrationTests(params: IntegrationTestGenerationParams): Promise<QEToolResponse<IntegrationTestGenerationResult>>;
98
+ //# sourceMappingURL=generate-integration-tests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-integration-tests.d.ts","sourceRoot":"","sources":["../../../../../src/mcp/tools/qe/test-generation/generate-integration-tests.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,+BAA+B,EAC/B,cAAc,EAKf,MAAM,oBAAoB,CAAC;AAG5B;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,sBAAsB;IACtB,EAAE,EAAE,MAAM,CAAC;IAEX,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IAEb,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IAEb,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;IAEjB,4BAA4B;IAC5B,UAAU,EAAE,MAAM,EAAE,CAAC;IAErB,mBAAmB;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IAEvB,yBAAyB;IACzB,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;IAE1C,0BAA0B;IAC1B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAE7B,8BAA8B;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAE1B,oBAAoB;IACpB,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAEjD,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C,sBAAsB;IACtB,KAAK,EAAE,wBAAwB,EAAE,CAAC;IAElC,yBAAyB;IACzB,OAAO,EAAE;QACP,4BAA4B;QAC5B,cAAc,EAAE,MAAM,CAAC;QAEvB,2BAA2B;QAC3B,cAAc,EAAE,MAAM,CAAC;QAEvB,iCAAiC;QACjC,wBAAwB,EAAE,MAAM,CAAC;QAEjC,+BAA+B;QAC/B,aAAa,EAAE,MAAM,CAAC;QAEtB,sBAAsB;QACtB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IAEF,4BAA4B;IAC5B,OAAO,EAAE;QACP,iCAAiC;QACjC,mBAAmB,EAAE,MAAM,CAAC;QAE5B,kCAAkC;QAClC,oBAAoB,EAAE,MAAM,CAAC;QAE7B,yBAAyB;QACzB,WAAW,EAAE,MAAM,CAAC;QAEpB,4BAA4B;QAC5B,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IAEF,sBAAsB;IACtB,KAAK,EAAE;QACL,gBAAgB;QAChB,IAAI,EAAE,MAAM,CAAC;QAEb,gBAAgB;QAChB,IAAI,EAAE,MAAM,CAAC;QAEb,wBAAwB;QACxB,UAAU,EAAE,MAAM,CAAC;QAEnB,gBAAgB;QAChB,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC;KAClC,EAAE,CAAC;IAEJ,2BAA2B;IAC3B,SAAS,CAAC,EAAE;QACV,oBAAoB;QACpB,IAAI,EAAE,MAAM,CAAC;QAEb,6BAA6B;QAC7B,IAAI,EAAE,MAAM,CAAC;QAEb,eAAe;QACf,QAAQ,EAAE,MAAM,CAAC;QAEjB,eAAe;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,EAAE,CAAC;IAEJ,sBAAsB;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AA4fD;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,+BAA+B,GACtC,OAAO,CAAC,cAAc,CAAC,+BAA+B,CAAC,CAAC,CA2E1D"}