前言¶
DeepSeek Harness(DSH)採用「一切皆插件」的架構:profile 裏的 bundle、掛載行、技能與 agent 預設,往往分散在 cordis.patch.yml、終端命令和多個目錄中。裝一個新插件通常要跑 dsh plugin add、改 patch、重啓 profile,再手動排查依賴衝突或啓動失敗。
dsh-web-plugin-manager 把上述操作收攏到 Web UI:查看已裝插件、即時啓停、安裝與卸載、更新檢測、健康檢查、環境(profile)管理,以及內置插件市場。它同時覆蓋 bundle 與非 bundle 插件,並附帶 dshpm CLI,讓命令行變更也走同一套質量門與回滾鏈路。
這是什麼¶
- 插件名稱:
dsh-web-plugin-manager(倉庫 LX2000WASD/dsh-web-plugin-manager) - 維護者:LX2000WASD
- 分類:客戶端
- 許可證:MIT
- 目錄頁:SkillHub 插件條目
一句話定位:在 DSH Web UI 中一鍵管理插件全生命週期,並內置市場索引與安裝質量門。
核心功能¶
查看與即時啓停¶
合併展示層棧、依賴、掛載行與運行條目。手動安裝但未掛載的依賴會標爲「未掛載」,可一鍵掛載。啓停通過編輯 managed 塊並經由 loader 直接應用,即時生效且重啓後持久;卸載 bundle 插件時同步清除運行條目與遺留 managed 塊。
安裝與卸載¶
走官方 dsh plugin CLI,疊加質量門與自動回滾:安裝期全鏈依賴掃描、bundle patch 行校驗,失敗即回滾。非 bundle 插件自動寫掛載行並即時加載。支持 npm 包名、GitHub 倉庫、git URL、tarball 與本地路徑;git 源安裝前會掃描所需環境變量(TOKEN/KEY/SECRET 形態),缺失時暫停詢問。
除常規插件外,還支持 skill(SKILL.md → ~/.dsh/skills)與 agent 預設(agent.cordis.yml → ~/.dsh/.agent-presets)直裝並記錄。
更新檢測¶
支持 npm dist-tag、git HEAD 與安裝 commit 比對。更新帶質量門,失敗自動裝回舊版本;管理器自身也可在 UI 中自更新。注意:dsh plugin add 不帶 @latest 時不會跨版本升級,需用 dshpm update 或 add ...@latest。
健康檢查¶
離線分析依賴圖:缺失依賴、循環依賴、重複行 id、同名註冊衝突(服務/工具/section/路由)、peer 版本與官方包重複。運行中追加 pending 與失敗診斷。A 級問題可一鍵修復,B 級建議確認後修復。
環境管理¶
在 UI 中啓停、複製或轉移插件;創建、重命名、刪除 profile(官方 profile 只讀);備份導出與導入恢復,差異對比後逐項受保護恢復。
插件市場¶
靜態索引覆蓋 topic:dsh-plugin 全量條目(約 3100 條),多源兜底、gzip、磁盤緩存與新鮮度門控;疊加 awesome 精選與 dsh.so 獨立驗證/安全掃描徽標(L1–L5)。支持已安裝判定、更新檢測與同名包衝突消解。
Agent 工具與 CLI¶
向 agent 注入 plugin_status / plugin_search / plugin_install / plugin_uninstall / plugin_toggle 工具,並攔截裸 dsh plugin / npm / pnpm 變更命令,引導走受保護鏈路。dshpm bin 複用與 Web UI 相同的 installProtected 流程,無宿主進程時跳過 live 應用,文件級操作一致。
安裝與啓用¶
官方推薦先裝管理器,再裝其他插件,以便後續每次安裝都經過質量門檢測。
# 方式一(推薦):從 npm 安裝(務必帶 @latest)
dsh plugin --profile <name> add dsh-web-plugin-manager@latest
從源碼構建:
cd /path/to/dsh-web-plugin-manager
pnpm install && pnpm run build
dsh plugin --profile <name> add .
重啓 profile 後,Web UI 的「設置」會出現「插件管理」標籤頁,以及「技能與預設」與「市場」一級菜單。
若 profile 因未經驗證的插件無法啓動,可先用 dsh --profile <name> --patch <empty.yml> 排查,或手動清理對應依賴與 cordis.patch.yml 行,再安裝管理器接管。
典型用法¶
在 Web UI 中管理插件¶
- 打開「設置 → 插件管理」,查看已裝插件卡片與層棧。
- 需要新版本時點「檢查更新」,對目標卡片點「更新」;更新後需重啓 profile 生效。
- 在「市場」瀏覽條目,按提示安裝;git 源若缺環境變量,按 UI 行內表單填寫後繼續。
用 dshpm 在終端操作¶
dshpm 隨插件安裝進入 profile 的 node_modules,也可直接調用 node <profile>/node_modules/dsh-web-plugin-manager/dist/cli.js。
dshpm install <source> [--env KEY=value ...] --profile <name>
dshpm remove <name> --profile <name>
dshpm update <name> --profile <name>
dshpm mount <name> --profile <name>
dshpm list --profile <name>
dshpm analyze --profile <name>
<source> 可爲 npm 包名、github:user/repo、git URL、tarball 或本地路徑。analyze 有問題時退出碼爲 1,適合納入腳本或 CI 檢查。
升級管理器自身¶
dshpm update dsh-web-plugin-manager --profile NAME
# 等價於
dsh plugin --profile NAME add dsh-web-plugin-manager@latest
pnpm 11 用戶若當天發版無法解析到最新版,可在 profile 的 pnpm-workspace.yaml 中設置 minimumReleaseAge: 0;鏡像源 dist-tag 滯後時,可用 --registry=https://registry.npmjs.org 強制走官方源。
適用場景與注意¶
適合誰
- 經常在 Web UI 與多個 profile 之間切換,希望統一查看插件狀態的用戶。
- 需要批量安裝社區插件、又不想每次手動改 patch 與排查依賴衝突的開發者。
- 希望 agent 安裝插件時走質量門,而不是裸跑
dsh plugin add的團隊。
使用前須知
- 插件以當前 dsh 進程權限運行;從市場或 git 源安裝前,應自行查看源碼與許可證。
- 禁用被其他條目依賴的插件可能導致 profile 啓動失敗(官方 fail-loud 設計);恢復需手動編輯該 profile 的
cordis.patch.yml。 - 來自 git 的 bundle 安裝可能需在終端執行
pnpm allowBuilds(命令輸出會提示)。 - 無顯式 id 的隨機掛載行無法經此啓停;手動安裝的插件顯示「未掛載」,需用「掛載」或
dshpm mount,管理器不會擅自改動 profile。 - 安裝守衛只攔截 agent 工具調用,攔不住用戶在終端手工執行裸
dsh plugin。 - 市場索引由第三方維護(DSH-Plugins-Marketplace),個別倉庫可能已刪除或變爲私有;Node 進程讀取
HTTP_PROXY/HTTPS_PROXY,系統代理規則對 undici 無效。
更完整的功能與限制說明見倉庫內 docs/feature-reference.md。
結尾¶
dsh-web-plugin-manager 把 DSH 插件的查看、啓停、安裝、更新、健康檢查與環境管理集中到 Web UI,並用質量門與 dshpm 統一安裝鏈路,降低「裝上就炸、重啓起不來」的概率。建議作爲 profile 上的第一個插件安裝,再據此管理其餘社區插件。