runseal-labs/dsh-tool-runseal ↗★ 0
dsh-tool-runseal
RunSeal sandbox provider plugin for DeepSeek Harness (dsh) — OS-native policy enforcement for bash and subprocess execution via runseal rpc
安装
此插件尚未提供可验证的 bundle,或兼容性检查未通过。请先阅读仓库说明。 阅读完整 README ↗
说明文档
阅读完整 README ↗dsh-tool-runseal
English | 中文
一个独立的 DeepSeek Harness 插件:用 RunSeal 替换内置沙箱 —— 一个 OS 原生、策略驱动的执行环境,具备可强制执行的 filesystem / process / resource / network 边界,以及结构化审计事件和环境凭据擦除。
完全独立于仓库(out-of-tree):只依赖已发布的 dsh 基础包。注册为 ctx.sandbox,因此所有现有沙箱消费者(bash、jobs、fs)都会自动通过 RunSeal 执行受限命令。
功能
| 项 | 说明 |
|---|---|
ctx.sandbox provider | 继承 SandboxProvider;confine() 通过一个薄 Node wrapper 把 argv 包到 runseal rpc 下执行 |
| 策略映射 | dsh 的 read-only / workspace-write / danger-full-access → 同名的 RunSeal sandbox 级别 |
| 网络模式 | unmanaged(默认)、disabled、proxy(企业路由 + 凭据编辑) |
| 流式输出 | execution.stdout / execution.stderr RPC 事件转发到消费者的 stdio;退出码正确传播 |
| Fail closed | setup 缺失或后端不可用时,stderr 输出 runseal: 并以非零码退出,绝不静默无沙箱透传 |
| 审计 | 每次执行产生 execution.requested → policy.resolved → execution.finished 事件和 JSONL 审计记录 |
安装
前置:PATH 上有 runseal 二进制(或在 command 配置里给绝对路径)。Windows / macOS / Linux 的预构建二进制发布在 runseal releases 页面。
Windows 上受限模式(read-only、workspace-write)需要先执行一次沙箱 setup:
runseal setup windows-sandbox --cwd --elevate
然后把插件装进 dsh profile:
cd ~/.dsh/profiles/web && pnpm add dsh-tool-runseal
# 或从源码:
# git clone https://github.com/runseal-labs/dsh-tool-runseal && cd dsh-tool-runseal && pnpm install && pnpm build
挂载到 dsh
RunSeal 接管 ctx.sandbox。把 base bundle 的 sandbox-local 行禁用,插入本插件:
# cordis.patch.yml —— 用 RunSeal 替换内置本地沙箱
- id: sandbox-local
disabled: true
- insert:
- id: sandbox-runseal
name: 'dsh-tool-runseal'
inject: [sandbox]
config:
# runseal 可执行文件:绝对路径,或 PATH 上的名称
command: 'runseal'
# 网络模式:unmanaged(默认)、disabled 或 proxy
networkMode: 'unmanaged'
# 单次执行默认超时(毫秒)
timeoutMs: 600000