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