dsh-3d-plugin-graph:把 DSH 插件运行时画成实时 3D 图谱

前言

DSH(DeepSeek Harness)的理念是「一切皆插件」。对智能体开发者来说,插件多了以后,问题不只是装哪个,而是当前 DSH 进程里有哪些插件、哪些工具在跑、哪个插件可以安全卸载。

jelly-000/dsh-3d-plugin-graph 是一个 web 客户端插件。它读取当前 Cordis runtime,把插件拓扑渲染成可旋转、缩放、拖拽的 3D 图。节点、边和状态来自运行时;无可用来源时才会使用 offline demo fallback。插件目录是独立站点,不是 DeepSeek / 幻方官方应用商店。

这是什么

先交代定位和基本信息:

  • 插件名:jelly-000/dsh-3d-plugin-graph
  • 维护者:jelly-000
  • 许可证:MIT
  • 版本:0.1.0
  • 客户端平台:webdsh.client.platformdshClient.platform 均为 web
  • 作用:在 DSH web UI 中提供一个「插件图谱」入口,用于查看实时插件拓扑、工具活动、连接状态,并执行插件启用 / 禁用操作。

核心功能

实时运行时数据

下面介绍它读取哪些数据。插件从运行中的 Cordis runtime 获取节点、边、服务与工具面:

  • ctx.loader.entries
  • ctx.reflect.store
  • ctx.tools.schemas
  • tools/result events

当没有可用来源时,它会回退到 offline demo fallback,避免打开后变成空页面。

交互方式

图谱支持常见的 3D 操作:

  • 拖拽空白区域:orbit
  • Shift / 右键拖拽:pan
  • 滚轮:zoom,并锚定在光标位置
  • 拖拽节点:带物理效果地移动节点
  • 标签:支持 label LOD,根据距离和遮挡调整显示

插件操作

这个插件不只是看:

  • 卸载需要 double confirmation
  • 卸载实现为 entry.update({disabled:true}),后续不会 auto re-insertion
  • 服务端 guard 会拒绝核心基础设施(loader / include / isolate)、图插件自身,以及级联会命中图的卸载操作。
  • 重新启用是一次操作。

状态与活动

  • live tool-execution log
  • connection-state pill
  • runtime flow effects

前端与可访问性

  • single-file UI,zero external dependencies,no CDN,no build step
  • 支持 prefers-reduced-motion
  • 支持 focus-visible outlines
  • 使用 aria-live announcements
  • 使用 color-scheme: dark

安全

安全姿态包括:

  • CSP meta tag
  • X-Content-Type-Options: nosniff
  • 对进入 innerHTML 的服务端字符串使用 esc()
  • 针对 XSS / prototype-pollution / malformed-state 的对抗测试

性能

自动化 170-node synthetic load 测试中,mean frame gap ≈ 17 ms

安装与启用

先确认环境:需要一个带 web profile 的 DSH 安装。

然后执行安装命令:

dsh plugin --profile web add https://github.com/jelly-000/dsh-3d-plugin-graph

接着重启 web profile,或让 HMR 生效。本地开发时,也可以把 add 指向目录而不是 URL。

经过上面的步骤,打开 DSH web UI,右下角会出现「插件图谱」浮标。

典型用法

打开图谱

可以从 DSH web UI 的浮标进入,也可以直接访问:

  • 图谱 UI:http://127.0.0.1:3080/plugins/dsh-3d-plugin-graph/
  • Live state JSON:http://127.0.0.1:3080/plugins/dsh-3d-plugin-graph/state

启用或禁用插件

接口形状如下,action 可为 plugunplug

POST /plugins/dsh-3d-plugin-graph/action
{
  "action": "unplug",
  "id": "plugin-xxx"
}

启用时把 action 改为 plug

常用控制

  • 拖拽空白区域:orbit camera
  • Shift / 右键拖拽:pan
  • 滚轮:zoom,锚定在光标处
  • 拖拽节点:移动节点
  • 单击节点:select 并查看详情
  • 双击节点:focus
  • 双击空白区域:reset view
  • R:reset view
  • Esc:close popup / confirmation
  • 搜索框:fuzzy plugin search

开发与测试

仓库提供以下命令:

npm install
npm run verify
npm run test:ui
npm run test:security
npm run test:perf

这些测试套件可以在没有 live DSH instance 的情况下运行,依赖 mock servers 和 real headless Chrome。

适用场景与注意

适合:

  • 正在维护 DSH 插件系统的开发者
  • 需要查看当前 web profile 中插件运行状态、工具活动和连接状态的人
  • 在卸载插件前想确认服务端 guard 和级联影响的场景

注意:

  • 插件以当前 dsh 进程权限运行。
  • 它会读取 runtime 数据,并能执行 plug / unplug,安装前应检查源码、依赖和 MIT 许可证。
  • offline demo fallback 只保证界面可打开,不代表当前 DSH 真实状态。
  • 服务端 guard 会拒绝某些卸载请求;如果卸载被拒绝,优先核对目标插件是否属于核心基础设施或会命中图本身。

结尾

dsh-3d-plugin-graph 的价值,是把 DSH 插件生态的 live 状态放在一个 3D 界面里:可看节点、可看工具活动、可执行插件操作,并且把安全 guard 放在服务端。

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

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

Xiaoye