前言¶
DeepSeek Harness (DSH) 的 Web 界面由侧边栏、对话区和详情面板组成。在开发或调试智能体工作流时,开发者需要将注意力集中在特定区域,而非分散在多栏布局中。dsh-focus 插件通过纯 CSS 技术隐藏除指定插槽外的所有界面元素,实现单一区域的聚焦显示。
核心功能¶
本插件通过 URL 参数 ?focus= 控制页面显示。它支持聚焦任意顶层插槽或特定 data-slot 路径,且不依赖 DSH 的核心代码,仅做可见性控制。
- 插槽聚焦:支持
?focus=<插槽路径>,隐藏非目标区域。 - 预设路径:支持
conversation.session(仅消息流)、conversation.composer(仅输入区)、sidebar(会话列表)、details(详情面板)等。 - 自定义路径:支持聚焦第三方插件注册的任意 data-slot 路径。
- 自动恢复:若当前没有会话,插件会自动恢复最近的非空白会话,避免空白视图。
- 零时序问题:采用注册式硬编码规则,避免动态枚举带来的渲染时序依赖。
- 持续监听:处理动态变化(如切换会话、插槽重挂载)。
- 快速失败:未注册路径会直接报错,不静默降级。
典型用法¶
在 DSH Web 启动后,在 URL 后追加参数即可生效。以下是常用路径:
?focus=conversation.session:仅显示消息流。?focus=conversation.composer:仅显示输入区(沉底)。?focus=conversation:对话区整体全宽。?focus=sidebar:会话列表全宽。?focus=details:详情面板全宽。?focus=conversation.chat.node:消息区域全宽。?focus=<任意 data-slot 路径>:聚焦自定义插槽。?focus-debug=1:启用调试模式。window.__dshFocusHealth():浏览器控制台健康检查函数。
安装与启用¶
DSH 从 ~/.dsh/profiles/node_modules 解析插件包。需将仓库链接至该位置,并将插件挂载到当前 profile 的持久 patch 层。
1. 部署插件¶
在仓库根目录执行以下 PowerShell 命令(将 <本仓库绝对路径> 替换为实际路径):
mklink /J "$env:USERPROFILE\.dsh\profiles\node_modules\@dsh-focus\focus-plugin" "<本仓库绝对路径>"
2. 挂载插件¶
编辑 ~/.dsh/profiles/<profile>/cordis.patch.yml 文件,在末尾追加以下内容:
- insert:
- id: focus-mode
name: '@dsh-focus/focus-plugin'
注意事项:
- 首次挂载:需重启 DSH 进程。
- 代码修改:插件代码修改后,无需重启,浏览器刷新即可加载新代码。
- 挂载名称:name 字段必须精确等于 @dsh-focus/focus-plugin,否则会导致启动失败。
- 持久化:必须将配置写入 profile 的持久 patch,而非临时 dsh.mcp.patch.yml,否则会导致不稳定。
适用场景与注意¶
本插件基于 @deepseek-ai/dsh@0.1.1-rc.2 基线。它通过纯 CSS 实现功能,适合需要长时间专注单一开发区域的场景。在使用前,请确认插件源码与许可证符合您的需求。