Back to home@PastSheep

dsh-right-drawer

Right-side drawer host for DeepSeek Harness Web: dockPanels registry, edge-tab stacking, resizable width. 右侧抽屉宿主:dockPanels 注册表、边缘标签堆叠、宽度拖拽。

Stars
0
Language
JavaScript
Created
Aug 17, 2026
Updated
Aug 17, 2026
GitHub repo

Introduction

@deepseek-ai/dsh-right-drawer

右侧抽屉宿主(DeepSeek Harness Web / dsh 宿主)。任何注册进 dockPanels 客户端注册表的条目都会成为一个全高抽屉:自带边缘竖排标签(按实际测量高度紧密堆叠、居中成组),宽度可拖拽调整。内容插件(dsh-soln-paneldsh-agent-shell)通过 dockPanels 注册接入。

Right-side drawer host for DeepSeek Harness Web: every entry registered into the dockPanels client registry becomes a full-height drawer with its own edge tab (auto-stacked by measured height and group-centered), resizable width. Content plugins register via the dockPanels client registry.

功能 Features

  • dockPanels 注册表 — 客户端服务,内容插件用 ctx.get('dockPanels').register({ id, label, order, render }) 接入,支持退订
  • 标签自动堆叠 — 测量每个标签的真实高度,紧密排列为 50% 垂直居中成组;开合抽屉只改变 X 位置,不跳动
  • 宽度拖拽 — 左缘手柄 280–900px(且不超过视口 80%),切换抽屉共享同一宽度
  • 与方案面板协调 — 检测 dsh-soln-panel.soln-panel 位置,打开的抽屉/剩余标签自动贴到其左缘,互不遮挡
  • 免构建 — 手写 JS,file: 或 npm 安装均可直接使用

安装 Install

dsh plugin --profile web add @deepseek-ai/dsh-right-drawer

未发布时可用本地目录:

dsh plugin --profile web add file:C:/path/to/dsh-right-drawer

然后重启 DeepSeek Harness。安装后右侧出现竖排标签(如「Shell」),点击展开对应抽屉。

卸载:

dsh plugin --profile web remove @deepseek-ai/dsh-right-drawer

内容插件接入 Registering a content plugin

// 在内容插件的 client 半(apply 内):
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(entry) → disposerunregister(id)subscribe(fn) → disposersnapshot()

架构 Architecture

  • 浏览器半(lib/client.js):提供 dockPanels 服务,通过 slots.inject('shell.overlay') 挂载 DockHost
  • Node 半(lib/index.js):空实现,仅为让 bundle 行干净解析
  • 内容插件通过 dockPanels/available / dockPanels/unavailable 事件或轮询自愈注册(宿主重载时注册表重建)

License

MIT