@claude-flow/memory 3.0.0-alpha.9 → 3.0.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.
- package/README.md +308 -37
- package/dist/agent-memory-scope.d.ts.map +1 -1
- package/dist/agent-memory-scope.js +10 -2
- package/dist/agent-memory-scope.js.map +1 -1
- package/dist/agentdb-adapter-key-isolation.test.d.ts +2 -0
- package/dist/agentdb-adapter-key-isolation.test.d.ts.map +1 -0
- package/dist/agentdb-adapter-key-isolation.test.js +175 -0
- package/dist/agentdb-adapter-key-isolation.test.js.map +1 -0
- package/dist/agentdb-adapter-upsert.test.d.ts +2 -0
- package/dist/agentdb-adapter-upsert.test.d.ts.map +1 -0
- package/dist/agentdb-adapter-upsert.test.js +216 -0
- package/dist/agentdb-adapter-upsert.test.js.map +1 -0
- package/dist/agentdb-adapter.d.ts +70 -1
- package/dist/agentdb-adapter.d.ts.map +1 -1
- package/dist/agentdb-adapter.js +365 -32
- package/dist/agentdb-adapter.js.map +1 -1
- package/dist/agentdb-backend.d.ts +25 -0
- package/dist/agentdb-backend.d.ts.map +1 -1
- package/dist/agentdb-backend.js +113 -28
- package/dist/agentdb-backend.js.map +1 -1
- package/dist/agentdb-retrieval-guard.d.ts +76 -0
- package/dist/agentdb-retrieval-guard.d.ts.map +1 -0
- package/dist/agentdb-retrieval-guard.js +77 -0
- package/dist/agentdb-retrieval-guard.js.map +1 -0
- package/dist/agentdb-retrieval-guard.test.d.ts +12 -0
- package/dist/agentdb-retrieval-guard.test.d.ts.map +1 -0
- package/dist/agentdb-retrieval-guard.test.js +129 -0
- package/dist/agentdb-retrieval-guard.test.js.map +1 -0
- package/dist/auto-memory-bridge.d.ts +12 -1
- package/dist/auto-memory-bridge.d.ts.map +1 -1
- package/dist/auto-memory-bridge.js +101 -7
- package/dist/auto-memory-bridge.js.map +1 -1
- package/dist/auto-memory-bridge.test.js +121 -15
- package/dist/auto-memory-bridge.test.js.map +1 -1
- package/dist/auto-memory-index-3224.test.d.ts +2 -0
- package/dist/auto-memory-index-3224.test.d.ts.map +1 -0
- package/dist/auto-memory-index-3224.test.js +77 -0
- package/dist/auto-memory-index-3224.test.js.map +1 -0
- package/dist/consolidator-embedding-benchmark.test.d.ts +39 -0
- package/dist/consolidator-embedding-benchmark.test.d.ts.map +1 -0
- package/dist/consolidator-embedding-benchmark.test.js +366 -0
- package/dist/consolidator-embedding-benchmark.test.js.map +1 -0
- package/dist/consolidator.d.ts +131 -0
- package/dist/consolidator.d.ts.map +1 -0
- package/dist/consolidator.js +309 -0
- package/dist/consolidator.js.map +1 -0
- package/dist/consolidator.test.d.ts +17 -0
- package/dist/consolidator.test.d.ts.map +1 -0
- package/dist/consolidator.test.js +376 -0
- package/dist/consolidator.test.js.map +1 -0
- package/dist/controller-registry.d.ts +290 -0
- package/dist/controller-registry.d.ts.map +1 -0
- package/dist/controller-registry.js +1095 -0
- package/dist/controller-registry.js.map +1 -0
- package/dist/controller-registry.test.d.ts +14 -0
- package/dist/controller-registry.test.d.ts.map +1 -0
- package/dist/controller-registry.test.js +818 -0
- package/dist/controller-registry.test.js.map +1 -0
- package/dist/database-provider.d.ts +14 -2
- package/dist/database-provider.d.ts.map +1 -1
- package/dist/database-provider.js +63 -3
- package/dist/database-provider.js.map +1 -1
- package/dist/database-provider.test.js +56 -3
- package/dist/database-provider.test.js.map +1 -1
- package/dist/entity-tagger.d.ts +31 -0
- package/dist/entity-tagger.d.ts.map +1 -0
- package/dist/entity-tagger.js +80 -0
- package/dist/entity-tagger.js.map +1 -0
- package/dist/entity-tagger.test.d.ts +12 -0
- package/dist/entity-tagger.test.d.ts.map +1 -0
- package/dist/entity-tagger.test.js +70 -0
- package/dist/entity-tagger.test.js.map +1 -0
- package/dist/fts5.test.d.ts +13 -0
- package/dist/fts5.test.d.ts.map +1 -0
- package/dist/fts5.test.js +144 -0
- package/dist/fts5.test.js.map +1 -0
- package/dist/graceful-retrieval.test.d.ts +14 -0
- package/dist/graceful-retrieval.test.d.ts.map +1 -0
- package/dist/graceful-retrieval.test.js +251 -0
- package/dist/graceful-retrieval.test.js.map +1 -0
- package/dist/hnsw-index.d.ts +62 -0
- package/dist/hnsw-index.d.ts.map +1 -1
- package/dist/hnsw-index.js +461 -16
- package/dist/hnsw-index.js.map +1 -1
- package/dist/hnsw-persistence.test.d.ts +13 -0
- package/dist/hnsw-persistence.test.d.ts.map +1 -0
- package/dist/hnsw-persistence.test.js +208 -0
- package/dist/hnsw-persistence.test.js.map +1 -0
- package/dist/hnsw-quantization.test.d.ts +17 -0
- package/dist/hnsw-quantization.test.d.ts.map +1 -0
- package/dist/hnsw-quantization.test.js +140 -0
- package/dist/hnsw-quantization.test.js.map +1 -0
- package/dist/hybrid-backend.d.ts +46 -2
- package/dist/hybrid-backend.d.ts.map +1 -1
- package/dist/hybrid-backend.js +120 -21
- package/dist/hybrid-backend.js.map +1 -1
- package/dist/hybrid-backend.test.js +139 -5
- package/dist/hybrid-backend.test.js.map +1 -1
- package/dist/index.d.ts +164 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +272 -30
- package/dist/index.js.map +1 -1
- package/dist/index.test.d.ts +10 -0
- package/dist/index.test.d.ts.map +1 -0
- package/dist/index.test.js +71 -0
- package/dist/index.test.js.map +1 -0
- package/dist/json-security.d.ts +12 -0
- package/dist/json-security.d.ts.map +1 -0
- package/dist/json-security.js +20 -0
- package/dist/json-security.js.map +1 -0
- package/dist/learning-bridge.d.ts +29 -0
- package/dist/learning-bridge.d.ts.map +1 -1
- package/dist/learning-bridge.js +71 -6
- package/dist/learning-bridge.js.map +1 -1
- package/dist/learning-bridge.test.js +181 -1
- package/dist/learning-bridge.test.js.map +1 -1
- package/dist/memory-key.d.ts +3 -0
- package/dist/memory-key.d.ts.map +1 -0
- package/dist/memory-key.js +5 -0
- package/dist/memory-key.js.map +1 -0
- package/dist/migration.d.ts +19 -4
- package/dist/migration.d.ts.map +1 -1
- package/dist/migration.js +99 -24
- package/dist/migration.js.map +1 -1
- package/dist/migration.test.d.ts +11 -0
- package/dist/migration.test.d.ts.map +1 -0
- package/dist/migration.test.js +141 -0
- package/dist/migration.test.js.map +1 -0
- package/dist/mmr-benchmark.test.d.ts +2 -0
- package/dist/mmr-benchmark.test.d.ts.map +1 -0
- package/dist/mmr-benchmark.test.js +286 -0
- package/dist/mmr-benchmark.test.js.map +1 -0
- package/dist/mmr-rerank-cosine-cache.test.d.ts +2 -0
- package/dist/mmr-rerank-cosine-cache.test.d.ts.map +1 -0
- package/dist/mmr-rerank-cosine-cache.test.js +334 -0
- package/dist/mmr-rerank-cosine-cache.test.js.map +1 -0
- package/dist/mmr-rerank-perf.test.d.ts +2 -0
- package/dist/mmr-rerank-perf.test.d.ts.map +1 -0
- package/dist/mmr-rerank-perf.test.js +191 -0
- package/dist/mmr-rerank-perf.test.js.map +1 -0
- package/dist/persistent-sona.d.ts +144 -0
- package/dist/persistent-sona.d.ts.map +1 -0
- package/dist/persistent-sona.js +332 -0
- package/dist/persistent-sona.js.map +1 -0
- package/dist/rvf-backend.d.ts +53 -0
- package/dist/rvf-backend.d.ts.map +1 -0
- package/dist/rvf-backend.js +643 -0
- package/dist/rvf-backend.js.map +1 -0
- package/dist/rvf-learning-store.d.ts +139 -0
- package/dist/rvf-learning-store.d.ts.map +1 -0
- package/dist/rvf-learning-store.js +295 -0
- package/dist/rvf-learning-store.js.map +1 -0
- package/dist/rvf-migration.d.ts +45 -0
- package/dist/rvf-migration.d.ts.map +1 -0
- package/dist/rvf-migration.js +254 -0
- package/dist/rvf-migration.js.map +1 -0
- package/dist/smart-retrieval-scores.test.d.ts +2 -0
- package/dist/smart-retrieval-scores.test.d.ts.map +1 -0
- package/dist/smart-retrieval-scores.test.js +75 -0
- package/dist/smart-retrieval-scores.test.js.map +1 -0
- package/dist/smart-retrieval.d.ts +141 -0
- package/dist/smart-retrieval.d.ts.map +1 -0
- package/dist/smart-retrieval.js +399 -0
- package/dist/smart-retrieval.js.map +1 -0
- package/dist/smart-retrieval.test.d.ts +2 -0
- package/dist/smart-retrieval.test.d.ts.map +1 -0
- package/dist/smart-retrieval.test.js +418 -0
- package/dist/smart-retrieval.test.js.map +1 -0
- package/dist/sqlite-backend.d.ts +10 -0
- package/dist/sqlite-backend.d.ts.map +1 -1
- package/dist/sqlite-backend.js +101 -5
- package/dist/sqlite-backend.js.map +1 -1
- package/dist/sqljs-backend.d.ts +9 -0
- package/dist/sqljs-backend.d.ts.map +1 -1
- package/dist/sqljs-backend.js +91 -3
- package/dist/sqljs-backend.js.map +1 -1
- package/dist/tiered-memory.d.ts +171 -0
- package/dist/tiered-memory.d.ts.map +1 -0
- package/dist/tiered-memory.js +350 -0
- package/dist/tiered-memory.js.map +1 -0
- package/dist/tiered-memory.test.d.ts +9 -0
- package/dist/tiered-memory.test.d.ts.map +1 -0
- package/dist/tiered-memory.test.js +220 -0
- package/dist/tiered-memory.test.js.map +1 -0
- package/dist/types.d.ts +17 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +10 -8
package/dist/index.js
CHANGED
|
@@ -47,40 +47,81 @@ export { generateMemoryId, createDefaultEntry, PERFORMANCE_TARGETS, } from './ty
|
|
|
47
47
|
export { AutoMemoryBridge, resolveAutoMemoryDir, findGitRoot } from './auto-memory-bridge.js';
|
|
48
48
|
// ===== Learning Bridge =====
|
|
49
49
|
export { LearningBridge } from './learning-bridge.js';
|
|
50
|
+
// ===== RVF Learning Persistence (ADR-057 Phase 6) =====
|
|
51
|
+
export { RvfLearningStore } from './rvf-learning-store.js';
|
|
52
|
+
export { PersistentSonaCoordinator } from './persistent-sona.js';
|
|
53
|
+
// ===== RVF Migration (Bidirectional) =====
|
|
54
|
+
export { RvfMigrator } from './rvf-migration.js';
|
|
50
55
|
// ===== Knowledge Graph =====
|
|
51
56
|
export { MemoryGraph } from './memory-graph.js';
|
|
52
57
|
// ===== Agent-Scoped Memory =====
|
|
53
58
|
export { resolveAgentMemoryDir, createAgentBridge, transferKnowledge, listAgentScopes, } from './agent-memory-scope.js';
|
|
59
|
+
// ===== Controller Registry (ADR-053) =====
|
|
60
|
+
export { ControllerRegistry, INIT_LEVELS } from './controller-registry.js';
|
|
61
|
+
// ===== Tiered Memory with Temporal Validity (Zep/Graphiti-style) =====
|
|
62
|
+
export { TieredMemoryStore, isTemporallyValid } from './tiered-memory.js';
|
|
54
63
|
// ===== Core Components =====
|
|
55
64
|
export { AgentDBAdapter } from './agentdb-adapter.js';
|
|
56
65
|
export { AgentDBBackend } from './agentdb-backend.js';
|
|
66
|
+
export { AgentDbRetrievalGuard, createAgentDbRetrievalGuard, isRetrievalGuardEnabled, isRetrievalGuardStrict, } from './agentdb-retrieval-guard.js';
|
|
57
67
|
export { SQLiteBackend } from './sqlite-backend.js';
|
|
58
68
|
export { SqlJsBackend } from './sqljs-backend.js';
|
|
59
69
|
export { HybridBackend } from './hybrid-backend.js';
|
|
70
|
+
// `RvfBackend` and `HnswLite` are intentionally NOT re-exported from the top level
|
|
71
|
+
// per ADR-125 Phase 1. `RvfBackend` remains reachable via
|
|
72
|
+
// `createDatabase({ provider: 'rvf' })`. The legacy `hnsw-lite.ts` module was
|
|
73
|
+
// deleted by ADR-125 Phase 3; its brute-force-degrading code is inlined into
|
|
74
|
+
// `rvf-backend.ts` as a private helper.
|
|
60
75
|
export { HNSWIndex } from './hnsw-index.js';
|
|
61
76
|
export { CacheManager, TieredCacheManager } from './cache-manager.js';
|
|
62
77
|
export { QueryBuilder, query, QueryTemplates } from './query-builder.js';
|
|
63
78
|
export { MemoryMigrator, createMigrator, migrateMultipleSources } from './migration.js';
|
|
64
79
|
export { createDatabase, getPlatformInfo, getAvailableProviders } from './database-provider.js';
|
|
80
|
+
// ===== Smart Retrieval (ADR-090) =====
|
|
81
|
+
export { smartSearch, defaultQueryExpansions } from './smart-retrieval.js';
|
|
65
82
|
// ===== Unified Memory Service =====
|
|
66
83
|
import { EventEmitter } from 'node:events';
|
|
67
84
|
import { AgentDBAdapter } from './agentdb-adapter.js';
|
|
68
85
|
import { MemoryMigrator } from './migration.js';
|
|
69
86
|
/**
|
|
70
|
-
*
|
|
87
|
+
* Memory Service implementation (legacy class name).
|
|
71
88
|
*
|
|
72
|
-
*
|
|
89
|
+
* @deprecated Use {@link MemoryService} — the canonical name introduced by
|
|
90
|
+
* ADR-125 Phase 1. `UnifiedMemoryService` is preserved as an alias and will
|
|
91
|
+
* continue to work through `@claude-flow/memory@3.0.0-rc`. Both names refer
|
|
92
|
+
* to the same class.
|
|
93
|
+
*
|
|
94
|
+
* High-level interface that provides:
|
|
73
95
|
* - Simple API for common operations
|
|
74
96
|
* - Automatic embedding generation
|
|
75
97
|
* - Cross-agent memory sharing
|
|
76
98
|
* - SONA integration for learning
|
|
77
99
|
* - Event-driven notifications
|
|
78
100
|
* - Performance monitoring
|
|
101
|
+
*
|
|
102
|
+
* @see {@link MemoryService} for the canonical alias.
|
|
79
103
|
*/
|
|
80
104
|
export class UnifiedMemoryService extends EventEmitter {
|
|
81
105
|
adapter;
|
|
82
106
|
config;
|
|
83
107
|
initialized = false;
|
|
108
|
+
/** Total successful `store()` calls since last snapshot trigger (ADR-125 Phase 3). */
|
|
109
|
+
storeCountSinceSnapshot = 0;
|
|
110
|
+
/** Resolved snapshot interval — see {@link UnifiedMemoryServiceConfig.snapshotInterval}. */
|
|
111
|
+
snapshotInterval;
|
|
112
|
+
/** Background consolidator timer (ADR-125 Phase 4). */
|
|
113
|
+
consolidatorTimer = null;
|
|
114
|
+
/** Lazy-loaded consolidator instance (ADR-125 Phase 4). */
|
|
115
|
+
consolidator = null;
|
|
116
|
+
/**
|
|
117
|
+
* The active memory backend. Defaults to the `AgentDBAdapter` created from
|
|
118
|
+
* config, but can be any `IMemoryBackend` implementation (e.g. `HybridBackend`
|
|
119
|
+
* when constructed via `createHybridService` per ADR-009 / ADR-125 Phase 2).
|
|
120
|
+
*
|
|
121
|
+
* Public so consumers can introspect the backend type without reaching for
|
|
122
|
+
* `getAdapter()` (which is AgentDB-specific).
|
|
123
|
+
*/
|
|
124
|
+
backend;
|
|
84
125
|
constructor(config = {}) {
|
|
85
126
|
super();
|
|
86
127
|
this.config = {
|
|
@@ -89,6 +130,10 @@ export class UnifiedMemoryService extends EventEmitter {
|
|
|
89
130
|
autoEmbed: true,
|
|
90
131
|
...config,
|
|
91
132
|
};
|
|
133
|
+
// ADR-125 Phase 3 — snapshot every Nth store. 0/Infinity = disabled.
|
|
134
|
+
const raw = this.config.snapshotInterval;
|
|
135
|
+
this.snapshotInterval =
|
|
136
|
+
raw === undefined ? 1000 : raw === 0 ? Infinity : raw;
|
|
92
137
|
this.adapter = new AgentDBAdapter({
|
|
93
138
|
dimensions: this.config.dimensions,
|
|
94
139
|
cacheEnabled: this.config.cacheEnabled,
|
|
@@ -102,6 +147,9 @@ export class UnifiedMemoryService extends EventEmitter {
|
|
|
102
147
|
persistencePath: this.config.persistencePath,
|
|
103
148
|
maxEntries: this.config.maxEntries,
|
|
104
149
|
});
|
|
150
|
+
// Default backend is the AgentDB adapter — ADR-125 Phase 2 introduces the
|
|
151
|
+
// ability to replace it via `withBackend()` / `createHybridService`.
|
|
152
|
+
this.backend = this.adapter;
|
|
105
153
|
// Forward adapter events
|
|
106
154
|
this.adapter.on('entry:stored', (data) => this.emit('entry:stored', data));
|
|
107
155
|
this.adapter.on('entry:updated', (data) => this.emit('entry:updated', data));
|
|
@@ -110,76 +158,235 @@ export class UnifiedMemoryService extends EventEmitter {
|
|
|
110
158
|
this.adapter.on('cache:miss', (data) => this.emit('cache:miss', data));
|
|
111
159
|
this.adapter.on('index:added', (data) => this.emit('index:added', data));
|
|
112
160
|
}
|
|
161
|
+
/**
|
|
162
|
+
* Replace the active backend with a pre-built `IMemoryBackend`.
|
|
163
|
+
*
|
|
164
|
+
* Used by `createHybridService` (ADR-125 Phase 2) to wire `HybridBackend`
|
|
165
|
+
* through `createDatabase` rather than instantiating `AgentDBAdapter`
|
|
166
|
+
* directly. The legacy `AgentDBAdapter` instance is kept around for the
|
|
167
|
+
* `storeEntry` / `semanticSearch` convenience methods that the IMemoryBackend
|
|
168
|
+
* interface doesn't cover; those calls still flow through it.
|
|
169
|
+
*
|
|
170
|
+
* Returns `this` for chaining.
|
|
171
|
+
*
|
|
172
|
+
* @internal Prefer the factory functions (`createHybridService`,
|
|
173
|
+
* `createPersistentService`, etc.) over calling this directly.
|
|
174
|
+
*/
|
|
175
|
+
withBackend(backend) {
|
|
176
|
+
this.backend = backend;
|
|
177
|
+
return this;
|
|
178
|
+
}
|
|
113
179
|
// ===== Lifecycle =====
|
|
114
180
|
async initialize() {
|
|
115
181
|
if (this.initialized)
|
|
116
182
|
return;
|
|
117
|
-
await this.
|
|
183
|
+
await this.backend.initialize();
|
|
184
|
+
// If the active backend is something other than the adapter (e.g. a
|
|
185
|
+
// HybridBackend wired by createHybridService), the adapter may never be
|
|
186
|
+
// used — skip its initialize() in that case to avoid double-allocating.
|
|
118
187
|
this.initialized = true;
|
|
188
|
+
// ADR-125 Phase 4 — start background consolidator if requested.
|
|
189
|
+
this.startConsolidatorTimer();
|
|
119
190
|
this.emit('initialized');
|
|
120
191
|
}
|
|
121
192
|
async shutdown() {
|
|
122
193
|
if (!this.initialized)
|
|
123
194
|
return;
|
|
124
|
-
|
|
195
|
+
// ADR-125 Phase 4 — stop consolidator timer first to prevent a sweep
|
|
196
|
+
// from racing the snapshot below.
|
|
197
|
+
if (this.consolidatorTimer) {
|
|
198
|
+
clearInterval(this.consolidatorTimer);
|
|
199
|
+
this.consolidatorTimer = null;
|
|
200
|
+
}
|
|
201
|
+
// ADR-125 Phase 3 — flush a final HNSW + meta snapshot before tearing the
|
|
202
|
+
// backend down. Only meaningful when the AgentDBAdapter is the active
|
|
203
|
+
// backend and persistence is enabled.
|
|
204
|
+
if (this.backend === this.adapter) {
|
|
205
|
+
try {
|
|
206
|
+
await this.adapter.saveSnapshot();
|
|
207
|
+
}
|
|
208
|
+
catch {
|
|
209
|
+
// saveToDisk already emits failure events; do not throw from shutdown.
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
await this.backend.shutdown();
|
|
125
213
|
this.initialized = false;
|
|
126
214
|
this.emit('shutdown');
|
|
127
215
|
}
|
|
216
|
+
/**
|
|
217
|
+
* Alias for {@link shutdown}. Matches the lifecycle name expected by callers
|
|
218
|
+
* who treat `MemoryService` like a connection — referenced from ADR-125
|
|
219
|
+
* Phase 3 (snapshot on close()) and Phase 4 (consolidator timer cleanup).
|
|
220
|
+
*/
|
|
221
|
+
async close() {
|
|
222
|
+
return this.shutdown();
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Start the background consolidator timer if configured.
|
|
226
|
+
* @internal
|
|
227
|
+
*/
|
|
228
|
+
startConsolidatorTimer() {
|
|
229
|
+
const cfg = this.config.consolidator;
|
|
230
|
+
if (!cfg?.autoRun)
|
|
231
|
+
return;
|
|
232
|
+
const intervalMs = cfg.intervalMs ?? 6 * 60 * 60 * 1000; // default 6h
|
|
233
|
+
if (intervalMs <= 0)
|
|
234
|
+
return;
|
|
235
|
+
this.consolidatorTimer = setInterval(() => {
|
|
236
|
+
void this.runAutoConsolidation();
|
|
237
|
+
}, intervalMs);
|
|
238
|
+
// Don't block process exit on the timer (Node-only; no-op elsewhere).
|
|
239
|
+
if (typeof this.consolidatorTimer.unref === 'function') {
|
|
240
|
+
this.consolidatorTimer.unref();
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Run a single consolidator cycle on the active adapter. Emits a
|
|
245
|
+
* `consolidation:complete` event with the {@link ConsolidationResult}.
|
|
246
|
+
* @internal
|
|
247
|
+
*/
|
|
248
|
+
async runAutoConsolidation() {
|
|
249
|
+
try {
|
|
250
|
+
const consolidator = await this.getConsolidator();
|
|
251
|
+
const result = await consolidator.runAll();
|
|
252
|
+
this.emit('consolidation:complete', result);
|
|
253
|
+
}
|
|
254
|
+
catch (err) {
|
|
255
|
+
this.emit('consolidation:failed', {
|
|
256
|
+
reason: err instanceof Error ? err.message : String(err),
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Get (and lazily construct) the {@link MemoryConsolidator} bound to this
|
|
262
|
+
* service. Added by ADR-125 Phase 4.
|
|
263
|
+
*/
|
|
264
|
+
async getConsolidator() {
|
|
265
|
+
if (this.consolidator)
|
|
266
|
+
return this.consolidator;
|
|
267
|
+
const { MemoryConsolidator } = await import('./consolidator.js');
|
|
268
|
+
// The consolidator reaches into AgentDBAdapter private state. Cast through
|
|
269
|
+
// any to bypass TS's view of those fields (the runtime structure is stable
|
|
270
|
+
// and tested by consolidator.test.ts).
|
|
271
|
+
this.consolidator = new MemoryConsolidator(this, {
|
|
272
|
+
dedupStrategy: this.config.consolidator?.dedupStrategy ?? 'keep-newest',
|
|
273
|
+
intervalMs: this.config.consolidator?.intervalMs,
|
|
274
|
+
});
|
|
275
|
+
return this.consolidator;
|
|
276
|
+
}
|
|
128
277
|
// ===== IMemoryBackend Implementation =====
|
|
129
278
|
async store(entry) {
|
|
130
|
-
|
|
279
|
+
await this.backend.store(entry);
|
|
280
|
+
this.maybeSnapshot();
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* If a snapshot interval is configured and the threshold is hit, fire a
|
|
284
|
+
* snapshot in the background. Only meaningful when the active backend is
|
|
285
|
+
* the AgentDBAdapter with persistence enabled.
|
|
286
|
+
*
|
|
287
|
+
* @internal — ADR-125 Phase 3
|
|
288
|
+
*/
|
|
289
|
+
maybeSnapshot() {
|
|
290
|
+
if (!Number.isFinite(this.snapshotInterval))
|
|
291
|
+
return;
|
|
292
|
+
if (this.backend !== this.adapter)
|
|
293
|
+
return;
|
|
294
|
+
if (!this.config.persistenceEnabled || !this.config.persistencePath)
|
|
295
|
+
return;
|
|
296
|
+
this.storeCountSinceSnapshot += 1;
|
|
297
|
+
if (this.storeCountSinceSnapshot >= this.snapshotInterval) {
|
|
298
|
+
this.storeCountSinceSnapshot = 0;
|
|
299
|
+
// Fire and forget — saveSnapshot emits its own lifecycle events.
|
|
300
|
+
void this.adapter.saveSnapshot();
|
|
301
|
+
}
|
|
131
302
|
}
|
|
132
303
|
async get(id) {
|
|
133
|
-
return this.
|
|
304
|
+
return this.backend.get(id);
|
|
134
305
|
}
|
|
135
306
|
async getByKey(namespace, key) {
|
|
136
|
-
return this.
|
|
307
|
+
return this.backend.getByKey(namespace, key);
|
|
137
308
|
}
|
|
138
309
|
async update(id, update) {
|
|
139
|
-
return this.
|
|
310
|
+
return this.backend.update(id, update);
|
|
140
311
|
}
|
|
141
312
|
async delete(id) {
|
|
142
|
-
return this.
|
|
313
|
+
return this.backend.delete(id);
|
|
143
314
|
}
|
|
144
315
|
async query(query) {
|
|
145
|
-
return this.
|
|
316
|
+
return this.backend.query(query);
|
|
146
317
|
}
|
|
147
318
|
async search(embedding, options) {
|
|
148
|
-
return this.
|
|
319
|
+
return this.backend.search(embedding, options);
|
|
149
320
|
}
|
|
150
321
|
async bulkInsert(entries) {
|
|
151
|
-
|
|
322
|
+
await this.backend.bulkInsert(entries);
|
|
323
|
+
// Count each entry toward the snapshot threshold (ADR-125 Phase 3).
|
|
324
|
+
for (let i = 0; i < entries.length; i++) {
|
|
325
|
+
this.maybeSnapshot();
|
|
326
|
+
}
|
|
152
327
|
}
|
|
153
328
|
async bulkDelete(ids) {
|
|
154
|
-
return this.
|
|
329
|
+
return this.backend.bulkDelete(ids);
|
|
155
330
|
}
|
|
156
331
|
async count(namespace) {
|
|
157
|
-
return this.
|
|
332
|
+
return this.backend.count(namespace);
|
|
158
333
|
}
|
|
159
334
|
async listNamespaces() {
|
|
160
|
-
return this.
|
|
335
|
+
return this.backend.listNamespaces();
|
|
161
336
|
}
|
|
162
337
|
async clearNamespace(namespace) {
|
|
163
|
-
return this.
|
|
338
|
+
return this.backend.clearNamespace(namespace);
|
|
164
339
|
}
|
|
165
340
|
async getStats() {
|
|
166
|
-
return this.
|
|
341
|
+
return this.backend.getStats();
|
|
167
342
|
}
|
|
168
343
|
async healthCheck() {
|
|
169
|
-
return this.
|
|
344
|
+
return this.backend.healthCheck();
|
|
170
345
|
}
|
|
171
346
|
// ===== Convenience Methods =====
|
|
172
347
|
/**
|
|
173
|
-
* Store an entry from simple input
|
|
348
|
+
* Store an entry from simple input.
|
|
349
|
+
*
|
|
350
|
+
* When the active backend is the default AgentDBAdapter, delegates to its
|
|
351
|
+
* native `storeEntry`. When a custom backend is wired (e.g. HybridBackend
|
|
352
|
+
* via `createHybridService`), this builds a full `MemoryEntry` and stores
|
|
353
|
+
* it through the IMemoryBackend interface.
|
|
174
354
|
*/
|
|
175
355
|
async storeEntry(input) {
|
|
176
|
-
|
|
356
|
+
if (this.backend === this.adapter) {
|
|
357
|
+
return this.adapter.storeEntry(input);
|
|
358
|
+
}
|
|
359
|
+
// Generic path for non-AgentDBAdapter backends
|
|
360
|
+
const { createDefaultEntry } = await import('./types.js');
|
|
361
|
+
const entry = createDefaultEntry(input);
|
|
362
|
+
// Generate an embedding on demand if needed
|
|
363
|
+
if (!entry.embedding && this.config.embeddingGenerator && entry.content) {
|
|
364
|
+
try {
|
|
365
|
+
entry.embedding = await this.config.embeddingGenerator(entry.content);
|
|
366
|
+
}
|
|
367
|
+
catch {
|
|
368
|
+
// Leave embedding undefined; backend may still accept the entry.
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
await this.backend.store(entry);
|
|
372
|
+
return entry;
|
|
177
373
|
}
|
|
178
374
|
/**
|
|
179
|
-
* Semantic search by content string
|
|
375
|
+
* Semantic search by content string.
|
|
376
|
+
*
|
|
377
|
+
* When the active backend is the default AgentDBAdapter, delegates to its
|
|
378
|
+
* native `semanticSearch`. Otherwise generates an embedding via the
|
|
379
|
+
* configured generator and calls `backend.search()`.
|
|
180
380
|
*/
|
|
181
381
|
async semanticSearch(content, k = 10, threshold) {
|
|
182
|
-
|
|
382
|
+
if (this.backend === this.adapter) {
|
|
383
|
+
return this.adapter.semanticSearch(content, k, threshold);
|
|
384
|
+
}
|
|
385
|
+
if (!this.config.embeddingGenerator) {
|
|
386
|
+
throw new Error('semanticSearch requires an embeddingGenerator when backend is not the AgentDBAdapter');
|
|
387
|
+
}
|
|
388
|
+
const embedding = await this.config.embeddingGenerator(content);
|
|
389
|
+
return this.backend.search(embedding, { k, threshold });
|
|
183
390
|
}
|
|
184
391
|
/**
|
|
185
392
|
* Find similar entries to a given entry
|
|
@@ -236,7 +443,12 @@ export class UnifiedMemoryService extends EventEmitter {
|
|
|
236
443
|
}
|
|
237
444
|
// ===== Migration =====
|
|
238
445
|
/**
|
|
239
|
-
* Migrate from a legacy memory source
|
|
446
|
+
* Migrate from a legacy memory source.
|
|
447
|
+
*
|
|
448
|
+
* The migrator is AgentDB-specific (writes through `AgentDBAdapter`).
|
|
449
|
+
* When a custom backend is wired (e.g. HybridBackend), migration still
|
|
450
|
+
* targets the local AgentDB adapter; the hybrid backend can pick up the
|
|
451
|
+
* migrated entries on next read via its own AgentDB index.
|
|
240
452
|
*/
|
|
241
453
|
async migrateFrom(source, sourcePath, options = {}) {
|
|
242
454
|
const migrator = new MemoryMigrator(this.adapter, { source, sourcePath, ...options }, this.config.embeddingGenerator);
|
|
@@ -289,6 +501,23 @@ export class UnifiedMemoryService extends EventEmitter {
|
|
|
289
501
|
return this.initialized;
|
|
290
502
|
}
|
|
291
503
|
}
|
|
504
|
+
// ===== Canonical Alias (ADR-125 Phase 1) =====
|
|
505
|
+
/**
|
|
506
|
+
* Canonical memory service entry point (ADR-125).
|
|
507
|
+
*
|
|
508
|
+
* `MemoryService` is the preferred name as of `@claude-flow/memory@3.0.0-alpha.18`.
|
|
509
|
+
* It is an alias of {@link UnifiedMemoryService}; both names refer to the same
|
|
510
|
+
* class so existing callers continue working unchanged.
|
|
511
|
+
*
|
|
512
|
+
* @example
|
|
513
|
+
* ```typescript
|
|
514
|
+
* import { MemoryService } from '@claude-flow/memory';
|
|
515
|
+
*
|
|
516
|
+
* const memory = new MemoryService({ dimensions: 1536 });
|
|
517
|
+
* await memory.initialize();
|
|
518
|
+
* ```
|
|
519
|
+
*/
|
|
520
|
+
export const MemoryService = UnifiedMemoryService;
|
|
292
521
|
// ===== Factory Functions =====
|
|
293
522
|
/**
|
|
294
523
|
* Create a simple in-memory service (for testing)
|
|
@@ -321,12 +550,16 @@ export function createEmbeddingService(embeddingGenerator, dimensions = 1536) {
|
|
|
321
550
|
});
|
|
322
551
|
}
|
|
323
552
|
/**
|
|
324
|
-
* Create a hybrid memory service (SQLite + AgentDB)
|
|
325
|
-
*
|
|
553
|
+
* Create a hybrid memory service (SQLite + AgentDB).
|
|
554
|
+
*
|
|
555
|
+
* This is the DEFAULT recommended configuration per ADR-009. ADR-125 Phase 2
|
|
556
|
+
* delivers the real wiring: the returned service's backend is a `HybridBackend`
|
|
557
|
+
* created through `createDatabase({ provider: 'hybrid' })`, not an AgentDB-only
|
|
558
|
+
* downgrade as in earlier versions.
|
|
326
559
|
*
|
|
327
560
|
* @example
|
|
328
561
|
* ```typescript
|
|
329
|
-
* const memory = createHybridService('./data/memory.db', embeddingFn);
|
|
562
|
+
* const memory = await createHybridService('./data/memory.db', embeddingFn);
|
|
330
563
|
* await memory.initialize();
|
|
331
564
|
*
|
|
332
565
|
* // Structured queries go to SQLite
|
|
@@ -334,19 +567,28 @@ export function createEmbeddingService(embeddingGenerator, dimensions = 1536) {
|
|
|
334
567
|
*
|
|
335
568
|
* // Semantic queries go to AgentDB
|
|
336
569
|
* const similar = await memory.semanticSearch('authentication patterns', 10);
|
|
570
|
+
*
|
|
571
|
+
* // Verify the backend is actually hybrid
|
|
572
|
+
* import { HybridBackend } from '@claude-flow/memory';
|
|
573
|
+
* memory.backend instanceof HybridBackend; // true
|
|
337
574
|
* ```
|
|
338
575
|
*/
|
|
339
|
-
export function createHybridService(databasePath, embeddingGenerator, dimensions = 1536) {
|
|
340
|
-
|
|
576
|
+
export async function createHybridService(databasePath, embeddingGenerator, dimensions = 1536) {
|
|
577
|
+
const { createDatabase } = await import('./database-provider.js');
|
|
578
|
+
const hybridBackend = await createDatabase(databasePath, {
|
|
579
|
+
provider: 'hybrid',
|
|
580
|
+
embeddingGenerator,
|
|
581
|
+
dimensions,
|
|
582
|
+
});
|
|
583
|
+
const service = new UnifiedMemoryService({
|
|
341
584
|
embeddingGenerator,
|
|
342
585
|
dimensions,
|
|
343
586
|
autoEmbed: true,
|
|
344
587
|
cacheEnabled: true,
|
|
345
|
-
// Note: This would require extending UnifiedMemoryService to support HybridBackend
|
|
346
|
-
// For now, this creates an AgentDB service with persistence
|
|
347
588
|
persistenceEnabled: true,
|
|
348
589
|
persistencePath: databasePath,
|
|
349
590
|
});
|
|
591
|
+
return service.withBackend(hybridBackend);
|
|
350
592
|
}
|
|
351
593
|
// Default export
|
|
352
594
|
export default UnifiedMemoryService;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase 1 — Public API surface tests (ADR-125)
|
|
3
|
+
*
|
|
4
|
+
* Asserts that:
|
|
5
|
+
* - `MemoryService` is the canonical exported entry point.
|
|
6
|
+
* - `UnifiedMemoryService` remains exported as a deprecated alias to the same class.
|
|
7
|
+
* - `HnswLite` and `RvfBackend` are NOT exported from the top-level package surface.
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=index.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase 1 — Public API surface tests (ADR-125)
|
|
3
|
+
*
|
|
4
|
+
* Asserts that:
|
|
5
|
+
* - `MemoryService` is the canonical exported entry point.
|
|
6
|
+
* - `UnifiedMemoryService` remains exported as a deprecated alias to the same class.
|
|
7
|
+
* - `HnswLite` and `RvfBackend` are NOT exported from the top-level package surface.
|
|
8
|
+
*/
|
|
9
|
+
import { describe, it, expect } from 'vitest';
|
|
10
|
+
import * as memoryPkg from './index.js';
|
|
11
|
+
import { createHybridService, MemoryService } from './index.js';
|
|
12
|
+
import { HybridBackend } from './hybrid-backend.js';
|
|
13
|
+
describe('Phase 1 — canonical public exports', () => {
|
|
14
|
+
it('exports `MemoryService` as the canonical entry point', () => {
|
|
15
|
+
expect(memoryPkg).toHaveProperty('MemoryService');
|
|
16
|
+
expect(typeof memoryPkg.MemoryService).toBe('function');
|
|
17
|
+
});
|
|
18
|
+
it('also exports `UnifiedMemoryService` as a deprecated alias', () => {
|
|
19
|
+
expect(memoryPkg).toHaveProperty('UnifiedMemoryService');
|
|
20
|
+
expect(typeof memoryPkg.UnifiedMemoryService).toBe('function');
|
|
21
|
+
});
|
|
22
|
+
it('`MemoryService` and `UnifiedMemoryService` reference the same class', () => {
|
|
23
|
+
expect(memoryPkg.MemoryService).toBe(memoryPkg.UnifiedMemoryService);
|
|
24
|
+
});
|
|
25
|
+
it('does NOT expose `HnswLite` from the top-level package', () => {
|
|
26
|
+
expect(memoryPkg).not.toHaveProperty('HnswLite');
|
|
27
|
+
});
|
|
28
|
+
it('does NOT expose `RvfBackend` from the top-level package', () => {
|
|
29
|
+
expect(memoryPkg).not.toHaveProperty('RvfBackend');
|
|
30
|
+
});
|
|
31
|
+
it('does NOT expose DDD layer types from the top-level package', () => {
|
|
32
|
+
// These live under src/domain, src/application, src/infrastructure
|
|
33
|
+
// and have never been re-exported from index.ts — assert that invariant.
|
|
34
|
+
expect(memoryPkg).not.toHaveProperty('StoreMemoryCommandHandler');
|
|
35
|
+
expect(memoryPkg).not.toHaveProperty('SearchMemoryQueryHandler');
|
|
36
|
+
expect(memoryPkg).not.toHaveProperty('HybridMemoryRepository');
|
|
37
|
+
});
|
|
38
|
+
it('continues to expose the backend constructors that PR A keeps public', () => {
|
|
39
|
+
// Backends that downstream packages import directly remain stable.
|
|
40
|
+
expect(memoryPkg).toHaveProperty('AgentDBBackend');
|
|
41
|
+
expect(memoryPkg).toHaveProperty('SQLiteBackend');
|
|
42
|
+
expect(memoryPkg).toHaveProperty('SqlJsBackend');
|
|
43
|
+
expect(memoryPkg).toHaveProperty('HybridBackend');
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
describe('Phase 2 — createHybridService returns a real HybridBackend', () => {
|
|
47
|
+
it('returns a MemoryService whose backend is a HybridBackend instance', async () => {
|
|
48
|
+
// Trivial embedder for the test — returns a zero vector of the right shape.
|
|
49
|
+
const embedder = async (_text) => new Float32Array(384);
|
|
50
|
+
const svc = await createHybridService(':memory:', embedder, 384);
|
|
51
|
+
try {
|
|
52
|
+
expect(svc).toBeInstanceOf(MemoryService);
|
|
53
|
+
expect(svc.backend).toBeDefined();
|
|
54
|
+
expect(svc.backend).toBeInstanceOf(HybridBackend);
|
|
55
|
+
}
|
|
56
|
+
finally {
|
|
57
|
+
// initialize is required before shutdown; do the minimal lifecycle.
|
|
58
|
+
await svc.initialize().catch(() => undefined);
|
|
59
|
+
await svc.shutdown().catch(() => undefined);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
it('initializes and shuts down without error', async () => {
|
|
63
|
+
const embedder = async (_text) => new Float32Array(384);
|
|
64
|
+
const svc = await createHybridService(':memory:', embedder, 384);
|
|
65
|
+
await svc.initialize();
|
|
66
|
+
expect(svc.isInitialized()).toBe(true);
|
|
67
|
+
await svc.shutdown();
|
|
68
|
+
expect(svc.isInitialized()).toBe(false);
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
//# sourceMappingURL=index.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON security utilities for memory backends.
|
|
3
|
+
* Prevents prototype pollution when parsing JSON from database rows.
|
|
4
|
+
*
|
|
5
|
+
* @module v3/memory/json-security
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Parse JSON safely, stripping keys that enable prototype pollution.
|
|
9
|
+
* Drop-in replacement for JSON.parse that filters __proto__, constructor, prototype.
|
|
10
|
+
*/
|
|
11
|
+
export declare function safeJsonParse<T = unknown>(content: string): T;
|
|
12
|
+
//# sourceMappingURL=json-security.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-security.d.ts","sourceRoot":"","sources":["../src/json-security.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,CAO7D"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON security utilities for memory backends.
|
|
3
|
+
* Prevents prototype pollution when parsing JSON from database rows.
|
|
4
|
+
*
|
|
5
|
+
* @module v3/memory/json-security
|
|
6
|
+
*/
|
|
7
|
+
const DANGEROUS_KEYS = new Set(['__proto__', 'constructor', 'prototype']);
|
|
8
|
+
/**
|
|
9
|
+
* Parse JSON safely, stripping keys that enable prototype pollution.
|
|
10
|
+
* Drop-in replacement for JSON.parse that filters __proto__, constructor, prototype.
|
|
11
|
+
*/
|
|
12
|
+
export function safeJsonParse(content) {
|
|
13
|
+
return JSON.parse(content, (key, value) => {
|
|
14
|
+
if (DANGEROUS_KEYS.has(key)) {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
return value;
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=json-security.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-security.js","sourceRoot":"","sources":["../src/json-security.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;AAE1E;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAc,OAAe;IACxD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACxC,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAM,CAAC;AACV,CAAC"}
|