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,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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"}