@monoes/memory 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +902 -0
- package/dist/agent-memory-scope.d.ts +131 -0
- package/dist/agent-memory-scope.d.ts.map +1 -0
- package/dist/agent-memory-scope.js +230 -0
- package/dist/agent-memory-scope.js.map +1 -0
- package/dist/agentdb-adapter.d.ts +165 -0
- package/dist/agentdb-adapter.d.ts.map +1 -0
- package/dist/agentdb-adapter.js +836 -0
- package/dist/agentdb-adapter.js.map +1 -0
- package/dist/agentdb-backend.d.ts +218 -0
- package/dist/agentdb-backend.d.ts.map +1 -0
- package/dist/agentdb-backend.js +879 -0
- package/dist/agentdb-backend.js.map +1 -0
- package/dist/auto-memory-bridge.d.ts +230 -0
- package/dist/auto-memory-bridge.d.ts.map +1 -0
- package/dist/auto-memory-bridge.js +730 -0
- package/dist/auto-memory-bridge.js.map +1 -0
- package/dist/cache-manager.d.ts +134 -0
- package/dist/cache-manager.d.ts.map +1 -0
- package/dist/cache-manager.js +410 -0
- package/dist/cache-manager.js.map +1 -0
- package/dist/checkpointer.d.ts +78 -0
- package/dist/checkpointer.d.ts.map +1 -0
- package/dist/checkpointer.js +174 -0
- package/dist/checkpointer.js.map +1 -0
- package/dist/controller-registry.d.ts +216 -0
- package/dist/controller-registry.d.ts.map +1 -0
- package/dist/controller-registry.js +897 -0
- package/dist/controller-registry.js.map +1 -0
- package/dist/database-provider.d.ts +87 -0
- package/dist/database-provider.d.ts.map +1 -0
- package/dist/database-provider.js +434 -0
- package/dist/database-provider.js.map +1 -0
- package/dist/diskann-backend.d.ts +126 -0
- package/dist/diskann-backend.d.ts.map +1 -0
- package/dist/diskann-backend.js +324 -0
- package/dist/diskann-backend.js.map +1 -0
- package/dist/episodic-store.d.ts +58 -0
- package/dist/episodic-store.d.ts.map +1 -0
- package/dist/episodic-store.js +160 -0
- package/dist/episodic-store.js.map +1 -0
- package/dist/hnsw-index.d.ts +111 -0
- package/dist/hnsw-index.d.ts.map +1 -0
- package/dist/hnsw-index.js +778 -0
- package/dist/hnsw-index.js.map +1 -0
- package/dist/hnsw-lite.d.ts +29 -0
- package/dist/hnsw-lite.d.ts.map +1 -0
- package/dist/hnsw-lite.js +236 -0
- package/dist/hnsw-lite.js.map +1 -0
- package/dist/hybrid-backend.d.ts +299 -0
- package/dist/hybrid-backend.d.ts.map +1 -0
- package/dist/hybrid-backend.js +804 -0
- package/dist/hybrid-backend.js.map +1 -0
- package/dist/index.d.ts +228 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +379 -0
- package/dist/index.js.map +1 -0
- package/dist/knowledge/document-chunker.d.ts +22 -0
- package/dist/knowledge/document-chunker.d.ts.map +1 -0
- package/dist/knowledge/document-chunker.js +52 -0
- package/dist/knowledge/document-chunker.js.map +1 -0
- package/dist/knowledge/index.d.ts +12 -0
- package/dist/knowledge/index.d.ts.map +1 -0
- package/dist/knowledge/index.js +9 -0
- package/dist/knowledge/index.js.map +1 -0
- package/dist/knowledge/knowledge-retriever.d.ts +48 -0
- package/dist/knowledge/knowledge-retriever.d.ts.map +1 -0
- package/dist/knowledge/knowledge-retriever.js +80 -0
- package/dist/knowledge/knowledge-retriever.js.map +1 -0
- package/dist/knowledge/knowledge-store.d.ts +58 -0
- package/dist/knowledge/knowledge-store.d.ts.map +1 -0
- package/dist/knowledge/knowledge-store.js +121 -0
- package/dist/knowledge/knowledge-store.js.map +1 -0
- package/dist/learning-bridge.d.ts +162 -0
- package/dist/learning-bridge.d.ts.map +1 -0
- package/dist/learning-bridge.js +522 -0
- package/dist/learning-bridge.js.map +1 -0
- package/dist/memory-graph.d.ts +123 -0
- package/dist/memory-graph.d.ts.map +1 -0
- package/dist/memory-graph.js +412 -0
- package/dist/memory-graph.js.map +1 -0
- package/dist/migration.d.ts +68 -0
- package/dist/migration.d.ts.map +1 -0
- package/dist/migration.js +513 -0
- package/dist/migration.js.map +1 -0
- package/dist/partitioned-hnsw.d.ts +65 -0
- package/dist/partitioned-hnsw.d.ts.map +1 -0
- package/dist/partitioned-hnsw.js +209 -0
- package/dist/partitioned-hnsw.js.map +1 -0
- package/dist/persistent-sona.d.ts +144 -0
- package/dist/persistent-sona.d.ts.map +1 -0
- package/dist/persistent-sona.js +333 -0
- package/dist/persistent-sona.js.map +1 -0
- package/dist/procedural/action-record.d.ts +19 -0
- package/dist/procedural/action-record.d.ts.map +1 -0
- package/dist/procedural/action-record.js +51 -0
- package/dist/procedural/action-record.js.map +1 -0
- package/dist/procedural/action-sequence-extractor.d.ts +25 -0
- package/dist/procedural/action-sequence-extractor.d.ts.map +1 -0
- package/dist/procedural/action-sequence-extractor.js +91 -0
- package/dist/procedural/action-sequence-extractor.js.map +1 -0
- package/dist/procedural/index.d.ts +14 -0
- package/dist/procedural/index.d.ts.map +1 -0
- package/dist/procedural/index.js +13 -0
- package/dist/procedural/index.js.map +1 -0
- package/dist/procedural/learned-skill.d.ts +17 -0
- package/dist/procedural/learned-skill.d.ts.map +1 -0
- package/dist/procedural/learned-skill.js +73 -0
- package/dist/procedural/learned-skill.js.map +1 -0
- package/dist/procedural/procedure-extractor-worker.d.ts +27 -0
- package/dist/procedural/procedure-extractor-worker.d.ts.map +1 -0
- package/dist/procedural/procedure-extractor-worker.js +39 -0
- package/dist/procedural/procedure-extractor-worker.js.map +1 -0
- package/dist/procedural/skill-registry.d.ts +25 -0
- package/dist/procedural/skill-registry.d.ts.map +1 -0
- package/dist/procedural/skill-registry.js +56 -0
- package/dist/procedural/skill-registry.js.map +1 -0
- package/dist/procedural/types.d.ts +67 -0
- package/dist/procedural/types.d.ts.map +1 -0
- package/dist/procedural/types.js +15 -0
- package/dist/procedural/types.js.map +1 -0
- package/dist/prompt-version-store.d.ts +59 -0
- package/dist/prompt-version-store.d.ts.map +1 -0
- package/dist/prompt-version-store.js +175 -0
- package/dist/prompt-version-store.js.map +1 -0
- package/dist/query-builder.d.ts +52 -0
- package/dist/query-builder.d.ts.map +1 -0
- package/dist/query-builder.js +134 -0
- package/dist/query-builder.js.map +1 -0
- package/dist/rvf-backend.d.ts +51 -0
- package/dist/rvf-backend.d.ts.map +1 -0
- package/dist/rvf-backend.js +499 -0
- package/dist/rvf-backend.js.map +1 -0
- package/dist/rvf-learning-store.d.ts +141 -0
- package/dist/rvf-learning-store.d.ts.map +1 -0
- package/dist/rvf-learning-store.js +344 -0
- package/dist/rvf-learning-store.js.map +1 -0
- package/dist/rvf-migration.d.ts +45 -0
- package/dist/rvf-migration.d.ts.map +1 -0
- package/dist/rvf-migration.js +254 -0
- package/dist/rvf-migration.js.map +1 -0
- package/dist/sqlite-backend.d.ts +127 -0
- package/dist/sqlite-backend.d.ts.map +1 -0
- package/dist/sqlite-backend.js +618 -0
- package/dist/sqlite-backend.js.map +1 -0
- package/dist/sqljs-backend.d.ts +128 -0
- package/dist/sqljs-backend.d.ts.map +1 -0
- package/dist/sqljs-backend.js +611 -0
- package/dist/sqljs-backend.js.map +1 -0
- package/dist/tier-manager.d.ts +79 -0
- package/dist/tier-manager.d.ts.map +1 -0
- package/dist/tier-manager.js +169 -0
- package/dist/tier-manager.js.map +1 -0
- package/dist/tiers/contextual.d.ts +43 -0
- package/dist/tiers/contextual.d.ts.map +1 -0
- package/dist/tiers/contextual.js +102 -0
- package/dist/tiers/contextual.js.map +1 -0
- package/dist/tiers/entity.d.ts +46 -0
- package/dist/tiers/entity.d.ts.map +1 -0
- package/dist/tiers/entity.js +106 -0
- package/dist/tiers/entity.js.map +1 -0
- package/dist/tiers/index.d.ts +4 -0
- package/dist/tiers/index.d.ts.map +1 -0
- package/dist/tiers/index.js +4 -0
- package/dist/tiers/index.js.map +1 -0
- package/dist/tiers/short-term.d.ts +42 -0
- package/dist/tiers/short-term.d.ts.map +1 -0
- package/dist/tiers/short-term.js +89 -0
- package/dist/tiers/short-term.js.map +1 -0
- package/dist/types/checkpoint.d.ts +44 -0
- package/dist/types/checkpoint.d.ts.map +1 -0
- package/dist/types/checkpoint.js +8 -0
- package/dist/types/checkpoint.js.map +1 -0
- package/dist/types.d.ts +526 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +58 -0
- package/dist/types.js.map +1 -0
- package/package.json +46 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hnsw-index.js","sourceRoot":"","sources":["../src/hnsw-index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export interface HnswSearchResult {
|
|
2
|
+
id: string;
|
|
3
|
+
score: number;
|
|
4
|
+
}
|
|
5
|
+
export declare class HnswLite {
|
|
6
|
+
vectors: Map<string, Float32Array<ArrayBufferLike>>;
|
|
7
|
+
neighbors: Map<string, Set<string>>;
|
|
8
|
+
tombstones: Set<string>;
|
|
9
|
+
private readonly dimensions;
|
|
10
|
+
private readonly maxNeighbors;
|
|
11
|
+
private readonly efConstruction;
|
|
12
|
+
private readonly metric;
|
|
13
|
+
private entryPoint;
|
|
14
|
+
constructor(dimensions: number, m: number, efConstruction: number, metric: string);
|
|
15
|
+
get size(): number;
|
|
16
|
+
get tombstoneCount(): number;
|
|
17
|
+
add(id: string, vector: Float32Array): void;
|
|
18
|
+
remove(id: string): void;
|
|
19
|
+
private _rebuildIndex;
|
|
20
|
+
search(query: Float32Array, k: number, threshold?: number): HnswSearchResult[];
|
|
21
|
+
private bruteForce;
|
|
22
|
+
private findNearest;
|
|
23
|
+
private pruneNeighbors;
|
|
24
|
+
serialize(): object;
|
|
25
|
+
static deserialize(data: ReturnType<HnswLite['serialize']>): HnswLite;
|
|
26
|
+
private similarity;
|
|
27
|
+
}
|
|
28
|
+
export declare function cosineSimilarity(a: Float32Array, b: Float32Array): number;
|
|
29
|
+
//# sourceMappingURL=hnsw-lite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hnsw-lite.d.ts","sourceRoot":"","sources":["../src/hnsw-lite.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,QAAQ;IACnB,OAAO,6CAAmC;IAC1C,SAAS,2BAAkC;IAC3C,UAAU,cAAqB;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC,OAAO,CAAC,UAAU,CAAqB;gBAE3B,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAOjF,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI;IA+B3C,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAQxB,OAAO,CAAC,aAAa;IAkBrB,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAiE9E,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,cAAc;IAyBtB,SAAS,IAAI,MAAM;IAanB,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,GAAG,QAAQ;IAkBrE,OAAO,CAAC,UAAU;CAKnB;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM,CAWzE"}
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
// Distance metric: defaults to cosine similarity (cosineSimilarity function below).
|
|
2
|
+
// Configurable via the `metric` constructor parameter: 'cosine' (default), 'dot', 'euclidean'.
|
|
3
|
+
// Compatible with learning-service.mjs HNSWIndex which uses cosine similarity exclusively
|
|
4
|
+
// via _cosineSimilarity() in _searchGraph() (distance = 1 - cosineSimilarity).
|
|
5
|
+
// Both return higher-is-better scores in [0, 1] for cosine; HnswLite search() returns
|
|
6
|
+
// { id, score } where score = similarity (not distance), matching HNSWIndex's
|
|
7
|
+
// { patternId, similarity } shape.
|
|
8
|
+
// Verified: 2026-05-17
|
|
9
|
+
export class HnswLite {
|
|
10
|
+
vectors = new Map();
|
|
11
|
+
neighbors = new Map();
|
|
12
|
+
tombstones = new Set();
|
|
13
|
+
dimensions;
|
|
14
|
+
maxNeighbors;
|
|
15
|
+
efConstruction;
|
|
16
|
+
metric;
|
|
17
|
+
// Maintained entry point — updated on add/rebuild so search avoids an O(n) scan
|
|
18
|
+
entryPoint;
|
|
19
|
+
constructor(dimensions, m, efConstruction, metric) {
|
|
20
|
+
this.dimensions = dimensions;
|
|
21
|
+
this.maxNeighbors = m;
|
|
22
|
+
this.efConstruction = efConstruction;
|
|
23
|
+
this.metric = metric;
|
|
24
|
+
}
|
|
25
|
+
get size() {
|
|
26
|
+
return this.vectors.size - this.tombstones.size;
|
|
27
|
+
}
|
|
28
|
+
get tombstoneCount() {
|
|
29
|
+
return this.tombstones.size;
|
|
30
|
+
}
|
|
31
|
+
add(id, vector) {
|
|
32
|
+
if (vector.length !== this.dimensions) {
|
|
33
|
+
throw new RangeError(`Vector dimension mismatch: expected ${this.dimensions}, got ${vector.length}`);
|
|
34
|
+
}
|
|
35
|
+
if (this.vectors.size === 0) {
|
|
36
|
+
this.vectors.set(id, vector);
|
|
37
|
+
this.neighbors.set(id, new Set());
|
|
38
|
+
this.entryPoint = id;
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
// Find nearest BEFORE adding to vectors, to avoid self-inclusion
|
|
42
|
+
const nearest = this.findNearest(vector, this.maxNeighbors);
|
|
43
|
+
this.vectors.set(id, vector);
|
|
44
|
+
const neighborSet = new Set();
|
|
45
|
+
for (const n of nearest) {
|
|
46
|
+
neighborSet.add(n.id);
|
|
47
|
+
const nNeighbors = this.neighbors.get(n.id);
|
|
48
|
+
if (nNeighbors) {
|
|
49
|
+
nNeighbors.add(id);
|
|
50
|
+
if (nNeighbors.size > this.maxNeighbors * 2) {
|
|
51
|
+
this.pruneNeighbors(n.id);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
this.neighbors.set(id, neighborSet);
|
|
56
|
+
}
|
|
57
|
+
remove(id) {
|
|
58
|
+
this.tombstones.add(id);
|
|
59
|
+
// Rebuild if dead-node ratio exceeds 12%
|
|
60
|
+
if (this.vectors.size > 0 && this.tombstones.size / this.vectors.size > 0.12) {
|
|
61
|
+
this._rebuildIndex();
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
_rebuildIndex() {
|
|
65
|
+
for (const id of this.tombstones) {
|
|
66
|
+
this.vectors.delete(id);
|
|
67
|
+
const myNeighbors = this.neighbors.get(id);
|
|
68
|
+
if (myNeighbors) {
|
|
69
|
+
for (const nId of myNeighbors) {
|
|
70
|
+
this.neighbors.get(nId)?.delete(id);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
this.neighbors.delete(id);
|
|
74
|
+
}
|
|
75
|
+
this.tombstones.clear();
|
|
76
|
+
// Re-anchor entry point to a live node after pruning
|
|
77
|
+
if (this.entryPoint === undefined || !this.vectors.has(this.entryPoint)) {
|
|
78
|
+
this.entryPoint = this.vectors.keys().next().value;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
search(query, k, threshold) {
|
|
82
|
+
if (this.vectors.size === 0)
|
|
83
|
+
return [];
|
|
84
|
+
if (this.vectors.size <= k * 2) {
|
|
85
|
+
return this.bruteForce(query, k, threshold);
|
|
86
|
+
}
|
|
87
|
+
const visited = new Set();
|
|
88
|
+
const candidates = [];
|
|
89
|
+
// Use the maintained entry point (O(1)), falling back to a linear scan only if
|
|
90
|
+
// the stored entry point has been tombstoned since the last rebuild.
|
|
91
|
+
let entryId = this.entryPoint && !this.tombstones.has(this.entryPoint)
|
|
92
|
+
? this.entryPoint
|
|
93
|
+
: undefined;
|
|
94
|
+
if (!entryId) {
|
|
95
|
+
// Fallback: pick the first live node and update entryPoint
|
|
96
|
+
for (const [id] of this.vectors) {
|
|
97
|
+
if (!this.tombstones.has(id)) {
|
|
98
|
+
entryId = id;
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
this.entryPoint = entryId;
|
|
103
|
+
}
|
|
104
|
+
if (entryId) {
|
|
105
|
+
// Include the entry point itself in the candidate set — it may be the closest node
|
|
106
|
+
const entryVec = this.vectors.get(entryId);
|
|
107
|
+
if (entryVec) {
|
|
108
|
+
const entryScore = this.similarity(query, entryVec);
|
|
109
|
+
candidates.push({ id: entryId, score: entryScore });
|
|
110
|
+
visited.add(entryId);
|
|
111
|
+
}
|
|
112
|
+
const queue = [entryId];
|
|
113
|
+
let idx = 0;
|
|
114
|
+
while (idx < queue.length && visited.size < this.efConstruction * 2) {
|
|
115
|
+
const currentId = queue[idx++];
|
|
116
|
+
const currentNeighbors = this.neighbors.get(currentId);
|
|
117
|
+
if (!currentNeighbors)
|
|
118
|
+
continue;
|
|
119
|
+
for (const nId of currentNeighbors) {
|
|
120
|
+
if (visited.has(nId))
|
|
121
|
+
continue;
|
|
122
|
+
if (this.tombstones.has(nId))
|
|
123
|
+
continue;
|
|
124
|
+
visited.add(nId);
|
|
125
|
+
const vec = this.vectors.get(nId);
|
|
126
|
+
if (!vec)
|
|
127
|
+
continue;
|
|
128
|
+
const score = this.similarity(query, vec);
|
|
129
|
+
candidates.push({ id: nId, score });
|
|
130
|
+
queue.push(nId);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
candidates.sort((a, b) => b.score - a.score);
|
|
135
|
+
let filtered = candidates;
|
|
136
|
+
if (threshold !== undefined) {
|
|
137
|
+
filtered = filtered.filter(c => c.score >= threshold);
|
|
138
|
+
}
|
|
139
|
+
return filtered.slice(0, k);
|
|
140
|
+
}
|
|
141
|
+
bruteForce(query, k, threshold) {
|
|
142
|
+
const results = [];
|
|
143
|
+
for (const [id, vec] of this.vectors) {
|
|
144
|
+
if (this.tombstones.has(id))
|
|
145
|
+
continue;
|
|
146
|
+
const score = this.similarity(query, vec);
|
|
147
|
+
if (threshold !== undefined && score < threshold)
|
|
148
|
+
continue;
|
|
149
|
+
results.push({ id, score });
|
|
150
|
+
}
|
|
151
|
+
results.sort((a, b) => b.score - a.score);
|
|
152
|
+
return results.slice(0, k);
|
|
153
|
+
}
|
|
154
|
+
findNearest(query, k) {
|
|
155
|
+
return this.bruteForce(query, k);
|
|
156
|
+
}
|
|
157
|
+
pruneNeighbors(id) {
|
|
158
|
+
const myNeighbors = this.neighbors.get(id);
|
|
159
|
+
if (!myNeighbors)
|
|
160
|
+
return;
|
|
161
|
+
const vec = this.vectors.get(id);
|
|
162
|
+
if (!vec)
|
|
163
|
+
return;
|
|
164
|
+
const scored = [];
|
|
165
|
+
for (const nId of myNeighbors) {
|
|
166
|
+
const nVec = this.vectors.get(nId);
|
|
167
|
+
if (!nVec)
|
|
168
|
+
continue;
|
|
169
|
+
scored.push({ id: nId, score: this.similarity(vec, nVec) });
|
|
170
|
+
}
|
|
171
|
+
scored.sort((a, b) => b.score - a.score);
|
|
172
|
+
const keep = new Set(scored.slice(0, this.maxNeighbors).map(s => s.id));
|
|
173
|
+
for (const nId of myNeighbors) {
|
|
174
|
+
if (!keep.has(nId)) {
|
|
175
|
+
myNeighbors.delete(nId);
|
|
176
|
+
this.neighbors.get(nId)?.delete(id); // remove the reverse edge too
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
serialize() {
|
|
181
|
+
return {
|
|
182
|
+
dimensions: this.dimensions,
|
|
183
|
+
maxNeighbors: this.maxNeighbors,
|
|
184
|
+
efConstruction: this.efConstruction,
|
|
185
|
+
metric: this.metric,
|
|
186
|
+
entryPoint: this.entryPoint,
|
|
187
|
+
vectors: Array.from(this.vectors.entries()).map(([id, vec]) => [id, Array.from(vec)]),
|
|
188
|
+
neighbors: Array.from(this.neighbors.entries()).map(([id, nbrs]) => [id, Array.from(nbrs)]),
|
|
189
|
+
tombstones: Array.from(this.tombstones),
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
static deserialize(data) {
|
|
193
|
+
const index = new HnswLite(data.dimensions, data.maxNeighbors, data.efConstruction, data.metric ?? 'cosine');
|
|
194
|
+
index.vectors = new Map(data.vectors.map(([id, vec]) => [id, new Float32Array(vec)]));
|
|
195
|
+
index.neighbors = new Map(data.neighbors.map(([id, nbrs]) => [id, new Set(nbrs)]));
|
|
196
|
+
index.tombstones = new Set(data.tombstones ?? []);
|
|
197
|
+
index.entryPoint = data.entryPoint ?? index.vectors.keys().next().value;
|
|
198
|
+
return index;
|
|
199
|
+
}
|
|
200
|
+
similarity(a, b) {
|
|
201
|
+
if (this.metric === 'dot')
|
|
202
|
+
return dotProduct(a, b);
|
|
203
|
+
if (this.metric === 'euclidean')
|
|
204
|
+
return 1 / (1 + euclideanDistance(a, b));
|
|
205
|
+
return cosineSimilarity(a, b);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
export function cosineSimilarity(a, b) {
|
|
209
|
+
let dot = 0;
|
|
210
|
+
let normA = 0;
|
|
211
|
+
let normB = 0;
|
|
212
|
+
for (let i = 0; i < a.length; i++) {
|
|
213
|
+
dot += a[i] * b[i];
|
|
214
|
+
normA += a[i] * a[i];
|
|
215
|
+
normB += b[i] * b[i];
|
|
216
|
+
}
|
|
217
|
+
if (normA === 0 || normB === 0)
|
|
218
|
+
return 0;
|
|
219
|
+
return dot / (Math.sqrt(normA) * Math.sqrt(normB));
|
|
220
|
+
}
|
|
221
|
+
function dotProduct(a, b) {
|
|
222
|
+
let sum = 0;
|
|
223
|
+
for (let i = 0; i < a.length; i++) {
|
|
224
|
+
sum += a[i] * b[i];
|
|
225
|
+
}
|
|
226
|
+
return sum;
|
|
227
|
+
}
|
|
228
|
+
function euclideanDistance(a, b) {
|
|
229
|
+
let sum = 0;
|
|
230
|
+
for (let i = 0; i < a.length; i++) {
|
|
231
|
+
const d = a[i] - b[i];
|
|
232
|
+
sum += d * d;
|
|
233
|
+
}
|
|
234
|
+
return Math.sqrt(sum);
|
|
235
|
+
}
|
|
236
|
+
//# sourceMappingURL=hnsw-lite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hnsw-lite.js","sourceRoot":"","sources":["../src/hnsw-lite.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HybridBackend - Combines SQLite (structured queries) + AgentDB (vector search)
|
|
3
|
+
*
|
|
4
|
+
* Per ADR-009: "HybridBackend (SQLite + AgentDB) as default"
|
|
5
|
+
* - SQLite for: Structured queries, ACID transactions, exact matches
|
|
6
|
+
* - AgentDB for: Semantic search, vector similarity, RAG
|
|
7
|
+
*
|
|
8
|
+
* @module v1/memory/hybrid-backend
|
|
9
|
+
*/
|
|
10
|
+
import { EventEmitter } from 'node:events';
|
|
11
|
+
import { IMemoryBackend, MemoryEntry, MemoryEntryUpdate, MemoryQuery, SearchOptions, SearchResult, BackendStats, HealthCheckResult, EmbeddingGenerator } from './types.js';
|
|
12
|
+
import { SQLiteBackend, SQLiteBackendConfig } from './sqlite-backend.js';
|
|
13
|
+
import { AgentDBBackend, AgentDBBackendConfig } from './agentdb-backend.js';
|
|
14
|
+
/**
|
|
15
|
+
* Configuration for HybridBackend
|
|
16
|
+
*/
|
|
17
|
+
export interface HybridBackendConfig {
|
|
18
|
+
/** SQLite configuration */
|
|
19
|
+
sqlite?: Partial<SQLiteBackendConfig>;
|
|
20
|
+
/** AgentDB configuration */
|
|
21
|
+
agentdb?: Partial<AgentDBBackendConfig>;
|
|
22
|
+
/** Default namespace */
|
|
23
|
+
defaultNamespace?: string;
|
|
24
|
+
/** Embedding generator function */
|
|
25
|
+
embeddingGenerator?: EmbeddingGenerator;
|
|
26
|
+
/** Query routing strategy */
|
|
27
|
+
routingStrategy?: 'auto' | 'sqlite-first' | 'agentdb-first';
|
|
28
|
+
/** Enable dual-write (write to both backends) */
|
|
29
|
+
dualWrite?: boolean;
|
|
30
|
+
/** Semantic search threshold for hybrid queries */
|
|
31
|
+
semanticThreshold?: number;
|
|
32
|
+
/** Maximum results to fetch from each backend in hybrid queries */
|
|
33
|
+
hybridMaxResults?: number;
|
|
34
|
+
/**
|
|
35
|
+
* Filter semantic search results for prompt-injection patterns.
|
|
36
|
+
* When true, entries whose content matches known injection signatures are
|
|
37
|
+
* removed from results and an `injection:blocked` event is emitted.
|
|
38
|
+
* Source: newinnovation.md §5 — Semantic injection detection
|
|
39
|
+
*/
|
|
40
|
+
filterInjection?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* MemoRAG query rewriter — generates 2-3 reformulated sub-queries before HNSW.
|
|
43
|
+
*
|
|
44
|
+
* When provided, `querySemantic()` calls this function on the original query text
|
|
45
|
+
* to produce alternative formulations (e.g. more specific, paraphrased, or
|
|
46
|
+
* keyword-expanded variants). Each sub-query is embedded and searched independently;
|
|
47
|
+
* results are fused using Reciprocal Rank Fusion (RRF).
|
|
48
|
+
*
|
|
49
|
+
* Use a cheap LLM call (Haiku) or a deterministic paraphrase function.
|
|
50
|
+
* Source: arXiv:2409.05591 — MemoRAG (TheWebConf 2025)
|
|
51
|
+
*/
|
|
52
|
+
memoragRewriter?: (query: string) => Promise<string[]>;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Structured Query Interface
|
|
56
|
+
* Optimized for SQLite's strengths
|
|
57
|
+
*/
|
|
58
|
+
export interface StructuredQuery {
|
|
59
|
+
/** Exact key match */
|
|
60
|
+
key?: string;
|
|
61
|
+
/** Key prefix match */
|
|
62
|
+
keyPrefix?: string;
|
|
63
|
+
/** Namespace filter */
|
|
64
|
+
namespace?: string;
|
|
65
|
+
/** Owner filter */
|
|
66
|
+
ownerId?: string;
|
|
67
|
+
/** Type filter */
|
|
68
|
+
type?: string;
|
|
69
|
+
/** Time range filters */
|
|
70
|
+
createdAfter?: number;
|
|
71
|
+
createdBefore?: number;
|
|
72
|
+
updatedAfter?: number;
|
|
73
|
+
updatedBefore?: number;
|
|
74
|
+
/** Pagination */
|
|
75
|
+
limit?: number;
|
|
76
|
+
offset?: number;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Semantic Query Interface
|
|
80
|
+
* Optimized for AgentDB's vector search
|
|
81
|
+
*/
|
|
82
|
+
export interface SemanticQuery {
|
|
83
|
+
/** Content to search for (will be embedded) */
|
|
84
|
+
content?: string;
|
|
85
|
+
/** Pre-computed embedding */
|
|
86
|
+
embedding?: Float32Array;
|
|
87
|
+
/** Number of results */
|
|
88
|
+
k?: number;
|
|
89
|
+
/** Similarity threshold (0-1) */
|
|
90
|
+
threshold?: number;
|
|
91
|
+
/** Additional filters */
|
|
92
|
+
filters?: Partial<MemoryQuery>;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Hybrid Query Interface
|
|
96
|
+
* Combines structured + semantic search
|
|
97
|
+
*/
|
|
98
|
+
export interface HybridQuery {
|
|
99
|
+
/** Semantic component */
|
|
100
|
+
semantic: SemanticQuery;
|
|
101
|
+
/** Structured component */
|
|
102
|
+
structured?: StructuredQuery;
|
|
103
|
+
/** How to combine results */
|
|
104
|
+
combineStrategy?: 'union' | 'intersection' | 'semantic-first' | 'structured-first';
|
|
105
|
+
/** Weights for score combination */
|
|
106
|
+
weights?: {
|
|
107
|
+
semantic: number;
|
|
108
|
+
structured: number;
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* HybridBackend Implementation
|
|
113
|
+
*
|
|
114
|
+
* Intelligently routes queries between SQLite and AgentDB:
|
|
115
|
+
* - Exact matches, prefix queries → SQLite
|
|
116
|
+
* - Semantic search, similarity → AgentDB
|
|
117
|
+
* - Complex hybrid queries → Both backends with intelligent merging
|
|
118
|
+
*/
|
|
119
|
+
export declare class HybridBackend extends EventEmitter implements IMemoryBackend {
|
|
120
|
+
private sqlite;
|
|
121
|
+
private agentdb;
|
|
122
|
+
private config;
|
|
123
|
+
private initialized;
|
|
124
|
+
/** Lazy MemoryGraph for HippoRAG PPR re-ranking */
|
|
125
|
+
private memoryGraph;
|
|
126
|
+
private stats;
|
|
127
|
+
constructor(config?: HybridBackendConfig);
|
|
128
|
+
/**
|
|
129
|
+
* Initialize both backends
|
|
130
|
+
*/
|
|
131
|
+
initialize(): Promise<void>;
|
|
132
|
+
/**
|
|
133
|
+
* Shutdown both backends
|
|
134
|
+
*/
|
|
135
|
+
shutdown(): Promise<void>;
|
|
136
|
+
/**
|
|
137
|
+
* Store in both backends (dual-write for consistency).
|
|
138
|
+
*
|
|
139
|
+
* A-MEM auto-linking: after writing, HNSW-searches for the top-3 most similar
|
|
140
|
+
* existing entries and adds bidirectional `references` edges between them and
|
|
141
|
+
* the new entry. Only runs when an `embeddingGenerator` is configured.
|
|
142
|
+
* Source: arXiv:2409.11987 (A-MEM — Zettelkasten-style agent memory)
|
|
143
|
+
*/
|
|
144
|
+
store(entry: MemoryEntry): Promise<void>;
|
|
145
|
+
/**
|
|
146
|
+
* A-MEM bidirectional reference linking.
|
|
147
|
+
* Finds the top-3 semantically similar existing entries and creates
|
|
148
|
+
* `references` edges in both directions.
|
|
149
|
+
*/
|
|
150
|
+
private aMemAutoLink;
|
|
151
|
+
/**
|
|
152
|
+
* Get from AgentDB (has caching enabled).
|
|
153
|
+
*
|
|
154
|
+
* Collaborative memory promotion: when `agentId` is supplied, also notifies
|
|
155
|
+
* the SQLite backend so it can track the read and promote the entry's
|
|
156
|
+
* AccessLevel to 'team' once 3+ distinct agents have accessed it.
|
|
157
|
+
* Source: newinnovation.md §2.7 — memory access-level promotion.
|
|
158
|
+
*/
|
|
159
|
+
get(id: string, agentId?: string): Promise<MemoryEntry | null>;
|
|
160
|
+
/**
|
|
161
|
+
* Get by key (SQLite optimized for exact matches)
|
|
162
|
+
*/
|
|
163
|
+
getByKey(namespace: string, key: string): Promise<MemoryEntry | null>;
|
|
164
|
+
/**
|
|
165
|
+
* Update in both backends
|
|
166
|
+
*/
|
|
167
|
+
update(id: string, update: MemoryEntryUpdate): Promise<MemoryEntry | null>;
|
|
168
|
+
/**
|
|
169
|
+
* Delete from both backends
|
|
170
|
+
*/
|
|
171
|
+
delete(id: string): Promise<boolean>;
|
|
172
|
+
/**
|
|
173
|
+
* Query routing - semantic goes to AgentDB, structured to SQLite
|
|
174
|
+
*/
|
|
175
|
+
query(query: MemoryQuery): Promise<MemoryEntry[]>;
|
|
176
|
+
/**
|
|
177
|
+
* Structured queries (SQL)
|
|
178
|
+
* Routes to SQLite for optimal performance
|
|
179
|
+
*/
|
|
180
|
+
queryStructured(query: StructuredQuery): Promise<MemoryEntry[]>;
|
|
181
|
+
/**
|
|
182
|
+
* Apply injection filtering and structured field filters to a set of entries.
|
|
183
|
+
* Used by the MemoRAG path (RRF-fused results) and as a shared post-processing step.
|
|
184
|
+
*/
|
|
185
|
+
private postProcessSemanticResults;
|
|
186
|
+
/**
|
|
187
|
+
* Reciprocal Rank Fusion — merge multiple ranked result lists.
|
|
188
|
+
* Score for entry i in list j: 1 / (k + rank_j(i)) where k=60 (standard).
|
|
189
|
+
* Source: Cormack et al., "Reciprocal Rank Fusion outperforms Condorcet and individual
|
|
190
|
+
* Rank Learning Methods" (SIGIR 2009). Used by MemoRAG sub-query fusion.
|
|
191
|
+
*/
|
|
192
|
+
private rrfFuse;
|
|
193
|
+
/**
|
|
194
|
+
* Semantic queries (vector)
|
|
195
|
+
* Routes to AgentDB for HNSW-based vector search.
|
|
196
|
+
*
|
|
197
|
+
* MemoRAG query rewriting (arXiv:2409.05591): when `memoragRewriter` is configured
|
|
198
|
+
* and `query.content` is present, generates 2-3 reformulated sub-queries, embeds
|
|
199
|
+
* each, searches HNSW independently, then fuses with Reciprocal Rank Fusion (RRF)
|
|
200
|
+
* before HippoRAG PPR re-ranking.
|
|
201
|
+
*/
|
|
202
|
+
querySemantic(query: SemanticQuery): Promise<MemoryEntry[]>;
|
|
203
|
+
/**
|
|
204
|
+
* Hybrid queries (combine both)
|
|
205
|
+
* Intelligently merges results from both backends
|
|
206
|
+
*/
|
|
207
|
+
queryHybrid(query: HybridQuery): Promise<MemoryEntry[]>;
|
|
208
|
+
/**
|
|
209
|
+
* Semantic vector search (routes to AgentDB)
|
|
210
|
+
*/
|
|
211
|
+
search(embedding: Float32Array, options: SearchOptions): Promise<SearchResult[]>;
|
|
212
|
+
/**
|
|
213
|
+
* Bulk insert to both backends
|
|
214
|
+
*/
|
|
215
|
+
bulkInsert(entries: MemoryEntry[]): Promise<void>;
|
|
216
|
+
/**
|
|
217
|
+
* Bulk delete from both backends
|
|
218
|
+
*/
|
|
219
|
+
bulkDelete(ids: string[]): Promise<number>;
|
|
220
|
+
/**
|
|
221
|
+
* Count entries (use SQLite for efficiency)
|
|
222
|
+
*/
|
|
223
|
+
count(namespace?: string): Promise<number>;
|
|
224
|
+
/**
|
|
225
|
+
* List namespaces (use SQLite)
|
|
226
|
+
*/
|
|
227
|
+
listNamespaces(): Promise<string[]>;
|
|
228
|
+
/**
|
|
229
|
+
* Clear namespace in both backends
|
|
230
|
+
*/
|
|
231
|
+
clearNamespace(namespace: string): Promise<number>;
|
|
232
|
+
/**
|
|
233
|
+
* Get combined statistics from both backends
|
|
234
|
+
*/
|
|
235
|
+
getStats(): Promise<BackendStats>;
|
|
236
|
+
/**
|
|
237
|
+
* Health check for both backends
|
|
238
|
+
*/
|
|
239
|
+
healthCheck(): Promise<HealthCheckResult>;
|
|
240
|
+
/**
|
|
241
|
+
* Auto-route queries based on properties
|
|
242
|
+
*/
|
|
243
|
+
private autoRoute;
|
|
244
|
+
/**
|
|
245
|
+
* Internal hybrid query implementation
|
|
246
|
+
*/
|
|
247
|
+
private queryHybridInternal;
|
|
248
|
+
/**
|
|
249
|
+
* Combine results using union (all unique results)
|
|
250
|
+
*/
|
|
251
|
+
private combineUnion;
|
|
252
|
+
/**
|
|
253
|
+
* Combine results using intersection (only common results)
|
|
254
|
+
*/
|
|
255
|
+
private combineIntersection;
|
|
256
|
+
/**
|
|
257
|
+
* Semantic-first: Prefer semantic results, add structured if not present
|
|
258
|
+
*/
|
|
259
|
+
private combineSemanticFirst;
|
|
260
|
+
/**
|
|
261
|
+
* Structured-first: Prefer structured results, add semantic if not present
|
|
262
|
+
*/
|
|
263
|
+
private combineStructuredFirst;
|
|
264
|
+
/**
|
|
265
|
+
* Record feedback for a memory entry.
|
|
266
|
+
* Delegates to AgentDB's recordFeedback when available.
|
|
267
|
+
* Gracefully degrades to a no-op when AgentDB is unavailable.
|
|
268
|
+
*/
|
|
269
|
+
recordFeedback(entryId: string, feedback: {
|
|
270
|
+
score: number;
|
|
271
|
+
label?: string;
|
|
272
|
+
context?: Record<string, unknown>;
|
|
273
|
+
}): Promise<boolean>;
|
|
274
|
+
/**
|
|
275
|
+
* Verify a witness chain for a memory entry.
|
|
276
|
+
* Delegates to AgentDB's verifyWitnessChain when available.
|
|
277
|
+
*/
|
|
278
|
+
verifyWitnessChain(entryId: string): Promise<{
|
|
279
|
+
valid: boolean;
|
|
280
|
+
chainLength: number;
|
|
281
|
+
errors: string[];
|
|
282
|
+
}>;
|
|
283
|
+
/**
|
|
284
|
+
* Get the witness chain for a memory entry.
|
|
285
|
+
* Delegates to AgentDB's getWitnessChain when available.
|
|
286
|
+
*/
|
|
287
|
+
getWitnessChain(entryId: string): Promise<Array<{
|
|
288
|
+
hash: string;
|
|
289
|
+
timestamp: number;
|
|
290
|
+
operation: string;
|
|
291
|
+
}>>;
|
|
292
|
+
/**
|
|
293
|
+
* Get underlying backends for advanced operations
|
|
294
|
+
*/
|
|
295
|
+
getSQLiteBackend(): SQLiteBackend;
|
|
296
|
+
getAgentDBBackend(): AgentDBBackend;
|
|
297
|
+
}
|
|
298
|
+
export default HybridBackend;
|
|
299
|
+
//# sourceMappingURL=hybrid-backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hybrid-backend.d.ts","sourceRoot":"","sources":["../src/hybrid-backend.ts"],"names":[],"mappings":"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"}
|