vana-cli 0.25.0 → 0.27.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/README.md +8 -0
- package/dist/cli/auth.d.ts +2 -0
- package/dist/cli/auth.d.ts.map +1 -1
- package/dist/cli/auth.js +2 -1
- package/dist/cli/auth.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +40 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/server-start.d.ts +51 -0
- package/dist/cli/server-start.d.ts.map +1 -0
- package/dist/cli/server-start.js +337 -0
- package/dist/cli/server-start.js.map +1 -0
- package/dist/personal-server/index.d.ts +1 -0
- package/dist/personal-server/index.d.ts.map +1 -1
- package/dist/personal-server/index.js +17 -2
- package/dist/personal-server/index.js.map +1 -1
- package/dist/personal-server/local/config.d.ts +28 -0
- package/dist/personal-server/local/config.d.ts.map +1 -0
- package/dist/personal-server/local/config.js +53 -0
- package/dist/personal-server/local/config.js.map +1 -0
- package/dist/personal-server/local/frpc.d.ts +59 -0
- package/dist/personal-server/local/frpc.d.ts.map +1 -0
- package/dist/personal-server/local/frpc.js +191 -0
- package/dist/personal-server/local/frpc.js.map +1 -0
- package/dist/personal-server/local/owner-binding.d.ts +53 -0
- package/dist/personal-server/local/owner-binding.d.ts.map +1 -0
- package/dist/personal-server/local/owner-binding.js +164 -0
- package/dist/personal-server/local/owner-binding.js.map +1 -0
- package/dist/personal-server/local/owner-secret.d.ts +17 -0
- package/dist/personal-server/local/owner-secret.d.ts.map +1 -0
- package/dist/personal-server/local/owner-secret.js +119 -0
- package/dist/personal-server/local/owner-secret.js.map +1 -0
- package/dist/personal-server/local/registration.d.ts +42 -0
- package/dist/personal-server/local/registration.d.ts.map +1 -0
- package/dist/personal-server/local/registration.js +81 -0
- package/dist/personal-server/local/registration.js.map +1 -0
- package/dist/personal-server/local/runtime-pkg/entry.mjs +271 -0
- package/dist/personal-server/local/runtime-pkg/package-lock.json +2342 -0
- package/dist/personal-server/local/runtime-pkg/package.json +13 -0
- package/dist/personal-server/local/runtime.d.ts +9 -0
- package/dist/personal-server/local/runtime.d.ts.map +1 -0
- package/dist/personal-server/local/runtime.js +66 -0
- package/dist/personal-server/local/runtime.js.map +1 -0
- package/dist/personal-server/local/server.d.ts +64 -0
- package/dist/personal-server/local/server.d.ts.map +1 -0
- package/dist/personal-server/local/server.js +279 -0
- package/dist/personal-server/local/server.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { VanaNetworkName } from "../core/network.js";
|
|
2
|
+
import { type ResolvedNode } from "../pdpp/host.js";
|
|
3
|
+
import { runOwnerBindingExchange } from "../personal-server/local/owner-binding.js";
|
|
4
|
+
import { type OwnerSecretStore } from "../personal-server/local/owner-secret.js";
|
|
5
|
+
import { startLocalServer, type LocalServerHandle, type PublicMarker, type RunningServer } from "../personal-server/local/server.js";
|
|
6
|
+
import { type FrpcResolution } from "../personal-server/local/frpc.js";
|
|
7
|
+
import { signServerRegistration } from "../personal-server/local/registration.js";
|
|
8
|
+
import { type VanaCredentials } from "./auth.js";
|
|
9
|
+
export interface ServerStartIo {
|
|
10
|
+
/** A line for a person; silent in --json mode. */
|
|
11
|
+
say(line: string): void;
|
|
12
|
+
/** One machine-readable state change; only in --json mode. */
|
|
13
|
+
event(event: Record<string, unknown>): void;
|
|
14
|
+
/** Ask before a one-time install; never called with --no-input or --yes. */
|
|
15
|
+
confirm(message: string): Promise<boolean>;
|
|
16
|
+
}
|
|
17
|
+
export interface ServerStartDeps {
|
|
18
|
+
findRunningServers: (fetchImpl?: typeof fetch) => Promise<RunningServer[]>;
|
|
19
|
+
loadCredentials: () => VanaCredentials | null;
|
|
20
|
+
saveCredentials: (credentials: VanaCredentials) => Promise<void>;
|
|
21
|
+
secrets: OwnerSecretStore;
|
|
22
|
+
exchange: typeof runOwnerBindingExchange;
|
|
23
|
+
openBrowser: (url: string) => void;
|
|
24
|
+
findNode: (range: string) => Promise<ResolvedNode | null>;
|
|
25
|
+
installNode: (logPath: string) => Promise<ResolvedNode>;
|
|
26
|
+
runtimeInstalled: () => boolean;
|
|
27
|
+
ensureRuntime: (node: ResolvedNode, logPath: string) => Promise<string>;
|
|
28
|
+
choosePort: (requested?: number) => Promise<number | null>;
|
|
29
|
+
start: typeof startLocalServer;
|
|
30
|
+
resolveFrpc: () => Promise<FrpcResolution>;
|
|
31
|
+
installFrpc: (logPath: string) => Promise<string>;
|
|
32
|
+
signRegistration: typeof signServerRegistration;
|
|
33
|
+
readPublicMarker: (network: VanaNetworkName) => PublicMarker | null;
|
|
34
|
+
writePublicMarker: (network: VanaNetworkName, marker: PublicMarker) => Promise<void>;
|
|
35
|
+
/** Resolves when the person asks the server to stop (Ctrl+C). */
|
|
36
|
+
waitForStop: (handle: LocalServerHandle) => Promise<"stopped" | "exited">;
|
|
37
|
+
}
|
|
38
|
+
export declare function defaultServerStartDeps(): ServerStartDeps;
|
|
39
|
+
/**
|
|
40
|
+
* `vana server start`: run a Personal Server owned by the signed-in account,
|
|
41
|
+
* in the foreground, when no server of theirs is already running.
|
|
42
|
+
*/
|
|
43
|
+
export declare function runServerStart(options: {
|
|
44
|
+
network: VanaNetworkName;
|
|
45
|
+
port?: number;
|
|
46
|
+
noInput?: boolean;
|
|
47
|
+
yes?: boolean;
|
|
48
|
+
/** Register the server and open its public URL, so apps can reach it. */
|
|
49
|
+
public?: boolean;
|
|
50
|
+
}, io: ServerStartIo, deps?: ServerStartDeps): Promise<number>;
|
|
51
|
+
//# sourceMappingURL=server-start.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-start.d.ts","sourceRoot":"","sources":["../../src/cli/server-start.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
import { CliExitCode } from "../core/exit-codes.js";
|
|
2
|
+
import { getTimestampedLogPath } from "../core/paths.js";
|
|
3
|
+
import { ensureParentDir } from "../core/index.js";
|
|
4
|
+
import { canInstallNodeFor, findCompatibleNode, installManagedNode, } from "../pdpp/host.js";
|
|
5
|
+
import { isRuntimeInstalled, ensureRuntime, } from "../personal-server/local/runtime.js";
|
|
6
|
+
import { runOwnerBindingExchange, } from "../personal-server/local/owner-binding.js";
|
|
7
|
+
import { defaultOwnerSecretStore, ownerSecretKey, } from "../personal-server/local/owner-secret.js";
|
|
8
|
+
import { choosePort, findRunningServers, nextMessage, readPublicMarker, startLocalServer, writePublicMarker, } from "../personal-server/local/server.js";
|
|
9
|
+
import { installFrpc, resolveFrpc, } from "../personal-server/local/frpc.js";
|
|
10
|
+
import { RegistrationNeedsBrowserError, signServerRegistration, } from "../personal-server/local/registration.js";
|
|
11
|
+
import { getAccountUrl, isExpired, loadCredentials, openBrowser, saveCredentials, } from "./auth.js";
|
|
12
|
+
/** The server release needs the same Node range as the published connectors. */
|
|
13
|
+
const NODE_RANGE = ">=24.15.0 <25";
|
|
14
|
+
export function defaultServerStartDeps() {
|
|
15
|
+
return {
|
|
16
|
+
findRunningServers,
|
|
17
|
+
loadCredentials,
|
|
18
|
+
saveCredentials,
|
|
19
|
+
secrets: defaultOwnerSecretStore(),
|
|
20
|
+
exchange: runOwnerBindingExchange,
|
|
21
|
+
openBrowser,
|
|
22
|
+
findNode: findCompatibleNode,
|
|
23
|
+
installNode: installManagedNode,
|
|
24
|
+
runtimeInstalled: () => isRuntimeInstalled(),
|
|
25
|
+
ensureRuntime: (node, logPath) => ensureRuntime(node, logPath),
|
|
26
|
+
choosePort,
|
|
27
|
+
start: startLocalServer,
|
|
28
|
+
resolveFrpc: () => resolveFrpc(),
|
|
29
|
+
installFrpc: (logPath) => installFrpc(logPath),
|
|
30
|
+
signRegistration: signServerRegistration,
|
|
31
|
+
readPublicMarker,
|
|
32
|
+
writePublicMarker,
|
|
33
|
+
waitForStop: (handle) => new Promise((resolve) => {
|
|
34
|
+
// Stay subscribed until the process ends: a second Ctrl+C while the
|
|
35
|
+
// server shuts down must not kill the CLI before it cleans up.
|
|
36
|
+
const onSignal = () => resolve("stopped");
|
|
37
|
+
process.on("SIGINT", onSignal);
|
|
38
|
+
process.on("SIGTERM", onSignal);
|
|
39
|
+
void handle.exited.then(() => resolve("exited"));
|
|
40
|
+
}),
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
function isAddress(value) {
|
|
44
|
+
return /^0x[0-9a-fA-F]{40}$/.test(value);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* `vana server start`: run a Personal Server owned by the signed-in account,
|
|
48
|
+
* in the foreground, when no server of theirs is already running.
|
|
49
|
+
*/
|
|
50
|
+
export async function runServerStart(options, io, deps = defaultServerStartDeps()) {
|
|
51
|
+
const credentials = deps.loadCredentials();
|
|
52
|
+
const account = credentials?.account;
|
|
53
|
+
const signedIn = Boolean(credentials && account?.session_token && !isExpired(credentials));
|
|
54
|
+
if (!signedIn || !credentials || !account) {
|
|
55
|
+
io.say("Run `vana login` first: the server belongs to the account you sign in with.");
|
|
56
|
+
io.event({ type: "server-needs-login" });
|
|
57
|
+
return CliExitCode.CONFIRMATION_REQUIRED;
|
|
58
|
+
}
|
|
59
|
+
// One server per owner. If this account already has one (Desktop's, or an
|
|
60
|
+
// earlier `vana server start`), use it. Another identity's server can run
|
|
61
|
+
// beside ours: separate data dirs, and `vana connect` picks the one this
|
|
62
|
+
// account owns.
|
|
63
|
+
const running = await deps.findRunningServers();
|
|
64
|
+
const ours = running.find((server) => server.owner?.toLowerCase() === account.address.toLowerCase());
|
|
65
|
+
if (ours) {
|
|
66
|
+
io.say(`Your Personal Server is already running at ${ours.url}. Nothing to start.`);
|
|
67
|
+
io.event({
|
|
68
|
+
type: "server-already-running",
|
|
69
|
+
url: ours.url,
|
|
70
|
+
owner: ours.owner,
|
|
71
|
+
});
|
|
72
|
+
return CliExitCode.OK;
|
|
73
|
+
}
|
|
74
|
+
for (const other of running) {
|
|
75
|
+
io.say(other.owner
|
|
76
|
+
? `${other.url} runs a Personal Server for ${other.owner}; yours will use another port.`
|
|
77
|
+
: `Something else answers at ${other.url}; yours will use another port.`);
|
|
78
|
+
}
|
|
79
|
+
const logPath = getTimestampedLogPath("server-start");
|
|
80
|
+
await ensureParentDir(logPath);
|
|
81
|
+
// Owner binding: once per account, then from the keychain.
|
|
82
|
+
const accountUrl = getAccountUrl();
|
|
83
|
+
const secretKey = ownerSecretKey(accountUrl, account.address);
|
|
84
|
+
let binding = deps.secrets.get(secretKey);
|
|
85
|
+
if (!binding) {
|
|
86
|
+
if (options.noInput) {
|
|
87
|
+
io.say("The first start needs you to confirm in a browser. Run it without --no-input.");
|
|
88
|
+
io.event({ type: "server-needs-owner-confirmation" });
|
|
89
|
+
return CliExitCode.CONFIRMATION_REQUIRED;
|
|
90
|
+
}
|
|
91
|
+
io.say("Confirm in your browser that this Personal Server is yours.");
|
|
92
|
+
try {
|
|
93
|
+
binding = await deps.exchange({ accountUrl, accessToken: account.session_token }, {
|
|
94
|
+
openBrowser: deps.openBrowser,
|
|
95
|
+
onConfirmationUrl: (url) => io.say(`If the browser did not open: ${url}`),
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
io.say(error instanceof Error ? error.message : String(error));
|
|
100
|
+
io.event({ type: "server-owner-confirmation-failed" });
|
|
101
|
+
return CliExitCode.FAILURE;
|
|
102
|
+
}
|
|
103
|
+
if (isAddress(account.address) &&
|
|
104
|
+
binding.signerAddress.toLowerCase() !== account.address.toLowerCase()) {
|
|
105
|
+
io.say(`The confirmation came back signed by ${binding.signerAddress}, not ${account.address}. Nothing was saved.`);
|
|
106
|
+
return CliExitCode.FAILURE;
|
|
107
|
+
}
|
|
108
|
+
deps.secrets.set(secretKey, binding);
|
|
109
|
+
}
|
|
110
|
+
// Public: asked for now, or registered before. A registered server must
|
|
111
|
+
// come back reachable, or apps keep finding a URL that never answers.
|
|
112
|
+
const marker = deps.readPublicMarker(options.network);
|
|
113
|
+
let frpc = null;
|
|
114
|
+
if (options.public || marker) {
|
|
115
|
+
frpc = await deps.resolveFrpc();
|
|
116
|
+
if (frpc.kind === "unavailable") {
|
|
117
|
+
if (options.public) {
|
|
118
|
+
io.say(frpc.reason);
|
|
119
|
+
io.event({ type: "server-tunnel-unavailable", reason: frpc.reason });
|
|
120
|
+
return CliExitCode.NOT_READY;
|
|
121
|
+
}
|
|
122
|
+
io.say(`This server is registered, but ${frpc.reason} It starts local only.`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
// One-time installs: Node 24, the pinned server, the tunnel client.
|
|
126
|
+
let node = await deps.findNode(NODE_RANGE);
|
|
127
|
+
const runtimeReady = deps.runtimeInstalled();
|
|
128
|
+
const frpcNeeded = frpc?.kind === "installable";
|
|
129
|
+
if (!node || !runtimeReady || frpcNeeded) {
|
|
130
|
+
const needs = [
|
|
131
|
+
...(node ? [] : ["Node.js 24, which the server runs on"]),
|
|
132
|
+
...(runtimeReady ? [] : ["the Personal Server itself (~175 MB)"]),
|
|
133
|
+
...(frpcNeeded ? ["the tunnel client, frpc (~15 MB)"] : []),
|
|
134
|
+
];
|
|
135
|
+
if (options.noInput && !options.yes) {
|
|
136
|
+
io.say(`The first start installs ${needs.join(" and ")}. Run without --no-input, or add --yes.`);
|
|
137
|
+
io.event({ type: "server-setup-required", needs });
|
|
138
|
+
return CliExitCode.NOT_READY;
|
|
139
|
+
}
|
|
140
|
+
if (!options.yes &&
|
|
141
|
+
!(await io.confirm(`Install ${needs.join(" and ")} under ~/.vana?`))) {
|
|
142
|
+
io.say("Cancelled.");
|
|
143
|
+
return CliExitCode.FAILURE;
|
|
144
|
+
}
|
|
145
|
+
if (!node) {
|
|
146
|
+
if (!canInstallNodeFor(NODE_RANGE)) {
|
|
147
|
+
io.say(`This machine needs Node ${NODE_RANGE}; install it and set VANA_PDPP_NODE.`);
|
|
148
|
+
return CliExitCode.NOT_READY;
|
|
149
|
+
}
|
|
150
|
+
io.say("Installing Node.js...");
|
|
151
|
+
node = await deps.installNode(logPath);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
if (!runtimeReady)
|
|
155
|
+
io.say("Installing the Personal Server (one time)...");
|
|
156
|
+
const runtimeDir = await deps.ensureRuntime(node, logPath);
|
|
157
|
+
let frpcPath = frpc?.kind === "ready" ? frpc.path : null;
|
|
158
|
+
if (frpcNeeded) {
|
|
159
|
+
io.say("Installing the tunnel client (one time)...");
|
|
160
|
+
frpcPath = await deps.installFrpc(logPath);
|
|
161
|
+
}
|
|
162
|
+
const port = await deps.choosePort(options.port);
|
|
163
|
+
if (!port) {
|
|
164
|
+
io.say(options.port
|
|
165
|
+
? `Port ${options.port} or ${options.port + 1} is taken.`
|
|
166
|
+
: "Ports 8080 to 8085 are taken; pass --port.");
|
|
167
|
+
return CliExitCode.FAILURE;
|
|
168
|
+
}
|
|
169
|
+
let handle;
|
|
170
|
+
try {
|
|
171
|
+
handle = await deps.start({
|
|
172
|
+
network: options.network,
|
|
173
|
+
node,
|
|
174
|
+
runtimeDir,
|
|
175
|
+
binding,
|
|
176
|
+
port,
|
|
177
|
+
logPath,
|
|
178
|
+
frpcPath,
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
catch (error) {
|
|
182
|
+
io.say(error instanceof Error ? error.message : String(error));
|
|
183
|
+
io.event({ type: "server-failed", logPath });
|
|
184
|
+
return CliExitCode.FAILURE;
|
|
185
|
+
}
|
|
186
|
+
// `vana connect` finds the server by port scan; this token lets it write.
|
|
187
|
+
const url = `http://localhost:${handle.port}`;
|
|
188
|
+
await deps.saveCredentials({
|
|
189
|
+
...credentials,
|
|
190
|
+
personal_server: {
|
|
191
|
+
url,
|
|
192
|
+
session_token: handle.accessToken,
|
|
193
|
+
expires_at: new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toISOString(),
|
|
194
|
+
},
|
|
195
|
+
});
|
|
196
|
+
io.say(`Personal Server running at ${url}`);
|
|
197
|
+
io.say(`Owner ${binding.signerAddress}, network ${options.network}.`);
|
|
198
|
+
let registered = false;
|
|
199
|
+
let publicUrl = null;
|
|
200
|
+
if (frpcPath) {
|
|
201
|
+
const outcome = await goPublic(handle, {
|
|
202
|
+
...options,
|
|
203
|
+
accountUrl,
|
|
204
|
+
accessToken: account.session_token,
|
|
205
|
+
ownerAddress: account.address,
|
|
206
|
+
binding,
|
|
207
|
+
io,
|
|
208
|
+
deps,
|
|
209
|
+
});
|
|
210
|
+
registered = outcome.registered;
|
|
211
|
+
publicUrl = outcome.publicUrl;
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
io.say("Local only: not registered and not reachable from other devices. Add --public to change that.");
|
|
215
|
+
}
|
|
216
|
+
io.say("Collect into it with `vana connect <source>`. Press Ctrl+C to stop.");
|
|
217
|
+
io.event({
|
|
218
|
+
type: "server-ready",
|
|
219
|
+
url,
|
|
220
|
+
owner: binding.signerAddress,
|
|
221
|
+
network: options.network,
|
|
222
|
+
registered,
|
|
223
|
+
publicUrl,
|
|
224
|
+
logPath,
|
|
225
|
+
});
|
|
226
|
+
const reason = await deps.waitForStop(handle);
|
|
227
|
+
await handle.stop();
|
|
228
|
+
if (reason === "exited") {
|
|
229
|
+
io.say(`The Personal Server stopped unexpectedly. See ${logPath}.`);
|
|
230
|
+
io.event({ type: "server-exited", logPath });
|
|
231
|
+
return CliExitCode.FAILURE;
|
|
232
|
+
}
|
|
233
|
+
io.say("Stopped.");
|
|
234
|
+
io.event({ type: "server-stopped" });
|
|
235
|
+
return CliExitCode.OK;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Bring a server with a tunnel client online for apps: register it when asked
|
|
239
|
+
* and not yet registered, then report the public URL once the relay answers.
|
|
240
|
+
* Nothing here stops the server; a failure leaves it running local only.
|
|
241
|
+
*/
|
|
242
|
+
async function goPublic(handle, input) {
|
|
243
|
+
const { io, deps } = input;
|
|
244
|
+
let state;
|
|
245
|
+
try {
|
|
246
|
+
// The server checks the gateway and reserves its URL before answering.
|
|
247
|
+
state = await nextMessage(handle, ["public"], 90_000);
|
|
248
|
+
}
|
|
249
|
+
catch (error) {
|
|
250
|
+
io.say(error instanceof Error ? error.message : String(error));
|
|
251
|
+
return { registered: false, publicUrl: null };
|
|
252
|
+
}
|
|
253
|
+
const publicUrl = typeof state.serverUrl === "string" ? state.serverUrl : null;
|
|
254
|
+
const serverAddress = typeof state.serverAddress === "string" ? state.serverAddress : null;
|
|
255
|
+
// Report the tunnel whenever it settles; the command keeps running.
|
|
256
|
+
const unsubscribe = handle.onMessage((message) => {
|
|
257
|
+
if (message.type !== "tunnel")
|
|
258
|
+
return;
|
|
259
|
+
unsubscribe();
|
|
260
|
+
if (message.status === "connected") {
|
|
261
|
+
io.say(`Reachable by apps at ${String(message.url)}`);
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
io.say(`The public URL is not answering yet: ${String(message.warning ?? message.status)}`);
|
|
265
|
+
}
|
|
266
|
+
io.event({
|
|
267
|
+
type: "server-tunnel",
|
|
268
|
+
status: message.status,
|
|
269
|
+
url: message.url ?? null,
|
|
270
|
+
warning: message.warning ?? null,
|
|
271
|
+
});
|
|
272
|
+
});
|
|
273
|
+
if (state.registered === true) {
|
|
274
|
+
io.say(`Registered. Opening ${publicUrl ?? "the public URL"}...`);
|
|
275
|
+
return { registered: true, publicUrl };
|
|
276
|
+
}
|
|
277
|
+
if (!input.public) {
|
|
278
|
+
io.say("This server is not registered, so apps cannot find it. Run with --public to register it.");
|
|
279
|
+
return { registered: false, publicUrl: null };
|
|
280
|
+
}
|
|
281
|
+
if (!publicUrl || !serverAddress) {
|
|
282
|
+
io.say("The server did not reserve a public URL, so it stays local only.");
|
|
283
|
+
return { registered: false, publicUrl: null };
|
|
284
|
+
}
|
|
285
|
+
io.say(`Registering ${publicUrl} as your Personal Server. This is recorded on-chain and cannot be undone.`);
|
|
286
|
+
try {
|
|
287
|
+
handle.send({ type: "prepare-registration" });
|
|
288
|
+
const prepared = await nextMessage(handle, ["registration-request", "command-failed"], 30_000);
|
|
289
|
+
if (prepared.type === "command-failed") {
|
|
290
|
+
throw new Error(String(prepared.message));
|
|
291
|
+
}
|
|
292
|
+
const signed = await deps.signRegistration({
|
|
293
|
+
accountUrl: input.accountUrl,
|
|
294
|
+
accessToken: input.accessToken,
|
|
295
|
+
trustToken: input.binding.trustToken,
|
|
296
|
+
request: prepared.request,
|
|
297
|
+
allowBrowser: !input.noInput,
|
|
298
|
+
}, {
|
|
299
|
+
openBrowser: deps.openBrowser,
|
|
300
|
+
onConfirmationUrl: (url) => io.say(`Confirm the registration in your browser: ${url}`),
|
|
301
|
+
});
|
|
302
|
+
if (signed.signerAddress &&
|
|
303
|
+
signed.signerAddress.toLowerCase() !== input.ownerAddress.toLowerCase()) {
|
|
304
|
+
throw new Error(`The registration came back signed by ${signed.signerAddress}, not ${input.ownerAddress}. Nothing was submitted.`);
|
|
305
|
+
}
|
|
306
|
+
handle.send({ type: "submit-registration", signature: signed.signature });
|
|
307
|
+
const submitted = await nextMessage(handle, ["registration-submitted", "command-failed"], 60_000);
|
|
308
|
+
if (submitted.type === "command-failed") {
|
|
309
|
+
throw new Error(String(submitted.message));
|
|
310
|
+
}
|
|
311
|
+
await deps.writePublicMarker(input.network, {
|
|
312
|
+
serverAddress,
|
|
313
|
+
serverUrl: publicUrl,
|
|
314
|
+
registeredAt: new Date().toISOString(),
|
|
315
|
+
});
|
|
316
|
+
io.say(`Registered. Opening ${publicUrl}...`);
|
|
317
|
+
io.event({
|
|
318
|
+
type: "server-registered",
|
|
319
|
+
serverAddress,
|
|
320
|
+
serverUrl: publicUrl,
|
|
321
|
+
serverId: submitted.serverId ?? null,
|
|
322
|
+
signing: signed.via,
|
|
323
|
+
});
|
|
324
|
+
return { registered: true, publicUrl };
|
|
325
|
+
}
|
|
326
|
+
catch (error) {
|
|
327
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
328
|
+
io.say(`Not registered: ${message} The server keeps running, local only.`);
|
|
329
|
+
io.event({
|
|
330
|
+
type: "server-registration-failed",
|
|
331
|
+
needsBrowser: error instanceof RegistrationNeedsBrowserError,
|
|
332
|
+
message,
|
|
333
|
+
});
|
|
334
|
+
return { registered: false, publicUrl: null };
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
//# sourceMappingURL=server-start.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-start.js","sourceRoot":"","sources":["../../src/cli/server-start.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,4 +36,5 @@ export declare function personalServerOwnerMismatch(owner: string | null | undef
|
|
|
36
36
|
export declare function detectPersonalServerTarget(): Promise<PersonalServerTarget>;
|
|
37
37
|
export declare function ingestResult(source: string, resultPath: string, target: PersonalServerTarget, options?: IngestResultOptions): Promise<CliEvent[]>;
|
|
38
38
|
export declare function resolvePersonalServerAuthConfig(serverUrl: string): PersonalServerAuthConfig;
|
|
39
|
+
export declare function urlsMatch(left: string, right: string): boolean;
|
|
39
40
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/personal-server/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAQ1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,YAAY,EACV,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,GACb,MAAM,aAAa,CAAC;AAIrB,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;IAClD,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,MAAM,wBAAwB,GAChC;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB,SAAS,CAAC;AAEd,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAChC,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACxC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAK3C;AAmBD,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAqDhF;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,oBAAoB,EAC5B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,QAAQ,EAAE,CAAC,CA0ErB;AAED,wBAAgB,+BAA+B,CAC7C,SAAS,EAAE,MAAM,GAChB,wBAAwB,CAe1B"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/personal-server/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAQ1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,YAAY,EACV,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,GACb,MAAM,aAAa,CAAC;AAIrB,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;IAClD,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,MAAM,wBAAwB,GAChC;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB,SAAS,CAAC;AAEd,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAChC,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACxC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAK3C;AAmBD,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAqDhF;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,oBAAoB,EAC5B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,QAAQ,EAAE,CAAC,CA0ErB;AAED,wBAAgB,+BAA+B,CAC7C,SAAS,EAAE,MAAM,GAChB,wBAAwB,CAe1B;AAkBD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAE9D"}
|
|
@@ -162,8 +162,23 @@ export function resolvePersonalServerAuthConfig(serverUrl) {
|
|
|
162
162
|
}
|
|
163
163
|
return undefined;
|
|
164
164
|
}
|
|
165
|
-
|
|
166
|
-
|
|
165
|
+
// localhost, 127.0.0.1 and ::1 are the same server: a server reports one
|
|
166
|
+
// spelling and a port scan or a saved URL often uses another.
|
|
167
|
+
const LOOPBACK_HOSTS = new Set(["localhost", "127.0.0.1", "[::1]"]);
|
|
168
|
+
function normalizeServerUrl(value) {
|
|
169
|
+
try {
|
|
170
|
+
const url = new URL(value);
|
|
171
|
+
if (LOOPBACK_HOSTS.has(url.hostname)) {
|
|
172
|
+
url.hostname = "localhost";
|
|
173
|
+
}
|
|
174
|
+
return url.toString().replace(/\/+$/, "");
|
|
175
|
+
}
|
|
176
|
+
catch {
|
|
177
|
+
return value.replace(/\/+$/, "");
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
export function urlsMatch(left, right) {
|
|
181
|
+
return normalizeServerUrl(left) === normalizeServerUrl(right);
|
|
167
182
|
}
|
|
168
183
|
async function fetchHealth(baseUrl) {
|
|
169
184
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/personal-server/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/personal-server/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { VanaNetworkName } from "../../core/network.js";
|
|
2
|
+
/** What a Personal Server needs to know about the network it serves. */
|
|
3
|
+
export interface LocalServerNetwork {
|
|
4
|
+
name: VanaNetworkName;
|
|
5
|
+
chainId: number;
|
|
6
|
+
gatewayUrl: string;
|
|
7
|
+
storageApiUrl: string;
|
|
8
|
+
contracts: Record<string, string>;
|
|
9
|
+
/** The relay frpc dials to give the server its public URL. */
|
|
10
|
+
tunnel: {
|
|
11
|
+
serverAddr: string;
|
|
12
|
+
serverPort: number;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export declare function localServerNetwork(name: VanaNetworkName): LocalServerNetwork;
|
|
16
|
+
/** The pinned server release, matching runtime-pkg/package.json. */
|
|
17
|
+
export declare const PERSONAL_SERVER_VERSION = "1.24.6";
|
|
18
|
+
export declare function localServerHome(): string;
|
|
19
|
+
/**
|
|
20
|
+
* The CLI's own data dir per network. Never Desktop's
|
|
21
|
+
* (`~/.vana/desktop/personal-server/...`): two processes on one index and one
|
|
22
|
+
* server key would corrupt both.
|
|
23
|
+
*/
|
|
24
|
+
export declare function localServerDataDir(network: VanaNetworkName): string;
|
|
25
|
+
export declare function localServerRuntimeDir(): string;
|
|
26
|
+
/** Ports Desktop and the CLI both try first; the loopback approval page is port + 1. */
|
|
27
|
+
export declare const LOCAL_SERVER_PORTS: readonly [8080, 8082, 8084];
|
|
28
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/personal-server/local/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,wEAAwE;AACxE,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,8DAA8D;IAC9D,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CACpD;AAiCD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,kBAAkB,CAE5E;AAED,oEAAoE;AACpE,eAAO,MAAM,uBAAuB,WAAW,CAAC;AAEhD,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAEnE;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,wFAAwF;AACxF,eAAO,MAAM,kBAAkB,6BAA8B,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { getVanaHome } from "../../core/paths.js";
|
|
3
|
+
// Same deployment on both chains. Mirrors the `contracts` and tunnel entries
|
|
4
|
+
// of Vana Desktop's packages/app-runtime/src/personal-server/environments.json.
|
|
5
|
+
const CONTRACTS = {
|
|
6
|
+
dataPortabilityEscrow: "0x07d7769081adc3a3DBe91f5E4B98E9A5a6B292e3",
|
|
7
|
+
dataPortabilityGrantees: "0x8325C0A0948483EdA023A1A2Fd895e62C5131234",
|
|
8
|
+
dataPortabilityPermissions: "0x4d3FA76064D88e0454cFc4CaD7e5FeC3e3124011",
|
|
9
|
+
dataPortabilityServer: "0xCae2CE0e9caa6643ed28186cF57bd40Bd9E17Eab",
|
|
10
|
+
dataRefinerRegistry: "0x93c3EF89369fDcf08Be159D9DeF0F18AB6Be008c",
|
|
11
|
+
dataRegistry: "0x8f1eFCdff3d0d5BB535e32620721c7EBed151867",
|
|
12
|
+
feeRegistry: "0xb4FA18443E0FA6cdC0280D20b8cCDB2377D13Bf2",
|
|
13
|
+
};
|
|
14
|
+
const NETWORKS = {
|
|
15
|
+
moksha: {
|
|
16
|
+
name: "moksha",
|
|
17
|
+
chainId: 14800,
|
|
18
|
+
gatewayUrl: "https://dp-rpc.moksha.vana.org",
|
|
19
|
+
storageApiUrl: "https://storage-dev.vana.org",
|
|
20
|
+
contracts: CONTRACTS,
|
|
21
|
+
tunnel: { serverAddr: "frpc.server-dev.vana.org", serverPort: 7000 },
|
|
22
|
+
},
|
|
23
|
+
mainnet: {
|
|
24
|
+
name: "mainnet",
|
|
25
|
+
chainId: 1480,
|
|
26
|
+
gatewayUrl: "https://dp-rpc.vana.org",
|
|
27
|
+
storageApiUrl: "https://storage.vana.org",
|
|
28
|
+
contracts: CONTRACTS,
|
|
29
|
+
tunnel: { serverAddr: "frpc.server.vana.org", serverPort: 7000 },
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
export function localServerNetwork(name) {
|
|
33
|
+
return NETWORKS[name];
|
|
34
|
+
}
|
|
35
|
+
/** The pinned server release, matching runtime-pkg/package.json. */
|
|
36
|
+
export const PERSONAL_SERVER_VERSION = "1.24.6";
|
|
37
|
+
export function localServerHome() {
|
|
38
|
+
return path.join(getVanaHome(), "cli", "personal-server");
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The CLI's own data dir per network. Never Desktop's
|
|
42
|
+
* (`~/.vana/desktop/personal-server/...`): two processes on one index and one
|
|
43
|
+
* server key would corrupt both.
|
|
44
|
+
*/
|
|
45
|
+
export function localServerDataDir(network) {
|
|
46
|
+
return path.join(localServerHome(), network);
|
|
47
|
+
}
|
|
48
|
+
export function localServerRuntimeDir() {
|
|
49
|
+
return path.join(localServerHome(), "runtime", PERSONAL_SERVER_VERSION);
|
|
50
|
+
}
|
|
51
|
+
/** Ports Desktop and the CLI both try first; the loopback approval page is port + 1. */
|
|
52
|
+
export const LOCAL_SERVER_PORTS = [8080, 8082, 8084];
|
|
53
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/personal-server/local/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAclD,6EAA6E;AAC7E,gFAAgF;AAChF,MAAM,SAAS,GAA2B;IACxC,qBAAqB,EAAE,4CAA4C;IACnE,uBAAuB,EAAE,4CAA4C;IACrE,0BAA0B,EAAE,4CAA4C;IACxE,qBAAqB,EAAE,4CAA4C;IACnE,mBAAmB,EAAE,4CAA4C;IACjE,YAAY,EAAE,4CAA4C;IAC1D,WAAW,EAAE,4CAA4C;CAC1D,CAAC;AAEF,MAAM,QAAQ,GAAgD;IAC5D,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,KAAK;QACd,UAAU,EAAE,gCAAgC;QAC5C,aAAa,EAAE,8BAA8B;QAC7C,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,EAAE,UAAU,EAAE,0BAA0B,EAAE,UAAU,EAAE,IAAI,EAAE;KACrE;IACD,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,yBAAyB;QACrC,aAAa,EAAE,0BAA0B;QACzC,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,EAAE,UAAU,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE;KACjE;CACF,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAAC,IAAqB;IACtD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,oEAAoE;AACpE,MAAM,CAAC,MAAM,uBAAuB,GAAG,QAAQ,CAAC;AAEhD,MAAM,UAAU,eAAe;IAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAwB;IACzD,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,uBAAuB,CAAC,CAAC;AAC1E,CAAC;AAED,wFAAwF;AACxF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAU,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The tunnel client the Personal Server runs to get its public URL. Same
|
|
3
|
+
* version the pinned server would download for itself.
|
|
4
|
+
*/
|
|
5
|
+
export declare const FRPC_VERSION = "0.67.0";
|
|
6
|
+
/** The Apple team that signs the CLI and Vana Desktop. */
|
|
7
|
+
export declare const VANA_APPLE_TEAM_ID = "G7QNBSSW44";
|
|
8
|
+
interface FrpcArtifact {
|
|
9
|
+
url: string;
|
|
10
|
+
sha256: string;
|
|
11
|
+
/** The binary's path inside the archive. */
|
|
12
|
+
entry: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Pinned downloads per platform. A Mac never gets upstream's build: it is
|
|
16
|
+
* ad-hoc signed, and endpoint security on managed Macs treats an ad-hoc
|
|
17
|
+
* binary run from the home directory as persistence. Macs download the copy
|
|
18
|
+
* the sign-frpc workflow signed and notarized with Vana's Developer ID.
|
|
19
|
+
*/
|
|
20
|
+
export declare const FRPC_ARTIFACTS: Record<string, FrpcArtifact>;
|
|
21
|
+
/** Where Vana Desktop ships its signed frpc. */
|
|
22
|
+
export declare const DESKTOP_FRPC_PATHS: string[];
|
|
23
|
+
export type FrpcResolution = {
|
|
24
|
+
kind: "ready";
|
|
25
|
+
path: string;
|
|
26
|
+
source: "env" | "managed" | "desktop";
|
|
27
|
+
} | {
|
|
28
|
+
kind: "installable";
|
|
29
|
+
} | {
|
|
30
|
+
kind: "unavailable";
|
|
31
|
+
reason: string;
|
|
32
|
+
};
|
|
33
|
+
export interface FrpcDeps {
|
|
34
|
+
env: NodeJS.ProcessEnv;
|
|
35
|
+
platform: NodeJS.Platform;
|
|
36
|
+
arch: string;
|
|
37
|
+
managedDir: string;
|
|
38
|
+
desktopPaths: string[];
|
|
39
|
+
/** True when `file` carries a valid signature from `teamId`. */
|
|
40
|
+
signedByTeam: (file: string, teamId: string) => Promise<boolean>;
|
|
41
|
+
}
|
|
42
|
+
export declare function managedFrpcDir(): string;
|
|
43
|
+
export declare function signedByTeam(file: string, teamId: string): Promise<boolean>;
|
|
44
|
+
/**
|
|
45
|
+
* Find a tunnel client this machine may run, without downloading anything.
|
|
46
|
+
* `VANA_FRPC_PATH` wins; then the CLI's own verified install; then, on a
|
|
47
|
+
* Mac, Vana Desktop's copy when it carries Vana's signature, which saves a
|
|
48
|
+
* download.
|
|
49
|
+
*/
|
|
50
|
+
export declare function resolveFrpc(overrides?: Partial<FrpcDeps>): Promise<FrpcResolution>;
|
|
51
|
+
/**
|
|
52
|
+
* Download the pinned frpc for this platform, check its sha256, and install
|
|
53
|
+
* it under ~/.vana/cli/personal-server/frpc/<version>.
|
|
54
|
+
*/
|
|
55
|
+
export declare function installFrpc(logPath: string, overrides?: Partial<FrpcDeps> & {
|
|
56
|
+
fetchImpl?: typeof fetch;
|
|
57
|
+
}): Promise<string>;
|
|
58
|
+
export {};
|
|
59
|
+
//# sourceMappingURL=frpc.d.ts.map
|