插件管家

DeepSeek Harness 的官方插件頁面是隻讀的:它列出模塊名,但不解釋它們是做什麼的。想關掉一個插件,需要手改 cordis.patch.yml。技能那邊更糟:裝了 57 個技能,其中 14 個模型根本看不到。這個插件在同一個頁面添加了一個“插件管家”標籤頁,補上這些事。

插件管理

1. 插件說明

界面展示插件的中文名與說明。說明按優先級獲取:dshhub.summary、package.json 的 description、README.md 首段(自動剝離 Markdown 標記)。實測覆蓋率中,description 覆蓋了絕大多數插件。

2. 來源徽章

界面根據 pnpm-lock.yaml 判定來源:
* 官方:包名在 @deepseek-ai/ 命名空間下。
* 社區:lockfile 中爲普通 semver 版本號。
* GitHub 直裝:lockfile specifier 爲 github:owner/repo#tag。
* 本地鏈接:specifier 爲 file: 或 link:。

3. 熱生效開關

提供一鍵停用/啓用功能,通過 Cordis 的 Entry.update({ disabled }) 更新通道實現。停用時 loader 會 await _dispose(fiber) 註銷工具與路由;啓用時重新 init() 裝配。此操作熱生效,無需重啓。狀態保存在 ~/.dsh/plugin-manager.json,重啓後自動重放。

4. 安全卸載

卸載流程包含快照、移除與校驗:
1. 先快照 entry 的 options。
2. 執行 loader.remove()。
3. 校驗確實移除;若仍在,按快照 loader.create() 恢復原狀。
官方 @deepseek-ai/* 組件禁止卸載(會破壞啓動),界面會置灰相關按鈕。

5. 噪聲過濾

列表會自動過濾非插件庫(沒有 dsh.bundle 的普通依賴)和框架內部條目(如 cordis:include、node:* 等)。

技能管理

插件管家頁支持在“插件”與“技能”分段切換。

1. 唯一可用觸發方式

界面展示技能的 invocation 策略:
* 模型自動加載 + / 命令:模型會自己調用,也可用 /name 手動喚起。
* 僅模型自動加載:模型可見,/name 不可用。
* 僅 / 命令:模型看不到它,只能用 /name 手動喚起。
* 均不可用:已停用。

2. 兩個真開關

提供兩個獨立開關:模型自動加載與 / 命令可用。插件註冊一個 rank 0 的影子 provider,將策略置爲 false。消費點(模型目錄、加載守衛、命令目錄)均按策略過濾,實現真正的熱生效。

3. 清理線索

界面會標記不生效的技能:
* 目錄內有不生效的 SKILL.md:加載器只認 <技能名>/SKILL.md,嵌套目錄一律忽略。
* 混入非技能文件:如根目錄出現 package.json。

4. 來源與升級

根據路徑反解歸屬:
* 路徑含 node_modules/<pkg>/:顯示爲“插件提供 · 升級對象 <pkg> v<version>”。
* 路徑在 ~/.agents/skills/ 或 ~/.dsh/skills/ 下:顯示爲“用戶安裝”。
* 注意:插件不提供自動升級按鈕,因爲技能本身不具備 git 倉庫或安裝元數據。

安裝與啓用

dsh plugin --profile web add "github:Amouren7/dsh-plugin-desk#v0.2.1"

安裝完成後重啓 dsh web,打開 設置 → 插件 → 插件管家。

頁面採用懶加載,瀏覽器可能緩存舊前端。若看不到新標籤頁,按 Ctrl+Shift+R 強制刷新。

兼容性與依賴

系統要求

  • DSH:>=0.1.5-rc.1
  • Node:>=20
  • Profile:web

服務依賴

技能功能需要部署提供 skills 與 agentPresets 服務,以及可解析的 @deepseek-ai/dsh-scope。缺任一項時,技能開關會拒絕生效。

權限與數據

讀取權限

  • profile 的 node_modules(僅讀取 package.json / README.md)。
  • pnpm-lock.yaml。
  • 運行中的 loader 條目。
  • 技能註冊表。

寫入權限

  • ~/.dsh/plugin-manager.json(插件停用/卸載記憶)。
  • ~/.dsh/plugin-desk-skills.json(技能開關覆蓋)。

注意:技能開關不修改任何 SKILL.md 文件,通過影子 provider 覆蓋策略。刪除狀態文件即可復原默認策略。

卸載

dsh plugin --profile web remove dsh-plugin-desk

卸載後,上述兩個狀態文件會保留。若不再需要,可自行刪除。

License

MIT

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

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

小夜