@colbymchenry/codegraph 0.2.9 → 0.5.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 -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 +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 -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 +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 +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 +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/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/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 +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 +74 -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/vectors/search.js
CHANGED
|
@@ -111,21 +111,21 @@ class VectorSearchManager {
|
|
|
111
111
|
if (!tableExists) {
|
|
112
112
|
// Create VSS virtual table
|
|
113
113
|
// vss0 is the vector search extension
|
|
114
|
-
this.db.exec(`
|
|
115
|
-
CREATE VIRTUAL TABLE IF NOT EXISTS vss_vectors USING vss0(
|
|
116
|
-
embedding(${this.embeddingDimension})
|
|
117
|
-
);
|
|
114
|
+
this.db.exec(`
|
|
115
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS vss_vectors USING vss0(
|
|
116
|
+
embedding(${this.embeddingDimension})
|
|
117
|
+
);
|
|
118
118
|
`);
|
|
119
119
|
// Create mapping table to link VSS rowids to node IDs
|
|
120
|
-
this.db.exec(`
|
|
121
|
-
CREATE TABLE IF NOT EXISTS vss_map (
|
|
122
|
-
rowid INTEGER PRIMARY KEY,
|
|
123
|
-
node_id TEXT NOT NULL UNIQUE
|
|
124
|
-
);
|
|
120
|
+
this.db.exec(`
|
|
121
|
+
CREATE TABLE IF NOT EXISTS vss_map (
|
|
122
|
+
rowid INTEGER PRIMARY KEY,
|
|
123
|
+
node_id TEXT NOT NULL UNIQUE
|
|
124
|
+
);
|
|
125
125
|
`);
|
|
126
126
|
// Create index on node_id
|
|
127
|
-
this.db.exec(`
|
|
128
|
-
CREATE INDEX IF NOT EXISTS idx_vss_map_node ON vss_map(node_id);
|
|
127
|
+
this.db.exec(`
|
|
128
|
+
CREATE INDEX IF NOT EXISTS idx_vss_map_node ON vss_map(node_id);
|
|
129
129
|
`);
|
|
130
130
|
}
|
|
131
131
|
}
|
|
@@ -133,13 +133,13 @@ class VectorSearchManager {
|
|
|
133
133
|
* Ensure the basic vectors table exists (for fallback mode)
|
|
134
134
|
*/
|
|
135
135
|
ensureVectorsTable() {
|
|
136
|
-
this.db.exec(`
|
|
137
|
-
CREATE TABLE IF NOT EXISTS vectors (
|
|
138
|
-
node_id TEXT PRIMARY KEY,
|
|
139
|
-
embedding BLOB NOT NULL,
|
|
140
|
-
model TEXT NOT NULL,
|
|
141
|
-
created_at INTEGER NOT NULL
|
|
142
|
-
);
|
|
136
|
+
this.db.exec(`
|
|
137
|
+
CREATE TABLE IF NOT EXISTS vectors (
|
|
138
|
+
node_id TEXT PRIMARY KEY,
|
|
139
|
+
embedding BLOB NOT NULL,
|
|
140
|
+
model TEXT NOT NULL,
|
|
141
|
+
created_at INTEGER NOT NULL
|
|
142
|
+
);
|
|
143
143
|
`);
|
|
144
144
|
}
|
|
145
145
|
/**
|
|
@@ -160,9 +160,9 @@ class VectorSearchManager {
|
|
|
160
160
|
// Store in the vectors table (always, for persistence)
|
|
161
161
|
const blob = Buffer.from(embedding.buffer);
|
|
162
162
|
this.db
|
|
163
|
-
.prepare(`
|
|
164
|
-
INSERT OR REPLACE INTO vectors (node_id, embedding, model, created_at)
|
|
165
|
-
VALUES (?, ?, ?, ?)
|
|
163
|
+
.prepare(`
|
|
164
|
+
INSERT OR REPLACE INTO vectors (node_id, embedding, model, created_at)
|
|
165
|
+
VALUES (?, ?, ?, ?)
|
|
166
166
|
`)
|
|
167
167
|
.run(nodeId, blob, model, now);
|
|
168
168
|
// Also store in VSS table if enabled
|
|
@@ -221,9 +221,9 @@ class VectorSearchManager {
|
|
|
221
221
|
for (const entry of entries) {
|
|
222
222
|
const blob = Buffer.from(entry.embedding.buffer);
|
|
223
223
|
this.db
|
|
224
|
-
.prepare(`
|
|
225
|
-
INSERT OR REPLACE INTO vectors (node_id, embedding, model, created_at)
|
|
226
|
-
VALUES (?, ?, ?, ?)
|
|
224
|
+
.prepare(`
|
|
225
|
+
INSERT OR REPLACE INTO vectors (node_id, embedding, model, created_at)
|
|
226
|
+
VALUES (?, ?, ?, ?)
|
|
227
227
|
`)
|
|
228
228
|
.run(entry.nodeId, blob, model, now);
|
|
229
229
|
if (this.vssEnabled) {
|
|
@@ -293,14 +293,15 @@ class VectorSearchManager {
|
|
|
293
293
|
// The distance is L2 (euclidean), we need to convert to similarity score
|
|
294
294
|
// Note: sqlite-vss requires LIMIT to be a literal, not a parameter
|
|
295
295
|
const rows = this.db
|
|
296
|
-
.prepare(`
|
|
297
|
-
SELECT
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
296
|
+
.prepare(`
|
|
297
|
+
SELECT m.node_id, v.distance
|
|
298
|
+
FROM (
|
|
299
|
+
SELECT rowid, distance
|
|
300
|
+
FROM vss_vectors
|
|
301
|
+
WHERE vss_search(embedding, ?)
|
|
302
|
+
LIMIT ${safeLimit}
|
|
303
|
+
) v
|
|
304
|
+
JOIN vss_map m ON m.rowid = v.rowid
|
|
304
305
|
`)
|
|
305
306
|
.all(vectorJson);
|
|
306
307
|
// Convert L2 distance to similarity score (1 / (1 + distance))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/vectors/search.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/vectors/search.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,65 +1,74 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@colbymchenry/codegraph",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Supercharge Claude Code with semantic code intelligence. 30% fewer tokens, 25% fewer tool calls, 100% local.",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"types": "dist/index.d.ts",
|
|
7
|
-
"bin": {
|
|
8
|
-
"codegraph": "./dist/bin/codegraph.js"
|
|
9
|
-
},
|
|
10
|
-
"files": [
|
|
11
|
-
"dist",
|
|
12
|
-
"
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"test
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"tree-sitter
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
"tree-sitter-
|
|
53
|
-
"
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
"
|
|
64
|
-
|
|
65
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@colbymchenry/codegraph",
|
|
3
|
+
"version": "0.5.0",
|
|
4
|
+
"description": "Supercharge Claude Code with semantic code intelligence. 30% fewer tokens, 25% fewer tool calls, 100% local.",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"bin": {
|
|
8
|
+
"codegraph": "./dist/bin/codegraph.js"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist",
|
|
12
|
+
"scripts",
|
|
13
|
+
"README.md"
|
|
14
|
+
],
|
|
15
|
+
"scripts": {
|
|
16
|
+
"build": "tsc && npm run copy-assets",
|
|
17
|
+
"postinstall": "node scripts/postinstall.js",
|
|
18
|
+
"copy-assets": "node -e \"const fs=require('fs');fs.mkdirSync('dist/db',{recursive:true});fs.copyFileSync('src/db/schema.sql','dist/db/schema.sql')\"",
|
|
19
|
+
"dev": "tsc --watch",
|
|
20
|
+
"cli": "npm run build && node dist/bin/codegraph.js",
|
|
21
|
+
"test": "vitest run",
|
|
22
|
+
"test:watch": "vitest",
|
|
23
|
+
"test:eval": "vitest run __tests__/evaluation/",
|
|
24
|
+
"eval": "npm run build && npx tsx __tests__/evaluation/runner.ts",
|
|
25
|
+
"clean": "node -e \"const fs=require('fs');fs.rmSync('dist',{recursive:true,force:true})\""
|
|
26
|
+
},
|
|
27
|
+
"keywords": [
|
|
28
|
+
"code-intelligence",
|
|
29
|
+
"knowledge-graph",
|
|
30
|
+
"static-analysis",
|
|
31
|
+
"semantic-search"
|
|
32
|
+
],
|
|
33
|
+
"author": "",
|
|
34
|
+
"license": "MIT",
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"@xenova/transformers": "^2.17.0",
|
|
37
|
+
"better-sqlite3": "^11.0.0",
|
|
38
|
+
"commander": "^14.0.2",
|
|
39
|
+
"figlet": "^1.8.0",
|
|
40
|
+
"picomatch": "^4.0.3",
|
|
41
|
+
"tree-sitter": "0.22.4"
|
|
42
|
+
},
|
|
43
|
+
"devDependencies": {
|
|
44
|
+
"@types/better-sqlite3": "^7.6.0",
|
|
45
|
+
"@types/figlet": "^1.5.8",
|
|
46
|
+
"@types/node": "^20.19.30",
|
|
47
|
+
"@types/picomatch": "^4.0.2",
|
|
48
|
+
"typescript": "^5.0.0",
|
|
49
|
+
"vitest": "^2.1.9"
|
|
50
|
+
},
|
|
51
|
+
"optionalDependencies": {
|
|
52
|
+
"@sengac/tree-sitter-dart": "1.1.6",
|
|
53
|
+
"sqlite-vss": "^0.1.2",
|
|
54
|
+
"tree-sitter-c": "0.23.2",
|
|
55
|
+
"tree-sitter-c-sharp": "0.23.1",
|
|
56
|
+
"tree-sitter-cpp": "0.23.4",
|
|
57
|
+
"tree-sitter-go": "0.23.4",
|
|
58
|
+
"tree-sitter-java": "0.23.5",
|
|
59
|
+
"tree-sitter-javascript": "0.23.1",
|
|
60
|
+
"tree-sitter-kotlin": "0.3.8",
|
|
61
|
+
"tree-sitter-php": "0.23.11",
|
|
62
|
+
"tree-sitter-python": "0.23.4",
|
|
63
|
+
"tree-sitter-ruby": "0.23.1",
|
|
64
|
+
"tree-sitter-rust": "0.23.1",
|
|
65
|
+
"tree-sitter-swift": "0.6.0",
|
|
66
|
+
"tree-sitter-typescript": "0.23.2"
|
|
67
|
+
},
|
|
68
|
+
"engines": {
|
|
69
|
+
"node": ">=18.0.0"
|
|
70
|
+
},
|
|
71
|
+
"overrides": {
|
|
72
|
+
"tree-sitter": "0.22.4"
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Patches tree-sitter-dart to use NAPI bindings compatible with tree-sitter 0.22+
|
|
4
|
+
*
|
|
5
|
+
* tree-sitter-dart v1.0.0 ships with NAN-style bindings that are incompatible
|
|
6
|
+
* with tree-sitter 0.22+ which expects NAPI-style bindings with type-tagged
|
|
7
|
+
* externals. This script rewrites the binding files and rebuilds.
|
|
8
|
+
*/
|
|
9
|
+
const { writeFileSync, existsSync } = require('fs');
|
|
10
|
+
const { join } = require('path');
|
|
11
|
+
const { execSync } = require('child_process');
|
|
12
|
+
|
|
13
|
+
const DART_DIR = join(__dirname, '..', 'node_modules', 'tree-sitter-dart');
|
|
14
|
+
|
|
15
|
+
if (!existsSync(DART_DIR)) {
|
|
16
|
+
// tree-sitter-dart not installed, skip
|
|
17
|
+
process.exit(0);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// Check if already patched (look for NAPI-style binding)
|
|
21
|
+
const bindingPath = join(DART_DIR, 'bindings', 'node', 'binding.cc');
|
|
22
|
+
const { readFileSync } = require('fs');
|
|
23
|
+
try {
|
|
24
|
+
const existing = readFileSync(bindingPath, 'utf8');
|
|
25
|
+
if (existing.includes('napi.h')) {
|
|
26
|
+
// Already patched, check if build exists
|
|
27
|
+
const buildPath = join(DART_DIR, 'build', 'Release', 'tree_sitter_dart_binding.node');
|
|
28
|
+
if (existsSync(buildPath)) {
|
|
29
|
+
console.log('tree-sitter-dart: already patched and built.');
|
|
30
|
+
process.exit(0);
|
|
31
|
+
}
|
|
32
|
+
// Patched but not built, fall through to rebuild
|
|
33
|
+
}
|
|
34
|
+
} catch {
|
|
35
|
+
// Can't read, continue with patch
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
console.log('Patching tree-sitter-dart for NAPI compatibility...');
|
|
39
|
+
|
|
40
|
+
// Write NAPI-compatible binding.cc
|
|
41
|
+
const bindingCC = `#include <napi.h>
|
|
42
|
+
|
|
43
|
+
typedef struct TSLanguage TSLanguage;
|
|
44
|
+
|
|
45
|
+
extern "C" TSLanguage *tree_sitter_dart();
|
|
46
|
+
|
|
47
|
+
// "tree-sitter", "language" hashed with BLAKE2
|
|
48
|
+
const napi_type_tag LANGUAGE_TYPE_TAG = {
|
|
49
|
+
0x8AF2E5212AD58ABF, 0xD5006CAD83ABBA16
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
Napi::Object Init(Napi::Env env, Napi::Object exports) {
|
|
53
|
+
exports["name"] = Napi::String::New(env, "dart");
|
|
54
|
+
auto language = Napi::External<TSLanguage>::New(env, tree_sitter_dart());
|
|
55
|
+
language.TypeTag(&LANGUAGE_TYPE_TAG);
|
|
56
|
+
exports["language"] = language;
|
|
57
|
+
return exports;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
NODE_API_MODULE(tree_sitter_dart_binding, Init)
|
|
61
|
+
`;
|
|
62
|
+
writeFileSync(bindingPath, bindingCC);
|
|
63
|
+
|
|
64
|
+
// Write NAPI-compatible binding.gyp
|
|
65
|
+
const bindingGyp = `{
|
|
66
|
+
"targets": [
|
|
67
|
+
{
|
|
68
|
+
"target_name": "tree_sitter_dart_binding",
|
|
69
|
+
"dependencies": [
|
|
70
|
+
"<!(node -p \\"require('node-addon-api').targets\\"):node_addon_api_except"
|
|
71
|
+
],
|
|
72
|
+
"include_dirs": [
|
|
73
|
+
"src"
|
|
74
|
+
],
|
|
75
|
+
"sources": [
|
|
76
|
+
"src/parser.c",
|
|
77
|
+
"bindings/node/binding.cc",
|
|
78
|
+
"src/scanner.c"
|
|
79
|
+
],
|
|
80
|
+
"conditions": [
|
|
81
|
+
["OS!='win'", {
|
|
82
|
+
"cflags_c": [
|
|
83
|
+
"-std=c99"
|
|
84
|
+
]
|
|
85
|
+
}, {
|
|
86
|
+
"cflags_c": [
|
|
87
|
+
"/std:c11",
|
|
88
|
+
"/utf-8"
|
|
89
|
+
]
|
|
90
|
+
}]
|
|
91
|
+
]
|
|
92
|
+
}
|
|
93
|
+
]
|
|
94
|
+
}
|
|
95
|
+
`;
|
|
96
|
+
writeFileSync(join(DART_DIR, 'binding.gyp'), bindingGyp);
|
|
97
|
+
|
|
98
|
+
// Rebuild native module
|
|
99
|
+
try {
|
|
100
|
+
execSync('npx node-gyp rebuild', {
|
|
101
|
+
cwd: DART_DIR,
|
|
102
|
+
stdio: 'pipe',
|
|
103
|
+
timeout: 120000,
|
|
104
|
+
});
|
|
105
|
+
console.log('tree-sitter-dart: patched and rebuilt successfully.');
|
|
106
|
+
} catch (error) {
|
|
107
|
+
console.error('Warning: Failed to rebuild tree-sitter-dart native module.');
|
|
108
|
+
console.error('Dart language support may not work.');
|
|
109
|
+
if (process.env.DEBUG) {
|
|
110
|
+
console.error(error.stderr?.toString());
|
|
111
|
+
}
|
|
112
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Postinstall script - downloads the embedding model to ~/.codegraph/models
|
|
4
|
+
* This runs after `npm install` or `npx @colbymchenry/codegraph`
|
|
5
|
+
*/
|
|
6
|
+
const { existsSync, mkdirSync } = require('fs');
|
|
7
|
+
const { join } = require('path');
|
|
8
|
+
const { homedir } = require('os');
|
|
9
|
+
|
|
10
|
+
const CODEGRAPH_DIR = join(homedir(), '.codegraph');
|
|
11
|
+
const MODELS_DIR = join(CODEGRAPH_DIR, 'models');
|
|
12
|
+
const MODEL_ID = 'nomic-ai/nomic-embed-text-v1.5';
|
|
13
|
+
|
|
14
|
+
async function downloadModel() {
|
|
15
|
+
// Ensure directories exist
|
|
16
|
+
if (!existsSync(CODEGRAPH_DIR)) {
|
|
17
|
+
mkdirSync(CODEGRAPH_DIR, { recursive: true });
|
|
18
|
+
}
|
|
19
|
+
if (!existsSync(MODELS_DIR)) {
|
|
20
|
+
mkdirSync(MODELS_DIR, { recursive: true });
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// Check if model is already cached
|
|
24
|
+
const modelCachePath = join(MODELS_DIR, MODEL_ID.replace('/', '/'));
|
|
25
|
+
if (existsSync(modelCachePath)) {
|
|
26
|
+
console.log('Embedding model already downloaded.');
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
console.log('Downloading embedding model (~130MB)...');
|
|
31
|
+
console.log('This is a one-time download for semantic code search.\n');
|
|
32
|
+
|
|
33
|
+
try {
|
|
34
|
+
// Dynamic import for @xenova/transformers (ESM-only package)
|
|
35
|
+
const { pipeline, env } = await import('@xenova/transformers');
|
|
36
|
+
|
|
37
|
+
// Configure cache directory
|
|
38
|
+
env.cacheDir = MODELS_DIR;
|
|
39
|
+
|
|
40
|
+
// Download with progress
|
|
41
|
+
await pipeline('feature-extraction', MODEL_ID, {
|
|
42
|
+
progress_callback: (progress) => {
|
|
43
|
+
if (progress.status === 'progress' && progress.file && progress.progress !== undefined) {
|
|
44
|
+
const fileName = progress.file.split('/').pop();
|
|
45
|
+
const percent = Math.round(progress.progress);
|
|
46
|
+
process.stdout.write(`\rDownloading ${fileName}... ${percent}% `);
|
|
47
|
+
} else if (progress.status === 'done') {
|
|
48
|
+
process.stdout.write('\n');
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
console.log('\nEmbedding model ready!');
|
|
54
|
+
} catch (error) {
|
|
55
|
+
// Don't fail the install if model download fails
|
|
56
|
+
// User can still use codegraph without semantic search
|
|
57
|
+
console.log('\nNote: Could not download embedding model.');
|
|
58
|
+
console.log('Semantic search will download it on first use.');
|
|
59
|
+
if (process.env.DEBUG) {
|
|
60
|
+
console.error(error);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// @sengac/tree-sitter-dart ships with NAPI prebuilds for all platforms
|
|
66
|
+
// No patching needed (replaced old tree-sitter-dart v1.0.0 which used NAN bindings)
|
|
67
|
+
|
|
68
|
+
downloadModel().catch(() => {
|
|
69
|
+
// Silent exit - don't break npm install
|
|
70
|
+
process.exit(0);
|
|
71
|
+
});
|
package/dist/sync/git-hooks.d.ts
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Git Hooks Management
|
|
3
|
-
*
|
|
4
|
-
* Installs and manages git hooks for automatic incremental indexing.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Result of hook installation
|
|
8
|
-
*/
|
|
9
|
-
export interface HookInstallResult {
|
|
10
|
-
success: boolean;
|
|
11
|
-
hookPath: string;
|
|
12
|
-
message: string;
|
|
13
|
-
previousHookBackedUp?: boolean;
|
|
14
|
-
backupPath?: string;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Result of hook removal
|
|
18
|
-
*/
|
|
19
|
-
export interface HookRemoveResult {
|
|
20
|
-
success: boolean;
|
|
21
|
-
message: string;
|
|
22
|
-
restoredFromBackup?: boolean;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Git hooks manager
|
|
26
|
-
*/
|
|
27
|
-
export declare class GitHooksManager {
|
|
28
|
-
private gitDir;
|
|
29
|
-
private hooksDir;
|
|
30
|
-
constructor(projectRoot: string);
|
|
31
|
-
/**
|
|
32
|
-
* Check if the project is a git repository
|
|
33
|
-
*/
|
|
34
|
-
isGitRepository(): boolean;
|
|
35
|
-
/**
|
|
36
|
-
* Check if the post-commit hook is installed by CodeGraph
|
|
37
|
-
*/
|
|
38
|
-
isHookInstalled(): boolean;
|
|
39
|
-
/**
|
|
40
|
-
* Install the post-commit hook
|
|
41
|
-
*
|
|
42
|
-
* If a hook already exists:
|
|
43
|
-
* - If it's a CodeGraph hook, update it
|
|
44
|
-
* - If it's a user hook, back it up and install ours
|
|
45
|
-
*/
|
|
46
|
-
installHook(): HookInstallResult;
|
|
47
|
-
/**
|
|
48
|
-
* Remove the CodeGraph post-commit hook
|
|
49
|
-
*
|
|
50
|
-
* If a backup exists, restore it.
|
|
51
|
-
*/
|
|
52
|
-
removeHook(): HookRemoveResult;
|
|
53
|
-
/**
|
|
54
|
-
* Get the path to the hooks directory
|
|
55
|
-
*/
|
|
56
|
-
getHooksDir(): string;
|
|
57
|
-
/**
|
|
58
|
-
* Get the path to the post-commit hook
|
|
59
|
-
*/
|
|
60
|
-
getHookPath(): string;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Create a git hooks manager for a project
|
|
64
|
-
*/
|
|
65
|
-
export declare function createGitHooksManager(projectRoot: string): GitHooksManager;
|
|
66
|
-
//# sourceMappingURL=git-hooks.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"git-hooks.d.ts","sourceRoot":"","sources":["../../src/sync/git-hooks.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgDH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAS;gBAEb,WAAW,EAAE,MAAM;IAK/B;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B;;OAEG;IACH,eAAe,IAAI,OAAO;IAe1B;;;;;;OAMG;IACH,WAAW,IAAI,iBAAiB;IAgFhC;;;;OAIG;IACH,UAAU,IAAI,gBAAgB;IA8D9B;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,WAAW,IAAI,MAAM;CAGtB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,CAE1E"}
|