diff --git a/schemas/ClientRequest.json b/schemas/ClientRequest.json index 3b8bba7..df44662 100644 --- a/schemas/ClientRequest.json +++ b/schemas/ClientRequest.json @@ -124,6 +124,30 @@ }, "title": "Thread/archiveRequest" }, + { + "type": "object", + "required": [ + "id", + "method", + "params" + ], + "properties": { + "id": { + "$ref": "#/definitions/RequestId" + }, + "method": { + "type": "string", + "enum": [ + "thread/delete" + ], + "title": "Thread/deleteRequestMethod" + }, + "params": { + "$ref": "#/definitions/ThreadDeleteParams" + } + }, + "title": "Thread/deleteRequest" + }, { "type": "object", "required": [ @@ -509,6 +533,30 @@ }, "title": "Skills/listRequest" }, + { + "type": "object", + "required": [ + "id", + "method", + "params" + ], + "properties": { + "id": { + "$ref": "#/definitions/RequestId" + }, + "method": { + "type": "string", + "enum": [ + "skills/extraRoots/set" + ], + "title": "Skills/extraRoots/setRequestMethod" + }, + "params": { + "$ref": "#/definitions/SkillsExtraRootsSetParams" + } + }, + "title": "Skills/extraRoots/setRequest" + }, { "type": "object", "required": [ @@ -1609,6 +1657,76 @@ }, "title": "Account/rateLimits/readRequest" }, + { + "type": "object", + "required": [ + "id", + "method", + "params" + ], + "properties": { + "id": { + "$ref": "#/definitions/RequestId" + }, + "method": { + "type": "string", + "enum": [ + "account/rateLimitResetCredit/consume" + ], + "title": "Account/rateLimitResetCredit/consumeRequestMethod" + }, + "params": { + "$ref": "#/definitions/ConsumeAccountRateLimitResetCreditParams" + } + }, + "title": "Account/rateLimitResetCredit/consumeRequest" + }, + { + "type": "object", + "required": [ + "id", + "method" + ], + "properties": { + "id": { + "$ref": "#/definitions/RequestId" + }, + "method": { + "type": "string", + "enum": [ + "account/usage/read" + ], + "title": "Account/usage/readRequestMethod" + }, + "params": { + "type": "null" + } + }, + "title": "Account/usage/readRequest" + }, + { + "type": "object", + "required": [ + "id", + "method" + ], + "properties": { + "id": { + "$ref": "#/definitions/RequestId" + }, + "method": { + "type": "string", + "enum": [ + "account/workspaceMessages/read" + ], + "title": "Account/workspaceMessages/readRequestMethod" + }, + "params": { + "type": "null" + } + }, + "title": "Account/workspaceMessages/readRequest" + }, { "type": "object", "required": [ @@ -1829,6 +1947,29 @@ }, "title": "ExternalAgentConfig/importRequest" }, + { + "type": "object", + "required": [ + "id", + "method" + ], + "properties": { + "id": { + "$ref": "#/definitions/RequestId" + }, + "method": { + "type": "string", + "enum": [ + "externalAgentConfig/import/readHistories" + ], + "title": "ExternalAgentConfig/import/readHistoriesRequestMethod" + }, + "params": { + "type": "null" + } + }, + "title": "ExternalAgentConfig/import/readHistoriesRequest" + }, { "type": "object", "required": [ @@ -1961,6 +2102,72 @@ "usage_limit" ] }, + "AdditionalContextEntry": { + "type": "object", + "required": [ + "kind", + "value" + ], + "properties": { + "kind": { + "$ref": "#/definitions/AdditionalContextKind" + }, + "value": { + "type": "string" + } + } + }, + "AdditionalContextKind": { + "type": "string", + "enum": [ + "untrusted", + "application" + ] + }, + "AgentMessageInputContent": { + "oneOf": [ + { + "type": "object", + "required": [ + "text", + "type" + ], + "properties": { + "text": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "input_text" + ], + "title": "InputTextAgentMessageInputContentType" + } + }, + "title": "InputTextAgentMessageInputContent" + }, + { + "type": "object", + "required": [ + "encrypted_content", + "type" + ], + "properties": { + "encrypted_content": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "encrypted_content" + ], + "title": "EncryptedContentAgentMessageInputContentType" + } + }, + "title": "EncryptedContentAgentMessageInputContent" + } + ] + }, "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", @@ -2083,6 +2290,36 @@ } } }, + "CapabilityRootLocation": { + "description": "Location used to resolve a selected capability root.", + "oneOf": [ + { + "description": "A path owned by an execution environment.", + "type": "object", + "required": [ + "environmentId", + "path", + "type" + ], + "properties": { + "environmentId": { + "type": "string" + }, + "path": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "environment" + ], + "title": "EnvironmentCapabilityRootLocationType" + } + }, + "title": "EnvironmentCapabilityRootLocation" + } + ] + }, "ClientInfo": { "type": "object", "required": [ @@ -2394,7 +2631,6 @@ ] }, "includeLayers": { - "default": false, "type": "boolean" } } @@ -2429,6 +2665,18 @@ "value": true } }, + "ConsumeAccountRateLimitResetCreditParams": { + "type": "object", + "required": [ + "idempotencyKey" + ], + "properties": { + "idempotencyKey": { + "description": "Identifies one logical reset attempt. A UUID is recommended; reuse the same value when retrying that attempt.", + "type": "string" + } + } + }, "ContentItem": { "oneOf": [ { @@ -2503,31 +2751,110 @@ } ] }, - "DynamicToolSpec": { - "type": "object", - "required": [ - "description", - "inputSchema", - "name" - ], - "properties": { - "deferLoading": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "inputSchema": true, - "name": { - "type": "string" - }, - "namespace": { - "type": [ - "string", - "null" - ] + "ConversationTextRole": { + "type": "string", + "enum": [ + "user", + "developer", + "assistant" + ] + }, + "DynamicToolNamespaceTool": { + "oneOf": [ + { + "type": "object", + "required": [ + "description", + "inputSchema", + "name", + "type" + ], + "properties": { + "deferLoading": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "inputSchema": true, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "function" + ], + "title": "FunctionDynamicToolNamespaceToolType" + } + }, + "title": "FunctionDynamicToolNamespaceTool" } - } + ] + }, + "DynamicToolSpec": { + "oneOf": [ + { + "type": "object", + "required": [ + "description", + "inputSchema", + "name", + "type" + ], + "properties": { + "deferLoading": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "inputSchema": true, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "function" + ], + "title": "FunctionDynamicToolSpecType" + } + }, + "title": "FunctionDynamicToolSpec" + }, + { + "type": "object", + "required": [ + "description", + "name", + "tools", + "type" + ], + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/DynamicToolNamespaceTool" + } + }, + "type": { + "type": "string", + "enum": [ + "namespace" + ], + "title": "NamespaceDynamicToolSpecType" + } + }, + "title": "NamespaceDynamicToolSpec" + } + ] }, "WindowsSandboxSetupMode": { "type": "string", @@ -2593,7 +2920,7 @@ } }, "includeHome": { - "description": "If true, include detection under the user's home (~/.claude, ~/.codex, etc.).", + "description": "If true, include detection under the user's home directory.", "type": "boolean" } } @@ -2609,6 +2936,13 @@ "items": { "$ref": "#/definitions/ExternalAgentConfigMigrationItem" } + }, + "source": { + "description": "Source product that produced the migration items. Missing means unspecified.", + "type": [ + "string", + "null" + ] } } }, @@ -2661,8 +2995,7 @@ "FeedbackUploadParams": { "type": "object", "required": [ - "classification", - "includeLogs" + "classification" ], "properties": { "classification": { @@ -3158,6 +3491,15 @@ "threadId" ], "properties": { + "threadId": { + "type": "string" + }, + "clientUserMessageId": { + "type": [ + "string", + "null" + ] + }, "expectedTurnId": { "description": "Required active turn id precondition. The request fails when it does not match the currently active turn.", "type": "string" @@ -3167,9 +3509,6 @@ "items": { "$ref": "#/definitions/UserInput" } - }, - "threadId": { - "type": "string" } } }, @@ -3180,6 +3519,9 @@ "threadId" ], "properties": { + "threadId": { + "type": "string" + }, "approvalPolicy": { "description": "Override the approval policy for this turn and subsequent turns.", "anyOf": [ @@ -3202,6 +3544,12 @@ } ] }, + "clientUserMessageId": { + "type": [ + "string", + "null" + ] + }, "serviceTier": { "description": "Override the service tier for this turn and subsequent turns.", "type": [ @@ -3227,8 +3575,16 @@ } ] }, - "threadId": { - "type": "string" + "personality": { + "description": "Override the personality for this turn and subsequent turns.", + "anyOf": [ + { + "$ref": "#/definitions/Personality" + }, + { + "type": "null" + } + ] }, "input": { "type": "array", @@ -3243,6 +3599,17 @@ "null" ] }, + "summary": { + "description": "Override the reasoning summary for this turn and subsequent turns.", + "anyOf": [ + { + "$ref": "#/definitions/ReasoningSummary" + }, + { + "type": "null" + } + ] + }, "outputSchema": { "description": "Optional JSON Schema used to constrain the final assistant message for this turn." }, @@ -3256,28 +3623,6 @@ "type": "null" } ] - }, - "personality": { - "description": "Override the personality for this turn and subsequent turns.", - "anyOf": [ - { - "$ref": "#/definitions/Personality" - }, - { - "type": "null" - } - ] - }, - "summary": { - "description": "Override the reasoning summary for this turn and subsequent turns.", - "anyOf": [ - { - "$ref": "#/definitions/ReasoningSummary" - }, - { - "type": "null" - } - ] } } }, @@ -3286,7 +3631,6 @@ "properties": { "refreshToken": { "description": "When `true`, requests a proactive token refresh before returning.\n\nIn managed auth mode this triggers the normal refresh-token flow. In external auth mode this flag is ignored. Clients should refresh tokens themselves and call `account/login/start` with `chatgptAuthTokens`.", - "default": false, "type": "boolean" } } @@ -3317,6 +3661,8 @@ "ImageDetail": { "type": "string", "enum": [ + "auto", + "low", "high", "original" ] @@ -3330,6 +3676,10 @@ "default": false, "type": "boolean" }, + "mcpServerOpenaiFormElicitation": { + "description": "Allow downstream MCP servers to request OpenAI extended form elicitations.", + "type": "boolean" + }, "optOutNotificationMethods": { "description": "Exact notification method names that should be suppressed for this connection (for example `thread/started`).", "type": [ @@ -3368,6 +3718,21 @@ } } }, + "InternalChatMessageMetadataPassthrough": { + "description": "Internal Responses API passthrough metadata copied into underlying chat messages.\n\nResponses API strongly types this payload. Do not modify it without first getting API approval and making the corresponding Responses API change.", + "type": "object", + "properties": { + "turn_id": { + "type": [ + "string", + "null" + ] + } + } + }, + "LegacyAppPathString": { + "type": "string" + }, "ListMcpServerStatusParams": { "type": "object", "properties": { @@ -3397,6 +3762,12 @@ ], "format": "uint32", "minimum": 0.0 + }, + "threadId": { + "type": [ + "string", + "null" + ] } } }, @@ -3829,6 +4200,15 @@ "ModelProviderCapabilitiesReadParams": { "type": "object" }, + "MultiAgentMode": { + "description": "Controls whether the model receives multi-agent delegation instructions and, when it does, whether it should only spawn sub-agents after an explicit user request or may delegate proactively when doing so would help. `none` leaves the multi-agent tools available without injecting delegation instructions.", + "type": "string", + "enum": [ + "none", + "explicitRequestOnly", + "proactive" + ] + }, "NetworkAccess": { "type": "string", "enum": [ @@ -3930,7 +4310,8 @@ "local", "vertical", "workspace-directory", - "shared-with-me" + "shared-with-me", + "created-by-me-remote" ] }, "PluginListParams": { @@ -4188,7 +4569,7 @@ ], "properties": { "cwd": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" }, "environmentId": { "type": "string" @@ -4239,6 +4620,13 @@ } } }, + "RealtimeConversationVersion": { + "type": "string", + "enum": [ + "v1", + "v2" + ] + }, "RealtimeOutputModality": { "type": "string", "enum": [ @@ -4271,16 +4659,9 @@ ] }, "ReasoningEffort": { - "description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning", + "description": "A non-empty reasoning effort value advertised by the model.", "type": "string", - "enum": [ - "none", - "minimal", - "low", - "medium", - "high", - "xhigh" - ] + "minLength": 1 }, "ReasoningItemContent": { "oneOf": [ @@ -4370,6 +4751,299 @@ } ] }, + "ThreadResumeParams": { + "description": "There are three ways to resume a thread: 1. By thread_id: load the thread from disk by thread_id and resume it. 2. By history: instantiate the thread from memory and resume it. 3. By path: load the thread from disk by path and resume it.\n\nFor non-running threads, the precedence is: history > non-empty path > thread_id. If using history or a non-empty path for a non-running thread, the thread_id param will be ignored.\n\nIf thread_id identifies a running thread, app-server rejoins that thread and treats a non-empty path as a consistency check against the active rollout path. Empty string path values are treated as absent.\n\nPrefer using thread_id whenever possible.", + "type": "object", + "required": [ + "threadId" + ], + "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" + ] + }, + "serviceTier": { + "type": [ + "string", + "null" + ] + }, + "threadId": { + "type": "string" + }, + "personality": { + "anyOf": [ + { + "$ref": "#/definitions/Personality" + }, + { + "type": "null" + } + ] + }, + "model": { + "description": "Configuration overrides for the resumed thread, if any.", + "type": [ + "string", + "null" + ] + }, + "modelProvider": { + "type": [ + "string", + "null" + ] + }, + "sandbox": { + "anyOf": [ + { + "$ref": "#/definitions/SandboxMode" + }, + { + "type": "null" + } + ] + } + } + }, + "ThreadResumeInitialTurnsPageParams": { + "type": "object", + "properties": { + "itemsView": { + "description": "How much item detail to include for each returned turn; defaults to summary.", + "anyOf": [ + { + "$ref": "#/definitions/TurnItemsView" + }, + { + "type": "null" + } + ] + }, + "limit": { + "description": "Optional turn page size.", + "type": [ + "integer", + "null" + ], + "format": "uint32", + "minimum": 0.0 + }, + "sortDirection": { + "description": "Optional turn pagination direction; defaults to descending.", + "anyOf": [ + { + "$ref": "#/definitions/SortDirection" + }, + { + "type": "null" + } + ] + } + } + }, + "ThreadStartSource": { + "type": "string", + "enum": [ + "startup", + "clear" + ] + }, + "RemoteControlDisableParams": { + "type": "object", + "properties": { + "ephemeral": { + "type": "boolean" + } + } + }, + "RemoteControlEnableParams": { + "type": "object", + "properties": { + "ephemeral": { + "type": "boolean" + } + } + }, + "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" + ] + }, + "serviceName": { + "type": [ + "string", + "null" + ] + }, + "sandbox": { + "anyOf": [ + { + "$ref": "#/definitions/SandboxMode" + }, + { + "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" + ] + }, + "serviceTier": { + "type": [ + "string", + "null" + ] + }, + "sessionStartSource": { + "anyOf": [ + { + "$ref": "#/definitions/ThreadStartSource" + }, + { + "type": "null" + } + ] + } + } + }, + "ThreadSourceKind": { + "type": "string", + "enum": [ + "cli", + "vscode", + "exec", + "appServer", + "subAgent", + "subAgentReview", + "subAgentCompact", + "subAgentThreadSpawn", + "subAgentOther", + "unknown" + ] + }, "RequestId": { "anyOf": [ { @@ -4398,12 +5072,21 @@ } }, "id": { - "writeOnly": true, "type": [ "string", "null" ] }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "phase": { "anyOf": [ { @@ -4427,6 +5110,53 @@ }, "title": "MessageResponseItem" }, + { + "type": "object", + "required": [ + "author", + "content", + "recipient", + "type" + ], + "properties": { + "author": { + "type": "string" + }, + "content": { + "type": "array", + "items": { + "$ref": "#/definitions/AgentMessageInputContent" + } + }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, + "recipient": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "agent_message" + ], + "title": "AgentMessageResponseItemType" + } + }, + "title": "AgentMessageResponseItem" + }, { "type": "object", "required": [ @@ -4450,6 +5180,22 @@ "null" ] }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "summary": { "type": "array", "items": { @@ -4486,12 +5232,21 @@ }, "id": { "description": "Legacy id field retained for compatibility with older payloads.", - "writeOnly": true, "type": [ "string", "null" ] }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "status": { "$ref": "#/definitions/LocalShellStatus" }, @@ -4521,12 +5276,21 @@ "type": "string" }, "id": { - "writeOnly": true, "type": [ "string", "null" ] }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "name": { "type": "string" }, @@ -4565,12 +5329,21 @@ "type": "string" }, "id": { - "writeOnly": true, "type": [ "string", "null" ] }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "status": { "type": [ "string", @@ -4598,6 +5371,22 @@ "call_id": { "type": "string" }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "output": { "$ref": "#/definitions/FunctionCallOutputBody" }, @@ -4624,7 +5413,6 @@ "type": "string" }, "id": { - "writeOnly": true, "type": [ "string", "null" @@ -4633,6 +5421,16 @@ "input": { "type": "string" }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "name": { "type": "string" }, @@ -4663,6 +5461,22 @@ "call_id": { "type": "string" }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "name": { "type": [ "string", @@ -4700,6 +5514,22 @@ "execution": { "type": "string" }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "status": { "type": "string" }, @@ -4734,12 +5564,21 @@ ] }, "id": { - "writeOnly": true, "type": [ "string", "null" ] }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "status": { "type": [ "string", @@ -4759,14 +5598,26 @@ { "type": "object", "required": [ - "id", "result", "status", "type" ], "properties": { "id": { - "type": "string" + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] }, "result": { "type": "string" @@ -4800,6 +5651,22 @@ "encrypted_content": { "type": "string" }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "type": { "type": "string", "enum": [ @@ -4816,6 +5683,16 @@ "type" ], "properties": { + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "type": { "type": "string", "enum": [ @@ -4838,6 +5715,22 @@ "null" ] }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "type": { "type": "string", "enum": [ @@ -5199,6 +6092,28 @@ } ] }, + "SelectedCapabilityRoot": { + "description": "A user-selected root that can expose one or more runtime capabilities.", + "type": "object", + "required": [ + "id", + "location" + ], + "properties": { + "id": { + "description": "Stable identifier supplied by the capability selection platform.", + "type": "string" + }, + "location": { + "description": "Where the selected root can be resolved.", + "allOf": [ + { + "$ref": "#/definitions/CapabilityRootLocation" + } + ] + } + } + }, "SendAddCreditsNudgeEmailParams": { "type": "object", "required": [ @@ -5288,6 +6203,20 @@ } } }, + "SkillsExtraRootsSetParams": { + "type": "object", + "required": [ + "extraRoots" + ], + "properties": { + "extraRoots": { + "type": "array", + "items": { + "$ref": "#/definitions/AbsolutePathBuf" + } + } + } + }, "SkillsListParams": { "type": "object", "properties": { @@ -5371,97 +6300,27 @@ } } }, - "ThreadResumeParams": { - "description": "There are three ways to resume a thread: 1. By thread_id: load the thread from disk by thread_id and resume it. 2. By history: instantiate the thread from memory and resume it. 3. By path: load the thread from disk by path and resume it.\n\nFor non-running threads, the precedence is: history > non-empty path > thread_id. If using history or a non-empty path for a non-running thread, the thread_id param will be ignored.\n\nIf thread_id identifies a running thread, app-server rejoins that thread and treats a non-empty path as a consistency check against the active rollout path. Empty string path values are treated as absent.\n\nPrefer using thread_id whenever possible.", + "ThreadSource": { + "type": "string" + }, + "ThreadSortKey": { + "type": "string", + "enum": [ + "created_at", + "updated_at", + "recency_at" + ] + }, + "ThreadShellCommandParams": { "type": "object", "required": [ + "command", "threadId" ], "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" - ] - }, - "personality": { - "anyOf": [ - { - "$ref": "#/definitions/Personality" - }, - { - "type": "null" - } - ] - }, - "sandbox": { - "anyOf": [ - { - "$ref": "#/definitions/SandboxMode" - }, - { - "type": "null" - } - ] - }, - "model": { - "description": "Configuration overrides for the resumed thread, if any.", - "type": [ - "string", - "null" - ] - }, - "modelProvider": { - "type": [ - "string", - "null" - ] - }, - "serviceTier": { - "type": [ - "string", - "null" - ] + "command": { + "description": "Shell command string evaluated by the thread's configured shell. Unlike `command/exec`, this intentionally preserves shell syntax such as pipes, redirects, and quoting. This runs unsandboxed with full access rather than inheriting the thread sandbox policy.", + "type": "string" }, "threadId": { "type": "string" @@ -5479,19 +6338,50 @@ } } }, - "ThreadRollbackParams": { + "ThreadRealtimeAudioChunk": { + "description": "EXPERIMENTAL - thread realtime audio chunk.", "type": "object", "required": [ - "numTurns", - "threadId" + "data", + "numChannels", + "sampleRate" ], "properties": { - "numTurns": { - "description": "The number of turns to drop from the end of the thread. Must be >= 1.\n\nThis only modifies the thread's history and does not revert local file changes that have been made by the agent. Clients are responsible for reverting these changes.", + "data": { + "type": "string" + }, + "itemId": { + "type": [ + "string", + "null" + ] + }, + "numChannels": { + "type": "integer", + "format": "uint16", + "minimum": 0.0 + }, + "sampleRate": { "type": "integer", "format": "uint32", "minimum": 0.0 }, + "samplesPerChannel": { + "type": [ + "integer", + "null" + ], + "format": "uint32", + "minimum": 0.0 + } + } + }, + "ThreadDeleteParams": { + "type": "object", + "required": [ + "threadId" + ], + "properties": { "threadId": { "type": "string" } @@ -5553,14 +6443,10 @@ "ephemeral": { "type": "boolean" }, - "sandbox": { - "anyOf": [ - { - "$ref": "#/definitions/SandboxMode" - }, - { - "type": "null" - } + "serviceTier": { + "type": [ + "string", + "null" ] }, "model": { @@ -5576,15 +6462,6 @@ "null" ] }, - "serviceTier": { - "type": [ - "string", - "null" - ] - }, - "threadId": { - "type": "string" - }, "threadSource": { "description": "Optional client-supplied analytics source classification for this forked thread.", "anyOf": [ @@ -5595,6 +6472,19 @@ "type": "null" } ] + }, + "sandbox": { + "anyOf": [ + { + "$ref": "#/definitions/SandboxMode" + }, + { + "type": "null" + } + ] + }, + "threadId": { + "type": "string" } } }, @@ -5665,12 +6555,20 @@ "complete" ] }, - "ThreadStartSource": { - "type": "string", - "enum": [ - "startup", - "clear" - ] + "ThreadSetNameParams": { + "type": "object", + "required": [ + "name", + "threadId" + ], + "properties": { + "name": { + "type": "string" + }, + "threadId": { + "type": "string" + } + } }, "ThreadInjectItemsParams": { "type": "object", @@ -5749,6 +6647,10 @@ "type": "string" } }, + "useStateDbOnly": { + "description": "If true, return from the state DB without scanning JSONL rollouts to repair thread metadata. Omitted or false preserves scan-and-repair behavior.", + "type": "boolean" + }, "searchTerm": { "description": "Optional substring filter for the extracted thread title.", "type": [ @@ -5787,10 +6689,6 @@ "items": { "$ref": "#/definitions/ThreadSourceKind" } - }, - "useStateDbOnly": { - "description": "If true, return from the state DB without scanning JSONL rollouts to repair thread metadata. Omitted or false preserves scan-and-repair behavior.", - "type": "boolean" } } }, @@ -5822,127 +6720,47 @@ "disabled" ] }, - "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" + "ThreadRealtimeStartTransport": { + "description": "EXPERIMENTAL - transport used by thread realtime.", + "oneOf": [ + { + "type": "object", + "required": [ + "type" ], - "additionalProperties": true - }, - "cwd": { - "type": [ - "string", - "null" - ] - }, - "developerInstructions": { - "type": [ - "string", - "null" - ] - }, - "sandbox": { - "anyOf": [ - { - "$ref": "#/definitions/SandboxMode" - }, - { - "type": "null" + "properties": { + "type": { + "type": "string", + "enum": [ + "websocket" + ], + "title": "WebsocketThreadRealtimeStartTransportType" } - ] + }, + "title": "WebsocketThreadRealtimeStartTransport" }, - "threadSource": { - "description": "Optional client-supplied analytics source classification for this thread.", - "anyOf": [ - { - "$ref": "#/definitions/ThreadSource" + { + "type": "object", + "required": [ + "sdp", + "type" + ], + "properties": { + "sdp": { + "description": "SDP offer generated by a WebRTC RTCPeerConnection after configuring audio and the realtime events data channel.", + "type": "string" }, - { - "type": "null" + "type": { + "type": "string", + "enum": [ + "webrtc" + ], + "title": "WebrtcThreadRealtimeStartTransportType" } - ] - }, - "ephemeral": { - "type": [ - "boolean", - "null" - ] - }, - "serviceTier": { - "type": [ - "string", - "null" - ] - }, - "personality": { - "anyOf": [ - { - "$ref": "#/definitions/Personality" - }, - { - "type": "null" - } - ] - }, - "model": { - "type": [ - "string", - "null" - ] - }, - "modelProvider": { - "type": [ - "string", - "null" - ] - }, - "sessionStartSource": { - "anyOf": [ - { - "$ref": "#/definitions/ThreadStartSource" - }, - { - "type": "null" - } - ] - }, - "serviceName": { - "type": [ - "string", - "null" - ] + }, + "title": "WebrtcThreadRealtimeStartTransport" } - } + ] }, "ThreadMetadataGitInfoUpdateParams": { "type": "object", @@ -6000,7 +6818,6 @@ "properties": { "includeTurns": { "description": "When true, include turns and their items from rollout history.", - "default": false, "type": "boolean" }, "threadId": { @@ -6008,141 +6825,18 @@ } } }, - "ThreadSourceKind": { - "type": "string", - "enum": [ - "cli", - "vscode", - "exec", - "appServer", - "subAgent", - "subAgentReview", - "subAgentCompact", - "subAgentThreadSpawn", - "subAgentOther", - "unknown" - ] - }, - "ThreadSource": { - "type": "string", - "enum": [ - "user", - "subagent", - "memory_consolidation" - ] - }, - "ThreadRealtimeAudioChunk": { - "description": "EXPERIMENTAL - thread realtime audio chunk.", + "ThreadRollbackParams": { "type": "object", "required": [ - "data", - "numChannels", - "sampleRate" - ], - "properties": { - "data": { - "type": "string" - }, - "itemId": { - "type": [ - "string", - "null" - ] - }, - "numChannels": { - "type": "integer", - "format": "uint16", - "minimum": 0.0 - }, - "sampleRate": { - "type": "integer", - "format": "uint32", - "minimum": 0.0 - }, - "samplesPerChannel": { - "type": [ - "integer", - "null" - ], - "format": "uint32", - "minimum": 0.0 - } - } - }, - "ThreadSortKey": { - "type": "string", - "enum": [ - "created_at", - "updated_at" - ] - }, - "ThreadShellCommandParams": { - "type": "object", - "required": [ - "command", + "numTurns", "threadId" ], "properties": { - "command": { - "description": "Shell command string evaluated by the thread's configured shell. Unlike `command/exec`, this intentionally preserves shell syntax such as pipes, redirects, and quoting. This runs unsandboxed with full access rather than inheriting the thread sandbox policy.", - "type": "string" - }, - "threadId": { - "type": "string" - } - } - }, - "ThreadRealtimeStartTransport": { - "description": "EXPERIMENTAL - transport used by thread realtime.", - "oneOf": [ - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "websocket" - ], - "title": "WebsocketThreadRealtimeStartTransportType" - } - }, - "title": "WebsocketThreadRealtimeStartTransport" - }, - { - "type": "object", - "required": [ - "sdp", - "type" - ], - "properties": { - "sdp": { - "description": "SDP offer generated by a WebRTC RTCPeerConnection after configuring audio and the realtime events data channel.", - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "webrtc" - ], - "title": "WebrtcThreadRealtimeStartTransportType" - } - }, - "title": "WebrtcThreadRealtimeStartTransport" - } - ] - }, - "ThreadSetNameParams": { - "type": "object", - "required": [ - "name", - "threadId" - ], - "properties": { - "name": { - "type": "string" + "numTurns": { + "description": "The number of turns to drop from the end of the thread. Must be >= 1.\n\nThis only modifies the thread's history and does not revert local file changes that have been made by the agent. Clients are responsible for reverting these changes.", + "type": "integer", + "format": "uint32", + "minimum": 0.0 }, "threadId": { "type": "string" diff --git a/schemas/CommandExecutionRequestApprovalParams.json b/schemas/CommandExecutionRequestApprovalParams.json index 884a9d7..79da4f1 100644 --- a/schemas/CommandExecutionRequestApprovalParams.json +++ b/schemas/CommandExecutionRequestApprovalParams.json @@ -43,13 +43,21 @@ "description": "The command's working directory.", "anyOf": [ { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" }, { "type": "null" } ] }, + "environmentId": { + "description": "Environment in which the command will run.", + "default": null, + "type": [ + "string", + "null" + ] + }, "itemId": { "type": "string" }, @@ -129,7 +137,7 @@ "null" ], "items": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } }, "write": { @@ -139,7 +147,7 @@ "null" ], "items": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } } } @@ -388,7 +396,7 @@ ], "properties": { "path": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" }, "type": { "type": "string", @@ -566,6 +574,9 @@ } ] }, + "LegacyAppPathString": { + "type": "string" + }, "NetworkApprovalContext": { "type": "object", "required": [ diff --git a/schemas/McpServerElicitationRequestParams.json b/schemas/McpServerElicitationRequestParams.json index 44ec7e0..79a6df9 100644 --- a/schemas/McpServerElicitationRequestParams.json +++ b/schemas/McpServerElicitationRequestParams.json @@ -26,6 +26,27 @@ } } }, + { + "type": "object", + "required": [ + "message", + "mode", + "requestedSchema" + ], + "properties": { + "_meta": true, + "message": { + "type": "string" + }, + "mode": { + "type": "string", + "enum": [ + "openai/form" + ] + }, + "requestedSchema": true + } + }, { "type": "object", "required": [ diff --git a/schemas/PermissionsRequestApprovalParams.json b/schemas/PermissionsRequestApprovalParams.json index 6e6c016..86323cb 100644 --- a/schemas/PermissionsRequestApprovalParams.json +++ b/schemas/PermissionsRequestApprovalParams.json @@ -14,6 +14,13 @@ "cwd": { "$ref": "#/definitions/AbsolutePathBuf" }, + "environmentId": { + "default": null, + "type": [ + "string", + "null" + ] + }, "itemId": { "type": "string" }, @@ -70,7 +77,7 @@ "null" ], "items": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } }, "write": { @@ -80,7 +87,7 @@ "null" ], "items": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } } } @@ -114,7 +121,7 @@ ], "properties": { "path": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" }, "type": { "type": "string", @@ -292,6 +299,9 @@ } ] }, + "LegacyAppPathString": { + "type": "string" + }, "RequestPermissionProfile": { "type": "object", "properties": { diff --git a/schemas/PermissionsRequestApprovalResponse.json b/schemas/PermissionsRequestApprovalResponse.json index 557ad0f..af0c162 100644 --- a/schemas/PermissionsRequestApprovalResponse.json +++ b/schemas/PermissionsRequestApprovalResponse.json @@ -26,10 +26,6 @@ } }, "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" - }, "AdditionalFileSystemPermissions": { "type": "object", "properties": { @@ -57,7 +53,7 @@ "null" ], "items": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } }, "write": { @@ -67,7 +63,7 @@ "null" ], "items": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } } } @@ -101,7 +97,7 @@ ], "properties": { "path": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" }, "type": { "type": "string", @@ -304,6 +300,9 @@ } } }, + "LegacyAppPathString": { + "type": "string" + }, "PermissionGrantScope": { "type": "string", "enum": [ diff --git a/schemas/ServerNotification.json b/schemas/ServerNotification.json index ee011d7..e4b23d4 100644 --- a/schemas/ServerNotification.json +++ b/schemas/ServerNotification.json @@ -84,6 +84,26 @@ }, "title": "Thread/archivedNotification" }, + { + "type": "object", + "required": [ + "method", + "params" + ], + "properties": { + "method": { + "type": "string", + "enum": [ + "thread/deleted" + ], + "title": "Thread/deletedNotificationMethod" + }, + "params": { + "$ref": "#/definitions/ThreadDeletedNotification" + } + }, + "title": "Thread/deletedNotification" + }, { "type": "object", "required": [ @@ -789,6 +809,26 @@ }, "title": "RemoteControl/status/changedNotification" }, + { + "type": "object", + "required": [ + "method", + "params" + ], + "properties": { + "method": { + "type": "string", + "enum": [ + "externalAgentConfig/import/progress" + ], + "title": "ExternalAgentConfig/import/progressNotificationMethod" + }, + "params": { + "$ref": "#/definitions/ExternalAgentConfigImportProgressNotification" + } + }, + "title": "ExternalAgentConfig/import/progressNotification" + }, { "type": "object", "required": [ @@ -950,6 +990,46 @@ }, "title": "Model/verificationNotification" }, + { + "type": "object", + "required": [ + "method", + "params" + ], + "properties": { + "method": { + "type": "string", + "enum": [ + "turn/moderationMetadata" + ], + "title": "Turn/moderationMetadataNotificationMethod" + }, + "params": { + "$ref": "#/definitions/TurnModerationMetadataNotification" + } + }, + "title": "Turn/moderationMetadataNotification" + }, + { + "type": "object", + "required": [ + "method", + "params" + ], + "properties": { + "method": { + "type": "string", + "enum": [ + "model/safetyBuffering/updated" + ], + "title": "Model/safetyBuffering/updatedNotificationMethod" + }, + "params": { + "$ref": "#/definitions/ModelSafetyBufferingUpdatedNotification" + } + }, + "title": "Model/safetyBuffering/updatedNotification" + }, { "type": "object", "required": [ @@ -1321,6 +1401,7 @@ } }, "AccountRateLimitsUpdatedNotification": { + "description": "Sparse rolling rate-limit update.\n\nClients should merge available values into the most recent `account/rateLimits/read` response or refetch that snapshot. Nullable account metadata may be unavailable in a rolling update and does not clear a previously observed value.", "type": "object", "required": [ "rateLimits" @@ -1403,7 +1484,7 @@ "null" ], "items": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } }, "write": { @@ -1413,7 +1494,7 @@ "null" ], "items": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } } } @@ -1816,6 +1897,20 @@ "enum": [ "agentIdentity" ] + }, + { + "description": "Programmatic Codex auth backed by a personal access token.", + "type": "string", + "enum": [ + "personalAccessToken" + ] + }, + { + "description": "Amazon Bedrock bearer token managed by Codex.", + "type": "string", + "enum": [ + "bedrockApiKey" + ] } ] }, @@ -2416,7 +2511,145 @@ } }, "ExternalAgentConfigImportCompletedNotification": { - "type": "object" + "type": "object", + "required": [ + "importId", + "itemTypeResults" + ], + "properties": { + "importId": { + "type": "string" + }, + "itemTypeResults": { + "type": "array", + "items": { + "$ref": "#/definitions/ExternalAgentConfigImportTypeResult" + } + } + } + }, + "ExternalAgentConfigImportItemTypeFailure": { + "type": "object", + "required": [ + "failureStage", + "itemType", + "message" + ], + "properties": { + "cwd": { + "type": [ + "string", + "null" + ] + }, + "errorType": { + "type": [ + "string", + "null" + ] + }, + "failureStage": { + "type": "string" + }, + "itemType": { + "$ref": "#/definitions/ExternalAgentConfigMigrationItemType" + }, + "message": { + "type": "string" + }, + "source": { + "type": [ + "string", + "null" + ] + } + } + }, + "ExternalAgentConfigImportItemTypeSuccess": { + "type": "object", + "required": [ + "itemType" + ], + "properties": { + "cwd": { + "type": [ + "string", + "null" + ] + }, + "itemType": { + "$ref": "#/definitions/ExternalAgentConfigMigrationItemType" + }, + "source": { + "type": [ + "string", + "null" + ] + }, + "target": { + "type": [ + "string", + "null" + ] + } + } + }, + "ExternalAgentConfigImportProgressNotification": { + "type": "object", + "required": [ + "importId", + "itemTypeResults" + ], + "properties": { + "importId": { + "type": "string" + }, + "itemTypeResults": { + "type": "array", + "items": { + "$ref": "#/definitions/ExternalAgentConfigImportTypeResult" + } + } + } + }, + "ExternalAgentConfigImportTypeResult": { + "type": "object", + "required": [ + "failures", + "itemType", + "successes" + ], + "properties": { + "failures": { + "type": "array", + "items": { + "$ref": "#/definitions/ExternalAgentConfigImportItemTypeFailure" + } + }, + "itemType": { + "$ref": "#/definitions/ExternalAgentConfigMigrationItemType" + }, + "successes": { + "type": "array", + "items": { + "$ref": "#/definitions/ExternalAgentConfigImportItemTypeSuccess" + } + } + } + }, + "ExternalAgentConfigMigrationItemType": { + "type": "string", + "enum": [ + "AGENTS_MD", + "CONFIG", + "SKILLS", + "PLUGINS", + "MCP_SERVER_CONFIG", + "SUBAGENTS", + "HOOKS", + "COMMANDS", + "SESSIONS" + ] }, "FileChangeOutputDeltaNotification": { "description": "Deprecated legacy notification for `apply_patch` textual output.\n\nThe server no longer emits this notification.", @@ -2486,7 +2719,7 @@ ], "properties": { "path": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" }, "type": { "type": "string", @@ -3295,6 +3528,7 @@ "sessionFlags", "plugin", "cloudRequirements", + "cloudManagedConfig", "legacyManagedConfigFile", "legacyManagedConfigMdm", "unknown" @@ -3324,6 +3558,8 @@ "ImageDetail": { "type": "string", "enum": [ + "auto", + "low", "high", "original" ] @@ -3472,6 +3708,9 @@ } } }, + "LegacyAppPathString": { + "type": "string" + }, "McpServerOauthLoginCompletedNotification": { "type": "object", "required": [ @@ -3520,6 +3759,35 @@ }, "status": { "$ref": "#/definitions/McpServerStartupState" + }, + "threadId": { + "type": [ + "string", + "null" + ] + } + } + }, + "McpToolCallAppContext": { + "type": "object", + "required": [ + "connectorId" + ], + "properties": { + "connectorId": { + "type": "string" + }, + "linkId": { + "type": [ + "string", + "null" + ] + }, + "resourceUri": { + "type": [ + "string", + "null" + ] } } }, @@ -3687,6 +3955,39 @@ } } }, + "ModelSafetyBufferingUpdatedNotification": { + "type": "object", + "required": [ + "model", + "reasons", + "threadId", + "turnId", + "useCases" + ], + "properties": { + "model": { + "type": "string" + }, + "reasons": { + "type": "array", + "items": { + "type": "string" + } + }, + "threadId": { + "type": "string" + }, + "turnId": { + "type": "string" + }, + "useCases": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, "ModelVerification": { "type": "string", "enum": [ @@ -3715,6 +4016,15 @@ } } }, + "MultiAgentMode": { + "description": "Controls whether the model receives multi-agent delegation instructions and, when it does, whether it should only spawn sub-agents after an explicit user request or may delegate proactively when doing so would help. `none` leaves the multi-agent tools available without injecting delegation instructions.", + "type": "string", + "enum": [ + "none", + "explicitRequestOnly", + "proactive" + ] + }, "NetworkAccess": { "type": "string", "enum": [ @@ -3967,6 +4277,16 @@ } ] }, + "individualLimit": { + "anyOf": [ + { + "$ref": "#/definitions/SpendControlLimitSnapshot" + }, + { + "type": "null" + } + ] + }, "limitId": { "type": [ "string", @@ -4055,16 +4375,9 @@ ] }, "ReasoningEffort": { - "description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning", + "description": "A non-empty reasoning effort value advertised by the model.", "type": "string", - "enum": [ - "none", - "minimal", - "low", - "medium", - "high", - "xhigh" - ] + "minLength": 1 }, "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", @@ -4424,6 +4737,39 @@ "description": "Notification emitted when watched local skill files change.\n\nTreat this as an invalidation signal and re-run `skills/list` with the client's current parameters when refreshed skill metadata is needed.", "type": "object" }, + "SpendControlLimitSnapshot": { + "type": "object", + "required": [ + "limit", + "remainingPercent", + "resetsAt", + "used" + ], + "properties": { + "limit": { + "type": "string" + }, + "remainingPercent": { + "type": "integer", + "format": "int32" + }, + "resetsAt": { + "type": "integer", + "format": "int64" + }, + "used": { + "type": "string" + } + } + }, + "SubAgentActivityKind": { + "type": "string", + "enum": [ + "started", + "interacted", + "interrupted" + ] + }, "SubAgentSource": { "oneOf": [ { @@ -4670,6 +5016,13 @@ "null" ] }, + "parentThreadId": { + "description": "The ID of the parent thread. This will only be set if this thread is a subagent.", + "type": [ + "string", + "null" + ] + }, "path": { "description": "[UNSTABLE] Path to the thread on disk.", "type": [ @@ -4681,6 +5034,14 @@ "description": "Usually the first user message in the thread, if available.", "type": "string" }, + "recencyAt": { + "description": "Unix timestamp (in seconds) used for thread recency ordering.", + "type": [ + "integer", + "null" + ], + "format": "int64" + }, "sessionId": { "description": "Session id shared by threads that belong to the same session tree.", "type": "string" @@ -4755,6 +5116,17 @@ } } }, + "ThreadDeletedNotification": { + "type": "object", + "required": [ + "threadId" + ], + "properties": { + "threadId": { + "type": "string" + } + } + }, "ThreadGoal": { "type": "object", "required": [ @@ -4857,6 +5229,12 @@ "type" ], "properties": { + "clientId": { + "type": [ + "string", + "null" + ] + }, "content": { "type": "array", "items": { @@ -5041,7 +5419,7 @@ "description": "The command's working directory.", "allOf": [ { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } ] }, @@ -5134,6 +5512,16 @@ "type" ], "properties": { + "appContext": { + "anyOf": [ + { + "$ref": "#/definitions/McpToolCallAppContext" + }, + { + "type": "null" + } + ] + }, "arguments": true, "durationMs": { "description": "The duration of the MCP tool call in milliseconds.", @@ -5157,6 +5545,7 @@ "type": "string" }, "mcpAppResourceUri": { + "description": "Deprecated: use `appContext.resourceUri` instead.", "type": [ "string", "null" @@ -5341,6 +5730,38 @@ }, "title": "CollabAgentToolCallThreadItem" }, + { + "type": "object", + "required": [ + "agentPath", + "agentThreadId", + "id", + "kind", + "type" + ], + "properties": { + "agentPath": { + "type": "string" + }, + "agentThreadId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "$ref": "#/definitions/SubAgentActivityKind" + }, + "type": { + "type": "string", + "enum": [ + "subAgentActivity" + ], + "title": "SubAgentActivityThreadItemType" + } + }, + "title": "SubAgentActivityThreadItem" + }, { "type": "object", "required": [ @@ -5399,6 +5820,32 @@ }, "title": "ImageViewThreadItem" }, + { + "type": "object", + "required": [ + "durationMs", + "id", + "type" + ], + "properties": { + "durationMs": { + "type": "integer", + "format": "uint64", + "minimum": 0.0 + }, + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "sleep" + ], + "title": "SleepThreadItemType" + } + }, + "title": "SleepThreadItem" + }, { "type": "object", "required": [ @@ -5762,6 +6209,16 @@ "modelProvider": { "type": "string" }, + "summary": { + "anyOf": [ + { + "$ref": "#/definitions/ReasoningSummary" + }, + { + "type": "null" + } + ] + }, "personality": { "anyOf": [ { @@ -5780,16 +6237,6 @@ "string", "null" ] - }, - "summary": { - "anyOf": [ - { - "$ref": "#/definitions/ReasoningSummary" - }, - { - "type": "null" - } - ] } } }, @@ -5809,12 +6256,7 @@ } }, "ThreadSource": { - "type": "string", - "enum": [ - "user", - "subagent", - "memory_consolidation" - ] + "type": "string" }, "ThreadStartedNotification": { "type": "object", @@ -6156,6 +6598,23 @@ } ] }, + "TurnModerationMetadataNotification": { + "type": "object", + "required": [ + "metadata", + "threadId", + "turnId" + ], + "properties": { + "metadata": true, + "threadId": { + "type": "string" + }, + "turnId": { + "type": "string" + } + } + }, "TurnPlanStep": { "type": "object", "required": [ diff --git a/schemas/ServerRequest.json b/schemas/ServerRequest.json index b40fb96..b5dddd6 100644 --- a/schemas/ServerRequest.json +++ b/schemas/ServerRequest.json @@ -285,7 +285,7 @@ "null" ], "items": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } }, "write": { @@ -295,7 +295,7 @@ "null" ], "items": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } } } @@ -638,13 +638,21 @@ "description": "The command's working directory.", "anyOf": [ { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" }, { "type": "null" } ] }, + "environmentId": { + "description": "Environment in which the command will run.", + "default": null, + "type": [ + "string", + "null" + ] + }, "itemId": { "type": "string" }, @@ -693,6 +701,43 @@ } } }, + "ToolRequestUserInputQuestion": { + "description": "EXPERIMENTAL. Represents one request_user_input question and its required options.", + "type": "object", + "required": [ + "header", + "id", + "question" + ], + "properties": { + "header": { + "type": "string" + }, + "id": { + "type": "string" + }, + "isOther": { + "default": false, + "type": "boolean" + }, + "isSecret": { + "default": false, + "type": "boolean" + }, + "options": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/ToolRequestUserInputOption" + } + }, + "question": { + "type": "string" + } + } + }, "DynamicToolCallParams": { "type": "object", "required": [ @@ -898,7 +943,7 @@ ], "properties": { "path": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" }, "type": { "type": "string", @@ -1076,6 +1121,9 @@ } ] }, + "LegacyAppPathString": { + "type": "string" + }, "McpElicitationArrayType": { "type": "string", "enum": [ @@ -1633,6 +1681,27 @@ } } }, + { + "type": "object", + "required": [ + "message", + "mode", + "requestedSchema" + ], + "properties": { + "_meta": true, + "message": { + "type": "string" + }, + "mode": { + "type": "string", + "enum": [ + "openai/form" + ] + }, + "requestedSchema": true + } + }, { "type": "object", "required": [ @@ -1852,6 +1921,13 @@ "cwd": { "$ref": "#/definitions/AbsolutePathBuf" }, + "environmentId": { + "default": null, + "type": [ + "string", + "null" + ] + }, "itemId": { "type": "string" }, @@ -1943,6 +2019,15 @@ "turnId" ], "properties": { + "autoResolutionMs": { + "default": null, + "type": [ + "integer", + "null" + ], + "format": "uint64", + "minimum": 0.0 + }, "itemId": { "type": "string" }, @@ -1959,43 +2044,6 @@ "type": "string" } } - }, - "ToolRequestUserInputQuestion": { - "description": "EXPERIMENTAL. Represents one request_user_input question and its required options.", - "type": "object", - "required": [ - "header", - "id", - "question" - ], - "properties": { - "header": { - "type": "string" - }, - "id": { - "type": "string" - }, - "isOther": { - "default": false, - "type": "boolean" - }, - "isSecret": { - "default": false, - "type": "boolean" - }, - "options": { - "type": [ - "array", - "null" - ], - "items": { - "$ref": "#/definitions/ToolRequestUserInputOption" - } - }, - "question": { - "type": "string" - } - } } } } \ No newline at end of file diff --git a/schemas/ToolRequestUserInputParams.json b/schemas/ToolRequestUserInputParams.json index 75b985d..0874e6a 100644 --- a/schemas/ToolRequestUserInputParams.json +++ b/schemas/ToolRequestUserInputParams.json @@ -10,6 +10,15 @@ "turnId" ], "properties": { + "autoResolutionMs": { + "default": null, + "type": [ + "integer", + "null" + ], + "format": "uint64", + "minimum": 0.0 + }, "itemId": { "type": "string" }, diff --git a/schemas/codex_app_server_protocol.schemas.json b/schemas/codex_app_server_protocol.schemas.json index 24c6d88..362a708 100644 --- a/schemas/codex_app_server_protocol.schemas.json +++ b/schemas/codex_app_server_protocol.schemas.json @@ -319,6 +319,10 @@ "default": false, "type": "boolean" }, + "mcpServerOpenaiFormElicitation": { + "description": "Allow downstream MCP servers to request OpenAI extended form elicitations.", + "type": "boolean" + }, "optOutNotificationMethods": { "description": "Exact notification method names that should be suppressed for this connection (for example `thread/started`).", "type": [ @@ -485,6 +489,30 @@ }, "title": "Thread/archiveRequest" }, + { + "type": "object", + "required": [ + "id", + "method", + "params" + ], + "properties": { + "id": { + "$ref": "#/definitions/v2/RequestId" + }, + "method": { + "type": "string", + "enum": [ + "thread/delete" + ], + "title": "Thread/deleteRequestMethod" + }, + "params": { + "$ref": "#/definitions/v2/ThreadDeleteParams" + } + }, + "title": "Thread/deleteRequest" + }, { "type": "object", "required": [ @@ -870,6 +898,30 @@ }, "title": "Skills/listRequest" }, + { + "type": "object", + "required": [ + "id", + "method", + "params" + ], + "properties": { + "id": { + "$ref": "#/definitions/v2/RequestId" + }, + "method": { + "type": "string", + "enum": [ + "skills/extraRoots/set" + ], + "title": "Skills/extraRoots/setRequestMethod" + }, + "params": { + "$ref": "#/definitions/v2/SkillsExtraRootsSetParams" + } + }, + "title": "Skills/extraRoots/setRequest" + }, { "type": "object", "required": [ @@ -1970,6 +2022,76 @@ }, "title": "Account/rateLimits/readRequest" }, + { + "type": "object", + "required": [ + "id", + "method", + "params" + ], + "properties": { + "id": { + "$ref": "#/definitions/v2/RequestId" + }, + "method": { + "type": "string", + "enum": [ + "account/rateLimitResetCredit/consume" + ], + "title": "Account/rateLimitResetCredit/consumeRequestMethod" + }, + "params": { + "$ref": "#/definitions/v2/ConsumeAccountRateLimitResetCreditParams" + } + }, + "title": "Account/rateLimitResetCredit/consumeRequest" + }, + { + "type": "object", + "required": [ + "id", + "method" + ], + "properties": { + "id": { + "$ref": "#/definitions/v2/RequestId" + }, + "method": { + "type": "string", + "enum": [ + "account/usage/read" + ], + "title": "Account/usage/readRequestMethod" + }, + "params": { + "type": "null" + } + }, + "title": "Account/usage/readRequest" + }, + { + "type": "object", + "required": [ + "id", + "method" + ], + "properties": { + "id": { + "$ref": "#/definitions/v2/RequestId" + }, + "method": { + "type": "string", + "enum": [ + "account/workspaceMessages/read" + ], + "title": "Account/workspaceMessages/readRequestMethod" + }, + "params": { + "type": "null" + } + }, + "title": "Account/workspaceMessages/readRequest" + }, { "type": "object", "required": [ @@ -2190,6 +2312,29 @@ }, "title": "ExternalAgentConfig/importRequest" }, + { + "type": "object", + "required": [ + "id", + "method" + ], + "properties": { + "id": { + "$ref": "#/definitions/v2/RequestId" + }, + "method": { + "type": "string", + "enum": [ + "externalAgentConfig/import/readHistories" + ], + "title": "ExternalAgentConfig/import/readHistoriesRequestMethod" + }, + "params": { + "type": "null" + } + }, + "title": "ExternalAgentConfig/import/readHistoriesRequest" + }, { "type": "object", "required": [ @@ -2536,13 +2681,21 @@ "description": "The command's working directory.", "anyOf": [ { - "$ref": "#/definitions/v2/AbsolutePathBuf" + "$ref": "#/definitions/v2/LegacyAppPathString" }, { "type": "null" } ] }, + "environmentId": { + "description": "Environment in which the command will run.", + "default": null, + "type": [ + "string", + "null" + ] + }, "itemId": { "type": "string" }, @@ -2591,6 +2744,34 @@ } } }, + "PermissionsRequestApprovalResponse": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "PermissionsRequestApprovalResponse", + "type": "object", + "required": [ + "permissions" + ], + "properties": { + "permissions": { + "$ref": "#/definitions/GrantedPermissionProfile" + }, + "scope": { + "default": "turn", + "allOf": [ + { + "$ref": "#/definitions/PermissionGrantScope" + } + ] + }, + "strictAutoReview": { + "description": "Review every subsequent command in this turn before normal sandboxed execution.", + "type": [ + "boolean", + "null" + ] + } + } + }, "DynamicToolCallParams": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "DynamicToolCallParams", @@ -3343,6 +3524,27 @@ } } }, + { + "type": "object", + "required": [ + "message", + "mode", + "requestedSchema" + ], + "properties": { + "_meta": true, + "message": { + "type": "string" + }, + "mode": { + "type": "string", + "enum": [ + "openai/form" + ] + }, + "requestedSchema": true + } + }, { "type": "object", "required": [ @@ -3555,6 +3757,13 @@ "cwd": { "$ref": "#/definitions/v2/AbsolutePathBuf" }, + "environmentId": { + "default": null, + "type": [ + "string", + "null" + ] + }, "itemId": { "type": "string" }, @@ -3608,6 +3817,15 @@ "turnId" ], "properties": { + "autoResolutionMs": { + "default": null, + "type": [ + "integer", + "null" + ], + "format": "uint64", + "minimum": 0.0 + }, "itemId": { "type": "string" }, @@ -4111,6 +4329,26 @@ }, "title": "Thread/archivedNotification" }, + { + "type": "object", + "required": [ + "method", + "params" + ], + "properties": { + "method": { + "type": "string", + "enum": [ + "thread/deleted" + ], + "title": "Thread/deletedNotificationMethod" + }, + "params": { + "$ref": "#/definitions/v2/ThreadDeletedNotification" + } + }, + "title": "Thread/deletedNotification" + }, { "type": "object", "required": [ @@ -4816,6 +5054,26 @@ }, "title": "RemoteControl/status/changedNotification" }, + { + "type": "object", + "required": [ + "method", + "params" + ], + "properties": { + "method": { + "type": "string", + "enum": [ + "externalAgentConfig/import/progress" + ], + "title": "ExternalAgentConfig/import/progressNotificationMethod" + }, + "params": { + "$ref": "#/definitions/v2/ExternalAgentConfigImportProgressNotification" + } + }, + "title": "ExternalAgentConfig/import/progressNotification" + }, { "type": "object", "required": [ @@ -4977,6 +5235,46 @@ }, "title": "Model/verificationNotification" }, + { + "type": "object", + "required": [ + "method", + "params" + ], + "properties": { + "method": { + "type": "string", + "enum": [ + "turn/moderationMetadata" + ], + "title": "Turn/moderationMetadataNotificationMethod" + }, + "params": { + "$ref": "#/definitions/v2/TurnModerationMetadataNotification" + } + }, + "title": "Turn/moderationMetadataNotification" + }, + { + "type": "object", + "required": [ + "method", + "params" + ], + "properties": { + "method": { + "type": "string", + "enum": [ + "model/safetyBuffering/updated" + ], + "title": "Model/safetyBuffering/updatedNotificationMethod" + }, + "params": { + "$ref": "#/definitions/v2/ModelSafetyBufferingUpdatedNotification" + } + }, + "title": "Model/safetyBuffering/updatedNotification" + }, { "type": "object", "required": [ @@ -5384,31 +5682,144 @@ } ] }, - "DynamicToolSpec": { - "type": "object", - "required": [ - "description", - "inputSchema", - "name" - ], - "properties": { - "deferLoading": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "inputSchema": true, - "name": { - "type": "string" - }, - "namespace": { - "type": [ - "string", - "null" - ] + "CapabilityRootLocation": { + "description": "Location used to resolve a selected capability root.", + "oneOf": [ + { + "description": "A path owned by an execution environment.", + "type": "object", + "required": [ + "environmentId", + "path", + "type" + ], + "properties": { + "environmentId": { + "type": "string" + }, + "path": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "environment" + ], + "title": "EnvironmentCapabilityRootLocationType" + } + }, + "title": "EnvironmentCapabilityRootLocation" } - } + ] + }, + "DynamicToolNamespaceTool": { + "oneOf": [ + { + "type": "object", + "required": [ + "description", + "inputSchema", + "name", + "type" + ], + "properties": { + "deferLoading": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "inputSchema": true, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "function" + ], + "title": "FunctionDynamicToolNamespaceToolType" + } + }, + "title": "FunctionDynamicToolNamespaceTool" + } + ] + }, + "DynamicToolSpec": { + "oneOf": [ + { + "type": "object", + "required": [ + "description", + "inputSchema", + "name", + "type" + ], + "properties": { + "deferLoading": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "inputSchema": true, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "function" + ], + "title": "FunctionDynamicToolSpecType" + } + }, + "title": "FunctionDynamicToolSpec" + }, + { + "type": "object", + "required": [ + "description", + "name", + "tools", + "type" + ], + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/v2/DynamicToolNamespaceTool" + } + }, + "type": { + "type": "string", + "enum": [ + "namespace" + ], + "title": "NamespaceDynamicToolSpecType" + } + }, + "title": "NamespaceDynamicToolSpec" + } + ] + }, + "LegacyAppPathString": { + "type": "string" + }, + "MultiAgentMode": { + "description": "Controls whether the model receives multi-agent delegation instructions and, when it does, whether it should only spawn sub-agents after an explicit user request or may delegate proactively when doing so would help. `none` leaves the multi-agent tools available without injecting delegation instructions.", + "type": "string", + "enum": [ + "none", + "explicitRequestOnly", + "proactive" + ] }, "Personality": { "type": "string", @@ -5426,13 +5837,30 @@ "danger-full-access" ] }, + "SelectedCapabilityRoot": { + "description": "A user-selected root that can expose one or more runtime capabilities.", + "type": "object", + "required": [ + "id", + "location" + ], + "properties": { + "id": { + "description": "Stable identifier supplied by the capability selection platform.", + "type": "string" + }, + "location": { + "description": "Where the selected root can be resolved.", + "allOf": [ + { + "$ref": "#/definitions/v2/CapabilityRootLocation" + } + ] + } + } + }, "ThreadSource": { - "type": "string", - "enum": [ - "user", - "subagent", - "memory_consolidation" - ] + "type": "string" }, "ThreadStartSource": { "type": "string", @@ -5449,7 +5877,7 @@ ], "properties": { "cwd": { - "$ref": "#/definitions/v2/AbsolutePathBuf" + "$ref": "#/definitions/v2/LegacyAppPathString" }, "environmentId": { "type": "string" @@ -5507,6 +5935,12 @@ "null" ] }, + "serviceName": { + "type": [ + "string", + "null" + ] + }, "sandbox": { "anyOf": [ { @@ -5517,27 +5951,21 @@ } ] }, - "threadSource": { - "description": "Optional client-supplied analytics source classification for this thread.", - "anyOf": [ - { - "$ref": "#/definitions/v2/ThreadSource" - }, - { - "type": "null" - } - ] - }, "ephemeral": { "type": [ "boolean", "null" ] }, - "serviceTier": { - "type": [ - "string", - "null" + "threadSource": { + "description": "Optional client-supplied analytics source classification for this thread.", + "anyOf": [ + { + "$ref": "#/definitions/v2/ThreadSource" + }, + { + "type": "null" + } ] }, "personality": { @@ -5562,6 +5990,12 @@ "null" ] }, + "serviceTier": { + "type": [ + "string", + "null" + ] + }, "sessionStartSource": { "anyOf": [ { @@ -5571,15 +6005,53 @@ "type": "null" } ] - }, - "serviceName": { - "type": [ - "string", - "null" - ] } } }, + "AgentMessageInputContent": { + "oneOf": [ + { + "type": "object", + "required": [ + "text", + "type" + ], + "properties": { + "text": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "input_text" + ], + "title": "InputTextAgentMessageInputContentType" + } + }, + "title": "InputTextAgentMessageInputContent" + }, + { + "type": "object", + "required": [ + "encrypted_content", + "type" + ], + "properties": { + "encrypted_content": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "encrypted_content" + ], + "title": "EncryptedContentAgentMessageInputContentType" + } + }, + "title": "EncryptedContentAgentMessageInputContent" + } + ] + }, "ContentItem": { "oneOf": [ { @@ -5745,10 +6217,24 @@ "ImageDetail": { "type": "string", "enum": [ + "auto", + "low", "high", "original" ] }, + "InternalChatMessageMetadataPassthrough": { + "description": "Internal Responses API passthrough metadata copied into underlying chat messages.\n\nResponses API strongly types this payload. Do not modify it without first getting API approval and making the corresponding Responses API change.", + "type": "object", + "properties": { + "turn_id": { + "type": [ + "string", + "null" + ] + } + } + }, "LocalShellAction": { "oneOf": [ { @@ -5917,12 +6403,21 @@ } }, "id": { - "writeOnly": true, "type": [ "string", "null" ] }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/v2/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "phase": { "anyOf": [ { @@ -5946,6 +6441,53 @@ }, "title": "MessageResponseItem" }, + { + "type": "object", + "required": [ + "author", + "content", + "recipient", + "type" + ], + "properties": { + "author": { + "type": "string" + }, + "content": { + "type": "array", + "items": { + "$ref": "#/definitions/v2/AgentMessageInputContent" + } + }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/v2/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, + "recipient": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "agent_message" + ], + "title": "AgentMessageResponseItemType" + } + }, + "title": "AgentMessageResponseItem" + }, { "type": "object", "required": [ @@ -5969,6 +6511,22 @@ "null" ] }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/v2/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "summary": { "type": "array", "items": { @@ -6005,12 +6563,21 @@ }, "id": { "description": "Legacy id field retained for compatibility with older payloads.", - "writeOnly": true, "type": [ "string", "null" ] }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/v2/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "status": { "$ref": "#/definitions/v2/LocalShellStatus" }, @@ -6040,12 +6607,21 @@ "type": "string" }, "id": { - "writeOnly": true, "type": [ "string", "null" ] }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/v2/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "name": { "type": "string" }, @@ -6084,12 +6660,21 @@ "type": "string" }, "id": { - "writeOnly": true, "type": [ "string", "null" ] }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/v2/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "status": { "type": [ "string", @@ -6117,6 +6702,22 @@ "call_id": { "type": "string" }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/v2/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "output": { "$ref": "#/definitions/v2/FunctionCallOutputBody" }, @@ -6143,7 +6744,6 @@ "type": "string" }, "id": { - "writeOnly": true, "type": [ "string", "null" @@ -6152,6 +6752,16 @@ "input": { "type": "string" }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/v2/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "name": { "type": "string" }, @@ -6182,6 +6792,22 @@ "call_id": { "type": "string" }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/v2/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "name": { "type": [ "string", @@ -6219,6 +6845,22 @@ "execution": { "type": "string" }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/v2/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "status": { "type": "string" }, @@ -6253,12 +6895,21 @@ ] }, "id": { - "writeOnly": true, "type": [ "string", "null" ] }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/v2/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "status": { "type": [ "string", @@ -6278,14 +6929,26 @@ { "type": "object", "required": [ - "id", "result", "status", "type" ], "properties": { "id": { - "type": "string" + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/v2/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] }, "result": { "type": "string" @@ -6319,6 +6982,22 @@ "encrypted_content": { "type": "string" }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/v2/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "type": { "type": "string", "enum": [ @@ -6335,6 +7014,16 @@ "type" ], "properties": { + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/v2/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "type": { "type": "string", "enum": [ @@ -6357,6 +7046,22 @@ "null" ] }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/v2/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "type": { "type": "string", "enum": [ @@ -6486,6 +7191,74 @@ } ] }, + "SortDirection": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + }, + "ThreadResumeInitialTurnsPageParams": { + "type": "object", + "properties": { + "itemsView": { + "description": "How much item detail to include for each returned turn; defaults to summary.", + "anyOf": [ + { + "$ref": "#/definitions/v2/TurnItemsView" + }, + { + "type": "null" + } + ] + }, + "limit": { + "description": "Optional turn page size.", + "type": [ + "integer", + "null" + ], + "format": "uint32", + "minimum": 0.0 + }, + "sortDirection": { + "description": "Optional turn pagination direction; defaults to descending.", + "anyOf": [ + { + "$ref": "#/definitions/v2/SortDirection" + }, + { + "type": "null" + } + ] + } + } + }, + "TurnItemsView": { + "oneOf": [ + { + "description": "`items` was not loaded for this turn. The field is intentionally empty.", + "type": "string", + "enum": [ + "notLoaded" + ] + }, + { + "description": "`items` contains only a display summary for this turn.", + "type": "string", + "enum": [ + "summary" + ] + }, + { + "description": "`items` contains every ThreadItem available from persisted app-server history for this turn.", + "type": "string", + "enum": [ + "full" + ] + } + ] + }, "ThreadResumeParams": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "ThreadResumeParams", @@ -6541,6 +7314,15 @@ "null" ] }, + "serviceTier": { + "type": [ + "string", + "null" + ] + }, + "threadId": { + "type": "string" + }, "personality": { "anyOf": [ { @@ -6551,16 +7333,6 @@ } ] }, - "sandbox": { - "anyOf": [ - { - "$ref": "#/definitions/v2/SandboxMode" - }, - { - "type": "null" - } - ] - }, "model": { "description": "Configuration overrides for the resumed thread, if any.", "type": [ @@ -6574,14 +7346,15 @@ "null" ] }, - "serviceTier": { - "type": [ - "string", - "null" + "sandbox": { + "anyOf": [ + { + "$ref": "#/definitions/v2/SandboxMode" + }, + { + "type": "null" + } ] - }, - "threadId": { - "type": "string" } } }, @@ -6643,14 +7416,10 @@ "ephemeral": { "type": "boolean" }, - "sandbox": { - "anyOf": [ - { - "$ref": "#/definitions/v2/SandboxMode" - }, - { - "type": "null" - } + "serviceTier": { + "type": [ + "string", + "null" ] }, "model": { @@ -6666,15 +7435,6 @@ "null" ] }, - "serviceTier": { - "type": [ - "string", - "null" - ] - }, - "threadId": { - "type": "string" - }, "threadSource": { "description": "Optional client-supplied analytics source classification for this forked thread.", "anyOf": [ @@ -6685,6 +7445,19 @@ "type": "null" } ] + }, + "sandbox": { + "anyOf": [ + { + "$ref": "#/definitions/v2/SandboxMode" + }, + { + "type": "null" + } + ] + }, + "threadId": { + "type": "string" } } }, @@ -6701,6 +7474,19 @@ } } }, + "ThreadDeleteParams": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ThreadDeleteParams", + "type": "object", + "required": [ + "threadId" + ], + "properties": { + "threadId": { + "type": "string" + } + } + }, "ThreadUnsubscribeParams": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "ThreadUnsubscribeParams", @@ -6934,16 +7720,9 @@ ] }, "ReasoningEffort": { - "description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning", + "description": "A non-empty reasoning effort value advertised by the model.", "type": "string", - "enum": [ - "none", - "minimal", - "low", - "medium", - "high", - "xhigh" - ] + "minLength": 1 }, "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", @@ -7224,6 +8003,42 @@ } } }, + "ThreadRealtimeSdpNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ThreadRealtimeSdpNotification", + "description": "EXPERIMENTAL - emitted with the remote SDP for a WebRTC realtime session.", + "type": "object", + "required": [ + "sdp", + "threadId" + ], + "properties": { + "sdp": { + "type": "string" + }, + "threadId": { + "type": "string" + } + } + }, + "ThreadRealtimeOutputAudioDeltaNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ThreadRealtimeOutputAudioDeltaNotification", + "description": "EXPERIMENTAL - streamed output audio emitted by thread realtime.", + "type": "object", + "required": [ + "audio", + "threadId" + ], + "properties": { + "audio": { + "$ref": "#/definitions/v2/ThreadRealtimeAudioChunk" + }, + "threadId": { + "type": "string" + } + } + }, "ThreadRollbackParams": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "ThreadRollbackParams", @@ -7244,13 +8059,6 @@ } } }, - "SortDirection": { - "type": "string", - "enum": [ - "asc", - "desc" - ] - }, "ThreadListCwdFilter": { "anyOf": [ { @@ -7268,7 +8076,8 @@ "type": "string", "enum": [ "created_at", - "updated_at" + "updated_at", + "recency_at" ] }, "ThreadSourceKind": { @@ -7335,6 +8144,10 @@ "type": "string" } }, + "useStateDbOnly": { + "description": "If true, return from the state DB without scanning JSONL rollouts to repair thread metadata. Omitted or false preserves scan-and-repair behavior.", + "type": "boolean" + }, "searchTerm": { "description": "Optional substring filter for the extracted thread title.", "type": [ @@ -7373,10 +8186,29 @@ "items": { "$ref": "#/definitions/v2/ThreadSourceKind" } + } + } + }, + "ThreadRealtimeTranscriptDoneNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ThreadRealtimeTranscriptDoneNotification", + "description": "EXPERIMENTAL - final transcript text emitted when realtime completes a transcript part.", + "type": "object", + "required": [ + "role", + "text", + "threadId" + ], + "properties": { + "role": { + "type": "string" }, - "useStateDbOnly": { - "description": "If true, return from the state DB without scanning JSONL rollouts to repair thread metadata. Omitted or false preserves scan-and-repair behavior.", - "type": "boolean" + "text": { + "description": "Final complete text for the transcript part.", + "type": "string" + }, + "threadId": { + "type": "string" } } }, @@ -7413,7 +8245,6 @@ "properties": { "includeTurns": { "description": "When true, include turns and their items from rollout history.", - "default": false, "type": "boolean" }, "threadId": { @@ -7421,42 +8252,22 @@ } } }, - "TurnItemsView": { - "oneOf": [ - { - "description": "`items` was not loaded for this turn. The field is intentionally empty.", - "type": "string", - "enum": [ - "notLoaded" - ] - }, - { - "description": "`items` contains only a display summary for this turn.", - "type": "string", - "enum": [ - "summary" - ] - }, - { - "description": "`items` contains every ThreadItem available from persisted app-server history for this turn.", - "type": "string", - "enum": [ - "full" - ] - } - ] - }, - "ThreadRealtimeSdpNotification": { + "ThreadRealtimeTranscriptDeltaNotification": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ThreadRealtimeSdpNotification", - "description": "EXPERIMENTAL - emitted with the remote SDP for a WebRTC realtime session.", + "title": "ThreadRealtimeTranscriptDeltaNotification", + "description": "EXPERIMENTAL - flat transcript delta emitted whenever realtime transcript text changes.", "type": "object", "required": [ - "sdp", + "delta", + "role", "threadId" ], "properties": { - "sdp": { + "delta": { + "description": "Live transcript delta from the realtime event.", + "type": "string" + }, + "role": { "type": "string" }, "threadId": { @@ -7464,19 +8275,17 @@ } } }, - "ThreadRealtimeOutputAudioDeltaNotification": { + "ThreadRealtimeItemAddedNotification": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ThreadRealtimeOutputAudioDeltaNotification", - "description": "EXPERIMENTAL - streamed output audio emitted by thread realtime.", + "title": "ThreadRealtimeItemAddedNotification", + "description": "EXPERIMENTAL - raw non-audio thread realtime item emitted by the backend.", "type": "object", "required": [ - "audio", + "item", "threadId" ], "properties": { - "audio": { - "$ref": "#/definitions/v2/ThreadRealtimeAudioChunk" - }, + "item": true, "threadId": { "type": "string" } @@ -7519,6 +8328,22 @@ } } }, + "SkillsExtraRootsSetParams": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "SkillsExtraRootsSetParams", + "type": "object", + "required": [ + "extraRoots" + ], + "properties": { + "extraRoots": { + "type": "array", + "items": { + "$ref": "#/definitions/v2/AbsolutePathBuf" + } + } + } + }, "HooksListParams": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "HooksListParams", @@ -7593,7 +8418,8 @@ "local", "vertical", "workspace-directory", - "shared-with-me" + "shared-with-me", + "created-by-me-remote" ] }, "PluginListParams": { @@ -8161,6 +8987,28 @@ } } }, + "AdditionalContextEntry": { + "type": "object", + "required": [ + "kind", + "value" + ], + "properties": { + "kind": { + "$ref": "#/definitions/v2/AdditionalContextKind" + }, + "value": { + "type": "string" + } + } + }, + "AdditionalContextKind": { + "type": "string", + "enum": [ + "untrusted", + "application" + ] + }, "ByteRange": { "type": "object", "required": [ @@ -8354,6 +9202,9 @@ "threadId" ], "properties": { + "threadId": { + "type": "string" + }, "approvalPolicy": { "description": "Override the approval policy for this turn and subsequent turns.", "anyOf": [ @@ -8376,6 +9227,12 @@ } ] }, + "clientUserMessageId": { + "type": [ + "string", + "null" + ] + }, "serviceTier": { "description": "Override the service tier for this turn and subsequent turns.", "type": [ @@ -8401,8 +9258,16 @@ } ] }, - "threadId": { - "type": "string" + "personality": { + "description": "Override the personality for this turn and subsequent turns.", + "anyOf": [ + { + "$ref": "#/definitions/v2/Personality" + }, + { + "type": "null" + } + ] }, "input": { "type": "array", @@ -8417,6 +9282,17 @@ "null" ] }, + "summary": { + "description": "Override the reasoning summary for this turn and subsequent turns.", + "anyOf": [ + { + "$ref": "#/definitions/v2/ReasoningSummary" + }, + { + "type": "null" + } + ] + }, "outputSchema": { "description": "Optional JSON Schema used to constrain the final assistant message for this turn." }, @@ -8430,28 +9306,6 @@ "type": "null" } ] - }, - "personality": { - "description": "Override the personality for this turn and subsequent turns.", - "anyOf": [ - { - "$ref": "#/definitions/v2/Personality" - }, - { - "type": "null" - } - ] - }, - "summary": { - "description": "Override the reasoning summary for this turn and subsequent turns.", - "anyOf": [ - { - "$ref": "#/definitions/v2/ReasoningSummary" - }, - { - "type": "null" - } - ] } } }, @@ -8465,6 +9319,15 @@ "threadId" ], "properties": { + "threadId": { + "type": "string" + }, + "clientUserMessageId": { + "type": [ + "string", + "null" + ] + }, "expectedTurnId": { "description": "Required active turn id precondition. The request fails when it does not match the currently active turn.", "type": "string" @@ -8474,9 +9337,6 @@ "items": { "$ref": "#/definitions/v2/UserInput" } - }, - "threadId": { - "type": "string" } } }, @@ -8497,6 +9357,13 @@ } } }, + "RealtimeConversationVersion": { + "type": "string", + "enum": [ + "v1", + "v2" + ] + }, "RealtimeOutputModality": { "type": "string", "enum": [ @@ -8570,26 +9437,27 @@ } ] }, - "ThreadRealtimeTranscriptDoneNotification": { + "ThreadRealtimeStartedNotification": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ThreadRealtimeTranscriptDoneNotification", - "description": "EXPERIMENTAL - final transcript text emitted when realtime completes a transcript part.", + "title": "ThreadRealtimeStartedNotification", + "description": "EXPERIMENTAL - emitted when thread realtime startup is accepted.", "type": "object", "required": [ - "role", - "text", - "threadId" + "threadId", + "version" ], "properties": { - "role": { - "type": "string" - }, - "text": { - "description": "Final complete text for the transcript part.", - "type": "string" + "realtimeSessionId": { + "type": [ + "string", + "null" + ] }, "threadId": { "type": "string" + }, + "version": { + "$ref": "#/definitions/v2/RealtimeConversationVersion" } } }, @@ -8631,76 +9499,129 @@ } } }, - "ThreadRealtimeTranscriptDeltaNotification": { + "ConfigWarningNotification": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ThreadRealtimeTranscriptDeltaNotification", - "description": "EXPERIMENTAL - flat transcript delta emitted whenever realtime transcript text changes.", + "title": "ConfigWarningNotification", "type": "object", "required": [ - "delta", - "role", - "threadId" + "summary" ], "properties": { - "delta": { - "description": "Live transcript delta from the realtime event.", - "type": "string" - }, - "role": { - "type": "string" - }, - "threadId": { - "type": "string" - } - } - }, - "ThreadRealtimeItemAddedNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ThreadRealtimeItemAddedNotification", - "description": "EXPERIMENTAL - raw non-audio thread realtime item emitted by the backend.", - "type": "object", - "required": [ - "item", - "threadId" - ], - "properties": { - "item": true, - "threadId": { - "type": "string" - } - } - }, - "ThreadRealtimeStartedNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ThreadRealtimeStartedNotification", - "description": "EXPERIMENTAL - emitted when thread realtime startup is accepted.", - "type": "object", - "required": [ - "threadId", - "version" - ], - "properties": { - "realtimeSessionId": { + "details": { + "description": "Optional extra guidance or error details.", "type": [ "string", "null" ] }, - "threadId": { - "type": "string" + "path": { + "description": "Optional path to the config file that triggered the warning.", + "type": [ + "string", + "null" + ] }, - "version": { - "$ref": "#/definitions/v2/RealtimeConversationVersion" + "range": { + "description": "Optional range for the error location inside the config file.", + "anyOf": [ + { + "$ref": "#/definitions/v2/TextRange" + }, + { + "type": "null" + } + ] + }, + "summary": { + "description": "Concise summary of the warning.", + "type": "string" } } }, - "RealtimeConversationVersion": { + "ConversationTextRole": { "type": "string", "enum": [ - "v1", - "v2" + "user", + "developer", + "assistant" ] }, + "TextRange": { + "type": "object", + "required": [ + "end", + "start" + ], + "properties": { + "end": { + "$ref": "#/definitions/v2/TextPosition" + }, + "start": { + "$ref": "#/definitions/v2/TextPosition" + } + } + }, + "TextPosition": { + "type": "object", + "required": [ + "column", + "line" + ], + "properties": { + "column": { + "description": "1-based column number (in Unicode scalar values).", + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "line": { + "description": "1-based line number.", + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "DeprecationNoticeNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "DeprecationNoticeNotification", + "type": "object", + "required": [ + "summary" + ], + "properties": { + "details": { + "description": "Optional extra guidance, such as migration steps or rationale.", + "type": [ + "string", + "null" + ] + }, + "summary": { + "description": "Concise summary of what is deprecated.", + "type": "string" + } + } + }, + "GuardianWarningNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "GuardianWarningNotification", + "type": "object", + "required": [ + "message", + "threadId" + ], + "properties": { + "message": { + "description": "Concise guardian warning message for the user.", + "type": "string" + }, + "threadId": { + "description": "Thread target for the guardian warning.", + "type": "string" + } + } + }, "ReviewDelivery": { "type": "string", "enum": [ @@ -8940,78 +9861,233 @@ } } }, - "ConfigWarningNotification": { + "RemoteControlEnableParams": { + "type": "object", + "properties": { + "ephemeral": { + "type": "boolean" + } + } + }, + "WarningNotification": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ConfigWarningNotification", + "title": "WarningNotification", "type": "object", "required": [ - "summary" + "message" ], "properties": { - "details": { - "description": "Optional extra guidance or error details.", + "message": { + "description": "Concise warning message for the user.", + "type": "string" + }, + "threadId": { + "description": "Optional thread target when the warning applies to a specific thread.", "type": [ "string", "null" ] + } + } + }, + "RemoteControlDisableParams": { + "type": "object", + "properties": { + "ephemeral": { + "type": "boolean" + } + } + }, + "ModelSafetyBufferingUpdatedNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ModelSafetyBufferingUpdatedNotification", + "type": "object", + "required": [ + "model", + "reasons", + "threadId", + "turnId", + "useCases" + ], + "properties": { + "model": { + "type": "string" }, - "path": { - "description": "Optional path to the config file that triggered the warning.", - "type": [ - "string", - "null" - ] + "reasons": { + "type": "array", + "items": { + "type": "string" + } }, - "range": { - "description": "Optional range for the error location inside the config file.", - "anyOf": [ - { - "$ref": "#/definitions/v2/TextRange" - }, - { - "type": "null" - } - ] + "threadId": { + "type": "string" }, - "summary": { - "description": "Concise summary of the warning.", + "turnId": { + "type": "string" + }, + "useCases": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "TurnModerationMetadataNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "TurnModerationMetadataNotification", + "type": "object", + "required": [ + "metadata", + "threadId", + "turnId" + ], + "properties": { + "metadata": true, + "threadId": { + "type": "string" + }, + "turnId": { "type": "string" } } }, - "TextRange": { + "ModelVerificationNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ModelVerificationNotification", "type": "object", "required": [ - "end", - "start" + "threadId", + "turnId", + "verifications" ], "properties": { - "end": { - "$ref": "#/definitions/v2/TextPosition" + "threadId": { + "type": "string" }, - "start": { - "$ref": "#/definitions/v2/TextPosition" + "turnId": { + "type": "string" + }, + "verifications": { + "type": "array", + "items": { + "$ref": "#/definitions/v2/ModelVerification" + } } } }, - "TextPosition": { + "ModelVerification": { + "type": "string", + "enum": [ + "trustedAccessForCyber" + ] + }, + "ModelReroutedNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ModelReroutedNotification", "type": "object", "required": [ - "column", - "line" + "fromModel", + "reason", + "threadId", + "toModel", + "turnId" ], "properties": { - "column": { - "description": "1-based column number (in Unicode scalar values).", - "type": "integer", - "format": "uint", - "minimum": 0.0 + "fromModel": { + "type": "string" }, - "line": { - "description": "1-based line number.", + "reason": { + "$ref": "#/definitions/v2/ModelRerouteReason" + }, + "threadId": { + "type": "string" + }, + "toModel": { + "type": "string" + }, + "turnId": { + "type": "string" + } + } + }, + "ModelRerouteReason": { + "type": "string", + "enum": [ + "highRiskCyberActivity" + ] + }, + "ContextCompactedNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ContextCompactedNotification", + "description": "Deprecated: Use `ContextCompaction` item type instead.", + "type": "object", + "required": [ + "threadId", + "turnId" + ], + "properties": { + "threadId": { + "type": "string" + }, + "turnId": { + "type": "string" + } + } + }, + "ReasoningTextDeltaNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ReasoningTextDeltaNotification", + "type": "object", + "required": [ + "contentIndex", + "delta", + "itemId", + "threadId", + "turnId" + ], + "properties": { + "contentIndex": { "type": "integer", - "format": "uint", - "minimum": 0.0 + "format": "int64" + }, + "delta": { + "type": "string" + }, + "itemId": { + "type": "string" + }, + "threadId": { + "type": "string" + }, + "turnId": { + "type": "string" + } + } + }, + "ReasoningSummaryPartAddedNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ReasoningSummaryPartAddedNotification", + "type": "object", + "required": [ + "itemId", + "summaryIndex", + "threadId", + "turnId" + ], + "properties": { + "itemId": { + "type": "string" + }, + "summaryIndex": { + "type": "integer", + "format": "int64" + }, + "threadId": { + "type": "string" + }, + "turnId": { + "type": "string" } } }, @@ -9082,6 +10158,12 @@ ], "format": "uint32", "minimum": 0.0 + }, + "threadId": { + "type": [ + "string", + "null" + ] } } }, @@ -9269,6 +10351,20 @@ } } }, + "ConsumeAccountRateLimitResetCreditParams": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ConsumeAccountRateLimitResetCreditParams", + "type": "object", + "required": [ + "idempotencyKey" + ], + "properties": { + "idempotencyKey": { + "description": "Identifies one logical reset attempt. A UUID is recommended; reuse the same value when retrying that attempt.", + "type": "string" + } + } + }, "AddCreditsNudgeCreditType": { "type": "string", "enum": [ @@ -9294,8 +10390,7 @@ "title": "FeedbackUploadParams", "type": "object", "required": [ - "classification", - "includeLogs" + "classification" ], "properties": { "classification": { @@ -9549,87 +10644,95 @@ } } }, - "DeprecationNoticeNotification": { + "ReasoningSummaryTextDeltaNotification": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "DeprecationNoticeNotification", - "type": "object", - "required": [ - "summary" - ], - "properties": { - "details": { - "description": "Optional extra guidance, such as migration steps or rationale.", - "type": [ - "string", - "null" - ] - }, - "summary": { - "description": "Concise summary of what is deprecated.", - "type": "string" - } - } - }, - "GuardianWarningNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "GuardianWarningNotification", - "type": "object", - "required": [ - "message", - "threadId" - ], - "properties": { - "message": { - "description": "Concise guardian warning message for the user.", - "type": "string" - }, - "threadId": { - "description": "Thread target for the guardian warning.", - "type": "string" - } - } - }, - "WarningNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "WarningNotification", - "type": "object", - "required": [ - "message" - ], - "properties": { - "message": { - "description": "Concise warning message for the user.", - "type": "string" - }, - "threadId": { - "description": "Optional thread target when the warning applies to a specific thread.", - "type": [ - "string", - "null" - ] - } - } - }, - "ModelVerificationNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ModelVerificationNotification", + "title": "ReasoningSummaryTextDeltaNotification", "type": "object", "required": [ + "delta", + "itemId", + "summaryIndex", "threadId", - "turnId", - "verifications" + "turnId" ], "properties": { + "delta": { + "type": "string" + }, + "itemId": { + "type": "string" + }, + "summaryIndex": { + "type": "integer", + "format": "int64" + }, "threadId": { "type": "string" }, "turnId": { "type": "string" - }, - "verifications": { + } + } + }, + "FsChangedNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "FsChangedNotification", + "description": "Filesystem watch notification emitted for `fs/watch` subscribers.", + "type": "object", + "required": [ + "changedPaths", + "watchId" + ], + "properties": { + "changedPaths": { + "description": "File or directory paths associated with this event.", "type": "array", "items": { - "$ref": "#/definitions/v2/ModelVerification" + "$ref": "#/definitions/v2/AbsolutePathBuf" + } + }, + "watchId": { + "description": "Watch identifier previously provided to `fs/watch`.", + "type": "string" + } + } + }, + "ExternalAgentConfigImportCompletedNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ExternalAgentConfigImportCompletedNotification", + "type": "object", + "required": [ + "importId", + "itemTypeResults" + ], + "properties": { + "importId": { + "type": "string" + }, + "itemTypeResults": { + "type": "array", + "items": { + "$ref": "#/definitions/v2/ExternalAgentConfigImportTypeResult" + } + } + } + }, + "ExternalAgentConfigImportProgressNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ExternalAgentConfigImportProgressNotification", + "type": "object", + "required": [ + "importId", + "itemTypeResults" + ], + "properties": { + "importId": { + "type": "string" + }, + "itemTypeResults": { + "type": "array", + "items": { + "$ref": "#/definitions/v2/ExternalAgentConfigImportTypeResult" } } } @@ -9647,7 +10750,6 @@ ] }, "includeLayers": { - "default": false, "type": "boolean" } } @@ -9668,7 +10770,7 @@ } }, "includeHome": { - "description": "If true, include detection under the user's home (~/.claude, ~/.codex, etc.).", + "description": "If true, include detection under the user's home directory.", "type": "boolean" } } @@ -9862,6 +10964,13 @@ "items": { "$ref": "#/definitions/v2/ExternalAgentConfigMigrationItem" } + }, + "source": { + "description": "Source product that produced the migration items. Missing means unspecified.", + "type": [ + "string", + "null" + ] } } }, @@ -9961,7 +11070,6 @@ "properties": { "refreshToken": { "description": "When `true`, requests a proactive token refresh before returning.\n\nIn managed auth mode this triggers the normal refresh-token flow. In external auth mode this flag is ignored. Clients should refresh tokens themselves and call `account/login/start` with `chatgptAuthTokens`.", - "default": false, "type": "boolean" } } @@ -10410,6 +11518,29 @@ } } }, + "McpToolCallAppContext": { + "type": "object", + "required": [ + "connectorId" + ], + "properties": { + "connectorId": { + "type": "string" + }, + "linkId": { + "type": [ + "string", + "null" + ] + }, + "resourceUri": { + "type": [ + "string", + "null" + ] + } + } + }, "McpToolCallError": { "type": "object", "required": [ @@ -10605,6 +11736,14 @@ } ] }, + "SubAgentActivityKind": { + "type": "string", + "enum": [ + "started", + "interacted", + "interrupted" + ] + }, "SubAgentSource": { "oneOf": [ { @@ -10765,6 +11904,13 @@ "null" ] }, + "parentThreadId": { + "description": "The ID of the parent thread. This will only be set if this thread is a subagent.", + "type": [ + "string", + "null" + ] + }, "path": { "description": "[UNSTABLE] Path to the thread on disk.", "type": [ @@ -10776,6 +11922,14 @@ "description": "Usually the first user message in the thread, if available.", "type": "string" }, + "recencyAt": { + "description": "Unix timestamp (in seconds) used for thread recency ordering.", + "type": [ + "integer", + "null" + ], + "format": "int64" + }, "sessionId": { "description": "Session id shared by threads that belong to the same session tree.", "type": "string" @@ -10841,6 +11995,12 @@ "type" ], "properties": { + "clientId": { + "type": [ + "string", + "null" + ] + }, "content": { "type": "array", "items": { @@ -11025,7 +12185,7 @@ "description": "The command's working directory.", "allOf": [ { - "$ref": "#/definitions/v2/AbsolutePathBuf" + "$ref": "#/definitions/v2/LegacyAppPathString" } ] }, @@ -11118,6 +12278,16 @@ "type" ], "properties": { + "appContext": { + "anyOf": [ + { + "$ref": "#/definitions/v2/McpToolCallAppContext" + }, + { + "type": "null" + } + ] + }, "arguments": true, "durationMs": { "description": "The duration of the MCP tool call in milliseconds.", @@ -11141,6 +12311,7 @@ "type": "string" }, "mcpAppResourceUri": { + "description": "Deprecated: use `appContext.resourceUri` instead.", "type": [ "string", "null" @@ -11325,6 +12496,38 @@ }, "title": "CollabAgentToolCallThreadItem" }, + { + "type": "object", + "required": [ + "agentPath", + "agentThreadId", + "id", + "kind", + "type" + ], + "properties": { + "agentPath": { + "type": "string" + }, + "agentThreadId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "$ref": "#/definitions/v2/SubAgentActivityKind" + }, + "type": { + "type": "string", + "enum": [ + "subAgentActivity" + ], + "title": "SubAgentActivityThreadItemType" + } + }, + "title": "SubAgentActivityThreadItem" + }, { "type": "object", "required": [ @@ -11383,6 +12586,32 @@ }, "title": "ImageViewThreadItem" }, + { + "type": "object", + "required": [ + "durationMs", + "id", + "type" + ], + "properties": { + "durationMs": { + "type": "integer", + "format": "uint64", + "minimum": 0.0 + }, + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "sleep" + ], + "title": "SleepThreadItemType" + } + }, + "title": "SleepThreadItem" + }, { "type": "object", "required": [ @@ -11812,11 +13041,11 @@ "$ref": "#/definitions/v2/AbsolutePathBuf" }, "instructionSources": { - "description": "Instruction source files currently loaded for this thread.", + "description": "Environment-native paths to instruction source files currently loaded for this thread.", "default": [], "type": "array", "items": { - "$ref": "#/definitions/v2/AbsolutePathBuf" + "$ref": "#/definitions/v2/LegacyAppPathString" } }, "model": { @@ -11825,6 +13054,9 @@ "modelProvider": { "type": "string" }, + "thread": { + "$ref": "#/definitions/v2/Thread" + }, "reasoningEffort": { "anyOf": [ { @@ -11835,9 +13067,6 @@ } ] }, - "thread": { - "$ref": "#/definitions/v2/Thread" - }, "sandbox": { "description": "Legacy sandbox policy retained for compatibility. Experimental clients should prefer `activePermissionProfile` for profile provenance.", "allOf": [ @@ -11848,6 +13077,32 @@ } } }, + "TurnsPage": { + "type": "object", + "required": [ + "data" + ], + "properties": { + "backwardsCursor": { + "type": [ + "string", + "null" + ] + }, + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/v2/Turn" + } + }, + "nextCursor": { + "type": [ + "string", + "null" + ] + } + } + }, "ThreadResumeResponse": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "ThreadResumeResponse", @@ -11862,11 +13117,8 @@ "thread" ], "properties": { - "serviceTier": { - "type": [ - "string", - "null" - ] + "thread": { + "$ref": "#/definitions/v2/Thread" }, "approvalPolicy": { "$ref": "#/definitions/v2/AskForApproval" @@ -11882,12 +13134,20 @@ "cwd": { "$ref": "#/definitions/v2/AbsolutePathBuf" }, + "sandbox": { + "description": "Legacy sandbox policy retained for compatibility. Experimental clients should prefer `activePermissionProfile` for profile provenance.", + "allOf": [ + { + "$ref": "#/definitions/v2/SandboxPolicy" + } + ] + }, "instructionSources": { - "description": "Instruction source files currently loaded for this thread.", + "description": "Environment-native paths to instruction source files currently loaded for this thread.", "default": [], "type": "array", "items": { - "$ref": "#/definitions/v2/AbsolutePathBuf" + "$ref": "#/definitions/v2/LegacyAppPathString" } }, "model": { @@ -11896,6 +13156,12 @@ "modelProvider": { "type": "string" }, + "serviceTier": { + "type": [ + "string", + "null" + ] + }, "reasoningEffort": { "anyOf": [ { @@ -11905,17 +13171,6 @@ "type": "null" } ] - }, - "thread": { - "$ref": "#/definitions/v2/Thread" - }, - "sandbox": { - "description": "Legacy sandbox policy retained for compatibility. Experimental clients should prefer `activePermissionProfile` for profile provenance.", - "allOf": [ - { - "$ref": "#/definitions/v2/SandboxPolicy" - } - ] } } }, @@ -11933,8 +13188,11 @@ "thread" ], "properties": { - "thread": { - "$ref": "#/definitions/v2/Thread" + "serviceTier": { + "type": [ + "string", + "null" + ] }, "approvalPolicy": { "$ref": "#/definitions/v2/AskForApproval" @@ -11951,11 +13209,11 @@ "$ref": "#/definitions/v2/AbsolutePathBuf" }, "instructionSources": { - "description": "Instruction source files currently loaded for this thread.", + "description": "Environment-native paths to instruction source files currently loaded for this thread.", "default": [], "type": "array", "items": { - "$ref": "#/definitions/v2/AbsolutePathBuf" + "$ref": "#/definitions/v2/LegacyAppPathString" } }, "model": { @@ -11964,6 +13222,14 @@ "modelProvider": { "type": "string" }, + "sandbox": { + "description": "Legacy sandbox policy retained for compatibility. Experimental clients should prefer `activePermissionProfile` for profile provenance.", + "allOf": [ + { + "$ref": "#/definitions/v2/SandboxPolicy" + } + ] + }, "reasoningEffort": { "anyOf": [ { @@ -11974,19 +13240,8 @@ } ] }, - "serviceTier": { - "type": [ - "string", - "null" - ] - }, - "sandbox": { - "description": "Legacy sandbox policy retained for compatibility. Experimental clients should prefer `activePermissionProfile` for profile provenance.", - "allOf": [ - { - "$ref": "#/definitions/v2/SandboxPolicy" - } - ] + "thread": { + "$ref": "#/definitions/v2/Thread" } } }, @@ -11995,6 +13250,11 @@ "title": "ThreadArchiveResponse", "type": "object" }, + "ThreadDeleteResponse": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ThreadDeleteResponse", + "type": "object" + }, "ThreadUnsubscribeStatus": { "type": "string", "enum": [ @@ -12016,38 +13276,56 @@ } } }, - "ModelVerification": { - "type": "string", - "enum": [ - "trustedAccessForCyber" - ] - }, - "ModelReroutedNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ModelReroutedNotification", + "ExternalAgentConfigImportTypeResult": { "type": "object", "required": [ - "fromModel", - "reason", - "threadId", - "toModel", - "turnId" + "failures", + "itemType", + "successes" ], "properties": { - "fromModel": { + "failures": { + "type": "array", + "items": { + "$ref": "#/definitions/v2/ExternalAgentConfigImportItemTypeFailure" + } + }, + "itemType": { + "$ref": "#/definitions/v2/ExternalAgentConfigMigrationItemType" + }, + "successes": { + "type": "array", + "items": { + "$ref": "#/definitions/v2/ExternalAgentConfigImportItemTypeSuccess" + } + } + } + }, + "RemoteControlStatusChangedNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "RemoteControlStatusChangedNotification", + "description": "Current remote-control connection status and remote identity exposed to clients.", + "type": "object", + "required": [ + "installationId", + "serverName", + "status" + ], + "properties": { + "environmentId": { + "type": [ + "string", + "null" + ] + }, + "installationId": { "type": "string" }, - "reason": { - "$ref": "#/definitions/v2/ModelRerouteReason" - }, - "threadId": { + "serverName": { "type": "string" }, - "toModel": { - "type": "string" - }, - "turnId": { - "type": "string" + "status": { + "$ref": "#/definitions/v2/RemoteControlConnectionStatus" } } }, @@ -12158,57 +13436,61 @@ } } }, - "ModelRerouteReason": { - "type": "string", - "enum": [ - "highRiskCyberActivity" - ] - }, - "ContextCompactedNotification": { + "AppListUpdatedNotification": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ContextCompactedNotification", - "description": "Deprecated: Use `ContextCompaction` item type instead.", + "title": "AppListUpdatedNotification", + "description": "EXPERIMENTAL - notification emitted when the app list changes.", "type": "object", "required": [ - "threadId", - "turnId" + "data" ], "properties": { - "threadId": { - "type": "string" - }, - "turnId": { - "type": "string" + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/v2/AppInfo" + } } } }, - "ReasoningTextDeltaNotification": { + "AccountRateLimitsUpdatedNotification": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ReasoningTextDeltaNotification", + "title": "AccountRateLimitsUpdatedNotification", + "description": "Sparse rolling rate-limit update.\n\nClients should merge available values into the most recent `account/rateLimits/read` response or refetch that snapshot. Nullable account metadata may be unavailable in a rolling update and does not clear a previously observed value.", "type": "object", "required": [ - "contentIndex", - "delta", - "itemId", - "threadId", - "turnId" + "rateLimits" ], "properties": { - "contentIndex": { - "type": "integer", - "format": "int64" + "rateLimits": { + "$ref": "#/definitions/v2/RateLimitSnapshot" + } + } + }, + "AccountUpdatedNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "AccountUpdatedNotification", + "type": "object", + "properties": { + "authMode": { + "anyOf": [ + { + "$ref": "#/definitions/v2/AuthMode" + }, + { + "type": "null" + } + ] }, - "delta": { - "type": "string" - }, - "itemId": { - "type": "string" - }, - "threadId": { - "type": "string" - }, - "turnId": { - "type": "string" + "planType": { + "anyOf": [ + { + "$ref": "#/definitions/v2/PlanType" + }, + { + "type": "null" + } + ] } } }, @@ -12240,29 +13522,111 @@ "title": "ThreadApproveGuardianDeniedActionResponse", "type": "object" }, - "ReasoningSummaryPartAddedNotification": { + "AuthMode": { + "description": "Authentication mode for OpenAI-backed providers.", + "oneOf": [ + { + "description": "OpenAI API key provided by the caller and stored by Codex.", + "type": "string", + "enum": [ + "apikey" + ] + }, + { + "description": "ChatGPT OAuth managed by Codex (tokens persisted and refreshed by Codex).", + "type": "string", + "enum": [ + "chatgpt" + ] + }, + { + "description": "[UNSTABLE] FOR OPENAI INTERNAL USE ONLY - DO NOT USE.\n\nChatGPT auth tokens are supplied by an external host app and are only stored in memory. Token refresh must be handled by the external host app.", + "type": "string", + "enum": [ + "chatgptAuthTokens" + ] + }, + { + "description": "Programmatic Codex auth backed by a registered Agent Identity.", + "type": "string", + "enum": [ + "agentIdentity" + ] + }, + { + "description": "Programmatic Codex auth backed by a personal access token.", + "type": "string", + "enum": [ + "personalAccessToken" + ] + }, + { + "description": "Amazon Bedrock bearer token managed by Codex.", + "type": "string", + "enum": [ + "bedrockApiKey" + ] + } + ] + }, + "McpServerStatusUpdatedNotification": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ReasoningSummaryPartAddedNotification", + "title": "McpServerStatusUpdatedNotification", "type": "object", "required": [ - "itemId", - "summaryIndex", - "threadId", - "turnId" + "name", + "status" ], "properties": { - "itemId": { + "error": { + "type": [ + "string", + "null" + ] + }, + "name": { "type": "string" }, - "summaryIndex": { - "type": "integer", - "format": "int64" + "status": { + "$ref": "#/definitions/v2/McpServerStartupState" }, "threadId": { + "type": [ + "string", + "null" + ] + } + } + }, + "McpServerStartupState": { + "type": "string", + "enum": [ + "starting", + "ready", + "failed", + "cancelled" + ] + }, + "McpServerOauthLoginCompletedNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "McpServerOauthLoginCompletedNotification", + "type": "object", + "required": [ + "name", + "success" + ], + "properties": { + "error": { + "type": [ + "string", + "null" + ] + }, + "name": { "type": "string" }, - "turnId": { - "type": "string" + "success": { + "type": "boolean" } } }, @@ -12314,6 +13678,46 @@ } } }, + "ThreadSearchResult": { + "type": "object", + "required": [ + "snippet", + "thread" + ], + "properties": { + "snippet": { + "type": "string" + }, + "thread": { + "$ref": "#/definitions/v2/Thread" + } + } + }, + "McpToolCallProgressNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "McpToolCallProgressNotification", + "type": "object", + "required": [ + "itemId", + "message", + "threadId", + "turnId" + ], + "properties": { + "itemId": { + "type": "string" + }, + "message": { + "type": "string" + }, + "threadId": { + "type": "string" + }, + "turnId": { + "type": "string" + } + } + }, "ThreadLoadedListResponse": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "ThreadLoadedListResponse", @@ -12351,58 +13755,33 @@ } } }, - "ReasoningSummaryTextDeltaNotification": { + "ServerRequestResolvedNotification": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ReasoningSummaryTextDeltaNotification", + "title": "ServerRequestResolvedNotification", "type": "object", "required": [ - "delta", - "itemId", - "summaryIndex", - "threadId", - "turnId" + "requestId", + "threadId" ], "properties": { - "delta": { - "type": "string" - }, - "itemId": { - "type": "string" - }, - "summaryIndex": { - "type": "integer", - "format": "int64" + "requestId": { + "$ref": "#/definitions/v2/RequestId" }, "threadId": { "type": "string" - }, - "turnId": { - "type": "string" } } }, - "FsChangedNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "FsChangedNotification", - "description": "Filesystem watch notification emitted for `fs/watch` subscribers.", - "type": "object", - "required": [ - "changedPaths", - "watchId" - ], - "properties": { - "changedPaths": { - "description": "File or directory paths associated with this event.", - "type": "array", - "items": { - "$ref": "#/definitions/v2/AbsolutePathBuf" - } - }, - "watchId": { - "description": "Watch identifier previously provided to `fs/watch`.", + "RequestId": { + "anyOf": [ + { "type": "string" + }, + { + "type": "integer", + "format": "int64" } - } + ] }, "ThreadInjectItemsResponse": { "$schema": "http://json-schema.org/draft-07/schema#", @@ -12630,6 +14009,11 @@ } } }, + "SkillsExtraRootsSetResponse": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "SkillsExtraRootsSetResponse", + "type": "object" + }, "HookErrorInfo": { "type": "object", "required": [ @@ -12756,6 +14140,7 @@ "sessionFlags", "plugin", "cloudRequirements", + "cloudManagedConfig", "legacyManagedConfigFile", "legacyManagedConfigMdm", "unknown" @@ -13445,10 +14830,15 @@ "type": "object", "required": [ "id", - "name", - "needsAuth" + "name" ], "properties": { + "category": { + "type": [ + "string", + "null" + ] + }, "description": { "type": [ "string", @@ -13466,15 +14856,82 @@ }, "name": { "type": "string" - }, - "needsAuth": { - "type": "boolean" } } }, + "AppTemplateSummary": { + "type": "object", + "required": [ + "materializedAppIds", + "name", + "templateId" + ], + "properties": { + "canonicalConnectorId": { + "type": [ + "string", + "null" + ] + }, + "category": { + "type": [ + "string", + "null" + ] + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "logoUrl": { + "type": [ + "string", + "null" + ] + }, + "logoUrlDark": { + "type": [ + "string", + "null" + ] + }, + "materializedAppIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "name": { + "type": "string" + }, + "reason": { + "anyOf": [ + { + "$ref": "#/definitions/v2/AppTemplateUnavailableReason" + }, + { + "type": "null" + } + ] + }, + "templateId": { + "type": "string" + } + } + }, + "AppTemplateUnavailableReason": { + "type": "string", + "enum": [ + "NOT_CONFIGURED_FOR_WORKSPACE", + "NO_ACTIVE_WORKSPACE" + ] + }, "PluginDetail": { "type": "object", "required": [ + "appTemplates", "apps", "hooks", "marketplaceName", @@ -13483,6 +14940,12 @@ "summary" ], "properties": { + "appTemplates": { + "type": "array", + "items": { + "$ref": "#/definitions/v2/AppTemplateSummary" + } + }, "apps": { "type": "array", "items": { @@ -13520,6 +14983,12 @@ "type": "string" } }, + "shareUrl": { + "type": [ + "string", + "null" + ] + }, "skills": { "type": "array", "items": { @@ -14227,66 +15696,152 @@ "title": "TurnInterruptResponse", "type": "object" }, - "ExternalAgentConfigImportCompletedNotification": { + "FileChangePatchUpdatedNotification": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ExternalAgentConfigImportCompletedNotification", - "type": "object" - }, - "RemoteControlStatusChangedNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RemoteControlStatusChangedNotification", - "description": "Current remote-control connection status and remote identity exposed to clients.", + "title": "FileChangePatchUpdatedNotification", "type": "object", "required": [ - "installationId", - "serverName", - "status" + "changes", + "itemId", + "threadId", + "turnId" ], "properties": { - "environmentId": { - "type": [ - "string", - "null" - ] - }, - "installationId": { - "type": "string" - }, - "serverName": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/v2/RemoteControlConnectionStatus" - } - } - }, - "AppListUpdatedNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "AppListUpdatedNotification", - "description": "EXPERIMENTAL - notification emitted when the app list changes.", - "type": "object", - "required": [ - "data" - ], - "properties": { - "data": { + "changes": { "type": "array", "items": { - "$ref": "#/definitions/v2/AppInfo" + "$ref": "#/definitions/v2/FileUpdateChange" } + }, + "itemId": { + "type": "string" + }, + "threadId": { + "type": "string" + }, + "turnId": { + "type": "string" } } }, - "AccountRateLimitsUpdatedNotification": { + "FileChangeOutputDeltaNotification": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "AccountRateLimitsUpdatedNotification", + "title": "FileChangeOutputDeltaNotification", + "description": "Deprecated legacy notification for `apply_patch` textual output.\n\nThe server no longer emits this notification.", "type": "object", "required": [ - "rateLimits" + "delta", + "itemId", + "threadId", + "turnId" ], "properties": { - "rateLimits": { - "$ref": "#/definitions/v2/RateLimitSnapshot" + "delta": { + "type": "string" + }, + "itemId": { + "type": "string" + }, + "threadId": { + "type": "string" + }, + "turnId": { + "type": "string" + } + } + }, + "TerminalInteractionNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "TerminalInteractionNotification", + "type": "object", + "required": [ + "itemId", + "processId", + "stdin", + "threadId", + "turnId" + ], + "properties": { + "itemId": { + "type": "string" + }, + "processId": { + "type": "string" + }, + "stdin": { + "type": "string" + }, + "threadId": { + "type": "string" + }, + "turnId": { + "type": "string" + } + } + }, + "CommandExecutionOutputDeltaNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "CommandExecutionOutputDeltaNotification", + "type": "object", + "required": [ + "delta", + "itemId", + "threadId", + "turnId" + ], + "properties": { + "delta": { + "type": "string" + }, + "itemId": { + "type": "string" + }, + "threadId": { + "type": "string" + }, + "turnId": { + "type": "string" + } + } + }, + "ProcessExitedNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ProcessExitedNotification", + "description": "Final process exit notification for `process/spawn`.", + "type": "object", + "required": [ + "exitCode", + "processHandle", + "stderr", + "stderrCapReached", + "stdout", + "stdoutCapReached" + ], + "properties": { + "exitCode": { + "description": "Process exit code.", + "type": "integer", + "format": "int32" + }, + "processHandle": { + "description": "Client-supplied, connection-scoped `processHandle` from `process/spawn`.", + "type": "string" + }, + "stderr": { + "description": "Buffered stderr capture.\n\nEmpty when stderr was streamed via `process/outputDelta`.", + "type": "string" + }, + "stderrCapReached": { + "description": "Whether stderr reached `outputBytesCap`.\n\nIn streaming mode, stderr is empty and cap state is also reported on the final stderr `process/outputDelta` notification.", + "type": "boolean" + }, + "stdout": { + "description": "Buffered stdout capture.\n\nEmpty when stdout was streamed via `process/outputDelta`.", + "type": "string" + }, + "stdoutCapReached": { + "description": "Whether stdout reached `outputBytesCap`.\n\nIn streaming mode, stdout is empty and cap state is also reported on the final stdout `process/outputDelta` notification.", + "type": "boolean" } } }, @@ -14319,28 +15874,35 @@ } } }, - "AccountUpdatedNotification": { + "ProcessOutputDeltaNotification": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "AccountUpdatedNotification", + "title": "ProcessOutputDeltaNotification", + "description": "Base64-encoded output chunk emitted for a streaming `process/spawn` request.", "type": "object", + "required": [ + "capReached", + "deltaBase64", + "processHandle", + "stream" + ], "properties": { - "authMode": { - "anyOf": [ - { - "$ref": "#/definitions/v2/AuthMode" - }, - { - "type": "null" - } - ] + "capReached": { + "description": "True on the final streamed chunk for this stream when output was truncated by `outputBytesCap`.", + "type": "boolean" }, - "planType": { - "anyOf": [ + "deltaBase64": { + "description": "Base64-encoded output bytes.", + "type": "string" + }, + "processHandle": { + "description": "Client-supplied, connection-scoped `processHandle` from `process/spawn`.", + "type": "string" + }, + "stream": { + "description": "Output stream this chunk belongs to.", + "allOf": [ { - "$ref": "#/definitions/v2/PlanType" - }, - { - "type": "null" + "$ref": "#/definitions/v2/ProcessOutputStream" } ] } @@ -14723,9 +16285,14 @@ "PermissionProfileSummary": { "type": "object", "required": [ + "allowed", "id" ], "properties": { + "allowed": { + "description": "Whether the effective requirements allow selecting this profile.", + "type": "boolean" + }, "description": { "description": "Optional user-facing description for display in clients.", "type": [ @@ -14788,71 +16355,231 @@ "errored" ] }, - "AuthMode": { - "description": "Authentication mode for OpenAI-backed providers.", + "ProcessOutputStream": { + "description": "Stream label for `process/outputDelta` notifications.", "oneOf": [ { - "description": "OpenAI API key provided by the caller and stored by Codex.", + "description": "stdout stream. PTY mode multiplexes terminal output here.", "type": "string", "enum": [ - "apikey" + "stdout" ] }, { - "description": "ChatGPT OAuth managed by Codex (tokens persisted and refreshed by Codex).", + "description": "stderr stream.", "type": "string", "enum": [ - "chatgpt" - ] - }, - { - "description": "[UNSTABLE] FOR OPENAI INTERNAL USE ONLY - DO NOT USE.\n\nChatGPT auth tokens are supplied by an external host app and are only stored in memory. Token refresh must be handled by the external host app.", - "type": "string", - "enum": [ - "chatgptAuthTokens" - ] - }, - { - "description": "Programmatic Codex auth backed by a registered Agent Identity.", - "type": "string", - "enum": [ - "agentIdentity" + "stderr" ] } ] }, - "McpServerStatusUpdatedNotification": { + "CommandExecOutputDeltaNotification": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "McpServerStatusUpdatedNotification", + "title": "CommandExecOutputDeltaNotification", + "description": "Base64-encoded output chunk emitted for a streaming `command/exec` request.\n\nThese notifications are connection-scoped. If the originating connection closes, the server terminates the process.", "type": "object", "required": [ - "name", - "status" + "capReached", + "deltaBase64", + "processId", + "stream" ], "properties": { - "error": { + "capReached": { + "description": "`true` on the final streamed chunk for a stream when `outputBytesCap` truncated later output on that stream.", + "type": "boolean" + }, + "deltaBase64": { + "description": "Base64-encoded output bytes.", + "type": "string" + }, + "processId": { + "description": "Client-supplied, connection-scoped `processId` from the original `command/exec` request.", + "type": "string" + }, + "stream": { + "description": "Output stream for this chunk.", + "allOf": [ + { + "$ref": "#/definitions/v2/CommandExecOutputStream" + } + ] + } + } + }, + "CommandExecOutputStream": { + "description": "Stream label for `command/exec/outputDelta` notifications.", + "oneOf": [ + { + "description": "stdout stream. PTY mode multiplexes terminal output here.", + "type": "string", + "enum": [ + "stdout" + ] + }, + { + "description": "stderr stream.", + "type": "string", + "enum": [ + "stderr" + ] + } + ] + }, + "PlanDeltaNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "PlanDeltaNotification", + "description": "EXPERIMENTAL - proposed plan streaming deltas for plan items. Clients should not assume concatenated deltas match the completed plan item content.", + "type": "object", + "required": [ + "delta", + "itemId", + "threadId", + "turnId" + ], + "properties": { + "delta": { + "type": "string" + }, + "itemId": { + "type": "string" + }, + "threadId": { + "type": "string" + }, + "turnId": { + "type": "string" + } + } + }, + "AgentMessageDeltaNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "AgentMessageDeltaNotification", + "type": "object", + "required": [ + "delta", + "itemId", + "threadId", + "turnId" + ], + "properties": { + "delta": { + "type": "string" + }, + "itemId": { + "type": "string" + }, + "threadId": { + "type": "string" + }, + "turnId": { + "type": "string" + } + } + }, + "RawResponseItemCompletedNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "RawResponseItemCompletedNotification", + "type": "object", + "required": [ + "item", + "threadId", + "turnId" + ], + "properties": { + "item": { + "$ref": "#/definitions/v2/ResponseItem" + }, + "threadId": { + "type": "string" + }, + "turnId": { + "type": "string" + } + } + }, + "ItemCompletedNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ItemCompletedNotification", + "type": "object", + "required": [ + "completedAtMs", + "item", + "threadId", + "turnId" + ], + "properties": { + "completedAtMs": { + "description": "Unix timestamp (in milliseconds) when this item lifecycle completed.", + "type": "integer", + "format": "int64" + }, + "item": { + "$ref": "#/definitions/v2/ThreadItem" + }, + "threadId": { + "type": "string" + }, + "turnId": { + "type": "string" + } + } + }, + "ItemGuardianApprovalReviewCompletedNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ItemGuardianApprovalReviewCompletedNotification", + "description": "[UNSTABLE] Temporary notification payload for approval auto-review. This shape is expected to change soon.", + "type": "object", + "required": [ + "action", + "completedAtMs", + "decisionSource", + "review", + "reviewId", + "startedAtMs", + "threadId", + "turnId" + ], + "properties": { + "action": { + "$ref": "#/definitions/v2/GuardianApprovalReviewAction" + }, + "completedAtMs": { + "description": "Unix timestamp (in milliseconds) when this review completed.", + "type": "integer", + "format": "int64" + }, + "decisionSource": { + "$ref": "#/definitions/v2/AutoReviewDecisionSource" + }, + "review": { + "$ref": "#/definitions/v2/GuardianApprovalReview" + }, + "reviewId": { + "description": "Stable identifier for this review.", + "type": "string" + }, + "startedAtMs": { + "description": "Unix timestamp (in milliseconds) when this review started.", + "type": "integer", + "format": "int64" + }, + "targetItemId": { + "description": "Identifier for the reviewed item or tool call when one exists.\n\nIn most cases, one review maps to one target item. The exceptions are - execve reviews, where a single command may contain multiple execve calls to review (only possible when using the shell_zsh_fork feature) - network policy reviews, where there is no target item\n\nA network call is triggered by a CommandExecution item, so having a target_item_id set to the CommandExecution item would be misleading because the review is about the network call, not the command execution. Therefore, target_item_id is set to None for network policy reviews.", "type": [ "string", "null" ] }, - "name": { + "threadId": { "type": "string" }, - "status": { - "$ref": "#/definitions/v2/McpServerStartupState" + "turnId": { + "type": "string" } } }, - "McpServerStartupState": { - "type": "string", - "enum": [ - "starting", - "ready", - "failed", - "cancelled" - ] - }, "CollaborationModeMask": { "description": "EXPERIMENTAL - collaboration mode preset metadata for clients.", "type": "object", @@ -14898,45 +16625,48 @@ } } }, - "McpServerOauthLoginCompletedNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "McpServerOauthLoginCompletedNotification", - "type": "object", - "required": [ - "name", - "success" - ], - "properties": { - "error": { - "type": [ - "string", - "null" - ] - }, - "name": { - "type": "string" - }, - "success": { - "type": "boolean" - } - } + "AutoReviewDecisionSource": { + "description": "[UNSTABLE] Source that produced a terminal approval auto-review decision.", + "type": "string", + "enum": [ + "agent" + ] }, - "McpToolCallProgressNotification": { + "ItemGuardianApprovalReviewStartedNotification": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "McpToolCallProgressNotification", + "title": "ItemGuardianApprovalReviewStartedNotification", + "description": "[UNSTABLE] Temporary notification payload for approval auto-review. This shape is expected to change soon.", "type": "object", "required": [ - "itemId", - "message", + "action", + "review", + "reviewId", + "startedAtMs", "threadId", "turnId" ], "properties": { - "itemId": { + "action": { + "$ref": "#/definitions/v2/GuardianApprovalReviewAction" + }, + "review": { + "$ref": "#/definitions/v2/GuardianApprovalReview" + }, + "reviewId": { + "description": "Stable identifier for this review.", "type": "string" }, - "message": { - "type": "string" + "startedAtMs": { + "description": "Unix timestamp (in milliseconds) when this review started.", + "type": "integer", + "format": "int64" + }, + "targetItemId": { + "description": "Identifier for the reviewed item or tool call when one exists.\n\nIn most cases, one review maps to one target item. The exceptions are - execve reviews, where a single command may contain multiple execve calls to review (only possible when using the shell_zsh_fork feature) - network policy reviews, where there is no target item\n\nA network call is triggered by a CommandExecution item, so having a target_item_id set to the CommandExecution item would be misleading because the review is about the network call, not the command execution. Therefore, target_item_id is set to None for network policy reviews.", + "type": [ + "string", + "null" + ] }, "threadId": { "type": "string" @@ -14946,22 +16676,31 @@ } } }, - "ServerRequestResolvedNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ServerRequestResolvedNotification", + "RequestPermissionProfile": { "type": "object", - "required": [ - "requestId", - "threadId" - ], "properties": { - "requestId": { - "$ref": "#/definitions/v2/RequestId" + "fileSystem": { + "anyOf": [ + { + "$ref": "#/definitions/v2/AdditionalFileSystemPermissions" + }, + { + "type": "null" + } + ] }, - "threadId": { - "type": "string" + "network": { + "anyOf": [ + { + "$ref": "#/definitions/v2/AdditionalNetworkPermissions" + }, + { + "type": "null" + } + ] } - } + }, + "additionalProperties": false }, "McpServerOauthLoginResponse": { "$schema": "http://json-schema.org/draft-07/schema#", @@ -14990,6 +16729,47 @@ "oAuth" ] }, + "McpServerInfo": { + "description": "Presentation metadata advertised by an initialized MCP server.", + "type": "object", + "required": [ + "name", + "version" + ], + "properties": { + "description": { + "type": [ + "string", + "null" + ] + }, + "icons": { + "type": [ + "array", + "null" + ], + "items": true + }, + "name": { + "type": "string" + }, + "title": { + "type": [ + "string", + "null" + ] + }, + "version": { + "type": "string" + }, + "websiteUrl": { + "type": [ + "string", + "null" + ] + } + } + }, "McpServerStatus": { "type": "object", "required": [ @@ -15018,6 +16798,16 @@ "$ref": "#/definitions/v2/Resource" } }, + "serverInfo": { + "anyOf": [ + { + "$ref": "#/definitions/v2/McpServerInfo" + }, + { + "type": "null" + } + ] + }, "tools": { "type": "object", "additionalProperties": { @@ -15459,6 +17249,18 @@ "workspace_member_usage_limit_reached" ] }, + "RateLimitResetCreditsSummary": { + "type": "object", + "required": [ + "availableCount" + ], + "properties": { + "availableCount": { + "type": "integer", + "format": "int64" + } + } + }, "RateLimitSnapshot": { "type": "object", "properties": { @@ -15472,6 +17274,16 @@ } ] }, + "individualLimit": { + "anyOf": [ + { + "$ref": "#/definitions/v2/SpendControlLimitSnapshot" + }, + { + "type": "null" + } + ] + }, "limitId": { "type": [ "string", @@ -15552,6 +17364,31 @@ } } }, + "SpendControlLimitSnapshot": { + "type": "object", + "required": [ + "limit", + "remainingPercent", + "resetsAt", + "used" + ], + "properties": { + "limit": { + "type": "string" + }, + "remainingPercent": { + "type": "integer", + "format": "int32" + }, + "resetsAt": { + "type": "integer", + "format": "int64" + }, + "used": { + "type": "string" + } + } + }, "GetAccountRateLimitsResponse": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "GetAccountRateLimitsResponse", @@ -15560,6 +17397,16 @@ "rateLimits" ], "properties": { + "rateLimitResetCredits": { + "anyOf": [ + { + "$ref": "#/definitions/v2/RateLimitResetCreditsSummary" + }, + { + "type": "null" + } + ] + }, "rateLimits": { "description": "Backward-compatible single-bucket view; mirrors the historical payload.", "allOf": [ @@ -15580,6 +17427,194 @@ } } }, + "ConsumeAccountRateLimitResetCreditOutcome": { + "oneOf": [ + { + "description": "A reset credit was consumed and the eligible rate-limit windows were reset.", + "type": "string", + "enum": [ + "reset" + ] + }, + { + "description": "No current rate-limit window is eligible for a reset.", + "type": "string", + "enum": [ + "nothingToReset" + ] + }, + { + "description": "The account has no earned reset credits available.", + "type": "string", + "enum": [ + "noCredit" + ] + }, + { + "description": "The same idempotency key already completed a reset successfully.", + "type": "string", + "enum": [ + "alreadyRedeemed" + ] + } + ] + }, + "ConsumeAccountRateLimitResetCreditResponse": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ConsumeAccountRateLimitResetCreditResponse", + "type": "object", + "required": [ + "outcome" + ], + "properties": { + "outcome": { + "$ref": "#/definitions/v2/ConsumeAccountRateLimitResetCreditOutcome" + } + } + }, + "AccountTokenUsageDailyBucket": { + "type": "object", + "required": [ + "startDate", + "tokens" + ], + "properties": { + "startDate": { + "type": "string" + }, + "tokens": { + "type": "integer", + "format": "int64" + } + } + }, + "AccountTokenUsageSummary": { + "type": "object", + "properties": { + "currentStreakDays": { + "type": [ + "integer", + "null" + ], + "format": "int64" + }, + "lifetimeTokens": { + "type": [ + "integer", + "null" + ], + "format": "int64" + }, + "longestRunningTurnSec": { + "type": [ + "integer", + "null" + ], + "format": "int64" + }, + "longestStreakDays": { + "type": [ + "integer", + "null" + ], + "format": "int64" + }, + "peakDailyTokens": { + "type": [ + "integer", + "null" + ], + "format": "int64" + } + } + }, + "GetAccountTokenUsageResponse": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "GetAccountTokenUsageResponse", + "type": "object", + "required": [ + "summary" + ], + "properties": { + "dailyUsageBuckets": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/v2/AccountTokenUsageDailyBucket" + } + }, + "summary": { + "$ref": "#/definitions/v2/AccountTokenUsageSummary" + } + } + }, + "WorkspaceMessage": { + "type": "object", + "required": [ + "messageBody", + "messageId", + "messageType" + ], + "properties": { + "archivedAt": { + "description": "Unix timestamp (in seconds) when the message was archived.", + "type": [ + "integer", + "null" + ], + "format": "int64" + }, + "createdAt": { + "description": "Unix timestamp (in seconds) when the message was created.", + "type": [ + "integer", + "null" + ], + "format": "int64" + }, + "messageBody": { + "type": "string" + }, + "messageId": { + "type": "string" + }, + "messageType": { + "$ref": "#/definitions/v2/WorkspaceMessageType" + } + } + }, + "WorkspaceMessageType": { + "type": "string", + "enum": [ + "headline", + "announcement", + "unknown" + ] + }, + "GetWorkspaceMessagesResponse": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "GetWorkspaceMessagesResponse", + "type": "object", + "required": [ + "featureEnabled", + "messages" + ], + "properties": { + "featureEnabled": { + "description": "Whether the workspace-message backend route is available for this client.", + "type": "boolean" + }, + "messages": { + "description": "Active workspace messages returned by the backend.", + "type": "array", + "items": { + "$ref": "#/definitions/v2/WorkspaceMessage" + } + } + } + }, "AddCreditsNudgeEmailStatus": { "type": "string", "enum": [ @@ -15657,99 +17692,41 @@ "description": "Empty success response for `command/exec/resize`.", "type": "object" }, - "RequestId": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "integer", - "format": "int64" - } + "NetworkApprovalProtocol": { + "type": "string", + "enum": [ + "http", + "https", + "socks5Tcp", + "socks5Udp" ] }, - "FileChangePatchUpdatedNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "FileChangePatchUpdatedNotification", - "type": "object", - "required": [ - "changes", - "itemId", - "threadId", - "turnId" - ], - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/v2/FileUpdateChange" - } - }, - "itemId": { - "type": "string" - }, - "threadId": { - "type": "string" - }, - "turnId": { - "type": "string" - } - } + "GuardianUserAuthorization": { + "description": "[UNSTABLE] Authorization level assigned by approval auto-review.", + "type": "string", + "enum": [ + "unknown", + "low", + "medium", + "high" + ] }, - "FileChangeOutputDeltaNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "FileChangeOutputDeltaNotification", - "description": "Deprecated legacy notification for `apply_patch` textual output.\n\nThe server no longer emits this notification.", - "type": "object", - "required": [ - "delta", - "itemId", - "threadId", - "turnId" - ], - "properties": { - "delta": { - "type": "string" - }, - "itemId": { - "type": "string" - }, - "threadId": { - "type": "string" - }, - "turnId": { - "type": "string" - } - } + "GuardianRiskLevel": { + "description": "[UNSTABLE] Risk level assigned by approval auto-review.", + "type": "string", + "enum": [ + "low", + "medium", + "high", + "critical" + ] }, - "TerminalInteractionNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "TerminalInteractionNotification", - "type": "object", - "required": [ - "itemId", - "processId", - "stdin", - "threadId", - "turnId" - ], - "properties": { - "itemId": { - "type": "string" - }, - "processId": { - "type": "string" - }, - "stdin": { - "type": "string" - }, - "threadId": { - "type": "string" - }, - "turnId": { - "type": "string" - } - } + "GuardianCommandSource": { + "type": "string", + "enum": [ + "shell", + "unifiedExec" + ] }, "AnalyticsConfig": { "type": "object", @@ -15766,6 +17743,16 @@ "AppConfig": { "type": "object", "properties": { + "approvals_reviewer": { + "anyOf": [ + { + "$ref": "#/definitions/v2/ApprovalsReviewer" + }, + { + "type": "null" + } + ] + }, "default_tools_approval_mode": { "anyOf": [ { @@ -15861,6 +17848,26 @@ "AppsDefaultConfig": { "type": "object", "properties": { + "approvals_reviewer": { + "anyOf": [ + { + "$ref": "#/definitions/v2/ApprovalsReviewer" + }, + { + "type": "null" + } + ] + }, + "default_tools_approval_mode": { + "anyOf": [ + { + "$ref": "#/definitions/v2/AppToolApproval" + }, + { + "type": "null" + } + ] + }, "destructive_enabled": { "default": true, "type": "boolean" @@ -16049,19 +18056,6 @@ } ] }, - "profile": { - "type": [ - "string", - "null" - ] - }, - "profiles": { - "default": {}, - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/v2/ProfileV2" - } - }, "review_model": { "type": [ "string", @@ -16198,6 +18192,33 @@ }, "title": "SystemConfigLayerSource" }, + { + "description": "Enterprise-managed config layer delivered by the cloud config bundle.", + "type": "object", + "required": [ + "id", + "name", + "type" + ], + "properties": { + "id": { + "description": "Stable identifier for the delivered layer.", + "type": "string" + }, + "name": { + "description": "Admin-facing name for the delivered layer. This is surfaced in diagnostics so users know which cloud layer needs administrator attention.", + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "enterpriseManaged" + ], + "title": "EnterpriseManagedConfigLayerSourceType" + } + }, + "title": "EnterpriseManagedConfigLayerSource" + }, { "description": "User config layer from $CODEX_HOME/config.toml. This layer is special in that it is expected to be: - writable by the user - generally outside the workspace directory", "type": "object", @@ -16329,107 +18350,6 @@ "api" ] }, - "ProfileV2": { - "type": "object", - "properties": { - "approval_policy": { - "anyOf": [ - { - "$ref": "#/definitions/v2/AskForApproval" - }, - { - "type": "null" - } - ] - }, - "approvals_reviewer": { - "description": "[UNSTABLE] Optional profile-level override for where approval requests are routed for review. If omitted, the enclosing config default is used.", - "anyOf": [ - { - "$ref": "#/definitions/v2/ApprovalsReviewer" - }, - { - "type": "null" - } - ] - }, - "chatgpt_base_url": { - "type": [ - "string", - "null" - ] - }, - "model": { - "type": [ - "string", - "null" - ] - }, - "model_provider": { - "type": [ - "string", - "null" - ] - }, - "model_reasoning_effort": { - "anyOf": [ - { - "$ref": "#/definitions/v2/ReasoningEffort" - }, - { - "type": "null" - } - ] - }, - "model_reasoning_summary": { - "anyOf": [ - { - "$ref": "#/definitions/v2/ReasoningSummary" - }, - { - "type": "null" - } - ] - }, - "model_verbosity": { - "anyOf": [ - { - "$ref": "#/definitions/v2/Verbosity" - }, - { - "type": "null" - } - ] - }, - "service_tier": { - "type": [ - "string", - "null" - ] - }, - "tools": { - "anyOf": [ - { - "$ref": "#/definitions/v2/ToolsV2" - }, - { - "type": "null" - } - ] - }, - "web_search": { - "anyOf": [ - { - "$ref": "#/definitions/v2/WebSearchMode" - }, - { - "type": "null" - } - ] - } - }, - "additionalProperties": true - }, "SandboxWorkspaceWrite": { "type": "object", "properties": { @@ -16521,6 +18441,7 @@ "enum": [ "disabled", "cached", + "indexed", "live" ] }, @@ -16607,7 +18528,127 @@ "ExternalAgentConfigImportResponse": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "ExternalAgentConfigImportResponse", - "type": "object" + "type": "object", + "required": [ + "importId" + ], + "properties": { + "importId": { + "type": "string" + } + } + }, + "ExternalAgentConfigImportHistory": { + "type": "object", + "required": [ + "completedAtMs", + "failures", + "importId", + "successes" + ], + "properties": { + "completedAtMs": { + "type": "integer", + "format": "int64" + }, + "failures": { + "type": "array", + "items": { + "$ref": "#/definitions/v2/ExternalAgentConfigImportItemTypeFailure" + } + }, + "importId": { + "type": "string" + }, + "successes": { + "type": "array", + "items": { + "$ref": "#/definitions/v2/ExternalAgentConfigImportItemTypeSuccess" + } + } + } + }, + "ExternalAgentConfigImportItemTypeFailure": { + "type": "object", + "required": [ + "failureStage", + "itemType", + "message" + ], + "properties": { + "cwd": { + "type": [ + "string", + "null" + ] + }, + "errorType": { + "type": [ + "string", + "null" + ] + }, + "failureStage": { + "type": "string" + }, + "itemType": { + "$ref": "#/definitions/v2/ExternalAgentConfigMigrationItemType" + }, + "message": { + "type": "string" + }, + "source": { + "type": [ + "string", + "null" + ] + } + } + }, + "ExternalAgentConfigImportItemTypeSuccess": { + "type": "object", + "required": [ + "itemType" + ], + "properties": { + "cwd": { + "type": [ + "string", + "null" + ] + }, + "itemType": { + "$ref": "#/definitions/v2/ExternalAgentConfigMigrationItemType" + }, + "source": { + "type": [ + "string", + "null" + ] + }, + "target": { + "type": [ + "string", + "null" + ] + } + } + }, + "ExternalAgentConfigImportHistoriesReadResponse": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ExternalAgentConfigImportHistoriesReadResponse", + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/v2/ExternalAgentConfigImportHistory" + } + } + } }, "OverriddenMetadata": { "type": "object", @@ -16683,12 +18724,24 @@ "ConfigRequirements": { "type": "object", "properties": { + "allowAppshots": { + "type": [ + "boolean", + "null" + ] + }, "allowManagedHooksOnly": { "type": [ "boolean", "null" ] }, + "allowRemoteControl": { + "type": [ + "boolean", + "null" + ] + }, "allowedApprovalPolicies": { "type": [ "array", @@ -16707,13 +18760,13 @@ "type": "boolean" } }, - "allowedPermissions": { + "allowedPermissionProfiles": { "type": [ - "array", + "object", "null" ], - "items": { - "type": "string" + "additionalProperties": { + "type": "boolean" } }, "allowedSandboxModes": { @@ -16734,6 +18787,15 @@ "$ref": "#/definitions/v2/WebSearchMode" } }, + "allowedWindowsSandboxImplementations": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/v2/WindowsSandboxSetupMode" + } + }, "computerUse": { "anyOf": [ { @@ -16744,6 +18806,12 @@ } ] }, + "defaultPermissions": { + "type": [ + "string", + "null" + ] + }, "enforceResidency": { "anyOf": [ { @@ -17064,7 +19132,7 @@ "type": "string", "enum": [ "allow", - "none" + "deny" ] }, "ResidencyRequirement": { @@ -17118,7 +19186,10 @@ ], "properties": { "email": { - "type": "string" + "type": [ + "string", + "null" + ] }, "planType": { "$ref": "#/definitions/v2/PlanType" @@ -17139,6 +19210,14 @@ "type" ], "properties": { + "credentialSource": { + "default": "awsManaged", + "allOf": [ + { + "$ref": "#/definitions/v2/AmazonBedrockCredentialSource" + } + ] + }, "type": { "type": "string", "enum": [ @@ -17151,6 +19230,13 @@ } ] }, + "AmazonBedrockCredentialSource": { + "type": "string", + "enum": [ + "codexManaged", + "awsManaged" + ] + }, "GetAccountResponse": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "GetAccountResponse", @@ -17242,6 +19328,19 @@ } } }, + "ThreadDeletedNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ThreadDeletedNotification", + "type": "object", + "required": [ + "threadId" + ], + "properties": { + "threadId": { + "type": "string" + } + } + }, "ThreadUnarchivedNotification": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "ThreadUnarchivedNotification", @@ -17379,6 +19478,16 @@ "modelProvider": { "type": "string" }, + "summary": { + "anyOf": [ + { + "$ref": "#/definitions/v2/ReasoningSummary" + }, + { + "type": "null" + } + ] + }, "personality": { "anyOf": [ { @@ -17397,16 +19506,6 @@ "string", "null" ] - }, - "summary": { - "anyOf": [ - { - "$ref": "#/definitions/v2/ReasoningSummary" - }, - { - "type": "null" - } - ] } } }, @@ -17840,7 +19939,7 @@ "null" ], "items": { - "$ref": "#/definitions/v2/AbsolutePathBuf" + "$ref": "#/definitions/v2/LegacyAppPathString" } }, "write": { @@ -17850,7 +19949,7 @@ "null" ], "items": { - "$ref": "#/definitions/v2/AbsolutePathBuf" + "$ref": "#/definitions/v2/LegacyAppPathString" } } } @@ -17884,7 +19983,7 @@ ], "properties": { "path": { - "$ref": "#/definitions/v2/AbsolutePathBuf" + "$ref": "#/definitions/v2/LegacyAppPathString" }, "type": { "type": "string", @@ -18306,444 +20405,6 @@ "timedOut", "aborted" ] - }, - "GuardianCommandSource": { - "type": "string", - "enum": [ - "shell", - "unifiedExec" - ] - }, - "GuardianRiskLevel": { - "description": "[UNSTABLE] Risk level assigned by approval auto-review.", - "type": "string", - "enum": [ - "low", - "medium", - "high", - "critical" - ] - }, - "GuardianUserAuthorization": { - "description": "[UNSTABLE] Authorization level assigned by approval auto-review.", - "type": "string", - "enum": [ - "unknown", - "low", - "medium", - "high" - ] - }, - "NetworkApprovalProtocol": { - "type": "string", - "enum": [ - "http", - "https", - "socks5Tcp", - "socks5Udp" - ] - }, - "RequestPermissionProfile": { - "type": "object", - "properties": { - "fileSystem": { - "anyOf": [ - { - "$ref": "#/definitions/v2/AdditionalFileSystemPermissions" - }, - { - "type": "null" - } - ] - }, - "network": { - "anyOf": [ - { - "$ref": "#/definitions/v2/AdditionalNetworkPermissions" - }, - { - "type": "null" - } - ] - } - }, - "additionalProperties": false - }, - "ItemGuardianApprovalReviewStartedNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ItemGuardianApprovalReviewStartedNotification", - "description": "[UNSTABLE] Temporary notification payload for approval auto-review. This shape is expected to change soon.", - "type": "object", - "required": [ - "action", - "review", - "reviewId", - "startedAtMs", - "threadId", - "turnId" - ], - "properties": { - "action": { - "$ref": "#/definitions/v2/GuardianApprovalReviewAction" - }, - "review": { - "$ref": "#/definitions/v2/GuardianApprovalReview" - }, - "reviewId": { - "description": "Stable identifier for this review.", - "type": "string" - }, - "startedAtMs": { - "description": "Unix timestamp (in milliseconds) when this review started.", - "type": "integer", - "format": "int64" - }, - "targetItemId": { - "description": "Identifier for the reviewed item or tool call when one exists.\n\nIn most cases, one review maps to one target item. The exceptions are - execve reviews, where a single command may contain multiple execve calls to review (only possible when using the shell_zsh_fork feature) - network policy reviews, where there is no target item\n\nA network call is triggered by a CommandExecution item, so having a target_item_id set to the CommandExecution item would be misleading because the review is about the network call, not the command execution. Therefore, target_item_id is set to None for network policy reviews.", - "type": [ - "string", - "null" - ] - }, - "threadId": { - "type": "string" - }, - "turnId": { - "type": "string" - } - } - }, - "AutoReviewDecisionSource": { - "description": "[UNSTABLE] Source that produced a terminal approval auto-review decision.", - "type": "string", - "enum": [ - "agent" - ] - }, - "ItemGuardianApprovalReviewCompletedNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ItemGuardianApprovalReviewCompletedNotification", - "description": "[UNSTABLE] Temporary notification payload for approval auto-review. This shape is expected to change soon.", - "type": "object", - "required": [ - "action", - "completedAtMs", - "decisionSource", - "review", - "reviewId", - "startedAtMs", - "threadId", - "turnId" - ], - "properties": { - "action": { - "$ref": "#/definitions/v2/GuardianApprovalReviewAction" - }, - "completedAtMs": { - "description": "Unix timestamp (in milliseconds) when this review completed.", - "type": "integer", - "format": "int64" - }, - "decisionSource": { - "$ref": "#/definitions/v2/AutoReviewDecisionSource" - }, - "review": { - "$ref": "#/definitions/v2/GuardianApprovalReview" - }, - "reviewId": { - "description": "Stable identifier for this review.", - "type": "string" - }, - "startedAtMs": { - "description": "Unix timestamp (in milliseconds) when this review started.", - "type": "integer", - "format": "int64" - }, - "targetItemId": { - "description": "Identifier for the reviewed item or tool call when one exists.\n\nIn most cases, one review maps to one target item. The exceptions are - execve reviews, where a single command may contain multiple execve calls to review (only possible when using the shell_zsh_fork feature) - network policy reviews, where there is no target item\n\nA network call is triggered by a CommandExecution item, so having a target_item_id set to the CommandExecution item would be misleading because the review is about the network call, not the command execution. Therefore, target_item_id is set to None for network policy reviews.", - "type": [ - "string", - "null" - ] - }, - "threadId": { - "type": "string" - }, - "turnId": { - "type": "string" - } - } - }, - "ItemCompletedNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ItemCompletedNotification", - "type": "object", - "required": [ - "completedAtMs", - "item", - "threadId", - "turnId" - ], - "properties": { - "completedAtMs": { - "description": "Unix timestamp (in milliseconds) when this item lifecycle completed.", - "type": "integer", - "format": "int64" - }, - "item": { - "$ref": "#/definitions/v2/ThreadItem" - }, - "threadId": { - "type": "string" - }, - "turnId": { - "type": "string" - } - } - }, - "RawResponseItemCompletedNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RawResponseItemCompletedNotification", - "type": "object", - "required": [ - "item", - "threadId", - "turnId" - ], - "properties": { - "item": { - "$ref": "#/definitions/v2/ResponseItem" - }, - "threadId": { - "type": "string" - }, - "turnId": { - "type": "string" - } - } - }, - "AgentMessageDeltaNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "AgentMessageDeltaNotification", - "type": "object", - "required": [ - "delta", - "itemId", - "threadId", - "turnId" - ], - "properties": { - "delta": { - "type": "string" - }, - "itemId": { - "type": "string" - }, - "threadId": { - "type": "string" - }, - "turnId": { - "type": "string" - } - } - }, - "PlanDeltaNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "PlanDeltaNotification", - "description": "EXPERIMENTAL - proposed plan streaming deltas for plan items. Clients should not assume concatenated deltas match the completed plan item content.", - "type": "object", - "required": [ - "delta", - "itemId", - "threadId", - "turnId" - ], - "properties": { - "delta": { - "type": "string" - }, - "itemId": { - "type": "string" - }, - "threadId": { - "type": "string" - }, - "turnId": { - "type": "string" - } - } - }, - "CommandExecOutputStream": { - "description": "Stream label for `command/exec/outputDelta` notifications.", - "oneOf": [ - { - "description": "stdout stream. PTY mode multiplexes terminal output here.", - "type": "string", - "enum": [ - "stdout" - ] - }, - { - "description": "stderr stream.", - "type": "string", - "enum": [ - "stderr" - ] - } - ] - }, - "CommandExecOutputDeltaNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "CommandExecOutputDeltaNotification", - "description": "Base64-encoded output chunk emitted for a streaming `command/exec` request.\n\nThese notifications are connection-scoped. If the originating connection closes, the server terminates the process.", - "type": "object", - "required": [ - "capReached", - "deltaBase64", - "processId", - "stream" - ], - "properties": { - "capReached": { - "description": "`true` on the final streamed chunk for a stream when `outputBytesCap` truncated later output on that stream.", - "type": "boolean" - }, - "deltaBase64": { - "description": "Base64-encoded output bytes.", - "type": "string" - }, - "processId": { - "description": "Client-supplied, connection-scoped `processId` from the original `command/exec` request.", - "type": "string" - }, - "stream": { - "description": "Output stream for this chunk.", - "allOf": [ - { - "$ref": "#/definitions/v2/CommandExecOutputStream" - } - ] - } - } - }, - "ProcessOutputStream": { - "description": "Stream label for `process/outputDelta` notifications.", - "oneOf": [ - { - "description": "stdout stream. PTY mode multiplexes terminal output here.", - "type": "string", - "enum": [ - "stdout" - ] - }, - { - "description": "stderr stream.", - "type": "string", - "enum": [ - "stderr" - ] - } - ] - }, - "ProcessOutputDeltaNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ProcessOutputDeltaNotification", - "description": "Base64-encoded output chunk emitted for a streaming `process/spawn` request.", - "type": "object", - "required": [ - "capReached", - "deltaBase64", - "processHandle", - "stream" - ], - "properties": { - "capReached": { - "description": "True on the final streamed chunk for this stream when output was truncated by `outputBytesCap`.", - "type": "boolean" - }, - "deltaBase64": { - "description": "Base64-encoded output bytes.", - "type": "string" - }, - "processHandle": { - "description": "Client-supplied, connection-scoped `processHandle` from `process/spawn`.", - "type": "string" - }, - "stream": { - "description": "Output stream this chunk belongs to.", - "allOf": [ - { - "$ref": "#/definitions/v2/ProcessOutputStream" - } - ] - } - } - }, - "ProcessExitedNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ProcessExitedNotification", - "description": "Final process exit notification for `process/spawn`.", - "type": "object", - "required": [ - "exitCode", - "processHandle", - "stderr", - "stderrCapReached", - "stdout", - "stdoutCapReached" - ], - "properties": { - "exitCode": { - "description": "Process exit code.", - "type": "integer", - "format": "int32" - }, - "processHandle": { - "description": "Client-supplied, connection-scoped `processHandle` from `process/spawn`.", - "type": "string" - }, - "stderr": { - "description": "Buffered stderr capture.\n\nEmpty when stderr was streamed via `process/outputDelta`.", - "type": "string" - }, - "stderrCapReached": { - "description": "Whether stderr reached `outputBytesCap`.\n\nIn streaming mode, stderr is empty and cap state is also reported on the final stderr `process/outputDelta` notification.", - "type": "boolean" - }, - "stdout": { - "description": "Buffered stdout capture.\n\nEmpty when stdout was streamed via `process/outputDelta`.", - "type": "string" - }, - "stdoutCapReached": { - "description": "Whether stdout reached `outputBytesCap`.\n\nIn streaming mode, stdout is empty and cap state is also reported on the final stdout `process/outputDelta` notification.", - "type": "boolean" - } - } - }, - "CommandExecutionOutputDeltaNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "CommandExecutionOutputDeltaNotification", - "type": "object", - "required": [ - "delta", - "itemId", - "threadId", - "turnId" - ], - "properties": { - "delta": { - "type": "string" - }, - "itemId": { - "type": "string" - }, - "threadId": { - "type": "string" - }, - "turnId": { - "type": "string" - } - } } }, "AbsolutePathBuf": { @@ -19003,34 +20664,6 @@ "turn", "session" ] - }, - "PermissionsRequestApprovalResponse": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "PermissionsRequestApprovalResponse", - "type": "object", - "required": [ - "permissions" - ], - "properties": { - "permissions": { - "$ref": "#/definitions/GrantedPermissionProfile" - }, - "scope": { - "default": "turn", - "allOf": [ - { - "$ref": "#/definitions/PermissionGrantScope" - } - ] - }, - "strictAutoReview": { - "description": "Review every subsequent command in this turn before normal sandboxed execution.", - "type": [ - "boolean", - "null" - ] - } - } } } } \ No newline at end of file diff --git a/schemas/codex_app_server_protocol.v2.schemas.json b/schemas/codex_app_server_protocol.v2.schemas.json index b188f7e..12f1d8e 100644 --- a/schemas/codex_app_server_protocol.v2.schemas.json +++ b/schemas/codex_app_server_protocol.v2.schemas.json @@ -66,31 +66,144 @@ } ] }, - "DynamicToolSpec": { - "type": "object", - "required": [ - "description", - "inputSchema", - "name" - ], - "properties": { - "deferLoading": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "inputSchema": true, - "name": { - "type": "string" - }, - "namespace": { - "type": [ - "string", - "null" - ] + "CapabilityRootLocation": { + "description": "Location used to resolve a selected capability root.", + "oneOf": [ + { + "description": "A path owned by an execution environment.", + "type": "object", + "required": [ + "environmentId", + "path", + "type" + ], + "properties": { + "environmentId": { + "type": "string" + }, + "path": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "environment" + ], + "title": "EnvironmentCapabilityRootLocationType" + } + }, + "title": "EnvironmentCapabilityRootLocation" } - } + ] + }, + "DynamicToolNamespaceTool": { + "oneOf": [ + { + "type": "object", + "required": [ + "description", + "inputSchema", + "name", + "type" + ], + "properties": { + "deferLoading": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "inputSchema": true, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "function" + ], + "title": "FunctionDynamicToolNamespaceToolType" + } + }, + "title": "FunctionDynamicToolNamespaceTool" + } + ] + }, + "DynamicToolSpec": { + "oneOf": [ + { + "type": "object", + "required": [ + "description", + "inputSchema", + "name", + "type" + ], + "properties": { + "deferLoading": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "inputSchema": true, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "function" + ], + "title": "FunctionDynamicToolSpecType" + } + }, + "title": "FunctionDynamicToolSpec" + }, + { + "type": "object", + "required": [ + "description", + "name", + "tools", + "type" + ], + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/DynamicToolNamespaceTool" + } + }, + "type": { + "type": "string", + "enum": [ + "namespace" + ], + "title": "NamespaceDynamicToolSpecType" + } + }, + "title": "NamespaceDynamicToolSpec" + } + ] + }, + "LegacyAppPathString": { + "type": "string" + }, + "MultiAgentMode": { + "description": "Controls whether the model receives multi-agent delegation instructions and, when it does, whether it should only spawn sub-agents after an explicit user request or may delegate proactively when doing so would help. `none` leaves the multi-agent tools available without injecting delegation instructions.", + "type": "string", + "enum": [ + "none", + "explicitRequestOnly", + "proactive" + ] }, "Personality": { "type": "string", @@ -108,13 +221,30 @@ "danger-full-access" ] }, + "SelectedCapabilityRoot": { + "description": "A user-selected root that can expose one or more runtime capabilities.", + "type": "object", + "required": [ + "id", + "location" + ], + "properties": { + "id": { + "description": "Stable identifier supplied by the capability selection platform.", + "type": "string" + }, + "location": { + "description": "Where the selected root can be resolved.", + "allOf": [ + { + "$ref": "#/definitions/CapabilityRootLocation" + } + ] + } + } + }, "ThreadSource": { - "type": "string", - "enum": [ - "user", - "subagent", - "memory_consolidation" - ] + "type": "string" }, "ThreadStartSource": { "type": "string", @@ -131,7 +261,7 @@ ], "properties": { "cwd": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" }, "environmentId": { "type": "string" @@ -189,6 +319,12 @@ "null" ] }, + "serviceName": { + "type": [ + "string", + "null" + ] + }, "sandbox": { "anyOf": [ { @@ -199,27 +335,21 @@ } ] }, - "threadSource": { - "description": "Optional client-supplied analytics source classification for this thread.", - "anyOf": [ - { - "$ref": "#/definitions/ThreadSource" - }, - { - "type": "null" - } - ] - }, "ephemeral": { "type": [ "boolean", "null" ] }, - "serviceTier": { - "type": [ - "string", - "null" + "threadSource": { + "description": "Optional client-supplied analytics source classification for this thread.", + "anyOf": [ + { + "$ref": "#/definitions/ThreadSource" + }, + { + "type": "null" + } ] }, "personality": { @@ -244,6 +374,12 @@ "null" ] }, + "serviceTier": { + "type": [ + "string", + "null" + ] + }, "sessionStartSource": { "anyOf": [ { @@ -253,15 +389,53 @@ "type": "null" } ] - }, - "serviceName": { - "type": [ - "string", - "null" - ] } } }, + "AgentMessageInputContent": { + "oneOf": [ + { + "type": "object", + "required": [ + "text", + "type" + ], + "properties": { + "text": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "input_text" + ], + "title": "InputTextAgentMessageInputContentType" + } + }, + "title": "InputTextAgentMessageInputContent" + }, + { + "type": "object", + "required": [ + "encrypted_content", + "type" + ], + "properties": { + "encrypted_content": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "encrypted_content" + ], + "title": "EncryptedContentAgentMessageInputContentType" + } + }, + "title": "EncryptedContentAgentMessageInputContent" + } + ] + }, "ContentItem": { "oneOf": [ { @@ -427,10 +601,24 @@ "ImageDetail": { "type": "string", "enum": [ + "auto", + "low", "high", "original" ] }, + "InternalChatMessageMetadataPassthrough": { + "description": "Internal Responses API passthrough metadata copied into underlying chat messages.\n\nResponses API strongly types this payload. Do not modify it without first getting API approval and making the corresponding Responses API change.", + "type": "object", + "properties": { + "turn_id": { + "type": [ + "string", + "null" + ] + } + } + }, "LocalShellAction": { "oneOf": [ { @@ -599,12 +787,21 @@ } }, "id": { - "writeOnly": true, "type": [ "string", "null" ] }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "phase": { "anyOf": [ { @@ -628,6 +825,53 @@ }, "title": "MessageResponseItem" }, + { + "type": "object", + "required": [ + "author", + "content", + "recipient", + "type" + ], + "properties": { + "author": { + "type": "string" + }, + "content": { + "type": "array", + "items": { + "$ref": "#/definitions/AgentMessageInputContent" + } + }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, + "recipient": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "agent_message" + ], + "title": "AgentMessageResponseItemType" + } + }, + "title": "AgentMessageResponseItem" + }, { "type": "object", "required": [ @@ -651,6 +895,22 @@ "null" ] }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "summary": { "type": "array", "items": { @@ -687,12 +947,21 @@ }, "id": { "description": "Legacy id field retained for compatibility with older payloads.", - "writeOnly": true, "type": [ "string", "null" ] }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "status": { "$ref": "#/definitions/LocalShellStatus" }, @@ -722,12 +991,21 @@ "type": "string" }, "id": { - "writeOnly": true, "type": [ "string", "null" ] }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "name": { "type": "string" }, @@ -766,12 +1044,21 @@ "type": "string" }, "id": { - "writeOnly": true, "type": [ "string", "null" ] }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "status": { "type": [ "string", @@ -799,6 +1086,22 @@ "call_id": { "type": "string" }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "output": { "$ref": "#/definitions/FunctionCallOutputBody" }, @@ -825,7 +1128,6 @@ "type": "string" }, "id": { - "writeOnly": true, "type": [ "string", "null" @@ -834,6 +1136,16 @@ "input": { "type": "string" }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "name": { "type": "string" }, @@ -864,6 +1176,22 @@ "call_id": { "type": "string" }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "name": { "type": [ "string", @@ -901,6 +1229,22 @@ "execution": { "type": "string" }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "status": { "type": "string" }, @@ -935,12 +1279,21 @@ ] }, "id": { - "writeOnly": true, "type": [ "string", "null" ] }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "status": { "type": [ "string", @@ -960,14 +1313,26 @@ { "type": "object", "required": [ - "id", "result", "status", "type" ], "properties": { "id": { - "type": "string" + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] }, "result": { "type": "string" @@ -1001,6 +1366,22 @@ "encrypted_content": { "type": "string" }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "type": { "type": "string", "enum": [ @@ -1017,6 +1398,16 @@ "type" ], "properties": { + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "type": { "type": "string", "enum": [ @@ -1039,6 +1430,22 @@ "null" ] }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "type": { "type": "string", "enum": [ @@ -1168,6 +1575,74 @@ } ] }, + "SortDirection": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + }, + "ThreadResumeInitialTurnsPageParams": { + "type": "object", + "properties": { + "itemsView": { + "description": "How much item detail to include for each returned turn; defaults to summary.", + "anyOf": [ + { + "$ref": "#/definitions/TurnItemsView" + }, + { + "type": "null" + } + ] + }, + "limit": { + "description": "Optional turn page size.", + "type": [ + "integer", + "null" + ], + "format": "uint32", + "minimum": 0.0 + }, + "sortDirection": { + "description": "Optional turn pagination direction; defaults to descending.", + "anyOf": [ + { + "$ref": "#/definitions/SortDirection" + }, + { + "type": "null" + } + ] + } + } + }, + "TurnItemsView": { + "oneOf": [ + { + "description": "`items` was not loaded for this turn. The field is intentionally empty.", + "type": "string", + "enum": [ + "notLoaded" + ] + }, + { + "description": "`items` contains only a display summary for this turn.", + "type": "string", + "enum": [ + "summary" + ] + }, + { + "description": "`items` contains every ThreadItem available from persisted app-server history for this turn.", + "type": "string", + "enum": [ + "full" + ] + } + ] + }, "ThreadResumeParams": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "ThreadResumeParams", @@ -1223,6 +1698,15 @@ "null" ] }, + "serviceTier": { + "type": [ + "string", + "null" + ] + }, + "threadId": { + "type": "string" + }, "personality": { "anyOf": [ { @@ -1233,16 +1717,6 @@ } ] }, - "sandbox": { - "anyOf": [ - { - "$ref": "#/definitions/SandboxMode" - }, - { - "type": "null" - } - ] - }, "model": { "description": "Configuration overrides for the resumed thread, if any.", "type": [ @@ -1256,14 +1730,15 @@ "null" ] }, - "serviceTier": { - "type": [ - "string", - "null" + "sandbox": { + "anyOf": [ + { + "$ref": "#/definitions/SandboxMode" + }, + { + "type": "null" + } ] - }, - "threadId": { - "type": "string" } } }, @@ -1325,14 +1800,10 @@ "ephemeral": { "type": "boolean" }, - "sandbox": { - "anyOf": [ - { - "$ref": "#/definitions/SandboxMode" - }, - { - "type": "null" - } + "serviceTier": { + "type": [ + "string", + "null" ] }, "model": { @@ -1348,15 +1819,6 @@ "null" ] }, - "serviceTier": { - "type": [ - "string", - "null" - ] - }, - "threadId": { - "type": "string" - }, "threadSource": { "description": "Optional client-supplied analytics source classification for this forked thread.", "anyOf": [ @@ -1367,6 +1829,19 @@ "type": "null" } ] + }, + "sandbox": { + "anyOf": [ + { + "$ref": "#/definitions/SandboxMode" + }, + { + "type": "null" + } + ] + }, + "threadId": { + "type": "string" } } }, @@ -1383,6 +1858,19 @@ } } }, + "ThreadDeleteParams": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ThreadDeleteParams", + "type": "object", + "required": [ + "threadId" + ], + "properties": { + "threadId": { + "type": "string" + } + } + }, "ThreadUnsubscribeParams": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "ThreadUnsubscribeParams", @@ -1616,16 +2104,9 @@ ] }, "ReasoningEffort": { - "description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning", + "description": "A non-empty reasoning effort value advertised by the model.", "type": "string", - "enum": [ - "none", - "minimal", - "low", - "medium", - "high", - "xhigh" - ] + "minLength": 1 }, "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", @@ -1906,6 +2387,42 @@ } } }, + "ThreadRealtimeSdpNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ThreadRealtimeSdpNotification", + "description": "EXPERIMENTAL - emitted with the remote SDP for a WebRTC realtime session.", + "type": "object", + "required": [ + "sdp", + "threadId" + ], + "properties": { + "sdp": { + "type": "string" + }, + "threadId": { + "type": "string" + } + } + }, + "ThreadRealtimeOutputAudioDeltaNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ThreadRealtimeOutputAudioDeltaNotification", + "description": "EXPERIMENTAL - streamed output audio emitted by thread realtime.", + "type": "object", + "required": [ + "audio", + "threadId" + ], + "properties": { + "audio": { + "$ref": "#/definitions/ThreadRealtimeAudioChunk" + }, + "threadId": { + "type": "string" + } + } + }, "ThreadRollbackParams": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "ThreadRollbackParams", @@ -1926,13 +2443,6 @@ } } }, - "SortDirection": { - "type": "string", - "enum": [ - "asc", - "desc" - ] - }, "ThreadListCwdFilter": { "anyOf": [ { @@ -1950,7 +2460,8 @@ "type": "string", "enum": [ "created_at", - "updated_at" + "updated_at", + "recency_at" ] }, "ThreadSourceKind": { @@ -2017,6 +2528,10 @@ "type": "string" } }, + "useStateDbOnly": { + "description": "If true, return from the state DB without scanning JSONL rollouts to repair thread metadata. Omitted or false preserves scan-and-repair behavior.", + "type": "boolean" + }, "searchTerm": { "description": "Optional substring filter for the extracted thread title.", "type": [ @@ -2055,10 +2570,29 @@ "items": { "$ref": "#/definitions/ThreadSourceKind" } + } + } + }, + "ThreadRealtimeTranscriptDoneNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ThreadRealtimeTranscriptDoneNotification", + "description": "EXPERIMENTAL - final transcript text emitted when realtime completes a transcript part.", + "type": "object", + "required": [ + "role", + "text", + "threadId" + ], + "properties": { + "role": { + "type": "string" }, - "useStateDbOnly": { - "description": "If true, return from the state DB without scanning JSONL rollouts to repair thread metadata. Omitted or false preserves scan-and-repair behavior.", - "type": "boolean" + "text": { + "description": "Final complete text for the transcript part.", + "type": "string" + }, + "threadId": { + "type": "string" } } }, @@ -2095,7 +2629,6 @@ "properties": { "includeTurns": { "description": "When true, include turns and their items from rollout history.", - "default": false, "type": "boolean" }, "threadId": { @@ -2103,42 +2636,22 @@ } } }, - "TurnItemsView": { - "oneOf": [ - { - "description": "`items` was not loaded for this turn. The field is intentionally empty.", - "type": "string", - "enum": [ - "notLoaded" - ] - }, - { - "description": "`items` contains only a display summary for this turn.", - "type": "string", - "enum": [ - "summary" - ] - }, - { - "description": "`items` contains every ThreadItem available from persisted app-server history for this turn.", - "type": "string", - "enum": [ - "full" - ] - } - ] - }, - "ThreadRealtimeSdpNotification": { + "ThreadRealtimeTranscriptDeltaNotification": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ThreadRealtimeSdpNotification", - "description": "EXPERIMENTAL - emitted with the remote SDP for a WebRTC realtime session.", + "title": "ThreadRealtimeTranscriptDeltaNotification", + "description": "EXPERIMENTAL - flat transcript delta emitted whenever realtime transcript text changes.", "type": "object", "required": [ - "sdp", + "delta", + "role", "threadId" ], "properties": { - "sdp": { + "delta": { + "description": "Live transcript delta from the realtime event.", + "type": "string" + }, + "role": { "type": "string" }, "threadId": { @@ -2146,19 +2659,17 @@ } } }, - "ThreadRealtimeOutputAudioDeltaNotification": { + "ThreadRealtimeItemAddedNotification": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ThreadRealtimeOutputAudioDeltaNotification", - "description": "EXPERIMENTAL - streamed output audio emitted by thread realtime.", + "title": "ThreadRealtimeItemAddedNotification", + "description": "EXPERIMENTAL - raw non-audio thread realtime item emitted by the backend.", "type": "object", "required": [ - "audio", + "item", "threadId" ], "properties": { - "audio": { - "$ref": "#/definitions/ThreadRealtimeAudioChunk" - }, + "item": true, "threadId": { "type": "string" } @@ -2201,6 +2712,22 @@ } } }, + "SkillsExtraRootsSetParams": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "SkillsExtraRootsSetParams", + "type": "object", + "required": [ + "extraRoots" + ], + "properties": { + "extraRoots": { + "type": "array", + "items": { + "$ref": "#/definitions/AbsolutePathBuf" + } + } + } + }, "HooksListParams": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "HooksListParams", @@ -2275,7 +2802,8 @@ "local", "vertical", "workspace-directory", - "shared-with-me" + "shared-with-me", + "created-by-me-remote" ] }, "PluginListParams": { @@ -2843,6 +3371,28 @@ } } }, + "AdditionalContextEntry": { + "type": "object", + "required": [ + "kind", + "value" + ], + "properties": { + "kind": { + "$ref": "#/definitions/AdditionalContextKind" + }, + "value": { + "type": "string" + } + } + }, + "AdditionalContextKind": { + "type": "string", + "enum": [ + "untrusted", + "application" + ] + }, "ByteRange": { "type": "object", "required": [ @@ -3036,6 +3586,9 @@ "threadId" ], "properties": { + "threadId": { + "type": "string" + }, "approvalPolicy": { "description": "Override the approval policy for this turn and subsequent turns.", "anyOf": [ @@ -3058,6 +3611,12 @@ } ] }, + "clientUserMessageId": { + "type": [ + "string", + "null" + ] + }, "serviceTier": { "description": "Override the service tier for this turn and subsequent turns.", "type": [ @@ -3083,8 +3642,16 @@ } ] }, - "threadId": { - "type": "string" + "personality": { + "description": "Override the personality for this turn and subsequent turns.", + "anyOf": [ + { + "$ref": "#/definitions/Personality" + }, + { + "type": "null" + } + ] }, "input": { "type": "array", @@ -3099,6 +3666,17 @@ "null" ] }, + "summary": { + "description": "Override the reasoning summary for this turn and subsequent turns.", + "anyOf": [ + { + "$ref": "#/definitions/ReasoningSummary" + }, + { + "type": "null" + } + ] + }, "outputSchema": { "description": "Optional JSON Schema used to constrain the final assistant message for this turn." }, @@ -3112,28 +3690,6 @@ "type": "null" } ] - }, - "personality": { - "description": "Override the personality for this turn and subsequent turns.", - "anyOf": [ - { - "$ref": "#/definitions/Personality" - }, - { - "type": "null" - } - ] - }, - "summary": { - "description": "Override the reasoning summary for this turn and subsequent turns.", - "anyOf": [ - { - "$ref": "#/definitions/ReasoningSummary" - }, - { - "type": "null" - } - ] } } }, @@ -3147,6 +3703,15 @@ "threadId" ], "properties": { + "threadId": { + "type": "string" + }, + "clientUserMessageId": { + "type": [ + "string", + "null" + ] + }, "expectedTurnId": { "description": "Required active turn id precondition. The request fails when it does not match the currently active turn.", "type": "string" @@ -3156,9 +3721,6 @@ "items": { "$ref": "#/definitions/UserInput" } - }, - "threadId": { - "type": "string" } } }, @@ -3179,6 +3741,13 @@ } } }, + "RealtimeConversationVersion": { + "type": "string", + "enum": [ + "v1", + "v2" + ] + }, "RealtimeOutputModality": { "type": "string", "enum": [ @@ -3252,26 +3821,27 @@ } ] }, - "ThreadRealtimeTranscriptDoneNotification": { + "ThreadRealtimeStartedNotification": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ThreadRealtimeTranscriptDoneNotification", - "description": "EXPERIMENTAL - final transcript text emitted when realtime completes a transcript part.", + "title": "ThreadRealtimeStartedNotification", + "description": "EXPERIMENTAL - emitted when thread realtime startup is accepted.", "type": "object", "required": [ - "role", - "text", - "threadId" + "threadId", + "version" ], "properties": { - "role": { - "type": "string" - }, - "text": { - "description": "Final complete text for the transcript part.", - "type": "string" + "realtimeSessionId": { + "type": [ + "string", + "null" + ] }, "threadId": { "type": "string" + }, + "version": { + "$ref": "#/definitions/RealtimeConversationVersion" } } }, @@ -3313,76 +3883,129 @@ } } }, - "ThreadRealtimeTranscriptDeltaNotification": { + "ConfigWarningNotification": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ThreadRealtimeTranscriptDeltaNotification", - "description": "EXPERIMENTAL - flat transcript delta emitted whenever realtime transcript text changes.", + "title": "ConfigWarningNotification", "type": "object", "required": [ - "delta", - "role", - "threadId" + "summary" ], "properties": { - "delta": { - "description": "Live transcript delta from the realtime event.", - "type": "string" - }, - "role": { - "type": "string" - }, - "threadId": { - "type": "string" - } - } - }, - "ThreadRealtimeItemAddedNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ThreadRealtimeItemAddedNotification", - "description": "EXPERIMENTAL - raw non-audio thread realtime item emitted by the backend.", - "type": "object", - "required": [ - "item", - "threadId" - ], - "properties": { - "item": true, - "threadId": { - "type": "string" - } - } - }, - "ThreadRealtimeStartedNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ThreadRealtimeStartedNotification", - "description": "EXPERIMENTAL - emitted when thread realtime startup is accepted.", - "type": "object", - "required": [ - "threadId", - "version" - ], - "properties": { - "realtimeSessionId": { + "details": { + "description": "Optional extra guidance or error details.", "type": [ "string", "null" ] }, - "threadId": { - "type": "string" + "path": { + "description": "Optional path to the config file that triggered the warning.", + "type": [ + "string", + "null" + ] }, - "version": { - "$ref": "#/definitions/RealtimeConversationVersion" + "range": { + "description": "Optional range for the error location inside the config file.", + "anyOf": [ + { + "$ref": "#/definitions/TextRange" + }, + { + "type": "null" + } + ] + }, + "summary": { + "description": "Concise summary of the warning.", + "type": "string" } } }, - "RealtimeConversationVersion": { + "ConversationTextRole": { "type": "string", "enum": [ - "v1", - "v2" + "user", + "developer", + "assistant" ] }, + "TextRange": { + "type": "object", + "required": [ + "end", + "start" + ], + "properties": { + "end": { + "$ref": "#/definitions/TextPosition" + }, + "start": { + "$ref": "#/definitions/TextPosition" + } + } + }, + "TextPosition": { + "type": "object", + "required": [ + "column", + "line" + ], + "properties": { + "column": { + "description": "1-based column number (in Unicode scalar values).", + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "line": { + "description": "1-based line number.", + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "DeprecationNoticeNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "DeprecationNoticeNotification", + "type": "object", + "required": [ + "summary" + ], + "properties": { + "details": { + "description": "Optional extra guidance, such as migration steps or rationale.", + "type": [ + "string", + "null" + ] + }, + "summary": { + "description": "Concise summary of what is deprecated.", + "type": "string" + } + } + }, + "GuardianWarningNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "GuardianWarningNotification", + "type": "object", + "required": [ + "message", + "threadId" + ], + "properties": { + "message": { + "description": "Concise guardian warning message for the user.", + "type": "string" + }, + "threadId": { + "description": "Thread target for the guardian warning.", + "type": "string" + } + } + }, "ReviewDelivery": { "type": "string", "enum": [ @@ -3622,78 +4245,233 @@ } } }, - "ConfigWarningNotification": { + "RemoteControlEnableParams": { + "type": "object", + "properties": { + "ephemeral": { + "type": "boolean" + } + } + }, + "WarningNotification": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ConfigWarningNotification", + "title": "WarningNotification", "type": "object", "required": [ - "summary" + "message" ], "properties": { - "details": { - "description": "Optional extra guidance or error details.", + "message": { + "description": "Concise warning message for the user.", + "type": "string" + }, + "threadId": { + "description": "Optional thread target when the warning applies to a specific thread.", "type": [ "string", "null" ] + } + } + }, + "RemoteControlDisableParams": { + "type": "object", + "properties": { + "ephemeral": { + "type": "boolean" + } + } + }, + "ModelSafetyBufferingUpdatedNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ModelSafetyBufferingUpdatedNotification", + "type": "object", + "required": [ + "model", + "reasons", + "threadId", + "turnId", + "useCases" + ], + "properties": { + "model": { + "type": "string" }, - "path": { - "description": "Optional path to the config file that triggered the warning.", - "type": [ - "string", - "null" - ] + "reasons": { + "type": "array", + "items": { + "type": "string" + } }, - "range": { - "description": "Optional range for the error location inside the config file.", - "anyOf": [ - { - "$ref": "#/definitions/TextRange" - }, - { - "type": "null" - } - ] + "threadId": { + "type": "string" }, - "summary": { - "description": "Concise summary of the warning.", + "turnId": { + "type": "string" + }, + "useCases": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "TurnModerationMetadataNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "TurnModerationMetadataNotification", + "type": "object", + "required": [ + "metadata", + "threadId", + "turnId" + ], + "properties": { + "metadata": true, + "threadId": { + "type": "string" + }, + "turnId": { "type": "string" } } }, - "TextRange": { + "ModelVerificationNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ModelVerificationNotification", "type": "object", "required": [ - "end", - "start" + "threadId", + "turnId", + "verifications" ], "properties": { - "end": { - "$ref": "#/definitions/TextPosition" + "threadId": { + "type": "string" }, - "start": { - "$ref": "#/definitions/TextPosition" + "turnId": { + "type": "string" + }, + "verifications": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelVerification" + } } } }, - "TextPosition": { + "ModelVerification": { + "type": "string", + "enum": [ + "trustedAccessForCyber" + ] + }, + "ModelReroutedNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ModelReroutedNotification", "type": "object", "required": [ - "column", - "line" + "fromModel", + "reason", + "threadId", + "toModel", + "turnId" ], "properties": { - "column": { - "description": "1-based column number (in Unicode scalar values).", - "type": "integer", - "format": "uint", - "minimum": 0.0 + "fromModel": { + "type": "string" }, - "line": { - "description": "1-based line number.", + "reason": { + "$ref": "#/definitions/ModelRerouteReason" + }, + "threadId": { + "type": "string" + }, + "toModel": { + "type": "string" + }, + "turnId": { + "type": "string" + } + } + }, + "ModelRerouteReason": { + "type": "string", + "enum": [ + "highRiskCyberActivity" + ] + }, + "ContextCompactedNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ContextCompactedNotification", + "description": "Deprecated: Use `ContextCompaction` item type instead.", + "type": "object", + "required": [ + "threadId", + "turnId" + ], + "properties": { + "threadId": { + "type": "string" + }, + "turnId": { + "type": "string" + } + } + }, + "ReasoningTextDeltaNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ReasoningTextDeltaNotification", + "type": "object", + "required": [ + "contentIndex", + "delta", + "itemId", + "threadId", + "turnId" + ], + "properties": { + "contentIndex": { "type": "integer", - "format": "uint", - "minimum": 0.0 + "format": "int64" + }, + "delta": { + "type": "string" + }, + "itemId": { + "type": "string" + }, + "threadId": { + "type": "string" + }, + "turnId": { + "type": "string" + } + } + }, + "ReasoningSummaryPartAddedNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ReasoningSummaryPartAddedNotification", + "type": "object", + "required": [ + "itemId", + "summaryIndex", + "threadId", + "turnId" + ], + "properties": { + "itemId": { + "type": "string" + }, + "summaryIndex": { + "type": "integer", + "format": "int64" + }, + "threadId": { + "type": "string" + }, + "turnId": { + "type": "string" } } }, @@ -3764,6 +4542,12 @@ ], "format": "uint32", "minimum": 0.0 + }, + "threadId": { + "type": [ + "string", + "null" + ] } } }, @@ -3951,6 +4735,20 @@ } } }, + "ConsumeAccountRateLimitResetCreditParams": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ConsumeAccountRateLimitResetCreditParams", + "type": "object", + "required": [ + "idempotencyKey" + ], + "properties": { + "idempotencyKey": { + "description": "Identifies one logical reset attempt. A UUID is recommended; reuse the same value when retrying that attempt.", + "type": "string" + } + } + }, "AddCreditsNudgeCreditType": { "type": "string", "enum": [ @@ -3976,8 +4774,7 @@ "title": "FeedbackUploadParams", "type": "object", "required": [ - "classification", - "includeLogs" + "classification" ], "properties": { "classification": { @@ -4231,87 +5028,95 @@ } } }, - "DeprecationNoticeNotification": { + "ReasoningSummaryTextDeltaNotification": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "DeprecationNoticeNotification", - "type": "object", - "required": [ - "summary" - ], - "properties": { - "details": { - "description": "Optional extra guidance, such as migration steps or rationale.", - "type": [ - "string", - "null" - ] - }, - "summary": { - "description": "Concise summary of what is deprecated.", - "type": "string" - } - } - }, - "GuardianWarningNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "GuardianWarningNotification", - "type": "object", - "required": [ - "message", - "threadId" - ], - "properties": { - "message": { - "description": "Concise guardian warning message for the user.", - "type": "string" - }, - "threadId": { - "description": "Thread target for the guardian warning.", - "type": "string" - } - } - }, - "WarningNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "WarningNotification", - "type": "object", - "required": [ - "message" - ], - "properties": { - "message": { - "description": "Concise warning message for the user.", - "type": "string" - }, - "threadId": { - "description": "Optional thread target when the warning applies to a specific thread.", - "type": [ - "string", - "null" - ] - } - } - }, - "ModelVerificationNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ModelVerificationNotification", + "title": "ReasoningSummaryTextDeltaNotification", "type": "object", "required": [ + "delta", + "itemId", + "summaryIndex", "threadId", - "turnId", - "verifications" + "turnId" ], "properties": { + "delta": { + "type": "string" + }, + "itemId": { + "type": "string" + }, + "summaryIndex": { + "type": "integer", + "format": "int64" + }, "threadId": { "type": "string" }, "turnId": { "type": "string" - }, - "verifications": { + } + } + }, + "FsChangedNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "FsChangedNotification", + "description": "Filesystem watch notification emitted for `fs/watch` subscribers.", + "type": "object", + "required": [ + "changedPaths", + "watchId" + ], + "properties": { + "changedPaths": { + "description": "File or directory paths associated with this event.", "type": "array", "items": { - "$ref": "#/definitions/ModelVerification" + "$ref": "#/definitions/AbsolutePathBuf" + } + }, + "watchId": { + "description": "Watch identifier previously provided to `fs/watch`.", + "type": "string" + } + } + }, + "ExternalAgentConfigImportCompletedNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ExternalAgentConfigImportCompletedNotification", + "type": "object", + "required": [ + "importId", + "itemTypeResults" + ], + "properties": { + "importId": { + "type": "string" + }, + "itemTypeResults": { + "type": "array", + "items": { + "$ref": "#/definitions/ExternalAgentConfigImportTypeResult" + } + } + } + }, + "ExternalAgentConfigImportProgressNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ExternalAgentConfigImportProgressNotification", + "type": "object", + "required": [ + "importId", + "itemTypeResults" + ], + "properties": { + "importId": { + "type": "string" + }, + "itemTypeResults": { + "type": "array", + "items": { + "$ref": "#/definitions/ExternalAgentConfigImportTypeResult" } } } @@ -4329,7 +5134,6 @@ ] }, "includeLayers": { - "default": false, "type": "boolean" } } @@ -4350,7 +5154,7 @@ } }, "includeHome": { - "description": "If true, include detection under the user's home (~/.claude, ~/.codex, etc.).", + "description": "If true, include detection under the user's home directory.", "type": "boolean" } } @@ -4544,6 +5348,13 @@ "items": { "$ref": "#/definitions/ExternalAgentConfigMigrationItem" } + }, + "source": { + "description": "Source product that produced the migration items. Missing means unspecified.", + "type": [ + "string", + "null" + ] } } }, @@ -4643,7 +5454,6 @@ "properties": { "refreshToken": { "description": "When `true`, requests a proactive token refresh before returning.\n\nIn managed auth mode this triggers the normal refresh-token flow. In external auth mode this flag is ignored. Clients should refresh tokens themselves and call `account/login/start` with `chatgptAuthTokens`.", - "default": false, "type": "boolean" } } @@ -5092,6 +5902,29 @@ } } }, + "McpToolCallAppContext": { + "type": "object", + "required": [ + "connectorId" + ], + "properties": { + "connectorId": { + "type": "string" + }, + "linkId": { + "type": [ + "string", + "null" + ] + }, + "resourceUri": { + "type": [ + "string", + "null" + ] + } + } + }, "McpToolCallError": { "type": "object", "required": [ @@ -5287,6 +6120,14 @@ } ] }, + "SubAgentActivityKind": { + "type": "string", + "enum": [ + "started", + "interacted", + "interrupted" + ] + }, "SubAgentSource": { "oneOf": [ { @@ -5447,6 +6288,13 @@ "null" ] }, + "parentThreadId": { + "description": "The ID of the parent thread. This will only be set if this thread is a subagent.", + "type": [ + "string", + "null" + ] + }, "path": { "description": "[UNSTABLE] Path to the thread on disk.", "type": [ @@ -5458,6 +6306,14 @@ "description": "Usually the first user message in the thread, if available.", "type": "string" }, + "recencyAt": { + "description": "Unix timestamp (in seconds) used for thread recency ordering.", + "type": [ + "integer", + "null" + ], + "format": "int64" + }, "sessionId": { "description": "Session id shared by threads that belong to the same session tree.", "type": "string" @@ -5523,6 +6379,12 @@ "type" ], "properties": { + "clientId": { + "type": [ + "string", + "null" + ] + }, "content": { "type": "array", "items": { @@ -5707,7 +6569,7 @@ "description": "The command's working directory.", "allOf": [ { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } ] }, @@ -5800,6 +6662,16 @@ "type" ], "properties": { + "appContext": { + "anyOf": [ + { + "$ref": "#/definitions/McpToolCallAppContext" + }, + { + "type": "null" + } + ] + }, "arguments": true, "durationMs": { "description": "The duration of the MCP tool call in milliseconds.", @@ -5823,6 +6695,7 @@ "type": "string" }, "mcpAppResourceUri": { + "description": "Deprecated: use `appContext.resourceUri` instead.", "type": [ "string", "null" @@ -6007,6 +6880,38 @@ }, "title": "CollabAgentToolCallThreadItem" }, + { + "type": "object", + "required": [ + "agentPath", + "agentThreadId", + "id", + "kind", + "type" + ], + "properties": { + "agentPath": { + "type": "string" + }, + "agentThreadId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "$ref": "#/definitions/SubAgentActivityKind" + }, + "type": { + "type": "string", + "enum": [ + "subAgentActivity" + ], + "title": "SubAgentActivityThreadItemType" + } + }, + "title": "SubAgentActivityThreadItem" + }, { "type": "object", "required": [ @@ -6065,6 +6970,32 @@ }, "title": "ImageViewThreadItem" }, + { + "type": "object", + "required": [ + "durationMs", + "id", + "type" + ], + "properties": { + "durationMs": { + "type": "integer", + "format": "uint64", + "minimum": 0.0 + }, + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "sleep" + ], + "title": "SleepThreadItemType" + } + }, + "title": "SleepThreadItem" + }, { "type": "object", "required": [ @@ -6494,11 +7425,11 @@ "$ref": "#/definitions/AbsolutePathBuf" }, "instructionSources": { - "description": "Instruction source files currently loaded for this thread.", + "description": "Environment-native paths to instruction source files currently loaded for this thread.", "default": [], "type": "array", "items": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } }, "model": { @@ -6507,6 +7438,9 @@ "modelProvider": { "type": "string" }, + "thread": { + "$ref": "#/definitions/Thread" + }, "reasoningEffort": { "anyOf": [ { @@ -6517,9 +7451,6 @@ } ] }, - "thread": { - "$ref": "#/definitions/Thread" - }, "sandbox": { "description": "Legacy sandbox policy retained for compatibility. Experimental clients should prefer `activePermissionProfile` for profile provenance.", "allOf": [ @@ -6530,6 +7461,32 @@ } } }, + "TurnsPage": { + "type": "object", + "required": [ + "data" + ], + "properties": { + "backwardsCursor": { + "type": [ + "string", + "null" + ] + }, + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/Turn" + } + }, + "nextCursor": { + "type": [ + "string", + "null" + ] + } + } + }, "ThreadResumeResponse": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "ThreadResumeResponse", @@ -6544,11 +7501,8 @@ "thread" ], "properties": { - "serviceTier": { - "type": [ - "string", - "null" - ] + "thread": { + "$ref": "#/definitions/Thread" }, "approvalPolicy": { "$ref": "#/definitions/AskForApproval" @@ -6564,12 +7518,20 @@ "cwd": { "$ref": "#/definitions/AbsolutePathBuf" }, + "sandbox": { + "description": "Legacy sandbox policy retained for compatibility. Experimental clients should prefer `activePermissionProfile` for profile provenance.", + "allOf": [ + { + "$ref": "#/definitions/SandboxPolicy" + } + ] + }, "instructionSources": { - "description": "Instruction source files currently loaded for this thread.", + "description": "Environment-native paths to instruction source files currently loaded for this thread.", "default": [], "type": "array", "items": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } }, "model": { @@ -6578,6 +7540,12 @@ "modelProvider": { "type": "string" }, + "serviceTier": { + "type": [ + "string", + "null" + ] + }, "reasoningEffort": { "anyOf": [ { @@ -6587,17 +7555,6 @@ "type": "null" } ] - }, - "thread": { - "$ref": "#/definitions/Thread" - }, - "sandbox": { - "description": "Legacy sandbox policy retained for compatibility. Experimental clients should prefer `activePermissionProfile` for profile provenance.", - "allOf": [ - { - "$ref": "#/definitions/SandboxPolicy" - } - ] } } }, @@ -6615,8 +7572,11 @@ "thread" ], "properties": { - "thread": { - "$ref": "#/definitions/Thread" + "serviceTier": { + "type": [ + "string", + "null" + ] }, "approvalPolicy": { "$ref": "#/definitions/AskForApproval" @@ -6633,11 +7593,11 @@ "$ref": "#/definitions/AbsolutePathBuf" }, "instructionSources": { - "description": "Instruction source files currently loaded for this thread.", + "description": "Environment-native paths to instruction source files currently loaded for this thread.", "default": [], "type": "array", "items": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } }, "model": { @@ -6646,6 +7606,14 @@ "modelProvider": { "type": "string" }, + "sandbox": { + "description": "Legacy sandbox policy retained for compatibility. Experimental clients should prefer `activePermissionProfile` for profile provenance.", + "allOf": [ + { + "$ref": "#/definitions/SandboxPolicy" + } + ] + }, "reasoningEffort": { "anyOf": [ { @@ -6656,19 +7624,8 @@ } ] }, - "serviceTier": { - "type": [ - "string", - "null" - ] - }, - "sandbox": { - "description": "Legacy sandbox policy retained for compatibility. Experimental clients should prefer `activePermissionProfile` for profile provenance.", - "allOf": [ - { - "$ref": "#/definitions/SandboxPolicy" - } - ] + "thread": { + "$ref": "#/definitions/Thread" } } }, @@ -6677,6 +7634,11 @@ "title": "ThreadArchiveResponse", "type": "object" }, + "ThreadDeleteResponse": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ThreadDeleteResponse", + "type": "object" + }, "ThreadUnsubscribeStatus": { "type": "string", "enum": [ @@ -6698,38 +7660,56 @@ } } }, - "ModelVerification": { - "type": "string", - "enum": [ - "trustedAccessForCyber" - ] - }, - "ModelReroutedNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ModelReroutedNotification", + "ExternalAgentConfigImportTypeResult": { "type": "object", "required": [ - "fromModel", - "reason", - "threadId", - "toModel", - "turnId" + "failures", + "itemType", + "successes" ], "properties": { - "fromModel": { + "failures": { + "type": "array", + "items": { + "$ref": "#/definitions/ExternalAgentConfigImportItemTypeFailure" + } + }, + "itemType": { + "$ref": "#/definitions/ExternalAgentConfigMigrationItemType" + }, + "successes": { + "type": "array", + "items": { + "$ref": "#/definitions/ExternalAgentConfigImportItemTypeSuccess" + } + } + } + }, + "RemoteControlStatusChangedNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "RemoteControlStatusChangedNotification", + "description": "Current remote-control connection status and remote identity exposed to clients.", + "type": "object", + "required": [ + "installationId", + "serverName", + "status" + ], + "properties": { + "environmentId": { + "type": [ + "string", + "null" + ] + }, + "installationId": { "type": "string" }, - "reason": { - "$ref": "#/definitions/ModelRerouteReason" - }, - "threadId": { + "serverName": { "type": "string" }, - "toModel": { - "type": "string" - }, - "turnId": { - "type": "string" + "status": { + "$ref": "#/definitions/RemoteControlConnectionStatus" } } }, @@ -6840,57 +7820,61 @@ } } }, - "ModelRerouteReason": { - "type": "string", - "enum": [ - "highRiskCyberActivity" - ] - }, - "ContextCompactedNotification": { + "AppListUpdatedNotification": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ContextCompactedNotification", - "description": "Deprecated: Use `ContextCompaction` item type instead.", + "title": "AppListUpdatedNotification", + "description": "EXPERIMENTAL - notification emitted when the app list changes.", "type": "object", "required": [ - "threadId", - "turnId" + "data" ], "properties": { - "threadId": { - "type": "string" - }, - "turnId": { - "type": "string" + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/AppInfo" + } } } }, - "ReasoningTextDeltaNotification": { + "AccountRateLimitsUpdatedNotification": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ReasoningTextDeltaNotification", + "title": "AccountRateLimitsUpdatedNotification", + "description": "Sparse rolling rate-limit update.\n\nClients should merge available values into the most recent `account/rateLimits/read` response or refetch that snapshot. Nullable account metadata may be unavailable in a rolling update and does not clear a previously observed value.", "type": "object", "required": [ - "contentIndex", - "delta", - "itemId", - "threadId", - "turnId" + "rateLimits" ], "properties": { - "contentIndex": { - "type": "integer", - "format": "int64" + "rateLimits": { + "$ref": "#/definitions/RateLimitSnapshot" + } + } + }, + "AccountUpdatedNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "AccountUpdatedNotification", + "type": "object", + "properties": { + "authMode": { + "anyOf": [ + { + "$ref": "#/definitions/AuthMode" + }, + { + "type": "null" + } + ] }, - "delta": { - "type": "string" - }, - "itemId": { - "type": "string" - }, - "threadId": { - "type": "string" - }, - "turnId": { - "type": "string" + "planType": { + "anyOf": [ + { + "$ref": "#/definitions/PlanType" + }, + { + "type": "null" + } + ] } } }, @@ -6922,29 +7906,111 @@ "title": "ThreadApproveGuardianDeniedActionResponse", "type": "object" }, - "ReasoningSummaryPartAddedNotification": { + "AuthMode": { + "description": "Authentication mode for OpenAI-backed providers.", + "oneOf": [ + { + "description": "OpenAI API key provided by the caller and stored by Codex.", + "type": "string", + "enum": [ + "apikey" + ] + }, + { + "description": "ChatGPT OAuth managed by Codex (tokens persisted and refreshed by Codex).", + "type": "string", + "enum": [ + "chatgpt" + ] + }, + { + "description": "[UNSTABLE] FOR OPENAI INTERNAL USE ONLY - DO NOT USE.\n\nChatGPT auth tokens are supplied by an external host app and are only stored in memory. Token refresh must be handled by the external host app.", + "type": "string", + "enum": [ + "chatgptAuthTokens" + ] + }, + { + "description": "Programmatic Codex auth backed by a registered Agent Identity.", + "type": "string", + "enum": [ + "agentIdentity" + ] + }, + { + "description": "Programmatic Codex auth backed by a personal access token.", + "type": "string", + "enum": [ + "personalAccessToken" + ] + }, + { + "description": "Amazon Bedrock bearer token managed by Codex.", + "type": "string", + "enum": [ + "bedrockApiKey" + ] + } + ] + }, + "McpServerStatusUpdatedNotification": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ReasoningSummaryPartAddedNotification", + "title": "McpServerStatusUpdatedNotification", "type": "object", "required": [ - "itemId", - "summaryIndex", - "threadId", - "turnId" + "name", + "status" ], "properties": { - "itemId": { + "error": { + "type": [ + "string", + "null" + ] + }, + "name": { "type": "string" }, - "summaryIndex": { - "type": "integer", - "format": "int64" + "status": { + "$ref": "#/definitions/McpServerStartupState" }, "threadId": { + "type": [ + "string", + "null" + ] + } + } + }, + "McpServerStartupState": { + "type": "string", + "enum": [ + "starting", + "ready", + "failed", + "cancelled" + ] + }, + "McpServerOauthLoginCompletedNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "McpServerOauthLoginCompletedNotification", + "type": "object", + "required": [ + "name", + "success" + ], + "properties": { + "error": { + "type": [ + "string", + "null" + ] + }, + "name": { "type": "string" }, - "turnId": { - "type": "string" + "success": { + "type": "boolean" } } }, @@ -6996,6 +8062,46 @@ } } }, + "ThreadSearchResult": { + "type": "object", + "required": [ + "snippet", + "thread" + ], + "properties": { + "snippet": { + "type": "string" + }, + "thread": { + "$ref": "#/definitions/Thread" + } + } + }, + "McpToolCallProgressNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "McpToolCallProgressNotification", + "type": "object", + "required": [ + "itemId", + "message", + "threadId", + "turnId" + ], + "properties": { + "itemId": { + "type": "string" + }, + "message": { + "type": "string" + }, + "threadId": { + "type": "string" + }, + "turnId": { + "type": "string" + } + } + }, "ThreadLoadedListResponse": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "ThreadLoadedListResponse", @@ -7033,58 +8139,33 @@ } } }, - "ReasoningSummaryTextDeltaNotification": { + "ServerRequestResolvedNotification": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ReasoningSummaryTextDeltaNotification", + "title": "ServerRequestResolvedNotification", "type": "object", "required": [ - "delta", - "itemId", - "summaryIndex", - "threadId", - "turnId" + "requestId", + "threadId" ], "properties": { - "delta": { - "type": "string" - }, - "itemId": { - "type": "string" - }, - "summaryIndex": { - "type": "integer", - "format": "int64" + "requestId": { + "$ref": "#/definitions/RequestId" }, "threadId": { "type": "string" - }, - "turnId": { - "type": "string" } } }, - "FsChangedNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "FsChangedNotification", - "description": "Filesystem watch notification emitted for `fs/watch` subscribers.", - "type": "object", - "required": [ - "changedPaths", - "watchId" - ], - "properties": { - "changedPaths": { - "description": "File or directory paths associated with this event.", - "type": "array", - "items": { - "$ref": "#/definitions/AbsolutePathBuf" - } - }, - "watchId": { - "description": "Watch identifier previously provided to `fs/watch`.", + "RequestId": { + "anyOf": [ + { "type": "string" + }, + { + "type": "integer", + "format": "int64" } - } + ] }, "ThreadInjectItemsResponse": { "$schema": "http://json-schema.org/draft-07/schema#", @@ -7312,6 +8393,11 @@ } } }, + "SkillsExtraRootsSetResponse": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "SkillsExtraRootsSetResponse", + "type": "object" + }, "HookErrorInfo": { "type": "object", "required": [ @@ -7438,6 +8524,7 @@ "sessionFlags", "plugin", "cloudRequirements", + "cloudManagedConfig", "legacyManagedConfigFile", "legacyManagedConfigMdm", "unknown" @@ -8127,10 +9214,15 @@ "type": "object", "required": [ "id", - "name", - "needsAuth" + "name" ], "properties": { + "category": { + "type": [ + "string", + "null" + ] + }, "description": { "type": [ "string", @@ -8148,15 +9240,82 @@ }, "name": { "type": "string" - }, - "needsAuth": { - "type": "boolean" } } }, + "AppTemplateSummary": { + "type": "object", + "required": [ + "materializedAppIds", + "name", + "templateId" + ], + "properties": { + "canonicalConnectorId": { + "type": [ + "string", + "null" + ] + }, + "category": { + "type": [ + "string", + "null" + ] + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "logoUrl": { + "type": [ + "string", + "null" + ] + }, + "logoUrlDark": { + "type": [ + "string", + "null" + ] + }, + "materializedAppIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "name": { + "type": "string" + }, + "reason": { + "anyOf": [ + { + "$ref": "#/definitions/AppTemplateUnavailableReason" + }, + { + "type": "null" + } + ] + }, + "templateId": { + "type": "string" + } + } + }, + "AppTemplateUnavailableReason": { + "type": "string", + "enum": [ + "NOT_CONFIGURED_FOR_WORKSPACE", + "NO_ACTIVE_WORKSPACE" + ] + }, "PluginDetail": { "type": "object", "required": [ + "appTemplates", "apps", "hooks", "marketplaceName", @@ -8165,6 +9324,12 @@ "summary" ], "properties": { + "appTemplates": { + "type": "array", + "items": { + "$ref": "#/definitions/AppTemplateSummary" + } + }, "apps": { "type": "array", "items": { @@ -8202,6 +9367,12 @@ "type": "string" } }, + "shareUrl": { + "type": [ + "string", + "null" + ] + }, "skills": { "type": "array", "items": { @@ -8909,66 +10080,152 @@ "title": "TurnInterruptResponse", "type": "object" }, - "ExternalAgentConfigImportCompletedNotification": { + "FileChangePatchUpdatedNotification": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ExternalAgentConfigImportCompletedNotification", - "type": "object" - }, - "RemoteControlStatusChangedNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RemoteControlStatusChangedNotification", - "description": "Current remote-control connection status and remote identity exposed to clients.", + "title": "FileChangePatchUpdatedNotification", "type": "object", "required": [ - "installationId", - "serverName", - "status" + "changes", + "itemId", + "threadId", + "turnId" ], "properties": { - "environmentId": { - "type": [ - "string", - "null" - ] - }, - "installationId": { - "type": "string" - }, - "serverName": { - "type": "string" - }, - "status": { - "$ref": "#/definitions/RemoteControlConnectionStatus" - } - } - }, - "AppListUpdatedNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "AppListUpdatedNotification", - "description": "EXPERIMENTAL - notification emitted when the app list changes.", - "type": "object", - "required": [ - "data" - ], - "properties": { - "data": { + "changes": { "type": "array", "items": { - "$ref": "#/definitions/AppInfo" + "$ref": "#/definitions/FileUpdateChange" } + }, + "itemId": { + "type": "string" + }, + "threadId": { + "type": "string" + }, + "turnId": { + "type": "string" } } }, - "AccountRateLimitsUpdatedNotification": { + "FileChangeOutputDeltaNotification": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "AccountRateLimitsUpdatedNotification", + "title": "FileChangeOutputDeltaNotification", + "description": "Deprecated legacy notification for `apply_patch` textual output.\n\nThe server no longer emits this notification.", "type": "object", "required": [ - "rateLimits" + "delta", + "itemId", + "threadId", + "turnId" ], "properties": { - "rateLimits": { - "$ref": "#/definitions/RateLimitSnapshot" + "delta": { + "type": "string" + }, + "itemId": { + "type": "string" + }, + "threadId": { + "type": "string" + }, + "turnId": { + "type": "string" + } + } + }, + "TerminalInteractionNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "TerminalInteractionNotification", + "type": "object", + "required": [ + "itemId", + "processId", + "stdin", + "threadId", + "turnId" + ], + "properties": { + "itemId": { + "type": "string" + }, + "processId": { + "type": "string" + }, + "stdin": { + "type": "string" + }, + "threadId": { + "type": "string" + }, + "turnId": { + "type": "string" + } + } + }, + "CommandExecutionOutputDeltaNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "CommandExecutionOutputDeltaNotification", + "type": "object", + "required": [ + "delta", + "itemId", + "threadId", + "turnId" + ], + "properties": { + "delta": { + "type": "string" + }, + "itemId": { + "type": "string" + }, + "threadId": { + "type": "string" + }, + "turnId": { + "type": "string" + } + } + }, + "ProcessExitedNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ProcessExitedNotification", + "description": "Final process exit notification for `process/spawn`.", + "type": "object", + "required": [ + "exitCode", + "processHandle", + "stderr", + "stderrCapReached", + "stdout", + "stdoutCapReached" + ], + "properties": { + "exitCode": { + "description": "Process exit code.", + "type": "integer", + "format": "int32" + }, + "processHandle": { + "description": "Client-supplied, connection-scoped `processHandle` from `process/spawn`.", + "type": "string" + }, + "stderr": { + "description": "Buffered stderr capture.\n\nEmpty when stderr was streamed via `process/outputDelta`.", + "type": "string" + }, + "stderrCapReached": { + "description": "Whether stderr reached `outputBytesCap`.\n\nIn streaming mode, stderr is empty and cap state is also reported on the final stderr `process/outputDelta` notification.", + "type": "boolean" + }, + "stdout": { + "description": "Buffered stdout capture.\n\nEmpty when stdout was streamed via `process/outputDelta`.", + "type": "string" + }, + "stdoutCapReached": { + "description": "Whether stdout reached `outputBytesCap`.\n\nIn streaming mode, stdout is empty and cap state is also reported on the final stdout `process/outputDelta` notification.", + "type": "boolean" } } }, @@ -9001,28 +10258,35 @@ } } }, - "AccountUpdatedNotification": { + "ProcessOutputDeltaNotification": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "AccountUpdatedNotification", + "title": "ProcessOutputDeltaNotification", + "description": "Base64-encoded output chunk emitted for a streaming `process/spawn` request.", "type": "object", + "required": [ + "capReached", + "deltaBase64", + "processHandle", + "stream" + ], "properties": { - "authMode": { - "anyOf": [ - { - "$ref": "#/definitions/AuthMode" - }, - { - "type": "null" - } - ] + "capReached": { + "description": "True on the final streamed chunk for this stream when output was truncated by `outputBytesCap`.", + "type": "boolean" }, - "planType": { - "anyOf": [ + "deltaBase64": { + "description": "Base64-encoded output bytes.", + "type": "string" + }, + "processHandle": { + "description": "Client-supplied, connection-scoped `processHandle` from `process/spawn`.", + "type": "string" + }, + "stream": { + "description": "Output stream this chunk belongs to.", + "allOf": [ { - "$ref": "#/definitions/PlanType" - }, - { - "type": "null" + "$ref": "#/definitions/ProcessOutputStream" } ] } @@ -9405,9 +10669,14 @@ "PermissionProfileSummary": { "type": "object", "required": [ + "allowed", "id" ], "properties": { + "allowed": { + "description": "Whether the effective requirements allow selecting this profile.", + "type": "boolean" + }, "description": { "description": "Optional user-facing description for display in clients.", "type": [ @@ -9470,71 +10739,231 @@ "errored" ] }, - "AuthMode": { - "description": "Authentication mode for OpenAI-backed providers.", + "ProcessOutputStream": { + "description": "Stream label for `process/outputDelta` notifications.", "oneOf": [ { - "description": "OpenAI API key provided by the caller and stored by Codex.", + "description": "stdout stream. PTY mode multiplexes terminal output here.", "type": "string", "enum": [ - "apikey" + "stdout" ] }, { - "description": "ChatGPT OAuth managed by Codex (tokens persisted and refreshed by Codex).", + "description": "stderr stream.", "type": "string", "enum": [ - "chatgpt" - ] - }, - { - "description": "[UNSTABLE] FOR OPENAI INTERNAL USE ONLY - DO NOT USE.\n\nChatGPT auth tokens are supplied by an external host app and are only stored in memory. Token refresh must be handled by the external host app.", - "type": "string", - "enum": [ - "chatgptAuthTokens" - ] - }, - { - "description": "Programmatic Codex auth backed by a registered Agent Identity.", - "type": "string", - "enum": [ - "agentIdentity" + "stderr" ] } ] }, - "McpServerStatusUpdatedNotification": { + "CommandExecOutputDeltaNotification": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "McpServerStatusUpdatedNotification", + "title": "CommandExecOutputDeltaNotification", + "description": "Base64-encoded output chunk emitted for a streaming `command/exec` request.\n\nThese notifications are connection-scoped. If the originating connection closes, the server terminates the process.", "type": "object", "required": [ - "name", - "status" + "capReached", + "deltaBase64", + "processId", + "stream" ], "properties": { - "error": { + "capReached": { + "description": "`true` on the final streamed chunk for a stream when `outputBytesCap` truncated later output on that stream.", + "type": "boolean" + }, + "deltaBase64": { + "description": "Base64-encoded output bytes.", + "type": "string" + }, + "processId": { + "description": "Client-supplied, connection-scoped `processId` from the original `command/exec` request.", + "type": "string" + }, + "stream": { + "description": "Output stream for this chunk.", + "allOf": [ + { + "$ref": "#/definitions/CommandExecOutputStream" + } + ] + } + } + }, + "CommandExecOutputStream": { + "description": "Stream label for `command/exec/outputDelta` notifications.", + "oneOf": [ + { + "description": "stdout stream. PTY mode multiplexes terminal output here.", + "type": "string", + "enum": [ + "stdout" + ] + }, + { + "description": "stderr stream.", + "type": "string", + "enum": [ + "stderr" + ] + } + ] + }, + "PlanDeltaNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "PlanDeltaNotification", + "description": "EXPERIMENTAL - proposed plan streaming deltas for plan items. Clients should not assume concatenated deltas match the completed plan item content.", + "type": "object", + "required": [ + "delta", + "itemId", + "threadId", + "turnId" + ], + "properties": { + "delta": { + "type": "string" + }, + "itemId": { + "type": "string" + }, + "threadId": { + "type": "string" + }, + "turnId": { + "type": "string" + } + } + }, + "AgentMessageDeltaNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "AgentMessageDeltaNotification", + "type": "object", + "required": [ + "delta", + "itemId", + "threadId", + "turnId" + ], + "properties": { + "delta": { + "type": "string" + }, + "itemId": { + "type": "string" + }, + "threadId": { + "type": "string" + }, + "turnId": { + "type": "string" + } + } + }, + "RawResponseItemCompletedNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "RawResponseItemCompletedNotification", + "type": "object", + "required": [ + "item", + "threadId", + "turnId" + ], + "properties": { + "item": { + "$ref": "#/definitions/ResponseItem" + }, + "threadId": { + "type": "string" + }, + "turnId": { + "type": "string" + } + } + }, + "ItemCompletedNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ItemCompletedNotification", + "type": "object", + "required": [ + "completedAtMs", + "item", + "threadId", + "turnId" + ], + "properties": { + "completedAtMs": { + "description": "Unix timestamp (in milliseconds) when this item lifecycle completed.", + "type": "integer", + "format": "int64" + }, + "item": { + "$ref": "#/definitions/ThreadItem" + }, + "threadId": { + "type": "string" + }, + "turnId": { + "type": "string" + } + } + }, + "ItemGuardianApprovalReviewCompletedNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ItemGuardianApprovalReviewCompletedNotification", + "description": "[UNSTABLE] Temporary notification payload for approval auto-review. This shape is expected to change soon.", + "type": "object", + "required": [ + "action", + "completedAtMs", + "decisionSource", + "review", + "reviewId", + "startedAtMs", + "threadId", + "turnId" + ], + "properties": { + "action": { + "$ref": "#/definitions/GuardianApprovalReviewAction" + }, + "completedAtMs": { + "description": "Unix timestamp (in milliseconds) when this review completed.", + "type": "integer", + "format": "int64" + }, + "decisionSource": { + "$ref": "#/definitions/AutoReviewDecisionSource" + }, + "review": { + "$ref": "#/definitions/GuardianApprovalReview" + }, + "reviewId": { + "description": "Stable identifier for this review.", + "type": "string" + }, + "startedAtMs": { + "description": "Unix timestamp (in milliseconds) when this review started.", + "type": "integer", + "format": "int64" + }, + "targetItemId": { + "description": "Identifier for the reviewed item or tool call when one exists.\n\nIn most cases, one review maps to one target item. The exceptions are - execve reviews, where a single command may contain multiple execve calls to review (only possible when using the shell_zsh_fork feature) - network policy reviews, where there is no target item\n\nA network call is triggered by a CommandExecution item, so having a target_item_id set to the CommandExecution item would be misleading because the review is about the network call, not the command execution. Therefore, target_item_id is set to None for network policy reviews.", "type": [ "string", "null" ] }, - "name": { + "threadId": { "type": "string" }, - "status": { - "$ref": "#/definitions/McpServerStartupState" + "turnId": { + "type": "string" } } }, - "McpServerStartupState": { - "type": "string", - "enum": [ - "starting", - "ready", - "failed", - "cancelled" - ] - }, "CollaborationModeMask": { "description": "EXPERIMENTAL - collaboration mode preset metadata for clients.", "type": "object", @@ -9580,45 +11009,48 @@ } } }, - "McpServerOauthLoginCompletedNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "McpServerOauthLoginCompletedNotification", - "type": "object", - "required": [ - "name", - "success" - ], - "properties": { - "error": { - "type": [ - "string", - "null" - ] - }, - "name": { - "type": "string" - }, - "success": { - "type": "boolean" - } - } + "AutoReviewDecisionSource": { + "description": "[UNSTABLE] Source that produced a terminal approval auto-review decision.", + "type": "string", + "enum": [ + "agent" + ] }, - "McpToolCallProgressNotification": { + "ItemGuardianApprovalReviewStartedNotification": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "McpToolCallProgressNotification", + "title": "ItemGuardianApprovalReviewStartedNotification", + "description": "[UNSTABLE] Temporary notification payload for approval auto-review. This shape is expected to change soon.", "type": "object", "required": [ - "itemId", - "message", + "action", + "review", + "reviewId", + "startedAtMs", "threadId", "turnId" ], "properties": { - "itemId": { + "action": { + "$ref": "#/definitions/GuardianApprovalReviewAction" + }, + "review": { + "$ref": "#/definitions/GuardianApprovalReview" + }, + "reviewId": { + "description": "Stable identifier for this review.", "type": "string" }, - "message": { - "type": "string" + "startedAtMs": { + "description": "Unix timestamp (in milliseconds) when this review started.", + "type": "integer", + "format": "int64" + }, + "targetItemId": { + "description": "Identifier for the reviewed item or tool call when one exists.\n\nIn most cases, one review maps to one target item. The exceptions are - execve reviews, where a single command may contain multiple execve calls to review (only possible when using the shell_zsh_fork feature) - network policy reviews, where there is no target item\n\nA network call is triggered by a CommandExecution item, so having a target_item_id set to the CommandExecution item would be misleading because the review is about the network call, not the command execution. Therefore, target_item_id is set to None for network policy reviews.", + "type": [ + "string", + "null" + ] }, "threadId": { "type": "string" @@ -9628,22 +11060,31 @@ } } }, - "ServerRequestResolvedNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ServerRequestResolvedNotification", + "RequestPermissionProfile": { "type": "object", - "required": [ - "requestId", - "threadId" - ], "properties": { - "requestId": { - "$ref": "#/definitions/RequestId" + "fileSystem": { + "anyOf": [ + { + "$ref": "#/definitions/AdditionalFileSystemPermissions" + }, + { + "type": "null" + } + ] }, - "threadId": { - "type": "string" + "network": { + "anyOf": [ + { + "$ref": "#/definitions/AdditionalNetworkPermissions" + }, + { + "type": "null" + } + ] } - } + }, + "additionalProperties": false }, "McpServerOauthLoginResponse": { "$schema": "http://json-schema.org/draft-07/schema#", @@ -9672,6 +11113,47 @@ "oAuth" ] }, + "McpServerInfo": { + "description": "Presentation metadata advertised by an initialized MCP server.", + "type": "object", + "required": [ + "name", + "version" + ], + "properties": { + "description": { + "type": [ + "string", + "null" + ] + }, + "icons": { + "type": [ + "array", + "null" + ], + "items": true + }, + "name": { + "type": "string" + }, + "title": { + "type": [ + "string", + "null" + ] + }, + "version": { + "type": "string" + }, + "websiteUrl": { + "type": [ + "string", + "null" + ] + } + } + }, "McpServerStatus": { "type": "object", "required": [ @@ -9700,6 +11182,16 @@ "$ref": "#/definitions/Resource" } }, + "serverInfo": { + "anyOf": [ + { + "$ref": "#/definitions/McpServerInfo" + }, + { + "type": "null" + } + ] + }, "tools": { "type": "object", "additionalProperties": { @@ -10141,6 +11633,18 @@ "workspace_member_usage_limit_reached" ] }, + "RateLimitResetCreditsSummary": { + "type": "object", + "required": [ + "availableCount" + ], + "properties": { + "availableCount": { + "type": "integer", + "format": "int64" + } + } + }, "RateLimitSnapshot": { "type": "object", "properties": { @@ -10154,6 +11658,16 @@ } ] }, + "individualLimit": { + "anyOf": [ + { + "$ref": "#/definitions/SpendControlLimitSnapshot" + }, + { + "type": "null" + } + ] + }, "limitId": { "type": [ "string", @@ -10234,6 +11748,31 @@ } } }, + "SpendControlLimitSnapshot": { + "type": "object", + "required": [ + "limit", + "remainingPercent", + "resetsAt", + "used" + ], + "properties": { + "limit": { + "type": "string" + }, + "remainingPercent": { + "type": "integer", + "format": "int32" + }, + "resetsAt": { + "type": "integer", + "format": "int64" + }, + "used": { + "type": "string" + } + } + }, "GetAccountRateLimitsResponse": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "GetAccountRateLimitsResponse", @@ -10242,6 +11781,16 @@ "rateLimits" ], "properties": { + "rateLimitResetCredits": { + "anyOf": [ + { + "$ref": "#/definitions/RateLimitResetCreditsSummary" + }, + { + "type": "null" + } + ] + }, "rateLimits": { "description": "Backward-compatible single-bucket view; mirrors the historical payload.", "allOf": [ @@ -10262,6 +11811,194 @@ } } }, + "ConsumeAccountRateLimitResetCreditOutcome": { + "oneOf": [ + { + "description": "A reset credit was consumed and the eligible rate-limit windows were reset.", + "type": "string", + "enum": [ + "reset" + ] + }, + { + "description": "No current rate-limit window is eligible for a reset.", + "type": "string", + "enum": [ + "nothingToReset" + ] + }, + { + "description": "The account has no earned reset credits available.", + "type": "string", + "enum": [ + "noCredit" + ] + }, + { + "description": "The same idempotency key already completed a reset successfully.", + "type": "string", + "enum": [ + "alreadyRedeemed" + ] + } + ] + }, + "ConsumeAccountRateLimitResetCreditResponse": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ConsumeAccountRateLimitResetCreditResponse", + "type": "object", + "required": [ + "outcome" + ], + "properties": { + "outcome": { + "$ref": "#/definitions/ConsumeAccountRateLimitResetCreditOutcome" + } + } + }, + "AccountTokenUsageDailyBucket": { + "type": "object", + "required": [ + "startDate", + "tokens" + ], + "properties": { + "startDate": { + "type": "string" + }, + "tokens": { + "type": "integer", + "format": "int64" + } + } + }, + "AccountTokenUsageSummary": { + "type": "object", + "properties": { + "currentStreakDays": { + "type": [ + "integer", + "null" + ], + "format": "int64" + }, + "lifetimeTokens": { + "type": [ + "integer", + "null" + ], + "format": "int64" + }, + "longestRunningTurnSec": { + "type": [ + "integer", + "null" + ], + "format": "int64" + }, + "longestStreakDays": { + "type": [ + "integer", + "null" + ], + "format": "int64" + }, + "peakDailyTokens": { + "type": [ + "integer", + "null" + ], + "format": "int64" + } + } + }, + "GetAccountTokenUsageResponse": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "GetAccountTokenUsageResponse", + "type": "object", + "required": [ + "summary" + ], + "properties": { + "dailyUsageBuckets": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/AccountTokenUsageDailyBucket" + } + }, + "summary": { + "$ref": "#/definitions/AccountTokenUsageSummary" + } + } + }, + "WorkspaceMessage": { + "type": "object", + "required": [ + "messageBody", + "messageId", + "messageType" + ], + "properties": { + "archivedAt": { + "description": "Unix timestamp (in seconds) when the message was archived.", + "type": [ + "integer", + "null" + ], + "format": "int64" + }, + "createdAt": { + "description": "Unix timestamp (in seconds) when the message was created.", + "type": [ + "integer", + "null" + ], + "format": "int64" + }, + "messageBody": { + "type": "string" + }, + "messageId": { + "type": "string" + }, + "messageType": { + "$ref": "#/definitions/WorkspaceMessageType" + } + } + }, + "WorkspaceMessageType": { + "type": "string", + "enum": [ + "headline", + "announcement", + "unknown" + ] + }, + "GetWorkspaceMessagesResponse": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "GetWorkspaceMessagesResponse", + "type": "object", + "required": [ + "featureEnabled", + "messages" + ], + "properties": { + "featureEnabled": { + "description": "Whether the workspace-message backend route is available for this client.", + "type": "boolean" + }, + "messages": { + "description": "Active workspace messages returned by the backend.", + "type": "array", + "items": { + "$ref": "#/definitions/WorkspaceMessage" + } + } + } + }, "AddCreditsNudgeEmailStatus": { "type": "string", "enum": [ @@ -10339,99 +12076,41 @@ "description": "Empty success response for `command/exec/resize`.", "type": "object" }, - "RequestId": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "integer", - "format": "int64" - } + "NetworkApprovalProtocol": { + "type": "string", + "enum": [ + "http", + "https", + "socks5Tcp", + "socks5Udp" ] }, - "FileChangePatchUpdatedNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "FileChangePatchUpdatedNotification", - "type": "object", - "required": [ - "changes", - "itemId", - "threadId", - "turnId" - ], - "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/FileUpdateChange" - } - }, - "itemId": { - "type": "string" - }, - "threadId": { - "type": "string" - }, - "turnId": { - "type": "string" - } - } + "GuardianUserAuthorization": { + "description": "[UNSTABLE] Authorization level assigned by approval auto-review.", + "type": "string", + "enum": [ + "unknown", + "low", + "medium", + "high" + ] }, - "FileChangeOutputDeltaNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "FileChangeOutputDeltaNotification", - "description": "Deprecated legacy notification for `apply_patch` textual output.\n\nThe server no longer emits this notification.", - "type": "object", - "required": [ - "delta", - "itemId", - "threadId", - "turnId" - ], - "properties": { - "delta": { - "type": "string" - }, - "itemId": { - "type": "string" - }, - "threadId": { - "type": "string" - }, - "turnId": { - "type": "string" - } - } + "GuardianRiskLevel": { + "description": "[UNSTABLE] Risk level assigned by approval auto-review.", + "type": "string", + "enum": [ + "low", + "medium", + "high", + "critical" + ] }, - "TerminalInteractionNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "TerminalInteractionNotification", - "type": "object", - "required": [ - "itemId", - "processId", - "stdin", - "threadId", - "turnId" - ], - "properties": { - "itemId": { - "type": "string" - }, - "processId": { - "type": "string" - }, - "stdin": { - "type": "string" - }, - "threadId": { - "type": "string" - }, - "turnId": { - "type": "string" - } - } + "GuardianCommandSource": { + "type": "string", + "enum": [ + "shell", + "unifiedExec" + ] }, "AnalyticsConfig": { "type": "object", @@ -10448,6 +12127,16 @@ "AppConfig": { "type": "object", "properties": { + "approvals_reviewer": { + "anyOf": [ + { + "$ref": "#/definitions/ApprovalsReviewer" + }, + { + "type": "null" + } + ] + }, "default_tools_approval_mode": { "anyOf": [ { @@ -10543,6 +12232,26 @@ "AppsDefaultConfig": { "type": "object", "properties": { + "approvals_reviewer": { + "anyOf": [ + { + "$ref": "#/definitions/ApprovalsReviewer" + }, + { + "type": "null" + } + ] + }, + "default_tools_approval_mode": { + "anyOf": [ + { + "$ref": "#/definitions/AppToolApproval" + }, + { + "type": "null" + } + ] + }, "destructive_enabled": { "default": true, "type": "boolean" @@ -10731,19 +12440,6 @@ } ] }, - "profile": { - "type": [ - "string", - "null" - ] - }, - "profiles": { - "default": {}, - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/ProfileV2" - } - }, "review_model": { "type": [ "string", @@ -10880,6 +12576,33 @@ }, "title": "SystemConfigLayerSource" }, + { + "description": "Enterprise-managed config layer delivered by the cloud config bundle.", + "type": "object", + "required": [ + "id", + "name", + "type" + ], + "properties": { + "id": { + "description": "Stable identifier for the delivered layer.", + "type": "string" + }, + "name": { + "description": "Admin-facing name for the delivered layer. This is surfaced in diagnostics so users know which cloud layer needs administrator attention.", + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "enterpriseManaged" + ], + "title": "EnterpriseManagedConfigLayerSourceType" + } + }, + "title": "EnterpriseManagedConfigLayerSource" + }, { "description": "User config layer from $CODEX_HOME/config.toml. This layer is special in that it is expected to be: - writable by the user - generally outside the workspace directory", "type": "object", @@ -11011,107 +12734,6 @@ "api" ] }, - "ProfileV2": { - "type": "object", - "properties": { - "approval_policy": { - "anyOf": [ - { - "$ref": "#/definitions/AskForApproval" - }, - { - "type": "null" - } - ] - }, - "approvals_reviewer": { - "description": "[UNSTABLE] Optional profile-level override for where approval requests are routed for review. If omitted, the enclosing config default is used.", - "anyOf": [ - { - "$ref": "#/definitions/ApprovalsReviewer" - }, - { - "type": "null" - } - ] - }, - "chatgpt_base_url": { - "type": [ - "string", - "null" - ] - }, - "model": { - "type": [ - "string", - "null" - ] - }, - "model_provider": { - "type": [ - "string", - "null" - ] - }, - "model_reasoning_effort": { - "anyOf": [ - { - "$ref": "#/definitions/ReasoningEffort" - }, - { - "type": "null" - } - ] - }, - "model_reasoning_summary": { - "anyOf": [ - { - "$ref": "#/definitions/ReasoningSummary" - }, - { - "type": "null" - } - ] - }, - "model_verbosity": { - "anyOf": [ - { - "$ref": "#/definitions/Verbosity" - }, - { - "type": "null" - } - ] - }, - "service_tier": { - "type": [ - "string", - "null" - ] - }, - "tools": { - "anyOf": [ - { - "$ref": "#/definitions/ToolsV2" - }, - { - "type": "null" - } - ] - }, - "web_search": { - "anyOf": [ - { - "$ref": "#/definitions/WebSearchMode" - }, - { - "type": "null" - } - ] - } - }, - "additionalProperties": true - }, "SandboxWorkspaceWrite": { "type": "object", "properties": { @@ -11203,6 +12825,7 @@ "enum": [ "disabled", "cached", + "indexed", "live" ] }, @@ -11289,7 +12912,127 @@ "ExternalAgentConfigImportResponse": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "ExternalAgentConfigImportResponse", - "type": "object" + "type": "object", + "required": [ + "importId" + ], + "properties": { + "importId": { + "type": "string" + } + } + }, + "ExternalAgentConfigImportHistory": { + "type": "object", + "required": [ + "completedAtMs", + "failures", + "importId", + "successes" + ], + "properties": { + "completedAtMs": { + "type": "integer", + "format": "int64" + }, + "failures": { + "type": "array", + "items": { + "$ref": "#/definitions/ExternalAgentConfigImportItemTypeFailure" + } + }, + "importId": { + "type": "string" + }, + "successes": { + "type": "array", + "items": { + "$ref": "#/definitions/ExternalAgentConfigImportItemTypeSuccess" + } + } + } + }, + "ExternalAgentConfigImportItemTypeFailure": { + "type": "object", + "required": [ + "failureStage", + "itemType", + "message" + ], + "properties": { + "cwd": { + "type": [ + "string", + "null" + ] + }, + "errorType": { + "type": [ + "string", + "null" + ] + }, + "failureStage": { + "type": "string" + }, + "itemType": { + "$ref": "#/definitions/ExternalAgentConfigMigrationItemType" + }, + "message": { + "type": "string" + }, + "source": { + "type": [ + "string", + "null" + ] + } + } + }, + "ExternalAgentConfigImportItemTypeSuccess": { + "type": "object", + "required": [ + "itemType" + ], + "properties": { + "cwd": { + "type": [ + "string", + "null" + ] + }, + "itemType": { + "$ref": "#/definitions/ExternalAgentConfigMigrationItemType" + }, + "source": { + "type": [ + "string", + "null" + ] + }, + "target": { + "type": [ + "string", + "null" + ] + } + } + }, + "ExternalAgentConfigImportHistoriesReadResponse": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ExternalAgentConfigImportHistoriesReadResponse", + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/ExternalAgentConfigImportHistory" + } + } + } }, "OverriddenMetadata": { "type": "object", @@ -11365,12 +13108,24 @@ "ConfigRequirements": { "type": "object", "properties": { + "allowAppshots": { + "type": [ + "boolean", + "null" + ] + }, "allowManagedHooksOnly": { "type": [ "boolean", "null" ] }, + "allowRemoteControl": { + "type": [ + "boolean", + "null" + ] + }, "allowedApprovalPolicies": { "type": [ "array", @@ -11389,13 +13144,13 @@ "type": "boolean" } }, - "allowedPermissions": { + "allowedPermissionProfiles": { "type": [ - "array", + "object", "null" ], - "items": { - "type": "string" + "additionalProperties": { + "type": "boolean" } }, "allowedSandboxModes": { @@ -11416,6 +13171,15 @@ "$ref": "#/definitions/WebSearchMode" } }, + "allowedWindowsSandboxImplementations": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/WindowsSandboxSetupMode" + } + }, "computerUse": { "anyOf": [ { @@ -11426,6 +13190,12 @@ } ] }, + "defaultPermissions": { + "type": [ + "string", + "null" + ] + }, "enforceResidency": { "anyOf": [ { @@ -11746,7 +13516,7 @@ "type": "string", "enum": [ "allow", - "none" + "deny" ] }, "ResidencyRequirement": { @@ -11800,7 +13570,10 @@ ], "properties": { "email": { - "type": "string" + "type": [ + "string", + "null" + ] }, "planType": { "$ref": "#/definitions/PlanType" @@ -11821,6 +13594,14 @@ "type" ], "properties": { + "credentialSource": { + "default": "awsManaged", + "allOf": [ + { + "$ref": "#/definitions/AmazonBedrockCredentialSource" + } + ] + }, "type": { "type": "string", "enum": [ @@ -11833,6 +13614,13 @@ } ] }, + "AmazonBedrockCredentialSource": { + "type": "string", + "enum": [ + "codexManaged", + "awsManaged" + ] + }, "GetAccountResponse": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "GetAccountResponse", @@ -11924,6 +13712,19 @@ } } }, + "ThreadDeletedNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ThreadDeletedNotification", + "type": "object", + "required": [ + "threadId" + ], + "properties": { + "threadId": { + "type": "string" + } + } + }, "ThreadUnarchivedNotification": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "ThreadUnarchivedNotification", @@ -12061,6 +13862,16 @@ "modelProvider": { "type": "string" }, + "summary": { + "anyOf": [ + { + "$ref": "#/definitions/ReasoningSummary" + }, + { + "type": "null" + } + ] + }, "personality": { "anyOf": [ { @@ -12079,16 +13890,6 @@ "string", "null" ] - }, - "summary": { - "anyOf": [ - { - "$ref": "#/definitions/ReasoningSummary" - }, - { - "type": "null" - } - ] } } }, @@ -12522,7 +14323,7 @@ "null" ], "items": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } }, "write": { @@ -12532,7 +14333,7 @@ "null" ], "items": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } } } @@ -12566,7 +14367,7 @@ ], "properties": { "path": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" }, "type": { "type": "string", @@ -12989,440 +14790,46 @@ "aborted" ] }, - "GuardianCommandSource": { - "type": "string", - "enum": [ - "shell", - "unifiedExec" - ] - }, - "GuardianRiskLevel": { - "description": "[UNSTABLE] Risk level assigned by approval auto-review.", - "type": "string", - "enum": [ - "low", - "medium", - "high", - "critical" - ] - }, - "GuardianUserAuthorization": { - "description": "[UNSTABLE] Authorization level assigned by approval auto-review.", - "type": "string", - "enum": [ - "unknown", - "low", - "medium", - "high" - ] - }, - "NetworkApprovalProtocol": { - "type": "string", - "enum": [ - "http", - "https", - "socks5Tcp", - "socks5Udp" - ] - }, - "RequestPermissionProfile": { + "InitializeParams": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "InitializeParams", "type": "object", + "required": [ + "clientInfo" + ], "properties": { - "fileSystem": { + "capabilities": { "anyOf": [ { - "$ref": "#/definitions/AdditionalFileSystemPermissions" + "$ref": "#/definitions/InitializeCapabilities" }, { "type": "null" } ] }, - "network": { - "anyOf": [ - { - "$ref": "#/definitions/AdditionalNetworkPermissions" - }, - { - "type": "null" - } - ] + "clientInfo": { + "$ref": "#/definitions/ClientInfo" } - }, - "additionalProperties": false + } }, - "ItemGuardianApprovalReviewStartedNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ItemGuardianApprovalReviewStartedNotification", - "description": "[UNSTABLE] Temporary notification payload for approval auto-review. This shape is expected to change soon.", + "ClientInfo": { "type": "object", "required": [ - "action", - "review", - "reviewId", - "startedAtMs", - "threadId", - "turnId" + "name", + "version" ], "properties": { - "action": { - "$ref": "#/definitions/GuardianApprovalReviewAction" - }, - "review": { - "$ref": "#/definitions/GuardianApprovalReview" - }, - "reviewId": { - "description": "Stable identifier for this review.", + "name": { "type": "string" }, - "startedAtMs": { - "description": "Unix timestamp (in milliseconds) when this review started.", - "type": "integer", - "format": "int64" - }, - "targetItemId": { - "description": "Identifier for the reviewed item or tool call when one exists.\n\nIn most cases, one review maps to one target item. The exceptions are - execve reviews, where a single command may contain multiple execve calls to review (only possible when using the shell_zsh_fork feature) - network policy reviews, where there is no target item\n\nA network call is triggered by a CommandExecution item, so having a target_item_id set to the CommandExecution item would be misleading because the review is about the network call, not the command execution. Therefore, target_item_id is set to None for network policy reviews.", + "title": { "type": [ "string", "null" ] }, - "threadId": { - "type": "string" - }, - "turnId": { - "type": "string" - } - } - }, - "AutoReviewDecisionSource": { - "description": "[UNSTABLE] Source that produced a terminal approval auto-review decision.", - "type": "string", - "enum": [ - "agent" - ] - }, - "ItemGuardianApprovalReviewCompletedNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ItemGuardianApprovalReviewCompletedNotification", - "description": "[UNSTABLE] Temporary notification payload for approval auto-review. This shape is expected to change soon.", - "type": "object", - "required": [ - "action", - "completedAtMs", - "decisionSource", - "review", - "reviewId", - "startedAtMs", - "threadId", - "turnId" - ], - "properties": { - "action": { - "$ref": "#/definitions/GuardianApprovalReviewAction" - }, - "completedAtMs": { - "description": "Unix timestamp (in milliseconds) when this review completed.", - "type": "integer", - "format": "int64" - }, - "decisionSource": { - "$ref": "#/definitions/AutoReviewDecisionSource" - }, - "review": { - "$ref": "#/definitions/GuardianApprovalReview" - }, - "reviewId": { - "description": "Stable identifier for this review.", - "type": "string" - }, - "startedAtMs": { - "description": "Unix timestamp (in milliseconds) when this review started.", - "type": "integer", - "format": "int64" - }, - "targetItemId": { - "description": "Identifier for the reviewed item or tool call when one exists.\n\nIn most cases, one review maps to one target item. The exceptions are - execve reviews, where a single command may contain multiple execve calls to review (only possible when using the shell_zsh_fork feature) - network policy reviews, where there is no target item\n\nA network call is triggered by a CommandExecution item, so having a target_item_id set to the CommandExecution item would be misleading because the review is about the network call, not the command execution. Therefore, target_item_id is set to None for network policy reviews.", - "type": [ - "string", - "null" - ] - }, - "threadId": { - "type": "string" - }, - "turnId": { - "type": "string" - } - } - }, - "ItemCompletedNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ItemCompletedNotification", - "type": "object", - "required": [ - "completedAtMs", - "item", - "threadId", - "turnId" - ], - "properties": { - "completedAtMs": { - "description": "Unix timestamp (in milliseconds) when this item lifecycle completed.", - "type": "integer", - "format": "int64" - }, - "item": { - "$ref": "#/definitions/ThreadItem" - }, - "threadId": { - "type": "string" - }, - "turnId": { - "type": "string" - } - } - }, - "RawResponseItemCompletedNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RawResponseItemCompletedNotification", - "type": "object", - "required": [ - "item", - "threadId", - "turnId" - ], - "properties": { - "item": { - "$ref": "#/definitions/ResponseItem" - }, - "threadId": { - "type": "string" - }, - "turnId": { - "type": "string" - } - } - }, - "AgentMessageDeltaNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "AgentMessageDeltaNotification", - "type": "object", - "required": [ - "delta", - "itemId", - "threadId", - "turnId" - ], - "properties": { - "delta": { - "type": "string" - }, - "itemId": { - "type": "string" - }, - "threadId": { - "type": "string" - }, - "turnId": { - "type": "string" - } - } - }, - "PlanDeltaNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "PlanDeltaNotification", - "description": "EXPERIMENTAL - proposed plan streaming deltas for plan items. Clients should not assume concatenated deltas match the completed plan item content.", - "type": "object", - "required": [ - "delta", - "itemId", - "threadId", - "turnId" - ], - "properties": { - "delta": { - "type": "string" - }, - "itemId": { - "type": "string" - }, - "threadId": { - "type": "string" - }, - "turnId": { - "type": "string" - } - } - }, - "CommandExecOutputStream": { - "description": "Stream label for `command/exec/outputDelta` notifications.", - "oneOf": [ - { - "description": "stdout stream. PTY mode multiplexes terminal output here.", - "type": "string", - "enum": [ - "stdout" - ] - }, - { - "description": "stderr stream.", - "type": "string", - "enum": [ - "stderr" - ] - } - ] - }, - "CommandExecOutputDeltaNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "CommandExecOutputDeltaNotification", - "description": "Base64-encoded output chunk emitted for a streaming `command/exec` request.\n\nThese notifications are connection-scoped. If the originating connection closes, the server terminates the process.", - "type": "object", - "required": [ - "capReached", - "deltaBase64", - "processId", - "stream" - ], - "properties": { - "capReached": { - "description": "`true` on the final streamed chunk for a stream when `outputBytesCap` truncated later output on that stream.", - "type": "boolean" - }, - "deltaBase64": { - "description": "Base64-encoded output bytes.", - "type": "string" - }, - "processId": { - "description": "Client-supplied, connection-scoped `processId` from the original `command/exec` request.", - "type": "string" - }, - "stream": { - "description": "Output stream for this chunk.", - "allOf": [ - { - "$ref": "#/definitions/CommandExecOutputStream" - } - ] - } - } - }, - "ProcessOutputStream": { - "description": "Stream label for `process/outputDelta` notifications.", - "oneOf": [ - { - "description": "stdout stream. PTY mode multiplexes terminal output here.", - "type": "string", - "enum": [ - "stdout" - ] - }, - { - "description": "stderr stream.", - "type": "string", - "enum": [ - "stderr" - ] - } - ] - }, - "ProcessOutputDeltaNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ProcessOutputDeltaNotification", - "description": "Base64-encoded output chunk emitted for a streaming `process/spawn` request.", - "type": "object", - "required": [ - "capReached", - "deltaBase64", - "processHandle", - "stream" - ], - "properties": { - "capReached": { - "description": "True on the final streamed chunk for this stream when output was truncated by `outputBytesCap`.", - "type": "boolean" - }, - "deltaBase64": { - "description": "Base64-encoded output bytes.", - "type": "string" - }, - "processHandle": { - "description": "Client-supplied, connection-scoped `processHandle` from `process/spawn`.", - "type": "string" - }, - "stream": { - "description": "Output stream this chunk belongs to.", - "allOf": [ - { - "$ref": "#/definitions/ProcessOutputStream" - } - ] - } - } - }, - "ProcessExitedNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ProcessExitedNotification", - "description": "Final process exit notification for `process/spawn`.", - "type": "object", - "required": [ - "exitCode", - "processHandle", - "stderr", - "stderrCapReached", - "stdout", - "stdoutCapReached" - ], - "properties": { - "exitCode": { - "description": "Process exit code.", - "type": "integer", - "format": "int32" - }, - "processHandle": { - "description": "Client-supplied, connection-scoped `processHandle` from `process/spawn`.", - "type": "string" - }, - "stderr": { - "description": "Buffered stderr capture.\n\nEmpty when stderr was streamed via `process/outputDelta`.", - "type": "string" - }, - "stderrCapReached": { - "description": "Whether stderr reached `outputBytesCap`.\n\nIn streaming mode, stderr is empty and cap state is also reported on the final stderr `process/outputDelta` notification.", - "type": "boolean" - }, - "stdout": { - "description": "Buffered stdout capture.\n\nEmpty when stdout was streamed via `process/outputDelta`.", - "type": "string" - }, - "stdoutCapReached": { - "description": "Whether stdout reached `outputBytesCap`.\n\nIn streaming mode, stdout is empty and cap state is also reported on the final stdout `process/outputDelta` notification.", - "type": "boolean" - } - } - }, - "CommandExecutionOutputDeltaNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "CommandExecutionOutputDeltaNotification", - "type": "object", - "required": [ - "delta", - "itemId", - "threadId", - "turnId" - ], - "properties": { - "delta": { - "type": "string" - }, - "itemId": { - "type": "string" - }, - "threadId": { - "type": "string" - }, - "turnId": { + "version": { "type": "string" } } @@ -13453,12 +14860,18 @@ } } }, - "FuzzyFileSearchMatchType": { - "type": "string", - "enum": [ - "file", - "directory" - ] + "FuzzyFileSearchSessionCompletedNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "FuzzyFileSearchSessionCompletedNotification", + "type": "object", + "required": [ + "sessionId" + ], + "properties": { + "sessionId": { + "type": "string" + } + } }, "InitializeCapabilities": { "description": "Client-declared capabilities negotiated during initialize.", @@ -13469,6 +14882,10 @@ "default": false, "type": "boolean" }, + "mcpServerOpenaiFormElicitation": { + "description": "Allow downstream MCP servers to request OpenAI extended form elicitations.", + "type": "boolean" + }, "optOutNotificationMethods": { "description": "Exact notification method names that should be suppressed for this connection (for example `thread/started`).", "type": [ @@ -13486,23 +14903,26 @@ } } }, - "ClientInfo": { + "FuzzyFileSearchSessionUpdatedNotification": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "FuzzyFileSearchSessionUpdatedNotification", "type": "object", "required": [ - "name", - "version" + "files", + "query", + "sessionId" ], "properties": { - "name": { + "files": { + "type": "array", + "items": { + "$ref": "#/definitions/FuzzyFileSearchResult" + } + }, + "query": { "type": "string" }, - "title": { - "type": [ - "string", - "null" - ] - }, - "version": { + "sessionId": { "type": "string" } } @@ -13548,65 +14968,12 @@ } } }, - "FuzzyFileSearchSessionCompletedNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "FuzzyFileSearchSessionCompletedNotification", - "type": "object", - "required": [ - "sessionId" - ], - "properties": { - "sessionId": { - "type": "string" - } - } - }, - "FuzzyFileSearchSessionUpdatedNotification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "FuzzyFileSearchSessionUpdatedNotification", - "type": "object", - "required": [ - "files", - "query", - "sessionId" - ], - "properties": { - "files": { - "type": "array", - "items": { - "$ref": "#/definitions/FuzzyFileSearchResult" - } - }, - "query": { - "type": "string" - }, - "sessionId": { - "type": "string" - } - } - }, - "InitializeParams": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "InitializeParams", - "type": "object", - "required": [ - "clientInfo" - ], - "properties": { - "capabilities": { - "anyOf": [ - { - "$ref": "#/definitions/InitializeCapabilities" - }, - { - "type": "null" - } - ] - }, - "clientInfo": { - "$ref": "#/definitions/ClientInfo" - } - } + "FuzzyFileSearchMatchType": { + "type": "string", + "enum": [ + "file", + "directory" + ] }, "ClientRequest": { "$schema": "http://json-schema.org/draft-07/schema#", @@ -13734,6 +15101,30 @@ }, "title": "Thread/archiveRequest" }, + { + "type": "object", + "required": [ + "id", + "method", + "params" + ], + "properties": { + "id": { + "$ref": "#/definitions/RequestId" + }, + "method": { + "type": "string", + "enum": [ + "thread/delete" + ], + "title": "Thread/deleteRequestMethod" + }, + "params": { + "$ref": "#/definitions/ThreadDeleteParams" + } + }, + "title": "Thread/deleteRequest" + }, { "type": "object", "required": [ @@ -14119,6 +15510,30 @@ }, "title": "Skills/listRequest" }, + { + "type": "object", + "required": [ + "id", + "method", + "params" + ], + "properties": { + "id": { + "$ref": "#/definitions/RequestId" + }, + "method": { + "type": "string", + "enum": [ + "skills/extraRoots/set" + ], + "title": "Skills/extraRoots/setRequestMethod" + }, + "params": { + "$ref": "#/definitions/SkillsExtraRootsSetParams" + } + }, + "title": "Skills/extraRoots/setRequest" + }, { "type": "object", "required": [ @@ -15219,6 +16634,76 @@ }, "title": "Account/rateLimits/readRequest" }, + { + "type": "object", + "required": [ + "id", + "method", + "params" + ], + "properties": { + "id": { + "$ref": "#/definitions/RequestId" + }, + "method": { + "type": "string", + "enum": [ + "account/rateLimitResetCredit/consume" + ], + "title": "Account/rateLimitResetCredit/consumeRequestMethod" + }, + "params": { + "$ref": "#/definitions/ConsumeAccountRateLimitResetCreditParams" + } + }, + "title": "Account/rateLimitResetCredit/consumeRequest" + }, + { + "type": "object", + "required": [ + "id", + "method" + ], + "properties": { + "id": { + "$ref": "#/definitions/RequestId" + }, + "method": { + "type": "string", + "enum": [ + "account/usage/read" + ], + "title": "Account/usage/readRequestMethod" + }, + "params": { + "type": "null" + } + }, + "title": "Account/usage/readRequest" + }, + { + "type": "object", + "required": [ + "id", + "method" + ], + "properties": { + "id": { + "$ref": "#/definitions/RequestId" + }, + "method": { + "type": "string", + "enum": [ + "account/workspaceMessages/read" + ], + "title": "Account/workspaceMessages/readRequestMethod" + }, + "params": { + "type": "null" + } + }, + "title": "Account/workspaceMessages/readRequest" + }, { "type": "object", "required": [ @@ -15439,6 +16924,29 @@ }, "title": "ExternalAgentConfig/importRequest" }, + { + "type": "object", + "required": [ + "id", + "method" + ], + "properties": { + "id": { + "$ref": "#/definitions/RequestId" + }, + "method": { + "type": "string", + "enum": [ + "externalAgentConfig/import/readHistories" + ], + "title": "ExternalAgentConfig/import/readHistoriesRequestMethod" + }, + "params": { + "type": "null" + } + }, + "title": "ExternalAgentConfig/import/readHistoriesRequest" + }, { "type": "object", "required": [ @@ -15646,6 +17154,26 @@ }, "title": "Thread/archivedNotification" }, + { + "type": "object", + "required": [ + "method", + "params" + ], + "properties": { + "method": { + "type": "string", + "enum": [ + "thread/deleted" + ], + "title": "Thread/deletedNotificationMethod" + }, + "params": { + "$ref": "#/definitions/ThreadDeletedNotification" + } + }, + "title": "Thread/deletedNotification" + }, { "type": "object", "required": [ @@ -16351,6 +17879,26 @@ }, "title": "RemoteControl/status/changedNotification" }, + { + "type": "object", + "required": [ + "method", + "params" + ], + "properties": { + "method": { + "type": "string", + "enum": [ + "externalAgentConfig/import/progress" + ], + "title": "ExternalAgentConfig/import/progressNotificationMethod" + }, + "params": { + "$ref": "#/definitions/ExternalAgentConfigImportProgressNotification" + } + }, + "title": "ExternalAgentConfig/import/progressNotification" + }, { "type": "object", "required": [ @@ -16512,6 +18060,46 @@ }, "title": "Model/verificationNotification" }, + { + "type": "object", + "required": [ + "method", + "params" + ], + "properties": { + "method": { + "type": "string", + "enum": [ + "turn/moderationMetadata" + ], + "title": "Turn/moderationMetadataNotificationMethod" + }, + "params": { + "$ref": "#/definitions/TurnModerationMetadataNotification" + } + }, + "title": "Turn/moderationMetadataNotification" + }, + { + "type": "object", + "required": [ + "method", + "params" + ], + "properties": { + "method": { + "type": "string", + "enum": [ + "model/safetyBuffering/updated" + ], + "title": "Model/safetyBuffering/updatedNotificationMethod" + }, + "params": { + "$ref": "#/definitions/ModelSafetyBufferingUpdatedNotification" + } + }, + "title": "Model/safetyBuffering/updatedNotification" + }, { "type": "object", "required": [ diff --git a/schemas/v1/InitializeParams.json b/schemas/v1/InitializeParams.json index c819e0f..5d2641b 100644 --- a/schemas/v1/InitializeParams.json +++ b/schemas/v1/InitializeParams.json @@ -51,6 +51,10 @@ "default": false, "type": "boolean" }, + "mcpServerOpenaiFormElicitation": { + "description": "Allow downstream MCP servers to request OpenAI extended form elicitations.", + "type": "boolean" + }, "optOutNotificationMethods": { "description": "Exact notification method names that should be suppressed for this connection (for example `thread/started`).", "type": [ diff --git a/schemas/v2/AccountRateLimitsUpdatedNotification.json b/schemas/v2/AccountRateLimitsUpdatedNotification.json index 14d086e..5323f03 100644 --- a/schemas/v2/AccountRateLimitsUpdatedNotification.json +++ b/schemas/v2/AccountRateLimitsUpdatedNotification.json @@ -1,6 +1,7 @@ { "$schema": "http://json-schema.org/draft-07/schema#", "title": "AccountRateLimitsUpdatedNotification", + "description": "Sparse rolling rate-limit update.\n\nClients should merge available values into the most recent `account/rateLimits/read` response or refetch that snapshot. Nullable account metadata may be unavailable in a rolling update and does not clear a previously observed value.", "type": "object", "required": [ "rateLimits" @@ -72,6 +73,16 @@ } ] }, + "individualLimit": { + "anyOf": [ + { + "$ref": "#/definitions/SpendControlLimitSnapshot" + }, + { + "type": "null" + } + ] + }, "limitId": { "type": [ "string", @@ -151,6 +162,31 @@ "format": "int64" } } + }, + "SpendControlLimitSnapshot": { + "type": "object", + "required": [ + "limit", + "remainingPercent", + "resetsAt", + "used" + ], + "properties": { + "limit": { + "type": "string" + }, + "remainingPercent": { + "type": "integer", + "format": "int32" + }, + "resetsAt": { + "type": "integer", + "format": "int64" + }, + "used": { + "type": "string" + } + } } } } \ No newline at end of file diff --git a/schemas/v2/AccountUpdatedNotification.json b/schemas/v2/AccountUpdatedNotification.json index b5e7ac7..daddd74 100644 --- a/schemas/v2/AccountUpdatedNotification.json +++ b/schemas/v2/AccountUpdatedNotification.json @@ -55,6 +55,20 @@ "enum": [ "agentIdentity" ] + }, + { + "description": "Programmatic Codex auth backed by a personal access token.", + "type": "string", + "enum": [ + "personalAccessToken" + ] + }, + { + "description": "Amazon Bedrock bearer token managed by Codex.", + "type": "string", + "enum": [ + "bedrockApiKey" + ] } ] }, diff --git a/schemas/v2/ConfigReadParams.json b/schemas/v2/ConfigReadParams.json index 364cfd0..55a44a0 100644 --- a/schemas/v2/ConfigReadParams.json +++ b/schemas/v2/ConfigReadParams.json @@ -11,7 +11,6 @@ ] }, "includeLayers": { - "default": false, "type": "boolean" } } diff --git a/schemas/v2/ConfigReadResponse.json b/schemas/v2/ConfigReadResponse.json index 60c2ad4..b722d4d 100644 --- a/schemas/v2/ConfigReadResponse.json +++ b/schemas/v2/ConfigReadResponse.json @@ -46,6 +46,16 @@ "AppConfig": { "type": "object", "properties": { + "approvals_reviewer": { + "anyOf": [ + { + "$ref": "#/definitions/ApprovalsReviewer" + }, + { + "type": "null" + } + ] + }, "default_tools_approval_mode": { "anyOf": [ { @@ -150,6 +160,26 @@ "AppsDefaultConfig": { "type": "object", "properties": { + "approvals_reviewer": { + "anyOf": [ + { + "$ref": "#/definitions/ApprovalsReviewer" + }, + { + "type": "null" + } + ] + }, + "default_tools_approval_mode": { + "anyOf": [ + { + "$ref": "#/definitions/AppToolApproval" + }, + { + "type": "null" + } + ] + }, "destructive_enabled": { "default": true, "type": "boolean" @@ -388,19 +418,6 @@ } ] }, - "profile": { - "type": [ - "string", - "null" - ] - }, - "profiles": { - "default": {}, - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/ProfileV2" - } - }, "review_model": { "type": [ "string", @@ -537,6 +554,33 @@ }, "title": "SystemConfigLayerSource" }, + { + "description": "Enterprise-managed config layer delivered by the cloud config bundle.", + "type": "object", + "required": [ + "id", + "name", + "type" + ], + "properties": { + "id": { + "description": "Stable identifier for the delivered layer.", + "type": "string" + }, + "name": { + "description": "Admin-facing name for the delivered layer. This is surfaced in diagnostics so users know which cloud layer needs administrator attention.", + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "enterpriseManaged" + ], + "title": "EnterpriseManagedConfigLayerSourceType" + } + }, + "title": "EnterpriseManagedConfigLayerSource" + }, { "description": "User config layer from $CODEX_HOME/config.toml. This layer is special in that it is expected to be: - writable by the user - generally outside the workspace directory", "type": "object", @@ -668,118 +712,10 @@ "api" ] }, - "ProfileV2": { - "type": "object", - "properties": { - "approval_policy": { - "anyOf": [ - { - "$ref": "#/definitions/AskForApproval" - }, - { - "type": "null" - } - ] - }, - "approvals_reviewer": { - "description": "[UNSTABLE] Optional profile-level override for where approval requests are routed for review. If omitted, the enclosing config default is used.", - "anyOf": [ - { - "$ref": "#/definitions/ApprovalsReviewer" - }, - { - "type": "null" - } - ] - }, - "chatgpt_base_url": { - "type": [ - "string", - "null" - ] - }, - "model": { - "type": [ - "string", - "null" - ] - }, - "model_provider": { - "type": [ - "string", - "null" - ] - }, - "model_reasoning_effort": { - "anyOf": [ - { - "$ref": "#/definitions/ReasoningEffort" - }, - { - "type": "null" - } - ] - }, - "model_reasoning_summary": { - "anyOf": [ - { - "$ref": "#/definitions/ReasoningSummary" - }, - { - "type": "null" - } - ] - }, - "model_verbosity": { - "anyOf": [ - { - "$ref": "#/definitions/Verbosity" - }, - { - "type": "null" - } - ] - }, - "service_tier": { - "type": [ - "string", - "null" - ] - }, - "tools": { - "anyOf": [ - { - "$ref": "#/definitions/ToolsV2" - }, - { - "type": "null" - } - ] - }, - "web_search": { - "anyOf": [ - { - "$ref": "#/definitions/WebSearchMode" - }, - { - "type": "null" - } - ] - } - }, - "additionalProperties": true - }, "ReasoningEffort": { - "description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning", + "description": "A non-empty reasoning effort value advertised by the model.", "type": "string", - "enum": [ - "none", - "minimal", - "low", - "medium", - "high", - "xhigh" - ] + "minLength": 1 }, "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", @@ -900,6 +836,7 @@ "enum": [ "disabled", "cached", + "indexed", "live" ] }, diff --git a/schemas/v2/ConfigRequirementsReadResponse.json b/schemas/v2/ConfigRequirementsReadResponse.json index a43d2e8..4610ed7 100644 --- a/schemas/v2/ConfigRequirementsReadResponse.json +++ b/schemas/v2/ConfigRequirementsReadResponse.json @@ -89,12 +89,24 @@ "ConfigRequirements": { "type": "object", "properties": { + "allowAppshots": { + "type": [ + "boolean", + "null" + ] + }, "allowManagedHooksOnly": { "type": [ "boolean", "null" ] }, + "allowRemoteControl": { + "type": [ + "boolean", + "null" + ] + }, "allowedApprovalPolicies": { "type": [ "array", @@ -113,13 +125,13 @@ "type": "boolean" } }, - "allowedPermissions": { + "allowedPermissionProfiles": { "type": [ - "array", + "object", "null" ], - "items": { - "type": "string" + "additionalProperties": { + "type": "boolean" } }, "allowedSandboxModes": { @@ -140,6 +152,15 @@ "$ref": "#/definitions/WebSearchMode" } }, + "allowedWindowsSandboxImplementations": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/WindowsSandboxSetupMode" + } + }, "computerUse": { "anyOf": [ { @@ -150,6 +171,12 @@ } ] }, + "defaultPermissions": { + "type": [ + "string", + "null" + ] + }, "enforceResidency": { "anyOf": [ { @@ -470,7 +497,7 @@ "type": "string", "enum": [ "allow", - "none" + "deny" ] }, "ResidencyRequirement": { @@ -492,8 +519,16 @@ "enum": [ "disabled", "cached", + "indexed", "live" ] + }, + "WindowsSandboxSetupMode": { + "type": "string", + "enum": [ + "elevated", + "unelevated" + ] } } } \ No newline at end of file diff --git a/schemas/v2/ConfigWriteResponse.json b/schemas/v2/ConfigWriteResponse.json index 7899ec7..477b02a 100644 --- a/schemas/v2/ConfigWriteResponse.json +++ b/schemas/v2/ConfigWriteResponse.json @@ -106,6 +106,33 @@ }, "title": "SystemConfigLayerSource" }, + { + "description": "Enterprise-managed config layer delivered by the cloud config bundle.", + "type": "object", + "required": [ + "id", + "name", + "type" + ], + "properties": { + "id": { + "description": "Stable identifier for the delivered layer.", + "type": "string" + }, + "name": { + "description": "Admin-facing name for the delivered layer. This is surfaced in diagnostics so users know which cloud layer needs administrator attention.", + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "enterpriseManaged" + ], + "title": "EnterpriseManagedConfigLayerSourceType" + } + }, + "title": "EnterpriseManagedConfigLayerSource" + }, { "description": "User config layer from $CODEX_HOME/config.toml. This layer is special in that it is expected to be: - writable by the user - generally outside the workspace directory", "type": "object", diff --git a/schemas/v2/ConsumeAccountRateLimitResetCreditParams.json b/schemas/v2/ConsumeAccountRateLimitResetCreditParams.json new file mode 100644 index 0000000..eec71e9 --- /dev/null +++ b/schemas/v2/ConsumeAccountRateLimitResetCreditParams.json @@ -0,0 +1,14 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ConsumeAccountRateLimitResetCreditParams", + "type": "object", + "required": [ + "idempotencyKey" + ], + "properties": { + "idempotencyKey": { + "description": "Identifies one logical reset attempt. A UUID is recommended; reuse the same value when retrying that attempt.", + "type": "string" + } + } +} \ No newline at end of file diff --git a/schemas/v2/ConsumeAccountRateLimitResetCreditResponse.json b/schemas/v2/ConsumeAccountRateLimitResetCreditResponse.json new file mode 100644 index 0000000..694aabd --- /dev/null +++ b/schemas/v2/ConsumeAccountRateLimitResetCreditResponse.json @@ -0,0 +1,47 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ConsumeAccountRateLimitResetCreditResponse", + "type": "object", + "required": [ + "outcome" + ], + "properties": { + "outcome": { + "$ref": "#/definitions/ConsumeAccountRateLimitResetCreditOutcome" + } + }, + "definitions": { + "ConsumeAccountRateLimitResetCreditOutcome": { + "oneOf": [ + { + "description": "A reset credit was consumed and the eligible rate-limit windows were reset.", + "type": "string", + "enum": [ + "reset" + ] + }, + { + "description": "No current rate-limit window is eligible for a reset.", + "type": "string", + "enum": [ + "nothingToReset" + ] + }, + { + "description": "The account has no earned reset credits available.", + "type": "string", + "enum": [ + "noCredit" + ] + }, + { + "description": "The same idempotency key already completed a reset successfully.", + "type": "string", + "enum": [ + "alreadyRedeemed" + ] + } + ] + } + } +} \ No newline at end of file diff --git a/schemas/v2/ExternalAgentConfigDetectParams.json b/schemas/v2/ExternalAgentConfigDetectParams.json index 0cf8ba8..2cefef4 100644 --- a/schemas/v2/ExternalAgentConfigDetectParams.json +++ b/schemas/v2/ExternalAgentConfigDetectParams.json @@ -14,7 +14,7 @@ } }, "includeHome": { - "description": "If true, include detection under the user's home (~/.claude, ~/.codex, etc.).", + "description": "If true, include detection under the user's home directory.", "type": "boolean" } } diff --git a/schemas/v2/ExternalAgentConfigImportCompletedNotification.json b/schemas/v2/ExternalAgentConfigImportCompletedNotification.json index b1a5770..770fd35 100644 --- a/schemas/v2/ExternalAgentConfigImportCompletedNotification.json +++ b/schemas/v2/ExternalAgentConfigImportCompletedNotification.json @@ -1,5 +1,127 @@ { "$schema": "http://json-schema.org/draft-07/schema#", "title": "ExternalAgentConfigImportCompletedNotification", - "type": "object" + "type": "object", + "required": [ + "importId", + "itemTypeResults" + ], + "properties": { + "importId": { + "type": "string" + }, + "itemTypeResults": { + "type": "array", + "items": { + "$ref": "#/definitions/ExternalAgentConfigImportTypeResult" + } + } + }, + "definitions": { + "ExternalAgentConfigImportItemTypeFailure": { + "type": "object", + "required": [ + "failureStage", + "itemType", + "message" + ], + "properties": { + "cwd": { + "type": [ + "string", + "null" + ] + }, + "errorType": { + "type": [ + "string", + "null" + ] + }, + "failureStage": { + "type": "string" + }, + "itemType": { + "$ref": "#/definitions/ExternalAgentConfigMigrationItemType" + }, + "message": { + "type": "string" + }, + "source": { + "type": [ + "string", + "null" + ] + } + } + }, + "ExternalAgentConfigImportItemTypeSuccess": { + "type": "object", + "required": [ + "itemType" + ], + "properties": { + "cwd": { + "type": [ + "string", + "null" + ] + }, + "itemType": { + "$ref": "#/definitions/ExternalAgentConfigMigrationItemType" + }, + "source": { + "type": [ + "string", + "null" + ] + }, + "target": { + "type": [ + "string", + "null" + ] + } + } + }, + "ExternalAgentConfigImportTypeResult": { + "type": "object", + "required": [ + "failures", + "itemType", + "successes" + ], + "properties": { + "failures": { + "type": "array", + "items": { + "$ref": "#/definitions/ExternalAgentConfigImportItemTypeFailure" + } + }, + "itemType": { + "$ref": "#/definitions/ExternalAgentConfigMigrationItemType" + }, + "successes": { + "type": "array", + "items": { + "$ref": "#/definitions/ExternalAgentConfigImportItemTypeSuccess" + } + } + } + }, + "ExternalAgentConfigMigrationItemType": { + "type": "string", + "enum": [ + "AGENTS_MD", + "CONFIG", + "SKILLS", + "PLUGINS", + "MCP_SERVER_CONFIG", + "SUBAGENTS", + "HOOKS", + "COMMANDS", + "SESSIONS" + ] + } + } } \ No newline at end of file diff --git a/schemas/v2/ExternalAgentConfigImportHistoriesReadResponse.json b/schemas/v2/ExternalAgentConfigImportHistoriesReadResponse.json new file mode 100644 index 0000000..61b34a2 --- /dev/null +++ b/schemas/v2/ExternalAgentConfigImportHistoriesReadResponse.json @@ -0,0 +1,128 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ExternalAgentConfigImportHistoriesReadResponse", + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/ExternalAgentConfigImportHistory" + } + } + }, + "definitions": { + "ExternalAgentConfigImportHistory": { + "type": "object", + "required": [ + "completedAtMs", + "failures", + "importId", + "successes" + ], + "properties": { + "completedAtMs": { + "type": "integer", + "format": "int64" + }, + "failures": { + "type": "array", + "items": { + "$ref": "#/definitions/ExternalAgentConfigImportItemTypeFailure" + } + }, + "importId": { + "type": "string" + }, + "successes": { + "type": "array", + "items": { + "$ref": "#/definitions/ExternalAgentConfigImportItemTypeSuccess" + } + } + } + }, + "ExternalAgentConfigImportItemTypeFailure": { + "type": "object", + "required": [ + "failureStage", + "itemType", + "message" + ], + "properties": { + "cwd": { + "type": [ + "string", + "null" + ] + }, + "errorType": { + "type": [ + "string", + "null" + ] + }, + "failureStage": { + "type": "string" + }, + "itemType": { + "$ref": "#/definitions/ExternalAgentConfigMigrationItemType" + }, + "message": { + "type": "string" + }, + "source": { + "type": [ + "string", + "null" + ] + } + } + }, + "ExternalAgentConfigImportItemTypeSuccess": { + "type": "object", + "required": [ + "itemType" + ], + "properties": { + "cwd": { + "type": [ + "string", + "null" + ] + }, + "itemType": { + "$ref": "#/definitions/ExternalAgentConfigMigrationItemType" + }, + "source": { + "type": [ + "string", + "null" + ] + }, + "target": { + "type": [ + "string", + "null" + ] + } + } + }, + "ExternalAgentConfigMigrationItemType": { + "type": "string", + "enum": [ + "AGENTS_MD", + "CONFIG", + "SKILLS", + "PLUGINS", + "MCP_SERVER_CONFIG", + "SUBAGENTS", + "HOOKS", + "COMMANDS", + "SESSIONS" + ] + } + } +} \ No newline at end of file diff --git a/schemas/v2/ExternalAgentConfigImportParams.json b/schemas/v2/ExternalAgentConfigImportParams.json index 89d03ce..2b6cb63 100644 --- a/schemas/v2/ExternalAgentConfigImportParams.json +++ b/schemas/v2/ExternalAgentConfigImportParams.json @@ -11,6 +11,13 @@ "items": { "$ref": "#/definitions/ExternalAgentConfigMigrationItem" } + }, + "source": { + "description": "Source product that produced the migration items. Missing means unspecified.", + "type": [ + "string", + "null" + ] } }, "definitions": { diff --git a/schemas/v2/ExternalAgentConfigImportProgressNotification.json b/schemas/v2/ExternalAgentConfigImportProgressNotification.json new file mode 100644 index 0000000..0eff161 --- /dev/null +++ b/schemas/v2/ExternalAgentConfigImportProgressNotification.json @@ -0,0 +1,127 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ExternalAgentConfigImportProgressNotification", + "type": "object", + "required": [ + "importId", + "itemTypeResults" + ], + "properties": { + "importId": { + "type": "string" + }, + "itemTypeResults": { + "type": "array", + "items": { + "$ref": "#/definitions/ExternalAgentConfigImportTypeResult" + } + } + }, + "definitions": { + "ExternalAgentConfigImportItemTypeFailure": { + "type": "object", + "required": [ + "failureStage", + "itemType", + "message" + ], + "properties": { + "cwd": { + "type": [ + "string", + "null" + ] + }, + "errorType": { + "type": [ + "string", + "null" + ] + }, + "failureStage": { + "type": "string" + }, + "itemType": { + "$ref": "#/definitions/ExternalAgentConfigMigrationItemType" + }, + "message": { + "type": "string" + }, + "source": { + "type": [ + "string", + "null" + ] + } + } + }, + "ExternalAgentConfigImportItemTypeSuccess": { + "type": "object", + "required": [ + "itemType" + ], + "properties": { + "cwd": { + "type": [ + "string", + "null" + ] + }, + "itemType": { + "$ref": "#/definitions/ExternalAgentConfigMigrationItemType" + }, + "source": { + "type": [ + "string", + "null" + ] + }, + "target": { + "type": [ + "string", + "null" + ] + } + } + }, + "ExternalAgentConfigImportTypeResult": { + "type": "object", + "required": [ + "failures", + "itemType", + "successes" + ], + "properties": { + "failures": { + "type": "array", + "items": { + "$ref": "#/definitions/ExternalAgentConfigImportItemTypeFailure" + } + }, + "itemType": { + "$ref": "#/definitions/ExternalAgentConfigMigrationItemType" + }, + "successes": { + "type": "array", + "items": { + "$ref": "#/definitions/ExternalAgentConfigImportItemTypeSuccess" + } + } + } + }, + "ExternalAgentConfigMigrationItemType": { + "type": "string", + "enum": [ + "AGENTS_MD", + "CONFIG", + "SKILLS", + "PLUGINS", + "MCP_SERVER_CONFIG", + "SUBAGENTS", + "HOOKS", + "COMMANDS", + "SESSIONS" + ] + } + } +} \ No newline at end of file diff --git a/schemas/v2/ExternalAgentConfigImportResponse.json b/schemas/v2/ExternalAgentConfigImportResponse.json index 6823495..5a55b6d 100644 --- a/schemas/v2/ExternalAgentConfigImportResponse.json +++ b/schemas/v2/ExternalAgentConfigImportResponse.json @@ -1,5 +1,13 @@ { "$schema": "http://json-schema.org/draft-07/schema#", "title": "ExternalAgentConfigImportResponse", - "type": "object" + "type": "object", + "required": [ + "importId" + ], + "properties": { + "importId": { + "type": "string" + } + } } \ No newline at end of file diff --git a/schemas/v2/FeedbackUploadParams.json b/schemas/v2/FeedbackUploadParams.json index 3bb6ddb..eb17db5 100644 --- a/schemas/v2/FeedbackUploadParams.json +++ b/schemas/v2/FeedbackUploadParams.json @@ -3,8 +3,7 @@ "title": "FeedbackUploadParams", "type": "object", "required": [ - "classification", - "includeLogs" + "classification" ], "properties": { "classification": { diff --git a/schemas/v2/GetAccountParams.json b/schemas/v2/GetAccountParams.json index f5ea18d..17547c5 100644 --- a/schemas/v2/GetAccountParams.json +++ b/schemas/v2/GetAccountParams.json @@ -5,7 +5,6 @@ "properties": { "refreshToken": { "description": "When `true`, requests a proactive token refresh before returning.\n\nIn managed auth mode this triggers the normal refresh-token flow. In external auth mode this flag is ignored. Clients should refresh tokens themselves and call `account/login/start` with `chatgptAuthTokens`.", - "default": false, "type": "boolean" } } diff --git a/schemas/v2/GetAccountRateLimitsResponse.json b/schemas/v2/GetAccountRateLimitsResponse.json index 0f0a327..d98dcc9 100644 --- a/schemas/v2/GetAccountRateLimitsResponse.json +++ b/schemas/v2/GetAccountRateLimitsResponse.json @@ -6,6 +6,16 @@ "rateLimits" ], "properties": { + "rateLimitResetCredits": { + "anyOf": [ + { + "$ref": "#/definitions/RateLimitResetCreditsSummary" + }, + { + "type": "null" + } + ] + }, "rateLimits": { "description": "Backward-compatible single-bucket view; mirrors the historical payload.", "allOf": [ @@ -74,6 +84,18 @@ "workspace_member_usage_limit_reached" ] }, + "RateLimitResetCreditsSummary": { + "type": "object", + "required": [ + "availableCount" + ], + "properties": { + "availableCount": { + "type": "integer", + "format": "int64" + } + } + }, "RateLimitSnapshot": { "type": "object", "properties": { @@ -87,6 +109,16 @@ } ] }, + "individualLimit": { + "anyOf": [ + { + "$ref": "#/definitions/SpendControlLimitSnapshot" + }, + { + "type": "null" + } + ] + }, "limitId": { "type": [ "string", @@ -166,6 +198,31 @@ "format": "int64" } } + }, + "SpendControlLimitSnapshot": { + "type": "object", + "required": [ + "limit", + "remainingPercent", + "resetsAt", + "used" + ], + "properties": { + "limit": { + "type": "string" + }, + "remainingPercent": { + "type": "integer", + "format": "int32" + }, + "resetsAt": { + "type": "integer", + "format": "int64" + }, + "used": { + "type": "string" + } + } } } } \ No newline at end of file diff --git a/schemas/v2/GetAccountResponse.json b/schemas/v2/GetAccountResponse.json index 1b29fc0..08f5988 100644 --- a/schemas/v2/GetAccountResponse.json +++ b/schemas/v2/GetAccountResponse.json @@ -48,7 +48,10 @@ ], "properties": { "email": { - "type": "string" + "type": [ + "string", + "null" + ] }, "planType": { "$ref": "#/definitions/PlanType" @@ -69,6 +72,14 @@ "type" ], "properties": { + "credentialSource": { + "default": "awsManaged", + "allOf": [ + { + "$ref": "#/definitions/AmazonBedrockCredentialSource" + } + ] + }, "type": { "type": "string", "enum": [ @@ -81,6 +92,13 @@ } ] }, + "AmazonBedrockCredentialSource": { + "type": "string", + "enum": [ + "codexManaged", + "awsManaged" + ] + }, "PlanType": { "type": "string", "enum": [ diff --git a/schemas/v2/GetAccountTokenUsageResponse.json b/schemas/v2/GetAccountTokenUsageResponse.json new file mode 100644 index 0000000..fd9e767 --- /dev/null +++ b/schemas/v2/GetAccountTokenUsageResponse.json @@ -0,0 +1,80 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "GetAccountTokenUsageResponse", + "type": "object", + "required": [ + "summary" + ], + "properties": { + "dailyUsageBuckets": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/AccountTokenUsageDailyBucket" + } + }, + "summary": { + "$ref": "#/definitions/AccountTokenUsageSummary" + } + }, + "definitions": { + "AccountTokenUsageDailyBucket": { + "type": "object", + "required": [ + "startDate", + "tokens" + ], + "properties": { + "startDate": { + "type": "string" + }, + "tokens": { + "type": "integer", + "format": "int64" + } + } + }, + "AccountTokenUsageSummary": { + "type": "object", + "properties": { + "currentStreakDays": { + "type": [ + "integer", + "null" + ], + "format": "int64" + }, + "lifetimeTokens": { + "type": [ + "integer", + "null" + ], + "format": "int64" + }, + "longestRunningTurnSec": { + "type": [ + "integer", + "null" + ], + "format": "int64" + }, + "longestStreakDays": { + "type": [ + "integer", + "null" + ], + "format": "int64" + }, + "peakDailyTokens": { + "type": [ + "integer", + "null" + ], + "format": "int64" + } + } + } + } +} \ No newline at end of file diff --git a/schemas/v2/GetWorkspaceMessagesResponse.json b/schemas/v2/GetWorkspaceMessagesResponse.json new file mode 100644 index 0000000..3e48c80 --- /dev/null +++ b/schemas/v2/GetWorkspaceMessagesResponse.json @@ -0,0 +1,67 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "GetWorkspaceMessagesResponse", + "type": "object", + "required": [ + "featureEnabled", + "messages" + ], + "properties": { + "featureEnabled": { + "description": "Whether the workspace-message backend route is available for this client.", + "type": "boolean" + }, + "messages": { + "description": "Active workspace messages returned by the backend.", + "type": "array", + "items": { + "$ref": "#/definitions/WorkspaceMessage" + } + } + }, + "definitions": { + "WorkspaceMessage": { + "type": "object", + "required": [ + "messageBody", + "messageId", + "messageType" + ], + "properties": { + "archivedAt": { + "description": "Unix timestamp (in seconds) when the message was archived.", + "type": [ + "integer", + "null" + ], + "format": "int64" + }, + "createdAt": { + "description": "Unix timestamp (in seconds) when the message was created.", + "type": [ + "integer", + "null" + ], + "format": "int64" + }, + "messageBody": { + "type": "string" + }, + "messageId": { + "type": "string" + }, + "messageType": { + "$ref": "#/definitions/WorkspaceMessageType" + } + } + }, + "WorkspaceMessageType": { + "type": "string", + "enum": [ + "headline", + "announcement", + "unknown" + ] + } + } +} \ No newline at end of file diff --git a/schemas/v2/HookCompletedNotification.json b/schemas/v2/HookCompletedNotification.json index a96edc2..beb72ea 100644 --- a/schemas/v2/HookCompletedNotification.json +++ b/schemas/v2/HookCompletedNotification.json @@ -187,6 +187,7 @@ "sessionFlags", "plugin", "cloudRequirements", + "cloudManagedConfig", "legacyManagedConfigFile", "legacyManagedConfigMdm", "unknown" diff --git a/schemas/v2/HookStartedNotification.json b/schemas/v2/HookStartedNotification.json index ba17617..2ea538a 100644 --- a/schemas/v2/HookStartedNotification.json +++ b/schemas/v2/HookStartedNotification.json @@ -187,6 +187,7 @@ "sessionFlags", "plugin", "cloudRequirements", + "cloudManagedConfig", "legacyManagedConfigFile", "legacyManagedConfigMdm", "unknown" diff --git a/schemas/v2/HooksListResponse.json b/schemas/v2/HooksListResponse.json index 8a9d4ab..05a938b 100644 --- a/schemas/v2/HooksListResponse.json +++ b/schemas/v2/HooksListResponse.json @@ -144,6 +144,7 @@ "sessionFlags", "plugin", "cloudRequirements", + "cloudManagedConfig", "legacyManagedConfigFile", "legacyManagedConfigMdm", "unknown" diff --git a/schemas/v2/ItemCompletedNotification.json b/schemas/v2/ItemCompletedNotification.json index ec79969..3c567fd 100644 --- a/schemas/v2/ItemCompletedNotification.json +++ b/schemas/v2/ItemCompletedNotification.json @@ -312,10 +312,38 @@ "ImageDetail": { "type": "string", "enum": [ + "auto", + "low", "high", "original" ] }, + "LegacyAppPathString": { + "type": "string" + }, + "McpToolCallAppContext": { + "type": "object", + "required": [ + "connectorId" + ], + "properties": { + "connectorId": { + "type": "string" + }, + "linkId": { + "type": [ + "string", + "null" + ] + }, + "resourceUri": { + "type": [ + "string", + "null" + ] + } + } + }, "McpToolCallError": { "type": "object", "required": [ @@ -484,15 +512,16 @@ ] }, "ReasoningEffort": { - "description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning", + "description": "A non-empty reasoning effort value advertised by the model.", + "type": "string", + "minLength": 1 + }, + "SubAgentActivityKind": { "type": "string", "enum": [ - "none", - "minimal", - "low", - "medium", - "high", - "xhigh" + "started", + "interacted", + "interrupted" ] }, "TextElement": { @@ -528,6 +557,12 @@ "type" ], "properties": { + "clientId": { + "type": [ + "string", + "null" + ] + }, "content": { "type": "array", "items": { @@ -712,7 +747,7 @@ "description": "The command's working directory.", "allOf": [ { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } ] }, @@ -805,6 +840,16 @@ "type" ], "properties": { + "appContext": { + "anyOf": [ + { + "$ref": "#/definitions/McpToolCallAppContext" + }, + { + "type": "null" + } + ] + }, "arguments": true, "durationMs": { "description": "The duration of the MCP tool call in milliseconds.", @@ -828,6 +873,7 @@ "type": "string" }, "mcpAppResourceUri": { + "description": "Deprecated: use `appContext.resourceUri` instead.", "type": [ "string", "null" @@ -1012,6 +1058,38 @@ }, "title": "CollabAgentToolCallThreadItem" }, + { + "type": "object", + "required": [ + "agentPath", + "agentThreadId", + "id", + "kind", + "type" + ], + "properties": { + "agentPath": { + "type": "string" + }, + "agentThreadId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "$ref": "#/definitions/SubAgentActivityKind" + }, + "type": { + "type": "string", + "enum": [ + "subAgentActivity" + ], + "title": "SubAgentActivityThreadItemType" + } + }, + "title": "SubAgentActivityThreadItem" + }, { "type": "object", "required": [ @@ -1070,6 +1148,32 @@ }, "title": "ImageViewThreadItem" }, + { + "type": "object", + "required": [ + "durationMs", + "id", + "type" + ], + "properties": { + "durationMs": { + "type": "integer", + "format": "uint64", + "minimum": 0.0 + }, + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "sleep" + ], + "title": "SleepThreadItemType" + } + }, + "title": "SleepThreadItem" + }, { "type": "object", "required": [ diff --git a/schemas/v2/ItemGuardianApprovalReviewCompletedNotification.json b/schemas/v2/ItemGuardianApprovalReviewCompletedNotification.json index 686dba7..55214d0 100644 --- a/schemas/v2/ItemGuardianApprovalReviewCompletedNotification.json +++ b/schemas/v2/ItemGuardianApprovalReviewCompletedNotification.json @@ -83,7 +83,7 @@ "null" ], "items": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } }, "write": { @@ -93,7 +93,7 @@ "null" ], "items": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } } } @@ -134,7 +134,7 @@ ], "properties": { "path": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" }, "type": { "type": "string", @@ -584,6 +584,9 @@ "high" ] }, + "LegacyAppPathString": { + "type": "string" + }, "NetworkApprovalProtocol": { "type": "string", "enum": [ diff --git a/schemas/v2/ItemGuardianApprovalReviewStartedNotification.json b/schemas/v2/ItemGuardianApprovalReviewStartedNotification.json index 1014307..2ec7d37 100644 --- a/schemas/v2/ItemGuardianApprovalReviewStartedNotification.json +++ b/schemas/v2/ItemGuardianApprovalReviewStartedNotification.json @@ -73,7 +73,7 @@ "null" ], "items": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } }, "write": { @@ -83,7 +83,7 @@ "null" ], "items": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } } } @@ -117,7 +117,7 @@ ], "properties": { "path": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" }, "type": { "type": "string", @@ -567,6 +567,9 @@ "high" ] }, + "LegacyAppPathString": { + "type": "string" + }, "NetworkApprovalProtocol": { "type": "string", "enum": [ diff --git a/schemas/v2/ItemStartedNotification.json b/schemas/v2/ItemStartedNotification.json index 38c0dd7..bdf5d29 100644 --- a/schemas/v2/ItemStartedNotification.json +++ b/schemas/v2/ItemStartedNotification.json @@ -312,10 +312,38 @@ "ImageDetail": { "type": "string", "enum": [ + "auto", + "low", "high", "original" ] }, + "LegacyAppPathString": { + "type": "string" + }, + "McpToolCallAppContext": { + "type": "object", + "required": [ + "connectorId" + ], + "properties": { + "connectorId": { + "type": "string" + }, + "linkId": { + "type": [ + "string", + "null" + ] + }, + "resourceUri": { + "type": [ + "string", + "null" + ] + } + } + }, "McpToolCallError": { "type": "object", "required": [ @@ -484,15 +512,16 @@ ] }, "ReasoningEffort": { - "description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning", + "description": "A non-empty reasoning effort value advertised by the model.", + "type": "string", + "minLength": 1 + }, + "SubAgentActivityKind": { "type": "string", "enum": [ - "none", - "minimal", - "low", - "medium", - "high", - "xhigh" + "started", + "interacted", + "interrupted" ] }, "TextElement": { @@ -528,6 +557,12 @@ "type" ], "properties": { + "clientId": { + "type": [ + "string", + "null" + ] + }, "content": { "type": "array", "items": { @@ -712,7 +747,7 @@ "description": "The command's working directory.", "allOf": [ { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } ] }, @@ -805,6 +840,16 @@ "type" ], "properties": { + "appContext": { + "anyOf": [ + { + "$ref": "#/definitions/McpToolCallAppContext" + }, + { + "type": "null" + } + ] + }, "arguments": true, "durationMs": { "description": "The duration of the MCP tool call in milliseconds.", @@ -828,6 +873,7 @@ "type": "string" }, "mcpAppResourceUri": { + "description": "Deprecated: use `appContext.resourceUri` instead.", "type": [ "string", "null" @@ -1012,6 +1058,38 @@ }, "title": "CollabAgentToolCallThreadItem" }, + { + "type": "object", + "required": [ + "agentPath", + "agentThreadId", + "id", + "kind", + "type" + ], + "properties": { + "agentPath": { + "type": "string" + }, + "agentThreadId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "$ref": "#/definitions/SubAgentActivityKind" + }, + "type": { + "type": "string", + "enum": [ + "subAgentActivity" + ], + "title": "SubAgentActivityThreadItemType" + } + }, + "title": "SubAgentActivityThreadItem" + }, { "type": "object", "required": [ @@ -1070,6 +1148,32 @@ }, "title": "ImageViewThreadItem" }, + { + "type": "object", + "required": [ + "durationMs", + "id", + "type" + ], + "properties": { + "durationMs": { + "type": "integer", + "format": "uint64", + "minimum": 0.0 + }, + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "sleep" + ], + "title": "SleepThreadItemType" + } + }, + "title": "SleepThreadItem" + }, { "type": "object", "required": [ diff --git a/schemas/v2/ListMcpServerStatusParams.json b/schemas/v2/ListMcpServerStatusParams.json index ca6c749..6e84c3c 100644 --- a/schemas/v2/ListMcpServerStatusParams.json +++ b/schemas/v2/ListMcpServerStatusParams.json @@ -29,6 +29,12 @@ ], "format": "uint32", "minimum": 0.0 + }, + "threadId": { + "type": [ + "string", + "null" + ] } }, "definitions": { diff --git a/schemas/v2/ListMcpServerStatusResponse.json b/schemas/v2/ListMcpServerStatusResponse.json index 5f129f8..7132247 100644 --- a/schemas/v2/ListMcpServerStatusResponse.json +++ b/schemas/v2/ListMcpServerStatusResponse.json @@ -30,6 +30,47 @@ "oAuth" ] }, + "McpServerInfo": { + "description": "Presentation metadata advertised by an initialized MCP server.", + "type": "object", + "required": [ + "name", + "version" + ], + "properties": { + "description": { + "type": [ + "string", + "null" + ] + }, + "icons": { + "type": [ + "array", + "null" + ], + "items": true + }, + "name": { + "type": "string" + }, + "title": { + "type": [ + "string", + "null" + ] + }, + "version": { + "type": "string" + }, + "websiteUrl": { + "type": [ + "string", + "null" + ] + } + } + }, "McpServerStatus": { "type": "object", "required": [ @@ -58,6 +99,16 @@ "$ref": "#/definitions/Resource" } }, + "serverInfo": { + "anyOf": [ + { + "$ref": "#/definitions/McpServerInfo" + }, + { + "type": "null" + } + ] + }, "tools": { "type": "object", "additionalProperties": { diff --git a/schemas/v2/McpServerStatusUpdatedNotification.json b/schemas/v2/McpServerStatusUpdatedNotification.json index 9e2708c..5e5027b 100644 --- a/schemas/v2/McpServerStatusUpdatedNotification.json +++ b/schemas/v2/McpServerStatusUpdatedNotification.json @@ -18,6 +18,12 @@ }, "status": { "$ref": "#/definitions/McpServerStartupState" + }, + "threadId": { + "type": [ + "string", + "null" + ] } }, "definitions": { diff --git a/schemas/v2/ModelListResponse.json b/schemas/v2/ModelListResponse.json index ec873b0..a28d5b5 100644 --- a/schemas/v2/ModelListResponse.json +++ b/schemas/v2/ModelListResponse.json @@ -205,16 +205,9 @@ } }, "ReasoningEffort": { - "description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning", + "description": "A non-empty reasoning effort value advertised by the model.", "type": "string", - "enum": [ - "none", - "minimal", - "low", - "medium", - "high", - "xhigh" - ] + "minLength": 1 }, "ReasoningEffortOption": { "type": "object", diff --git a/schemas/v2/ModelSafetyBufferingUpdatedNotification.json b/schemas/v2/ModelSafetyBufferingUpdatedNotification.json new file mode 100644 index 0000000..fcb6466 --- /dev/null +++ b/schemas/v2/ModelSafetyBufferingUpdatedNotification.json @@ -0,0 +1,35 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ModelSafetyBufferingUpdatedNotification", + "type": "object", + "required": [ + "model", + "reasons", + "threadId", + "turnId", + "useCases" + ], + "properties": { + "model": { + "type": "string" + }, + "reasons": { + "type": "array", + "items": { + "type": "string" + } + }, + "threadId": { + "type": "string" + }, + "turnId": { + "type": "string" + }, + "useCases": { + "type": "array", + "items": { + "type": "string" + } + } + } +} \ No newline at end of file diff --git a/schemas/v2/PermissionProfileListResponse.json b/schemas/v2/PermissionProfileListResponse.json index 50cde49..19eba4c 100644 --- a/schemas/v2/PermissionProfileListResponse.json +++ b/schemas/v2/PermissionProfileListResponse.json @@ -24,9 +24,14 @@ "PermissionProfileSummary": { "type": "object", "required": [ + "allowed", "id" ], "properties": { + "allowed": { + "description": "Whether the effective requirements allow selecting this profile.", + "type": "boolean" + }, "description": { "description": "Optional user-facing description for display in clients.", "type": [ diff --git a/schemas/v2/PluginInstallResponse.json b/schemas/v2/PluginInstallResponse.json index 21695e0..84db0b1 100644 --- a/schemas/v2/PluginInstallResponse.json +++ b/schemas/v2/PluginInstallResponse.json @@ -23,10 +23,15 @@ "type": "object", "required": [ "id", - "name", - "needsAuth" + "name" ], "properties": { + "category": { + "type": [ + "string", + "null" + ] + }, "description": { "type": [ "string", @@ -44,9 +49,6 @@ }, "name": { "type": "string" - }, - "needsAuth": { - "type": "boolean" } } }, diff --git a/schemas/v2/PluginListParams.json b/schemas/v2/PluginListParams.json index 58ee564..ba46dfd 100644 --- a/schemas/v2/PluginListParams.json +++ b/schemas/v2/PluginListParams.json @@ -35,7 +35,8 @@ "local", "vertical", "workspace-directory", - "shared-with-me" + "shared-with-me", + "created-by-me-remote" ] } } diff --git a/schemas/v2/PluginReadResponse.json b/schemas/v2/PluginReadResponse.json index ae6f01d..b7179f8 100644 --- a/schemas/v2/PluginReadResponse.json +++ b/schemas/v2/PluginReadResponse.json @@ -20,10 +20,15 @@ "type": "object", "required": [ "id", - "name", - "needsAuth" + "name" ], "properties": { + "category": { + "type": [ + "string", + "null" + ] + }, "description": { "type": [ "string", @@ -41,12 +46,78 @@ }, "name": { "type": "string" - }, - "needsAuth": { - "type": "boolean" } } }, + "AppTemplateSummary": { + "type": "object", + "required": [ + "materializedAppIds", + "name", + "templateId" + ], + "properties": { + "canonicalConnectorId": { + "type": [ + "string", + "null" + ] + }, + "category": { + "type": [ + "string", + "null" + ] + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "logoUrl": { + "type": [ + "string", + "null" + ] + }, + "logoUrlDark": { + "type": [ + "string", + "null" + ] + }, + "materializedAppIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "name": { + "type": "string" + }, + "reason": { + "anyOf": [ + { + "$ref": "#/definitions/AppTemplateUnavailableReason" + }, + { + "type": "null" + } + ] + }, + "templateId": { + "type": "string" + } + } + }, + "AppTemplateUnavailableReason": { + "type": "string", + "enum": [ + "NOT_CONFIGURED_FOR_WORKSPACE", + "NO_ACTIVE_WORKSPACE" + ] + }, "HookEventName": { "type": "string", "enum": [ @@ -89,6 +160,7 @@ "PluginDetail": { "type": "object", "required": [ + "appTemplates", "apps", "hooks", "marketplaceName", @@ -97,6 +169,12 @@ "summary" ], "properties": { + "appTemplates": { + "type": "array", + "items": { + "$ref": "#/definitions/AppTemplateSummary" + } + }, "apps": { "type": "array", "items": { @@ -134,6 +212,12 @@ "type": "string" } }, + "shareUrl": { + "type": [ + "string", + "null" + ] + }, "skills": { "type": "array", "items": { diff --git a/schemas/v2/RawResponseItemCompletedNotification.json b/schemas/v2/RawResponseItemCompletedNotification.json index dc35459..3ef3aa4 100644 --- a/schemas/v2/RawResponseItemCompletedNotification.json +++ b/schemas/v2/RawResponseItemCompletedNotification.json @@ -19,6 +19,50 @@ } }, "definitions": { + "AgentMessageInputContent": { + "oneOf": [ + { + "type": "object", + "required": [ + "text", + "type" + ], + "properties": { + "text": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "input_text" + ], + "title": "InputTextAgentMessageInputContentType" + } + }, + "title": "InputTextAgentMessageInputContent" + }, + { + "type": "object", + "required": [ + "encrypted_content", + "type" + ], + "properties": { + "encrypted_content": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "encrypted_content" + ], + "title": "EncryptedContentAgentMessageInputContentType" + } + }, + "title": "EncryptedContentAgentMessageInputContent" + } + ] + }, "ContentItem": { "oneOf": [ { @@ -184,10 +228,24 @@ "ImageDetail": { "type": "string", "enum": [ + "auto", + "low", "high", "original" ] }, + "InternalChatMessageMetadataPassthrough": { + "description": "Internal Responses API passthrough metadata copied into underlying chat messages.\n\nResponses API strongly types this payload. Do not modify it without first getting API approval and making the corresponding Responses API change.", + "type": "object", + "properties": { + "turn_id": { + "type": [ + "string", + "null" + ] + } + } + }, "LocalShellAction": { "oneOf": [ { @@ -356,12 +414,21 @@ } }, "id": { - "writeOnly": true, "type": [ "string", "null" ] }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "phase": { "anyOf": [ { @@ -385,6 +452,53 @@ }, "title": "MessageResponseItem" }, + { + "type": "object", + "required": [ + "author", + "content", + "recipient", + "type" + ], + "properties": { + "author": { + "type": "string" + }, + "content": { + "type": "array", + "items": { + "$ref": "#/definitions/AgentMessageInputContent" + } + }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, + "recipient": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "agent_message" + ], + "title": "AgentMessageResponseItemType" + } + }, + "title": "AgentMessageResponseItem" + }, { "type": "object", "required": [ @@ -408,6 +522,22 @@ "null" ] }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "summary": { "type": "array", "items": { @@ -444,12 +574,21 @@ }, "id": { "description": "Legacy id field retained for compatibility with older payloads.", - "writeOnly": true, "type": [ "string", "null" ] }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "status": { "$ref": "#/definitions/LocalShellStatus" }, @@ -479,12 +618,21 @@ "type": "string" }, "id": { - "writeOnly": true, "type": [ "string", "null" ] }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "name": { "type": "string" }, @@ -523,12 +671,21 @@ "type": "string" }, "id": { - "writeOnly": true, "type": [ "string", "null" ] }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "status": { "type": [ "string", @@ -556,6 +713,22 @@ "call_id": { "type": "string" }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "output": { "$ref": "#/definitions/FunctionCallOutputBody" }, @@ -582,7 +755,6 @@ "type": "string" }, "id": { - "writeOnly": true, "type": [ "string", "null" @@ -591,6 +763,16 @@ "input": { "type": "string" }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "name": { "type": "string" }, @@ -621,6 +803,22 @@ "call_id": { "type": "string" }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "name": { "type": [ "string", @@ -658,6 +856,22 @@ "execution": { "type": "string" }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "status": { "type": "string" }, @@ -692,12 +906,21 @@ ] }, "id": { - "writeOnly": true, "type": [ "string", "null" ] }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "status": { "type": [ "string", @@ -717,14 +940,26 @@ { "type": "object", "required": [ - "id", "result", "status", "type" ], "properties": { "id": { - "type": "string" + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] }, "result": { "type": "string" @@ -758,6 +993,22 @@ "encrypted_content": { "type": "string" }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "type": { "type": "string", "enum": [ @@ -774,6 +1025,16 @@ "type" ], "properties": { + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "type": { "type": "string", "enum": [ @@ -796,6 +1057,22 @@ "null" ] }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "type": { "type": "string", "enum": [ diff --git a/schemas/v2/ReviewStartResponse.json b/schemas/v2/ReviewStartResponse.json index 4f96e52..aa493bd 100644 --- a/schemas/v2/ReviewStartResponse.json +++ b/schemas/v2/ReviewStartResponse.json @@ -440,10 +440,38 @@ "ImageDetail": { "type": "string", "enum": [ + "auto", + "low", "high", "original" ] }, + "LegacyAppPathString": { + "type": "string" + }, + "McpToolCallAppContext": { + "type": "object", + "required": [ + "connectorId" + ], + "properties": { + "connectorId": { + "type": "string" + }, + "linkId": { + "type": [ + "string", + "null" + ] + }, + "resourceUri": { + "type": [ + "string", + "null" + ] + } + } + }, "McpToolCallError": { "type": "object", "required": [ @@ -619,15 +647,16 @@ ] }, "ReasoningEffort": { - "description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning", + "description": "A non-empty reasoning effort value advertised by the model.", + "type": "string", + "minLength": 1 + }, + "SubAgentActivityKind": { "type": "string", "enum": [ - "none", - "minimal", - "low", - "medium", - "high", - "xhigh" + "started", + "interacted", + "interrupted" ] }, "TextElement": { @@ -663,6 +692,12 @@ "type" ], "properties": { + "clientId": { + "type": [ + "string", + "null" + ] + }, "content": { "type": "array", "items": { @@ -847,7 +882,7 @@ "description": "The command's working directory.", "allOf": [ { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } ] }, @@ -940,6 +975,16 @@ "type" ], "properties": { + "appContext": { + "anyOf": [ + { + "$ref": "#/definitions/McpToolCallAppContext" + }, + { + "type": "null" + } + ] + }, "arguments": true, "durationMs": { "description": "The duration of the MCP tool call in milliseconds.", @@ -963,6 +1008,7 @@ "type": "string" }, "mcpAppResourceUri": { + "description": "Deprecated: use `appContext.resourceUri` instead.", "type": [ "string", "null" @@ -1147,6 +1193,38 @@ }, "title": "CollabAgentToolCallThreadItem" }, + { + "type": "object", + "required": [ + "agentPath", + "agentThreadId", + "id", + "kind", + "type" + ], + "properties": { + "agentPath": { + "type": "string" + }, + "agentThreadId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "$ref": "#/definitions/SubAgentActivityKind" + }, + "type": { + "type": "string", + "enum": [ + "subAgentActivity" + ], + "title": "SubAgentActivityThreadItemType" + } + }, + "title": "SubAgentActivityThreadItem" + }, { "type": "object", "required": [ @@ -1205,6 +1283,32 @@ }, "title": "ImageViewThreadItem" }, + { + "type": "object", + "required": [ + "durationMs", + "id", + "type" + ], + "properties": { + "durationMs": { + "type": "integer", + "format": "uint64", + "minimum": 0.0 + }, + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "sleep" + ], + "title": "SleepThreadItemType" + } + }, + "title": "SleepThreadItem" + }, { "type": "object", "required": [ diff --git a/schemas/v2/SkillsExtraRootsSetParams.json b/schemas/v2/SkillsExtraRootsSetParams.json new file mode 100644 index 0000000..ccd41d7 --- /dev/null +++ b/schemas/v2/SkillsExtraRootsSetParams.json @@ -0,0 +1,22 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "SkillsExtraRootsSetParams", + "type": "object", + "required": [ + "extraRoots" + ], + "properties": { + "extraRoots": { + "type": "array", + "items": { + "$ref": "#/definitions/AbsolutePathBuf" + } + } + }, + "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" + } + } +} \ No newline at end of file diff --git a/schemas/v2/SkillsExtraRootsSetResponse.json b/schemas/v2/SkillsExtraRootsSetResponse.json new file mode 100644 index 0000000..cf0792c --- /dev/null +++ b/schemas/v2/SkillsExtraRootsSetResponse.json @@ -0,0 +1,5 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "SkillsExtraRootsSetResponse", + "type": "object" +} \ No newline at end of file diff --git a/schemas/v2/ThreadDeleteParams.json b/schemas/v2/ThreadDeleteParams.json new file mode 100644 index 0000000..e6af44b --- /dev/null +++ b/schemas/v2/ThreadDeleteParams.json @@ -0,0 +1,13 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ThreadDeleteParams", + "type": "object", + "required": [ + "threadId" + ], + "properties": { + "threadId": { + "type": "string" + } + } +} \ No newline at end of file diff --git a/schemas/v2/ThreadDeleteResponse.json b/schemas/v2/ThreadDeleteResponse.json new file mode 100644 index 0000000..ff9f485 --- /dev/null +++ b/schemas/v2/ThreadDeleteResponse.json @@ -0,0 +1,5 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ThreadDeleteResponse", + "type": "object" +} \ No newline at end of file diff --git a/schemas/v2/ThreadDeletedNotification.json b/schemas/v2/ThreadDeletedNotification.json new file mode 100644 index 0000000..6d8ff98 --- /dev/null +++ b/schemas/v2/ThreadDeletedNotification.json @@ -0,0 +1,13 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "ThreadDeletedNotification", + "type": "object", + "required": [ + "threadId" + ], + "properties": { + "threadId": { + "type": "string" + } + } +} \ No newline at end of file diff --git a/schemas/v2/ThreadForkParams.json b/schemas/v2/ThreadForkParams.json index a7ff4ea..32ab492 100644 --- a/schemas/v2/ThreadForkParams.json +++ b/schemas/v2/ThreadForkParams.json @@ -56,14 +56,10 @@ "ephemeral": { "type": "boolean" }, - "sandbox": { - "anyOf": [ - { - "$ref": "#/definitions/SandboxMode" - }, - { - "type": "null" - } + "serviceTier": { + "type": [ + "string", + "null" ] }, "model": { @@ -79,15 +75,6 @@ "null" ] }, - "serviceTier": { - "type": [ - "string", - "null" - ] - }, - "threadId": { - "type": "string" - }, "threadSource": { "description": "Optional client-supplied analytics source classification for this forked thread.", "anyOf": [ @@ -98,9 +85,26 @@ "type": "null" } ] + }, + "sandbox": { + "anyOf": [ + { + "$ref": "#/definitions/SandboxMode" + }, + { + "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`. `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", @@ -169,12 +173,7 @@ ] }, "ThreadSource": { - "type": "string", - "enum": [ - "user", - "subagent", - "memory_consolidation" - ] + "type": "string" } } } \ No newline at end of file diff --git a/schemas/v2/ThreadForkResponse.json b/schemas/v2/ThreadForkResponse.json index 991bd84..23d2539 100644 --- a/schemas/v2/ThreadForkResponse.json +++ b/schemas/v2/ThreadForkResponse.json @@ -12,8 +12,11 @@ "thread" ], "properties": { - "thread": { - "$ref": "#/definitions/Thread" + "serviceTier": { + "type": [ + "string", + "null" + ] }, "approvalPolicy": { "$ref": "#/definitions/AskForApproval" @@ -30,11 +33,11 @@ "$ref": "#/definitions/AbsolutePathBuf" }, "instructionSources": { - "description": "Instruction source files currently loaded for this thread.", + "description": "Environment-native paths to instruction source files currently loaded for this thread.", "default": [], "type": "array", "items": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } }, "model": { @@ -43,6 +46,14 @@ "modelProvider": { "type": "string" }, + "sandbox": { + "description": "Legacy sandbox policy retained for compatibility. Experimental clients should prefer `activePermissionProfile` for profile provenance.", + "allOf": [ + { + "$ref": "#/definitions/SandboxPolicy" + } + ] + }, "reasoningEffort": { "anyOf": [ { @@ -53,19 +64,8 @@ } ] }, - "serviceTier": { - "type": [ - "string", - "null" - ] - }, - "sandbox": { - "description": "Legacy sandbox policy retained for compatibility. Experimental clients should prefer `activePermissionProfile` for profile provenance.", - "allOf": [ - { - "$ref": "#/definitions/SandboxPolicy" - } - ] + "thread": { + "$ref": "#/definitions/Thread" } }, "definitions": { @@ -598,10 +598,38 @@ "ImageDetail": { "type": "string", "enum": [ + "auto", + "low", "high", "original" ] }, + "LegacyAppPathString": { + "type": "string" + }, + "McpToolCallAppContext": { + "type": "object", + "required": [ + "connectorId" + ], + "properties": { + "connectorId": { + "type": "string" + }, + "linkId": { + "type": [ + "string", + "null" + ] + }, + "resourceUri": { + "type": [ + "string", + "null" + ] + } + } + }, "McpToolCallError": { "type": "object", "required": [ @@ -702,6 +730,15 @@ } ] }, + "MultiAgentMode": { + "description": "Controls whether the model receives multi-agent delegation instructions and, when it does, whether it should only spawn sub-agents after an explicit user request or may delegate proactively when doing so would help. `none` leaves the multi-agent tools available without injecting delegation instructions.", + "type": "string", + "enum": [ + "none", + "explicitRequestOnly", + "proactive" + ] + }, "NetworkAccess": { "type": "string", "enum": [ @@ -784,16 +821,9 @@ ] }, "ReasoningEffort": { - "description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning", + "description": "A non-empty reasoning effort value advertised by the model.", "type": "string", - "enum": [ - "none", - "minimal", - "low", - "medium", - "high", - "xhigh" - ] + "minLength": 1 }, "SandboxPolicy": { "oneOf": [ @@ -934,6 +964,14 @@ } ] }, + "SubAgentActivityKind": { + "type": "string", + "enum": [ + "started", + "interacted", + "interrupted" + ] + }, "SubAgentSource": { "oneOf": [ { @@ -1117,6 +1155,13 @@ "null" ] }, + "parentThreadId": { + "description": "The ID of the parent thread. This will only be set if this thread is a subagent.", + "type": [ + "string", + "null" + ] + }, "path": { "description": "[UNSTABLE] Path to the thread on disk.", "type": [ @@ -1128,6 +1173,14 @@ "description": "Usually the first user message in the thread, if available.", "type": "string" }, + "recencyAt": { + "description": "Unix timestamp (in seconds) used for thread recency ordering.", + "type": [ + "integer", + "null" + ], + "format": "int64" + }, "sessionId": { "description": "Session id shared by threads that belong to the same session tree.", "type": "string" @@ -1193,6 +1246,12 @@ "type" ], "properties": { + "clientId": { + "type": [ + "string", + "null" + ] + }, "content": { "type": "array", "items": { @@ -1377,7 +1436,7 @@ "description": "The command's working directory.", "allOf": [ { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } ] }, @@ -1470,6 +1529,16 @@ "type" ], "properties": { + "appContext": { + "anyOf": [ + { + "$ref": "#/definitions/McpToolCallAppContext" + }, + { + "type": "null" + } + ] + }, "arguments": true, "durationMs": { "description": "The duration of the MCP tool call in milliseconds.", @@ -1493,6 +1562,7 @@ "type": "string" }, "mcpAppResourceUri": { + "description": "Deprecated: use `appContext.resourceUri` instead.", "type": [ "string", "null" @@ -1677,6 +1747,38 @@ }, "title": "CollabAgentToolCallThreadItem" }, + { + "type": "object", + "required": [ + "agentPath", + "agentThreadId", + "id", + "kind", + "type" + ], + "properties": { + "agentPath": { + "type": "string" + }, + "agentThreadId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "$ref": "#/definitions/SubAgentActivityKind" + }, + "type": { + "type": "string", + "enum": [ + "subAgentActivity" + ], + "title": "SubAgentActivityThreadItemType" + } + }, + "title": "SubAgentActivityThreadItem" + }, { "type": "object", "required": [ @@ -1735,6 +1837,32 @@ }, "title": "ImageViewThreadItem" }, + { + "type": "object", + "required": [ + "durationMs", + "id", + "type" + ], + "properties": { + "durationMs": { + "type": "integer", + "format": "uint64", + "minimum": 0.0 + }, + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "sleep" + ], + "title": "SleepThreadItemType" + } + }, + "title": "SleepThreadItem" + }, { "type": "object", "required": [ @@ -1850,12 +1978,7 @@ ] }, "ThreadSource": { - "type": "string", - "enum": [ - "user", - "subagent", - "memory_consolidation" - ] + "type": "string" }, "ThreadStatus": { "oneOf": [ diff --git a/schemas/v2/ThreadListParams.json b/schemas/v2/ThreadListParams.json index 46a8683..0374daf 100644 --- a/schemas/v2/ThreadListParams.json +++ b/schemas/v2/ThreadListParams.json @@ -47,6 +47,10 @@ "type": "string" } }, + "useStateDbOnly": { + "description": "If true, return from the state DB without scanning JSONL rollouts to repair thread metadata. Omitted or false preserves scan-and-repair behavior.", + "type": "boolean" + }, "searchTerm": { "description": "Optional substring filter for the extracted thread title.", "type": [ @@ -85,10 +89,6 @@ "items": { "$ref": "#/definitions/ThreadSourceKind" } - }, - "useStateDbOnly": { - "description": "If true, return from the state DB without scanning JSONL rollouts to repair thread metadata. Omitted or false preserves scan-and-repair behavior.", - "type": "boolean" } }, "definitions": { @@ -116,7 +116,8 @@ "type": "string", "enum": [ "created_at", - "updated_at" + "updated_at", + "recency_at" ] }, "ThreadSourceKind": { diff --git a/schemas/v2/ThreadListResponse.json b/schemas/v2/ThreadListResponse.json index fa1f70e..577c5dd 100644 --- a/schemas/v2/ThreadListResponse.json +++ b/schemas/v2/ThreadListResponse.json @@ -478,10 +478,38 @@ "ImageDetail": { "type": "string", "enum": [ + "auto", + "low", "high", "original" ] }, + "LegacyAppPathString": { + "type": "string" + }, + "McpToolCallAppContext": { + "type": "object", + "required": [ + "connectorId" + ], + "properties": { + "connectorId": { + "type": "string" + }, + "linkId": { + "type": [ + "string", + "null" + ] + }, + "resourceUri": { + "type": [ + "string", + "null" + ] + } + } + }, "McpToolCallError": { "type": "object", "required": [ @@ -657,16 +685,9 @@ ] }, "ReasoningEffort": { - "description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning", + "description": "A non-empty reasoning effort value advertised by the model.", "type": "string", - "enum": [ - "none", - "minimal", - "low", - "medium", - "high", - "xhigh" - ] + "minLength": 1 }, "SessionSource": { "oneOf": [ @@ -708,6 +729,14 @@ } ] }, + "SubAgentActivityKind": { + "type": "string", + "enum": [ + "started", + "interacted", + "interrupted" + ] + }, "SubAgentSource": { "oneOf": [ { @@ -891,6 +920,13 @@ "null" ] }, + "parentThreadId": { + "description": "The ID of the parent thread. This will only be set if this thread is a subagent.", + "type": [ + "string", + "null" + ] + }, "path": { "description": "[UNSTABLE] Path to the thread on disk.", "type": [ @@ -902,6 +938,14 @@ "description": "Usually the first user message in the thread, if available.", "type": "string" }, + "recencyAt": { + "description": "Unix timestamp (in seconds) used for thread recency ordering.", + "type": [ + "integer", + "null" + ], + "format": "int64" + }, "sessionId": { "description": "Session id shared by threads that belong to the same session tree.", "type": "string" @@ -967,6 +1011,12 @@ "type" ], "properties": { + "clientId": { + "type": [ + "string", + "null" + ] + }, "content": { "type": "array", "items": { @@ -1151,7 +1201,7 @@ "description": "The command's working directory.", "allOf": [ { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } ] }, @@ -1244,6 +1294,16 @@ "type" ], "properties": { + "appContext": { + "anyOf": [ + { + "$ref": "#/definitions/McpToolCallAppContext" + }, + { + "type": "null" + } + ] + }, "arguments": true, "durationMs": { "description": "The duration of the MCP tool call in milliseconds.", @@ -1267,6 +1327,7 @@ "type": "string" }, "mcpAppResourceUri": { + "description": "Deprecated: use `appContext.resourceUri` instead.", "type": [ "string", "null" @@ -1451,6 +1512,38 @@ }, "title": "CollabAgentToolCallThreadItem" }, + { + "type": "object", + "required": [ + "agentPath", + "agentThreadId", + "id", + "kind", + "type" + ], + "properties": { + "agentPath": { + "type": "string" + }, + "agentThreadId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "$ref": "#/definitions/SubAgentActivityKind" + }, + "type": { + "type": "string", + "enum": [ + "subAgentActivity" + ], + "title": "SubAgentActivityThreadItemType" + } + }, + "title": "SubAgentActivityThreadItem" + }, { "type": "object", "required": [ @@ -1509,6 +1602,32 @@ }, "title": "ImageViewThreadItem" }, + { + "type": "object", + "required": [ + "durationMs", + "id", + "type" + ], + "properties": { + "durationMs": { + "type": "integer", + "format": "uint64", + "minimum": 0.0 + }, + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "sleep" + ], + "title": "SleepThreadItemType" + } + }, + "title": "SleepThreadItem" + }, { "type": "object", "required": [ @@ -1624,12 +1743,7 @@ ] }, "ThreadSource": { - "type": "string", - "enum": [ - "user", - "subagent", - "memory_consolidation" - ] + "type": "string" }, "ThreadStatus": { "oneOf": [ diff --git a/schemas/v2/ThreadMetadataUpdateResponse.json b/schemas/v2/ThreadMetadataUpdateResponse.json index a3f99f3..578a505 100644 --- a/schemas/v2/ThreadMetadataUpdateResponse.json +++ b/schemas/v2/ThreadMetadataUpdateResponse.json @@ -461,10 +461,38 @@ "ImageDetail": { "type": "string", "enum": [ + "auto", + "low", "high", "original" ] }, + "LegacyAppPathString": { + "type": "string" + }, + "McpToolCallAppContext": { + "type": "object", + "required": [ + "connectorId" + ], + "properties": { + "connectorId": { + "type": "string" + }, + "linkId": { + "type": [ + "string", + "null" + ] + }, + "resourceUri": { + "type": [ + "string", + "null" + ] + } + } + }, "McpToolCallError": { "type": "object", "required": [ @@ -640,16 +668,9 @@ ] }, "ReasoningEffort": { - "description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning", + "description": "A non-empty reasoning effort value advertised by the model.", "type": "string", - "enum": [ - "none", - "minimal", - "low", - "medium", - "high", - "xhigh" - ] + "minLength": 1 }, "SessionSource": { "oneOf": [ @@ -691,6 +712,14 @@ } ] }, + "SubAgentActivityKind": { + "type": "string", + "enum": [ + "started", + "interacted", + "interrupted" + ] + }, "SubAgentSource": { "oneOf": [ { @@ -874,6 +903,13 @@ "null" ] }, + "parentThreadId": { + "description": "The ID of the parent thread. This will only be set if this thread is a subagent.", + "type": [ + "string", + "null" + ] + }, "path": { "description": "[UNSTABLE] Path to the thread on disk.", "type": [ @@ -885,6 +921,14 @@ "description": "Usually the first user message in the thread, if available.", "type": "string" }, + "recencyAt": { + "description": "Unix timestamp (in seconds) used for thread recency ordering.", + "type": [ + "integer", + "null" + ], + "format": "int64" + }, "sessionId": { "description": "Session id shared by threads that belong to the same session tree.", "type": "string" @@ -950,6 +994,12 @@ "type" ], "properties": { + "clientId": { + "type": [ + "string", + "null" + ] + }, "content": { "type": "array", "items": { @@ -1134,7 +1184,7 @@ "description": "The command's working directory.", "allOf": [ { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } ] }, @@ -1227,6 +1277,16 @@ "type" ], "properties": { + "appContext": { + "anyOf": [ + { + "$ref": "#/definitions/McpToolCallAppContext" + }, + { + "type": "null" + } + ] + }, "arguments": true, "durationMs": { "description": "The duration of the MCP tool call in milliseconds.", @@ -1250,6 +1310,7 @@ "type": "string" }, "mcpAppResourceUri": { + "description": "Deprecated: use `appContext.resourceUri` instead.", "type": [ "string", "null" @@ -1434,6 +1495,38 @@ }, "title": "CollabAgentToolCallThreadItem" }, + { + "type": "object", + "required": [ + "agentPath", + "agentThreadId", + "id", + "kind", + "type" + ], + "properties": { + "agentPath": { + "type": "string" + }, + "agentThreadId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "$ref": "#/definitions/SubAgentActivityKind" + }, + "type": { + "type": "string", + "enum": [ + "subAgentActivity" + ], + "title": "SubAgentActivityThreadItemType" + } + }, + "title": "SubAgentActivityThreadItem" + }, { "type": "object", "required": [ @@ -1492,6 +1585,32 @@ }, "title": "ImageViewThreadItem" }, + { + "type": "object", + "required": [ + "durationMs", + "id", + "type" + ], + "properties": { + "durationMs": { + "type": "integer", + "format": "uint64", + "minimum": 0.0 + }, + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "sleep" + ], + "title": "SleepThreadItemType" + } + }, + "title": "SleepThreadItem" + }, { "type": "object", "required": [ @@ -1607,12 +1726,7 @@ ] }, "ThreadSource": { - "type": "string", - "enum": [ - "user", - "subagent", - "memory_consolidation" - ] + "type": "string" }, "ThreadStatus": { "oneOf": [ diff --git a/schemas/v2/ThreadReadParams.json b/schemas/v2/ThreadReadParams.json index 76ce44a..8f37027 100644 --- a/schemas/v2/ThreadReadParams.json +++ b/schemas/v2/ThreadReadParams.json @@ -8,7 +8,6 @@ "properties": { "includeTurns": { "description": "When true, include turns and their items from rollout history.", - "default": false, "type": "boolean" }, "threadId": { diff --git a/schemas/v2/ThreadReadResponse.json b/schemas/v2/ThreadReadResponse.json index 86abebe..ea08926 100644 --- a/schemas/v2/ThreadReadResponse.json +++ b/schemas/v2/ThreadReadResponse.json @@ -461,10 +461,38 @@ "ImageDetail": { "type": "string", "enum": [ + "auto", + "low", "high", "original" ] }, + "LegacyAppPathString": { + "type": "string" + }, + "McpToolCallAppContext": { + "type": "object", + "required": [ + "connectorId" + ], + "properties": { + "connectorId": { + "type": "string" + }, + "linkId": { + "type": [ + "string", + "null" + ] + }, + "resourceUri": { + "type": [ + "string", + "null" + ] + } + } + }, "McpToolCallError": { "type": "object", "required": [ @@ -640,16 +668,9 @@ ] }, "ReasoningEffort": { - "description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning", + "description": "A non-empty reasoning effort value advertised by the model.", "type": "string", - "enum": [ - "none", - "minimal", - "low", - "medium", - "high", - "xhigh" - ] + "minLength": 1 }, "SessionSource": { "oneOf": [ @@ -691,6 +712,14 @@ } ] }, + "SubAgentActivityKind": { + "type": "string", + "enum": [ + "started", + "interacted", + "interrupted" + ] + }, "SubAgentSource": { "oneOf": [ { @@ -874,6 +903,13 @@ "null" ] }, + "parentThreadId": { + "description": "The ID of the parent thread. This will only be set if this thread is a subagent.", + "type": [ + "string", + "null" + ] + }, "path": { "description": "[UNSTABLE] Path to the thread on disk.", "type": [ @@ -885,6 +921,14 @@ "description": "Usually the first user message in the thread, if available.", "type": "string" }, + "recencyAt": { + "description": "Unix timestamp (in seconds) used for thread recency ordering.", + "type": [ + "integer", + "null" + ], + "format": "int64" + }, "sessionId": { "description": "Session id shared by threads that belong to the same session tree.", "type": "string" @@ -950,6 +994,12 @@ "type" ], "properties": { + "clientId": { + "type": [ + "string", + "null" + ] + }, "content": { "type": "array", "items": { @@ -1134,7 +1184,7 @@ "description": "The command's working directory.", "allOf": [ { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } ] }, @@ -1227,6 +1277,16 @@ "type" ], "properties": { + "appContext": { + "anyOf": [ + { + "$ref": "#/definitions/McpToolCallAppContext" + }, + { + "type": "null" + } + ] + }, "arguments": true, "durationMs": { "description": "The duration of the MCP tool call in milliseconds.", @@ -1250,6 +1310,7 @@ "type": "string" }, "mcpAppResourceUri": { + "description": "Deprecated: use `appContext.resourceUri` instead.", "type": [ "string", "null" @@ -1434,6 +1495,38 @@ }, "title": "CollabAgentToolCallThreadItem" }, + { + "type": "object", + "required": [ + "agentPath", + "agentThreadId", + "id", + "kind", + "type" + ], + "properties": { + "agentPath": { + "type": "string" + }, + "agentThreadId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "$ref": "#/definitions/SubAgentActivityKind" + }, + "type": { + "type": "string", + "enum": [ + "subAgentActivity" + ], + "title": "SubAgentActivityThreadItemType" + } + }, + "title": "SubAgentActivityThreadItem" + }, { "type": "object", "required": [ @@ -1492,6 +1585,32 @@ }, "title": "ImageViewThreadItem" }, + { + "type": "object", + "required": [ + "durationMs", + "id", + "type" + ], + "properties": { + "durationMs": { + "type": "integer", + "format": "uint64", + "minimum": 0.0 + }, + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "sleep" + ], + "title": "SleepThreadItemType" + } + }, + "title": "SleepThreadItem" + }, { "type": "object", "required": [ @@ -1607,12 +1726,7 @@ ] }, "ThreadSource": { - "type": "string", - "enum": [ - "user", - "subagent", - "memory_consolidation" - ] + "type": "string" }, "ThreadStatus": { "oneOf": [ diff --git a/schemas/v2/ThreadResumeParams.json b/schemas/v2/ThreadResumeParams.json index c233f0a..a13b71a 100644 --- a/schemas/v2/ThreadResumeParams.json +++ b/schemas/v2/ThreadResumeParams.json @@ -53,6 +53,15 @@ "null" ] }, + "serviceTier": { + "type": [ + "string", + "null" + ] + }, + "threadId": { + "type": "string" + }, "personality": { "anyOf": [ { @@ -63,16 +72,6 @@ } ] }, - "sandbox": { - "anyOf": [ - { - "$ref": "#/definitions/SandboxMode" - }, - { - "type": "null" - } - ] - }, "model": { "description": "Configuration overrides for the resumed thread, if any.", "type": [ @@ -86,17 +85,66 @@ "null" ] }, - "serviceTier": { - "type": [ - "string", - "null" + "sandbox": { + "anyOf": [ + { + "$ref": "#/definitions/SandboxMode" + }, + { + "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" + }, + "AgentMessageInputContent": { + "oneOf": [ + { + "type": "object", + "required": [ + "text", + "type" + ], + "properties": { + "text": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "input_text" + ], + "title": "InputTextAgentMessageInputContentType" + } + }, + "title": "InputTextAgentMessageInputContent" + }, + { + "type": "object", + "required": [ + "encrypted_content", + "type" + ], + "properties": { + "encrypted_content": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "encrypted_content" + ], + "title": "EncryptedContentAgentMessageInputContentType" + } + }, + "title": "EncryptedContentAgentMessageInputContent" + } + ] + }, "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", @@ -321,10 +369,24 @@ "ImageDetail": { "type": "string", "enum": [ + "auto", + "low", "high", "original" ] }, + "InternalChatMessageMetadataPassthrough": { + "description": "Internal Responses API passthrough metadata copied into underlying chat messages.\n\nResponses API strongly types this payload. Do not modify it without first getting API approval and making the corresponding Responses API change.", + "type": "object", + "properties": { + "turn_id": { + "type": [ + "string", + "null" + ] + } + } + }, "LocalShellAction": { "oneOf": [ { @@ -501,12 +563,21 @@ } }, "id": { - "writeOnly": true, "type": [ "string", "null" ] }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "phase": { "anyOf": [ { @@ -530,6 +601,53 @@ }, "title": "MessageResponseItem" }, + { + "type": "object", + "required": [ + "author", + "content", + "recipient", + "type" + ], + "properties": { + "author": { + "type": "string" + }, + "content": { + "type": "array", + "items": { + "$ref": "#/definitions/AgentMessageInputContent" + } + }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, + "recipient": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "agent_message" + ], + "title": "AgentMessageResponseItemType" + } + }, + "title": "AgentMessageResponseItem" + }, { "type": "object", "required": [ @@ -553,6 +671,22 @@ "null" ] }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "summary": { "type": "array", "items": { @@ -589,12 +723,21 @@ }, "id": { "description": "Legacy id field retained for compatibility with older payloads.", - "writeOnly": true, "type": [ "string", "null" ] }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "status": { "$ref": "#/definitions/LocalShellStatus" }, @@ -624,12 +767,21 @@ "type": "string" }, "id": { - "writeOnly": true, "type": [ "string", "null" ] }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "name": { "type": "string" }, @@ -668,12 +820,21 @@ "type": "string" }, "id": { - "writeOnly": true, "type": [ "string", "null" ] }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "status": { "type": [ "string", @@ -701,6 +862,22 @@ "call_id": { "type": "string" }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "output": { "$ref": "#/definitions/FunctionCallOutputBody" }, @@ -727,7 +904,6 @@ "type": "string" }, "id": { - "writeOnly": true, "type": [ "string", "null" @@ -736,6 +912,16 @@ "input": { "type": "string" }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "name": { "type": "string" }, @@ -766,6 +952,22 @@ "call_id": { "type": "string" }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "name": { "type": [ "string", @@ -803,6 +1005,22 @@ "execution": { "type": "string" }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "status": { "type": "string" }, @@ -837,12 +1055,21 @@ ] }, "id": { - "writeOnly": true, "type": [ "string", "null" ] }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "status": { "type": [ "string", @@ -862,14 +1089,26 @@ { "type": "object", "required": [ - "id", "result", "status", "type" ], "properties": { "id": { - "type": "string" + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] }, "result": { "type": "string" @@ -903,6 +1142,22 @@ "encrypted_content": { "type": "string" }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "type": { "type": "string", "enum": [ @@ -919,6 +1174,16 @@ "type" ], "properties": { + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "type": { "type": "string", "enum": [ @@ -941,6 +1206,22 @@ "null" ] }, + "id": { + "type": [ + "string", + "null" + ] + }, + "internal_chat_message_metadata_passthrough": { + "anyOf": [ + { + "$ref": "#/definitions/InternalChatMessageMetadataPassthrough" + }, + { + "type": "null" + } + ] + }, "type": { "type": "string", "enum": [ @@ -1077,6 +1358,74 @@ "workspace-write", "danger-full-access" ] + }, + "SortDirection": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + }, + "ThreadResumeInitialTurnsPageParams": { + "type": "object", + "properties": { + "itemsView": { + "description": "How much item detail to include for each returned turn; defaults to summary.", + "anyOf": [ + { + "$ref": "#/definitions/TurnItemsView" + }, + { + "type": "null" + } + ] + }, + "limit": { + "description": "Optional turn page size.", + "type": [ + "integer", + "null" + ], + "format": "uint32", + "minimum": 0.0 + }, + "sortDirection": { + "description": "Optional turn pagination direction; defaults to descending.", + "anyOf": [ + { + "$ref": "#/definitions/SortDirection" + }, + { + "type": "null" + } + ] + } + } + }, + "TurnItemsView": { + "oneOf": [ + { + "description": "`items` was not loaded for this turn. The field is intentionally empty.", + "type": "string", + "enum": [ + "notLoaded" + ] + }, + { + "description": "`items` contains only a display summary for this turn.", + "type": "string", + "enum": [ + "summary" + ] + }, + { + "description": "`items` contains every ThreadItem available from persisted app-server history for this turn.", + "type": "string", + "enum": [ + "full" + ] + } + ] } } } \ No newline at end of file diff --git a/schemas/v2/ThreadResumeResponse.json b/schemas/v2/ThreadResumeResponse.json index 022a873..98cade5 100644 --- a/schemas/v2/ThreadResumeResponse.json +++ b/schemas/v2/ThreadResumeResponse.json @@ -12,11 +12,8 @@ "thread" ], "properties": { - "serviceTier": { - "type": [ - "string", - "null" - ] + "thread": { + "$ref": "#/definitions/Thread" }, "approvalPolicy": { "$ref": "#/definitions/AskForApproval" @@ -32,12 +29,20 @@ "cwd": { "$ref": "#/definitions/AbsolutePathBuf" }, + "sandbox": { + "description": "Legacy sandbox policy retained for compatibility. Experimental clients should prefer `activePermissionProfile` for profile provenance.", + "allOf": [ + { + "$ref": "#/definitions/SandboxPolicy" + } + ] + }, "instructionSources": { - "description": "Instruction source files currently loaded for this thread.", + "description": "Environment-native paths to instruction source files currently loaded for this thread.", "default": [], "type": "array", "items": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } }, "model": { @@ -46,6 +51,12 @@ "modelProvider": { "type": "string" }, + "serviceTier": { + "type": [ + "string", + "null" + ] + }, "reasoningEffort": { "anyOf": [ { @@ -55,17 +66,6 @@ "type": "null" } ] - }, - "thread": { - "$ref": "#/definitions/Thread" - }, - "sandbox": { - "description": "Legacy sandbox policy retained for compatibility. Experimental clients should prefer `activePermissionProfile` for profile provenance.", - "allOf": [ - { - "$ref": "#/definitions/SandboxPolicy" - } - ] } }, "definitions": { @@ -598,10 +598,38 @@ "ImageDetail": { "type": "string", "enum": [ + "auto", + "low", "high", "original" ] }, + "LegacyAppPathString": { + "type": "string" + }, + "McpToolCallAppContext": { + "type": "object", + "required": [ + "connectorId" + ], + "properties": { + "connectorId": { + "type": "string" + }, + "linkId": { + "type": [ + "string", + "null" + ] + }, + "resourceUri": { + "type": [ + "string", + "null" + ] + } + } + }, "McpToolCallError": { "type": "object", "required": [ @@ -702,6 +730,15 @@ } ] }, + "MultiAgentMode": { + "description": "Controls whether the model receives multi-agent delegation instructions and, when it does, whether it should only spawn sub-agents after an explicit user request or may delegate proactively when doing so would help. `none` leaves the multi-agent tools available without injecting delegation instructions.", + "type": "string", + "enum": [ + "none", + "explicitRequestOnly", + "proactive" + ] + }, "NetworkAccess": { "type": "string", "enum": [ @@ -784,16 +821,9 @@ ] }, "ReasoningEffort": { - "description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning", + "description": "A non-empty reasoning effort value advertised by the model.", "type": "string", - "enum": [ - "none", - "minimal", - "low", - "medium", - "high", - "xhigh" - ] + "minLength": 1 }, "SandboxPolicy": { "oneOf": [ @@ -934,6 +964,14 @@ } ] }, + "SubAgentActivityKind": { + "type": "string", + "enum": [ + "started", + "interacted", + "interrupted" + ] + }, "SubAgentSource": { "oneOf": [ { @@ -1117,6 +1155,13 @@ "null" ] }, + "parentThreadId": { + "description": "The ID of the parent thread. This will only be set if this thread is a subagent.", + "type": [ + "string", + "null" + ] + }, "path": { "description": "[UNSTABLE] Path to the thread on disk.", "type": [ @@ -1128,6 +1173,14 @@ "description": "Usually the first user message in the thread, if available.", "type": "string" }, + "recencyAt": { + "description": "Unix timestamp (in seconds) used for thread recency ordering.", + "type": [ + "integer", + "null" + ], + "format": "int64" + }, "sessionId": { "description": "Session id shared by threads that belong to the same session tree.", "type": "string" @@ -1193,6 +1246,12 @@ "type" ], "properties": { + "clientId": { + "type": [ + "string", + "null" + ] + }, "content": { "type": "array", "items": { @@ -1377,7 +1436,7 @@ "description": "The command's working directory.", "allOf": [ { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } ] }, @@ -1470,6 +1529,16 @@ "type" ], "properties": { + "appContext": { + "anyOf": [ + { + "$ref": "#/definitions/McpToolCallAppContext" + }, + { + "type": "null" + } + ] + }, "arguments": true, "durationMs": { "description": "The duration of the MCP tool call in milliseconds.", @@ -1493,6 +1562,7 @@ "type": "string" }, "mcpAppResourceUri": { + "description": "Deprecated: use `appContext.resourceUri` instead.", "type": [ "string", "null" @@ -1677,6 +1747,38 @@ }, "title": "CollabAgentToolCallThreadItem" }, + { + "type": "object", + "required": [ + "agentPath", + "agentThreadId", + "id", + "kind", + "type" + ], + "properties": { + "agentPath": { + "type": "string" + }, + "agentThreadId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "$ref": "#/definitions/SubAgentActivityKind" + }, + "type": { + "type": "string", + "enum": [ + "subAgentActivity" + ], + "title": "SubAgentActivityThreadItemType" + } + }, + "title": "SubAgentActivityThreadItem" + }, { "type": "object", "required": [ @@ -1735,6 +1837,32 @@ }, "title": "ImageViewThreadItem" }, + { + "type": "object", + "required": [ + "durationMs", + "id", + "type" + ], + "properties": { + "durationMs": { + "type": "integer", + "format": "uint64", + "minimum": 0.0 + }, + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "sleep" + ], + "title": "SleepThreadItemType" + } + }, + "title": "SleepThreadItem" + }, { "type": "object", "required": [ @@ -1850,12 +1978,7 @@ ] }, "ThreadSource": { - "type": "string", - "enum": [ - "user", - "subagent", - "memory_consolidation" - ] + "type": "string" }, "ThreadStatus": { "oneOf": [ @@ -2061,6 +2184,32 @@ "inProgress" ] }, + "TurnsPage": { + "type": "object", + "required": [ + "data" + ], + "properties": { + "backwardsCursor": { + "type": [ + "string", + "null" + ] + }, + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/Turn" + } + }, + "nextCursor": { + "type": [ + "string", + "null" + ] + } + } + }, "UserInput": { "oneOf": [ { diff --git a/schemas/v2/ThreadRollbackResponse.json b/schemas/v2/ThreadRollbackResponse.json index dc37812..28705f6 100644 --- a/schemas/v2/ThreadRollbackResponse.json +++ b/schemas/v2/ThreadRollbackResponse.json @@ -466,10 +466,38 @@ "ImageDetail": { "type": "string", "enum": [ + "auto", + "low", "high", "original" ] }, + "LegacyAppPathString": { + "type": "string" + }, + "McpToolCallAppContext": { + "type": "object", + "required": [ + "connectorId" + ], + "properties": { + "connectorId": { + "type": "string" + }, + "linkId": { + "type": [ + "string", + "null" + ] + }, + "resourceUri": { + "type": [ + "string", + "null" + ] + } + } + }, "McpToolCallError": { "type": "object", "required": [ @@ -645,16 +673,9 @@ ] }, "ReasoningEffort": { - "description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning", + "description": "A non-empty reasoning effort value advertised by the model.", "type": "string", - "enum": [ - "none", - "minimal", - "low", - "medium", - "high", - "xhigh" - ] + "minLength": 1 }, "SessionSource": { "oneOf": [ @@ -696,6 +717,14 @@ } ] }, + "SubAgentActivityKind": { + "type": "string", + "enum": [ + "started", + "interacted", + "interrupted" + ] + }, "SubAgentSource": { "oneOf": [ { @@ -879,6 +908,13 @@ "null" ] }, + "parentThreadId": { + "description": "The ID of the parent thread. This will only be set if this thread is a subagent.", + "type": [ + "string", + "null" + ] + }, "path": { "description": "[UNSTABLE] Path to the thread on disk.", "type": [ @@ -890,6 +926,14 @@ "description": "Usually the first user message in the thread, if available.", "type": "string" }, + "recencyAt": { + "description": "Unix timestamp (in seconds) used for thread recency ordering.", + "type": [ + "integer", + "null" + ], + "format": "int64" + }, "sessionId": { "description": "Session id shared by threads that belong to the same session tree.", "type": "string" @@ -955,6 +999,12 @@ "type" ], "properties": { + "clientId": { + "type": [ + "string", + "null" + ] + }, "content": { "type": "array", "items": { @@ -1139,7 +1189,7 @@ "description": "The command's working directory.", "allOf": [ { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } ] }, @@ -1232,6 +1282,16 @@ "type" ], "properties": { + "appContext": { + "anyOf": [ + { + "$ref": "#/definitions/McpToolCallAppContext" + }, + { + "type": "null" + } + ] + }, "arguments": true, "durationMs": { "description": "The duration of the MCP tool call in milliseconds.", @@ -1255,6 +1315,7 @@ "type": "string" }, "mcpAppResourceUri": { + "description": "Deprecated: use `appContext.resourceUri` instead.", "type": [ "string", "null" @@ -1439,6 +1500,38 @@ }, "title": "CollabAgentToolCallThreadItem" }, + { + "type": "object", + "required": [ + "agentPath", + "agentThreadId", + "id", + "kind", + "type" + ], + "properties": { + "agentPath": { + "type": "string" + }, + "agentThreadId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "$ref": "#/definitions/SubAgentActivityKind" + }, + "type": { + "type": "string", + "enum": [ + "subAgentActivity" + ], + "title": "SubAgentActivityThreadItemType" + } + }, + "title": "SubAgentActivityThreadItem" + }, { "type": "object", "required": [ @@ -1497,6 +1590,32 @@ }, "title": "ImageViewThreadItem" }, + { + "type": "object", + "required": [ + "durationMs", + "id", + "type" + ], + "properties": { + "durationMs": { + "type": "integer", + "format": "uint64", + "minimum": 0.0 + }, + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "sleep" + ], + "title": "SleepThreadItemType" + } + }, + "title": "SleepThreadItem" + }, { "type": "object", "required": [ @@ -1612,12 +1731,7 @@ ] }, "ThreadSource": { - "type": "string", - "enum": [ - "user", - "subagent", - "memory_consolidation" - ] + "type": "string" }, "ThreadStatus": { "oneOf": [ diff --git a/schemas/v2/ThreadSettingsUpdatedNotification.json b/schemas/v2/ThreadSettingsUpdatedNotification.json index 2459779..5c402fe 100644 --- a/schemas/v2/ThreadSettingsUpdatedNotification.json +++ b/schemas/v2/ThreadSettingsUpdatedNotification.json @@ -122,6 +122,15 @@ "default" ] }, + "MultiAgentMode": { + "description": "Controls whether the model receives multi-agent delegation instructions and, when it does, whether it should only spawn sub-agents after an explicit user request or may delegate proactively when doing so would help. `none` leaves the multi-agent tools available without injecting delegation instructions.", + "type": "string", + "enum": [ + "none", + "explicitRequestOnly", + "proactive" + ] + }, "NetworkAccess": { "type": "string", "enum": [ @@ -138,16 +147,9 @@ ] }, "ReasoningEffort": { - "description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning", + "description": "A non-empty reasoning effort value advertised by the model.", "type": "string", - "enum": [ - "none", - "minimal", - "low", - "medium", - "high", - "xhigh" - ] + "minLength": 1 }, "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", @@ -346,6 +348,16 @@ "modelProvider": { "type": "string" }, + "summary": { + "anyOf": [ + { + "$ref": "#/definitions/ReasoningSummary" + }, + { + "type": "null" + } + ] + }, "personality": { "anyOf": [ { @@ -364,16 +376,6 @@ "string", "null" ] - }, - "summary": { - "anyOf": [ - { - "$ref": "#/definitions/ReasoningSummary" - }, - { - "type": "null" - } - ] } } } diff --git a/schemas/v2/ThreadStartParams.json b/schemas/v2/ThreadStartParams.json index 4074b13..cdbbb43 100644 --- a/schemas/v2/ThreadStartParams.json +++ b/schemas/v2/ThreadStartParams.json @@ -49,6 +49,12 @@ "null" ] }, + "serviceName": { + "type": [ + "string", + "null" + ] + }, "sandbox": { "anyOf": [ { @@ -59,27 +65,21 @@ } ] }, - "threadSource": { - "description": "Optional client-supplied analytics source classification for this thread.", - "anyOf": [ - { - "$ref": "#/definitions/ThreadSource" - }, - { - "type": "null" - } - ] - }, "ephemeral": { "type": [ "boolean", "null" ] }, - "serviceTier": { - "type": [ - "string", - "null" + "threadSource": { + "description": "Optional client-supplied analytics source classification for this thread.", + "anyOf": [ + { + "$ref": "#/definitions/ThreadSource" + }, + { + "type": "null" + } ] }, "personality": { @@ -104,6 +104,12 @@ "null" ] }, + "serviceTier": { + "type": [ + "string", + "null" + ] + }, "sessionStartSource": { "anyOf": [ { @@ -113,12 +119,6 @@ "type": "null" } ] - }, - "serviceName": { - "type": [ - "string", - "null" - ] } }, "definitions": { @@ -185,31 +185,144 @@ } ] }, - "DynamicToolSpec": { - "type": "object", - "required": [ - "description", - "inputSchema", - "name" - ], - "properties": { - "deferLoading": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "inputSchema": true, - "name": { - "type": "string" - }, - "namespace": { - "type": [ - "string", - "null" - ] + "CapabilityRootLocation": { + "description": "Location used to resolve a selected capability root.", + "oneOf": [ + { + "description": "A path owned by an execution environment.", + "type": "object", + "required": [ + "environmentId", + "path", + "type" + ], + "properties": { + "environmentId": { + "type": "string" + }, + "path": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "environment" + ], + "title": "EnvironmentCapabilityRootLocationType" + } + }, + "title": "EnvironmentCapabilityRootLocation" } - } + ] + }, + "DynamicToolNamespaceTool": { + "oneOf": [ + { + "type": "object", + "required": [ + "description", + "inputSchema", + "name", + "type" + ], + "properties": { + "deferLoading": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "inputSchema": true, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "function" + ], + "title": "FunctionDynamicToolNamespaceToolType" + } + }, + "title": "FunctionDynamicToolNamespaceTool" + } + ] + }, + "DynamicToolSpec": { + "oneOf": [ + { + "type": "object", + "required": [ + "description", + "inputSchema", + "name", + "type" + ], + "properties": { + "deferLoading": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "inputSchema": true, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "function" + ], + "title": "FunctionDynamicToolSpecType" + } + }, + "title": "FunctionDynamicToolSpec" + }, + { + "type": "object", + "required": [ + "description", + "name", + "tools", + "type" + ], + "properties": { + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/definitions/DynamicToolNamespaceTool" + } + }, + "type": { + "type": "string", + "enum": [ + "namespace" + ], + "title": "NamespaceDynamicToolSpecType" + } + }, + "title": "NamespaceDynamicToolSpec" + } + ] + }, + "LegacyAppPathString": { + "type": "string" + }, + "MultiAgentMode": { + "description": "Controls whether the model receives multi-agent delegation instructions and, when it does, whether it should only spawn sub-agents after an explicit user request or may delegate proactively when doing so would help. `none` leaves the multi-agent tools available without injecting delegation instructions.", + "type": "string", + "enum": [ + "none", + "explicitRequestOnly", + "proactive" + ] }, "Personality": { "type": "string", @@ -227,13 +340,30 @@ "danger-full-access" ] }, + "SelectedCapabilityRoot": { + "description": "A user-selected root that can expose one or more runtime capabilities.", + "type": "object", + "required": [ + "id", + "location" + ], + "properties": { + "id": { + "description": "Stable identifier supplied by the capability selection platform.", + "type": "string" + }, + "location": { + "description": "Where the selected root can be resolved.", + "allOf": [ + { + "$ref": "#/definitions/CapabilityRootLocation" + } + ] + } + } + }, "ThreadSource": { - "type": "string", - "enum": [ - "user", - "subagent", - "memory_consolidation" - ] + "type": "string" }, "ThreadStartSource": { "type": "string", @@ -250,7 +380,7 @@ ], "properties": { "cwd": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" }, "environmentId": { "type": "string" diff --git a/schemas/v2/ThreadStartResponse.json b/schemas/v2/ThreadStartResponse.json index 63617b1..93bef9f 100644 --- a/schemas/v2/ThreadStartResponse.json +++ b/schemas/v2/ThreadStartResponse.json @@ -33,11 +33,11 @@ "$ref": "#/definitions/AbsolutePathBuf" }, "instructionSources": { - "description": "Instruction source files currently loaded for this thread.", + "description": "Environment-native paths to instruction source files currently loaded for this thread.", "default": [], "type": "array", "items": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } }, "model": { @@ -46,6 +46,9 @@ "modelProvider": { "type": "string" }, + "thread": { + "$ref": "#/definitions/Thread" + }, "reasoningEffort": { "anyOf": [ { @@ -56,9 +59,6 @@ } ] }, - "thread": { - "$ref": "#/definitions/Thread" - }, "sandbox": { "description": "Legacy sandbox policy retained for compatibility. Experimental clients should prefer `activePermissionProfile` for profile provenance.", "allOf": [ @@ -598,10 +598,38 @@ "ImageDetail": { "type": "string", "enum": [ + "auto", + "low", "high", "original" ] }, + "LegacyAppPathString": { + "type": "string" + }, + "McpToolCallAppContext": { + "type": "object", + "required": [ + "connectorId" + ], + "properties": { + "connectorId": { + "type": "string" + }, + "linkId": { + "type": [ + "string", + "null" + ] + }, + "resourceUri": { + "type": [ + "string", + "null" + ] + } + } + }, "McpToolCallError": { "type": "object", "required": [ @@ -702,6 +730,15 @@ } ] }, + "MultiAgentMode": { + "description": "Controls whether the model receives multi-agent delegation instructions and, when it does, whether it should only spawn sub-agents after an explicit user request or may delegate proactively when doing so would help. `none` leaves the multi-agent tools available without injecting delegation instructions.", + "type": "string", + "enum": [ + "none", + "explicitRequestOnly", + "proactive" + ] + }, "NetworkAccess": { "type": "string", "enum": [ @@ -784,16 +821,9 @@ ] }, "ReasoningEffort": { - "description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning", + "description": "A non-empty reasoning effort value advertised by the model.", "type": "string", - "enum": [ - "none", - "minimal", - "low", - "medium", - "high", - "xhigh" - ] + "minLength": 1 }, "SandboxPolicy": { "oneOf": [ @@ -934,6 +964,14 @@ } ] }, + "SubAgentActivityKind": { + "type": "string", + "enum": [ + "started", + "interacted", + "interrupted" + ] + }, "SubAgentSource": { "oneOf": [ { @@ -1117,6 +1155,13 @@ "null" ] }, + "parentThreadId": { + "description": "The ID of the parent thread. This will only be set if this thread is a subagent.", + "type": [ + "string", + "null" + ] + }, "path": { "description": "[UNSTABLE] Path to the thread on disk.", "type": [ @@ -1128,6 +1173,14 @@ "description": "Usually the first user message in the thread, if available.", "type": "string" }, + "recencyAt": { + "description": "Unix timestamp (in seconds) used for thread recency ordering.", + "type": [ + "integer", + "null" + ], + "format": "int64" + }, "sessionId": { "description": "Session id shared by threads that belong to the same session tree.", "type": "string" @@ -1193,6 +1246,12 @@ "type" ], "properties": { + "clientId": { + "type": [ + "string", + "null" + ] + }, "content": { "type": "array", "items": { @@ -1377,7 +1436,7 @@ "description": "The command's working directory.", "allOf": [ { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } ] }, @@ -1470,6 +1529,16 @@ "type" ], "properties": { + "appContext": { + "anyOf": [ + { + "$ref": "#/definitions/McpToolCallAppContext" + }, + { + "type": "null" + } + ] + }, "arguments": true, "durationMs": { "description": "The duration of the MCP tool call in milliseconds.", @@ -1493,6 +1562,7 @@ "type": "string" }, "mcpAppResourceUri": { + "description": "Deprecated: use `appContext.resourceUri` instead.", "type": [ "string", "null" @@ -1677,6 +1747,38 @@ }, "title": "CollabAgentToolCallThreadItem" }, + { + "type": "object", + "required": [ + "agentPath", + "agentThreadId", + "id", + "kind", + "type" + ], + "properties": { + "agentPath": { + "type": "string" + }, + "agentThreadId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "$ref": "#/definitions/SubAgentActivityKind" + }, + "type": { + "type": "string", + "enum": [ + "subAgentActivity" + ], + "title": "SubAgentActivityThreadItemType" + } + }, + "title": "SubAgentActivityThreadItem" + }, { "type": "object", "required": [ @@ -1735,6 +1837,32 @@ }, "title": "ImageViewThreadItem" }, + { + "type": "object", + "required": [ + "durationMs", + "id", + "type" + ], + "properties": { + "durationMs": { + "type": "integer", + "format": "uint64", + "minimum": 0.0 + }, + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "sleep" + ], + "title": "SleepThreadItemType" + } + }, + "title": "SleepThreadItem" + }, { "type": "object", "required": [ @@ -1850,12 +1978,7 @@ ] }, "ThreadSource": { - "type": "string", - "enum": [ - "user", - "subagent", - "memory_consolidation" - ] + "type": "string" }, "ThreadStatus": { "oneOf": [ diff --git a/schemas/v2/ThreadStartedNotification.json b/schemas/v2/ThreadStartedNotification.json index fa82ed8..d60393e 100644 --- a/schemas/v2/ThreadStartedNotification.json +++ b/schemas/v2/ThreadStartedNotification.json @@ -461,10 +461,38 @@ "ImageDetail": { "type": "string", "enum": [ + "auto", + "low", "high", "original" ] }, + "LegacyAppPathString": { + "type": "string" + }, + "McpToolCallAppContext": { + "type": "object", + "required": [ + "connectorId" + ], + "properties": { + "connectorId": { + "type": "string" + }, + "linkId": { + "type": [ + "string", + "null" + ] + }, + "resourceUri": { + "type": [ + "string", + "null" + ] + } + } + }, "McpToolCallError": { "type": "object", "required": [ @@ -640,16 +668,9 @@ ] }, "ReasoningEffort": { - "description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning", + "description": "A non-empty reasoning effort value advertised by the model.", "type": "string", - "enum": [ - "none", - "minimal", - "low", - "medium", - "high", - "xhigh" - ] + "minLength": 1 }, "SessionSource": { "oneOf": [ @@ -691,6 +712,14 @@ } ] }, + "SubAgentActivityKind": { + "type": "string", + "enum": [ + "started", + "interacted", + "interrupted" + ] + }, "SubAgentSource": { "oneOf": [ { @@ -874,6 +903,13 @@ "null" ] }, + "parentThreadId": { + "description": "The ID of the parent thread. This will only be set if this thread is a subagent.", + "type": [ + "string", + "null" + ] + }, "path": { "description": "[UNSTABLE] Path to the thread on disk.", "type": [ @@ -885,6 +921,14 @@ "description": "Usually the first user message in the thread, if available.", "type": "string" }, + "recencyAt": { + "description": "Unix timestamp (in seconds) used for thread recency ordering.", + "type": [ + "integer", + "null" + ], + "format": "int64" + }, "sessionId": { "description": "Session id shared by threads that belong to the same session tree.", "type": "string" @@ -950,6 +994,12 @@ "type" ], "properties": { + "clientId": { + "type": [ + "string", + "null" + ] + }, "content": { "type": "array", "items": { @@ -1134,7 +1184,7 @@ "description": "The command's working directory.", "allOf": [ { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } ] }, @@ -1227,6 +1277,16 @@ "type" ], "properties": { + "appContext": { + "anyOf": [ + { + "$ref": "#/definitions/McpToolCallAppContext" + }, + { + "type": "null" + } + ] + }, "arguments": true, "durationMs": { "description": "The duration of the MCP tool call in milliseconds.", @@ -1250,6 +1310,7 @@ "type": "string" }, "mcpAppResourceUri": { + "description": "Deprecated: use `appContext.resourceUri` instead.", "type": [ "string", "null" @@ -1434,6 +1495,38 @@ }, "title": "CollabAgentToolCallThreadItem" }, + { + "type": "object", + "required": [ + "agentPath", + "agentThreadId", + "id", + "kind", + "type" + ], + "properties": { + "agentPath": { + "type": "string" + }, + "agentThreadId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "$ref": "#/definitions/SubAgentActivityKind" + }, + "type": { + "type": "string", + "enum": [ + "subAgentActivity" + ], + "title": "SubAgentActivityThreadItemType" + } + }, + "title": "SubAgentActivityThreadItem" + }, { "type": "object", "required": [ @@ -1492,6 +1585,32 @@ }, "title": "ImageViewThreadItem" }, + { + "type": "object", + "required": [ + "durationMs", + "id", + "type" + ], + "properties": { + "durationMs": { + "type": "integer", + "format": "uint64", + "minimum": 0.0 + }, + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "sleep" + ], + "title": "SleepThreadItemType" + } + }, + "title": "SleepThreadItem" + }, { "type": "object", "required": [ @@ -1607,12 +1726,7 @@ ] }, "ThreadSource": { - "type": "string", - "enum": [ - "user", - "subagent", - "memory_consolidation" - ] + "type": "string" }, "ThreadStatus": { "oneOf": [ diff --git a/schemas/v2/ThreadUnarchiveResponse.json b/schemas/v2/ThreadUnarchiveResponse.json index dacf0d9..979c4da 100644 --- a/schemas/v2/ThreadUnarchiveResponse.json +++ b/schemas/v2/ThreadUnarchiveResponse.json @@ -461,10 +461,38 @@ "ImageDetail": { "type": "string", "enum": [ + "auto", + "low", "high", "original" ] }, + "LegacyAppPathString": { + "type": "string" + }, + "McpToolCallAppContext": { + "type": "object", + "required": [ + "connectorId" + ], + "properties": { + "connectorId": { + "type": "string" + }, + "linkId": { + "type": [ + "string", + "null" + ] + }, + "resourceUri": { + "type": [ + "string", + "null" + ] + } + } + }, "McpToolCallError": { "type": "object", "required": [ @@ -640,16 +668,9 @@ ] }, "ReasoningEffort": { - "description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning", + "description": "A non-empty reasoning effort value advertised by the model.", "type": "string", - "enum": [ - "none", - "minimal", - "low", - "medium", - "high", - "xhigh" - ] + "minLength": 1 }, "SessionSource": { "oneOf": [ @@ -691,6 +712,14 @@ } ] }, + "SubAgentActivityKind": { + "type": "string", + "enum": [ + "started", + "interacted", + "interrupted" + ] + }, "SubAgentSource": { "oneOf": [ { @@ -874,6 +903,13 @@ "null" ] }, + "parentThreadId": { + "description": "The ID of the parent thread. This will only be set if this thread is a subagent.", + "type": [ + "string", + "null" + ] + }, "path": { "description": "[UNSTABLE] Path to the thread on disk.", "type": [ @@ -885,6 +921,14 @@ "description": "Usually the first user message in the thread, if available.", "type": "string" }, + "recencyAt": { + "description": "Unix timestamp (in seconds) used for thread recency ordering.", + "type": [ + "integer", + "null" + ], + "format": "int64" + }, "sessionId": { "description": "Session id shared by threads that belong to the same session tree.", "type": "string" @@ -950,6 +994,12 @@ "type" ], "properties": { + "clientId": { + "type": [ + "string", + "null" + ] + }, "content": { "type": "array", "items": { @@ -1134,7 +1184,7 @@ "description": "The command's working directory.", "allOf": [ { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } ] }, @@ -1227,6 +1277,16 @@ "type" ], "properties": { + "appContext": { + "anyOf": [ + { + "$ref": "#/definitions/McpToolCallAppContext" + }, + { + "type": "null" + } + ] + }, "arguments": true, "durationMs": { "description": "The duration of the MCP tool call in milliseconds.", @@ -1250,6 +1310,7 @@ "type": "string" }, "mcpAppResourceUri": { + "description": "Deprecated: use `appContext.resourceUri` instead.", "type": [ "string", "null" @@ -1434,6 +1495,38 @@ }, "title": "CollabAgentToolCallThreadItem" }, + { + "type": "object", + "required": [ + "agentPath", + "agentThreadId", + "id", + "kind", + "type" + ], + "properties": { + "agentPath": { + "type": "string" + }, + "agentThreadId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "$ref": "#/definitions/SubAgentActivityKind" + }, + "type": { + "type": "string", + "enum": [ + "subAgentActivity" + ], + "title": "SubAgentActivityThreadItemType" + } + }, + "title": "SubAgentActivityThreadItem" + }, { "type": "object", "required": [ @@ -1492,6 +1585,32 @@ }, "title": "ImageViewThreadItem" }, + { + "type": "object", + "required": [ + "durationMs", + "id", + "type" + ], + "properties": { + "durationMs": { + "type": "integer", + "format": "uint64", + "minimum": 0.0 + }, + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "sleep" + ], + "title": "SleepThreadItemType" + } + }, + "title": "SleepThreadItem" + }, { "type": "object", "required": [ @@ -1607,12 +1726,7 @@ ] }, "ThreadSource": { - "type": "string", - "enum": [ - "user", - "subagent", - "memory_consolidation" - ] + "type": "string" }, "ThreadStatus": { "oneOf": [ diff --git a/schemas/v2/TurnCompletedNotification.json b/schemas/v2/TurnCompletedNotification.json index 0e9f6c1..7c46c48 100644 --- a/schemas/v2/TurnCompletedNotification.json +++ b/schemas/v2/TurnCompletedNotification.json @@ -439,10 +439,38 @@ "ImageDetail": { "type": "string", "enum": [ + "auto", + "low", "high", "original" ] }, + "LegacyAppPathString": { + "type": "string" + }, + "McpToolCallAppContext": { + "type": "object", + "required": [ + "connectorId" + ], + "properties": { + "connectorId": { + "type": "string" + }, + "linkId": { + "type": [ + "string", + "null" + ] + }, + "resourceUri": { + "type": [ + "string", + "null" + ] + } + } + }, "McpToolCallError": { "type": "object", "required": [ @@ -618,15 +646,16 @@ ] }, "ReasoningEffort": { - "description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning", + "description": "A non-empty reasoning effort value advertised by the model.", + "type": "string", + "minLength": 1 + }, + "SubAgentActivityKind": { "type": "string", "enum": [ - "none", - "minimal", - "low", - "medium", - "high", - "xhigh" + "started", + "interacted", + "interrupted" ] }, "TextElement": { @@ -662,6 +691,12 @@ "type" ], "properties": { + "clientId": { + "type": [ + "string", + "null" + ] + }, "content": { "type": "array", "items": { @@ -846,7 +881,7 @@ "description": "The command's working directory.", "allOf": [ { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } ] }, @@ -939,6 +974,16 @@ "type" ], "properties": { + "appContext": { + "anyOf": [ + { + "$ref": "#/definitions/McpToolCallAppContext" + }, + { + "type": "null" + } + ] + }, "arguments": true, "durationMs": { "description": "The duration of the MCP tool call in milliseconds.", @@ -962,6 +1007,7 @@ "type": "string" }, "mcpAppResourceUri": { + "description": "Deprecated: use `appContext.resourceUri` instead.", "type": [ "string", "null" @@ -1146,6 +1192,38 @@ }, "title": "CollabAgentToolCallThreadItem" }, + { + "type": "object", + "required": [ + "agentPath", + "agentThreadId", + "id", + "kind", + "type" + ], + "properties": { + "agentPath": { + "type": "string" + }, + "agentThreadId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "$ref": "#/definitions/SubAgentActivityKind" + }, + "type": { + "type": "string", + "enum": [ + "subAgentActivity" + ], + "title": "SubAgentActivityThreadItemType" + } + }, + "title": "SubAgentActivityThreadItem" + }, { "type": "object", "required": [ @@ -1204,6 +1282,32 @@ }, "title": "ImageViewThreadItem" }, + { + "type": "object", + "required": [ + "durationMs", + "id", + "type" + ], + "properties": { + "durationMs": { + "type": "integer", + "format": "uint64", + "minimum": 0.0 + }, + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "sleep" + ], + "title": "SleepThreadItemType" + } + }, + "title": "SleepThreadItem" + }, { "type": "object", "required": [ diff --git a/schemas/v2/TurnModerationMetadataNotification.json b/schemas/v2/TurnModerationMetadataNotification.json new file mode 100644 index 0000000..07d8ec3 --- /dev/null +++ b/schemas/v2/TurnModerationMetadataNotification.json @@ -0,0 +1,19 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "TurnModerationMetadataNotification", + "type": "object", + "required": [ + "metadata", + "threadId", + "turnId" + ], + "properties": { + "metadata": true, + "threadId": { + "type": "string" + }, + "turnId": { + "type": "string" + } + } +} \ No newline at end of file diff --git a/schemas/v2/TurnStartParams.json b/schemas/v2/TurnStartParams.json index b89b998..2a4f6c1 100644 --- a/schemas/v2/TurnStartParams.json +++ b/schemas/v2/TurnStartParams.json @@ -7,6 +7,9 @@ "threadId" ], "properties": { + "threadId": { + "type": "string" + }, "approvalPolicy": { "description": "Override the approval policy for this turn and subsequent turns.", "anyOf": [ @@ -29,6 +32,12 @@ } ] }, + "clientUserMessageId": { + "type": [ + "string", + "null" + ] + }, "serviceTier": { "description": "Override the service tier for this turn and subsequent turns.", "type": [ @@ -54,8 +63,16 @@ } ] }, - "threadId": { - "type": "string" + "personality": { + "description": "Override the personality for this turn and subsequent turns.", + "anyOf": [ + { + "$ref": "#/definitions/Personality" + }, + { + "type": "null" + } + ] }, "input": { "type": "array", @@ -70,6 +87,17 @@ "null" ] }, + "summary": { + "description": "Override the reasoning summary for this turn and subsequent turns.", + "anyOf": [ + { + "$ref": "#/definitions/ReasoningSummary" + }, + { + "type": "null" + } + ] + }, "outputSchema": { "description": "Optional JSON Schema used to constrain the final assistant message for this turn." }, @@ -83,28 +111,6 @@ "type": "null" } ] - }, - "personality": { - "description": "Override the personality for this turn and subsequent turns.", - "anyOf": [ - { - "$ref": "#/definitions/Personality" - }, - { - "type": "null" - } - ] - }, - "summary": { - "description": "Override the reasoning summary for this turn and subsequent turns.", - "anyOf": [ - { - "$ref": "#/definitions/ReasoningSummary" - }, - { - "type": "null" - } - ] } }, "definitions": { @@ -112,6 +118,28 @@ "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": { + "type": "object", + "required": [ + "kind", + "value" + ], + "properties": { + "kind": { + "$ref": "#/definitions/AdditionalContextKind" + }, + "value": { + "type": "string" + } + } + }, + "AdditionalContextKind": { + "type": "string", + "enum": [ + "untrusted", + "application" + ] + }, "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", @@ -209,10 +237,15 @@ "ImageDetail": { "type": "string", "enum": [ + "auto", + "low", "high", "original" ] }, + "LegacyAppPathString": { + "type": "string" + }, "ModeKind": { "description": "Initial collaboration mode to use when the TUI starts.", "type": "string", @@ -221,6 +254,15 @@ "default" ] }, + "MultiAgentMode": { + "description": "Controls whether the model receives multi-agent delegation instructions and, when it does, whether it should only spawn sub-agents after an explicit user request or may delegate proactively when doing so would help. `none` leaves the multi-agent tools available without injecting delegation instructions.", + "type": "string", + "enum": [ + "none", + "explicitRequestOnly", + "proactive" + ] + }, "NetworkAccess": { "type": "string", "enum": [ @@ -237,16 +279,9 @@ ] }, "ReasoningEffort": { - "description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning", + "description": "A non-empty reasoning effort value advertised by the model.", "type": "string", - "enum": [ - "none", - "minimal", - "low", - "medium", - "high", - "xhigh" - ] + "minLength": 1 }, "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", @@ -426,7 +461,7 @@ ], "properties": { "cwd": { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" }, "environmentId": { "type": "string" diff --git a/schemas/v2/TurnStartResponse.json b/schemas/v2/TurnStartResponse.json index bdf1f0d..91e569d 100644 --- a/schemas/v2/TurnStartResponse.json +++ b/schemas/v2/TurnStartResponse.json @@ -435,10 +435,38 @@ "ImageDetail": { "type": "string", "enum": [ + "auto", + "low", "high", "original" ] }, + "LegacyAppPathString": { + "type": "string" + }, + "McpToolCallAppContext": { + "type": "object", + "required": [ + "connectorId" + ], + "properties": { + "connectorId": { + "type": "string" + }, + "linkId": { + "type": [ + "string", + "null" + ] + }, + "resourceUri": { + "type": [ + "string", + "null" + ] + } + } + }, "McpToolCallError": { "type": "object", "required": [ @@ -614,15 +642,16 @@ ] }, "ReasoningEffort": { - "description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning", + "description": "A non-empty reasoning effort value advertised by the model.", + "type": "string", + "minLength": 1 + }, + "SubAgentActivityKind": { "type": "string", "enum": [ - "none", - "minimal", - "low", - "medium", - "high", - "xhigh" + "started", + "interacted", + "interrupted" ] }, "TextElement": { @@ -658,6 +687,12 @@ "type" ], "properties": { + "clientId": { + "type": [ + "string", + "null" + ] + }, "content": { "type": "array", "items": { @@ -842,7 +877,7 @@ "description": "The command's working directory.", "allOf": [ { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } ] }, @@ -935,6 +970,16 @@ "type" ], "properties": { + "appContext": { + "anyOf": [ + { + "$ref": "#/definitions/McpToolCallAppContext" + }, + { + "type": "null" + } + ] + }, "arguments": true, "durationMs": { "description": "The duration of the MCP tool call in milliseconds.", @@ -958,6 +1003,7 @@ "type": "string" }, "mcpAppResourceUri": { + "description": "Deprecated: use `appContext.resourceUri` instead.", "type": [ "string", "null" @@ -1142,6 +1188,38 @@ }, "title": "CollabAgentToolCallThreadItem" }, + { + "type": "object", + "required": [ + "agentPath", + "agentThreadId", + "id", + "kind", + "type" + ], + "properties": { + "agentPath": { + "type": "string" + }, + "agentThreadId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "$ref": "#/definitions/SubAgentActivityKind" + }, + "type": { + "type": "string", + "enum": [ + "subAgentActivity" + ], + "title": "SubAgentActivityThreadItemType" + } + }, + "title": "SubAgentActivityThreadItem" + }, { "type": "object", "required": [ @@ -1200,6 +1278,32 @@ }, "title": "ImageViewThreadItem" }, + { + "type": "object", + "required": [ + "durationMs", + "id", + "type" + ], + "properties": { + "durationMs": { + "type": "integer", + "format": "uint64", + "minimum": 0.0 + }, + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "sleep" + ], + "title": "SleepThreadItemType" + } + }, + "title": "SleepThreadItem" + }, { "type": "object", "required": [ diff --git a/schemas/v2/TurnStartedNotification.json b/schemas/v2/TurnStartedNotification.json index 18d4722..1c205c6 100644 --- a/schemas/v2/TurnStartedNotification.json +++ b/schemas/v2/TurnStartedNotification.json @@ -439,10 +439,38 @@ "ImageDetail": { "type": "string", "enum": [ + "auto", + "low", "high", "original" ] }, + "LegacyAppPathString": { + "type": "string" + }, + "McpToolCallAppContext": { + "type": "object", + "required": [ + "connectorId" + ], + "properties": { + "connectorId": { + "type": "string" + }, + "linkId": { + "type": [ + "string", + "null" + ] + }, + "resourceUri": { + "type": [ + "string", + "null" + ] + } + } + }, "McpToolCallError": { "type": "object", "required": [ @@ -618,15 +646,16 @@ ] }, "ReasoningEffort": { - "description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning", + "description": "A non-empty reasoning effort value advertised by the model.", + "type": "string", + "minLength": 1 + }, + "SubAgentActivityKind": { "type": "string", "enum": [ - "none", - "minimal", - "low", - "medium", - "high", - "xhigh" + "started", + "interacted", + "interrupted" ] }, "TextElement": { @@ -662,6 +691,12 @@ "type" ], "properties": { + "clientId": { + "type": [ + "string", + "null" + ] + }, "content": { "type": "array", "items": { @@ -846,7 +881,7 @@ "description": "The command's working directory.", "allOf": [ { - "$ref": "#/definitions/AbsolutePathBuf" + "$ref": "#/definitions/LegacyAppPathString" } ] }, @@ -939,6 +974,16 @@ "type" ], "properties": { + "appContext": { + "anyOf": [ + { + "$ref": "#/definitions/McpToolCallAppContext" + }, + { + "type": "null" + } + ] + }, "arguments": true, "durationMs": { "description": "The duration of the MCP tool call in milliseconds.", @@ -962,6 +1007,7 @@ "type": "string" }, "mcpAppResourceUri": { + "description": "Deprecated: use `appContext.resourceUri` instead.", "type": [ "string", "null" @@ -1146,6 +1192,38 @@ }, "title": "CollabAgentToolCallThreadItem" }, + { + "type": "object", + "required": [ + "agentPath", + "agentThreadId", + "id", + "kind", + "type" + ], + "properties": { + "agentPath": { + "type": "string" + }, + "agentThreadId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "kind": { + "$ref": "#/definitions/SubAgentActivityKind" + }, + "type": { + "type": "string", + "enum": [ + "subAgentActivity" + ], + "title": "SubAgentActivityThreadItemType" + } + }, + "title": "SubAgentActivityThreadItem" + }, { "type": "object", "required": [ @@ -1204,6 +1282,32 @@ }, "title": "ImageViewThreadItem" }, + { + "type": "object", + "required": [ + "durationMs", + "id", + "type" + ], + "properties": { + "durationMs": { + "type": "integer", + "format": "uint64", + "minimum": 0.0 + }, + "id": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "sleep" + ], + "title": "SleepThreadItemType" + } + }, + "title": "SleepThreadItem" + }, { "type": "object", "required": [ diff --git a/schemas/v2/TurnSteerParams.json b/schemas/v2/TurnSteerParams.json index f295026..a34ea37 100644 --- a/schemas/v2/TurnSteerParams.json +++ b/schemas/v2/TurnSteerParams.json @@ -8,6 +8,15 @@ "threadId" ], "properties": { + "threadId": { + "type": "string" + }, + "clientUserMessageId": { + "type": [ + "string", + "null" + ] + }, "expectedTurnId": { "description": "Required active turn id precondition. The request fails when it does not match the currently active turn.", "type": "string" @@ -17,12 +26,31 @@ "items": { "$ref": "#/definitions/UserInput" } - }, - "threadId": { - "type": "string" } }, "definitions": { + "AdditionalContextEntry": { + "type": "object", + "required": [ + "kind", + "value" + ], + "properties": { + "kind": { + "$ref": "#/definitions/AdditionalContextKind" + }, + "value": { + "type": "string" + } + } + }, + "AdditionalContextKind": { + "type": "string", + "enum": [ + "untrusted", + "application" + ] + }, "ByteRange": { "type": "object", "required": [ @@ -45,6 +73,8 @@ "ImageDetail": { "type": "string", "enum": [ + "auto", + "low", "high", "original" ]