frely-cli 0.19.0 → 0.19.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,23 +2,35 @@
2
2
 
3
3
  [English](README.md) · [简体中文](README.zh-CN.md)
4
4
 
5
- `frely-cli` turns the computer you choose into a secure remote device that AI agents can operate. Browser agents (ChatGPT, Codex) and command-line agents (Claude Code, pi) connect through Model Context Protocol (MCP) and access the files, commands and processes inside the workspace you authorize — from anywhere.
5
+ `frely-cli` turns a computer you choose into a device that AI agents can work on from anywhere. ChatGPT, Claude, Codex and other MCP clients connect through **FrelyMCP** and use the files, shell commands and processes in the folders you allow. The computer connects out to Frely, so you open no ports.
6
6
 
7
- Two optional features, each with its own setup and authorization:
7
+ It is also the command line for your Frely account:
8
8
 
9
- - **Remote Agent Skill** — install a published Frely Agent as a local trigger Skill and invoke it from automation.
10
- - **Local model sharing** — publish a local Ollama / OpenAI-compatible runtime as your personal Frely Provider.
9
+ - **Device MCP**: let remote AI clients work on this computer.
10
+ - **Local MCP servers**: pass MCP servers that only run on this computer (for example on `127.0.0.1`) through to remote clients.
11
+ - **Agents, Prompts and Skills**: install a published Frely Agent as a local Skill, or install Prompts and Skills you bought.
12
+ - **Local model sharing**: publish a local Ollama or OpenAI-compatible runtime as your own Frely Provider.
11
13
 
12
- This repository contains the open-source Frely client and local MCP runtime. The hosted Frely Relay control plane remains a separate service dependency. There is no separate `friday-local` project; local MCP execution belongs to `frely-cli`.
14
+ ## Install
13
15
 
14
- ```text
15
- Remote Agent Skill: install -> frely login -> frely agent install -> frely agent run
16
- Device MCP: install on target computer -> frely mcp start (signs in first) -> add MCP URL to client -> OAuth authorize
16
+ ### A server, with a Frely account (no browser)
17
+
18
+ Get a one-time install command and paste it on the server. It installs `frely`, signs in to your account, enables Device MCP and starts the background service. Nothing opens in a browser and nothing asks a question.
19
+
20
+ Get the command in either place:
21
+
22
+ - On the Frely website: **My Devices → Add a computer → Create install command**.
23
+ - In ChatGPT or Claude connected to FrelyMCP: ask it to add a computer. `list_devices` returns the command.
24
+
25
+ It looks like this:
26
+
27
+ ```sh
28
+ curl -fsSL https://frely.cloud/start.sh | FRELY_INSTALL_TOKEN=fit_... sh
17
29
  ```
18
30
 
19
- ## Install
31
+ The token works once and expires after 15 minutes. It is not saved on the computer. If the computer already has Frely installed or signed in, the command updates it and switches the sign-in to your account. On Linux, run `sudo loginctl enable-linger $USER` so the service stays online after you log out of SSH.
20
32
 
21
- Install and continue straight into Device MCP setup: `frely mcp start` signs in through the browser when needed (new accounts can register on the same page), asks for device approval and prints the MCP URL. The workspace defaults to the home directory (credential and start-up files stay protected); `FRELY_WORKSPACE` picks another.
33
+ ### A computer with a browser
22
34
 
23
35
  ```sh
24
36
  # macOS / Linux
@@ -30,109 +42,88 @@ curl -fsSL https://frely.cloud/start.sh | sh
30
42
  curl.exe -fsSLo "$env:TEMP\frely-start.ps1" https://frely.cloud/start.ps1; powershell -NoProfile -ExecutionPolicy Bypass -File "$env:TEMP\frely-start.ps1"
31
43
  ```
32
44
 
33
- For a server without a browser, ask Claude (FrelyMCP `list_devices`) or the Frely console for a one-line install command. It carries `FRELY_INSTALL_TOKEN`, a one-time token valid for 15 minutes, and signs this computer in to your account, enables Device MCP and starts the background service with no browser and no prompts. The token is not stored; if the computer is already signed in, the token is left unused. On Linux the service needs a systemd user manager and lingering (`sudo loginctl enable-linger $USER`) to stay online after you log out.
45
+ The script installs the latest `frely`, then runs `frely mcp start`: it opens the browser to sign in (new accounts can register on the same page), asks you to approve this device and prints your MCP URL. Run it again any time to update; it restarts the background service on the new version.
34
46
 
35
- `install.sh` / `install.ps1` (same URLs) only install, for agents, scripts and Skills that need the CLI. The installers select the platform executable, verify its SHA-256 checksum and install into the user directory without Node.js, npm or a keyring.
47
+ The workspace is your home directory by default (credential and shell start-up files stay protected). Set `FRELY_WORKSPACE=/path` to share another folder, and `FRELY_INSTALL_DIR` to install somewhere other than `~/.local/bin`.
36
48
 
37
- Downloads try GitHub Releases first. When GitHub is unreachable, stalls (under 50 KB/s for 20 s) or fails verification, they fall back to the same build published as the npm package `@frelyhq/cli-<platform>`, downloaded from npmmirror (reachable from mainland China) and then npmjs. Each source is verified against its own `.sha256`. `FRELY_INSTALL_SOURCES` narrows or reorders the list (`github npmmirror npmjs`). `frely update` uses the same chain.
49
+ ### Install only
38
50
 
39
- Or with npm (Node.js 22 or newer required):
51
+ `install.sh` and `install.ps1` (same URLs, `https://frely.cloud/install.sh`) only install the program, for scripts, Skills and agents that need the CLI. Or use npm (Node.js 22 or newer):
40
52
 
41
53
  ```sh
42
54
  npm install --global --ignore-scripts frely-cli@latest
43
55
  ```
44
56
 
45
- To install a specific release, replace `latest` with the version. Tagged releases publish the npm package and standalone GitHub Release assets after cross-platform verification.
57
+ The installers pick the right executable for your platform, check its SHA-256 and install into your user directory without Node.js. They download from GitHub Releases first and fall back to npmmirror and npmjs (`@frelyhq/cli-<platform>`) when GitHub is slow or unreachable. `FRELY_INSTALL_SOURCES` changes the order.
46
58
 
47
- ### Install from a local checkout
59
+ ## Common commands
48
60
 
49
- To install the current source checkout with Bun:
61
+ | Command | What it does |
62
+ | --- | --- |
63
+ | `frely mcp start` | Sign in if needed, enable Device MCP, start the service and print the MCP URL. Safe to re-run. |
64
+ | `frely mcp status` | Show the MCP URL, workspace, authorization expiry and service state. |
65
+ | `frely mcp workspace add <path>` | Share another folder. `frely mcp workspace list` shows them all. |
66
+ | `frely mcp stop` / `frely mcp start` | Pause or resume the background service. |
67
+ | `frely mcp remove` | Revoke access for every client and uninstall the service. |
68
+ | `frely doctor` | Check sign-in, installation, service and connection. `-v` for details. |
69
+ | `frely update` | Update to the latest version in place. |
70
+ | `frely login` / `frely logout` | Sign in or out of your Frely account. |
71
+ | `frely uninstall` | Remove Frely from this computer (lists everything first). |
50
72
 
51
- ```sh
52
- cd /path/to/frely-cli
53
- bun install
54
- bun run build
55
- bun install --global "$PWD"
56
- ```
73
+ Run any command group without a subcommand (for example `frely mcp` or `frely agent`) to see what it offers.
57
74
 
58
- Use the absolute `$PWD` path in the global install command. If `frely` is not found, add the Bun global bin to your `PATH`:
59
-
60
- ```sh
61
- export PATH="$(bun pm bin -g):$PATH"
62
- ```
75
+ ## Use frely-cli with FrelyMCP
63
76
 
64
- This source revision has no keytar dependency or native npm build step. Dependency installation supports `npm ci --ignore-scripts` and `bun install --ignore-scripts`. The repository uses npm as the canonical package manager for CI and releases and commits `package-lock.json`; Bun is for local development — keep the lockfiles synchronized when changing dependencies.
77
+ FrelyMCP is one MCP address for your whole account: `https://mcp.frely.cloud/mcp`. Every computer where you ran `frely mcp start` appears behind it. `frely-cli` runs the tools on each computer; the AI client only needs the URL.
65
78
 
66
- ## First use
79
+ ### Connect a client
67
80
 
68
- Sign in once with the Frely account the consumer uses:
81
+ 1. On the computer to control, run `frely mcp start` (the install scripts above already do this). It prints the MCP URL.
82
+ 2. Add the URL to your client as a remote MCP server with OAuth:
83
+ - ChatGPT or Claude: add a custom connector with the URL.
84
+ - Claude Code on another computer: `claude mcp add --transport http frely "https://mcp.frely.cloud/mcp"`, then open `/mcp` to authorize.
85
+ 3. Sign in to Frely and approve the client.
69
86
 
70
- ```sh
71
- frely login
72
- ```
87
+ To check the connection, ask the client to list the top-level names in your workspace. A result that matches the folder means it works.
73
88
 
74
- The browser opens automatically. To choose another browser or Frely account, run `frely login --no-browser` and open the printed URL only in the browser signed in to the account you want to use. Visiting a device authorization URL while signed in can bind that code to the account before you click Approve — if the default browser already opened it with another account, press Ctrl+C, run `frely login --no-browser` again, and use the **new URL**. Signing in again or reusing the old URL does not switch its account. Keep `--relay <url>` when using a custom Relay. `FRELY_NO_BROWSER=1` remains supported.
89
+ ### What the AI can do
75
90
 
76
- ### Device MCP: control this computer from a remote client
91
+ - `list_devices` shows your computers, whether each is online and its workspaces. If you have none, it gives the install command above.
92
+ - Device tools take a `device` argument and run on that computer:
93
+ - `read`: list, read, search and find files in the workspace.
94
+ - `edit_file`: write whole files or edit lines, atomically.
95
+ - `process`: run shell commands, or start and manage long-running processes.
96
+ - `web_fetch`: read public web pages.
97
+ - `local_mcp_list` and `local_mcp_call` reach MCP servers on that computer that you turned on (see below).
98
+ - `frely_list` and `frely_call` manage your Frely account (API keys, credits, plans, orders). `frely api list|describe|call` is the same set from the terminal.
77
99
 
78
- On the computer to control, enable file, shell and process access:
79
-
80
- ```sh
81
- frely mcp url --workspace /path/to/project
82
- ```
83
-
84
- `frely login` requests a restricted account session through browser device authorization. The first `frely mcp url` initializes a separate secure MCP key, requests browser approval for this device and workspace (the home directory when `--workspace` is omitted), installs the user-level Device Relay service (macOS LaunchAgent, Linux systemd user unit, or Windows Task Scheduler), and prints the MCP URL. The default authorization is 90 days; `--days 1..365` selects a duration.
85
-
86
- `frely mcp url` is idempotent: once enabled it only prints the same URL, so run it again whenever you need the address. 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. To expose more directories, use `frely mcp workspace add <path>`; `frely mcp workspace list` lists them. A command group run without a subcommand (for example `frely mcp workspace` or `frely agent`) prints the subcommands under it.
100
+ The AI client's own shell still runs where the client runs; ask it to use the Frely tools for work on your computer. All clients share each computer's workspaces and running processes.
87
101
 
88
102
  ### Local MCP servers on this computer
89
103
 
90
- Remote MCP clients can also reach MCP servers that only run on this computer, such as a browser-extension server listening on `127.0.0.1`. Servers listening only on loopback are found automatically (`frely mcp local list`); add others with `frely mcp local add <name> --url http://127.0.0.1:<port>/mcp` or `frely mcp local add <name> [--env KEY=VALUE] -- <command> [args...]` (stdio). Every server stays off for remote clients until you turn it on, one by one, on the Frely connections page. Enabled servers are then reachable through two device tools, `local_mcp_list` and `local_mcp_call`, and run outside the command sandbox with your user account. Only loopback addresses are ever contacted; headers and environment values stay on this computer.
91
-
92
- Add the exact printed URL to a remote MCP client with OAuth support, choose OAuth and complete authorization. Keep the computer online. Verify the first connection by asking the client to list the top-level names in your selected workspace, without writing files or running shell commands — a returned result that matches the folder confirms connectivity.
93
-
94
- For Claude Code on the calling computer:
104
+ Servers that listen only on loopback are found automatically (`frely mcp local list`). Add others with:
95
105
 
96
106
  ```sh
97
- claude mcp add --transport http frely "<MCP_URL>"
107
+ frely mcp local add <name> --url http://127.0.0.1:<port>/mcp
108
+ frely mcp local add <name> [--env KEY=VALUE] -- <command> [args...] # stdio
98
109
  ```
99
110
 
100
- Open `/mcp` in Claude Code to complete OAuth authorization. One URL serves every device on your account with an active MCP permission: `list_devices` shows your devices and their workspaces, and every other tool takes a `device` argument (device name or id). Ask the Agent to use Frely tools for remote work; its built-in shell still runs on the calling computer. Clients share each device's workspaces and managed processes.
101
-
102
- Authorization lifecycle: when the authorization has expired, `frely mcp url` asks for a new approval and rotates the MCP execution key; `frely mcp url --days 365` renews early. The MCP URL is the same for all your devices and does not change on renewal. Login refresh, OAuth refresh and restart do not extend authorization. `frely mcp stop|start` pauses or resumes the background service; `frely mcp remove` revokes access for every client and uninstalls the service (it keeps running provider-only when local Providers exist). Manage your devices in Frely → **Device MCP** (`/user/device-mcp`).
103
-
104
- ### Invoke a Frely-hosted Agent
105
-
106
- Use a published Agent with account or restricted API-key access. To install it as a local trigger Skill (a full manifest URL is also accepted in place of the id):
107
-
108
- ```sh
109
- frely agent install <distribution-id> \
110
- --host pi \
111
- --scope global \
112
- --json
113
- ```
111
+ Each server stays hidden from remote clients until you turn it on, one by one, on the Frely connections page. Enabled servers run outside the command sandbox with your user account. Only loopback addresses are contacted, and headers and environment values never leave the computer.
114
112
 
115
- A Creator can also provide an existing model-scoped, quota-limited API key for a sponsored/demo invocation. Pass it only on stdin so it never appears in argv or the generated Skill:
113
+ ### Authorization
116
114
 
117
- ```sh
118
- printf '%s' "$FRELY_AGENT_KEY" | \
119
- frely agent install <distribution-id> \
120
- --host chatgpt \
121
- --scope global \
122
- --api-key-stdin \
123
- --json
124
- ```
115
+ Device MCP access lasts 90 days by default; `frely mcp start --days 1..365` renews early. When it expires, `frely mcp start` asks for approval again. The URL never changes. Manage your computers on the Frely website under **My Devices**.
125
116
 
126
- The CLI verifies the key against the target model-scoped MCP `tools/list` endpoint, stores it in the secure credential store, and records only `authMode=api-key` in managed Skill metadata. Use short-lived, single-model keys with bounded quota for sharing; do not paste a Creator master key.
117
+ ## More features
127
118
 
128
- The generated Skill calls the published Agent through Frely's model-scoped MCP endpoint. Invoke the installed Agent from automation with the full task on stdin:
119
+ ### Invoke a Frely-hosted Agent
129
120
 
130
121
  ```sh
131
- printf '%s' 'Your complete task' | \
132
- frely agent run '<distribution-id>' --input-stdin --json
122
+ frely agent install <distribution-id> --host claude-code --scope global
123
+ printf '%s' 'Your complete task' | frely agent run <distribution-id> --input-stdin --json
133
124
  ```
134
125
 
135
- `frely agent status <distribution-id>` shows the installed Skill and, for API-key installs, the Key's budget. `frely agent remove <distribution-id>` removes the Skill and its saved key.
126
+ `--host` is one of `chatgpt`, `codex`, `claude-code`, `pi` or `generic`. A full manifest URL also works in place of the id. To use a Creator's sponsored API key instead of your account, pass it on stdin with `--api-key-stdin`; it is stored in the secure credential store, never in the Skill. Use short-lived, single-model keys with a bounded quota. `frely agent status <id>` shows the Skill and the key's budget; `frely agent remove <id>` removes both.
136
127
 
137
128
  ### Install marketplace Prompts and Skills
138
129
 
@@ -140,131 +131,79 @@ printf '%s' 'Your complete task' | \
140
131
  frely item install <item-id> --host claude-code
141
132
  ```
142
133
 
143
- `frely item install` downloads a Prompt or Skill through Frely Cloud (the first call opens a browser for Cloud authorization). A paid part is installed only when your account holds a pass; otherwise the command prints how to buy one. Skills go to the host's Skill folder, Prompts to `--dir` (default: current directory), and scripts are saved without execute permission. Frely never overwrites a folder it did not install or a file you edited.
134
+ The first call opens a browser for Frely Cloud authorization. A paid part is installed only if your account holds a pass; otherwise the command says how to buy one. Skills go to the host's Skill folder, Prompts to `--dir` (default: current directory), and scripts are saved without execute permission. Frely never overwrites a folder it did not install or a file you edited. After you review an installed item, `frely item trust <folder>` remembers it; a new version needs a new review.
144
135
 
145
- Cloud MCPs you buy are not installed on the device: enable them for a connection on the Frely web console (Agents page) and their tools appear inside FrelyMCP.
136
+ Cloud MCPs you buy are not installed on the computer: enable them for a connection on the Frely website and their tools appear in FrelyMCP.
146
137
 
147
- ## Local model sharing
148
-
149
- Publish a loopback OpenAI-compatible runtime as a Frely personal Provider. Ollama is the default driver:
138
+ ### Local model sharing
150
139
 
151
140
  ```sh
152
141
  frely provider share ollama
153
- ```
154
-
155
- Custom endpoint and model selection:
156
-
157
- ```sh
158
- frely provider share openai-compatible \
159
- --url http://127.0.0.1:8080/v1 \
160
- --models model-a,model-b \
161
- --slot <personal-provider-slot-id> \
162
- --name "Local GPU"
163
- ```
164
-
165
- Requirements: Frely login, one empty active personal Provider slot (or a Creator plan, see below), loopback HTTP, OpenAI-compatible `/v1` (default Ollama endpoint `http://127.0.0.1:11434/v1`). Model names cannot contain whitespace or `/`.
166
-
167
- The command creates a server-managed `openai-compatible` personal Provider, stores the local endpoint in owner-only CLI state, starts the Device Relay service, signs a Provider credential with the device Ed25519 key, configures CPA, and enables the declared models. Existing Frely Access Point and API-key flows consume the Provider.
168
-
169
- ### Use a local model as the base of your own Agent (Creator)
170
-
171
- With no empty personal Provider slot, or with `--creator`, `frely provider share` creates a Creator Provider instead, counted against your Creator plan (Creator 3, Creator Plus 100). Its enabled models appear in Frely when you create an Agent. You do not sell the Provider: buyers call your Agent, which runs on your model. Keep this device online while the Agent is used, and make sure the local runtime returns `usage` in its responses.
172
-
173
- Provider inspection:
174
-
175
- ```sh
142
+ frely provider share openai-compatible --url http://127.0.0.1:8080/v1 --models model-a,model-b --name "Local GPU"
176
143
  frely provider list
177
144
  ```
178
145
 
179
- If setup stops after the Provider was prepared, run `frely provider share` again: it resumes that Provider instead of creating a new one.
180
-
181
- ## Update and diagnostics
182
-
183
- ```sh
184
- frely doctor # signed-in account, installation path, distribution, latest stable, MCP/service state
185
- frely doctor -v # + config paths, runtime details, authorization expiry, last heartbeat, sanitized errors
186
- frely update # updates the running installation in place
187
- ```
146
+ This publishes a loopback OpenAI-compatible endpoint (Ollama by default at `http://127.0.0.1:11434/v1`) as a personal Frely Provider, using one empty personal Provider slot. With no empty slot, or with `--creator`, it creates a Creator Provider counted against your Creator plan, and its models can be the base of Agents you publish. Keep the computer online while it is used, and make sure the runtime returns `usage`. If setup stops halfway, run the same command again to resume.
188
147
 
189
- `frely update` never changes to a different installer, edits PATH or downgrades a newer installation. Standalone downloads are checksum-checked and tested before the installed executable is replaced. npm/Bun installations keep their original global directory. A matching, running Device Relay service is paused for maintenance, restarted and checked after installation; credentials, device identity, MCP URL, workspace and authorization expiry are preserved. On Windows, `update` prints a PowerShell command for the detected installation to run in a local terminal.
148
+ ## Local execution boundaries
190
149
 
191
- `frely doctor` is the single diagnostic entry point and never restarts the service. `Connected` means the matching account/device process has received a WebSocket heartbeat within 75 seconds and the MCP authorization and workspace match the running relay. Neither mode completes client OAuth authorization or executes a tool call through the client. `frely doctor --mcp` is the recommended way to check the protected credential and server state.
150
+ - **Files**: file tools stay inside the shared workspaces, reject symlink escapes, cap reads and writes at 1 MiB and write atomically. Credential stores and shell start-up files are protected even inside the home directory.
151
+ - **Commands**: `process` runs as your OS user inside an OS sandbox. Credential folders are unreadable, writes are limited to the workspace and the temp directory, and network goes through a proxy. If the computer cannot sandbox (Windows, or Linux without `bubblewrap`, `socat` and `ripgrep`), commands are refused rather than run unsandboxed. You can open more on the Frely connections page: credential folders to read, extra folders to write, or a time-limited run without the sandbox. `FRELY_SANDBOX=off` turns the sandbox off on the device.
152
+ - **Credentials**: the MCP URL contains no secret. Clients hold OAuth tokens; the CLI holds a separate MCP execution key, encrypted with a master key in macOS Keychain, Windows Credential Manager or Linux Secret Service. Headless machines can set `FRELY_CREDENTIAL_KEY` (32 bytes) with `FRELY_CREDENTIAL_STORE=encrypted-file`. When authorization expires, requests and queued work stop; finished writes are not undone.
192
153
 
193
- Full behavior: [the self-update contract](docs/self-update.md) and [service maintenance and legacy updates](docs/service-maintenance.md). If more than one `frely` is installed, check the path shown by `doctor` before updating.
154
+ Details: [credential and installation boundaries](docs/credential-storage.md).
194
155
 
195
- ## Uninstall
156
+ ## Update, diagnose and uninstall
196
157
 
197
158
  ```sh
198
- frely uninstall # lists everything first, removes it only after you type yes
199
- frely uninstall --yes # non-interactive confirmation for scripts
159
+ frely doctor # account, installation, latest version, MCP and service state
160
+ frely doctor -v # + config paths, authorization expiry, last heartbeat, sanitized errors
161
+ frely update # update in place, keeping your login, device, URL and workspace
162
+ frely uninstall # list everything, then remove it after you type yes (--yes for scripts)
200
163
  ```
201
164
 
202
- `frely uninstall` revokes this device's Device MCP authorization, removes the device from your account and revokes the Cloud and account login on the Frely side, then stops and uninstalls the background service, deletes the saved login, device identity, MCP and Provider settings, state and caches (including the OS credential vault entry), removes installed Agent Skills that Frely manages, and finally removes the `frely` program (standalone file, or the npm/Bun global package). Without a terminal and without `--yes` it only prints the list. If an account-side step fails, it asks (or, with `--yes`, continues) and reports what is left; the exit code is 1 whenever anything remains.
203
-
204
- It does not remove the Frely App (use `frely app uninstall`; the App's `app.json` is kept), Providers or Agents in your Frely account, the PATH lines `install.sh` added to shell profiles, edited Agent Skills, or marketplace items. Source checkouts, local links and unrecognised installations are reported and left alone. It refuses to run inside device MCP because it stops the service that runs the command; run it in a local terminal.
205
-
206
- ## Local execution boundaries
207
-
208
- The local MCP server exposes four tools: `read` (list, read, search and find workspace files), `edit_file` (atomic whole-file writes and line edits), `process` (shell commands, run to completion or started as persistent processes) and `web_fetch` (read-only GET/HEAD of public URLs). Deleting, moving and creating directories go through `process`. Older tool names (`read_file`, `write_file`, `run_command` and so on) are no longer listed but still answer.
209
-
210
- Filesystem tools are constrained to the selected workspace, reject symlink escapes, cap normal file reads/writes at 1 MiB, use no-follow reads, and use atomic replacement for writes. `process` commands execute with the current OS user's permissions inside an OS-level sandbox (credential folders unreadable, writes limited to the workspace and the temp directory, HTTP(S) and ssh/scp/sftp through a proxy). The sandbox fails closed: if this device cannot run it (Windows, or Linux without `bubblewrap`, `socat` and `ripgrep`), `process` commands are refused with an error explaining why, never run unsandboxed. The owner can open more from the Frely connections page: credential folders to read, build-cache or chosen directories to write, or a time-limited run without the sandbox for raw network connections (also the way to run commands on a device that cannot sandbox them). Setting `FRELY_SANDBOX=off` on the device turns the sandbox off entirely; `FRELY_SANDBOX_STRICT` is still accepted but no longer changes anything. The workspace itself only constrains the working directory.
211
-
212
- Read-only local operations may overlap; writes and shell operations use the local fair scheduler — this avoids device-wide `busy -> 429` behavior.
213
-
214
- ## Authentication and secrets
165
+ `frely update` keeps the original install method and never downgrades. It pauses the background service, replaces the program after checking it, and restarts the service. On Windows it prints a PowerShell command to run in a local terminal. See [self-update](docs/self-update.md) and [service maintenance](docs/service-maintenance.md).
215
166
 
216
- Basic account and Network sessions use private plaintext files. They cannot approve MCP authorization or invoke account-management operations outside their explicit scopes. The Provider key is separate from the MCP execution key.
167
+ `frely uninstall` revokes this computer's access on the Frely side, removes the service, saved login, device identity, settings, caches and the Agent Skills Frely installed, and finally removes the `frely` program. It keeps the Frely App, your Providers and Agents in your account, the PATH lines the installer added, Skills you edited and marketplace items. Run it in a local terminal, not through Device MCP.
217
168
 
218
- MCP secrets use AES-256-GCM files with a master key in macOS Keychain, Windows Credential Manager or Linux Secret Service. Headless deployments can inject a 32-byte key through `FRELY_CREDENTIAL_KEY` and select `FRELY_CREDENTIAL_STORE=encrypted-file`. MCP has no plaintext fallback; secure-store failure does not stop basic features.
219
-
220
- 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.
221
-
222
- Storage, migration, service injection, release requirements and threat boundaries: [credential and installation boundaries](docs/credential-storage.md).
223
-
224
- ## Architecture
225
-
226
- - Product definition and generic client integration: [docs/device-mcp.md](docs/device-mcp.md)
227
- - Device Relay transport: subprotocol, connection grant, reconnection, fallback state machine: [docs/device-transport.md](docs/device-transport.md)
228
- - Relay OAuth 2.1 Authorization Code + PKCE, discovery and token endpoints: [docs/mcp-oauth-relay-contract.md](docs/mcp-oauth-relay-contract.md)
229
- - Business API commands and authorization: [docs/api.md](docs/api.md)
230
- - Frely Network commands (preview, not listed in `frely --help`): [docs/frely-network.md](docs/frely-network.md)
231
-
232
- The public MCP URL is the canonical resource returned by Relay, `https://mcp.frely.cloud/mcp` (one URL per account, shared by all your devices). Use `frely mcp url`; do not derive the URL from the control-plane hostname. The URL contains no bearer secret.
233
-
234
- ## Commands
169
+ ## All commands
235
170
 
236
171
  ```text
237
172
  frely login [--relay <https-url>] [--no-browser]
173
+ frely login --email <address> [--mcp] [--workspace <path>] then frely login --code <6-digit code>
238
174
  frely logout
175
+ frely uninstall [--yes] [--json]
239
176
  frely doctor [-v] [--json]
240
177
  frely update
241
- frely mcp url [--workspace <path>] [--days 1..365] [--json]
178
+ frely mcp start [--workspace <path>] [--days 1..365] [--no-browser] [--json]
179
+ frely mcp status [--json]
180
+ frely mcp stop|remove
242
181
  frely mcp workspace list [--json]
243
182
  frely mcp workspace add|remove <path>
244
183
  frely mcp local list [--json]
245
- frely mcp local add <name> (--url <address> | -- <command> [args...])
184
+ frely mcp local add <name> (--url <address> | [--env KEY=VALUE] -- <command> [args...])
246
185
  frely mcp local remove <name>
247
- frely mcp stop|start|remove
248
186
  frely agent install <distribution-id|manifest-url> [--host chatgpt|codex|claude-code|pi|generic] [--scope global|project] [--api-key-stdin] [--json]
249
187
  frely agent run <distribution-id> (--input <text>|--input-stdin) [--json]
250
188
  frely agent status (<distribution-id>|--api-key-stdin [--relay <url>]) [--json]
251
189
  frely agent remove <distribution-id> [--json]
252
190
  frely item install <item-id> [--host chatgpt|codex|claude-code|pi|generic] [--scope global|project] [--dir <path>] [--json]
191
+ frely item trust <folder> [--check]
253
192
  frely provider share [ollama|openai-compatible] [--url <loopback-v1-url>] [--models <a,b>] [--slot <slot-id> | --creator] [--name <name>]
254
193
  frely provider list [--json]
255
194
  frely api list|describe|call
256
195
  ```
257
196
 
258
- Not listed in `frely --help`, but in `frely help --agent --json`: `frely mcp stdio [--workspace <path>]` serves the tools over stdio for a local MCP client; `frely mcp serve` is the foreground Device Relay client the background service runs; `frely network` is the Network preview.
197
+ `frely help --agent --json` prints the full machine-readable contract, including commands not shown in `frely --help`: `frely mcp stdio` (serve the tools over stdio to a local client), `frely mcp serve` (the foreground process the service runs) and `frely network` (preview).
259
198
 
260
- `frely logout` removes the account session, revokes Cloud authorization and attempts to stop the background service.
199
+ ## Documentation
261
200
 
262
- ## Landing page
263
-
264
- The open-source CLI landing page lives in [`site/`](site/README.md), alongside the CLI under the same Apache-2.0 license and trademark policy. It is prepared for `cli.frely.cloud` and deploys independently as a static site. Website assets are excluded from the npm package.
201
+ - [Device MCP](docs/device-mcp.md)
202
+ - [Device Relay transport](docs/device-transport.md)
203
+ - [MCP OAuth contract](docs/mcp-oauth-relay-contract.md)
204
+ - [`frely api`](docs/api.md)
205
+ - [Frely Network (preview)](docs/frely-network.md)
265
206
 
266
207
  ## License and trademarks
267
208
 
268
- `frely-cli` is licensed under the Apache License 2.0; see [`LICENSE`](LICENSE). The Frely name, logos, and product names are not licensed as trademarks; see [`TRADEMARKS.md`](TRADEMARKS.md).
269
-
270
- See [`CONTRIBUTING.md`](CONTRIBUTING.md) for development guidance and [`SECURITY.md`](SECURITY.md) for private vulnerability reporting.
209
+ `frely-cli` is licensed under the Apache License 2.0; see [`LICENSE`](LICENSE). The Frely name, logos and product names are not licensed as trademarks; see [`TRADEMARKS.md`](TRADEMARKS.md). See [`CONTRIBUTING.md`](CONTRIBUTING.md) for development and [`SECURITY.md`](SECURITY.md) to report a vulnerability.
package/README.zh-CN.md CHANGED
@@ -2,23 +2,35 @@
2
2
 
3
3
  [English](README.md) · [简体中文](README.zh-CN.md)
4
4
 
5
- `frely-cli` 把你指定的一台电脑变成 AI Agent 可以远程操作的安全设备。浏览器 Agent(ChatGPT、Codex)和命令行 Agent(Claude Code、pi)通过 Model Context Protocol(MCP)连接,访问你授权的工作区(workspace)内的文件、命令与进程——在任何地方。
5
+ `frely-cli` 把你指定的一台电脑变成 AI Agent 可以在任何地方操作的设备。ChatGPT、Claude、Codex 等 MCP 客户端通过 **FrelyMCP** 连接,使用你授权的文件夹里的文件、Shell 命令和进程。电脑主动向 Frely 发起连接,不需要开放任何端口。
6
6
 
7
- 两个可选功能,各自有独立的配置与授权:
7
+ 它也是 Frely 账号的命令行工具:
8
8
 
9
- - **Remote Agent Skill** —— 把已发布的 Frely Agent 安装为本地触发 Skill,从自动化流程中调用。
10
- - **本地模型共享** —— 把本机 Ollama / OpenAI 兼容运行时发布为你的 Frely 个人 Provider。
9
+ - **设备 MCP**:让远程 AI 客户端操作这台电脑。
10
+ - **本机 MCP 服务**:把只在这台电脑上运行的 MCP 服务(例如监听 `127.0.0.1` 的)转给远程客户端使用。
11
+ - **Agent、Prompt 与 Skill**:把已发布的 Frely Agent 安装为本地 Skill,或安装你购买的 Prompt 和 Skill。
12
+ - **本地模型共享**:把本机 Ollama 或 OpenAI 兼容运行时发布为你自己的 Frely Provider。
11
13
 
12
- 本仓库包含开源的 Frely 客户端与本地 MCP 运行时;托管的 Frely Relay 控制面是独立的服务依赖。不存在独立的 `friday-local` 项目,本地 MCP 执行属于 `frely-cli`。
14
+ ## 安装
13
15
 
14
- ```text
15
- Remote Agent Skill: 安装 -> frely login -> frely agent install -> frely agent run
16
- Device MCP: 在被控电脑安装 -> frely mcp start(先登录)-> 客户端添加 MCP URL -> OAuth 授权
16
+ ### 服务器,已有 Frely 账号(无需浏览器)
17
+
18
+ 拿到一条一次性安装命令,粘贴到服务器上运行。它会安装 `frely`、登录你的账号、开启设备 MCP 并启动后台服务,全程不打开浏览器,也不会提问。
19
+
20
+ 在以下任一处获取命令:
21
+
22
+ - Frely 网站:**My Devices → Add a computer → Create install command**。
23
+ - 已连接 FrelyMCP 的 ChatGPT 或 Claude:让它添加一台电脑,`list_devices` 会返回这条命令。
24
+
25
+ 命令形如:
26
+
27
+ ```sh
28
+ curl -fsSL https://frely.cloud/start.sh | FRELY_INSTALL_TOKEN=fit_... sh
17
29
  ```
18
30
 
19
- ## 安装
31
+ 令牌只能用一次,15 分钟内有效,不会保存在电脑上。如果这台电脑已经安装或登录过 Frely,命令会更新它,并把登录切换到你的账号。Linux 上请运行 `sudo loginctl enable-linger $USER`,退出 SSH 后服务才能保持在线。
20
32
 
21
- 安装后直接进入设备 MCP 流程:`frely mcp start` 在没有登录时先跳浏览器登录(新账号可在同一页面注册),再请求设备批准并输出 MCP URL。工作区默认是用户主目录(凭据与启动文件仍受保护),`FRELY_WORKSPACE` 可另选。
33
+ ### 有浏览器的电脑
22
34
 
23
35
  ```sh
24
36
  # macOS / Linux
@@ -30,230 +42,168 @@ curl -fsSL https://frely.cloud/start.sh | sh
30
42
  curl.exe -fsSLo "$env:TEMP\frely-start.ps1" https://frely.cloud/start.ps1; powershell -NoProfile -ExecutionPolicy Bypass -File "$env:TEMP\frely-start.ps1"
31
43
  ```
32
44
 
33
- 没有浏览器的服务器:向 Claude(FrelyMCP `list_devices`)或 Frely 控制台要一行安装命令。命令带有 `FRELY_INSTALL_TOKEN`(一次性,15 分钟内有效),会把这台电脑登录到你的账号、启用设备 MCP 并启动后台服务,不需要浏览器,也不会提问。令牌不会保存;如果这台电脑已经登录,令牌不会被使用。Linux 上后台服务需要 systemd 用户实例,并需开启 lingering(`sudo loginctl enable-linger $USER`),退出登录后才能保持在线。
45
+ 脚本安装最新版 `frely`,然后运行 `frely mcp start`:打开浏览器登录(新账号可在同一页面注册),请你批准这台设备,最后输出 MCP URL。随时可以再运行一次来升级,它会用新版本重启后台服务。
34
46
 
35
- `install.sh` / `install.ps1`(同一域名)只安装,供 Agent、脚本和 Skill 引用。安装器选择平台可执行文件、校验 SHA-256 并安装到用户目录,不需要 Node.js、npm 或 keyring。
47
+ 工作区默认是用户主目录(凭据和 Shell 启动文件仍受保护)。设置 `FRELY_WORKSPACE=/path` 可共享其他文件夹,`FRELY_INSTALL_DIR` 可改变安装位置(默认 `~/.local/bin`)。
36
48
 
37
- 下载先走 GitHub Releases;连不上、过慢(20 秒内低于 50 KB/s)或校验失败时,改从同一构建的 npm 包 `@frelyhq/cli-<平台>` 下载,依次尝试 npmmirror(中国大陆可用)和 npmjs。每个来源都用自己的 `.sha256` 校验。`FRELY_INSTALL_SOURCES` 可缩减或调整顺序(`github npmmirror npmjs`)。`frely update` 使用同一条链路。
49
+ ### 只安装
38
50
 
39
- 或使用 npm(需要 Node.js 22 或更新版本):
51
+ `install.sh` 和 `install.ps1`(同一域名,`https://frely.cloud/install.sh`)只安装程序,供脚本、Skill 和 Agent 使用。也可以用 npm(需要 Node.js 22 或更新版本):
40
52
 
41
53
  ```sh
42
54
  npm install --global --ignore-scripts frely-cli@latest
43
55
  ```
44
56
 
45
- 要安装指定版本,把 `latest` 换成版本号。带 tag 的发布会在跨平台验证后同时发布 npm 包与 GitHub Release 独立安装产物。
46
-
47
- ### 从源码安装
48
-
49
- 用 Bun 安装当前源码:
50
-
51
- ```sh
52
- cd /path/to/frely-cli
53
- bun install
54
- bun run build
55
- bun install --global "$PWD"
56
- ```
57
-
58
- 全局安装命令请使用 `$PWD` 绝对路径。如果找不到 `frely`,把 Bun 全局 bin 目录加入 `PATH`:
57
+ 安装器会选择对应平台的可执行文件,校验 SHA-256,安装到用户目录,不需要 Node.js。下载先走 GitHub Releases,GitHub 过慢或连不上时改用 npmmirror 和 npmjs(`@frelyhq/cli-<平台>`)。`FRELY_INSTALL_SOURCES` 可调整顺序。
59
58
 
60
- ```sh
61
- export PATH="$(bun pm bin -g):$PATH"
62
- ```
63
-
64
- 当前源码没有 keytar 依赖和原生 npm 构建步骤。依赖安装支持 `npm ci --ignore-scripts` 与 `bun install --ignore-scripts`。仓库以 npm 作为 CI 与发布的规范包管理器并提交 `package-lock.json`;Bun 仅用于本地开发,变更依赖时请保持 lockfile 同步。
65
-
66
- ## 首次使用
59
+ ## 常用命令
67
60
 
68
- 用消费端使用的 Frely 账号登录一次:
61
+ | 命令 | 作用 |
62
+ | --- | --- |
63
+ | `frely mcp start` | 需要时先登录,开启设备 MCP,启动服务并输出 MCP URL。可重复运行。 |
64
+ | `frely mcp status` | 显示 MCP URL、工作区、授权到期时间和服务状态。 |
65
+ | `frely mcp workspace add <path>` | 再共享一个文件夹。`frely mcp workspace list` 列出全部。 |
66
+ | `frely mcp stop` / `frely mcp start` | 暂停或恢复后台服务。 |
67
+ | `frely mcp remove` | 撤销所有客户端的访问并卸载服务。 |
68
+ | `frely doctor` | 检查登录、安装、服务和连接状态。加 `-v` 看详情。 |
69
+ | `frely update` | 原地升级到最新版。 |
70
+ | `frely login` / `frely logout` | 登录或退出 Frely 账号。 |
71
+ | `frely uninstall` | 从这台电脑移除 Frely(先列出全部内容)。 |
69
72
 
70
- ```sh
71
- frely login
72
- ```
73
+ 只输入命令组而不带子命令(如 `frely mcp`、`frely agent`)会列出该组的子命令。
73
74
 
74
- 浏览器会自动打开。要换浏览器或换账号,运行 `frely login --no-browser`,并把打印的 URL 只在你想要的那个账号已登录的浏览器中打开。在已登录状态下访问设备授权 URL,可能在点击 Approve 之前就把该码绑定到那个账号——如果默认浏览器用别的账号打开了,按 Ctrl+C,重新运行 `frely login --no-browser`,使用**新的 URL**。重新登录或复用旧 URL 都不会切换账号。使用自建 Relay 时请保留 `--relay <url>`。`FRELY_NO_BROWSER=1` 仍然支持。
75
+ ## 与 FrelyMCP 配合使用
75
76
 
76
- ### Device MCP:让远程客户端控制这台电脑
77
+ FrelyMCP 是整个账号共用的一个 MCP 地址:`https://mcp.frely.cloud/mcp`。每台运行过 `frely mcp start` 的电脑都在它后面。`frely-cli` 在各台电脑上执行工具,AI 客户端只需要这个 URL。
77
78
 
78
- 在被控电脑上开启文件、shell 与进程访问:
79
+ ### 连接客户端
79
80
 
80
- ```sh
81
- frely mcp url --workspace /path/to/project
82
- ```
81
+ 1. 在要被控制的电脑上运行 `frely mcp start`(上面的安装脚本已经包含这一步),它会输出 MCP URL。
82
+ 2. 把 URL 作为使用 OAuth 的远程 MCP 服务加到客户端:
83
+ - ChatGPT 或 Claude:用这个 URL 添加自定义连接器。
84
+ - 另一台电脑上的 Claude Code:`claude mcp add --transport http frely "https://mcp.frely.cloud/mcp"`,然后打开 `/mcp` 完成授权。
85
+ 3. 登录 Frely 并批准该客户端。
83
86
 
84
- `frely login` 通过浏览器设备授权获取受限账号会话。首次运行 `frely mcp url` 会初始化独立的 MCP 安全密钥、请求浏览器批准该设备与工作区(省略 `--workspace` 时为主目录)、安装用户级 Device Relay 服务(macOS LaunchAgent、Linux systemd 用户单元或 Windows 任务计划程序),并打印 MCP URL。默认授权 90 天,`--days 1..365` 可选时长。
87
+ 验证连接:让客户端列出工作区的顶层文件名,结果与文件夹一致即表示连通。
85
88
 
86
- `frely mcp url` 是幂等的:启用后再次运行只打印同一个 URL,需要地址时直接再运行即可。提示走 stderr,stdout 保持单一 URL(或 `--json` 时一个 JSON 对象);批准或安装失败则不打印 URL。要开放更多目录,用 `frely mcp workspace add <path>`;`frely mcp workspace list` 列出所有目录。只输入命令组而不带子命令(如 `frely mcp workspace`、`frely agent`)时,会显示该组下可用的子命令。
89
+ ### AI 能做什么
87
90
 
88
- ### 这台电脑上的本机 MCP 服务
91
+ - `list_devices` 列出你的电脑、是否在线及其工作区。没有电脑时,它会给出上面的安装命令。
92
+ - 设备工具带 `device` 参数,在那台电脑上执行:
93
+ - `read`:在工作区内列出、读取、搜索和查找文件。
94
+ - `edit_file`:原子地写入整个文件或按行修改。
95
+ - `process`:运行 Shell 命令,或启动和管理长时间运行的进程。
96
+ - `web_fetch`:读取公开网页。
97
+ - `local_mcp_list` 和 `local_mcp_call` 访问那台电脑上你已开启的 MCP 服务(见下文)。
98
+ - `frely_list` 和 `frely_call` 管理你的 Frely 账号(API Key、Credit、套餐、订单)。终端里的 `frely api list|describe|call` 是同一套操作。
89
99
 
90
- 远程 MCP 客户端也能访问只在这台电脑上运行的 MCP 服务,例如只监听 `127.0.0.1` 的浏览器插件 MCP。只监听本机回环地址的服务会被自动发现(`frely mcp local list`);其他服务用 `frely mcp local add <name> --url http://127.0.0.1:<port>/mcp`,或 `frely mcp local add <name> [--env KEY=VALUE] -- <命令> [参数...]`(stdio)手动添加。每个服务默认对远程客户端关闭,需要在 Frely 连接页面逐个开启。开启后通过两个设备工具 `local_mcp_list` 和 `local_mcp_call` 访问,运行在命令沙箱之外,使用你的用户账号。只会连接回环地址;请求头和环境变量的值只保存在本机。
100
+ AI 客户端自带的 Shell 仍在客户端所在的电脑上运行;要在你的电脑上工作,请让它使用 Frely 工具。所有客户端共享每台电脑的工作区和正在运行的进程。
91
101
 
92
- 把打印的完整 URL 添加到支持 OAuth 的远程 MCP 客户端,选择 OAuth 并完成授权。保持电脑在线。验证首次连接:让客户端只列出所选工作区的顶层名称,不写文件、不跑 shell 命令——返回与目录一致的结果即连通。
102
+ ### 本机 MCP 服务
93
103
 
94
- 调用端的 Claude Code:
104
+ 只监听本机回环地址的服务会被自动发现(`frely mcp local list`)。其他服务这样添加:
95
105
 
96
106
  ```sh
97
- claude mcp add --transport http frely "<MCP_URL>"
107
+ frely mcp local add <name> --url http://127.0.0.1:<port>/mcp
108
+ frely mcp local add <name> [--env KEY=VALUE] -- <command> [args...] # stdio
98
109
  ```
99
110
 
100
- 在 Claude Code 中打开 `/mcp` 完成 OAuth 授权。一个 URL 覆盖账户下所有已开启 MCP 的设备:`list_devices` 列出设备及其工作区,其余工具都带 `device` 参数(设备名或 id)。让 Agent 用 Frely 工具做远程工作;它自带的 shell 仍跑在调用端电脑。客户端共享各设备的工作区与托管进程。
111
+ 每个服务默认对远程客户端隐藏,需要在 Frely 连接页面逐个开启。开启后的服务在命令沙箱之外、以你的用户身份运行。只会连接回环地址,headers 和环境变量不会离开这台电脑。
101
112
 
102
- 授权生命周期:授权过期后,`frely mcp url` 会请求新的批准并轮换 MCP 执行密钥;`frely mcp url --days 365` 可提前续期。MCP URL 对你的所有设备相同,续期也不会改变。登录刷新、OAuth 刷新与重启都不延长授权。`frely mcp stop|start` 暂停或恢复后台服务;`frely mcp remove` 撤销所有客户端的访问并卸载服务(本机有本地 Provider 时服务改为仅 Provider 模式继续运行)。在 Frely → **Device MCP**(`/user/device-mcp`)管理你的设备。
113
+ ### 授权
103
114
 
104
- ### 调用 Frely 托管的 Agent
105
-
106
- 使用有账号或受限 API-key 访问权限的已发布 Agent。安装为本地触发 Skill(也可以用完整 manifest URL 代替 id):
115
+ 设备 MCP 授权默认 90 天;`frely mcp start --days 1..365` 可提前续期。到期后 `frely mcp start` 会再次请求批准。URL 永远不变。在 Frely 网站的 **My Devices** 管理你的电脑。
107
116
 
108
- ```sh
109
- frely agent install <distribution-id> \
110
- --host pi \
111
- --scope global \
112
- --json
113
- ```
117
+ ## 更多功能
114
118
 
115
- Creator 也可以提供一个现成的模型级、限额 API key 用于赞助/演示调用。只通过 stdin 传入,避免出现在 argv 或生成的 Skill 中:
119
+ ### 调用 Frely 托管的 Agent
116
120
 
117
121
  ```sh
118
- printf '%s' "$FRELY_AGENT_KEY" | \
119
- frely agent install <distribution-id> \
120
- --host chatgpt \
121
- --scope global \
122
- --api-key-stdin \
123
- --json
122
+ frely agent install <distribution-id> --host claude-code --scope global
123
+ printf '%s' 'Your complete task' | frely agent run <distribution-id> --input-stdin --json
124
124
  ```
125
125
 
126
- CLI 会用目标模型级 MCP `tools/list` 端点验证 key,存入安全凭证库,在托管 Skill 元数据中只记录 `authMode=api-key`。分享请使用短生命周期、单模型、限额的 key;不要把 Creator 主 key 贴进去。
126
+ `--host` 可选 `chatgpt`、`codex`、`claude-code`、`pi` 或 `generic`。也可以用完整的 manifest URL 代替 id。要用 Creator 提供的赞助 API Key 而不是你的账号,用 `--api-key-stdin` 从 stdin 传入;Key 存入安全凭据库,不会写进 Skill。请使用短期、单模型、限额的 Key。`frely agent status <id>` 显示 Skill 和 Key 的额度;`frely agent remove <id>` 同时移除两者。
127
127
 
128
- 生成的 Skill 通过 Frely 的模型级 MCP 端点调用已发布 Agent。从自动化调用已安装 Agent,完整任务走 stdin:
128
+ ### 安装市场里的 Prompt 和 Skill
129
129
 
130
130
  ```sh
131
- printf '%s' '你的完整任务' | \
132
- frely agent run '<distribution-id>' --input-stdin --json
131
+ frely item install <item-id> --host claude-code
133
132
  ```
134
133
 
135
- `frely agent status <distribution-id>` 查看已安装的 Skill,API-key 安装时同时显示该 Key 的预算。`frely agent remove <distribution-id>` 删除 Skill 及其保存的 key。
134
+ 首次调用会打开浏览器进行 Frely Cloud 授权。账号持有通行证时才安装付费部分,否则命令会告诉你如何购买。Skill 装到宿主的 Skill 目录,Prompt 装到 `--dir`(默认当前目录),脚本保存时不带执行权限。Frely 不会覆盖不是它安装的文件夹,也不会覆盖你改过的文件。审查过已安装的条目后,`frely item trust <folder>` 会记住;新版本需要重新审查。
136
135
 
137
- ## 本地模型共享
136
+ 你购买的云端 MCP 不会安装到电脑上:在 Frely 网站为某个连接开启后,它们的工具会出现在 FrelyMCP 里。
138
137
 
139
- 把回环(loopback)OpenAI 兼容运行时发布为 Frely 个人 Provider,Ollama 是默认驱动:
138
+ ### 本地模型共享
140
139
 
141
140
  ```sh
142
141
  frely provider share ollama
143
- ```
144
-
145
- 自定义端点与模型选择:
146
-
147
- ```sh
148
- frely provider share openai-compatible \
149
- --url http://127.0.0.1:8080/v1 \
150
- --models model-a,model-b \
151
- --slot <personal-provider-slot-id> \
152
- --name "Local GPU"
153
- ```
154
-
155
- 要求:已登录 Frely、一个空闲的活跃个人 Provider slot、回环 HTTP、OpenAI 兼容 `/v1`(Ollama 默认端点 `http://127.0.0.1:11434/v1`)。模型名不能包含空格或 `/`。
156
-
157
- 该命令创建服务端管理的 `openai-compatible` 个人 Provider,把本地端点存入仅属主可读的 CLI 状态,启动 Device Relay 服务,用设备 Ed25519 key 签署 Provider 凭证,配置 CPA 并启用声明的模型。现有 Frely Access Point 与 API-key 流程即可消费该 Provider。
158
-
159
- ### 用本地模型作为自己 Agent 的底座(Creator)
160
-
161
- 没有空闲的个人 Provider 名额,或加上 `--creator` 时,`frely provider share` 会创建 Creator Provider,计入 Creator 套餐名额(Creator 3 个,Creator Plus 100 个)。它启用的模型会出现在 Frely 创建 Agent 的模型选择里。Provider 本身不对外售卖:买家调用的是你的 Agent,由你的模型驱动。Agent 被使用期间本机需保持在线,并且本地运行时的响应需包含 `usage`。
162
-
163
- Provider 检查:
164
-
165
- ```sh
142
+ frely provider share openai-compatible --url http://127.0.0.1:8080/v1 --models model-a,model-b --name "Local GPU"
166
143
  frely provider list
167
144
  ```
168
145
 
169
- 如果 Provider 已准备但设置中途失败,再运行一次 `frely provider share` 即可:它会续完该 Provider,而不是新建一个。
146
+ 把本机回环地址上的 OpenAI 兼容端点(默认 Ollama `http://127.0.0.1:11434/v1`)发布为 Frely 个人 Provider,占用一个空的个人 Provider 名额。没有空名额或使用 `--creator` 时,会创建 Creator Provider,计入你的 Creator 套餐,其模型可作为你发布的 Agent 的底座。使用期间请保持电脑在线,并确保运行时在响应中返回 `usage`。设置中途停止时,再次运行同一命令即可继续。
170
147
 
171
- ## 升级与诊断
172
-
173
- ```sh
174
- frely doctor # 当前账号、安装路径、发行形态、最新稳定版、MCP/服务状态
175
- frely doctor -v # 另加配置路径、运行时细节、授权到期、最近心跳、脱敏错误
176
- frely update # 原地升级当前正在运行的安装
177
- ```
178
-
179
- `frely update` 永不换安装器、不改 PATH、不降级更新版本。standalone 下载会先校验 SHA-256 并做启动测试再替换可执行文件;npm/Bun 安装保持原全局目录。匹配的、正在运行的 Device Relay 服务会被暂停维护、重启并在安装后检查;凭证、设备身份、MCP URL、工作区与授权到期均保留。Windows 上 `update` 打印检测到安装方式对应的 PowerShell 命令,请在本地终端执行。
148
+ ## 本地执行边界
180
149
 
181
- `frely doctor` 是唯一诊断入口,永不重启服务。“Connected” 表示匹配的账号/设备进程在 75 秒内收到 WebSocket 心跳,且 MCP 授权与工作区与运行中的 relay 匹配。两种模式都不代替客户端完成 OAuth 授权,也不代替执行工具调用。`frely doctor --mcp` 是检查受保护凭证和服务端授权状态的推荐方式。
150
+ - **文件**:文件工具只在共享的工作区内操作,拒绝符号链接逃逸,单次读写上限 1 MiB,写入是原子的。即使在主目录内,凭据库和 Shell 启动文件也受保护。
151
+ - **命令**:`process` 以你的系统用户身份在系统级沙箱中运行。凭据目录不可读,写入限于工作区和临时目录,网络经代理。电脑无法使用沙箱时(Windows,或 Linux 缺少 `bubblewrap`、`socat`、`ripgrep`),命令会被拒绝而不是在沙箱外运行。可以在 Frely 连接页面开放更多:可读的凭据目录、可写的其他目录,或限时无沙箱运行。在设备上设置 `FRELY_SANDBOX=off` 可关闭沙箱。
152
+ - **凭据**:MCP URL 不含任何密钥。客户端持有 OAuth 令牌;CLI 持有独立的 MCP 执行密钥,用 macOS 钥匙串、Windows 凭据管理器或 Linux Secret Service 中的主密钥加密。无界面的机器可设置 `FRELY_CREDENTIAL_KEY`(32 字节)并配合 `FRELY_CREDENTIAL_STORE=encrypted-file`。授权到期后,请求和排队的工作会停止;已完成的写入不会撤销。
182
153
 
183
- 完整行为:[self-update 契约](docs/self-update.md) 与[服务维护与旧版本迁移](docs/service-maintenance.md)。若安装了多个 `frely`,升级前先查看 `doctor` 显示的路径。
154
+ 详情:[凭据与安装边界](docs/credential-storage.md)。
184
155
 
185
- ## 卸载
156
+ ## 升级、诊断与卸载
186
157
 
187
158
  ```sh
188
- frely uninstall # 先列出将要移除的全部内容,输入 yes 后才执行
189
- frely uninstall --yes # 脚本用的非交互确认
159
+ frely doctor # 账号、安装、最新版本、MCP 与服务状态
160
+ frely doctor -v # 另含配置路径、授权到期、最后心跳、脱敏错误
161
+ frely update # 原地升级,保留登录、设备、URL 和工作区
162
+ frely uninstall # 先列出全部内容,输入 yes 后移除(脚本用 --yes)
190
163
  ```
191
164
 
192
- `frely uninstall` 先在 Frely 侧撤销本设备的 Device MCP 授权、从账号中移除本设备并撤销 Cloud 与账号登录,再停止并卸载后台服务,删除已保存的登录、设备身份、MCP 与 Provider 设置、状态和缓存(含系统凭据库条目),移除 Frely 管理的 Agent Skill,最后移除 `frely` 程序本身(standalone 文件,或 npm/Bun 全局包)。无终端且未加 `--yes` 时只打印清单。账号侧步骤失败时会询问(`--yes` 则继续)并报告残留项;只要有残留,退出码为 1。
165
+ `frely update` 保持原有安装方式,不会降级。它暂停后台服务,校验后替换程序,再重启服务。Windows 上它会输出一条 PowerShell 命令,请在本地终端运行。见[自更新](docs/self-update.md)和[服务维护](docs/service-maintenance.md)。
193
166
 
194
- 不会移除:Frely App(请用 `frely app uninstall`,其 `app.json` 会保留)、账号里的 Provider 和 Agent、`install.sh` 写入 shell 配置的 PATH 行、被修改过的 Agent Skill、市场条目。源码检出、本地 link 和无法识别的安装只报告、不删除。它会拒绝在 device MCP 内运行(会停掉执行该命令的服务),请在本机终端运行。
167
+ `frely uninstall` 在 Frely 端撤销这台电脑的访问,移除服务、保存的登录、设备身份、设置、缓存和 Frely 安装的 Agent Skill,最后移除 `frely` 程序本身。它会保留 Frely App、账号里的 Provider 和 Agent、安装器添加的 PATH 行、你改过的 Skill 和市场条目。请在本地终端运行,不要通过设备 MCP 运行。
195
168
 
196
- ## 本地执行边界
197
-
198
- 本地 MCP 服务暴露 4 个工具:`read`(列目录、读文件、搜索内容、按名查找)、`edit_file`(原子整体写入与按行修改)、`process`(shell 命令,可等待完成或作为常驻进程启动)和 `web_fetch`(只读 GET/HEAD 公网 URL)。删除、移动、建目录经 `process` 完成。旧工具名(`read_file`、`write_file`、`run_command` 等)不再列出但仍可调用。
199
-
200
- 文件系统工具约束在所选工作区内:拒绝 symlink 逃逸、普通文件读写上限 1 MiB、no-follow 读、原子替换写。`process` 命令以当前 OS 用户权限执行;工作区只约束它们的工作目录,**不是** shell 沙箱。`process` 命令默认在系统级沙箱内运行;若本机无法运行沙箱(Windows,或缺少 `bubblewrap`、`socat`、`ripgrep` 的 Linux),命令会被拒绝并说明原因,不会无沙箱运行。设备所有者可在网页端批准 `unsandboxed`,或在设备上设置 `FRELY_SANDBOX=off` 关闭沙箱(`FRELY_SANDBOX_STRICT` 仍被接受,但已不再起作用)。
201
-
202
- 只读本地操作可以并行;写与 shell 操作走本地公平调度器——避免了设备级 `busy -> 429` 行为。
203
-
204
- ## 认证与密钥
205
-
206
- 基础账号会话与 Network 会话使用私有明文文件,不能批准 MCP 授权,也不能在显式范围外调用账号管理操作。Provider key 与 MCP 执行 key 相互独立。
207
-
208
- MCP 密钥使用 AES-256-GCM 文件,主密钥存 macOS Keychain、Windows 凭据管理器或 Linux Secret Service。无头部署可通过 `FRELY_CREDENTIAL_KEY` 注入 32 字节 key 并设 `FRELY_CREDENTIAL_STORE=encrypted-file`。MCP 没有明文回退;安全存储失败不影响基础功能。
209
-
210
- 稳定的 MCP URL 不含凭证。远程客户端持有 OAuth 凭证;CLI 持有 MCP 执行私钥。Relay 校验 OAuth 资源绑定与当前 MCP 执行租约。到期会阻塞请求与排队任务、取消托管执行,但不回滚写入,也不为任意 shell 程序提供沙箱。
211
-
212
- 存储、迁移、服务注入、发布要求与威胁边界:[凭证与安装边界](docs/credential-storage.md)。
213
-
214
- ## 架构
215
-
216
- - 产品定义与通用客户端接入:[docs/device-mcp.md](docs/device-mcp.md)
217
- - Device Relay 传输:子协议、连接 grant、重连、回退状态机:[docs/device-transport.md](docs/device-transport.md)
218
- - Relay OAuth 2.1 Authorization Code + PKCE、发现与 token 端点:[docs/mcp-oauth-relay-contract.md](docs/mcp-oauth-relay-contract.md)
219
- - 业务 API 命令与授权:[docs/api.md](docs/api.md)
220
- - Frely Network 命令(预览,不在 `frely --help` 中列出):[docs/frely-network.md](docs/frely-network.md)
221
-
222
- 公网 MCP URL 是 Relay 返回的规范资源,即 `https://mcp.frely.cloud/mcp`(每个账户一个 URL,所有设备共用)。请使用 `frely mcp url` 输出的地址,不要从控制面域名推导。URL 不含 bearer secret。
223
-
224
- ## 命令
169
+ ## 全部命令
225
170
 
226
171
  ```text
227
172
  frely login [--relay <https-url>] [--no-browser]
173
+ frely login --email <address> [--mcp] [--workspace <path>] then frely login --code <6-digit code>
228
174
  frely logout
175
+ frely uninstall [--yes] [--json]
229
176
  frely doctor [-v] [--json]
230
177
  frely update
231
- frely mcp url [--workspace <path>] [--days 1..365] [--json]
178
+ frely mcp start [--workspace <path>] [--days 1..365] [--no-browser] [--json]
179
+ frely mcp status [--json]
180
+ frely mcp stop|remove
232
181
  frely mcp workspace list [--json]
233
182
  frely mcp workspace add|remove <path>
234
183
  frely mcp local list [--json]
235
- frely mcp local add <name> (--url <address> | -- <command> [args...])
184
+ frely mcp local add <name> (--url <address> | [--env KEY=VALUE] -- <command> [args...])
236
185
  frely mcp local remove <name>
237
- frely mcp stop|start|remove
238
186
  frely agent install <distribution-id|manifest-url> [--host chatgpt|codex|claude-code|pi|generic] [--scope global|project] [--api-key-stdin] [--json]
239
187
  frely agent run <distribution-id> (--input <text>|--input-stdin) [--json]
240
188
  frely agent status (<distribution-id>|--api-key-stdin [--relay <url>]) [--json]
241
189
  frely agent remove <distribution-id> [--json]
190
+ frely item install <item-id> [--host chatgpt|codex|claude-code|pi|generic] [--scope global|project] [--dir <path>] [--json]
191
+ frely item trust <folder> [--check]
242
192
  frely provider share [ollama|openai-compatible] [--url <loopback-v1-url>] [--models <a,b>] [--slot <slot-id> | --creator] [--name <name>]
243
193
  frely provider list [--json]
244
194
  frely api list|describe|call
245
195
  ```
246
196
 
247
- 以下命令不在 `frely --help` 中列出,但在 `frely help --agent --json` 中:`frely mcp stdio [--workspace <path>]` 通过 stdio 为本地 MCP 客户端提供工具;`frely mcp serve` 是后台服务运行的前台 Device Relay 客户端;`frely network` 是 Network 预览。
248
-
249
- `frely logout` 删除账号会话、撤销 Cloud 授权并尝试停止后台服务。
197
+ `frely help --agent --json` 输出完整的机器可读契约,包括 `frely --help` 中未列出的命令:`frely mcp stdio`(通过 stdio 向本地客户端提供工具)、`frely mcp serve`(后台服务运行的前台进程)和 `frely network`(预览)。
250
198
 
251
- ## 落地页
199
+ ## 文档
252
200
 
253
- 开源 CLI 落地页在 [`site/`](site/README.md),与 CLI 同处 Apache-2.0 许可与商标政策下,为 `cli.frely.cloud` 准备,作为静态站点独立部署。网站资源不打进 npm 包。
201
+ - [设备 MCP](docs/device-mcp.md)
202
+ - [Device Relay 传输](docs/device-transport.md)
203
+ - [MCP OAuth 契约](docs/mcp-oauth-relay-contract.md)
204
+ - [`frely api`](docs/api.md)
205
+ - [Frely Network(预览)](docs/frely-network.md)
254
206
 
255
207
  ## 许可与商标
256
208
 
257
- `frely-cli` 采用 Apache License 2.0,见 [`LICENSE`](LICENSE)。Frely 名称、logo 与产品名不作为商标授权,见 [`TRADEMARKS.md`](TRADEMARKS.md)。
258
-
259
- 开发指引见 [`CONTRIBUTING.md`](CONTRIBUTING.md),私有漏洞报告见 [`SECURITY.md`](SECURITY.md)。
209
+ `frely-cli` 采用 Apache License 2.0 许可,见 [`LICENSE`](LICENSE)。Frely 名称、标志和产品名不随商标授权,见 [`TRADEMARKS.md`](TRADEMARKS.md)。开发说明见 [`CONTRIBUTING.md`](CONTRIBUTING.md),私下报告漏洞见 [`SECURITY.md`](SECURITY.md)。
@@ -39,7 +39,7 @@ export declare const COMMANDS: readonly [{
39
39
  readonly usage: "frely mcp start [--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 and approval URLs). 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) and no stored login, it signs in and preapproves device MCP with no browser or prompt; an existing login is kept and the token left unused. 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 and approval URLs). 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.";
43
43
  }, {
44
44
  readonly id: "mcp.workspace.list";
45
45
  readonly usage: "frely mcp workspace list [--json]";
@@ -268,7 +268,7 @@ export declare function agentHelp(): {
268
268
  readonly usage: "frely mcp start [--workspace <path>] [--days 1..365] [--no-browser] [--json]";
269
269
  readonly auth: "account-and-browser-if-needed";
270
270
  readonly effect: "authorization-if-needed";
271
- 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 and approval URLs). 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) and no stored login, it signs in and preapproves device MCP with no browser or prompt; an existing login is kept and the token left unused. Prompts go to stderr; stdout holds only the URL, or JSON with HTTP transport and OAuth details. `frely mcp url` is a deprecated alias.";
271
+ 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 and approval URLs). 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.";
272
272
  }, {
273
273
  readonly id: "mcp.workspace.list";
274
274
  readonly usage: "frely mcp workspace list [--json]";
@@ -6,7 +6,7 @@ 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 and approval URLs). 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) and no stored login, it signs in and preapproves device MCP with no browser or prompt; an existing login is kept and the token left unused. Prompts go to stderr; stdout holds only the URL, or JSON with HTTP transport and OAuth details. `frely mcp url` is a deprecated alias." },
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 and approval URLs). 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
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
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
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)." },
@@ -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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"}
@@ -59,7 +59,12 @@ export function connectionReporter(binding, workspace) {
59
59
  current = { ...current, state: "stopped", mcpEnabled: false };
60
60
  }
61
61
  const content = JSON.stringify(current) + "\n";
62
+ const terminal = event.type === "stopped";
62
63
  pending = pending.then(async () => {
64
+ // The status file is last-writer-wins across transports; a terminal stop must not
65
+ // erase a fresher record owned by another process that is still running.
66
+ if (terminal && await foreignTransportLive(path))
67
+ return;
63
68
  const temp = path + "." + process.pid + "." + randomUUID() + ".tmp";
64
69
  try {
65
70
  await mkdir(dirname(path), { recursive: true, mode: 0o700 });
@@ -73,6 +78,22 @@ export function connectionReporter(binding, workspace) {
73
78
  };
74
79
  return { report, flush: () => pending };
75
80
  }
81
+ /** True when the record on disk belongs to a different, still-running transport process. */
82
+ async function foreignTransportLive(path) {
83
+ const raw = await readFile(path, "utf8").catch(() => null);
84
+ if (!raw)
85
+ return false;
86
+ try {
87
+ const record = JSON.parse(raw);
88
+ if (!Number.isSafeInteger(record?.pid) || record.pid === process.pid)
89
+ return false;
90
+ process.kill(record.pid, 0);
91
+ return true;
92
+ }
93
+ catch (error) {
94
+ return error.code === "EPERM";
95
+ }
96
+ }
76
97
  export async function readConnectionStatus(binding) {
77
98
  const raw = await readFile(connectionStatusPath(), "utf8").catch(() => null);
78
99
  if (!raw)
@@ -1 +1 @@
1
- {"version":3,"file":"connection-status.js","sourceRoot":"","sources":["../../src/device/connection-status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection-status.js","sourceRoot":"","sources":["../../src/device/connection-status.ts"],"names":[],"mappings":"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"}
@@ -75,12 +75,16 @@ export async function doctor(options = {}, dependencies = defaultDependencies) {
75
75
  : !bindingMatches || !connection ? "unknown"
76
76
  : live ? "connected"
77
77
  : connection.state === "disconnected" || connection.state === "stopped" ? connection.state : "unknown";
78
- add("connection", connectionState === "not_configured" ? "info" : live && (!metadata || mcpReady) ? "pass" : "fail", connectionState === "not_configured" ? "Not configured."
78
+ // The status file is last-writer-wins across transports, so a stopped record beside an
79
+ // active service is a stale or overwritten observation, not a final stop.
80
+ const staleStopped = connectionState === "stopped" && Boolean(service?.active);
81
+ add("connection", connectionState === "not_configured" ? "info" : live && (!metadata || mcpReady) ? "pass" : staleStopped ? "info" : "fail", connectionState === "not_configured" ? "Not configured."
79
82
  : live && metadata && !mcpReady ? "Device transport connected, but this MCP authorization/workspace is not active in the running service."
80
83
  : live ? "Device transport connected; recent heartbeat received."
81
- : connectionState === "disconnected" ? "Disconnected; the device transport is retrying."
82
- : connectionState === "stopped" ? "Device transport stopped. Run frely mcp start."
83
- : "Unknown: no recent heartbeat for this account/device. Run frely doctor -v.");
84
+ : staleStopped ? "Stale status record: a transport reported stopped, but the background service is running. Re-run frely doctor; restart with frely mcp start only if this persists."
85
+ : connectionState === "disconnected" ? "Disconnected; the device transport is retrying."
86
+ : connectionState === "stopped" ? "Device transport stopped. Run frely mcp start."
87
+ : "Unknown: no recent heartbeat for this account/device. Run frely doctor -v.");
84
88
  const update = await updatePromise;
85
89
  add("installation", "info", `${update.installation.method}: ${update.installation.entry}`);
86
90
  add("update", update.state === "current" ? "pass" : "info", update.message);
@@ -151,8 +155,9 @@ export async function doctor(options = {}, dependencies = defaultDependencies) {
151
155
  : service.installed ? "Stopped" : "Not installed",
152
156
  connection: connectionState === "not_configured" ? "Not configured"
153
157
  : live ? metadata && !mcpReady ? "Device transport connected; MCP unavailable" : "Connected (recent heartbeat)"
154
- : connectionState === "disconnected" ? "Disconnected (retrying)" : connectionState === "stopped" ? "Stopped"
155
- : "Unknown (no recent heartbeat)",
158
+ : connectionState === "disconnected" ? "Disconnected (retrying)"
159
+ : connectionState === "stopped" ? staleStopped ? "Stopped (stale record; service running)" : "Stopped"
160
+ : "Unknown (no recent heartbeat)",
156
161
  },
157
162
  checks,
158
163
  ...(verbose ? { details: {
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,EAAqB,MAAM,WAAW,CAAC;AACzG,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAC3K,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC7G,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAIzD,MAAM,mBAAmB,GAAG,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,EAAE,kBAAkB,EAAE,uBAAuB;IAClH,yBAAyB,EAAE,KAAK,EAAE,QAAwD,EAAE,IAAY,EAAE,EAAE;QAC1G,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,MAAM,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,IAAI,KAAK,kBAAkB,IAAI,IAAI,KAAK,gBAAgB;YAAE,MAAM,uBAAuB,EAAE,CAAC;IAChG,CAAC;IACD,iBAAiB,EAAE,oBAAoB,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;AAK1E,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,IAAI,GAAG,MAAM,WAAW,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,MAAM,kBAAkB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC9D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI;QAChF,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS;YACzG,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC;AAC3H,CAAC;AAED,+FAA+F;AAC/F,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,UAAyB,EAAE,EAAE,eAAmC,mBAAmB;IAC9G,MAAM,aAAa,GAAG,YAAY,CAAC,aAAa,EAAE,CAAC;IACnD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC;IACjE,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,MAAiC,EAAE,MAAc,EAAE,EAAE,CAC9E,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/D,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAErG,MAAM,IAAI,GAAiB,MAAM,YAAY,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QACvE,UAAU,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE;QACxE,eAAe,EAAE,2DAA2D;KAC7E,CAAC,CAAC,CAAC;IACJ,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EACnI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,0EAA0E;QAC/F,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,YAAY,8BAA8B;YAC5H,CAAC,CAAC,oEAAoE,CAAC,CAAC;IAE5E,wFAAwF;IACxF,IAAI,aAAa,GAAkB,IAAI,CAAC;IACxC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QAChF,aAAa,GAAG,CAAC,CAAC,KAAK,YAAY,qBAAqB,CAAC;YACvD,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,6BAA6B,eAAe,EAAE,EAAE;gBAC/E,CAAC,CAAC,mEAAmE,OAAO,CAAC,eAAe,EAAE,CAAC,iBAAiB,eAAe,EAAE,EAAE;YACrI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,iEAAiE;gBACnG,CAAC,CAAC,uDAAuD,CAAC;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACH,MAAM,aAAa,GAAG,aAAa,KAAK,IAAI,CAAC;IAC7C,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACzE,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAClH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS;WAC/F,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IAC7G,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,IAAI,cAAc,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,EAAE,QAAQ;WACjG,QAAQ,CAAC,QAAQ,KAAK,OAAO,EAAE,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,MAAM,CAAC,CAAC;IACrF,GAAG,CAAC,KAAK,EAAE,aAAa,IAAI,OAAO,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAClI,aAAa,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,yBAAyB;QACrD,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,kEAAkE;YAC9E,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,wEAAwE;gBACxF,CAAC,CAAC,uBAAuB,QAAQ,CAAC,KAAK,CAAC,SAAS,yBAAyB,CAAC,CAAC,CAAC;IAEjF,MAAM,OAAO,GAAG,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClG,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAC9C,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB;QACvC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B;YAC1C,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,6BAA6B;gBAChD,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,sEAAsE;oBAC5F,CAAC,CAAC,4EAA4E,CAAC,CAAC;IAEpF,MAAM,UAAU,GAAG,cAAc,IAAI,OAAO,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzH,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,IAAI,QAAQ,IAAI,UAAU,IAAI,CAAC,OAAO;WACxF,UAAU,CAAC,eAAe,KAAK,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,UAAU,CAAC,SAAS,KAAK,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC5G,MAAM,eAAe,GAAG,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB;QAC9D,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YAC5C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW;gBACpB,CAAC,CAAC,UAAU,CAAC,KAAK,KAAK,cAAc,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACzG,GAAG,CAAC,YAAY,EAAE,eAAe,KAAK,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EACjH,eAAe,KAAK,gBAAgB,CAAC,CAAC,CAAC,iBAAiB;QACtD,CAAC,CAAC,IAAI,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,wGAAwG;YAC1I,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,wDAAwD;gBACjE,CAAC,CAAC,eAAe,KAAK,cAAc,CAAC,CAAC,CAAC,iDAAiD;oBACxF,CAAC,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,gDAAgD;wBAClF,CAAC,CAAC,4EAA4E,CAAC,CAAC;IAEpF,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;IACnC,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,KAAK,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3F,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAE5E,MAAM,UAAU,GAAG,MAAM,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC1H,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EACrC,UAAU,CAAC,CAAC,CAAC,aAAa,UAAU,CAAC,UAAU,gCAAgC;QAC7E,CAAC,CAAC,iDAAiD,CAAC,CAAC;IACzD,GAAG,CAAC,SAAS,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAClD,iBAAiB,EAAE,CAAC,CAAC,CAAC,8DAA8D,CAAC,CAAC,CAAC,wDAAwD,CAAC,CAAC;IACnJ,MAAM,eAAe,GAAG,UAAU,EAAE,WAAW,IAAI,UAAU,CAAC,GAAG,KAAK,OAAO,EAAE,GAAG;QAChF,CAAC,CAAC,mGAAmG;QACrG,CAAC,CAAC,qEAAqE,CAAC;IAC1E,IAAI,UAAU,EAAE,UAAU,IAAI,UAAU,CAAC,UAAU,KAAK,OAAO,IAAI,OAAO,EAAE,MAAM,IAAI,UAAU,CAAC,GAAG,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC;QACrH,GAAG,CAAC,iBAAiB,EAAE,MAAM,EAAE,WAAW,UAAU,CAAC,UAAU,eAAe,OAAO,KAAK,eAAe,EAAE,CAAC,CAAC;IAC/G,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC;YAAC,MAAM,YAAY,CAAC,oBAAoB,EAAE,CAAC;YAAC,GAAG,CAAC,eAAe,EAAE,MAAM,EAAE,qDAAqD,CAAC,CAAC;QAAC,CAAC;QACvI,MAAM,CAAC;YAAC,GAAG,CAAC,eAAe,EAAE,MAAM,EAAE,yDAAyD,CAAC,CAAC;QAAC,CAAC;QAClG,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC;gBAAC,MAAM,YAAY,CAAC,MAAM,EAAE,CAAC;gBAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,EAAE,yCAAyC,CAAC,CAAC;YAAC,CAAC;YAC/G,MAAM,CAAC;gBAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,EAAE,sEAAsE,CAAC,CAAC;YAAC,CAAC;QACnH,CAAC;;YAAM,GAAG,CAAC,iBAAiB,EAAE,MAAM,EAAE,4CAA4C,CAAC,CAAC;QACpF,IAAI,QAAQ,IAAI,CAAC,OAAO,IAAI,UAAU,EAAE,CAAC;YACvC,IAAI,CAAC;gBAAC,MAAM,YAAY,CAAC,uBAAuB,EAAE,CAAC;gBAAC,GAAG,CAAC,mBAAmB,EAAE,MAAM,EAAE,+CAA+C,CAAC,CAAC;YAAC,CAAC;YACxI,OAAO,KAAK,EAAE,CAAC;gBACb,IAAI,QAAQ,IAAI,KAAK,YAAY,qBAAqB,IAAI,CAAC,6BAA6B,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBAClL,IAAI,CAAC;wBACH,MAAM,YAAY,CAAC,yBAAyB,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;wBACrE,GAAG,CAAC,mBAAmB,EAAE,MAAM,EAAE,mDAAmD,KAAK,CAAC,IAAI,4CAA4C,CAAC,CAAC;oBAC9I,CAAC;oBAAC,MAAM,CAAC;wBAAC,GAAG,CAAC,mBAAmB,EAAE,MAAM,EAAE,qEAAqE,CAAC,CAAC;oBAAC,CAAC;gBACtH,CAAC;;oBAAM,GAAG,CAAC,mBAAmB,EAAE,MAAM,EAAE,sGAAsG,CAAC,CAAC;YAClJ,CAAC;QACH,CAAC;;YAAM,GAAG,CAAC,mBAAmB,EAAE,MAAM,EAAE,8DAA8D,CAAC,CAAC;IAC1G,CAAC;IAED,OAAO;QACL,aAAa,EAAE,qBAAqB,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAC7F,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1E,MAAM;QACN,OAAO,EAAE;YACP,YAAY,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,KAAK,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE;YAC3E,MAAM,EAAE,MAAM,CAAC,OAAO;YACtB,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB;gBAChF,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,YAAY,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,eAAe;YACtE,GAAG,EAAE,aAAa,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB;gBAChF,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,8BAA8B,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;YACxG,OAAO,EAAE,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,UAAU,IAAI,UAAU,CAAC,GAAG,KAAK,OAAO,CAAC,GAAG,IAAI,UAAU,CAAC,UAAU,KAAK,OAAO;gBACtL,CAAC,CAAC,WAAW,UAAU,CAAC,UAAU,eAAe,OAAO,KAAK,eAAe,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC7F,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe;YACnD,UAAU,EAAE,eAAe,KAAK,gBAAgB,CAAC,CAAC,CAAC,gBAAgB;gBACjE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC,8BAA8B;oBAC/G,CAAC,CAAC,eAAe,KAAK,cAAc,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS;wBAC5G,CAAC,CAAC,+BAA+B;SACpC;QACD,MAAM;QACN,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE;gBACvB,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;gBAClF,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,eAAe,EAAE,oBAAoB,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBAC7F,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS;gBAC5G,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO;gBAC7C,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS;gBACzG,UAAU,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE;gBAC/E,QAAQ,EAAE,yGAAyG;aACpH,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAA0C;IACrE,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;IAC9E,MAAM,KAAK,GAAG,CAAC,aAAa,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9C,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAE,CAAC,EAAE;YAAE,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QAC1H,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;IAC9D,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrH,IAAI,MAAM,CAAC,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACzG,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"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"}
@@ -54,8 +54,8 @@ type McpStartLoginInput = {
54
54
  };
55
55
  /**
56
56
  * Sign in for `frely mcp start` when needed. With an install token the server approves this CLI's own
57
- * device code and preapproves device MCP: no browser and no prompt. An existing valid login always wins;
58
- * the token is then left unused, so an account is never switched silently.
57
+ * device code and preapproves device MCP: no browser and no prompt. The token is the user's explicit choice
58
+ * of account, so it replaces any existing login; without a token a valid login is kept.
59
59
  * Returns the MCP setup overrides that go with a preapproval.
60
60
  */
61
61
  export declare function mcpStartLogin(input: McpStartLoginInput, deps?: McpStartLoginDeps): Promise<{
@@ -162,8 +162,8 @@ export function takeInstallToken(env = process.env) {
162
162
  }
163
163
  /**
164
164
  * Sign in for `frely mcp start` when needed. With an install token the server approves this CLI's own
165
- * device code and preapproves device MCP: no browser and no prompt. An existing valid login always wins;
166
- * the token is then left unused, so an account is never switched silently.
165
+ * device code and preapproves device MCP: no browser and no prompt. The token is the user's explicit choice
166
+ * of account, so it replaces any existing login; without a token a valid login is kept.
167
167
  * Returns the MCP setup overrides that go with a preapproval.
168
168
  */
169
169
  export async function mcpStartLogin(input, deps = { requireLogin, loginDevice, redeemInstallToken, finishDeviceLogin, readConfig }) {
@@ -172,11 +172,8 @@ export async function mcpStartLogin(input, deps = { requireLogin, loginDevice, r
172
172
  throw error;
173
173
  return null;
174
174
  });
175
- if (signedIn) {
176
- if (input.installToken)
177
- input.notify(`The install token was not used: this computer is already signed in to Frely as ${signedIn.email}. If that is not the account you meant, run \`frely logout\` and run the install command again.\n`);
175
+ if (signedIn && !input.installToken)
178
176
  return {};
179
- }
180
177
  if (!input.installToken) {
181
178
  // MCP authorization needs an account: sign in first (the browser page also creates new accounts).
182
179
  const { user } = await deps.loginDevice(undefined, ({ verificationUri, userCode }) => {
@@ -195,7 +192,7 @@ export async function mcpStartLogin(input, deps = { requireLogin, loginDevice, r
195
192
  const { user } = await deps.finishDeviceLogin(redeemed.relayUrl, redeemed.device, localDeviceId(previous?.deviceId));
196
193
  input.notify(`Signed in to Frely as ${user.email} with the install command.\n`);
197
194
  if (previous && previous.user.email !== user.email)
198
- input.notify(`This replaces the earlier sign-in of ${previous.user.email} on this computer, which was no longer valid.\n`);
195
+ input.notify(`This replaces the earlier sign-in of ${previous.user.email} on this computer.\n`);
199
196
  if (!redeemed.mcpPreapproval) {
200
197
  input.notify("Frely did not preapprove device MCP for this install command; open the approval link below in a browser signed in to Frely.\n");
201
198
  return { workspace, days: String(days) };
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-command.js","sourceRoot":"","sources":["../src/mcp-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACxH,OAAO,EAAE,8BAA8B,EAAE,cAAc,EAAE,kBAAkB,EAAE,8BAA8B,EAAE,gBAAgB,EAAE,YAAY,EAAE,uBAAuB,EAAE,qBAAqB,EAA2D,MAAM,wBAAwB,CAAC;AACrR,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEjF;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAwB;IACvD,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IACxB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM;QAAE,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAChH,wFAAwF;IACxF,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3K,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,8CAA8C;IAC9C,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK;QAAE,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IACzC,IAAI,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAC3K,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;IACxB,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC7C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACtF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QAC3B,mFAAmF;QACnF,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACzC,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;YACvJ,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QAC1H,sDAAsD;QACtD,IAAI,SAAS,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,SAAS,4BAA4B,CAAC,CAAC;QAC5F,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,SAAS,mCAAmC,CAAC,CAAC;QAC5G,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACvB,iGAAiG;QACjG,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACzC,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;YAC/I,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACtH,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,SAAS,4BAA4B,CAAC,CAAC;QACxF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,YAAY,GAAsC;QACtD,KAAK,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC;QAChC,KAAK,EAAE,CAAC,aAAa,EAAE,uBAAuB,EAAE,4BAA4B,CAAC;QAC7E,KAAK,EAAE,CAAC,aAAa,CAAC;KACvB,CAAC;IACF,MAAM,KAAK,GAAsC;QAC/C,KAAK,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,cAAc,CAAC;QAC7C,MAAM,EAAE,CAAC,QAAQ,CAAC;QAClB,KAAK,EAAE,CAAC,iBAAiB,CAAC;KAC3B,CAAC;IACF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACrB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAClF,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QACpH,CAAC;aAAM,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAqB,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IACnE,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACxF,OAAO,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,GAAG,CAAC;AAC/F,CAAC;AAID,KAAK,UAAU,cAAc,CAAC,QAA4B,EAAE,SAA6B;IACvF,IAAI,CAAC,QAAQ,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO;IACjD,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IACrD,IAAI,SAAS,KAAK,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,qCAAqC,QAAQ,CAAC,KAAK,CAAC,SAAS,6HAA6H,CAAC,CAAC;IAC9M,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,QAA4B,EAC5B,KAAoB,EACpB,iBAA2C,iBAAiB;IAE5D,MAAM,SAAS,GAAG,QAAQ,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,IAAI,OAAO,EAAE,CAAC;IAC5E,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,yCAAyC,SAAS,IAAI,CAAC,CAAC,CAAC,2BAA2B,SAAS,IAAI,CAAC,CAAC;IAC3H,MAAM,aAAa,GAAG,MAAM,qBAAqB,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE;QACvI,KAAK,CAAC,MAAM,CAAC,uCAAuC,IAAI,mBAAmB,aAAa,cAAc,eAAe,IAAI,CAAC,CAAC;IAC7H,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACjB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACpE,KAAK,CAAC,MAAM,CAAC,uBAAuB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC;IAClF,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,KAAoB,EACpB,iBAA2C,iBAAiB;IAE5D,MAAM,QAAQ,GAAG,MAAM,8BAA8B,CAAC,MAAM,8BAA8B,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACxH,MAAM,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,QAAQ,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,uBAAuB,EAAE,CAAC;IACvG,OAAO,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;AACnD,CAAC;AAQD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,KAAoB,EACpB,OAAqB,EAAE,cAAc,EAAE,iBAAiB,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE;IAExG,MAAM,QAAQ,GAAG,MAAM,8BAA8B,CAAC,MAAM,8BAA8B,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACxH,MAAM,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,CAAC,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAC5H,MAAM,aAAa,GAAG,MAAM,uBAAuB,EAAE,CAAC;IACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;IAC1C,IAAI,MAAM,CAAC,MAAM;QAAE,KAAK,CAAC,MAAM,CAAC,uCAAuC,CAAC,CAAC;SACpE,CAAC;QACJ,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACxH,KAAK,CAAC,MAAM,CAAC,uBAAuB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACnE,MAAM,KAAK,GAAG,GAAG,CAAC,mBAAmB,EAAE,IAAI,EAAE,CAAC;IAC9C,OAAO,GAAG,CAAC,mBAAmB,CAAC;IAC/B,OAAO,KAAK,IAAI,SAAS,CAAC;AAC5B,CAAC;AAYD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,KAAyB,EACzB,OAA0B,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,UAAU,EAAE;IAE1G,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAc,EAAE,EAAE;QACtF,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,IAAI,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAAE,MAAM,KAAK,CAAC;QACvF,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACH,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,KAAK,CAAC,YAAY;YAAE,KAAK,CAAC,MAAM,CAAC,kFAAkF,QAAQ,CAAC,KAAK,mGAAmG,CAAC,CAAC;QAC1O,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QACxB,kGAAkG;QAClG,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,EAAE;YACnF,KAAK,CAAC,MAAM,CAAC,mEAAmE,eAAe,kBAAkB,QAAQ,6BAA6B,CAAC,CAAC;QAC1J,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;QAC9C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,kGAAkG;IAClG,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,kBAAkB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACtF,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,IAAI,OAAO,EAAE,KAAK,CAAC,SAAS,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC;IACpG,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,gBAAgB,CAAC,CAAC;IACxF,MAAM,GAAG,GAAG,EAAE,GAAG,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IACnF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IACrH,KAAK,CAAC,MAAM,CAAC,yBAAyB,IAAI,CAAC,KAAK,8BAA8B,CAAC,CAAC;IAChF,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK;QAAE,KAAK,CAAC,MAAM,CAAC,wCAAwC,QAAQ,CAAC,IAAI,CAAC,KAAK,iDAAiD,CAAC,CAAC;IAC/K,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;QAC7B,KAAK,CAAC,MAAM,CAAC,+HAA+H,CAAC,CAAC;QAC9I,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;IAC3C,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa,EAAE,WAAW,EAAE,QAAQ,CAAC,cAAc,EAAE,EAAE,CAAC;AAC/H,CAAC"}
1
+ {"version":3,"file":"mcp-command.js","sourceRoot":"","sources":["../src/mcp-command.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "frely-cli",
3
- "version": "0.19.0",
3
+ "version": "0.19.2",
4
4
  "description": "Frely account CLI and local MCP runtime",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {