vana-cli 0.15.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.
- package/LICENSE +21 -0
- package/README.md +320 -0
- package/dist/cli/auth.d.ts +119 -0
- package/dist/cli/auth.d.ts.map +1 -0
- package/dist/cli/auth.js +528 -0
- package/dist/cli/auth.js.map +1 -0
- package/dist/cli/bin.d.ts +3 -0
- package/dist/cli/bin.d.ts.map +1 -0
- package/dist/cli/bin.js +15 -0
- package/dist/cli/bin.js.map +1 -0
- package/dist/cli/index.d.ts +92 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +4703 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/main.d.ts +2 -0
- package/dist/cli/main.d.ts.map +1 -0
- package/dist/cli/main.js +10 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/mcp-server.d.ts +15 -0
- package/dist/cli/mcp-server.d.ts.map +1 -0
- package/dist/cli/mcp-server.js +199 -0
- package/dist/cli/mcp-server.js.map +1 -0
- package/dist/cli/queries.d.ts +128 -0
- package/dist/cli/queries.d.ts.map +1 -0
- package/dist/cli/queries.js +422 -0
- package/dist/cli/queries.js.map +1 -0
- package/dist/cli/render/capabilities.d.ts +9 -0
- package/dist/cli/render/capabilities.d.ts.map +1 -0
- package/dist/cli/render/capabilities.js +24 -0
- package/dist/cli/render/capabilities.js.map +1 -0
- package/dist/cli/render/connect-renderer.d.ts +23 -0
- package/dist/cli/render/connect-renderer.d.ts.map +1 -0
- package/dist/cli/render/connect-renderer.js +259 -0
- package/dist/cli/render/connect-renderer.js.map +1 -0
- package/dist/cli/render/flow-theme.d.ts +17 -0
- package/dist/cli/render/flow-theme.d.ts.map +1 -0
- package/dist/cli/render/flow-theme.js +26 -0
- package/dist/cli/render/flow-theme.js.map +1 -0
- package/dist/cli/render/format.d.ts +27 -0
- package/dist/cli/render/format.d.ts.map +1 -0
- package/dist/cli/render/format.js +111 -0
- package/dist/cli/render/format.js.map +1 -0
- package/dist/cli/render/index.d.ts +8 -0
- package/dist/cli/render/index.d.ts.map +1 -0
- package/dist/cli/render/index.js +8 -0
- package/dist/cli/render/index.js.map +1 -0
- package/dist/cli/render/progress.d.ts +11 -0
- package/dist/cli/render/progress.d.ts.map +1 -0
- package/dist/cli/render/progress.js +56 -0
- package/dist/cli/render/progress.js.map +1 -0
- package/dist/cli/render/symbols.d.ts +11 -0
- package/dist/cli/render/symbols.d.ts.map +1 -0
- package/dist/cli/render/symbols.js +21 -0
- package/dist/cli/render/symbols.js.map +1 -0
- package/dist/cli/render/theme.d.ts +16 -0
- package/dist/cli/render/theme.d.ts.map +1 -0
- package/dist/cli/render/theme.js +57 -0
- package/dist/cli/render/theme.js.map +1 -0
- package/dist/cli/search-select.d.ts +17 -0
- package/dist/cli/search-select.d.ts.map +1 -0
- package/dist/cli/search-select.js +29 -0
- package/dist/cli/search-select.js.map +1 -0
- package/dist/cli/telemetry-contract.d.ts +146 -0
- package/dist/cli/telemetry-contract.d.ts.map +1 -0
- package/dist/cli/telemetry-contract.js +56 -0
- package/dist/cli/telemetry-contract.js.map +1 -0
- package/dist/cli/telemetry.d.ts +60 -0
- package/dist/cli/telemetry.d.ts.map +1 -0
- package/dist/cli/telemetry.js +621 -0
- package/dist/cli/telemetry.js.map +1 -0
- package/dist/cli/update-check.d.ts +21 -0
- package/dist/cli/update-check.d.ts.map +1 -0
- package/dist/cli/update-check.js +86 -0
- package/dist/cli/update-check.js.map +1 -0
- package/dist/connectors/index.d.ts +2 -0
- package/dist/connectors/index.d.ts.map +1 -0
- package/dist/connectors/index.js +2 -0
- package/dist/connectors/index.js.map +1 -0
- package/dist/connectors/registry.d.ts +55 -0
- package/dist/connectors/registry.d.ts.map +1 -0
- package/dist/connectors/registry.js +301 -0
- package/dist/connectors/registry.js.map +1 -0
- package/dist/core/cli-types.d.ts +722 -0
- package/dist/core/cli-types.d.ts.map +1 -0
- package/dist/core/cli-types.js +328 -0
- package/dist/core/cli-types.js.map +1 -0
- package/dist/core/constants.d.ts +33 -0
- package/dist/core/constants.d.ts.map +1 -0
- package/dist/core/constants.js +25 -0
- package/dist/core/constants.js.map +1 -0
- package/dist/core/errors.d.ts +47 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +50 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/grants.d.ts +19 -0
- package/dist/core/grants.d.ts.map +1 -0
- package/dist/core/grants.js +31 -0
- package/dist/core/grants.js.map +1 -0
- package/dist/core/index.d.ts +9 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +7 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/paths.d.ts +30 -0
- package/dist/core/paths.d.ts.map +1 -0
- package/dist/core/paths.js +95 -0
- package/dist/core/paths.js.map +1 -0
- package/dist/core/state-store.d.ts +44 -0
- package/dist/core/state-store.d.ts.map +1 -0
- package/dist/core/state-store.js +101 -0
- package/dist/core/state-store.js.map +1 -0
- package/dist/core/types.d.ts +148 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +2 -0
- package/dist/core/types.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/personal-server/client.d.ts +34 -0
- package/dist/personal-server/client.d.ts.map +1 -0
- package/dist/personal-server/client.js +108 -0
- package/dist/personal-server/client.js.map +1 -0
- package/dist/personal-server/index.d.ts +28 -0
- package/dist/personal-server/index.d.ts.map +1 -0
- package/dist/personal-server/index.js +157 -0
- package/dist/personal-server/index.js.map +1 -0
- package/dist/personal-server/scope-resolver.d.ts +22 -0
- package/dist/personal-server/scope-resolver.d.ts.map +1 -0
- package/dist/personal-server/scope-resolver.js +80 -0
- package/dist/personal-server/scope-resolver.js.map +1 -0
- package/dist/react/ConnectButton.d.ts +27 -0
- package/dist/react/ConnectButton.d.ts.map +1 -0
- package/dist/react/ConnectButton.js +39 -0
- package/dist/react/ConnectButton.js.map +1 -0
- package/dist/react/index.d.ts +4 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +4 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/useVanaConnect.d.ts +50 -0
- package/dist/react/useVanaConnect.d.ts.map +1 -0
- package/dist/react/useVanaConnect.js +114 -0
- package/dist/react/useVanaConnect.js.map +1 -0
- package/dist/react/useVanaData.d.ts +69 -0
- package/dist/react/useVanaData.d.ts.map +1 -0
- package/dist/react/useVanaData.js +144 -0
- package/dist/react/useVanaData.js.map +1 -0
- package/dist/runtime/core/contracts.d.ts +84 -0
- package/dist/runtime/core/contracts.d.ts.map +1 -0
- package/dist/runtime/core/contracts.js +2 -0
- package/dist/runtime/core/contracts.js.map +1 -0
- package/dist/runtime/core/index.d.ts +2 -0
- package/dist/runtime/core/index.d.ts.map +1 -0
- package/dist/runtime/core/index.js +2 -0
- package/dist/runtime/core/index.js.map +1 -0
- package/dist/runtime/index.d.ts +4 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +3 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/managed-playwright.d.ts +42 -0
- package/dist/runtime/managed-playwright.d.ts.map +1 -0
- package/dist/runtime/managed-playwright.js +178 -0
- package/dist/runtime/managed-playwright.js.map +1 -0
- package/dist/runtime/playwright/browser.d.ts +12 -0
- package/dist/runtime/playwright/browser.d.ts.map +1 -0
- package/dist/runtime/playwright/browser.js +229 -0
- package/dist/runtime/playwright/browser.js.map +1 -0
- package/dist/runtime/playwright/in-process-run.d.ts +6 -0
- package/dist/runtime/playwright/in-process-run.d.ts.map +1 -0
- package/dist/runtime/playwright/in-process-run.js +625 -0
- package/dist/runtime/playwright/in-process-run.js.map +1 -0
- package/dist/runtime/playwright/index.d.ts +3 -0
- package/dist/runtime/playwright/index.d.ts.map +1 -0
- package/dist/runtime/playwright/index.js +3 -0
- package/dist/runtime/playwright/index.js.map +1 -0
- package/dist/runtime/repo-paths.d.ts +2 -0
- package/dist/runtime/repo-paths.d.ts.map +1 -0
- package/dist/runtime/repo-paths.js +36 -0
- package/dist/runtime/repo-paths.js.map +1 -0
- package/dist/server/config.d.ts +38 -0
- package/dist/server/config.d.ts.map +1 -0
- package/dist/server/config.js +45 -0
- package/dist/server/config.js.map +1 -0
- package/dist/server/connect.d.ts +43 -0
- package/dist/server/connect.d.ts.map +1 -0
- package/dist/server/connect.js +115 -0
- package/dist/server/connect.js.map +1 -0
- package/dist/server/data-client.d.ts +31 -0
- package/dist/server/data-client.d.ts.map +1 -0
- package/dist/server/data-client.js +95 -0
- package/dist/server/data-client.js.map +1 -0
- package/dist/server/index.d.ts +8 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +8 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/manifest-signer.d.ts +25 -0
- package/dist/server/manifest-signer.d.ts.map +1 -0
- package/dist/server/manifest-signer.js +51 -0
- package/dist/server/manifest-signer.js.map +1 -0
- package/dist/server/request-signer.d.ts +31 -0
- package/dist/server/request-signer.d.ts.map +1 -0
- package/dist/server/request-signer.js +72 -0
- package/dist/server/request-signer.js.map +1 -0
- package/dist/server/session-relay.d.ts +39 -0
- package/dist/server/session-relay.d.ts.map +1 -0
- package/dist/server/session-relay.js +74 -0
- package/dist/server/session-relay.js.map +1 -0
- package/dist/server/webhook.d.ts +11 -0
- package/dist/server/webhook.d.ts.map +1 -0
- package/dist/server/webhook.js +18 -0
- package/dist/server/webhook.js.map +1 -0
- package/dist/skills/index.d.ts +4 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +3 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/paths.d.ts +33 -0
- package/dist/skills/paths.d.ts.map +1 -0
- package/dist/skills/paths.js +81 -0
- package/dist/skills/paths.js.map +1 -0
- package/dist/skills/registry.d.ts +48 -0
- package/dist/skills/registry.d.ts.map +1 -0
- package/dist/skills/registry.js +173 -0
- package/dist/skills/registry.js.map +1 -0
- package/package.json +147 -0
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP (Model Context Protocol) server for agent integration.
|
|
3
|
+
*
|
|
4
|
+
* Exposes high-level tools over stdio so any MCP-compatible agent
|
|
5
|
+
* (Claude Code, Cursor, etc.) can discover and call them.
|
|
6
|
+
*
|
|
7
|
+
* CRITICAL: All logging/output goes to stderr. stdout is the JSON-RPC transport.
|
|
8
|
+
*/
|
|
9
|
+
import { spawn } from "node:child_process";
|
|
10
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
11
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
12
|
+
import { z } from "zod";
|
|
13
|
+
import { getCliVersion } from "./index.js";
|
|
14
|
+
import { queryStatus, querySources, queryDataShow, queryDoctor, } from "./queries.js";
|
|
15
|
+
/**
|
|
16
|
+
* Start the MCP server on stdio.
|
|
17
|
+
*
|
|
18
|
+
* Returns a promise that resolves when the transport disconnects.
|
|
19
|
+
*/
|
|
20
|
+
export async function startMcpServer() {
|
|
21
|
+
const version = getCliVersion();
|
|
22
|
+
const server = new McpServer({
|
|
23
|
+
name: "vana",
|
|
24
|
+
version,
|
|
25
|
+
});
|
|
26
|
+
// ── Tool: check_status ───────────────────────────────────────────────
|
|
27
|
+
server.tool("check_status", "Check system health: runtime state, Personal Server connection, and connected source status", async () => {
|
|
28
|
+
const result = await queryStatus();
|
|
29
|
+
return {
|
|
30
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
31
|
+
};
|
|
32
|
+
});
|
|
33
|
+
// ── Tool: list_sources ───────────────────────────────────────────────
|
|
34
|
+
server.tool("list_sources", "List available data sources that can be connected for personal data collection", { filter: z.string().optional().describe("Filter sources by name") }, async ({ filter }) => {
|
|
35
|
+
const result = await querySources();
|
|
36
|
+
if (filter) {
|
|
37
|
+
const lowerFilter = filter.toLowerCase();
|
|
38
|
+
result.sources = result.sources.filter((s) => s.id.toLowerCase().includes(lowerFilter) ||
|
|
39
|
+
s.name.toLowerCase().includes(lowerFilter));
|
|
40
|
+
result.count = result.sources.length;
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
44
|
+
};
|
|
45
|
+
});
|
|
46
|
+
// ── Tool: show_data ──────────────────────────────────────────────────
|
|
47
|
+
server.tool("show_data", "Inspect collected data for a connected source. Shows data summary, sync status, and file paths", { source: z.string().describe("Source identifier (e.g. github, twitter)") }, async ({ source }) => {
|
|
48
|
+
const result = await queryDataShow(source);
|
|
49
|
+
return {
|
|
50
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
51
|
+
};
|
|
52
|
+
});
|
|
53
|
+
// ── Tool: connect_source ─────────────────────────────────────────────
|
|
54
|
+
server.tool("connect_source", "Connect a platform and collect personal data. Runs the full connect flow: setup, authentication, data collection, and sync", { source: z.string().describe("Source identifier (e.g. github, twitter)") }, async ({ source }) => {
|
|
55
|
+
// Check auth mode before spawning — legacy sources need a headed
|
|
56
|
+
// browser and cannot be connected by an agent.
|
|
57
|
+
const sourcesResult = await querySources();
|
|
58
|
+
const sourceInfo = sourcesResult.sources?.find((s) => s.id === source || s.name?.toLowerCase() === source.toLowerCase());
|
|
59
|
+
if (sourceInfo?.authMode === "legacy") {
|
|
60
|
+
return {
|
|
61
|
+
content: [
|
|
62
|
+
{
|
|
63
|
+
type: "text",
|
|
64
|
+
text: `${sourceInfo.name ?? source} requires browser login. The user must run this in their own terminal:\n\nvana connect ${source}\n\nThis source cannot be connected by an agent.`,
|
|
65
|
+
},
|
|
66
|
+
],
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
return await runConnectAsChild(source);
|
|
70
|
+
});
|
|
71
|
+
// ── Tool: run_diagnostics ────────────────────────────────────────────
|
|
72
|
+
server.tool("run_diagnostics", "Run detailed system diagnostics: CLI version, runtime paths, browser state, connector cache, and source-level issues", async () => {
|
|
73
|
+
const result = await queryDoctor();
|
|
74
|
+
return {
|
|
75
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
76
|
+
};
|
|
77
|
+
});
|
|
78
|
+
// ── Tool: generate_context (placeholder) ─────────────────────────────
|
|
79
|
+
server.tool("generate_context", "Generate prioritized suggestions for the next agent prompt based on connected personal data (coming soon)", async () => {
|
|
80
|
+
return {
|
|
81
|
+
content: [
|
|
82
|
+
{
|
|
83
|
+
type: "text",
|
|
84
|
+
text: "Not yet implemented. Install with: vana skill install next-prompt",
|
|
85
|
+
},
|
|
86
|
+
],
|
|
87
|
+
};
|
|
88
|
+
});
|
|
89
|
+
// ── Connect transport and run ────────────────────────────────────────
|
|
90
|
+
const transport = new StdioServerTransport();
|
|
91
|
+
await server.connect(transport);
|
|
92
|
+
// Wait until the transport closes
|
|
93
|
+
return new Promise((resolve) => {
|
|
94
|
+
transport.onclose = () => resolve();
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
// ── Child process runner for connect_source ──────────────────────────
|
|
98
|
+
/**
|
|
99
|
+
* Run `vana connect <source> --json --ipc` as a child process.
|
|
100
|
+
*
|
|
101
|
+
* The MCP server's stdout is the JSON-RPC transport, so the connect flow
|
|
102
|
+
* must run in a separate process. We collect the child's stdout (JSONL events)
|
|
103
|
+
* and stderr, parse the final outcome, and return a structured summary.
|
|
104
|
+
*
|
|
105
|
+
* Uses --ipc instead of --no-input so the connector can pause for
|
|
106
|
+
* credential input via file-based IPC rather than failing immediately.
|
|
107
|
+
*/
|
|
108
|
+
async function runConnectAsChild(source) {
|
|
109
|
+
return new Promise((resolve) => {
|
|
110
|
+
const child = spawn(process.execPath, [process.argv[1], "connect", source, "--json", "--ipc"], {
|
|
111
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
112
|
+
env: { ...process.env },
|
|
113
|
+
});
|
|
114
|
+
const stdoutChunks = [];
|
|
115
|
+
const stderrChunks = [];
|
|
116
|
+
child.stdout.on("data", (chunk) => stdoutChunks.push(chunk));
|
|
117
|
+
child.stderr.on("data", (chunk) => stderrChunks.push(chunk));
|
|
118
|
+
child.on("error", (err) => {
|
|
119
|
+
resolve({
|
|
120
|
+
content: [
|
|
121
|
+
{
|
|
122
|
+
type: "text",
|
|
123
|
+
text: `Failed to start connect process: ${err.message}`,
|
|
124
|
+
},
|
|
125
|
+
],
|
|
126
|
+
isError: true,
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
child.on("close", (code) => {
|
|
130
|
+
const stdout = Buffer.concat(stdoutChunks).toString("utf8");
|
|
131
|
+
const stderr = Buffer.concat(stderrChunks).toString("utf8");
|
|
132
|
+
// Parse JSONL events from stdout
|
|
133
|
+
const events = [];
|
|
134
|
+
for (const line of stdout.split("\n")) {
|
|
135
|
+
const trimmed = line.trim();
|
|
136
|
+
if (!trimmed)
|
|
137
|
+
continue;
|
|
138
|
+
try {
|
|
139
|
+
events.push(JSON.parse(trimmed));
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
// Skip non-JSON lines
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
// Find the final outcome event (last event with an "outcome" field)
|
|
146
|
+
const outcomeEvent = [...events]
|
|
147
|
+
.reverse()
|
|
148
|
+
.find((e) => "outcome" in e || "event" in e);
|
|
149
|
+
const summary = buildConnectSummary(source, code, events, outcomeEvent);
|
|
150
|
+
// If the outcome indicates interactive input is needed, explain
|
|
151
|
+
if (outcomeEvent &&
|
|
152
|
+
(outcomeEvent.outcome === "needs_input" ||
|
|
153
|
+
outcomeEvent.event === "needs_input")) {
|
|
154
|
+
summary.push("", `This source requires interactive authentication. Run \`vana connect ${source}\` in a terminal to complete the flow.`);
|
|
155
|
+
}
|
|
156
|
+
if (stderr.trim()) {
|
|
157
|
+
summary.push("", "Stderr:", stderr.trim());
|
|
158
|
+
}
|
|
159
|
+
resolve({
|
|
160
|
+
content: [{ type: "text", text: summary.join("\n") }],
|
|
161
|
+
isError: code !== 0,
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Build a human-readable summary from connect child process results.
|
|
168
|
+
*/
|
|
169
|
+
function buildConnectSummary(source, exitCode, events, outcomeEvent) {
|
|
170
|
+
const lines = [];
|
|
171
|
+
if (exitCode === 0) {
|
|
172
|
+
lines.push(`Connected ${source} successfully.`);
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
lines.push(`Connect ${source} exited with code ${exitCode ?? "unknown"}.`);
|
|
176
|
+
}
|
|
177
|
+
// Summarize collected data from events
|
|
178
|
+
const scopeEvents = events.filter((e) => e.event === "scope_complete" || e.event === "scope_collected");
|
|
179
|
+
if (scopeEvents.length > 0) {
|
|
180
|
+
lines.push("", "Collected data:", ...scopeEvents.map((e) => {
|
|
181
|
+
const scope = e.scope ?? e.name ?? "unknown";
|
|
182
|
+
const count = e.count ?? e.itemCount;
|
|
183
|
+
return count != null ? ` ${scope} (${count} items)` : ` ${scope}`;
|
|
184
|
+
}));
|
|
185
|
+
}
|
|
186
|
+
if (outcomeEvent) {
|
|
187
|
+
const outcome = outcomeEvent.outcome ?? outcomeEvent.event;
|
|
188
|
+
if (outcome &&
|
|
189
|
+
outcome !== "scope_complete" &&
|
|
190
|
+
outcome !== "scope_collected") {
|
|
191
|
+
lines.push("", `Outcome: ${outcome}`);
|
|
192
|
+
}
|
|
193
|
+
if (outcomeEvent.message) {
|
|
194
|
+
lines.push(`Detail: ${outcomeEvent.message}`);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
return lines;
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=mcp-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/cli/mcp-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -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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"}
|