dsh-plugin-toggle-manager:在 DSH Web 裏可視化管理插件

前言

DSH 的理念是「一切皆插件」,插件裝多了之後,管理工作就變得具體起來:哪些插件被 Cordis Loader 識別了、哪些處於啓用狀態、哪幾個來自第三方,這些信息平時散落在配置文件裏。想停用一個插件,要手動改 cordis.patch.yml;想保留幾套插件組合來回切換,只能靠手工編輯和備份。

dsh-plugin-toggle-manager 把這些操作搬進了 DSH Web 的界面。下面介紹它的功能、安裝方式和安全邊界。

這是什麼

dsh-plugin-toggle-manager 是 DSH Web 的可視化插件管理器,由 Loopiplusplus 維護,當前版本 1.0.0,許可證爲 MIT。它解決的問題很集中:不需要手動修改 DSH 的配置文件,就能在 Web 界面查看、啓用、停用插件,管理多套插件搭配,並在確認後清理符合條件的第三方插件。

核心功能

查看插件狀態

  • 顯示 Cordis Loader 當前識別到的插件,支持按插件名稱或 Loader ID 搜索;
  • 分開顯示插件總數、當前已啓用數量與非官方插件總數;
  • 對可安全管理的非官方插件提供啓用/停用操作。

管理插件搭配

  • 可從當前狀態創建搭配,也可從原始配置創建:後者不預先選擇可選的非官方插件,但始終保留 DSH 必需組件和管理器;
  • 可編輯、保存並應用多套插件組合;
  • 刪除搭配只會刪除搭配記錄,不會刪除插件,也不會直接改變當前狀態。

刪除第三方插件

對當前 Web profile 直接安裝、且被明確識別爲非官方的插件,提供帶二次確認的刪除入口。刪除會清理相關的 profile 依賴、已知啓動配置、搭配引用、鎖文件記錄與該 profile 的安裝鏈接。

DSH Harness / DSH Web 核心組件、插件管理器自身和插件分組均受保護,不能從這個界面停用或刪除。

安裝與啓用

推薦通過 npm + npx 安裝,在 PowerShell 中執行:

npx --yes --package @deepseek-ai/dsh dsh plugin --profile web add dsh-plugin-toggle-manager

這條命令的含義:

  1. npx --yes --package @deepseek-ai/dsh 臨時獲取 DSH 命令;
  2. dsh plugin --profile web add 在正確的 Web profile 中執行安裝;
  3. 包名不帶版本號,npm 會安裝 latest 標籤指向的最新穩定版;
  4. DSH 自動把聲明瞭 dsh.bundle.patch 的插件加入 profile bundle 列表。

如果電腦上已經安裝了 dsh 命令,可以用等價的簡短寫法:

dsh plugin --profile web add dsh-plugin-toggle-manager

安裝成功後,打開或刷新 DSH Web,進入 設置 → 插件 → 插件管理 查看頁面。

更新

安裝命令不寫版本號,不代表已安裝的插件會自動更新。需要更新時,重新執行一次相同的安裝命令即可,它等價於顯式寫 @latest

npx --yes --package @deepseek-ai/dsh dsh plugin --profile web add dsh-plugin-toggle-manager@latest

只有需要固定到某個歷史版本、復現問題時才寫版本號,例如 dsh-plugin-toggle-manager@1.0.0

鏡像源未同步時

如果你的 npm / pnpm 被配置爲第三方鏡像,且剛發佈的版本尚未同步到鏡像,可在包名後追加 npm 官方 registry 參數:

npx --yes --package @deepseek-ai/dsh dsh plugin --profile web add dsh-plugin-toggle-manager --registry=https://registry.npmjs.org/

從舊本地包遷移

早期本地包使用的名稱是 @deepseek-ai/dsh-plugin-toggle(內部/本地名稱),公開 npm 版的包名爲 dsh-plugin-toggle-manager,功能和版本號仍是 1.0.0。同一個 Web profile 不應同時保留兩個包,否則會註冊相同的 plugin-toggle 服務條目。首次遷移按順序執行:

# 1. 移除舊的本地/內部包
npx --yes --package @deepseek-ai/dsh dsh plugin --profile web remove @deepseek-ai/dsh-plugin-toggle

# 2. 安裝 npm 上的公開包
npx --yes --package @deepseek-ai/dsh dsh plugin --profile web add dsh-plugin-toggle-manager

執行第一步後管理頁會暫時消失,第二步安裝成功後刷新或重新打開 DSH Web 即可恢復。

配置寫入位置與安全邊界

  • 插件啓用/停用寫入當前 Web profile 的用戶 cordis.patch.yml
  • 插件搭配寫入當前 Web profile 的 dsh-plugin-toggle.presets.json
  • 關鍵配置寫入前會創建 .bak 恢復點;被用戶確認刪除的第三方插件代碼目錄不會自動歸檔;
  • 插件只操作當前 DSH Web profile,不掃描或刪除任意磁盤目錄;
  • 第三方插件的熱插拔支持程度不同,個別前端資源在停用或刪除後可能需要手動刷新或重新打開 DSH Web。

兼容性方面,本版本在 DSH 0.1.0-rc.6 的 Web profile 中構建和驗證,依賴以下 peer dependencies,並要求 Node >= 20:

  • @deepseek-ai/cordis^4.0.1
  • @deepseek-ai/cordis-plugin-loader^1.0.2
  • @deepseek-ai/dsh-host-webserver^0.1.0-rc.5

適用場景與注意

這個插件適合經常在 DSH Web 上調整插件組合、或需要保留多套插件搭配來回切換的用戶。如果你只是偶爾增刪插件,直接編輯配置文件也能做到,管理器省去的是反覆覈對配置和手動備份的成本。

需要注意:插件以當前 dsh 進程權限運行,刪除操作會直接清理插件文件且不自動歸檔,安裝前建議先閱讀項目源碼並確認許可證(MIT)。升級 DSH 或批量調整插件之前,先保留 profile 配置備份。

小結

dsh-plugin-toggle-manager 把 DSH Web 的插件查看、啓用/停用、搭配管理和第三方插件清理整合到一個界面裏,並用受保護列表、二次確認和恢復點劃清了安全邊界。對維護多插件環境的 DSH 用戶來說,是一個實用的日常工具。

  • GitHub 倉庫:https://github.com/Loopiplusplus/dsh-plugin-toggle-manager
  • 社區插件目錄頁:https://www.skillhub.cn/plugins/Loopiplusplus/dsh-plugin-toggle-manager

其中社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。

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

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

小夜