@colbymchenry/codegraph 0.7.3 → 0.7.4

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.
Files changed (172) hide show
  1. package/README.md +57 -0
  2. package/dist/bin/codegraph.js +39 -4
  3. package/dist/bin/codegraph.js.map +1 -1
  4. package/dist/bin/node-version-check.d.ts +17 -0
  5. package/dist/bin/node-version-check.d.ts.map +1 -0
  6. package/dist/bin/node-version-check.js +39 -0
  7. package/dist/bin/node-version-check.js.map +1 -0
  8. package/dist/db/index.d.ts +9 -2
  9. package/dist/db/index.d.ts.map +1 -1
  10. package/dist/db/index.js +17 -7
  11. package/dist/db/index.js.map +1 -1
  12. package/dist/db/migrations.d.ts +1 -1
  13. package/dist/db/migrations.d.ts.map +1 -1
  14. package/dist/db/migrations.js +11 -1
  15. package/dist/db/migrations.js.map +1 -1
  16. package/dist/db/queries.d.ts +16 -0
  17. package/dist/db/queries.d.ts.map +1 -1
  18. package/dist/db/queries.js +144 -7
  19. package/dist/db/queries.js.map +1 -1
  20. package/dist/db/schema.sql +6 -3
  21. package/dist/db/sqlite-adapter.d.ts +23 -4
  22. package/dist/db/sqlite-adapter.d.ts.map +1 -1
  23. package/dist/db/sqlite-adapter.js +51 -11
  24. package/dist/db/sqlite-adapter.js.map +1 -1
  25. package/dist/extraction/grammars.d.ts +1 -1
  26. package/dist/extraction/grammars.d.ts.map +1 -1
  27. package/dist/extraction/grammars.js +12 -4
  28. package/dist/extraction/grammars.js.map +1 -1
  29. package/dist/extraction/index.d.ts +20 -0
  30. package/dist/extraction/index.d.ts.map +1 -1
  31. package/dist/extraction/index.js +111 -7
  32. package/dist/extraction/index.js.map +1 -1
  33. package/dist/extraction/languages/index.d.ts.map +1 -1
  34. package/dist/extraction/languages/index.js +2 -0
  35. package/dist/extraction/languages/index.js.map +1 -1
  36. package/dist/extraction/languages/scala.d.ts +3 -0
  37. package/dist/extraction/languages/scala.d.ts.map +1 -0
  38. package/dist/extraction/languages/scala.js +139 -0
  39. package/dist/extraction/languages/scala.js.map +1 -0
  40. package/dist/extraction/parse-worker.js +39 -2
  41. package/dist/extraction/parse-worker.js.map +1 -1
  42. package/dist/extraction/tree-sitter.d.ts +32 -16
  43. package/dist/extraction/tree-sitter.d.ts.map +1 -1
  44. package/dist/extraction/tree-sitter.js +266 -67
  45. package/dist/extraction/tree-sitter.js.map +1 -1
  46. package/dist/extraction/vue-extractor.d.ts +36 -0
  47. package/dist/extraction/vue-extractor.d.ts.map +1 -0
  48. package/dist/extraction/vue-extractor.js +163 -0
  49. package/dist/extraction/vue-extractor.js.map +1 -0
  50. package/dist/extraction/wasm/tree-sitter-scala.wasm +0 -0
  51. package/dist/index.d.ts +7 -0
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +9 -0
  54. package/dist/index.js.map +1 -1
  55. package/dist/mcp/index.d.ts.map +1 -1
  56. package/dist/mcp/index.js +6 -1
  57. package/dist/mcp/index.js.map +1 -1
  58. package/dist/mcp/server-instructions.d.ts +19 -0
  59. package/dist/mcp/server-instructions.d.ts.map +1 -0
  60. package/dist/mcp/server-instructions.js +59 -0
  61. package/dist/mcp/server-instructions.js.map +1 -0
  62. package/dist/mcp/tools.d.ts.map +1 -1
  63. package/dist/mcp/tools.js +13 -2
  64. package/dist/mcp/tools.js.map +1 -1
  65. package/dist/resolution/frameworks/csharp.d.ts.map +1 -1
  66. package/dist/resolution/frameworks/csharp.js +72 -78
  67. package/dist/resolution/frameworks/csharp.js.map +1 -1
  68. package/dist/resolution/frameworks/express.d.ts.map +1 -1
  69. package/dist/resolution/frameworks/express.js +47 -26
  70. package/dist/resolution/frameworks/express.js.map +1 -1
  71. package/dist/resolution/frameworks/go.d.ts.map +1 -1
  72. package/dist/resolution/frameworks/go.js +41 -72
  73. package/dist/resolution/frameworks/go.js.map +1 -1
  74. package/dist/resolution/frameworks/index.d.ts +7 -0
  75. package/dist/resolution/frameworks/index.d.ts.map +1 -1
  76. package/dist/resolution/frameworks/index.js +13 -1
  77. package/dist/resolution/frameworks/index.js.map +1 -1
  78. package/dist/resolution/frameworks/java.d.ts.map +1 -1
  79. package/dist/resolution/frameworks/java.js +36 -40
  80. package/dist/resolution/frameworks/java.js.map +1 -1
  81. package/dist/resolution/frameworks/laravel.d.ts.map +1 -1
  82. package/dist/resolution/frameworks/laravel.js +94 -44
  83. package/dist/resolution/frameworks/laravel.js.map +1 -1
  84. package/dist/resolution/frameworks/python.d.ts.map +1 -1
  85. package/dist/resolution/frameworks/python.js +163 -151
  86. package/dist/resolution/frameworks/python.js.map +1 -1
  87. package/dist/resolution/frameworks/react.d.ts.map +1 -1
  88. package/dist/resolution/frameworks/react.js +3 -2
  89. package/dist/resolution/frameworks/react.js.map +1 -1
  90. package/dist/resolution/frameworks/ruby.d.ts.map +1 -1
  91. package/dist/resolution/frameworks/ruby.js +39 -91
  92. package/dist/resolution/frameworks/ruby.js.map +1 -1
  93. package/dist/resolution/frameworks/rust.d.ts.map +1 -1
  94. package/dist/resolution/frameworks/rust.js +50 -43
  95. package/dist/resolution/frameworks/rust.js.map +1 -1
  96. package/dist/resolution/frameworks/svelte.d.ts.map +1 -1
  97. package/dist/resolution/frameworks/svelte.js +3 -2
  98. package/dist/resolution/frameworks/svelte.js.map +1 -1
  99. package/dist/resolution/frameworks/swift.d.ts.map +1 -1
  100. package/dist/resolution/frameworks/swift.js +54 -46
  101. package/dist/resolution/frameworks/swift.js.map +1 -1
  102. package/dist/resolution/frameworks/vue.d.ts +9 -0
  103. package/dist/resolution/frameworks/vue.d.ts.map +1 -0
  104. package/dist/resolution/frameworks/vue.js +306 -0
  105. package/dist/resolution/frameworks/vue.js.map +1 -0
  106. package/dist/resolution/import-resolver.d.ts +17 -1
  107. package/dist/resolution/import-resolver.d.ts.map +1 -1
  108. package/dist/resolution/import-resolver.js +256 -46
  109. package/dist/resolution/import-resolver.js.map +1 -1
  110. package/dist/resolution/index.d.ts +8 -0
  111. package/dist/resolution/index.d.ts.map +1 -1
  112. package/dist/resolution/index.js +60 -1
  113. package/dist/resolution/index.js.map +1 -1
  114. package/dist/resolution/name-matcher.d.ts.map +1 -1
  115. package/dist/resolution/name-matcher.js +21 -0
  116. package/dist/resolution/name-matcher.js.map +1 -1
  117. package/dist/resolution/path-aliases.d.ts +68 -0
  118. package/dist/resolution/path-aliases.d.ts.map +1 -0
  119. package/dist/resolution/path-aliases.js +238 -0
  120. package/dist/resolution/path-aliases.js.map +1 -0
  121. package/dist/resolution/strip-comments.d.ts +27 -0
  122. package/dist/resolution/strip-comments.d.ts.map +1 -0
  123. package/dist/resolution/strip-comments.js +441 -0
  124. package/dist/resolution/strip-comments.js.map +1 -0
  125. package/dist/resolution/types.d.ts +54 -3
  126. package/dist/resolution/types.d.ts.map +1 -1
  127. package/dist/search/query-parser.d.ts +57 -0
  128. package/dist/search/query-parser.d.ts.map +1 -0
  129. package/dist/search/query-parser.js +177 -0
  130. package/dist/search/query-parser.js.map +1 -0
  131. package/dist/types.d.ts +11 -4
  132. package/dist/types.d.ts.map +1 -1
  133. package/dist/types.js +68 -1
  134. package/dist/types.js.map +1 -1
  135. package/package.json +5 -2
  136. package/dist/installer/banner.d.ts +0 -40
  137. package/dist/installer/banner.d.ts.map +0 -1
  138. package/dist/installer/banner.js +0 -165
  139. package/dist/installer/banner.js.map +0 -1
  140. package/dist/installer/prompts.d.ts +0 -18
  141. package/dist/installer/prompts.d.ts.map +0 -1
  142. package/dist/installer/prompts.js +0 -113
  143. package/dist/installer/prompts.js.map +0 -1
  144. package/dist/sentry.d.ts +0 -24
  145. package/dist/sentry.d.ts.map +0 -1
  146. package/dist/sentry.js +0 -166
  147. package/dist/sentry.js.map +0 -1
  148. package/dist/sync/git-hooks.d.ts +0 -66
  149. package/dist/sync/git-hooks.d.ts.map +0 -1
  150. package/dist/sync/git-hooks.js +0 -281
  151. package/dist/sync/git-hooks.js.map +0 -1
  152. package/dist/vectors/embedder.d.ts +0 -140
  153. package/dist/vectors/embedder.d.ts.map +0 -1
  154. package/dist/vectors/embedder.js +0 -338
  155. package/dist/vectors/embedder.js.map +0 -1
  156. package/dist/vectors/index.d.ts +0 -9
  157. package/dist/vectors/index.d.ts.map +0 -1
  158. package/dist/vectors/index.js +0 -20
  159. package/dist/vectors/index.js.map +0 -1
  160. package/dist/vectors/manager.d.ts +0 -119
  161. package/dist/vectors/manager.d.ts.map +0 -1
  162. package/dist/vectors/manager.js +0 -274
  163. package/dist/vectors/manager.js.map +0 -1
  164. package/dist/vectors/search.d.ts +0 -134
  165. package/dist/vectors/search.d.ts.map +0 -1
  166. package/dist/vectors/search.js +0 -411
  167. package/dist/vectors/search.js.map +0 -1
  168. package/dist/visualizer/public/index.html +0 -1994
  169. package/dist/visualizer/server.d.ts +0 -46
  170. package/dist/visualizer/server.d.ts.map +0 -1
  171. package/dist/visualizer/server.js +0 -491
  172. package/dist/visualizer/server.js.map +0 -1
@@ -1,411 +0,0 @@
1
- "use strict";
2
- /**
3
- * Vector Search
4
- *
5
- * Provides vector similarity search using sqlite-vss extension.
6
- * Falls back to brute-force cosine similarity if sqlite-vss is not available.
7
- */
8
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
- if (k2 === undefined) k2 = k;
10
- var desc = Object.getOwnPropertyDescriptor(m, k);
11
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
- desc = { enumerable: true, get: function() { return m[k]; } };
13
- }
14
- Object.defineProperty(o, k2, desc);
15
- }) : (function(o, m, k, k2) {
16
- if (k2 === undefined) k2 = k;
17
- o[k2] = m[k];
18
- }));
19
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
- Object.defineProperty(o, "default", { enumerable: true, value: v });
21
- }) : function(o, v) {
22
- o["default"] = v;
23
- });
24
- var __importStar = (this && this.__importStar) || (function () {
25
- var ownKeys = function(o) {
26
- ownKeys = Object.getOwnPropertyNames || function (o) {
27
- var ar = [];
28
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
- return ar;
30
- };
31
- return ownKeys(o);
32
- };
33
- return function (mod) {
34
- if (mod && mod.__esModule) return mod;
35
- var result = {};
36
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
- __setModuleDefault(result, mod);
38
- return result;
39
- };
40
- })();
41
- Object.defineProperty(exports, "__esModule", { value: true });
42
- exports.VectorSearchManager = void 0;
43
- exports.createVectorSearch = createVectorSearch;
44
- const embedder_1 = require("./embedder");
45
- /**
46
- * Vector Search Manager
47
- *
48
- * Handles vector storage and similarity search for semantic code search.
49
- */
50
- class VectorSearchManager {
51
- db;
52
- vssEnabled = false;
53
- embeddingDimension;
54
- constructor(db, dimension = embedder_1.EMBEDDING_DIMENSION) {
55
- this.db = db;
56
- this.embeddingDimension = dimension;
57
- }
58
- /**
59
- * Initialize vector search
60
- *
61
- * Attempts to load sqlite-vss extension. Falls back to brute-force
62
- * search if the extension is not available.
63
- */
64
- async initialize() {
65
- try {
66
- // Try to load sqlite-vss extension
67
- await this.loadVssExtension();
68
- this.vssEnabled = true;
69
- console.log('sqlite-vss extension loaded successfully');
70
- // Create the VSS virtual table
71
- this.createVssTable();
72
- }
73
- catch (error) {
74
- // Fall back to brute-force search
75
- console.warn('sqlite-vss extension not available, falling back to brute-force search:', error instanceof Error ? error.message : String(error));
76
- this.vssEnabled = false;
77
- }
78
- // Ensure the vectors table exists (for both VSS and fallback modes)
79
- this.ensureVectorsTable();
80
- }
81
- /**
82
- * Load the sqlite-vss extension
83
- */
84
- async loadVssExtension() {
85
- try {
86
- // The sqlite-vss npm package provides functions to load extensions
87
- const vss = await Promise.resolve().then(() => __importStar(require('sqlite-vss')));
88
- // Use the load function which loads both vector0 and vss0
89
- // VSS extension expects the raw better-sqlite3 Database instance
90
- if (typeof vss.load === 'function') {
91
- vss.load(this.db);
92
- }
93
- else if (typeof vss.default?.load === 'function') {
94
- vss.default.load(this.db);
95
- }
96
- else {
97
- throw new Error('sqlite-vss load function not found');
98
- }
99
- }
100
- catch (error) {
101
- throw new Error(`Failed to load sqlite-vss: ${error instanceof Error ? error.message : String(error)}`);
102
- }
103
- }
104
- /**
105
- * Create the VSS virtual table for vector search
106
- */
107
- createVssTable() {
108
- // Check if the table already exists
109
- const tableExists = this.db
110
- .prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='vss_vectors'")
111
- .get();
112
- if (!tableExists) {
113
- // Create VSS virtual table
114
- // vss0 is the vector search extension
115
- this.db.exec(`
116
- CREATE VIRTUAL TABLE IF NOT EXISTS vss_vectors USING vss0(
117
- embedding(${this.embeddingDimension})
118
- );
119
- `);
120
- // Create mapping table to link VSS rowids to node IDs
121
- this.db.exec(`
122
- CREATE TABLE IF NOT EXISTS vss_map (
123
- rowid INTEGER PRIMARY KEY,
124
- node_id TEXT NOT NULL UNIQUE
125
- );
126
- `);
127
- // Create index on node_id
128
- this.db.exec(`
129
- CREATE INDEX IF NOT EXISTS idx_vss_map_node ON vss_map(node_id);
130
- `);
131
- }
132
- }
133
- /**
134
- * Ensure the basic vectors table exists (for fallback mode)
135
- */
136
- ensureVectorsTable() {
137
- this.db.exec(`
138
- CREATE TABLE IF NOT EXISTS vectors (
139
- node_id TEXT PRIMARY KEY,
140
- embedding BLOB NOT NULL,
141
- model TEXT NOT NULL,
142
- created_at INTEGER NOT NULL
143
- );
144
- `);
145
- }
146
- /**
147
- * Check if VSS extension is enabled
148
- */
149
- isVssEnabled() {
150
- return this.vssEnabled;
151
- }
152
- /**
153
- * Store a vector embedding for a node
154
- *
155
- * @param nodeId - ID of the node
156
- * @param embedding - Vector embedding
157
- * @param model - Model used to generate embedding
158
- */
159
- storeVector(nodeId, embedding, model) {
160
- const now = Date.now();
161
- // Store in the vectors table (always, for persistence)
162
- const blob = Buffer.from(embedding.buffer);
163
- this.db
164
- .prepare(`
165
- INSERT OR REPLACE INTO vectors (node_id, embedding, model, created_at)
166
- VALUES (?, ?, ?, ?)
167
- `)
168
- .run(nodeId, blob, model, now);
169
- // Also store in VSS table if enabled
170
- if (this.vssEnabled) {
171
- this.storeInVss(nodeId, embedding);
172
- }
173
- }
174
- /**
175
- * Store vector in VSS virtual table
176
- */
177
- storeInVss(nodeId, embedding) {
178
- try {
179
- // Check if already exists
180
- const existing = this.db
181
- .prepare('SELECT rowid FROM vss_map WHERE node_id = ?')
182
- .get(nodeId);
183
- if (existing) {
184
- // Update existing vector
185
- const vectorJson = JSON.stringify(Array.from(embedding));
186
- this.db
187
- .prepare('UPDATE vss_vectors SET embedding = ? WHERE rowid = ?')
188
- .run(vectorJson, existing.rowid);
189
- }
190
- else {
191
- // Insert new vector - get max rowid and increment
192
- const maxRow = this.db
193
- .prepare('SELECT MAX(rowid) as max FROM vss_map')
194
- .get();
195
- const newRowid = (maxRow?.max ?? 0) + 1;
196
- const vectorJson = JSON.stringify(Array.from(embedding));
197
- this.db
198
- .prepare('INSERT INTO vss_vectors (rowid, embedding) VALUES (?, ?)')
199
- .run(newRowid, vectorJson);
200
- // Map the rowid to node_id
201
- this.db
202
- .prepare('INSERT INTO vss_map (rowid, node_id) VALUES (?, ?)')
203
- .run(newRowid, nodeId);
204
- }
205
- }
206
- catch (error) {
207
- // VSS operations can fail for various reasons (dimension mismatch, etc.)
208
- // Fall back to brute-force search silently
209
- console.warn('VSS storage failed, using brute-force search:', error instanceof Error ? error.message : String(error));
210
- }
211
- }
212
- /**
213
- * Store multiple vectors in a batch
214
- *
215
- * @param entries - Array of node IDs and embeddings
216
- * @param model - Model used to generate embeddings
217
- */
218
- storeVectorBatch(entries, model) {
219
- const now = Date.now();
220
- // Use a transaction for better performance
221
- this.db.transaction(() => {
222
- for (const entry of entries) {
223
- const blob = Buffer.from(entry.embedding.buffer);
224
- this.db
225
- .prepare(`
226
- INSERT OR REPLACE INTO vectors (node_id, embedding, model, created_at)
227
- VALUES (?, ?, ?, ?)
228
- `)
229
- .run(entry.nodeId, blob, model, now);
230
- if (this.vssEnabled) {
231
- this.storeInVss(entry.nodeId, entry.embedding);
232
- }
233
- }
234
- })();
235
- }
236
- /**
237
- * Get vector for a node
238
- *
239
- * @param nodeId - ID of the node
240
- * @returns Embedding or null if not found
241
- */
242
- getVector(nodeId) {
243
- const row = this.db
244
- .prepare('SELECT embedding FROM vectors WHERE node_id = ?')
245
- .get(nodeId);
246
- if (!row) {
247
- return null;
248
- }
249
- return new Float32Array(row.embedding.buffer.slice(row.embedding.byteOffset, row.embedding.byteOffset + row.embedding.byteLength));
250
- }
251
- /**
252
- * Delete vector for a node
253
- *
254
- * @param nodeId - ID of the node
255
- */
256
- deleteVector(nodeId) {
257
- this.db.prepare('DELETE FROM vectors WHERE node_id = ?').run(nodeId);
258
- if (this.vssEnabled) {
259
- // Get the rowid before deleting
260
- const mapping = this.db
261
- .prepare('SELECT rowid FROM vss_map WHERE node_id = ?')
262
- .get(nodeId);
263
- if (mapping) {
264
- this.db.prepare('DELETE FROM vss_vectors WHERE rowid = ?').run(mapping.rowid);
265
- this.db.prepare('DELETE FROM vss_map WHERE node_id = ?').run(nodeId);
266
- }
267
- }
268
- }
269
- /**
270
- * Search for similar vectors
271
- *
272
- * @param queryEmbedding - Query vector to search for
273
- * @param options - Search options
274
- * @returns Array of node IDs with similarity scores
275
- */
276
- search(queryEmbedding, options = {}) {
277
- const { limit = 10, minScore = 0 } = options;
278
- if (this.vssEnabled) {
279
- return this.searchWithVss(queryEmbedding, limit, minScore);
280
- }
281
- else {
282
- return this.searchBruteForce(queryEmbedding, limit, minScore);
283
- }
284
- }
285
- /**
286
- * Search using sqlite-vss KNN search
287
- */
288
- searchWithVss(queryEmbedding, limit, minScore) {
289
- try {
290
- const vectorJson = JSON.stringify(Array.from(queryEmbedding));
291
- // Sanitize limit to prevent SQL injection (ensure it's a positive integer)
292
- const safeLimit = Math.max(1, Math.floor(limit));
293
- // Use VSS KNN search
294
- // The distance is L2 (euclidean), we need to convert to similarity score
295
- // Note: sqlite-vss requires LIMIT to be a literal, not a parameter
296
- const rows = this.db
297
- .prepare(`
298
- SELECT m.node_id, v.distance
299
- FROM (
300
- SELECT rowid, distance
301
- FROM vss_vectors
302
- WHERE vss_search(embedding, ?)
303
- LIMIT ${safeLimit}
304
- ) v
305
- JOIN vss_map m ON m.rowid = v.rowid
306
- `)
307
- .all(vectorJson);
308
- // Convert L2 distance to similarity score (1 / (1 + distance))
309
- return rows
310
- .map((row) => ({
311
- nodeId: row.node_id,
312
- score: 1 / (1 + row.distance),
313
- }))
314
- .filter((r) => r.score >= minScore);
315
- }
316
- catch (error) {
317
- // VSS search failed, fall back to brute force
318
- console.warn('VSS search failed, using brute-force:', error instanceof Error ? error.message : String(error));
319
- return this.searchBruteForce(queryEmbedding, limit, minScore);
320
- }
321
- }
322
- /**
323
- * Brute-force search using cosine similarity
324
- */
325
- searchBruteForce(queryEmbedding, limit, minScore) {
326
- // Get all vectors
327
- const rows = this.db
328
- .prepare('SELECT node_id, embedding FROM vectors')
329
- .all();
330
- // Calculate cosine similarity for each
331
- const results = [];
332
- for (const row of rows) {
333
- const embedding = new Float32Array(row.embedding.buffer.slice(row.embedding.byteOffset, row.embedding.byteOffset + row.embedding.byteLength));
334
- const score = embedder_1.TextEmbedder.cosineSimilarity(queryEmbedding, embedding);
335
- if (score >= minScore) {
336
- results.push({ nodeId: row.node_id, score });
337
- }
338
- }
339
- // Sort by score descending and limit
340
- results.sort((a, b) => b.score - a.score);
341
- return results.slice(0, limit);
342
- }
343
- /**
344
- * Get count of stored vectors
345
- */
346
- getVectorCount() {
347
- const result = this.db
348
- .prepare('SELECT COUNT(*) as count FROM vectors')
349
- .get();
350
- return result.count;
351
- }
352
- /**
353
- * Check if a node has a vector
354
- */
355
- hasVector(nodeId) {
356
- const result = this.db
357
- .prepare('SELECT 1 FROM vectors WHERE node_id = ? LIMIT 1')
358
- .get(nodeId);
359
- return !!result;
360
- }
361
- /**
362
- * Get all node IDs that have vectors
363
- */
364
- getIndexedNodeIds() {
365
- const rows = this.db
366
- .prepare('SELECT node_id FROM vectors')
367
- .all();
368
- return rows.map((r) => r.node_id);
369
- }
370
- /**
371
- * Clear all vectors
372
- */
373
- clear() {
374
- this.db.prepare('DELETE FROM vectors').run();
375
- if (this.vssEnabled) {
376
- this.db.prepare('DELETE FROM vss_vectors').run();
377
- this.db.prepare('DELETE FROM vss_map').run();
378
- }
379
- }
380
- /**
381
- * Rebuild VSS index from vectors table
382
- *
383
- * Useful after bulk operations or if VSS index gets out of sync.
384
- */
385
- rebuildVssIndex() {
386
- if (!this.vssEnabled) {
387
- return;
388
- }
389
- // Clear VSS tables
390
- this.db.prepare('DELETE FROM vss_vectors').run();
391
- this.db.prepare('DELETE FROM vss_map').run();
392
- // Reload from vectors table
393
- const rows = this.db
394
- .prepare('SELECT node_id, embedding FROM vectors')
395
- .all();
396
- this.db.transaction(() => {
397
- for (const row of rows) {
398
- const embedding = new Float32Array(row.embedding.buffer.slice(row.embedding.byteOffset, row.embedding.byteOffset + row.embedding.byteLength));
399
- this.storeInVss(row.node_id, embedding);
400
- }
401
- })();
402
- }
403
- }
404
- exports.VectorSearchManager = VectorSearchManager;
405
- /**
406
- * Create a vector search manager
407
- */
408
- function createVectorSearch(db, dimension) {
409
- return new VectorSearchManager(db, dimension);
410
- }
411
- //# sourceMappingURL=search.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/vectors/search.ts"],"names":[],"mappings":"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"}