用大白话解释待审批操作的风险与影响范围
29.6/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/26 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add marksimZ/dsh-approval-guide该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
DSH 插件:用保守、通俗的话说明待审批操作会做什么,不改动原生审批界面。
README
由 DeepSeek 最新模型翻译生成dsh-approval-guide
一个 DeepSeek Harness 插件,用大白话解释待处理的审批请求——不碰原生审批界面。
composer area
┌───────────────────────────────────────────────────────────────┐
│ ⚠ 高风险 递归或强制删除文件 · 工作区 [详情] │ ← this plugin ├───────────────────────────────────────────────────────────────┤ │ … the native approval card (command, Allow, Deny) stays … │ ← untouched └───────────────────────────────────────────────────────────────┘
展开这一行,会多出 判定依据(命令 / 路径)、影响范围(工作区 / 工作区之外 / 系统目录 / 网络)、建议,以及智能体自己给出的 原始原因。它从不提供 Allow/Deny:决定权留在该留的地方。
展开完整文档(README 剩余 1 节)
dsh-approval-guide
一个 DeepSeek Harness 插件,用大白话解释待处理的审批请求——不碰原生审批界面。
composer area
┌───────────────────────────────────────────────────────────────┐
│ ⚠ 高风险 递归或强制删除文件 · 工作区 [详情] │ ← this plugin ├───────────────────────────────────────────────────────────────┤ │ … the native approval card (command, Allow, Deny) stays … │ ← untouched └───────────────────────────────────────────────────────────────┘
展开这一行,会多出 判定依据(命令 / 路径)、影响范围(工作区 / 工作区之外 / 系统目录 / 网络)、建议,以及智能体自己给出的 原始原因。它从不提供 Allow/Deny:决定权留在该留的地方。
为什么不放进审批卡片里
conversation.approval.detail 是唯一的席位,带 replaceRisk: "shadows-shipped-ui";当前占用它的是内置的 ApprovalCommand。注册进去会替换原生卡片(连同按钮),而不是在它旁边追加。所以这个插件渲染到 conversation.input.dock,把原生卡片当作只读。
怎么分类
一张保守的词法表——从不猜测语义,匹配不上的一律是 无法判断风险,请人工确认,绝不判成「安全」。
| 级别 | 信号(示例) | 含义 |
| 高风险 | rm -rf、git clean -fdx、git reset --hard、git push --force、mkfs/dd、sudo、shutdown、taskkill /f、curl … \| sh、Drop Table、npm publish、docker system prune、chmod -R/777、改系统注册表 | 不可逆、提权或远程执行 |
| 注意 | 安装包、git commit/push、docker run/build、下载、mv/cp、sed -i、写文件类工具 | 改动文件、依赖或 Git 历史 |
| 只读 | ls、cat、grep、git status、node -v、read/glob/grep 工具 | 只做查看 |
| 无法判断 | 匹配不上的任何东西 | 问人——绝不假设安全 |
额外规则:
- 范围:路径或命令碰到系统位置,或工作区之外的绝对路径,升级为高风险,并标注 工作区之外 / 系统目录;
- 网络:web_fetch / web_search / curl / wget 标上 网络 范围;
- 写文件类工具(write、edit、str_replace_editor 等)在工作区内算中风险,在工作区外算高风险;
- 脱敏摘要:文件内容、补丁和提示词在 Host 上过线之前,先替换成 <N chars>;预览长度受 previewChars 限制。
这张表放在 src/client.js 里,叫 HIGH_RULES / MEDIUM_RULES / LOW_RULES;加一条规则就是加一个对象。scripts/client-spec.mjs 把整张表和「未知仍是未知」这条规则钉死。
环境要求
- 一个组装了 webServer 和 sessionProjections 的 DSH 客户端(Desktop 客户端和 dsh web)。
- 只有测试/安装脚本需要 Node 20+;插件没有构建步骤。
安装
sh
git clone https://github.com/marksimZ/dsh-approval-guide.git dsh-approval-guide
dsh web --patch /absolute/path/to/dsh-approval-guide/cordis.patch.yml
or permanently:
node scripts/install.mjs --dry-run
node scripts/install.mjs
node scripts/verify-deployed.mjs --url http://127.0.0.1:<GUI 端口>
配置
| 键 | 默认值 | 含义 |
| widgets.explainer | true | 注册说明行 |
| minLevel | medium | 显示的最低级别:high / medium / low(unknown 始终显示) |
| showLow | false | 同时显示只读审批 |
| previewChars | 400 | 脱敏后参数预览的最大字符数 |
| extraHighRisk | [] | 额外的高风险正则表达式(比如你自己定义的危险命令) |
架构 text Host half (src/index.ts)
ctx.on('session/event') → tool/call cache, approval/asked, approval/decided
ctx.sessionProjections.stateOf('workingDirectory') → scope for the digest
GET /dsh-approval-guide/pending?session=… → pending list with sanitized digests globalThis.__DSH_APPROVAL_GUIDE_CONFIG__ → display switches + custom rules
Browser half (src/client.js)
conversation.input.dock → poll pending, classify, render one explanation line
为什么需要 Host half? 审批载荷和关联的工具调用参数都在 Host 的会话日志里,浏览器只收到摘要。分类逻辑本身是纯函数,跑在浏览器里,所以这份代码随组件一起分发。
测试 sh
npm test # classifier spec + bundle smoke + theme tokens + visual tokens
npm run test:host # approval lifecycle over the real pending route
npm run verify # read-only probe of a running GUI
| 脚本 | 锁定内容 |
| scripts/client-spec.mjs | 每个规则族、工具名映射、作用域升级、unknown 默认值、显示阈值、最差待审批项的选择 |
| scripts/client-smoke.mjs | 打包契约、dock 注册、说明开关 |
| scripts/host-smoke.mjs | 待审批生命周期、摘要提取、载荷脱敏、调用晚到时刷新摘要、路由边界 |
| scripts/theme-tokens.mjs | 每个 var(--dsw-*) 都由随包主题声明 |
| scripts/visual-tokens.mjs | 不使用原始颜色,圆角与字号取自主题刻度,不使用无限动画 |
| scripts/verify-deployed.mjs | 运行中的 GUI 能提供打包文件和待审批路由 |
限制
- 只看字面,不看语义。 混淆过的命令(base64 -d | sh、生成的脚本)会落到 无法判断;这是有意为之的保守行为。
- 只看审批点名的内容。 风险根据被批准的工具调用来判断,不看它背后的整体计划。
- 按设计不提供决策按钮。 允许/拒绝由原生卡片负责,这个插件只做解释。
- 插件加载后才开始解释。 如果 Host half 加载前已有审批在等待 mounted 没有缓存的工具调用,所以这一行可能显示 无法匹配已知规则,直到看到该调用为止。
许可证
MIT — 见 LICENSE。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
marksimZ/dsh-approval-guide
用大白话解释待审批操作的风险与影响范围
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,804已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,362已汉化DSH
71.4
终端编码代理esengine/DeepSeek-Reasonix
· 指南 · ACP · 扩展开发 · 规格 · 官方网站 · Discord · QQ
★ 36,076已汉化DSH
71.2
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 151,814已汉化DSH
71.1
这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。