claude-flow 2.7.1 → 2.7.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 +83 -22
- package/bin/claude-flow +1 -1
- package/dist/src/cli/commands/memory.js +272 -33
- package/dist/src/cli/commands/memory.js.map +1 -1
- package/dist/src/cli/help-formatter.js +3 -5
- package/dist/src/cli/help-formatter.js.map +1 -1
- package/dist/src/cli/simple-cli.js +0 -104
- package/dist/src/cli/simple-cli.js.map +1 -1
- package/dist/src/cli/simple-commands/config.js +257 -115
- package/dist/src/cli/simple-commands/config.js.map +1 -1
- package/dist/src/cli/validation-helper.js.map +1 -1
- package/dist/src/memory/agentdb-adapter.js +214 -0
- package/dist/src/memory/agentdb-adapter.js.map +1 -0
- package/dist/src/memory/backends/agentdb.js +234 -0
- package/dist/src/memory/backends/agentdb.js.map +1 -0
- package/dist/src/memory/index.js +11 -2
- package/dist/src/memory/index.js.map +1 -1
- package/dist/src/memory/migration/legacy-bridge.js +222 -0
- package/dist/src/memory/migration/legacy-bridge.js.map +1 -0
- package/dist/src/utils/metrics-reader.js +29 -41
- package/dist/src/utils/metrics-reader.js.map +1 -1
- package/docs/.claude-flow/metrics/performance.json +80 -2
- package/docs/.claude-flow/metrics/task-metrics.json +3 -3
- package/docs/INDEX.md +37 -12
- package/docs/README.md +92 -4
- package/docs/agentdb/AGENT3_FINAL_REPORT.md +643 -0
- package/docs/agentdb/AGENT3_SUMMARY.md +354 -0
- package/docs/agentdb/AGENTDB_INTEGRATION_PLAN.md +1258 -0
- package/docs/agentdb/BACKWARD_COMPATIBILITY_GUARANTEE.md +421 -0
- package/docs/agentdb/OPTIMIZATION_REPORT.md +360 -0
- package/docs/agentdb/PRODUCTION_READINESS.md +499 -0
- package/docs/agentdb/PUBLISHING_CHECKLIST.md +364 -0
- package/docs/agentdb/README.md +58 -0
- package/docs/agentdb/SWARM_COORDINATION.md +393 -0
- package/docs/agentdb/SWARM_IMPLEMENTATION_COMPLETE.md +538 -0
- package/docs/agentdb/agentdb-integration-summary.md +331 -0
- package/docs/agentdb/benchmarks/baseline-report.json +75 -0
- package/docs/development/AGENT1_COMPLETION_REPORT.md +466 -0
- package/docs/development/README.md +22 -0
- package/docs/fixes/PATTERN_FIX_CONFIRMATION.md +513 -0
- package/docs/fixes/README.md +33 -0
- package/docs/guides/README.md +29 -0
- package/docs/integrations/agentic-flow/INTEGRATION-TEST-v1.7.1.md +419 -0
- package/docs/integrations/agentic-flow/MIGRATION_v1.7.0.md +381 -0
- package/docs/integrations/agentic-flow/README.md +229 -0
- package/docs/integrations/agentic-flow/RELEASE-v1.7.0.md +348 -0
- package/docs/integrations/agentic-flow/RELEASE-v1.7.1.md +547 -0
- package/docs/integrations/agentic-flow/VERIFICATION-v1.7.4.md +556 -0
- package/docs/performance/README.md +31 -0
- package/docs/releases/ALPHA_TAG_UPDATE.md +150 -0
- package/docs/releases/README.md +25 -0
- package/docs/{RELEASE-NOTES-v2.7.0-alpha.10.md → releases/v2.7.0-alpha.10/RELEASE-NOTES-v2.7.0-alpha.10.md} +1 -1
- package/docs/releases/v2.7.1/RELEASE_SUMMARY_v2.7.1.md +340 -0
- package/docs/validation/DOCKER_VERIFICATION_REPORT.md +371 -0
- package/docs/validation/README.md +25 -0
- package/docs/validation/REGRESSION_ANALYSIS_v2.7.1.md +357 -0
- package/package.json +4 -3
- package/scripts/fix-agentdb-imports.sh +18 -0
- package/scripts/run-docker-regression.sh +101 -0
- package/scripts/verify-agentdb-integration.sh +220 -0
- package/src/cli/commands/memory.ts +347 -35
- package/src/memory/README-AGENTDB.md +366 -0
- package/src/memory/agentdb-adapter.js +373 -0
- package/src/memory/backends/agentdb.js +360 -0
- package/src/memory/index.js +32 -3
- package/src/memory/migration/legacy-bridge.js +330 -0
- /package/docs/{COMMANDS_TO_SKILLS_MIGRATION.md → development/COMMANDS_TO_SKILLS_MIGRATION.md} +0 -0
- /package/docs/{FINAL_INIT_STRUCTURE.md → development/FINAL_INIT_STRUCTURE.md} +0 -0
- /package/docs/{CLI-MEMORY-COMMANDS-WORKING.md → fixes/CLI-MEMORY-COMMANDS-WORKING.md} +0 -0
- /package/docs/{PATTERN_PERSISTENCE_FIX.md → fixes/PATTERN_PERSISTENCE_FIX.md} +0 -0
- /package/docs/{skills-tutorial.md → guides/skills-tutorial.md} +0 -0
- /package/docs/{PERFORMANCE-JSON-IMPROVEMENTS.md → performance/PERFORMANCE-JSON-IMPROVEMENTS.md} +0 -0
- /package/docs/{PERFORMANCE-METRICS-GUIDE.md → performance/PERFORMANCE-METRICS-GUIDE.md} +0 -0
- /package/docs/{RELEASE-NOTES-v2.7.0-alpha.9.md → releases/v2.7.0-alpha.9/RELEASE-NOTES-v2.7.0-alpha.9.md} +0 -0
- /package/docs/{RELEASE_v2.7.1.md → releases/v2.7.1/RELEASE_v2.7.1.md} +0 -0
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
# AgentDB Integration - v1.3.9
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
This implementation integrates AgentDB v1.3.9 vector database with claude-flow's existing memory system, providing **100% backward compatibility** while adding powerful semantic search capabilities.
|
|
6
|
+
|
|
7
|
+
## Architecture
|
|
8
|
+
|
|
9
|
+
### Components
|
|
10
|
+
|
|
11
|
+
1. **AgentDBMemoryAdapter** (`agentdb-adapter.js`)
|
|
12
|
+
- Extends `EnhancedMemory` class
|
|
13
|
+
- Provides hybrid mode (AgentDB + legacy fallback)
|
|
14
|
+
- Maintains all existing EnhancedMemory methods unchanged
|
|
15
|
+
- Adds new vector search methods
|
|
16
|
+
|
|
17
|
+
2. **AgentDBBackend** (`backends/agentdb.js`)
|
|
18
|
+
- Direct AgentDB v1.3.9 integration
|
|
19
|
+
- Vector storage with embeddings
|
|
20
|
+
- HNSW search (150x faster than brute force)
|
|
21
|
+
- Quantization support (scalar, binary, product)
|
|
22
|
+
|
|
23
|
+
3. **LegacyDataBridge** (`migration/legacy-bridge.js`)
|
|
24
|
+
- Safe migration utilities
|
|
25
|
+
- Automatic backups before migration
|
|
26
|
+
- Validation and rollback capabilities
|
|
27
|
+
- Progress tracking
|
|
28
|
+
|
|
29
|
+
## Usage
|
|
30
|
+
|
|
31
|
+
### Basic Usage (100% Backward Compatible)
|
|
32
|
+
|
|
33
|
+
```javascript
|
|
34
|
+
import { createMemory } from './src/memory/index.js';
|
|
35
|
+
|
|
36
|
+
// Default mode - works exactly like before
|
|
37
|
+
const memory = createMemory();
|
|
38
|
+
await memory.initialize();
|
|
39
|
+
|
|
40
|
+
// Use all existing methods - unchanged
|
|
41
|
+
await memory.store('key', 'value');
|
|
42
|
+
const value = await memory.retrieve('key');
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### AgentDB Enhanced Mode
|
|
46
|
+
|
|
47
|
+
```javascript
|
|
48
|
+
import { AgentDBMemoryAdapter } from './src/memory/index.js';
|
|
49
|
+
|
|
50
|
+
// Create AgentDB-enhanced memory
|
|
51
|
+
const memory = new AgentDBMemoryAdapter({
|
|
52
|
+
mode: 'hybrid', // 'hybrid', 'agentdb', or 'legacy'
|
|
53
|
+
agentdbPath: '.agentdb/claude-flow.db',
|
|
54
|
+
quantization: 'scalar', // 'scalar', 'binary', or 'product'
|
|
55
|
+
enableHNSW: true, // 150x faster search
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
await memory.initialize();
|
|
59
|
+
|
|
60
|
+
// Store with embedding for semantic search
|
|
61
|
+
const embedding = [0.1, 0.2, 0.3, ...]; // 384-dim vector
|
|
62
|
+
await memory.storeWithEmbedding('doc1', 'Important document', {
|
|
63
|
+
embedding,
|
|
64
|
+
namespace: 'knowledge',
|
|
65
|
+
metadata: { type: 'documentation' },
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
// Semantic vector search
|
|
69
|
+
const results = await memory.vectorSearch(queryEmbedding, {
|
|
70
|
+
k: 10,
|
|
71
|
+
namespace: 'knowledge',
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
// Legacy search still works
|
|
75
|
+
const legacyResults = await memory.search('pattern*');
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Migration from Legacy
|
|
79
|
+
|
|
80
|
+
```javascript
|
|
81
|
+
import { LegacyDataBridge } from './src/memory/migration/legacy-bridge.js';
|
|
82
|
+
import { EnhancedMemory } from './src/memory/enhanced-memory.js';
|
|
83
|
+
import { AgentDBMemoryAdapter } from './src/memory/agentdb-adapter.js';
|
|
84
|
+
|
|
85
|
+
// Create bridge
|
|
86
|
+
const bridge = new LegacyDataBridge({ verbose: true });
|
|
87
|
+
|
|
88
|
+
// Source: legacy memory
|
|
89
|
+
const legacyMemory = new EnhancedMemory();
|
|
90
|
+
await legacyMemory.initialize();
|
|
91
|
+
|
|
92
|
+
// Target: AgentDB-enhanced memory
|
|
93
|
+
const agentdbMemory = new AgentDBMemoryAdapter({ mode: 'hybrid' });
|
|
94
|
+
await agentdbMemory.initialize();
|
|
95
|
+
|
|
96
|
+
// Migrate with automatic backup
|
|
97
|
+
const results = await bridge.migrateToAgentDB(legacyMemory, agentdbMemory, {
|
|
98
|
+
generateEmbedding: async (value) => {
|
|
99
|
+
// Your embedding function here
|
|
100
|
+
return generateEmbedding(value);
|
|
101
|
+
},
|
|
102
|
+
skipEmbedding: ['metrics', 'performance'],
|
|
103
|
+
embedNamespaces: ['knowledge', 'learning', 'sessions'],
|
|
104
|
+
stopOnError: false,
|
|
105
|
+
strictValidation: true,
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
console.log(bridge.generateReport(results));
|
|
109
|
+
|
|
110
|
+
// Rollback if needed
|
|
111
|
+
if (!results.success) {
|
|
112
|
+
await bridge.rollback(results.backupPath, legacyMemory);
|
|
113
|
+
}
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## Operational Modes
|
|
117
|
+
|
|
118
|
+
### Hybrid Mode (Recommended)
|
|
119
|
+
|
|
120
|
+
```javascript
|
|
121
|
+
const memory = new AgentDBMemoryAdapter({ mode: 'hybrid' });
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
- Uses AgentDB for new vector features
|
|
125
|
+
- Falls back to legacy for standard operations
|
|
126
|
+
- Graceful degradation on errors
|
|
127
|
+
- **Best for production**: safe migration path
|
|
128
|
+
|
|
129
|
+
### AgentDB-Only Mode
|
|
130
|
+
|
|
131
|
+
```javascript
|
|
132
|
+
const memory = new AgentDBMemoryAdapter({ mode: 'agentdb' });
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
- Requires AgentDB to be available
|
|
136
|
+
- Fails if AgentDB initialization fails
|
|
137
|
+
- Maximum performance for vector operations
|
|
138
|
+
- **Best for**: new deployments, vector-heavy workloads
|
|
139
|
+
|
|
140
|
+
### Legacy Mode
|
|
141
|
+
|
|
142
|
+
```javascript
|
|
143
|
+
const memory = new AgentDBMemoryAdapter({ mode: 'legacy' });
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
- Disables AgentDB completely
|
|
147
|
+
- Uses only legacy memory system
|
|
148
|
+
- **Best for**: testing, debugging, rollback scenarios
|
|
149
|
+
|
|
150
|
+
## Features
|
|
151
|
+
|
|
152
|
+
### Vector Search with HNSW
|
|
153
|
+
|
|
154
|
+
```javascript
|
|
155
|
+
// Store vectors
|
|
156
|
+
await memory.storeWithEmbedding('doc1', content, {
|
|
157
|
+
embedding: vector,
|
|
158
|
+
namespace: 'knowledge',
|
|
159
|
+
});
|
|
160
|
+
|
|
161
|
+
// Search with HNSW (150x faster)
|
|
162
|
+
const results = await memory.vectorSearch(queryVector, {
|
|
163
|
+
k: 10,
|
|
164
|
+
namespace: 'knowledge',
|
|
165
|
+
});
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Quantization Options
|
|
169
|
+
|
|
170
|
+
```javascript
|
|
171
|
+
// Scalar quantization (default) - good balance
|
|
172
|
+
const memory = new AgentDBMemoryAdapter({ quantization: 'scalar' });
|
|
173
|
+
|
|
174
|
+
// Binary quantization - 32x memory reduction
|
|
175
|
+
const memory = new AgentDBMemoryAdapter({ quantization: 'binary' });
|
|
176
|
+
|
|
177
|
+
// Product quantization - 4-32x memory reduction
|
|
178
|
+
const memory = new AgentDBMemoryAdapter({ quantization: 'product' });
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### Knowledge Management
|
|
182
|
+
|
|
183
|
+
```javascript
|
|
184
|
+
// Store knowledge with embedding
|
|
185
|
+
await memory.storeKnowledgeWithEmbedding(
|
|
186
|
+
'api-design',
|
|
187
|
+
'rest-principles',
|
|
188
|
+
'REST API design guidelines...',
|
|
189
|
+
{ category: 'architecture' },
|
|
190
|
+
embedding
|
|
191
|
+
);
|
|
192
|
+
|
|
193
|
+
// Semantic knowledge search
|
|
194
|
+
const results = await memory.searchKnowledgeSemantic(
|
|
195
|
+
'api-design',
|
|
196
|
+
queryEmbedding,
|
|
197
|
+
{ limit: 20 }
|
|
198
|
+
);
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### Statistics & Monitoring
|
|
202
|
+
|
|
203
|
+
```javascript
|
|
204
|
+
// Get AgentDB statistics
|
|
205
|
+
const stats = await memory.getAgentDBStats();
|
|
206
|
+
console.log('Vectors:', stats.vectorCount);
|
|
207
|
+
console.log('Index:', stats.indexType);
|
|
208
|
+
console.log('Quantization:', stats.quantization);
|
|
209
|
+
|
|
210
|
+
// Optimize indices
|
|
211
|
+
await memory.optimizeAgentDB();
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
## Backward Compatibility
|
|
215
|
+
|
|
216
|
+
### All Existing Methods Work Unchanged
|
|
217
|
+
|
|
218
|
+
```javascript
|
|
219
|
+
// Session Management
|
|
220
|
+
await memory.saveSessionState(sessionId, state);
|
|
221
|
+
await memory.resumeSession(sessionId);
|
|
222
|
+
|
|
223
|
+
// Workflow Tracking
|
|
224
|
+
await memory.trackWorkflow(workflowId, data);
|
|
225
|
+
await memory.getWorkflowStatus(workflowId);
|
|
226
|
+
|
|
227
|
+
// Metrics Collection
|
|
228
|
+
await memory.recordMetric('taskDuration', 1500);
|
|
229
|
+
await memory.getMetrics('taskDuration');
|
|
230
|
+
|
|
231
|
+
// Agent Coordination
|
|
232
|
+
await memory.registerAgent(agentId, config);
|
|
233
|
+
await memory.updateAgentStatus(agentId, 'active');
|
|
234
|
+
|
|
235
|
+
// Knowledge Management (legacy)
|
|
236
|
+
await memory.storeKnowledge('domain', 'key', value);
|
|
237
|
+
await memory.retrieveKnowledge('domain', 'key');
|
|
238
|
+
|
|
239
|
+
// Performance Tracking
|
|
240
|
+
await memory.trackPerformance('operation', duration);
|
|
241
|
+
await memory.getPerformanceStats('operation');
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
### New Methods (Non-Breaking)
|
|
245
|
+
|
|
246
|
+
```javascript
|
|
247
|
+
// Vector operations
|
|
248
|
+
memory.storeWithEmbedding(key, value, { embedding });
|
|
249
|
+
memory.vectorSearch(query, options);
|
|
250
|
+
memory.semanticRetrieve(query, options);
|
|
251
|
+
|
|
252
|
+
// Enhanced knowledge
|
|
253
|
+
memory.storeKnowledgeWithEmbedding(domain, key, value, metadata, embedding);
|
|
254
|
+
memory.searchKnowledgeSemantic(domain, queryEmbedding, options);
|
|
255
|
+
|
|
256
|
+
// Management
|
|
257
|
+
memory.isAgentDBAvailable();
|
|
258
|
+
memory.getAgentDBStats();
|
|
259
|
+
memory.optimizeAgentDB();
|
|
260
|
+
memory.exportDataWithVectors();
|
|
261
|
+
memory.cleanupAll();
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
## Error Handling
|
|
265
|
+
|
|
266
|
+
### Graceful Degradation
|
|
267
|
+
|
|
268
|
+
```javascript
|
|
269
|
+
// In hybrid mode, errors are logged but don't fail operations
|
|
270
|
+
await memory.storeWithEmbedding('key', 'value', { embedding });
|
|
271
|
+
// If AgentDB fails:
|
|
272
|
+
// 1. Error is logged
|
|
273
|
+
// 2. Data is still stored in legacy system
|
|
274
|
+
// 3. Operation succeeds
|
|
275
|
+
|
|
276
|
+
// In agentdb mode, errors fail fast
|
|
277
|
+
const memory = new AgentDBMemoryAdapter({ mode: 'agentdb' });
|
|
278
|
+
// If AgentDB fails: throws error immediately
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
### Fallback Behavior
|
|
282
|
+
|
|
283
|
+
```javascript
|
|
284
|
+
// Vector search falls back to pattern search
|
|
285
|
+
const results = await memory.vectorSearch(query);
|
|
286
|
+
// If AgentDB unavailable:
|
|
287
|
+
// 1. Falls back to legacy search
|
|
288
|
+
// 2. Warning logged
|
|
289
|
+
// 3. Returns legacy results
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
## Performance
|
|
293
|
+
|
|
294
|
+
### Benchmarks
|
|
295
|
+
|
|
296
|
+
- **HNSW Search**: 150x faster than brute force
|
|
297
|
+
- **Scalar Quantization**: Minimal accuracy loss, 2-4x speedup
|
|
298
|
+
- **Binary Quantization**: 32x memory reduction
|
|
299
|
+
- **Product Quantization**: 4-32x memory reduction
|
|
300
|
+
|
|
301
|
+
### Optimization Tips
|
|
302
|
+
|
|
303
|
+
1. Enable HNSW for large datasets (>10k vectors)
|
|
304
|
+
2. Use scalar quantization for best accuracy/performance
|
|
305
|
+
3. Use binary quantization for memory-constrained environments
|
|
306
|
+
4. Run periodic optimization: `memory.optimizeAgentDB()`
|
|
307
|
+
|
|
308
|
+
## Testing
|
|
309
|
+
|
|
310
|
+
```bash
|
|
311
|
+
# Run memory tests
|
|
312
|
+
npm run test:unit -- src/memory/__tests__/
|
|
313
|
+
|
|
314
|
+
# Test AgentDB integration
|
|
315
|
+
npm run test:integration -- agentdb
|
|
316
|
+
|
|
317
|
+
# Verify backward compatibility
|
|
318
|
+
npm run test -- memory
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
## Troubleshooting
|
|
322
|
+
|
|
323
|
+
### AgentDB initialization fails
|
|
324
|
+
|
|
325
|
+
**Solution**: Check that agentdb@1.3.9 is installed:
|
|
326
|
+
```bash
|
|
327
|
+
npm install agentdb@1.3.9 --legacy-peer-deps
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
### Migration fails
|
|
331
|
+
|
|
332
|
+
**Solution**: Check backup file exists:
|
|
333
|
+
```javascript
|
|
334
|
+
const results = await bridge.migrateToAgentDB(source, target);
|
|
335
|
+
if (!results.success) {
|
|
336
|
+
console.log('Backup:', results.backupPath);
|
|
337
|
+
await bridge.rollback(results.backupPath, source);
|
|
338
|
+
}
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
### Vector search returns unexpected results
|
|
342
|
+
|
|
343
|
+
**Solution**: Verify embedding dimensions match:
|
|
344
|
+
```javascript
|
|
345
|
+
const stats = await memory.getAgentDBStats();
|
|
346
|
+
console.log('Expected dimensions:', stats.dimensions);
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
## Migration Checklist
|
|
350
|
+
|
|
351
|
+
- [ ] Install AgentDB v1.3.9
|
|
352
|
+
- [ ] Create AgentDBMemoryAdapter instance in hybrid mode
|
|
353
|
+
- [ ] Test existing functionality (backward compatibility)
|
|
354
|
+
- [ ] Create backup with LegacyDataBridge
|
|
355
|
+
- [ ] Migrate data with embedding generation
|
|
356
|
+
- [ ] Validate migration
|
|
357
|
+
- [ ] Test vector search functionality
|
|
358
|
+
- [ ] Monitor performance improvements
|
|
359
|
+
- [ ] Switch to agentdb mode if needed
|
|
360
|
+
|
|
361
|
+
## References
|
|
362
|
+
|
|
363
|
+
- [AgentDB Documentation](https://github.com/ruvnet/agentdb)
|
|
364
|
+
- [HNSW Algorithm](https://github.com/nmslib/hnswlib)
|
|
365
|
+
- [Vector Quantization](https://en.wikipedia.org/wiki/Vector_quantization)
|
|
366
|
+
- [claude-flow Memory System](./README.md)
|