@mduenas/codegraph 0.5.7 → 0.6.1-beta.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/dist/bin/codegraph.js +16 -15
- package/dist/bin/codegraph.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +4 -1
- package/dist/config.js.map +1 -1
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/index.js +3 -3
- package/dist/context/index.js.map +1 -1
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +10 -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 +8 -0
- package/dist/db/queries.d.ts.map +1 -1
- package/dist/db/queries.js +51 -10
- package/dist/db/queries.js.map +1 -1
- package/dist/db/schema.sql +4 -0
- package/dist/extraction/index.d.ts.map +1 -1
- package/dist/extraction/index.js +104 -7
- package/dist/extraction/index.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 +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +51 -18
- package/dist/index.js.map +1 -1
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +4 -0
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/tools.d.ts +13 -0
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +70 -37
- package/dist/mcp/tools.js.map +1 -1
- 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 +21 -0
- package/dist/resolution/index.d.ts.map +1 -1
- package/dist/resolution/index.js +139 -24
- 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/types.d.ts +4 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -1
- package/dist/utils.d.ts +42 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +111 -1
- package/dist/utils.js.map +1 -1
- package/dist/vectors/embedder.js +1 -1
- package/dist/vectors/embedder.js.map +1 -1
- package/dist/vectors/manager.d.ts +2 -2
- package/dist/vectors/manager.js +4 -4
- package/dist/vectors/search.d.ts +17 -17
- package/dist/vectors/search.d.ts.map +1 -1
- package/dist/vectors/search.js +71 -121
- package/dist/vectors/search.js.map +1 -1
- package/package.json +2 -2
package/dist/vectors/search.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Vector Search
|
|
4
4
|
*
|
|
5
|
-
* Provides vector similarity search using sqlite-
|
|
6
|
-
* Falls back to brute-force cosine similarity if sqlite-
|
|
5
|
+
* Provides vector similarity search using sqlite-vec extension.
|
|
6
|
+
* Falls back to brute-force cosine similarity if sqlite-vec is not available.
|
|
7
7
|
*/
|
|
8
8
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
9
|
if (k2 === undefined) k2 = k;
|
|
@@ -49,7 +49,7 @@ const embedder_1 = require("./embedder");
|
|
|
49
49
|
*/
|
|
50
50
|
class VectorSearchManager {
|
|
51
51
|
db;
|
|
52
|
-
|
|
52
|
+
vecEnabled = false;
|
|
53
53
|
embeddingDimension;
|
|
54
54
|
constructor(db, dimension = embedder_1.EMBEDDING_DIMENSION) {
|
|
55
55
|
this.db = db;
|
|
@@ -58,74 +58,61 @@ class VectorSearchManager {
|
|
|
58
58
|
/**
|
|
59
59
|
* Initialize vector search
|
|
60
60
|
*
|
|
61
|
-
* Attempts to load sqlite-
|
|
61
|
+
* Attempts to load sqlite-vec extension. Falls back to brute-force
|
|
62
62
|
* search if the extension is not available.
|
|
63
63
|
*/
|
|
64
64
|
async initialize() {
|
|
65
65
|
try {
|
|
66
|
-
// Try to load sqlite-
|
|
67
|
-
await this.
|
|
68
|
-
this.
|
|
69
|
-
console.log('sqlite-
|
|
70
|
-
// Create the
|
|
71
|
-
this.
|
|
66
|
+
// Try to load sqlite-vec extension
|
|
67
|
+
await this.loadVecExtension();
|
|
68
|
+
this.vecEnabled = true;
|
|
69
|
+
console.log('sqlite-vec extension loaded successfully');
|
|
70
|
+
// Create the vec virtual table
|
|
71
|
+
this.createVecTable();
|
|
72
72
|
}
|
|
73
73
|
catch (error) {
|
|
74
74
|
// Fall back to brute-force search
|
|
75
|
-
console.warn('sqlite-
|
|
76
|
-
this.
|
|
75
|
+
console.warn('sqlite-vec extension not available, falling back to brute-force search:', error instanceof Error ? error.message : String(error));
|
|
76
|
+
this.vecEnabled = false;
|
|
77
77
|
}
|
|
78
|
-
// Ensure the vectors table exists (for both
|
|
78
|
+
// Ensure the vectors table exists (for both vec and fallback modes)
|
|
79
79
|
this.ensureVectorsTable();
|
|
80
80
|
}
|
|
81
81
|
/**
|
|
82
|
-
* Load the sqlite-
|
|
82
|
+
* Load the sqlite-vec extension
|
|
83
83
|
*/
|
|
84
|
-
async
|
|
84
|
+
async loadVecExtension() {
|
|
85
85
|
try {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
if (typeof vss.load === 'function') {
|
|
90
|
-
vss.load(this.db);
|
|
86
|
+
const sqliteVec = await Promise.resolve().then(() => __importStar(require('sqlite-vec')));
|
|
87
|
+
if (typeof sqliteVec.load === 'function') {
|
|
88
|
+
sqliteVec.load(this.db);
|
|
91
89
|
}
|
|
92
|
-
else if (typeof
|
|
93
|
-
|
|
90
|
+
else if (typeof sqliteVec.default?.load === 'function') {
|
|
91
|
+
sqliteVec.default.load(this.db);
|
|
94
92
|
}
|
|
95
93
|
else {
|
|
96
|
-
throw new Error('sqlite-
|
|
94
|
+
throw new Error('sqlite-vec load function not found');
|
|
97
95
|
}
|
|
98
96
|
}
|
|
99
97
|
catch (error) {
|
|
100
|
-
throw new Error(`Failed to load sqlite-
|
|
98
|
+
throw new Error(`Failed to load sqlite-vec: ${error instanceof Error ? error.message : String(error)}`);
|
|
101
99
|
}
|
|
102
100
|
}
|
|
103
101
|
/**
|
|
104
|
-
* Create the
|
|
102
|
+
* Create the vec virtual table for vector search
|
|
105
103
|
*/
|
|
106
|
-
|
|
104
|
+
createVecTable() {
|
|
107
105
|
// Check if the table already exists
|
|
108
106
|
const tableExists = this.db
|
|
109
|
-
.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='
|
|
107
|
+
.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='vec_vectors'")
|
|
110
108
|
.get();
|
|
111
109
|
if (!tableExists) {
|
|
112
|
-
// Create
|
|
113
|
-
// vss0 is the vector search extension
|
|
110
|
+
// Create vec0 virtual table with node_id as auxiliary column
|
|
114
111
|
this.db.exec(`
|
|
115
|
-
CREATE VIRTUAL TABLE IF NOT EXISTS
|
|
116
|
-
|
|
112
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS vec_vectors USING vec0(
|
|
113
|
+
node_id text,
|
|
114
|
+
embedding float[${this.embeddingDimension}]
|
|
117
115
|
);
|
|
118
|
-
`);
|
|
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
|
-
);
|
|
125
|
-
`);
|
|
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);
|
|
129
116
|
`);
|
|
130
117
|
}
|
|
131
118
|
}
|
|
@@ -143,10 +130,10 @@ class VectorSearchManager {
|
|
|
143
130
|
`);
|
|
144
131
|
}
|
|
145
132
|
/**
|
|
146
|
-
* Check if
|
|
133
|
+
* Check if vec extension is enabled
|
|
147
134
|
*/
|
|
148
|
-
|
|
149
|
-
return this.
|
|
135
|
+
isVecEnabled() {
|
|
136
|
+
return this.vecEnabled;
|
|
150
137
|
}
|
|
151
138
|
/**
|
|
152
139
|
* Store a vector embedding for a node
|
|
@@ -165,47 +152,25 @@ class VectorSearchManager {
|
|
|
165
152
|
VALUES (?, ?, ?, ?)
|
|
166
153
|
`)
|
|
167
154
|
.run(nodeId, blob, model, now);
|
|
168
|
-
// Also store in
|
|
169
|
-
if (this.
|
|
170
|
-
this.
|
|
155
|
+
// Also store in vec table if enabled
|
|
156
|
+
if (this.vecEnabled) {
|
|
157
|
+
this.storeInVec(nodeId, embedding);
|
|
171
158
|
}
|
|
172
159
|
}
|
|
173
160
|
/**
|
|
174
|
-
* Store vector in
|
|
161
|
+
* Store vector in vec virtual table
|
|
175
162
|
*/
|
|
176
|
-
|
|
163
|
+
storeInVec(nodeId, embedding) {
|
|
177
164
|
try {
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
const vectorJson = JSON.stringify(Array.from(embedding));
|
|
185
|
-
this.db
|
|
186
|
-
.prepare('UPDATE vss_vectors SET embedding = ? WHERE rowid = ?')
|
|
187
|
-
.run(vectorJson, existing.rowid);
|
|
188
|
-
}
|
|
189
|
-
else {
|
|
190
|
-
// Insert new vector - get max rowid and increment
|
|
191
|
-
const maxRow = this.db
|
|
192
|
-
.prepare('SELECT MAX(rowid) as max FROM vss_map')
|
|
193
|
-
.get();
|
|
194
|
-
const newRowid = (maxRow?.max ?? 0) + 1;
|
|
195
|
-
const vectorJson = JSON.stringify(Array.from(embedding));
|
|
196
|
-
this.db
|
|
197
|
-
.prepare('INSERT INTO vss_vectors (rowid, embedding) VALUES (?, ?)')
|
|
198
|
-
.run(newRowid, vectorJson);
|
|
199
|
-
// Map the rowid to node_id
|
|
200
|
-
this.db
|
|
201
|
-
.prepare('INSERT INTO vss_map (rowid, node_id) VALUES (?, ?)')
|
|
202
|
-
.run(newRowid, nodeId);
|
|
203
|
-
}
|
|
165
|
+
const buffer = Buffer.from(embedding.buffer, embedding.byteOffset, embedding.byteLength);
|
|
166
|
+
// Delete existing entry if present, then insert
|
|
167
|
+
this.db.prepare('DELETE FROM vec_vectors WHERE node_id = ?').run(nodeId);
|
|
168
|
+
this.db
|
|
169
|
+
.prepare('INSERT INTO vec_vectors(node_id, embedding) VALUES (?, ?)')
|
|
170
|
+
.run(nodeId, buffer);
|
|
204
171
|
}
|
|
205
172
|
catch (error) {
|
|
206
|
-
|
|
207
|
-
// Fall back to brute-force search silently
|
|
208
|
-
console.warn('VSS storage failed, using brute-force search:', error instanceof Error ? error.message : String(error));
|
|
173
|
+
console.warn('vec storage failed, using brute-force search:', error instanceof Error ? error.message : String(error));
|
|
209
174
|
}
|
|
210
175
|
}
|
|
211
176
|
/**
|
|
@@ -226,8 +191,8 @@ class VectorSearchManager {
|
|
|
226
191
|
VALUES (?, ?, ?, ?)
|
|
227
192
|
`)
|
|
228
193
|
.run(entry.nodeId, blob, model, now);
|
|
229
|
-
if (this.
|
|
230
|
-
this.
|
|
194
|
+
if (this.vecEnabled) {
|
|
195
|
+
this.storeInVec(entry.nodeId, entry.embedding);
|
|
231
196
|
}
|
|
232
197
|
}
|
|
233
198
|
})();
|
|
@@ -254,15 +219,8 @@ class VectorSearchManager {
|
|
|
254
219
|
*/
|
|
255
220
|
deleteVector(nodeId) {
|
|
256
221
|
this.db.prepare('DELETE FROM vectors WHERE node_id = ?').run(nodeId);
|
|
257
|
-
if (this.
|
|
258
|
-
|
|
259
|
-
const mapping = this.db
|
|
260
|
-
.prepare('SELECT rowid FROM vss_map WHERE node_id = ?')
|
|
261
|
-
.get(nodeId);
|
|
262
|
-
if (mapping) {
|
|
263
|
-
this.db.prepare('DELETE FROM vss_vectors WHERE rowid = ?').run(mapping.rowid);
|
|
264
|
-
this.db.prepare('DELETE FROM vss_map WHERE node_id = ?').run(nodeId);
|
|
265
|
-
}
|
|
222
|
+
if (this.vecEnabled) {
|
|
223
|
+
this.db.prepare('DELETE FROM vec_vectors WHERE node_id = ?').run(nodeId);
|
|
266
224
|
}
|
|
267
225
|
}
|
|
268
226
|
/**
|
|
@@ -274,36 +232,30 @@ class VectorSearchManager {
|
|
|
274
232
|
*/
|
|
275
233
|
search(queryEmbedding, options = {}) {
|
|
276
234
|
const { limit = 10, minScore = 0 } = options;
|
|
277
|
-
if (this.
|
|
278
|
-
return this.
|
|
235
|
+
if (this.vecEnabled) {
|
|
236
|
+
return this.searchWithVec(queryEmbedding, limit, minScore);
|
|
279
237
|
}
|
|
280
238
|
else {
|
|
281
239
|
return this.searchBruteForce(queryEmbedding, limit, minScore);
|
|
282
240
|
}
|
|
283
241
|
}
|
|
284
242
|
/**
|
|
285
|
-
* Search using sqlite-
|
|
243
|
+
* Search using sqlite-vec KNN search
|
|
286
244
|
*/
|
|
287
|
-
|
|
245
|
+
searchWithVec(queryEmbedding, limit, minScore) {
|
|
288
246
|
try {
|
|
289
|
-
const
|
|
290
|
-
// Sanitize limit to prevent SQL injection (ensure it's a positive integer)
|
|
247
|
+
const buffer = Buffer.from(queryEmbedding.buffer, queryEmbedding.byteOffset, queryEmbedding.byteLength);
|
|
291
248
|
const safeLimit = Math.max(1, Math.floor(limit));
|
|
292
|
-
// Use
|
|
293
|
-
// The distance is L2 (euclidean), we need to convert to similarity score
|
|
294
|
-
// Note: sqlite-vss requires LIMIT to be a literal, not a parameter
|
|
249
|
+
// Use vec0 KNN search with MATCH syntax
|
|
295
250
|
const rows = this.db
|
|
296
251
|
.prepare(`
|
|
297
|
-
SELECT
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
JOIN vss_map ON vss_map.rowid = vss_vectors.rowid
|
|
302
|
-
WHERE vss_search(vss_vectors.embedding, ?)
|
|
303
|
-
LIMIT ${safeLimit}
|
|
252
|
+
SELECT node_id, distance
|
|
253
|
+
FROM vec_vectors
|
|
254
|
+
WHERE embedding MATCH ?
|
|
255
|
+
AND k = ${safeLimit}
|
|
304
256
|
`)
|
|
305
|
-
.all(
|
|
306
|
-
// Convert
|
|
257
|
+
.all(buffer);
|
|
258
|
+
// Convert distance to similarity score (1 / (1 + distance))
|
|
307
259
|
return rows
|
|
308
260
|
.map((row) => ({
|
|
309
261
|
nodeId: row.node_id,
|
|
@@ -312,8 +264,8 @@ class VectorSearchManager {
|
|
|
312
264
|
.filter((r) => r.score >= minScore);
|
|
313
265
|
}
|
|
314
266
|
catch (error) {
|
|
315
|
-
//
|
|
316
|
-
console.warn('
|
|
267
|
+
// vec search failed, fall back to brute force
|
|
268
|
+
console.warn('vec search failed, using brute-force:', error instanceof Error ? error.message : String(error));
|
|
317
269
|
return this.searchBruteForce(queryEmbedding, limit, minScore);
|
|
318
270
|
}
|
|
319
271
|
}
|
|
@@ -370,23 +322,21 @@ class VectorSearchManager {
|
|
|
370
322
|
*/
|
|
371
323
|
clear() {
|
|
372
324
|
this.db.prepare('DELETE FROM vectors').run();
|
|
373
|
-
if (this.
|
|
374
|
-
this.db.prepare('DELETE FROM
|
|
375
|
-
this.db.prepare('DELETE FROM vss_map').run();
|
|
325
|
+
if (this.vecEnabled) {
|
|
326
|
+
this.db.prepare('DELETE FROM vec_vectors').run();
|
|
376
327
|
}
|
|
377
328
|
}
|
|
378
329
|
/**
|
|
379
|
-
* Rebuild
|
|
330
|
+
* Rebuild vec index from vectors table
|
|
380
331
|
*
|
|
381
|
-
* Useful after bulk operations or if
|
|
332
|
+
* Useful after bulk operations or if vec index gets out of sync.
|
|
382
333
|
*/
|
|
383
|
-
|
|
384
|
-
if (!this.
|
|
334
|
+
rebuildVecIndex() {
|
|
335
|
+
if (!this.vecEnabled) {
|
|
385
336
|
return;
|
|
386
337
|
}
|
|
387
|
-
// Clear
|
|
388
|
-
this.db.prepare('DELETE FROM
|
|
389
|
-
this.db.prepare('DELETE FROM vss_map').run();
|
|
338
|
+
// Clear vec table
|
|
339
|
+
this.db.prepare('DELETE FROM vec_vectors').run();
|
|
390
340
|
// Reload from vectors table
|
|
391
341
|
const rows = this.db
|
|
392
342
|
.prepare('SELECT node_id, embedding FROM vectors')
|
|
@@ -394,7 +344,7 @@ class VectorSearchManager {
|
|
|
394
344
|
this.db.transaction(() => {
|
|
395
345
|
for (const row of rows) {
|
|
396
346
|
const embedding = new Float32Array(row.embedding.buffer.slice(row.embedding.byteOffset, row.embedding.byteOffset + row.embedding.byteLength));
|
|
397
|
-
this.
|
|
347
|
+
this.storeInVec(row.node_id, embedding);
|
|
398
348
|
}
|
|
399
349
|
})();
|
|
400
350
|
}
|
|
@@ -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,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mduenas/codegraph",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.1-beta.0",
|
|
4
4
|
"description": "Supercharge Claude Code with semantic code intelligence. 30% fewer tokens, 25% fewer tool calls, 100% local.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"better-sqlite3": "^11.0.0",
|
|
38
38
|
"commander": "^14.0.2",
|
|
39
39
|
"figlet": "^1.8.0",
|
|
40
|
-
"sqlite-
|
|
40
|
+
"sqlite-vec": "^0.1.6",
|
|
41
41
|
"tree-sitter": "^0.22.4",
|
|
42
42
|
"tree-sitter-c": "^0.23.4",
|
|
43
43
|
"tree-sitter-c-sharp": "^0.23.1",
|