@claude-flow/memory 3.0.0-alpha.2 → 3.0.0-alpha.20
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 +858 -249
- package/dist/agent-memory-scope.d.ts +131 -0
- package/dist/agent-memory-scope.d.ts.map +1 -0
- package/dist/agent-memory-scope.js +223 -0
- package/dist/agent-memory-scope.js.map +1 -0
- package/dist/agent-memory-scope.test.d.ts +8 -0
- package/dist/agent-memory-scope.test.d.ts.map +1 -0
- package/dist/agent-memory-scope.test.js +463 -0
- package/dist/agent-memory-scope.test.js.map +1 -0
- package/dist/agentdb-adapter.d.ts +82 -4
- package/dist/agentdb-adapter.d.ts.map +1 -1
- package/dist/agentdb-adapter.js +388 -17
- package/dist/agentdb-adapter.js.map +1 -1
- package/dist/agentdb-backend.d.ts +6 -0
- package/dist/agentdb-backend.d.ts.map +1 -1
- package/dist/agentdb-backend.js +115 -51
- package/dist/agentdb-backend.js.map +1 -1
- package/dist/auto-memory-bridge.d.ts +237 -0
- package/dist/auto-memory-bridge.d.ts.map +1 -0
- package/dist/auto-memory-bridge.js +758 -0
- package/dist/auto-memory-bridge.js.map +1 -0
- package/dist/auto-memory-bridge.test.d.ts +8 -0
- package/dist/auto-memory-bridge.test.d.ts.map +1 -0
- package/dist/auto-memory-bridge.test.js +849 -0
- package/dist/auto-memory-bridge.test.js.map +1 -0
- package/dist/benchmark.test.d.ts +2 -0
- package/dist/benchmark.test.d.ts.map +1 -0
- package/dist/benchmark.test.js +277 -0
- package/dist/benchmark.test.js.map +1 -0
- package/dist/consolidator.d.ts +96 -0
- package/dist/consolidator.d.ts.map +1 -0
- package/dist/consolidator.js +209 -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 +239 -0
- package/dist/consolidator.test.js.map +1 -0
- package/dist/controller-registry.d.ts +232 -0
- package/dist/controller-registry.d.ts.map +1 -0
- package/dist/controller-registry.js +1049 -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 +691 -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 +192 -0
- package/dist/graceful-retrieval.test.js.map +1 -0
- package/dist/hnsw-index.d.ts +51 -0
- package/dist/hnsw-index.d.ts.map +1 -1
- package/dist/hnsw-index.js +396 -12
- 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/hybrid-backend.d.ts +28 -0
- package/dist/hybrid-backend.d.ts.map +1 -1
- package/dist/hybrid-backend.js +82 -4
- package/dist/hybrid-backend.js.map +1 -1
- package/dist/hybrid-backend.test.js +6 -5
- package/dist/hybrid-backend.test.js.map +1 -1
- package/dist/index.d.ts +167 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +277 -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 +137 -0
- package/dist/learning-bridge.d.ts.map +1 -0
- package/dist/learning-bridge.js +335 -0
- package/dist/learning-bridge.js.map +1 -0
- package/dist/learning-bridge.test.d.ts +8 -0
- package/dist/learning-bridge.test.d.ts.map +1 -0
- package/dist/learning-bridge.test.js +578 -0
- package/dist/learning-bridge.test.js.map +1 -0
- package/dist/memory-graph.d.ts +100 -0
- package/dist/memory-graph.d.ts.map +1 -0
- package/dist/memory-graph.js +333 -0
- package/dist/memory-graph.js.map +1 -0
- package/dist/memory-graph.test.d.ts +8 -0
- package/dist/memory-graph.test.d.ts.map +1 -0
- package/dist/memory-graph.test.js +609 -0
- package/dist/memory-graph.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.d.ts +118 -0
- package/dist/smart-retrieval.d.ts.map +1 -0
- package/dist/smart-retrieval.js +322 -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 +238 -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 +170 -74
- 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 +120 -29
- package/dist/sqljs-backend.js.map +1 -1
- package/dist/types.d.ts +3 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +48 -35
- package/.agentic-flow/intelligence.json +0 -16
- package/__tests__/coverage/base.css +0 -224
- package/__tests__/coverage/block-navigation.js +0 -87
- package/__tests__/coverage/coverage-final.json +0 -19
- package/__tests__/coverage/favicon.png +0 -0
- package/__tests__/coverage/index.html +0 -206
- package/__tests__/coverage/lcov-report/base.css +0 -224
- package/__tests__/coverage/lcov-report/block-navigation.js +0 -87
- package/__tests__/coverage/lcov-report/favicon.png +0 -0
- package/__tests__/coverage/lcov-report/index.html +0 -206
- package/__tests__/coverage/lcov-report/prettify.css +0 -1
- package/__tests__/coverage/lcov-report/prettify.js +0 -2
- package/__tests__/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/__tests__/coverage/lcov-report/sorter.js +0 -210
- package/__tests__/coverage/lcov-report/src/agentdb-adapter.ts.html +0 -2737
- package/__tests__/coverage/lcov-report/src/agentdb-backend.ts.html +0 -3130
- package/__tests__/coverage/lcov-report/src/application/commands/delete-memory.command.ts.html +0 -601
- package/__tests__/coverage/lcov-report/src/application/commands/index.html +0 -131
- package/__tests__/coverage/lcov-report/src/application/commands/store-memory.command.ts.html +0 -394
- package/__tests__/coverage/lcov-report/src/application/queries/index.html +0 -116
- package/__tests__/coverage/lcov-report/src/application/queries/search-memory.query.ts.html +0 -796
- package/__tests__/coverage/lcov-report/src/application/services/index.html +0 -116
- package/__tests__/coverage/lcov-report/src/application/services/memory-application-service.ts.html +0 -793
- package/__tests__/coverage/lcov-report/src/cache-manager.ts.html +0 -1633
- package/__tests__/coverage/lcov-report/src/database-provider.ts.html +0 -1618
- package/__tests__/coverage/lcov-report/src/domain/entities/index.html +0 -116
- package/__tests__/coverage/lcov-report/src/domain/entities/memory-entry.ts.html +0 -952
- package/__tests__/coverage/lcov-report/src/domain/services/index.html +0 -116
- package/__tests__/coverage/lcov-report/src/domain/services/memory-domain-service.ts.html +0 -1294
- package/__tests__/coverage/lcov-report/src/hnsw-index.ts.html +0 -3124
- package/__tests__/coverage/lcov-report/src/hybrid-backend.ts.html +0 -2167
- package/__tests__/coverage/lcov-report/src/index.html +0 -266
- package/__tests__/coverage/lcov-report/src/infrastructure/repositories/hybrid-memory-repository.ts.html +0 -1633
- package/__tests__/coverage/lcov-report/src/infrastructure/repositories/index.html +0 -116
- package/__tests__/coverage/lcov-report/src/migration.ts.html +0 -2092
- package/__tests__/coverage/lcov-report/src/query-builder.ts.html +0 -1711
- package/__tests__/coverage/lcov-report/src/sqlite-backend.ts.html +0 -2281
- package/__tests__/coverage/lcov-report/src/sqljs-backend.ts.html +0 -2374
- package/__tests__/coverage/lcov-report/src/types.ts.html +0 -2266
- package/__tests__/coverage/lcov.info +0 -10238
- package/__tests__/coverage/prettify.css +0 -1
- package/__tests__/coverage/prettify.js +0 -2
- package/__tests__/coverage/sort-arrow-sprite.png +0 -0
- package/__tests__/coverage/sorter.js +0 -210
- package/__tests__/coverage/src/agentdb-adapter.ts.html +0 -2737
- package/__tests__/coverage/src/agentdb-backend.ts.html +0 -3130
- package/__tests__/coverage/src/application/commands/delete-memory.command.ts.html +0 -601
- package/__tests__/coverage/src/application/commands/index.html +0 -131
- package/__tests__/coverage/src/application/commands/store-memory.command.ts.html +0 -394
- package/__tests__/coverage/src/application/queries/index.html +0 -116
- package/__tests__/coverage/src/application/queries/search-memory.query.ts.html +0 -796
- package/__tests__/coverage/src/application/services/index.html +0 -116
- package/__tests__/coverage/src/application/services/memory-application-service.ts.html +0 -793
- package/__tests__/coverage/src/cache-manager.ts.html +0 -1633
- package/__tests__/coverage/src/database-provider.ts.html +0 -1618
- package/__tests__/coverage/src/domain/entities/index.html +0 -116
- package/__tests__/coverage/src/domain/entities/memory-entry.ts.html +0 -952
- package/__tests__/coverage/src/domain/services/index.html +0 -116
- package/__tests__/coverage/src/domain/services/memory-domain-service.ts.html +0 -1294
- package/__tests__/coverage/src/hnsw-index.ts.html +0 -3124
- package/__tests__/coverage/src/hybrid-backend.ts.html +0 -2167
- package/__tests__/coverage/src/index.html +0 -266
- package/__tests__/coverage/src/infrastructure/repositories/hybrid-memory-repository.ts.html +0 -1633
- package/__tests__/coverage/src/infrastructure/repositories/index.html +0 -116
- package/__tests__/coverage/src/migration.ts.html +0 -2092
- package/__tests__/coverage/src/query-builder.ts.html +0 -1711
- package/__tests__/coverage/src/sqlite-backend.ts.html +0 -2281
- package/__tests__/coverage/src/sqljs-backend.ts.html +0 -2374
- package/__tests__/coverage/src/types.ts.html +0 -2266
- package/benchmarks/cache-hit-rate.bench.ts +0 -535
- package/benchmarks/hnsw-indexing.bench.ts +0 -552
- package/benchmarks/memory-write.bench.ts +0 -469
- package/benchmarks/vector-search.bench.ts +0 -449
- package/docs/AGENTDB-INTEGRATION.md +0 -388
- package/docs/CROSS_PLATFORM.md +0 -505
- package/docs/WINDOWS_SUPPORT.md +0 -422
- package/examples/agentdb-example.ts +0 -345
- package/examples/cross-platform-usage.ts +0 -326
- package/framework/benchmark.ts +0 -112
- package/src/agentdb-adapter.ts +0 -884
- package/src/agentdb-backend.test.ts +0 -339
- package/src/agentdb-backend.ts +0 -1016
- package/src/application/commands/delete-memory.command.ts +0 -172
- package/src/application/commands/store-memory.command.ts +0 -103
- package/src/application/index.ts +0 -36
- package/src/application/queries/search-memory.query.ts +0 -237
- package/src/application/services/memory-application-service.ts +0 -236
- package/src/cache-manager.ts +0 -516
- package/src/database-provider.test.ts +0 -364
- package/src/database-provider.ts +0 -511
- package/src/domain/entities/memory-entry.ts +0 -289
- package/src/domain/index.ts +0 -35
- package/src/domain/repositories/memory-repository.interface.ts +0 -120
- package/src/domain/services/memory-domain-service.ts +0 -403
- package/src/hnsw-index.ts +0 -1013
- package/src/hybrid-backend.test.ts +0 -399
- package/src/hybrid-backend.ts +0 -694
- package/src/index.ts +0 -515
- package/src/infrastructure/index.ts +0 -23
- package/src/infrastructure/repositories/hybrid-memory-repository.ts +0 -516
- package/src/migration.ts +0 -669
- package/src/query-builder.ts +0 -542
- package/src/sqlite-backend.ts +0 -732
- package/src/sqljs-backend.ts +0 -763
- package/src/types.ts +0 -727
- package/tmp.json +0 -0
- package/tsconfig.json +0 -9
- package/tsconfig.tsbuildinfo +0 -1
- package/verify-cross-platform.ts +0 -170
package/dist/index.js
CHANGED
|
@@ -43,36 +43,82 @@
|
|
|
43
43
|
*/
|
|
44
44
|
// Utility Functions and Constants (runtime values)
|
|
45
45
|
export { generateMemoryId, createDefaultEntry, PERFORMANCE_TARGETS, } from './types.js';
|
|
46
|
+
// ===== Auto Memory Bridge (ADR-048) =====
|
|
47
|
+
export { AutoMemoryBridge, resolveAutoMemoryDir, findGitRoot } from './auto-memory-bridge.js';
|
|
48
|
+
// ===== Learning Bridge =====
|
|
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';
|
|
55
|
+
// ===== Knowledge Graph =====
|
|
56
|
+
export { MemoryGraph } from './memory-graph.js';
|
|
57
|
+
// ===== Agent-Scoped Memory =====
|
|
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';
|
|
46
61
|
// ===== Core Components =====
|
|
47
62
|
export { AgentDBAdapter } from './agentdb-adapter.js';
|
|
48
63
|
export { AgentDBBackend } from './agentdb-backend.js';
|
|
49
64
|
export { SQLiteBackend } from './sqlite-backend.js';
|
|
50
65
|
export { SqlJsBackend } from './sqljs-backend.js';
|
|
51
66
|
export { HybridBackend } from './hybrid-backend.js';
|
|
67
|
+
// `RvfBackend` and `HnswLite` are intentionally NOT re-exported from the top level
|
|
68
|
+
// per ADR-125 Phase 1. `RvfBackend` remains reachable via
|
|
69
|
+
// `createDatabase({ provider: 'rvf' })`. The legacy `hnsw-lite.ts` module was
|
|
70
|
+
// deleted by ADR-125 Phase 3; its brute-force-degrading code is inlined into
|
|
71
|
+
// `rvf-backend.ts` as a private helper.
|
|
52
72
|
export { HNSWIndex } from './hnsw-index.js';
|
|
53
73
|
export { CacheManager, TieredCacheManager } from './cache-manager.js';
|
|
54
74
|
export { QueryBuilder, query, QueryTemplates } from './query-builder.js';
|
|
55
75
|
export { MemoryMigrator, createMigrator, migrateMultipleSources } from './migration.js';
|
|
56
76
|
export { createDatabase, getPlatformInfo, getAvailableProviders } from './database-provider.js';
|
|
77
|
+
// ===== Smart Retrieval (ADR-090) =====
|
|
78
|
+
export { smartSearch, defaultQueryExpansions } from './smart-retrieval.js';
|
|
57
79
|
// ===== Unified Memory Service =====
|
|
58
80
|
import { EventEmitter } from 'node:events';
|
|
59
81
|
import { AgentDBAdapter } from './agentdb-adapter.js';
|
|
60
82
|
import { MemoryMigrator } from './migration.js';
|
|
61
83
|
/**
|
|
62
|
-
*
|
|
84
|
+
* Memory Service implementation (legacy class name).
|
|
63
85
|
*
|
|
64
|
-
*
|
|
86
|
+
* @deprecated Use {@link MemoryService} — the canonical name introduced by
|
|
87
|
+
* ADR-125 Phase 1. `UnifiedMemoryService` is preserved as an alias and will
|
|
88
|
+
* continue to work through `@claude-flow/memory@3.0.0-rc`. Both names refer
|
|
89
|
+
* to the same class.
|
|
90
|
+
*
|
|
91
|
+
* High-level interface that provides:
|
|
65
92
|
* - Simple API for common operations
|
|
66
93
|
* - Automatic embedding generation
|
|
67
94
|
* - Cross-agent memory sharing
|
|
68
95
|
* - SONA integration for learning
|
|
69
96
|
* - Event-driven notifications
|
|
70
97
|
* - Performance monitoring
|
|
98
|
+
*
|
|
99
|
+
* @see {@link MemoryService} for the canonical alias.
|
|
71
100
|
*/
|
|
72
101
|
export class UnifiedMemoryService extends EventEmitter {
|
|
73
102
|
adapter;
|
|
74
103
|
config;
|
|
75
104
|
initialized = false;
|
|
105
|
+
/** Total successful `store()` calls since last snapshot trigger (ADR-125 Phase 3). */
|
|
106
|
+
storeCountSinceSnapshot = 0;
|
|
107
|
+
/** Resolved snapshot interval — see {@link UnifiedMemoryServiceConfig.snapshotInterval}. */
|
|
108
|
+
snapshotInterval;
|
|
109
|
+
/** Background consolidator timer (ADR-125 Phase 4). */
|
|
110
|
+
consolidatorTimer = null;
|
|
111
|
+
/** Lazy-loaded consolidator instance (ADR-125 Phase 4). */
|
|
112
|
+
consolidator = null;
|
|
113
|
+
/**
|
|
114
|
+
* The active memory backend. Defaults to the `AgentDBAdapter` created from
|
|
115
|
+
* config, but can be any `IMemoryBackend` implementation (e.g. `HybridBackend`
|
|
116
|
+
* when constructed via `createHybridService` per ADR-009 / ADR-125 Phase 2).
|
|
117
|
+
*
|
|
118
|
+
* Public so consumers can introspect the backend type without reaching for
|
|
119
|
+
* `getAdapter()` (which is AgentDB-specific).
|
|
120
|
+
*/
|
|
121
|
+
backend;
|
|
76
122
|
constructor(config = {}) {
|
|
77
123
|
super();
|
|
78
124
|
this.config = {
|
|
@@ -81,6 +127,10 @@ export class UnifiedMemoryService extends EventEmitter {
|
|
|
81
127
|
autoEmbed: true,
|
|
82
128
|
...config,
|
|
83
129
|
};
|
|
130
|
+
// ADR-125 Phase 3 — snapshot every Nth store. 0/Infinity = disabled.
|
|
131
|
+
const raw = this.config.snapshotInterval;
|
|
132
|
+
this.snapshotInterval =
|
|
133
|
+
raw === undefined ? 1000 : raw === 0 ? Infinity : raw;
|
|
84
134
|
this.adapter = new AgentDBAdapter({
|
|
85
135
|
dimensions: this.config.dimensions,
|
|
86
136
|
cacheEnabled: this.config.cacheEnabled,
|
|
@@ -94,6 +144,9 @@ export class UnifiedMemoryService extends EventEmitter {
|
|
|
94
144
|
persistencePath: this.config.persistencePath,
|
|
95
145
|
maxEntries: this.config.maxEntries,
|
|
96
146
|
});
|
|
147
|
+
// Default backend is the AgentDB adapter — ADR-125 Phase 2 introduces the
|
|
148
|
+
// ability to replace it via `withBackend()` / `createHybridService`.
|
|
149
|
+
this.backend = this.adapter;
|
|
97
150
|
// Forward adapter events
|
|
98
151
|
this.adapter.on('entry:stored', (data) => this.emit('entry:stored', data));
|
|
99
152
|
this.adapter.on('entry:updated', (data) => this.emit('entry:updated', data));
|
|
@@ -102,76 +155,235 @@ export class UnifiedMemoryService extends EventEmitter {
|
|
|
102
155
|
this.adapter.on('cache:miss', (data) => this.emit('cache:miss', data));
|
|
103
156
|
this.adapter.on('index:added', (data) => this.emit('index:added', data));
|
|
104
157
|
}
|
|
158
|
+
/**
|
|
159
|
+
* Replace the active backend with a pre-built `IMemoryBackend`.
|
|
160
|
+
*
|
|
161
|
+
* Used by `createHybridService` (ADR-125 Phase 2) to wire `HybridBackend`
|
|
162
|
+
* through `createDatabase` rather than instantiating `AgentDBAdapter`
|
|
163
|
+
* directly. The legacy `AgentDBAdapter` instance is kept around for the
|
|
164
|
+
* `storeEntry` / `semanticSearch` convenience methods that the IMemoryBackend
|
|
165
|
+
* interface doesn't cover; those calls still flow through it.
|
|
166
|
+
*
|
|
167
|
+
* Returns `this` for chaining.
|
|
168
|
+
*
|
|
169
|
+
* @internal Prefer the factory functions (`createHybridService`,
|
|
170
|
+
* `createPersistentService`, etc.) over calling this directly.
|
|
171
|
+
*/
|
|
172
|
+
withBackend(backend) {
|
|
173
|
+
this.backend = backend;
|
|
174
|
+
return this;
|
|
175
|
+
}
|
|
105
176
|
// ===== Lifecycle =====
|
|
106
177
|
async initialize() {
|
|
107
178
|
if (this.initialized)
|
|
108
179
|
return;
|
|
109
|
-
await this.
|
|
180
|
+
await this.backend.initialize();
|
|
181
|
+
// If the active backend is something other than the adapter (e.g. a
|
|
182
|
+
// HybridBackend wired by createHybridService), the adapter may never be
|
|
183
|
+
// used — skip its initialize() in that case to avoid double-allocating.
|
|
110
184
|
this.initialized = true;
|
|
185
|
+
// ADR-125 Phase 4 — start background consolidator if requested.
|
|
186
|
+
this.startConsolidatorTimer();
|
|
111
187
|
this.emit('initialized');
|
|
112
188
|
}
|
|
113
189
|
async shutdown() {
|
|
114
190
|
if (!this.initialized)
|
|
115
191
|
return;
|
|
116
|
-
|
|
192
|
+
// ADR-125 Phase 4 — stop consolidator timer first to prevent a sweep
|
|
193
|
+
// from racing the snapshot below.
|
|
194
|
+
if (this.consolidatorTimer) {
|
|
195
|
+
clearInterval(this.consolidatorTimer);
|
|
196
|
+
this.consolidatorTimer = null;
|
|
197
|
+
}
|
|
198
|
+
// ADR-125 Phase 3 — flush a final HNSW + meta snapshot before tearing the
|
|
199
|
+
// backend down. Only meaningful when the AgentDBAdapter is the active
|
|
200
|
+
// backend and persistence is enabled.
|
|
201
|
+
if (this.backend === this.adapter) {
|
|
202
|
+
try {
|
|
203
|
+
await this.adapter.saveSnapshot();
|
|
204
|
+
}
|
|
205
|
+
catch {
|
|
206
|
+
// saveToDisk already emits failure events; do not throw from shutdown.
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
await this.backend.shutdown();
|
|
117
210
|
this.initialized = false;
|
|
118
211
|
this.emit('shutdown');
|
|
119
212
|
}
|
|
213
|
+
/**
|
|
214
|
+
* Alias for {@link shutdown}. Matches the lifecycle name expected by callers
|
|
215
|
+
* who treat `MemoryService` like a connection — referenced from ADR-125
|
|
216
|
+
* Phase 3 (snapshot on close()) and Phase 4 (consolidator timer cleanup).
|
|
217
|
+
*/
|
|
218
|
+
async close() {
|
|
219
|
+
return this.shutdown();
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Start the background consolidator timer if configured.
|
|
223
|
+
* @internal
|
|
224
|
+
*/
|
|
225
|
+
startConsolidatorTimer() {
|
|
226
|
+
const cfg = this.config.consolidator;
|
|
227
|
+
if (!cfg?.autoRun)
|
|
228
|
+
return;
|
|
229
|
+
const intervalMs = cfg.intervalMs ?? 6 * 60 * 60 * 1000; // default 6h
|
|
230
|
+
if (intervalMs <= 0)
|
|
231
|
+
return;
|
|
232
|
+
this.consolidatorTimer = setInterval(() => {
|
|
233
|
+
void this.runAutoConsolidation();
|
|
234
|
+
}, intervalMs);
|
|
235
|
+
// Don't block process exit on the timer (Node-only; no-op elsewhere).
|
|
236
|
+
if (typeof this.consolidatorTimer.unref === 'function') {
|
|
237
|
+
this.consolidatorTimer.unref();
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Run a single consolidator cycle on the active adapter. Emits a
|
|
242
|
+
* `consolidation:complete` event with the {@link ConsolidationResult}.
|
|
243
|
+
* @internal
|
|
244
|
+
*/
|
|
245
|
+
async runAutoConsolidation() {
|
|
246
|
+
try {
|
|
247
|
+
const consolidator = await this.getConsolidator();
|
|
248
|
+
const result = await consolidator.runAll();
|
|
249
|
+
this.emit('consolidation:complete', result);
|
|
250
|
+
}
|
|
251
|
+
catch (err) {
|
|
252
|
+
this.emit('consolidation:failed', {
|
|
253
|
+
reason: err instanceof Error ? err.message : String(err),
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Get (and lazily construct) the {@link MemoryConsolidator} bound to this
|
|
259
|
+
* service. Added by ADR-125 Phase 4.
|
|
260
|
+
*/
|
|
261
|
+
async getConsolidator() {
|
|
262
|
+
if (this.consolidator)
|
|
263
|
+
return this.consolidator;
|
|
264
|
+
const { MemoryConsolidator } = await import('./consolidator.js');
|
|
265
|
+
// The consolidator reaches into AgentDBAdapter private state. Cast through
|
|
266
|
+
// any to bypass TS's view of those fields (the runtime structure is stable
|
|
267
|
+
// and tested by consolidator.test.ts).
|
|
268
|
+
this.consolidator = new MemoryConsolidator(this, {
|
|
269
|
+
dedupStrategy: this.config.consolidator?.dedupStrategy ?? 'keep-newest',
|
|
270
|
+
intervalMs: this.config.consolidator?.intervalMs,
|
|
271
|
+
});
|
|
272
|
+
return this.consolidator;
|
|
273
|
+
}
|
|
120
274
|
// ===== IMemoryBackend Implementation =====
|
|
121
275
|
async store(entry) {
|
|
122
|
-
|
|
276
|
+
await this.backend.store(entry);
|
|
277
|
+
this.maybeSnapshot();
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* If a snapshot interval is configured and the threshold is hit, fire a
|
|
281
|
+
* snapshot in the background. Only meaningful when the active backend is
|
|
282
|
+
* the AgentDBAdapter with persistence enabled.
|
|
283
|
+
*
|
|
284
|
+
* @internal — ADR-125 Phase 3
|
|
285
|
+
*/
|
|
286
|
+
maybeSnapshot() {
|
|
287
|
+
if (!Number.isFinite(this.snapshotInterval))
|
|
288
|
+
return;
|
|
289
|
+
if (this.backend !== this.adapter)
|
|
290
|
+
return;
|
|
291
|
+
if (!this.config.persistenceEnabled || !this.config.persistencePath)
|
|
292
|
+
return;
|
|
293
|
+
this.storeCountSinceSnapshot += 1;
|
|
294
|
+
if (this.storeCountSinceSnapshot >= this.snapshotInterval) {
|
|
295
|
+
this.storeCountSinceSnapshot = 0;
|
|
296
|
+
// Fire and forget — saveSnapshot emits its own lifecycle events.
|
|
297
|
+
void this.adapter.saveSnapshot();
|
|
298
|
+
}
|
|
123
299
|
}
|
|
124
300
|
async get(id) {
|
|
125
|
-
return this.
|
|
301
|
+
return this.backend.get(id);
|
|
126
302
|
}
|
|
127
303
|
async getByKey(namespace, key) {
|
|
128
|
-
return this.
|
|
304
|
+
return this.backend.getByKey(namespace, key);
|
|
129
305
|
}
|
|
130
306
|
async update(id, update) {
|
|
131
|
-
return this.
|
|
307
|
+
return this.backend.update(id, update);
|
|
132
308
|
}
|
|
133
309
|
async delete(id) {
|
|
134
|
-
return this.
|
|
310
|
+
return this.backend.delete(id);
|
|
135
311
|
}
|
|
136
312
|
async query(query) {
|
|
137
|
-
return this.
|
|
313
|
+
return this.backend.query(query);
|
|
138
314
|
}
|
|
139
315
|
async search(embedding, options) {
|
|
140
|
-
return this.
|
|
316
|
+
return this.backend.search(embedding, options);
|
|
141
317
|
}
|
|
142
318
|
async bulkInsert(entries) {
|
|
143
|
-
|
|
319
|
+
await this.backend.bulkInsert(entries);
|
|
320
|
+
// Count each entry toward the snapshot threshold (ADR-125 Phase 3).
|
|
321
|
+
for (let i = 0; i < entries.length; i++) {
|
|
322
|
+
this.maybeSnapshot();
|
|
323
|
+
}
|
|
144
324
|
}
|
|
145
325
|
async bulkDelete(ids) {
|
|
146
|
-
return this.
|
|
326
|
+
return this.backend.bulkDelete(ids);
|
|
147
327
|
}
|
|
148
328
|
async count(namespace) {
|
|
149
|
-
return this.
|
|
329
|
+
return this.backend.count(namespace);
|
|
150
330
|
}
|
|
151
331
|
async listNamespaces() {
|
|
152
|
-
return this.
|
|
332
|
+
return this.backend.listNamespaces();
|
|
153
333
|
}
|
|
154
334
|
async clearNamespace(namespace) {
|
|
155
|
-
return this.
|
|
335
|
+
return this.backend.clearNamespace(namespace);
|
|
156
336
|
}
|
|
157
337
|
async getStats() {
|
|
158
|
-
return this.
|
|
338
|
+
return this.backend.getStats();
|
|
159
339
|
}
|
|
160
340
|
async healthCheck() {
|
|
161
|
-
return this.
|
|
341
|
+
return this.backend.healthCheck();
|
|
162
342
|
}
|
|
163
343
|
// ===== Convenience Methods =====
|
|
164
344
|
/**
|
|
165
|
-
* Store an entry from simple input
|
|
345
|
+
* Store an entry from simple input.
|
|
346
|
+
*
|
|
347
|
+
* When the active backend is the default AgentDBAdapter, delegates to its
|
|
348
|
+
* native `storeEntry`. When a custom backend is wired (e.g. HybridBackend
|
|
349
|
+
* via `createHybridService`), this builds a full `MemoryEntry` and stores
|
|
350
|
+
* it through the IMemoryBackend interface.
|
|
166
351
|
*/
|
|
167
352
|
async storeEntry(input) {
|
|
168
|
-
|
|
353
|
+
if (this.backend === this.adapter) {
|
|
354
|
+
return this.adapter.storeEntry(input);
|
|
355
|
+
}
|
|
356
|
+
// Generic path for non-AgentDBAdapter backends
|
|
357
|
+
const { createDefaultEntry } = await import('./types.js');
|
|
358
|
+
const entry = createDefaultEntry(input);
|
|
359
|
+
// Generate an embedding on demand if needed
|
|
360
|
+
if (!entry.embedding && this.config.embeddingGenerator && entry.content) {
|
|
361
|
+
try {
|
|
362
|
+
entry.embedding = await this.config.embeddingGenerator(entry.content);
|
|
363
|
+
}
|
|
364
|
+
catch {
|
|
365
|
+
// Leave embedding undefined; backend may still accept the entry.
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
await this.backend.store(entry);
|
|
369
|
+
return entry;
|
|
169
370
|
}
|
|
170
371
|
/**
|
|
171
|
-
* Semantic search by content string
|
|
372
|
+
* Semantic search by content string.
|
|
373
|
+
*
|
|
374
|
+
* When the active backend is the default AgentDBAdapter, delegates to its
|
|
375
|
+
* native `semanticSearch`. Otherwise generates an embedding via the
|
|
376
|
+
* configured generator and calls `backend.search()`.
|
|
172
377
|
*/
|
|
173
378
|
async semanticSearch(content, k = 10, threshold) {
|
|
174
|
-
|
|
379
|
+
if (this.backend === this.adapter) {
|
|
380
|
+
return this.adapter.semanticSearch(content, k, threshold);
|
|
381
|
+
}
|
|
382
|
+
if (!this.config.embeddingGenerator) {
|
|
383
|
+
throw new Error('semanticSearch requires an embeddingGenerator when backend is not the AgentDBAdapter');
|
|
384
|
+
}
|
|
385
|
+
const embedding = await this.config.embeddingGenerator(content);
|
|
386
|
+
return this.backend.search(embedding, { k, threshold });
|
|
175
387
|
}
|
|
176
388
|
/**
|
|
177
389
|
* Find similar entries to a given entry
|
|
@@ -228,7 +440,12 @@ export class UnifiedMemoryService extends EventEmitter {
|
|
|
228
440
|
}
|
|
229
441
|
// ===== Migration =====
|
|
230
442
|
/**
|
|
231
|
-
* Migrate from a legacy memory source
|
|
443
|
+
* Migrate from a legacy memory source.
|
|
444
|
+
*
|
|
445
|
+
* The migrator is AgentDB-specific (writes through `AgentDBAdapter`).
|
|
446
|
+
* When a custom backend is wired (e.g. HybridBackend), migration still
|
|
447
|
+
* targets the local AgentDB adapter; the hybrid backend can pick up the
|
|
448
|
+
* migrated entries on next read via its own AgentDB index.
|
|
232
449
|
*/
|
|
233
450
|
async migrateFrom(source, sourcePath, options = {}) {
|
|
234
451
|
const migrator = new MemoryMigrator(this.adapter, { source, sourcePath, ...options }, this.config.embeddingGenerator);
|
|
@@ -281,6 +498,23 @@ export class UnifiedMemoryService extends EventEmitter {
|
|
|
281
498
|
return this.initialized;
|
|
282
499
|
}
|
|
283
500
|
}
|
|
501
|
+
// ===== Canonical Alias (ADR-125 Phase 1) =====
|
|
502
|
+
/**
|
|
503
|
+
* Canonical memory service entry point (ADR-125).
|
|
504
|
+
*
|
|
505
|
+
* `MemoryService` is the preferred name as of `@claude-flow/memory@3.0.0-alpha.18`.
|
|
506
|
+
* It is an alias of {@link UnifiedMemoryService}; both names refer to the same
|
|
507
|
+
* class so existing callers continue working unchanged.
|
|
508
|
+
*
|
|
509
|
+
* @example
|
|
510
|
+
* ```typescript
|
|
511
|
+
* import { MemoryService } from '@claude-flow/memory';
|
|
512
|
+
*
|
|
513
|
+
* const memory = new MemoryService({ dimensions: 1536 });
|
|
514
|
+
* await memory.initialize();
|
|
515
|
+
* ```
|
|
516
|
+
*/
|
|
517
|
+
export const MemoryService = UnifiedMemoryService;
|
|
284
518
|
// ===== Factory Functions =====
|
|
285
519
|
/**
|
|
286
520
|
* Create a simple in-memory service (for testing)
|
|
@@ -313,12 +547,16 @@ export function createEmbeddingService(embeddingGenerator, dimensions = 1536) {
|
|
|
313
547
|
});
|
|
314
548
|
}
|
|
315
549
|
/**
|
|
316
|
-
* Create a hybrid memory service (SQLite + AgentDB)
|
|
317
|
-
*
|
|
550
|
+
* Create a hybrid memory service (SQLite + AgentDB).
|
|
551
|
+
*
|
|
552
|
+
* This is the DEFAULT recommended configuration per ADR-009. ADR-125 Phase 2
|
|
553
|
+
* delivers the real wiring: the returned service's backend is a `HybridBackend`
|
|
554
|
+
* created through `createDatabase({ provider: 'hybrid' })`, not an AgentDB-only
|
|
555
|
+
* downgrade as in earlier versions.
|
|
318
556
|
*
|
|
319
557
|
* @example
|
|
320
558
|
* ```typescript
|
|
321
|
-
* const memory = createHybridService('./data/memory.db', embeddingFn);
|
|
559
|
+
* const memory = await createHybridService('./data/memory.db', embeddingFn);
|
|
322
560
|
* await memory.initialize();
|
|
323
561
|
*
|
|
324
562
|
* // Structured queries go to SQLite
|
|
@@ -326,19 +564,28 @@ export function createEmbeddingService(embeddingGenerator, dimensions = 1536) {
|
|
|
326
564
|
*
|
|
327
565
|
* // Semantic queries go to AgentDB
|
|
328
566
|
* const similar = await memory.semanticSearch('authentication patterns', 10);
|
|
567
|
+
*
|
|
568
|
+
* // Verify the backend is actually hybrid
|
|
569
|
+
* import { HybridBackend } from '@claude-flow/memory';
|
|
570
|
+
* memory.backend instanceof HybridBackend; // true
|
|
329
571
|
* ```
|
|
330
572
|
*/
|
|
331
|
-
export function createHybridService(databasePath, embeddingGenerator, dimensions = 1536) {
|
|
332
|
-
|
|
573
|
+
export async function createHybridService(databasePath, embeddingGenerator, dimensions = 1536) {
|
|
574
|
+
const { createDatabase } = await import('./database-provider.js');
|
|
575
|
+
const hybridBackend = await createDatabase(databasePath, {
|
|
576
|
+
provider: 'hybrid',
|
|
577
|
+
embeddingGenerator,
|
|
578
|
+
dimensions,
|
|
579
|
+
});
|
|
580
|
+
const service = new UnifiedMemoryService({
|
|
333
581
|
embeddingGenerator,
|
|
334
582
|
dimensions,
|
|
335
583
|
autoEmbed: true,
|
|
336
584
|
cacheEnabled: true,
|
|
337
|
-
// Note: This would require extending UnifiedMemoryService to support HybridBackend
|
|
338
|
-
// For now, this creates an AgentDB service with persistence
|
|
339
585
|
persistenceEnabled: true,
|
|
340
586
|
persistencePath: databasePath,
|
|
341
587
|
});
|
|
588
|
+
return service.withBackend(hybridBackend);
|
|
342
589
|
}
|
|
343
590
|
// Default export
|
|
344
591
|
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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAuDH,mDAAmD;AACnD,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,2CAA2C;AAC3C,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAY9F,8BAA8B;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAQtD,yDAAyD;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAQ3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAGjE,4CAA4C;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,8BAA8B;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAUhD,kCAAkC;AAClC,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,GAChB,MAAM,yBAAyB,CAAC;AAQjC,4CAA4C;AAC5C,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAW3E,8BAA8B;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAOpD,mFAAmF;AACnF,0DAA0D;AAC1D,8EAA8E;AAC9E,6EAA6E;AAC7E,wCAAwC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAGhG,wCAAwC;AACxC,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAW3E,qCAAqC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAgB3C,OAAO,EAAE,cAAc,EAAwB,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAsChD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,oBAAqB,SAAQ,YAAY;IAC5C,OAAO,CAAiB;IACxB,MAAM,CAA6B;IACnC,WAAW,GAAY,KAAK,CAAC;IAErC,sFAAsF;IAC9E,uBAAuB,GAAW,CAAC,CAAC;IAE5C,4FAA4F;IAC3E,gBAAgB,CAAS;IAE1C,uDAAuD;IAC/C,iBAAiB,GAA0C,IAAI,CAAC;IAExE,2DAA2D;IACnD,YAAY,GAAe,IAAI,CAAC;IAExC;;;;;;;OAOG;IACI,OAAO,CAAiB;IAE/B,YAAY,SAAqC,EAAE;QACjD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG;YACZ,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,IAAI;YAClB,SAAS,EAAE,IAAI;YACf,GAAG,MAAM;SACV,CAAC;QAEF,qEAAqE;QACrE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;QACzC,IAAI,CAAC,gBAAgB;YACnB,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;QAExD,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC;YAChC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;YAClC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;YACtC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAChC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;YAC9B,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;YACxB,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB;YAClD,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB;YAC9C,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB;YAClD,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB;YAClD,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;YAC5C,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;SACnC,CAAC,CAAC;QAEH,0EAA0E;QAC1E,qEAAqE;QACrE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAE5B,yBAAyB;QACzB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,WAAW,CAAC,OAAuB;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wBAAwB;IAExB,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAC7B,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAChC,oEAAoE;QACpE,wEAAwE;QACxE,wEAAwE;QACxE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,gEAAgE;QAChE,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAE9B,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAE9B,qEAAqE;QACrE,kCAAkC;QAClC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACtC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAChC,CAAC;QAED,0EAA0E;QAC1E,sEAAsE;QACtE,sCAAsC;QACtC,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YACpC,CAAC;YAAC,MAAM,CAAC;gBACP,uEAAuE;YACzE,CAAC;QACH,CAAC;QAED,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAED;;;OAGG;IACK,sBAAsB;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QACrC,IAAI,CAAC,GAAG,EAAE,OAAO;YAAE,OAAO;QAC1B,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;QACtE,IAAI,UAAU,IAAI,CAAC;YAAE,OAAO;QAE5B,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE;YACxC,KAAK,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACnC,CAAC,EAAE,UAAU,CAAC,CAAC;QACf,sEAAsE;QACtE,IAAI,OAAQ,IAAI,CAAC,iBAAyB,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YAC/D,IAAI,CAAC,iBAAyB,CAAC,KAAK,EAAE,CAAC;QAC1C,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,oBAAoB;QAChC,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAClD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;gBAChC,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACzD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,eAAe;QACnB,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC;QAChD,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACjE,2EAA2E;QAC3E,2EAA2E;QAC3E,uCAAuC;QACvC,IAAI,CAAC,YAAY,GAAG,IAAI,kBAAkB,CAAC,IAAW,EAAE;YACtD,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,aAAa,IAAI,aAAa;YACvE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,UAAU;SACjD,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,4CAA4C;IAE5C,KAAK,CAAC,KAAK,CAAC,KAAkB;QAC5B,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED;;;;;;OAMG;IACK,aAAa;QACnB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC;YAAE,OAAO;QACpD,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe;YAAE,OAAO;QAE5E,IAAI,CAAC,uBAAuB,IAAI,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,uBAAuB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1D,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC;YACjC,iEAAiE;YACjE,KAAK,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,SAAiB,EAAE,GAAW;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,MAAyB;QAChD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAkB;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,SAAuB,EAAE,OAAsB;QAC1D,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAsB;QACrC,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACvC,oEAAoE;QACpE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAa;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,SAAkB;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,SAAiB;QACpC,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,CAAC;IAED,kCAAkC;IAElC;;;;;;;OAOG;IACH,KAAK,CAAC,UAAU,CAAC,KAAuB;QACtC,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;QACD,+CAA+C;QAC/C,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAY,CAAC,CAAC;QAC/C,4CAA4C;QAC5C,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACxE,IAAI,CAAC;gBACH,KAAK,CAAC,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACxE,CAAC;YAAC,MAAM,CAAC;gBACP,iEAAiE;YACnE,CAAC;QACH,CAAC;QACD,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,cAAc,CAClB,OAAe,EACf,IAAY,EAAE,EACd,SAAkB;QAElB,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CACb,sFAAsF,CACvF,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,EAAU,EAAE,IAAY,CAAC;QACzC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YAC/B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEjE,8BAA8B;QAC9B,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,SAAiB,EACjB,GAAW,EACX,OAA2D;QAE3D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACrD,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B,MAAM,KAAK,GAAG,MAAM,OAAO,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,EAAU,EAAE,OAAe;QAC7C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;YACrB,OAAO,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,GAAG,OAAO;SACxC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,EAAU,EAAE,IAAc;QACtC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,EAAU,EAAE,IAAc;QACzC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,wBAAwB;IAExB;;;;;;;OAOG;IACH,KAAK,CAAC,WAAW,CACf,MAAuB,EACvB,UAAkB,EAClB,UAAoC,EAAE;QAEtC,MAAM,QAAQ,GAAG,IAAI,cAAc,CACjC,IAAI,CAAC,OAAO,EACZ,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,EAAE,EAClC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAC/B,CAAC;QAEF,2BAA2B;QAC3B,QAAQ,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC,CAAC;QACjF,QAAQ,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC,CAAC;QACnF,QAAQ,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC,CAAC;QACrF,QAAQ,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAC;QAC/E,QAAQ,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7E,QAAQ,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC,CAAC;QAEjF,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,yCAAyC;IAEzC;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,EAAU,EAAE,OAAe;QACzC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,MAAM,UAAU,GAAI,KAAK,CAAC,QAAQ,CAAC,UAAuB,IAAI,EAAE,CAAC;QACjE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;YACrB,QAAQ,EAAE,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE;SAC5C,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,OAAe;QACjC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/D,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1B,MAAM,UAAU,GAAI,KAAK,CAAC,QAAQ,CAAC,UAAuB,IAAI,EAAE,CAAC;YACjE,OAAO,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,sBAAsB;IAEtB;;OAEG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF;AAED,gDAAgD;AAEhD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,oBAAoB,CAAC;AAiBlD,gCAAgC;AAEhC;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,IAAI,oBAAoB,CAAC;QAC9B,kBAAkB,EAAE,KAAK;QACzB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,OAAO,IAAI,oBAAoB,CAAC;QAC9B,kBAAkB,EAAE,IAAI;QACxB,eAAe,EAAE,IAAI;QACrB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,kBAAsC,EACtC,aAAqB,IAAI;IAEzB,OAAO,IAAI,oBAAoB,CAAC;QAC9B,kBAAkB;QAClB,UAAU;QACV,SAAS,EAAE,IAAI;QACf,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,YAAoB,EACpB,kBAAsC,EACtC,aAAqB,IAAI;IAEzB,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;IAClE,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,YAAY,EAAE;QACvD,QAAQ,EAAE,QAAQ;QAClB,kBAAkB;QAClB,UAAU;KACX,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,IAAI,oBAAoB,CAAC;QACvC,kBAAkB;QAClB,UAAU;QACV,SAAS,EAAE,IAAI;QACf,YAAY,EAAE,IAAI;QAClB,kBAAkB,EAAE,IAAI;QACxB,eAAe,EAAE,YAAY;KAC9B,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;AAC5C,CAAC;AAED,iBAAiB;AACjB,eAAe,oBAAoB,CAAC"}
|
|
@@ -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"}
|