@colbymchenry/codegraph 0.6.6 → 0.7.2
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/README.md +180 -502
- package/dist/bin/codegraph.d.ts +0 -5
- package/dist/bin/codegraph.d.ts.map +1 -1
- package/dist/bin/codegraph.js +217 -263
- package/dist/bin/codegraph.js.map +1 -1
- package/dist/bin/uninstall.d.ts +0 -1
- package/dist/bin/uninstall.d.ts.map +1 -1
- package/dist/bin/uninstall.js +3 -29
- package/dist/bin/uninstall.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +0 -3
- package/dist/config.js.map +1 -1
- package/dist/context/index.d.ts +3 -5
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/index.js +497 -46
- package/dist/context/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 +10 -1
- package/dist/db/migrations.js.map +1 -1
- package/dist/db/queries.d.ts +53 -0
- package/dist/db/queries.d.ts.map +1 -1
- package/dist/db/queries.js +244 -24
- package/dist/db/queries.js.map +1 -1
- package/dist/db/schema.sql +1 -16
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +1 -7
- package/dist/errors.js.map +1 -1
- package/dist/extraction/dfm-extractor.d.ts +31 -0
- package/dist/extraction/dfm-extractor.d.ts.map +1 -0
- package/dist/extraction/dfm-extractor.js +151 -0
- package/dist/extraction/dfm-extractor.js.map +1 -0
- package/dist/extraction/grammars.d.ts +9 -1
- package/dist/extraction/grammars.d.ts.map +1 -1
- package/dist/extraction/grammars.js +34 -2
- package/dist/extraction/grammars.js.map +1 -1
- package/dist/extraction/index.d.ts +7 -1
- package/dist/extraction/index.d.ts.map +1 -1
- package/dist/extraction/index.js +373 -29
- package/dist/extraction/index.js.map +1 -1
- package/dist/extraction/languages/c-cpp.d.ts +4 -0
- package/dist/extraction/languages/c-cpp.d.ts.map +1 -0
- package/dist/extraction/languages/c-cpp.js +126 -0
- package/dist/extraction/languages/c-cpp.js.map +1 -0
- package/dist/extraction/languages/csharp.d.ts +3 -0
- package/dist/extraction/languages/csharp.d.ts.map +1 -0
- package/dist/extraction/languages/csharp.js +72 -0
- package/dist/extraction/languages/csharp.js.map +1 -0
- package/dist/extraction/languages/dart.d.ts +3 -0
- package/dist/extraction/languages/dart.d.ts.map +1 -0
- package/dist/extraction/languages/dart.js +192 -0
- package/dist/extraction/languages/dart.js.map +1 -0
- package/dist/extraction/languages/go.d.ts +3 -0
- package/dist/extraction/languages/go.d.ts.map +1 -0
- package/dist/extraction/languages/go.js +58 -0
- package/dist/extraction/languages/go.js.map +1 -0
- package/dist/extraction/languages/index.d.ts +10 -0
- package/dist/extraction/languages/index.d.ts.map +1 -0
- package/dist/extraction/languages/index.js +43 -0
- package/dist/extraction/languages/index.js.map +1 -0
- package/dist/extraction/languages/java.d.ts +3 -0
- package/dist/extraction/languages/java.d.ts.map +1 -0
- package/dist/extraction/languages/java.js +64 -0
- package/dist/extraction/languages/java.js.map +1 -0
- package/dist/extraction/languages/javascript.d.ts +3 -0
- package/dist/extraction/languages/javascript.d.ts.map +1 -0
- package/dist/extraction/languages/javascript.js +90 -0
- package/dist/extraction/languages/javascript.js.map +1 -0
- package/dist/extraction/languages/kotlin.d.ts +3 -0
- package/dist/extraction/languages/kotlin.d.ts.map +1 -0
- package/dist/extraction/languages/kotlin.js +253 -0
- package/dist/extraction/languages/kotlin.js.map +1 -0
- package/dist/extraction/languages/pascal.d.ts +3 -0
- package/dist/extraction/languages/pascal.d.ts.map +1 -0
- package/dist/extraction/languages/pascal.js +66 -0
- package/dist/extraction/languages/pascal.js.map +1 -0
- package/dist/extraction/languages/php.d.ts +3 -0
- package/dist/extraction/languages/php.d.ts.map +1 -0
- package/dist/extraction/languages/php.js +107 -0
- package/dist/extraction/languages/php.js.map +1 -0
- package/dist/extraction/languages/python.d.ts +3 -0
- package/dist/extraction/languages/python.d.ts.map +1 -0
- package/dist/extraction/languages/python.js +56 -0
- package/dist/extraction/languages/python.js.map +1 -0
- package/dist/extraction/languages/ruby.d.ts +3 -0
- package/dist/extraction/languages/ruby.d.ts.map +1 -0
- package/dist/extraction/languages/ruby.js +114 -0
- package/dist/extraction/languages/ruby.js.map +1 -0
- package/dist/extraction/languages/rust.d.ts +3 -0
- package/dist/extraction/languages/rust.d.ts.map +1 -0
- package/dist/extraction/languages/rust.js +109 -0
- package/dist/extraction/languages/rust.js.map +1 -0
- package/dist/extraction/languages/swift.d.ts +3 -0
- package/dist/extraction/languages/swift.d.ts.map +1 -0
- package/dist/extraction/languages/swift.js +91 -0
- package/dist/extraction/languages/swift.js.map +1 -0
- package/dist/extraction/languages/typescript.d.ts +3 -0
- package/dist/extraction/languages/typescript.d.ts.map +1 -0
- package/dist/extraction/languages/typescript.js +129 -0
- package/dist/extraction/languages/typescript.js.map +1 -0
- package/dist/extraction/liquid-extractor.d.ts +52 -0
- package/dist/extraction/liquid-extractor.d.ts.map +1 -0
- package/dist/extraction/liquid-extractor.js +313 -0
- package/dist/extraction/liquid-extractor.js.map +1 -0
- package/dist/extraction/parse-worker.d.ts +8 -0
- package/dist/extraction/parse-worker.d.ts.map +1 -0
- package/dist/extraction/parse-worker.js +57 -0
- package/dist/extraction/parse-worker.js.map +1 -0
- package/dist/extraction/svelte-extractor.d.ts +47 -0
- package/dist/extraction/svelte-extractor.d.ts.map +1 -0
- package/dist/extraction/svelte-extractor.js +230 -0
- package/dist/extraction/svelte-extractor.js.map +1 -0
- package/dist/extraction/tree-sitter-helpers.d.ts +28 -0
- package/dist/extraction/tree-sitter-helpers.d.ts.map +1 -0
- package/dist/extraction/tree-sitter-helpers.js +103 -0
- package/dist/extraction/tree-sitter-helpers.js.map +1 -0
- package/dist/extraction/tree-sitter-types.d.ts +179 -0
- package/dist/extraction/tree-sitter-types.d.ts.map +1 -0
- package/dist/extraction/tree-sitter-types.js +10 -0
- package/dist/extraction/tree-sitter-types.js.map +1 -0
- package/dist/extraction/tree-sitter.d.ts +67 -125
- package/dist/extraction/tree-sitter.d.ts.map +1 -1
- package/dist/extraction/tree-sitter.js +1052 -1860
- package/dist/extraction/tree-sitter.js.map +1 -1
- package/dist/graph/traversal.d.ts.map +1 -1
- package/dist/graph/traversal.js +20 -2
- package/dist/graph/traversal.js.map +1 -1
- package/dist/index.d.ts +29 -53
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +88 -117
- package/dist/index.js.map +1 -1
- package/dist/installer/claude-md-template.d.ts +1 -1
- package/dist/installer/claude-md-template.d.ts.map +1 -1
- package/dist/installer/claude-md-template.js +15 -15
- package/dist/installer/config-writer.d.ts +2 -13
- package/dist/installer/config-writer.d.ts.map +1 -1
- package/dist/installer/config-writer.js +4 -87
- package/dist/installer/config-writer.js.map +1 -1
- package/dist/installer/index.d.ts +3 -4
- package/dist/installer/index.d.ts.map +1 -1
- package/dist/installer/index.js +118 -127
- package/dist/installer/index.js.map +1 -1
- package/dist/mcp/index.d.ts +5 -0
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +25 -4
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/tools.d.ts +33 -0
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +405 -26
- package/dist/mcp/tools.js.map +1 -1
- package/dist/mcp/transport.d.ts.map +1 -1
- package/dist/mcp/transport.js +0 -2
- package/dist/mcp/transport.js.map +1 -1
- package/dist/resolution/frameworks/csharp.js +29 -84
- package/dist/resolution/frameworks/csharp.js.map +1 -1
- package/dist/resolution/frameworks/express.js +44 -48
- package/dist/resolution/frameworks/express.js.map +1 -1
- package/dist/resolution/frameworks/go.js +34 -70
- package/dist/resolution/frameworks/go.js.map +1 -1
- package/dist/resolution/frameworks/java.js +29 -87
- package/dist/resolution/frameworks/java.js.map +1 -1
- package/dist/resolution/frameworks/laravel.js +6 -6
- package/dist/resolution/frameworks/laravel.js.map +1 -1
- package/dist/resolution/frameworks/python.js +33 -98
- package/dist/resolution/frameworks/python.js.map +1 -1
- package/dist/resolution/frameworks/react.js +53 -76
- package/dist/resolution/frameworks/react.js.map +1 -1
- package/dist/resolution/frameworks/ruby.js +12 -24
- package/dist/resolution/frameworks/ruby.js.map +1 -1
- package/dist/resolution/frameworks/rust.js +26 -66
- package/dist/resolution/frameworks/rust.js.map +1 -1
- package/dist/resolution/frameworks/svelte.js +11 -31
- package/dist/resolution/frameworks/svelte.js.map +1 -1
- package/dist/resolution/frameworks/swift.js +42 -160
- package/dist/resolution/frameworks/swift.js.map +1 -1
- package/dist/resolution/index.d.ts +19 -6
- package/dist/resolution/index.d.ts.map +1 -1
- package/dist/resolution/index.js +300 -144
- package/dist/resolution/index.js.map +1 -1
- package/dist/resolution/name-matcher.d.ts +5 -0
- package/dist/resolution/name-matcher.d.ts.map +1 -1
- package/dist/resolution/name-matcher.js +148 -8
- package/dist/resolution/name-matcher.js.map +1 -1
- package/dist/resolution/types.d.ts +1 -1
- package/dist/resolution/types.d.ts.map +1 -1
- package/dist/search/query-utils.d.ts +26 -1
- package/dist/search/query-utils.d.ts.map +1 -1
- package/dist/search/query-utils.js +209 -9
- package/dist/search/query-utils.js.map +1 -1
- package/dist/sync/index.d.ts +2 -4
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/index.js +4 -3
- package/dist/sync/index.js.map +1 -1
- package/dist/sync/watcher.d.ts +81 -0
- package/dist/sync/watcher.d.ts.map +1 -0
- package/dist/sync/watcher.js +184 -0
- package/dist/sync/watcher.js.map +1 -0
- package/dist/types.d.ts +2 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -1
- package/dist/types.js.map +1 -1
- package/dist/ui/shimmer-progress.d.ts +11 -0
- package/dist/ui/shimmer-progress.d.ts.map +1 -0
- package/dist/ui/shimmer-progress.js +90 -0
- package/dist/ui/shimmer-progress.js.map +1 -0
- package/dist/ui/shimmer-worker.d.ts +2 -0
- package/dist/ui/shimmer-worker.d.ts.map +1 -0
- package/dist/ui/shimmer-worker.js +112 -0
- package/dist/ui/shimmer-worker.js.map +1 -0
- package/dist/ui/types.d.ts +17 -0
- package/dist/ui/types.d.ts.map +1 -0
- package/dist/ui/types.js +3 -0
- package/dist/ui/types.js.map +1 -0
- package/dist/vectors/embedder.js +1 -1
- package/dist/vectors/embedder.js.map +1 -1
- package/dist/visualizer/server.d.ts.map +1 -1
- package/dist/visualizer/server.js +3 -11
- package/dist/visualizer/server.js.map +1 -1
- package/package.json +7 -12
- package/scripts/postinstall.js +0 -68
|
@@ -2,13 +2,11 @@
|
|
|
2
2
|
* Config file writing for the CodeGraph installer
|
|
3
3
|
* Writes to claude.json, settings.json, and CLAUDE.md
|
|
4
4
|
*/
|
|
5
|
-
|
|
5
|
+
export type InstallLocation = 'global' | 'local';
|
|
6
6
|
/**
|
|
7
7
|
* Write the MCP server configuration to claude.json
|
|
8
8
|
*/
|
|
9
|
-
export declare function writeMcpConfig(location: InstallLocation
|
|
10
|
-
telemetry?: boolean;
|
|
11
|
-
}): void;
|
|
9
|
+
export declare function writeMcpConfig(location: InstallLocation): void;
|
|
12
10
|
/**
|
|
13
11
|
* Write permissions to settings.json
|
|
14
12
|
*/
|
|
@@ -21,15 +19,6 @@ export declare function hasMcpConfig(location: InstallLocation): boolean;
|
|
|
21
19
|
* Check if permissions already exist for CodeGraph
|
|
22
20
|
*/
|
|
23
21
|
export declare function hasPermissions(location: InstallLocation): boolean;
|
|
24
|
-
/**
|
|
25
|
-
* Check if Claude Code hooks already exist for CodeGraph
|
|
26
|
-
*/
|
|
27
|
-
export declare function hasHooks(location: InstallLocation): boolean;
|
|
28
|
-
/**
|
|
29
|
-
* Write Claude Code hooks to settings.json for auto-sync.
|
|
30
|
-
* Merges with existing hooks, deduplicating any previous codegraph entries.
|
|
31
|
-
*/
|
|
32
|
-
export declare function writeHooks(location: InstallLocation): void;
|
|
33
22
|
/**
|
|
34
23
|
* Check if CLAUDE.md has CodeGraph section
|
|
35
24
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-writer.d.ts","sourceRoot":"","sources":["../../src/installer/config-writer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,
|
|
1
|
+
{"version":3,"file":"config-writer.d.ts","sourceRoot":"","sources":["../../src/installer/config-writer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,OAAO,CAAC;AAsGjD;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAa9D;AAiBD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAuBhE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAI/D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CASjE;AAYD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAWrE;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,eAAe,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAiE/F"}
|
|
@@ -41,8 +41,6 @@ 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;
|
|
46
44
|
exports.hasClaudeMdSection = hasClaudeMdSection;
|
|
47
45
|
exports.writeClaudeMd = writeClaudeMd;
|
|
48
46
|
const fs = __importStar(require("fs"));
|
|
@@ -136,21 +134,17 @@ function writeJsonFile(filePath, data) {
|
|
|
136
134
|
/**
|
|
137
135
|
* Get the MCP server configuration
|
|
138
136
|
*/
|
|
139
|
-
function getMcpServerConfig(
|
|
140
|
-
|
|
137
|
+
function getMcpServerConfig() {
|
|
138
|
+
return {
|
|
141
139
|
type: 'stdio',
|
|
142
140
|
command: 'codegraph',
|
|
143
141
|
args: ['serve', '--mcp'],
|
|
144
142
|
};
|
|
145
|
-
if (options?.telemetry === false) {
|
|
146
|
-
config.env = { CODEGRAPH_TELEMETRY: 'off' };
|
|
147
|
-
}
|
|
148
|
-
return config;
|
|
149
143
|
}
|
|
150
144
|
/**
|
|
151
145
|
* Write the MCP server configuration to claude.json
|
|
152
146
|
*/
|
|
153
|
-
function writeMcpConfig(location
|
|
147
|
+
function writeMcpConfig(location) {
|
|
154
148
|
const claudeJsonPath = getClaudeJsonPath(location);
|
|
155
149
|
const config = readJsonFile(claudeJsonPath);
|
|
156
150
|
// Ensure mcpServers object exists
|
|
@@ -158,7 +152,7 @@ function writeMcpConfig(location, options) {
|
|
|
158
152
|
config.mcpServers = {};
|
|
159
153
|
}
|
|
160
154
|
// Add or update codegraph server
|
|
161
|
-
config.mcpServers.codegraph = getMcpServerConfig(
|
|
155
|
+
config.mcpServers.codegraph = getMcpServerConfig();
|
|
162
156
|
writeJsonFile(claudeJsonPath, config);
|
|
163
157
|
}
|
|
164
158
|
/**
|
|
@@ -219,83 +213,6 @@ function hasPermissions(location) {
|
|
|
219
213
|
// Check if at least one CodeGraph permission exists
|
|
220
214
|
return permissions.some((p) => p.startsWith('mcp__codegraph__'));
|
|
221
215
|
}
|
|
222
|
-
// =============================================================================
|
|
223
|
-
// Hooks Configuration
|
|
224
|
-
// =============================================================================
|
|
225
|
-
/**
|
|
226
|
-
* Get the hooks configuration for Claude Code auto-sync.
|
|
227
|
-
*
|
|
228
|
-
* PostToolUse(Edit|Write) → mark-dirty (async, non-blocking)
|
|
229
|
-
* Stop → sync-if-dirty (sync, ensures fresh index before next user turn)
|
|
230
|
-
*/
|
|
231
|
-
function getHooksConfig() {
|
|
232
|
-
const command = 'codegraph';
|
|
233
|
-
return {
|
|
234
|
-
PostToolUse: [
|
|
235
|
-
{
|
|
236
|
-
matcher: 'Edit|Write',
|
|
237
|
-
hooks: [
|
|
238
|
-
{
|
|
239
|
-
type: 'command',
|
|
240
|
-
command: `${command} mark-dirty`,
|
|
241
|
-
async: true,
|
|
242
|
-
},
|
|
243
|
-
],
|
|
244
|
-
},
|
|
245
|
-
],
|
|
246
|
-
Stop: [
|
|
247
|
-
{
|
|
248
|
-
matcher: '.*',
|
|
249
|
-
hooks: [
|
|
250
|
-
{
|
|
251
|
-
type: 'command',
|
|
252
|
-
command: `${command} sync-if-dirty`,
|
|
253
|
-
},
|
|
254
|
-
],
|
|
255
|
-
},
|
|
256
|
-
],
|
|
257
|
-
};
|
|
258
|
-
}
|
|
259
|
-
/**
|
|
260
|
-
* Check if Claude Code hooks already exist for CodeGraph
|
|
261
|
-
*/
|
|
262
|
-
function hasHooks(location) {
|
|
263
|
-
const settingsPath = getSettingsJsonPath(location);
|
|
264
|
-
const settings = readJsonFile(settingsPath);
|
|
265
|
-
const hooks = settings.hooks;
|
|
266
|
-
if (!hooks)
|
|
267
|
-
return false;
|
|
268
|
-
// Check if any hook command references codegraph
|
|
269
|
-
const json = JSON.stringify(hooks);
|
|
270
|
-
return json.includes('codegraph mark-dirty') || json.includes('codegraph sync-if-dirty');
|
|
271
|
-
}
|
|
272
|
-
/**
|
|
273
|
-
* Write Claude Code hooks to settings.json for auto-sync.
|
|
274
|
-
* Merges with existing hooks, deduplicating any previous codegraph entries.
|
|
275
|
-
*/
|
|
276
|
-
function writeHooks(location) {
|
|
277
|
-
const settingsPath = getSettingsJsonPath(location);
|
|
278
|
-
const settings = readJsonFile(settingsPath);
|
|
279
|
-
if (!settings.hooks) {
|
|
280
|
-
settings.hooks = {};
|
|
281
|
-
}
|
|
282
|
-
const newHooks = getHooksConfig();
|
|
283
|
-
// For each hook event (PostToolUse, Stop), merge with existing entries
|
|
284
|
-
for (const [event, newEntries] of Object.entries(newHooks)) {
|
|
285
|
-
if (!Array.isArray(settings.hooks[event])) {
|
|
286
|
-
settings.hooks[event] = [];
|
|
287
|
-
}
|
|
288
|
-
// Remove any existing codegraph entries for this event
|
|
289
|
-
settings.hooks[event] = settings.hooks[event].filter((entry) => {
|
|
290
|
-
// Keep entries that don't reference codegraph
|
|
291
|
-
const entryJson = JSON.stringify(entry);
|
|
292
|
-
return !entryJson.includes('codegraph mark-dirty') && !entryJson.includes('codegraph sync-if-dirty');
|
|
293
|
-
});
|
|
294
|
-
// Add new codegraph entries
|
|
295
|
-
settings.hooks[event].push(...newEntries);
|
|
296
|
-
}
|
|
297
|
-
writeJsonFile(settingsPath, settings);
|
|
298
|
-
}
|
|
299
216
|
/**
|
|
300
217
|
* Get the path to CLAUDE.md
|
|
301
218
|
* - Global: ~/.claude/CLAUDE.md
|
|
@@ -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,13 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* CodeGraph Interactive Installer
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* with Claude Code.
|
|
4
|
+
* Uses @clack/prompts for a polished interactive CLI experience.
|
|
6
5
|
*/
|
|
7
|
-
import { InstallLocation } from './
|
|
6
|
+
import type { InstallLocation } from './config-writer';
|
|
8
7
|
/**
|
|
9
8
|
* Run the interactive installer
|
|
10
9
|
*/
|
|
11
10
|
export declare function runInstaller(): Promise<void>;
|
|
12
|
-
export { InstallLocation };
|
|
11
|
+
export type { InstallLocation };
|
|
13
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/installer/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/installer/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AA4BvD;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAyElD;AAoFD,YAAY,EAAE,eAAe,EAAE,CAAC"}
|
package/dist/installer/index.js
CHANGED
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* CodeGraph Interactive Installer
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* with Claude Code.
|
|
5
|
+
* Uses @clack/prompts for a polished interactive CLI experience.
|
|
7
6
|
*/
|
|
8
7
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
8
|
if (k2 === undefined) k2 = k;
|
|
@@ -41,124 +40,128 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
41
40
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
41
|
exports.runInstaller = runInstaller;
|
|
43
42
|
const child_process_1 = require("child_process");
|
|
44
|
-
const
|
|
45
|
-
const
|
|
43
|
+
const path = __importStar(require("path"));
|
|
44
|
+
const fs = __importStar(require("fs"));
|
|
46
45
|
const config_writer_1 = require("./config-writer");
|
|
46
|
+
// Dynamic import helper — tsc compiles import() to require() in CJS mode,
|
|
47
|
+
// which fails for ESM-only packages. This bypasses the transformation.
|
|
48
|
+
// eslint-disable-next-line @typescript-eslint/no-implied-eval
|
|
49
|
+
const importESM = new Function('specifier', 'return import(specifier)');
|
|
47
50
|
/**
|
|
48
51
|
* Format a number with commas
|
|
49
52
|
*/
|
|
50
53
|
function formatNumber(n) {
|
|
51
54
|
return n.toLocaleString();
|
|
52
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* Get the package version
|
|
58
|
+
*/
|
|
59
|
+
function getVersion() {
|
|
60
|
+
try {
|
|
61
|
+
const packageJsonPath = path.join(__dirname, '..', '..', 'package.json');
|
|
62
|
+
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
|
|
63
|
+
return packageJson.version;
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return '0.0.0';
|
|
67
|
+
}
|
|
68
|
+
}
|
|
53
69
|
/**
|
|
54
70
|
* Run the interactive installer
|
|
55
71
|
*/
|
|
56
72
|
async function runInstaller() {
|
|
57
|
-
|
|
58
|
-
(
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
console.log(banner_1.chalk.dim(' Installing codegraph globally...'));
|
|
68
|
-
try {
|
|
69
|
-
(0, child_process_1.execSync)('npm install -g @colbymchenry/codegraph', { stdio: 'pipe' });
|
|
70
|
-
(0, banner_1.success)('Installed codegraph command globally');
|
|
71
|
-
}
|
|
72
|
-
catch {
|
|
73
|
-
(0, banner_1.info)('Could not install globally (permission denied)');
|
|
74
|
-
(0, banner_1.info)('Try: sudo npm install -g @colbymchenry/codegraph');
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
(0, banner_1.info)('Skipped global install — hooks and MCP server may not work without it');
|
|
79
|
-
(0, banner_1.info)('You can install later: npm install -g @colbymchenry/codegraph');
|
|
80
|
-
}
|
|
81
|
-
console.log();
|
|
82
|
-
// Step 2: Ask for installation location
|
|
83
|
-
const location = await (0, prompts_1.promptInstallLocation)();
|
|
84
|
-
console.log();
|
|
85
|
-
// Step 3: Ask about auto-allow permissions
|
|
86
|
-
const autoAllow = await (0, prompts_1.promptAutoAllow)();
|
|
87
|
-
console.log();
|
|
88
|
-
// Step 4: Ask about anonymous error reporting
|
|
89
|
-
console.log(banner_1.chalk.bold(' Send anonymous error reports?') + banner_1.chalk.dim(' (Helps fix bugs — no source code collected)'));
|
|
90
|
-
console.log();
|
|
91
|
-
const enableTelemetry = await (0, prompts_1.promptConfirm)('Enable anonymous error reporting', true);
|
|
92
|
-
if (!enableTelemetry) {
|
|
93
|
-
(0, banner_1.info)('Telemetry disabled');
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
(0, banner_1.success)('Anonymous error reporting enabled');
|
|
97
|
-
}
|
|
98
|
-
console.log();
|
|
99
|
-
// Step 5: Write MCP configuration (includes telemetry env if opted out)
|
|
100
|
-
const alreadyHasMcp = (0, config_writer_1.hasMcpConfig)(location);
|
|
101
|
-
(0, config_writer_1.writeMcpConfig)(location, { telemetry: enableTelemetry });
|
|
102
|
-
if (alreadyHasMcp) {
|
|
103
|
-
(0, banner_1.success)(`Updated MCP server in ${location === 'global' ? '~/.claude.json' : './.claude.json'}`);
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
(0, banner_1.success)(`Added MCP server to ${location === 'global' ? '~/.claude.json' : './.claude.json'}`);
|
|
107
|
-
}
|
|
108
|
-
if (autoAllow) {
|
|
109
|
-
const alreadyHasPerms = (0, config_writer_1.hasPermissions)(location);
|
|
110
|
-
(0, config_writer_1.writePermissions)(location);
|
|
111
|
-
if (alreadyHasPerms) {
|
|
112
|
-
(0, banner_1.success)(`Updated permissions in ${location === 'global' ? '~/.claude/settings.json' : './.claude/settings.json'}`);
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
(0, banner_1.success)(`Added permissions to ${location === 'global' ? '~/.claude/settings.json' : './.claude/settings.json'}`);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
// Step 6: Write auto-sync hooks
|
|
119
|
-
const alreadyHasHooks = (0, config_writer_1.hasHooks)(location);
|
|
120
|
-
(0, config_writer_1.writeHooks)(location);
|
|
121
|
-
if (alreadyHasHooks) {
|
|
122
|
-
(0, banner_1.success)(`Updated auto-sync hooks in ${location === 'global' ? '~/.claude/settings.json' : './.claude/settings.json'}`);
|
|
123
|
-
}
|
|
124
|
-
else {
|
|
125
|
-
(0, banner_1.success)(`Added auto-sync hooks to ${location === 'global' ? '~/.claude/settings.json' : './.claude/settings.json'}`);
|
|
126
|
-
}
|
|
127
|
-
// Step 7: Write CLAUDE.md instructions
|
|
128
|
-
const claudeMdResult = (0, config_writer_1.writeClaudeMd)(location);
|
|
129
|
-
const claudeMdPath = location === 'global' ? '~/.claude/CLAUDE.md' : './.claude/CLAUDE.md';
|
|
130
|
-
if (claudeMdResult.created) {
|
|
131
|
-
(0, banner_1.success)(`Created ${claudeMdPath} with CodeGraph instructions`);
|
|
132
|
-
}
|
|
133
|
-
else if (claudeMdResult.updated) {
|
|
134
|
-
(0, banner_1.success)(`Updated CodeGraph section in ${claudeMdPath}`);
|
|
135
|
-
}
|
|
136
|
-
else {
|
|
137
|
-
(0, banner_1.success)(`Added CodeGraph instructions to ${claudeMdPath}`);
|
|
138
|
-
}
|
|
139
|
-
// Step 7: For local install, initialize the project
|
|
140
|
-
if (location === 'local') {
|
|
141
|
-
await initializeLocalProject();
|
|
142
|
-
}
|
|
143
|
-
// Show next steps
|
|
144
|
-
(0, banner_1.showNextSteps)(location);
|
|
73
|
+
const clack = await importESM('@clack/prompts');
|
|
74
|
+
clack.intro(`CodeGraph v${getVersion()}`);
|
|
75
|
+
// Step 1: Install globally
|
|
76
|
+
const shouldInstallGlobally = await clack.confirm({
|
|
77
|
+
message: 'Install codegraph globally? (Required for MCP server)',
|
|
78
|
+
initialValue: true,
|
|
79
|
+
});
|
|
80
|
+
if (clack.isCancel(shouldInstallGlobally)) {
|
|
81
|
+
clack.cancel('Installation cancelled.');
|
|
82
|
+
process.exit(0);
|
|
145
83
|
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
84
|
+
if (shouldInstallGlobally) {
|
|
85
|
+
const s = clack.spinner();
|
|
86
|
+
s.start('Installing codegraph globally...');
|
|
87
|
+
try {
|
|
88
|
+
(0, child_process_1.execSync)('npm install -g @colbymchenry/codegraph', { stdio: 'pipe' });
|
|
89
|
+
s.stop('Installed codegraph globally');
|
|
151
90
|
}
|
|
152
|
-
|
|
153
|
-
|
|
91
|
+
catch {
|
|
92
|
+
s.stop('Could not install globally (permission denied)');
|
|
93
|
+
clack.log.warn('Try: sudo npm install -g @colbymchenry/codegraph');
|
|
154
94
|
}
|
|
155
|
-
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
clack.log.info('Skipped global install — MCP server may not work without it');
|
|
98
|
+
}
|
|
99
|
+
// Step 2: Installation location
|
|
100
|
+
const location = await clack.select({
|
|
101
|
+
message: 'Where would you like to install?',
|
|
102
|
+
options: [
|
|
103
|
+
{ value: 'global', label: 'Global', hint: '~/.claude — available in all projects' },
|
|
104
|
+
{ value: 'local', label: 'Local', hint: './.claude — this project only' },
|
|
105
|
+
],
|
|
106
|
+
initialValue: 'global',
|
|
107
|
+
});
|
|
108
|
+
if (clack.isCancel(location)) {
|
|
109
|
+
clack.cancel('Installation cancelled.');
|
|
110
|
+
process.exit(0);
|
|
111
|
+
}
|
|
112
|
+
// Step 3: Auto-allow permissions
|
|
113
|
+
const autoAllow = await clack.confirm({
|
|
114
|
+
message: 'Auto-allow CodeGraph commands? (Skips permission prompts)',
|
|
115
|
+
initialValue: true,
|
|
116
|
+
});
|
|
117
|
+
if (clack.isCancel(autoAllow)) {
|
|
118
|
+
clack.cancel('Installation cancelled.');
|
|
119
|
+
process.exit(0);
|
|
120
|
+
}
|
|
121
|
+
// Step 4: Write configuration files
|
|
122
|
+
writeConfigs(clack, location, autoAllow);
|
|
123
|
+
// Step 5: For local install, initialize the project
|
|
124
|
+
if (location === 'local') {
|
|
125
|
+
await initializeLocalProject(clack);
|
|
126
|
+
}
|
|
127
|
+
// Done
|
|
128
|
+
if (location === 'global') {
|
|
129
|
+
clack.note('cd your-project\ncodegraph init -i', 'Quick start');
|
|
130
|
+
}
|
|
131
|
+
clack.outro('Done! Restart Claude Code to use CodeGraph.');
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Write all configuration files and log results
|
|
135
|
+
*/
|
|
136
|
+
function writeConfigs(clack, location, autoAllow) {
|
|
137
|
+
const locationLabel = location === 'global' ? '~/.claude' : './.claude';
|
|
138
|
+
// MCP config
|
|
139
|
+
const mcpAction = (0, config_writer_1.hasMcpConfig)(location) ? 'Updated' : 'Added';
|
|
140
|
+
(0, config_writer_1.writeMcpConfig)(location);
|
|
141
|
+
clack.log.success(`${mcpAction} MCP server in ${locationLabel}.json`);
|
|
142
|
+
// Permissions
|
|
143
|
+
if (autoAllow) {
|
|
144
|
+
const permAction = (0, config_writer_1.hasPermissions)(location) ? 'Updated' : 'Added';
|
|
145
|
+
(0, config_writer_1.writePermissions)(location);
|
|
146
|
+
clack.log.success(`${permAction} permissions in ${locationLabel}/settings.json`);
|
|
147
|
+
}
|
|
148
|
+
// CLAUDE.md
|
|
149
|
+
const claudeMdResult = (0, config_writer_1.writeClaudeMd)(location);
|
|
150
|
+
const claudeMdPath = `${locationLabel}/CLAUDE.md`;
|
|
151
|
+
if (claudeMdResult.created) {
|
|
152
|
+
clack.log.success(`Created ${claudeMdPath}`);
|
|
153
|
+
}
|
|
154
|
+
else if (claudeMdResult.updated) {
|
|
155
|
+
clack.log.success(`Updated ${claudeMdPath}`);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
clack.log.success(`Added CodeGraph instructions to ${claudeMdPath}`);
|
|
156
159
|
}
|
|
157
160
|
}
|
|
158
161
|
/**
|
|
159
162
|
* Initialize CodeGraph in the current project (for local installs)
|
|
160
163
|
*/
|
|
161
|
-
async function initializeLocalProject() {
|
|
164
|
+
async function initializeLocalProject(clack) {
|
|
162
165
|
const projectPath = process.cwd();
|
|
163
166
|
// Lazy-load CodeGraph (requires native modules)
|
|
164
167
|
let CodeGraph;
|
|
@@ -167,43 +170,31 @@ async function initializeLocalProject() {
|
|
|
167
170
|
}
|
|
168
171
|
catch (err) {
|
|
169
172
|
const msg = err instanceof Error ? err.message : String(err);
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
(0, banner_1.info)('If this persists, try a Node.js LTS version (20 or 22).');
|
|
173
|
+
clack.log.error(`Could not load native modules: ${msg}`);
|
|
174
|
+
clack.log.info('Skipping project initialization. Run "codegraph init -i" later.');
|
|
173
175
|
return;
|
|
174
176
|
}
|
|
175
177
|
// Check if already initialized
|
|
176
178
|
if (CodeGraph.isInitialized(projectPath)) {
|
|
177
|
-
|
|
179
|
+
clack.log.info('CodeGraph already initialized in this project');
|
|
178
180
|
return;
|
|
179
181
|
}
|
|
180
|
-
|
|
181
|
-
console.log(banner_1.chalk.dim(' Initializing CodeGraph in current project...'));
|
|
182
|
-
// Initialize CodeGraph
|
|
182
|
+
// Initialize
|
|
183
183
|
const cg = await CodeGraph.init(projectPath);
|
|
184
|
-
|
|
185
|
-
// Index the project
|
|
184
|
+
clack.log.success('Created .codegraph/ directory');
|
|
185
|
+
// Index the project with shimmer progress (worker thread for smooth animation)
|
|
186
|
+
const { createShimmerProgress } = await Promise.resolve().then(() => __importStar(require('../ui/shimmer-progress')));
|
|
187
|
+
process.stdout.write(`\x1b[2m│\x1b[0m\n`);
|
|
188
|
+
const progress = createShimmerProgress();
|
|
186
189
|
const result = await cg.indexAll({
|
|
187
|
-
onProgress:
|
|
188
|
-
// Simple progress indicator
|
|
189
|
-
const phaseNames = {
|
|
190
|
-
scanning: 'Scanning files',
|
|
191
|
-
parsing: 'Parsing code',
|
|
192
|
-
storing: 'Storing data',
|
|
193
|
-
resolving: 'Resolving refs',
|
|
194
|
-
};
|
|
195
|
-
const phaseName = phaseNames[progress.phase] || progress.phase;
|
|
196
|
-
const percent = progress.total > 0 ? Math.round((progress.current / progress.total) * 100) : 0;
|
|
197
|
-
process.stdout.write(`\r ${banner_1.chalk.dim(phaseName)}... ${percent}% `);
|
|
198
|
-
},
|
|
190
|
+
onProgress: progress.onProgress,
|
|
199
191
|
});
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
(0, banner_1.success)(`Indexed ${formatNumber(result.filesIndexed)} files (${formatNumber(result.nodesCreated)} symbols)`);
|
|
192
|
+
await progress.stop();
|
|
193
|
+
if (result.filesErrored > 0) {
|
|
194
|
+
clack.log.success(`Indexed ${formatNumber(result.filesIndexed)} files (${formatNumber(result.filesErrored)} failed, ${formatNumber(result.nodesCreated)} symbols)`);
|
|
204
195
|
}
|
|
205
196
|
else {
|
|
206
|
-
|
|
197
|
+
clack.log.success(`Indexed ${formatNumber(result.filesIndexed)} files (${formatNumber(result.nodesCreated)} symbols)`);
|
|
207
198
|
}
|
|
208
199
|
cg.close();
|
|
209
200
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/installer/index.ts"],"names":[],"mappings":";AAAA
|
|
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
|
@@ -51,6 +51,11 @@ export declare class MCPServer {
|
|
|
51
51
|
* initialized after the MCP server started.
|
|
52
52
|
*/
|
|
53
53
|
private retryInitIfNeeded;
|
|
54
|
+
/**
|
|
55
|
+
* Start file watching on the active CodeGraph instance.
|
|
56
|
+
* Logs sync activity to stderr for diagnostics.
|
|
57
|
+
*/
|
|
58
|
+
private startWatching;
|
|
54
59
|
/**
|
|
55
60
|
* Stop the server
|
|
56
61
|
*/
|
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;AAuCH;;;;;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;IAe5B;;;;;;;;;OASG;YACW,oBAAoB;IAsBlC;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAwBzB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAqBrB;;OAEG;IACH,IAAI,IAAI,IAAI;IAYZ;;OAEG;YACW,aAAa;IA6C3B;;OAEG;YACW,gBAAgB;IAiC9B;;OAEG;YACW,eAAe;IAO7B;;OAEG;YACW,eAAe;CAqC9B;AAGD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
|