前言¶
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 生态中用于详情列扩展的旧有基础设施。尽管其功能完整,但鉴于官方侧边栏的推出及项目归档计划,新项目应优先考虑官方方案。