跳到主内容

dsh-AuthInOne

53Star0Fork0Issue0Watching

把 Provider 登录、模型管理、视觉回退、Token 用量与成本分析合并进 DSH 原生 Models/Usage 页面,并自带同端口安装重启引导。

机审证据5/5方法论数据来源安装命令持续维护DSH 版本风险扫描
机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
JavaScript
License
MIT
分支
main
cost-attributioncost-trackingcustom-apideepseek-harnessdshdsh-pluginimage-understandingllm-provider

安装

命令web profile
$ dsh plugin --profile web add github:Stormycry-cryp/dsh-AuthInOne

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 Stormycry-cryp/dsh-AuthInOne:先查看仓库 https://github.com/Stormycry-cryp/dsh-AuthInOne 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

把 Provider 登录、模型管理、视觉回退、跨会话 Token 用量与成本分析合并进 DSH 的原生 Models 和 Usage 设置页,并附带一条同端口替换重启的安装引导。解决用户要装多套零碎插件、还要手动改 profile 才能生效的问题。

核心能力

  • 在原生 Models 设置里增加 OAuth 登录入口与 Plan/API 预设,目前稳定支持 OpenAI Codex 浏览器 OAuth 与 Kimi Code 设备流,另提供 7 个实验性兼容 Provider
  • 接管保存/编辑 OpenAI 兼容自定义路由、默认模型选择、连接测试与可视化 Provider 状态
  • 为明确标注纯文本输入的主模型自动调用一个备用视觉模型生成图像描述,并把结果作为普通 DSH 消息持久化
  • 在原生 Usage 设置里重建 KPI、Token 日历热力图、Provider/模型/工具排行与按价目表分桶的成本核算
  • 暴露同一套 Token-bucket 价格目录,用户可在设置页为特定 Provider/模型追加价目覆盖

技术实现

  • 语言: TypeScript
  • 关键依赖: @deepseek-ai/cordis、@deepseek-ai/dsh-typert-protocol、@deepseek-ai/dsh-credentials、@deepseek-ai/dsh-settings(运行时);构建期 zod 用于 schema 校验,@earendil-works/pi-ai 0.82.1 作为 Provider 适配层
  • 架构模式: 在 Cordis Context 上注册 AuthInOneService 扩展 Typert Remote,同时通过 dsh.bundle.patch 禁用 DSH 原生 ui-settings-general 与 ui-settings-models 两个 Owner 并挂载包内同源兼容 Owner;客户端用 dsh.client.inject 注入 10 个官方 Web 包
  • 入口文件: src/host/index.ts(Host 服务)、src/install.ts(自带 CLI 与同端口重启监管)、cordis.patch.yml(Bundle 挂载入口)

适用场景

DSH 用户日常需要在多个 LLM Provider(官方 DeepSeek、OpenAI Codex、Kimi Code,以及 OpenAI/xAI/Gemini/Anthropic API 预设)之间切换,又不想离开原生设置页操作。当某些主模型不识图、但又希望对图片有可见反馈时,启用视觉回退即可获得自动图像描述。对用量与按价目表计费有审计需求时,Usage 页面会直接给出重建的 KPI、热力图与按价格区间分桶的成本数据。

前置依赖与兼容性

依赖最低版本说明
DSH官方 DSH 47f9438(@deepseek-ai/dsh-client-ui-settings-general 与 @deepseek-ai/dsh-client-ui-settings-models 0.1.0-rc.5,SHA-256 校验)Host 在 assertCompatibleHost() 中严格比对 owner 版本与 client.js 哈希,校验失败抛 AUTH_IN_ONE_COMPAT_UNSUPPORTED_DSH
Node^22.19.0 || >=24见 package.json:engines.node
平台macOS、Linux(自动重启需 lsof),其他平台仅 UI 部分可用src/install.ts:102-111 在 Windows 上抛 AUTH_IN_ONE_RESTART_UNSUPPORTED_PLATFORM
React>=18.2.0可选 peer 依赖,宿主已自带时无需安装
原生模块无依赖均为 JS;运行期只调用 node:child_process / node:fs / node:os

安装方式

dsh plugin --profile web add github:Stormycry-cryp/dsh-AuthInOne

配置项

配置类型说明默认值
catalogVersion字符串当前价目表的版本标识,用于审计与回放deepseek-usd-2026-08-14
prices数组目录内置价目行,每条含 Provider、模型、币种、来源 URL、生效日期与各 bucket 单价内置 DeepSeek-V4-Flash / DeepSeek-V4-Pro 两条 USD 行
overrides数组用户覆盖的价目行,合并时按 provider/model 替换目录行空
visionFallback.enabled布尔是否对纯文本主模型启用图像描述回退false
visionFallback.provider字符串回退使用的 Provider id空
visionFallback.model字符串回退使用的模型 id空
visionFallback.maxOutputTokens数字 (64–4096)单次回退调用的最大输出 Token512
visionFallback.timeoutMs数字 (1000–300000)回退调用的超时时间(毫秒)60000

配置以 DSH 设置命名空间 auth-in-one 存储,修改通过 Settings → Models 页面或 Typert Remote 的 saveVisionFallback / savePriceOverride 完成。

常见问题

Q: 安装命令和直接执行官方 dsh plugin add 有什么区别?

A: 包内自带 install 子命令会先校验 127.0.0.1:3080 上的监听进程是标准 DSH Host,再调用官方 dsh plugin add,最后通过 scheduleRestart 在原 URL 上拉起替换进程。它不会占用临时端口,也不会留下第二实例。

Q: 哪些 Provider 是真正稳定可用的?

A: 仅 OpenAI Codex(浏览器 OAuth + 状态/S256 PKCE/loopback)和 Kimi Code(完整授权链接 + RFC 8628 设备流)。其余 7 个(xAI Grok、Anthropic、GitHub Copilot、Command Code、Cursor、Google Antigravity、Kiro)均为实验性兼容,仅在用户授权边界验证通过,错误与刷新逻辑靠模拟测试覆盖。

Q: 视觉回退会不会把我截图或图片发送给非主 Provider?

A: 只有当你明确启用了 visionFallback 且主模型的 Adapter 显式声明 image 输入为否时才会触发。图片字节始终由 DSH Attachment Storage 持有,回退结果以普通消息形式写入会话,凭证通过 DSH Host 凭据解析,视觉设置 RPC 本身不接受任何凭证。

Q: Token 与成本数据存在哪里?会被插件上传吗?

A: 所有用量分析由插件从 DSH 实时会话与持久化日志重建,不存在插件自己的数据库;价目覆盖存放在插件设置命名空间;OAuth 与 API Key 全部交给 DSH Credentials;插件从不读取 ~/.codex/auth.json、浏览器存储、OTP 或其他产品的凭证文件。

Q: 在 Windows 上能跑吗?

A: UI 部分可以,但 install/uninstall/status 子命令的同端口自动重启会抛 AUTH_IN_ONE_RESTART_UNSUPPORTED_PLATFORM,因为 findListeners 依赖 lsof 而没有 Windows 实现。Windows 用户需要手动执行官方 dsh plugin 命令。

Q: 卸载之后我的设置和会话会被一起删掉吗?

A: 不会。卸载只会撤销页面、Models 贡献、Remote 命名空间、Host 服务与样式,DSH 会话、插件设置和凭证引用会被有意保留;如需彻底清除,请用 DSH 自带的会话/凭证删除流程单独处理。

Q: 我自己配的非官方 Provider,连接测试会泄露我的 API Key 吗?

A: 连接测试用 fetchNoRedirect 访问 /models 端点,遇到 3xx 重定向会立即中止避免把 Authorization 头带到别的来源;响应字节上限 256KB,失败原因只回传成功/失败、耗时、模型 id 数组或脱敏错误类别,Header、原始 body 和凭证都不会暴露给客户端。

上手难度

进阶 — 需要理解 DSH 的 Provider/会话/设置抽象,并且要会阅读 Settings → Models 与 Settings → Usage 页面才能用上全部功能;普通用户走包内 install 命令即可,零代码操作。

已知问题与限制

  • 当前 DSH 日志不在每次 Tool 调用上记录权威所属插件,因此 Usage 排行只能以"插件 / 工具"标签展示稳定的工具名,不做插件归属推断(design-qa.md:31)
  • OpenAI Codex 浏览器 OAuth 已验证到用户授权边界;最终同意仍需用户在 OpenAI 页面完成,截图不包含任何授权 URL 或账户信息(design-qa.md:32)
  • 7 个兼容性 Provider 登录(xAI/Anthropic/GitHub Copilot/Command Code/Cursor/Google Antigravity/Kiro)均为 Experimental 标签,仅完成授权边界验证,刷新/注销/路由注册的复杂路径靠 mock 测试覆盖(README.md:65-67, 173)
  • Qwen 账户 OAuth 在本版本显式标记为 discontinued 且不可用(src/host/auth.ts:71-73)
  • 自动同端口重启依赖 lsof,且当前仅在 macOS 与 Linux 上实现,Windows 直接报错(src/install.ts:102-111)
  • 价目表来源 URL 与生效日期是审计证据,不会做币种换算,缺失价目保持 unknown 而不是被猜成 0 或别的 Provider 价格(README.md:138, 145)
  • 若当前 DSH 的 ui-settings-general / ui-settings-models Owner 文件哈希与包内硬编码不符,Host 在构造时直接抛 AUTH_IN_ONE_COMPAT_UNSUPPORTED_DSH,不会静默运行(src/host/compat-host.ts:27-37)
  • visionFallback 启用时必须选择显式声明 image 输入的 Provider/模型;能力未声明的模型不会被当作纯文本(README.md:126)

查看使用指南 →

该插件的安装步骤、关键要点、FAQ 与兼容性说明(基于已收录字段派生)。

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/Stormycry-cryp/dsh-AuthInOne)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录