driftdetect-mcp 0.7.1 → 0.8.1

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 (66) hide show
  1. package/LICENSE +121 -21
  2. package/dist/bin/server.js +8 -1
  3. package/dist/bin/server.js.map +1 -1
  4. package/dist/enterprise-server.d.ts +4 -0
  5. package/dist/enterprise-server.d.ts.map +1 -1
  6. package/dist/enterprise-server.js +32 -2
  7. package/dist/enterprise-server.js.map +1 -1
  8. package/dist/infrastructure/index.d.ts +1 -0
  9. package/dist/infrastructure/index.d.ts.map +1 -1
  10. package/dist/infrastructure/index.js +2 -0
  11. package/dist/infrastructure/index.js.map +1 -1
  12. package/dist/infrastructure/startup-warmer.d.ts +65 -0
  13. package/dist/infrastructure/startup-warmer.d.ts.map +1 -0
  14. package/dist/infrastructure/startup-warmer.js +257 -0
  15. package/dist/infrastructure/startup-warmer.js.map +1 -0
  16. package/dist/tools/analysis/coupling.js +181 -63
  17. package/dist/tools/analysis/coupling.js.map +1 -1
  18. package/dist/tools/analysis/cpp.d.ts +51 -0
  19. package/dist/tools/analysis/cpp.d.ts.map +1 -0
  20. package/dist/tools/analysis/cpp.js +224 -0
  21. package/dist/tools/analysis/cpp.js.map +1 -0
  22. package/dist/tools/analysis/error-handling.js +130 -37
  23. package/dist/tools/analysis/error-handling.js.map +1 -1
  24. package/dist/tools/analysis/index.d.ts +3 -0
  25. package/dist/tools/analysis/index.d.ts.map +1 -1
  26. package/dist/tools/analysis/index.js +100 -0
  27. package/dist/tools/analysis/index.js.map +1 -1
  28. package/dist/tools/analysis/quality-gate.d.ts +78 -0
  29. package/dist/tools/analysis/quality-gate.d.ts.map +1 -0
  30. package/dist/tools/analysis/quality-gate.js +164 -0
  31. package/dist/tools/analysis/quality-gate.js.map +1 -0
  32. package/dist/tools/analysis/rust.d.ts +51 -0
  33. package/dist/tools/analysis/rust.d.ts.map +1 -0
  34. package/dist/tools/analysis/rust.js +253 -0
  35. package/dist/tools/analysis/rust.js.map +1 -0
  36. package/dist/tools/analysis/simulate.d.ts +1 -0
  37. package/dist/tools/analysis/simulate.d.ts.map +1 -1
  38. package/dist/tools/analysis/simulate.js +78 -74
  39. package/dist/tools/analysis/simulate.js.map +1 -1
  40. package/dist/tools/analysis/test-topology.js +117 -44
  41. package/dist/tools/analysis/test-topology.js.map +1 -1
  42. package/dist/tools/detail/reachability.d.ts +2 -0
  43. package/dist/tools/detail/reachability.d.ts.map +1 -1
  44. package/dist/tools/detail/reachability.js +42 -32
  45. package/dist/tools/detail/reachability.js.map +1 -1
  46. package/dist/tools/orchestration/index.d.ts +2 -0
  47. package/dist/tools/orchestration/index.d.ts.map +1 -1
  48. package/dist/tools/orchestration/index.js +3 -0
  49. package/dist/tools/orchestration/index.js.map +1 -1
  50. package/dist/tools/orchestration/package-context.d.ts +134 -0
  51. package/dist/tools/orchestration/package-context.d.ts.map +1 -0
  52. package/dist/tools/orchestration/package-context.js +261 -0
  53. package/dist/tools/orchestration/package-context.js.map +1 -0
  54. package/package.json +4 -4
  55. package/dist/server.d.ts +0 -11
  56. package/dist/server.d.ts.map +0 -1
  57. package/dist/server.js +0 -3177
  58. package/dist/server.js.map +0 -1
  59. package/dist/tools/detail/dna-check.d.ts +0 -32
  60. package/dist/tools/detail/dna-check.d.ts.map +0 -1
  61. package/dist/tools/detail/dna-check.js +0 -231
  62. package/dist/tools/detail/dna-check.js.map +0 -1
  63. package/dist/tools/exploration/files-list.d.ts +0 -29
  64. package/dist/tools/exploration/files-list.d.ts.map +0 -1
  65. package/dist/tools/exploration/files-list.js +0 -94
  66. package/dist/tools/exploration/files-list.js.map +0 -1
@@ -0,0 +1,257 @@
1
+ /**
2
+ * Startup Warmer - Pre-loads all .drift data on MCP server initialization
3
+ *
4
+ * This ensures all stores are populated from the source of truth (.drift folder)
5
+ * before any tool calls are made, eliminating the need for users to manually
6
+ * run build commands.
7
+ *
8
+ * Data loaded:
9
+ * - Patterns (approved, discovered, ignored)
10
+ * - Call graph
11
+ * - Boundaries (data access map)
12
+ * - Environment variables
13
+ * - DNA profile
14
+ * - Contracts
15
+ * - History snapshots
16
+ * - Module coupling
17
+ * - Error handling analysis
18
+ * - Test topology
19
+ */
20
+ import * as fs from 'node:fs/promises';
21
+ import * as path from 'node:path';
22
+ import { PatternStore, ManifestStore, HistoryStore, DNAStore, BoundaryStore, ContractStore, CallGraphStore, EnvStore, UnifiedCallGraphProvider, createUnifiedCallGraphProvider, } from 'driftdetect-core';
23
+ const DRIFT_DIR = '.drift';
24
+ /**
25
+ * Check if drift is initialized in the project
26
+ */
27
+ async function isDriftInitialized(projectRoot) {
28
+ try {
29
+ const driftPath = path.join(projectRoot, DRIFT_DIR);
30
+ const stat = await fs.stat(driftPath);
31
+ return stat.isDirectory();
32
+ }
33
+ catch {
34
+ return false;
35
+ }
36
+ }
37
+ /**
38
+ * Warm up all stores by loading data from .drift folder
39
+ */
40
+ export async function warmupStores(stores, projectRoot, dataLake) {
41
+ const startTime = Date.now();
42
+ const errors = [];
43
+ const loaded = {
44
+ patterns: 0,
45
+ callGraph: false,
46
+ boundaries: false,
47
+ env: 0,
48
+ dna: false,
49
+ contracts: 0,
50
+ history: 0,
51
+ coupling: false,
52
+ errorHandling: false,
53
+ testTopology: false,
54
+ };
55
+ // Check if drift is initialized
56
+ if (!(await isDriftInitialized(projectRoot))) {
57
+ return {
58
+ success: false,
59
+ duration: Date.now() - startTime,
60
+ loaded,
61
+ errors: ['Drift not initialized. Run `drift init` first.'],
62
+ };
63
+ }
64
+ // Initialize all stores in parallel where possible
65
+ const initPromises = [];
66
+ // 1. Pattern Store
67
+ initPromises.push((async () => {
68
+ try {
69
+ await stores.pattern.initialize();
70
+ const patterns = stores.pattern.getAll();
71
+ loaded.patterns = patterns.length;
72
+ }
73
+ catch (e) {
74
+ errors.push(`Pattern store: ${e instanceof Error ? e.message : String(e)}`);
75
+ }
76
+ })());
77
+ // 2. Manifest Store
78
+ initPromises.push((async () => {
79
+ try {
80
+ await stores.manifest.load();
81
+ }
82
+ catch (e) {
83
+ errors.push(`Manifest store: ${e instanceof Error ? e.message : String(e)}`);
84
+ }
85
+ })());
86
+ // 3. History Store
87
+ initPromises.push((async () => {
88
+ try {
89
+ await stores.history.initialize();
90
+ const snapshots = await stores.history.getSnapshots();
91
+ loaded.history = snapshots.length;
92
+ }
93
+ catch (e) {
94
+ errors.push(`History store: ${e instanceof Error ? e.message : String(e)}`);
95
+ }
96
+ })());
97
+ // 4. DNA Store
98
+ initPromises.push((async () => {
99
+ try {
100
+ await stores.dna.initialize();
101
+ const profile = stores.dna.getProfile();
102
+ loaded.dna = profile !== null;
103
+ }
104
+ catch (e) {
105
+ errors.push(`DNA store: ${e instanceof Error ? e.message : String(e)}`);
106
+ }
107
+ })());
108
+ // 5. Boundary Store
109
+ initPromises.push((async () => {
110
+ try {
111
+ await stores.boundary.initialize();
112
+ const accessMap = stores.boundary.getAccessMap();
113
+ loaded.boundaries = Object.keys(accessMap).length > 0;
114
+ }
115
+ catch (e) {
116
+ errors.push(`Boundary store: ${e instanceof Error ? e.message : String(e)}`);
117
+ }
118
+ })());
119
+ // 6. Contract Store
120
+ initPromises.push((async () => {
121
+ try {
122
+ await stores.contract.initialize();
123
+ const contracts = stores.contract.getAll();
124
+ loaded.contracts = contracts.length;
125
+ }
126
+ catch (e) {
127
+ errors.push(`Contract store: ${e instanceof Error ? e.message : String(e)}`);
128
+ }
129
+ })());
130
+ // 7. Call Graph Store (supports both legacy and sharded formats)
131
+ initPromises.push((async () => {
132
+ try {
133
+ // First try the unified provider which supports both formats
134
+ const provider = createUnifiedCallGraphProvider({ rootDir: projectRoot });
135
+ await provider.initialize();
136
+ if (provider.isAvailable()) {
137
+ const stats = provider.getProviderStats();
138
+ loaded.callGraph = stats.totalFunctions > 0;
139
+ // Store the provider for later use
140
+ stores.callGraphProvider = provider;
141
+ }
142
+ else {
143
+ // Fall back to legacy store
144
+ await stores.callGraph.initialize();
145
+ const graph = stores.callGraph.getGraph();
146
+ loaded.callGraph = graph !== null && graph.functions.size > 0;
147
+ }
148
+ }
149
+ catch (e) {
150
+ errors.push(`Call graph store: ${e instanceof Error ? e.message : String(e)}`);
151
+ }
152
+ })());
153
+ // 8. Environment Store
154
+ initPromises.push((async () => {
155
+ try {
156
+ await stores.env.initialize();
157
+ const accessMap = stores.env.getAccessMap();
158
+ loaded.env = Object.keys(accessMap.variables || {}).length;
159
+ }
160
+ catch (e) {
161
+ errors.push(`Env store: ${e instanceof Error ? e.message : String(e)}`);
162
+ }
163
+ })());
164
+ // 9. DataLake (if provided)
165
+ if (dataLake) {
166
+ initPromises.push((async () => {
167
+ try {
168
+ await dataLake.initialize();
169
+ }
170
+ catch (e) {
171
+ errors.push(`DataLake: ${e instanceof Error ? e.message : String(e)}`);
172
+ }
173
+ })());
174
+ }
175
+ // Wait for all initializations
176
+ await Promise.all(initPromises);
177
+ // Check for additional analysis data
178
+ const analysisChecks = [];
179
+ // Check coupling data
180
+ analysisChecks.push((async () => {
181
+ try {
182
+ const couplingPath = path.join(projectRoot, DRIFT_DIR, 'module-coupling', 'graph.json');
183
+ await fs.access(couplingPath);
184
+ loaded.coupling = true;
185
+ }
186
+ catch {
187
+ // Not an error, just not built yet
188
+ }
189
+ })());
190
+ // Check error handling data
191
+ analysisChecks.push((async () => {
192
+ try {
193
+ const errorPath = path.join(projectRoot, DRIFT_DIR, 'error-handling', 'analysis.json');
194
+ await fs.access(errorPath);
195
+ loaded.errorHandling = true;
196
+ }
197
+ catch {
198
+ // Not an error, just not built yet
199
+ }
200
+ })());
201
+ // Check test topology data
202
+ analysisChecks.push((async () => {
203
+ try {
204
+ const testPath = path.join(projectRoot, DRIFT_DIR, 'test-topology', 'mappings.json');
205
+ await fs.access(testPath);
206
+ loaded.testTopology = true;
207
+ }
208
+ catch {
209
+ // Not an error, just not built yet
210
+ }
211
+ })());
212
+ await Promise.all(analysisChecks);
213
+ return {
214
+ success: errors.length === 0,
215
+ duration: Date.now() - startTime,
216
+ loaded,
217
+ errors,
218
+ };
219
+ }
220
+ /**
221
+ * Build missing data if not present
222
+ * This is a background operation that doesn't block startup
223
+ *
224
+ * Note: Call graph building is complex and requires scanning the codebase.
225
+ * For now, we just log a hint that the user should run `drift callgraph build`.
226
+ */
227
+ export async function buildMissingData(_projectRoot, loaded) {
228
+ // Log hints for missing data
229
+ const missing = [];
230
+ if (!loaded.callGraph) {
231
+ missing.push('call graph (run: drift callgraph build)');
232
+ }
233
+ if (!loaded.coupling) {
234
+ missing.push('coupling analysis (run: drift coupling build)');
235
+ }
236
+ if (!loaded.errorHandling) {
237
+ missing.push('error handling analysis (run: drift error-handling build)');
238
+ }
239
+ if (!loaded.testTopology) {
240
+ missing.push('test topology (run: drift test-topology build)');
241
+ }
242
+ // We don't auto-build because it can be slow for large codebases
243
+ // The user should run these commands manually or via CI
244
+ }
245
+ /**
246
+ * Log warmup results for debugging
247
+ */
248
+ export function logWarmupResult(result, verbose = false) {
249
+ if (verbose) {
250
+ console.error(`[drift-mcp] Warmup completed in ${result.duration}ms`);
251
+ console.error(`[drift-mcp] Loaded: ${JSON.stringify(result.loaded)}`);
252
+ if (result.errors.length > 0) {
253
+ console.error(`[drift-mcp] Errors: ${result.errors.join(', ')}`);
254
+ }
255
+ }
256
+ }
257
+ //# sourceMappingURL=startup-warmer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startup-warmer.js","sourceRoot":"","sources":["../../src/infrastructure/startup-warmer.ts"],"names":[],"mappings":"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"}
@@ -69,89 +69,207 @@ async function handleStatus(projectRoot) {
69
69
  .buildContent();
70
70
  }
71
71
  catch {
72
- throw Errors.custom('NO_COUPLING_GRAPH', 'No coupling graph found. Build it first using the CLI: drift coupling build', ['drift coupling build']);
72
+ // No cached data - try to build on-demand from call graph
73
+ try {
74
+ const analyzer = await buildAnalyzer(projectRoot);
75
+ const hotspots = analyzer.getHotspots({ limit: 100 });
76
+ const cycles = analyzer.getCycles();
77
+ // Calculate aggregate metrics from hotspots
78
+ const totalModules = hotspots.length;
79
+ const totalEdges = hotspots.reduce((sum, h) => sum + h.coupling, 0);
80
+ const cycleCount = cycles.length;
81
+ const avgInstability = hotspots.length > 0
82
+ ? hotspots.reduce((sum, h) => sum + h.metrics.instability, 0) / hotspots.length
83
+ : 0;
84
+ const avgDistance = hotspots.length > 0
85
+ ? hotspots.reduce((sum, h) => sum + h.metrics.distance, 0) / hotspots.length
86
+ : 0;
87
+ let summaryText = `🔗 ${totalModules} modules, ${totalEdges} dependencies. `;
88
+ summaryText += `${cycleCount} cycles. `;
89
+ summaryText += `Avg instability: ${avgInstability.toFixed(2)}, distance: ${avgDistance.toFixed(2)}.`;
90
+ const warnings = [];
91
+ if (cycleCount > 0) {
92
+ warnings.push(`${cycleCount} dependency cycles detected`);
93
+ }
94
+ const hints = {
95
+ nextActions: cycleCount > 0
96
+ ? ['Run drift_coupling action="cycles" to see cycle details']
97
+ : ['Coupling looks healthy'],
98
+ warnings: warnings.length > 0 ? warnings : undefined,
99
+ relatedTools: ['drift_coupling action="cycles"', 'drift_coupling action="hotspots"'],
100
+ };
101
+ return builder
102
+ .withSummary(summaryText)
103
+ .withData({
104
+ metrics: {
105
+ totalModules,
106
+ totalEdges,
107
+ cycleCount,
108
+ avgInstability,
109
+ avgDistance,
110
+ zoneOfPain: [],
111
+ zoneOfUselessness: [],
112
+ hotspots: [],
113
+ isolatedModules: []
114
+ }
115
+ })
116
+ .withHints(hints)
117
+ .buildContent();
118
+ }
119
+ catch {
120
+ // No call graph available - return graceful empty state
121
+ return builder
122
+ .withSummary('🔗 Coupling analysis not available. Run a scan first.')
123
+ .withData({
124
+ metrics: {
125
+ totalModules: 0,
126
+ totalEdges: 0,
127
+ cycleCount: 0,
128
+ avgInstability: 0,
129
+ avgDistance: 0,
130
+ zoneOfPain: [],
131
+ zoneOfUselessness: [],
132
+ hotspots: [],
133
+ isolatedModules: []
134
+ }
135
+ })
136
+ .withHints({
137
+ nextActions: ['Run drift scan to analyze the codebase first'],
138
+ relatedTools: ['drift_status'],
139
+ })
140
+ .buildContent();
141
+ }
73
142
  }
74
143
  }
75
144
  async function handleCycles(projectRoot, maxCycleLength, minSeverity) {
76
145
  const builder = createResponseBuilder();
146
+ // First try cached data
77
147
  const graphPath = path.join(projectRoot, DRIFT_DIR, COUPLING_DIR, 'graph.json');
148
+ let cycles = [];
78
149
  try {
79
150
  const data = JSON.parse(await fs.readFile(graphPath, 'utf-8'));
80
- let cycles = data.cycles;
81
- // Filter by length
82
- if (maxCycleLength) {
83
- cycles = cycles.filter(c => c.length <= maxCycleLength);
151
+ cycles = data.cycles;
152
+ }
153
+ catch {
154
+ // Try to build on-demand
155
+ try {
156
+ const analyzer = await buildAnalyzer(projectRoot);
157
+ cycles = analyzer.getCycles();
84
158
  }
85
- // Filter by severity
86
- if (minSeverity) {
87
- const severityOrder = { critical: 0, warning: 1, info: 2 };
88
- const minOrder = severityOrder[minSeverity];
89
- cycles = cycles.filter(c => severityOrder[c.severity] <= minOrder);
159
+ catch {
160
+ // Return empty state
161
+ return builder
162
+ .withSummary('🔄 No cycle analysis available. Run a scan first.')
163
+ .withData({ cycles: [], total: 0, bySeverity: { critical: 0, warning: 0, info: 0 } })
164
+ .withHints({
165
+ nextActions: ['Run drift scan to analyze the codebase'],
166
+ relatedTools: ['drift_status'],
167
+ })
168
+ .buildContent();
90
169
  }
91
- const bySeverity = {
92
- critical: cycles.filter(c => c.severity === 'critical').length,
93
- warning: cycles.filter(c => c.severity === 'warning').length,
94
- info: cycles.filter(c => c.severity === 'info').length,
95
- };
96
- let summaryText = `🔄 ${cycles.length} cycles. `;
97
- if (bySeverity.critical > 0)
98
- summaryText += `🔴 ${bySeverity.critical} critical. `;
99
- if (bySeverity.warning > 0)
100
- summaryText += `🟡 ${bySeverity.warning} warning. `;
101
- if (bySeverity.info > 0)
102
- summaryText += `⚪ ${bySeverity.info} info.`;
103
- const hints = {
104
- nextActions: bySeverity.critical > 0
105
- ? ['Focus on breaking critical cycles first']
106
- : cycles.length > 0
107
- ? ['Consider breaking cycles to improve maintainability']
108
- : ['No cycles - good architecture!'],
109
- relatedTools: ['drift_coupling action="analyze" module="<path>"'],
110
- };
111
- return builder
112
- .withSummary(summaryText)
113
- .withData({ cycles, total: cycles.length, bySeverity })
114
- .withHints(hints)
115
- .buildContent();
116
170
  }
117
- catch {
118
- throw Errors.custom('NO_COUPLING_GRAPH', 'No coupling graph found. Build it first.', ['drift coupling build']);
171
+ // Filter by length
172
+ if (maxCycleLength) {
173
+ cycles = cycles.filter(c => c.length <= maxCycleLength);
119
174
  }
175
+ // Filter by severity
176
+ if (minSeverity) {
177
+ const severityOrder = { critical: 0, warning: 1, info: 2 };
178
+ const minOrder = severityOrder[minSeverity];
179
+ cycles = cycles.filter(c => severityOrder[c.severity] <= minOrder);
180
+ }
181
+ const bySeverity = {
182
+ critical: cycles.filter(c => c.severity === 'critical').length,
183
+ warning: cycles.filter(c => c.severity === 'warning').length,
184
+ info: cycles.filter(c => c.severity === 'info').length,
185
+ };
186
+ let summaryText = `🔄 ${cycles.length} cycles. `;
187
+ if (bySeverity.critical > 0)
188
+ summaryText += `🔴 ${bySeverity.critical} critical. `;
189
+ if (bySeverity.warning > 0)
190
+ summaryText += `🟡 ${bySeverity.warning} warning. `;
191
+ if (bySeverity.info > 0)
192
+ summaryText += `⚪ ${bySeverity.info} info.`;
193
+ const hints = {
194
+ nextActions: bySeverity.critical > 0
195
+ ? ['Focus on breaking critical cycles first']
196
+ : cycles.length > 0
197
+ ? ['Consider breaking cycles to improve maintainability']
198
+ : ['No cycles - good architecture!'],
199
+ relatedTools: ['drift_coupling action="analyze" module="<path>"'],
200
+ };
201
+ return builder
202
+ .withSummary(summaryText)
203
+ .withData({ cycles, total: cycles.length, bySeverity })
204
+ .withHints(hints)
205
+ .buildContent();
120
206
  }
121
207
  async function handleHotspots(projectRoot, limit, minCoupling) {
122
208
  const builder = createResponseBuilder();
209
+ // First try cached data
123
210
  const graphPath = path.join(projectRoot, DRIFT_DIR, COUPLING_DIR, 'graph.json');
211
+ let modules = [];
124
212
  try {
125
213
  const data = JSON.parse(await fs.readFile(graphPath, 'utf-8'));
126
- const modules = Object.entries(data.modules);
127
- const hotspots = modules
128
- .map(([modPath, mod]) => ({
129
- path: modPath,
130
- coupling: mod.metrics.Ca + mod.metrics.Ce,
131
- metrics: mod.metrics,
132
- }))
133
- .filter(h => h.coupling >= (minCoupling ?? 3))
134
- .sort((a, b) => b.coupling - a.coupling)
135
- .slice(0, limit ?? 15);
136
- let summaryText = `🔥 ${hotspots.length} coupling hotspots. `;
137
- if (hotspots.length > 0) {
138
- summaryText += `Top: ${hotspots[0].path} (${hotspots[0].coupling} connections).`;
139
- }
140
- const hints = {
141
- nextActions: hotspots.length > 0
142
- ? [`Analyze top hotspot: drift_coupling action="analyze" module="${hotspots[0].path}"`]
143
- : ['No hotspots - coupling is well distributed'],
144
- relatedTools: ['drift_coupling action="refactor-impact"'],
145
- };
146
- return builder
147
- .withSummary(summaryText)
148
- .withData({ hotspots, total: hotspots.length })
149
- .withHints(hints)
150
- .buildContent();
214
+ modules = Object.entries(data.modules);
151
215
  }
152
216
  catch {
153
- throw Errors.custom('NO_COUPLING_GRAPH', 'No coupling graph found. Build it first.', ['drift coupling build']);
217
+ // Try to build on-demand
218
+ try {
219
+ const analyzer = await buildAnalyzer(projectRoot);
220
+ const hotspots = analyzer.getHotspots({ limit: limit ?? 15, minCoupling: minCoupling ?? 3 });
221
+ let summaryText = `🔥 ${hotspots.length} coupling hotspots. `;
222
+ if (hotspots.length > 0) {
223
+ summaryText += `Top: ${hotspots[0].path} (${hotspots[0].coupling} connections).`;
224
+ }
225
+ const hints = {
226
+ nextActions: hotspots.length > 0
227
+ ? [`Analyze top hotspot: drift_coupling action="analyze" module="${hotspots[0].path}"`]
228
+ : ['No hotspots - coupling is well distributed'],
229
+ relatedTools: ['drift_coupling action="refactor-impact"'],
230
+ };
231
+ return builder
232
+ .withSummary(summaryText)
233
+ .withData({ hotspots, total: hotspots.length })
234
+ .withHints(hints)
235
+ .buildContent();
236
+ }
237
+ catch {
238
+ // Return empty state
239
+ return builder
240
+ .withSummary('🔥 No coupling hotspots analysis available. Run a scan first.')
241
+ .withData({ hotspots: [], total: 0 })
242
+ .withHints({
243
+ nextActions: ['Run drift scan to analyze the codebase'],
244
+ relatedTools: ['drift_status'],
245
+ })
246
+ .buildContent();
247
+ }
248
+ }
249
+ const hotspots = modules
250
+ .map(([modPath, mod]) => ({
251
+ path: modPath,
252
+ coupling: mod.metrics.Ca + mod.metrics.Ce,
253
+ metrics: mod.metrics,
254
+ }))
255
+ .filter(h => h.coupling >= (minCoupling ?? 3))
256
+ .sort((a, b) => b.coupling - a.coupling)
257
+ .slice(0, limit ?? 15);
258
+ let summaryText = `🔥 ${hotspots.length} coupling hotspots. `;
259
+ if (hotspots.length > 0) {
260
+ summaryText += `Top: ${hotspots[0].path} (${hotspots[0].coupling} connections).`;
154
261
  }
262
+ const hints = {
263
+ nextActions: hotspots.length > 0
264
+ ? [`Analyze top hotspot: drift_coupling action="analyze" module="${hotspots[0].path}"`]
265
+ : ['No hotspots - coupling is well distributed'],
266
+ relatedTools: ['drift_coupling action="refactor-impact"'],
267
+ };
268
+ return builder
269
+ .withSummary(summaryText)
270
+ .withData({ hotspots, total: hotspots.length })
271
+ .withHints(hints)
272
+ .buildContent();
155
273
  }
156
274
  async function handleAnalyze(projectRoot, modulePath) {
157
275
  const builder = createResponseBuilder();
@@ -1 +1 @@
1
- {"version":3,"file":"coupling.js","sourceRoot":"","sources":["../../../src/tools/analysis/coupling.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coupling.js","sourceRoot":"","sources":["../../../src/tools/analysis/coupling.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * C++ Analysis MCP Tool
3
+ *
4
+ * Analyze C++ projects: classes, memory management, templates, virtual functions.
5
+ *
6
+ * @license Apache-2.0
7
+ */
8
+ export type CppAction = 'status' | 'classes' | 'memory' | 'templates' | 'virtual';
9
+ export interface CppArgs {
10
+ action: CppAction;
11
+ path?: string;
12
+ limit?: number;
13
+ framework?: string;
14
+ }
15
+ export interface ToolContext {
16
+ projectRoot: string;
17
+ }
18
+ export declare function executeCppTool(args: CppArgs, context: ToolContext): Promise<{
19
+ content: Array<{
20
+ type: string;
21
+ text: string;
22
+ }>;
23
+ }>;
24
+ export declare const cppToolDefinition: {
25
+ name: string;
26
+ description: string;
27
+ inputSchema: {
28
+ type: string;
29
+ properties: {
30
+ action: {
31
+ type: string;
32
+ enum: string[];
33
+ description: string;
34
+ };
35
+ path: {
36
+ type: string;
37
+ description: string;
38
+ };
39
+ limit: {
40
+ type: string;
41
+ description: string;
42
+ };
43
+ framework: {
44
+ type: string;
45
+ description: string;
46
+ };
47
+ };
48
+ required: string[];
49
+ };
50
+ };
51
+ //# sourceMappingURL=cpp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpp.d.ts","sourceRoot":"","sources":["../../../src/tools/analysis/cpp.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAWH,MAAM,MAAM,SAAS,GACjB,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,WAAW,GACX,SAAS,CAAC;AAEd,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD,wBAAsB,cAAc,CAClC,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAwD7D;AA6JD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;CAiC7B,CAAC"}