READMESource: main@b8575d6c
dsh-plugin-zh-inventory
DeepSeek Harness (DSH) Web UI 插件 — 插件列表中文增强
为 DSH 设置页的「插件列表」标签页添加中文说明、分类标签、分组文件夹与启停开关,让看不懂英文插件名的用户一目了然,并可直接管理第三方插件。
效果
设置 → 插件 → 插件列表(中文),插件按 6 个可折叠分组展示,每组显示「已启用 n/总数」:
| 分组 | 图标 | 内容 |
|---|---|---|
| 📦 第三方插件 | 📦 | 非 @deepseek-ai 官方包(全家桶/皮肤/工具等),仅此处显示启停开关 |
| 🧱 核心底层 | 🧱 | DSH 本体基础服务(框架/启动/会话/存储/沙箱/模型接入) |
| 🛠️ 功能工具 | 🛠️ | 工具、命令、子代理、工作流、终端、代码执行、技能 |
| 🎨 界面与皮肤 | 🎨 | 界面组件、皮肤、侧边栏、宠物、遥控面板 |
| 🧠 记忆与上下文 | 🧠 | 上下文压缩、会话持久化/投影/搜索、溢出存储 |
| 🤖 会话预设基础 | 🤖 | Agent 预设默认项(影响新会话默认工具集) |
每张插件卡片显示:
ssh [其他] [已启用]
SSH 远程运维:主机/执行/隧道/文件传输
- 第三方插件卡片右侧有启停开关,点击即写入
~/.dsh/cordis.patch.yml,热重载生效,无需重启。 - 系统插件(DSH 官方包)固定启用、不显示开关;关键组件(llm/agent/session/本插件等 26 项)显示 🔒 禁止关闭。
- 搜索框同时匹配 模块名 / 短名 / 中文描述 / 分组标题;分组折叠状态保存在 localStorage。
安装
方式一:本地插件(推荐,升级 DSH 不丢失)
# 1. 克隆本仓库
git clone https://github.com/anxinyuanshiyu/dsh-plugin-zh-inventory.git
# 或下载 ZIP 解压到任意目录,例如 ~/.dsh/plugins/dsh-plugin-zh-inventory
# 2. 把插件注册进 web profile 的 package.json
# 在 ~/.dsh/profiles/web/package.json 的 dependencies 中添加:
# "dsh-plugin-zh-inventory": "link:<插件绝对路径>"
# 并在 dsh.profile.bundles 数组末尾追加 "dsh-plugin-zh-inventory"
# 3. 安装依赖
dsh plugin --profile web install
# 4. 重启 dsh web
dsh web
插件会自动禁用内置的只读「插件列表」标签页,并用带中文说明的「插件列表(中文)」替代。
方式二:直接覆盖内置组件(临时方案)
将 lib/client.js 复制到
node_modules/@deepseek-ai/dsh-client-ui-settings-plugin-inventory/lib/client.js
并重启。⚠️ 此方式在 npm 升级 DSH 后会丢失,仅作临时使用。
目录结构
dsh-plugin-zh-inventory/
├── package.json # 插件声明(dsh.client + dsh.bundle)
├── cordis.patch.yml # 挂载配置:禁用内置插件列表 + 插入本插件
├── lib/
│ ├── index.js # host 侧:/api/zh-inventory/toggle 启停路由 + patch 管理
│ └── client.js # 浏览器端 UI:分组文件夹 + 卡片 + 启停开关
└── test/
└── host.test.mjs # host 纯函数单元测试(node test/host.test.mjs)
工作原理
- 通过
dsh.bundle.patch在 Loader 中注册zh-inventory插件。 - 通过
dsh.client声明浏览器端入口,client-modules自动加载lib/client.js。 - client 端在
settings.plugins.tab插槽注册「插件列表(中文)」标签页,并禁用内置的ui-settings-plugin-inventory插件避免重复。 - 卡片渲染时按插件短名查表:分类标签(
categoryByShort)+ 中文说明(SHORT_ZH)+ 详情简述行;第三方插件有独立分组与启停开关。 - 启停开关:client 调用 host 路由
POST /api/zh-inventory/toggle,host 校验后把- id: <entryId>+disabled: true|false写进~/.dsh/cordis.patch.yml的 managed 段(原子写入),DSH 配置监听器热重载,几秒内生效。 - 安全门禁:host 只允许启停第三方插件;DSH 系统插件返回 400;关键组件(PROTECTED 集合)即使误调用也会被拒绝。
自定义
- 想修改某个插件的中文说明:编辑
lib/client.js中的SHORT_ZH对象。 - 想调整分类:编辑
categoryByShort函数。 - 想修改受保护组件清单:
lib/index.js与lib/client.js中的PROTECTED集合(两处需保持一致)。
License
MIT
No comments yet. Be the first to write one.