frely-cli 0.9.5 → 0.9.7

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 (78) hide show
  1. package/README.md +30 -8
  2. package/README.zh-CN.md +18 -7
  3. package/dist/agent-help.d.ts +110 -14
  4. package/dist/agent-help.js +20 -9
  5. package/dist/agent-help.js.map +1 -1
  6. package/dist/auth.d.ts +14 -1
  7. package/dist/auth.js +14 -22
  8. package/dist/auth.js.map +1 -1
  9. package/dist/cloud.d.ts +11 -1
  10. package/dist/cloud.js +73 -1
  11. package/dist/cloud.js.map +1 -1
  12. package/dist/computer/command.d.ts +6 -0
  13. package/dist/computer/command.js +53 -0
  14. package/dist/computer/command.js.map +1 -0
  15. package/dist/computer/guard.d.ts +18 -0
  16. package/dist/computer/guard.js +82 -0
  17. package/dist/computer/guard.js.map +1 -0
  18. package/dist/computer/image.d.ts +22 -0
  19. package/dist/computer/image.js +183 -0
  20. package/dist/computer/image.js.map +1 -0
  21. package/dist/computer/ocu.d.ts +40 -0
  22. package/dist/computer/ocu.js +59 -0
  23. package/dist/computer/ocu.js.map +1 -0
  24. package/dist/computer/runtime.d.ts +22 -0
  25. package/dist/computer/runtime.js +85 -0
  26. package/dist/computer/runtime.js.map +1 -0
  27. package/dist/computer/server.d.ts +11 -0
  28. package/dist/computer/server.js +31 -0
  29. package/dist/computer/server.js.map +1 -0
  30. package/dist/computer/state.d.ts +11 -0
  31. package/dist/computer/state.js +17 -0
  32. package/dist/computer/state.js.map +1 -0
  33. package/dist/computer/toolset.d.ts +22 -0
  34. package/dist/computer/toolset.js +112 -0
  35. package/dist/computer/toolset.js.map +1 -0
  36. package/dist/device/protocol.d.ts +2 -0
  37. package/dist/device/protocol.js +7 -1
  38. package/dist/device/protocol.js.map +1 -1
  39. package/dist/device/relay-client.d.ts +3 -0
  40. package/dist/device/relay-client.js +7 -1
  41. package/dist/device/relay-client.js.map +1 -1
  42. package/dist/index.js +103 -40
  43. package/dist/index.js.map +1 -1
  44. package/dist/local-mcp-command.d.ts +10 -0
  45. package/dist/local-mcp-command.js +105 -0
  46. package/dist/local-mcp-command.js.map +1 -0
  47. package/dist/mcp-authorization.d.ts +11 -2
  48. package/dist/mcp-authorization.js +21 -6
  49. package/dist/mcp-authorization.js.map +1 -1
  50. package/dist/mcp-command.d.ts +2 -1
  51. package/dist/mcp-command.js +18 -2
  52. package/dist/mcp-command.js.map +1 -1
  53. package/dist/provider/control.d.ts +8 -2
  54. package/dist/provider/control.js.map +1 -1
  55. package/dist/runtime/local-mcp.d.ts +114 -0
  56. package/dist/runtime/local-mcp.js +448 -0
  57. package/dist/runtime/local-mcp.js.map +1 -0
  58. package/dist/runtime/mcp.d.ts +20 -0
  59. package/dist/runtime/mcp.js +29 -0
  60. package/dist/runtime/mcp.js.map +1 -1
  61. package/dist/runtime/relay-mcp.d.ts +3 -1
  62. package/dist/runtime/relay-mcp.js +5 -1
  63. package/dist/runtime/relay-mcp.js.map +1 -1
  64. package/dist/runtime/relay-session.d.ts +2 -2
  65. package/dist/runtime/relay-session.js +1 -1
  66. package/dist/runtime/relay-session.js.map +1 -1
  67. package/dist/runtime/sandbox.js +3 -0
  68. package/dist/runtime/sandbox.js.map +1 -1
  69. package/dist/skill/cloud-item.d.ts +38 -0
  70. package/dist/skill/cloud-item.js +151 -0
  71. package/dist/skill/cloud-item.js.map +1 -0
  72. package/dist/upgrade/maintenance.js +1 -1
  73. package/dist/upgrade/maintenance.js.map +1 -1
  74. package/dist/upgrade/service-refresh.js +1 -1
  75. package/dist/upgrade/service-refresh.js.map +1 -1
  76. package/dist/upgrade/update.js +2 -2
  77. package/dist/upgrade/update.js.map +1 -1
  78. package/package.json +1 -1
package/README.md CHANGED
@@ -75,10 +75,14 @@ On the computer to control, enable file, shell and process access:
75
75
  frely mcp url --workspace /path/to/project
76
76
  ```
77
77
 
78
- `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 current 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..180` selects a duration.
78
+ `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 current 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.
79
79
 
80
80
  `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.
81
81
 
82
+ ### Local MCP servers on this computer
83
+
84
+ 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.
85
+
82
86
  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.
83
87
 
84
88
  For Claude Code on the calling computer:
@@ -89,7 +93,7 @@ claude mcp add --transport http frely "<MCP_URL>"
89
93
 
90
94
  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.
91
95
 
92
- 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 180` 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/account/connections`).
96
+ 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/account/connections`).
93
97
 
94
98
  ### Invoke a Frely-hosted Agent
95
99
 
@@ -124,6 +128,16 @@ printf '%s' 'Your complete task' | \
124
128
 
125
129
  `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
130
 
131
+ ### Install marketplace Prompts and Skills
132
+
133
+ ```sh
134
+ frely item install <item-id> --host claude-code
135
+ ```
136
+
137
+ `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.
138
+
139
+ 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.
140
+
127
141
  ## Local model sharing
128
142
 
129
143
  Publish a loopback OpenAI-compatible runtime as a Frely personal Provider. Ollama is the default driver:
@@ -142,10 +156,14 @@ frely provider share openai-compatible \
142
156
  --name "Local GPU"
143
157
  ```
144
158
 
145
- Requirements: Frely login, one empty active personal Provider slot, loopback HTTP, OpenAI-compatible `/v1` (default Ollama endpoint `http://127.0.0.1:11434/v1`). Model names cannot contain whitespace or `/`.
159
+ 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 `/`.
146
160
 
147
161
  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.
148
162
 
163
+ ### Use a local model as the base of your own Agent (Creator)
164
+
165
+ 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.
166
+
149
167
  Provider inspection:
150
168
 
151
169
  ```sh
@@ -159,10 +177,10 @@ If setup stops after the Provider was prepared, run `frely provider share` again
159
177
  ```sh
160
178
  frely doctor # signed-in account, installation path, distribution, latest stable, MCP/service state
161
179
  frely doctor -v # + config paths, runtime details, authorization expiry, last heartbeat, sanitized errors
162
- frely upgrade # updates the running installation in place
180
+ frely update # updates the running installation in place
163
181
  ```
164
182
 
165
- `frely upgrade` 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, `upgrade` prints a PowerShell command for the detected installation to run in a local terminal.
183
+ `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.
166
184
 
167
185
  `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.
168
186
 
@@ -202,16 +220,20 @@ The public MCP URL is the canonical resource returned by Relay, `https://mcp.fre
202
220
  frely login [--relay <https-url>] [--no-browser]
203
221
  frely logout
204
222
  frely doctor [-v] [--json]
205
- frely upgrade
206
- frely mcp url [--workspace <path>] [--days 1..180] [--json]
223
+ frely update
224
+ frely mcp url [--workspace <path>] [--days 1..365] [--json]
207
225
  frely mcp workspace list [--json]
208
226
  frely mcp workspace add|remove <path>
227
+ frely mcp local list [--json]
228
+ frely mcp local add <name> (--url <address> | -- <command> [args...])
229
+ frely mcp local remove <name>
209
230
  frely mcp stop|start|remove
210
231
  frely agent install <distribution-id|manifest-url> [--host chatgpt|codex|claude-code|pi|generic] [--scope global|project] [--api-key-stdin] [--json]
211
232
  frely agent run <distribution-id> (--input <text>|--input-stdin) [--json]
212
233
  frely agent status (<distribution-id>|--api-key-stdin [--relay <url>]) [--json]
213
234
  frely agent remove <distribution-id> [--json]
214
- frely provider share [ollama|openai-compatible] [--url <loopback-v1-url>] [--models <a,b>] [--slot <slot-id>] [--name <name>]
235
+ frely item install <item-id> [--host chatgpt|codex|claude-code|pi|generic] [--scope global|project] [--dir <path>] [--json]
236
+ frely provider share [ollama|openai-compatible] [--url <loopback-v1-url>] [--models <a,b>] [--slot <slot-id> | --creator] [--name <name>]
215
237
  frely provider list [--json]
216
238
  frely cloud list|describe|call
217
239
  ```
package/README.zh-CN.md CHANGED
@@ -75,10 +75,14 @@ frely login
75
75
  frely mcp url --workspace /path/to/project
76
76
  ```
77
77
 
78
- `frely login` 通过浏览器设备授权获取受限账号会话。首次运行 `frely mcp url` 会初始化独立的 MCP 安全密钥、请求浏览器批准该设备与工作区(省略 `--workspace` 时为当前目录)、安装用户级 Device Relay 服务(macOS LaunchAgent、Linux systemd 用户单元或 Windows 任务计划程序),并打印 MCP URL。默认授权 90 天,`--days 1..180` 可选时长。
78
+ `frely login` 通过浏览器设备授权获取受限账号会话。首次运行 `frely mcp url` 会初始化独立的 MCP 安全密钥、请求浏览器批准该设备与工作区(省略 `--workspace` 时为当前目录)、安装用户级 Device Relay 服务(macOS LaunchAgent、Linux systemd 用户单元或 Windows 任务计划程序),并打印 MCP URL。默认授权 90 天,`--days 1..365` 可选时长。
79
79
 
80
80
  `frely mcp url` 是幂等的:启用后再次运行只打印同一个 URL,需要地址时直接再运行即可。提示走 stderr,stdout 保持单一 URL(或 `--json` 时一个 JSON 对象);批准或安装失败则不打印 URL。要开放更多目录,用 `frely mcp workspace add <path>`;`frely mcp workspace list` 列出所有目录。只输入命令组而不带子命令(如 `frely mcp workspace`、`frely agent`)时,会显示该组下可用的子命令。
81
81
 
82
+ ### 这台电脑上的本机 MCP 服务
83
+
84
+ 远程 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` 访问,运行在命令沙箱之外,使用你的用户账号。只会连接回环地址;请求头和环境变量的值只保存在本机。
85
+
82
86
  把打印的完整 URL 添加到支持 OAuth 的远程 MCP 客户端,选择 OAuth 并完成授权。保持电脑在线。验证首次连接:让客户端只列出所选工作区的顶层名称,不写文件、不跑 shell 命令——返回与目录一致的结果即连通。
83
87
 
84
88
  调用端的 Claude Code:
@@ -89,7 +93,7 @@ claude mcp add --transport http frely "<MCP_URL>"
89
93
 
90
94
  在 Claude Code 中打开 `/mcp` 完成 OAuth 授权。一个 URL 覆盖账户下所有已开启 MCP 的设备:`list_devices` 列出设备及其工作区,其余工具都带 `device` 参数(设备名或 id)。让 Agent 用 Frely 工具做远程工作;它自带的 shell 仍跑在调用端电脑。客户端共享各设备的工作区与托管进程。
91
95
 
92
- 授权生命周期:授权过期后,`frely mcp url` 会请求新的批准并轮换 MCP 执行密钥;`frely mcp url --days 180` 可提前续期。MCP URL 对你的所有设备相同,续期也不会改变。登录刷新、OAuth 刷新与重启都不延长授权。`frely mcp stop|start` 暂停或恢复后台服务;`frely mcp remove` 撤销所有客户端的访问并卸载服务(本机有本地 Provider 时服务改为仅 Provider 模式继续运行)。在 Frely → **Device MCP**(`/user/account/connections`)管理你的设备。
96
+ 授权生命周期:授权过期后,`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/account/connections`)管理你的设备。
93
97
 
94
98
  ### 调用 Frely 托管的 Agent
95
99
 
@@ -146,6 +150,10 @@ frely provider share openai-compatible \
146
150
 
147
151
  该命令创建服务端管理的 `openai-compatible` 个人 Provider,把本地端点存入仅属主可读的 CLI 状态,启动 Device Relay 服务,用设备 Ed25519 key 签署 Provider 凭证,配置 CPA 并启用声明的模型。现有 Frely Access Point 与 API-key 流程即可消费该 Provider。
148
152
 
153
+ ### 用本地模型作为自己 Agent 的底座(Creator)
154
+
155
+ 没有空闲的个人 Provider 名额,或加上 `--creator` 时,`frely provider share` 会创建 Creator Provider,计入 Creator 套餐名额(Creator 3 个,Creator Plus 100 个)。它启用的模型会出现在 Frely 创建 Agent 的模型选择里。Provider 本身不对外售卖:买家调用的是你的 Agent,由你的模型驱动。Agent 被使用期间本机需保持在线,并且本地运行时的响应需包含 `usage`。
156
+
149
157
  Provider 检查:
150
158
 
151
159
  ```sh
@@ -159,10 +167,10 @@ frely provider list
159
167
  ```sh
160
168
  frely doctor # 当前账号、安装路径、发行形态、最新稳定版、MCP/服务状态
161
169
  frely doctor -v # 另加配置路径、运行时细节、授权到期、最近心跳、脱敏错误
162
- frely upgrade # 原地升级当前正在运行的安装
170
+ frely update # 原地升级当前正在运行的安装
163
171
  ```
164
172
 
165
- `frely upgrade` 永不换安装器、不改 PATH、不降级更新版本。standalone 下载会先校验 SHA-256 并做启动测试再替换可执行文件;npm/Bun 安装保持原全局目录。匹配的、正在运行的 Device Relay 服务会被暂停维护、重启并在安装后检查;凭证、设备身份、MCP URL、工作区与授权到期均保留。Windows 上 `upgrade` 打印检测到安装方式对应的 PowerShell 命令,请在本地终端执行。
173
+ `frely update` 永不换安装器、不改 PATH、不降级更新版本。standalone 下载会先校验 SHA-256 并做启动测试再替换可执行文件;npm/Bun 安装保持原全局目录。匹配的、正在运行的 Device Relay 服务会被暂停维护、重启并在安装后检查;凭证、设备身份、MCP URL、工作区与授权到期均保留。Windows 上 `update` 打印检测到安装方式对应的 PowerShell 命令,请在本地终端执行。
166
174
 
167
175
  `frely doctor` 是唯一诊断入口,永不重启服务。“Connected” 表示匹配的账号/设备进程在 75 秒内收到 WebSocket 心跳,且 MCP 授权与工作区与运行中的 relay 匹配。两种模式都不代替客户端完成 OAuth 授权,也不代替执行工具调用。`frely doctor --mcp` 是检查受保护凭证和服务端授权状态的推荐方式。
168
176
 
@@ -202,16 +210,19 @@ MCP 密钥使用 AES-256-GCM 文件,主密钥存 macOS Keychain、Windows 凭
202
210
  frely login [--relay <https-url>] [--no-browser]
203
211
  frely logout
204
212
  frely doctor [-v] [--json]
205
- frely upgrade
206
- frely mcp url [--workspace <path>] [--days 1..180] [--json]
213
+ frely update
214
+ frely mcp url [--workspace <path>] [--days 1..365] [--json]
207
215
  frely mcp workspace list [--json]
208
216
  frely mcp workspace add|remove <path>
217
+ frely mcp local list [--json]
218
+ frely mcp local add <name> (--url <address> | -- <command> [args...])
219
+ frely mcp local remove <name>
209
220
  frely mcp stop|start|remove
210
221
  frely agent install <distribution-id|manifest-url> [--host chatgpt|codex|claude-code|pi|generic] [--scope global|project] [--api-key-stdin] [--json]
211
222
  frely agent run <distribution-id> (--input <text>|--input-stdin) [--json]
212
223
  frely agent status (<distribution-id>|--api-key-stdin [--relay <url>]) [--json]
213
224
  frely agent remove <distribution-id> [--json]
214
- frely provider share [ollama|openai-compatible] [--url <loopback-v1-url>] [--models <a,b>] [--slot <slot-id>] [--name <name>]
225
+ frely provider share [ollama|openai-compatible] [--url <loopback-v1-url>] [--models <a,b>] [--slot <slot-id> | --creator] [--name <name>]
215
226
  frely provider list [--json]
216
227
  frely cloud list|describe|call
217
228
  ```
@@ -1,9 +1,9 @@
1
1
  export declare const COMMANDS: readonly [{
2
2
  readonly id: "login";
3
- readonly usage: "frely login [--relay <url>] [--no-browser]";
4
- readonly auth: "browser";
3
+ readonly usage: "frely login [--relay <url>] [--no-browser] | frely login --email <address> [--invite <link>] [--mcp] [--workspace <path>] [--days <n>] then frely login --code <6-digit code>";
4
+ readonly auth: "browser-or-email";
5
5
  readonly effect: "authorization";
6
- readonly purpose: "Authorize the CLI for the user's Frely account.";
6
+ readonly purpose: "Authorize the CLI for the user's Frely account. With --email, Frely emails a code; the user pastes it into `frely login --code`. Add --mcp to also enable device MCP for the workspace (default 90 days) once the code is verified; do this when the user is registering for the first time, and tell them before asking for the code.";
7
7
  }, {
8
8
  readonly id: "logout";
9
9
  readonly usage: "frely logout";
@@ -17,11 +17,11 @@ export declare const COMMANDS: readonly [{
17
17
  readonly effect: "diagnostic";
18
18
  readonly purpose: "Show the signed-in account, installation, available upgrades, MCP and connection status; -v verifies the account online and runs detailed diagnostics.";
19
19
  }, {
20
- readonly id: "upgrade";
21
- readonly usage: "frely upgrade";
20
+ readonly id: "update";
21
+ readonly usage: "frely update";
22
22
  readonly auth: "none";
23
23
  readonly effect: "local-write";
24
- readonly purpose: "Upgrade the current installation to the latest stable release. Windows prints a manual command; doctor checks versions.";
24
+ readonly purpose: "Update the current installation to the latest stable release. Windows prints a manual command; doctor checks versions.";
25
25
  }, {
26
26
  readonly id: "help";
27
27
  readonly usage: "frely help --agent --json";
@@ -30,7 +30,7 @@ export declare const COMMANDS: readonly [{
30
30
  readonly purpose: "Read this installed CLI's current Agent instructions.";
31
31
  }, {
32
32
  readonly id: "mcp.url";
33
- readonly usage: "frely mcp url [--workspace <path>] [--days 1..180] [--json]";
33
+ readonly usage: "frely mcp url [--workspace <path>] [--days 1..365] [--json]";
34
34
  readonly auth: "account-and-browser-if-needed";
35
35
  readonly effect: "authorization-if-needed";
36
36
  readonly purpose: "Enable, renew or read device MCP. Unconfigured: request browser approval for --workspace (default: current directory) and install the background service. Expired or --days given: renew with browser approval; the MCP URL stays the same. Otherwise print the MCP URL unchanged. Prompts go to stderr; stdout holds only the URL, or JSON with HTTP transport and OAuth details.";
@@ -52,6 +52,24 @@ export declare const COMMANDS: readonly [{
52
52
  readonly auth: "mcp";
53
53
  readonly effect: "local-write";
54
54
  readonly purpose: "Remove an additional workspace directory (the primary cannot be removed).";
55
+ }, {
56
+ readonly id: "mcp.local.list";
57
+ readonly usage: "frely mcp local list [--json]";
58
+ readonly auth: "none";
59
+ readonly effect: "read";
60
+ readonly purpose: "List MCP servers on this device that remote clients could use: loopback HTTP servers found automatically plus ones added by hand. Every server is off for remote clients until the owner turns it on in the web console.";
61
+ }, {
62
+ readonly id: "mcp.local.add";
63
+ readonly usage: "frely mcp local add <name> --url <http://127.0.0.1:port/path> [--header K=V] | frely mcp local add <name> [--env K=V] -- <command> [args...]";
64
+ readonly auth: "none";
65
+ readonly effect: "local-write";
66
+ readonly purpose: "Add a local MCP server by loopback URL or by the command that starts it (stdio). It is connected once to check it works; it stays off for remote clients until the owner turns it on in the web console.";
67
+ }, {
68
+ readonly id: "mcp.local.remove";
69
+ readonly usage: "frely mcp local remove <name>";
70
+ readonly auth: "none";
71
+ readonly effect: "local-write";
72
+ readonly purpose: "Remove a manually added local MCP server.";
55
73
  }, {
56
74
  readonly id: "mcp.stop";
57
75
  readonly usage: "frely mcp stop";
@@ -82,6 +100,12 @@ export declare const COMMANDS: readonly [{
82
100
  readonly auth: "account-and-mcp";
83
101
  readonly effect: "local-execution";
84
102
  readonly purpose: "Foreground Device Relay client; the background service runs this. Not needed for normal use.";
103
+ }, {
104
+ readonly id: "item.install";
105
+ readonly usage: "frely item install <item-id> [--host chatgpt|codex|claude-code|pi|generic] [--scope global|project] [--dir <path>] [--json]";
106
+ readonly auth: "cloud-oauth";
107
+ readonly effect: "local-write";
108
+ readonly purpose: "Install a download-install Prompt or Skill from the marketplace through Frely Cloud. The paid part is installed only with a valid pass; otherwise the command prints how to buy one. Skills go to the host Skill folder, Prompts to --dir (default: current directory). Scripts are saved without execute permission.";
85
109
  }, {
86
110
  readonly id: "agent.install";
87
111
  readonly usage: "frely agent install <distribution-id|manifest-url> [--host chatgpt|codex|claude-code|pi|generic] [--scope global|project] [--api-key-stdin] [--json]";
@@ -196,6 +220,30 @@ export declare const COMMANDS: readonly [{
196
220
  readonly auth: "local";
197
221
  readonly effect: "local-write";
198
222
  readonly purpose: "Uninstall the Frely App. Tasks, credentials and worktrees stay with frely-cli.";
223
+ }, {
224
+ readonly id: "computer.enable";
225
+ readonly usage: "frely computer enable";
226
+ readonly auth: "local";
227
+ readonly effect: "local-write";
228
+ readonly purpose: "Register computer use (desktop control by a remote MCP client) as the local MCP \"computer\" on this device. Run it only on a device you are sitting at. It still has to be turned on for remote clients on the Frely connections page; registering alone never exposes it.";
229
+ }, {
230
+ readonly id: "computer.disable";
231
+ readonly usage: "frely computer disable";
232
+ readonly auth: "local";
233
+ readonly effect: "local-write";
234
+ readonly purpose: "Remove the local MCP \"computer\" so computer use stops working on this device at once, whatever the web page says.";
235
+ }, {
236
+ readonly id: "computer.status";
237
+ readonly usage: "frely computer status [--json]";
238
+ readonly auth: "local";
239
+ readonly effect: "read";
240
+ readonly purpose: "Show whether computer use is registered locally, the runtime version it needs and whether it is installed.";
241
+ }, {
242
+ readonly id: "computer.mcp";
243
+ readonly usage: "frely computer mcp";
244
+ readonly auth: "local";
245
+ readonly effect: "local-execution";
246
+ readonly purpose: "Stdio MCP server for computer use; local MCP forwarding starts it. Not needed for normal use.";
199
247
  }, {
200
248
  readonly id: "network";
201
249
  readonly usage: "frely network setup|status|find|use|logout [--json]";
@@ -211,10 +259,10 @@ export declare function agentHelp(): {
211
259
  instructions: string[];
212
260
  commands: readonly [{
213
261
  readonly id: "login";
214
- readonly usage: "frely login [--relay <url>] [--no-browser]";
215
- readonly auth: "browser";
262
+ readonly usage: "frely login [--relay <url>] [--no-browser] | frely login --email <address> [--invite <link>] [--mcp] [--workspace <path>] [--days <n>] then frely login --code <6-digit code>";
263
+ readonly auth: "browser-or-email";
216
264
  readonly effect: "authorization";
217
- readonly purpose: "Authorize the CLI for the user's Frely account.";
265
+ readonly purpose: "Authorize the CLI for the user's Frely account. With --email, Frely emails a code; the user pastes it into `frely login --code`. Add --mcp to also enable device MCP for the workspace (default 90 days) once the code is verified; do this when the user is registering for the first time, and tell them before asking for the code.";
218
266
  }, {
219
267
  readonly id: "logout";
220
268
  readonly usage: "frely logout";
@@ -228,11 +276,11 @@ export declare function agentHelp(): {
228
276
  readonly effect: "diagnostic";
229
277
  readonly purpose: "Show the signed-in account, installation, available upgrades, MCP and connection status; -v verifies the account online and runs detailed diagnostics.";
230
278
  }, {
231
- readonly id: "upgrade";
232
- readonly usage: "frely upgrade";
279
+ readonly id: "update";
280
+ readonly usage: "frely update";
233
281
  readonly auth: "none";
234
282
  readonly effect: "local-write";
235
- readonly purpose: "Upgrade the current installation to the latest stable release. Windows prints a manual command; doctor checks versions.";
283
+ readonly purpose: "Update the current installation to the latest stable release. Windows prints a manual command; doctor checks versions.";
236
284
  }, {
237
285
  readonly id: "help";
238
286
  readonly usage: "frely help --agent --json";
@@ -241,7 +289,7 @@ export declare function agentHelp(): {
241
289
  readonly purpose: "Read this installed CLI's current Agent instructions.";
242
290
  }, {
243
291
  readonly id: "mcp.url";
244
- readonly usage: "frely mcp url [--workspace <path>] [--days 1..180] [--json]";
292
+ readonly usage: "frely mcp url [--workspace <path>] [--days 1..365] [--json]";
245
293
  readonly auth: "account-and-browser-if-needed";
246
294
  readonly effect: "authorization-if-needed";
247
295
  readonly purpose: "Enable, renew or read device MCP. Unconfigured: request browser approval for --workspace (default: current directory) and install the background service. Expired or --days given: renew with browser approval; the MCP URL stays the same. Otherwise print the MCP URL unchanged. Prompts go to stderr; stdout holds only the URL, or JSON with HTTP transport and OAuth details.";
@@ -263,6 +311,24 @@ export declare function agentHelp(): {
263
311
  readonly auth: "mcp";
264
312
  readonly effect: "local-write";
265
313
  readonly purpose: "Remove an additional workspace directory (the primary cannot be removed).";
314
+ }, {
315
+ readonly id: "mcp.local.list";
316
+ readonly usage: "frely mcp local list [--json]";
317
+ readonly auth: "none";
318
+ readonly effect: "read";
319
+ readonly purpose: "List MCP servers on this device that remote clients could use: loopback HTTP servers found automatically plus ones added by hand. Every server is off for remote clients until the owner turns it on in the web console.";
320
+ }, {
321
+ readonly id: "mcp.local.add";
322
+ readonly usage: "frely mcp local add <name> --url <http://127.0.0.1:port/path> [--header K=V] | frely mcp local add <name> [--env K=V] -- <command> [args...]";
323
+ readonly auth: "none";
324
+ readonly effect: "local-write";
325
+ readonly purpose: "Add a local MCP server by loopback URL or by the command that starts it (stdio). It is connected once to check it works; it stays off for remote clients until the owner turns it on in the web console.";
326
+ }, {
327
+ readonly id: "mcp.local.remove";
328
+ readonly usage: "frely mcp local remove <name>";
329
+ readonly auth: "none";
330
+ readonly effect: "local-write";
331
+ readonly purpose: "Remove a manually added local MCP server.";
266
332
  }, {
267
333
  readonly id: "mcp.stop";
268
334
  readonly usage: "frely mcp stop";
@@ -293,6 +359,12 @@ export declare function agentHelp(): {
293
359
  readonly auth: "account-and-mcp";
294
360
  readonly effect: "local-execution";
295
361
  readonly purpose: "Foreground Device Relay client; the background service runs this. Not needed for normal use.";
362
+ }, {
363
+ readonly id: "item.install";
364
+ readonly usage: "frely item install <item-id> [--host chatgpt|codex|claude-code|pi|generic] [--scope global|project] [--dir <path>] [--json]";
365
+ readonly auth: "cloud-oauth";
366
+ readonly effect: "local-write";
367
+ readonly purpose: "Install a download-install Prompt or Skill from the marketplace through Frely Cloud. The paid part is installed only with a valid pass; otherwise the command prints how to buy one. Skills go to the host Skill folder, Prompts to --dir (default: current directory). Scripts are saved without execute permission.";
296
368
  }, {
297
369
  readonly id: "agent.install";
298
370
  readonly usage: "frely agent install <distribution-id|manifest-url> [--host chatgpt|codex|claude-code|pi|generic] [--scope global|project] [--api-key-stdin] [--json]";
@@ -407,6 +479,30 @@ export declare function agentHelp(): {
407
479
  readonly auth: "local";
408
480
  readonly effect: "local-write";
409
481
  readonly purpose: "Uninstall the Frely App. Tasks, credentials and worktrees stay with frely-cli.";
482
+ }, {
483
+ readonly id: "computer.enable";
484
+ readonly usage: "frely computer enable";
485
+ readonly auth: "local";
486
+ readonly effect: "local-write";
487
+ readonly purpose: "Register computer use (desktop control by a remote MCP client) as the local MCP \"computer\" on this device. Run it only on a device you are sitting at. It still has to be turned on for remote clients on the Frely connections page; registering alone never exposes it.";
488
+ }, {
489
+ readonly id: "computer.disable";
490
+ readonly usage: "frely computer disable";
491
+ readonly auth: "local";
492
+ readonly effect: "local-write";
493
+ readonly purpose: "Remove the local MCP \"computer\" so computer use stops working on this device at once, whatever the web page says.";
494
+ }, {
495
+ readonly id: "computer.status";
496
+ readonly usage: "frely computer status [--json]";
497
+ readonly auth: "local";
498
+ readonly effect: "read";
499
+ readonly purpose: "Show whether computer use is registered locally, the runtime version it needs and whether it is installed.";
500
+ }, {
501
+ readonly id: "computer.mcp";
502
+ readonly usage: "frely computer mcp";
503
+ readonly auth: "local";
504
+ readonly effect: "local-execution";
505
+ readonly purpose: "Stdio MCP server for computer use; local MCP forwarding starts it. Not needed for normal use.";
410
506
  }, {
411
507
  readonly id: "network";
412
508
  readonly usage: "frely network setup|status|find|use|logout [--json]";
@@ -1,19 +1,23 @@
1
1
  import { VERSION } from "./version.js";
2
2
  export const COMMANDS = [
3
- { id: "login", usage: "frely login [--relay <url>] [--no-browser]", auth: "browser", effect: "authorization", purpose: "Authorize the CLI for the user's Frely account." },
3
+ { id: "login", usage: "frely login [--relay <url>] [--no-browser] | frely login --email <address> [--invite <link>] [--mcp] [--workspace <path>] [--days <n>] then frely login --code <6-digit code>", auth: "browser-or-email", effect: "authorization", purpose: "Authorize the CLI for the user's Frely account. With --email, Frely emails a code; the user pastes it into `frely login --code`. Add --mcp to also enable device MCP for the workspace (default 90 days) once the code is verified; do this when the user is registering for the first time, and tell them before asking for the code." },
4
4
  { id: "logout", usage: "frely logout", auth: "none", effect: "local-write", purpose: "Remove login, revoke Cloud authorization and stop the MCP background service." },
5
5
  { id: "doctor", usage: "frely doctor [-v] [--json]", auth: "optional-account", effect: "diagnostic", purpose: "Show the signed-in account, installation, available upgrades, MCP and connection status; -v verifies the account online and runs detailed diagnostics." },
6
- { 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." },
6
+ { 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." },
7
7
  { id: "help", usage: "frely help --agent --json", auth: "none", effect: "read", purpose: "Read this installed CLI's current Agent instructions." },
8
- { id: "mcp.url", usage: "frely mcp url [--workspace <path>] [--days 1..180] [--json]", auth: "account-and-browser-if-needed", effect: "authorization-if-needed", purpose: "Enable, renew or read device MCP. Unconfigured: request browser approval for --workspace (default: current directory) and install the background service. Expired or --days given: renew with browser approval; the MCP URL stays the same. Otherwise print the MCP URL unchanged. Prompts go to stderr; stdout holds only the URL, or JSON with HTTP transport and OAuth details." },
8
+ { id: "mcp.url", usage: "frely mcp url [--workspace <path>] [--days 1..365] [--json]", auth: "account-and-browser-if-needed", effect: "authorization-if-needed", purpose: "Enable, renew or read device MCP. Unconfigured: request browser approval for --workspace (default: current directory) and install the background service. Expired or --days given: renew with browser approval; the MCP URL stays the same. Otherwise print the MCP URL unchanged. Prompts go to stderr; stdout holds only the URL, or JSON with HTTP transport and OAuth details." },
9
9
  { 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." },
10
10
  { id: "mcp.workspace.add", usage: "frely mcp workspace add <path>", auth: "mcp", effect: "local-write", purpose: "Add an additional workspace directory for this device." },
11
11
  { 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)." },
12
+ { id: "mcp.local.list", usage: "frely mcp local list [--json]", auth: "none", effect: "read", purpose: "List MCP servers on this device that remote clients could use: loopback HTTP servers found automatically plus ones added by hand. Every server is off for remote clients until the owner turns it on in the web console." },
13
+ { id: "mcp.local.add", usage: "frely mcp local add <name> --url <http://127.0.0.1:port/path> [--header K=V] | frely mcp local add <name> [--env K=V] -- <command> [args...]", auth: "none", effect: "local-write", purpose: "Add a local MCP server by loopback URL or by the command that starts it (stdio). It is connected once to check it works; it stays off for remote clients until the owner turns it on in the web console." },
14
+ { id: "mcp.local.remove", usage: "frely mcp local remove <name>", auth: "none", effect: "local-write", purpose: "Remove a manually added local MCP server." },
12
15
  { id: "mcp.stop", usage: "frely mcp stop", auth: "none", effect: "local-service", purpose: "Pause the local MCP background service. Supported upgrades restore running services without this command." },
13
16
  { id: "mcp.start", usage: "frely mcp start", auth: "none", effect: "local-service", purpose: "Resume the local MCP background service." },
14
17
  { id: "mcp.remove", usage: "frely mcp remove", auth: "account", effect: "remote-write", purpose: "Revoke device MCP for every connected client and uninstall the background service (kept running provider-only when local Providers exist)." },
15
18
  { id: "mcp.stdio", usage: "frely mcp stdio [--workspace <path>]", auth: "mcp", effect: "local-execution", purpose: "Serve authorized local tools over stdio for a local MCP client." },
16
19
  { id: "mcp.serve", usage: "frely mcp serve [--workspace <path>]", auth: "account-and-mcp", effect: "local-execution", purpose: "Foreground Device Relay client; the background service runs this. Not needed for normal use." },
20
+ { id: "item.install", usage: "frely item install <item-id> [--host chatgpt|codex|claude-code|pi|generic] [--scope global|project] [--dir <path>] [--json]", auth: "cloud-oauth", effect: "local-write", purpose: "Install a download-install Prompt or Skill from the marketplace through Frely Cloud. The paid part is installed only with a valid pass; otherwise the command prints how to buy one. Skills go to the host Skill folder, Prompts to --dir (default: current directory). Scripts are saved without execute permission." },
17
21
  { id: "agent.install", usage: "frely agent install <distribution-id|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." },
18
22
  { id: "agent.run", usage: "frely agent run <distribution-id> (--input <text>|--input-stdin) [--json]", auth: "installed-api-key-or-account", effect: "remote-call", purpose: "Send the complete relevant user request to the installed Agent through model-scoped MCP. Usage may be billed." },
19
23
  { id: "agent.status", usage: "frely agent status (<distribution-id>|--api-key-stdin [--relay <url>]) [--json]", auth: "none-or-api-key", effect: "read", purpose: "Inspect an installed Agent Skill and, for API-key installs, its Key budget. With --api-key-stdin, read that Key's budget without installing or logging in." },
@@ -33,6 +37,10 @@ export const COMMANDS = [
33
37
  { id: "app.status", usage: "frely app status [--json]", auth: "local", effect: "read", purpose: "Show whether the Frely App is installed, its version, install path, running state and how it is managed." },
34
38
  { id: "app.update", usage: "frely app update [--json]", auth: "local", effect: "local-write", purpose: "Update the Frely App through Homebrew or by re-downloading the latest release." },
35
39
  { id: "app.uninstall", usage: "frely app uninstall", auth: "local", effect: "local-write", purpose: "Uninstall the Frely App. Tasks, credentials and worktrees stay with frely-cli." },
40
+ { id: "computer.enable", usage: "frely computer enable", auth: "local", effect: "local-write", purpose: "Register computer use (desktop control by a remote MCP client) as the local MCP \"computer\" on this device. Run it only on a device you are sitting at. It still has to be turned on for remote clients on the Frely connections page; registering alone never exposes it." },
41
+ { id: "computer.disable", usage: "frely computer disable", auth: "local", effect: "local-write", purpose: "Remove the local MCP \"computer\" so computer use stops working on this device at once, whatever the web page says." },
42
+ { id: "computer.status", usage: "frely computer status [--json]", auth: "local", effect: "read", purpose: "Show whether computer use is registered locally, the runtime version it needs and whether it is installed." },
43
+ { id: "computer.mcp", usage: "frely computer mcp", auth: "local", effect: "local-execution", purpose: "Stdio MCP server for computer use; local MCP forwarding starts it. Not needed for normal use." },
36
44
  { id: "network", usage: "frely network setup|status|find|use|logout [--json]", auth: "network", effect: "subcommand-dependent", purpose: "Access Frely Network (preview) using its separate setup and credentials." },
37
45
  ];
38
46
  export function agentHelp() {
@@ -59,9 +67,10 @@ export function agentHelp() {
59
67
  };
60
68
  }
61
69
  const GROUPS = [
62
- { title: "Account", ids: ["login", "logout", "doctor", "upgrade"] },
63
- { title: "Device MCP", ids: ["mcp.url", "mcp.workspace", "mcp.lifecycle"] },
70
+ { title: "Account", ids: ["login", "logout", "doctor", "update"] },
71
+ { title: "Device MCP", ids: ["mcp.url", "mcp.workspace", "mcp.local", "mcp.lifecycle"] },
64
72
  { title: "Agents", ids: ["agent.install", "agent.run", "agent.status", "agent.remove"] },
73
+ { title: "Marketplace items", ids: ["item.install"] },
65
74
  { title: "Providers", ids: ["provider.share", "provider.list"] },
66
75
  { title: "Cloud", ids: ["cloud"] },
67
76
  ];
@@ -73,10 +82,12 @@ const SHORT_USAGE = {
73
82
  login: "frely login [--no-browser]",
74
83
  logout: "frely logout",
75
84
  doctor: "frely doctor [-v] [--json]",
76
- upgrade: "frely upgrade",
77
- "mcp.url": "frely mcp url [--workspace <path>] [--days 1..180] [--json]",
85
+ update: "frely update",
86
+ "mcp.url": "frely mcp url [--workspace <path>] [--days 1..365] [--json]",
78
87
  "mcp.workspace": "frely mcp workspace list|add <path>|remove <path>",
88
+ "mcp.local": "frely mcp local list|add <name> (--url <address>|-- <command>)|remove <name>",
79
89
  "mcp.lifecycle": "frely mcp stop|start|remove",
90
+ "item.install": "frely item install <item-id> [--host <host>]",
80
91
  "agent.install": "frely agent install <distribution-id> [--host <host>] [--api-key-stdin]",
81
92
  "agent.run": "frely agent run <distribution-id> (--input <text>|--input-stdin)",
82
93
  "agent.status": "frely agent status <distribution-id>",
@@ -107,10 +118,10 @@ export function subcommandUsage(group) {
107
118
  }
108
119
  export function mcpUsage() {
109
120
  return "Device MCP — use this computer from a remote MCP client.\n\nUsage:\n"
110
- + ["mcp.url", "mcp.workspace", "mcp.lifecycle"].map((id) => " " + SHORT_USAGE[id] + "\n").join("")
121
+ + ["mcp.url", "mcp.workspace", "mcp.local", "mcp.lifecycle"].map((id) => " " + SHORT_USAGE[id] + "\n").join("")
111
122
  + "\nStatus and diagnostics: frely doctor [-v] [--json]\n\n"
112
123
  + "Run frely mcp url on the computer to control. It asks for browser approval the first time (current directory, or --workspace) and when authorization has expired, installs the background service, and prints the MCP URL. Add that URL to ChatGPT, Claude Code on another computer, or another HTTP MCP client, then authorize with OAuth.\n"
113
- + "Prompts go to stderr; stdout contains only the URL or JSON. --days 1..180 renews now; the URL stays the same.\n"
124
+ + "Prompts go to stderr; stdout contains only the URL or JSON. --days 1..365 renews now; the URL stays the same.\n"
114
125
  + "frely mcp remove revokes access for every client. Clients share the device workspace and managed processes. Shell runs under the device OS account.\n";
115
126
  }
116
127
  //# sourceMappingURL=agent-help.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-help.js","sourceRoot":"","sources":["../src/agent-help.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-help.js","sourceRoot":"","sources":["../src/agent-help.ts"],"names":[],"mappings":"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"}
package/dist/auth.d.ts CHANGED
@@ -63,11 +63,19 @@ export interface EmailDeviceChallenge {
63
63
  deviceCode: string;
64
64
  email: string;
65
65
  expiresIn: number;
66
+ /** Device MCP request prepared before the code is entered; `privateKeyPem` never leaves this machine. */
67
+ mcp?: {
68
+ privateKeyPem: string;
69
+ keyThumbprint: string;
70
+ workspace: string;
71
+ days: number;
72
+ };
66
73
  }
67
- export declare function initEmailDeviceLogin(relayInput: string, email: string, invite?: string): Promise<EmailDeviceChallenge>;
74
+ export declare function initEmailDeviceLogin(relayInput: string, email: string, invite?: string, mcp?: EmailDeviceChallenge["mcp"]): Promise<EmailDeviceChallenge>;
68
75
  export declare function completeEmailDeviceLogin(relayInput: string, challenge: EmailDeviceChallenge, code: string): Promise<{
69
76
  user: PublicUser;
70
77
  sessionBound: boolean;
78
+ mcpPreapproval?: string;
71
79
  }>;
72
80
  export declare function loginDevice(relayInput?: string, notify?: (details: {
73
81
  verificationUri: string;
@@ -80,6 +88,11 @@ export declare function loginDevice(relayInput?: string, notify?: (details: {
80
88
  userCode: string;
81
89
  sessionBound: boolean;
82
90
  }>;
91
+ /** Poll the approved device code, then store the credentials and the signed-in user. */
92
+ export declare function finishDeviceLogin(relayUrl: string, device: DeviceCodeResponse | EmailDeviceChallenge, deviceId: string): Promise<{
93
+ user: PublicUser;
94
+ sessionBound: boolean;
95
+ }>;
83
96
  /**
84
97
  * A stable local device identifier used to bind OAuth sessions to this machine.
85
98
  * It is generated once and persisted in the CLI config so re-login reuses the