agentic-qe 2.3.2 → 2.3.3

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 (127) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/README.md +1 -1
  3. package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -1
  4. package/dist/agents/CoverageAnalyzerAgent.js +53 -27
  5. package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
  6. package/dist/agents/FlakyTestHunterAgent.d.ts +5 -0
  7. package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -1
  8. package/dist/agents/FlakyTestHunterAgent.js +20 -5
  9. package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
  10. package/dist/agents/QualityGateAgent.js +44 -6
  11. package/dist/agents/QualityGateAgent.js.map +1 -1
  12. package/dist/cli/index.js +0 -0
  13. package/dist/cli/init/database-init.js +5 -0
  14. package/dist/cli/init/database-init.js.map +1 -1
  15. package/dist/learning/PerformanceTracker.d.ts +9 -0
  16. package/dist/learning/PerformanceTracker.d.ts.map +1 -1
  17. package/dist/learning/PerformanceTracker.js +26 -2
  18. package/dist/learning/PerformanceTracker.js.map +1 -1
  19. package/dist/mcp/server-instructions.d.ts +1 -1
  20. package/dist/mcp/server-instructions.js +1 -1
  21. package/package.json +3 -1
  22. package/scripts/README.md +352 -0
  23. package/scripts/hooks/capture-task-learning.js +191 -0
  24. package/scripts/hooks/emit-task-complete.sh +35 -0
  25. package/scripts/hooks/emit-task-spawn.sh +27 -0
  26. package/.claude/agents/failing-agent.json +0 -9
  27. package/.claude/agents/test-agent.json +0 -9
  28. package/dist/App.d.ts +0 -5
  29. package/dist/App.d.ts.map +0 -1
  30. package/dist/App.js +0 -15
  31. package/dist/App.js.map +0 -1
  32. package/dist/cli/init/utils.d.ts +0 -183
  33. package/dist/cli/init/utils.d.ts.map +0 -1
  34. package/dist/cli/init/utils.js +0 -354
  35. package/dist/cli/init/utils.js.map +0 -1
  36. package/dist/components/Dashboard/Dashboard.d.ts +0 -4
  37. package/dist/components/Dashboard/Dashboard.d.ts.map +0 -1
  38. package/dist/components/Dashboard/Dashboard.js +0 -148
  39. package/dist/components/Dashboard/Dashboard.js.map +0 -1
  40. package/dist/components/Dashboard/DashboardHeader.d.ts +0 -4
  41. package/dist/components/Dashboard/DashboardHeader.d.ts.map +0 -1
  42. package/dist/components/Dashboard/DashboardHeader.js +0 -138
  43. package/dist/components/Dashboard/DashboardHeader.js.map +0 -1
  44. package/dist/contexts/DashboardContext.d.ts +0 -41
  45. package/dist/contexts/DashboardContext.d.ts.map +0 -1
  46. package/dist/contexts/DashboardContext.js +0 -187
  47. package/dist/contexts/DashboardContext.js.map +0 -1
  48. package/dist/core/transport/QUICTransport.d.ts +0 -320
  49. package/dist/core/transport/QUICTransport.d.ts.map +0 -1
  50. package/dist/core/transport/QUICTransport.js +0 -711
  51. package/dist/core/transport/QUICTransport.js.map +0 -1
  52. package/dist/learning/LearningPersistenceAdapter.d.ts +0 -84
  53. package/dist/learning/LearningPersistenceAdapter.d.ts.map +0 -1
  54. package/dist/learning/LearningPersistenceAdapter.js +0 -202
  55. package/dist/learning/LearningPersistenceAdapter.js.map +0 -1
  56. package/dist/learning/algorithms/QLearning.d.ts +0 -68
  57. package/dist/learning/algorithms/QLearning.d.ts.map +0 -1
  58. package/dist/learning/algorithms/QLearning.js +0 -116
  59. package/dist/learning/algorithms/QLearning.js.map +0 -1
  60. package/dist/mcp/handlers/advanced/requirements-generate-bdd.d.ts +0 -7
  61. package/dist/mcp/handlers/advanced/requirements-generate-bdd.d.ts.map +0 -1
  62. package/dist/mcp/handlers/advanced/requirements-generate-bdd.js +0 -267
  63. package/dist/mcp/handlers/advanced/requirements-generate-bdd.js.map +0 -1
  64. package/dist/mcp/handlers/advanced/requirements-validate.d.ts +0 -7
  65. package/dist/mcp/handlers/advanced/requirements-validate.d.ts.map +0 -1
  66. package/dist/mcp/handlers/advanced/requirements-validate.js +0 -175
  67. package/dist/mcp/handlers/advanced/requirements-validate.js.map +0 -1
  68. package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.d.ts +0 -15
  69. package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.d.ts.map +0 -1
  70. package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.js +0 -43
  71. package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.js.map +0 -1
  72. package/dist/mcp/handlers/analysis/performanceBenchmarkRun.d.ts +0 -58
  73. package/dist/mcp/handlers/analysis/performanceBenchmarkRun.d.ts.map +0 -1
  74. package/dist/mcp/handlers/analysis/performanceBenchmarkRun.js +0 -188
  75. package/dist/mcp/handlers/analysis/performanceBenchmarkRun.js.map +0 -1
  76. package/dist/mcp/handlers/optimize-tests.d.ts +0 -219
  77. package/dist/mcp/handlers/optimize-tests.d.ts.map +0 -1
  78. package/dist/mcp/handlers/optimize-tests.js +0 -533
  79. package/dist/mcp/handlers/optimize-tests.js.map +0 -1
  80. package/dist/mcp/handlers/predict-defects.d.ts +0 -194
  81. package/dist/mcp/handlers/predict-defects.d.ts.map +0 -1
  82. package/dist/mcp/handlers/predict-defects.js +0 -722
  83. package/dist/mcp/handlers/predict-defects.js.map +0 -1
  84. package/dist/mcp/handlers/prediction/regression-risk-analyze.d.ts +0 -199
  85. package/dist/mcp/handlers/prediction/regression-risk-analyze.d.ts.map +0 -1
  86. package/dist/mcp/handlers/prediction/regression-risk-analyze.js +0 -471
  87. package/dist/mcp/handlers/prediction/regression-risk-analyze.js.map +0 -1
  88. package/dist/mcp/handlers/quality/quality-decision-make.d.ts +0 -104
  89. package/dist/mcp/handlers/quality/quality-decision-make.d.ts.map +0 -1
  90. package/dist/mcp/handlers/quality/quality-decision-make.js +0 -408
  91. package/dist/mcp/handlers/quality/quality-decision-make.js.map +0 -1
  92. package/dist/mcp/handlers/quality/quality-gate-execute.d.ts +0 -160
  93. package/dist/mcp/handlers/quality/quality-gate-execute.d.ts.map +0 -1
  94. package/dist/mcp/handlers/quality/quality-gate-execute.js +0 -412
  95. package/dist/mcp/handlers/quality/quality-gate-execute.js.map +0 -1
  96. package/dist/mcp/handlers/quality/quality-policy-check.d.ts +0 -163
  97. package/dist/mcp/handlers/quality/quality-policy-check.d.ts.map +0 -1
  98. package/dist/mcp/handlers/quality/quality-policy-check.js +0 -455
  99. package/dist/mcp/handlers/quality/quality-policy-check.js.map +0 -1
  100. package/dist/mcp/handlers/quality/quality-risk-assess.d.ts +0 -123
  101. package/dist/mcp/handlers/quality/quality-risk-assess.d.ts.map +0 -1
  102. package/dist/mcp/handlers/quality/quality-risk-assess.js +0 -522
  103. package/dist/mcp/handlers/quality/quality-risk-assess.js.map +0 -1
  104. package/dist/mcp/handlers/quality/quality-validate-metrics.d.ts +0 -117
  105. package/dist/mcp/handlers/quality/quality-validate-metrics.d.ts.map +0 -1
  106. package/dist/mcp/handlers/quality/quality-validate-metrics.js +0 -288
  107. package/dist/mcp/handlers/quality/quality-validate-metrics.js.map +0 -1
  108. package/dist/mcp/handlers/quality-analyze.d.ts +0 -279
  109. package/dist/mcp/handlers/quality-analyze.d.ts.map +0 -1
  110. package/dist/mcp/handlers/quality-analyze.js +0 -720
  111. package/dist/mcp/handlers/quality-analyze.js.map +0 -1
  112. package/dist/mcp/handlers/security/check-authz.d.ts +0 -152
  113. package/dist/mcp/handlers/security/check-authz.d.ts.map +0 -1
  114. package/dist/mcp/handlers/security/check-authz.js +0 -434
  115. package/dist/mcp/handlers/security/check-authz.js.map +0 -1
  116. package/dist/mcp/handlers/security/scan-dependencies.d.ts +0 -148
  117. package/dist/mcp/handlers/security/scan-dependencies.d.ts.map +0 -1
  118. package/dist/mcp/handlers/security/scan-dependencies.js +0 -354
  119. package/dist/mcp/handlers/security/scan-dependencies.js.map +0 -1
  120. package/dist/mcp/handlers/security/validate-auth.d.ts +0 -128
  121. package/dist/mcp/handlers/security/validate-auth.d.ts.map +0 -1
  122. package/dist/mcp/handlers/security/validate-auth.js +0 -294
  123. package/dist/mcp/handlers/security/validate-auth.js.map +0 -1
  124. package/dist/mcp/handlers/test-generate.d.ts +0 -107
  125. package/dist/mcp/handlers/test-generate.d.ts.map +0 -1
  126. package/dist/mcp/handlers/test-generate.js +0 -454
  127. package/dist/mcp/handlers/test-generate.js.map +0 -1
@@ -1,522 +0,0 @@
1
- "use strict";
2
- /**
3
- * Quality Risk Assessment Handler
4
- *
5
- * AI-powered risk assessment for quality gates.
6
- * Uses psycho-symbolic reasoning for complex risk scenarios.
7
- *
8
- * @version 1.0.0
9
- * @author Agentic QE Team - Agent 2
10
- */
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.QualityRiskAssessHandler = void 0;
13
- const base_handler_js_1 = require("../base-handler.js");
14
- class QualityRiskAssessHandler extends base_handler_js_1.BaseHandler {
15
- constructor(hookExecutor) {
16
- super();
17
- this.riskWeights = {
18
- technical: 0.25,
19
- process: 0.15,
20
- deployment: 0.20,
21
- security: 0.25,
22
- performance: 0.15
23
- };
24
- this.hookExecutor = hookExecutor;
25
- }
26
- async handle(args) {
27
- return this.safeHandle(async () => {
28
- const requestId = this.generateRequestId();
29
- const startTime = Date.now();
30
- this.log('info', 'Starting risk assessment', { requestId, projectId: args.context.projectId });
31
- // Validate required parameters
32
- this.validateRequired(args, ['context', 'metrics']);
33
- // Execute pre-task hook
34
- await this.hookExecutor.executePreTask({
35
- description: `Risk assessment for ${args.context.projectId} (${args.context.environment})`,
36
- agentType: 'risk-analyzer',
37
- sessionId: requestId
38
- });
39
- // Perform comprehensive risk assessment
40
- const { result: assessment, executionTime } = await this.measureExecutionTime(async () => {
41
- // Identify risk factors
42
- const riskFactors = await this.identifyRiskFactors(args);
43
- // Calculate risk matrix
44
- const riskMatrix = this.calculateRiskMatrix(riskFactors);
45
- // Calculate overall risk score
46
- const riskScore = this.calculateOverallRiskScore(riskMatrix);
47
- // Determine overall risk level
48
- const overallRisk = this.determineRiskLevel(riskScore);
49
- // Calculate confidence based on data completeness
50
- const confidence = this.calculateConfidence(args);
51
- // Generate recommendations
52
- const recommendations = this.generateRecommendations(riskFactors, overallRisk);
53
- // AI insights if enabled
54
- let aiInsights;
55
- if (args.aiReasoning && overallRisk !== 'low') {
56
- aiInsights = await this.generateAIInsights(args, riskFactors, riskScore);
57
- }
58
- const result = {
59
- assessmentId: requestId,
60
- overallRisk,
61
- riskScore,
62
- confidence,
63
- riskFactors,
64
- riskMatrix,
65
- recommendations,
66
- aiInsights,
67
- metadata: {
68
- assessedAt: new Date().toISOString(),
69
- executionTime: Date.now() - startTime,
70
- model: 'risk-assessment-v1'
71
- }
72
- };
73
- return result;
74
- });
75
- this.log('info', `Risk assessment completed in ${executionTime.toFixed(2)}ms`, {
76
- assessmentId: assessment.assessmentId,
77
- overallRisk: assessment.overallRisk,
78
- riskScore: assessment.riskScore
79
- });
80
- // Store result in memory
81
- await this.hookExecutor.executePostEdit({
82
- file: `risk-assessment-${requestId}`,
83
- memoryKey: `aqe/swarm/quality-mcp-tools/risk-assessments/${requestId}`
84
- });
85
- // Execute post-task hook
86
- await this.hookExecutor.executePostTask({
87
- taskId: requestId,
88
- agentType: 'risk-analyzer',
89
- sessionId: requestId,
90
- results: {
91
- assessmentId: assessment.assessmentId,
92
- overallRisk: assessment.overallRisk,
93
- riskScore: assessment.riskScore,
94
- factorsCount: assessment.riskFactors.length
95
- }
96
- });
97
- return this.createSuccessResponse(assessment, requestId);
98
- });
99
- }
100
- async identifyRiskFactors(args) {
101
- const factors = [];
102
- // Technical risks
103
- factors.push(...this.assessTechnicalRisks(args));
104
- // Process risks
105
- factors.push(...this.assessProcessRisks(args));
106
- // Deployment risks
107
- factors.push(...this.assessDeploymentRisks(args));
108
- // Security risks
109
- factors.push(...this.assessSecurityRisks(args));
110
- // Performance risks
111
- factors.push(...this.assessPerformanceRisks(args));
112
- return factors.filter(f => f.probability > 0);
113
- }
114
- assessTechnicalRisks(args) {
115
- const factors = [];
116
- // Coverage risk
117
- if (args.metrics.coverage.line < 80) {
118
- const severity = args.metrics.coverage.line < 60 ? 'high' : 'medium';
119
- factors.push({
120
- id: 'tech-coverage',
121
- type: 'technical',
122
- severity,
123
- probability: 0.7,
124
- impact: 'Insufficient test coverage increases defect probability',
125
- indicators: [`Line coverage: ${args.metrics.coverage.line.toFixed(1)}%`],
126
- mitigation: [
127
- 'Add unit tests for uncovered code paths',
128
- 'Prioritize coverage for critical components',
129
- 'Set coverage gates before deployment'
130
- ],
131
- confidence: 0.9
132
- });
133
- }
134
- // Test reliability risk
135
- if (args.metrics.testResults.flakyTests > 0) {
136
- factors.push({
137
- id: 'tech-flaky-tests',
138
- type: 'technical',
139
- severity: 'medium',
140
- probability: 0.5,
141
- impact: 'Flaky tests reduce confidence in test suite',
142
- indicators: [`${args.metrics.testResults.flakyTests} flaky tests detected`],
143
- mitigation: [
144
- 'Investigate and fix flaky test patterns',
145
- 'Implement test retry logic',
146
- 'Add test stability monitoring'
147
- ],
148
- confidence: 0.85
149
- });
150
- }
151
- // Complexity risk
152
- if (args.metrics.quality.complexity > 15) {
153
- factors.push({
154
- id: 'tech-complexity',
155
- type: 'technical',
156
- severity: 'medium',
157
- probability: 0.6,
158
- impact: 'High complexity increases maintenance burden and defect rate',
159
- indicators: [`Cyclomatic complexity: ${args.metrics.quality.complexity}`],
160
- mitigation: [
161
- 'Refactor complex functions',
162
- 'Extract methods to reduce complexity',
163
- 'Apply SOLID principles'
164
- ],
165
- confidence: 0.88
166
- });
167
- }
168
- // Technical debt risk
169
- if (args.metrics.quality.technicalDebt > 50) {
170
- factors.push({
171
- id: 'tech-debt',
172
- type: 'technical',
173
- severity: 'high',
174
- probability: 0.65,
175
- impact: 'Accumulated technical debt slows development and increases risk',
176
- indicators: [`Technical debt: ${args.metrics.quality.technicalDebt} hours`],
177
- mitigation: [
178
- 'Allocate time for debt reduction',
179
- 'Prioritize high-impact refactoring',
180
- 'Implement code quality gates'
181
- ],
182
- confidence: 0.75
183
- });
184
- }
185
- return factors;
186
- }
187
- assessProcessRisks(args) {
188
- const factors = [];
189
- // Change set risk
190
- if (args.context.changeSet) {
191
- const { filesModified, linesChanged, complexity } = args.context.changeSet;
192
- if (filesModified > 50 || linesChanged > 1000) {
193
- factors.push({
194
- id: 'process-large-changeset',
195
- type: 'process',
196
- severity: 'medium',
197
- probability: 0.5,
198
- impact: 'Large changesets increase risk of defects and regression',
199
- indicators: [
200
- `Files modified: ${filesModified}`,
201
- `Lines changed: ${linesChanged}`
202
- ],
203
- mitigation: [
204
- 'Break into smaller deployments',
205
- 'Increase review rigor',
206
- 'Add monitoring for changed components'
207
- ],
208
- confidence: 0.82
209
- });
210
- }
211
- if (complexity > 20) {
212
- factors.push({
213
- id: 'process-high-complexity-changes',
214
- type: 'process',
215
- severity: 'high',
216
- probability: 0.6,
217
- impact: 'Complex changes require additional validation',
218
- indicators: [`Change complexity: ${complexity}`],
219
- mitigation: [
220
- 'Conduct peer review',
221
- 'Add integration tests',
222
- 'Perform manual QA testing'
223
- ],
224
- confidence: 0.78
225
- });
226
- }
227
- }
228
- // Historical risk
229
- if (args.historicalData) {
230
- if (args.historicalData.rollbackRate > 0.1) {
231
- factors.push({
232
- id: 'process-high-rollback-rate',
233
- type: 'process',
234
- severity: 'high',
235
- probability: 0.7,
236
- impact: 'Historical rollback rate indicates process issues',
237
- indicators: [`Rollback rate: ${(args.historicalData.rollbackRate * 100).toFixed(1)}%`],
238
- mitigation: [
239
- 'Review deployment process',
240
- 'Enhance testing strategy',
241
- 'Implement staged rollouts'
242
- ],
243
- confidence: 0.85
244
- });
245
- }
246
- }
247
- return factors;
248
- }
249
- assessDeploymentRisks(args) {
250
- const factors = [];
251
- // Production deployment risk
252
- if (args.context.environment === 'production') {
253
- const baseProbability = 0.3;
254
- let severity = 'medium';
255
- if (args.context.criticality === 'critical') {
256
- severity = 'critical';
257
- }
258
- else if (args.context.criticality === 'high') {
259
- severity = 'high';
260
- }
261
- factors.push({
262
- id: 'deploy-production',
263
- type: 'deployment',
264
- severity,
265
- probability: baseProbability,
266
- impact: 'Production deployment carries inherent risk',
267
- indicators: [
268
- `Environment: ${args.context.environment}`,
269
- `Criticality: ${args.context.criticality || 'medium'}`
270
- ],
271
- mitigation: [
272
- 'Implement canary deployment',
273
- 'Prepare rollback plan',
274
- 'Enable feature flags',
275
- 'Monitor key metrics closely'
276
- ],
277
- confidence: 0.95
278
- });
279
- }
280
- // Test failure risk
281
- const failureRate = args.metrics.testResults.failed / args.metrics.testResults.total;
282
- if (failureRate > 0.05) {
283
- factors.push({
284
- id: 'deploy-test-failures',
285
- type: 'deployment',
286
- severity: 'high',
287
- probability: 0.8,
288
- impact: 'Test failures indicate potential defects in deployment',
289
- indicators: [
290
- `${args.metrics.testResults.failed} tests failing`,
291
- `Failure rate: ${(failureRate * 100).toFixed(1)}%`
292
- ],
293
- mitigation: [
294
- 'Fix failing tests before deployment',
295
- 'Investigate root causes',
296
- 'Block deployment until resolved'
297
- ],
298
- confidence: 0.92
299
- });
300
- }
301
- return factors;
302
- }
303
- assessSecurityRisks(args) {
304
- const factors = [];
305
- // Critical vulnerabilities
306
- if (args.metrics.security.critical > 0) {
307
- factors.push({
308
- id: 'security-critical-vulns',
309
- type: 'security',
310
- severity: 'critical',
311
- probability: 0.9,
312
- impact: 'Critical security vulnerabilities pose severe risk',
313
- indicators: [`${args.metrics.security.critical} critical vulnerabilities`],
314
- mitigation: [
315
- 'Address critical vulnerabilities immediately',
316
- 'Block deployment until resolved',
317
- 'Conduct security review',
318
- 'Update dependencies'
319
- ],
320
- confidence: 0.98
321
- });
322
- }
323
- // High vulnerabilities
324
- if (args.metrics.security.high > 2) {
325
- factors.push({
326
- id: 'security-high-vulns',
327
- type: 'security',
328
- severity: 'high',
329
- probability: 0.7,
330
- impact: 'Multiple high-severity vulnerabilities increase attack surface',
331
- indicators: [`${args.metrics.security.high} high-severity vulnerabilities`],
332
- mitigation: [
333
- 'Prioritize high-severity vulnerability fixes',
334
- 'Review security practices',
335
- 'Update vulnerable dependencies'
336
- ],
337
- confidence: 0.90
338
- });
339
- }
340
- return factors;
341
- }
342
- assessPerformanceRisks(args) {
343
- const factors = [];
344
- // Performance regression risk
345
- if (args.metrics.performance.regressions > 0) {
346
- factors.push({
347
- id: 'perf-regressions',
348
- type: 'performance',
349
- severity: 'medium',
350
- probability: 0.6,
351
- impact: 'Performance regressions affect user experience',
352
- indicators: [`${args.metrics.performance.regressions} performance regressions detected`],
353
- mitigation: [
354
- 'Profile and optimize affected code paths',
355
- 'Add performance monitoring',
356
- 'Set performance budgets'
357
- ],
358
- confidence: 0.85
359
- });
360
- }
361
- // High error rate risk
362
- if (args.metrics.performance.errorRate > 0.05) {
363
- factors.push({
364
- id: 'perf-error-rate',
365
- type: 'performance',
366
- severity: 'high',
367
- probability: 0.75,
368
- impact: 'High error rate indicates stability issues',
369
- indicators: [`Error rate: ${(args.metrics.performance.errorRate * 100).toFixed(2)}%`],
370
- mitigation: [
371
- 'Investigate error patterns',
372
- 'Add error handling',
373
- 'Implement circuit breakers',
374
- 'Enhance monitoring'
375
- ],
376
- confidence: 0.88
377
- });
378
- }
379
- return factors;
380
- }
381
- calculateRiskMatrix(factors) {
382
- const matrix = {
383
- technical: 0,
384
- process: 0,
385
- deployment: 0,
386
- security: 0,
387
- performance: 0
388
- };
389
- for (const factor of factors) {
390
- const riskValue = this.calculateFactorRiskValue(factor);
391
- matrix[factor.type] += riskValue;
392
- }
393
- // Normalize to 0-100 scale
394
- Object.keys(matrix).forEach(key => {
395
- matrix[key] = Math.min(100, matrix[key]);
396
- });
397
- return matrix;
398
- }
399
- calculateFactorRiskValue(factor) {
400
- const severityWeights = { critical: 40, high: 25, medium: 15, low: 5 };
401
- const severityWeight = severityWeights[factor.severity];
402
- return severityWeight * factor.probability * factor.confidence;
403
- }
404
- calculateOverallRiskScore(matrix) {
405
- return Math.round(matrix.technical * this.riskWeights.technical +
406
- matrix.process * this.riskWeights.process +
407
- matrix.deployment * this.riskWeights.deployment +
408
- matrix.security * this.riskWeights.security +
409
- matrix.performance * this.riskWeights.performance);
410
- }
411
- determineRiskLevel(score) {
412
- if (score >= 75)
413
- return 'critical';
414
- if (score >= 50)
415
- return 'high';
416
- if (score >= 25)
417
- return 'medium';
418
- return 'low';
419
- }
420
- calculateConfidence(args) {
421
- let confidence = 1.0;
422
- // Reduce confidence if data is incomplete
423
- if (!args.historicalData)
424
- confidence -= 0.1;
425
- if (!args.context.changeSet)
426
- confidence -= 0.1;
427
- if (!args.metrics.coverage.delta)
428
- confidence -= 0.05;
429
- return Math.max(0.5, confidence);
430
- }
431
- generateRecommendations(factors, overallRisk) {
432
- const recommendations = [];
433
- // Critical and high-severity factors get immediate priority
434
- const criticalFactors = factors.filter(f => f.severity === 'critical');
435
- const highFactors = factors.filter(f => f.severity === 'high');
436
- for (const factor of criticalFactors) {
437
- for (const mitigation of factor.mitigation.slice(0, 2)) {
438
- recommendations.push({
439
- priority: 'immediate',
440
- action: mitigation,
441
- rationale: `Address critical risk: ${factor.impact}`
442
- });
443
- }
444
- }
445
- for (const factor of highFactors) {
446
- for (const mitigation of factor.mitigation.slice(0, 1)) {
447
- recommendations.push({
448
- priority: 'high',
449
- action: mitigation,
450
- rationale: `Mitigate high-severity risk: ${factor.impact}`
451
- });
452
- }
453
- }
454
- // Overall risk-based recommendations
455
- if (overallRisk === 'critical') {
456
- recommendations.push({
457
- priority: 'immediate',
458
- action: 'Block deployment until critical risks are mitigated',
459
- rationale: 'Overall risk level is critical'
460
- });
461
- }
462
- else if (overallRisk === 'high') {
463
- recommendations.push({
464
- priority: 'high',
465
- action: 'Implement staged rollout with close monitoring',
466
- rationale: 'Overall risk level is high'
467
- });
468
- }
469
- return recommendations;
470
- }
471
- async generateAIInsights(args, factors, riskScore) {
472
- // Simulate AI-powered psycho-symbolic reasoning
473
- const reasoning = this.simulateAIReasoning(args, factors, riskScore);
474
- const predictions = this.generatePredictions(args, factors);
475
- const alternativeScenarios = this.generateAlternativeScenarios(args, factors);
476
- return {
477
- reasoning,
478
- predictions,
479
- alternativeScenarios
480
- };
481
- }
482
- simulateAIReasoning(args, factors, riskScore) {
483
- const criticalFactors = factors.filter(f => f.severity === 'critical');
484
- const securityFactors = factors.filter(f => f.type === 'security');
485
- let reasoning = `Risk assessment analysis for ${args.context.projectId}: `;
486
- if (criticalFactors.length > 0) {
487
- reasoning += `Identified ${criticalFactors.length} critical risk factor(s) requiring immediate attention. `;
488
- }
489
- if (securityFactors.length > 0) {
490
- reasoning += `Security concerns present with ${securityFactors.length} identified risk(s). `;
491
- }
492
- if (args.context.environment === 'production' && riskScore > 50) {
493
- reasoning += `Production deployment with elevated risk score (${riskScore}) suggests additional validation is warranted. `;
494
- }
495
- reasoning += `Overall confidence in assessment: ${(args.historicalData ? 0.9 : 0.7).toFixed(2)}`;
496
- return reasoning;
497
- }
498
- generatePredictions(args, factors) {
499
- const predictions = [];
500
- const criticalCount = factors.filter(f => f.severity === 'critical').length;
501
- if (criticalCount > 0) {
502
- predictions.push(`${criticalCount} critical issue(s) likely to cause deployment failure if unaddressed`);
503
- }
504
- const failureRate = args.metrics.testResults.failed / args.metrics.testResults.total;
505
- if (failureRate > 0.1) {
506
- predictions.push(`High test failure rate (${(failureRate * 100).toFixed(1)}%) predicts elevated defect probability`);
507
- }
508
- if (args.metrics.security.critical > 0) {
509
- predictions.push('Security vulnerabilities present exploitation risk in production environment');
510
- }
511
- return predictions;
512
- }
513
- generateAlternativeScenarios(args, factors) {
514
- return [
515
- 'Scenario A: Address critical factors first, deploy with monitoring - 70% success probability',
516
- 'Scenario B: Full mitigation of all identified risks before deployment - 95% success probability',
517
- 'Scenario C: Deploy to staging first for validation - 85% success probability with delayed timeline'
518
- ];
519
- }
520
- }
521
- exports.QualityRiskAssessHandler = QualityRiskAssessHandler;
522
- //# sourceMappingURL=quality-risk-assess.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"quality-risk-assess.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/quality/quality-risk-assess.ts"],"names":[],"mappings":"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"}
@@ -1,117 +0,0 @@
1
- /**
2
- * Quality Validate Metrics Handler
3
- *
4
- * Validates quality metrics against configurable thresholds.
5
- * Provides detailed pass/fail analysis with recommendations.
6
- *
7
- * @version 1.0.0
8
- * @author Agentic QE Team - Agent 2
9
- */
10
- import { BaseHandler, HandlerResponse } from '../base-handler.js';
11
- import { HookExecutor } from '../../services/HookExecutor.js';
12
- export interface QualityMetricsThresholds {
13
- coverage?: {
14
- line?: number;
15
- branch?: number;
16
- function?: number;
17
- statement?: number;
18
- };
19
- testResults?: {
20
- minSuccessRate?: number;
21
- maxFailureRate?: number;
22
- maxSkippedRate?: number;
23
- };
24
- security?: {
25
- maxCritical?: number;
26
- maxHigh?: number;
27
- maxMedium?: number;
28
- maxTotal?: number;
29
- };
30
- performance?: {
31
- maxResponseTime?: number;
32
- minThroughput?: number;
33
- maxErrorRate?: number;
34
- };
35
- codeQuality?: {
36
- maxComplexity?: number;
37
- minMaintainability?: number;
38
- maxDuplication?: number;
39
- };
40
- }
41
- export interface MetricValidation {
42
- name: string;
43
- category: string;
44
- value: number;
45
- threshold: number;
46
- passed: boolean;
47
- deviation: number;
48
- severity: 'critical' | 'high' | 'medium' | 'low';
49
- message: string;
50
- }
51
- export interface QualityValidateMetricsArgs {
52
- metrics: {
53
- coverage: {
54
- line: number;
55
- branch: number;
56
- function: number;
57
- statement: number;
58
- };
59
- testResults: {
60
- total: number;
61
- passed: number;
62
- failed: number;
63
- skipped: number;
64
- };
65
- security: {
66
- critical: number;
67
- high: number;
68
- medium: number;
69
- low: number;
70
- };
71
- performance: {
72
- averageResponseTime: number;
73
- throughput: number;
74
- errorRate: number;
75
- };
76
- codeQuality: {
77
- complexity: number;
78
- maintainability: number;
79
- duplication: number;
80
- };
81
- };
82
- thresholds?: QualityMetricsThresholds;
83
- strictMode?: boolean;
84
- }
85
- export interface QualityValidateMetricsResult {
86
- validationId: string;
87
- passed: boolean;
88
- overallScore: number;
89
- validations: MetricValidation[];
90
- summary: {
91
- total: number;
92
- passed: number;
93
- failed: number;
94
- critical: number;
95
- warnings: number;
96
- };
97
- recommendations: string[];
98
- timestamp: string;
99
- }
100
- export declare class QualityValidateMetricsHandler extends BaseHandler {
101
- private hookExecutor;
102
- private defaultThresholds;
103
- constructor(hookExecutor: HookExecutor);
104
- handle(args: QualityValidateMetricsArgs): Promise<HandlerResponse>;
105
- private createDefaultThresholds;
106
- private validateCoverage;
107
- private validateTestResults;
108
- private validateSecurity;
109
- private validatePerformance;
110
- private validateCodeQuality;
111
- private createValidation;
112
- private determineSeverity;
113
- private calculateSummary;
114
- private calculateOverallScore;
115
- private generateRecommendations;
116
- }
117
- //# sourceMappingURL=quality-validate-metrics.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"quality-validate-metrics.d.ts","sourceRoot":"","sources":["../../../../src/mcp/handlers/quality/quality-validate-metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,WAAW,CAAC,EAAE;QACZ,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,WAAW,CAAC,EAAE;QACZ,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,WAAW,CAAC,EAAE;QACZ,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE;QACP,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE,MAAM,CAAC;YACjB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,WAAW,EAAE;YACX,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,MAAM,CAAC;YACf,MAAM,EAAE,MAAM,CAAC;YACf,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;QACF,QAAQ,EAAE;YACR,QAAQ,EAAE,MAAM,CAAC;YACjB,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,MAAM,CAAC;YACf,GAAG,EAAE,MAAM,CAAC;SACb,CAAC;QACF,WAAW,EAAE;YACX,mBAAmB,EAAE,MAAM,CAAC;YAC5B,UAAU,EAAE,MAAM,CAAC;YACnB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,WAAW,EAAE;YACX,UAAU,EAAE,MAAM,CAAC;YACnB,eAAe,EAAE,MAAM,CAAC;YACxB,WAAW,EAAE,MAAM,CAAC;SACrB,CAAC;KACH,CAAC;IACF,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,4BAA4B;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,6BAA8B,SAAQ,WAAW;IAC5D,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,iBAAiB,CAA2B;gBAExC,YAAY,EAAE,YAAY;IAMhC,MAAM,CAAC,IAAI,EAAE,0BAA0B,GAAG,OAAO,CAAC,eAAe,CAAC;IAyGxE,OAAO,CAAC,uBAAuB;IAgC/B,OAAO,CAAC,gBAAgB;IAqDxB,OAAO,CAAC,mBAAmB;IA6C3B,OAAO,CAAC,gBAAgB;IAyDxB,OAAO,CAAC,mBAAmB;IA4C3B,OAAO,CAAC,mBAAmB;IA0C3B,OAAO,CAAC,gBAAgB;IA+BxB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,uBAAuB;CAgChC"}