dsh-auto-review
中文 | English
dsh-auto-review 为 DeepSeek Harness 增加 auto-review 权限预设。它对可证明的工作区只读操作直接放行,并让独立 Guardian 模型审查 Shell、网络、MCP、沙箱升级和其他扩展审批。
这是插件层实现,不修改 DSH 内核,也不声称与其他产品的原生审批协议完全等价。
核心安全承诺
- 所有批准最多返回一次性的
allowed-once,不会建立永久授权。 critical风险永不自动批准;high风险需要直接用户对精确目标给出充分授权。- 不明确的 call、工具不匹配、证据超限、Reviewer 故障、非法输出和无法还原精确动作的通用审批都会 fail closed。
- 启用审计时,任何批准都必须先成功追加并
fsync最终 JSONL 记录。 - 人工覆盖复用 DSH 原生“拒绝 / 允许一次”面板,不再显示包含完整参数的大段问题 UI。
- Chat 和 Trajectory 只显示受限摘要与枚举状态,不保存原始参数、证据或 Guardian 自由文本理由。
详细模型见安全与审计。
安装
npm 包名为 dsh-auto-review-plugin;插件运行时身份仍为 dsh-auto-review。
cd dsh-auto-review
pnpm install
pnpm build
dsh plugin --profile web add "$PWD"
dsh --profile web --dump-config
使用 pnpm 11 时,如果安装报告 ERR_PNPM_IGNORED_BUILDS 并列出 @deepseek-ai/dsh-subprocess-local、koffi,这是依赖构建脚本审批机制,不是 lockfile 损坏。审核依赖来源后运行:
pnpm approve-builds @deepseek-ai/dsh-subprocess-local koffi
pnpm rebuild @deepseek-ai/dsh-subprocess-local koffi
不要在未审核所有候选依赖时使用 pnpm approve-builds --all。详细说明见开发文档。
卸载:
dsh plugin --profile web remove dsh-auto-review
Bundle 保留 DSH 自带的 read-only、workspace-write、danger-full-access,并增加 auto-review。Cordis patch 会替换 permission.config.presets 整张表;已有自定义 preset 时,请在后续 Profile patch 中重新声明,并始终用 --dump-config 检查组合结果。
快速配置
可在 设置 → 插件 → Auto Review 中配置。设置卡默认折叠;展开后按审查模型、审查范围、证据预算、人工审批、Trajectory 和审计分组。保存仅写实际变化的字段,Reviewer route 原子更新,失败时回滚。
也可使用环境变量:
export DSH_AUTO_REVIEW_PROVIDER=deepseek
export DSH_AUTO_REVIEW_MODEL=deepseek-chat
export DSH_AUTO_REVIEW_MANUAL_OVERRIDE=denied-and-unavailable
export DSH_AUTO_REVIEW_AUDIT_DETAIL=summary
Provider 与 Model 必须同时设置或同时留空。完整字段、默认值和范围见配置参考。
审查体验
- 明确、安全且位于 workspace 内的只读操作可直接执行。
- 其他目标进入 Guardian Review;默认只显示在 Chat,可通过
trajectoryEnabled将其作为 standalone/orphan tool 加入 Trajectory。 - Guardian 拒绝或不可用且策略允许时,DSH 显示原生单次审批面板。
- Chat 中保留一个默认折叠的 Guardian Review 卡片;展开后可查看风险、授权、人工审批、审计和耗时等摘要。
- JSONL 每次审查仍只写一条最终记录。
详见审查流程与 Web UI。
文档
开发
要求 Node ^22.19.0 || >=24。源码、测试和构建配置均使用 TypeScript;生成的 JavaScript 仅位于被 Git 忽略的 lib/。
pnpm install
pnpm verify
更多命令、架构和发布说明见开发文档。
许可证
MIT
No comments yet. Be the first to write one.