全部插件

DSH / BUNDLE / BUNDLES

dsh-hard-gate

v0.1.0yyfdfsyyf-source / dsh-hard-gate5dcc10fa96

可安装组合包组合包与其他模块社区 · Topic 自动分析

概览

dsh-hard-gate

Stricter permission review and a workspace sandbox that survives danger-full-access

README / ZH

插件文档

目录摘要

Stricter permission review and a workspace sandbox that survives danger-full-access

dsh.pub 核对固定版本的组合包契约、运行时事实与分发语义;完整 README 请查看源仓库。

在 GitHub 阅读完整 README

LIMITATIONS

已知限制

- **不是内核沙箱。** 闸门检查的是"命令字符串"和"文件工具参数"。`node build.js`、`python script.py`、`cargo run` 这类命令内部删了什么,闸门看不到——那部分只能靠 OS 沙箱。本插件补的是沙箱退化到 `danger-full-access` 之后的缺口,**不替代沙箱**。 - **PowerShell 解析是词法级的**,不是真正的语法树。别名、`Invoke-Expression`、Base64、拼接变量都可能隐藏真实目标;因此"无法静态解析的删除"一律**询问**而不是放行,但无法保证 100% 覆盖。 - `write` 的整文件规则依赖 `read` 结果附带的 `meta`(`offset` / `lines` / `totalLines`),并回退到页脚文本。若 DSH 改了这两处的形状,`unknownReadIsComplete`(默认 `true`)决定退化为"视为读完"还是"要求重读"。 - 闸门只判断"是否读到 EOF",不判断单行内容是否完整:`read` 会把超长单行截到 2000 字符,这类文件的"完整视图"仍可能缺行内内容。超长行文件请用 `edit`,不要整文件 `write`。 - 受保护路径是**绝对规则**:如果工作区本身位于受保护根内(临时目录除外),文件工具将无法写入该工作区。请用 `extraRoots` / `replaceProtectedPaths` 调整。 - `enforceWorkspaceOnly` 会拦住"合理地改工作区外文件"的场景,这是有意的默认值;需要时用 `extraRoots` 放行具体目录,而不是整条关掉。 - 变更预算是**按会话**统计;不同 session 各自计数。agent-team 的并发子代理若共享同一会话会被合并计数,否则各自计数。 - `tools.guard` 兜底使用**词法路径**(同步、无 I/O)。符号链接指向工作区外时由 `pre-execute` 的 realpath 检查负责;两层同时失效的概率很低,但不是零。 - Auto 审查器是**第二层判断**,不是沙箱;它只看见单个动作,无法知道用户是否授权了某个中风险操作,所以中风险一律转人工。它也不能替代硬闸的路径/备份规则。 - 内置 Auto 审查器会看过滤后的对话历史;本插件的审查器刻意不看。两者只能启用一个。 - `run_code` 外层不送审,内层 PTC 调用逐个送审;`run_code` 里直接 `fs.rm` 这类操作由硬闸的 `program-fs-mutation` 询问兜底。 - 首次 `install_bundle` 与任何 `plugin_manager` 调用本身可能触发审批,这是 DSH 的行为,与本插件无关。