openai 0.55.0 → 0.57.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +45 -0
  3. data/README.md +1 -1
  4. data/lib/openai/internal/type/enum.rb +4 -4
  5. data/lib/openai/models/batch_create_params.rb +9 -6
  6. data/lib/openai/models/chat_model.rb +4 -0
  7. data/lib/openai/models/comparison_filter.rb +2 -0
  8. data/lib/openai/models/conversations/conversation_item.rb +4 -1
  9. data/lib/openai/models/conversations/conversation_item_list.rb +2 -2
  10. data/lib/openai/models/responses/compacted_response.rb +2 -2
  11. data/lib/openai/models/responses/computer_action.rb +45 -5
  12. data/lib/openai/models/responses/namespace_tool.rb +13 -1
  13. data/lib/openai/models/responses/response.rb +2 -2
  14. data/lib/openai/models/responses/response_compact_params.rb +12 -0
  15. data/lib/openai/models/responses/response_computer_tool_call.rb +45 -5
  16. data/lib/openai/models/responses/response_computer_tool_call_output_item.rb +31 -22
  17. data/lib/openai/models/responses/response_custom_tool_call_item.rb +53 -0
  18. data/lib/openai/models/responses/response_custom_tool_call_output_item.rb +53 -0
  19. data/lib/openai/models/responses/response_function_tool_call_item.rb +31 -1
  20. data/lib/openai/models/responses/response_function_tool_call_output_item.rb +14 -6
  21. data/lib/openai/models/responses/response_input_message_item.rb +8 -20
  22. data/lib/openai/models/responses/response_item.rb +16 -1
  23. data/lib/openai/models/responses/response_item_list.rb +2 -2
  24. data/lib/openai/models/responses/response_output_item.rb +120 -1
  25. data/lib/openai/models/responses/response_output_item_added_event.rb +2 -2
  26. data/lib/openai/models/responses/response_output_item_done_event.rb +2 -2
  27. data/lib/openai/resources/conversations/items.rb +2 -2
  28. data/lib/openai/resources/responses/input_items.rb +1 -1
  29. data/lib/openai/version.rb +1 -1
  30. data/lib/openai.rb +4 -2
  31. data/rbi/openai/models/batch_create_params.rbi +17 -9
  32. data/rbi/openai/models/chat_model.rbi +6 -0
  33. data/rbi/openai/models/comparison_filter.rbi +2 -0
  34. data/rbi/openai/models/conversations/conversation_item.rbi +1 -0
  35. data/rbi/openai/models/conversations/conversation_item_list.rbi +1 -0
  36. data/rbi/openai/models/responses/compacted_response.rbi +6 -1
  37. data/rbi/openai/models/responses/computer_action.rbi +71 -11
  38. data/rbi/openai/models/responses/namespace_tool.rbi +11 -0
  39. data/rbi/openai/models/responses/response.rbi +6 -1
  40. data/rbi/openai/models/responses/response_compact_params.rbi +20 -0
  41. data/rbi/openai/models/responses/response_computer_tool_call.rbi +71 -11
  42. data/rbi/openai/models/responses/response_computer_tool_call_output_item.rbi +71 -65
  43. data/rbi/openai/models/responses/response_custom_tool_call_item.rbi +111 -0
  44. data/rbi/openai/models/responses/response_custom_tool_call_output_item.rbi +111 -0
  45. data/rbi/openai/models/responses/response_function_tool_call_item.rbi +81 -3
  46. data/rbi/openai/models/responses/response_function_tool_call_output_item.rbi +19 -18
  47. data/rbi/openai/models/responses/response_input_message_item.rbi +8 -49
  48. data/rbi/openai/models/responses/response_item.rbi +5 -1
  49. data/rbi/openai/models/responses/response_item_list.rbi +5 -1
  50. data/rbi/openai/models/responses/response_output_item.rbi +186 -1
  51. data/rbi/openai/models/responses/response_output_item_added_event.rbi +6 -1
  52. data/rbi/openai/models/responses/response_output_item_done_event.rbi +6 -1
  53. data/rbi/openai/resources/batches.rbi +4 -3
  54. data/sig/openai/models/batch_create_params.rbs +2 -0
  55. data/sig/openai/models/chat_model.rbs +8 -0
  56. data/sig/openai/models/comparison_filter.rbs +3 -1
  57. data/sig/openai/models/conversations/conversation_item.rbs +1 -0
  58. data/sig/openai/models/responses/computer_action.rbs +53 -11
  59. data/sig/openai/models/responses/namespace_tool.rbs +7 -0
  60. data/sig/openai/models/responses/response_compact_params.rbs +8 -0
  61. data/sig/openai/models/responses/response_computer_tool_call.rbs +53 -11
  62. data/sig/openai/models/responses/response_computer_tool_call_output_item.rbs +23 -19
  63. data/sig/openai/models/responses/response_custom_tool_call_item.rbs +52 -0
  64. data/sig/openai/models/responses/response_custom_tool_call_output_item.rbs +52 -0
  65. data/sig/openai/models/responses/response_function_tool_call_item.rbs +38 -3
  66. data/sig/openai/models/responses/response_function_tool_call_output_item.rbs +10 -7
  67. data/sig/openai/models/responses/response_input_message_item.rbs +7 -21
  68. data/sig/openai/models/responses/response_item.rbs +4 -0
  69. data/sig/openai/models/responses/response_output_item.rbs +86 -0
  70. metadata +8 -2
@@ -52,7 +52,7 @@ module OpenAI
52
52
  #
53
53
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
54
54
  #
55
- # @return [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]
55
+ # @return [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::ResponseCompactionItem, 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]
56
56
  #
57
57
  # @see OpenAI::Models::Conversations::ItemRetrieveParams
58
58
  def retrieve(item_id, params)
@@ -90,7 +90,7 @@ module OpenAI
90
90
  #
91
91
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
92
92
  #
93
- # @return [OpenAI::Internal::ConversationCursorPage<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>]
93
+ # @return [OpenAI::Internal::ConversationCursorPage<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::ResponseCompactionItem, 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>]
94
94
  #
95
95
  # @see OpenAI::Models::Conversations::ItemListParams
96
96
  def list(conversation_id, params = {})
@@ -23,7 +23,7 @@ module OpenAI
23
23
  #
24
24
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
25
25
  #
26
- # @return [OpenAI::Internal::CursorPage<OpenAI::Models::Responses::ResponseInputMessageItem, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseFunctionToolCallItem, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseItem::LocalShellCall, OpenAI::Models::Responses::ResponseItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Responses::ResponseItem::McpListTools, OpenAI::Models::Responses::ResponseItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseItem::McpCall>]
26
+ # @return [OpenAI::Internal::CursorPage<OpenAI::Models::Responses::ResponseInputMessageItem, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseFunctionToolCallItem, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseCompactionItem, OpenAI::Models::Responses::ResponseItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseItem::LocalShellCall, OpenAI::Models::Responses::ResponseItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Responses::ResponseItem::McpListTools, OpenAI::Models::Responses::ResponseItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCallItem, OpenAI::Models::Responses::ResponseCustomToolCallOutputItem>]
27
27
  #
28
28
  # @see OpenAI::Models::Responses::InputItemListParams
29
29
  def list(response_id, params = {})
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OpenAI
4
- VERSION = "0.55.0"
4
+ VERSION = "0.57.0"
5
5
  end
data/lib/openai.rb CHANGED
@@ -74,6 +74,8 @@ require_relative "openai/models/graders/python_grader"
74
74
  require_relative "openai/models/graders/text_similarity_grader"
75
75
  require_relative "openai/models/fine_tuning/fine_tuning_job_wandb_integration_object"
76
76
  require_relative "openai/models/realtime/realtime_session_create_request"
77
+ require_relative "openai/models/responses/response_custom_tool_call"
78
+ require_relative "openai/models/responses/response_custom_tool_call_output"
77
79
  require_relative "openai/models/responses/response_function_tool_call"
78
80
  require_relative "openai/models/all_models"
79
81
  require_relative "openai/models/audio/speech_create_params"
@@ -588,10 +590,10 @@ require_relative "openai/models/responses/response_content_part_done_event"
588
590
  require_relative "openai/models/responses/response_conversation_param"
589
591
  require_relative "openai/models/responses/response_created_event"
590
592
  require_relative "openai/models/responses/response_create_params"
591
- require_relative "openai/models/responses/response_custom_tool_call"
592
593
  require_relative "openai/models/responses/response_custom_tool_call_input_delta_event"
593
594
  require_relative "openai/models/responses/response_custom_tool_call_input_done_event"
594
- require_relative "openai/models/responses/response_custom_tool_call_output"
595
+ require_relative "openai/models/responses/response_custom_tool_call_item"
596
+ require_relative "openai/models/responses/response_custom_tool_call_output_item"
595
597
  require_relative "openai/models/responses/response_delete_params"
596
598
  require_relative "openai/models/responses/response_error"
597
599
  require_relative "openai/models/responses/response_error_event"
@@ -18,9 +18,10 @@ module OpenAI
18
18
 
19
19
  # The endpoint to be used for all requests in the batch. Currently
20
20
  # `/v1/responses`, `/v1/chat/completions`, `/v1/embeddings`, `/v1/completions`,
21
- # `/v1/moderations`, `/v1/images/generations`, and `/v1/images/edits` are
22
- # supported. Note that `/v1/embeddings` batches are also restricted to a maximum
23
- # of 50,000 embedding inputs across all requests in the batch.
21
+ # `/v1/moderations`, `/v1/images/generations`, `/v1/images/edits`, and
22
+ # `/v1/videos` are supported. Note that `/v1/embeddings` batches are also
23
+ # restricted to a maximum of 50,000 embedding inputs across all requests in the
24
+ # batch.
24
25
  sig { returns(OpenAI::BatchCreateParams::Endpoint::OrSymbol) }
25
26
  attr_accessor :endpoint
26
27
 
@@ -76,9 +77,10 @@ module OpenAI
76
77
  completion_window:,
77
78
  # The endpoint to be used for all requests in the batch. Currently
78
79
  # `/v1/responses`, `/v1/chat/completions`, `/v1/embeddings`, `/v1/completions`,
79
- # `/v1/moderations`, `/v1/images/generations`, and `/v1/images/edits` are
80
- # supported. Note that `/v1/embeddings` batches are also restricted to a maximum
81
- # of 50,000 embedding inputs across all requests in the batch.
80
+ # `/v1/moderations`, `/v1/images/generations`, `/v1/images/edits`, and
81
+ # `/v1/videos` are supported. Note that `/v1/embeddings` batches are also
82
+ # restricted to a maximum of 50,000 embedding inputs across all requests in the
83
+ # batch.
82
84
  endpoint:,
83
85
  # The ID of an uploaded file that contains requests for the new batch.
84
86
  #
@@ -148,9 +150,10 @@ module OpenAI
148
150
 
149
151
  # The endpoint to be used for all requests in the batch. Currently
150
152
  # `/v1/responses`, `/v1/chat/completions`, `/v1/embeddings`, `/v1/completions`,
151
- # `/v1/moderations`, `/v1/images/generations`, and `/v1/images/edits` are
152
- # supported. Note that `/v1/embeddings` batches are also restricted to a maximum
153
- # of 50,000 embedding inputs across all requests in the batch.
153
+ # `/v1/moderations`, `/v1/images/generations`, `/v1/images/edits`, and
154
+ # `/v1/videos` are supported. Note that `/v1/embeddings` batches are also
155
+ # restricted to a maximum of 50,000 embedding inputs across all requests in the
156
+ # batch.
154
157
  module Endpoint
155
158
  extend OpenAI::Internal::Type::Enum
156
159
 
@@ -193,6 +196,11 @@ module OpenAI
193
196
  :"/v1/images/edits",
194
197
  OpenAI::BatchCreateParams::Endpoint::TaggedSymbol
195
198
  )
199
+ V1_VIDEOS =
200
+ T.let(
201
+ :"/v1/videos",
202
+ OpenAI::BatchCreateParams::Endpoint::TaggedSymbol
203
+ )
196
204
 
197
205
  sig do
198
206
  override.returns(
@@ -9,6 +9,12 @@ module OpenAI
9
9
  OrSymbol = T.type_alias { T.any(Symbol, String) }
10
10
 
11
11
  GPT_5_4 = T.let(:"gpt-5.4", OpenAI::ChatModel::TaggedSymbol)
12
+ GPT_5_4_MINI = T.let(:"gpt-5.4-mini", OpenAI::ChatModel::TaggedSymbol)
13
+ GPT_5_4_NANO = T.let(:"gpt-5.4-nano", OpenAI::ChatModel::TaggedSymbol)
14
+ GPT_5_4_MINI_2026_03_17 =
15
+ T.let(:"gpt-5.4-mini-2026-03-17", OpenAI::ChatModel::TaggedSymbol)
16
+ GPT_5_4_NANO_2026_03_17 =
17
+ T.let(:"gpt-5.4-nano-2026-03-17", OpenAI::ChatModel::TaggedSymbol)
12
18
  GPT_5_3_CHAT_LATEST =
13
19
  T.let(:"gpt-5.3-chat-latest", OpenAI::ChatModel::TaggedSymbol)
14
20
  GPT_5_2 = T.let(:"gpt-5.2", OpenAI::ChatModel::TaggedSymbol)
@@ -97,6 +97,8 @@ module OpenAI
97
97
  GTE = T.let(:gte, OpenAI::ComparisonFilter::Type::TaggedSymbol)
98
98
  LT = T.let(:lt, OpenAI::ComparisonFilter::Type::TaggedSymbol)
99
99
  LTE = T.let(:lte, OpenAI::ComparisonFilter::Type::TaggedSymbol)
100
+ IN = T.let(:in, OpenAI::ComparisonFilter::Type::TaggedSymbol)
101
+ NIN = T.let(:nin, OpenAI::ComparisonFilter::Type::TaggedSymbol)
100
102
 
101
103
  sig do
102
104
  override.returns(
@@ -25,6 +25,7 @@ module OpenAI
25
25
  OpenAI::Responses::ResponseToolSearchCall,
26
26
  OpenAI::Responses::ResponseToolSearchOutputItem,
27
27
  OpenAI::Responses::ResponseReasoningItem,
28
+ OpenAI::Responses::ResponseCompactionItem,
28
29
  OpenAI::Responses::ResponseCodeInterpreterToolCall,
29
30
  OpenAI::Conversations::ConversationItem::LocalShellCall,
30
31
  OpenAI::Conversations::ConversationItem::LocalShellCallOutput,
@@ -53,6 +53,7 @@ module OpenAI
53
53
  OpenAI::Responses::ResponseToolSearchCall::OrHash,
54
54
  OpenAI::Responses::ResponseToolSearchOutputItem::OrHash,
55
55
  OpenAI::Responses::ResponseReasoningItem::OrHash,
56
+ OpenAI::Responses::ResponseCompactionItem::OrHash,
56
57
  OpenAI::Responses::ResponseCodeInterpreterToolCall::OrHash,
57
58
  OpenAI::Conversations::ConversationItem::LocalShellCall::OrHash,
58
59
  OpenAI::Conversations::ConversationItem::LocalShellCallOutput::OrHash,
@@ -49,8 +49,10 @@ module OpenAI
49
49
  OpenAI::Responses::ResponseOutputMessage::OrHash,
50
50
  OpenAI::Responses::ResponseFileSearchToolCall::OrHash,
51
51
  OpenAI::Responses::ResponseFunctionToolCall::OrHash,
52
+ OpenAI::Responses::ResponseFunctionToolCallOutputItem::OrHash,
52
53
  OpenAI::Responses::ResponseFunctionWebSearch::OrHash,
53
54
  OpenAI::Responses::ResponseComputerToolCall::OrHash,
55
+ OpenAI::Responses::ResponseComputerToolCallOutputItem::OrHash,
54
56
  OpenAI::Responses::ResponseReasoningItem::OrHash,
55
57
  OpenAI::Responses::ResponseToolSearchCall::OrHash,
56
58
  OpenAI::Responses::ResponseToolSearchOutputItem::OrHash,
@@ -58,6 +60,7 @@ module OpenAI
58
60
  OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::OrHash,
59
61
  OpenAI::Responses::ResponseCodeInterpreterToolCall::OrHash,
60
62
  OpenAI::Responses::ResponseOutputItem::LocalShellCall::OrHash,
63
+ OpenAI::Responses::ResponseOutputItem::LocalShellCallOutput::OrHash,
61
64
  OpenAI::Responses::ResponseFunctionShellToolCall::OrHash,
62
65
  OpenAI::Responses::ResponseFunctionShellToolCallOutput::OrHash,
63
66
  OpenAI::Responses::ResponseApplyPatchToolCall::OrHash,
@@ -65,7 +68,9 @@ module OpenAI
65
68
  OpenAI::Responses::ResponseOutputItem::McpCall::OrHash,
66
69
  OpenAI::Responses::ResponseOutputItem::McpListTools::OrHash,
67
70
  OpenAI::Responses::ResponseOutputItem::McpApprovalRequest::OrHash,
68
- OpenAI::Responses::ResponseCustomToolCall::OrHash
71
+ OpenAI::Responses::ResponseOutputItem::McpApprovalResponse::OrHash,
72
+ OpenAI::Responses::ResponseCustomToolCall::OrHash,
73
+ OpenAI::Responses::ResponseCustomToolCallOutputItem::OrHash
69
74
  )
70
75
  ],
71
76
  usage: OpenAI::Responses::ResponseUsage::OrHash,
@@ -50,6 +50,10 @@ module OpenAI
50
50
  sig { returns(Integer) }
51
51
  attr_accessor :y_
52
52
 
53
+ # The keys being held while clicking.
54
+ sig { returns(T.nilable(T::Array[String])) }
55
+ attr_accessor :keys
56
+
53
57
  # A click action.
54
58
  sig do
55
59
  params(
@@ -57,6 +61,7 @@ module OpenAI
57
61
  OpenAI::Responses::ComputerAction::Click::Button::OrSymbol,
58
62
  x: Integer,
59
63
  y_: Integer,
64
+ keys: T.nilable(T::Array[String]),
60
65
  type: Symbol
61
66
  ).returns(T.attached_class)
62
67
  end
@@ -68,6 +73,8 @@ module OpenAI
68
73
  x:,
69
74
  # The y-coordinate where the click occurred.
70
75
  y_:,
76
+ # The keys being held while clicking.
77
+ keys: nil,
71
78
  # Specifies the event type. For a click action, this property is always `click`.
72
79
  type: :click
73
80
  )
@@ -80,7 +87,8 @@ module OpenAI
80
87
  OpenAI::Responses::ComputerAction::Click::Button::OrSymbol,
81
88
  type: Symbol,
82
89
  x: Integer,
83
- y_: Integer
90
+ y_: Integer,
91
+ keys: T.nilable(T::Array[String])
84
92
  }
85
93
  )
86
94
  end
@@ -145,6 +153,10 @@ module OpenAI
145
153
  )
146
154
  end
147
155
 
156
+ # The keys being held while double-clicking.
157
+ sig { returns(T.nilable(T::Array[String])) }
158
+ attr_accessor :keys
159
+
148
160
  # Specifies the event type. For a double click action, this property is always set
149
161
  # to `double_click`.
150
162
  sig { returns(Symbol) }
@@ -160,11 +172,16 @@ module OpenAI
160
172
 
161
173
  # A double click action.
162
174
  sig do
163
- params(x: Integer, y_: Integer, type: Symbol).returns(
164
- T.attached_class
165
- )
175
+ params(
176
+ keys: T.nilable(T::Array[String]),
177
+ x: Integer,
178
+ y_: Integer,
179
+ type: Symbol
180
+ ).returns(T.attached_class)
166
181
  end
167
182
  def self.new(
183
+ # The keys being held while double-clicking.
184
+ keys:,
168
185
  # The x-coordinate where the double click occurred.
169
186
  x:,
170
187
  # The y-coordinate where the double click occurred.
@@ -175,7 +192,16 @@ module OpenAI
175
192
  )
176
193
  end
177
194
 
178
- sig { override.returns({ type: Symbol, x: Integer, y_: Integer }) }
195
+ sig do
196
+ override.returns(
197
+ {
198
+ keys: T.nilable(T::Array[String]),
199
+ type: Symbol,
200
+ x: Integer,
201
+ y_: Integer
202
+ }
203
+ )
204
+ end
179
205
  def to_hash
180
206
  end
181
207
  end
@@ -208,11 +234,16 @@ module OpenAI
208
234
  sig { returns(Symbol) }
209
235
  attr_accessor :type
210
236
 
237
+ # The keys being held while dragging the mouse.
238
+ sig { returns(T.nilable(T::Array[String])) }
239
+ attr_accessor :keys
240
+
211
241
  # A drag action.
212
242
  sig do
213
243
  params(
214
244
  path:
215
245
  T::Array[OpenAI::Responses::ComputerAction::Drag::Path::OrHash],
246
+ keys: T.nilable(T::Array[String]),
216
247
  type: Symbol
217
248
  ).returns(T.attached_class)
218
249
  end
@@ -227,6 +258,8 @@ module OpenAI
227
258
  # ]
228
259
  # ```
229
260
  path:,
261
+ # The keys being held while dragging the mouse.
262
+ keys: nil,
230
263
  # Specifies the event type. For a drag action, this property is always set to
231
264
  # `drag`.
232
265
  type: :drag
@@ -237,7 +270,8 @@ module OpenAI
237
270
  override.returns(
238
271
  {
239
272
  path: T::Array[OpenAI::Responses::ComputerAction::Drag::Path],
240
- type: Symbol
273
+ type: Symbol,
274
+ keys: T.nilable(T::Array[String])
241
275
  }
242
276
  )
243
277
  end
@@ -339,24 +373,42 @@ module OpenAI
339
373
  sig { returns(Integer) }
340
374
  attr_accessor :y_
341
375
 
376
+ # The keys being held while moving the mouse.
377
+ sig { returns(T.nilable(T::Array[String])) }
378
+ attr_accessor :keys
379
+
342
380
  # A mouse move action.
343
381
  sig do
344
- params(x: Integer, y_: Integer, type: Symbol).returns(
345
- T.attached_class
346
- )
382
+ params(
383
+ x: Integer,
384
+ y_: Integer,
385
+ keys: T.nilable(T::Array[String]),
386
+ type: Symbol
387
+ ).returns(T.attached_class)
347
388
  end
348
389
  def self.new(
349
390
  # The x-coordinate to move to.
350
391
  x:,
351
392
  # The y-coordinate to move to.
352
393
  y_:,
394
+ # The keys being held while moving the mouse.
395
+ keys: nil,
353
396
  # Specifies the event type. For a move action, this property is always set to
354
397
  # `move`.
355
398
  type: :move
356
399
  )
357
400
  end
358
401
 
359
- sig { override.returns({ type: Symbol, x: Integer, y_: Integer }) }
402
+ sig do
403
+ override.returns(
404
+ {
405
+ type: Symbol,
406
+ x: Integer,
407
+ y_: Integer,
408
+ keys: T.nilable(T::Array[String])
409
+ }
410
+ )
411
+ end
360
412
  def to_hash
361
413
  end
362
414
  end
@@ -419,6 +471,10 @@ module OpenAI
419
471
  sig { returns(Integer) }
420
472
  attr_accessor :y_
421
473
 
474
+ # The keys being held while scrolling.
475
+ sig { returns(T.nilable(T::Array[String])) }
476
+ attr_accessor :keys
477
+
422
478
  # A scroll action.
423
479
  sig do
424
480
  params(
@@ -426,6 +482,7 @@ module OpenAI
426
482
  scroll_y: Integer,
427
483
  x: Integer,
428
484
  y_: Integer,
485
+ keys: T.nilable(T::Array[String]),
429
486
  type: Symbol
430
487
  ).returns(T.attached_class)
431
488
  end
@@ -438,6 +495,8 @@ module OpenAI
438
495
  x:,
439
496
  # The y-coordinate where the scroll occurred.
440
497
  y_:,
498
+ # The keys being held while scrolling.
499
+ keys: nil,
441
500
  # Specifies the event type. For a scroll action, this property is always set to
442
501
  # `scroll`.
443
502
  type: :scroll
@@ -451,7 +510,8 @@ module OpenAI
451
510
  scroll_y: Integer,
452
511
  type: Symbol,
453
512
  x: Integer,
454
- y_: Integer
513
+ y_: Integer,
514
+ keys: T.nilable(T::Array[String])
455
515
  }
456
516
  )
457
517
  end
@@ -107,6 +107,13 @@ module OpenAI
107
107
  sig { returns(Symbol) }
108
108
  attr_accessor :type
109
109
 
110
+ # Whether this function should be deferred and discovered via tool search.
111
+ sig { returns(T.nilable(T::Boolean)) }
112
+ attr_reader :defer_loading
113
+
114
+ sig { params(defer_loading: T::Boolean).void }
115
+ attr_writer :defer_loading
116
+
110
117
  sig { returns(T.nilable(String)) }
111
118
  attr_accessor :description
112
119
 
@@ -119,6 +126,7 @@ module OpenAI
119
126
  sig do
120
127
  params(
121
128
  name: String,
129
+ defer_loading: T::Boolean,
122
130
  description: T.nilable(String),
123
131
  parameters: T.nilable(T.anything),
124
132
  strict: T.nilable(T::Boolean),
@@ -127,6 +135,8 @@ module OpenAI
127
135
  end
128
136
  def self.new(
129
137
  name:,
138
+ # Whether this function should be deferred and discovered via tool search.
139
+ defer_loading: nil,
130
140
  description: nil,
131
141
  parameters: nil,
132
142
  strict: nil,
@@ -139,6 +149,7 @@ module OpenAI
139
149
  {
140
150
  name: String,
141
151
  type: Symbol,
152
+ defer_loading: T::Boolean,
142
153
  description: T.nilable(String),
143
154
  parameters: T.nilable(T.anything),
144
155
  strict: T.nilable(T::Boolean)
@@ -337,8 +337,10 @@ module OpenAI
337
337
  OpenAI::Responses::ResponseOutputMessage::OrHash,
338
338
  OpenAI::Responses::ResponseFileSearchToolCall::OrHash,
339
339
  OpenAI::Responses::ResponseFunctionToolCall::OrHash,
340
+ OpenAI::Responses::ResponseFunctionToolCallOutputItem::OrHash,
340
341
  OpenAI::Responses::ResponseFunctionWebSearch::OrHash,
341
342
  OpenAI::Responses::ResponseComputerToolCall::OrHash,
343
+ OpenAI::Responses::ResponseComputerToolCallOutputItem::OrHash,
342
344
  OpenAI::Responses::ResponseReasoningItem::OrHash,
343
345
  OpenAI::Responses::ResponseToolSearchCall::OrHash,
344
346
  OpenAI::Responses::ResponseToolSearchOutputItem::OrHash,
@@ -346,6 +348,7 @@ module OpenAI
346
348
  OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::OrHash,
347
349
  OpenAI::Responses::ResponseCodeInterpreterToolCall::OrHash,
348
350
  OpenAI::Responses::ResponseOutputItem::LocalShellCall::OrHash,
351
+ OpenAI::Responses::ResponseOutputItem::LocalShellCallOutput::OrHash,
349
352
  OpenAI::Responses::ResponseFunctionShellToolCall::OrHash,
350
353
  OpenAI::Responses::ResponseFunctionShellToolCallOutput::OrHash,
351
354
  OpenAI::Responses::ResponseApplyPatchToolCall::OrHash,
@@ -353,7 +356,9 @@ module OpenAI
353
356
  OpenAI::Responses::ResponseOutputItem::McpCall::OrHash,
354
357
  OpenAI::Responses::ResponseOutputItem::McpListTools::OrHash,
355
358
  OpenAI::Responses::ResponseOutputItem::McpApprovalRequest::OrHash,
356
- OpenAI::Responses::ResponseCustomToolCall::OrHash
359
+ OpenAI::Responses::ResponseOutputItem::McpApprovalResponse::OrHash,
360
+ OpenAI::Responses::ResponseCustomToolCall::OrHash,
361
+ OpenAI::Responses::ResponseCustomToolCallOutputItem::OrHash
357
362
  )
358
363
  ],
359
364
  parallel_tool_calls: T::Boolean,
@@ -163,6 +163,26 @@ module OpenAI
163
163
  :"gpt-5.4",
164
164
  OpenAI::Responses::ResponseCompactParams::Model::TaggedSymbol
165
165
  )
166
+ GPT_5_4_MINI =
167
+ T.let(
168
+ :"gpt-5.4-mini",
169
+ OpenAI::Responses::ResponseCompactParams::Model::TaggedSymbol
170
+ )
171
+ GPT_5_4_NANO =
172
+ T.let(
173
+ :"gpt-5.4-nano",
174
+ OpenAI::Responses::ResponseCompactParams::Model::TaggedSymbol
175
+ )
176
+ GPT_5_4_MINI_2026_03_17 =
177
+ T.let(
178
+ :"gpt-5.4-mini-2026-03-17",
179
+ OpenAI::Responses::ResponseCompactParams::Model::TaggedSymbol
180
+ )
181
+ GPT_5_4_NANO_2026_03_17 =
182
+ T.let(
183
+ :"gpt-5.4-nano-2026-03-17",
184
+ OpenAI::Responses::ResponseCompactParams::Model::TaggedSymbol
185
+ )
166
186
  GPT_5_3_CHAT_LATEST =
167
187
  T.let(
168
188
  :"gpt-5.3-chat-latest",