Back to home

HTUP1

dsh-plugin-manager

DeepSeek Harness 插件管理 —— 在设置面板查看已安装插件,支持停用/启用与卸载(中英双语)

Stars
0
Language
JavaScript
Created
Aug 15, 2026
Updated
Aug 15, 2026

Introduction

dsh-plugin-manager

DeepSeek Harness 插件管理 —— 在设置面板中查看已安装插件,支持停用 / 启用 / 卸载,中英双语界面。

功能

  • 📋 已安装插件一览:名称、版本、安装方式(pnpm 市场安装 / 手动安装)、启用状态一目了然
  • ⏯️ 停用 / 启用:立即生效,并持久化到 profile 的 bundles 注册列表(重启后保持)
  • 🗑️ 卸载
    • pnpm 插件:通过 dsh plugin remove 彻底删除包文件 + 移除注册
    • 手动安装插件:移除注册并停用,node_modules 中的文件保留
    • CLI 删除失败时自动降级为「软卸载」(移除注册 + 停用),并展示 CLI 错误信息
  • 🛡️ 自保护:插件市场(dshmarket)与插件管理自身不能被本页面卸载(提示改用 dsh CLI)
  • 🌐 中英双语:跟随 DSH 界面语言自动切换
  • ⚠️ 状态提示:区分「已停用但重启后会回来」「已注册但重启后才生效」等中间状态,不误导用户

界面位置

安装后在 DeepSeek Harness 的设置(Settings)面板左侧出现「插件管理」页(settings.section,order 45)。

架构

┌─────────────────────────────┐        RPC channel: /plugin-manager-cmd
│  Client (浏览器端)           │  ──────►  Host (dsh 进程内, trusted-host)
│  lib/client.js              │  list / setEnabled / uninstall
│  React 组件 + 中英字典       │  ◄──────  直接读写 profiles\<profile>\package.json
└─────────────────────────────┘          通过 loader 热切换插件挂载

Host —— lib/index.js

  • trusted-host 权限注册 RPC 频道 /plugin-manager-cmdconnection.rpc.handle
  • 直接读写 profile 的 package.json(dependencies + dsh.profile.bundles
  • 通过 loader.entries() 找到插件条目并调用 entry.update({disabled}, false, true) 实现运行中即时停用,无需重启
  • pnpm 插件卸载时重新调用启动宿主进程的 dsh CLI(dsh plugin remove --profile <profile>),自动识别 bin.js 入口;对插件名做 TARGET_RE 白名单校验,输出流截断防爆内存,15 分钟超时保护

Client —— lib/client.js

  • 预构建的 window.__ModuleLoader__.load() 模块,require('react') 渲染插件列表
  • 注册 settings.section「插件管理」页,中英文字典经 ctx.locale.register/bind 提供
  • 每个插件一行:名称 / 版本 / 状态徽标 / 安装方式 / 自保护与自身标记 / 描述 / 停用·启用·卸载按钮(卸载需二次确认)

安装

本插件以 DSH 插件包形式安装到 profiles:

  1. 将本包放入 profiles\node_modules\dsh-plugin-manager
  2. profiles\web\package.jsondependenciesdsh.profile.bundles 中登记 dsh-plugin-manager
  3. 重启 dsh web(或经市场安装)

插件需要 DSH 宿主提供 loaderconnectionslotslocale 服务与 dsh-client-* 客户端依赖。

安全设计

  • 插件名参数经 TARGET_RE^[A-Za-z0-9@:./_#+-]+$)白名单校验,拒绝路径穿越等恶意输入
  • 卸载/停用前校验插件确实在 dependencies
  • 自身与插件市场受保护,避免自杀式卸载
  • 所有 RPC 返回统一 { ok, value | error } 结构,异常不外泄堆栈

许可证

MIT