DeepSeek Harness 插件

dsh-codebuddy-auth

CodeBuddy (Tencent IOA) provider lifecycle plugin for DeepSeek Harness: browser OAuth login, token refresh, credential storage, and /v3/config model sync for the llm-pi-ai codebuddy route.(英文原文)

跳到安装方式

来源信息

GitHub 仓库
cainiao1992/dsh-codebuddy-auth
最近更新
2026年8月17日
分类
工具与能力
GitHub stars
0
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/cainiao1992/dsh-codebuddy-auth
插件名:dsh-codebuddy-auth
作者:cainiao1992

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器4 个文件
README.zh-CN.md来源说明 · 只读预览
README 语言

dsh-codebuddy-auth

English | 简体中文

DeepSeek Harness(DSH) 里直接使用腾讯 CodeBuddy(IOA)的对话模型:浏览器 OAuth 登录、token 自动续期、模型列表自动同步。登录一次,模型选择器里即可选用 deepseek-v4-proglm-5.2kimi-k3-1minimax-m3 等 craft agent 模型。

工作原理

插件在 codebuddy provider 上注册原生 ctx.llm 适配器,自己持有整条请求链路:浏览器 OAuth、ctx.credentials 凭据存储、/v3/config 模型发现、自有的 SSE 流式与消息序列化。两套身份,按平面各司其职:

平面身份原因
聊天(POST /v2/chat/completions)CLI 客户端(User-Agent: CLI/2.96.0 CodeBuddy/2.96.0,极简请求头)聊天端点期待 CLI 身份,用它可避开 IDE 身份拦截。
模型发现(GET /v3/config)Craft / VSCode(X-Agent-Intent: craft + X-IDE-*)craft 目录是唯一披露每模型推理元数据(supportedEffortscanDisableThinkingdefaultEffort)与精选模型列表的目录;CLI 目录同一端点只返回固定的 effort 值。

模型目录缓存 5 分钟,可随时 sync-models 刷新。

安装

DSH 通过官方 dsh plugin CLI 安装 profile 插件(它是个精简的 pnpm 转发器:安装依赖、把包追加到 profile 的 dsh.profile.bundles 层栈、再经包内的 patch 挂载插件——全程无需手动改文件)。

前置条件:确保 pnpmPATH 里,例如用 Homebrew 安装:

brew install pnpm

安装插件

dsh plugin --profile web add github:cainiao1992/dsh-codebuddy-auth

这一条命令即从 GitHub 解析依赖、安装,并自动把插件作为 profile 层激活。

重启 DSH

重启 DSH,安装即完成——插件启动时在 ctx.llm 上原生注册 codebuddy provider,CodeBuddy 随即出现在模型页(未登录状态)。

登录

可以用 agent 登录,也可以用命令行登录,二选一。

方式一:通过 agent

对 agent 说 "用 codebuddy 登录"。agent 调用 codebuddy 工具:浏览器打开 IOA 登录页,后台轮询;token 到手后写入凭据并预热模型目录,下一个请求即以 CLI 身份直连聊天端点。

方式二:命令行(headless / 提前引导)

# 直接运行,无 npm 依赖,仅需 Node >= 18:
node ~/.dsh/profiles/web/node_modules/dsh-codebuddy-auth/bin/login-flow.mjs

# 或经 package.json 的 bin 字段从安装目录本地解析:
cd ~/.dsh/profiles/web && pnpm exec codebuddy-login

# 不想开浏览器(远程/服务器)加 --no-browser

CLI 只写凭据——原生适配器自己持有路由,没有 settings 路由需要管理;--international 仅选择登录走的 OAuth 端点。

卸载

dsh plugin --profile web remove dsh-codebuddy-auth

该命令会移除依赖,并把插件从 profile 层栈中摘除。重启 DSH 即完成卸载。

国际版

插件默认使用国内版(copilot.tencent.com / www.codebuddy.cn)。国际版(www.codebuddy.ai)通过挂载行的 edition: intl 配置选择:

# 你的 cordis.patch.yml 挂载行:
- id: codebuddy-auth
  name: dsh-codebuddy-auth
  edition: intl          # 缺省即国内版

适配器与登录/模型发现随即全部使用 www.codebuddy.ai 端点。CLI 的 --international 仅为登录选择国际 OAuth 端点。

使用

  • 切换模型:模型选择器里选 CodeBuddy 下的任意模型(如 deepseek-v4-pro)
  • 状态:"看下 codebuddy 状态" → codebuddy 工具 status
  • 续期(全自动,三层):① 每次启动时,token 剩余有效期不足 5 分钟(或已过期)即自动续;② 运行中每 30 分钟巡检,剩余不足 1 小时自动续——覆盖 dsh 长期不重启的场景;③ refresh token 失效(改密/吊销)时前两层会失败并留日志,此时说 "刷新 codebuddy" 确认,或重新登录
  • 模型更新:腾讯上新模型后,说 "同步 codebuddy 模型" → sync-models
  • 退出:"登出 codebuddy" → 清除凭据

推理

每个模型都按 /v3/config 报告的完整真实推理能力声明,模型选择器里展示该模型实际支持的等级:

  • 可选等级(按模型):supportedEfforts 原样进选择器——deepseek-v4-pro 可选 low / high / xhigh,hy3 可选 low / high,固定等级模型(如 glm-5.1)只有 medium 一档。线上以 reasoning_effort: "<level>" 发送。
  • 默认等级:每模型直接采用 /v3/config 报告的 defaultEffort(如 glm-5.2 默认 high),选择器里所有已声明等级仍可自由选。

文件

  • lib/index.js — Cordis 宿主插件(host 组合行)。注册 codebuddy provider 与 codebuddy 工具,启动时及每 30 分钟自动刷新/同步。
  • lib/codebuddy-adapter.mjs — 原生 ctx.llm 适配器:SSE 流式、消息序列化、推理元数据、错误映射。移植自 shatyuka/dsh-llm-codebuddy(MIT)。
  • lib/codebuddy-core.mjs — OAuth、JWT 解码、身份头、/v3/config 发现;无依赖。
  • bin/login-flow.mjs — 独立登录 CLI,无 npm 依赖。
  • cordis.patch.yml — 包内 patch(bundle 消费时的自挂载行)。

已知限制(均为实测结论)

  • POST /v2/chat/completions 不校验 User-Agent,任意 UA 均可;但必须 stream: true(非流式返回 code 11101)。DSH 的 llm 适配器本来就是流式,无需处理。
  • GET /v3/config(模型发现)需要 craft / VSCode 身份(X-Agent-Intent: craft + X-IDE-* 头)才会披露推理元数据;插件自己直接发请求完成。
  • CodeBuddy 对每个 craft 模型都报告 supportsReasoning。模型按真实推理能力声明(按 supportedEfforts 列出等级),因此推理可在模型选择器里直接选用,而非被剥离。

License

MIT