agentic-qe 2.3.2 → 2.3.4

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 (283) hide show
  1. package/CHANGELOG.md +140 -0
  2. package/README.md +1 -1
  3. package/dist/agents/BaseAgent.d.ts +10 -0
  4. package/dist/agents/BaseAgent.d.ts.map +1 -1
  5. package/dist/agents/BaseAgent.js +113 -0
  6. package/dist/agents/BaseAgent.js.map +1 -1
  7. package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -1
  8. package/dist/agents/CoverageAnalyzerAgent.js +53 -27
  9. package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
  10. package/dist/agents/FlakyTestHunterAgent.d.ts +5 -0
  11. package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -1
  12. package/dist/agents/FlakyTestHunterAgent.js +20 -5
  13. package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
  14. package/dist/agents/QualityGateAgent.js +44 -6
  15. package/dist/agents/QualityGateAgent.js.map +1 -1
  16. package/dist/cli/commands/dream/index.d.ts +50 -0
  17. package/dist/cli/commands/dream/index.d.ts.map +1 -0
  18. package/dist/cli/commands/dream/index.js +282 -0
  19. package/dist/cli/commands/dream/index.js.map +1 -0
  20. package/dist/cli/commands/learn/index.d.ts +31 -5
  21. package/dist/cli/commands/learn/index.d.ts.map +1 -1
  22. package/dist/cli/commands/learn/index.js +183 -50
  23. package/dist/cli/commands/learn/index.js.map +1 -1
  24. package/dist/cli/commands/transfer/index.d.ts +55 -0
  25. package/dist/cli/commands/transfer/index.d.ts.map +1 -0
  26. package/dist/cli/commands/transfer/index.js +317 -0
  27. package/dist/cli/commands/transfer/index.js.map +1 -0
  28. package/dist/cli/index.js +156 -3
  29. package/dist/cli/index.js.map +1 -1
  30. package/dist/cli/init/database-init.js +5 -0
  31. package/dist/cli/init/database-init.js.map +1 -1
  32. package/dist/cli/init/index.d.ts.map +1 -1
  33. package/dist/cli/init/index.js +12 -4
  34. package/dist/cli/init/index.js.map +1 -1
  35. package/dist/cli/init/learning-init.d.ts +39 -0
  36. package/dist/cli/init/learning-init.d.ts.map +1 -0
  37. package/dist/cli/init/learning-init.js +239 -0
  38. package/dist/cli/init/learning-init.js.map +1 -0
  39. package/dist/core/memory/HNSWVectorMemory.js +1 -1
  40. package/dist/learning/PerformanceTracker.d.ts +9 -0
  41. package/dist/learning/PerformanceTracker.d.ts.map +1 -1
  42. package/dist/learning/PerformanceTracker.js +26 -2
  43. package/dist/learning/PerformanceTracker.js.map +1 -1
  44. package/dist/learning/baselines/BaselineCollector.d.ts +178 -0
  45. package/dist/learning/baselines/BaselineCollector.d.ts.map +1 -0
  46. package/dist/learning/baselines/BaselineCollector.js +398 -0
  47. package/dist/learning/baselines/BaselineCollector.js.map +1 -0
  48. package/dist/learning/baselines/StandardTaskSuite.d.ts +88 -0
  49. package/dist/learning/baselines/StandardTaskSuite.d.ts.map +1 -0
  50. package/dist/learning/baselines/StandardTaskSuite.js +801 -0
  51. package/dist/learning/baselines/StandardTaskSuite.js.map +1 -0
  52. package/dist/learning/baselines/index.d.ts +10 -0
  53. package/dist/learning/baselines/index.d.ts.map +1 -0
  54. package/dist/learning/baselines/index.js +15 -0
  55. package/dist/learning/baselines/index.js.map +1 -0
  56. package/dist/learning/capture/ExecutionRecorder.d.ts +97 -0
  57. package/dist/learning/capture/ExecutionRecorder.d.ts.map +1 -0
  58. package/dist/learning/capture/ExecutionRecorder.js +195 -0
  59. package/dist/learning/capture/ExecutionRecorder.js.map +1 -0
  60. package/dist/learning/capture/ExperienceCapture.d.ts +177 -0
  61. package/dist/learning/capture/ExperienceCapture.d.ts.map +1 -0
  62. package/dist/learning/capture/ExperienceCapture.js +432 -0
  63. package/dist/learning/capture/ExperienceCapture.js.map +1 -0
  64. package/dist/learning/capture/index.d.ts +12 -0
  65. package/dist/learning/capture/index.d.ts.map +1 -0
  66. package/dist/learning/capture/index.js +17 -0
  67. package/dist/learning/capture/index.js.map +1 -0
  68. package/dist/learning/dashboard/MetricsDashboard.d.ts +63 -0
  69. package/dist/learning/dashboard/MetricsDashboard.d.ts.map +1 -0
  70. package/dist/learning/dashboard/MetricsDashboard.js +230 -0
  71. package/dist/learning/dashboard/MetricsDashboard.js.map +1 -0
  72. package/dist/learning/dashboard/index.d.ts +7 -0
  73. package/dist/learning/dashboard/index.d.ts.map +1 -0
  74. package/dist/learning/dashboard/index.js +23 -0
  75. package/dist/learning/dashboard/index.js.map +1 -0
  76. package/dist/learning/dream/ConceptGraph.d.ts +160 -0
  77. package/dist/learning/dream/ConceptGraph.d.ts.map +1 -0
  78. package/dist/learning/dream/ConceptGraph.js +445 -0
  79. package/dist/learning/dream/ConceptGraph.js.map +1 -0
  80. package/dist/learning/dream/DreamEngine.d.ts +150 -0
  81. package/dist/learning/dream/DreamEngine.d.ts.map +1 -0
  82. package/dist/learning/dream/DreamEngine.js +551 -0
  83. package/dist/learning/dream/DreamEngine.js.map +1 -0
  84. package/dist/learning/dream/InsightGenerator.d.ts +152 -0
  85. package/dist/learning/dream/InsightGenerator.d.ts.map +1 -0
  86. package/dist/learning/dream/InsightGenerator.js +463 -0
  87. package/dist/learning/dream/InsightGenerator.js.map +1 -0
  88. package/dist/learning/dream/SpreadingActivation.d.ts +138 -0
  89. package/dist/learning/dream/SpreadingActivation.d.ts.map +1 -0
  90. package/dist/learning/dream/SpreadingActivation.js +320 -0
  91. package/dist/learning/dream/SpreadingActivation.js.map +1 -0
  92. package/dist/learning/dream/index.d.ts +14 -0
  93. package/dist/learning/dream/index.d.ts.map +1 -0
  94. package/dist/learning/dream/index.js +22 -0
  95. package/dist/learning/dream/index.js.map +1 -0
  96. package/dist/learning/metrics/AlertManager.d.ts +107 -0
  97. package/dist/learning/metrics/AlertManager.d.ts.map +1 -0
  98. package/dist/learning/metrics/AlertManager.js +246 -0
  99. package/dist/learning/metrics/AlertManager.js.map +1 -0
  100. package/dist/learning/metrics/LearningMetrics.d.ts +184 -0
  101. package/dist/learning/metrics/LearningMetrics.d.ts.map +1 -0
  102. package/dist/learning/metrics/LearningMetrics.js +754 -0
  103. package/dist/learning/metrics/LearningMetrics.js.map +1 -0
  104. package/dist/learning/metrics/MetricsCollector.d.ts +108 -0
  105. package/dist/learning/metrics/MetricsCollector.d.ts.map +1 -0
  106. package/dist/learning/metrics/MetricsCollector.js +240 -0
  107. package/dist/learning/metrics/MetricsCollector.js.map +1 -0
  108. package/dist/learning/metrics/MetricsStore.d.ts +149 -0
  109. package/dist/learning/metrics/MetricsStore.d.ts.map +1 -0
  110. package/dist/learning/metrics/MetricsStore.js +502 -0
  111. package/dist/learning/metrics/MetricsStore.js.map +1 -0
  112. package/dist/learning/metrics/TrendAnalyzer.d.ts +85 -0
  113. package/dist/learning/metrics/TrendAnalyzer.d.ts.map +1 -0
  114. package/dist/learning/metrics/TrendAnalyzer.js +210 -0
  115. package/dist/learning/metrics/TrendAnalyzer.js.map +1 -0
  116. package/dist/learning/metrics/index.d.ts +13 -0
  117. package/dist/learning/metrics/index.d.ts.map +1 -0
  118. package/dist/learning/metrics/index.js +39 -0
  119. package/dist/learning/metrics/index.js.map +1 -0
  120. package/dist/learning/scheduler/IdleDetector.d.ts +126 -0
  121. package/dist/learning/scheduler/IdleDetector.d.ts.map +1 -0
  122. package/dist/learning/scheduler/IdleDetector.js +281 -0
  123. package/dist/learning/scheduler/IdleDetector.js.map +1 -0
  124. package/dist/learning/scheduler/SleepCycle.d.ts +150 -0
  125. package/dist/learning/scheduler/SleepCycle.d.ts.map +1 -0
  126. package/dist/learning/scheduler/SleepCycle.js +506 -0
  127. package/dist/learning/scheduler/SleepCycle.js.map +1 -0
  128. package/dist/learning/scheduler/SleepScheduler.d.ts +131 -0
  129. package/dist/learning/scheduler/SleepScheduler.d.ts.map +1 -0
  130. package/dist/learning/scheduler/SleepScheduler.js +299 -0
  131. package/dist/learning/scheduler/SleepScheduler.js.map +1 -0
  132. package/dist/learning/scheduler/TimeBasedTrigger.d.ts +108 -0
  133. package/dist/learning/scheduler/TimeBasedTrigger.d.ts.map +1 -0
  134. package/dist/learning/scheduler/TimeBasedTrigger.js +222 -0
  135. package/dist/learning/scheduler/TimeBasedTrigger.js.map +1 -0
  136. package/dist/learning/scheduler/index.d.ts +16 -0
  137. package/dist/learning/scheduler/index.d.ts.map +1 -0
  138. package/dist/learning/scheduler/index.js +23 -0
  139. package/dist/learning/scheduler/index.js.map +1 -0
  140. package/dist/learning/synthesis/PatternSynthesis.d.ts +162 -0
  141. package/dist/learning/synthesis/PatternSynthesis.d.ts.map +1 -0
  142. package/dist/learning/synthesis/PatternSynthesis.js +479 -0
  143. package/dist/learning/synthesis/PatternSynthesis.js.map +1 -0
  144. package/dist/learning/synthesis/index.d.ts +10 -0
  145. package/dist/learning/synthesis/index.d.ts.map +1 -0
  146. package/dist/learning/synthesis/index.js +14 -0
  147. package/dist/learning/synthesis/index.js.map +1 -0
  148. package/dist/learning/transfer/CompatibilityScorer.d.ts +115 -0
  149. package/dist/learning/transfer/CompatibilityScorer.d.ts.map +1 -0
  150. package/dist/learning/transfer/CompatibilityScorer.js +319 -0
  151. package/dist/learning/transfer/CompatibilityScorer.js.map +1 -0
  152. package/dist/learning/transfer/TransferProtocol.d.ts +172 -0
  153. package/dist/learning/transfer/TransferProtocol.d.ts.map +1 -0
  154. package/dist/learning/transfer/TransferProtocol.js +611 -0
  155. package/dist/learning/transfer/TransferProtocol.js.map +1 -0
  156. package/dist/learning/transfer/TransferPrototype.d.ts +93 -0
  157. package/dist/learning/transfer/TransferPrototype.d.ts.map +1 -0
  158. package/dist/learning/transfer/TransferPrototype.js +433 -0
  159. package/dist/learning/transfer/TransferPrototype.js.map +1 -0
  160. package/dist/learning/transfer/TransferValidator.d.ts +140 -0
  161. package/dist/learning/transfer/TransferValidator.d.ts.map +1 -0
  162. package/dist/learning/transfer/TransferValidator.js +413 -0
  163. package/dist/learning/transfer/TransferValidator.js.map +1 -0
  164. package/dist/learning/transfer/index.d.ts +14 -0
  165. package/dist/learning/transfer/index.d.ts.map +1 -0
  166. package/dist/learning/transfer/index.js +22 -0
  167. package/dist/learning/transfer/index.js.map +1 -0
  168. package/dist/mcp/handlers/test/test-generate-enhanced.d.ts +26 -2
  169. package/dist/mcp/handlers/test/test-generate-enhanced.d.ts.map +1 -1
  170. package/dist/mcp/handlers/test/test-generate-enhanced.js +159 -27
  171. package/dist/mcp/handlers/test/test-generate-enhanced.js.map +1 -1
  172. package/dist/mcp/server-instructions.d.ts +1 -1
  173. package/dist/mcp/server-instructions.js +1 -1
  174. package/dist/mcp/server.d.ts.map +1 -1
  175. package/dist/mcp/server.js +2 -1
  176. package/dist/mcp/server.js.map +1 -1
  177. package/package.json +7 -2
  178. package/scripts/README.md +352 -0
  179. package/scripts/hooks/capture-task-learning.js +191 -0
  180. package/scripts/hooks/emit-task-complete.sh +35 -0
  181. package/scripts/hooks/emit-task-spawn.sh +27 -0
  182. package/.claude/agents/failing-agent.json +0 -9
  183. package/.claude/agents/test-agent.json +0 -9
  184. package/dist/App.d.ts +0 -5
  185. package/dist/App.d.ts.map +0 -1
  186. package/dist/App.js +0 -15
  187. package/dist/App.js.map +0 -1
  188. package/dist/cli/init/utils.d.ts +0 -183
  189. package/dist/cli/init/utils.d.ts.map +0 -1
  190. package/dist/cli/init/utils.js +0 -354
  191. package/dist/cli/init/utils.js.map +0 -1
  192. package/dist/components/Dashboard/Dashboard.d.ts +0 -4
  193. package/dist/components/Dashboard/Dashboard.d.ts.map +0 -1
  194. package/dist/components/Dashboard/Dashboard.js +0 -148
  195. package/dist/components/Dashboard/Dashboard.js.map +0 -1
  196. package/dist/components/Dashboard/DashboardHeader.d.ts +0 -4
  197. package/dist/components/Dashboard/DashboardHeader.d.ts.map +0 -1
  198. package/dist/components/Dashboard/DashboardHeader.js +0 -138
  199. package/dist/components/Dashboard/DashboardHeader.js.map +0 -1
  200. package/dist/contexts/DashboardContext.d.ts +0 -41
  201. package/dist/contexts/DashboardContext.d.ts.map +0 -1
  202. package/dist/contexts/DashboardContext.js +0 -187
  203. package/dist/contexts/DashboardContext.js.map +0 -1
  204. package/dist/core/transport/QUICTransport.d.ts +0 -320
  205. package/dist/core/transport/QUICTransport.d.ts.map +0 -1
  206. package/dist/core/transport/QUICTransport.js +0 -711
  207. package/dist/core/transport/QUICTransport.js.map +0 -1
  208. package/dist/learning/LearningPersistenceAdapter.d.ts +0 -84
  209. package/dist/learning/LearningPersistenceAdapter.d.ts.map +0 -1
  210. package/dist/learning/LearningPersistenceAdapter.js +0 -202
  211. package/dist/learning/LearningPersistenceAdapter.js.map +0 -1
  212. package/dist/learning/algorithms/QLearning.d.ts +0 -68
  213. package/dist/learning/algorithms/QLearning.d.ts.map +0 -1
  214. package/dist/learning/algorithms/QLearning.js +0 -116
  215. package/dist/learning/algorithms/QLearning.js.map +0 -1
  216. package/dist/mcp/handlers/advanced/requirements-generate-bdd.d.ts +0 -7
  217. package/dist/mcp/handlers/advanced/requirements-generate-bdd.d.ts.map +0 -1
  218. package/dist/mcp/handlers/advanced/requirements-generate-bdd.js +0 -267
  219. package/dist/mcp/handlers/advanced/requirements-generate-bdd.js.map +0 -1
  220. package/dist/mcp/handlers/advanced/requirements-validate.d.ts +0 -7
  221. package/dist/mcp/handlers/advanced/requirements-validate.d.ts.map +0 -1
  222. package/dist/mcp/handlers/advanced/requirements-validate.js +0 -175
  223. package/dist/mcp/handlers/advanced/requirements-validate.js.map +0 -1
  224. package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.d.ts +0 -15
  225. package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.d.ts.map +0 -1
  226. package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.js +0 -43
  227. package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.js.map +0 -1
  228. package/dist/mcp/handlers/analysis/performanceBenchmarkRun.d.ts +0 -58
  229. package/dist/mcp/handlers/analysis/performanceBenchmarkRun.d.ts.map +0 -1
  230. package/dist/mcp/handlers/analysis/performanceBenchmarkRun.js +0 -188
  231. package/dist/mcp/handlers/analysis/performanceBenchmarkRun.js.map +0 -1
  232. package/dist/mcp/handlers/optimize-tests.d.ts +0 -219
  233. package/dist/mcp/handlers/optimize-tests.d.ts.map +0 -1
  234. package/dist/mcp/handlers/optimize-tests.js +0 -533
  235. package/dist/mcp/handlers/optimize-tests.js.map +0 -1
  236. package/dist/mcp/handlers/predict-defects.d.ts +0 -194
  237. package/dist/mcp/handlers/predict-defects.d.ts.map +0 -1
  238. package/dist/mcp/handlers/predict-defects.js +0 -722
  239. package/dist/mcp/handlers/predict-defects.js.map +0 -1
  240. package/dist/mcp/handlers/prediction/regression-risk-analyze.d.ts +0 -199
  241. package/dist/mcp/handlers/prediction/regression-risk-analyze.d.ts.map +0 -1
  242. package/dist/mcp/handlers/prediction/regression-risk-analyze.js +0 -471
  243. package/dist/mcp/handlers/prediction/regression-risk-analyze.js.map +0 -1
  244. package/dist/mcp/handlers/quality/quality-decision-make.d.ts +0 -104
  245. package/dist/mcp/handlers/quality/quality-decision-make.d.ts.map +0 -1
  246. package/dist/mcp/handlers/quality/quality-decision-make.js +0 -408
  247. package/dist/mcp/handlers/quality/quality-decision-make.js.map +0 -1
  248. package/dist/mcp/handlers/quality/quality-gate-execute.d.ts +0 -160
  249. package/dist/mcp/handlers/quality/quality-gate-execute.d.ts.map +0 -1
  250. package/dist/mcp/handlers/quality/quality-gate-execute.js +0 -412
  251. package/dist/mcp/handlers/quality/quality-gate-execute.js.map +0 -1
  252. package/dist/mcp/handlers/quality/quality-policy-check.d.ts +0 -163
  253. package/dist/mcp/handlers/quality/quality-policy-check.d.ts.map +0 -1
  254. package/dist/mcp/handlers/quality/quality-policy-check.js +0 -455
  255. package/dist/mcp/handlers/quality/quality-policy-check.js.map +0 -1
  256. package/dist/mcp/handlers/quality/quality-risk-assess.d.ts +0 -123
  257. package/dist/mcp/handlers/quality/quality-risk-assess.d.ts.map +0 -1
  258. package/dist/mcp/handlers/quality/quality-risk-assess.js +0 -522
  259. package/dist/mcp/handlers/quality/quality-risk-assess.js.map +0 -1
  260. package/dist/mcp/handlers/quality/quality-validate-metrics.d.ts +0 -117
  261. package/dist/mcp/handlers/quality/quality-validate-metrics.d.ts.map +0 -1
  262. package/dist/mcp/handlers/quality/quality-validate-metrics.js +0 -288
  263. package/dist/mcp/handlers/quality/quality-validate-metrics.js.map +0 -1
  264. package/dist/mcp/handlers/quality-analyze.d.ts +0 -279
  265. package/dist/mcp/handlers/quality-analyze.d.ts.map +0 -1
  266. package/dist/mcp/handlers/quality-analyze.js +0 -720
  267. package/dist/mcp/handlers/quality-analyze.js.map +0 -1
  268. package/dist/mcp/handlers/security/check-authz.d.ts +0 -152
  269. package/dist/mcp/handlers/security/check-authz.d.ts.map +0 -1
  270. package/dist/mcp/handlers/security/check-authz.js +0 -434
  271. package/dist/mcp/handlers/security/check-authz.js.map +0 -1
  272. package/dist/mcp/handlers/security/scan-dependencies.d.ts +0 -148
  273. package/dist/mcp/handlers/security/scan-dependencies.d.ts.map +0 -1
  274. package/dist/mcp/handlers/security/scan-dependencies.js +0 -354
  275. package/dist/mcp/handlers/security/scan-dependencies.js.map +0 -1
  276. package/dist/mcp/handlers/security/validate-auth.d.ts +0 -128
  277. package/dist/mcp/handlers/security/validate-auth.d.ts.map +0 -1
  278. package/dist/mcp/handlers/security/validate-auth.js +0 -294
  279. package/dist/mcp/handlers/security/validate-auth.js.map +0 -1
  280. package/dist/mcp/handlers/test-generate.d.ts +0 -107
  281. package/dist/mcp/handlers/test-generate.d.ts.map +0 -1
  282. package/dist/mcp/handlers/test-generate.js +0 -454
  283. package/dist/mcp/handlers/test-generate.js.map +0 -1
@@ -1,288 +0,0 @@
1
- "use strict";
2
- /**
3
- * Quality Validate Metrics Handler
4
- *
5
- * Validates quality metrics against configurable thresholds.
6
- * Provides detailed pass/fail analysis with recommendations.
7
- *
8
- * @version 1.0.0
9
- * @author Agentic QE Team - Agent 2
10
- */
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.QualityValidateMetricsHandler = void 0;
13
- const base_handler_js_1 = require("../base-handler.js");
14
- class QualityValidateMetricsHandler extends base_handler_js_1.BaseHandler {
15
- constructor(hookExecutor) {
16
- super();
17
- this.hookExecutor = hookExecutor;
18
- this.defaultThresholds = this.createDefaultThresholds();
19
- }
20
- async handle(args) {
21
- return this.safeHandle(async () => {
22
- const requestId = this.generateRequestId();
23
- this.log('info', 'Validating quality metrics', { requestId });
24
- // Validate required parameters
25
- this.validateRequired(args, ['metrics']);
26
- // Use provided thresholds or defaults
27
- const thresholds = args.thresholds || this.defaultThresholds;
28
- const strictMode = args.strictMode ?? false;
29
- // Execute pre-task hook
30
- await this.hookExecutor.executePreTask({
31
- description: 'Validating quality metrics against thresholds',
32
- agentType: 'quality-analyzer',
33
- sessionId: requestId
34
- });
35
- // Perform validation
36
- const { result: validationResult, executionTime } = await this.measureExecutionTime(async () => {
37
- const validations = [];
38
- // Validate coverage metrics
39
- if (thresholds.coverage) {
40
- validations.push(...this.validateCoverage(args.metrics.coverage, thresholds.coverage));
41
- }
42
- // Validate test results
43
- if (thresholds.testResults) {
44
- validations.push(...this.validateTestResults(args.metrics.testResults, thresholds.testResults));
45
- }
46
- // Validate security metrics
47
- if (thresholds.security) {
48
- validations.push(...this.validateSecurity(args.metrics.security, thresholds.security));
49
- }
50
- // Validate performance metrics
51
- if (thresholds.performance) {
52
- validations.push(...this.validatePerformance(args.metrics.performance, thresholds.performance));
53
- }
54
- // Validate code quality metrics
55
- if (thresholds.codeQuality) {
56
- validations.push(...this.validateCodeQuality(args.metrics.codeQuality, thresholds.codeQuality));
57
- }
58
- // Calculate summary
59
- const summary = this.calculateSummary(validations);
60
- // Determine overall pass/fail
61
- const passed = strictMode
62
- ? validations.every(v => v.passed)
63
- : summary.critical === 0;
64
- // Calculate overall score
65
- const overallScore = this.calculateOverallScore(validations);
66
- // Generate recommendations
67
- const recommendations = this.generateRecommendations(validations, strictMode);
68
- const result = {
69
- validationId: requestId,
70
- passed,
71
- overallScore,
72
- validations,
73
- summary,
74
- recommendations,
75
- timestamp: new Date().toISOString()
76
- };
77
- return result;
78
- });
79
- this.log('info', `Metrics validated in ${executionTime.toFixed(2)}ms`, {
80
- validationId: validationResult.validationId,
81
- passed: validationResult.passed,
82
- score: validationResult.overallScore
83
- });
84
- // Store result in memory
85
- await this.hookExecutor.executePostEdit({
86
- file: `validation-${requestId}`,
87
- memoryKey: `aqe/swarm/quality-mcp-tools/validations/${requestId}`
88
- });
89
- // Execute post-task hook
90
- await this.hookExecutor.executePostTask({
91
- taskId: requestId,
92
- agentType: 'quality-analyzer',
93
- sessionId: requestId,
94
- results: {
95
- validationId: validationResult.validationId,
96
- passed: validationResult.passed,
97
- score: validationResult.overallScore
98
- }
99
- });
100
- return this.createSuccessResponse(validationResult, requestId);
101
- });
102
- }
103
- createDefaultThresholds() {
104
- return {
105
- coverage: {
106
- line: 80,
107
- branch: 75,
108
- function: 85,
109
- statement: 80
110
- },
111
- testResults: {
112
- minSuccessRate: 95,
113
- maxFailureRate: 5,
114
- maxSkippedRate: 2
115
- },
116
- security: {
117
- maxCritical: 0,
118
- maxHigh: 2,
119
- maxMedium: 10,
120
- maxTotal: 20
121
- },
122
- performance: {
123
- maxResponseTime: 1000,
124
- minThroughput: 100,
125
- maxErrorRate: 0.05
126
- },
127
- codeQuality: {
128
- maxComplexity: 15,
129
- minMaintainability: 70,
130
- maxDuplication: 5
131
- }
132
- };
133
- }
134
- validateCoverage(coverage, thresholds) {
135
- const validations = [];
136
- if (thresholds.line !== undefined) {
137
- validations.push(this.createValidation('Line Coverage', 'coverage', coverage.line, thresholds.line, coverage.line >= thresholds.line, 'minimum'));
138
- }
139
- if (thresholds.branch !== undefined) {
140
- validations.push(this.createValidation('Branch Coverage', 'coverage', coverage.branch, thresholds.branch, coverage.branch >= thresholds.branch, 'minimum'));
141
- }
142
- if (thresholds.function !== undefined) {
143
- validations.push(this.createValidation('Function Coverage', 'coverage', coverage.function, thresholds.function, coverage.function >= thresholds.function, 'minimum'));
144
- }
145
- if (thresholds.statement !== undefined) {
146
- validations.push(this.createValidation('Statement Coverage', 'coverage', coverage.statement, thresholds.statement, coverage.statement >= thresholds.statement, 'minimum'));
147
- }
148
- return validations;
149
- }
150
- validateTestResults(testResults, thresholds) {
151
- const validations = [];
152
- const successRate = (testResults.passed / testResults.total) * 100;
153
- const failureRate = (testResults.failed / testResults.total) * 100;
154
- const skippedRate = (testResults.skipped / testResults.total) * 100;
155
- if (thresholds.minSuccessRate !== undefined) {
156
- validations.push(this.createValidation('Test Success Rate', 'test-results', successRate, thresholds.minSuccessRate, successRate >= thresholds.minSuccessRate, 'minimum'));
157
- }
158
- if (thresholds.maxFailureRate !== undefined) {
159
- validations.push(this.createValidation('Test Failure Rate', 'test-results', failureRate, thresholds.maxFailureRate, failureRate <= thresholds.maxFailureRate, 'maximum'));
160
- }
161
- if (thresholds.maxSkippedRate !== undefined) {
162
- validations.push(this.createValidation('Test Skipped Rate', 'test-results', skippedRate, thresholds.maxSkippedRate, skippedRate <= thresholds.maxSkippedRate, 'maximum'));
163
- }
164
- return validations;
165
- }
166
- validateSecurity(security, thresholds) {
167
- const validations = [];
168
- const total = security.critical + security.high + security.medium + security.low;
169
- if (thresholds.maxCritical !== undefined) {
170
- validations.push(this.createValidation('Critical Vulnerabilities', 'security', security.critical, thresholds.maxCritical, security.critical <= thresholds.maxCritical, 'maximum', 'critical'));
171
- }
172
- if (thresholds.maxHigh !== undefined) {
173
- validations.push(this.createValidation('High Vulnerabilities', 'security', security.high, thresholds.maxHigh, security.high <= thresholds.maxHigh, 'maximum', 'high'));
174
- }
175
- if (thresholds.maxMedium !== undefined) {
176
- validations.push(this.createValidation('Medium Vulnerabilities', 'security', security.medium, thresholds.maxMedium, security.medium <= thresholds.maxMedium, 'maximum', 'medium'));
177
- }
178
- if (thresholds.maxTotal !== undefined) {
179
- validations.push(this.createValidation('Total Vulnerabilities', 'security', total, thresholds.maxTotal, total <= thresholds.maxTotal, 'maximum'));
180
- }
181
- return validations;
182
- }
183
- validatePerformance(performance, thresholds) {
184
- const validations = [];
185
- if (thresholds.maxResponseTime !== undefined) {
186
- validations.push(this.createValidation('Response Time', 'performance', performance.averageResponseTime, thresholds.maxResponseTime, performance.averageResponseTime <= thresholds.maxResponseTime, 'maximum'));
187
- }
188
- if (thresholds.minThroughput !== undefined) {
189
- validations.push(this.createValidation('Throughput', 'performance', performance.throughput, thresholds.minThroughput, performance.throughput >= thresholds.minThroughput, 'minimum'));
190
- }
191
- if (thresholds.maxErrorRate !== undefined) {
192
- const errorRatePercent = performance.errorRate * 100;
193
- const thresholdPercent = thresholds.maxErrorRate * 100;
194
- validations.push(this.createValidation('Error Rate', 'performance', errorRatePercent, thresholdPercent, performance.errorRate <= thresholds.maxErrorRate, 'maximum'));
195
- }
196
- return validations;
197
- }
198
- validateCodeQuality(codeQuality, thresholds) {
199
- const validations = [];
200
- if (thresholds.maxComplexity !== undefined) {
201
- validations.push(this.createValidation('Code Complexity', 'code-quality', codeQuality.complexity, thresholds.maxComplexity, codeQuality.complexity <= thresholds.maxComplexity, 'maximum'));
202
- }
203
- if (thresholds.minMaintainability !== undefined) {
204
- validations.push(this.createValidation('Maintainability Index', 'code-quality', codeQuality.maintainability, thresholds.minMaintainability, codeQuality.maintainability >= thresholds.minMaintainability, 'minimum'));
205
- }
206
- if (thresholds.maxDuplication !== undefined) {
207
- validations.push(this.createValidation('Code Duplication', 'code-quality', codeQuality.duplication, thresholds.maxDuplication, codeQuality.duplication <= thresholds.maxDuplication, 'maximum'));
208
- }
209
- return validations;
210
- }
211
- createValidation(name, category, value, threshold, passed, type, overrideSeverity) {
212
- const deviation = type === 'minimum'
213
- ? ((value - threshold) / threshold) * 100
214
- : ((threshold - value) / threshold) * 100;
215
- const severity = overrideSeverity || this.determineSeverity(deviation, passed);
216
- const message = passed
217
- ? `${name} meets threshold (${value.toFixed(2)} ${type === 'minimum' ? '≥' : '≤'} ${threshold})`
218
- : `${name} below threshold (${value.toFixed(2)} ${type === 'minimum' ? '<' : '>'} ${threshold})`;
219
- return {
220
- name,
221
- category,
222
- value,
223
- threshold,
224
- passed,
225
- deviation,
226
- severity,
227
- message
228
- };
229
- }
230
- determineSeverity(deviation, passed) {
231
- if (passed)
232
- return 'low';
233
- if (deviation < -50)
234
- return 'critical';
235
- if (deviation < -25)
236
- return 'high';
237
- if (deviation < -10)
238
- return 'medium';
239
- return 'low';
240
- }
241
- calculateSummary(validations) {
242
- return {
243
- total: validations.length,
244
- passed: validations.filter(v => v.passed).length,
245
- failed: validations.filter(v => !v.passed).length,
246
- critical: validations.filter(v => !v.passed && v.severity === 'critical').length,
247
- warnings: validations.filter(v => !v.passed && v.severity !== 'critical').length
248
- };
249
- }
250
- calculateOverallScore(validations) {
251
- if (validations.length === 0)
252
- return 0;
253
- const passedCount = validations.filter(v => v.passed).length;
254
- return Math.round((passedCount / validations.length) * 100 * 100) / 100;
255
- }
256
- generateRecommendations(validations, strictMode) {
257
- const recommendations = [];
258
- const failedValidations = validations.filter(v => !v.passed);
259
- for (const validation of failedValidations) {
260
- switch (validation.category) {
261
- case 'coverage':
262
- recommendations.push(`Increase ${validation.name.toLowerCase()} to at least ${validation.threshold}%`);
263
- break;
264
- case 'test-results':
265
- recommendations.push(`Improve ${validation.name.toLowerCase()} to meet ${validation.threshold}% threshold`);
266
- break;
267
- case 'security':
268
- recommendations.push(`Address security vulnerabilities: ${validation.name.toLowerCase()}`);
269
- break;
270
- case 'performance':
271
- recommendations.push(`Optimize ${validation.name.toLowerCase()} to meet performance requirements`);
272
- break;
273
- case 'code-quality':
274
- recommendations.push(`Refactor code to improve ${validation.name.toLowerCase()}`);
275
- break;
276
- }
277
- }
278
- if (failedValidations.length === 0) {
279
- recommendations.push('All quality metrics meet or exceed thresholds');
280
- }
281
- else if (strictMode) {
282
- recommendations.push('Strict mode enabled: all metrics must pass before deployment');
283
- }
284
- return recommendations;
285
- }
286
- }
287
- exports.QualityValidateMetricsHandler = QualityValidateMetricsHandler;
288
- //# sourceMappingURL=quality-validate-metrics.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"quality-validate-metrics.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/quality/quality-validate-metrics.ts"],"names":[],"mappings":"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"}
@@ -1,279 +0,0 @@
1
- /**
2
- * Quality Analysis Handler
3
- *
4
- * Handles comprehensive quality analysis and reporting.
5
- * Generates insights and recommendations for quality improvement.
6
- *
7
- * @version 1.0.0
8
- * @author Agentic QE Team
9
- */
10
- import { BaseHandler, HandlerResponse } from './base-handler.js';
11
- import { QualityAnalysisParams } from '../tools.js';
12
- import { AgentRegistry } from '../services/AgentRegistry.js';
13
- import { HookExecutor } from '../services/HookExecutor.js';
14
- export interface QualityAnalyzeArgs {
15
- params: QualityAnalysisParams;
16
- dataSource?: {
17
- testResults?: string;
18
- codeMetrics?: string | any;
19
- performanceData?: string;
20
- context?: {
21
- deploymentTarget?: 'development' | 'staging' | 'production';
22
- criticality?: 'low' | 'medium' | 'high' | 'critical';
23
- environment?: string;
24
- changes?: any[];
25
- };
26
- };
27
- }
28
- export interface QualityReport {
29
- id: string;
30
- scope: string;
31
- analysisType: string;
32
- generatedAt: string;
33
- metrics: QualityMetrics;
34
- assessments: QualityAssessment[];
35
- recommendations: Recommendation[];
36
- trends: TrendAnalysis;
37
- thresholds: ThresholdResults;
38
- score: CompositeQualityScore;
39
- }
40
- export interface QualityMetrics {
41
- code: CodeQualityMetrics;
42
- test: TestQualityMetrics;
43
- performance: PerformanceQualityMetrics;
44
- security: SecurityQualityMetrics;
45
- maintainability: MaintainabilityMetrics;
46
- }
47
- export interface CodeQualityMetrics {
48
- complexity: {
49
- cyclomatic: number;
50
- cognitive: number;
51
- maintainabilityIndex: number;
52
- };
53
- coverage: {
54
- line: number;
55
- branch: number;
56
- function: number;
57
- statement: number;
58
- };
59
- duplication: {
60
- percentage: number;
61
- lines: number;
62
- blocks: number;
63
- };
64
- technicalDebt: {
65
- ratio: number;
66
- estimatedHours: number;
67
- issues: TechnicalDebtIssue[];
68
- };
69
- }
70
- export interface TestQualityMetrics {
71
- reliability: {
72
- flakyTests: number;
73
- successRate: number;
74
- averageRetries: number;
75
- };
76
- effectiveness: {
77
- mutationScore: number;
78
- defectDetectionRate: number;
79
- falsePositiveRate: number;
80
- };
81
- efficiency: {
82
- executionTime: number;
83
- parallelization: number;
84
- resourceUsage: number;
85
- };
86
- coverage: {
87
- achieved: number;
88
- target: number;
89
- gaps: CoverageGap[];
90
- };
91
- }
92
- export interface PerformanceQualityMetrics {
93
- responseTime: {
94
- average: number;
95
- p95: number;
96
- p99: number;
97
- };
98
- throughput: {
99
- requestsPerSecond: number;
100
- concurrent: number;
101
- };
102
- resources: {
103
- cpu: number;
104
- memory: number;
105
- network: number;
106
- };
107
- bottlenecks: PerformanceBottleneck[];
108
- }
109
- export interface SecurityQualityMetrics {
110
- vulnerabilities: {
111
- critical: number;
112
- high: number;
113
- medium: number;
114
- low: number;
115
- };
116
- compliance: {
117
- owasp: number;
118
- score: number;
119
- issues: SecurityIssue[];
120
- };
121
- dependencies: {
122
- outdated: number;
123
- vulnerable: number;
124
- licenses: LicenseIssue[];
125
- };
126
- }
127
- export interface MaintainabilityMetrics {
128
- readability: number;
129
- documentation: number;
130
- testability: number;
131
- modularity: number;
132
- changeability: number;
133
- }
134
- export interface QualityAssessment {
135
- category: string;
136
- score: number;
137
- status: 'excellent' | 'good' | 'fair' | 'poor' | 'critical';
138
- details: string;
139
- evidence: string[];
140
- impact: 'low' | 'medium' | 'high' | 'critical';
141
- }
142
- export interface Recommendation {
143
- id: string;
144
- category: string;
145
- priority: 'low' | 'medium' | 'high' | 'critical';
146
- title: string;
147
- description: string;
148
- effort: 'low' | 'medium' | 'high';
149
- impact: 'low' | 'medium' | 'high';
150
- actions: RecommendationAction[];
151
- estimatedHours: number;
152
- }
153
- export interface RecommendationAction {
154
- type: 'code' | 'test' | 'process' | 'tooling';
155
- description: string;
156
- files?: string[];
157
- automated: boolean;
158
- }
159
- export interface TrendAnalysis {
160
- direction: 'improving' | 'stable' | 'declining';
161
- velocity: number;
162
- predictions: TrendPrediction[];
163
- historical: HistoricalDataPoint[];
164
- }
165
- export interface TrendPrediction {
166
- metric: string;
167
- predictedValue: number;
168
- confidence: number;
169
- timeframe: string;
170
- }
171
- export interface HistoricalDataPoint {
172
- date: string;
173
- metrics: Record<string, number>;
174
- }
175
- export interface ThresholdResults {
176
- passed: boolean;
177
- failed: ThresholdFailure[];
178
- warnings: ThresholdWarning[];
179
- }
180
- export interface ThresholdFailure {
181
- metric: string;
182
- actual: number;
183
- threshold: number;
184
- severity: 'warning' | 'error' | 'critical';
185
- }
186
- export interface ThresholdWarning {
187
- metric: string;
188
- actual: number;
189
- threshold: number;
190
- message: string;
191
- }
192
- export interface CompositeQualityScore {
193
- overall: number;
194
- breakdown: Record<string, number>;
195
- grade: 'A+' | 'A' | 'B+' | 'B' | 'C+' | 'C' | 'D' | 'F';
196
- interpretation: string;
197
- }
198
- export interface TechnicalDebtIssue {
199
- file: string;
200
- line: number;
201
- type: string;
202
- severity: string;
203
- estimatedHours: number;
204
- description: string;
205
- }
206
- export interface CoverageGap {
207
- file: string;
208
- lines: number[];
209
- functions: string[];
210
- priority: string;
211
- }
212
- export interface PerformanceBottleneck {
213
- type: string;
214
- location: string;
215
- impact: number;
216
- recommendation: string;
217
- }
218
- export interface SecurityIssue {
219
- type: string;
220
- severity: string;
221
- description: string;
222
- location: string;
223
- cwe?: string;
224
- }
225
- export interface LicenseIssue {
226
- dependency: string;
227
- license: string;
228
- compatibility: string;
229
- risk: string;
230
- }
231
- export declare class QualityAnalyzeHandler extends BaseHandler {
232
- private analysisHistory;
233
- private analyzers;
234
- private registry;
235
- private hookExecutor;
236
- constructor(registry: AgentRegistry, hookExecutor: HookExecutor);
237
- handle(args: QualityAnalyzeArgs): Promise<HandlerResponse>;
238
- private initializeAnalyzers;
239
- private validateQualityAnalysisParams;
240
- private performQualityAnalysis;
241
- private collectMetrics;
242
- private collectCodeMetrics;
243
- private collectTestMetrics;
244
- private collectPerformanceMetrics;
245
- private collectSecurityMetrics;
246
- private collectMaintainabilityMetrics;
247
- private performAssessments;
248
- private assessCodeQuality;
249
- private assessTestQuality;
250
- private assessPerformanceQuality;
251
- private assessSecurityQuality;
252
- private generateRecommendations;
253
- private createRecommendationForAssessment;
254
- private generateProactiveRecommendations;
255
- private analyzeTrends;
256
- private createEmptyTrends;
257
- private evaluateThresholds;
258
- private calculateCompositeScore;
259
- private normalizeScore;
260
- private calculateSecurityScore;
261
- private estimateHours;
262
- private getMetricValue;
263
- private interpretScore;
264
- private generateTechnicalDebtIssues;
265
- private generateCoverageGaps;
266
- private generatePerformanceBottlenecks;
267
- private generateSecurityIssues;
268
- private generateLicenseIssues;
269
- private generateHistoricalData;
270
- /**
271
- * Get quality report by ID
272
- */
273
- getReport(reportId: string): QualityReport | undefined;
274
- /**
275
- * List all quality reports
276
- */
277
- listReports(): QualityReport[];
278
- }
279
- //# sourceMappingURL=quality-analyze.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"quality-analyze.d.ts","sourceRoot":"","sources":["../../../src/mcp/handlers/quality-analyze.ts"],"names":[],"mappings":"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"}