dsh-pkg-atlas:本機 DSH 包依賴圖譜

前言

DeepSeek Harness(DSH)把能力拆成大量 @deepseek-ai/* 官方包和第三方插件,profile 裏還有 bundle 掛載與 cordis patch。包一多,很難一眼回答:某個工具在生態裏屬於哪一類、被誰依賴、掛了哪些 bundle,以及哪些 junction 斷了鏈、哪些 semver 區間裝不滿。

查 package.json 和 patch 文件可以逐條覈對,但跨包關係要靠人工拼。下面介紹社區插件 dsh-pkg-atlas(維護者 FlyingBamboo):在本機掃描 DSH_HOME 已安裝內容,用獨立 HTTP 頁面把依賴與掛載關係畫成可交互圖譜,只讀、零運行時依賴,斷網也能用。

這是什麼

dsh-pkg-atlas 是 DSH 的客戶端類插件:安裝並重啓後,在宿主 Web 端口提供頁面 http://127.0.0.1:3080/dsh-pkg-atlas/。數據全部來自本機磁盤(package.json、cordis.patch.yml、目錄 junction),不調用宿主內部模塊,不 import、不 hook DSH;Node 側只用標準庫,頁面側內置 vendored 的 cytoscape,無 npm install 運行時依賴。

它主要回答三類問題:

  • 某個工具/插件在 DSH 生態裏的位置:大類、功能組、被誰依賴、掛了哪些 bundle。
  • 官方 bundle(如 dsh-base)通過 patch 的 name: 行掛載了哪些包(BFS 展開)。
  • 哪些目錄是 broken junction(標紅)、哪些依賴邊版本 unsatisfied(紅色邊)。

插件當前版本 0.1.0,許可證 MIT(見 GitHub 倉庫 LICENSE)。社區目錄頁:skillhub.cn/plugins/FlyingBamboo/dsh-pkg-atlas;源碼:github.com/FlyingBamboo/dsh-pkg-atlas。目錄站點爲社區生態索引,與 DeepSeek / 幻方無官方從屬關係。

核心功能

三層視圖與掃描

圖譜按 大類區 → 組 → 包 組織:大類覆蓋內核·裝配、會話·狀態、界面、LLM·模型、編排、平臺、工具、集成、基礎設施,以及插件、profiles、斷鏈、未歸類等特殊區;組由 repository.directory 推導;包在組內網格展示。首屏掃描分「目錄清單 → manifest 讀取 → 組裝」三階段,進度條通過 /api/status 輪詢;服務端啓動會預熱,多數情況下首屏即緩存就緒。

頂欄 組級 | 包級 兩態(無「自動」檔):組級默認展示區 → 組卡 → 組內包;包級同時展開所有組,並強制打開真實跨包邊。滾輪只縮放畫面,不改變層級。

聚焦、搜索與過濾

  • 依賴圖(聚焦):對包節點雙向高亮依賴路徑與被依賴路徑(琥珀下游、青色上游、洋紅雙向/成環);非路徑元素淡出。入口包括右鍵「依賴圖」、雙擊包、詳情面板路徑行、搜索定位、深鏈 #node=<id> 等。
  • 組聚焦:右鍵組卡「聚焦鄰域(1 跳)」或 #node=g:<組名>,深度恆 1 跳。
  • 搜索:包名或中文描述,回車後在結果中點擊可定位並自動展開祖先。
  • 篩選:大類 chips(單擊隱藏/雙擊獨顯)、官方/第三方、邊類型(mount/peer/dep/peer-optional)、profile 掛載面、真實跨包邊、深淺主題、中英切換。

交互與詳情

  • 冷態左鍵單擊:選中與詳情;組級下雙擊組卡展開/收攏、雙擊大類標題摺疊整區。
  • 空白畫布右鍵:復位視圖、退出聚焦、自動排布;手動拖拽位置在切檔、篩選、聚焦間保留,「自動排布」清空覆蓋並 fit 視野。
  • 懸停 250ms 速覽卡;右側詳情面板含依賴路徑分層列表、掛載 ↓、外部依賴、README 原文(經只讀 API)。

低耦合與安全(使用者相關)

  • 掛載點可選:僅在宿主 webServer 在場時註冊路由;peer 標爲 optional,拒絕時只記日誌。
  • API 僅 GET/HEAD;圖數據路徑相對化爲 $DSH_HOME/...;無寫操作、無遙測。
  • 頁面掛在宿主 Web 端口,自身無鑑權:若 DSH 配置了遠程訪問,圖譜與 /api/graph 對可達客戶端可見,需自行評估暴露面。

已知限制(README 摘要):緩存約 60s TTL + 手動「重掃」;patch name: 爲啓發式抽取;非 semver 安裝描述不做版本判定;第三方插件 bundle 不遞歸展開;Desktop profile 未驗證。

安裝與啓用

適用於 web profile。安裝命令來自倉庫 README:

dsh plugin --profile web add FlyingBamboo/dsh-pkg-atlas

也可在 DSH Web GUI「市場」搜索 dsh-pkg-atlas 安裝。安裝後重啓 DSH,瀏覽器打開:

http://127.0.0.1:3080/dsh-pkg-atlas/

卸載:

dsh plugin --profile web remove dsh-pkg-atlas

重啓後建議人工覈對 profiles/web/package.json 裏 dsh.profile.bundles 是否仍含 dsh-pkg-atlas 殘留行。插件無運行時狀態,無其它卸載面。

package.json 要求 Node >= 22.6;peer 含 @deepseek-ai/cordis 與可選的 @deepseek-ai/dsh-host-webserver(由宿主 web 環境提供)。

典型用法

  1. 安裝並重啓後打開上述 URL,等待首屏掃描進度走完。
  2. 默認 組級 瀏覽:從大類區找到目標組卡,展開查看組內包;需要看跨組真實邊時切到 包級。
  3. 在頂欄搜索框輸入包名或描述,回車後點擊命中項,頁面會展開祖先並居中。
  4. 對關心的包:右鍵 →「依賴圖」,或在詳情裏點某條依賴/被依賴行,查看上下游路徑;深度可選 1–3 或不限;Esc 或空白處退出。
  5. 排查異常:圖例左下角對照節點形狀與邊類型;斷鏈區、紅色 unsatisfied 邊與詳情裏的 ⚠ 標記對應 README 中的 broken junction / 版本不滿足語義。
  6. 外部安裝/卸載包後,若視圖未更新,使用頁面「重掃」或等待約 60s 緩存 TTL。

適用場景與注意

適合:在本機維護 DSH web profile、需要可視化理解官方包與第三方插件依賴/掛載關係;希望離線、只讀地審計 profile 與 bundle 掛載,而不改宿主代碼。

注意:

  • 插件以當前 DSH 進程權限讀取 DSH_HOME;安裝前請閱讀源碼與 MIT 許可證,確認符合你的安全策略。
  • 數據僅反映已安裝內容,不含線上 registry 全量目錄。
  • 若啓用遠程訪問 DSH Web,請把本頁面與圖譜 API 視爲與宿主同級的暴露面。

結尾

dsh-pkg-atlas 把本機已裝包的依賴與掛載收成一張可聚焦、可篩選的圖譜,掃描層與渲染層刻意與宿主解耦,便於跟隨 DSH 高頻迭代。需要安裝說明與交互細節時,以 GitHub README 爲準;社區條目見 目錄頁,源碼見 FlyingBamboo/dsh-pkg-atlas。

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

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

小夜