用途
sandbox-stable 用于在 Cloudflare 上构建或维护基于稳定版 @cloudflare/sandbox 包的 Sandbox 应用。Sandbox 提供由 Workers 驱动的、运行在 Cloudflare Containers 上的隔离 Linux 环境。该技能本身被定位为一道“闸门”、一份“契约”和一张“检索地图”,而不是完整手册;它要求优先参考官方 Sandbox 文档和已安装的稳定版类型定义,而不是凭记忆编写代码。
主要能力与约束
该技能首先要求确认包线:在写代码前检查应用的 npm 依赖是否为默认的 @cloudflare/sandbox(而非 @next 或预览标签),容器镜像是否匹配稳定版镜像(而非 cloudflare/sandbox:next)。如果发现 @next 包或 next 镜像,应停止并改用 sandbox-next;如果用户希望迁移到 1.0 / @next,应停止并改用 sandbox-migrate-to-next,不应在稳定包上半套用预览 API。仅清理已弃用的稳定 API 时,可继续留在稳定线并使用 2026 弃用指南。技能明确禁止将稳定版 Worker 包与 @next 容器镜像混用(或反向混用)。
在契约层面,await sandbox.exec(command) 接收命令字符串,在命令完成时解析,并返回缓冲的 stdout / stderr / exitCode 及相关字段。长时间运行和流式工作应使用稳定版命令 API(startProcess、execStream 及相关辅助方法),而不是 @next 的单句柄模型;不应在稳定版上臆造 @next 的 output() 句柄。会话可跨命令保留工作目录和环境(默认会话 / enableDefaultSession、createSession)。交互式浏览器终端通常使用 sandbox.terminal(request) 和 session/xterm 辅助方法,而不是预览版 createTerminal。使用隧道或大型/二进制流式传输时优先使用 RPC 传输;HTTP/WebSocket 传输已弃用。文件、挂载、端口、隧道、备份、生命周期和解释器应查阅主文档获取签名,并信任已安装的稳定版类型。非机密配置放在 sandbox 环境变量中,实时凭据放在 Worker 中;进程调用外部 API 时使用出站处理器。使用生产预览主机名时,若采用相应 URL 模式,需要在自定义域名上配置通配符 DNS。
使用方式
技能给出一个最小示例:从 "@cloudflare/sandbox" 导入 getSandbox、proxyToSandbox、Sandbox,导出 Sandbox,然后通过 getSandbox(env.Sandbox, "user-123") 获取实例,调用 sandbox.exec('python3 -c "print(2 + 2)"'),并从 result.stdout、result.exitCode、result.success 读取结果。
技能还提供按任务检索文档的映射表,涵盖:入门与概览、命令 API 与流式输出、会话、生命周期、环境变量、文件、存储桶与挂载、备份、端口与预览 URL、隧道、代理与 Workers 连接、终端与 PTY、代码解释器、Git 工作流、出站流量与机密、WebSocket、Docker-in-Docker、生产部署、容器概念、指南索引、API 参考、2026 弃用指南、自部署桥接、GitHub 示例,以及 1.0 预览与迁移相关技能。
弃用 API 清理时,技能建议先更新包和匹配镜像,再按指南操作,并给出典型搜索命令:rg 'SANDBOX_TRANSPORT|transport:|exposePort(|enableDefaultSession|execStream(|readFileStream|writeFileStream'。该路径不会切换到 @next。
适用场景
适用于需要维护或扩展现有稳定版 Cloudflare Sandbox 应用的开发者,尤其是涉及命令执行、会话状态、文件操作、端口暴露、隧道、浏览器终端、代码解释器、Git 工作流、机密与出站流量、Docker-in-Docker 和生产部署等任务时。也适用于需要判断当前项目应留在稳定线还是迁移到 @next 的场景。
限制
该技能不是完整手册,具体 API 签名需查阅官方文档和已安装类型。新项目推荐使用 @cloudflare/sandbox@next 配合 sandbox-next,迁移应通过 sandbox-migrate-to-next,且不应在用户未要求时强制迁移。生产预览主机名需要自定义域名上的通配符 DNS。HTTP/WebSocket 传输已弃用。关于收费、价格、平台支持范围等具体信息,资料中暂未提供。