{ "$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" }, "AdditionalContextEntry": { "properties": { "kind": { "$ref": "#/definitions/AdditionalContextKind" }, "value": { "type": "string" } }, "required": [ "kind", "value" ], "type": "object" }, "AdditionalContextKind": { "enum": [ "untrusted", "application" ], "type": "string" }, "ByteRange": { "properties": { "end": { "format": "uint", "minimum": 0.0, "type": "integer" }, "start": { "format": "uint", "minimum": 0.0, "type": "integer" } }, "required": [ "end", "start" ], "type": "object" }, "CodexErrorInfo": { "description": "This translation layer make sure that we expose codex error code in camel case.\n\nWhen an upstream HTTP status is available (for example, from the Responses API or a provider), it is forwarded in `httpStatusCode` on the relevant `codexErrorInfo` variant.", "oneOf": [ { "enum": [ "contextWindowExceeded", "usageLimitExceeded", "serverOverloaded", "cyberPolicy", "internalServerError", "unauthorized", "badRequest", "threadRollbackFailed", "sandboxError", "other" ], "type": "string" }, { "additionalProperties": false, "properties": { "httpConnectionFailed": { "properties": { "httpStatusCode": { "format": "uint16", "minimum": 0.0, "type": [ "integer", "null" ] } }, "type": "object" } }, "required": [ "httpConnectionFailed" ], "title": "HttpConnectionFailedCodexErrorInfo", "type": "object" }, { "additionalProperties": false, "description": "Failed to connect to the response SSE stream.", "properties": { "responseStreamConnectionFailed": { "properties": { "httpStatusCode": { "format": "uint16", "minimum": 0.0, "type": [ "integer", "null" ] } }, "type": "object" } }, "required": [ "responseStreamConnectionFailed" ], "title": "ResponseStreamConnectionFailedCodexErrorInfo", "type": "object" }, { "additionalProperties": false, "description": "The response SSE stream disconnected in the middle of a turn before completion.", "properties": { "responseStreamDisconnected": { "properties": { "httpStatusCode": { "format": "uint16", "minimum": 0.0, "type": [ "integer", "null" ] } }, "type": "object" } }, "required": [ "responseStreamDisconnected" ], "title": "ResponseStreamDisconnectedCodexErrorInfo", "type": "object" }, { "additionalProperties": false, "description": "Reached the retry limit for responses.", "properties": { "responseTooManyFailedAttempts": { "properties": { "httpStatusCode": { "format": "uint16", "minimum": 0.0, "type": [ "integer", "null" ] } }, "type": "object" } }, "required": [ "responseTooManyFailedAttempts" ], "title": "ResponseTooManyFailedAttemptsCodexErrorInfo", "type": "object" }, { "additionalProperties": false, "description": "Returned when `turn/start` or `turn/steer` is submitted while the current active turn cannot accept same-turn steering, for example `/review` or manual `/compact`.", "properties": { "activeTurnNotSteerable": { "properties": { "turnKind": { "$ref": "#/definitions/NonSteerableTurnKind" } }, "required": [ "turnKind" ], "type": "object" } }, "required": [ "activeTurnNotSteerable" ], "title": "ActiveTurnNotSteerableCodexErrorInfo", "type": "object" } ] }, "ImageDetail": { "enum": [ "auto", "low", "high", "original" ], "type": "string" }, "NonSteerableTurnKind": { "enum": [ "review", "compact" ], "type": "string" }, "QueuedTurn": { "properties": { "id": { "type": "string" }, "status": { "$ref": "#/definitions/QueuedTurnStatus" }, "submission": { "$ref": "#/definitions/TurnSubmission" } }, "required": [ "id", "status", "submission" ], "type": "object" }, "QueuedTurnStatus": { "oneOf": [ { "properties": { "type": { "enum": [ "pending" ], "title": "PendingQueuedTurnStatusType", "type": "string" } }, "required": [ "type" ], "title": "PendingQueuedTurnStatus", "type": "object" }, { "properties": { "error": { "$ref": "#/definitions/TurnError" }, "type": { "enum": [ "failed" ], "title": "FailedQueuedTurnStatusType", "type": "string" } }, "required": [ "error", "type" ], "title": "FailedQueuedTurnStatus", "type": "object" } ] }, "TextElement": { "properties": { "byteRange": { "allOf": [ { "$ref": "#/definitions/ByteRange" } ], "description": "Byte range in the parent `text` buffer that this element occupies." }, "placeholder": { "description": "Optional human-readable placeholder for the element, displayed in the UI.", "type": [ "string", "null" ] } }, "required": [ "byteRange" ], "type": "object" }, "TurnEnvironmentParams": { "properties": { "cwd": { "$ref": "#/definitions/AbsolutePathBuf" }, "environmentId": { "type": "string" } }, "required": [ "cwd", "environmentId" ], "type": "object" }, "TurnError": { "properties": { "additionalDetails": { "default": null, "type": [ "string", "null" ] }, "codexErrorInfo": { "anyOf": [ { "$ref": "#/definitions/CodexErrorInfo" }, { "type": "null" } ] }, "message": { "type": "string" } }, "required": [ "message" ], "type": "object" }, "TurnSubmission": { "properties": { "input": { "items": { "$ref": "#/definitions/UserInput" }, "type": "array" }, "outputSchema": { "description": "Optional JSON Schema used to constrain the final assistant message for this turn." } }, "required": [ "input" ], "type": "object" }, "UserInput": { "oneOf": [ { "properties": { "text": { "type": "string" }, "text_elements": { "default": [], "description": "UI-defined spans within `text` used to render or persist special elements.", "items": { "$ref": "#/definitions/TextElement" }, "type": "array" }, "type": { "enum": [ "text" ], "title": "TextUserInputType", "type": "string" } }, "required": [ "text", "type" ], "title": "TextUserInput", "type": "object" }, { "properties": { "detail": { "anyOf": [ { "$ref": "#/definitions/ImageDetail" }, { "type": "null" } ], "default": null }, "type": { "enum": [ "image" ], "title": "ImageUserInputType", "type": "string" }, "url": { "type": "string" } }, "required": [ "type", "url" ], "title": "ImageUserInput", "type": "object" }, { "properties": { "detail": { "anyOf": [ { "$ref": "#/definitions/ImageDetail" }, { "type": "null" } ], "default": null }, "path": { "type": "string" }, "type": { "enum": [ "localImage" ], "title": "LocalImageUserInputType", "type": "string" } }, "required": [ "path", "type" ], "title": "LocalImageUserInput", "type": "object" }, { "properties": { "name": { "type": "string" }, "path": { "type": "string" }, "type": { "enum": [ "skill" ], "title": "SkillUserInputType", "type": "string" } }, "required": [ "name", "path", "type" ], "title": "SkillUserInput", "type": "object" }, { "properties": { "name": { "type": "string" }, "path": { "type": "string" }, "type": { "enum": [ "mention" ], "title": "MentionUserInputType", "type": "string" } }, "required": [ "name", "path", "type" ], "title": "MentionUserInput", "type": "object" } ] } }, "properties": { "dispatchingQueuedTurnId": { "type": [ "string", "null" ] }, "queuedTurns": { "items": { "$ref": "#/definitions/QueuedTurn" }, "type": "array" }, "threadId": { "type": "string" } }, "required": [ "queuedTurns", "threadId" ], "title": "ThreadQueueChangedNotification", "type": "object" }