dsh-plugin-confirmo
其他 活跃维护

dsh-plugin-confirmo

purezhi/dsh-plugin-confirmo

该插件复刻confirmo核心交互逻辑,适配DeepSeek Harness使用环境,可为高风险操作添加确认弹窗,避免误触发,安装即用无需额外配置,交互简洁流畅。

1
Stars 标星
0
Forks 分支
1
Watchers 关注
0
Open Issues
JavaScript
主要语言
MIT
开源协议
3.3 MB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:purezhi/dsh-plugin-confirmo
git clone https://github.com/purezhi/dsh-plugin-confirmo.git
git clone git@github.com:purezhi/dsh-plugin-confirmo.git
README.md main

DSH UI Confirmo 桌宠

在 DeepSeek Harness (DSH) 的 Web UI 里复刻
confirmo.love 的桌宠体验:一只会动、可拖拽、可换形象的 AI 编码小伙伴,
并支持 sprites.confirmo.love 社区精灵图。

交互、视觉与素材规范均致敬 confirmo.love 及其社区精灵图画廊。

📸 效果预览

默认 待机 工作状态
默认 待机 工作状态
开心 兴奋 睡觉
开心 兴奋 睡觉

✨ 功能

默认形象

confirmo.love 同款黄猫(SVG 复刻官方 logo,渐变 #FCD34D→#F59E0B):
浮动 / 眨眼 / 耳朵抖动 / 胡须摆动 / 高光闪烁 / 尾巴摆动。

7 个精灵状态

每个 sprite 是 8 列 × 7 行 = 56 帧 的精灵图,每行一个动画:

行 状态 触发方式
Row 1 待机 Idle 默认基础状态
Row 2 开心 Happy 单击(250ms 手势窗口确认)
Row 3 兴奋 Excited 双击 + 整体弹跳
Row 4 睡觉 Sleepy 5 分钟无 agent 动作/宠物交互自动入睡,3 个 Z 飘动
Row 5 工作 Working 检测到 DSH agent 运行自动切换,齿轮 + 三点加载 + 上飘代码符号
Row 6 生气 Angry 快速连点 5 次 / agent 运行出错 / sprite 加载失败
Row 7 拖拽 Dragging 按住拖动
  • 手势用延迟提交(250ms 去抖窗口)区分单击/双击/连点,不依赖浏览器 dblclick 事件
  • 状态互斥:工作中/兴奋动画播放中单击不响应;连点 5 次仍可升级为生气
  • 任务完成时播放「兴奋(远近缩放) → 开心」庆祝 + 「搞定! ✓」气泡
  • 右键菜单含 7 个状态按钮,可 10 秒预览每个状态(可被交互打断)

社区 sprite 支持

  • 在线拉取清单:菜单支持实时显示社区最新 sprite
  • 分层本地缓存:缓存正在使用的 sprite,提升加载速度
  • 抠图:纯品红 #ff00ff 背景自动抠除,移植官网画廊同款流水线,对非标准品红背景(如深紫)也鲁棒
  • 空闲预取:启动预热 + 入睡时用空闲带宽逐个补齐磁盘缓存

交互与细节

  • 拖拽移动(位置持久化);右键菜单切换形象 / 大小(96/128/160)/ 状态预览
  • 默认位置左下角;形象、位置、大小存于 localStorage
  • 菜单缩略图统一(processed 缩略图优先,缺失时 canvas 抠图兜底)、深色主题适配
  • 尊重系统 prefers-reduced-motion

📦 安装

git clone <your-repo-url> confirmo
cd confirmo
./install.sh

脚本会:把插件包拷贝到 ~/.dsh/profiles/node_modules/dsh-plugin-confirmo/、在两个 profile
的 cordis.patch.yml 插入 confirmo 注册段、给 web profile 建符号链接。

然后重启 DSH Desktop(插件集变更需要重启,client-modules 的包元数据缓存设计)。
重启后 window.__DSH_BOOT__ 会包含 dsh-plugin-confirmo 条目,浏览器自动加载桌宠。
node 端路由(/confirmo/sprites、/confirmo/sprite)也随重启注册。

🔧 开发

node dsh-plugin-confirmo/build.js   # 从 client.src.js + sprite_list.json 生成 lib/client.js

lib/client.js 是浏览器端 bundle(window.__ModuleLoader__.load(...) 格式),由
lib/client.src.js(源码)+ sprite_list.json(内置 sprite 快照)构建而来。

改动流程:改 client.src.js → node build.js → cp lib/client.js ~/.dsh/profiles/node_modules/dsh-plugin-confirmo/lib/client.js → 刷新页面生效
(改 index.js 才需要重启 DSH Desktop)。

手动更新内置 sprite 快照(可选):

curl -s "https://api.sprites.confirmo.love/sprites?page=1&limit=20&sort=trending" -o /tmp/trending.json
# 处理后覆盖 sprite_list.json, 再 node build.js

🗑️ 卸载

cd confirmo
./uninstall.sh

删除插件包、web 链接和两处 cordis.patch.yml 注册段,重启 DSH Desktop 生效。

📁 文件结构

confirmo/
├── LICENSE
├── README.md
├── install.sh / uninstall.sh
├── docs/
│   ├── screenshots/         # 效果预览截图(README 引用)
│   ├── sprites/             # 社区 sprite 素材(git 排除, 用 download-sprites.mjs 重新下载)
│   └── submission/          # 1024Store 插件市场投稿文件
└── dsh-plugin-confirmo/
    ├── package.json        # 声明 dsh.bundle.patch + dsh.client (platform: web), 导出 ./client
    ├── cordis.patch.yml    # bundle patch: 注册 confirmo 插件到 cordis 配置
    ├── sprite_list.json    # 内置 sprite 快照(60 个热门 sprite 的 URL 清单)
    ├── build.js            # 构建脚本
    └── lib/
        ├── index.js        # node 端:/confirmo/sprites 清单代理 + /confirmo/sprite 磁盘缓存路由
        ├── client.src.js   # 浏览器端源码(猫咪 SVG + 抠图 + 播放引擎 + 手势 + 缓存 + 菜单)
        └── client.js       # 构建产物(ModuleLoader bundle)

📜 致谢与声明

  • 复刻自 confirmo.love 的交互体验与视觉风格,精灵图规范来自
    sprites.confirmo.love 社区
  • 精灵图素材版权归各自作者所有;本项目仅嵌入其 URL 清单,运行时从官方服务器加载
  • 本项目为独立开源实现,与 confirmo.love 无隶属关系

⚖️ License

MIT