前言¶
在 DeepSeek Harness(DSH)的開發生態中,一切皆插件。隨着插件數量的增加,單純依賴配置文件管理依賴、bundles 以及啓停狀態容易出錯且效率低下。dsh-plugin-manager 提供了一個可視化的管理入口,解決插件查看、啓用、停用及卸載的痛點。
插件簡介¶
這是一個客戶端插件,由 HTUP1 維護。它允許用戶在 DSH 的設置面板中查看已安裝插件,支持停用、啓用與卸載操作。界面隨 DSH 界面語言自動切換中英文。
核心功能¶
插件一覽¶
在設置面板左側的「插件管理」頁,可以看到已安裝插件的名稱、版本、安裝方式(pnpm 市場或手動安裝)以及當前的啓用狀態。
啓停與持久化¶
支持通過按鈕快速停用或啓用插件。操作會立即生效,並持久化寫入 profile 的 bundles 註冊列表,重啓後狀態保持不變。
卸載機制¶
- pnpm 插件:通過
dsh plugin remove徹底刪除包文件並移除註冊。 - 手動安裝插件:移除註冊並停用,
node_modules中的文件保留。 - 降級處理:若 CLI 刪除失敗,自動降級爲“軟卸載”(移除註冊 + 停用),並顯示錯誤信息。
狀態提示與自保護¶
界面會區分“已停用但重啓後恢復”和“已註冊但重啓生效”等中間狀態,避免誤導。此外,插件市場(dshmarket)和插件管理自身受到保護,不能被卸載。
安裝與啓用¶
本插件以 DSH 插件包形式安裝到 profiles 中:
- 將插件包放入
profiles\node_modules\dsh-plugin-manager。 - 在
profiles\web\package.json的dependencies與dsh.profile.bundles中登記dsh-plugin-manager。 - 重啓 dsh web(或通過市場安裝)。
使用示例¶
- 在 DSH 設置面板左側找到「插件管理」頁。
- 查看列表中的插件信息。
- 點擊「停用」或「啓用」按鈕控制插件運行。
- 點擊「卸載」按鈕(需二次確認)移除插件。
技術實現與注意¶
運行環境¶
插件以 trusted-host 權限運行,需要宿主提供 loader、connection、slots、locale 服務以及 dsh-client-* 客戶端依賴。
安全設計¶
- 輸入校驗:插件名參數經過
TARGET_RE白名單校驗(^[A-Za-z0-9@:./_+-]+$)。 - 操作校驗:卸載/停用前會校驗插件是否在 dependencies 中。
- 錯誤處理:所有 RPC 返回統一
{ ok, value | error }結構,異常信息不外泄堆棧。
目錄與源碼¶
更多詳情請查看插件目錄頁或 GitHub 倉庫。