agentic-qe 2.3.1 → 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 (128) hide show
  1. package/CHANGELOG.md +53 -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/core/memory/HNSWVectorMemory.js +1 -1
  16. package/dist/learning/PerformanceTracker.d.ts +9 -0
  17. package/dist/learning/PerformanceTracker.d.ts.map +1 -1
  18. package/dist/learning/PerformanceTracker.js +26 -2
  19. package/dist/learning/PerformanceTracker.js.map +1 -1
  20. package/dist/mcp/server-instructions.d.ts +1 -1
  21. package/dist/mcp/server-instructions.js +1 -1
  22. package/package.json +4 -2
  23. package/scripts/README.md +352 -0
  24. package/scripts/hooks/capture-task-learning.js +191 -0
  25. package/scripts/hooks/emit-task-complete.sh +35 -0
  26. package/scripts/hooks/emit-task-spawn.sh +27 -0
  27. package/.claude/agents/failing-agent.json +0 -9
  28. package/.claude/agents/test-agent.json +0 -9
  29. package/dist/App.d.ts +0 -5
  30. package/dist/App.d.ts.map +0 -1
  31. package/dist/App.js +0 -15
  32. package/dist/App.js.map +0 -1
  33. package/dist/cli/init/utils.d.ts +0 -183
  34. package/dist/cli/init/utils.d.ts.map +0 -1
  35. package/dist/cli/init/utils.js +0 -354
  36. package/dist/cli/init/utils.js.map +0 -1
  37. package/dist/components/Dashboard/Dashboard.d.ts +0 -4
  38. package/dist/components/Dashboard/Dashboard.d.ts.map +0 -1
  39. package/dist/components/Dashboard/Dashboard.js +0 -148
  40. package/dist/components/Dashboard/Dashboard.js.map +0 -1
  41. package/dist/components/Dashboard/DashboardHeader.d.ts +0 -4
  42. package/dist/components/Dashboard/DashboardHeader.d.ts.map +0 -1
  43. package/dist/components/Dashboard/DashboardHeader.js +0 -138
  44. package/dist/components/Dashboard/DashboardHeader.js.map +0 -1
  45. package/dist/contexts/DashboardContext.d.ts +0 -41
  46. package/dist/contexts/DashboardContext.d.ts.map +0 -1
  47. package/dist/contexts/DashboardContext.js +0 -187
  48. package/dist/contexts/DashboardContext.js.map +0 -1
  49. package/dist/core/transport/QUICTransport.d.ts +0 -320
  50. package/dist/core/transport/QUICTransport.d.ts.map +0 -1
  51. package/dist/core/transport/QUICTransport.js +0 -711
  52. package/dist/core/transport/QUICTransport.js.map +0 -1
  53. package/dist/learning/LearningPersistenceAdapter.d.ts +0 -84
  54. package/dist/learning/LearningPersistenceAdapter.d.ts.map +0 -1
  55. package/dist/learning/LearningPersistenceAdapter.js +0 -202
  56. package/dist/learning/LearningPersistenceAdapter.js.map +0 -1
  57. package/dist/learning/algorithms/QLearning.d.ts +0 -68
  58. package/dist/learning/algorithms/QLearning.d.ts.map +0 -1
  59. package/dist/learning/algorithms/QLearning.js +0 -116
  60. package/dist/learning/algorithms/QLearning.js.map +0 -1
  61. package/dist/mcp/handlers/advanced/requirements-generate-bdd.d.ts +0 -7
  62. package/dist/mcp/handlers/advanced/requirements-generate-bdd.d.ts.map +0 -1
  63. package/dist/mcp/handlers/advanced/requirements-generate-bdd.js +0 -267
  64. package/dist/mcp/handlers/advanced/requirements-generate-bdd.js.map +0 -1
  65. package/dist/mcp/handlers/advanced/requirements-validate.d.ts +0 -7
  66. package/dist/mcp/handlers/advanced/requirements-validate.d.ts.map +0 -1
  67. package/dist/mcp/handlers/advanced/requirements-validate.js +0 -175
  68. package/dist/mcp/handlers/advanced/requirements-validate.js.map +0 -1
  69. package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.d.ts +0 -15
  70. package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.d.ts.map +0 -1
  71. package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.js +0 -43
  72. package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.js.map +0 -1
  73. package/dist/mcp/handlers/analysis/performanceBenchmarkRun.d.ts +0 -58
  74. package/dist/mcp/handlers/analysis/performanceBenchmarkRun.d.ts.map +0 -1
  75. package/dist/mcp/handlers/analysis/performanceBenchmarkRun.js +0 -188
  76. package/dist/mcp/handlers/analysis/performanceBenchmarkRun.js.map +0 -1
  77. package/dist/mcp/handlers/optimize-tests.d.ts +0 -219
  78. package/dist/mcp/handlers/optimize-tests.d.ts.map +0 -1
  79. package/dist/mcp/handlers/optimize-tests.js +0 -533
  80. package/dist/mcp/handlers/optimize-tests.js.map +0 -1
  81. package/dist/mcp/handlers/predict-defects.d.ts +0 -194
  82. package/dist/mcp/handlers/predict-defects.d.ts.map +0 -1
  83. package/dist/mcp/handlers/predict-defects.js +0 -722
  84. package/dist/mcp/handlers/predict-defects.js.map +0 -1
  85. package/dist/mcp/handlers/prediction/regression-risk-analyze.d.ts +0 -199
  86. package/dist/mcp/handlers/prediction/regression-risk-analyze.d.ts.map +0 -1
  87. package/dist/mcp/handlers/prediction/regression-risk-analyze.js +0 -471
  88. package/dist/mcp/handlers/prediction/regression-risk-analyze.js.map +0 -1
  89. package/dist/mcp/handlers/quality/quality-decision-make.d.ts +0 -104
  90. package/dist/mcp/handlers/quality/quality-decision-make.d.ts.map +0 -1
  91. package/dist/mcp/handlers/quality/quality-decision-make.js +0 -408
  92. package/dist/mcp/handlers/quality/quality-decision-make.js.map +0 -1
  93. package/dist/mcp/handlers/quality/quality-gate-execute.d.ts +0 -160
  94. package/dist/mcp/handlers/quality/quality-gate-execute.d.ts.map +0 -1
  95. package/dist/mcp/handlers/quality/quality-gate-execute.js +0 -412
  96. package/dist/mcp/handlers/quality/quality-gate-execute.js.map +0 -1
  97. package/dist/mcp/handlers/quality/quality-policy-check.d.ts +0 -163
  98. package/dist/mcp/handlers/quality/quality-policy-check.d.ts.map +0 -1
  99. package/dist/mcp/handlers/quality/quality-policy-check.js +0 -455
  100. package/dist/mcp/handlers/quality/quality-policy-check.js.map +0 -1
  101. package/dist/mcp/handlers/quality/quality-risk-assess.d.ts +0 -123
  102. package/dist/mcp/handlers/quality/quality-risk-assess.d.ts.map +0 -1
  103. package/dist/mcp/handlers/quality/quality-risk-assess.js +0 -522
  104. package/dist/mcp/handlers/quality/quality-risk-assess.js.map +0 -1
  105. package/dist/mcp/handlers/quality/quality-validate-metrics.d.ts +0 -117
  106. package/dist/mcp/handlers/quality/quality-validate-metrics.d.ts.map +0 -1
  107. package/dist/mcp/handlers/quality/quality-validate-metrics.js +0 -288
  108. package/dist/mcp/handlers/quality/quality-validate-metrics.js.map +0 -1
  109. package/dist/mcp/handlers/quality-analyze.d.ts +0 -279
  110. package/dist/mcp/handlers/quality-analyze.d.ts.map +0 -1
  111. package/dist/mcp/handlers/quality-analyze.js +0 -720
  112. package/dist/mcp/handlers/quality-analyze.js.map +0 -1
  113. package/dist/mcp/handlers/security/check-authz.d.ts +0 -152
  114. package/dist/mcp/handlers/security/check-authz.d.ts.map +0 -1
  115. package/dist/mcp/handlers/security/check-authz.js +0 -434
  116. package/dist/mcp/handlers/security/check-authz.js.map +0 -1
  117. package/dist/mcp/handlers/security/scan-dependencies.d.ts +0 -148
  118. package/dist/mcp/handlers/security/scan-dependencies.d.ts.map +0 -1
  119. package/dist/mcp/handlers/security/scan-dependencies.js +0 -354
  120. package/dist/mcp/handlers/security/scan-dependencies.js.map +0 -1
  121. package/dist/mcp/handlers/security/validate-auth.d.ts +0 -128
  122. package/dist/mcp/handlers/security/validate-auth.d.ts.map +0 -1
  123. package/dist/mcp/handlers/security/validate-auth.js +0 -294
  124. package/dist/mcp/handlers/security/validate-auth.js.map +0 -1
  125. package/dist/mcp/handlers/test-generate.d.ts +0 -107
  126. package/dist/mcp/handlers/test-generate.d.ts.map +0 -1
  127. package/dist/mcp/handlers/test-generate.js +0 -454
  128. package/dist/mcp/handlers/test-generate.js.map +0 -1
@@ -1,408 +0,0 @@
1
- "use strict";
2
- /**
3
- * Quality Decision Make Handler
4
- *
5
- * Makes intelligent go/no-go deployment decisions based on quality metrics,
6
- * risk assessment, and policy compliance.
7
- *
8
- * @version 1.0.0
9
- * @author Agentic QE Team - Agent 2
10
- */
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.QualityDecisionMakeHandler = void 0;
13
- const base_handler_js_1 = require("../base-handler.js");
14
- class QualityDecisionMakeHandler extends base_handler_js_1.BaseHandler {
15
- constructor(hookExecutor) {
16
- super();
17
- this.decisionWeights = {
18
- qualityGate: 0.35,
19
- riskLevel: 0.30,
20
- policyCompliance: 0.25,
21
- historicalPerformance: 0.10
22
- };
23
- this.hookExecutor = hookExecutor;
24
- }
25
- async handle(args) {
26
- return this.safeHandle(async () => {
27
- const requestId = this.generateRequestId();
28
- const startTime = Date.now();
29
- this.log('info', 'Making deployment decision', {
30
- requestId,
31
- projectId: args.context.projectId,
32
- environment: args.context.environment
33
- });
34
- // Validate required parameters
35
- this.validateRequired(args, ['context', 'inputs']);
36
- // Execute pre-task hook
37
- await this.hookExecutor.executePreTask({
38
- description: `Making deployment decision for ${args.context.projectId}`,
39
- agentType: 'quality-gate',
40
- sessionId: requestId
41
- });
42
- // Make deployment decision
43
- const { result: decision, executionTime } = await this.measureExecutionTime(async () => {
44
- // Evaluate decision factors
45
- const factors = await this.evaluateDecisionFactors(args);
46
- // Calculate composite decision score
47
- const compositeScore = this.calculateCompositeScore(factors);
48
- // Apply decision logic
49
- const preliminaryDecision = await this.applyDecisionLogic(factors, compositeScore, args);
50
- // Check for overrides
51
- const finalDecision = this.applyOverrides(preliminaryDecision, args.overrides);
52
- // Determine if approval is required
53
- const approvalRequired = this.requiresApproval(finalDecision, factors, args);
54
- // Generate conditions for conditional go
55
- const conditions = finalDecision === 'CONDITIONAL_GO'
56
- ? await this.generateConditions(factors, args)
57
- : undefined;
58
- // Generate reasoning
59
- const reasoning = this.generateReasoning(finalDecision, factors, args);
60
- // Generate recommendations
61
- const recommendations = this.generateRecommendations(finalDecision, factors, args);
62
- // Calculate confidence
63
- const confidence = this.calculateDecisionConfidence(factors, args);
64
- const result = {
65
- decisionId: requestId,
66
- decision: finalDecision,
67
- confidence,
68
- reasoning,
69
- factors,
70
- conditions,
71
- recommendations,
72
- approvalRequired,
73
- metadata: {
74
- decidedAt: new Date().toISOString(),
75
- executionTime: Date.now() - startTime,
76
- decisionModel: 'intelligent-decision-v1',
77
- confidence
78
- }
79
- };
80
- return result;
81
- });
82
- this.log('info', `Decision made in ${executionTime.toFixed(2)}ms`, {
83
- decisionId: decision.decisionId,
84
- decision: decision.decision,
85
- confidence: decision.confidence
86
- });
87
- // Store decision in memory
88
- await this.hookExecutor.executePostEdit({
89
- file: `decision-${requestId}`,
90
- memoryKey: `aqe/swarm/quality-mcp-tools/decisions/${requestId}`
91
- });
92
- // Execute post-task hook
93
- await this.hookExecutor.executePostTask({
94
- taskId: requestId,
95
- agentType: 'quality-gate',
96
- sessionId: requestId,
97
- results: {
98
- decisionId: decision.decisionId,
99
- decision: decision.decision,
100
- confidence: decision.confidence,
101
- approvalRequired: decision.approvalRequired
102
- }
103
- });
104
- return this.createSuccessResponse(decision, requestId);
105
- });
106
- }
107
- async evaluateDecisionFactors(args) {
108
- const factors = [];
109
- // Quality gate factor
110
- factors.push({
111
- name: 'Quality Gate',
112
- category: 'quality',
113
- weight: this.decisionWeights.qualityGate,
114
- value: args.inputs.qualityGateResult.score,
115
- threshold: args.inputs.qualityGateResult.threshold,
116
- passed: args.inputs.qualityGateResult.decision === 'PASS',
117
- impact: args.inputs.qualityGateResult.decision === 'FAIL' ? 'blocking' : 'informational',
118
- description: `Quality gate ${args.inputs.qualityGateResult.decision.toLowerCase()} with score ${args.inputs.qualityGateResult.score.toFixed(1)}`
119
- });
120
- // Risk assessment factor
121
- const riskScore = 100 - args.inputs.riskAssessment.riskScore; // Invert for scoring
122
- const riskPassed = ['low', 'medium'].includes(args.inputs.riskAssessment.overallRisk);
123
- factors.push({
124
- name: 'Risk Assessment',
125
- category: 'risk',
126
- weight: this.decisionWeights.riskLevel,
127
- value: riskScore,
128
- threshold: 50,
129
- passed: riskPassed,
130
- impact: args.inputs.riskAssessment.overallRisk === 'critical' ? 'blocking' : 'warning',
131
- description: `Risk level: ${args.inputs.riskAssessment.overallRisk} (score: ${args.inputs.riskAssessment.riskScore})`
132
- });
133
- // Policy compliance factor
134
- factors.push({
135
- name: 'Policy Compliance',
136
- category: 'compliance',
137
- weight: this.decisionWeights.policyCompliance,
138
- value: args.inputs.policyCompliance.compliant ? 100 : 0,
139
- threshold: 100,
140
- passed: args.inputs.policyCompliance.compliant,
141
- impact: args.inputs.policyCompliance.criticalViolations > 0 ? 'blocking' : 'warning',
142
- description: `${args.inputs.policyCompliance.compliant ? 'Compliant' : 'Non-compliant'} with ${args.inputs.policyCompliance.violations} violation(s)`
143
- });
144
- // Historical performance factor (if available)
145
- if (args.inputs.historicalPerformance) {
146
- const historicalScore = args.inputs.historicalPerformance.recentDeploymentSuccessRate * 100;
147
- factors.push({
148
- name: 'Historical Performance',
149
- category: 'historical',
150
- weight: this.decisionWeights.historicalPerformance,
151
- value: historicalScore,
152
- threshold: 85,
153
- passed: historicalScore >= 85,
154
- impact: 'informational',
155
- description: `Recent deployment success rate: ${historicalScore.toFixed(1)}%`
156
- });
157
- }
158
- // Environment-specific factors
159
- if (args.context.environment === 'production') {
160
- factors.push({
161
- name: 'Production Readiness',
162
- category: 'process',
163
- weight: 0.15,
164
- value: this.assessProductionReadiness(args),
165
- threshold: 90,
166
- passed: this.assessProductionReadiness(args) >= 90,
167
- impact: 'blocking',
168
- description: 'Production deployment requires higher quality standards'
169
- });
170
- }
171
- // Urgency factor
172
- if (args.context.urgency === 'critical' && args.context.deploymentType === 'hotfix') {
173
- factors.push({
174
- name: 'Critical Hotfix',
175
- category: 'process',
176
- weight: 0.10,
177
- value: 80, // Slightly lower threshold for critical hotfixes
178
- threshold: 70,
179
- passed: true,
180
- impact: 'informational',
181
- description: 'Critical hotfix deployment with adjusted criteria'
182
- });
183
- }
184
- return factors;
185
- }
186
- calculateCompositeScore(factors) {
187
- let totalScore = 0;
188
- let totalWeight = 0;
189
- for (const factor of factors) {
190
- totalScore += factor.value * factor.weight;
191
- totalWeight += factor.weight;
192
- }
193
- return totalWeight > 0 ? totalScore / totalWeight : 0;
194
- }
195
- async applyDecisionLogic(factors, compositeScore, args) {
196
- // Check for blocking factors
197
- const blockingFactors = factors.filter(f => f.impact === 'blocking' && !f.passed);
198
- if (blockingFactors.length > 0) {
199
- return 'NO_GO';
200
- }
201
- // Check decision criteria if provided
202
- const criteria = args.decisionCriteria;
203
- if (criteria) {
204
- if (criteria.minQualityScore && args.inputs.qualityGateResult.score < criteria.minQualityScore) {
205
- return 'NO_GO';
206
- }
207
- if (criteria.requireCompliance && !args.inputs.policyCompliance.compliant) {
208
- return 'NO_GO';
209
- }
210
- if (criteria.maxRiskLevel) {
211
- const riskLevels = ['low', 'medium', 'high', 'critical'];
212
- const currentLevel = riskLevels.indexOf(args.inputs.riskAssessment.overallRisk);
213
- const maxLevel = riskLevels.indexOf(criteria.maxRiskLevel);
214
- if (currentLevel > maxLevel) {
215
- return 'NO_GO';
216
- }
217
- }
218
- }
219
- // Check for escalation conditions
220
- if (args.inputs.qualityGateResult.decision === 'ESCALATE') {
221
- return 'ESCALATE';
222
- }
223
- // Check for warning factors
224
- const warningFactors = factors.filter(f => f.impact === 'warning' && !f.passed);
225
- if (warningFactors.length > 0) {
226
- // If composite score is still acceptable, allow conditional go
227
- if (compositeScore >= 75) {
228
- return 'CONDITIONAL_GO';
229
- }
230
- else {
231
- return 'NO_GO';
232
- }
233
- }
234
- // All checks passed
235
- if (compositeScore >= 85) {
236
- return 'GO';
237
- }
238
- else if (compositeScore >= 75) {
239
- return 'CONDITIONAL_GO';
240
- }
241
- else {
242
- return 'NO_GO';
243
- }
244
- }
245
- applyOverrides(decision, overrides) {
246
- if (!overrides || !overrides.allowPolicyOverride) {
247
- return decision;
248
- }
249
- // Only allow override for CONDITIONAL_GO or NO_GO with proper authorization
250
- if (decision === 'NO_GO' && overrides.approvedBy) {
251
- this.log('warn', 'Policy override applied', {
252
- reason: overrides.overrideReason,
253
- approvedBy: overrides.approvedBy
254
- });
255
- return 'CONDITIONAL_GO';
256
- }
257
- return decision;
258
- }
259
- requiresApproval(decision, factors, args) {
260
- // Always require approval for escalations
261
- if (decision === 'ESCALATE') {
262
- return true;
263
- }
264
- // Require approval for conditional go in production
265
- if (decision === 'CONDITIONAL_GO' && args.context.environment === 'production') {
266
- return true;
267
- }
268
- // Require approval if there are critical violations
269
- if (args.inputs.policyCompliance.criticalViolations > 0) {
270
- return true;
271
- }
272
- // Require approval for high risk deployments
273
- if (args.inputs.riskAssessment.overallRisk === 'high') {
274
- return true;
275
- }
276
- return false;
277
- }
278
- async generateConditions(factors, args) {
279
- const conditions = [];
280
- // Add conditions for failed warning factors
281
- const warningFactors = factors.filter(f => f.impact === 'warning' && !f.passed);
282
- for (const factor of warningFactors) {
283
- conditions.push({
284
- id: `cond-${factor.name.toLowerCase().replace(/\s+/g, '-')}`,
285
- condition: `Monitor ${factor.name.toLowerCase()} closely during deployment`,
286
- required: true,
287
- verifiable: true,
288
- verificationMethod: 'Real-time monitoring and alerting'
289
- });
290
- }
291
- // Add environment-specific conditions
292
- if (args.context.environment === 'production') {
293
- conditions.push({
294
- id: 'cond-rollback-plan',
295
- condition: 'Rollback plan must be prepared and tested',
296
- required: true,
297
- verifiable: true,
298
- verificationMethod: 'Document rollback procedure'
299
- });
300
- conditions.push({
301
- id: 'cond-monitoring',
302
- condition: 'Enhanced monitoring must be active during deployment',
303
- required: true,
304
- verifiable: true,
305
- verificationMethod: 'Confirm monitoring dashboards are operational'
306
- });
307
- }
308
- // Add risk-specific conditions
309
- if (args.inputs.riskAssessment.overallRisk === 'medium' || args.inputs.riskAssessment.overallRisk === 'high') {
310
- conditions.push({
311
- id: 'cond-staged-rollout',
312
- condition: 'Deploy using staged rollout (canary or blue-green)',
313
- required: true,
314
- verifiable: true,
315
- verificationMethod: 'Verify deployment strategy configuration'
316
- });
317
- }
318
- return conditions;
319
- }
320
- generateReasoning(decision, factors, args) {
321
- const passedFactors = factors.filter(f => f.passed);
322
- const failedFactors = factors.filter(f => !f.passed);
323
- let reasoning = `Deployment decision: ${decision}. `;
324
- reasoning += `${passedFactors.length} of ${factors.length} factors passed. `;
325
- if (decision === 'GO') {
326
- reasoning += 'All quality criteria met with acceptable risk levels. Deployment approved without conditions.';
327
- }
328
- else if (decision === 'CONDITIONAL_GO') {
329
- reasoning += `Some concerns identified (${failedFactors.map(f => f.name).join(', ')}), but overall quality acceptable. `;
330
- reasoning += 'Deployment approved with monitoring conditions.';
331
- }
332
- else if (decision === 'NO_GO') {
333
- const blockingFactors = failedFactors.filter(f => f.impact === 'blocking');
334
- reasoning += `Blocking issues prevent deployment: ${blockingFactors.map(f => f.name).join(', ')}. `;
335
- reasoning += 'Address these issues before retrying deployment.';
336
- }
337
- else if (decision === 'ESCALATE') {
338
- reasoning += 'Complex quality state requires human judgment. Manual review and approval required.';
339
- }
340
- return reasoning;
341
- }
342
- generateRecommendations(decision, factors, args) {
343
- const recommendations = [];
344
- if (decision === 'GO') {
345
- recommendations.push('Proceed with deployment');
346
- recommendations.push('Monitor key metrics during rollout');
347
- }
348
- else if (decision === 'CONDITIONAL_GO') {
349
- recommendations.push('Proceed with caution and enhanced monitoring');
350
- recommendations.push('Prepare rollback plan');
351
- recommendations.push('Consider staged rollout approach');
352
- }
353
- else if (decision === 'NO_GO') {
354
- const failedFactors = factors.filter(f => !f.passed);
355
- for (const factor of failedFactors) {
356
- recommendations.push(`Address ${factor.name.toLowerCase()}: ${factor.description}`);
357
- }
358
- recommendations.push('Rerun quality gates after fixes');
359
- }
360
- else if (decision === 'ESCALATE') {
361
- recommendations.push('Request manual review from deployment authority');
362
- recommendations.push('Provide additional context about the deployment');
363
- recommendations.push('Consider splitting deployment into smaller changes');
364
- }
365
- return recommendations;
366
- }
367
- calculateDecisionConfidence(factors, args) {
368
- let confidence = 1.0;
369
- // Reduce confidence if factors are close to thresholds
370
- for (const factor of factors) {
371
- const distance = Math.abs(factor.value - factor.threshold) / factor.threshold;
372
- if (distance < 0.1) {
373
- confidence -= 0.05; // Close to threshold reduces confidence
374
- }
375
- }
376
- // Reduce confidence if no historical data
377
- if (!args.inputs.historicalPerformance) {
378
- confidence -= 0.1;
379
- }
380
- // Reduce confidence for hotfixes
381
- if (args.context.deploymentType === 'hotfix') {
382
- confidence -= 0.05;
383
- }
384
- return Math.max(0.5, Math.min(1.0, confidence));
385
- }
386
- assessProductionReadiness(args) {
387
- let readiness = 100;
388
- // Deduct points for various issues
389
- if (args.inputs.qualityGateResult.decision === 'FAIL') {
390
- readiness -= 30;
391
- }
392
- else if (args.inputs.qualityGateResult.decision === 'ESCALATE') {
393
- readiness -= 15;
394
- }
395
- if (!args.inputs.policyCompliance.compliant) {
396
- readiness -= 20;
397
- }
398
- if (args.inputs.riskAssessment.overallRisk === 'high') {
399
- readiness -= 15;
400
- }
401
- else if (args.inputs.riskAssessment.overallRisk === 'critical') {
402
- readiness -= 40;
403
- }
404
- return Math.max(0, readiness);
405
- }
406
- }
407
- exports.QualityDecisionMakeHandler = QualityDecisionMakeHandler;
408
- //# sourceMappingURL=quality-decision-make.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"quality-decision-make.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/quality/quality-decision-make.ts"],"names":[],"mappings":"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"}
@@ -1,160 +0,0 @@
1
- /**
2
- * Quality Gate Execute Handler
3
- *
4
- * Executes quality gates with policy enforcement and decision making.
5
- * Integrates with QualityGateAgent for intelligent evaluation.
6
- *
7
- * @version 1.0.0
8
- * @author Agentic QE Team - Agent 2
9
- */
10
- import { BaseHandler, HandlerResponse } from '../base-handler.js';
11
- import { AgentRegistry } from '../../services/AgentRegistry.js';
12
- import { HookExecutor } from '../../services/HookExecutor.js';
13
- export interface QualityGatePolicy {
14
- name: string;
15
- version: string;
16
- thresholds: {
17
- coverage: number;
18
- testSuccess: number;
19
- securityVulns: number;
20
- performanceRegression: number;
21
- codeQuality: number;
22
- };
23
- rules: PolicyRule[];
24
- enforcement: 'strict' | 'advisory' | 'blocking';
25
- exceptions?: PolicyException[];
26
- }
27
- export interface PolicyRule {
28
- id: string;
29
- name: string;
30
- condition: string;
31
- action: 'block' | 'warn' | 'notify';
32
- severity: 'critical' | 'high' | 'medium' | 'low';
33
- description: string;
34
- }
35
- export interface PolicyException {
36
- ruleId: string;
37
- reason: string;
38
- approvedBy: string;
39
- expiresAt?: string;
40
- }
41
- export interface QualityGateExecuteArgs {
42
- projectId: string;
43
- buildId: string;
44
- environment: 'development' | 'staging' | 'production';
45
- policy?: QualityGatePolicy;
46
- metrics: {
47
- coverage: {
48
- line: number;
49
- branch: number;
50
- function: number;
51
- statement: number;
52
- };
53
- testResults: {
54
- total: number;
55
- passed: number;
56
- failed: number;
57
- skipped: number;
58
- };
59
- security: {
60
- vulnerabilities: number;
61
- critical: number;
62
- high: number;
63
- medium: number;
64
- low: number;
65
- };
66
- performance: {
67
- averageResponseTime: number;
68
- throughput: number;
69
- errorRate: number;
70
- };
71
- codeQuality: {
72
- complexity: number;
73
- maintainability: number;
74
- duplication: number;
75
- };
76
- };
77
- context?: {
78
- deploymentTarget?: string;
79
- criticality?: 'low' | 'medium' | 'high' | 'critical';
80
- changes?: Array<{
81
- file: string;
82
- type: 'added' | 'modified' | 'deleted';
83
- complexity: number;
84
- }>;
85
- };
86
- }
87
- export interface QualityGateExecuteResult {
88
- executionId: string;
89
- decision: 'PASS' | 'FAIL' | 'ESCALATE';
90
- score: number;
91
- threshold: number;
92
- policyCompliance: {
93
- compliant: boolean;
94
- violations: PolicyViolation[];
95
- warnings: PolicyWarning[];
96
- };
97
- evaluations: {
98
- coverage: EvaluationResult;
99
- testSuccess: EvaluationResult;
100
- security: EvaluationResult;
101
- performance: EvaluationResult;
102
- codeQuality: EvaluationResult;
103
- };
104
- riskAssessment: {
105
- level: 'low' | 'medium' | 'high' | 'critical';
106
- factors: string[];
107
- mitigation: string[];
108
- };
109
- recommendations: string[];
110
- metadata: {
111
- executedAt: string;
112
- executionTime: number;
113
- policyVersion: string;
114
- agentId: string;
115
- };
116
- }
117
- export interface PolicyViolation {
118
- ruleId: string;
119
- ruleName: string;
120
- severity: string;
121
- message: string;
122
- actualValue: number;
123
- expectedValue: number;
124
- }
125
- export interface PolicyWarning {
126
- ruleId: string;
127
- message: string;
128
- recommendation: string;
129
- }
130
- export interface EvaluationResult {
131
- passed: boolean;
132
- value: number;
133
- threshold: number;
134
- score: number;
135
- status: 'excellent' | 'good' | 'fair' | 'poor' | 'critical';
136
- }
137
- export declare class QualityGateExecuteHandler extends BaseHandler {
138
- private registry;
139
- private hookExecutor;
140
- private defaultPolicy;
141
- constructor(registry: AgentRegistry, hookExecutor: HookExecutor);
142
- handle(args: QualityGateExecuteArgs): Promise<HandlerResponse>;
143
- private createDefaultPolicy;
144
- private validatePolicyCompliance;
145
- private evaluateRule;
146
- private performEvaluations;
147
- private evaluateCoverage;
148
- private evaluateTestSuccess;
149
- private evaluateSecurity;
150
- private evaluatePerformance;
151
- private evaluateCodeQuality;
152
- private determineStatus;
153
- private assessRisk;
154
- private generateMitigationStrategies;
155
- private makeDecision;
156
- private generateRecommendations;
157
- private calculateCompositeScore;
158
- private determineThreshold;
159
- }
160
- //# sourceMappingURL=quality-gate-execute.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"quality-gate-execute.d.ts","sourceRoot":"","sources":["../../../../src/mcp/handlers/quality/quality-gate-execute.ts"],"names":[],"mappings":"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"}