← 返回列表
未验证
用于 DeepSeek Harness DSH 审批请求的原生 Windows…
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/15 · 已提供中文文档
# DeepSeek Harness (DSH) 审批请求 + 回合结束通知的原生 Windows 弹出对话框
综合分
27.4
GitHub 分
27.4
用户评分
—
★ Stars
1
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add qingfengyu153781-star/dsh-approval-popup该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/17(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
dsh-approval-popup 用于 DeepSeek Harness (DSH) 审批请求的原生 Windows 弹窗对话框——通过桌面对话框批准或拒绝沙箱提权、文件写入和 shell 命令,而无需使用 Web GUI。当 agent 的一轮任务完成时,可选弹出 “任务完成” 提示。 Windows 原生弹窗插件:DSH 需要批准(沙箱提权、写文件、执行命令等)时,直接弹出桌面对话框点「是 / 否」,不用再切回 Web 界面操作;任务完成时还会弹出提醒。 ✨ 功能特性 - 原生是/否对话框 —— 是(Y) / 否(N) 按钮,始终置顶,居中显示。 - 全局回车批准热键 —— 在桌面任意位置按回车即可批准(可开关)。 - 带可配置操作的超时 —— N 秒内未做选择 → 自动批准(默认)、自动拒绝,或回退到 Web GUI(allow / reject / next)。 - 轮次完成弹窗 —— 当 agent 的一轮任务完成时显示非决策性提示,自动关闭,并做了防抖处理,因此连续多轮任务不会堆叠窗口。 - 前置应答器 —— 在 Web UI 应答器之前运行;一旦做出具体选择就会短路整个瀑布流。 - 审计日志 —— 每个请求/结果都会追加到 ~/.dsh/approval-popup.log。 - 零依赖 —— 纯 ESM + 两个 PowerShell 辅助脚本;无需 npm install,无需构建步骤。 📋 环境要求 | 要求 | 详情 | |---|---| | 操作系统 | 仅限 Windows(PowerShell/WinForms 对话框)。在其他平台上该插件不执行任何操作。 | | PowerShell | 5.1+(Windows 内置)。 | | DSH | 任意较新版本(dsh web 或桌面应用)。已在 0.1.0-rc.5 上测试。 | | Profile | web profile(默认)。 | 🚀 安装 方式 A —— 一键安装脚本(推荐) clone anywhere, then: powershell -ExecutionPolicy Bypass -File .\install.ps1 它会执行以下操作: 1. 将 index.mjs + 三个 .ps1 辅助脚本复制到 %USERPROFILE%\.dsh\plugins\approval-popup\。 2. 向 %USERPROFILE%\.dsh\profiles\web\cordis.patch.yml 追加一条 insert 条目(幂等——重复运行不会产生重复项)。 3. 打印后续步骤。 然后重启 dsh(退出并重新启动 dsh web / 桌面应用),对话框即可生效。 方式 B —— 手动安装 1. copy the plugin folder into the DSH plugins directory Copy-Item -Recurse . "$env:USERPROFILE\.dsh\plugins\approval-popup" 2. edit %USERPROFILE%\.dsh\profiles\web\cordis.patch.yml and add: - insert: - id: approval-popup name: 'file:///C:/Users//.dsh/plugins/approval-popup/index.mjs' 3. restart dsh web ⚙️ 配置 所有选项均为环境变量,在插件启动时读取一次(请在启动 dsh 之前设置它们,例如在系统设置或启动脚本中): | 变量 | 默认值 | 描述 | |---|---|---| | DSH_APPROVAL_POPUP | 1 | 设为 0 可禁用整个插件。 | | DSH_APPROVAL_ENTER | 1 | 设为 0 可禁用全局回车热键。 | | DSH_APPROVAL_TIMEOUT_MS | 15000 | 对话框超时时间(毫秒)。0 = 永久等待。 | | DSH_APPROVAL_TIMEOUT_ACTION | allow | 超时时:allow(自动批准)、reject(自动拒绝)或 next(回退到 Web GUI)。 | | DSH_TURN_DONE_POPUP | 1 | 设为 0 可禁用回合结束弹窗。 | | DSH_TURN_DONE_TIMEOUT_MS | 30000 | 回合结束弹窗自动关闭时间(毫秒)。 | | DSH_TURN_DONE_COOLDOWN_MS | 5000 | 两次通知之间的最小间隔;防止回合集中结束时弹窗堆叠。 | | DSH_APPROVAL_POPUP_LOG | ~/.dsh/approval-popup.log | 调试日志路径(空字符串禁用日志记录)。 | 示例(更严格的策略——默认拒绝): $env:DSH_APPROVAL_TIMEOUT_MS = 20000 $env:DSH_APPROVAL_TIMEOUT_ACTION = "reject" 🗑 卸载 Remove-Item -Recurse -Force "$env:USERPROFILE\.dsh\plugins\approval-popup" then remove the approval-popup entry from %USERPROFILE%\.dsh\profiles\web\cordis.patch.yml and restart dsh 🔍 故障排查 - 没有出现对话框,但请求被自动批准 —— 插件正在生效,但 PowerShell 辅助程序无法显示 UI(例如以服务/无头会话运行)。检查 ~/.dsh/approval-popup.log;考虑设置 DSH_APPROVAL_TIMEOUT_ACTION=reject 或 DSH_APPROVAL_POPUP=0。 - 对话框文字乱码 —— .ps1 文件必须保持 带 BOM 的 UTF-8(否则 PowerShell 5.1 会按 ANSI 读取)。不要将它们重新保存为纯 UTF-8。 - 想要其他语言的对话框 —— UI 字符串位于 index.mjs(标题/正文)以及 approval-dialog.ps1 / turn-done.ps1(按钮标签)中。编辑后重新运行 install.ps1。 - 需要纯 toast 提示而非对话框 —— approval-toast.ps1 是一个使用 WScript.Shell.Popup 的独立辅助程序;可从任意脚本调用:powershell -File .\approval-toast.ps1 -Title "hi" -Text "hello"。 🔒 安全说明 - 该插件是一个受信任的本地辅助程序:对话框在超时后默认批准,这样长时间运行的代理在你离开时不会被阻塞。如果你倾向于失败即关闭,请设置 DSH_APPROVAL_TIMEOUT_ACTION=reject。 - Enter 热键是全局的(通过 RegisterHotKey 注册)——对话框打开期间,任何获得焦点的应用的 Enter 键都会批准。如果这让你感到意外,可用 DSH_APPROVAL_ENTER=0 禁用。 - 只从你信任的来源安装该插件:它可以决定 DSH 发出的每一个批准请求。 🧩 文件 | 文件 | 用途 | |---|---| | index.mjs | Cordis 插件入口:应答器 + 回合结束弹窗、配置、日志记录。 | | approval-dialog.ps1 | 是/否对话框(WinForms),带全局 Enter 热键和超时。 | | turn-done.ps1 | “任务已完成”通知对话框,自动关闭。 | | approval-toast.ps1 | 独立 toast 辅助程序(WScript.Shell.Popup),可选。 | | install.ps1 | 一键安装程序:复制文件 + 修补 cordis.patch.yml。 | 📄 许可证 MIT dsh-approval-popup(中文说明) ✨ 功能 - 原生是/否弹窗:置顶、居中,「是(Y) / 否(N)」两个按钮。 - 全局回车快捷键:弹窗打开期间,在桌面任意位置按 Enter 即批准(可关闭)。 - 超时自动处理:N 秒无操作后自动「同意」(默认)/「拒绝」/「退回 Web 界面」(allow / reject / next)。 - 任务完成提醒:一轮任务完成时弹出非决策提醒窗,自动关闭;带防抖,多轮同时结束时不会叠窗。 - 优先应答:注册为 prepend answerer,先于 Web 界面处理批准请求。 - 审计日志:每次请求与结果追加写入 ~/.dsh/approval-popup.log。 - 零依赖:纯 ESM + 两个 PowerShell 脚本,无需 npm 安装与构建。 📋 环境要求 | 要求 | 说明 | |---|---| | 系统 | 仅 Windows(基于 PowerShell/WinForms 弹窗),其他平台自动跳过。 | | PowerShell | 5.1+(Windows 自带)。 | | DSH | 任意近期版本(dsh web 或桌面应用),已在 0.1.0-rc.5 验证。 | | 配置档 | web profile(默认)。 | 🚀 安装 方式 A:一键安装(推荐) 克隆本仓库后,在仓库目录执行: powershell -ExecutionPolicy Bypass -File .\install.ps1 脚本会: 1. 把 index.mjs 和三个 .ps1 辅助脚本复制到 %USERPROFILE%\.dsh\plugins\approval-popup\。 2. 在 %USERPROFILE%\.dsh\profiles\web\cordis.patch.yml 中追加 insert 条目(幂等,重复执行不会产生重复条目)。 3. 输出后续步骤提示。 然后重启 dsh(退出并重新启动 dsh web / 桌面应用)即可生效。 方式 B:手动安装 1. 复制插件目录到 DSH 插件目录 Copy-Item -Recurse . "$env:USERPROFILE\.dsh\plugins\approval-popup" 2. 编辑 %USERPROFILE%\.dsh\profiles\web\cordis.patch.yml,添加: - insert: - id: approval-popup name: 'file:///C:/Users//.dsh/plugins/approval-popup/index.mjs' 3. 重启 dsh web ⚙️ 配置项 均为环境变量,插件启动时读取一次(在启动 dsh 前设置): | 变量 | 默认值 | 说明 | |---|---|---| | DSH_APPROVAL_POPUP | 1 | 设为 0 关闭整个插件。 | | DSH_APPROVAL_ENTER | 1 | 设为 0 关闭全局回车快捷键。 | | DSH_APPROVAL_TIMEOUT_MS | 15000 | 弹窗超时毫秒数;0 为一直等待。 | | DSH_APPROVAL_TIMEOUT_ACTION | allow | 超时行为:allow(自动同意)/ reject(自动拒绝)/ next(退回 Web 界面)。 | | DSH_TURN_DONE_POPUP | 1 | 设为 0 关闭任务完成弹窗。 | | DSH_TURN_DONE_TIMEOUT_MS | 30000 | 任务完成弹窗自动关闭毫秒数。 | | DSH_TURN_DONE_COOLDOWN_MS | 5000 | 两次提醒的最小间隔,防止多轮结束时叠窗。 | | DSH_APPROVAL_POPUP_LOG | ~/.dsh/approval-popup.log | 调试日志路径(空字符串关闭日志)。 | 示例(更严格策略,默认拒绝): $env:DSH_APPROVAL_TIMEOUT_MS = 20000 $env:DSH_APPROVAL_TIMEOUT_ACTION = "reject" 🗑 卸载 Remove-Item -Recurse -Force "$env:USERPROFILE\.dsh\plugins\approval-popup" 再从 %USERPROFILE%\.dsh\profiles\web\cordis.patch.yml 中删除 approval-popup 条目 最后重启 dsh 🔍 常见问题 - 不弹窗但请求被自动批准 — 插件已生效,但 PowerShell 无法弹出 UI(如以服务/无桌面会话运行)。查看 ~/.dsh/approval-popup.log;可改用 DSH_APPROVAL_TIMEOUT_ACTION=reject 或 DSH_APPROVAL_POPUP=0。 - 弹窗文字乱码 — .ps1 文件必须保持 UTF-8 带 BOM(PowerShell 5.1 默认按 ANSI 读取),不要另存为无 BOM 的 UTF-8。 - 想换语言 — UI 文案在 index.mjs(标题/正文)和 approval-dialog.ps1 / turn-done.ps1(按钮文字)中,改完重新执行 install.ps1。 - 只需要普通 toast — approval-toast.ps1 是独立的 WScript.Shell.Popup 助手:powershell -File .\approval-toast.ps1 -Title "hi" -Text "hello"。 🔒 安全说明 - 这是受信任的本地助手:超时默认自动同意,避免你离开时长时间任务被卡住。希望默认拒绝请设置 DSH_APPROVAL_TIMEOUT_ACTION=reject。 - Enter 是全局热键(RegisterHotKey),弹窗打开期间任何应用的 Enter 都会批准。介意的话设置 DSH_APPROVAL_ENTER=0。 - 只从可信来源安装:它能决定 DSH 的每一个批准请求。 🧩 文件 | 文件 | 作用 | |---|---| | index.mjs | Cordis 插件入口:批准应答器 + 任务完成弹窗、配置、日志。 | | approval-dialog.ps1 | 是/否弹窗(WinForms),支持全局回车与超时。 | | turn-done.ps1 | 「任务完成」提醒窗,自动关闭。 | | approval-toast.ps1 | 独立 toast 助手(WScript.Shell.Popup),可选。 | | install.ps1 | 一键安装:复制文件 + 写入 cordis.patch.yml。 | 📄 许可证 MIT
扫码进群