@mohantn/gate-keeper 2.2.0 → 2.2.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 (82) hide show
  1. package/README.md +82 -46
  2. package/package.json +1 -1
  3. package/dist/cli/query-repl.d.ts +0 -37
  4. package/dist/cli/query-repl.d.ts.map +0 -1
  5. package/dist/cli/query-repl.js +0 -298
  6. package/dist/cli/query-repl.js.map +0 -1
  7. package/dist/cli/repl-algorithms.d.ts +0 -49
  8. package/dist/cli/repl-algorithms.d.ts.map +0 -1
  9. package/dist/cli/repl-algorithms.js +0 -147
  10. package/dist/cli/repl-algorithms.js.map +0 -1
  11. package/dist/cli/setup-core.d.ts +0 -38
  12. package/dist/cli/setup-core.d.ts.map +0 -1
  13. package/dist/cli/setup-core.js +0 -427
  14. package/dist/cli/setup-core.js.map +0 -1
  15. package/dist/cli/setup.d.ts +0 -25
  16. package/dist/cli/setup.d.ts.map +0 -1
  17. package/dist/cli/setup.js +0 -159
  18. package/dist/cli/setup.js.map +0 -1
  19. package/dist/github/app.d.ts +0 -34
  20. package/dist/github/app.d.ts.map +0 -1
  21. package/dist/github/app.js +0 -261
  22. package/dist/github/app.js.map +0 -1
  23. package/dist/github/commenter.d.ts +0 -67
  24. package/dist/github/commenter.d.ts.map +0 -1
  25. package/dist/github/commenter.js +0 -155
  26. package/dist/github/commenter.js.map +0 -1
  27. package/dist/hooks/git-hooks.d.ts +0 -30
  28. package/dist/hooks/git-hooks.d.ts.map +0 -1
  29. package/dist/hooks/git-hooks.js +0 -179
  30. package/dist/hooks/git-hooks.js.map +0 -1
  31. package/dist/mcp/cache-preload.d.ts +0 -29
  32. package/dist/mcp/cache-preload.d.ts.map +0 -1
  33. package/dist/mcp/cache-preload.js +0 -103
  34. package/dist/mcp/cache-preload.js.map +0 -1
  35. package/dist/mcp/handlers/context.d.ts +0 -25
  36. package/dist/mcp/handlers/context.d.ts.map +0 -1
  37. package/dist/mcp/handlers/context.js +0 -382
  38. package/dist/mcp/handlers/context.js.map +0 -1
  39. package/dist/mcp/handlers/graph-intelligence.d.ts +0 -26
  40. package/dist/mcp/handlers/graph-intelligence.d.ts.map +0 -1
  41. package/dist/mcp/handlers/graph-intelligence.js +0 -371
  42. package/dist/mcp/handlers/graph-intelligence.js.map +0 -1
  43. package/dist/mcp/handlers/graph-query.d.ts +0 -25
  44. package/dist/mcp/handlers/graph-query.d.ts.map +0 -1
  45. package/dist/mcp/handlers/graph-query.js +0 -410
  46. package/dist/mcp/handlers/graph-query.js.map +0 -1
  47. package/dist/mcp/handlers/impact.d.ts +0 -4
  48. package/dist/mcp/handlers/impact.d.ts.map +0 -1
  49. package/dist/mcp/handlers/impact.js +0 -139
  50. package/dist/mcp/handlers/impact.js.map +0 -1
  51. package/dist/mcp/handlers/improvement.d.ts +0 -4
  52. package/dist/mcp/handlers/improvement.d.ts.map +0 -1
  53. package/dist/mcp/handlers/improvement.js +0 -136
  54. package/dist/mcp/handlers/improvement.js.map +0 -1
  55. package/dist/mcp/handlers/platform-installer.d.ts +0 -10
  56. package/dist/mcp/handlers/platform-installer.d.ts.map +0 -1
  57. package/dist/mcp/handlers/platform-installer.js +0 -168
  58. package/dist/mcp/handlers/platform-installer.js.map +0 -1
  59. package/dist/mcp/handlers/pr-review.d.ts +0 -33
  60. package/dist/mcp/handlers/pr-review.d.ts.map +0 -1
  61. package/dist/mcp/handlers/pr-review.js +0 -170
  62. package/dist/mcp/handlers/pr-review.js.map +0 -1
  63. package/dist/mcp/token-tracker.d.ts +0 -47
  64. package/dist/mcp/token-tracker.d.ts.map +0 -1
  65. package/dist/mcp/token-tracker.js +0 -93
  66. package/dist/mcp/token-tracker.js.map +0 -1
  67. package/dist/quality-loop/file-lock.d.ts +0 -12
  68. package/dist/quality-loop/file-lock.d.ts.map +0 -1
  69. package/dist/quality-loop/file-lock.js +0 -38
  70. package/dist/quality-loop/file-lock.js.map +0 -1
  71. package/dist/quality-loop/fix-worker.d.ts +0 -44
  72. package/dist/quality-loop/fix-worker.d.ts.map +0 -1
  73. package/dist/quality-loop/fix-worker.js +0 -414
  74. package/dist/quality-loop/fix-worker.js.map +0 -1
  75. package/dist/quality-loop/orchestrator.d.ts +0 -137
  76. package/dist/quality-loop/orchestrator.d.ts.map +0 -1
  77. package/dist/quality-loop/orchestrator.js +0 -894
  78. package/dist/quality-loop/orchestrator.js.map +0 -1
  79. package/dist/quality-loop/queue-manager.d.ts +0 -45
  80. package/dist/quality-loop/queue-manager.d.ts.map +0 -1
  81. package/dist/quality-loop/queue-manager.js +0 -173
  82. package/dist/quality-loop/queue-manager.js.map +0 -1
@@ -1,382 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.handleFileContext = handleFileContext;
37
- exports.handleDependencyGraph = handleDependencyGraph;
38
- exports.handleImpactAnalysis = handleImpactAnalysis;
39
- exports.handlePredictImpactWithRemediation = handlePredictImpactWithRemediation;
40
- const fs = __importStar(require("fs"));
41
- const path = __importStar(require("path"));
42
- const refactoring_advisor_1 = require("../../analyzer/refactoring-advisor");
43
- const universal_analyzer_1 = require("../../analyzer/universal-analyzer");
44
- const helpers_1 = require("../helpers");
45
- const shared_1 = require("./shared");
46
- // ── Shared instances ───────────────────────────────────────
47
- const fileAnalyzer = new universal_analyzer_1.UniversalAnalyzer();
48
- const refactoringAdvisor = new refactoring_advisor_1.RefactoringAdvisor();
49
- // ── Handlers ───────────────────────────────────────────────
50
- async function handleFileContext(args) {
51
- const filePath = String(args.file_path ?? '');
52
- if (!filePath)
53
- return (0, shared_1.text)('Error: file_path is required.');
54
- const repo = String(args.repo ?? (0, helpers_1.findGitRoot)(path.dirname(filePath)));
55
- const encodedFile = encodeURIComponent(filePath);
56
- const encodedRepo = encodeURIComponent(repo);
57
- const [graphRaw, detailRaw, cyclesRaw, trendsRaw] = await Promise.all([
58
- (0, helpers_1.fetchDaemonApi)(`/api/graph?repo=${encodedRepo}`),
59
- (0, helpers_1.fetchDaemonApi)(`/api/file-detail?file=${encodedFile}&repo=${encodedRepo}`),
60
- (0, helpers_1.fetchDaemonApi)(`/api/cycles?repo=${encodedRepo}`),
61
- (0, helpers_1.fetchDaemonApi)(`/api/trends?file=${encodedFile}&repo=${encodedRepo}`),
62
- ]);
63
- if (!graphRaw) {
64
- return (0, shared_1.text)('Error: Gate Keeper daemon is not running. Start it with `npm run daemon` or `npm run dev`.');
65
- }
66
- const graph = graphRaw;
67
- const detail = detailRaw;
68
- const allCycles = (cyclesRaw ?? []);
69
- const trends = (trendsRaw ?? []);
70
- const lines = [];
71
- const node = graph.nodes.find(n => n.id === filePath);
72
- if (!node && !detail) {
73
- return (0, shared_1.text)('File not found in the dependency graph. Run a scan first or analyze the file with `analyze_file`.');
74
- }
75
- const rating = node?.rating ?? detail?.analysis?.rating ?? 0;
76
- lines.push(`## File Context: ${path.basename(filePath)}`);
77
- lines.push(`**Path:** ${filePath}`);
78
- lines.push(`**Rating:** ${rating}/10`);
79
- lines.push('');
80
- const imports = graph.edges.filter(e => e.source === filePath);
81
- if (imports.length > 0) {
82
- lines.push(`### Dependencies (${imports.length} files imported)`);
83
- for (const edge of imports) {
84
- const targetNode = graph.nodes.find(n => n.id === edge.target);
85
- const targetRating = targetNode ? ` (rating: ${targetNode.rating})` : '';
86
- lines.push(`- ${path.relative(repo, edge.target)}${targetRating} [${edge.type}]`);
87
- }
88
- lines.push('');
89
- }
90
- const dependents = graph.edges.filter(e => e.target === filePath);
91
- if (dependents.length > 0) {
92
- lines.push(`### Used By (${dependents.length} files depend on this)`);
93
- for (const edge of dependents) {
94
- const sourceNode = graph.nodes.find(n => n.id === edge.source);
95
- const sourceRating = sourceNode ? ` (rating: ${sourceNode.rating})` : '';
96
- lines.push(`- ${path.relative(repo, edge.source)}${sourceRating}`);
97
- }
98
- lines.push('');
99
- }
100
- const fileCycles = allCycles.filter(c => c.nodes.includes(filePath));
101
- if (fileCycles.length > 0) {
102
- lines.push(`### Circular Dependencies (${fileCycles.length} cycles)`);
103
- for (const cycle of fileCycles) {
104
- const chain = cycle.nodes.map(n => path.basename(n)).join(' → ');
105
- lines.push(`- ${chain} → ${path.basename(cycle.nodes[0])}`);
106
- }
107
- lines.push('Each cycle costs −1.0 rating. Break cycles by extracting shared types or using dependency inversion.');
108
- lines.push('');
109
- }
110
- if (detail?.ratingBreakdown && detail.ratingBreakdown.length > 0) {
111
- lines.push('### Rating Breakdown');
112
- lines.push('Starting at 10.0:');
113
- for (const item of detail.ratingBreakdown) {
114
- lines.push(`- ${item.category}: −${item.deduction.toFixed(1)} (${item.detail})`);
115
- }
116
- lines.push(`**Final: ${rating}/10**`);
117
- lines.push('');
118
- }
119
- if (trends.length > 1) {
120
- lines.push('### Rating Trend (last ' + trends.length + ' analyses)');
121
- const oldest = trends[trends.length - 1];
122
- const newest = trends[0];
123
- const delta = newest.rating - oldest.rating;
124
- const arrow = delta > 0 ? 'improving' : delta < 0 ? 'declining' : '→ stable';
125
- lines.push(`${oldest.rating} → ${newest.rating} (${arrow})`);
126
- lines.push('');
127
- }
128
- if (detail?.gitDiff) {
129
- lines.push('### Uncommitted Changes');
130
- lines.push(`+${detail.gitDiff.added} lines added, −${detail.gitDiff.removed} lines removed`);
131
- lines.push('');
132
- }
133
- return (0, shared_1.text)(lines.join('\n'));
134
- }
135
- async function handleDependencyGraph(args) {
136
- const repo = String(args.repo ?? (0, helpers_1.findGitRoot)(process.cwd()));
137
- const encodedRepo = encodeURIComponent(repo);
138
- const [graphRaw, cyclesRaw, statusRaw] = await Promise.all([
139
- (0, helpers_1.fetchDaemonApi)(`/api/graph?repo=${encodedRepo}`),
140
- (0, helpers_1.fetchDaemonApi)(`/api/cycles?repo=${encodedRepo}`),
141
- (0, helpers_1.fetchDaemonApi)(`/api/status?repo=${encodedRepo}`),
142
- ]);
143
- if (!graphRaw) {
144
- return (0, shared_1.text)('Error: Gate Keeper daemon is not running. Start it with `npm run daemon` or `npm run dev`.');
145
- }
146
- const graph = graphRaw;
147
- const cycles = (cyclesRaw ?? []);
148
- const status = statusRaw;
149
- const lines = [];
150
- lines.push('## Dependency Graph');
151
- lines.push(`**Repository:** ${repo}`);
152
- lines.push(`**Files:** ${graph.nodes.length} | **Edges:** ${graph.edges.length} | **Overall Rating:** ${status?.overallRating ?? 'N/A'}/10`);
153
- lines.push('');
154
- const excellent = graph.nodes.filter(n => n.rating >= 8).length;
155
- const good = graph.nodes.filter(n => n.rating >= 6 && n.rating < 8).length;
156
- const poor = graph.nodes.filter(n => n.rating < 6).length;
157
- lines.push('### Rating Distribution');
158
- lines.push(`- Excellent (≥8): ${excellent} files`);
159
- lines.push(`- Needs work (6–7.9): ${good} files`);
160
- lines.push(`- Poor (<6): ${poor} files`);
161
- lines.push('');
162
- const connectionCount = new Map();
163
- for (const edge of graph.edges) {
164
- connectionCount.set(edge.source, (connectionCount.get(edge.source) ?? 0) + 1);
165
- connectionCount.set(edge.target, (connectionCount.get(edge.target) ?? 0) + 1);
166
- }
167
- const mostConnected = [...connectionCount.entries()]
168
- .sort((a, b) => b[1] - a[1])
169
- .slice(0, 10);
170
- if (mostConnected.length > 0) {
171
- lines.push('### Most Connected Files (coupling hotspots)');
172
- for (const [filePath, count] of mostConnected) {
173
- const node = graph.nodes.find(n => n.id === filePath);
174
- const ratingStr = node ? ` (rating: ${node.rating})` : '';
175
- lines.push(`- **${count} connections** — ${path.relative(repo, filePath)}${ratingStr}`);
176
- }
177
- lines.push('');
178
- }
179
- const worstNodes = [...graph.nodes].sort((a, b) => a.rating - b.rating).slice(0, 10);
180
- if (worstNodes.length > 0 && worstNodes[0].rating < 8) {
181
- lines.push('### Worst-Rated Files');
182
- for (const node of worstNodes) {
183
- if (node.rating >= 8)
184
- break;
185
- lines.push(`- **${node.rating}/10** — ${path.relative(repo, node.id)} (${node.violations.length} violations, ${node.metrics.linesOfCode} LOC)`);
186
- }
187
- lines.push('');
188
- }
189
- if (cycles.length > 0) {
190
- lines.push(`### Circular Dependencies (${cycles.length} cycles — each costs −1.0 rating)`);
191
- for (const cycle of cycles.slice(0, 10)) {
192
- const chain = cycle.nodes.map(n => path.basename(n)).join(' → ');
193
- lines.push(`- ${chain} → ${path.basename(cycle.nodes[0])}`);
194
- }
195
- if (cycles.length > 10)
196
- lines.push(`... and ${cycles.length - 10} more cycles`);
197
- lines.push('');
198
- }
199
- const complexFiles = [...graph.nodes]
200
- .filter(n => n.metrics.cyclomaticComplexity > 10)
201
- .sort((a, b) => b.metrics.cyclomaticComplexity - a.metrics.cyclomaticComplexity)
202
- .slice(0, 5);
203
- if (complexFiles.length > 0) {
204
- lines.push('### Complexity Hotspots');
205
- for (const node of complexFiles) {
206
- lines.push(`- **Complexity ${node.metrics.cyclomaticComplexity}** — ${path.relative(repo, node.id)} (${node.metrics.linesOfCode} LOC)`);
207
- }
208
- lines.push('');
209
- }
210
- return (0, shared_1.text)(lines.join('\n'));
211
- }
212
- async function handleImpactAnalysis(args) {
213
- const filePath = String(args.file_path ?? '');
214
- if (!filePath)
215
- return (0, shared_1.text)('Error: file_path is required.');
216
- const repo = String(args.repo ?? (0, helpers_1.findGitRoot)(path.dirname(filePath)));
217
- const encodedRepo = encodeURIComponent(repo);
218
- const graphRaw = await (0, helpers_1.fetchDaemonApi)(`/api/graph?repo=${encodedRepo}`);
219
- if (!graphRaw) {
220
- return (0, shared_1.text)('Error: Gate Keeper daemon is not running. Start it with `npm run daemon` or `npm run dev`.');
221
- }
222
- const graph = graphRaw;
223
- const reverseAdj = new Map();
224
- for (const edge of graph.edges) {
225
- const sources = reverseAdj.get(edge.target) ?? [];
226
- sources.push(edge.source);
227
- reverseAdj.set(edge.target, sources);
228
- }
229
- const directDeps = new Set(reverseAdj.get(filePath) ?? []);
230
- const allDeps = new Set();
231
- const queue = [...directDeps];
232
- while (queue.length > 0) {
233
- const current = queue.shift();
234
- if (allDeps.has(current))
235
- continue;
236
- allDeps.add(current);
237
- for (const next of reverseAdj.get(current) ?? []) {
238
- if (!allDeps.has(next))
239
- queue.push(next);
240
- }
241
- }
242
- const lines = [];
243
- lines.push(`## Impact Analysis: ${path.basename(filePath)}`);
244
- lines.push(`**Path:** ${filePath}`);
245
- lines.push(`**Direct dependents:** ${directDeps.size} | **Total affected (transitive):** ${allDeps.size}`);
246
- lines.push('');
247
- if (directDeps.size > 0) {
248
- lines.push('### Direct Dependents');
249
- for (const dep of directDeps) {
250
- const node = graph.nodes.find(n => n.id === dep);
251
- const ratingStr = node ? ` (rating: ${node.rating}, ${node.violations.length} violations)` : '';
252
- lines.push(`- ${path.relative(repo, dep)}${ratingStr}`);
253
- }
254
- lines.push('');
255
- }
256
- const transitiveDeps = [...allDeps].filter(d => !directDeps.has(d));
257
- if (transitiveDeps.length > 0) {
258
- lines.push('### Transitive Dependents');
259
- for (const dep of transitiveDeps.slice(0, 20)) {
260
- const node = graph.nodes.find(n => n.id === dep);
261
- const ratingStr = node ? ` (rating: ${node.rating})` : '';
262
- lines.push(`- ${path.relative(repo, dep)}${ratingStr}`);
263
- }
264
- if (transitiveDeps.length > 20)
265
- lines.push(`... and ${transitiveDeps.length - 20} more`);
266
- lines.push('');
267
- }
268
- const affectedNodes = graph.nodes.filter(n => allDeps.has(n.id));
269
- const lowRated = affectedNodes.filter(n => n.rating < 6);
270
- if (lowRated.length > 0) {
271
- lines.push('### At-Risk Dependents (rating < 6)');
272
- lines.push('These files already have quality issues and may be fragile to upstream changes:');
273
- for (const node of lowRated.sort((a, b) => a.rating - b.rating)) {
274
- lines.push(`- **${node.rating}/10** — ${path.relative(repo, node.id)} (${node.violations.length} violations)`);
275
- }
276
- lines.push('');
277
- }
278
- if (allDeps.size === 0) {
279
- lines.push('No other files depend on this file. Changes here have no downstream impact.');
280
- }
281
- return (0, shared_1.text)(lines.join('\n'));
282
- }
283
- async function handlePredictImpactWithRemediation(args) {
284
- const filePath = String(args.file_path ?? '');
285
- if (!filePath)
286
- return (0, shared_1.text)('Error: file_path is required.');
287
- const repo = String(args.repo ?? (0, helpers_1.findGitRoot)(path.dirname(filePath)));
288
- const encodedRepo = encodeURIComponent(repo);
289
- const [graphRaw, cyclesRaw] = await Promise.all([
290
- (0, helpers_1.fetchDaemonApi)(`/api/graph?repo=${encodedRepo}`),
291
- (0, helpers_1.fetchDaemonApi)(`/api/cycles?repo=${encodedRepo}`),
292
- ]);
293
- if (!graphRaw) {
294
- return (0, shared_1.text)('Error: Gate Keeper daemon is not running. Start it with `npm run daemon` or `npm run dev`.');
295
- }
296
- const graph = graphRaw;
297
- const cycles = (cyclesRaw ?? []);
298
- const reverseAdj = new Map();
299
- for (const edge of graph.edges) {
300
- const sources = reverseAdj.get(edge.target) ?? [];
301
- sources.push(edge.source);
302
- reverseAdj.set(edge.target, sources);
303
- }
304
- const directDeps = new Set(reverseAdj.get(filePath) ?? []);
305
- const allDeps = new Set();
306
- const queue = [...directDeps];
307
- while (queue.length > 0) {
308
- const current = queue.shift();
309
- if (allDeps.has(current))
310
- continue;
311
- allDeps.add(current);
312
- for (const next of reverseAdj.get(current) ?? []) {
313
- if (!allDeps.has(next))
314
- queue.push(next);
315
- }
316
- }
317
- const lines = [];
318
- lines.push(`## Impact + Remediation: ${path.basename(filePath)}`);
319
- lines.push(`**Path:** ${filePath}`);
320
- lines.push(`**Direct dependents:** ${directDeps.size} | **Total affected (transitive):** ${allDeps.size}`);
321
- lines.push('');
322
- if (directDeps.size > 0) {
323
- lines.push('### Direct Dependents');
324
- for (const dep of directDeps) {
325
- const node = graph.nodes.find(n => n.id === dep);
326
- const ratingStr = node ? ` (rating: ${node.rating}, ${node.violations.length} violations)` : '';
327
- lines.push(`- ${path.relative(repo, dep)}${ratingStr}`);
328
- }
329
- lines.push('');
330
- }
331
- const transitiveDeps = [...allDeps].filter(d => !directDeps.has(d));
332
- if (transitiveDeps.length > 0) {
333
- lines.push('### Transitive Dependents');
334
- for (const dep of transitiveDeps.slice(0, 20)) {
335
- const node = graph.nodes.find(n => n.id === dep);
336
- const ratingStr = node ? ` (rating: ${node.rating})` : '';
337
- lines.push(`- ${path.relative(repo, dep)}${ratingStr}`);
338
- }
339
- if (transitiveDeps.length > 20)
340
- lines.push(`... and ${transitiveDeps.length - 20} more`);
341
- lines.push('');
342
- }
343
- const affectedNodes = graph.nodes.filter(n => allDeps.has(n.id));
344
- const atRisk = affectedNodes.filter(n => n.rating < 6).sort((a, b) => a.rating - b.rating);
345
- if (atRisk.length > 0) {
346
- lines.push(`### Remediation Plan for At-Risk Dependents (${atRisk.length} files with rating < 6)`);
347
- lines.push('These files already have quality issues and need targeted fixes:');
348
- lines.push('');
349
- const remediationTargets = atRisk.slice(0, 5);
350
- for (const node of remediationTargets) {
351
- lines.push(`#### ${path.relative(repo, node.id)} — Rating: ${node.rating}/10`);
352
- let hints = [];
353
- if (fs.existsSync(node.id) && fileAnalyzer.isSupportedFile(node.id)) {
354
- const freshAnalysis = await fileAnalyzer.analyze(node.id);
355
- if (freshAnalysis) {
356
- hints = refactoringAdvisor.suggest(freshAnalysis, cycles);
357
- }
358
- }
359
- if (hints.length === 0) {
360
- lines.push(`- ${node.violations.length} violations detected. Re-analyze with \`analyze_file\` for specific hints.`);
361
- }
362
- else {
363
- lines.push(`**Top fix (${hints[0].patternName}):** ${hints[0].rationale}`);
364
- hints[0].steps.slice(0, 3).forEach((step, i) => lines.push(`${i + 1}. ${step}`));
365
- if (hints.length > 1)
366
- lines.push(`_(and ${hints.length - 1} more hints — use \`suggest_refactoring\` for full detail)_`);
367
- }
368
- lines.push('');
369
- }
370
- if (atRisk.length > 5) {
371
- lines.push(`... and ${atRisk.length - 5} more at-risk files. Use \`suggest_refactoring\` on each.`);
372
- }
373
- }
374
- else if (allDeps.size > 0) {
375
- lines.push('No at-risk dependents (all affected files have rating ≥ 6). Change appears safe.');
376
- }
377
- if (allDeps.size === 0) {
378
- lines.push('No other files depend on this file. Changes here have no downstream impact.');
379
- }
380
- return (0, shared_1.text)(lines.join('\n'));
381
- }
382
- //# sourceMappingURL=context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/mcp/handlers/context.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- /**
2
- * Graph-intelligence MCP handlers — graphify-style knowledge queries.
3
- *
4
- * Tools implemented here:
5
- * get_graph_report — narrative Markdown report (god nodes, surprising connections, suggested questions)
6
- * query_graph — deterministic natural-language query dispatcher
7
- * explain_node — deep node explanation (role, connections, centrality, questions)
8
- * export_graph — JSON / GraphML / Neo4j export
9
- * merge_graphs — union-merge two repos' graph data
10
- */
11
- import { GraphResponse } from './types';
12
- import { McpResponse } from './shared';
13
- export declare function handleGetGraphReport(args: Record<string, unknown>): Promise<McpResponse>;
14
- /**
15
- * Pure function: resolve a natural language query against graph data.
16
- * No I/O, no daemon — purely deterministic pattern matching.
17
- *
18
- * Exported for testing. Returns the answer text (or null for unrecognised queries).
19
- */
20
- export declare function resolveQueryPattern(query: string, graph: GraphResponse, repo: string): string | null;
21
- export declare function handleQueryGraph(args: Record<string, unknown>): Promise<McpResponse>;
22
- export declare function handleExplainNode(args: Record<string, unknown>): Promise<McpResponse>;
23
- export declare function handleExportGraph(args: Record<string, unknown>): Promise<McpResponse>;
24
- export declare function handleGetGraphViz(args: Record<string, unknown>): Promise<McpResponse>;
25
- export declare function handleMergeGraphs(args: Record<string, unknown>): Promise<McpResponse>;
26
- //# sourceMappingURL=graph-intelligence.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"graph-intelligence.d.ts","sourceRoot":"","sources":["../../../src/mcp/handlers/graph-intelligence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAkB,WAAW,EAAE,MAAM,UAAU,CAAC;AAqBvD,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAyC9F;AA8ED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,IAAI,CAQf;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAmB1F;AAID,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CA2F3F;AAID,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CA+B3F;AAID,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAiC3F;AAID,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAqC3F"}