@monoes/memory 1.0.14 → 1.0.15

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 (52) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +49 -79
  3. package/dist/cache-manager.d.ts.map +1 -1
  4. package/dist/cache-manager.js.map +1 -1
  5. package/dist/checkpointer.d.ts.map +1 -1
  6. package/dist/controller-registry.d.ts.map +1 -1
  7. package/dist/controller-registry.js +14 -0
  8. package/dist/controller-registry.js.map +1 -1
  9. package/dist/database-provider.js.map +1 -1
  10. package/dist/hnsw-index.d.ts.map +1 -1
  11. package/dist/hnsw-index.js.map +1 -1
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js.map +1 -1
  14. package/dist/knowledge/document-chunker.js.map +1 -1
  15. package/dist/knowledge/knowledge-retriever.d.ts.map +1 -1
  16. package/dist/knowledge/knowledge-retriever.js.map +1 -1
  17. package/dist/knowledge/knowledge-store.d.ts.map +1 -1
  18. package/dist/knowledge/knowledge-store.js +4 -6
  19. package/dist/knowledge/knowledge-store.js.map +1 -1
  20. package/dist/migration.d.ts.map +1 -1
  21. package/dist/migration.js +11 -3
  22. package/dist/migration.js.map +1 -1
  23. package/dist/prompt-version-store.d.ts.map +1 -1
  24. package/dist/prompt-version-store.js +9 -20
  25. package/dist/prompt-version-store.js.map +1 -1
  26. package/dist/query-builder.d.ts.map +1 -1
  27. package/dist/query-builder.js.map +1 -1
  28. package/dist/sql-backend.d.ts +25 -0
  29. package/dist/sql-backend.d.ts.map +1 -1
  30. package/dist/sql-backend.js +105 -30
  31. package/dist/sql-backend.js.map +1 -1
  32. package/dist/sql-driver.d.ts +2 -2
  33. package/dist/sql-driver.d.ts.map +1 -1
  34. package/dist/sql-driver.js.map +1 -1
  35. package/dist/sql-schema.d.ts +23 -2
  36. package/dist/sql-schema.d.ts.map +1 -1
  37. package/dist/sql-schema.js +87 -2
  38. package/dist/sql-schema.js.map +1 -1
  39. package/dist/sqlite-backend.d.ts +6 -0
  40. package/dist/sqlite-backend.d.ts.map +1 -1
  41. package/dist/sqlite-backend.js +3 -0
  42. package/dist/sqlite-backend.js.map +1 -1
  43. package/dist/sqljs-backend.d.ts +4 -0
  44. package/dist/sqljs-backend.d.ts.map +1 -1
  45. package/dist/sqljs-backend.js +1 -0
  46. package/dist/sqljs-backend.js.map +1 -1
  47. package/dist/types.d.ts.map +1 -1
  48. package/dist/utils/jsonl-store.d.ts +17 -0
  49. package/dist/utils/jsonl-store.d.ts.map +1 -0
  50. package/dist/utils/jsonl-store.js +57 -0
  51. package/dist/utils/jsonl-store.js.map +1 -0
  52. package/package.json +10 -12
@@ -34,6 +34,8 @@ export declare class SqlBackend extends EventEmitter implements IMemoryBackend {
34
34
  protected initialized: boolean;
35
35
  /** Populated during initialize(); surfaced for diagnostics. */
36
36
  migrationReport: MigrationReport | null;
37
+ /** Whether the FTS5 full-text index is available (Issue #66). */
38
+ private _fts5Available;
37
39
  private stats;
38
40
  /** Debounce counter: the agent_reads purge is expensive, so it is amortised. */
39
41
  private _readCount;
@@ -65,6 +67,29 @@ export declare class SqlBackend extends EventEmitter implements IMemoryBackend {
65
67
  * outgrows it.
66
68
  */
67
69
  search(embedding: Float32Array, options: SearchOptions): Promise<SearchResult[]>;
70
+ /**
71
+ * FTS5-accelerated keyword search (Issue #66).
72
+ *
73
+ * When the FTS5 index is available, text matching runs inside SQLite via
74
+ * `MATCH` — orders of magnitude faster than loading 50k rows into JS. When
75
+ * FTS5 is unavailable (e.g. sql.js WASM compiled without the extension) the
76
+ * method returns `null` so the caller can fall back to JS-side matching.
77
+ *
78
+ * `queryText` is the raw user query; it is FTS5-tokenized automatically.
79
+ * Special characters are escaped to prevent FTS5 syntax errors.
80
+ */
81
+ keywordSearch(queryText: string, options?: {
82
+ namespace?: string;
83
+ limit?: number;
84
+ }): Promise<{
85
+ id: string;
86
+ key: string;
87
+ content: string;
88
+ namespace: string;
89
+ rank: number;
90
+ }[] | null>;
91
+ /** Whether FTS5 full-text search is available on this backend instance. */
92
+ get fts5Available(): boolean;
68
93
  count(namespace?: string): Promise<number>;
69
94
  listNamespaces(): Promise<string[]>;
70
95
  getStats(): Promise<BackendStats>;
@@ -1 +1 @@
1
- {"version":3,"file":"sql-backend.d.ts","sourceRoot":"","sources":["../src/sql-backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sql-backend.d.ts","sourceRoot":"","sources":["../src/sql-backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EAAE,SAAS,EAAY,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAkC,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvF,OAAO,EACL,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,iBAAiB,EAGjB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,gBAAgB;IAC/B,yDAAyD;IACzD,gBAAgB,EAAE,MAAM,CAAC;IACzB,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB;AAWD,qBAAa,UAAW,SAAQ,YAAa,YAAW,cAAc;IACpE,SAAS,CAAC,MAAM,EAAE,gBAAgB,CAAC;IACnC,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAQ;IAC1C,SAAS,CAAC,WAAW,UAAS;IAC9B,+DAA+D;IAC/D,eAAe,EAAE,eAAe,GAAG,IAAI,CAAQ;IAC/C,iEAAiE;IACjE,OAAO,CAAC,cAAc,CAAS;IAE/B,OAAO,CAAC,KAAK,CAA0E;IACvF,gFAAgF;IAChF,OAAO,CAAC,UAAU,CAAK;IAEvB,YAAY,MAAM,GAAE,OAAO,CAAC,gBAAgB,CAAM,EAGjD;IAED,yCAAyC;IACzC,UAAgB,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC,CAE/C;IAEK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAuBhC;IAEK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAY9B;IAIK,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAW7C;IAED,kEAAkE;IAClE,OAAO,CAAC,SAAS;IAwEX,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAOtD;IAEK,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAkB/E;IAEK,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAazC;IAEK,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAc/C;IAEK,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAevD;IAIK,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CA2BnE;IAED;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAiBtB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAW1E;IAEK,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA4GtD;IAED;;;;;OAKG;IACG,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CA0BrF;IAED;;;;;;;;;;OAUG;IACG,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KACX,GACL,OAAO,CACR;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,IAAI,CACvF,CAyCA;IAED,2EAA2E;IAC3E,IAAI,aAAa,IAAI,OAAO,CAE3B;IAEK,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQ/C;IAEK,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAKxC;IAIK,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC,CAuCtC;IAEK,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAkE9C;IAED,gEAAgE;IAC1D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAG7B;IAQD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAA4B;IAC1D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAA6B;IAC/D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAO;IAE1C,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAQ3C;IAED,SAAS,CAAC,iBAAiB,IAAI,IAAI,CAIlC;IAED,OAAO,CAAC,UAAU;CAgCnB"}
@@ -17,7 +17,7 @@
17
17
  */
18
18
  import { EventEmitter } from 'node:events';
19
19
  import { cosineSimilarity } from './math-utils.js';
20
- import { initializeSchema } from './sql-schema.js';
20
+ import { initializeSchema, hasFTS5Table } from './sql-schema.js';
21
21
  const DEFAULT_CONFIG = {
22
22
  defaultNamespace: 'default',
23
23
  maxEntries: 1_000_000,
@@ -31,6 +31,8 @@ export class SqlBackend extends EventEmitter {
31
31
  initialized = false;
32
32
  /** Populated during initialize(); surfaced for diagnostics. */
33
33
  migrationReport = null;
34
+ /** Whether the FTS5 full-text index is available (Issue #66). */
35
+ _fts5Available = false;
34
36
  stats = { queryCount: 0, totalQueryTime: 0, writeCount: 0, totalWriteTime: 0 };
35
37
  /** Debounce counter: the agent_reads purge is expensive, so it is amortised. */
36
38
  _readCount = 0;
@@ -54,6 +56,7 @@ export class SqlBackend extends EventEmitter {
54
56
  /* unsupported on this driver */
55
57
  }
56
58
  this.migrationReport = initializeSchema(this.driver);
59
+ this._fts5Available = hasFTS5Table(this.driver);
57
60
  if (this.config.verbose && this.migrationReport.legacyColumnFound) {
58
61
  console.log(`[SqlBackend] migrated ${this.migrationReport.migrated} inline embedding(s); ` +
59
62
  `${this.migrationReport.skipped} already present`);
@@ -95,7 +98,9 @@ export class SqlBackend extends EventEmitter {
95
98
  // one it already had.
96
99
  let embeddingToStore = entry.embedding;
97
100
  if (!embeddingToStore) {
98
- const existing = d.get('SELECT embedding FROM memory_embeddings WHERE entry_id = ?', [entry.id]);
101
+ const existing = d.get('SELECT embedding FROM memory_embeddings WHERE entry_id = ?', [
102
+ entry.id,
103
+ ]);
99
104
  const buf = existing?.embedding;
100
105
  if (buf && buf.byteLength > 0) {
101
106
  embeddingToStore = new Float32Array(buf.buffer, buf.byteOffset, buf.byteLength / 4);
@@ -106,15 +111,30 @@ export class SqlBackend extends EventEmitter {
106
111
  created_at, updated_at, expires_at, event_at, version, "references",
107
112
  access_count, last_accessed_at
108
113
  ) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)`, [
109
- entry.id, entry.key, entry.content, entry.type, entry.namespace,
110
- JSON.stringify(entry.tags), JSON.stringify(entry.metadata),
111
- entry.ownerId || null, entry.accessLevel,
112
- entry.createdAt, entry.updatedAt, entry.expiresAt || null, entry.eventAt ?? null,
113
- entry.version, JSON.stringify(entry.references), entry.accessCount, entry.lastAccessedAt,
114
+ entry.id,
115
+ entry.key,
116
+ entry.content,
117
+ entry.type,
118
+ entry.namespace,
119
+ JSON.stringify(entry.tags),
120
+ JSON.stringify(entry.metadata),
121
+ entry.ownerId || null,
122
+ entry.accessLevel,
123
+ entry.createdAt,
124
+ entry.updatedAt,
125
+ entry.expiresAt || null,
126
+ entry.eventAt ?? null,
127
+ entry.version,
128
+ JSON.stringify(entry.references),
129
+ entry.accessCount,
130
+ entry.lastAccessedAt,
114
131
  ]);
115
132
  d.run('DELETE FROM memory_entry_tags WHERE entry_id = ?', [entry.id]);
116
133
  for (const tag of entry.tags) {
117
- d.run('INSERT OR IGNORE INTO memory_entry_tags (entry_id, tag) VALUES (?, ?)', [entry.id, tag]);
134
+ d.run('INSERT OR IGNORE INTO memory_entry_tags (entry_id, tag) VALUES (?, ?)', [
135
+ entry.id,
136
+ tag,
137
+ ]);
118
138
  }
119
139
  if (embeddingToStore) {
120
140
  // Slice by byteOffset/byteLength: for copies under Node's 4KB pooling
@@ -207,7 +227,7 @@ export class SqlBackend extends EventEmitter {
207
227
  async get(id, agentId) {
208
228
  this.ensureInitialized();
209
229
  const startTime = performance.now();
210
- const row = this.driver.get('SELECT * FROM memory_entries WHERE id = ?', [id]);
230
+ const row = this.driver.get('SELECT memory_entries.*, emb.embedding AS _emb FROM memory_entries LEFT JOIN memory_embeddings emb ON emb.entry_id = memory_entries.id WHERE memory_entries.id = ?', [id]);
211
231
  if (!row)
212
232
  return null;
213
233
  // Collaborative memory promotion — https://arxiv.org/abs/2505.18279
@@ -239,18 +259,13 @@ export class SqlBackend extends EventEmitter {
239
259
  d.run('DELETE FROM agent_reads WHERE read_at <= ?', [cutoff]);
240
260
  const row = d.get('SELECT COUNT(DISTINCT agent_id) as cnt FROM agent_reads WHERE entry_id = ? AND read_at > ?', [entryId, cutoff]);
241
261
  if (Number(row?.cnt ?? 0) >= 3) {
242
- d.run("UPDATE memory_entries SET access_level = 'team' WHERE id = ? AND access_level = 'private'", [
243
- entryId,
244
- ]);
262
+ d.run("UPDATE memory_entries SET access_level = 'team' WHERE id = ? AND access_level = 'private'", [entryId]);
245
263
  }
246
264
  }
247
265
  async getByKey(namespace, key) {
248
266
  this.ensureInitialized();
249
267
  const startTime = performance.now();
250
- const row = this.driver.get('SELECT * FROM memory_entries WHERE namespace = ? AND key = ?', [
251
- namespace,
252
- key,
253
- ]);
268
+ const row = this.driver.get('SELECT memory_entries.*, emb.embedding AS _emb FROM memory_entries LEFT JOIN memory_embeddings emb ON emb.entry_id = memory_entries.id WHERE memory_entries.namespace = ? AND memory_entries.key = ?', [namespace, key]);
254
269
  if (!row)
255
270
  return null;
256
271
  const entry = this.rowToEntry(row);
@@ -260,7 +275,9 @@ export class SqlBackend extends EventEmitter {
260
275
  async query(query) {
261
276
  this.ensureInitialized();
262
277
  const startTime = performance.now();
263
- let sql = 'SELECT * FROM memory_entries WHERE 1=1';
278
+ // PKG-3: LEFT JOIN memory_embeddings once so rowToEntry can read the
279
+ // embedding column without an N+1 round-trip per result row.
280
+ let sql = 'SELECT memory_entries.*, emb.embedding AS _emb FROM memory_entries LEFT JOIN memory_embeddings emb ON emb.entry_id = memory_entries.id WHERE 1=1';
264
281
  const params = [];
265
282
  if (query.namespace) {
266
283
  sql += ' AND namespace = ?';
@@ -329,8 +346,11 @@ export class SqlBackend extends EventEmitter {
329
346
  params.push(...query.tags, query.tags.length);
330
347
  }
331
348
  const colMap = {
332
- createdAt: 'created_at', updatedAt: 'updated_at',
333
- lastAccessedAt: 'last_accessed_at', accessCount: 'access_count', key: 'key',
349
+ createdAt: 'created_at',
350
+ updatedAt: 'updated_at',
351
+ lastAccessedAt: 'last_accessed_at',
352
+ accessCount: 'access_count',
353
+ key: 'key',
334
354
  };
335
355
  const orderCol = query.sortField && query.sortField !== 'score' && colMap[query.sortField]
336
356
  ? colMap[query.sortField]
@@ -376,17 +396,70 @@ export class SqlBackend extends EventEmitter {
376
396
  const similarity = cosineSimilarity(embedding, vec);
377
397
  if (options.threshold !== undefined && similarity < options.threshold)
378
398
  continue;
379
- const clean = { ...row };
380
- delete clean._emb;
381
- results.push({ entry: this.rowToEntry(clean), score: similarity, distance: 1 - similarity });
399
+ // PKG-3: row already carries _emb from the JOIN; rowToEntry reads it
400
+ // directly instead of re-querying memory_embeddings per row.
401
+ results.push({ entry: this.rowToEntry(row), score: similarity, distance: 1 - similarity });
382
402
  }
383
403
  results.sort((a, b) => b.score - a.score);
384
404
  return results.slice(0, options.k);
385
405
  }
406
+ /**
407
+ * FTS5-accelerated keyword search (Issue #66).
408
+ *
409
+ * When the FTS5 index is available, text matching runs inside SQLite via
410
+ * `MATCH` — orders of magnitude faster than loading 50k rows into JS. When
411
+ * FTS5 is unavailable (e.g. sql.js WASM compiled without the extension) the
412
+ * method returns `null` so the caller can fall back to JS-side matching.
413
+ *
414
+ * `queryText` is the raw user query; it is FTS5-tokenized automatically.
415
+ * Special characters are escaped to prevent FTS5 syntax errors.
416
+ */
417
+ async keywordSearch(queryText, options = {}) {
418
+ this.ensureInitialized();
419
+ if (!this._fts5Available)
420
+ return null;
421
+ const limit = Math.min(Math.max(1, options.limit ?? 50), MAX_QUERY_LIMIT);
422
+ // Escape FTS5 special characters and build a query where every token must
423
+ // appear (implicit AND). Tokens shorter than 2 chars are dropped — they
424
+ // produce noise and FTS5 may reject single-char tokens depending on the
425
+ // tokenizer configuration.
426
+ const tokens = queryText
427
+ .replace(/[":*^~(){}[\]\\]/g, ' ')
428
+ .split(/\s+/)
429
+ .filter((t) => t.length > 1)
430
+ .map((t) => `"${t}"`)
431
+ .join(' ');
432
+ if (!tokens)
433
+ return null;
434
+ const d = this.driver;
435
+ const ns = options.namespace;
436
+ const rows = d.all(`SELECT f.entry_id, f.key, f.content, e.namespace, rank
437
+ FROM memory_entries_fts f
438
+ JOIN memory_entries e ON e.id = f.entry_id
439
+ WHERE memory_entries_fts MATCH ?
440
+ AND (e.expires_at IS NULL OR e.expires_at = 0 OR e.expires_at > ?)
441
+ ${ns ? 'AND e.namespace = ?' : ''}
442
+ ORDER BY rank
443
+ LIMIT ?`, ns ? [tokens, Date.now(), ns, limit] : [tokens, Date.now(), limit]);
444
+ return rows.map((r) => ({
445
+ id: String(r.entry_id),
446
+ key: String(r.key),
447
+ content: String(r.content),
448
+ namespace: String(r.namespace),
449
+ // FTS5 rank is negative (lower = better match); invert to a 0–1 score.
450
+ rank: Number(r.rank),
451
+ }));
452
+ }
453
+ /** Whether FTS5 full-text search is available on this backend instance. */
454
+ get fts5Available() {
455
+ return this._fts5Available;
456
+ }
386
457
  async count(namespace) {
387
458
  this.ensureInitialized();
388
459
  const row = namespace
389
- ? this.driver.get('SELECT COUNT(*) as count FROM memory_entries WHERE namespace = ?', [namespace])
460
+ ? this.driver.get('SELECT COUNT(*) as count FROM memory_entries WHERE namespace = ?', [
461
+ namespace,
462
+ ])
390
463
  : this.driver.get('SELECT COUNT(*) as count FROM memory_entries');
391
464
  return Number(row?.count ?? 0);
392
465
  }
@@ -403,7 +476,10 @@ export class SqlBackend extends EventEmitter {
403
476
  entriesByNamespace[String(row.namespace)] = Number(row.count);
404
477
  }
405
478
  const entriesByType = {
406
- episodic: 0, semantic: 0, working: 0, cache: 0,
479
+ episodic: 0,
480
+ semantic: 0,
481
+ working: 0,
482
+ cache: 0,
407
483
  };
408
484
  for (const row of d.all('SELECT type, COUNT(*) as count FROM memory_entries GROUP BY type')) {
409
485
  entriesByType[String(row.type)] = Number(row.count);
@@ -518,14 +594,13 @@ export class SqlBackend extends EventEmitter {
518
594
  }
519
595
  }
520
596
  rowToEntry(row) {
597
+ // PKG-3: callers LEFT JOIN memory_embeddings AS _emb so the embedding is
598
+ // already on the row — no extra SELECT per entry. The buffer slice
599
+ // pattern matches storeSync(): Node pools small Buffers in a shared 4KB
600
+ // slab, so `.buffer` alone can span unrelated memory.
521
601
  let embedding;
522
- const embRow = this.driver.get('SELECT embedding FROM memory_embeddings WHERE entry_id = ?', [
523
- String(row.id),
524
- ]);
525
- const buf = embRow?.embedding;
602
+ const buf = row._emb;
526
603
  if (buf && buf.byteLength > 0) {
527
- // Slice by byteOffset/byteLength — see storeSync for why `.buffer` alone
528
- // can span unrelated pooled memory.
529
604
  embedding = new Float32Array(buf.buffer, buf.byteOffset, buf.byteLength / 4);
530
605
  }
531
606
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"sql-backend.js","sourceRoot":"","sources":["../src/sql-backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sql-backend.js","sourceRoot":"","sources":["../src/sql-backend.ts"],"names":[],"mappings":"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"}
@@ -74,7 +74,7 @@ interface BetterSqliteDb {
74
74
  }
75
75
  export declare class BetterSqliteDriver implements SqlDriver {
76
76
  private db;
77
- readonly kind: "better-sqlite3";
77
+ readonly kind: 'better-sqlite3';
78
78
  /**
79
79
  * Prepared-statement cache keyed by SQL text.
80
80
  *
@@ -114,7 +114,7 @@ interface SqlJsDb {
114
114
  export declare class SqlJsDriver implements SqlDriver {
115
115
  private db;
116
116
  private flush?;
117
- readonly kind: "sql.js";
117
+ readonly kind: 'sql.js';
118
118
  /**
119
119
  * @param db the opened sql.js Database
120
120
  * @param flush writes the exported bytes to durable storage; omitted for
@@ -1 +1 @@
1
- {"version":3,"file":"sql-driver.d.ts","sourceRoot":"","sources":["../src/sql-driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sql-driver.d.ts","sourceRoot":"","sources":["../src/sql-driver.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sql-driver.js","sourceRoot":"","sources":["../src/sql-driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sql-driver.js","sourceRoot":"","sources":["../src/sql-driver.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,7 @@
23
23
  */
24
24
  import type { SqlDriver } from './sql-driver.js';
25
25
  /** Bumped when the canonical schema changes; stored in PRAGMA user_version. */
26
- export declare const SCHEMA_VERSION = 2;
26
+ export declare const SCHEMA_VERSION = 3;
27
27
  /**
28
28
  * Create the canonical schema. Safe to run repeatedly.
29
29
  *
@@ -66,9 +66,30 @@ export interface MigrationReport {
66
66
  * - **Null-safe.** Rows with no embedding are not given an empty one.
67
67
  */
68
68
  export declare function migrateLegacyInlineEmbeddings(driver: SqlDriver): MigrationReport;
69
+ /**
70
+ * True when the FTS5 virtual table already exists.
71
+ */
72
+ export declare function hasFTS5Table(driver: SqlDriver): boolean;
73
+ /**
74
+ * Create FTS5 virtual table + sync triggers. Idempotent and fail-safe:
75
+ *
76
+ * - **FTS5 unavailable** (sql.js compiled without the extension, or very old
77
+ * SQLite): the CREATE VIRTUAL TABLE will throw; we catch and return false.
78
+ * Keyword search falls back to the existing JS scan — no data loss.
79
+ * - **Already exists**: nothing to do; triggers are IF NOT EXISTS.
80
+ * - **Existing data**: bulk-populated in a single INSERT … SELECT.
81
+ *
82
+ * The FTS5 table is standalone (not external-content) with an `entry_id`
83
+ * column marked UNINDEXED so `MATCH` only considers `key` and `content`.
84
+ * Triggers keep it in lock-step with the source table on every write.
85
+ *
86
+ * Returns true if the FTS5 table is usable after this call.
87
+ */
88
+ export declare function createFTS5Index(driver: SqlDriver): boolean;
69
89
  /**
70
90
  * Bring a database to the canonical schema: create tables, migrate legacy
71
- * inline embeddings, enforce uniqueness, and record the version.
91
+ * inline embeddings, enforce uniqueness, build the FTS5 index, and record
92
+ * the version.
72
93
  */
73
94
  export declare function initializeSchema(driver: SqlDriver): MigrationReport;
74
95
  //# sourceMappingURL=sql-schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sql-schema.d.ts","sourceRoot":"","sources":["../src/sql-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,+EAA+E;AAC/E,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqD7D;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqBjE;AAED,iFAAiF;AACjF,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAOnE;AAED,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,iBAAiB,EAAE,OAAO,CAAC;IAC3B,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,SAAS,GAAG,eAAe,CA6BhF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,eAAe,CAUnE"}
1
+ {"version":3,"file":"sql-schema.d.ts","sourceRoot":"","sources":["../src/sql-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,+EAA+E;AAC/E,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqD7D;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqBjE;AAED,iFAAiF;AACjF,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAOnE;AAED,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,iBAAiB,EAAE,OAAO,CAAC;IAC3B,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,SAAS,GAAG,eAAe,CA6BhF;AAID;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CASvD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAmD1D;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,eAAe,CAWnE"}
@@ -22,7 +22,7 @@
22
22
  * legacy column in place rather than rewriting the table.
23
23
  */
24
24
  /** Bumped when the canonical schema changes; stored in PRAGMA user_version. */
25
- export const SCHEMA_VERSION = 2;
25
+ export const SCHEMA_VERSION = 3;
26
26
  /**
27
27
  * Create the canonical schema. Safe to run repeatedly.
28
28
  *
@@ -159,14 +159,99 @@ export function migrateLegacyInlineEmbeddings(driver) {
159
159
  });
160
160
  return report;
161
161
  }
162
+ // ===== FTS5 Full-Text Search Index (Issue #66) =============================
163
+ /**
164
+ * True when the FTS5 virtual table already exists.
165
+ */
166
+ export function hasFTS5Table(driver) {
167
+ try {
168
+ const row = driver.get("SELECT name FROM sqlite_master WHERE type = 'table' AND name = 'memory_entries_fts'");
169
+ return row !== null;
170
+ }
171
+ catch {
172
+ return false;
173
+ }
174
+ }
175
+ /**
176
+ * Create FTS5 virtual table + sync triggers. Idempotent and fail-safe:
177
+ *
178
+ * - **FTS5 unavailable** (sql.js compiled without the extension, or very old
179
+ * SQLite): the CREATE VIRTUAL TABLE will throw; we catch and return false.
180
+ * Keyword search falls back to the existing JS scan — no data loss.
181
+ * - **Already exists**: nothing to do; triggers are IF NOT EXISTS.
182
+ * - **Existing data**: bulk-populated in a single INSERT … SELECT.
183
+ *
184
+ * The FTS5 table is standalone (not external-content) with an `entry_id`
185
+ * column marked UNINDEXED so `MATCH` only considers `key` and `content`.
186
+ * Triggers keep it in lock-step with the source table on every write.
187
+ *
188
+ * Returns true if the FTS5 table is usable after this call.
189
+ */
190
+ export function createFTS5Index(driver) {
191
+ if (hasFTS5Table(driver))
192
+ return true;
193
+ try {
194
+ driver.exec(`
195
+ CREATE VIRTUAL TABLE memory_entries_fts USING fts5(
196
+ entry_id UNINDEXED,
197
+ key,
198
+ content,
199
+ tokenize = 'porter unicode61'
200
+ );
201
+ `);
202
+ }
203
+ catch {
204
+ // FTS5 extension not available on this build (common for sql.js WASM).
205
+ return false;
206
+ }
207
+ try {
208
+ // Populate from existing data.
209
+ driver.exec(`
210
+ INSERT INTO memory_entries_fts(entry_id, key, content)
211
+ SELECT id, key, content FROM memory_entries;
212
+ `);
213
+ // Keep in sync via triggers.
214
+ driver.exec(`
215
+ CREATE TRIGGER IF NOT EXISTS memory_entries_fts_ai
216
+ AFTER INSERT ON memory_entries BEGIN
217
+ INSERT INTO memory_entries_fts(entry_id, key, content)
218
+ VALUES (NEW.id, NEW.key, NEW.content);
219
+ END;
220
+
221
+ CREATE TRIGGER IF NOT EXISTS memory_entries_fts_ad
222
+ AFTER DELETE ON memory_entries BEGIN
223
+ DELETE FROM memory_entries_fts WHERE entry_id = OLD.id;
224
+ END;
225
+
226
+ CREATE TRIGGER IF NOT EXISTS memory_entries_fts_au
227
+ AFTER UPDATE OF key, content ON memory_entries BEGIN
228
+ DELETE FROM memory_entries_fts WHERE entry_id = OLD.id;
229
+ INSERT INTO memory_entries_fts(entry_id, key, content)
230
+ VALUES (NEW.id, NEW.key, NEW.content);
231
+ END;
232
+ `);
233
+ return true;
234
+ }
235
+ catch {
236
+ // Trigger or populate failed — drop the half-built FTS table so the next
237
+ // init attempt gets a clean retry rather than a corrupt partial index.
238
+ try {
239
+ driver.exec('DROP TABLE IF EXISTS memory_entries_fts');
240
+ }
241
+ catch { /* ignore */ }
242
+ return false;
243
+ }
244
+ }
162
245
  /**
163
246
  * Bring a database to the canonical schema: create tables, migrate legacy
164
- * inline embeddings, enforce uniqueness, and record the version.
247
+ * inline embeddings, enforce uniqueness, build the FTS5 index, and record
248
+ * the version.
165
249
  */
166
250
  export function initializeSchema(driver) {
167
251
  createCanonicalSchema(driver);
168
252
  const report = migrateLegacyInlineEmbeddings(driver);
169
253
  enforceNamespaceKeyUnique(driver);
254
+ createFTS5Index(driver);
170
255
  try {
171
256
  driver.exec(`PRAGMA user_version = ${SCHEMA_VERSION}`);
172
257
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sql-schema.js","sourceRoot":"","sources":["../src/sql-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,+EAA+E;AAC/E,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAEhC;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,MAAM,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDX,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC;;;;;;;;;;;KAWX,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,4EAA4E;QAC5E,2EAA2E;QAC3E,MAAM,CAAC,IAAI,CACT,gFAAgF,CACjF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,wBAAwB,CAAC,MAAiB;IACxD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAWD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,6BAA6B,CAAC,MAAiB;IAC7D,MAAM,MAAM,GAAoB,EAAE,iBAAiB,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAEtF,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IACrD,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAEhC,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE;QACtB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CACrB;;sCAEgC,CACjC,CAAC;QAEF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1B,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,2DAA2D,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/F,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,SAAS;YACX,CAAC;YACD,MAAM,CAAC,GAAG,CACR,6EAA6E,EAC7E,CAAC,EAAE,EAAE,GAAG,CAAC,SAAuB,CAAC,CAClC,CAAC;YACF,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAiB;IAChD,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,6BAA6B,CAAC,MAAM,CAAC,CAAC;IACrD,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,yBAAyB,cAAc,EAAE,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,sEAAsE;IACxE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"sql-schema.js","sourceRoot":"","sources":["../src/sql-schema.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,12 @@ export interface SQLiteBackendConfig {
31
31
  maxEntries: number;
32
32
  /** Enable verbose logging */
33
33
  verbose: boolean;
34
+ /** SQLite busy timeout in milliseconds. When another connection holds a lock,
35
+ * SQLite will wait up to this long before returning SQLITE_BUSY. Default: 0
36
+ * (fail immediately). Callers sharing a database across processes (e.g. CLI
37
+ * hooks and the MCP server hitting the same memory.db) should set this to
38
+ * several seconds (e.g. 5000). */
39
+ busyTimeoutMs: number;
34
40
  }
35
41
  /**
36
42
  * SQLite backend for structured memory storage.