ai-props 2.3.0 → 2.4.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 (75) hide show
  1. package/.turbo/turbo-build.log +4 -0
  2. package/CHANGELOG.md +9 -0
  3. package/dist/ai.d.ts +125 -0
  4. package/dist/ai.d.ts.map +1 -0
  5. package/dist/ai.js +199 -0
  6. package/dist/ai.js.map +1 -0
  7. package/dist/cache.d.ts +66 -0
  8. package/dist/cache.d.ts.map +1 -0
  9. package/dist/cache.js +183 -0
  10. package/dist/cache.js.map +1 -0
  11. package/dist/cascade.d.ts +329 -0
  12. package/dist/cascade.d.ts.map +1 -0
  13. package/dist/cascade.js +522 -0
  14. package/dist/cascade.js.map +1 -0
  15. package/dist/client.d.ts +233 -0
  16. package/dist/client.d.ts.map +1 -0
  17. package/dist/client.js +191 -0
  18. package/dist/client.js.map +1 -0
  19. package/dist/durable-cascade.d.ts +280 -0
  20. package/dist/durable-cascade.d.ts.map +1 -0
  21. package/dist/durable-cascade.js +469 -0
  22. package/dist/durable-cascade.js.map +1 -0
  23. package/dist/event-bridge.d.ts +257 -0
  24. package/dist/event-bridge.d.ts.map +1 -0
  25. package/dist/event-bridge.js +317 -0
  26. package/dist/event-bridge.js.map +1 -0
  27. package/dist/generate.d.ts +69 -0
  28. package/dist/generate.d.ts.map +1 -0
  29. package/dist/generate.js +227 -0
  30. package/dist/generate.js.map +1 -0
  31. package/dist/hoc.d.ts +164 -0
  32. package/dist/hoc.d.ts.map +1 -0
  33. package/dist/hoc.js +236 -0
  34. package/dist/hoc.js.map +1 -0
  35. package/dist/hono-jsx.d.ts +208 -0
  36. package/dist/hono-jsx.d.ts.map +1 -0
  37. package/dist/hono-jsx.js +459 -0
  38. package/dist/hono-jsx.js.map +1 -0
  39. package/dist/index.d.ts +16 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +23 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/mdx-types.d.ts +152 -0
  44. package/dist/mdx-types.d.ts.map +1 -0
  45. package/dist/mdx-types.js +9 -0
  46. package/dist/mdx-types.js.map +1 -0
  47. package/dist/mdx-utils.d.ts +106 -0
  48. package/dist/mdx-utils.d.ts.map +1 -0
  49. package/dist/mdx-utils.js +384 -0
  50. package/dist/mdx-utils.js.map +1 -0
  51. package/dist/mdx.d.ts +230 -0
  52. package/dist/mdx.d.ts.map +1 -0
  53. package/dist/mdx.js +820 -0
  54. package/dist/mdx.js.map +1 -0
  55. package/dist/rpc.d.ts +313 -0
  56. package/dist/rpc.d.ts.map +1 -0
  57. package/dist/rpc.js +359 -0
  58. package/dist/rpc.js.map +1 -0
  59. package/dist/streaming.d.ts +199 -0
  60. package/dist/streaming.d.ts.map +1 -0
  61. package/dist/streaming.js +402 -0
  62. package/dist/streaming.js.map +1 -0
  63. package/dist/types.d.ts +152 -0
  64. package/dist/types.d.ts.map +1 -0
  65. package/dist/types.js +7 -0
  66. package/dist/types.js.map +1 -0
  67. package/dist/validate.d.ts +58 -0
  68. package/dist/validate.d.ts.map +1 -0
  69. package/dist/validate.js +251 -0
  70. package/dist/validate.js.map +1 -0
  71. package/dist/worker.d.ts +270 -0
  72. package/dist/worker.d.ts.map +1 -0
  73. package/dist/worker.js +405 -0
  74. package/dist/worker.js.map +1 -0
  75. package/package.json +4 -4
@@ -0,0 +1,329 @@
1
+ /**
2
+ * Cascade Executor - Code -> Generative -> Agentic -> Human escalation pattern for AI Props
3
+ *
4
+ * Implements a tiered execution strategy that tries deterministic code first,
5
+ * then escalates to AI-powered prop generation, and finally to human-in-the-loop
6
+ * if all automated approaches fail.
7
+ *
8
+ * ## Features
9
+ *
10
+ * - **Tier Escalation**: Code -> Generative -> Agentic -> Human pattern
11
+ * - **Per-tier Timeouts**: Configurable timeouts for each tier
12
+ * - **5W+H Audit Events**: Who, What, When, Where, Why, How event emission
13
+ * - **Context Propagation**: Share context across tiers
14
+ * - **Retry Support**: Configurable retries per tier with backoff
15
+ * - **AI Gateway Support**: Configuration helpers for Cloudflare AI Gateway
16
+ *
17
+ * ## Basic Usage
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * import { CascadeExecutor, createCascadeStep } from 'ai-props/worker'
22
+ *
23
+ * const generateTitleCascade = new CascadeExecutor({
24
+ * tiers: {
25
+ * code: {
26
+ * name: 'template-title',
27
+ * execute: async (input) => {
28
+ * if (input.template) return { title: input.template }
29
+ * throw new Error('No template')
30
+ * }
31
+ * },
32
+ * generative: {
33
+ * name: 'ai-title',
34
+ * execute: async (input) => {
35
+ * const result = await generateProps({
36
+ * schema: { title: 'A compelling title' },
37
+ * context: input
38
+ * })
39
+ * return result.props
40
+ * }
41
+ * }
42
+ * }
43
+ * })
44
+ *
45
+ * const result = await generateTitleCascade.execute({ topic: 'AI' })
46
+ * console.log(result.value) // { title: '...' }
47
+ * console.log(result.tier) // 'code' or 'generative'
48
+ * ```
49
+ *
50
+ * @packageDocumentation
51
+ */
52
+ /**
53
+ * Ordered list of capability tiers
54
+ */
55
+ export declare const TIER_ORDER: readonly ["code", "generative", "agentic", "human"];
56
+ /**
57
+ * Default timeouts per tier (in milliseconds)
58
+ */
59
+ export declare const DEFAULT_TIER_TIMEOUTS: Record<CapabilityTier, number>;
60
+ /**
61
+ * Capability tier levels
62
+ */
63
+ export type CapabilityTier = 'code' | 'generative' | 'agentic' | 'human';
64
+ /**
65
+ * 5W+H Event for audit trails
66
+ */
67
+ export interface FiveWHEvent {
68
+ /** Who performed the action */
69
+ who: string;
70
+ /** What action was performed */
71
+ what: string;
72
+ /** When the action occurred (timestamp) */
73
+ when: number;
74
+ /** Where the action occurred (cascade/tier name) */
75
+ where: string;
76
+ /** Why the action was performed (reason/error) */
77
+ why?: string;
78
+ /** How the action was performed */
79
+ how?: {
80
+ status: 'running' | 'completed' | 'failed';
81
+ duration?: number;
82
+ metadata?: Record<string, unknown>;
83
+ };
84
+ }
85
+ /**
86
+ * Cascade step tracking
87
+ */
88
+ export interface CascadeStep {
89
+ id: string;
90
+ tier: string;
91
+ status: 'pending' | 'running' | 'completed' | 'failed';
92
+ startTime?: number;
93
+ endTime?: number;
94
+ error?: string;
95
+ }
96
+ /**
97
+ * Cascade context for tracing
98
+ */
99
+ export interface CascadeContext {
100
+ correlationId: string;
101
+ name: string;
102
+ steps: CascadeStep[];
103
+ }
104
+ /**
105
+ * Context passed to tier handlers
106
+ */
107
+ export interface TierContext<TInput = unknown> {
108
+ /** Correlation ID for tracing */
109
+ correlationId: string;
110
+ /** Current tier being executed */
111
+ tier: CapabilityTier;
112
+ /** Input data */
113
+ input: TInput;
114
+ /** Cascade context */
115
+ cascadeContext: CascadeContext;
116
+ /** Previous tier errors */
117
+ previousErrors: Array<{
118
+ tier: CapabilityTier;
119
+ error: string;
120
+ }>;
121
+ }
122
+ /**
123
+ * Handler for a specific tier
124
+ */
125
+ export interface TierHandler<TInput = unknown, TOutput = unknown> {
126
+ /** Handler name for debugging */
127
+ name: string;
128
+ /** Execute the tier logic */
129
+ execute: (input: TInput, context: TierContext<TInput>) => Promise<TOutput>;
130
+ }
131
+ /**
132
+ * Retry configuration per tier
133
+ */
134
+ export interface TierRetryConfig {
135
+ /** Maximum number of retries */
136
+ maxRetries: number;
137
+ /** Base delay in milliseconds */
138
+ baseDelay: number;
139
+ /** Multiplier for exponential backoff */
140
+ multiplier?: number;
141
+ }
142
+ /**
143
+ * Result from a single tier execution
144
+ */
145
+ export interface TierResult<TOutput = unknown> {
146
+ /** Tier that was executed */
147
+ tier: CapabilityTier;
148
+ /** Whether the tier succeeded */
149
+ success: boolean;
150
+ /** Result value (if success) */
151
+ value?: TOutput;
152
+ /** Error (if failure) */
153
+ error?: Error;
154
+ /** Whether the tier timed out */
155
+ timedOut?: boolean;
156
+ /** Duration in milliseconds */
157
+ duration: number;
158
+ /** Number of attempts */
159
+ attempts?: number;
160
+ }
161
+ /**
162
+ * Metrics from cascade execution
163
+ */
164
+ export interface CascadeMetrics {
165
+ /** Total execution duration */
166
+ totalDuration: number;
167
+ /** Duration per tier */
168
+ tierDurations: Partial<Record<CapabilityTier, number>>;
169
+ /** Number of retries per tier */
170
+ tierRetries?: Partial<Record<CapabilityTier, number>>;
171
+ }
172
+ /**
173
+ * Result from cascade execution
174
+ */
175
+ export interface CascadeResult<TOutput = unknown> {
176
+ /** Final result value */
177
+ value: TOutput;
178
+ /** Tier that produced the result */
179
+ tier: CapabilityTier;
180
+ /** History of all tier executions */
181
+ history: TierResult<TOutput>[];
182
+ /** Tiers that were skipped */
183
+ skippedTiers: CapabilityTier[];
184
+ /** Cascade context with tracing info */
185
+ context: CascadeContext;
186
+ /** Execution metrics */
187
+ metrics: CascadeMetrics;
188
+ }
189
+ /**
190
+ * Skip condition function
191
+ */
192
+ export type SkipCondition<TInput = unknown> = (input: TInput) => boolean;
193
+ /**
194
+ * Configuration for CascadeExecutor
195
+ */
196
+ export interface CascadeConfig<TInput = unknown, TOutput = unknown> {
197
+ /** Tier handlers */
198
+ tiers: Partial<Record<CapabilityTier, TierHandler<TInput, TOutput>>>;
199
+ /** Per-tier timeouts in milliseconds */
200
+ timeouts?: Partial<Record<CapabilityTier, number>>;
201
+ /** Total cascade timeout in milliseconds */
202
+ totalTimeout?: number;
203
+ /** Use default timeouts from capability-tiers */
204
+ useDefaultTimeouts?: boolean;
205
+ /** Actor identifier for 5W+H events */
206
+ actor?: string;
207
+ /** Cascade name for 5W+H events */
208
+ cascadeName?: string;
209
+ /** Event callback for 5W+H events */
210
+ onEvent?: (event: FiveWHEvent) => void;
211
+ /** Skip conditions per tier */
212
+ skipConditions?: Partial<Record<CapabilityTier, SkipCondition<TInput>>>;
213
+ /** Retry configuration per tier */
214
+ retryConfig?: Partial<Record<CapabilityTier, TierRetryConfig>>;
215
+ }
216
+ /**
217
+ * Error thrown when cascade times out
218
+ */
219
+ export declare class CascadeTimeoutError extends Error {
220
+ readonly timeout: number;
221
+ readonly elapsed: number;
222
+ constructor(timeout: number, elapsed: number);
223
+ }
224
+ /**
225
+ * Error thrown when a tier is skipped
226
+ */
227
+ export declare class TierSkippedError extends Error {
228
+ readonly tier: CapabilityTier;
229
+ readonly reason: string;
230
+ constructor(tier: CapabilityTier, reason: string);
231
+ }
232
+ /**
233
+ * Error thrown when all tiers fail
234
+ */
235
+ export declare class AllTiersFailedError extends Error {
236
+ readonly history: TierResult[];
237
+ constructor(history: TierResult[]);
238
+ }
239
+ /**
240
+ * Create a cascade context for tracing
241
+ */
242
+ export declare function createCascadeContext(options: {
243
+ name: string;
244
+ }): CascadeContext;
245
+ /**
246
+ * Record a step in the cascade context
247
+ */
248
+ export declare function recordStep(context: CascadeContext, tier: string, meta: {
249
+ actor: string;
250
+ action: string;
251
+ }): {
252
+ complete: () => void;
253
+ fail: (error: Error) => void;
254
+ };
255
+ /**
256
+ * CascadeExecutor implements the code -> generative -> agentic -> human pattern
257
+ *
258
+ * This is the base executor for cascade patterns, suitable for both
259
+ * synchronous and worker contexts.
260
+ */
261
+ export declare class CascadeExecutor<TInput = unknown, TOutput = unknown> {
262
+ protected readonly config: CascadeConfig<TInput, TOutput>;
263
+ protected readonly actor: string;
264
+ protected readonly cascadeName: string;
265
+ constructor(config: CascadeConfig<TInput, TOutput>);
266
+ /**
267
+ * Execute the cascade
268
+ */
269
+ execute(input: TInput): Promise<CascadeResult<TOutput>>;
270
+ /**
271
+ * Execute a single tier with timeout and retry support
272
+ */
273
+ protected executeTier(tier: CapabilityTier, handler: TierHandler<TInput, TOutput>, input: TInput, cascadeContext: CascadeContext, previousErrors: Array<{
274
+ tier: CapabilityTier;
275
+ error: string;
276
+ }>, cascadeStartTime: number, totalTimeoutPromise: Promise<never>): Promise<TierResult<TOutput>>;
277
+ /**
278
+ * Execute a function with a timeout
279
+ */
280
+ protected executeWithTimeout<R>(fn: () => Promise<R>, timeout: number | undefined, totalTimeoutPromise: Promise<never>): Promise<R>;
281
+ /**
282
+ * Get timeout for a tier
283
+ */
284
+ protected getTierTimeout(tier: CapabilityTier): number | undefined;
285
+ /**
286
+ * Get the next configured tier after the given tier
287
+ */
288
+ protected getNextConfiguredTier(currentTier: CapabilityTier): CapabilityTier | undefined;
289
+ /**
290
+ * Emit a 5W+H event
291
+ */
292
+ protected emitEvent(event: FiveWHEvent): void;
293
+ /**
294
+ * Sleep for a given duration
295
+ */
296
+ protected sleep(ms: number): Promise<void>;
297
+ }
298
+ /**
299
+ * Create a cascade step configuration for common patterns
300
+ *
301
+ * @example
302
+ * ```typescript
303
+ * const titleCascade = createCascadeStep({
304
+ * name: 'generate-title',
305
+ * code: async (input) => {
306
+ * if (input.template) return { title: input.template }
307
+ * throw new Error('No template')
308
+ * },
309
+ * generative: async (input, ctx) => {
310
+ * const result = await generateProps({
311
+ * schema: { title: 'A compelling title' },
312
+ * context: input
313
+ * })
314
+ * return result.props
315
+ * }
316
+ * })
317
+ * ```
318
+ */
319
+ export declare function createCascadeStep<TInput = unknown, TOutput = unknown>(config: {
320
+ name: string;
321
+ code?: (input: TInput, ctx: TierContext<TInput>) => Promise<TOutput>;
322
+ generative?: (input: TInput, ctx: TierContext<TInput>) => Promise<TOutput>;
323
+ agentic?: (input: TInput, ctx: TierContext<TInput>) => Promise<TOutput>;
324
+ human?: (input: TInput, ctx: TierContext<TInput>) => Promise<TOutput>;
325
+ timeouts?: Partial<Record<CapabilityTier, number>>;
326
+ retryConfig?: Partial<Record<CapabilityTier, TierRetryConfig>>;
327
+ onEvent?: (event: FiveWHEvent) => void;
328
+ }): CascadeExecutor<TInput, TOutput>;
329
+ //# sourceMappingURL=cascade.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cascade.d.ts","sourceRoot":"","sources":["../src/cascade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAMH;;GAEG;AACH,eAAO,MAAM,UAAU,qDAAsD,CAAA;AAE7E;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAKhE,CAAA;AAMD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,YAAY,GAAG,SAAS,GAAG,OAAO,CAAA;AAExE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,+BAA+B;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAA;IACZ,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAA;IACb,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,mCAAmC;IACnC,GAAG,CAAC,EAAE;QACJ,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAA;QAC1C,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KACnC,CAAA;CACF;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAA;IACtD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,WAAW,EAAE,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,MAAM,GAAG,OAAO;IAC3C,iCAAiC;IACjC,aAAa,EAAE,MAAM,CAAA;IACrB,kCAAkC;IAClC,IAAI,EAAE,cAAc,CAAA;IACpB,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,sBAAsB;IACtB,cAAc,EAAE,cAAc,CAAA;IAC9B,2BAA2B;IAC3B,cAAc,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,cAAc,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC/D;AAED;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO;IAC9D,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,6BAA6B;IAC7B,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CAC3E;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAA;IAClB,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU,CAAC,OAAO,GAAG,OAAO;IAC3C,6BAA6B;IAC7B,IAAI,EAAE,cAAc,CAAA;IACpB,iCAAiC;IACjC,OAAO,EAAE,OAAO,CAAA;IAChB,gCAAgC;IAChC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,yBAAyB;IACzB,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,iCAAiC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,+BAA+B;IAC/B,aAAa,EAAE,MAAM,CAAA;IACrB,wBAAwB;IACxB,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAA;IACtD,iCAAiC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAA;CACtD;AAED;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,OAAO,GAAG,OAAO;IAC9C,yBAAyB;IACzB,KAAK,EAAE,OAAO,CAAA;IACd,oCAAoC;IACpC,IAAI,EAAE,cAAc,CAAA;IACpB,qCAAqC;IACrC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,CAAA;IAC9B,8BAA8B;IAC9B,YAAY,EAAE,cAAc,EAAE,CAAA;IAC9B,wCAAwC;IACxC,OAAO,EAAE,cAAc,CAAA;IACvB,wBAAwB;IACxB,OAAO,EAAE,cAAc,CAAA;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,MAAM,GAAG,OAAO,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAA;AAExE;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO;IAChE,oBAAoB;IACpB,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;IACpE,wCAAwC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAA;IAClD,4CAA4C;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,iDAAiD;IACjD,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qCAAqC;IACrC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;IACtC,+BAA+B;IAC/B,cAAc,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACvE,mCAAmC;IACnC,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC,CAAA;CAC/D;AAMD;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,SAAgB,OAAO,EAAE,MAAM,CAAA;IAC/B,SAAgB,OAAO,EAAE,MAAM,CAAA;gBAEnB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAM7C;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,SAAgB,IAAI,EAAE,cAAc,CAAA;IACpC,SAAgB,MAAM,EAAE,MAAM,CAAA;gBAElB,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM;CAMjD;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,SAAgB,OAAO,EAAE,UAAU,EAAE,CAAA;gBAEzB,OAAO,EAAE,UAAU,EAAE;CAKlC;AAMD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,cAAc,CAM9E;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACtC;IACD,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;CAC7B,CAoBA;AAMD;;;;;GAKG;AACH,qBAAa,eAAe,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO;IAC9D,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACzD,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IAChC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;gBAE1B,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC;IAMlD;;OAEG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAuI7D;;OAEG;cACa,WAAW,CACzB,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,cAAc,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,EAC9D,gBAAgB,EAAE,MAAM,EACxB,mBAAmB,EAAE,OAAO,CAAC,KAAK,CAAC,GAClC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAoJ/B;;OAEG;cACa,kBAAkB,CAAC,CAAC,EAClC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,mBAAmB,EAAE,OAAO,CAAC,KAAK,CAAC,GAClC,OAAO,CAAC,CAAC,CAAC;IAwBb;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS;IAUlE;;OAEG;IACH,SAAS,CAAC,qBAAqB,CAAC,WAAW,EAAE,cAAc,GAAG,cAAc,GAAG,SAAS;IAWxF;;OAEG;IACH,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAM7C;;OAEG;IACH,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG3C;AAMD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,EAAE,MAAM,EAAE;IAC7E,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACpE,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IAC1E,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACvE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACrE,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAA;IAClD,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC,CAAA;IAC9D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;CACvC,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAiCnC"}