From 8e74bb0d2313da5bb2ed2afe0f8b87e6fce03d94 Mon Sep 17 00:00:00 2001 From: "devin-ai-integration[bot]" <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Thu, 24 Sep 2026 01:28:34 +0000 Subject: [PATCH] fix(proxy): document request body and response schemas for the Responses API in OpenAPI (#42802) * fix(proxy): document responses API request and response schemas in openapi Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * fix(proxy): namespace colliding openapi defs instead of overwriting existing components Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * chore(proxy): regenerate lazy openapi snapshot and dashboard schema types Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * fix(proxy): require model and input in responses schema, document event stream, fix def collision refs Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * fix(proxy): mark responses request fields readonly required Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * fix(proxy): reuse existing OpenAPI components when a $defs entry has the same shape Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --------- Co-authored-by: kerry Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- litellm/proxy/_lazy_openapi_snapshot.json | 6942 ++++++++++++++++- .../proxy/common_utils/custom_openapi_spec.py | 119 +- .../proxy/response_api_endpoints/endpoints.py | 27 + litellm/types/llms/openai.py | 4 +- .../test_responses_openapi_schema.py | 50 +- .../common_utils/test_custom_openapi_spec.py | 198 +- .../response_api_endpoints/test_endpoints.py | 35 + ui/litellm-dashboard/src/lib/http/schema.d.ts | 4362 ++++++++++- 8 files changed, 11654 insertions(+), 83 deletions(-) diff --git a/litellm/proxy/_lazy_openapi_snapshot.json b/litellm/proxy/_lazy_openapi_snapshot.json index 71dbf0da239..0b43c3864ab 100644 --- a/litellm/proxy/_lazy_openapi_snapshot.json +++ b/litellm/proxy/_lazy_openapi_snapshot.json @@ -16183,6 +16183,673 @@ "llm_passthrough": { "components": { "schemas": { + "AcknowledgedSafetyCheck": { + "additionalProperties": true, + "description": "A pending safety check for the computer call.", + "properties": { + "code": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Code" + }, + "id": { + "title": "Id", + "type": "string" + }, + "message": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Message" + } + }, + "required": [ + "id" + ], + "title": "AcknowledgedSafetyCheck", + "type": "object" + }, + "Action": { + "additionalProperties": true, + "description": "The shell commands and limits that describe how to run the tool call.", + "properties": { + "commands": { + "items": { + "type": "string" + }, + "title": "Commands", + "type": "array" + }, + "max_output_length": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Max Output Length" + }, + "timeout_ms": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Timeout Ms" + } + }, + "required": [ + "commands" + ], + "title": "Action", + "type": "object" + }, + "ActionClick": { + "additionalProperties": true, + "description": "A click action.", + "properties": { + "button": { + "enum": [ + "left", + "right", + "wheel", + "back", + "forward" + ], + "title": "Button", + "type": "string" + }, + "keys": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Keys" + }, + "type": { + "const": "click", + "title": "Type", + "type": "string" + }, + "x": { + "title": "X", + "type": "integer" + }, + "y": { + "title": "Y", + "type": "integer" + } + }, + "required": [ + "button", + "type", + "x", + "y" + ], + "title": "ActionClick", + "type": "object" + }, + "ActionDoubleClick": { + "additionalProperties": true, + "description": "A double click action.", + "properties": { + "keys": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Keys" + }, + "type": { + "const": "double_click", + "title": "Type", + "type": "string" + }, + "x": { + "title": "X", + "type": "integer" + }, + "y": { + "title": "Y", + "type": "integer" + } + }, + "required": [ + "type", + "x", + "y" + ], + "title": "ActionDoubleClick", + "type": "object" + }, + "ActionDrag": { + "additionalProperties": true, + "description": "A drag action.", + "properties": { + "keys": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Keys" + }, + "path": { + "items": { + "$ref": "#/components/schemas/ActionDragPath" + }, + "title": "Path", + "type": "array" + }, + "type": { + "const": "drag", + "title": "Type", + "type": "string" + } + }, + "required": [ + "path", + "type" + ], + "title": "ActionDrag", + "type": "object" + }, + "ActionDragPath": { + "additionalProperties": true, + "description": "An x/y coordinate pair, e.g. `{ x: 100, y: 200 }`.", + "properties": { + "x": { + "title": "X", + "type": "integer" + }, + "y": { + "title": "Y", + "type": "integer" + } + }, + "required": [ + "x", + "y" + ], + "title": "ActionDragPath", + "type": "object" + }, + "ActionFind": { + "additionalProperties": true, + "description": "Action type \"find_in_page\": Searches for a pattern within a loaded page.", + "properties": { + "pattern": { + "title": "Pattern", + "type": "string" + }, + "type": { + "const": "find_in_page", + "title": "Type", + "type": "string" + }, + "url": { + "title": "Url", + "type": "string" + } + }, + "required": [ + "pattern", + "type", + "url" + ], + "title": "ActionFind", + "type": "object" + }, + "ActionKeypress": { + "additionalProperties": true, + "description": "A collection of keypresses the model would like to perform.", + "properties": { + "keys": { + "items": { + "type": "string" + }, + "title": "Keys", + "type": "array" + }, + "type": { + "const": "keypress", + "title": "Type", + "type": "string" + } + }, + "required": [ + "keys", + "type" + ], + "title": "ActionKeypress", + "type": "object" + }, + "ActionMove": { + "additionalProperties": true, + "description": "A mouse move action.", + "properties": { + "keys": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Keys" + }, + "type": { + "const": "move", + "title": "Type", + "type": "string" + }, + "x": { + "title": "X", + "type": "integer" + }, + "y": { + "title": "Y", + "type": "integer" + } + }, + "required": [ + "type", + "x", + "y" + ], + "title": "ActionMove", + "type": "object" + }, + "ActionOpenPage": { + "additionalProperties": true, + "description": "Action type \"open_page\" - Opens a specific URL from search results.", + "properties": { + "type": { + "const": "open_page", + "title": "Type", + "type": "string" + }, + "url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Url" + } + }, + "required": [ + "type" + ], + "title": "ActionOpenPage", + "type": "object" + }, + "ActionScreenshot": { + "additionalProperties": true, + "description": "A screenshot action.", + "properties": { + "type": { + "const": "screenshot", + "title": "Type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "ActionScreenshot", + "type": "object" + }, + "ActionScroll": { + "additionalProperties": true, + "description": "A scroll action.", + "properties": { + "keys": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Keys" + }, + "scroll_x": { + "title": "Scroll X", + "type": "integer" + }, + "scroll_y": { + "title": "Scroll Y", + "type": "integer" + }, + "type": { + "const": "scroll", + "title": "Type", + "type": "string" + }, + "x": { + "title": "X", + "type": "integer" + }, + "y": { + "title": "Y", + "type": "integer" + } + }, + "required": [ + "scroll_x", + "scroll_y", + "type", + "x", + "y" + ], + "title": "ActionScroll", + "type": "object" + }, + "ActionSearch": { + "additionalProperties": true, + "description": "Action type \"search\" - Performs a web search query.", + "properties": { + "queries": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Queries" + }, + "query": { + "title": "Query", + "type": "string" + }, + "sources": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/ActionSearchSource" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Sources" + }, + "type": { + "const": "search", + "title": "Type", + "type": "string" + } + }, + "required": [ + "query", + "type" + ], + "title": "ActionSearch", + "type": "object" + }, + "ActionSearchSource": { + "additionalProperties": true, + "description": "A source used in the search.", + "properties": { + "type": { + "const": "url", + "title": "Type", + "type": "string" + }, + "url": { + "title": "Url", + "type": "string" + } + }, + "required": [ + "type", + "url" + ], + "title": "ActionSearchSource", + "type": "object" + }, + "ActionType": { + "additionalProperties": true, + "description": "An action to type in text.", + "properties": { + "text": { + "title": "Text", + "type": "string" + }, + "type": { + "const": "type", + "title": "Type", + "type": "string" + } + }, + "required": [ + "text", + "type" + ], + "title": "ActionType", + "type": "object" + }, + "ActionWait": { + "additionalProperties": true, + "description": "A wait action.", + "properties": { + "type": { + "const": "wait", + "title": "Type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "ActionWait", + "type": "object" + }, + "AnnotationContainerFileCitation": { + "additionalProperties": true, + "description": "A citation for a container file used to generate a model response.", + "properties": { + "container_id": { + "title": "Container Id", + "type": "string" + }, + "end_index": { + "title": "End Index", + "type": "integer" + }, + "file_id": { + "title": "File Id", + "type": "string" + }, + "filename": { + "title": "Filename", + "type": "string" + }, + "start_index": { + "title": "Start Index", + "type": "integer" + }, + "type": { + "const": "container_file_citation", + "title": "Type", + "type": "string" + } + }, + "required": [ + "container_id", + "end_index", + "file_id", + "filename", + "start_index", + "type" + ], + "title": "AnnotationContainerFileCitation", + "type": "object" + }, + "AnnotationFileCitation": { + "additionalProperties": true, + "description": "A citation to a file.", + "properties": { + "file_id": { + "title": "File Id", + "type": "string" + }, + "filename": { + "title": "Filename", + "type": "string" + }, + "index": { + "title": "Index", + "type": "integer" + }, + "type": { + "const": "file_citation", + "title": "Type", + "type": "string" + } + }, + "required": [ + "file_id", + "filename", + "index", + "type" + ], + "title": "AnnotationFileCitation", + "type": "object" + }, + "AnnotationFilePath": { + "additionalProperties": true, + "description": "A path to a file.", + "properties": { + "file_id": { + "title": "File Id", + "type": "string" + }, + "index": { + "title": "Index", + "type": "integer" + }, + "type": { + "const": "file_path", + "title": "Type", + "type": "string" + } + }, + "required": [ + "file_id", + "index", + "type" + ], + "title": "AnnotationFilePath", + "type": "object" + }, + "AnnotationURLCitation": { + "additionalProperties": true, + "description": "A citation for a web resource used to generate a model response.", + "properties": { + "end_index": { + "title": "End Index", + "type": "integer" + }, + "start_index": { + "title": "Start Index", + "type": "integer" + }, + "title": { + "title": "Title", + "type": "string" + }, + "type": { + "const": "url_citation", + "title": "Type", + "type": "string" + }, + "url": { + "title": "Url", + "type": "string" + } + }, + "required": [ + "end_index", + "start_index", + "title", + "type", + "url" + ], + "title": "AnnotationURLCitation", + "type": "object" + }, + "ApplyPatchTool": { + "additionalProperties": true, + "description": "Allows the assistant to create, delete, or update files using unified diffs.", + "properties": { + "type": { + "const": "apply_patch", + "title": "Type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "ApplyPatchTool", + "type": "object" + }, "Body_image_edit_api_openai_deployments__model__images_edits_post": { "properties": { "image": { @@ -16249,6 +16916,787 @@ "title": "Body_image_edit_api_openai_deployments__model__images_edits_post", "type": "object" }, + "CachedTokensDetails": { + "properties": { + "audio_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Audio Tokens" + }, + "image_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Image Tokens" + }, + "text_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Text Tokens" + } + }, + "title": "CachedTokensDetails", + "type": "object" + }, + "Click": { + "additionalProperties": true, + "description": "A click action.", + "properties": { + "button": { + "enum": [ + "left", + "right", + "wheel", + "back", + "forward" + ], + "title": "Button", + "type": "string" + }, + "keys": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Keys" + }, + "type": { + "const": "click", + "title": "Type", + "type": "string" + }, + "x": { + "title": "X", + "type": "integer" + }, + "y": { + "title": "Y", + "type": "integer" + } + }, + "required": [ + "button", + "type", + "x", + "y" + ], + "title": "Click", + "type": "object" + }, + "CodeInterpreter": { + "additionalProperties": true, + "description": "A tool that runs Python code to help generate a response to a prompt.", + "properties": { + "container": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/components/schemas/CodeInterpreterContainerCodeInterpreterToolAuto" + } + ], + "title": "Container" + }, + "type": { + "const": "code_interpreter", + "title": "Type", + "type": "string" + } + }, + "required": [ + "container", + "type" + ], + "title": "CodeInterpreter", + "type": "object" + }, + "CodeInterpreterContainerCodeInterpreterToolAuto": { + "additionalProperties": true, + "description": "Configuration for a code interpreter container.\n\nOptionally specify the IDs of the files to run the code on.", + "properties": { + "file_ids": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "File Ids" + }, + "memory_limit": { + "anyOf": [ + { + "enum": [ + "1g", + "4g", + "16g", + "64g" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Memory Limit" + }, + "network_policy": { + "anyOf": [ + { + "$ref": "#/components/schemas/ContainerNetworkPolicyDisabled" + }, + { + "$ref": "#/components/schemas/ContainerNetworkPolicyAllowlist" + }, + { + "type": "null" + } + ], + "title": "Network Policy" + }, + "type": { + "const": "auto", + "title": "Type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "CodeInterpreterContainerCodeInterpreterToolAuto", + "type": "object" + }, + "ComparisonFilter": { + "additionalProperties": true, + "description": "A filter used to compare a specified attribute key to a given value using a defined comparison operation.", + "properties": { + "key": { + "title": "Key", + "type": "string" + }, + "type": { + "enum": [ + "eq", + "ne", + "gt", + "gte", + "lt", + "lte", + "in", + "nin" + ], + "title": "Type", + "type": "string" + }, + "value": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "type": "array" + } + ], + "title": "Value" + } + }, + "required": [ + "key", + "type", + "value" + ], + "title": "ComparisonFilter", + "type": "object" + }, + "CompoundFilter": { + "additionalProperties": true, + "description": "Combine multiple filters using `and` or `or`.", + "properties": { + "filters": { + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/ComparisonFilter" + }, + {} + ] + }, + "title": "Filters", + "type": "array" + }, + "type": { + "enum": [ + "and", + "or" + ], + "title": "Type", + "type": "string" + } + }, + "required": [ + "filters", + "type" + ], + "title": "CompoundFilter", + "type": "object" + }, + "ComputerTool": { + "additionalProperties": true, + "description": "A tool that controls a virtual computer.\n\nLearn more about the [computer tool](https://platform.openai.com/docs/guides/tools-computer-use).", + "properties": { + "type": { + "const": "computer", + "title": "Type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "ComputerTool", + "type": "object" + }, + "ComputerUsePreviewTool": { + "additionalProperties": true, + "description": "A tool that controls a virtual computer.\n\nLearn more about the [computer tool](https://platform.openai.com/docs/guides/tools-computer-use).", + "properties": { + "display_height": { + "title": "Display Height", + "type": "integer" + }, + "display_width": { + "title": "Display Width", + "type": "integer" + }, + "environment": { + "enum": [ + "windows", + "mac", + "linux", + "ubuntu", + "browser" + ], + "title": "Environment", + "type": "string" + }, + "type": { + "const": "computer_use_preview", + "title": "Type", + "type": "string" + } + }, + "required": [ + "display_height", + "display_width", + "environment", + "type" + ], + "title": "ComputerUsePreviewTool", + "type": "object" + }, + "ContainerAuto": { + "additionalProperties": true, + "properties": { + "file_ids": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "File Ids" + }, + "memory_limit": { + "anyOf": [ + { + "enum": [ + "1g", + "4g", + "16g", + "64g" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Memory Limit" + }, + "network_policy": { + "anyOf": [ + { + "$ref": "#/components/schemas/ContainerNetworkPolicyDisabled" + }, + { + "$ref": "#/components/schemas/ContainerNetworkPolicyAllowlist" + }, + { + "type": "null" + } + ], + "title": "Network Policy" + }, + "skills": { + "anyOf": [ + { + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/SkillReference" + }, + { + "$ref": "#/components/schemas/InlineSkill" + } + ] + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Skills" + }, + "type": { + "const": "container_auto", + "title": "Type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "ContainerAuto", + "type": "object" + }, + "ContainerNetworkPolicyAllowlist": { + "additionalProperties": true, + "properties": { + "allowed_domains": { + "items": { + "type": "string" + }, + "title": "Allowed Domains", + "type": "array" + }, + "domain_secrets": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/ContainerNetworkPolicyDomainSecret" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Domain Secrets" + }, + "type": { + "const": "allowlist", + "title": "Type", + "type": "string" + } + }, + "required": [ + "allowed_domains", + "type" + ], + "title": "ContainerNetworkPolicyAllowlist", + "type": "object" + }, + "ContainerNetworkPolicyDisabled": { + "additionalProperties": true, + "properties": { + "type": { + "const": "disabled", + "title": "Type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "ContainerNetworkPolicyDisabled", + "type": "object" + }, + "ContainerNetworkPolicyDomainSecret": { + "additionalProperties": true, + "properties": { + "domain": { + "title": "Domain", + "type": "string" + }, + "name": { + "title": "Name", + "type": "string" + }, + "value": { + "title": "Value", + "type": "string" + } + }, + "required": [ + "domain", + "name", + "value" + ], + "title": "ContainerNetworkPolicyDomainSecret", + "type": "object" + }, + "ContainerReference": { + "additionalProperties": true, + "properties": { + "container_id": { + "title": "Container Id", + "type": "string" + }, + "type": { + "const": "container_reference", + "title": "Type", + "type": "string" + } + }, + "required": [ + "container_id", + "type" + ], + "title": "ContainerReference", + "type": "object" + }, + "Content": { + "additionalProperties": true, + "description": "Reasoning text from the model.", + "properties": { + "text": { + "title": "Text", + "type": "string" + }, + "type": { + "const": "reasoning_text", + "title": "Type", + "type": "string" + } + }, + "required": [ + "text", + "type" + ], + "title": "Content", + "type": "object" + }, + "CustomTool": { + "additionalProperties": true, + "description": "A custom tool that processes input using a specified format.\n\nLearn more about [custom tools](https://platform.openai.com/docs/guides/function-calling#custom-tools)", + "properties": { + "defer_loading": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Defer Loading" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Description" + }, + "format": { + "anyOf": [ + { + "$ref": "#/components/schemas/Text" + }, + { + "$ref": "#/components/schemas/Grammar" + }, + { + "type": "null" + } + ], + "title": "Format" + }, + "name": { + "title": "Name", + "type": "string" + }, + "type": { + "const": "custom", + "title": "Type", + "type": "string" + } + }, + "required": [ + "name", + "type" + ], + "title": "CustomTool", + "type": "object" + }, + "CustomToolCallOutputItem": { + "additionalProperties": true, + "description": "A custom/freeform tool call output item (e.g. apply_patch).\n\nMirrors the ``custom_tool_call`` variant of OpenAI's Responses API output.\nUnlike ``OutputFunctionToolCall`` which uses ``arguments`` (JSON string),\nthis uses ``input`` (raw string) for the tool payload.", + "properties": { + "call_id": { + "title": "Call Id", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Id" + }, + "input": { + "title": "Input", + "type": "string" + }, + "name": { + "title": "Name", + "type": "string" + }, + "status": { + "anyOf": [ + { + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Status" + }, + "type": { + "const": "custom_tool_call", + "title": "Type", + "type": "string" + } + }, + "required": [ + "type", + "call_id", + "name", + "input" + ], + "title": "CustomToolCallOutputItem", + "type": "object" + }, + "DeleteResponseResult": { + "additionalProperties": true, + "description": "Result of a delete response request\n\n{\n \"id\": \"resp_6786a1bec27481909a17d673315b29f6\",\n \"object\": \"response\",\n \"deleted\": true\n}", + "properties": { + "deleted": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Deleted" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Id" + }, + "object": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Object" + } + }, + "required": [ + "id", + "object", + "deleted" + ], + "title": "DeleteResponseResult", + "type": "object" + }, + "DoubleClick": { + "additionalProperties": true, + "description": "A double click action.", + "properties": { + "keys": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Keys" + }, + "type": { + "const": "double_click", + "title": "Type", + "type": "string" + }, + "x": { + "title": "X", + "type": "integer" + }, + "y": { + "title": "Y", + "type": "integer" + } + }, + "required": [ + "type", + "x", + "y" + ], + "title": "DoubleClick", + "type": "object" + }, + "Drag": { + "additionalProperties": true, + "description": "A drag action.", + "properties": { + "keys": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Keys" + }, + "path": { + "items": { + "$ref": "#/components/schemas/DragPath" + }, + "title": "Path", + "type": "array" + }, + "type": { + "const": "drag", + "title": "Type", + "type": "string" + } + }, + "required": [ + "path", + "type" + ], + "title": "Drag", + "type": "object" + }, + "DragPath": { + "additionalProperties": true, + "description": "An x/y coordinate pair, e.g. `{ x: 100, y: 200 }`.", + "properties": { + "x": { + "title": "X", + "type": "integer" + }, + "y": { + "title": "Y", + "type": "integer" + } + }, + "required": [ + "x", + "y" + ], + "title": "DragPath", + "type": "object" + }, "ErrorResponse": { "properties": { "detail": { @@ -16271,6 +17719,339 @@ "title": "ErrorResponse", "type": "object" }, + "FileSearchTool": { + "additionalProperties": true, + "description": "A tool that searches for relevant content from uploaded files.\n\nLearn more about the [file search tool](https://platform.openai.com/docs/guides/tools-file-search).", + "properties": { + "filters": { + "anyOf": [ + { + "$ref": "#/components/schemas/ComparisonFilter" + }, + { + "$ref": "#/components/schemas/CompoundFilter" + }, + { + "type": "null" + } + ], + "title": "Filters" + }, + "max_num_results": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Max Num Results" + }, + "ranking_options": { + "anyOf": [ + { + "$ref": "#/components/schemas/RankingOptions" + }, + { + "type": "null" + } + ] + }, + "type": { + "const": "file_search", + "title": "Type", + "type": "string" + }, + "vector_store_ids": { + "items": { + "type": "string" + }, + "title": "Vector Store Ids", + "type": "array" + } + }, + "required": [ + "type", + "vector_store_ids" + ], + "title": "FileSearchTool", + "type": "object" + }, + "Filters": { + "additionalProperties": true, + "description": "Filters for the search.", + "properties": { + "allowed_domains": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Allowed Domains" + } + }, + "title": "Filters", + "type": "object" + }, + "FunctionShellTool": { + "additionalProperties": true, + "description": "A tool that allows the model to execute shell commands.", + "properties": { + "environment": { + "anyOf": [ + { + "$ref": "#/components/schemas/ContainerAuto" + }, + { + "$ref": "#/components/schemas/LocalEnvironment" + }, + { + "$ref": "#/components/schemas/ContainerReference" + }, + { + "type": "null" + } + ], + "title": "Environment" + }, + "type": { + "const": "shell", + "title": "Type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "FunctionShellTool", + "type": "object" + }, + "FunctionTool": { + "additionalProperties": true, + "description": "Defines a function in your own code the model can choose to call.\n\nLearn more about [function calling](https://platform.openai.com/docs/guides/function-calling).", + "properties": { + "defer_loading": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Defer Loading" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Description" + }, + "name": { + "title": "Name", + "type": "string" + }, + "parameters": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "title": "Parameters" + }, + "strict": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Strict" + }, + "type": { + "const": "function", + "title": "Type", + "type": "string" + } + }, + "required": [ + "name", + "type" + ], + "title": "FunctionTool", + "type": "object" + }, + "GenericResponseOutputItem": { + "additionalProperties": true, + "description": "Generic response API output item", + "properties": { + "content": { + "items": { + "$ref": "#/components/schemas/OutputText" + }, + "title": "Content", + "type": "array" + }, + "id": { + "title": "Id", + "type": "string" + }, + "phase": { + "anyOf": [ + { + "enum": [ + "commentary", + "final_answer" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Phase" + }, + "role": { + "title": "Role", + "type": "string" + }, + "status": { + "title": "Status", + "type": "string" + }, + "type": { + "title": "Type", + "type": "string" + } + }, + "required": [ + "type", + "id", + "status", + "role", + "content" + ], + "title": "GenericResponseOutputItem", + "type": "object" + }, + "GenericResponseOutputItemContentAnnotation": { + "additionalProperties": true, + "description": "Annotation for content in a message", + "properties": { + "end_index": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "End Index" + }, + "start_index": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Start Index" + }, + "title": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Title" + }, + "type": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Type" + }, + "url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Url" + } + }, + "required": [ + "type", + "start_index", + "end_index", + "url", + "title" + ], + "title": "GenericResponseOutputItemContentAnnotation", + "type": "object" + }, + "Grammar": { + "additionalProperties": true, + "description": "A grammar defined by the user.", + "properties": { + "definition": { + "title": "Definition", + "type": "string" + }, + "syntax": { + "enum": [ + "lark", + "regex" + ], + "title": "Syntax", + "type": "string" + }, + "type": { + "const": "grammar", + "title": "Type", + "type": "string" + } + }, + "required": [ + "definition", + "syntax", + "type" + ], + "title": "Grammar", + "type": "object" + }, "HTTPValidationError": { "properties": { "detail": { @@ -16284,6 +18065,1915 @@ "title": "HTTPValidationError", "type": "object" }, + "ImageGeneration": { + "additionalProperties": true, + "description": "A tool that generates images using the GPT image models.", + "properties": { + "action": { + "anyOf": [ + { + "enum": [ + "generate", + "edit", + "auto" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Action" + }, + "background": { + "anyOf": [ + { + "enum": [ + "transparent", + "opaque", + "auto" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Background" + }, + "input_fidelity": { + "anyOf": [ + { + "enum": [ + "high", + "low" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Input Fidelity" + }, + "input_image_mask": { + "anyOf": [ + { + "$ref": "#/components/schemas/ImageGenerationInputImageMask" + }, + { + "type": "null" + } + ] + }, + "model": { + "anyOf": [ + { + "type": "string" + }, + { + "enum": [ + "gpt-image-1", + "gpt-image-1-mini", + "gpt-image-1.5" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Model" + }, + "moderation": { + "anyOf": [ + { + "enum": [ + "auto", + "low" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Moderation" + }, + "output_compression": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Output Compression" + }, + "output_format": { + "anyOf": [ + { + "enum": [ + "png", + "webp", + "jpeg" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Output Format" + }, + "partial_images": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Partial Images" + }, + "quality": { + "anyOf": [ + { + "enum": [ + "low", + "medium", + "high", + "auto" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Quality" + }, + "size": { + "anyOf": [ + { + "enum": [ + "1024x1024", + "1024x1536", + "1536x1024", + "auto" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Size" + }, + "type": { + "const": "image_generation", + "title": "Type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "ImageGeneration", + "type": "object" + }, + "ImageGenerationCall": { + "additionalProperties": true, + "description": "An image generation request made by the model.", + "properties": { + "id": { + "title": "Id", + "type": "string" + }, + "result": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Result" + }, + "status": { + "enum": [ + "in_progress", + "completed", + "generating", + "failed" + ], + "title": "Status", + "type": "string" + }, + "type": { + "const": "image_generation_call", + "title": "Type", + "type": "string" + } + }, + "required": [ + "id", + "status", + "type" + ], + "title": "ImageGenerationCall", + "type": "object" + }, + "ImageGenerationInputImageMask": { + "additionalProperties": true, + "description": "Optional mask for inpainting.\n\nContains `image_url`\n(string, optional) and `file_id` (string, optional).", + "properties": { + "file_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "File Id" + }, + "image_url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Image Url" + } + }, + "title": "ImageGenerationInputImageMask", + "type": "object" + }, + "IncompleteDetails": { + "additionalProperties": true, + "description": "Details about why the response is incomplete.", + "properties": { + "reason": { + "anyOf": [ + { + "enum": [ + "max_output_tokens", + "content_filter" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Reason" + } + }, + "title": "IncompleteDetails", + "type": "object" + }, + "InlineSkill": { + "additionalProperties": true, + "properties": { + "description": { + "title": "Description", + "type": "string" + }, + "name": { + "title": "Name", + "type": "string" + }, + "source": { + "$ref": "#/components/schemas/InlineSkillSource" + }, + "type": { + "const": "inline", + "title": "Type", + "type": "string" + } + }, + "required": [ + "description", + "name", + "source", + "type" + ], + "title": "InlineSkill", + "type": "object" + }, + "InlineSkillSource": { + "additionalProperties": true, + "description": "Inline skill payload", + "properties": { + "data": { + "title": "Data", + "type": "string" + }, + "media_type": { + "const": "application/zip", + "title": "Media Type", + "type": "string" + }, + "type": { + "const": "base64", + "title": "Type", + "type": "string" + } + }, + "required": [ + "data", + "media_type", + "type" + ], + "title": "InlineSkillSource", + "type": "object" + }, + "InputTokensDetails": { + "additionalProperties": true, + "properties": { + "audio_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Audio Tokens" + }, + "cached_tokens": { + "default": 0, + "title": "Cached Tokens", + "type": "integer" + }, + "cached_tokens_details": { + "anyOf": [ + { + "$ref": "#/components/schemas/CachedTokensDetails" + }, + { + "type": "null" + } + ] + }, + "image_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Image Tokens" + }, + "text_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Text Tokens" + }, + "video_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Video Tokens" + } + }, + "title": "InputTokensDetails", + "type": "object" + }, + "Keypress": { + "additionalProperties": true, + "description": "A collection of keypresses the model would like to perform.", + "properties": { + "keys": { + "items": { + "type": "string" + }, + "title": "Keys", + "type": "array" + }, + "type": { + "const": "keypress", + "title": "Type", + "type": "string" + } + }, + "required": [ + "keys", + "type" + ], + "title": "Keypress", + "type": "object" + }, + "LocalEnvironment": { + "additionalProperties": true, + "properties": { + "skills": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/LocalSkill" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Skills" + }, + "type": { + "const": "local", + "title": "Type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "LocalEnvironment", + "type": "object" + }, + "LocalShell": { + "additionalProperties": true, + "description": "A tool that allows the model to execute shell commands in a local environment.", + "properties": { + "type": { + "const": "local_shell", + "title": "Type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "LocalShell", + "type": "object" + }, + "LocalShellCall": { + "additionalProperties": true, + "description": "A tool call to run a command on the local shell.", + "properties": { + "action": { + "$ref": "#/components/schemas/LocalShellCallAction" + }, + "call_id": { + "title": "Call Id", + "type": "string" + }, + "id": { + "title": "Id", + "type": "string" + }, + "status": { + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "title": "Status", + "type": "string" + }, + "type": { + "const": "local_shell_call", + "title": "Type", + "type": "string" + } + }, + "required": [ + "id", + "action", + "call_id", + "status", + "type" + ], + "title": "LocalShellCall", + "type": "object" + }, + "LocalShellCallAction": { + "additionalProperties": true, + "description": "Execute a shell command on the server.", + "properties": { + "command": { + "items": { + "type": "string" + }, + "title": "Command", + "type": "array" + }, + "env": { + "additionalProperties": { + "type": "string" + }, + "title": "Env", + "type": "object" + }, + "timeout_ms": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Timeout Ms" + }, + "type": { + "const": "exec", + "title": "Type", + "type": "string" + }, + "user": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "User" + }, + "working_directory": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Working Directory" + } + }, + "required": [ + "command", + "env", + "type" + ], + "title": "LocalShellCallAction", + "type": "object" + }, + "LocalShellCallOutput": { + "additionalProperties": true, + "description": "The output of a local shell tool call.", + "properties": { + "id": { + "title": "Id", + "type": "string" + }, + "output": { + "title": "Output", + "type": "string" + }, + "status": { + "anyOf": [ + { + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Status" + }, + "type": { + "const": "local_shell_call_output", + "title": "Type", + "type": "string" + } + }, + "required": [ + "id", + "output", + "type" + ], + "title": "LocalShellCallOutput", + "type": "object" + }, + "LocalSkill": { + "additionalProperties": true, + "properties": { + "description": { + "title": "Description", + "type": "string" + }, + "name": { + "title": "Name", + "type": "string" + }, + "path": { + "title": "Path", + "type": "string" + } + }, + "required": [ + "description", + "name", + "path" + ], + "title": "LocalSkill", + "type": "object" + }, + "Logprob": { + "additionalProperties": true, + "description": "The log probability of a token.", + "properties": { + "bytes": { + "items": { + "type": "integer" + }, + "title": "Bytes", + "type": "array" + }, + "logprob": { + "title": "Logprob", + "type": "number" + }, + "token": { + "title": "Token", + "type": "string" + }, + "top_logprobs": { + "items": { + "$ref": "#/components/schemas/LogprobTopLogprob" + }, + "title": "Top Logprobs", + "type": "array" + } + }, + "required": [ + "token", + "bytes", + "logprob", + "top_logprobs" + ], + "title": "Logprob", + "type": "object" + }, + "LogprobTopLogprob": { + "additionalProperties": true, + "description": "The top log probability of a token.", + "properties": { + "bytes": { + "items": { + "type": "integer" + }, + "title": "Bytes", + "type": "array" + }, + "logprob": { + "title": "Logprob", + "type": "number" + }, + "token": { + "title": "Token", + "type": "string" + } + }, + "required": [ + "token", + "bytes", + "logprob" + ], + "title": "LogprobTopLogprob", + "type": "object" + }, + "Mcp": { + "additionalProperties": true, + "description": "Give the model access to additional tools via remote Model Context Protocol\n(MCP) servers. [Learn more about MCP](https://platform.openai.com/docs/guides/tools-remote-mcp).", + "properties": { + "allowed_tools": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "$ref": "#/components/schemas/McpAllowedToolsMcpToolFilter" + }, + { + "type": "null" + } + ], + "title": "Allowed Tools" + }, + "authorization": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Authorization" + }, + "connector_id": { + "anyOf": [ + { + "enum": [ + "connector_dropbox", + "connector_gmail", + "connector_googlecalendar", + "connector_googledrive", + "connector_microsoftteams", + "connector_outlookcalendar", + "connector_outlookemail", + "connector_sharepoint" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Connector Id" + }, + "defer_loading": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Defer Loading" + }, + "headers": { + "anyOf": [ + { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + { + "type": "null" + } + ], + "title": "Headers" + }, + "require_approval": { + "anyOf": [ + { + "$ref": "#/components/schemas/McpRequireApprovalMcpToolApprovalFilter" + }, + { + "enum": [ + "always", + "never" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Require Approval" + }, + "server_description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Server Description" + }, + "server_label": { + "title": "Server Label", + "type": "string" + }, + "server_url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Server Url" + }, + "type": { + "const": "mcp", + "title": "Type", + "type": "string" + } + }, + "required": [ + "server_label", + "type" + ], + "title": "Mcp", + "type": "object" + }, + "McpAllowedToolsMcpToolFilter": { + "additionalProperties": true, + "description": "A filter object to specify which tools are allowed.", + "properties": { + "read_only": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Read Only" + }, + "tool_names": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Tool Names" + } + }, + "title": "McpAllowedToolsMcpToolFilter", + "type": "object" + }, + "McpApprovalRequest": { + "additionalProperties": true, + "description": "A request for human approval of a tool invocation.", + "properties": { + "arguments": { + "title": "Arguments", + "type": "string" + }, + "id": { + "title": "Id", + "type": "string" + }, + "name": { + "title": "Name", + "type": "string" + }, + "server_label": { + "title": "Server Label", + "type": "string" + }, + "type": { + "const": "mcp_approval_request", + "title": "Type", + "type": "string" + } + }, + "required": [ + "id", + "arguments", + "name", + "server_label", + "type" + ], + "title": "McpApprovalRequest", + "type": "object" + }, + "McpApprovalResponse": { + "additionalProperties": true, + "description": "A response to an MCP approval request.", + "properties": { + "approval_request_id": { + "title": "Approval Request Id", + "type": "string" + }, + "approve": { + "title": "Approve", + "type": "boolean" + }, + "id": { + "title": "Id", + "type": "string" + }, + "reason": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Reason" + }, + "type": { + "const": "mcp_approval_response", + "title": "Type", + "type": "string" + } + }, + "required": [ + "id", + "approval_request_id", + "approve", + "type" + ], + "title": "McpApprovalResponse", + "type": "object" + }, + "McpCall": { + "additionalProperties": true, + "description": "An invocation of a tool on an MCP server.", + "properties": { + "approval_request_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Approval Request Id" + }, + "arguments": { + "title": "Arguments", + "type": "string" + }, + "error": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Error" + }, + "id": { + "title": "Id", + "type": "string" + }, + "name": { + "title": "Name", + "type": "string" + }, + "output": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Output" + }, + "server_label": { + "title": "Server Label", + "type": "string" + }, + "status": { + "anyOf": [ + { + "enum": [ + "in_progress", + "completed", + "incomplete", + "calling", + "failed" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Status" + }, + "type": { + "const": "mcp_call", + "title": "Type", + "type": "string" + } + }, + "required": [ + "id", + "arguments", + "name", + "server_label", + "type" + ], + "title": "McpCall", + "type": "object" + }, + "McpListTools": { + "additionalProperties": true, + "description": "A list of tools available on an MCP server.", + "properties": { + "error": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Error" + }, + "id": { + "title": "Id", + "type": "string" + }, + "server_label": { + "title": "Server Label", + "type": "string" + }, + "tools": { + "items": { + "$ref": "#/components/schemas/McpListToolsTool" + }, + "title": "Tools", + "type": "array" + }, + "type": { + "const": "mcp_list_tools", + "title": "Type", + "type": "string" + } + }, + "required": [ + "id", + "server_label", + "tools", + "type" + ], + "title": "McpListTools", + "type": "object" + }, + "McpListToolsTool": { + "additionalProperties": true, + "description": "A tool available on an MCP server.", + "properties": { + "annotations": { + "anyOf": [ + {}, + { + "type": "null" + } + ], + "title": "Annotations" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Description" + }, + "input_schema": { + "title": "Input Schema" + }, + "name": { + "title": "Name", + "type": "string" + } + }, + "required": [ + "input_schema", + "name" + ], + "title": "McpListToolsTool", + "type": "object" + }, + "McpRequireApprovalMcpToolApprovalFilter": { + "additionalProperties": true, + "description": "Specify which of the MCP server's tools require approval.\n\nCan be\n`always`, `never`, or a filter object associated with tools\nthat require approval.", + "properties": { + "always": { + "anyOf": [ + { + "$ref": "#/components/schemas/McpRequireApprovalMcpToolApprovalFilterAlways" + }, + { + "type": "null" + } + ] + }, + "never": { + "anyOf": [ + { + "$ref": "#/components/schemas/McpRequireApprovalMcpToolApprovalFilterNever" + }, + { + "type": "null" + } + ] + } + }, + "title": "McpRequireApprovalMcpToolApprovalFilter", + "type": "object" + }, + "McpRequireApprovalMcpToolApprovalFilterAlways": { + "additionalProperties": true, + "description": "A filter object to specify which tools are allowed.", + "properties": { + "read_only": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Read Only" + }, + "tool_names": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Tool Names" + } + }, + "title": "McpRequireApprovalMcpToolApprovalFilterAlways", + "type": "object" + }, + "McpRequireApprovalMcpToolApprovalFilterNever": { + "additionalProperties": true, + "description": "A filter object to specify which tools are allowed.", + "properties": { + "read_only": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Read Only" + }, + "tool_names": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Tool Names" + } + }, + "title": "McpRequireApprovalMcpToolApprovalFilterNever", + "type": "object" + }, + "Move": { + "additionalProperties": true, + "description": "A mouse move action.", + "properties": { + "keys": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Keys" + }, + "type": { + "const": "move", + "title": "Type", + "type": "string" + }, + "x": { + "title": "X", + "type": "integer" + }, + "y": { + "title": "Y", + "type": "integer" + } + }, + "required": [ + "type", + "x", + "y" + ], + "title": "Move", + "type": "object" + }, + "NamespaceTool": { + "additionalProperties": true, + "description": "Groups function/custom tools under a shared namespace.", + "properties": { + "description": { + "title": "Description", + "type": "string" + }, + "name": { + "title": "Name", + "type": "string" + }, + "tools": { + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/ToolFunction" + }, + { + "$ref": "#/components/schemas/CustomTool" + } + ] + }, + "title": "Tools", + "type": "array" + }, + "type": { + "const": "namespace", + "title": "Type", + "type": "string" + } + }, + "required": [ + "description", + "name", + "tools", + "type" + ], + "title": "NamespaceTool", + "type": "object" + }, + "OperationCreateFile": { + "additionalProperties": true, + "description": "Instruction describing how to create a file via the apply_patch tool.", + "properties": { + "diff": { + "title": "Diff", + "type": "string" + }, + "path": { + "title": "Path", + "type": "string" + }, + "type": { + "const": "create_file", + "title": "Type", + "type": "string" + } + }, + "required": [ + "diff", + "path", + "type" + ], + "title": "OperationCreateFile", + "type": "object" + }, + "OperationDeleteFile": { + "additionalProperties": true, + "description": "Instruction describing how to delete a file via the apply_patch tool.", + "properties": { + "path": { + "title": "Path", + "type": "string" + }, + "type": { + "const": "delete_file", + "title": "Type", + "type": "string" + } + }, + "required": [ + "path", + "type" + ], + "title": "OperationDeleteFile", + "type": "object" + }, + "OperationUpdateFile": { + "additionalProperties": true, + "description": "Instruction describing how to update a file via the apply_patch tool.", + "properties": { + "diff": { + "title": "Diff", + "type": "string" + }, + "path": { + "title": "Path", + "type": "string" + }, + "type": { + "const": "update_file", + "title": "Type", + "type": "string" + } + }, + "required": [ + "diff", + "path", + "type" + ], + "title": "OperationUpdateFile", + "type": "object" + }, + "Output": { + "additionalProperties": true, + "description": "The content of a shell tool call output that was emitted.", + "properties": { + "created_by": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Created By" + }, + "outcome": { + "anyOf": [ + { + "$ref": "#/components/schemas/OutputOutcomeTimeout" + }, + { + "$ref": "#/components/schemas/OutputOutcomeExit" + } + ], + "title": "Outcome" + }, + "stderr": { + "title": "Stderr", + "type": "string" + }, + "stdout": { + "title": "Stdout", + "type": "string" + } + }, + "required": [ + "outcome", + "stderr", + "stdout" + ], + "title": "Output", + "type": "object" + }, + "OutputCodeInterpreterCall": { + "additionalProperties": true, + "description": "A code interpreter / code execution call output", + "properties": { + "code": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Code" + }, + "container_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Container Id" + }, + "id": { + "title": "Id", + "type": "string" + }, + "outputs": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/OutputCodeInterpreterCallLog" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Outputs" + }, + "status": { + "enum": [ + "in_progress", + "completed", + "incomplete", + "failed" + ], + "title": "Status", + "type": "string" + }, + "type": { + "const": "code_interpreter_call", + "title": "Type", + "type": "string" + } + }, + "required": [ + "type", + "id", + "code", + "container_id", + "status", + "outputs" + ], + "title": "OutputCodeInterpreterCall", + "type": "object" + }, + "OutputCodeInterpreterCallLog": { + "additionalProperties": true, + "description": "Log output from a code interpreter call", + "properties": { + "logs": { + "title": "Logs", + "type": "string" + }, + "type": { + "const": "logs", + "title": "Type", + "type": "string" + } + }, + "required": [ + "type", + "logs" + ], + "title": "OutputCodeInterpreterCallLog", + "type": "object" + }, + "OutputFunctionToolCall": { + "additionalProperties": true, + "description": "A tool call to run a function", + "properties": { + "arguments": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Arguments" + }, + "call_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Call Id" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Id" + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Name" + }, + "phase": { + "anyOf": [ + { + "enum": [ + "commentary", + "final_answer" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Phase" + }, + "status": { + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "title": "Status", + "type": "string" + }, + "type": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Type" + } + }, + "required": [ + "arguments", + "call_id", + "name", + "type", + "id", + "status" + ], + "title": "OutputFunctionToolCall", + "type": "object" + }, + "OutputImage": { + "additionalProperties": true, + "description": "The image output from the code interpreter.", + "properties": { + "type": { + "const": "image", + "title": "Type", + "type": "string" + }, + "url": { + "title": "Url", + "type": "string" + } + }, + "required": [ + "type", + "url" + ], + "title": "OutputImage", + "type": "object" + }, + "OutputImageGenerationCall": { + "additionalProperties": true, + "description": "An image generation call output", + "properties": { + "id": { + "title": "Id", + "type": "string" + }, + "result": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Result" + }, + "status": { + "enum": [ + "in_progress", + "completed", + "incomplete", + "failed" + ], + "title": "Status", + "type": "string" + }, + "type": { + "const": "image_generation_call", + "title": "Type", + "type": "string" + } + }, + "required": [ + "type", + "id", + "status", + "result" + ], + "title": "OutputImageGenerationCall", + "type": "object" + }, + "OutputLogs": { + "additionalProperties": true, + "description": "The logs output from the code interpreter.", + "properties": { + "logs": { + "title": "Logs", + "type": "string" + }, + "type": { + "const": "logs", + "title": "Type", + "type": "string" + } + }, + "required": [ + "logs", + "type" + ], + "title": "OutputLogs", + "type": "object" + }, + "OutputOutcomeExit": { + "additionalProperties": true, + "description": "Indicates that the shell commands finished and returned an exit code.", + "properties": { + "exit_code": { + "title": "Exit Code", + "type": "integer" + }, + "type": { + "const": "exit", + "title": "Type", + "type": "string" + } + }, + "required": [ + "exit_code", + "type" + ], + "title": "OutputOutcomeExit", + "type": "object" + }, + "OutputOutcomeTimeout": { + "additionalProperties": true, + "description": "Indicates that the shell call exceeded its configured time limit.", + "properties": { + "type": { + "const": "timeout", + "title": "Type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "OutputOutcomeTimeout", + "type": "object" + }, + "OutputText": { + "additionalProperties": true, + "description": "Text output content from an assistant message", + "properties": { + "annotations": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/GenericResponseOutputItemContentAnnotation" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Annotations" + }, + "text": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Text" + }, + "type": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Type" + } + }, + "required": [ + "type", + "text", + "annotations" + ], + "title": "OutputText", + "type": "object" + }, + "OutputTokensDetails": { + "additionalProperties": true, + "properties": { + "audio_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Audio Tokens" + }, + "reasoning_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Reasoning Tokens" + }, + "text_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Text Tokens" + } + }, + "title": "OutputTokensDetails", + "type": "object" + }, + "PendingSafetyCheck": { + "additionalProperties": true, + "description": "A pending safety check for the computer call.", + "properties": { + "code": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Code" + }, + "id": { + "title": "Id", + "type": "string" + }, + "message": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Message" + } + }, + "required": [ + "id" + ], + "title": "PendingSafetyCheck", + "type": "object" + }, + "RankingOptions": { + "additionalProperties": true, + "description": "Ranking options for search.", + "properties": { + "hybrid_search": { + "anyOf": [ + { + "$ref": "#/components/schemas/RankingOptionsHybridSearch" + }, + { + "type": "null" + } + ] + }, + "ranker": { + "anyOf": [ + { + "enum": [ + "auto", + "default-2024-11-15" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Ranker" + }, + "score_threshold": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Score Threshold" + } + }, + "title": "RankingOptions", + "type": "object" + }, + "RankingOptionsHybridSearch": { + "additionalProperties": true, + "description": "Weights that control how reciprocal rank fusion balances semantic embedding matches versus sparse keyword matches when hybrid search is enabled.", + "properties": { + "embedding_weight": { + "title": "Embedding Weight", + "type": "number" + }, + "text_weight": { + "title": "Text Weight", + "type": "number" + } + }, + "required": [ + "embedding_weight", + "text_weight" + ], + "title": "RankingOptionsHybridSearch", + "type": "object" + }, "RealtimeClientSecretResponse": { "description": "Response from POST /v1/realtime/client_secrets.\n\nBoth the top-level `value` and `session.client_secret.value`\nwill contain the encrypted token instead of the raw ephemeral key.\nThe `session` field is kept as a raw dict so unknown fields pass through.", "properties": { @@ -16341,6 +20031,2978 @@ "title": "RealtimeTranscriptionSessionResponse", "type": "object" }, + "ResponseAPIUsage": { + "additionalProperties": true, + "properties": { + "cost": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Cost" + }, + "input_tokens": { + "title": "Input Tokens", + "type": "integer" + }, + "input_tokens_details": { + "anyOf": [ + { + "$ref": "#/components/schemas/InputTokensDetails" + }, + { + "type": "null" + } + ] + }, + "output_tokens": { + "title": "Output Tokens", + "type": "integer" + }, + "output_tokens_details": { + "anyOf": [ + { + "$ref": "#/components/schemas/OutputTokensDetails" + }, + { + "type": "null" + } + ] + }, + "total_tokens": { + "title": "Total Tokens", + "type": "integer" + } + }, + "required": [ + "input_tokens", + "output_tokens", + "total_tokens" + ], + "title": "ResponseAPIUsage", + "type": "object" + }, + "ResponseApplyPatchToolCall": { + "additionalProperties": true, + "description": "A tool call that applies file diffs by creating, deleting, or updating files.", + "properties": { + "call_id": { + "title": "Call Id", + "type": "string" + }, + "created_by": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Created By" + }, + "id": { + "title": "Id", + "type": "string" + }, + "operation": { + "anyOf": [ + { + "$ref": "#/components/schemas/OperationCreateFile" + }, + { + "$ref": "#/components/schemas/OperationDeleteFile" + }, + { + "$ref": "#/components/schemas/OperationUpdateFile" + } + ], + "title": "Operation" + }, + "status": { + "enum": [ + "in_progress", + "completed" + ], + "title": "Status", + "type": "string" + }, + "type": { + "const": "apply_patch_call", + "title": "Type", + "type": "string" + } + }, + "required": [ + "id", + "call_id", + "operation", + "status", + "type" + ], + "title": "ResponseApplyPatchToolCall", + "type": "object" + }, + "ResponseApplyPatchToolCallOutput": { + "additionalProperties": true, + "description": "The output emitted by an apply patch tool call.", + "properties": { + "call_id": { + "title": "Call Id", + "type": "string" + }, + "created_by": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Created By" + }, + "id": { + "title": "Id", + "type": "string" + }, + "output": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Output" + }, + "status": { + "enum": [ + "completed", + "failed" + ], + "title": "Status", + "type": "string" + }, + "type": { + "const": "apply_patch_call_output", + "title": "Type", + "type": "string" + } + }, + "required": [ + "id", + "call_id", + "status", + "type" + ], + "title": "ResponseApplyPatchToolCallOutput", + "type": "object" + }, + "ResponseCodeInterpreterToolCall": { + "additionalProperties": true, + "description": "A tool call to run code.", + "properties": { + "code": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Code" + }, + "container_id": { + "title": "Container Id", + "type": "string" + }, + "id": { + "title": "Id", + "type": "string" + }, + "outputs": { + "anyOf": [ + { + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/OutputLogs" + }, + { + "$ref": "#/components/schemas/OutputImage" + } + ] + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Outputs" + }, + "status": { + "enum": [ + "in_progress", + "completed", + "incomplete", + "interpreting", + "failed" + ], + "title": "Status", + "type": "string" + }, + "type": { + "const": "code_interpreter_call", + "title": "Type", + "type": "string" + } + }, + "required": [ + "id", + "container_id", + "status", + "type" + ], + "title": "ResponseCodeInterpreterToolCall", + "type": "object" + }, + "ResponseCompactionItem": { + "additionalProperties": true, + "description": "A compaction item generated by the [`v1/responses/compact` API](https://platform.openai.com/docs/api-reference/responses/compact).", + "properties": { + "created_by": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Created By" + }, + "encrypted_content": { + "title": "Encrypted Content", + "type": "string" + }, + "id": { + "title": "Id", + "type": "string" + }, + "type": { + "const": "compaction", + "title": "Type", + "type": "string" + } + }, + "required": [ + "id", + "encrypted_content", + "type" + ], + "title": "ResponseCompactionItem", + "type": "object" + }, + "ResponseComputerToolCall": { + "additionalProperties": true, + "description": "A tool call to a computer use tool.\n\nSee the\n[computer use guide](https://platform.openai.com/docs/guides/tools-computer-use) for more information.", + "properties": { + "action": { + "anyOf": [ + { + "$ref": "#/components/schemas/ActionClick" + }, + { + "$ref": "#/components/schemas/ActionDoubleClick" + }, + { + "$ref": "#/components/schemas/ActionDrag" + }, + { + "$ref": "#/components/schemas/ActionKeypress" + }, + { + "$ref": "#/components/schemas/ActionMove" + }, + { + "$ref": "#/components/schemas/ActionScreenshot" + }, + { + "$ref": "#/components/schemas/ActionScroll" + }, + { + "$ref": "#/components/schemas/ActionType" + }, + { + "$ref": "#/components/schemas/ActionWait" + }, + { + "type": "null" + } + ], + "title": "Action" + }, + "actions": { + "anyOf": [ + { + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/Click" + }, + { + "$ref": "#/components/schemas/DoubleClick" + }, + { + "$ref": "#/components/schemas/Drag" + }, + { + "$ref": "#/components/schemas/Keypress" + }, + { + "$ref": "#/components/schemas/Move" + }, + { + "$ref": "#/components/schemas/Screenshot" + }, + { + "$ref": "#/components/schemas/Scroll" + }, + { + "$ref": "#/components/schemas/Type" + }, + { + "$ref": "#/components/schemas/Wait" + } + ] + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Actions" + }, + "call_id": { + "title": "Call Id", + "type": "string" + }, + "id": { + "title": "Id", + "type": "string" + }, + "pending_safety_checks": { + "items": { + "$ref": "#/components/schemas/PendingSafetyCheck" + }, + "title": "Pending Safety Checks", + "type": "array" + }, + "status": { + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "title": "Status", + "type": "string" + }, + "type": { + "const": "computer_call", + "title": "Type", + "type": "string" + } + }, + "required": [ + "id", + "call_id", + "pending_safety_checks", + "status", + "type" + ], + "title": "ResponseComputerToolCall", + "type": "object" + }, + "ResponseComputerToolCallOutputItem": { + "additionalProperties": true, + "properties": { + "acknowledged_safety_checks": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/AcknowledgedSafetyCheck" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Acknowledged Safety Checks" + }, + "call_id": { + "title": "Call Id", + "type": "string" + }, + "created_by": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Created By" + }, + "id": { + "title": "Id", + "type": "string" + }, + "output": { + "$ref": "#/components/schemas/ResponseComputerToolCallOutputScreenshot" + }, + "status": { + "enum": [ + "completed", + "incomplete", + "failed", + "in_progress" + ], + "title": "Status", + "type": "string" + }, + "type": { + "const": "computer_call_output", + "title": "Type", + "type": "string" + } + }, + "required": [ + "id", + "call_id", + "output", + "status", + "type" + ], + "title": "ResponseComputerToolCallOutputItem", + "type": "object" + }, + "ResponseComputerToolCallOutputScreenshot": { + "additionalProperties": true, + "description": "A computer screenshot image used with the computer use tool.", + "properties": { + "file_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "File Id" + }, + "image_url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Image Url" + }, + "type": { + "const": "computer_screenshot", + "title": "Type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "ResponseComputerToolCallOutputScreenshot", + "type": "object" + }, + "ResponseContainerReference": { + "additionalProperties": true, + "description": "Represents a container created with /v1/containers.", + "properties": { + "container_id": { + "title": "Container Id", + "type": "string" + }, + "type": { + "const": "container_reference", + "title": "Type", + "type": "string" + } + }, + "required": [ + "container_id", + "type" + ], + "title": "ResponseContainerReference", + "type": "object" + }, + "ResponseCustomToolCall": { + "additionalProperties": true, + "description": "A call to a custom tool created by the model.", + "properties": { + "call_id": { + "title": "Call Id", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Id" + }, + "input": { + "title": "Input", + "type": "string" + }, + "name": { + "title": "Name", + "type": "string" + }, + "namespace": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Namespace" + }, + "type": { + "const": "custom_tool_call", + "title": "Type", + "type": "string" + } + }, + "required": [ + "call_id", + "input", + "name", + "type" + ], + "title": "ResponseCustomToolCall", + "type": "object" + }, + "ResponseCustomToolCallItem": { + "additionalProperties": true, + "description": "A call to a custom tool created by the model.", + "properties": { + "call_id": { + "title": "Call Id", + "type": "string" + }, + "created_by": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Created By" + }, + "id": { + "title": "Id", + "type": "string" + }, + "input": { + "title": "Input", + "type": "string" + }, + "name": { + "title": "Name", + "type": "string" + }, + "namespace": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Namespace" + }, + "status": { + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "title": "Status", + "type": "string" + }, + "type": { + "const": "custom_tool_call", + "title": "Type", + "type": "string" + } + }, + "required": [ + "call_id", + "input", + "name", + "type", + "id", + "status" + ], + "title": "ResponseCustomToolCallItem", + "type": "object" + }, + "ResponseCustomToolCallOutputItem": { + "additionalProperties": true, + "description": "The output of a custom tool call from your code, being sent back to the model.", + "properties": { + "call_id": { + "title": "Call Id", + "type": "string" + }, + "created_by": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Created By" + }, + "id": { + "title": "Id", + "type": "string" + }, + "output": { + "anyOf": [ + { + "type": "string" + }, + { + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/ResponseInputText" + }, + { + "$ref": "#/components/schemas/ResponseInputImage" + }, + { + "$ref": "#/components/schemas/ResponseInputFile" + } + ] + }, + "type": "array" + } + ], + "title": "Output" + }, + "status": { + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "title": "Status", + "type": "string" + }, + "type": { + "const": "custom_tool_call_output", + "title": "Type", + "type": "string" + } + }, + "required": [ + "call_id", + "output", + "type", + "id", + "status" + ], + "title": "ResponseCustomToolCallOutputItem", + "type": "object" + }, + "ResponseFileSearchToolCall": { + "additionalProperties": true, + "description": "The results of a file search tool call.\n\nSee the\n[file search guide](https://platform.openai.com/docs/guides/tools-file-search) for more information.", + "properties": { + "id": { + "title": "Id", + "type": "string" + }, + "queries": { + "items": { + "type": "string" + }, + "title": "Queries", + "type": "array" + }, + "results": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/Result" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Results" + }, + "status": { + "enum": [ + "in_progress", + "searching", + "completed", + "incomplete", + "failed" + ], + "title": "Status", + "type": "string" + }, + "type": { + "const": "file_search_call", + "title": "Type", + "type": "string" + } + }, + "required": [ + "id", + "queries", + "status", + "type" + ], + "title": "ResponseFileSearchToolCall", + "type": "object" + }, + "ResponseFormatJSONObject": { + "additionalProperties": true, + "description": "JSON object response format.\n\nAn older method of generating JSON responses.\nUsing `json_schema` is recommended for models that support it. Note that the\nmodel will not generate JSON without a system or user message instructing it\nto do so.", + "properties": { + "type": { + "const": "json_object", + "title": "Type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "ResponseFormatJSONObject", + "type": "object" + }, + "ResponseFormatText": { + "additionalProperties": true, + "description": "Default response format. Used to generate text responses.", + "properties": { + "type": { + "const": "text", + "title": "Type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "ResponseFormatText", + "type": "object" + }, + "ResponseFormatTextJSONSchemaConfigParam": { + "additionalProperties": true, + "description": "JSON Schema response format.\n\nUsed to generate structured JSON responses.\nLearn more about [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs).", + "properties": { + "description": { + "title": "Description", + "type": "string" + }, + "name": { + "title": "Name", + "type": "string" + }, + "schema": { + "additionalProperties": true, + "title": "Schema", + "type": "object" + }, + "strict": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Strict" + }, + "type": { + "const": "json_schema", + "title": "Type", + "type": "string" + } + }, + "required": [ + "name", + "schema", + "type" + ], + "title": "ResponseFormatTextJSONSchemaConfigParam", + "type": "object" + }, + "ResponseFunctionShellToolCall": { + "additionalProperties": true, + "description": "A tool call that executes one or more shell commands in a managed environment.", + "properties": { + "action": { + "$ref": "#/components/schemas/Action" + }, + "call_id": { + "title": "Call Id", + "type": "string" + }, + "created_by": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Created By" + }, + "environment": { + "anyOf": [ + { + "$ref": "#/components/schemas/ResponseLocalEnvironment" + }, + { + "$ref": "#/components/schemas/ResponseContainerReference" + }, + { + "type": "null" + } + ], + "title": "Environment" + }, + "id": { + "title": "Id", + "type": "string" + }, + "status": { + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "title": "Status", + "type": "string" + }, + "type": { + "const": "shell_call", + "title": "Type", + "type": "string" + } + }, + "required": [ + "id", + "action", + "call_id", + "status", + "type" + ], + "title": "ResponseFunctionShellToolCall", + "type": "object" + }, + "ResponseFunctionShellToolCallOutput": { + "additionalProperties": true, + "description": "The output of a shell tool call that was emitted.", + "properties": { + "call_id": { + "title": "Call Id", + "type": "string" + }, + "created_by": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Created By" + }, + "id": { + "title": "Id", + "type": "string" + }, + "max_output_length": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Max Output Length" + }, + "output": { + "items": { + "$ref": "#/components/schemas/Output" + }, + "title": "Output", + "type": "array" + }, + "status": { + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "title": "Status", + "type": "string" + }, + "type": { + "const": "shell_call_output", + "title": "Type", + "type": "string" + } + }, + "required": [ + "id", + "call_id", + "output", + "status", + "type" + ], + "title": "ResponseFunctionShellToolCallOutput", + "type": "object" + }, + "ResponseFunctionToolCall": { + "additionalProperties": true, + "description": "A tool call to run a function.\n\nSee the\n[function calling guide](https://platform.openai.com/docs/guides/function-calling) for more information.", + "properties": { + "arguments": { + "title": "Arguments", + "type": "string" + }, + "call_id": { + "title": "Call Id", + "type": "string" + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Id" + }, + "name": { + "title": "Name", + "type": "string" + }, + "namespace": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Namespace" + }, + "status": { + "anyOf": [ + { + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Status" + }, + "type": { + "const": "function_call", + "title": "Type", + "type": "string" + } + }, + "required": [ + "arguments", + "call_id", + "name", + "type" + ], + "title": "ResponseFunctionToolCall", + "type": "object" + }, + "ResponseFunctionToolCallItem": { + "additionalProperties": true, + "description": "A tool call to run a function.\n\nSee the\n[function calling guide](https://platform.openai.com/docs/guides/function-calling) for more information.", + "properties": { + "arguments": { + "title": "Arguments", + "type": "string" + }, + "call_id": { + "title": "Call Id", + "type": "string" + }, + "created_by": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Created By" + }, + "id": { + "title": "Id", + "type": "string" + }, + "name": { + "title": "Name", + "type": "string" + }, + "namespace": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Namespace" + }, + "status": { + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "title": "Status", + "type": "string" + }, + "type": { + "const": "function_call", + "title": "Type", + "type": "string" + } + }, + "required": [ + "arguments", + "call_id", + "name", + "type", + "id", + "status" + ], + "title": "ResponseFunctionToolCallItem", + "type": "object" + }, + "ResponseFunctionToolCallOutputItem": { + "additionalProperties": true, + "properties": { + "call_id": { + "title": "Call Id", + "type": "string" + }, + "created_by": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Created By" + }, + "id": { + "title": "Id", + "type": "string" + }, + "output": { + "anyOf": [ + { + "type": "string" + }, + { + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/ResponseInputText" + }, + { + "$ref": "#/components/schemas/ResponseInputImage" + }, + { + "$ref": "#/components/schemas/ResponseInputFile" + } + ] + }, + "type": "array" + } + ], + "title": "Output" + }, + "status": { + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "title": "Status", + "type": "string" + }, + "type": { + "const": "function_call_output", + "title": "Type", + "type": "string" + } + }, + "required": [ + "id", + "call_id", + "output", + "status", + "type" + ], + "title": "ResponseFunctionToolCallOutputItem", + "type": "object" + }, + "ResponseFunctionWebSearch": { + "additionalProperties": true, + "description": "The results of a web search tool call.\n\nSee the\n[web search guide](https://platform.openai.com/docs/guides/tools-web-search) for more information.", + "properties": { + "action": { + "anyOf": [ + { + "$ref": "#/components/schemas/ActionSearch" + }, + { + "$ref": "#/components/schemas/ActionOpenPage" + }, + { + "$ref": "#/components/schemas/ActionFind" + } + ], + "title": "Action" + }, + "id": { + "title": "Id", + "type": "string" + }, + "status": { + "enum": [ + "in_progress", + "searching", + "completed", + "failed" + ], + "title": "Status", + "type": "string" + }, + "type": { + "const": "web_search_call", + "title": "Type", + "type": "string" + } + }, + "required": [ + "id", + "action", + "status", + "type" + ], + "title": "ResponseFunctionWebSearch", + "type": "object" + }, + "ResponseInputFile": { + "additionalProperties": true, + "description": "A file input to the model.", + "properties": { + "detail": { + "anyOf": [ + { + "enum": [ + "high", + "low" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Detail" + }, + "file_data": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "File Data" + }, + "file_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "File Id" + }, + "file_url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "File Url" + }, + "filename": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Filename" + }, + "type": { + "const": "input_file", + "title": "Type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "ResponseInputFile", + "type": "object" + }, + "ResponseInputImage": { + "additionalProperties": true, + "description": "An image input to the model.\n\nLearn about [image inputs](https://platform.openai.com/docs/guides/vision).", + "properties": { + "detail": { + "enum": [ + "low", + "high", + "auto", + "original" + ], + "title": "Detail", + "type": "string" + }, + "file_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "File Id" + }, + "image_url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Image Url" + }, + "type": { + "const": "input_image", + "title": "Type", + "type": "string" + } + }, + "required": [ + "detail", + "type" + ], + "title": "ResponseInputImage", + "type": "object" + }, + "ResponseInputMessageItem": { + "additionalProperties": true, + "properties": { + "content": { + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/ResponseInputText" + }, + { + "$ref": "#/components/schemas/ResponseInputImage" + }, + { + "$ref": "#/components/schemas/ResponseInputFile" + } + ] + }, + "title": "Content", + "type": "array" + }, + "id": { + "title": "Id", + "type": "string" + }, + "role": { + "enum": [ + "user", + "system", + "developer" + ], + "title": "Role", + "type": "string" + }, + "status": { + "anyOf": [ + { + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Status" + }, + "type": { + "const": "message", + "title": "Type", + "type": "string" + } + }, + "required": [ + "id", + "content", + "role", + "type" + ], + "title": "ResponseInputMessageItem", + "type": "object" + }, + "ResponseInputText": { + "additionalProperties": true, + "description": "A text input to the model.", + "properties": { + "text": { + "title": "Text", + "type": "string" + }, + "type": { + "const": "input_text", + "title": "Type", + "type": "string" + } + }, + "required": [ + "text", + "type" + ], + "title": "ResponseInputText", + "type": "object" + }, + "ResponseItemList": { + "additionalProperties": true, + "description": "A list of Response items.", + "properties": { + "data": { + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/ResponseInputMessageItem" + }, + { + "$ref": "#/components/schemas/ResponseOutputMessage" + }, + { + "$ref": "#/components/schemas/ResponseFileSearchToolCall" + }, + { + "$ref": "#/components/schemas/ResponseComputerToolCall" + }, + { + "$ref": "#/components/schemas/ResponseComputerToolCallOutputItem" + }, + { + "$ref": "#/components/schemas/ResponseFunctionWebSearch" + }, + { + "$ref": "#/components/schemas/ResponseFunctionToolCallItem" + }, + { + "$ref": "#/components/schemas/ResponseFunctionToolCallOutputItem" + }, + { + "$ref": "#/components/schemas/ResponseToolSearchCall" + }, + { + "$ref": "#/components/schemas/ResponseToolSearchOutputItem" + }, + { + "$ref": "#/components/schemas/ResponseReasoningItem" + }, + { + "$ref": "#/components/schemas/ResponseCompactionItem" + }, + { + "$ref": "#/components/schemas/ImageGenerationCall" + }, + { + "$ref": "#/components/schemas/ResponseCodeInterpreterToolCall" + }, + { + "$ref": "#/components/schemas/LocalShellCall" + }, + { + "$ref": "#/components/schemas/LocalShellCallOutput" + }, + { + "$ref": "#/components/schemas/ResponseFunctionShellToolCall" + }, + { + "$ref": "#/components/schemas/ResponseFunctionShellToolCallOutput" + }, + { + "$ref": "#/components/schemas/ResponseApplyPatchToolCall" + }, + { + "$ref": "#/components/schemas/ResponseApplyPatchToolCallOutput" + }, + { + "$ref": "#/components/schemas/McpListTools" + }, + { + "$ref": "#/components/schemas/McpApprovalRequest" + }, + { + "$ref": "#/components/schemas/McpApprovalResponse" + }, + { + "$ref": "#/components/schemas/McpCall" + }, + { + "$ref": "#/components/schemas/ResponseCustomToolCallItem" + }, + { + "$ref": "#/components/schemas/ResponseCustomToolCallOutputItem" + } + ] + }, + "title": "Data", + "type": "array" + }, + "first_id": { + "title": "First Id", + "type": "string" + }, + "has_more": { + "title": "Has More", + "type": "boolean" + }, + "last_id": { + "title": "Last Id", + "type": "string" + }, + "object": { + "const": "list", + "title": "Object", + "type": "string" + } + }, + "required": [ + "data", + "first_id", + "has_more", + "last_id", + "object" + ], + "title": "ResponseItemList", + "type": "object" + }, + "ResponseLocalEnvironment": { + "additionalProperties": true, + "description": "Represents the use of a local environment to perform shell actions.", + "properties": { + "type": { + "const": "local", + "title": "Type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "ResponseLocalEnvironment", + "type": "object" + }, + "ResponseOutputMessage": { + "additionalProperties": true, + "description": "An output message from the model.", + "properties": { + "content": { + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/ResponseOutputText" + }, + { + "$ref": "#/components/schemas/ResponseOutputRefusal" + } + ] + }, + "title": "Content", + "type": "array" + }, + "id": { + "title": "Id", + "type": "string" + }, + "phase": { + "anyOf": [ + { + "enum": [ + "commentary", + "final_answer" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Phase" + }, + "role": { + "const": "assistant", + "title": "Role", + "type": "string" + }, + "status": { + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "title": "Status", + "type": "string" + }, + "type": { + "const": "message", + "title": "Type", + "type": "string" + } + }, + "required": [ + "id", + "content", + "role", + "status", + "type" + ], + "title": "ResponseOutputMessage", + "type": "object" + }, + "ResponseOutputRefusal": { + "additionalProperties": true, + "description": "A refusal from the model.", + "properties": { + "refusal": { + "title": "Refusal", + "type": "string" + }, + "type": { + "const": "refusal", + "title": "Type", + "type": "string" + } + }, + "required": [ + "refusal", + "type" + ], + "title": "ResponseOutputRefusal", + "type": "object" + }, + "ResponseOutputText": { + "additionalProperties": true, + "description": "A text output from the model.", + "properties": { + "annotations": { + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/AnnotationFileCitation" + }, + { + "$ref": "#/components/schemas/AnnotationURLCitation" + }, + { + "$ref": "#/components/schemas/AnnotationContainerFileCitation" + }, + { + "$ref": "#/components/schemas/AnnotationFilePath" + } + ] + }, + "title": "Annotations", + "type": "array" + }, + "logprobs": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/Logprob" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Logprobs" + }, + "text": { + "title": "Text", + "type": "string" + }, + "type": { + "const": "output_text", + "title": "Type", + "type": "string" + } + }, + "required": [ + "annotations", + "text", + "type" + ], + "title": "ResponseOutputText", + "type": "object" + }, + "ResponseReasoningItem": { + "additionalProperties": true, + "description": "A description of the chain of thought used by a reasoning model while generating\na response. Be sure to include these items in your `input` to the Responses API\nfor subsequent turns of a conversation if you are manually\n[managing context](https://platform.openai.com/docs/guides/conversation-state).", + "properties": { + "content": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/Content" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Content" + }, + "encrypted_content": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Encrypted Content" + }, + "id": { + "title": "Id", + "type": "string" + }, + "status": { + "anyOf": [ + { + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Status" + }, + "summary": { + "items": { + "$ref": "#/components/schemas/Summary" + }, + "title": "Summary", + "type": "array" + }, + "type": { + "const": "reasoning", + "title": "Type", + "type": "string" + } + }, + "required": [ + "id", + "summary", + "type" + ], + "title": "ResponseReasoningItem", + "type": "object" + }, + "ResponseTextConfigParam": { + "additionalProperties": true, + "description": "Configuration options for a text response from the model.\n\nCan be plain\ntext or structured JSON data. Learn more:\n- [Text inputs and outputs](https://platform.openai.com/docs/guides/text)\n- [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs)", + "properties": { + "format": { + "anyOf": [ + { + "$ref": "#/components/schemas/ResponseFormatText" + }, + { + "$ref": "#/components/schemas/ResponseFormatTextJSONSchemaConfigParam" + }, + { + "$ref": "#/components/schemas/ResponseFormatJSONObject" + } + ], + "title": "Format" + }, + "verbosity": { + "anyOf": [ + { + "enum": [ + "low", + "medium", + "high" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Verbosity" + } + }, + "title": "ResponseTextConfigParam", + "type": "object" + }, + "ResponseToolSearchCall": { + "additionalProperties": true, + "properties": { + "arguments": { + "title": "Arguments" + }, + "call_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Call Id" + }, + "created_by": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Created By" + }, + "execution": { + "enum": [ + "server", + "client" + ], + "title": "Execution", + "type": "string" + }, + "id": { + "title": "Id", + "type": "string" + }, + "status": { + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "title": "Status", + "type": "string" + }, + "type": { + "const": "tool_search_call", + "title": "Type", + "type": "string" + } + }, + "required": [ + "id", + "arguments", + "execution", + "status", + "type" + ], + "title": "ResponseToolSearchCall", + "type": "object" + }, + "ResponseToolSearchOutputItem": { + "additionalProperties": true, + "properties": { + "call_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Call Id" + }, + "created_by": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Created By" + }, + "execution": { + "enum": [ + "server", + "client" + ], + "title": "Execution", + "type": "string" + }, + "id": { + "title": "Id", + "type": "string" + }, + "status": { + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "title": "Status", + "type": "string" + }, + "tools": { + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/FunctionTool" + }, + { + "$ref": "#/components/schemas/FileSearchTool" + }, + { + "$ref": "#/components/schemas/ComputerTool" + }, + { + "$ref": "#/components/schemas/ComputerUsePreviewTool" + }, + { + "$ref": "#/components/schemas/WebSearchTool" + }, + { + "$ref": "#/components/schemas/Mcp" + }, + { + "$ref": "#/components/schemas/CodeInterpreter" + }, + { + "$ref": "#/components/schemas/ImageGeneration" + }, + { + "$ref": "#/components/schemas/LocalShell" + }, + { + "$ref": "#/components/schemas/FunctionShellTool" + }, + { + "$ref": "#/components/schemas/CustomTool" + }, + { + "$ref": "#/components/schemas/NamespaceTool" + }, + { + "$ref": "#/components/schemas/ToolSearchTool" + }, + { + "$ref": "#/components/schemas/WebSearchPreviewTool" + }, + { + "$ref": "#/components/schemas/ApplyPatchTool" + } + ] + }, + "title": "Tools", + "type": "array" + }, + "type": { + "const": "tool_search_output", + "title": "Type", + "type": "string" + } + }, + "required": [ + "id", + "execution", + "status", + "tools", + "type" + ], + "title": "ResponseToolSearchOutputItem", + "type": "object" + }, + "ResponsesAPIResponse": { + "additionalProperties": true, + "properties": { + "created_at": { + "title": "Created At", + "type": "integer" + }, + "error": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "title": "Error" + }, + "id": { + "title": "Id", + "type": "string" + }, + "incomplete_details": { + "anyOf": [ + { + "$ref": "#/components/schemas/IncompleteDetails" + }, + { + "type": "null" + } + ] + }, + "instructions": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Instructions" + }, + "max_output_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "title": "Max Output Tokens" + }, + "metadata": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "title": "Metadata" + }, + "model": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Model" + }, + "object": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Object" + }, + "output": { + "anyOf": [ + { + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/ResponseOutputMessage" + }, + { + "$ref": "#/components/schemas/ResponseFileSearchToolCall" + }, + { + "$ref": "#/components/schemas/ResponseFunctionToolCall" + }, + { + "$ref": "#/components/schemas/ResponseFunctionToolCallOutputItem" + }, + { + "$ref": "#/components/schemas/ResponseFunctionWebSearch" + }, + { + "$ref": "#/components/schemas/ResponseComputerToolCall" + }, + { + "$ref": "#/components/schemas/ResponseComputerToolCallOutputItem" + }, + { + "$ref": "#/components/schemas/ResponseReasoningItem" + }, + { + "$ref": "#/components/schemas/ResponseToolSearchCall" + }, + { + "$ref": "#/components/schemas/ResponseToolSearchOutputItem" + }, + { + "$ref": "#/components/schemas/ResponseCompactionItem" + }, + { + "$ref": "#/components/schemas/ImageGenerationCall" + }, + { + "$ref": "#/components/schemas/ResponseCodeInterpreterToolCall" + }, + { + "$ref": "#/components/schemas/LocalShellCall" + }, + { + "$ref": "#/components/schemas/LocalShellCallOutput" + }, + { + "$ref": "#/components/schemas/ResponseFunctionShellToolCall" + }, + { + "$ref": "#/components/schemas/ResponseFunctionShellToolCallOutput" + }, + { + "$ref": "#/components/schemas/ResponseApplyPatchToolCall" + }, + { + "$ref": "#/components/schemas/ResponseApplyPatchToolCallOutput" + }, + { + "$ref": "#/components/schemas/McpCall" + }, + { + "$ref": "#/components/schemas/McpListTools" + }, + { + "$ref": "#/components/schemas/McpApprovalRequest" + }, + { + "$ref": "#/components/schemas/McpApprovalResponse" + }, + { + "$ref": "#/components/schemas/ResponseCustomToolCall" + }, + { + "$ref": "#/components/schemas/ResponseCustomToolCallOutputItem" + }, + { + "additionalProperties": true, + "type": "object" + } + ] + }, + "type": "array" + }, + { + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/GenericResponseOutputItem" + }, + { + "$ref": "#/components/schemas/OutputCodeInterpreterCall" + }, + { + "$ref": "#/components/schemas/OutputFunctionToolCall" + }, + { + "$ref": "#/components/schemas/OutputImageGenerationCall" + }, + { + "$ref": "#/components/schemas/ResponseFunctionToolCall" + }, + { + "$ref": "#/components/schemas/ResponseFunctionWebSearch" + }, + { + "$ref": "#/components/schemas/CustomToolCallOutputItem" + } + ] + }, + "type": "array" + } + ], + "title": "Output" + }, + "parallel_tool_calls": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Parallel Tool Calls" + }, + "previous_response_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Previous Response Id" + }, + "reasoning": { + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "title": "Reasoning" + }, + "status": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Status" + }, + "store": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Store" + }, + "temperature": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Temperature" + }, + "text": { + "anyOf": [ + { + "$ref": "#/components/schemas/ResponseTextConfigParam" + }, + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "title": "Text" + }, + "tool_choice": { + "anyOf": [ + { + "enum": [ + "none", + "auto", + "required" + ], + "type": "string" + }, + { + "$ref": "#/components/schemas/ToolChoiceAllowedParam" + }, + { + "$ref": "#/components/schemas/ToolChoiceTypesParam" + }, + { + "$ref": "#/components/schemas/ToolChoiceFunctionParam" + }, + { + "$ref": "#/components/schemas/ToolChoiceMcpParam" + }, + { + "$ref": "#/components/schemas/ToolChoiceCustomParam" + }, + { + "$ref": "#/components/schemas/ToolChoiceApplyPatchParam" + }, + { + "$ref": "#/components/schemas/ToolChoiceShellParam" + }, + { + "type": "null" + } + ], + "title": "Tool Choice" + }, + "tools": { + "anyOf": [ + { + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/FunctionTool" + }, + { + "$ref": "#/components/schemas/FileSearchTool" + }, + { + "$ref": "#/components/schemas/ComputerTool" + }, + { + "$ref": "#/components/schemas/ComputerUsePreviewTool" + }, + { + "$ref": "#/components/schemas/WebSearchTool" + }, + { + "$ref": "#/components/schemas/Mcp" + }, + { + "$ref": "#/components/schemas/CodeInterpreter" + }, + { + "$ref": "#/components/schemas/ImageGeneration" + }, + { + "$ref": "#/components/schemas/LocalShell" + }, + { + "$ref": "#/components/schemas/FunctionShellTool" + }, + { + "$ref": "#/components/schemas/CustomTool" + }, + { + "$ref": "#/components/schemas/NamespaceTool" + }, + { + "$ref": "#/components/schemas/ToolSearchTool" + }, + { + "$ref": "#/components/schemas/WebSearchPreviewTool" + }, + { + "$ref": "#/components/schemas/ApplyPatchTool" + } + ] + }, + "type": "array" + }, + { + "items": { + "$ref": "#/components/schemas/ResponseFunctionToolCall" + }, + "type": "array" + }, + { + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Tools" + }, + "top_p": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Top P" + }, + "truncation": { + "anyOf": [ + { + "enum": [ + "auto", + "disabled" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Truncation" + }, + "usage": { + "anyOf": [ + { + "$ref": "#/components/schemas/ResponseAPIUsage" + }, + { + "type": "null" + } + ] + }, + "user": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "User" + } + }, + "required": [ + "id", + "created_at", + "output" + ], + "title": "ResponsesAPIResponse", + "type": "object" + }, + "Result": { + "additionalProperties": true, + "properties": { + "attributes": { + "anyOf": [ + { + "additionalProperties": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } + ] + }, + "type": "object" + }, + { + "type": "null" + } + ], + "title": "Attributes" + }, + "file_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "File Id" + }, + "filename": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Filename" + }, + "score": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "title": "Score" + }, + "text": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Text" + } + }, + "title": "Result", + "type": "object" + }, + "Screenshot": { + "additionalProperties": true, + "description": "A screenshot action.", + "properties": { + "type": { + "const": "screenshot", + "title": "Type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "Screenshot", + "type": "object" + }, + "Scroll": { + "additionalProperties": true, + "description": "A scroll action.", + "properties": { + "keys": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Keys" + }, + "scroll_x": { + "title": "Scroll X", + "type": "integer" + }, + "scroll_y": { + "title": "Scroll Y", + "type": "integer" + }, + "type": { + "const": "scroll", + "title": "Type", + "type": "string" + }, + "x": { + "title": "X", + "type": "integer" + }, + "y": { + "title": "Y", + "type": "integer" + } + }, + "required": [ + "scroll_x", + "scroll_y", + "type", + "x", + "y" + ], + "title": "Scroll", + "type": "object" + }, + "SkillReference": { + "additionalProperties": true, + "properties": { + "skill_id": { + "title": "Skill Id", + "type": "string" + }, + "type": { + "const": "skill_reference", + "title": "Type", + "type": "string" + }, + "version": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Version" + } + }, + "required": [ + "skill_id", + "type" + ], + "title": "SkillReference", + "type": "object" + }, + "Summary": { + "additionalProperties": true, + "description": "A summary text from the model.", + "properties": { + "text": { + "title": "Text", + "type": "string" + }, + "type": { + "const": "summary_text", + "title": "Type", + "type": "string" + } + }, + "required": [ + "text", + "type" + ], + "title": "Summary", + "type": "object" + }, + "Text": { + "additionalProperties": true, + "description": "Unconstrained free-form text.", + "properties": { + "type": { + "const": "text", + "title": "Type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "Text", + "type": "object" + }, + "ToolChoiceAllowedParam": { + "additionalProperties": true, + "description": "Constrains the tools available to the model to a pre-defined set.", + "properties": { + "mode": { + "enum": [ + "auto", + "required" + ], + "title": "Mode", + "type": "string" + }, + "tools": { + "items": { + "additionalProperties": true, + "type": "object" + }, + "title": "Tools", + "type": "array" + }, + "type": { + "const": "allowed_tools", + "title": "Type", + "type": "string" + } + }, + "required": [ + "mode", + "tools", + "type" + ], + "title": "ToolChoiceAllowedParam", + "type": "object" + }, + "ToolChoiceApplyPatchParam": { + "additionalProperties": true, + "description": "Forces the model to call the apply_patch tool when executing a tool call.", + "properties": { + "type": { + "const": "apply_patch", + "title": "Type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "ToolChoiceApplyPatchParam", + "type": "object" + }, + "ToolChoiceCustomParam": { + "additionalProperties": true, + "description": "Use this option to force the model to call a specific custom tool.", + "properties": { + "name": { + "title": "Name", + "type": "string" + }, + "type": { + "const": "custom", + "title": "Type", + "type": "string" + } + }, + "required": [ + "name", + "type" + ], + "title": "ToolChoiceCustomParam", + "type": "object" + }, + "ToolChoiceFunctionParam": { + "additionalProperties": true, + "description": "Use this option to force the model to call a specific function.", + "properties": { + "name": { + "title": "Name", + "type": "string" + }, + "type": { + "const": "function", + "title": "Type", + "type": "string" + } + }, + "required": [ + "name", + "type" + ], + "title": "ToolChoiceFunctionParam", + "type": "object" + }, + "ToolChoiceMcpParam": { + "additionalProperties": true, + "description": "Use this option to force the model to call a specific tool on a remote MCP server.", + "properties": { + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Name" + }, + "server_label": { + "title": "Server Label", + "type": "string" + }, + "type": { + "const": "mcp", + "title": "Type", + "type": "string" + } + }, + "required": [ + "server_label", + "type" + ], + "title": "ToolChoiceMcpParam", + "type": "object" + }, + "ToolChoiceShellParam": { + "additionalProperties": true, + "description": "Forces the model to call the shell tool when a tool call is required.", + "properties": { + "type": { + "const": "shell", + "title": "Type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "ToolChoiceShellParam", + "type": "object" + }, + "ToolChoiceTypesParam": { + "additionalProperties": true, + "description": "Indicates that the model should use a built-in tool to generate a response.\n[Learn more about built-in tools](https://platform.openai.com/docs/guides/tools).", + "properties": { + "type": { + "enum": [ + "file_search", + "web_search_preview", + "computer", + "computer_use_preview", + "computer_use", + "web_search_preview_2025_03_11", + "image_generation", + "code_interpreter" + ], + "title": "Type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "ToolChoiceTypesParam", + "type": "object" + }, + "ToolFunction": { + "additionalProperties": true, + "properties": { + "defer_loading": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Defer Loading" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Description" + }, + "name": { + "title": "Name", + "type": "string" + }, + "parameters": { + "anyOf": [ + {}, + { + "type": "null" + } + ], + "title": "Parameters" + }, + "strict": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Strict" + }, + "type": { + "const": "function", + "title": "Type", + "type": "string" + } + }, + "required": [ + "name", + "type" + ], + "title": "ToolFunction", + "type": "object" + }, + "ToolSearchTool": { + "additionalProperties": true, + "description": "Hosted or BYOT tool search configuration for deferred tools.", + "properties": { + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Description" + }, + "execution": { + "anyOf": [ + { + "enum": [ + "server", + "client" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Execution" + }, + "parameters": { + "anyOf": [ + {}, + { + "type": "null" + } + ], + "title": "Parameters" + }, + "type": { + "const": "tool_search", + "title": "Type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "ToolSearchTool", + "type": "object" + }, + "Type": { + "additionalProperties": true, + "description": "An action to type in text.", + "properties": { + "text": { + "title": "Text", + "type": "string" + }, + "type": { + "const": "type", + "title": "Type", + "type": "string" + } + }, + "required": [ + "text", + "type" + ], + "title": "Type", + "type": "object" + }, "ValidationError": { "properties": { "ctx": { @@ -16380,6 +23042,264 @@ ], "title": "ValidationError", "type": "object" + }, + "Wait": { + "additionalProperties": true, + "description": "A wait action.", + "properties": { + "type": { + "const": "wait", + "title": "Type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "Wait", + "type": "object" + }, + "WebSearchPreviewTool": { + "additionalProperties": true, + "description": "This tool searches the web for relevant results to use in a response.\n\nLearn more about the [web search tool](https://platform.openai.com/docs/guides/tools-web-search).", + "properties": { + "search_content_types": { + "anyOf": [ + { + "items": { + "enum": [ + "text", + "image" + ], + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Search Content Types" + }, + "search_context_size": { + "anyOf": [ + { + "enum": [ + "low", + "medium", + "high" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Search Context Size" + }, + "type": { + "enum": [ + "web_search_preview", + "web_search_preview_2025_03_11" + ], + "title": "Type", + "type": "string" + }, + "user_location": { + "anyOf": [ + { + "$ref": "#/components/schemas/openai__types__responses__web_search_preview_tool__UserLocation" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "type" + ], + "title": "WebSearchPreviewTool", + "type": "object" + }, + "WebSearchTool": { + "additionalProperties": true, + "description": "Search the Internet for sources related to the prompt.\n\nLearn more about the\n[web search tool](https://platform.openai.com/docs/guides/tools-web-search).", + "properties": { + "filters": { + "anyOf": [ + { + "$ref": "#/components/schemas/Filters" + }, + { + "type": "null" + } + ] + }, + "search_context_size": { + "anyOf": [ + { + "enum": [ + "low", + "medium", + "high" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Search Context Size" + }, + "type": { + "enum": [ + "web_search", + "web_search_2025_08_26" + ], + "title": "Type", + "type": "string" + }, + "user_location": { + "anyOf": [ + { + "$ref": "#/components/schemas/openai__types__responses__web_search_tool__UserLocation" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "type" + ], + "title": "WebSearchTool", + "type": "object" + }, + "openai__types__responses__web_search_preview_tool__UserLocation": { + "additionalProperties": true, + "description": "The user's location.", + "properties": { + "city": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "City" + }, + "country": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Country" + }, + "region": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Region" + }, + "timezone": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Timezone" + }, + "type": { + "const": "approximate", + "title": "Type", + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "UserLocation", + "type": "object" + }, + "openai__types__responses__web_search_tool__UserLocation": { + "additionalProperties": true, + "description": "The approximate location of the user.", + "properties": { + "city": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "City" + }, + "country": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Country" + }, + "region": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Region" + }, + "timezone": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Timezone" + }, + "type": { + "anyOf": [ + { + "const": "approximate", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Type" + } + }, + "title": "UserLocation", + "type": "object" } } }, @@ -20253,7 +27173,15 @@ "200": { "content": { "application/json": { - "schema": {} + "schema": { + "$ref": "#/components/schemas/ResponsesAPIResponse" + } + }, + "text/event-stream": { + "schema": { + "description": "Server sent events when stream=true", + "type": "string" + } } }, "description": "Successful Response" @@ -20339,7 +27267,9 @@ "200": { "content": { "application/json": { - "schema": {} + "schema": { + "$ref": "#/components/schemas/DeleteResponseResult" + } } }, "description": "Successful Response" @@ -20383,7 +27313,9 @@ "200": { "content": { "application/json": { - "schema": {} + "schema": { + "$ref": "#/components/schemas/ResponsesAPIResponse" + } } }, "description": "Successful Response" @@ -20475,7 +27407,9 @@ "200": { "content": { "application/json": { - "schema": {} + "schema": { + "$ref": "#/components/schemas/ResponseItemList" + } } }, "description": "Successful Response" diff --git a/litellm/proxy/common_utils/custom_openapi_spec.py b/litellm/proxy/common_utils/custom_openapi_spec.py index 2a20e7b07ce..c1d4442893a 100644 --- a/litellm/proxy/common_utils/custom_openapi_spec.py +++ b/litellm/proxy/common_utils/custom_openapi_spec.py @@ -1,5 +1,8 @@ from collections.abc import Mapping, Sequence -from typing import Final, TypeAlias, Union +from types import MappingProxyType +from typing import Final, TypeAlias, Union, cast + +from pydantic import TypeAdapter from litellm._logging import verbose_proxy_logger @@ -28,7 +31,7 @@ class CustomOpenAPISpec: "/openai/deployments/{model}/embeddings", ] - RESPONSES_API_PATHS = ["/v1/responses", "/responses"] + RESPONSES_API_PATHS = ["/v1/responses", "/responses", "/openai/v1/responses"] @staticmethod def _as_object(node: JsonValue) -> JsonObject: @@ -44,26 +47,18 @@ class CustomOpenAPISpec: return CustomOpenAPISpec._as_object(components.setdefault("schemas", {})) @staticmethod - def get_pydantic_schema(model_class) -> JsonObject | None: + def get_pydantic_schema(model_class: type) -> JsonObject | None: """ - Get JSON schema from a Pydantic model, handling both v1 and v2 APIs. + Get JSON schema for a request or response model class, including TypedDicts. Args: - model_class: Pydantic model class + model_class: Pydantic model class or TypedDict Returns: JSON schema dict or None if failed """ try: - # Try Pydantic v2 method first - return model_class.model_json_schema() - except AttributeError: - try: - # Fallback to Pydantic v1 method - return model_class.schema() - except AttributeError: - # If both methods fail, return None - return None + return cast(JsonObject, TypeAdapter(model_class).json_schema()) # cast-ok: pydantic returns dict[str, Any] except Exception as e: # FastAPI 0.120+ may fail schema generation for certain types (e.g., openai.Timeout) # Log the error and return None to skip schema generation for this model @@ -83,13 +78,18 @@ class CustomOpenAPISpec: # Ensure components/schemas structure exists _ = CustomOpenAPISpec._components_schemas(openapi_schema) - # Add the schema - CustomOpenAPISpec._move_defs_to_components(openapi_schema, {schema_name: schema_def}) + defs: Final[Mapping[str, JsonValue]] = ( + CustomOpenAPISpec._as_object(schema_def["$defs"]) if "$defs" in schema_def else MappingProxyType({}) + ) + renames: Final = CustomOpenAPISpec._move_defs_to_components(openapi_schema, defs, schema_name) + schemas: Final = CustomOpenAPISpec._components_schemas(openapi_schema) + schemas[schema_name] = CustomOpenAPISpec._rewrite_defs_refs(schema_def, renames) @staticmethod def _expanded_request_field(field_name: str, field_def: JsonValue) -> JsonValue: expanded: Final = CustomOpenAPISpec._rewrite_defs_refs( - CustomOpenAPISpec._expand_field_definition(CustomOpenAPISpec._as_object(field_def)) + CustomOpenAPISpec._expand_field_definition(CustomOpenAPISpec._as_object(field_def)), + MappingProxyType({}), ) if field_name != "messages": return expanded @@ -127,13 +127,6 @@ class CustomOpenAPISpec: schema_properties = CustomOpenAPISpec._as_object(actual_schema.get("properties")) required_fields = actual_schema.get("required", []) - # Extract $defs and add them to components/schemas - # This fixes Pydantic v2 $defs not being resolvable in Swagger/OpenAPI - if "$defs" in actual_schema: - CustomOpenAPISpec._move_defs_to_components( - openapi_schema, CustomOpenAPISpec._as_object(actual_schema["$defs"]) - ) - # Create an expanded inline schema instead of just a $ref # This makes Swagger UI show all individual fields in the request body editor expanded_schema: JsonObject = { @@ -161,7 +154,9 @@ class CustomOpenAPISpec: ] @staticmethod - def _move_defs_to_components(openapi_schema: JsonObject, defs: Mapping[str, JsonValue]) -> None: + def _move_defs_to_components( + openapi_schema: JsonObject, defs: Mapping[str, JsonValue], namespace: str + ) -> Mapping[str, str]: """ Move $defs from Pydantic v2 schema to OpenAPI components/schemas. This makes the definitions resolvable in Swagger/OpenAPI viewers. @@ -169,36 +164,68 @@ class CustomOpenAPISpec: Args: openapi_schema: The OpenAPI schema dict to modify defs: The $defs dictionary from Pydantic schema + namespace: Prefix used to rename defs that would overwrite an existing component + + Returns: + Map of original def names to renamed component names for collision cases """ - if not defs: - return - - # Ensure components/schemas exists schemas: Final = CustomOpenAPISpec._components_schemas(openapi_schema) - - # Add each definition to components/schemas + renames: Final = CustomOpenAPISpec._fixed_renames(schemas, defs, namespace, MappingProxyType({})) for def_name, def_schema in defs.items(): - # Recursively rewrite any nested $defs references within this definition - schemas[def_name] = CustomOpenAPISpec._rewrite_defs_refs(def_schema) - - # If this definition also has $defs, process them recursively - def_object = CustomOpenAPISpec._as_object(def_schema) - if "$defs" in def_object: - CustomOpenAPISpec._move_defs_to_components( - openapi_schema, CustomOpenAPISpec._as_object(def_object["$defs"]) - ) + if def_name in schemas and def_name not in renames: + continue + schemas[renames.get(def_name, def_name)] = CustomOpenAPISpec._rewrite_defs_refs(def_schema, renames) + return renames @staticmethod - def _rewritten_defs_entry(key: str, value: JsonValue) -> JsonValue: + def _def_collisions( + schemas: JsonObject, defs: Mapping[str, JsonValue], namespace: str, renames: Mapping[str, str] + ) -> Mapping[str, str]: + return MappingProxyType( + { + name: f"{namespace}_{name}" + for name, d in defs.items() + if name in schemas + and not CustomOpenAPISpec._same_shape(schemas[name], CustomOpenAPISpec._rewrite_defs_refs(d, renames)) + } + ) + + @staticmethod + def _same_shape(existing: JsonValue, incoming: JsonValue) -> bool: + if existing == incoming: + return True + existing_obj: Final = CustomOpenAPISpec._as_object(existing) + incoming_obj: Final = CustomOpenAPISpec._as_object(incoming) + existing_props: Final = CustomOpenAPISpec._as_object(existing_obj.get("properties")) + incoming_props: Final = CustomOpenAPISpec._as_object(incoming_obj.get("properties")) + if not existing_props or not incoming_props: + return False + return existing_props.keys() == incoming_props.keys() and frozenset( + x for x in CustomOpenAPISpec._as_array(existing_obj.get("required")) if isinstance(x, str) + ) == frozenset(x for x in CustomOpenAPISpec._as_array(incoming_obj.get("required")) if isinstance(x, str)) + + @staticmethod + def _fixed_renames( + schemas: JsonObject, defs: Mapping[str, JsonValue], namespace: str, renames: Mapping[str, str] + ) -> Mapping[str, str]: + next_renames: Final = MappingProxyType( + {**renames, **CustomOpenAPISpec._def_collisions(schemas, defs, namespace, renames)} + ) + if next_renames == renames: + return renames + return CustomOpenAPISpec._fixed_renames(schemas, defs, namespace, next_renames) + + @staticmethod + def _rewritten_defs_entry(key: str, value: JsonValue, renames: Mapping[str, str]) -> JsonValue: if key == "$ref" and isinstance(value, str) and value.startswith("#/$defs/"): # Rewrite the reference to use components/schemas def_name: Final = value.replace("#/$defs/", "") - return f"#/components/schemas/{def_name}" + return f"#/components/schemas/{renames.get(def_name, def_name)}" # Recursively process nested structures - return CustomOpenAPISpec._rewrite_defs_refs(value) + return CustomOpenAPISpec._rewrite_defs_refs(value, renames) @staticmethod - def _rewrite_defs_refs(schema: JsonValue) -> JsonValue: + def _rewrite_defs_refs(schema: JsonValue, renames: Mapping[str, str]) -> JsonValue: """ Recursively rewrite $ref values from #/$defs/... to #/components/schemas/... This converts Pydantic v2 references to OpenAPI-compatible references. @@ -211,12 +238,12 @@ class CustomOpenAPISpec: """ if isinstance(schema, dict): return { - key: CustomOpenAPISpec._rewritten_defs_entry(key, value) + key: CustomOpenAPISpec._rewritten_defs_entry(key, value, renames) for key, value in schema.items() if key != "$defs" } if isinstance(schema, list): - return [CustomOpenAPISpec._rewrite_defs_refs(item) for item in schema] + return [CustomOpenAPISpec._rewrite_defs_refs(item, renames) for item in schema] return schema @staticmethod diff --git a/litellm/proxy/response_api_endpoints/endpoints.py b/litellm/proxy/response_api_endpoints/endpoints.py index 69c7f0a09ed..ca4008dba3d 100644 --- a/litellm/proxy/response_api_endpoints/endpoints.py +++ b/litellm/proxy/response_api_endpoints/endpoints.py @@ -12,6 +12,7 @@ from uuid import uuid4 import fastapi from fastapi import APIRouter, Depends, HTTPException, Request, Response from fastapi.responses import JSONResponse +from openai.types.responses import ResponseItemList from openai.types.responses.response_create_params import ResponseInputParam from pydantic import BaseModel, ConfigDict, ValidationError from starlette.websockets import WebSocket, WebSocketDisconnect @@ -48,6 +49,20 @@ if TYPE_CHECKING: router: Final = APIRouter() +_ResponseDocSchemas = dict[int | str, dict[str, Any]] # pyright: ignore[reportExplicitAny] # fastapi's responses kwarg + +RESPONSES_API_RESPONSE_SCHEMAS: Final[_ResponseDocSchemas] = {200: {"model": ResponsesAPIResponse}} +RESPONSES_API_CREATE_RESPONSE_SCHEMAS: Final[_ResponseDocSchemas] = { + 200: { + "model": ResponsesAPIResponse, + "content": { + "text/event-stream": {"schema": {"type": "string", "description": "Server sent events when stream=true"}} + }, + } +} +DELETE_RESPONSE_SCHEMAS: Final[_ResponseDocSchemas] = {200: {"model": DeleteResponseResult}} +RESPONSE_ITEM_LIST_SCHEMAS: Final[_ResponseDocSchemas] = {200: {"model": ResponseItemList}} + _user_api_key_auth_dep: Final = Depends(user_api_key_auth) _RESPONSES_TAGS: Final[list[str | Enum]] = ["responses"] # mutable-ok: fastapi's route signature requires list tags @@ -181,16 +196,19 @@ async def _resolve_cursor_model_variant_before_auth(request: Request) -> None: "/v1/responses", dependencies=[Depends(user_api_key_auth)], tags=["responses"], + responses=RESPONSES_API_CREATE_RESPONSE_SCHEMAS, ) @router.post( "/responses", dependencies=[Depends(user_api_key_auth)], tags=["responses"], + responses=RESPONSES_API_CREATE_RESPONSE_SCHEMAS, ) @router.post( "/openai/v1/responses", dependencies=[Depends(user_api_key_auth)], tags=["responses"], + responses=RESPONSES_API_CREATE_RESPONSE_SCHEMAS, ) async def responses_api( request: Request, @@ -664,16 +682,19 @@ async def cursor_chat_completions( "/v1/responses/{response_id}", dependencies=[Depends(user_api_key_auth)], tags=["responses"], + responses=RESPONSES_API_RESPONSE_SCHEMAS, ) @router.get( "/responses/{response_id}", dependencies=[Depends(user_api_key_auth)], tags=["responses"], + responses=RESPONSES_API_RESPONSE_SCHEMAS, ) @router.get( "/openai/v1/responses/{response_id}", dependencies=[Depends(user_api_key_auth)], tags=["responses"], + responses=RESPONSES_API_RESPONSE_SCHEMAS, ) async def get_response( response_id: str, @@ -777,16 +798,19 @@ async def get_response( "/v1/responses/{response_id}", dependencies=[Depends(user_api_key_auth)], tags=["responses"], + responses=DELETE_RESPONSE_SCHEMAS, ) @router.delete( "/responses/{response_id}", dependencies=[Depends(user_api_key_auth)], tags=["responses"], + responses=DELETE_RESPONSE_SCHEMAS, ) @router.delete( "/openai/v1/responses/{response_id}", dependencies=[Depends(user_api_key_auth)], tags=["responses"], + responses=DELETE_RESPONSE_SCHEMAS, ) async def delete_response( response_id: str, @@ -883,16 +907,19 @@ async def delete_response( "/v1/responses/{response_id}/input_items", dependencies=[Depends(user_api_key_auth)], tags=["responses"], + responses=RESPONSE_ITEM_LIST_SCHEMAS, ) @router.get( "/responses/{response_id}/input_items", dependencies=[Depends(user_api_key_auth)], tags=["responses"], + responses=RESPONSE_ITEM_LIST_SCHEMAS, ) @router.get( "/openai/v1/responses/{response_id}/input_items", dependencies=[Depends(user_api_key_auth)], tags=["responses"], + responses=RESPONSE_ITEM_LIST_SCHEMAS, ) async def get_response_input_items( response_id: str, diff --git a/litellm/types/llms/openai.py b/litellm/types/llms/openai.py index 599b1a76249..6e7e9da3498 100644 --- a/litellm/types/llms/openai.py +++ b/litellm/types/llms/openai.py @@ -1301,8 +1301,8 @@ class ResponsesAPIOptionalRequestParams(TypedDict, total=False): class ResponsesAPIRequestParams(ResponsesAPIOptionalRequestParams, total=False): """TypedDict for request parameters supported by the responses API.""" - input: str | ResponseInputParam - model: str + input: Required[ReadOnly[str | ResponseInputParam]] + model: Required[ReadOnly[str]] class OutputTokensDetails(BaseLiteLLMOpenAIResponseObject): diff --git a/tests/integration/compatibility/test_responses_openapi_schema.py b/tests/integration/compatibility/test_responses_openapi_schema.py index 65039bb5f2e..c8c51eccd8c 100644 --- a/tests/integration/compatibility/test_responses_openapi_schema.py +++ b/tests/integration/compatibility/test_responses_openapi_schema.py @@ -1,21 +1,43 @@ -import pytest -from integration._support.client import Gateway, object_value +from typing import Final + +from integration._support.client import Gateway, object_value, string_value from pydantic import JsonValue -def _assert_responses_post_is_documented(openapi: dict[str, JsonValue]) -> None: - post: dict[str, JsonValue] = object_value(object_value(object_value(openapi["paths"])["/v1/responses"])["post"]) - body: dict[str, JsonValue] = object_value(post["requestBody"]) - schema: dict[str, JsonValue] = object_value( - object_value(object_value(body["content"])["application/json"])["schema"] - ) - properties: dict[str, JsonValue] = object_value(schema.get("properties")) - assert "model" in properties and "input" in properties, schema - ok: dict[str, JsonValue] = object_value(object_value(object_value(post)["responses"])["200"]) - assert "schema" in object_value(object_value(ok["content"])["application/json"]), ok +def _operation(openapi: dict[str, JsonValue], path: str, method: str) -> dict[str, JsonValue]: + return object_value(object_value(object_value(openapi["paths"])[path])[method]) + + +def _ok_schema_properties(openapi: dict[str, JsonValue], operation: dict[str, JsonValue]) -> dict[str, JsonValue]: + ok: Final = object_value(object_value(operation["responses"])["200"]) + schema: Final = object_value(object_value(object_value(ok["content"])["application/json"])["schema"]) + if "$ref" in schema: + name: Final = string_value(schema["$ref"]).rsplit("/", 1)[-1] + return object_value(object_value(object_value(object_value(openapi["components"])["schemas"])[name])["properties"]) + assert "properties" in schema, ok + return object_value(schema["properties"]) def test_v1_responses_post_declares_a_request_body_and_response_schema(gateway: Gateway) -> None: - pytest.skip("BUG: POST /v1/responses takes a raw Request, so /openapi.json documents no body or response schema") openapi: dict[str, JsonValue] = gateway.get("/openapi.json") - _assert_responses_post_is_documented(openapi) + post: Final = _operation(openapi, "/v1/responses", "post") + body: Final = object_value(post["requestBody"]) + schema: Final = object_value(object_value(object_value(body["content"])["application/json"])["schema"]) + properties: Final = object_value(schema.get("properties")) + assert {"model", "input", "instructions", "tools", "previous_response_id", "background", "stream"} <= set( + properties + ), sorted(properties) + assert {"id", "object", "output", "usage"} <= set(_ok_schema_properties(openapi, post)), post["responses"] + assert "tool_calls" in object_value( + object_value(object_value(object_value(openapi["components"])["schemas"])["Message"])["properties"] + ) + + +def test_v1_responses_by_id_routes_declare_response_schemas(gateway: Gateway) -> None: + openapi: dict[str, JsonValue] = gateway.get("/openapi.json") + get: Final = _operation(openapi, "/v1/responses/{response_id}", "get") + assert {"id", "object", "output"} <= set(_ok_schema_properties(openapi, get)), get["responses"] + delete: Final = _operation(openapi, "/v1/responses/{response_id}", "delete") + assert {"id", "object", "deleted"} <= set(_ok_schema_properties(openapi, delete)), delete["responses"] + items: Final = _operation(openapi, "/v1/responses/{response_id}/input_items", "get") + assert {"data", "object", "has_more"} <= set(_ok_schema_properties(openapi, items)), items["responses"] diff --git a/tests/test_litellm/proxy/common_utils/test_custom_openapi_spec.py b/tests/test_litellm/proxy/common_utils/test_custom_openapi_spec.py index 5d3100bcc64..485dbcef2f6 100644 --- a/tests/test_litellm/proxy/common_utils/test_custom_openapi_spec.py +++ b/tests/test_litellm/proxy/common_utils/test_custom_openapi_spec.py @@ -153,7 +153,7 @@ def test_move_defs_to_components(): }, } - CustomOpenAPISpec._move_defs_to_components(openapi_schema=openapi_schema, defs=defs) + CustomOpenAPISpec._move_defs_to_components(openapi_schema=openapi_schema, defs=defs, namespace="Req") assert "components" in openapi_schema assert "schemas" in openapi_schema["components"] @@ -185,7 +185,7 @@ def test_rewrite_defs_refs(): }, } - rewritten = CustomOpenAPISpec._rewrite_defs_refs(schema=schema) + rewritten = CustomOpenAPISpec._rewrite_defs_refs(schema=schema, renames={}) assert "$defs" not in rewritten assert ( @@ -196,3 +196,197 @@ def test_rewrite_defs_refs(): rewritten["properties"]["messages"]["items"]["anyOf"][1]["$ref"] == "#/components/schemas/AssistantMessage" ) + + +def test_get_pydantic_schema_generates_schema_for_responses_request_typed_dict(): + from litellm.types.llms.openai import ResponsesAPIRequestParams + + schema = CustomOpenAPISpec.get_pydantic_schema(ResponsesAPIRequestParams) + + assert schema is not None + properties = schema["properties"] + assert isinstance(properties, dict) + for field in ( + "model", + "input", + "instructions", + "tools", + "previous_response_id", + "background", + "stream", + ): + assert field in properties + + +def test_responses_api_paths_covers_all_three_routes(): + assert CustomOpenAPISpec.RESPONSES_API_PATHS == [ + "/v1/responses", + "/responses", + "/openai/v1/responses", + ] + + +def test_add_schema_to_components_renames_colliding_def_instead_of_overwriting(): + openapi = { + "components": { + "schemas": { + "Message": {"type": "object", "properties": {"content": {"type": "string"}}}, + } + } + } + + CustomOpenAPISpec.add_schema_to_components( + openapi, + "Req", + { + "type": "object", + "properties": {"m": {"$ref": "#/$defs/Message"}, "n": {"$ref": "#/$defs/Other"}}, + "$defs": { + "Message": {"type": "object", "properties": {"role": {"type": "string"}}}, + "Other": {"type": "integer"}, + }, + }, + ) + + schemas = openapi["components"]["schemas"] + assert schemas["Message"] == {"type": "object", "properties": {"content": {"type": "string"}}} + assert schemas["Req_Message"] == {"type": "object", "properties": {"role": {"type": "string"}}} + assert schemas["Other"] == {"type": "integer"} + assert schemas["Req"]["properties"]["m"]["$ref"] == "#/components/schemas/Req_Message" + assert schemas["Req"]["properties"]["n"]["$ref"] == "#/components/schemas/Other" + assert "$defs" not in schemas["Req"] + + +def test_add_schema_to_components_keeps_name_for_identical_existing_def(): + openapi = {"components": {"schemas": {"Same": {"type": "integer"}}}} + + CustomOpenAPISpec.add_schema_to_components( + openapi, + "Req", + { + "type": "object", + "properties": {"s": {"$ref": "#/$defs/Same"}}, + "$defs": {"Same": {"type": "integer"}}, + }, + ) + + schemas = openapi["components"]["schemas"] + assert "Req_Same" not in schemas + assert schemas["Req"]["properties"]["s"]["$ref"] == "#/components/schemas/Same" + + +def test_responses_request_params_schema_requires_model_and_input(): + from litellm.types.llms.openai import ResponsesAPIRequestParams + + schema = CustomOpenAPISpec.get_pydantic_schema(ResponsesAPIRequestParams) + + assert schema is not None + assert set(schema["required"]) == {"model", "input"} + + +def test_move_defs_to_components_renames_defs_whose_refs_point_at_renamed_defs(): + openapi = { + "components": { + "schemas": { + "Inner": {"type": "string"}, + "Wrapper": {"$ref": "#/components/schemas/Inner"}, + } + } + } + + renames = CustomOpenAPISpec._move_defs_to_components( + openapi, + { + "Inner": {"type": "integer"}, + "Wrapper": {"$ref": "#/$defs/Inner"}, + }, + "NS", + ) + + schemas = openapi["components"]["schemas"] + assert renames == {"Inner": "NS_Inner", "Wrapper": "NS_Wrapper"} + assert schemas["Inner"] == {"type": "string"} + assert schemas["NS_Inner"] == {"type": "integer"} + assert schemas["Wrapper"] == {"$ref": "#/components/schemas/Inner"} + assert schemas["NS_Wrapper"] == {"$ref": "#/components/schemas/NS_Inner"} + + +def test_add_schema_to_components_keeps_name_for_same_shape_existing_def(): + openapi = { + "components": { + "schemas": { + "Block": { + "type": "object", + "properties": {"type": {"type": "string"}, "x": {"type": "string"}}, + "required": ["type", "x"], + "additionalProperties": True, + }, + } + } + } + + CustomOpenAPISpec.add_schema_to_components( + openapi, + "Req", + { + "type": "object", + "properties": {"b": {"$ref": "#/$defs/Block"}}, + "$defs": { + "Block": { + "type": "object", + "properties": {"type": {"type": "string"}, "x": {"type": "string"}}, + "required": ["type", "x"], + }, + }, + }, + ) + + schemas = openapi["components"]["schemas"] + assert "Req_Block" not in schemas + assert schemas["Block"]["additionalProperties"] is True + assert schemas["Req"]["properties"]["b"]["$ref"] == "#/components/schemas/Block" + + +def test_add_schema_to_components_renames_def_with_different_required_set(): + openapi = { + "components": { + "schemas": { + "Block": { + "type": "object", + "properties": { + "keys": {"type": "array"}, + "type": {"type": "string"}, + "x": {"type": "string"}, + "y": {"type": "string"}, + }, + "required": ["type", "x", "y"], + }, + } + } + } + + CustomOpenAPISpec.add_schema_to_components( + openapi, + "Req", + { + "type": "object", + "properties": {"b": {"$ref": "#/$defs/Block"}}, + "$defs": { + "Block": { + "type": "object", + "properties": { + "keys": {"type": "array"}, + "type": {"type": "string"}, + "x": {"type": "string"}, + "y": {"type": "string"}, + }, + "required": ["keys", "type", "x", "y"], + }, + }, + }, + ) + + schemas = openapi["components"]["schemas"] + assert schemas["Block"]["required"] == ["type", "x", "y"] + assert schemas["Req_Block"]["required"] == ["keys", "type", "x", "y"] + assert schemas["Req"]["properties"]["b"]["$ref"] == "#/components/schemas/Req_Block" diff --git a/tests/test_litellm/proxy/response_api_endpoints/test_endpoints.py b/tests/test_litellm/proxy/response_api_endpoints/test_endpoints.py index 4153bf7d7ee..e684aa55b33 100644 --- a/tests/test_litellm/proxy/response_api_endpoints/test_endpoints.py +++ b/tests/test_litellm/proxy/response_api_endpoints/test_endpoints.py @@ -2427,3 +2427,38 @@ class TestResponsesInputTokens: assert response.status_code == 429, response.text assert response.json()["error"]["message"] == "rate limited" + + +def test_responses_routes_document_response_models_in_openapi_schema(): + from typing import cast + + from fastapi import FastAPI + + from litellm.proxy.response_api_endpoints.endpoints import router + + def as_object(value: object) -> dict[str, object]: + assert isinstance(value, dict) + return cast(dict[str, object], value) + + openapi_app = FastAPI() + openapi_app.include_router(router) + openapi: Final = cast(dict[str, object], openapi_app.openapi()) + + def ok_200_properties(path: str, method: str) -> dict[str, object]: + operation: Final = as_object(as_object(as_object(openapi)["paths"])[path])[method] + schema: Final = as_object( + as_object( + as_object(as_object(as_object(as_object(operation)["responses"])["200"])["content"])["application/json"] + )["schema"] + ) + ref: Final = schema["$ref"] + assert isinstance(ref, str) + component: Final = ref.rsplit("/", 1)[-1] + return as_object( + as_object(as_object(as_object(as_object(openapi)["components"])["schemas"])[component])["properties"] + ) + + assert "output" in ok_200_properties("/v1/responses", "post") + assert "output" in ok_200_properties("/v1/responses/{response_id}", "get") + assert "deleted" in ok_200_properties("/v1/responses/{response_id}", "delete") + assert "data" in ok_200_properties("/v1/responses/{response_id}/input_items", "get") diff --git a/ui/litellm-dashboard/src/lib/http/schema.d.ts b/ui/litellm-dashboard/src/lib/http/schema.d.ts index e52a17390a7..2938e65cfde 100644 --- a/ui/litellm-dashboard/src/lib/http/schema.d.ts +++ b/ui/litellm-dashboard/src/lib/http/schema.d.ts @@ -23700,6 +23700,270 @@ export interface components { /** Description */ description?: string | null; }; + /** + * AcknowledgedSafetyCheck + * @description A pending safety check for the computer call. + */ + AcknowledgedSafetyCheck: { + /** Code */ + code?: string | null; + /** Id */ + id: string; + /** Message */ + message?: string | null; + } & { + [key: string]: unknown; + }; + /** + * Action + * @description The shell commands and limits that describe how to run the tool call. + */ + Action: { + /** Commands */ + commands: string[]; + /** Max Output Length */ + max_output_length?: number | null; + /** Timeout Ms */ + timeout_ms?: number | null; + } & { + [key: string]: unknown; + }; + /** + * ActionClick + * @description A click action. + */ + ActionClick: { + /** + * Button + * @enum {string} + */ + button: "left" | "right" | "wheel" | "back" | "forward"; + /** Keys */ + keys?: string[] | null; + /** + * Type + * @constant + */ + type: "click"; + /** X */ + x: number; + /** Y */ + y: number; + } & { + [key: string]: unknown; + }; + /** + * ActionDoubleClick + * @description A double click action. + */ + ActionDoubleClick: { + /** Keys */ + keys?: string[] | null; + /** + * Type + * @constant + */ + type: "double_click"; + /** X */ + x: number; + /** Y */ + y: number; + } & { + [key: string]: unknown; + }; + /** + * ActionDrag + * @description A drag action. + */ + ActionDrag: { + /** Keys */ + keys?: string[] | null; + /** Path */ + path: components["schemas"]["ActionDragPath"][]; + /** + * Type + * @constant + */ + type: "drag"; + } & { + [key: string]: unknown; + }; + /** + * ActionDragPath + * @description An x/y coordinate pair, e.g. `{ x: 100, y: 200 }`. + */ + ActionDragPath: { + /** X */ + x: number; + /** Y */ + y: number; + } & { + [key: string]: unknown; + }; + /** + * ActionFind + * @description Action type "find_in_page": Searches for a pattern within a loaded page. + */ + ActionFind: { + /** Pattern */ + pattern: string; + /** + * Type + * @constant + */ + type: "find_in_page"; + /** Url */ + url: string; + } & { + [key: string]: unknown; + }; + /** + * ActionKeypress + * @description A collection of keypresses the model would like to perform. + */ + ActionKeypress: { + /** Keys */ + keys: string[]; + /** + * Type + * @constant + */ + type: "keypress"; + } & { + [key: string]: unknown; + }; + /** + * ActionMove + * @description A mouse move action. + */ + ActionMove: { + /** Keys */ + keys?: string[] | null; + /** + * Type + * @constant + */ + type: "move"; + /** X */ + x: number; + /** Y */ + y: number; + } & { + [key: string]: unknown; + }; + /** + * ActionOpenPage + * @description Action type "open_page" - Opens a specific URL from search results. + */ + ActionOpenPage: { + /** + * Type + * @constant + */ + type: "open_page"; + /** Url */ + url?: string | null; + } & { + [key: string]: unknown; + }; + /** + * ActionScreenshot + * @description A screenshot action. + */ + ActionScreenshot: { + /** + * Type + * @constant + */ + type: "screenshot"; + } & { + [key: string]: unknown; + }; + /** + * ActionScroll + * @description A scroll action. + */ + ActionScroll: { + /** Keys */ + keys?: string[] | null; + /** Scroll X */ + scroll_x: number; + /** Scroll Y */ + scroll_y: number; + /** + * Type + * @constant + */ + type: "scroll"; + /** X */ + x: number; + /** Y */ + y: number; + } & { + [key: string]: unknown; + }; + /** + * ActionSearch + * @description Action type "search" - Performs a web search query. + */ + ActionSearch: { + /** Queries */ + queries?: string[] | null; + /** Query */ + query: string; + /** Sources */ + sources?: components["schemas"]["ActionSearchSource"][] | null; + /** + * Type + * @constant + */ + type: "search"; + } & { + [key: string]: unknown; + }; + /** + * ActionSearchSource + * @description A source used in the search. + */ + ActionSearchSource: { + /** + * Type + * @constant + */ + type: "url"; + /** Url */ + url: string; + } & { + [key: string]: unknown; + }; + /** + * ActionType + * @description An action to type in text. + */ + ActionType: { + /** Text */ + text: string; + /** + * Type + * @constant + */ + type: "type"; + } & { + [key: string]: unknown; + }; + /** + * ActionWait + * @description A wait action. + */ + ActionWait: { + /** + * Type + * @constant + */ + type: "wait"; + } & { + [key: string]: unknown; + }; /** * ActiveUsersAnalyticsResponse * @description Response for active users analytics @@ -24070,6 +24334,86 @@ export interface components { /** Index Permissions */ index_permissions: ("read" | "write")[]; }; + /** + * AnnotationContainerFileCitation + * @description A citation for a container file used to generate a model response. + */ + AnnotationContainerFileCitation: { + /** Container Id */ + container_id: string; + /** End Index */ + end_index: number; + /** File Id */ + file_id: string; + /** Filename */ + filename: string; + /** Start Index */ + start_index: number; + /** + * Type + * @constant + */ + type: "container_file_citation"; + } & { + [key: string]: unknown; + }; + /** + * AnnotationFileCitation + * @description A citation to a file. + */ + AnnotationFileCitation: { + /** File Id */ + file_id: string; + /** Filename */ + filename: string; + /** Index */ + index: number; + /** + * Type + * @constant + */ + type: "file_citation"; + } & { + [key: string]: unknown; + }; + /** + * AnnotationFilePath + * @description A path to a file. + */ + AnnotationFilePath: { + /** File Id */ + file_id: string; + /** Index */ + index: number; + /** + * Type + * @constant + */ + type: "file_path"; + } & { + [key: string]: unknown; + }; + /** + * AnnotationURLCitation + * @description A citation for a web resource used to generate a model response. + */ + AnnotationURLCitation: { + /** End Index */ + end_index: number; + /** Start Index */ + start_index: number; + /** Title */ + title: string; + /** + * Type + * @constant + */ + type: "url_citation"; + /** Url */ + url: string; + } & { + [key: string]: unknown; + }; /** ApplyGuardrailRequest */ ApplyGuardrailRequest: { /** Entities */ @@ -24099,6 +24443,117 @@ export interface components { /** Response Text */ response_text: string; }; + /** + * ApplyPatchCall + * @description A tool call representing a request to create, delete, or update files using diff patches. + */ + ApplyPatchCall: { + /** Call Id */ + call_id: string; + /** Id */ + id?: string | null; + /** Operation */ + operation: components["schemas"]["ApplyPatchCallOperationCreateFile"] | components["schemas"]["ApplyPatchCallOperationDeleteFile"] | components["schemas"]["ApplyPatchCallOperationUpdateFile"]; + /** + * Status + * @enum {string} + */ + status: "in_progress" | "completed"; + /** + * Type + * @constant + */ + type: "apply_patch_call"; + }; + /** + * ApplyPatchCallOperationCreateFile + * @description Instruction for creating a new file via the apply_patch tool. + */ + ApplyPatchCallOperationCreateFile: { + /** Diff */ + diff: string; + /** Path */ + path: string; + /** + * Type + * @constant + */ + type: "create_file"; + }; + /** + * ApplyPatchCallOperationDeleteFile + * @description Instruction for deleting an existing file via the apply_patch tool. + */ + ApplyPatchCallOperationDeleteFile: { + /** Path */ + path: string; + /** + * Type + * @constant + */ + type: "delete_file"; + }; + /** + * ApplyPatchCallOperationUpdateFile + * @description Instruction for updating an existing file via the apply_patch tool. + */ + ApplyPatchCallOperationUpdateFile: { + /** Diff */ + diff: string; + /** Path */ + path: string; + /** + * Type + * @constant + */ + type: "update_file"; + }; + /** + * ApplyPatchCallOutput + * @description The streamed output emitted by an apply patch tool call. + */ + ApplyPatchCallOutput: { + /** Call Id */ + call_id: string; + /** Id */ + id?: string | null; + /** Output */ + output?: string | null; + /** + * Status + * @enum {string} + */ + status: "completed" | "failed"; + /** + * Type + * @constant + */ + type: "apply_patch_call_output"; + }; + /** + * ApplyPatchTool + * @description Allows the assistant to create, delete, or update files using unified diffs. + */ + ApplyPatchTool: { + /** + * Type + * @constant + */ + type: "apply_patch"; + } & { + [key: string]: unknown; + }; + /** + * ApplyPatchToolParam + * @description Allows the assistant to create, delete, or update files using unified diffs. + */ + ApplyPatchToolParam: { + /** + * Type + * @constant + */ + type: "apply_patch"; + }; /** * AttachmentImpactResponse * @description Response for estimating the impact of a policy attachment. @@ -26039,6 +26494,15 @@ export interface components { */ uncached_input_tokens: number; }; + /** CachedTokensDetails */ + CachedTokensDetails: { + /** Audio Tokens */ + audio_tokens?: number | null; + /** Image Tokens */ + image_tokens?: number | null; + /** Text Tokens */ + text_tokens?: number | null; + }; /** * CallTypes * @enum {string} @@ -26298,6 +26762,8 @@ export interface components { * @constant */ type: "ephemeral"; + } & { + [key: string]: unknown; }; /** ChatCompletionCustomToolCallPayload */ ChatCompletionCustomToolCallPayload: { @@ -26428,6 +26894,8 @@ export interface components { * @constant */ type: "reasoning"; + } & { + [key: string]: unknown; }; /** ChatCompletionReasoningSummaryTextBlock */ ChatCompletionReasoningSummaryTextBlock: { @@ -26438,6 +26906,8 @@ export interface components { * @constant */ type: "summary_text"; + } & { + [key: string]: unknown; }; /** ChatCompletionRedactedThinkingBlock */ ChatCompletionRedactedThinkingBlock: { @@ -26452,6 +26922,8 @@ export interface components { * @constant */ type: "redacted_thinking"; + } & { + [key: string]: unknown; }; /** ChatCompletionSystemMessage */ ChatCompletionSystemMessage: { @@ -26492,6 +26964,8 @@ export interface components { * @constant */ type: "thinking"; + } & { + [key: string]: unknown; }; /** ChatCompletionTokenLogprob */ ChatCompletionTokenLogprob: { @@ -26801,6 +27275,30 @@ export interface components { */ max_images: number; }; + /** + * Click + * @description A click action. + */ + Click: { + /** + * Button + * @enum {string} + */ + button: "left" | "right" | "wheel" | "back" | "forward"; + /** Keys */ + keys?: string[] | null; + /** + * Type + * @constant + */ + type: "click"; + /** X */ + x: number; + /** Y */ + y: number; + } & { + [key: string]: unknown; + }; /** * CloudZeroExportRequest * @description Request model for CloudZero export operations @@ -26933,6 +27431,59 @@ export interface components { */ timezone?: string | null; }; + /** + * CodeInterpreter + * @description A tool that runs Python code to help generate a response to a prompt. + */ + CodeInterpreter: { + /** Container */ + container: string | components["schemas"]["CodeInterpreterContainerCodeInterpreterToolAuto"]; + /** + * Type + * @constant + */ + type: "code_interpreter"; + } & { + [key: string]: unknown; + }; + /** + * CodeInterpreterContainerCodeInterpreterToolAuto + * @description Configuration for a code interpreter container. + * + * Optionally specify the IDs of the files to run the code on. + */ + CodeInterpreterContainerCodeInterpreterToolAuto: { + /** File Ids */ + file_ids?: string[] | null; + /** Memory Limit */ + memory_limit?: ("1g" | "4g" | "16g" | "64g") | null; + /** Network Policy */ + network_policy?: components["schemas"]["ContainerNetworkPolicyDisabled"] | components["schemas"]["ContainerNetworkPolicyAllowlist"] | null; + /** + * Type + * @constant + */ + type: "auto"; + } & { + [key: string]: unknown; + }; + /** + * ComparisonFilter + * @description A filter used to compare a specified attribute key to a given value using a defined comparison operation. + */ + ComparisonFilter: { + /** Key */ + key: string; + /** + * Type + * @enum {string} + */ + type: "eq" | "ne" | "gt" | "gte" | "lt" | "lte" | "in" | "nin"; + /** Value */ + value: string | number | boolean | (string | number)[]; + } & { + [key: string]: unknown; + }; /** * ComplexityRouterConfigValidationRequest * @description A complexity-router config to validate without saving, so a form can surface the @@ -27038,6 +27589,114 @@ export interface components { /** Regulation */ regulation: string; }; + /** + * CompoundFilter + * @description Combine multiple filters using `and` or `or`. + */ + CompoundFilter: { + /** Filters */ + filters: (components["schemas"]["ComparisonFilter"] | unknown)[]; + /** + * Type + * @enum {string} + */ + type: "and" | "or"; + } & { + [key: string]: unknown; + }; + /** + * ComputerCallOutput + * @description The output of a computer tool call. + */ + ComputerCallOutput: { + /** Acknowledged Safety Checks */ + acknowledged_safety_checks?: components["schemas"]["ComputerCallOutputAcknowledgedSafetyCheck"][] | null; + /** Call Id */ + call_id: string; + /** Id */ + id?: string | null; + output: components["schemas"]["ResponseComputerToolCallOutputScreenshotParam"]; + /** Status */ + status?: ("in_progress" | "completed" | "incomplete") | null; + /** + * Type + * @constant + */ + type: "computer_call_output"; + }; + /** + * ComputerCallOutputAcknowledgedSafetyCheck + * @description A pending safety check for the computer call. + */ + ComputerCallOutputAcknowledgedSafetyCheck: { + /** Code */ + code?: string | null; + /** Id */ + id: string; + /** Message */ + message?: string | null; + }; + /** + * ComputerTool + * @description A tool that controls a virtual computer. + * + * Learn more about the [computer tool](https://platform.openai.com/docs/guides/tools-computer-use). + */ + ComputerTool: { + /** + * Type + * @constant + */ + type: "computer"; + } & { + [key: string]: unknown; + }; + /** + * ComputerUsePreviewTool + * @description A tool that controls a virtual computer. + * + * Learn more about the [computer tool](https://platform.openai.com/docs/guides/tools-computer-use). + */ + ComputerUsePreviewTool: { + /** Display Height */ + display_height: number; + /** Display Width */ + display_width: number; + /** + * Environment + * @enum {string} + */ + environment: "windows" | "mac" | "linux" | "ubuntu" | "browser"; + /** + * Type + * @constant + */ + type: "computer_use_preview"; + } & { + [key: string]: unknown; + }; + /** + * ComputerUsePreviewToolParam + * @description A tool that controls a virtual computer. + * + * Learn more about the [computer tool](https://platform.openai.com/docs/guides/tools-computer-use). + */ + ComputerUsePreviewToolParam: { + /** Display Height */ + display_height: number; + /** Display Width */ + display_width: number; + /** + * Environment + * @enum {string} + */ + environment: "windows" | "mac" | "linux" | "ubuntu" | "browser"; + /** + * Type + * @constant + */ + type: "computer_use_preview"; + }; /** ConfigFieldDelete */ ConfigFieldDelete: { /** @@ -27710,6 +28369,141 @@ export interface components { /** Api Base */ api_base: string; }; + /** ContainerAuto */ + ContainerAuto: { + /** File Ids */ + file_ids?: string[] | null; + /** Memory Limit */ + memory_limit?: ("1g" | "4g" | "16g" | "64g") | null; + /** Network Policy */ + network_policy?: components["schemas"]["ContainerNetworkPolicyDisabled"] | components["schemas"]["ContainerNetworkPolicyAllowlist"] | null; + /** Skills */ + skills?: (components["schemas"]["SkillReference"] | components["schemas"]["InlineSkill"])[] | null; + /** + * Type + * @constant + */ + type: "container_auto"; + } & { + [key: string]: unknown; + }; + /** ContainerAutoParam */ + ContainerAutoParam: { + /** File Ids */ + file_ids?: string[]; + /** Memory Limit */ + memory_limit?: ("1g" | "4g" | "16g" | "64g") | null; + /** Network Policy */ + network_policy?: components["schemas"]["ContainerNetworkPolicyDisabledParam"] | components["schemas"]["ContainerNetworkPolicyAllowlistParam"]; + /** Skills */ + skills?: (components["schemas"]["SkillReferenceParam"] | components["schemas"]["InlineSkillParam"])[]; + /** + * Type + * @constant + */ + type: "container_auto"; + }; + /** ContainerNetworkPolicyAllowlist */ + ContainerNetworkPolicyAllowlist: { + /** Allowed Domains */ + allowed_domains: string[]; + /** Domain Secrets */ + domain_secrets?: components["schemas"]["ContainerNetworkPolicyDomainSecret"][] | null; + /** + * Type + * @constant + */ + type: "allowlist"; + } & { + [key: string]: unknown; + }; + /** ContainerNetworkPolicyAllowlistParam */ + ContainerNetworkPolicyAllowlistParam: { + /** Allowed Domains */ + allowed_domains: string[]; + /** Domain Secrets */ + domain_secrets?: components["schemas"]["ContainerNetworkPolicyDomainSecretParam"][]; + /** + * Type + * @constant + */ + type: "allowlist"; + }; + /** ContainerNetworkPolicyDisabled */ + ContainerNetworkPolicyDisabled: { + /** + * Type + * @constant + */ + type: "disabled"; + } & { + [key: string]: unknown; + }; + /** ContainerNetworkPolicyDisabledParam */ + ContainerNetworkPolicyDisabledParam: { + /** + * Type + * @constant + */ + type: "disabled"; + }; + /** ContainerNetworkPolicyDomainSecret */ + ContainerNetworkPolicyDomainSecret: { + /** Domain */ + domain: string; + /** Name */ + name: string; + /** Value */ + value: string; + } & { + [key: string]: unknown; + }; + /** ContainerNetworkPolicyDomainSecretParam */ + ContainerNetworkPolicyDomainSecretParam: { + /** Domain */ + domain: string; + /** Name */ + name: string; + /** Value */ + value: string; + }; + /** ContainerReference */ + ContainerReference: { + /** Container Id */ + container_id: string; + /** + * Type + * @constant + */ + type: "container_reference"; + } & { + [key: string]: unknown; + }; + /** ContainerReferenceParam */ + ContainerReferenceParam: { + /** Container Id */ + container_id: string; + /** + * Type + * @constant + */ + type: "container_reference"; + }; + /** + * Content + * @description Reasoning text from the model. + */ + Content: { + /** Text */ + text: string; + /** + * Type + * @constant + */ + type: "reasoning_text"; + } & { + [key: string]: unknown; + }; /** * ContentFilterAction * @description Action to take when content filter detects a match @@ -27806,6 +28600,17 @@ export interface components { */ trigger_ratio: number; }; + /** + * ContextManagementEntry + * @description Context management configuration entry for a request. + * See https://developers.openai.com/api/docs/guides/compaction. + */ + ContextManagementEntry: { + /** Compact Threshold */ + compact_threshold?: number; + /** Type */ + type?: string; + }; /** * CoordinationRedisNode * @description A single startup node of a cluster-mode Redis used for proxy coordination. @@ -28261,6 +29066,77 @@ export interface components { /** Weight */ weight: number; }; + /** + * CustomTool + * @description A custom tool that processes input using a specified format. + * + * Learn more about [custom tools](https://platform.openai.com/docs/guides/function-calling#custom-tools) + */ + CustomTool: { + /** Defer Loading */ + defer_loading?: boolean | null; + /** Description */ + description?: string | null; + /** Format */ + format?: components["schemas"]["Text"] | components["schemas"]["Grammar"] | null; + /** Name */ + name: string; + /** + * Type + * @constant + */ + type: "custom"; + } & { + [key: string]: unknown; + }; + /** + * CustomToolCallOutputItem + * @description A custom/freeform tool call output item (e.g. apply_patch). + * + * Mirrors the ``custom_tool_call`` variant of OpenAI's Responses API output. + * Unlike ``OutputFunctionToolCall`` which uses ``arguments`` (JSON string), + * this uses ``input`` (raw string) for the tool payload. + */ + CustomToolCallOutputItem: { + /** Call Id */ + call_id: string; + /** Id */ + id?: string | null; + /** Input */ + input: string; + /** Name */ + name: string; + /** Status */ + status?: ("in_progress" | "completed" | "incomplete") | null; + /** + * Type + * @constant + */ + type: "custom_tool_call"; + } & { + [key: string]: unknown; + }; + /** + * CustomToolParam + * @description A custom tool that processes input using a specified format. + * + * Learn more about [custom tools](https://platform.openai.com/docs/guides/function-calling#custom-tools) + */ + CustomToolParam: { + /** Defer Loading */ + defer_loading?: boolean; + /** Description */ + description?: string; + /** Format */ + format?: components["schemas"]["Text"] | components["schemas"]["Grammar"]; + /** Name */ + name: string; + /** + * Type + * @constant + */ + type: "custom"; + }; /** * CustomerResponse * @description Customer object returned by the /customer read+write endpoints. @@ -28616,6 +29492,26 @@ export interface components { /** Project Ids */ project_ids: string[]; }; + /** + * DeleteResponseResult + * @description Result of a delete response request + * + * { + * "id": "resp_6786a1bec27481909a17d673315b29f6", + * "object": "response", + * "deleted": true + * } + */ + DeleteResponseResult: { + /** Deleted */ + deleted: boolean | null; + /** Id */ + id: string | null; + /** Object */ + object: string | null; + } & { + [key: string]: unknown; + }; /** * DeleteSkillResponse * @description Response from deleting a skill @@ -28713,6 +29609,54 @@ export interface components { */ type: "text"; }; + /** + * DoubleClick + * @description A double click action. + */ + DoubleClick: { + /** Keys */ + keys?: string[] | null; + /** + * Type + * @constant + */ + type: "double_click"; + /** X */ + x: number; + /** Y */ + y: number; + } & { + [key: string]: unknown; + }; + /** + * Drag + * @description A drag action. + */ + Drag: { + /** Keys */ + keys?: string[] | null; + /** Path */ + path: components["schemas"]["DragPath"][]; + /** + * Type + * @constant + */ + type: "drag"; + } & { + [key: string]: unknown; + }; + /** + * DragPath + * @description An x/y coordinate pair, e.g. `{ x: 100, y: 200 }`. + */ + DragPath: { + /** X */ + x: number; + /** Y */ + y: number; + } & { + [key: string]: unknown; + }; /** DynamoDBArgs */ DynamoDBArgs: { /** Assume Role Aws Role Name */ @@ -28767,6 +29711,30 @@ export interface components { /** Write Capacity Units */ write_capacity_units?: number | null; }; + /** + * EasyInputMessageParam + * @description A message input to the model with a role indicating instruction following + * hierarchy. Instructions given with the `developer` or `system` role take + * precedence over instructions given with the `user` role. Messages with the + * `assistant` role are presumed to have been generated by the model in previous + * interactions. + */ + EasyInputMessageParam: { + /** Content */ + content: string | (components["schemas"]["ResponseInputTextParam"] | components["schemas"]["ResponseInputImageParam"] | components["schemas"]["ResponseInputFileParam"])[]; + /** Phase */ + phase?: ("commentary" | "final_answer") | null; + /** + * Role + * @enum {string} + */ + role: "user" | "assistant" | "system" | "developer"; + /** + * Type + * @constant + */ + type?: "message"; + }; /** * EmailEvent * @enum {string} @@ -29079,6 +30047,58 @@ export interface components { /** Stored In Db */ stored_in_db: boolean | null; }; + /** + * FileSearchTool + * @description A tool that searches for relevant content from uploaded files. + * + * Learn more about the [file search tool](https://platform.openai.com/docs/guides/tools-file-search). + */ + FileSearchTool: { + /** Filters */ + filters?: components["schemas"]["ComparisonFilter"] | components["schemas"]["CompoundFilter"] | null; + /** Max Num Results */ + max_num_results?: number | null; + ranking_options?: components["schemas"]["RankingOptions"] | null; + /** + * Type + * @constant + */ + type: "file_search"; + /** Vector Store Ids */ + vector_store_ids: string[]; + } & { + [key: string]: unknown; + }; + /** + * FileSearchToolParam + * @description A tool that searches for relevant content from uploaded files. + * + * Learn more about the [file search tool](https://platform.openai.com/docs/guides/tools-file-search). + */ + FileSearchToolParam: { + /** Filters */ + filters?: components["schemas"]["ComparisonFilter"] | components["schemas"]["CompoundFilter"] | null; + /** Max Num Results */ + max_num_results?: number; + ranking_options?: components["schemas"]["RankingOptions"]; + /** + * Type + * @constant + */ + type: "file_search"; + /** Vector Store Ids */ + vector_store_ids: string[]; + }; + /** + * Filters + * @description Filters for the search. + */ + Filters: { + /** Allowed Domains */ + allowed_domains?: string[] | null; + } & { + [key: string]: unknown; + }; /** FunctionCall */ FunctionCall: { /** Arguments */ @@ -29088,6 +30108,105 @@ export interface components { } & { [key: string]: unknown; }; + /** + * FunctionCallOutput + * @description The output of a function tool call. + */ + FunctionCallOutput: { + /** Call Id */ + call_id: string; + /** Id */ + id?: string | null; + /** Output */ + output: string | (components["schemas"]["ResponseInputTextContentParam"] | components["schemas"]["ResponseInputImageContentParam"] | components["schemas"]["ResponseInputFileContentParam"])[]; + /** Status */ + status?: ("in_progress" | "completed" | "incomplete") | null; + /** + * Type + * @constant + */ + type: "function_call_output"; + }; + /** + * FunctionShellTool + * @description A tool that allows the model to execute shell commands. + */ + FunctionShellTool: { + /** Environment */ + environment?: components["schemas"]["ContainerAuto"] | components["schemas"]["LocalEnvironment"] | components["schemas"]["ContainerReference"] | null; + /** + * Type + * @constant + */ + type: "shell"; + } & { + [key: string]: unknown; + }; + /** + * FunctionShellToolParam + * @description A tool that allows the model to execute shell commands. + */ + FunctionShellToolParam: { + /** Environment */ + environment?: components["schemas"]["ContainerAutoParam"] | components["schemas"]["LocalEnvironmentParam"] | components["schemas"]["ContainerReferenceParam"] | null; + /** + * Type + * @constant + */ + type: "shell"; + }; + /** + * FunctionTool + * @description Defines a function in your own code the model can choose to call. + * + * Learn more about [function calling](https://platform.openai.com/docs/guides/function-calling). + */ + FunctionTool: { + /** Defer Loading */ + defer_loading?: boolean | null; + /** Description */ + description?: string | null; + /** Name */ + name: string; + /** Parameters */ + parameters?: { + [key: string]: unknown; + } | null; + /** Strict */ + strict?: boolean | null; + /** + * Type + * @constant + */ + type: "function"; + } & { + [key: string]: unknown; + }; + /** + * FunctionToolParam + * @description Defines a function in your own code the model can choose to call. + * + * Learn more about [function calling](https://platform.openai.com/docs/guides/function-calling). + */ + FunctionToolParam: { + /** Defer Loading */ + defer_loading?: boolean; + /** Description */ + description?: string | null; + /** Name */ + name: string; + /** Parameters */ + parameters: { + [key: string]: unknown; + } | null; + /** Strict */ + strict: boolean | null; + /** + * Type + * @constant + */ + type: "function"; + }; /** FuseHarnessPreset */ FuseHarnessPreset: { /** Id */ @@ -29537,6 +30656,44 @@ export interface components { /** Tools */ tools?: components["schemas"]["ChatCompletionToolParam"][]; }; + /** + * GenericResponseOutputItem + * @description Generic response API output item + */ + GenericResponseOutputItem: { + /** Content */ + content: components["schemas"]["OutputText"][]; + /** Id */ + id: string; + /** Phase */ + phase?: ("commentary" | "final_answer") | null; + /** Role */ + role: string; + /** Status */ + status: string; + /** Type */ + type: string; + } & { + [key: string]: unknown; + }; + /** + * GenericResponseOutputItemContentAnnotation + * @description Annotation for content in a message + */ + GenericResponseOutputItemContentAnnotation: { + /** End Index */ + end_index: number | null; + /** Start Index */ + start_index: number | null; + /** Title */ + title: string | null; + /** Type */ + type: string | null; + /** Url */ + url: string | null; + } & { + [key: string]: unknown; + }; /** * GetTeamMemberPermissionsResponse * @description Response to get the team member permissions for a team @@ -29561,6 +30718,26 @@ export interface components { /** Starttime */ startTime?: string | null; }; + /** + * Grammar + * @description A grammar defined by the user. + */ + Grammar: { + /** Definition */ + definition: string; + /** + * Syntax + * @enum {string} + */ + syntax: "lark" | "regex"; + /** + * Type + * @constant + */ + type: "grammar"; + } & { + [key: string]: unknown; + }; /** Guardrail */ Guardrail: { /** Created At */ @@ -29764,6 +30941,77 @@ export interface components { /** Ip */ ip: string; }; + /** + * ImageGeneration + * @description A tool that generates images using the GPT image models. + */ + ImageGeneration: { + /** Action */ + action?: ("generate" | "edit" | "auto") | null; + /** Background */ + background?: ("transparent" | "opaque" | "auto") | null; + /** Input Fidelity */ + input_fidelity?: ("high" | "low") | null; + input_image_mask?: components["schemas"]["ImageGenerationInputImageMask"] | null; + /** Model */ + model?: string | ("gpt-image-1" | "gpt-image-1-mini" | "gpt-image-1.5") | null; + /** Moderation */ + moderation?: ("auto" | "low") | null; + /** Output Compression */ + output_compression?: number | null; + /** Output Format */ + output_format?: ("png" | "webp" | "jpeg") | null; + /** Partial Images */ + partial_images?: number | null; + /** Quality */ + quality?: ("low" | "medium" | "high" | "auto") | null; + /** Size */ + size?: ("1024x1024" | "1024x1536" | "1536x1024" | "auto") | null; + /** + * Type + * @constant + */ + type: "image_generation"; + } & { + [key: string]: unknown; + }; + /** + * ImageGenerationCall + * @description An image generation request made by the model. + */ + ImageGenerationCall: { + /** Id */ + id: string; + /** Result */ + result?: string | null; + /** + * Status + * @enum {string} + */ + status: "in_progress" | "completed" | "generating" | "failed"; + /** + * Type + * @constant + */ + type: "image_generation_call"; + } & { + [key: string]: unknown; + }; + /** + * ImageGenerationInputImageMask + * @description Optional mask for inpainting. + * + * Contains `image_url` + * (string, optional) and `file_id` (string, optional). + */ + ImageGenerationInputImageMask: { + /** File Id */ + file_id?: string | null; + /** Image Url */ + image_url?: string | null; + } & { + [key: string]: unknown; + }; /** ImageURLListItem */ ImageURLListItem: { image_url: components["schemas"]["ImageURLObject"]; @@ -29786,6 +31034,16 @@ export interface components { } & { [key: string]: unknown; }; + /** + * IncompleteDetails + * @description Details about why the response is incomplete. + */ + IncompleteDetails: { + /** Reason */ + reason?: ("max_output_tokens" | "content_filter") | null; + } & { + [key: string]: unknown; + }; /** IndexCreateLiteLLMParams */ IndexCreateLiteLLMParams: { /** Vector Store Index */ @@ -29814,6 +31072,72 @@ export interface components { */ object: "list"; }; + /** InlineSkill */ + InlineSkill: { + /** Description */ + description: string; + /** Name */ + name: string; + source: components["schemas"]["InlineSkillSource"]; + /** + * Type + * @constant + */ + type: "inline"; + } & { + [key: string]: unknown; + }; + /** InlineSkillParam */ + InlineSkillParam: { + /** Description */ + description: string; + /** Name */ + name: string; + source: components["schemas"]["InlineSkillSourceParam"]; + /** + * Type + * @constant + */ + type: "inline"; + }; + /** + * InlineSkillSource + * @description Inline skill payload + */ + InlineSkillSource: { + /** Data */ + data: string; + /** + * Media Type + * @constant + */ + media_type: "application/zip"; + /** + * Type + * @constant + */ + type: "base64"; + } & { + [key: string]: unknown; + }; + /** + * InlineSkillSourceParam + * @description Inline skill payload + */ + InlineSkillSourceParam: { + /** Data */ + data: string; + /** + * Media Type + * @constant + */ + media_type: "application/zip"; + /** + * Type + * @constant + */ + type: "base64"; + }; /** InputAudio */ InputAudio: { /** Data */ @@ -29824,6 +31148,25 @@ export interface components { */ format: "wav" | "mp3"; }; + /** InputTokensDetails */ + InputTokensDetails: { + /** Audio Tokens */ + audio_tokens?: number | null; + /** + * Cached Tokens + * @default 0 + */ + cached_tokens: number; + cached_tokens_details?: components["schemas"]["CachedTokensDetails"] | null; + /** Image Tokens */ + image_tokens?: number | null; + /** Text Tokens */ + text_tokens?: number | null; + /** Video Tokens */ + video_tokens?: number | null; + } & { + [key: string]: unknown; + }; /** * InternalUserSettingsResponse * @description Response model for internal user settings @@ -29894,6 +31237,16 @@ export interface components { /** Is Accepted */ is_accepted: boolean; }; + /** + * ItemReference + * @description An internal identifier for an item to reference. + */ + ItemReference: { + /** Id */ + id: string; + /** Type */ + type?: "item_reference" | null; + }; /** JWTKeyMappingResponse */ JWTKeyMappingResponse: { /** @@ -30072,6 +31425,21 @@ export interface components { /** Tpm Limit Type */ tpm_limit_type?: ("guaranteed_throughput" | "best_effort_throughput" | "dynamic") | null; }; + /** + * Keypress + * @description A collection of keypresses the model would like to perform. + */ + Keypress: { + /** Keys */ + keys: string[]; + /** + * Type + * @constant + */ + type: "keypress"; + } & { + [key: string]: unknown; + }; /** * KeywordTierRule * @description A deterministic override: if any keyword matches, route to this tier. @@ -33208,6 +34576,128 @@ export interface components { * @enum {string} */ LitellmUserRoles: "proxy_admin" | "proxy_admin_viewer" | "org_admin" | "internal_user" | "internal_user_viewer" | "team" | "customer"; + /** LocalEnvironment */ + LocalEnvironment: { + /** Skills */ + skills?: components["schemas"]["LocalSkill"][] | null; + /** + * Type + * @constant + */ + type: "local"; + } & { + [key: string]: unknown; + }; + /** LocalEnvironmentParam */ + LocalEnvironmentParam: { + /** Skills */ + skills?: components["schemas"]["LocalSkillParam"][]; + /** + * Type + * @constant + */ + type: "local"; + }; + /** + * LocalShell + * @description A tool that allows the model to execute shell commands in a local environment. + */ + LocalShell: { + /** + * Type + * @constant + */ + type: "local_shell"; + } & { + [key: string]: unknown; + }; + /** + * LocalShellCall + * @description A tool call to run a command on the local shell. + */ + LocalShellCall: { + action: components["schemas"]["LocalShellCallAction"]; + /** Call Id */ + call_id: string; + /** Id */ + id: string; + /** + * Status + * @enum {string} + */ + status: "in_progress" | "completed" | "incomplete"; + /** + * Type + * @constant + */ + type: "local_shell_call"; + } & { + [key: string]: unknown; + }; + /** + * LocalShellCallAction + * @description Execute a shell command on the server. + */ + LocalShellCallAction: { + /** Command */ + command: string[]; + /** Env */ + env: { + [key: string]: string; + }; + /** Timeout Ms */ + timeout_ms?: number | null; + /** + * Type + * @constant + */ + type: "exec"; + /** User */ + user?: string | null; + /** Working Directory */ + working_directory?: string | null; + } & { + [key: string]: unknown; + }; + /** + * LocalShellCallOutput + * @description The output of a local shell tool call. + */ + LocalShellCallOutput: { + /** Id */ + id: string; + /** Output */ + output: string; + /** Status */ + status?: ("in_progress" | "completed" | "incomplete") | null; + /** + * Type + * @constant + */ + type: "local_shell_call_output"; + } & { + [key: string]: unknown; + }; + /** LocalSkill */ + LocalSkill: { + /** Description */ + description: string; + /** Name */ + name: string; + /** Path */ + path: string; + } & { + [key: string]: unknown; + }; + /** LocalSkillParam */ + LocalSkillParam: { + /** Description */ + description: string; + /** Name */ + name: string; + /** Path */ + path: string; + }; /** LoggingCallbackStatus */ LoggingCallbackStatus: { /** Callbacks */ @@ -33220,6 +34710,36 @@ export interface components { */ status?: "healthy" | "unhealthy"; }; + /** + * Logprob + * @description The log probability of a token. + */ + Logprob: { + /** Bytes */ + bytes: number[]; + /** Logprob */ + logprob: number; + /** Token */ + token: string; + /** Top Logprobs */ + top_logprobs: components["schemas"]["LogprobTopLogprob"][]; + } & { + [key: string]: unknown; + }; + /** + * LogprobTopLogprob + * @description The top log probability of a token. + */ + LogprobTopLogprob: { + /** Bytes */ + bytes: number[]; + /** Logprob */ + logprob: number; + /** Token */ + token: string; + } & { + [key: string]: unknown; + }; /** * MCPAllowedClient * @description One entry of `general_settings.mcp_allowed_clients`. @@ -33726,6 +35246,198 @@ export interface components { /** Mcp Server Ids */ mcp_server_ids: string[]; }; + /** + * Mcp + * @description Give the model access to additional tools via remote Model Context Protocol + * (MCP) servers. [Learn more about MCP](https://platform.openai.com/docs/guides/tools-remote-mcp). + */ + Mcp: { + /** Allowed Tools */ + allowed_tools?: string[] | components["schemas"]["McpAllowedToolsMcpToolFilter"] | null; + /** Authorization */ + authorization?: string | null; + /** Connector Id */ + connector_id?: ("connector_dropbox" | "connector_gmail" | "connector_googlecalendar" | "connector_googledrive" | "connector_microsoftteams" | "connector_outlookcalendar" | "connector_outlookemail" | "connector_sharepoint") | null; + /** Defer Loading */ + defer_loading?: boolean | null; + /** Headers */ + headers?: { + [key: string]: string; + } | null; + /** Require Approval */ + require_approval?: components["schemas"]["McpRequireApprovalMcpToolApprovalFilter"] | ("always" | "never") | null; + /** Server Description */ + server_description?: string | null; + /** Server Label */ + server_label: string; + /** Server Url */ + server_url?: string | null; + /** + * Type + * @constant + */ + type: "mcp"; + } & { + [key: string]: unknown; + }; + /** + * McpAllowedToolsMcpToolFilter + * @description A filter object to specify which tools are allowed. + */ + McpAllowedToolsMcpToolFilter: { + /** Read Only */ + read_only?: boolean | null; + /** Tool Names */ + tool_names?: string[] | null; + } & { + [key: string]: unknown; + }; + /** + * McpApprovalRequest + * @description A request for human approval of a tool invocation. + */ + McpApprovalRequest: { + /** Arguments */ + arguments: string; + /** Id */ + id: string; + /** Name */ + name: string; + /** Server Label */ + server_label: string; + /** + * Type + * @constant + */ + type: "mcp_approval_request"; + } & { + [key: string]: unknown; + }; + /** + * McpApprovalResponse + * @description A response to an MCP approval request. + */ + McpApprovalResponse: { + /** Approval Request Id */ + approval_request_id: string; + /** Approve */ + approve: boolean; + /** Id */ + id: string; + /** Reason */ + reason?: string | null; + /** + * Type + * @constant + */ + type: "mcp_approval_response"; + } & { + [key: string]: unknown; + }; + /** + * McpCall + * @description An invocation of a tool on an MCP server. + */ + McpCall: { + /** Approval Request Id */ + approval_request_id?: string | null; + /** Arguments */ + arguments: string; + /** Error */ + error?: string | null; + /** Id */ + id: string; + /** Name */ + name: string; + /** Output */ + output?: string | null; + /** Server Label */ + server_label: string; + /** Status */ + status?: ("in_progress" | "completed" | "incomplete" | "calling" | "failed") | null; + /** + * Type + * @constant + */ + type: "mcp_call"; + } & { + [key: string]: unknown; + }; + /** + * McpListTools + * @description A list of tools available on an MCP server. + */ + McpListTools: { + /** Error */ + error?: string | null; + /** Id */ + id: string; + /** Server Label */ + server_label: string; + /** Tools */ + tools: components["schemas"]["McpListToolsTool"][]; + /** + * Type + * @constant + */ + type: "mcp_list_tools"; + } & { + [key: string]: unknown; + }; + /** + * McpListToolsTool + * @description A tool available on an MCP server. + */ + McpListToolsTool: { + /** Annotations */ + annotations?: unknown | null; + /** Description */ + description?: string | null; + /** Input Schema */ + input_schema: unknown; + /** Name */ + name: string; + } & { + [key: string]: unknown; + }; + /** + * McpRequireApprovalMcpToolApprovalFilter + * @description Specify which of the MCP server's tools require approval. + * + * Can be + * `always`, `never`, or a filter object associated with tools + * that require approval. + */ + McpRequireApprovalMcpToolApprovalFilter: { + always?: components["schemas"]["McpRequireApprovalMcpToolApprovalFilterAlways"] | null; + never?: components["schemas"]["McpRequireApprovalMcpToolApprovalFilterNever"] | null; + } & { + [key: string]: unknown; + }; + /** + * McpRequireApprovalMcpToolApprovalFilterAlways + * @description A filter object to specify which tools are allowed. + */ + McpRequireApprovalMcpToolApprovalFilterAlways: { + /** Read Only */ + read_only?: boolean | null; + /** Tool Names */ + tool_names?: string[] | null; + } & { + [key: string]: unknown; + }; + /** + * McpRequireApprovalMcpToolApprovalFilterNever + * @description A filter object to specify which tools are allowed. + */ + McpRequireApprovalMcpToolApprovalFilterNever: { + /** Read Only */ + read_only?: boolean | null; + /** Tool Names */ + tool_names?: string[] | null; + } & { + [key: string]: unknown; + }; /** Member */ Member: { /** @@ -34053,6 +35765,25 @@ export interface components { } & { [key: string]: unknown; }; + /** + * Move + * @description A mouse move action. + */ + Move: { + /** Keys */ + keys?: string[] | null; + /** + * Type + * @constant + */ + type: "move"; + /** X */ + x: number; + /** Y */ + y: number; + } & { + [key: string]: unknown; + }; /** * MutualTLSSecurityScheme * @description Defines a security scheme using mTLS authentication. @@ -34066,6 +35797,42 @@ export interface components { */ type: "mutualTLS"; }; + /** + * NamespaceTool + * @description Groups function/custom tools under a shared namespace. + */ + NamespaceTool: { + /** Description */ + description: string; + /** Name */ + name: string; + /** Tools */ + tools: (components["schemas"]["ToolFunction"] | components["schemas"]["CustomTool"])[]; + /** + * Type + * @constant + */ + type: "namespace"; + } & { + [key: string]: unknown; + }; + /** + * NamespaceToolParam + * @description Groups function/custom tools under a shared namespace. + */ + NamespaceToolParam: { + /** Description */ + description: string; + /** Name */ + name: string; + /** Tools */ + tools: (components["schemas"]["ToolFunction"] | components["schemas"]["CustomToolParam"])[]; + /** + * Type + * @constant + */ + type: "namespace"; + }; /** * NewCustomerRequest * @description Create a new customer, allocate a budget to them @@ -35039,6 +36806,55 @@ export interface components { */ type: "openIdConnect"; }; + /** + * OperationCreateFile + * @description Instruction describing how to create a file via the apply_patch tool. + */ + OperationCreateFile: { + /** Diff */ + diff: string; + /** Path */ + path: string; + /** + * Type + * @constant + */ + type: "create_file"; + } & { + [key: string]: unknown; + }; + /** + * OperationDeleteFile + * @description Instruction describing how to delete a file via the apply_patch tool. + */ + OperationDeleteFile: { + /** Path */ + path: string; + /** + * Type + * @constant + */ + type: "delete_file"; + } & { + [key: string]: unknown; + }; + /** + * OperationUpdateFile + * @description Instruction describing how to update a file via the apply_patch tool. + */ + OperationUpdateFile: { + /** Diff */ + diff: string; + /** Path */ + path: string; + /** + * Type + * @constant + */ + type: "update_file"; + } & { + [key: string]: unknown; + }; /** OrgMember */ OrgMember: { /** @@ -35136,6 +36952,217 @@ export interface components { /** Tpm Limit */ tpm_limit?: number | null; }; + /** + * OutcomeExit + * @description Indicates that the shell commands finished and returned an exit code. + */ + OutcomeExit: { + /** Exit Code */ + exit_code: number; + /** + * Type + * @constant + */ + type: "exit"; + }; + /** + * OutcomeTimeout + * @description Indicates that the shell call exceeded its configured time limit. + */ + OutcomeTimeout: { + /** + * Type + * @constant + */ + type: "timeout"; + }; + /** + * Output + * @description The content of a shell tool call output that was emitted. + */ + Output: { + /** Created By */ + created_by?: string | null; + /** Outcome */ + outcome: components["schemas"]["OutputOutcomeTimeout"] | components["schemas"]["OutputOutcomeExit"]; + /** Stderr */ + stderr: string; + /** Stdout */ + stdout: string; + } & { + [key: string]: unknown; + }; + /** + * OutputCodeInterpreterCall + * @description A code interpreter / code execution call output + */ + OutputCodeInterpreterCall: { + /** Code */ + code: string | null; + /** Container Id */ + container_id: string | null; + /** Id */ + id: string; + /** Outputs */ + outputs: components["schemas"]["OutputCodeInterpreterCallLog"][] | null; + /** + * Status + * @enum {string} + */ + status: "in_progress" | "completed" | "incomplete" | "failed"; + /** + * Type + * @constant + */ + type: "code_interpreter_call"; + } & { + [key: string]: unknown; + }; + /** + * OutputCodeInterpreterCallLog + * @description Log output from a code interpreter call + */ + OutputCodeInterpreterCallLog: { + /** Logs */ + logs: string; + /** + * Type + * @constant + */ + type: "logs"; + } & { + [key: string]: unknown; + }; + /** + * OutputFunctionToolCall + * @description A tool call to run a function + */ + OutputFunctionToolCall: { + /** Arguments */ + arguments: string | null; + /** Call Id */ + call_id: string | null; + /** Id */ + id: string | null; + /** Name */ + name: string | null; + /** Phase */ + phase?: ("commentary" | "final_answer") | null; + /** + * Status + * @enum {string} + */ + status: "in_progress" | "completed" | "incomplete"; + /** Type */ + type: string | null; + } & { + [key: string]: unknown; + }; + /** + * OutputImage + * @description The image output from the code interpreter. + */ + OutputImage: { + /** + * Type + * @constant + */ + type: "image"; + /** Url */ + url: string; + } & { + [key: string]: unknown; + }; + /** + * OutputImageGenerationCall + * @description An image generation call output + */ + OutputImageGenerationCall: { + /** Id */ + id: string; + /** Result */ + result: string | null; + /** + * Status + * @enum {string} + */ + status: "in_progress" | "completed" | "incomplete" | "failed"; + /** + * Type + * @constant + */ + type: "image_generation_call"; + } & { + [key: string]: unknown; + }; + /** + * OutputLogs + * @description The logs output from the code interpreter. + */ + OutputLogs: { + /** Logs */ + logs: string; + /** + * Type + * @constant + */ + type: "logs"; + } & { + [key: string]: unknown; + }; + /** + * OutputOutcomeExit + * @description Indicates that the shell commands finished and returned an exit code. + */ + OutputOutcomeExit: { + /** Exit Code */ + exit_code: number; + /** + * Type + * @constant + */ + type: "exit"; + } & { + [key: string]: unknown; + }; + /** + * OutputOutcomeTimeout + * @description Indicates that the shell call exceeded its configured time limit. + */ + OutputOutcomeTimeout: { + /** + * Type + * @constant + */ + type: "timeout"; + } & { + [key: string]: unknown; + }; + /** + * OutputText + * @description Text output content from an assistant message + */ + OutputText: { + /** Annotations */ + annotations: components["schemas"]["GenericResponseOutputItemContentAnnotation"][] | null; + /** Text */ + text: string | null; + /** Type */ + type: string | null; + } & { + [key: string]: unknown; + }; + /** OutputTokensDetails */ + OutputTokensDetails: { + /** Audio Tokens */ + audio_tokens?: number | null; + /** Reasoning Tokens */ + reasoning_tokens?: number | null; + /** Text Tokens */ + text_tokens?: number | null; + } & { + [key: string]: unknown; + }; /** * PageLinks * @description Hypermedia for a paginated list. No `first`/`last`: without a total count the last page is unknown. @@ -35437,6 +37464,20 @@ export interface components { /** Tpm Limit */ tpm_limit?: number | null; }; + /** + * PendingSafetyCheck + * @description A pending safety check for the computer call. + */ + PendingSafetyCheck: { + /** Code */ + code?: string | null; + /** Id */ + id: string; + /** Message */ + message?: string | null; + } & { + [key: string]: unknown; + }; /** * PerTestingCriteriaResult * @description Results for a specific testing criteria @@ -36319,6 +38360,19 @@ export interface components { prompt_id: string; prompt_info?: components["schemas"]["PromptInfo"] | null; }; + /** PromptCacheOptions */ + PromptCacheOptions: { + /** + * Mode + * @enum {string} + */ + mode?: "implicit" | "explicit"; + /** + * Ttl + * @constant + */ + ttl?: "30m"; + }; /** PromptCachingRequest */ PromptCachingRequest: { /** Cache Creation Tokens */ @@ -36412,6 +38466,20 @@ export interface components { } & { [key: string]: unknown; }; + /** + * PromptObject + * @description Reference to a stored prompt template. + */ + PromptObject: { + /** Id */ + id: string; + /** Variables */ + variables?: { + [key: string]: unknown; + } | null; + /** Version */ + version?: string | null; + }; /** PromptSpec */ PromptSpec: { /** Created At */ @@ -36702,6 +38770,31 @@ export interface components { }; } | null; }; + /** + * RankingOptions + * @description Ranking options for search. + */ + RankingOptions: { + hybrid_search?: components["schemas"]["RankingOptionsHybridSearch"] | null; + /** Ranker */ + ranker?: ("auto" | "default-2024-11-15") | null; + /** Score Threshold */ + score_threshold?: number | null; + } & { + [key: string]: unknown; + }; + /** + * RankingOptionsHybridSearch + * @description Weights that control how reciprocal rank fusion balances semantic embedding matches versus sparse keyword matches when hybrid search is enabled. + */ + RankingOptionsHybridSearch: { + /** Embedding Weight */ + embedding_weight: number; + /** Text Weight */ + text_weight: number; + } & { + [key: string]: unknown; + }; /** RawRequestTypedDict */ RawRequestTypedDict: { /** Error */ @@ -36750,6 +38843,21 @@ export interface components { } & { [key: string]: unknown; }; + /** + * Reasoning + * @description **gpt-5 and o-series models only** + * + * Configuration options for + * [reasoning models](https://platform.openai.com/docs/guides/reasoning). + */ + Reasoning: { + /** Effort */ + effort?: ("none" | "minimal" | "low" | "medium" | "high" | "xhigh") | null; + /** Generate Summary */ + generate_summary?: ("auto" | "concise" | "detailed") | null; + /** Summary */ + summary?: ("auto" | "concise" | "detailed") | null; + }; /** RegenerateKeyRequest */ RegenerateKeyRequest: { /** Access Group Ids */ @@ -37420,10 +39528,1489 @@ export interface components { /** Reset To */ reset_to: number; }; + /** ResponseAPIUsage */ + ResponseAPIUsage: { + /** Cost */ + cost?: number | null; + /** Input Tokens */ + input_tokens: number; + input_tokens_details?: components["schemas"]["InputTokensDetails"] | null; + /** Output Tokens */ + output_tokens: number; + output_tokens_details?: components["schemas"]["OutputTokensDetails"] | null; + /** Total Tokens */ + total_tokens: number; + } & { + [key: string]: unknown; + }; + /** + * ResponseApplyPatchToolCall + * @description A tool call that applies file diffs by creating, deleting, or updating files. + */ + ResponseApplyPatchToolCall: { + /** Call Id */ + call_id: string; + /** Created By */ + created_by?: string | null; + /** Id */ + id: string; + /** Operation */ + operation: components["schemas"]["OperationCreateFile"] | components["schemas"]["OperationDeleteFile"] | components["schemas"]["OperationUpdateFile"]; + /** + * Status + * @enum {string} + */ + status: "in_progress" | "completed"; + /** + * Type + * @constant + */ + type: "apply_patch_call"; + } & { + [key: string]: unknown; + }; + /** + * ResponseApplyPatchToolCallOutput + * @description The output emitted by an apply patch tool call. + */ + ResponseApplyPatchToolCallOutput: { + /** Call Id */ + call_id: string; + /** Created By */ + created_by?: string | null; + /** Id */ + id: string; + /** Output */ + output?: string | null; + /** + * Status + * @enum {string} + */ + status: "completed" | "failed"; + /** + * Type + * @constant + */ + type: "apply_patch_call_output"; + } & { + [key: string]: unknown; + }; + /** + * ResponseCodeInterpreterToolCall + * @description A tool call to run code. + */ + ResponseCodeInterpreterToolCall: { + /** Code */ + code?: string | null; + /** Container Id */ + container_id: string; + /** Id */ + id: string; + /** Outputs */ + outputs?: (components["schemas"]["OutputLogs"] | components["schemas"]["OutputImage"])[] | null; + /** + * Status + * @enum {string} + */ + status: "in_progress" | "completed" | "incomplete" | "interpreting" | "failed"; + /** + * Type + * @constant + */ + type: "code_interpreter_call"; + } & { + [key: string]: unknown; + }; + /** + * ResponseCodeInterpreterToolCallParam + * @description A tool call to run code. + */ + ResponseCodeInterpreterToolCallParam: { + /** Code */ + code: string | null; + /** Container Id */ + container_id: string; + /** Id */ + id: string; + /** Outputs */ + outputs: (components["schemas"]["OutputLogs"] | components["schemas"]["OutputImage"])[] | null; + /** + * Status + * @enum {string} + */ + status: "in_progress" | "completed" | "incomplete" | "interpreting" | "failed"; + /** + * Type + * @constant + */ + type: "code_interpreter_call"; + }; + /** + * ResponseCompactionItem + * @description A compaction item generated by the [`v1/responses/compact` API](https://platform.openai.com/docs/api-reference/responses/compact). + */ + ResponseCompactionItem: { + /** Created By */ + created_by?: string | null; + /** Encrypted Content */ + encrypted_content: string; + /** Id */ + id: string; + /** + * Type + * @constant + */ + type: "compaction"; + } & { + [key: string]: unknown; + }; + /** + * ResponseCompactionItemParamParam + * @description A compaction item generated by the [`v1/responses/compact` API](https://platform.openai.com/docs/api-reference/responses/compact). + */ + ResponseCompactionItemParamParam: { + /** Encrypted Content */ + encrypted_content: string; + /** Id */ + id?: string | null; + /** + * Type + * @constant + */ + type: "compaction"; + }; + /** + * ResponseComputerToolCall + * @description A tool call to a computer use tool. + * + * See the + * [computer use guide](https://platform.openai.com/docs/guides/tools-computer-use) for more information. + */ + ResponseComputerToolCall: { + /** Action */ + action?: components["schemas"]["ActionClick"] | components["schemas"]["ActionDoubleClick"] | components["schemas"]["ActionDrag"] | components["schemas"]["ActionKeypress"] | components["schemas"]["ActionMove"] | components["schemas"]["ActionScreenshot"] | components["schemas"]["ActionScroll"] | components["schemas"]["ActionType"] | components["schemas"]["ActionWait"] | null; + /** Actions */ + actions?: (components["schemas"]["Click"] | components["schemas"]["DoubleClick"] | components["schemas"]["Drag"] | components["schemas"]["Keypress"] | components["schemas"]["Move"] | components["schemas"]["Screenshot"] | components["schemas"]["Scroll"] | components["schemas"]["Type"] | components["schemas"]["Wait"])[] | null; + /** Call Id */ + call_id: string; + /** Id */ + id: string; + /** Pending Safety Checks */ + pending_safety_checks: components["schemas"]["PendingSafetyCheck"][]; + /** + * Status + * @enum {string} + */ + status: "in_progress" | "completed" | "incomplete"; + /** + * Type + * @constant + */ + type: "computer_call"; + } & { + [key: string]: unknown; + }; + /** ResponseComputerToolCallOutputItem */ + ResponseComputerToolCallOutputItem: { + /** Acknowledged Safety Checks */ + acknowledged_safety_checks?: components["schemas"]["AcknowledgedSafetyCheck"][] | null; + /** Call Id */ + call_id: string; + /** Created By */ + created_by?: string | null; + /** Id */ + id: string; + output: components["schemas"]["ResponseComputerToolCallOutputScreenshot"]; + /** + * Status + * @enum {string} + */ + status: "completed" | "incomplete" | "failed" | "in_progress"; + /** + * Type + * @constant + */ + type: "computer_call_output"; + } & { + [key: string]: unknown; + }; + /** + * ResponseComputerToolCallOutputScreenshot + * @description A computer screenshot image used with the computer use tool. + */ + ResponseComputerToolCallOutputScreenshot: { + /** File Id */ + file_id?: string | null; + /** Image Url */ + image_url?: string | null; + /** + * Type + * @constant + */ + type: "computer_screenshot"; + } & { + [key: string]: unknown; + }; + /** + * ResponseComputerToolCallOutputScreenshotParam + * @description A computer screenshot image used with the computer use tool. + */ + ResponseComputerToolCallOutputScreenshotParam: { + /** File Id */ + file_id?: string; + /** Image Url */ + image_url?: string; + /** + * Type + * @constant + */ + type: "computer_screenshot"; + }; + /** + * ResponseComputerToolCallParam + * @description A tool call to a computer use tool. + * + * See the + * [computer use guide](https://platform.openai.com/docs/guides/tools-computer-use) for more information. + */ + ResponseComputerToolCallParam: { + /** Action */ + action?: components["schemas"]["ActionClick"] | components["schemas"]["ResponsesAPIRequestParams_ActionDoubleClick"] | components["schemas"]["ActionDrag"] | components["schemas"]["ActionKeypress"] | components["schemas"]["ActionMove"] | components["schemas"]["ActionScreenshot"] | components["schemas"]["ActionScroll"] | components["schemas"]["ActionType"] | components["schemas"]["ActionWait"]; + /** Actions */ + actions?: (components["schemas"]["Click"] | components["schemas"]["ResponsesAPIRequestParams_DoubleClick"] | components["schemas"]["Drag"] | components["schemas"]["Keypress"] | components["schemas"]["Move"] | components["schemas"]["Screenshot"] | components["schemas"]["Scroll"] | components["schemas"]["Type"] | components["schemas"]["Wait"])[]; + /** Call Id */ + call_id: string; + /** Id */ + id: string; + /** Pending Safety Checks */ + pending_safety_checks: components["schemas"]["PendingSafetyCheck"][]; + /** + * Status + * @enum {string} + */ + status: "in_progress" | "completed" | "incomplete"; + /** + * Type + * @constant + */ + type: "computer_call"; + }; + /** + * ResponseContainerReference + * @description Represents a container created with /v1/containers. + */ + ResponseContainerReference: { + /** Container Id */ + container_id: string; + /** + * Type + * @constant + */ + type: "container_reference"; + } & { + [key: string]: unknown; + }; + /** + * ResponseCustomToolCall + * @description A call to a custom tool created by the model. + */ + ResponseCustomToolCall: { + /** Call Id */ + call_id: string; + /** Id */ + id?: string | null; + /** Input */ + input: string; + /** Name */ + name: string; + /** Namespace */ + namespace?: string | null; + /** + * Type + * @constant + */ + type: "custom_tool_call"; + } & { + [key: string]: unknown; + }; + /** + * ResponseCustomToolCallItem + * @description A call to a custom tool created by the model. + */ + ResponseCustomToolCallItem: { + /** Call Id */ + call_id: string; + /** Created By */ + created_by?: string | null; + /** Id */ + id: string; + /** Input */ + input: string; + /** Name */ + name: string; + /** Namespace */ + namespace?: string | null; + /** + * Status + * @enum {string} + */ + status: "in_progress" | "completed" | "incomplete"; + /** + * Type + * @constant + */ + type: "custom_tool_call"; + } & { + [key: string]: unknown; + }; + /** + * ResponseCustomToolCallOutputItem + * @description The output of a custom tool call from your code, being sent back to the model. + */ + ResponseCustomToolCallOutputItem: { + /** Call Id */ + call_id: string; + /** Created By */ + created_by?: string | null; + /** Id */ + id: string; + /** Output */ + output: string | (components["schemas"]["ResponseInputText"] | components["schemas"]["ResponseInputImage"] | components["schemas"]["ResponseInputFile"])[]; + /** + * Status + * @enum {string} + */ + status: "in_progress" | "completed" | "incomplete"; + /** + * Type + * @constant + */ + type: "custom_tool_call_output"; + } & { + [key: string]: unknown; + }; + /** + * ResponseCustomToolCallOutputParam + * @description The output of a custom tool call from your code, being sent back to the model. + */ + ResponseCustomToolCallOutputParam: { + /** Call Id */ + call_id: string; + /** Id */ + id?: string; + /** Output */ + output: string | (components["schemas"]["ResponseInputTextParam"] | components["schemas"]["ResponseInputImageParam"] | components["schemas"]["ResponseInputFileParam"])[]; + /** + * Type + * @constant + */ + type: "custom_tool_call_output"; + }; + /** + * ResponseCustomToolCallParam + * @description A call to a custom tool created by the model. + */ + ResponseCustomToolCallParam: { + /** Call Id */ + call_id: string; + /** Id */ + id?: string; + /** Input */ + input: string; + /** Name */ + name: string; + /** Namespace */ + namespace?: string; + /** + * Type + * @constant + */ + type: "custom_tool_call"; + }; + /** + * ResponseFileSearchToolCall + * @description The results of a file search tool call. + * + * See the + * [file search guide](https://platform.openai.com/docs/guides/tools-file-search) for more information. + */ + ResponseFileSearchToolCall: { + /** Id */ + id: string; + /** Queries */ + queries: string[]; + /** Results */ + results?: components["schemas"]["Result"][] | null; + /** + * Status + * @enum {string} + */ + status: "in_progress" | "searching" | "completed" | "incomplete" | "failed"; + /** + * Type + * @constant + */ + type: "file_search_call"; + } & { + [key: string]: unknown; + }; + /** + * ResponseFileSearchToolCallParam + * @description The results of a file search tool call. + * + * See the + * [file search guide](https://platform.openai.com/docs/guides/tools-file-search) for more information. + */ + ResponseFileSearchToolCallParam: { + /** Id */ + id: string; + /** Queries */ + queries: string[]; + /** Results */ + results?: components["schemas"]["Result"][] | null; + /** + * Status + * @enum {string} + */ + status: "in_progress" | "searching" | "completed" | "incomplete" | "failed"; + /** + * Type + * @constant + */ + type: "file_search_call"; + }; + /** + * ResponseFormatJSONObject + * @description JSON object response format. + * + * An older method of generating JSON responses. + * Using `json_schema` is recommended for models that support it. Note that the + * model will not generate JSON without a system or user message instructing it + * to do so. + */ + ResponseFormatJSONObject: { + /** + * Type + * @constant + */ + type: "json_object"; + } & { + [key: string]: unknown; + }; + /** + * ResponseFormatText + * @description Default response format. Used to generate text responses. + */ + ResponseFormatText: { + /** + * Type + * @constant + */ + type: "text"; + } & { + [key: string]: unknown; + }; + /** + * ResponseFormatTextJSONSchemaConfigParam + * @description JSON Schema response format. + * + * Used to generate structured JSON responses. + * Learn more about [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs). + */ + ResponseFormatTextJSONSchemaConfigParam: { + /** Description */ + description?: string; + /** Name */ + name: string; + /** Schema */ + schema: { + [key: string]: unknown; + }; + /** Strict */ + strict?: boolean | null; + /** + * Type + * @constant + */ + type: "json_schema"; + } & { + [key: string]: unknown; + }; + /** + * ResponseFunctionShellCallOutputContentParam + * @description Captured stdout and stderr for a portion of a shell tool call output. + */ + ResponseFunctionShellCallOutputContentParam: { + /** Outcome */ + outcome: components["schemas"]["OutcomeTimeout"] | components["schemas"]["OutcomeExit"]; + /** Stderr */ + stderr: string; + /** Stdout */ + stdout: string; + }; + /** + * ResponseFunctionShellToolCall + * @description A tool call that executes one or more shell commands in a managed environment. + */ + ResponseFunctionShellToolCall: { + action: components["schemas"]["Action"]; + /** Call Id */ + call_id: string; + /** Created By */ + created_by?: string | null; + /** Environment */ + environment?: components["schemas"]["ResponseLocalEnvironment"] | components["schemas"]["ResponseContainerReference"] | null; + /** Id */ + id: string; + /** + * Status + * @enum {string} + */ + status: "in_progress" | "completed" | "incomplete"; + /** + * Type + * @constant + */ + type: "shell_call"; + } & { + [key: string]: unknown; + }; + /** + * ResponseFunctionShellToolCallOutput + * @description The output of a shell tool call that was emitted. + */ + ResponseFunctionShellToolCallOutput: { + /** Call Id */ + call_id: string; + /** Created By */ + created_by?: string | null; + /** Id */ + id: string; + /** Max Output Length */ + max_output_length?: number | null; + /** Output */ + output: components["schemas"]["Output"][]; + /** + * Status + * @enum {string} + */ + status: "in_progress" | "completed" | "incomplete"; + /** + * Type + * @constant + */ + type: "shell_call_output"; + } & { + [key: string]: unknown; + }; + /** + * ResponseFunctionToolCall + * @description A tool call to run a function. + * + * See the + * [function calling guide](https://platform.openai.com/docs/guides/function-calling) for more information. + */ + ResponseFunctionToolCall: { + /** Arguments */ + arguments: string; + /** Call Id */ + call_id: string; + /** Id */ + id?: string | null; + /** Name */ + name: string; + /** Namespace */ + namespace?: string | null; + /** Status */ + status?: ("in_progress" | "completed" | "incomplete") | null; + /** + * Type + * @constant + */ + type: "function_call"; + } & { + [key: string]: unknown; + }; + /** + * ResponseFunctionToolCallItem + * @description A tool call to run a function. + * + * See the + * [function calling guide](https://platform.openai.com/docs/guides/function-calling) for more information. + */ + ResponseFunctionToolCallItem: { + /** Arguments */ + arguments: string; + /** Call Id */ + call_id: string; + /** Created By */ + created_by?: string | null; + /** Id */ + id: string; + /** Name */ + name: string; + /** Namespace */ + namespace?: string | null; + /** + * Status + * @enum {string} + */ + status: "in_progress" | "completed" | "incomplete"; + /** + * Type + * @constant + */ + type: "function_call"; + } & { + [key: string]: unknown; + }; + /** ResponseFunctionToolCallOutputItem */ + ResponseFunctionToolCallOutputItem: { + /** Call Id */ + call_id: string; + /** Created By */ + created_by?: string | null; + /** Id */ + id: string; + /** Output */ + output: string | (components["schemas"]["ResponseInputText"] | components["schemas"]["ResponseInputImage"] | components["schemas"]["ResponseInputFile"])[]; + /** + * Status + * @enum {string} + */ + status: "in_progress" | "completed" | "incomplete"; + /** + * Type + * @constant + */ + type: "function_call_output"; + } & { + [key: string]: unknown; + }; + /** + * ResponseFunctionToolCallParam + * @description A tool call to run a function. + * + * See the + * [function calling guide](https://platform.openai.com/docs/guides/function-calling) for more information. + */ + ResponseFunctionToolCallParam: { + /** Arguments */ + arguments: string; + /** Call Id */ + call_id: string; + /** Id */ + id?: string; + /** Name */ + name: string; + /** Namespace */ + namespace?: string; + /** + * Status + * @enum {string} + */ + status?: "in_progress" | "completed" | "incomplete"; + /** + * Type + * @constant + */ + type: "function_call"; + }; + /** + * ResponseFunctionWebSearch + * @description The results of a web search tool call. + * + * See the + * [web search guide](https://platform.openai.com/docs/guides/tools-web-search) for more information. + */ + ResponseFunctionWebSearch: { + /** Action */ + action: components["schemas"]["ActionSearch"] | components["schemas"]["ActionOpenPage"] | components["schemas"]["ActionFind"]; + /** Id */ + id: string; + /** + * Status + * @enum {string} + */ + status: "in_progress" | "searching" | "completed" | "failed"; + /** + * Type + * @constant + */ + type: "web_search_call"; + } & { + [key: string]: unknown; + }; + /** + * ResponseFunctionWebSearchParam + * @description The results of a web search tool call. + * + * See the + * [web search guide](https://platform.openai.com/docs/guides/tools-web-search) for more information. + */ + ResponseFunctionWebSearchParam: { + /** Action */ + action: components["schemas"]["ActionSearch"] | components["schemas"]["ActionOpenPage"] | components["schemas"]["ActionFind"]; + /** Id */ + id: string; + /** + * Status + * @enum {string} + */ + status: "in_progress" | "searching" | "completed" | "failed"; + /** + * Type + * @constant + */ + type: "web_search_call"; + }; + /** + * ResponseInputFile + * @description A file input to the model. + */ + ResponseInputFile: { + /** Detail */ + detail?: ("high" | "low") | null; + /** File Data */ + file_data?: string | null; + /** File Id */ + file_id?: string | null; + /** File Url */ + file_url?: string | null; + /** Filename */ + filename?: string | null; + /** + * Type + * @constant + */ + type: "input_file"; + } & { + [key: string]: unknown; + }; + /** + * ResponseInputFileContentParam + * @description A file input to the model. + */ + ResponseInputFileContentParam: { + /** + * Detail + * @enum {string} + */ + detail?: "low" | "high"; + /** File Data */ + file_data?: string | null; + /** File Id */ + file_id?: string | null; + /** File Url */ + file_url?: string | null; + /** Filename */ + filename?: string | null; + /** + * Type + * @constant + */ + type: "input_file"; + }; + /** + * ResponseInputFileParam + * @description A file input to the model. + */ + ResponseInputFileParam: { + /** + * Detail + * @enum {string} + */ + detail?: "low" | "high"; + /** File Data */ + file_data?: string; + /** File Id */ + file_id?: string | null; + /** File Url */ + file_url?: string; + /** Filename */ + filename?: string; + /** + * Type + * @constant + */ + type: "input_file"; + }; + /** + * ResponseInputImage + * @description An image input to the model. + * + * Learn about [image inputs](https://platform.openai.com/docs/guides/vision). + */ + ResponseInputImage: { + /** + * Detail + * @enum {string} + */ + detail: "low" | "high" | "auto" | "original"; + /** File Id */ + file_id?: string | null; + /** Image Url */ + image_url?: string | null; + /** + * Type + * @constant + */ + type: "input_image"; + } & { + [key: string]: unknown; + }; + /** + * ResponseInputImageContentParam + * @description An image input to the model. + * + * Learn about [image inputs](https://platform.openai.com/docs/guides/vision) + */ + ResponseInputImageContentParam: { + /** Detail */ + detail?: ("low" | "high" | "auto" | "original") | null; + /** File Id */ + file_id?: string | null; + /** Image Url */ + image_url?: string | null; + /** + * Type + * @constant + */ + type: "input_image"; + }; + /** + * ResponseInputImageParam + * @description An image input to the model. + * + * Learn about [image inputs](https://platform.openai.com/docs/guides/vision). + */ + ResponseInputImageParam: { + /** + * Detail + * @enum {string} + */ + detail: "low" | "high" | "auto" | "original"; + /** File Id */ + file_id?: string | null; + /** Image Url */ + image_url?: string | null; + /** + * Type + * @constant + */ + type: "input_image"; + }; + /** ResponseInputMessageItem */ + ResponseInputMessageItem: { + /** Content */ + content: (components["schemas"]["ResponseInputText"] | components["schemas"]["ResponseInputImage"] | components["schemas"]["ResponseInputFile"])[]; + /** Id */ + id: string; + /** + * Role + * @enum {string} + */ + role: "user" | "system" | "developer"; + /** Status */ + status?: ("in_progress" | "completed" | "incomplete") | null; + /** + * Type + * @constant + */ + type: "message"; + } & { + [key: string]: unknown; + }; + /** + * ResponseInputText + * @description A text input to the model. + */ + ResponseInputText: { + /** Text */ + text: string; + /** + * Type + * @constant + */ + type: "input_text"; + } & { + [key: string]: unknown; + }; + /** + * ResponseInputTextContentParam + * @description A text input to the model. + */ + ResponseInputTextContentParam: { + /** Text */ + text: string; + /** + * Type + * @constant + */ + type: "input_text"; + }; + /** + * ResponseInputTextParam + * @description A text input to the model. + */ + ResponseInputTextParam: { + /** Text */ + text: string; + /** + * Type + * @constant + */ + type: "input_text"; + }; + /** + * ResponseItemList + * @description A list of Response items. + */ + ResponseItemList: { + /** Data */ + data: (components["schemas"]["ResponseInputMessageItem"] | components["schemas"]["ResponseOutputMessage"] | components["schemas"]["ResponseFileSearchToolCall"] | components["schemas"]["ResponseComputerToolCall"] | components["schemas"]["ResponseComputerToolCallOutputItem"] | components["schemas"]["ResponseFunctionWebSearch"] | components["schemas"]["ResponseFunctionToolCallItem"] | components["schemas"]["ResponseFunctionToolCallOutputItem"] | components["schemas"]["ResponseToolSearchCall"] | components["schemas"]["ResponseToolSearchOutputItem"] | components["schemas"]["ResponseReasoningItem"] | components["schemas"]["ResponseCompactionItem"] | components["schemas"]["ImageGenerationCall"] | components["schemas"]["ResponseCodeInterpreterToolCall"] | components["schemas"]["LocalShellCall"] | components["schemas"]["LocalShellCallOutput"] | components["schemas"]["ResponseFunctionShellToolCall"] | components["schemas"]["ResponseFunctionShellToolCallOutput"] | components["schemas"]["ResponseApplyPatchToolCall"] | components["schemas"]["ResponseApplyPatchToolCallOutput"] | components["schemas"]["McpListTools"] | components["schemas"]["McpApprovalRequest"] | components["schemas"]["McpApprovalResponse"] | components["schemas"]["McpCall"] | components["schemas"]["ResponseCustomToolCallItem"] | components["schemas"]["ResponseCustomToolCallOutputItem"])[]; + /** First Id */ + first_id: string; + /** Has More */ + has_more: boolean; + /** Last Id */ + last_id: string; + /** + * Object + * @constant + */ + object: "list"; + } & { + [key: string]: unknown; + }; /** ResponseLiteLLM_ManagedVectorStore */ ResponseLiteLLM_ManagedVectorStore: { vector_store?: components["schemas"]["LiteLLM_ManagedVectorStoresTable"]; }; + /** + * ResponseLocalEnvironment + * @description Represents the use of a local environment to perform shell actions. + */ + ResponseLocalEnvironment: { + /** + * Type + * @constant + */ + type: "local"; + } & { + [key: string]: unknown; + }; + /** + * ResponseOutputMessage + * @description An output message from the model. + */ + ResponseOutputMessage: { + /** Content */ + content: (components["schemas"]["ResponseOutputText"] | components["schemas"]["ResponseOutputRefusal"])[]; + /** Id */ + id: string; + /** Phase */ + phase?: ("commentary" | "final_answer") | null; + /** + * Role + * @constant + */ + role: "assistant"; + /** + * Status + * @enum {string} + */ + status: "in_progress" | "completed" | "incomplete"; + /** + * Type + * @constant + */ + type: "message"; + } & { + [key: string]: unknown; + }; + /** + * ResponseOutputMessageParam + * @description An output message from the model. + */ + ResponseOutputMessageParam: { + /** Content */ + content: (components["schemas"]["ResponseOutputTextParam"] | components["schemas"]["ResponseOutputRefusalParam"])[]; + /** Id */ + id: string; + /** Phase */ + phase?: ("commentary" | "final_answer") | null; + /** + * Role + * @constant + */ + role: "assistant"; + /** + * Status + * @enum {string} + */ + status: "in_progress" | "completed" | "incomplete"; + /** + * Type + * @constant + */ + type: "message"; + }; + /** + * ResponseOutputRefusal + * @description A refusal from the model. + */ + ResponseOutputRefusal: { + /** Refusal */ + refusal: string; + /** + * Type + * @constant + */ + type: "refusal"; + } & { + [key: string]: unknown; + }; + /** + * ResponseOutputRefusalParam + * @description A refusal from the model. + */ + ResponseOutputRefusalParam: { + /** Refusal */ + refusal: string; + /** + * Type + * @constant + */ + type: "refusal"; + }; + /** + * ResponseOutputText + * @description A text output from the model. + */ + ResponseOutputText: { + /** Annotations */ + annotations: (components["schemas"]["AnnotationFileCitation"] | components["schemas"]["AnnotationURLCitation"] | components["schemas"]["AnnotationContainerFileCitation"] | components["schemas"]["AnnotationFilePath"])[]; + /** Logprobs */ + logprobs?: components["schemas"]["Logprob"][] | null; + /** Text */ + text: string; + /** + * Type + * @constant + */ + type: "output_text"; + } & { + [key: string]: unknown; + }; + /** + * ResponseOutputTextParam + * @description A text output from the model. + */ + ResponseOutputTextParam: { + /** Annotations */ + annotations: (components["schemas"]["AnnotationFileCitation"] | components["schemas"]["AnnotationURLCitation"] | components["schemas"]["AnnotationContainerFileCitation"] | components["schemas"]["AnnotationFilePath"])[]; + /** Logprobs */ + logprobs?: components["schemas"]["Logprob"][]; + /** Text */ + text: string; + /** + * Type + * @constant + */ + type: "output_text"; + }; + /** + * ResponseReasoningItem + * @description A description of the chain of thought used by a reasoning model while generating + * a response. Be sure to include these items in your `input` to the Responses API + * for subsequent turns of a conversation if you are manually + * [managing context](https://platform.openai.com/docs/guides/conversation-state). + */ + ResponseReasoningItem: { + /** Content */ + content?: components["schemas"]["Content"][] | null; + /** Encrypted Content */ + encrypted_content?: string | null; + /** Id */ + id: string; + /** Status */ + status?: ("in_progress" | "completed" | "incomplete") | null; + /** Summary */ + summary: components["schemas"]["Summary"][]; + /** + * Type + * @constant + */ + type: "reasoning"; + } & { + [key: string]: unknown; + }; + /** + * ResponseReasoningItemParam + * @description A description of the chain of thought used by a reasoning model while generating + * a response. Be sure to include these items in your `input` to the Responses API + * for subsequent turns of a conversation if you are manually + * [managing context](https://platform.openai.com/docs/guides/conversation-state). + */ + ResponseReasoningItemParam: { + /** Content */ + content?: components["schemas"]["Content"][]; + /** Encrypted Content */ + encrypted_content?: string | null; + /** Id */ + id: string; + /** + * Status + * @enum {string} + */ + status?: "in_progress" | "completed" | "incomplete"; + /** Summary */ + summary: components["schemas"]["Summary"][]; + /** + * Type + * @constant + */ + type: "reasoning"; + }; + /** + * ResponseTextConfigParam + * @description Configuration options for a text response from the model. + * + * Can be plain + * text or structured JSON data. Learn more: + * - [Text inputs and outputs](https://platform.openai.com/docs/guides/text) + * - [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs) + */ + ResponseTextConfigParam: { + /** Format */ + format?: components["schemas"]["ResponseFormatText"] | components["schemas"]["ResponseFormatTextJSONSchemaConfigParam"] | components["schemas"]["ResponseFormatJSONObject"]; + /** Verbosity */ + verbosity?: ("low" | "medium" | "high") | null; + } & { + [key: string]: unknown; + }; + /** ResponseToolSearchCall */ + ResponseToolSearchCall: { + /** Arguments */ + arguments: unknown; + /** Call Id */ + call_id?: string | null; + /** Created By */ + created_by?: string | null; + /** + * Execution + * @enum {string} + */ + execution: "server" | "client"; + /** Id */ + id: string; + /** + * Status + * @enum {string} + */ + status: "in_progress" | "completed" | "incomplete"; + /** + * Type + * @constant + */ + type: "tool_search_call"; + } & { + [key: string]: unknown; + }; + /** ResponseToolSearchOutputItem */ + ResponseToolSearchOutputItem: { + /** Call Id */ + call_id?: string | null; + /** Created By */ + created_by?: string | null; + /** + * Execution + * @enum {string} + */ + execution: "server" | "client"; + /** Id */ + id: string; + /** + * Status + * @enum {string} + */ + status: "in_progress" | "completed" | "incomplete"; + /** Tools */ + tools: (components["schemas"]["FunctionTool"] | components["schemas"]["FileSearchTool"] | components["schemas"]["ComputerTool"] | components["schemas"]["ComputerUsePreviewTool"] | components["schemas"]["WebSearchTool"] | components["schemas"]["Mcp"] | components["schemas"]["CodeInterpreter"] | components["schemas"]["ImageGeneration"] | components["schemas"]["LocalShell"] | components["schemas"]["FunctionShellTool"] | components["schemas"]["CustomTool"] | components["schemas"]["NamespaceTool"] | components["schemas"]["ToolSearchTool"] | components["schemas"]["WebSearchPreviewTool"] | components["schemas"]["ApplyPatchTool"])[]; + /** + * Type + * @constant + */ + type: "tool_search_output"; + } & { + [key: string]: unknown; + }; + /** ResponseToolSearchOutputItemParamParam */ + ResponseToolSearchOutputItemParamParam: { + /** Call Id */ + call_id?: string | null; + /** + * Execution + * @enum {string} + */ + execution?: "server" | "client"; + /** Id */ + id?: string | null; + /** Status */ + status?: ("in_progress" | "completed" | "incomplete") | null; + /** Tools */ + tools: (components["schemas"]["FunctionToolParam"] | components["schemas"]["FileSearchToolParam"] | components["schemas"]["openai__types__responses__computer_tool_param__ComputerToolParam"] | components["schemas"]["ComputerUsePreviewToolParam"] | components["schemas"]["WebSearchToolParam"] | components["schemas"]["Mcp"] | components["schemas"]["CodeInterpreter"] | components["schemas"]["ImageGeneration"] | components["schemas"]["LocalShell"] | components["schemas"]["FunctionShellToolParam"] | components["schemas"]["CustomToolParam"] | components["schemas"]["NamespaceToolParam"] | components["schemas"]["ToolSearchToolParam"] | components["schemas"]["WebSearchPreviewToolParam"] | components["schemas"]["ApplyPatchToolParam"])[]; + /** + * Type + * @constant + */ + type: "tool_search_output"; + }; + /** + * ResponsesAPIRequestParams + * @description TypedDict for request parameters supported by the responses API. + */ + ResponsesAPIRequestParams: { + /** Background */ + background?: boolean | null; + /** Context Management */ + context_management?: components["schemas"]["ContextManagementEntry"][] | null; + /** Include */ + include?: ("file_search_call.results" | "web_search_call.results" | "web_search_call.action.sources" | "message.input_image.image_url" | "computer_call_output.output.image_url" | "code_interpreter_call.outputs" | "reasoning.encrypted_content" | "message.output_text.logprobs")[] | null; + /** Input */ + input: string | (components["schemas"]["EasyInputMessageParam"] | components["schemas"]["ResponsesAPIRequestParams_Message"] | components["schemas"]["ResponseOutputMessageParam"] | components["schemas"]["ResponseFileSearchToolCallParam"] | components["schemas"]["ResponseComputerToolCallParam"] | components["schemas"]["ComputerCallOutput"] | components["schemas"]["ResponseFunctionWebSearchParam"] | components["schemas"]["ResponseFunctionToolCallParam"] | components["schemas"]["FunctionCallOutput"] | components["schemas"]["ToolSearchCall"] | components["schemas"]["ResponseToolSearchOutputItemParamParam"] | components["schemas"]["ResponseReasoningItemParam"] | components["schemas"]["ResponseCompactionItemParamParam"] | components["schemas"]["ResponsesAPIRequestParams_ImageGenerationCall"] | components["schemas"]["ResponseCodeInterpreterToolCallParam"] | components["schemas"]["LocalShellCall"] | components["schemas"]["LocalShellCallOutput"] | components["schemas"]["ShellCall"] | components["schemas"]["ShellCallOutput"] | components["schemas"]["ApplyPatchCall"] | components["schemas"]["ApplyPatchCallOutput"] | components["schemas"]["McpListTools"] | components["schemas"]["McpApprovalRequest"] | components["schemas"]["ResponsesAPIRequestParams_McpApprovalResponse"] | components["schemas"]["McpCall"] | components["schemas"]["ResponseCustomToolCallOutputParam"] | components["schemas"]["ResponseCustomToolCallParam"] | components["schemas"]["ItemReference"])[]; + /** Instructions */ + instructions?: string | null; + /** Max Output Tokens */ + max_output_tokens?: number | null; + /** Max Tool Calls */ + max_tool_calls?: number | null; + /** Metadata */ + metadata?: { + [key: string]: unknown; + } | null; + /** Model */ + model: string; + /** Parallel Tool Calls */ + parallel_tool_calls?: boolean | null; + /** Partial Images */ + partial_images?: number | null; + /** Previous Response Id */ + previous_response_id?: string | null; + prompt?: components["schemas"]["PromptObject"] | null; + /** Prompt Cache Key */ + prompt_cache_key?: string | null; + prompt_cache_options?: components["schemas"]["PromptCacheOptions"] | null; + /** Prompt Cache Retention */ + prompt_cache_retention?: string | null; + reasoning?: components["schemas"]["Reasoning"] | null; + /** Safety Identifier */ + safety_identifier?: string | null; + /** Service Tier */ + service_tier?: string | null; + /** Store */ + store?: boolean | null; + /** Stream */ + stream?: boolean | null; + stream_options?: components["schemas"]["ResponsesAPIStreamOptions"] | null; + /** Temperature */ + temperature?: number | null; + text?: components["schemas"]["ResponseTextConfigParam"] | null; + /** Tool Choice */ + tool_choice?: ("none" | "auto" | "required") | components["schemas"]["ToolChoiceAllowedParam"] | components["schemas"]["ToolChoiceTypesParam"] | components["schemas"]["ToolChoiceFunctionParam"] | components["schemas"]["ToolChoiceMcpParam"] | components["schemas"]["ToolChoiceCustomParam"] | components["schemas"]["ToolChoiceApplyPatchParam"] | components["schemas"]["ToolChoiceShellParam"] | null; + /** Tools */ + tools?: (components["schemas"]["FunctionToolParam"] | components["schemas"]["FileSearchToolParam"] | components["schemas"]["openai__types__responses__computer_tool_param__ComputerToolParam"] | components["schemas"]["ComputerUsePreviewToolParam"] | components["schemas"]["WebSearchToolParam"] | components["schemas"]["Mcp"] | components["schemas"]["CodeInterpreter"] | components["schemas"]["ImageGeneration"] | components["schemas"]["LocalShell"] | components["schemas"]["FunctionShellToolParam"] | components["schemas"]["CustomToolParam"] | components["schemas"]["NamespaceToolParam"] | components["schemas"]["ToolSearchToolParam"] | components["schemas"]["WebSearchPreviewToolParam"] | components["schemas"]["ApplyPatchToolParam"] | components["schemas"]["litellm__types__llms__openai__ComputerToolParam"] | components["schemas"]["ShellToolParam"])[] | null; + /** Top Logprobs */ + top_logprobs?: number | null; + /** Top P */ + top_p?: number | null; + /** Truncation */ + truncation?: ("auto" | "disabled") | null; + /** User */ + user?: string | null; + }; + /** + * ActionDoubleClick + * @description A double click action. + */ + ResponsesAPIRequestParams_ActionDoubleClick: { + /** Keys */ + keys: string[] | null; + /** + * Type + * @constant + */ + type: "double_click"; + /** X */ + x: number; + /** Y */ + y: number; + }; + /** + * DoubleClick + * @description A double click action. + */ + ResponsesAPIRequestParams_DoubleClick: { + /** Keys */ + keys: string[] | null; + /** + * Type + * @constant + */ + type: "double_click"; + /** X */ + x: number; + /** Y */ + y: number; + }; + /** + * ImageGenerationCall + * @description An image generation request made by the model. + */ + ResponsesAPIRequestParams_ImageGenerationCall: { + /** Id */ + id: string; + /** Result */ + result: string | null; + /** + * Status + * @enum {string} + */ + status: "in_progress" | "completed" | "generating" | "failed"; + /** + * Type + * @constant + */ + type: "image_generation_call"; + }; + /** + * McpApprovalResponse + * @description A response to an MCP approval request. + */ + ResponsesAPIRequestParams_McpApprovalResponse: { + /** Approval Request Id */ + approval_request_id: string; + /** Approve */ + approve: boolean; + /** Id */ + id?: string | null; + /** Reason */ + reason?: string | null; + /** + * Type + * @constant + */ + type: "mcp_approval_response"; + }; + /** + * Message + * @description A message input to the model with a role indicating instruction following + * hierarchy. Instructions given with the `developer` or `system` role take + * precedence over instructions given with the `user` role. + */ + ResponsesAPIRequestParams_Message: { + /** Content */ + content: (components["schemas"]["ResponseInputTextParam"] | components["schemas"]["ResponseInputImageParam"] | components["schemas"]["ResponseInputFileParam"])[]; + /** + * Role + * @enum {string} + */ + role: "user" | "system" | "developer"; + /** + * Status + * @enum {string} + */ + status?: "in_progress" | "completed" | "incomplete"; + /** + * Type + * @constant + */ + type?: "message"; + }; + /** ResponsesAPIResponse */ + ResponsesAPIResponse: { + /** Created At */ + created_at: number; + /** Error */ + error?: { + [key: string]: unknown; + } | null; + /** Id */ + id: string; + incomplete_details?: components["schemas"]["IncompleteDetails"] | null; + /** Instructions */ + instructions?: string | null; + /** Max Output Tokens */ + max_output_tokens?: number | null; + /** Metadata */ + metadata?: { + [key: string]: unknown; + } | null; + /** Model */ + model?: string | null; + /** Object */ + object?: string | null; + /** Output */ + output: (components["schemas"]["ResponseOutputMessage"] | components["schemas"]["ResponseFileSearchToolCall"] | components["schemas"]["ResponseFunctionToolCall"] | components["schemas"]["ResponseFunctionToolCallOutputItem"] | components["schemas"]["ResponseFunctionWebSearch"] | components["schemas"]["ResponseComputerToolCall"] | components["schemas"]["ResponseComputerToolCallOutputItem"] | components["schemas"]["ResponseReasoningItem"] | components["schemas"]["ResponseToolSearchCall"] | components["schemas"]["ResponseToolSearchOutputItem"] | components["schemas"]["ResponseCompactionItem"] | components["schemas"]["ImageGenerationCall"] | components["schemas"]["ResponseCodeInterpreterToolCall"] | components["schemas"]["LocalShellCall"] | components["schemas"]["LocalShellCallOutput"] | components["schemas"]["ResponseFunctionShellToolCall"] | components["schemas"]["ResponseFunctionShellToolCallOutput"] | components["schemas"]["ResponseApplyPatchToolCall"] | components["schemas"]["ResponseApplyPatchToolCallOutput"] | components["schemas"]["McpCall"] | components["schemas"]["McpListTools"] | components["schemas"]["McpApprovalRequest"] | components["schemas"]["McpApprovalResponse"] | components["schemas"]["ResponseCustomToolCall"] | components["schemas"]["ResponseCustomToolCallOutputItem"] | { + [key: string]: unknown; + })[] | (components["schemas"]["GenericResponseOutputItem"] | components["schemas"]["OutputCodeInterpreterCall"] | components["schemas"]["OutputFunctionToolCall"] | components["schemas"]["OutputImageGenerationCall"] | components["schemas"]["ResponseFunctionToolCall"] | components["schemas"]["ResponseFunctionWebSearch"] | components["schemas"]["CustomToolCallOutputItem"])[]; + /** Parallel Tool Calls */ + parallel_tool_calls?: boolean | null; + /** Previous Response Id */ + previous_response_id?: string | null; + /** Reasoning */ + reasoning?: { + [key: string]: unknown; + } | null; + /** Status */ + status?: string | null; + /** Store */ + store?: boolean | null; + /** Temperature */ + temperature?: number | null; + /** Text */ + text?: components["schemas"]["ResponseTextConfigParam"] | { + [key: string]: unknown; + } | null; + /** Tool Choice */ + tool_choice?: ("none" | "auto" | "required") | components["schemas"]["ToolChoiceAllowedParam"] | components["schemas"]["ToolChoiceTypesParam"] | components["schemas"]["ToolChoiceFunctionParam"] | components["schemas"]["ToolChoiceMcpParam"] | components["schemas"]["ToolChoiceCustomParam"] | components["schemas"]["ToolChoiceApplyPatchParam"] | components["schemas"]["ToolChoiceShellParam"] | null; + /** Tools */ + tools?: (components["schemas"]["FunctionTool"] | components["schemas"]["FileSearchTool"] | components["schemas"]["ComputerTool"] | components["schemas"]["ComputerUsePreviewTool"] | components["schemas"]["WebSearchTool"] | components["schemas"]["Mcp"] | components["schemas"]["CodeInterpreter"] | components["schemas"]["ImageGeneration"] | components["schemas"]["LocalShell"] | components["schemas"]["FunctionShellTool"] | components["schemas"]["CustomTool"] | components["schemas"]["NamespaceTool"] | components["schemas"]["ToolSearchTool"] | components["schemas"]["WebSearchPreviewTool"] | components["schemas"]["ApplyPatchTool"])[] | components["schemas"]["ResponseFunctionToolCall"][] | { + [key: string]: unknown; + }[] | null; + /** Top P */ + top_p?: number | null; + /** Truncation */ + truncation?: ("auto" | "disabled") | null; + usage?: components["schemas"]["ResponseAPIUsage"] | null; + /** User */ + user?: string | null; + } & { + [key: string]: unknown; + }; + /** ResponsesAPIStreamOptions */ + ResponsesAPIStreamOptions: { + /** Include Obfuscation */ + include_obfuscation?: boolean; + }; + /** Result */ + Result: { + /** Attributes */ + attributes?: { + [key: string]: string | number | boolean; + } | null; + /** File Id */ + file_id?: string | null; + /** Filename */ + filename?: string | null; + /** Score */ + score?: number | null; + /** Text */ + text?: string | null; + } & { + [key: string]: unknown; + }; /** * ResultCounts * @description Result counts for a run @@ -38086,6 +41673,42 @@ export interface components { */ window_seconds: number; }; + /** + * Screenshot + * @description A screenshot action. + */ + Screenshot: { + /** + * Type + * @constant + */ + type: "screenshot"; + } & { + [key: string]: unknown; + }; + /** + * Scroll + * @description A scroll action. + */ + Scroll: { + /** Keys */ + keys?: string[] | null; + /** Scroll X */ + scroll_x: number; + /** Scroll Y */ + scroll_y: number; + /** + * Type + * @constant + */ + type: "scroll"; + /** X */ + x: number; + /** Y */ + y: number; + } & { + [key: string]: unknown; + }; /** * SearchTool * @description Search tool configuration. @@ -38408,6 +42031,72 @@ export interface components { /** Turn Count */ turn_count: number; }; + /** + * ShellCall + * @description A tool representing a request to execute one or more shell commands. + */ + ShellCall: { + action: components["schemas"]["ShellCallAction"]; + /** Call Id */ + call_id: string; + /** Environment */ + environment?: components["schemas"]["LocalEnvironmentParam"] | components["schemas"]["ContainerReferenceParam"] | null; + /** Id */ + id?: string | null; + /** Status */ + status?: ("in_progress" | "completed" | "incomplete") | null; + /** + * Type + * @constant + */ + type: "shell_call"; + }; + /** + * ShellCallAction + * @description The shell commands and limits that describe how to run the tool call. + */ + ShellCallAction: { + /** Commands */ + commands: string[]; + /** Max Output Length */ + max_output_length?: number | null; + /** Timeout Ms */ + timeout_ms?: number | null; + }; + /** + * ShellCallOutput + * @description The streamed output items emitted by a shell tool call. + */ + ShellCallOutput: { + /** Call Id */ + call_id: string; + /** Id */ + id?: string | null; + /** Max Output Length */ + max_output_length?: number | null; + /** Output */ + output: components["schemas"]["ResponseFunctionShellCallOutputContentParam"][]; + /** Status */ + status?: ("in_progress" | "completed" | "incomplete") | null; + /** + * Type + * @constant + */ + type: "shell_call_output"; + }; + /** + * ShellToolParam + * @description Shell tool for Responses API: run commands in hosted containers or local runtime. + * See https://developers.openai.com/api/docs/guides/tools-shell. + */ + ShellToolParam: { + /** Environment */ + environment: { + [key: string]: unknown; + }; + /** Type */ + type: "shell" | string; + }; /** * Skill * @description Represents a skill from the Anthropic Skills API @@ -38435,6 +42124,32 @@ export interface components { /** Updated At */ updated_at: string; }; + /** SkillReference */ + SkillReference: { + /** Skill Id */ + skill_id: string; + /** + * Type + * @constant + */ + type: "skill_reference"; + /** Version */ + version?: string | null; + } & { + [key: string]: unknown; + }; + /** SkillReferenceParam */ + SkillReferenceParam: { + /** Skill Id */ + skill_id: string; + /** + * Type + * @constant + */ + type: "skill_reference"; + /** Version */ + version?: string; + }; /** SpendAnalyticsPaginatedResponse */ SpendAnalyticsPaginatedResponse: { metadata?: components["schemas"]["DailySpendMetadata"]; @@ -38761,6 +42476,21 @@ export interface components { /** Model */ model?: string | null; }; + /** + * Summary + * @description A summary text from the model. + */ + Summary: { + /** Text */ + text: string; + /** + * Type + * @constant + */ + type: "summary_text"; + } & { + [key: string]: unknown; + }; /** * SupportedDBObjectType * @description Supported database object types for fine-grained DB storage control. @@ -39650,6 +43380,19 @@ export interface components { [key: string]: unknown; }; }; + /** + * Text + * @description Unconstrained free-form text. + */ + Text: { + /** + * Type + * @constant + */ + type: "text"; + } & { + [key: string]: unknown; + }; /** TierCohortStatistic */ TierCohortStatistic: { /** Cohort */ @@ -39770,12 +43513,141 @@ export interface components { /** Total Tokens */ total_tokens: number; }; + /** + * ToolChoiceAllowedParam + * @description Constrains the tools available to the model to a pre-defined set. + */ + ToolChoiceAllowedParam: { + /** + * Mode + * @enum {string} + */ + mode: "auto" | "required"; + /** Tools */ + tools: { + [key: string]: unknown; + }[]; + /** + * Type + * @constant + */ + type: "allowed_tools"; + } & { + [key: string]: unknown; + }; + /** + * ToolChoiceApplyPatchParam + * @description Forces the model to call the apply_patch tool when executing a tool call. + */ + ToolChoiceApplyPatchParam: { + /** + * Type + * @constant + */ + type: "apply_patch"; + } & { + [key: string]: unknown; + }; + /** + * ToolChoiceCustomParam + * @description Use this option to force the model to call a specific custom tool. + */ + ToolChoiceCustomParam: { + /** Name */ + name: string; + /** + * Type + * @constant + */ + type: "custom"; + } & { + [key: string]: unknown; + }; + /** + * ToolChoiceFunctionParam + * @description Use this option to force the model to call a specific function. + */ + ToolChoiceFunctionParam: { + /** Name */ + name: string; + /** + * Type + * @constant + */ + type: "function"; + } & { + [key: string]: unknown; + }; + /** + * ToolChoiceMcpParam + * @description Use this option to force the model to call a specific tool on a remote MCP server. + */ + ToolChoiceMcpParam: { + /** Name */ + name?: string | null; + /** Server Label */ + server_label: string; + /** + * Type + * @constant + */ + type: "mcp"; + } & { + [key: string]: unknown; + }; + /** + * ToolChoiceShellParam + * @description Forces the model to call the shell tool when a tool call is required. + */ + ToolChoiceShellParam: { + /** + * Type + * @constant + */ + type: "shell"; + } & { + [key: string]: unknown; + }; + /** + * ToolChoiceTypesParam + * @description Indicates that the model should use a built-in tool to generate a response. + * [Learn more about built-in tools](https://platform.openai.com/docs/guides/tools). + */ + ToolChoiceTypesParam: { + /** + * Type + * @enum {string} + */ + type: "file_search" | "web_search_preview" | "computer" | "computer_use_preview" | "computer_use" | "web_search_preview_2025_03_11" | "image_generation" | "code_interpreter"; + } & { + [key: string]: unknown; + }; /** ToolDetailResponse */ ToolDetailResponse: { /** Overrides */ overrides?: components["schemas"]["ToolPolicyOverrideRow"][]; tool: components["schemas"]["LiteLLM_ToolTableRow"]; }; + /** ToolFunction */ + ToolFunction: { + /** Defer Loading */ + defer_loading?: boolean | null; + /** Description */ + description?: string | null; + /** Name */ + name: string; + /** Parameters */ + parameters?: unknown | null; + /** Strict */ + strict?: boolean | null; + /** + * Type + * @constant + */ + type: "function"; + } & { + [key: string]: unknown; + }; /** ToolListResponse */ ToolListResponse: { /** Tools */ @@ -39886,6 +43758,66 @@ export interface components { /** Updated */ updated: boolean; }; + /** ToolSearchCall */ + ToolSearchCall: { + /** Arguments */ + arguments: unknown; + /** Call Id */ + call_id?: string | null; + /** + * Execution + * @enum {string} + */ + execution?: "server" | "client"; + /** Id */ + id?: string | null; + /** Status */ + status?: ("in_progress" | "completed" | "incomplete") | null; + /** + * Type + * @constant + */ + type: "tool_search_call"; + }; + /** + * ToolSearchTool + * @description Hosted or BYOT tool search configuration for deferred tools. + */ + ToolSearchTool: { + /** Description */ + description?: string | null; + /** Execution */ + execution?: ("server" | "client") | null; + /** Parameters */ + parameters?: unknown | null; + /** + * Type + * @constant + */ + type: "tool_search"; + } & { + [key: string]: unknown; + }; + /** + * ToolSearchToolParam + * @description Hosted or BYOT tool search configuration for deferred tools. + */ + ToolSearchToolParam: { + /** Description */ + description?: string | null; + /** + * Execution + * @enum {string} + */ + execution?: "server" | "client"; + /** Parameters */ + parameters?: unknown | null; + /** + * Type + * @constant + */ + type: "tool_search"; + }; /** * ToolSpendDailyEntry * @description Spend attributed to one tool on one UTC day. @@ -40040,6 +43972,21 @@ export interface components { [key: string]: unknown; }; }; + /** + * Type + * @description An action to type in text. + */ + Type: { + /** Text */ + text: string; + /** + * Type + * @constant + */ + type: "type"; + } & { + [key: string]: unknown; + }; /** * UISettingsResponse * @description Response model for UI settings @@ -41921,6 +45868,19 @@ export interface components { /** Vector Store Name */ vector_store_name?: string | null; }; + /** + * Wait + * @description A wait action. + */ + Wait: { + /** + * Type + * @constant + */ + type: "wait"; + } & { + [key: string]: unknown; + }; /** * WebSearchInterceptionSettings * @description Configuration for server-side web search interception @@ -41968,6 +45928,88 @@ export interface components { [key: string]: unknown; }; }; + /** + * WebSearchPreviewTool + * @description This tool searches the web for relevant results to use in a response. + * + * Learn more about the [web search tool](https://platform.openai.com/docs/guides/tools-web-search). + */ + WebSearchPreviewTool: { + /** Search Content Types */ + search_content_types?: ("text" | "image")[] | null; + /** Search Context Size */ + search_context_size?: ("low" | "medium" | "high") | null; + /** + * Type + * @enum {string} + */ + type: "web_search_preview" | "web_search_preview_2025_03_11"; + user_location?: components["schemas"]["openai__types__responses__web_search_preview_tool__UserLocation"] | null; + } & { + [key: string]: unknown; + }; + /** + * WebSearchPreviewToolParam + * @description This tool searches the web for relevant results to use in a response. + * + * Learn more about the [web search tool](https://platform.openai.com/docs/guides/tools-web-search). + */ + WebSearchPreviewToolParam: { + /** Search Content Types */ + search_content_types?: ("text" | "image")[]; + /** + * Search Context Size + * @enum {string} + */ + search_context_size?: "low" | "medium" | "high"; + /** + * Type + * @enum {string} + */ + type: "web_search_preview" | "web_search_preview_2025_03_11"; + user_location?: components["schemas"]["openai__types__responses__web_search_preview_tool_param__UserLocation"] | null; + }; + /** + * WebSearchTool + * @description Search the Internet for sources related to the prompt. + * + * Learn more about the + * [web search tool](https://platform.openai.com/docs/guides/tools-web-search). + */ + WebSearchTool: { + filters?: components["schemas"]["Filters"] | null; + /** Search Context Size */ + search_context_size?: ("low" | "medium" | "high") | null; + /** + * Type + * @enum {string} + */ + type: "web_search" | "web_search_2025_08_26"; + user_location?: components["schemas"]["openai__types__responses__web_search_tool__UserLocation"] | null; + } & { + [key: string]: unknown; + }; + /** + * WebSearchToolParam + * @description Search the Internet for sources related to the prompt. + * + * Learn more about the + * [web search tool](https://platform.openai.com/docs/guides/tools-web-search). + */ + WebSearchToolParam: { + filters?: components["schemas"]["Filters"] | null; + /** + * Search Context Size + * @enum {string} + */ + search_context_size?: "low" | "medium" | "high"; + /** + * Type + * @enum {string} + */ + type: "web_search" | "web_search_2025_08_26"; + user_location?: components["schemas"]["openai__types__responses__web_search_tool_param__UserLocation"] | null; + }; /** WorkerRegistryEntry */ WorkerRegistryEntry: { /** Name */ @@ -42051,6 +46093,17 @@ export interface components { } & { [key: string]: unknown; }; + /** ComputerToolParam */ + litellm__types__llms__openai__ComputerToolParam: { + /** Display Height */ + display_height: number; + /** Display Width */ + display_width: number; + /** Environment */ + environment: ("mac" | "windows" | "ubuntu" | "browser") | string; + /** Type */ + type: "computer_use_preview" | string; + }; /** ModelInfo */ litellm__types__router__ModelInfo: { /** Access Windows */ @@ -42120,6 +46173,96 @@ export interface components { } & { [key: string]: unknown; }; + /** + * ComputerToolParam + * @description A tool that controls a virtual computer. + * + * Learn more about the [computer tool](https://platform.openai.com/docs/guides/tools-computer-use). + */ + openai__types__responses__computer_tool_param__ComputerToolParam: { + /** + * Type + * @constant + */ + type: "computer"; + }; + /** + * UserLocation + * @description The user's location. + */ + openai__types__responses__web_search_preview_tool__UserLocation: { + /** City */ + city?: string | null; + /** Country */ + country?: string | null; + /** Region */ + region?: string | null; + /** Timezone */ + timezone?: string | null; + /** + * Type + * @constant + */ + type: "approximate"; + } & { + [key: string]: unknown; + }; + /** + * UserLocation + * @description The user's location. + */ + openai__types__responses__web_search_preview_tool_param__UserLocation: { + /** City */ + city?: string | null; + /** Country */ + country?: string | null; + /** Region */ + region?: string | null; + /** Timezone */ + timezone?: string | null; + /** + * Type + * @constant + */ + type: "approximate"; + }; + /** + * UserLocation + * @description The approximate location of the user. + */ + openai__types__responses__web_search_tool__UserLocation: { + /** City */ + city?: string | null; + /** Country */ + country?: string | null; + /** Region */ + region?: string | null; + /** Timezone */ + timezone?: string | null; + /** Type */ + type?: "approximate" | null; + } & { + [key: string]: unknown; + }; + /** + * UserLocation + * @description The approximate location of the user. + */ + openai__types__responses__web_search_tool_param__UserLocation: { + /** City */ + city?: string | null; + /** Country */ + country?: string | null; + /** Region */ + region?: string | null; + /** Timezone */ + timezone?: string | null; + /** + * Type + * @constant + */ + type?: "approximate"; + }; /** updateDeployment */ updateDeployment: { /** Blocked */ @@ -56413,7 +60556,69 @@ export interface operations { path?: never; cookie?: never; }; - requestBody?: never; + requestBody: { + content: { + "application/json": { + /** Background */ + background?: boolean | null; + /** Context Management */ + context_management?: components["schemas"]["ContextManagementEntry"][] | null; + /** Include */ + include?: ("file_search_call.results" | "web_search_call.results" | "web_search_call.action.sources" | "message.input_image.image_url" | "computer_call_output.output.image_url" | "code_interpreter_call.outputs" | "reasoning.encrypted_content" | "message.output_text.logprobs")[] | null; + /** Input */ + input: string | (components["schemas"]["EasyInputMessageParam"] | components["schemas"]["ResponsesAPIRequestParams_Message"] | components["schemas"]["ResponseOutputMessageParam"] | components["schemas"]["ResponseFileSearchToolCallParam"] | components["schemas"]["ResponseComputerToolCallParam"] | components["schemas"]["ComputerCallOutput"] | components["schemas"]["ResponseFunctionWebSearchParam"] | components["schemas"]["ResponseFunctionToolCallParam"] | components["schemas"]["FunctionCallOutput"] | components["schemas"]["ToolSearchCall"] | components["schemas"]["ResponseToolSearchOutputItemParamParam"] | components["schemas"]["ResponseReasoningItemParam"] | components["schemas"]["ResponseCompactionItemParamParam"] | components["schemas"]["ResponsesAPIRequestParams_ImageGenerationCall"] | components["schemas"]["ResponseCodeInterpreterToolCallParam"] | components["schemas"]["LocalShellCall"] | components["schemas"]["LocalShellCallOutput"] | components["schemas"]["ShellCall"] | components["schemas"]["ShellCallOutput"] | components["schemas"]["ApplyPatchCall"] | components["schemas"]["ApplyPatchCallOutput"] | components["schemas"]["McpListTools"] | components["schemas"]["McpApprovalRequest"] | components["schemas"]["ResponsesAPIRequestParams_McpApprovalResponse"] | components["schemas"]["McpCall"] | components["schemas"]["ResponseCustomToolCallOutputParam"] | components["schemas"]["ResponseCustomToolCallParam"] | components["schemas"]["ItemReference"])[]; + /** Instructions */ + instructions?: string | null; + /** Max Output Tokens */ + max_output_tokens?: number | null; + /** Max Tool Calls */ + max_tool_calls?: number | null; + /** Metadata */ + metadata?: { + [key: string]: unknown; + } | null; + /** Model */ + model: string; + /** Parallel Tool Calls */ + parallel_tool_calls?: boolean | null; + /** Partial Images */ + partial_images?: number | null; + /** Previous Response Id */ + previous_response_id?: string | null; + prompt?: components["schemas"]["PromptObject"] | null; + /** Prompt Cache Key */ + prompt_cache_key?: string | null; + prompt_cache_options?: components["schemas"]["PromptCacheOptions"] | null; + /** Prompt Cache Retention */ + prompt_cache_retention?: string | null; + reasoning?: components["schemas"]["Reasoning"] | null; + /** Safety Identifier */ + safety_identifier?: string | null; + /** Service Tier */ + service_tier?: string | null; + /** Store */ + store?: boolean | null; + /** Stream */ + stream?: boolean | null; + stream_options?: components["schemas"]["ResponsesAPIStreamOptions"] | null; + /** Temperature */ + temperature?: number | null; + text?: components["schemas"]["ResponseTextConfigParam"] | null; + /** Tool Choice */ + tool_choice?: ("none" | "auto" | "required") | components["schemas"]["ToolChoiceAllowedParam"] | components["schemas"]["ToolChoiceTypesParam"] | components["schemas"]["ToolChoiceFunctionParam"] | components["schemas"]["ToolChoiceMcpParam"] | components["schemas"]["ToolChoiceCustomParam"] | components["schemas"]["ToolChoiceApplyPatchParam"] | components["schemas"]["ToolChoiceShellParam"] | null; + /** Tools */ + tools?: (components["schemas"]["FunctionToolParam"] | components["schemas"]["FileSearchToolParam"] | components["schemas"]["openai__types__responses__computer_tool_param__ComputerToolParam"] | components["schemas"]["ComputerUsePreviewToolParam"] | components["schemas"]["WebSearchToolParam"] | components["schemas"]["Mcp"] | components["schemas"]["CodeInterpreter"] | components["schemas"]["ImageGeneration"] | components["schemas"]["LocalShell"] | components["schemas"]["FunctionShellToolParam"] | components["schemas"]["CustomToolParam"] | components["schemas"]["NamespaceToolParam"] | components["schemas"]["ToolSearchToolParam"] | components["schemas"]["WebSearchPreviewToolParam"] | components["schemas"]["ApplyPatchToolParam"] | components["schemas"]["litellm__types__llms__openai__ComputerToolParam"] | components["schemas"]["ShellToolParam"])[] | null; + /** Top Logprobs */ + top_logprobs?: number | null; + /** Top P */ + top_p?: number | null; + /** Truncation */ + truncation?: ("auto" | "disabled") | null; + /** User */ + user?: string | null; + }; + }; + }; responses: { /** @description Successful Response */ 200: { @@ -56421,7 +60626,8 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": unknown; + "application/json": components["schemas"]["ResponsesAPIResponse"]; + "text/event-stream": string; }; }; }; @@ -56483,7 +60689,7 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": unknown; + "application/json": components["schemas"]["ResponsesAPIResponse"]; }; }; /** @description Validation Error */ @@ -56514,7 +60720,7 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": unknown; + "application/json": components["schemas"]["DeleteResponseResult"]; }; }; /** @description Validation Error */ @@ -56576,7 +60782,7 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": unknown; + "application/json": components["schemas"]["ResponseItemList"]; }; }; /** @description Validation Error */ @@ -59607,7 +63813,69 @@ export interface operations { path?: never; cookie?: never; }; - requestBody?: never; + requestBody: { + content: { + "application/json": { + /** Background */ + background?: boolean | null; + /** Context Management */ + context_management?: components["schemas"]["ContextManagementEntry"][] | null; + /** Include */ + include?: ("file_search_call.results" | "web_search_call.results" | "web_search_call.action.sources" | "message.input_image.image_url" | "computer_call_output.output.image_url" | "code_interpreter_call.outputs" | "reasoning.encrypted_content" | "message.output_text.logprobs")[] | null; + /** Input */ + input: string | (components["schemas"]["EasyInputMessageParam"] | components["schemas"]["ResponsesAPIRequestParams_Message"] | components["schemas"]["ResponseOutputMessageParam"] | components["schemas"]["ResponseFileSearchToolCallParam"] | components["schemas"]["ResponseComputerToolCallParam"] | components["schemas"]["ComputerCallOutput"] | components["schemas"]["ResponseFunctionWebSearchParam"] | components["schemas"]["ResponseFunctionToolCallParam"] | components["schemas"]["FunctionCallOutput"] | components["schemas"]["ToolSearchCall"] | components["schemas"]["ResponseToolSearchOutputItemParamParam"] | components["schemas"]["ResponseReasoningItemParam"] | components["schemas"]["ResponseCompactionItemParamParam"] | components["schemas"]["ResponsesAPIRequestParams_ImageGenerationCall"] | components["schemas"]["ResponseCodeInterpreterToolCallParam"] | components["schemas"]["LocalShellCall"] | components["schemas"]["LocalShellCallOutput"] | components["schemas"]["ShellCall"] | components["schemas"]["ShellCallOutput"] | components["schemas"]["ApplyPatchCall"] | components["schemas"]["ApplyPatchCallOutput"] | components["schemas"]["McpListTools"] | components["schemas"]["McpApprovalRequest"] | components["schemas"]["ResponsesAPIRequestParams_McpApprovalResponse"] | components["schemas"]["McpCall"] | components["schemas"]["ResponseCustomToolCallOutputParam"] | components["schemas"]["ResponseCustomToolCallParam"] | components["schemas"]["ItemReference"])[]; + /** Instructions */ + instructions?: string | null; + /** Max Output Tokens */ + max_output_tokens?: number | null; + /** Max Tool Calls */ + max_tool_calls?: number | null; + /** Metadata */ + metadata?: { + [key: string]: unknown; + } | null; + /** Model */ + model: string; + /** Parallel Tool Calls */ + parallel_tool_calls?: boolean | null; + /** Partial Images */ + partial_images?: number | null; + /** Previous Response Id */ + previous_response_id?: string | null; + prompt?: components["schemas"]["PromptObject"] | null; + /** Prompt Cache Key */ + prompt_cache_key?: string | null; + prompt_cache_options?: components["schemas"]["PromptCacheOptions"] | null; + /** Prompt Cache Retention */ + prompt_cache_retention?: string | null; + reasoning?: components["schemas"]["Reasoning"] | null; + /** Safety Identifier */ + safety_identifier?: string | null; + /** Service Tier */ + service_tier?: string | null; + /** Store */ + store?: boolean | null; + /** Stream */ + stream?: boolean | null; + stream_options?: components["schemas"]["ResponsesAPIStreamOptions"] | null; + /** Temperature */ + temperature?: number | null; + text?: components["schemas"]["ResponseTextConfigParam"] | null; + /** Tool Choice */ + tool_choice?: ("none" | "auto" | "required") | components["schemas"]["ToolChoiceAllowedParam"] | components["schemas"]["ToolChoiceTypesParam"] | components["schemas"]["ToolChoiceFunctionParam"] | components["schemas"]["ToolChoiceMcpParam"] | components["schemas"]["ToolChoiceCustomParam"] | components["schemas"]["ToolChoiceApplyPatchParam"] | components["schemas"]["ToolChoiceShellParam"] | null; + /** Tools */ + tools?: (components["schemas"]["FunctionToolParam"] | components["schemas"]["FileSearchToolParam"] | components["schemas"]["openai__types__responses__computer_tool_param__ComputerToolParam"] | components["schemas"]["ComputerUsePreviewToolParam"] | components["schemas"]["WebSearchToolParam"] | components["schemas"]["Mcp"] | components["schemas"]["CodeInterpreter"] | components["schemas"]["ImageGeneration"] | components["schemas"]["LocalShell"] | components["schemas"]["FunctionShellToolParam"] | components["schemas"]["CustomToolParam"] | components["schemas"]["NamespaceToolParam"] | components["schemas"]["ToolSearchToolParam"] | components["schemas"]["WebSearchPreviewToolParam"] | components["schemas"]["ApplyPatchToolParam"] | components["schemas"]["litellm__types__llms__openai__ComputerToolParam"] | components["schemas"]["ShellToolParam"])[] | null; + /** Top Logprobs */ + top_logprobs?: number | null; + /** Top P */ + top_p?: number | null; + /** Truncation */ + truncation?: ("auto" | "disabled") | null; + /** User */ + user?: string | null; + }; + }; + }; responses: { /** @description Successful Response */ 200: { @@ -59615,7 +63883,8 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": unknown; + "application/json": components["schemas"]["ResponsesAPIResponse"]; + "text/event-stream": string; }; }; }; @@ -59677,7 +63946,7 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": unknown; + "application/json": components["schemas"]["ResponsesAPIResponse"]; }; }; /** @description Validation Error */ @@ -59708,7 +63977,7 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": unknown; + "application/json": components["schemas"]["DeleteResponseResult"]; }; }; /** @description Validation Error */ @@ -59770,7 +64039,7 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": unknown; + "application/json": components["schemas"]["ResponseItemList"]; }; }; /** @description Validation Error */ @@ -68721,7 +72990,69 @@ export interface operations { path?: never; cookie?: never; }; - requestBody?: never; + requestBody: { + content: { + "application/json": { + /** Background */ + background?: boolean | null; + /** Context Management */ + context_management?: components["schemas"]["ContextManagementEntry"][] | null; + /** Include */ + include?: ("file_search_call.results" | "web_search_call.results" | "web_search_call.action.sources" | "message.input_image.image_url" | "computer_call_output.output.image_url" | "code_interpreter_call.outputs" | "reasoning.encrypted_content" | "message.output_text.logprobs")[] | null; + /** Input */ + input: string | (components["schemas"]["EasyInputMessageParam"] | components["schemas"]["ResponsesAPIRequestParams_Message"] | components["schemas"]["ResponseOutputMessageParam"] | components["schemas"]["ResponseFileSearchToolCallParam"] | components["schemas"]["ResponseComputerToolCallParam"] | components["schemas"]["ComputerCallOutput"] | components["schemas"]["ResponseFunctionWebSearchParam"] | components["schemas"]["ResponseFunctionToolCallParam"] | components["schemas"]["FunctionCallOutput"] | components["schemas"]["ToolSearchCall"] | components["schemas"]["ResponseToolSearchOutputItemParamParam"] | components["schemas"]["ResponseReasoningItemParam"] | components["schemas"]["ResponseCompactionItemParamParam"] | components["schemas"]["ResponsesAPIRequestParams_ImageGenerationCall"] | components["schemas"]["ResponseCodeInterpreterToolCallParam"] | components["schemas"]["LocalShellCall"] | components["schemas"]["LocalShellCallOutput"] | components["schemas"]["ShellCall"] | components["schemas"]["ShellCallOutput"] | components["schemas"]["ApplyPatchCall"] | components["schemas"]["ApplyPatchCallOutput"] | components["schemas"]["McpListTools"] | components["schemas"]["McpApprovalRequest"] | components["schemas"]["ResponsesAPIRequestParams_McpApprovalResponse"] | components["schemas"]["McpCall"] | components["schemas"]["ResponseCustomToolCallOutputParam"] | components["schemas"]["ResponseCustomToolCallParam"] | components["schemas"]["ItemReference"])[]; + /** Instructions */ + instructions?: string | null; + /** Max Output Tokens */ + max_output_tokens?: number | null; + /** Max Tool Calls */ + max_tool_calls?: number | null; + /** Metadata */ + metadata?: { + [key: string]: unknown; + } | null; + /** Model */ + model: string; + /** Parallel Tool Calls */ + parallel_tool_calls?: boolean | null; + /** Partial Images */ + partial_images?: number | null; + /** Previous Response Id */ + previous_response_id?: string | null; + prompt?: components["schemas"]["PromptObject"] | null; + /** Prompt Cache Key */ + prompt_cache_key?: string | null; + prompt_cache_options?: components["schemas"]["PromptCacheOptions"] | null; + /** Prompt Cache Retention */ + prompt_cache_retention?: string | null; + reasoning?: components["schemas"]["Reasoning"] | null; + /** Safety Identifier */ + safety_identifier?: string | null; + /** Service Tier */ + service_tier?: string | null; + /** Store */ + store?: boolean | null; + /** Stream */ + stream?: boolean | null; + stream_options?: components["schemas"]["ResponsesAPIStreamOptions"] | null; + /** Temperature */ + temperature?: number | null; + text?: components["schemas"]["ResponseTextConfigParam"] | null; + /** Tool Choice */ + tool_choice?: ("none" | "auto" | "required") | components["schemas"]["ToolChoiceAllowedParam"] | components["schemas"]["ToolChoiceTypesParam"] | components["schemas"]["ToolChoiceFunctionParam"] | components["schemas"]["ToolChoiceMcpParam"] | components["schemas"]["ToolChoiceCustomParam"] | components["schemas"]["ToolChoiceApplyPatchParam"] | components["schemas"]["ToolChoiceShellParam"] | null; + /** Tools */ + tools?: (components["schemas"]["FunctionToolParam"] | components["schemas"]["FileSearchToolParam"] | components["schemas"]["openai__types__responses__computer_tool_param__ComputerToolParam"] | components["schemas"]["ComputerUsePreviewToolParam"] | components["schemas"]["WebSearchToolParam"] | components["schemas"]["Mcp"] | components["schemas"]["CodeInterpreter"] | components["schemas"]["ImageGeneration"] | components["schemas"]["LocalShell"] | components["schemas"]["FunctionShellToolParam"] | components["schemas"]["CustomToolParam"] | components["schemas"]["NamespaceToolParam"] | components["schemas"]["ToolSearchToolParam"] | components["schemas"]["WebSearchPreviewToolParam"] | components["schemas"]["ApplyPatchToolParam"] | components["schemas"]["litellm__types__llms__openai__ComputerToolParam"] | components["schemas"]["ShellToolParam"])[] | null; + /** Top Logprobs */ + top_logprobs?: number | null; + /** Top P */ + top_p?: number | null; + /** Truncation */ + truncation?: ("auto" | "disabled") | null; + /** User */ + user?: string | null; + }; + }; + }; responses: { /** @description Successful Response */ 200: { @@ -68729,7 +73060,8 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": unknown; + "application/json": components["schemas"]["ResponsesAPIResponse"]; + "text/event-stream": string; }; }; }; @@ -68791,7 +73123,7 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": unknown; + "application/json": components["schemas"]["ResponsesAPIResponse"]; }; }; /** @description Validation Error */ @@ -68822,7 +73154,7 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": unknown; + "application/json": components["schemas"]["DeleteResponseResult"]; }; }; /** @description Validation Error */ @@ -68884,7 +73216,7 @@ export interface operations { [name: string]: unknown; }; content: { - "application/json": unknown; + "application/json": components["schemas"]["ResponseItemList"]; }; }; /** @description Validation Error */