qiuyongjin
dsh-balance
DSH plugin: query and display the DeepSeek account balance (dsh_balance tool + web UI widget)
- Stars
- 1
- Language
- TypeScript
- Created
- Aug 16, 2026
- Updated
- Aug 16, 2026
Introduction
dsh-balance
DSH 插件:查询并展示 DeepSeek 账户余额(`/user/balance` API)。工具可查、Web UI 会话输入区常驻显示,TypeScript 双面开发,零运行时依赖。
能力
| 类型 | 名称 | 说明 |
|---|---|---|
| Tools | dsh_balance | 调用 DeepSeek GET /user/balance,返回账户可用状态与各币种余额明细(总余额 / 赠送余额 / 充值余额),headless / web 通用 |
| UI(web) | 输入区余额入口 | 填官方 conversation.input.right slot:按钮常驻显示当前总余额,点击展开明细卡片(可用状态 / 各币种明细 / 更新时间),手动刷新 |
工作原理
- 节点侧:注册
dsh_balance工具;同时经webServer(可选后端,ctx.inject等待就绪,headless 组合下不挂载)暴露GET /plugins/dsh-balance/balanceJSON 端点,供浏览器拉取。 - 浏览器侧:惰性 CJS client bundle(
window.__ModuleLoader__.load包装)填充官方conversation.input.rightslot,同源 fetch 余额端点——API key 只存在于节点侧,浏览器不接触凭据。 - API key:通过 DSH 凭据服务解析(默认引用
DEEPSEEK_API_KEY,Web 的 Models 设置页可直接写入),凭据服务缺席时回退到启动环境变量;每次调用实时解析,改 key 无需重启。与官方dsh-llm-deepseek的取值方式一致。 - 取消语义:工具执行合并超时与调用方取消(
AbortSignal.any),符合 dsh-tools 的协作取消契约。
安装
dsh plugin --profile web add ./dsh-balance
bundle 层栈变更需重启生效:
dsh --profile web
重启后,会话输入区工具行右侧(发送按钮前)出现 🔋 余额入口,按钮上直接显示当前总余额;会话中向代理提问"查询 DeepSeek 余额"同样可用工具查询。启动日志出现 [dsh-balance] plugin loaded(API key 引用:DEEPSEEK_API_KEY,基地址:https://api.deepseek.com) 即挂载成功。
配置
默认配置开箱即用;如需覆盖,在 profile 的 cordis.patch.yml 按行 id 覆盖(patch 整替换 config,需重述全部键):
- id: dsh-balance
config:
apiKeyEnv: DEEPSEEK_API_KEY
baseURL: https://api.deepseek.com
timeoutMs: 10000
| 键 | 默认值 | 说明 |
|---|---|---|
apiKeyEnv | DEEPSEEK_API_KEY | 读取 API key 的凭据引用(POSIX 环境变量名) |
baseURL | https://api.deepseek.com | DeepSeek API 基地址 |
timeoutMs | 10000 | 请求超时(毫秒) |
开发
pnpm install
pnpm run build # tsc 产出 lib/types(含 JS emit)+ tsdown 产出 lib/index.js / lib/client.js
pnpm run typecheck # 严格类型检查(单一 tsconfig 覆盖 node + client 两侧)
pnpm run watch # tsdown 增量重建(client half)
lib/ 为构建产物,勿手改——改源码后重新构建。单一 tsconfig 覆盖两侧(DOM lib 与 @types/node 全局共存),tsconfig.decl.json 产出 lib/types;node half 由 tsdown 从 tsc emit 打包(@deepseek-ai/* 依赖内联,运行期零依赖),client half 从源码打包为惰性 CJS bundle(react external 走平台种子表)。
验证
- 类型:
pnpm run typecheck - 挂载冒烟:安装并重启后,启动日志出现插件加载行;会话输入区工具行右侧出现余额入口
- 工具调用:在会话中向代理提问"查询我的 DeepSeek 余额",确认返回账户可用状态与余额明细