@hazeljs/rag 0.2.0-alpha.1 → 0.2.0-alpha.3

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 CHANGED
@@ -50,6 +50,9 @@ npm install cohere-ai
50
50
  npm install pdf-parse # PdfLoader
51
51
  npm install mammoth # DocxLoader
52
52
  npm install cheerio # HtmlFileLoader / WebLoader CSS selectors
53
+
54
+ # Memory backend (for createHazelMemoryStoreAdapter from @hazeljs/rag/memory-hazel)
55
+ npm install @hazeljs/memory
53
56
  ```
54
57
 
55
58
  ---
@@ -439,6 +442,34 @@ console.log(response.answer);
439
442
  console.log(response.memories);
440
443
  ```
441
444
 
445
+ ### Using @hazeljs/memory as the backend
446
+
447
+ To back RAG (and agent) memory with **@hazeljs/memory** (in-memory, Prisma, Redis, etc.) in-process, install the optional peer and use the adapter:
448
+
449
+ ```bash
450
+ npm install @hazeljs/memory
451
+ ```
452
+
453
+ ```typescript
454
+ import { MemoryManager, RAGPipelineWithMemory } from '@hazeljs/rag';
455
+ import { createHazelMemoryStoreAdapter } from '@hazeljs/rag/memory-hazel';
456
+ import { MemoryService, createDefaultMemoryStore } from '@hazeljs/memory';
457
+
458
+ // One store and one MemoryManager at app level (in-process, no separate service)
459
+ const hazelStore = createDefaultMemoryStore();
460
+ const memoryService = new MemoryService(hazelStore);
461
+ const ragStore = createHazelMemoryStoreAdapter(memoryService);
462
+ const memoryManager = new MemoryManager(ragStore);
463
+
464
+ // Pass the same MemoryManager to RAG and to every AgentRuntime for shared memory
465
+ const rag = new RAGPipelineWithMemory(config, memoryManager, llmFunction);
466
+ // agentRuntime = new AgentRuntime({ ..., memoryManager });
467
+ ```
468
+
469
+ - **In-process:** RAG, agents, and memory run in the same Node.js process; no HTTP, no separate memory service.
470
+ - **Shared memory:** Create one store and one `MemoryManager` once, then pass the same instance into `RAGPipelineWithMemory` and every `AgentRuntime`.
471
+ - For Prisma or other backends, use `createPrismaMemoryStore` (or the appropriate factory) from `@hazeljs/memory` and pass it to `MemoryService` before wrapping with `createHazelMemoryStoreAdapter`.
472
+
442
473
  ---
443
474
 
444
475
  ## API Reference
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Tests for HazelMemoryStoreAdapter — RAG memory store backed by @hazeljs/memory.
3
+ * Uses real @hazeljs/memory in-memory store when run in monorepo (moduleNameMapper).
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=hazel-memory-store.adapter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hazel-memory-store.adapter.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/memory/hazel-memory-store.adapter.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,193 @@
1
+ "use strict";
2
+ /**
3
+ * Tests for HazelMemoryStoreAdapter — RAG memory store backed by @hazeljs/memory.
4
+ * Uses real @hazeljs/memory in-memory store when run in monorepo (moduleNameMapper).
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const hazel_memory_store_adapter_1 = require("../../memory/stores/hazel-memory-store.adapter");
8
+ const memory_1 = require("@hazeljs/memory");
9
+ const types_1 = require("../../memory/types");
10
+ function makeMemory(overrides = {}) {
11
+ const metadata = {
12
+ timestamp: new Date(),
13
+ sessionId: 's1',
14
+ userId: 'u1',
15
+ ...(overrides.metadata ?? {}),
16
+ };
17
+ return {
18
+ id: overrides.id ?? `mem-${Math.random().toString(36).slice(2)}`,
19
+ type: overrides.type ?? types_1.MemoryType.CONVERSATION,
20
+ content: overrides.content ?? 'hello',
21
+ metadata,
22
+ ...overrides,
23
+ };
24
+ }
25
+ describe('HazelMemoryStoreAdapter', () => {
26
+ let memoryService;
27
+ let adapter;
28
+ beforeEach(async () => {
29
+ const store = (0, memory_1.createDefaultMemoryStore)();
30
+ memoryService = new memory_1.MemoryService(store);
31
+ await memoryService.initialize();
32
+ adapter = (0, hazel_memory_store_adapter_1.createHazelMemoryStoreAdapter)(memoryService);
33
+ await adapter.initialize();
34
+ });
35
+ describe('createHazelMemoryStoreAdapter', () => {
36
+ it('returns HazelMemoryStoreAdapter instance', () => {
37
+ const a = (0, hazel_memory_store_adapter_1.createHazelMemoryStoreAdapter)(memoryService);
38
+ expect(a).toBeInstanceOf(hazel_memory_store_adapter_1.HazelMemoryStoreAdapter);
39
+ });
40
+ });
41
+ describe('initialize', () => {
42
+ it('resolves', async () => {
43
+ await expect(adapter.initialize()).resolves.toBeUndefined();
44
+ });
45
+ });
46
+ describe('save', () => {
47
+ it('saves memory and returns id', async () => {
48
+ const mem = makeMemory({ type: types_1.MemoryType.CONVERSATION });
49
+ const id = await adapter.save(mem);
50
+ expect(id).toBeDefined();
51
+ const got = await adapter.get(id);
52
+ expect(got).not.toBeNull();
53
+ expect(got.content).toBe(mem.content);
54
+ expect(got.type).toBe(types_1.MemoryType.CONVERSATION);
55
+ });
56
+ it('saves WORKING memory with contextKey', async () => {
57
+ const mem = makeMemory({
58
+ type: types_1.MemoryType.WORKING,
59
+ metadata: { sessionId: 's1', contextKey: 'task' },
60
+ });
61
+ const id = await adapter.save(mem);
62
+ expect(id).toBeDefined();
63
+ });
64
+ });
65
+ describe('saveBatch', () => {
66
+ it('saves multiple and returns ids', async () => {
67
+ const memories = [makeMemory({ content: 'a' }), makeMemory({ content: 'b' })];
68
+ const ids = await adapter.saveBatch(memories);
69
+ expect(ids).toHaveLength(2);
70
+ });
71
+ });
72
+ describe('retrieve', () => {
73
+ it('returns empty when sessionId missing', async () => {
74
+ const results = await adapter.retrieve({});
75
+ expect(results).toEqual([]);
76
+ });
77
+ it('returns memories for session', async () => {
78
+ await adapter.save(makeMemory({ metadata: { sessionId: 's1' } }));
79
+ const results = await adapter.retrieve({ sessionId: 's1' });
80
+ expect(results.length).toBeGreaterThanOrEqual(1);
81
+ });
82
+ it('respects limit', async () => {
83
+ await adapter.save(makeMemory({ metadata: { sessionId: 's1' } }));
84
+ const results = await adapter.retrieve({ sessionId: 's1', limit: 1 });
85
+ expect(results.length).toBeLessThanOrEqual(1);
86
+ });
87
+ });
88
+ describe('search', () => {
89
+ it('returns empty when sessionId missing', async () => {
90
+ const results = await adapter.search('query', {});
91
+ expect(results).toEqual([]);
92
+ });
93
+ it('returns memories matching query', async () => {
94
+ await adapter.save(makeMemory({ content: 'searchable text', metadata: { sessionId: 's1' } }));
95
+ const results = await adapter.search('searchable', { sessionId: 's1' });
96
+ expect(Array.isArray(results)).toBe(true);
97
+ });
98
+ });
99
+ describe('get', () => {
100
+ it('returns null for missing id', async () => {
101
+ expect(await adapter.get('nonexistent')).toBeNull();
102
+ });
103
+ it('returns saved memory by id', async () => {
104
+ const mem = makeMemory();
105
+ const id = await adapter.save(mem);
106
+ const got = await adapter.get(id);
107
+ expect(got).not.toBeNull();
108
+ expect(got.id).toBe(id);
109
+ });
110
+ });
111
+ describe('update', () => {
112
+ it('updates memory', async () => {
113
+ const mem = makeMemory({ content: 'old' });
114
+ const id = await adapter.save(mem);
115
+ await adapter.update(id, { content: 'new' });
116
+ const got = await adapter.get(id);
117
+ expect(got.content).toBe('new');
118
+ });
119
+ });
120
+ describe('delete', () => {
121
+ it('removes memory', async () => {
122
+ const id = await adapter.save(makeMemory());
123
+ await adapter.delete(id);
124
+ expect(await adapter.get(id)).toBeNull();
125
+ });
126
+ });
127
+ describe('deleteBatch', () => {
128
+ it('removes all given ids', async () => {
129
+ const id1 = await adapter.save(makeMemory());
130
+ const id2 = await adapter.save(makeMemory());
131
+ await adapter.deleteBatch([id1, id2]);
132
+ expect(await adapter.get(id1)).toBeNull();
133
+ expect(await adapter.get(id2)).toBeNull();
134
+ });
135
+ });
136
+ describe('clearSession', () => {
137
+ it('removes RAG memories for session', async () => {
138
+ await adapter.save(makeMemory({ metadata: { sessionId: 's1' } }));
139
+ await adapter.clearSession('s1');
140
+ const results = await adapter.retrieve({ sessionId: 's1' });
141
+ expect(results).toHaveLength(0);
142
+ });
143
+ });
144
+ describe('summarize', () => {
145
+ it('returns message when no memories', async () => {
146
+ const out = await adapter.summarize({ sessionId: 's1' });
147
+ expect(out).toContain('No memories');
148
+ });
149
+ it('returns concatenated content when memories exist', async () => {
150
+ await adapter.save(makeMemory({ content: 'first', metadata: { sessionId: 's1' } }));
151
+ const out = await adapter.summarize({ sessionId: 's1', maxLength: 500 });
152
+ expect(out.length).toBeGreaterThan(0);
153
+ });
154
+ });
155
+ describe('consolidate', () => {
156
+ it('throws when memories array empty', async () => {
157
+ await expect(adapter.consolidate([])).rejects.toThrow('No memories');
158
+ });
159
+ it('consolidates multiple memories', async () => {
160
+ const m1 = makeMemory({ content: 'one' });
161
+ const m2 = makeMemory({ content: 'two' });
162
+ const id1 = await adapter.save(m1);
163
+ const id2 = await adapter.save(m2);
164
+ const consolidated = await adapter.consolidate([
165
+ { ...m1, id: id1 },
166
+ { ...m2, id: id2 },
167
+ ]);
168
+ expect(consolidated.id).toBeDefined();
169
+ expect(consolidated.content).toContain('one');
170
+ expect(consolidated.content).toContain('two');
171
+ });
172
+ });
173
+ describe('getStats', () => {
174
+ it('returns stats for session', async () => {
175
+ await adapter.save(makeMemory({ metadata: { sessionId: 's1' } }));
176
+ const stats = await adapter.getStats('s1');
177
+ expect(stats.totalMemories).toBeGreaterThanOrEqual(1);
178
+ expect(stats.byType).toBeDefined();
179
+ });
180
+ it('returns global stats when no sessionId', async () => {
181
+ const stats = await adapter.getStats();
182
+ expect(stats).toBeDefined();
183
+ expect(stats.totalMemories).toBeDefined();
184
+ });
185
+ });
186
+ describe('prune', () => {
187
+ it('calls memoryService.prune', async () => {
188
+ const removed = await adapter.prune();
189
+ expect(typeof removed).toBe('number');
190
+ });
191
+ });
192
+ });
193
+ //# sourceMappingURL=hazel-memory-store.adapter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hazel-memory-store.adapter.test.js","sourceRoot":"","sources":["../../../src/__tests__/memory/hazel-memory-store.adapter.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Adapter that implements RAG's MemoryStore by delegating to @hazeljs/memory.
3
+ * Use this to back RAG (and agent) memory with @hazeljs/memory (in-memory, Prisma, Redis, etc.)
4
+ * in-process: one store and one MemoryManager can be shared by RAG and all agents.
5
+ */
6
+ import type { MemoryService } from '@hazeljs/memory';
7
+ import { MemoryStore as RAGMemoryStore } from '../memory-store.interface';
8
+ import { Memory, MemoryQuery, MemorySearchOptions, SummarizeOptions, MemoryStats } from '../types';
9
+ /**
10
+ * Adapter that implements RAG's MemoryStore by delegating to @hazeljs/memory's MemoryService.
11
+ * Use createHazelMemoryStoreAdapter() to construct.
12
+ */
13
+ export declare class HazelMemoryStoreAdapter implements RAGMemoryStore {
14
+ private readonly memoryService;
15
+ constructor(memoryService: MemoryService);
16
+ initialize(): Promise<void>;
17
+ save(memory: Memory): Promise<string>;
18
+ saveBatch(memories: Memory[]): Promise<string[]>;
19
+ retrieve(query: MemoryQuery): Promise<Memory[]>;
20
+ search(query: string, options: MemorySearchOptions): Promise<Memory[]>;
21
+ get(id: string): Promise<Memory | null>;
22
+ update(id: string, updates: Partial<Memory>): Promise<void>;
23
+ delete(id: string): Promise<void>;
24
+ deleteBatch(ids: string[]): Promise<void>;
25
+ clearSession(sessionId: string): Promise<void>;
26
+ clear(): Promise<void>;
27
+ summarize(options: SummarizeOptions): Promise<string>;
28
+ consolidate(memories: Memory[]): Promise<Memory>;
29
+ getStats(sessionId?: string): Promise<MemoryStats>;
30
+ prune(options?: {
31
+ olderThan?: Date;
32
+ minImportance?: number;
33
+ }): Promise<number>;
34
+ }
35
+ /**
36
+ * Create a RAG MemoryStore that delegates to @hazeljs/memory's MemoryService.
37
+ * Use for in-process shared memory: create one store and one MemoryManager at app level,
38
+ * then pass the same MemoryManager to RAG and all agents.
39
+ *
40
+ * @param memoryService - MemoryService from @hazeljs/memory (e.g. from createDefaultMemoryStore or createPrismaMemoryStore)
41
+ */
42
+ export declare function createHazelMemoryStoreAdapter(memoryService: MemoryService): HazelMemoryStoreAdapter;
43
+ //# sourceMappingURL=hazel-memory-store.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hazel-memory-store.adapter.d.ts","sourceRoot":"","sources":["../../../src/memory/stores/hazel-memory-store.adapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AASrD,OAAO,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EACL,MAAM,EACN,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EAEZ,MAAM,UAAU,CAAC;AAuGlB;;;GAGG;AACH,qBAAa,uBAAwB,YAAW,cAAc;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAEnD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBrC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAQhD,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAgC/C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAmBtE,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKvC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB3D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMzC,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY9C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IAUrD,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAmBhD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAwDlD,KAAK,CAAC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,IAAI,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;CAOrF;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,aAAa,EAAE,aAAa,GAC3B,uBAAuB,CAEzB"}
@@ -0,0 +1,337 @@
1
+ "use strict";
2
+ /**
3
+ * Adapter that implements RAG's MemoryStore by delegating to @hazeljs/memory.
4
+ * Use this to back RAG (and agent) memory with @hazeljs/memory (in-memory, Prisma, Redis, etc.)
5
+ * in-process: one store and one MemoryManager can be shared by RAG and all agents.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.HazelMemoryStoreAdapter = void 0;
9
+ exports.createHazelMemoryStoreAdapter = createHazelMemoryStoreAdapter;
10
+ const crypto_1 = require("crypto");
11
+ const memory_1 = require("@hazeljs/memory");
12
+ const types_1 = require("../types");
13
+ const RAG_KEY_PREFIX = 'rag:';
14
+ const RAG_CONV_PREFIX = 'rag:conv:';
15
+ const RAG_ENTITY_PREFIX = 'rag:entity:';
16
+ const RAG_FACT_PREFIX = 'rag:fact:';
17
+ const RAG_EVENT_PREFIX = 'rag:event:';
18
+ const RAG_WORKING_PREFIX = 'rag:working:';
19
+ function ragTypeToCategory(type) {
20
+ switch (type) {
21
+ case types_1.MemoryType.CONVERSATION:
22
+ case types_1.MemoryType.ENTITY:
23
+ case types_1.MemoryType.EVENT:
24
+ return memory_1.MemoryCategory.EPISODIC;
25
+ case types_1.MemoryType.FACT:
26
+ return memory_1.MemoryCategory.SEMANTIC_SUMMARY;
27
+ case types_1.MemoryType.WORKING:
28
+ return memory_1.MemoryCategory.PREFERENCE;
29
+ default:
30
+ return memory_1.MemoryCategory.EPISODIC;
31
+ }
32
+ }
33
+ function keyPrefixForType(type) {
34
+ switch (type) {
35
+ case types_1.MemoryType.CONVERSATION:
36
+ return RAG_CONV_PREFIX;
37
+ case types_1.MemoryType.ENTITY:
38
+ return RAG_ENTITY_PREFIX;
39
+ case types_1.MemoryType.FACT:
40
+ return RAG_FACT_PREFIX;
41
+ case types_1.MemoryType.EVENT:
42
+ return RAG_EVENT_PREFIX;
43
+ case types_1.MemoryType.WORKING:
44
+ return RAG_WORKING_PREFIX;
45
+ default:
46
+ return RAG_KEY_PREFIX;
47
+ }
48
+ }
49
+ function memoryToKey(memory) {
50
+ const sessionId = memory.metadata.sessionId ?? '';
51
+ switch (memory.type) {
52
+ case types_1.MemoryType.WORKING:
53
+ return `rag:working:${sessionId}:${memory.metadata.contextKey ?? memory.id}`;
54
+ case types_1.MemoryType.CONVERSATION:
55
+ return `rag:conv:${memory.id}`;
56
+ case types_1.MemoryType.ENTITY:
57
+ return `rag:entity:${memory.id}`;
58
+ case types_1.MemoryType.FACT:
59
+ return `rag:fact:${memory.id}`;
60
+ case types_1.MemoryType.EVENT:
61
+ return `rag:event:${memory.id}`;
62
+ default:
63
+ return `rag:${memory.type}:${memory.id}`;
64
+ }
65
+ }
66
+ function itemToMemory(item) {
67
+ const value = item.value;
68
+ if (typeof value === 'object' && value !== null && 'type' in value && 'content' in value) {
69
+ return {
70
+ id: item.id,
71
+ type: value.type,
72
+ content: value.content,
73
+ metadata: {
74
+ ...value.metadata,
75
+ timestamp: value.metadata?.timestamp
76
+ ? new Date(value.metadata.timestamp)
77
+ : item.createdAt,
78
+ },
79
+ embedding: value.embedding,
80
+ };
81
+ }
82
+ return {
83
+ id: item.id,
84
+ type: types_1.MemoryType.CONVERSATION,
85
+ content: typeof value === 'string' ? value : JSON.stringify(value),
86
+ metadata: {
87
+ timestamp: item.createdAt,
88
+ sessionId: item.sessionId,
89
+ userId: item.userId,
90
+ },
91
+ };
92
+ }
93
+ function memoryToStoredValue(memory) {
94
+ return {
95
+ type: memory.type,
96
+ content: memory.content,
97
+ metadata: memory.metadata,
98
+ embedding: memory.embedding,
99
+ };
100
+ }
101
+ /**
102
+ * Adapter that implements RAG's MemoryStore by delegating to @hazeljs/memory's MemoryService.
103
+ * Use createHazelMemoryStoreAdapter() to construct.
104
+ */
105
+ class HazelMemoryStoreAdapter {
106
+ constructor(memoryService) {
107
+ this.memoryService = memoryService;
108
+ }
109
+ async initialize() {
110
+ await this.memoryService.initialize();
111
+ }
112
+ async save(memory) {
113
+ const sessionId = memory.metadata.sessionId ?? '';
114
+ const input = {
115
+ id: memory.id,
116
+ userId: sessionId,
117
+ category: ragTypeToCategory(memory.type),
118
+ key: memoryToKey(memory),
119
+ value: memoryToStoredValue(memory),
120
+ confidence: memory.metadata.importance ?? 0.5,
121
+ source: 'explicit',
122
+ evidence: [],
123
+ sessionId: sessionId || undefined,
124
+ };
125
+ const item = await this.memoryService.save(input);
126
+ return item.id;
127
+ }
128
+ async saveBatch(memories) {
129
+ const ids = [];
130
+ for (const m of memories) {
131
+ ids.push(await this.save(m));
132
+ }
133
+ return ids;
134
+ }
135
+ async retrieve(query) {
136
+ const sessionId = query.sessionId;
137
+ if (!sessionId) {
138
+ return [];
139
+ }
140
+ const types = query.types ?? [
141
+ types_1.MemoryType.CONVERSATION,
142
+ types_1.MemoryType.ENTITY,
143
+ types_1.MemoryType.FACT,
144
+ types_1.MemoryType.EVENT,
145
+ types_1.MemoryType.WORKING,
146
+ ];
147
+ const categories = [...new Set(types.map(ragTypeToCategory))];
148
+ const hazelQuery = {
149
+ userId: sessionId,
150
+ category: categories.length === 1 ? categories[0] : categories,
151
+ notExpired: true,
152
+ limit: query.limit ?? 100,
153
+ orderBy: 'updatedAt',
154
+ order: 'desc',
155
+ };
156
+ const items = await this.memoryService.query(hazelQuery);
157
+ const prefixSet = new Set(types.map(keyPrefixForType));
158
+ const filtered = items.filter((item) => {
159
+ for (const prefix of prefixSet) {
160
+ if (item.key.startsWith(prefix))
161
+ return true;
162
+ }
163
+ return false;
164
+ });
165
+ return filtered.map(itemToMemory);
166
+ }
167
+ async search(query, options) {
168
+ const sessionId = options.sessionId;
169
+ if (!sessionId) {
170
+ return [];
171
+ }
172
+ const results = await this.memoryService.search(query, {
173
+ userId: sessionId,
174
+ category: [memory_1.MemoryCategory.EPISODIC, memory_1.MemoryCategory.SEMANTIC_SUMMARY],
175
+ topK: options.topK ?? 10,
176
+ minScore: options.minScore,
177
+ });
178
+ const memories = results.map(itemToMemory);
179
+ const queryLower = query.toLowerCase();
180
+ const scored = memories
181
+ .filter((m) => m.content.toLowerCase().includes(queryLower) || true)
182
+ .slice(0, options.topK ?? 10);
183
+ return scored;
184
+ }
185
+ async get(id) {
186
+ const item = await this.memoryService.get(id);
187
+ return item ? itemToMemory(item) : null;
188
+ }
189
+ async update(id, updates) {
190
+ const item = await this.memoryService.get(id);
191
+ if (!item)
192
+ return;
193
+ const value = item.value;
194
+ const merged = {
195
+ type: updates.type ?? value.type,
196
+ content: updates.content ?? value.content,
197
+ metadata: { ...value.metadata, ...updates.metadata },
198
+ embedding: updates.embedding ?? value.embedding,
199
+ };
200
+ await this.memoryService.update(id, {
201
+ value: merged,
202
+ confidence: updates.metadata?.importance ?? item.confidence,
203
+ });
204
+ }
205
+ async delete(id) {
206
+ await this.memoryService.delete(id);
207
+ }
208
+ async deleteBatch(ids) {
209
+ for (const id of ids) {
210
+ await this.memoryService.delete(id);
211
+ }
212
+ }
213
+ async clearSession(sessionId) {
214
+ const items = await this.memoryService.query({
215
+ userId: sessionId,
216
+ notExpired: true,
217
+ limit: 10000,
218
+ });
219
+ const ragItems = items.filter((i) => i.key.startsWith(RAG_KEY_PREFIX));
220
+ for (const item of ragItems) {
221
+ await this.memoryService.delete(item.id);
222
+ }
223
+ }
224
+ async clear() {
225
+ // When backed by shared @hazeljs/memory, we cannot list all RAG items without userId.
226
+ // Use clearSession(sessionId) per session, or ensure the store supports listing by key prefix.
227
+ }
228
+ async summarize(options) {
229
+ const memories = await this.retrieve({
230
+ sessionId: options.sessionId,
231
+ limit: options.maxLength ?? 50,
232
+ });
233
+ if (memories.length === 0)
234
+ return 'No memories to summarize.';
235
+ const contents = memories.map((m) => m.content).join('\n');
236
+ return contents.slice(0, options.maxLength ?? 1000);
237
+ }
238
+ async consolidate(memories) {
239
+ if (memories.length === 0) {
240
+ throw new Error('No memories to consolidate');
241
+ }
242
+ const consolidated = {
243
+ id: (0, crypto_1.randomUUID)(),
244
+ type: memories[0].type,
245
+ content: memories.map((m) => m.content).join('\n\n'),
246
+ metadata: {
247
+ ...memories[0].metadata,
248
+ timestamp: new Date(),
249
+ consolidated: true,
250
+ sourceIds: memories.map((m) => m.id),
251
+ },
252
+ };
253
+ await this.save(consolidated);
254
+ return consolidated;
255
+ }
256
+ async getStats(sessionId) {
257
+ if (sessionId) {
258
+ const items = await this.memoryService.query({
259
+ userId: sessionId,
260
+ notExpired: true,
261
+ limit: 10000,
262
+ });
263
+ const ragItems = items.filter((i) => i.key.startsWith(RAG_KEY_PREFIX));
264
+ const byType = {
265
+ [types_1.MemoryType.CONVERSATION]: 0,
266
+ [types_1.MemoryType.ENTITY]: 0,
267
+ [types_1.MemoryType.FACT]: 0,
268
+ [types_1.MemoryType.EVENT]: 0,
269
+ [types_1.MemoryType.WORKING]: 0,
270
+ };
271
+ let totalImportance = 0;
272
+ let oldestTime = Number.MAX_SAFE_INTEGER;
273
+ let newestTime = 0;
274
+ for (const item of ragItems) {
275
+ const key = item.key;
276
+ if (key.startsWith(RAG_CONV_PREFIX))
277
+ byType[types_1.MemoryType.CONVERSATION]++;
278
+ else if (key.startsWith(RAG_ENTITY_PREFIX))
279
+ byType[types_1.MemoryType.ENTITY]++;
280
+ else if (key.startsWith(RAG_FACT_PREFIX))
281
+ byType[types_1.MemoryType.FACT]++;
282
+ else if (key.startsWith(RAG_EVENT_PREFIX))
283
+ byType[types_1.MemoryType.EVENT]++;
284
+ else if (key.startsWith(RAG_WORKING_PREFIX))
285
+ byType[types_1.MemoryType.WORKING]++;
286
+ totalImportance += item.confidence;
287
+ const t = item.updatedAt.getTime();
288
+ if (t < oldestTime)
289
+ oldestTime = t;
290
+ if (t > newestTime)
291
+ newestTime = t;
292
+ }
293
+ const n = ragItems.length;
294
+ return {
295
+ totalMemories: n,
296
+ byType,
297
+ oldestMemory: n > 0 ? new Date(oldestTime) : new Date(0),
298
+ newestMemory: n > 0 ? new Date(newestTime) : new Date(0),
299
+ averageImportance: n > 0 ? totalImportance / n : 0,
300
+ };
301
+ }
302
+ const hazelStats = await this.memoryService.getStats();
303
+ const byType = {
304
+ [types_1.MemoryType.CONVERSATION]: hazelStats.byCategory[memory_1.MemoryCategory.EPISODIC] ?? 0,
305
+ [types_1.MemoryType.ENTITY]: 0,
306
+ [types_1.MemoryType.EVENT]: 0,
307
+ [types_1.MemoryType.FACT]: hazelStats.byCategory[memory_1.MemoryCategory.SEMANTIC_SUMMARY] ?? 0,
308
+ [types_1.MemoryType.WORKING]: hazelStats.byCategory[memory_1.MemoryCategory.PREFERENCE] ?? 0,
309
+ };
310
+ return {
311
+ totalMemories: hazelStats.total,
312
+ byType,
313
+ oldestMemory: hazelStats.oldestMemory ?? new Date(0),
314
+ newestMemory: hazelStats.newestMemory ?? new Date(0),
315
+ averageImportance: 0,
316
+ };
317
+ }
318
+ async prune(options) {
319
+ const pruneOpts = {
320
+ olderThan: options?.olderThan,
321
+ minConfidence: options?.minImportance,
322
+ };
323
+ return this.memoryService.prune(pruneOpts);
324
+ }
325
+ }
326
+ exports.HazelMemoryStoreAdapter = HazelMemoryStoreAdapter;
327
+ /**
328
+ * Create a RAG MemoryStore that delegates to @hazeljs/memory's MemoryService.
329
+ * Use for in-process shared memory: create one store and one MemoryManager at app level,
330
+ * then pass the same MemoryManager to RAG and all agents.
331
+ *
332
+ * @param memoryService - MemoryService from @hazeljs/memory (e.g. from createDefaultMemoryStore or createPrismaMemoryStore)
333
+ */
334
+ function createHazelMemoryStoreAdapter(memoryService) {
335
+ return new HazelMemoryStoreAdapter(memoryService);
336
+ }
337
+ //# sourceMappingURL=hazel-memory-store.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hazel-memory-store.adapter.js","sourceRoot":"","sources":["../../../src/memory/stores/hazel-memory-store.adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Entry point for RAG memory backed by @hazeljs/memory.
3
+ * Import from '@hazeljs/rag/memory-hazel' and ensure @hazeljs/memory is installed.
4
+ */
5
+ export { HazelMemoryStoreAdapter, createHazelMemoryStoreAdapter, } from './memory/stores/hazel-memory-store.adapter';
6
+ //# sourceMappingURL=memory-hazel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-hazel.d.ts","sourceRoot":"","sources":["../src/memory-hazel.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,uBAAuB,EACvB,6BAA6B,GAC9B,MAAM,4CAA4C,CAAC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createHazelMemoryStoreAdapter = exports.HazelMemoryStoreAdapter = void 0;
4
+ /**
5
+ * Entry point for RAG memory backed by @hazeljs/memory.
6
+ * Import from '@hazeljs/rag/memory-hazel' and ensure @hazeljs/memory is installed.
7
+ */
8
+ var hazel_memory_store_adapter_1 = require("./memory/stores/hazel-memory-store.adapter");
9
+ Object.defineProperty(exports, "HazelMemoryStoreAdapter", { enumerable: true, get: function () { return hazel_memory_store_adapter_1.HazelMemoryStoreAdapter; } });
10
+ Object.defineProperty(exports, "createHazelMemoryStoreAdapter", { enumerable: true, get: function () { return hazel_memory_store_adapter_1.createHazelMemoryStoreAdapter; } });
11
+ //# sourceMappingURL=memory-hazel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-hazel.js","sourceRoot":"","sources":["../src/memory-hazel.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,yFAGoD;AAFlD,qIAAA,uBAAuB,OAAA;AACvB,2IAAA,6BAA6B,OAAA"}
package/package.json CHANGED
@@ -1,9 +1,19 @@
1
1
  {
2
2
  "name": "@hazeljs/rag",
3
- "version": "0.2.0-alpha.1",
3
+ "version": "0.2.0-alpha.3",
4
4
  "description": "Retrieval-Augmented Generation (RAG) and vector search for HazelJS framework",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "default": "./dist/index.js"
11
+ },
12
+ "./memory-hazel": {
13
+ "types": "./dist/memory-hazel.d.ts",
14
+ "default": "./dist/memory-hazel.js"
15
+ }
16
+ },
7
17
  "files": [
8
18
  "dist"
9
19
  ],
@@ -15,12 +25,13 @@
15
25
  "clean": "rm -rf dist"
16
26
  },
17
27
  "dependencies": {
18
- "@hazeljs/prompts": "^0.2.0-alpha.1",
28
+ "@hazeljs/prompts": "^0.2.0-alpha.3",
19
29
  "reflect-metadata": "^0.2.1"
20
30
  },
21
31
  "peerDependencies": {
22
32
  "@hazeljs/ai": ">=0.2.0-beta.0",
23
33
  "@hazeljs/core": ">=0.2.0-beta.0",
34
+ "@hazeljs/memory": ">=0.2.0-beta.0",
24
35
  "@huggingface/inference": "^2.0.0",
25
36
  "@pinecone-database/pinecone": "^3.0.0",
26
37
  "@qdrant/js-client-rest": "^1.9.0",
@@ -62,6 +73,9 @@
62
73
  },
63
74
  "cheerio": {
64
75
  "optional": true
76
+ },
77
+ "@hazeljs/memory": {
78
+ "optional": true
65
79
  }
66
80
  },
67
81
  "jest": {
@@ -71,7 +85,9 @@
71
85
  "**/src/__tests__/**/*.test.ts"
72
86
  ],
73
87
  "moduleNameMapper": {
74
- "^@hazeljs/prompts$": "<rootDir>/../prompts/src/index.ts"
88
+ "^@hazeljs/prompts$": "<rootDir>/../prompts/src/index.ts",
89
+ "^@hazeljs/memory$": "<rootDir>/../memory/src/index.ts",
90
+ "^@hazeljs/memory/prisma$": "<rootDir>/../memory/src/prisma.ts"
75
91
  },
76
92
  "collectCoverageFrom": [
77
93
  "src/**/*.ts",
@@ -105,6 +121,7 @@
105
121
  }
106
122
  },
107
123
  "devDependencies": {
124
+ "@hazeljs/memory": "^0.2.0-alpha.3",
108
125
  "@types/node": "^20.17.50",
109
126
  "@typescript-eslint/eslint-plugin": "^8.18.2",
110
127
  "@typescript-eslint/parser": "^8.18.2",
@@ -142,5 +159,5 @@
142
159
  "url": "https://github.com/hazeljs/hazel-js/issues"
143
160
  },
144
161
  "homepage": "https://hazeljs.com",
145
- "gitHead": "cbc5ee2c12ced28fd0576faf13c5f078c1e8421e"
162
+ "gitHead": "17ca4464a7955c10c0e4e151a83daf900213bb7a"
146
163
  }