springbrand-lab/dsh-skin-universe--packages-dsh-pet3

@linxin666/dsh-pet

DSH 主题联动桌宠插件:支持抚摸、喂食、拖动及模型状态联动,提供亲密度反馈。

AI 分析

核心用途是为 DSH 界面增添趣味互动桌宠。适合喜欢桌面宠物、希望在枯燥的编码或工作过程中有虚拟伙伴陪伴互动的用户。

包名
@linxin666/dsh-pet
版本
0.1.7
许可证
BSD-3-Clause
最近更新
2026年8月17日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:springbrand-lab/dsh-skin-universe#519c9946d9ce2cb820ce305eb5de899393ae7828&path:packages/dsh-pet

dsh-pet — 主题联动桌宠插件

version license platform language

五套主题各有一只专属伙伴,陪你在 DeepSeek Harness 里工作。

桌宠会跟随当前皮肤切换外观,并保留摸头、喂食、改名、拖动、隐藏、召唤和亲密度反馈。未启用五套主题之一时不再显示旧鲸鱼娘素材。

复刻自 Codex 桌面版的宠物功能,以 DSH 官方插件形态实现(cordis bundle:host 半区 + client 半区单包)。

功能

功能说明
主题联动初恋、蛛网都市、宝可梦、木叶、鬼灭各自显示专属伙伴
摸头互动点击主题伙伴 → 气泡反馈 + 亲密度 +1(10s 冷却)
喂食悬浮面板「喂食」→ 消耗 1 条小鱼干 + 亲密度 +5(30s 冷却)
饲料经济小鱼干库存(上限 20):工作每 3 回合 +1 条、每 30 分钟 +1 条
亲密度每完成一个回合 +1;4 个等级:幼鲸 → 伙伴 → 挚友 → 深海羁绊(100 点封顶)
自定义命名悬浮面板「改名」→ 1–20 字符,持久化,召唤按钮/面板同步显示
拖动按住主题伙伴拖动重新摆放,位置持久化
隐藏/召唤悬浮面板「隐藏」;隐藏后输入选择行出现「召唤{名字}」按钮
状态气泡工作时显示模型当前状态短语

旧版动画素材

仓库仍保留原上游的 8 列 × 9 行鲸鱼娘图集作为兼容素材,但五套主题不会再展示它:

idle 待机waiting 等待running 干活jumping 庆祝
idlewaitingrunningjumping
waving 挥手review 复盘failed 失败左右移动
wavingreviewfailedrunning-left running-right

架构

dsh-pet/
|-- src/
|   |-- index.ts        # host 半区:插件入口(cordis apply,注册路由)
|   |-- service.ts      # PetService:宠物状态机 + 亲密度 + 配置(HTTP API 服务面)
|   |-- state.ts        # 宠物状态机:activity/status phase → 9 状态动画
|   |-- affinity.ts     # 亲密度账本(纯函数 + 冷却)
|   |-- treats.ts       # 小鱼干库存账本
|   |-- persist.ts      # 持久化($DSH_HOME/pet.json,原子写入)
|   |-- routes.ts       # /api/pet/* JSON API + /pet/whale/* 素材静态路由
|   `-- client/         # 浏览器半区
|       |-- index.ts    # slots 注册 + 轮询(800ms)+ 交互接线(fetch)
|       |-- PetDockEntry.tsx  # conversation.input.selector.context 挂载点
|       |-- WhalePet.tsx      # 浮层组件(portal + rAF 帧动画 + 拖动)
|       |-- spritesheet.ts    # 图集几何 + 每状态动画轨道(帧/时长)
|       `-- pet.module.css
|-- assets/whale/       # 上游兼容素材(默认隐藏)
|-- assets/theme-companions/ # 五套主题的专属伙伴
`-- cordis.patch.yml    # bundle patch:插入 pet 插件行

数据流

activity/status session 事件(原 working-activity 插件发布) --> PetService(host)
                                                              | /api/pet/* JSON
conversation.input.selector.context 槽位 `。

## 素材与动画轨道校准

鲸鱼娘图集由 hatch-pet 流水线按 9 状态 × 8 列生成:`assets/whale/spritesheet.webp`(1536×1872,8 列 × 9 行 192×208 单元)+ `assets/whale/pet.json`。每行实际帧数与节奏在 `src/client/spritesheet.ts` 的 `TRACKS` 中定义。若素材重做导致帧数变化,只需更新该表(行序契约:0 idle / 1 running-right / 2 running-left / 3 waving / 4 jumping / 5 failed / 6 waiting / 7 running / 8 review)。

## License

[BSD-3-Clause](https://github.com/springbrand-lab/dsh-skin-universe/blob/519c9946d9ce2cb820ce305eb5de899393ae7828/packages/dsh-pet/LICENSE)