@opendatalabs/connect 0.8.1-canary.320bfb5 → 0.8.1-canary.32aeef0

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 (95) hide show
  1. package/README.md +35 -98
  2. package/dist/cli/bin.js +8 -0
  3. package/dist/cli/bin.js.map +1 -1
  4. package/dist/cli/index.d.ts +87 -0
  5. package/dist/cli/index.d.ts.map +1 -1
  6. package/dist/cli/index.js +2968 -324
  7. package/dist/cli/index.js.map +1 -1
  8. package/dist/cli/main.d.ts.map +1 -1
  9. package/dist/cli/main.js +8 -0
  10. package/dist/cli/main.js.map +1 -1
  11. package/dist/cli/mcp-server.d.ts +15 -0
  12. package/dist/cli/mcp-server.d.ts.map +1 -0
  13. package/dist/cli/mcp-server.js +199 -0
  14. package/dist/cli/mcp-server.js.map +1 -0
  15. package/dist/cli/queries.d.ts +128 -0
  16. package/dist/cli/queries.d.ts.map +1 -0
  17. package/dist/cli/queries.js +411 -0
  18. package/dist/cli/queries.js.map +1 -0
  19. package/dist/cli/render/connect-renderer.d.ts +18 -0
  20. package/dist/cli/render/connect-renderer.d.ts.map +1 -0
  21. package/dist/cli/render/connect-renderer.js +255 -0
  22. package/dist/cli/render/connect-renderer.js.map +1 -0
  23. package/dist/cli/render/format.d.ts +7 -0
  24. package/dist/cli/render/format.d.ts.map +1 -1
  25. package/dist/cli/render/format.js +58 -5
  26. package/dist/cli/render/format.js.map +1 -1
  27. package/dist/cli/render/index.d.ts +2 -0
  28. package/dist/cli/render/index.d.ts.map +1 -1
  29. package/dist/cli/render/index.js +2 -0
  30. package/dist/cli/render/index.js.map +1 -1
  31. package/dist/cli/render/progress.d.ts +11 -0
  32. package/dist/cli/render/progress.d.ts.map +1 -0
  33. package/dist/cli/render/progress.js +56 -0
  34. package/dist/cli/render/progress.js.map +1 -0
  35. package/dist/cli/render/theme.d.ts.map +1 -1
  36. package/dist/cli/render/theme.js +26 -2
  37. package/dist/cli/render/theme.js.map +1 -1
  38. package/dist/connectors/registry.d.ts +22 -0
  39. package/dist/connectors/registry.d.ts.map +1 -1
  40. package/dist/connectors/registry.js +73 -6
  41. package/dist/connectors/registry.js.map +1 -1
  42. package/dist/core/cli-types.d.ts +564 -1
  43. package/dist/core/cli-types.d.ts.map +1 -1
  44. package/dist/core/cli-types.js +257 -1
  45. package/dist/core/cli-types.js.map +1 -1
  46. package/dist/core/index.d.ts +3 -2
  47. package/dist/core/index.d.ts.map +1 -1
  48. package/dist/core/index.js +2 -2
  49. package/dist/core/index.js.map +1 -1
  50. package/dist/core/paths.d.ts +20 -1
  51. package/dist/core/paths.d.ts.map +1 -1
  52. package/dist/core/paths.js +60 -7
  53. package/dist/core/paths.js.map +1 -1
  54. package/dist/core/state-store.d.ts +21 -0
  55. package/dist/core/state-store.d.ts.map +1 -1
  56. package/dist/core/state-store.js +83 -5
  57. package/dist/core/state-store.js.map +1 -1
  58. package/dist/personal-server/client.d.ts +34 -0
  59. package/dist/personal-server/client.d.ts.map +1 -0
  60. package/dist/personal-server/client.js +94 -0
  61. package/dist/personal-server/client.js.map +1 -0
  62. package/dist/personal-server/index.d.ts +10 -0
  63. package/dist/personal-server/index.d.ts.map +1 -1
  64. package/dist/personal-server/index.js +79 -32
  65. package/dist/personal-server/index.js.map +1 -1
  66. package/dist/personal-server/scope-resolver.d.ts +22 -0
  67. package/dist/personal-server/scope-resolver.d.ts.map +1 -0
  68. package/dist/personal-server/scope-resolver.js +68 -0
  69. package/dist/personal-server/scope-resolver.js.map +1 -0
  70. package/dist/runtime/core/contracts.d.ts +16 -1
  71. package/dist/runtime/core/contracts.d.ts.map +1 -1
  72. package/dist/runtime/managed-playwright.d.ts +7 -0
  73. package/dist/runtime/managed-playwright.d.ts.map +1 -1
  74. package/dist/runtime/managed-playwright.js +76 -13
  75. package/dist/runtime/managed-playwright.js.map +1 -1
  76. package/dist/runtime/playwright/browser.d.ts +1 -0
  77. package/dist/runtime/playwright/browser.d.ts.map +1 -1
  78. package/dist/runtime/playwright/browser.js +27 -6
  79. package/dist/runtime/playwright/browser.js.map +1 -1
  80. package/dist/runtime/playwright/in-process-run.d.ts.map +1 -1
  81. package/dist/runtime/playwright/in-process-run.js +118 -26
  82. package/dist/runtime/playwright/in-process-run.js.map +1 -1
  83. package/dist/skills/index.d.ts +4 -0
  84. package/dist/skills/index.d.ts.map +1 -0
  85. package/dist/skills/index.js +3 -0
  86. package/dist/skills/index.js.map +1 -0
  87. package/dist/skills/paths.d.ts +18 -0
  88. package/dist/skills/paths.d.ts.map +1 -0
  89. package/dist/skills/paths.js +56 -0
  90. package/dist/skills/paths.js.map +1 -0
  91. package/dist/skills/registry.d.ts +48 -0
  92. package/dist/skills/registry.d.ts.map +1 -0
  93. package/dist/skills/registry.js +165 -0
  94. package/dist/skills/registry.js.map +1 -0
  95. package/package.json +12 -1
package/README.md CHANGED
@@ -2,6 +2,36 @@
2
2
 
3
3
  Let your users bring their own data to your app.
4
4
 
5
+ ## CLI
6
+
7
+ The `vana` CLI collects your personal data from any platform. See the **[CLI README](./cli/README.md)**.
8
+
9
+ Install on macOS with Homebrew:
10
+
11
+ ```bash
12
+ brew tap vana-com/vana
13
+ brew install vana
14
+ vana status
15
+ ```
16
+
17
+ Or use the hosted prerelease installer on macOS/Linux:
18
+
19
+ ```bash
20
+ 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
+ ```
22
+
23
+ Branch prerelease:
24
+
25
+ - `https://github.com/vana-com/vana-connect/releases/tag/canary-feat-connect-cli-v1`
26
+
27
+ Once installed:
28
+
29
+ ```bash
30
+ vana connect linkedin
31
+ ```
32
+
33
+ <img src="https://github.com/vana-com/vana-connect/releases/download/canary-feat-connect-cli-v1/demo.gif" width="720" alt="vana connect linkedin" />
34
+
5
35
  ## What problem this solves
6
36
 
7
37
  Your users already have rich personal data — ChatGPT conversations, Instagram activity, Gmail, purchase history — but it's locked inside the platforms that collected it. As a builder, you can't easily use that data to personalize onboarding, tailor recommendations, or skip lengthy signup forms.
@@ -76,106 +106,13 @@ If you prefer to integrate the SDK into an existing project, follow the steps be
76
106
 
77
107
  `vana-connect` now also ships a local collection CLI for connector setup and data export flows.
78
108
 
79
- ### Install
80
-
81
- 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.
82
-
83
- macOS with Homebrew:
84
-
85
- ```bash
86
- brew tap vana-com/vana
87
- brew install vana
88
- ```
89
-
90
- macOS and Linux:
91
-
92
- ```bash
93
- curl -fsSL https://raw.githubusercontent.com/vana-com/vana-connect/main/install/install.sh | sh
94
- ```
95
-
96
- Windows PowerShell:
97
-
98
- ```powershell
99
- iwr https://raw.githubusercontent.com/vana-com/vana-connect/main/install/install.ps1 -useb | iex
100
- ```
101
-
102
- Both installers fetch the latest GitHub release asset for your platform, verify its checksum, and install `vana` without requiring Node or npm.
103
-
104
- ### Canary / prerelease testing
105
-
106
- If you are testing an unreleased branch build, install from the branch installer and pass the prerelease tag explicitly.
109
+ If you only care about the CLI, start with [docs/CLI-README.md](./docs/CLI-README.md).
107
110
 
108
- macOS with Homebrew:
111
+ For the full CLI review surface, use:
109
112
 
110
- ```bash
111
- brew tap vana-com/vana
112
- brew install vana
113
- ```
114
-
115
- The current Homebrew tap is following the latest `vana-connect` canary while this CLI is still rolling out.
116
-
117
- macOS and Linux:
118
-
119
- ```bash
120
- 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
121
- ```
122
-
123
- Windows PowerShell:
124
-
125
- ```powershell
126
- & ([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
127
- ```
128
-
129
- The current hosted prerelease is:
130
-
131
- `canary-feat-connect-cli-v1`
132
-
133
- Release page:
134
-
135
- `https://github.com/vana-com/vana-connect/releases/tag/canary-feat-connect-cli-v1`
136
-
137
- If you want the npm package path as a fallback:
138
-
139
- ```bash
140
- npx -y @opendatalabs/connect status
141
- ```
142
-
143
- ### Commands
144
-
145
- ```bash
146
- vana connect
147
- vana sources
148
- vana connect github
149
- vana status
150
- vana setup
151
- vana data list
152
- vana data show github --json | jq
153
- ```
154
-
155
- - `vana connect` opens a guided source picker in human mode.
156
- - `vana connect <source>` runs the end-to-end collection flow.
157
- - `vana data ...` lets you inspect collected local datasets without opening the raw JSON file yourself.
158
-
159
- ### Local development
160
-
161
- From this repo:
162
-
163
- ```bash
164
- pnpm install
165
- pnpm build
166
- node dist/cli/bin.js status
167
- ```
168
-
169
- The CLI installs its local browser runtime under `~/.dataconnect/`.
170
- That runtime is bundled from `vana-connect` itself, so `vana setup` does not require a separate `data-connect` checkout.
171
-
172
- To build a standalone launcher plus app payload locally:
173
-
174
- ```bash
175
- pnpm build
176
- pnpm build:sea
177
- ./artifacts/sea/vana-linux-x64/vana status --json
178
- ```
113
+ - [CLI review surface](./docs/CLI-REVIEW-SURFACE.md)
114
+ - [CLI transcripts](./docs/transcripts/README.md)
115
+ - [CLI demos](./docs/vhs/README.md)
179
116
 
180
117
  `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/`.
181
118
  It produces a platform-specific release directory plus a release archive and matching checksum file under `artifacts/sea/`.
package/dist/cli/bin.js CHANGED
@@ -1,5 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import { runCli } from "./index.js";
3
+ for (const stream of [process.stdout, process.stderr]) {
4
+ stream.on("error", (error) => {
5
+ if (error.code === "EPIPE") {
6
+ process.exit(0);
7
+ }
8
+ throw error;
9
+ });
10
+ }
3
11
  const exitCode = await runCli(process.argv);
4
12
  if (typeof exitCode === "number") {
5
13
  process.exitCode = exitCode;
@@ -1 +1 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/cli/bin.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC5C,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;IACjC,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/cli/bin.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,KAAK,MAAM,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;IACtD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAA4B,EAAE,EAAE;QAClD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC5C,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;IACjC,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC9B,CAAC"}
@@ -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":"AAuEA,wBAAsB,MAAM,CAAC,IAAI,WAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAsEjE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}