diff --git a/README.md b/README.md index 653b1c2..902436d 100644 --- a/README.md +++ b/README.md @@ -81,13 +81,15 @@ codex plugin add studio@deta bash plugins/studio/bin/deta-mcp.sh ``` -装完即用,**没有 OAuth 登录步骤**。需要云侧能力(项目列表 / 项目同步 / 打开 Studio)时登录一次 -(`~/.deta/bin/deta` 由启动器自动注册;助手用法见 `plugins/studio/README.md`「登录助手」): +装完即用,**没有 OAuth 登录步骤、也不需要终端**。需要云侧能力(项目列表 / 新建项目 / 项目同步 / +打开 Studio)时:让助手调 `login` 工具 → 浏览器打开授权地址(首次输一次账号密码或邮箱验证码)→ +点「登录并授权」;令牌自动写入 `~/.deta` 并即时生效,过期先静默续期。 + +命令行形态(无 `login` 工具)的兜底及排查(助手用法见 `plugins/studio/README.md`): ```bash -~/.deta/bin/deta login # 账号密码 / 邮箱验证码由你本人输入 +~/.deta/bin/deta login # 由启动器自动注册;账号密码或 --email-code <邮箱> ~/.deta/bin/deta doctor # 自检:运行时 / 凭据 / GSA / MCP 握手 -# 登录后开新会话即可,无需 source / launchctl / 重启应用 ``` ## 本地迭代 diff --git a/plugins/studio/.codex-plugin/plugin.json b/plugins/studio/.codex-plugin/plugin.json index e3b96f2..412c1df 100644 --- a/plugins/studio/.codex-plugin/plugin.json +++ b/plugins/studio/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "studio", - "version": "0.3.5", + "version": "0.3.6", "description": "DETA Studio 插件:以 AML 为唯一事实源编辑建筑模型,编译为建筑模型并执行规则校验。", "author": { "name": "DETA", diff --git a/plugins/studio/README.md b/plugins/studio/README.md index db5654e..0506af3 100644 --- a/plugins/studio/README.md +++ b/plugins/studio/README.md @@ -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、不需要重启应用。 ### 登录助手(云侧能力用) diff --git a/plugins/studio/package-lock.json b/plugins/studio/package-lock.json index 584615e..ae64810 100644 --- a/plugins/studio/package-lock.json +++ b/plugins/studio/package-lock.json @@ -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" } } diff --git a/plugins/studio/package.json b/plugins/studio/package.json index a38d051..9341d13 100644 --- a/plugins/studio/package.json +++ b/plugins/studio/package.json @@ -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", diff --git a/plugins/studio/skills/aml-design/SKILL.md b/plugins/studio/skills/aml-design/SKILL.md index cbd74f0..1b5a6e5 100644 --- a/plugins/studio/skills/aml-design/SKILL.md +++ b/plugins/studio/skills/aml-design/SKILL.md @@ -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()`。 diff --git a/plugins/writer/README.md b/plugins/writer/README.md index 13c889a..4fd9630 100644 --- a/plugins/writer/README.md +++ b/plugins/writer/README.md @@ -50,15 +50,11 @@ codex plugin add writer@deta bash <插件目录>/bin/deta-mcp.sh --profile writer ``` -需要云侧能力(项目列表 / 项目同步 / 打开 Studio)时登录一次: +需要云侧能力(项目列表 / 新建项目 / 项目同步 / 打开 Studio)时:让助手调 `login` 工具 → +浏览器打开授权地址(首次输一次账号密码或邮箱验证码)→ 点「登录并授权」。**不需要终端**; +令牌自动写入 `~/.deta` 并即时生效,过期先静默续期。 -```bash -~/.deta/bin/deta login # 由启动器自动注册;账号密码或 --email-code <邮箱> -~/.deta/bin/deta doctor # 自检:运行时 / 凭据 / GSA / MCP 握手 -``` - -登录后**开新会话**即可——启动器自己按 `DETA_TOKEN` 环境变量 → `~/.deta/env` → -`~/.deta/credentials.json` 的顺序解析令牌,不需要 source、不需要 launchctl、不需要重启应用。 +命令行形态(无 `login` 工具)可用 `~/.deta/bin/deta login` 兜底,`~/.deta/bin/deta doctor` 自检。 ## 安装(dsh)