dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
给 DSH 小鲸鱼挂件加一层装饭喂鱼:装饭 → 每轮吃 → 报账 → 讨饭
给 DSH 小鲸鱼记账挂件(dsh-whale-widget)加一层「装饭喂鱼」的独立附加插件。
先给大肥鱼装饭(1 碗 = 100 万 token),每轮对话按真实消耗吃掉米饭;吃完它会自己讨饭。
不改挂件本体、不做饱食度养成、不自动装饭。没装宿主挂件时本插件不显示任何东西。

吃饭动作特写(鲸鱼立绘 = 宿主默认角色图):咧嘴笑 + 一颗小虎牙,木勺舀饭 → 饭团飞进嘴 → 合嘴咀嚼:

| 装饭菜单 | 每轮报账 |
|---|---|
![]() | ![]() |
| 没饭了会讨饭 | 饿久了会「饿坏了」 | 设置里的「本对话饭账」 |
|---|---|---|
![]() | ![]() | ![]() |
截图为本地
npm run demo预览,鲸鱼立绘直接取自宿主插件dsh-whale-widget的默认角色图(仅用于演示,本包不打包任何上游素材)。真实使用时叠加在「小鲸鱼记账挂件」旁。
| 说明 | |
|---|---|
| 宿主 | 「DSH 小鲸鱼记账挂件」dsh-whale-widget(右下角余额鲸鱼)。本插件是它的附加层,不是替代品。 |
| 玩法 | 每个对话有自己的一锅饭:点碗装小碗(20 万 token)/ 半碗(50 万)/ 一碗(100 万);每轮对话按真实 token 消耗吃米饭;每轮结束气泡报账「这轮吃了多少 · 还剩多少」;没饭了先讨饭 10 次,再等 10 分钟会变成「饿坏了」(不喂就一直灰着,补饭才恢复)。 |
| 画面 | 透明玻璃碗装着一整块煮熟的米饭(米粒只是表面纹理);主碗 + 最多 4 个碗位显示总库存(最多 5 碗,超过继续记账、UI 不变;装饭菜单:小碗 20 万 token = 1/5 碗、半碗 50 万 = 0.5 碗、一碗 100 万)。吃饭时鲸鱼咧嘴(一颗小虎牙)、木勺舀饭、饭团飞进嘴里、嚼两下,配更可爱的舀饭 / 碰碗 / 咀嚼音效(WebAudio 现场合成)。 |
| 记录 | 每个对话(DSH session)独立记账:已装 / 已吃 / 剩余;切换对话各吃各的;刷新页面保留。 |
| 不是 | 不是饱食度养成、不做等级/记忆、不自动估算、不读对话内容、不联网上传。 |
和已有的同类插件 dsh-whale-food-expack(喂饭 + 饱食度养成)相比:它做「养宠物」,本插件做「装饭—吃饭—报账—讨饭」。两者都会在鲸鱼旁摆碗,建议只装一个;同时装了会检测并提示。
前置:DSH 0.2.x(在 0.2.0-rc.2 实测)与「DSH 小鲸鱼记账挂件」dsh-whale-widget@^0.4.2:
dsh plugin --profile web add dsh-whale-widget
dsh plugin --profile web add github:LuChen0820/dsh-whale-ricebowl
dsh plugin --profile web add dsh-whale-ricebowl
dsh plugin --profile web add link:C:/path/to/dsh-whale-ricebowl
桌面端的 index.html 由安装包静态直出,tapIndex 不生效;本插件已额外注册 webserver/index-inject 结构化注入行。装法与鲸鱼挂件一致:在桌面端会话里让 DSH 自己装,或使用桌面端自带的 dsh 命令安装到 desktop profile。宿主改动要完全重启桌面应用;只改样式/动画(assets/)刷新页面即可。
turn/start 后鲸鱼开始干活;真实 token 到账时它张嘴吃饭,米饭一点点变少。turn/end 后气泡报账,例如「这轮吃了 5.4K · 剩 3 碗」;短回合也会补演至少一口再报账。no-store,改样式刷新页面即可。嘴的位置按宿主默认立绘
DSniang1.png标定好(mouth.x=0.555 / y=0.735、嘴宽 ≈ 立绘宽的 8%),嘴型是咧嘴笑 + 一颗小虎牙(柔粉口腔 + 深蓝细描边),开箱即用、不需要手动校准。换自定义立绘时若嘴对不上,改assets/config.json的mouth.x / mouth.y / mouth.size(相对立绘宽高的 0~1 与嘴宽比例),或关掉「吃饭动作」。
v0.5.0 把吃饭动画改成了串行咀嚼队列:
assets/config.json 的 biteTokens)。assistant/message 事件里 usage.inputTokens + usage.outputTokens 的累计值。inputTokens 是非缓存输入(Anthropic 口径),outputTokens 已包含 reasoning;不把 cacheReadTokens 算进去,和常见「每轮消耗」口径一致。lib/state.js 顶部的 COUNT_CACHE_READ。/dsh-whale-rice/turn.json;饭账只存在浏览器本地。| 文件 | 改什么 |
|---|---|
assets/config.json | tokensPerBowl(1 碗 = 多少 token,默认 100 万)、maxBowls(最多显示几碗,默认 5)、feedOptions(装饭菜单档位:小碗 20 万 / 半碗 50 万 / 一碗 100 万)、biteTokens(每口 token 粒度)、begTimes(讨饭次数,默认 10)、starveDelayMs(讨饭完到「饿坏了」的等待,默认 10 分钟)、starveIntervalMs(饿坏了之后的气泡间隔)、轮询 / 报账时长、嘴部锚点 mouth |
assets/lines.json | 台词池(讨饭 / 装饭 / 首次引导) |
lib/state.js | 计费口径 COUNT_CACHE_READ |
例:想让每轮肉眼更容易看到米饭减少,把 tokensPerBowl 从 1000000 改成 100000(10 万 token 一碗),5 万 token 的长轮就能吃掉半碗。
改完刷新页面即可;宿主半端改动需要重启 DSH。
localStorage(键前缀 dshwr-)。/dsh-whale-rice/* 是 DSH 本机 web server 上的只读路由。0.2.0-rc.2 + dsh-whale-widget@0.4.2;Web 端已在真实 DSH 页面验证(插件注入、宿主锚点、饭碗挂载、无 console 报错)。桌面端走同一套 webserver/index-inject 结构化注入通道(与宿主插件同款)。tokensPerBowl 调小。window.__dshWhaleRoot / .dshwv-root / .dshwv-img)。上游改 DOM 可能导致错位:本插件找不到锚点时会静默隐藏并输出 console 提示,不会白屏;docs/tech-notes.md 记了锚点清单。DSniang1.png 标定(默认 mouth.x=0.555 / y=0.735、宽 ≈ 立绘宽 8%,落在双眼中间偏下);换自定义角色图会错位,改 assets/config.json 里的 mouth 即可,或关掉「吃饭动作」。宿主既没有嘴、也不暴露嘴部锚点,本插件只是把一张小嘴叠在立绘上,不修改、不替换宿主图片。dsh-whale-widget(DSniang1.png),仅用于演示本插件的挂载效果;本包不打包任何宿主美术素材。localStorage 恢复;跨对话不串。npm test # node --test:21 条测试(事件折叠 / 资产路由 / 注入契约 / 配置与玩法契约)
npm run demo # 本地预览:http://127.0.0.1:19480/(模拟宿主 DOM,左侧按钮模拟装饭/每轮消耗)
demo 页面左侧按钮:装小碗 / 装半碗 / 装一碗、开始一轮、吃 2.6K、吃 5.4K、结束本轮、一键跑完一轮、试听音效(舀饭 / 碰碗 / 咀嚼 / 讨饭)、空碗讨饭演示、清空饭账。
目录:
lib/index.js 宿主:事件折叠、turn.json、资源路由、web/桌面注入
lib/state.js 纯函数:usage 口径、事件折叠、快照(单测覆盖)
assets/client.js 浏览器:找宿主锚点、饭碗/米面/多碗、串行吃饭、报账、讨饭、本地饭账
assets/client.css 叠加层样式(dshwr- 前缀,不碰宿主 dshwv-)
assets/config.json / lines.json 可调配置与台词
demo/ 本地预览服务与页面
test/ node:test 测试
docs/ 技术细节、v0.5.0 设计草案与截图
dsh-plugin);package.json 已补 repository / homepage / bugs / author。dsh-whale-ricebowl 已确认未被占用;发布 npm publish --access public(files 白名单不含 demo/ 与测试)。dsh-plugin + Release v0.5.0;仓库根有 LICENSE / NOTICE.md / CHANGELOG.md;dsh.bundle 指向 cordis.patch.yml。dsh-whale-widget;插件市场按 dsh-plugin topic 发现。npm test 全绿 + npm pack --dry-run 清单核对 + 干净 profile 用 tarball 安装验证 + Web/桌面各手动跑一遍「装饭 → 吃 → 报账 → 讨饭 → 加饭」。