frely-cli 0.23.11 → 0.23.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/README.md +12 -12
  2. package/README.zh-CN.md +11 -11
  3. package/dist/agent/local/approvals.js +14 -18
  4. package/dist/agent/local/approvals.js.map +1 -1
  5. package/dist/agent/run-store.d.ts +5 -0
  6. package/dist/agent/run-store.js +1 -0
  7. package/dist/agent/run-store.js.map +1 -1
  8. package/dist/agent/run.d.ts +5 -1
  9. package/dist/agent/run.js +25 -4
  10. package/dist/agent/run.js.map +1 -1
  11. package/dist/agent-help.d.ts +64 -64
  12. package/dist/agent-help.js +29 -29
  13. package/dist/agent-help.js.map +1 -1
  14. package/dist/approval-code.d.ts +4 -0
  15. package/dist/approval-code.js +15 -0
  16. package/dist/approval-code.js.map +1 -0
  17. package/dist/cloud.d.ts +6 -9
  18. package/dist/cloud.js +25 -24
  19. package/dist/cloud.js.map +1 -1
  20. package/dist/controller/approval-wait.d.ts +21 -0
  21. package/dist/controller/approval-wait.js +28 -0
  22. package/dist/controller/approval-wait.js.map +1 -0
  23. package/dist/controller/client.js +1 -1
  24. package/dist/controller/client.js.map +1 -1
  25. package/dist/controller/commands.d.ts +3 -6
  26. package/dist/controller/commands.js +30 -31
  27. package/dist/controller/commands.js.map +1 -1
  28. package/dist/device/relay-client.js +4 -0
  29. package/dist/device/relay-client.js.map +1 -1
  30. package/dist/diagnostics.js +8 -8
  31. package/dist/diagnostics.js.map +1 -1
  32. package/dist/index.js +49 -41
  33. package/dist/index.js.map +1 -1
  34. package/dist/local-mcp-command.d.ts +1 -1
  35. package/dist/local-mcp-command.js +6 -6
  36. package/dist/local-mcp-command.js.map +1 -1
  37. package/dist/mcp-authorization.d.ts +4 -4
  38. package/dist/mcp-authorization.js +23 -25
  39. package/dist/mcp-authorization.js.map +1 -1
  40. package/dist/mcp-command.d.ts +8 -6
  41. package/dist/mcp-command.js +56 -45
  42. package/dist/mcp-command.js.map +1 -1
  43. package/dist/remote-lock.d.ts +10 -0
  44. package/dist/remote-lock.js +24 -0
  45. package/dist/remote-lock.js.map +1 -0
  46. package/dist/runtime/mcp-lease.js +1 -1
  47. package/dist/runtime/mcp-lease.js.map +1 -1
  48. package/dist/runtime/mcp.js +1 -1
  49. package/dist/runtime/mcp.js.map +1 -1
  50. package/dist/runtime/sandbox-proxy.js +2 -2
  51. package/dist/runtime/sandbox-proxy.js.map +1 -1
  52. package/dist/runtime/workspace-registry.js +1 -1
  53. package/dist/runtime/workspace-registry.js.map +1 -1
  54. package/dist/share/control.d.ts +10 -1
  55. package/dist/share/control.js +45 -2
  56. package/dist/share/control.js.map +1 -1
  57. package/dist/share/run.d.ts +0 -5
  58. package/dist/share/run.js +3 -14
  59. package/dist/share/run.js.map +1 -1
  60. package/dist/skill/access.d.ts +6 -1
  61. package/dist/skill/access.js +23 -10
  62. package/dist/skill/access.js.map +1 -1
  63. package/dist/skill/entry.d.ts +1 -1
  64. package/dist/skill/entry.js +1 -1
  65. package/dist/skill/router.d.ts +25 -0
  66. package/dist/skill/router.js +31 -10
  67. package/dist/skill/router.js.map +1 -1
  68. package/dist/update/auto-update.d.ts +1 -1
  69. package/dist/update/auto-update.js +1 -1
  70. package/dist/update/auto-update.js.map +1 -1
  71. package/dist/workspace-command.d.ts +1 -1
  72. package/dist/workspace-command.js +3 -3
  73. package/dist/workspace-command.js.map +1 -1
  74. package/package.json +1 -1
  75. package/skills/frely-cli/SKILL.md +3 -3
@@ -35,71 +35,71 @@ export declare const COMMANDS: readonly [{
35
35
  readonly effect: "read";
36
36
  readonly purpose: "Read this installed CLI's current Agent instructions.";
37
37
  }, {
38
- readonly id: "mcp.start";
39
- readonly usage: "frely mcp start [--workspace <path>] [--days 1..365] [--no-browser] [--json]";
38
+ readonly id: "link.on";
39
+ readonly usage: "frely link on [--workspace <path>] [--days 1..365] [--no-browser] [--json]";
40
40
  readonly auth: "account-and-browser-if-needed";
41
41
  readonly effect: "authorization-if-needed";
42
- readonly purpose: "Enable, renew, start and read device MCP. Without a stored login it first signs in through the browser (the page also registers new accounts; --no-browser only prints the sign-in URL and device code, which can be approved on any device signed in to Frely); that one approval also enables device MCP, so no second approval link is needed. Unconfigured: request browser approval for --workspace (default: the home directory), install and start the background service. Expired or --days given: renew with browser approval; the MCP URL stays the same. Otherwise start the service if it is not running. With FRELY_INSTALL_TOKEN (the one-time install command from list_devices or the Frely console), it signs in to that account (replacing any stored login) and preapproves device MCP with no browser or prompt. Prompts go to stderr; stdout holds only the URL, or JSON with HTTP transport and OAuth details. `frely mcp url` is a deprecated alias.";
42
+ readonly purpose: "Enable, renew, start and read device MCP. Without a stored login it first signs in through the browser (the page also registers new accounts; --no-browser only prints the sign-in URL and device code, which can be approved on any device signed in to Frely); that one approval also enables device MCP, so no second approval link is needed. Unconfigured: request browser approval for --workspace (default: the home directory), install and start the background service. Expired or --days given: renew with browser approval; the MCP URL stays the same. Otherwise start the service if it is not running. With FRELY_INSTALL_TOKEN (the one-time install command from list_devices or the Frely console), it signs in to that account (replacing any stored login) and preapproves device MCP with no browser or prompt. Prompts go to stderr; stdout holds only the URL, or JSON with HTTP transport and OAuth details.";
43
43
  }, {
44
- readonly id: "mcp.workspace.list";
45
- readonly usage: "frely mcp workspace list [--json]";
44
+ readonly id: "link.workspace.list";
45
+ readonly usage: "frely link workspace list [--json]";
46
46
  readonly auth: "mcp";
47
47
  readonly effect: "read";
48
48
  readonly purpose: "List workspace directories for this device; the primary is marked.";
49
49
  }, {
50
- readonly id: "mcp.workspace.add";
51
- readonly usage: "frely mcp workspace add [path]";
50
+ readonly id: "link.workspace.add";
51
+ readonly usage: "frely link workspace add [path]";
52
52
  readonly auth: "mcp";
53
53
  readonly effect: "local-write";
54
54
  readonly purpose: "Add an additional workspace directory for this device (default: current directory); takes effect on the running service without restart.";
55
55
  }, {
56
- readonly id: "mcp.workspace.remove";
57
- readonly usage: "frely mcp workspace remove <path>";
56
+ readonly id: "link.workspace.remove";
57
+ readonly usage: "frely link workspace remove <path>";
58
58
  readonly auth: "mcp";
59
59
  readonly effect: "local-write";
60
60
  readonly purpose: "Remove an additional workspace directory (the primary cannot be removed).";
61
61
  }, {
62
- readonly id: "mcp.local.list";
63
- readonly usage: "frely mcp local list [--json]";
62
+ readonly id: "link.local.list";
63
+ readonly usage: "frely link local list [--json]";
64
64
  readonly auth: "none";
65
65
  readonly effect: "read";
66
66
  readonly purpose: "List MCP servers on this device that remote clients could use: loopback HTTP servers found automatically plus ones added by hand. Every server is off for remote clients until the owner turns it on in the web console.";
67
67
  }, {
68
- readonly id: "mcp.local.add";
69
- readonly usage: "frely mcp local add <name> --url <http://127.0.0.1:port/path> [--header K=V] | frely mcp local add <name> [--env K=V] -- <command> [args...]";
68
+ readonly id: "link.local.add";
69
+ readonly usage: "frely link local add <name> --url <http://127.0.0.1:port/path> [--header K=V] | frely link local add <name> [--env K=V] -- <command> [args...]";
70
70
  readonly auth: "none";
71
71
  readonly effect: "local-write";
72
72
  readonly purpose: "Add a local MCP server by loopback URL or by the command that starts it (stdio). It is connected once to check it works; it stays off for remote clients until the owner turns it on in the web console.";
73
73
  }, {
74
- readonly id: "mcp.local.remove";
75
- readonly usage: "frely mcp local remove <name>";
74
+ readonly id: "link.local.remove";
75
+ readonly usage: "frely link local remove <name>";
76
76
  readonly auth: "none";
77
77
  readonly effect: "local-write";
78
78
  readonly purpose: "Remove a manually added local MCP server.";
79
79
  }, {
80
- readonly id: "mcp.status";
81
- readonly usage: "frely mcp status [--json]";
80
+ readonly id: "link.status";
81
+ readonly usage: "frely link status [--json]";
82
82
  readonly auth: "none";
83
83
  readonly effect: "read";
84
- readonly purpose: "Show whether device MCP is configured, its URL, workspace, authorization expiry and background service state. Makes no network request.";
84
+ readonly purpose: "Show the remote-control state (not enabled by default / on / off and locked here), its URL, workspace, authorization expiry and background service state. Makes no network request.";
85
85
  }, {
86
- readonly id: "mcp.stop";
87
- readonly usage: "frely mcp stop";
86
+ readonly id: "link.stop";
87
+ readonly usage: "frely link stop";
88
88
  readonly auth: "none";
89
89
  readonly effect: "local-service";
90
- readonly purpose: "Stop the local MCP background service without revoking authorization; frely mcp start resumes it. Supported updates restore running services without this command.";
90
+ readonly purpose: "Stop the local MCP background service without revoking authorization; frely link on resumes it. Supported updates restore running services without this command.";
91
91
  }, {
92
- readonly id: "mcp.auto-update";
93
- readonly usage: "frely mcp auto-update [on|off]";
92
+ readonly id: "link.auto-update";
93
+ readonly usage: "frely link auto-update [on|off]";
94
94
  readonly auth: "none";
95
95
  readonly effect: "local-write";
96
96
  readonly purpose: "Show or set whether this device's background service installs new stable versions of its own installation while idle and restarts itself. Off by default; macOS and Linux only.";
97
97
  }, {
98
- readonly id: "mcp.remove";
99
- readonly usage: "frely mcp remove";
98
+ readonly id: "link.off";
99
+ readonly usage: "frely link off";
100
100
  readonly auth: "account";
101
101
  readonly effect: "remote-write";
102
- readonly purpose: "Revoke device MCP for every connected client and uninstall the background service (kept running provider-only when local Providers exist).";
102
+ readonly purpose: "Turn remote control off and lock it on this computer: revoke the authorization for every connected client, uninstall the background service (kept running provider-only when local Providers exist) and write a local lock. The web page cannot turn it on again; only frely link on here can.";
103
103
  }, {
104
104
  readonly id: "mcp.stdio";
105
105
  readonly usage: "frely mcp stdio [--workspace <path>]";
@@ -168,10 +168,10 @@ export declare const COMMANDS: readonly [{
168
168
  readonly purpose: "Install the public Agent's trigger Skill; an API key goes only through stdin to secure storage.";
169
169
  }, {
170
170
  readonly id: "agent.run";
171
- readonly usage: "frely agent run <username/name> (--input <text>|--input-stdin) [--read [<dir>] [--read-max-bytes <n>] [--read-max-rounds <n>]] [--json]";
171
+ readonly usage: "frely agent run <username/name> (--input <text>|--input-stdin) [--read [<dir>] [--read-max-bytes <n>] [--read-max-rounds <n>]] [--progress-summary|--no-progress-summary] [--json]";
172
172
  readonly auth: "installed-api-key-or-account";
173
173
  readonly effect: "remote-call";
174
- readonly purpose: "Send the complete relevant user request to the installed Agent through model-scoped MCP. Usage may be billed. The call runs in a background worker and is recorded on this computer (run id on stderr), so a cut-off command loses nothing: use `frely agent result`. With --read the Agent may read files of <dir> (default: the git root of the current directory) through read-only tools that run here: only files it asks for leave this computer; .git, .env*, key files, git-ignored and binary files are refused; defaults 1 MiB read and 16 rounds per run; each round is billed, and the result lists filesRead.";
174
+ readonly purpose: "Send the complete relevant user request to the installed Agent through model-scoped MCP. Usage may be billed. The call runs in a background worker and is recorded on this computer (run id on stderr), so a cut-off command loses nothing: use `frely agent result`. A long call keeps running at Frely and the worker waits for it (reading is free); `frely agent result` shows its newest progress line while it runs. --no-progress-summary asks the Agent not to write progress lines (use it when the user says so, for example in AGENTS.md); without a flag the account setting applies. With --read the Agent may read files of <dir> (default: the git root of the current directory) through read-only tools that run here: only files it asks for leave this computer; .git, .env*, key files, git-ignored and binary files are refused; defaults 1 MiB read and 16 rounds per run; each round is billed, and the result lists filesRead.";
175
175
  }, {
176
176
  readonly id: "agent.result";
177
177
  readonly usage: "frely agent result (<runId>|--last) [--wait] [--resume] [--json]";
@@ -189,7 +189,7 @@ export declare const COMMANDS: readonly [{
189
189
  readonly usage: "frely agent cancel (<runId>|--last) [--json]";
190
190
  readonly auth: "none";
191
191
  readonly effect: "local-process";
192
- readonly purpose: "Stop a running agent run; the server stops and settles what was already used.";
192
+ readonly purpose: "Stop a running agent run; the server stops and settles what was already used (a long call is canceled at Frely too).";
193
193
  }, {
194
194
  readonly id: "agent.status";
195
195
  readonly usage: "frely agent status (<username/name>|--api-key-stdin [--relay <url>]) [--json]";
@@ -258,10 +258,10 @@ export declare const COMMANDS: readonly [{
258
258
  readonly purpose: "List configured local Providers.";
259
259
  }, {
260
260
  readonly id: "share";
261
- readonly usage: "frely share <port> [--ttl <hours>] [--rewrite-host] [--yes] [--json]";
261
+ readonly usage: "frely share <port> [--ttl <hours>] [--rewrite-host] [--json]";
262
262
  readonly auth: "account";
263
263
  readonly effect: "remote-write";
264
- readonly purpose: "Make a web service on this computer (http://127.0.0.1:<port>) reachable from the Internet by a private link through Frely's relay, until Ctrl+C or expiry (at most 24 hours). Asks first. The relay allowance is a plan limit per UTC week; --rewrite-host sends Host: localhost to dev servers that refuse other names. Not the same as `frely provider share` (local models) or `frely tunnel` (command sandbox).";
264
+ readonly purpose: "Make a web service on this computer (http://127.0.0.1:<port>) reachable from the Internet by a private link through Frely's relay, until Ctrl+C or expiry (at most 24 hours). Needs the owner's approval in the browser each time (an approval link and code are printed; the command waits and continues by itself). The relay allowance is a plan limit per UTC week; --rewrite-host sends Host: localhost to dev servers that refuse other names. Not the same as `frely provider share` (local models) or `frely tunnel` (command sandbox).";
265
265
  }, {
266
266
  readonly id: "service.share";
267
267
  readonly usage: "frely service share --type mcp|a2a --port <n> [--label <text>] [--background] [--json]";
@@ -480,71 +480,71 @@ export declare function agentHelp(): {
480
480
  readonly effect: "read";
481
481
  readonly purpose: "Read this installed CLI's current Agent instructions.";
482
482
  }, {
483
- readonly id: "mcp.start";
484
- readonly usage: "frely mcp start [--workspace <path>] [--days 1..365] [--no-browser] [--json]";
483
+ readonly id: "link.on";
484
+ readonly usage: "frely link on [--workspace <path>] [--days 1..365] [--no-browser] [--json]";
485
485
  readonly auth: "account-and-browser-if-needed";
486
486
  readonly effect: "authorization-if-needed";
487
- readonly purpose: "Enable, renew, start and read device MCP. Without a stored login it first signs in through the browser (the page also registers new accounts; --no-browser only prints the sign-in URL and device code, which can be approved on any device signed in to Frely); that one approval also enables device MCP, so no second approval link is needed. Unconfigured: request browser approval for --workspace (default: the home directory), install and start the background service. Expired or --days given: renew with browser approval; the MCP URL stays the same. Otherwise start the service if it is not running. With FRELY_INSTALL_TOKEN (the one-time install command from list_devices or the Frely console), it signs in to that account (replacing any stored login) and preapproves device MCP with no browser or prompt. Prompts go to stderr; stdout holds only the URL, or JSON with HTTP transport and OAuth details. `frely mcp url` is a deprecated alias.";
487
+ readonly purpose: "Enable, renew, start and read device MCP. Without a stored login it first signs in through the browser (the page also registers new accounts; --no-browser only prints the sign-in URL and device code, which can be approved on any device signed in to Frely); that one approval also enables device MCP, so no second approval link is needed. Unconfigured: request browser approval for --workspace (default: the home directory), install and start the background service. Expired or --days given: renew with browser approval; the MCP URL stays the same. Otherwise start the service if it is not running. With FRELY_INSTALL_TOKEN (the one-time install command from list_devices or the Frely console), it signs in to that account (replacing any stored login) and preapproves device MCP with no browser or prompt. Prompts go to stderr; stdout holds only the URL, or JSON with HTTP transport and OAuth details.";
488
488
  }, {
489
- readonly id: "mcp.workspace.list";
490
- readonly usage: "frely mcp workspace list [--json]";
489
+ readonly id: "link.workspace.list";
490
+ readonly usage: "frely link workspace list [--json]";
491
491
  readonly auth: "mcp";
492
492
  readonly effect: "read";
493
493
  readonly purpose: "List workspace directories for this device; the primary is marked.";
494
494
  }, {
495
- readonly id: "mcp.workspace.add";
496
- readonly usage: "frely mcp workspace add [path]";
495
+ readonly id: "link.workspace.add";
496
+ readonly usage: "frely link workspace add [path]";
497
497
  readonly auth: "mcp";
498
498
  readonly effect: "local-write";
499
499
  readonly purpose: "Add an additional workspace directory for this device (default: current directory); takes effect on the running service without restart.";
500
500
  }, {
501
- readonly id: "mcp.workspace.remove";
502
- readonly usage: "frely mcp workspace remove <path>";
501
+ readonly id: "link.workspace.remove";
502
+ readonly usage: "frely link workspace remove <path>";
503
503
  readonly auth: "mcp";
504
504
  readonly effect: "local-write";
505
505
  readonly purpose: "Remove an additional workspace directory (the primary cannot be removed).";
506
506
  }, {
507
- readonly id: "mcp.local.list";
508
- readonly usage: "frely mcp local list [--json]";
507
+ readonly id: "link.local.list";
508
+ readonly usage: "frely link local list [--json]";
509
509
  readonly auth: "none";
510
510
  readonly effect: "read";
511
511
  readonly purpose: "List MCP servers on this device that remote clients could use: loopback HTTP servers found automatically plus ones added by hand. Every server is off for remote clients until the owner turns it on in the web console.";
512
512
  }, {
513
- readonly id: "mcp.local.add";
514
- readonly usage: "frely mcp local add <name> --url <http://127.0.0.1:port/path> [--header K=V] | frely mcp local add <name> [--env K=V] -- <command> [args...]";
513
+ readonly id: "link.local.add";
514
+ readonly usage: "frely link local add <name> --url <http://127.0.0.1:port/path> [--header K=V] | frely link local add <name> [--env K=V] -- <command> [args...]";
515
515
  readonly auth: "none";
516
516
  readonly effect: "local-write";
517
517
  readonly purpose: "Add a local MCP server by loopback URL or by the command that starts it (stdio). It is connected once to check it works; it stays off for remote clients until the owner turns it on in the web console.";
518
518
  }, {
519
- readonly id: "mcp.local.remove";
520
- readonly usage: "frely mcp local remove <name>";
519
+ readonly id: "link.local.remove";
520
+ readonly usage: "frely link local remove <name>";
521
521
  readonly auth: "none";
522
522
  readonly effect: "local-write";
523
523
  readonly purpose: "Remove a manually added local MCP server.";
524
524
  }, {
525
- readonly id: "mcp.status";
526
- readonly usage: "frely mcp status [--json]";
525
+ readonly id: "link.status";
526
+ readonly usage: "frely link status [--json]";
527
527
  readonly auth: "none";
528
528
  readonly effect: "read";
529
- readonly purpose: "Show whether device MCP is configured, its URL, workspace, authorization expiry and background service state. Makes no network request.";
529
+ readonly purpose: "Show the remote-control state (not enabled by default / on / off and locked here), its URL, workspace, authorization expiry and background service state. Makes no network request.";
530
530
  }, {
531
- readonly id: "mcp.stop";
532
- readonly usage: "frely mcp stop";
531
+ readonly id: "link.stop";
532
+ readonly usage: "frely link stop";
533
533
  readonly auth: "none";
534
534
  readonly effect: "local-service";
535
- readonly purpose: "Stop the local MCP background service without revoking authorization; frely mcp start resumes it. Supported updates restore running services without this command.";
535
+ readonly purpose: "Stop the local MCP background service without revoking authorization; frely link on resumes it. Supported updates restore running services without this command.";
536
536
  }, {
537
- readonly id: "mcp.auto-update";
538
- readonly usage: "frely mcp auto-update [on|off]";
537
+ readonly id: "link.auto-update";
538
+ readonly usage: "frely link auto-update [on|off]";
539
539
  readonly auth: "none";
540
540
  readonly effect: "local-write";
541
541
  readonly purpose: "Show or set whether this device's background service installs new stable versions of its own installation while idle and restarts itself. Off by default; macOS and Linux only.";
542
542
  }, {
543
- readonly id: "mcp.remove";
544
- readonly usage: "frely mcp remove";
543
+ readonly id: "link.off";
544
+ readonly usage: "frely link off";
545
545
  readonly auth: "account";
546
546
  readonly effect: "remote-write";
547
- readonly purpose: "Revoke device MCP for every connected client and uninstall the background service (kept running provider-only when local Providers exist).";
547
+ readonly purpose: "Turn remote control off and lock it on this computer: revoke the authorization for every connected client, uninstall the background service (kept running provider-only when local Providers exist) and write a local lock. The web page cannot turn it on again; only frely link on here can.";
548
548
  }, {
549
549
  readonly id: "mcp.stdio";
550
550
  readonly usage: "frely mcp stdio [--workspace <path>]";
@@ -613,10 +613,10 @@ export declare function agentHelp(): {
613
613
  readonly purpose: "Install the public Agent's trigger Skill; an API key goes only through stdin to secure storage.";
614
614
  }, {
615
615
  readonly id: "agent.run";
616
- readonly usage: "frely agent run <username/name> (--input <text>|--input-stdin) [--read [<dir>] [--read-max-bytes <n>] [--read-max-rounds <n>]] [--json]";
616
+ readonly usage: "frely agent run <username/name> (--input <text>|--input-stdin) [--read [<dir>] [--read-max-bytes <n>] [--read-max-rounds <n>]] [--progress-summary|--no-progress-summary] [--json]";
617
617
  readonly auth: "installed-api-key-or-account";
618
618
  readonly effect: "remote-call";
619
- readonly purpose: "Send the complete relevant user request to the installed Agent through model-scoped MCP. Usage may be billed. The call runs in a background worker and is recorded on this computer (run id on stderr), so a cut-off command loses nothing: use `frely agent result`. With --read the Agent may read files of <dir> (default: the git root of the current directory) through read-only tools that run here: only files it asks for leave this computer; .git, .env*, key files, git-ignored and binary files are refused; defaults 1 MiB read and 16 rounds per run; each round is billed, and the result lists filesRead.";
619
+ readonly purpose: "Send the complete relevant user request to the installed Agent through model-scoped MCP. Usage may be billed. The call runs in a background worker and is recorded on this computer (run id on stderr), so a cut-off command loses nothing: use `frely agent result`. A long call keeps running at Frely and the worker waits for it (reading is free); `frely agent result` shows its newest progress line while it runs. --no-progress-summary asks the Agent not to write progress lines (use it when the user says so, for example in AGENTS.md); without a flag the account setting applies. With --read the Agent may read files of <dir> (default: the git root of the current directory) through read-only tools that run here: only files it asks for leave this computer; .git, .env*, key files, git-ignored and binary files are refused; defaults 1 MiB read and 16 rounds per run; each round is billed, and the result lists filesRead.";
620
620
  }, {
621
621
  readonly id: "agent.result";
622
622
  readonly usage: "frely agent result (<runId>|--last) [--wait] [--resume] [--json]";
@@ -634,7 +634,7 @@ export declare function agentHelp(): {
634
634
  readonly usage: "frely agent cancel (<runId>|--last) [--json]";
635
635
  readonly auth: "none";
636
636
  readonly effect: "local-process";
637
- readonly purpose: "Stop a running agent run; the server stops and settles what was already used.";
637
+ readonly purpose: "Stop a running agent run; the server stops and settles what was already used (a long call is canceled at Frely too).";
638
638
  }, {
639
639
  readonly id: "agent.status";
640
640
  readonly usage: "frely agent status (<username/name>|--api-key-stdin [--relay <url>]) [--json]";
@@ -703,10 +703,10 @@ export declare function agentHelp(): {
703
703
  readonly purpose: "List configured local Providers.";
704
704
  }, {
705
705
  readonly id: "share";
706
- readonly usage: "frely share <port> [--ttl <hours>] [--rewrite-host] [--yes] [--json]";
706
+ readonly usage: "frely share <port> [--ttl <hours>] [--rewrite-host] [--json]";
707
707
  readonly auth: "account";
708
708
  readonly effect: "remote-write";
709
- readonly purpose: "Make a web service on this computer (http://127.0.0.1:<port>) reachable from the Internet by a private link through Frely's relay, until Ctrl+C or expiry (at most 24 hours). Asks first. The relay allowance is a plan limit per UTC week; --rewrite-host sends Host: localhost to dev servers that refuse other names. Not the same as `frely provider share` (local models) or `frely tunnel` (command sandbox).";
709
+ readonly purpose: "Make a web service on this computer (http://127.0.0.1:<port>) reachable from the Internet by a private link through Frely's relay, until Ctrl+C or expiry (at most 24 hours). Needs the owner's approval in the browser each time (an approval link and code are printed; the command waits and continues by itself). The relay allowance is a plan limit per UTC week; --rewrite-host sends Host: localhost to dev servers that refuse other names. Not the same as `frely provider share` (local models) or `frely tunnel` (command sandbox).";
710
710
  }, {
711
711
  readonly id: "service.share";
712
712
  readonly usage: "frely service share --type mcp|a2a --port <n> [--label <text>] [--background] [--json]";
@@ -885,8 +885,8 @@ export declare function agentHelp(): {
885
885
  };
886
886
  export declare function cliUsage(): string;
887
887
  /**
888
- * A command group without a direct action (`frely mcp workspace`, `frely agent`,
888
+ * A command group without a direct action (`frely link workspace`, `frely agent`,
889
889
  * ...) prints the subcommands under it instead of running one.
890
890
  */
891
891
  export declare function subcommandUsage(group: string): string;
892
- export declare function mcpUsage(): string;
892
+ export declare function linkUsage(): string;
@@ -6,17 +6,17 @@ export const COMMANDS = [
6
6
  { id: "doctor", usage: "frely doctor [-v] [--json]", auth: "optional-account", effect: "diagnostic", purpose: "Show the signed-in account, installation, available updates, MCP and connection status; -v verifies the account online and runs detailed diagnostics." },
7
7
  { id: "update", usage: "frely update", auth: "none", effect: "local-write", purpose: "Update the current installation to the latest stable release. Windows prints a manual command; doctor checks versions." },
8
8
  { id: "help", usage: "frely help --agent --json", auth: "none", effect: "read", purpose: "Read this installed CLI's current Agent instructions." },
9
- { id: "mcp.start", usage: "frely mcp start [--workspace <path>] [--days 1..365] [--no-browser] [--json]", auth: "account-and-browser-if-needed", effect: "authorization-if-needed", purpose: "Enable, renew, start and read device MCP. Without a stored login it first signs in through the browser (the page also registers new accounts; --no-browser only prints the sign-in URL and device code, which can be approved on any device signed in to Frely); that one approval also enables device MCP, so no second approval link is needed. Unconfigured: request browser approval for --workspace (default: the home directory), install and start the background service. Expired or --days given: renew with browser approval; the MCP URL stays the same. Otherwise start the service if it is not running. With FRELY_INSTALL_TOKEN (the one-time install command from list_devices or the Frely console), it signs in to that account (replacing any stored login) and preapproves device MCP with no browser or prompt. Prompts go to stderr; stdout holds only the URL, or JSON with HTTP transport and OAuth details. `frely mcp url` is a deprecated alias." },
10
- { id: "mcp.workspace.list", usage: "frely mcp workspace list [--json]", auth: "mcp", effect: "read", purpose: "List workspace directories for this device; the primary is marked." },
11
- { id: "mcp.workspace.add", usage: "frely mcp workspace add [path]", auth: "mcp", effect: "local-write", purpose: "Add an additional workspace directory for this device (default: current directory); takes effect on the running service without restart." },
12
- { id: "mcp.workspace.remove", usage: "frely mcp workspace remove <path>", auth: "mcp", effect: "local-write", purpose: "Remove an additional workspace directory (the primary cannot be removed)." },
13
- { id: "mcp.local.list", usage: "frely mcp local list [--json]", auth: "none", effect: "read", purpose: "List MCP servers on this device that remote clients could use: loopback HTTP servers found automatically plus ones added by hand. Every server is off for remote clients until the owner turns it on in the web console." },
14
- { id: "mcp.local.add", usage: "frely mcp local add <name> --url <http://127.0.0.1:port/path> [--header K=V] | frely mcp local add <name> [--env K=V] -- <command> [args...]", auth: "none", effect: "local-write", purpose: "Add a local MCP server by loopback URL or by the command that starts it (stdio). It is connected once to check it works; it stays off for remote clients until the owner turns it on in the web console." },
15
- { id: "mcp.local.remove", usage: "frely mcp local remove <name>", auth: "none", effect: "local-write", purpose: "Remove a manually added local MCP server." },
16
- { id: "mcp.status", usage: "frely mcp status [--json]", auth: "none", effect: "read", purpose: "Show whether device MCP is configured, its URL, workspace, authorization expiry and background service state. Makes no network request." },
17
- { id: "mcp.stop", usage: "frely mcp stop", auth: "none", effect: "local-service", purpose: "Stop the local MCP background service without revoking authorization; frely mcp start resumes it. Supported updates restore running services without this command." },
18
- { id: "mcp.auto-update", usage: "frely mcp auto-update [on|off]", auth: "none", effect: "local-write", purpose: "Show or set whether this device's background service installs new stable versions of its own installation while idle and restarts itself. Off by default; macOS and Linux only." },
19
- { id: "mcp.remove", usage: "frely mcp remove", auth: "account", effect: "remote-write", purpose: "Revoke device MCP for every connected client and uninstall the background service (kept running provider-only when local Providers exist)." },
9
+ { id: "link.on", usage: "frely link on [--workspace <path>] [--days 1..365] [--no-browser] [--json]", auth: "account-and-browser-if-needed", effect: "authorization-if-needed", purpose: "Enable, renew, start and read device MCP. Without a stored login it first signs in through the browser (the page also registers new accounts; --no-browser only prints the sign-in URL and device code, which can be approved on any device signed in to Frely); that one approval also enables device MCP, so no second approval link is needed. Unconfigured: request browser approval for --workspace (default: the home directory), install and start the background service. Expired or --days given: renew with browser approval; the MCP URL stays the same. Otherwise start the service if it is not running. With FRELY_INSTALL_TOKEN (the one-time install command from list_devices or the Frely console), it signs in to that account (replacing any stored login) and preapproves device MCP with no browser or prompt. Prompts go to stderr; stdout holds only the URL, or JSON with HTTP transport and OAuth details." },
10
+ { id: "link.workspace.list", usage: "frely link workspace list [--json]", auth: "mcp", effect: "read", purpose: "List workspace directories for this device; the primary is marked." },
11
+ { id: "link.workspace.add", usage: "frely link workspace add [path]", auth: "mcp", effect: "local-write", purpose: "Add an additional workspace directory for this device (default: current directory); takes effect on the running service without restart." },
12
+ { id: "link.workspace.remove", usage: "frely link workspace remove <path>", auth: "mcp", effect: "local-write", purpose: "Remove an additional workspace directory (the primary cannot be removed)." },
13
+ { id: "link.local.list", usage: "frely link local list [--json]", auth: "none", effect: "read", purpose: "List MCP servers on this device that remote clients could use: loopback HTTP servers found automatically plus ones added by hand. Every server is off for remote clients until the owner turns it on in the web console." },
14
+ { id: "link.local.add", usage: "frely link local add <name> --url <http://127.0.0.1:port/path> [--header K=V] | frely link local add <name> [--env K=V] -- <command> [args...]", auth: "none", effect: "local-write", purpose: "Add a local MCP server by loopback URL or by the command that starts it (stdio). It is connected once to check it works; it stays off for remote clients until the owner turns it on in the web console." },
15
+ { id: "link.local.remove", usage: "frely link local remove <name>", auth: "none", effect: "local-write", purpose: "Remove a manually added local MCP server." },
16
+ { id: "link.status", usage: "frely link status [--json]", auth: "none", effect: "read", purpose: "Show the remote-control state (not enabled by default / on / off and locked here), its URL, workspace, authorization expiry and background service state. Makes no network request." },
17
+ { id: "link.stop", usage: "frely link stop", auth: "none", effect: "local-service", purpose: "Stop the local MCP background service without revoking authorization; frely link on resumes it. Supported updates restore running services without this command." },
18
+ { id: "link.auto-update", usage: "frely link auto-update [on|off]", auth: "none", effect: "local-write", purpose: "Show or set whether this device's background service installs new stable versions of its own installation while idle and restarts itself. Off by default; macOS and Linux only." },
19
+ { id: "link.off", usage: "frely link off", auth: "account", effect: "remote-write", purpose: "Turn remote control off and lock it on this computer: revoke the authorization for every connected client, uninstall the background service (kept running provider-only when local Providers exist) and write a local lock. The web page cannot turn it on again; only frely link on here can." },
20
20
  { id: "mcp.stdio", usage: "frely mcp stdio [--workspace <path>]", auth: "mcp", effect: "local-execution", purpose: "Serve authorized local tools over stdio for a local MCP client." },
21
21
  { id: "mcp.serve", usage: "frely mcp serve [--workspace <path>]", auth: "account-and-mcp", effect: "local-execution", purpose: "Foreground Device Relay client; the background service runs this. Not needed for normal use." },
22
22
  { id: "skill.install", usage: "frely skill install [--host chatgpt|codex|claude-code|pi|generic] [--scope global|project] [--dir <project>] [--json]", auth: "none", effect: "local-write", purpose: "Install the `frely` Skill into the host Skill folder. It teaches the agent to sign in, use `frely api`, install marketplace items and Agents, and offer FrelyMCP only when a request needs it. Running it again refreshes the Skill; an edited copy is left alone. Does not enable device MCP." },
@@ -28,10 +28,10 @@ export const COMMANDS = [
28
28
  { id: "remote.call", usage: "frely remote call <username/name> <tool> [--json '<object>' | --input <file>] [--replace]", auth: "cloud-oauth", effect: "remote-call", purpose: "Call one tool of a remote MCP product and print the result as JSON (exit code 1 when the tool reports an error). Each call is billed or needs a pass exactly as in an MCP client; ask the user before a call that writes data they did not ask for." },
29
29
  { id: "remote.config", usage: "frely remote config <username/name> [--write <file>] [--replace]", auth: "cloud-oauth", effect: "remote-write", purpose: "Get a new key for one remote MCP product (it replaces the previous one) and print the mcpServers JSON that MCP clients take for it; with --write the entry is merged into that JSON file (created 0600) instead of printed. The key works only for this MCP." },
30
30
  { id: "agent.install", usage: "frely agent install <username/name[@version]> [--host chatgpt|codex|claude-code|pi|generic] [--scope global|project] [--dir <project>] [--api-key-stdin] [--json]", auth: "optional-api-key", effect: "local-write", purpose: "Install the public Agent's trigger Skill; an API key goes only through stdin to secure storage." },
31
- { id: "agent.run", usage: "frely agent run <username/name> (--input <text>|--input-stdin) [--read [<dir>] [--read-max-bytes <n>] [--read-max-rounds <n>]] [--json]", auth: "installed-api-key-or-account", effect: "remote-call", purpose: "Send the complete relevant user request to the installed Agent through model-scoped MCP. Usage may be billed. The call runs in a background worker and is recorded on this computer (run id on stderr), so a cut-off command loses nothing: use `frely agent result`. With --read the Agent may read files of <dir> (default: the git root of the current directory) through read-only tools that run here: only files it asks for leave this computer; .git, .env*, key files, git-ignored and binary files are refused; defaults 1 MiB read and 16 rounds per run; each round is billed, and the result lists filesRead." },
31
+ { id: "agent.run", usage: "frely agent run <username/name> (--input <text>|--input-stdin) [--read [<dir>] [--read-max-bytes <n>] [--read-max-rounds <n>]] [--progress-summary|--no-progress-summary] [--json]", auth: "installed-api-key-or-account", effect: "remote-call", purpose: "Send the complete relevant user request to the installed Agent through model-scoped MCP. Usage may be billed. The call runs in a background worker and is recorded on this computer (run id on stderr), so a cut-off command loses nothing: use `frely agent result`. A long call keeps running at Frely and the worker waits for it (reading is free); `frely agent result` shows its newest progress line while it runs. --no-progress-summary asks the Agent not to write progress lines (use it when the user says so, for example in AGENTS.md); without a flag the account setting applies. With --read the Agent may read files of <dir> (default: the git root of the current directory) through read-only tools that run here: only files it asks for leave this computer; .git, .env*, key files, git-ignored and binary files are refused; defaults 1 MiB read and 16 rounds per run; each round is billed, and the result lists filesRead." },
32
32
  { id: "agent.result", usage: "frely agent result (<runId>|--last) [--wait] [--resume] [--json]", auth: "none", effect: "read", purpose: "Show a run of `frely agent run` from this computer: running (rounds done, files read so far), completed (the full text) or failed/interrupted. --wait blocks until it ends. --resume continues an interrupted or failed run from the rounds already done; the interrupted round is billed again." },
33
33
  { id: "agent.runs", usage: "frely agent runs [--json]", auth: "none", effect: "read", purpose: "List the recent agent runs on this computer (kept 7 days)." },
34
- { id: "agent.cancel", usage: "frely agent cancel (<runId>|--last) [--json]", auth: "none", effect: "local-process", purpose: "Stop a running agent run; the server stops and settles what was already used." },
34
+ { id: "agent.cancel", usage: "frely agent cancel (<runId>|--last) [--json]", auth: "none", effect: "local-process", purpose: "Stop a running agent run; the server stops and settles what was already used (a long call is canceled at Frely too)." },
35
35
  { id: "agent.status", usage: "frely agent status (<username/name>|--api-key-stdin [--relay <url>]) [--json]", auth: "none-or-api-key", effect: "read", purpose: "Inspect an installed Agent Skill and, for API-key installs, its Key budget. With --api-key-stdin, read that Key's budget without installing or logging in." },
36
36
  { id: "agent.remove", usage: "frely agent remove <username/name> [--json]", auth: "none", effect: "local-write", purpose: "Remove an installed Agent Skill and its saved API key." },
37
37
  { id: "agent.local.add", usage: "frely agent local add <username/name | https://github.com/owner/repo> [--name <folder-name>]", auth: "optional-account", effect: "local-write", purpose: "Download an Agent's repository into its own folder under ~/frely-agents and run its setup inside the sandbox. The sandbox can write only that folder, cannot read credential folders and can reach only Frely's API plus the sites the repository lists in frely.yaml, each of which the owner approves once through a link (exit code 3 with the link when nobody can wait; approve, then run the same command again). Needs a frely.yaml with a local.run command." },
@@ -43,7 +43,7 @@ export const COMMANDS = [
43
43
  { id: "agent.local.key", usage: "frely agent local key --api-key-stdin | --clear", auth: "account", effect: "local-write", purpose: "Save the Frely API key that local Agents use for model calls; it goes only through stdin to secure storage. FRELY_API_KEY overrides it." },
44
44
  { id: "provider.share", usage: "frely provider share [ollama|openai-compatible] [--url <loopback-v1-url>] [--models <a,b>] [--slot <slot-id>] [--name <name>]", auth: "account", effect: "remote-write", purpose: "Publish a local model Provider. If a prepared Provider on this device is not finished, resume it instead. Prints this week's remaining relay allowance; relayed traffic counts against the weekly relay allowance." },
45
45
  { id: "provider.list", usage: "frely provider list [--json]", auth: "account", effect: "read", purpose: "List configured local Providers." },
46
- { id: "share", usage: "frely share <port> [--ttl <hours>] [--rewrite-host] [--yes] [--json]", auth: "account", effect: "remote-write", purpose: "Make a web service on this computer (http://127.0.0.1:<port>) reachable from the Internet by a private link through Frely's relay, until Ctrl+C or expiry (at most 24 hours). Asks first. The relay allowance is a plan limit per UTC week; --rewrite-host sends Host: localhost to dev servers that refuse other names. Not the same as `frely provider share` (local models) or `frely tunnel` (command sandbox)." },
46
+ { id: "share", usage: "frely share <port> [--ttl <hours>] [--rewrite-host] [--json]", auth: "account", effect: "remote-write", purpose: "Make a web service on this computer (http://127.0.0.1:<port>) reachable from the Internet by a private link through Frely's relay, until Ctrl+C or expiry (at most 24 hours). Needs the owner's approval in the browser each time (an approval link and code are printed; the command waits and continues by itself). The relay allowance is a plan limit per UTC week; --rewrite-host sends Host: localhost to dev servers that refuse other names. Not the same as `frely provider share` (local models) or `frely tunnel` (command sandbox)." },
47
47
  { id: "service.share", usage: "frely service share --type mcp|a2a --port <n> [--label <text>] [--background] [--json]", auth: "account", effect: "remote-write", purpose: "Connect an MCP server or A2A Agent that runs on this computer (127.0.0.1:<port>) to Frely so you can sell it, without a public address: only Frely's own cloud can reach it, the port never leaves this computer, and Frely never supplies a target. Runs until Ctrl+C, or with --background the device background service keeps it connected. Prints this week's remaining relay allowance; relayed traffic counts against the weekly relay allowance." },
48
48
  { id: "service.manage", usage: "frely service list [--json] | stop <id|label> | remove <id|label>", auth: "account", effect: "remote-write", purpose: "List registered services, stop one on this computer (it stays registered), or remove it from Frely (products that pointed at it become unreachable)." },
49
49
  { id: "tunnel", usage: "frely tunnel <host>:<port> [--local-port N]", auth: "none", effect: "local-execution", purpose: "Run inside a sandboxed command (run_command): listen on 127.0.0.1:<local-port> (default: the same port) and forward each TCP connection to host:port through the command sandbox's proxy, so database and redis clients connect to 127.0.0.1 without turning the sandbox off. Start it in the same command as the client, for example `frely tunnel db.example.com:5432 & sleep 1; psql -h 127.0.0.1 ...`. Prints the local address and runs until killed." },
@@ -89,9 +89,9 @@ export function agentHelp() {
89
89
  "A Key amount limit is a spending cap. It reserves no funds and remains subject to its owner's available Plan allowance and Credit.",
90
90
  "Budget sources are independent constraints. Do not sum their remaining amounts or describe them as a Key balance.",
91
91
  "Installing a remote Agent Skill does not replace the host's current model provider.",
92
- "Device MCP exposes this computer to remote HTTP MCP clients with OAuth. Commands execute on the device, not on the calling computer.",
93
- "Use frely mcp start to enable device MCP, start it, or read its address; frely mcp status and frely doctor [-v] show status and diagnostics.",
94
- "If MCP is unconfigured or expired, frely mcp start requests browser approval; otherwise it only ensures the service is running and prints the URL. Existing workspaces stay unchanged.",
92
+ "Remote control lets other clients (HTTP MCP clients with OAuth, frely run from another computer, hosted Agents) use this computer. It is not enabled after install; the owner turns it on from the web page after two-step verification, or with frely link on. Commands execute on the device, not on the calling computer.",
93
+ "Use frely link on to enable remote control, start it, or read its MCP address; frely link off turns it off and locks it on this computer (only frely link on there lifts the lock); frely link status and frely doctor [-v] show status and diagnostics.",
94
+ "If MCP is unconfigured or expired, frely link on requests browser approval; otherwise it only ensures the service is running and prints the URL. Existing workspaces stay unchanged.",
95
95
  "Remote clients of one device share its workspace and managed processes. Shell uses the device OS account; it is not a workspace sandbox.",
96
96
  ],
97
97
  commands: COMMANDS,
@@ -100,7 +100,7 @@ export function agentHelp() {
100
100
  const GROUPS = [
101
101
  { title: "Control your devices", ids: ["devices", "run", "ps", "logs", "kill", "read", "ls", "grep", "edit", "permission", "tools", "call", "controller"] },
102
102
  { title: "Account", ids: ["login", "logout", "uninstall", "doctor", "update"] },
103
- { title: "Device MCP", ids: ["mcp.start", "mcp.workspace", "mcp.local", "mcp.lifecycle"] },
103
+ { title: "Let others control this computer", ids: ["link.on", "link.workspace", "link.local", "link.lifecycle"] },
104
104
  { title: "Agents", ids: ["agent.install", "agent.run", "agent.status", "agent.remove", "agent.local"] },
105
105
  { title: "Skills", ids: ["skill.install"] },
106
106
  { title: "Marketplace items", ids: ["item.install", "item.update", "item.run", "item.trust"] },
@@ -132,10 +132,10 @@ const SHORT_USAGE = {
132
132
  uninstall: "frely uninstall [--yes]",
133
133
  doctor: "frely doctor [-v] [--json]",
134
134
  update: "frely update",
135
- "mcp.start": "frely mcp start [--workspace <path>] [--days 1..365] [--no-browser] [--json]",
136
- "mcp.workspace": "frely mcp workspace list|add <path>|remove <path>",
137
- "mcp.local": "frely mcp local list|add <name> (--url <address>|-- <command>)|remove <name>",
138
- "mcp.lifecycle": "frely mcp status|stop|remove",
135
+ "link.on": "frely link on [--workspace <path>] [--days 1..365] [--no-browser] [--json]",
136
+ "link.workspace": "frely link workspace list|add <path>|remove <path>",
137
+ "link.local": "frely link local list|add <name> (--url <address>|-- <command>)|remove <name>",
138
+ "link.lifecycle": "frely link status|stop|remove",
139
139
  "skill.install": "frely skill install [--host <host>]",
140
140
  "item.install": "frely item install <username/name[@version]> [--host <host>]",
141
141
  "item.update": "frely item update [<folder>]",
@@ -179,7 +179,7 @@ export function cliUsage() {
179
179
  return lines.join("");
180
180
  }
181
181
  /**
182
- * A command group without a direct action (`frely mcp workspace`, `frely agent`,
182
+ * A command group without a direct action (`frely link workspace`, `frely agent`,
183
183
  * ...) prints the subcommands under it instead of running one.
184
184
  */
185
185
  export function subcommandUsage(group) {
@@ -188,12 +188,12 @@ export function subcommandUsage(group) {
188
188
  .map((command) => ` ${SHORT_USAGE[command.id] ?? command.usage}\n`);
189
189
  return `Usage:\n${lines.join("")}`;
190
190
  }
191
- export function mcpUsage() {
192
- return "Device MCP — use this computer from a remote MCP client.\n\nUsage:\n"
193
- + ["mcp.start", "mcp.workspace", "mcp.local", "mcp.lifecycle"].map((id) => " " + SHORT_USAGE[id] + "\n").join("")
194
- + "\nStatus: frely mcp status [--json]; diagnostics: frely doctor [-v] [--json]\n\n"
195
- + "Run frely mcp start on the computer to control. It asks for browser approval the first time (the home directory, or --workspace) and when authorization has expired, installs and starts the background service, and prints the MCP URL. Add that URL to ChatGPT, Claude Code on another computer, or another HTTP MCP client, then authorize with OAuth.\n"
191
+ export function linkUsage() {
192
+ return "Remote control — let others control this computer (MCP clients, frely run from another computer, hosted Agents).\n\nUsage:\n"
193
+ + ["link.on", "link.workspace", "link.local", "link.lifecycle"].map((id) => " " + SHORT_USAGE[id] + "\n").join("")
194
+ + "\nStatus: frely link status [--json]; diagnostics: frely doctor [-v] [--json]\n\n"
195
+ + "Run frely link on on the computer to control. It asks for browser approval the first time (the home directory, or --workspace) and when authorization has expired, installs and starts the background service, and prints the MCP URL. Add that URL to ChatGPT, Claude Code on another computer, or another HTTP MCP client, then authorize with OAuth.\n"
196
196
  + "Prompts go to stderr; stdout contains only the URL or JSON. --days 1..365 renews now; the URL stays the same.\n"
197
- + "frely mcp stop only stops the service; frely mcp remove revokes access for every client. Clients share the device workspace and managed processes. Shell runs under the device OS account.\n";
197
+ + "frely link stop only stops the service; frely link off revokes access for every client. Clients share the device workspace and managed processes. Shell runs under the device OS account.\n";
198
198
  }
199
199
  //# sourceMappingURL=agent-help.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-help.js","sourceRoot":"","sources":["../src/agent-help.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-help.js","sourceRoot":"","sources":["../src/agent-help.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ /** How an eight-letter approval code is shown to people: ABCD-EFGH. Anything else is shown as it came. */
2
+ export declare function formatApprovalCode(code: string): string;
3
+ /** The approval code in a `/device?g=` link, shown as ABCD-EFGH, or null when the link carries none. */
4
+ export declare function approvalCodeOfLink(link: string): string | null;
@@ -0,0 +1,15 @@
1
+ /** How an eight-letter approval code is shown to people: ABCD-EFGH. Anything else is shown as it came. */
2
+ export function formatApprovalCode(code) {
3
+ return /^[A-HJ-NP-Z]{8}$/u.test(code) ? `${code.slice(0, 4)}-${code.slice(4)}` : code;
4
+ }
5
+ /** The approval code in a `/device?g=` link, shown as ABCD-EFGH, or null when the link carries none. */
6
+ export function approvalCodeOfLink(link) {
7
+ try {
8
+ const code = new URL(link).searchParams.get("g");
9
+ return code ? formatApprovalCode(code) : null;
10
+ }
11
+ catch {
12
+ return null;
13
+ }
14
+ }
15
+ //# sourceMappingURL=approval-code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval-code.js","sourceRoot":"","sources":["../src/approval-code.ts"],"names":[],"mappings":"AAAA,0GAA0G;AAC1G,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACxF,CAAC;AAED,wGAAwG;AACxG,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,IAAI,CAAC;QAAC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAAC,OAAO,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;AACjI,CAAC"}
package/dist/cloud.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { type ApprovalOutcome, type ApprovalRef } from "./controller/approval-wait.js";
1
2
  /** The server's `permission_required` or `confirmation_required` tool failure as a one-line hint, or null for any other result. */
2
3
  export declare function permissionHint(result: object): string | null;
3
4
  type CallResult = {
@@ -6,16 +7,12 @@ type CallResult = {
6
7
  [key: string]: unknown;
7
8
  };
8
9
  /**
9
- * After a `permission_required` or `confirmation_required` refusal, blocks until the owner decides and returns the call's real result, so the
10
- * calling AI resumes by itself. Only calls the server refused before running are repeated: a pending approval answers `permission_required`
11
- * again (a denial answers it without a link) or `confirmation_invalid`; the first call that is let through runs exactly once.
12
- * Gives up at the request's expiry (at most 10 minutes) and returns the last refusal.
10
+ * After a `permission_required` or `confirmation_required` refusal: waits for the owner's decision with the one shared wait, then runs the call
11
+ * again exactly once, and only when the approval is `approved`. A denied, expired or already-used approval, or a time-out, gives back the refusal
12
+ * without running anything. A confirmation is repeated with the same approvalCode; the server lets it through once. The repeat is never retried,
13
+ * so a write whose outcome was lost is not replayed (it is reported as it came back).
13
14
  */
14
- export declare function waitForApproval(first: CallResult, call: (input: Record<string, unknown>) => Promise<CallResult>, input: Record<string, unknown>, options?: {
15
- intervalMs?: number;
16
- now?: () => number;
17
- sleep?: (ms: number) => Promise<void>;
18
- }): Promise<CallResult>;
15
+ export declare function rerunAfterApproval(first: CallResult, call: (input: Record<string, unknown>) => Promise<CallResult>, input: Record<string, unknown>, wait: (ref: ApprovalRef, timeoutMs: number) => Promise<ApprovalOutcome>, now?: () => number): Promise<CallResult>;
19
16
  export declare const API_USAGE = "Frely API \u2014 call your Frely account's business operations (keys, credits, orders, Creator items\u2026).\n frely api list [--group <name>] [--json]\n frely api describe <tool>\n frely api call <tool> [--json '<object>' | --input <file>] [--wait]\n\n\"list\" prints the operations grouped by area with a one-line description each; add --json for the full tool list.\nOther results are JSON. The first command asks you to approve this computer in your browser (the same approval as frely controller login);\nfrely logout also revokes it. Without a terminal it prints the approval link and exits; run it again after approving.\nCalls may create resources or incur usage. Failed writes are never replayed automatically.\nA new device may only read non-sensitive data; for anything else the error links to the web\nconsole page where you grant it (passkey or authenticator code required).\nWith --wait, a call that needs approval prints the link, then blocks until the owner decides and\ncontinues by itself: it returns the real result once approved, or the refusal when denied or expired.\n";
20
17
  /** Revokes and forgets the Cloud authorization an older CLI left behind; there is nothing to do on a computer that never had one. */
21
18
  export declare function logoutCloud(): Promise<void>;