dsh-plugin-dock(插件塢):對話旁統一調用 DSH 插件

前言

DeepSeek Harness(DSH)把能力拆成插件之後,入口會分散在左側欄頁面、右側欄標籤和各自菜單裏。聊天過程中若要換插件,往往要在主欄和側欄之間來回切,對話上下文也容易丟。插件塢(dsh-plugin-dock)不重寫各插件界面,只通過 DSH 公開插槽發現入口、用公開 API 打開它們,把「已安裝插件 + 快捷動作」收進右側欄面板,並在左側欄與輸入框提供總入口。

這是什麼

插件塢由維護者 Sun-0306 發佈,包名 dsh-plugin-dock,當前版本 0.1.0,MIT 許可證,屬於 DSH 社區目錄中的客戶端類插件(Host + Web Client 雙半插件)。

一句話定位:右側隨手調用面板 + 左側全局入口頁 + 輸入框一鍵按鈕。價值在於「不離開對話」——右欄與主欄會話並排,窄屏時右欄可全屏,寬度約 320–900 px 均可用。

入口與界面

同一產品有四個入口:

位置 作用
左側欄面板列表(id plugin-dock,與「插件」「定時任務」同級) 全局門戶;默認點擊後回到對話並在右欄打開插件塢
右側欄標籤頁(type id dsh-plugin-dock) 主工作區:搜索、快捷動作、右側面板、插件頁、已安裝插件
右欄「+」指南(order 45) 從指南再次打開插件塢
輸入框工具行左側(id plugin-dock-launcher) 一鍵在右欄打開插件塢

右欄面板自上而下包括:標題行(含搜索、刷新、設置頁入口)、快捷動作(內置「上下文歸納」示範跨插件調用)、右側面板(枚舉其他插件註冊的右欄 tab)、插件頁(左側欄整頁入口,可選「整頁打開」或「右側打開」)、已安裝插件(Host 目錄 API 清單,可展開詳情)、底部狀態(偏好同步、設置頁、刷新)。搜索框會同時過濾上述區塊;標籤頁 keepMounted,切走再回來保留搜索詞與展開狀態。

點左側欄「插件塢」時,默認不會停在整頁:leftEntryOpensDock 默認爲 true,會把主欄切回對話並在右欄打開插件塢。需要完整控制中心時,在面板內點「打開完整設置頁」或底部「設置頁」,才進入整頁(狀態條、目錄、設置、自檢、API 文檔等)。無會話、右欄打不開時會留在整頁並提示;約 0.5 秒內的導航不會被強行拉回(導航守衛)。

安裝與啓用

前置條件

  • DSH 0.2.1 系 Web/Desktop 組合,desktop profile 需由 DeepSeek Harness 初始化;
  • Host 半要求 Node ≥ 20(隨 DSH 運行,無需單獨起進程);
  • 倉庫無構建步驟、無第三方依賴,可直接以本地目錄或打包 tgz 安裝。

安裝前請自行閱讀倉庫源碼與 MIT 許可證;插件在當前 DSH 進程權限下運行,與宿主共享 profile 目錄。

推薦方式

維護者在 README 中提供了腳本與等價 CLI,路徑需換成你本機上的插件目錄(勿使用 git clone 作爲唯一手段;按官方文檔用 link: 或 file: 安裝)。

桌面版若 npm 全局 dsh 拒絕寫入 desktop profile,應使用 DeepSeek Harness 自帶 CLI,例如:

"/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh" \
  plugin --profile desktop add "link:/你的路徑/dsh-plugin-dock"

等價核心命令(將路徑改爲本機目錄):

dsh plugin --profile desktop add link:/你的路徑/dsh-plugin-dock

確認 ~/.dsh/profiles/desktop/package.json 的 dsh.profile.bundles 中包含 "dsh-plugin-dock";若 CLI 未自動寫入,可手動追加。也可使用打包安裝包(版本以 dist 文件名爲準):

dsh plugin --profile desktop add file:/你的路徑/dsh-plugin-dock/dist/dsh-plugin-dock-0.1.0.tgz

倉庫內還提供 scripts/install-manual.sh、scripts/install-local.sh 等腳本(README 含完整步驟與備份 package.json.bak.<時間戳> 說明)。完全退出並重啓 DSH 後生效;Host 半可能 HMR 熱加載,客戶端界面通常需 ⌘/Ctrl+R 刷新 GUI。

快速自檢:不帶 token 請求 http://127.0.0.1:57598/dsh-plugin-dock/api/health 若返回 401 JSON,說明 Host 半已加載;帶頁面 token 時返回 ok:true。

卸載

dsh plugin --profile desktop remove dsh-plugin-dock

並從 dsh.profile.bundles 刪除 "dsh-plugin-dock" 後重啓。數據目錄 <profile>/.dsh-plugin-dock/ 默認保留;徹底清空可手動刪除,例如 ~/.dsh/profiles/desktop/.dsh-plugin-dock。

典型用法

聊天中調用

  1. 打開會話,點輸入框左側插件塢按鈕,或右欄「+」→ 插件塢;
  2. 在「快捷動作」點「一鍵歸納」:對當前會話做上下文歸納並顯示用量(需已安裝 dsh-context-summarizer);
  3. 在「右側面板」點任意插件 chip:該插件在右欄打開,對話仍可見;
  4. 在「插件頁」點「整頁打開」進入該插件整頁,或點「右側打開」優先用右欄 tab。

收藏、最近與整頁

已安裝插件行可星標收藏;打開過的插件進入「最近」(最多 50 條)。偏好經 Host /api/prefs 持久化到 <profileDir>/.dsh-plugin-dock/state.json,Host 不可用時退回 localStorage 並在底欄顯示「本地緩存」。

整頁控制中心提供統一目錄、設置與自檢(/api/self-check)。常用設置項:

設置項 默認 說明
leftEntryOpensDock true 左欄入口直接開右欄並回到對話
autoOpenDock true 首次打開頁面時自動開一次右欄(有 localStorage 標記)
showPageEntries true 是否展示「插件頁」區塊
density comfortable comfortable / compact

設計要點與適用場景

插件塢只枚舉入口、調用公開 API(如 ctx.sidebarRight.openTab、ctx.layout.selectPanel),不 import 其他插件內部模塊、不讀對方 DOM。某能力缺失時對應按鈕降級,不阻塞整個面板。

適合:插件裝得較多、希望在同一會話旁切換右欄工具或打開整頁設置的用戶。不適合把它當成各插件功能的替代品——具體能力仍由各插件提供。

「上下文歸納」快捷動作爲跨插件調用示例;未安裝歸納插件或缺少 token/會話時,卡片顯示空狀態與「打開插件頁」兜底,不會拖垮面板。

結尾

插件塢把 DSH 已安裝插件的入口收到右側欄,用左側欄門戶和輸入框按鈕縮短路徑,核心判斷是:調用插件的時機幾乎總在對話進行中。若你在用 DSH 0.2.1+ 桌面版並願意本地 link 或 tgz 安裝,可按 README 安裝後從輸入框左側按鈕或左欄「插件塢」試用。

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

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

小夜