DeepSeek Harness Hub
← 返回列表

插件热管理器leonardoxr/dsh-plugin-manager

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

在网页端启停插件并热装新包,无需重启进程

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/25 · 已提供中文文档

仅限安全回环的 Web UI,用于管理 DeepSeek Harness 配置文件插件

综合分
28.5
GitHub 分
28.5
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add leonardoxr/dsh-plugin-manager
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/cordis-plugin-include@deepseek-ai/cordis-plugin-loader@deepseek-ai/dsh-atomic-write@deepseek-ai/dsh-client-connection@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-settings-plugins@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-home-paths@deepseek-ai/dsh-host-apiproxy@deepseek-ai/dsh-subprocess
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-plugin-manager

一个独立的 DeepSeek Harness 插件,用于添加 设置 → 插件 → 管理插件。

它可以:

- 启用或禁用当前 Web 配置文件中的可变条目,包括随附条目;
- 移除自身的显式覆盖,使条目恢复为组合配置文件的默认值;
- 安装并热挂载安全的单条目 DSH bundle,而无需重启 DSH Web 进程;
- 在一个有清晰标记的托管块之外,逐字节保留 $DSH_HOME/profiles/web/cordis.patch.yml 的其余内容。

安全模型

所有状态和变更都使用插件自有的 Connection RPC 通道,该通道以 authority: loopback 注册。服务器会强制执行这一边界;通过 LAN 或 Tailscale 主机名打开 Web UI 时,只会显示只读访问消息,而不会暴露生命周期或包操作。

管理器拒绝禁用自身或 Web 传输/UI/实时配置文件重载主干。它还会拒绝有歧义的重复补丁 ID,以及当前 Web 配置文件树之外的条目。

热安装器仅接受可带可选版本或 dist-tag 的 npm registry 包名。它会解析一个具体的 pnpm 可执行文件(包括常见的直接可执行文件和 Node 入口点 Windows shim),通过 DSH 的公共子进程服务以无 shell 方式生成该进程,依赖该服务提供的已清除凭据的子进程环境,禁用包生命周期脚本,限制捕获的输出,并在取消或超时时执行有界的进程树终止和验证。

运行时信任边界: 禁用生命周期脚本并不会对已安装的插件进行沙箱隔离。安装成功后,该包会立即以与 DSH 相同的用户权限加载到 DSH 主机中。请仅安装来自经过审查、值得信赖的发布者的确切版本。Loopback authority 限制的是网络可达性,而不是调用者身份验证;本地同用户进程、可变的包管理器可执行文件、支持 SSRF 的浏览器内容,以及忽略共享 DSH 锁的配置文件写入者,仍处于本地信任边界之内。

热重载行为

现有条目的开关状态会持久化到 Web 配置文件补丁中,随后通过公共 Loader Entry.update() API 立即应用,因此不依赖文件系统监视器的行为。UI 会在报告成功前验证实际的 Loader 状态。移除管理器覆盖仅会被报告为持久化操作,因为无法仅从托管层安全推断出由此产生的组合默认值;若要在同一会话中移除覆盖,请先设置所需的实时状态。

安装路径有意不同于 dsh plugin add,后者的 bundle 列表仅在进程启动时读取:

1. 在 pnpm 启动前,获取管理器事务锁并持久化非链接的预写日志;
2. 拒绝配置文件中已存在的包——热版本更新需要使用官方 CLI 并重启,因为未变化的 Loader 行无法证明模块已重新导入;
3. 在禁用生命周期脚本的情况下,将新的 registry 包安装为可选依赖项,并在日志中记录 pnpm 保存的确切 spec;
4. 验证其 dsh.bundle.patch 恰好是一个独立的直接插入项,不含受保护或冲突的 ID、保留的管理器标记或链接的补丁文件;
5. 在执行包代码前,将经过验证的插入项持久化到管理器自有的配置文件补丁中,使每个已启动或待处理的条目都有一条重启后仍保留的安全记录;
6. 通过公共的内存中 Loader group API 创建它,并仅在固定时限内等待生命周期稳定。活动条目会立即报告成功;无法稳定的条目仍将以可见的托管及待处理状态保留,而不会无限期阻塞管理器 HMR 拆卸。

公共 Loader 生命周期等待限制为 15 秒(失败时还会进行一次有界的清理尝试);超时的开关操作会保留其请求的持久化覆盖,而超时的安装会保留其托管补丁,确保不会有正在执行的条目失去跟踪。管理器绝不会针对其他 CLI 可能正在编辑的配置文件包文件运行破坏性的自动回滚。如果 pnpm 更改了配置文件后失败、收到取消、验证失败或无法提交补丁,日志会继续显示在 UI 中。仅当保存的依赖 spec 仍与记录的 pnpm 后状态匹配时,重试完全相同的 spec 才会前滚;任何有歧义或被外部更改的状态都会被拒绝,且必须使用官方 CLI 解决。HMR 处置会在旧插件代退出前中止并排空进行中的包工作。

新挂载包的浏览器 bundle 会实时进入 Host graph,但已经打开的页面无法通过 DSH 当前的公共 API 纳入新的 graph row。刷新页面一次即可加载新的浏览器扩展——无需重启 DSH 进程。

复杂或多行 bundle 会被拒绝,而不是仅挂载其中一部分。请通过官方 CLI 安装它们,并在方便时重启 DSH Web。

安装

将预构建的 GitHub release tarball 安装到 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

要从源代码构建相同的包:

pnpm install
pnpm run check
pnpm pack

该包遵循官方 DeepSeek Harness 插件与 bundle 指南:它声明了函数形式的插件、公共服务依赖项、dsh.bundle 补丁、用于 Git 安装的自包含 prepare 构建,以及明确的生命周期清理。

也支持源代码安装,但 pnpm 10 要求明确授权运行包的 prepare 构建。固定经过审查的 tag,并在重试前严格按照 DSH/pnpm 输出的 allowBuilds 修复说明操作:

dsh plugin --profile web add github:leonardoxr/dsh-plugin-manager#v0.2.0

$DSH_HOME/profiles/web/pnpm-workspace.yaml
allowBuilds:
'@leonardoxr/dsh-plugin-manager': true

建议优先使用预构建的 release tarball,因为它不需要安装时构建权限。

管理器本身需要初始重启一次 DSH Web,因为配置文件 bundle 的添加仅在启动时生效。此后,常规开关操作和受支持的全新直接安装会使用公共的内存中 Loader 生命周期 API 以及持久化的配置文件补丁;无需再次重启进程。

托管文件

生命周期覆盖和经过验证的直接挂载补丁会写入 $DSH_HOME/profiles/web/cordis.patch.yml。成功的包安装还会通过 pnpm 更新 Web 配置文件的 package.json、pnpm-lock.yaml 和 node_modules。

补丁更改使用乐观 SHA-256 revisions、withFileLock、writeFileAtomic,并在获取锁后及提交前执行取消检查。管理器标记块之外的现有注释和用户编写的行会被保留。包事务会在 pnpm 和补丁提交期间持有管理器 generation lock,并使用持久的前滚日志,而不是整个文件的快照或不安全的 remove-after-compare 回滚。

开发

pnpm run typecheck
pnpm run build
pnpm run test
pnpm run pack:check

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群