Introduction¶
DeepSeek Harness (DSH) uses a plugin architecture. When developing agents or tools on the Web client, you often need to mount additional panels on the right side of the interface (such as Shell or debuggers). dsh-right-drawer provides a hosting solution that manages these panels through the dockPanels registry, presenting them as full-height drawers and automatically handling edge label stacking and width adjustment.
Features¶
This plugin mainly addresses layout and interaction issues for right-side panels:
-
dockPanels registry
The plugin acts as the host and provides thedockPanelsclient service. Content plugins (such asdsh-soln-panelanddsh-agent-shell) connect via the registry without needing to handle low-level layout logic themselves. -
Automatic label stacking
The labels on the drawer edge are tightly stacked based on their measured heights and centered vertically as a group. When expanding or collapsing the drawer, only the X-axis position changes, so the label group does not shift. -
Width dragging
A handle is provided on the left side of the drawer, supporting drag-to-adjust width. The width ranges from 280 to 900px and never exceeds 80% of the viewport width. When switching between drawers, the width state is preserved. -
Coordination with the solution panel
The plugin detects the position ofdsh-soln-panel. The open drawer and remaining labels automatically snap to the left edge of the solution panel to avoid content overlap.
Installation and Enabling¶
Install the plugin with the official command:
dsh plugin --profile web add @deepseek-ai/dsh-right-drawer
If the plugin has not been published, install it from a local directory:
dsh plugin --profile web add file:C:/path/to/dsh-right-drawer
After installation, restart DeepSeek Harness. Vertical labels will appear on the right side; click one to expand the corresponding drawer.
The uninstall command is as follows:
dsh plugin --profile web remove @deepseek-ai/dsh-right-drawer
Typical Usage¶
Content plugins must register with the dockPanels service on the client side (inside apply):
// 在内容插件的 client 侧代码中
const dock = ctx.get('dockPanels')
if (dock !== undefined) {
const dispose = dock.register({
id: 'shell',
label: 'Shell',
order: 1,
render: () => React.createElement(ShellContent, { connection }),
})
}
The registry API supports register, unregister, subscribe, and snapshot.
Architecture and Dependencies¶
- Browser side: Provides the
dockPanelsservice and mounts theDockHostcomponent viaslots.inject('shell.overlay'). - Node side: An empty implementation that only ensures smooth bundle resolution.
- Dependencies:
@deepseek-ai/dsh-tools@deepseek-ai/dsh-client-connection@deepseek-ai/dsh-client-ui-slotsreact(version requirement: ^18.2.0)
Notes¶
This plugin runs with the permissions of the current DSH process. It is recommended to review the source code and license (MIT) before installation.
Summary¶
dsh-right-drawer provides standardized right-side drawer hosting capabilities for DSH Web plugins. It decouples content plugins from layout logic through the registry pattern. It is suitable for developers who need to build full-height sidebars or complex UI layouts.