{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "TurnStartParams",
"type": "object",
"required": [
"input",
"threadId"
],
"properties": {
"approvalPolicy": {
"description": "Override the approval policy for this turn and subsequent turns.",
"anyOf": [
{
"$ref": "#/definitions/AskForApproval"
},
{
"type": "null"
}
]
},
"approvalsReviewer": {
"description": "Override where approval requests are routed for review on this turn and subsequent turns.",
"anyOf": [
{
"$ref": "#/definitions/ApprovalsReviewer"
},
{
"type": "null"
}
]
},
"collaborationMode": {
"description": "EXPERIMENTAL - Set a pre-set collaboration mode. Takes precedence over model, reasoning_effort, and developer instructions if set.\n\nFor `collaboration_mode.settings.developer_instructions`, `null` means \"use the built-in instructions for the selected mode\".",
"anyOf": [
{
"$ref": "#/definitions/CollaborationMode"
},
{
"type": "null"
}
]
},
"cwd": {
"description": "Override the working directory for this turn and subsequent turns.",
"type": [
"string",
"null"
]
},
"effort": {
"description": "Override the reasoning effort for this turn and subsequent turns.",
"anyOf": [
{
"$ref": "#/definitions/ReasoningEffort"
},
{
"type": "null"
}
]
},
"input": {
"type": "array",
"items": {
"$ref": "#/definitions/UserInput"
}
},
"model": {
"description": "Override the model for this turn and subsequent turns.",
"type": [
"string",
"null"
]
},
"outputSchema": {
"description": "Optional JSON Schema used to constrain the final assistant message for this turn."
},
"personality": {
"description": "Override the personality for this turn and subsequent turns.",
"anyOf": [
{
"$ref": "#/definitions/Personality"
},
{
"type": "null"
}
]
},
"sandboxPolicy": {
"description": "Override the sandbox policy for this turn and subsequent turns.",
"anyOf": [
{
"$ref": "#/definitions/SandboxPolicy"
},
{
"type": "null"
}
]
},
"serviceTier": {
"description": "Override the service tier for this turn and subsequent turns.",
"anyOf": [
{
"anyOf": [
{
"$ref": "#/definitions/ServiceTier"
},
{
"type": "null"
}
]
},
{
"type": "null"
}
]
},
"summary": {
"description": "Override the reasoning summary for this turn and subsequent turns.",
"anyOf": [
{
"$ref": "#/definitions/ReasoningSummary"
},
{
"type": "null"
}
]
},
"threadId": {
"type": "string"
}
},
"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`. `guardian_subagent` uses a carefully prompted subagent to gather relevant context and apply a risk-based decision framework before approving or denying the request.",
"type": "string",
"enum": [
"user",
"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"
}
]
},
"ByteRange": {
"type": "object",
"required": [
"end",
"start"
],
"properties": {
"end": {
"type": "integer",
"format": "uint",
"minimum": 0.0
},
"start": {
"type": "integer",
"format": "uint",
"minimum": 0.0
}
}
},
"CollaborationMode": {
"description": "Collaboration mode for a Codex session.",
"type": "object",
"required": [
"mode",
"settings"
],
"properties": {
"mode": {
"$ref": "#/definitions/ModeKind"
},
"settings": {
"$ref": "#/definitions/Settings"
}
}
},
"ModeKind": {
"description": "Initial collaboration mode to use when the TUI starts.",
"type": "string",
"enum": [
"plan",
"default"
]
},
"NetworkAccess": {
"type": "string",
"enum": [
"restricted",
"enabled"
]
},
"Personality": {
"type": "string",
"enum": [
"none",
"friendly",
"pragmatic"
]
},
"ReadOnlyAccess": {
"oneOf": [
{
"type": "object",
"required": [
"type"
],
"properties": {
"includePlatformDefaults": {
"default": true,
"type": "boolean"
},
"readableRoots": {
"default": [],
"type": "array",
"items": {
"$ref": "#/definitions/AbsolutePathBuf"
}
},
"type": {
"type": "string",
"enum": [
"restricted"
],
"title": "RestrictedReadOnlyAccessType"
}
},
"title": "RestrictedReadOnlyAccess"
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"enum": [
"fullAccess"
],
"title": "FullAccessReadOnlyAccessType"
}
},
"title": "FullAccessReadOnlyAccess"
}
]
},
"ReasoningEffort": {
"description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning",
"type": "string",
"enum": [
"none",
"minimal",
"low",
"medium",
"high",
"xhigh",
"max"
]
},
"ReasoningSummary": {
"description": "A summary of the reasoning performed by the model. This can be useful for debugging and understanding the model's reasoning process. See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#reasoning-summaries",
"oneOf": [
{
"type": "string",
"enum": [
"auto",
"concise",
"detailed"
]
},
{
"description": "Option to disable reasoning summaries.",
"type": "string",
"enum": [
"none"
]
}
]
},
"SandboxPolicy": {
"oneOf": [
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"enum": [
"dangerFullAccess"
],
"title": "DangerFullAccessSandboxPolicyType"
}
},
"title": "DangerFullAccessSandboxPolicy"
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"access": {
"default": {
"type": "fullAccess"
},
"allOf": [
{
"$ref": "#/definitions/ReadOnlyAccess"
}
]
},
"networkAccess": {
"default": false,
"type": "boolean"
},
"type": {
"type": "string",
"enum": [
"readOnly"
],
"title": "ReadOnlySandboxPolicyType"
}
},
"title": "ReadOnlySandboxPolicy"
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"networkAccess": {
"default": "restricted",
"allOf": [
{
"$ref": "#/definitions/NetworkAccess"
}
]
},
"type": {
"type": "string",
"enum": [
"externalSandbox"
],
"title": "ExternalSandboxSandboxPolicyType"
}
},
"title": "ExternalSandboxSandboxPolicy"
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"excludeSlashTmp": {
"default": false,
"type": "boolean"
},
"excludeTmpdirEnvVar": {
"default": false,
"type": "boolean"
},
"networkAccess": {
"default": false,
"type": "boolean"
},
"readOnlyAccess": {
"default": {
"type": "fullAccess"
},
"allOf": [
{
"$ref": "#/definitions/ReadOnlyAccess"
}
]
},
"type": {
"type": "string",
"enum": [
"workspaceWrite"
],
"title": "WorkspaceWriteSandboxPolicyType"
},
"writableRoots": {
"default": [],
"type": "array",
"items": {
"$ref": "#/definitions/AbsolutePathBuf"
}
}
},
"title": "WorkspaceWriteSandboxPolicy"
}
]
},
"ServiceTier": {
"type": "string",
"enum": [
"fast",
"flex"
]
},
"Settings": {
"description": "Settings for a collaboration mode.",
"type": "object",
"required": [
"model"
],
"properties": {
"developer_instructions": {
"type": [
"string",
"null"
]
},
"model": {
"type": "string"
},
"reasoning_effort": {
"anyOf": [
{
"$ref": "#/definitions/ReasoningEffort"
},
{
"type": "null"
}
]
}
}
},
"TextElement": {
"type": "object",
"required": [
"byteRange"
],
"properties": {
"byteRange": {
"description": "Byte range in the parent `text` buffer that this element occupies.",
"allOf": [
{
"$ref": "#/definitions/ByteRange"
}
]
},
"placeholder": {
"description": "Optional human-readable placeholder for the element, displayed in the UI.",
"type": [
"string",
"null"
]
}
}
},
"UserInput": {
"oneOf": [
{
"type": "object",
"required": [
"text",
"type"
],
"properties": {
"text": {
"type": "string"
},
"text_elements": {
"description": "UI-defined spans within `text` used to render or persist special elements.",
"default": [],
"type": "array",
"items": {
"$ref": "#/definitions/TextElement"
}
},
"type": {
"type": "string",
"enum": [
"text"
],
"title": "TextUserInputType"
}
},
"title": "TextUserInput"
},
{
"type": "object",
"required": [
"type",
"url"
],
"properties": {
"type": {
"type": "string",
"enum": [
"image"
],
"title": "ImageUserInputType"
},
"url": {
"type": "string"
}
},
"title": "ImageUserInput"
},
{
"type": "object",
"required": [
"path",
"type"
],
"properties": {
"path": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"localImage"
],
"title": "LocalImageUserInputType"
}
},
"title": "LocalImageUserInput"
},
{
"type": "object",
"required": [
"name",
"path",
"type"
],
"properties": {
"name": {
"type": "string"
},
"path": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"skill"
],
"title": "SkillUserInputType"
}
},
"title": "SkillUserInput"
},
{
"type": "object",
"required": [
"name",
"path",
"type"
],
"properties": {
"name": {
"type": "string"
},
"path": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"mention"
],
"title": "MentionUserInputType"
}
},
"title": "MentionUserInput"
}
]
}
}
}