frely-cli 0.23.18 → 0.23.20
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 +19 -17
- package/README.zh-CN.md +19 -16
- package/dist/agent/local/command.js +3 -1
- package/dist/agent/local/command.js.map +1 -1
- package/dist/agent/local/confine.js +2 -1
- package/dist/agent/local/confine.js.map +1 -1
- package/dist/agent/local/store.d.ts +4 -0
- package/dist/agent/local/store.js +8 -0
- package/dist/agent/local/store.js.map +1 -1
- package/dist/agent/local/supervisor.js +2 -1
- package/dist/agent/local/supervisor.js.map +1 -1
- package/dist/agent-help.d.ts +34 -94
- package/dist/agent-help.js +24 -31
- package/dist/agent-help.js.map +1 -1
- package/dist/auth.d.ts +9 -10
- package/dist/auth.js +7 -4
- package/dist/auth.js.map +1 -1
- package/dist/computer/builtin.d.ts +1 -1
- package/dist/computer/builtin.js +2 -2
- package/dist/computer/builtin.js.map +1 -1
- package/dist/computer/command.d.ts +2 -2
- package/dist/computer/command.js +8 -8
- package/dist/computer/command.js.map +1 -1
- package/dist/computer/server.d.ts +1 -1
- package/dist/computer/server.js +1 -1
- package/dist/computer/server.js.map +1 -1
- package/dist/computer/toolset.d.ts +1 -1
- package/dist/computer/toolset.js +1 -1
- package/dist/computer/toolset.js.map +1 -1
- package/dist/device/relay-client.js +8 -5
- package/dist/device/relay-client.js.map +1 -1
- package/dist/diagnostics.d.ts +1 -2
- package/dist/diagnostics.js +2 -2
- package/dist/diagnostics.js.map +1 -1
- package/dist/index.js +115 -137
- package/dist/index.js.map +1 -1
- package/dist/key-budget.js +1 -1
- package/dist/key-budget.js.map +1 -1
- package/dist/link-claim.d.ts +9 -3
- package/dist/link-claim.js +17 -3
- package/dist/link-claim.js.map +1 -1
- package/dist/mcp-authorization.d.ts +7 -1
- package/dist/mcp-authorization.js +9 -11
- package/dist/mcp-authorization.js.map +1 -1
- package/dist/mcp-command.d.ts +3 -4
- package/dist/mcp-command.js +7 -12
- package/dist/mcp-command.js.map +1 -1
- package/dist/remote-lock.d.ts +8 -0
- package/dist/remote-lock.js +22 -1
- package/dist/remote-lock.js.map +1 -1
- package/dist/runtime/mcp.js +3 -0
- package/dist/runtime/mcp.js.map +1 -1
- package/dist/runtime/sandbox-proxy.d.ts +5 -2
- package/dist/runtime/sandbox-proxy.js +9 -5
- package/dist/runtime/sandbox-proxy.js.map +1 -1
- package/dist/skill/access.d.ts +1 -1
- package/dist/skill/access.js +2 -2
- package/dist/skill/access.js.map +1 -1
- package/dist/skill/entry.d.ts +1 -1
- package/dist/skill/entry.js +3 -3
- package/dist/skill/gift.d.ts +7 -0
- package/dist/skill/gift.js +22 -0
- package/dist/skill/gift.js.map +1 -0
- package/dist/skill/remote-mcp.d.ts +1 -1
- package/dist/skill/remote-mcp.js +3 -3
- package/dist/skill/remote-mcp.js.map +1 -1
- package/dist/trust/jcs.d.ts +2 -0
- package/dist/trust/jcs.js +22 -0
- package/dist/trust/jcs.js.map +1 -0
- package/dist/trust/observe.d.ts +23 -0
- package/dist/trust/observe.js +45 -0
- package/dist/trust/observe.js.map +1 -0
- package/dist/trust/record.d.ts +78 -0
- package/dist/trust/record.js +93 -0
- package/dist/trust/record.js.map +1 -0
- package/dist/trust/webauthn.d.ts +33 -0
- package/dist/trust/webauthn.js +62 -0
- package/dist/trust/webauthn.js.map +1 -0
- package/dist/update/auto-update.d.ts +5 -3
- package/dist/update/auto-update.js +7 -10
- package/dist/update/auto-update.js.map +1 -1
- package/dist/update/installation.js +1 -1
- package/dist/update/installation.js.map +1 -1
- package/dist/update/release-signature.d.ts +23 -0
- package/dist/update/release-signature.js +44 -0
- package/dist/update/release-signature.js.map +1 -0
- package/dist/update/update.d.ts +4 -1
- package/dist/update/update.js +9 -2
- package/dist/update/update.js.map +1 -1
- package/package.json +1 -1
- package/skills/frely-cli/SKILL.md +5 -5
package/dist/diagnostics.d.ts
CHANGED
|
@@ -12,8 +12,7 @@ export interface DiagnosticCheck {
|
|
|
12
12
|
status: "pass" | "fail" | "info";
|
|
13
13
|
}
|
|
14
14
|
export interface DoctorOptions {
|
|
15
|
-
verbose?: boolean;
|
|
16
|
-
mcp?: boolean;
|
|
15
|
+
verbose?: boolean;
|
|
17
16
|
}
|
|
18
17
|
declare const defaultDependencies: {
|
|
19
18
|
inspectAuth: typeof inspectAuth;
|
package/dist/diagnostics.js
CHANGED
|
@@ -29,7 +29,7 @@ export async function statusSnapshot() {
|
|
|
29
29
|
/** Release checks are bounded and informational; verbose also validates account/MCP online. */
|
|
30
30
|
export async function doctor(options = {}, dependencies = defaultDependencies) {
|
|
31
31
|
const updatePromise = dependencies.inspectUpdate();
|
|
32
|
-
const verbose = options.verbose === true
|
|
32
|
+
const verbose = options.verbose === true;
|
|
33
33
|
const checks = [];
|
|
34
34
|
const add = (name, status, detail) => checks.push({ name, status, ok: status !== "fail", detail });
|
|
35
35
|
add("runtime", Number(process.versions.node.split(".")[0]) >= 22 ? "pass" : "fail", process.version);
|
|
@@ -58,7 +58,7 @@ export async function doctor(options = {}, dependencies = defaultDependencies) {
|
|
|
58
58
|
|| !Number.isFinite(Date.parse(metadata.grant.expiresAt)) || Date.parse(metadata.grant.expiresAt) <= now));
|
|
59
59
|
const mcpMatches = Boolean(metadata && bindingMatches && metadata.grant.deviceId === binding?.deviceId
|
|
60
60
|
&& metadata.relayUrl === binding?.relayUrl && metadata.userId === binding?.userId);
|
|
61
|
-
add("mcp", metadataError || expired || (metadata && !mcpMatches)
|
|
61
|
+
add("mcp", metadataError || expired || (metadata && !mcpMatches) ? "fail" : metadata ? "pass" : "info", metadataIssue ?? (!metadata ? "Not enabled (optional)."
|
|
62
62
|
: expired ? "Authorization expired or inactive. Run frely link on to renew."
|
|
63
63
|
: !mcpMatches ? "Authorization does not match this account/device. Run frely link on."
|
|
64
64
|
: `Configured; expires ${metadata.grant.expiresAt} (local authorization).`));
|
package/dist/diagnostics.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import { formatApprovalCode } from "./approval-code.js";
|
|
3
3
|
import { applyDataDir, activeDataDir } from "./data-dir.js";
|
|
4
4
|
import { update } from "./update/update.js";
|
|
5
|
-
import { requireMcpAuthorization, inspectMcpMetadata, inspectMcpMetadataOrQuarantine, revokeMcpAuthorization, lockLinkOnServer
|
|
6
|
-
import { chmod, readFile,
|
|
5
|
+
import { requireMcpAuthorization, inspectMcpMetadata, inspectMcpMetadataOrQuarantine, revokeMcpAuthorization, lockLinkOnServer } from "./mcp-authorization.js";
|
|
6
|
+
import { chmod, readFile, stat, writeFile } from "node:fs/promises";
|
|
7
7
|
import { sshProxyConnect } from "./runtime/ssh-proxy.js";
|
|
8
8
|
import { parseTunnelArguments, startTunnel, tunnelUsage } from "./runtime/tunnel.js";
|
|
9
9
|
import { runSandboxProxyCommand } from "./runtime/sandbox-proxy.js";
|
|
@@ -39,11 +39,10 @@ import { appInstallStatus, installApp, openApp, uninstallApp, updateApp } from "
|
|
|
39
39
|
import { detectSandboxBackend } from "./runtime/sandbox.js";
|
|
40
40
|
import { LocalMcpHub, loadManualEntries } from "./runtime/local-mcp.js";
|
|
41
41
|
import { reportedWorkspaces } from "./runtime/workspace-registry.js";
|
|
42
|
-
import { ensureDefaultWorkspace } from "./default-workspace.js";
|
|
43
42
|
import { VERSION } from "./version.js";
|
|
44
43
|
import { agentHelpView, cliUsage, linkUsage, subcommandUsage } from "./agent-help.js";
|
|
45
|
-
import {
|
|
46
|
-
import { remoteLocked, remoteState, setRemoteLock } from "./remote-lock.js";
|
|
44
|
+
import { grantInactive, mcpStartLogin, normalizeLinkArgs, startMcp, takeInstallToken } from "./mcp-command.js";
|
|
45
|
+
import { remoteLocked, remoteState, setLinkOnPending, setRemoteLock } from "./remote-lock.js";
|
|
47
46
|
import { watchLinkClaim } from "./link-claim.js";
|
|
48
47
|
import { getKeyBudget, KeyBudgetError, publicKeyBudgetError } from "./key-budget.js";
|
|
49
48
|
import { runNetwork, publicNetworkError } from "./network.js";
|
|
@@ -54,11 +53,11 @@ import { CloudToolError, installCloudItem, parseItemRef, trustCloudItem } from "
|
|
|
54
53
|
import { checkItemUpdates, updateCloudItem } from "./skill/item-update.js";
|
|
55
54
|
import { runSealedScript } from "./skill/sealed-run.js";
|
|
56
55
|
import { installEntrySkill, ensureEntrySkill } from "./skill/entry.js";
|
|
56
|
+
import { redeemGift } from "./skill/gift.js";
|
|
57
57
|
import { callRemoteTool, connectRemoteMcp, installRemoteMcpSkill, isNotASkill, listRemoteTools, mcpClientConfig, parseMcpName, RemoteMcpError } from "./skill/remote-mcp.js";
|
|
58
58
|
import { callCloudTool } from "./cloud.js";
|
|
59
59
|
import { createInterface } from "node:readline/promises";
|
|
60
60
|
import { runUninstall } from "./uninstall.js";
|
|
61
|
-
const DEFAULT_EMAIL_LOGIN_MCP_DAYS = MCP_DEFAULT_DAYS;
|
|
62
61
|
/** Installs a published Agent as a local trigger Skill, from `username/name[@version]` (or the distribution id older scripts use). */
|
|
63
62
|
async function installAgent(target, args) {
|
|
64
63
|
const host = skillHost(option(args, "--host") ?? "generic");
|
|
@@ -132,7 +131,15 @@ async function main() {
|
|
|
132
131
|
await new Promise(() => undefined);
|
|
133
132
|
}
|
|
134
133
|
if (command === "sandbox" && args[1] === "proxy") {
|
|
135
|
-
|
|
134
|
+
// The sandbox reads the proxy once, when the background service starts: restart a running one so the change applies now.
|
|
135
|
+
if (await runSandboxProxyCommand(args.slice(2), (text) => { stdout.write(text); })) {
|
|
136
|
+
if ((await serviceStatus()).active) {
|
|
137
|
+
await installDeviceRelayService();
|
|
138
|
+
stdout.write("Background service restarted to use it.\n");
|
|
139
|
+
}
|
|
140
|
+
else
|
|
141
|
+
stdout.write("It applies the next time the background service starts.\n");
|
|
142
|
+
}
|
|
136
143
|
return;
|
|
137
144
|
}
|
|
138
145
|
if (command === "--version" || command === "-v" || command === "version") {
|
|
@@ -164,66 +171,6 @@ async function main() {
|
|
|
164
171
|
process.exitCode = 2;
|
|
165
172
|
return;
|
|
166
173
|
}
|
|
167
|
-
if (command === "remote") {
|
|
168
|
-
const action = args[1];
|
|
169
|
-
const ref = args[2];
|
|
170
|
-
if (action !== "tools" && action !== "call" && action !== "config") {
|
|
171
|
-
stdout.write(subcommandUsage("remote"));
|
|
172
|
-
return;
|
|
173
|
-
}
|
|
174
|
-
if (!ref || ref.startsWith("-"))
|
|
175
|
-
throw new Error(`Usage: frely remote ${action} <username/name>${action === "call" ? " <tool> [--json '<object>' | --input <file>]" : ""}`);
|
|
176
|
-
parseMcpName(ref);
|
|
177
|
-
const deps = { call: callCloudTool, replace: args.includes("--replace") };
|
|
178
|
-
try {
|
|
179
|
-
if (action === "tools") {
|
|
180
|
-
const tools = await listRemoteTools(ref, deps);
|
|
181
|
-
if (args.includes("--json"))
|
|
182
|
-
stdout.write(`${JSON.stringify(tools, null, 2)}\n`);
|
|
183
|
-
else
|
|
184
|
-
stdout.write(tools.map((tool) => `${tool.name}${tool.description ? `: ${tool.description.replace(/\s+/gu, " ").slice(0, 200)}` : ""}\n`).join(""));
|
|
185
|
-
return;
|
|
186
|
-
}
|
|
187
|
-
if (action === "config") {
|
|
188
|
-
const connection = await connectRemoteMcp(ref, deps);
|
|
189
|
-
const config = mcpClientConfig(connection);
|
|
190
|
-
const file = option(args, "--write");
|
|
191
|
-
if (file === undefined) {
|
|
192
|
-
stdout.write(`${JSON.stringify(config, null, 2)}\n`);
|
|
193
|
-
return;
|
|
194
|
-
}
|
|
195
|
-
await mergeMcpServers(file, config.mcpServers);
|
|
196
|
-
stdout.write(`Wrote ${Object.keys(config.mcpServers)[0]} to ${file}. The file holds a key that works only for ${connection.name}; keep it private.\n`);
|
|
197
|
-
return;
|
|
198
|
-
}
|
|
199
|
-
const tool = args[3];
|
|
200
|
-
if (!tool || tool.startsWith("-"))
|
|
201
|
-
throw new Error("Usage: frely remote call <username/name> <tool> [--json '<object>' | --input <file>]");
|
|
202
|
-
if (args.includes("--json") && args.includes("--input"))
|
|
203
|
-
throw new Error("Use --json or --input.");
|
|
204
|
-
const inline = option(args, "--json"), path = option(args, "--input");
|
|
205
|
-
const text = path !== undefined ? await readInputFile(path) : inline ?? "{}";
|
|
206
|
-
let input;
|
|
207
|
-
try {
|
|
208
|
-
input = JSON.parse(text);
|
|
209
|
-
}
|
|
210
|
-
catch {
|
|
211
|
-
throw new Error("The tool arguments must be a JSON object.");
|
|
212
|
-
}
|
|
213
|
-
if (input === null || typeof input !== "object" || Array.isArray(input))
|
|
214
|
-
throw new Error("The tool arguments must be a JSON object.");
|
|
215
|
-
const result = await callRemoteTool(ref, tool, input, deps);
|
|
216
|
-
stdout.write(`${JSON.stringify(result, null, 2)}\n`);
|
|
217
|
-
if (result?.isError === true)
|
|
218
|
-
process.exitCode = 1;
|
|
219
|
-
return;
|
|
220
|
-
}
|
|
221
|
-
catch (error) {
|
|
222
|
-
if (error instanceof RemoteMcpError)
|
|
223
|
-
throw new Error(error.message);
|
|
224
|
-
throw error;
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
174
|
if (command === "network") {
|
|
228
175
|
const value = await runNetwork(args);
|
|
229
176
|
if (args.includes("--json"))
|
|
@@ -242,13 +189,6 @@ async function main() {
|
|
|
242
189
|
process.exitCode = await runAgentLocal(args.slice(2), { out: (text) => { stdout.write(text); }, err: (text) => { process.stderr.write(text); }, interactive: Boolean(process.stdin.isTTY && process.stderr.isTTY), readSecret: () => readStdinSecret(8192) });
|
|
243
190
|
return;
|
|
244
191
|
}
|
|
245
|
-
if (action === "install") {
|
|
246
|
-
const target = args[2];
|
|
247
|
-
if (!target || target.startsWith("-"))
|
|
248
|
-
throw new Error("Usage: frely agent install <username/name[@version]> [--host chatgpt|codex|claude-code|pi|generic] [--scope global|project] [--dir <project>] [--api-key-stdin] [--json]");
|
|
249
|
-
await installAgent(target, args);
|
|
250
|
-
return;
|
|
251
|
-
}
|
|
252
192
|
if (action === "run") {
|
|
253
193
|
const target = args[2];
|
|
254
194
|
if (!target || target.startsWith("-"))
|
|
@@ -426,13 +366,72 @@ async function main() {
|
|
|
426
366
|
stdout.write("Restart or reload the agent session so it rescans Skills.\n");
|
|
427
367
|
return;
|
|
428
368
|
}
|
|
369
|
+
if (args[1] === "tools" || args[1] === "call" || args[1] === "config") {
|
|
370
|
+
const action = args[1];
|
|
371
|
+
const ref = args[2];
|
|
372
|
+
if (!ref || ref.startsWith("-"))
|
|
373
|
+
throw new Error(`Usage: frely item ${action} <username/name>${action === "call" ? " <tool> [--json '<object>' | --input <file>]" : ""}`);
|
|
374
|
+
parseMcpName(ref);
|
|
375
|
+
const deps = { call: callCloudTool, replace: args.includes("--replace") };
|
|
376
|
+
try {
|
|
377
|
+
if (action === "tools") {
|
|
378
|
+
const tools = await listRemoteTools(ref, deps);
|
|
379
|
+
if (args.includes("--json"))
|
|
380
|
+
stdout.write(`${JSON.stringify(tools, null, 2)}\n`);
|
|
381
|
+
else
|
|
382
|
+
stdout.write(tools.map((tool) => `${tool.name}${tool.description ? `: ${tool.description.replace(/\s+/gu, " ").slice(0, 200)}` : ""}\n`).join(""));
|
|
383
|
+
return;
|
|
384
|
+
}
|
|
385
|
+
if (action === "config") {
|
|
386
|
+
const connection = await connectRemoteMcp(ref, deps);
|
|
387
|
+
const config = mcpClientConfig(connection);
|
|
388
|
+
const file = option(args, "--write");
|
|
389
|
+
if (file === undefined) {
|
|
390
|
+
stdout.write(`${JSON.stringify(config, null, 2)}\n`);
|
|
391
|
+
return;
|
|
392
|
+
}
|
|
393
|
+
await mergeMcpServers(file, config.mcpServers);
|
|
394
|
+
stdout.write(`Wrote ${Object.keys(config.mcpServers)[0]} to ${file}. The file holds a key that works only for ${connection.name}; keep it private.\n`);
|
|
395
|
+
return;
|
|
396
|
+
}
|
|
397
|
+
const tool = args[3];
|
|
398
|
+
if (!tool || tool.startsWith("-"))
|
|
399
|
+
throw new Error("Usage: frely item call <username/name> <tool> [--json '<object>' | --input <file>]");
|
|
400
|
+
if (args.includes("--json") && args.includes("--input"))
|
|
401
|
+
throw new Error("Use --json or --input.");
|
|
402
|
+
const inline = option(args, "--json"), path = option(args, "--input");
|
|
403
|
+
const text = path !== undefined ? await readInputFile(path) : inline ?? "{}";
|
|
404
|
+
let input;
|
|
405
|
+
try {
|
|
406
|
+
input = JSON.parse(text);
|
|
407
|
+
}
|
|
408
|
+
catch {
|
|
409
|
+
throw new Error("The tool arguments must be a JSON object.");
|
|
410
|
+
}
|
|
411
|
+
if (input === null || typeof input !== "object" || Array.isArray(input))
|
|
412
|
+
throw new Error("The tool arguments must be a JSON object.");
|
|
413
|
+
const result = await callRemoteTool(ref, tool, input, deps);
|
|
414
|
+
stdout.write(`${JSON.stringify(result, null, 2)}\n`);
|
|
415
|
+
if (result?.isError === true)
|
|
416
|
+
process.exitCode = 1;
|
|
417
|
+
return;
|
|
418
|
+
}
|
|
419
|
+
catch (error) {
|
|
420
|
+
if (error instanceof RemoteMcpError)
|
|
421
|
+
throw new Error(error.message);
|
|
422
|
+
throw error;
|
|
423
|
+
}
|
|
424
|
+
}
|
|
429
425
|
if (args[1] !== "install" || args.includes("--help") || args.includes("-h")) {
|
|
430
426
|
stdout.write(subcommandUsage("item"));
|
|
431
427
|
return;
|
|
432
428
|
}
|
|
433
429
|
const itemRef = args[2];
|
|
434
430
|
if (!itemRef || itemRef.startsWith("-"))
|
|
435
|
-
throw new Error("Usage: frely item install <username/name[@version]> [--host chatgpt|codex|claude-code|pi|generic] [--scope global|project] [--dir <path>] [--json]");
|
|
431
|
+
throw new Error("Usage: frely item install <username/name[@version]> [--host chatgpt|codex|claude-code|pi|generic] [--scope global|project] [--dir <path>] [--gift <code>] [--api-key-stdin] [--json]");
|
|
432
|
+
const gift = option(args, "--gift");
|
|
433
|
+
if (gift !== undefined)
|
|
434
|
+
await redeemGift(gift, callCloudTool, args.includes("--json") ? process.stderr : stdout);
|
|
436
435
|
// Skills, Prompts and Agents are named alike. An Agent's manifest is public, so it is asked first; a name no Agent has is a Skill or Prompt.
|
|
437
436
|
if (/^creator_distribution_/u.test(itemRef) || args.includes("--api-key-stdin")) {
|
|
438
437
|
await installAgent(itemRef, args);
|
|
@@ -448,7 +447,7 @@ async function main() {
|
|
|
448
447
|
const scope = skillScope(option(args, "--scope") ?? "global");
|
|
449
448
|
const dir = option(args, "--dir");
|
|
450
449
|
const value = await installCloudItem({ ...parseItemRef(itemRef), call: callCloudTool, host, scope, ...(dir ? { dir } : {}) }).catch(async (error) => {
|
|
451
|
-
// A name that is not a Skill may be a remote MCP: install the Skill that uses it through `frely
|
|
450
|
+
// A name that is not a Skill may be a remote MCP: install the Skill that uses it through `frely item tools|call`.
|
|
452
451
|
if (!isNotASkill(error) || itemRef.includes("@") || !/^[^/@]+\/[^/@]+$/u.test(itemRef))
|
|
453
452
|
throw error;
|
|
454
453
|
return installRemoteMcpSkill({ ref: itemRef, call: callCloudTool, host, scope, ...(dir ? { dir } : {}), ...(args.includes("--replace") ? { replace: true } : {}) }).catch((mcpError) => { throw isNotASkill(mcpError) || (mcpError instanceof CloudToolError && mcpError.code === "remote_mcp_not_found") ? error : mcpError; });
|
|
@@ -459,7 +458,7 @@ async function main() {
|
|
|
459
458
|
stdout.write(`${JSON.stringify({ ...value, ...(entry ? { entrySkill: entry.path } : {}) })}\n`);
|
|
460
459
|
return;
|
|
461
460
|
}
|
|
462
|
-
stdout.write(`MCP: ${value.name}\nPath: ${value.path}\nTools: ${value.tools}\nThe Skill calls this MCP through frely
|
|
461
|
+
stdout.write(`MCP: ${value.name}\nPath: ${value.path}\nTools: ${value.tools}\nThe Skill calls this MCP through frely item tools|call; no MCP client configuration is needed. Restart or reload the agent session so it rescans Skills.\n`);
|
|
463
462
|
return;
|
|
464
463
|
}
|
|
465
464
|
if (args.includes("--json")) {
|
|
@@ -516,25 +515,13 @@ async function main() {
|
|
|
516
515
|
process.exitCode = 1;
|
|
517
516
|
return;
|
|
518
517
|
}
|
|
519
|
-
|
|
518
|
+
await completeEmailDeviceLogin(relayUrl, pendingChallenge, code);
|
|
520
519
|
const deviceId = localDeviceId((await readConfig().catch(() => null))?.deviceId);
|
|
521
520
|
const { user } = await finishDeviceLogin(relayUrl, pendingChallenge, deviceId);
|
|
522
521
|
await deletePendingEmailChallenge(relayUrl);
|
|
523
522
|
stdout.write(`Logged in as ${user.email}.\n`);
|
|
524
523
|
await installStandbyService();
|
|
525
|
-
|
|
526
|
-
if (mcp && result.mcpPreapproval) {
|
|
527
|
-
const authorization = await ensureMcpAuthorization({
|
|
528
|
-
workspace: mcp.workspace, days: String(mcp.days),
|
|
529
|
-
notify: (message) => { process.stderr.write(message); },
|
|
530
|
-
preset: { privateKeyPem: mcp.privateKeyPem, preapproval: result.mcpPreapproval },
|
|
531
|
-
});
|
|
532
|
-
stdout.write(`Device MCP enabled for ${authorization.grant.workspace} until ${authorization.grant.expiresAt}. Remove it any time with \`frely link off\`.\n`);
|
|
533
|
-
stdout.write(`MCP address: ${authorization.mcpUrl}\n`);
|
|
534
|
-
}
|
|
535
|
-
else {
|
|
536
|
-
stdout.write("Run `frely link on` on the computer you want to control, then connect your MCP client with OAuth.\n");
|
|
537
|
-
}
|
|
524
|
+
stdout.write("Run `frely link on` on the computer you want to control, then connect your MCP client with OAuth.\n");
|
|
538
525
|
}
|
|
539
526
|
catch (error) {
|
|
540
527
|
stdout.write(`Verification failed: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
@@ -543,13 +530,7 @@ async function main() {
|
|
|
543
530
|
return;
|
|
544
531
|
}
|
|
545
532
|
try {
|
|
546
|
-
|
|
547
|
-
if (args.includes("--mcp")) {
|
|
548
|
-
const workspace = option(args, "--workspace") ? await realpath(resolve(option(args, "--workspace"))) : await ensureDefaultWorkspace();
|
|
549
|
-
const days = parseMcpDays(option(args, "--days") ?? DEFAULT_EMAIL_LOGIN_MCP_DAYS);
|
|
550
|
-
mcp = { ...generateMcpKey(), workspace, days };
|
|
551
|
-
}
|
|
552
|
-
const challenge = await initEmailDeviceLogin(relayUrl, email, invite, mcp);
|
|
533
|
+
const challenge = await initEmailDeviceLogin(relayUrl, email, invite);
|
|
553
534
|
await savePendingEmailChallenge(relayUrl, challenge);
|
|
554
535
|
if (json) {
|
|
555
536
|
stdout.write(JSON.stringify({
|
|
@@ -558,7 +539,6 @@ async function main() {
|
|
|
558
539
|
expiresIn: challenge.expiresIn,
|
|
559
540
|
challengeId: challenge.challengeId,
|
|
560
541
|
...(challenge.reference ? { reference: challenge.reference } : {}),
|
|
561
|
-
...(mcp ? { deviceMcp: { workspace: mcp.workspace, days: mcp.days } } : {}),
|
|
562
542
|
}, null, 2) + "\n");
|
|
563
543
|
}
|
|
564
544
|
else {
|
|
@@ -566,9 +546,6 @@ async function main() {
|
|
|
566
546
|
if (challenge.reference)
|
|
567
547
|
stdout.write(`Mail reference: ${challenge.reference} (use the newest mail with this reference; enter only the 6 digits)\n`);
|
|
568
548
|
stdout.write(`Expires in: ${challenge.expiresIn} seconds\n`);
|
|
569
|
-
if (mcp) {
|
|
570
|
-
stdout.write(`Entering the code also lets remote agents read and write files and run commands in ${mcp.workspace} for ${mcp.days} days. Remove it later with \`frely link off\`.\n`);
|
|
571
|
-
}
|
|
572
549
|
stdout.write(`Run: frely login --code <code>\n`);
|
|
573
550
|
}
|
|
574
551
|
}
|
|
@@ -653,7 +630,7 @@ async function main() {
|
|
|
653
630
|
return;
|
|
654
631
|
}
|
|
655
632
|
if (command === "doctor") {
|
|
656
|
-
const value = await doctor({ verbose: args.includes("-v") || args.includes("--verbose")
|
|
633
|
+
const value = await doctor({ verbose: args.includes("-v") || args.includes("--verbose") });
|
|
657
634
|
if (args.includes("--json"))
|
|
658
635
|
stdout.write(`${JSON.stringify(value, null, 2)}\n`);
|
|
659
636
|
else
|
|
@@ -777,8 +754,8 @@ async function main() {
|
|
|
777
754
|
}
|
|
778
755
|
localMcp?.start();
|
|
779
756
|
piNode?.start();
|
|
780
|
-
|
|
781
|
-
|
|
757
|
+
// Standby waits for the web to turn remote control on; full mode waits for the web to turn it off. Both restart the service.
|
|
758
|
+
void watchLinkClaim({ signal: controller.signal, log: nodeLog, onClaimed: stop, onLocked: stop });
|
|
782
759
|
// Services saved with `frely service share --background` stay connected for as long as the daemon runs.
|
|
783
760
|
const services = superviseServices({ signal: controller.signal, log: nodeLog }).catch((error) => nodeLog(`Services stopped: ${error instanceof Error ? error.message : String(error)}`));
|
|
784
761
|
try {
|
|
@@ -832,40 +809,35 @@ async function main() {
|
|
|
832
809
|
}
|
|
833
810
|
if (command === "link" && args[1] === "on") {
|
|
834
811
|
// Turning remote control back on is the one way out of `false`: it has to happen here, on this computer.
|
|
835
|
-
|
|
812
|
+
await setLinkOnPending(true);
|
|
813
|
+
try {
|
|
836
814
|
await setRemoteLock(false);
|
|
837
|
-
|
|
838
|
-
|
|
815
|
+
// Pre-login install command (start.sh / start.ps1): never inherited by the service, logged or stored.
|
|
816
|
+
const installToken = takeInstallToken();
|
|
817
|
+
let workspace = option(args, "--workspace");
|
|
818
|
+
let days = option(args, "--days");
|
|
819
|
+
// --no-browser applies to both the sign-in and the MCP approval page: only the links are printed.
|
|
820
|
+
if (args.includes("--no-browser") || installToken)
|
|
821
|
+
process.env.FRELY_NO_BROWSER = "1";
|
|
822
|
+
const notify = (message) => { process.stderr.write(message); };
|
|
823
|
+
const login = await mcpStartLogin({ ...(installToken ? { installToken } : {}), ...(workspace ? { workspace } : {}), ...(days ? { days } : {}), notify });
|
|
824
|
+
workspace = login.workspace ?? workspace;
|
|
825
|
+
days = login.days ?? days;
|
|
826
|
+
const authorization = await startMcp({ ...(workspace ? { workspace } : {}), ...(days ? { days } : {}), ...(login.preset ? { preset: login.preset } : {}), notify });
|
|
827
|
+
if (login.preset)
|
|
828
|
+
process.stderr.write("This computer now appears in your FrelyMCP device list (list_devices).\n");
|
|
829
|
+
if (activeDataDir())
|
|
830
|
+
process.stderr.write(`No background service with --data-dir. Keep the device online with: frely --data-dir ${activeDataDir()} mcp serve\n`);
|
|
831
|
+
const value = { deviceId: authorization.grant.deviceId, mcpUrl: authorization.mcpUrl, transport: "http", authentication: "oauth", workspace: authorization.grant.workspace, expiresAt: authorization.grant.expiresAt };
|
|
832
|
+
if (args.includes("--json"))
|
|
833
|
+
stdout.write(`${JSON.stringify(value)}\n`);
|
|
834
|
+
else
|
|
835
|
+
stdout.write(`${authorization.mcpUrl}\n`);
|
|
839
836
|
return;
|
|
840
837
|
}
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
const service = await startMcpService();
|
|
844
|
-
stdout.write(`Frely MCP service ${service.active ? "started" : "not active"}.\n`);
|
|
845
|
-
return;
|
|
838
|
+
finally {
|
|
839
|
+
await setLinkOnPending(false);
|
|
846
840
|
}
|
|
847
|
-
// Pre-login install command (start.sh / start.ps1): never inherited by the service, logged or stored.
|
|
848
|
-
const installToken = takeInstallToken();
|
|
849
|
-
let workspace = option(args, "--workspace");
|
|
850
|
-
let days = option(args, "--days");
|
|
851
|
-
// --no-browser applies to both the sign-in and the MCP approval page: only the links are printed.
|
|
852
|
-
if (args.includes("--no-browser") || installToken)
|
|
853
|
-
process.env.FRELY_NO_BROWSER = "1";
|
|
854
|
-
const notify = (message) => { process.stderr.write(message); };
|
|
855
|
-
const login = await mcpStartLogin({ ...(installToken ? { installToken } : {}), ...(workspace ? { workspace } : {}), ...(days ? { days } : {}), notify });
|
|
856
|
-
workspace = login.workspace ?? workspace;
|
|
857
|
-
days = login.days ?? days;
|
|
858
|
-
const authorization = await startMcp({ ...(workspace ? { workspace } : {}), ...(days ? { days } : {}), ...(login.preset ? { preset: login.preset } : {}), notify });
|
|
859
|
-
if (login.preset)
|
|
860
|
-
process.stderr.write("This computer now appears in your FrelyMCP device list (list_devices).\n");
|
|
861
|
-
if (activeDataDir())
|
|
862
|
-
process.stderr.write(`No background service with --data-dir. Keep the device online with: frely --data-dir ${activeDataDir()} mcp serve\n`);
|
|
863
|
-
const value = { deviceId: authorization.grant.deviceId, mcpUrl: authorization.mcpUrl, transport: "http", authentication: "oauth", workspace: authorization.grant.workspace, expiresAt: authorization.grant.expiresAt };
|
|
864
|
-
if (args.includes("--json"))
|
|
865
|
-
stdout.write(`${JSON.stringify(value)}\n`);
|
|
866
|
-
else
|
|
867
|
-
stdout.write(`${authorization.mcpUrl}\n`);
|
|
868
|
-
return;
|
|
869
841
|
}
|
|
870
842
|
if (command === "link" && args[1] === "status") {
|
|
871
843
|
const metadata = await inspectMcpMetadataOrQuarantine((message) => { process.stderr.write(message); });
|
|
@@ -887,9 +859,15 @@ async function main() {
|
|
|
887
859
|
}
|
|
888
860
|
return;
|
|
889
861
|
}
|
|
890
|
-
|
|
862
|
+
// Internal, for update scripts: stop the installed service before an update and start it again after, never prompting for approval.
|
|
863
|
+
if (command === "mcp" && args[1] === "service" && args[2] === "stop") {
|
|
891
864
|
const service = await stopMcpService();
|
|
892
|
-
stdout.write(`Frely
|
|
865
|
+
stdout.write(`Frely background service ${service.active ? "still active" : "stopped"}.\n`);
|
|
866
|
+
return;
|
|
867
|
+
}
|
|
868
|
+
if (command === "mcp" && args[1] === "service" && args[2] === "start") {
|
|
869
|
+
const service = await startMcpService();
|
|
870
|
+
stdout.write(`Frely background service ${service.active ? "started" : "not active"}.\n`);
|
|
893
871
|
return;
|
|
894
872
|
}
|
|
895
873
|
if (command === "link" && args[1] === "off") {
|