Sutera-Diffusus
dsh-statusbar
DeepSeek Harness 状态栏扩展:模块化统计行(进度/耗时/性能/缓存/Token/花费/余额) + 本地余额代理
- Stars
- 1
- Language
- PowerShell
- Created
- Aug 15, 2026
- Updated
- Aug 15, 2026
Introduction
dsh-statusbar
DeepSeek Harness(DSH)Web GUI 的状态栏扩展包:把会话统计行(StatsLine) 整合为一套模块化、可装配、带账户余额的状态栏。
一个补丁脚本、三个阶段、幂等可重打;与 DSH 的 UI 设计令牌 / 设置面板风格完全一致。
功能
Phase 1 · 花费估算(cost)
统计行末尾追加 花费 ¥X,悬停显示分桶明细与三套价目:
会话花销估算 · deepseek-v4-pro
输入·缓存命中 7.2M tok(¥0.15/M)→ ¥1.08
输入·未命中 73K tok(¥4.5/M)→ ¥0.33
输出 118K tok(¥13.5/M)→ ¥1.59
现行价 ¥1.11 · 新价空闲 ¥3.01 · 新价高峰 ¥6.01
计价覆盖 deepseek-v4-pro / deepseek-v4-flash 的现行价与峰谷新价,
浏览器控制台可用 localStorage["dsh.statsCost.model"] 切换模型。
Phase 2 · 状态栏模块(statusbar)
「设置 → 通用设置」底部新增 状态栏 分组,七个模块各配一个开关, 顶部提供「全部开启 / 全部关闭」快捷操作;统计行按勾选结果实时装配:
| 模块 | 状态栏显示 | 说明 |
|---|---|---|
| 会话进度 | 9 轮 · 84 步 | 轮数与步数 |
| 耗时 | LLM 32m22s · 工具调用 6m49s | LLM 与工具调用时长 |
| 性能 | 首 token 平均 1.6s · 82 tok/s | TTFT 平均与生成速度 |
| 缓存命中 | 缓存命中 99% | 输入缓存命中率 |
| Token 用量 | 输入 11.4M tok · 输出 148K tok | 输入与输出 token 数 |
| 花费估算 | 花费 ¥1.42 | 会话花销估算 |
| 账户余额 | 余额 ¥4.36 | 账户余额(总 / 赠送 / 充值) |
- 开关状态存于浏览器 localStorage(键
dsh.statusbar),刷新后保留; - 默认全部开启;全部关闭时统计行整体隐藏;
- 中英文词典均已补齐;开关为品牌色圆角滑钮,
role="switch"/aria-checked无障碍语义,UI 与 DSH 设置面板一致(Setting-Cell 行 +--dsw-alias-*令牌)。
Phase 3 · 账户余额(balance)
经本地余额代理读取 DeepSeek 官方 GET /user/balance:
- 统计行显示
余额 ¥X,悬停显示总余额 / 赠送 / 充值明细; - 设置分组里「账户余额」行说明实时显示当前余额(
当前 ¥X); - 约每分钟刷新(TTL 60s);代理不可用 / 无 key / 超时 → 模块自动隐藏, 统计行不显示任何错误。
安装
powershell -ExecutionPolicy Bypass -File apply-patch.ps1
# 目标文件非默认位置时:
powershell -ExecutionPolicy Bypass -File apply-patch.ps1 -Target <client.js 路径>
- 默认目标:
$env:DSH_HOME\profiles\node_modules\@deepseek-ai\dsh-client-ui-conversation\lib\client.js(DSH 的 profile 树指向安装树,打补丁即生效); - 脚本幂等:三阶段分别检测,已打补丁自动跳过;
- 打前自动备份到
%TEMP%,打后自动node --check;锚点失效时报错而非静默破坏; - DSH 升级覆盖 node_modules 后重跑本脚本即可;
- 文件含中文,须以 UTF-8 BOM 保存(仓库内已保证)。
刷新浏览器即可生效(服务器按内容哈希提供 client.js)。
余额代理(balance-proxy.js)
浏览器不能跨域直连 api.deepseek.com(CORS),也不应持有 API key。
balance-proxy.js 是零依赖的 localhost 小服务:
- 只监听
127.0.0.1:3020(环境变量DSH_BALANCE_PORT可覆盖, 浏览器侧localStorage["dsh.balance.port"]同步覆盖); - API key 按与
dsh-credentials-local相同的顺序解析 (DEEPSEEK_API_KEY环境变量 →$DSH_HOME/.credentials.yaml),绝不回显,上游走 HTTPS; - CORS 仅允许
http://127.0.0.1:*来源,恶意来源得到null;非/balance路径一律 404; - 结果缓存 60 秒;端口被占时静默退出(防重复拉起);
- 日志写到
%TEMP%\dsh-balance-proxy.log。
启动方式(任选):
node balance-proxy.js
随 DSH 自动拉起:在 start-dsh.bat 中 DSH 命令前加一行
start "" /b node "<本仓库路径>\balance-proxy.js" >nul 2>nul
或在 DeepSeekHarness-Launcher.cfg 中加一行(需要启动器支持该配置项)
balanceProxy=<本仓库路径>\balance-proxy.js
兼容性与限制
- 针对
@deepseek-ai/dsh-client-ui-conversation@0.1.0-rc.6的编译产物; 上游结构调整时锚点检测会明确报错(而非静默破坏),届时需更新锚点; - 可与其他直接补丁(如已应用的花费估算旧补丁)共存;
- 余额模块依赖本机可访问
api.deepseek.com。
已验证
- 对原版
0.1.0-rc.6包做全新三阶段补丁:全部锚点命中、node --check通过; - 无头 Chrome 实测(0 报错):七个开关渲染与持久化、逐模块开关实时作用于统计行、
余额数值实时更新(
余额 ¥4.36)、代理安全项(CORS 收紧 / 404 / 无密钥回显 / 仅回环监听 / 重复拉起自愈)全部通过。
License
MIT