DSH 聚焦模式插件:thechengxi/dsh-focus

前言

DeepSeek Harness (DSH) 的 Web 界面由侧边栏、对话区和详情面板组成。在开发或调试智能体工作流时,开发者需要将注意力集中在特定区域,而非分散在多栏布局中。dsh-focus 插件通过纯 CSS 技术隐藏除指定插槽外的所有界面元素,实现单一区域的聚焦显示。

核心功能

本插件通过 URL 参数 ?focus= 控制页面显示。它支持聚焦任意顶层插槽或特定 data-slot 路径,且不依赖 DSH 的核心代码,仅做可见性控制。

  1. 插槽聚焦:支持 ?focus=<插槽路径>,隐藏非目标区域。
  2. 预设路径:支持 conversation.session(仅消息流)、conversation.composer(仅输入区)、sidebar(会话列表)、details(详情面板)等。
  3. 自定义路径:支持聚焦第三方插件注册的任意 data-slot 路径。
  4. 自动恢复:若当前没有会话,插件会自动恢复最近的非空白会话,避免空白视图。
  5. 零时序问题:采用注册式硬编码规则,避免动态枚举带来的渲染时序依赖。
  6. 持续监听:处理动态变化(如切换会话、插槽重挂载)。
  7. 快速失败:未注册路径会直接报错,不静默降级。

典型用法

在 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 实现功能,适合需要长时间专注单一开发区域的场景。在使用前,请确认插件源码与许可证符合您的需求。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜