@framers/agentos 0.2.12 → 0.3.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/dist/ingest-router/executors/EntityExtractor.d.ts +23 -0
- package/dist/ingest-router/executors/EntityExtractor.d.ts.map +1 -0
- package/dist/ingest-router/executors/EntityExtractor.js +69 -0
- package/dist/ingest-router/executors/EntityExtractor.js.map +1 -0
- package/dist/ingest-router/executors/EntityLinkingIngestExecutor.d.ts +46 -0
- package/dist/ingest-router/executors/EntityLinkingIngestExecutor.d.ts.map +1 -0
- package/dist/ingest-router/executors/EntityLinkingIngestExecutor.js +45 -0
- package/dist/ingest-router/executors/EntityLinkingIngestExecutor.js.map +1 -0
- package/dist/ingest-router/executors/entity-types.d.ts +55 -0
- package/dist/ingest-router/executors/entity-types.d.ts.map +1 -0
- package/dist/ingest-router/executors/entity-types.js +17 -0
- package/dist/ingest-router/executors/entity-types.js.map +1 -0
- package/dist/ingest-router/executors/index.d.ts +7 -0
- package/dist/ingest-router/executors/index.d.ts.map +1 -1
- package/dist/ingest-router/executors/index.js +6 -0
- package/dist/ingest-router/executors/index.js.map +1 -1
- package/dist/ingest-router/index.d.ts +2 -2
- package/dist/ingest-router/index.d.ts.map +1 -1
- package/dist/ingest-router/index.js +1 -1
- package/dist/ingest-router/index.js.map +1 -1
- package/dist/memory/AgentMemory.js +1 -1
- package/dist/memory/AgentMemory.js.map +1 -1
- package/dist/memory/CognitiveMemoryManager.js +4 -4
- package/dist/memory/CognitiveMemoryManager.js.map +1 -1
- package/dist/memory/archive/IMemoryArchive.d.ts +2 -2
- package/dist/memory/archive/SqlStorageMemoryArchive.d.ts +17 -13
- package/dist/memory/archive/SqlStorageMemoryArchive.d.ts.map +1 -1
- package/dist/memory/archive/SqlStorageMemoryArchive.js +36 -28
- package/dist/memory/archive/SqlStorageMemoryArchive.js.map +1 -1
- package/dist/memory/core/config.d.ts +4 -4
- package/dist/memory/core/config.d.ts.map +1 -1
- package/dist/memory/index.d.ts +3 -3
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +3 -3
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/io/ChatGptImporter.d.ts +5 -5
- package/dist/memory/io/ChatGptImporter.d.ts.map +1 -1
- package/dist/memory/io/ChatGptImporter.js +9 -7
- package/dist/memory/io/ChatGptImporter.js.map +1 -1
- package/dist/memory/io/CsvImporter.d.ts +4 -4
- package/dist/memory/io/CsvImporter.d.ts.map +1 -1
- package/dist/memory/io/CsvImporter.js +11 -8
- package/dist/memory/io/CsvImporter.js.map +1 -1
- package/dist/memory/io/JsonExporter.d.ts +5 -5
- package/dist/memory/io/JsonExporter.d.ts.map +1 -1
- package/dist/memory/io/JsonExporter.js +13 -12
- package/dist/memory/io/JsonExporter.js.map +1 -1
- package/dist/memory/io/JsonImporter.d.ts +5 -5
- package/dist/memory/io/JsonImporter.d.ts.map +1 -1
- package/dist/memory/io/JsonImporter.js +50 -34
- package/dist/memory/io/JsonImporter.js.map +1 -1
- package/dist/memory/io/MarkdownExporter.d.ts +4 -4
- package/dist/memory/io/MarkdownExporter.d.ts.map +1 -1
- package/dist/memory/io/MarkdownExporter.js +1 -1
- package/dist/memory/io/MarkdownExporter.js.map +1 -1
- package/dist/memory/io/MarkdownImporter.d.ts +6 -6
- package/dist/memory/io/MarkdownImporter.d.ts.map +1 -1
- package/dist/memory/io/MarkdownImporter.js +8 -7
- package/dist/memory/io/MarkdownImporter.js.map +1 -1
- package/dist/memory/io/ObsidianImporter.d.ts +4 -4
- package/dist/memory/io/ObsidianImporter.d.ts.map +1 -1
- package/dist/memory/io/ObsidianImporter.js +15 -10
- package/dist/memory/io/ObsidianImporter.js.map +1 -1
- package/dist/memory/io/SqliteExporter.d.ts +5 -5
- package/dist/memory/io/SqliteExporter.d.ts.map +1 -1
- package/dist/memory/io/SqliteExporter.js +3 -3
- package/dist/memory/io/SqliteExporter.js.map +1 -1
- package/dist/memory/io/SqliteImporter.d.ts +4 -4
- package/dist/memory/io/SqliteImporter.d.ts.map +1 -1
- package/dist/memory/io/SqliteImporter.js +23 -16
- package/dist/memory/io/SqliteImporter.js.map +1 -1
- package/dist/memory/io/facade/Memory.d.ts +58 -10
- package/dist/memory/io/facade/Memory.d.ts.map +1 -1
- package/dist/memory/io/facade/Memory.js +124 -50
- package/dist/memory/io/facade/Memory.js.map +1 -1
- package/dist/memory/io/facade/types.d.ts +1 -1
- package/dist/memory/io/index.d.ts +2 -2
- package/dist/memory/io/index.js +2 -2
- package/dist/memory/io/tools/MemoryAddTool.d.ts +2 -2
- package/dist/memory/io/tools/MemoryAddTool.d.ts.map +1 -1
- package/dist/memory/io/tools/MemoryAddTool.js +2 -2
- package/dist/memory/io/tools/MemoryAddTool.js.map +1 -1
- package/dist/memory/io/tools/MemoryDeleteTool.d.ts +2 -2
- package/dist/memory/io/tools/MemoryDeleteTool.d.ts.map +1 -1
- package/dist/memory/io/tools/MemoryDeleteTool.js +1 -1
- package/dist/memory/io/tools/MemoryDeleteTool.js.map +1 -1
- package/dist/memory/io/tools/MemoryMergeTool.d.ts +2 -2
- package/dist/memory/io/tools/MemoryMergeTool.d.ts.map +1 -1
- package/dist/memory/io/tools/MemoryMergeTool.js +4 -3
- package/dist/memory/io/tools/MemoryMergeTool.js.map +1 -1
- package/dist/memory/io/tools/MemoryReflectTool.d.ts +2 -2
- package/dist/memory/io/tools/MemoryReflectTool.d.ts.map +1 -1
- package/dist/memory/io/tools/MemoryReflectTool.js.map +1 -1
- package/dist/memory/io/tools/MemorySearchTool.d.ts +2 -2
- package/dist/memory/io/tools/MemorySearchTool.d.ts.map +1 -1
- package/dist/memory/io/tools/MemorySearchTool.js.map +1 -1
- package/dist/memory/io/tools/MemoryUpdateTool.d.ts +2 -2
- package/dist/memory/io/tools/MemoryUpdateTool.d.ts.map +1 -1
- package/dist/memory/io/tools/MemoryUpdateTool.js +5 -4
- package/dist/memory/io/tools/MemoryUpdateTool.js.map +1 -1
- package/dist/memory/pipeline/consolidation/ConsolidationLoop.d.ts +3 -3
- package/dist/memory/pipeline/consolidation/ConsolidationLoop.d.ts.map +1 -1
- package/dist/memory/pipeline/consolidation/ConsolidationLoop.js +22 -17
- package/dist/memory/pipeline/consolidation/ConsolidationLoop.js.map +1 -1
- package/dist/memory/retrieval/feedback/RetrievalFeedbackSignal.d.ts +3 -3
- package/dist/memory/retrieval/feedback/RetrievalFeedbackSignal.d.ts.map +1 -1
- package/dist/memory/retrieval/feedback/RetrievalFeedbackSignal.js +15 -12
- package/dist/memory/retrieval/feedback/RetrievalFeedbackSignal.js.map +1 -1
- package/dist/memory/retrieval/graph/index.d.ts +0 -1
- package/dist/memory/retrieval/graph/index.d.ts.map +1 -1
- package/dist/memory/retrieval/graph/index.js +4 -1
- package/dist/memory/retrieval/graph/index.js.map +1 -1
- package/dist/memory/retrieval/store/{SqliteBrain.d.ts → Brain.d.ts} +106 -23
- package/dist/memory/retrieval/store/Brain.d.ts.map +1 -0
- package/dist/memory/retrieval/store/Brain.js +898 -0
- package/dist/memory/retrieval/store/Brain.js.map +1 -0
- package/dist/memory/retrieval/store/HnswSidecar.d.ts +1 -1
- package/dist/memory/retrieval/store/HnswSidecar.js +1 -1
- package/dist/memory/retrieval/store/MemoryStore.d.ts +6 -6
- package/dist/memory/retrieval/store/MemoryStore.d.ts.map +1 -1
- package/dist/memory/retrieval/store/MemoryStore.js +10 -9
- package/dist/memory/retrieval/store/MemoryStore.js.map +1 -1
- package/dist/memory/retrieval/store/{SqliteKnowledgeGraph.d.ts → SqlKnowledgeGraph.d.ts} +12 -12
- package/dist/memory/retrieval/store/SqlKnowledgeGraph.d.ts.map +1 -0
- package/dist/memory/retrieval/store/{SqliteKnowledgeGraph.js → SqlKnowledgeGraph.js} +83 -64
- package/dist/memory/retrieval/store/SqlKnowledgeGraph.js.map +1 -0
- package/dist/memory/retrieval/store/{SqliteMemoryGraph.d.ts → SqlMemoryGraph.d.ts} +11 -11
- package/dist/memory/retrieval/store/SqlMemoryGraph.d.ts.map +1 -0
- package/dist/memory/retrieval/store/{SqliteMemoryGraph.js → SqlMemoryGraph.js} +26 -24
- package/dist/memory/retrieval/store/SqlMemoryGraph.js.map +1 -0
- package/dist/memory/retrieval/store/migrations/MigrationRunner.d.ts +50 -0
- package/dist/memory/retrieval/store/migrations/MigrationRunner.d.ts.map +1 -0
- package/dist/memory/retrieval/store/migrations/MigrationRunner.js +100 -0
- package/dist/memory/retrieval/store/migrations/MigrationRunner.js.map +1 -0
- package/dist/memory/retrieval/store/migrations/index.d.ts +20 -0
- package/dist/memory/retrieval/store/migrations/index.d.ts.map +1 -0
- package/dist/memory/retrieval/store/migrations/index.js +19 -0
- package/dist/memory/retrieval/store/migrations/index.js.map +1 -0
- package/dist/memory/retrieval/store/migrations/types.d.ts +28 -0
- package/dist/memory/retrieval/store/migrations/types.d.ts.map +1 -0
- package/dist/memory/retrieval/store/migrations/types.js +7 -0
- package/dist/memory/retrieval/store/migrations/types.js.map +1 -0
- package/dist/memory/retrieval/store/migrations/v1-to-v2.d.ts +40 -0
- package/dist/memory/retrieval/store/migrations/v1-to-v2.d.ts.map +1 -0
- package/dist/memory/retrieval/store/migrations/v1-to-v2.js +491 -0
- package/dist/memory/retrieval/store/migrations/v1-to-v2.js.map +1 -0
- package/dist/memory/retrieval/store/portable-tables.d.ts +27 -0
- package/dist/memory/retrieval/store/portable-tables.d.ts.map +1 -0
- package/dist/memory/retrieval/store/portable-tables.js +56 -0
- package/dist/memory/retrieval/store/portable-tables.js.map +1 -0
- package/dist/memory-router/backends/EntityRetrievalRanker.d.ts +54 -0
- package/dist/memory-router/backends/EntityRetrievalRanker.d.ts.map +1 -0
- package/dist/memory-router/backends/EntityRetrievalRanker.js +39 -0
- package/dist/memory-router/backends/EntityRetrievalRanker.js.map +1 -0
- package/dist/memory-router/backends/index.d.ts +16 -0
- package/dist/memory-router/backends/index.d.ts.map +1 -0
- package/dist/memory-router/backends/index.js +16 -0
- package/dist/memory-router/backends/index.js.map +1 -0
- package/dist/memory-router/index.d.ts +2 -0
- package/dist/memory-router/index.d.ts.map +1 -1
- package/dist/memory-router/index.js +4 -0
- package/dist/memory-router/index.js.map +1 -1
- package/dist/rag/utils/vectorMath.d.ts +1 -1
- package/dist/rag/utils/vectorMath.js +1 -1
- package/dist/rag/vector-search/HnswIndexSidecar.d.ts +1 -1
- package/dist/rag/vector-search/HnswIndexSidecar.js +1 -1
- package/package.json +2 -2
- package/dist/memory/retrieval/graph/knowledge/SqliteKnowledgeGraph.d.ts +0 -10
- package/dist/memory/retrieval/graph/knowledge/SqliteKnowledgeGraph.d.ts.map +0 -1
- package/dist/memory/retrieval/graph/knowledge/SqliteKnowledgeGraph.js +0 -10
- package/dist/memory/retrieval/graph/knowledge/SqliteKnowledgeGraph.js.map +0 -1
- package/dist/memory/retrieval/store/SqliteBrain.d.ts.map +0 -1
- package/dist/memory/retrieval/store/SqliteBrain.js +0 -553
- package/dist/memory/retrieval/store/SqliteBrain.js.map +0 -1
- package/dist/memory/retrieval/store/SqliteKnowledgeGraph.d.ts.map +0 -1
- package/dist/memory/retrieval/store/SqliteKnowledgeGraph.js.map +0 -1
- package/dist/memory/retrieval/store/SqliteMemoryGraph.d.ts.map +0 -1
- package/dist/memory/retrieval/store/SqliteMemoryGraph.js.map +0 -1
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* @fileoverview SQLite-backed implementation of IKnowledgeGraph.
|
|
3
3
|
*
|
|
4
4
|
* Persists knowledge entities (nodes), relations (edges), and episodic memories
|
|
5
|
-
* to the `knowledge_nodes` and `knowledge_edges` tables managed by
|
|
5
|
+
* to the `knowledge_nodes` and `knowledge_edges` tables managed by Brain.
|
|
6
6
|
*
|
|
7
|
-
* Uses the async StorageAdapter API exposed by
|
|
7
|
+
* Uses the async StorageAdapter API exposed by Brain (run/get/all/exec/
|
|
8
8
|
* transaction) rather than direct better-sqlite3 access.
|
|
9
9
|
*
|
|
10
10
|
* Episodic memories are stored as knowledge_nodes with `type = 'memory'` and
|
|
@@ -16,14 +16,14 @@
|
|
|
16
16
|
* Semantic search loads embeddings from BLOB columns and computes cosine
|
|
17
17
|
* similarity in-process — no external vector DB needed for the SQLite path.
|
|
18
18
|
*
|
|
19
|
-
* @module memory/store/
|
|
19
|
+
* @module memory/store/SqlKnowledgeGraph
|
|
20
20
|
*/
|
|
21
21
|
import { uuid } from '../../core/util/crossPlatformCrypto.js';
|
|
22
22
|
// ---------------------------------------------------------------------------
|
|
23
|
-
//
|
|
23
|
+
// SqlKnowledgeGraph
|
|
24
24
|
// ---------------------------------------------------------------------------
|
|
25
25
|
/**
|
|
26
|
-
* Persistent knowledge graph backed by SQLite via
|
|
26
|
+
* Persistent knowledge graph backed by SQLite via Brain.
|
|
27
27
|
*
|
|
28
28
|
* Implements the full `IKnowledgeGraph` interface using the `knowledge_nodes`
|
|
29
29
|
* and `knowledge_edges` tables. Extended entity/relation fields that don't
|
|
@@ -32,8 +32,8 @@ import { uuid } from '../../core/util/crossPlatformCrypto.js';
|
|
|
32
32
|
*
|
|
33
33
|
* @example
|
|
34
34
|
* ```ts
|
|
35
|
-
* const brain = await
|
|
36
|
-
* const graph = new
|
|
35
|
+
* const brain = await Brain.openSqlite('/tmp/agent-brain.sqlite');
|
|
36
|
+
* const graph = new SqlKnowledgeGraph(brain);
|
|
37
37
|
* await graph.initialize();
|
|
38
38
|
*
|
|
39
39
|
* const entity = await graph.upsertEntity({
|
|
@@ -45,9 +45,9 @@ import { uuid } from '../../core/util/crossPlatformCrypto.js';
|
|
|
45
45
|
* });
|
|
46
46
|
* ```
|
|
47
47
|
*/
|
|
48
|
-
export class
|
|
48
|
+
export class SqlKnowledgeGraph {
|
|
49
49
|
/**
|
|
50
|
-
* @param brain - A
|
|
50
|
+
* @param brain - A Brain instance whose async StorageAdapter methods
|
|
51
51
|
* are used for all queries.
|
|
52
52
|
*/
|
|
53
53
|
constructor(brain) {
|
|
@@ -59,11 +59,11 @@ export class SqliteKnowledgeGraph {
|
|
|
59
59
|
/**
|
|
60
60
|
* Initialize the knowledge graph.
|
|
61
61
|
*
|
|
62
|
-
* The schema is already created by
|
|
62
|
+
* The schema is already created by Brain's constructor, so this is
|
|
63
63
|
* effectively a no-op. Provided to satisfy the IKnowledgeGraph contract.
|
|
64
64
|
*/
|
|
65
65
|
async initialize() {
|
|
66
|
-
// Schema already exists via
|
|
66
|
+
// Schema already exists via Brain._initSchema().
|
|
67
67
|
// Nothing additional to do.
|
|
68
68
|
}
|
|
69
69
|
// =========================================================================
|
|
@@ -83,7 +83,7 @@ export class SqliteKnowledgeGraph {
|
|
|
83
83
|
const now = new Date().toISOString();
|
|
84
84
|
const id = entity.id ?? uuid();
|
|
85
85
|
// Check if the entity already exists to preserve createdAt.
|
|
86
|
-
const existing = await this.brain.get('SELECT * FROM knowledge_nodes WHERE id = ?', [id]);
|
|
86
|
+
const existing = await this.brain.get('SELECT * FROM knowledge_nodes WHERE brain_id = ? AND id = ?', [this.brain.brainId, id]);
|
|
87
87
|
const createdAt = existing
|
|
88
88
|
? new Date(existing.created_at).toISOString()
|
|
89
89
|
: now;
|
|
@@ -99,7 +99,8 @@ export class SqliteKnowledgeGraph {
|
|
|
99
99
|
? this.brain.features.blobCodec.encode(entity.embedding)
|
|
100
100
|
: null;
|
|
101
101
|
const { dialect } = this.brain.features;
|
|
102
|
-
await this.brain.run(dialect.insertOrReplace('knowledge_nodes', ['id', 'type', 'label', 'properties', 'embedding', 'confidence', 'source', 'created_at'], ['?', '?', '?', '?', '?', '?', '?', '?'], 'id'), [
|
|
102
|
+
await this.brain.run(dialect.insertOrReplace('knowledge_nodes', ['brain_id', 'id', 'type', 'label', 'properties', 'embedding', 'confidence', 'source', 'created_at'], ['?', '?', '?', '?', '?', '?', '?', '?', '?'], 'brain_id, id'), [
|
|
103
|
+
this.brain.brainId,
|
|
103
104
|
id,
|
|
104
105
|
entity.type,
|
|
105
106
|
entity.label,
|
|
@@ -125,7 +126,7 @@ export class SqliteKnowledgeGraph {
|
|
|
125
126
|
* Returns `undefined` if the entity does not exist.
|
|
126
127
|
*/
|
|
127
128
|
async getEntity(id) {
|
|
128
|
-
const row = await this.brain.get('SELECT * FROM knowledge_nodes WHERE id = ?', [id]);
|
|
129
|
+
const row = await this.brain.get('SELECT * FROM knowledge_nodes WHERE brain_id = ? AND id = ?', [this.brain.brainId, id]);
|
|
129
130
|
if (!row)
|
|
130
131
|
return undefined;
|
|
131
132
|
return this._rowToEntity(row);
|
|
@@ -137,8 +138,8 @@ export class SqliteKnowledgeGraph {
|
|
|
137
138
|
* full-text search, pagination (limit/offset), and time ranges.
|
|
138
139
|
*/
|
|
139
140
|
async queryEntities(options) {
|
|
140
|
-
const clauses = [];
|
|
141
|
-
const params = [];
|
|
141
|
+
const clauses = ['brain_id = ?'];
|
|
142
|
+
const params = [this.brain.brainId];
|
|
142
143
|
// Filter: entity types (only non-memory types for queryEntities).
|
|
143
144
|
if (options?.entityTypes && options.entityTypes.length > 0) {
|
|
144
145
|
const placeholders = options.entityTypes.map(() => '?').join(', ');
|
|
@@ -159,7 +160,8 @@ export class SqliteKnowledgeGraph {
|
|
|
159
160
|
clauses.push('created_at <= ?');
|
|
160
161
|
params.push(new Date(options.timeRange.to).getTime());
|
|
161
162
|
}
|
|
162
|
-
|
|
163
|
+
// brain_id always present in clauses so WHERE is unconditional.
|
|
164
|
+
const whereClause = `WHERE ${clauses.join(' AND ')}`;
|
|
163
165
|
const limit = options?.limit ?? 100;
|
|
164
166
|
const offset = options?.offset ?? 0;
|
|
165
167
|
const sql = `SELECT * FROM knowledge_nodes ${whereClause} ORDER BY created_at DESC LIMIT ? OFFSET ?`;
|
|
@@ -187,11 +189,12 @@ export class SqliteKnowledgeGraph {
|
|
|
187
189
|
* Returns `true` if the entity existed and was deleted.
|
|
188
190
|
*/
|
|
189
191
|
async deleteEntity(id) {
|
|
192
|
+
const brainId = this.brain.brainId;
|
|
190
193
|
return await this.brain.transaction(async (trx) => {
|
|
191
194
|
// Delete all edges touching this entity.
|
|
192
|
-
await trx.run('DELETE FROM knowledge_edges WHERE source_id = ? OR target_id = ?', [id, id]);
|
|
195
|
+
await trx.run('DELETE FROM knowledge_edges WHERE brain_id = ? AND (source_id = ? OR target_id = ?)', [brainId, id, id]);
|
|
193
196
|
// Delete the node itself.
|
|
194
|
-
const result = await trx.run('DELETE FROM knowledge_nodes WHERE id = ?', [id]);
|
|
197
|
+
const result = await trx.run('DELETE FROM knowledge_nodes WHERE brain_id = ? AND id = ?', [brainId, id]);
|
|
195
198
|
return result.changes > 0;
|
|
196
199
|
});
|
|
197
200
|
}
|
|
@@ -208,7 +211,7 @@ export class SqliteKnowledgeGraph {
|
|
|
208
211
|
const now = new Date().toISOString();
|
|
209
212
|
const id = relation.id ?? uuid();
|
|
210
213
|
// Preserve createdAt if edge already exists.
|
|
211
|
-
const existing = await this.brain.get('SELECT * FROM knowledge_edges WHERE id = ?', [id]);
|
|
214
|
+
const existing = await this.brain.get('SELECT * FROM knowledge_edges WHERE brain_id = ? AND id = ?', [this.brain.brainId, id]);
|
|
212
215
|
const createdAt = existing
|
|
213
216
|
? new Date(existing.created_at).toISOString()
|
|
214
217
|
: now;
|
|
@@ -222,7 +225,8 @@ export class SqliteKnowledgeGraph {
|
|
|
222
225
|
_validTo: relation.validTo,
|
|
223
226
|
};
|
|
224
227
|
const { dialect } = this.brain.features;
|
|
225
|
-
await this.brain.run(dialect.insertOrReplace('knowledge_edges', ['id', 'source_id', 'target_id', 'type', 'weight', 'bidirectional', 'metadata', 'created_at'], ['?', '?', '?', '?', '?', '?', '?', '?'], 'id'), [
|
|
228
|
+
await this.brain.run(dialect.insertOrReplace('knowledge_edges', ['brain_id', 'id', 'source_id', 'target_id', 'type', 'weight', 'bidirectional', 'metadata', 'created_at'], ['?', '?', '?', '?', '?', '?', '?', '?', '?'], 'brain_id, id'), [
|
|
229
|
+
this.brain.brainId,
|
|
226
230
|
id,
|
|
227
231
|
relation.sourceId,
|
|
228
232
|
relation.targetId,
|
|
@@ -251,8 +255,8 @@ export class SqliteKnowledgeGraph {
|
|
|
251
255
|
*/
|
|
252
256
|
async getRelations(entityId, options) {
|
|
253
257
|
const direction = options?.direction ?? 'both';
|
|
254
|
-
const clauses = [];
|
|
255
|
-
const params = [];
|
|
258
|
+
const clauses = ['brain_id = ?'];
|
|
259
|
+
const params = [this.brain.brainId];
|
|
256
260
|
if (direction === 'outgoing') {
|
|
257
261
|
clauses.push('(source_id = ?)');
|
|
258
262
|
params.push(entityId);
|
|
@@ -279,7 +283,7 @@ export class SqliteKnowledgeGraph {
|
|
|
279
283
|
* Returns `true` if the relation existed and was deleted.
|
|
280
284
|
*/
|
|
281
285
|
async deleteRelation(id) {
|
|
282
|
-
const result = await this.brain.run('DELETE FROM knowledge_edges WHERE id = ?', [id]);
|
|
286
|
+
const result = await this.brain.run('DELETE FROM knowledge_edges WHERE brain_id = ? AND id = ?', [this.brain.brainId, id]);
|
|
283
287
|
return result.changes > 0;
|
|
284
288
|
}
|
|
285
289
|
// =========================================================================
|
|
@@ -320,8 +324,9 @@ export class SqliteKnowledgeGraph {
|
|
|
320
324
|
timestamp: now,
|
|
321
325
|
};
|
|
322
326
|
await this.brain.run(`INSERT INTO knowledge_nodes
|
|
323
|
-
(id, type, label, properties, embedding, confidence, source, created_at)
|
|
324
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?)`, [
|
|
327
|
+
(brain_id, id, type, label, properties, embedding, confidence, source, created_at)
|
|
328
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
|
|
329
|
+
this.brain.brainId,
|
|
325
330
|
id,
|
|
326
331
|
'memory',
|
|
327
332
|
memory.summary.slice(0, 200),
|
|
@@ -358,7 +363,7 @@ export class SqliteKnowledgeGraph {
|
|
|
358
363
|
* then unpacks the memory-specific fields from the `properties` JSON.
|
|
359
364
|
*/
|
|
360
365
|
async getMemory(id) {
|
|
361
|
-
const row = await this.brain.get(`SELECT * FROM knowledge_nodes WHERE id = ? AND type = 'memory'`, [id]);
|
|
366
|
+
const row = await this.brain.get(`SELECT * FROM knowledge_nodes WHERE brain_id = ? AND id = ? AND type = 'memory'`, [this.brain.brainId, id]);
|
|
362
367
|
if (!row)
|
|
363
368
|
return undefined;
|
|
364
369
|
return this._rowToMemory(row);
|
|
@@ -370,8 +375,8 @@ export class SqliteKnowledgeGraph {
|
|
|
370
375
|
* time range, and result limit.
|
|
371
376
|
*/
|
|
372
377
|
async queryMemories(options) {
|
|
373
|
-
const clauses = ["type = 'memory'"];
|
|
374
|
-
const params = [];
|
|
378
|
+
const clauses = ['brain_id = ?', "type = 'memory'"];
|
|
379
|
+
const params = [this.brain.brainId];
|
|
375
380
|
// Filter by minimum importance (stored as confidence).
|
|
376
381
|
if (options?.minImportance !== undefined) {
|
|
377
382
|
clauses.push('confidence >= ?');
|
|
@@ -415,19 +420,19 @@ export class SqliteKnowledgeGraph {
|
|
|
415
420
|
const limit = topK ?? 10;
|
|
416
421
|
const searchTerm = `%${query}%`;
|
|
417
422
|
const rows = await this.brain.all(`SELECT * FROM knowledge_nodes
|
|
418
|
-
WHERE type = 'memory' AND (label LIKE ? OR properties LIKE ?)
|
|
423
|
+
WHERE brain_id = ? AND type = 'memory' AND (label LIKE ? OR properties LIKE ?)
|
|
419
424
|
ORDER BY created_at DESC
|
|
420
|
-
LIMIT ?`, [searchTerm, searchTerm, limit]);
|
|
425
|
+
LIMIT ?`, [this.brain.brainId, searchTerm, searchTerm, limit]);
|
|
421
426
|
const memories = rows.map((r) => this._rowToMemory(r));
|
|
422
427
|
// Update access count and last accessed for each recalled memory.
|
|
423
428
|
const now = new Date().toISOString();
|
|
424
429
|
for (const mem of memories) {
|
|
425
|
-
const row = await this.brain.get('SELECT * FROM knowledge_nodes WHERE id = ?', [mem.id]);
|
|
430
|
+
const row = await this.brain.get('SELECT * FROM knowledge_nodes WHERE brain_id = ? AND id = ?', [this.brain.brainId, mem.id]);
|
|
426
431
|
if (row) {
|
|
427
432
|
const fields = JSON.parse(row.properties);
|
|
428
433
|
fields._accessCount = (fields._accessCount ?? 0) + 1;
|
|
429
434
|
fields._lastAccessedAt = now;
|
|
430
|
-
await this.brain.run('UPDATE knowledge_nodes SET properties = ? WHERE id = ?', [JSON.stringify(fields), mem.id]);
|
|
435
|
+
await this.brain.run('UPDATE knowledge_nodes SET properties = ? WHERE brain_id = ? AND id = ?', [JSON.stringify(fields), this.brain.brainId, mem.id]);
|
|
431
436
|
mem.accessCount = fields._accessCount;
|
|
432
437
|
mem.lastAccessedAt = now;
|
|
433
438
|
}
|
|
@@ -456,15 +461,16 @@ export class SqliteKnowledgeGraph {
|
|
|
456
461
|
const minWeight = options?.minWeight ?? 0;
|
|
457
462
|
const maxNodes = options?.maxNodes ?? 1000;
|
|
458
463
|
// Build the edge direction clause for the recursive step.
|
|
464
|
+
// brain_id is filtered in the WHERE clause below; the join itself stays direction-only.
|
|
459
465
|
let edgeJoin;
|
|
460
466
|
if (direction === 'outgoing') {
|
|
461
|
-
edgeJoin = 'knowledge_edges e ON e.source_id = t.entity_id';
|
|
467
|
+
edgeJoin = 'knowledge_edges e ON e.source_id = t.entity_id AND e.brain_id = t.brain_id';
|
|
462
468
|
}
|
|
463
469
|
else if (direction === 'incoming') {
|
|
464
|
-
edgeJoin = 'knowledge_edges e ON e.target_id = t.entity_id';
|
|
470
|
+
edgeJoin = 'knowledge_edges e ON e.target_id = t.entity_id AND e.brain_id = t.brain_id';
|
|
465
471
|
}
|
|
466
472
|
else {
|
|
467
|
-
edgeJoin = 'knowledge_edges e ON (e.source_id = t.entity_id OR e.target_id = t.entity_id)';
|
|
473
|
+
edgeJoin = 'knowledge_edges e ON e.brain_id = t.brain_id AND (e.source_id = t.entity_id OR e.target_id = t.entity_id)';
|
|
468
474
|
}
|
|
469
475
|
// Build optional relation type filter.
|
|
470
476
|
let typeFilter = '';
|
|
@@ -488,11 +494,13 @@ export class SqliteKnowledgeGraph {
|
|
|
488
494
|
const sql = `
|
|
489
495
|
WITH RECURSIVE traverse AS (
|
|
490
496
|
SELECT
|
|
497
|
+
CAST(? AS TEXT) AS brain_id,
|
|
491
498
|
? AS entity_id,
|
|
492
499
|
0 AS depth,
|
|
493
500
|
CAST(? AS TEXT) AS edge_id
|
|
494
501
|
UNION ALL
|
|
495
502
|
SELECT
|
|
503
|
+
t.brain_id,
|
|
496
504
|
${nextEntityExpr},
|
|
497
505
|
t.depth + 1,
|
|
498
506
|
e.id
|
|
@@ -508,6 +516,7 @@ export class SqliteKnowledgeGraph {
|
|
|
508
516
|
LIMIT ?
|
|
509
517
|
`;
|
|
510
518
|
const params = [
|
|
519
|
+
this.brain.brainId,
|
|
511
520
|
startEntityId,
|
|
512
521
|
'', // placeholder edge_id for root
|
|
513
522
|
maxDepth,
|
|
@@ -545,7 +554,7 @@ export class SqliteKnowledgeGraph {
|
|
|
545
554
|
}
|
|
546
555
|
const relations = [];
|
|
547
556
|
for (const rid of data.edgeIds) {
|
|
548
|
-
const row = await this.brain.get('SELECT * FROM knowledge_edges WHERE id = ?', [rid]);
|
|
557
|
+
const row = await this.brain.get('SELECT * FROM knowledge_edges WHERE brain_id = ? AND id = ?', [this.brain.brainId, rid]);
|
|
549
558
|
if (row)
|
|
550
559
|
relations.push(this._rowToRelation(row));
|
|
551
560
|
}
|
|
@@ -574,12 +583,14 @@ export class SqliteKnowledgeGraph {
|
|
|
574
583
|
const sql = `
|
|
575
584
|
WITH RECURSIVE path_search AS (
|
|
576
585
|
SELECT
|
|
586
|
+
CAST(? AS TEXT) AS brain_id,
|
|
577
587
|
? AS current_id,
|
|
578
588
|
CAST(? AS TEXT) AS path_entities,
|
|
579
589
|
CAST('' AS TEXT) AS path_edges,
|
|
580
590
|
0 AS depth
|
|
581
591
|
UNION ALL
|
|
582
592
|
SELECT
|
|
593
|
+
p.brain_id,
|
|
583
594
|
CASE
|
|
584
595
|
WHEN e.source_id = p.current_id THEN e.target_id
|
|
585
596
|
ELSE e.source_id
|
|
@@ -589,7 +600,9 @@ export class SqliteKnowledgeGraph {
|
|
|
589
600
|
CASE WHEN p.path_edges = '' THEN e.id ELSE p.path_edges || ',' || e.id END,
|
|
590
601
|
p.depth + 1
|
|
591
602
|
FROM path_search p
|
|
592
|
-
JOIN knowledge_edges e
|
|
603
|
+
JOIN knowledge_edges e
|
|
604
|
+
ON e.brain_id = p.brain_id
|
|
605
|
+
AND (e.source_id = p.current_id OR e.target_id = p.current_id)
|
|
593
606
|
WHERE p.depth < ?
|
|
594
607
|
AND p.path_entities NOT LIKE '%' ||
|
|
595
608
|
CASE WHEN e.source_id = p.current_id THEN e.target_id ELSE e.source_id END || '%'
|
|
@@ -600,7 +613,7 @@ export class SqliteKnowledgeGraph {
|
|
|
600
613
|
ORDER BY depth ASC
|
|
601
614
|
LIMIT 1
|
|
602
615
|
`;
|
|
603
|
-
const row = await this.brain.get(sql, [sourceId, sourceId, depth, targetId]);
|
|
616
|
+
const row = await this.brain.get(sql, [this.brain.brainId, sourceId, sourceId, depth, targetId]);
|
|
604
617
|
if (!row)
|
|
605
618
|
return null;
|
|
606
619
|
const entityIds = row.path_entities.split(',').filter(Boolean);
|
|
@@ -612,7 +625,7 @@ export class SqliteKnowledgeGraph {
|
|
|
612
625
|
return null;
|
|
613
626
|
let relation;
|
|
614
627
|
if (i > 0 && edgeIds[i - 1]) {
|
|
615
|
-
const edgeRow = await this.brain.get('SELECT * FROM knowledge_edges WHERE id = ?', [edgeIds[i - 1]]);
|
|
628
|
+
const edgeRow = await this.brain.get('SELECT * FROM knowledge_edges WHERE brain_id = ? AND id = ?', [this.brain.brainId, edgeIds[i - 1]]);
|
|
616
629
|
if (edgeRow)
|
|
617
630
|
relation = this._rowToRelation(edgeRow);
|
|
618
631
|
}
|
|
@@ -631,21 +644,24 @@ export class SqliteKnowledgeGraph {
|
|
|
631
644
|
const maxDepth = depth ?? 1;
|
|
632
645
|
const sql = `
|
|
633
646
|
WITH RECURSIVE neighborhood AS (
|
|
634
|
-
SELECT ? AS entity_id, 0 AS depth
|
|
647
|
+
SELECT CAST(? AS TEXT) AS brain_id, ? AS entity_id, 0 AS depth
|
|
635
648
|
UNION ALL
|
|
636
649
|
SELECT
|
|
650
|
+
n.brain_id,
|
|
637
651
|
CASE
|
|
638
652
|
WHEN e.source_id = n.entity_id THEN e.target_id
|
|
639
653
|
ELSE e.source_id
|
|
640
654
|
END,
|
|
641
655
|
n.depth + 1
|
|
642
656
|
FROM neighborhood n
|
|
643
|
-
JOIN knowledge_edges e
|
|
657
|
+
JOIN knowledge_edges e
|
|
658
|
+
ON e.brain_id = n.brain_id
|
|
659
|
+
AND (e.source_id = n.entity_id OR e.target_id = n.entity_id)
|
|
644
660
|
WHERE n.depth < ?
|
|
645
661
|
)
|
|
646
662
|
SELECT DISTINCT entity_id FROM neighborhood
|
|
647
663
|
`;
|
|
648
|
-
const rows = await this.brain.all(sql, [entityId, maxDepth]);
|
|
664
|
+
const rows = await this.brain.all(sql, [this.brain.brainId, entityId, maxDepth]);
|
|
649
665
|
const entityIds = new Set(rows.map((r) => r.entity_id));
|
|
650
666
|
const entities = [];
|
|
651
667
|
for (const eid of entityIds) {
|
|
@@ -654,7 +670,7 @@ export class SqliteKnowledgeGraph {
|
|
|
654
670
|
entities.push(entity);
|
|
655
671
|
}
|
|
656
672
|
// Collect all edges where both endpoints are in the neighbourhood.
|
|
657
|
-
const allEdges = await this.brain.all('SELECT * FROM knowledge_edges');
|
|
673
|
+
const allEdges = await this.brain.all('SELECT * FROM knowledge_edges WHERE brain_id = ?', [this.brain.brainId]);
|
|
658
674
|
const relations = allEdges
|
|
659
675
|
.filter((e) => entityIds.has(e.source_id) && entityIds.has(e.target_id))
|
|
660
676
|
.map((r) => this._rowToRelation(r));
|
|
@@ -679,7 +695,7 @@ export class SqliteKnowledgeGraph {
|
|
|
679
695
|
const topK = options.topK ?? 10;
|
|
680
696
|
const minSimilarity = options.minSimilarity ?? 0;
|
|
681
697
|
// Build WHERE clause based on scope.
|
|
682
|
-
const clauses = ['embedding IS NOT NULL'];
|
|
698
|
+
const clauses = ['brain_id = ?', 'embedding IS NOT NULL'];
|
|
683
699
|
if (scope === 'entities') {
|
|
684
700
|
clauses.push("type != 'memory'");
|
|
685
701
|
}
|
|
@@ -691,7 +707,7 @@ export class SqliteKnowledgeGraph {
|
|
|
691
707
|
clauses.push(`type IN (${placeholders})`);
|
|
692
708
|
}
|
|
693
709
|
const sql = `SELECT * FROM knowledge_nodes WHERE ${clauses.join(' AND ')}`;
|
|
694
|
-
const params = [];
|
|
710
|
+
const params = [this.brain.brainId];
|
|
695
711
|
if (options.entityTypes && options.entityTypes.length > 0) {
|
|
696
712
|
params.push(...options.entityTypes);
|
|
697
713
|
}
|
|
@@ -739,9 +755,9 @@ export class SqliteKnowledgeGraph {
|
|
|
739
755
|
// Also search nodes WITHOUT embeddings by keyword when no embedding vectors
|
|
740
756
|
// are available (pure keyword fallback).
|
|
741
757
|
if (results.length === 0) {
|
|
742
|
-
const allNodesSql = `SELECT * FROM knowledge_nodes WHERE ${scope === 'entities' ? "type != 'memory'" :
|
|
758
|
+
const allNodesSql = `SELECT * FROM knowledge_nodes WHERE brain_id = ? AND ${scope === 'entities' ? "type != 'memory'" :
|
|
743
759
|
scope === 'memories' ? "type = 'memory'" : '1=1'}`;
|
|
744
|
-
const allRows = await this.brain.all(allNodesSql);
|
|
760
|
+
const allRows = await this.brain.all(allNodesSql, [this.brain.brainId]);
|
|
745
761
|
for (const row of allRows) {
|
|
746
762
|
const label = row.label.toLowerCase();
|
|
747
763
|
const propsStr = row.properties.toLowerCase();
|
|
@@ -803,17 +819,18 @@ export class SqliteKnowledgeGraph {
|
|
|
803
819
|
throw new Error(`Primary entity not found: ${primaryId}`);
|
|
804
820
|
}
|
|
805
821
|
const othersIds = entityIds.filter((id) => id !== primaryId);
|
|
822
|
+
const brainId = this.brain.brainId;
|
|
806
823
|
await this.brain.transaction(async (trx) => {
|
|
807
824
|
for (const otherId of othersIds) {
|
|
808
825
|
// Re-link outgoing edges: source_id = otherId -> primaryId.
|
|
809
|
-
await trx.run('UPDATE knowledge_edges SET source_id = ? WHERE source_id = ?', [primaryId, otherId]);
|
|
826
|
+
await trx.run('UPDATE knowledge_edges SET source_id = ? WHERE brain_id = ? AND source_id = ?', [primaryId, brainId, otherId]);
|
|
810
827
|
// Re-link incoming edges: target_id = otherId -> primaryId.
|
|
811
|
-
await trx.run('UPDATE knowledge_edges SET target_id = ? WHERE target_id = ?', [primaryId, otherId]);
|
|
828
|
+
await trx.run('UPDATE knowledge_edges SET target_id = ? WHERE brain_id = ? AND target_id = ?', [primaryId, brainId, otherId]);
|
|
812
829
|
// Delete the non-primary entity node.
|
|
813
|
-
await trx.run('DELETE FROM knowledge_nodes WHERE id = ?', [otherId]);
|
|
830
|
+
await trx.run('DELETE FROM knowledge_nodes WHERE brain_id = ? AND id = ?', [brainId, otherId]);
|
|
814
831
|
}
|
|
815
832
|
// Remove any self-referential edges that may have resulted from the merge.
|
|
816
|
-
await trx.run('DELETE FROM knowledge_edges WHERE source_id = target_id');
|
|
833
|
+
await trx.run('DELETE FROM knowledge_edges WHERE brain_id = ? AND source_id = target_id', [brainId]);
|
|
817
834
|
});
|
|
818
835
|
// Return the surviving primary entity (re-fetch to reflect current state).
|
|
819
836
|
return (await this.getEntity(primaryId));
|
|
@@ -831,7 +848,7 @@ export class SqliteKnowledgeGraph {
|
|
|
831
848
|
const factor = decayFactor ?? 0.95;
|
|
832
849
|
const result = await this.brain.run(`UPDATE knowledge_nodes
|
|
833
850
|
SET confidence = confidence * ?
|
|
834
|
-
WHERE type = 'memory'`, [factor]);
|
|
851
|
+
WHERE brain_id = ? AND type = 'memory'`, [factor, this.brain.brainId]);
|
|
835
852
|
return result.changes;
|
|
836
853
|
}
|
|
837
854
|
/**
|
|
@@ -841,33 +858,34 @@ export class SqliteKnowledgeGraph {
|
|
|
841
858
|
* average confidence, and oldest/newest entry timestamps.
|
|
842
859
|
*/
|
|
843
860
|
async getStats() {
|
|
861
|
+
const brainId = this.brain.brainId;
|
|
844
862
|
// Total non-memory entities.
|
|
845
|
-
const entityCountRow = await this.brain.get("SELECT COUNT(*) AS cnt FROM knowledge_nodes WHERE type != 'memory'");
|
|
863
|
+
const entityCountRow = await this.brain.get("SELECT COUNT(*) AS cnt FROM knowledge_nodes WHERE brain_id = ? AND type != 'memory'", [brainId]);
|
|
846
864
|
const entityCount = entityCountRow?.cnt ?? 0;
|
|
847
865
|
// Total relations.
|
|
848
|
-
const relationCountRow = await this.brain.get('SELECT COUNT(*) AS cnt FROM knowledge_edges');
|
|
866
|
+
const relationCountRow = await this.brain.get('SELECT COUNT(*) AS cnt FROM knowledge_edges WHERE brain_id = ?', [brainId]);
|
|
849
867
|
const relationCount = relationCountRow?.cnt ?? 0;
|
|
850
868
|
// Total memories.
|
|
851
|
-
const memoryCountRow = await this.brain.get("SELECT COUNT(*) AS cnt FROM knowledge_nodes WHERE type = 'memory'");
|
|
869
|
+
const memoryCountRow = await this.brain.get("SELECT COUNT(*) AS cnt FROM knowledge_nodes WHERE brain_id = ? AND type = 'memory'", [brainId]);
|
|
852
870
|
const memoryCount = memoryCountRow?.cnt ?? 0;
|
|
853
871
|
// Entity types breakdown (exclude memories).
|
|
854
|
-
const entityTypeRows = await this.brain.all("SELECT type, COUNT(*) AS cnt FROM knowledge_nodes WHERE type != 'memory' GROUP BY type");
|
|
872
|
+
const entityTypeRows = await this.brain.all("SELECT type, COUNT(*) AS cnt FROM knowledge_nodes WHERE brain_id = ? AND type != 'memory' GROUP BY type", [brainId]);
|
|
855
873
|
const entitiesByType = {};
|
|
856
874
|
for (const row of entityTypeRows) {
|
|
857
875
|
entitiesByType[row.type] = row.cnt;
|
|
858
876
|
}
|
|
859
877
|
// Relation types breakdown.
|
|
860
|
-
const relTypeRows = await this.brain.all('SELECT type, COUNT(*) AS cnt FROM knowledge_edges GROUP BY type');
|
|
878
|
+
const relTypeRows = await this.brain.all('SELECT type, COUNT(*) AS cnt FROM knowledge_edges WHERE brain_id = ? GROUP BY type', [brainId]);
|
|
861
879
|
const relationsByType = {};
|
|
862
880
|
for (const row of relTypeRows) {
|
|
863
881
|
relationsByType[row.type] = row.cnt;
|
|
864
882
|
}
|
|
865
883
|
// Average confidence across all nodes.
|
|
866
|
-
const avgConfRow = await this.brain.get('SELECT AVG(confidence) AS avg_conf FROM knowledge_nodes');
|
|
884
|
+
const avgConfRow = await this.brain.get('SELECT AVG(confidence) AS avg_conf FROM knowledge_nodes WHERE brain_id = ?', [brainId]);
|
|
867
885
|
const avgConf = avgConfRow?.avg_conf ?? 0;
|
|
868
886
|
// Oldest and newest entries.
|
|
869
|
-
const oldest = await this.brain.get('SELECT created_at FROM knowledge_nodes ORDER BY created_at ASC LIMIT 1');
|
|
870
|
-
const newest = await this.brain.get('SELECT created_at FROM knowledge_nodes ORDER BY created_at DESC LIMIT 1');
|
|
887
|
+
const oldest = await this.brain.get('SELECT created_at FROM knowledge_nodes WHERE brain_id = ? ORDER BY created_at ASC LIMIT 1', [brainId]);
|
|
888
|
+
const newest = await this.brain.get('SELECT created_at FROM knowledge_nodes WHERE brain_id = ? ORDER BY created_at DESC LIMIT 1', [brainId]);
|
|
871
889
|
return {
|
|
872
890
|
totalEntities: entityCount,
|
|
873
891
|
totalRelations: relationCount,
|
|
@@ -884,10 +902,11 @@ export class SqliteKnowledgeGraph {
|
|
|
884
902
|
* Wipes the knowledge graph completely.
|
|
885
903
|
*/
|
|
886
904
|
async clear() {
|
|
905
|
+
const brainId = this.brain.brainId;
|
|
887
906
|
await this.brain.transaction(async (trx) => {
|
|
888
907
|
// Edges first (FK constraint on source_id / target_id -> knowledge_nodes).
|
|
889
|
-
await trx.
|
|
890
|
-
await trx.
|
|
908
|
+
await trx.run('DELETE FROM knowledge_edges WHERE brain_id = ?', [brainId]);
|
|
909
|
+
await trx.run('DELETE FROM knowledge_nodes WHERE brain_id = ?', [brainId]);
|
|
891
910
|
});
|
|
892
911
|
}
|
|
893
912
|
// =========================================================================
|
|
@@ -990,4 +1009,4 @@ export class SqliteKnowledgeGraph {
|
|
|
990
1009
|
};
|
|
991
1010
|
}
|
|
992
1011
|
}
|
|
993
|
-
//# sourceMappingURL=
|
|
1012
|
+
//# sourceMappingURL=SqlKnowledgeGraph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SqlKnowledgeGraph.js","sourceRoot":"","sources":["../../../../src/memory/retrieval/store/SqlKnowledgeGraph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAoBH,OAAO,EAAE,IAAI,EAAE,MAAM,wCAAwC,CAAC;AA2G9D,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAO,iBAAiB;IAI5B;;;OAGG;IACH,YAAY,KAAY;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;;;;OAKG;IACH,KAAK,CAAC,UAAU;QACd,iDAAiD;QACjD,4BAA4B;IAC9B,CAAC;IAED,4EAA4E;IAC5E,oBAAoB;IACpB,4EAA4E;IAE5E;;;;;;;;;OASG;IACH,KAAK,CAAC,YAAY,CAChB,MAAmF;QAEnF,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;QAE/B,4DAA4D;QAC5D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CACnC,6DAA6D,EAC7D,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CACzB,CAAC;QAEF,MAAM,SAAS,GAAG,QAAQ;YACxB,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE;YAC7C,CAAC,CAAC,GAAG,CAAC;QAER,0DAA0D;QAC1D,MAAM,QAAQ,GAAuB;YACnC,MAAM,EAAE,MAAM,CAAC,UAAU;YACzB,QAAQ,EAAE,MAAM,CAAC,OAAO;YACxB,KAAK,EAAE,MAAM,CAAC,IAAI;YAClB,SAAS,EAAE,MAAM,CAAC,QAAQ;YAC1B,UAAU,EAAE,GAAG;SAChB,CAAC;QAEF,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS;YACpC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;YACxD,CAAC,CAAC,IAAI,CAAC;QAET,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QACxC,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAClB,OAAO,CAAC,eAAe,CACrB,iBAAiB,EACjB,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,CAAC,EACpG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC7C,cAAc,CACf,EACD;YACE,IAAI,CAAC,KAAK,CAAC,OAAO;YAClB,EAAE;YACF,MAAM,CAAC,IAAI;YACX,MAAM,CAAC,KAAK;YACZ,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YACxB,aAAa;YACb,MAAM,CAAC,UAAU;YACjB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;YAC7B,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;SAC9B,CACF,CAAC;QAEF,OAAO,IAAI,CAAC,YAAY,CAAC;YACvB,EAAE;YACF,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YACpC,SAAS,EAAE,aAAa;YACxB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;YACrC,UAAU,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;SAC1C,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS,CAAC,EAAY;QAC1B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAC9B,6DAA6D,EAC7D,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CACzB,CAAC;QAEF,IAAI,CAAC,GAAG;YAAE,OAAO,SAAS,CAAC;QAC3B,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,aAAa,CAAC,OAA+B;QACjD,MAAM,OAAO,GAAa,CAAC,cAAc,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAc,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAE/C,kEAAkE;QAClE,IAAI,OAAO,EAAE,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3D,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnE,OAAO,CAAC,IAAI,CAAC,YAAY,YAAY,GAAG,CAAC,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC;QAED,8BAA8B;QAC9B,IAAI,OAAO,EAAE,aAAa,KAAK,SAAS,EAAE,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACrC,CAAC;QAED,sBAAsB;QACtB,IAAI,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,gEAAgE;QAChE,MAAM,WAAW,GAAG,SAAS,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACrD,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,GAAG,CAAC;QACpC,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC;QAEpC,MAAM,GAAG,GAAG,iCAAiC,WAAW,4CAA4C,CAAC;QACrG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAE3B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAU,GAAG,EAAE,MAAM,CAAC,CAAC;QAExD,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAErD,0DAA0D;QAC1D,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;YACrB,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QACnE,CAAC;QAED,uDAAuD;QACvD,IAAI,OAAO,EAAE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC/B,OAAO,CAAC,IAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CACnD,CAAC;QACJ,CAAC;QAED,+EAA+E;QAC/E,IAAK,OAA2D,EAAE,UAAU,EAAE,CAAC;YAC7E,MAAM,MAAM,GAAK,OAA2D,CAAC,UAAqB,CAAC,WAAW,EAAE,CAAC;YACjH,QAAQ,GAAG,QAAQ,CAAC,MAAM,CACxB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACtC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAC9D,CAAC;QACJ,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,CAAC,EAAY;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QACnC,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAChD,yCAAyC;YACzC,MAAM,GAAG,CAAC,GAAG,CACX,qFAAqF,EACrF,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAClB,CAAC;YAEF,0BAA0B;YAC1B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAC1B,2DAA2D,EAC3D,CAAC,OAAO,EAAE,EAAE,CAAC,CACd,CAAC;YAEF,OAAO,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,sBAAsB;IACtB,4EAA4E;IAE5E;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAClB,QAA2E;QAE3E,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,EAAE,GAAG,QAAQ,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;QAEjC,6CAA6C;QAC7C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CACnC,6DAA6D,EAC7D,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CACzB,CAAC;QAEF,MAAM,SAAS,GAAG,QAAQ;YACxB,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE;YAC7C,CAAC,CAAC,GAAG,CAAC;QAER,2DAA2D;QAC3D,MAAM,QAAQ,GAAuB;YACnC,MAAM,EAAE,QAAQ,CAAC,KAAK;YACtB,WAAW,EAAE,QAAQ,CAAC,UAAU;YAChC,WAAW,EAAE,QAAQ,CAAC,UAAU;YAChC,OAAO,EAAE,QAAQ,CAAC,MAAM;YACxB,UAAU,EAAE,QAAQ,CAAC,SAAS;YAC9B,QAAQ,EAAE,QAAQ,CAAC,OAAO;SAC3B,CAAC;QAEF,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QACxC,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAClB,OAAO,CAAC,eAAe,CACrB,iBAAiB,EACjB,CAAC,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,CAAC,EACzG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC7C,cAAc,CACf,EACD;YACE,IAAI,CAAC,KAAK,CAAC,OAAO;YAClB,EAAE;YACF,QAAQ,CAAC,QAAQ;YACjB,QAAQ,CAAC,QAAQ;YACjB,QAAQ,CAAC,IAAI;YACb,QAAQ,CAAC,MAAM;YACf,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YACxB,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;SAC9B,CACF,CAAC;QAEF,OAAO,IAAI,CAAC,cAAc,CAAC;YACzB,EAAE;YACF,SAAS,EAAE,QAAQ,CAAC,QAAQ;YAC5B,SAAS,EAAE,QAAQ,CAAC,QAAQ;YAC5B,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YAClC,UAAU,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;SAC1C,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAChB,QAAkB,EAClB,OAAkF;QAElF,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,MAAM,CAAC;QAE/C,MAAM,OAAO,GAAa,CAAC,cAAc,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAc,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAE/C,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxB,CAAC;aAAM,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,OAAO,EAAE,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,YAAY,YAAY,GAAG,CAAC,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,GAAG,GAAG,uCAAuC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAU,GAAG,EAAE,MAAM,CAAC,CAAC;QAExD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc,CAAC,EAAc;QACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CACjC,2DAA2D,EAC3D,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CACzB,CAAC;QACF,OAAO,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,4EAA4E;IAC5E,6BAA6B;IAC7B,4EAA4E;IAE5E;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAChB,MAAmF;QAEnF,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;QAElB,MAAM,SAAS,GAAqB;YAClC,MAAM,EAAE,EAAE;YACV,UAAU,EAAE,GAAG;YACf,WAAW,EAAE,MAAM,CAAC,IAAI;YACxB,QAAQ,EAAE,MAAM,CAAC,OAAO;YACxB,YAAY,EAAE,MAAM,CAAC,WAAW;YAChC,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,QAAQ,EAAE,MAAM,CAAC,OAAO;YACxB,WAAW,EAAE,MAAM,CAAC,UAAU;YAC9B,UAAU,EAAE,MAAM,CAAC,SAAS;YAC5B,WAAW,EAAE,MAAM,CAAC,UAAU;YAC9B,WAAW,EAAE,MAAM,CAAC,UAAU;YAC9B,QAAQ,EAAE,MAAM,CAAC,OAAO;YACxB,SAAS,EAAE,MAAM,CAAC,QAAQ;YAC1B,QAAQ,EAAE,MAAM,CAAC,OAAO;YACxB,YAAY,EAAE,CAAC;YACf,eAAe,EAAE,GAAG;SACrB,CAAC;QAEF,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS;YACpC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;YACxD,CAAC,CAAC,IAAI,CAAC;QAET,MAAM,MAAM,GAAoB;YAC9B,IAAI,EAAE,cAAc;YACpB,SAAS,EAAE,GAAG;SACf,CAAC;QAEF,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAClB;;0CAEoC,EACpC;YACE,IAAI,CAAC,KAAK,CAAC,OAAO;YAClB,EAAE;YACF,QAAQ;YACR,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YAC5B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;YACzB,aAAa;YACb,MAAM,CAAC,UAAU;YACjB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YACtB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE;SACxB,CACF,CAAC;QAEF,OAAO;YACL,EAAE;YACF,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,GAAG;YACd,WAAW,EAAE,CAAC;YACd,cAAc,EAAE,GAAG;SACpB,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS,CAAC,EAAU;QACxB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAC9B,iFAAiF,EACjF,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CACzB,CAAC;QAEF,IAAI,CAAC,GAAG;YAAE,OAAO,SAAS,CAAC;QAC3B,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,aAAa,CAAC,OAMnB;QACC,MAAM,OAAO,GAAa,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAc,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAE/C,uDAAuD;QACvD,IAAI,OAAO,EAAE,aAAa,KAAK,SAAS,EAAE,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACrC,CAAC;QAED,sCAAsC;QACtC,IAAI,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,GAAG,CAAC;QACpC,MAAM,GAAG,GAAG,uCAAuC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,mCAAmC,CAAC;QAC5G,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAU,GAAG,EAAE,MAAM,CAAC,CAAC;QACxD,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAErD,8DAA8D;QAC9D,IAAI,OAAO,EAAE,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACvC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACzD,CAAC;QAED,2DAA2D;QAC3D,IAAI,OAAO,EAAE,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7D,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC/B,OAAO,CAAC,YAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAC9D,CAAC;QACJ,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,cAAc,CAAC,KAAa,EAAE,IAAa;QAC/C,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,IAAI,KAAK,GAAG,CAAC;QAEhC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAC/B;;;eAGS,EACT,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,CAAC,CACpD,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvD,kEAAkE;QAClE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAC9B,6DAA6D,EAC7D,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,CAC7B,CAAC;YAEF,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAqB,CAAC;gBAC9D,MAAM,CAAC,YAAY,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACrD,MAAM,CAAC,eAAe,GAAG,GAAG,CAAC;gBAE7B,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAClB,yEAAyE,EACzE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,CACrD,CAAC;gBAEF,GAAG,CAAC,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC;gBACtC,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,4EAA4E;IAC5E,kBAAkB;IAClB,4EAA4E;IAE5E;;;;;;;;OAQG;IACH,KAAK,CAAC,QAAQ,CACZ,aAAuB,EACvB,OAA0B;QAE1B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,qBAAqB,aAAa,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,MAAM,CAAC;QAC/C,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC;QAE3C,0DAA0D;QAC1D,wFAAwF;QACxF,IAAI,QAAgB,CAAC;QACrB,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC7B,QAAQ,GAAG,4EAA4E,CAAC;QAC1F,CAAC;aAAM,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YACpC,QAAQ,GAAG,4EAA4E,CAAC;QAC1F,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,2GAA2G,CAAC;QACzH,CAAC;QAED,uCAAuC;QACvC,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,IAAI,OAAO,EAAE,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/D,MAAM,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrE,UAAU,GAAG,kBAAkB,YAAY,GAAG,CAAC;YAC/C,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;QAC5C,CAAC;QAED,kDAAkD;QAClD,IAAI,cAAsB,CAAC;QAC3B,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC7B,cAAc,GAAG,aAAa,CAAC;QACjC,CAAC;aAAM,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YACpC,cAAc,GAAG,aAAa,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,cAAc,GAAG,2EAA2E,CAAC;QAC/F,CAAC;QAED,MAAM,GAAG,GAAG;;;;;;;;;;YAUJ,cAAc;;;;eAIX,QAAQ;;;YAGX,UAAU;gBACN,cAAc;;;;;KAKzB,CAAC;QAEF,MAAM,MAAM,GAAc;YACxB,IAAI,CAAC,KAAK,CAAC,OAAO;YAClB,aAAa;YACb,EAAE,EAAG,+BAA+B;YACpC,QAAQ;YACR,SAAS;YACT,GAAG,UAAU;YACb,QAAQ;SACT,CAAC;QAEF,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAIvC,GAAG,EAAE,MAAM,CAAC,CAAC;QAEhB,uDAAuD;QACvD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA4D,CAAC;QACrF,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;QAE1C,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAChC,IAAI,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,SAAS;YACjD,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAEnC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7B,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;YACxE,CAAC;YACD,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;YACvC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACnC,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBAChB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAED,iDAAiD;QACjD,MAAM,MAAM,GAA8B,EAAE,CAAC;QAC7C,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,cAAc,GAAG,CAAC,CAAC;QAEvB,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAChF,MAAM,QAAQ,GAAsB,EAAE,CAAC;YACvC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACzC,IAAI,MAAM;oBAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpC,CAAC;YAED,MAAM,SAAS,GAAwB,EAAE,CAAC;YAC1C,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC/B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAC9B,6DAA6D,EAC7D,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAC1B,CAAC;gBACF,IAAI,GAAG;oBAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;YACpD,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;YAC5C,aAAa,IAAI,QAAQ,CAAC,MAAM,CAAC;YACjC,cAAc,IAAI,SAAS,CAAC,MAAM,CAAC;QACrC,CAAC;QAED,OAAO;YACL,IAAI;YACJ,MAAM;YACN,aAAa;YACb,cAAc;SACf,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ,CACZ,QAAkB,EAClB,QAAkB,EAClB,QAAiB;QAEjB,MAAM,KAAK,GAAG,QAAQ,IAAI,EAAE,CAAC;QAE7B,wEAAwE;QACxE,2DAA2D;QAC3D,MAAM,GAAG,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgCX,CAAC;QAEF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAC9B,GAAG,EACH,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAC1D,CAAC;QAEF,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QAEtB,MAAM,SAAS,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAE1D,MAAM,MAAM,GAAqE,EAAE,CAAC;QAEpF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YAEzB,IAAI,QAAuC,CAAC;YAC5C,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAClC,6DAA6D,EAC7D,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CACrC,CAAC;gBACF,IAAI,OAAO;oBAAE,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YACvD,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QACpC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,eAAe,CACnB,QAAkB,EAClB,KAAc;QAEd,MAAM,QAAQ,GAAG,KAAK,IAAI,CAAC,CAAC;QAE5B,MAAM,GAAG,GAAG;;;;;;;;;;;;;;;;;;KAkBX,CAAC;QAEF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAwB,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAExG,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAsB,EAAE,CAAC;QAEvC,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACzC,IAAI,MAAM;gBAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;QAED,mEAAmE;QACnE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CACnC,kDAAkD,EAClD,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CACrB,CAAC;QAEF,MAAM,SAAS,GAAG,QAAQ;aACvB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;aACvE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QAEtC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IACjC,CAAC;IAED,4EAA4E;IAC5E,kBAAkB;IAClB,4EAA4E;IAE5E;;;;;;;;;;OAUG;IACH,KAAK,CAAC,cAAc,CAAC,OAA8B;QACjD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;QACrC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;QAChC,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC;QAEjD,qCAAqC;QACrC,MAAM,OAAO,GAAa,CAAC,cAAc,EAAE,uBAAuB,CAAC,CAAC;QAEpE,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACnC,CAAC;aAAM,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1D,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnE,OAAO,CAAC,IAAI,CAAC,YAAY,YAAY,GAAG,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,GAAG,GAAG,uCAAuC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3E,MAAM,MAAM,GAAc,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1D,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAU,GAAG,EAAE,MAAM,CAAC,CAAC;QAExD,2EAA2E;QAC3E,oEAAoE;QACpE,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC/C,MAAM,OAAO,GAA2B,EAAE,CAAC;QAE3C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,2EAA2E;YAC3E,qEAAqE;YACrE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YAE9C,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/B,UAAU,GAAG,GAAG,CAAC,CAAC,yBAAyB;YAC7C,CAAC;iBAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACzC,UAAU,GAAG,GAAG,CAAC,CAAC,8BAA8B;YAClD,CAAC;YAED,IAAI,UAAU,GAAG,aAAa;gBAAE,SAAS;YAEzC,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC;YAEvC,uCAAuC;YACvC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBACtC,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO;oBAAE,SAAS;YACnD,CAAC;YAED,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;oBAC5B,IAAI,EAAE,QAAQ;oBACd,UAAU;iBACX,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;oBAC5B,IAAI,EAAE,QAAQ;oBACd,UAAU;iBACX,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,4EAA4E;QAC5E,yCAAyC;QACzC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,WAAW,GAAG,wDAClB,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;gBAC3C,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAC7C,EAAE,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAU,WAAW,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAEjF,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC1B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;gBACtC,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;gBAE9C,IAAI,UAAU,GAAG,CAAC,CAAC;gBACnB,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC/B,UAAU,GAAG,GAAG,CAAC;gBACnB,CAAC;qBAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBACzC,UAAU,GAAG,GAAG,CAAC;gBACnB,CAAC;gBAED,IAAI,UAAU,GAAG,aAAa;oBAAE,SAAS;gBAEzC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;oBACpB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;oBACtC,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO;wBAAE,SAAS;gBACnD,CAAC;gBAED,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC;gBACvC,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;oBAChE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;oBACpC,UAAU;iBACX,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,6CAA6C;QAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;QACpD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,4EAA4E;IAC5E,uBAAuB;IACvB,4EAA4E;IAE5E;;;;;;;OAOG;IACH,KAAK,CAAC,eAAe,CACnB,KAAa,EACb,QAAqE;QAErE,MAAM,IAAI,KAAK,CACb,oFAAoF,CACrF,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E;;;;;;;;OAQG;IACH,KAAK,CAAC,aAAa,CACjB,SAAqB,EACrB,SAAmB;QAEnB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,6BAA6B,SAAS,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QAEnC,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACzC,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;gBAChC,4DAA4D;gBAC5D,MAAM,GAAG,CAAC,GAAG,CACX,+EAA+E,EAC/E,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAC9B,CAAC;gBAEF,4DAA4D;gBAC5D,MAAM,GAAG,CAAC,GAAG,CACX,+EAA+E,EAC/E,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAC9B,CAAC;gBAEF,sCAAsC;gBACtC,MAAM,GAAG,CAAC,GAAG,CACX,2DAA2D,EAC3D,CAAC,OAAO,EAAE,OAAO,CAAC,CACnB,CAAC;YACJ,CAAC;YAED,2EAA2E;YAC3E,MAAM,GAAG,CAAC,GAAG,CACX,0EAA0E,EAC1E,CAAC,OAAO,CAAC,CACV,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,2EAA2E;QAC3E,OAAO,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAE,CAAC;IAC5C,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,aAAa,CAAC,WAAoB;QACtC,MAAM,MAAM,GAAG,WAAW,IAAI,IAAI,CAAC;QAEnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CACjC;;8CAEwC,EACxC,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAC7B,CAAC;QAEF,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ;QACZ,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QAEnC,6BAA6B;QAC7B,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CACzC,qFAAqF,EACrF,CAAC,OAAO,CAAC,CACV,CAAC;QACF,MAAM,WAAW,GAAG,cAAc,EAAE,GAAG,IAAI,CAAC,CAAC;QAE7C,mBAAmB;QACnB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAC3C,gEAAgE,EAChE,CAAC,OAAO,CAAC,CACV,CAAC;QACF,MAAM,aAAa,GAAG,gBAAgB,EAAE,GAAG,IAAI,CAAC,CAAC;QAEjD,kBAAkB;QAClB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CACzC,oFAAoF,EACpF,CAAC,OAAO,CAAC,CACV,CAAC;QACF,MAAM,WAAW,GAAG,cAAc,EAAE,GAAG,IAAI,CAAC,CAAC;QAE7C,6CAA6C;QAC7C,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CACzC,yGAAyG,EACzG,CAAC,OAAO,CAAC,CACV,CAAC;QACF,MAAM,cAAc,GAAG,EAAgC,CAAC;QACxD,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;YACjC,cAAc,CAAC,GAAG,CAAC,IAAkB,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;QACnD,CAAC;QAED,4BAA4B;QAC5B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CACtC,oFAAoF,EACpF,CAAC,OAAO,CAAC,CACV,CAAC;QACF,MAAM,eAAe,GAAG,EAAkC,CAAC;QAC3D,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,eAAe,CAAC,GAAG,CAAC,IAAoB,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;QACtD,CAAC;QAED,uCAAuC;QACvC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CACrC,4EAA4E,EAC5E,CAAC,OAAO,CAAC,CACV,CAAC;QACF,MAAM,OAAO,GAAG,UAAU,EAAE,QAAQ,IAAI,CAAC,CAAC;QAE1C,6BAA6B;QAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CACjC,2FAA2F,EAC3F,CAAC,OAAO,CAAC,CACV,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CACjC,4FAA4F,EAC5F,CAAC,OAAO,CAAC,CACV,CAAC;QAEF,OAAO;YACL,aAAa,EAAE,WAAW;YAC1B,cAAc,EAAE,aAAa;YAC7B,aAAa,EAAE,WAAW;YAC1B,cAAc;YACd,eAAe;YACf,aAAa,EAAE,OAAO;YACtB,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;YACpE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;SACrE,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK;QACT,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QACnC,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACzC,2EAA2E;YAC3E,MAAM,GAAG,CAAC,GAAG,CAAC,gDAAgD,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3E,MAAM,GAAG,CAAC,GAAG,CAAC,gDAAgD,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,4CAA4C;IAC5C,4EAA4E;IAE5E;;;OAGG;IACK,YAAY,CAAC,GAAY;QAC/B,IAAI,QAAqC,CAAC;QAC1C,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QAC5B,CAAC;QAED,MAAM,MAAM,GAAoB,CAAC,GAAG,EAAE;YACpC,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAoB,CAAC;YACnD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,EAAE,IAAI,EAAE,QAAiB,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YACxF,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,GAAG,CAAC,IAAkB;YAC5B,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,UAAU,EAAE,QAAQ,CAAC,MAAM,IAAI,EAAE;YACjC,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;YAC1F,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,MAAM;YACN,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE;YACjD,SAAS,EAAE,QAAQ,CAAC,UAAU,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE;YACxE,OAAO,EAAE,QAAQ,CAAC,QAAQ;YAC1B,IAAI,EAAE,QAAQ,CAAC,KAAK;YACpB,QAAQ,EAAE,QAAQ,CAAC,SAAS;SAC7B,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,cAAc,CAAC,GAAY;QACjC,IAAI,QAAqC,CAAC;QAC1C,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ,GAAG,EAAE,CAAC;QAChB,CAAC;QAED,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,QAAQ,EAAE,GAAG,CAAC,SAAS;YACvB,QAAQ,EAAE,GAAG,CAAC,SAAS;YACvB,IAAI,EAAE,GAAG,CAAC,IAAoB;YAC9B,KAAK,EAAE,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI;YAClC,UAAU,EAAE,QAAQ,CAAC,WAAW;YAChC,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,aAAa,EAAE,GAAG,CAAC,aAAa,KAAK,CAAC;YACtC,UAAU,EAAE,QAAQ,CAAC,WAAW,IAAI,CAAC;YACrC,MAAM,EAAE,QAAQ,CAAC,OAAO,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,EAAE;YACjG,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE;YACjD,SAAS,EAAE,QAAQ,CAAC,UAAU;YAC9B,OAAO,EAAE,QAAQ,CAAC,QAAQ;SAC3B,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,YAAY,CAAC,GAAY;QAC/B,IAAI,MAAiC,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,GAAG,EAAE,CAAC;QACd,CAAC;QAED,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,CAAC,MAAM,CAAC,WAAW,IAAI,aAAa,CAA2B;YACrE,OAAO,EAAE,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC,KAAK;YACrC,WAAW,EAAE,MAAM,CAAC,YAAY;YAChC,YAAY,EAAE,MAAM,CAAC,aAAa,IAAI,EAAE;YACxC,OAAO,EAAE,MAAM,CAAC,QAAQ;YACxB,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,SAAS,EAAE,MAAM,CAAC,UAAU,IAAI,EAAE;YAClC,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;YAC1F,UAAU,EAAE,MAAM,CAAC,WAAW,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE;YACxE,UAAU,EAAE,MAAM,CAAC,WAAW;YAC9B,OAAO,EAAE,MAAM,CAAC,QAAQ;YACxB,QAAQ,EAAE,MAAM,CAAC,SAAS;YAC1B,OAAO,EAAE,MAAM,CAAC,QAAQ;YACxB,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE;YACjD,WAAW,EAAE,MAAM,CAAC,YAAY,IAAI,CAAC;YACrC,cAAc,EAAE,MAAM,CAAC,eAAe,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE;SACjF,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Stores memory graph nodes in the `knowledge_nodes` table (type = 'memory_graph')
|
|
5
5
|
* and memory association edges in the `knowledge_edges` table — both managed by
|
|
6
|
-
*
|
|
6
|
+
* Brain. All node metadata is serialised into the `properties` JSON column.
|
|
7
7
|
*
|
|
8
8
|
* ## Algorithms
|
|
9
9
|
*
|
|
@@ -28,9 +28,9 @@
|
|
|
28
28
|
* The `centroidId` is chosen as the member with the highest total edge weight
|
|
29
29
|
* (i.e. the most central node in the component's subgraph).
|
|
30
30
|
*
|
|
31
|
-
* @module memory/store/
|
|
31
|
+
* @module memory/store/SqlMemoryGraph
|
|
32
32
|
*/
|
|
33
|
-
import type {
|
|
33
|
+
import type { Brain } from './Brain.js';
|
|
34
34
|
import type { IMemoryGraph, MemoryEdge, MemoryEdgeType, MemoryGraphNodeMeta, SpreadingActivationConfig, ActivatedNode, MemoryCluster } from '../graph/IMemoryGraph.js';
|
|
35
35
|
/**
|
|
36
36
|
* SQLite-backed implementation of {@link IMemoryGraph}.
|
|
@@ -40,8 +40,8 @@ import type { IMemoryGraph, MemoryEdge, MemoryEdgeType, MemoryGraphNodeMeta, Spr
|
|
|
40
40
|
*
|
|
41
41
|
* **Usage:**
|
|
42
42
|
* ```ts
|
|
43
|
-
* const brain = await
|
|
44
|
-
* const graph = new
|
|
43
|
+
* const brain = await Brain.openSqlite('/path/to/brain.sqlite');
|
|
44
|
+
* const graph = new SqlMemoryGraph(brain);
|
|
45
45
|
* await graph.initialize();
|
|
46
46
|
*
|
|
47
47
|
* await graph.addNode('mem-1', { type: 'episodic', scope: 'session', scopeId: 's1', strength: 1.0, createdAt: Date.now() });
|
|
@@ -50,7 +50,7 @@ import type { IMemoryGraph, MemoryEdge, MemoryEdgeType, MemoryGraphNodeMeta, Spr
|
|
|
50
50
|
* const activated = await graph.spreadingActivation(['mem-1']);
|
|
51
51
|
* ```
|
|
52
52
|
*/
|
|
53
|
-
export declare class
|
|
53
|
+
export declare class SqlMemoryGraph implements IMemoryGraph {
|
|
54
54
|
private readonly brain;
|
|
55
55
|
/**
|
|
56
56
|
* In-memory node index: maps memoryId → MemoryGraphNodeMeta.
|
|
@@ -70,11 +70,11 @@ export declare class SqliteMemoryGraph implements IMemoryGraph {
|
|
|
70
70
|
*/
|
|
71
71
|
private readonly _edges;
|
|
72
72
|
/**
|
|
73
|
-
* @param brain - The shared
|
|
73
|
+
* @param brain - The shared Brain connection for this agent.
|
|
74
74
|
* The `knowledge_nodes` and `knowledge_edges` tables must already exist
|
|
75
|
-
* (
|
|
75
|
+
* (Brain creates them in its constructor).
|
|
76
76
|
*/
|
|
77
|
-
constructor(brain:
|
|
77
|
+
constructor(brain: Brain);
|
|
78
78
|
/**
|
|
79
79
|
* Hydrate the in-memory node and edge caches from the SQLite database.
|
|
80
80
|
*
|
|
@@ -85,7 +85,7 @@ export declare class SqliteMemoryGraph implements IMemoryGraph {
|
|
|
85
85
|
/**
|
|
86
86
|
* Shut down the memory graph.
|
|
87
87
|
*
|
|
88
|
-
* Currently a no-op because
|
|
88
|
+
* Currently a no-op because Brain owns the DB connection lifetime.
|
|
89
89
|
* Provided for interface compliance and forward compatibility.
|
|
90
90
|
*/
|
|
91
91
|
shutdown(): Promise<void>;
|
|
@@ -247,4 +247,4 @@ export declare class SqliteMemoryGraph implements IMemoryGraph {
|
|
|
247
247
|
*/
|
|
248
248
|
private _edgeId;
|
|
249
249
|
}
|
|
250
|
-
//# sourceMappingURL=
|
|
250
|
+
//# sourceMappingURL=SqlMemoryGraph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SqlMemoryGraph.d.ts","sourceRoot":"","sources":["../../../../src/memory/retrieval/store/SqlMemoryGraph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,yBAAyB,EACzB,aAAa,EACb,aAAa,EACd,MAAM,0BAA0B,CAAC;AAoDlC;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,cAAe,YAAW,YAAY;IA6BrC,OAAO,CAAC,QAAQ,CAAC,KAAK;IA5BlC;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0C;IAEjE;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;IAMxD;;;;OAIG;gBAC0B,KAAK,EAAE,KAAK;IAMzC;;;;;OAKG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA8CjC;;;;;OAKG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ/B;;;;;;;;;OASG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B7E;;;;;;;OAOG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BjD;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAQlC;;;;;;;;;OASG;IACG,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB9C;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,UAAU,EAAE;IAY/D;;;;;OAKG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAenE;;;;;;;;;;;;;;;;;;OAkBG;IACG,mBAAmB,CACvB,OAAO,EAAE,MAAM,EAAE,EACjB,MAAM,CAAC,EAAE,yBAAyB,GACjC,OAAO,CAAC,aAAa,EAAE,CAAC;IAsH3B;;;;;;;;;;;;;;;OAeG;IACG,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,YAAY,SAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0ChF;;;;;;;;;OASG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE;IAQ5C;;;;;;;;;;;;;;;;OAgBG;IACG,cAAc,CAAC,OAAO,SAAI,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAoH3D;;;OAGG;IACH,SAAS,IAAI,MAAM;IAInB;;;OAGG;IACH,SAAS,IAAI,MAAM;IAInB;;;;;OAKG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B5B;;;;;;;;;;;OAWG;YACW,OAAO;CAItB"}
|