@opendatalabs/connect 0.8.1 → 0.9.1

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 (151) hide show
  1. package/README.md +58 -0
  2. package/dist/cli/bin.d.ts +3 -0
  3. package/dist/cli/bin.d.ts.map +1 -0
  4. package/dist/cli/bin.js +15 -0
  5. package/dist/cli/bin.js.map +1 -0
  6. package/dist/cli/index.d.ts +89 -0
  7. package/dist/cli/index.d.ts.map +1 -0
  8. package/dist/cli/index.js +3844 -0
  9. package/dist/cli/index.js.map +1 -0
  10. package/dist/cli/main.d.ts +2 -0
  11. package/dist/cli/main.d.ts.map +1 -0
  12. package/dist/cli/main.js +10 -0
  13. package/dist/cli/main.js.map +1 -0
  14. package/dist/cli/mcp-server.d.ts +15 -0
  15. package/dist/cli/mcp-server.d.ts.map +1 -0
  16. package/dist/cli/mcp-server.js +199 -0
  17. package/dist/cli/mcp-server.js.map +1 -0
  18. package/dist/cli/queries.d.ts +128 -0
  19. package/dist/cli/queries.d.ts.map +1 -0
  20. package/dist/cli/queries.js +415 -0
  21. package/dist/cli/queries.js.map +1 -0
  22. package/dist/cli/render/capabilities.d.ts +9 -0
  23. package/dist/cli/render/capabilities.d.ts.map +1 -0
  24. package/dist/cli/render/capabilities.js +24 -0
  25. package/dist/cli/render/capabilities.js.map +1 -0
  26. package/dist/cli/render/connect-renderer.d.ts +18 -0
  27. package/dist/cli/render/connect-renderer.d.ts.map +1 -0
  28. package/dist/cli/render/connect-renderer.js +255 -0
  29. package/dist/cli/render/connect-renderer.js.map +1 -0
  30. package/dist/cli/render/format.d.ts +27 -0
  31. package/dist/cli/render/format.d.ts.map +1 -0
  32. package/dist/cli/render/format.js +111 -0
  33. package/dist/cli/render/format.js.map +1 -0
  34. package/dist/cli/render/index.d.ts +7 -0
  35. package/dist/cli/render/index.d.ts.map +1 -0
  36. package/dist/cli/render/index.js +7 -0
  37. package/dist/cli/render/index.js.map +1 -0
  38. package/dist/cli/render/progress.d.ts +11 -0
  39. package/dist/cli/render/progress.d.ts.map +1 -0
  40. package/dist/cli/render/progress.js +56 -0
  41. package/dist/cli/render/progress.js.map +1 -0
  42. package/dist/cli/render/symbols.d.ts +11 -0
  43. package/dist/cli/render/symbols.d.ts.map +1 -0
  44. package/dist/cli/render/symbols.js +21 -0
  45. package/dist/cli/render/symbols.js.map +1 -0
  46. package/dist/cli/render/theme.d.ts +15 -0
  47. package/dist/cli/render/theme.d.ts.map +1 -0
  48. package/dist/cli/render/theme.js +41 -0
  49. package/dist/cli/render/theme.js.map +1 -0
  50. package/dist/cli/search-select.d.ts +17 -0
  51. package/dist/cli/search-select.d.ts.map +1 -0
  52. package/dist/cli/search-select.js +29 -0
  53. package/dist/cli/search-select.js.map +1 -0
  54. package/dist/cli/update-check-worker.d.ts +2 -0
  55. package/dist/cli/update-check-worker.d.ts.map +1 -0
  56. package/dist/cli/update-check-worker.js +55 -0
  57. package/dist/cli/update-check-worker.js.map +1 -0
  58. package/dist/cli/update-check.d.ts +21 -0
  59. package/dist/cli/update-check.d.ts.map +1 -0
  60. package/dist/cli/update-check.js +52 -0
  61. package/dist/cli/update-check.js.map +1 -0
  62. package/dist/connectors/index.d.ts +2 -0
  63. package/dist/connectors/index.d.ts.map +1 -0
  64. package/dist/connectors/index.js +2 -0
  65. package/dist/connectors/index.js.map +1 -0
  66. package/dist/connectors/registry.d.ts +55 -0
  67. package/dist/connectors/registry.d.ts.map +1 -0
  68. package/dist/connectors/registry.js +298 -0
  69. package/dist/connectors/registry.js.map +1 -0
  70. package/dist/core/cli-types.d.ts +692 -0
  71. package/dist/core/cli-types.d.ts.map +1 -0
  72. package/dist/core/cli-types.js +322 -0
  73. package/dist/core/cli-types.js.map +1 -0
  74. package/dist/core/index.d.ts +4 -0
  75. package/dist/core/index.d.ts.map +1 -1
  76. package/dist/core/index.js +3 -0
  77. package/dist/core/index.js.map +1 -1
  78. package/dist/core/paths.d.ts +28 -0
  79. package/dist/core/paths.d.ts.map +1 -0
  80. package/dist/core/paths.js +89 -0
  81. package/dist/core/paths.js.map +1 -0
  82. package/dist/core/state-store.d.ts +39 -0
  83. package/dist/core/state-store.d.ts.map +1 -0
  84. package/dist/core/state-store.js +101 -0
  85. package/dist/core/state-store.js.map +1 -0
  86. package/dist/core/types.d.ts +2 -0
  87. package/dist/core/types.d.ts.map +1 -1
  88. package/dist/personal-server/client.d.ts +34 -0
  89. package/dist/personal-server/client.d.ts.map +1 -0
  90. package/dist/personal-server/client.js +94 -0
  91. package/dist/personal-server/client.js.map +1 -0
  92. package/dist/personal-server/index.d.ts +18 -0
  93. package/dist/personal-server/index.d.ts.map +1 -0
  94. package/dist/personal-server/index.js +123 -0
  95. package/dist/personal-server/index.js.map +1 -0
  96. package/dist/personal-server/scope-resolver.d.ts +22 -0
  97. package/dist/personal-server/scope-resolver.d.ts.map +1 -0
  98. package/dist/personal-server/scope-resolver.js +68 -0
  99. package/dist/personal-server/scope-resolver.js.map +1 -0
  100. package/dist/runtime/core/contracts.d.ts +84 -0
  101. package/dist/runtime/core/contracts.d.ts.map +1 -0
  102. package/dist/runtime/core/contracts.js +2 -0
  103. package/dist/runtime/core/contracts.js.map +1 -0
  104. package/dist/runtime/core/index.d.ts +2 -0
  105. package/dist/runtime/core/index.d.ts.map +1 -0
  106. package/dist/runtime/core/index.js +2 -0
  107. package/dist/runtime/core/index.js.map +1 -0
  108. package/dist/runtime/index.d.ts +4 -0
  109. package/dist/runtime/index.d.ts.map +1 -0
  110. package/dist/runtime/index.js +3 -0
  111. package/dist/runtime/index.js.map +1 -0
  112. package/dist/runtime/managed-playwright.d.ts +42 -0
  113. package/dist/runtime/managed-playwright.d.ts.map +1 -0
  114. package/dist/runtime/managed-playwright.js +178 -0
  115. package/dist/runtime/managed-playwright.js.map +1 -0
  116. package/dist/runtime/playwright/browser.d.ts +12 -0
  117. package/dist/runtime/playwright/browser.d.ts.map +1 -0
  118. package/dist/runtime/playwright/browser.js +229 -0
  119. package/dist/runtime/playwright/browser.js.map +1 -0
  120. package/dist/runtime/playwright/in-process-run.d.ts +6 -0
  121. package/dist/runtime/playwright/in-process-run.d.ts.map +1 -0
  122. package/dist/runtime/playwright/in-process-run.js +628 -0
  123. package/dist/runtime/playwright/in-process-run.js.map +1 -0
  124. package/dist/runtime/playwright/index.d.ts +3 -0
  125. package/dist/runtime/playwright/index.d.ts.map +1 -0
  126. package/dist/runtime/playwright/index.js +3 -0
  127. package/dist/runtime/playwright/index.js.map +1 -0
  128. package/dist/runtime/repo-paths.d.ts +2 -0
  129. package/dist/runtime/repo-paths.d.ts.map +1 -0
  130. package/dist/runtime/repo-paths.js +36 -0
  131. package/dist/runtime/repo-paths.js.map +1 -0
  132. package/dist/server/config.d.ts +2 -0
  133. package/dist/server/config.d.ts.map +1 -1
  134. package/dist/server/config.js +1 -0
  135. package/dist/server/config.js.map +1 -1
  136. package/dist/server/connect.d.ts.map +1 -1
  137. package/dist/server/connect.js +4 -0
  138. package/dist/server/connect.js.map +1 -1
  139. package/dist/skills/index.d.ts +4 -0
  140. package/dist/skills/index.d.ts.map +1 -0
  141. package/dist/skills/index.js +3 -0
  142. package/dist/skills/index.js.map +1 -0
  143. package/dist/skills/paths.d.ts +33 -0
  144. package/dist/skills/paths.d.ts.map +1 -0
  145. package/dist/skills/paths.js +81 -0
  146. package/dist/skills/paths.js.map +1 -0
  147. package/dist/skills/registry.d.ts +48 -0
  148. package/dist/skills/registry.d.ts.map +1 -0
  149. package/dist/skills/registry.js +173 -0
  150. package/dist/skills/registry.js.map +1 -0
  151. package/package.json +51 -4
@@ -0,0 +1,128 @@
1
+ /**
2
+ * Pure data-gathering query functions for CLI commands.
3
+ *
4
+ * Each function returns the structured data that the corresponding `run*`
5
+ * handler needs for both `--json` serialization and human rendering.
6
+ * No stdout/stderr writes happen here.
7
+ */
8
+ import type { CliDoctor, CliStatus, SourceStatus } from "../core/cli-types.js";
9
+ import type { AvailableSource } from "../connectors/registry.js";
10
+ /** Result of `queryStatus()`. Contains everything both JSON and human paths need. */
11
+ export interface StatusQueryResult {
12
+ status: CliStatus;
13
+ nextSteps: string[];
14
+ }
15
+ /** Result of `querySources()`. Matches the `--json` output shape exactly. */
16
+ export interface SourcesQueryResult {
17
+ count: number;
18
+ recommendedSource: (AvailableSource & {
19
+ installed: boolean;
20
+ dataState?: SourceStatus["dataState"];
21
+ lastRunOutcome?: string | null;
22
+ sessionPresent?: boolean;
23
+ }) | null;
24
+ nextSteps: string[];
25
+ summary: {
26
+ connectedCount: number;
27
+ readyCount: number;
28
+ manualCount: number;
29
+ installedCount: number;
30
+ };
31
+ sources: Array<AvailableSource & {
32
+ installed: boolean;
33
+ dataState?: SourceStatus["dataState"];
34
+ lastRunOutcome?: string | null;
35
+ sessionPresent?: boolean;
36
+ }>;
37
+ }
38
+ /** A single dataset record as returned by data-list and data-show queries. */
39
+ export interface DatasetRecord {
40
+ source: string;
41
+ name: string | null;
42
+ authMode: "automated" | "interactive" | "legacy" | null;
43
+ dataState?: SourceStatus["dataState"];
44
+ lastRunAt: string | null;
45
+ path: string | null;
46
+ summary: {
47
+ lines: string[];
48
+ } | null;
49
+ }
50
+ /** Result of `queryDataList()`. Matches the `--json` output shape exactly. */
51
+ export interface DataListQueryResult {
52
+ count: number;
53
+ latestDataset: DatasetRecord | null;
54
+ nextSteps: string[];
55
+ summary: {
56
+ localCount: number;
57
+ syncedCount: number;
58
+ syncFailedCount: number;
59
+ };
60
+ datasets: DatasetRecord[];
61
+ }
62
+ /** Successful result of `queryDataShow()`. */
63
+ export interface DataShowSuccess {
64
+ ok: true;
65
+ source: string;
66
+ name: string;
67
+ path: string;
68
+ summary: {
69
+ lines: string[];
70
+ } | null;
71
+ lastRunAt: string | null;
72
+ dataState: SourceStatus["dataState"] | null;
73
+ nextSteps: string[];
74
+ data: Record<string, unknown>;
75
+ datasetCount: number;
76
+ }
77
+ /** Not-found result of `queryDataShow()`. */
78
+ export interface DataShowNotFound {
79
+ ok: false;
80
+ error: "dataset_not_found";
81
+ source: string;
82
+ message: string;
83
+ nextSteps: string[];
84
+ datasetCount: number;
85
+ }
86
+ /** Read-failure result of `queryDataShow()`. */
87
+ export interface DataShowReadFailed {
88
+ ok: false;
89
+ error: "dataset_read_failed";
90
+ source: string;
91
+ path: string;
92
+ message: string;
93
+ }
94
+ export type DataShowQueryResult = DataShowSuccess | DataShowNotFound | DataShowReadFailed;
95
+ /** Result of `queryDoctor()`. Matches the `CliDoctor` type exactly. */
96
+ export type DoctorQueryResult = CliDoctor;
97
+ /**
98
+ * Gather status data for `vana status`.
99
+ *
100
+ * Returns the full `CliStatus` plus computed `nextSteps`.
101
+ * The `--json` handler selects the compact subset it needs.
102
+ */
103
+ export declare function queryStatus(): Promise<StatusQueryResult>;
104
+ /**
105
+ * Gather sources data for `vana sources`.
106
+ *
107
+ * Returns the enriched source list with counts and recommendations.
108
+ */
109
+ export declare function querySources(): Promise<SourcesQueryResult>;
110
+ /**
111
+ * Gather dataset list for `vana data list`.
112
+ *
113
+ * Returns all collected datasets with summaries and counts.
114
+ */
115
+ export declare function queryDataList(): Promise<DataListQueryResult>;
116
+ /**
117
+ * Gather data for `vana data show <source>`.
118
+ *
119
+ * Returns the dataset contents and metadata, or an error descriptor.
120
+ */
121
+ export declare function queryDataShow(source: string): Promise<DataShowQueryResult>;
122
+ /**
123
+ * Gather diagnostic data for `vana doctor`.
124
+ *
125
+ * Returns the full `CliDoctor` payload.
126
+ */
127
+ export declare function queryDoctor(): Promise<DoctorQueryResult>;
128
+ //# sourceMappingURL=queries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/cli/queries.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,415 @@
1
+ /**
2
+ * Pure data-gathering query functions for CLI commands.
3
+ *
4
+ * Each function returns the structured data that the corresponding `run*`
5
+ * handler needs for both `--json` serialization and human rendering.
6
+ * No stdout/stderr writes happen here.
7
+ */
8
+ import fs from "node:fs";
9
+ import fsp from "node:fs/promises";
10
+ import { getCliStatePath, getBrowserProfilesDir, getConnectorCacheDir, getVanaHome, getLogsDir, readCliState, } from "../core/index.js";
11
+ import { detectPersonalServerTarget } from "../personal-server/index.js";
12
+ import { ManagedPlaywrightRuntime } from "../runtime/index.js";
13
+ import { formatDisplayPath } from "./render/index.js";
14
+ // ── Re-used internal helpers ──────────────────────────────────────────
15
+ // Exported from index.ts for reuse by query functions. These are internal
16
+ // helpers (not part of the public SDK API) shared between the CLI command
17
+ // handlers and the query layer.
18
+ import { loadRegistrySources, createSourceLabelMap, createSourceMetadataMap, gatherSourceStatuses, listInstalledConnectorFiles, hasCollectedData, rankSourceStatus, compareSourceStatusOrder, readResultSummary, summarizeResultData, getCliVersion, getCliChannel, getCliInstallMethod, getLifecycleCommands, getDoctorAppRootPath, buildStatusNextSteps, buildSourcesNextSteps, buildDataListNextSteps, buildDataShowNextSteps, compareDatasetOrder, displaySource, getSourceStatusPresentation, humanizeIssue, } from "./index.js";
19
+ // ── Query functions ───────────────────────────────────────────────────
20
+ /**
21
+ * Gather status data for `vana status`.
22
+ *
23
+ * Returns the full `CliStatus` plus computed `nextSteps`.
24
+ * The `--json` handler selects the compact subset it needs.
25
+ */
26
+ export async function queryStatus() {
27
+ const runtime = new ManagedPlaywrightRuntime();
28
+ const personalServer = await detectPersonalServerTarget();
29
+ const state = await readCliState();
30
+ const registrySources = await loadRegistrySources();
31
+ const sourceLabels = createSourceLabelMap(registrySources);
32
+ const sourceMetadata = createSourceMetadataMap(registrySources);
33
+ const sources = await gatherSourceStatuses(state.sources, sourceMetadata);
34
+ const pendingSyncCount = sources.filter((source) => source.dataState === "collected_local").length;
35
+ // Count stored scopes across all sources
36
+ let totalStoredScopes = 0;
37
+ for (const stored of Object.values(state.sources)) {
38
+ if (stored?.ingestScopes) {
39
+ totalStoredScopes += stored.ingestScopes.filter((s) => s.status === "stored").length;
40
+ }
41
+ }
42
+ const status = {
43
+ cliVersion: getCliVersion(),
44
+ channel: getCliChannel(),
45
+ installMethod: getCliInstallMethod(),
46
+ runtime: runtime.state,
47
+ runtimePath: runtime.runtimePath,
48
+ personalServer: personalServer.state,
49
+ personalServerUrl: personalServer.url,
50
+ personalServerSource: personalServer.source,
51
+ personalServerInfo: {
52
+ url: personalServer.url,
53
+ status: personalServer.state,
54
+ scopeCount: totalStoredScopes,
55
+ },
56
+ pendingSyncCount,
57
+ summary: {
58
+ sourceCount: sources.length,
59
+ needsAttentionCount: sources.filter((source) => rankSourceStatus(source) <= 4).length,
60
+ connectedCount: sources.filter((source) => source.dataState === "ingested_personal_server" ||
61
+ source.dataState === "collected_local" ||
62
+ source.dataState === "ingest_failed").length,
63
+ installedCount: sources.filter((source) => source.installed).length,
64
+ localCount: sources.filter((source) => source.dataState === "collected_local").length,
65
+ syncedCount: sources.filter((source) => source.dataState === "ingested_personal_server").length,
66
+ syncFailedCount: sources.filter((source) => source.dataState === "ingest_failed").length,
67
+ },
68
+ sources,
69
+ };
70
+ const nextSteps = buildStatusNextSteps(status.sources, sourceLabels, status.runtime, registrySources);
71
+ // Check for version updates.
72
+ for (const source of status.sources) {
73
+ const registrySource = registrySources.find((s) => s.id === source.source);
74
+ if (registrySource?.version &&
75
+ source.connectorVersion &&
76
+ registrySource.version !== source.connectorVersion) {
77
+ nextSteps.push(`Update ${displaySource(source.source, sourceLabels)} connector (${source.connectorVersion} -> ${registrySource.version}) with \`vana connect ${source.source}\`.`);
78
+ }
79
+ }
80
+ const overdueCount = sources.filter((s) => s.isOverdue).length;
81
+ if (overdueCount > 0) {
82
+ nextSteps.push(`${overdueCount} source(s) overdue for collection. Run \`vana collect --all\`.`);
83
+ }
84
+ if (pendingSyncCount > 0) {
85
+ nextSteps.push(`Sync ${pendingSyncCount} pending dataset(s) with \`vana server sync\`.`);
86
+ }
87
+ return { status, nextSteps };
88
+ }
89
+ /**
90
+ * Gather sources data for `vana sources`.
91
+ *
92
+ * Returns the enriched source list with counts and recommendations.
93
+ */
94
+ export async function querySources() {
95
+ const sources = await loadRegistrySources();
96
+ const state = await readCliState();
97
+ const sourceMetadata = createSourceMetadataMap(sources);
98
+ const statuses = await gatherSourceStatuses(state.sources, sourceMetadata);
99
+ const statusMap = new Map(statuses.map((source) => [source.source, source]));
100
+ const installedSourceIds = new Set((await listInstalledConnectorFiles()).map((source) => source.source));
101
+ const enrichedSources = sources.map((source) => {
102
+ const status = statusMap.get(source.id);
103
+ return {
104
+ ...source,
105
+ installed: installedSourceIds.has(source.id),
106
+ dataState: status?.dataState,
107
+ lastRunOutcome: status?.lastRunOutcome ?? null,
108
+ sessionPresent: status?.sessionPresent ?? false,
109
+ };
110
+ });
111
+ const readyCount = enrichedSources.filter((source) => source.authMode !== "legacy" && !hasCollectedData(source.dataState)).length;
112
+ const manualCount = enrichedSources.filter((source) => source.authMode === "legacy" && !hasCollectedData(source.dataState)).length;
113
+ const connectedCount = enrichedSources.filter((source) => source.dataState === "collected_local" ||
114
+ source.dataState === "ingested_personal_server" ||
115
+ source.dataState === "ingest_failed").length;
116
+ const recommendedSource = enrichedSources.find((source) => source.authMode !== "legacy" &&
117
+ source.dataState !== "collected_local" &&
118
+ source.dataState !== "ingested_personal_server" &&
119
+ source.dataState !== "ingest_failed") ??
120
+ enrichedSources.find((source) => source.dataState !== "collected_local" &&
121
+ source.dataState !== "ingested_personal_server" &&
122
+ source.dataState !== "ingest_failed") ??
123
+ null;
124
+ const nextSteps = buildSourcesNextSteps(recommendedSource, connectedCount);
125
+ return {
126
+ count: enrichedSources.length,
127
+ recommendedSource,
128
+ nextSteps,
129
+ summary: {
130
+ connectedCount,
131
+ readyCount,
132
+ manualCount,
133
+ installedCount: enrichedSources.filter((source) => source.installed)
134
+ .length,
135
+ },
136
+ sources: enrichedSources,
137
+ };
138
+ }
139
+ /**
140
+ * Gather dataset list for `vana data list`.
141
+ *
142
+ * Returns all collected datasets with summaries and counts.
143
+ */
144
+ export async function queryDataList() {
145
+ const state = await readCliState();
146
+ const registrySources = await loadRegistrySources();
147
+ const sources = await gatherSourceStatuses(state.sources, createSourceMetadataMap(registrySources));
148
+ const datasetRecords = await Promise.all(sources
149
+ .filter((source) => Boolean(source.lastResultPath))
150
+ .map(async (source) => ({
151
+ source: source.source,
152
+ name: source.name ?? null,
153
+ authMode: source.authMode ?? null,
154
+ dataState: source.dataState,
155
+ lastRunAt: source.lastRunAt ?? null,
156
+ path: source.lastResultPath ?? null,
157
+ summary: source.lastResultPath
158
+ ? await readResultSummary(source.lastResultPath)
159
+ : null,
160
+ })));
161
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
162
+ datasetRecords.sort(compareDatasetOrder);
163
+ const nextSteps = buildDataListNextSteps(datasetRecords, registrySources);
164
+ return {
165
+ count: datasetRecords.length,
166
+ latestDataset: datasetRecords[0] ?? null,
167
+ nextSteps,
168
+ summary: {
169
+ localCount: datasetRecords.filter((dataset) => dataset.dataState !== "ingested_personal_server").length,
170
+ syncedCount: datasetRecords.filter((dataset) => dataset.dataState === "ingested_personal_server").length,
171
+ syncFailedCount: datasetRecords.filter((dataset) => dataset.dataState === "ingest_failed").length,
172
+ },
173
+ datasets: datasetRecords,
174
+ };
175
+ }
176
+ /**
177
+ * Gather data for `vana data show <source>`.
178
+ *
179
+ * Returns the dataset contents and metadata, or an error descriptor.
180
+ */
181
+ export async function queryDataShow(source) {
182
+ const sourceLabels = createSourceLabelMap(await loadRegistrySources());
183
+ const state = await readCliState();
184
+ const record = state.sources[source];
185
+ const resultPath = record?.lastResultPath;
186
+ const datasetCount = Object.values(state.sources).filter((entry) => Boolean(entry?.lastResultPath)).length;
187
+ if (!resultPath) {
188
+ return {
189
+ ok: false,
190
+ error: "dataset_not_found",
191
+ source,
192
+ message: `No collected dataset found for ${displaySource(source, sourceLabels)}. Run \`vana connect ${source}\` first.`,
193
+ nextSteps: [
194
+ `Run \`vana connect ${source}\` to collect data.`,
195
+ ...(datasetCount > 0
196
+ ? ["Run `vana data list` to inspect other datasets."]
197
+ : []),
198
+ ],
199
+ datasetCount,
200
+ };
201
+ }
202
+ try {
203
+ const raw = await fsp.readFile(resultPath, "utf8");
204
+ const data = JSON.parse(raw);
205
+ const summary = summarizeResultData(data);
206
+ const nextSteps = buildDataShowNextSteps(source, datasetCount, sourceLabels);
207
+ return {
208
+ ok: true,
209
+ source,
210
+ name: displaySource(source, sourceLabels),
211
+ path: resultPath,
212
+ summary,
213
+ lastRunAt: record?.lastRunAt ?? null,
214
+ dataState: (record?.dataState ?? null),
215
+ nextSteps,
216
+ data,
217
+ datasetCount,
218
+ };
219
+ }
220
+ catch (error) {
221
+ const message = error instanceof Error ? error.message : `Could not read ${resultPath}.`;
222
+ return {
223
+ ok: false,
224
+ error: "dataset_read_failed",
225
+ source,
226
+ path: resultPath,
227
+ message,
228
+ };
229
+ }
230
+ }
231
+ /**
232
+ * Gather diagnostic data for `vana doctor`.
233
+ *
234
+ * Returns the full `CliDoctor` payload.
235
+ */
236
+ export async function queryDoctor() {
237
+ const runtime = new ManagedPlaywrightRuntime();
238
+ const personalServer = await detectPersonalServerTarget();
239
+ const state = await readCliState();
240
+ const registrySources = await loadRegistrySources();
241
+ const sourceMetadata = createSourceMetadataMap(registrySources);
242
+ const sourceLabels = createSourceLabelMap(registrySources);
243
+ const sources = await gatherSourceStatuses(state.sources, sourceMetadata);
244
+ const cliVersion = getCliVersion();
245
+ const cliChannel = getCliChannel(cliVersion);
246
+ const installMethod = getCliInstallMethod();
247
+ const lifecycle = getLifecycleCommands(installMethod, cliChannel);
248
+ const appRootPath = getDoctorAppRootPath(installMethod);
249
+ const recentSources = [...sources]
250
+ .filter((source) => Boolean(source.lastRunAt))
251
+ .sort(compareSourceStatusOrder)
252
+ .slice(0, 3);
253
+ const attentionSources = recentSources.filter((source) => rankSourceStatus(source) <= 4);
254
+ const connectedCount = sources.filter((source) => source.dataState === "collected_local" ||
255
+ source.dataState === "ingested_personal_server" ||
256
+ source.dataState === "ingest_failed").length;
257
+ const attentionCount = sources.filter((source) => rankSourceStatus(source) <= 4).length;
258
+ const directories = [
259
+ {
260
+ key: "executable",
261
+ label: "Executable",
262
+ path: process.execPath,
263
+ present: fs.existsSync(process.execPath),
264
+ },
265
+ ...(appRootPath
266
+ ? [
267
+ {
268
+ key: "appRoot",
269
+ label: "App root",
270
+ path: appRootPath,
271
+ present: fs.existsSync(appRootPath),
272
+ },
273
+ ]
274
+ : []),
275
+ {
276
+ key: "dataHome",
277
+ label: "Data home",
278
+ path: getVanaHome(),
279
+ present: fs.existsSync(getVanaHome()),
280
+ },
281
+ {
282
+ key: "stateFile",
283
+ label: "State file",
284
+ path: getCliStatePath(),
285
+ present: fs.existsSync(getCliStatePath()),
286
+ },
287
+ {
288
+ key: "connectorCache",
289
+ label: "Connector cache",
290
+ path: getConnectorCacheDir(),
291
+ present: fs.existsSync(getConnectorCacheDir()),
292
+ },
293
+ {
294
+ key: "browserProfiles",
295
+ label: "Browser profiles",
296
+ path: getBrowserProfilesDir(),
297
+ present: fs.existsSync(getBrowserProfilesDir()),
298
+ },
299
+ {
300
+ key: "logs",
301
+ label: "Logs",
302
+ path: getLogsDir(),
303
+ present: fs.existsSync(getLogsDir()),
304
+ },
305
+ ];
306
+ const checks = [
307
+ {
308
+ key: "cli",
309
+ label: "CLI",
310
+ status: "ok",
311
+ detail: `Version ${cliVersion}`,
312
+ },
313
+ {
314
+ key: "runtime",
315
+ label: "Runtime",
316
+ status: runtime.state === "installed" ? "ok" : "warn",
317
+ detail: runtime.state === "installed"
318
+ ? `Browser available at ${formatDisplayPath(runtime.runtimePath ?? "unknown")}`
319
+ : "Run `vana setup` to install the local browser runtime.",
320
+ },
321
+ {
322
+ key: "personalServer",
323
+ label: "Personal Server",
324
+ status: personalServer.state === "available" ? "ok" : "warn",
325
+ detail: personalServer.state === "available"
326
+ ? (personalServer.url ?? "Available")
327
+ : "Unavailable. Connects will stay local until a Personal Server is reachable.",
328
+ },
329
+ ...directories.map((entry) => ({
330
+ key: entry.key,
331
+ label: entry.label,
332
+ status: entry.present ? "ok" : "warn",
333
+ detail: `${entry.present ? "Present" : "Missing"} at ${formatDisplayPath(entry.path)}`,
334
+ })),
335
+ {
336
+ key: "sources",
337
+ label: "Tracked sources",
338
+ status: "ok",
339
+ detail: `${Object.keys(state.sources).length} source${Object.keys(state.sources).length === 1 ? "" : "s"} in local state`,
340
+ },
341
+ ...(attentionSources[0]
342
+ ? [
343
+ {
344
+ key: "latestIssue",
345
+ label: "Latest issue",
346
+ status: "warn",
347
+ detail: `${displaySource(attentionSources[0].source, sourceLabels)}: ${humanizeIssue(attentionSources[0].lastError ?? getSourceStatusPresentation(attentionSources[0]).label)}`,
348
+ },
349
+ ]
350
+ : []),
351
+ ];
352
+ const nextSteps = [
353
+ ...(runtime.state !== "installed"
354
+ ? ["Install the local runtime with `vana setup`."]
355
+ : []),
356
+ ...(personalServer.state !== "available"
357
+ ? [
358
+ "Your Personal Server is unavailable, so successful runs will stay local.",
359
+ ]
360
+ : []),
361
+ ...(attentionSources[0]?.lastLogPath
362
+ ? [
363
+ `Inspect the latest issue log with \`vana logs ${attentionSources[0].source}\`.`,
364
+ ]
365
+ : attentionSources[0]
366
+ ? [`View details with \`vana logs ${attentionSources[0].source}\`.`]
367
+ : Object.keys(state.sources).length === 0
368
+ ? [
369
+ (() => {
370
+ const suggested = registrySources.find((s) => s.authMode !== "legacy");
371
+ return suggested
372
+ ? `Connect your first source with \`vana connect ${suggested.id}\`.`
373
+ : "Connect your first source with `vana connect`.";
374
+ })(),
375
+ ]
376
+ : [
377
+ (() => {
378
+ const suggested = registrySources.find((s) => s.authMode !== "legacy");
379
+ return suggested
380
+ ? `Connect a source with \`vana connect ${suggested.id}\`.`
381
+ : "Connect a source with `vana connect`.";
382
+ })(),
383
+ ]),
384
+ ];
385
+ return {
386
+ cliVersion,
387
+ channel: cliChannel,
388
+ installMethod,
389
+ runtime: runtime.state,
390
+ runtimePath: runtime.runtimePath,
391
+ personalServer: personalServer.state,
392
+ personalServerUrl: personalServer.url,
393
+ personalServerSource: personalServer.source,
394
+ capabilities: runtime.capabilities,
395
+ paths: {
396
+ executable: process.execPath,
397
+ appRoot: appRootPath,
398
+ dataHome: getVanaHome(),
399
+ stateFile: getCliStatePath(),
400
+ connectorCache: getConnectorCacheDir(),
401
+ browserProfiles: getBrowserProfilesDir(),
402
+ logs: getLogsDir(),
403
+ },
404
+ lifecycle,
405
+ summary: {
406
+ trackedSourceCount: Object.keys(state.sources).length,
407
+ attentionCount,
408
+ connectedCount,
409
+ },
410
+ recentSources,
411
+ checks,
412
+ nextSteps,
413
+ };
414
+ }
415
+ //# sourceMappingURL=queries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/cli/queries.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export type RenderTier = "plain" | "standard" | "rich";
2
+ export interface RenderCapabilities {
3
+ readonly interactive: boolean;
4
+ readonly color: boolean;
5
+ readonly unicode: boolean;
6
+ readonly tier: RenderTier;
7
+ }
8
+ export declare function detectRenderCapabilities(): RenderCapabilities;
9
+ //# sourceMappingURL=capabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../src/cli/render/capabilities.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;AAEvD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B;AAED,wBAAgB,wBAAwB,IAAI,kBAAkB,CAqB7D"}
@@ -0,0 +1,24 @@
1
+ import pc from "picocolors";
2
+ export function detectRenderCapabilities() {
3
+ const interactive = Boolean(process.stdout.isTTY) &&
4
+ process.env.TERM !== "dumb" &&
5
+ process.env.CI !== "true";
6
+ const color = interactive && pc.isColorSupported && !process.env.NO_COLOR;
7
+ const unicode = process.platform !== "win32" || Boolean(process.env.WT_SESSION);
8
+ const tier = interactive && color && supportsRichColor()
9
+ ? "rich"
10
+ : interactive
11
+ ? "standard"
12
+ : "plain";
13
+ return {
14
+ interactive,
15
+ color,
16
+ unicode,
17
+ tier,
18
+ };
19
+ }
20
+ function supportsRichColor() {
21
+ const colorTerm = process.env.COLORTERM?.toLowerCase() ?? "";
22
+ return colorTerm.includes("truecolor") || colorTerm.includes("24bit");
23
+ }
24
+ //# sourceMappingURL=capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../src/cli/render/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAW5B,MAAM,UAAU,wBAAwB;IACtC,MAAM,WAAW,GACf,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM;QAC3B,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,MAAM,CAAC;IAC5B,MAAM,KAAK,GAAG,WAAW,IAAI,EAAE,CAAC,gBAAgB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC1E,MAAM,OAAO,GACX,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAClE,MAAM,IAAI,GACR,WAAW,IAAI,KAAK,IAAI,iBAAiB,EAAE;QACzC,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,WAAW;YACX,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,OAAO,CAAC;IAEhB,OAAO;QACL,WAAW;QACX,KAAK;QACL,OAAO;QACP,IAAI;KACL,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB;IACxB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC7D,OAAO,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACxE,CAAC"}
@@ -0,0 +1,18 @@
1
+ export interface ConnectRenderer {
2
+ title(source: string): void;
3
+ scopeActive(scope: string): void;
4
+ scopeDone(scope: string, detail?: string): void;
5
+ scopeFailed(scope: string, error: string): void;
6
+ success(message: string): void;
7
+ detail(message: string): void;
8
+ next(command: string): void;
9
+ fail(message: string): void;
10
+ bell(): void;
11
+ cleanup(): void;
12
+ /** Pause rendering for prompts (stops spinner) */
13
+ pauseForPrompt(): void;
14
+ /** Resume rendering after prompts */
15
+ resumeAfterPrompt(): void;
16
+ }
17
+ export declare function createConnectRenderer(): ConnectRenderer;
18
+ //# sourceMappingURL=connect-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect-renderer.d.ts","sourceRoot":"","sources":["../../../src/cli/render/connect-renderer.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChD,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAChD,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,IAAI,IAAI,CAAC;IACb,OAAO,IAAI,IAAI,CAAC;IAChB,kDAAkD;IAClD,cAAc,IAAI,IAAI,CAAC;IACvB,qCAAqC;IACrC,iBAAiB,IAAI,IAAI,CAAC;CAC3B;AAED,wBAAgB,qBAAqB,IAAI,eAAe,CAyRvD"}