RunSeal 沙箱插件:为 DeepSeek Harness 提供原生策略执行边界

前言

DeepSeek Harness(dsh)的内置沙箱与进程管理能力,在复杂场景下可能无法满足精细化的文件策略与审计需求。如果需要更强的执行边界、结构化审计事件以及环境凭证清理能力,可以在 dsh 中替换为 RunSeal 提供的沙箱服务。

插件定位

runseal-labs/dsh-tool-runseal 是一个独立的 DeepSeek Harness 插件。它将 dsh 的内置沙箱替换为 RunSeal,在 Windows、macOS 和 Linux 上提供基于 OS 原生的策略执行边界,支持文件系统策略、进程清理、结构化审计事件与环境凭证清理。插件版本 0.2.6 内置 RunSeal 0.2.3,与 dsh 0.2.1-rc.2 的发布包兼容。

提供的能力

  • ctx.sandbox 提供者:继承自 SandboxProvider,通过 confine() 方法将命令行参数封装为 RunSeal RPC 调用。
  • ctx.subprocess 提供者:管理 RPC 执行、输入流传输、输出收集与清理完成,支持取消操作。
  • 策略映射:dsh 的 read-only 与 workspace-write 映射到 RunSeal 的对应沙箱级别;调用者工作目录与可写工作区根目录独立解析。
  • 网络模式:unmanaged(默认,不隔离网络)、disabled(禁用网络)、proxy(受认证代理管理,目前不实现基于路由的企业允许列表)。
  • 流式输出:通过 execution.stdout 与 execution.stderr RPC 事件将输出转发到消费者标准输入输出,退出码一并传播。
  • 容错与审计:安装缺失或后端不可用时拒绝调用;受限子进程失败暴露 SANDBOX_UNAVAILABLE;插件会打印 runseal: <reason> 并返回非零退出码。执行生命周期事件与 JSONL 记录会在 execution.finished 或 execution.failed 时生成。

安装

使用 npm 仓库安装插件包:

dsh plugin --profile web add dsh-tool-runseal@0.2.6

安装后重启 dsh,在 Web 界面打开 Plugins → RunSeal 进行配置。插件 0.2.6 会在 npm 的 postinstall 阶段下载 RunSeal 0.2.3,根据当前操作系统与架构选择对应的二进制,验证 SHA-256 校验和,并将可执行文件与 Windows 辅助工具安装到包内。

支持的平台与架构:Windows、macOS、Linux(x64 或 arm64)。安装需要访问 GitHub Releases 和启用的 npm 生命周期脚本;如果包管理器阻止脚本,允许该包的安装脚本或使用 npm rebuild dsh-tool-runseal 启用脚本。

配置

在 dsh 的会话访问模式中选择 read-only、workspace-write 或 full access。插件继承该策略,无需单独启用沙箱开关。

字段 默认值 说明
command 空(自动) 自定义可执行文件路径或 PATH 名称。空时优先使用 RUNSEAL_BINARY,否则使用包内下载的二进制。
subprocess true 注册 RPC 管理的子进程提供者。仅在纯沙箱集成场景下设为 false;旧版 Windows 杀死范围限制会保留。
args [] 在 rpc 子命令前传递的额外参数(不经过 shell 展开)。
networkMode unmanaged 网络策略:unmanaged、disabled 或 proxy。
maxStdinBytes 65536 RunsealEngine.execute() 缓冲输入的最大字节数;包装器的流式输入独立管理。
timeoutMs 600000 受限调用的超时时间。普通子进程调用使用调用方的取消/截止时间。
autoSetup true 仅用于包装器的历史集成:请求 Windows 沙箱设置,并在首次拒绝后重试一次。子进程提供者需要在运行前完成设置,不会触发 UAC。

使用方式

  • 受限调用:通过 confine(argv, policy, signal) 返回 Promise<ConfinedArgv>,参数结构为 [node, wrapper.cjs, {command, args, argv, cwd, policy, network, timeoutMs}]。
  • 子进程提供者:识别该插件包装器参数后,直接将原始命令发送给 RunSeal,不启动包装器。普通子进程调用使用 danger-full-access,保持原有无限制语义。
  • 工作区根目录:调用者工作目录与可写工作区根目录分别解析,避免策略冲突。
  • 可执行名称解析:在准入前基于执行的有效 PATH 与工作目录解析子进程名称;参数不经过 shell 展开。独立包装器使用相同的解析器。
  • Shell 内建:Shell 内建仍需显式指定 shell。

适用场景与注意事项

  • 适合需要细粒度文件策略、结构化审计与凭证清理的 dsh 应用场景。
  • 插件以当前 dsh 进程的权限运行,需要确保环境与配置符合安全策略。
  • 在 Windows 受限模式下(read-only 或 workspace-write)首次使用前,需执行一次沙箱设置:
  runseal setup windows-sandbox --cwd <workspace> --elevate
  • 安装前建议检查源码与许可证(MIT),确保符合使用场景要求。
  • 插件版本 0.2.6 内置 RunSeal 0.2.3;如果需要离线安装或自定义可执行文件,可在安装时设置 RUNSEAL_SKIP_DOWNLOAD=1 并配置 command,或设置 RUNSEAL_BINARY。

生态背景

DeepSeek Harness 遵循「一切皆插件」的理念,该插件通过独立仓库维护,与 DeepSeek 或幻方无官方从属关系。

总结

runseal-labs/dsh-tool-runseal 在 dsh 中引入 RunSeal 原生沙箱与进程管理能力,提供文件策略、网络控制、审计事件与凭证清理。通过官方安装命令即可启用,并在 Web 界面进行细粒度配置。

目录页:https://www.skillhub.cn/plugins/runseal-labs/dsh-tool-runseal
GitHub:https://github.com/runseal-labs/dsh-tool-runseal

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜