{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "ThreadStartParams", "type": "object", "properties": { "approvalPolicy": { "anyOf": [ { "$ref": "#/definitions/AskForApproval" }, { "type": "null" } ] }, "approvalsReviewer": { "description": "Override where approval requests are routed for review on this thread and subsequent turns.", "anyOf": [ { "$ref": "#/definitions/ApprovalsReviewer" }, { "type": "null" } ] }, "baseInstructions": { "type": [ "string", "null" ] }, "config": { "type": [ "object", "null" ], "additionalProperties": true }, "cwd": { "type": [ "string", "null" ] }, "developerInstructions": { "type": [ "string", "null" ] }, "sandbox": { "anyOf": [ { "$ref": "#/definitions/SandboxMode" }, { "type": "null" } ] }, "sessionStartSource": { "anyOf": [ { "$ref": "#/definitions/ThreadStartSource" }, { "type": "null" } ] }, "ephemeral": { "type": [ "boolean", "null" ] }, "threadSource": { "description": "Optional client-supplied analytics source classification for this thread.", "anyOf": [ { "$ref": "#/definitions/ThreadSource" }, { "type": "null" } ] }, "personality": { "anyOf": [ { "$ref": "#/definitions/Personality" }, { "type": "null" } ] }, "model": { "type": [ "string", "null" ] }, "modelProvider": { "type": [ "string", "null" ] }, "serviceName": { "type": [ "string", "null" ] }, "serviceTier": { "type": [ "string", "null" ] } }, "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" }, "ApprovalsReviewer": { "description": "Configures who approval requests are routed to for review. Examples include sandbox escapes, blocked network access, MCP approval prompts, and ARC escalations. Defaults to `user`. `auto_review` uses a carefully prompted subagent to gather relevant context and apply a risk-based decision framework before approving or denying the request. The legacy value `guardian_subagent` is accepted for compatibility.", "type": "string", "enum": [ "user", "auto_review", "guardian_subagent" ] }, "AskForApproval": { "oneOf": [ { "type": "string", "enum": [ "untrusted", "on-failure", "on-request", "never" ] }, { "type": "object", "required": [ "granular" ], "properties": { "granular": { "type": "object", "required": [ "mcp_elicitations", "rules", "sandbox_approval" ], "properties": { "mcp_elicitations": { "type": "boolean" }, "request_permissions": { "default": false, "type": "boolean" }, "rules": { "type": "boolean" }, "sandbox_approval": { "type": "boolean" }, "skill_approval": { "default": false, "type": "boolean" } } } }, "additionalProperties": false, "title": "GranularAskForApproval" } ] }, "DynamicToolSpec": { "type": "object", "required": [ "description", "inputSchema", "name" ], "properties": { "deferLoading": { "type": "boolean" }, "description": { "type": "string" }, "inputSchema": true, "name": { "type": "string" }, "namespace": { "type": [ "string", "null" ] } } }, "Personality": { "type": "string", "enum": [ "none", "friendly", "pragmatic" ] }, "SandboxMode": { "type": "string", "enum": [ "read-only", "workspace-write", "danger-full-access" ] }, "ThreadSource": { "type": "string", "enum": [ "user", "subagent", "memory_consolidation" ] }, "ThreadStartSource": { "type": "string", "enum": [ "startup", "clear" ] }, "TurnEnvironmentParams": { "type": "object", "required": [ "cwd", "environmentId" ], "properties": { "cwd": { "$ref": "#/definitions/AbsolutePathBuf" }, "environmentId": { "type": "string" } } } } }