Parent: #32
问题概述 / Summary
在生命周期和 I/O 合同完成后,需要把 Docker Sandbox 接入 Run、Policy、Approval、Budget、Tool Gateway、CLI/HTTP/Desktop,并确保默认网络关闭、任何放宽都可解释。
当前基线 / Current baseline
- 四档 Run 权限、Approval、Policy、预算、Tool Gateway、事件流和 Desktop capability projection 已存在。
- Docker foundation 目前不授予任何产品执行权。
- Noop/Unavailable 路径必须继续作为明确的 fail-closed 状态。
范围 / Scope
- 定义
sandbox.readiness.v1 与产品准入判定。
- 默认
network=none;仅允许 Go 验证的目标/端口/协议 Scope。
- 将 CPU、内存、PIDs、磁盘、wall-clock、日志和工具调用纳入总预算。
- 通过同一应用服务接入 CLI、HTTP/OpenAPI 和 Desktop。
- 模型只能提出结构化 Tool 请求,不能提交 Docker flags、mount 或 daemon 地址。
- Activity 展示准备、启动、运行、取消、失败、清理和 Artifact 事实。
- readiness 失败时禁用入口并返回稳定原因与修复建议。
非目标 / Non-goals
- 不提供 privileged、host network、Docker socket mount 或任意宿主目录 mount。
- 不把 Full Access 等同于自动批准 Docker。
- 不启用 CTF 自动攻击工具链。
涉及目录 / Affected directories
internal/sandbox/
internal/application/
internal/domain/
internal/toolgateway/
internal/policy/
internal/approval/
internal/store/
internal/events/
internal/httpapi/
cmd/cyberagent/
cmd/cyberagent-desktop/
web/src/
docs/adr/
依赖 / Dependencies
- 依赖同父项的生命周期所有权与安全 I/O 两个子 Issue。
验收条件 / Acceptance criteria
安全边界 / Security boundaries
只有 Go 控制平面可以组合 image、mount、network、limits 与 command。前端选择、模型文本、Skill 或仓库配置只能缩小权限,不能扩大。
Parent: #32
问题概述 / Summary
在生命周期和 I/O 合同完成后,需要把 Docker Sandbox 接入 Run、Policy、Approval、Budget、Tool Gateway、CLI/HTTP/Desktop,并确保默认网络关闭、任何放宽都可解释。
当前基线 / Current baseline
范围 / Scope
sandbox.readiness.v1与产品准入判定。network=none;仅允许 Go 验证的目标/端口/协议 Scope。非目标 / Non-goals
涉及目录 / Affected directories
internal/sandbox/internal/application/internal/domain/internal/toolgateway/internal/policy/internal/approval/internal/store/internal/events/internal/httpapi/cmd/cyberagent/cmd/cyberagent-desktop/web/src/docs/adr/依赖 / Dependencies
验收条件 / Acceptance criteria
安全边界 / Security boundaries
只有 Go 控制平面可以组合 image、mount、network、limits 与 command。前端选择、模型文本、Skill 或仓库配置只能缩小权限,不能扩大。