@danielsimonjr/memory-mcp 12.2.3 → 12.5.2

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 (158) hide show
  1. package/README.md +88 -102
  2. package/dist/index.js +6 -0
  3. package/dist/server/toolDefinitions.d.ts.map +1 -1
  4. package/dist/server/toolDefinitions.js +745 -3
  5. package/dist/server/toolHandlers.d.ts +1 -9
  6. package/dist/server/toolHandlers.d.ts.map +1 -1
  7. package/dist/server/toolHandlers.js +859 -11
  8. package/package.json +9 -6
  9. package/dist/core/EntityManager.d.ts +0 -263
  10. package/dist/core/EntityManager.d.ts.map +0 -1
  11. package/dist/core/EntityManager.js +0 -478
  12. package/dist/core/GraphStorage.d.ts +0 -344
  13. package/dist/core/GraphStorage.d.ts.map +0 -1
  14. package/dist/core/GraphStorage.js +0 -708
  15. package/dist/core/GraphTraversal.d.ts +0 -136
  16. package/dist/core/GraphTraversal.d.ts.map +0 -1
  17. package/dist/core/GraphTraversal.js +0 -556
  18. package/dist/core/HierarchyManager.d.ts +0 -111
  19. package/dist/core/HierarchyManager.d.ts.map +0 -1
  20. package/dist/core/HierarchyManager.js +0 -224
  21. package/dist/core/ManagerContext.d.ts +0 -72
  22. package/dist/core/ManagerContext.d.ts.map +0 -1
  23. package/dist/core/ManagerContext.js +0 -118
  24. package/dist/core/ObservationManager.d.ts +0 -85
  25. package/dist/core/ObservationManager.d.ts.map +0 -1
  26. package/dist/core/ObservationManager.js +0 -123
  27. package/dist/core/RelationManager.d.ts +0 -131
  28. package/dist/core/RelationManager.d.ts.map +0 -1
  29. package/dist/core/RelationManager.js +0 -210
  30. package/dist/core/SQLiteStorage.d.ts +0 -354
  31. package/dist/core/SQLiteStorage.d.ts.map +0 -1
  32. package/dist/core/SQLiteStorage.js +0 -917
  33. package/dist/core/StorageFactory.d.ts +0 -45
  34. package/dist/core/StorageFactory.d.ts.map +0 -1
  35. package/dist/core/StorageFactory.js +0 -64
  36. package/dist/core/TransactionManager.d.ts +0 -259
  37. package/dist/core/TransactionManager.d.ts.map +0 -1
  38. package/dist/core/TransactionManager.js +0 -392
  39. package/dist/core/index.d.ts +0 -16
  40. package/dist/core/index.d.ts.map +0 -1
  41. package/dist/core/index.js +0 -17
  42. package/dist/features/AnalyticsManager.d.ts +0 -44
  43. package/dist/features/AnalyticsManager.d.ts.map +0 -1
  44. package/dist/features/AnalyticsManager.js +0 -223
  45. package/dist/features/ArchiveManager.d.ts +0 -121
  46. package/dist/features/ArchiveManager.d.ts.map +0 -1
  47. package/dist/features/ArchiveManager.js +0 -240
  48. package/dist/features/CompressionManager.d.ts +0 -109
  49. package/dist/features/CompressionManager.d.ts.map +0 -1
  50. package/dist/features/CompressionManager.js +0 -404
  51. package/dist/features/IOManager.d.ts +0 -221
  52. package/dist/features/IOManager.d.ts.map +0 -1
  53. package/dist/features/IOManager.js +0 -997
  54. package/dist/features/StreamingExporter.d.ts +0 -105
  55. package/dist/features/StreamingExporter.d.ts.map +0 -1
  56. package/dist/features/StreamingExporter.js +0 -150
  57. package/dist/features/TagManager.d.ts +0 -147
  58. package/dist/features/TagManager.d.ts.map +0 -1
  59. package/dist/features/TagManager.js +0 -210
  60. package/dist/features/index.d.ts +0 -12
  61. package/dist/features/index.d.ts.map +0 -1
  62. package/dist/features/index.js +0 -11
  63. package/dist/search/BasicSearch.d.ts +0 -51
  64. package/dist/search/BasicSearch.d.ts.map +0 -1
  65. package/dist/search/BasicSearch.js +0 -137
  66. package/dist/search/BooleanSearch.d.ts +0 -98
  67. package/dist/search/BooleanSearch.d.ts.map +0 -1
  68. package/dist/search/BooleanSearch.js +0 -430
  69. package/dist/search/EmbeddingService.d.ts +0 -178
  70. package/dist/search/EmbeddingService.d.ts.map +0 -1
  71. package/dist/search/EmbeddingService.js +0 -358
  72. package/dist/search/FuzzySearch.d.ts +0 -118
  73. package/dist/search/FuzzySearch.d.ts.map +0 -1
  74. package/dist/search/FuzzySearch.js +0 -312
  75. package/dist/search/RankedSearch.d.ts +0 -71
  76. package/dist/search/RankedSearch.d.ts.map +0 -1
  77. package/dist/search/RankedSearch.js +0 -238
  78. package/dist/search/SavedSearchManager.d.ts +0 -79
  79. package/dist/search/SavedSearchManager.d.ts.map +0 -1
  80. package/dist/search/SavedSearchManager.js +0 -145
  81. package/dist/search/SearchFilterChain.d.ts +0 -120
  82. package/dist/search/SearchFilterChain.d.ts.map +0 -1
  83. package/dist/search/SearchFilterChain.js +0 -185
  84. package/dist/search/SearchManager.d.ts +0 -285
  85. package/dist/search/SearchManager.d.ts.map +0 -1
  86. package/dist/search/SearchManager.js +0 -338
  87. package/dist/search/SearchSuggestions.d.ts +0 -27
  88. package/dist/search/SearchSuggestions.d.ts.map +0 -1
  89. package/dist/search/SearchSuggestions.js +0 -57
  90. package/dist/search/SemanticSearch.d.ts +0 -146
  91. package/dist/search/SemanticSearch.d.ts.map +0 -1
  92. package/dist/search/SemanticSearch.js +0 -313
  93. package/dist/search/TFIDFIndexManager.d.ts +0 -63
  94. package/dist/search/TFIDFIndexManager.d.ts.map +0 -1
  95. package/dist/search/TFIDFIndexManager.js +0 -215
  96. package/dist/search/VectorStore.d.ts +0 -235
  97. package/dist/search/VectorStore.d.ts.map +0 -1
  98. package/dist/search/VectorStore.js +0 -311
  99. package/dist/search/index.d.ts +0 -18
  100. package/dist/search/index.d.ts.map +0 -1
  101. package/dist/search/index.js +0 -21
  102. package/dist/types/index.d.ts +0 -13
  103. package/dist/types/index.d.ts.map +0 -1
  104. package/dist/types/index.js +0 -12
  105. package/dist/types/types.d.ts +0 -1234
  106. package/dist/types/types.d.ts.map +0 -1
  107. package/dist/types/types.js +0 -9
  108. package/dist/utils/compressedCache.d.ts +0 -192
  109. package/dist/utils/compressedCache.d.ts.map +0 -1
  110. package/dist/utils/compressedCache.js +0 -309
  111. package/dist/utils/compressionUtil.d.ts +0 -214
  112. package/dist/utils/compressionUtil.d.ts.map +0 -1
  113. package/dist/utils/compressionUtil.js +0 -247
  114. package/dist/utils/constants.d.ts +0 -245
  115. package/dist/utils/constants.d.ts.map +0 -1
  116. package/dist/utils/constants.js +0 -252
  117. package/dist/utils/entityUtils.d.ts +0 -321
  118. package/dist/utils/entityUtils.d.ts.map +0 -1
  119. package/dist/utils/entityUtils.js +0 -538
  120. package/dist/utils/errors.d.ts +0 -77
  121. package/dist/utils/errors.d.ts.map +0 -1
  122. package/dist/utils/errors.js +0 -121
  123. package/dist/utils/formatters.d.ts +0 -145
  124. package/dist/utils/formatters.d.ts.map +0 -1
  125. package/dist/utils/formatters.js +0 -132
  126. package/dist/utils/index.d.ts +0 -22
  127. package/dist/utils/index.d.ts.map +0 -1
  128. package/dist/utils/index.js +0 -75
  129. package/dist/utils/indexes.d.ts +0 -270
  130. package/dist/utils/indexes.d.ts.map +0 -1
  131. package/dist/utils/indexes.js +0 -526
  132. package/dist/utils/logger.d.ts +0 -24
  133. package/dist/utils/logger.d.ts.map +0 -1
  134. package/dist/utils/logger.js +0 -33
  135. package/dist/utils/parallelUtils.d.ts +0 -72
  136. package/dist/utils/parallelUtils.d.ts.map +0 -1
  137. package/dist/utils/parallelUtils.js +0 -169
  138. package/dist/utils/schemas.d.ts +0 -374
  139. package/dist/utils/schemas.d.ts.map +0 -1
  140. package/dist/utils/schemas.js +0 -484
  141. package/dist/utils/searchAlgorithms.d.ts +0 -99
  142. package/dist/utils/searchAlgorithms.d.ts.map +0 -1
  143. package/dist/utils/searchAlgorithms.js +0 -167
  144. package/dist/utils/searchCache.d.ts +0 -108
  145. package/dist/utils/searchCache.d.ts.map +0 -1
  146. package/dist/utils/searchCache.js +0 -209
  147. package/dist/utils/taskScheduler.d.ts +0 -290
  148. package/dist/utils/taskScheduler.d.ts.map +0 -1
  149. package/dist/utils/taskScheduler.js +0 -466
  150. package/dist/workers/WorkerPool.d.ts +0 -81
  151. package/dist/workers/WorkerPool.d.ts.map +0 -1
  152. package/dist/workers/WorkerPool.js +0 -121
  153. package/dist/workers/index.d.ts +0 -12
  154. package/dist/workers/index.d.ts.map +0 -1
  155. package/dist/workers/index.js +0 -9
  156. package/dist/workers/levenshteinWorker.d.ts +0 -60
  157. package/dist/workers/levenshteinWorker.d.ts.map +0 -1
  158. package/dist/workers/levenshteinWorker.js +0 -98
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@danielsimonjr/memory-mcp",
3
- "version": "12.2.3",
4
- "description": "Enhanced MCP memory server with hierarchies, compression, archiving, graph algorithms, semantic search, temporal KG, RBAC, bitemporal validity, OCC, procedural memory, causal reasoning, world model, and 160 advanced tools",
3
+ "version": "12.5.2",
4
+ "description": "Enhanced MCP memory server with hierarchies, compression, archiving, graph algorithms, semantic search, temporal KG, RBAC, bitemporal validity, OCC, procedural memory, causal reasoning, world model, do_not_remember exclusions, decision rationale, project context, heuristic guidelines, tool affordance + observer, observation dedup, spell correction, and 213 advanced tools",
5
5
  "license": "MIT",
6
6
  "engines": {
7
7
  "node": ">=18.0.0"
@@ -58,15 +58,18 @@
58
58
  "tools:build": "cd tools/chunking-for-files && npm run build && cd ../compress-for-context && npm run build && cd ../create-dependency-graph && npm run build && cd ../migrate-from-jsonl-to-sqlite && npm run build"
59
59
  },
60
60
  "dependencies": {
61
- "@danielsimonjr/memoryjs": "^1.15.0",
61
+ "@danielsimonjr/memoryjs": "^2.8.1",
62
62
  "@modelcontextprotocol/sdk": "^1.21.1",
63
- "zod": "^3.24.1"
63
+ "zod": "^4.4.3"
64
+ },
65
+ "overrides": {
66
+ "better-sqlite3": "^12.10.1"
64
67
  },
65
68
  "devDependencies": {
66
69
  "@types/node": "^22",
67
- "@vitest/coverage-v8": "^4.0.13",
70
+ "@vitest/coverage-v8": "^4.1.5",
68
71
  "shx": "^0.4.0",
69
72
  "typescript": "^5.6.2",
70
- "vitest": "^4.0.13"
73
+ "vitest": "^4.1.5"
71
74
  }
72
75
  }
@@ -1,263 +0,0 @@
1
- /**
2
- * Entity Manager
3
- *
4
- * Handles CRUD operations for entities in the knowledge graph.
5
- * Focused on core entity and tag operations only (Phase 4: Consolidate God Objects).
6
- *
7
- * @module core/EntityManager
8
- */
9
- import type { Entity } from '../types/index.js';
10
- import type { GraphStorage } from './GraphStorage.js';
11
- /**
12
- * Minimum importance value (least important).
13
- */
14
- export declare const MIN_IMPORTANCE = 0;
15
- /**
16
- * Maximum importance value (most important).
17
- */
18
- export declare const MAX_IMPORTANCE = 10;
19
- /**
20
- * Manages entity operations with automatic timestamp handling.
21
- */
22
- export declare class EntityManager {
23
- private storage;
24
- constructor(storage: GraphStorage);
25
- /**
26
- * Create multiple entities in a single batch operation.
27
- *
28
- * This method performs the following operations:
29
- * - Filters out entities that already exist (duplicate names)
30
- * - Automatically adds createdAt and lastModified timestamps
31
- * - Normalizes all tags to lowercase for consistent searching
32
- * - Validates importance values (must be between 0-10)
33
- *
34
- * @param entities - Array of entities to create. Each entity must have a unique name.
35
- * @returns Promise resolving to array of newly created entities (excludes duplicates)
36
- * @throws {InvalidImportanceError} If any entity has importance outside the valid range [0-10]
37
- *
38
- * @example
39
- * ```typescript
40
- * const manager = new EntityManager(storage);
41
- *
42
- * // Create single entity
43
- * const results = await manager.createEntities([{
44
- * name: 'Alice',
45
- * entityType: 'person',
46
- * observations: ['Works as engineer', 'Lives in Seattle'],
47
- * importance: 7,
48
- * tags: ['Team', 'Engineering']
49
- * }]);
50
- *
51
- * // Create multiple entities at once
52
- * const users = await manager.createEntities([
53
- * { name: 'Bob', entityType: 'person', observations: [] },
54
- * { name: 'Charlie', entityType: 'person', observations: [] }
55
- * ]);
56
- * ```
57
- */
58
- createEntities(entities: Entity[]): Promise<Entity[]>;
59
- /**
60
- * Delete multiple entities by name in a single batch operation.
61
- *
62
- * This method performs cascading deletion:
63
- * - Removes all specified entities from the graph
64
- * - Automatically removes all relations where these entities are source or target
65
- * - Silently ignores entity names that don't exist (no error thrown)
66
- *
67
- * @param entityNames - Array of entity names to delete
68
- * @returns Promise that resolves when deletion is complete
69
- *
70
- * @example
71
- * ```typescript
72
- * const manager = new EntityManager(storage);
73
- *
74
- * // Delete single entity
75
- * await manager.deleteEntities(['Alice']);
76
- *
77
- * // Delete multiple entities at once
78
- * await manager.deleteEntities(['Bob', 'Charlie', 'Dave']);
79
- *
80
- * // Safe to delete non-existent entities (no error)
81
- * await manager.deleteEntities(['NonExistent']); // No error thrown
82
- * ```
83
- */
84
- deleteEntities(entityNames: string[]): Promise<void>;
85
- /**
86
- * Retrieve a single entity by its unique name.
87
- *
88
- * This is a read-only operation that does not modify the graph.
89
- * Entity names are case-sensitive.
90
- *
91
- * @param name - The unique name of the entity to retrieve
92
- * @returns Promise resolving to the Entity object if found, or null if not found
93
- *
94
- * @example
95
- * ```typescript
96
- * const manager = new EntityManager(storage);
97
- *
98
- * // Get an existing entity
99
- * const alice = await manager.getEntity('Alice');
100
- * if (alice) {
101
- * console.log(alice.observations);
102
- * console.log(alice.importance);
103
- * }
104
- *
105
- * // Handle non-existent entity
106
- * const missing = await manager.getEntity('NonExistent');
107
- * console.log(missing); // null
108
- * ```
109
- */
110
- getEntity(name: string): Promise<Entity | null>;
111
- /**
112
- * Update one or more fields of an existing entity.
113
- *
114
- * This method allows partial updates - only the fields specified in the updates
115
- * object will be changed. All other fields remain unchanged.
116
- * The lastModified timestamp is automatically updated.
117
- *
118
- * @param name - The unique name of the entity to update
119
- * @param updates - Partial entity object containing only the fields to update
120
- * @returns Promise resolving to the fully updated Entity object
121
- * @throws {EntityNotFoundError} If no entity with the given name exists
122
- *
123
- * @example
124
- * ```typescript
125
- * const manager = new EntityManager(storage);
126
- *
127
- * // Update importance only
128
- * const updated = await manager.updateEntity('Alice', {
129
- * importance: 9
130
- * });
131
- *
132
- * // Update multiple fields
133
- * await manager.updateEntity('Bob', {
134
- * entityType: 'senior_engineer',
135
- * tags: ['leadership', 'architecture'],
136
- * observations: ['Led project X', 'Designed system Y']
137
- * });
138
- *
139
- * // Add observations (requires reading existing entity first)
140
- * const entity = await manager.getEntity('Charlie');
141
- * if (entity) {
142
- * await manager.updateEntity('Charlie', {
143
- * observations: [...entity.observations, 'New observation']
144
- * });
145
- * }
146
- * ```
147
- */
148
- updateEntity(name: string, updates: Partial<Entity>): Promise<Entity>;
149
- /**
150
- * Update multiple entities in a single batch operation.
151
- *
152
- * This method is more efficient than calling updateEntity multiple times
153
- * as it loads and saves the graph only once. All updates are applied atomically.
154
- * The lastModified timestamp is automatically updated for all entities.
155
- *
156
- * @param updates - Array of updates, each containing entity name and changes
157
- * @returns Promise resolving to array of updated entities
158
- * @throws {EntityNotFoundError} If any entity is not found
159
- * @throws {ValidationError} If any update data is invalid
160
- *
161
- * @example
162
- * ```typescript
163
- * const manager = new EntityManager(storage);
164
- *
165
- * // Update multiple entities at once
166
- * const updated = await manager.batchUpdate([
167
- * { name: 'Alice', updates: { importance: 9 } },
168
- * { name: 'Bob', updates: { importance: 8, tags: ['senior'] } },
169
- * { name: 'Charlie', updates: { entityType: 'lead_engineer' } }
170
- * ]);
171
- *
172
- * console.log(`Updated ${updated.length} entities`);
173
- *
174
- * // Efficiently update many entities (single graph load/save)
175
- * const massUpdate = employees.map(name => ({
176
- * name,
177
- * updates: { tags: ['team-2024'] }
178
- * }));
179
- * await manager.batchUpdate(massUpdate);
180
- * ```
181
- */
182
- batchUpdate(updates: Array<{
183
- name: string;
184
- updates: Partial<Entity>;
185
- }>): Promise<Entity[]>;
186
- /**
187
- * Add tags to an entity.
188
- *
189
- * Tags are normalized to lowercase and duplicates are filtered out.
190
- *
191
- * @param entityName - Name of the entity
192
- * @param tags - Tags to add
193
- * @returns Result with entity name and added tags
194
- * @throws {EntityNotFoundError} If entity is not found
195
- */
196
- addTags(entityName: string, tags: string[]): Promise<{
197
- entityName: string;
198
- addedTags: string[];
199
- }>;
200
- /**
201
- * Remove tags from an entity.
202
- *
203
- * @param entityName - Name of the entity
204
- * @param tags - Tags to remove
205
- * @returns Result with entity name and removed tags
206
- * @throws {EntityNotFoundError} If entity is not found
207
- */
208
- removeTags(entityName: string, tags: string[]): Promise<{
209
- entityName: string;
210
- removedTags: string[];
211
- }>;
212
- /**
213
- * Set importance level for an entity.
214
- *
215
- * @param entityName - Name of the entity
216
- * @param importance - Importance level (0-10)
217
- * @returns Result with entity name and importance
218
- * @throws {EntityNotFoundError} If entity is not found
219
- * @throws {Error} If importance is out of range
220
- */
221
- setImportance(entityName: string, importance: number): Promise<{
222
- entityName: string;
223
- importance: number;
224
- }>;
225
- /**
226
- * Add tags to multiple entities in a single operation.
227
- *
228
- * @param entityNames - Names of entities to tag
229
- * @param tags - Tags to add to each entity
230
- * @returns Array of results showing which tags were added to each entity
231
- */
232
- addTagsToMultipleEntities(entityNames: string[], tags: string[]): Promise<{
233
- entityName: string;
234
- addedTags: string[];
235
- }[]>;
236
- /**
237
- * Replace a tag with a new tag across all entities (rename tag).
238
- *
239
- * @param oldTag - Tag to replace
240
- * @param newTag - New tag value
241
- * @returns Result with affected entities and count
242
- */
243
- replaceTag(oldTag: string, newTag: string): Promise<{
244
- affectedEntities: string[];
245
- count: number;
246
- }>;
247
- /**
248
- * Merge two tags into one target tag across all entities.
249
- *
250
- * Combines tag1 and tag2 into targetTag. Any entity with either tag1 or tag2
251
- * will have both removed and targetTag added (if not already present).
252
- *
253
- * @param tag1 - First tag to merge
254
- * @param tag2 - Second tag to merge
255
- * @param targetTag - Target tag to merge into
256
- * @returns Object with affected entity names and count
257
- */
258
- mergeTags(tag1: string, tag2: string, targetTag: string): Promise<{
259
- affectedEntities: string[];
260
- count: number;
261
- }>;
262
- }
263
- //# sourceMappingURL=EntityManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EntityManager.d.ts","sourceRoot":"","sources":["../../src/core/EntityManager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAKtD;;GAEG;AACH,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC;;GAEG;AACH,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC;;GAEG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,YAAY;IAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA0D3D;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB1D;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAuB3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACG,WAAW,CACf,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC,GACzD,OAAO,CAAC,MAAM,EAAE,CAAC;IAuCpB;;;;;;;;;OASG;IACG,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAsBvG;;;;;;;OAOG;IACG,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAoC5G;;;;;;;;OAQG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAkBhH;;;;;;OAMG;IACG,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;IAiC9H;;;;;;OAMG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAuBxG;;;;;;;;;;OAUG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAmCvH"}