agent-knowledge 1.0.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.
Files changed (130) hide show
  1. package/CHANGELOG.md +77 -0
  2. package/LICENSE +21 -0
  3. package/README.md +191 -0
  4. package/dist/dashboard.d.ts +4 -0
  5. package/dist/dashboard.d.ts.map +1 -0
  6. package/dist/dashboard.js +434 -0
  7. package/dist/dashboard.js.map +1 -0
  8. package/dist/embeddings/claude.d.ts +21 -0
  9. package/dist/embeddings/claude.d.ts.map +1 -0
  10. package/dist/embeddings/claude.js +84 -0
  11. package/dist/embeddings/claude.js.map +1 -0
  12. package/dist/embeddings/factory.d.ts +9 -0
  13. package/dist/embeddings/factory.d.ts.map +1 -0
  14. package/dist/embeddings/factory.js +60 -0
  15. package/dist/embeddings/factory.js.map +1 -0
  16. package/dist/embeddings/gemini.d.ts +21 -0
  17. package/dist/embeddings/gemini.d.ts.map +1 -0
  18. package/dist/embeddings/gemini.js +86 -0
  19. package/dist/embeddings/gemini.js.map +1 -0
  20. package/dist/embeddings/index.d.ts +4 -0
  21. package/dist/embeddings/index.d.ts.map +1 -0
  22. package/dist/embeddings/index.js +3 -0
  23. package/dist/embeddings/index.js.map +1 -0
  24. package/dist/embeddings/local.d.ts +20 -0
  25. package/dist/embeddings/local.d.ts.map +1 -0
  26. package/dist/embeddings/local.js +73 -0
  27. package/dist/embeddings/local.js.map +1 -0
  28. package/dist/embeddings/openai.d.ts +20 -0
  29. package/dist/embeddings/openai.d.ts.map +1 -0
  30. package/dist/embeddings/openai.js +84 -0
  31. package/dist/embeddings/openai.js.map +1 -0
  32. package/dist/embeddings/types.d.ts +39 -0
  33. package/dist/embeddings/types.d.ts.map +1 -0
  34. package/dist/embeddings/types.js +12 -0
  35. package/dist/embeddings/types.js.map +1 -0
  36. package/dist/index.d.ts +2 -0
  37. package/dist/index.d.ts.map +1 -0
  38. package/dist/index.js +18 -0
  39. package/dist/index.js.map +1 -0
  40. package/dist/knowledge/distill.d.ts +27 -0
  41. package/dist/knowledge/distill.d.ts.map +1 -0
  42. package/dist/knowledge/distill.js +407 -0
  43. package/dist/knowledge/distill.js.map +1 -0
  44. package/dist/knowledge/git.d.ts +30 -0
  45. package/dist/knowledge/git.d.ts.map +1 -0
  46. package/dist/knowledge/git.js +228 -0
  47. package/dist/knowledge/git.js.map +1 -0
  48. package/dist/knowledge/search.d.ts +20 -0
  49. package/dist/knowledge/search.d.ts.map +1 -0
  50. package/dist/knowledge/search.js +72 -0
  51. package/dist/knowledge/search.js.map +1 -0
  52. package/dist/knowledge/store.d.ts +47 -0
  53. package/dist/knowledge/store.d.ts.map +1 -0
  54. package/dist/knowledge/store.js +173 -0
  55. package/dist/knowledge/store.js.map +1 -0
  56. package/dist/search/excerpt.d.ts +12 -0
  57. package/dist/search/excerpt.d.ts.map +1 -0
  58. package/dist/search/excerpt.js +28 -0
  59. package/dist/search/excerpt.js.map +1 -0
  60. package/dist/search/fuzzy.d.ts +15 -0
  61. package/dist/search/fuzzy.d.ts.map +1 -0
  62. package/dist/search/fuzzy.js +81 -0
  63. package/dist/search/fuzzy.js.map +1 -0
  64. package/dist/search/tfidf.d.ts +19 -0
  65. package/dist/search/tfidf.d.ts.map +1 -0
  66. package/dist/search/tfidf.js +200 -0
  67. package/dist/search/tfidf.js.map +1 -0
  68. package/dist/search/types.d.ts +19 -0
  69. package/dist/search/types.d.ts.map +1 -0
  70. package/dist/search/types.js +2 -0
  71. package/dist/search/types.js.map +1 -0
  72. package/dist/server.d.ts +3 -0
  73. package/dist/server.d.ts.map +1 -0
  74. package/dist/server.js +518 -0
  75. package/dist/server.js.map +1 -0
  76. package/dist/sessions/indexer.d.ts +15 -0
  77. package/dist/sessions/indexer.d.ts.map +1 -0
  78. package/dist/sessions/indexer.js +182 -0
  79. package/dist/sessions/indexer.js.map +1 -0
  80. package/dist/sessions/parser.d.ts +58 -0
  81. package/dist/sessions/parser.d.ts.map +1 -0
  82. package/dist/sessions/parser.js +142 -0
  83. package/dist/sessions/parser.js.map +1 -0
  84. package/dist/sessions/scopes.d.ts +16 -0
  85. package/dist/sessions/scopes.d.ts.map +1 -0
  86. package/dist/sessions/scopes.js +153 -0
  87. package/dist/sessions/scopes.js.map +1 -0
  88. package/dist/sessions/search.d.ts +26 -0
  89. package/dist/sessions/search.d.ts.map +1 -0
  90. package/dist/sessions/search.js +256 -0
  91. package/dist/sessions/search.js.map +1 -0
  92. package/dist/sessions/summary.d.ts +28 -0
  93. package/dist/sessions/summary.d.ts.map +1 -0
  94. package/dist/sessions/summary.js +135 -0
  95. package/dist/sessions/summary.js.map +1 -0
  96. package/dist/types.d.ts +26 -0
  97. package/dist/types.d.ts.map +1 -0
  98. package/dist/types.js +109 -0
  99. package/dist/types.js.map +1 -0
  100. package/dist/ui/app.js +1029 -0
  101. package/dist/ui/index.html +373 -0
  102. package/dist/ui/styles.css +1508 -0
  103. package/dist/ui/ui/app.js +811 -0
  104. package/dist/ui/ui/index.html +300 -0
  105. package/dist/ui/ui/styles.css +1154 -0
  106. package/dist/validate.d.ts +21 -0
  107. package/dist/validate.d.ts.map +1 -0
  108. package/dist/validate.js +86 -0
  109. package/dist/validate.js.map +1 -0
  110. package/dist/vectorstore/chunker.d.ts +48 -0
  111. package/dist/vectorstore/chunker.d.ts.map +1 -0
  112. package/dist/vectorstore/chunker.js +165 -0
  113. package/dist/vectorstore/chunker.js.map +1 -0
  114. package/dist/vectorstore/index.d.ts +5 -0
  115. package/dist/vectorstore/index.d.ts.map +1 -0
  116. package/dist/vectorstore/index.js +3 -0
  117. package/dist/vectorstore/index.js.map +1 -0
  118. package/dist/vectorstore/store.d.ts +139 -0
  119. package/dist/vectorstore/store.d.ts.map +1 -0
  120. package/dist/vectorstore/store.js +500 -0
  121. package/dist/vectorstore/store.js.map +1 -0
  122. package/dist/version.d.ts +2 -0
  123. package/dist/version.d.ts.map +1 -0
  124. package/dist/version.js +2 -0
  125. package/dist/version.js.map +1 -0
  126. package/docs/ARCHITECTURE.md +244 -0
  127. package/docs/DASHBOARD.md +133 -0
  128. package/docs/SETUP.md +178 -0
  129. package/package.json +92 -0
  130. package/scripts/copy-ui.js +6 -0
@@ -0,0 +1,500 @@
1
+ /**
2
+ * SQLite-backed vector store using better-sqlite3 and sqlite-vec
3
+ * for semantic similarity search over knowledge and session embeddings.
4
+ */
5
+ import { join } from 'path';
6
+ import { statSync } from 'fs';
7
+ import { getConfig } from '../types.js';
8
+ /** Convert a number[] to a Float32Array buffer for BLOB storage. */
9
+ function toFloat32Buffer(vec) {
10
+ const f32 = new Float32Array(vec);
11
+ return Buffer.from(f32.buffer);
12
+ }
13
+ /**
14
+ * SQLite + sqlite-vec vector store for semantic search.
15
+ *
16
+ * Lazily initializes the database on first access. Stores embeddings as
17
+ * Float32 BLOBs and uses sqlite-vec's vec0 virtual table for cosine
18
+ * similarity search.
19
+ */
20
+ export class VectorStore {
21
+ db = null;
22
+ dbPath;
23
+ initialized = false;
24
+ vecAvailable = false;
25
+ currentDimensions = null;
26
+ /**
27
+ * Create a VectorStore instance.
28
+ * @param dbPath - Path to the SQLite database file. Defaults to `{claudeDir}/knowledge-vectors.db`.
29
+ */
30
+ constructor(dbPath) {
31
+ this.dbPath = dbPath ?? join(getConfig().claudeDir, 'knowledge-vectors.db');
32
+ }
33
+ /**
34
+ * Initialize the database: create tables, load sqlite-vec extension.
35
+ * Called lazily on first operation that needs the DB.
36
+ */
37
+ init(dimensions) {
38
+ if (this.initialized && this.currentDimensions === dimensions)
39
+ return;
40
+ try {
41
+ if (!this.db) {
42
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
43
+ const BetterSqlite3 = require('better-sqlite3');
44
+ this.db = new BetterSqlite3(this.dbPath);
45
+ this.db.pragma('journal_mode = WAL');
46
+ this.db.pragma('foreign_keys = ON');
47
+ }
48
+ this.loadVecExtension();
49
+ this.db.exec(`
50
+ CREATE TABLE IF NOT EXISTS embeddings (
51
+ id TEXT PRIMARY KEY,
52
+ source TEXT NOT NULL CHECK(source IN ('knowledge','session')),
53
+ source_id TEXT NOT NULL,
54
+ chunk_index INTEGER NOT NULL,
55
+ chunk_text TEXT NOT NULL,
56
+ provider TEXT NOT NULL,
57
+ dimensions INTEGER NOT NULL,
58
+ embedding BLOB NOT NULL,
59
+ created_at TEXT NOT NULL DEFAULT (datetime('now')),
60
+ metadata TEXT
61
+ );
62
+
63
+ CREATE INDEX IF NOT EXISTS idx_emb_source ON embeddings(source, source_id);
64
+ CREATE INDEX IF NOT EXISTS idx_emb_provider ON embeddings(provider);
65
+
66
+ CREATE TABLE IF NOT EXISTS meta (
67
+ key TEXT PRIMARY KEY,
68
+ value TEXT NOT NULL
69
+ );
70
+ `);
71
+ if (this.vecAvailable) {
72
+ this.ensureVecTable(dimensions);
73
+ }
74
+ this.currentDimensions = dimensions;
75
+ this.initialized = true;
76
+ }
77
+ catch (err) {
78
+ console.error(`[knowledge] Failed to initialize vector store: ${err}`);
79
+ throw err;
80
+ }
81
+ }
82
+ /** Attempt to load the sqlite-vec extension. */
83
+ loadVecExtension() {
84
+ if (!this.db)
85
+ return;
86
+ try {
87
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
88
+ const sqliteVec = require('sqlite-vec');
89
+ sqliteVec.load(this.db);
90
+ this.vecAvailable = true;
91
+ }
92
+ catch (err) {
93
+ console.error(`[knowledge] sqlite-vec extension not available, vector search disabled: ${err}`);
94
+ this.vecAvailable = false;
95
+ }
96
+ }
97
+ /** Create or verify the vec0 virtual table matches the expected dimensions. */
98
+ ensureVecTable(dimensions) {
99
+ if (!this.db || !this.vecAvailable)
100
+ return;
101
+ try {
102
+ const existing = this.db
103
+ .prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='vec_idx'")
104
+ .get();
105
+ if (existing) {
106
+ const storedDims = this.getMetaValue('dimensions');
107
+ if (storedDims && parseInt(storedDims, 10) === dimensions) {
108
+ return;
109
+ }
110
+ this.db.exec('DROP TABLE IF EXISTS vec_idx');
111
+ }
112
+ this.db.exec(`CREATE VIRTUAL TABLE vec_idx USING vec0(id TEXT PRIMARY KEY, embedding float[${dimensions}])`);
113
+ this.setMetaValue('dimensions', String(dimensions));
114
+ }
115
+ catch (err) {
116
+ console.error(`[knowledge] Failed to create vec0 table: ${err}`);
117
+ this.vecAvailable = false;
118
+ }
119
+ }
120
+ /** Get a value from the meta table. */
121
+ getMetaValue(key) {
122
+ if (!this.db)
123
+ return null;
124
+ try {
125
+ const row = this.db.prepare('SELECT value FROM meta WHERE key = ?').get(key);
126
+ return row?.value ?? null;
127
+ }
128
+ catch {
129
+ return null;
130
+ }
131
+ }
132
+ /** Set a value in the meta table. */
133
+ setMetaValue(key, value) {
134
+ if (!this.db)
135
+ return;
136
+ try {
137
+ this.db.prepare('INSERT OR REPLACE INTO meta (key, value) VALUES (?, ?)').run(key, value);
138
+ }
139
+ catch (err) {
140
+ console.error(`[knowledge] Failed to set meta value ${key}: ${err}`);
141
+ }
142
+ }
143
+ /** Ensure DB is initialized, using dimensions from the first entry or the stored value. */
144
+ ensureInit(dimensions) {
145
+ const dims = dimensions ?? this.currentDimensions ?? this.getStoredDimensions();
146
+ if (dims === null) {
147
+ throw new Error('[knowledge] Cannot initialize vector store without known dimensions');
148
+ }
149
+ this.init(dims);
150
+ }
151
+ /** Read stored dimensions from meta (requires db to exist). */
152
+ getStoredDimensions() {
153
+ if (this.db) {
154
+ const val = this.getMetaValue('dimensions');
155
+ return val ? parseInt(val, 10) : null;
156
+ }
157
+ try {
158
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
159
+ const BetterSqlite3 = require('better-sqlite3');
160
+ const tmpDb = new BetterSqlite3(this.dbPath, { readonly: true });
161
+ try {
162
+ const row = tmpDb.prepare("SELECT value FROM meta WHERE key = 'dimensions'").get();
163
+ return row ? parseInt(row.value, 10) : null;
164
+ }
165
+ finally {
166
+ tmpDb.close();
167
+ }
168
+ }
169
+ catch {
170
+ return null;
171
+ }
172
+ }
173
+ /**
174
+ * Store embeddings for a source. Replaces existing chunks for the same source_id.
175
+ * Uses a transaction for atomicity.
176
+ *
177
+ * @param entries - The embedding entries to store
178
+ */
179
+ upsert(entries) {
180
+ if (entries.length === 0)
181
+ return;
182
+ try {
183
+ const dims = entries[0].dimensions;
184
+ this.ensureInit(dims);
185
+ if (!this.db)
186
+ return;
187
+ const insertEmbed = this.db.prepare(`
188
+ INSERT OR REPLACE INTO embeddings
189
+ (id, source, source_id, chunk_index, chunk_text, provider, dimensions, embedding, metadata)
190
+ VALUES
191
+ (?, ?, ?, ?, ?, ?, ?, ?, ?)
192
+ `);
193
+ const deleteVec = this.vecAvailable
194
+ ? this.db.prepare('DELETE FROM vec_idx WHERE id = ?')
195
+ : null;
196
+ const insertVec = this.vecAvailable
197
+ ? this.db.prepare('INSERT INTO vec_idx (id, embedding) VALUES (?, ?)')
198
+ : null;
199
+ const deleteBySourceEmbed = this.db.prepare('SELECT id FROM embeddings WHERE source_id = ?');
200
+ const transaction = this.db.transaction((items) => {
201
+ const sourceIds = new Set(items.map((e) => e.sourceId));
202
+ for (const sid of sourceIds) {
203
+ if (deleteVec) {
204
+ const existing = deleteBySourceEmbed.all(sid);
205
+ for (const row of existing) {
206
+ deleteVec.run(row.id);
207
+ }
208
+ }
209
+ this.db.prepare('DELETE FROM embeddings WHERE source_id = ?').run(sid);
210
+ }
211
+ for (const entry of items) {
212
+ const buf = toFloat32Buffer(entry.embedding);
213
+ insertEmbed.run(entry.id, entry.source, entry.sourceId, entry.chunkIndex, entry.chunkText, entry.provider, entry.dimensions, buf, entry.metadata ? JSON.stringify(entry.metadata) : null);
214
+ if (insertVec) {
215
+ insertVec.run(entry.id, buf);
216
+ }
217
+ }
218
+ });
219
+ transaction(entries);
220
+ }
221
+ catch (err) {
222
+ console.error(`[knowledge] Vector upsert failed: ${err}`);
223
+ }
224
+ }
225
+ /**
226
+ * Search by vector similarity. Returns top-k nearest neighbors.
227
+ *
228
+ * @param queryVector - The query embedding vector
229
+ * @param maxResults - Maximum number of results (default 10)
230
+ * @returns Sorted results with cosine similarity scores
231
+ */
232
+ search(queryVector, maxResults = 10) {
233
+ return this.searchInternal(queryVector, maxResults);
234
+ }
235
+ /**
236
+ * Search filtered by source type (knowledge or session).
237
+ *
238
+ * @param queryVector - The query embedding vector
239
+ * @param source - Filter to 'knowledge' or 'session' entries only
240
+ * @param maxResults - Maximum number of results (default 10)
241
+ * @returns Sorted results with cosine similarity scores
242
+ */
243
+ searchBySource(queryVector, source, maxResults = 10) {
244
+ return this.searchInternal(queryVector, maxResults, source);
245
+ }
246
+ /** Internal search implementation with optional source filter. */
247
+ searchInternal(queryVector, maxResults, source) {
248
+ try {
249
+ this.ensureInit(queryVector.length);
250
+ }
251
+ catch {
252
+ return [];
253
+ }
254
+ if (!this.db)
255
+ return [];
256
+ if (!this.vecAvailable) {
257
+ console.error('[knowledge] Vector search unavailable — sqlite-vec not loaded');
258
+ return [];
259
+ }
260
+ try {
261
+ const queryBuf = toFloat32Buffer(queryVector);
262
+ const fetchLimit = source ? maxResults * 3 : maxResults;
263
+ const rows = this.db
264
+ .prepare(`SELECT v.id, v.distance
265
+ FROM vec_idx v
266
+ WHERE v.embedding MATCH ?
267
+ ORDER BY v.distance
268
+ LIMIT ?`)
269
+ .all(queryBuf, fetchLimit);
270
+ if (rows.length === 0)
271
+ return [];
272
+ const idPlaceholders = rows.map(() => '?').join(',');
273
+ const embeddingRows = this.db
274
+ .prepare(`SELECT id, source, source_id, chunk_text, metadata
275
+ FROM embeddings
276
+ WHERE id IN (${idPlaceholders})`)
277
+ .all(...rows.map((r) => r.id));
278
+ const embMap = new Map(embeddingRows.map((r) => [r.id, r]));
279
+ const results = [];
280
+ for (const row of rows) {
281
+ const emb = embMap.get(row.id);
282
+ if (!emb)
283
+ continue;
284
+ if (source && emb.source !== source)
285
+ continue;
286
+ results.push({
287
+ id: row.id,
288
+ sourceId: emb.source_id,
289
+ source: emb.source,
290
+ chunkText: emb.chunk_text,
291
+ score: 1 - row.distance,
292
+ metadata: emb.metadata ? JSON.parse(emb.metadata) : undefined,
293
+ });
294
+ if (results.length >= maxResults)
295
+ break;
296
+ }
297
+ return results;
298
+ }
299
+ catch (err) {
300
+ console.error(`[knowledge] Vector search failed: ${err}`);
301
+ return [];
302
+ }
303
+ }
304
+ /**
305
+ * Delete all embeddings for a given source_id.
306
+ *
307
+ * @param sourceId - The source identifier to remove
308
+ */
309
+ deleteBySource(sourceId) {
310
+ try {
311
+ this.ensureInit();
312
+ }
313
+ catch {
314
+ return;
315
+ }
316
+ if (!this.db)
317
+ return;
318
+ try {
319
+ const ids = this.db
320
+ .prepare('SELECT id FROM embeddings WHERE source_id = ?')
321
+ .all(sourceId);
322
+ if (ids.length === 0)
323
+ return;
324
+ const transaction = this.db.transaction(() => {
325
+ if (this.vecAvailable) {
326
+ const deleteVec = this.db.prepare('DELETE FROM vec_idx WHERE id = ?');
327
+ for (const row of ids) {
328
+ deleteVec.run(row.id);
329
+ }
330
+ }
331
+ this.db.prepare('DELETE FROM embeddings WHERE source_id = ?').run(sourceId);
332
+ });
333
+ transaction();
334
+ }
335
+ catch (err) {
336
+ console.error(`[knowledge] Delete by source failed: ${err}`);
337
+ }
338
+ }
339
+ /**
340
+ * Check whether a source_id has any stored embeddings.
341
+ *
342
+ * @param sourceId - The source identifier to check
343
+ * @returns True if at least one embedding exists for this source
344
+ */
345
+ hasEmbeddings(sourceId) {
346
+ try {
347
+ this.ensureInit();
348
+ }
349
+ catch {
350
+ return false;
351
+ }
352
+ if (!this.db)
353
+ return false;
354
+ try {
355
+ const row = this.db
356
+ .prepare('SELECT 1 FROM embeddings WHERE source_id = ? LIMIT 1')
357
+ .get(sourceId);
358
+ return row !== undefined;
359
+ }
360
+ catch (err) {
361
+ console.error(`[knowledge] hasEmbeddings check failed: ${err}`);
362
+ return false;
363
+ }
364
+ }
365
+ /**
366
+ * Get the name of the currently active embedding provider.
367
+ *
368
+ * @returns The provider name, or null if none is set
369
+ */
370
+ getCurrentProvider() {
371
+ try {
372
+ this.ensureInit();
373
+ }
374
+ catch {
375
+ return null;
376
+ }
377
+ return this.getMetaValue('provider');
378
+ }
379
+ /**
380
+ * Set the active embedding provider. If the provider has changed since
381
+ * the last call, all existing embeddings are wiped to avoid mixing
382
+ * incompatible vector spaces.
383
+ *
384
+ * @param providerName - The provider name (e.g. "openai", "ollama")
385
+ * @param dimensions - The embedding dimensions for this provider
386
+ * @returns True if a wipe was performed (provider changed)
387
+ */
388
+ setProvider(providerName, dimensions) {
389
+ this.init(dimensions);
390
+ if (!this.db)
391
+ return false;
392
+ const current = this.getMetaValue('provider');
393
+ if (current && current !== providerName) {
394
+ this.wipe();
395
+ this.initialized = false;
396
+ this.init(dimensions);
397
+ this.setMetaValue('provider', providerName);
398
+ this.setMetaValue('dimensions', String(dimensions));
399
+ return true;
400
+ }
401
+ if (!current) {
402
+ this.setMetaValue('provider', providerName);
403
+ }
404
+ return false;
405
+ }
406
+ /**
407
+ * Wipe all embeddings and the vec0 index.
408
+ * Used when switching embedding providers to avoid mixing vector spaces.
409
+ */
410
+ wipe() {
411
+ try {
412
+ this.ensureInit();
413
+ }
414
+ catch {
415
+ return;
416
+ }
417
+ if (!this.db)
418
+ return;
419
+ try {
420
+ this.db.exec('DELETE FROM embeddings');
421
+ if (this.vecAvailable) {
422
+ this.db.exec('DROP TABLE IF EXISTS vec_idx');
423
+ }
424
+ this.db.exec("DELETE FROM meta WHERE key = 'dimensions'");
425
+ this.currentDimensions = null;
426
+ }
427
+ catch (err) {
428
+ console.error(`[knowledge] Wipe failed: ${err}`);
429
+ }
430
+ }
431
+ /**
432
+ * Get statistics about the vector store.
433
+ *
434
+ * @returns Counts by source type, DB file size, provider, and dimensions
435
+ */
436
+ stats() {
437
+ const empty = {
438
+ totalEntries: 0,
439
+ knowledgeEntries: 0,
440
+ sessionEntries: 0,
441
+ dbSizeMB: 0,
442
+ provider: null,
443
+ dimensions: null,
444
+ };
445
+ try {
446
+ this.ensureInit();
447
+ }
448
+ catch {
449
+ return empty;
450
+ }
451
+ if (!this.db)
452
+ return empty;
453
+ try {
454
+ const total = this.db.prepare('SELECT COUNT(*) as count FROM embeddings').get();
455
+ const knowledge = this.db
456
+ .prepare("SELECT COUNT(*) as count FROM embeddings WHERE source = 'knowledge'")
457
+ .get();
458
+ const session = this.db
459
+ .prepare("SELECT COUNT(*) as count FROM embeddings WHERE source = 'session'")
460
+ .get();
461
+ let dbSizeMB = 0;
462
+ try {
463
+ const stat = statSync(this.dbPath);
464
+ dbSizeMB = Math.round((stat.size / (1024 * 1024)) * 100) / 100;
465
+ }
466
+ catch {
467
+ /* empty — file may not exist yet */
468
+ }
469
+ const provider = this.getMetaValue('provider');
470
+ const dimStr = this.getMetaValue('dimensions');
471
+ return {
472
+ totalEntries: total.count,
473
+ knowledgeEntries: knowledge.count,
474
+ sessionEntries: session.count,
475
+ dbSizeMB,
476
+ provider,
477
+ dimensions: dimStr ? parseInt(dimStr, 10) : null,
478
+ };
479
+ }
480
+ catch (err) {
481
+ console.error(`[knowledge] Stats query failed: ${err}`);
482
+ return empty;
483
+ }
484
+ }
485
+ /** Close the database connection and release resources. */
486
+ close() {
487
+ try {
488
+ this.db?.close();
489
+ }
490
+ catch (err) {
491
+ console.error(`[knowledge] Failed to close vector store: ${err}`);
492
+ }
493
+ finally {
494
+ this.db = null;
495
+ this.initialized = false;
496
+ this.currentDimensions = null;
497
+ }
498
+ }
499
+ }
500
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/vectorstore/store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { getVersion } from './types.js';
2
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { getVersion } from './types.js';
2
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}