vesper-memory 0.4.0 → 0.5.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.
Files changed (63) hide show
  1. package/CHANGELOG.md +57 -3
  2. package/LICENSE +59 -0
  3. package/README.md +420 -23
  4. package/config/migrations/001_add_skill_summary.sql +75 -0
  5. package/config/migrations/001_rollback_skill_summary.sql +60 -0
  6. package/config/sqlite-schema.sql +68 -4
  7. package/dist/benchmark/types.d.ts +4 -4
  8. package/dist/cli.js +0 -0
  9. package/dist/consolidation/pipeline.d.ts +6 -1
  10. package/dist/consolidation/pipeline.d.ts.map +1 -1
  11. package/dist/consolidation/pipeline.js +53 -35
  12. package/dist/consolidation/pipeline.js.map +1 -1
  13. package/dist/memory-layers/semantic-memory.d.ts +9 -19
  14. package/dist/memory-layers/semantic-memory.d.ts.map +1 -1
  15. package/dist/memory-layers/semantic-memory.js +31 -54
  16. package/dist/memory-layers/semantic-memory.js.map +1 -1
  17. package/dist/memory-layers/skill-lazy-loading.d.ts +160 -0
  18. package/dist/memory-layers/skill-lazy-loading.d.ts.map +1 -0
  19. package/dist/memory-layers/skill-lazy-loading.js +247 -0
  20. package/dist/memory-layers/skill-lazy-loading.js.map +1 -0
  21. package/dist/memory-layers/skill-library.d.ts +133 -4
  22. package/dist/memory-layers/skill-library.d.ts.map +1 -1
  23. package/dist/memory-layers/skill-library.js +427 -8
  24. package/dist/memory-layers/skill-library.js.map +1 -1
  25. package/dist/memory-layers/working-memory.d.ts +35 -14
  26. package/dist/memory-layers/working-memory.d.ts.map +1 -1
  27. package/dist/memory-layers/working-memory.js +114 -36
  28. package/dist/memory-layers/working-memory.js.map +1 -1
  29. package/dist/retrieval/hybrid-search.d.ts +2 -2
  30. package/dist/retrieval/hybrid-search.d.ts.map +1 -1
  31. package/dist/retrieval/hybrid-search.js +4 -3
  32. package/dist/retrieval/hybrid-search.js.map +1 -1
  33. package/dist/router/smart-router.d.ts +25 -0
  34. package/dist/router/smart-router.d.ts.map +1 -1
  35. package/dist/router/smart-router.js +90 -10
  36. package/dist/router/smart-router.js.map +1 -1
  37. package/dist/scheduler/consolidation-scheduler.d.ts +129 -0
  38. package/dist/scheduler/consolidation-scheduler.d.ts.map +1 -0
  39. package/dist/scheduler/consolidation-scheduler.js +179 -0
  40. package/dist/scheduler/consolidation-scheduler.js.map +1 -0
  41. package/dist/scheduler/index.d.ts +7 -0
  42. package/dist/scheduler/index.d.ts.map +1 -0
  43. package/dist/scheduler/index.js +7 -0
  44. package/dist/scheduler/index.js.map +1 -0
  45. package/dist/server-wrapper.js +0 -0
  46. package/dist/server.js +879 -28
  47. package/dist/server.js.map +1 -1
  48. package/dist/synthesis/conflict-detector.d.ts +4 -6
  49. package/dist/synthesis/conflict-detector.d.ts.map +1 -1
  50. package/dist/synthesis/conflict-detector.js +19 -21
  51. package/dist/synthesis/conflict-detector.js.map +1 -1
  52. package/dist/utils/validation.d.ts +123 -1
  53. package/dist/utils/validation.d.ts.map +1 -1
  54. package/dist/utils/validation.js +146 -7
  55. package/dist/utils/validation.js.map +1 -1
  56. package/docker-compose.yml +6 -6
  57. package/embedding-service/README.md +8 -0
  58. package/package.json +5 -2
  59. package/scripts/FRESH_INSTALL.md +1 -1
  60. package/scripts/ensure-infrastructure.sh +86 -26
  61. package/scripts/health-check.sh +2 -1
  62. package/scripts/stop-infrastructure.sh +23 -0
  63. package/scripts/test-mcp-server.sh +2 -1
@@ -2,17 +2,18 @@
2
2
  * Semantic Memory Layer - v3.0 Implementation
3
3
  *
4
4
  * SQLite knowledge graph with HippoRAG Personalized PageRank.
5
+ * v0.5.0: Added namespace parameter for multi-agent isolation.
5
6
  */
6
7
  export class SemanticMemoryLayer {
7
8
  db;
8
9
  constructor(db) {
9
10
  this.db = db;
10
11
  }
11
- upsertEntity(entity) {
12
+ upsertEntity(entity, namespace = 'default') {
12
13
  if (!entity.name || entity.name.trim() === '') {
13
14
  throw new Error('Entity name cannot be empty');
14
15
  }
15
- const existing = this.db.prepare('SELECT * FROM entities WHERE name = ? AND type = ?').get(entity.name, entity.type);
16
+ const existing = this.db.prepare('SELECT * FROM entities WHERE name = ? AND type = ? AND namespace = ?').get(entity.name, entity.type, namespace);
16
17
  if (existing) {
17
18
  this.db.prepare('UPDATE entities SET last_accessed = ?, access_count = access_count + 1 WHERE id = ?').run(new Date().toISOString(), existing.id);
18
19
  return existing;
@@ -20,9 +21,9 @@ export class SemanticMemoryLayer {
20
21
  const id = 'entity_' + Date.now() + '_' + Math.random().toString(36).substr(2, 9);
21
22
  const now = new Date().toISOString();
22
23
  this.db.prepare(`
23
- INSERT INTO entities (id, name, type, description, confidence, created_at, last_accessed, access_count)
24
- VALUES (?, ?, ?, ?, ?, ?, ?, ?)
25
- `).run(id, entity.name, entity.type, entity.description || null, entity.confidence || 1.0, now, now, 1);
24
+ INSERT INTO entities (id, name, type, description, confidence, created_at, last_accessed, access_count, namespace)
25
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
26
+ `).run(id, entity.name, entity.type, entity.description || null, entity.confidence || 1.0, now, now, 1, namespace);
26
27
  return {
27
28
  id,
28
29
  name: entity.name,
@@ -31,15 +32,15 @@ export class SemanticMemoryLayer {
31
32
  confidence: entity.confidence || 1.0
32
33
  };
33
34
  }
34
- getEntity(name) {
35
- const result = this.db.prepare('SELECT * FROM entities WHERE name = ? ORDER BY confidence DESC LIMIT 1').get(name);
35
+ getEntity(name, namespace = 'default') {
36
+ const result = this.db.prepare('SELECT * FROM entities WHERE name = ? AND namespace = ? ORDER BY confidence DESC LIMIT 1').get(name, namespace);
36
37
  if (result) {
37
38
  this.db.prepare('UPDATE entities SET last_accessed = ?, access_count = access_count + 1 WHERE id = ?').run(new Date().toISOString(), result.id);
38
39
  }
39
40
  return result || null;
40
41
  }
41
- upsertRelationship(rel) {
42
- const existing = this.db.prepare('SELECT * FROM relationships WHERE source_id = ? AND target_id = ? AND relation_type = ?').get(rel.sourceId, rel.targetId, rel.relationType);
42
+ upsertRelationship(rel, namespace = 'default') {
43
+ const existing = this.db.prepare('SELECT * FROM relationships WHERE source_id = ? AND target_id = ? AND relation_type = ? AND namespace = ?').get(rel.sourceId, rel.targetId, rel.relationType, namespace);
43
44
  const now = new Date().toISOString();
44
45
  if (existing) {
45
46
  const newStrength = Math.min(1.0, existing.strength + 0.2);
@@ -48,11 +49,11 @@ export class SemanticMemoryLayer {
48
49
  }
49
50
  const id = 'rel_' + Date.now() + '_' + Math.random().toString(36).substr(2, 9);
50
51
  this.db.prepare(`
51
- INSERT INTO relationships (id, source_id, target_id, relation_type, strength, evidence, created_at, last_reinforced)
52
- VALUES (?, ?, ?, ?, ?, ?, ?, ?)
53
- `).run(id, rel.sourceId, rel.targetId, rel.relationType, rel.strength || 0.8, '[]', now, now);
52
+ INSERT INTO relationships (id, source_id, target_id, relation_type, strength, evidence, created_at, last_reinforced, namespace)
53
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
54
+ `).run(id, rel.sourceId, rel.targetId, rel.relationType, rel.strength || 0.8, '[]', now, now, namespace);
54
55
  }
55
- personalizedPageRank(entityId, depth = 3) {
56
+ personalizedPageRank(entityId, depth = 3, namespace = 'default') {
56
57
  const visited = new Set();
57
58
  const results = [];
58
59
  let currentLayer = [{ entityId, score: 1.0 }];
@@ -62,10 +63,10 @@ export class SemanticMemoryLayer {
62
63
  if (visited.has(node.entityId))
63
64
  continue;
64
65
  visited.add(node.entityId);
65
- const entity = this.db.prepare('SELECT * FROM entities WHERE id = ?').get(node.entityId);
66
+ const entity = this.db.prepare('SELECT * FROM entities WHERE id = ? AND namespace = ?').get(node.entityId, namespace);
66
67
  if (entity)
67
68
  results.push({ ...entity, relevanceScore: node.score });
68
- const rels = this.db.prepare('SELECT * FROM relationships WHERE source_id = ? OR target_id = ?').all(node.entityId, node.entityId);
69
+ const rels = this.db.prepare('SELECT * FROM relationships WHERE (source_id = ? OR target_id = ?) AND namespace = ?').all(node.entityId, node.entityId, namespace);
69
70
  for (const rel of rels) {
70
71
  const nextId = rel.source_id === node.entityId ? rel.target_id : rel.source_id;
71
72
  const score = node.score * rel.strength * 0.7;
@@ -78,26 +79,13 @@ export class SemanticMemoryLayer {
78
79
  }
79
80
  return results.sort((a, b) => b.relevanceScore - a.relevanceScore);
80
81
  }
81
- /**
82
- * Enhanced Personalized PageRank with fact retrieval for multi-hop reasoning.
83
- *
84
- * Returns both entities AND their associated facts along the traversal path,
85
- * enabling multi-hop query answering (e.g., "What protocol does Vesper follow?"
86
- * can chain Vesper -> MCP -> "Model Context Protocol").
87
- *
88
- * @param entityId - Starting entity ID for traversal
89
- * @param depth - Maximum hops to traverse (default: 3 for multi-hop queries)
90
- * @returns PageRankWithFactsResult containing entities, facts, paths, and chains
91
- */
92
- personalizedPageRankWithFacts(entityId, depth = 3) {
82
+ personalizedPageRankWithFacts(entityId, depth = 3, namespace = 'default') {
93
83
  const visited = new Set();
94
84
  const entities = [];
95
85
  const allFacts = [];
96
86
  const paths = [];
97
87
  const chains = [];
98
- // Track paths for explainability: entityId -> { path: string[], hops: number }
99
88
  const pathTracker = new Map();
100
- // BFS with score propagation
101
89
  let currentLayer = [{
102
90
  entityId,
103
91
  score: 1.0,
@@ -105,8 +93,7 @@ export class SemanticMemoryLayer {
105
93
  depth: 0,
106
94
  lastRelationType: 'start'
107
95
  }];
108
- // Check if starting entity exists
109
- const startEntity = this.db.prepare('SELECT * FROM entities WHERE id = ?').get(entityId);
96
+ const startEntity = this.db.prepare('SELECT * FROM entities WHERE id = ? AND namespace = ?').get(entityId, namespace);
110
97
  if (!startEntity) {
111
98
  return { entities: [], facts: [], paths: [], chains: [] };
112
99
  }
@@ -116,19 +103,16 @@ export class SemanticMemoryLayer {
116
103
  if (visited.has(node.entityId))
117
104
  continue;
118
105
  visited.add(node.entityId);
119
- // Get entity
120
- const entity = this.db.prepare('SELECT * FROM entities WHERE id = ?').get(node.entityId);
106
+ const entity = this.db.prepare('SELECT * FROM entities WHERE id = ? AND namespace = ?').get(node.entityId, namespace);
121
107
  if (entity) {
122
108
  entities.push({ ...entity, relevanceScore: node.score });
123
- // Get facts for this entity (valid facts only)
124
109
  const entityFacts = this.db.prepare(`
125
110
  SELECT * FROM facts
126
- WHERE entity_id = ?
111
+ WHERE entity_id = ? AND namespace = ?
127
112
  AND (valid_until IS NULL OR valid_until > datetime('now'))
128
113
  ORDER BY confidence DESC
129
- `).all(node.entityId);
114
+ `).all(node.entityId, namespace);
130
115
  allFacts.push(...entityFacts);
131
- // Track path if not the starting node
132
116
  if (node.depth > 0) {
133
117
  pathTracker.set(node.entityId, {
134
118
  path: node.path,
@@ -142,12 +126,11 @@ export class SemanticMemoryLayer {
142
126
  path: node.path,
143
127
  relationType: node.lastRelationType
144
128
  });
145
- // Build chain info for inference
146
129
  if (node.path.length > 2) {
147
130
  const intermediaryIds = node.path.slice(1, -1);
148
131
  const intermediaryNames = [];
149
132
  for (const interId of intermediaryIds) {
150
- const interEntity = this.db.prepare('SELECT name FROM entities WHERE id = ?').get(interId);
133
+ const interEntity = this.db.prepare('SELECT name FROM entities WHERE id = ? AND namespace = ?').get(interId, namespace);
151
134
  if (interEntity) {
152
135
  intermediaryNames.push(interEntity.name);
153
136
  }
@@ -161,13 +144,11 @@ export class SemanticMemoryLayer {
161
144
  }
162
145
  }
163
146
  }
164
- // Continue only if we have more depth to traverse
165
147
  if (d < depth) {
166
- const rels = this.db.prepare('SELECT * FROM relationships WHERE source_id = ? OR target_id = ?').all(node.entityId, node.entityId);
148
+ const rels = this.db.prepare('SELECT * FROM relationships WHERE (source_id = ? OR target_id = ?) AND namespace = ?').all(node.entityId, node.entityId, namespace);
167
149
  for (const rel of rels) {
168
150
  const nextId = rel.source_id === node.entityId ? rel.target_id : rel.source_id;
169
151
  const score = node.score * rel.strength * 0.7;
170
- // Lower threshold for multi-hop to ensure we reach deeper nodes
171
152
  if (!visited.has(nextId) && score > 0.05) {
172
153
  nextLayer.push({
173
154
  entityId: nextId,
@@ -182,11 +163,8 @@ export class SemanticMemoryLayer {
182
163
  }
183
164
  currentLayer = nextLayer;
184
165
  }
185
- // Sort entities by relevance score
186
166
  entities.sort((a, b) => b.relevanceScore - a.relevanceScore);
187
- // Sort facts by confidence
188
167
  allFacts.sort((a, b) => b.confidence - a.confidence);
189
- // Deduplicate facts (same fact might be reached via different paths)
190
168
  const uniqueFacts = allFacts.filter((fact, index, self) => index === self.findIndex(f => f.id === fact.id));
191
169
  return {
192
170
  entities,
@@ -195,27 +173,26 @@ export class SemanticMemoryLayer {
195
173
  chains: chains.length > 0 ? chains : undefined
196
174
  };
197
175
  }
198
- applyTemporalDecay() {
199
- const relationships = this.db.prepare('SELECT * FROM relationships').all();
176
+ applyTemporalDecay(namespace = 'default') {
177
+ const relationships = this.db.prepare('SELECT * FROM relationships WHERE namespace = ?').all(namespace);
200
178
  let updated = 0;
201
179
  for (const rel of relationships) {
202
180
  const daysSince = (Date.now() - new Date(rel.last_reinforced).getTime()) / (1000 * 60 * 60 * 24);
203
181
  const newStrength = rel.strength * Math.exp(-daysSince / 30);
204
- // Just update strength, pruning happens later in consolidation
205
182
  this.db.prepare('UPDATE relationships SET strength = ? WHERE id = ?').run(newStrength, rel.id);
206
183
  updated++;
207
184
  }
208
185
  return updated;
209
186
  }
210
- getPreferences(domain) {
187
+ getPreferences(domain, namespace = 'default') {
211
188
  if (domain) {
212
- return this.db.prepare('SELECT * FROM entities WHERE type = ? AND (name LIKE ? OR description LIKE ?)').all('preference', `%${domain}%`, `%${domain}%`);
189
+ return this.db.prepare('SELECT * FROM entities WHERE type = ? AND namespace = ? AND (name LIKE ? OR description LIKE ?)').all('preference', namespace, `%${domain}%`, `%${domain}%`);
213
190
  }
214
- return this.db.prepare('SELECT * FROM entities WHERE type = ?').all('preference');
191
+ return this.db.prepare('SELECT * FROM entities WHERE type = ? AND namespace = ?').all('preference', namespace);
215
192
  }
216
- getByTimeRange(start, end) {
217
- let query = 'SELECT * FROM entities WHERE 1=1';
218
- const params = [];
193
+ getByTimeRange(start, end, namespace = 'default') {
194
+ let query = 'SELECT * FROM entities WHERE namespace = ?';
195
+ const params = [namespace];
219
196
  if (start) {
220
197
  query += ' AND created_at >= ?';
221
198
  params.push(start.toISOString());
@@ -1 +1 @@
1
- {"version":3,"file":"semantic-memory.js","sourceRoot":"","sources":["../../src/memory-layers/semantic-memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"semantic-memory.js","sourceRoot":"","sources":["../../src/memory-layers/semantic-memory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,160 @@
1
+ /**
2
+ * Lazy Loading for Skill Library
3
+ *
4
+ * Token-efficient skill loading system that reduces skill-related token usage by 80-90%.
5
+ *
6
+ * Strategy:
7
+ * 1. Inject lightweight skill summaries (~50 tokens each) in MCP context
8
+ * 2. Load full implementations only when explicitly invoked
9
+ * 3. Cache loaded skills in working memory (Redis) for session
10
+ *
11
+ * Performance targets:
12
+ * - Summary retrieval: <10ms
13
+ * - Full load: <20ms
14
+ * - Cache hit: <5ms
15
+ * - Token reduction: 80-90%
16
+ */
17
+ import Database from 'better-sqlite3';
18
+ /**
19
+ * Lightweight skill summary for context injection
20
+ *
21
+ * Contains minimal information needed to identify and trigger a skill.
22
+ * Approximately 50 tokens per summary.
23
+ */
24
+ export interface SkillSummary {
25
+ /** Unique identifier for the skill */
26
+ id: string;
27
+ /** Short, descriptive name (e.g., "Data Analysis", "Code Review") */
28
+ name: string;
29
+ /** One-line description of what the skill does (~20 words max) */
30
+ summary: string;
31
+ /** Category for grouping (e.g., "analysis", "writing", "coding") */
32
+ category: string;
33
+ /** Trigger keywords that activate this skill (max 5) */
34
+ triggers: string[];
35
+ /** Quality score: 0-1, based on success rate and satisfaction */
36
+ quality_score: number;
37
+ /** When this skill was last successfully used */
38
+ last_used?: Date;
39
+ }
40
+ /**
41
+ * Full skill implementation with complete details
42
+ *
43
+ * Loaded on-demand when a skill is explicitly invoked.
44
+ * Contains all information needed to execute the skill.
45
+ */
46
+ export interface FullSkill extends SkillSummary {
47
+ /** Full description with context and usage examples */
48
+ description: string;
49
+ /** Executable code or reference to implementation */
50
+ code?: string;
51
+ /** Type of code: 'inline' TypeScript or 'reference' to function */
52
+ code_type?: 'inline' | 'reference';
53
+ /** Prerequisites or required context */
54
+ prerequisites?: string[];
55
+ /** Success tracking */
56
+ success_count: number;
57
+ failure_count: number;
58
+ avg_user_satisfaction: number;
59
+ /** Dependency tracking for composition */
60
+ uses_skills?: string[];
61
+ used_by_skills?: string[];
62
+ /** Metadata */
63
+ created_from?: string;
64
+ created_at: Date;
65
+ last_modified: Date;
66
+ version: number;
67
+ notes?: string;
68
+ }
69
+ /**
70
+ * Cache entry for a loaded skill in working memory
71
+ */
72
+ export interface CachedSkill {
73
+ skill: FullSkill;
74
+ loaded_at: Date;
75
+ access_count: number;
76
+ ttl: number;
77
+ }
78
+ /**
79
+ * Skill invocation detection result
80
+ *
81
+ * Determines if a query is attempting to invoke a specific skill.
82
+ */
83
+ export interface InvocationDetection {
84
+ /** Whether a skill invocation was detected */
85
+ is_invocation: boolean;
86
+ /** The skill ID being invoked (if detected) */
87
+ skill_id?: string;
88
+ /** Confidence score: 0-1 */
89
+ confidence: number;
90
+ /** Pattern that matched (for debugging) */
91
+ matched_pattern?: string;
92
+ }
93
+ /**
94
+ * Lazy Loading Skill Library
95
+ *
96
+ * Extends the base SkillLibrary with lazy loading capabilities.
97
+ */
98
+ export declare class LazyLoadingSkillLibrary {
99
+ private db;
100
+ private cacheKeyPrefix;
101
+ constructor(db: Database.Database);
102
+ /**
103
+ * Get skill summaries for context injection
104
+ *
105
+ * Returns lightweight summaries of all non-archived skills,
106
+ * sorted by quality score (satisfaction × success rate).
107
+ *
108
+ * @param limit - Maximum number of summaries to return (default: 20)
109
+ * @param category - Optional category filter
110
+ * @returns Array of SkillSummary objects
111
+ */
112
+ getSummaries(limit?: number, category?: string, namespace?: string): SkillSummary[];
113
+ /**
114
+ * Load full skill implementation
115
+ *
116
+ * Retrieves complete skill details for execution.
117
+ * Results should be cached in working memory.
118
+ *
119
+ * @param skillId - The skill ID to load
120
+ * @returns FullSkill object or null if not found
121
+ */
122
+ loadFull(skillId: string): FullSkill | null;
123
+ /**
124
+ * Detect if a query is attempting to invoke a specific skill
125
+ *
126
+ * Uses pattern matching to identify skill invocations:
127
+ * - Explicit: "use skill X", "invoke X", "run X"
128
+ * - Implicit: "analyze this like before", "same as last time"
129
+ * - By ID: References a skill ID directly
130
+ *
131
+ * @param query - The user query
132
+ * @param summaries - Available skill summaries for matching
133
+ * @returns InvocationDetection result
134
+ */
135
+ detectInvocation(query: string, summaries: SkillSummary[]): InvocationDetection;
136
+ /**
137
+ * Calculate quality score for a skill
138
+ *
139
+ * Formula: avg_satisfaction × success_rate
140
+ * Where success_rate = success_count / (success_count + failure_count)
141
+ *
142
+ * @param avgSatisfaction - Average user satisfaction (0-1)
143
+ * @param successCount - Number of successful executions
144
+ * @param failureCount - Number of failed executions
145
+ * @returns Quality score (0-1)
146
+ */
147
+ private calculateQualityScore;
148
+ /**
149
+ * Generate a one-line summary from name and description
150
+ *
151
+ * Used when summary field is not populated.
152
+ * Truncates description to ~20 words.
153
+ *
154
+ * @param name - Skill name
155
+ * @param description - Full description
156
+ * @returns One-line summary
157
+ */
158
+ private generateSummary;
159
+ }
160
+ //# sourceMappingURL=skill-lazy-loading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-lazy-loading.d.ts","sourceRoot":"","sources":["../../src/memory-layers/skill-lazy-loading.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,sCAAsC;IACtC,EAAE,EAAE,MAAM,CAAC;IAEX,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IAEb,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;IAEhB,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAC;IAEjB,wDAAwD;IACxD,QAAQ,EAAE,MAAM,EAAE,CAAC;IAEnB,iEAAiE;IACjE,aAAa,EAAE,MAAM,CAAC;IAEtB,iDAAiD;IACjD,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED;;;;;GAKG;AACH,MAAM,WAAW,SAAU,SAAQ,YAAY;IAC7C,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IAEpB,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,mEAAmE;IACnE,SAAS,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IAEnC,wCAAwC;IACxC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAEzB,uBAAuB;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAE9B,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,eAAe;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,IAAI,CAAC;IACjB,aAAa,EAAE,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,8CAA8C;IAC9C,aAAa,EAAE,OAAO,CAAC;IAEvB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IAEnB,2CAA2C;IAC3C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,cAAc,CAA0B;gBAEpC,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAIjC;;;;;;;;;OASG;IACH,YAAY,CAAC,KAAK,GAAE,MAAW,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,GAAE,MAAkB,GAAG,YAAY,EAAE;IAoDlG;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAwC3C;;;;;;;;;;;OAWG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,mBAAmB;IAoF/E;;;;;;;;;;OAUG;IACH,OAAO,CAAC,qBAAqB;IAgB7B;;;;;;;;;OASG;IACH,OAAO,CAAC,eAAe;CAexB"}