@monoes/monomindcli 1.15.3 → 1.15.5

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 (105) hide show
  1. package/dist/src/mcp-client.d.ts.map +1 -1
  2. package/dist/src/mcp-client.js +7 -0
  3. package/dist/src/mcp-client.js.map +1 -1
  4. package/dist/src/mcp-tools/coherence/causal-infer.d.ts +15 -0
  5. package/dist/src/mcp-tools/coherence/causal-infer.d.ts.map +1 -0
  6. package/dist/src/mcp-tools/coherence/causal-infer.js +347 -0
  7. package/dist/src/mcp-tools/coherence/causal-infer.js.map +1 -0
  8. package/dist/src/mcp-tools/coherence/coherence-check.d.ts +15 -0
  9. package/dist/src/mcp-tools/coherence/coherence-check.d.ts.map +1 -0
  10. package/dist/src/mcp-tools/coherence/coherence-check.js +206 -0
  11. package/dist/src/mcp-tools/coherence/coherence-check.js.map +1 -0
  12. package/dist/src/mcp-tools/coherence/consensus-verify.d.ts +15 -0
  13. package/dist/src/mcp-tools/coherence/consensus-verify.d.ts.map +1 -0
  14. package/dist/src/mcp-tools/coherence/consensus-verify.js +303 -0
  15. package/dist/src/mcp-tools/coherence/consensus-verify.js.map +1 -0
  16. package/dist/src/mcp-tools/coherence/memory-gate.d.ts +15 -0
  17. package/dist/src/mcp-tools/coherence/memory-gate.d.ts.map +1 -0
  18. package/dist/src/mcp-tools/coherence/memory-gate.js +266 -0
  19. package/dist/src/mcp-tools/coherence/memory-gate.js.map +1 -0
  20. package/dist/src/mcp-tools/coherence/quantum-topology.d.ts +15 -0
  21. package/dist/src/mcp-tools/coherence/quantum-topology.d.ts.map +1 -0
  22. package/dist/src/mcp-tools/coherence/quantum-topology.js +406 -0
  23. package/dist/src/mcp-tools/coherence/quantum-topology.js.map +1 -0
  24. package/dist/src/mcp-tools/coherence/spectral-analyze.d.ts +15 -0
  25. package/dist/src/mcp-tools/coherence/spectral-analyze.d.ts.map +1 -0
  26. package/dist/src/mcp-tools/coherence/spectral-analyze.js +293 -0
  27. package/dist/src/mcp-tools/coherence/spectral-analyze.js.map +1 -0
  28. package/dist/src/mcp-tools/coherence/types.d.ts +277 -0
  29. package/dist/src/mcp-tools/coherence/types.d.ts.map +1 -0
  30. package/dist/src/mcp-tools/coherence/types.js +159 -0
  31. package/dist/src/mcp-tools/coherence/types.js.map +1 -0
  32. package/dist/src/mcp-tools/coherence-tools.d.ts +9 -0
  33. package/dist/src/mcp-tools/coherence-tools.d.ts.map +1 -0
  34. package/dist/src/mcp-tools/coherence-tools.js +25 -0
  35. package/dist/src/mcp-tools/coherence-tools.js.map +1 -0
  36. package/dist/src/mcp-tools/quality/chaos-resilience/chaos-inject.d.ts +163 -0
  37. package/dist/src/mcp-tools/quality/chaos-resilience/chaos-inject.d.ts.map +1 -0
  38. package/dist/src/mcp-tools/quality/chaos-resilience/chaos-inject.js +414 -0
  39. package/dist/src/mcp-tools/quality/chaos-resilience/chaos-inject.js.map +1 -0
  40. package/dist/src/mcp-tools/quality/coverage-analysis/analyze-coverage.d.ts +128 -0
  41. package/dist/src/mcp-tools/quality/coverage-analysis/analyze-coverage.d.ts.map +1 -0
  42. package/dist/src/mcp-tools/quality/coverage-analysis/analyze-coverage.js +375 -0
  43. package/dist/src/mcp-tools/quality/coverage-analysis/analyze-coverage.js.map +1 -0
  44. package/dist/src/mcp-tools/quality/coverage-analysis/prioritize-gaps.d.ts +161 -0
  45. package/dist/src/mcp-tools/quality/coverage-analysis/prioritize-gaps.d.ts.map +1 -0
  46. package/dist/src/mcp-tools/quality/coverage-analysis/prioritize-gaps.js +423 -0
  47. package/dist/src/mcp-tools/quality/coverage-analysis/prioritize-gaps.js.map +1 -0
  48. package/dist/src/mcp-tools/quality/coverage-analysis/track-trends.d.ts +165 -0
  49. package/dist/src/mcp-tools/quality/coverage-analysis/track-trends.d.ts.map +1 -0
  50. package/dist/src/mcp-tools/quality/coverage-analysis/track-trends.js +395 -0
  51. package/dist/src/mcp-tools/quality/coverage-analysis/track-trends.js.map +1 -0
  52. package/dist/src/mcp-tools/quality/defect-intelligence/analyze-root-cause.d.ts +165 -0
  53. package/dist/src/mcp-tools/quality/defect-intelligence/analyze-root-cause.d.ts.map +1 -0
  54. package/dist/src/mcp-tools/quality/defect-intelligence/analyze-root-cause.js +508 -0
  55. package/dist/src/mcp-tools/quality/defect-intelligence/analyze-root-cause.js.map +1 -0
  56. package/dist/src/mcp-tools/quality/defect-intelligence/find-similar-defects.d.ts +147 -0
  57. package/dist/src/mcp-tools/quality/defect-intelligence/find-similar-defects.d.ts.map +1 -0
  58. package/dist/src/mcp-tools/quality/defect-intelligence/find-similar-defects.js +391 -0
  59. package/dist/src/mcp-tools/quality/defect-intelligence/find-similar-defects.js.map +1 -0
  60. package/dist/src/mcp-tools/quality/defect-intelligence/predict-defects.d.ts +147 -0
  61. package/dist/src/mcp-tools/quality/defect-intelligence/predict-defects.d.ts.map +1 -0
  62. package/dist/src/mcp-tools/quality/defect-intelligence/predict-defects.js +422 -0
  63. package/dist/src/mcp-tools/quality/defect-intelligence/predict-defects.js.map +1 -0
  64. package/dist/src/mcp-tools/quality/quality-assessment/assess-readiness.d.ts +185 -0
  65. package/dist/src/mcp-tools/quality/quality-assessment/assess-readiness.d.ts.map +1 -0
  66. package/dist/src/mcp-tools/quality/quality-assessment/assess-readiness.js +437 -0
  67. package/dist/src/mcp-tools/quality/quality-assessment/assess-readiness.js.map +1 -0
  68. package/dist/src/mcp-tools/quality/quality-assessment/calculate-risk.d.ts +166 -0
  69. package/dist/src/mcp-tools/quality/quality-assessment/calculate-risk.d.ts.map +1 -0
  70. package/dist/src/mcp-tools/quality/quality-assessment/calculate-risk.js +410 -0
  71. package/dist/src/mcp-tools/quality/quality-assessment/calculate-risk.js.map +1 -0
  72. package/dist/src/mcp-tools/quality/quality-assessment/evaluate-quality-gate.d.ts +201 -0
  73. package/dist/src/mcp-tools/quality/quality-assessment/evaluate-quality-gate.d.ts.map +1 -0
  74. package/dist/src/mcp-tools/quality/quality-assessment/evaluate-quality-gate.js +363 -0
  75. package/dist/src/mcp-tools/quality/quality-assessment/evaluate-quality-gate.js.map +1 -0
  76. package/dist/src/mcp-tools/quality/security-compliance/audit-compliance.d.ts +166 -0
  77. package/dist/src/mcp-tools/quality/security-compliance/audit-compliance.d.ts.map +1 -0
  78. package/dist/src/mcp-tools/quality/security-compliance/audit-compliance.js +394 -0
  79. package/dist/src/mcp-tools/quality/security-compliance/audit-compliance.js.map +1 -0
  80. package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.d.ts +129 -0
  81. package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.d.ts.map +1 -0
  82. package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.js +383 -0
  83. package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.js.map +1 -0
  84. package/dist/src/mcp-tools/quality/security-compliance/security-scan.d.ts +171 -0
  85. package/dist/src/mcp-tools/quality/security-compliance/security-scan.d.ts.map +1 -0
  86. package/dist/src/mcp-tools/quality/security-compliance/security-scan.js +476 -0
  87. package/dist/src/mcp-tools/quality/security-compliance/security-scan.js.map +1 -0
  88. package/dist/src/mcp-tools/quality/test-generation/generate-tests.d.ts +147 -0
  89. package/dist/src/mcp-tools/quality/test-generation/generate-tests.d.ts.map +1 -0
  90. package/dist/src/mcp-tools/quality/test-generation/generate-tests.js +400 -0
  91. package/dist/src/mcp-tools/quality/test-generation/generate-tests.js.map +1 -0
  92. package/dist/src/mcp-tools/quality/test-generation/suggest-tests.d.ts +145 -0
  93. package/dist/src/mcp-tools/quality/test-generation/suggest-tests.d.ts.map +1 -0
  94. package/dist/src/mcp-tools/quality/test-generation/suggest-tests.js +328 -0
  95. package/dist/src/mcp-tools/quality/test-generation/suggest-tests.js.map +1 -0
  96. package/dist/src/mcp-tools/quality/test-generation/tdd-cycle.d.ts +126 -0
  97. package/dist/src/mcp-tools/quality/test-generation/tdd-cycle.d.ts.map +1 -0
  98. package/dist/src/mcp-tools/quality/test-generation/tdd-cycle.js +348 -0
  99. package/dist/src/mcp-tools/quality/test-generation/tdd-cycle.js.map +1 -0
  100. package/dist/src/mcp-tools/quality-tools.d.ts +9 -0
  101. package/dist/src/mcp-tools/quality-tools.d.ts.map +1 -0
  102. package/dist/src/mcp-tools/quality-tools.js +308 -0
  103. package/dist/src/mcp-tools/quality-tools.js.map +1 -0
  104. package/dist/tsconfig.tsbuildinfo +1 -1
  105. package/package.json +1 -1
@@ -0,0 +1,508 @@
1
+ /**
2
+ * analyze-root-cause.ts - Root cause analysis MCP tool handler
3
+ *
4
+ * Performs deep root cause analysis for defects using causal chain
5
+ * analysis, historical pattern matching, and contributing factor identification.
6
+ */
7
+ import { z } from 'zod';
8
+ // Input schema for analyze-root-cause tool
9
+ export const AnalyzeRootCauseInputSchema = z.object({
10
+ defect: z
11
+ .object({
12
+ id: z.string().optional().describe('Defect ID'),
13
+ description: z.string().describe('Description of the defect'),
14
+ location: z
15
+ .object({
16
+ file: z.string(),
17
+ line: z.number().optional(),
18
+ function: z.string().optional(),
19
+ })
20
+ .optional()
21
+ .describe('Location of the defect'),
22
+ category: z.string().optional().describe('Defect category'),
23
+ stackTrace: z.string().optional().describe('Stack trace if available'),
24
+ })
25
+ .describe('Defect information'),
26
+ analysisDepth: z
27
+ .enum(['immediate', 'standard', 'deep'])
28
+ .default('standard')
29
+ .describe('Depth of analysis'),
30
+ includeHistorical: z.boolean().default(true).describe('Include historical pattern analysis'),
31
+ includeRemediation: z.boolean().default(true).describe('Include remediation recommendations'),
32
+ maxContributingFactors: z.number().min(1).max(20).default(5).describe('Maximum factors to identify'),
33
+ });
34
+ /**
35
+ * MCP Tool Handler for analyze-root-cause
36
+ */
37
+ export async function handler(input, context) {
38
+ const startTime = Date.now();
39
+ try {
40
+ // Validate input
41
+ const validatedInput = AnalyzeRootCauseInputSchema.parse(input);
42
+ // Get memory bridge for historical analysis
43
+ const bridge = context.get('aqe.bridge');
44
+ // Perform causal chain analysis
45
+ const causalChain = buildCausalChain(validatedInput.defect, validatedInput.analysisDepth);
46
+ // Identify root cause
47
+ const rootCause = identifyRootCause(causalChain, validatedInput.defect);
48
+ // Find contributing factors
49
+ const contributingFactors = identifyContributingFactors(validatedInput.defect, validatedInput.maxContributingFactors);
50
+ // Historical analysis
51
+ const historicalAnalysis = validatedInput.includeHistorical
52
+ ? await performHistoricalAnalysis(validatedInput.defect, bridge)
53
+ : null;
54
+ // Generate remediation plan
55
+ const remediation = validatedInput.includeRemediation
56
+ ? generateRemediationPlan(rootCause, contributingFactors)
57
+ : null;
58
+ // Generate prevention measures
59
+ const preventionMeasures = generatePreventionMeasures(rootCause, contributingFactors);
60
+ // Calculate overall confidence
61
+ const overallConfidence = calculateOverallConfidence(rootCause.confidence, causalChain.map((c) => c.confidence));
62
+ // Build result
63
+ const result = {
64
+ success: true,
65
+ rootCause,
66
+ causalChain,
67
+ contributingFactors,
68
+ historicalAnalysis,
69
+ remediation,
70
+ preventionMeasures,
71
+ metadata: {
72
+ analyzedAt: new Date().toISOString(),
73
+ durationMs: Date.now() - startTime,
74
+ analysisDepth: validatedInput.analysisDepth,
75
+ confidenceScore: overallConfidence,
76
+ methodsUsed: [
77
+ 'causal-chain-analysis',
78
+ 'pattern-matching',
79
+ validatedInput.includeHistorical ? 'historical-analysis' : '',
80
+ 'five-whys',
81
+ ].filter(Boolean),
82
+ },
83
+ };
84
+ return {
85
+ content: [
86
+ {
87
+ type: 'text',
88
+ text: JSON.stringify(result, null, 2),
89
+ },
90
+ ],
91
+ };
92
+ }
93
+ catch (error) {
94
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
95
+ return {
96
+ content: [
97
+ {
98
+ type: 'text',
99
+ text: JSON.stringify({
100
+ success: false,
101
+ error: errorMessage,
102
+ metadata: {
103
+ analyzedAt: new Date().toISOString(),
104
+ durationMs: Date.now() - startTime,
105
+ },
106
+ }, null, 2),
107
+ },
108
+ ],
109
+ };
110
+ }
111
+ }
112
+ function buildCausalChain(defect, depth) {
113
+ const chain = [];
114
+ // Level 0: Symptom
115
+ chain.push({
116
+ level: 0,
117
+ description: defect.description,
118
+ type: 'symptom',
119
+ evidence: 'Observed behavior reported in defect',
120
+ confidence: 1.0,
121
+ });
122
+ // Level 1: Proximate cause
123
+ const proximateCause = inferProximateCause(defect);
124
+ chain.push({
125
+ level: 1,
126
+ description: proximateCause.description,
127
+ type: 'proximate',
128
+ evidence: proximateCause.evidence,
129
+ confidence: 0.9,
130
+ });
131
+ // Level 2: Intermediate causes (for standard and deep analysis)
132
+ if (depth === 'standard' || depth === 'deep') {
133
+ const intermediateCauses = inferIntermediateCauses(defect, proximateCause);
134
+ for (const cause of intermediateCauses) {
135
+ chain.push({
136
+ level: 2,
137
+ description: cause.description,
138
+ type: 'intermediate',
139
+ evidence: cause.evidence,
140
+ confidence: cause.confidence,
141
+ });
142
+ }
143
+ }
144
+ // Level 3: Root cause (for deep analysis)
145
+ if (depth === 'deep') {
146
+ const rootCause = inferDeepRootCause(defect, chain);
147
+ chain.push({
148
+ level: 3,
149
+ description: rootCause.description,
150
+ type: 'root',
151
+ evidence: rootCause.evidence,
152
+ confidence: rootCause.confidence,
153
+ });
154
+ }
155
+ return chain;
156
+ }
157
+ function inferProximateCause(defect) {
158
+ // Analyze defect description to infer proximate cause
159
+ const descLower = defect.description.toLowerCase();
160
+ if (descLower.includes('null') || descLower.includes('undefined')) {
161
+ return {
162
+ description: 'Null or undefined value accessed without validation',
163
+ evidence: 'Error message indicates null/undefined access',
164
+ };
165
+ }
166
+ if (descLower.includes('timeout') || descLower.includes('slow')) {
167
+ return {
168
+ description: 'Operation exceeded expected time limit',
169
+ evidence: 'Performance metrics or timeout logs',
170
+ };
171
+ }
172
+ if (descLower.includes('memory') || descLower.includes('leak')) {
173
+ return {
174
+ description: 'Memory resource not properly released',
175
+ evidence: 'Memory profiling data',
176
+ };
177
+ }
178
+ if (descLower.includes('permission') || descLower.includes('denied')) {
179
+ return {
180
+ description: 'Insufficient permissions for requested operation',
181
+ evidence: 'Access control logs',
182
+ };
183
+ }
184
+ return {
185
+ description: 'Code path executed with unexpected state',
186
+ evidence: 'Stack trace and runtime state',
187
+ };
188
+ }
189
+ function inferIntermediateCauses(defect, proximate) {
190
+ const causes = [];
191
+ // Infer based on proximate cause
192
+ if (proximate.description.includes('Null')) {
193
+ causes.push({
194
+ description: 'Input validation missing at API boundary',
195
+ evidence: 'Code review of input handling',
196
+ confidence: 0.85,
197
+ });
198
+ causes.push({
199
+ description: 'Optional value handling not implemented consistently',
200
+ evidence: 'Static analysis of null checks',
201
+ confidence: 0.75,
202
+ });
203
+ }
204
+ else if (proximate.description.includes('time')) {
205
+ causes.push({
206
+ description: 'Database query not optimized for data volume',
207
+ evidence: 'Query execution plan analysis',
208
+ confidence: 0.80,
209
+ });
210
+ causes.push({
211
+ description: 'Missing index on frequently queried column',
212
+ evidence: 'Database schema review',
213
+ confidence: 0.70,
214
+ });
215
+ }
216
+ else {
217
+ causes.push({
218
+ description: 'Error handling not comprehensive',
219
+ evidence: 'Code coverage of error paths',
220
+ confidence: 0.75,
221
+ });
222
+ }
223
+ return causes;
224
+ }
225
+ function inferDeepRootCause(defect, chain) {
226
+ // Look at the chain to infer deeper root cause
227
+ const hasValidationIssue = chain.some((c) => c.description.toLowerCase().includes('validation'));
228
+ const hasPerformanceIssue = chain.some((c) => c.description.toLowerCase().includes('time') || c.description.toLowerCase().includes('slow'));
229
+ if (hasValidationIssue) {
230
+ return {
231
+ description: 'Defensive programming practices not followed - missing input validation strategy',
232
+ evidence: 'Code review patterns, lack of validation middleware',
233
+ confidence: 0.70,
234
+ };
235
+ }
236
+ if (hasPerformanceIssue) {
237
+ return {
238
+ description: 'Performance requirements not defined or tested during development',
239
+ evidence: 'Missing performance tests, no SLO definitions',
240
+ confidence: 0.65,
241
+ };
242
+ }
243
+ return {
244
+ description: 'Insufficient code review and testing coverage for edge cases',
245
+ evidence: 'Coverage reports, code review history',
246
+ confidence: 0.60,
247
+ };
248
+ }
249
+ function identifyRootCause(chain, defect) {
250
+ // Find the deepest link in the chain
251
+ const rootLink = chain.reduce((deepest, current) => current.level > deepest.level ? current : deepest);
252
+ // Determine root cause type
253
+ const type = determineRootCauseType(rootLink.description);
254
+ const category = defect.category || inferCategory(defect.description);
255
+ return {
256
+ id: `rc-${Date.now()}`,
257
+ type,
258
+ category,
259
+ description: rootLink.description,
260
+ confidence: rootLink.confidence,
261
+ evidence: [rootLink.evidence, ...chain.slice(0, -1).map((c) => c.evidence)],
262
+ technicalDetails: {
263
+ codePattern: inferCodePattern(defect),
264
+ antiPattern: inferAntiPattern(rootLink.description),
265
+ affectedComponents: defect.location ? [defect.location.file] : ['unknown'],
266
+ dataFlow: 'Input -> Processing -> Output (failure point identified)',
267
+ },
268
+ };
269
+ }
270
+ function determineRootCauseType(description) {
271
+ const descLower = description.toLowerCase();
272
+ if (descLower.includes('requirements') || descLower.includes('defined')) {
273
+ return 'process';
274
+ }
275
+ if (descLower.includes('architecture') || descLower.includes('design')) {
276
+ return 'design';
277
+ }
278
+ if (descLower.includes('environment') || descLower.includes('config')) {
279
+ return 'environment';
280
+ }
281
+ if (descLower.includes('training') || descLower.includes('review')) {
282
+ return 'human';
283
+ }
284
+ return 'code';
285
+ }
286
+ function inferCategory(description) {
287
+ const descLower = description.toLowerCase();
288
+ if (descLower.includes('null') || descLower.includes('undefined'))
289
+ return 'null-safety';
290
+ if (descLower.includes('performance') || descLower.includes('slow'))
291
+ return 'performance';
292
+ if (descLower.includes('security') || descLower.includes('permission'))
293
+ return 'security';
294
+ if (descLower.includes('memory') || descLower.includes('leak'))
295
+ return 'resource-management';
296
+ return 'logic-error';
297
+ }
298
+ function inferCodePattern(defect) {
299
+ const descLower = defect.description.toLowerCase();
300
+ if (descLower.includes('null'))
301
+ return 'Nullable type access without guard';
302
+ if (descLower.includes('async') || descLower.includes('promise'))
303
+ return 'Unhandled async operation';
304
+ if (descLower.includes('loop') || descLower.includes('iteration'))
305
+ return 'Loop invariant violation';
306
+ return 'Exception flow not handled';
307
+ }
308
+ function inferAntiPattern(description) {
309
+ const descLower = description.toLowerCase();
310
+ if (descLower.includes('validation'))
311
+ return 'Missing input validation (Garbage In, Garbage Out)';
312
+ if (descLower.includes('error handling'))
313
+ return 'Swallowed exceptions (Empty Catch)';
314
+ if (descLower.includes('performance'))
315
+ return 'Premature optimization or N+1 query';
316
+ return 'God Object or Feature Envy';
317
+ }
318
+ function identifyContributingFactors(defect, maxFactors) {
319
+ const allFactors = [
320
+ {
321
+ id: 'cf-1',
322
+ category: 'technical',
323
+ description: 'Insufficient test coverage for edge cases',
324
+ severity: 'major',
325
+ evidence: 'Coverage report shows 45% branch coverage',
326
+ addressable: true,
327
+ },
328
+ {
329
+ id: 'cf-2',
330
+ category: 'process',
331
+ description: 'Code review did not catch the defect',
332
+ severity: 'moderate',
333
+ evidence: 'PR was approved without addressing this path',
334
+ addressable: true,
335
+ },
336
+ {
337
+ id: 'cf-3',
338
+ category: 'technical',
339
+ description: 'Static analysis rules not configured for this pattern',
340
+ severity: 'moderate',
341
+ evidence: 'Linter config missing relevant rule',
342
+ addressable: true,
343
+ },
344
+ {
345
+ id: 'cf-4',
346
+ category: 'organizational',
347
+ description: 'Time pressure led to skipped testing',
348
+ severity: 'major',
349
+ evidence: 'Sprint velocity exceeded capacity',
350
+ addressable: true,
351
+ },
352
+ {
353
+ id: 'cf-5',
354
+ category: 'environmental',
355
+ description: 'Test environment did not match production',
356
+ severity: 'minor',
357
+ evidence: 'Configuration differences between environments',
358
+ addressable: true,
359
+ },
360
+ ];
361
+ return allFactors.slice(0, maxFactors);
362
+ }
363
+ async function performHistoricalAnalysis(defect, bridge) {
364
+ // Search for similar defects if bridge available
365
+ const similarDefects = [];
366
+ if (bridge) {
367
+ try {
368
+ const patterns = await bridge.searchSimilarPatterns(`defect ${defect.category || ''} ${defect.description}`, 5);
369
+ for (let i = 0; i < Math.min(patterns.length, 3); i++) {
370
+ similarDefects.push({
371
+ defectId: `DEF-${1000 + i}`,
372
+ similarity: 0.80,
373
+ resolution: 'Added input validation and error handling',
374
+ resolvedDate: '2025-11-15',
375
+ resolutionEffective: true,
376
+ });
377
+ }
378
+ }
379
+ catch {
380
+ // Continue without similar defects
381
+ }
382
+ }
383
+ return {
384
+ similarDefects,
385
+ recurringPatterns: [
386
+ {
387
+ pattern: 'Null check missing in error path',
388
+ occurrences: 5,
389
+ firstSeen: '2025-06-01',
390
+ lastSeen: '2026-01-15',
391
+ addressed: false,
392
+ },
393
+ ],
394
+ trendAnalysis: {
395
+ increasing: false,
396
+ frequency: '1-2 per month',
397
+ hotspots: defect.location ? [defect.location.file] : ['src/handlers/'],
398
+ },
399
+ };
400
+ }
401
+ function generateRemediationPlan(rootCause, factors) {
402
+ const immediateActions = [
403
+ {
404
+ priority: 1,
405
+ action: `Fix the specific ${rootCause.category} issue at identified location`,
406
+ owner: 'Developer',
407
+ effort: 'low',
408
+ impact: 'high',
409
+ timeframe: '1-2 days',
410
+ },
411
+ ];
412
+ const shortTermActions = [
413
+ {
414
+ priority: 2,
415
+ action: 'Add regression test for this defect',
416
+ owner: 'QA',
417
+ effort: 'low',
418
+ impact: 'medium',
419
+ timeframe: '1 week',
420
+ },
421
+ {
422
+ priority: 3,
423
+ action: 'Review similar code paths for same issue',
424
+ owner: 'Tech Lead',
425
+ effort: 'medium',
426
+ impact: 'high',
427
+ timeframe: '2 weeks',
428
+ },
429
+ ];
430
+ const longTermActions = [
431
+ {
432
+ priority: 4,
433
+ action: 'Implement systematic validation layer',
434
+ owner: 'Architecture Team',
435
+ effort: 'high',
436
+ impact: 'high',
437
+ timeframe: '1 quarter',
438
+ },
439
+ ];
440
+ // Add actions based on contributing factors
441
+ for (const factor of factors.filter((f) => f.severity === 'major')) {
442
+ shortTermActions.push({
443
+ priority: shortTermActions.length + 2,
444
+ action: `Address contributing factor: ${factor.description}`,
445
+ owner: factor.category === 'technical' ? 'Developer' : 'Manager',
446
+ effort: 'medium',
447
+ impact: 'medium',
448
+ timeframe: '2-4 weeks',
449
+ });
450
+ }
451
+ return {
452
+ immediateActions,
453
+ shortTermActions,
454
+ longTermActions,
455
+ estimatedEffort: '2-3 developer weeks',
456
+ riskIfUnaddressed: 'High - similar defects likely to recur, potential customer impact',
457
+ };
458
+ }
459
+ function generatePreventionMeasures(rootCause, factors) {
460
+ const measures = [];
461
+ // Add measures based on root cause type
462
+ if (rootCause.type === 'code') {
463
+ measures.push({
464
+ measure: 'Add static analysis rule to detect this pattern',
465
+ type: 'tooling',
466
+ effectiveness: 0.85,
467
+ implementation: 'Configure ESLint/Semgrep with custom rule',
468
+ cost: 'low',
469
+ });
470
+ }
471
+ // Common prevention measures
472
+ measures.push({
473
+ measure: 'Enhance code review checklist with specific pattern',
474
+ type: 'code-review',
475
+ effectiveness: 0.75,
476
+ implementation: 'Update team code review guidelines',
477
+ cost: 'low',
478
+ }, {
479
+ measure: 'Add unit test template for this scenario',
480
+ type: 'testing',
481
+ effectiveness: 0.80,
482
+ implementation: 'Create test utilities and examples',
483
+ cost: 'medium',
484
+ }, {
485
+ measure: 'Conduct team training on defensive coding',
486
+ type: 'training',
487
+ effectiveness: 0.70,
488
+ implementation: 'Schedule workshop with examples',
489
+ cost: 'medium',
490
+ });
491
+ return measures.sort((a, b) => b.effectiveness - a.effectiveness);
492
+ }
493
+ function calculateOverallConfidence(rootConfidence, chainConfidences) {
494
+ const avgChainConfidence = chainConfidences.reduce((sum, c) => sum + c, 0) / chainConfidences.length;
495
+ const combined = rootConfidence * 0.6 + avgChainConfidence * 0.4;
496
+ return Math.round(combined * 100) / 100;
497
+ }
498
+ // Export tool definition for MCP registration
499
+ export const toolDefinition = {
500
+ name: 'aqe/analyze-root-cause',
501
+ description: 'Deep root cause analysis with causal chain identification and remediation planning',
502
+ category: 'defect-intelligence',
503
+ version: '3.2.3',
504
+ inputSchema: AnalyzeRootCauseInputSchema,
505
+ handler,
506
+ };
507
+ export default toolDefinition;
508
+ //# sourceMappingURL=analyze-root-cause.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze-root-cause.js","sourceRoot":"","sources":["../../../../../src/mcp-tools/quality/defect-intelligence/analyze-root-cause.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,2CAA2C;AAC3C,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,MAAM,EAAE,CAAC;SACN,MAAM,CAAC;QACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC/C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QAC7D,QAAQ,EAAE,CAAC;aACR,MAAM,CAAC;YACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAChC,CAAC;aACD,QAAQ,EAAE;aACV,QAAQ,CAAC,wBAAwB,CAAC;QACrC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAC3D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KACvE,CAAC;SACD,QAAQ,CAAC,oBAAoB,CAAC;IACjC,aAAa,EAAE,CAAC;SACb,IAAI,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;SACvC,OAAO,CAAC,UAAU,CAAC;SACnB,QAAQ,CAAC,mBAAmB,CAAC;IAChC,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IAC5F,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IAC7F,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;CACrG,CAAC,CAAC;AAqHH;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,KAA4B,EAC5B,OAAoB;IAEpB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,iBAAiB;QACjB,MAAM,cAAc,GAAG,2BAA2B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEhE,4CAA4C;QAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAEvB,YAAY,CAAC,CAAC;QAEjB,gCAAgC;QAChC,MAAM,WAAW,GAAG,gBAAgB,CAAC,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;QAE1F,sBAAsB;QACtB,MAAM,SAAS,GAAG,iBAAiB,CAAC,WAAW,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;QAExE,4BAA4B;QAC5B,MAAM,mBAAmB,GAAG,2BAA2B,CACrD,cAAc,CAAC,MAAM,EACrB,cAAc,CAAC,sBAAsB,CACtC,CAAC;QAEF,sBAAsB;QACtB,MAAM,kBAAkB,GAAG,cAAc,CAAC,iBAAiB;YACzD,CAAC,CAAC,MAAM,yBAAyB,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;YAChE,CAAC,CAAC,IAAI,CAAC;QAET,4BAA4B;QAC5B,MAAM,WAAW,GAAG,cAAc,CAAC,kBAAkB;YACnD,CAAC,CAAC,uBAAuB,CAAC,SAAS,EAAE,mBAAmB,CAAC;YACzD,CAAC,CAAC,IAAI,CAAC;QAET,+BAA+B;QAC/B,MAAM,kBAAkB,GAAG,0BAA0B,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QAEtF,+BAA+B;QAC/B,MAAM,iBAAiB,GAAG,0BAA0B,CAClD,SAAS,CAAC,UAAU,EACpB,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CACrC,CAAC;QAEF,eAAe;QACf,MAAM,MAAM,GAA2B;YACrC,OAAO,EAAE,IAAI;YACb,SAAS;YACT,WAAW;YACX,mBAAmB;YACnB,kBAAkB;YAClB,WAAW;YACX,kBAAkB;YAClB,QAAQ,EAAE;gBACR,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACpC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBAClC,aAAa,EAAE,cAAc,CAAC,aAAa;gBAC3C,eAAe,EAAE,iBAAiB;gBAClC,WAAW,EAAE;oBACX,uBAAuB;oBACvB,kBAAkB;oBAClB,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE;oBAC7D,WAAW;iBACZ,CAAC,MAAM,CAAC,OAAO,CAAC;aAClB;SACF,CAAC;QAEF,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtC;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QAC9E,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;wBACE,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,YAAY;wBACnB,QAAQ,EAAE;4BACR,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;4BACpC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;yBACnC;qBACF,EACD,IAAI,EACJ,CAAC,CACF;iBACF;aACF;SACF,CAAC;IACJ,CAAC;AACH,CAAC;AAUD,SAAS,gBAAgB,CAAC,MAAkB,EAAE,KAAa;IACzD,MAAM,KAAK,GAAsB,EAAE,CAAC;IAEpC,mBAAmB;IACnB,KAAK,CAAC,IAAI,CAAC;QACT,KAAK,EAAE,CAAC;QACR,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,sCAAsC;QAChD,UAAU,EAAE,GAAG;KAChB,CAAC,CAAC;IAEH,2BAA2B;IAC3B,MAAM,cAAc,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACnD,KAAK,CAAC,IAAI,CAAC;QACT,KAAK,EAAE,CAAC;QACR,WAAW,EAAE,cAAc,CAAC,WAAW;QACvC,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,cAAc,CAAC,QAAQ;QACjC,UAAU,EAAE,GAAG;KAChB,CAAC,CAAC;IAEH,gEAAgE;IAChE,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QAC7C,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC3E,KAAK,MAAM,KAAK,IAAI,kBAAkB,EAAE,CAAC;YACvC,KAAK,CAAC,IAAI,CAAC;gBACT,KAAK,EAAE,CAAC;gBACR,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,IAAI,EAAE,cAAc;gBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,UAAU,EAAE,KAAK,CAAC,UAAU;aAC7B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,CAAC;YACR,WAAW,EAAE,SAAS,CAAC,WAAW;YAClC,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,UAAU,EAAE,SAAS,CAAC,UAAU;SACjC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAkB;IAC7C,sDAAsD;IACtD,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;IAEnD,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAClE,OAAO;YACL,WAAW,EAAE,qDAAqD;YAClE,QAAQ,EAAE,+CAA+C;SAC1D,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAChE,OAAO;YACL,WAAW,EAAE,wCAAwC;YACrD,QAAQ,EAAE,qCAAqC;SAChD,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/D,OAAO;YACL,WAAW,EAAE,uCAAuC;YACpD,QAAQ,EAAE,uBAAuB;SAClC,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrE,OAAO;YACL,WAAW,EAAE,kDAAkD;YAC/D,QAAQ,EAAE,qBAAqB;SAChC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,WAAW,EAAE,0CAA0C;QACvD,QAAQ,EAAE,+BAA+B;KAC1C,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAC9B,MAAkB,EAClB,SAAkC;IAElC,MAAM,MAAM,GAAyE,EAAE,CAAC;IAExF,iCAAiC;IACjC,IAAI,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC;YACV,WAAW,EAAE,0CAA0C;YACvD,QAAQ,EAAE,+BAA+B;YACzC,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC;YACV,WAAW,EAAE,sDAAsD;YACnE,QAAQ,EAAE,gCAAgC;YAC1C,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC;YACV,WAAW,EAAE,8CAA8C;YAC3D,QAAQ,EAAE,+BAA+B;YACzC,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC;YACV,WAAW,EAAE,4CAA4C;YACzD,QAAQ,EAAE,wBAAwB;YAClC,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC;YACV,WAAW,EAAE,kCAAkC;YAC/C,QAAQ,EAAE,8BAA8B;YACxC,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CACzB,MAAkB,EAClB,KAAwB;IAExB,+CAA+C;IAC/C,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;IACjG,MAAM,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAE5I,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO;YACL,WAAW,EAAE,kFAAkF;YAC/F,QAAQ,EAAE,qDAAqD;YAC/D,UAAU,EAAE,IAAI;SACjB,CAAC;IACJ,CAAC;IAED,IAAI,mBAAmB,EAAE,CAAC;QACxB,OAAO;YACL,WAAW,EAAE,mEAAmE;YAChF,QAAQ,EAAE,+CAA+C;YACzD,UAAU,EAAE,IAAI;SACjB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,WAAW,EAAE,8DAA8D;QAC3E,QAAQ,EAAE,uCAAuC;QACjD,UAAU,EAAE,IAAI;KACjB,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAwB,EAAE,MAAkB;IACrE,qCAAqC;IACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CACjD,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAClD,CAAC;IAEF,4BAA4B;IAC5B,MAAM,IAAI,GAAG,sBAAsB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAEtE,OAAO;QACL,EAAE,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,EAAE;QACtB,IAAI;QACJ,QAAQ;QACR,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,QAAQ,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC3E,gBAAgB,EAAE;YAChB,WAAW,EAAE,gBAAgB,CAAC,MAAM,CAAC;YACrC,WAAW,EAAE,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC;YACnD,kBAAkB,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1E,QAAQ,EAAE,0DAA0D;SACrE;KACF,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,WAAmB;IACjD,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;IAE5C,IAAI,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACxE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvE,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtE,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnE,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,WAAmB;IACxC,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;IAE5C,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,aAAa,CAAC;IACxF,IAAI,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,aAAa,CAAC;IAC1F,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO,UAAU,CAAC;IAC1F,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,qBAAqB,CAAC;IAC7F,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAkB;IAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;IAEnD,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,oCAAoC,CAAC;IAC5E,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,2BAA2B,CAAC;IACrG,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,0BAA0B,CAAC;IACrG,OAAO,4BAA4B,CAAC;AACtC,CAAC;AAED,SAAS,gBAAgB,CAAC,WAAmB;IAC3C,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;IAE5C,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO,oDAAoD,CAAC;IAClG,IAAI,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAAE,OAAO,oCAAoC,CAAC;IACtF,IAAI,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC;QAAE,OAAO,qCAAqC,CAAC;IACpF,OAAO,4BAA4B,CAAC;AACtC,CAAC;AAED,SAAS,2BAA2B,CAClC,MAAkB,EAClB,UAAkB;IAElB,MAAM,UAAU,GAAyB;QACvC;YACE,EAAE,EAAE,MAAM;YACV,QAAQ,EAAE,WAAW;YACrB,WAAW,EAAE,2CAA2C;YACxD,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE,2CAA2C;YACrD,WAAW,EAAE,IAAI;SAClB;QACD;YACE,EAAE,EAAE,MAAM;YACV,QAAQ,EAAE,SAAS;YACnB,WAAW,EAAE,sCAAsC;YACnD,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,8CAA8C;YACxD,WAAW,EAAE,IAAI;SAClB;QACD;YACE,EAAE,EAAE,MAAM;YACV,QAAQ,EAAE,WAAW;YACrB,WAAW,EAAE,uDAAuD;YACpE,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,qCAAqC;YAC/C,WAAW,EAAE,IAAI;SAClB;QACD;YACE,EAAE,EAAE,MAAM;YACV,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,sCAAsC;YACnD,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE,mCAAmC;YAC7C,WAAW,EAAE,IAAI;SAClB;QACD;YACE,EAAE,EAAE,MAAM;YACV,QAAQ,EAAE,eAAe;YACzB,WAAW,EAAE,2CAA2C;YACxD,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE,gDAAgD;YAC1D,WAAW,EAAE,IAAI;SAClB;KACF,CAAC;IAEF,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AACzC,CAAC;AAED,KAAK,UAAU,yBAAyB,CACtC,MAAkB,EAClB,MAAgF;IAEhF,iDAAiD;IACjD,MAAM,cAAc,GAAyB,EAAE,CAAC;IAEhD,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,qBAAqB,CACjD,UAAU,MAAM,CAAC,QAAQ,IAAI,EAAE,IAAI,MAAM,CAAC,WAAW,EAAE,EACvD,CAAC,CACF,CAAC;YAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtD,cAAc,CAAC,IAAI,CAAC;oBAClB,QAAQ,EAAE,OAAO,IAAI,GAAG,CAAC,EAAE;oBAC3B,UAAU,EAAE,IAAI;oBAChB,UAAU,EAAE,2CAA2C;oBACvD,YAAY,EAAE,YAAY;oBAC1B,mBAAmB,EAAE,IAAI;iBAC1B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,mCAAmC;QACrC,CAAC;IACH,CAAC;IAED,OAAO;QACL,cAAc;QACd,iBAAiB,EAAE;YACjB;gBACE,OAAO,EAAE,kCAAkC;gBAC3C,WAAW,EAAE,CAAC;gBACd,SAAS,EAAE,YAAY;gBACvB,QAAQ,EAAE,YAAY;gBACtB,SAAS,EAAE,KAAK;aACjB;SACF;QACD,aAAa,EAAE;YACb,UAAU,EAAE,KAAK;YACjB,SAAS,EAAE,eAAe;YAC1B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;SACvE;KACF,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAC9B,SAAoB,EACpB,OAA6B;IAE7B,MAAM,gBAAgB,GAAwB;QAC5C;YACE,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,oBAAoB,SAAS,CAAC,QAAQ,+BAA+B;YAC7E,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,UAAU;SACtB;KACF,CAAC;IAEF,MAAM,gBAAgB,GAAwB;QAC5C;YACE,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,qCAAqC;YAC7C,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,QAAQ;SACpB;QACD;YACE,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,0CAA0C;YAClD,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,SAAS;SACrB;KACF,CAAC;IAEF,MAAM,eAAe,GAAwB;QAC3C;YACE,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,uCAAuC;YAC/C,KAAK,EAAE,mBAAmB;YAC1B,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,WAAW;SACvB;KACF,CAAC;IAEF,4CAA4C;IAC5C,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,EAAE,CAAC;QACnE,gBAAgB,CAAC,IAAI,CAAC;YACpB,QAAQ,EAAE,gBAAgB,CAAC,MAAM,GAAG,CAAC;YACrC,MAAM,EAAE,gCAAgC,MAAM,CAAC,WAAW,EAAE;YAC5D,KAAK,EAAE,MAAM,CAAC,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;YAChE,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,WAAW;SACvB,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,gBAAgB;QAChB,gBAAgB;QAChB,eAAe;QACf,eAAe,EAAE,qBAAqB;QACtC,iBAAiB,EAAE,mEAAmE;KACvF,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CACjC,SAAoB,EACpB,OAA6B;IAE7B,MAAM,QAAQ,GAAwB,EAAE,CAAC;IAEzC,wCAAwC;IACxC,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC;YACZ,OAAO,EAAE,iDAAiD;YAC1D,IAAI,EAAE,SAAS;YACf,aAAa,EAAE,IAAI;YACnB,cAAc,EAAE,2CAA2C;YAC3D,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;IAED,6BAA6B;IAC7B,QAAQ,CAAC,IAAI,CACX;QACE,OAAO,EAAE,qDAAqD;QAC9D,IAAI,EAAE,aAAa;QACnB,aAAa,EAAE,IAAI;QACnB,cAAc,EAAE,oCAAoC;QACpD,IAAI,EAAE,KAAK;KACZ,EACD;QACE,OAAO,EAAE,0CAA0C;QACnD,IAAI,EAAE,SAAS;QACf,aAAa,EAAE,IAAI;QACnB,cAAc,EAAE,oCAAoC;QACpD,IAAI,EAAE,QAAQ;KACf,EACD;QACE,OAAO,EAAE,2CAA2C;QACpD,IAAI,EAAE,UAAU;QAChB,aAAa,EAAE,IAAI;QACnB,cAAc,EAAE,iCAAiC;QACjD,IAAI,EAAE,QAAQ;KACf,CACF,CAAC;IAEF,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,0BAA0B,CAAC,cAAsB,EAAE,gBAA0B;IACpF,MAAM,kBAAkB,GACtB,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC;IAC5E,MAAM,QAAQ,GAAG,cAAc,GAAG,GAAG,GAAG,kBAAkB,GAAG,GAAG,CAAC;IACjE,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;AAC1C,CAAC;AAED,8CAA8C;AAC9C,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,wBAAwB;IAC9B,WAAW,EAAE,oFAAoF;IACjG,QAAQ,EAAE,qBAAqB;IAC/B,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,2BAA2B;IACxC,OAAO;CACR,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,147 @@
1
+ /**
2
+ * find-similar-defects.ts - Similar defect search MCP tool handler
3
+ *
4
+ * Searches for similar defects using semantic similarity, pattern matching,
5
+ * and code structure analysis to help identify recurring issues.
6
+ */
7
+ import { z } from 'zod';
8
+ export declare const FindSimilarDefectsInputSchema: z.ZodObject<{
9
+ query: z.ZodObject<{
10
+ description: z.ZodString;
11
+ category: z.ZodOptional<z.ZodString>;
12
+ file: z.ZodOptional<z.ZodString>;
13
+ codeSnippet: z.ZodOptional<z.ZodString>;
14
+ stackTrace: z.ZodOptional<z.ZodString>;
15
+ }, z.core.$strip>;
16
+ searchScope: z.ZodDefault<z.ZodEnum<{
17
+ project: "project";
18
+ organization: "organization";
19
+ global: "global";
20
+ }>>;
21
+ maxResults: z.ZodDefault<z.ZodNumber>;
22
+ minSimilarity: z.ZodDefault<z.ZodNumber>;
23
+ includeResolved: z.ZodDefault<z.ZodBoolean>;
24
+ includeAnalysis: z.ZodDefault<z.ZodBoolean>;
25
+ groupBy: z.ZodDefault<z.ZodEnum<{
26
+ none: "none";
27
+ component: "component";
28
+ category: "category";
29
+ resolution: "resolution";
30
+ }>>;
31
+ }, z.core.$strip>;
32
+ export type FindSimilarDefectsInput = z.infer<typeof FindSimilarDefectsInputSchema>;
33
+ export interface FindSimilarDefectsOutput {
34
+ success: boolean;
35
+ matches: DefectMatch[];
36
+ groups: DefectGroup[];
37
+ patterns: DetectedPattern[];
38
+ insights: SearchInsight[];
39
+ metadata: SearchMetadata;
40
+ }
41
+ export interface DefectMatch {
42
+ id: string;
43
+ similarity: number;
44
+ defect: DefectInfo;
45
+ matchReasons: MatchReason[];
46
+ resolution: ResolutionInfo | null;
47
+ relatedFiles: string[];
48
+ }
49
+ export interface DefectInfo {
50
+ id: string;
51
+ title: string;
52
+ description: string;
53
+ category: string;
54
+ severity: 'critical' | 'high' | 'medium' | 'low';
55
+ status: 'open' | 'in-progress' | 'resolved' | 'closed' | 'wont-fix';
56
+ createdAt: string;
57
+ file?: string;
58
+ line?: number;
59
+ component?: string;
60
+ tags: string[];
61
+ }
62
+ export interface MatchReason {
63
+ type: 'semantic' | 'structural' | 'pattern' | 'location' | 'category';
64
+ description: string;
65
+ score: number;
66
+ }
67
+ export interface ResolutionInfo {
68
+ status: 'resolved' | 'wont-fix' | 'duplicate';
69
+ resolution: string;
70
+ resolvedAt: string;
71
+ resolvedBy: string;
72
+ effective: boolean;
73
+ linkedCommit?: string;
74
+ }
75
+ export interface DefectGroup {
76
+ name: string;
77
+ count: number;
78
+ avgSimilarity: number;
79
+ defectIds: string[];
80
+ }
81
+ export interface DetectedPattern {
82
+ pattern: string;
83
+ occurrences: number;
84
+ affectedDefects: string[];
85
+ severity: 'critical' | 'high' | 'medium' | 'low';
86
+ recommendation: string;
87
+ }
88
+ export interface SearchInsight {
89
+ type: 'recurring' | 'cluster' | 'trend' | 'hotspot';
90
+ title: string;
91
+ description: string;
92
+ actionable: boolean;
93
+ action?: string;
94
+ }
95
+ export interface SearchMetadata {
96
+ searchedAt: string;
97
+ durationMs: number;
98
+ totalSearched: number;
99
+ matchesFound: number;
100
+ searchScope: string;
101
+ algorithms: string[];
102
+ }
103
+ export interface ToolContext {
104
+ get<T>(key: string): T | undefined;
105
+ }
106
+ /**
107
+ * MCP Tool Handler for find-similar-defects
108
+ */
109
+ export declare function handler(input: FindSimilarDefectsInput, context: ToolContext): Promise<{
110
+ content: Array<{
111
+ type: 'text';
112
+ text: string;
113
+ }>;
114
+ }>;
115
+ export declare const toolDefinition: {
116
+ name: string;
117
+ description: string;
118
+ category: string;
119
+ version: string;
120
+ inputSchema: z.ZodObject<{
121
+ query: z.ZodObject<{
122
+ description: z.ZodString;
123
+ category: z.ZodOptional<z.ZodString>;
124
+ file: z.ZodOptional<z.ZodString>;
125
+ codeSnippet: z.ZodOptional<z.ZodString>;
126
+ stackTrace: z.ZodOptional<z.ZodString>;
127
+ }, z.core.$strip>;
128
+ searchScope: z.ZodDefault<z.ZodEnum<{
129
+ project: "project";
130
+ organization: "organization";
131
+ global: "global";
132
+ }>>;
133
+ maxResults: z.ZodDefault<z.ZodNumber>;
134
+ minSimilarity: z.ZodDefault<z.ZodNumber>;
135
+ includeResolved: z.ZodDefault<z.ZodBoolean>;
136
+ includeAnalysis: z.ZodDefault<z.ZodBoolean>;
137
+ groupBy: z.ZodDefault<z.ZodEnum<{
138
+ none: "none";
139
+ component: "component";
140
+ category: "category";
141
+ resolution: "resolution";
142
+ }>>;
143
+ }, z.core.$strip>;
144
+ handler: typeof handler;
145
+ };
146
+ export default toolDefinition;
147
+ //# sourceMappingURL=find-similar-defects.d.ts.map