{ "$schema": "http://json-schema.org/draft-07/schema#", "definitions": { "AbsolutePathBuf": { "description": "A path that is guaranteed to be absolute and normalized (though it is not guaranteed to be canonicalized or exist on the filesystem).\n\nIMPORTANT: When deserializing an `AbsolutePathBuf`, a base path must be set using [AbsolutePathBufGuard::new]. If no base path is set, the deserialization will fail unless the path being deserialized is already absolute.", "type": "string" }, "CommandExecTerminalSize": { "description": "PTY size in character cells for `command/exec` PTY sessions.", "properties": { "cols": { "description": "Terminal width in character cells.", "format": "uint16", "minimum": 0.0, "type": "integer" }, "rows": { "description": "Terminal height in character cells.", "format": "uint16", "minimum": 0.0, "type": "integer" } }, "required": [ "cols", "rows" ], "type": "object" }, "FileSystemAccessMode": { "enum": [ "read", "write", "none" ], "type": "string" }, "FileSystemPath": { "oneOf": [ { "properties": { "path": { "$ref": "#/definitions/AbsolutePathBuf" }, "type": { "enum": [ "path" ], "title": "PathFileSystemPathType", "type": "string" } }, "required": [ "path", "type" ], "title": "PathFileSystemPath", "type": "object" }, { "properties": { "pattern": { "type": "string" }, "type": { "enum": [ "glob_pattern" ], "title": "GlobPatternFileSystemPathType", "type": "string" } }, "required": [ "pattern", "type" ], "title": "GlobPatternFileSystemPath", "type": "object" }, { "properties": { "type": { "enum": [ "special" ], "title": "SpecialFileSystemPathType", "type": "string" }, "value": { "$ref": "#/definitions/FileSystemSpecialPath" } }, "required": [ "type", "value" ], "title": "SpecialFileSystemPath", "type": "object" } ] }, "FileSystemSandboxEntry": { "properties": { "access": { "$ref": "#/definitions/FileSystemAccessMode" }, "path": { "$ref": "#/definitions/FileSystemPath" } }, "required": [ "access", "path" ], "type": "object" }, "FileSystemSpecialPath": { "oneOf": [ { "properties": { "kind": { "enum": [ "root" ], "type": "string" } }, "required": [ "kind" ], "title": "RootFileSystemSpecialPath", "type": "object" }, { "properties": { "kind": { "enum": [ "minimal" ], "type": "string" } }, "required": [ "kind" ], "title": "MinimalFileSystemSpecialPath", "type": "object" }, { "properties": { "kind": { "enum": [ "current_working_directory" ], "type": "string" } }, "required": [ "kind" ], "title": "CurrentWorkingDirectoryFileSystemSpecialPath", "type": "object" }, { "properties": { "kind": { "enum": [ "project_roots" ], "type": "string" }, "subpath": { "type": [ "string", "null" ] } }, "required": [ "kind" ], "title": "KindFileSystemSpecialPath", "type": "object" }, { "properties": { "kind": { "enum": [ "tmpdir" ], "type": "string" } }, "required": [ "kind" ], "title": "TmpdirFileSystemSpecialPath", "type": "object" }, { "properties": { "kind": { "enum": [ "slash_tmp" ], "type": "string" } }, "required": [ "kind" ], "title": "SlashTmpFileSystemSpecialPath", "type": "object" }, { "properties": { "kind": { "enum": [ "unknown" ], "type": "string" }, "path": { "type": "string" }, "subpath": { "type": [ "string", "null" ] } }, "required": [ "kind", "path" ], "type": "object" } ] }, "NetworkAccess": { "enum": [ "restricted", "enabled" ], "type": "string" }, "PermissionProfile": { "properties": { "fileSystem": { "anyOf": [ { "$ref": "#/definitions/PermissionProfileFileSystemPermissions" }, { "type": "null" } ] }, "network": { "anyOf": [ { "$ref": "#/definitions/PermissionProfileNetworkPermissions" }, { "type": "null" } ] } }, "type": "object" }, "PermissionProfileFileSystemPermissions": { "properties": { "entries": { "items": { "$ref": "#/definitions/FileSystemSandboxEntry" }, "type": "array" }, "globScanMaxDepth": { "format": "uint", "minimum": 1.0, "type": [ "integer", "null" ] } }, "required": [ "entries" ], "type": "object" }, "PermissionProfileNetworkPermissions": { "properties": { "enabled": { "type": [ "boolean", "null" ] } }, "type": "object" }, "ReadOnlyAccess": { "oneOf": [ { "properties": { "includePlatformDefaults": { "default": true, "type": "boolean" }, "readableRoots": { "default": [], "items": { "$ref": "#/definitions/AbsolutePathBuf" }, "type": "array" }, "type": { "enum": [ "restricted" ], "title": "RestrictedReadOnlyAccessType", "type": "string" } }, "required": [ "type" ], "title": "RestrictedReadOnlyAccess", "type": "object" }, { "properties": { "type": { "enum": [ "fullAccess" ], "title": "FullAccessReadOnlyAccessType", "type": "string" } }, "required": [ "type" ], "title": "FullAccessReadOnlyAccess", "type": "object" } ] }, "SandboxPolicy": { "oneOf": [ { "properties": { "type": { "enum": [ "dangerFullAccess" ], "title": "DangerFullAccessSandboxPolicyType", "type": "string" } }, "required": [ "type" ], "title": "DangerFullAccessSandboxPolicy", "type": "object" }, { "properties": { "access": { "allOf": [ { "$ref": "#/definitions/ReadOnlyAccess" } ], "default": { "type": "fullAccess" } }, "networkAccess": { "default": false, "type": "boolean" }, "type": { "enum": [ "readOnly" ], "title": "ReadOnlySandboxPolicyType", "type": "string" } }, "required": [ "type" ], "title": "ReadOnlySandboxPolicy", "type": "object" }, { "properties": { "networkAccess": { "allOf": [ { "$ref": "#/definitions/NetworkAccess" } ], "default": "restricted" }, "type": { "enum": [ "externalSandbox" ], "title": "ExternalSandboxSandboxPolicyType", "type": "string" } }, "required": [ "type" ], "title": "ExternalSandboxSandboxPolicy", "type": "object" }, { "properties": { "excludeSlashTmp": { "default": false, "type": "boolean" }, "excludeTmpdirEnvVar": { "default": false, "type": "boolean" }, "networkAccess": { "default": false, "type": "boolean" }, "readOnlyAccess": { "allOf": [ { "$ref": "#/definitions/ReadOnlyAccess" } ], "default": { "type": "fullAccess" } }, "type": { "enum": [ "workspaceWrite" ], "title": "WorkspaceWriteSandboxPolicyType", "type": "string" }, "writableRoots": { "default": [], "items": { "$ref": "#/definitions/AbsolutePathBuf" }, "type": "array" } }, "required": [ "type" ], "title": "WorkspaceWriteSandboxPolicy", "type": "object" } ] } }, "description": "Run a standalone command (argv vector) in the server sandbox without creating a thread or turn.\n\nThe final `command/exec` response is deferred until the process exits and is sent only after all `command/exec/outputDelta` notifications for that connection have been emitted.", "properties": { "command": { "description": "Command argv vector. Empty arrays are rejected.", "items": { "type": "string" }, "type": "array" }, "cwd": { "description": "Optional working directory. Defaults to the server cwd.", "type": [ "string", "null" ] }, "disableOutputCap": { "description": "Disable stdout/stderr capture truncation for this request.\n\nCannot be combined with `outputBytesCap`.", "type": "boolean" }, "disableTimeout": { "description": "Disable the timeout entirely for this request.\n\nCannot be combined with `timeoutMs`.", "type": "boolean" }, "env": { "additionalProperties": { "type": [ "string", "null" ] }, "description": "Optional environment overrides merged into the server-computed environment.\n\nMatching names override inherited values. Set a key to `null` to unset an inherited variable.", "type": [ "object", "null" ] }, "outputBytesCap": { "description": "Optional per-stream stdout/stderr capture cap in bytes.\n\nWhen omitted, the server default applies. Cannot be combined with `disableOutputCap`.", "format": "uint", "minimum": 0.0, "type": [ "integer", "null" ] }, "permissionProfile": { "anyOf": [ { "$ref": "#/definitions/PermissionProfile" }, { "type": "null" } ], "description": "Optional full permissions profile for this command.\n\nDefaults to the user's configured permissions when omitted. Cannot be combined with `sandboxPolicy`." }, "processId": { "description": "Optional client-supplied, connection-scoped process id.\n\nRequired for `tty`, `streamStdin`, `streamStdoutStderr`, and follow-up `command/exec/write`, `command/exec/resize`, and `command/exec/terminate` calls. When omitted, buffered execution gets an internal id that is not exposed to the client.", "type": [ "string", "null" ] }, "sandboxPolicy": { "anyOf": [ { "$ref": "#/definitions/SandboxPolicy" }, { "type": "null" } ], "description": "Optional sandbox policy for this command.\n\nUses the same shape as thread/turn execution sandbox configuration and defaults to the user's configured policy when omitted. Cannot be combined with `permissionProfile`." }, "size": { "anyOf": [ { "$ref": "#/definitions/CommandExecTerminalSize" }, { "type": "null" } ], "description": "Optional initial PTY size in character cells. Only valid when `tty` is true." }, "streamStdin": { "description": "Allow follow-up `command/exec/write` requests to write stdin bytes.\n\nRequires a client-supplied `processId`.", "type": "boolean" }, "streamStdoutStderr": { "description": "Stream stdout/stderr via `command/exec/outputDelta` notifications.\n\nStreamed bytes are not duplicated into the final response and require a client-supplied `processId`.", "type": "boolean" }, "timeoutMs": { "description": "Optional timeout in milliseconds.\n\nWhen omitted, the server default applies. Cannot be combined with `disableTimeout`.", "format": "int64", "type": [ "integer", "null" ] }, "tty": { "description": "Enable PTY mode.\n\nThis implies `streamStdin` and `streamStdoutStderr`.", "type": "boolean" } }, "required": [ "command" ], "title": "CommandExecParams", "type": "object" }