@opendatalabs/connect 0.8.1-canary.ff55fb0 → 0.9.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.
Files changed (139) hide show
  1. package/README.md +35 -33
  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 +3582 -305
  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 +415 -0
  18. package/dist/cli/queries.js.map +1 -0
  19. package/dist/cli/render/capabilities.d.ts +9 -0
  20. package/dist/cli/render/capabilities.d.ts.map +1 -0
  21. package/dist/cli/render/capabilities.js +24 -0
  22. package/dist/cli/render/capabilities.js.map +1 -0
  23. package/dist/cli/render/connect-renderer.d.ts +18 -0
  24. package/dist/cli/render/connect-renderer.d.ts.map +1 -0
  25. package/dist/cli/render/connect-renderer.js +255 -0
  26. package/dist/cli/render/connect-renderer.js.map +1 -0
  27. package/dist/cli/render/format.d.ts +27 -0
  28. package/dist/cli/render/format.d.ts.map +1 -0
  29. package/dist/cli/render/format.js +111 -0
  30. package/dist/cli/render/format.js.map +1 -0
  31. package/dist/cli/render/index.d.ts +7 -0
  32. package/dist/cli/render/index.d.ts.map +1 -0
  33. package/dist/cli/render/index.js +7 -0
  34. package/dist/cli/render/index.js.map +1 -0
  35. package/dist/cli/render/progress.d.ts +11 -0
  36. package/dist/cli/render/progress.d.ts.map +1 -0
  37. package/dist/cli/render/progress.js +56 -0
  38. package/dist/cli/render/progress.js.map +1 -0
  39. package/dist/cli/render/symbols.d.ts +11 -0
  40. package/dist/cli/render/symbols.d.ts.map +1 -0
  41. package/dist/cli/render/symbols.js +21 -0
  42. package/dist/cli/render/symbols.js.map +1 -0
  43. package/dist/cli/render/theme.d.ts +15 -0
  44. package/dist/cli/render/theme.d.ts.map +1 -0
  45. package/dist/cli/render/theme.js +41 -0
  46. package/dist/cli/render/theme.js.map +1 -0
  47. package/dist/cli/search-select.d.ts +17 -0
  48. package/dist/cli/search-select.d.ts.map +1 -0
  49. package/dist/cli/search-select.js +29 -0
  50. package/dist/cli/search-select.js.map +1 -0
  51. package/dist/cli/update-check-worker.d.ts +2 -0
  52. package/dist/cli/update-check-worker.d.ts.map +1 -0
  53. package/dist/cli/update-check-worker.js +55 -0
  54. package/dist/cli/update-check-worker.js.map +1 -0
  55. package/dist/cli/update-check.d.ts +21 -0
  56. package/dist/cli/update-check.d.ts.map +1 -0
  57. package/dist/cli/update-check.js +52 -0
  58. package/dist/cli/update-check.js.map +1 -0
  59. package/dist/connectors/registry.d.ts +27 -1
  60. package/dist/connectors/registry.d.ts.map +1 -1
  61. package/dist/connectors/registry.js +168 -4
  62. package/dist/connectors/registry.js.map +1 -1
  63. package/dist/core/cli-types.d.ts +583 -1
  64. package/dist/core/cli-types.d.ts.map +1 -1
  65. package/dist/core/cli-types.js +262 -1
  66. package/dist/core/cli-types.js.map +1 -1
  67. package/dist/core/index.d.ts +3 -2
  68. package/dist/core/index.d.ts.map +1 -1
  69. package/dist/core/index.js +2 -2
  70. package/dist/core/index.js.map +1 -1
  71. package/dist/core/paths.d.ts +22 -3
  72. package/dist/core/paths.d.ts.map +1 -1
  73. package/dist/core/paths.js +71 -10
  74. package/dist/core/paths.js.map +1 -1
  75. package/dist/core/state-store.d.ts +23 -0
  76. package/dist/core/state-store.d.ts.map +1 -1
  77. package/dist/core/state-store.js +83 -5
  78. package/dist/core/state-store.js.map +1 -1
  79. package/dist/personal-server/client.d.ts +34 -0
  80. package/dist/personal-server/client.d.ts.map +1 -0
  81. package/dist/personal-server/client.js +94 -0
  82. package/dist/personal-server/client.js.map +1 -0
  83. package/dist/personal-server/index.d.ts +10 -0
  84. package/dist/personal-server/index.d.ts.map +1 -1
  85. package/dist/personal-server/index.js +79 -32
  86. package/dist/personal-server/index.js.map +1 -1
  87. package/dist/personal-server/scope-resolver.d.ts +22 -0
  88. package/dist/personal-server/scope-resolver.d.ts.map +1 -0
  89. package/dist/personal-server/scope-resolver.js +68 -0
  90. package/dist/personal-server/scope-resolver.js.map +1 -0
  91. package/dist/runtime/core/contracts.d.ts +84 -0
  92. package/dist/runtime/core/contracts.d.ts.map +1 -0
  93. package/dist/runtime/core/contracts.js +2 -0
  94. package/dist/runtime/core/contracts.js.map +1 -0
  95. package/dist/runtime/core/index.d.ts +2 -0
  96. package/dist/runtime/core/index.d.ts.map +1 -0
  97. package/dist/runtime/core/index.js +2 -0
  98. package/dist/runtime/core/index.js.map +1 -0
  99. package/dist/runtime/index.d.ts +1 -0
  100. package/dist/runtime/index.d.ts.map +1 -1
  101. package/dist/runtime/index.js.map +1 -1
  102. package/dist/runtime/managed-playwright.d.ts +12 -3
  103. package/dist/runtime/managed-playwright.d.ts.map +1 -1
  104. package/dist/runtime/managed-playwright.js +124 -187
  105. package/dist/runtime/managed-playwright.js.map +1 -1
  106. package/dist/runtime/playwright/browser.d.ts +12 -0
  107. package/dist/runtime/playwright/browser.d.ts.map +1 -0
  108. package/dist/runtime/playwright/browser.js +229 -0
  109. package/dist/runtime/playwright/browser.js.map +1 -0
  110. package/dist/runtime/playwright/in-process-run.d.ts +6 -0
  111. package/dist/runtime/playwright/in-process-run.d.ts.map +1 -0
  112. package/dist/runtime/playwright/in-process-run.js +628 -0
  113. package/dist/runtime/playwright/in-process-run.js.map +1 -0
  114. package/dist/runtime/playwright/index.d.ts +3 -0
  115. package/dist/runtime/playwright/index.d.ts.map +1 -0
  116. package/dist/runtime/playwright/index.js +3 -0
  117. package/dist/runtime/playwright/index.js.map +1 -0
  118. package/dist/runtime/repo-paths.d.ts.map +1 -1
  119. package/dist/runtime/repo-paths.js +24 -7
  120. package/dist/runtime/repo-paths.js.map +1 -1
  121. package/dist/skills/index.d.ts +4 -0
  122. package/dist/skills/index.d.ts.map +1 -0
  123. package/dist/skills/index.js +3 -0
  124. package/dist/skills/index.js.map +1 -0
  125. package/dist/skills/paths.d.ts +33 -0
  126. package/dist/skills/paths.d.ts.map +1 -0
  127. package/dist/skills/paths.js +81 -0
  128. package/dist/skills/paths.js.map +1 -0
  129. package/dist/skills/registry.d.ts +48 -0
  130. package/dist/skills/registry.d.ts.map +1 -0
  131. package/dist/skills/registry.js +173 -0
  132. package/dist/skills/registry.js.map +1 -0
  133. package/package.json +34 -9
  134. package/runtime-assets/playwright-runner/entitlements.plist +0 -12
  135. package/runtime-assets/playwright-runner/index.cjs +0 -1011
  136. package/runtime-assets/playwright-runner/package-lock.json +0 -1242
  137. package/runtime-assets/playwright-runner/package.json +0 -29
  138. package/runtime-assets/playwright-runner/scripts/build.js +0 -182
  139. package/runtime-assets/run-connector.cjs +0 -275
package/README.md CHANGED
@@ -2,6 +2,34 @@
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
+
5
33
  ## What problem this solves
6
34
 
7
35
  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,42 +104,16 @@ If you prefer to integrate the SDK into an existing project, follow the steps be
76
104
 
77
105
  `vana-connect` now also ships a local collection CLI for connector setup and data export flows.
78
106
 
79
- ### Install
107
+ If you only care about the CLI, start with [docs/CLI-README.md](./docs/CLI-README.md).
80
108
 
81
- Use the published package directly:
109
+ For the full CLI review surface, use:
82
110
 
83
- ```bash
84
- pnpm dlx @opendatalabs/connect status
85
- ```
86
-
87
- Or install it globally:
88
-
89
- ```bash
90
- pnpm add -g @opendatalabs/connect
91
- vana status
92
- ```
93
-
94
- ### Commands
95
-
96
- ```bash
97
- vana sources
98
- vana connect github
99
- vana status
100
- vana setup
101
- ```
102
-
103
- ### Local development
104
-
105
- From this repo:
106
-
107
- ```bash
108
- pnpm install
109
- pnpm build
110
- node dist/cli/bin.js status
111
- ```
111
+ - [CLI review surface](./docs/CLI-REVIEW-SURFACE.md)
112
+ - [CLI transcripts](./docs/transcripts/README.md)
113
+ - [CLI demos](./docs/vhs/README.md)
112
114
 
113
- The CLI installs its local browser runtime under `~/.dataconnect/`.
114
- That runtime is bundled from `vana-connect` itself, so `vana setup` does not require a separate `data-connect` checkout.
115
+ `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/`.
116
+ It produces a platform-specific release directory plus a release archive and matching checksum file under `artifacts/sea/`.
115
117
 
116
118
  ### Programmatic runtime access
117
119
 
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":"AAkDA,wBAAsB,MAAM,CAAC,IAAI,WAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CA2CjE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}