feat(core): implement SandboxManager interface and config schema (#21774)

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
This commit is contained in:
Gal Zahavi
2026-03-11 14:42:50 -07:00
committed by GitHub
parent 926dddf0bf
commit e3b3b71c14
15 changed files with 1074 additions and 214 deletions
+34 -3
View File
@@ -1299,7 +1299,7 @@
"title": "Sandbox",
"description": "Sandbox execution environment. Set to a boolean to enable or disable the sandbox, provide a string path to a sandbox profile, or specify an explicit sandbox command (e.g., \"docker\", \"podman\", \"lxc\").",
"markdownDescription": "Sandbox execution environment. Set to a boolean to enable or disable the sandbox, provide a string path to a sandbox profile, or specify an explicit sandbox command (e.g., \"docker\", \"podman\", \"lxc\").\n\n- Category: `Tools`\n- Requires restart: `yes`",
"$ref": "#/$defs/BooleanOrString"
"$ref": "#/$defs/BooleanOrStringOrObject"
},
"shell": {
"title": "Shell",
@@ -2431,14 +2431,45 @@
}
]
},
"BooleanOrString": {
"description": "Accepts either a boolean flag or a string command name.",
"BooleanOrStringOrObject": {
"description": "Accepts either a boolean flag, a string command name, or a configuration object.",
"anyOf": [
{
"type": "boolean"
},
{
"type": "string"
},
{
"type": "object",
"description": "Sandbox configuration object.",
"additionalProperties": false,
"properties": {
"enabled": {
"type": "boolean",
"description": "Enables or disables the sandbox."
},
"command": {
"type": "string",
"description": "The sandbox command to use (docker, podman, sandbox-exec, runsc, lxc).",
"enum": ["docker", "podman", "sandbox-exec", "runsc", "lxc"]
},
"image": {
"type": "string",
"description": "The sandbox image to use."
},
"allowedPaths": {
"type": "array",
"description": "A list of absolute host paths that should be accessible within the sandbox.",
"items": {
"type": "string"
}
},
"networkAccess": {
"type": "boolean",
"description": "Whether the sandbox should have internet access."
}
}
}
]
},