@shalwin04/x404r-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.
- package/README.md +391 -0
- package/dist/ai/index.d.ts +21 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +344 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/backend/cloud.d.ts +91 -0
- package/dist/backend/cloud.d.ts.map +1 -0
- package/dist/backend/cloud.js +257 -0
- package/dist/backend/cloud.js.map +1 -0
- package/dist/backend/embedded.d.ts +79 -0
- package/dist/backend/embedded.d.ts.map +1 -0
- package/dist/backend/embedded.js +307 -0
- package/dist/backend/embedded.js.map +1 -0
- package/dist/backend/index.d.ts +11 -0
- package/dist/backend/index.d.ts.map +1 -0
- package/dist/backend/index.js +8 -0
- package/dist/backend/index.js.map +1 -0
- package/dist/backend/interface.d.ts +88 -0
- package/dist/backend/interface.d.ts.map +1 -0
- package/dist/backend/interface.js +11 -0
- package/dist/backend/interface.js.map +1 -0
- package/dist/chaos.d.ts +117 -0
- package/dist/chaos.d.ts.map +1 -0
- package/dist/chaos.js +215 -0
- package/dist/chaos.js.map +1 -0
- package/dist/client.d.ts +242 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +401 -0
- package/dist/client.js.map +1 -0
- package/dist/context.d.ts +18 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +65 -0
- package/dist/context.js.map +1 -0
- package/dist/durable.d.ts +90 -0
- package/dist/durable.d.ts.map +1 -0
- package/dist/durable.js +143 -0
- package/dist/durable.js.map +1 -0
- package/dist/index.d.ts +74 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +76 -0
- package/dist/index.js.map +1 -0
- package/dist/metrics.d.ts +279 -0
- package/dist/metrics.d.ts.map +1 -0
- package/dist/metrics.js +693 -0
- package/dist/metrics.js.map +1 -0
- package/dist/types.d.ts +240 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +16 -0
- package/dist/types.js.map +1 -0
- package/dist/worker.d.ts +74 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.js +269 -0
- package/dist/worker.js.map +1 -0
- package/dist/workflow.d.ts +48 -0
- package/dist/workflow.d.ts.map +1 -0
- package/dist/workflow.js +190 -0
- package/dist/workflow.js.map +1 -0
- package/package.json +93 -0
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* x404-r Metrics & Observability
|
|
3
|
+
*
|
|
4
|
+
* Real-world production metrics for AI agent monitoring
|
|
5
|
+
* Supports hybrid mode: in-memory tracking + database persistence
|
|
6
|
+
*/
|
|
7
|
+
import type { Pool } from 'pg';
|
|
8
|
+
/**
|
|
9
|
+
* Database configuration for metrics persistence
|
|
10
|
+
*/
|
|
11
|
+
export interface MetricsDatabaseConfig {
|
|
12
|
+
pool: Pool;
|
|
13
|
+
tenantId: string;
|
|
14
|
+
flushIntervalMs?: number;
|
|
15
|
+
enabled?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface MetricEvent {
|
|
18
|
+
name: string;
|
|
19
|
+
value: number;
|
|
20
|
+
timestamp: Date;
|
|
21
|
+
tags: Record<string, string>;
|
|
22
|
+
type: 'counter' | 'gauge' | 'histogram' | 'timer';
|
|
23
|
+
}
|
|
24
|
+
export interface MetricsSummary {
|
|
25
|
+
execution: ExecutionMetrics;
|
|
26
|
+
cost: CostMetrics;
|
|
27
|
+
performance: PerformanceMetrics;
|
|
28
|
+
reliability: ReliabilityMetrics;
|
|
29
|
+
ai: AIMetrics;
|
|
30
|
+
memory: MemoryMetrics;
|
|
31
|
+
}
|
|
32
|
+
export interface ExecutionMetrics {
|
|
33
|
+
tasksTotal: number;
|
|
34
|
+
tasksCompleted: number;
|
|
35
|
+
tasksFailed: number;
|
|
36
|
+
tasksPending: number;
|
|
37
|
+
tasksRunning: number;
|
|
38
|
+
successRate: number;
|
|
39
|
+
throughput: number;
|
|
40
|
+
queueDepth: number;
|
|
41
|
+
activeWorkers: number;
|
|
42
|
+
}
|
|
43
|
+
export interface CostMetrics {
|
|
44
|
+
totalCostUsd: number;
|
|
45
|
+
costPerTask: number;
|
|
46
|
+
costPerWorkflow: number;
|
|
47
|
+
tokensInput: number;
|
|
48
|
+
tokensOutput: number;
|
|
49
|
+
tokensTotal: number;
|
|
50
|
+
savingsFromCheckpoints: number;
|
|
51
|
+
projectedMonthlyCost: number;
|
|
52
|
+
}
|
|
53
|
+
export interface PerformanceMetrics {
|
|
54
|
+
latencyP50Ms: number;
|
|
55
|
+
latencyP95Ms: number;
|
|
56
|
+
latencyP99Ms: number;
|
|
57
|
+
latencyAvgMs: number;
|
|
58
|
+
throughputPerMinute: number;
|
|
59
|
+
checkpointLatencyMs: number;
|
|
60
|
+
aiLatencyMs: number;
|
|
61
|
+
}
|
|
62
|
+
export interface ReliabilityMetrics {
|
|
63
|
+
uptimePercent: number;
|
|
64
|
+
mtbfMinutes: number;
|
|
65
|
+
mttrSeconds: number;
|
|
66
|
+
crashRecoveries: number;
|
|
67
|
+
checkpointHitRate: number;
|
|
68
|
+
failedRecoveries: number;
|
|
69
|
+
}
|
|
70
|
+
export interface AIMetrics {
|
|
71
|
+
totalGenerations: number;
|
|
72
|
+
modelBreakdown: Record<string, number>;
|
|
73
|
+
avgTokensPerGeneration: number;
|
|
74
|
+
contextUtilization: number;
|
|
75
|
+
cacheHitRate: number;
|
|
76
|
+
streamingRatio: number;
|
|
77
|
+
}
|
|
78
|
+
export interface MemoryMetrics {
|
|
79
|
+
vectorCount: number;
|
|
80
|
+
avgRetrievalRelevance: number;
|
|
81
|
+
memoryHitRate: number;
|
|
82
|
+
learningImprovement: number;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Recovery Benchmark - The value x404-r provides
|
|
86
|
+
* Shows "with x404-r" vs "without x404-r" comparison
|
|
87
|
+
*/
|
|
88
|
+
export interface RecoveryBenchmark {
|
|
89
|
+
actual: {
|
|
90
|
+
crashes: number;
|
|
91
|
+
tokensUsed: number;
|
|
92
|
+
costUsd: number;
|
|
93
|
+
timeMs: number;
|
|
94
|
+
tasksCompleted: number;
|
|
95
|
+
};
|
|
96
|
+
withoutX404r: {
|
|
97
|
+
tokensRequired: number;
|
|
98
|
+
costUsd: number;
|
|
99
|
+
timeMs: number;
|
|
100
|
+
tasksRestarted: number;
|
|
101
|
+
};
|
|
102
|
+
savings: {
|
|
103
|
+
tokensSaved: number;
|
|
104
|
+
costSavedUsd: number;
|
|
105
|
+
timeSavedMs: number;
|
|
106
|
+
percentTokensSaved: number;
|
|
107
|
+
percentCostSaved: number;
|
|
108
|
+
percentTimeSaved: number;
|
|
109
|
+
};
|
|
110
|
+
quality: {
|
|
111
|
+
recoverySuccessRate: number;
|
|
112
|
+
avgCheckpointAge: number;
|
|
113
|
+
avgRecoveryTime: number;
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Histogram for tracking distributions
|
|
118
|
+
*/
|
|
119
|
+
export declare class Histogram {
|
|
120
|
+
private values;
|
|
121
|
+
private maxSize;
|
|
122
|
+
constructor(maxSize?: number);
|
|
123
|
+
record(value: number): void;
|
|
124
|
+
percentile(p: number): number;
|
|
125
|
+
average(): number;
|
|
126
|
+
count(): number;
|
|
127
|
+
reset(): void;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Rate calculator for throughput metrics
|
|
131
|
+
*/
|
|
132
|
+
export declare class RateCalculator {
|
|
133
|
+
private events;
|
|
134
|
+
private windowMs;
|
|
135
|
+
constructor(windowMs?: number);
|
|
136
|
+
record(): void;
|
|
137
|
+
rate(): number;
|
|
138
|
+
private cleanup;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Main metrics collector
|
|
142
|
+
* Supports in-memory tracking with optional database persistence
|
|
143
|
+
*/
|
|
144
|
+
export declare class MetricsCollector {
|
|
145
|
+
private counters;
|
|
146
|
+
private gauges;
|
|
147
|
+
private histograms;
|
|
148
|
+
private rates;
|
|
149
|
+
private events;
|
|
150
|
+
private maxEvents;
|
|
151
|
+
private listeners;
|
|
152
|
+
private taskStartTimes;
|
|
153
|
+
private lastFailureTime;
|
|
154
|
+
private failureCount;
|
|
155
|
+
private recoveryTimes;
|
|
156
|
+
private recoveryEvents;
|
|
157
|
+
private taskTokenUsage;
|
|
158
|
+
private taskTimeUsage;
|
|
159
|
+
private dbConfig;
|
|
160
|
+
private flushInterval;
|
|
161
|
+
private lastFlushTime;
|
|
162
|
+
private flushInProgress;
|
|
163
|
+
constructor(maxEvents?: number);
|
|
164
|
+
/**
|
|
165
|
+
* Subscribe to metric events
|
|
166
|
+
*/
|
|
167
|
+
subscribe(listener: (event: MetricEvent) => void): () => void;
|
|
168
|
+
/**
|
|
169
|
+
* Emit a metric event
|
|
170
|
+
*/
|
|
171
|
+
private emit;
|
|
172
|
+
increment(name: string, value?: number, tags?: Record<string, string>): void;
|
|
173
|
+
gauge(name: string, value: number, tags?: Record<string, string>): void;
|
|
174
|
+
recordHistogram(name: string, value: number, tags?: Record<string, string>): void;
|
|
175
|
+
startTimer(name: string): () => number;
|
|
176
|
+
taskStarted(taskId: string, taskType: string, workflowId: string): void;
|
|
177
|
+
taskCompleted(taskId: string, taskType: string, workflowId: string): void;
|
|
178
|
+
taskFailed(taskId: string, taskType: string, workflowId: string, error: string): void;
|
|
179
|
+
taskRecovered(taskId: string, taskType: string, recoveryTimeMs: number): void;
|
|
180
|
+
/**
|
|
181
|
+
* Record a crash recovery event with full context
|
|
182
|
+
* This is used to calculate the "what if" benchmark
|
|
183
|
+
*/
|
|
184
|
+
recordCrashRecovery(event: {
|
|
185
|
+
taskId: string;
|
|
186
|
+
tokensUsedBeforeCrash: number;
|
|
187
|
+
tokensUsedAfterRecovery: number;
|
|
188
|
+
timeSpentBeforeCrashMs: number;
|
|
189
|
+
checkpointAgeMs: number;
|
|
190
|
+
recoveryTimeMs: number;
|
|
191
|
+
}): void;
|
|
192
|
+
/**
|
|
193
|
+
* Track token usage for a task (used for benchmark calculation)
|
|
194
|
+
*/
|
|
195
|
+
trackTaskTokens(taskId: string, tokens: number): void;
|
|
196
|
+
/**
|
|
197
|
+
* Track time usage for a task (used for benchmark calculation)
|
|
198
|
+
*/
|
|
199
|
+
trackTaskTime(taskId: string, timeMs: number): void;
|
|
200
|
+
checkpointCreated(taskId: string, stepNumber: number, dataSize: number): void;
|
|
201
|
+
checkpointRestored(taskId: string, stepNumber: number): void;
|
|
202
|
+
aiGenerationStarted(model: string): () => void;
|
|
203
|
+
aiTokensUsed(model: string, input: number, output: number): void;
|
|
204
|
+
aiCostIncurred(model: string, costUsd: number): void;
|
|
205
|
+
memoryStored(taskType: string): void;
|
|
206
|
+
memoryQueried(taskType: string, resultsCount: number, relevanceScore: number): void;
|
|
207
|
+
getSummary(): MetricsSummary;
|
|
208
|
+
/**
|
|
209
|
+
* Get recent events for streaming
|
|
210
|
+
*/
|
|
211
|
+
getRecentEvents(limit?: number): MetricEvent[];
|
|
212
|
+
/**
|
|
213
|
+
* Get the recovery benchmark - the value x404-r provides
|
|
214
|
+
* This shows "with x404-r" vs "without x404-r" comparison
|
|
215
|
+
*/
|
|
216
|
+
getRecoveryBenchmark(): RecoveryBenchmark;
|
|
217
|
+
/**
|
|
218
|
+
* Export metrics in Prometheus format
|
|
219
|
+
*/
|
|
220
|
+
toPrometheus(): string;
|
|
221
|
+
/**
|
|
222
|
+
* Reset all metrics
|
|
223
|
+
*/
|
|
224
|
+
reset(): void;
|
|
225
|
+
/**
|
|
226
|
+
* Configure database connection for metrics persistence
|
|
227
|
+
* Call this to enable automatic flushing to CockroachDB
|
|
228
|
+
*/
|
|
229
|
+
setDatabase(config: MetricsDatabaseConfig): void;
|
|
230
|
+
/**
|
|
231
|
+
* Start automatic periodic flushing
|
|
232
|
+
*/
|
|
233
|
+
private startAutoFlush;
|
|
234
|
+
/**
|
|
235
|
+
* Stop automatic flushing
|
|
236
|
+
*/
|
|
237
|
+
stopAutoFlush(): void;
|
|
238
|
+
/**
|
|
239
|
+
* Flush current metrics to the database
|
|
240
|
+
* @param snapshotType - Type of snapshot: 'periodic', 'flush', 'shutdown'
|
|
241
|
+
*/
|
|
242
|
+
flush(snapshotType?: 'periodic' | 'flush' | 'shutdown'): Promise<void>;
|
|
243
|
+
/**
|
|
244
|
+
* Query historical metrics from database
|
|
245
|
+
*/
|
|
246
|
+
getHistory(options?: {
|
|
247
|
+
hours?: number;
|
|
248
|
+
limit?: number;
|
|
249
|
+
}): Promise<MetricsSummary[]>;
|
|
250
|
+
/**
|
|
251
|
+
* Get aggregated hourly metrics
|
|
252
|
+
*/
|
|
253
|
+
getHourlyMetrics(hours?: number): Promise<Array<{
|
|
254
|
+
hour: Date;
|
|
255
|
+
avgTasksCompleted: number;
|
|
256
|
+
avgTasksFailed: number;
|
|
257
|
+
avgSuccessRate: number;
|
|
258
|
+
totalCost: number;
|
|
259
|
+
avgLatencyP50: number;
|
|
260
|
+
}>>;
|
|
261
|
+
/**
|
|
262
|
+
* Graceful shutdown - flush final metrics
|
|
263
|
+
*/
|
|
264
|
+
shutdown(): Promise<void>;
|
|
265
|
+
/**
|
|
266
|
+
* Check if database persistence is configured
|
|
267
|
+
*/
|
|
268
|
+
isDatabaseEnabled(): boolean;
|
|
269
|
+
}
|
|
270
|
+
export declare const metrics: MetricsCollector;
|
|
271
|
+
/**
|
|
272
|
+
* Decorator for automatic metrics collection
|
|
273
|
+
*/
|
|
274
|
+
export declare function observe(name: string): <T extends (...args: unknown[]) => Promise<unknown>>(target: unknown, propertyKey: string, descriptor: TypedPropertyDescriptor<T>) => TypedPropertyDescriptor<T>;
|
|
275
|
+
/**
|
|
276
|
+
* Helper to wrap async functions with metrics
|
|
277
|
+
*/
|
|
278
|
+
export declare function withMetrics<T>(name: string, fn: () => Promise<T>, tags?: Record<string, string>): Promise<T>;
|
|
279
|
+
//# sourceMappingURL=metrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAE/B;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,OAAO,CAAC;CACnD;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,gBAAgB,CAAC;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,kBAAkB,CAAC;IAChC,WAAW,EAAE,kBAAkB,CAAC;IAChC,EAAE,EAAE,SAAS,CAAC;IACd,MAAM,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,SAAS;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAEhC,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IAEF,YAAY,EAAE;QACZ,cAAc,EAAE,MAAM,CAAC;QACvB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IAEF,OAAO,EAAE;QACP,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,gBAAgB,EAAE,MAAM,CAAC;QACzB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IAEF,OAAO,EAAE;QACP,mBAAmB,EAAE,MAAM,CAAC;QAC5B,gBAAgB,EAAE,MAAM,CAAC;QACzB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,SAAO;IAI1B,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAO3B,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAO7B,OAAO,IAAI,MAAM;IAKjB,KAAK,IAAI,MAAM;IAIf,KAAK,IAAI,IAAI;CAGd;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,SAAQ;IAI5B,MAAM,IAAI,IAAI;IAKd,IAAI,IAAI,MAAM;IAKd,OAAO,CAAC,OAAO;CAIhB;AAED;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,KAAK,CAA0C;IACvD,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAA2C;IAG5D,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,aAAa,CAAgB;IAGrC,OAAO,CAAC,cAAc,CAOd;IACR,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,aAAa,CAAkC;IAGvD,OAAO,CAAC,QAAQ,CAAsC;IACtD,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,aAAa,CAAa;IAClC,OAAO,CAAC,eAAe,CAAkB;gBAE7B,SAAS,SAAQ;IAe7B;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,MAAM,IAAI;IAQ7D;;OAEG;IACH,OAAO,CAAC,IAAI;IAYZ,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,SAAI,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAAG,IAAI;IAc3E,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAAG,IAAI;IAa3E,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAAG,IAAI;IAkBrF,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,MAAM;IAWtC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAMvE,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAazE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAoBrF,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IAM7E;;;OAGG;IACH,mBAAmB,CAAC,KAAK,EAAE;QACzB,MAAM,EAAE,MAAM,CAAC;QACf,qBAAqB,EAAE,MAAM,CAAC;QAC9B,uBAAuB,EAAE,MAAM,CAAC;QAChC,sBAAsB,EAAE,MAAM,CAAC;QAC/B,eAAe,EAAE,MAAM,CAAC;QACxB,cAAc,EAAE,MAAM,CAAC;KACxB,GAAG,IAAI;IAmBR;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAKrD;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAOnD,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAK7E,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAM5D,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,IAAI;IAS9C,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAUhE,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAMpD,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIpC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IAQnF,UAAU,IAAI,cAAc;IA8F5B;;OAEG;IACH,eAAe,CAAC,KAAK,SAAM,GAAG,WAAW,EAAE;IAI3C;;;OAGG;IACH,oBAAoB,IAAI,iBAAiB;IAgFzC;;OAEG;IACH,YAAY,IAAI,MAAM;IA4BtB;;OAEG;IACH,KAAK,IAAI,IAAI;IAWb;;;OAGG;IACH,WAAW,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI;IAUhD;;OAEG;IACH,OAAO,CAAC,cAAc;IAiBtB;;OAEG;IACH,aAAa,IAAI,IAAI;IAOrB;;;OAGG;IACG,KAAK,CAAC,YAAY,GAAE,UAAU,GAAG,OAAO,GAAG,UAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiErF;;OAEG;IACG,UAAU,CAAC,OAAO,GAAE;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KACX,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAoBlC;;OAEG;IACG,gBAAgB,CAAC,KAAK,SAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAChD,IAAI,EAAE,IAAI,CAAC;QACX,iBAAiB,EAAE,MAAM,CAAC;QAC1B,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC,CAAC;IAsCH;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAK/B;;OAEG;IACH,iBAAiB,IAAI,OAAO;CAG7B;AAGD,eAAO,MAAM,OAAO,kBAAyB,CAAC;AAE9C;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,IACjB,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,EACjE,QAAQ,OAAO,EACf,aAAa,MAAM,EACnB,YAAY,uBAAuB,CAAC,CAAC,CAAC,KACrC,uBAAuB,CAAC,CAAC,CAAC,CAqB9B;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC3B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAChC,OAAO,CAAC,CAAC,CAAC,CAgBZ"}
|