dsh-plugin-mgr:DeepSeek Harness 插件管理器

前言

DeepSeek Harness (DSH) 的核心设计理念是「一切皆插件」。随着插件生态的丰富,手动维护依赖、检查更新以及通过配置文件管理启停状态变得繁琐。dsh-plugin-mgr 是一个插件管理插件,它为 DSH 的 Web 界面新增了「插件管理」子页面,用于卡片式管理已安装插件,并提供启停、卸载、版本检查与搜索功能。

核心功能

该插件通过 Host/Client 分离架构实现功能,主要包含以下能力:

  • 卡片式列表与视图切换:以卡片形式展示已安装插件,显示名称、版本、运行状态和启停开关。支持单列/双列布局切换,并自动记忆用户偏好。
  • 启停与卸载管理:
    • 启停:通过操作 cordis.patch.yml 配置文件实现插件的启用/停用。修改后约 1s 通过热重载 (HMR) 生效,且状态跨重启保留。
    • 卸载:支持一键卸载,操作前会进行二次确认。卸载流程会先清理启停配置,再执行 dsh plugin remove 命令。
  • 详情与搜索:
    • 详情:点击卡片可展开详情,查看版本号、安装来源(npm/GitHub/本地)、仓库地址及插件介绍。
    • 搜索:工具栏提供搜索框,支持按名称、描述或 spec 进行大小写不敏感的过滤。
  • 更新检查:
    • 仅支持 npm 来源插件的更新检查。
    • 自动比对 npm registry 最新版本(结果缓存 5 分钟),卡片显示「可更新」徽标。
    • 支持一键更新到最新版,更新过程不会冲掉已有的启停状态。
  • 运行错误展示:监听宿主的 fiber 状态事件。当插件加载失败时,卡片会显示红色「加载失败」标识,详情页展示具体错误信息;插件恢复运行后自动清除失败状态。

安装与启用

在安装前,请确保宿主环境已安装 DeepSeek Harness 并运行 dsh web。

使用官方提供的命令安装插件:

dsh plugin --profile web add dsh-plugin-mgr

安装完成后,在 dsh web 界面中依次进入「设置」→「插件」标签,点击「插件管理」子页面即可查看已安装插件列表。

实现细节与注意事项

  • 架构设计:
    • Host 侧:负责注册 API 路由(列表、启停、卸载、更新检查)和读写 cordis.patch.yml 配置文件。
    • Client 侧:负责在设置页面的插件 tab 中注入 UI,展示卡片列表、搜索框和详情面板。
  • 安全与限制:
    • 宿主保护:宿主的基础设施模块拒绝被插件管理器启停或卸载;插件管理器自身的开关与卸载按钮在 UI 上会被置灰。
    • CSRF 校验:所有 POST 接口均校验 CSRF 门卫,并限制请求体上限为 64KB。
    • 更新范围:更新检查仅支持 npm 来源的插件,宿主模块与自身无法通过此功能更新。
  • 稳定性与并发:
    • 补丁层写入操作已做串行化处理,防止并发交错导致配置损坏。
    • 运行错误捕获通过 cordis internal/status 事件实现,不依赖轮询,能够即时感知插件失败与恢复状态。

生态背景

DeepSeek Harness 的插件生态由社区维护,与 DeepSeek 或幻方在技术层面无官方从属关系。在使用第三方插件前,请务必检查源码与许可证。

羽毛球分组比赛记分
小程序二维码

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

小夜