frely-cli 0.6.2 → 0.6.6

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 (45) hide show
  1. package/README.md +117 -50
  2. package/dist/agent-help.d.ts +47 -58
  3. package/dist/agent-help.js +24 -10
  4. package/dist/agent-help.js.map +1 -1
  5. package/dist/cloud.d.ts +7 -0
  6. package/dist/cloud.js +263 -0
  7. package/dist/cloud.js.map +1 -0
  8. package/dist/device/connection-status.d.ts +42 -0
  9. package/dist/device/connection-status.js +112 -0
  10. package/dist/device/connection-status.js.map +1 -0
  11. package/dist/device/relay-client.d.ts +5 -1
  12. package/dist/device/relay-client.js +101 -43
  13. package/dist/device/relay-client.js.map +1 -1
  14. package/dist/diagnostics.d.ts +66 -4
  15. package/dist/diagnostics.js +133 -25
  16. package/dist/diagnostics.js.map +1 -1
  17. package/dist/index.js +35 -16
  18. package/dist/index.js.map +1 -1
  19. package/dist/mcp-authorization.js +3 -3
  20. package/dist/mcp-authorization.js.map +1 -1
  21. package/dist/mcp-command.d.ts +9 -0
  22. package/dist/mcp-command.js +68 -0
  23. package/dist/mcp-command.js.map +1 -0
  24. package/dist/runtime/mcp.d.ts +2 -0
  25. package/dist/runtime/mcp.js +8 -3
  26. package/dist/runtime/mcp.js.map +1 -1
  27. package/dist/service.d.ts +4 -0
  28. package/dist/service.js +28 -4
  29. package/dist/service.js.map +1 -1
  30. package/dist/upgrade/installation.d.ts +24 -0
  31. package/dist/upgrade/installation.js +137 -0
  32. package/dist/upgrade/installation.js.map +1 -0
  33. package/dist/upgrade/maintenance.d.ts +15 -0
  34. package/dist/upgrade/maintenance.js +133 -0
  35. package/dist/upgrade/maintenance.js.map +1 -0
  36. package/dist/upgrade/release.d.ts +9 -0
  37. package/dist/upgrade/release.js +45 -0
  38. package/dist/upgrade/release.js.map +1 -0
  39. package/dist/upgrade/service-refresh.d.ts +38 -0
  40. package/dist/upgrade/service-refresh.js +138 -0
  41. package/dist/upgrade/service-refresh.js.map +1 -0
  42. package/dist/upgrade/update.d.ts +49 -0
  43. package/dist/upgrade/update.js +228 -0
  44. package/dist/upgrade/update.js.map +1 -0
  45. package/package.json +1 -1
package/README.md CHANGED
@@ -1,21 +1,21 @@
1
1
  # frely-cli
2
2
 
3
- 设计与 ChatGPT MCP 用户流程见 [`docs/chatgpt-mcp.md`](docs/chatgpt-mcp.md)。
3
+ 设备 MCP 的产品定义与通用客户端接入见 [`docs/device-mcp.md`](docs/device-mcp.md)。
4
4
 
5
- `frely-cli` is Frely's local command-line client, remote Agent bridge, and local MCP runtime. Remote Agent use and local tool sharing are separate flows.
5
+ `frely-cli` includes FrelyMCP: let agents access your device from any location. Browser agents and command-line agents such as Codex and Claude Code use MCP to access the files, commands and processes on the computer you authorize. Invoking Frely-hosted Agents and sharing local model Providers are optional CLI features with their own setup and authorization.
6
6
 
7
7
  **Release boundary (checked 2026-09-17):** npm `frely-cli@latest` resolves to
8
- `0.6.1`. That published package includes local MCP and Provider commands but does
9
- not include `frely skill install` or `frely agent invoke`. Remote Agent examples
10
- below describe the source implementation and are not an onboarding path for that
11
- release. Check the installed version and published release before following them.
8
+ `0.6.2`. The published tarball includes device MCP, Provider commands,
9
+ `frely skill install` and `frely agent invoke`. Agent examples below apply to that
10
+ release. Package contents establish command availability; service deployment,
11
+ account or API-key access and client connections need their own verification.
12
12
 
13
13
  ```text
14
14
  Remote Agent Skill: install -> frely login -> frely skill install -> frely agent invoke
15
- Local tool sharing: install -> frely login -> frely mcp setup -> add stable MCP URL -> OAuth authorize
15
+ Device MCP: install on target computer -> frely login -> frely mcp -> add MCP URL to client -> OAuth authorize
16
16
  ```
17
17
 
18
- `frely skill install` installs a local trigger Skill. It does not install a model or change the user's current model Provider/Base URL. `frely mcp setup` provisions local file, shell, process, and workspace execution; consuming a remote Frely Agent does not require that local execution authorization.
18
+ `frely skill install` installs a local trigger Skill. It does not install a model or change the user's current model Provider/Base URL. `frely mcp` provisions local file, shell, process, and workspace execution; consuming a remote Frely Agent does not require that local execution authorization.
19
19
 
20
20
  There is no separate `friday-local` project. Local MCP execution belongs to `frely-cli`.
21
21
 
@@ -57,32 +57,57 @@ npm install --global frely-cli@0.3.6
57
57
 
58
58
  ## Update an existing installation
59
59
 
60
- If you installed `frely-cli` with the official installer, run the [Quick install](#quick-install) installer again. It replaces the global package with the latest `frely-cli` release. If you installed the package directly with npm, run one of the commands in [Install or update with npm](#install-or-update-with-npm) again.
61
-
62
- If multiple `frely` executables are installed, list the candidates and check the npm global installation:
63
-
64
- ```sh
65
- type -a frely
66
- npm prefix --global
67
- "$(npm prefix --global)/bin/frely" --version
68
- ```
69
-
70
- Your shell uses the first `frely` path in `PATH`. If that path is not the npm global bin directory, put `$(npm prefix --global)/bin` earlier in `PATH` and run `frely --version` again.
71
-
72
- If the background Device Relay service is running, restart it after the update so it loads the new CLI version:
73
-
74
- ```sh
75
- frely mcp service stop
76
- frely mcp service start
77
- ```
78
-
79
- Verify the update:
80
-
81
60
  ```sh
82
- frely --version
83
61
  frely doctor
62
+ frely upgrade
84
63
  ```
85
64
 
65
+ `doctor` reports the installation path, distribution and latest stable version.
66
+ Release lookup has a timeout; offline version checks do not fail other diagnostics.
67
+ Use `doctor --json` for structured results. `upgrade` has no options and never
68
+ changes to a different installer, edits PATH or downgrades a newer installation.
69
+
70
+ On macOS/Linux, `upgrade` updates the current standalone, npm-global or Bun-global
71
+ installation. Standalone downloads are checksum-checked and tested before the
72
+ installed executable is replaced. npm/Bun keep their original global directory
73
+ and run with `--ignore-scripts`. Unknown installations, local links, source
74
+ checkouts and temporary runners are left unchanged.
75
+
76
+ A matching, running Device Relay service is paused for maintenance, restarted
77
+ and checked after installation. Credentials, device identity, MCP URL, workspace
78
+ and authorization expiry are preserved. Stopped or uninstalled services stay
79
+ that way. If requests or managed processes are still running, the upgrade exits
80
+ without stopping them. Finish those tasks and run the command in a local terminal;
81
+ an upgrade invoked inside the MCP service being upgraded is itself active work.
82
+ The connection may disconnect during the service restart. Installation, runtime
83
+ version and Relay connectivity are reported separately.
84
+
85
+ On Windows, `upgrade` prints a PowerShell command for the detected installation.
86
+ Run it in a local terminal after finishing Frely tasks, then run `frely doctor`.
87
+ The CLI does not launch an update helper or schedule a background replacement.
88
+
89
+ For an already-running macOS/Linux service with automatic refresh support,
90
+ updating the same installation with npm, Bun or the standalone installer also
91
+ loads the new version without manual service commands. The service checks local
92
+ installation files every five seconds, waits for two stable observations and
93
+ checks that the new CLI starts. Active calls, managed processes and buffered
94
+ responses defer the switch; calls remain available while work finishes.
95
+ It uses the existing service supervisor and does not download updates itself.
96
+ The MCP address, credentials, workspace and authorization expiry stay unchanged.
97
+
98
+ A service that is stopped or not installed is never started by this watcher.
99
+ Foreground sessions, source/link installs, changes of installation path and
100
+ Windows replacement remain outside automatic refresh. A short reconnection
101
+ window is possible; failed or outcome-unknown calls are not replayed.
102
+
103
+ Versions predating the upgrade/refresh support require a one-time transition;
104
+ see [service maintenance and legacy upgrades](docs/service-maintenance.md).
105
+ Manual pause/resume commands remain in maintenance help.
106
+
107
+ If more than one `frely` is installed, check the path shown by `doctor` before
108
+ upgrading. The CLI does not remove other installations or choose one by changing
109
+ shell configuration. See [the self-upgrade contract](docs/self-upgrade.md).
110
+
86
111
  ## Install from a local checkout
87
112
 
88
113
  To install the current source checkout with Bun:
@@ -124,12 +149,12 @@ Open the printed URL only in the browser signed in to the account you want to us
124
149
 
125
150
  `FRELY_NO_BROWSER=1` remains supported for scripts and existing setups. `frely login --help` lists the available options.
126
151
 
127
- ### Remote Agent source preview
152
+ ### Invoke a Frely-hosted Agent
128
153
 
129
- The following Agent commands are not included in the verified npm release
130
- `0.6.1`; installing that version does not enable this workflow.
154
+ The verified npm release `0.6.2` includes the Agent installation and invocation
155
+ commands below. Use a published Agent with account or restricted API-key access.
131
156
 
132
- To install a published Frely Agent as a local trigger Skill from a supporting build:
157
+ To install a published Frely Agent as a local trigger Skill:
133
158
 
134
159
  ```sh
135
160
  frely skill install https://app.frely.cloud/api/public/virtual-models/<distribution-id> \
@@ -158,17 +183,19 @@ printf '%s' 'Your complete task' | \
158
183
  frely agent invoke '<distribution-id>' --input-stdin --json
159
184
  ```
160
185
 
161
- ### Local MCP connection
186
+ ### Device MCP: control this computer from a remote client
187
+
188
+ Frely CLI turns the target computer into a personal device MCP service. ChatGPT in a browser, Claude Code on another computer, and other remote HTTP MCP clients with OAuth use the same endpoint. Install and run Frely CLI on the computer to control; the calling computer only needs its MCP client.
162
189
 
163
- For local workspace, file, shell, and process sharing, enable the separate local MCP runtime:
190
+ Enable file, shell and process access on the target computer:
164
191
 
165
192
  ```sh
166
- frely mcp setup --workspace /path/to/project
193
+ frely mcp --workspace /path/to/project
167
194
  ```
168
195
 
169
196
  `frely login` requests a restricted account session through browser device authorization. Basic sessions use private plaintext files, not the OS credential store. Legacy account cookies do not migrate to this store. Basic features and Network commands do not initialize MCP credentials.
170
197
 
171
- `frely mcp setup` initializes a separate secure MCP key, requests browser approval for this device and workspace, and installs the user-level Device Relay service. The default authorization is 90 days; `--days 1..180` selects a duration. `frely mcp renew --days 180` requires a new approval and rotates the MCP execution key. The MCP URL remains bound to the device. Login refresh, OAuth refresh, restart and repeated setup do not extend authorization.
198
+ `frely mcp` initializes a separate secure MCP key, requests browser approval for this device and workspace, and installs the user-level Device Relay service. The default authorization is 90 days; `--days 1..180` selects a duration. `frely mcp renew --days 180` requires a new approval and rotates the MCP execution key. The MCP URL remains bound to the device. Login refresh, OAuth refresh, restart and repeated setup do not extend authorization.
172
199
 
173
200
  Services use macOS LaunchAgents, Linux systemd user units, or Windows Task Scheduler for the logged-on user. Windows implementation needs native acceptance testing. Linux MCP secure storage can require Secret Service or an injected key; basic installation does not.
174
201
 
@@ -178,20 +205,28 @@ You can print the URL again with:
178
205
  frely mcp url
179
206
  ```
180
207
 
208
+ If MCP has not been configured, `frely mcp url` automatically runs the equivalent of `frely mcp setup --workspace ~`: it requests browser approval for your home directory (90 days by default), then installs the background service and prints the URL. Run `frely login` first. To select a project directory instead, run `frely mcp --workspace /path/to/project` before requesting the URL. Existing workspaces are preserved; expired authorization still requires `frely mcp renew`. Setup prompts go to stderr, so stdout remains a single URL or, with `--json`, a JSON object. No URL is printed if approval or service installation fails.
209
+
181
210
  Add the exact printed URL to a remote MCP client with OAuth support, choose
182
211
  OAuth and complete authorization. Keep the computer online. Ask the client to
183
212
  list the top-level names in your selected workspace, without writing files or
184
213
  running shell commands. A returned result that matches the folder verifies the
185
- first connection. `frely doctor` alone does not verify this path.
214
+ first connection. `frely doctor` shows whether the running relay has a recent heartbeat; it does not complete client OAuth authorization or execute a tool through that client.
186
215
 
187
- If a call fails, check `frely doctor --mcp` and `frely mcp service status`.
216
+ Use `frely doctor` for a quick overview. If a call fails, run `frely doctor -v` for detailed diagnostics.
188
217
 
189
- Or show ChatGPT-oriented connection details with:
218
+ For Claude Code on the calling computer, replace the placeholder with the URL printed on the target computer:
190
219
 
191
220
  ```sh
192
- frely mcp chatgpt
221
+ claude mcp add --transport http frely-computer "<MCP_URL>"
193
222
  ```
194
223
 
224
+ Open `/mcp` in Claude Code to complete OAuth authorization. Use a distinct server name per device. Ask the Agent to use Frely tools for remote work; its built-in shell still runs on the calling computer. Clients of the same device share its workspace and managed processes. Unknown-outcome writes must not be replayed.
225
+
226
+ Manage your devices in Frely → **Device MCP** (`/user/account/connections`). The page shows execution permission and connection history, not a live online indicator. Client OAuth authorization and device execution permission have separate lifecycles.
227
+
228
+ `frely mcp setup` and `frely mcp chatgpt` remain compatibility aliases. The latter prints the same connection details; it does not create a ChatGPT-specific service. A bare `frely mcp` uses the current directory.
229
+
195
230
  ## Local model sharing
196
231
 
197
232
  `frely-cli` can publish a loopback OpenAI-compatible runtime as a Frely personal Provider. Ollama is the default driver.
@@ -225,14 +260,18 @@ frely provider finalize <provider-id>
225
260
 
226
261
  `finalize` resumes CPA setup for a Provider left in a prepared state.
227
262
 
263
+ ## Frely Cloud
264
+
265
+ Use `frely cloud` to discover and call cloud business operations. See [Cloud commands and authorization](docs/cloud.md).
266
+
228
267
  ## Commands
229
268
 
230
269
  ```text
231
270
  frely login [--relay <https-url>] [--no-browser]
232
271
  frely logout
233
272
  frely whoami
234
- frely status [--json]
235
- frely doctor [--json]
273
+ frely doctor [-v] [--json]
274
+ frely upgrade
236
275
  frely skill install <manifest-url> [--host chatgpt|codex|claude-code|pi|generic] [--scope global|project] [--api-key-stdin] [--json]
237
276
  frely skill status <distribution-id> [--json]
238
277
  frely skill remove <distribution-id> [--json]
@@ -240,12 +279,11 @@ frely agent invoke <distribution-id> (--input <text>|--input-stdin) [--json]
240
279
  frely provider share [ollama|openai-compatible] [--url <loopback-v1-url>] [--models <a,b>] [--slot <slot-id>] [--name <name>]
241
280
  frely provider list [--json]
242
281
  frely provider finalize <provider-id>
243
- frely mcp setup [--workspace <path>]
282
+ frely mcp [--workspace <path>] [--days 1..180]
283
+ frely mcp renew [--days 1..180]
244
284
  frely mcp url [--json]
245
- frely mcp status [--json]
246
- frely mcp chatgpt
247
285
  frely mcp serve [--workspace <path>]
248
- frely mcp service status|start|stop|uninstall [--json]
286
+ frely mcp service start|stop|uninstall
249
287
  frely mcp revoke
250
288
  frely mcp stdio [--workspace <path>]
251
289
  ```
@@ -273,7 +311,7 @@ Enrollment returns:
273
311
  ```
274
312
 
275
313
  The public MCP URL is the canonical resource returned by Relay, for example
276
- `https://mcp.frely.cloud/mcp/<device-id>`. Use `frely mcp url`; do not derive the URL
314
+ `https://connect.frely.cloud/mcp/<device-id>`. Use `frely mcp url`; do not derive the URL
277
315
  from the control-plane hostname. The URL contains no bearer secret. Remote MCP clients use OAuth 2.1 Authorization Code + PKCE. OAuth access tokens bind to the exact MCP resource URL and do not extend the 90/180-day local execution authorization. Relay OAuth requirements are defined in [`docs/mcp-oauth-relay-contract.md`](docs/mcp-oauth-relay-contract.md).
278
316
 
279
317
  A Device Relay connection request uses the enrolled Ed25519 device key and returns a short-lived connection grant:
@@ -308,7 +346,31 @@ MCP secrets use AES-256-GCM files with a master key in macOS Keychain, Windows C
308
346
 
309
347
  The stable MCP URL contains no credential. Remote clients hold OAuth credentials; the CLI holds the MCP execution private key. The Relay checks OAuth resource binding and the current MCP execution lease. Expiry blocks requests and queued work and cancels managed execution. It does not undo writes or create a sandbox around arbitrary shell programs.
310
348
 
311
- `frely doctor` treats unconfigured MCP as optional. `frely doctor --mcp` checks the secure credential and server. `frely mcp status` displays local metadata; it is not server revocation proof.
349
+ `frely doctor` is the single diagnostic entry point. It reports the installation
350
+ path and distribution, checks the latest stable release with a deadline, and reads
351
+ local account, MCP authorization, service and connection state. It does not access
352
+ the MCP keyring in summary mode. An unavailable release source is informational;
353
+ unconfigured account/MCP features remain optional.
354
+
355
+ `frely doctor -v` (also `--verbose`) adds configuration paths, runtime details,
356
+ service state, authorization expiry, last received heartbeat and sanitized last
357
+ connection error. It also checks session storage, the account session and any
358
+ configured MCP secure key/server authorization. Add `--json` to either view for
359
+ structured output. Confirmed failures and unknown connectivity for a configured
360
+ relay return a nonzero exit code.
361
+
362
+ A running process is not proof of connectivity. Connected means the matching
363
+ account/device process has received a WebSocket heartbeat within 75 seconds.
364
+ The MCP authorization and workspace must also match the running relay. Missing,
365
+ stale or old-runtime observations are reported as unknown. Verbose diagnostics
366
+ include the running CLI version, entry path and start time. Diagnostics never
367
+ restart the service or open a second relay connection. Neither mode claims
368
+ to test client OAuth or an end-to-end tool call.
369
+
370
+ Legacy `frely status`, `frely mcp status`, `frely mcp service status` and
371
+ `frely doctor --mcp` remain compatible for existing scripts, but are no longer
372
+ listed as recommended diagnostic entry points. The legacy status output shapes
373
+ are unchanged; `doctor --mcp` requests verbose checks and requires MCP setup.
312
374
 
313
375
  Storage, migration, service injection, release requirements and threat boundaries: [`docs/credential-storage.md`](docs/credential-storage.md).
314
376
 
@@ -357,3 +419,8 @@ node dist/index.js network help --json
357
419
  ```
358
420
 
359
421
  CLI unit tests use a fake credential store and temporary home directories. They do not verify the user's OS credential-store permissions or a deployed Network.
422
+
423
+ The planned unified MCP entry will support wallet-funded capability use without
424
+ a Frely account. Current device MCP authorization and demo Network calls do not
425
+ implement that complete flow. See [Wallet access plan](docs/mcp-wallet-access-plan.md)
426
+ for the accepted product boundary and remaining work.
@@ -1,4 +1,16 @@
1
1
  export declare const COMMANDS: readonly [{
2
+ readonly id: "cloud";
3
+ readonly usage: "frely cloud list|describe|call|login|logout [--help]";
4
+ readonly auth: "cloud-oauth";
5
+ readonly effect: "subcommand-dependent";
6
+ readonly purpose: "Discover and call Frely cloud business operations at app.frely.cloud/mcp. Use describe before call; parameters and results are JSON.";
7
+ }, {
8
+ readonly id: "upgrade";
9
+ readonly usage: "frely upgrade";
10
+ readonly auth: "none";
11
+ readonly effect: "local-write";
12
+ readonly purpose: "Upgrade the current installation to the latest stable release. Windows prints a manual command; doctor checks versions.";
13
+ }, {
2
14
  readonly id: "help";
3
15
  readonly usage: "frely help --agent --json";
4
16
  readonly auth: "none";
@@ -52,18 +64,12 @@ export declare const COMMANDS: readonly [{
52
64
  readonly auth: "account";
53
65
  readonly effect: "read";
54
66
  readonly purpose: "Read the signed-in account.";
55
- }, {
56
- readonly id: "status";
57
- readonly usage: "frely status [--json]";
58
- readonly auth: "none";
59
- readonly effect: "read";
60
- readonly purpose: "Inspect CLI and authentication status.";
61
67
  }, {
62
68
  readonly id: "doctor";
63
- readonly usage: "frely doctor [--mcp] [--json]";
69
+ readonly usage: "frely doctor [-v] [--json]";
64
70
  readonly auth: "optional-account";
65
71
  readonly effect: "diagnostic";
66
- readonly purpose: "Check runtime and credential-store availability.";
72
+ readonly purpose: "Show installation, available upgrades, account, MCP and connection status; -v runs detailed diagnostics.";
67
73
  }, {
68
74
  readonly id: "provider.share";
69
75
  readonly usage: "frely provider share [ollama|openai-compatible] [--url <loopback-v1-url>] [--models <a,b>] [--slot <slot-id>] [--name <name>]";
@@ -84,34 +90,22 @@ export declare const COMMANDS: readonly [{
84
90
  readonly purpose: "Finish a prepared local Provider.";
85
91
  }, {
86
92
  readonly id: "mcp.setup";
87
- readonly usage: "frely mcp [setup] [--workspace <path>] [--days 1..180]";
93
+ readonly usage: "frely mcp [--workspace <path>] [--days 1..180]";
88
94
  readonly auth: "account-and-browser";
89
95
  readonly effect: "authorization";
90
- readonly purpose: "Authorize local tool execution and install its background service.";
96
+ readonly purpose: "Enable this computer as a device MCP service for remote HTTP MCP clients with OAuth; install its background service.";
91
97
  }, {
92
98
  readonly id: "mcp.renew";
93
99
  readonly usage: "frely mcp renew [--days 1..180]";
94
100
  readonly auth: "account-and-browser";
95
101
  readonly effect: "authorization";
96
- readonly purpose: "Renew local MCP execution authorization.";
102
+ readonly purpose: "Renew this device's execution authorization without changing its MCP URL.";
97
103
  }, {
98
104
  readonly id: "mcp.url";
99
105
  readonly usage: "frely mcp url [--json]";
100
- readonly auth: "mcp";
101
- readonly effect: "read";
102
- readonly purpose: "Read this device's MCP URL.";
103
- }, {
104
- readonly id: "mcp.status";
105
- readonly usage: "frely mcp status [--json]";
106
- readonly auth: "none";
107
- readonly effect: "read";
108
- readonly purpose: "Inspect local MCP authorization metadata.";
109
- }, {
110
- readonly id: "mcp.chatgpt";
111
- readonly usage: "frely mcp chatgpt";
112
- readonly auth: "mcp";
113
- readonly effect: "read";
114
- readonly purpose: "Read MCP connection details for ChatGPT.";
106
+ readonly auth: "account-and-mcp-or-browser";
107
+ readonly effect: "authorization-if-unconfigured";
108
+ readonly purpose: "Read this device's stable MCP URL. If unconfigured, set up the user home directory with browser approval and install the background service. --json includes HTTP transport and OAuth connection details; setup prompts go to stderr.";
115
109
  }, {
116
110
  readonly id: "mcp.serve";
117
111
  readonly usage: "frely mcp serve [--workspace <path>]";
@@ -120,16 +114,16 @@ export declare const COMMANDS: readonly [{
120
114
  readonly purpose: "Serve authorized local workspace tools.";
121
115
  }, {
122
116
  readonly id: "mcp.service";
123
- readonly usage: "frely mcp service status|start|stop|uninstall [--json]";
117
+ readonly usage: "frely mcp service start|stop|uninstall";
124
118
  readonly auth: "none";
125
119
  readonly effect: "local-service";
126
- readonly purpose: "Manage the local MCP background service.";
120
+ readonly purpose: "Pause, resume or remove the local MCP background service for maintenance. Supported upgrades restore running services without these commands.";
127
121
  }, {
128
122
  readonly id: "mcp.revoke";
129
123
  readonly usage: "frely mcp revoke";
130
124
  readonly auth: "account";
131
125
  readonly effect: "remote-write";
132
- readonly purpose: "Revoke local MCP execution authorization.";
126
+ readonly purpose: "Revoke device MCP execution authorization for every connected client.";
133
127
  }, {
134
128
  readonly id: "mcp.stdio";
135
129
  readonly usage: "frely mcp stdio [--workspace <path>]";
@@ -150,6 +144,18 @@ export declare function agentHelp(): {
150
144
  skill_update_required: boolean;
151
145
  instructions: string[];
152
146
  commands: readonly [{
147
+ readonly id: "cloud";
148
+ readonly usage: "frely cloud list|describe|call|login|logout [--help]";
149
+ readonly auth: "cloud-oauth";
150
+ readonly effect: "subcommand-dependent";
151
+ readonly purpose: "Discover and call Frely cloud business operations at app.frely.cloud/mcp. Use describe before call; parameters and results are JSON.";
152
+ }, {
153
+ readonly id: "upgrade";
154
+ readonly usage: "frely upgrade";
155
+ readonly auth: "none";
156
+ readonly effect: "local-write";
157
+ readonly purpose: "Upgrade the current installation to the latest stable release. Windows prints a manual command; doctor checks versions.";
158
+ }, {
153
159
  readonly id: "help";
154
160
  readonly usage: "frely help --agent --json";
155
161
  readonly auth: "none";
@@ -203,18 +209,12 @@ export declare function agentHelp(): {
203
209
  readonly auth: "account";
204
210
  readonly effect: "read";
205
211
  readonly purpose: "Read the signed-in account.";
206
- }, {
207
- readonly id: "status";
208
- readonly usage: "frely status [--json]";
209
- readonly auth: "none";
210
- readonly effect: "read";
211
- readonly purpose: "Inspect CLI and authentication status.";
212
212
  }, {
213
213
  readonly id: "doctor";
214
- readonly usage: "frely doctor [--mcp] [--json]";
214
+ readonly usage: "frely doctor [-v] [--json]";
215
215
  readonly auth: "optional-account";
216
216
  readonly effect: "diagnostic";
217
- readonly purpose: "Check runtime and credential-store availability.";
217
+ readonly purpose: "Show installation, available upgrades, account, MCP and connection status; -v runs detailed diagnostics.";
218
218
  }, {
219
219
  readonly id: "provider.share";
220
220
  readonly usage: "frely provider share [ollama|openai-compatible] [--url <loopback-v1-url>] [--models <a,b>] [--slot <slot-id>] [--name <name>]";
@@ -235,34 +235,22 @@ export declare function agentHelp(): {
235
235
  readonly purpose: "Finish a prepared local Provider.";
236
236
  }, {
237
237
  readonly id: "mcp.setup";
238
- readonly usage: "frely mcp [setup] [--workspace <path>] [--days 1..180]";
238
+ readonly usage: "frely mcp [--workspace <path>] [--days 1..180]";
239
239
  readonly auth: "account-and-browser";
240
240
  readonly effect: "authorization";
241
- readonly purpose: "Authorize local tool execution and install its background service.";
241
+ readonly purpose: "Enable this computer as a device MCP service for remote HTTP MCP clients with OAuth; install its background service.";
242
242
  }, {
243
243
  readonly id: "mcp.renew";
244
244
  readonly usage: "frely mcp renew [--days 1..180]";
245
245
  readonly auth: "account-and-browser";
246
246
  readonly effect: "authorization";
247
- readonly purpose: "Renew local MCP execution authorization.";
247
+ readonly purpose: "Renew this device's execution authorization without changing its MCP URL.";
248
248
  }, {
249
249
  readonly id: "mcp.url";
250
250
  readonly usage: "frely mcp url [--json]";
251
- readonly auth: "mcp";
252
- readonly effect: "read";
253
- readonly purpose: "Read this device's MCP URL.";
254
- }, {
255
- readonly id: "mcp.status";
256
- readonly usage: "frely mcp status [--json]";
257
- readonly auth: "none";
258
- readonly effect: "read";
259
- readonly purpose: "Inspect local MCP authorization metadata.";
260
- }, {
261
- readonly id: "mcp.chatgpt";
262
- readonly usage: "frely mcp chatgpt";
263
- readonly auth: "mcp";
264
- readonly effect: "read";
265
- readonly purpose: "Read MCP connection details for ChatGPT.";
251
+ readonly auth: "account-and-mcp-or-browser";
252
+ readonly effect: "authorization-if-unconfigured";
253
+ readonly purpose: "Read this device's stable MCP URL. If unconfigured, set up the user home directory with browser approval and install the background service. --json includes HTTP transport and OAuth connection details; setup prompts go to stderr.";
266
254
  }, {
267
255
  readonly id: "mcp.serve";
268
256
  readonly usage: "frely mcp serve [--workspace <path>]";
@@ -271,16 +259,16 @@ export declare function agentHelp(): {
271
259
  readonly purpose: "Serve authorized local workspace tools.";
272
260
  }, {
273
261
  readonly id: "mcp.service";
274
- readonly usage: "frely mcp service status|start|stop|uninstall [--json]";
262
+ readonly usage: "frely mcp service start|stop|uninstall";
275
263
  readonly auth: "none";
276
264
  readonly effect: "local-service";
277
- readonly purpose: "Manage the local MCP background service.";
265
+ readonly purpose: "Pause, resume or remove the local MCP background service for maintenance. Supported upgrades restore running services without these commands.";
278
266
  }, {
279
267
  readonly id: "mcp.revoke";
280
268
  readonly usage: "frely mcp revoke";
281
269
  readonly auth: "account";
282
270
  readonly effect: "remote-write";
283
- readonly purpose: "Revoke local MCP execution authorization.";
271
+ readonly purpose: "Revoke device MCP execution authorization for every connected client.";
284
272
  }, {
285
273
  readonly id: "mcp.stdio";
286
274
  readonly usage: "frely mcp stdio [--workspace <path>]";
@@ -296,3 +284,4 @@ export declare function agentHelp(): {
296
284
  }];
297
285
  };
298
286
  export declare function cliUsage(): string;
287
+ export declare function mcpUsage(): string;
@@ -1,5 +1,7 @@
1
1
  import { VERSION } from "./version.js";
2
2
  export const COMMANDS = [
3
+ { id: "cloud", usage: "frely cloud list|describe|call|login|logout [--help]", auth: "cloud-oauth", effect: "subcommand-dependent", purpose: "Discover and call Frely cloud business operations at app.frely.cloud/mcp. Use describe before call; parameters and results are JSON." },
4
+ { id: "upgrade", usage: "frely upgrade", auth: "none", effect: "local-write", purpose: "Upgrade the current installation to the latest stable release. Windows prints a manual command; doctor checks versions." },
3
5
  { id: "help", usage: "frely help --agent --json", auth: "none", effect: "read", purpose: "Read this installed CLI's current Agent instructions." },
4
6
  { id: "key.budget", usage: "frely key budget (--api-key-stdin [--relay <url>]|--distribution <distribution-id>) [--json]", auth: "api-key", effect: "read", purpose: "Read the Key's self usage and each funding source's limits without account login." },
5
7
  { id: "skill.install", usage: "frely skill install <manifest-url> [--host chatgpt|codex|claude-code|pi|generic] [--scope global|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." },
@@ -9,19 +11,16 @@ export const COMMANDS = [
9
11
  { id: "login", usage: "frely login [--relay <url>] [--no-browser]", auth: "browser", effect: "authorization", purpose: "Authorize the CLI for the user's Frely account." },
10
12
  { id: "logout", usage: "frely logout", auth: "none", effect: "local-write", purpose: "Remove login and stop the MCP background service." },
11
13
  { id: "whoami", usage: "frely whoami", auth: "account", effect: "read", purpose: "Read the signed-in account." },
12
- { id: "status", usage: "frely status [--json]", auth: "none", effect: "read", purpose: "Inspect CLI and authentication status." },
13
- { id: "doctor", usage: "frely doctor [--mcp] [--json]", auth: "optional-account", effect: "diagnostic", purpose: "Check runtime and credential-store availability." },
14
+ { id: "doctor", usage: "frely doctor [-v] [--json]", auth: "optional-account", effect: "diagnostic", purpose: "Show installation, available upgrades, account, MCP and connection status; -v runs detailed diagnostics." },
14
15
  { 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." },
15
16
  { id: "provider.list", usage: "frely provider list [--json]", auth: "account", effect: "read", purpose: "List configured local Providers." },
16
17
  { id: "provider.finalize", usage: "frely provider finalize <provider-id>", auth: "account", effect: "remote-write", purpose: "Finish a prepared local Provider." },
17
- { id: "mcp.setup", usage: "frely mcp [setup] [--workspace <path>] [--days 1..180]", auth: "account-and-browser", effect: "authorization", purpose: "Authorize local tool execution and install its background service." },
18
- { id: "mcp.renew", usage: "frely mcp renew [--days 1..180]", auth: "account-and-browser", effect: "authorization", purpose: "Renew local MCP execution authorization." },
19
- { id: "mcp.url", usage: "frely mcp url [--json]", auth: "mcp", effect: "read", purpose: "Read this device's MCP URL." },
20
- { id: "mcp.status", usage: "frely mcp status [--json]", auth: "none", effect: "read", purpose: "Inspect local MCP authorization metadata." },
21
- { id: "mcp.chatgpt", usage: "frely mcp chatgpt", auth: "mcp", effect: "read", purpose: "Read MCP connection details for ChatGPT." },
18
+ { id: "mcp.setup", usage: "frely mcp [--workspace <path>] [--days 1..180]", auth: "account-and-browser", effect: "authorization", purpose: "Enable this computer as a device MCP service for remote HTTP MCP clients with OAuth; install its background service." },
19
+ { id: "mcp.renew", usage: "frely mcp renew [--days 1..180]", auth: "account-and-browser", effect: "authorization", purpose: "Renew this device's execution authorization without changing its MCP URL." },
20
+ { id: "mcp.url", usage: "frely mcp url [--json]", auth: "account-and-mcp-or-browser", effect: "authorization-if-unconfigured", purpose: "Read this device's stable MCP URL. If unconfigured, set up the user home directory with browser approval and install the background service. --json includes HTTP transport and OAuth connection details; setup prompts go to stderr." },
22
21
  { id: "mcp.serve", usage: "frely mcp serve [--workspace <path>]", auth: "account-and-mcp", effect: "local-execution", purpose: "Serve authorized local workspace tools." },
23
- { id: "mcp.service", usage: "frely mcp service status|start|stop|uninstall [--json]", auth: "none", effect: "local-service", purpose: "Manage the local MCP background service." },
24
- { id: "mcp.revoke", usage: "frely mcp revoke", auth: "account", effect: "remote-write", purpose: "Revoke local MCP execution authorization." },
22
+ { id: "mcp.service", usage: "frely mcp service start|stop|uninstall", auth: "none", effect: "local-service", purpose: "Pause, resume or remove the local MCP background service for maintenance. Supported upgrades restore running services without these commands." },
23
+ { id: "mcp.revoke", usage: "frely mcp revoke", auth: "account", effect: "remote-write", purpose: "Revoke device MCP execution authorization for every connected client." },
25
24
  { id: "mcp.stdio", usage: "frely mcp stdio [--workspace <path>]", auth: "mcp", effect: "local-execution", purpose: "Serve authorized local tools over stdio." },
26
25
  { id: "network", usage: "frely network setup|status|find|use|logout [--json]", auth: "network", effect: "subcommand-dependent", purpose: "Access Frely Network using its separate setup and credentials." },
27
26
  ];
@@ -40,11 +39,26 @@ export function agentHelp() {
40
39
  "A Key amount limit is a spending cap. It reserves no funds and remains subject to its owner's available Plan allowance and Credit.",
41
40
  "Budget sources are independent constraints. Do not sum their remaining amounts or describe them as a Key balance.",
42
41
  "Installing a remote Agent Skill does not replace the host's current model provider.",
42
+ "Device MCP exposes this computer to remote HTTP MCP clients with OAuth. Commands execute on the device, not on the calling computer.",
43
+ "Use frely mcp to enable device MCP, frely mcp url for its address, and frely doctor [-v] for status and diagnostics.",
44
+ "If MCP is unconfigured, frely mcp url sets up the user home directory with browser approval. Existing workspaces and authorization expiry stay unchanged.",
45
+ "Remote clients of one device share its workspace and managed processes. Shell uses the device OS account; it is not a workspace sandbox.",
43
46
  ],
44
47
  commands: COMMANDS,
45
48
  };
46
49
  }
47
50
  export function cliUsage() {
48
- return "Usage:\n" + COMMANDS.map((command) => " " + command.usage + "\n").join("");
51
+ return "Usage:\n" + COMMANDS.filter((command) => command.id !== "mcp.service").map((command) => " " + command.usage + "\n").join("") + "\nMaintenance (not required for supported upgrades):\n frely mcp service start|stop|uninstall\n";
52
+ }
53
+ export function mcpUsage() {
54
+ return "Device MCP — use this computer from a remote MCP client.\n\nUsage:\n"
55
+ + COMMANDS.filter((command) => command.id.startsWith("mcp.") && command.id !== "mcp.service").map((command) => " " + command.usage + "\n").join("")
56
+ + "\nMaintenance (not required for supported upgrades):\n frely mcp service start|stop|uninstall\n"
57
+ + "\nStatus and diagnostics: frely doctor [-v] [--json]\n\n"
58
+ + "Run setup on the computer to control. Add its MCP URL to ChatGPT, Claude Code on another computer, or another HTTP MCP client, then authorize with OAuth.\n"
59
+ + "If MCP is unconfigured, frely mcp url runs setup for your home directory (~), waits for browser approval, then installs the background service. Setup prompts go to stderr; stdout contains only the URL or JSON.\n"
60
+ + "Existing workspaces are preserved. Expired authorization requires frely mcp renew.\n"
61
+ + "Clients share the device workspace and managed processes. Shell runs under the device OS account.\n"
62
+ + "Compatibility: frely mcp setup and frely mcp chatgpt remain available.\n";
49
63
  }
50
64
  //# 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":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,sDAAsD,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,sBAAsB,EAAE,OAAO,EAAE,sIAAsI,EAAE;IACpR,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,yHAAyH,EAAE;IAClN,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,2BAA2B,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,uDAAuD,EAAE;IAClJ,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,8FAA8F,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,mFAAmF,EAAE;IAC1P,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,sIAAsI,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,iGAAiG,EAAE;IACnU,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,+CAA+C,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gCAAgC,EAAE;IACvJ,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,+CAA+C,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,qDAAqD,EAAE;IACnL,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,8EAA8E,EAAE,IAAI,EAAE,8BAA8B,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,+GAA+G,EAAE;IACpS,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,4CAA4C,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,iDAAiD,EAAE;IAC1K,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,mDAAmD,EAAE;IAC1I,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,6BAA6B,EAAE;IAChH,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,4BAA4B,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,0GAA0G,EAAE;IAC1N,EAAE,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,+HAA+H,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,iCAAiC,EAAE;IACrP,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,8BAA8B,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,kCAAkC,EAAE;IAC5I,EAAE,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,uCAAuC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,mCAAmC,EAAE;IAClK,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,gDAAgD,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,sHAAsH,EAAE;IACnQ,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,iCAAiC,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,2EAA2E,EAAE;IACzM,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,wBAAwB,EAAE,IAAI,EAAE,4BAA4B,EAAE,MAAM,EAAE,+BAA+B,EAAE,OAAO,EAAE,uOAAuO,EAAE;IACjX,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,sCAAsC,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,yCAAyC,EAAE;IAC1K,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,wCAAwC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,+IAA+I,EAAE;IACvQ,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,uEAAuE,EAAE;IAC1K,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,sCAAsC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,0CAA0C,EAAE;IAC/J,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,qDAAqD,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,sBAAsB,EAAE,OAAO,EAAE,gEAAgE,EAAE;CACnM,CAAC;AAEX,MAAM,UAAU,SAAS;IACvB,OAAO;QACL,aAAa,EAAE,yBAAyB;QACxC,UAAU,EAAE,OAAO;QACnB,gBAAgB,EAAE,CAAC;QACnB,qBAAqB,EAAE,KAAK;QAC5B,YAAY,EAAE;YACZ,iFAAiF;YACjF,wHAAwH;YACxH,gGAAgG;YAChG,gHAAgH;YAChH,8GAA8G;YAC9G,oIAAoI;YACpI,mHAAmH;YACnH,qFAAqF;YACrF,sIAAsI;YACtI,sHAAsH;YACtH,2JAA2J;YAC3J,0IAA0I;SAC3I;QACD,QAAQ,EAAE,QAAQ;KACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,kGAAkG,CAAC;AAC7O,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO,sEAAsE;UACzE,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,EAAE,KAAK,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;UAClJ,kGAAkG;UAClG,0DAA0D;UAC1D,6JAA6J;UAC7J,qNAAqN;UACrN,sFAAsF;UACtF,qGAAqG;UACrG,0EAA0E,CAAC;AACjF,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare const CLOUD_USAGE = "Frely Cloud \u2014 call your Frely application.\n frely cloud list [--group <name>]\n frely cloud describe <tool>\n frely cloud call <tool> [--json '<object>' | --input <file>]\n frely cloud login\n frely cloud logout\n\nResults are JSON. Cloud authorization is separate from device MCP.\nCalls may create resources or incur usage. Failed writes are never replayed automatically.\n";
2
+ export declare function logoutCloud(): Promise<void>;
3
+ export declare function runCloud(args: readonly string[]): Promise<{
4
+ value?: unknown;
5
+ text?: string;
6
+ failed?: boolean;
7
+ }>;