@monoes/monomindcli 1.15.4 → 1.15.6

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 (109) 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/src/plugins/store/discovery.d.ts.map +1 -1
  105. package/dist/src/plugins/store/discovery.js +4 -124
  106. package/dist/src/plugins/store/discovery.js.map +1 -1
  107. package/dist/tsconfig.tsbuildinfo +1 -1
  108. package/package.json +1 -1
  109. package/scripts/publish-registry.ts +0 -2
@@ -0,0 +1,414 @@
1
+ /**
2
+ * chaos-inject.ts - Chaos failure injection MCP tool handler
3
+ *
4
+ * Injects controlled failures for resilience testing including network
5
+ * latency, process termination, resource exhaustion, and more.
6
+ * Includes dryRun safety mode.
7
+ */
8
+ import { z } from 'zod';
9
+ // Input schema for chaos-inject tool
10
+ export const ChaosInjectInputSchema = z.object({
11
+ target: z.string().describe('Target service/component for chaos injection'),
12
+ failureType: z
13
+ .enum([
14
+ 'network-latency',
15
+ 'network-partition',
16
+ 'cpu-stress',
17
+ 'memory-pressure',
18
+ 'disk-failure',
19
+ 'process-kill',
20
+ 'dns-failure',
21
+ 'dependency-failure',
22
+ 'clock-skew',
23
+ 'packet-loss',
24
+ ])
25
+ .describe('Type of failure to inject'),
26
+ duration: z.number().min(1).max(3600).default(30).describe('Duration in seconds'),
27
+ intensity: z.number().min(0).max(1).default(0.5).describe('Intensity 0-1'),
28
+ dryRun: z.boolean().default(true).describe('If true, simulate without actual injection'),
29
+ rollbackOnFailure: z.boolean().default(true).describe('Auto-rollback if issues detected'),
30
+ monitorMetrics: z.boolean().default(true).describe('Monitor system metrics during chaos'),
31
+ notifyChannels: z.array(z.string()).default([]).describe('Notification channels'),
32
+ parameters: z
33
+ .object({
34
+ latencyMs: z.number().optional().describe('Latency to add in ms'),
35
+ packetLossPercent: z.number().optional().describe('Packet loss percentage'),
36
+ cpuCores: z.number().optional().describe('Number of CPU cores to stress'),
37
+ memoryPercent: z.number().optional().describe('Memory pressure percentage'),
38
+ targetProcesses: z.array(z.string()).optional().describe('Processes to target'),
39
+ })
40
+ .optional()
41
+ .describe('Type-specific parameters'),
42
+ });
43
+ /**
44
+ * MCP Tool Handler for chaos-inject
45
+ */
46
+ export async function handler(input, context) {
47
+ const startTime = Date.now();
48
+ const experimentId = `chaos-${Date.now()}-${Math.random().toString(36).substring(7)}`;
49
+ try {
50
+ // Validate input
51
+ const validatedInput = ChaosInjectInputSchema.parse(input);
52
+ // SAFETY: Check for dry run mode
53
+ if (!validatedInput.dryRun) {
54
+ // In a real implementation, would require explicit confirmation
55
+ // For MCP tool, we default to dry run for safety
56
+ console.warn('Non-dry-run chaos injection requested - proceeding with simulation');
57
+ }
58
+ // Generate experiment timeline
59
+ const timeline = [];
60
+ const experimentStart = new Date().toISOString();
61
+ timeline.push({
62
+ timestamp: experimentStart,
63
+ event: 'Experiment initialized',
64
+ type: 'info',
65
+ details: `Chaos experiment ${experimentId} created for ${validatedInput.target}`,
66
+ });
67
+ // Capture baseline metrics
68
+ const baseline = captureMetricSnapshot('baseline');
69
+ timeline.push({
70
+ timestamp: new Date().toISOString(),
71
+ event: 'Baseline captured',
72
+ type: 'info',
73
+ details: `CPU: ${baseline.cpu}%, Memory: ${baseline.memory}%, Latency: ${baseline.networkLatency}ms`,
74
+ });
75
+ // Prepare injection details
76
+ const injection = prepareInjection(validatedInput);
77
+ timeline.push({
78
+ timestamp: new Date().toISOString(),
79
+ event: 'Injection prepared',
80
+ type: 'info',
81
+ details: `${validatedInput.failureType} injection ready for ${injection.affectedComponents.length} components`,
82
+ });
83
+ // Simulate chaos (or actually inject if not dry run)
84
+ const chaosResult = await simulateChaos(validatedInput, injection, validatedInput.dryRun);
85
+ // Add chaos events to timeline
86
+ timeline.push(...chaosResult.events);
87
+ // Capture during-chaos metrics
88
+ const duringChaos = captureMetricSnapshot('during-chaos', chaosResult.degradation);
89
+ timeline.push({
90
+ timestamp: new Date().toISOString(),
91
+ event: 'During-chaos metrics',
92
+ type: chaosResult.degradation > 50 ? 'warning' : 'info',
93
+ details: `CPU: ${duringChaos.cpu}%, Error rate: ${duringChaos.errorRate}%`,
94
+ });
95
+ // Check for rollback
96
+ let rollbackRequired = false;
97
+ let rollbackCompleted = false;
98
+ if (validatedInput.rollbackOnFailure && chaosResult.degradation > 80) {
99
+ rollbackRequired = true;
100
+ timeline.push({
101
+ timestamp: new Date().toISOString(),
102
+ event: 'Rollback triggered',
103
+ type: 'warning',
104
+ details: 'System degradation exceeded threshold, initiating rollback',
105
+ });
106
+ // Simulate rollback
107
+ await simulateRollback();
108
+ rollbackCompleted = true;
109
+ timeline.push({
110
+ timestamp: new Date().toISOString(),
111
+ event: 'Rollback completed',
112
+ type: 'recovery',
113
+ details: 'System restored to pre-chaos state',
114
+ });
115
+ }
116
+ // Capture after-chaos metrics
117
+ const afterChaos = captureMetricSnapshot('after-chaos', rollbackCompleted ? 0 : chaosResult.degradation * 0.3);
118
+ timeline.push({
119
+ timestamp: new Date().toISOString(),
120
+ event: 'Experiment completed',
121
+ type: 'info',
122
+ details: `Recovery time: ${chaosResult.recoveryTime}s`,
123
+ });
124
+ // Calculate impact
125
+ const impact = assessImpact(chaosResult, validatedInput.target);
126
+ // Generate recommendations
127
+ const recommendations = generateRecommendations(chaosResult, impact);
128
+ // Build result
129
+ const result = {
130
+ success: true,
131
+ experimentId,
132
+ status: {
133
+ state: validatedInput.dryRun ? 'dry-run' : 'completed',
134
+ progress: 100,
135
+ startTime: experimentStart,
136
+ endTime: new Date().toISOString(),
137
+ rollbackRequired,
138
+ rollbackCompleted,
139
+ },
140
+ injection,
141
+ impact,
142
+ metrics: {
143
+ baseline,
144
+ duringChaos,
145
+ afterChaos,
146
+ degradation: chaosResult.degradation,
147
+ recoveryTime: chaosResult.recoveryTime,
148
+ },
149
+ timeline,
150
+ recommendations,
151
+ metadata: {
152
+ experimentId,
153
+ createdAt: experimentStart,
154
+ completedAt: new Date().toISOString(),
155
+ dryRun: validatedInput.dryRun,
156
+ version: '3.2.3',
157
+ },
158
+ };
159
+ return {
160
+ content: [
161
+ {
162
+ type: 'text',
163
+ text: JSON.stringify(result, null, 2),
164
+ },
165
+ ],
166
+ };
167
+ }
168
+ catch (error) {
169
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
170
+ return {
171
+ content: [
172
+ {
173
+ type: 'text',
174
+ text: JSON.stringify({
175
+ success: false,
176
+ experimentId,
177
+ error: errorMessage,
178
+ status: {
179
+ state: 'aborted',
180
+ progress: 0,
181
+ rollbackRequired: false,
182
+ rollbackCompleted: false,
183
+ },
184
+ metadata: {
185
+ experimentId,
186
+ createdAt: new Date().toISOString(),
187
+ dryRun: input.dryRun ?? true,
188
+ },
189
+ }, null, 2),
190
+ },
191
+ ],
192
+ };
193
+ }
194
+ }
195
+ function captureMetricSnapshot(phase, degradation = 0) {
196
+ const baseMetrics = {
197
+ cpu: 35,
198
+ memory: 60,
199
+ networkLatency: 15,
200
+ errorRate: 0.5,
201
+ requestsPerSecond: 1000,
202
+ };
203
+ // Apply degradation
204
+ return {
205
+ timestamp: new Date().toISOString(),
206
+ cpu: Math.min(100, baseMetrics.cpu + degradation * 0.5),
207
+ memory: Math.min(100, baseMetrics.memory + degradation * 0.3),
208
+ networkLatency: baseMetrics.networkLatency * (1 + degradation / 50),
209
+ errorRate: Math.min(100, baseMetrics.errorRate + degradation * 0.5),
210
+ requestsPerSecond: Math.max(0, baseMetrics.requestsPerSecond * (1 - degradation / 150)),
211
+ };
212
+ }
213
+ function prepareInjection(input) {
214
+ const affectedComponents = determineAffectedComponents(input.target, input.failureType);
215
+ return {
216
+ type: input.failureType,
217
+ target: input.target,
218
+ intensity: input.intensity,
219
+ duration: input.duration,
220
+ parameters: {
221
+ ...input.parameters,
222
+ failureType: input.failureType,
223
+ },
224
+ affectedComponents,
225
+ };
226
+ }
227
+ function determineAffectedComponents(target, failureType) {
228
+ const components = [target];
229
+ // Add dependent components based on failure type
230
+ if (failureType.includes('network')) {
231
+ components.push(`${target}-lb`, `${target}-gateway`);
232
+ }
233
+ if (failureType.includes('cpu') || failureType.includes('memory')) {
234
+ components.push(`${target}-worker`, `${target}-cache`);
235
+ }
236
+ if (failureType.includes('dependency')) {
237
+ components.push(`${target}-db`, `${target}-queue`);
238
+ }
239
+ return components;
240
+ }
241
+ async function simulateChaos(input, injection, dryRun) {
242
+ const events = [];
243
+ // Simulate injection start
244
+ events.push({
245
+ timestamp: new Date().toISOString(),
246
+ event: dryRun ? 'Simulating chaos injection' : 'Chaos injection started',
247
+ type: 'info',
248
+ details: `${input.failureType} at ${input.intensity * 100}% intensity`,
249
+ });
250
+ // Calculate degradation based on failure type and intensity
251
+ const degradation = calculateDegradation(input.failureType, input.intensity);
252
+ // Simulate duration
253
+ const durationEvents = simulateDurationEvents(input.duration, degradation);
254
+ events.push(...durationEvents);
255
+ // Simulate recovery
256
+ const recoveryTime = calculateRecoveryTime(input.failureType, degradation);
257
+ events.push({
258
+ timestamp: new Date().toISOString(),
259
+ event: dryRun ? 'Simulation complete' : 'Chaos injection ended',
260
+ type: 'info',
261
+ details: `Duration: ${input.duration}s, Peak degradation: ${degradation.toFixed(1)}%`,
262
+ });
263
+ return {
264
+ degradation,
265
+ recoveryTime,
266
+ events,
267
+ };
268
+ }
269
+ function calculateDegradation(failureType, intensity) {
270
+ const baseDegradation = {
271
+ 'network-latency': 30,
272
+ 'network-partition': 90,
273
+ 'cpu-stress': 50,
274
+ 'memory-pressure': 45,
275
+ 'disk-failure': 60,
276
+ 'process-kill': 95,
277
+ 'dns-failure': 80,
278
+ 'dependency-failure': 70,
279
+ 'clock-skew': 20,
280
+ 'packet-loss': 40,
281
+ };
282
+ const base = baseDegradation[failureType] || 50;
283
+ return base * intensity + Math.random() * 10;
284
+ }
285
+ function calculateRecoveryTime(failureType, degradation) {
286
+ const baseRecovery = {
287
+ 'network-latency': 2,
288
+ 'network-partition': 30,
289
+ 'cpu-stress': 5,
290
+ 'memory-pressure': 10,
291
+ 'disk-failure': 60,
292
+ 'process-kill': 45,
293
+ 'dns-failure': 15,
294
+ 'dependency-failure': 20,
295
+ 'clock-skew': 5,
296
+ 'packet-loss': 3,
297
+ };
298
+ const base = baseRecovery[failureType] || 15;
299
+ return Math.round(base * (1 + degradation / 100));
300
+ }
301
+ function simulateDurationEvents(duration, degradation) {
302
+ const events = [];
303
+ // Add mid-point event
304
+ if (duration > 10) {
305
+ events.push({
306
+ timestamp: new Date().toISOString(),
307
+ event: 'Chaos in progress',
308
+ type: degradation > 60 ? 'warning' : 'info',
309
+ details: `Current degradation: ${degradation.toFixed(1)}%`,
310
+ });
311
+ }
312
+ // Add high degradation warning
313
+ if (degradation > 70) {
314
+ events.push({
315
+ timestamp: new Date().toISOString(),
316
+ event: 'High degradation detected',
317
+ type: 'warning',
318
+ details: `System showing ${degradation.toFixed(1)}% degradation`,
319
+ });
320
+ }
321
+ return events;
322
+ }
323
+ async function simulateRollback() {
324
+ // Simulate rollback delay
325
+ await new Promise((resolve) => setTimeout(resolve, 100));
326
+ }
327
+ function assessImpact(chaosResult, target) {
328
+ const degradation = chaosResult.degradation;
329
+ const severity = degradation >= 90
330
+ ? 'critical'
331
+ : degradation >= 70
332
+ ? 'high'
333
+ : degradation >= 40
334
+ ? 'medium'
335
+ : degradation >= 10
336
+ ? 'low'
337
+ : 'none';
338
+ // Calculate affected requests
339
+ const totalRequests = 10000;
340
+ const failedRequests = Math.round(totalRequests * (degradation / 100) * 0.5);
341
+ return {
342
+ severity,
343
+ systemsAffected: [target, `${target}-dependent`],
344
+ usersAffected: Math.round(failedRequests / 10),
345
+ recoveryTime: chaosResult.recoveryTime,
346
+ dataLoss: false,
347
+ serviceDisruption: {
348
+ totalRequests,
349
+ failedRequests,
350
+ errorRate: Math.round((failedRequests / totalRequests) * 100 * 10) / 10,
351
+ avgLatency: 15 + degradation * 2,
352
+ p99Latency: 50 + degradation * 5,
353
+ },
354
+ };
355
+ }
356
+ function generateRecommendations(chaosResult, impact) {
357
+ const recommendations = [];
358
+ // High degradation recommendations
359
+ if (chaosResult.degradation > 70) {
360
+ recommendations.push({
361
+ category: 'resilience',
362
+ priority: 'high',
363
+ finding: 'System showed significant degradation under chaos',
364
+ recommendation: 'Implement circuit breakers and fallback mechanisms',
365
+ evidence: `${chaosResult.degradation.toFixed(1)}% degradation observed`,
366
+ });
367
+ }
368
+ // Slow recovery recommendations
369
+ if (chaosResult.recoveryTime > 30) {
370
+ recommendations.push({
371
+ category: 'recovery',
372
+ priority: 'high',
373
+ finding: 'Recovery time exceeds acceptable threshold',
374
+ recommendation: 'Implement automatic scaling and health checks',
375
+ evidence: `Recovery time: ${chaosResult.recoveryTime}s`,
376
+ });
377
+ }
378
+ // Error rate recommendations
379
+ if (impact.serviceDisruption.errorRate > 10) {
380
+ recommendations.push({
381
+ category: 'resilience',
382
+ priority: 'medium',
383
+ finding: 'High error rate during chaos injection',
384
+ recommendation: 'Add retry logic with exponential backoff',
385
+ evidence: `Error rate: ${impact.serviceDisruption.errorRate}%`,
386
+ });
387
+ }
388
+ // General recommendations
389
+ recommendations.push({
390
+ category: 'monitoring',
391
+ priority: 'medium',
392
+ finding: 'Chaos testing revealed system behavior under failure',
393
+ recommendation: 'Set up alerting for similar degradation patterns',
394
+ evidence: 'Observed metrics during chaos experiment',
395
+ }, {
396
+ category: 'configuration',
397
+ priority: 'low',
398
+ finding: 'System configuration may benefit from tuning',
399
+ recommendation: 'Review timeout and retry configurations',
400
+ evidence: 'Latency patterns observed during chaos',
401
+ });
402
+ return recommendations;
403
+ }
404
+ // Export tool definition for MCP registration
405
+ export const toolDefinition = {
406
+ name: 'aqe/chaos-inject',
407
+ description: 'Inject chaos failures for resilience testing with dryRun safety mode',
408
+ category: 'chaos-resilience',
409
+ version: '3.2.3',
410
+ inputSchema: ChaosInjectInputSchema,
411
+ handler,
412
+ };
413
+ export default toolDefinition;
414
+ //# sourceMappingURL=chaos-inject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chaos-inject.js","sourceRoot":"","sources":["../../../../../src/mcp-tools/quality/chaos-resilience/chaos-inject.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,qCAAqC;AACrC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;IAC3E,WAAW,EAAE,CAAC;SACX,IAAI,CAAC;QACJ,iBAAiB;QACjB,mBAAmB;QACnB,YAAY;QACZ,iBAAiB;QACjB,cAAc;QACd,cAAc;QACd,aAAa;QACb,oBAAoB;QACpB,YAAY;QACZ,aAAa;KACd,CAAC;SACD,QAAQ,CAAC,2BAA2B,CAAC;IACxC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IACjF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;IAC1E,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IACxF,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IACzF,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IACzF,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IACjF,UAAU,EAAE,CAAC;SACV,MAAM,CAAC;QACN,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACjE,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QAC3E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QACzE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAC3E,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;KAChF,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CAAC,0BAA0B,CAAC;CACxC,CAAC,CAAC;AAiGH;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,KAAuB,EACvB,OAAoB;IAEpB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,YAAY,GAAG,SAAS,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAEtF,IAAI,CAAC;QACH,iBAAiB;QACjB,MAAM,cAAc,GAAG,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAE3D,iCAAiC;QACjC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YAC3B,gEAAgE;YAChE,iDAAiD;YACjD,OAAO,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;QACrF,CAAC;QAED,+BAA+B;QAC/B,MAAM,QAAQ,GAAoB,EAAE,CAAC;QACrC,MAAM,eAAe,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAEjD,QAAQ,CAAC,IAAI,CAAC;YACZ,SAAS,EAAE,eAAe;YAC1B,KAAK,EAAE,wBAAwB;YAC/B,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,oBAAoB,YAAY,gBAAgB,cAAc,CAAC,MAAM,EAAE;SACjF,CAAC,CAAC;QAEH,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;QACnD,QAAQ,CAAC,IAAI,CAAC;YACZ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,KAAK,EAAE,mBAAmB;YAC1B,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,QAAQ,QAAQ,CAAC,GAAG,cAAc,QAAQ,CAAC,MAAM,eAAe,QAAQ,CAAC,cAAc,IAAI;SACrG,CAAC,CAAC;QAEH,4BAA4B;QAC5B,MAAM,SAAS,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;QACnD,QAAQ,CAAC,IAAI,CAAC;YACZ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,KAAK,EAAE,oBAAoB;YAC3B,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,GAAG,cAAc,CAAC,WAAW,wBAAwB,SAAS,CAAC,kBAAkB,CAAC,MAAM,aAAa;SAC/G,CAAC,CAAC;QAEH,qDAAqD;QACrD,MAAM,WAAW,GAAG,MAAM,aAAa,CACrC,cAAc,EACd,SAAS,EACT,cAAc,CAAC,MAAM,CACtB,CAAC;QAEF,+BAA+B;QAC/B,QAAQ,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QAErC,+BAA+B;QAC/B,MAAM,WAAW,GAAG,qBAAqB,CAAC,cAAc,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;QACnF,QAAQ,CAAC,IAAI,CAAC;YACZ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,KAAK,EAAE,sBAAsB;YAC7B,IAAI,EAAE,WAAW,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;YACvD,OAAO,EAAE,QAAQ,WAAW,CAAC,GAAG,kBAAkB,WAAW,CAAC,SAAS,GAAG;SAC3E,CAAC,CAAC;QAEH,qBAAqB;QACrB,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,IAAI,iBAAiB,GAAG,KAAK,CAAC;QAC9B,IAAI,cAAc,CAAC,iBAAiB,IAAI,WAAW,CAAC,WAAW,GAAG,EAAE,EAAE,CAAC;YACrE,gBAAgB,GAAG,IAAI,CAAC;YACxB,QAAQ,CAAC,IAAI,CAAC;gBACZ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,KAAK,EAAE,oBAAoB;gBAC3B,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,4DAA4D;aACtE,CAAC,CAAC;YAEH,oBAAoB;YACpB,MAAM,gBAAgB,EAAE,CAAC;YACzB,iBAAiB,GAAG,IAAI,CAAC;YACzB,QAAQ,CAAC,IAAI,CAAC;gBACZ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,KAAK,EAAE,oBAAoB;gBAC3B,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,oCAAoC;aAC9C,CAAC,CAAC;QACL,CAAC;QAED,8BAA8B;QAC9B,MAAM,UAAU,GAAG,qBAAqB,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC;QAC/G,QAAQ,CAAC,IAAI,CAAC;YACZ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,KAAK,EAAE,sBAAsB;YAC7B,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,kBAAkB,WAAW,CAAC,YAAY,GAAG;SACvD,CAAC,CAAC;QAEH,mBAAmB;QACnB,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;QAEhE,2BAA2B;QAC3B,MAAM,eAAe,GAAG,uBAAuB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAErE,eAAe;QACf,MAAM,MAAM,GAAsB;YAChC,OAAO,EAAE,IAAI;YACb,YAAY;YACZ,MAAM,EAAE;gBACN,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW;gBACtD,QAAQ,EAAE,GAAG;gBACb,SAAS,EAAE,eAAe;gBAC1B,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACjC,gBAAgB;gBAChB,iBAAiB;aAClB;YACD,SAAS;YACT,MAAM;YACN,OAAO,EAAE;gBACP,QAAQ;gBACR,WAAW;gBACX,UAAU;gBACV,WAAW,EAAE,WAAW,CAAC,WAAW;gBACpC,YAAY,EAAE,WAAW,CAAC,YAAY;aACvC;YACD,QAAQ;YACR,eAAe;YACf,QAAQ,EAAE;gBACR,YAAY;gBACZ,SAAS,EAAE,eAAe;gBAC1B,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACrC,MAAM,EAAE,cAAc,CAAC,MAAM;gBAC7B,OAAO,EAAE,OAAO;aACjB;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,YAAY;wBACZ,KAAK,EAAE,YAAY;wBACnB,MAAM,EAAE;4BACN,KAAK,EAAE,SAAS;4BAChB,QAAQ,EAAE,CAAC;4BACX,gBAAgB,EAAE,KAAK;4BACvB,iBAAiB,EAAE,KAAK;yBACzB;wBACD,QAAQ,EAAE;4BACR,YAAY;4BACZ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;4BACnC,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI;yBAC7B;qBACF,EACD,IAAI,EACJ,CAAC,CACF;iBACF;aACF;SACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa,EAAE,cAAsB,CAAC;IACnE,MAAM,WAAW,GAAG;QAClB,GAAG,EAAE,EAAE;QACP,MAAM,EAAE,EAAE;QACV,cAAc,EAAE,EAAE;QAClB,SAAS,EAAE,GAAG;QACd,iBAAiB,EAAE,IAAI;KACxB,CAAC;IAEF,oBAAoB;IACpB,OAAO;QACL,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,GAAG,WAAW,GAAG,GAAG,CAAC;QACvD,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,GAAG,WAAW,GAAG,GAAG,CAAC;QAC7D,cAAc,EAAE,WAAW,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,WAAW,GAAG,EAAE,CAAC;QACnE,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,SAAS,GAAG,WAAW,GAAG,GAAG,CAAC;QACnE,iBAAiB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,iBAAiB,GAAG,CAAC,CAAC,GAAG,WAAW,GAAG,GAAG,CAAC,CAAC;KACxF,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAuB;IAC/C,MAAM,kBAAkB,GAAG,2BAA2B,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IAExF,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,WAAW;QACvB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,UAAU,EAAE;YACV,GAAG,KAAK,CAAC,UAAU;YACnB,WAAW,EAAE,KAAK,CAAC,WAAW;SAC/B;QACD,kBAAkB;KACnB,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAAC,MAAc,EAAE,WAAmB;IACtE,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,CAAC;IAE5B,iDAAiD;IACjD,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,KAAK,EAAE,GAAG,MAAM,UAAU,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClE,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,SAAS,EAAE,GAAG,MAAM,QAAQ,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACvC,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,KAAK,EAAE,GAAG,MAAM,QAAQ,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAQD,KAAK,UAAU,aAAa,CAC1B,KAAuB,EACvB,SAA2B,EAC3B,MAAe;IAEf,MAAM,MAAM,GAAoB,EAAE,CAAC;IAEnC,2BAA2B;IAC3B,MAAM,CAAC,IAAI,CAAC;QACV,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,yBAAyB;QACxE,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,GAAG,KAAK,CAAC,WAAW,OAAO,KAAK,CAAC,SAAS,GAAG,GAAG,aAAa;KACvE,CAAC,CAAC;IAEH,4DAA4D;IAC5D,MAAM,WAAW,GAAG,oBAAoB,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAE7E,oBAAoB;IACpB,MAAM,cAAc,GAAG,sBAAsB,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC3E,MAAM,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;IAE/B,oBAAoB;IACpB,MAAM,YAAY,GAAG,qBAAqB,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAE3E,MAAM,CAAC,IAAI,CAAC;QACV,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,uBAAuB;QAC/D,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,aAAa,KAAK,CAAC,QAAQ,wBAAwB,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;KACtF,CAAC,CAAC;IAEH,OAAO;QACL,WAAW;QACX,YAAY;QACZ,MAAM;KACP,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,WAAmB,EAAE,SAAiB;IAClE,MAAM,eAAe,GAA2B;QAC9C,iBAAiB,EAAE,EAAE;QACrB,mBAAmB,EAAE,EAAE;QACvB,YAAY,EAAE,EAAE;QAChB,iBAAiB,EAAE,EAAE;QACrB,cAAc,EAAE,EAAE;QAClB,cAAc,EAAE,EAAE;QAClB,aAAa,EAAE,EAAE;QACjB,oBAAoB,EAAE,EAAE;QACxB,YAAY,EAAE,EAAE;QAChB,aAAa,EAAE,EAAE;KAClB,CAAC;IAEF,MAAM,IAAI,GAAG,eAAe,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAChD,OAAO,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;AAC/C,CAAC;AAED,SAAS,qBAAqB,CAAC,WAAmB,EAAE,WAAmB;IACrE,MAAM,YAAY,GAA2B;QAC3C,iBAAiB,EAAE,CAAC;QACpB,mBAAmB,EAAE,EAAE;QACvB,YAAY,EAAE,CAAC;QACf,iBAAiB,EAAE,EAAE;QACrB,cAAc,EAAE,EAAE;QAClB,cAAc,EAAE,EAAE;QAClB,aAAa,EAAE,EAAE;QACjB,oBAAoB,EAAE,EAAE;QACxB,YAAY,EAAE,CAAC;QACf,aAAa,EAAE,CAAC;KACjB,CAAC;IAEF,MAAM,IAAI,GAAG,YAAY,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAgB,EAAE,WAAmB;IACnE,MAAM,MAAM,GAAoB,EAAE,CAAC;IAEnC,sBAAsB;IACtB,IAAI,QAAQ,GAAG,EAAE,EAAE,CAAC;QAClB,MAAM,CAAC,IAAI,CAAC;YACV,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,KAAK,EAAE,mBAAmB;YAC1B,IAAI,EAAE,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;YAC3C,OAAO,EAAE,wBAAwB,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;SAC3D,CAAC,CAAC;IACL,CAAC;IAED,+BAA+B;IAC/B,IAAI,WAAW,GAAG,EAAE,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC;YACV,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,KAAK,EAAE,2BAA2B;YAClC,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,kBAAkB,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SACjE,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC7B,0BAA0B;IAC1B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,YAAY,CACnB,WAAkC,EAClC,MAAc;IAEd,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;IAE5C,MAAM,QAAQ,GACZ,WAAW,IAAI,EAAE;QACf,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,WAAW,IAAI,EAAE;YACjB,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,WAAW,IAAI,EAAE;gBACjB,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,WAAW,IAAI,EAAE;oBACjB,CAAC,CAAC,KAAK;oBACP,CAAC,CAAC,MAAM,CAAC;IAEnB,8BAA8B;IAC9B,MAAM,aAAa,GAAG,KAAK,CAAC;IAC5B,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;IAE7E,OAAO;QACL,QAAQ;QACR,eAAe,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,YAAY,CAAC;QAChD,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,EAAE,CAAC;QAC9C,YAAY,EAAE,WAAW,CAAC,YAAY;QACtC,QAAQ,EAAE,KAAK;QACf,iBAAiB,EAAE;YACjB,aAAa;YACb,cAAc;YACd,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG,aAAa,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE;YACvE,UAAU,EAAE,EAAE,GAAG,WAAW,GAAG,CAAC;YAChC,UAAU,EAAE,EAAE,GAAG,WAAW,GAAG,CAAC;SACjC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAC9B,WAAkC,EAClC,MAAwB;IAExB,MAAM,eAAe,GAA0B,EAAE,CAAC;IAElD,mCAAmC;IACnC,IAAI,WAAW,CAAC,WAAW,GAAG,EAAE,EAAE,CAAC;QACjC,eAAe,CAAC,IAAI,CAAC;YACnB,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,mDAAmD;YAC5D,cAAc,EAAE,oDAAoD;YACpE,QAAQ,EAAE,GAAG,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB;SACxE,CAAC,CAAC;IACL,CAAC;IAED,gCAAgC;IAChC,IAAI,WAAW,CAAC,YAAY,GAAG,EAAE,EAAE,CAAC;QAClC,eAAe,CAAC,IAAI,CAAC;YACnB,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,4CAA4C;YACrD,cAAc,EAAE,+CAA+C;YAC/D,QAAQ,EAAE,kBAAkB,WAAW,CAAC,YAAY,GAAG;SACxD,CAAC,CAAC;IACL,CAAC;IAED,6BAA6B;IAC7B,IAAI,MAAM,CAAC,iBAAiB,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC;QAC5C,eAAe,CAAC,IAAI,CAAC;YACnB,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,wCAAwC;YACjD,cAAc,EAAE,0CAA0C;YAC1D,QAAQ,EAAE,eAAe,MAAM,CAAC,iBAAiB,CAAC,SAAS,GAAG;SAC/D,CAAC,CAAC;IACL,CAAC;IAED,0BAA0B;IAC1B,eAAe,CAAC,IAAI,CAClB;QACE,QAAQ,EAAE,YAAY;QACtB,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,sDAAsD;QAC/D,cAAc,EAAE,kDAAkD;QAClE,QAAQ,EAAE,0CAA0C;KACrD,EACD;QACE,QAAQ,EAAE,eAAe;QACzB,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,8CAA8C;QACvD,cAAc,EAAE,yCAAyC;QACzD,QAAQ,EAAE,wCAAwC;KACnD,CACF,CAAC;IAEF,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,8CAA8C;AAC9C,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,sEAAsE;IACnF,QAAQ,EAAE,kBAAkB;IAC5B,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,sBAAsB;IACnC,OAAO;CACR,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * analyze-coverage.ts - O(log n) Johnson-Lindenstrauss coverage analysis
3
+ *
4
+ * Performs efficient coverage analysis using Johnson-Lindenstrauss random
5
+ * projection for O(log n) gap detection instead of O(n) full scan.
6
+ */
7
+ import { z } from 'zod';
8
+ export declare const AnalyzeCoverageInputSchema: z.ZodObject<{
9
+ targetPath: z.ZodString;
10
+ coverageReport: z.ZodOptional<z.ZodString>;
11
+ algorithm: z.ZodDefault<z.ZodEnum<{
12
+ "johnson-lindenstrauss": "johnson-lindenstrauss";
13
+ "full-scan": "full-scan";
14
+ }>>;
15
+ prioritize: z.ZodDefault<z.ZodBoolean>;
16
+ includeFileDetails: z.ZodDefault<z.ZodBoolean>;
17
+ thresholds: z.ZodOptional<z.ZodObject<{
18
+ line: z.ZodDefault<z.ZodNumber>;
19
+ branch: z.ZodDefault<z.ZodNumber>;
20
+ function: z.ZodDefault<z.ZodNumber>;
21
+ }, z.core.$strip>>;
22
+ projectionDimension: z.ZodDefault<z.ZodNumber>;
23
+ }, z.core.$strip>;
24
+ export type AnalyzeCoverageInput = z.infer<typeof AnalyzeCoverageInputSchema>;
25
+ export interface AnalyzeCoverageOutput {
26
+ success: boolean;
27
+ summary: CoverageSummary;
28
+ gaps: CoverageGap[];
29
+ files: FileCoverage[];
30
+ thresholdResults: ThresholdResult[];
31
+ algorithm: AlgorithmInfo;
32
+ metadata: AnalysisMetadata;
33
+ }
34
+ export interface CoverageSummary {
35
+ lines: CoverageMetric;
36
+ branches: CoverageMetric;
37
+ functions: CoverageMetric;
38
+ statements: CoverageMetric;
39
+ overall: number;
40
+ trend: 'improving' | 'declining' | 'stable';
41
+ }
42
+ export interface CoverageMetric {
43
+ covered: number;
44
+ total: number;
45
+ percentage: number;
46
+ }
47
+ export interface CoverageGap {
48
+ id: string;
49
+ type: 'line' | 'branch' | 'function';
50
+ file: string;
51
+ location: {
52
+ startLine: number;
53
+ endLine: number;
54
+ };
55
+ risk: 'critical' | 'high' | 'medium' | 'low';
56
+ riskScore: number;
57
+ reason: string;
58
+ suggestions: string[];
59
+ }
60
+ export interface FileCoverage {
61
+ path: string;
62
+ lines: CoverageMetric;
63
+ branches: CoverageMetric;
64
+ functions: CoverageMetric;
65
+ uncoveredRanges: Array<{
66
+ start: number;
67
+ end: number;
68
+ }>;
69
+ complexity: number;
70
+ }
71
+ export interface ThresholdResult {
72
+ metric: string;
73
+ threshold: number;
74
+ actual: number;
75
+ passed: boolean;
76
+ gap: number;
77
+ }
78
+ export interface AlgorithmInfo {
79
+ name: string;
80
+ complexity: string;
81
+ projectionDimension?: number;
82
+ accuracy: number;
83
+ speedup: number;
84
+ }
85
+ export interface AnalysisMetadata {
86
+ analyzedAt: string;
87
+ durationMs: number;
88
+ filesAnalyzed: number;
89
+ totalLines: number;
90
+ algorithm: string;
91
+ }
92
+ export interface ToolContext {
93
+ get<T>(key: string): T | undefined;
94
+ }
95
+ /**
96
+ * MCP Tool Handler for analyze-coverage
97
+ */
98
+ export declare function handler(input: AnalyzeCoverageInput, context: ToolContext): Promise<{
99
+ content: Array<{
100
+ type: 'text';
101
+ text: string;
102
+ }>;
103
+ }>;
104
+ export declare const toolDefinition: {
105
+ name: string;
106
+ description: string;
107
+ category: string;
108
+ version: string;
109
+ inputSchema: z.ZodObject<{
110
+ targetPath: z.ZodString;
111
+ coverageReport: z.ZodOptional<z.ZodString>;
112
+ algorithm: z.ZodDefault<z.ZodEnum<{
113
+ "johnson-lindenstrauss": "johnson-lindenstrauss";
114
+ "full-scan": "full-scan";
115
+ }>>;
116
+ prioritize: z.ZodDefault<z.ZodBoolean>;
117
+ includeFileDetails: z.ZodDefault<z.ZodBoolean>;
118
+ thresholds: z.ZodOptional<z.ZodObject<{
119
+ line: z.ZodDefault<z.ZodNumber>;
120
+ branch: z.ZodDefault<z.ZodNumber>;
121
+ function: z.ZodDefault<z.ZodNumber>;
122
+ }, z.core.$strip>>;
123
+ projectionDimension: z.ZodDefault<z.ZodNumber>;
124
+ }, z.core.$strip>;
125
+ handler: typeof handler;
126
+ };
127
+ export default toolDefinition;
128
+ //# sourceMappingURL=analyze-coverage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze-coverage.d.ts","sourceRoot":"","sources":["../../../../../src/mcp-tools/quality/coverage-analysis/analyze-coverage.ts"],"names":[],"mappings":"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"}