Files
workbuddy_skills/draw-ui/references/api-key-setup.md
T
admin 237a09a5b0 修:draw-ui / oil-motion 原被当子模块指针收录 ⇒ 改为正常文件入库(两份内容原先对别人是空的)
一、问题(本轮实测)
`draw-ui` 与 `oil-motion` 目录里**各自带一个内嵌 `.git`** ⇒ 上一次提交把它们记成了 **gitlink(子模块指针)**
⇒ 仓库里只存了一个不属于任何远端的 commit id,**别人克隆下来这两份是空的** ✗(`git status` 显示 ` m draw-ui` / ` m oil-motion` = 子模块内容有改动)。

二、处置(可回退)
· 把两处的 `.git` **挪走**(⛔ 不是删除)⇒ `归档/内嵌git-20261008/{draw-ui,oil-motion}.git`;
· `git rm --cached` 掉那两个 gitlink,再 `git add` 两个目录 ⇒ **按正常文件入库**(内容才真的进仓库)。

三、副作用(如实记)
挪走 `.git` 后,这两个技能**不能再原地 `git pull` 取上游更新**(要更新得重新拉一份覆盖);
如需恢复其本地仓库,把 `归档/内嵌git-20261008/` 里的 `.git` 挪回原处即可。
2026-10-08 22:29:52 +08:00

3.9 KiB

API Key 配置与业务读取

已有宿主安全配置或可信运行环境注入时直接复用。首次在桌面填写或更换 Key 时使用随附统一页面,不能用“已支持环境变量”或终端隐藏输入代替页面接入。只为用户选择的外部服务配置;内置能力、离线处理和已有官方登录不要求额外 Key。

首次配置

将当前 SKILL.md 所在绝对目录记为 SKILL_DIR。页面需要 Node.js 22.18+,首次在组件目录安装锁定依赖:

npm --prefix "$SKILL_DIR/scripts/credential-ui" ci --ignore-scripts
node "$SKILL_DIR/scripts/credential-ui/src/profile.ts" status default
node "$SKILL_DIR/scripts/credential-ui/src/profile.ts" setup default

先查 status:退出码 0 表示当前业务凭据可读取,2 表示缺失,1 表示配置或系统后端失败。缺失或用户要求更换时才启动 setup,把返回的本机链接展示给用户,由用户亲自填写保存。不要自动操作真实 Key 页面,不让用户贴进聊天。

页面不回填原值;已有项留空保留,替换需要用户确认。只把 saved 当作全部保存成功;partial、超时和中断后先重新查状态,再补未完成项。配置成功仅证明保存和可读取,实际 API 可用性以业务调用为准。

服务与用途绑定

配置名 业务环境变量 系统凭据引用
default ZENMUX_API_KEY draw-ui/zenmux/default
openai OPENAI_API_KEY draw-ui/openai/default

default 是脚本已有默认适配器,并不授权调用收费服务。用户选另一适配器时,同时选择对应配置名与业务参数,不能只换 Key。服务真实名称、接口和数据范围见原有依赖说明;以上变量名保留程序兼容。

一个服务的图片和视频共用同一 Key,不重复创建。多个服务各用独立声明;需要同页填写时用组件的 configure-page 组合所选声明,见组件说明。不要求填写用户没有使用的服务。

运行业务

通过以下入口运行本 Skill 的真实脚本,-- 后保留原业务参数:

node "$SKILL_DIR/scripts/credential-ui/src/profile.ts" run default -- python3 "$SKILL_DIR/scripts/generate_image.py" --provider zenmux --type wide --name dashboard --prompt "页面设计要求"

环境变量优先;缺失时仅从系统库读取当前配置所需的 Key,并只注入可信业务子进程。参数、普通文件和状态输出都不含 Key。使用页面保存的凭据后,后续云端业务命令同样经 run 入口执行,不能只启动配置页后直接运行一个仍仅读环境变量的程序。--help 示例只检查业务用法,不表示已调用服务。

系统后端分别为 macOS 钥匙串、Windows 凭据管理器、Linux Secret Service。Linux 需要 secret-tool、用户 D-Bus 和已解锁的桌面凭据服务;缺少后端时停止,不自动安装、解锁或降级明文。当前 macOS 组件有原生假凭据验证;Windows/Linux 适配仍需实机验收。CI、容器与远程服务器使用已有 Secret 注入,不把本机页面开放到网络。

原配置不自动迁移或删除;页面保存不代表旧明文文件已经清理。已有程序专用配置、账号或不同凭据引用按其原流程保留,不跨账号覆盖。凭据属于当前系统用户;正常流程不将其传入对话,不代表对同用户任意代码执行的强隔离。

验证

npm --prefix "$SKILL_DIR/scripts/credential-ui" run check
npm --prefix "$SKILL_DIR/scripts/credential-ui" run build
npm --prefix "$SKILL_DIR/scripts/credential-ui" test

测试使用假后端覆盖正式页面、同页 HTTP 保存、业务变量读取、部分失败恢复和脱敏;不操作用户真实页面。原生测试 npm run test:native 仅创建随机测试引用并清理,不验证实际服务额度或业务效果。