@monoes/memory 1.0.20 → 1.0.22
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/hnsw-distance.d.ts +31 -0
- package/dist/hnsw-distance.d.ts.map +1 -0
- package/dist/hnsw-distance.js +106 -0
- package/dist/hnsw-distance.js.map +1 -0
- package/dist/hnsw-graph-ops.d.ts +29 -0
- package/dist/hnsw-graph-ops.d.ts.map +1 -0
- package/dist/hnsw-graph-ops.js +96 -0
- package/dist/hnsw-graph-ops.js.map +1 -0
- package/dist/hnsw-heap.d.ts +45 -0
- package/dist/hnsw-heap.d.ts.map +1 -0
- package/dist/hnsw-heap.js +155 -0
- package/dist/hnsw-heap.js.map +1 -0
- package/dist/hnsw-index.d.ts +14 -41
- package/dist/hnsw-index.d.ts.map +1 -1
- package/dist/hnsw-index.js +17 -461
- package/dist/hnsw-index.js.map +1 -1
- package/dist/hnsw-quantizer.d.ts +28 -0
- package/dist/hnsw-quantizer.d.ts.map +1 -0
- package/dist/hnsw-quantizer.js +100 -0
- package/dist/hnsw-quantizer.js.map +1 -0
- package/dist/hnsw-serialize.d.ts +39 -0
- package/dist/hnsw-serialize.d.ts.map +1 -0
- package/dist/hnsw-serialize.js +54 -0
- package/dist/hnsw-serialize.js.map +1 -0
- package/dist/migration-loaders.d.ts +38 -0
- package/dist/migration-loaders.d.ts.map +1 -0
- package/dist/migration-loaders.js +269 -0
- package/dist/migration-loaders.js.map +1 -0
- package/dist/migration-transform.d.ts +21 -0
- package/dist/migration-transform.d.ts.map +1 -0
- package/dist/migration-transform.js +124 -0
- package/dist/migration-transform.js.map +1 -0
- package/dist/migration.d.ts +38 -22
- package/dist/migration.d.ts.map +1 -1
- package/dist/migration.js +35 -348
- package/dist/migration.js.map +1 -1
- package/dist/sql-backend-ann.d.ts +46 -0
- package/dist/sql-backend-ann.d.ts.map +1 -0
- package/dist/sql-backend-ann.js +120 -0
- package/dist/sql-backend-ann.js.map +1 -0
- package/dist/sql-backend-introspect.d.ts +17 -0
- package/dist/sql-backend-introspect.d.ts.map +1 -0
- package/dist/sql-backend-introspect.js +114 -0
- package/dist/sql-backend-introspect.js.map +1 -0
- package/dist/sql-backend-reads.d.ts +53 -0
- package/dist/sql-backend-reads.d.ts.map +1 -0
- package/dist/sql-backend-reads.js +295 -0
- package/dist/sql-backend-reads.js.map +1 -0
- package/dist/sql-backend-writes.d.ts +64 -0
- package/dist/sql-backend-writes.d.ts.map +1 -0
- package/dist/sql-backend-writes.js +270 -0
- package/dist/sql-backend-writes.js.map +1 -0
- package/dist/sql-backend.d.ts +40 -97
- package/dist/sql-backend.d.ts.map +1 -1
- package/dist/sql-backend.js +55 -709
- package/dist/sql-backend.js.map +1 -1
- package/dist/types-backend.d.ts +187 -0
- package/dist/types-backend.d.ts.map +1 -0
- package/dist/types-backend.js +8 -0
- package/dist/types-backend.js.map +1 -0
- package/dist/types-core.d.ts +180 -0
- package/dist/types-core.d.ts.map +1 -0
- package/dist/types-core.js +8 -0
- package/dist/types-core.js.map +1 -0
- package/dist/types-misc.d.ts +172 -0
- package/dist/types-misc.d.ts.map +1 -0
- package/dist/types-misc.js +56 -0
- package/dist/types-misc.js.map +1 -0
- package/dist/types.d.ts +8 -516
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +5 -49
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-backend-writes.js","sourceRoot":"","sources":["../src/sql-backend-writes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,KAAK,CAAC,KAAK,CAAmB,KAAkB;QAC9C,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACpC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE9B,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAEtD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAC/C,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,QAAQ,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IACxD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,KAAK,CAAC,cAAc,CAElB,KAAkB,EAClB,eAAuB;QAEvB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,CAAC,GAAG,IAAI,CAAC,MAAO,CAAC;QACvB,OAAO,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE;YACxB,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CACnB;;sCAE8B,EAC9B;gBACE,KAAK,CAAC,OAAO;gBACb,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC1B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAC9B,KAAK,CAAC,SAAS;gBACf,KAAK,CAAC,OAAO;gBACb,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC;gBAChC,KAAK,CAAC,EAAE;gBACR,eAAe;aACF,CAChB,CAAC;YACF,IAAI,OAAO,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YAChC,CAAC,CAAC,GAAG,CAAC,kDAAkD,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;YACtE,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC7B,CAAC,CAAC,GAAG,CAAC,uEAAuE,EAAE;oBAC7E,KAAK,CAAC,EAAE;oBACR,GAAG;iBACJ,CAAC,CAAC;YACL,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,aAAa,CAAmB,KAAkB;QACtD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,CAAC,GAAG,IAAI,CAAC,MAAO,CAAC;QACvB,OAAO,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE;YACxB,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CACnB;;;;sDAI8C,EAC9C;gBACE,KAAK,CAAC,EAAE;gBACR,KAAK,CAAC,GAAG;gBACT,KAAK,CAAC,OAAO;gBACb,KAAK,CAAC,IAAI;gBACV,KAAK,CAAC,SAAS;gBACf,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC1B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAC9B,KAAK,CAAC,OAAO,IAAI,IAAI;gBACrB,KAAK,CAAC,WAAW;gBACjB,KAAK,CAAC,SAAS;gBACf,KAAK,CAAC,SAAS;gBACf,KAAK,CAAC,SAAS,IAAI,IAAI;gBACvB,KAAK,CAAC,OAAO,IAAI,IAAI;gBACrB,KAAK,CAAC,OAAO;gBACb,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC;gBAChC,KAAK,CAAC,WAAW;gBACjB,KAAK,CAAC,cAAc;aACP,CAChB,CAAC;YACF,IAAI,OAAO,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YAChC,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC7B,CAAC,CAAC,GAAG,CAAC,uEAAuE,EAAE;oBAC7E,KAAK,CAAC,EAAE;oBACR,GAAG;iBACJ,CAAC,CAAC;YACL,CAAC;YACD,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;gBACtD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CACvB,KAAK,CAAC,SAAS,CAAC,MAAqB,EACrC,KAAK,CAAC,SAAS,CAAC,UAAU,EAC1B,KAAK,CAAC,SAAS,CAAC,UAAU,CAC3B,CAAC;gBACF,CAAC,CAAC,GAAG,CAAC,8EAA8E,EAAE;oBACpF,KAAK,CAAC,EAAE;oBACR,KAAK;iBACN,CAAC,CAAC;YACL,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kEAAkE;IAClE,SAAS,CAAmB,KAAkB;QAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,MAAO,CAAC;QAEvB,yEAAyE;QACzE,yEAAyE;QACzE,sBAAsB;QACtB,IAAI,gBAAgB,GAAG,KAAK,CAAC,SAAS,CAAC;QACvC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,4DAA4D,EAAE;gBACnF,KAAK,CAAC,EAAE;aACT,CAAC,CAAC;YACH,MAAM,GAAG,GAAG,QAAQ,EAAE,SAA4C,CAAC;YACnE,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;gBAC9B,gBAAgB,GAAG,IAAI,YAAY,CACjC,GAAG,CAAC,MAAqB,EACzB,GAAG,CAAC,UAAU,EACd,GAAG,CAAC,UAAU,GAAG,CAAC,CACnB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,CAAC,CAAC,GAAG,CACH;;;;oDAI8C,EAC9C;YACE,KAAK,CAAC,EAAE;YACR,KAAK,CAAC,GAAG;YACT,KAAK,CAAC,OAAO;YACb,KAAK,CAAC,IAAI;YACV,KAAK,CAAC,SAAS;YACf,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;YAC1B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC9B,KAAK,CAAC,OAAO,IAAI,IAAI;YACrB,KAAK,CAAC,WAAW;YACjB,KAAK,CAAC,SAAS;YACf,KAAK,CAAC,SAAS;YACf,KAAK,CAAC,SAAS,IAAI,IAAI;YACvB,KAAK,CAAC,OAAO,IAAI,IAAI;YACrB,KAAK,CAAC,OAAO;YACb,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC;YAChC,KAAK,CAAC,WAAW;YACjB,KAAK,CAAC,cAAc;SACP,CAChB,CAAC;QAEF,CAAC,CAAC,GAAG,CAAC,kDAAkD,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QACtE,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7B,CAAC,CAAC,GAAG,CAAC,uEAAuE,EAAE;gBAC7E,KAAK,CAAC,EAAE;gBACR,GAAG;aACJ,CAAC,CAAC;QACL,CAAC;QAED,IAAI,gBAAgB,EAAE,CAAC;YACrB,sEAAsE;YACtE,uEAAuE;YACvE,0CAA0C;YAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CACvB,gBAAgB,CAAC,MAAqB,EACtC,gBAAgB,CAAC,UAAU,EAC3B,gBAAgB,CAAC,UAAU,CAC5B,CAAC;YACF,CAAC,CAAC,GAAG,CAAC,8EAA8E,EAAE;gBACpF,KAAK,CAAC,EAAE;gBACR,KAAK;aACN,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAmB,OAAsB;QACvD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,OAAO;YAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,EAAE;YAC5B,KAAK,MAAM,KAAK,IAAI,OAAO;gBAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,MAAM,CAEV,EAAU,EACV,MAAyB;QAEzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;YAAE,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QACjE,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;YAAE,KAAK,CAAC,QAAQ,GAAG,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC9F,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS;YAAE,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAC7E,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;YAAE,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACvE,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;YAAE,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAE1E,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,KAAK,CAAC,OAAO,EAAE,CAAC;QAEhB,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,MAAM,CAAmB,EAAU;QACvC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAO,CAAC;QACvB,0EAA0E;QAC1E,yDAAyD;QACzD,CAAC,CAAC,GAAG,CAAC,kDAAkD,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAChE,CAAC,CAAC,GAAG,CAAC,kDAAkD,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,yCAAyC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACvE,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACnC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,UAAU,CAAmB,GAAa;QAC9C,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAO,CAAC;QACvB,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE;YAC/B,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;gBACrB,CAAC,CAAC,GAAG,CAAC,kDAAkD,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChE,CAAC,CAAC,GAAG,CAAC,kDAAkD,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChE,IAAI,CAAC,CAAC,GAAG,CAAC,yCAAyC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;oBAAE,OAAO,EAAE,CAAC;YAC5E,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,cAAc,CAAmB,SAAiB;QACtD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAO,CAAC;QACvB,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE;YAC/B,CAAC,CAAC,GAAG,CACH;gFACwE,EACxE,CAAC,SAAS,CAAC,CACZ,CAAC;YACF,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,gDAAgD,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;YACrF,CAAC,CAAC,GAAG,CAAC,qFAAqF,CAAC,CAAC;YAC7F,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACrD,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAC"}
|
package/dist/sql-backend.d.ts
CHANGED
|
@@ -13,9 +13,22 @@
|
|
|
13
13
|
* sql-driver.ts; the canonical schema and the legacy-data migration live in
|
|
14
14
|
* sql-schema.ts. This file contains only behaviour.
|
|
15
15
|
*
|
|
16
|
+
* File-size sweep: the class's method BODIES are grouped into sibling
|
|
17
|
+
* modules — ANN/HNSW index management in sql-backend-ann.ts, the
|
|
18
|
+
* store/update/delete family in sql-backend-writes.ts, the get/query/search
|
|
19
|
+
* family in sql-backend-reads.ts, and stats/health/persist in
|
|
20
|
+
* sql-backend-introspect.ts. Each stays a real method here (same signature,
|
|
21
|
+
* same visibility) so callers and TypeScript see no difference; the method
|
|
22
|
+
* body is just `return theSiblingImpl.call(this, ...args)`. Fields those
|
|
23
|
+
* bodies read/write moved from `private` to `protected` (compile-time only;
|
|
24
|
+
* no runtime change) — TypeScript allows a standalone function typed
|
|
25
|
+
* `this: SqlBackend` to reach `protected` members but not `private` ones, so
|
|
26
|
+
* `protected` is the minimum visibility the split needs.
|
|
27
|
+
*
|
|
16
28
|
* @module v1/memory/sql-backend
|
|
17
29
|
*/
|
|
18
30
|
import { EventEmitter } from 'node:events';
|
|
31
|
+
import type { HNSWIndex } from './hnsw-index.js';
|
|
19
32
|
import type { SqlDriver } from './sql-driver.js';
|
|
20
33
|
import { type MigrationReport } from './sql-schema.js';
|
|
21
34
|
import type { BackendStats, EmbeddingGenerator, HealthCheckResult, IMemoryBackend, MemoryEntry, MemoryEntryUpdate, MemoryQuery, SearchOptions, SearchResult } from './types.js';
|
|
@@ -35,40 +48,35 @@ export declare class SqlBackend extends EventEmitter implements IMemoryBackend {
|
|
|
35
48
|
/** Populated during initialize(); surfaced for diagnostics. */
|
|
36
49
|
migrationReport: MigrationReport | null;
|
|
37
50
|
/** Whether the FTS5 full-text index is available (Issue #66). */
|
|
38
|
-
|
|
39
|
-
|
|
51
|
+
protected _fts5Available: boolean;
|
|
52
|
+
protected stats: {
|
|
53
|
+
queryCount: number;
|
|
54
|
+
totalQueryTime: number;
|
|
55
|
+
writeCount: number;
|
|
56
|
+
totalWriteTime: number;
|
|
57
|
+
};
|
|
40
58
|
/** Debounce counter: the agent_reads purge is expensive, so it is amortised. */
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
59
|
+
protected _readCount: number;
|
|
60
|
+
protected _annIndex: HNSWIndex | null;
|
|
61
|
+
protected _annEntries: Map<string, MemoryEntry>;
|
|
62
|
+
protected _annDimensions: number;
|
|
63
|
+
protected _annBuiltForCount: number;
|
|
64
|
+
protected _annBuiltForMaxUpdatedAt: number;
|
|
65
|
+
static readonly ANN_THRESHOLD: number;
|
|
48
66
|
/** Directory to cache the built ANN graph in, next to the real DB file.
|
|
49
67
|
* Returns null (no persistence) for in-memory databases — there is no
|
|
50
68
|
* stable location to cache next to, and the process-lifetime in-memory
|
|
51
69
|
* cache above already covers repeated searches within one run. */
|
|
52
70
|
protected getAnnCacheDir(): string | null;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
private countEmbeddedActiveEntries;
|
|
63
|
-
/**
|
|
64
|
-
* Returns a ready-to-search ANN index for the given embedding dimensions,
|
|
65
|
-
* or null when the corpus is below ANN_THRESHOLD (brute force stays the
|
|
66
|
-
* search path). Tries, in order: the process-lifetime cache, a valid
|
|
67
|
-
* on-disk cache (skips the DB read + graph build entirely), then a full
|
|
68
|
-
* rebuild from memory_embeddings (writing a fresh on-disk cache for next
|
|
69
|
-
* time).
|
|
70
|
-
*/
|
|
71
|
-
private getAnnIndex;
|
|
71
|
+
protected annCachePath(): string | null;
|
|
72
|
+
protected countEmbeddedActiveEntries(): {
|
|
73
|
+
count: number;
|
|
74
|
+
maxUpdatedAt: number;
|
|
75
|
+
};
|
|
76
|
+
protected getAnnIndex(dimensions: number, force?: boolean): Promise<{
|
|
77
|
+
index: HNSWIndex;
|
|
78
|
+
entries: Map<string, MemoryEntry>;
|
|
79
|
+
} | null>;
|
|
72
80
|
/**
|
|
73
81
|
* Diagnostics for `memory search --build-hnsw` / status reporting. Read-only
|
|
74
82
|
* — does not build the index as a side effect.
|
|
@@ -98,84 +106,19 @@ export declare class SqlBackend extends EventEmitter implements IMemoryBackend {
|
|
|
98
106
|
initialize(): Promise<void>;
|
|
99
107
|
shutdown(): Promise<void>;
|
|
100
108
|
store(entry: MemoryEntry): Promise<void>;
|
|
101
|
-
/**
|
|
102
|
-
* Compare-and-swap update: writes ONLY if the row's stored `version` still
|
|
103
|
-
* equals `expectedVersion`. The check and the write are one SQL statement
|
|
104
|
-
* (`UPDATE ... WHERE id = ? AND version = ?`), so SQLite's own single-
|
|
105
|
-
* statement atomicity — the same guarantee `store()`'s INSERT OR REPLACE
|
|
106
|
-
* already relies on — makes this a real compare-and-swap against every
|
|
107
|
-
* other writer, in this process or another, with no bridge-level lock.
|
|
108
|
-
*
|
|
109
|
-
* Exists for memory-KG review finding K5: a getByKey() + store() read-
|
|
110
|
-
* merge-write (what every caller did before this) leaves a window in which
|
|
111
|
-
* two concurrent callers each merge onto the same row and the second
|
|
112
|
-
* store() silently overwrites the first's contribution. A caller that reads
|
|
113
|
-
* a row's version, merges onto it, and writes back through here instead
|
|
114
|
-
* gets `false` when its merge has gone stale, rather than winning a race it
|
|
115
|
-
* did not know it was running.
|
|
116
|
-
*
|
|
117
|
-
* Only the columns a claim-ledger merge (memory-kg.ts) actually changes are
|
|
118
|
-
* updated; embeddings are left untouched, matching storeSync's own rule that
|
|
119
|
-
* a revision without a new vector keeps the one it had.
|
|
120
|
-
*
|
|
121
|
-
* @returns true when the write landed, false when the row's version had
|
|
122
|
-
* already moved (or the row no longer exists) — the caller must re-read and
|
|
123
|
-
* re-merge, never assume the write happened.
|
|
124
|
-
*/
|
|
125
109
|
storeIfVersion(entry: MemoryEntry, expectedVersion: number): Promise<boolean>;
|
|
126
|
-
/**
|
|
127
|
-
* Compare-and-swap create: the create-side counterpart to `storeIfVersion`.
|
|
128
|
-
* Inserts ONLY if no row already occupies this id or this namespace/key pair
|
|
129
|
-
* (the schema's `UNIQUE(namespace, key)` index — see sql-schema.ts).
|
|
130
|
-
*
|
|
131
|
-
* Exists for the same K5 race on the CREATE side: two concurrent callers
|
|
132
|
-
* asserting the same new KG entity mint the same deterministic `key` but a
|
|
133
|
-
* different random row `id` (see memory-bridge.ts's upsert). Plain `store()`
|
|
134
|
-
* (INSERT OR REPLACE) resolves that collision by silently deleting whichever
|
|
135
|
-
* row landed first — exactly the lost update K5 describes, just on first
|
|
136
|
-
* write instead of a merge. `INSERT OR IGNORE` instead leaves the first row
|
|
137
|
-
* untouched and reports that it did, so the loser re-reads and merges onto
|
|
138
|
-
* it instead of clobbering it.
|
|
139
|
-
*
|
|
140
|
-
* @returns true when this call created the row, false when one already
|
|
141
|
-
* existed — the caller must re-read and merge rather than assume it won.
|
|
142
|
-
*/
|
|
143
110
|
storeIfAbsent(entry: MemoryEntry): Promise<boolean>;
|
|
144
|
-
|
|
145
|
-
private storeSync;
|
|
111
|
+
protected storeSync(entry: MemoryEntry): void;
|
|
146
112
|
bulkInsert(entries: MemoryEntry[]): Promise<void>;
|
|
147
113
|
update(id: string, update: MemoryEntryUpdate): Promise<MemoryEntry | null>;
|
|
148
114
|
delete(id: string): Promise<boolean>;
|
|
149
115
|
bulkDelete(ids: string[]): Promise<number>;
|
|
150
116
|
clearNamespace(namespace: string): Promise<number>;
|
|
151
117
|
get(id: string, agentId?: string): Promise<MemoryEntry | null>;
|
|
152
|
-
|
|
153
|
-
* Promote an entry to 'team' once 3+ distinct agents have read it within 24h.
|
|
154
|
-
* https://arxiv.org/abs/2505.18279
|
|
155
|
-
*/
|
|
156
|
-
private checkAndPromoteEntry;
|
|
118
|
+
protected checkAndPromoteEntry(entryId: string): void;
|
|
157
119
|
getByKey(namespace: string, key: string): Promise<MemoryEntry | null>;
|
|
158
120
|
query(query: MemoryQuery): Promise<MemoryEntry[]>;
|
|
159
|
-
/**
|
|
160
|
-
* Semantic search. Below MONOMIND_HNSW_THRESHOLD active embedded entries
|
|
161
|
-
* (default 5000), brute-force cosine over stored embeddings — namespace-
|
|
162
|
-
* and TTL-filtered in SQL — stays cheaper (a few tens of ms at second-brain
|
|
163
|
-
* scale). Above it, getAnnIndex() builds (or loads a persisted) HNSW graph
|
|
164
|
-
* and this searches that instead; results are still namespace/threshold
|
|
165
|
-
* filtered post-search to match the brute-force semantics exactly.
|
|
166
|
-
*/
|
|
167
121
|
search(embedding: Float32Array, options: SearchOptions): Promise<SearchResult[]>;
|
|
168
|
-
/**
|
|
169
|
-
* FTS5-accelerated keyword search (Issue #66).
|
|
170
|
-
*
|
|
171
|
-
* When the FTS5 index is available, text matching runs inside SQLite via
|
|
172
|
-
* `MATCH` — orders of magnitude faster than loading 50k rows into JS. When
|
|
173
|
-
* FTS5 is unavailable (e.g. sql.js WASM compiled without the extension) the
|
|
174
|
-
* method returns `null` so the caller can fall back to JS-side matching.
|
|
175
|
-
*
|
|
176
|
-
* `queryText` is the raw user query; it is FTS5-tokenized automatically.
|
|
177
|
-
* Special characters are escaped to prevent FTS5 syntax errors.
|
|
178
|
-
*/
|
|
179
122
|
keywordSearch(queryText: string, options?: {
|
|
180
123
|
namespace?: string;
|
|
181
124
|
limit?: number;
|
|
@@ -195,10 +138,10 @@ export declare class SqlBackend extends EventEmitter implements IMemoryBackend {
|
|
|
195
138
|
/** Flush to durable storage. No-op on write-through drivers. */
|
|
196
139
|
persist(): Promise<void>;
|
|
197
140
|
private static readonly TAG_RE;
|
|
198
|
-
private static readonly
|
|
141
|
+
private static readonly PROVENANCE_TAG_RE;
|
|
199
142
|
private static readonly MAX_TAG_LEN;
|
|
200
143
|
protected validateTags(tags: string[]): void;
|
|
201
144
|
protected ensureInitialized(): void;
|
|
202
|
-
|
|
145
|
+
protected rowToEntry(row: Record<string, unknown>): MemoryEntry;
|
|
203
146
|
}
|
|
204
147
|
//# sourceMappingURL=sql-backend.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-backend.d.ts","sourceRoot":"","sources":["../src/sql-backend.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"sql-backend.d.ts","sourceRoot":"","sources":["../src/sql-backend.ts"],"names":[],"mappings":"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"}
|