@opendatalabs/connect 0.8.1-canary.4ee166c → 0.8.1-canary.4fd2d2d

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 (80) hide show
  1. package/README.md +22 -264
  2. package/dist/cli/index.d.ts +87 -0
  3. package/dist/cli/index.d.ts.map +1 -1
  4. package/dist/cli/index.js +1345 -1028
  5. package/dist/cli/index.js.map +1 -1
  6. package/dist/cli/mcp-server.d.ts +15 -0
  7. package/dist/cli/mcp-server.d.ts.map +1 -0
  8. package/dist/cli/mcp-server.js +182 -0
  9. package/dist/cli/mcp-server.js.map +1 -0
  10. package/dist/cli/queries.d.ts +128 -0
  11. package/dist/cli/queries.d.ts.map +1 -0
  12. package/dist/cli/queries.js +411 -0
  13. package/dist/cli/queries.js.map +1 -0
  14. package/dist/cli/render/connect-renderer.d.ts +18 -0
  15. package/dist/cli/render/connect-renderer.d.ts.map +1 -0
  16. package/dist/cli/render/connect-renderer.js +255 -0
  17. package/dist/cli/render/connect-renderer.js.map +1 -0
  18. package/dist/cli/render/format.d.ts +5 -0
  19. package/dist/cli/render/format.d.ts.map +1 -1
  20. package/dist/cli/render/format.js +37 -3
  21. package/dist/cli/render/format.js.map +1 -1
  22. package/dist/cli/render/index.d.ts +1 -0
  23. package/dist/cli/render/index.d.ts.map +1 -1
  24. package/dist/cli/render/index.js +1 -0
  25. package/dist/cli/render/index.js.map +1 -1
  26. package/dist/cli/render/theme.js +1 -1
  27. package/dist/cli/render/theme.js.map +1 -1
  28. package/dist/connectors/registry.d.ts +22 -0
  29. package/dist/connectors/registry.d.ts.map +1 -1
  30. package/dist/connectors/registry.js +58 -0
  31. package/dist/connectors/registry.js.map +1 -1
  32. package/dist/core/cli-types.d.ts +93 -2
  33. package/dist/core/cli-types.d.ts.map +1 -1
  34. package/dist/core/cli-types.js +36 -0
  35. package/dist/core/cli-types.js.map +1 -1
  36. package/dist/core/index.d.ts +3 -2
  37. package/dist/core/index.d.ts.map +1 -1
  38. package/dist/core/index.js +2 -2
  39. package/dist/core/index.js.map +1 -1
  40. package/dist/core/paths.d.ts +4 -1
  41. package/dist/core/paths.d.ts.map +1 -1
  42. package/dist/core/paths.js +15 -7
  43. package/dist/core/paths.js.map +1 -1
  44. package/dist/core/state-store.d.ts +15 -0
  45. package/dist/core/state-store.d.ts.map +1 -1
  46. package/dist/core/state-store.js +16 -2
  47. package/dist/core/state-store.js.map +1 -1
  48. package/dist/personal-server/client.d.ts +34 -0
  49. package/dist/personal-server/client.d.ts.map +1 -0
  50. package/dist/personal-server/client.js +94 -0
  51. package/dist/personal-server/client.js.map +1 -0
  52. package/dist/personal-server/index.d.ts +10 -0
  53. package/dist/personal-server/index.d.ts.map +1 -1
  54. package/dist/personal-server/index.js +79 -32
  55. package/dist/personal-server/index.js.map +1 -1
  56. package/dist/personal-server/scope-resolver.d.ts +22 -0
  57. package/dist/personal-server/scope-resolver.d.ts.map +1 -0
  58. package/dist/personal-server/scope-resolver.js +68 -0
  59. package/dist/personal-server/scope-resolver.js.map +1 -0
  60. package/dist/runtime/managed-playwright.d.ts +2 -0
  61. package/dist/runtime/managed-playwright.d.ts.map +1 -1
  62. package/dist/runtime/managed-playwright.js +7 -3
  63. package/dist/runtime/managed-playwright.js.map +1 -1
  64. package/dist/runtime/playwright/browser.js +2 -2
  65. package/dist/runtime/playwright/browser.js.map +1 -1
  66. package/dist/runtime/playwright/in-process-run.js +2 -2
  67. package/dist/runtime/playwright/in-process-run.js.map +1 -1
  68. package/dist/skills/index.d.ts +4 -0
  69. package/dist/skills/index.d.ts.map +1 -0
  70. package/dist/skills/index.js +3 -0
  71. package/dist/skills/index.js.map +1 -0
  72. package/dist/skills/paths.d.ts +18 -0
  73. package/dist/skills/paths.d.ts.map +1 -0
  74. package/dist/skills/paths.js +56 -0
  75. package/dist/skills/paths.js.map +1 -0
  76. package/dist/skills/registry.d.ts +48 -0
  77. package/dist/skills/registry.d.ts.map +1 -0
  78. package/dist/skills/registry.js +165 -0
  79. package/dist/skills/registry.js.map +1 -0
  80. package/package.json +2 -1
package/README.md CHANGED
@@ -6,7 +6,12 @@ Let your users bring their own data to your app.
6
6
 
7
7
  This branch also carries the new `vana` collection CLI preview.
8
8
 
9
- - install the current canary on macOS with Homebrew:
9
+ Start with the dedicated CLI README:
10
+
11
+ - [CLI README](./docs/CLI-README.md)
12
+ - [CLI review surface](./docs/CLI-REVIEW-SURFACE.md)
13
+
14
+ Install the current canary on macOS with Homebrew:
10
15
 
11
16
  ```bash
12
17
  brew tap vana-com/vana
@@ -14,18 +19,15 @@ brew install vana
14
19
  vana status
15
20
  ```
16
21
 
17
- - or use the hosted prerelease installer on macOS/Linux:
22
+ Or use the hosted prerelease installer on macOS/Linux:
18
23
 
19
24
  ```bash
20
25
  curl -fsSL https://raw.githubusercontent.com/vana-com/vana-connect/feat/connect-cli-v1/install/install.sh | sh -s -- --version canary-feat-connect-cli-v1
21
26
  ```
22
27
 
23
- - branch release page:
24
- `https://github.com/vana-com/vana-connect/releases/tag/canary-feat-connect-cli-v1`
25
- - demo media:
26
- [`status-and-sources.gif`](https://github.com/vana-com/vana-connect/releases/download/canary-feat-connect-cli-v1/status-and-sources.gif),
27
- [`data-inspection.gif`](https://github.com/vana-com/vana-connect/releases/download/canary-feat-connect-cli-v1/data-inspection.gif),
28
- [`connect-success.gif`](https://github.com/vana-com/vana-connect/releases/download/canary-feat-connect-cli-v1/connect-success.gif)
28
+ Branch prerelease:
29
+
30
+ - `https://github.com/vana-com/vana-connect/releases/tag/canary-feat-connect-cli-v1`
29
31
 
30
32
  Once installed, the best way to evaluate the CLI quickly is:
31
33
 
@@ -40,26 +42,13 @@ vana data show github
40
42
  vana logs github
41
43
  ```
42
44
 
43
- Current reviewable transcripts:
44
-
45
- - [`status`](./docs/transcripts/status.txt)
46
- - [`doctor`](./docs/transcripts/doctor.txt)
47
- - [`logs`](./docs/transcripts/logs.txt)
48
- - [`setup`](./docs/transcripts/setup.txt)
49
- - [`sources`](./docs/transcripts/sources.txt)
50
- - [`data list`](./docs/transcripts/data-list.txt)
51
- - [`data help`](./docs/transcripts/data-help.txt)
52
- - [`data list (empty)`](./docs/transcripts/data-list-empty.txt)
53
- - [`data show github`](./docs/transcripts/data-show-github.txt)
54
- - [`data show github (missing)`](./docs/transcripts/data-show-github-missing.txt)
55
- - [`data path github`](./docs/transcripts/data-path-github.txt)
56
- - [`connect github`](./docs/transcripts/connect-github-success.txt)
57
- - [`connect github --no-input`](./docs/transcripts/connect-github-no-input.txt)
58
- - [`connect github session reuse --no-input`](./docs/transcripts/connect-github-session-reuse-no-input.txt)
59
- - [`connect shop`](./docs/transcripts/connect-shop.txt)
60
- - [`connect shop --no-input`](./docs/transcripts/connect-shop-no-input.txt)
61
- - [`connect steam`](./docs/transcripts/connect-steam.txt)
62
- - [`connect steam --no-input`](./docs/transcripts/connect-steam-no-input.txt)
45
+ Key demo media:
46
+
47
+ <img src="https://github.com/vana-com/vana-connect/releases/download/canary-feat-connect-cli-v1/status.gif" width="800" alt="vana status" />
48
+
49
+ <img src="https://github.com/vana-com/vana-connect/releases/download/canary-feat-connect-cli-v1/connect-github-success.gif" width="800" alt="vana connect github" />
50
+
51
+ <img src="https://github.com/vana-com/vana-connect/releases/download/canary-feat-connect-cli-v1/data-show-github.gif" width="600" alt="vana data show github" />
63
52
 
64
53
  ## What problem this solves
65
54
 
@@ -135,244 +124,13 @@ If you prefer to integrate the SDK into an existing project, follow the steps be
135
124
 
136
125
  `vana-connect` now also ships a local collection CLI for connector setup and data export flows.
137
126
 
138
- ### Install
139
-
140
- If you are evaluating this branch before it lands on `main`, use the prerelease path in the next section. The stable install commands below are the intended post-merge install path.
141
-
142
- macOS with Homebrew:
143
-
144
- ```bash
145
- brew tap vana-com/vana
146
- brew install vana
147
- ```
148
-
149
- macOS and Linux:
150
-
151
- ```bash
152
- curl -fsSL https://raw.githubusercontent.com/vana-com/vana-connect/main/install/install.sh | sh
153
- ```
154
-
155
- Windows PowerShell:
156
-
157
- ```powershell
158
- iwr https://raw.githubusercontent.com/vana-com/vana-connect/main/install/install.ps1 -useb | iex
159
- ```
160
-
161
- Both installers fetch the latest GitHub release asset for your platform, verify its checksum, and install `vana` without requiring Node or npm.
162
-
163
- ### Canary / prerelease testing
164
-
165
- If you are testing an unreleased branch build, install from the branch installer and pass the prerelease tag explicitly.
166
-
167
- macOS with Homebrew:
168
-
169
- ```bash
170
- brew tap vana-com/vana
171
- brew install vana
172
- ```
173
-
174
- The current Homebrew tap is following the latest `vana-connect` canary while this CLI is still rolling out.
175
-
176
- macOS and Linux:
177
-
178
- ```bash
179
- curl -fsSL https://raw.githubusercontent.com/vana-com/vana-connect/feat/connect-cli-v1/install/install.sh | sh -s -- --version canary-feat-connect-cli-v1
180
- ```
181
-
182
- Windows PowerShell:
183
-
184
- ```powershell
185
- & ([scriptblock]::Create((iwr https://raw.githubusercontent.com/vana-com/vana-connect/feat/connect-cli-v1/install/install.ps1 -useb).Content)) --version canary-feat-connect-cli-v1
186
- ```
187
-
188
- The current hosted prerelease is:
189
-
190
- `canary-feat-connect-cli-v1`
191
-
192
- Release page:
193
-
194
- `https://github.com/vana-com/vana-connect/releases/tag/canary-feat-connect-cli-v1`
195
-
196
- If you want the npm package path as a fallback:
197
-
198
- ```bash
199
- npx -y @opendatalabs/connect status
200
- ```
201
-
202
- ### Commands
203
-
204
- ```bash
205
- vana --version
206
- vana version
207
- vana doctor
208
- vana logs
209
- vana connect
210
- vana sources
211
- vana connect github
212
- vana connect github --json --no-input
213
- vana status
214
- vana setup
215
- vana data list
216
- vana data path github --json
217
- vana data show github --json | jq '.summary.lines'
218
- ```
219
-
220
- - `vana connect` opens a guided source picker in human mode.
221
- - `vana connect <source>` runs the end-to-end collection flow.
222
- - `vana connect <source> --json --no-input` is the strict machine-safe path for agents and shell automation.
223
- - `vana sources` groups sources into ready-now vs manual-step flows.
224
- - `vana status` prioritizes sources that need attention before already-connected sources.
225
- - `vana doctor` checks the local install, browser runtime, and state directories.
226
- - `vana logs` lets you inspect the latest stored connector run logs without hunting through `~/.dataconnect/logs`.
227
- - `vana data ...` lets you inspect collected local datasets without opening the raw JSON file yourself.
228
-
229
- ### Shell contract
230
-
231
- - `--json` mode writes machine-readable output to stdout without human narration.
232
- - Successful command completion returns exit code `0`.
233
- - Actionable failures like missing source selection, unavailable connectors, or disabled prompting return exit code `1`.
234
- - `vana --version`, `vana version`, and `vana --help` return exit code `0`.
235
- - `vana doctor --json` includes `installMethod`, `channel`, and upgrade/uninstall commands so scripts can surface the right lifecycle guidance.
236
-
237
- ### Shell examples
238
-
239
- ```bash
240
- vana status --json | jq '.channel, .installMethod, .summary | {connectedCount, localCount, syncedCount}'
241
- vana sources --json | jq '.summary, .recommendedSource'
242
- vana data list --json | jq '.summary, .datasets[] | {source, dataState, path}'
243
- vana logs --json | jq '.latestLog, .logs[] | {source, path}'
244
- vana doctor --json | jq '.paths.executable, .paths.dataHome, .lifecycle'
245
- ```
246
-
247
- ### Upgrade, channels, and uninstall
248
-
249
- Upgrade with the same channel you installed from:
250
-
251
- You can always confirm the current install method and exact lifecycle commands with:
252
-
253
- ```bash
254
- vana doctor
255
- ```
256
-
257
- - Homebrew:
258
- ```bash
259
- brew update
260
- brew upgrade vana
261
- ```
262
- - macOS/Linux installer:
263
- ```bash
264
- curl -fsSL https://raw.githubusercontent.com/vana-com/vana-connect/main/install/install.sh | sh
265
- ```
266
- - Windows PowerShell installer:
267
- ```powershell
268
- iwr https://raw.githubusercontent.com/vana-com/vana-connect/main/install/install.ps1 -useb | iex
269
- ```
270
-
271
- Current channels:
272
-
273
- - `stable`: install from `main` or the eventual stable Homebrew tap state
274
- - `canary`: install from the latest prerelease assets while this CLI is still rolling out
275
-
276
- To remove the installed CLI:
277
-
278
- - Homebrew:
279
- ```bash
280
- brew uninstall vana
281
- ```
282
- - macOS/Linux installer:
283
- ```bash
284
- rm -f ~/.local/bin/vana
285
- rm -rf ~/.local/share/vana
286
- ```
287
- - Windows PowerShell installer:
288
- - remove `%USERPROFILE%\AppData\Local\Microsoft\WinGet\Links\vana.cmd`
289
- - remove `%USERPROFILE%\AppData\Local\Vana`
290
-
291
- To remove local runtime and collected state as well:
292
-
293
- ```bash
294
- rm -rf ~/.dataconnect
295
- ```
296
-
297
- ### CLI demos
298
-
299
- The branch also includes deterministic VHS demo scaffolding under
300
- [`docs/vhs/`](./docs/vhs/README.md).
301
-
302
- Branch prerelease preview media:
303
-
304
- - [`status-and-sources.gif`](https://github.com/vana-com/vana-connect/releases/download/canary-feat-connect-cli-v1/status-and-sources.gif)
305
- - [`data-inspection.gif`](https://github.com/vana-com/vana-connect/releases/download/canary-feat-connect-cli-v1/data-inspection.gif)
306
- - [`connect-success.gif`](https://github.com/vana-com/vana-connect/releases/download/canary-feat-connect-cli-v1/connect-success.gif)
307
-
308
- ![Vana status and sources demo](https://github.com/vana-com/vana-connect/releases/download/canary-feat-connect-cli-v1/status-and-sources.gif)
309
-
310
- ![Vana data inspection demo](https://github.com/vana-com/vana-connect/releases/download/canary-feat-connect-cli-v1/data-inspection.gif)
311
-
312
- ![Vana successful connect demo](https://github.com/vana-com/vana-connect/releases/download/canary-feat-connect-cli-v1/connect-success.gif)
127
+ If you only care about the CLI, start with [docs/CLI-README.md](./docs/CLI-README.md).
313
128
 
314
- Current reviewable transcripts:
129
+ For the full CLI review surface, use:
315
130
 
316
- - [`status`](./docs/transcripts/status.txt)
317
- - [`doctor`](./docs/transcripts/doctor.txt)
318
- - [`logs`](./docs/transcripts/logs.txt)
319
- - [`setup`](./docs/transcripts/setup.txt)
320
- - [`sources`](./docs/transcripts/sources.txt)
321
- - [`data list`](./docs/transcripts/data-list.txt)
322
- - [`data list (empty)`](./docs/transcripts/data-list-empty.txt)
323
- - [`data show github`](./docs/transcripts/data-show-github.txt)
324
- - [`data show github (missing)`](./docs/transcripts/data-show-github-missing.txt)
325
- - [`data path github`](./docs/transcripts/data-path-github.txt)
326
- - [`connect github`](./docs/transcripts/connect-github-success.txt)
327
- - [`connect github --no-input`](./docs/transcripts/connect-github-no-input.txt)
328
- - [`connect shop --no-input`](./docs/transcripts/connect-shop-no-input.txt)
329
- - [`connect steam --no-input`](./docs/transcripts/connect-steam-no-input.txt)
330
-
331
- To seed the fixture home used by the first tapes:
332
-
333
- ```bash
334
- pnpm demo:vhs:fixtures
335
- ```
336
-
337
- To render the checked-in tapes once `vhs` or Docker is available:
338
-
339
- ```bash
340
- pnpm demo:vhs
341
- ```
342
-
343
- To capture deterministic human-mode transcripts for review:
344
-
345
- ```bash
346
- pnpm demo:transcripts
347
- ```
348
-
349
- To watch the branch release lane, trigger Homebrew sync, and verify the
350
- published installer automatically:
351
-
352
- ```bash
353
- pnpm release:watch
354
- ```
355
-
356
- ### Local development
357
-
358
- From this repo:
359
-
360
- ```bash
361
- pnpm install
362
- pnpm build
363
- node dist/cli/bin.js status
364
- ```
365
-
366
- The CLI installs its local browser runtime under `~/.dataconnect/`.
367
- That runtime is bundled from `vana-connect` itself, so `vana setup` does not require a separate `data-connect` checkout.
368
-
369
- To build a standalone launcher plus app payload locally:
370
-
371
- ```bash
372
- pnpm build
373
- pnpm build:sea
374
- ./artifacts/sea/vana-linux-x64/vana status --json
375
- ```
131
+ - [CLI review surface](./docs/CLI-REVIEW-SURFACE.md)
132
+ - [CLI transcripts](./docs/transcripts/README.md)
133
+ - [CLI demos](./docs/vhs/README.md)
376
134
 
377
135
  `pnpm build:sea` uses Node 25's `--build-sea` flow to create a small `vana` launcher and packages the real app payload next to it under `app/`.
378
136
  It produces a platform-specific release directory plus a release archive and matching checksum file under `artifacts/sea/`.
@@ -1,2 +1,89 @@
1
+ import { readCliState } from "../core/index.js";
2
+ import type { CliChannel, CliInstallMethod, CliStatus, SourceStatus } from "../core/cli-types.js";
3
+ import type { AvailableSource } from "../connectors/registry.js";
4
+ interface SourceLabelMap {
5
+ [source: string]: string;
6
+ }
7
+ interface SourceMetadataMap {
8
+ [source: string]: {
9
+ name: string;
10
+ company?: string;
11
+ description?: string;
12
+ authMode?: "automated" | "interactive" | "legacy";
13
+ };
14
+ }
15
+ type RenderTone = "accent" | "success" | "warning" | "error" | "muted" | "info";
1
16
  export declare function runCli(argv?: string[]): Promise<number>;
17
+ export declare function formatUptime(seconds: number): string;
18
+ export declare function displaySource(source: string, labels?: SourceLabelMap): string;
19
+ export declare function humanizeIssue(message: string): string;
20
+ export declare function gatherSourceStatuses(storedSources: Record<string, Awaited<ReturnType<typeof readCliState>>["sources"][string]>, metadata?: SourceMetadataMap): Promise<SourceStatus[]>;
21
+ export declare function listInstalledConnectorFiles(): Promise<Array<{
22
+ source: string;
23
+ path: string;
24
+ }>>;
25
+ export declare function buildStatusNextSteps(sources: SourceStatus[], sourceLabels?: SourceLabelMap, runtime?: CliStatus["runtime"], availableSources?: Array<{
26
+ id: string;
27
+ name: string;
28
+ authMode?: string;
29
+ }>): string[];
30
+ export declare function buildSourcesNextSteps(recommendedSource: {
31
+ id: string;
32
+ name: string;
33
+ authMode?: "automated" | "interactive" | "legacy";
34
+ } | null | undefined, connectedCount: number): string[];
35
+ export declare function buildDataListNextSteps(datasetRecords: Array<{
36
+ source: string;
37
+ name?: string | null;
38
+ }>, registrySources: Array<{
39
+ id: string;
40
+ authMode?: "automated" | "interactive" | "legacy";
41
+ }>): string[];
42
+ export declare function buildDataShowNextSteps(source: string, datasetCount: number, sourceLabels?: SourceLabelMap): string[];
43
+ export declare function getCliVersion(): string;
44
+ export declare function getCliChannel(version?: string): "stable" | "canary";
45
+ export declare function getCliInstallMethod(execPath?: string): CliInstallMethod;
46
+ export declare function getDoctorAppRootPath(installMethod: CliInstallMethod, execPath?: string): string | null;
47
+ export declare function formatInstallMethodLabel(method: CliInstallMethod): string;
48
+ export declare function getLifecycleCommands(installMethod: CliInstallMethod, channel: CliChannel): {
49
+ upgrade: string;
50
+ uninstall: string;
51
+ };
52
+ export declare function createSourceLabelMap(sources: Array<{
53
+ id: string;
54
+ name: string;
55
+ }>): SourceLabelMap;
56
+ export declare function createSourceMetadataMap(sources: Array<{
57
+ id: string;
58
+ name: string;
59
+ company?: string;
60
+ description?: string;
61
+ authMode?: "automated" | "interactive" | "legacy";
62
+ }>): SourceMetadataMap;
63
+ export declare function getSourceStatusPresentation(source: SourceStatus): {
64
+ label: string;
65
+ tone: RenderTone;
66
+ };
67
+ export declare function toneForRuntime(runtime: CliStatus["runtime"]): RenderTone;
68
+ export declare function loadRegistrySources(): Promise<AvailableSource[]>;
69
+ export declare function compareSourceStatusOrder(left: SourceStatus, right: SourceStatus): number;
70
+ export declare function rankSourceStatus(source: SourceStatus): number;
71
+ export declare function readResultSummary(resultPath: string): Promise<{
72
+ lines: string[];
73
+ } | null>;
74
+ export declare function summarizeResultData(data: Record<string, unknown>): {
75
+ lines: string[];
76
+ } | null;
77
+ export declare function formatTimestamp(value: string): string;
78
+ export declare function compareDatasetOrder(left: {
79
+ lastRunAt: string | null;
80
+ name: string | undefined;
81
+ source: string;
82
+ }, right: {
83
+ lastRunAt: string | null;
84
+ name: string | undefined;
85
+ source: string;
86
+ }): number;
87
+ export declare function hasCollectedData(dataState: SourceStatus["dataState"] | null | undefined): boolean;
88
+ export {};
2
89
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAkGA,wBAAsB,MAAM,CAAC,IAAI,WAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAiPjE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAmCA,OAAO,EAKL,YAAY,EAIb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACV,UAAU,EAEV,gBAAgB,EAEhB,SAAS,EACT,YAAY,EACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAkCjE,UAAU,cAAc;IACtB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED,UAAU,iBAAiB;IACzB,CAAC,MAAM,EAAE,MAAM,GAAG;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,WAAW,GAAG,aAAa,GAAG,QAAQ,CAAC;KACnD,CAAC;CACH;AA2BD,KAAK,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;AAehF,wBAAsB,MAAM,CAAC,IAAI,WAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CA4XjE;AA2lCD,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAWpD;AA+/BD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,cAAmB,GAC1B,MAAM,CAER;AAkBD,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKrD;AAkCD,wBAAsB,oBAAoB,CACxC,aAAa,EAAE,MAAM,CACnB,MAAM,EACN,OAAO,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAC5D,EACD,QAAQ,GAAE,iBAAsB,GAC/B,OAAO,CAAC,YAAY,EAAE,CAAC,CAiDzB;AAED,wBAAsB,2BAA2B,IAAI,OAAO,CAC1D,KAAK,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CACxC,CAyBA;AA6KD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,YAAY,EAAE,EACvB,YAAY,GAAE,cAAmB,EACjC,OAAO,GAAE,SAAS,CAAC,SAAS,CAAe,EAC3C,gBAAgB,GAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAM,GAC5E,MAAM,EAAE,CAsGV;AAED,wBAAgB,qBAAqB,CACnC,iBAAiB,EACb;IACE,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,WAAW,GAAG,aAAa,GAAG,QAAQ,CAAC;CACnD,GACD,IAAI,GACJ,SAAS,EACb,cAAc,EAAE,MAAM,GACrB,MAAM,EAAE,CAgBV;AAED,wBAAgB,sBAAsB,CACpC,cAAc,EAAE,KAAK,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC,EACF,eAAe,EAAE,KAAK,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,WAAW,GAAG,aAAa,GAAG,QAAQ,CAAC;CACnD,CAAC,GACD,MAAM,EAAE,CAmBV;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,YAAY,GAAE,cAAmB,GAChC,MAAM,EAAE,CAQV;AA4ED,wBAAgB,aAAa,IAAI,MAAM,CA2BtC;AAED,wBAAgB,aAAa,CAAC,OAAO,SAAkB,GAAG,QAAQ,GAAG,QAAQ,CAc5E;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,SAAmB,GAC1B,gBAAgB,CA+BlB;AAMD,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,gBAAgB,EAC/B,QAAQ,SAAmB,GAC1B,MAAM,GAAG,IAAI,CAQf;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAWzE;AAED,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,gBAAgB,EAC/B,OAAO,EAAE,UAAU,GAClB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CA4BxC;AAWD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAC3C,cAAc,CAEhB;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,KAAK,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,WAAW,GAAG,aAAa,GAAG,QAAQ,CAAC;CACnD,CAAC,GACD,iBAAiB,CAYnB;AAID,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,YAAY,GAAG;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,CAAC;CAClB,CAqDA;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,GAAG,UAAU,CAQxE;AAqED,wBAAsB,mBAAmB,+BAQxC;AAYD,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,YAAY,GAClB,MAAM,CAgBR;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CA0B7D;AAeD,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CAAC,CAOrC;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B;IAAE,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CAoD5B;AA6BD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUrD;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE;IACJ,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB,EACD,KAAK,EAAE;IACL,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB,GACA,MAAM,CAaR;AAsBD,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,YAAY,CAAC,WAAW,CAAC,GAAG,IAAI,GAAG,SAAS,GACtD,OAAO,CAMT"}