合并配置和请求参数 — 源码 sandbox.rs:86-106 优先级: 模型请求参数 > 用户配置 > 默认值 这个设计让模型可以在需要时请求不同的沙箱级别。 比如模型需要安装一个 npm 包,它可以请求 network_isolation=False, 但这个请求会经过权限系统审批。
(
config: SandboxConfig,
# 以下参数来自模型的 BashCommandInput
enabled_override: Optional[bool] = None,
namespace_override: Optional[bool] = None,
network_override: Optional[bool] = None,
filesystem_mode_override: Optional[FilesystemIsolationMode] = None,
allowed_mounts_override: Optional[List[str]] = None,
)
| 119 | |
| 120 | |
| 121 | def resolve_request( |
| 122 | config: SandboxConfig, |
| 123 | # 以下参数来自模型的 BashCommandInput |
| 124 | enabled_override: Optional[bool] = None, |
| 125 | namespace_override: Optional[bool] = None, |
| 126 | network_override: Optional[bool] = None, |
| 127 | filesystem_mode_override: Optional[FilesystemIsolationMode] = None, |
| 128 | allowed_mounts_override: Optional[List[str]] = None, |
| 129 | ) -> SandboxRequest: |
| 130 | """合并配置和请求参数 — 源码 sandbox.rs:86-106 |
| 131 | |
| 132 | 优先级: 模型请求参数 > 用户配置 > 默认值 |
| 133 | |
| 134 | 这个设计让模型可以在需要时请求不同的沙箱级别。 |
| 135 | 比如模型需要安装一个 npm 包,它可以请求 network_isolation=False, |
| 136 | 但这个请求会经过权限系统审批。 |
| 137 | """ |
| 138 | return SandboxRequest( |
| 139 | enabled=enabled_override if enabled_override is not None |
| 140 | else (config.enabled if config.enabled is not None else True), |
| 141 | namespace_restrictions=namespace_override if namespace_override is not None |
| 142 | else (config.namespace_restrictions if config.namespace_restrictions is not None else True), |
| 143 | network_isolation=network_override if network_override is not None |
| 144 | else (config.network_isolation if config.network_isolation is not None else False), |
| 145 | filesystem_mode=filesystem_mode_override if filesystem_mode_override is not None |
| 146 | else (config.filesystem_mode if config.filesystem_mode is not None |
| 147 | else FilesystemIsolationMode.WORKSPACE_ONLY), |
| 148 | allowed_mounts=allowed_mounts_override if allowed_mounts_override is not None |
| 149 | else config.allowed_mounts, |
| 150 | ) |
| 151 | |
| 152 | |
| 153 | def detect_container_environment() -> ContainerEnvironment: |
no test coverage detected