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.
- package/CHANGELOG.md +53 -0
- package/README.md +1 -1
- package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.js +53 -27
- package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
- package/dist/agents/FlakyTestHunterAgent.d.ts +5 -0
- package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -1
- package/dist/agents/FlakyTestHunterAgent.js +20 -5
- package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
- package/dist/agents/QualityGateAgent.js +44 -6
- package/dist/agents/QualityGateAgent.js.map +1 -1
- package/dist/cli/index.js +0 -0
- package/dist/cli/init/database-init.js +5 -0
- package/dist/cli/init/database-init.js.map +1 -1
- package/dist/core/memory/HNSWVectorMemory.js +1 -1
- package/dist/learning/PerformanceTracker.d.ts +9 -0
- package/dist/learning/PerformanceTracker.d.ts.map +1 -1
- package/dist/learning/PerformanceTracker.js +26 -2
- package/dist/learning/PerformanceTracker.js.map +1 -1
- package/dist/mcp/server-instructions.d.ts +1 -1
- package/dist/mcp/server-instructions.js +1 -1
- package/package.json +4 -2
- package/scripts/README.md +352 -0
- package/scripts/hooks/capture-task-learning.js +191 -0
- package/scripts/hooks/emit-task-complete.sh +35 -0
- package/scripts/hooks/emit-task-spawn.sh +27 -0
- package/.claude/agents/failing-agent.json +0 -9
- package/.claude/agents/test-agent.json +0 -9
- package/dist/App.d.ts +0 -5
- package/dist/App.d.ts.map +0 -1
- package/dist/App.js +0 -15
- package/dist/App.js.map +0 -1
- package/dist/cli/init/utils.d.ts +0 -183
- package/dist/cli/init/utils.d.ts.map +0 -1
- package/dist/cli/init/utils.js +0 -354
- package/dist/cli/init/utils.js.map +0 -1
- package/dist/components/Dashboard/Dashboard.d.ts +0 -4
- package/dist/components/Dashboard/Dashboard.d.ts.map +0 -1
- package/dist/components/Dashboard/Dashboard.js +0 -148
- package/dist/components/Dashboard/Dashboard.js.map +0 -1
- package/dist/components/Dashboard/DashboardHeader.d.ts +0 -4
- package/dist/components/Dashboard/DashboardHeader.d.ts.map +0 -1
- package/dist/components/Dashboard/DashboardHeader.js +0 -138
- package/dist/components/Dashboard/DashboardHeader.js.map +0 -1
- package/dist/contexts/DashboardContext.d.ts +0 -41
- package/dist/contexts/DashboardContext.d.ts.map +0 -1
- package/dist/contexts/DashboardContext.js +0 -187
- package/dist/contexts/DashboardContext.js.map +0 -1
- package/dist/core/transport/QUICTransport.d.ts +0 -320
- package/dist/core/transport/QUICTransport.d.ts.map +0 -1
- package/dist/core/transport/QUICTransport.js +0 -711
- package/dist/core/transport/QUICTransport.js.map +0 -1
- package/dist/learning/LearningPersistenceAdapter.d.ts +0 -84
- package/dist/learning/LearningPersistenceAdapter.d.ts.map +0 -1
- package/dist/learning/LearningPersistenceAdapter.js +0 -202
- package/dist/learning/LearningPersistenceAdapter.js.map +0 -1
- package/dist/learning/algorithms/QLearning.d.ts +0 -68
- package/dist/learning/algorithms/QLearning.d.ts.map +0 -1
- package/dist/learning/algorithms/QLearning.js +0 -116
- package/dist/learning/algorithms/QLearning.js.map +0 -1
- package/dist/mcp/handlers/advanced/requirements-generate-bdd.d.ts +0 -7
- package/dist/mcp/handlers/advanced/requirements-generate-bdd.d.ts.map +0 -1
- package/dist/mcp/handlers/advanced/requirements-generate-bdd.js +0 -267
- package/dist/mcp/handlers/advanced/requirements-generate-bdd.js.map +0 -1
- package/dist/mcp/handlers/advanced/requirements-validate.d.ts +0 -7
- package/dist/mcp/handlers/advanced/requirements-validate.d.ts.map +0 -1
- package/dist/mcp/handlers/advanced/requirements-validate.js +0 -175
- package/dist/mcp/handlers/advanced/requirements-validate.js.map +0 -1
- package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.d.ts +0 -15
- package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.d.ts.map +0 -1
- package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.js +0 -43
- package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.js.map +0 -1
- package/dist/mcp/handlers/analysis/performanceBenchmarkRun.d.ts +0 -58
- package/dist/mcp/handlers/analysis/performanceBenchmarkRun.d.ts.map +0 -1
- package/dist/mcp/handlers/analysis/performanceBenchmarkRun.js +0 -188
- package/dist/mcp/handlers/analysis/performanceBenchmarkRun.js.map +0 -1
- package/dist/mcp/handlers/optimize-tests.d.ts +0 -219
- package/dist/mcp/handlers/optimize-tests.d.ts.map +0 -1
- package/dist/mcp/handlers/optimize-tests.js +0 -533
- package/dist/mcp/handlers/optimize-tests.js.map +0 -1
- package/dist/mcp/handlers/predict-defects.d.ts +0 -194
- package/dist/mcp/handlers/predict-defects.d.ts.map +0 -1
- package/dist/mcp/handlers/predict-defects.js +0 -722
- package/dist/mcp/handlers/predict-defects.js.map +0 -1
- package/dist/mcp/handlers/prediction/regression-risk-analyze.d.ts +0 -199
- package/dist/mcp/handlers/prediction/regression-risk-analyze.d.ts.map +0 -1
- package/dist/mcp/handlers/prediction/regression-risk-analyze.js +0 -471
- package/dist/mcp/handlers/prediction/regression-risk-analyze.js.map +0 -1
- package/dist/mcp/handlers/quality/quality-decision-make.d.ts +0 -104
- package/dist/mcp/handlers/quality/quality-decision-make.d.ts.map +0 -1
- package/dist/mcp/handlers/quality/quality-decision-make.js +0 -408
- package/dist/mcp/handlers/quality/quality-decision-make.js.map +0 -1
- package/dist/mcp/handlers/quality/quality-gate-execute.d.ts +0 -160
- package/dist/mcp/handlers/quality/quality-gate-execute.d.ts.map +0 -1
- package/dist/mcp/handlers/quality/quality-gate-execute.js +0 -412
- package/dist/mcp/handlers/quality/quality-gate-execute.js.map +0 -1
- package/dist/mcp/handlers/quality/quality-policy-check.d.ts +0 -163
- package/dist/mcp/handlers/quality/quality-policy-check.d.ts.map +0 -1
- package/dist/mcp/handlers/quality/quality-policy-check.js +0 -455
- package/dist/mcp/handlers/quality/quality-policy-check.js.map +0 -1
- package/dist/mcp/handlers/quality/quality-risk-assess.d.ts +0 -123
- package/dist/mcp/handlers/quality/quality-risk-assess.d.ts.map +0 -1
- package/dist/mcp/handlers/quality/quality-risk-assess.js +0 -522
- package/dist/mcp/handlers/quality/quality-risk-assess.js.map +0 -1
- package/dist/mcp/handlers/quality/quality-validate-metrics.d.ts +0 -117
- package/dist/mcp/handlers/quality/quality-validate-metrics.d.ts.map +0 -1
- package/dist/mcp/handlers/quality/quality-validate-metrics.js +0 -288
- package/dist/mcp/handlers/quality/quality-validate-metrics.js.map +0 -1
- package/dist/mcp/handlers/quality-analyze.d.ts +0 -279
- package/dist/mcp/handlers/quality-analyze.d.ts.map +0 -1
- package/dist/mcp/handlers/quality-analyze.js +0 -720
- package/dist/mcp/handlers/quality-analyze.js.map +0 -1
- package/dist/mcp/handlers/security/check-authz.d.ts +0 -152
- package/dist/mcp/handlers/security/check-authz.d.ts.map +0 -1
- package/dist/mcp/handlers/security/check-authz.js +0 -434
- package/dist/mcp/handlers/security/check-authz.js.map +0 -1
- package/dist/mcp/handlers/security/scan-dependencies.d.ts +0 -148
- package/dist/mcp/handlers/security/scan-dependencies.d.ts.map +0 -1
- package/dist/mcp/handlers/security/scan-dependencies.js +0 -354
- package/dist/mcp/handlers/security/scan-dependencies.js.map +0 -1
- package/dist/mcp/handlers/security/validate-auth.d.ts +0 -128
- package/dist/mcp/handlers/security/validate-auth.d.ts.map +0 -1
- package/dist/mcp/handlers/security/validate-auth.js +0 -294
- package/dist/mcp/handlers/security/validate-auth.js.map +0 -1
- package/dist/mcp/handlers/test-generate.d.ts +0 -107
- package/dist/mcp/handlers/test-generate.d.ts.map +0 -1
- package/dist/mcp/handlers/test-generate.js +0 -454
- package/dist/mcp/handlers/test-generate.js.map +0 -1
|
@@ -1,471 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Regression Risk Analysis Handler
|
|
4
|
-
*
|
|
5
|
-
* Analyzes code changes to assess regression risk and suggest
|
|
6
|
-
* appropriate testing strategies.
|
|
7
|
-
*
|
|
8
|
-
* @version 1.0.0
|
|
9
|
-
* @author Agentic QE Team
|
|
10
|
-
*/
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.RegressionRiskAnalyzeHandler = void 0;
|
|
13
|
-
const base_handler_js_1 = require("../base-handler.js");
|
|
14
|
-
const SecureRandom_js_1 = require("../../../utils/SecureRandom.js");
|
|
15
|
-
/**
|
|
16
|
-
* Regression Risk Analysis Handler
|
|
17
|
-
*/
|
|
18
|
-
class RegressionRiskAnalyzeHandler extends base_handler_js_1.BaseHandler {
|
|
19
|
-
constructor(registry, hookExecutor) {
|
|
20
|
-
super();
|
|
21
|
-
this.registry = registry;
|
|
22
|
-
this.hookExecutor = hookExecutor;
|
|
23
|
-
}
|
|
24
|
-
async handle(args) {
|
|
25
|
-
return this.safeHandle(async () => {
|
|
26
|
-
const requestId = this.generateRequestId();
|
|
27
|
-
const startTime = performance.now();
|
|
28
|
-
this.log('info', 'Starting regression risk analysis', { requestId, args });
|
|
29
|
-
// Validate input - accept either 'changeSet' or 'changes'
|
|
30
|
-
if (!args.changeSet && !args.changes) {
|
|
31
|
-
throw new Error('Either "changeSet" or "changes" parameter is required');
|
|
32
|
-
}
|
|
33
|
-
// Transform 'changes' to 'changeSet' if needed
|
|
34
|
-
const normalizedArgs = this.normalizeArgs(args);
|
|
35
|
-
// Validate normalized changeSet
|
|
36
|
-
if (!normalizedArgs.changeSet?.repository) {
|
|
37
|
-
this.log('warn', 'Repository not provided, using "current" as default');
|
|
38
|
-
normalizedArgs.changeSet = normalizedArgs.changeSet || {
|
|
39
|
-
repository: 'current',
|
|
40
|
-
baseBranch: 'main',
|
|
41
|
-
compareBranch: 'HEAD'
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
// Execute pre-task hook
|
|
45
|
-
await this.hookExecutor.executeHook('pre-task', {
|
|
46
|
-
taskId: requestId,
|
|
47
|
-
taskType: 'regression-risk-analyze',
|
|
48
|
-
metadata: normalizedArgs
|
|
49
|
-
});
|
|
50
|
-
// Run regression risk analysis
|
|
51
|
-
const result = await this.analyzeRegressionRisk(normalizedArgs, requestId);
|
|
52
|
-
// Execute post-task hook
|
|
53
|
-
await this.hookExecutor.executeHook('post-task', {
|
|
54
|
-
taskId: requestId,
|
|
55
|
-
taskType: 'regression-risk-analyze',
|
|
56
|
-
result
|
|
57
|
-
});
|
|
58
|
-
const executionTime = performance.now() - startTime;
|
|
59
|
-
this.log('info', 'Regression risk analysis completed', {
|
|
60
|
-
requestId,
|
|
61
|
-
overallRisk: result.overallRisk.level,
|
|
62
|
-
executionTime
|
|
63
|
-
});
|
|
64
|
-
return this.createSuccessResponse(result, requestId);
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Normalize arguments to support both 'changes' and 'changeSet' formats
|
|
69
|
-
*/
|
|
70
|
-
normalizeArgs(args) {
|
|
71
|
-
// If changeSet is already provided, return as-is
|
|
72
|
-
if (args.changeSet) {
|
|
73
|
-
return args;
|
|
74
|
-
}
|
|
75
|
-
// Transform 'changes' array to 'changeSet' structure
|
|
76
|
-
if (args.changes && args.changes.length > 0) {
|
|
77
|
-
const files = args.changes.map(change => {
|
|
78
|
-
// Map change type
|
|
79
|
-
let changeType = 'modified';
|
|
80
|
-
if (change.type === 'add')
|
|
81
|
-
changeType = 'added';
|
|
82
|
-
else if (change.type === 'delete')
|
|
83
|
-
changeType = 'deleted';
|
|
84
|
-
else if (change.type === 'rename')
|
|
85
|
-
changeType = 'renamed';
|
|
86
|
-
else if (change.type === 'refactor' || change.type === 'modify')
|
|
87
|
-
changeType = 'modified';
|
|
88
|
-
// Estimate linesAdded/linesRemoved from linesChanged
|
|
89
|
-
const linesAdded = changeType === 'added' ? change.linesChanged : Math.floor(change.linesChanged * 0.6);
|
|
90
|
-
const linesRemoved = changeType === 'deleted' ? change.linesChanged : Math.floor(change.linesChanged * 0.4);
|
|
91
|
-
return {
|
|
92
|
-
path: change.file,
|
|
93
|
-
linesAdded,
|
|
94
|
-
linesRemoved,
|
|
95
|
-
changeType
|
|
96
|
-
};
|
|
97
|
-
});
|
|
98
|
-
return {
|
|
99
|
-
...args,
|
|
100
|
-
changeSet: {
|
|
101
|
-
repository: 'current',
|
|
102
|
-
baseBranch: 'main',
|
|
103
|
-
compareBranch: 'HEAD',
|
|
104
|
-
files
|
|
105
|
-
}
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
// No valid input
|
|
109
|
-
throw new Error('Either "changeSet" or "changes" parameter is required');
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Analyze regression risk
|
|
113
|
-
*/
|
|
114
|
-
async analyzeRegressionRisk(args, requestId) {
|
|
115
|
-
const analysisStartTime = performance.now();
|
|
116
|
-
const depth = args.analysisConfig?.depth || 'standard';
|
|
117
|
-
// Get files to analyze (args.changeSet is guaranteed to exist after normalization)
|
|
118
|
-
const changeSet = args.changeSet;
|
|
119
|
-
const files = changeSet.files || await this.detectChangedFiles(changeSet);
|
|
120
|
-
// Analyze each file
|
|
121
|
-
const fileRisks = await Promise.all(files.map(file => this.analyzeFile(file, args, depth)));
|
|
122
|
-
// Calculate overall risk
|
|
123
|
-
const overallRisk = this.calculateOverallRisk(fileRisks);
|
|
124
|
-
// Perform impact analysis
|
|
125
|
-
const impactAnalysis = this.performImpactAnalysis(fileRisks, files);
|
|
126
|
-
// Generate testing strategy
|
|
127
|
-
const testingStrategy = this.generateTestingStrategy(fileRisks, impactAnalysis, overallRisk);
|
|
128
|
-
// Generate recommendations
|
|
129
|
-
const recommendations = this.generateRecommendations(overallRisk, impactAnalysis, testingStrategy);
|
|
130
|
-
const analysisTime = performance.now() - analysisStartTime;
|
|
131
|
-
return {
|
|
132
|
-
id: requestId,
|
|
133
|
-
overallRisk,
|
|
134
|
-
fileRisks,
|
|
135
|
-
impactAnalysis,
|
|
136
|
-
testingStrategy,
|
|
137
|
-
recommendations,
|
|
138
|
-
metrics: {
|
|
139
|
-
totalFiles: files.length,
|
|
140
|
-
highRiskFiles: fileRisks.filter(f => f.riskLevel === 'high' || f.riskLevel === 'critical').length,
|
|
141
|
-
criticalPaths: impactAnalysis.criticalPaths.length,
|
|
142
|
-
estimatedTestTime: testingStrategy.executionPlan.totalEstimatedTime,
|
|
143
|
-
analysisTime
|
|
144
|
-
}
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Detect changed files (simulated)
|
|
149
|
-
*/
|
|
150
|
-
async detectChangedFiles(changeSet) {
|
|
151
|
-
// Simulate file detection
|
|
152
|
-
return [
|
|
153
|
-
{ path: 'src/core/payment.ts', linesAdded: 45, linesRemoved: 12, changeType: 'modified' },
|
|
154
|
-
{ path: 'src/utils/validator.ts', linesAdded: 20, linesRemoved: 5, changeType: 'modified' },
|
|
155
|
-
{ path: 'src/api/routes.ts', linesAdded: 8, linesRemoved: 3, changeType: 'modified' }
|
|
156
|
-
];
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Analyze a single file
|
|
160
|
-
*/
|
|
161
|
-
async analyzeFile(file, args, depth) {
|
|
162
|
-
// Calculate risk factors
|
|
163
|
-
const factors = this.calculateRiskFactors(file, args);
|
|
164
|
-
// Calculate overall risk score
|
|
165
|
-
const riskScore = factors.reduce((sum, f) => sum + (f.score * f.weight), 0);
|
|
166
|
-
// Determine risk level
|
|
167
|
-
let riskLevel = 'low';
|
|
168
|
-
if (riskScore > 7)
|
|
169
|
-
riskLevel = 'critical';
|
|
170
|
-
else if (riskScore > 5)
|
|
171
|
-
riskLevel = 'high';
|
|
172
|
-
else if (riskScore > 3)
|
|
173
|
-
riskLevel = 'medium';
|
|
174
|
-
// Analyze impact scope
|
|
175
|
-
const impactScope = this.analyzeImpactScope(file);
|
|
176
|
-
// Get historical data
|
|
177
|
-
const historicalData = this.getHistoricalData(file);
|
|
178
|
-
// Suggest tests
|
|
179
|
-
const suggestedTests = this.suggestTests(file, riskLevel, factors);
|
|
180
|
-
return {
|
|
181
|
-
file: file.path,
|
|
182
|
-
riskLevel,
|
|
183
|
-
riskScore,
|
|
184
|
-
factors,
|
|
185
|
-
impactScope,
|
|
186
|
-
historicalData,
|
|
187
|
-
suggestedTests
|
|
188
|
-
};
|
|
189
|
-
}
|
|
190
|
-
/**
|
|
191
|
-
* Calculate risk factors for a file
|
|
192
|
-
*/
|
|
193
|
-
calculateRiskFactors(file, args) {
|
|
194
|
-
const factors = [];
|
|
195
|
-
// Change size factor
|
|
196
|
-
const changeSize = file.linesAdded + file.linesRemoved;
|
|
197
|
-
const changeSizeScore = Math.min(changeSize / 50, 10);
|
|
198
|
-
factors.push({
|
|
199
|
-
category: 'change-size',
|
|
200
|
-
name: 'Change Magnitude',
|
|
201
|
-
score: changeSizeScore,
|
|
202
|
-
weight: 0.2,
|
|
203
|
-
description: `${changeSize} lines changed`,
|
|
204
|
-
mitigation: 'Break into smaller, incremental changes'
|
|
205
|
-
});
|
|
206
|
-
// Complexity factor (simulated)
|
|
207
|
-
const complexityScore = SecureRandom_js_1.SecureRandom.randomFloat() * 10;
|
|
208
|
-
factors.push({
|
|
209
|
-
category: 'complexity',
|
|
210
|
-
name: 'Code Complexity',
|
|
211
|
-
score: complexityScore,
|
|
212
|
-
weight: 0.25,
|
|
213
|
-
description: `Cyclomatic complexity: ${complexityScore.toFixed(1)}`,
|
|
214
|
-
mitigation: 'Refactor complex functions'
|
|
215
|
-
});
|
|
216
|
-
// Coverage factor
|
|
217
|
-
const coverageScore = args.testCoverage?.currentCoverage
|
|
218
|
-
? (100 - args.testCoverage.currentCoverage) / 10
|
|
219
|
-
: 5;
|
|
220
|
-
factors.push({
|
|
221
|
-
category: 'coverage',
|
|
222
|
-
name: 'Test Coverage',
|
|
223
|
-
score: coverageScore,
|
|
224
|
-
weight: 0.3,
|
|
225
|
-
description: `${(100 - coverageScore * 10).toFixed(0)}% coverage`,
|
|
226
|
-
mitigation: 'Increase test coverage to >80%'
|
|
227
|
-
});
|
|
228
|
-
// Dependencies factor (simulated)
|
|
229
|
-
const dependencyScore = SecureRandom_js_1.SecureRandom.randomFloat() * 10;
|
|
230
|
-
factors.push({
|
|
231
|
-
category: 'dependencies',
|
|
232
|
-
name: 'Dependency Impact',
|
|
233
|
-
score: dependencyScore,
|
|
234
|
-
weight: 0.15,
|
|
235
|
-
description: `Affects ${Math.floor(dependencyScore)} dependent modules`,
|
|
236
|
-
mitigation: 'Review all dependent modules'
|
|
237
|
-
});
|
|
238
|
-
// Historical defects factor (simulated)
|
|
239
|
-
const historyScore = SecureRandom_js_1.SecureRandom.randomFloat() * 10;
|
|
240
|
-
factors.push({
|
|
241
|
-
category: 'history',
|
|
242
|
-
name: 'Defect History',
|
|
243
|
-
score: historyScore,
|
|
244
|
-
weight: 0.1,
|
|
245
|
-
description: `${Math.floor(historyScore)} past defects`,
|
|
246
|
-
mitigation: 'Extra scrutiny during review'
|
|
247
|
-
});
|
|
248
|
-
return factors;
|
|
249
|
-
}
|
|
250
|
-
/**
|
|
251
|
-
* Analyze impact scope
|
|
252
|
-
*/
|
|
253
|
-
analyzeImpactScope(file) {
|
|
254
|
-
return {
|
|
255
|
-
directDependents: Math.floor(SecureRandom_js_1.SecureRandom.randomFloat() * 15),
|
|
256
|
-
indirectDependents: Math.floor(SecureRandom_js_1.SecureRandom.randomFloat() * 50),
|
|
257
|
-
publicAPI: file.path.includes('api') || file.path.includes('public'),
|
|
258
|
-
sharedUtility: file.path.includes('util') || file.path.includes('common')
|
|
259
|
-
};
|
|
260
|
-
}
|
|
261
|
-
/**
|
|
262
|
-
* Get historical data
|
|
263
|
-
*/
|
|
264
|
-
getHistoricalData(file) {
|
|
265
|
-
return {
|
|
266
|
-
pastDefects: Math.floor(SecureRandom_js_1.SecureRandom.randomFloat() * 10),
|
|
267
|
-
changeFrequency: SecureRandom_js_1.SecureRandom.randomFloat() * 5,
|
|
268
|
-
lastModified: new Date(Date.now() - SecureRandom_js_1.SecureRandom.randomFloat() * 90 * 24 * 60 * 60 * 1000).toISOString(),
|
|
269
|
-
contributors: Math.floor(SecureRandom_js_1.SecureRandom.randomFloat() * 8) + 1
|
|
270
|
-
};
|
|
271
|
-
}
|
|
272
|
-
/**
|
|
273
|
-
* Suggest tests for a file
|
|
274
|
-
*/
|
|
275
|
-
suggestTests(file, riskLevel, factors) {
|
|
276
|
-
const tests = [];
|
|
277
|
-
tests.push(`Unit tests for ${file.path}`);
|
|
278
|
-
if (riskLevel === 'high' || riskLevel === 'critical') {
|
|
279
|
-
tests.push(`Integration tests covering ${file.path} dependencies`);
|
|
280
|
-
tests.push(`E2E tests for affected user flows`);
|
|
281
|
-
}
|
|
282
|
-
if (factors.some(f => f.category === 'dependencies' && f.score > 5)) {
|
|
283
|
-
tests.push(`Contract tests for API boundaries`);
|
|
284
|
-
}
|
|
285
|
-
return tests;
|
|
286
|
-
}
|
|
287
|
-
/**
|
|
288
|
-
* Calculate overall risk
|
|
289
|
-
*/
|
|
290
|
-
calculateOverallRisk(fileRisks) {
|
|
291
|
-
const avgScore = fileRisks.reduce((sum, f) => sum + f.riskScore, 0) / fileRisks.length;
|
|
292
|
-
const criticalCount = fileRisks.filter(f => f.riskLevel === 'critical').length;
|
|
293
|
-
const highCount = fileRisks.filter(f => f.riskLevel === 'high').length;
|
|
294
|
-
let level = 'low';
|
|
295
|
-
if (criticalCount > 0 || avgScore > 7)
|
|
296
|
-
level = 'critical';
|
|
297
|
-
else if (highCount > 2 || avgScore > 5)
|
|
298
|
-
level = 'high';
|
|
299
|
-
else if (highCount > 0 || avgScore > 3)
|
|
300
|
-
level = 'medium';
|
|
301
|
-
const confidence = Math.min(fileRisks.length / 10, 1) * 0.9;
|
|
302
|
-
return {
|
|
303
|
-
level,
|
|
304
|
-
score: avgScore * 10,
|
|
305
|
-
confidence,
|
|
306
|
-
summary: this.generateRiskSummary(level, fileRisks)
|
|
307
|
-
};
|
|
308
|
-
}
|
|
309
|
-
/**
|
|
310
|
-
* Generate risk summary
|
|
311
|
-
*/
|
|
312
|
-
generateRiskSummary(level, fileRisks) {
|
|
313
|
-
const criticalCount = fileRisks.filter(f => f.riskLevel === 'critical').length;
|
|
314
|
-
const highCount = fileRisks.filter(f => f.riskLevel === 'high').length;
|
|
315
|
-
if (level === 'critical') {
|
|
316
|
-
return `Critical risk: ${criticalCount} critical and ${highCount} high-risk files. Comprehensive testing required.`;
|
|
317
|
-
}
|
|
318
|
-
else if (level === 'high') {
|
|
319
|
-
return `High risk: ${highCount} high-risk files detected. Extended testing recommended.`;
|
|
320
|
-
}
|
|
321
|
-
else if (level === 'medium') {
|
|
322
|
-
return `Medium risk: Standard testing procedures should suffice.`;
|
|
323
|
-
}
|
|
324
|
-
return `Low risk: Minimal regression potential detected.`;
|
|
325
|
-
}
|
|
326
|
-
/**
|
|
327
|
-
* Perform impact analysis
|
|
328
|
-
*/
|
|
329
|
-
performImpactAnalysis(fileRisks, files) {
|
|
330
|
-
const highRiskFiles = fileRisks.filter(f => f.riskLevel === 'high' || f.riskLevel === 'critical');
|
|
331
|
-
let scope = 'isolated';
|
|
332
|
-
const totalDependents = fileRisks.reduce((sum, f) => sum + f.impactScope.directDependents, 0);
|
|
333
|
-
if (totalDependents > 20)
|
|
334
|
-
scope = 'system-wide';
|
|
335
|
-
else if (totalDependents > 10)
|
|
336
|
-
scope = 'widespread';
|
|
337
|
-
else if (totalDependents > 5)
|
|
338
|
-
scope = 'moderate';
|
|
339
|
-
const criticalPaths = highRiskFiles.map(f => ({
|
|
340
|
-
path: f.file,
|
|
341
|
-
severity: f.riskLevel,
|
|
342
|
-
description: `High-risk change affecting ${f.impactScope.directDependents} components`
|
|
343
|
-
}));
|
|
344
|
-
return {
|
|
345
|
-
scope,
|
|
346
|
-
affectedComponents: [...new Set(fileRisks.map(f => f.file.split('/')[1] || 'unknown'))],
|
|
347
|
-
criticalPaths,
|
|
348
|
-
userImpact: {
|
|
349
|
-
affectedFeatures: ['Payment Flow', 'Validation', 'API Routes'],
|
|
350
|
-
estimatedUsers: scope === 'system-wide' ? 10000 : scope === 'widespread' ? 5000 : 1000,
|
|
351
|
-
severity: highRiskFiles.length > 2 ? 'major' : highRiskFiles.length > 0 ? 'moderate' : 'minor'
|
|
352
|
-
},
|
|
353
|
-
rollbackComplexity: scope === 'system-wide' ? 'very-difficult' : scope === 'widespread' ? 'difficult' : 'moderate'
|
|
354
|
-
};
|
|
355
|
-
}
|
|
356
|
-
/**
|
|
357
|
-
* Generate testing strategy
|
|
358
|
-
*/
|
|
359
|
-
generateTestingStrategy(fileRisks, impactAnalysis, overallRisk) {
|
|
360
|
-
const priority = overallRisk.level === 'critical' ? 'critical'
|
|
361
|
-
: overallRisk.level === 'high' ? 'high'
|
|
362
|
-
: overallRisk.level === 'medium' ? 'elevated'
|
|
363
|
-
: 'standard';
|
|
364
|
-
const recommendedTests = [
|
|
365
|
-
{
|
|
366
|
-
type: 'unit',
|
|
367
|
-
priority: 'must-have',
|
|
368
|
-
scope: 'All changed files',
|
|
369
|
-
estimatedTime: fileRisks.length * 15,
|
|
370
|
-
rationale: 'Verify individual component functionality'
|
|
371
|
-
},
|
|
372
|
-
{
|
|
373
|
-
type: 'integration',
|
|
374
|
-
priority: overallRisk.level === 'critical' ? 'must-have' : 'should-have',
|
|
375
|
-
scope: 'Component interactions',
|
|
376
|
-
estimatedTime: fileRisks.length * 30,
|
|
377
|
-
rationale: 'Verify interactions between modified components'
|
|
378
|
-
}
|
|
379
|
-
];
|
|
380
|
-
if (overallRisk.level === 'critical' || overallRisk.level === 'high') {
|
|
381
|
-
recommendedTests.push({
|
|
382
|
-
type: 'e2e',
|
|
383
|
-
priority: 'must-have',
|
|
384
|
-
scope: 'Critical user flows',
|
|
385
|
-
estimatedTime: impactAnalysis.criticalPaths.length * 45,
|
|
386
|
-
rationale: 'Verify end-to-end functionality for affected flows'
|
|
387
|
-
});
|
|
388
|
-
}
|
|
389
|
-
return {
|
|
390
|
-
priority,
|
|
391
|
-
recommendedTests,
|
|
392
|
-
coverageGoals: {
|
|
393
|
-
overall: 80,
|
|
394
|
-
newCode: 90,
|
|
395
|
-
modifiedCode: 85
|
|
396
|
-
},
|
|
397
|
-
executionPlan: {
|
|
398
|
-
phases: [
|
|
399
|
-
{
|
|
400
|
-
name: 'Unit Testing',
|
|
401
|
-
tests: ['All unit tests for changed files'],
|
|
402
|
-
parallelizable: true,
|
|
403
|
-
estimatedDuration: fileRisks.length * 15
|
|
404
|
-
},
|
|
405
|
-
{
|
|
406
|
-
name: 'Integration Testing',
|
|
407
|
-
tests: ['Integration tests for affected components'],
|
|
408
|
-
parallelizable: true,
|
|
409
|
-
estimatedDuration: fileRisks.length * 30
|
|
410
|
-
}
|
|
411
|
-
],
|
|
412
|
-
totalEstimatedTime: fileRisks.length * 45
|
|
413
|
-
}
|
|
414
|
-
};
|
|
415
|
-
}
|
|
416
|
-
/**
|
|
417
|
-
* Generate recommendations
|
|
418
|
-
*/
|
|
419
|
-
generateRecommendations(overallRisk, impactAnalysis, testingStrategy) {
|
|
420
|
-
const recommendations = [];
|
|
421
|
-
if (overallRisk.level === 'critical' || overallRisk.level === 'high') {
|
|
422
|
-
recommendations.push({
|
|
423
|
-
id: `rec-${Date.now()}-1`,
|
|
424
|
-
priority: 'critical',
|
|
425
|
-
category: 'testing',
|
|
426
|
-
title: 'Execute comprehensive test suite',
|
|
427
|
-
description: 'High regression risk requires extensive testing before deployment',
|
|
428
|
-
actions: [
|
|
429
|
-
'Run full regression test suite',
|
|
430
|
-
'Perform manual exploratory testing',
|
|
431
|
-
'Execute load testing for critical paths'
|
|
432
|
-
],
|
|
433
|
-
estimatedEffort: 8,
|
|
434
|
-
riskReduction: 50
|
|
435
|
-
});
|
|
436
|
-
recommendations.push({
|
|
437
|
-
id: `rec-${Date.now()}-2`,
|
|
438
|
-
priority: 'high',
|
|
439
|
-
category: 'deployment',
|
|
440
|
-
title: 'Implement staged rollout',
|
|
441
|
-
description: 'Deploy changes gradually to minimize impact',
|
|
442
|
-
actions: [
|
|
443
|
-
'Deploy to staging environment first',
|
|
444
|
-
'Use feature flags for gradual rollout',
|
|
445
|
-
'Monitor key metrics closely'
|
|
446
|
-
],
|
|
447
|
-
estimatedEffort: 4,
|
|
448
|
-
riskReduction: 30
|
|
449
|
-
});
|
|
450
|
-
}
|
|
451
|
-
if (impactAnalysis.rollbackComplexity === 'difficult' || impactAnalysis.rollbackComplexity === 'very-difficult') {
|
|
452
|
-
recommendations.push({
|
|
453
|
-
id: `rec-${Date.now()}-3`,
|
|
454
|
-
priority: 'high',
|
|
455
|
-
category: 'rollback-plan',
|
|
456
|
-
title: 'Prepare detailed rollback plan',
|
|
457
|
-
description: 'Complex changes require clear rollback procedures',
|
|
458
|
-
actions: [
|
|
459
|
-
'Document rollback steps',
|
|
460
|
-
'Test rollback procedure in staging',
|
|
461
|
-
'Prepare database migration rollback scripts'
|
|
462
|
-
],
|
|
463
|
-
estimatedEffort: 3,
|
|
464
|
-
riskReduction: 20
|
|
465
|
-
});
|
|
466
|
-
}
|
|
467
|
-
return recommendations;
|
|
468
|
-
}
|
|
469
|
-
}
|
|
470
|
-
exports.RegressionRiskAnalyzeHandler = RegressionRiskAnalyzeHandler;
|
|
471
|
-
//# sourceMappingURL=regression-risk-analyze.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"regression-risk-analyze.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/prediction/regression-risk-analyze.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH,wDAAkE;AAGlE,oEAA8D;AAwI9D;;GAEG;AACH,MAAa,4BAA6B,SAAQ,6BAAW;IAC3D,YACU,QAAuB,EACvB,YAA0B;QAElC,KAAK,EAAE,CAAC;QAHA,aAAQ,GAAR,QAAQ,CAAe;QACvB,iBAAY,GAAZ,YAAY,CAAc;IAGpC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAA+B;QAC1C,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE;YAChC,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAEpC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,mCAAmC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAE3E,0DAA0D;YAC1D,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;YAC3E,CAAC;YAED,+CAA+C;YAC/C,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAEhD,gCAAgC;YAChC,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC;gBAC1C,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,qDAAqD,CAAC,CAAC;gBACxE,cAAc,CAAC,SAAS,GAAG,cAAc,CAAC,SAAS,IAAI;oBACrD,UAAU,EAAE,SAAS;oBACrB,UAAU,EAAE,MAAM;oBAClB,aAAa,EAAE,MAAM;iBACtB,CAAC;YACJ,CAAC;YAED,wBAAwB;YACxB,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,UAAU,EAAE;gBAC9C,MAAM,EAAE,SAAS;gBACjB,QAAQ,EAAE,yBAAyB;gBACnC,QAAQ,EAAE,cAAc;aACzB,CAAC,CAAC;YAEH,+BAA+B;YAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;YAE3E,yBAAyB;YACzB,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,WAAW,EAAE;gBAC/C,MAAM,EAAE,SAAS;gBACjB,QAAQ,EAAE,yBAAyB;gBACnC,MAAM;aACP,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACpD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,oCAAoC,EAAE;gBACrD,SAAS;gBACT,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK;gBACrC,aAAa;aACd,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,IAA+B;QACnD,iDAAiD;QACjD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,qDAAqD;QACrD,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBACtC,kBAAkB;gBAClB,IAAI,UAAU,GAAiD,UAAU,CAAC;gBAC1E,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK;oBAAE,UAAU,GAAG,OAAO,CAAC;qBAC3C,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;oBAAE,UAAU,GAAG,SAAS,CAAC;qBACrD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;oBAAE,UAAU,GAAG,SAAS,CAAC;qBACrD,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;oBAAE,UAAU,GAAG,UAAU,CAAC;gBAEzF,qDAAqD;gBACrD,MAAM,UAAU,GAAG,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC;gBACxG,MAAM,YAAY,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC;gBAE5G,OAAO;oBACL,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,UAAU;oBACV,YAAY;oBACZ,UAAU;iBACX,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,OAAO;gBACL,GAAG,IAAI;gBACP,SAAS,EAAE;oBACT,UAAU,EAAE,SAAS;oBACrB,UAAU,EAAE,MAAM;oBAClB,aAAa,EAAE,MAAM;oBACrB,KAAK;iBACN;aACF,CAAC;QACJ,CAAC;QAED,iBAAiB;QACjB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,qBAAqB,CACjC,IAA+B,EAC/B,SAAiB;QAEjB,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI,UAAU,CAAC;QAEvD,mFAAmF;QACnF,MAAM,SAAS,GAAG,IAAI,CAAC,SAAU,CAAC;QAClC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAE1E,oBAAoB;QACpB,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CACvD,CAAC;QAEF,yBAAyB;QACzB,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAEzD,0BAA0B;QAC1B,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAEpE,4BAA4B;QAC5B,MAAM,eAAe,GAAG,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;QAE7F,2BAA2B;QAC3B,MAAM,eAAe,GAAG,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC;QAEnG,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,iBAAiB,CAAC;QAE3D,OAAO;YACL,EAAE,EAAE,SAAS;YACb,WAAW;YACX,SAAS;YACT,cAAc;YACd,eAAe;YACf,eAAe;YACf,OAAO,EAAE;gBACP,UAAU,EAAE,KAAK,CAAC,MAAM;gBACxB,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,IAAI,CAAC,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,MAAM;gBACjG,aAAa,EAAE,cAAc,CAAC,aAAa,CAAC,MAAM;gBAClD,iBAAiB,EAAE,eAAe,CAAC,aAAa,CAAC,kBAAkB;gBACnE,YAAY;aACb;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,kBAAkB,CAAC,SAAiD;QAChF,0BAA0B;QAC1B,OAAO;YACL,EAAE,IAAI,EAAE,qBAAqB,EAAE,UAAU,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE;YACzF,EAAE,IAAI,EAAE,wBAAwB,EAAE,UAAU,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE;YAC3F,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE;SACtF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW,CACvB,IAAS,EACT,IAA+B,EAC/B,KAAa;QAEb,yBAAyB;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAEtD,+BAA+B;QAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAE5E,uBAAuB;QACvB,IAAI,SAAS,GAA2C,KAAK,CAAC;QAC9D,IAAI,SAAS,GAAG,CAAC;YAAE,SAAS,GAAG,UAAU,CAAC;aACrC,IAAI,SAAS,GAAG,CAAC;YAAE,SAAS,GAAG,MAAM,CAAC;aACtC,IAAI,SAAS,GAAG,CAAC;YAAE,SAAS,GAAG,QAAQ,CAAC;QAE7C,uBAAuB;QACvB,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAElD,sBAAsB;QACtB,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAEpD,gBAAgB;QAChB,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAEnE,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS;YACT,SAAS;YACT,OAAO;YACP,WAAW;YACX,cAAc;YACd,cAAc;SACf,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,IAAS,EAAE,IAA+B;QACrE,MAAM,OAAO,GAAiB,EAAE,CAAC;QAEjC,qBAAqB;QACrB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;QACvD,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC;YACX,QAAQ,EAAE,aAAa;YACvB,IAAI,EAAE,kBAAkB;YACxB,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,GAAG;YACX,WAAW,EAAE,GAAG,UAAU,gBAAgB;YAC1C,UAAU,EAAE,yCAAyC;SACtD,CAAC,CAAC;QAEH,gCAAgC;QAChC,MAAM,eAAe,GAAG,8BAAY,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC;QACxD,OAAO,CAAC,IAAI,CAAC;YACX,QAAQ,EAAE,YAAY;YACtB,IAAI,EAAE,iBAAiB;YACvB,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,0BAA0B,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACnE,UAAU,EAAE,4BAA4B;SACzC,CAAC,CAAC;QAEH,kBAAkB;QAClB,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,eAAe;YACtD,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,GAAG,EAAE;YAChD,CAAC,CAAC,CAAC,CAAC;QACN,OAAO,CAAC,IAAI,CAAC;YACX,QAAQ,EAAE,UAAU;YACpB,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE,GAAG;YACX,WAAW,EAAE,GAAG,CAAC,GAAG,GAAG,aAAa,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY;YACjE,UAAU,EAAE,gCAAgC;SAC7C,CAAC,CAAC;QAEH,kCAAkC;QAClC,MAAM,eAAe,GAAG,8BAAY,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC;QACxD,OAAO,CAAC,IAAI,CAAC;YACX,QAAQ,EAAE,cAAc;YACxB,IAAI,EAAE,mBAAmB;YACzB,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,WAAW,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,oBAAoB;YACvE,UAAU,EAAE,8BAA8B;SAC3C,CAAC,CAAC;QAEH,wCAAwC;QACxC,MAAM,YAAY,GAAG,8BAAY,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC;YACX,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,gBAAgB;YACtB,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,GAAG;YACX,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe;YACvD,UAAU,EAAE,8BAA8B;SAC3C,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,IAAS;QAClC,OAAO;YACL,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,8BAAY,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC;YAC7D,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,8BAAY,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC;YAC/D,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACpE,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;SAC1E,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,IAAS;QACjC,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,8BAAY,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC;YACxD,eAAe,EAAE,8BAAY,CAAC,WAAW,EAAE,GAAG,CAAC;YAC/C,YAAY,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,8BAAY,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;YACxG,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,8BAAY,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC;SAC7D,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,IAAS,EAAE,SAAiB,EAAE,OAAqB;QACtE,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,KAAK,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAE1C,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YACrD,KAAK,CAAC,IAAI,CAAC,8BAA8B,IAAI,CAAC,IAAI,eAAe,CAAC,CAAC;YACnE,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,cAAc,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;YACpE,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,SAA6B;QACxD,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;QACvF,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,MAAM,CAAC;QAC/E,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;QAEvE,IAAI,KAAK,GAA2C,KAAK,CAAC;QAC1D,IAAI,aAAa,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC;YAAE,KAAK,GAAG,UAAU,CAAC;aACrD,IAAI,SAAS,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC;YAAE,KAAK,GAAG,MAAM,CAAC;aAClD,IAAI,SAAS,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC;YAAE,KAAK,GAAG,QAAQ,CAAC;QAEzD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;QAE5D,OAAO;YACL,KAAK;YACL,KAAK,EAAE,QAAQ,GAAG,EAAE;YACpB,UAAU;YACV,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC;SACpD,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,KAAa,EAAE,SAA6B;QACtE,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,MAAM,CAAC;QAC/E,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;QAEvE,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;YACzB,OAAO,kBAAkB,aAAa,iBAAiB,SAAS,mDAAmD,CAAC;QACtH,CAAC;aAAM,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YAC5B,OAAO,cAAc,SAAS,0DAA0D,CAAC;QAC3F,CAAC;aAAM,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,0DAA0D,CAAC;QACpE,CAAC;QACD,OAAO,kDAAkD,CAAC;IAC5D,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,SAA6B,EAAE,KAAY;QACvE,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,IAAI,CAAC,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC;QAElG,IAAI,KAAK,GAA2D,UAAU,CAAC;QAC/E,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;QAE9F,IAAI,eAAe,GAAG,EAAE;YAAE,KAAK,GAAG,aAAa,CAAC;aAC3C,IAAI,eAAe,GAAG,EAAE;YAAE,KAAK,GAAG,YAAY,CAAC;aAC/C,IAAI,eAAe,GAAG,CAAC;YAAE,KAAK,GAAG,UAAU,CAAC;QAEjD,MAAM,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5C,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,QAAQ,EAAE,CAAC,CAAC,SAAS;YACrB,WAAW,EAAE,8BAA8B,CAAC,CAAC,WAAW,CAAC,gBAAgB,aAAa;SACvF,CAAC,CAAC,CAAC;QAEJ,OAAO;YACL,KAAK;YACL,kBAAkB,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC;YACvF,aAAa;YACb,UAAU,EAAE;gBACV,gBAAgB,EAAE,CAAC,cAAc,EAAE,YAAY,EAAE,YAAY,CAAC;gBAC9D,cAAc,EAAE,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;gBACtF,QAAQ,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO;aAC/F;YACD,kBAAkB,EAAE,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU;SACnH,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,uBAAuB,CAC7B,SAA6B,EAC7B,cAA8B,EAC9B,WAAgD;QAEhD,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU;YAC5D,CAAC,CAAC,WAAW,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM;gBACvC,CAAC,CAAC,WAAW,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU;oBAC7C,CAAC,CAAC,UAAU,CAAC;QAEf,MAAM,gBAAgB,GAMjB;YACH;gBACE,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,WAAW;gBACrB,KAAK,EAAE,mBAAmB;gBAC1B,aAAa,EAAE,SAAS,CAAC,MAAM,GAAG,EAAE;gBACpC,SAAS,EAAE,2CAA2C;aACvD;YACD;gBACE,IAAI,EAAE,aAAa;gBACnB,QAAQ,EAAE,WAAW,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa;gBACxE,KAAK,EAAE,wBAAwB;gBAC/B,aAAa,EAAE,SAAS,CAAC,MAAM,GAAG,EAAE;gBACpC,SAAS,EAAE,iDAAiD;aAC7D;SACF,CAAC;QAEF,IAAI,WAAW,CAAC,KAAK,KAAK,UAAU,IAAI,WAAW,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YACrE,gBAAgB,CAAC,IAAI,CAAC;gBACpB,IAAI,EAAE,KAAK;gBACX,QAAQ,EAAE,WAAW;gBACrB,KAAK,EAAE,qBAAqB;gBAC5B,aAAa,EAAE,cAAc,CAAC,aAAa,CAAC,MAAM,GAAG,EAAE;gBACvD,SAAS,EAAE,oDAAoD;aAChE,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,QAAQ;YACR,gBAAgB;YAChB,aAAa,EAAE;gBACb,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,EAAE;gBACX,YAAY,EAAE,EAAE;aACjB;YACD,aAAa,EAAE;gBACb,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,cAAc;wBACpB,KAAK,EAAE,CAAC,kCAAkC,CAAC;wBAC3C,cAAc,EAAE,IAAI;wBACpB,iBAAiB,EAAE,SAAS,CAAC,MAAM,GAAG,EAAE;qBACzC;oBACD;wBACE,IAAI,EAAE,qBAAqB;wBAC3B,KAAK,EAAE,CAAC,2CAA2C,CAAC;wBACpD,cAAc,EAAE,IAAI;wBACpB,iBAAiB,EAAE,SAAS,CAAC,MAAM,GAAG,EAAE;qBACzC;iBACF;gBACD,kBAAkB,EAAE,SAAS,CAAC,MAAM,GAAG,EAAE;aAC1C;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,uBAAuB,CAC7B,WAAgD,EAChD,cAA8B,EAC9B,eAAgC;QAEhC,MAAM,eAAe,GAA+B,EAAE,CAAC;QAEvD,IAAI,WAAW,CAAC,KAAK,KAAK,UAAU,IAAI,WAAW,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YACrE,eAAe,CAAC,IAAI,CAAC;gBACnB,EAAE,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI;gBACzB,QAAQ,EAAE,UAAU;gBACpB,QAAQ,EAAE,SAAS;gBACnB,KAAK,EAAE,kCAAkC;gBACzC,WAAW,EAAE,mEAAmE;gBAChF,OAAO,EAAE;oBACP,gCAAgC;oBAChC,oCAAoC;oBACpC,yCAAyC;iBAC1C;gBACD,eAAe,EAAE,CAAC;gBAClB,aAAa,EAAE,EAAE;aAClB,CAAC,CAAC;YAEH,eAAe,CAAC,IAAI,CAAC;gBACnB,EAAE,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI;gBACzB,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,YAAY;gBACtB,KAAK,EAAE,0BAA0B;gBACjC,WAAW,EAAE,6CAA6C;gBAC1D,OAAO,EAAE;oBACP,qCAAqC;oBACrC,uCAAuC;oBACvC,6BAA6B;iBAC9B;gBACD,eAAe,EAAE,CAAC;gBAClB,aAAa,EAAE,EAAE;aAClB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,cAAc,CAAC,kBAAkB,KAAK,WAAW,IAAI,cAAc,CAAC,kBAAkB,KAAK,gBAAgB,EAAE,CAAC;YAChH,eAAe,CAAC,IAAI,CAAC;gBACnB,EAAE,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI;gBACzB,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,eAAe;gBACzB,KAAK,EAAE,gCAAgC;gBACvC,WAAW,EAAE,mDAAmD;gBAChE,OAAO,EAAE;oBACP,yBAAyB;oBACzB,oCAAoC;oBACpC,6CAA6C;iBAC9C;gBACD,eAAe,EAAE,CAAC;gBAClB,aAAa,EAAE,EAAE;aAClB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;CACF;AA/gBD,oEA+gBC"}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Quality Decision Make Handler
|
|
3
|
-
*
|
|
4
|
-
* Makes intelligent go/no-go deployment decisions based on quality metrics,
|
|
5
|
-
* risk assessment, and policy compliance.
|
|
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 DecisionContext {
|
|
13
|
-
projectId: string;
|
|
14
|
-
buildId: string;
|
|
15
|
-
environment: 'development' | 'staging' | 'production';
|
|
16
|
-
deploymentType: 'standard' | 'hotfix' | 'rollback' | 'canary';
|
|
17
|
-
requestedBy: string;
|
|
18
|
-
urgency: 'low' | 'medium' | 'high' | 'critical';
|
|
19
|
-
}
|
|
20
|
-
export interface DecisionInputs {
|
|
21
|
-
qualityGateResult: {
|
|
22
|
-
decision: 'PASS' | 'FAIL' | 'ESCALATE';
|
|
23
|
-
score: number;
|
|
24
|
-
threshold: number;
|
|
25
|
-
};
|
|
26
|
-
riskAssessment: {
|
|
27
|
-
overallRisk: 'critical' | 'high' | 'medium' | 'low';
|
|
28
|
-
riskScore: number;
|
|
29
|
-
};
|
|
30
|
-
policyCompliance: {
|
|
31
|
-
compliant: boolean;
|
|
32
|
-
violations: number;
|
|
33
|
-
criticalViolations: number;
|
|
34
|
-
};
|
|
35
|
-
historicalPerformance?: {
|
|
36
|
-
recentDeploymentSuccessRate: number;
|
|
37
|
-
averageIncidentCount: number;
|
|
38
|
-
timesSinceLastIncident: number;
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
export interface QualityDecisionMakeArgs {
|
|
42
|
-
context: DecisionContext;
|
|
43
|
-
inputs: DecisionInputs;
|
|
44
|
-
overrides?: {
|
|
45
|
-
allowPolicyOverride?: boolean;
|
|
46
|
-
overrideReason?: string;
|
|
47
|
-
approvedBy?: string;
|
|
48
|
-
};
|
|
49
|
-
decisionCriteria?: {
|
|
50
|
-
minQualityScore?: number;
|
|
51
|
-
maxRiskLevel?: 'critical' | 'high' | 'medium' | 'low';
|
|
52
|
-
requireCompliance?: boolean;
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
export interface DeploymentDecision {
|
|
56
|
-
decisionId: string;
|
|
57
|
-
decision: 'GO' | 'NO_GO' | 'CONDITIONAL_GO' | 'ESCALATE';
|
|
58
|
-
confidence: number;
|
|
59
|
-
reasoning: string;
|
|
60
|
-
factors: DecisionFactor[];
|
|
61
|
-
conditions?: DeploymentCondition[];
|
|
62
|
-
recommendations: string[];
|
|
63
|
-
approvalRequired: boolean;
|
|
64
|
-
metadata: {
|
|
65
|
-
decidedAt: string;
|
|
66
|
-
executionTime: number;
|
|
67
|
-
decisionModel: string;
|
|
68
|
-
confidence: number;
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
export interface DecisionFactor {
|
|
72
|
-
name: string;
|
|
73
|
-
category: 'quality' | 'risk' | 'compliance' | 'process' | 'historical';
|
|
74
|
-
weight: number;
|
|
75
|
-
value: number;
|
|
76
|
-
threshold: number;
|
|
77
|
-
passed: boolean;
|
|
78
|
-
impact: 'blocking' | 'warning' | 'informational';
|
|
79
|
-
description: string;
|
|
80
|
-
}
|
|
81
|
-
export interface DeploymentCondition {
|
|
82
|
-
id: string;
|
|
83
|
-
condition: string;
|
|
84
|
-
required: boolean;
|
|
85
|
-
verifiable: boolean;
|
|
86
|
-
verificationMethod?: string;
|
|
87
|
-
}
|
|
88
|
-
export declare class QualityDecisionMakeHandler extends BaseHandler {
|
|
89
|
-
private hookExecutor;
|
|
90
|
-
private decisionWeights;
|
|
91
|
-
constructor(hookExecutor: HookExecutor);
|
|
92
|
-
handle(args: QualityDecisionMakeArgs): Promise<HandlerResponse>;
|
|
93
|
-
private evaluateDecisionFactors;
|
|
94
|
-
private calculateCompositeScore;
|
|
95
|
-
private applyDecisionLogic;
|
|
96
|
-
private applyOverrides;
|
|
97
|
-
private requiresApproval;
|
|
98
|
-
private generateConditions;
|
|
99
|
-
private generateReasoning;
|
|
100
|
-
private generateRecommendations;
|
|
101
|
-
private calculateDecisionConfidence;
|
|
102
|
-
private assessProductionReadiness;
|
|
103
|
-
}
|
|
104
|
-
//# sourceMappingURL=quality-decision-make.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"quality-decision-make.d.ts","sourceRoot":"","sources":["../../../../src/mcp/handlers/quality/quality-decision-make.ts"],"names":[],"mappings":"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"}
|