Back to home

1x1-lab

dsh-auto-execute

DeepSeek Harness(DSH)的 Cordis 插件:让审批自动放行

Stars
0
Language
JavaScript
Created
Aug 14, 2026
Updated
Aug 14, 2026

Introduction

dsh-auto-execute —— 审批"自动执行"插件

English: dsh-auto-execute is a Cordis plugin for DeepSeek Harness (DSH) that auto-approves approval requests. It ships two modes: an auto-execute preset (select it in Settings → Permissions and every approval in that session is automatically allowed — the preset itself is the switch) and a rule mode (exact-match approvals by tool name + reason substring, controlled by an enabled toggle, e.g. /auto-execute add ...). Every auto-approval is logged, and reverting the preset or disabling rule mode restores normal prompting. See the full English README.

DeepSeek Harness(DSH)的 Cordis 插件:让审批自动放行。两种模式:

  1. 自动执行预设联动(推荐):权限设置里新增了 auto-execute("自动执行")预设 (danger-full-access + 审批链保留 ask)。在网页 设置 → 权限 下拉选中它, 该会话的所有审批请求自动放行——选择预设即生效,预设本身就是开关
  2. 规则模式:按 工具名 + reason 子串 精确放行(/auto-execute add ...), 由 enabled 开关控制。

背景:DSH 内置审批只支持一次性授权(allowed-once),没有"记住并放行";权限预设 的 danger-full-access 绑定 approval: never(拒绝需要审批的操作),不是放行。 本插件在 approval/request 瀑布链上插入 answerer:预设态/规则命中 → 返回 allowed-once;否则 next() 交给正常询问。

能干什么

  • 增强权限 + 自动执行:权限下拉选"自动执行" → sandbox 立即 danger-full-access (比 workspace-write 更高),审批不再弹窗,重启后依然生效(预设写入会话事件 + settings)。
  • 可关闭:权限下拉切回 workspace-write / danger-full-access 即停止自动放行; 规则模式用 /auto-execute disable
  • 精确匹配(规则模式):按 工具名 + reason 子串 匹配,不搞"全部放行"。

安装

在项目内(插件源码目录)执行:

# Windows(需要 PowerShell)
powershell -ExecutionPolicy Bypass -File install.ps1

# macOS / Linux(自带 sh/bash,无需装 PowerShell)
bash install.sh

脚本会(幂等):

  1. 把插件复制到 $DSH_HOME/profiles/web/node_modules/dsh-auto-execute
  2. cordis.patch.yml 写入两段:插件启用行 + permission 预设表覆写 (新增 auto-execute 预设,并保留 read-only / workspace-write / danger-full-access)

依赖 @deepseek-ai/*(cordis/schemastery/dsh-settings 等)由 $DSH_HOME/profiles/node_modules 的符号链接提供(dsh 启动时 healProfilesModuleFallback 自动建立),无需 pnpm

最后重启 dsh web 服务(服务端插件,重启才加载):

# 停掉当前 dsh web 进程后,在原目录重新启动
dsh web

使用

方式一:权限下拉选择"自动执行"(推荐)

  1. 重启 dsh web 后,打开网页 设置 → 权限,下拉里出现 自动执行 选项 (对话输入框旁"访问模式"按钮同步显示 ✨ 图标)
  2. 选中它 → 立即生效:sandbox = danger-full-access,所有审批自动放行
  3. 想恢复询问:下拉切回 workspace-writedanger-full-access

方式二:斜杠命令(规则模式)

/auto-execute status                    # 看自动执行预设键、规则模式开关与规则
/auto-execute enable                    # 开启规则模式
/auto-execute disable                   # 关闭规则模式(自动执行预设不受影响)
/auto-execute add pwsh "escalate sandbox to danger-full-access"   # 加规则
/auto-execute remove 0                  # 删第 0 条
/auto-execute list                      # 列出规则

方式三:直接编辑 settings.yaml

$DSH_HOME/settings.yaml 加一段(热重载,不用重启):

auto-execute:
  autoPreset: auto-execute      # 自动执行预设键(默认值,一般不用改)
  enabled: true                 # 规则模式开关
  rules:
    - tool: pwsh
      match: "escalate sandbox to danger-full-access"
      note: "idf.py 构建需要完整访问权限"

规则匹配说明(规则模式)

审批请求只有 toolName(如 pwsh/bash)和 reason(人类可读原因)两个匹配维度:

  • 沙箱升级的 reason 固定前缀:escalate sandbox to <mode>: <justification>
  • match 填稳定前缀最可靠(如 escalate sandbox to danger-full-access),不要依赖模型生成的 justification 部分
  • match 留空 = 匹配该工具的全部审批请求(慎用,等于对该工具永久免问)

安全说明

  • 自动执行预设:只有你在权限下拉显式选中它才生效(选 = 同意);切走即停
  • 规则模式默认 enabled: false,装上后行为完全不变
  • 每次自动放行都有日志([auto-execute] 预设"... "自动执行:放行 ... / 规则放行 ...)
  • 与 DSH 原有 danger-full-access 预设(approval: never = 拒绝需审批的操作)不同:本插件的"自动执行"是放行(allowed-once)

跨平台

  • 插件本体为纯 Node.js/Cordis,Windows / macOS / Linux 的 DSH 均支持
  • 安装脚本按平台原生选择:Windows 用 install.ps1(PowerShell),macOS / Linux 用 install.sh(自带 bash,无需装 PowerShell)
  • 两个脚本逻辑一致:复制插件 + 幂等写入 cordis.patch.yml;DSH_HOME 都支持环境变量优先、回退 ~/.dsh
  • 权限预设与访问模式图标均为平台无关配置/前端改动

已知限制

  • 第三方插件的 settings 命名空间不会出现在网页"插件配置"页(host api-proxy 的 allowlist 是硬编码的);配置走斜杠命令、权限下拉或 settings.yaml
  • 规则模式只匹配 toolName + reason 子串,无法看到工具参数(callId 不携带参数)
  • 服务端插件,改动后需重启 web 服务(不走 client-plugin HMR)
  • 子代理(subagent)会话:若未继承父会话的权限旋钮(approval=ask + sandbox=danger-full-access),其投影推导不出 auto-execute,会自动落回规则模式(安全)

目录

dsh-auto-execute/
├── package.json      # 插件元数据
├── lib/index.js      # 插件本体(approval 监听 + settings + 命令)
├── README.md         # 本文档(中文)
├── README.en.md      # 英文 README(English)
├── LICENSE           # Apache License 2.0
├── install.ps1       # 安装脚本(Windows / PowerShell)
└── install.sh        # 安装脚本(macOS / Linux / bash)

开源协议

本项目基于 Apache License 2.0 开源。