dsh-plugin-manager:DSH 网页插件管理插件

前言

DeepSeek Harness (DSH) 采用“一切皆插件”的架构,这意味着运行时的核心能力往往由各类插件提供。在管理这些插件时,传统做法通常需要重启应用或手动编辑配置文件,操作不够直观且容易出错。dsh-plugin-manager 旨在解决这个问题,它通过一个 Web 界面,让你能在设置页直接控制已安装插件的启停,并自动处理底层配置文件的写入。

功能概览

该插件运行时条目 ID 为 dsh-plugin-manager,核心功能包括:

  • Web 设置页管理:在 Web 设置页提供插件列表,支持搜索与筛选(官方/第三方)。每个插件一行开关,切换后立即生效。
  • 配置持久化:启停操作会自动写入用户层的 cordis.patch.yml 文件,确保重启后状态保持。
  • 热更新支持:利用 Cordis loader 的热更新机制,启停操作无需重启进程。
  • 信息展示:显示插件运行状态(运行中/已停用/挂载失败等)、官方徽标(@deepseek-ai/*)与受保护标记。
  • 安全防护:内置可信请求栅栏,防止跨站请求伪造与 DNS 重绑定攻击,将配置平面限制在回环地址。
  • 核心保护:内置保护列表,禁止停用 webserver、ui-settings、ui-sidebar 等核心条目,防止 UI 自锁。

安装与启用

安装该插件需要通过 DSH 的插件命令行工具。

dsh plugin --profile web add @wsgsety/dsh-plugin-manager

安装完成后,需要重启 DeepSeek Harness 的 Web profile(可通过命令行或桌面应用重启)以使插件生效。

使用方式

安装成功后,在 Web 界面的设置页面中导航至“插件 > 插件管理”。

  • 搜索与筛选:在搜索框输入关键词可快速定位插件,支持按“官方”或“第三方”标签筛选。
  • 启停插件:点击插件行右侧的开关即可启用或停用。开启操作会写入 disabled: false,关闭操作会写入 disabled: true,并自动保存到用户 patch 层。

架构与安全

插件通过自定义路由与 DSH 后端交互。

路由设计

路由 方法 说明
/dsh-plugin-manager/entries GET 获取 loader 条目投影与 patch 停用列表
/dsh-plugin-manager/set-enabled POST 执行启停操作,写入 patch 持久化
/dsh-plugin-manager/ping GET 健康检查

可信请求栅栏

所有接口均走官方 dsh-client-connection 同款可信请求栅栏:
* Host 验证:必须是回环权威地址(localhost / 127.0.0.0/8 / [::1])。
* 请求来源:拒绝 Sec-Fetch-Site: cross-site 请求。
* Origin 一致性:请求携带的 Origin 必须与 Host 完全一致。
* 写接口限制:写接口额外要求 TCP 对端可见地址为回环地址,将配置平面限制在本地。

保护机制

插件自身与 DSH 核心条目受到保护,禁止被停用。受保护列表包含但不限于:
webserver、web-runtime、modules、connection、client-runtime、locale、ui-layout、ui-sidebar、ui-settings、ui-settings-plugins(本插件所在页面 slot 的所有者)、settings、typert*、api-remotes、dsh-plugin-manager。

注意事项

  • Patch 层语义:cordis.patch.yml 层叠规则要求显式写入 disabled 字段。禁用插件必须写入 disabled: true,启用插件必须写入 disabled: false。删除该字段或写入非布尔值会导致插件在重启后重新停用或解析失败。
  • 请求体积限制:写请求的 JSON body 体积受限(16 KiB),这限制了同时修改大量插件的并发操作。
  • 网络限制:插件仅支持回环地址访问,无法通过局域网 IP 或公网 IP 访问管理界面。
  • 依赖项:该插件依赖 @deepseek-ai/cordis 作为 peer dependency。
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜