@agenttrace-io/sdk 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.
Files changed (57) hide show
  1. package/dist/benchmark.d.ts +79 -0
  2. package/dist/benchmark.d.ts.map +1 -0
  3. package/dist/benchmark.js +324 -0
  4. package/dist/benchmark.js.map +1 -0
  5. package/dist/index.d.ts +358 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +1169 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/migrations/001-initial.d.ts +5 -0
  10. package/dist/migrations/001-initial.d.ts.map +1 -0
  11. package/dist/migrations/001-initial.js +86 -0
  12. package/dist/migrations/001-initial.js.map +1 -0
  13. package/dist/migrations/002-scores.d.ts +5 -0
  14. package/dist/migrations/002-scores.d.ts.map +1 -0
  15. package/dist/migrations/002-scores.js +17 -0
  16. package/dist/migrations/002-scores.js.map +1 -0
  17. package/dist/migrations/003-alerts.d.ts +5 -0
  18. package/dist/migrations/003-alerts.d.ts.map +1 -0
  19. package/dist/migrations/003-alerts.js +27 -0
  20. package/dist/migrations/003-alerts.js.map +1 -0
  21. package/dist/migrations/004-trace-context.d.ts +5 -0
  22. package/dist/migrations/004-trace-context.d.ts.map +1 -0
  23. package/dist/migrations/004-trace-context.js +16 -0
  24. package/dist/migrations/004-trace-context.js.map +1 -0
  25. package/dist/migrations/005-agent-usage.d.ts +5 -0
  26. package/dist/migrations/005-agent-usage.d.ts.map +1 -0
  27. package/dist/migrations/005-agent-usage.js +27 -0
  28. package/dist/migrations/005-agent-usage.js.map +1 -0
  29. package/dist/migrations/005-webhooks.d.ts +5 -0
  30. package/dist/migrations/005-webhooks.d.ts.map +1 -0
  31. package/dist/migrations/005-webhooks.js +33 -0
  32. package/dist/migrations/005-webhooks.js.map +1 -0
  33. package/dist/migrations/006-api-keys.d.ts +5 -0
  34. package/dist/migrations/006-api-keys.d.ts.map +1 -0
  35. package/dist/migrations/006-api-keys.js +27 -0
  36. package/dist/migrations/006-api-keys.js.map +1 -0
  37. package/dist/migrations.d.ts +29 -0
  38. package/dist/migrations.d.ts.map +1 -0
  39. package/dist/migrations.js +107 -0
  40. package/dist/migrations.js.map +1 -0
  41. package/dist/rate-limiter.d.ts +34 -0
  42. package/dist/rate-limiter.d.ts.map +1 -0
  43. package/dist/rate-limiter.js +74 -0
  44. package/dist/rate-limiter.js.map +1 -0
  45. package/dist/self-track.d.ts +42 -0
  46. package/dist/self-track.d.ts.map +1 -0
  47. package/dist/self-track.js +288 -0
  48. package/dist/self-track.js.map +1 -0
  49. package/dist/storage.d.ts +149 -0
  50. package/dist/storage.d.ts.map +1 -0
  51. package/dist/storage.js +1479 -0
  52. package/dist/storage.js.map +1 -0
  53. package/dist/types.d.ts +323 -0
  54. package/dist/types.d.ts.map +1 -0
  55. package/dist/types.js +19 -0
  56. package/dist/types.js.map +1 -0
  57. package/package.json +53 -0
@@ -0,0 +1,358 @@
1
+ /**
2
+ * AgentTrace -- Core SDK
3
+ * Drop-in tracing for any AI agent
4
+ */
5
+ import { Trace, Run, TraceConfig, TraceFilter, TraceStats, TokenUsage, ToolCall, ExportFormat, Scorer, ScorerResult, EvaluateOptions, CostBreakdown, AlertCondition, AlertHistory, TraceTreeNode, HealthReport, AgentUsageRecord, AgentUsageFilter, UsageStats, AgentWho, AgentSession, CreatedApiKey, WebhookConfig, WebhookEvent, WebhookDelivery } from './types.js';
6
+ export declare const VERSION = "0.1.0";
7
+ export declare const PACKAGE_NAME = "@agenttrace-io/sdk";
8
+ export type { Trace, Run, TraceConfig, TraceFilter, TraceStats, TokenUsage, ToolCall, ExportFormat, DashboardConfig, AgentFramework, FrameworkIntegration, Scorer, ScorerResult, EvaluateOptions, CostBreakdown, AlertCondition, AlertHistory, TraceTreeNode, HealthReport, AgentUsageRecord, AgentUsageFilter, UsageStats, AgentWho, AgentSession, ApiKey, CreatedApiKey, WebhookConfig, WebhookEvent, WebhookDelivery, } from './types.js';
9
+ import { TraceContext } from './types.js';
10
+ export { TraceContext } from './types.js';
11
+ export { TraceStorage } from './storage.js';
12
+ export { SelfTracker } from './self-track.js';
13
+ export type { SelfTrackerConfig } from './self-track.js';
14
+ export { TokenBucketRateLimiter } from './rate-limiter.js';
15
+ export type { RateLimiterConfig } from './rate-limiter.js';
16
+ /**
17
+ * Register or override pricing rates for a model in the default cost calculator (used at runtime).
18
+ * Rates are USD per 1,000 tokens (matching the calculator convention).
19
+ * Example: registerModelRate('my-model', 0.001, 0.002) => $1/M prompt, $2/M completion
20
+ */
21
+ export declare function registerModelRate(model: string, promptRatePerK: number, completionRatePerK: number): void;
22
+ export declare class AgentTrace {
23
+ private storage;
24
+ private config;
25
+ private currentRunId;
26
+ private registeredAlerts;
27
+ private usageEmitter;
28
+ private webhookEmitter;
29
+ private _cleanupInterval?;
30
+ private rateLimiter;
31
+ private activeTraceContext;
32
+ constructor(config?: TraceConfig);
33
+ private setupRetentionCleanup;
34
+ /**
35
+ * Start a new agent run
36
+ */
37
+ startRun(name: string, metadata?: Record<string, unknown>): string;
38
+ /**
39
+ * Complete the current run
40
+ */
41
+ completeRun(status?: Run['status']): void;
42
+ /**
43
+ * Trace an async function call
44
+ */
45
+ trace<T>(name: string, fn: () => Promise<T>, options?: {
46
+ input?: unknown;
47
+ tokens?: TokenUsage;
48
+ model?: string;
49
+ provider?: string;
50
+ metadata?: Record<string, unknown>;
51
+ parentId?: string;
52
+ context?: TraceContext;
53
+ }): Promise<T>;
54
+ /**
55
+ * Record a tool call within the current trace
56
+ */
57
+ recordToolCall(call: Omit<ToolCall, 'id' | 'timestamp'>): string;
58
+ /**
59
+ * Get traces with filtering
60
+ */
61
+ getTraces(filter?: TraceFilter): Trace[];
62
+ /**
63
+ * Get a specific trace
64
+ */
65
+ getTrace(id: string): Trace | null;
66
+ /**
67
+ * Get recent runs (most recent first)
68
+ */
69
+ getRuns(limit?: number): Run[];
70
+ /**
71
+ * Get a specific run
72
+ */
73
+ getRun(id: string): Run | null;
74
+ /**
75
+ * Get summary statistics
76
+ */
77
+ getStats(): TraceStats;
78
+ /**
79
+ * Get the number of traces dropped due to rate limiting.
80
+ * Returns 0 if rate limiting is not configured.
81
+ */
82
+ getDroppedTraces(): number;
83
+ /**
84
+ * Get cost breakdown (by model, by day, total). Supports optional run filter.
85
+ */
86
+ getCostBreakdown(filter?: {
87
+ runId?: string;
88
+ }): CostBreakdown;
89
+ /**
90
+ * Record a usage/action event from an agent (for agent self-tracking of its own operations/costs).
91
+ * Agents can call this to log high-level actions beyond LLM traces.
92
+ */
93
+ recordAgentUsage(record: Omit<AgentUsageRecord, 'id' | 'createdAt'> & {
94
+ id?: string;
95
+ createdAt?: number;
96
+ }): void;
97
+ /**
98
+ * Query recorded agent usage records.
99
+ */
100
+ getAgentUsage(filter?: AgentUsageFilter): AgentUsageRecord[];
101
+ /**
102
+ * Get aggregated usage statistics across agent actions.
103
+ */
104
+ getUsageStats(agentName?: string, fromDate?: number, toDate?: number): UsageStats;
105
+ /**
106
+ * Get list of agents with their last active time (all time, sorted recent first).
107
+ */
108
+ getActiveAgents(): {
109
+ agentName: string;
110
+ lastActive: string;
111
+ totalActions: number;
112
+ }[];
113
+ /**
114
+ * Get 'who' summary (active agents overview, supports activeOnly for last 30min).
115
+ */
116
+ getAgentWho(filter?: {
117
+ activeOnly?: boolean;
118
+ agentType?: string;
119
+ limit?: number;
120
+ }): AgentWho[];
121
+ /**
122
+ * Get agent sessions summary.
123
+ */
124
+ getAgentSessions(filter?: {
125
+ agentName?: string;
126
+ activeOnly?: boolean;
127
+ limit?: number;
128
+ }): AgentSession[];
129
+ /**
130
+ * Create a new API key for dashboard API authentication.
131
+ * Returns the full secret key (display once) + metadata record.
132
+ * The secret is never stored; only its SHA-256 hash is persisted.
133
+ */
134
+ createApiKey(name: string): CreatedApiKey;
135
+ /**
136
+ * List API keys (masked/previewed, no secrets).
137
+ */
138
+ listApiKeys(): {
139
+ id: string;
140
+ name: string;
141
+ createdAt: number;
142
+ lastUsedAt: number | null;
143
+ enabled: boolean;
144
+ }[];
145
+ /**
146
+ * Revoke an API key by its id. Returns true if deleted.
147
+ */
148
+ revokeApiKey(id: string): void;
149
+ /**
150
+ * Validate a raw API key string (e.g. from header). Returns matching metadata or null.
151
+ * Side effect: updates lastUsedAt on success.
152
+ */
153
+ validateApiKey(key: string): {
154
+ valid: boolean;
155
+ permissions: string[];
156
+ };
157
+ /**
158
+ * Subscribe to new agent usage records (for live dashboards / SSE).
159
+ */
160
+ onUsage(listener: (record: AgentUsageRecord) => void): void;
161
+ /**
162
+ * Unsubscribe from agent usage events.
163
+ */
164
+ offUsage(listener: (record: AgentUsageRecord) => void): void;
165
+ /**
166
+ * Create a new project for multi-tenant isolation.
167
+ * Returns the project with its API key (shown only once).
168
+ */
169
+ createProject(name: string): {
170
+ id: string;
171
+ name: string;
172
+ apiKey: string;
173
+ createdAt: number;
174
+ };
175
+ /**
176
+ * Look up a project by its API key.
177
+ */
178
+ getProject(apiKey: string): {
179
+ id: string;
180
+ name: string;
181
+ createdAt: number;
182
+ } | null;
183
+ /**
184
+ * Delete a project by ID. Returns true if deleted.
185
+ */
186
+ deleteProject(id: string): boolean;
187
+ /**
188
+ * Register a new webhook. Returns the webhook ID.
189
+ */
190
+ addWebhook(url: string, events: WebhookEvent[], secret?: string): string;
191
+ /**
192
+ * List all configured webhooks.
193
+ */
194
+ getWebhooks(): WebhookConfig[];
195
+ /**
196
+ * Remove a webhook by ID.
197
+ */
198
+ removeWebhook(id: string): void;
199
+ /**
200
+ * Register a new webhook (alias for addWebhook). Returns the webhook ID.
201
+ */
202
+ registerWebhook(url: string, events: WebhookEvent[], secret?: string): string;
203
+ /**
204
+ * Delete a webhook by ID (alias for removeWebhook).
205
+ */
206
+ deleteWebhook(id: string): void;
207
+ /**
208
+ * Trigger webhooks for a given event. Finds all enabled webhooks registered for
209
+ * the event, builds the payload, signs it if a secret is configured, and POSTs
210
+ * to each URL. Returns delivery results.
211
+ */
212
+ triggerWebhook(event: WebhookEvent, payload: Record<string, unknown>): Promise<WebhookDelivery[]>;
213
+ /**
214
+ * Test a webhook by ID: fires a test event payload to the webhook URL.
215
+ * Returns delivery result.
216
+ */
217
+ testWebhook(id: string): Promise<{
218
+ ok: boolean;
219
+ status?: number;
220
+ error?: string;
221
+ }>;
222
+ /**
223
+ * Register a webhook event handler callback.
224
+ * The handler is called for every emitted webhook event (both explicit emissions
225
+ * and automatic events from trace()/completeRun()).
226
+ * Returns a function that unsubscribes the handler when called.
227
+ */
228
+ onWebhook(handler: (event: WebhookEvent, payload: Record<string, unknown>) => void): () => void;
229
+ /**
230
+ * Explicitly emit a webhook event.
231
+ * Fires all registered HTTP webhooks (via triggerWebhook) and invokes all
232
+ * onWebhook handler callbacks. Does not auto-emit from trace()/completeRun() --
233
+ * those methods already call triggerWebhook directly.
234
+ * Use this for custom events (e.g. 'cost.threshold', 'agent.inactive').
235
+ * Returns the HTTP delivery results (same as triggerWebhook).
236
+ */
237
+ emitWebhookEvent(event: WebhookEvent, payload: Record<string, unknown>): Promise<WebhookDelivery[]>;
238
+ /**
239
+ * Trigger all webhooks registered for the given event.
240
+ * Alias for triggerWebhook — provided for API clarity when the intent is
241
+ * to fan-out to all matching webhooks rather than targeting a specific one.
242
+ * Also invokes any onWebhook handler callbacks after HTTP delivery.
243
+ */
244
+ triggerAllWebhooks(event: WebhookEvent, payload: Record<string, unknown>): Promise<WebhookDelivery[]>;
245
+ /**
246
+ * Create a TraceContext for a child operation linked to the provided parent context.
247
+ * The child context has a freshly generated traceId (use as the child's trace id)
248
+ * and parentSpanId pointing to the parent's traceId (span).
249
+ * Pass the returned context via options.context when calling trace() (on any AgentTrace instance).
250
+ */
251
+ createChild(context: TraceContext): TraceContext;
252
+ /**
253
+ * Manually link a set of trace IDs as related (for cross-agent collaboration without strict parent/child).
254
+ * Uses an internal links table; getTraceTree will surface linked traces as children in the tree.
255
+ */
256
+ linkTraces(traceIds: string[]): void;
257
+ /**
258
+ * Get the full tree (parent -> children, including manually linked) for the given traceId.
259
+ * The tree is rooted at the ultimate ancestor (following parentId links).
260
+ */
261
+ getTraceTree(traceId: string): TraceTreeNode;
262
+ /**
263
+ * Register an alert condition. Persists config (without function) and enables auto-checks.
264
+ */
265
+ registerAlert(alert: AlertCondition): void;
266
+ /**
267
+ * Check all registered alerts against current stats.
268
+ * Fires (and records history) for those whose condition is true and cooldown elapsed.
269
+ * Returns the AlertHistory entries that were triggered this check.
270
+ */
271
+ checkAlerts(): Promise<AlertHistory[]>;
272
+ private deliverAlert;
273
+ /**
274
+ * Get currently registered (in-memory) alerts. Falls back to persisted configs (with no-op condition) for CLI.
275
+ */
276
+ getAlerts(): AlertCondition[];
277
+ /**
278
+ * Get alert firing history from storage.
279
+ */
280
+ getAlertHistory(): AlertHistory[];
281
+ /**
282
+ * Return health report: status, version (sdk), uptime, dbPath, traceCount, dbSize + integrity check.
283
+ * Integrity verifies required tables exist and detects orphaned child records.
284
+ */
285
+ getHealth(): HealthReport;
286
+ /**
287
+ * Delete traces with created_at < before (timestamp ms). Also cleans dependent scores/links.
288
+ * Returns number of traces deleted.
289
+ */
290
+ cleanupOldTraces(before: number): number;
291
+ /**
292
+ * Delete runs with started_at < before (timestamp ms). Cascades to their traces.
293
+ * Returns number of runs deleted.
294
+ */
295
+ cleanupOldRuns(before: number): number;
296
+ /**
297
+ * Delete agent_usage records with created_at < before (timestamp ms).
298
+ * Returns number deleted.
299
+ */
300
+ cleanupOldAgentUsage(before: number): number;
301
+ /**
302
+ * Return basic storage stats for the backing DB.
303
+ */
304
+ getStorageStats(): {
305
+ totalSizeBytes: number;
306
+ traceCount: number;
307
+ runCount: number;
308
+ oldestTrace: number | null;
309
+ newestTrace: number | null;
310
+ };
311
+ /**
312
+ * Get the active retention policy (from this instance config, which may come from persisted defaults).
313
+ */
314
+ getRetentionPolicy(): {
315
+ retentionDays: number;
316
+ cleanupIntervalHours: number;
317
+ };
318
+ /**
319
+ * Set retention policy for this DB (persists it) and update live config + reschedule timer if needed.
320
+ */
321
+ setRetentionPolicy(retentionDays: number, cleanupIntervalHours?: number): void;
322
+ /**
323
+ * Export traces to JSON, CSV, or OpenTelemetry (OTLP JSON)
324
+ */
325
+ export(format?: ExportFormat, filter?: TraceFilter): string;
326
+ /**
327
+ * Close the database connection
328
+ */
329
+ close(): void;
330
+ /**
331
+ * Evaluate traces using the provided scorers.
332
+ * If traceIds provided, scores only those; if runId, scores traces in that run; otherwise all traces.
333
+ */
334
+ evaluate(options: EvaluateOptions): Promise<ScorerResult[]>;
335
+ /**
336
+ * Score a single trace by id.
337
+ */
338
+ evaluateTrace(traceId: string, scorers: Scorer[]): Promise<ScorerResult>;
339
+ /**
340
+ * Internal helper to iterate traces with limited concurrency, run scorers, store scores.
341
+ */
342
+ private scoreLoop;
343
+ /**
344
+ * Internal: run all scorers on one trace (in parallel), catch errors, store successful scores.
345
+ */
346
+ private scoreTrace;
347
+ }
348
+ export declare function init(config?: TraceConfig): AgentTrace;
349
+ export declare function getAgentTrace(): AgentTrace;
350
+ /**
351
+ * Helper to create a Scorer from name + function.
352
+ */
353
+ export declare function score(name: string, fn: Scorer['fn']): Scorer;
354
+ /**
355
+ * Helper to create an AlertCondition (omits lastTriggered which is internal).
356
+ */
357
+ export declare function alert(config: Omit<AlertCondition, 'lastTriggered'>): AlertCondition;
358
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EACL,KAAK,EACL,GAAG,EACH,WAAW,EACX,WAAW,EACX,UAAU,EACV,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,eAAe,EACf,aAAa,EACb,cAAc,EACd,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,aAAa,EACb,YAAY,EACZ,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,OAAO,UAAU,CAAC;AAC/B,eAAO,MAAM,YAAY,uBAAuB,CAAC;AAEjD,YAAY,EACV,KAAK,EACL,GAAG,EACH,WAAW,EACX,WAAW,EACX,UAAU,EACV,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,MAAM,EACN,YAAY,EACZ,eAAe,EACf,aAAa,EACb,cAAc,EACd,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,MAAM,EACN,aAAa,EACb,aAAa,EACb,YAAY,EACZ,eAAe,GAChB,MAAM,YAAY,CAAC;AAKpB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AA6B3D;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,EACtB,kBAAkB,EAAE,MAAM,GACzB,IAAI,CAEN;AAiHD,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,gBAAgB,CAAwB;IAChD,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,gBAAgB,CAAC,CAAkD;IAC3E,OAAO,CAAC,WAAW,CAAuC;IAC1D,OAAO,CAAC,kBAAkB,CAA2D;gBAEzE,MAAM,GAAE,WAAgB;IAoCpC,OAAO,CAAC,qBAAqB;IA4B7B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,MAAM;IAatE;;OAEG;IACH,WAAW,CAAC,MAAM,GAAE,GAAG,CAAC,QAAQ,CAAa,GAAG,IAAI;IAwBpD;;OAEG;IACG,KAAK,CAAC,CAAC,EACX,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,GAAE;QACP,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,MAAM,CAAC,EAAE,UAAU,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,YAAY,CAAC;KACnB,GACL,OAAO,CAAC,CAAC,CAAC;IAuHb;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,MAAM;IAmBhE;;OAEG;IACH,SAAS,CAAC,MAAM,GAAE,WAAgB,GAAG,KAAK,EAAE;IAI5C;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;IAIlC;;OAEG;IACH,OAAO,CAAC,KAAK,GAAE,MAAY,GAAG,GAAG,EAAE;IAInC;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI;IAI9B;;OAEG;IACH,QAAQ,IAAI,UAAU;IAItB;;;OAGG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;OAEG;IACH,gBAAgB,CAAC,MAAM,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,aAAa;IAMhE;;;OAGG;IACH,gBAAgB,CACd,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GACvF,IAAI;IAoBP;;OAEG;IACH,aAAa,CAAC,MAAM,GAAE,gBAAqB,GAAG,gBAAgB,EAAE;IAIhE;;OAEG;IACH,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU;IASjF;;OAEG;IACH,eAAe,IAAI;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,EAAE;IAIpF;;OAEG;IACH,WAAW,CACT,MAAM,GAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GACxE,QAAQ,EAAE;IAIb;;OAEG;IACH,gBAAgB,CACd,MAAM,GAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GACxE,YAAY,EAAE;IAMjB;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IASzC;;OAEG;IACH,WAAW,IAAI;QACb,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,OAAO,EAAE,OAAO,CAAC;KAClB,EAAE;IAIH;;OAEG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK9B;;;OAGG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,MAAM,EAAE,CAAA;KAAE;IAItE;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,GAAG,IAAI;IAI3D;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,GAAG,IAAI;IAM5D;;;OAGG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAO5F;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAOlF;;OAEG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAMlC;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM;IAIxE;;OAEG;IACH,WAAW,IAAI,aAAa,EAAE;IAI9B;;OAEG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI/B;;OAEG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM;IAI7E;;OAEG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI/B;;;;OAIG;IACG,cAAc,CAClB,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,eAAe,EAAE,CAAC;IA2D7B;;;OAGG;IACG,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAmCxF;;;;;OAKG;IACH,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAO/F;;;;;;;OAOG;IACG,gBAAgB,CACpB,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,eAAe,EAAE,CAAC;IAY7B;;;;;OAKG;IACG,kBAAkB,CACtB,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,eAAe,EAAE,CAAC;IAa7B;;;;;OAKG;IACH,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY;IAQhD;;;OAGG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAOpC;;;OAGG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa;IAM5C;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAoB1C;;;;OAIG;IACG,WAAW,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YAkC9B,YAAY;IAsG1B;;OAEG;IACH,SAAS,IAAI,cAAc,EAAE;IAqB7B;;OAEG;IACH,eAAe,IAAI,YAAY,EAAE;IAIjC;;;OAGG;IACH,SAAS,IAAI,YAAY;IAezB;;;OAGG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAIxC;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAItC;;;OAGG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAI5C;;OAEG;IACH,eAAe,IAAI;QACjB,cAAc,EAAE,MAAM,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5B;IAID;;OAEG;IACH,kBAAkB,IAAI;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,oBAAoB,EAAE,MAAM,CAAA;KAAE;IAO7E;;OAEG;IACH,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI;IAY9E;;OAEG;IACH,MAAM,CAAC,MAAM,GAAE,YAAqB,EAAE,MAAM,GAAE,WAAgB,GAAG,MAAM;IAiDvE;;OAEG;IACH,KAAK,IAAI,IAAI;IAQb;;;OAGG;IACG,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAgBjE;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAQ9E;;OAEG;YACW,SAAS;IAgBvB;;OAEG;YACW,UAAU;CAwBzB;AAKD,wBAAgB,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,UAAU,CAGrD;AAED,wBAAgB,aAAa,IAAI,UAAU,CAK1C;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAE5D;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,GAAG,cAAc,CAKnF"}