yyyyolo7a79-sketch/dsh-auto-and-safety
yyyyolo7a79-sketch★ 2JavaScriptLast synced: 2026-08-15
DSH auto-and-safety permission preset: full file access but no delete without user approval
README excerpt
dsh-auto-and-safety 权限插件 为 DeepSeek Harness (DSH) 新增一个 auto-and-safety 权限预设: 继承 danger-full-access (全文件权限)的能力,但禁止一切删除文件的行为 ;每次任务完成后,agent 必须向用户询问是否删除任务过程中产生的临时(tmp)/ 冗余文件, 指明文件是什么、文件位置,经用户明确批准后才可删除 。 目录 - 1. 需求背景 - 2. 总体设计 - 3. DSH 权限体系原理(前置知识) - 4. 实现细节 - 5. 安装步骤 - 6. 使用流程(与演示截图对应) - 7. 实现效果 - 8. 行为示例(拦截记录) - 9. 已知限制与边界 - 10. 卸载方法 - 11. 给 dsv4 / 后续整合者的说明 1. 需求背景 用户原始需求(原话): 在你的权限 read only / workspace write / all accuse 中再加一条权限 auto-and-safety : 内容为继承 all accuse 的权限,但是 禁止一切删除文件的行为 ,每次任务完成后 向用户询问 是否删除任务过程中产生的 tmp、冗余文件,并指明 文件是什么 以及 文件位置 , 在用户批准后才可以删除 。 即:希望 agent 拥有"全权限"干活能力的同时,把"删除文件"这一不可逆高危操作锁死为 人批后放行 ,防止 agent 自行清理/误删。 2. 总体设计 实现分两层,缺一不可: 层 载体 作用 权限预设层 cordis.patch.yml 中 permission 行的 presets 表 让 auto-and-safety 成为可切换的权限预设(GUI 选择器 + /permission 命令可见可选) 行为强制层 本地插件 plugins/auto-and-safety/lib/index.js ① 向系统提示注入安全规范;② 在 tools/pre-execute 工具执行门上 硬拦截 删除命令 设计要点: - 预设 = 两个旋钮的组合 :DSH 的权限预设表每项只有 sandbox (文件沙箱模式)和 approval (审批策略)两个字段。 auto-and-safety = sandbox: danger-full-access (继承 all access)+ approval: ask (保留审批通道)。 - "禁止删除"无法用旋钮表达 :DSH 沙箱模式枚举只有 read-only / workspace-write / danger-full-access ,没有"禁止删除"模式。因此"禁止删除 + 批准后放行"必须落在 工具执行前的拦截钩子 上。 - 官方 fs 工具本身没有删除能力 :DSH 的 fs 工具只有 read / write…
View full README on GitHub →