Skip to content
dsh.fish
Bundle

@v-manager/dsh-pet

A Live2D pet companion for the DeepSeek Harness web UI: the Vivi (芊芊) character with petting/feeding, a daily-treat bond economy and mood-driven expressions.

Source
Lolancier
License
MIT
Updated
Updated 2 days ago

Readme

# @v-manager/dsh-pet — V-Manager 桌宠(DSH Web UI 内嵌 Live2D 桌面宠物)

> 独立插件库 **v-manager-dsh-pet**(包名 `@v-manager/dsh-pet`,首版 **0.1.0**),
> 兼容自 V-Manager 主仓库插件 0.2.14 的全部功能。
> B 形态 client-ui 插件:把 Vivi(芊芊)Live2D 陪伴面板内嵌进 **DeepSeek Harness(DSH)** 的 Web 对话页右侧,纯浏览器端注入,主机端零行为。

## 简介

一个面向 DSH Web UI 的桌面宠物插件,内置 **Vivi(芊芊)** Live2D 形象:

- 右贴边整高悬浮面板,原生 `<details>` 折叠(收起成 44px 窄条),跟随 DSH 亮/暗主题;
- 点击/抚摸角色、喂食小鱼干,真实写入羁绊值并即时刷新面板;
- 每日小鱼干限量、冷却防刷、跨日自动重置;
- 情绪(mood)→ 芊芊表情自动驱动:待机/思考/说话/开心/难过/惊讶/生气/害羞,各带 31 枚表情中的代表表情;
- 数据完全由 DSH 侧自维护(页面 localStorage),**不读写任何桌面临数据目录**。

## 功能清单

- **Live2D 芊芊**:moc3 + 5×1024 贴图 + 31 个表情(无动作,靠表情 + 物理 + 眨眼),点击角色 = 抚摸 + 表情轮换。
- **抚摸**:点击角色 `bond +1`,10s 冷却。
- **喂食**:按钮消耗 1 个小鱼干 `bond +5`,30s 冷却;每天最多 5 个、跨日自动重置,冷却与余量持久化防刷。
- **羁绊经济**:`0-39 初识 / 40-79 熟络 / 80-100 羁绊`,档位决定情绪取哪枚代表表情,跨档自动重解析。
- **数据通道**:mood/bond 只落在 DSH 页面 localStorage(`vmanager:` 命名空间),支持只读导入快照(DevTools Console 写入 `vmanager:import-snapshot` 后刷新)。

## 安装

插件为**自包含单包**:Live2D 运行时(pixi / Live2D Core / pixi-live2d-display)与芊芊模型都构建进
`lib/client.js`(**已随库提交**),因此可**直接安装、无需本地构建**。

### 方式 A(推荐):GitHub 安装(无需构建)

```powershell
# 有 dsh CLI:
node "D:\DSH\DSH Desktop\resources\app\node_modules\@deepseek-ai\dsh\lib\bin.js" plugin --profile web add https://github.com/Lolancier/v-manager-dsh-pet

# 或本地克隆后用防呆安装脚本(自装 + boot 同款校验):
git clone https://github.com/Lolancier/v-manager-dsh-pet
cd v-manager-dsh-pet
npm ci                # 仅安装 peer 元数据;本库构建不依赖任何运行时 npm 依赖
npm run build:web     # 可选:重新生成 lib/client.js(若你改过 lib/client.src.js)
npm run install:web   # 装进 %APPDATA%\dsh-desktop\harness\profiles\web
```

> 安装目标为 DSH Desktop 的 **`%APPDATA%\dsh-desktop\harness\profiles\web`**(不是
> `~/.dsh/profiles/web`)。装完需**完全退出并重开** DSH Desktop,右侧出现 V-Manager 桌宠面板。

### 方式 B:从源码构建(可选)

仓库已随库提交预构建的 `lib/client.js`,一般无需构建。若你改了 `lib/client.src.js`,运行:

```powershell
npm ci
npm run build:web      # 生成自包含 lib/client.js(约 22MB)
npm test               # 契约级冒烟测试(node --test,无需 DSH)
```

> 本库构建/测试不需要任何外部 npm 运行时依赖(pixi 等已内嵌 `vendor/`),`npm ci` 仅装
> `@deepseek-ai/cordis` peer(实际运行由 DSH 提供)。若 npm 因离线无法装 peer,
> `npm install --ignore-scripts` 亦可直接跑 `build:web` 与 `test`(二者仅用 Node 内置模块)。

## 交互

| 操作 | 效果 | 限制 |
|---|---|---|
| 点击/抚摸角色 | bond +1,并轮换一个表情 | 冷却 10s |
| 点「喂食(小鱼干 ×N)」 | bond +5 | 消耗 1 小鱼干、冷却 30s,每日限量 5 |
| 折叠面板头 | 收起/展开(窄条) | 零 JS 状态 |

## 设置与开关(market)

本插件列入 DSH profile `dependencies`,因此在 **DSH 插件市场(dshmarket)→「已安装」**
页可见并有开关(与 skin-center 等市场插件同款):

- 打开桌面版 → 插件市场 →「已安装」→ **Vivi · V-Manager** → 开关停用/启用;
- 停用 = 往 profile 根 `cordis.patch.yml`(用户补丁层)写 `- id: vmanager-pet` + `disabled: true`,
  面板随即消失;启用则清除该行。

## 卸载

把 profile `package.json` 的 `dsh.profile.bundles` 里移除 `@v-manager/dsh-pet` 条目,
并删除 `node_modules\@v-manager\dsh-pet` 目录,重启 DSH。插件对 profile 的改动仅此一处,
无其它残留(localStorage 键 `vmanager:*` 可自行清)。

## 数据隔离(红线)

- 本插件**不读写** `%APPDATA%\v-manager` 或任何桌面临数据目录;
- mood/bond/冷却/小鱼干只落在 DSH 页面自身 localStorage(`vmanager:` 前缀);
- 桌面应用可独立运行,不受插件影响。

## 模型来源与许可注记

- **芊芊(qianqian)模型**:VTube Studio 导出(moc3 12.3MB + 5×4096 贴图 + 31 表情),
  为**量贩(批量授权)可商用模型**,购买方已取得允许公开分发与使用的授权;本项目
  **非商用**、仅供社区开源使用与展示。若后续转为商业用途,请以购买渠道原始授权条款
  为准并保留作者署名。
- **第三方运行时**:pixi.js(BSD-3)/ pixi-live2d-display(MIT)/ Live2D Cubism Core
  (Live2D 专有许可)。
- 完整注记见 [`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md);本插件自身代码为
  [MIT](LICENSE)。

Install

dsh plugin --profile web add github:Lolancier/v-manager-dsh-pet#2cab8f14a7fed677826355e730b80f395f63dd76

Profile: web

Source