docs(plugin): 登录口径改为浏览器一键授权(不需要终端),studio 0.3.6
CI / contract (push) Has been cancelled

配合 ant-copilot 新增的 login 工具(回环 OAuth 授权):技能里 auth_required 的处置从"让用户去终端跑命令"改为"调 login 工具 + 浏览器点一下允许";三份 README 同步,终端助手降为无 login 工具形态(CLI 等)的兜底。
This commit is contained in:
ringo
2026-09-20 13:46:54 +08:00
parent 36347f3222
commit c77d2fe864
7 changed files with 32 additions and 28 deletions
+6 -4
View File
@@ -81,13 +81,15 @@ codex plugin add studio@deta
bash plugins/studio/bin/deta-mcp.sh bash plugins/studio/bin/deta-mcp.sh
``` ```
装完即用,**没有 OAuth 登录步骤**。需要云侧能力(项目列表 / 项目同步 / 打开 Studio)时登录一次 装完即用,**没有 OAuth 登录步骤、也不需要终端**。需要云侧能力(项目列表 / 新建项目 / 项目同步 /
(`~/.deta/bin/deta` 由启动器自动注册;助手用法见 `plugins/studio/README.md`「登录助手」): 打开 Studio)时:让助手调 `login` 工具 → 浏览器打开授权地址(首次输一次账号密码或邮箱验证码)→
点「登录并授权」;令牌自动写入 `~/.deta` 并即时生效,过期先静默续期。
命令行形态(无 `login` 工具)的兜底及排查(助手用法见 `plugins/studio/README.md`):
```bash ```bash
~/.deta/bin/deta login # 账号密码 / 邮箱验证码由你本人输入 ~/.deta/bin/deta login # 由启动器自动注册;账号密码或 --email-code <邮箱>
~/.deta/bin/deta doctor # 自检:运行时 / 凭据 / GSA / MCP 握手 ~/.deta/bin/deta doctor # 自检:运行时 / 凭据 / GSA / MCP 握手
# 登录后开新会话即可,无需 source / launchctl / 重启应用
``` ```
## 本地迭代 ## 本地迭代
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "studio", "name": "studio",
"version": "0.3.5", "version": "0.3.6",
"description": "DETA Studio 插件:以 AML 为唯一事实源编辑建筑模型,编译为建筑模型并执行规则校验。", "description": "DETA Studio 插件:以 AML 为唯一事实源编辑建筑模型,编译为建筑模型并执行规则校验。",
"author": { "author": {
"name": "DETA", "name": "DETA",
+12 -8
View File
@@ -89,19 +89,23 @@ codex plugin add studio@deta
bash <插件目录>/bin/deta-mcp.sh --profile studio bash <插件目录>/bin/deta-mcp.sh --profile studio
``` ```
装完即用,**没有 OAuth 登录步骤**。需要云侧能力(项目列表 / 项目同步 / 打开 Studio)时登录一次 装完即用,**没有 OAuth 登录步骤、也不需要终端**。需要云侧能力(项目列表 / 新建项目 / 项目同步 / 打开 Studio)时:
(`~/.deta/bin/deta` 由启动器自动注册,无需手工创建):
```
在对话里说"登录"或直接让助手新建项目/上传到云 —— 助手会调 login 工具给出一个授权地址,
你在浏览器打开(首次输一次账号密码或邮箱验证码)→ 点「登录并授权」→ 完成。
令牌自动写入 ~/.deta 并即时生效;凭据过期时先用 refresh token 静默续期,用户无感。
```
命令行形态(无 `login` 工具时)的兜底做法:
```bash ```bash
~/.deta/bin/deta login # 输入账号 + 密码,或 --email-code <邮箱> 走验证码 ~/.deta/bin/deta login # 由启动器自动注册;账号密码或 --email-code <邮箱>
~/.deta/bin/deta status # 看凭据来源 / 运行时 / 工作区(不打印令牌)
~/.deta/bin/deta doctor # 端到端自检:运行时、凭据、GSA、MCP 握手 ~/.deta/bin/deta doctor # 端到端自检:运行时、凭据、GSA、MCP 握手
``` ```
登录后**开新会话**(MCP 服务重新拉起时读到凭据)。启动器自己按 启动器按 `DETA_TOKEN` 环境变量 → `~/.deta/env` → `~/.deta/credentials.json` 的顺序解析令牌,
`DETA_TOKEN` 环境变量 → `~/.deta/env` → `~/.deta/credentials.json` 的顺序解析令牌, 所以浏览器授权后的下一次会话也自动带着登录态——不需要 source、不需要 launchctl、不需要重启应用。
所以**不需要 source、不需要 launchctl 注入、不需要改 .zshrc、也不需要重启应用**——
Finder/Dock 启动的宿主不继承终端环境,令牌由启动器直接读取才可靠。
### 登录助手(云侧能力用) ### 登录助手(云侧能力用)
+2 -2
View File
@@ -1,12 +1,12 @@
{ {
"name": "deta-studio-plugin", "name": "deta-studio-plugin",
"version": "0.3.5", "version": "0.3.6",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "deta-studio-plugin", "name": "deta-studio-plugin",
"version": "0.3.5", "version": "0.3.6",
"license": "Proprietary" "license": "Proprietary"
} }
} }
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "deta-studio-plugin", "name": "deta-studio-plugin",
"version": "0.3.5", "version": "0.3.6",
"description": "DETA Studio:AML 建筑模型读写与编译校验(Codex 插件 / dsh 组合包 双壳)", "description": "DETA Studio:AML 建筑模型读写与编译校验(Codex 插件 / dsh 组合包 双壳)",
"type": "module", "type": "module",
"license": "Proprietary", "license": "Proprietary",
+6 -4
View File
@@ -111,10 +111,12 @@ Studio 就是deta.city 上的建筑性能应用。在 Codex 右侧内置浏览
deta.city 登录并跳到 Studio。 deta.city 登录并跳到 Studio。
- 典型节奏:`open_studio()` 拿 `url` → 面板打开 → `open_studio({ waitSeconds: 20 })` - 典型节奏:`open_studio()` 拿 `url` → 面板打开 → `open_studio({ waitSeconds: 20 })`
确认 `executor_online: true` → 再调 `simulate` / `studio_command` 等执行器侧工具。 确认 `executor_online: true` → 再调 `simulate` / `studio_command` 等执行器侧工具。
- 若返回 `auth_required` → 云令牌未注入(**本机形态没有 MCP 授权,不要去找 `codex mcp login`**): - 若返回 `auth_required` → 未登录:**直接调 `login` 工具**(建议 `waitSeconds: 90`),把返回的 `url`
让用户在终端运行 `~/.deta/bin/deta login`(按提示输入账号与密码或邮箱验证码,由用户本人输入), 交给用户在内置浏览器打开——首次输一次账号密码或邮箱验证码,之后只需点「登录并授权」按钮。
随后**开新会话**重试;命令不存在时可回落到插件目录下的 `bin/deta-login.mjs`。 **不需要终端,也不要去找 `codex mcp login`**;用户点完后本工具会自动换取令牌并写入当前会话
排查用 `~/.deta/bin/deta doctor`(一条命令自检运行时 / 凭据 / GSA / MCP 握手)。 (凭据过期时 `login` 会先用 refresh token 静默续期,用户完全无感)。
仅当当前形态没有 `login` 工具(CLI 等)时,才让用户在终端运行 `~/.deta/bin/deta login`;
排查用 `~/.deta/bin/deta doctor`(自检运行时 / 凭据 / GSA / MCP 握手)。
若 `url` 报「票据无效或已过期」→ 重新调一次,不要改成手工登录。 若 `url` 报「票据无效或已过期」→ 重新调一次,不要改成手工登录。
2. 按 browser 插件技能(`control-in-app-browser`)的 Bootstrap 初始化,再取内置浏览器句柄: 2. 按 browser 插件技能(`control-in-app-browser`)的 Bootstrap 初始化,再取内置浏览器句柄:
`const iab = await agent.browsers.get("iab");`,并先读一次 `await iab.documentation()`。 `const iab = await agent.browsers.get("iab");`,并先读一次 `await iab.documentation()`。
+4 -8
View File
@@ -50,15 +50,11 @@ codex plugin add writer@deta
bash <插件目录>/bin/deta-mcp.sh --profile writer bash <插件目录>/bin/deta-mcp.sh --profile writer
``` ```
需要云侧能力(项目列表 / 项目同步 / 打开 Studio)时登录一次: 需要云侧能力(项目列表 / 新建项目 / 项目同步 / 打开 Studio)时:让助手调 `login` 工具 →
浏览器打开授权地址(首次输一次账号密码或邮箱验证码)→ 点「登录并授权」。**不需要终端**;
令牌自动写入 `~/.deta` 并即时生效,过期先静默续期。
```bash 命令行形态(无 `login` 工具)可用 `~/.deta/bin/deta login` 兜底,`~/.deta/bin/deta doctor` 自检。
~/.deta/bin/deta login # 由启动器自动注册;账号密码或 --email-code <邮箱>
~/.deta/bin/deta doctor # 自检:运行时 / 凭据 / GSA / MCP 握手
```
登录后**开新会话**即可——启动器自己按 `DETA_TOKEN` 环境变量 → `~/.deta/env` →
`~/.deta/credentials.json` 的顺序解析令牌,不需要 source、不需要 launchctl、不需要重启应用。
## 安装(dsh) ## 安装(dsh)