mcp-codebase-intelligence 0.1.0
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.
- package/LICENSE +21 -0
- package/README.md +166 -0
- package/dist/graph/code-graph.d.ts +119 -0
- package/dist/graph/code-graph.js +279 -0
- package/dist/graph/code-graph.js.map +1 -0
- package/dist/graph/schema.d.ts +2 -0
- package/dist/graph/schema.js +62 -0
- package/dist/graph/schema.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +171 -0
- package/dist/index.js.map +1 -0
- package/dist/indexer/file-watcher.d.ts +13 -0
- package/dist/indexer/file-watcher.js +106 -0
- package/dist/indexer/file-watcher.js.map +1 -0
- package/dist/indexer/lang-go.d.ts +2 -0
- package/dist/indexer/lang-go.js +246 -0
- package/dist/indexer/lang-go.js.map +1 -0
- package/dist/indexer/lang-java.d.ts +2 -0
- package/dist/indexer/lang-java.js +307 -0
- package/dist/indexer/lang-java.js.map +1 -0
- package/dist/indexer/lang-python.d.ts +2 -0
- package/dist/indexer/lang-python.js +232 -0
- package/dist/indexer/lang-python.js.map +1 -0
- package/dist/indexer/lang-rust.d.ts +2 -0
- package/dist/indexer/lang-rust.js +323 -0
- package/dist/indexer/lang-rust.js.map +1 -0
- package/dist/indexer/language-plugin.d.ts +22 -0
- package/dist/indexer/language-plugin.js +22 -0
- package/dist/indexer/language-plugin.js.map +1 -0
- package/dist/indexer/tree-sitter-indexer.d.ts +12 -0
- package/dist/indexer/tree-sitter-indexer.js +618 -0
- package/dist/indexer/tree-sitter-indexer.js.map +1 -0
- package/dist/lsp/lsp-client.d.ts +45 -0
- package/dist/lsp/lsp-client.js +315 -0
- package/dist/lsp/lsp-client.js.map +1 -0
- package/dist/lsp/lsp-manager.d.ts +13 -0
- package/dist/lsp/lsp-manager.js +96 -0
- package/dist/lsp/lsp-manager.js.map +1 -0
- package/dist/tools/analyze-impact.d.ts +38 -0
- package/dist/tools/analyze-impact.js +126 -0
- package/dist/tools/analyze-impact.js.map +1 -0
- package/dist/tools/architecture-diagram.d.ts +33 -0
- package/dist/tools/architecture-diagram.js +216 -0
- package/dist/tools/architecture-diagram.js.map +1 -0
- package/dist/tools/find-implementations.d.ts +33 -0
- package/dist/tools/find-implementations.js +68 -0
- package/dist/tools/find-implementations.js.map +1 -0
- package/dist/tools/find-symbol.d.ts +39 -0
- package/dist/tools/find-symbol.js +52 -0
- package/dist/tools/find-symbol.js.map +1 -0
- package/dist/tools/get-call-graph.d.ts +40 -0
- package/dist/tools/get-call-graph.js +174 -0
- package/dist/tools/get-call-graph.js.map +1 -0
- package/dist/tools/get-dependencies.d.ts +28 -0
- package/dist/tools/get-dependencies.js +68 -0
- package/dist/tools/get-dependencies.js.map +1 -0
- package/dist/tools/get-exports.d.ts +23 -0
- package/dist/tools/get-exports.js +40 -0
- package/dist/tools/get-exports.js.map +1 -0
- package/dist/tools/get-references.d.ts +28 -0
- package/dist/tools/get-references.js +53 -0
- package/dist/tools/get-references.js.map +1 -0
- package/dist/tools/get-stats.d.ts +15 -0
- package/dist/tools/get-stats.js +23 -0
- package/dist/tools/get-stats.js.map +1 -0
- package/dist/tools/get-type-info.d.ts +33 -0
- package/dist/tools/get-type-info.js +69 -0
- package/dist/tools/get-type-info.js.map +1 -0
- package/dist/tools/goto-definition.d.ts +33 -0
- package/dist/tools/goto-definition.js +77 -0
- package/dist/tools/goto-definition.js.map +1 -0
- package/dist/tools/natural-language-query.d.ts +23 -0
- package/dist/tools/natural-language-query.js +426 -0
- package/dist/tools/natural-language-query.js.map +1 -0
- package/dist/tools/reindex.d.ts +15 -0
- package/dist/tools/reindex.js +20 -0
- package/dist/tools/reindex.js.map +1 -0
- package/dist/tools/semantic-diff.d.ts +32 -0
- package/dist/tools/semantic-diff.js +407 -0
- package/dist/tools/semantic-diff.js.map +1 -0
- package/dist/utils/logger.d.ts +6 -0
- package/dist/utils/logger.js +15 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +68 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { readFileSync } from "fs";
|
|
2
|
+
export const gotoDefinitionTool = {
|
|
3
|
+
name: "goto_definition",
|
|
4
|
+
description: "Go to the definition of a symbol at a specific position in a file. Uses LSP for precise type-aware resolution — resolves through imports, type aliases, and inheritance.",
|
|
5
|
+
inputSchema: {
|
|
6
|
+
type: "object",
|
|
7
|
+
properties: {
|
|
8
|
+
file_path: {
|
|
9
|
+
type: "string",
|
|
10
|
+
description: "Absolute path to the file",
|
|
11
|
+
},
|
|
12
|
+
line: {
|
|
13
|
+
type: "number",
|
|
14
|
+
description: "Line number (1-based)",
|
|
15
|
+
},
|
|
16
|
+
character: {
|
|
17
|
+
type: "number",
|
|
18
|
+
description: "Column number (0-based)",
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
required: ["file_path", "line", "character"],
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
export async function handleGotoDefinition(lspManager, args) {
|
|
25
|
+
const client = lspManager.getClientForFile(args.file_path);
|
|
26
|
+
if (!client) {
|
|
27
|
+
return {
|
|
28
|
+
content: [
|
|
29
|
+
{
|
|
30
|
+
type: "text",
|
|
31
|
+
text: `No LSP server available for ${args.file_path}. LSP features require a running language server.`,
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
const locations = await client.getDefinition(args.file_path, args.line, args.character);
|
|
37
|
+
if (locations.length === 0) {
|
|
38
|
+
return {
|
|
39
|
+
content: [
|
|
40
|
+
{
|
|
41
|
+
type: "text",
|
|
42
|
+
text: `No definition found at ${args.file_path}:${args.line}:${args.character}`,
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
const results = locations.map((loc) => {
|
|
48
|
+
const filePath = loc.uri.replace("file://", "");
|
|
49
|
+
let context = "";
|
|
50
|
+
try {
|
|
51
|
+
const lines = readFileSync(filePath, "utf-8").split("\n");
|
|
52
|
+
const startLine = Math.max(0, loc.line - 2);
|
|
53
|
+
const endLine = Math.min(lines.length, loc.line + 3);
|
|
54
|
+
context = lines
|
|
55
|
+
.slice(startLine, endLine)
|
|
56
|
+
.map((l, i) => {
|
|
57
|
+
const lineNum = startLine + i + 1;
|
|
58
|
+
const marker = lineNum === loc.line ? " >>>" : " ";
|
|
59
|
+
return `${marker} ${lineNum}: ${l}`;
|
|
60
|
+
})
|
|
61
|
+
.join("\n");
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
// ignore read errors
|
|
65
|
+
}
|
|
66
|
+
return `${filePath}:${loc.line}:${loc.character}\n${context}`;
|
|
67
|
+
});
|
|
68
|
+
return {
|
|
69
|
+
content: [
|
|
70
|
+
{
|
|
71
|
+
type: "text",
|
|
72
|
+
text: `Definition(s) found:\n\n${results.join("\n\n")}`,
|
|
73
|
+
},
|
|
74
|
+
],
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=goto-definition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"goto-definition.js","sourceRoot":"","sources":["../../src/tools/goto-definition.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { CodeGraph } from "../graph/code-graph.js";
|
|
2
|
+
export declare const naturalLanguageQueryTool: {
|
|
3
|
+
name: string;
|
|
4
|
+
description: string;
|
|
5
|
+
inputSchema: {
|
|
6
|
+
type: "object";
|
|
7
|
+
properties: {
|
|
8
|
+
query: {
|
|
9
|
+
type: string;
|
|
10
|
+
description: string;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
required: string[];
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
export declare function handleNaturalLanguageQuery(graph: CodeGraph, args: {
|
|
17
|
+
query: string;
|
|
18
|
+
}): {
|
|
19
|
+
content: {
|
|
20
|
+
type: "text";
|
|
21
|
+
text: string;
|
|
22
|
+
}[];
|
|
23
|
+
};
|
|
@@ -0,0 +1,426 @@
|
|
|
1
|
+
export const naturalLanguageQueryTool = {
|
|
2
|
+
name: "query_codebase",
|
|
3
|
+
description: "Answer natural language questions about the codebase structure. Examples: 'Find all API endpoints', 'Show the auth flow', 'What modules depend on the database layer?', 'List all exported classes', 'What does the orders module do?'. Translates questions into graph queries.",
|
|
4
|
+
inputSchema: {
|
|
5
|
+
type: "object",
|
|
6
|
+
properties: {
|
|
7
|
+
query: {
|
|
8
|
+
type: "string",
|
|
9
|
+
description: "Natural language question about the codebase",
|
|
10
|
+
},
|
|
11
|
+
},
|
|
12
|
+
required: ["query"],
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
export function handleNaturalLanguageQuery(graph, args) {
|
|
16
|
+
const query = args.query.toLowerCase().trim();
|
|
17
|
+
const intent = classifyIntent(query);
|
|
18
|
+
const db = graph.getDb();
|
|
19
|
+
let text;
|
|
20
|
+
switch (intent.type) {
|
|
21
|
+
case "find_endpoints":
|
|
22
|
+
text = findEndpoints(db);
|
|
23
|
+
break;
|
|
24
|
+
case "find_classes":
|
|
25
|
+
text = findByKind(db, "class", intent.target);
|
|
26
|
+
break;
|
|
27
|
+
case "find_functions":
|
|
28
|
+
text = findByKind(db, "function", intent.target);
|
|
29
|
+
break;
|
|
30
|
+
case "find_interfaces":
|
|
31
|
+
text = findByKind(db, "interface", intent.target);
|
|
32
|
+
break;
|
|
33
|
+
case "find_exports":
|
|
34
|
+
text = findExports(db, intent.target);
|
|
35
|
+
break;
|
|
36
|
+
case "dependency_of":
|
|
37
|
+
text = dependencyOf(graph, intent.target);
|
|
38
|
+
break;
|
|
39
|
+
case "dependents_of":
|
|
40
|
+
text = dependentsOf(graph, intent.target);
|
|
41
|
+
break;
|
|
42
|
+
case "module_summary":
|
|
43
|
+
text = moduleSummary(db, intent.target);
|
|
44
|
+
break;
|
|
45
|
+
case "entry_points":
|
|
46
|
+
text = findEntryPoints(db);
|
|
47
|
+
break;
|
|
48
|
+
case "largest_files":
|
|
49
|
+
text = findLargestFiles(db);
|
|
50
|
+
break;
|
|
51
|
+
case "symbol_search":
|
|
52
|
+
text = symbolSearch(graph, intent.target ?? query);
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
content: [{ type: "text", text }],
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
function classifyIntent(query) {
|
|
60
|
+
// Endpoints / routes / API
|
|
61
|
+
if (/\b(endpoint|route|api|handler|controller)\b/.test(query)) {
|
|
62
|
+
return { type: "find_endpoints" };
|
|
63
|
+
}
|
|
64
|
+
// Classes
|
|
65
|
+
if (/\b(class|classes)\b/.test(query) && !/depend/.test(query)) {
|
|
66
|
+
const target = extractTarget(query);
|
|
67
|
+
return { type: "find_classes", target };
|
|
68
|
+
}
|
|
69
|
+
// Interfaces
|
|
70
|
+
if (/\b(interface|interfaces|contract)\b/.test(query)) {
|
|
71
|
+
const target = extractTarget(query);
|
|
72
|
+
return { type: "find_interfaces", target };
|
|
73
|
+
}
|
|
74
|
+
// Functions
|
|
75
|
+
if (/\b(function|functions|method|methods)\b/.test(query) && !/depend/.test(query)) {
|
|
76
|
+
const target = extractTarget(query);
|
|
77
|
+
return { type: "find_functions", target };
|
|
78
|
+
}
|
|
79
|
+
// Exports
|
|
80
|
+
if (/\b(export|exports|public api)\b/.test(query)) {
|
|
81
|
+
const target = extractTarget(query);
|
|
82
|
+
return { type: "find_exports", target };
|
|
83
|
+
}
|
|
84
|
+
// Dependency / imports: "what does X depend on" / "what does X import"
|
|
85
|
+
if (/\b(depend on|depends on|import|imports from|uses)\b/.test(query)) {
|
|
86
|
+
const target = extractTarget(query);
|
|
87
|
+
if (target)
|
|
88
|
+
return { type: "dependency_of", target };
|
|
89
|
+
}
|
|
90
|
+
// Dependents: "what depends on X" / "who uses X" / "what references X"
|
|
91
|
+
if (/\b(depends on|depend on|who uses|what uses|references|consumers of|callers of)\b/.test(query)) {
|
|
92
|
+
const target = extractAfter(query, /(?:depends? on|who uses|what uses|references|consumers of|callers of)\s+/);
|
|
93
|
+
if (target)
|
|
94
|
+
return { type: "dependents_of", target };
|
|
95
|
+
}
|
|
96
|
+
// Module summary: "what does X do" / "describe X" / "summarize X"
|
|
97
|
+
if (/\b(what does|describe|summarize|overview|about)\b/.test(query)) {
|
|
98
|
+
const target = extractTarget(query);
|
|
99
|
+
if (target)
|
|
100
|
+
return { type: "module_summary", target };
|
|
101
|
+
}
|
|
102
|
+
// Entry points
|
|
103
|
+
if (/\b(entry point|main|entrypoint|start)\b/.test(query)) {
|
|
104
|
+
return { type: "entry_points" };
|
|
105
|
+
}
|
|
106
|
+
// Largest / most complex
|
|
107
|
+
if (/\b(largest|biggest|most complex|most symbols)\b/.test(query)) {
|
|
108
|
+
return { type: "largest_files" };
|
|
109
|
+
}
|
|
110
|
+
// Fallback: symbol search
|
|
111
|
+
const target = extractTarget(query);
|
|
112
|
+
return { type: "symbol_search", target: target || query };
|
|
113
|
+
}
|
|
114
|
+
function extractTarget(query) {
|
|
115
|
+
// Try to extract a meaningful target from the query
|
|
116
|
+
// Look for quoted strings first
|
|
117
|
+
const quoted = query.match(/["'`]([^"'`]+)["'`]/);
|
|
118
|
+
if (quoted)
|
|
119
|
+
return quoted[1];
|
|
120
|
+
// Look for file-like patterns
|
|
121
|
+
const fileLike = query.match(/\b([\w/.-]+\.\w+)\b/);
|
|
122
|
+
if (fileLike)
|
|
123
|
+
return fileLike[1];
|
|
124
|
+
// Look for CamelCase or specific identifiers
|
|
125
|
+
const camel = query.match(/\b([A-Z][a-zA-Z0-9]+)\b/);
|
|
126
|
+
if (camel)
|
|
127
|
+
return camel[1];
|
|
128
|
+
// Try to extract noun after common prepositions
|
|
129
|
+
const afterPrep = query.match(/(?:in|from|of|about|the)\s+(\w+)/);
|
|
130
|
+
if (afterPrep)
|
|
131
|
+
return afterPrep[1];
|
|
132
|
+
return undefined;
|
|
133
|
+
}
|
|
134
|
+
function extractAfter(query, pattern) {
|
|
135
|
+
const match = query.match(pattern);
|
|
136
|
+
if (!match)
|
|
137
|
+
return undefined;
|
|
138
|
+
const rest = query.substring(match.index + match[0].length).trim();
|
|
139
|
+
// Take the first word or quoted string
|
|
140
|
+
const quoted = rest.match(/^["'`]([^"'`]+)["'`]/);
|
|
141
|
+
if (quoted)
|
|
142
|
+
return quoted[1];
|
|
143
|
+
const word = rest.match(/^([\w./-]+)/);
|
|
144
|
+
return word?.[1];
|
|
145
|
+
}
|
|
146
|
+
function findEndpoints(db) {
|
|
147
|
+
// Look for common endpoint patterns: route handlers, HTTP methods, decorators
|
|
148
|
+
const patterns = [
|
|
149
|
+
"app.get", "app.post", "app.put", "app.delete", "app.patch",
|
|
150
|
+
"router.get", "router.post", "router.put", "router.delete",
|
|
151
|
+
"GET", "POST", "PUT", "DELETE", "PATCH",
|
|
152
|
+
"RequestMapping", "GetMapping", "PostMapping",
|
|
153
|
+
"handle", "handler", "endpoint",
|
|
154
|
+
];
|
|
155
|
+
const results = [];
|
|
156
|
+
// Search for handler-like functions
|
|
157
|
+
const handlerRows = db.prepare(`
|
|
158
|
+
SELECT s.name, s.kind, f.path as file, s.line_start as line, s.signature as sig
|
|
159
|
+
FROM symbols s
|
|
160
|
+
JOIN files f ON s.file_id = f.id
|
|
161
|
+
WHERE (s.name LIKE '%handler%' OR s.name LIKE '%Handler%'
|
|
162
|
+
OR s.name LIKE '%endpoint%' OR s.name LIKE '%Endpoint%'
|
|
163
|
+
OR s.name LIKE '%route%' OR s.name LIKE '%Route%'
|
|
164
|
+
OR s.name LIKE '%controller%' OR s.name LIKE '%Controller%')
|
|
165
|
+
AND s.kind IN ('function', 'method', 'class')
|
|
166
|
+
ORDER BY f.path, s.line_start
|
|
167
|
+
LIMIT 50
|
|
168
|
+
`).all();
|
|
169
|
+
results.push(...handlerRows);
|
|
170
|
+
// Search for HTTP method references
|
|
171
|
+
const refRows = db.prepare(`
|
|
172
|
+
SELECT DISTINCT s.name, s.kind, f.path as file, s.line_start as line, s.signature as sig
|
|
173
|
+
FROM references_ r
|
|
174
|
+
JOIN symbols s ON r.from_symbol_id = s.id
|
|
175
|
+
JOIN files f ON s.file_id = f.id
|
|
176
|
+
WHERE r.to_symbol_bare_name IN ('get', 'post', 'put', 'delete', 'patch')
|
|
177
|
+
AND r.kind = 'call'
|
|
178
|
+
ORDER BY f.path, s.line_start
|
|
179
|
+
LIMIT 50
|
|
180
|
+
`).all();
|
|
181
|
+
results.push(...refRows);
|
|
182
|
+
if (results.length === 0) {
|
|
183
|
+
return "No API endpoints or route handlers found in the indexed codebase.";
|
|
184
|
+
}
|
|
185
|
+
const lines = ["# API Endpoints & Handlers\n"];
|
|
186
|
+
const seen = new Set();
|
|
187
|
+
for (const r of results) {
|
|
188
|
+
const key = `${r.file}:${r.line}:${r.name}`;
|
|
189
|
+
if (seen.has(key))
|
|
190
|
+
continue;
|
|
191
|
+
seen.add(key);
|
|
192
|
+
const sig = r.sig ? ` -- \`${r.sig}\`` : "";
|
|
193
|
+
lines.push(`- **${r.name}** (${r.kind}) in \`${r.file}:${r.line}\`${sig}`);
|
|
194
|
+
}
|
|
195
|
+
return lines.join("\n");
|
|
196
|
+
}
|
|
197
|
+
function findByKind(db, kind, target) {
|
|
198
|
+
const filter = target
|
|
199
|
+
? `AND (s.name LIKE ? OR f.path LIKE ?)`
|
|
200
|
+
: "";
|
|
201
|
+
const params = [kind];
|
|
202
|
+
if (target) {
|
|
203
|
+
params.push(`%${target}%`, `%${target}%`);
|
|
204
|
+
}
|
|
205
|
+
const rows = db.prepare(`
|
|
206
|
+
SELECT s.name, s.kind, f.path as file, s.line_start as line, s.signature as sig, s.is_exported as exported
|
|
207
|
+
FROM symbols s
|
|
208
|
+
JOIN files f ON s.file_id = f.id
|
|
209
|
+
WHERE s.kind = ? ${filter}
|
|
210
|
+
ORDER BY s.is_exported DESC, f.path, s.line_start
|
|
211
|
+
LIMIT 50
|
|
212
|
+
`).all(...params);
|
|
213
|
+
if (rows.length === 0) {
|
|
214
|
+
return target
|
|
215
|
+
? `No ${kind}s found matching "${target}".`
|
|
216
|
+
: `No ${kind}s found in the indexed codebase.`;
|
|
217
|
+
}
|
|
218
|
+
const label = kind.charAt(0).toUpperCase() + kind.slice(1);
|
|
219
|
+
const lines = [`# ${label}s${target ? ` matching "${target}"` : ""}\n`];
|
|
220
|
+
for (const r of rows) {
|
|
221
|
+
const exp = r.exported ? " (exported)" : "";
|
|
222
|
+
const sig = r.sig ? ` -- \`${r.sig}\`` : "";
|
|
223
|
+
lines.push(`- **${r.name}**${exp} in \`${r.file}:${r.line}\`${sig}`);
|
|
224
|
+
}
|
|
225
|
+
return lines.join("\n");
|
|
226
|
+
}
|
|
227
|
+
function findExports(db, target) {
|
|
228
|
+
const filter = target ? `AND f.path LIKE ?` : "";
|
|
229
|
+
const params = [];
|
|
230
|
+
if (target)
|
|
231
|
+
params.push(`%${target}%`);
|
|
232
|
+
const rows = db.prepare(`
|
|
233
|
+
SELECT s.name, s.kind, f.path as file, s.line_start as line, s.signature as sig
|
|
234
|
+
FROM symbols s
|
|
235
|
+
JOIN files f ON s.file_id = f.id
|
|
236
|
+
WHERE s.is_exported = 1 ${filter}
|
|
237
|
+
ORDER BY f.path, s.line_start
|
|
238
|
+
LIMIT 100
|
|
239
|
+
`).all(...params);
|
|
240
|
+
if (rows.length === 0) {
|
|
241
|
+
return target
|
|
242
|
+
? `No exports found in files matching "${target}".`
|
|
243
|
+
: "No exported symbols found.";
|
|
244
|
+
}
|
|
245
|
+
const lines = [`# Exported Symbols${target ? ` (${target})` : ""}\n`];
|
|
246
|
+
// Group by file
|
|
247
|
+
const byFile = new Map();
|
|
248
|
+
for (const r of rows) {
|
|
249
|
+
const list = byFile.get(r.file) ?? [];
|
|
250
|
+
list.push(r);
|
|
251
|
+
byFile.set(r.file, list);
|
|
252
|
+
}
|
|
253
|
+
for (const [file, symbols] of byFile) {
|
|
254
|
+
lines.push(`## ${file}`);
|
|
255
|
+
for (const s of symbols) {
|
|
256
|
+
const sig = s.sig ? ` -- \`${s.sig}\`` : "";
|
|
257
|
+
lines.push(` - ${s.kind} **${s.name}**${sig}`);
|
|
258
|
+
}
|
|
259
|
+
lines.push("");
|
|
260
|
+
}
|
|
261
|
+
return lines.join("\n");
|
|
262
|
+
}
|
|
263
|
+
function dependencyOf(graph, target) {
|
|
264
|
+
const db = graph.getDb();
|
|
265
|
+
// Find files matching the target
|
|
266
|
+
const files = db.prepare(`
|
|
267
|
+
SELECT f.path, i.source_path as importSource, i.imported_name as importedName
|
|
268
|
+
FROM files f
|
|
269
|
+
JOIN imports i ON i.file_id = f.id
|
|
270
|
+
WHERE f.path LIKE ?
|
|
271
|
+
ORDER BY f.path, i.line
|
|
272
|
+
LIMIT 100
|
|
273
|
+
`).all(`%${target}%`);
|
|
274
|
+
if (files.length === 0) {
|
|
275
|
+
return `No imports found for files matching "${target}". The file may not import anything or may not be indexed.`;
|
|
276
|
+
}
|
|
277
|
+
const lines = [`# Dependencies of "${target}"\n`];
|
|
278
|
+
const byFile = new Map();
|
|
279
|
+
for (const r of files) {
|
|
280
|
+
const list = byFile.get(r.path) ?? [];
|
|
281
|
+
list.push({ source: r.importSource, name: r.importedName });
|
|
282
|
+
byFile.set(r.path, list);
|
|
283
|
+
}
|
|
284
|
+
for (const [file, deps] of byFile) {
|
|
285
|
+
lines.push(`## ${file}`);
|
|
286
|
+
for (const d of deps) {
|
|
287
|
+
lines.push(` - \`${d.name}\` from \`${d.source}\``);
|
|
288
|
+
}
|
|
289
|
+
lines.push("");
|
|
290
|
+
}
|
|
291
|
+
return lines.join("\n");
|
|
292
|
+
}
|
|
293
|
+
function dependentsOf(graph, target) {
|
|
294
|
+
const refs = graph.getReferences(target, 2);
|
|
295
|
+
if (refs.length === 0) {
|
|
296
|
+
return `No dependents found for "${target}". It may not be referenced by other symbols.`;
|
|
297
|
+
}
|
|
298
|
+
const lines = [`# Dependents of "${target}"\n`];
|
|
299
|
+
const byFile = new Map();
|
|
300
|
+
for (const r of refs) {
|
|
301
|
+
const list = byFile.get(r.fromFile) ?? [];
|
|
302
|
+
list.push(r);
|
|
303
|
+
byFile.set(r.fromFile, list);
|
|
304
|
+
}
|
|
305
|
+
for (const [file, fileRefs] of byFile) {
|
|
306
|
+
lines.push(`## ${file}`);
|
|
307
|
+
for (const r of fileRefs) {
|
|
308
|
+
lines.push(` - **${r.fromSymbol}** (${r.fromKind}) --[${r.refKind}]--> ${r.toSymbol} (line ${r.refLine})`);
|
|
309
|
+
}
|
|
310
|
+
lines.push("");
|
|
311
|
+
}
|
|
312
|
+
lines.push(`\n**${refs.length} total references across ${byFile.size} files**`);
|
|
313
|
+
return lines.join("\n");
|
|
314
|
+
}
|
|
315
|
+
function moduleSummary(db, target) {
|
|
316
|
+
if (!target)
|
|
317
|
+
return "Please specify a module or file to summarize.";
|
|
318
|
+
// Find matching files
|
|
319
|
+
const files = db.prepare(`
|
|
320
|
+
SELECT id, path FROM files WHERE path LIKE ? LIMIT 10
|
|
321
|
+
`).all(`%${target}%`);
|
|
322
|
+
if (files.length === 0) {
|
|
323
|
+
return `No files found matching "${target}".`;
|
|
324
|
+
}
|
|
325
|
+
const lines = [`# Module Summary: "${target}"\n`];
|
|
326
|
+
for (const file of files) {
|
|
327
|
+
const symbols = db.prepare(`
|
|
328
|
+
SELECT name, kind, line_start as line, signature as sig, is_exported as exported
|
|
329
|
+
FROM symbols WHERE file_id = ?
|
|
330
|
+
ORDER BY line_start
|
|
331
|
+
`).all(file.id);
|
|
332
|
+
const imports = db.prepare(`
|
|
333
|
+
SELECT source_path as source, imported_name as name FROM imports WHERE file_id = ?
|
|
334
|
+
`).all(file.id);
|
|
335
|
+
lines.push(`## ${file.path}`);
|
|
336
|
+
if (imports.length > 0) {
|
|
337
|
+
lines.push(`\n**Imports:** ${imports.map((i) => `\`${i.name}\` from \`${i.source}\``).join(", ")}`);
|
|
338
|
+
}
|
|
339
|
+
const exported = symbols.filter((s) => s.exported);
|
|
340
|
+
const internal = symbols.filter((s) => !s.exported);
|
|
341
|
+
if (exported.length > 0) {
|
|
342
|
+
lines.push(`\n**Exports (${exported.length}):**`);
|
|
343
|
+
for (const s of exported) {
|
|
344
|
+
const sig = s.sig ? ` -- \`${s.sig}\`` : "";
|
|
345
|
+
lines.push(` - ${s.kind} **${s.name}**${sig}`);
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
if (internal.length > 0) {
|
|
349
|
+
lines.push(`\n**Internal (${internal.length}):**`);
|
|
350
|
+
for (const s of internal) {
|
|
351
|
+
lines.push(` - ${s.kind} ${s.name}`);
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
lines.push("");
|
|
355
|
+
}
|
|
356
|
+
return lines.join("\n");
|
|
357
|
+
}
|
|
358
|
+
function findEntryPoints(db) {
|
|
359
|
+
// Entry points: main functions, index files, files with no importers
|
|
360
|
+
const mainFuncs = db.prepare(`
|
|
361
|
+
SELECT s.name, s.kind, f.path as file, s.line_start as line
|
|
362
|
+
FROM symbols s
|
|
363
|
+
JOIN files f ON s.file_id = f.id
|
|
364
|
+
WHERE s.name IN ('main', 'Main', 'run', 'start', 'init', 'bootstrap', 'setup')
|
|
365
|
+
AND s.kind IN ('function', 'method')
|
|
366
|
+
ORDER BY f.path
|
|
367
|
+
LIMIT 20
|
|
368
|
+
`).all();
|
|
369
|
+
const indexFiles = db.prepare(`
|
|
370
|
+
SELECT path FROM files
|
|
371
|
+
WHERE path LIKE '%/index.%' OR path LIKE '%/main.%' OR path LIKE '%/app.%' OR path LIKE '%/server.%'
|
|
372
|
+
ORDER BY path
|
|
373
|
+
LIMIT 20
|
|
374
|
+
`).all();
|
|
375
|
+
const lines = ["# Entry Points\n"];
|
|
376
|
+
if (mainFuncs.length > 0) {
|
|
377
|
+
lines.push("## Main Functions");
|
|
378
|
+
for (const f of mainFuncs) {
|
|
379
|
+
lines.push(` - **${f.name}** (${f.kind}) in \`${f.file}:${f.line}\``);
|
|
380
|
+
}
|
|
381
|
+
lines.push("");
|
|
382
|
+
}
|
|
383
|
+
if (indexFiles.length > 0) {
|
|
384
|
+
lines.push("## Entry Files");
|
|
385
|
+
for (const f of indexFiles) {
|
|
386
|
+
lines.push(` - \`${f.path}\``);
|
|
387
|
+
}
|
|
388
|
+
lines.push("");
|
|
389
|
+
}
|
|
390
|
+
if (mainFuncs.length === 0 && indexFiles.length === 0) {
|
|
391
|
+
return "No obvious entry points found. Look for files named main.*, index.*, app.*, or functions named main/run/start.";
|
|
392
|
+
}
|
|
393
|
+
return lines.join("\n");
|
|
394
|
+
}
|
|
395
|
+
function findLargestFiles(db) {
|
|
396
|
+
const rows = db.prepare(`
|
|
397
|
+
SELECT f.path, COUNT(s.id) as symbolCount
|
|
398
|
+
FROM files f
|
|
399
|
+
LEFT JOIN symbols s ON s.file_id = f.id
|
|
400
|
+
GROUP BY f.id
|
|
401
|
+
ORDER BY symbolCount DESC
|
|
402
|
+
LIMIT 20
|
|
403
|
+
`).all();
|
|
404
|
+
if (rows.length === 0) {
|
|
405
|
+
return "No files indexed yet.";
|
|
406
|
+
}
|
|
407
|
+
const lines = ["# Largest Files by Symbol Count\n"];
|
|
408
|
+
for (const r of rows) {
|
|
409
|
+
lines.push(`- **${r.symbolCount}** symbols -- \`${r.path}\``);
|
|
410
|
+
}
|
|
411
|
+
return lines.join("\n");
|
|
412
|
+
}
|
|
413
|
+
function symbolSearch(graph, target) {
|
|
414
|
+
const results = graph.findSymbols({ name: target, limit: 30 });
|
|
415
|
+
if (results.length === 0) {
|
|
416
|
+
return `No symbols found matching "${target}". Try a different search term or run reindex.`;
|
|
417
|
+
}
|
|
418
|
+
const lines = [`# Symbols matching "${target}"\n`];
|
|
419
|
+
for (const r of results) {
|
|
420
|
+
const sig = r.signature ? ` -- \`${r.signature}\`` : "";
|
|
421
|
+
const exp = r.isExported ? " (exported)" : "";
|
|
422
|
+
lines.push(`- ${r.kind} **${r.name}**${exp} in \`${r.filePath}:${r.lineStart}\`${sig}`);
|
|
423
|
+
}
|
|
424
|
+
return lines.join("\n");
|
|
425
|
+
}
|
|
426
|
+
//# sourceMappingURL=natural-language-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"natural-language-query.js","sourceRoot":"","sources":["../../src/tools/natural-language-query.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { FileWatcher } from "../indexer/file-watcher.js";
|
|
2
|
+
export declare const reindexTool: {
|
|
3
|
+
name: string;
|
|
4
|
+
description: string;
|
|
5
|
+
inputSchema: {
|
|
6
|
+
type: "object";
|
|
7
|
+
properties: {};
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
export declare function handleReindex(watcher: FileWatcher): Promise<{
|
|
11
|
+
content: {
|
|
12
|
+
type: "text";
|
|
13
|
+
text: string;
|
|
14
|
+
}[];
|
|
15
|
+
}>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export const reindexTool = {
|
|
2
|
+
name: "reindex",
|
|
3
|
+
description: "Trigger a full re-index of the codebase. Useful after major changes or when results seem stale.",
|
|
4
|
+
inputSchema: {
|
|
5
|
+
type: "object",
|
|
6
|
+
properties: {},
|
|
7
|
+
},
|
|
8
|
+
};
|
|
9
|
+
export async function handleReindex(watcher) {
|
|
10
|
+
await watcher.initialIndex();
|
|
11
|
+
return {
|
|
12
|
+
content: [
|
|
13
|
+
{
|
|
14
|
+
type: "text",
|
|
15
|
+
text: "Re-indexing complete.",
|
|
16
|
+
},
|
|
17
|
+
],
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=reindex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reindex.js","sourceRoot":"","sources":["../../src/tools/reindex.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,iGAAiG;IAC9G,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE,EAAE;KACf;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAoB;IACtD,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC;IAE7B,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,uBAAuB;aAC9B;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { CodeGraph } from "../graph/code-graph.js";
|
|
2
|
+
export declare const semanticDiffTool: {
|
|
3
|
+
name: string;
|
|
4
|
+
description: string;
|
|
5
|
+
inputSchema: {
|
|
6
|
+
type: "object";
|
|
7
|
+
properties: {
|
|
8
|
+
git_ref: {
|
|
9
|
+
type: string;
|
|
10
|
+
description: string;
|
|
11
|
+
};
|
|
12
|
+
diff: {
|
|
13
|
+
type: string;
|
|
14
|
+
description: string;
|
|
15
|
+
};
|
|
16
|
+
depth: {
|
|
17
|
+
type: string;
|
|
18
|
+
description: string;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
export declare function handleSemanticDiff(graph: CodeGraph, args: {
|
|
24
|
+
diff?: string;
|
|
25
|
+
git_ref?: string;
|
|
26
|
+
depth?: number;
|
|
27
|
+
}, projectRoot?: string): {
|
|
28
|
+
content: {
|
|
29
|
+
type: "text";
|
|
30
|
+
text: string;
|
|
31
|
+
}[];
|
|
32
|
+
};
|