@hazeljs/rag 0.2.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/README.md +379 -0
  2. package/dist/agentic/agentic-rag.service.d.ts +49 -0
  3. package/dist/agentic/agentic-rag.service.d.ts.map +1 -0
  4. package/dist/agentic/agentic-rag.service.js +149 -0
  5. package/dist/agentic/agentic-rag.service.js.map +1 -0
  6. package/dist/agentic/decorators/active-learning.decorator.d.ts +19 -0
  7. package/dist/agentic/decorators/active-learning.decorator.d.ts.map +1 -0
  8. package/dist/agentic/decorators/active-learning.decorator.js +98 -0
  9. package/dist/agentic/decorators/active-learning.decorator.js.map +1 -0
  10. package/dist/agentic/decorators/adaptive-retrieval.decorator.d.ts +16 -0
  11. package/dist/agentic/decorators/adaptive-retrieval.decorator.d.ts.map +1 -0
  12. package/dist/agentic/decorators/adaptive-retrieval.decorator.js +114 -0
  13. package/dist/agentic/decorators/adaptive-retrieval.decorator.js.map +1 -0
  14. package/dist/agentic/decorators/cached.decorator.d.ts +18 -0
  15. package/dist/agentic/decorators/cached.decorator.d.ts.map +1 -0
  16. package/dist/agentic/decorators/cached.decorator.js +93 -0
  17. package/dist/agentic/decorators/cached.decorator.js.map +1 -0
  18. package/dist/agentic/decorators/context-aware.decorator.d.ts +16 -0
  19. package/dist/agentic/decorators/context-aware.decorator.d.ts.map +1 -0
  20. package/dist/agentic/decorators/context-aware.decorator.js +169 -0
  21. package/dist/agentic/decorators/context-aware.decorator.js.map +1 -0
  22. package/dist/agentic/decorators/corrective-rag.decorator.d.ts +15 -0
  23. package/dist/agentic/decorators/corrective-rag.decorator.d.ts.map +1 -0
  24. package/dist/agentic/decorators/corrective-rag.decorator.js +146 -0
  25. package/dist/agentic/decorators/corrective-rag.decorator.js.map +1 -0
  26. package/dist/agentic/decorators/hyde.decorator.d.ts +14 -0
  27. package/dist/agentic/decorators/hyde.decorator.d.ts.map +1 -0
  28. package/dist/agentic/decorators/hyde.decorator.js +90 -0
  29. package/dist/agentic/decorators/hyde.decorator.js.map +1 -0
  30. package/dist/agentic/decorators/index.d.ts +16 -0
  31. package/dist/agentic/decorators/index.d.ts.map +1 -0
  32. package/dist/agentic/decorators/index.js +32 -0
  33. package/dist/agentic/decorators/index.js.map +1 -0
  34. package/dist/agentic/decorators/multi-hop.decorator.d.ts +14 -0
  35. package/dist/agentic/decorators/multi-hop.decorator.d.ts.map +1 -0
  36. package/dist/agentic/decorators/multi-hop.decorator.js +120 -0
  37. package/dist/agentic/decorators/multi-hop.decorator.js.map +1 -0
  38. package/dist/agentic/decorators/query-planner.decorator.d.ts +19 -0
  39. package/dist/agentic/decorators/query-planner.decorator.d.ts.map +1 -0
  40. package/dist/agentic/decorators/query-planner.decorator.js +227 -0
  41. package/dist/agentic/decorators/query-planner.decorator.js.map +1 -0
  42. package/dist/agentic/decorators/query-rewriter.decorator.d.ts +15 -0
  43. package/dist/agentic/decorators/query-rewriter.decorator.d.ts.map +1 -0
  44. package/dist/agentic/decorators/query-rewriter.decorator.js +140 -0
  45. package/dist/agentic/decorators/query-rewriter.decorator.js.map +1 -0
  46. package/dist/agentic/decorators/self-reflective.decorator.d.ts +18 -0
  47. package/dist/agentic/decorators/self-reflective.decorator.d.ts.map +1 -0
  48. package/dist/agentic/decorators/self-reflective.decorator.js +210 -0
  49. package/dist/agentic/decorators/self-reflective.decorator.js.map +1 -0
  50. package/dist/agentic/decorators/source-verification.decorator.d.ts +15 -0
  51. package/dist/agentic/decorators/source-verification.decorator.d.ts.map +1 -0
  52. package/dist/agentic/decorators/source-verification.decorator.js +121 -0
  53. package/dist/agentic/decorators/source-verification.decorator.js.map +1 -0
  54. package/dist/agentic/index.d.ts +9 -0
  55. package/dist/agentic/index.d.ts.map +1 -0
  56. package/dist/agentic/index.js +25 -0
  57. package/dist/agentic/index.js.map +1 -0
  58. package/dist/agentic/types.d.ts +209 -0
  59. package/dist/agentic/types.d.ts.map +1 -0
  60. package/dist/agentic/types.js +7 -0
  61. package/dist/agentic/types.js.map +1 -0
  62. package/dist/decorators/embeddable.decorator.d.ts +31 -0
  63. package/dist/decorators/embeddable.decorator.d.ts.map +1 -0
  64. package/dist/decorators/embeddable.decorator.js +44 -0
  65. package/dist/decorators/embeddable.decorator.js.map +1 -0
  66. package/dist/decorators/rag.decorator.d.ts +58 -0
  67. package/dist/decorators/rag.decorator.d.ts.map +1 -0
  68. package/dist/decorators/rag.decorator.js +78 -0
  69. package/dist/decorators/rag.decorator.js.map +1 -0
  70. package/dist/decorators/semantic-search.decorator.d.ts +69 -0
  71. package/dist/decorators/semantic-search.decorator.d.ts.map +1 -0
  72. package/dist/decorators/semantic-search.decorator.js +116 -0
  73. package/dist/decorators/semantic-search.decorator.js.map +1 -0
  74. package/dist/embeddings/cohere-embeddings.d.ts +33 -0
  75. package/dist/embeddings/cohere-embeddings.d.ts.map +1 -0
  76. package/dist/embeddings/cohere-embeddings.js +91 -0
  77. package/dist/embeddings/cohere-embeddings.js.map +1 -0
  78. package/dist/embeddings/openai-embeddings.d.ts +21 -0
  79. package/dist/embeddings/openai-embeddings.d.ts.map +1 -0
  80. package/dist/embeddings/openai-embeddings.js +53 -0
  81. package/dist/embeddings/openai-embeddings.js.map +1 -0
  82. package/dist/index.d.ts +27 -0
  83. package/dist/index.d.ts.map +1 -0
  84. package/dist/index.js +54 -0
  85. package/dist/index.js.map +1 -0
  86. package/dist/memory/index.d.ts +11 -0
  87. package/dist/memory/index.d.ts.map +1 -0
  88. package/dist/memory/index.js +31 -0
  89. package/dist/memory/index.js.map +1 -0
  90. package/dist/memory/memory-manager.d.ts +96 -0
  91. package/dist/memory/memory-manager.d.ts.map +1 -0
  92. package/dist/memory/memory-manager.js +369 -0
  93. package/dist/memory/memory-manager.js.map +1 -0
  94. package/dist/memory/memory-store.interface.d.ts +73 -0
  95. package/dist/memory/memory-store.interface.d.ts.map +1 -0
  96. package/dist/memory/memory-store.interface.js +6 -0
  97. package/dist/memory/memory-store.interface.js.map +1 -0
  98. package/dist/memory/stores/buffer-memory.d.ts +47 -0
  99. package/dist/memory/stores/buffer-memory.d.ts.map +1 -0
  100. package/dist/memory/stores/buffer-memory.js +280 -0
  101. package/dist/memory/stores/buffer-memory.js.map +1 -0
  102. package/dist/memory/stores/hybrid-memory.d.ts +49 -0
  103. package/dist/memory/stores/hybrid-memory.d.ts.map +1 -0
  104. package/dist/memory/stores/hybrid-memory.js +194 -0
  105. package/dist/memory/stores/hybrid-memory.js.map +1 -0
  106. package/dist/memory/stores/vector-memory.d.ts +48 -0
  107. package/dist/memory/stores/vector-memory.d.ts.map +1 -0
  108. package/dist/memory/stores/vector-memory.js +312 -0
  109. package/dist/memory/stores/vector-memory.js.map +1 -0
  110. package/dist/memory/types.d.ts +119 -0
  111. package/dist/memory/types.d.ts.map +1 -0
  112. package/dist/memory/types.js +18 -0
  113. package/dist/memory/types.js.map +1 -0
  114. package/dist/rag-pipeline-with-memory.d.ts +68 -0
  115. package/dist/rag-pipeline-with-memory.d.ts.map +1 -0
  116. package/dist/rag-pipeline-with-memory.js +186 -0
  117. package/dist/rag-pipeline-with-memory.js.map +1 -0
  118. package/dist/rag-pipeline.d.ts +59 -0
  119. package/dist/rag-pipeline.d.ts.map +1 -0
  120. package/dist/rag-pipeline.js +181 -0
  121. package/dist/rag-pipeline.js.map +1 -0
  122. package/dist/rag.module.d.ts +26 -0
  123. package/dist/rag.module.d.ts.map +1 -0
  124. package/dist/rag.module.js +40 -0
  125. package/dist/rag.module.js.map +1 -0
  126. package/dist/rag.service.d.ts +95 -0
  127. package/dist/rag.service.d.ts.map +1 -0
  128. package/dist/rag.service.js +174 -0
  129. package/dist/rag.service.js.map +1 -0
  130. package/dist/retrieval/bm25.d.ts +57 -0
  131. package/dist/retrieval/bm25.d.ts.map +1 -0
  132. package/dist/retrieval/bm25.js +106 -0
  133. package/dist/retrieval/bm25.js.map +1 -0
  134. package/dist/retrieval/hybrid-search.d.ts +48 -0
  135. package/dist/retrieval/hybrid-search.d.ts.map +1 -0
  136. package/dist/retrieval/hybrid-search.js +123 -0
  137. package/dist/retrieval/hybrid-search.js.map +1 -0
  138. package/dist/retrieval/multi-query.d.ts +38 -0
  139. package/dist/retrieval/multi-query.d.ts.map +1 -0
  140. package/dist/retrieval/multi-query.js +135 -0
  141. package/dist/retrieval/multi-query.js.map +1 -0
  142. package/dist/text-splitters/recursive-text-splitter.d.ts +21 -0
  143. package/dist/text-splitters/recursive-text-splitter.d.ts.map +1 -0
  144. package/dist/text-splitters/recursive-text-splitter.js +95 -0
  145. package/dist/text-splitters/recursive-text-splitter.js.map +1 -0
  146. package/dist/types/index.d.ts +144 -0
  147. package/dist/types/index.d.ts.map +1 -0
  148. package/dist/types/index.js +16 -0
  149. package/dist/types/index.js.map +1 -0
  150. package/dist/utils/similarity.d.ts +16 -0
  151. package/dist/utils/similarity.d.ts.map +1 -0
  152. package/dist/utils/similarity.js +58 -0
  153. package/dist/utils/similarity.js.map +1 -0
  154. package/dist/vector-stores/chroma.store.d.ts +42 -0
  155. package/dist/vector-stores/chroma.store.d.ts.map +1 -0
  156. package/dist/vector-stores/chroma.store.js +242 -0
  157. package/dist/vector-stores/chroma.store.js.map +1 -0
  158. package/dist/vector-stores/memory-vector-store.d.ts +20 -0
  159. package/dist/vector-stores/memory-vector-store.d.ts.map +1 -0
  160. package/dist/vector-stores/memory-vector-store.js +94 -0
  161. package/dist/vector-stores/memory-vector-store.js.map +1 -0
  162. package/dist/vector-stores/pinecone.store.d.ts +34 -0
  163. package/dist/vector-stores/pinecone.store.d.ts.map +1 -0
  164. package/dist/vector-stores/pinecone.store.js +146 -0
  165. package/dist/vector-stores/pinecone.store.js.map +1 -0
  166. package/dist/vector-stores/qdrant.store.d.ts +31 -0
  167. package/dist/vector-stores/qdrant.store.d.ts.map +1 -0
  168. package/dist/vector-stores/qdrant.store.js +173 -0
  169. package/dist/vector-stores/qdrant.store.js.map +1 -0
  170. package/dist/vector-stores/weaviate.store.d.ts +37 -0
  171. package/dist/vector-stores/weaviate.store.d.ts.map +1 -0
  172. package/dist/vector-stores/weaviate.store.js +226 -0
  173. package/dist/vector-stores/weaviate.store.js.map +1 -0
  174. package/package.json +87 -0
@@ -0,0 +1,280 @@
1
+ "use strict";
2
+ /**
3
+ * Buffer Memory Store - Simple FIFO buffer for recent memories
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BufferMemory = void 0;
7
+ const types_1 = require("../types");
8
+ const crypto_1 = require("crypto");
9
+ /**
10
+ * In-memory buffer that keeps the most recent memories
11
+ * Uses FIFO (First In, First Out) strategy
12
+ */
13
+ class BufferMemory {
14
+ constructor(config = {}) {
15
+ this.memories = new Map();
16
+ this.sessionBuffers = new Map();
17
+ this.maxSize = config.maxSize || 100;
18
+ this.ttl = config.ttl;
19
+ }
20
+ async initialize() {
21
+ // No initialization needed for in-memory store
22
+ }
23
+ async save(memory) {
24
+ const id = memory.id || (0, crypto_1.randomUUID)();
25
+ const memoryWithId = { ...memory, id };
26
+ // Add expiration if TTL is set
27
+ if (this.ttl && !memoryWithId.metadata.expiresAt) {
28
+ memoryWithId.metadata.expiresAt = new Date(Date.now() + this.ttl);
29
+ }
30
+ this.memories.set(id, memoryWithId);
31
+ // Track in session buffer
32
+ if (memory.metadata.sessionId) {
33
+ const buffer = this.sessionBuffers.get(memory.metadata.sessionId) || [];
34
+ buffer.push(id);
35
+ // Enforce max size per session
36
+ if (buffer.length > this.maxSize) {
37
+ const removedId = buffer.shift();
38
+ this.memories.delete(removedId);
39
+ }
40
+ this.sessionBuffers.set(memory.metadata.sessionId, buffer);
41
+ }
42
+ // Enforce global max size
43
+ if (this.memories.size > this.maxSize * 10) {
44
+ const oldestId = Array.from(this.memories.keys())[0];
45
+ this.memories.delete(oldestId);
46
+ }
47
+ return id;
48
+ }
49
+ async saveBatch(memories) {
50
+ const ids = [];
51
+ for (const memory of memories) {
52
+ const id = await this.save(memory);
53
+ ids.push(id);
54
+ }
55
+ return ids;
56
+ }
57
+ async retrieve(query) {
58
+ this.cleanExpired();
59
+ let results = Array.from(this.memories.values());
60
+ // Filter by session
61
+ if (query.sessionId) {
62
+ results = results.filter((m) => m.metadata.sessionId === query.sessionId);
63
+ }
64
+ // Filter by user
65
+ if (query.userId) {
66
+ results = results.filter((m) => m.metadata.userId === query.userId);
67
+ }
68
+ // Filter by types
69
+ if (query.types && query.types.length > 0) {
70
+ results = results.filter((m) => query.types.includes(m.type));
71
+ }
72
+ // Filter by date range
73
+ if (query.startDate) {
74
+ results = results.filter((m) => m.metadata.timestamp >= query.startDate);
75
+ }
76
+ if (query.endDate) {
77
+ results = results.filter((m) => m.metadata.timestamp <= query.endDate);
78
+ }
79
+ // Filter by importance
80
+ if (query.minImportance !== undefined) {
81
+ results = results.filter((m) => (m.metadata.importance || 0) >= query.minImportance);
82
+ }
83
+ // Filter by entities
84
+ if (query.entities && query.entities.length > 0) {
85
+ results = results.filter((m) => m.metadata.entities?.some((e) => query.entities.includes(e)));
86
+ }
87
+ // Sort by timestamp (newest first)
88
+ results.sort((a, b) => b.metadata.timestamp.getTime() - a.metadata.timestamp.getTime());
89
+ // Apply limit
90
+ if (query.limit) {
91
+ results = results.slice(0, query.limit);
92
+ }
93
+ return results;
94
+ }
95
+ async search(query, options) {
96
+ // Simple text-based search (no semantic search in buffer)
97
+ const memories = await this.retrieve(options);
98
+ const queryLower = query.toLowerCase();
99
+ const scored = memories
100
+ .map((memory) => ({
101
+ memory,
102
+ score: this.calculateTextScore(memory.content, queryLower),
103
+ }))
104
+ .filter((item) => item.score > (options.minScore || 0))
105
+ .sort((a, b) => b.score - a.score);
106
+ const results = scored.map((item) => ({
107
+ ...item.memory,
108
+ metadata: {
109
+ ...item.memory.metadata,
110
+ searchScore: item.score,
111
+ },
112
+ }));
113
+ return results.slice(0, options.topK || 10);
114
+ }
115
+ async get(id) {
116
+ this.cleanExpired();
117
+ return this.memories.get(id) || null;
118
+ }
119
+ async update(id, updates) {
120
+ const memory = this.memories.get(id);
121
+ if (!memory) {
122
+ throw new Error(`Memory with id ${id} not found`);
123
+ }
124
+ const updated = {
125
+ ...memory,
126
+ ...updates,
127
+ metadata: {
128
+ ...memory.metadata,
129
+ ...updates.metadata,
130
+ },
131
+ };
132
+ this.memories.set(id, updated);
133
+ }
134
+ async delete(id) {
135
+ this.memories.delete(id);
136
+ // Remove from session buffers
137
+ for (const [sessionId, buffer] of this.sessionBuffers.entries()) {
138
+ const index = buffer.indexOf(id);
139
+ if (index !== -1) {
140
+ buffer.splice(index, 1);
141
+ this.sessionBuffers.set(sessionId, buffer);
142
+ }
143
+ }
144
+ }
145
+ async deleteBatch(ids) {
146
+ for (const id of ids) {
147
+ await this.delete(id);
148
+ }
149
+ }
150
+ async clearSession(sessionId) {
151
+ const buffer = this.sessionBuffers.get(sessionId);
152
+ if (buffer) {
153
+ for (const id of buffer) {
154
+ this.memories.delete(id);
155
+ }
156
+ this.sessionBuffers.delete(sessionId);
157
+ }
158
+ }
159
+ async clear() {
160
+ this.memories.clear();
161
+ this.sessionBuffers.clear();
162
+ }
163
+ async summarize(options) {
164
+ const memories = await this.retrieve({
165
+ sessionId: options.sessionId,
166
+ limit: options.maxLength || 50,
167
+ });
168
+ if (memories.length === 0) {
169
+ return 'No memories to summarize.';
170
+ }
171
+ // Simple concatenation summary
172
+ const contents = memories.map((m) => m.content).join('\n');
173
+ return contents.slice(0, options.maxLength || 1000);
174
+ }
175
+ async consolidate(memories) {
176
+ if (memories.length === 0) {
177
+ throw new Error('No memories to consolidate');
178
+ }
179
+ // Merge memories into one
180
+ const consolidated = {
181
+ id: (0, crypto_1.randomUUID)(),
182
+ type: memories[0].type,
183
+ content: memories.map((m) => m.content).join('\n\n'),
184
+ metadata: {
185
+ ...memories[0].metadata,
186
+ timestamp: new Date(),
187
+ consolidated: true,
188
+ sourceIds: memories.map((m) => m.id),
189
+ },
190
+ };
191
+ return consolidated;
192
+ }
193
+ async getStats(sessionId) {
194
+ this.cleanExpired();
195
+ let memories = Array.from(this.memories.values());
196
+ if (sessionId) {
197
+ memories = memories.filter((m) => m.metadata.sessionId === sessionId);
198
+ }
199
+ const byType = {
200
+ [types_1.MemoryType.CONVERSATION]: 0,
201
+ [types_1.MemoryType.ENTITY]: 0,
202
+ [types_1.MemoryType.FACT]: 0,
203
+ [types_1.MemoryType.EVENT]: 0,
204
+ [types_1.MemoryType.WORKING]: 0,
205
+ };
206
+ let totalImportance = 0;
207
+ let oldestTime = Date.now();
208
+ let newestTime = 0;
209
+ for (const memory of memories) {
210
+ byType[memory.type]++;
211
+ totalImportance += memory.metadata.importance || 0;
212
+ const time = memory.metadata.timestamp.getTime();
213
+ if (time < oldestTime)
214
+ oldestTime = time;
215
+ if (time > newestTime)
216
+ newestTime = time;
217
+ }
218
+ return {
219
+ totalMemories: memories.length,
220
+ byType,
221
+ oldestMemory: new Date(oldestTime),
222
+ newestMemory: new Date(newestTime),
223
+ averageImportance: memories.length > 0 ? totalImportance / memories.length : 0,
224
+ };
225
+ }
226
+ async prune(options) {
227
+ this.cleanExpired();
228
+ let pruned = 0;
229
+ const toDelete = [];
230
+ for (const [id, memory] of this.memories.entries()) {
231
+ let shouldPrune = false;
232
+ if (options?.olderThan && memory.metadata.timestamp < options.olderThan) {
233
+ shouldPrune = true;
234
+ }
235
+ if (options?.minImportance !== undefined &&
236
+ (memory.metadata.importance || 0) < options.minImportance) {
237
+ shouldPrune = true;
238
+ }
239
+ if (shouldPrune) {
240
+ toDelete.push(id);
241
+ pruned++;
242
+ }
243
+ }
244
+ await this.deleteBatch(toDelete);
245
+ return pruned;
246
+ }
247
+ /**
248
+ * Clean expired memories
249
+ */
250
+ cleanExpired() {
251
+ if (!this.ttl)
252
+ return;
253
+ const now = Date.now();
254
+ const toDelete = [];
255
+ for (const [id, memory] of this.memories.entries()) {
256
+ if (memory.metadata.expiresAt && memory.metadata.expiresAt.getTime() < now) {
257
+ toDelete.push(id);
258
+ }
259
+ }
260
+ for (const id of toDelete) {
261
+ this.memories.delete(id);
262
+ }
263
+ }
264
+ /**
265
+ * Calculate simple text similarity score
266
+ */
267
+ calculateTextScore(content, query) {
268
+ const contentLower = content.toLowerCase();
269
+ const words = query.split(/\s+/);
270
+ let score = 0;
271
+ for (const word of words) {
272
+ if (contentLower.includes(word)) {
273
+ score += 1;
274
+ }
275
+ }
276
+ return score / words.length;
277
+ }
278
+ }
279
+ exports.BufferMemory = BufferMemory;
280
+ //# sourceMappingURL=buffer-memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buffer-memory.js","sourceRoot":"","sources":["../../../src/memory/stores/buffer-memory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Hybrid Memory Store - Combines buffer and vector memory strategies
3
+ */
4
+ import { MemoryStore } from '../memory-store.interface';
5
+ import { Memory, MemoryQuery, MemorySearchOptions, SummarizeOptions, MemoryStats } from '../types';
6
+ import { BufferMemory } from './buffer-memory';
7
+ import { VectorMemory } from './vector-memory';
8
+ export interface HybridMemoryConfig {
9
+ bufferSize?: number;
10
+ archiveThreshold?: number;
11
+ ttl?: number;
12
+ }
13
+ /**
14
+ * Hybrid memory that combines short-term buffer and long-term vector storage
15
+ * Recent memories stay in fast buffer, older ones move to vector store
16
+ */
17
+ export declare class HybridMemory implements MemoryStore {
18
+ private buffer;
19
+ private vectorStore;
20
+ private archiveThreshold;
21
+ constructor(buffer: BufferMemory, vectorStore: VectorMemory, config?: HybridMemoryConfig);
22
+ initialize(): Promise<void>;
23
+ save(memory: Memory): Promise<string>;
24
+ saveBatch(memories: Memory[]): Promise<string[]>;
25
+ retrieve(query: MemoryQuery): Promise<Memory[]>;
26
+ search(query: string, options: MemorySearchOptions): Promise<Memory[]>;
27
+ get(id: string): Promise<Memory | null>;
28
+ update(id: string, updates: Partial<Memory>): Promise<void>;
29
+ delete(id: string): Promise<void>;
30
+ deleteBatch(ids: string[]): Promise<void>;
31
+ clearSession(sessionId: string): Promise<void>;
32
+ clear(): Promise<void>;
33
+ summarize(options: SummarizeOptions): Promise<string>;
34
+ consolidate(memories: Memory[]): Promise<Memory>;
35
+ getStats(sessionId?: string): Promise<MemoryStats>;
36
+ prune(options?: {
37
+ olderThan?: Date;
38
+ minImportance?: number;
39
+ }): Promise<number>;
40
+ /**
41
+ * Archive old memories from buffer to vector store
42
+ */
43
+ private archiveOldMemories;
44
+ /**
45
+ * Merge and deduplicate results from multiple stores
46
+ */
47
+ private mergeResults;
48
+ }
49
+ //# sourceMappingURL=hybrid-memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hybrid-memory.d.ts","sourceRoot":"","sources":["../../../src/memory/stores/hybrid-memory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EACL,MAAM,EACN,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EAEZ,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,qBAAa,YAAa,YAAW,WAAW;IAC9C,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,gBAAgB,CAAS;gBAErB,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,GAAE,kBAAuB;IAMtF,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUrC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAWhD,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAgB/C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAatE,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IASvC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAU3D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQjC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAOzC,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO9C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IAUrD,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAWhD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAkClD,KAAK,CAAC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,IAAI,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IASpF;;OAEG;YACW,kBAAkB;IAqBhC;;OAEG;IACH,OAAO,CAAC,YAAY;CAsBrB"}
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ /**
3
+ * Hybrid Memory Store - Combines buffer and vector memory strategies
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.HybridMemory = void 0;
7
+ const types_1 = require("../types");
8
+ /**
9
+ * Hybrid memory that combines short-term buffer and long-term vector storage
10
+ * Recent memories stay in fast buffer, older ones move to vector store
11
+ */
12
+ class HybridMemory {
13
+ constructor(buffer, vectorStore, config = {}) {
14
+ this.buffer = buffer;
15
+ this.vectorStore = vectorStore;
16
+ this.archiveThreshold = config.archiveThreshold || 20;
17
+ }
18
+ async initialize() {
19
+ await this.buffer.initialize();
20
+ await this.vectorStore.initialize();
21
+ }
22
+ async save(memory) {
23
+ // Save to buffer first
24
+ const id = await this.buffer.save(memory);
25
+ // Check if we need to archive old memories
26
+ await this.archiveOldMemories(memory.metadata.sessionId);
27
+ return id;
28
+ }
29
+ async saveBatch(memories) {
30
+ const ids = await this.buffer.saveBatch(memories);
31
+ // Archive if needed
32
+ if (memories.length > 0 && memories[0].metadata.sessionId) {
33
+ await this.archiveOldMemories(memories[0].metadata.sessionId);
34
+ }
35
+ return ids;
36
+ }
37
+ async retrieve(query) {
38
+ // Get from both stores
39
+ const [bufferResults, vectorResults] = await Promise.all([
40
+ this.buffer.retrieve(query),
41
+ this.vectorStore.retrieve(query),
42
+ ]);
43
+ // Merge and deduplicate
44
+ const merged = this.mergeResults(bufferResults, vectorResults);
45
+ // Sort by timestamp
46
+ merged.sort((a, b) => b.metadata.timestamp.getTime() - a.metadata.timestamp.getTime());
47
+ return merged.slice(0, query.limit || 100);
48
+ }
49
+ async search(query, options) {
50
+ // Search in both stores
51
+ const [bufferResults, vectorResults] = await Promise.all([
52
+ this.buffer.search(query, options),
53
+ this.vectorStore.search(query, options),
54
+ ]);
55
+ // Merge results, prioritizing vector store scores
56
+ const merged = this.mergeResults(bufferResults, vectorResults);
57
+ return merged.slice(0, options.topK || 10);
58
+ }
59
+ async get(id) {
60
+ // Try buffer first (faster)
61
+ const memory = await this.buffer.get(id);
62
+ if (memory)
63
+ return memory;
64
+ // Fall back to vector store
65
+ return this.vectorStore.get(id);
66
+ }
67
+ async update(id, updates) {
68
+ // Try to update in buffer first
69
+ try {
70
+ await this.buffer.update(id, updates);
71
+ }
72
+ catch {
73
+ // If not in buffer, update in vector store
74
+ await this.vectorStore.update(id, updates);
75
+ }
76
+ }
77
+ async delete(id) {
78
+ // Delete from both stores
79
+ await Promise.all([
80
+ this.buffer.delete(id).catch(() => { }),
81
+ this.vectorStore.delete(id).catch(() => { }),
82
+ ]);
83
+ }
84
+ async deleteBatch(ids) {
85
+ await Promise.all([
86
+ this.buffer.deleteBatch(ids).catch(() => { }),
87
+ this.vectorStore.deleteBatch(ids).catch(() => { }),
88
+ ]);
89
+ }
90
+ async clearSession(sessionId) {
91
+ await Promise.all([
92
+ this.buffer.clearSession(sessionId),
93
+ this.vectorStore.clearSession(sessionId),
94
+ ]);
95
+ }
96
+ async clear() {
97
+ await Promise.all([this.buffer.clear(), this.vectorStore.clear()]);
98
+ }
99
+ async summarize(options) {
100
+ // Summarize from both stores
101
+ const [bufferSummary, vectorSummary] = await Promise.all([
102
+ this.buffer.summarize(options),
103
+ this.vectorStore.summarize(options),
104
+ ]);
105
+ return `${bufferSummary}\n\n${vectorSummary}`;
106
+ }
107
+ async consolidate(memories) {
108
+ // Consolidate and save to vector store
109
+ const consolidated = await this.vectorStore.consolidate(memories);
110
+ // Remove originals from buffer
111
+ const ids = memories.map((m) => m.id);
112
+ await this.buffer.deleteBatch(ids).catch(() => { });
113
+ return consolidated;
114
+ }
115
+ async getStats(sessionId) {
116
+ const [bufferStats, vectorStats] = await Promise.all([
117
+ this.buffer.getStats(sessionId),
118
+ this.vectorStore.getStats(sessionId),
119
+ ]);
120
+ // Combine stats
121
+ const byType = {
122
+ [types_1.MemoryType.CONVERSATION]: 0,
123
+ [types_1.MemoryType.ENTITY]: 0,
124
+ [types_1.MemoryType.FACT]: 0,
125
+ [types_1.MemoryType.EVENT]: 0,
126
+ [types_1.MemoryType.WORKING]: 0,
127
+ };
128
+ for (const type of Object.keys(byType)) {
129
+ byType[type] = bufferStats.byType[type] + vectorStats.byType[type];
130
+ }
131
+ return {
132
+ totalMemories: bufferStats.totalMemories + vectorStats.totalMemories,
133
+ byType,
134
+ oldestMemory: bufferStats.oldestMemory < vectorStats.oldestMemory
135
+ ? bufferStats.oldestMemory
136
+ : vectorStats.oldestMemory,
137
+ newestMemory: bufferStats.newestMemory > vectorStats.newestMemory
138
+ ? bufferStats.newestMemory
139
+ : vectorStats.newestMemory,
140
+ averageImportance: (bufferStats.averageImportance + vectorStats.averageImportance) / 2,
141
+ };
142
+ }
143
+ async prune(options) {
144
+ const [bufferPruned, vectorPruned] = await Promise.all([
145
+ this.buffer.prune(options),
146
+ this.vectorStore.prune(options),
147
+ ]);
148
+ return bufferPruned + vectorPruned;
149
+ }
150
+ /**
151
+ * Archive old memories from buffer to vector store
152
+ */
153
+ async archiveOldMemories(sessionId) {
154
+ if (!sessionId)
155
+ return;
156
+ const bufferMemories = await this.buffer.retrieve({
157
+ sessionId,
158
+ limit: 1000,
159
+ });
160
+ // If buffer has more than threshold, archive oldest
161
+ if (bufferMemories.length > this.archiveThreshold) {
162
+ const toArchive = bufferMemories.slice(this.archiveThreshold);
163
+ // Move to vector store
164
+ await this.vectorStore.saveBatch(toArchive);
165
+ // Remove from buffer
166
+ const ids = toArchive.map((m) => m.id);
167
+ await this.buffer.deleteBatch(ids);
168
+ }
169
+ }
170
+ /**
171
+ * Merge and deduplicate results from multiple stores
172
+ */
173
+ mergeResults(bufferResults, vectorResults) {
174
+ const seen = new Set();
175
+ const merged = [];
176
+ // Add buffer results first (more recent)
177
+ for (const memory of bufferResults) {
178
+ if (!seen.has(memory.id)) {
179
+ seen.add(memory.id);
180
+ merged.push(memory);
181
+ }
182
+ }
183
+ // Add vector results
184
+ for (const memory of vectorResults) {
185
+ if (!seen.has(memory.id)) {
186
+ seen.add(memory.id);
187
+ merged.push(memory);
188
+ }
189
+ }
190
+ return merged;
191
+ }
192
+ }
193
+ exports.HybridMemory = HybridMemory;
194
+ //# sourceMappingURL=hybrid-memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hybrid-memory.js","sourceRoot":"","sources":["../../../src/memory/stores/hybrid-memory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Vector Memory Store - Stores memories as embeddings for semantic search
3
+ */
4
+ import { MemoryStore } from '../memory-store.interface';
5
+ import { Memory, MemoryQuery, MemorySearchOptions, SummarizeOptions, MemoryStats } from '../types';
6
+ import { VectorStore } from '../../types';
7
+ import { EmbeddingProvider } from '../../types';
8
+ export interface VectorMemoryConfig {
9
+ collectionName?: string;
10
+ namespace?: string;
11
+ }
12
+ /**
13
+ * Memory store that uses vector embeddings for semantic search
14
+ * Leverages existing vector store infrastructure
15
+ */
16
+ export declare class VectorMemory implements MemoryStore {
17
+ private vectorStore;
18
+ private embeddings;
19
+ private config;
20
+ constructor(vectorStore: VectorStore, embeddings: EmbeddingProvider, config?: VectorMemoryConfig);
21
+ initialize(): Promise<void>;
22
+ save(memory: Memory): Promise<string>;
23
+ saveBatch(memories: Memory[]): Promise<string[]>;
24
+ retrieve(query: MemoryQuery): Promise<Memory[]>;
25
+ search(query: string, options: MemorySearchOptions): Promise<Memory[]>;
26
+ get(id: string): Promise<Memory | null>;
27
+ update(id: string, updates: Partial<Memory>): Promise<void>;
28
+ delete(id: string): Promise<void>;
29
+ deleteBatch(ids: string[]): Promise<void>;
30
+ clearSession(sessionId: string): Promise<void>;
31
+ clear(): Promise<void>;
32
+ summarize(options: SummarizeOptions): Promise<string>;
33
+ consolidate(memories: Memory[]): Promise<Memory>;
34
+ getStats(sessionId?: string): Promise<MemoryStats>;
35
+ prune(options?: {
36
+ olderThan?: Date;
37
+ minImportance?: number;
38
+ }): Promise<number>;
39
+ /**
40
+ * Convert search result to memory
41
+ */
42
+ private searchResultToMemory;
43
+ /**
44
+ * Convert document to memory
45
+ */
46
+ private documentToMemory;
47
+ }
48
+ //# sourceMappingURL=vector-memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector-memory.d.ts","sourceRoot":"","sources":["../../../src/memory/stores/vector-memory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EACL,MAAM,EACN,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EAEZ,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGhD,MAAM,WAAW,kBAAkB;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,qBAAa,YAAa,YAAW,WAAW;IAC9C,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,MAAM,CAAqB;gBAGjC,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,iBAAiB,EAC7B,MAAM,GAAE,kBAAuB;IAO3B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA0BrC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA6BhD,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAgD/C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA0CtE,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQvC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC3D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU9C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IAcrD,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IA0BhD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAoClD,KAAK,CAAC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,IAAI,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IA8BpF;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAkB5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAiBzB"}