dsh-plugin-tree:DSH 插件依赖分层视图

前言

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 即可生效。

典型用法

  1. 安装并重启后,进入 设置 -> 插件。
  2. 在插件明细标签页,默认按依赖层级展示插件树。
  3. 利用搜索和筛选功能定位特定插件。
  4. 点击插件节点查看详情,或点击“依赖树”按钮查看交互式关系图。
  5. 在工具栏点击“检查更新”查看是否有可用的第三方插件更新。

适用场景与注意

  • 适用场景:需要快速梳理插件依赖关系、管理大量 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 插件依赖的工具。通过分层视图和交互式图表,解决了插件堆叠关系的可读性问题。

更多信息或源码请访问:GitHub | 技能库目录

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

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

小夜