前言¶
DeepSeek Harness 采用插件化架构,插件是扩展功能的主要方式。在实际使用中,开发者经常需要针对特定 Profile 安装、更新或卸载插件。直接操作配置文件或依赖包管理器较为繁琐,且容易引入不一致性。该插件旨在为 DSH 提供一个 Profile 级别的插件管理界面,简化上述操作流程。
核心功能¶
该插件提供了一套完整的插件生命周期管理能力。
- 多来源支持:支持安装来自 npm registry、npm alias、Git、GitHub、远程 tarball、绝对本地目录以及
file:/link:来源的插件。 - 文件上传:提供文件选择器,支持上传并保留
.tgz、.tar.gz和.tar格式的安装包。 - 版本控制选项:提供默认关闭的“跳过新版本等待期”选项。用户勾选后,本次操作会追加
--config.minimumReleaseAge=0配置,但其他供应链检查保持不变。当 pnpm 因等待期拒绝操作时,界面会提示解决方案。 - 依赖管理:支持更新或卸载当前 Profile 的直接依赖。更新时允许重新选择来源(npm、Git、远程 tarball、本地目录或压缩包),卸载时自动关闭等待期以避免锁文件阻塞。
- 自身更新:提供插件自身的更新功能,复用同一弹窗和等待期选项。更新后会校验依赖状态,并在重启前禁用操作。
- 日志处理:诊断日志采用有界保存策略,并在存储前自动删除 Authorization、Cookie、token、密码等敏感信息。
安装与启用¶
在安装前,请确保当前运行环境为 DeepSeek Harness 0.1.1-rc.2。
- 执行安装命令:
dsh plugin --profile web add github:qipenglin/dsh-plugin-manager
- 启动 Web 界面:
dsh web
- 在浏览器中进入“设置 → 插件 → 插件管理”页面。管理器仅操作加载它的当前 Profile,操作成功后需要重启 Profile 才能生效。
注意事项¶
- Profile 作用域:管理器只操作加载它的当前 Profile。若无法可靠识别当前 Profile(例如桌面宿主未提供
desktopProfiles.current),插件将拒绝启动。 - 重启生效:无论是安装、更新还是卸载操作,成功后 Host 会显示明确状态(如“已安装,重启后生效”),并提示手动重启。Host 加载时会消费重启标记,不会热加载。
- 环境限制:
- 桌面宿主需同时提供
desktopProfiles.current和desktopPnpm.runPlugin接口,否则无法正常集成。 - 不支持通过 Host 环境变量传递私有 registry token,请在 Host secret 或包管理器配置中处理。
- 桌面宿主需同时提供
- 安全性:
- 若未启用 WebAccess,WebServer 仅允许绑定
127.0.0.1。若绑定0.0.0.0,插件将拒绝启动。 - CLI Provider 会从子进程环境中删除敏感信息(如 API Key、token、密码等)。
- 若未启用 WebAccess,WebServer 仅允许绑定
总结¶
该插件为 DeepSeek Harness 的 Profile 开发与调试提供了直观的管理工具,支持多种插件来源和完整的更新/卸载流程。它通过有界日志和敏感信息清理保障了操作安全。