dsh-pet
PC2005-cloud/dsh-petDSH Web UI 桌面宠物,Windows / macOS / Linux 三端可用:浏览器浮层或透明置顶桌面窗口,106 个透明动画、带挤压与粒子的甩抛反弹物理、随会话事件实时联动的工作状态气泡、碎碎念与带持久记忆的对话、余额展示、表情包配图、多开同屏,并支持直接放入的自定义动画与宠物种类(pet pack)。
给 DeepSeek Harness 的发送按钮旁装一根 3D 拉杆——拉下去,用模型思维链的文本信号开一局像素风抽卡。纯属娱乐,Just for fun。
预览:克隆仓库后直接打开
persistent/dev-preview.html(零依赖,双击浏览器即可观看完整三维抽卡演出,无需 DSH)。 2026-08-18 更新 (v0.1.6):llm/stream监听器改为消费方防御——for await (const chunk of await next())先 await 再迭代。链上任何下游监听器返回 Promise 或流都能安全透传,不再有「async 监听器包 Promise → 全局模型调用崩溃」的隐患。 2026-09-16 更新 (v0.1.7): 修复 dsh ≥ 0.1.5-rc.1 下「拉杆恒为 disabled」——conversation.input.right的 owner props 被 host 移除后,草稿改由标准useInputselector hook 提供,旧 host 继续走props.input。
---## 这是什么
DeepSeek Harness(DSH)的模型调用效果方差很大,像抽卡一样忽好忽坏。这个插件把"抽卡"变成了字面意思:
I will / I'll / I need / we need / we should / 我会 / 我需要 / 我们得…verify / check / test / confirm / double-check / make sure / 验证 / 检查 / 核实…however / wait / I was wrong / let me reconsider / 但是 / 重新 / 等等…constraint / trade-off / edge case / 约束 / 边界 / 权衡…first / second / step / finally / 首先 / 其次 / 总结…let me / 让我 等弱风格信号。拉杆拖动的信号会跨流式分片拼接统计(DeepSeek 会把单词切成
I wi+ll,插件做了跨 chunk 尾巴缓冲,不会漏检)。
rgba(26,30,38,.62) + 毛玻璃模糊):不遮挡对话,随时能看见背后内容。seed 驱动。prefers-reduced-motion 与窄屏布局。let me 不是罪。它只是弱风格信号;只有当验证/自纠错/结构信号都缺失时才产生轻微负分。dsh plugin --profile web add @a9i5k4/dsh-draw-gacha
包内已声明 dsh.bundle.patch:dsh plugin add / dsh-market 安装时,插件行会由插件自带的 cordis.patch.yml 自动注入(Profile 的 dsh.profile.bundles 会包含该包),无需再手写下面这一行——重复添加会产生重复 loader entry。
只有手动 link: / 源码放置、且确认该包未进入 dsh.profile.bundles 时,才需要在 Profile 的 cordis.patch.yml($DSH_HOME/profiles/web/cordis.patch.yml)补上插件行:
- insert:
- id: draw-gacha
name: '@a9i5k4/dsh-draw-gacha'
重启 dsh web 即可。
# 克隆或解压到本地目录后
dsh plugin --profile web add link:D:/path/to/dsh-draw-gacha
同样需要把插件行加进 Profile 的 cordis.patch.yml。
reasoning X · text Y 与信号统计。键盘:
Enter/Space可触发完整拉杆动作;Escape取消未发送的拉杆状态。
persistent/
├── lib/index.js # Host:llm/stream 监听、10 类信号统计、/api/draw-gacha/* 路由
├── lib/client.js # 浏览器端:拉杆 + 三维演出 + 结算(dsh.client bundle)
├── cordis.patch.yml # 插件行声明
├── dev-preview.html # 独立开发预览页(零依赖,双击即看,不依赖 DSH)
└── package.json
llm/stream 并原样转发每个 chunk,不改写冻结的 GenerateOptions。options.sessionId + generation 隔离多会话;purpose=compaction/session-title 的辅助请求被排除。dev-preview.html 预览,满意后再同步进 lib/client.js(两边代码一致)。node --check lib/index.js
node --check lib/client.js
本地离线模拟(5 字符极端分片的中英文思维链)可确认全部 10 类信号计数 > 0。
MIT。插件代码与 CSS 原创;梁系立绘与「滑动变祖器」相关素材来自社区开源项目(Liang-Saint-Slider 等),复用/再分发请遵守其原始许可。人物与主题仅为玩梗,与任何真实人物或 DeepSeek 官方无关。
本结果仅根据生成过程中的文本信号娱乐性结算,不代表答案质量、模型能力、模型版本信息、人物能力或任何官方关系。抽卡有风险,拉杆需谨慎。