hfh1999/dsh-file-confirm

hfh1999★ 0JavaScriptLast synced: 2026-08-16

Open on GitHub

给dsh添加简单的文件审查手动审查功能,文件编辑/写入时,弹窗确认。

README excerpt

dsh-file-confirm — 文件改动确认机制 双面插件: 任何文件改动(write / edit / str replace editor 的写命令)执行前,都会在 输入区出现确认条,确认条内直接展示 diff 红绿文本 (新建全绿、编辑红删绿增); 用户点「允许本次」才放行,点「拒绝」则该次工具调用以失败结束(模型能看到拒绝原因并调整)。 演示效果 使用流程 - 只拦文件写操作; read 、搜索、bash 等不受影响 - 其他工具的审批(如 bash 沙箱升级)仍走内置面板 - 长文本 diff 不截断,块内滚动查看 文档 - Changelog - 测试说明 与生态对比 插件 定位 差异 dsh-tool-approval 任意工具调用预审批(include/exclude 通配符) 通用黑盒确认(只显示工具名+原因), 无内容预览 dsh-permgate 细粒度权限网关(规则/白黑名单/分类) 重型权限管理,需要配置规则 dsh-change-review 会话内 write/edit 事后 diff 审查 写后审查,非写前确认 本插件 写前确认 + 内嵌 diff 内容预览 零配置、专注文件写入、允许/拒绝前看到确切改动 原理 利用 DSH 的官方扩展点, 零侵入、不修改任何内置包 : - Host 半身( lib/index.js ):监听 tools/pre-execute ,对文件改动工具返回 { kind: 'ask', reason } ;其余工具调用 next() 委托,与其他门共存。 - Browser 半身( lib/client.js ):在 conversation.composer chain slot 注册 priority 0 条目,selector 只匹配文件改动类审批;其他审批(如 bash 沙箱升级) 返回 null,仍由内置 ApprovalPanel 处理。 - diff 渲染:从会话快照的配对工具调用参数( argsRaw )取内容, 用简易行级 diff(公共前后缀 + 中间替换)渲染红删绿增: - write → 新内容全文(绿) - edit → old string / new string 行级对照(红删绿增) - str replace editor → str replace / insert / write 命令分别渲染 - 确认响应复用内置 wire 编码: wait.respond({ ok, value: { sessionId, approvalId, outcome } }) ,审计记录(approval/asked、approval/decided)照常写入。 安装(bundle) 或手动在 $DSH HOME/profiles/web/cordis.patch.yml …

View full README on GitHub →
Tools / Devdsh-plugin

Category