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
  • 客戶端平臺:web;dsh.client.platform 和 dshClient.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 可爲 plug 或 unplug:

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 放在服務端。

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

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

小夜