dsh-file-confirm:文件改動確認機制

前言

DSH 採用插件化架構,開發者常需要精細控制模型對文件系統的操作。當模型調用 write、edit 或 str_replace_editor 等工具時,此插件在輸入區插入確認條,攔截文件寫操作,確保改動在執行前經過人工確認。

核心功能

  1. 攔截寫操作:攔截 write、edit、str_replace_editor 等文件寫工具。
  2. Diff 預覽:輸入區出現確認條,直接展示 diff 紅綠文本。write 顯示新建內容(綠),edit 顯示行級對照(紅刪綠增)。
  3. 允許/拒絕機制:用戶點「允許本次」放行,點「拒絕」則工具調用以失敗結束,模型可據此調整策略。
  4. 長文本支持:長文本 diff 不截斷,支持塊內滾動查看。

安裝與啓用

使用官方命令安裝:

dsh plugin --profile web add dsh-file-confirm

安裝後需重啓 dsh web 並刷新瀏覽器。

配置

在 cordis.patch.yml 中配置該插件,可調整攔截範圍:

- insert:
    - id: file-confirm
      name: dsh-file-confirm
      config:
        tools: [write, edit, str_replace_editor]   # 攔截的工具列表
        # pathPattern: '^src/'                     # 可選:僅對匹配路徑確認
        # enabled: true

配置項說明:
* tools:默認攔截 write、edit、str_replace_editor。
* pathPattern:正則表達式字符串,用於限定文件路徑。
* enabled:總開關。

工作原理

該插件利用 DSH 官方擴展點,分爲 Host 和 Browser 兩個半身,實現零侵入:
* Host 半身:監聽 tools/pre-execute,對文件改動工具返回 { kind: 'ask', reason },其餘工具調用委託。
* Browser 半身:在 conversation.composer chain slot 註冊 priority 0 條目,selector 匹配文件改動類審批,接管渲染。
* 響應複用:複用內置 wait.respond 編碼,審計記錄照常寫入。

注意事項

  • 僅攔截文件寫操作,read、搜索、bash 等工具調用不受影響。
  • 其他工具的審批(如 bash 沙箱升級)仍走 DSH 內置面板。
  • 零侵入設計,不修改任何內置包。

總結

該插件專注於文件寫入這一高風險環節,通過內置 diff 預覽和允許/拒絕機制,爲 DSH 提供了簡單直接的文件審查能力。

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

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

小夜