digital-workers 2.0.2 → 2.1.3

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 (69) hide show
  1. package/.turbo/turbo-build.log +4 -5
  2. package/CHANGELOG.md +31 -0
  3. package/LICENSE +21 -0
  4. package/README.md +134 -180
  5. package/dist/actions.d.ts.map +1 -1
  6. package/dist/actions.js +1 -0
  7. package/dist/actions.js.map +1 -1
  8. package/dist/agent-comms.d.ts +438 -0
  9. package/dist/agent-comms.d.ts.map +1 -0
  10. package/dist/agent-comms.js +666 -0
  11. package/dist/agent-comms.js.map +1 -0
  12. package/dist/capability-tiers.d.ts +230 -0
  13. package/dist/capability-tiers.d.ts.map +1 -0
  14. package/dist/capability-tiers.js +388 -0
  15. package/dist/capability-tiers.js.map +1 -0
  16. package/dist/cascade-context.d.ts +523 -0
  17. package/dist/cascade-context.d.ts.map +1 -0
  18. package/dist/cascade-context.js +494 -0
  19. package/dist/cascade-context.js.map +1 -0
  20. package/dist/error-escalation.d.ts +416 -0
  21. package/dist/error-escalation.d.ts.map +1 -0
  22. package/dist/error-escalation.js +656 -0
  23. package/dist/error-escalation.js.map +1 -0
  24. package/dist/index.d.ts +10 -0
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +34 -0
  27. package/dist/index.js.map +1 -1
  28. package/dist/load-balancing.d.ts +395 -0
  29. package/dist/load-balancing.d.ts.map +1 -0
  30. package/dist/load-balancing.js +905 -0
  31. package/dist/load-balancing.js.map +1 -0
  32. package/dist/types.d.ts +8 -0
  33. package/dist/types.d.ts.map +1 -1
  34. package/dist/types.js +1 -0
  35. package/dist/types.js.map +1 -1
  36. package/package.json +14 -14
  37. package/src/actions.js +436 -0
  38. package/src/actions.ts +9 -8
  39. package/src/agent-comms.ts +1238 -0
  40. package/src/approve.js +234 -0
  41. package/src/ask.js +226 -0
  42. package/src/capability-tiers.ts +545 -0
  43. package/src/cascade-context.ts +648 -0
  44. package/src/decide.js +244 -0
  45. package/src/do.js +227 -0
  46. package/src/error-escalation.ts +1135 -0
  47. package/src/generate.js +298 -0
  48. package/src/goals.js +205 -0
  49. package/src/index.js +68 -0
  50. package/src/index.ts +223 -0
  51. package/src/is.js +317 -0
  52. package/src/kpis.js +270 -0
  53. package/src/load-balancing.ts +1381 -0
  54. package/src/notify.js +219 -0
  55. package/src/role.js +110 -0
  56. package/src/team.js +130 -0
  57. package/src/transports.js +357 -0
  58. package/src/types.js +71 -0
  59. package/src/types.ts +8 -0
  60. package/test/actions.test.js +401 -0
  61. package/test/agent-comms.test.ts +1397 -0
  62. package/test/capability-tiers.test.ts +631 -0
  63. package/test/cascade-context.test.ts +692 -0
  64. package/test/error-escalation.test.ts +1205 -0
  65. package/test/load-balancing-thread-safety.test.ts +464 -0
  66. package/test/load-balancing.test.ts +1145 -0
  67. package/test/standalone.test.js +250 -0
  68. package/test/types.test.js +371 -0
  69. package/test/types.test.ts +35 -0
@@ -0,0 +1,438 @@
1
+ /**
2
+ * Agent-to-Agent Communication Layer
3
+ *
4
+ * Provides structured messaging, coordination patterns, and handoff protocols
5
+ * for communication between agents in the digital-workers system.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ import type { Worker, WorkerRef } from './types.js';
10
+ /**
11
+ * Message type for agent-to-agent communication
12
+ */
13
+ export type MessageType = 'request' | 'response' | 'notification' | 'handoff' | 'ack' | 'error';
14
+ /**
15
+ * Message priority levels
16
+ */
17
+ export type MessagePriority = 'low' | 'normal' | 'high' | 'urgent';
18
+ /**
19
+ * Agent message for inter-agent communication
20
+ */
21
+ export interface AgentMessage<T = unknown> {
22
+ /** Unique message identifier */
23
+ id: string;
24
+ /** Message type */
25
+ type: MessageType;
26
+ /** Sender agent ID */
27
+ sender: string;
28
+ /** Recipient agent ID */
29
+ recipient: string;
30
+ /** Message payload */
31
+ payload: T;
32
+ /** Message timestamp */
33
+ timestamp: Date;
34
+ /** Correlation ID for request/response pairing */
35
+ correlationId?: string;
36
+ /** Reply-to agent ID */
37
+ replyTo?: string;
38
+ /** Time-to-live in milliseconds */
39
+ ttl?: number;
40
+ /** Message priority */
41
+ priority?: MessagePriority;
42
+ /** Additional metadata */
43
+ metadata?: Record<string, unknown>;
44
+ }
45
+ /**
46
+ * Message delivery status
47
+ */
48
+ export type DeliveryStatus = 'pending' | 'delivered' | 'acknowledged' | 'failed' | 'expired';
49
+ /**
50
+ * Message envelope with delivery metadata
51
+ */
52
+ export interface MessageEnvelope<T = unknown> {
53
+ /** The wrapped message */
54
+ message: AgentMessage<T>;
55
+ /** Number of delivery attempts */
56
+ deliveryAttempts: number;
57
+ /** Timestamp of first delivery attempt */
58
+ firstAttemptAt: Date;
59
+ /** Timestamp of last delivery attempt */
60
+ lastAttemptAt: Date;
61
+ /** Current delivery status */
62
+ status: DeliveryStatus;
63
+ /** Error message if failed */
64
+ error?: string;
65
+ }
66
+ /**
67
+ * Message acknowledgment
68
+ */
69
+ export interface MessageAck {
70
+ /** ID of acknowledged message */
71
+ messageId: string;
72
+ /** Acknowledgment status */
73
+ status: 'received' | 'processed' | 'failed';
74
+ /** Acknowledgment timestamp */
75
+ timestamp: Date;
76
+ /** Acknowledging agent ID */
77
+ agentId: string;
78
+ /** Processing result (for 'processed' status) */
79
+ result?: unknown;
80
+ /** Error details (for 'failed' status) */
81
+ error?: string;
82
+ }
83
+ /**
84
+ * Handoff request for transferring work between agents
85
+ */
86
+ export interface HandoffRequest {
87
+ /** Unique handoff identifier */
88
+ id: string;
89
+ /** Source agent ID */
90
+ fromAgent: string;
91
+ /** Target agent ID */
92
+ toAgent: string;
93
+ /** Context to transfer */
94
+ context: Record<string, unknown>;
95
+ /** Reason for handoff */
96
+ reason?: string;
97
+ /** Handoff priority */
98
+ priority?: MessagePriority;
99
+ /** Request timestamp */
100
+ timestamp: Date;
101
+ /** Timeout in milliseconds */
102
+ timeout?: number;
103
+ /** Previous handoff attempt ID (for retries) */
104
+ previousAttempt?: string;
105
+ /** Callback on timeout */
106
+ onTimeout?: (msg: AgentMessage) => void;
107
+ }
108
+ /**
109
+ * Handoff status
110
+ */
111
+ export type HandoffStatus = 'pending' | 'accepted' | 'rejected' | 'completed' | 'expired' | 'failed';
112
+ /**
113
+ * Handoff result
114
+ */
115
+ export interface HandoffResult {
116
+ /** Handoff ID */
117
+ handoffId: string;
118
+ /** Current status */
119
+ status: HandoffStatus;
120
+ /** Result data (for completed handoffs) */
121
+ result?: unknown;
122
+ /** Rejection reason */
123
+ reason?: string;
124
+ /** Completed timestamp */
125
+ completedAt?: Date;
126
+ }
127
+ /**
128
+ * Coordination pattern types
129
+ */
130
+ export type CoordinationPattern = 'request-response' | 'fan-out' | 'fan-in' | 'pipeline' | 'publish-subscribe';
131
+ /**
132
+ * Message handler function type
133
+ */
134
+ export type MessageHandler<T = unknown> = (message: AgentMessage<T>) => void | Promise<void>;
135
+ /**
136
+ * Subscription options
137
+ */
138
+ export interface SubscribeOptions {
139
+ /** Filter by message types */
140
+ types?: MessageType[];
141
+ /** Filter by sender */
142
+ from?: string;
143
+ }
144
+ /**
145
+ * Message bus configuration options
146
+ */
147
+ export interface MessageBusOptions {
148
+ /** Enable message persistence */
149
+ persistence?: boolean;
150
+ /** Default message TTL in milliseconds */
151
+ defaultTtl?: number;
152
+ /** Maximum queue size per agent */
153
+ maxQueueSize?: number;
154
+ }
155
+ /**
156
+ * Agent message bus for routing messages between agents
157
+ */
158
+ export declare class AgentMessageBus {
159
+ private subscriptions;
160
+ private pendingAcks;
161
+ private messageStatus;
162
+ private handoffs;
163
+ private storedMessages;
164
+ private messageQueue;
165
+ private processingAgent;
166
+ private disposed;
167
+ private options;
168
+ constructor(options?: MessageBusOptions);
169
+ /**
170
+ * Send a message to an agent
171
+ */
172
+ send<T>(message: AgentMessage<T>): Promise<MessageEnvelope<T>>;
173
+ /**
174
+ * Deliver message to subscribers with queue handling
175
+ */
176
+ private deliverMessage;
177
+ /**
178
+ * Process queued messages
179
+ */
180
+ private processQueue;
181
+ /**
182
+ * Check if message matches subscription filter
183
+ */
184
+ private matchesFilter;
185
+ /**
186
+ * Subscribe to messages for an agent
187
+ */
188
+ subscribe(agentId: string, handler: MessageHandler, options?: SubscribeOptions): () => void;
189
+ /**
190
+ * Acknowledge a message
191
+ */
192
+ acknowledge(messageId: string, agentId: string, status: 'received' | 'processed' | 'failed'): Promise<void>;
193
+ /**
194
+ * Get pending acknowledgments for a sender
195
+ */
196
+ getPendingAcks(senderId: string): string[];
197
+ /**
198
+ * Get message delivery status
199
+ */
200
+ getMessageStatus(messageId: string): DeliveryStatus | undefined;
201
+ /**
202
+ * Get handoff status
203
+ */
204
+ getHandoffStatus(handoffId: string): HandoffStatus | undefined;
205
+ /**
206
+ * Get handoff history (previous attempts)
207
+ */
208
+ getHandoffHistory(handoffId: string): string[];
209
+ /**
210
+ * Register a handoff
211
+ */
212
+ registerHandoff(request: HandoffRequest, originalMessage?: AgentMessage): void;
213
+ /**
214
+ * Get handoff request info
215
+ */
216
+ getHandoffRequest(handoffId: string): HandoffRequest | undefined;
217
+ /**
218
+ * Update handoff status
219
+ */
220
+ updateHandoffStatus(handoffId: string, status: HandoffStatus): void;
221
+ /**
222
+ * Get stored messages (for persistence)
223
+ */
224
+ getStoredMessages(): MessageEnvelope[];
225
+ /**
226
+ * Get message history for an agent
227
+ */
228
+ getMessageHistory(agentId: string, options?: {
229
+ limit?: number;
230
+ from?: Date;
231
+ to?: Date;
232
+ }): MessageEnvelope[];
233
+ /**
234
+ * Clear old messages
235
+ */
236
+ clearMessages(options?: {
237
+ olderThan?: Date;
238
+ }): void;
239
+ /**
240
+ * Dispose the message bus
241
+ */
242
+ dispose(): void;
243
+ /**
244
+ * Create a failed envelope
245
+ */
246
+ private createFailedEnvelope;
247
+ }
248
+ /**
249
+ * Create a new message bus instance
250
+ */
251
+ export declare function createMessageBus(options?: MessageBusOptions): AgentMessageBus;
252
+ /**
253
+ * Message send options
254
+ */
255
+ export interface SendOptions {
256
+ /** Message priority */
257
+ priority?: MessagePriority;
258
+ /** Time-to-live in milliseconds */
259
+ ttl?: number;
260
+ /** Correlation ID for request/response pairing */
261
+ correlationId?: string;
262
+ /** Additional metadata */
263
+ metadata?: Record<string, unknown>;
264
+ }
265
+ /**
266
+ * Send a message to a specific agent
267
+ */
268
+ export declare function sendToAgent<T>(bus: AgentMessageBus, sender: Worker | WorkerRef | string, recipient: Worker | WorkerRef | string, payload: T, options?: SendOptions): Promise<MessageEnvelope<T>>;
269
+ /**
270
+ * Broadcast a message to multiple agents
271
+ */
272
+ export declare function broadcastToGroup<T>(bus: AgentMessageBus, sender: Worker | WorkerRef | string, recipients: (Worker | WorkerRef | string)[], payload: T, options?: SendOptions): Promise<MessageEnvelope<T>[]>;
273
+ /**
274
+ * Request options
275
+ */
276
+ export interface RequestOptions extends SendOptions {
277
+ /** Request timeout in milliseconds */
278
+ timeout?: number;
279
+ }
280
+ /**
281
+ * Send a request to an agent and await response
282
+ */
283
+ export declare function requestFromAgent<TReq, TRes>(bus: AgentMessageBus, sender: Worker | WorkerRef | string, recipient: Worker | WorkerRef | string, payload: TReq, options?: RequestOptions): Promise<AgentMessage<TRes>>;
284
+ /**
285
+ * On-message handler options
286
+ */
287
+ export interface OnMessageOptions {
288
+ /** Filter by sender */
289
+ from?: string;
290
+ /** Filter by message types */
291
+ types?: MessageType[];
292
+ }
293
+ /**
294
+ * Register a message handler for an agent
295
+ */
296
+ export declare function onMessage<T = unknown>(bus: AgentMessageBus, agentId: string, handler: MessageHandler<T>, options?: OnMessageOptions): () => void;
297
+ /**
298
+ * Send an acknowledgment for a received message
299
+ */
300
+ export declare function acknowledge(bus: AgentMessageBus, message: AgentMessage, status: 'received' | 'processed', result?: unknown): Promise<void>;
301
+ /**
302
+ * Request-response pattern options
303
+ */
304
+ export interface RequestResponseOptions<T> {
305
+ /** Requesting agent */
306
+ from: Worker | WorkerRef | string;
307
+ /** Target agent */
308
+ to: Worker | WorkerRef | string;
309
+ /** Request payload */
310
+ payload: T;
311
+ /** Timeout in milliseconds */
312
+ timeout?: number;
313
+ /** Message priority */
314
+ priority?: MessagePriority;
315
+ }
316
+ /**
317
+ * Execute request-response pattern
318
+ */
319
+ export declare function requestResponse<TReq, TRes>(bus: AgentMessageBus, options: RequestResponseOptions<TReq>): Promise<AgentMessage<TRes>>;
320
+ /**
321
+ * Fan-out pattern options
322
+ */
323
+ export interface FanOutOptions<T> {
324
+ /** Coordinating agent */
325
+ from: Worker | WorkerRef | string;
326
+ /** Target agents */
327
+ to: (Worker | WorkerRef | string)[];
328
+ /** Payload to distribute */
329
+ payload: T;
330
+ /** Timeout per agent */
331
+ timeout?: number;
332
+ /** Continue even if some agents fail */
333
+ continueOnError?: boolean;
334
+ }
335
+ /**
336
+ * Fan-out response result
337
+ */
338
+ export interface FanOutResult<T> {
339
+ /** Target agent ID */
340
+ agentId: string;
341
+ /** Whether the request succeeded */
342
+ success: boolean;
343
+ /** Response payload if successful */
344
+ payload?: T;
345
+ /** Error if failed */
346
+ error?: string;
347
+ }
348
+ /**
349
+ * Execute fan-out pattern - distribute work to multiple agents
350
+ */
351
+ export declare function fanOut<TReq, TRes>(bus: AgentMessageBus, options: FanOutOptions<TReq>): Promise<FanOutResult<TRes>[]>;
352
+ /**
353
+ * Fan-in pattern options
354
+ */
355
+ export interface FanInOptions<T> {
356
+ /** Collecting agent */
357
+ collector: Worker | WorkerRef | string;
358
+ /** Source agents to collect from */
359
+ sources: (Worker | WorkerRef | string)[];
360
+ /** Timeout for all sources */
361
+ timeout?: number;
362
+ /** Handler to get data from each source */
363
+ onSourceMessage: (sourceId: string) => Promise<T>;
364
+ }
365
+ /**
366
+ * Execute fan-in pattern - collect responses from multiple agents
367
+ */
368
+ export declare function fanIn<T>(bus: AgentMessageBus, options: FanInOptions<T>): Promise<T[]>;
369
+ /**
370
+ * Pipeline pattern options
371
+ */
372
+ export interface PipelineOptions<T> {
373
+ /** Orchestrating agent */
374
+ initiator: Worker | WorkerRef | string;
375
+ /** Ordered list of pipeline stages (agent IDs) */
376
+ stages: (Worker | WorkerRef | string)[];
377
+ /** Initial input */
378
+ input: T;
379
+ /** Timeout per stage */
380
+ stageTimeout?: number;
381
+ }
382
+ /**
383
+ * Execute pipeline pattern - chain agents in sequence
384
+ */
385
+ export declare function pipeline<T>(bus: AgentMessageBus, options: PipelineOptions<T>): Promise<AgentMessage<T>>;
386
+ /**
387
+ * Initiate handoff options
388
+ */
389
+ export interface InitiateHandoffOptions {
390
+ /** Source agent */
391
+ fromAgent: Worker | WorkerRef | string;
392
+ /** Target agent */
393
+ toAgent: Worker | WorkerRef | string;
394
+ /** Context to transfer */
395
+ context: Record<string, unknown>;
396
+ /** Reason for handoff */
397
+ reason?: string;
398
+ /** Timeout in milliseconds */
399
+ timeout?: number;
400
+ /** Previous handoff attempt ID */
401
+ previousAttempt?: string;
402
+ /** Callback on timeout */
403
+ onTimeout?: (msg: AgentMessage) => void;
404
+ }
405
+ /**
406
+ * Initiate a handoff to another agent
407
+ */
408
+ export declare function initiateHandoff(bus: AgentMessageBus, options: InitiateHandoffOptions): Promise<{
409
+ handoffId: string;
410
+ status: HandoffStatus;
411
+ }>;
412
+ /**
413
+ * Accept a pending handoff
414
+ */
415
+ export declare function acceptHandoff(bus: AgentMessageBus, handoffId: string, agentId: string): Promise<HandoffResult>;
416
+ /**
417
+ * Reject handoff options
418
+ */
419
+ export interface RejectHandoffOptions {
420
+ /** Reason for rejection */
421
+ reason?: string;
422
+ }
423
+ /**
424
+ * Reject a pending handoff
425
+ */
426
+ export declare function rejectHandoff(bus: AgentMessageBus, handoffId: string, agentId: string, options?: RejectHandoffOptions): Promise<HandoffResult>;
427
+ /**
428
+ * Complete handoff options
429
+ */
430
+ export interface CompleteHandoffOptions {
431
+ /** Result of the handoff work */
432
+ result?: unknown;
433
+ }
434
+ /**
435
+ * Complete a handoff (mark work as done)
436
+ */
437
+ export declare function completeHandoff(bus: AgentMessageBus, handoffId: string, agentId: string, options?: CompleteHandoffOptions): Promise<HandoffResult>;
438
+ //# sourceMappingURL=agent-comms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-comms.d.ts","sourceRoot":"","sources":["../src/agent-comms.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAMnD;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,UAAU,GACV,cAAc,GACd,SAAS,GACT,KAAK,GACL,OAAO,CAAA;AAEX;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAA;AAElE;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,OAAO;IACvC,gCAAgC;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,mBAAmB;IACnB,IAAI,EAAE,WAAW,CAAA;IACjB,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,sBAAsB;IACtB,OAAO,EAAE,CAAC,CAAA;IACV,wBAAwB;IACxB,SAAS,EAAE,IAAI,CAAA;IACf,kDAAkD;IAClD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,mCAAmC;IACnC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,uBAAuB;IACvB,QAAQ,CAAC,EAAE,eAAe,CAAA;IAC1B,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,WAAW,GACX,cAAc,GACd,QAAQ,GACR,SAAS,CAAA;AAEb;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,OAAO;IAC1C,0BAA0B;IAC1B,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;IACxB,kCAAkC;IAClC,gBAAgB,EAAE,MAAM,CAAA;IACxB,0CAA0C;IAC1C,cAAc,EAAE,IAAI,CAAA;IACpB,yCAAyC;IACzC,aAAa,EAAE,IAAI,CAAA;IACnB,8BAA8B;IAC9B,MAAM,EAAE,cAAc,CAAA;IACtB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,4BAA4B;IAC5B,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAA;IAC3C,+BAA+B;IAC/B,SAAS,EAAE,IAAI,CAAA;IACf,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,iDAAiD;IACjD,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,gCAAgC;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,sBAAsB;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,uBAAuB;IACvB,QAAQ,CAAC,EAAE,eAAe,CAAA;IAC1B,wBAAwB;IACxB,SAAS,EAAE,IAAI,CAAA;IACf,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAA;CACxC;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,UAAU,GACV,UAAU,GACV,WAAW,GACX,SAAS,GACT,QAAQ,CAAA;AAEZ;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,qBAAqB;IACrB,MAAM,EAAE,aAAa,CAAA;IACrB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,0BAA0B;IAC1B,WAAW,CAAC,EAAE,IAAI,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAC3B,kBAAkB,GAClB,SAAS,GACT,QAAQ,GACR,UAAU,GACV,mBAAmB,CAAA;AAMvB;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,OAAO,IAAI,CACxC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,KACrB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAEzB;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,8BAA8B;IAC9B,KAAK,CAAC,EAAE,WAAW,EAAE,CAAA;IACrB,uBAAuB;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAMD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,iCAAiC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mCAAmC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AA6BD;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,eAAe,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,OAAO,CAA6B;gBAEhC,OAAO,GAAE,iBAAsB;IAQ3C;;OAEG;IACG,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAyDpE;;OAEG;YACW,cAAc;IA4B5B;;OAEG;YACW,YAAY;IAU1B;;OAEG;IACH,OAAO,CAAC,aAAa;IAOrB;;OAEG;IACH,SAAS,CACP,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,gBAAgB,GACzB,MAAM,IAAI;IAgBb;;OAEG;IACG,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,QAAQ,GAC1C,OAAO,CAAC,IAAI,CAAC;IAchB;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAK1C;;OAEG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAI/D;;OAEG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAI9D;;OAEG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAI9C;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,eAAe,CAAC,EAAE,YAAY,GAAG,IAAI;IAmC9E;;OAEG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAIhE;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI;IAYnE;;OAEG;IACH,iBAAiB,IAAI,eAAe,EAAE;IAItC;;OAEG;IACH,iBAAiB,CACf,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,IAAI,CAAC;QAAC,EAAE,CAAC,EAAE,IAAI,CAAA;KAAE,GACnD,eAAe,EAAE;IA0BpB;;OAEG;IACH,aAAa,CAAC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,IAAI,CAAA;KAAE,GAAG,IAAI;IAUnD;;OAEG;IACH,OAAO,IAAI,IAAI;IAiBf;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAa7B;AAMD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,eAAe,CAE7E;AAuCD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,uBAAuB;IACvB,QAAQ,CAAC,EAAE,eAAe,CAAA;IAC1B,mCAAmC;IACnC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,kDAAkD;IAClD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EACnC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EACtC,OAAO,EAAE,CAAC,EACV,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAe7B;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EACtC,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EACnC,UAAU,EAAE,CAAC,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,EAAE,EAC3C,OAAO,EAAE,CAAC,EACV,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAa/B;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAC/C,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EACnC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EACtC,OAAO,EAAE,IAAI,EACb,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CA2D7B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uBAAuB;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,8BAA8B;IAC9B,KAAK,CAAC,EAAE,WAAW,EAAE,CAAA;CACtB;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,CAAC,GAAG,OAAO,EACnC,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,EAC1B,OAAO,CAAC,EAAE,gBAAgB,GACzB,MAAM,IAAI,CAKZ;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,UAAU,GAAG,WAAW,EAChC,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC,CAoBf;AAMD;;GAEG;AACH,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACvC,uBAAuB;IACvB,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAA;IACjC,mBAAmB;IACnB,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAA;IAC/B,sBAAsB;IACtB,OAAO,EAAE,CAAC,CAAA;IACV,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,eAAe,CAAA;CAC3B;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,IAAI,EAC9C,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,sBAAsB,CAAC,IAAI,CAAC,GACpC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAK7B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,yBAAyB;IACzB,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAA;IACjC,oBAAoB;IACpB,EAAE,EAAE,CAAC,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,EAAE,CAAA;IACnC,4BAA4B;IAC5B,OAAO,EAAE,CAAC,CAAA;IACV,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,wCAAwC;IACxC,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,oCAAoC;IACpC,OAAO,EAAE,OAAO,CAAA;IAChB,qCAAqC;IACrC,OAAO,CAAC,EAAE,CAAC,CAAA;IACX,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,IAAI,EACrC,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,GAC3B,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAsC/B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,uBAAuB;IACvB,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAA;IACtC,oCAAoC;IACpC,OAAO,EAAE,CAAC,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,EAAE,CAAA;IACxC,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,2CAA2C;IAC3C,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;CAClD;AAED;;GAEG;AACH,wBAAsB,KAAK,CAAC,CAAC,EAC3B,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GACvB,OAAO,CAAC,CAAC,EAAE,CAAC,CASd;AAED;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,0BAA0B;IAC1B,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAA;IACtC,kDAAkD;IAClD,MAAM,EAAE,CAAC,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,EAAE,CAAA;IACvC,oBAAoB;IACpB,KAAK,EAAE,CAAC,CAAA;IACR,wBAAwB;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,CAAC,EAC9B,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAC1B,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAoB1B;AAMD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,mBAAmB;IACnB,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAA;IACtC,mBAAmB;IACnB,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAA;IACpC,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,kCAAkC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAA;CACxC;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,CAAC,CAuCvD;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,eAAe,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,aAAa,CAAC,CAkCxB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,eAAe,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,aAAa,CAAC,CA+BxB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,iCAAiC;IACjC,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,eAAe,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,aAAa,CAAC,CAwCxB"}