dsh-pet-opencode-go-balance:把 OpenCode Go 三窗口用量接进桌宠余额气泡

前言

在 DeepSeek Harness(DSH)里用桌宠插件 dsh-pet 时,若当前智能体走的是 OpenCode Go(dsh-opencode-go),余额气泡往往只会提示「当前服务商暂不支持余额查询」。这不是你在设置里漏开了开关,而是 dsh-pet 内置余额表与 OpenCode Go 插件在 provider id、凭据 ref 上各写死了一套旧口径,查表对不上就会落空。

dsh-pet-opencode-go-balance 是社区维护的 DSH 客户端类插件:不改 dsh-pet 源码,通过官方第三方余额注册口,用与 OpenCode Go 设置卡片一致的数据源,在气泡里展示 5h / 周 / 月三窗口用量。

这是什么

插件全名 dsh-pet-opencode-go-balance(npm 包名同),当前版本 0.1.0,MIT 许可。目录页由维护者 YumoFinn 收录;源码与安装说明见 GitHub 仓库(README 中给出的仓库地址为 QLY-3315/dsh-pet-opencode-go-balance)。

它做一件事:以 provider id dsh-opencode-go 注册到 dsh-pet 的第三方余额表,让桌宠「查看余额」与 OpenCode Go 侧显示同一套数字。

它解决什么问题

README 归纳了两处依赖方源码里的错位:

  1. provider id 对不上:dsh-pet 按 agentDefaultModel.currentSelection().provider 查内置表,表里只有 opencode-go;而 dsh-opencode-go 注册的 id 是 dsh-opencode-go,查表必然失败。
  2. 凭据 ref 对不上:dsh-pet 内置的 opencode-go 路由写死 OPENCODE_GO_API_KEY;多账号形态的 key 在 DSH_OPENCODE_GO_ACCOUNT_* 下。

本插件通过 ctx.provide('petApi7340', { balance: { register } }) 注册 provider:id 与宿主报告一致;取数优先走 dsh-opencode-go 的 opencodeGoUsage 服务(账号、baseURL、代理、超时、缓存去重由该服务负责),切换账号后气泡自动跟随。仅在没有该服务时,才退化为直连 GET https://opencode.ai/zen/go/v1/usage(20s 超时,2 次线性退避重试)。

气泡里显示什么

  • 5h / 周 / 月 三个窗口的用量百分比;满额度按 Go 套餐常量 12 / 30 / 60 USD 计算(与 dsh-pet 内置口径一致)。
  • 每个窗口的重置倒计时。
  • 超额时如实显示 >100%,不截断到 100。
  • 任意异常一律抛错,由 dsh-pet 落成 fetch-error 气泡;不伪造 0 余额。

依赖与兼容性

依赖 版本 用途
dsh-pet ≥ 0.3.8 提供 petApi7340.balance.register(必需)
dsh-opencode-go ≥ 0.1.24 提供 opencodeGoUsage(强烈建议;缺失时走直连兜底)

Node 引擎要求:≥ 22.12.0(来自 package.json)。

dsh.compatibility.dshReleases 中声明实测通过的 DSH 版本:

DSH 状态
0.2.1-rc.3 compatible

安装与启用

本插件目前只发布在 GitHub,尚未发布到 npm,请用 README 中的仓库地址安装。插件在 DSH 进程权限下运行,安装前建议自行查看仓库源码与 MIT 许可证。

在 DSH 设置 → 插件 → 安装 里粘贴:

https://github.com/QLY-3315/dsh-pet-opencode-go-balance

或用 CLI(示例为 desktop profile):

dsh plugin --profile desktop add "https://github.com/QLY-3315/dsh-pet-opencode-go-balance"
# 或者从本地目录
dsh plugin --profile desktop add "E:\path\to\dsh-pet-opencode-go-balance"

装完重启 DSH,在 dsh-pet 设置里确认该宠物的「余额功能」已开启。

卸载:

dsh plugin --profile desktop remove dsh-pet-opencode-go-balance

典型用法

  1. 确保已安装并启用 dsh-pet、dsh-opencode-go(建议 ≥ 0.1.24,以便走 opencodeGoUsage)。
  2. 安装本插件并重启 DSH。
  3. 在桌宠上右键 「查看余额」,或使用 /balance,即可看到与 OpenCode Go 设置卡片一致的三窗口用量。

通常不需要额外配置:默认跟随 dsh-opencode-go 当前选中的账号。

配置(直连兜底时)

只有在没有 opencodeGoUsage 服务、走直连兜底时,才可能用到下面环境变量:

环境变量 说明
DSH_PET_OPENCODE_ACCOUNT_REF 账号凭据 ref;换账号时指定。缺省依次尝试 OPENCODE_GO_API_KEY

适用场景与注意

  • 适合:已在 DSH 使用 dsh-pet + OpenCode Go,希望在桌宠气泡里看 5h/周/月用量,而不是内置表里的「不支持」提示。
  • 注意:气泡数据与 OpenCode Go 设置卡片同源的前提是 dsh-opencode-go 可用;直连兜底时凭据与环境需自行对齐。社区插件目录(如 SkillHub)与 DeepSeek / 幻方无官方从属关系,安装来源以你信任的仓库为准。

开发与链接

仓库内测试:

node --test test/

(README 说明为纯函数 + 宿主装配,共 12 项;package.json 中脚本为 node --test test/*.test.mjs。)

主要代码:lib/index.js(注册与取数)、lib/windows.js(用量转 dsh-pet windows 形态)。

  • 社区目录页:https://www.skillhub.cn/plugins/YumoFinn/dsh-pet-opencode-go-balance
  • GitHub(README / package.json):https://github.com/QLY-3315/dsh-pet-opencode-go-balance
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜