READMESource: main@1d602a57
方糕萌宠 · Fanggao Pet
一只会跟着 DeepSeek Harness 对话状态变化的方糕萌宠:对话进行时奔跑、完成时躺下睡觉、出错时生气。可鼠标任意拖拽,位置自动记忆。

特性
- 三态动画:由当前会话的
SessionSnapshot实时驱动状态 触发条件 形象 🏃 奔跑 running === true上下弹跳 + 双腿交替摆动 + 速度线 😴 睡觉 空闲 / 无报错 横躺、闭眼、头顶飘 Z z z😡 生气 lastAgentError/promptError/openError存在,或openState === 'error'竖眉、撇嘴、红脸、额头青筋脉冲 - 悬浮常驻:渲染在
shell.overlay帧级浮层,始终位于最上层,不占布局。 - 鼠标拖拽:按住可拖到屏幕任意位置,位置存入
localStorage,刷新后保留。 - 永不遮断操作:浮层本身 click-through,只有方糕本体响应指针事件。
- 纯 SVG + CSS 动画:矢量、任意分辨率清晰、体积小、跟随时序流畅。
安装
本插件是 DeepSeek Harness 的本地 bundle(@local/fanggao-pet):
- 克隆仓库到本地:
git clone https://github.com/gavinff1990/fanggao-pet.git - 在 Harness 中通过插件管理器安装该目录(绝对路径):
- 动作:
install_bundle - 目标:
<克隆目录的绝对路径>
- 动作:
- 插件会立即激活并出现在页面右下角(默认位置)。
安装/卸载时插件管理器会重新链接该 bundle;修改
client.js后重新安装即可热加载。
工作原理
- Host 半(
index.js)无需逻辑,只负责注册 bundle。 - Client 半(
client.js):- 注入
slots+sessions服务。 - 订阅
sessions.list找到当前主视图会话(retainedBy.mainView > 0)。 - 订阅该会话的
SessionFace(sessions.binding(id).session)读取SessionSnapshot,据此选出三种形态。 - 通过
ctx.slots.inject('shell.overlay', …)注册悬浮层条目,并用指针事件实现拖拽。
- 注入
文件结构
fanggao-pet/
├── package.json # bundle 清单(dsh.bundle.patch + dsh.client)
├── cordis.patch.yml # 插入 fanggao-pet 插件行
├── index.js # Host 半(空 apply)
├── client.js # Client 半:SVG 萌宠 + 状态 + 拖拽
├── icon.svg # 插件管理器中显示的图标
├── locale/{en,zh}.json # 插件标题/描述
└── docs/preview.png # 形态预览
自定义
- 颜色/造型:
client.js顶部的COLORS常量与runningPose/sleepingPose/angryPose三个函数。 - 拖拽记忆:
STORE_KEY(默认fanggao-pet.position)。 - 默认位置:
defaultPos()(默认右下角)。
许可
未附带开源协议。若需公开分发,建议补充 LICENSE(如 MIT)。
No comments yet. Be the first to write one.