agentdb 1.5.9 → 1.6.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 (68) hide show
  1. package/README.md +11 -11
  2. package/dist/agentdb.min.js +4 -4
  3. package/dist/cli/agentdb-cli.d.ts +29 -0
  4. package/dist/cli/agentdb-cli.d.ts.map +1 -1
  5. package/dist/cli/agentdb-cli.js +1009 -34
  6. package/dist/cli/agentdb-cli.js.map +1 -1
  7. package/dist/controllers/ContextSynthesizer.d.ts +65 -0
  8. package/dist/controllers/ContextSynthesizer.d.ts.map +1 -0
  9. package/dist/controllers/ContextSynthesizer.js +208 -0
  10. package/dist/controllers/ContextSynthesizer.js.map +1 -0
  11. package/dist/controllers/HNSWIndex.d.ts +128 -0
  12. package/dist/controllers/HNSWIndex.d.ts.map +1 -0
  13. package/dist/controllers/HNSWIndex.js +361 -0
  14. package/dist/controllers/HNSWIndex.js.map +1 -0
  15. package/dist/controllers/MMRDiversityRanker.d.ts +50 -0
  16. package/dist/controllers/MMRDiversityRanker.d.ts.map +1 -0
  17. package/dist/controllers/MMRDiversityRanker.js +130 -0
  18. package/dist/controllers/MMRDiversityRanker.js.map +1 -0
  19. package/dist/controllers/MetadataFilter.d.ts +70 -0
  20. package/dist/controllers/MetadataFilter.d.ts.map +1 -0
  21. package/dist/controllers/MetadataFilter.js +243 -0
  22. package/dist/controllers/MetadataFilter.js.map +1 -0
  23. package/dist/controllers/QUICClient.d.ts +109 -0
  24. package/dist/controllers/QUICClient.d.ts.map +1 -0
  25. package/dist/controllers/QUICClient.js +299 -0
  26. package/dist/controllers/QUICClient.js.map +1 -0
  27. package/dist/controllers/QUICServer.d.ts +121 -0
  28. package/dist/controllers/QUICServer.d.ts.map +1 -0
  29. package/dist/controllers/QUICServer.js +383 -0
  30. package/dist/controllers/QUICServer.js.map +1 -0
  31. package/dist/controllers/SyncCoordinator.d.ts +120 -0
  32. package/dist/controllers/SyncCoordinator.d.ts.map +1 -0
  33. package/dist/controllers/SyncCoordinator.js +441 -0
  34. package/dist/controllers/SyncCoordinator.js.map +1 -0
  35. package/dist/controllers/WASMVectorSearch.d.ts.map +1 -1
  36. package/dist/controllers/WASMVectorSearch.js +10 -2
  37. package/dist/controllers/WASMVectorSearch.js.map +1 -1
  38. package/dist/controllers/index.d.ts +14 -0
  39. package/dist/controllers/index.d.ts.map +1 -1
  40. package/dist/controllers/index.js +7 -0
  41. package/dist/controllers/index.js.map +1 -1
  42. package/dist/examples/quic-sync-example.d.ts +9 -0
  43. package/dist/examples/quic-sync-example.d.ts.map +1 -0
  44. package/dist/examples/quic-sync-example.js +169 -0
  45. package/dist/examples/quic-sync-example.js.map +1 -0
  46. package/dist/index.d.ts +1 -0
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +2 -1
  49. package/dist/index.js.map +1 -1
  50. package/dist/types/quic.d.ts +518 -0
  51. package/dist/types/quic.d.ts.map +1 -0
  52. package/dist/types/quic.js +272 -0
  53. package/dist/types/quic.js.map +1 -0
  54. package/package.json +11 -3
  55. package/src/browser-entry.js +41 -6
  56. package/src/cli/agentdb-cli.ts +1114 -33
  57. package/src/controllers/ContextSynthesizer.ts +285 -0
  58. package/src/controllers/HNSWIndex.ts +495 -0
  59. package/src/controllers/MMRDiversityRanker.ts +187 -0
  60. package/src/controllers/MetadataFilter.ts +280 -0
  61. package/src/controllers/QUICClient.ts +413 -0
  62. package/src/controllers/QUICServer.ts +498 -0
  63. package/src/controllers/SyncCoordinator.ts +597 -0
  64. package/src/controllers/WASMVectorSearch.ts +11 -2
  65. package/src/controllers/index.ts +14 -0
  66. package/src/examples/quic-sync-example.ts +198 -0
  67. package/src/index.ts +2 -1
  68. package/src/types/quic.ts +772 -0
@@ -0,0 +1,518 @@
1
+ /**
2
+ * QUIC Synchronization Types for AgentDB
3
+ *
4
+ * This file contains TypeScript interfaces and types for the QUIC-based
5
+ * multi-node synchronization system. These types mirror the Protocol Buffer
6
+ * definitions and provide type safety for the sync implementation.
7
+ */
8
+ /**
9
+ * Vector clock for causal ordering of events across distributed nodes.
10
+ * Maps node IDs to their logical clock values.
11
+ */
12
+ export interface VectorClock {
13
+ clocks: Map<string, number>;
14
+ }
15
+ /**
16
+ * Compares two vector clocks to determine causal relationship
17
+ */
18
+ export type VectorClockComparison = 'before' | 'after' | 'concurrent' | 'equal';
19
+ /**
20
+ * Main sync message envelope wrapping all sync operations
21
+ */
22
+ export interface SyncMessage {
23
+ sequenceNumber: number;
24
+ timestampMs: number;
25
+ nodeId: string;
26
+ vectorClock: VectorClock;
27
+ payload: SyncPayload;
28
+ }
29
+ /**
30
+ * Union type for different sync payload types
31
+ */
32
+ export type SyncPayload = {
33
+ type: 'episode_sync';
34
+ data: EpisodeSync;
35
+ } | {
36
+ type: 'skill_sync';
37
+ data: SkillSync;
38
+ } | {
39
+ type: 'causal_edge_sync';
40
+ data: CausalEdgeSync;
41
+ } | {
42
+ type: 'reconciliation_request';
43
+ data: FullReconciliationRequest;
44
+ } | {
45
+ type: 'reconciliation_response';
46
+ data: FullReconciliationResponse;
47
+ };
48
+ /**
49
+ * Supported operations for episode sync
50
+ */
51
+ export declare enum EpisodeSyncOperation {
52
+ CREATE = "CREATE",
53
+ UPDATE = "UPDATE",
54
+ DELETE = "DELETE"
55
+ }
56
+ /**
57
+ * Episode synchronization message
58
+ */
59
+ export interface EpisodeSync {
60
+ operation: EpisodeSyncOperation;
61
+ episodeId: number;
62
+ episodeData: SyncableEpisode;
63
+ causalClock: VectorClock;
64
+ signature: Uint8Array;
65
+ }
66
+ /**
67
+ * Serializable episode data for sync
68
+ */
69
+ export interface SyncableEpisode {
70
+ id?: number;
71
+ agentId: string;
72
+ sessionId: string;
73
+ task: string;
74
+ input: string;
75
+ output: string;
76
+ critique?: string;
77
+ reward: number;
78
+ success: boolean;
79
+ latencyMs: number;
80
+ timestamp: number;
81
+ metadata?: Record<string, any>;
82
+ vectorClock: VectorClock;
83
+ }
84
+ /**
85
+ * G-Counter (Grow-only Counter) for skill usage tracking
86
+ */
87
+ export interface GCounter {
88
+ nodeCounters: Map<string, number>;
89
+ }
90
+ /**
91
+ * LWW-Register (Last-Write-Wins Register) for scalar values
92
+ */
93
+ export interface LWWRegister<T> {
94
+ value: T;
95
+ timestamp: number;
96
+ nodeId: string;
97
+ }
98
+ /**
99
+ * OR-Set (Observed-Remove Set) for set-based values
100
+ */
101
+ export interface ORSet<T> {
102
+ adds: Map<T, Set<string>>;
103
+ removes: Set<string>;
104
+ }
105
+ /**
106
+ * Skill synchronization message with CRDT fields
107
+ */
108
+ export interface SkillSync {
109
+ skillId: number;
110
+ skillName: string;
111
+ description?: string;
112
+ uses: GCounter;
113
+ successRate: LWWRegister<number>;
114
+ avgReward: LWWRegister<number>;
115
+ avgLatencyMs: LWWRegister<number>;
116
+ sourceEpisodes: ORSet<number>;
117
+ signature: Record<string, any>;
118
+ version: VectorClock;
119
+ metadata?: Record<string, any>;
120
+ }
121
+ /**
122
+ * Metadata for conflict resolution in causal edges
123
+ */
124
+ export interface ConflictResolutionMetadata {
125
+ experimentIds?: number[];
126
+ evidenceCount: number;
127
+ lastModifiedBy: string;
128
+ lastModifiedAt: number;
129
+ }
130
+ /**
131
+ * Causal edge synchronization message
132
+ */
133
+ export interface CausalEdgeSync {
134
+ edgeId: number;
135
+ fromMemoryId: number;
136
+ fromMemoryType: 'episode' | 'skill' | 'note' | 'fact';
137
+ toMemoryId: number;
138
+ toMemoryType: 'episode' | 'skill' | 'note' | 'fact';
139
+ similarity: number;
140
+ uplift?: number;
141
+ confidence: number;
142
+ sampleSize?: number;
143
+ evidenceIds?: number[];
144
+ experimentIds?: number[];
145
+ confounderScore?: number;
146
+ mechanism?: string;
147
+ version: VectorClock;
148
+ conflictMetadata: ConflictResolutionMetadata;
149
+ metadata?: Record<string, any>;
150
+ }
151
+ /**
152
+ * Data types that can be reconciled
153
+ */
154
+ export type ReconciliableDataType = 'episodes' | 'skills' | 'edges' | 'experiments';
155
+ /**
156
+ * Request for full reconciliation
157
+ */
158
+ export interface FullReconciliationRequest {
159
+ lastSyncTimestamp: number;
160
+ currentState: VectorClock;
161
+ dataTypes: ReconciliableDataType[];
162
+ requestId: string;
163
+ }
164
+ /**
165
+ * Response with full state for reconciliation
166
+ */
167
+ export interface FullReconciliationResponse {
168
+ requestId: string;
169
+ episodes: EpisodeSync[];
170
+ skills: SkillSync[];
171
+ edges: CausalEdgeSync[];
172
+ authoritativeClock: VectorClock;
173
+ merkleRoot: string;
174
+ }
175
+ /**
176
+ * State summary for efficient reconciliation
177
+ */
178
+ export interface StateSummary {
179
+ episodes: {
180
+ count: number;
181
+ merkleRoot: string;
182
+ vectorClock: VectorClock;
183
+ };
184
+ skills: {
185
+ count: number;
186
+ merkleRoot: string;
187
+ vectorClock: VectorClock;
188
+ };
189
+ edges: {
190
+ count: number;
191
+ merkleRoot: string;
192
+ vectorClock: VectorClock;
193
+ };
194
+ }
195
+ /**
196
+ * Reconciliation report with results
197
+ */
198
+ export interface ReconciliationReport {
199
+ success: boolean;
200
+ startTime: number;
201
+ endTime: number;
202
+ duration: number;
203
+ recordsAdded: number;
204
+ recordsUpdated: number;
205
+ recordsDeleted: number;
206
+ conflictsResolved: number;
207
+ conflictsUnresolved: number;
208
+ errors: string[];
209
+ }
210
+ /**
211
+ * JWT claims for API authorization
212
+ */
213
+ export interface JWTClaims {
214
+ iss: string;
215
+ sub: string;
216
+ exp: number;
217
+ iat: number;
218
+ roles: UserRole[];
219
+ scopes: AuthScope[];
220
+ networkId: string;
221
+ metadata?: Record<string, any>;
222
+ }
223
+ /**
224
+ * User roles
225
+ */
226
+ export declare enum UserRole {
227
+ ADMIN = "admin",
228
+ AGENT = "agent",
229
+ OBSERVER = "observer",
230
+ LEARNER = "learner"
231
+ }
232
+ /**
233
+ * Authorization scopes
234
+ */
235
+ export type AuthScope = 'episodes:read' | 'episodes:write' | 'episodes:delete' | 'skills:read' | 'skills:write' | 'skills:delete' | 'edges:read' | 'edges:write' | 'edges:delete' | 'experiments:read' | 'experiments:write' | 'reconciliation:request';
236
+ /**
237
+ * Node registration data
238
+ */
239
+ export interface NodeRegistration {
240
+ nodeId: string;
241
+ certificate: string;
242
+ publicKey: string;
243
+ networkId: string;
244
+ registeredAt: number;
245
+ expiresAt: number;
246
+ }
247
+ /**
248
+ * Network topology types
249
+ */
250
+ export declare enum NetworkTopology {
251
+ HUB_AND_SPOKE = "hub_and_spoke",
252
+ MESH = "mesh",
253
+ HIERARCHICAL = "hierarchical"
254
+ }
255
+ /**
256
+ * Conflict resolution strategies
257
+ */
258
+ export declare enum ConflictResolutionStrategy {
259
+ AUTO = "auto",// Automatic resolution using configured algorithms
260
+ MANUAL = "manual",// Flag conflicts for manual resolution
261
+ INTERACTIVE = "interactive"
262
+ }
263
+ /**
264
+ * Sync mode
265
+ */
266
+ export declare enum SyncMode {
267
+ INCREMENTAL = "incremental",
268
+ FULL = "full",
269
+ HYBRID = "hybrid"
270
+ }
271
+ /**
272
+ * Server configuration
273
+ */
274
+ export interface ServerConfig {
275
+ port: number;
276
+ host: string;
277
+ maxConnections: number;
278
+ maxStreamsPerConnection: number;
279
+ tlsCertPath: string;
280
+ tlsKeyPath: string;
281
+ caCertPath: string;
282
+ jwtSecret: string;
283
+ jwtExpirationMs: number;
284
+ changelogRetentionDays: number;
285
+ changelogMaxRecords: number;
286
+ reconciliationIntervalMs: number;
287
+ batchSize: number;
288
+ compressionThreshold: number;
289
+ maxMemoryPerConnection: number;
290
+ topology: NetworkTopology;
291
+ networkId: string;
292
+ }
293
+ /**
294
+ * Client configuration
295
+ */
296
+ export interface ClientConfig {
297
+ nodeId: string;
298
+ serverUrl: string;
299
+ clientCertPath: string;
300
+ clientKeyPath: string;
301
+ caCertPath: string;
302
+ jwt: string;
303
+ mode: SyncMode;
304
+ incrementalIntervalMs: number;
305
+ fullReconciliationIntervalMs: number;
306
+ autoSync: boolean;
307
+ conflictResolutionStrategy: ConflictResolutionStrategy;
308
+ batchSize: number;
309
+ compressionThreshold: number;
310
+ retryMaxAttempts: number;
311
+ retryBackoffMs: number;
312
+ }
313
+ /**
314
+ * Server status
315
+ */
316
+ export interface ServerStatus {
317
+ uptime: number;
318
+ activeConnections: number;
319
+ totalConnectionsHandled: number;
320
+ activeStreams: number;
321
+ changelogSize: number;
322
+ lastReconciliation: number;
323
+ avgSyncLatencyMs: number;
324
+ throughputBytesPerSec: number;
325
+ conflictsPerMinute: number;
326
+ cpuUsagePercent: number;
327
+ memoryUsageBytes: number;
328
+ diskUsageBytes: number;
329
+ }
330
+ /**
331
+ * Client status
332
+ */
333
+ export interface ClientStatus {
334
+ connected: boolean;
335
+ nodeId: string;
336
+ serverUrl: string;
337
+ lastSyncTimestamp: number;
338
+ nextSyncScheduled: number;
339
+ episodesSynced: number;
340
+ skillsSynced: number;
341
+ edgesSynced: number;
342
+ conflictsEncountered: number;
343
+ conflictsAutoResolved: number;
344
+ connectionUptimeMs: number;
345
+ reconnectAttempts: number;
346
+ lastError?: string;
347
+ }
348
+ /**
349
+ * Sync result for a single operation
350
+ */
351
+ export interface SyncResult {
352
+ success: boolean;
353
+ duration: number;
354
+ episodesAdded: number;
355
+ episodesUpdated: number;
356
+ episodesDeleted: number;
357
+ skillsAdded: number;
358
+ skillsUpdated: number;
359
+ edgesAdded: number;
360
+ edgesUpdated: number;
361
+ conflictsTotal: number;
362
+ conflictsAutoResolved: number;
363
+ conflictsPending: number;
364
+ errors: SyncError[];
365
+ }
366
+ /**
367
+ * Sync error details
368
+ */
369
+ export interface SyncError {
370
+ code: string;
371
+ message: string;
372
+ dataType: ReconciliableDataType;
373
+ recordId?: number;
374
+ timestamp: number;
375
+ retryable: boolean;
376
+ }
377
+ /**
378
+ * Type guard for episode sync
379
+ */
380
+ export declare function isEpisodeSync(payload: SyncPayload): payload is {
381
+ type: 'episode_sync';
382
+ data: EpisodeSync;
383
+ };
384
+ /**
385
+ * Type guard for skill sync
386
+ */
387
+ export declare function isSkillSync(payload: SyncPayload): payload is {
388
+ type: 'skill_sync';
389
+ data: SkillSync;
390
+ };
391
+ /**
392
+ * Type guard for causal edge sync
393
+ */
394
+ export declare function isCausalEdgeSync(payload: SyncPayload): payload is {
395
+ type: 'causal_edge_sync';
396
+ data: CausalEdgeSync;
397
+ };
398
+ /**
399
+ * Compare two vector clocks
400
+ */
401
+ export declare function compareVectorClocks(a: VectorClock, b: VectorClock): VectorClockComparison;
402
+ /**
403
+ * Merge two vector clocks (take max of each node)
404
+ */
405
+ export declare function mergeVectorClocks(a: VectorClock, b: VectorClock): VectorClock;
406
+ /**
407
+ * Increment vector clock for local node
408
+ */
409
+ export declare function incrementVectorClock(clock: VectorClock, nodeId: string): VectorClock;
410
+ /**
411
+ * Create empty vector clock
412
+ */
413
+ export declare function createVectorClock(): VectorClock;
414
+ /**
415
+ * Increment G-Counter for a node
416
+ */
417
+ export declare function incrementGCounter(counter: GCounter, nodeId: string, delta?: number): GCounter;
418
+ /**
419
+ * Get total value of G-Counter
420
+ */
421
+ export declare function getGCounterValue(counter: GCounter): number;
422
+ /**
423
+ * Merge two G-Counters (take max per node)
424
+ */
425
+ export declare function mergeGCounter(a: GCounter, b: GCounter): GCounter;
426
+ /**
427
+ * Update LWW-Register with new value
428
+ */
429
+ export declare function updateLWWRegister<T>(register: LWWRegister<T>, newValue: T, nodeId: string, timestamp?: number): LWWRegister<T>;
430
+ /**
431
+ * Merge two LWW-Registers (keep most recent)
432
+ */
433
+ export declare function mergeLWWRegister<T>(a: LWWRegister<T>, b: LWWRegister<T>): LWWRegister<T>;
434
+ /**
435
+ * Add element to OR-Set
436
+ */
437
+ export declare function addToORSet<T>(set: ORSet<T>, element: T, uniqueTag: string): ORSet<T>;
438
+ /**
439
+ * Remove element from OR-Set
440
+ */
441
+ export declare function removeFromORSet<T>(set: ORSet<T>, element: T): ORSet<T>;
442
+ /**
443
+ * Get current elements in OR-Set
444
+ */
445
+ export declare function getORSetElements<T>(set: ORSet<T>): Set<T>;
446
+ /**
447
+ * Merge two OR-Sets
448
+ */
449
+ export declare function mergeORSet<T>(a: ORSet<T>, b: ORSet<T>): ORSet<T>;
450
+ /**
451
+ * Weighted average for numeric conflict resolution
452
+ */
453
+ export declare function weightedAverage(v1: number, w1: number, v2: number, w2: number): number;
454
+ /**
455
+ * Determine authorization for operation
456
+ */
457
+ export declare function isAuthorized(jwt: JWTClaims, requiredScope: AuthScope): boolean;
458
+ /**
459
+ * Check if JWT is expired
460
+ */
461
+ export declare function isJWTExpired(jwt: JWTClaims): boolean;
462
+ /**
463
+ * Generate unique tag for OR-Set operations
464
+ */
465
+ export declare function generateUniqueTag(nodeId: string, timestamp?: number): string;
466
+ /**
467
+ * Events emitted by sync client
468
+ */
469
+ export type SyncEvent = {
470
+ type: 'sync_started';
471
+ timestamp: number;
472
+ } | {
473
+ type: 'sync_completed';
474
+ result: SyncResult;
475
+ } | {
476
+ type: 'sync_failed';
477
+ error: SyncError;
478
+ } | {
479
+ type: 'conflict_detected';
480
+ conflict: ConflictData;
481
+ } | {
482
+ type: 'conflict_resolved';
483
+ conflict: ConflictData;
484
+ resolution: any;
485
+ } | {
486
+ type: 'connection_established';
487
+ nodeId: string;
488
+ serverUrl: string;
489
+ } | {
490
+ type: 'connection_lost';
491
+ reason: string;
492
+ } | {
493
+ type: 'reconnecting';
494
+ attempt: number;
495
+ } | {
496
+ type: 'reconciliation_started';
497
+ requestId: string;
498
+ } | {
499
+ type: 'reconciliation_completed';
500
+ report: ReconciliationReport;
501
+ };
502
+ /**
503
+ * Conflict data for manual resolution
504
+ */
505
+ export interface ConflictData {
506
+ dataType: ReconciliableDataType;
507
+ recordId: number;
508
+ localVersion: any;
509
+ remoteVersion: any;
510
+ localVectorClock: VectorClock;
511
+ remoteVectorClock: VectorClock;
512
+ detectedAt: number;
513
+ }
514
+ /**
515
+ * Event handler type
516
+ */
517
+ export type SyncEventHandler = (event: SyncEvent) => void;
518
+ //# sourceMappingURL=quic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quic.d.ts","sourceRoot":"","sources":["../../src/types/quic.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAC7B,QAAQ,GACR,OAAO,GACP,YAAY,GACZ,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,WAAW,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,IAAI,EAAE,yBAAyB,CAAA;CAAE,GACnE;IAAE,IAAI,EAAE,yBAAyB,CAAC;IAAC,IAAI,EAAE,0BAA0B,CAAA;CAAE,CAAC;AAM1E;;GAEG;AACH,oBAAY,oBAAoB;IAC9B,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,oBAAoB,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,eAAe,CAAC;IAC7B,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,UAAU,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,WAAW,EAAE,WAAW,CAAC;CAC1B;AAMD;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,KAAK,EAAE,CAAC,CAAC;IACT,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,KAAK,CAAC,CAAC;IACtB,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1B,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAG9B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAMD;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IAGpD,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,OAAO,EAAE,WAAW,CAAC;IACrB,gBAAgB,EAAE,0BAA0B,CAAC;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAMD;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,aAAa,CAAC;AAEpF;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,WAAW,CAAC;IAC1B,SAAS,EAAE,qBAAqB,EAAE,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,kBAAkB,EAAE,WAAW,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,WAAW,CAAC;KAC1B,CAAC;IACF,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,WAAW,CAAC;KAC1B,CAAC;IACF,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,WAAW,CAAC;KAC1B,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAMD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GACjB,eAAe,GACf,gBAAgB,GAChB,iBAAiB,GACjB,aAAa,GACb,cAAc,GACd,eAAe,GACf,YAAY,GACZ,aAAa,GACb,cAAc,GACd,kBAAkB,GAClB,mBAAmB,GACnB,wBAAwB,CAAC;AAE7B;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD;;GAEG;AACH,oBAAY,eAAe;IACzB,aAAa,kBAAkB;IAC/B,IAAI,SAAS;IACb,YAAY,iBAAiB;CAC9B;AAED;;GAEG;AACH,oBAAY,0BAA0B;IACpC,IAAI,SAAS,CAAW,mDAAmD;IAC3E,MAAM,WAAW,CAAO,uCAAuC;IAC/D,WAAW,gBAAgB;CAC5B;AAED;;GAEG;AACH,oBAAY,QAAQ;IAClB,WAAW,gBAAgB;IAC3B,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,uBAAuB,EAAE,MAAM,CAAC;IAGhC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IAGxB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,wBAAwB,EAAE,MAAM,CAAC;IAGjC,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sBAAsB,EAAE,MAAM,CAAC;IAG/B,QAAQ,EAAE,eAAe,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAGlB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IAGZ,IAAI,EAAE,QAAQ,CAAC;IACf,qBAAqB,EAAE,MAAM,CAAC;IAC9B,4BAA4B,EAAE,MAAM,CAAC;IACrC,QAAQ,EAAE,OAAO,CAAC;IAGlB,0BAA0B,EAAE,0BAA0B,CAAC;IAGvD,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;CACxB;AAMD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uBAAuB,EAAE,MAAM,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAG3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kBAAkB,EAAE,MAAM,CAAC;IAG3B,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAG1B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAG9B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IAGjB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IAGrB,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IAGzB,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,qBAAqB,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,IAAI;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,CAE1G;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,IAAI;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,CAEpG;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,IAAI;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,CAEpH;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,qBAAqB,CAkBzF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW,CAS7E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAKpF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,WAAW,CAE/C;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,QAAQ,CAKhG;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,QAAQ,GAAG,MAAM,CAE1D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAShE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,EACxB,QAAQ,EAAE,CAAC,EACX,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,MAAmB,GAC7B,WAAW,CAAC,CAAC,CAAC,CAMhB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAOxF;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAQpF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAQtE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAczD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAyBhE;AAMD;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAGtF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,GAAG,OAAO,CAE9E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAEpD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,GAAE,MAAmB,GAAG,MAAM,CAExF;AAMD;;GAEG;AACH,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,GAAG,CAAA;CAAE,GACtE;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACrE;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,0BAA0B,CAAC;IAAC,MAAM,EAAE,oBAAoB,CAAA;CAAE,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,qBAAqB,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,GAAG,CAAC;IAClB,aAAa,EAAE,GAAG,CAAC;IACnB,gBAAgB,EAAE,WAAW,CAAC;IAC9B,iBAAiB,EAAE,WAAW,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC"}