@monoes/memory 2.24.1 → 2.24.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.
- package/README.md +8 -6
- package/dist/hnsw-distance.d.ts +1 -0
- package/dist/hnsw-distance.d.ts.map +1 -1
- package/dist/hnsw-distance.js +7 -13
- package/dist/hnsw-distance.js.map +1 -1
- package/dist/hnsw-index.d.ts.map +1 -1
- package/dist/hnsw-index.js +0 -2
- package/dist/hnsw-index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/math-utils.d.ts +9 -0
- package/dist/math-utils.d.ts.map +1 -1
- package/dist/math-utils.js +23 -1
- package/dist/math-utils.js.map +1 -1
- package/dist/pattern-store.d.ts +39 -0
- package/dist/pattern-store.d.ts.map +1 -0
- package/dist/pattern-store.js +9 -0
- package/dist/pattern-store.js.map +1 -0
- package/dist/schema-migrations.d.ts +59 -0
- package/dist/schema-migrations.d.ts.map +1 -0
- package/dist/schema-migrations.js +97 -0
- package/dist/schema-migrations.js.map +1 -0
- package/dist/sql-schema.d.ts +25 -13
- package/dist/sql-schema.d.ts.map +1 -1
- package/dist/sql-schema.js +107 -40
- package/dist/sql-schema.js.map +1 -1
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -27,17 +27,19 @@ npm install @monoes/memory
|
|
|
27
27
|
### Schema Architecture & Storage Engine
|
|
28
28
|
- **Storage Driver**: Operates over SQLite with WAL mode (`PRAGMA journal_mode = WAL`) using `better-sqlite3` with a WASM `sql.js` fallback.
|
|
29
29
|
- **Dual Schema Support**:
|
|
30
|
-
- Standalone `@monoes/memory` core schema ([`
|
|
31
|
-
- CLI project memory schema ([`packages/@monomind/cli/src/memory/memory-schema.ts
|
|
30
|
+
- Standalone `@monoes/memory` core schema ([`src/sql-schema.ts`](src/sql-schema.ts)): `SCHEMA_VERSION = 4` (stored in `PRAGMA user_version`) managing **4 tables** (`memory_entries`, `memory_embeddings`, `memory_entry_tags`, `agent_reads`).
|
|
31
|
+
- CLI project memory schema ([`packages/@monomind/cli/src/memory/memory-schema.ts`](../cli/src/memory/memory-schema.ts)): Schema version `3.0.0` managing **9 tables** (`memory_entries`, `patterns`, `pattern_history`, `trajectories`, `trajectory_steps`, `migration_state`, `sessions`, `vector_indexes`, `metadata`).
|
|
32
32
|
|
|
33
33
|
## Hybrid Search: ONNX ModernBERT 768d + BM25 RRF
|
|
34
34
|
|
|
35
|
+
> The retrieval pipeline below (BM25, RRF, query router, OKF, EWC, SONA) is implemented in `@monoes/monomindcli` (`packages/@monomind/cli/src/memory/` and `src/knowledge/`), on top of the storage primitives this package exports.
|
|
36
|
+
|
|
35
37
|
Retrieval uses a dual-arm hybrid search architecture combined with Reciprocal Rank Fusion (RRF):
|
|
36
38
|
|
|
37
39
|
1. **Dense Vector Search**:
|
|
38
40
|
- Model: `Alibaba-NLP/gte-modernbert-base` (768 dimensions).
|
|
39
41
|
- Embedding Pipeline: `@xenova/transformers` ONNX feature extraction.
|
|
40
|
-
- Acceleration: Standalone pure-JS `HNSWIndex` (`dimensions=
|
|
42
|
+
- Acceleration: Standalone pure-JS `HNSWIndex` (set `dimensions: 768` for this model; defaults are `dimensions=1536`, `M=16`, `efConstruction=200`, `metric='cosine'`).
|
|
41
43
|
2. **Lexical Arm (In-Process Okapi BM25)**:
|
|
42
44
|
- Parameters: $k_1 = 1.2$, $b = 0.75$.
|
|
43
45
|
- Tokenizer: Exact parity with the evaluation harness (`text-tokens.ts`).
|
|
@@ -69,11 +71,11 @@ Supports document and memory export/import via Open Knowledge Format (OKF) Markd
|
|
|
69
71
|
| Export | What it does |
|
|
70
72
|
|---|---|
|
|
71
73
|
| `SQLiteBackend` / `SqlJsBackend` | Structured key-value storage in SQLite WAL mode (native + WASM fallback) |
|
|
72
|
-
| `HNSWIndex` | Standalone pure-JS approximate nearest-neighbor index (`
|
|
74
|
+
| `HNSWIndex` | Standalone pure-JS approximate nearest-neighbor index (`dimensions` configurable, default `1536`) |
|
|
73
75
|
| `chunkDocument`, `KnowledgeStore`, `KnowledgeRetriever` | Document chunking + retrieval pipeline |
|
|
74
76
|
| `QueryBuilder` / `query()` | Fluent query construction |
|
|
75
77
|
| `CacheManager` | In-memory LRU caching with size/TTL limits |
|
|
76
|
-
| `
|
|
78
|
+
| `MonoswarmCheckpointer` | Persist/restore swarm agent state snapshots |
|
|
77
79
|
| `MemoryMigrator` | Import from SQLite, JSON, or Markdown sources |
|
|
78
80
|
| `PromptVersionStore` | Prompt version history & prompt experiment tracking |
|
|
79
81
|
|
|
@@ -91,5 +93,5 @@ everywhere including Windows without a toolchain).
|
|
|
91
93
|
|
|
92
94
|
## License
|
|
93
95
|
|
|
94
|
-
|
|
96
|
+
Apache-2.0
|
|
95
97
|
|
package/dist/hnsw-distance.d.ts
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
import type { HNSWNode } from './hnsw-index.js';
|
|
11
11
|
import type { DistanceMetric } from './types.js';
|
|
12
12
|
export declare function distance(metric: DistanceMetric, a: Float32Array, b: Float32Array): number;
|
|
13
|
+
/** 1 - cosine similarity; 1 (no similarity) for empty, zero-norm or mismatched-length vectors. */
|
|
13
14
|
export declare function cosineDistance(a: Float32Array, b: Float32Array): number;
|
|
14
15
|
/**
|
|
15
16
|
* OPTIMIZED: Cosine distance using pre-normalized vectors
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hnsw-distance.d.ts","sourceRoot":"","sources":["../src/hnsw-distance.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"hnsw-distance.d.ts","sourceRoot":"","sources":["../src/hnsw-distance.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM,CAazF;AAED,kGAAkG;AAClG,wBAAgB,cAAc,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM,CAEvE;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM,CAYjF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAiBlE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,YAAY,EACnB,eAAe,EAAE,YAAY,GAAG,IAAI,EACpC,IAAI,EAAE,QAAQ,GACb,MAAM,CAQR;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM,CAO1E;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM,CAO3E;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM,CAM1E"}
|
package/dist/hnsw-distance.js
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* @module v1/memory/hnsw-distance
|
|
9
9
|
*/
|
|
10
|
+
import { cosineSimilarity, warnVectorLengthMismatch } from './math-utils.js';
|
|
10
11
|
export function distance(metric, a, b) {
|
|
11
12
|
switch (metric) {
|
|
12
13
|
case 'cosine':
|
|
@@ -21,20 +22,9 @@ export function distance(metric, a, b) {
|
|
|
21
22
|
return cosineDistance(a, b);
|
|
22
23
|
}
|
|
23
24
|
}
|
|
25
|
+
/** 1 - cosine similarity; 1 (no similarity) for empty, zero-norm or mismatched-length vectors. */
|
|
24
26
|
export function cosineDistance(a, b) {
|
|
25
|
-
|
|
26
|
-
let normA = 0;
|
|
27
|
-
let normB = 0;
|
|
28
|
-
for (let i = 0; i < a.length; i++) {
|
|
29
|
-
dotProduct += a[i] * b[i];
|
|
30
|
-
normA += a[i] * a[i];
|
|
31
|
-
normB += b[i] * b[i];
|
|
32
|
-
}
|
|
33
|
-
const denom = Math.sqrt(normA) * Math.sqrt(normB);
|
|
34
|
-
if (denom === 0)
|
|
35
|
-
return 1; // zero vector has maximum distance
|
|
36
|
-
const similarity = dotProduct / denom;
|
|
37
|
-
return 1 - similarity; // Convert to distance
|
|
27
|
+
return 1 - cosineSimilarity(a, b);
|
|
38
28
|
}
|
|
39
29
|
/**
|
|
40
30
|
* OPTIMIZED: Cosine distance using pre-normalized vectors
|
|
@@ -42,6 +32,10 @@ export function cosineDistance(a, b) {
|
|
|
42
32
|
* Performance: O(n) with ~2x speedup over standard cosine
|
|
43
33
|
*/
|
|
44
34
|
export function cosineDistanceNormalized(a, b) {
|
|
35
|
+
if (a.length !== b.length) {
|
|
36
|
+
warnVectorLengthMismatch(a.length, b.length);
|
|
37
|
+
return 1;
|
|
38
|
+
}
|
|
45
39
|
let dotProduct = 0;
|
|
46
40
|
for (let i = 0; i < a.length; i++) {
|
|
47
41
|
dotProduct += a[i] * b[i];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hnsw-distance.js","sourceRoot":"","sources":["../src/hnsw-distance.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"hnsw-distance.js","sourceRoot":"","sources":["../src/hnsw-distance.ts"],"names":[],"mappings":"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"}
|
package/dist/hnsw-index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hnsw-index.d.ts","sourceRoot":"","sources":["../src/hnsw-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAExD,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,gCAAgC;IAChC,EAAE,EAAE,MAAM,CAAC;IAEX,kCAAkC;IAClC,MAAM,EAAE,YAAY,CAAC;IAErB,uDAAuD;IACvD,gBAAgB,EAAE,YAAY,GAAG,IAAI,CAAC;IAEtC,gCAAgC;IAChC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAEtC,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;GAOG;AACH,qBAAa,SAAU,SAAQ,YAAY;IACzC,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,SAAS,CAAS;IAG1B,OAAO,CAAC,KAAK,CAYX;IAGF,OAAO,CAAC,SAAS,CAA0B;IAE3C,YAAY,MAAM,GAAE,OAAO,CAAC,UAAU,CAAM,EAQ3C;IAED;;OAEG;IACG,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAkD9D;IAED;;OAEG;IACG,MAAM,CACV,KAAK,EAAE,YAAY,EACnB,CAAC,EAAE,MAAM,EACT,EAAE,CAAC,EAAE,MAAM,GACV,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"hnsw-index.d.ts","sourceRoot":"","sources":["../src/hnsw-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAExD,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,gCAAgC;IAChC,EAAE,EAAE,MAAM,CAAC;IAEX,kCAAkC;IAClC,MAAM,EAAE,YAAY,CAAC;IAErB,uDAAuD;IACvD,gBAAgB,EAAE,YAAY,GAAG,IAAI,CAAC;IAEtC,gCAAgC;IAChC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAEtC,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;GAOG;AACH,qBAAa,SAAU,SAAQ,YAAY;IACzC,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,SAAS,CAAS;IAG1B,OAAO,CAAC,KAAK,CAYX;IAGF,OAAO,CAAC,SAAS,CAA0B;IAE3C,YAAY,MAAM,GAAE,OAAO,CAAC,UAAU,CAAM,EAQ3C;IAED;;OAEG;IACG,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAkD9D;IAED;;OAEG;IACG,MAAM,CACV,KAAK,EAAE,YAAY,EACnB,CAAC,EAAE,MAAM,EACT,EAAE,CAAC,EAAE,MAAM,GACV,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAyDlD;IAED;;OAEG;IACG,iBAAiB,CACrB,KAAK,EAAE,YAAY,EACnB,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,EAC/B,EAAE,CAAC,EAAE,MAAM,GACV,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAMlD;IAED;;OAEG;IACG,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA2C9C;IAED;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,YAAY,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBjF;IAED;;;;;;;;;;OAUG;IACH,SAAS,IAAI,cAAc,CAK1B;IAED,+DAA+D;IAC/D,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,CASlD;IAED;;OAEG;IACH,QAAQ,IAAI,SAAS,CAiBpB;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAWZ;IAED;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEvB;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAID,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,cAAc;YAMR,UAAU;CAwEzB;eAEc,SAAS"}
|
package/dist/hnsw-index.js
CHANGED
|
@@ -111,12 +111,10 @@ export class HNSWIndex extends EventEmitter {
|
|
|
111
111
|
const normalizedQuery = this.config.metric === 'cosine' ? normalizeVector(queryVector) : null;
|
|
112
112
|
// Start from entry point and search down the layers
|
|
113
113
|
let currentNode = this.entryPoint;
|
|
114
|
-
let _currentDist = distanceOptimized(this.config.metric, queryVector, normalizedQuery, this.nodes.get(currentNode));
|
|
115
114
|
// Search through layers from top to 1
|
|
116
115
|
for (let level = this.maxLevel; level > 0; level--) {
|
|
117
116
|
const layerResult = searchLayerOptimized(this.nodes, this.config.metric, queryVector, normalizedQuery, currentNode, 1, level);
|
|
118
117
|
currentNode = layerResult[0]?.id || currentNode;
|
|
119
|
-
_currentDist = distanceOptimized(this.config.metric, queryVector, normalizedQuery, this.nodes.get(currentNode));
|
|
120
118
|
}
|
|
121
119
|
// Search layer 0 with ef candidates using heap-based search
|
|
122
120
|
const candidates = searchLayerOptimized(this.nodes, this.config.metric, queryVector, normalizedQuery, currentNode, searchEf, 0);
|
package/dist/hnsw-index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hnsw-index.js","sourceRoot":"","sources":["../src/hnsw-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAyBvE;;;;;;;GAOG;AACH,MAAM,OAAO,SAAU,SAAQ,YAAY;IACjC,MAAM,CAAa;IACnB,KAAK,GAA0B,IAAI,GAAG,EAAE,CAAC;IACzC,UAAU,GAAkB,IAAI,CAAC;IACjC,QAAQ,GAAW,CAAC,CAAC;IACrB,SAAS,CAAS;IAE1B,uBAAuB;IACf,KAAK,GAMT;QACF,WAAW,EAAE,CAAC;QACd,eAAe,EAAE,CAAC;QAClB,WAAW,EAAE,CAAC;QACd,eAAe,EAAE,CAAC;QAClB,cAAc,EAAE,CAAC;KAClB,CAAC;IAEF,uBAAuB;IACf,SAAS,GAAqB,IAAI,CAAC;IAE3C,YAAY,MAAM,GAAwB,EAAE;QAC1C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAE7C,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,EAAU,EAAE,MAAoB;QAC7C,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAEpC,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CACb,uCAAuC,IAAI,CAAC,MAAM,CAAC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,CACtF,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QAED,sBAAsB;QACtB,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAE7E,kDAAkD;QAClD,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEhG,qCAAqC;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAEpC,MAAM,IAAI,GAAa;YACrB,EAAE;YACF,MAAM,EAAE,YAAY;YACpB,gBAAgB;YAChB,WAAW,EAAE,IAAI,GAAG,EAAE;YACtB,KAAK;SACN,CAAC;QAEF,4CAA4C;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC7B,aAAa;YACb,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,iCAAiC;YACjC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAED,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAC/C,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,eAAe,IAAI,QAAQ,CAAC;QAEvC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,KAAmB,EACnB,CAAS,EACT,EAAW;QAEX,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAEpC,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CACb,sCAAsC,IAAI,CAAC,MAAM,CAAC,UAAU,SAAS,KAAK,CAAC,MAAM,EAAE,CACpF,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC7B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,QAAQ,GAAG,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAE/D,2BAA2B;QAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAE1E,iDAAiD;QACjD,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE9F,oDAAoD;QACpD,IAAI,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,YAAY,GAAG,iBAAiB,CAClC,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,WAAW,EACX,eAAe,EACf,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAE,CAC7B,CAAC;QAEF,sCAAsC;QACtC,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;YACnD,MAAM,WAAW,GAAG,oBAAoB,CACtC,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,WAAW,EACX,eAAe,EACf,WAAW,EACX,CAAC,EACD,KAAK,CACN,CAAC;YACF,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,WAAW,CAAC;YAChD,YAAY,GAAG,iBAAiB,CAC9B,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,WAAW,EACX,eAAe,EACf,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAE,CAC7B,CAAC;QACJ,CAAC;QAED,4DAA4D;QAC5D,MAAM,UAAU,GAAG,oBAAoB,CACrC,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,WAAW,EACX,eAAe,EACf,WAAW,EACX,QAAQ,EACR,CAAC,CACF,CAAC;QAEF,gDAAgD;QAChD,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEvC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAC/C,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,eAAe,IAAI,QAAQ,CAAC;QAEvC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CACrB,KAAmB,EACnB,CAAS,EACT,MAA+B,EAC/B,EAAW;QAEX,6CAA6C;QAC7C,MAAM,eAAe,GAAG,CAAC,CAAC;QAC1B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,eAAe,EAAE,EAAE,CAAC,CAAC;QAErE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,EAAU;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,KAAK,CAAC;QACf,CAAC;QAED,sCAAsC;QACtC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;YACjD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAChD,IAAI,WAAW,EAAE,CAAC;gBAChB,KAAK,MAAM,WAAW,IAAI,WAAW,EAAE,CAAC;oBACtC,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBAClD,IAAI,aAAa,EAAE,CAAC;wBAClB,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;oBACnD,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAEtB,+BAA+B;QAC/B,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,0CAA0C;gBAC1C,IAAI,QAAQ,GAAkB,IAAI,CAAC;gBACnC,IAAI,WAAW,GAAG,CAAC,CAAC;gBACpB,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACrC,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,GAAG,WAAW,EAAE,CAAC;wBAC/C,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC;wBACtB,QAAQ,GAAG,MAAM,CAAC;oBACpB,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;gBAC3B,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,OAAoD;QAChE,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAE9C,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAElB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;QAEhE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YAC5B,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;OAUG;IACH,SAAS;QACP,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjF,CAAC;IAED,+DAA+D;IAC/D,MAAM,CAAC,WAAW,CAAC,IAAoB;QACrC,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,8CAA8C,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAChF,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,KAAK,CAAC,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACrC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QACpC,MAAM,aAAa,GACjB,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvF,wBAAwB;QACxB,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,oBAAoB;QACvE,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc;QAClF,MAAM,WAAW,GAAG,WAAW,GAAG,CAAC,cAAc,GAAG,kBAAkB,CAAC,CAAC;QAExE,OAAO;YACL,WAAW;YACX,WAAW;YACX,aAAa;YACb,SAAS,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc;YACxD,gBAAgB,EAAE,IAAI,CAAC,SAAS,EAAE,mBAAmB,EAAE,IAAI,GAAG;SAC/D,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG;YACX,WAAW,EAAE,CAAC;YACd,eAAe,EAAE,CAAC;YAClB,WAAW,EAAE,CAAC;YACd,eAAe,EAAE,CAAC;YAClB,cAAc,EAAE,CAAC;SAClB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;IAED,8BAA8B;IAEtB,WAAW,CAAC,MAA2B;QAC7C,OAAO;YACL,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI,EAAE,wBAAwB;YAC/D,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE;YACjB,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,GAAG;YAC5C,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,OAAO;YAC1C,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,QAAQ;YACjC,YAAY,EAAE,MAAM,CAAC,YAAY;SAClC,CAAC;IACJ,CAAC;IAEO,cAAc;QACpB,kEAAkE;QAClE,wDAAwD;QACxD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/D,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,IAAc;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC9C,IAAI,WAAW,GAAG,IAAI,CAAC,UAAW,CAAC;QACnC,IAAI,WAAW,GAAG,iBAAiB,CACjC,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,KAAK,EACL,eAAe,EACf,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAE,CAC7B,CAAC;QAEF,wCAAwC;QACxC,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;YAC5D,MAAM,MAAM,GAAG,oBAAoB,CACjC,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,KAAK,EACL,eAAe,EACf,WAAW,EACX,CAAC,EACD,KAAK,CACN,CAAC;YACF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,WAAW,EAAE,CAAC;gBAC1D,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3B,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACnC,CAAC;QACH,CAAC;QAED,iDAAiD;QACjD,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;YAC1E,MAAM,SAAS,GAAG,oBAAoB,CACpC,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,KAAK,EACL,eAAe,EACf,WAAW,EACX,IAAI,CAAC,MAAM,CAAC,cAAc,EAC1B,KAAK,CACN,CAAC;YAEF,0BAA0B;YAC1B,MAAM,iBAAiB,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAEpF,kBAAkB;YAClB,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;gBACzC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC9C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAElE,kCAAkC;gBAClC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACjD,IAAI,YAAY,EAAE,CAAC;oBACjB,MAAM,aAAa,GAAG,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;oBAC3D,MAAM,QAAQ,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;oBACjE,IAAI,aAAa,CAAC,IAAI,GAAG,QAAQ,EAAE,CAAC;wBAClC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;oBAClF,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAChC,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAE9B,6BAA6B;QAC7B,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;YAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;CACF;AAED,eAAe,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"hnsw-index.js","sourceRoot":"","sources":["../src/hnsw-index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export { HNSWIndex } from './hnsw-index.js';
|
|
|
17
17
|
export type { ChunkRecord, KnowledgeExcerpt, MetadataRecord, RetrievalResult, SearchFn, TextChunk, } from './knowledge/index.js';
|
|
18
18
|
export { chunkDocument, KnowledgeRetriever, KnowledgeStore } from './knowledge/index.js';
|
|
19
19
|
export { createMigrator, MemoryMigrator, migrateMultipleSources } from './migration.js';
|
|
20
|
+
export type { PatternStore, StoredPatternRecord } from './pattern-store.js';
|
|
20
21
|
export type { DiffResult, PromptExperiment, PromptVersion, } from './prompt-version-store.js';
|
|
21
22
|
export { PromptVersionStore } from './prompt-version-store.js';
|
|
22
23
|
export type { SortDirection, SortField } from './query-builder.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,YAAY,EACV,WAAW,EACX,YAAY,EAEZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,cAAc,EAEd,kBAAkB,EAClB,iBAAiB,EAEjB,UAAU,EACV,SAAS,EAET,cAAc,EACd,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,kBAAkB,EAElB,eAAe,EACf,WAAW,EAEX,UAAU,EACV,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,eAAe,EAEf,eAAe,EACf,kBAAkB,EAElB,SAAS,EACT,aAAa,EACb,YAAY,EAEZ,QAAQ,GACT,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,QAAQ,EACR,SAAS,GACV,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxF,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,aAAa,GACd,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzE,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,CAAC;eAGV,aAAa"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,YAAY,EACV,WAAW,EACX,YAAY,EAEZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,cAAc,EAEd,kBAAkB,EAClB,iBAAiB,EAEjB,UAAU,EACV,SAAS,EAET,cAAc,EACd,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,kBAAkB,EAElB,eAAe,EACf,WAAW,EAEX,UAAU,EACV,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,eAAe,EAEf,eAAe,EACf,kBAAkB,EAElB,SAAS,EACT,aAAa,EACb,YAAY,EAEZ,QAAQ,GACT,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,QAAQ,EACR,SAAS,GACV,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxF,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,aAAa,GACd,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzE,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,CAAC;eAGV,aAAa"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA+CH,kCAAkC;AAClC,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,8BAA8B;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,kCAAkC;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAS5C,gDAAgD;AAChD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA+CH,kCAAkC;AAClC,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,8BAA8B;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,kCAAkC;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAS5C,gDAAgD;AAChD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAOxF,wCAAwC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAGzE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,iBAAiB;AACjB,eAAe,aAAa,CAAC"}
|
package/dist/math-utils.d.ts
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shared math utilities — single source of truth for the memory package.
|
|
3
3
|
*/
|
|
4
|
+
/**
|
|
5
|
+
* Warn, at most once per process, that two vectors of different lengths were
|
|
6
|
+
* compared. That usually means the embedding model changed under a stored index.
|
|
7
|
+
*/
|
|
8
|
+
export declare function warnVectorLengthMismatch(a: number, b: number): void;
|
|
9
|
+
/**
|
|
10
|
+
* Cosine similarity in [-1, 1]. Returns 0 for empty or zero-norm vectors, and
|
|
11
|
+
* for vectors of different lengths (with a one-time warning).
|
|
12
|
+
*/
|
|
4
13
|
export declare function cosineSimilarity(a: ArrayLike<number>, b: ArrayLike<number>): number;
|
|
5
14
|
export declare function createHashEmbedding(text: string, dim?: number): Float32Array;
|
|
6
15
|
//# sourceMappingURL=math-utils.d.ts.map
|
package/dist/math-utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"math-utils.d.ts","sourceRoot":"","sources":["../src/math-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"math-utils.d.ts","sourceRoot":"","sources":["../src/math-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAQnE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAiBnF;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAK,GAAG,YAAY,CAaxE"}
|
package/dist/math-utils.js
CHANGED
|
@@ -1,8 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shared math utilities — single source of truth for the memory package.
|
|
3
3
|
*/
|
|
4
|
+
/** Shared across every monomind cosine copy so the process warns at most once. */
|
|
5
|
+
const LENGTH_MISMATCH_WARNED = Symbol.for('monomind.cosine.lengthMismatchWarned');
|
|
6
|
+
/**
|
|
7
|
+
* Warn, at most once per process, that two vectors of different lengths were
|
|
8
|
+
* compared. That usually means the embedding model changed under a stored index.
|
|
9
|
+
*/
|
|
10
|
+
export function warnVectorLengthMismatch(a, b) {
|
|
11
|
+
const g = globalThis;
|
|
12
|
+
if (g[LENGTH_MISMATCH_WARNED])
|
|
13
|
+
return;
|
|
14
|
+
g[LENGTH_MISMATCH_WARNED] = true;
|
|
15
|
+
console.warn(`[monomind] cosine similarity: vector length mismatch (${a} vs ${b}), scored as 0. ` +
|
|
16
|
+
'The embedding model probably changed under a stored index; rebuild it.');
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Cosine similarity in [-1, 1]. Returns 0 for empty or zero-norm vectors, and
|
|
20
|
+
* for vectors of different lengths (with a one-time warning).
|
|
21
|
+
*/
|
|
4
22
|
export function cosineSimilarity(a, b) {
|
|
5
|
-
if (a.length !== b.length
|
|
23
|
+
if (a.length !== b.length) {
|
|
24
|
+
warnVectorLengthMismatch(a.length, b.length);
|
|
25
|
+
return 0;
|
|
26
|
+
}
|
|
27
|
+
if (a.length === 0)
|
|
6
28
|
return 0;
|
|
7
29
|
const len = a.length;
|
|
8
30
|
let dot = 0, normA = 0, normB = 0;
|
package/dist/math-utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"math-utils.js","sourceRoot":"","sources":["../src/math-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,UAAU,gBAAgB,CAAC,CAAoB,EAAE,CAAoB;IACzE,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"math-utils.js","sourceRoot":"","sources":["../src/math-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,kFAAkF;AAClF,MAAM,sBAAsB,GAAG,MAAM,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;AAElF;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,CAAS,EAAE,CAAS;IAC3D,MAAM,CAAC,GAAG,UAAqC,CAAC;IAChD,IAAI,CAAC,CAAC,sBAAsB,CAAC;QAAE,OAAO;IACtC,CAAC,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC;IACjC,OAAO,CAAC,IAAI,CACV,yDAAyD,CAAC,OAAO,CAAC,kBAAkB;QAClF,wEAAwE,CAC3E,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,CAAoB,EAAE,CAAoB;IACzE,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1B,wBAAwB,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QAC7C,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAC7B,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC;IACrB,IAAI,GAAG,GAAG,CAAC,EACT,KAAK,GAAG,CAAC,EACT,KAAK,GAAG,CAAC,CAAC;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACnB,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACrB,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClD,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,GAAG,GAAG,EAAE;IACxD,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACnC,SAAS,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QAC7C,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;IAC5D,CAAC;IACD,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE;QAAE,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAClE,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,GAAG,CAAC;QAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE;YAAE,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACjE,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PatternStore - storage-agnostic contract for learned-pattern persistence.
|
|
3
|
+
*
|
|
4
|
+
* The CLI's JSON-file ReasoningBank (`LocalReasoningBank`) implements this
|
|
5
|
+
* today without any change to its on-disk format; a SQLite-backed store can
|
|
6
|
+
* implement the same interface later.
|
|
7
|
+
*/
|
|
8
|
+
/** A learned pattern as persisted by a PatternStore. */
|
|
9
|
+
export interface StoredPatternRecord {
|
|
10
|
+
id: string;
|
|
11
|
+
type: string;
|
|
12
|
+
embedding: number[];
|
|
13
|
+
content: string;
|
|
14
|
+
confidence: number;
|
|
15
|
+
usageCount: number;
|
|
16
|
+
createdAt: number;
|
|
17
|
+
lastUsedAt: number;
|
|
18
|
+
metadata?: Record<string, unknown>;
|
|
19
|
+
}
|
|
20
|
+
export interface PatternStore {
|
|
21
|
+
/** Insert or update a pattern; usage/created/lastUsed default when omitted. */
|
|
22
|
+
store(pattern: Omit<StoredPatternRecord, 'usageCount' | 'createdAt' | 'lastUsedAt'> & Partial<StoredPatternRecord>): void;
|
|
23
|
+
/** Cosine-similarity search; a pure read that does not touch usage metrics. */
|
|
24
|
+
findSimilar(queryEmbedding: number[], options: {
|
|
25
|
+
k?: number;
|
|
26
|
+
threshold?: number;
|
|
27
|
+
type?: string;
|
|
28
|
+
}): StoredPatternRecord[];
|
|
29
|
+
/** Record a usage hit for a pattern. */
|
|
30
|
+
recordUsage(id: string): void;
|
|
31
|
+
get(id: string): StoredPatternRecord | undefined;
|
|
32
|
+
getAll(): StoredPatternRecord[];
|
|
33
|
+
getByType(type: string): StoredPatternRecord[];
|
|
34
|
+
delete(id: string): boolean;
|
|
35
|
+
clear(): void;
|
|
36
|
+
/** Write any pending changes to durable storage. */
|
|
37
|
+
flushToDisk(): void;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=pattern-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pattern-store.d.ts","sourceRoot":"","sources":["../src/pattern-store.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,wDAAwD;AACxD,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,+EAA+E;IAC/E,KAAK,CACH,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC,GAC3E,OAAO,CAAC,mBAAmB,CAAC,GAC7B,IAAI,CAAC;IACR,+EAA+E;IAC/E,WAAW,CACT,cAAc,EAAE,MAAM,EAAE,EACxB,OAAO,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GACzD,mBAAmB,EAAE,CAAC;IACzB,wCAAwC;IACxC,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAAC;IACjD,MAAM,IAAI,mBAAmB,EAAE,CAAC;IAChC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAAC;IAC/C,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,KAAK,IAAI,IAAI,CAAC;IACd,oDAAoD;IACpD,WAAW,IAAI,IAAI,CAAC;CACrB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PatternStore - storage-agnostic contract for learned-pattern persistence.
|
|
3
|
+
*
|
|
4
|
+
* The CLI's JSON-file ReasoningBank (`LocalReasoningBank`) implements this
|
|
5
|
+
* today without any change to its on-disk format; a SQLite-backed store can
|
|
6
|
+
* implement the same interface later.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=pattern-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pattern-store.js","sourceRoot":"","sources":["../src/pattern-store.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Versioned schema migrations for the memory SQLite store.
|
|
3
|
+
*
|
|
4
|
+
* Dependency-free and driver-agnostic: it only uses the SqlDriver contract, so
|
|
5
|
+
* it runs the same on better-sqlite3 and sql.js.
|
|
6
|
+
*
|
|
7
|
+
* Applied migrations are recorded in a `schema_migrations` table rather than
|
|
8
|
+
* in `PRAGMA user_version`. The pragma is already taken: releases before this
|
|
9
|
+
* runner stamp it with their own SCHEMA_VERSION on every open (overwriting a
|
|
10
|
+
* higher value), and the global brain is opened by whichever monomind version
|
|
11
|
+
* happens to run. A counter that an older install silently rewinds cannot
|
|
12
|
+
* tell which migrations ran; a table that older code never touches can.
|
|
13
|
+
*
|
|
14
|
+
* Guarantees:
|
|
15
|
+
* - each migration runs in its own transaction, together with the row that
|
|
16
|
+
* records it, so a migration that throws leaves no trace and is retried
|
|
17
|
+
* on the next open;
|
|
18
|
+
* - already-recorded migrations are skipped, so re-running is a no-op;
|
|
19
|
+
* - a database that records a migration this build does not know was
|
|
20
|
+
* written by a newer release, and is refused before anything is written;
|
|
21
|
+
* - an untracked database the caller recognises as already being at some
|
|
22
|
+
* version is stamped with that baseline, without running its migrations.
|
|
23
|
+
*/
|
|
24
|
+
import type { SqlDriver } from './sql-driver.js';
|
|
25
|
+
export interface SchemaMigration {
|
|
26
|
+
/** 1-based, contiguous, in the order the migrations run. Never renumber a shipped one. */
|
|
27
|
+
readonly id: number;
|
|
28
|
+
readonly description: string;
|
|
29
|
+
/** Must be synchronous and must not open its own transaction (the runner holds one). */
|
|
30
|
+
up(driver: SqlDriver): void;
|
|
31
|
+
}
|
|
32
|
+
export interface MigrationRunReport {
|
|
33
|
+
/** Version recorded before this run, after any baseline stamp. */
|
|
34
|
+
from: number;
|
|
35
|
+
/** Version after this run. */
|
|
36
|
+
to: number;
|
|
37
|
+
/** Migrations whose `up` ran in this call. */
|
|
38
|
+
applied: number[];
|
|
39
|
+
/** Migrations recorded as a baseline in this call, without running `up`. */
|
|
40
|
+
baselined: number[];
|
|
41
|
+
}
|
|
42
|
+
export interface RunMigrationsOptions {
|
|
43
|
+
/**
|
|
44
|
+
* Called only when the tracking table has no rows. Returns the version an
|
|
45
|
+
* existing database is already at (0 for a fresh one); migrations up to it
|
|
46
|
+
* are recorded as baseline instead of being run.
|
|
47
|
+
*/
|
|
48
|
+
baseline?: (driver: SqlDriver) => number;
|
|
49
|
+
}
|
|
50
|
+
export declare class SchemaTooNewError extends Error {
|
|
51
|
+
readonly databaseVersion: number;
|
|
52
|
+
readonly supportedVersion: number;
|
|
53
|
+
readonly code = "MEMORY_SCHEMA_TOO_NEW";
|
|
54
|
+
constructor(databaseVersion: number, supportedVersion: number);
|
|
55
|
+
}
|
|
56
|
+
/** Highest recorded migration id; 0 for an untracked database. */
|
|
57
|
+
export declare function schemaMigrationVersion(driver: SqlDriver): number;
|
|
58
|
+
export declare function runMigrations(driver: SqlDriver, migrations: readonly SchemaMigration[], options?: RunMigrationsOptions): MigrationRunReport;
|
|
59
|
+
//# sourceMappingURL=schema-migrations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-migrations.d.ts","sourceRoot":"","sources":["../src/schema-migrations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,WAAW,eAAe;IAC9B,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,wFAAwF;IACxF,EAAE,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAkB;IACjC,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,8CAA8C;IAC9C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,4EAA4E;IAC5E,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,MAAM,CAAC;CAC1C;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IAGxC,QAAQ,CAAC,eAAe,EAAE,MAAM;IAChC,QAAQ,CAAC,gBAAgB,EAAE,MAAM;IAHnC,QAAQ,CAAC,IAAI,2BAA2B;IACxC,YACW,eAAe,EAAE,MAAM,EACvB,gBAAgB,EAAE,MAAM,EAQlC;CACF;AAqBD,kEAAkE;AAClE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAGhE;AAMD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,SAAS,eAAe,EAAE,EACtC,OAAO,GAAE,oBAAyB,GACjC,kBAAkB,CAyCpB"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Versioned schema migrations for the memory SQLite store.
|
|
3
|
+
*
|
|
4
|
+
* Dependency-free and driver-agnostic: it only uses the SqlDriver contract, so
|
|
5
|
+
* it runs the same on better-sqlite3 and sql.js.
|
|
6
|
+
*
|
|
7
|
+
* Applied migrations are recorded in a `schema_migrations` table rather than
|
|
8
|
+
* in `PRAGMA user_version`. The pragma is already taken: releases before this
|
|
9
|
+
* runner stamp it with their own SCHEMA_VERSION on every open (overwriting a
|
|
10
|
+
* higher value), and the global brain is opened by whichever monomind version
|
|
11
|
+
* happens to run. A counter that an older install silently rewinds cannot
|
|
12
|
+
* tell which migrations ran; a table that older code never touches can.
|
|
13
|
+
*
|
|
14
|
+
* Guarantees:
|
|
15
|
+
* - each migration runs in its own transaction, together with the row that
|
|
16
|
+
* records it, so a migration that throws leaves no trace and is retried
|
|
17
|
+
* on the next open;
|
|
18
|
+
* - already-recorded migrations are skipped, so re-running is a no-op;
|
|
19
|
+
* - a database that records a migration this build does not know was
|
|
20
|
+
* written by a newer release, and is refused before anything is written;
|
|
21
|
+
* - an untracked database the caller recognises as already being at some
|
|
22
|
+
* version is stamped with that baseline, without running its migrations.
|
|
23
|
+
*/
|
|
24
|
+
export class SchemaTooNewError extends Error {
|
|
25
|
+
databaseVersion;
|
|
26
|
+
supportedVersion;
|
|
27
|
+
code = 'MEMORY_SCHEMA_TOO_NEW';
|
|
28
|
+
constructor(databaseVersion, supportedVersion) {
|
|
29
|
+
super(`memory database is at schema version ${databaseVersion}, but this @monoes/memory ` +
|
|
30
|
+
`supports up to ${supportedVersion}. It was written by a newer monomind; upgrade ` +
|
|
31
|
+
`monomind to use it. Refusing to open it so this older version cannot damage it.`);
|
|
32
|
+
this.databaseVersion = databaseVersion;
|
|
33
|
+
this.supportedVersion = supportedVersion;
|
|
34
|
+
this.name = 'SchemaTooNewError';
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const CREATE_TRACKING_TABLE = `
|
|
38
|
+
CREATE TABLE IF NOT EXISTS schema_migrations (
|
|
39
|
+
id INTEGER PRIMARY KEY,
|
|
40
|
+
description TEXT NOT NULL,
|
|
41
|
+
applied_at INTEGER NOT NULL,
|
|
42
|
+
baseline INTEGER NOT NULL DEFAULT 0
|
|
43
|
+
)`;
|
|
44
|
+
const RECORD = 'INSERT OR IGNORE INTO schema_migrations (id, description, applied_at, baseline) VALUES (?, ?, ?, ?)';
|
|
45
|
+
function hasTrackingTable(driver) {
|
|
46
|
+
return (driver.get("SELECT name FROM sqlite_master WHERE type = 'table' AND name = 'schema_migrations'") !== null);
|
|
47
|
+
}
|
|
48
|
+
/** Highest recorded migration id; 0 for an untracked database. */
|
|
49
|
+
export function schemaMigrationVersion(driver) {
|
|
50
|
+
if (!hasTrackingTable(driver))
|
|
51
|
+
return 0;
|
|
52
|
+
return Number(driver.get('SELECT MAX(id) AS v FROM schema_migrations')?.v ?? 0) || 0;
|
|
53
|
+
}
|
|
54
|
+
function isRecorded(driver, id) {
|
|
55
|
+
return driver.get('SELECT id FROM schema_migrations WHERE id = ?', [id]) !== null;
|
|
56
|
+
}
|
|
57
|
+
export function runMigrations(driver, migrations, options = {}) {
|
|
58
|
+
migrations.forEach((m, i) => {
|
|
59
|
+
if (m.id !== i + 1)
|
|
60
|
+
throw new Error(`schema migration ids must be 1..n in order; got ${m.id} at position ${i + 1}`);
|
|
61
|
+
});
|
|
62
|
+
const latest = migrations.length;
|
|
63
|
+
// Refuse before writing anything, the tracking table included.
|
|
64
|
+
const recorded = schemaMigrationVersion(driver);
|
|
65
|
+
if (recorded > latest)
|
|
66
|
+
throw new SchemaTooNewError(recorded, latest);
|
|
67
|
+
driver.exec(CREATE_TRACKING_TABLE);
|
|
68
|
+
const report = { from: recorded, to: recorded, applied: [], baselined: [] };
|
|
69
|
+
if (recorded === 0 && options.baseline) {
|
|
70
|
+
const base = Math.min(Math.max(0, Math.floor(options.baseline(driver))), latest);
|
|
71
|
+
if (base > 0) {
|
|
72
|
+
const now = Date.now();
|
|
73
|
+
driver.transaction(() => {
|
|
74
|
+
for (const m of migrations.slice(0, base)) {
|
|
75
|
+
if (driver.run(RECORD, [m.id, m.description, now, 1]) > 0)
|
|
76
|
+
report.baselined.push(m.id);
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
report.from = report.to = base;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
for (const m of migrations) {
|
|
83
|
+
if (m.id <= report.to)
|
|
84
|
+
continue;
|
|
85
|
+
driver.transaction(() => {
|
|
86
|
+
// Re-checked inside the transaction: another process may have applied it meanwhile.
|
|
87
|
+
if (isRecorded(driver, m.id))
|
|
88
|
+
return;
|
|
89
|
+
m.up(driver);
|
|
90
|
+
driver.run(RECORD, [m.id, m.description, Date.now(), 0]);
|
|
91
|
+
report.applied.push(m.id);
|
|
92
|
+
});
|
|
93
|
+
report.to = m.id;
|
|
94
|
+
}
|
|
95
|
+
return report;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=schema-migrations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-migrations.js","sourceRoot":"","sources":["../src/schema-migrations.ts"],"names":[],"mappings":"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"}
|
package/dist/sql-schema.d.ts
CHANGED
|
@@ -23,12 +23,17 @@
|
|
|
23
23
|
*/
|
|
24
24
|
import type { SqlDriver } from './sql-driver.js';
|
|
25
25
|
/**
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
26
|
+
* The PRAGMA user_version stamp, frozen at 4. Schema changes are now numbered
|
|
27
|
+
* migrations (memoryMigrations(), recorded in `schema_migrations`); do not bump
|
|
28
|
+
* this for them.
|
|
29
|
+
*
|
|
30
|
+
* It is still written on every open because releases before the migration
|
|
31
|
+
* runner gate their full-table repairs (namespace+key dedupe, FTS5 row dedupe,
|
|
32
|
+
* issue #426) on `user_version < 4`, and write their own value back when they
|
|
33
|
+
* open the file. Here it serves two purposes: a store at 4 with no
|
|
34
|
+
* `schema_migrations` table was left by that code at the current schema and is
|
|
35
|
+
* adopted as a baseline; a tracked store found below 4 was opened by an older
|
|
36
|
+
* release since, so the repairs run again.
|
|
32
37
|
*/
|
|
33
38
|
export declare const SCHEMA_VERSION = 4;
|
|
34
39
|
/**
|
|
@@ -93,15 +98,22 @@ export declare function hasFTS5Table(driver: SqlDriver): boolean;
|
|
|
93
98
|
* Returns true if the FTS5 table is usable after this call.
|
|
94
99
|
*/
|
|
95
100
|
export declare function createFTS5Index(driver: SqlDriver, repair?: boolean): boolean;
|
|
101
|
+
/** Version of the newest migration this build knows. */
|
|
102
|
+
export declare const LATEST_MEMORY_MIGRATION: number;
|
|
96
103
|
/**
|
|
97
|
-
* Bring a database to the
|
|
98
|
-
*
|
|
99
|
-
* the
|
|
104
|
+
* Bring a database to the latest schema: refuse one from a newer release,
|
|
105
|
+
* adopt or migrate it (see memoryMigrations), then re-assert the invariants an
|
|
106
|
+
* older release that opened the file since may have undone.
|
|
107
|
+
*
|
|
108
|
+
* Those invariants are not one-shot migrations on purpose:
|
|
109
|
+
* - FTS5 sync triggers are redefined on every open (cheap, no data), since
|
|
110
|
+
* an older release reinstalls its own definitions;
|
|
111
|
+
* - the FTS5 table is built whenever it is missing, so a store first opened
|
|
112
|
+
* where FTS5 was unavailable gains it once a build that has FTS5 opens it;
|
|
113
|
+
* - the namespace+key repair re-runs whenever the unique index is missing;
|
|
114
|
+
* - both dedupe repairs re-run when user_version has dropped below 4.
|
|
100
115
|
*
|
|
101
|
-
*
|
|
102
|
-
* version is below SCHEMA_VERSION (an older release that opens the file
|
|
103
|
-
* writes its own lower version back, so it gets repaired again next time).
|
|
104
|
-
* The namespace+key repair also re-runs whenever the unique index is missing.
|
|
116
|
+
* Throws SchemaTooNewError for a store from a newer release.
|
|
105
117
|
*/
|
|
106
118
|
export declare function initializeSchema(driver: SqlDriver): MigrationReport;
|
|
107
119
|
//# sourceMappingURL=sql-schema.d.ts.map
|
package/dist/sql-schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-schema.d.ts","sourceRoot":"","sources":["../src/sql-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;
|
|
1
|
+
{"version":3,"file":"sql-schema.d.ts","sourceRoot":"","sources":["../src/sql-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;;;;;;;;;;GAYG;AACH,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,CAmBjE;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,CAIhF;AA6BD;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CASvD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,UAAO,GAAG,OAAO,CAkDzE;AAqID,wDAAwD;AACxD,eAAO,MAAM,uBAAuB,QAI3B,CAAC;AAYV;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,eAAe,CAgBnE"}
|
package/dist/sql-schema.js
CHANGED
|
@@ -21,13 +21,19 @@
|
|
|
21
21
|
* conservative — it copies before it drops, is idempotent, and leaves the
|
|
22
22
|
* legacy column in place rather than rewriting the table.
|
|
23
23
|
*/
|
|
24
|
+
import { runMigrations } from './schema-migrations.js';
|
|
24
25
|
/**
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
26
|
+
* The PRAGMA user_version stamp, frozen at 4. Schema changes are now numbered
|
|
27
|
+
* migrations (memoryMigrations(), recorded in `schema_migrations`); do not bump
|
|
28
|
+
* this for them.
|
|
29
|
+
*
|
|
30
|
+
* It is still written on every open because releases before the migration
|
|
31
|
+
* runner gate their full-table repairs (namespace+key dedupe, FTS5 row dedupe,
|
|
32
|
+
* issue #426) on `user_version < 4`, and write their own value back when they
|
|
33
|
+
* open the file. Here it serves two purposes: a store at 4 with no
|
|
34
|
+
* `schema_migrations` table was left by that code at the current schema and is
|
|
35
|
+
* adopted as a baseline; a tracked store found below 4 was opened by an older
|
|
36
|
+
* release since, so the repairs run again.
|
|
31
37
|
*/
|
|
32
38
|
export const SCHEMA_VERSION = 4;
|
|
33
39
|
/**
|
|
@@ -146,30 +152,30 @@ export function hasLegacyInlineEmbedding(driver) {
|
|
|
146
152
|
*/
|
|
147
153
|
export function migrateLegacyInlineEmbeddings(driver) {
|
|
148
154
|
const report = { legacyColumnFound: false, migrated: 0, skipped: 0 };
|
|
155
|
+
driver.transaction(() => copyLegacyInlineEmbeddings(driver, report));
|
|
156
|
+
return report;
|
|
157
|
+
}
|
|
158
|
+
/** Body of migrateLegacyInlineEmbeddings without its transaction, for use inside a migration. */
|
|
159
|
+
function copyLegacyInlineEmbeddings(driver, report) {
|
|
149
160
|
if (!hasLegacyInlineEmbedding(driver))
|
|
150
|
-
return
|
|
161
|
+
return;
|
|
151
162
|
report.legacyColumnFound = true;
|
|
152
|
-
driver.
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
if (existing) {
|
|
162
|
-
report.skipped++;
|
|
163
|
-
continue;
|
|
164
|
-
}
|
|
165
|
-
driver.run('INSERT OR IGNORE INTO memory_embeddings (entry_id, embedding) VALUES (?, ?)', [
|
|
166
|
-
id,
|
|
167
|
-
row.embedding,
|
|
168
|
-
]);
|
|
169
|
-
report.migrated++;
|
|
163
|
+
const rows = driver.all(`SELECT e.id AS id, e.embedding AS embedding
|
|
164
|
+
FROM memory_entries e
|
|
165
|
+
WHERE e.embedding IS NOT NULL`);
|
|
166
|
+
for (const row of rows) {
|
|
167
|
+
const id = String(row.id);
|
|
168
|
+
const existing = driver.get('SELECT entry_id FROM memory_embeddings WHERE entry_id = ?', [id]);
|
|
169
|
+
if (existing) {
|
|
170
|
+
report.skipped++;
|
|
171
|
+
continue;
|
|
170
172
|
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
+
driver.run('INSERT OR IGNORE INTO memory_embeddings (entry_id, embedding) VALUES (?, ?)', [
|
|
174
|
+
id,
|
|
175
|
+
row.embedding,
|
|
176
|
+
]);
|
|
177
|
+
report.migrated++;
|
|
178
|
+
}
|
|
173
179
|
}
|
|
174
180
|
// ===== FTS5 Full-Text Search Index (Issue #66) =============================
|
|
175
181
|
/**
|
|
@@ -335,28 +341,89 @@ function hasNamespaceKeyUniqueIndex(driver) {
|
|
|
335
341
|
return false;
|
|
336
342
|
}
|
|
337
343
|
}
|
|
344
|
+
const CANONICAL_TABLES = [
|
|
345
|
+
'memory_entries',
|
|
346
|
+
'memory_embeddings',
|
|
347
|
+
'memory_entry_tags',
|
|
348
|
+
'agent_reads',
|
|
349
|
+
];
|
|
338
350
|
/**
|
|
339
|
-
*
|
|
340
|
-
*
|
|
341
|
-
*
|
|
351
|
+
* The memory schema as numbered migrations. 1-4 are the schema the pre-runner
|
|
352
|
+
* `initializeSchema()` produced, split into the steps it took; a store it
|
|
353
|
+
* left at user_version 4 is adopted at version 4 without any of them running.
|
|
354
|
+
* Each is idempotent, because a store below user_version 4 (or an untracked
|
|
355
|
+
* one in an unknown state) runs all of them.
|
|
342
356
|
*
|
|
343
|
-
*
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
357
|
+
* Append new migrations at the end; never edit or renumber a shipped one.
|
|
358
|
+
*/
|
|
359
|
+
function memoryMigrations(report) {
|
|
360
|
+
return [
|
|
361
|
+
{
|
|
362
|
+
id: 1,
|
|
363
|
+
description: 'canonical tables and indexes (memory_entries, memory_embeddings, memory_entry_tags, agent_reads)',
|
|
364
|
+
up: createCanonicalSchema,
|
|
365
|
+
},
|
|
366
|
+
{
|
|
367
|
+
id: 2,
|
|
368
|
+
description: 'copy legacy inline memory_entries.embedding into memory_embeddings (column kept)',
|
|
369
|
+
up: (driver) => copyLegacyInlineEmbeddings(driver, report),
|
|
370
|
+
},
|
|
371
|
+
{
|
|
372
|
+
id: 3,
|
|
373
|
+
description: 'dedupe namespace+key and add UNIQUE index idx_namespace_key_unique',
|
|
374
|
+
up: enforceNamespaceKeyUnique,
|
|
375
|
+
},
|
|
376
|
+
{
|
|
377
|
+
id: 4,
|
|
378
|
+
description: 'FTS5 index memory_entries_fts with sync triggers, deduping stale rows',
|
|
379
|
+
up: (driver) => void createFTS5Index(driver, true),
|
|
380
|
+
},
|
|
381
|
+
];
|
|
382
|
+
}
|
|
383
|
+
/** Version of the newest migration this build knows. */
|
|
384
|
+
export const LATEST_MEMORY_MIGRATION = memoryMigrations({
|
|
385
|
+
legacyColumnFound: false,
|
|
386
|
+
migrated: 0,
|
|
387
|
+
skipped: 0,
|
|
388
|
+
}).length;
|
|
389
|
+
/** An untracked store left at user_version 4 by the pre-runner code is already at migration 4. */
|
|
390
|
+
function detectBaseline(driver) {
|
|
391
|
+
const tables = new Set(driver.all("SELECT name FROM sqlite_master WHERE type = 'table'").map((r) => String(r.name)));
|
|
392
|
+
return readSchemaVersion(driver) >= SCHEMA_VERSION && CANONICAL_TABLES.every((t) => tables.has(t))
|
|
393
|
+
? 4
|
|
394
|
+
: 0;
|
|
395
|
+
}
|
|
396
|
+
/**
|
|
397
|
+
* Bring a database to the latest schema: refuse one from a newer release,
|
|
398
|
+
* adopt or migrate it (see memoryMigrations), then re-assert the invariants an
|
|
399
|
+
* older release that opened the file since may have undone.
|
|
400
|
+
*
|
|
401
|
+
* Those invariants are not one-shot migrations on purpose:
|
|
402
|
+
* - FTS5 sync triggers are redefined on every open (cheap, no data), since
|
|
403
|
+
* an older release reinstalls its own definitions;
|
|
404
|
+
* - the FTS5 table is built whenever it is missing, so a store first opened
|
|
405
|
+
* where FTS5 was unavailable gains it once a build that has FTS5 opens it;
|
|
406
|
+
* - the namespace+key repair re-runs whenever the unique index is missing;
|
|
407
|
+
* - both dedupe repairs re-run when user_version has dropped below 4.
|
|
408
|
+
*
|
|
409
|
+
* Throws SchemaTooNewError for a store from a newer release.
|
|
347
410
|
*/
|
|
348
411
|
export function initializeSchema(driver) {
|
|
349
|
-
const
|
|
350
|
-
|
|
351
|
-
const
|
|
352
|
-
if (
|
|
412
|
+
const storedUserVersion = readSchemaVersion(driver);
|
|
413
|
+
const report = { legacyColumnFound: false, migrated: 0, skipped: 0 };
|
|
414
|
+
const run = runMigrations(driver, memoryMigrations(report), { baseline: detectBaseline });
|
|
415
|
+
if (!report.legacyColumnFound)
|
|
416
|
+
report.legacyColumnFound = hasLegacyInlineEmbedding(driver);
|
|
417
|
+
// run.from >= 4: the repairs did not just run as migrations 3-4.
|
|
418
|
+
const regressed = storedUserVersion < SCHEMA_VERSION && run.from >= 4;
|
|
419
|
+
if (regressed || !hasNamespaceKeyUniqueIndex(driver))
|
|
353
420
|
enforceNamespaceKeyUnique(driver);
|
|
354
|
-
createFTS5Index(driver,
|
|
421
|
+
createFTS5Index(driver, regressed);
|
|
355
422
|
try {
|
|
356
423
|
driver.exec(`PRAGMA user_version = ${SCHEMA_VERSION}`);
|
|
357
424
|
}
|
|
358
425
|
catch {
|
|
359
|
-
/* pragma unsupported on this driver —
|
|
426
|
+
/* pragma unsupported on this driver — the stamp is advisory */
|
|
360
427
|
}
|
|
361
428
|
return report;
|
|
362
429
|
}
|
package/dist/sql-schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-schema.js","sourceRoot":"","sources":["../src/sql-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;
|
|
1
|
+
{"version":3,"file":"sql-schema.js","sourceRoot":"","sources":["../src/sql-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,aAAa,EAAwB,MAAM,wBAAwB,CAAC;AAG7E;;;;;;;;;;;;GAYG;AACH,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,CAAC,gFAAgF,CAAC,CAAC;IAChG,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;IACtF,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,0BAA0B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACrE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,iGAAiG;AACjG,SAAS,0BAA0B,CAAC,MAAiB,EAAE,MAAuB;IAC5E,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC;QAAE,OAAO;IAC9C,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAChC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CACrB;;oCAEgC,CACjC,CAAC;IAEF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1B,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,2DAA2D,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/F,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,SAAS;QACX,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,6EAA6E,EAAE;YACxF,EAAE;YACF,GAAG,CAAC,SAAuB;SAC5B,CAAC,CAAC;QACH,MAAM,CAAC,QAAQ,EAAE,CAAC;IACpB,CAAC;AACH,CAAC;AAED,8EAA8E;AAE9E;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,MAAiB;IAC5C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CACpB,qFAAqF,CACtF,CAAC;QACF,OAAO,GAAG,KAAK,IAAI,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,eAAe,CAAC,MAAiB,EAAE,MAAM,GAAG,IAAI;IAC9D,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAE3C,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC;;;;;;;OAOX,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,uEAAuE;YACvE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC;YACH,+BAA+B;YAC/B,MAAM,CAAC,IAAI,CAAC;;;OAGX,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,mEAAmE;YACnE,kEAAkE;YAClE,IAAI,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;YACzD,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,aAAa,IAAI,MAAM;YAAE,cAAc,CAAC,MAAM,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,IAAI,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;YACzD,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;qEAyBqE;AACrE,SAAS,kBAAkB,CAAC,MAAiB;IAC3C,MAAM,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;GAsBX,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;iFAOiF;AACjF,SAAS,cAAc,CAAC,MAAiB;IACvC,MAAM,CAAC,IAAI,CAAC;;;GAGX,CAAC,CAAC;AACL,CAAC;AAED,4DAA4D;AAC5D,SAAS,iBAAiB,CAAC,MAAiB;IAC1C,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,SAAS,0BAA0B,CAAC,MAAiB;IACnD,IAAI,CAAC;QACH,OAAO,CACL,MAAM,CAAC,GAAG,CACR,2FAA2F,CAC5F,KAAK,IAAI,CACX,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,gBAAgB,GAAG;IACvB,gBAAgB;IAChB,mBAAmB;IACnB,mBAAmB;IACnB,aAAa;CACd,CAAC;AAEF;;;;;;;;GAQG;AACH,SAAS,gBAAgB,CAAC,MAAuB;IAC/C,OAAO;QACL;YACE,EAAE,EAAE,CAAC;YACL,WAAW,EACT,kGAAkG;YACpG,EAAE,EAAE,qBAAqB;SAC1B;QACD;YACE,EAAE,EAAE,CAAC;YACL,WAAW,EACT,kFAAkF;YACpF,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,0BAA0B,CAAC,MAAM,EAAE,MAAM,CAAC;SAC3D;QACD;YACE,EAAE,EAAE,CAAC;YACL,WAAW,EAAE,oEAAoE;YACjF,EAAE,EAAE,yBAAyB;SAC9B;QACD;YACE,EAAE,EAAE,CAAC;YACL,WAAW,EAAE,uEAAuE;YACpF,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC;SACnD;KACF,CAAC;AACJ,CAAC;AAED,wDAAwD;AACxD,MAAM,CAAC,MAAM,uBAAuB,GAAG,gBAAgB,CAAC;IACtD,iBAAiB,EAAE,KAAK;IACxB,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,CAAC;CACX,CAAC,CAAC,MAAM,CAAC;AAEV,kGAAkG;AAClG,SAAS,cAAc,CAAC,MAAiB;IACvC,MAAM,MAAM,GAAG,IAAI,GAAG,CACpB,MAAM,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAC7F,CAAC;IACF,OAAO,iBAAiB,CAAC,MAAM,CAAC,IAAI,cAAc,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChG,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,CAAC,CAAC;AACR,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAiB;IAChD,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,MAAM,GAAoB,EAAE,iBAAiB,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACtF,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;IAE1F,IAAI,CAAC,MAAM,CAAC,iBAAiB;QAAE,MAAM,CAAC,iBAAiB,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAC3F,iEAAiE;IACjE,MAAM,SAAS,GAAG,iBAAiB,GAAG,cAAc,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;IACtE,IAAI,SAAS,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC;QAAE,yBAAyB,CAAC,MAAM,CAAC,CAAC;IACxF,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,yBAAyB,cAAc,EAAE,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,+DAA+D;IACjE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@monoes/memory",
|
|
3
|
-
"version": "2.24.
|
|
3
|
+
"version": "2.24.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Memory module - JSON pattern store and a SQLite + embeddings backend with a size-gated HNSW ANN fast path built in",
|
|
6
|
+
"license": "Apache-2.0",
|
|
6
7
|
"main": "dist/index.js",
|
|
7
8
|
"types": "dist/index.d.ts",
|
|
8
9
|
"exports": {
|
|
@@ -10,16 +11,16 @@
|
|
|
10
11
|
"./*": "./dist/*.js"
|
|
11
12
|
},
|
|
12
13
|
"engines": {
|
|
13
|
-
"node": ">=22.
|
|
14
|
+
"node": ">=22.22.0"
|
|
14
15
|
},
|
|
15
16
|
"dependencies": {
|
|
16
17
|
"better-sqlite3": "^12.0.0",
|
|
17
|
-
"sql.js": "^1.
|
|
18
|
+
"sql.js": "^1.16.0"
|
|
18
19
|
},
|
|
19
20
|
"devDependencies": {
|
|
20
21
|
"@types/better-sqlite3": "^7.6.11",
|
|
21
22
|
"@types/sql.js": "^1.4.9",
|
|
22
|
-
"vitest": "^
|
|
23
|
+
"vitest": "^5.1.0"
|
|
23
24
|
},
|
|
24
25
|
"files": [
|
|
25
26
|
"dist",
|