dsh-plugin-mgr:DeepSeek Harness 插件管理器

前言

DeepSeek Harness (DSH) 的核心設計理念是「一切皆插件」。隨着插件生態的豐富,手動維護依賴、檢查更新以及通過配置文件管理啓停狀態變得繁瑣。dsh-plugin-mgr 是一個插件管理插件,它爲 DSH 的 Web 界面新增了「插件管理」子頁面,用於卡片式管理已安裝插件,並提供啓停、卸載、版本檢查與搜索功能。

核心功能

該插件通過 Host/Client 分離架構實現功能,主要包含以下能力:

  • 卡片式列表與視圖切換:以卡片形式展示已安裝插件,顯示名稱、版本、運行狀態和啓停開關。支持單列/雙列布局切換,並自動記憶用戶偏好。
  • 啓停與卸載管理:
    • 啓停:通過操作 cordis.patch.yml 配置文件實現插件的啓用/停用。修改後約 1s 通過熱重載 (HMR) 生效,且狀態跨重啓保留。
    • 卸載:支持一鍵卸載,操作前會進行二次確認。卸載流程會先清理啓停配置,再執行 dsh plugin remove 命令。
  • 詳情與搜索:
    • 詳情:點擊卡片可展開詳情,查看版本號、安裝來源(npm/GitHub/本地)、倉庫地址及插件介紹。
    • 搜索:工具欄提供搜索框,支持按名稱、描述或 spec 進行大小寫不敏感的過濾。
  • 更新檢查:
    • 僅支持 npm 來源插件的更新檢查。
    • 自動比對 npm registry 最新版本(結果緩存 5 分鐘),卡片顯示「可更新」徽標。
    • 支持一鍵更新到最新版,更新過程不會沖掉已有的啓停狀態。
  • 運行錯誤展示:監聽宿主的 fiber 狀態事件。當插件加載失敗時,卡片會顯示紅色「加載失敗」標識,詳情頁展示具體錯誤信息;插件恢復運行後自動清除失敗狀態。

安裝與啓用

在安裝前,請確保宿主環境已安裝 DeepSeek Harness 並運行 dsh web。

使用官方提供的命令安裝插件:

dsh plugin --profile web add dsh-plugin-mgr

安裝完成後,在 dsh web 界面中依次進入「設置」→「插件」標籤,點擊「插件管理」子頁面即可查看已安裝插件列表。

實現細節與注意事項

  • 架構設計:
    • Host 側:負責註冊 API 路由(列表、啓停、卸載、更新檢查)和讀寫 cordis.patch.yml 配置文件。
    • Client 側:負責在設置頁面的插件 tab 中注入 UI,展示卡片列表、搜索框和詳情面板。
  • 安全與限制:
    • 宿主保護:宿主的基礎設施模塊拒絕被插件管理器啓停或卸載;插件管理器自身的開關與卸載按鈕在 UI 上會被置灰。
    • CSRF 校驗:所有 POST 接口均校驗 CSRF 門衛,並限制請求體上限爲 64KB。
    • 更新範圍:更新檢查僅支持 npm 來源的插件,宿主模塊與自身無法通過此功能更新。
  • 穩定性與併發:
    • 補丁層寫入操作已做串行化處理,防止併發交錯導致配置損壞。
    • 運行錯誤捕獲通過 cordis internal/status 事件實現,不依賴輪詢,能夠即時感知插件失敗與恢復狀態。

生態背景

DeepSeek Harness 的插件生態由社區維護,與 DeepSeek 或幻方在技術層面無官方從屬關係。在使用第三方插件前,請務必檢查源碼與許可證。

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

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

小夜