@colbymchenry/codegraph 0.3.1 → 0.5.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.
- package/LICENSE +21 -21
- package/README.md +681 -641
- package/dist/bin/codegraph.d.ts +7 -2
- package/dist/bin/codegraph.d.ts.map +1 -1
- package/dist/bin/codegraph.js +360 -140
- package/dist/bin/codegraph.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +43 -10
- package/dist/config.js.map +1 -1
- package/dist/context/index.d.ts +17 -4
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/index.js +182 -15
- package/dist/context/index.js.map +1 -1
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +21 -0
- package/dist/db/index.js.map +1 -1
- package/dist/db/migrations.d.ts +1 -1
- package/dist/db/migrations.d.ts.map +1 -1
- package/dist/db/migrations.js +19 -12
- package/dist/db/migrations.js.map +1 -1
- package/dist/db/queries.d.ts +32 -1
- package/dist/db/queries.d.ts.map +1 -1
- package/dist/db/queries.js +271 -118
- package/dist/db/queries.js.map +1 -1
- package/dist/db/schema.sql +163 -149
- package/dist/directory.d.ts +13 -1
- package/dist/directory.d.ts.map +1 -1
- package/dist/directory.js +85 -19
- package/dist/directory.js.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +7 -1
- package/dist/errors.js.map +1 -1
- package/dist/extraction/grammars.d.ts +9 -4
- package/dist/extraction/grammars.d.ts.map +1 -1
- package/dist/extraction/grammars.js +133 -65
- package/dist/extraction/grammars.js.map +1 -1
- package/dist/extraction/index.d.ts +6 -0
- package/dist/extraction/index.d.ts.map +1 -1
- package/dist/extraction/index.js +209 -44
- package/dist/extraction/index.js.map +1 -1
- package/dist/extraction/tree-sitter.d.ts +67 -0
- package/dist/extraction/tree-sitter.d.ts.map +1 -1
- package/dist/extraction/tree-sitter.js +980 -38
- package/dist/extraction/tree-sitter.js.map +1 -1
- package/dist/graph/traversal.d.ts.map +1 -1
- package/dist/graph/traversal.js +6 -2
- package/dist/graph/traversal.js.map +1 -1
- package/dist/index.d.ts +6 -38
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +91 -73
- package/dist/index.js.map +1 -1
- package/dist/installer/banner.js +7 -7
- package/dist/installer/claude-md-template.js +32 -32
- package/dist/installer/config-writer.d.ts +9 -0
- package/dist/installer/config-writer.d.ts.map +1 -1
- package/dist/installer/config-writer.js +126 -17
- package/dist/installer/config-writer.js.map +1 -1
- package/dist/installer/index.d.ts.map +1 -1
- package/dist/installer/index.js +11 -9
- package/dist/installer/index.js.map +1 -1
- package/dist/mcp/index.d.ts +14 -3
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +109 -29
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/tools.d.ts +66 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +442 -49
- package/dist/mcp/tools.js.map +1 -1
- package/dist/mcp/transport.d.ts.map +1 -1
- package/dist/mcp/transport.js +2 -0
- package/dist/mcp/transport.js.map +1 -1
- package/dist/resolution/frameworks/index.d.ts +1 -0
- package/dist/resolution/frameworks/index.d.ts.map +1 -1
- package/dist/resolution/frameworks/index.js +5 -1
- package/dist/resolution/frameworks/index.js.map +1 -1
- package/dist/resolution/frameworks/svelte.d.ts +9 -0
- package/dist/resolution/frameworks/svelte.d.ts.map +1 -0
- package/dist/resolution/frameworks/svelte.js +268 -0
- package/dist/resolution/frameworks/svelte.js.map +1 -0
- package/dist/resolution/import-resolver.d.ts.map +1 -1
- package/dist/resolution/import-resolver.js +3 -4
- package/dist/resolution/import-resolver.js.map +1 -1
- package/dist/resolution/index.d.ts +15 -2
- package/dist/resolution/index.d.ts.map +1 -1
- package/dist/resolution/index.js +153 -13
- package/dist/resolution/index.js.map +1 -1
- package/dist/resolution/name-matcher.d.ts.map +1 -1
- package/dist/resolution/name-matcher.js +7 -20
- package/dist/resolution/name-matcher.js.map +1 -1
- package/dist/resolution/types.d.ts +4 -0
- package/dist/resolution/types.d.ts.map +1 -1
- package/dist/search/query-utils.d.ts +25 -0
- package/dist/search/query-utils.d.ts.map +1 -0
- package/dist/search/query-utils.js +124 -0
- package/dist/search/query-utils.js.map +1 -0
- package/dist/sentry.d.ts +22 -0
- package/dist/sentry.d.ts.map +1 -0
- package/dist/sentry.js +159 -0
- package/dist/sentry.js.map +1 -0
- package/dist/sync/index.d.ts +4 -2
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/index.js +3 -5
- package/dist/sync/index.js.map +1 -1
- package/dist/types.d.ts +7 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +13 -0
- package/dist/types.js.map +1 -1
- package/dist/utils.d.ts +89 -2
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +252 -3
- package/dist/utils.js.map +1 -1
- package/dist/vectors/embedder.d.ts +1 -1
- package/dist/vectors/embedder.d.ts.map +1 -1
- package/dist/vectors/embedder.js +2 -2
- package/dist/vectors/embedder.js.map +1 -1
- package/dist/vectors/search.d.ts.map +1 -1
- package/dist/vectors/search.js +33 -32
- package/dist/vectors/search.js.map +1 -1
- package/package.json +74 -67
- package/scripts/patch-tree-sitter-dart.js +112 -0
- package/scripts/postinstall.js +71 -68
- package/dist/sync/git-hooks.d.ts +0 -66
- package/dist/sync/git-hooks.d.ts.map +0 -1
- package/dist/sync/git-hooks.js +0 -281
- package/dist/sync/git-hooks.js.map +0 -1
|
@@ -41,6 +41,8 @@ exports.writeMcpConfig = writeMcpConfig;
|
|
|
41
41
|
exports.writePermissions = writePermissions;
|
|
42
42
|
exports.hasMcpConfig = hasMcpConfig;
|
|
43
43
|
exports.hasPermissions = hasPermissions;
|
|
44
|
+
exports.hasHooks = hasHooks;
|
|
45
|
+
exports.writeHooks = writeHooks;
|
|
44
46
|
exports.hasClaudeMdSection = hasClaudeMdSection;
|
|
45
47
|
exports.writeClaudeMd = writeClaudeMd;
|
|
46
48
|
const fs = __importStar(require("fs"));
|
|
@@ -77,29 +79,59 @@ function getSettingsJsonPath(location) {
|
|
|
77
79
|
return path.join(configDir, 'settings.json');
|
|
78
80
|
}
|
|
79
81
|
/**
|
|
80
|
-
* Read a JSON file, returning an empty object if it doesn't exist
|
|
82
|
+
* Read a JSON file, returning an empty object if it doesn't exist.
|
|
83
|
+
* Distinguishes between missing files (returns {}) and corrupted
|
|
84
|
+
* files (logs warning, returns {}).
|
|
81
85
|
*/
|
|
82
86
|
function readJsonFile(filePath) {
|
|
87
|
+
if (!fs.existsSync(filePath)) {
|
|
88
|
+
return {};
|
|
89
|
+
}
|
|
83
90
|
try {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
return JSON.parse(content);
|
|
87
|
-
}
|
|
91
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
92
|
+
return JSON.parse(content);
|
|
88
93
|
}
|
|
89
|
-
catch {
|
|
90
|
-
|
|
94
|
+
catch (err) {
|
|
95
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
96
|
+
console.warn(` Warning: Could not parse ${path.basename(filePath)}: ${msg}`);
|
|
97
|
+
console.warn(` A backup will be created before overwriting.`);
|
|
98
|
+
// Create a backup of the corrupted file
|
|
99
|
+
try {
|
|
100
|
+
const backupPath = filePath + '.backup';
|
|
101
|
+
fs.copyFileSync(filePath, backupPath);
|
|
102
|
+
}
|
|
103
|
+
catch { /* ignore backup failure */ }
|
|
104
|
+
return {};
|
|
91
105
|
}
|
|
92
|
-
return {};
|
|
93
106
|
}
|
|
94
107
|
/**
|
|
95
|
-
* Write a
|
|
108
|
+
* Write a file atomically by writing to a temp file then renaming.
|
|
109
|
+
* Prevents corruption if the process crashes mid-write.
|
|
96
110
|
*/
|
|
97
|
-
function
|
|
111
|
+
function atomicWriteFileSync(filePath, content) {
|
|
98
112
|
const dir = path.dirname(filePath);
|
|
99
113
|
if (!fs.existsSync(dir)) {
|
|
100
114
|
fs.mkdirSync(dir, { recursive: true });
|
|
101
115
|
}
|
|
102
|
-
|
|
116
|
+
const tmpPath = filePath + '.tmp.' + process.pid;
|
|
117
|
+
try {
|
|
118
|
+
fs.writeFileSync(tmpPath, content);
|
|
119
|
+
fs.renameSync(tmpPath, filePath);
|
|
120
|
+
}
|
|
121
|
+
catch (err) {
|
|
122
|
+
// Clean up temp file on failure
|
|
123
|
+
try {
|
|
124
|
+
fs.unlinkSync(tmpPath);
|
|
125
|
+
}
|
|
126
|
+
catch { /* ignore */ }
|
|
127
|
+
throw err;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Write a JSON file, creating parent directories if needed
|
|
132
|
+
*/
|
|
133
|
+
function writeJsonFile(filePath, data) {
|
|
134
|
+
atomicWriteFileSync(filePath, JSON.stringify(data, null, 2) + '\n');
|
|
103
135
|
}
|
|
104
136
|
/**
|
|
105
137
|
* Get the MCP server configuration for the given location
|
|
@@ -192,6 +224,82 @@ function hasPermissions(location) {
|
|
|
192
224
|
// Check if at least one CodeGraph permission exists
|
|
193
225
|
return permissions.some((p) => p.startsWith('mcp__codegraph__'));
|
|
194
226
|
}
|
|
227
|
+
// =============================================================================
|
|
228
|
+
// Hooks Configuration
|
|
229
|
+
// =============================================================================
|
|
230
|
+
/**
|
|
231
|
+
* Get the hooks configuration for Claude Code auto-sync.
|
|
232
|
+
*
|
|
233
|
+
* PostToolUse(Edit|Write) → mark-dirty (async, non-blocking)
|
|
234
|
+
* Stop → sync-if-dirty (sync, ensures fresh index before next user turn)
|
|
235
|
+
*/
|
|
236
|
+
function getHooksConfig(location) {
|
|
237
|
+
const command = location === 'global' ? 'codegraph' : 'npx @colbymchenry/codegraph';
|
|
238
|
+
return {
|
|
239
|
+
PostToolUse: [
|
|
240
|
+
{
|
|
241
|
+
matcher: 'Edit|Write',
|
|
242
|
+
hooks: [
|
|
243
|
+
{
|
|
244
|
+
type: 'command',
|
|
245
|
+
command: `${command} mark-dirty`,
|
|
246
|
+
async: true,
|
|
247
|
+
},
|
|
248
|
+
],
|
|
249
|
+
},
|
|
250
|
+
],
|
|
251
|
+
Stop: [
|
|
252
|
+
{
|
|
253
|
+
hooks: [
|
|
254
|
+
{
|
|
255
|
+
type: 'command',
|
|
256
|
+
command: `${command} sync-if-dirty`,
|
|
257
|
+
},
|
|
258
|
+
],
|
|
259
|
+
},
|
|
260
|
+
],
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Check if Claude Code hooks already exist for CodeGraph
|
|
265
|
+
*/
|
|
266
|
+
function hasHooks(location) {
|
|
267
|
+
const settingsPath = getSettingsJsonPath(location);
|
|
268
|
+
const settings = readJsonFile(settingsPath);
|
|
269
|
+
const hooks = settings.hooks;
|
|
270
|
+
if (!hooks)
|
|
271
|
+
return false;
|
|
272
|
+
// Check if any hook command references codegraph
|
|
273
|
+
const json = JSON.stringify(hooks);
|
|
274
|
+
return json.includes('codegraph mark-dirty') || json.includes('codegraph sync-if-dirty');
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Write Claude Code hooks to settings.json for auto-sync.
|
|
278
|
+
* Merges with existing hooks, deduplicating any previous codegraph entries.
|
|
279
|
+
*/
|
|
280
|
+
function writeHooks(location) {
|
|
281
|
+
const settingsPath = getSettingsJsonPath(location);
|
|
282
|
+
const settings = readJsonFile(settingsPath);
|
|
283
|
+
if (!settings.hooks) {
|
|
284
|
+
settings.hooks = {};
|
|
285
|
+
}
|
|
286
|
+
const newHooks = getHooksConfig(location);
|
|
287
|
+
// For each hook event (PostToolUse, Stop), merge with existing entries
|
|
288
|
+
for (const [event, newEntries] of Object.entries(newHooks)) {
|
|
289
|
+
if (!Array.isArray(settings.hooks[event])) {
|
|
290
|
+
settings.hooks[event] = [];
|
|
291
|
+
}
|
|
292
|
+
// Remove any existing codegraph entries for this event
|
|
293
|
+
settings.hooks[event] = settings.hooks[event].filter((entry) => {
|
|
294
|
+
// Keep entries that don't reference codegraph
|
|
295
|
+
const entryJson = JSON.stringify(entry);
|
|
296
|
+
return !entryJson.includes('codegraph mark-dirty') && !entryJson.includes('codegraph sync-if-dirty');
|
|
297
|
+
});
|
|
298
|
+
// Add new codegraph entries
|
|
299
|
+
settings.hooks[event].push(...newEntries);
|
|
300
|
+
}
|
|
301
|
+
writeJsonFile(settingsPath, settings);
|
|
302
|
+
}
|
|
195
303
|
/**
|
|
196
304
|
* Get the path to CLAUDE.md
|
|
197
305
|
* - Global: ~/.claude/CLAUDE.md
|
|
@@ -233,7 +341,7 @@ function writeClaudeMd(location) {
|
|
|
233
341
|
// Check if file exists
|
|
234
342
|
if (!fs.existsSync(claudeMdPath)) {
|
|
235
343
|
// Create new file with just the CodeGraph section
|
|
236
|
-
|
|
344
|
+
atomicWriteFileSync(claudeMdPath, claude_md_template_1.CLAUDE_MD_TEMPLATE + '\n');
|
|
237
345
|
return { created: true, updated: false };
|
|
238
346
|
}
|
|
239
347
|
// Read existing content
|
|
@@ -248,7 +356,7 @@ function writeClaudeMd(location) {
|
|
|
248
356
|
const before = content.substring(0, startIdx);
|
|
249
357
|
const after = content.substring(endIdx + claude_md_template_1.CODEGRAPH_SECTION_END.length);
|
|
250
358
|
content = before + claude_md_template_1.CLAUDE_MD_TEMPLATE + after;
|
|
251
|
-
|
|
359
|
+
atomicWriteFileSync(claudeMdPath, content);
|
|
252
360
|
return { created: false, updated: true };
|
|
253
361
|
}
|
|
254
362
|
}
|
|
@@ -256,10 +364,11 @@ function writeClaudeMd(location) {
|
|
|
256
364
|
const codegraphHeaderRegex = /\n## CodeGraph\n/;
|
|
257
365
|
const match = content.match(codegraphHeaderRegex);
|
|
258
366
|
if (match && match.index !== undefined) {
|
|
259
|
-
// Find the end of the CodeGraph section (next
|
|
367
|
+
// Find the end of the CodeGraph section (next h2 header or end of file)
|
|
368
|
+
// Use negative lookahead (?!#) to match "## X" but not "### X"
|
|
260
369
|
const sectionStart = match.index;
|
|
261
370
|
const afterSection = content.substring(sectionStart + 1);
|
|
262
|
-
const nextHeaderMatch = afterSection.match(/\n##
|
|
371
|
+
const nextHeaderMatch = afterSection.match(/\n## (?!#)/);
|
|
263
372
|
let sectionEnd;
|
|
264
373
|
if (nextHeaderMatch && nextHeaderMatch.index !== undefined) {
|
|
265
374
|
sectionEnd = sectionStart + 1 + nextHeaderMatch.index;
|
|
@@ -271,12 +380,12 @@ function writeClaudeMd(location) {
|
|
|
271
380
|
const before = content.substring(0, sectionStart);
|
|
272
381
|
const after = content.substring(sectionEnd);
|
|
273
382
|
content = before + '\n' + claude_md_template_1.CLAUDE_MD_TEMPLATE + after;
|
|
274
|
-
|
|
383
|
+
atomicWriteFileSync(claudeMdPath, content);
|
|
275
384
|
return { created: false, updated: true };
|
|
276
385
|
}
|
|
277
386
|
// No existing section, append to end
|
|
278
387
|
content = content.trimEnd() + '\n\n' + claude_md_template_1.CLAUDE_MD_TEMPLATE + '\n';
|
|
279
|
-
|
|
388
|
+
atomicWriteFileSync(claudeMdPath, content);
|
|
280
389
|
return { created: false, updated: false };
|
|
281
390
|
}
|
|
282
391
|
//# sourceMappingURL=config-writer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-writer.js","sourceRoot":"","sources":["../../src/installer/config-writer.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"config-writer.js","sourceRoot":"","sources":["../../src/installer/config-writer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/installer/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAA0C,eAAe,EAAE,MAAM,WAAW,CAAC;AAWpF;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/installer/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAA0C,eAAe,EAAE,MAAM,WAAW,CAAC;AAWpF;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CA8FlD;AAkDD,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
package/dist/installer/index.js
CHANGED
|
@@ -74,7 +74,16 @@ async function runInstaller() {
|
|
|
74
74
|
(0, banner_1.success)(`Added permissions to ${location === 'global' ? '~/.claude/settings.json' : './.claude/settings.json'}`);
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
|
-
// Step 5: Write
|
|
77
|
+
// Step 5: Write auto-sync hooks
|
|
78
|
+
const alreadyHasHooks = (0, config_writer_1.hasHooks)(location);
|
|
79
|
+
(0, config_writer_1.writeHooks)(location);
|
|
80
|
+
if (alreadyHasHooks) {
|
|
81
|
+
(0, banner_1.success)(`Updated auto-sync hooks in ${location === 'global' ? '~/.claude/settings.json' : './.claude/settings.json'}`);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
(0, banner_1.success)(`Added auto-sync hooks to ${location === 'global' ? '~/.claude/settings.json' : './.claude/settings.json'}`);
|
|
85
|
+
}
|
|
86
|
+
// Step 6: Write CLAUDE.md instructions
|
|
78
87
|
const claudeMdResult = (0, config_writer_1.writeClaudeMd)(location);
|
|
79
88
|
const claudeMdPath = location === 'global' ? '~/.claude/CLAUDE.md' : './.claude/CLAUDE.md';
|
|
80
89
|
if (claudeMdResult.created) {
|
|
@@ -86,7 +95,7 @@ async function runInstaller() {
|
|
|
86
95
|
else {
|
|
87
96
|
(0, banner_1.success)(`Added CodeGraph instructions to ${claudeMdPath}`);
|
|
88
97
|
}
|
|
89
|
-
// Step
|
|
98
|
+
// Step 7: For local install, initialize the project
|
|
90
99
|
if (location === 'local') {
|
|
91
100
|
await initializeLocalProject();
|
|
92
101
|
}
|
|
@@ -143,13 +152,6 @@ async function initializeLocalProject() {
|
|
|
143
152
|
else {
|
|
144
153
|
(0, banner_1.success)(`Indexed ${formatNumber(result.filesIndexed)} files with ${result.errors.length} warnings`);
|
|
145
154
|
}
|
|
146
|
-
// Install git hooks if this is a git repository
|
|
147
|
-
if (cg.isGitRepository()) {
|
|
148
|
-
const hookResult = cg.installGitHooks();
|
|
149
|
-
if (hookResult.success) {
|
|
150
|
-
(0, banner_1.success)('Installed git post-commit hook');
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
155
|
cg.close();
|
|
154
156
|
}
|
|
155
157
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/installer/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;AAkBH,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/installer/index.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/index.d.ts
CHANGED
|
@@ -25,7 +25,6 @@ export declare class MCPServer {
|
|
|
25
25
|
private cg;
|
|
26
26
|
private toolHandler;
|
|
27
27
|
private projectPath;
|
|
28
|
-
private initError;
|
|
29
28
|
constructor(projectPath?: string);
|
|
30
29
|
/**
|
|
31
30
|
* Start the MCP server
|
|
@@ -35,9 +34,21 @@ export declare class MCPServer {
|
|
|
35
34
|
*/
|
|
36
35
|
start(): Promise<void>;
|
|
37
36
|
/**
|
|
38
|
-
*
|
|
37
|
+
* Try to initialize CodeGraph for the default project.
|
|
38
|
+
*
|
|
39
|
+
* Walks up parent directories to find the nearest .codegraph/ folder,
|
|
40
|
+
* similar to how git finds .git/ directories.
|
|
41
|
+
*
|
|
42
|
+
* If initialization fails, the error is recorded but the server continues
|
|
43
|
+
* to work — cross-project queries and retries on subsequent tool calls
|
|
44
|
+
* are still possible.
|
|
45
|
+
*/
|
|
46
|
+
private tryInitializeDefault;
|
|
47
|
+
/**
|
|
48
|
+
* Retry initialization of the default project if it previously failed.
|
|
49
|
+
* Called lazily on tool calls that need the default project.
|
|
39
50
|
*/
|
|
40
|
-
private
|
|
51
|
+
private retryInitIfNeeded;
|
|
41
52
|
/**
|
|
42
53
|
* Stop the server
|
|
43
54
|
*/
|
package/dist/mcp/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AA0CH;;;;;GAKG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,WAAW,CAAgB;gBAEvB,WAAW,CAAC,EAAE,MAAM;IAOhC;;;;;OAKG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAU5B;;;;;;;;;OASG;YACW,oBAAoB;IAmBlC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAkBzB;;OAEG;IACH,IAAI,IAAI,IAAI;IAYZ;;OAEG;YACW,aAAa;IA6C3B;;OAEG;YACW,gBAAgB;IAiC9B;;OAEG;YACW,eAAe;IAM7B;;OAEG;YACW,eAAe;CAqC9B;AAGD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
|
package/dist/mcp/index.js
CHANGED
|
@@ -15,14 +15,66 @@
|
|
|
15
15
|
* await server.start();
|
|
16
16
|
* ```
|
|
17
17
|
*/
|
|
18
|
-
var
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
19
|
+
if (k2 === undefined) k2 = k;
|
|
20
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
21
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
22
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
23
|
+
}
|
|
24
|
+
Object.defineProperty(o, k2, desc);
|
|
25
|
+
}) : (function(o, m, k, k2) {
|
|
26
|
+
if (k2 === undefined) k2 = k;
|
|
27
|
+
o[k2] = m[k];
|
|
28
|
+
}));
|
|
29
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
30
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
31
|
+
}) : function(o, v) {
|
|
32
|
+
o["default"] = v;
|
|
33
|
+
});
|
|
34
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
35
|
+
var ownKeys = function(o) {
|
|
36
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
37
|
+
var ar = [];
|
|
38
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
39
|
+
return ar;
|
|
40
|
+
};
|
|
41
|
+
return ownKeys(o);
|
|
42
|
+
};
|
|
43
|
+
return function (mod) {
|
|
44
|
+
if (mod && mod.__esModule) return mod;
|
|
45
|
+
var result = {};
|
|
46
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
47
|
+
__setModuleDefault(result, mod);
|
|
48
|
+
return result;
|
|
49
|
+
};
|
|
50
|
+
})();
|
|
21
51
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
52
|
exports.ToolHandler = exports.tools = exports.StdioTransport = exports.MCPServer = void 0;
|
|
23
|
-
const
|
|
53
|
+
const path = __importStar(require("path"));
|
|
54
|
+
const index_1 = __importStar(require("../index"));
|
|
24
55
|
const transport_1 = require("./transport");
|
|
25
56
|
const tools_1 = require("./tools");
|
|
57
|
+
const sentry_1 = require("../sentry");
|
|
58
|
+
(0, sentry_1.initSentry)({ processName: 'codegraph-mcp' });
|
|
59
|
+
/**
|
|
60
|
+
* Convert a file:// URI to a filesystem path.
|
|
61
|
+
* Handles URL encoding and Windows drive letter paths.
|
|
62
|
+
*/
|
|
63
|
+
function fileUriToPath(uri) {
|
|
64
|
+
try {
|
|
65
|
+
const url = new URL(uri);
|
|
66
|
+
let filePath = decodeURIComponent(url.pathname);
|
|
67
|
+
// On Windows, file:///C:/path produces pathname /C:/path — strip leading /
|
|
68
|
+
if (process.platform === 'win32' && /^\/[a-zA-Z]:/.test(filePath)) {
|
|
69
|
+
filePath = filePath.slice(1);
|
|
70
|
+
}
|
|
71
|
+
return path.resolve(filePath);
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
// Fallback for non-standard URIs
|
|
75
|
+
return uri.replace(/^file:\/\/\/?/, '');
|
|
76
|
+
}
|
|
77
|
+
}
|
|
26
78
|
/**
|
|
27
79
|
* MCP Server Info
|
|
28
80
|
*/
|
|
@@ -43,12 +95,13 @@ const PROTOCOL_VERSION = '2024-11-05';
|
|
|
43
95
|
class MCPServer {
|
|
44
96
|
transport;
|
|
45
97
|
cg = null;
|
|
46
|
-
toolHandler
|
|
98
|
+
toolHandler;
|
|
47
99
|
projectPath;
|
|
48
|
-
initError = null;
|
|
49
100
|
constructor(projectPath) {
|
|
50
101
|
this.projectPath = projectPath || null;
|
|
51
102
|
this.transport = new transport_1.StdioTransport();
|
|
103
|
+
// Create ToolHandler eagerly — cross-project queries work even without a default project
|
|
104
|
+
this.toolHandler = new tools_1.ToolHandler(null);
|
|
52
105
|
}
|
|
53
106
|
/**
|
|
54
107
|
* Start the MCP server
|
|
@@ -65,27 +118,61 @@ class MCPServer {
|
|
|
65
118
|
process.on('SIGTERM', () => this.stop());
|
|
66
119
|
}
|
|
67
120
|
/**
|
|
68
|
-
*
|
|
121
|
+
* Try to initialize CodeGraph for the default project.
|
|
122
|
+
*
|
|
123
|
+
* Walks up parent directories to find the nearest .codegraph/ folder,
|
|
124
|
+
* similar to how git finds .git/ directories.
|
|
125
|
+
*
|
|
126
|
+
* If initialization fails, the error is recorded but the server continues
|
|
127
|
+
* to work — cross-project queries and retries on subsequent tool calls
|
|
128
|
+
* are still possible.
|
|
69
129
|
*/
|
|
70
|
-
async
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
130
|
+
async tryInitializeDefault(projectPath) {
|
|
131
|
+
// Walk up parent directories to find nearest .codegraph/
|
|
132
|
+
const resolvedRoot = (0, index_1.findNearestCodeGraphRoot)(projectPath);
|
|
133
|
+
if (!resolvedRoot) {
|
|
134
|
+
this.projectPath = projectPath;
|
|
74
135
|
return;
|
|
75
136
|
}
|
|
137
|
+
this.projectPath = resolvedRoot;
|
|
76
138
|
try {
|
|
77
|
-
this.cg = await index_1.default.open(
|
|
78
|
-
this.toolHandler
|
|
79
|
-
this.initError = null;
|
|
139
|
+
this.cg = await index_1.default.open(resolvedRoot);
|
|
140
|
+
this.toolHandler.setDefaultCodeGraph(this.cg);
|
|
80
141
|
}
|
|
81
142
|
catch (err) {
|
|
82
|
-
|
|
143
|
+
(0, sentry_1.captureException)(err);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Retry initialization of the default project if it previously failed.
|
|
148
|
+
* Called lazily on tool calls that need the default project.
|
|
149
|
+
*/
|
|
150
|
+
retryInitIfNeeded() {
|
|
151
|
+
// Already initialized successfully
|
|
152
|
+
if (this.toolHandler.hasDefaultCodeGraph())
|
|
153
|
+
return;
|
|
154
|
+
// No project path to retry with
|
|
155
|
+
if (!this.projectPath)
|
|
156
|
+
return;
|
|
157
|
+
const resolvedRoot = (0, index_1.findNearestCodeGraphRoot)(this.projectPath);
|
|
158
|
+
if (!resolvedRoot)
|
|
159
|
+
return;
|
|
160
|
+
try {
|
|
161
|
+
this.cg = index_1.default.openSync(resolvedRoot);
|
|
162
|
+
this.projectPath = resolvedRoot;
|
|
163
|
+
this.toolHandler.setDefaultCodeGraph(this.cg);
|
|
164
|
+
}
|
|
165
|
+
catch {
|
|
166
|
+
// Still failing — will retry on next tool call
|
|
83
167
|
}
|
|
84
168
|
}
|
|
85
169
|
/**
|
|
86
170
|
* Stop the server
|
|
87
171
|
*/
|
|
88
172
|
stop() {
|
|
173
|
+
// Close all cached cross-project connections first
|
|
174
|
+
this.toolHandler.closeAll();
|
|
175
|
+
// Close the main CodeGraph instance
|
|
89
176
|
if (this.cg) {
|
|
90
177
|
this.cg.close();
|
|
91
178
|
this.cg = null;
|
|
@@ -138,18 +225,17 @@ class MCPServer {
|
|
|
138
225
|
// Extract project path from rootUri or workspaceFolders
|
|
139
226
|
let projectPath = this.projectPath;
|
|
140
227
|
if (params?.rootUri) {
|
|
141
|
-
|
|
142
|
-
projectPath = params.rootUri.replace(/^file:\/\//, '');
|
|
228
|
+
projectPath = fileUriToPath(params.rootUri);
|
|
143
229
|
}
|
|
144
230
|
else if (params?.workspaceFolders?.[0]?.uri) {
|
|
145
|
-
projectPath = params.workspaceFolders[0].uri
|
|
231
|
+
projectPath = fileUriToPath(params.workspaceFolders[0].uri);
|
|
146
232
|
}
|
|
147
233
|
// Fall back to current working directory if no path provided
|
|
148
234
|
if (!projectPath) {
|
|
149
235
|
projectPath = process.cwd();
|
|
150
236
|
}
|
|
151
|
-
//
|
|
152
|
-
await this.
|
|
237
|
+
// Try to initialize the default project (non-fatal if it fails)
|
|
238
|
+
await this.tryInitializeDefault(projectPath);
|
|
153
239
|
// We accept the client's protocol version but respond with our supported version
|
|
154
240
|
this.transport.sendResult(request.id, {
|
|
155
241
|
protocolVersion: PROTOCOL_VERSION,
|
|
@@ -184,15 +270,9 @@ class MCPServer {
|
|
|
184
270
|
this.transport.sendError(request.id, transport_1.ErrorCodes.InvalidParams, `Unknown tool: ${toolName}`);
|
|
185
271
|
return;
|
|
186
272
|
}
|
|
187
|
-
//
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
(this.projectPath
|
|
191
|
-
? `CodeGraph not initialized in ${this.projectPath}. Run 'codegraph init' first.`
|
|
192
|
-
: 'No project path provided. Ensure Claude Code is running in a project directory.');
|
|
193
|
-
this.transport.sendError(request.id, transport_1.ErrorCodes.InternalError, errorMsg);
|
|
194
|
-
return;
|
|
195
|
-
}
|
|
273
|
+
// If the default project isn't initialized yet, retry in case it was
|
|
274
|
+
// initialized after the MCP server started (e.g. user ran codegraph init)
|
|
275
|
+
this.retryInitIfNeeded();
|
|
196
276
|
const result = await this.toolHandler.execute(toolName, toolArgs);
|
|
197
277
|
this.transport.sendResult(request.id, result);
|
|
198
278
|
}
|
package/dist/mcp/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"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"}
|