@monoes/memory 1.0.4 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -59,8 +59,6 @@ export { SQLiteBackend } from './sqlite-backend.js';
59
59
  export type { SQLiteBackendConfig } from './sqlite-backend.js';
60
60
  export { SqlJsBackend } from './sqljs-backend.js';
61
61
  export type { SqlJsBackendConfig } from './sqljs-backend.js';
62
- export { DiskAnnBackend } from './diskann-backend.js';
63
- export type { DiskAnnBackendConfig } from './diskann-backend.js';
64
62
  export { HNSWIndex } from './hnsw-index.js';
65
63
  export { CacheManager, TieredCacheManager } from './cache-manager.js';
66
64
  export { QueryBuilder, query, QueryTemplates } from './query-builder.js';
@@ -70,10 +68,9 @@ export { createDatabase, getPlatformInfo, getAvailableProviders } from './databa
70
68
  export type { DatabaseProvider, DatabaseOptions } from './database-provider.js';
71
69
  export { SwarmCheckpointer } from './checkpointer.js';
72
70
  export type { AgentState, SwarmCheckpoint, CheckpointMeta } from './types/checkpoint.js';
73
- export { TierManager } from './tier-manager.js';
74
71
  export { ShortTermMemory, EntityMemory, ContextualMemory } from './tiers/index.js';
75
72
  export type { EntityFact, SessionSummary } from './tiers/index.js';
76
- export type { MemoryTier, TierManagerConfig } from './types.js';
73
+ export type { MemoryTier } from './types.js';
77
74
  export { EpisodicStore } from './episodic-store.js';
78
75
  export type { Episode, EpisodicStoreConfig } from './types.js';
79
76
  export { chunkDocument, KnowledgeStore, KnowledgeRetriever } from './knowledge/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -57,7 +57,6 @@ export { ControllerRegistry, INIT_LEVELS } from './controller-registry.js';
57
57
  export { LanceDBBackend } from './lancedb-backend.js';
58
58
  export { SQLiteBackend } from './sqlite-backend.js';
59
59
  export { SqlJsBackend } from './sqljs-backend.js';
60
- export { DiskAnnBackend } from './diskann-backend.js';
61
60
  export { HNSWIndex } from './hnsw-index.js';
62
61
  export { CacheManager, TieredCacheManager } from './cache-manager.js';
63
62
  export { QueryBuilder, query, QueryTemplates } from './query-builder.js';
@@ -66,7 +65,6 @@ export { createDatabase, getPlatformInfo, getAvailableProviders } from './databa
66
65
  // ===== Graph Checkpointing (Task 08) =====
67
66
  export { SwarmCheckpointer } from './checkpointer.js';
68
67
  // ===== Multi-Tier Memory (Task 09) =====
69
- export { TierManager } from './tier-manager.js';
70
68
  export { ShortTermMemory, EntityMemory, ContextualMemory } from './tiers/index.js';
71
69
  // ===== Episodic Memory (Task 11) =====
72
70
  export { EpisodicStore } from './episodic-store.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@monoes/memory",
3
- "version": "1.0.4",
3
+ "version": "1.0.5",
4
4
  "type": "module",
5
5
  "description": "Memory module - LanceDB backend, ANN indexing, vector search, hybrid SQLite+LanceDB backend (ADR-009)",
6
6
  "main": "dist/index.js",
@@ -1,126 +0,0 @@
1
- /**
2
- * DiskAnnBackend — SSD-resident ANN graph with in-memory compressed vectors
3
- *
4
- * Architecture (faithful to DiskANN / Vamana; source: arXiv:2305.04359):
5
- * (a) Adjacency-list graph persisted as a separate JSON file on disk
6
- * (NOT the SQLite rows — a distinct index artifact)
7
- * (b) Int8-quantised vectors kept in memory for fast candidate beam search
8
- * (scalar quantisation: float32 × 127 → int8, ~4× memory reduction)
9
- * (c) Full-precision re-ranking: for each beam candidate, load the original
10
- * Float32 embedding from the delegate backend and rescore with cosine
11
- *
12
- * This backend wraps any IMemoryBackend (delegate) and delegates all CRUD
13
- * operations to it, overriding only `search()` with the DiskANN algorithm.
14
- *
15
- * @module v1/memory/diskann-backend
16
- */
17
- import type { IMemoryBackend, MemoryEntry, MemoryEntryUpdate, MemoryQuery, SearchOptions, SearchResult, BackendStats, HealthCheckResult } from './types.js';
18
- export interface DiskAnnBackendConfig {
19
- /**
20
- * Filesystem path for the persisted adjacency-list graph file.
21
- * Must be different from the delegate's database path.
22
- */
23
- graphPath: string;
24
- /**
25
- * Beam width (ef) — number of candidates to maintain during graph traversal.
26
- * Higher values trade speed for recall. Default: 32.
27
- */
28
- beamWidth?: number;
29
- /**
30
- * Maximum outgoing edges per node (M). Default: 12.
31
- */
32
- maxConnections?: number;
33
- /**
34
- * How many beam candidates to fetch before full-precision re-ranking.
35
- * Final result count is `k`; this is `k × rerankMultiplier`. Default: 3.
36
- */
37
- rerankMultiplier?: number;
38
- }
39
- /**
40
- * DiskAnnBackend
41
- *
42
- * Wraps any IMemoryBackend and replaces the `search()` method with a three-phase
43
- * DiskANN procedure:
44
- * 1. Quantised beam search (Int8 dot products — fast, approximate)
45
- * 2. Full-precision re-ranking (Float32 cosine from delegate.get())
46
- * 3. Threshold filtering and top-k selection
47
- *
48
- * All other IMemoryBackend methods delegate directly to the inner backend.
49
- */
50
- export declare class DiskAnnBackend implements IMemoryBackend {
51
- private readonly delegate;
52
- /** Adjacency list: nodeId → sorted neighbour IDs */
53
- private readonly graph;
54
- /**
55
- * Int8 scalar-quantised embeddings for beam search.
56
- * Kept entirely in memory — the critical DiskANN optimisation that avoids
57
- * loading full-precision vectors during candidate generation.
58
- */
59
- private readonly qvecs;
60
- /** Random walk entry point into the graph */
61
- private entryPoint;
62
- /** Whether the in-memory graph differs from the disk file */
63
- private graphDirty;
64
- private readonly graphPath;
65
- private readonly beamWidth;
66
- private readonly maxConnections;
67
- private readonly rerankMultiplier;
68
- constructor(delegate: IMemoryBackend, config: DiskAnnBackendConfig);
69
- initialize(): Promise<void>;
70
- shutdown(): Promise<void>;
71
- store(entry: MemoryEntry): Promise<void>;
72
- get(id: string): Promise<MemoryEntry | null>;
73
- getByKey(namespace: string, key: string): Promise<MemoryEntry | null>;
74
- update(id: string, update: MemoryEntryUpdate): Promise<MemoryEntry | null>;
75
- delete(id: string): Promise<boolean>;
76
- query(q: MemoryQuery): Promise<MemoryEntry[]>;
77
- bulkInsert(entries: MemoryEntry[]): Promise<void>;
78
- bulkDelete(ids: string[]): Promise<number>;
79
- count(namespace?: string): Promise<number>;
80
- listNamespaces(): Promise<string[]>;
81
- clearNamespace(namespace: string): Promise<number>;
82
- getStats(): Promise<BackendStats>;
83
- healthCheck(): Promise<HealthCheckResult>;
84
- /**
85
- * Vector similarity search using the DiskANN beam algorithm.
86
- *
87
- * Phase (b): beam traversal over compressed Int8 vectors (fast, no I/O)
88
- * Phase (c): full-precision cosine re-ranking via delegate.get() (accurate)
89
- *
90
- * Falls back to delegate.search() when no entries have been indexed yet.
91
- */
92
- search(queryVec: Float32Array, options: SearchOptions): Promise<SearchResult[]>;
93
- /** Add or update a node in the in-memory ANN index */
94
- private indexEntry;
95
- /** Remove a node and all its references from the index */
96
- private removeFromIndex;
97
- /** Scan all existing qvecs and return the k nearest to `qvec` */
98
- private greedyNearestNeighbors;
99
- /**
100
- * Beam search over the compressed-vector graph.
101
- *
102
- * Starts from `entryPoint`, expands neighbours BFS-style, and scores each
103
- * visited node with Int8 dot products. Returns up to `candidateCount` IDs
104
- * sorted by descending similarity.
105
- */
106
- private beamSearch;
107
- /** Scalar Int8 quantisation: float32 × 127 → clamped int8 */
108
- private quantize;
109
- /** Int8 dot product (used for beam search scoring) */
110
- private dotProduct;
111
- /** Full-precision cosine similarity (used for re-ranking) */
112
- private cosine;
113
- /**
114
- * Load the persisted adjacency list from disk.
115
- * Called during initialize(). A missing or corrupt file is silently ignored;
116
- * the index will be rebuilt as entries are stored.
117
- */
118
- private loadGraph;
119
- /**
120
- * Persist the adjacency list to disk.
121
- * Only writes when the graph has changed since the last persist.
122
- * Errors are non-fatal; the graph will be rebuilt on next startup.
123
- */
124
- private persistGraph;
125
- }
126
- //# sourceMappingURL=diskann-backend.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"diskann-backend.d.ts","sourceRoot":"","sources":["../src/diskann-backend.ts"],"names":[],"mappings":"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"}
@@ -1,336 +0,0 @@
1
- /**
2
- * DiskAnnBackend — SSD-resident ANN graph with in-memory compressed vectors
3
- *
4
- * Architecture (faithful to DiskANN / Vamana; source: arXiv:2305.04359):
5
- * (a) Adjacency-list graph persisted as a separate JSON file on disk
6
- * (NOT the SQLite rows — a distinct index artifact)
7
- * (b) Int8-quantised vectors kept in memory for fast candidate beam search
8
- * (scalar quantisation: float32 × 127 → int8, ~4× memory reduction)
9
- * (c) Full-precision re-ranking: for each beam candidate, load the original
10
- * Float32 embedding from the delegate backend and rescore with cosine
11
- *
12
- * This backend wraps any IMemoryBackend (delegate) and delegates all CRUD
13
- * operations to it, overriding only `search()` with the DiskANN algorithm.
14
- *
15
- * @module v1/memory/diskann-backend
16
- */
17
- import { writeFile, readFile, mkdir } from 'node:fs/promises';
18
- import { existsSync } from 'node:fs';
19
- import { dirname } from 'node:path';
20
- // ============================================================
21
- // DiskAnnBackend
22
- // ============================================================
23
- /**
24
- * DiskAnnBackend
25
- *
26
- * Wraps any IMemoryBackend and replaces the `search()` method with a three-phase
27
- * DiskANN procedure:
28
- * 1. Quantised beam search (Int8 dot products — fast, approximate)
29
- * 2. Full-precision re-ranking (Float32 cosine from delegate.get())
30
- * 3. Threshold filtering and top-k selection
31
- *
32
- * All other IMemoryBackend methods delegate directly to the inner backend.
33
- */
34
- export class DiskAnnBackend {
35
- delegate;
36
- /** Adjacency list: nodeId → sorted neighbour IDs */
37
- graph = new Map();
38
- /**
39
- * Int8 scalar-quantised embeddings for beam search.
40
- * Kept entirely in memory — the critical DiskANN optimisation that avoids
41
- * loading full-precision vectors during candidate generation.
42
- */
43
- qvecs = new Map();
44
- /** Random walk entry point into the graph */
45
- entryPoint;
46
- /** Whether the in-memory graph differs from the disk file */
47
- graphDirty = false;
48
- graphPath;
49
- beamWidth;
50
- maxConnections;
51
- rerankMultiplier;
52
- constructor(delegate, config) {
53
- this.delegate = delegate;
54
- this.graphPath = config.graphPath;
55
- this.beamWidth = config.beamWidth ?? 32;
56
- this.maxConnections = config.maxConnections ?? 12;
57
- this.rerankMultiplier = config.rerankMultiplier ?? 3;
58
- }
59
- // ----------------------------------------------------------------
60
- // Lifecycle
61
- // ----------------------------------------------------------------
62
- async initialize() {
63
- await this.delegate.initialize();
64
- await this.loadGraph();
65
- }
66
- async shutdown() {
67
- await this.persistGraph();
68
- await this.delegate.shutdown();
69
- }
70
- // ----------------------------------------------------------------
71
- // CRUD — fully delegated
72
- // ----------------------------------------------------------------
73
- async store(entry) {
74
- await this.delegate.store(entry);
75
- this.indexEntry(entry);
76
- }
77
- async get(id) {
78
- return this.delegate.get(id);
79
- }
80
- async getByKey(namespace, key) {
81
- return this.delegate.getByKey(namespace, key);
82
- }
83
- async update(id, update) {
84
- return this.delegate.update(id, update);
85
- }
86
- async delete(id) {
87
- const ok = await this.delegate.delete(id);
88
- if (ok)
89
- this.removeFromIndex(id);
90
- return ok;
91
- }
92
- async query(q) {
93
- return this.delegate.query(q);
94
- }
95
- async bulkInsert(entries) {
96
- await this.delegate.bulkInsert(entries);
97
- for (const e of entries)
98
- this.indexEntry(e);
99
- }
100
- async bulkDelete(ids) {
101
- const n = await this.delegate.bulkDelete(ids);
102
- for (const id of ids)
103
- this.removeFromIndex(id);
104
- return n;
105
- }
106
- async count(namespace) {
107
- return this.delegate.count(namespace);
108
- }
109
- async listNamespaces() {
110
- return this.delegate.listNamespaces();
111
- }
112
- async clearNamespace(namespace) {
113
- const n = await this.delegate.clearNamespace(namespace);
114
- // Rebuild index — we don't track namespace per node
115
- this.graph.clear();
116
- this.qvecs.clear();
117
- this.entryPoint = undefined;
118
- this.graphDirty = true;
119
- return n;
120
- }
121
- async getStats() {
122
- return this.delegate.getStats();
123
- }
124
- async healthCheck() {
125
- return this.delegate.healthCheck();
126
- }
127
- // ----------------------------------------------------------------
128
- // search() — DiskANN three-phase algorithm
129
- // ----------------------------------------------------------------
130
- /**
131
- * Vector similarity search using the DiskANN beam algorithm.
132
- *
133
- * Phase (b): beam traversal over compressed Int8 vectors (fast, no I/O)
134
- * Phase (c): full-precision cosine re-ranking via delegate.get() (accurate)
135
- *
136
- * Falls back to delegate.search() when no entries have been indexed yet.
137
- */
138
- async search(queryVec, options) {
139
- if (this.qvecs.size === 0) {
140
- return this.delegate.search(queryVec, options);
141
- }
142
- const k = options.k;
143
- const threshold = options.threshold ?? 0;
144
- // Phase (b): beam search with Int8-quantised vectors
145
- const qQuery = this.quantize(queryVec);
146
- const candidateIds = this.beamSearch(qQuery, k * this.rerankMultiplier);
147
- // Phase (c): full-precision re-ranking by loading embeddings from disk/delegate
148
- const results = [];
149
- for (const id of candidateIds) {
150
- const entry = await this.delegate.get(id);
151
- if (!entry?.embedding)
152
- continue;
153
- const score = this.cosine(queryVec, entry.embedding);
154
- if (score >= threshold) {
155
- results.push({ entry, score, distance: 1 - score });
156
- }
157
- }
158
- results.sort((a, b) => b.score - a.score);
159
- return results.slice(0, k);
160
- }
161
- // ----------------------------------------------------------------
162
- // Index management (private)
163
- // ----------------------------------------------------------------
164
- /** Add or update a node in the in-memory ANN index */
165
- indexEntry(entry) {
166
- if (!entry.embedding)
167
- return;
168
- const qvec = this.quantize(entry.embedding);
169
- this.qvecs.set(entry.id, qvec);
170
- // Greedy M-nearest-neighbour insertion (O(n) scan over compressed vectors)
171
- const neighbors = this.greedyNearestNeighbors(entry.id, qvec, this.maxConnections);
172
- this.graph.set(entry.id, neighbors);
173
- // Add reverse edges (backlinks) — keep outdegree bounded
174
- for (const nid of neighbors) {
175
- let nEdges = this.graph.get(nid);
176
- if (!nEdges) {
177
- nEdges = [];
178
- this.graph.set(nid, nEdges);
179
- }
180
- if (!nEdges.includes(entry.id) && nEdges.length < this.maxConnections * 2) {
181
- nEdges.push(entry.id);
182
- }
183
- }
184
- if (!this.entryPoint)
185
- this.entryPoint = entry.id;
186
- this.graphDirty = true;
187
- }
188
- /** Remove a node and all its references from the index */
189
- removeFromIndex(id) {
190
- this.qvecs.delete(id);
191
- const neighbors = this.graph.get(id) ?? [];
192
- this.graph.delete(id);
193
- // Remove backreferences from neighbours
194
- for (const nid of neighbors) {
195
- const edges = this.graph.get(nid);
196
- if (edges) {
197
- this.graph.set(nid, edges.filter(e => e !== id));
198
- }
199
- }
200
- if (this.entryPoint === id) {
201
- this.entryPoint = this.graph.keys().next().value;
202
- }
203
- this.graphDirty = true;
204
- }
205
- /** Scan all existing qvecs and return the k nearest to `qvec` */
206
- greedyNearestNeighbors(excludeId, qvec, k) {
207
- const scored = [];
208
- for (const [id, vec] of this.qvecs) {
209
- if (id === excludeId)
210
- continue;
211
- scored.push({ id, score: this.dotProduct(qvec, vec) });
212
- }
213
- scored.sort((a, b) => b.score - a.score);
214
- const ids = [];
215
- const returnCount = Math.min(k, scored.length);
216
- for (let i = 0; i < returnCount; i++)
217
- ids.push(scored[i].id);
218
- return ids;
219
- }
220
- /**
221
- * Beam search over the compressed-vector graph.
222
- *
223
- * Starts from `entryPoint`, expands neighbours BFS-style, and scores each
224
- * visited node with Int8 dot products. Returns up to `candidateCount` IDs
225
- * sorted by descending similarity.
226
- */
227
- beamSearch(qQuery, candidateCount) {
228
- if (!this.entryPoint || this.qvecs.size === 0)
229
- return [];
230
- const visited = new Set();
231
- const scored = [];
232
- const frontier = [this.entryPoint];
233
- visited.add(this.entryPoint);
234
- const maxVisit = Math.min(this.beamWidth * 4, this.qvecs.size);
235
- while (frontier.length > 0 && visited.size <= maxVisit) {
236
- const current = frontier.shift();
237
- const qvec = this.qvecs.get(current);
238
- if (!qvec)
239
- continue;
240
- scored.push({ id: current, score: this.dotProduct(qQuery, qvec) });
241
- // Expand graph neighbours
242
- for (const nid of (this.graph.get(current) ?? [])) {
243
- if (!visited.has(nid)) {
244
- visited.add(nid);
245
- frontier.push(nid);
246
- }
247
- }
248
- }
249
- scored.sort((a, b) => b.score - a.score);
250
- const ids = [];
251
- const returnCount = Math.min(candidateCount, scored.length);
252
- for (let i = 0; i < returnCount; i++)
253
- ids.push(scored[i].id);
254
- return ids;
255
- }
256
- // ----------------------------------------------------------------
257
- // Quantisation and distance helpers
258
- // ----------------------------------------------------------------
259
- /** Scalar Int8 quantisation: float32 × 127 → clamped int8 */
260
- quantize(vec) {
261
- const q = new Int8Array(vec.length);
262
- for (let i = 0; i < vec.length; i++) {
263
- q[i] = Math.max(-127, Math.min(127, Math.round(vec[i] * 127)));
264
- }
265
- return q;
266
- }
267
- /** Int8 dot product (used for beam search scoring) */
268
- dotProduct(a, b) {
269
- const len = Math.min(a.length, b.length);
270
- let sum = 0;
271
- for (let i = 0; i < len; i++)
272
- sum += a[i] * b[i];
273
- return sum;
274
- }
275
- /** Full-precision cosine similarity (used for re-ranking) */
276
- cosine(a, b) {
277
- const len = Math.min(a.length, b.length);
278
- let dot = 0, normA = 0, normB = 0;
279
- for (let i = 0; i < len; i++) {
280
- dot += a[i] * b[i];
281
- normA += a[i] * a[i];
282
- normB += b[i] * b[i];
283
- }
284
- const denom = Math.sqrt(normA) * Math.sqrt(normB);
285
- return denom === 0 ? 0 : dot / denom;
286
- }
287
- // ----------------------------------------------------------------
288
- // Disk persistence (graph adjacency list only — NOT the entry data)
289
- // ----------------------------------------------------------------
290
- /**
291
- * Load the persisted adjacency list from disk.
292
- * Called during initialize(). A missing or corrupt file is silently ignored;
293
- * the index will be rebuilt as entries are stored.
294
- */
295
- async loadGraph() {
296
- if (!existsSync(this.graphPath))
297
- return;
298
- try {
299
- const raw = await readFile(this.graphPath, 'utf8');
300
- const data = JSON.parse(raw);
301
- this.graph.clear();
302
- for (const [id, neighbors] of data.graph) {
303
- this.graph.set(id, neighbors);
304
- }
305
- this.entryPoint = data.entryPoint;
306
- this.graphDirty = false;
307
- }
308
- catch {
309
- // Corrupt file — start with empty graph
310
- }
311
- }
312
- /**
313
- * Persist the adjacency list to disk.
314
- * Only writes when the graph has changed since the last persist.
315
- * Errors are non-fatal; the graph will be rebuilt on next startup.
316
- */
317
- async persistGraph() {
318
- if (!this.graphDirty)
319
- return;
320
- try {
321
- await mkdir(dirname(this.graphPath), { recursive: true });
322
- const data = {
323
- graph: [...this.graph.entries()],
324
- entryPoint: this.entryPoint,
325
- nodeCount: this.graph.size,
326
- savedAt: Date.now(),
327
- };
328
- await writeFile(this.graphPath, JSON.stringify(data), 'utf8');
329
- this.graphDirty = false;
330
- }
331
- catch {
332
- // Non-fatal — graph will be rebuilt on next startup
333
- }
334
- }
335
- }
336
- //# sourceMappingURL=diskann-backend.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"diskann-backend.js","sourceRoot":"","sources":["../src/diskann-backend.ts"],"names":[],"mappings":"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"}
@@ -1,65 +0,0 @@
1
- /**
2
- * PartitionedHNSW — Timestamp-partitioned HNSW sub-indexes for temporal locality
3
- *
4
- * Partitions the HNSW vector index into time-bucket sub-indexes so that recent
5
- * entries are searched first, dramatically reducing average search latency for
6
- * workloads where recency correlates with relevance.
7
- *
8
- * Architecture:
9
- * - Entries are routed to a bucket based on Math.floor(createdAt / bucketMs)
10
- * - Each bucket owns an independent HNSWIndex (lazy-created)
11
- * - Search merges results across buckets, sorted by recency then similarity
12
- * - Old buckets can be evicted once they exceed maxBuckets
13
- *
14
- * Source: ICDE 2025 Timestamp-Partitioned HNSW
15
- *
16
- * @module v1/memory/partitioned-hnsw
17
- */
18
- import type { MemoryEntry } from './types.js';
19
- export interface PartitionedHNSWConfig {
20
- /** Time window per bucket in milliseconds. Default: 1 hour */
21
- bucketMs?: number;
22
- /** Maximum number of buckets to retain in memory. Default: 48 */
23
- maxBuckets?: number;
24
- /** Number of neighbours (ef-construction equivalent). Default: 16 */
25
- k?: number;
26
- }
27
- export interface BucketStats {
28
- bucketKey: number;
29
- entryCount: number;
30
- oldestMs: number;
31
- newestMs: number;
32
- }
33
- export declare class PartitionedHNSW {
34
- private readonly bucketMs;
35
- private readonly maxBuckets;
36
- private readonly k;
37
- /** bucketKey → TimeBucket, ordered newest-first via insertion order */
38
- private readonly buckets;
39
- constructor(config?: PartitionedHNSWConfig);
40
- /** Add a memory entry to its time-bucket. */
41
- add(entry: MemoryEntry): void;
42
- /**
43
- * Search across partitions, newest buckets first.
44
- * Stops early once `limit` results are collected or all buckets exhausted.
45
- *
46
- * @param queryEmbedding - optional query vector (cosine similarity)
47
- * @param textQuery - optional keyword fallback
48
- * @param limit - max results
49
- * @param fromMs - optional lower bound on createdAt (temporal filter)
50
- * @param toMs - optional upper bound on createdAt (temporal filter)
51
- */
52
- search(queryEmbedding: Float32Array | null, textQuery: string | undefined, limit: number, fromMs?: number, toMs?: number): MemoryEntry[];
53
- /**
54
- * Remove an entry from its time-bucket by id and original createdAt timestamp.
55
- * Returns true if the entry was found and removed, false otherwise.
56
- */
57
- remove(id: string, createdAt: number): boolean;
58
- /** Stats per bucket for observability. */
59
- bucketStats(): BucketStats[];
60
- get totalEntries(): number;
61
- private bucketKeyFor;
62
- /** Evict the oldest bucket(s) when we exceed maxBuckets. */
63
- private evictOldBuckets;
64
- }
65
- //# sourceMappingURL=partitioned-hnsw.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"partitioned-hnsw.d.ts","sourceRoot":"","sources":["../src/partitioned-hnsw.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI9C,MAAM,WAAW,qBAAqB;IACpC,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAoFD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAS;IAE3B,uEAAuE;IACvE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;gBAElD,MAAM,GAAE,qBAA0B;IAM9C,6CAA6C;IAC7C,GAAG,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAY7B;;;;;;;;;OASG;IACH,MAAM,CACJ,cAAc,EAAE,YAAY,GAAG,IAAI,EACnC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,GACZ,WAAW,EAAE;IAqChB;;;OAGG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAO9C,0CAA0C;IAC1C,WAAW,IAAI,WAAW,EAAE;IAS5B,IAAI,YAAY,IAAI,MAAM,CAIzB;IAMD,OAAO,CAAC,YAAY;IAIpB,4DAA4D;IAC5D,OAAO,CAAC,eAAe;CAWxB"}
@@ -1,209 +0,0 @@
1
- /**
2
- * PartitionedHNSW — Timestamp-partitioned HNSW sub-indexes for temporal locality
3
- *
4
- * Partitions the HNSW vector index into time-bucket sub-indexes so that recent
5
- * entries are searched first, dramatically reducing average search latency for
6
- * workloads where recency correlates with relevance.
7
- *
8
- * Architecture:
9
- * - Entries are routed to a bucket based on Math.floor(createdAt / bucketMs)
10
- * - Each bucket owns an independent HNSWIndex (lazy-created)
11
- * - Search merges results across buckets, sorted by recency then similarity
12
- * - Old buckets can be evicted once they exceed maxBuckets
13
- *
14
- * Source: ICDE 2025 Timestamp-Partitioned HNSW
15
- *
16
- * @module v1/memory/partitioned-hnsw
17
- */
18
- function cosineSim(a, b) {
19
- if (a.length !== b.length || a.length === 0)
20
- return 0;
21
- let dot = 0;
22
- for (let i = 0; i < a.length; i++)
23
- dot += a[i] * b[i];
24
- // Vectors are pre-normalised, so dot == cosine similarity
25
- return dot;
26
- }
27
- function l2Norm(v) {
28
- let sum = 0;
29
- for (let i = 0; i < v.length; i++)
30
- sum += v[i] * v[i];
31
- const len = Math.sqrt(sum);
32
- if (len === 0)
33
- return v;
34
- const out = new Float32Array(v.length);
35
- for (let i = 0; i < v.length; i++)
36
- out[i] = v[i] / len;
37
- return out;
38
- }
39
- class TimeBucket {
40
- entries = [];
41
- _oldest = Infinity;
42
- _newest = 0;
43
- add(entry) {
44
- const normVec = entry.embedding ? l2Norm(entry.embedding) : null;
45
- this.entries.push({ entry, normVec });
46
- if (entry.createdAt < this._oldest)
47
- this._oldest = entry.createdAt;
48
- if (entry.createdAt > this._newest)
49
- this._newest = entry.createdAt;
50
- }
51
- remove(id) {
52
- const idx = this.entries.findIndex(e => e.entry.id === id);
53
- if (idx === -1)
54
- return false;
55
- const removed = this.entries.splice(idx, 1)[0];
56
- // Recompute _oldest/_newest if the removed entry was an extremum
57
- if (removed.entry.createdAt === this._oldest || removed.entry.createdAt === this._newest) {
58
- this._oldest = Infinity;
59
- this._newest = 0;
60
- for (const e of this.entries) {
61
- if (e.entry.createdAt < this._oldest)
62
- this._oldest = e.entry.createdAt;
63
- if (e.entry.createdAt > this._newest)
64
- this._newest = e.entry.createdAt;
65
- }
66
- }
67
- return true;
68
- }
69
- /** Approximate k-NN by brute-force within the bucket (buckets are small). */
70
- search(queryVec, limit, textQuery) {
71
- const scored = this.entries.map(({ entry, normVec }) => {
72
- let score = 0;
73
- if (queryVec && normVec) {
74
- score = cosineSim(queryVec, normVec);
75
- }
76
- else if (textQuery) {
77
- // Keyword fallback: count overlapping terms
78
- const terms = textQuery.toLowerCase().split(/\s+/);
79
- const content = entry.content.toLowerCase();
80
- const hits = terms.filter(t => content.includes(t)).length;
81
- score = hits / Math.max(terms.length, 1);
82
- }
83
- return { entry, score };
84
- });
85
- scored.sort((a, b) => b.score - a.score);
86
- return scored.slice(0, limit);
87
- }
88
- get size() { return this.entries.length; }
89
- get oldest() { return this.entries.length ? this._oldest : Infinity; }
90
- get newest() { return this.entries.length ? this._newest : 0; }
91
- }
92
- // ===== PartitionedHNSW =====
93
- export class PartitionedHNSW {
94
- bucketMs;
95
- maxBuckets;
96
- k;
97
- /** bucketKey → TimeBucket, ordered newest-first via insertion order */
98
- buckets = new Map();
99
- constructor(config = {}) {
100
- this.bucketMs = config.bucketMs ?? 60 * 60 * 1000; // 1 hour default
101
- this.maxBuckets = config.maxBuckets ?? 48; // 48 hours default retention
102
- this.k = config.k ?? 16;
103
- }
104
- /** Add a memory entry to its time-bucket. */
105
- add(entry) {
106
- const bucketKey = this.bucketKeyFor(entry.createdAt);
107
- if (!this.buckets.has(bucketKey)) {
108
- this.buckets.set(bucketKey, new TimeBucket());
109
- this.evictOldBuckets();
110
- // After eviction the bucket we just created may have been removed
111
- // (entry predates the retention window) — discard it silently.
112
- if (!this.buckets.has(bucketKey))
113
- return;
114
- }
115
- this.buckets.get(bucketKey).add(entry);
116
- }
117
- /**
118
- * Search across partitions, newest buckets first.
119
- * Stops early once `limit` results are collected or all buckets exhausted.
120
- *
121
- * @param queryEmbedding - optional query vector (cosine similarity)
122
- * @param textQuery - optional keyword fallback
123
- * @param limit - max results
124
- * @param fromMs - optional lower bound on createdAt (temporal filter)
125
- * @param toMs - optional upper bound on createdAt (temporal filter)
126
- */
127
- search(queryEmbedding, textQuery, limit, fromMs, toMs) {
128
- const normQuery = queryEmbedding ? l2Norm(queryEmbedding) : null;
129
- // Collect buckets in descending (newest-first) order
130
- const sortedKeys = [...this.buckets.keys()].sort((a, b) => b - a);
131
- const candidates = [];
132
- for (const key of sortedKeys) {
133
- // Skip buckets entirely outside the temporal filter
134
- const bucket = this.buckets.get(key);
135
- if (fromMs !== undefined && bucket.newest < fromMs)
136
- continue;
137
- if (toMs !== undefined && bucket.oldest > toMs)
138
- continue;
139
- const hits = bucket.search(normQuery, Math.max(limit, this.k), textQuery);
140
- for (const h of hits) {
141
- if (fromMs !== undefined && h.entry.createdAt < fromMs)
142
- continue;
143
- if (toMs !== undefined && h.entry.createdAt > toMs)
144
- continue;
145
- candidates.push({ ...h, bucketKey: key });
146
- }
147
- }
148
- // Sort by score desc, then by recency (bucketKey desc) as tiebreak
149
- candidates.sort((a, b) => b.score - a.score || b.bucketKey - a.bucketKey);
150
- const seen = new Set();
151
- const results = [];
152
- for (const { entry } of candidates) {
153
- if (!seen.has(entry.id)) {
154
- seen.add(entry.id);
155
- results.push(entry);
156
- }
157
- if (results.length >= limit)
158
- break;
159
- }
160
- return results;
161
- }
162
- /**
163
- * Remove an entry from its time-bucket by id and original createdAt timestamp.
164
- * Returns true if the entry was found and removed, false otherwise.
165
- */
166
- remove(id, createdAt) {
167
- const bucketKey = this.bucketKeyFor(createdAt);
168
- const bucket = this.buckets.get(bucketKey);
169
- if (!bucket)
170
- return false;
171
- return bucket.remove(id);
172
- }
173
- /** Stats per bucket for observability. */
174
- bucketStats() {
175
- return [...this.buckets.entries()].map(([key, bucket]) => ({
176
- bucketKey: key,
177
- entryCount: bucket.size,
178
- oldestMs: bucket.oldest,
179
- newestMs: bucket.newest,
180
- }));
181
- }
182
- get totalEntries() {
183
- let n = 0;
184
- for (const b of this.buckets.values())
185
- n += b.size;
186
- return n;
187
- }
188
- // ------------------------------------------------------------------
189
- // Private helpers
190
- // ------------------------------------------------------------------
191
- bucketKeyFor(createdAt) {
192
- return Math.floor(createdAt / this.bucketMs);
193
- }
194
- /** Evict the oldest bucket(s) when we exceed maxBuckets. */
195
- evictOldBuckets() {
196
- while (this.buckets.size > this.maxBuckets) {
197
- // Find the smallest bucket key (oldest in time), not first in insertion order.
198
- // Insertion order diverges from temporal order during bulk inserts or migrations.
199
- let oldestKey;
200
- for (const k of this.buckets.keys()) {
201
- if (oldestKey === undefined || k < oldestKey)
202
- oldestKey = k;
203
- }
204
- if (oldestKey !== undefined)
205
- this.buckets.delete(oldestKey);
206
- }
207
- }
208
- }
209
- //# sourceMappingURL=partitioned-hnsw.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"partitioned-hnsw.js","sourceRoot":"","sources":["../src/partitioned-hnsw.ts"],"names":[],"mappings":"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"}
@@ -1,79 +0,0 @@
1
- /**
2
- * TierManager — Routes memory operations to the correct tier (Task 09)
3
- *
4
- * Coordinates short-term (in-memory), long-term (persistent backend),
5
- * entity (JSON-lines KV), and contextual (session summaries) tiers.
6
- *
7
- * @module v1/memory/tier-manager
8
- */
9
- import type { IMemoryBackend, MemoryEntry, MemoryEntryInput, MemoryTier, TierManagerConfig } from './types.js';
10
- import { ShortTermMemory } from './tiers/short-term.js';
11
- import { EntityMemory } from './tiers/entity.js';
12
- import { ContextualMemory } from './tiers/contextual.js';
13
- import { PartitionedHNSW, type PartitionedHNSWConfig } from './partitioned-hnsw.js';
14
- import { DiskAnnBackend, type DiskAnnBackendConfig } from './diskann-backend.js';
15
- export declare class TierManager {
16
- readonly shortTerm: ShortTermMemory;
17
- readonly entity: EntityMemory;
18
- readonly contextual: ContextualMemory;
19
- /** Timestamp-partitioned HNSW for temporally-local semantic search.
20
- * Source: ICDE 2025 Timestamp-Partitioned HNSW */
21
- readonly partitionedIndex: PartitionedHNSW;
22
- /**
23
- * Optional DiskANN backend for large-scale ANN search (Tier 4).
24
- * Activated by passing `diskAnnConfig` to the constructor.
25
- * Wraps the longTermBackend so all CRUD still flows through the delegate;
26
- * `search()` uses the disk-resident graph + quantised beam search.
27
- * Source: arXiv:2305.04359
28
- */
29
- readonly diskann?: DiskAnnBackend;
30
- private readonly longTermBackend;
31
- private readonly config;
32
- constructor(longTermBackend: IMemoryBackend, config?: Partial<TierManagerConfig>, partitionedHNSWConfig?: PartitionedHNSWConfig, diskAnnConfig?: DiskAnnBackendConfig);
33
- /**
34
- * Store a memory entry, routing to the correct tier.
35
- *
36
- * - `short-term` goes to the in-memory buffer
37
- * - `long-term` (or unspecified) goes to the persistent backend
38
- *
39
- * All entries are also indexed in the timestamp-partitioned HNSW for
40
- * temporally-local search (ICDE 2025).
41
- *
42
- * Returns the generated entry ID.
43
- */
44
- store(input: MemoryEntryInput & {
45
- tier?: MemoryTier;
46
- }): Promise<string>;
47
- /**
48
- * Merged search across partitioned HNSW, short-term buffer, long-term backend,
49
- * and (when configured) DiskANN beam search.
50
- *
51
- * Order of precedence:
52
- * 1. Partitioned HNSW (newest buckets first — temporal locality)
53
- * 2. Short-term in-memory buffer
54
- * 3. Long-term persistent backend (metadata / hybrid query)
55
- * 4. DiskANN ANN search — only when diskAnnConfig was supplied; uses a
56
- * character-frequency proxy embedding as the query vector (approximation)
57
- *
58
- * Results are deduplicated by entry ID.
59
- */
60
- search(query: string, limit?: number): Promise<MemoryEntry[]>;
61
- /**
62
- * Derive a fixed-length Float32 proxy embedding from plain text.
63
- *
64
- * Maps character byte values into a 128-dimensional L2-normalised vector.
65
- * This is NOT a semantic embedding — it is solely used to drive DiskANN
66
- * beam traversal when no real embedding generator is available at this
67
- * call site. Quality of DiskANN results improves dramatically when entries
68
- * are stored with real semantic embeddings.
69
- */
70
- private static textToVec;
71
- /**
72
- * Flush the short-term buffer into the long-term backend.
73
- * Promoted entries are also added to the partitioned HNSW index so they
74
- * remain visible in partition-based searches after promotion.
75
- * Returns the number of entries promoted.
76
- */
77
- flushShortTerm(): Promise<number>;
78
- }
79
- //# sourceMappingURL=tier-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tier-manager.d.ts","sourceRoot":"","sources":["../src/tier-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjF,qBAAa,WAAW;IACtB,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IAEtC;uDACmD;IACnD,QAAQ,CAAC,gBAAgB,EAAE,eAAe,CAAC;IAE3C;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC;IAElC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;gBAGzC,eAAe,EAAE,cAAc,EAC/B,MAAM,GAAE,OAAO,CAAC,iBAAiB,CAAM,EACvC,qBAAqB,GAAE,qBAA0B,EACjD,aAAa,CAAC,EAAE,oBAAoB;IA4BtC;;;;;;;;;;OAUG;IACG,KAAK,CAAC,KAAK,EAAE,gBAAgB,GAAG;QAAE,IAAI,CAAC,EAAE,UAAU,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAgB7E;;;;;;;;;;;;OAYG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAmD/D;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;IAYxB;;;;;OAKG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;CAUxC"}
@@ -1,173 +0,0 @@
1
- /**
2
- * TierManager — Routes memory operations to the correct tier (Task 09)
3
- *
4
- * Coordinates short-term (in-memory), long-term (persistent backend),
5
- * entity (JSON-lines KV), and contextual (session summaries) tiers.
6
- *
7
- * @module v1/memory/tier-manager
8
- */
9
- import { createDefaultEntry } from './types.js';
10
- import { ShortTermMemory } from './tiers/short-term.js';
11
- import { EntityMemory } from './tiers/entity.js';
12
- import { ContextualMemory } from './tiers/contextual.js';
13
- import { PartitionedHNSW } from './partitioned-hnsw.js';
14
- import { DiskAnnBackend } from './diskann-backend.js';
15
- export class TierManager {
16
- shortTerm;
17
- entity;
18
- contextual;
19
- /** Timestamp-partitioned HNSW for temporally-local semantic search.
20
- * Source: ICDE 2025 Timestamp-Partitioned HNSW */
21
- partitionedIndex;
22
- /**
23
- * Optional DiskANN backend for large-scale ANN search (Tier 4).
24
- * Activated by passing `diskAnnConfig` to the constructor.
25
- * Wraps the longTermBackend so all CRUD still flows through the delegate;
26
- * `search()` uses the disk-resident graph + quantised beam search.
27
- * Source: arXiv:2305.04359
28
- */
29
- diskann;
30
- longTermBackend;
31
- config;
32
- constructor(longTermBackend, config = {}, partitionedHNSWConfig = {}, diskAnnConfig) {
33
- this.config = {
34
- shortTermCapacity: config.shortTermCapacity ?? 500,
35
- entityStorePath: config.entityStorePath ?? './data/memory/entities.jsonl',
36
- contextualNamespace: config.contextualNamespace ?? 'contextual-summaries',
37
- autoFlushOnSessionEnd: config.autoFlushOnSessionEnd ?? true,
38
- };
39
- // If diskAnnConfig is supplied, wrap longTermBackend in a DiskAnnBackend.
40
- // All CRUD still delegates to the original backend; search() uses DiskANN.
41
- if (diskAnnConfig) {
42
- const diskannBackend = new DiskAnnBackend(longTermBackend, diskAnnConfig);
43
- this.diskann = diskannBackend;
44
- this.longTermBackend = diskannBackend;
45
- }
46
- else {
47
- this.longTermBackend = longTermBackend;
48
- }
49
- this.shortTerm = new ShortTermMemory(this.config.shortTermCapacity);
50
- this.entity = new EntityMemory(this.config.entityStorePath);
51
- this.contextual = new ContextualMemory(this.longTermBackend, this.config.contextualNamespace);
52
- this.partitionedIndex = new PartitionedHNSW(partitionedHNSWConfig);
53
- }
54
- /**
55
- * Store a memory entry, routing to the correct tier.
56
- *
57
- * - `short-term` goes to the in-memory buffer
58
- * - `long-term` (or unspecified) goes to the persistent backend
59
- *
60
- * All entries are also indexed in the timestamp-partitioned HNSW for
61
- * temporally-local search (ICDE 2025).
62
- *
63
- * Returns the generated entry ID.
64
- */
65
- async store(input) {
66
- const entry = createDefaultEntry(input);
67
- const tier = input.tier ?? 'long-term';
68
- if (tier === 'short-term') {
69
- this.shortTerm.store(entry);
70
- }
71
- else {
72
- await this.longTermBackend.store(entry);
73
- }
74
- // Index in partitioned HNSW for temporal-locality search
75
- this.partitionedIndex.add(entry);
76
- return entry.id;
77
- }
78
- /**
79
- * Merged search across partitioned HNSW, short-term buffer, long-term backend,
80
- * and (when configured) DiskANN beam search.
81
- *
82
- * Order of precedence:
83
- * 1. Partitioned HNSW (newest buckets first — temporal locality)
84
- * 2. Short-term in-memory buffer
85
- * 3. Long-term persistent backend (metadata / hybrid query)
86
- * 4. DiskANN ANN search — only when diskAnnConfig was supplied; uses a
87
- * character-frequency proxy embedding as the query vector (approximation)
88
- *
89
- * Results are deduplicated by entry ID.
90
- */
91
- async search(query, limit = 10) {
92
- // 1. Partitioned HNSW — nearest neighbours in recent time buckets first
93
- const partitionedResults = this.partitionedIndex.search(null, // no raw embedding at this call-site; uses text fallback
94
- query, limit);
95
- // 2. Short-term results (synchronous)
96
- const shortResults = this.shortTerm.search(query, limit);
97
- // 3. Long-term results via the backend query interface
98
- const longResults = await this.longTermBackend.query({
99
- type: 'hybrid',
100
- content: query,
101
- limit,
102
- });
103
- // 4. DiskANN ANN search (activated when diskann is configured)
104
- // Uses a character-frequency proxy embedding to drive beam search.
105
- // Re-ranking in DiskAnnBackend.search() uses the actual stored embeddings.
106
- let annEntries = [];
107
- if (this.diskann) {
108
- try {
109
- const proxyVec = TierManager.textToVec(query);
110
- const annResults = await this.diskann.search(proxyVec, { k: limit });
111
- annEntries = annResults.map(r => r.entry);
112
- }
113
- catch {
114
- // Non-fatal; DiskANN is best-effort
115
- }
116
- }
117
- // Deduplicate by id: partitioned > short-term > long-term > diskann
118
- // Iterate each source directly to avoid allocating a combined array and to
119
- // enable early-exit between sources once the limit is reached.
120
- const seen = new Set();
121
- const merged = [];
122
- outer: for (const batch of [partitionedResults, shortResults, longResults, annEntries]) {
123
- for (const entry of batch) {
124
- if (!seen.has(entry.id)) {
125
- seen.add(entry.id);
126
- merged.push(entry);
127
- }
128
- if (merged.length >= limit)
129
- break outer;
130
- }
131
- }
132
- return merged;
133
- }
134
- /**
135
- * Derive a fixed-length Float32 proxy embedding from plain text.
136
- *
137
- * Maps character byte values into a 128-dimensional L2-normalised vector.
138
- * This is NOT a semantic embedding — it is solely used to drive DiskANN
139
- * beam traversal when no real embedding generator is available at this
140
- * call site. Quality of DiskANN results improves dramatically when entries
141
- * are stored with real semantic embeddings.
142
- */
143
- static textToVec(text, dims = 128) {
144
- const vec = new Float32Array(dims);
145
- for (let i = 0; i < text.length; i++) {
146
- vec[i % dims] += text.charCodeAt(i) / 255;
147
- }
148
- let norm = 0;
149
- for (const v of vec)
150
- norm += v * v;
151
- norm = Math.sqrt(norm) || 1;
152
- for (let i = 0; i < dims; i++)
153
- vec[i] /= norm;
154
- return vec;
155
- }
156
- /**
157
- * Flush the short-term buffer into the long-term backend.
158
- * Promoted entries are also added to the partitioned HNSW index so they
159
- * remain visible in partition-based searches after promotion.
160
- * Returns the number of entries promoted.
161
- */
162
- async flushShortTerm() {
163
- // Snapshot the entries before flush so we can index them afterwards.
164
- // ShortTermMemory.flush() clears the buffer, so we must read first.
165
- const toPromote = this.shortTerm.snapshot();
166
- const count = await this.shortTerm.flush(this.longTermBackend);
167
- for (const entry of toPromote) {
168
- this.partitionedIndex.add(entry);
169
- }
170
- return count;
171
- }
172
- }
173
- //# sourceMappingURL=tier-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tier-manager.js","sourceRoot":"","sources":["../src/tier-manager.ts"],"names":[],"mappings":"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"}