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,412 +0,0 @@
1
- "use strict";
2
- /**
3
- * Quality Gate Execute Handler
4
- *
5
- * Executes quality gates with policy enforcement and decision making.
6
- * Integrates with QualityGateAgent for intelligent evaluation.
7
- *
8
- * @version 1.0.0
9
- * @author Agentic QE Team - Agent 2
10
- */
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.QualityGateExecuteHandler = void 0;
13
- const base_handler_js_1 = require("../base-handler.js");
14
- class QualityGateExecuteHandler extends base_handler_js_1.BaseHandler {
15
- constructor(registry, hookExecutor) {
16
- super();
17
- this.registry = registry;
18
- this.hookExecutor = hookExecutor;
19
- this.defaultPolicy = this.createDefaultPolicy();
20
- }
21
- async handle(args) {
22
- return this.safeHandle(async () => {
23
- const requestId = this.generateRequestId();
24
- const startTime = Date.now();
25
- this.log('info', 'Executing quality gate', {
26
- requestId,
27
- projectId: args.projectId,
28
- environment: args.environment
29
- });
30
- let agentId;
31
- // Validate required parameters
32
- this.validateRequired(args, ['projectId', 'buildId', 'environment', 'metrics']);
33
- // Use provided policy or default
34
- const policy = args.policy || this.defaultPolicy;
35
- // Spawn quality-gate agent
36
- const spawnResult = await this.registry.spawnAgent('quality-gate', {
37
- name: `quality-gate-${args.buildId}`,
38
- description: `Quality gate evaluation for ${args.projectId} (${args.environment})`
39
- });
40
- agentId = spawnResult.id;
41
- this.log('info', 'Quality-gate agent spawned', { agentId });
42
- // Execute pre-task hook
43
- await this.hookExecutor.executePreTask({
44
- description: `Executing quality gate for ${args.projectId} in ${args.environment}`,
45
- agentType: 'quality-gate',
46
- agentId,
47
- sessionId: requestId
48
- });
49
- // Execute quality gate evaluation
50
- const { result: gateResult, executionTime } = await this.measureExecutionTime(async () => {
51
- // Validate metrics against policy
52
- const policyCompliance = await this.validatePolicyCompliance(args.metrics, policy);
53
- // Perform comprehensive evaluations
54
- const evaluations = await this.performEvaluations(args.metrics, policy);
55
- // Assess risk
56
- const riskAssessment = await this.assessRisk(args.metrics, args.context, policyCompliance);
57
- // Make final decision
58
- const decision = await this.makeDecision(evaluations, policyCompliance, riskAssessment, policy);
59
- // Generate recommendations
60
- const recommendations = await this.generateRecommendations(evaluations, policyCompliance, riskAssessment);
61
- // Calculate composite score
62
- const score = this.calculateCompositeScore(evaluations);
63
- const threshold = this.determineThreshold(policy, args.context);
64
- const result = {
65
- executionId: requestId,
66
- decision,
67
- score,
68
- threshold,
69
- policyCompliance,
70
- evaluations,
71
- riskAssessment,
72
- recommendations,
73
- metadata: {
74
- executedAt: new Date().toISOString(),
75
- executionTime: Date.now() - startTime,
76
- policyVersion: policy.version,
77
- agentId: agentId || 'unknown'
78
- }
79
- };
80
- return result;
81
- });
82
- this.log('info', `Quality gate executed in ${executionTime.toFixed(2)}ms`, {
83
- executionId: gateResult.executionId,
84
- decision: gateResult.decision,
85
- score: gateResult.score
86
- });
87
- // Store result in memory for swarm coordination
88
- await this.hookExecutor.executePostEdit({
89
- file: `quality-gate-${args.buildId}`,
90
- memoryKey: `aqe/swarm/quality-mcp-tools/executions/${args.buildId}`
91
- });
92
- // Execute post-task hook with results
93
- await this.hookExecutor.executePostTask({
94
- taskId: agentId,
95
- agentType: 'quality-gate',
96
- agentId,
97
- sessionId: requestId,
98
- results: {
99
- executionId: gateResult.executionId,
100
- decision: gateResult.decision,
101
- score: gateResult.score,
102
- compliant: gateResult.policyCompliance.compliant
103
- }
104
- });
105
- return this.createSuccessResponse(gateResult, requestId);
106
- });
107
- }
108
- createDefaultPolicy() {
109
- return {
110
- name: 'default-quality-policy',
111
- version: '1.0.0',
112
- thresholds: {
113
- coverage: 0.80,
114
- testSuccess: 0.95,
115
- securityVulns: 0,
116
- performanceRegression: 0.10,
117
- codeQuality: 0.75
118
- },
119
- rules: [
120
- {
121
- id: 'rule-critical-coverage',
122
- name: 'Critical Coverage Requirement',
123
- condition: 'coverage.line >= 80',
124
- action: 'block',
125
- severity: 'critical',
126
- description: 'Line coverage must be at least 80%'
127
- },
128
- {
129
- id: 'rule-test-success',
130
- name: 'Test Success Rate',
131
- condition: 'testSuccess >= 95',
132
- action: 'block',
133
- severity: 'high',
134
- description: 'Test success rate must be at least 95%'
135
- },
136
- {
137
- id: 'rule-no-critical-vulns',
138
- name: 'No Critical Vulnerabilities',
139
- condition: 'security.critical === 0',
140
- action: 'block',
141
- severity: 'critical',
142
- description: 'No critical security vulnerabilities allowed'
143
- },
144
- {
145
- id: 'rule-performance-regression',
146
- name: 'Performance Regression Check',
147
- condition: 'performanceRegression <= 10',
148
- action: 'warn',
149
- severity: 'medium',
150
- description: 'Performance regression should not exceed 10%'
151
- }
152
- ],
153
- enforcement: 'strict'
154
- };
155
- }
156
- async validatePolicyCompliance(metrics, policy) {
157
- const violations = [];
158
- const warnings = [];
159
- for (const rule of policy.rules) {
160
- const evaluation = await this.evaluateRule(rule, metrics, policy);
161
- if (!evaluation.passed) {
162
- if (rule.action === 'block') {
163
- violations.push({
164
- ruleId: rule.id,
165
- ruleName: rule.name,
166
- severity: rule.severity,
167
- message: rule.description,
168
- actualValue: evaluation.actualValue,
169
- expectedValue: evaluation.expectedValue
170
- });
171
- }
172
- else if (rule.action === 'warn') {
173
- warnings.push({
174
- ruleId: rule.id,
175
- message: rule.description,
176
- recommendation: `Consider improving ${rule.name.toLowerCase()}`
177
- });
178
- }
179
- }
180
- }
181
- return {
182
- compliant: violations.length === 0,
183
- violations,
184
- warnings
185
- };
186
- }
187
- async evaluateRule(rule, metrics, policy) {
188
- // Simple rule evaluation based on rule condition
189
- const ruleMap = {
190
- 'rule-critical-coverage': {
191
- passed: metrics.coverage.line >= policy.thresholds.coverage * 100,
192
- actualValue: metrics.coverage.line,
193
- expectedValue: policy.thresholds.coverage * 100
194
- },
195
- 'rule-test-success': {
196
- passed: (metrics.testResults.passed / metrics.testResults.total) >= policy.thresholds.testSuccess,
197
- actualValue: (metrics.testResults.passed / metrics.testResults.total) * 100,
198
- expectedValue: policy.thresholds.testSuccess * 100
199
- },
200
- 'rule-no-critical-vulns': {
201
- passed: metrics.security.critical === 0,
202
- actualValue: metrics.security.critical,
203
- expectedValue: 0
204
- },
205
- 'rule-performance-regression': {
206
- passed: metrics.performance.errorRate <= policy.thresholds.performanceRegression,
207
- actualValue: metrics.performance.errorRate * 100,
208
- expectedValue: policy.thresholds.performanceRegression * 100
209
- }
210
- };
211
- return ruleMap[rule.id] || { passed: true, actualValue: 0, expectedValue: 0 };
212
- }
213
- async performEvaluations(metrics, policy) {
214
- return {
215
- coverage: this.evaluateCoverage(metrics.coverage, policy.thresholds.coverage),
216
- testSuccess: this.evaluateTestSuccess(metrics.testResults, policy.thresholds.testSuccess),
217
- security: this.evaluateSecurity(metrics.security, policy.thresholds.securityVulns),
218
- performance: this.evaluatePerformance(metrics.performance, policy.thresholds.performanceRegression),
219
- codeQuality: this.evaluateCodeQuality(metrics.codeQuality, policy.thresholds.codeQuality)
220
- };
221
- }
222
- evaluateCoverage(coverage, threshold) {
223
- const avgCoverage = (coverage.line + coverage.branch + coverage.function + coverage.statement) / 4 / 100;
224
- const passed = avgCoverage >= threshold;
225
- const score = Math.min(1, avgCoverage / threshold);
226
- return {
227
- passed,
228
- value: avgCoverage * 100,
229
- threshold: threshold * 100,
230
- score,
231
- status: this.determineStatus(score)
232
- };
233
- }
234
- evaluateTestSuccess(testResults, threshold) {
235
- const successRate = testResults.passed / testResults.total;
236
- const passed = successRate >= threshold;
237
- const score = Math.min(1, successRate / threshold);
238
- return {
239
- passed,
240
- value: successRate * 100,
241
- threshold: threshold * 100,
242
- score,
243
- status: this.determineStatus(score)
244
- };
245
- }
246
- evaluateSecurity(security, threshold) {
247
- const criticalScore = security.critical === 0 ? 1.0 : 0.0;
248
- const highScore = security.high <= 2 ? 0.8 : 0.5;
249
- const score = (criticalScore + highScore) / 2;
250
- const passed = security.critical === 0 && security.high <= threshold;
251
- return {
252
- passed,
253
- value: security.vulnerabilities,
254
- threshold,
255
- score,
256
- status: this.determineStatus(score)
257
- };
258
- }
259
- evaluatePerformance(performance, threshold) {
260
- const passed = performance.errorRate <= threshold;
261
- const score = passed ? 1.0 - performance.errorRate : 0.5;
262
- return {
263
- passed,
264
- value: performance.errorRate * 100,
265
- threshold: threshold * 100,
266
- score,
267
- status: this.determineStatus(score)
268
- };
269
- }
270
- evaluateCodeQuality(codeQuality, threshold) {
271
- const qualityScore = (100 - codeQuality.complexity + codeQuality.maintainability + (100 - codeQuality.duplication)) / 300;
272
- const passed = qualityScore >= threshold;
273
- const score = Math.min(1, qualityScore / threshold);
274
- return {
275
- passed,
276
- value: qualityScore * 100,
277
- threshold: threshold * 100,
278
- score,
279
- status: this.determineStatus(score)
280
- };
281
- }
282
- determineStatus(score) {
283
- if (score >= 0.95)
284
- return 'excellent';
285
- if (score >= 0.85)
286
- return 'good';
287
- if (score >= 0.70)
288
- return 'fair';
289
- if (score >= 0.50)
290
- return 'poor';
291
- return 'critical';
292
- }
293
- async assessRisk(metrics, context, policyCompliance) {
294
- const factors = [];
295
- let riskScore = 0;
296
- // Check for critical violations
297
- if (policyCompliance.violations.some(v => v.severity === 'critical')) {
298
- factors.push('Critical policy violations detected');
299
- riskScore += 40;
300
- }
301
- // Check security vulnerabilities
302
- if (metrics.security.critical > 0) {
303
- factors.push(`${metrics.security.critical} critical security vulnerabilities`);
304
- riskScore += 30;
305
- }
306
- // Check test failure rate
307
- const failureRate = metrics.testResults.failed / metrics.testResults.total;
308
- if (failureRate > 0.05) {
309
- factors.push(`High test failure rate: ${(failureRate * 100).toFixed(1)}%`);
310
- riskScore += 20;
311
- }
312
- // Check deployment target
313
- if (context?.deploymentTarget === 'production' && context?.criticality === 'critical') {
314
- factors.push('Critical production deployment');
315
- riskScore += 10;
316
- }
317
- const level = riskScore >= 50 ? 'critical' :
318
- riskScore >= 30 ? 'high' :
319
- riskScore >= 15 ? 'medium' : 'low';
320
- return {
321
- level,
322
- factors,
323
- mitigation: this.generateMitigationStrategies(factors, level)
324
- };
325
- }
326
- generateMitigationStrategies(factors, level) {
327
- const strategies = [];
328
- if (level === 'critical' || level === 'high') {
329
- strategies.push('Block deployment until critical issues are resolved');
330
- strategies.push('Conduct thorough manual review');
331
- strategies.push('Implement rollback plan');
332
- }
333
- if (factors.some(f => f.includes('security'))) {
334
- strategies.push('Address security vulnerabilities immediately');
335
- strategies.push('Run additional security scans');
336
- }
337
- if (factors.some(f => f.includes('test failure'))) {
338
- strategies.push('Fix failing tests before proceeding');
339
- strategies.push('Investigate root cause of test failures');
340
- }
341
- return strategies;
342
- }
343
- async makeDecision(evaluations, policyCompliance, riskAssessment, policy) {
344
- // Critical failures always block
345
- if (!policyCompliance.compliant && policy.enforcement === 'blocking') {
346
- return 'FAIL';
347
- }
348
- // High/critical risk requires escalation or blocking
349
- if (riskAssessment.level === 'critical') {
350
- return 'FAIL';
351
- }
352
- if (riskAssessment.level === 'high') {
353
- return 'ESCALATE';
354
- }
355
- // Check if all critical evaluations passed
356
- const criticalEvaluations = [evaluations.coverage, evaluations.testSuccess, evaluations.security];
357
- const allCriticalPassed = criticalEvaluations.every(e => e.passed);
358
- if (!allCriticalPassed) {
359
- return policy.enforcement === 'strict' ? 'FAIL' : 'ESCALATE';
360
- }
361
- return 'PASS';
362
- }
363
- async generateRecommendations(evaluations, policyCompliance, riskAssessment) {
364
- const recommendations = [];
365
- if (!evaluations.coverage.passed) {
366
- recommendations.push('Increase test coverage to meet minimum threshold');
367
- }
368
- if (!evaluations.testSuccess.passed) {
369
- recommendations.push('Fix failing tests to improve success rate');
370
- }
371
- if (!evaluations.security.passed) {
372
- recommendations.push('Address security vulnerabilities before deployment');
373
- }
374
- if (!evaluations.performance.passed) {
375
- recommendations.push('Optimize performance to reduce error rate');
376
- }
377
- if (!evaluations.codeQuality.passed) {
378
- recommendations.push('Improve code quality through refactoring');
379
- }
380
- // Add risk-specific recommendations
381
- recommendations.push(...riskAssessment.mitigation);
382
- return recommendations;
383
- }
384
- calculateCompositeScore(evaluations) {
385
- const weights = {
386
- coverage: 0.25,
387
- testSuccess: 0.30,
388
- security: 0.25,
389
- performance: 0.10,
390
- codeQuality: 0.10
391
- };
392
- const weightedScore = evaluations.coverage.score * weights.coverage +
393
- evaluations.testSuccess.score * weights.testSuccess +
394
- evaluations.security.score * weights.security +
395
- evaluations.performance.score * weights.performance +
396
- evaluations.codeQuality.score * weights.codeQuality;
397
- return Math.round(weightedScore * 100 * 100) / 100; // Round to 2 decimal places
398
- }
399
- determineThreshold(policy, context) {
400
- let baseThreshold = 80; // Default 80%
401
- // Adjust based on environment and criticality
402
- if (context?.deploymentTarget === 'production') {
403
- baseThreshold += 5;
404
- }
405
- if (context?.criticality === 'critical') {
406
- baseThreshold += 5;
407
- }
408
- return Math.min(95, baseThreshold);
409
- }
410
- }
411
- exports.QualityGateExecuteHandler = QualityGateExecuteHandler;
412
- //# sourceMappingURL=quality-gate-execute.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"quality-gate-execute.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/quality/quality-gate-execute.ts"],"names":[],"mappings":"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"}
@@ -1,163 +0,0 @@
1
- /**
2
- * Quality Policy Check Handler
3
- *
4
- * Validates compliance with quality policies and regulations.
5
- * Supports custom policies, industry standards, and regulatory requirements.
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 QualityPolicy {
13
- id: string;
14
- name: string;
15
- version: string;
16
- type: 'custom' | 'industry' | 'regulatory' | 'organizational';
17
- standards: PolicyStandard[];
18
- enforcementLevel: 'mandatory' | 'recommended' | 'optional';
19
- scope: string[];
20
- owner: string;
21
- lastUpdated: string;
22
- }
23
- export interface PolicyStandard {
24
- id: string;
25
- name: string;
26
- category: string;
27
- requirements: PolicyRequirement[];
28
- description: string;
29
- }
30
- export interface PolicyRequirement {
31
- id: string;
32
- description: string;
33
- metric: string;
34
- operator: 'gte' | 'lte' | 'eq' | 'ne' | 'between';
35
- threshold: number | [number, number];
36
- critical: boolean;
37
- rationale: string;
38
- }
39
- export interface QualityPolicyCheckArgs {
40
- policyId?: string;
41
- customPolicy?: QualityPolicy;
42
- metrics: {
43
- coverage: {
44
- line: number;
45
- branch: number;
46
- function: number;
47
- statement: number;
48
- };
49
- quality: {
50
- complexity: number;
51
- maintainability: number;
52
- duplication: number;
53
- codeSmells: number;
54
- };
55
- security: {
56
- vulnerabilities: {
57
- critical: number;
58
- high: number;
59
- medium: number;
60
- low: number;
61
- };
62
- complianceScore: number;
63
- };
64
- documentation: {
65
- coverage: number;
66
- quality: number;
67
- };
68
- testing: {
69
- unitTestCoverage: number;
70
- integrationTestCoverage: number;
71
- e2eTestCoverage: number;
72
- mutationScore: number;
73
- };
74
- };
75
- context?: {
76
- projectType: string;
77
- industry: string;
78
- regulatoryRequirements?: string[];
79
- };
80
- }
81
- export interface PolicyCheckResult {
82
- checkId: string;
83
- compliant: boolean;
84
- overallScore: number;
85
- policyEvaluations: PolicyEvaluation[];
86
- violations: PolicyViolation[];
87
- warnings: PolicyWarning[];
88
- exemptions: PolicyExemption[];
89
- summary: {
90
- totalRequirements: number;
91
- satisfied: number;
92
- violated: number;
93
- warned: number;
94
- exempted: number;
95
- };
96
- recommendations: string[];
97
- metadata: {
98
- checkedAt: string;
99
- executionTime: number;
100
- policyVersion: string;
101
- };
102
- }
103
- export interface PolicyEvaluation {
104
- standardId: string;
105
- standardName: string;
106
- category: string;
107
- compliant: boolean;
108
- score: number;
109
- requirementResults: RequirementResult[];
110
- }
111
- export interface RequirementResult {
112
- requirementId: string;
113
- description: string;
114
- satisfied: boolean;
115
- actualValue: number;
116
- expectedValue: number | [number, number];
117
- deviation: number;
118
- critical: boolean;
119
- }
120
- export interface PolicyViolation {
121
- violationId: string;
122
- standardId: string;
123
- requirementId: string;
124
- severity: 'critical' | 'high' | 'medium' | 'low';
125
- description: string;
126
- actualValue: number;
127
- expectedValue: number | [number, number];
128
- impact: string;
129
- remediation: string[];
130
- }
131
- export interface PolicyWarning {
132
- warningId: string;
133
- standardId: string;
134
- message: string;
135
- recommendation: string;
136
- }
137
- export interface PolicyExemption {
138
- exemptionId: string;
139
- requirementId: string;
140
- reason: string;
141
- approvedBy: string;
142
- expiresAt?: string;
143
- }
144
- export declare class QualityPolicyCheckHandler extends BaseHandler {
145
- private hookExecutor;
146
- private builtInPolicies;
147
- constructor(hookExecutor: HookExecutor);
148
- handle(args: QualityPolicyCheckArgs): Promise<HandlerResponse>;
149
- private initializeBuiltInPolicies;
150
- private getDefaultPolicy;
151
- private evaluateStandards;
152
- private evaluateRequirement;
153
- private getMetricValue;
154
- private checkRequirement;
155
- private calculateDeviation;
156
- private identifyIssues;
157
- private applyExemptions;
158
- private calculateSummary;
159
- private determineCompliance;
160
- private calculateOverallScore;
161
- private generateRecommendations;
162
- }
163
- //# sourceMappingURL=quality-policy-check.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"quality-policy-check.d.ts","sourceRoot":"","sources":["../../../../src/mcp/handlers/quality/quality-policy-check.ts"],"names":[],"mappings":"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"}