dsh-editor-selection:让 DSH 理解编辑器选区

前言

DeepSeek Harness (DSH) 生态强调“一切皆插件”。在开发场景中,Agent 需要上下文才能执行操作。若上下文仅为对话历史,Agent 往往难以精准定位用户当前关注的代码片段。dsh-editor-selection 插件解决了这个问题:它不传输文件内容,而是捕获编辑器的主选区(绝对路径 + 行区间),并在 Agent 每步执行前注入环境知会,让 Agent 明确知晓用户当前的操作焦点。

功能概览

该插件由 yingzaicc 维护,采用 MIT 许可证。核心能力包括:

  • 选区捕获:捕获主选区的绝对路径 + 行区间(1-based)。
  • 环境知会:在 agent 每步之前注入一行环境知会(如 @绝对路径:10-25),而不是把文件内容塞进上下文。
  • 配对与审批:DSH 侧边栏提供配对审批功能,支持设备吊销。
  • 隐私控制:输入框下方提供环境 chip,包含一个“眼睛”开关,用于暂停或恢复共享。
  • 交互增强:支持“选中即聚焦”、“右键解释代码”以及多窗口支持。

安装与启用

安装通过 PowerShell 脚本执行,完成后需重启 DSH Web 以使配置生效。

powershell -ExecutionPolicy Bypass -File scripts\install.ps1

核心机制与使用

插件通过 WebSocket 与 DSH 通信,架构分为 VS Code 扩展侧和浏览器侧(DSH Web)。

1. 选中即聚焦

当你在编辑器中选中代码时,插件会捕获选区。DSH 会在最近活跃的会话里自动开始解释该段代码,无需手动输入。

选区会以环境知会的形式注入:
* 有真实选区:注入 @绝对路径:起-止。
* 光标停放无选择:注入 @绝对路径(整个文件即焦点)。
* 光标不在任何文件里:焦点清空。

若缓冲区未保存,会在路径后标注“(缓冲区未保存)”。

2. 环境知会与解释

选区发送给 DSH 后,Agent 会收到包含路径信息的消息。这种机制协议与客户端种类无关,目前 VS Code 是第一个接入者。

3. 隐私控制

输入框下方的环境 chip 上有一个“眼睛”开关:
* 关:暂停共享。插件会向 Agent 注入一条一次性“已暂停”知会,Agent 保持沉默。
* 开:恢复共享。

4. 右键解释

在 VS Code 编辑区选中代码后,点击右键菜单中的“解释代码”,选区会发送给 DSH,触发自动解释。

安全与权限

该插件遵循本地化与最小权限原则:

  • 通信:全部通过本机回环,不涉及任何云服务。
  • 认证:配对请求 60s TTL,同 instanceId 会去重。
  • 数据:Token 仅存 SHA-256 哈希,不存储明文。
  • 权限:路径可读性由 DSH 权限系统在读取时裁决,插件不做工作区映射门槛。工作区外的文件在 Agent 实际读取时按 DSH 既有权限流程索权。
  • 异常码:close 语义包括 4401(未授权)、4403(配对过期或被拒)、4408(限流,20 帧/s)。

配置与故障排查

插件提供两个逃生舱配置项:

  • 总闸:在 DSH 配置中设置 dshEditorSelection.enabled=false 即可完全禁用。
  • 重定位状态目录:通过环境变量 DSH_EDITORSEL_ROOT 重定位状态目录。

总结

dsh-editor-selection 插件通过将编辑器选区转化为结构化的环境知会,实现了 Agent 与用户代码操作的精准对齐。它不改变文件内容,仅通过协议传递路径上下文,配合本地回环与哈希存储,在提升开发效率的同时保持了较高的安全性。

  • GitHub 仓库: https://github.com/yingzaicc/dsh-editor-selection
  • 目录页: https://www.skillhub.cn/plugins/yingzaicc/dsh-editor-selection
羽毛球分组比赛记分
小程序二维码

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

小夜