← Back to home@Guzi2005

dsh-whale-combo

鲸鱼娘合并数据卡:DSH Web 插件,毛玻璃余额/缓存/峰谷状态卡 + 深蓝扣费弹幕(合并 dsh-whale-widget 与 dsh-damage-pulse 的数据)

Stars
0
Language
JavaScript
Created
Oct 21, 2026
Updated
Oct 21, 2026

Introduction

dsh-whale-combo — 鲸鱼娘 · 合并数据卡

npm version license GitHub

一个 DeepSeek Harness(DSH)Web 插件:在右下角 dsh-whale-widget 的鲸鱼娘旁边,显示一张深色毛玻璃横向状态卡(余额 / 今日 / 缓存命中 / 峰·谷),并在每次计费时从她 头顶向上发射深蓝色扣费弹幕。界面在 shell.overlay 浮层里,原生 React 渲染,可在插件页启用 / 停用 / 卸载。

截图来自实际运行中的 DSH 客户端:鲸鱼娘头顶的深蓝扣费弹幕。

特性

  • 毛玻璃拟态卡片:backdrop-filter 模糊 + 半透明底色(约 26%)+ 顶部高光 / 内阴影 / 外投影, 不画整体描边(避免小尾巴接缝出现拼接线),尾巴是独立玻璃质地。
  • 三组极简图标 + 统一字号数值:
    • 钱包 ¥余额(薄荷绿)
    • 柱状图 ¥今日(白)
    • 数据库 缓存命中率(浅蓝)
    • 右侧 峰 / 谷 玻璃徽章:峰=红字红底,谷=绿字绿底(同色系),悬停有北京时间口径说明。
    • 「本轮消耗」收在整卡的悬停提示里,不占卡面位置。
  • 扣费弹幕:
    • 深蓝色(未命中的一条为灰色),金额 21px / 未命中 25px、标签 13px、字重 900;
    • 从鲸鱼娘头顶向上发射,队列发送、互不重叠,右对齐且「−」号成列;
    • 发射沿用 cubic-bezier(.2,.72,.3,1) 的「弹射」缓动,出现时从小到大;
    • 每条扣费事件只发一次:按扣费事件流的 seq 游标增量读取,不回放、不轮播。
  • 不双份界面:默认隐藏 damage-pulse 自带的悬浮卡,Ctrl+Alt+D 可临时显示。
  • 稳定定位:卡片锚定在鲸鱼娘头部右上方(尾巴尖靠近她的头);使用冻结锚点,鲸鱼娘的呼吸/浮动 不会带着卡片抖动,只有拖动她或缩放窗口才重新锚定。

卡片细节

交互

操作效果
左键点击鲸鱼娘开 / 关合并气泡
点击气泡本身立即刷新数据
右键气泡 / Esc / 点空白处关闭气泡
Ctrl+Alt+D临时显示 / 隐藏 damage-pulse 原来的悬浮卡
鲸鱼娘右上角 ☰仍是 dsh-whale-widget 自己的菜单(角色、大小、音效、吸附…)

依赖

本插件是界面层:角色与数据来自另外两个插件,需一并安装(本插件不包含它们的任何源码或素材)。

插件用途缺失时
dsh-whale-widget鲸鱼娘角色本体、.dshwv-img 点击目标、/dsh-whale/* 数据退化为右下角 ¥ 小圆钮开合气泡
dsh-damage-pulse/api/token-monitor/balance、today-spend、usage-summary、charge-events余额 / 今日 / 缓存 / 弹幕显示 --,峰谷仍按北京时间本地计算

数据来源(合并规则)

字段主来源回退
余额damage-pulse GET /api/token-monitor/balance?provider=deepseek-accountwhale-widget /dsh-whale/balance.json
今日消费damage-pulse GET /api/token-monitor/today-spendwhale-widget todayUsage
本轮消费whale-widget /dsh-whale/last-turn.json最近一条扣费事件金额
缓存命中率damage-pulse GET /api/token-monitor/usage-summary?range=today--
峰 / 谷whale-widget balance.json.isPeak本地北京时间计算(工作日 9–12、14–18)
弹幕damage-pulse GET /api/token-monitor/charge-events?since=<seq>(1s 增量轮询)—

所有请求都是同源只读接口,不新增外部网络调用。

安装

先装依赖插件,再装本插件:

# 1) 依赖(如果还没装)
dsh plugin --profile <profile> add dsh-whale-widget dsh-damage-pulse

# 2) 本插件(npm)
dsh plugin --profile <profile> add dsh-whale-combo

然后刷新页面 / 重开客户端。

也可以从源码 / 本地目录安装:

git clone https://github.com/Guzi2005/dsh-whale-combo.git
dsh plugin --profile <profile> add link:<clone 后的绝对路径>

或者在 设置 → 插件 → 安装本地包 里选择本目录。

卸载:Plugin Manager 移除本 bundle 即可。

实现

文件作用
index.jsHost 半身:只拥有插件行身份,无副作用
client.js浏览器半身:注册到 shell.overlay,渲染卡片 / 弹幕 / 兜底小圆钮
cordis.patch.ymlbundle patch:插入 Host 行
locale/{zh,en}.json插件页标题 / 描述
icon.png插件图标(448×448 PNG,216 KB,随包分发)

浏览器半身是手写的 window.__ModuleLoader__ 模块,不需要构建步骤,只依赖 shell 自带的 react。

集成契约:鲸鱼角色节点选择器为 .dshwv-root .dshwv-img(dsh-whale-widget 0.4.x)。 若上游大版本改动 DOM,只需改 client.js 里的 WHALE_SELECTOR。

说明与限制

  • 卡片保持深色毛玻璃与固定配色(按设计稿定制,不使用主题 token)。
  • 卡片 z-index 高于鲸鱼娘(10001),所以不会被她的头发盖住;弹幕在最上层(10002)。
  • 视觉在运行中的 DSH 客户端里截图核对过;不同窗口尺寸下的位置由锚点公式自动计算。

致谢

本插件的「鲸鱼娘」与「精确计费数据」分别来自下面两个同样以 DSH 插件形式存在的第三方项目。 它们各自保留完整版权与许可,本仓库不包含它们的源码或美术素材:

  • dsh-whale-widget — 鲸鱼娘角色、☰ 菜单、 /dsh-whale/* 数据接口。代码 MIT;assets/ 下的美术素材按原样随插件分发、不适用 MIT、不授予再许可, 因此本插件只通过它的 DOM 契约(.dshwv-root .dshwv-img)与 HTTP 路由协作,不复制任何素材。
  • dsh-damage-pulse — 余额 / 今日消费 / 缓存命中率 / 扣费事件流,以及「缓存感知」的计费口径。

感谢两位作者的出色工作 🐋

License

MIT