dsh-quota
No description
- Stars
- 0
- Language
- TypeScript
- Created
- Aug 20, 2026
- Updated
- Aug 20, 2026
Introduction
@dsh-external/dsh-quota
DeepSeek Harness(DSH)的花费限额 supermod:读取 DeepSeek API 开放平台余额,按花费金额限制任务,可手动设置、随时开关。
兼容性:客户端 UI 为纯 Web 实现(React + 插槽系统)。DSH 桌面窗口与 host 服务的网页端 GUI 是同一页面, 本插件随 DSH host 运行——桌面窗口和任意浏览器访问 host 地址均同样生效,无需区分"桌面版/网页版"。 仅要求 DSH host 提供
webServer/agents/credentials服务(桌面版默认具备)。
功能
- 计量口径:花费额。每 30s 用
DEEPSEEK_API_KEY读取https://api.deepseek.com/user/balance, 相邻两次余额的下降值记为花费(充值上升不计),计入两个额度池:- 5 小时池:以首条消息时刻为锚点、每 5 小时滚动(锚点 08:35 时当前池显示重置时刻);
- 周池:首条消息 + 7 天重置(如
8月27日 08:35),具体时刻显示。
- 周池用尽 → 5 小时池一并不可用;任一池用尽即禁止开启新任务,当前任务(含子代理)继续执行。
- 拦截:host 侧
ctx.agents.create漏斗硬拦截(DSH_QUOTA_EXHAUSTED),客户端同步拦截"新会话"入口并弹一次性提示。 - 侧边栏卡片(插件市场按钮上方):
↻ 剩余用量标题 + 内联仪表盘 SVG 图标、时段徽标 (北京时 09:00-12:00 / 14:00-18:00 显示「高峰时段」,其余「空闲时段」,右侧同一行显示平台余额)、 5 小时 / 1 周剩余百分比 + 重置时刻 + 进度条。 - 设置页(设置 → 手动限额):余额、花费进度、限额(元)、启停开关、重置用量。
- 会话统计条:拉满整行显示全部统计(轮次/步骤/LLM 时长/工具调用/首 token/tok/s/缓存命中/token 数)。
- 持久化:插件目录旁
quota-state.json(原子写、30s 节流);限额关闭时计量照常运行。
配置默认值
| 项 | 默认 |
|---|---|
| enabled | true(随时可关) |
| 5 小时限额 | ¥30 |
| 每周限额 | ¥150 |
HTTP 路由(仅本机回环)
GET /api/dsh-quota/state— 花费/限额/余额/重置时刻/是否耗尽。POST /api/dsh-quota/config—{ enabled?, fiveHourYuan?, weeklyYuan?, reset?: 'fiveHour' | 'weekly' | 'all' }。
安装
- 下载最新 Release 的
dsh-external-dsh-quota-<version>.tgz; - 在 DSH 的插件市场中通过 tgz 安装(或按 supermod 注入流程挂载);
- 在凭据中配置
DEEPSEEK_API_KEY(与官方余额挂件共用)。
构建
npm install
npm run build # tsdown → lib/impl.js (host) + lib/client.js (client)
npm pack # 产出 dsh-external-dsh-quota-<version>.tgz
⚠️ 桌面端 Node ESM 解析缓存按 profile node_modules 的 junction 路径记忆; 入口
lib/entry.js与包名@dsh-external/dsh-quota一旦成功加载就不要改动。