前言¶
DeepSeek Harness(DSH)採用插件化架構。在 Web 端開發智能體或工具時,經常需要在界面右側掛載額外的面板(如 Shell、調試器等)。dsh-right-drawer 提供了一個宿主方案,通過 dockPanels 註冊表管理這些面板,使其以全高抽屜形式呈現,並自動處理邊緣標籤的堆疊與寬度調整。
功能說明¶
該插件主要解決右側面板的佈局與交互問題:
-
dockPanels 註冊表
插件作爲宿主,提供dockPanels客戶端服務。內容插件(如dsh-soln-panel、dsh-agent-shell)通過註冊表接入,無需自行處理底層佈局邏輯。 -
標籤自動堆疊
抽屜邊緣的標籤會根據實際測量高度緊密排列,並垂直居中成組。展開或收起抽屜時,僅改變 X 軸位置,標籤組不會跳動。 -
寬度拖拽
抽屜左側設有手柄,支持拖拽調整寬度。寬度範圍在 280–900px 之間,且不會超過視口寬度的 80%。切換不同抽屜時,寬度狀態會被保持。 -
與方案面板協調
插件會檢測dsh-soln-panel的位置。打開的抽屜和剩餘標籤會自動貼到方案面板的左緣,避免內容相互遮擋。
安裝與啓用¶
通過官方命令安裝插件:
dsh plugin --profile web add @deepseek-ai/dsh-right-drawer
如果插件尚未發佈,可使用本地目錄安裝:
dsh plugin --profile web add file:C:/path/to/dsh-right-drawer
安裝完成後重啓 DeepSeek Harness。右側將出現豎排標籤,點擊即可展開對應的抽屜。
卸載命令如下:
dsh plugin --profile web remove @deepseek-ai/dsh-right-drawer
典型用法¶
內容插件需要在 client 側(apply 內)註冊到 dockPanels 服務:
// 在內容插件的 client 側代碼中
const dock = ctx.get('dockPanels')
if (dock !== undefined) {
const dispose = dock.register({
id: 'shell',
label: 'Shell',
order: 1,
render: () => React.createElement(ShellContent, { connection }),
})
}
註冊表 API 支持 register、unregister、subscribe 和 snapshot。
架構與依賴¶
- 瀏覽器端:提供
dockPanels服務,通過slots.inject('shell.overlay')掛載DockHost組件。 - Node 端:爲空實現,僅確保 bundle 解析順利。
- 依賴:
@deepseek-ai/dsh-tools@deepseek-ai/dsh-client-connection@deepseek-ai/dsh-client-ui-slotsreact(版本要求 ^18.2.0)
注意事項¶
該插件以當前 DSH 進程的權限運行。安裝前建議檢查源碼與許可證(MIT)。
總結¶
dsh-right-drawer 爲 DSH Web 插件提供了標準化的右側抽屜宿主能力,通過註冊表模式解耦了內容插件與佈局邏輯。適合需要構建全高側邊欄或複雜 UI 佈局的開發者。