@egain/ai-agent-sdk 0.1.0

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 (164) hide show
  1. package/README.md +295 -0
  2. package/dist/browser.js +22739 -0
  3. package/dist/core/AiAgent.d.ts +1126 -0
  4. package/dist/core/AiAgent.d.ts.map +1 -0
  5. package/dist/core/AiAgent.js +2037 -0
  6. package/dist/core/AiAgent.js.map +1 -0
  7. package/dist/core/api/ApiHelper.d.ts +433 -0
  8. package/dist/core/api/ApiHelper.d.ts.map +1 -0
  9. package/dist/core/api/ApiHelper.js +689 -0
  10. package/dist/core/api/ApiHelper.js.map +1 -0
  11. package/dist/core/api/CacheAdapter.d.ts +295 -0
  12. package/dist/core/api/CacheAdapter.d.ts.map +1 -0
  13. package/dist/core/api/CacheAdapter.js +298 -0
  14. package/dist/core/api/CacheAdapter.js.map +1 -0
  15. package/dist/core/auth/AnonymousAuthStrategy.d.ts +87 -0
  16. package/dist/core/auth/AnonymousAuthStrategy.d.ts.map +1 -0
  17. package/dist/core/auth/AnonymousAuthStrategy.js +257 -0
  18. package/dist/core/auth/AnonymousAuthStrategy.js.map +1 -0
  19. package/dist/core/auth/AuthProvider.d.ts +13 -0
  20. package/dist/core/auth/AuthProvider.d.ts.map +1 -0
  21. package/dist/core/auth/AuthProvider.js +2 -0
  22. package/dist/core/auth/AuthProvider.js.map +1 -0
  23. package/dist/core/auth/AuthStrategy.d.ts +74 -0
  24. package/dist/core/auth/AuthStrategy.d.ts.map +1 -0
  25. package/dist/core/auth/AuthStrategy.js +2 -0
  26. package/dist/core/auth/AuthStrategy.js.map +1 -0
  27. package/dist/core/auth/AuthenticationService.d.ts +226 -0
  28. package/dist/core/auth/AuthenticationService.d.ts.map +1 -0
  29. package/dist/core/auth/AuthenticationService.js +344 -0
  30. package/dist/core/auth/AuthenticationService.js.map +1 -0
  31. package/dist/core/auth/ClientCredentialsAuthStrategy.d.ts +62 -0
  32. package/dist/core/auth/ClientCredentialsAuthStrategy.d.ts.map +1 -0
  33. package/dist/core/auth/ClientCredentialsAuthStrategy.js +78 -0
  34. package/dist/core/auth/ClientCredentialsAuthStrategy.js.map +1 -0
  35. package/dist/core/auth/PKCEAuthStrategy.d.ts +136 -0
  36. package/dist/core/auth/PKCEAuthStrategy.d.ts.map +1 -0
  37. package/dist/core/auth/PKCEAuthStrategy.js +409 -0
  38. package/dist/core/auth/PKCEAuthStrategy.js.map +1 -0
  39. package/dist/core/auth/PreAuthStrategy.d.ts +101 -0
  40. package/dist/core/auth/PreAuthStrategy.d.ts.map +1 -0
  41. package/dist/core/auth/PreAuthStrategy.js +216 -0
  42. package/dist/core/auth/PreAuthStrategy.js.map +1 -0
  43. package/dist/core/auth/msal-browser.js +19683 -0
  44. package/dist/core/auth/msal-loader.d.ts +14 -0
  45. package/dist/core/auth/msal-loader.d.ts.map +1 -0
  46. package/dist/core/auth/msal-loader.js +43 -0
  47. package/dist/core/auth/msal-loader.js.map +1 -0
  48. package/dist/core/connection/Connection.d.ts +168 -0
  49. package/dist/core/connection/Connection.d.ts.map +1 -0
  50. package/dist/core/connection/Connection.js +290 -0
  51. package/dist/core/connection/Connection.js.map +1 -0
  52. package/dist/core/connection/ConnectionState.d.ts +11 -0
  53. package/dist/core/connection/ConnectionState.d.ts.map +1 -0
  54. package/dist/core/connection/ConnectionState.js +12 -0
  55. package/dist/core/connection/ConnectionState.js.map +1 -0
  56. package/dist/core/connection/Transport.d.ts +98 -0
  57. package/dist/core/connection/Transport.d.ts.map +1 -0
  58. package/dist/core/connection/Transport.js +27 -0
  59. package/dist/core/connection/Transport.js.map +1 -0
  60. package/dist/core/connection/WebSocketTransport.d.ts +65 -0
  61. package/dist/core/connection/WebSocketTransport.d.ts.map +1 -0
  62. package/dist/core/connection/WebSocketTransport.js +177 -0
  63. package/dist/core/connection/WebSocketTransport.js.map +1 -0
  64. package/dist/core/errors/SDKError.d.ts +27 -0
  65. package/dist/core/errors/SDKError.d.ts.map +1 -0
  66. package/dist/core/errors/SDKError.js +43 -0
  67. package/dist/core/errors/SDKError.js.map +1 -0
  68. package/dist/core/events/EventEmitter.d.ts +120 -0
  69. package/dist/core/events/EventEmitter.d.ts.map +1 -0
  70. package/dist/core/events/EventEmitter.js +183 -0
  71. package/dist/core/events/EventEmitter.js.map +1 -0
  72. package/dist/core/logging/LogLevel.d.ts +33 -0
  73. package/dist/core/logging/LogLevel.d.ts.map +1 -0
  74. package/dist/core/logging/LogLevel.js +40 -0
  75. package/dist/core/logging/LogLevel.js.map +1 -0
  76. package/dist/core/logging/Logger.d.ts +120 -0
  77. package/dist/core/logging/Logger.d.ts.map +1 -0
  78. package/dist/core/logging/Logger.js +204 -0
  79. package/dist/core/logging/Logger.js.map +1 -0
  80. package/dist/core/logging/globalLogger.d.ts +8 -0
  81. package/dist/core/logging/globalLogger.d.ts.map +1 -0
  82. package/dist/core/logging/globalLogger.js +12 -0
  83. package/dist/core/logging/globalLogger.js.map +1 -0
  84. package/dist/core/logging/types.d.ts +45 -0
  85. package/dist/core/logging/types.d.ts.map +1 -0
  86. package/dist/core/logging/types.js +2 -0
  87. package/dist/core/logging/types.js.map +1 -0
  88. package/dist/core/message/BaseMessageHandler.d.ts +208 -0
  89. package/dist/core/message/BaseMessageHandler.d.ts.map +1 -0
  90. package/dist/core/message/BaseMessageHandler.js +155 -0
  91. package/dist/core/message/BaseMessageHandler.js.map +1 -0
  92. package/dist/core/message/Message.d.ts +69 -0
  93. package/dist/core/message/Message.d.ts.map +1 -0
  94. package/dist/core/message/Message.js +131 -0
  95. package/dist/core/message/Message.js.map +1 -0
  96. package/dist/core/message/MessageProcessor.d.ts +51 -0
  97. package/dist/core/message/MessageProcessor.d.ts.map +1 -0
  98. package/dist/core/message/MessageProcessor.js +123 -0
  99. package/dist/core/message/MessageProcessor.js.map +1 -0
  100. package/dist/core/message/MessageTypes.d.ts +123 -0
  101. package/dist/core/message/MessageTypes.d.ts.map +1 -0
  102. package/dist/core/message/MessageTypes.js +106 -0
  103. package/dist/core/message/MessageTypes.js.map +1 -0
  104. package/dist/core/message/Transcript.d.ts +373 -0
  105. package/dist/core/message/Transcript.d.ts.map +1 -0
  106. package/dist/core/message/Transcript.js +355 -0
  107. package/dist/core/message/Transcript.js.map +1 -0
  108. package/dist/core/message/handlers/AgentMessageHandler.d.ts +26 -0
  109. package/dist/core/message/handlers/AgentMessageHandler.d.ts.map +1 -0
  110. package/dist/core/message/handlers/AgentMessageHandler.js +130 -0
  111. package/dist/core/message/handlers/AgentMessageHandler.js.map +1 -0
  112. package/dist/core/message/handlers/ChatHistoryHandler.d.ts +12 -0
  113. package/dist/core/message/handlers/ChatHistoryHandler.d.ts.map +1 -0
  114. package/dist/core/message/handlers/ChatHistoryHandler.js +49 -0
  115. package/dist/core/message/handlers/ChatHistoryHandler.js.map +1 -0
  116. package/dist/core/message/handlers/ErrorMessageHandler.d.ts +12 -0
  117. package/dist/core/message/handlers/ErrorMessageHandler.d.ts.map +1 -0
  118. package/dist/core/message/handlers/ErrorMessageHandler.js +49 -0
  119. package/dist/core/message/handlers/ErrorMessageHandler.js.map +1 -0
  120. package/dist/core/message/handlers/HeartbeatHandler.d.ts +12 -0
  121. package/dist/core/message/handlers/HeartbeatHandler.d.ts.map +1 -0
  122. package/dist/core/message/handlers/HeartbeatHandler.js +46 -0
  123. package/dist/core/message/handlers/HeartbeatHandler.js.map +1 -0
  124. package/dist/core/message/handlers/TokenRefreshHandler.d.ts +30 -0
  125. package/dist/core/message/handlers/TokenRefreshHandler.d.ts.map +1 -0
  126. package/dist/core/message/handlers/TokenRefreshHandler.js +84 -0
  127. package/dist/core/message/handlers/TokenRefreshHandler.js.map +1 -0
  128. package/dist/core/message/types.d.ts +107 -0
  129. package/dist/core/message/types.d.ts.map +1 -0
  130. package/dist/core/message/types.js +30 -0
  131. package/dist/core/message/types.js.map +1 -0
  132. package/dist/core/platform/HookContract.d.ts +112 -0
  133. package/dist/core/platform/HookContract.d.ts.map +1 -0
  134. package/dist/core/platform/HookContract.js +13 -0
  135. package/dist/core/platform/HookContract.js.map +1 -0
  136. package/dist/core/platform/PlatformComponentService.d.ts +40 -0
  137. package/dist/core/platform/PlatformComponentService.d.ts.map +1 -0
  138. package/dist/core/platform/PlatformComponentService.js +12 -0
  139. package/dist/core/platform/PlatformComponentService.js.map +1 -0
  140. package/dist/core/platform/PlatformScriptLoader.d.ts +41 -0
  141. package/dist/core/platform/PlatformScriptLoader.d.ts.map +1 -0
  142. package/dist/core/platform/PlatformScriptLoader.js +110 -0
  143. package/dist/core/platform/PlatformScriptLoader.js.map +1 -0
  144. package/dist/core/polyfills.d.ts +16 -0
  145. package/dist/core/polyfills.d.ts.map +1 -0
  146. package/dist/core/polyfills.js +168 -0
  147. package/dist/core/polyfills.js.map +1 -0
  148. package/dist/core/portal-initializer/PortalInitializer.d.ts +234 -0
  149. package/dist/core/portal-initializer/PortalInitializer.d.ts.map +1 -0
  150. package/dist/core/portal-initializer/PortalInitializer.js +636 -0
  151. package/dist/core/portal-initializer/PortalInitializer.js.map +1 -0
  152. package/dist/core/queue/MessageQueue.d.ts +277 -0
  153. package/dist/core/queue/MessageQueue.d.ts.map +1 -0
  154. package/dist/core/queue/MessageQueue.js +291 -0
  155. package/dist/core/queue/MessageQueue.js.map +1 -0
  156. package/dist/core/types/PortalTypes.d.ts +51 -0
  157. package/dist/core/types/PortalTypes.d.ts.map +1 -0
  158. package/dist/core/types/PortalTypes.js +8 -0
  159. package/dist/core/types/PortalTypes.js.map +1 -0
  160. package/dist/index.d.ts +91 -0
  161. package/dist/index.d.ts.map +1 -0
  162. package/dist/index.js +82 -0
  163. package/dist/index.js.map +1 -0
  164. package/package.json +84 -0
@@ -0,0 +1,373 @@
1
+ /**
2
+ * # Transcript
3
+ *
4
+ * The Transcript feature automatically records all messages sent and received
5
+ * during a conversation, providing a complete history for display, debugging,
6
+ * or analytics.
7
+ *
8
+ * ## Overview
9
+ *
10
+ * Transcript is enabled by default and automatically captures:
11
+ * - Customer messages (sent)
12
+ * - Agent responses (received)
13
+ * - System messages
14
+ * - Context messages
15
+ *
16
+ * ## Quick Start
17
+ *
18
+ * Access the transcript through the agent instance:
19
+ *
20
+ * ```typescript
21
+ * // Get all transcript entries
22
+ * const entries = agent.getTranscript();
23
+ *
24
+ * // Get as JSON (for display or storage)
25
+ * const json = agent.getTranscriptAsJSON();
26
+ *
27
+ * // Get transcript size
28
+ * const count = agent.getTranscriptSize();
29
+ *
30
+ * // Clear transcript
31
+ * agent.clearTranscript();
32
+ * ```
33
+ *
34
+ * ## Configuration
35
+ *
36
+ * Configure transcript behavior when creating the agent:
37
+ *
38
+ * ```typescript
39
+ * const agent = new AiAgent({
40
+ * id: "agent-id",
41
+ * endpoint: "https://your-endpoint.com",
42
+ * transcriptConfig: {
43
+ * enabled: true, // Enable/disable transcript
44
+ * excludeRoles: ["heartbeat"], // Exclude heartbeat messages
45
+ * excludePersonas: ["system"] // Exclude system messages
46
+ * }
47
+ * });
48
+ * ```
49
+ *
50
+ * ## Filtering Entries
51
+ *
52
+ * Retrieve filtered transcript entries:
53
+ *
54
+ * ```typescript
55
+ * // Get only received messages
56
+ * const received = agent.getTranscript({ direction: 'received' });
57
+ *
58
+ * // Get messages from a specific time range
59
+ * const recent = agent.getTranscript({
60
+ * fromTimestamp: Date.now() - 3600000 // Last hour
61
+ * });
62
+ *
63
+ * // Get only agent messages
64
+ * const agentMessages = agent.getTranscript({ persona: 'agent' });
65
+ * ```
66
+ *
67
+ * ## Transcript Events
68
+ *
69
+ * Listen for transcript updates in real-time:
70
+ *
71
+ * ```typescript
72
+ * agent.on('transcriptUpdate', (event) => {
73
+ * const { entry } = event.payload;
74
+ * console.log(`${entry.direction}: ${entry.message.content}`);
75
+ * });
76
+ * ```
77
+ *
78
+ * ## Use Cases
79
+ *
80
+ * - **Chat UI**: Display conversation history
81
+ * - **Analytics**: Track conversation patterns
82
+ * - **Debugging**: Review message flow
83
+ * - **Persistence**: Save conversations to database
84
+ *
85
+ * @module Transcript
86
+ * @category Features
87
+ */
88
+ import { Message } from './Message.js';
89
+ import { Persona, Role } from './types.js';
90
+ /**
91
+ * Transcript entry containing a message with metadata.
92
+ *
93
+ * Each entry represents a single message in the conversation
94
+ * with direction and timing information.
95
+ *
96
+ * @example
97
+ * ```typescript
98
+ * const entry: TranscriptEntry = {
99
+ * message: message,
100
+ * direction: 'received',
101
+ * timestamp: Date.now(),
102
+ * sessionId: 'session-123',
103
+ * agentId: 'agent-456'
104
+ * };
105
+ * ```
106
+ *
107
+ * @category Features
108
+ * @group Transcript
109
+ */
110
+ export interface TranscriptEntry {
111
+ /** The message object */
112
+ message: Message;
113
+ /** Whether the message was sent or received */
114
+ direction: 'sent' | 'received';
115
+ /** Timestamp when the message was recorded */
116
+ timestamp: number;
117
+ /** Session ID associated with this message */
118
+ sessionId?: string | number;
119
+ /** Agent ID associated with this message */
120
+ agentId?: string | number;
121
+ }
122
+ /**
123
+ * Configuration for transcript storage and filtering.
124
+ *
125
+ * Use this to control which messages are recorded in the transcript.
126
+ *
127
+ * @example
128
+ * ```typescript
129
+ * const config: TranscriptConfig = {
130
+ * enabled: true,
131
+ * excludeRoles: ['heartbeat', 'token'],
132
+ * excludePersonas: ['system']
133
+ * };
134
+ * ```
135
+ *
136
+ * @category Features
137
+ * @group Transcript
138
+ */
139
+ export interface TranscriptConfig {
140
+ /**
141
+ * Enable or disable transcript storage.
142
+ * When disabled, no messages are recorded.
143
+ * @default true
144
+ */
145
+ enabled?: boolean;
146
+ /**
147
+ * Array of message types to include.
148
+ * If specified, only these message types are recorded.
149
+ * If not specified, all message types are included (subject to exclude filters).
150
+ *
151
+ * @example ['agent_message', 'customer_message']
152
+ */
153
+ includeMessageTypes?: string[];
154
+ /**
155
+ * Array of roles to exclude from the transcript.
156
+ * Messages with these roles will not be recorded.
157
+ *
158
+ * @example ['heartbeat', 'token']
159
+ */
160
+ excludeRoles?: string[];
161
+ /**
162
+ * Array of personas to exclude from the transcript.
163
+ * Messages from these personas will not be recorded.
164
+ *
165
+ * @example ['system']
166
+ */
167
+ excludePersonas?: string[];
168
+ }
169
+ /**
170
+ * Options for filtering transcript entries when retrieving.
171
+ *
172
+ * @example
173
+ * ```typescript
174
+ * // Get received messages from the last hour
175
+ * const options: TranscriptOptions = {
176
+ * direction: 'received',
177
+ * fromTimestamp: Date.now() - 3600000
178
+ * };
179
+ * const entries = transcript.getEntries(options);
180
+ * ```
181
+ *
182
+ * @category Features
183
+ * @group Transcript
184
+ */
185
+ export interface TranscriptOptions {
186
+ /**
187
+ * Filter entries from this timestamp onwards (inclusive)
188
+ */
189
+ fromTimestamp?: number;
190
+ /**
191
+ * Filter entries up to this timestamp (inclusive)
192
+ */
193
+ toTimestamp?: number;
194
+ /**
195
+ * Filter by direction: 'sent', 'received', or 'both'
196
+ */
197
+ direction?: 'sent' | 'received' | 'both';
198
+ /**
199
+ * Filter by message persona (e.g., 'agent', 'customer')
200
+ */
201
+ persona?: Persona;
202
+ /**
203
+ * Filter by message role (e.g., 'human', 'context')
204
+ */
205
+ role?: Role;
206
+ }
207
+ /**
208
+ * Transcript storage class for managing conversation history.
209
+ *
210
+ * The Transcript class provides a complete record of all messages
211
+ * exchanged during a conversation. It supports filtering, JSON export,
212
+ * and real-time updates.
213
+ *
214
+ * @example Basic usage
215
+ * ```typescript
216
+ * const transcript = new Transcript();
217
+ *
218
+ * // Add a message
219
+ * transcript.add(message, 'sent', sessionId, agentId);
220
+ *
221
+ * // Get all entries
222
+ * const entries = transcript.getEntries();
223
+ *
224
+ * // Get as JSON for storage
225
+ * const json = transcript.getEntriesAsJSON();
226
+ *
227
+ * // Get entry count
228
+ * console.log(`${transcript.size()} messages`);
229
+ *
230
+ * // Clear all entries
231
+ * transcript.clear();
232
+ * ```
233
+ *
234
+ * @example With configuration
235
+ * ```typescript
236
+ * const transcript = new Transcript({
237
+ * enabled: true,
238
+ * excludeRoles: ['heartbeat'], // Don't record heartbeats
239
+ * });
240
+ * ```
241
+ *
242
+ * @example Filtering entries
243
+ * ```typescript
244
+ * // Get only agent responses
245
+ * const agentResponses = transcript.getEntries({
246
+ * direction: 'received',
247
+ * persona: 'agent'
248
+ * });
249
+ *
250
+ * // Get messages from the last 5 minutes
251
+ * const recentMessages = transcript.getEntries({
252
+ * fromTimestamp: Date.now() - 300000
253
+ * });
254
+ * ```
255
+ *
256
+ * @category Features
257
+ * @group Transcript
258
+ */
259
+ export declare class Transcript {
260
+ private entries;
261
+ private config;
262
+ /**
263
+ * Create a new Transcript instance
264
+ * @param config - Optional configuration for filtering
265
+ */
266
+ constructor(config?: TranscriptConfig);
267
+ /**
268
+ * Add a message to the transcript.
269
+ *
270
+ * Messages are automatically filtered based on configuration.
271
+ * If the transcript is disabled or the message matches an exclude filter,
272
+ * it will not be recorded.
273
+ *
274
+ * @param message - The message to add
275
+ * @param direction - Whether the message was 'sent' or 'received'
276
+ * @param sessionId - Optional session ID for context
277
+ * @param agentId - Optional agent ID for context
278
+ *
279
+ * @example
280
+ * ```typescript
281
+ * transcript.add(
282
+ * new Message('customer', 'human', 'Hello!'),
283
+ * 'sent',
284
+ * 'session-123',
285
+ * 'agent-456'
286
+ * );
287
+ * ```
288
+ */
289
+ add(message: Message, direction: 'sent' | 'received', sessionId?: string | number, agentId?: string | number): void;
290
+ /**
291
+ * Get transcript entries, optionally filtered.
292
+ *
293
+ * @param options - Optional filtering options
294
+ * @returns Array of transcript entries matching the filter
295
+ *
296
+ * @example
297
+ * ```typescript
298
+ * // Get all entries
299
+ * const all = transcript.getEntries();
300
+ *
301
+ * // Get only sent messages
302
+ * const sent = transcript.getEntries({ direction: 'sent' });
303
+ *
304
+ * // Get messages from last hour
305
+ * const recent = transcript.getEntries({
306
+ * fromTimestamp: Date.now() - 3600000
307
+ * });
308
+ * ```
309
+ */
310
+ getEntries(options?: TranscriptOptions): TranscriptEntry[];
311
+ /**
312
+ * Get transcript entries as plain JSON-serializable objects.
313
+ *
314
+ * Useful for storing transcripts in databases, sending to APIs,
315
+ * or displaying in UI components.
316
+ *
317
+ * @param options - Optional filtering options
318
+ * @returns Array of plain objects representing transcript entries
319
+ *
320
+ * @example
321
+ * ```typescript
322
+ * const json = transcript.getEntriesAsJSON();
323
+ *
324
+ * // Each entry includes:
325
+ * // {
326
+ * // messageId, persona, role, content, messageData,
327
+ * // timestamp, from, to, agentId, sessionId,
328
+ * // direction, entryTimestamp
329
+ * // }
330
+ *
331
+ * // Save to database
332
+ * await db.saveTranscript(json);
333
+ * ```
334
+ */
335
+ getEntriesAsJSON(options?: TranscriptOptions): any[];
336
+ /**
337
+ * Get the number of entries in the transcript.
338
+ * @returns Number of recorded messages
339
+ */
340
+ size(): number;
341
+ /**
342
+ * Clear all transcript entries.
343
+ *
344
+ * This removes all recorded messages. Use with caution as
345
+ * this action cannot be undone.
346
+ */
347
+ clear(): void;
348
+ /**
349
+ * Check if a message should be included based on configuration filters
350
+ * @param message - The message to check
351
+ * @returns True if message should be included
352
+ */
353
+ private shouldInclude;
354
+ /**
355
+ * Update transcript configuration at runtime.
356
+ *
357
+ * @param config - New configuration options (partial update)
358
+ *
359
+ * @example
360
+ * ```typescript
361
+ * // Disable transcript temporarily
362
+ * transcript.updateConfig({ enabled: false });
363
+ *
364
+ * // Re-enable with new exclusions
365
+ * transcript.updateConfig({
366
+ * enabled: true,
367
+ * excludeRoles: ['heartbeat', 'token']
368
+ * });
369
+ * ```
370
+ */
371
+ updateConfig(config: Partial<TranscriptConfig>): void;
372
+ }
373
+ //# sourceMappingURL=Transcript.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Transcript.d.ts","sourceRoot":"","sources":["../../../src/core/message/Transcript.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsFG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,eAAe;IAC9B,yBAAyB;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,+CAA+C;IAC/C,SAAS,EAAE,MAAM,GAAG,UAAU,CAAC;IAC/B,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE/B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;IAEzC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,MAAM,CAA6B;IAE3C;;;OAGG;gBACS,MAAM,GAAE,gBAAqB;IASzC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,GAAG,CACD,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,GAAG,UAAU,EAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAC3B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GACxB,IAAI;IAqBP;;;;;;;;;;;;;;;;;;;OAmBG;IACH,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,eAAe,EAAE;IA+B1D;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,gBAAgB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,GAAG,EAAE;IAkBpD;;;OAGG;IACH,IAAI,IAAI,MAAM;IAId;;;;;OAKG;IACH,KAAK,IAAI,IAAI;IAIb;;;;OAIG;IACH,OAAO,CAAC,aAAa;IA2BrB;;;;;;;;;;;;;;;;OAgBG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI;CActD"}