@nahisaho/yata-local 1.6.6

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 (77) hide show
  1. package/dist/auto-updater.d.ts +101 -0
  2. package/dist/auto-updater.d.ts.map +1 -0
  3. package/dist/auto-updater.js +402 -0
  4. package/dist/auto-updater.js.map +1 -0
  5. package/dist/database.d.ts +229 -0
  6. package/dist/database.d.ts.map +1 -0
  7. package/dist/database.js +959 -0
  8. package/dist/database.js.map +1 -0
  9. package/dist/index.d.ts +298 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +436 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/io.d.ts +77 -0
  14. package/dist/io.d.ts.map +1 -0
  15. package/dist/io.js +403 -0
  16. package/dist/io.js.map +1 -0
  17. package/dist/kgpr/diff-engine.d.ts +110 -0
  18. package/dist/kgpr/diff-engine.d.ts.map +1 -0
  19. package/dist/kgpr/diff-engine.js +335 -0
  20. package/dist/kgpr/diff-engine.js.map +1 -0
  21. package/dist/kgpr/index.d.ts +16 -0
  22. package/dist/kgpr/index.d.ts.map +1 -0
  23. package/dist/kgpr/index.js +14 -0
  24. package/dist/kgpr/index.js.map +1 -0
  25. package/dist/kgpr/kgpr-manager.d.ts +122 -0
  26. package/dist/kgpr/kgpr-manager.d.ts.map +1 -0
  27. package/dist/kgpr/kgpr-manager.js +344 -0
  28. package/dist/kgpr/kgpr-manager.js.map +1 -0
  29. package/dist/kgpr/privacy-filter.d.ts +109 -0
  30. package/dist/kgpr/privacy-filter.d.ts.map +1 -0
  31. package/dist/kgpr/privacy-filter.js +295 -0
  32. package/dist/kgpr/privacy-filter.js.map +1 -0
  33. package/dist/kgpr/types.d.ts +234 -0
  34. package/dist/kgpr/types.d.ts.map +1 -0
  35. package/dist/kgpr/types.js +54 -0
  36. package/dist/kgpr/types.js.map +1 -0
  37. package/dist/query-engine.d.ts +78 -0
  38. package/dist/query-engine.d.ts.map +1 -0
  39. package/dist/query-engine.js +368 -0
  40. package/dist/query-engine.js.map +1 -0
  41. package/dist/reasoning.d.ts +112 -0
  42. package/dist/reasoning.d.ts.map +1 -0
  43. package/dist/reasoning.js +455 -0
  44. package/dist/reasoning.js.map +1 -0
  45. package/dist/types.d.ts +580 -0
  46. package/dist/types.d.ts.map +1 -0
  47. package/dist/types.js +37 -0
  48. package/dist/types.js.map +1 -0
  49. package/dist/wake-sleep/cycle-manager.d.ts +76 -0
  50. package/dist/wake-sleep/cycle-manager.d.ts.map +1 -0
  51. package/dist/wake-sleep/cycle-manager.js +291 -0
  52. package/dist/wake-sleep/cycle-manager.js.map +1 -0
  53. package/dist/wake-sleep/index.d.ts +15 -0
  54. package/dist/wake-sleep/index.d.ts.map +1 -0
  55. package/dist/wake-sleep/index.js +19 -0
  56. package/dist/wake-sleep/index.js.map +1 -0
  57. package/dist/wake-sleep/pattern-compressor.d.ts +86 -0
  58. package/dist/wake-sleep/pattern-compressor.d.ts.map +1 -0
  59. package/dist/wake-sleep/pattern-compressor.js +333 -0
  60. package/dist/wake-sleep/pattern-compressor.js.map +1 -0
  61. package/dist/wake-sleep/sleep-phase.d.ts +79 -0
  62. package/dist/wake-sleep/sleep-phase.d.ts.map +1 -0
  63. package/dist/wake-sleep/sleep-phase.js +329 -0
  64. package/dist/wake-sleep/sleep-phase.js.map +1 -0
  65. package/dist/wake-sleep/types.d.ts +244 -0
  66. package/dist/wake-sleep/types.d.ts.map +1 -0
  67. package/dist/wake-sleep/types.js +35 -0
  68. package/dist/wake-sleep/types.js.map +1 -0
  69. package/dist/wake-sleep/wake-phase.d.ts +83 -0
  70. package/dist/wake-sleep/wake-phase.d.ts.map +1 -0
  71. package/dist/wake-sleep/wake-phase.js +457 -0
  72. package/dist/wake-sleep/wake-phase.js.map +1 -0
  73. package/dist/yata-bridge.d.ts +78 -0
  74. package/dist/yata-bridge.d.ts.map +1 -0
  75. package/dist/yata-bridge.js +193 -0
  76. package/dist/yata-bridge.js.map +1 -0
  77. package/package.json +60 -0
package/dist/index.js ADDED
@@ -0,0 +1,436 @@
1
+ /**
2
+ * YATA Local - Main Entry Point
3
+ *
4
+ * SQLite-based local knowledge graph storage for AI coding assistants.
5
+ *
6
+ * @packageDocumentation
7
+ * @module @nahisaho/yata-local
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import { createYataLocal } from '@nahisaho/yata-local';
12
+ *
13
+ * const yata = createYataLocal({ path: './knowledge.db' });
14
+ * await yata.open();
15
+ *
16
+ * // Add entities
17
+ * const classId = await yata.addEntity({
18
+ * type: 'class',
19
+ * name: 'UserService',
20
+ * namespace: 'app.services',
21
+ * filePath: 'src/services/user.ts',
22
+ * });
23
+ *
24
+ * // Query graph
25
+ * const result = await yata.query({
26
+ * entityFilters: { types: ['class', 'interface'] },
27
+ * textSearch: 'User',
28
+ * });
29
+ *
30
+ * await yata.close();
31
+ * ```
32
+ */
33
+ import { randomUUID } from 'crypto';
34
+ import { DEFAULT_DB_CONFIG } from './types.js';
35
+ import { YataDatabase } from './database.js';
36
+ import { QueryEngine } from './query-engine.js';
37
+ import { ReasoningEngine } from './reasoning.js';
38
+ import { IoModule } from './io.js';
39
+ /**
40
+ * YATA Local implementation
41
+ */
42
+ export class YataLocal {
43
+ db;
44
+ queryEngine;
45
+ reasoningEngine;
46
+ ioModule;
47
+ config;
48
+ constructor(config = {}) {
49
+ this.config = { ...DEFAULT_DB_CONFIG, ...config };
50
+ this.db = new YataDatabase(this.config);
51
+ }
52
+ /**
53
+ * Open database connection
54
+ */
55
+ async open(config) {
56
+ if (config) {
57
+ this.config = { ...this.config, ...config };
58
+ this.db = new YataDatabase(this.config);
59
+ }
60
+ await this.db.open();
61
+ // Initialize engines
62
+ this.queryEngine = new QueryEngine(this.db);
63
+ this.reasoningEngine = new ReasoningEngine(this.db, this.queryEngine);
64
+ this.ioModule = new IoModule(this.db);
65
+ }
66
+ /**
67
+ * Close database connection
68
+ */
69
+ async close() {
70
+ await this.db.close();
71
+ }
72
+ /**
73
+ * Check if database is open
74
+ */
75
+ isOpen() {
76
+ return this.db.isOpen();
77
+ }
78
+ // Entity Operations
79
+ /**
80
+ * Add entity to graph
81
+ * @see REQ-YL-UPDATE-001
82
+ */
83
+ async addEntity(entity) {
84
+ const id = randomUUID();
85
+ const now = new Date();
86
+ const fullEntity = {
87
+ ...entity,
88
+ id,
89
+ metadata: entity.metadata ?? {},
90
+ createdAt: now,
91
+ updatedAt: now,
92
+ };
93
+ this.db.insertEntity(fullEntity);
94
+ return id;
95
+ }
96
+ /**
97
+ * Add multiple entities in batch
98
+ */
99
+ async addEntities(entities) {
100
+ const now = new Date();
101
+ const fullEntities = entities.map(e => ({
102
+ ...e,
103
+ id: randomUUID(),
104
+ metadata: e.metadata ?? {},
105
+ createdAt: now,
106
+ updatedAt: now,
107
+ }));
108
+ this.db.insertEntities(fullEntities);
109
+ return fullEntities.map(e => e.id);
110
+ }
111
+ /**
112
+ * Get entity by ID
113
+ */
114
+ async getEntity(id) {
115
+ return this.db.getEntity(id);
116
+ }
117
+ /**
118
+ * Update entity
119
+ * @see REQ-YL-UPDATE-002
120
+ */
121
+ async updateEntity(id, updates) {
122
+ this.db.updateEntity(id, updates);
123
+ }
124
+ /**
125
+ * Delete entity
126
+ * @see REQ-YL-UPDATE-003
127
+ */
128
+ async deleteEntity(id) {
129
+ this.db.deleteEntity(id);
130
+ }
131
+ /**
132
+ * Delete entities by file path
133
+ */
134
+ async deleteEntitiesByFile(filePath) {
135
+ return this.db.deleteEntitiesByFile(filePath);
136
+ }
137
+ // High-Level Query APIs (P0 Enhancement)
138
+ /**
139
+ * Get all entities by type
140
+ * @see REQ-YL-QUERY-001
141
+ */
142
+ async getEntitiesByType(type) {
143
+ const result = this.db.queryEntities({ type }, 10000, 0);
144
+ return result.entities;
145
+ }
146
+ /**
147
+ * Get all entities by namespace
148
+ * @see REQ-YL-QUERY-001
149
+ */
150
+ async getEntitiesByNamespace(namespace) {
151
+ const result = this.db.queryEntities({ namespace }, 10000, 0);
152
+ return result.entities;
153
+ }
154
+ /**
155
+ * Get entities by metadata.entityKind
156
+ * @see REQ-YL-QUERY-001
157
+ */
158
+ async getEntitiesByKind(kind) {
159
+ const db = this.db.getDb();
160
+ const stmt = db.prepare(`
161
+ SELECT * FROM entities
162
+ WHERE json_extract(metadata, '$.entityKind') = ?
163
+ ORDER BY created_at DESC
164
+ `);
165
+ const rows = stmt.all(kind);
166
+ return rows.map(row => ({
167
+ id: row.id,
168
+ type: row.type,
169
+ name: row.name,
170
+ namespace: row.namespace,
171
+ filePath: row.file_path ?? undefined,
172
+ line: row.line ?? undefined,
173
+ description: row.description ?? undefined,
174
+ metadata: JSON.parse(row.metadata),
175
+ createdAt: new Date(row.created_at),
176
+ updatedAt: new Date(row.updated_at),
177
+ }));
178
+ }
179
+ /**
180
+ * Get entity by name (first match)
181
+ */
182
+ async getEntityByName(name, namespace) {
183
+ const filters = { name };
184
+ if (namespace)
185
+ filters.namespace = namespace;
186
+ const result = this.db.queryEntities(filters, 1, 0);
187
+ return result.entities[0] ?? null;
188
+ }
189
+ /**
190
+ * Upsert entity (add or update)
191
+ * @see REQ-YL-UPDATE-001
192
+ */
193
+ async upsertEntity(entity, matchBy = 'name-namespace') {
194
+ const existing = await this.getEntityByName(entity.name, matchBy === 'name-namespace' ? entity.namespace : undefined);
195
+ if (existing) {
196
+ // Update existing
197
+ await this.updateEntity(existing.id, {
198
+ type: entity.type,
199
+ filePath: entity.filePath,
200
+ line: entity.line,
201
+ description: entity.description,
202
+ metadata: { ...existing.metadata, ...entity.metadata },
203
+ });
204
+ return { id: existing.id, created: false };
205
+ }
206
+ else {
207
+ // Create new
208
+ const id = await this.addEntity(entity);
209
+ return { id, created: true };
210
+ }
211
+ }
212
+ /**
213
+ * Upsert multiple entities in transaction
214
+ */
215
+ async upsertEntities(entities, matchBy = 'name-namespace') {
216
+ let created = 0;
217
+ let updated = 0;
218
+ for (const entity of entities) {
219
+ const result = await this.upsertEntity(entity, matchBy);
220
+ if (result.created)
221
+ created++;
222
+ else
223
+ updated++;
224
+ }
225
+ return { created, updated };
226
+ }
227
+ /**
228
+ * Execute raw SQL query (for advanced use cases)
229
+ */
230
+ async rawQuery(sql, params = []) {
231
+ const db = this.db.getDb();
232
+ const stmt = db.prepare(sql);
233
+ return stmt.all(...params);
234
+ }
235
+ // Relationship Operations
236
+ /**
237
+ * Add relationship
238
+ */
239
+ async addRelationship(sourceId, targetId, type, metadata) {
240
+ const id = randomUUID();
241
+ const rel = {
242
+ id,
243
+ sourceId,
244
+ targetId,
245
+ type,
246
+ weight: 1.0,
247
+ metadata: metadata ?? {},
248
+ createdAt: new Date(),
249
+ };
250
+ this.db.insertRelationship(rel);
251
+ return id;
252
+ }
253
+ /**
254
+ * Get relationships for entity
255
+ */
256
+ async getRelationships(entityId, direction) {
257
+ return this.db.getRelationships(entityId, direction);
258
+ }
259
+ /**
260
+ * Delete relationship
261
+ */
262
+ async deleteRelationship(id) {
263
+ this.db.deleteRelationship(id);
264
+ }
265
+ // Query Operations
266
+ /**
267
+ * Execute graph query
268
+ * @see REQ-YL-QUERY-001
269
+ */
270
+ async query(query, options) {
271
+ return this.queryEngine.query(query, options);
272
+ }
273
+ /**
274
+ * Find path between entities
275
+ * @see REQ-YL-QUERY-002
276
+ */
277
+ async findPath(startId, endId, options) {
278
+ return this.queryEngine.findPath(startId, endId, options);
279
+ }
280
+ /**
281
+ * Extract subgraph around entity
282
+ * @see REQ-YL-QUERY-003
283
+ */
284
+ async extractSubgraph(rootId, options) {
285
+ return this.queryEngine.extractSubgraph(rootId, options);
286
+ }
287
+ /**
288
+ * Match pattern in graph
289
+ * @see REQ-YL-QUERY-004
290
+ */
291
+ async matchPattern(pattern) {
292
+ return this.queryEngine.matchPattern(pattern);
293
+ }
294
+ /**
295
+ * Full-text search
296
+ * @see REQ-YL-QUERY-005
297
+ */
298
+ async search(text, limit) {
299
+ return this.db.searchEntities(text, limit);
300
+ }
301
+ /**
302
+ * Traverse relationships
303
+ */
304
+ async traverse(startId, relationshipTypes, direction, maxHops) {
305
+ return this.queryEngine.traverse(startId, relationshipTypes, direction, maxHops);
306
+ }
307
+ /**
308
+ * Get entity neighbors
309
+ */
310
+ async getNeighbors(entityId, options) {
311
+ return this.queryEngine.getNeighbors(entityId, options);
312
+ }
313
+ // Reasoning Operations
314
+ /**
315
+ * Run inference
316
+ * @see REQ-YL-REASON-001
317
+ */
318
+ async infer(options) {
319
+ return this.reasoningEngine.infer(options);
320
+ }
321
+ /**
322
+ * Validate graph constraints
323
+ * @see REQ-YL-REASON-003
324
+ */
325
+ async validate(options) {
326
+ return this.reasoningEngine.validate(options);
327
+ }
328
+ /**
329
+ * Compute confidence score
330
+ * @see REQ-YL-REASON-004
331
+ */
332
+ async computeConfidence(sourceId, targetId, relType) {
333
+ return this.reasoningEngine.computeConfidence(sourceId, targetId, relType);
334
+ }
335
+ /**
336
+ * Suggest relationships
337
+ * @see REQ-YL-REASON-002
338
+ */
339
+ async suggestRelationships(entityId, options) {
340
+ return this.reasoningEngine.suggestRelationships(entityId, options);
341
+ }
342
+ /**
343
+ * Add custom inference rule
344
+ */
345
+ addInferenceRule(rule) {
346
+ this.reasoningEngine.addRule(rule);
347
+ }
348
+ /**
349
+ * Add custom constraint
350
+ */
351
+ addConstraint(constraint) {
352
+ this.reasoningEngine.addConstraint(constraint);
353
+ }
354
+ /**
355
+ * Get all inference rules
356
+ */
357
+ getInferenceRules() {
358
+ return this.reasoningEngine.getRules();
359
+ }
360
+ /**
361
+ * Get all constraints
362
+ */
363
+ getConstraints() {
364
+ return this.reasoningEngine.getConstraints();
365
+ }
366
+ // Import/Export Operations
367
+ /**
368
+ * Export to JSON
369
+ * @see REQ-YL-IO-001
370
+ */
371
+ async exportJson(filePath) {
372
+ return this.ioModule.exportToJson(filePath);
373
+ }
374
+ /**
375
+ * Import from JSON
376
+ * @see REQ-YL-IO-003
377
+ */
378
+ async importJson(input, options) {
379
+ return this.ioModule.importFromJson(input, options);
380
+ }
381
+ /**
382
+ * Export to RDF
383
+ * @see REQ-YL-IO-001
384
+ */
385
+ async exportRdf(filePath, options) {
386
+ return this.ioModule.exportToRdf(filePath, options);
387
+ }
388
+ /**
389
+ * Compute delta between states
390
+ * @see REQ-YL-IO-004
391
+ */
392
+ computeDelta(oldState, newState) {
393
+ return this.ioModule.computeDelta(oldState, newState);
394
+ }
395
+ /**
396
+ * Apply delta
397
+ * @see REQ-YL-IO-004
398
+ */
399
+ async applyDelta(delta, options) {
400
+ return this.ioModule.applyDelta(delta, options);
401
+ }
402
+ /**
403
+ * Get changes since timestamp
404
+ * @see REQ-YL-UPDATE-005
405
+ */
406
+ async getChangesSince(since) {
407
+ return this.db.getChangesSince(since);
408
+ }
409
+ /**
410
+ * Get graph statistics
411
+ */
412
+ async getStats() {
413
+ return this.db.getStats();
414
+ }
415
+ }
416
+ /**
417
+ * Factory function to create YataLocal instance
418
+ */
419
+ export function createYataLocal(config) {
420
+ return new YataLocal(config);
421
+ }
422
+ // Re-export types
423
+ export * from './types.js';
424
+ export { YataDatabase } from './database.js';
425
+ export { QueryEngine } from './query-engine.js';
426
+ export { ReasoningEngine } from './reasoning.js';
427
+ export { IoModule } from './io.js';
428
+ // Auto-updater for MCP integration
429
+ export { KnowledgeGraphUpdater, createKnowledgeGraphUpdater, } from './auto-updater.js';
430
+ // YATA Bridge for MCP integration
431
+ export { YataBridge, createYataBridge, } from './yata-bridge.js';
432
+ // KGPR Module (v1.6.5 NEW!)
433
+ export { LocalKGPRManager, createLocalKGPRManager, LocalPrivacyFilter, createLocalPrivacyFilter, LocalDiffEngine, createLocalDiffEngine, } from './kgpr/index.js';
434
+ // Wake-Sleep Learning Module (v1.6.5 NEW!)
435
+ export { LocalWakeSleepCycle, createLocalWakeSleepCycle, LocalWakePhase, createLocalWakePhase, LocalSleepPhase, createLocalSleepPhase, LocalPatternCompressor, createLocalPatternCompressor, DEFAULT_WAKE_SLEEP_CONFIG, } from './wake-sleep/index.js';
436
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/io.d.ts ADDED
@@ -0,0 +1,77 @@
1
+ /**
2
+ * YATA Local - Import/Export Module
3
+ *
4
+ * @packageDocumentation
5
+ * @module @nahisaho/yata-local/io
6
+ *
7
+ * @see REQ-YL-IO-001 ~ REQ-YL-IO-004
8
+ */
9
+ import type { Entity, Relationship, Delta, MergeResult } from './types.js';
10
+ import type { YataDatabase } from './database.js';
11
+ /**
12
+ * JSON export format
13
+ */
14
+ export interface JsonExport {
15
+ version: '1.0';
16
+ exportedAt: string;
17
+ entities: Entity[];
18
+ relationships: Relationship[];
19
+ }
20
+ /**
21
+ * RDF export format (N-Triples)
22
+ */
23
+ export interface RdfExportOptions {
24
+ baseUri?: string;
25
+ includeMetadata?: boolean;
26
+ }
27
+ /**
28
+ * Import/Export module for YATA Local
29
+ */
30
+ export declare class IoModule {
31
+ private db;
32
+ constructor(db: YataDatabase);
33
+ /**
34
+ * Export graph to JSON
35
+ * @see REQ-YL-IO-001
36
+ */
37
+ exportToJson(filePath?: string): Promise<JsonExport>;
38
+ /**
39
+ * Import graph from JSON
40
+ * @see REQ-YL-IO-003
41
+ */
42
+ importFromJson(input: string | JsonExport, options?: {
43
+ merge?: boolean;
44
+ dryRun?: boolean;
45
+ }): Promise<MergeResult>;
46
+ /**
47
+ * Export to RDF (N-Triples format)
48
+ * @see REQ-YL-IO-001
49
+ */
50
+ exportToRdf(filePath?: string, options?: RdfExportOptions): Promise<string>;
51
+ /**
52
+ * Compute delta between two states
53
+ * @see REQ-YL-IO-004
54
+ */
55
+ computeDelta(oldState: JsonExport, newState: JsonExport): Delta;
56
+ /**
57
+ * Apply delta to current database state
58
+ * @see REQ-YL-IO-004
59
+ */
60
+ applyDelta(delta: Delta, options?: {
61
+ dryRun?: boolean;
62
+ }): Promise<MergeResult>;
63
+ /**
64
+ * Sync with another YATA Local instance
65
+ * @see REQ-YL-IO-004
66
+ */
67
+ syncWith(other: YataDatabase, since: Date): Promise<MergeResult>;
68
+ /**
69
+ * Check if entity has changed
70
+ */
71
+ private entityChanged;
72
+ /**
73
+ * Escape string for RDF N-Triples format
74
+ */
75
+ private escapeRdfString;
76
+ }
77
+ //# sourceMappingURL=io.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../src/io.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EACV,MAAM,EACN,YAAY,EACZ,KAAK,EACL,WAAW,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,KAAK,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,EAAE,YAAY,EAAE,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,qBAAa,QAAQ;IACP,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,YAAY;IAEpC;;;OAGG;IACG,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA8B1D;;;OAGG;IACG,cAAc,CAClB,KAAK,EAAE,MAAM,GAAG,UAAU,EAC1B,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GAClD,OAAO,CAAC,WAAW,CAAC;IA+EvB;;;OAGG;IACG,WAAW,CACf,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,MAAM,CAAC;IAyFlB;;;OAGG;IACH,YAAY,CACV,QAAQ,EAAE,UAAU,EACpB,QAAQ,EAAE,UAAU,GACnB,KAAK;IAwDR;;;OAGG;IACG,UAAU,CACd,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GACjC,OAAO,CAAC,WAAW,CAAC;IAiEvB;;;OAGG;IACG,QAAQ,CACZ,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,IAAI,GACV,OAAO,CAAC,WAAW,CAAC;IAsEvB;;OAEG;IACH,OAAO,CAAC,aAAa;IAYrB;;OAEG;IACH,OAAO,CAAC,eAAe;CAQxB"}