@monoes/memory 1.0.9 → 1.0.11

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 (42) hide show
  1. package/README.md +10 -11
  2. package/dist/controller-registry.d.ts +7 -5
  3. package/dist/controller-registry.d.ts.map +1 -1
  4. package/dist/controller-registry.js +8 -6
  5. package/dist/controller-registry.js.map +1 -1
  6. package/dist/index.d.ts +38 -10
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +39 -12
  9. package/dist/index.js.map +1 -1
  10. package/dist/migration.d.ts +3 -2
  11. package/dist/migration.d.ts.map +1 -1
  12. package/dist/migration.js +3 -2
  13. package/dist/migration.js.map +1 -1
  14. package/dist/sql-backend.d.ts +81 -0
  15. package/dist/sql-backend.d.ts.map +1 -0
  16. package/dist/sql-backend.js +553 -0
  17. package/dist/sql-backend.js.map +1 -0
  18. package/dist/sql-driver.d.ts +135 -0
  19. package/dist/sql-driver.d.ts.map +1 -0
  20. package/dist/sql-driver.js +187 -0
  21. package/dist/sql-driver.js.map +1 -0
  22. package/dist/sql-schema.d.ts +74 -0
  23. package/dist/sql-schema.d.ts.map +1 -0
  24. package/dist/sql-schema.js +178 -0
  25. package/dist/sql-schema.js.map +1 -0
  26. package/dist/sqlite-backend.d.ts +16 -105
  27. package/dist/sqlite-backend.d.ts.map +1 -1
  28. package/dist/sqlite-backend.js +32 -723
  29. package/dist/sqlite-backend.js.map +1 -1
  30. package/dist/sqljs-backend.d.ts +26 -98
  31. package/dist/sqljs-backend.d.ts.map +1 -1
  32. package/dist/sqljs-backend.js +75 -609
  33. package/dist/sqljs-backend.js.map +1 -1
  34. package/dist/types.d.ts +5 -2
  35. package/dist/types.d.ts.map +1 -1
  36. package/dist/types.js +5 -2
  37. package/dist/types.js.map +1 -1
  38. package/package.json +5 -4
  39. package/dist/lancedb-backend.d.ts +0 -79
  40. package/dist/lancedb-backend.d.ts.map +0 -1
  41. package/dist/lancedb-backend.js +0 -567
  42. package/dist/lancedb-backend.js.map +0 -1
@@ -1,14 +1,18 @@
1
1
  /**
2
- * SQLite Memory Backend
2
+ * SQLite Memory Backend (better-sqlite3)
3
3
  *
4
- * Provides structured storage for memory entries using SQLite.
5
- * Optimized for ACID transactions, exact matches, and complex queries.
6
- * Part of ADR-009: Hybrid Memory Backend (SQLite + LanceDB)
4
+ * A thin driver-selecting wrapper around SqlBackend, which holds all the
5
+ * behaviour. This file previously carried a full ~930-line IMemoryBackend
6
+ * implementation that was near-duplicated in sqljs-backend.ts; the two drifted
7
+ * into different schemas and different query semantics. See sql-backend.ts.
8
+ *
9
+ * The class name and config shape are unchanged — this is the published API.
7
10
  *
8
11
  * @module v1/memory/sqlite-backend
9
12
  */
10
- import { EventEmitter } from 'node:events';
11
- import { IMemoryBackend, MemoryEntry, MemoryEntryUpdate, MemoryQuery, SearchOptions, SearchResult, BackendStats, HealthCheckResult, EmbeddingGenerator } from './types.js';
13
+ import { SqlBackend } from './sql-backend.js';
14
+ import { type SqlDriver } from './sql-driver.js';
15
+ import type { EmbeddingGenerator } from './types.js';
12
16
  /**
13
17
  * Configuration for SQLite Backend
14
18
  */
@@ -29,108 +33,15 @@ export interface SQLiteBackendConfig {
29
33
  verbose: boolean;
30
34
  }
31
35
  /**
32
- * SQLite Backend for Structured Memory Storage
36
+ * SQLite backend for structured memory storage.
33
37
  *
34
- * Provides:
35
- * - ACID transactions for data consistency
36
- * - Efficient indexing for exact matches and prefix queries
37
- * - Full-text search capabilities
38
- * - Complex SQL queries with joins and aggregations
39
- * - Persistent storage with WAL mode
38
+ * Provides ACID transactions, indexed lookups, and persistent storage with
39
+ * WAL mode. Behaviour lives in SqlBackend; this class supplies the driver.
40
40
  */
41
- export declare class SQLiteBackend extends EventEmitter implements IMemoryBackend {
42
- private config;
43
- private db;
44
- private initialized;
45
- private stats;
46
- private stmtGetEmbedding;
47
- private stmtInsertEntry;
48
- private stmtInsertEmbedding;
49
- private stmtDeleteTags;
50
- private stmtInsertTag;
51
- private _readCount;
41
+ export declare class SQLiteBackend extends SqlBackend {
42
+ private sqliteConfig;
52
43
  constructor(config?: Partial<SQLiteBackendConfig>);
53
- /**
54
- * Initialize the SQLite backend
55
- */
56
- initialize(): Promise<void>;
57
- /**
58
- * Shutdown the backend
59
- */
60
- shutdown(): Promise<void>;
61
- /**
62
- * Store a memory entry
63
- */
64
- store(entry: MemoryEntry): Promise<void>;
65
- /**
66
- * Get a memory entry by ID
67
- */
68
- get(id: string, agentId?: string): Promise<MemoryEntry | null>;
69
- /**
70
- * Auto-promote an entry's access_level to 'team' when 3+ distinct agents
71
- * have read it within the past 24 hours.
72
- * Source: https://arxiv.org/abs/2505.18279
73
- */
74
- private checkAndPromoteEntry;
75
- /**
76
- * Get a memory entry by key within a namespace
77
- */
78
- getByKey(namespace: string, key: string): Promise<MemoryEntry | null>;
79
- /**
80
- * Update a memory entry
81
- */
82
- update(id: string, update: MemoryEntryUpdate): Promise<MemoryEntry | null>;
83
- /**
84
- * Delete a memory entry
85
- */
86
- delete(id: string): Promise<boolean>;
87
- /**
88
- * Query memory entries with filters
89
- */
90
- query(query: MemoryQuery): Promise<MemoryEntry[]>;
91
- /**
92
- * Semantic vector search (not optimized for SQLite, returns empty)
93
- * Use HybridBackend for semantic search with LanceDB
94
- */
95
- search(embedding: Float32Array, options: SearchOptions): Promise<SearchResult[]>;
96
- /**
97
- * Bulk insert entries
98
- */
99
- bulkInsert(entries: MemoryEntry[]): Promise<void>;
100
- /**
101
- * Bulk delete entries
102
- */
103
- bulkDelete(ids: string[]): Promise<number>;
104
- /**
105
- * Get entry count
106
- */
107
- count(namespace?: string): Promise<number>;
108
- /**
109
- * List all namespaces
110
- */
111
- listNamespaces(): Promise<string[]>;
112
- /**
113
- * Clear all entries in a namespace
114
- */
115
- clearNamespace(namespace: string): Promise<number>;
116
- /**
117
- * Get backend statistics
118
- */
119
- getStats(): Promise<BackendStats>;
120
- /**
121
- * Perform health check
122
- */
123
- healthCheck(): Promise<HealthCheckResult>;
124
- private static readonly TAG_RE;
125
- private static readonly MAX_TAG_LEN;
126
- private validateTags;
127
- private ensureInitialized;
128
- private createSchema;
129
- private rowToEntry;
130
- /**
131
- * Synchronous store for use in transactions
132
- */
133
- private storeSync;
44
+ protected openDriver(): Promise<SqlDriver>;
134
45
  }
135
46
  export default SQLiteBackend;
136
47
  //# sourceMappingURL=sqlite-backend.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-backend.d.ts","sourceRoot":"","sources":["../src/sqlite-backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlite-backend.d.ts","sourceRoot":"","sources":["../src/sqlite-backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,4DAA4D;IAC5D,YAAY,EAAE,MAAM,CAAC;IAErB,6CAA6C;IAC7C,OAAO,EAAE,OAAO,CAAC;IAEjB,gCAAgC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAElB,wBAAwB;IACxB,gBAAgB,EAAE,MAAM,CAAC;IAEzB,+DAA+D;IAC/D,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IAExC,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;IAEnB,6BAA6B;IAC7B,OAAO,EAAE,OAAO,CAAC;CAClB;AAWD;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,UAAU;IAC3C,OAAO,CAAC,YAAY,CAAsB;IAE1C,YAAY,MAAM,GAAE,OAAO,CAAC,mBAAmB,CAAM,EASpD;IAED,UAAgB,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC,CAa/C;CACF;eAEc,aAAa"}