前言¶
DeepSeek Harness 的 AppFrame 詳情列是承載插件視圖的基礎設施。在沒有擴展的情況下,該列通常處於閒置狀態。dsh-client-ui-details-host 提供了將此列轉換爲多標籤 Dock 的能力。這是一個平臺爲 Web 的 UI 基礎設施,不需要 Electron 或 Node 運行時即可在標準 DSH Web 主機中運行。
這是什麼¶
這是一個便攜式 DSH Client 詳情欄基礎設施。它由 cherrchen 維護,旨在 AppFrame 詳情列中承載活動的 surface。該插件通過 ShellDetailsController API 提供了管理標籤頁、Launcher 和 Dock 可見性的能力。
核心功能¶
該插件提供以下功能:
- AppFrame 詳情列多標籤 Dock:將詳情列改造爲支持多標籤切換的 Dock。
- Launcher 頁面支持:提供卡片式入口,支持註冊自定義 Launcher 貢獻。
- ShellDetails API:提供完整的標籤頁管理接口,包括
tabs、launcher、tabClose和dockVisibility。 - Header Actions 槽位支持:在詳情欄頭部提供操作按鈕槽位。
- 便攜式 Web UI 基礎設施:純 Web 實現,不依賴 Electron 或 Node 環境。
- 無需額外依賴:客戶端邏輯通過
exports["./client"]條目解析,依賴項作爲 Peer Dependencies 存在。
安裝與啓用¶
安裝方式取決於運行環境。
DeepSeek Harness Desktop¶
Details Host 已內置在 DeepSeek Harness Desktop 中。無需單獨安裝步驟,直接可用。
DSH Web¶
在 Web 環境下,可以通過以下命令直接從 GitHub 安裝:
dsh plugin --profile web add github:cherrchen/dsh-client-ui-details-host
或者,若需手動構建 lib/ 目錄,可先執行構建腳本,再使用本地路徑安裝。
典型用法¶
插件通過全局 ctx.shellDetails 提供操作接口。以下爲常用操作示例。
註冊 Surface¶
其他插件通過注入 shell.details.surface 槽位來註冊可渲染的 Surface。
ctx.slots.inject('shell.details.surface', () =>
ctx.slots.register({
name: 'shell.details.surface',
id: 'example.alpha',
label: 'Example Alpha',
}, ExampleSurface))
ShellDetails API¶
通過 ctx.shellDetails 實例調用以下方法:
// 打開指定 surface,創建或複用標籤頁
ctx.shellDetails.open({ surfaceId: 'example.alpha', payload: {}, navigation: {} })
// 關閉當前標籤頁
ctx.shellDetails.close()
// 切換 Dock 的可見性
ctx.shellDetails.toggleDock()
// 顯示 Launcher 頁面
ctx.shellDetails.showLauncher()
適用場景與注意¶
- 適用場景:需要在 DeepSeek Harness 詳情列中擴展自定義視圖的開發者;需要實現多標籤管理體驗的 Web UI 基礎設施開發者。
- 維護狀態:該項目已不再維護。DeepSeek Harness 現已提供官方側邊欄並移除了 Details 頁。Details Host 將在近期歸檔。
- 依賴要求:安裝前需確保已滿足所有 Peer Dependencies(如
@deepseek-ai/dsh-api-session-controller、React 等)。 - 版本兼容:
main分支針對 DeepSeek Harnessv0.1.2。若使用v0.1.1-rc.2,需指定特定 commit。
結尾¶
該插件是 DeepSeek Harness 生態中用於詳情列擴展的舊有基礎設施。儘管其功能完整,但鑑於官方側邊欄的推出及項目歸檔計劃,新項目應優先考慮官方方案。