dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
在 DSH 设置面板中管理 Codex 订阅(ChatGPT OAuth)授权,无需 API key 即可使用 Codex 内的 GPT 模型。
DeepSeek Harness 客户端插件:在设置面板中管理 Codex 订阅(ChatGPT OAuth)授权,无需 API key 使用 Codex 订阅内的 GPT 模型。
localhost:1455 回调,与 Codex CLI 同端口),成功后把 grant 凭证写入 ~/.dsh/.credentials.yaml 的 llm-pi-ai/openai-codex 记录 —— 与 dsh-llm-pi-ai 读写的是同一条记录,模型目录即时刷新openai-codex 且凭证过期时,弹出重新授权对话框(可稍后,10 分钟内不再打扰)双面插件(模板来自 dsh-balance-panel):
lib/index.js:loopback RPC 通道 /dsh-codex-auth(status / login / logout),OAuth 常量与 @earendil-works/pi-ai 的 openai-codex 适配器一致lib/client.js:settings.section(id codex-subscription,order 25)+ shell.overlay 过期弹窗;通过 ctx.connection.rpc.call 与宿主通信;订阅 credentials/record-updated 事件实时刷新状态凭证记录由 llm-pi-ai 的自动 refresh 机制维护(access token 约 10 天过期,refresh 自动续期);refresh 也失效时本插件的弹窗接管。
npm run build # src/*.ts -> lib/*.js
cd ~/.dsh/profiles/desktop
# package.json: dependencies += "dsh-codex-auth": "file:/Users/sunshaobei/.dsh/dsh-codex-auth"
# dsh.profile.bundles += "dsh-codex-auth"
npm install # 以 symlink 方式安装本地插件
# 重启 DeepSeek Harness 客户端生效
src/index.ts — 宿主:OAuth 流程 + RPCsrc/client.ts — 设置页 + 弹窗src/vendor/ — vendored schemastery/cosmokit(link 安装时解析不到内部包)cordis.patch.yml — profile 层 insert 配置登录请求立即返回,授权期间面板每秒查询进度,窗口重新获得焦点时立即刷新。回调只有在 token 交换、凭证保存和读取校验成功后才显示成功,并尝试打开 dsh://open;浏览器拦截自动唤起时可点击返回按钮。交换请求设有 30 秒超时,授权等待为 5 分钟,失败原因同时显示在回调页和订阅面板。
运行 npm test 验证回调状态校验、保存成功、磁盘写入失败、token 交换失败、拒绝授权、重复登录和端口占用。测试使用模拟 OAuth 服务,不读取个人凭证。构建后重启 DeepSeek Harness 加载新的宿主插件。
授权有效时,插件通过宿主 settings.mutate 自动提交 openai-codex 提供商,使用宿主内置目录并验证模型数量。已有提供商配置会保留,配置写入或目录加载失败会显示在订阅面板;不会切换当前默认模型。当前设置导航不提供自定义图标接口,因此插件仅对自身导航按钮添加 ChatGPT 图标样式,并在卸载时清理。图标来自 Simple Icons v14 的 OpenAI 标志(CC0)。