dsh-edit-guardian:文件變更可視化與命令安全門

在 DeepSeek Harness (DSH) 的 Web 開發場景中,Agent 執行文件修改或 Shell 命令時,開發者往往難以實時掌握變更細節,且對破壞性操作缺乏有效的阻斷手段。dsh-edit-guardian 插件正是爲了補齊這一短板而生。

這是一個 DeepSeek Harness Web 插件,由 LWLAymh 維護。它通過在瀏覽器 UI 中增加文件變更可視化、保留/撤銷控制以及危險命令的安全審批流程,幫助開發者更清晰地監控 Agent 的操作。

核心功能

1. 文件變更欄

當 Agent 通過 write、edit 或 str_replace_editor 修改文件時,工具行會顯示 文件 +N行 -M行 [show diff]。點擊按鈕可展開上下文感知的內聯 Diff。變更摘要會顯示在輸入框上方的持久化欄中,即便 Agent 正在持續工作,該欄也會實時更新。

2. 保留與撤銷

變更摘要欄允許對每個文件進行精細化控制。每行包含:
* 可打開的文件路徑
* 行數統計(+N / -M)
* 顯示/隱藏 Diff 切換
* 保留 按鈕:標記變更爲已接受並移出摘要
* 撤銷 按鈕:執行 /undo <path> 命令並移出摘要

欄頂部的“全部保留”和“全部撤銷”按鈕分別對應批量操作。撤銷操作依賴於後端的 /undo 命令,該命令會記錄 write 和 edit 工具的成功結果,並在撤銷時恢復文件狀態或刪除新建的文件。

3. 危險命令審批與高亮

插件監聽 tools/pre-execute 事件,對 bash 和 pwsh 命令進行安全檢查。如果命令匹配破壞性模式(如 rm、Remove-Item、git reset --hard、curl|sh 等),執行流程會被路由至審批流程,在命令運行前彈出提示。

在 Shell 工具行中,匹配的危險文本會以紅色高亮顯示。當工具調用請求沙箱權限提升(sandbox_permissions)時,受影響的路徑或工作目錄也會標紅並顯示“需要權限”徽章。如果用戶拒絕審批或取消操作,命令將不會執行。

安裝與啓用

使用官方安裝命令將插件添加到 Web 配置文件:

dsh plugin --profile web add dsh-edit-guardian

安裝完成後,需重啓 Web 進程以使插件生效:

dsh --profile web

插件不支持熱重載到已運行的進程。

典型用法

  • 跳過審批:在 Web UI 中切換到“Full access”預設(danger-full-access 沙箱模式),可以跳過危險命令的審批提示,匹配 DSH 的現有語義。
  • 查看變更:點擊工具行上的“show diff”按鈕查看詳細的上下文感知變更。
  • 撤銷操作:使用 /undo 命令可以撤銷由 write 或 edit 產生的變更。注意,此功能僅適用於 write 和 edit 工具的結果,str_replace_editor 和 Shell 命令的變更無法通過此命令恢復。

注意事項

  • 撤銷限制:/undo 命令僅能恢復由 write 或 edit 工具產生的變更。通過 str_replace_editor 修改的文件無法通過撤銷恢復;Shell 命令產生的變更也不受此限制。
  • 重啓要求:修改插件源碼後,必須重新執行安裝命令並重啓 Web 進程才能生效。
  • 卸載:如需移除插件,請使用以下命令:
    dsh plugin --profile web remove dsh-edit-guardian

總結

dsh-edit-guardian 通過 UI 層面的增強,解決了 Agent 操作的可見性和安全性問題。如需瞭解更多或查看源碼,請訪問插件目錄或GitHub 倉庫。

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

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

小夜