@unbrowse/sdk 6.17.0-preview.6

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.
@@ -0,0 +1,372 @@
1
+ export type SkillLifecycle = "active" | "deprecated" | "disabled";
2
+ export type OwnerType = "agent" | "marketplace" | "user";
3
+ export type Idempotency = "safe" | "unsafe";
4
+ export type VerificationStatus = "verified" | "unverified" | "failed" | "pending" | "disabled";
5
+ export type GraphVisibility = "shadow" | "public";
6
+ export interface SkillSubmissionProvenance {
7
+ submitted_at: string;
8
+ submitter_agent_id?: string;
9
+ client_trace_version?: string;
10
+ client_code_hash?: string;
11
+ client_git_sha?: string;
12
+ transport?: string;
13
+ release_manifest_version?: string;
14
+ release_manifest_verified?: boolean;
15
+ release_manifest_reason?: string;
16
+ }
17
+ export interface SkillTrustMetadata {
18
+ graph_visibility: GraphVisibility;
19
+ promotion_reason: string;
20
+ submission_count: number;
21
+ unique_submitters: number;
22
+ verified_release_submissions: number;
23
+ unique_verified_submitters: number;
24
+ verified_ratio: number;
25
+ last_submission_at: string;
26
+ }
27
+ export interface EndpointCorroboration {
28
+ submission_count: number;
29
+ unique_submitters: number;
30
+ verified_release_submissions: number;
31
+ unique_verified_submitters: number;
32
+ last_submission_at: string;
33
+ submitter_agent_ids?: string[];
34
+ verified_release_submitter_ids?: string[];
35
+ }
36
+ export interface ResponseSchema {
37
+ type: string;
38
+ description?: string;
39
+ properties?: Record<string, ResponseSchema>;
40
+ items?: ResponseSchema;
41
+ required?: string[];
42
+ anyOf?: ResponseSchema[];
43
+ inferred_from_samples: number;
44
+ }
45
+ export interface ProjectionOptions {
46
+ fields?: string[];
47
+ compact?: boolean;
48
+ max_depth?: number;
49
+ raw?: boolean;
50
+ }
51
+ export interface EndpointDescriptor {
52
+ endpoint_id: string;
53
+ method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "HEAD" | "OPTIONS" | "WS";
54
+ url_template: string;
55
+ description?: string;
56
+ query?: Record<string, unknown>;
57
+ path_params?: Record<string, string>;
58
+ body_params?: Record<string, unknown>;
59
+ body?: Record<string, unknown>;
60
+ idempotency: Idempotency;
61
+ verification_status: VerificationStatus;
62
+ reliability_score: number;
63
+ last_verified_at?: string;
64
+ response_schema?: ResponseSchema;
65
+ trigger_url?: string;
66
+ exec_strategy?: "server" | "trigger-intercept" | "browser";
67
+ graph_visibility?: GraphVisibility;
68
+ corroboration?: EndpointCorroboration;
69
+ }
70
+ export interface SkillManifest {
71
+ skill_id: string;
72
+ version: string;
73
+ schema_version: string;
74
+ name: string;
75
+ intent_signature: string;
76
+ domain: string;
77
+ subdomain?: string;
78
+ description: string;
79
+ owner_type: OwnerType;
80
+ execution_type: "http" | "browser-capture";
81
+ auth_profile_ref?: string;
82
+ endpoints: EndpointDescriptor[];
83
+ lifecycle: SkillLifecycle;
84
+ created_at: string;
85
+ updated_at: string;
86
+ intents?: string[];
87
+ base_price_usd?: number;
88
+ owner_compensation_opt_in?: boolean;
89
+ provenance_events?: SkillSubmissionProvenance[];
90
+ trust?: SkillTrustMetadata;
91
+ }
92
+ export interface ExecutionTrace {
93
+ trace_id: string;
94
+ skill_id: string;
95
+ endpoint_id: string;
96
+ started_at: string;
97
+ completed_at: string;
98
+ success: boolean;
99
+ status_code?: number;
100
+ error?: string;
101
+ result?: unknown;
102
+ tokens_used?: number;
103
+ tokens_saved?: number;
104
+ tokens_saved_pct?: number;
105
+ trace_version?: string;
106
+ }
107
+ export interface OrchestrationTiming {
108
+ search_ms: number;
109
+ get_skill_ms: number;
110
+ execute_ms: number;
111
+ total_ms: number;
112
+ source: "marketplace" | "live-capture" | "dom-fallback" | "route-cache" | "browser-action";
113
+ cache_hit: boolean;
114
+ candidates_found: number;
115
+ candidates_tried: number;
116
+ skill_id?: string;
117
+ tokens_saved: number;
118
+ response_bytes: number;
119
+ time_saved_pct: number;
120
+ tokens_saved_pct: number;
121
+ baseline_total_ms?: number;
122
+ actual_total_ms?: number;
123
+ time_saved_ms?: number;
124
+ baseline_cost_uc?: number;
125
+ actual_cost_uc?: number;
126
+ cost_saved_uc?: number;
127
+ paid_search_uc?: number;
128
+ paid_execution_uc?: number;
129
+ trace_version?: string;
130
+ }
131
+ export interface AgentImpact {
132
+ source: string;
133
+ cache_hit: boolean;
134
+ browser_avoided: boolean;
135
+ baseline_total_ms?: number;
136
+ actual_total_ms?: number;
137
+ time_saved_ms?: number;
138
+ time_saved_pct: number;
139
+ tokens_saved: number;
140
+ tokens_saved_pct: number;
141
+ baseline_cost_uc?: number;
142
+ actual_cost_uc?: number;
143
+ cost_saved_uc?: number;
144
+ }
145
+ export interface AgentNextAction {
146
+ endpoint_id: string;
147
+ operation_id: string;
148
+ title: string;
149
+ why: string;
150
+ command: string;
151
+ }
152
+ export interface RequestOptions {
153
+ headers?: HeadersInit;
154
+ signal?: AbortSignal;
155
+ timeoutMs?: number;
156
+ }
157
+ export interface ResolveInput {
158
+ intent: string;
159
+ url?: string;
160
+ params?: Record<string, unknown>;
161
+ context?: {
162
+ url?: string;
163
+ domain?: string;
164
+ };
165
+ projection?: ProjectionOptions;
166
+ confirmUnsafe?: boolean;
167
+ confirmThirdPartyTerms?: boolean;
168
+ dryRun?: boolean;
169
+ forceCapture?: boolean;
170
+ }
171
+ export interface ExecuteInput {
172
+ skillId: string;
173
+ params?: Record<string, unknown>;
174
+ projection?: ProjectionOptions;
175
+ confirmUnsafe?: boolean;
176
+ confirmThirdPartyTerms?: boolean;
177
+ dryRun?: boolean;
178
+ intent?: string;
179
+ contextUrl?: string;
180
+ }
181
+ export interface LoginInput {
182
+ url: string;
183
+ }
184
+ export interface StealAuthInput {
185
+ url: string;
186
+ browser?: "auto" | "firefox" | "chrome" | "chromium";
187
+ chromeProfile?: string;
188
+ firefoxProfile?: string;
189
+ chromiumProfile?: string;
190
+ chromiumUserDataDir?: string;
191
+ chromiumCookieDbPath?: string;
192
+ safeStorageService?: string;
193
+ browserName?: string;
194
+ }
195
+ export interface SearchInput {
196
+ intent: string;
197
+ k?: number;
198
+ }
199
+ export interface SearchDomainInput extends SearchInput {
200
+ domain: string;
201
+ }
202
+ export interface FeedbackInput {
203
+ skillId: string;
204
+ endpointId: string;
205
+ rating: number;
206
+ outcome?: string;
207
+ diagnostics?: {
208
+ total_ms?: number;
209
+ bottleneck?: string;
210
+ wrong_endpoint?: boolean;
211
+ expected_data?: string;
212
+ got_data?: string;
213
+ trace_version?: string;
214
+ };
215
+ }
216
+ export interface AvailableEndpoint {
217
+ endpoint_id: string;
218
+ score?: number;
219
+ method?: string;
220
+ url_template?: string;
221
+ description?: string;
222
+ schema_summary?: Record<string, unknown> | null;
223
+ example_fields?: string[];
224
+ input_params?: Array<{
225
+ key: string;
226
+ type?: string;
227
+ required?: boolean;
228
+ example_value?: string;
229
+ }>;
230
+ requires_third_party_terms_confirmation?: boolean;
231
+ third_party_terms_policy_domain?: string;
232
+ third_party_terms_policy_reason?: string;
233
+ [key: string]: unknown;
234
+ }
235
+ export interface ResolveResponse {
236
+ result: unknown;
237
+ trace: ExecutionTrace;
238
+ source: "marketplace" | "live-capture" | "dom-fallback" | "first-pass";
239
+ skill?: SkillManifest;
240
+ timing?: OrchestrationTiming;
241
+ available_endpoints?: AvailableEndpoint[];
242
+ impact?: AgentImpact;
243
+ next_actions?: AgentNextAction[];
244
+ _recovery?: Record<string, unknown>;
245
+ [key: string]: unknown;
246
+ }
247
+ export interface ExecuteResponse {
248
+ result: unknown;
249
+ trace: ExecutionTrace;
250
+ skill?: SkillManifest;
251
+ timing?: OrchestrationTiming;
252
+ source?: string;
253
+ impact?: AgentImpact;
254
+ next_actions?: AgentNextAction[];
255
+ _recovery?: Record<string, unknown>;
256
+ [key: string]: unknown;
257
+ }
258
+ export interface SearchHit {
259
+ skill_id?: string;
260
+ score?: number;
261
+ confidence?: string;
262
+ skill?: SkillManifest;
263
+ [key: string]: unknown;
264
+ }
265
+ export interface SearchResponse {
266
+ results?: SearchHit[];
267
+ [key: string]: unknown;
268
+ }
269
+ export interface LoginResponse {
270
+ success?: boolean;
271
+ cookies_stored?: number;
272
+ [key: string]: unknown;
273
+ }
274
+ export interface StealAuthResponse {
275
+ success?: boolean;
276
+ cookies_stored?: number;
277
+ [key: string]: unknown;
278
+ }
279
+ export interface FeedbackResponse {
280
+ ok: boolean;
281
+ avg_rating?: number;
282
+ [key: string]: unknown;
283
+ }
284
+ export interface StatsResponse {
285
+ npm?: Record<string, unknown>;
286
+ github?: Record<string, unknown>;
287
+ agents?: Record<string, unknown>;
288
+ fetched_at?: string;
289
+ [key: string]: unknown;
290
+ }
291
+ export interface HealthResponse {
292
+ status: string;
293
+ trace_version?: string;
294
+ code_hash?: string;
295
+ git_sha?: string;
296
+ [key: string]: unknown;
297
+ }
298
+ export interface DashboardEarnings {
299
+ total_usd?: number;
300
+ unsettled_usd?: number;
301
+ by_skill?: Array<{
302
+ skill_id: string;
303
+ executions: number;
304
+ usd: number;
305
+ }>;
306
+ [key: string]: unknown;
307
+ }
308
+ export interface DashboardSpending {
309
+ total_usd?: number;
310
+ by_skill?: Array<{
311
+ skill_id: string;
312
+ executions: number;
313
+ usd: number;
314
+ }>;
315
+ [key: string]: unknown;
316
+ }
317
+ export interface DashboardContributions {
318
+ routes_published?: number;
319
+ routes_active?: number;
320
+ unique_domains?: number;
321
+ [key: string]: unknown;
322
+ }
323
+ export interface Dashboard {
324
+ agent_id?: string;
325
+ wallet_address?: string;
326
+ earnings?: DashboardEarnings;
327
+ spending?: DashboardSpending;
328
+ contributions?: DashboardContributions;
329
+ [key: string]: unknown;
330
+ }
331
+ export interface CreatorTransaction {
332
+ tx_id: string;
333
+ skill_id?: string;
334
+ endpoint_id?: string;
335
+ amount_usd?: number;
336
+ amount_uc?: number;
337
+ settled_at?: string;
338
+ [key: string]: unknown;
339
+ }
340
+ export interface CreatorTransactionsResponse {
341
+ ledger?: {
342
+ total_usd?: number;
343
+ unsettled_usd?: number;
344
+ [key: string]: unknown;
345
+ };
346
+ transactions?: CreatorTransaction[];
347
+ [key: string]: unknown;
348
+ }
349
+ export interface AttributionLedger {
350
+ indexer_id?: string;
351
+ total_usd?: number;
352
+ by_skill?: Array<{
353
+ skill_id: string;
354
+ usd: number;
355
+ executions: number;
356
+ }>;
357
+ [key: string]: unknown;
358
+ }
359
+ export interface WalletInfo {
360
+ wallet_address?: string;
361
+ wallet_provider?: string;
362
+ [key: string]: unknown;
363
+ }
364
+ export interface UnbrowseClientOptions {
365
+ baseUrl?: string;
366
+ apiKey?: string;
367
+ headers?: HeadersInit;
368
+ fetch?: typeof fetch;
369
+ timeoutMs?: number;
370
+ clientId?: string;
371
+ }
372
+ //# sourceMappingURL=contracts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":""}
@@ -0,0 +1,45 @@
1
+ import type { X402PaymentRequirement } from "./x402.js";
2
+ export declare class UnbrowseApiError extends Error {
3
+ readonly status: number;
4
+ readonly path: string;
5
+ readonly data: unknown;
6
+ readonly headers: Headers;
7
+ constructor(message: string, options: {
8
+ status: number;
9
+ path: string;
10
+ data: unknown;
11
+ headers: Headers;
12
+ });
13
+ }
14
+ /**
15
+ * Thrown when the backend returns 402 Payment Required with a parsable
16
+ * x402 `accepts` array. Day 4 wires a `payAndRetry` helper that consumes
17
+ * this error + a wallet and replays the request with an `X-PAYMENT` header.
18
+ */
19
+ export declare class PaymentRequiredError extends UnbrowseApiError {
20
+ readonly accepts: X402PaymentRequirement[];
21
+ readonly resourceUrl: string;
22
+ readonly skillId?: string;
23
+ constructor(message: string, accepts: X402PaymentRequirement[], resourceUrl: string, skillId?: string);
24
+ }
25
+ /**
26
+ * Thrown when the platform sponsor wallet would normally cover the call
27
+ * but the per-agent or global cap is exhausted (or no wallet is configured).
28
+ * Caller can still pay directly via `payAndRetry` using the carried `accepts`.
29
+ */
30
+ export declare class SponsorExhaustedError extends PaymentRequiredError {
31
+ readonly reason: "agent_cap" | "global_cap" | "no_wallet";
32
+ readonly remainingCreditUsd: number;
33
+ constructor(message: string, accepts: X402PaymentRequirement[], resourceUrl: string, reason: "agent_cap" | "global_cap" | "no_wallet", remainingCreditUsd: number, skillId?: string);
34
+ }
35
+ /**
36
+ * Thrown when the SDK cannot locate, spawn, or reach a local `unbrowse`
37
+ * runtime. The `cause` field discriminates whether the failure was
38
+ * spawn-time, probe-time, or because no binary was found on disk.
39
+ */
40
+ export declare class RuntimeUnavailableError extends UnbrowseApiError {
41
+ readonly cause: "spawn_failed" | "probe_failed" | "binary_missing";
42
+ readonly attemptedPort?: number;
43
+ constructor(message: string, cause: "spawn_failed" | "probe_failed" | "binary_missing", attemptedPort?: number);
44
+ }
45
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAExD,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;gBAEd,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE;CAQxG;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,gBAAgB;IACxD,QAAQ,CAAC,OAAO,EAAE,sBAAsB,EAAE,CAAC;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;gBAGxB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,sBAAsB,EAAE,EACjC,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM;CAanB;AAED;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,oBAAoB;IAC7D,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,YAAY,GAAG,WAAW,CAAC;IAC1D,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;gBAGlC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,sBAAsB,EAAE,EACjC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,WAAW,GAAG,YAAY,GAAG,WAAW,EAChD,kBAAkB,EAAE,MAAM,EAC1B,OAAO,CAAC,EAAE,MAAM;CAOnB;AAED;;;;GAIG;AACH,qBAAa,uBAAwB,SAAQ,gBAAgB;IAC3D,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,GAAG,gBAAgB,CAAC;IACnE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;gBAG9B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,cAAc,GAAG,cAAc,GAAG,gBAAgB,EACzD,aAAa,CAAC,EAAE,MAAM;CAYzB"}
package/dist/errors.js ADDED
@@ -0,0 +1,72 @@
1
+ export class UnbrowseApiError extends Error {
2
+ status;
3
+ path;
4
+ data;
5
+ headers;
6
+ constructor(message, options) {
7
+ super(message);
8
+ this.name = "UnbrowseApiError";
9
+ this.status = options.status;
10
+ this.path = options.path;
11
+ this.data = options.data;
12
+ this.headers = options.headers;
13
+ }
14
+ }
15
+ /**
16
+ * Thrown when the backend returns 402 Payment Required with a parsable
17
+ * x402 `accepts` array. Day 4 wires a `payAndRetry` helper that consumes
18
+ * this error + a wallet and replays the request with an `X-PAYMENT` header.
19
+ */
20
+ export class PaymentRequiredError extends UnbrowseApiError {
21
+ accepts;
22
+ resourceUrl;
23
+ skillId;
24
+ constructor(message, accepts, resourceUrl, skillId) {
25
+ super(message, {
26
+ status: 402,
27
+ path: resourceUrl,
28
+ data: { accepts, resourceUrl, skillId },
29
+ headers: new Headers(),
30
+ });
31
+ this.name = "PaymentRequiredError";
32
+ this.accepts = accepts;
33
+ this.resourceUrl = resourceUrl;
34
+ this.skillId = skillId;
35
+ }
36
+ }
37
+ /**
38
+ * Thrown when the platform sponsor wallet would normally cover the call
39
+ * but the per-agent or global cap is exhausted (or no wallet is configured).
40
+ * Caller can still pay directly via `payAndRetry` using the carried `accepts`.
41
+ */
42
+ export class SponsorExhaustedError extends PaymentRequiredError {
43
+ reason;
44
+ remainingCreditUsd;
45
+ constructor(message, accepts, resourceUrl, reason, remainingCreditUsd, skillId) {
46
+ super(message, accepts, resourceUrl, skillId);
47
+ this.name = "SponsorExhaustedError";
48
+ this.reason = reason;
49
+ this.remainingCreditUsd = remainingCreditUsd;
50
+ }
51
+ }
52
+ /**
53
+ * Thrown when the SDK cannot locate, spawn, or reach a local `unbrowse`
54
+ * runtime. The `cause` field discriminates whether the failure was
55
+ * spawn-time, probe-time, or because no binary was found on disk.
56
+ */
57
+ export class RuntimeUnavailableError extends UnbrowseApiError {
58
+ cause;
59
+ attemptedPort;
60
+ constructor(message, cause, attemptedPort) {
61
+ super(message, {
62
+ status: 0,
63
+ path: attemptedPort ? `http://127.0.0.1:${attemptedPort}` : "<runtime>",
64
+ data: { cause, attemptedPort },
65
+ headers: new Headers(),
66
+ });
67
+ this.name = "RuntimeUnavailableError";
68
+ this.cause = cause;
69
+ this.attemptedPort = attemptedPort;
70
+ }
71
+ }
72
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAChC,MAAM,CAAS;IACf,IAAI,CAAS;IACb,IAAI,CAAU;IACd,OAAO,CAAU;IAE1B,YAAY,OAAe,EAAE,OAA0E;QACrG,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACjC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,oBAAqB,SAAQ,gBAAgB;IAC/C,OAAO,CAA2B;IAClC,WAAW,CAAS;IACpB,OAAO,CAAU;IAE1B,YACE,OAAe,EACf,OAAiC,EACjC,WAAmB,EACnB,OAAgB;QAEhB,KAAK,CAAC,OAAO,EAAE;YACb,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE;YACvC,OAAO,EAAE,IAAI,OAAO,EAAE;SACvB,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,qBAAsB,SAAQ,oBAAoB;IACpD,MAAM,CAA2C;IACjD,kBAAkB,CAAS;IAEpC,YACE,OAAe,EACf,OAAiC,EACjC,WAAmB,EACnB,MAAgD,EAChD,kBAA0B,EAC1B,OAAgB;QAEhB,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IAC/C,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,uBAAwB,SAAQ,gBAAgB;IAClD,KAAK,CAAqD;IAC1D,aAAa,CAAU;IAEhC,YACE,OAAe,EACf,KAAyD,EACzD,aAAsB;QAEtB,KAAK,CAAC,OAAO,EAAE;YACb,MAAM,EAAE,CAAC;YACT,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,oBAAoB,aAAa,EAAE,CAAC,CAAC,CAAC,WAAW;YACvE,IAAI,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE;YAC9B,OAAO,EAAE,IAAI,OAAO,EAAE;SACvB,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;CACF"}