DeepSeek Harness 插件管理器 (dsh-plugin-manager)

前言

DeepSeek Harness (DSH) 采用“一切皆插件”的理念,通过配置文件管理插件的行为。在已有的做法中,管理插件条目(如启用/禁用)或通过 Web 界面安装新包通常需要操作文件或重启进程。下面介绍的 dsh-plugin-manager 提供了一个安全的、仅环回的 Web UI,用于管理当前激活的 Web 配置文件插件。

插件定位

  • 名称:leonardoxr/dsh-plugin-manager
  • 描述:Safe loopback-only Web UI for managing DeepSeek Harness profile plugins(用于管理 DeepSeek Harness 配置文件插件的安全、仅环回 Web UI)
  • 维护者:leonardoxr
  • 许可证:MIT
  • 分类:客户端

核心功能

经过上面的步骤安装后,该插件为 DSH Web 界面增加了以下能力:

  1. 条目控制

    • 启用或禁用来自当前激活的 Web 配置文件的可变条目,包括系统自带的条目。
    • 移除其自身的显式覆盖配置,将条目恢复到组合配置文件的默认状态。
  2. 热挂载

    • 安装并热挂载安全的单条目 DSH 包,无需重启 DSH Web 进程。
  3. 文件保护

    • 在 $DSH_HOME/profiles/web/cordis.patch.yml 中,除了一个清晰标记的受管理块外,保留其余部分的字节不变。
  4. 安全边界

    • 使用插件拥有的、注册了 authority: loopback 的连接 RPC 通道。
    • 当通过局域网或 Tailscale 访问时,Web UI 仅显示只读访问消息,不暴露生命周期或包操作。
    • 拒绝禁用自身或 Web 传输/UI/实时配置重载链路。
    • 拒绝模糊的重复 patch ID 以及配置文件树之外的条目。
  5. 包安装

    • 接受带有可选版本或 dist-tag 的 npm 注册表包名。
    • 通过 DSH 的公共子进程服务,无 shell 启动 pnpm,并使用凭证清洗后的环境。
    • 禁用包生命周期脚本并限制捕获的输出。

安装

安装该插件需要将预构建的发布包添加到 Web 配置文件中。安装完成后,DSH Web 需要重启一次,因为配置文件的扩展是在启动时扫描的。

dsh plugin --profile web add https://github.com/leonardoxr/dsh-plugin-manager/releases/download/v0.2.0/leonardoxr-dsh-plugin-manager-0.2.0.tgz

安装成功后,打开 DSH Web 界面,导航到 Settings(设置)→ Plugins(插件)→ Manage plugins(管理插件)即可使用。

使用方式

安装插件后,可以通过以下方式管理:

  1. 启用/禁用条目:在“管理插件”页面中切换条目的状态。现有的条目切换会被持久化到 Web 配置文件的 patch 中,并立即生效。
  2. 移除覆盖:如果插件条目被当前管理器覆盖,可以将其移除以恢复默认值。
  3. 安装新包:支持通过源码方式直接安装。
    dsh plugin --profile web add github:leonardoxr/dsh-plugin-manager#v0.2.0
  1. 刷新页面:安装新的浏览器包后,需要刷新浏览器页面以加载新的浏览器扩展。

注意事项与安全

在使用该插件时,需注意以下安全与功能限制:

  1. 环回权限限制:authority: loopback 限制了网络可达性,但这并不是调用者认证。本地同用户进程、可变包管理器可执行文件、SSRF 能力的浏览器内容以及忽略共享 DSH 锁的配置文件写入器,仍处于本地信任边界内。
  2. 沙箱隔离:禁用生命周期脚本并不对已安装的插件进行沙箱隔离。插件将使用与 DSH 主进程相同的用户权限运行。请仅安装经过审查和信任的发布者提供的精确版本。
  3. 包格式限制:插件拒绝安装复杂或多行的包。对于此类包,应使用官方 CLI 安装并在方便时重启 DSH Web。
  4. 超时处理:如果安装或操作超时,已管理的 patch 或条目会被保留,不会导致正在运行的条目变为未跟踪状态。
  5. 初始状态:由于配置文件扩展在启动时扫描,初次安装插件后必须重启 DSH Web。

总结

dsh-plugin-manager 为 DSH 用户提供了一个可视化的、安全的 Web 端管理入口,简化了插件条目的开关与热加载流程。但在使用前,请务必理解其安全模型与信任边界,避免引入不受信任的代码。

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

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

小夜