Back to home@FlameCloudn

dsh-quota

No description

Stars
0
Language
TypeScript
Created
Aug 20, 2026
Updated
Aug 20, 2026
GitHub repo

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 节流);限额关闭时计量照常运行。

配置默认值

默认
enabledtrue(随时可关)
5 小时限额¥30
每周限额¥150

HTTP 路由(仅本机回环)

  • GET /api/dsh-quota/state — 花费/限额/余额/重置时刻/是否耗尽。
  • POST /api/dsh-quota/config{ enabled?, fiveHourYuan?, weeklyYuan?, reset?: 'fiveHour' | 'weekly' | 'all' }

安装

  1. 下载最新 Release 的 dsh-external-dsh-quota-<version>.tgz
  2. 在 DSH 的插件市场中通过 tgz 安装(或按 supermod 注入流程挂载);
  3. 在凭据中配置 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 一旦成功加载就不要改动。