sub-agents-mcp 0.5.2 → 0.5.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 (35) hide show
  1. package/README.md +12 -0
  2. package/dist/index.js +0 -0
  3. package/package.json +1 -1
  4. package/dist/execution/ExecutionLimits.d.ts +0 -141
  5. package/dist/execution/ExecutionLimits.d.ts.map +0 -1
  6. package/dist/execution/ExecutionLimits.js +0 -231
  7. package/dist/execution/ExecutionLimits.js.map +0 -1
  8. package/dist/execution/McpRequestTimeout.d.ts +0 -166
  9. package/dist/execution/McpRequestTimeout.d.ts.map +0 -1
  10. package/dist/execution/McpRequestTimeout.js +0 -278
  11. package/dist/execution/McpRequestTimeout.js.map +0 -1
  12. package/dist/execution/PromptController.d.ts +0 -92
  13. package/dist/execution/PromptController.d.ts.map +0 -1
  14. package/dist/execution/PromptController.js +0 -130
  15. package/dist/execution/PromptController.js.map +0 -1
  16. package/dist/execution/TimeoutManager.d.ts +0 -159
  17. package/dist/execution/TimeoutManager.d.ts.map +0 -1
  18. package/dist/execution/TimeoutManager.js +0 -283
  19. package/dist/execution/TimeoutManager.js.map +0 -1
  20. package/dist/session/ToonConverter.d.ts +0 -172
  21. package/dist/session/ToonConverter.d.ts.map +0 -1
  22. package/dist/session/ToonConverter.js +0 -593
  23. package/dist/session/ToonConverter.js.map +0 -1
  24. package/dist/session/ToonUtils.d.ts +0 -23
  25. package/dist/session/ToonUtils.d.ts.map +0 -1
  26. package/dist/session/ToonUtils.js +0 -75
  27. package/dist/session/ToonUtils.js.map +0 -1
  28. package/dist/types/ServerConfig.d.ts +0 -39
  29. package/dist/types/ServerConfig.d.ts.map +0 -1
  30. package/dist/types/ServerConfig.js +0 -3
  31. package/dist/types/ServerConfig.js.map +0 -1
  32. package/dist/types/index.d.ts +0 -19
  33. package/dist/types/index.d.ts.map +0 -1
  34. package/dist/types/index.js +0 -3
  35. package/dist/types/index.js.map +0 -1
@@ -1,593 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ToonConverter = void 0;
4
- /**
5
- * TOON (Token Optimized Object Notation) converter utility.
6
- *
7
- * Converts JSON data to TOON format to reduce token consumption by 30-60%.
8
- *
9
- * Key optimizations:
10
- * - Shortened key names (sessionId → sid, timestamp → ts, etc.)
11
- * - Compact timestamp format (removes separators: 20250121 120000)
12
- * - Filters out empty strings and empty arrays
13
- * - Inline object representation {key:value,key2:value2}
14
- * - Array format [count,]{item1,item2}
15
- *
16
- * @example
17
- * ```typescript
18
- * const sessionData = {
19
- * sessionId: 'abc123',
20
- * agentType: 'rule-advisor',
21
- * history: [...],
22
- * createdAt: new Date('2025-01-21T12:00:00Z'),
23
- * lastUpdatedAt: new Date('2025-01-21T12:00:00Z')
24
- * }
25
- * const toonStr = ToonConverter.convertToToon(sessionData)
26
- * // Output: sid:abc123,agt:rule-advisor,h:[1,]{...},cat:20250121 120000,uat:20250121 120000
27
- * ```
28
- */
29
- // biome-ignore lint/complexity/noStaticOnlyClass: Intentional design for utility class with clear namespace
30
- class ToonConverter {
31
- /**
32
- * Converts JSON-compatible data to TOON format.
33
- *
34
- * TOON format features:
35
- * - Removes quotes from keys
36
- * - Uses compact array notation: [length,] { items }
37
- * - Reduces unnecessary brackets and commas
38
- * - Maintains data structure and readability
39
- *
40
- * @param jsonData - JSON-compatible data to convert
41
- * @returns TOON-formatted string
42
- *
43
- * @example
44
- * ```typescript
45
- * const data = { sessionId: 'abc123', agentType: 'rule-advisor' }
46
- * const toon = ToonConverter.convertToToon(data)
47
- * // Returns: "sessionId: abc123\nagentType: rule-advisor"
48
- * ```
49
- */
50
- static convertToToon(jsonData) {
51
- try {
52
- // Don't use JSON.parse/stringify to preserve Date objects
53
- return ToonConverter.toToonString(jsonData, 0);
54
- }
55
- catch (error) {
56
- // Fallback to JSON string on error
57
- console.error('TOON conversion failed, falling back to JSON:', error);
58
- try {
59
- return JSON.stringify(jsonData, null, 2);
60
- }
61
- catch {
62
- return String(jsonData);
63
- }
64
- }
65
- }
66
- /**
67
- * Recursively converts a value to TOON format string.
68
- *
69
- * @param value - Value to convert
70
- * @param depth - Current nesting depth for indentation
71
- * @returns TOON-formatted string
72
- * @private
73
- */
74
- static toToonString(value, depth) {
75
- // Handle null
76
- if (value === null) {
77
- return 'null';
78
- }
79
- // Handle undefined
80
- if (value === undefined) {
81
- return 'undefined';
82
- }
83
- // Handle primitives
84
- if (typeof value === 'string') {
85
- // Quote strings if they contain special characters or spaces
86
- if (ToonConverter.needsQuotes(value)) {
87
- return JSON.stringify(value);
88
- }
89
- return value;
90
- }
91
- if (typeof value === 'number' || typeof value === 'boolean') {
92
- return String(value);
93
- }
94
- // Handle Date objects (convert to compact timestamp format)
95
- if (value instanceof Date) {
96
- return ToonConverter.formatCompactTimestamp(value);
97
- }
98
- // Handle arrays
99
- if (Array.isArray(value)) {
100
- if (value.length === 0) {
101
- return '[0,]';
102
- }
103
- // For compact representation, join array items with comma
104
- const items = value.map((item) => ToonConverter.toToonObjectCompact(item)).join(',');
105
- return `[${value.length},]${items}`;
106
- }
107
- // Handle objects
108
- if (typeof value === 'object') {
109
- const entries = Object.entries(value);
110
- if (entries.length === 0) {
111
- return '{}';
112
- }
113
- const lines = entries
114
- .map(([key, val]) => {
115
- // Use short key if available
116
- const shortKey = ToonConverter.KEY_MAP[key] || key;
117
- const valueStr = ToonConverter.toToonString(val, depth);
118
- // Keep everything compact on same line for simple values
119
- return `${shortKey}:${valueStr}`;
120
- })
121
- .join(',');
122
- return lines;
123
- }
124
- // Fallback for unknown types
125
- return String(value);
126
- }
127
- /**
128
- * Converts an object to compact TOON format (for array items).
129
- *
130
- * @param value - Object to convert
131
- * @returns Compact TOON string
132
- * @private
133
- */
134
- static toToonObjectCompact(value) {
135
- if (value === null || value === undefined) {
136
- return String(value);
137
- }
138
- if (typeof value !== 'object') {
139
- return String(value);
140
- }
141
- if (value instanceof Date) {
142
- return ToonConverter.formatCompactTimestamp(value);
143
- }
144
- if (Array.isArray(value)) {
145
- return `[${value.length}]`;
146
- }
147
- // For objects, create a compact inline representation
148
- const entries = Object.entries(value);
149
- const pairs = entries
150
- .filter(([, v]) => {
151
- // Skip empty strings and empty arrays to reduce tokens
152
- if (v === '')
153
- return false;
154
- if (Array.isArray(v) && v.length === 0)
155
- return false;
156
- return true;
157
- })
158
- .map(([k, v]) => {
159
- // Use short key if available
160
- const shortKey = ToonConverter.KEY_MAP[k] || k;
161
- let valStr;
162
- if (v === null || v === undefined) {
163
- valStr = String(v);
164
- }
165
- else if (typeof v === 'string') {
166
- valStr = ToonConverter.needsQuotes(v) ? JSON.stringify(v) : v;
167
- }
168
- else if (typeof v === 'object') {
169
- if (v instanceof Date) {
170
- valStr = ToonConverter.formatCompactTimestamp(v);
171
- }
172
- else if (Array.isArray(v)) {
173
- valStr = `[${v.length}]`;
174
- }
175
- else {
176
- valStr = ToonConverter.toToonObjectCompact(v);
177
- }
178
- }
179
- else {
180
- valStr = String(v);
181
- }
182
- return `${shortKey}:${valStr}`;
183
- });
184
- return `{${pairs.join(',')}}`;
185
- }
186
- /**
187
- * Formats a Date object to compact timestamp format.
188
- *
189
- * Converts ISO 8601 timestamp to compact format:
190
- * - Input: 2025-01-21T12:00:00.000Z
191
- * - Output: 20250121 120000
192
- *
193
- * This reduces token count by removing separators and milliseconds.
194
- *
195
- * @param date - Date object to format
196
- * @returns Compact timestamp string
197
- * @private
198
- */
199
- static formatCompactTimestamp(date) {
200
- return date
201
- .toISOString()
202
- .replace(/\.\d{3}Z$/, '') // Remove milliseconds and Z
203
- .replace(/T/, ' ') // Replace T with space
204
- .replace(/-/g, '') // Remove hyphens
205
- .replace(/:/g, ''); // Remove colons
206
- }
207
- /**
208
- * Checks if a string value needs to be quoted in TOON format.
209
- *
210
- * Strings are quoted if they contain:
211
- * - Spaces
212
- * - Special characters (except hyphen and underscore)
213
- * - Start with a number
214
- * - Reserved keywords (null, undefined, true, false)
215
- *
216
- * @param value - String value to check
217
- * @returns True if the string needs quotes
218
- * @private
219
- */
220
- static needsQuotes(value) {
221
- // Empty strings need quotes
222
- if (value.length === 0) {
223
- return true;
224
- }
225
- // Reserved keywords need quotes
226
- const reserved = ['null', 'undefined', 'true', 'false'];
227
- if (reserved.includes(value)) {
228
- return true;
229
- }
230
- // Check for special characters, spaces, or newlines
231
- // Allow: alphanumeric, hyphen, underscore, forward slash, period, colon
232
- const needsQuotesPattern = /[^a-zA-Z0-9\-_/.:\u3000-\u9fff]/;
233
- return needsQuotesPattern.test(value);
234
- }
235
- /**
236
- * Converts TOON format string back to JSON-compatible data.
237
- *
238
- * This method reverses the convertToToon operation, restoring the original data structure.
239
- * - Expands short keys back to full keys
240
- * - Parses compact timestamps back to Date objects
241
- * - Reconstructs arrays and objects from TOON notation
242
- *
243
- * @param toonString - TOON-formatted string to convert
244
- * @returns JSON-compatible data
245
- *
246
- * @example
247
- * ```typescript
248
- * const toonStr = "sid:abc123,agt:rule-advisor,h:[1,]{ts:20250121 120000},cat:20250121 120000"
249
- * const data = ToonConverter.convertToJson(toonStr)
250
- * // Returns: { sessionId: 'abc123', agentType: 'rule-advisor', history: [...], ... }
251
- * ```
252
- */
253
- static convertToJson(toonString) {
254
- try {
255
- return ToonConverter.parseToonString(toonString);
256
- }
257
- catch (error) {
258
- // Fallback to JSON.parse on error
259
- console.error('TOON parsing failed, attempting JSON.parse:', error);
260
- try {
261
- return JSON.parse(toonString);
262
- }
263
- catch {
264
- throw new Error(`Failed to parse TOON string: ${error instanceof Error ? error.message : String(error)}`);
265
- }
266
- }
267
- }
268
- /**
269
- * Parses a TOON format string into a JSON-compatible value.
270
- *
271
- * @param input - TOON string to parse
272
- * @returns Parsed value
273
- * @private
274
- */
275
- static parseToonString(input) {
276
- const trimmed = input.trim();
277
- // Handle null
278
- if (trimmed === 'null') {
279
- return null;
280
- }
281
- // Handle undefined
282
- if (trimmed === 'undefined') {
283
- return undefined;
284
- }
285
- // Handle boolean
286
- if (trimmed === 'true') {
287
- return true;
288
- }
289
- if (trimmed === 'false') {
290
- return false;
291
- }
292
- // Handle number
293
- if (/^-?\d+(\.\d+)?$/.test(trimmed)) {
294
- return Number(trimmed);
295
- }
296
- // Handle compact timestamp (20250121 120000)
297
- if (/^\d{8} \d{6}$/.test(trimmed)) {
298
- return ToonConverter.parseCompactTimestamp(trimmed);
299
- }
300
- // Handle array notation [length,]items
301
- if (trimmed.startsWith('[') && trimmed.includes(',]')) {
302
- return ToonConverter.parseArray(trimmed);
303
- }
304
- // Handle explicit object notation with braces
305
- if (trimmed.startsWith('{') && trimmed.endsWith('}')) {
306
- return ToonConverter.parseObject(trimmed);
307
- }
308
- // Handle object notation (key:value pairs)
309
- if (trimmed.includes(':') && !trimmed.startsWith('"')) {
310
- return ToonConverter.parseObject(trimmed);
311
- }
312
- // Handle quoted strings
313
- if (trimmed.startsWith('"') && trimmed.endsWith('"')) {
314
- return JSON.parse(trimmed);
315
- }
316
- // Return as-is string
317
- return trimmed;
318
- }
319
- /**
320
- * Parses a compact timestamp string back to Date object.
321
- *
322
- * Converts compact format to ISO 8601:
323
- * - Input: 20250121 120000
324
- * - Output: Date('2025-01-21T12:00:00.000Z')
325
- *
326
- * @param timestamp - Compact timestamp string
327
- * @returns Date object
328
- * @private
329
- */
330
- static parseCompactTimestamp(timestamp) {
331
- const parts = timestamp.split(' ');
332
- if (parts.length !== 2 || !parts[0] || !parts[1]) {
333
- throw new Error(`Invalid compact timestamp format: ${timestamp}`);
334
- }
335
- const datePart = parts[0];
336
- const timePart = parts[1];
337
- const year = datePart.slice(0, 4);
338
- const month = datePart.slice(4, 6);
339
- const day = datePart.slice(6, 8);
340
- const hour = timePart.slice(0, 2);
341
- const minute = timePart.slice(2, 4);
342
- const second = timePart.slice(4, 6);
343
- return new Date(`${year}-${month}-${day}T${hour}:${minute}:${second}.000Z`);
344
- }
345
- /**
346
- * Parses TOON array notation.
347
- *
348
- * Format: [length,]item1,item2,item3
349
- * or [length,]{item1},{item2}
350
- *
351
- * @param input - TOON array string
352
- * @returns Parsed array
353
- * @private
354
- */
355
- static parseArray(input) {
356
- // Extract length from [length,]
357
- const lengthMatch = input.match(/^\[(\d+),\]/);
358
- if (!lengthMatch || !lengthMatch[1]) {
359
- return [];
360
- }
361
- const length = Number.parseInt(lengthMatch[1], 10);
362
- if (length === 0) {
363
- return [];
364
- }
365
- // Extract items after [length,]
366
- const itemsStr = input.slice(lengthMatch[0].length);
367
- if (itemsStr.length === 0) {
368
- return [];
369
- }
370
- // Parse items (handling nested objects and arrays)
371
- const items = [];
372
- let currentItem = '';
373
- let depth = 0;
374
- let inString = false;
375
- for (let i = 0; i < itemsStr.length; i++) {
376
- const char = itemsStr[i];
377
- if (char === '"' && (i === 0 || itemsStr[i - 1] !== '\\')) {
378
- inString = !inString;
379
- currentItem += char;
380
- continue;
381
- }
382
- if (inString) {
383
- currentItem += char;
384
- continue;
385
- }
386
- if (char === '{' || char === '[') {
387
- depth++;
388
- currentItem += char;
389
- }
390
- else if (char === '}' || char === ']') {
391
- depth--;
392
- currentItem += char;
393
- // When we complete a nested object/array at depth 0, treat it as end of item
394
- if (depth === 0 && (char === '}' || char === ']')) {
395
- if (currentItem.trim().length > 0) {
396
- items.push(ToonConverter.parseToonString(currentItem.trim()));
397
- currentItem = '';
398
- }
399
- }
400
- }
401
- else if (char === ',' && depth === 0) {
402
- if (currentItem.trim().length > 0) {
403
- items.push(ToonConverter.parseToonString(currentItem.trim()));
404
- }
405
- currentItem = '';
406
- }
407
- else {
408
- currentItem += char;
409
- }
410
- }
411
- // Add last item
412
- if (currentItem.trim().length > 0) {
413
- items.push(ToonConverter.parseToonString(currentItem.trim()));
414
- }
415
- return items;
416
- }
417
- /**
418
- * Parses TOON object notation.
419
- *
420
- * Format: key1:value1,key2:value2
421
- * or {key1:value1,key2:value2}
422
- *
423
- * @param input - TOON object string
424
- * @returns Parsed object
425
- * @private
426
- */
427
- static parseObject(input) {
428
- let objectStr = input.trim();
429
- // Remove outer braces if present
430
- if (objectStr.startsWith('{') && objectStr.endsWith('}')) {
431
- objectStr = objectStr.slice(1, -1);
432
- }
433
- const result = {};
434
- let currentPair = '';
435
- let depth = 0;
436
- let inString = false;
437
- let inArrayNotation = false; // Track if we're in array notation [N,]
438
- let arrayItemsRemaining = 0; // Number of array items to parse
439
- for (let i = 0; i < objectStr.length; i++) {
440
- const char = objectStr[i];
441
- if (char === '"' && (i === 0 || objectStr[i - 1] !== '\\')) {
442
- inString = !inString;
443
- currentPair += char;
444
- continue;
445
- }
446
- if (inString) {
447
- currentPair += char;
448
- continue;
449
- }
450
- if (char === '[') {
451
- // Check if this is array notation [N,]
452
- const remaining = objectStr.slice(i);
453
- const arrayMatch = remaining.match(/^\[(\d+),\]/);
454
- if (arrayMatch?.[1]) {
455
- inArrayNotation = true;
456
- arrayItemsRemaining = Number.parseInt(arrayMatch[1], 10);
457
- depth++; // Count the array as depth
458
- }
459
- else {
460
- depth++;
461
- }
462
- currentPair += char;
463
- }
464
- else if (char === ']') {
465
- currentPair += char;
466
- if (inArrayNotation && depth === 1) {
467
- // Don't decrease depth for the closing ] of [N,]
468
- inArrayNotation = false;
469
- // If the array is empty, reset depth to 0
470
- if (arrayItemsRemaining === 0) {
471
- depth = 0;
472
- }
473
- // Keep depth at 1 for non-empty arrays because we're still inside the array value
474
- }
475
- else {
476
- depth--;
477
- if (depth < 0) {
478
- break;
479
- }
480
- }
481
- }
482
- else if (char === '{') {
483
- if (arrayItemsRemaining > 0 && depth === 1) {
484
- // This is the start of an array item
485
- // Don't increment depth relative to array level
486
- }
487
- depth++;
488
- currentPair += char;
489
- }
490
- else if (char === '}') {
491
- depth--;
492
- currentPair += char;
493
- if (arrayItemsRemaining > 0 && depth === 1) {
494
- // Completed an array item
495
- arrayItemsRemaining--;
496
- if (arrayItemsRemaining === 0) {
497
- // Array is complete, reset depth
498
- depth = 0;
499
- }
500
- }
501
- if (depth < 0) {
502
- break;
503
- }
504
- }
505
- else if (char === ',' && depth === 0) {
506
- // Only treat as separator if we're at depth 0
507
- if (currentPair.trim().length > 0) {
508
- ToonConverter.parseKeyValue(currentPair.trim(), result);
509
- }
510
- currentPair = '';
511
- arrayItemsRemaining = 0; // Reset
512
- }
513
- else {
514
- currentPair += char;
515
- }
516
- }
517
- // Add last pair
518
- if (currentPair.trim().length > 0) {
519
- ToonConverter.parseKeyValue(currentPair.trim(), result);
520
- }
521
- return result;
522
- }
523
- /**
524
- * Parses a key:value pair and adds it to the result object.
525
- *
526
- * @param pair - Key:value pair string
527
- * @param result - Result object to add to
528
- * @private
529
- */
530
- static parseKeyValue(pair, result) {
531
- // Find the first colon that's not inside quotes or nested structures
532
- let colonIndex = -1;
533
- let inString = false;
534
- let depth = 0;
535
- for (let i = 0; i < pair.length; i++) {
536
- const char = pair[i];
537
- if (char === '"' && (i === 0 || pair[i - 1] !== '\\')) {
538
- inString = !inString;
539
- }
540
- else if (!inString) {
541
- if (char === '{' || char === '[') {
542
- depth++;
543
- }
544
- else if (char === '}' || char === ']') {
545
- depth--;
546
- }
547
- else if (char === ':' && depth === 0) {
548
- colonIndex = i;
549
- break;
550
- }
551
- }
552
- }
553
- if (colonIndex === -1) {
554
- return;
555
- }
556
- let key = pair.slice(0, colonIndex).trim();
557
- const valueStr = pair.slice(colonIndex + 1).trim();
558
- // Remove quotes from key if present (for JSON compatibility)
559
- if (key.startsWith('"') && key.endsWith('"')) {
560
- key = JSON.parse(key);
561
- }
562
- // Expand short key to full key
563
- const fullKey = ToonConverter.REVERSE_KEY_MAP[key] || key;
564
- // Parse value
565
- const value = ToonConverter.parseToonString(valueStr);
566
- result[fullKey] = value;
567
- }
568
- }
569
- exports.ToonConverter = ToonConverter;
570
- /**
571
- * Map of common long keys to short keys for token reduction.
572
- * @private
573
- */
574
- ToonConverter.KEY_MAP = {
575
- sessionId: 'sid',
576
- agentType: 'agt',
577
- timestamp: 'ts',
578
- request: 'req',
579
- response: 'res',
580
- createdAt: 'cat',
581
- lastUpdatedAt: 'uat',
582
- stdout: 'out',
583
- stderr: 'err',
584
- exitCode: 'ec',
585
- executionTime: 'et',
586
- history: 'h',
587
- };
588
- /**
589
- * Reverse map from short keys to original keys.
590
- * @private
591
- */
592
- ToonConverter.REVERSE_KEY_MAP = Object.fromEntries(Object.entries(ToonConverter.KEY_MAP).map(([long, short]) => [short, long]));
593
- //# sourceMappingURL=ToonConverter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ToonConverter.js","sourceRoot":"","sources":["../../src/session/ToonConverter.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,4GAA4G;AAC5G,MAAa,aAAa;IACxB;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CAAC,aAAa,CAAC,QAAiB;QACpC,IAAI,CAAC;YACH,0DAA0D;YAC1D,OAAO,aAAa,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,mCAAmC;YACnC,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,KAAK,CAAC,CAAA;YACrE,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;YAC1C,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAA;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAqBD;;;;;;;OAOG;IACK,MAAM,CAAC,YAAY,CAAC,KAAc,EAAE,KAAa;QACvD,cAAc;QACd,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,MAAM,CAAA;QACf,CAAC;QAED,mBAAmB;QACnB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,WAAW,CAAA;QACpB,CAAC;QAED,oBAAoB;QACpB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,6DAA6D;YAC7D,IAAI,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YAC9B,CAAC;YACD,OAAO,KAAK,CAAA;QACd,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YAC5D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;QACtB,CAAC;QAED,4DAA4D;QAC5D,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YAC1B,OAAO,aAAa,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAA;QACpD,CAAC;QAED,gBAAgB;QAChB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO,MAAM,CAAA;YACf,CAAC;YAED,0DAA0D;YAC1D,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACpF,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE,CAAA;QACrC,CAAC;QAED,iBAAiB;QACjB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,CAAA;YAEhE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,IAAI,CAAA;YACb,CAAC;YAED,MAAM,KAAK,GAAG,OAAO;iBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;gBAClB,6BAA6B;gBAC7B,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAA;gBAClD,MAAM,QAAQ,GAAG,aAAa,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;gBACvD,yDAAyD;gBACzD,OAAO,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAA;YAClC,CAAC,CAAC;iBACD,IAAI,CAAC,GAAG,CAAC,CAAA;YAEZ,OAAO,KAAK,CAAA;QACd,CAAC;QAED,6BAA6B;QAC7B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC;IAED;;;;;;OAMG;IACK,MAAM,CAAC,mBAAmB,CAAC,KAAc;QAC/C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;QACtB,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;QACtB,CAAC;QAED,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YAC1B,OAAO,aAAa,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAA;QACpD,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,IAAI,KAAK,CAAC,MAAM,GAAG,CAAA;QAC5B,CAAC;QAED,sDAAsD;QACtD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,CAAA;QAChE,MAAM,KAAK,GAAG,OAAO;aAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;YAChB,uDAAuD;YACvD,IAAI,CAAC,KAAK,EAAE;gBAAE,OAAO,KAAK,CAAA;YAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAA;YACpD,OAAO,IAAI,CAAA;QACb,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;YACd,6BAA6B;YAC7B,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YAC9C,IAAI,MAAc,CAAA;YAClB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBAClC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;YACpB,CAAC;iBAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACjC,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC/D,CAAC;iBAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACjC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;oBACtB,MAAM,GAAG,aAAa,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAA;gBAClD,CAAC;qBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5B,MAAM,GAAG,IAAI,CAAC,CAAC,MAAM,GAAG,CAAA;gBAC1B,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAA;gBAC/C,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;YACpB,CAAC;YACD,OAAO,GAAG,QAAQ,IAAI,MAAM,EAAE,CAAA;QAChC,CAAC,CAAC,CAAA;QAEJ,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;IAC/B,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,MAAM,CAAC,sBAAsB,CAAC,IAAU;QAC9C,OAAO,IAAI;aACR,WAAW,EAAE;aACb,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,4BAA4B;aACrD,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,uBAAuB;aACzC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,iBAAiB;aACnC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA,CAAC,gBAAgB;IACvC,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,MAAM,CAAC,WAAW,CAAC,KAAa;QACtC,4BAA4B;QAC5B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,gCAAgC;QAChC,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QACvD,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAA;QACb,CAAC;QAED,oDAAoD;QACpD,wEAAwE;QACxE,MAAM,kBAAkB,GAAG,iCAAiC,CAAA;QAC5D,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACvC,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAC,aAAa,CAAC,UAAkB;QACrC,IAAI,CAAC;YACH,OAAO,aAAa,CAAC,eAAe,CAAC,UAAU,CAAC,CAAA;QAClD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,kCAAkC;YAClC,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,KAAK,CAAC,CAAA;YACnE,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;YAC/B,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,IAAI,KAAK,CACb,gCAAgC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACzF,CAAA;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAUD;;;;;;OAMG;IACK,MAAM,CAAC,eAAe,CAAC,KAAa;QAC1C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;QAE5B,cAAc;QACd,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YACvB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,mBAAmB;QACnB,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,iBAAiB;QACjB,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YACvB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,OAAO,KAAK,CAAA;QACd,CAAC;QAED,gBAAgB;QAChB,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;QACxB,CAAC;QAED,6CAA6C;QAC7C,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,OAAO,aAAa,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAA;QACrD,CAAC;QAED,uCAAuC;QACvC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACtD,OAAO,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QAC1C,CAAC;QAED,8CAA8C;QAC9C,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACrD,OAAO,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAC3C,CAAC;QAED,2CAA2C;QAC3C,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACtD,OAAO,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAC3C,CAAC;QAED,wBAAwB;QACxB,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC5B,CAAC;QAED,sBAAsB;QACtB,OAAO,OAAO,CAAA;IAChB,CAAC;IAED;;;;;;;;;;OAUG;IACK,MAAM,CAAC,qBAAqB,CAAC,SAAiB;QACpD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAClC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,qCAAqC,SAAS,EAAE,CAAC,CAAA;QACnE,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACzB,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAClC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAChC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAEnC,OAAO,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,MAAM,IAAI,MAAM,OAAO,CAAC,CAAA;IAC7E,CAAC;IAED;;;;;;;;;OASG;IACK,MAAM,CAAC,UAAU,CAAC,KAAa;QACrC,gCAAgC;QAChC,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;QAC9C,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YACpC,OAAO,EAAE,CAAA;QACX,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAClD,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YACjB,OAAO,EAAE,CAAA;QACX,CAAC;QAED,gCAAgC;QAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;QACnD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAA;QACX,CAAC;QAED,mDAAmD;QACnD,MAAM,KAAK,GAAc,EAAE,CAAA;QAC3B,IAAI,WAAW,GAAG,EAAE,CAAA;QACpB,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,IAAI,QAAQ,GAAG,KAAK,CAAA;QAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;YAExB,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;gBAC1D,QAAQ,GAAG,CAAC,QAAQ,CAAA;gBACpB,WAAW,IAAI,IAAI,CAAA;gBACnB,SAAQ;YACV,CAAC;YAED,IAAI,QAAQ,EAAE,CAAC;gBACb,WAAW,IAAI,IAAI,CAAA;gBACnB,SAAQ;YACV,CAAC;YAED,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACjC,KAAK,EAAE,CAAA;gBACP,WAAW,IAAI,IAAI,CAAA;YACrB,CAAC;iBAAM,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACxC,KAAK,EAAE,CAAA;gBACP,WAAW,IAAI,IAAI,CAAA;gBACnB,6EAA6E;gBAC7E,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;oBAClD,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAClC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;wBAC7D,WAAW,GAAG,EAAE,CAAA;oBAClB,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,IAAI,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBACvC,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;gBAC/D,CAAC;gBACD,WAAW,GAAG,EAAE,CAAA;YAClB,CAAC;iBAAM,CAAC;gBACN,WAAW,IAAI,IAAI,CAAA;YACrB,CAAC;QACH,CAAC;QAED,gBAAgB;QAChB,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;QAC/D,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;;;;;;;OASG;IACK,MAAM,CAAC,WAAW,CAAC,KAAa;QACtC,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;QAE5B,iCAAiC;QACjC,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACzD,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACpC,CAAC;QAED,MAAM,MAAM,GAA4B,EAAE,CAAA;QAC1C,IAAI,WAAW,GAAG,EAAE,CAAA;QACpB,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,IAAI,QAAQ,GAAG,KAAK,CAAA;QACpB,IAAI,eAAe,GAAG,KAAK,CAAA,CAAC,wCAAwC;QACpE,IAAI,mBAAmB,GAAG,CAAC,CAAA,CAAC,iCAAiC;QAE7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;YAEzB,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;gBAC3D,QAAQ,GAAG,CAAC,QAAQ,CAAA;gBACpB,WAAW,IAAI,IAAI,CAAA;gBACnB,SAAQ;YACV,CAAC;YAED,IAAI,QAAQ,EAAE,CAAC;gBACb,WAAW,IAAI,IAAI,CAAA;gBACnB,SAAQ;YACV,CAAC;YAED,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACjB,uCAAuC;gBACvC,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBACpC,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;gBACjD,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpB,eAAe,GAAG,IAAI,CAAA;oBACtB,mBAAmB,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;oBACxD,KAAK,EAAE,CAAA,CAAC,2BAA2B;gBACrC,CAAC;qBAAM,CAAC;oBACN,KAAK,EAAE,CAAA;gBACT,CAAC;gBACD,WAAW,IAAI,IAAI,CAAA;YACrB,CAAC;iBAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACxB,WAAW,IAAI,IAAI,CAAA;gBACnB,IAAI,eAAe,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;oBACnC,iDAAiD;oBACjD,eAAe,GAAG,KAAK,CAAA;oBACvB,0CAA0C;oBAC1C,IAAI,mBAAmB,KAAK,CAAC,EAAE,CAAC;wBAC9B,KAAK,GAAG,CAAC,CAAA;oBACX,CAAC;oBACD,kFAAkF;gBACpF,CAAC;qBAAM,CAAC;oBACN,KAAK,EAAE,CAAA;oBACP,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;wBACd,MAAK;oBACP,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACxB,IAAI,mBAAmB,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;oBAC3C,qCAAqC;oBACrC,gDAAgD;gBAClD,CAAC;gBACD,KAAK,EAAE,CAAA;gBACP,WAAW,IAAI,IAAI,CAAA;YACrB,CAAC;iBAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACxB,KAAK,EAAE,CAAA;gBACP,WAAW,IAAI,IAAI,CAAA;gBACnB,IAAI,mBAAmB,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;oBAC3C,0BAA0B;oBAC1B,mBAAmB,EAAE,CAAA;oBACrB,IAAI,mBAAmB,KAAK,CAAC,EAAE,CAAC;wBAC9B,iCAAiC;wBACjC,KAAK,GAAG,CAAC,CAAA;oBACX,CAAC;gBACH,CAAC;gBACD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;oBACd,MAAK;gBACP,CAAC;YACH,CAAC;iBAAM,IAAI,IAAI,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBACvC,8CAA8C;gBAC9C,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClC,aAAa,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAA;gBACzD,CAAC;gBACD,WAAW,GAAG,EAAE,CAAA;gBAChB,mBAAmB,GAAG,CAAC,CAAA,CAAC,QAAQ;YAClC,CAAC;iBAAM,CAAC;gBACN,WAAW,IAAI,IAAI,CAAA;YACrB,CAAC;QACH,CAAC;QAED,gBAAgB;QAChB,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,aAAa,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAA;QACzD,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;;;OAMG;IACK,MAAM,CAAC,aAAa,CAAC,IAAY,EAAE,MAA+B;QACxE,qEAAqE;QACrE,IAAI,UAAU,GAAG,CAAC,CAAC,CAAA;QACnB,IAAI,QAAQ,GAAG,KAAK,CAAA;QACpB,IAAI,KAAK,GAAG,CAAC,CAAA;QAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YAEpB,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;gBACtD,QAAQ,GAAG,CAAC,QAAQ,CAAA;YACtB,CAAC;iBAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACrB,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;oBACjC,KAAK,EAAE,CAAA;gBACT,CAAC;qBAAM,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;oBACxC,KAAK,EAAE,CAAA;gBACT,CAAC;qBAAM,IAAI,IAAI,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;oBACvC,UAAU,GAAG,CAAC,CAAA;oBACd,MAAK;gBACP,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;YACtB,OAAM;QACR,CAAC;QAED,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,IAAI,EAAE,CAAA;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAElD,6DAA6D;QAC7D,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7C,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACvB,CAAC;QAED,+BAA+B;QAC/B,MAAM,OAAO,GAAG,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,GAAG,CAAA;QAEzD,cAAc;QACd,MAAM,KAAK,GAAG,aAAa,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;QAErD,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAA;IACzB,CAAC;;AA/lBH,sCAgmBC;AA7jBC;;;GAGG;AACqB,qBAAO,GAA2B;IACxD,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,KAAK;IAChB,aAAa,EAAE,KAAK;IACpB,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,QAAQ,EAAE,IAAI;IACd,aAAa,EAAE,IAAI;IACnB,OAAO,EAAE,GAAG;CACb,CAAA;AA4ND;;;GAGG;AACqB,6BAAe,GAA2B,MAAM,CAAC,WAAW,CAClF,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAC5E,CAAA"}
@@ -1,23 +0,0 @@
1
- /**
2
- * TOON format utilities for SessionData
3
- *
4
- * Provides type-safe encode/decode functions for SessionData with Date handling.
5
- */
6
- import type { SessionData } from '../types/SessionData';
7
- /**
8
- * Encodes SessionData to TOON format.
9
- *
10
- * @param sessionData - Session data to encode
11
- * @returns TOON-formatted string
12
- */
13
- export declare function encodeSessionData(sessionData: SessionData): string;
14
- /**
15
- * Decodes TOON format string to SessionData.
16
- *
17
- * Handles Date conversion from ISO strings to Date objects.
18
- *
19
- * @param toonString - TOON-formatted string
20
- * @returns Decoded SessionData with proper Date types
21
- */
22
- export declare function decodeSessionData(toonString: string): SessionData;
23
- //# sourceMappingURL=ToonUtils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ToonUtils.d.ts","sourceRoot":"","sources":["../../src/session/ToonUtils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAEvD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAElE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CAUjE"}