@colbymchenry/codegraph 0.2.9 → 0.4.8
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.
Potentially problematic release.
This version of @colbymchenry/codegraph might be problematic. Click here for more details.
- package/LICENSE +21 -21
- package/README.md +647 -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 +8 -1
- 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 +16 -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 +11 -12
- package/dist/db/migrations.js.map +1 -1
- package/dist/db/queries.d.ts +19 -0
- package/dist/db/queries.d.ts.map +1 -1
- package/dist/db/queries.js +221 -107
- package/dist/db/queries.js.map +1 -1
- package/dist/db/schema.sql +154 -149
- package/dist/directory.d.ts +13 -1
- package/dist/directory.d.ts.map +1 -1
- package/dist/directory.js +62 -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.map +1 -1
- package/dist/extraction/index.js +119 -7
- package/dist/extraction/index.js.map +1 -1
- package/dist/extraction/tree-sitter.d.ts +62 -0
- package/dist/extraction/tree-sitter.d.ts.map +1 -1
- package/dist/extraction/tree-sitter.js +937 -34
- 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 +85 -74
- 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 +78 -0
- package/dist/installer/config-writer.js.map +1 -1
- package/dist/installer/index.d.ts.map +1 -1
- package/dist/installer/index.js +28 -16
- 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 +62 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +414 -43
- 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/index.d.ts +11 -2
- package/dist/resolution/index.d.ts.map +1 -1
- package/dist/resolution/index.js +94 -13
- package/dist/resolution/index.js.map +1 -1
- 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 +5 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +11 -0
- package/dist/types.js.map +1 -1
- package/dist/utils.d.ts +45 -2
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +114 -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 +5 -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 +72 -65
- package/scripts/patch-tree-sitter-dart.js +112 -0
- package/scripts/postinstall.js +71 -0
- 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
package/dist/installer/index.js
CHANGED
|
@@ -28,17 +28,27 @@ async function runInstaller() {
|
|
|
28
28
|
// Show the banner
|
|
29
29
|
(0, banner_1.showBanner)();
|
|
30
30
|
try {
|
|
31
|
-
// Step 1:
|
|
32
|
-
|
|
31
|
+
// Step 1: Check if codegraph is available (skip install if already there)
|
|
32
|
+
let codegraphAvailable = false;
|
|
33
33
|
try {
|
|
34
|
-
(0, child_process_1.execSync)('
|
|
35
|
-
|
|
34
|
+
(0, child_process_1.execSync)('which codegraph', { stdio: 'pipe' });
|
|
35
|
+
codegraphAvailable = true;
|
|
36
36
|
}
|
|
37
37
|
catch {
|
|
38
|
-
//
|
|
39
|
-
|
|
38
|
+
// Not installed globally yet
|
|
39
|
+
}
|
|
40
|
+
if (!codegraphAvailable) {
|
|
41
|
+
console.log(banner_1.chalk.dim(' Installing codegraph globally...'));
|
|
42
|
+
try {
|
|
43
|
+
(0, child_process_1.execSync)('npm install -g @colbymchenry/codegraph', { stdio: 'pipe' });
|
|
44
|
+
(0, banner_1.success)('Installed codegraph command globally');
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
// May fail if no permissions, but that's ok - npx still works
|
|
48
|
+
(0, banner_1.info)('Could not install globally (try with sudo if needed)');
|
|
49
|
+
}
|
|
50
|
+
console.log();
|
|
40
51
|
}
|
|
41
|
-
console.log();
|
|
42
52
|
// Step 2: Ask for installation location
|
|
43
53
|
const location = await (0, prompts_1.promptInstallLocation)();
|
|
44
54
|
console.log();
|
|
@@ -64,7 +74,16 @@ async function runInstaller() {
|
|
|
64
74
|
(0, banner_1.success)(`Added permissions to ${location === 'global' ? '~/.claude/settings.json' : './.claude/settings.json'}`);
|
|
65
75
|
}
|
|
66
76
|
}
|
|
67
|
-
// 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
|
|
68
87
|
const claudeMdResult = (0, config_writer_1.writeClaudeMd)(location);
|
|
69
88
|
const claudeMdPath = location === 'global' ? '~/.claude/CLAUDE.md' : './.claude/CLAUDE.md';
|
|
70
89
|
if (claudeMdResult.created) {
|
|
@@ -76,7 +95,7 @@ async function runInstaller() {
|
|
|
76
95
|
else {
|
|
77
96
|
(0, banner_1.success)(`Added CodeGraph instructions to ${claudeMdPath}`);
|
|
78
97
|
}
|
|
79
|
-
// Step
|
|
98
|
+
// Step 7: For local install, initialize the project
|
|
80
99
|
if (location === 'local') {
|
|
81
100
|
await initializeLocalProject();
|
|
82
101
|
}
|
|
@@ -133,13 +152,6 @@ async function initializeLocalProject() {
|
|
|
133
152
|
else {
|
|
134
153
|
(0, banner_1.success)(`Indexed ${formatNumber(result.filesIndexed)} files with ${result.errors.length} warnings`);
|
|
135
154
|
}
|
|
136
|
-
// Install git hooks if this is a git repository
|
|
137
|
-
if (cg.isGitRepository()) {
|
|
138
|
-
const hookResult = cg.installGitHooks();
|
|
139
|
-
if (hookResult.success) {
|
|
140
|
-
(0, banner_1.success)('Installed git post-commit hook');
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
155
|
cg.close();
|
|
144
156
|
}
|
|
145
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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"}
|
package/dist/mcp/tools.d.ts
CHANGED
|
@@ -37,14 +37,42 @@ export interface ToolResult {
|
|
|
37
37
|
*
|
|
38
38
|
* Designed for minimal context usage - use codegraph_context as the primary tool,
|
|
39
39
|
* and only use other tools for targeted follow-up queries.
|
|
40
|
+
*
|
|
41
|
+
* All tools support cross-project queries via the optional `projectPath` parameter.
|
|
40
42
|
*/
|
|
41
43
|
export declare const tools: ToolDefinition[];
|
|
42
44
|
/**
|
|
43
45
|
* Tool handler that executes tools against a CodeGraph instance
|
|
46
|
+
*
|
|
47
|
+
* Supports cross-project queries via the projectPath parameter.
|
|
48
|
+
* Other projects are opened on-demand and cached for performance.
|
|
44
49
|
*/
|
|
45
50
|
export declare class ToolHandler {
|
|
46
51
|
private cg;
|
|
47
|
-
|
|
52
|
+
private projectCache;
|
|
53
|
+
constructor(cg: CodeGraph | null);
|
|
54
|
+
/**
|
|
55
|
+
* Update the default CodeGraph instance (e.g. after lazy initialization)
|
|
56
|
+
*/
|
|
57
|
+
setDefaultCodeGraph(cg: CodeGraph): void;
|
|
58
|
+
/**
|
|
59
|
+
* Whether a default CodeGraph instance is available
|
|
60
|
+
*/
|
|
61
|
+
hasDefaultCodeGraph(): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Get CodeGraph instance for a project
|
|
64
|
+
*
|
|
65
|
+
* If projectPath is provided, opens that project's CodeGraph (cached).
|
|
66
|
+
* Otherwise returns the default CodeGraph instance.
|
|
67
|
+
*
|
|
68
|
+
* Walks up parent directories to find the nearest .codegraph/ folder,
|
|
69
|
+
* similar to how git finds .git/ directories.
|
|
70
|
+
*/
|
|
71
|
+
private getCodeGraph;
|
|
72
|
+
/**
|
|
73
|
+
* Close all cached project connections
|
|
74
|
+
*/
|
|
75
|
+
closeAll(): void;
|
|
48
76
|
/**
|
|
49
77
|
* Execute a tool by name
|
|
50
78
|
*/
|
|
@@ -81,6 +109,39 @@ export declare class ToolHandler {
|
|
|
81
109
|
* Handle codegraph_status
|
|
82
110
|
*/
|
|
83
111
|
private handleStatus;
|
|
112
|
+
/**
|
|
113
|
+
* Handle codegraph_files - get project file structure from the index
|
|
114
|
+
*/
|
|
115
|
+
private handleFiles;
|
|
116
|
+
/**
|
|
117
|
+
* Convert glob pattern to regex
|
|
118
|
+
*/
|
|
119
|
+
private globToRegex;
|
|
120
|
+
/**
|
|
121
|
+
* Format files as a flat list
|
|
122
|
+
*/
|
|
123
|
+
private formatFilesFlat;
|
|
124
|
+
/**
|
|
125
|
+
* Format files grouped by language
|
|
126
|
+
*/
|
|
127
|
+
private formatFilesGrouped;
|
|
128
|
+
/**
|
|
129
|
+
* Format files as a tree structure
|
|
130
|
+
*/
|
|
131
|
+
private formatFilesTree;
|
|
132
|
+
/**
|
|
133
|
+
* Find a symbol by name, handling disambiguation when multiple matches exist.
|
|
134
|
+
* Returns the best match and a note about alternatives if any.
|
|
135
|
+
*/
|
|
136
|
+
private findSymbol;
|
|
137
|
+
/**
|
|
138
|
+
* Maximum output length to prevent context bloat (characters)
|
|
139
|
+
*/
|
|
140
|
+
private readonly MAX_OUTPUT_LENGTH;
|
|
141
|
+
/**
|
|
142
|
+
* Truncate output if it exceeds the maximum length
|
|
143
|
+
*/
|
|
144
|
+
private truncateOutput;
|
|
84
145
|
private formatSearchResults;
|
|
85
146
|
private formatNodeList;
|
|
86
147
|
private formatImpact;
|
package/dist/mcp/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,SAAuC,MAAM,UAAU,CAAC;AAsB/D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC3C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAED,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAUD;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,EAAE,cAAc,EA8KjC,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,WAAW;IAIV,OAAO,CAAC,EAAE;IAFtB,OAAO,CAAC,YAAY,CAAqC;gBAErC,EAAE,EAAE,SAAS,GAAG,IAAI;IAExC;;OAEG;IACH,mBAAmB,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAIxC;;OAEG;IACH,mBAAmB,IAAI,OAAO;IAI9B;;;;;;;;OAQG;IACH,OAAO,CAAC,YAAY;IAqCpB;;OAEG;IACH,QAAQ,IAAI,IAAI;IAOhB;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IA4BnF;;OAEG;YACW,YAAY;IAmB1B;;OAEG;YACW,aAAa;IAiC3B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAyB/B;;OAEG;YACW,aAAa;IAqB3B;;OAEG;YACW,aAAa;IAqB3B;;OAEG;YACW,YAAY;IAgB1B;;OAEG;YACW,UAAU;IAqBxB;;OAEG;YACW,YAAY;IA+B1B;;OAEG;YACW,WAAW;IAgDzB;;OAEG;IACH,OAAO,CAAC,WAAW;IAUnB;;OAEG;IACH,OAAO,CAAC,eAAe;IAcvB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA6B1B;;OAEG;IACH,OAAO,CAAC,eAAe;IA4EvB;;;OAGG;IACH,OAAO,CAAC,UAAU;IA4BlB;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAE3C;;OAEG;IACH,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,YAAY;IA4BpB,OAAO,CAAC,iBAAiB;IAwBzB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,WAAW;CAMpB"}
|