DeepSeek Harness 插件管理器

DeepSeek Harness(DSH)Web profile 安装多个插件包后,用户常遇到三个问题:不知道插件来源、不清楚 Loader 或 Cordis 的管理归属、临时切换配置容易出错。zaogaogwc/dsh-plugin-manager 面向 DSH Web GUI 提供了一套 Mod 风格的管理界面,将分散的来源包、Loader 实例和 Agent 预设整理为可理解、可预览、可撤销的结构。

插件简介

zaogaogwc/dsh-plugin-manager 是一个工作流类插件,由 Zaogaogwc 维护。它遵循 MIT 许可证。插件入口位于 设置 → 插件 → 插件管理。

核心价值在于管理“是否启用”,而非伪装成“卸载”。插件文件与 npm 依赖不会因禁用而删除。它通过原子写入 ~/.dsh/cordis.patch.yml 的专属 managed 段来实现状态变更,并利用 DSH 官方的 plugin-include watcher 执行热重载。

核心功能

三级浏览与来源归属

管理器还原真实的安装来源,提供三级视图:
1. 方案或来源包:展示官方/用户 Agent 预设与已安装来源包。
2. 功能分类:按文件、终端、规划、Web、设置等用途分组。
3. 插件实例:展示实际 Loader 条目、配置状态、Cordis FiberState 和诊断信息。

安全启停与变更预览

  • 安全策略:单个插件、分类和整包均可启停。所有批量操作必须先进入变更预览,由用户确认后执行。
  • 原子写入:修改仅作用于 ~/.dsh/cordis.patch.yml 的 managed 段。
  • 历史与撤销:保留最近 20 次变更历史,可撤销上一次管理器操作。
  • 恢复默认:只清除本管理器托管的禁用项,不影响其他工具配置。

状态与诊断

界面区分配置、Loader、Cordis 和管理器推导状态:
- availability:live、configured、disposed 或 declared。
- configState:Loader 配置层的 enabled 或 disabled。
- fiberState:Cordis 的 pending、loading、active 等。
- status:运行中、已禁用、未运行和需要重启。
- issue:依赖缺失、加载失败等独立诊断信息。

Mod 启停方案

可将当前 Web profile 的第三方插件启停状态保存为具名方案(如“写作”、“开发”)。方案只记录状态,不复制文件,应用前仍显示变更预览。

Agent 预设生成

基于任意现有预设(官方或用户预设)创建新 Agent 预设。差量合并会保留来源预设的专有工具、配置和注释。

AI 辅助筛选

输入自然语言需求,AI 可生成分类或启停建议。结果只作为候选方案,用户必须进入变更预览并再次确认。AI 服务不可用时,基础功能仍可使用。

npm 来源包更新

对于可识别的 npm registry 第三方来源包,支持一键更新:
1. 查询最新版本。
2. 显示版本差异。
3. 备份 profile 依赖清单、锁文件和 managed 状态。
4. 调用 DSH 官方更新命令。
5. 失败时自动回滚。
6. 更新成功后标记“需要重启”。

安装与启用

发布到 npm 后,执行以下命令安装:

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

安装完成后,打开 Web UI(默认 http://127.0.0.1:3080),进入 设置 → 插件 → 插件管理。

典型用法

禁用插件

  1. 展开来源包,查看包简介和实际插件数量。
  2. 点击“禁用”,页面会自动滚动到确认区。
  3. 检查直接变更和依赖影响。
  4. 确认应用,等待 Loader 返回稳定状态。

保存和应用 Mod 方案

  1. 调整当前第三方插件启停状态。
  2. 在“Mod 启停方案”输入名称并保存。
  3. 需要切换时选择该方案并检查预览。
  4. 确认后由 watcher/Loader 应用。

创建新 Agent 预设

  1. 展开一个官方或用户 Agent 预设。
  2. 点击“以此为新预设基础”。
  3. 调整所需能力,填写新标识符和显示名。
  4. 生成并验证预设。

注意事项

  1. 权限与安全:所有会写文件、调用 AI 或执行更新的 API 都要求 loopback 请求。从 LAN 地址访问 Web UI 时,这些敏感 API 会返回 403。更新可能执行目标 npm 包允许的安装脚本。
  2. 禁用与卸载:禁用不会卸载、删除或改写第三方包文件。卸载必须显式执行 DSH 插件移除命令。
  3. 宿主组件:官方宿主组件和管理器自身不可在本界面禁用。
  4. 重启要求:插件启停通常由 watcher 热重载,但 npm 包更新涉及 Host 与 Client 代码一致性,完成后明确要求重启 DSH。
  5. 诊断限制:管理器展示当前 profile 的可观测状态,不能替代 DSH/Cordis 底层日志诊断。

结语

该插件通过结构化的视图和安全的变更机制,解决了 DSH Web profile 插件管理的混乱问题。适合需要精细控制插件组合、频繁切换工作场景的开发者使用。

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

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

小夜