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
@@ -6,84 +6,88 @@
6
6
  *
7
7
  * This is a novel capability - no other AI coding assistant does pre-flight simulation.
8
8
  */
9
- import { createSimulationEngine, createCallGraphAnalyzer, createPatternService, createPatternRepository, } from 'driftdetect-core';
9
+ import { createSimulationEngine, createCallGraphAnalyzer, createPatternService, createPatternRepository, guardMCPTool, } from 'driftdetect-core';
10
10
  import { createResponseBuilder, Errors } from '../../infrastructure/index.js';
11
11
  // ============================================================================
12
12
  // Handler
13
13
  // ============================================================================
14
14
  export async function handleSimulate(projectRoot, args) {
15
- const builder = createResponseBuilder();
16
- if (!args.task) {
17
- throw Errors.missingParameter('task');
18
- }
19
- // Load call graph (optional but recommended)
20
- let callGraph;
21
- try {
22
- const callGraphAnalyzer = createCallGraphAnalyzer({ rootDir: projectRoot });
23
- await callGraphAnalyzer.initialize();
24
- callGraph = callGraphAnalyzer.getGraph();
25
- }
26
- catch {
27
- // Call graph not available
28
- }
29
- // Load pattern service (optional but recommended)
30
- let patternService;
31
- try {
32
- const repository = await createPatternRepository({ rootDir: projectRoot });
33
- patternService = createPatternService(repository, projectRoot);
34
- }
35
- catch {
36
- // Patterns not available
37
- }
38
- // Create simulation engine
39
- const engine = createSimulationEngine({
40
- projectRoot,
41
- callGraph: callGraph ?? undefined,
42
- patternService: patternService ?? undefined,
43
- options: {
44
- maxApproaches: args.maxApproaches ?? 5,
45
- includeSecurityAnalysis: args.includeSecurityAnalysis ?? true,
46
- },
47
- });
48
- // Build task
49
- const task = {
50
- description: args.task,
51
- category: args.category,
52
- target: args.target,
53
- constraints: args.constraints?.map(c => ({
54
- type: 'custom',
55
- value: c,
56
- description: c,
57
- })),
58
- };
59
- // Run simulation
60
- const result = await engine.simulate(task);
61
- // Build summary
62
- let summaryText = `🔮 Simulated ${result.approaches.length} approaches for: "${args.task}". `;
63
- summaryText += `Recommended: "${result.recommended.approach.name}" `;
64
- summaryText += `(score: ${Math.round(result.recommended.score)}/100). `;
65
- summaryText += `Confidence: ${result.confidence.score}%.`;
66
- // Build hints
67
- const warnings = [];
68
- if (result.confidence.limitations.length > 0) {
69
- warnings.push(...result.confidence.limitations);
70
- }
71
- if (result.recommended.warnings.length > 0) {
72
- warnings.push(...result.recommended.warnings.slice(0, 3));
73
- }
74
- const hints = {
75
- nextActions: result.recommended.nextSteps.slice(0, 3),
76
- warnings: warnings.length > 0 ? warnings : undefined,
77
- relatedTools: [
78
- 'drift_impact_analysis',
79
- 'drift_patterns_list',
80
- 'drift_code_examples',
81
- ],
82
- };
83
- return builder
84
- .withSummary(summaryText)
85
- .withData({ result })
86
- .withHints(hints)
87
- .buildContent();
15
+ // Check license for impact simulation feature
16
+ const gatedResult = await guardMCPTool('gate:impact-simulation', async () => {
17
+ const builder = createResponseBuilder();
18
+ if (!args.task) {
19
+ throw Errors.missingParameter('task');
20
+ }
21
+ // Load call graph (optional but recommended)
22
+ let callGraph;
23
+ try {
24
+ const callGraphAnalyzer = createCallGraphAnalyzer({ rootDir: projectRoot });
25
+ await callGraphAnalyzer.initialize();
26
+ callGraph = callGraphAnalyzer.getGraph();
27
+ }
28
+ catch {
29
+ // Call graph not available
30
+ }
31
+ // Load pattern service (optional but recommended)
32
+ let patternService;
33
+ try {
34
+ const repository = await createPatternRepository({ rootDir: projectRoot });
35
+ patternService = createPatternService(repository, projectRoot);
36
+ }
37
+ catch {
38
+ // Patterns not available
39
+ }
40
+ // Create simulation engine
41
+ const engine = createSimulationEngine({
42
+ projectRoot,
43
+ callGraph: callGraph ?? undefined,
44
+ patternService: patternService ?? undefined,
45
+ options: {
46
+ maxApproaches: args.maxApproaches ?? 5,
47
+ includeSecurityAnalysis: args.includeSecurityAnalysis ?? true,
48
+ },
49
+ });
50
+ // Build task
51
+ const task = {
52
+ description: args.task,
53
+ category: args.category,
54
+ target: args.target,
55
+ constraints: args.constraints?.map(c => ({
56
+ type: 'custom',
57
+ value: c,
58
+ description: c,
59
+ })),
60
+ };
61
+ // Run simulation
62
+ const result = await engine.simulate(task);
63
+ // Build summary
64
+ let summaryText = `🔮 Simulated ${result.approaches.length} approaches for: "${args.task}". `;
65
+ summaryText += `Recommended: "${result.recommended.approach.name}" `;
66
+ summaryText += `(score: ${Math.round(result.recommended.score)}/100). `;
67
+ summaryText += `Confidence: ${result.confidence.score}%.`;
68
+ // Build hints
69
+ const warnings = [];
70
+ if (result.confidence.limitations.length > 0) {
71
+ warnings.push(...result.confidence.limitations);
72
+ }
73
+ if (result.recommended.warnings.length > 0) {
74
+ warnings.push(...result.recommended.warnings.slice(0, 3));
75
+ }
76
+ const hints = {
77
+ nextActions: result.recommended.nextSteps.slice(0, 3),
78
+ warnings: warnings.length > 0 ? warnings : undefined,
79
+ relatedTools: [
80
+ 'drift_impact_analysis',
81
+ 'drift_patterns_list',
82
+ 'drift_code_examples',
83
+ ],
84
+ };
85
+ return builder
86
+ .withSummary(summaryText)
87
+ .withData({ result })
88
+ .withHints(hints)
89
+ .buildContent();
90
+ }, projectRoot);
91
+ return gatedResult;
88
92
  }
89
93
  //# sourceMappingURL=simulate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"simulate.js","sourceRoot":"","sources":["../../../src/tools/analysis/simulate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"simulate.js","sourceRoot":"","sources":["../../../src/tools/analysis/simulate.ts"],"names":[],"mappings":"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"}
@@ -63,7 +63,42 @@ async function handleStatus(projectRoot) {
63
63
  .buildContent();
64
64
  }
65
65
  catch {
66
- throw Errors.custom('NO_TEST_TOPOLOGY', 'No test topology found. Build it first using the CLI: drift test-topology build', ['drift test-topology build']);
66
+ // No cached data - try to build on-demand
67
+ try {
68
+ const analyzer = await buildAnalyzer(projectRoot);
69
+ const summary = analyzer.getSummary();
70
+ const mockAnalysis = analyzer.analyzeMocks();
71
+ let summaryText = `🧪 ${summary.testCases} tests in ${summary.testFiles} files. `;
72
+ summaryText += `Coverage: ${summary.functionCoveragePercent}% functions. `;
73
+ summaryText += `Quality: ${summary.avgQualityScore}/100.`;
74
+ const hints = {
75
+ nextActions: [
76
+ summary.functionCoveragePercent < 50
77
+ ? 'Run drift_test_topology action="uncovered" to find gaps'
78
+ : 'Good coverage - consider drift_test_topology action="mocks" for quality',
79
+ ],
80
+ relatedTools: ['drift_test_topology action="uncovered"', 'drift_test_topology action="mocks"'],
81
+ };
82
+ return builder
83
+ .withSummary(summaryText)
84
+ .withData({ summary, mockAnalysis })
85
+ .withHints(hints)
86
+ .buildContent();
87
+ }
88
+ catch {
89
+ // Return graceful empty state
90
+ return builder
91
+ .withSummary('🧪 Test topology analysis not available. Run a scan first.')
92
+ .withData({
93
+ summary: { testCases: 0, testFiles: 0, functionCoveragePercent: 0, avgQualityScore: 0, byFramework: {}, avgMockRatio: 0 },
94
+ mockAnalysis: { totalMocks: 0, externalMocks: 0, internalMocks: 0, externalPercent: 0, internalPercent: 0, avgMockRatio: 0, highMockRatioTests: [], topMockedModules: [] }
95
+ })
96
+ .withHints({
97
+ nextActions: ['Run drift scan to analyze the codebase first'],
98
+ relatedTools: ['drift_status'],
99
+ })
100
+ .buildContent();
101
+ }
67
102
  }
68
103
  }
69
104
  async function handleCoverage(projectRoot, file) {
@@ -129,40 +164,59 @@ async function handleUncovered(projectRoot, limit, minRisk) {
129
164
  }
130
165
  async function handleMocks(projectRoot) {
131
166
  const builder = createResponseBuilder();
132
- // Load cached data
167
+ // First try cached data
133
168
  const summaryPath = path.join(projectRoot, DRIFT_DIR, TEST_TOPOLOGY_DIR, 'summary.json');
169
+ let mockAnalysis;
134
170
  try {
135
171
  const data = JSON.parse(await fs.readFile(summaryPath, 'utf-8'));
136
- const { mockAnalysis } = data;
137
- const warnings = [];
138
- if (mockAnalysis.internalPercent > 50) {
139
- warnings.push('High internal mocking (>50%) may indicate tight coupling');
140
- }
141
- if (mockAnalysis.avgMockRatio > 0.7) {
142
- warnings.push('High average mock ratio - tests may be brittle');
172
+ mockAnalysis = data.mockAnalysis;
173
+ }
174
+ catch {
175
+ // Try to build on-demand
176
+ try {
177
+ const analyzer = await buildAnalyzer(projectRoot);
178
+ mockAnalysis = analyzer.analyzeMocks();
143
179
  }
144
- if (mockAnalysis.highMockRatioTests.length > 5) {
145
- warnings.push(`${mockAnalysis.highMockRatioTests.length} tests have >70% mock ratio`);
180
+ catch {
181
+ // Return empty state
182
+ return builder
183
+ .withSummary('🎭 No mock analysis available. Run a scan first.')
184
+ .withData({
185
+ analysis: { totalMocks: 0, externalMocks: 0, internalMocks: 0, externalPercent: 0, internalPercent: 0, avgMockRatio: 0, highMockRatioTests: [], topMockedModules: [] },
186
+ warnings: []
187
+ })
188
+ .withHints({
189
+ nextActions: ['Run drift scan to analyze the codebase'],
190
+ relatedTools: ['drift_status'],
191
+ })
192
+ .buildContent();
146
193
  }
147
- let summaryText = `🎭 ${mockAnalysis.totalMocks} mocks. `;
148
- summaryText += `${mockAnalysis.externalPercent}% external, ${mockAnalysis.internalPercent}% internal. `;
149
- summaryText += `Avg ratio: ${Math.round(mockAnalysis.avgMockRatio * 100)}%.`;
150
- const hints = {
151
- nextActions: warnings.length > 0
152
- ? ['Review high-mock tests for potential refactoring']
153
- : ['Mock patterns look healthy'],
154
- warnings: warnings.length > 0 ? warnings : undefined,
155
- relatedTools: ['drift_test_topology action="quality"'],
156
- };
157
- return builder
158
- .withSummary(summaryText)
159
- .withData({ analysis: mockAnalysis, warnings })
160
- .withHints(hints)
161
- .buildContent();
162
194
  }
163
- catch {
164
- throw Errors.custom('NO_TEST_TOPOLOGY', 'No test topology found. Build it first.', ['drift test-topology build']);
195
+ const warnings = [];
196
+ if (mockAnalysis.internalPercent > 50) {
197
+ warnings.push('High internal mocking (>50%) may indicate tight coupling');
198
+ }
199
+ if (mockAnalysis.avgMockRatio > 0.7) {
200
+ warnings.push('High average mock ratio - tests may be brittle');
201
+ }
202
+ if (mockAnalysis.highMockRatioTests.length > 5) {
203
+ warnings.push(`${mockAnalysis.highMockRatioTests.length} tests have >70% mock ratio`);
165
204
  }
205
+ let summaryText = `🎭 ${mockAnalysis.totalMocks} mocks. `;
206
+ summaryText += `${mockAnalysis.externalPercent}% external, ${mockAnalysis.internalPercent}% internal. `;
207
+ summaryText += `Avg ratio: ${Math.round(mockAnalysis.avgMockRatio * 100)}%.`;
208
+ const hints = {
209
+ nextActions: warnings.length > 0
210
+ ? ['Review high-mock tests for potential refactoring']
211
+ : ['Mock patterns look healthy'],
212
+ warnings: warnings.length > 0 ? warnings : undefined,
213
+ relatedTools: ['drift_test_topology action="quality"'],
214
+ };
215
+ return builder
216
+ .withSummary(summaryText)
217
+ .withData({ analysis: mockAnalysis, warnings })
218
+ .withHints(hints)
219
+ .buildContent();
166
220
  }
167
221
  async function handleAffected(projectRoot, files) {
168
222
  const builder = createResponseBuilder();
@@ -188,28 +242,47 @@ async function handleAffected(projectRoot, files) {
188
242
  }
189
243
  async function handleQuality(projectRoot, file) {
190
244
  const builder = createResponseBuilder();
191
- // Load cached data
245
+ // First try cached data
192
246
  const summaryPath = path.join(projectRoot, DRIFT_DIR, TEST_TOPOLOGY_DIR, 'summary.json');
247
+ let summary;
193
248
  try {
194
249
  const data = JSON.parse(await fs.readFile(summaryPath, 'utf-8'));
195
- const { summary } = data;
196
- let summaryText = `📈 Test Quality: ${summary.avgQualityScore}/100. `;
197
- summaryText += `Mock ratio: ${Math.round(summary.avgMockRatio * 100)}%.`;
198
- const hints = {
199
- nextActions: summary.avgQualityScore < 50
200
- ? ['Improve test quality by adding assertions and error cases']
201
- : ['Test quality is good'],
202
- relatedTools: ['drift_test_topology action="mocks"'],
203
- };
204
- return builder
205
- .withSummary(summaryText)
206
- .withData({ file, summary })
207
- .withHints(hints)
208
- .buildContent();
250
+ summary = data.summary;
209
251
  }
210
252
  catch {
211
- throw Errors.custom('NO_TEST_TOPOLOGY', 'No test topology found. Build it first.', ['drift test-topology build']);
253
+ // Try to build on-demand
254
+ try {
255
+ const analyzer = await buildAnalyzer(projectRoot);
256
+ summary = analyzer.getSummary();
257
+ }
258
+ catch {
259
+ // Return empty state
260
+ return builder
261
+ .withSummary('📈 Test quality analysis not available. Run a scan first.')
262
+ .withData({
263
+ file,
264
+ summary: { testCases: 0, testFiles: 0, functionCoveragePercent: 0, avgQualityScore: 0, byFramework: {}, avgMockRatio: 0 }
265
+ })
266
+ .withHints({
267
+ nextActions: ['Run drift scan to analyze the codebase'],
268
+ relatedTools: ['drift_status'],
269
+ })
270
+ .buildContent();
271
+ }
212
272
  }
273
+ let summaryText = `📈 Test Quality: ${summary.avgQualityScore}/100. `;
274
+ summaryText += `Mock ratio: ${Math.round((summary.avgMockRatio ?? 0) * 100)}%.`;
275
+ const hints = {
276
+ nextActions: summary.avgQualityScore < 50
277
+ ? ['Improve test quality by adding assertions and error cases']
278
+ : ['Test quality is good'],
279
+ relatedTools: ['drift_test_topology action="mocks"'],
280
+ };
281
+ return builder
282
+ .withSummary(summaryText)
283
+ .withData({ file, summary })
284
+ .withHints(hints)
285
+ .buildContent();
213
286
  }
214
287
  // ============================================================================
215
288
  // Helpers
@@ -1 +1 @@
1
- {"version":3,"file":"test-topology.js","sourceRoot":"","sources":["../../../src/tools/analysis/test-topology.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-topology.js","sourceRoot":"","sources":["../../../src/tools/analysis/test-topology.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@
3
3
  *
4
4
  * Detail tool that answers "What data can this code access?" and
5
5
  * "Who can access this data?" using call graph traversal.
6
+ *
7
+ * Now uses UnifiedCallGraphProvider which supports both legacy and sharded storage.
6
8
  */
7
9
  export interface ReachableData {
8
10
  table: string;
@@ -1 +1 @@
1
- {"version":3,"file":"reachability.d.ts","sourceRoot":"","sources":["../../../src/tools/detail/reachability.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,aAAa,EAAE,aAAa,EAAE,CAAC;IAC/B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,MAAM,MAAM,gBAAgB,GAAG,uBAAuB,GAAG,uBAAuB,CAAC;AAKjF,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE;IACJ,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,GACA,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CA0B7D"}
1
+ {"version":3,"file":"reachability.d.ts","sourceRoot":"","sources":["../../../src/tools/detail/reachability.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAUH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,aAAa,EAAE,aAAa,EAAE,CAAC;IAC/B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,MAAM,MAAM,gBAAgB,GAAG,uBAAuB,GAAG,uBAAuB,CAAC;AAKjF,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE;IACJ,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,GACA,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAyB7D"}
@@ -3,8 +3,10 @@
3
3
  *
4
4
  * Detail tool that answers "What data can this code access?" and
5
5
  * "Who can access this data?" using call graph traversal.
6
+ *
7
+ * Now uses UnifiedCallGraphProvider which supports both legacy and sharded storage.
6
8
  */
7
- import { createCallGraphAnalyzer, } from 'driftdetect-core';
9
+ import { createUnifiedCallGraphProvider, } from 'driftdetect-core';
8
10
  import { createResponseBuilder, Errors } from '../../infrastructure/index.js';
9
11
  const DEFAULT_MAX_DEPTH = 10;
10
12
  const DEFAULT_LIMIT = 15;
@@ -14,21 +16,20 @@ export async function handleReachability(projectRoot, args) {
14
16
  const maxDepth = args.maxDepth ?? DEFAULT_MAX_DEPTH;
15
17
  const limit = args.limit ?? DEFAULT_LIMIT;
16
18
  const sensitiveOnly = args.sensitiveOnly ?? false;
17
- // Initialize call graph analyzer
18
- const analyzer = createCallGraphAnalyzer({ rootDir: projectRoot });
19
- await analyzer.initialize();
20
- const graph = analyzer.getGraph();
21
- if (!graph) {
19
+ // Initialize unified call graph provider (supports both legacy and sharded)
20
+ const provider = createUnifiedCallGraphProvider({ rootDir: projectRoot });
21
+ await provider.initialize();
22
+ if (!provider.isAvailable()) {
22
23
  throw Errors.custom('NO_CALL_GRAPH', 'No call graph found. Run drift_callgraph action="build" first.', ['drift_callgraph action="build"']);
23
24
  }
24
25
  if (direction === 'forward') {
25
- return handleForwardReachability(analyzer, graph, args.location, sensitiveOnly, builder, maxDepth, limit);
26
+ return handleForwardReachability(provider, args.location, sensitiveOnly, builder, maxDepth, limit);
26
27
  }
27
28
  else {
28
- return handleInverseReachability(analyzer, graph, args.target, builder, maxDepth, limit);
29
+ return handleInverseReachability(provider, args.target, builder, maxDepth, limit);
29
30
  }
30
31
  }
31
- async function handleForwardReachability(analyzer, graph, location, sensitiveOnly, builder, maxDepth, limit) {
32
+ async function handleForwardReachability(provider, location, sensitiveOnly, builder, maxDepth, limit) {
32
33
  if (!location) {
33
34
  throw Errors.missingParameter('location');
34
35
  }
@@ -38,23 +39,34 @@ async function handleForwardReachability(analyzer, graph, location, sensitiveOnl
38
39
  const [file, lineStr] = location.split(':');
39
40
  const line = parseInt(lineStr ?? '0', 10);
40
41
  if (!file || isNaN(line)) {
41
- throw Errors.custom('INVALID_LOCATION', 'Location must be file:line or function_name');
42
+ throw Errors.custom('INVALID_LOCATION', 'Location must be file:line (e.g., "src/api.ts:42") or function_name');
42
43
  }
43
- result = analyzer.getReachableData(file, line, { maxDepth, sensitiveOnly });
44
+ result = await provider.getReachableData(file, line, { maxDepth, sensitiveOnly });
45
+ }
46
+ else if (location.includes('/') || location.includes('.')) {
47
+ // Looks like a file path without line number - provide helpful error
48
+ throw Errors.custom('INVALID_LOCATION', `Location "${location}" looks like a file path. Please provide a line number (e.g., "${location}:1") or use a function name.`, [`Try: location="${location}:1"`]);
44
49
  }
45
50
  else {
46
- // Find function by name
51
+ // Find function by name - search through entry points first
52
+ const entryPoints = await provider.getEntryPoints();
47
53
  let funcId;
48
- for (const [id, func] of graph.functions) {
49
- if (func.name === location || func.qualifiedName === location) {
50
- funcId = id;
54
+ for (const epId of entryPoints) {
55
+ const func = await provider.getFunction(epId);
56
+ if (func && (func.name === location)) {
57
+ funcId = epId;
51
58
  break;
52
59
  }
53
60
  }
54
61
  if (!funcId) {
55
62
  throw Errors.notFound('function', location);
56
63
  }
57
- result = analyzer.getReachableDataFromFunction(funcId, { maxDepth, sensitiveOnly });
64
+ // Get the function's file and line to use getReachableData
65
+ const func = await provider.getFunction(funcId);
66
+ if (!func) {
67
+ throw Errors.notFound('function', location);
68
+ }
69
+ result = await provider.getReachableData(func.file, func.startLine, { maxDepth, sensitiveOnly });
58
70
  }
59
71
  // Map reachable data
60
72
  const reachableData = result.reachableAccess
@@ -109,7 +121,7 @@ async function handleForwardReachability(analyzer, graph, location, sensitiveOnl
109
121
  .withHints(hints)
110
122
  .buildContent();
111
123
  }
112
- async function handleInverseReachability(analyzer, graph, target, builder, maxDepth, limit) {
124
+ async function handleInverseReachability(provider, target, builder, maxDepth, limit) {
113
125
  if (!target) {
114
126
  throw Errors.missingParameter('target');
115
127
  }
@@ -117,26 +129,24 @@ async function handleInverseReachability(analyzer, graph, target, builder, maxDe
117
129
  const parts = target.split('.');
118
130
  const table = parts[0] ?? '';
119
131
  const field = parts.length > 1 ? parts.slice(1).join('.') : undefined;
120
- const result = analyzer.getCodePathsToData(field ? { table, field, maxDepth } : { table, maxDepth });
132
+ const result = await provider.getCodePathsToData(field ? { table, field, maxDepth } : { table, maxDepth });
121
133
  // Map access paths
122
- const accessPaths = result.accessPaths
123
- .slice(0, limit)
124
- .map(ap => {
125
- const entryFunc = graph.functions.get(ap.entryPoint);
126
- return {
127
- entryPoint: entryFunc?.qualifiedName ?? ap.entryPoint,
134
+ const accessPaths = [];
135
+ for (const ap of result.accessPaths.slice(0, limit)) {
136
+ const entryFunc = await provider.getFunction(ap.entryPoint);
137
+ accessPaths.push({
138
+ entryPoint: entryFunc?.name ?? ap.entryPoint,
128
139
  entryPointFile: entryFunc?.file ?? '',
129
140
  pathLength: ap.path.length,
130
141
  path: ap.path.map(p => p.functionName),
131
- };
132
- });
142
+ });
143
+ }
133
144
  // Get entry point names
134
- const entryPointNames = result.entryPoints
135
- .slice(0, limit)
136
- .map(epId => {
137
- const func = graph.functions.get(epId);
138
- return func?.qualifiedName ?? epId;
139
- });
145
+ const entryPointNames = [];
146
+ for (const epId of result.entryPoints.slice(0, limit)) {
147
+ const func = await provider.getFunction(epId);
148
+ entryPointNames.push(func?.name ?? epId);
149
+ }
140
150
  const targetData = { table };
141
151
  if (field) {
142
152
  targetData.field = field;
@@ -1 +1 @@
1
- {"version":3,"file":"reachability.js","sourceRoot":"","sources":["../../../src/tools/detail/reachability.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reachability.js","sourceRoot":"","sources":["../../../src/tools/detail/reachability.ts"],"names":[],"mappings":"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"}
@@ -7,5 +7,7 @@
7
7
  import type { Tool } from '@modelcontextprotocol/sdk/types.js';
8
8
  export declare const ORCHESTRATION_TOOLS: Tool[];
9
9
  export { handleContext } from './context.js';
10
+ export { handlePackageContext } from './package-context.js';
10
11
  export type { TaskIntent, ContextPackage, RelevantPattern, SuggestedFile, Guidance, Warning, Confidence, DeeperDive, } from './context.js';
12
+ export type { PackageContextInput, PackageContextOutput, PackageListResult, } from './package-context.js';
11
13
  //# sourceMappingURL=index.d.ts.map