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
羽毛球分组比赛记分
小程序二维码

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

小夜