xiaohj233/dsh-compat-shims--packages-sandbox-schema-shim ↗★ 0
dsh-sandbox-schema-shim
Compatibility shim that removes redundant sandbox escalation fields from model-facing shell and file tool schemas only in danger-full-access sessions.
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:xiaohj233/dsh-compat-shims#09af87746999677406b0a3946b91e94af27c48a5&path:packages/sandbox-schema-shim说明文档
阅读完整 README ↗dsh-sandbox-schema-shim(沙箱 schema 兼容垫片)
状态:Compatibility Shim。已在 DeepSeek Harness 0.1.0-rc.6 上测试。
本包仅在调用会话已经处于 danger-full-access(完全访问)模式时,从面向模型的 pwsh、bash、edit 与 write schema 中移除 sandbox_permissions 和 justification。
问题
在完全访问会话中,再次请求沙箱提权(escalation)是无效的:不存在严格更宽的模式。由于官方工具 schema 的构建独立于会话的有效沙箱模式(sandbox mode),一些模型调用仍然会包含提权字段。
行为
在 system-prompt/assemble 时,插件解析当前会话的沙箱策略。对于 danger-full-access,它以写时复制(copy-on-write)的方式移除这两个提权字段及其 required 条目。workspace-write 与 read-only 的组装结果原样返回。
非目标
本垫片不授予权限、不改变审批策略、不削弱沙箱、不拦截工具执行,也不会让受限会话变为完全访问。它只改变用户在已经选择 danger-full-access 之后展示给模型的 schema。
兼容性
已在 DeepSeek Harness 0.1.0-rc.6、Node.js ^22.19.0 || >=24 与 pnpm >=10 上测试。实现使用 system-prompt/assemble 事件与 sandboxPolicy.resolve 契约。
安装
dsh plugin --profile web add "github:xiaohj233/dsh-compat-shims#sandbox-schema-shim-v0.1.1&path:/packages/sandbox-schema-shim"
在 Windows 上,当 dsh plugin 把命令转发给 pnpm 时,cmd.exe 会拆分子目录片段中的 &;请直接使用 pnpm,并让下一次 dsh plugin 调用调和 bundle 层:
pnpm --dir %USERPROFILE%\.dsh\profiles\web add "github:xiaohj233/dsh-compat-shims#sandbox-schema-shim-v0.1.1&path:/packages/sandbox-schema-shim"
dsh plugin --profile web update
配置
无需任何设置。当前会话已有的沙箱策略决定 schema 是否被转换。
卸载
dsh plugin --profile web remove dsh-sandbox-schema-shim
移除本包即恢复官方的面向模型 schema。不修补任何上游文件。
安全
danger-full-access 可以读写工作区之外的文件,并在没有常规沙箱边界的情况下执行命令。本垫片不会让该模式更安全;它只在模式已经生效后阻止多余的提权参数。
测试
npm test
npm run check
npm pack --dry-run
测试覆盖编译后的 JSON Schema、扁平参数映射、写时复制行为与不变的输入。
局限性与上游状态
上游提供了完全访问预设与执行时的策略检查,但目前不会按有效模式过滤面向模型的 schema。 是相关的社区变通方案,作用于工具调用时;本包则作用于提示词/schema 组装时。