Bundle
dsh-right-drawer
Right-side drawer host for Web: every registered entry becomes a full-height drawer with its own edge tab (auto-stacked and group-centered), width resizable. Content plugins register via the dockPanels client registry. 右侧抽屉宿主:dockPanels 注册表、边缘标签堆叠、宽度拖拽。
- Source
- PastSheep
- License
- MIT
- Updated
- Updated 21 days ago
Readme
# @deepseek-ai/dsh-right-drawer
右侧抽屉宿主(DeepSeek Harness Web / `dsh` 宿主)。任何注册进 `dockPanels` 客户端注册表的条目都会成为一个**全高抽屉**:自带边缘竖排标签(按实际测量高度紧密堆叠、居中成组),宽度可拖拽调整。内容插件(`dsh-soln-panel`、`dsh-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
```sh
dsh plugin --profile web add @deepseek-ai/dsh-right-drawer
```
未发布时可用本地目录:
```sh
dsh plugin --profile web add file:C:/path/to/dsh-right-drawer
```
然后重启 DeepSeek Harness。安装后右侧出现竖排标签(如「Shell」),点击展开对应抽屉。
卸载:
```sh
dsh plugin --profile web remove @deepseek-ai/dsh-right-drawer
```
## 内容插件接入 Registering a content plugin
```js
// 在内容插件的 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) → disposer`、`unregister(id)`、`subscribe(fn) → disposer`、`snapshot()`。
## 架构 Architecture
- 浏览器半(`lib/client.js`):提供 `dockPanels` 服务,通过 `slots.inject('shell.overlay')` 挂载 `DockHost`
- Node 半(`lib/index.js`):空实现,仅为让 bundle 行干净解析
- 内容插件通过 `dockPanels/available` / `dockPanels/unavailable` 事件或轮询自愈注册(宿主重载时注册表重建)
## License
MIT
Install
dsh plugin --profile web add github:PastSheep/dsh-right-drawer
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-right-drawer from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.