微软跨平台沙盒支持。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:omdsh-dev/sandbox-mxc
GitHub 来源的插件在安装时会在你的机器上执行构建脚本。请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
English | 中文
这是从 DSH feat-mxc 实现中拆出的独立 MXC sandbox provider 外部 bundle。两个交付形态放在同一个 Git 仓库中:
main包含来自 DSHfeat-mxc的 registry-backed provider。feat-mxc-vendor-sdk保留同一 provider,并把固定 SDK 与 native executor 放在vendor-sdk/,用于离线 packed-install rehearsal。
仓库结构
package.json # 独立 provider 包与 dsh.bundle 清单
cordis.patch.yml # 显式 sandbox-mxc profile 行
src/ # provider、invariant 和 Windows 环境 helper
tests/ # unit、parity 和发布路径测试
lib/ # 生成的安装产物
vendor-sdk/ # 仅 vendor 分支:SDK runtime 与 native executor
docs/ # provider 详细说明
legacy/ # 旧 DSH 快照的宿主接线补丁
包导出 @deepseek-ai/dsh-sandbox-mxc 及其 invariant companion。运行时 peer 是 DSH sandbox seam、subprocess environment helper、invariants 包和 Cordis。补丁版 @dsh-external/mxc-sdk 仍是运行时依赖:main 从 GitHub Packages 的 dsh release tag 解析,vendor 分支则替换为 file:./vendor-sdk。
Bundle 行为
Bundle 贡献一个显式且默认关闭的 opt-in 行:
- id: sandbox-mxc
name: '@deepseek-ai/dsh-sandbox-mxc'
disabled: true
config:
enabled: true
useResultEnvelope: true
只有在目标 DSH 宿主提供 prepare/settlement sandbox seam,且补丁版 MXC SDK 可用时,才应在 profile 中启用该行。Bundle 不会静默替换已有的 sandbox 行;对于需要宿主切换的 DSH 快照,legacy/mxc-host-integration.patch 保留了对应的宿主补丁。
Provider 始终 fail-closed。除非设置 enabled: true,否则 prepare() 拒绝执行;返回 launch 前必须通过精确 bundled executor 的功能验收。Provider 编译完整的 file-effect policy,保持 payload argv/cwd/environment 精确传递,结算 versioned result envelope,并释放每次运行的 capture 资源。
开发
完整 source-plane 检查需要 sibling DSH checkout。对最新拆出的实现,应让 external-plugins/deepseek-harness 指向兼容的 feat-mxc checkout;SDK 可以使用 registry,或切换到 vendor 分支,然后运行:
pnpm install
pnpm run typecheck
pnpm test
pnpm run prepare
pnpm pack --dry-run
prepare 直接从 src/ 构建,因此 Git 安装后的运行时不需要 DSH project references。平台、SDK 和 native executor 条件满足时,pnpm test:e2e 会运行 packed-install 与真实 executor rehearsal。
Model Experience
此 provider 不增加任何 model-visible prompt、tool 或 result 文本。它向 DSH bash 和 PTY 插件提供 sandbox capability;sandbox seam 负责 SANDBOX_UNAVAILABLE 错误及用户可见的 denial 语义。
已知限制
- Linux MXC 验收需要可用的 Bubblewrap/user namespace。
- macOS 和 Windows 验收依赖平台条件;Windows Tier 3 需要显式的宿主 DACL 权限。
- registry-backed 的
main分支需要 GitHub Packages 权限才能解析@dsh-external/mxc-sdk@dsh;离线 carrier 请使用feat-mxc-vendor-sdk。 - 旧 DSH 快照需要
legacy/mxc-host-integration.patch,因为 bundle 本身不能增加缺失的 sandbox prepare/settlement API。
链接
同类插件
hust-open-atom-club/oh-dsh★ 161
社区发行版:TUI、桌面端与 Web UI 统一体验,分层安装、一步到位。
Jayden-X-L/forkprobe★ 65
同一任务并行试跑多个技能,对比结果选出最优。
vlln/plugin-registry★ 33
插件生态基建:浏览器面板管理官方 repository 插件(0 patch)+ make-dsh-plugin 插件开发引导技能。
forrestchang/dsh-multica-runtime★ 28
让 dsh 运行时跑在 Multica 上。
DietCokewithSugar/dsh-user-experience★ 18
帮你发现项目中可能存在的用户体验问题:自动走查 React/TypeScript 源码,定位问题并给出具体优化建议。
omdsh-dev/dsh-plugin-check★ 17
插件健康检查:扫描清单协议/patch 格式/构建陷阱,零依赖只读。