Skip to content

Commit 1952dac

Browse files
feat(api): gpt-5.4, tool search tool, and new computer tool
1 parent 9910afc commit 1952dac

157 files changed

Lines changed: 4748 additions & 498 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.stats.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 147
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai%2Fopenai-b879fff3f51e71e4f1ce17f03efc017a46d888a1bfd88eb655a6210a86f02acf.yml
3-
openapi_spec_hash: cbf649cc2c944fb3f77450ec752ab1e9
4-
config_hash: 9c56fcc7ff64785b5cd448d9a754b4b3
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai%2Fopenai-9c802d45a9bf2a896b5fd22ac22bba185e8a145bd40ed242df9bb87a05e954eb.yml
3+
openapi_spec_hash: 97984ed69285e660b7d5c810c69ed449
4+
config_hash: acb0b1eb5d7284bfedaddb29f7f5a691

lib/openai.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -537,7 +537,10 @@
537537
require_relative "openai/models/response_format_text_python"
538538
require_relative "openai/models/responses/apply_patch_tool"
539539
require_relative "openai/models/responses/compacted_response"
540+
require_relative "openai/models/responses/computer_action"
541+
require_relative "openai/models/responses/computer_action_list"
540542
require_relative "openai/models/responses/computer_tool"
543+
require_relative "openai/models/responses/computer_use_tool"
541544
require_relative "openai/models/responses/container_auto"
542545
require_relative "openai/models/responses/container_network_policy_allowlist"
543546
require_relative "openai/models/responses/container_network_policy_disabled"
@@ -555,6 +558,7 @@
555558
require_relative "openai/models/responses/input_token_count_response"
556559
require_relative "openai/models/responses/local_environment"
557560
require_relative "openai/models/responses/local_skill"
561+
require_relative "openai/models/responses/namespace_tool"
558562
require_relative "openai/models/responses/response"
559563
require_relative "openai/models/responses/response_apply_patch_tool_call"
560564
require_relative "openai/models/responses/response_apply_patch_tool_call_output"
@@ -659,6 +663,9 @@
659663
require_relative "openai/models/responses/response_text_config"
660664
require_relative "openai/models/responses/response_text_delta_event"
661665
require_relative "openai/models/responses/response_text_done_event"
666+
require_relative "openai/models/responses/response_tool_search_call"
667+
require_relative "openai/models/responses/response_tool_search_output_item"
668+
require_relative "openai/models/responses/response_tool_search_output_item_param"
662669
require_relative "openai/models/responses/response_usage"
663670
require_relative "openai/models/responses/response_web_search_call_completed_event"
664671
require_relative "openai/models/responses/response_web_search_call_in_progress_event"
@@ -673,6 +680,7 @@
673680
require_relative "openai/models/responses/tool_choice_options"
674681
require_relative "openai/models/responses/tool_choice_shell"
675682
require_relative "openai/models/responses/tool_choice_types"
683+
require_relative "openai/models/responses/tool_search_tool"
676684
require_relative "openai/models/responses/web_search_preview_tool"
677685
require_relative "openai/models/responses/web_search_tool"
678686
require_relative "openai/models/responses_model"

lib/openai/internal/type/enum.rb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,23 +19,23 @@ module Type
1919
# @example
2020
# # `chat_model` is a `OpenAI::ChatModel`
2121
# case chat_model
22-
# when OpenAI::ChatModel::GPT_5_2
22+
# when OpenAI::ChatModel::GPT_5_4
2323
# # ...
24-
# when OpenAI::ChatModel::GPT_5_2_2025_12_11
24+
# when OpenAI::ChatModel::GPT_5_3_CHAT_LATEST
2525
# # ...
26-
# when OpenAI::ChatModel::GPT_5_2_CHAT_LATEST
26+
# when OpenAI::ChatModel::GPT_5_2
2727
# # ...
2828
# else
2929
# puts(chat_model)
3030
# end
3131
#
3232
# @example
3333
# case chat_model
34-
# in :"gpt-5.2"
34+
# in :"gpt-5.4"
3535
# # ...
36-
# in :"gpt-5.2-2025-12-11"
36+
# in :"gpt-5.3-chat-latest"
3737
# # ...
38-
# in :"gpt-5.2-chat-latest"
38+
# in :"gpt-5.2"
3939
# # ...
4040
# else
4141
# puts(chat_model)

lib/openai/models/beta/assistant_create_params.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -250,8 +250,9 @@ class VectorStore < OpenAI::Internal::Type::BaseModel
250250

251251
# @!attribute file_ids
252252
# A list of [file](https://platform.openai.com/docs/api-reference/files) IDs to
253-
# add to the vector store. There can be a maximum of 10000 files in a vector
254-
# store.
253+
# add to the vector store. For vector stores created before Nov 2025, there can be
254+
# a maximum of 10,000 files in a vector store. For vector stores created starting
255+
# in Nov 2025, the limit is 100,000,000 files.
255256
#
256257
# @return [Array<String>, nil]
257258
optional :file_ids, OpenAI::Internal::Type::ArrayOf[String]

lib/openai/models/beta/thread_create_and_run_params.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -479,8 +479,9 @@ class VectorStore < OpenAI::Internal::Type::BaseModel
479479

480480
# @!attribute file_ids
481481
# A list of [file](https://platform.openai.com/docs/api-reference/files) IDs to
482-
# add to the vector store. There can be a maximum of 10000 files in a vector
483-
# store.
482+
# add to the vector store. For vector stores created before Nov 2025, there can be
483+
# a maximum of 10,000 files in a vector store. For vector stores created starting
484+
# in Nov 2025, the limit is 100,000,000 files.
484485
#
485486
# @return [Array<String>, nil]
486487
optional :file_ids, OpenAI::Internal::Type::ArrayOf[String]

lib/openai/models/beta/thread_create_params.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -260,8 +260,9 @@ class VectorStore < OpenAI::Internal::Type::BaseModel
260260

261261
# @!attribute file_ids
262262
# A list of [file](https://platform.openai.com/docs/api-reference/files) IDs to
263-
# add to the vector store. There can be a maximum of 10000 files in a vector
264-
# store.
263+
# add to the vector store. For vector stores created before Nov 2025, there can be
264+
# a maximum of 10,000 files in a vector store. For vector stores created starting
265+
# in Nov 2025, the limit is 100,000,000 files.
265266
#
266267
# @return [Array<String>, nil]
267268
optional :file_ids, OpenAI::Internal::Type::ArrayOf[String]

lib/openai/models/chat_model.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ module Models
55
module ChatModel
66
extend OpenAI::Internal::Type::Enum
77

8+
GPT_5_4 = :"gpt-5.4"
9+
GPT_5_3_CHAT_LATEST = :"gpt-5.3-chat-latest"
810
GPT_5_2 = :"gpt-5.2"
911
GPT_5_2_2025_12_11 = :"gpt-5.2-2025-12-11"
1012
GPT_5_2_CHAT_LATEST = :"gpt-5.2-chat-latest"

lib/openai/models/conversations/computer_screenshot_content.rb

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,13 @@ module OpenAI
44
module Models
55
module Conversations
66
class ComputerScreenshotContent < OpenAI::Internal::Type::BaseModel
7+
# @!attribute detail
8+
# The detail level of the screenshot image to be sent to the model. One of `high`,
9+
# `low`, `auto`, or `original`. Defaults to `auto`.
10+
#
11+
# @return [Symbol, OpenAI::Models::Conversations::ComputerScreenshotContent::Detail]
12+
required :detail, enum: -> { OpenAI::Conversations::ComputerScreenshotContent::Detail }
13+
714
# @!attribute file_id
815
# The identifier of an uploaded file that contains the screenshot.
916
#
@@ -23,17 +30,35 @@ class ComputerScreenshotContent < OpenAI::Internal::Type::BaseModel
2330
# @return [Symbol, :computer_screenshot]
2431
required :type, const: :computer_screenshot
2532

26-
# @!method initialize(file_id:, image_url:, type: :computer_screenshot)
33+
# @!method initialize(detail:, file_id:, image_url:, type: :computer_screenshot)
2734
# Some parameter documentations has been truncated, see
2835
# {OpenAI::Models::Conversations::ComputerScreenshotContent} for more details.
2936
#
3037
# A screenshot of a computer.
3138
#
39+
# @param detail [Symbol, OpenAI::Models::Conversations::ComputerScreenshotContent::Detail] The detail level of the screenshot image to be sent to the model. One of `high`,
40+
#
3241
# @param file_id [String, nil] The identifier of an uploaded file that contains the screenshot.
3342
#
3443
# @param image_url [String, nil] The URL of the screenshot image.
3544
#
3645
# @param type [Symbol, :computer_screenshot] Specifies the event type. For a computer screenshot, this property is always set
46+
47+
# The detail level of the screenshot image to be sent to the model. One of `high`,
48+
# `low`, `auto`, or `original`. Defaults to `auto`.
49+
#
50+
# @see OpenAI::Models::Conversations::ComputerScreenshotContent#detail
51+
module Detail
52+
extend OpenAI::Internal::Type::Enum
53+
54+
LOW = :low
55+
HIGH = :high
56+
AUTO = :auto
57+
ORIGINAL = :original
58+
59+
# @!method self.values
60+
# @return [Array<Symbol>]
61+
end
3762
end
3863
end
3964
end

lib/openai/models/conversations/conversation_create_params.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class ConversationCreateParams < OpenAI::Internal::Type::BaseModel
1212
# Initial items to include in the conversation context. You may add up to 20 items
1313
# at a time.
1414
#
15-
# @return [Array<OpenAI::Models::Responses::EasyInputMessage, OpenAI::Models::Responses::ResponseInputItem::Message, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseInputItem::FunctionCallOutput, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseCompactionItemParam, OpenAI::Models::Responses::ResponseInputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseInputItem::ShellCall, OpenAI::Models::Responses::ResponseInputItem::ShellCallOutput, OpenAI::Models::Responses::ResponseInputItem::ApplyPatchCall, OpenAI::Models::Responses::ResponseInputItem::ApplyPatchCallOutput, OpenAI::Models::Responses::ResponseInputItem::McpListTools, OpenAI::Models::Responses::ResponseInputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseInputItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseInputItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCallOutput, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseInputItem::ItemReference>, nil]
15+
# @return [Array<OpenAI::Models::Responses::EasyInputMessage, OpenAI::Models::Responses::ResponseInputItem::Message, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseInputItem::FunctionCallOutput, OpenAI::Models::Responses::ResponseInputItem::ToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItemParam, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseCompactionItemParam, OpenAI::Models::Responses::ResponseInputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseInputItem::ShellCall, OpenAI::Models::Responses::ResponseInputItem::ShellCallOutput, OpenAI::Models::Responses::ResponseInputItem::ApplyPatchCall, OpenAI::Models::Responses::ResponseInputItem::ApplyPatchCallOutput, OpenAI::Models::Responses::ResponseInputItem::McpListTools, OpenAI::Models::Responses::ResponseInputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseInputItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseInputItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCallOutput, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseInputItem::ItemReference>, nil]
1616
optional :items,
1717
-> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Responses::ResponseInputItem] },
1818
nil?: true
@@ -32,7 +32,7 @@ class ConversationCreateParams < OpenAI::Internal::Type::BaseModel
3232
# Some parameter documentations has been truncated, see
3333
# {OpenAI::Models::Conversations::ConversationCreateParams} for more details.
3434
#
35-
# @param items [Array<OpenAI::Models::Responses::EasyInputMessage, OpenAI::Models::Responses::ResponseInputItem::Message, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseInputItem::FunctionCallOutput, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseCompactionItemParam, OpenAI::Models::Responses::ResponseInputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseInputItem::ShellCall, OpenAI::Models::Responses::ResponseInputItem::ShellCallOutput, OpenAI::Models::Responses::ResponseInputItem::ApplyPatchCall, OpenAI::Models::Responses::ResponseInputItem::ApplyPatchCallOutput, OpenAI::Models::Responses::ResponseInputItem::McpListTools, OpenAI::Models::Responses::ResponseInputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseInputItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseInputItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCallOutput, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseInputItem::ItemReference>, nil] Initial items to include in the conversation context. You may add up to 20 items
35+
# @param items [Array<OpenAI::Models::Responses::EasyInputMessage, OpenAI::Models::Responses::ResponseInputItem::Message, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseInputItem::FunctionCallOutput, OpenAI::Models::Responses::ResponseInputItem::ToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItemParam, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseCompactionItemParam, OpenAI::Models::Responses::ResponseInputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseInputItem::ShellCall, OpenAI::Models::Responses::ResponseInputItem::ShellCallOutput, OpenAI::Models::Responses::ResponseInputItem::ApplyPatchCall, OpenAI::Models::Responses::ResponseInputItem::ApplyPatchCallOutput, OpenAI::Models::Responses::ResponseInputItem::McpListTools, OpenAI::Models::Responses::ResponseInputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseInputItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseInputItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCallOutput, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseInputItem::ItemReference>, nil] Initial items to include in the conversation context. You may add up to 20 items
3636
#
3737
# @param metadata [Hash{Symbol=>String}, nil] Set of 16 key-value pairs that can be attached to an object. This can be
3838
#

lib/openai/models/conversations/conversation_item.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@ module ConversationItem
3939

4040
variant :computer_call_output, -> { OpenAI::Responses::ResponseComputerToolCallOutputItem }
4141

42+
variant :tool_search_call, -> { OpenAI::Responses::ResponseToolSearchCall }
43+
44+
variant :tool_search_output, -> { OpenAI::Responses::ResponseToolSearchOutputItem }
45+
4246
# A description of the chain of thought used by a reasoning model while generating
4347
# a response. Be sure to include these items in your `input` to the Responses API
4448
# for subsequent turns of a conversation if you are manually
@@ -604,7 +608,7 @@ module Status
604608
end
605609

606610
# @!method self.variants
607-
# @return [Array(OpenAI::Models::Conversations::Message, OpenAI::Models::Responses::ResponseFunctionToolCallItem, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Conversations::ConversationItem::LocalShellCall, OpenAI::Models::Conversations::ConversationItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Conversations::ConversationItem::McpListTools, OpenAI::Models::Conversations::ConversationItem::McpApprovalRequest, OpenAI::Models::Conversations::ConversationItem::McpApprovalResponse, OpenAI::Models::Conversations::ConversationItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseCustomToolCallOutput)]
611+
# @return [Array(OpenAI::Models::Conversations::Message, OpenAI::Models::Responses::ResponseFunctionToolCallItem, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Conversations::ConversationItem::LocalShellCall, OpenAI::Models::Conversations::ConversationItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Conversations::ConversationItem::McpListTools, OpenAI::Models::Conversations::ConversationItem::McpApprovalRequest, OpenAI::Models::Conversations::ConversationItem::McpApprovalResponse, OpenAI::Models::Conversations::ConversationItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseCustomToolCallOutput)]
608612
end
609613
end
610614

0 commit comments

Comments
 (0)