@claude-flow/memory 3.0.0-alpha.1 → 3.0.0-alpha.7

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 (156) hide show
  1. package/README.md +356 -18
  2. package/dist/agent-memory-scope.d.ts +131 -0
  3. package/dist/agent-memory-scope.d.ts.map +1 -0
  4. package/dist/agent-memory-scope.js +215 -0
  5. package/dist/agent-memory-scope.js.map +1 -0
  6. package/dist/agent-memory-scope.test.d.ts +8 -0
  7. package/dist/agent-memory-scope.test.d.ts.map +1 -0
  8. package/dist/agent-memory-scope.test.js +463 -0
  9. package/dist/agent-memory-scope.test.js.map +1 -0
  10. package/dist/agentdb-adapter.d.ts +22 -3
  11. package/dist/agentdb-adapter.d.ts.map +1 -1
  12. package/dist/agentdb-adapter.js +135 -8
  13. package/dist/agentdb-adapter.js.map +1 -1
  14. package/dist/auto-memory-bridge.d.ts +226 -0
  15. package/dist/auto-memory-bridge.d.ts.map +1 -0
  16. package/dist/auto-memory-bridge.js +709 -0
  17. package/dist/auto-memory-bridge.js.map +1 -0
  18. package/dist/auto-memory-bridge.test.d.ts +8 -0
  19. package/dist/auto-memory-bridge.test.d.ts.map +1 -0
  20. package/dist/auto-memory-bridge.test.js +754 -0
  21. package/dist/auto-memory-bridge.test.js.map +1 -0
  22. package/dist/benchmark.test.d.ts +2 -0
  23. package/dist/benchmark.test.d.ts.map +1 -0
  24. package/dist/benchmark.test.js +277 -0
  25. package/dist/benchmark.test.js.map +1 -0
  26. package/dist/index.d.ts +8 -0
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +8 -0
  29. package/dist/index.js.map +1 -1
  30. package/dist/learning-bridge.d.ts +137 -0
  31. package/dist/learning-bridge.d.ts.map +1 -0
  32. package/dist/learning-bridge.js +335 -0
  33. package/dist/learning-bridge.js.map +1 -0
  34. package/dist/learning-bridge.test.d.ts +8 -0
  35. package/dist/learning-bridge.test.d.ts.map +1 -0
  36. package/dist/learning-bridge.test.js +578 -0
  37. package/dist/learning-bridge.test.js.map +1 -0
  38. package/dist/memory-graph.d.ts +100 -0
  39. package/dist/memory-graph.d.ts.map +1 -0
  40. package/dist/memory-graph.js +333 -0
  41. package/dist/memory-graph.js.map +1 -0
  42. package/dist/memory-graph.test.d.ts +8 -0
  43. package/dist/memory-graph.test.d.ts.map +1 -0
  44. package/dist/memory-graph.test.js +609 -0
  45. package/dist/memory-graph.test.js.map +1 -0
  46. package/dist/types.d.ts +3 -0
  47. package/dist/types.d.ts.map +1 -1
  48. package/package.json +19 -4
  49. package/.agentic-flow/intelligence.json +0 -16
  50. package/__tests__/coverage/base.css +0 -224
  51. package/__tests__/coverage/block-navigation.js +0 -87
  52. package/__tests__/coverage/coverage-final.json +0 -19
  53. package/__tests__/coverage/favicon.png +0 -0
  54. package/__tests__/coverage/index.html +0 -206
  55. package/__tests__/coverage/lcov-report/base.css +0 -224
  56. package/__tests__/coverage/lcov-report/block-navigation.js +0 -87
  57. package/__tests__/coverage/lcov-report/favicon.png +0 -0
  58. package/__tests__/coverage/lcov-report/index.html +0 -206
  59. package/__tests__/coverage/lcov-report/prettify.css +0 -1
  60. package/__tests__/coverage/lcov-report/prettify.js +0 -2
  61. package/__tests__/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  62. package/__tests__/coverage/lcov-report/sorter.js +0 -210
  63. package/__tests__/coverage/lcov-report/src/agentdb-adapter.ts.html +0 -2737
  64. package/__tests__/coverage/lcov-report/src/agentdb-backend.ts.html +0 -3130
  65. package/__tests__/coverage/lcov-report/src/application/commands/delete-memory.command.ts.html +0 -601
  66. package/__tests__/coverage/lcov-report/src/application/commands/index.html +0 -131
  67. package/__tests__/coverage/lcov-report/src/application/commands/store-memory.command.ts.html +0 -394
  68. package/__tests__/coverage/lcov-report/src/application/queries/index.html +0 -116
  69. package/__tests__/coverage/lcov-report/src/application/queries/search-memory.query.ts.html +0 -796
  70. package/__tests__/coverage/lcov-report/src/application/services/index.html +0 -116
  71. package/__tests__/coverage/lcov-report/src/application/services/memory-application-service.ts.html +0 -793
  72. package/__tests__/coverage/lcov-report/src/cache-manager.ts.html +0 -1633
  73. package/__tests__/coverage/lcov-report/src/database-provider.ts.html +0 -1618
  74. package/__tests__/coverage/lcov-report/src/domain/entities/index.html +0 -116
  75. package/__tests__/coverage/lcov-report/src/domain/entities/memory-entry.ts.html +0 -952
  76. package/__tests__/coverage/lcov-report/src/domain/services/index.html +0 -116
  77. package/__tests__/coverage/lcov-report/src/domain/services/memory-domain-service.ts.html +0 -1294
  78. package/__tests__/coverage/lcov-report/src/hnsw-index.ts.html +0 -3124
  79. package/__tests__/coverage/lcov-report/src/hybrid-backend.ts.html +0 -2167
  80. package/__tests__/coverage/lcov-report/src/index.html +0 -266
  81. package/__tests__/coverage/lcov-report/src/infrastructure/repositories/hybrid-memory-repository.ts.html +0 -1633
  82. package/__tests__/coverage/lcov-report/src/infrastructure/repositories/index.html +0 -116
  83. package/__tests__/coverage/lcov-report/src/migration.ts.html +0 -2092
  84. package/__tests__/coverage/lcov-report/src/query-builder.ts.html +0 -1711
  85. package/__tests__/coverage/lcov-report/src/sqlite-backend.ts.html +0 -2281
  86. package/__tests__/coverage/lcov-report/src/sqljs-backend.ts.html +0 -2374
  87. package/__tests__/coverage/lcov-report/src/types.ts.html +0 -2266
  88. package/__tests__/coverage/lcov.info +0 -10238
  89. package/__tests__/coverage/prettify.css +0 -1
  90. package/__tests__/coverage/prettify.js +0 -2
  91. package/__tests__/coverage/sort-arrow-sprite.png +0 -0
  92. package/__tests__/coverage/sorter.js +0 -210
  93. package/__tests__/coverage/src/agentdb-adapter.ts.html +0 -2737
  94. package/__tests__/coverage/src/agentdb-backend.ts.html +0 -3130
  95. package/__tests__/coverage/src/application/commands/delete-memory.command.ts.html +0 -601
  96. package/__tests__/coverage/src/application/commands/index.html +0 -131
  97. package/__tests__/coverage/src/application/commands/store-memory.command.ts.html +0 -394
  98. package/__tests__/coverage/src/application/queries/index.html +0 -116
  99. package/__tests__/coverage/src/application/queries/search-memory.query.ts.html +0 -796
  100. package/__tests__/coverage/src/application/services/index.html +0 -116
  101. package/__tests__/coverage/src/application/services/memory-application-service.ts.html +0 -793
  102. package/__tests__/coverage/src/cache-manager.ts.html +0 -1633
  103. package/__tests__/coverage/src/database-provider.ts.html +0 -1618
  104. package/__tests__/coverage/src/domain/entities/index.html +0 -116
  105. package/__tests__/coverage/src/domain/entities/memory-entry.ts.html +0 -952
  106. package/__tests__/coverage/src/domain/services/index.html +0 -116
  107. package/__tests__/coverage/src/domain/services/memory-domain-service.ts.html +0 -1294
  108. package/__tests__/coverage/src/hnsw-index.ts.html +0 -3124
  109. package/__tests__/coverage/src/hybrid-backend.ts.html +0 -2167
  110. package/__tests__/coverage/src/index.html +0 -266
  111. package/__tests__/coverage/src/infrastructure/repositories/hybrid-memory-repository.ts.html +0 -1633
  112. package/__tests__/coverage/src/infrastructure/repositories/index.html +0 -116
  113. package/__tests__/coverage/src/migration.ts.html +0 -2092
  114. package/__tests__/coverage/src/query-builder.ts.html +0 -1711
  115. package/__tests__/coverage/src/sqlite-backend.ts.html +0 -2281
  116. package/__tests__/coverage/src/sqljs-backend.ts.html +0 -2374
  117. package/__tests__/coverage/src/types.ts.html +0 -2266
  118. package/benchmarks/cache-hit-rate.bench.ts +0 -535
  119. package/benchmarks/hnsw-indexing.bench.ts +0 -552
  120. package/benchmarks/memory-write.bench.ts +0 -469
  121. package/benchmarks/vector-search.bench.ts +0 -449
  122. package/docs/AGENTDB-INTEGRATION.md +0 -388
  123. package/docs/CROSS_PLATFORM.md +0 -505
  124. package/docs/WINDOWS_SUPPORT.md +0 -422
  125. package/examples/agentdb-example.ts +0 -345
  126. package/examples/cross-platform-usage.ts +0 -326
  127. package/framework/benchmark.ts +0 -112
  128. package/src/agentdb-adapter.ts +0 -884
  129. package/src/agentdb-backend.test.ts +0 -339
  130. package/src/agentdb-backend.ts +0 -1016
  131. package/src/application/commands/delete-memory.command.ts +0 -172
  132. package/src/application/commands/store-memory.command.ts +0 -103
  133. package/src/application/index.ts +0 -36
  134. package/src/application/queries/search-memory.query.ts +0 -237
  135. package/src/application/services/memory-application-service.ts +0 -236
  136. package/src/cache-manager.ts +0 -516
  137. package/src/database-provider.test.ts +0 -364
  138. package/src/database-provider.ts +0 -511
  139. package/src/domain/entities/memory-entry.ts +0 -289
  140. package/src/domain/index.ts +0 -35
  141. package/src/domain/repositories/memory-repository.interface.ts +0 -120
  142. package/src/domain/services/memory-domain-service.ts +0 -403
  143. package/src/hnsw-index.ts +0 -1013
  144. package/src/hybrid-backend.test.ts +0 -399
  145. package/src/hybrid-backend.ts +0 -694
  146. package/src/index.ts +0 -515
  147. package/src/infrastructure/index.ts +0 -23
  148. package/src/infrastructure/repositories/hybrid-memory-repository.ts +0 -516
  149. package/src/migration.ts +0 -669
  150. package/src/query-builder.ts +0 -542
  151. package/src/sqlite-backend.ts +0 -732
  152. package/src/sqljs-backend.ts +0 -763
  153. package/src/types.ts +0 -727
  154. package/tsconfig.json +0 -9
  155. package/tsconfig.tsbuildinfo +0 -1
  156. package/verify-cross-platform.ts +0 -170
@@ -1,388 +0,0 @@
1
- # AgentDB Integration Guide
2
-
3
- ## Overview
4
-
5
- The V3 memory module now integrates with **agentdb@2.0.0-alpha.3.4** to provide high-performance vector search capabilities with HNSW indexing (150x-12,500x faster than brute-force approaches).
6
-
7
- ## Features
8
-
9
- ### AgentDBBackend
10
-
11
- The `AgentDBBackend` class provides:
12
-
13
- - **HNSW Vector Search**: Approximate nearest neighbor search with sub-millisecond query times
14
- - **Graceful Fallback**: Works without native dependencies (hnswlib-node)
15
- - **Optional Dependency Handling**: Automatically falls back to pure JavaScript/WASM if native bindings unavailable
16
- - **Hybrid Integration**: Seamlessly works with `HybridBackend` for combined SQLite + AgentDB queries
17
-
18
- ### Performance Targets
19
-
20
- Based on ADR-006 and ADR-009:
21
-
22
- - **150x-12,500x** faster vector search compared to brute-force
23
- - **Sub-millisecond** query latency for k-NN search
24
- - **Automatic backend selection**: Native hnswlib → ruvector → WASM fallback
25
-
26
- ## Installation
27
-
28
- ```bash
29
- # Core package (required)
30
- npm install agentdb@2.0.0-alpha.3.4
31
-
32
- # Optional native dependencies for maximum performance
33
- npm install hnswlib-node@^3.0.0 better-sqlite3@^11.0.0
34
- ```
35
-
36
- ## Usage
37
-
38
- ### Basic Setup
39
-
40
- ```typescript
41
- import { AgentDBBackend } from '@claude-flow/memory';
42
-
43
- const backend = new AgentDBBackend({
44
- dbPath: './data/memory.db',
45
- namespace: 'default',
46
- vectorDimension: 1536, // For OpenAI embeddings
47
- hnswM: 16,
48
- hnswEfConstruction: 200,
49
- hnswEfSearch: 100,
50
- embeddingGenerator: async (text) => {
51
- // Your embedding function
52
- return embeddings.embed(text);
53
- },
54
- });
55
-
56
- await backend.initialize();
57
- ```
58
-
59
- ### Hybrid Backend (Recommended)
60
-
61
- Per ADR-009, the recommended approach is to use `HybridBackend`:
62
-
63
- ```typescript
64
- import { HybridBackend } from '@claude-flow/memory';
65
-
66
- const memory = new HybridBackend({
67
- // SQLite for structured queries
68
- sqlite: {
69
- dbPath: './data/memory-sqlite.db',
70
- },
71
-
72
- // AgentDB for vector search
73
- agentdb: {
74
- dbPath: './data/memory-agentdb.db',
75
- vectorDimension: 1536,
76
- hnswM: 16,
77
- hnswEfConstruction: 200,
78
- },
79
-
80
- embeddingGenerator: embedFn,
81
- dualWrite: true, // Write to both backends
82
- });
83
-
84
- await memory.initialize();
85
-
86
- // Structured queries go to SQLite
87
- const user = await memory.getByKey('users', 'john@example.com');
88
-
89
- // Semantic queries go to AgentDB (150x faster)
90
- const similar = await memory.querySemantic({
91
- content: 'authentication patterns',
92
- k: 10,
93
- threshold: 0.7,
94
- });
95
-
96
- // Hybrid queries combine both
97
- const results = await memory.queryHybrid({
98
- semantic: { content: 'security vulnerabilities', k: 20 },
99
- structured: { namespace: 'security', createdAfter: Date.now() - 86400000 },
100
- combineStrategy: 'intersection',
101
- });
102
- ```
103
-
104
- ### Semantic Search
105
-
106
- ```typescript
107
- // Store entries with embeddings
108
- await backend.store({
109
- id: 'entry-1',
110
- key: 'auth-patterns',
111
- content: 'OAuth 2.0 implementation patterns for secure authentication',
112
- embedding: await embedFn('OAuth 2.0 implementation patterns...'),
113
- // ... other fields
114
- });
115
-
116
- // Semantic search by content
117
- const results = await backend.query({
118
- type: 'semantic',
119
- content: 'user authentication best practices',
120
- limit: 10,
121
- threshold: 0.8,
122
- });
123
-
124
- // Or search with pre-computed embedding
125
- const results = await backend.search(
126
- queryEmbedding,
127
- { k: 10, threshold: 0.7 }
128
- );
129
- ```
130
-
131
- ### Query Routing
132
-
133
- The `HybridBackend` automatically routes queries to the optimal backend:
134
-
135
- ```typescript
136
- // Exact match → SQLite
137
- await memory.query({ type: 'exact', namespace: 'users', key: 'john@example.com' });
138
-
139
- // Prefix search → SQLite (indexed)
140
- await memory.query({ type: 'prefix', keyPrefix: 'auth-' });
141
-
142
- // Semantic search → AgentDB (HNSW)
143
- await memory.query({ type: 'semantic', content: 'security patterns', limit: 10 });
144
-
145
- // Hybrid → Both backends with intelligent merging
146
- await memory.query({ type: 'hybrid', content: 'patterns', namespace: 'security' });
147
- ```
148
-
149
- ## Configuration Options
150
-
151
- ### AgentDBBackendConfig
152
-
153
- ```typescript
154
- interface AgentDBBackendConfig {
155
- /** Database path (default: ':memory:') */
156
- dbPath?: string;
157
-
158
- /** Namespace for memory organization */
159
- namespace?: string;
160
-
161
- /** Force WASM backend (skip native hnswlib) */
162
- forceWasm?: boolean;
163
-
164
- /** Vector backend: 'auto', 'ruvector', 'hnswlib' */
165
- vectorBackend?: 'auto' | 'ruvector' | 'hnswlib';
166
-
167
- /** Vector dimensions (default: 1536) */
168
- vectorDimension?: number;
169
-
170
- /** HNSW M parameter (connections per layer, default: 16) */
171
- hnswM?: number;
172
-
173
- /** HNSW efConstruction (build quality, default: 200) */
174
- hnswEfConstruction?: number;
175
-
176
- /** HNSW efSearch (search quality, default: 100) */
177
- hnswEfSearch?: number;
178
-
179
- /** Enable caching */
180
- cacheEnabled?: boolean;
181
-
182
- /** Embedding generator function */
183
- embeddingGenerator?: EmbeddingGenerator;
184
-
185
- /** Maximum entries */
186
- maxEntries?: number;
187
- }
188
- ```
189
-
190
- ### HNSW Tuning
191
-
192
- - **M (16-64)**: Higher = better recall, more memory
193
- - 16: Fast, less memory (recommended for most cases)
194
- - 32: Balanced
195
- - 64: High recall, more memory
196
-
197
- - **efConstruction (100-400)**: Build time vs. quality
198
- - 100: Fast build, lower quality
199
- - 200: Balanced (recommended)
200
- - 400: Slow build, high quality
201
-
202
- - **efSearch (50-200)**: Search time vs. recall
203
- - 50: Fast search, lower recall
204
- - 100: Balanced (recommended)
205
- - 200: Slower search, high recall
206
-
207
- ## Graceful Degradation
208
-
209
- The backend handles missing dependencies gracefully:
210
-
211
- ```typescript
212
- // 1. Try native hnswlib (fastest)
213
- // 2. Fallback to ruvector (fast, pure JS)
214
- // 3. Fallback to WASM (compatible)
215
- // 4. Fallback to in-memory brute-force (always works)
216
-
217
- const backend = new AgentDBBackend();
218
- await backend.initialize();
219
-
220
- // Check availability
221
- if (backend.isAvailable()) {
222
- console.log('Using AgentDB with HNSW');
223
- } else {
224
- console.log('Using fallback in-memory storage');
225
- }
226
- ```
227
-
228
- ## Performance Metrics
229
-
230
- ### Benchmarks (from agentdb@2.0.0-alpha.3.4)
231
-
232
- | Operation | Brute Force | HNSW (hnswlib) | Speedup |
233
- |-----------|-------------|----------------|---------|
234
- | 10k vectors, k=10 | 150ms | 1ms | 150x |
235
- | 100k vectors, k=10 | 1500ms | 2ms | 750x |
236
- | 1M vectors, k=10 | 15000ms | 3ms | 5000x |
237
-
238
- ### Memory Usage
239
-
240
- - **No quantization**: ~4 bytes per dimension per vector
241
- - **8-bit quantization**: ~1 byte per dimension (4x reduction)
242
- - **4-bit quantization**: ~0.5 bytes per dimension (8x reduction)
243
-
244
- ## Advanced Features
245
-
246
- ### Vector Quantization
247
-
248
- ```typescript
249
- const backend = new AgentDBBackend({
250
- // Enable quantization for 50-75% memory reduction
251
- quantization: {
252
- type: 'scalar',
253
- bits: 8, // 4, 8, or 16
254
- },
255
- });
256
- ```
257
-
258
- ### Custom Distance Metrics
259
-
260
- ```typescript
261
- const backend = new AgentDBBackend({
262
- vectorBackend: 'hnswlib',
263
- distanceMetric: 'cosine', // 'cosine', 'euclidean', 'dot'
264
- });
265
- ```
266
-
267
- ### Health Monitoring
268
-
269
- ```typescript
270
- const health = await backend.healthCheck();
271
-
272
- console.log(health.status); // 'healthy' | 'degraded' | 'unhealthy'
273
- console.log(health.components.index); // HNSW index health
274
-
275
- if (health.status === 'degraded') {
276
- console.log('Issues:', health.issues);
277
- console.log('Recommendations:', health.recommendations);
278
- }
279
- ```
280
-
281
- ### Statistics
282
-
283
- ```typescript
284
- const stats = await backend.getStats();
285
-
286
- console.log('Total entries:', stats.totalEntries);
287
- console.log('Avg query time:', stats.avgQueryTime, 'ms');
288
- console.log('Avg search time:', stats.avgSearchTime, 'ms');
289
-
290
- if (stats.hnswStats) {
291
- console.log('HNSW vectors:', stats.hnswStats.vectorCount);
292
- console.log('HNSW build time:', stats.hnswStats.buildTime, 'ms');
293
- }
294
- ```
295
-
296
- ## Migration from Legacy Systems
297
-
298
- The memory module includes migration support for legacy systems:
299
-
300
- ```typescript
301
- import { MemoryMigrator } from '@claude-flow/memory';
302
-
303
- const migrator = new MemoryMigrator(
304
- backend,
305
- {
306
- source: 'memory-manager',
307
- sourcePath: './old-memory.json',
308
- batchSize: 1000,
309
- },
310
- embeddingGenerator
311
- );
312
-
313
- const result = await migrator.migrate();
314
-
315
- console.log('Migrated:', result.totalMigrated);
316
- console.log('Failed:', result.totalFailed);
317
- ```
318
-
319
- ## Troubleshooting
320
-
321
- ### AgentDB not available
322
-
323
- ```
324
- AgentDB not available. Install agentdb@2.0.0-alpha.3.4 for vector search support.
325
- ```
326
-
327
- **Solution**: Install agentdb:
328
- ```bash
329
- npm install agentdb@2.0.0-alpha.3.4
330
- ```
331
-
332
- ### Native bindings failed
333
-
334
- ```
335
- Failed to load hnswlib-node, falling back to WASM
336
- ```
337
-
338
- **Solution**: This is normal. The system automatically falls back to WASM. For maximum performance, install build tools:
339
-
340
- ```bash
341
- # Ubuntu/Debian
342
- sudo apt-get install build-essential python3
343
-
344
- # macOS
345
- xcode-select --install
346
-
347
- # Then reinstall
348
- npm install hnswlib-node@^3.0.0
349
- ```
350
-
351
- ### Force WASM backend
352
-
353
- ```typescript
354
- const backend = new AgentDBBackend({
355
- forceWasm: true, // Skip native bindings
356
- });
357
- ```
358
-
359
- ## Testing
360
-
361
- ```bash
362
- # Run AgentDB backend tests
363
- npm test -- agentdb-backend.test.ts
364
-
365
- # Run all memory tests
366
- npm test
367
-
368
- # Run benchmarks
369
- npm run bench
370
- ```
371
-
372
- ## Architecture Decision Records
373
-
374
- This integration implements:
375
-
376
- - **ADR-006**: Unified Memory Service with AgentDB
377
- - **ADR-009**: Hybrid Memory Backend (SQLite + AgentDB) as default
378
-
379
- ## Related Documentation
380
-
381
- - [AgentDB GitHub](https://github.com/ruvnet/agentic-flow/tree/main/packages/agentdb)
382
- - [HNSW Algorithm Paper](https://arxiv.org/abs/1603.09320)
383
- - [V3 Memory Architecture](./README.md)
384
- - [HybridBackend Documentation](./docs/hybrid-backend.md)
385
-
386
- ## License
387
-
388
- MIT