Nebutra/sandbox-runtime

GitHub: Nebutra/sandbox-runtime

面向 AI 工具执行的统一沙箱运行时,提供基于路由规则的本地与远程 provider 调度、健康检查及调试诊断能力。

Stars: 0 | Forks: 0

# @nebutra/sandbox-runtime [@nebutra/sandbox-runtime](https://www.npmjs.com/package/%40nebutra%2Fsandbox-runtime) 的公开镜像,源自 [Nebutra/Nebutra-Sailor](https://github.com/Nebutra/Nebutra-Sailor/tree/main/packages/ai/sandbox-runtime)。 此仓库由 Nebutra Sailor monorepo 生成。包的发布版本是从 monorepo 中切割出来,并镜像到此处,以便于发现、独立克隆和接收贡献。 - 权威源:`Nebutra/Nebutra-Sailor` 中的 `packages/ai/sandbox-runtime` - 包仓库:npm 和 GitHub Packages - 贡献:在此处提交 issue 或 PR;维护者会将接受的更改移植回 monorepo 源包中 用于本地和远程执行 provider 的统一沙箱运行时路由器。 该包定义了 Nebutra 执行包使用的领域无关(domain-neutral)沙箱契约。它将请求路由到已配置的 provider,暴露 provider 的健康检查,并记录用于执行故障排除的调试事件。 ## 安装 ``` pnpm add @nebutra/sandbox-runtime ``` ## 使用说明 ``` import { SandboxRuntime } from "@nebutra/sandbox-runtime"; const runtime = SandboxRuntime.fromConfig(); const result = await runtime.exec({ cmd: "echo sandbox ok", tenantId: "org_123", threadId: "thread_123", hints: { networkAccess: false, needsGpu: false, }, }); ``` ## Provider 默认 provider: | Provider | 行为 | | --- | --- | | `local_mac` | 调用位于 `SANDBOX_RUNTIME_LOCAL_URL` 或 `http://127.0.0.1:8020/api/v1/sandbox/exec` 的本地沙箱服务 | | `remote_code` | 由 `SANDBOX_REMOTE_CODE_TOKEN` 控制的占位符 provider | | `remote_gpu` | 由 `SANDBOX_REMOTE_GPU_TOKEN` 控制的占位符 provider | | `remote_workspace` | 由 `SANDBOX_REMOTE_WORKSPACE_TOKEN` 控制的占位符 provider | 在宿主应用程序配置 provider SDK 之前,远程占位符会故意抛出异常。 ## 路由 ``` const runtime = SandboxRuntime.fromConfig({ routes: [ { when: { needsGpu: true }, provider: "remote_gpu" }, { when: { durationS: 30 }, provider: "remote_code" }, { when: { needsGpu: false }, provider: "local_mac" }, ], }); const plan = runtime.plan({ cmd: "pnpm test", hints: { needsGpu: false } }); ``` 第一个匹配的静态路由生效。如果没有路由匹配,运行时会在 `local_mac` 已配置的情况下回退到它。 ## API | 导出 | 描述 | | --- | --- | | `SandboxRuntime` | Provider 注册表、规划器、执行器和诊断器(doctor) | | `createLocalMacSandbox()` | 本地沙箱服务适配器 | | `createRemotePlaceholder(id, envKey)` | 用于远程 provider 的显式占位符 | | `sandboxDebugPath()` | 调试路径助手 | | `readSandboxDebug(limit)` | 读取沙箱调试事件 | | `ExecRequest` / `ExecResponse` | 执行请求和响应契约 | | `Sandbox` / `SandboxHealth` | Provider 接口与健康状态结构 | ## 许可证 MIT
标签:AI工具执行, API网关, GNU通用公共许可证, MITM代理, Node.js, 暗色界面, 沙箱环境, 自动化攻击, 运行时引擎