前言¶
DSH(DeepSeek Harness)采用“一切皆插件”的架构。在开发或运维过程中,随着插件数量增加,理解插件间的层级关系和依赖链路往往变得困难。现有的设置页面通常只列出插件列表,缺乏对依赖关系的可视化展示和交互操作。
dsh-plugin-tree 是一个 DSH Web 客户端插件,它将“设置 -> 插件”页面升级为依赖分层的插件明细树,并附带一张可交互的依赖关系图。通过这个视图,可以直观地看到插件如何堆叠,并支持直接启停和检查更新。
该插件由 jackxiao-hub 维护,使用 MIT 许可证。
核心功能¶
依赖分层树¶
插件列表按最长依赖链自动分层,从 L0 基础库到 L5 领域服务,更深层显示为 L{n}。层支持折叠,并显示插件数量。无匹配条目的层会自动隐藏。
来源标识与筛选¶
每个插件显示来源标识(官方/第三方)及安装方式(随 dsh 安装 / npm 安装 / 本地链接等)。
提供搜索功能(按模块名或描述),并支持三轴独立筛选:启用状态、来源、安装方式。筛选结果为三者取交集。
节点详情与操作¶
点击任意插件可展开详情,显示版本、来源、描述、状态以及依赖/被依赖列表。
对于第三方插件,详情页可直接执行停用或启用操作,该操作即时生效并持久化到 cordis.patch.yml。
依赖/被依赖 Chips¶
依赖关系通过彩色 Chips 展示:
* 边框颜色:绿色=已启用,灰色=未启用,红色=挂载失败,灰色虚线=静态。
* 背景颜色:官方插件为淡蓝,第三方为淡黄。
* 判定逻辑:按唯一 entry id 判定。同名插件(同一包可能有多个 Loader 行)各自显示各自的状态,点击各自跳转到对应行。
检查更新与更新¶
插件支持检查 npm 安装的第三方插件更新。使用 pnpm outdated 命令检查,并缓存 60 秒。当检测到新版时,行内会出现“更新”按钮,点击后执行 pnpm add <pkg>@latest,安装后需重启 dsh web 生效。
依赖树(图)¶
工具栏可切换到“依赖树”视图,展示分层依赖关系图。
* 过滤:默认过滤掉静态文件节点。
* 样式:边框表达状态,填充表达来源,角落有图例,箭头指向前置依赖。
* 交互:支持 1:1 像素渲染、缩放、全屏灯箱(ESC 退出)、空白处拖拽平移。
* 链路隔离:悬停节点时,只显示其上下游全链路(向上为前置依赖链,向下为被依赖链),其他节点连线隐藏。点击节点可钉住链路,再次点击空白处解除。
安装与启用¶
使用以下命令安装该插件:
dsh plugin --profile web add github:jackxiao-hub/dsh-plugin-tree
安装完成后,重启 dsh web 即可生效。
典型用法¶
- 安装并重启后,进入 设置 -> 插件。
- 在插件明细标签页,默认按依赖层级展示插件树。
- 利用搜索和筛选功能定位特定插件。
- 点击插件节点查看详情,或点击“依赖树”按钮查看交互式关系图。
- 在工具栏点击“检查更新”查看是否有可用的第三方插件更新。
适用场景与注意¶
- 适用场景:需要快速梳理插件依赖关系、管理大量 DSH 插件或监控第三方插件版本的开发者。
- 无配置项:本插件无需额外配置,所有行为内置。
- 权限与数据:
- 插件只读
ctx.loader.entries()与各包package.json用于建树。 - 写入
cordis.patch.yml以保存启停状态。 - 使用
pnpm命令访问 npm registry。 - 不读取任何凭据,不参与模型请求路径,无 KV cache 影响。
- 插件只读
- 兼容性:已验证兼容 Windows + dsh web 2026-08 mainline,以及 Node 22/24。
结语¶
dsh-plugin-tree 提供了一个从 UI 视角管理 DSH 插件依赖的工具。通过分层视图和交互式图表,解决了插件堆叠关系的可读性问题。