@bubblelab/shared-schemas 0.1.8 → 0.1.9
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.
- package/dist/ai-models.d.ts +4 -0
- package/dist/ai-models.d.ts.map +1 -0
- package/dist/ai-models.js +20 -0
- package/dist/ai-models.js.map +1 -0
- package/dist/bubble-definition-schema.d.ts +127 -19
- package/dist/bubble-definition-schema.d.ts.map +1 -1
- package/dist/bubble-definition-schema.js +7 -0
- package/dist/bubble-definition-schema.js.map +1 -1
- package/dist/bubbleflow-execution-schema.d.ts +99 -47
- package/dist/bubbleflow-execution-schema.d.ts.map +1 -1
- package/dist/bubbleflow-schema.d.ts +388 -119
- package/dist/bubbleflow-schema.d.ts.map +1 -1
- package/dist/bubbleflow-schema.js +19 -0
- package/dist/bubbleflow-schema.js.map +1 -1
- package/dist/credential-schema.d.ts +46 -46
- package/dist/credential-schema.d.ts.map +1 -1
- package/dist/credential-schema.js +7 -0
- package/dist/credential-schema.js.map +1 -1
- package/dist/cron-utils.d.ts +47 -0
- package/dist/cron-utils.d.ts.map +1 -0
- package/dist/cron-utils.js +228 -0
- package/dist/cron-utils.js.map +1 -0
- package/dist/general-chat.d.ts +81 -0
- package/dist/general-chat.d.ts.map +1 -0
- package/dist/general-chat.js +58 -0
- package/dist/general-chat.js.map +1 -0
- package/dist/generate-bubbleflow-schema.d.ts +106 -54
- package/dist/generate-bubbleflow-schema.d.ts.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/milk-tea.d.ts +108 -0
- package/dist/milk-tea.d.ts.map +1 -0
- package/dist/milk-tea.js +74 -0
- package/dist/milk-tea.js.map +1 -0
- package/dist/pearl.d.ts +276 -0
- package/dist/pearl.d.ts.map +1 -0
- package/dist/pearl.js +75 -0
- package/dist/pearl.js.map +1 -0
- package/dist/streaming-events.d.ts +70 -0
- package/dist/streaming-events.d.ts.map +1 -1
- package/dist/types.d.ts +2 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -18,19 +18,47 @@ export declare const generateBubbleFlowCodeResponseSchema: z.ZodObject<{
|
|
|
18
18
|
bubbleName: z.ZodString;
|
|
19
19
|
className: z.ZodString;
|
|
20
20
|
parameters: z.ZodArray<z.ZodObject<{
|
|
21
|
+
location: z.ZodOptional<z.ZodObject<{
|
|
22
|
+
startLine: z.ZodNumber;
|
|
23
|
+
startCol: z.ZodNumber;
|
|
24
|
+
endLine: z.ZodNumber;
|
|
25
|
+
endCol: z.ZodNumber;
|
|
26
|
+
}, "strip", z.ZodTypeAny, {
|
|
27
|
+
startLine: number;
|
|
28
|
+
startCol: number;
|
|
29
|
+
endLine: number;
|
|
30
|
+
endCol: number;
|
|
31
|
+
}, {
|
|
32
|
+
startLine: number;
|
|
33
|
+
startCol: number;
|
|
34
|
+
endLine: number;
|
|
35
|
+
endCol: number;
|
|
36
|
+
}>>;
|
|
21
37
|
variableId: z.ZodOptional<z.ZodNumber>;
|
|
22
38
|
name: z.ZodString;
|
|
23
39
|
value: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodArray<z.ZodUnknown, "many">]>;
|
|
24
40
|
type: z.ZodNativeEnum<typeof BubbleParameterType>;
|
|
25
41
|
}, "strip", z.ZodTypeAny, {
|
|
26
|
-
name: string;
|
|
27
42
|
value: string | number | boolean | unknown[] | Record<string, unknown>;
|
|
28
43
|
type: BubbleParameterType;
|
|
44
|
+
name: string;
|
|
45
|
+
location?: {
|
|
46
|
+
startLine: number;
|
|
47
|
+
startCol: number;
|
|
48
|
+
endLine: number;
|
|
49
|
+
endCol: number;
|
|
50
|
+
} | undefined;
|
|
29
51
|
variableId?: number | undefined;
|
|
30
52
|
}, {
|
|
31
|
-
name: string;
|
|
32
53
|
value: string | number | boolean | unknown[] | Record<string, unknown>;
|
|
33
54
|
type: BubbleParameterType;
|
|
55
|
+
name: string;
|
|
56
|
+
location?: {
|
|
57
|
+
startLine: number;
|
|
58
|
+
startCol: number;
|
|
59
|
+
endLine: number;
|
|
60
|
+
endCol: number;
|
|
61
|
+
} | undefined;
|
|
34
62
|
variableId?: number | undefined;
|
|
35
63
|
}>, "many">;
|
|
36
64
|
hasAwait: z.ZodBoolean;
|
|
@@ -56,104 +84,128 @@ export declare const generateBubbleFlowCodeResponseSchema: z.ZodObject<{
|
|
|
56
84
|
endCol: number;
|
|
57
85
|
}>;
|
|
58
86
|
}, "strip", z.ZodTypeAny, {
|
|
87
|
+
location: {
|
|
88
|
+
startLine: number;
|
|
89
|
+
startCol: number;
|
|
90
|
+
endLine: number;
|
|
91
|
+
endCol: number;
|
|
92
|
+
};
|
|
59
93
|
variableId: number;
|
|
60
94
|
variableName: string;
|
|
61
95
|
bubbleName: string;
|
|
62
96
|
className: string;
|
|
63
97
|
parameters: {
|
|
64
|
-
name: string;
|
|
65
98
|
value: string | number | boolean | unknown[] | Record<string, unknown>;
|
|
66
99
|
type: BubbleParameterType;
|
|
100
|
+
name: string;
|
|
101
|
+
location?: {
|
|
102
|
+
startLine: number;
|
|
103
|
+
startCol: number;
|
|
104
|
+
endLine: number;
|
|
105
|
+
endCol: number;
|
|
106
|
+
} | undefined;
|
|
67
107
|
variableId?: number | undefined;
|
|
68
108
|
}[];
|
|
69
109
|
hasAwait: boolean;
|
|
70
110
|
hasActionCall: boolean;
|
|
71
111
|
nodeType: "unknown" | "service" | "tool" | "workflow";
|
|
112
|
+
dependencies?: import("./types").BubbleName[] | undefined;
|
|
113
|
+
dependencyGraph?: import("./bubble-definition-schema").DependencyGraphNode | undefined;
|
|
114
|
+
}, {
|
|
72
115
|
location: {
|
|
73
116
|
startLine: number;
|
|
74
117
|
startCol: number;
|
|
75
118
|
endLine: number;
|
|
76
119
|
endCol: number;
|
|
77
120
|
};
|
|
78
|
-
dependencies?: import("./types").BubbleName[] | undefined;
|
|
79
|
-
dependencyGraph?: import("./bubble-definition-schema").DependencyGraphNode | undefined;
|
|
80
|
-
}, {
|
|
81
121
|
variableId: number;
|
|
82
122
|
variableName: string;
|
|
83
123
|
bubbleName: string;
|
|
84
124
|
className: string;
|
|
85
125
|
parameters: {
|
|
86
|
-
name: string;
|
|
87
126
|
value: string | number | boolean | unknown[] | Record<string, unknown>;
|
|
88
127
|
type: BubbleParameterType;
|
|
128
|
+
name: string;
|
|
129
|
+
location?: {
|
|
130
|
+
startLine: number;
|
|
131
|
+
startCol: number;
|
|
132
|
+
endLine: number;
|
|
133
|
+
endCol: number;
|
|
134
|
+
} | undefined;
|
|
89
135
|
variableId?: number | undefined;
|
|
90
136
|
}[];
|
|
91
137
|
hasAwait: boolean;
|
|
92
138
|
hasActionCall: boolean;
|
|
93
139
|
nodeType: "unknown" | "service" | "tool" | "workflow";
|
|
94
|
-
location: {
|
|
95
|
-
startLine: number;
|
|
96
|
-
startCol: number;
|
|
97
|
-
endLine: number;
|
|
98
|
-
endCol: number;
|
|
99
|
-
};
|
|
100
140
|
dependencies?: import("./types").BubbleName[] | undefined;
|
|
101
141
|
dependencyGraph?: import("./bubble-definition-schema").DependencyGraphNode | undefined;
|
|
102
142
|
}>>;
|
|
103
143
|
requiredCredentials: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>;
|
|
104
144
|
}, "strip", z.ZodTypeAny, {
|
|
105
|
-
success: boolean;
|
|
106
145
|
error: string;
|
|
146
|
+
success: boolean;
|
|
107
147
|
requiredCredentials: Record<string, string[]>;
|
|
108
148
|
bubbleParameters: Record<string, {
|
|
149
|
+
location: {
|
|
150
|
+
startLine: number;
|
|
151
|
+
startCol: number;
|
|
152
|
+
endLine: number;
|
|
153
|
+
endCol: number;
|
|
154
|
+
};
|
|
109
155
|
variableId: number;
|
|
110
156
|
variableName: string;
|
|
111
157
|
bubbleName: string;
|
|
112
158
|
className: string;
|
|
113
159
|
parameters: {
|
|
114
|
-
name: string;
|
|
115
160
|
value: string | number | boolean | unknown[] | Record<string, unknown>;
|
|
116
161
|
type: BubbleParameterType;
|
|
162
|
+
name: string;
|
|
163
|
+
location?: {
|
|
164
|
+
startLine: number;
|
|
165
|
+
startCol: number;
|
|
166
|
+
endLine: number;
|
|
167
|
+
endCol: number;
|
|
168
|
+
} | undefined;
|
|
117
169
|
variableId?: number | undefined;
|
|
118
170
|
}[];
|
|
119
171
|
hasAwait: boolean;
|
|
120
172
|
hasActionCall: boolean;
|
|
121
173
|
nodeType: "unknown" | "service" | "tool" | "workflow";
|
|
122
|
-
location: {
|
|
123
|
-
startLine: number;
|
|
124
|
-
startCol: number;
|
|
125
|
-
endLine: number;
|
|
126
|
-
endCol: number;
|
|
127
|
-
};
|
|
128
174
|
dependencies?: import("./types").BubbleName[] | undefined;
|
|
129
175
|
dependencyGraph?: import("./bubble-definition-schema").DependencyGraphNode | undefined;
|
|
130
176
|
}>;
|
|
131
177
|
generatedCode: string;
|
|
132
178
|
isValid: boolean;
|
|
133
179
|
}, {
|
|
134
|
-
success: boolean;
|
|
135
180
|
error: string;
|
|
181
|
+
success: boolean;
|
|
136
182
|
requiredCredentials: Record<string, string[]>;
|
|
137
183
|
bubbleParameters: Record<string, {
|
|
184
|
+
location: {
|
|
185
|
+
startLine: number;
|
|
186
|
+
startCol: number;
|
|
187
|
+
endLine: number;
|
|
188
|
+
endCol: number;
|
|
189
|
+
};
|
|
138
190
|
variableId: number;
|
|
139
191
|
variableName: string;
|
|
140
192
|
bubbleName: string;
|
|
141
193
|
className: string;
|
|
142
194
|
parameters: {
|
|
143
|
-
name: string;
|
|
144
195
|
value: string | number | boolean | unknown[] | Record<string, unknown>;
|
|
145
196
|
type: BubbleParameterType;
|
|
197
|
+
name: string;
|
|
198
|
+
location?: {
|
|
199
|
+
startLine: number;
|
|
200
|
+
startCol: number;
|
|
201
|
+
endLine: number;
|
|
202
|
+
endCol: number;
|
|
203
|
+
} | undefined;
|
|
146
204
|
variableId?: number | undefined;
|
|
147
205
|
}[];
|
|
148
206
|
hasAwait: boolean;
|
|
149
207
|
hasActionCall: boolean;
|
|
150
208
|
nodeType: "unknown" | "service" | "tool" | "workflow";
|
|
151
|
-
location: {
|
|
152
|
-
startLine: number;
|
|
153
|
-
startCol: number;
|
|
154
|
-
endLine: number;
|
|
155
|
-
endCol: number;
|
|
156
|
-
};
|
|
157
209
|
dependencies?: import("./types").BubbleName[] | undefined;
|
|
158
210
|
dependencyGraph?: import("./bubble-definition-schema").DependencyGraphNode | undefined;
|
|
159
211
|
}>;
|
|
@@ -171,8 +223,8 @@ export declare const generateBubbleFlowTemplateSchema: z.ZodObject<{
|
|
|
171
223
|
includeExplanation: z.ZodOptional<z.ZodBoolean>;
|
|
172
224
|
maxQueries: z.ZodOptional<z.ZodNumber>;
|
|
173
225
|
}, "strip", z.ZodTypeAny, {
|
|
174
|
-
name: string;
|
|
175
226
|
description: string;
|
|
227
|
+
name: string;
|
|
176
228
|
roles: string;
|
|
177
229
|
useCase: "slack-data-scientist";
|
|
178
230
|
verbosity?: "1" | "2" | "3" | "4" | "5" | undefined;
|
|
@@ -181,8 +233,8 @@ export declare const generateBubbleFlowTemplateSchema: z.ZodObject<{
|
|
|
181
233
|
includeExplanation?: boolean | undefined;
|
|
182
234
|
maxQueries?: number | undefined;
|
|
183
235
|
}, {
|
|
184
|
-
name: string;
|
|
185
236
|
description: string;
|
|
237
|
+
name: string;
|
|
186
238
|
roles: string;
|
|
187
239
|
useCase: "slack-data-scientist";
|
|
188
240
|
verbosity?: "1" | "2" | "3" | "4" | "5" | undefined;
|
|
@@ -243,8 +295,8 @@ export declare const generateDocumentGenerationTemplateSchema: z.ZodObject<{
|
|
|
243
295
|
}>>;
|
|
244
296
|
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
245
297
|
}, "strip", z.ZodTypeAny, {
|
|
246
|
-
name: string;
|
|
247
298
|
description: string;
|
|
299
|
+
name: string;
|
|
248
300
|
outputDescription: string;
|
|
249
301
|
metadata?: Record<string, unknown> | undefined;
|
|
250
302
|
outputFormat?: "html" | "csv" | "json" | undefined;
|
|
@@ -303,12 +355,12 @@ export declare const bubbleFlowTemplateResponseSchema: z.ZodObject<{
|
|
|
303
355
|
value: z.ZodUnknown;
|
|
304
356
|
type: z.ZodNativeEnum<typeof BubbleParameterType>;
|
|
305
357
|
}, "strip", z.ZodTypeAny, {
|
|
306
|
-
name: string;
|
|
307
358
|
type: BubbleParameterType;
|
|
359
|
+
name: string;
|
|
308
360
|
value?: unknown;
|
|
309
361
|
}, {
|
|
310
|
-
name: string;
|
|
311
362
|
type: BubbleParameterType;
|
|
363
|
+
name: string;
|
|
312
364
|
value?: unknown;
|
|
313
365
|
}>, "many">;
|
|
314
366
|
hasAwait: z.ZodBoolean;
|
|
@@ -318,8 +370,8 @@ export declare const bubbleFlowTemplateResponseSchema: z.ZodObject<{
|
|
|
318
370
|
bubbleName: string;
|
|
319
371
|
className: string;
|
|
320
372
|
parameters: {
|
|
321
|
-
name: string;
|
|
322
373
|
type: BubbleParameterType;
|
|
374
|
+
name: string;
|
|
323
375
|
value?: unknown;
|
|
324
376
|
}[];
|
|
325
377
|
hasAwait: boolean;
|
|
@@ -329,8 +381,8 @@ export declare const bubbleFlowTemplateResponseSchema: z.ZodObject<{
|
|
|
329
381
|
bubbleName: string;
|
|
330
382
|
className: string;
|
|
331
383
|
parameters: {
|
|
332
|
-
name: string;
|
|
333
384
|
type: BubbleParameterType;
|
|
385
|
+
name: string;
|
|
334
386
|
value?: unknown;
|
|
335
387
|
}[];
|
|
336
388
|
hasAwait: boolean;
|
|
@@ -345,12 +397,12 @@ export declare const bubbleFlowTemplateResponseSchema: z.ZodObject<{
|
|
|
345
397
|
value: z.ZodUnknown;
|
|
346
398
|
type: z.ZodNativeEnum<typeof BubbleParameterType>;
|
|
347
399
|
}, "strip", z.ZodTypeAny, {
|
|
348
|
-
name: string;
|
|
349
400
|
type: BubbleParameterType;
|
|
401
|
+
name: string;
|
|
350
402
|
value?: unknown;
|
|
351
403
|
}, {
|
|
352
|
-
name: string;
|
|
353
404
|
type: BubbleParameterType;
|
|
405
|
+
name: string;
|
|
354
406
|
value?: unknown;
|
|
355
407
|
}>, "many">;
|
|
356
408
|
hasAwait: z.ZodBoolean;
|
|
@@ -360,8 +412,8 @@ export declare const bubbleFlowTemplateResponseSchema: z.ZodObject<{
|
|
|
360
412
|
bubbleName: string;
|
|
361
413
|
className: string;
|
|
362
414
|
parameters: {
|
|
363
|
-
name: string;
|
|
364
415
|
type: BubbleParameterType;
|
|
416
|
+
name: string;
|
|
365
417
|
value?: unknown;
|
|
366
418
|
}[];
|
|
367
419
|
hasAwait: boolean;
|
|
@@ -371,8 +423,8 @@ export declare const bubbleFlowTemplateResponseSchema: z.ZodObject<{
|
|
|
371
423
|
bubbleName: string;
|
|
372
424
|
className: string;
|
|
373
425
|
parameters: {
|
|
374
|
-
name: string;
|
|
375
426
|
type: BubbleParameterType;
|
|
427
|
+
name: string;
|
|
376
428
|
value?: unknown;
|
|
377
429
|
}[];
|
|
378
430
|
hasAwait: boolean;
|
|
@@ -388,27 +440,29 @@ export declare const bubbleFlowTemplateResponseSchema: z.ZodObject<{
|
|
|
388
440
|
active: z.ZodBoolean;
|
|
389
441
|
}, "strip", z.ZodTypeAny, {
|
|
390
442
|
path: string;
|
|
391
|
-
id: number;
|
|
392
443
|
url: string;
|
|
444
|
+
id: number;
|
|
393
445
|
active: boolean;
|
|
394
446
|
}, {
|
|
395
447
|
path: string;
|
|
396
|
-
id: number;
|
|
397
448
|
url: string;
|
|
449
|
+
id: number;
|
|
398
450
|
active: boolean;
|
|
399
451
|
}>>;
|
|
400
452
|
}, "strip", z.ZodTypeAny, {
|
|
401
|
-
name: string;
|
|
402
453
|
description: string;
|
|
454
|
+
name: string;
|
|
403
455
|
id: number;
|
|
456
|
+
createdAt: string;
|
|
457
|
+
updatedAt: string;
|
|
404
458
|
eventType: string;
|
|
405
459
|
bubbleParameters: Record<string, {
|
|
406
460
|
variableName: string;
|
|
407
461
|
bubbleName: string;
|
|
408
462
|
className: string;
|
|
409
463
|
parameters: {
|
|
410
|
-
name: string;
|
|
411
464
|
type: BubbleParameterType;
|
|
465
|
+
name: string;
|
|
412
466
|
value?: unknown;
|
|
413
467
|
}[];
|
|
414
468
|
hasAwait: boolean;
|
|
@@ -419,34 +473,34 @@ export declare const bubbleFlowTemplateResponseSchema: z.ZodObject<{
|
|
|
419
473
|
bubbleName: string;
|
|
420
474
|
className: string;
|
|
421
475
|
parameters: {
|
|
422
|
-
name: string;
|
|
423
476
|
type: BubbleParameterType;
|
|
477
|
+
name: string;
|
|
424
478
|
value?: unknown;
|
|
425
479
|
}[];
|
|
426
480
|
hasAwait: boolean;
|
|
427
481
|
hasActionCall: boolean;
|
|
428
482
|
}>;
|
|
429
|
-
createdAt: string;
|
|
430
|
-
updatedAt: string;
|
|
431
483
|
requiredCredentials?: Record<string, CredentialType[]> | undefined;
|
|
432
484
|
webhook?: {
|
|
433
485
|
path: string;
|
|
434
|
-
id: number;
|
|
435
486
|
url: string;
|
|
487
|
+
id: number;
|
|
436
488
|
active: boolean;
|
|
437
489
|
} | undefined;
|
|
438
490
|
}, {
|
|
439
|
-
name: string;
|
|
440
491
|
description: string;
|
|
492
|
+
name: string;
|
|
441
493
|
id: number;
|
|
494
|
+
createdAt: string;
|
|
495
|
+
updatedAt: string;
|
|
442
496
|
eventType: string;
|
|
443
497
|
bubbleParameters: Record<string, {
|
|
444
498
|
variableName: string;
|
|
445
499
|
bubbleName: string;
|
|
446
500
|
className: string;
|
|
447
501
|
parameters: {
|
|
448
|
-
name: string;
|
|
449
502
|
type: BubbleParameterType;
|
|
503
|
+
name: string;
|
|
450
504
|
value?: unknown;
|
|
451
505
|
}[];
|
|
452
506
|
hasAwait: boolean;
|
|
@@ -457,20 +511,18 @@ export declare const bubbleFlowTemplateResponseSchema: z.ZodObject<{
|
|
|
457
511
|
bubbleName: string;
|
|
458
512
|
className: string;
|
|
459
513
|
parameters: {
|
|
460
|
-
name: string;
|
|
461
514
|
type: BubbleParameterType;
|
|
515
|
+
name: string;
|
|
462
516
|
value?: unknown;
|
|
463
517
|
}[];
|
|
464
518
|
hasAwait: boolean;
|
|
465
519
|
hasActionCall: boolean;
|
|
466
520
|
}>;
|
|
467
|
-
createdAt: string;
|
|
468
|
-
updatedAt: string;
|
|
469
521
|
requiredCredentials?: Record<string, CredentialType[]> | undefined;
|
|
470
522
|
webhook?: {
|
|
471
523
|
path: string;
|
|
472
|
-
id: number;
|
|
473
524
|
url: string;
|
|
525
|
+
id: number;
|
|
474
526
|
active: boolean;
|
|
475
527
|
} | undefined;
|
|
476
528
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-bubbleflow-schema.d.ts","sourceRoot":"","sources":["../src/generate-bubbleflow-schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzC,eAAO,MAAM,4BAA4B;;;;;;EAMvC,CAAC;AAEH,eAAO,MAAM,oCAAoC
|
|
1
|
+
{"version":3,"file":"generate-bubbleflow-schema.d.ts","sourceRoot":"","sources":["../src/generate-bubbleflow-schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzC,eAAO,MAAM,4BAA4B;;;;;;EAMvC,CAAC;AAEH,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe/C,CAAC;AAEH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2CE,CAAC;AAGhD,eAAO,MAAM,wCAAwC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4FE,CAAC;AAGxD,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiGL,CAAC;AACzC,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAClD,OAAO,oCAAoC,CAC5C,CAAC;AACF,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CACrD,OAAO,gCAAgC,CACxC,CAAC;AACF,MAAM,MAAM,yCAAyC,GAAG,CAAC,CAAC,KAAK,CAC7D,OAAO,wCAAwC,CAChD,CAAC;AACF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAC9C,OAAO,gCAAgC,CACxC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -13,4 +13,7 @@ export * from './generate-bubbleflow-schema.js';
|
|
|
13
13
|
export * from './webhook-schema.js';
|
|
14
14
|
export * from './subscription-status-schema.js';
|
|
15
15
|
export * from './api-schema.js';
|
|
16
|
+
export * from './milk-tea.js';
|
|
17
|
+
export * from './pearl.js';
|
|
18
|
+
export * from './ai-models.js';
|
|
16
19
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,iBAAiB,CAAC;AAChC,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,iBAAiB,CAAC;AAChC,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -15,4 +15,7 @@ export * from './generate-bubbleflow-schema.js';
|
|
|
15
15
|
export * from './webhook-schema.js';
|
|
16
16
|
export * from './subscription-status-schema.js';
|
|
17
17
|
export * from './api-schema.js';
|
|
18
|
+
export * from './milk-tea.js';
|
|
19
|
+
export * from './pearl.js';
|
|
20
|
+
export * from './ai-models.js';
|
|
18
21
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,6CAA6C;AAC7C,cAAc,iBAAiB,CAAC;AAChC,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,6CAA6C;AAC7C,cAAc,iBAAiB,CAAC;AAChC,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Conversation message schema for milk tea multi-turn conversations
|
|
4
|
+
*/
|
|
5
|
+
declare const ConversationMessageSchema: z.ZodObject<{
|
|
6
|
+
role: z.ZodEnum<["user", "assistant"]>;
|
|
7
|
+
content: z.ZodString;
|
|
8
|
+
}, "strip", z.ZodTypeAny, {
|
|
9
|
+
role: "user" | "assistant";
|
|
10
|
+
content: string;
|
|
11
|
+
}, {
|
|
12
|
+
role: "user" | "assistant";
|
|
13
|
+
content: string;
|
|
14
|
+
}>;
|
|
15
|
+
/**
|
|
16
|
+
* Request schema for Milk Tea agent
|
|
17
|
+
* Milk Tea helps users configure bubble parameters through conversation
|
|
18
|
+
*/
|
|
19
|
+
export declare const MilkTeaRequestSchema: z.ZodObject<{
|
|
20
|
+
userRequest: z.ZodString;
|
|
21
|
+
bubbleName: z.ZodString;
|
|
22
|
+
bubbleSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
23
|
+
currentCode: z.ZodOptional<z.ZodString>;
|
|
24
|
+
availableCredentials: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
25
|
+
userName: z.ZodString;
|
|
26
|
+
insertLocation: z.ZodOptional<z.ZodString>;
|
|
27
|
+
conversationHistory: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
28
|
+
role: z.ZodEnum<["user", "assistant"]>;
|
|
29
|
+
content: z.ZodString;
|
|
30
|
+
}, "strip", z.ZodTypeAny, {
|
|
31
|
+
role: "user" | "assistant";
|
|
32
|
+
content: string;
|
|
33
|
+
}, {
|
|
34
|
+
role: "user" | "assistant";
|
|
35
|
+
content: string;
|
|
36
|
+
}>, "many">>>;
|
|
37
|
+
model: z.ZodDefault<z.ZodEnum<["openai/gpt-5", "openai/gpt-5-mini", "openai/gpt-o4-mini", "openai/gpt-4o", "google/gemini-2.5-pro", "google/gemini-2.5-flash", "google/gemini-2.5-flash-lite", "google/gemini-2.5-flash-image-preview", "anthropic/claude-sonnet-4-5-20250929", "openrouter/x-ai/grok-code-fast-1", "openrouter/z-ai/glm-4.6"]>>;
|
|
38
|
+
}, "strip", z.ZodTypeAny, {
|
|
39
|
+
userRequest: string;
|
|
40
|
+
bubbleName: string;
|
|
41
|
+
bubbleSchema: Record<string, unknown>;
|
|
42
|
+
availableCredentials: string[];
|
|
43
|
+
userName: string;
|
|
44
|
+
conversationHistory: {
|
|
45
|
+
role: "user" | "assistant";
|
|
46
|
+
content: string;
|
|
47
|
+
}[];
|
|
48
|
+
model: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-o4-mini" | "openai/gpt-4o" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "anthropic/claude-sonnet-4-5-20250929" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6";
|
|
49
|
+
currentCode?: string | undefined;
|
|
50
|
+
insertLocation?: string | undefined;
|
|
51
|
+
}, {
|
|
52
|
+
userRequest: string;
|
|
53
|
+
bubbleName: string;
|
|
54
|
+
bubbleSchema: Record<string, unknown>;
|
|
55
|
+
userName: string;
|
|
56
|
+
currentCode?: string | undefined;
|
|
57
|
+
availableCredentials?: string[] | undefined;
|
|
58
|
+
insertLocation?: string | undefined;
|
|
59
|
+
conversationHistory?: {
|
|
60
|
+
role: "user" | "assistant";
|
|
61
|
+
content: string;
|
|
62
|
+
}[] | undefined;
|
|
63
|
+
model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-o4-mini" | "openai/gpt-4o" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "anthropic/claude-sonnet-4-5-20250929" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | undefined;
|
|
64
|
+
}>;
|
|
65
|
+
/**
|
|
66
|
+
* Response schema for Milk Tea agent
|
|
67
|
+
*/
|
|
68
|
+
export declare const MilkTeaResponseSchema: z.ZodObject<{
|
|
69
|
+
type: z.ZodEnum<["code", "question", "reject"]>;
|
|
70
|
+
message: z.ZodString;
|
|
71
|
+
snippet: z.ZodOptional<z.ZodString>;
|
|
72
|
+
success: z.ZodBoolean;
|
|
73
|
+
error: z.ZodOptional<z.ZodString>;
|
|
74
|
+
}, "strip", z.ZodTypeAny, {
|
|
75
|
+
message: string;
|
|
76
|
+
type: "code" | "question" | "reject";
|
|
77
|
+
success: boolean;
|
|
78
|
+
snippet?: string | undefined;
|
|
79
|
+
error?: string | undefined;
|
|
80
|
+
}, {
|
|
81
|
+
message: string;
|
|
82
|
+
type: "code" | "question" | "reject";
|
|
83
|
+
success: boolean;
|
|
84
|
+
snippet?: string | undefined;
|
|
85
|
+
error?: string | undefined;
|
|
86
|
+
}>;
|
|
87
|
+
/**
|
|
88
|
+
* Internal agent response format (JSON mode output from AI)
|
|
89
|
+
*/
|
|
90
|
+
export declare const MilkTeaAgentOutputSchema: z.ZodObject<{
|
|
91
|
+
type: z.ZodEnum<["code", "question", "reject"]>;
|
|
92
|
+
message: z.ZodString;
|
|
93
|
+
snippet: z.ZodOptional<z.ZodString>;
|
|
94
|
+
}, "strip", z.ZodTypeAny, {
|
|
95
|
+
message: string;
|
|
96
|
+
type: "code" | "question" | "reject";
|
|
97
|
+
snippet?: string | undefined;
|
|
98
|
+
}, {
|
|
99
|
+
message: string;
|
|
100
|
+
type: "code" | "question" | "reject";
|
|
101
|
+
snippet?: string | undefined;
|
|
102
|
+
}>;
|
|
103
|
+
export type MilkTeaRequest = z.infer<typeof MilkTeaRequestSchema>;
|
|
104
|
+
export type MilkTeaResponse = z.infer<typeof MilkTeaResponseSchema>;
|
|
105
|
+
export type MilkTeaAgentOutput = z.infer<typeof MilkTeaAgentOutputSchema>;
|
|
106
|
+
export type ConversationMessage = z.infer<typeof ConversationMessageSchema>;
|
|
107
|
+
export {};
|
|
108
|
+
//# sourceMappingURL=milk-tea.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"milk-tea.d.ts","sourceRoot":"","sources":["../src/milk-tea.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;GAEG;AACH,QAAA,MAAM,yBAAyB;;;;;;;;;EAG7B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6C/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;EA0BhC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;EAInC,CAAC;AAGH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
|
package/dist/milk-tea.js
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { AvailableModels } from './ai-models.js';
|
|
3
|
+
/**
|
|
4
|
+
* Conversation message schema for milk tea multi-turn conversations
|
|
5
|
+
*/
|
|
6
|
+
const ConversationMessageSchema = z.object({
|
|
7
|
+
role: z.enum(['user', 'assistant']),
|
|
8
|
+
content: z.string(),
|
|
9
|
+
});
|
|
10
|
+
/**
|
|
11
|
+
* Request schema for Milk Tea agent
|
|
12
|
+
* Milk Tea helps users configure bubble parameters through conversation
|
|
13
|
+
*/
|
|
14
|
+
export const MilkTeaRequestSchema = z.object({
|
|
15
|
+
userRequest: z
|
|
16
|
+
.string()
|
|
17
|
+
.min(1, 'User request is required')
|
|
18
|
+
.describe('The user request or question about configuring the bubble'),
|
|
19
|
+
bubbleName: z
|
|
20
|
+
.string()
|
|
21
|
+
.min(1, 'Bubble name is required')
|
|
22
|
+
.describe('The name of the bubble to configure (e.g., "email-tool")'),
|
|
23
|
+
bubbleSchema: z
|
|
24
|
+
.record(z.unknown())
|
|
25
|
+
.describe('The full schema/interface definition of the bubble including parameters and types'),
|
|
26
|
+
currentCode: z
|
|
27
|
+
.string()
|
|
28
|
+
.optional()
|
|
29
|
+
.describe('The current workflow code context for validation'),
|
|
30
|
+
availableCredentials: z
|
|
31
|
+
.array(z.string())
|
|
32
|
+
.default([])
|
|
33
|
+
.describe('List of credential types available to the user'),
|
|
34
|
+
userName: z.string().describe('Name of the user making the request'),
|
|
35
|
+
insertLocation: z
|
|
36
|
+
.string()
|
|
37
|
+
.optional()
|
|
38
|
+
.describe('Location in code where the snippet should be inserted'),
|
|
39
|
+
conversationHistory: z
|
|
40
|
+
.array(ConversationMessageSchema)
|
|
41
|
+
.optional()
|
|
42
|
+
.default([])
|
|
43
|
+
.describe('Previous conversation messages for multi-turn interactions (frontend manages state)'),
|
|
44
|
+
model: AvailableModels.default('google/gemini-2.5-pro').describe('AI model to use for Milk Tea agent'),
|
|
45
|
+
});
|
|
46
|
+
/**
|
|
47
|
+
* Response schema for Milk Tea agent
|
|
48
|
+
*/
|
|
49
|
+
export const MilkTeaResponseSchema = z.object({
|
|
50
|
+
type: z
|
|
51
|
+
.enum(['code', 'question', 'reject'])
|
|
52
|
+
.describe('Type of response: code (generated snippet), question (needs clarification), reject (infeasible request)'),
|
|
53
|
+
message: z
|
|
54
|
+
.string()
|
|
55
|
+
.describe('Human-readable message: explanation for code, question text, or rejection reason'),
|
|
56
|
+
snippet: z
|
|
57
|
+
.string()
|
|
58
|
+
.optional()
|
|
59
|
+
.describe('Generated TypeScript code snippet (only present when type is "code")'),
|
|
60
|
+
success: z.boolean().describe('Whether the operation completed successfully'),
|
|
61
|
+
error: z
|
|
62
|
+
.string()
|
|
63
|
+
.optional()
|
|
64
|
+
.describe('Error message if the operation failed'),
|
|
65
|
+
});
|
|
66
|
+
/**
|
|
67
|
+
* Internal agent response format (JSON mode output from AI)
|
|
68
|
+
*/
|
|
69
|
+
export const MilkTeaAgentOutputSchema = z.object({
|
|
70
|
+
type: z.enum(['code', 'question', 'reject']),
|
|
71
|
+
message: z.string(),
|
|
72
|
+
snippet: z.string().optional(),
|
|
73
|
+
});
|
|
74
|
+
//# sourceMappingURL=milk-tea.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"milk-tea.js","sourceRoot":"","sources":["../src/milk-tea.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;GAEG;AACH,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,0BAA0B,CAAC;SAClC,QAAQ,CAAC,2DAA2D,CAAC;IAExE,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,yBAAyB,CAAC;SACjC,QAAQ,CAAC,0DAA0D,CAAC;IAEvE,YAAY,EAAE,CAAC;SACZ,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;SACnB,QAAQ,CACP,mFAAmF,CACpF;IAEH,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,kDAAkD,CAAC;IAE/D,oBAAoB,EAAE,CAAC;SACpB,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CAAC,gDAAgD,CAAC;IAE7D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IAEpE,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,uDAAuD,CAAC;IAEpE,mBAAmB,EAAE,CAAC;SACnB,KAAK,CAAC,yBAAyB,CAAC;SAChC,QAAQ,EAAE;SACV,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CACP,qFAAqF,CACtF;IAEH,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAC9D,oCAAoC,CACrC;CACF,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC;SACJ,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;SACpC,QAAQ,CACP,yGAAyG,CAC1G;IAEH,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,CACP,kFAAkF,CACnF;IAEH,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,sEAAsE,CACvE;IAEH,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;IAE7E,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,uCAAuC,CAAC;CACrD,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC5C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC"}
|