dsh-plugin-diraud:按來源區分 DeepSeek Harness 插件列表

前言

在 DeepSeek Harness(DSH)中,插件是擴展功能的常見方式。隨着自行安裝、本地鏈接、GitHub 來源等插件增多,單一插件列表容易把官方插件和自行安裝插件混在一起。

dsh-plugin-diraud 解決的是這個問題:按來源分組展示當前加載的 DSH 插件,並把自行安裝插件的啓用、禁用、更新、卸載放到同一入口。它由 tttwh 維護,許可證爲 MIT。

定位與適用範圍

下面介紹這個插件的定位。

  • 它是一個 DSH 插件,用於 Web 端側邊欄和 composer 的插件列表管理。
  • 核心對象是當前加載插件,重點區分 official 與 self-installed。
  • 提供 /plugin-audit 命令和側邊欄底部的 Plugin Catalog 入口。
  • 官方/內置插件以及本插件自身會被鎖定或拒絕卸載。

核心功能

按來源審計插件

/plugin-audit 命令會按官方/自行安裝分組列出當前加載插件,並支持 user、official 與關鍵字過濾。

常用命令如下:

/plugin-audit
/plugin-audit user
/plugin-audit official
/plugin-audit <keyword>

/plugin-audit 用於查看整體概覽;user 只看自行安裝插件;official 只看官方插件;<keyword> 用於按包名或 entry 關鍵字過濾。

自行安裝插件的啓用與禁用

自行安裝插件可以通過兩個入口啓用或禁用:

1、側邊欄底部 Plugin Catalog 入口中的按鈕;
2、composer 中的命令:

/plugin-audit disable <keyword>
/plugin-audit enable <keyword>

開關會持久化到 profile 的 cordis.patch.yml,可以恢復,並會調用 ctx.loader.update 即時生效。官方/內置插件會被鎖定,不能通過這類方式改變狀態。

Plugin Catalog 面板

Plugin Catalog 面板按來源分組顯示插件卡片。每張卡片會展示來源標識、已安裝版本、entry id 和描述。

面板支持以下能力:

  • 按模塊名 / entry id 搜索;
  • 每個分組顯示即時計數;
  • 列表加載失敗時提供重試按鈕;
  • 描述優先使用內置模塊名到 zh / en 的字典,回退到包自身的 description;
  • 當包的 repository 或 homepage 指向 GitHub 時,卡片會顯示 GitHub 按鈕,用於打開完整功能文檔。

自行安裝插件更新

自行安裝插件的更新會先檢查 npm registry。面板頂部會有更新欄,提供 Re-check 和 Update all;單個插件卡片也會有 Update 按鈕,並在執行時顯示進度。

npm 來源的更新使用:

pnpm add <pkg>@latest

如果環境需要,會回退到 corepack / npx。

GitHub 來源插件也支持更新,兼容 github:、git+、git://、git@ 等規格。更新時會比較本地 commit 與遠端 HEAD / tag,並重新執行 pnpm add 原始規格或新 tag。如果依賴固定到某個具體 commit,則會標記爲不可自動更新。

如果更新後舊包名失效,但新包名仍指向同一倉庫,面板會報告 repository renamed,並給出移除舊包的命令。

更新任務會在模塊級 store 中排隊執行:

  • 連續點擊會被合併到下一批任務;
  • 不會併發啓動兩個 pnpm 進程;
  • 關閉面板後,任務仍會繼續並可以被觀察。

對於 link:、file:、workspace: 依賴,面板會使用源感知標籤,分別顯示爲桌面應用更新或本地插件,避免把這類依賴誤報爲普通 npm 更新。官方/內置插件和本插件自身會被鎖定。

自行安裝插件卸載

每張自行安裝插件卡片右側會有紅色 Uninstall 按鈕。

點擊後會執行:

1、確認卸載;
2、執行 pnpm remove;
3、刷新插件列表。

非自行安裝包和本插件自身會被拒絕卸載。

安裝與啓用

前置依賴:pnpm 和 dsh CLI。

推薦從 npm 安裝:

dsh plugin --profile web add dsh-plugin-diraud

也可以從 GitHub main 分支安裝:

dsh plugin --profile web add https://github.com/tttwh/dsh-plugin-diraud/archive/refs/heads/main.tar.gz

經過上面的步驟後,重啓 dsh web,然後可以:

  • 在 composer 輸入 /plugin-audit;
  • 或點擊側邊欄底部的 Plugin Catalog。

典型用法

查看插件來源

/plugin-audit
/plugin-audit user
/plugin-audit official
/plugin-audit <keyword>

禁用或啓用自行安裝插件

/plugin-audit disable <keyword>
/plugin-audit enable <keyword>

這類操作會寫入 profile 的 cordis.patch.yml。如果之後想恢復默認狀態,刪除對應行即可。

卸載本插件

dsh plugin --profile web remove dsh-plugin-diraud

強制歸類爲自行安裝

默認情況下,插件來源會按包作用域判斷。遇到邊緣情況,例如第三方包發佈在 @deepseek-ai/ 下,可以通過 extraUserPackages 強制歸類爲自行安裝。

在 profile 的 cordis.patch.yml 中覆蓋 plugin-audit 的配置:

- id: plugin-audit
  config:
    extraUserPackages:
      - '@deepseek-ai/dsh-my-fork'

適用場景與注意

適合這類使用者:

  • 當前 DSH 環境中同時存在官方插件和自行安裝插件;
  • 需要快速確認某個插件是官方、內置還是自行安裝;
  • 希望集中啓用、禁用、更新或卸載自行安裝插件;
  • 對 npm 和 GitHub 來源的插件都需要查看狀態。

使用前需要注意:

  • 它是運行在 dsh 進程內的插件,安裝前應檢查源碼與許可證。
  • 插件會以當前 dsh 進程權限運行,更新和卸載會實際執行包管理操作。
  • 官方/內置插件以及本插件自身被鎖定或拒絕卸載。
  • 啓用/禁用狀態寫入 profile 的 cordis.patch.yml,刪除對應行可恢復默認。
  • 更新任務會排隊執行,不會併發啓動兩個 pnpm 進程;關閉面板後任務仍會繼續。
  • link:、file:、workspace: 依賴會顯示爲桌面應用更新或本地插件,避免誤報。
  • 社區目錄頁是獨立站點,不應理解爲官方應用商店,也不代表與 DeepSeek / 幻方存在官方從屬關係。

小結

dsh-plugin-diraud 的價值在於把 DSH 插件列表按來源拆開:官方/內置插件和自行安裝插件不再混在一個視圖裏,自行安裝插件的啓用、禁用、更新、卸載也有統一入口。

  • GitHub:https://github.com/tttwh/dsh-plugin-diraud
  • 社區目錄頁(線索提供,訪問前請自行確認):https://www.skillhub.cn/plugins/tttwh/dsh-plugin-diraud
羽毛球分组比赛记分
小程序二维码

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

小夜