dsh-workshop:輕量插件開關

前言

DeepSeek Harness(DSH)採用插件化架構,這要求開發者具備管理衆多插件的能力。現有的插件管理方式在身份識別和開關控制上較爲模糊。dsh-workshop 是一個輕量級的插件管理面板,由 Zlyraz 維護,旨在解決插件來源不明、缺乏直觀開關以及風險控制不足的問題。

安裝與啓用

安裝該插件需要使用 DSH 的插件管理器。在終端執行以下命令:

dsh plugin --profile web add github:Zlyraz/dsh-workshop

安裝完成後,重啓 DSH Web 界面,進入“設置” -> “插件” -> “輕量插件開關” tab 即可使用。

身份判定

該插件通過分析 ctx.loader.entries() 枚舉的條目,結合 pnpm-lock.yaml 來判定插件的來源。判定邏輯如下:
* 官方內置:在 lockfile 中找不到來源的條目,視爲隨 DSH 發行。
* NPM 包:來源爲 npm 語義版本。
* GitHub 倉庫:來源爲 codeload.github.com(鎖定 commit)。
* 本地開發:來源爲 file:(本地目錄)。
* Scope 警告:如果 GitHub 倉庫冒用 @deepseek-ai/ scope(如 dsh-plugin-hub),會打上警告標。

發聲式開關

插件開關不涉及卸載,而是通過修改配置層實現。通過 POST /api/workshop/v1/toggle 接口,插件會向 $DSH_HOME/profiles/<profile>/cordis.patch.yml 追加或移除配置塊(例如 - id: X / disabled: true)。
修改後,HMR 會在約 1-3 秒內自動重組,無需重啓 DSH。但需注意,基礎設施行(loader、webserver、ui、storage 等共 44 個模式)與開關自身處於鎖定狀態,無法關閉。

風險標籤

插件內置了一個手工維護的 risk-list.json 清單。該清單修改後即時生效,無需重啓。對於未收錄的第三方插件,顯示“未評級”;對於官方內置插件,顯示“官方維護”。

安全校驗

插件在實現安全校驗時做了以下限制:
* 路由僅限環回(loopback)訪問。
* 請求必須同源(same-origin)並經過 Origin 校驗。
* 文件寫入操作經過串行隊列處理,並使用臨時文件原子替換,防止併發寫入導致配置損壞。

注意事項與二次開發

  • 模塊 ID 約束:client bundle 的模塊 id 必須等於包名,否則可能導致渲染異常。
  • 屬性訪問:使用 IDENTITY_LABEL 或 RISK_LABEL 時,應使用屬性訪問 (L) => L.key,而非函數調用。
  • 權限風險:該插件以當前 DSH 進程權限運行,安裝前應檢查源碼與許可證。

結語

dsh-workshop 通過輕量化的方式提供了插件身份溯源與發聲式開關能力,適合需要在 DSH 中精細化管理插件的開發者。

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

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

小夜