openai 0.16.0 → 0.17.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 (169) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +24 -0
  3. data/README.md +14 -20
  4. data/lib/openai/internal/transport/base_client.rb +1 -1
  5. data/lib/openai/internal/type/enum.rb +6 -6
  6. data/lib/openai/internal/type/union.rb +13 -17
  7. data/lib/openai/models/beta/assistant_create_params.rb +4 -5
  8. data/lib/openai/models/beta/assistant_update_params.rb +22 -5
  9. data/lib/openai/models/beta/threads/run_create_params.rb +4 -5
  10. data/lib/openai/models/chat/chat_completion_allowed_tool_choice.rb +33 -0
  11. data/lib/openai/models/chat/chat_completion_allowed_tools.rb +64 -0
  12. data/lib/openai/models/chat/chat_completion_assistant_message_param.rb +3 -5
  13. data/lib/openai/models/chat/chat_completion_custom_tool.rb +163 -0
  14. data/lib/openai/models/chat/chat_completion_function_tool.rb +29 -0
  15. data/lib/openai/models/chat/chat_completion_message.rb +3 -5
  16. data/lib/openai/models/chat/chat_completion_message_custom_tool_call.rb +60 -0
  17. data/lib/openai/models/chat/chat_completion_message_function_tool_call.rb +73 -0
  18. data/lib/openai/models/chat/chat_completion_message_tool_call.rb +10 -56
  19. data/lib/openai/models/chat/chat_completion_named_tool_choice.rb +2 -2
  20. data/lib/openai/models/chat/chat_completion_named_tool_choice_custom.rb +42 -0
  21. data/lib/openai/models/chat/chat_completion_stream_options.rb +14 -1
  22. data/lib/openai/models/chat/chat_completion_tool.rb +12 -14
  23. data/lib/openai/models/chat/chat_completion_tool_choice_option.rb +7 -1
  24. data/lib/openai/models/chat/completion_create_params.rb +35 -12
  25. data/lib/openai/models/chat_model.rb +7 -0
  26. data/lib/openai/models/custom_tool_input_format.rb +76 -0
  27. data/lib/openai/models/evals/create_eval_completions_run_data_source.rb +3 -3
  28. data/lib/openai/models/evals/run_cancel_response.rb +2 -2
  29. data/lib/openai/models/evals/run_create_params.rb +2 -2
  30. data/lib/openai/models/evals/run_create_response.rb +2 -2
  31. data/lib/openai/models/evals/run_list_response.rb +2 -2
  32. data/lib/openai/models/evals/run_retrieve_response.rb +2 -2
  33. data/lib/openai/models/reasoning.rb +4 -5
  34. data/lib/openai/models/reasoning_effort.rb +4 -4
  35. data/lib/openai/models/response_format_text_grammar.rb +27 -0
  36. data/lib/openai/models/response_format_text_python.rb +20 -0
  37. data/lib/openai/models/responses/custom_tool.rb +48 -0
  38. data/lib/openai/models/responses/response.rb +20 -12
  39. data/lib/openai/models/responses/response_create_params.rb +48 -10
  40. data/lib/openai/models/responses/response_custom_tool_call.rb +55 -0
  41. data/lib/openai/models/responses/response_custom_tool_call_input_delta_event.rb +52 -0
  42. data/lib/openai/models/responses/response_custom_tool_call_input_done_event.rb +52 -0
  43. data/lib/openai/models/responses/response_custom_tool_call_output.rb +47 -0
  44. data/lib/openai/models/responses/response_input_item.rb +7 -1
  45. data/lib/openai/models/responses/response_output_item.rb +4 -1
  46. data/lib/openai/models/responses/response_output_item_added_event.rb +2 -2
  47. data/lib/openai/models/responses/response_output_item_done_event.rb +2 -2
  48. data/lib/openai/models/responses/response_reasoning_item.rb +36 -5
  49. data/lib/openai/models/responses/response_reasoning_text_delta_event.rb +63 -0
  50. data/lib/openai/models/responses/response_reasoning_text_done_event.rb +63 -0
  51. data/lib/openai/models/responses/response_retrieve_params.rb +14 -1
  52. data/lib/openai/models/responses/response_stream_event.rb +13 -11
  53. data/lib/openai/models/responses/response_text_config.rb +27 -1
  54. data/lib/openai/models/responses/tool.rb +5 -1
  55. data/lib/openai/models/responses/tool_choice_allowed.rb +73 -0
  56. data/lib/openai/models/responses/tool_choice_custom.rb +28 -0
  57. data/lib/openai/models/vector_store_search_params.rb +6 -1
  58. data/lib/openai/models.rb +6 -0
  59. data/lib/openai/resources/beta/assistants.rb +2 -2
  60. data/lib/openai/resources/beta/threads/runs.rb +2 -2
  61. data/lib/openai/resources/chat/completions.rb +16 -10
  62. data/lib/openai/resources/responses.rb +38 -22
  63. data/lib/openai/version.rb +1 -1
  64. data/lib/openai.rb +19 -2
  65. data/rbi/openai/internal/transport/base_client.rbi +1 -1
  66. data/rbi/openai/models/beta/assistant_create_params.rbi +6 -8
  67. data/rbi/openai/models/beta/assistant_update_params.rbi +36 -8
  68. data/rbi/openai/models/beta/threads/run_create_params.rbi +6 -8
  69. data/rbi/openai/models/chat/chat_completion_allowed_tool_choice.rbi +60 -0
  70. data/rbi/openai/models/chat/chat_completion_allowed_tools.rbi +118 -0
  71. data/rbi/openai/models/chat/chat_completion_assistant_message_param.rbi +27 -4
  72. data/rbi/openai/models/chat/chat_completion_custom_tool.rbi +335 -0
  73. data/rbi/openai/models/chat/chat_completion_function_tool.rbi +51 -0
  74. data/rbi/openai/models/chat/chat_completion_message.rbi +17 -4
  75. data/rbi/openai/models/chat/chat_completion_message_custom_tool_call.rbi +105 -0
  76. data/rbi/openai/models/chat/chat_completion_message_function_tool_call.rbi +118 -0
  77. data/rbi/openai/models/chat/chat_completion_message_tool_call.rbi +9 -92
  78. data/rbi/openai/models/chat/chat_completion_named_tool_choice.rbi +2 -2
  79. data/rbi/openai/models/chat/chat_completion_named_tool_choice_custom.rbi +89 -0
  80. data/rbi/openai/models/chat/chat_completion_stream_options.rbi +30 -2
  81. data/rbi/openai/models/chat/chat_completion_tool.rbi +11 -30
  82. data/rbi/openai/models/chat/chat_completion_tool_choice_option.rbi +3 -1
  83. data/rbi/openai/models/chat/completion_create_params.rbi +106 -25
  84. data/rbi/openai/models/chat_model.rbi +11 -0
  85. data/rbi/openai/models/custom_tool_input_format.rbi +136 -0
  86. data/rbi/openai/models/evals/create_eval_completions_run_data_source.rbi +8 -4
  87. data/rbi/openai/models/evals/run_cancel_response.rbi +2 -0
  88. data/rbi/openai/models/evals/run_create_params.rbi +4 -0
  89. data/rbi/openai/models/evals/run_create_response.rbi +2 -0
  90. data/rbi/openai/models/evals/run_list_response.rbi +2 -0
  91. data/rbi/openai/models/evals/run_retrieve_response.rbi +2 -0
  92. data/rbi/openai/models/reasoning.rbi +6 -8
  93. data/rbi/openai/models/reasoning_effort.rbi +4 -4
  94. data/rbi/openai/models/response_format_text_grammar.rbi +35 -0
  95. data/rbi/openai/models/response_format_text_python.rbi +30 -0
  96. data/rbi/openai/models/responses/custom_tool.rbi +96 -0
  97. data/rbi/openai/models/responses/response.rbi +15 -5
  98. data/rbi/openai/models/responses/response_create_params.rbi +94 -7
  99. data/rbi/openai/models/responses/response_custom_tool_call.rbi +78 -0
  100. data/rbi/openai/models/responses/response_custom_tool_call_input_delta_event.rbi +75 -0
  101. data/rbi/openai/models/responses/response_custom_tool_call_input_done_event.rbi +75 -0
  102. data/rbi/openai/models/responses/response_custom_tool_call_output.rbi +65 -0
  103. data/rbi/openai/models/responses/response_input_item.rbi +2 -0
  104. data/rbi/openai/models/responses/response_output_item.rbi +2 -1
  105. data/rbi/openai/models/responses/response_output_item_added_event.rbi +2 -1
  106. data/rbi/openai/models/responses/response_output_item_done_event.rbi +2 -1
  107. data/rbi/openai/models/responses/response_reasoning_item.rbi +63 -4
  108. data/rbi/openai/models/responses/response_reasoning_text_delta_event.rbi +83 -0
  109. data/rbi/openai/models/responses/{response_reasoning_summary_done_event.rbi → response_reasoning_text_done_event.rbi} +20 -20
  110. data/rbi/openai/models/responses/response_retrieve_params.rbi +21 -0
  111. data/rbi/openai/models/responses/response_stream_event.rbi +4 -2
  112. data/rbi/openai/models/responses/response_text_config.rbi +64 -1
  113. data/rbi/openai/models/responses/tool.rbi +1 -0
  114. data/rbi/openai/models/responses/tool_choice_allowed.rbi +124 -0
  115. data/rbi/openai/models/responses/tool_choice_custom.rbi +39 -0
  116. data/rbi/openai/models/vector_store_search_params.rbi +12 -1
  117. data/rbi/openai/models.rbi +6 -0
  118. data/rbi/openai/resources/beta/assistants.rbi +6 -8
  119. data/rbi/openai/resources/beta/threads/runs.rbi +8 -10
  120. data/rbi/openai/resources/chat/completions.rbi +44 -19
  121. data/rbi/openai/resources/responses.rbi +215 -41
  122. data/sig/openai/internal/transport/base_client.rbs +1 -1
  123. data/sig/openai/models/beta/assistant_update_params.rbs +12 -0
  124. data/sig/openai/models/chat/chat_completion_allowed_tool_choice.rbs +29 -0
  125. data/sig/openai/models/chat/chat_completion_allowed_tools.rbs +38 -0
  126. data/sig/openai/models/chat/chat_completion_assistant_message_param.rbs +6 -6
  127. data/sig/openai/models/chat/chat_completion_custom_tool.rbs +137 -0
  128. data/sig/openai/models/chat/chat_completion_function_tool.rbs +26 -0
  129. data/sig/openai/models/chat/chat_completion_message.rbs +6 -6
  130. data/sig/openai/models/chat/chat_completion_message_custom_tool_call.rbs +46 -0
  131. data/sig/openai/models/chat/chat_completion_message_function_tool_call.rbs +46 -0
  132. data/sig/openai/models/chat/chat_completion_message_tool_call.rbs +6 -35
  133. data/sig/openai/models/chat/chat_completion_named_tool_choice_custom.rbs +39 -0
  134. data/sig/openai/models/chat/chat_completion_stream_options.rbs +11 -3
  135. data/sig/openai/models/chat/chat_completion_tool.rbs +6 -15
  136. data/sig/openai/models/chat/chat_completion_tool_choice_option.rbs +2 -0
  137. data/sig/openai/models/chat/completion_create_params.rbs +23 -6
  138. data/sig/openai/models/chat_model.rbs +15 -1
  139. data/sig/openai/models/custom_tool_input_format.rbs +61 -0
  140. data/sig/openai/models/evals/create_eval_completions_run_data_source.rbs +6 -6
  141. data/sig/openai/models/reasoning_effort.rbs +2 -1
  142. data/sig/openai/models/response_format_text_grammar.rbs +15 -0
  143. data/sig/openai/models/response_format_text_python.rbs +13 -0
  144. data/sig/openai/models/responses/custom_tool.rbs +43 -0
  145. data/sig/openai/models/responses/response.rbs +2 -0
  146. data/sig/openai/models/responses/response_create_params.rbs +19 -0
  147. data/sig/openai/models/responses/response_custom_tool_call.rbs +44 -0
  148. data/sig/openai/models/responses/response_custom_tool_call_input_delta_event.rbs +42 -0
  149. data/sig/openai/models/responses/response_custom_tool_call_input_done_event.rbs +42 -0
  150. data/sig/openai/models/responses/response_custom_tool_call_output.rbs +39 -0
  151. data/sig/openai/models/responses/response_input_item.rbs +2 -0
  152. data/sig/openai/models/responses/response_output_item.rbs +1 -0
  153. data/sig/openai/models/responses/response_reasoning_item.rbs +21 -0
  154. data/sig/openai/models/responses/{response_reasoning_summary_delta_event.rbs → response_reasoning_text_delta_event.rbs} +15 -15
  155. data/sig/openai/models/responses/{response_reasoning_summary_done_event.rbs → response_reasoning_text_done_event.rbs} +11 -11
  156. data/sig/openai/models/responses/response_retrieve_params.rbs +7 -0
  157. data/sig/openai/models/responses/response_stream_event.rbs +4 -2
  158. data/sig/openai/models/responses/response_text_config.rbs +22 -3
  159. data/sig/openai/models/responses/tool.rbs +1 -0
  160. data/sig/openai/models/responses/tool_choice_allowed.rbs +43 -0
  161. data/sig/openai/models/responses/tool_choice_custom.rbs +17 -0
  162. data/sig/openai/models/vector_store_search_params.rbs +2 -1
  163. data/sig/openai/models.rbs +6 -0
  164. data/sig/openai/resources/chat/completions.rbs +4 -2
  165. data/sig/openai/resources/responses.rbs +32 -0
  166. metadata +59 -8
  167. data/lib/openai/models/responses/response_reasoning_summary_delta_event.rb +0 -65
  168. data/lib/openai/models/responses/response_reasoning_summary_done_event.rb +0 -60
  169. data/rbi/openai/models/responses/response_reasoning_summary_delta_event.rbi +0 -85
@@ -1,10 +1,11 @@
1
1
  module OpenAI
2
2
  module Models
3
- type reasoning_effort = :low | :medium | :high
3
+ type reasoning_effort = :minimal | :low | :medium | :high
4
4
 
5
5
  module ReasoningEffort
6
6
  extend OpenAI::Internal::Type::Enum
7
7
 
8
+ MINIMAL: :minimal
8
9
  LOW: :low
9
10
  MEDIUM: :medium
10
11
  HIGH: :high
@@ -0,0 +1,15 @@
1
+ module OpenAI
2
+ module Models
3
+ type response_format_text_grammar = { grammar: String, type: :grammar }
4
+
5
+ class ResponseFormatTextGrammar < OpenAI::Internal::Type::BaseModel
6
+ attr_accessor grammar: String
7
+
8
+ attr_accessor type: :grammar
9
+
10
+ def initialize: (grammar: String, ?type: :grammar) -> void
11
+
12
+ def to_hash: -> { grammar: String, type: :grammar }
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,13 @@
1
+ module OpenAI
2
+ module Models
3
+ type response_format_text_python = { type: :python }
4
+
5
+ class ResponseFormatTextPython < OpenAI::Internal::Type::BaseModel
6
+ attr_accessor type: :python
7
+
8
+ def initialize: (?type: :python) -> void
9
+
10
+ def to_hash: -> { type: :python }
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,43 @@
1
+ module OpenAI
2
+ module Models
3
+ module Responses
4
+ type custom_tool =
5
+ {
6
+ name: String,
7
+ type: :custom,
8
+ description: String,
9
+ format_: OpenAI::Models::custom_tool_input_format
10
+ }
11
+
12
+ class CustomTool < OpenAI::Internal::Type::BaseModel
13
+ attr_accessor name: String
14
+
15
+ attr_accessor type: :custom
16
+
17
+ attr_reader description: String?
18
+
19
+ def description=: (String) -> String
20
+
21
+ attr_reader format_: OpenAI::Models::custom_tool_input_format?
22
+
23
+ def format_=: (
24
+ OpenAI::Models::custom_tool_input_format
25
+ ) -> OpenAI::Models::custom_tool_input_format
26
+
27
+ def initialize: (
28
+ name: String,
29
+ ?description: String,
30
+ ?format_: OpenAI::Models::custom_tool_input_format,
31
+ ?type: :custom
32
+ ) -> void
33
+
34
+ def to_hash: -> {
35
+ name: String,
36
+ type: :custom,
37
+ description: String,
38
+ format_: OpenAI::Models::custom_tool_input_format
39
+ }
40
+ end
41
+ end
42
+ end
43
+ end
@@ -220,9 +220,11 @@ module OpenAI
220
220
 
221
221
  type tool_choice =
222
222
  OpenAI::Models::Responses::tool_choice_options
223
+ | OpenAI::Responses::ToolChoiceAllowed
223
224
  | OpenAI::Responses::ToolChoiceTypes
224
225
  | OpenAI::Responses::ToolChoiceFunction
225
226
  | OpenAI::Responses::ToolChoiceMcp
227
+ | OpenAI::Responses::ToolChoiceCustom
226
228
 
227
229
  module ToolChoice
228
230
  extend OpenAI::Internal::Type::Union
@@ -19,6 +19,7 @@ module OpenAI
19
19
  safety_identifier: String,
20
20
  service_tier: OpenAI::Models::Responses::ResponseCreateParams::service_tier?,
21
21
  store: bool?,
22
+ stream_options: OpenAI::Responses::ResponseCreateParams::StreamOptions?,
22
23
  temperature: Float?,
23
24
  text: OpenAI::Responses::ResponseTextConfig,
24
25
  tool_choice: OpenAI::Models::Responses::ResponseCreateParams::tool_choice,
@@ -78,6 +79,8 @@ module OpenAI
78
79
 
79
80
  attr_accessor store: bool?
80
81
 
82
+ attr_accessor stream_options: OpenAI::Responses::ResponseCreateParams::StreamOptions?
83
+
81
84
  attr_accessor temperature: Float?
82
85
 
83
86
  attr_reader text: OpenAI::Responses::ResponseTextConfig?
@@ -125,6 +128,7 @@ module OpenAI
125
128
  ?safety_identifier: String,
126
129
  ?service_tier: OpenAI::Models::Responses::ResponseCreateParams::service_tier?,
127
130
  ?store: bool?,
131
+ ?stream_options: OpenAI::Responses::ResponseCreateParams::StreamOptions?,
128
132
  ?temperature: Float?,
129
133
  ?text: OpenAI::Responses::ResponseTextConfig,
130
134
  ?tool_choice: OpenAI::Models::Responses::ResponseCreateParams::tool_choice,
@@ -153,6 +157,7 @@ module OpenAI
153
157
  safety_identifier: String,
154
158
  service_tier: OpenAI::Models::Responses::ResponseCreateParams::service_tier?,
155
159
  store: bool?,
160
+ stream_options: OpenAI::Responses::ResponseCreateParams::StreamOptions?,
156
161
  temperature: Float?,
157
162
  text: OpenAI::Responses::ResponseTextConfig,
158
163
  tool_choice: OpenAI::Models::Responses::ResponseCreateParams::tool_choice,
@@ -186,11 +191,25 @@ module OpenAI
186
191
  def self?.values: -> ::Array[OpenAI::Models::Responses::ResponseCreateParams::service_tier]
187
192
  end
188
193
 
194
+ type stream_options = { include_obfuscation: bool }
195
+
196
+ class StreamOptions < OpenAI::Internal::Type::BaseModel
197
+ attr_reader include_obfuscation: bool?
198
+
199
+ def include_obfuscation=: (bool) -> bool
200
+
201
+ def initialize: (?include_obfuscation: bool) -> void
202
+
203
+ def to_hash: -> { include_obfuscation: bool }
204
+ end
205
+
189
206
  type tool_choice =
190
207
  OpenAI::Models::Responses::tool_choice_options
208
+ | OpenAI::Responses::ToolChoiceAllowed
191
209
  | OpenAI::Responses::ToolChoiceTypes
192
210
  | OpenAI::Responses::ToolChoiceFunction
193
211
  | OpenAI::Responses::ToolChoiceMcp
212
+ | OpenAI::Responses::ToolChoiceCustom
194
213
 
195
214
  module ToolChoice
196
215
  extend OpenAI::Internal::Type::Union
@@ -0,0 +1,44 @@
1
+ module OpenAI
2
+ module Models
3
+ module Responses
4
+ type response_custom_tool_call =
5
+ {
6
+ call_id: String,
7
+ input: String,
8
+ name: String,
9
+ type: :custom_tool_call,
10
+ id: String
11
+ }
12
+
13
+ class ResponseCustomToolCall < OpenAI::Internal::Type::BaseModel
14
+ attr_accessor call_id: String
15
+
16
+ attr_accessor input: String
17
+
18
+ attr_accessor name: String
19
+
20
+ attr_accessor type: :custom_tool_call
21
+
22
+ attr_reader id: String?
23
+
24
+ def id=: (String) -> String
25
+
26
+ def initialize: (
27
+ call_id: String,
28
+ input: String,
29
+ name: String,
30
+ ?id: String,
31
+ ?type: :custom_tool_call
32
+ ) -> void
33
+
34
+ def to_hash: -> {
35
+ call_id: String,
36
+ input: String,
37
+ name: String,
38
+ type: :custom_tool_call,
39
+ id: String
40
+ }
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,42 @@
1
+ module OpenAI
2
+ module Models
3
+ module Responses
4
+ type response_custom_tool_call_input_delta_event =
5
+ {
6
+ delta: String,
7
+ item_id: String,
8
+ output_index: Integer,
9
+ sequence_number: Integer,
10
+ type: :"response.custom_tool_call_input.delta"
11
+ }
12
+
13
+ class ResponseCustomToolCallInputDeltaEvent < OpenAI::Internal::Type::BaseModel
14
+ attr_accessor delta: String
15
+
16
+ attr_accessor item_id: String
17
+
18
+ attr_accessor output_index: Integer
19
+
20
+ attr_accessor sequence_number: Integer
21
+
22
+ attr_accessor type: :"response.custom_tool_call_input.delta"
23
+
24
+ def initialize: (
25
+ delta: String,
26
+ item_id: String,
27
+ output_index: Integer,
28
+ sequence_number: Integer,
29
+ ?type: :"response.custom_tool_call_input.delta"
30
+ ) -> void
31
+
32
+ def to_hash: -> {
33
+ delta: String,
34
+ item_id: String,
35
+ output_index: Integer,
36
+ sequence_number: Integer,
37
+ type: :"response.custom_tool_call_input.delta"
38
+ }
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,42 @@
1
+ module OpenAI
2
+ module Models
3
+ module Responses
4
+ type response_custom_tool_call_input_done_event =
5
+ {
6
+ input: String,
7
+ item_id: String,
8
+ output_index: Integer,
9
+ sequence_number: Integer,
10
+ type: :"response.custom_tool_call_input.done"
11
+ }
12
+
13
+ class ResponseCustomToolCallInputDoneEvent < OpenAI::Internal::Type::BaseModel
14
+ attr_accessor input: String
15
+
16
+ attr_accessor item_id: String
17
+
18
+ attr_accessor output_index: Integer
19
+
20
+ attr_accessor sequence_number: Integer
21
+
22
+ attr_accessor type: :"response.custom_tool_call_input.done"
23
+
24
+ def initialize: (
25
+ input: String,
26
+ item_id: String,
27
+ output_index: Integer,
28
+ sequence_number: Integer,
29
+ ?type: :"response.custom_tool_call_input.done"
30
+ ) -> void
31
+
32
+ def to_hash: -> {
33
+ input: String,
34
+ item_id: String,
35
+ output_index: Integer,
36
+ sequence_number: Integer,
37
+ type: :"response.custom_tool_call_input.done"
38
+ }
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,39 @@
1
+ module OpenAI
2
+ module Models
3
+ module Responses
4
+ type response_custom_tool_call_output =
5
+ {
6
+ call_id: String,
7
+ output: String,
8
+ type: :custom_tool_call_output,
9
+ id: String
10
+ }
11
+
12
+ class ResponseCustomToolCallOutput < OpenAI::Internal::Type::BaseModel
13
+ attr_accessor call_id: String
14
+
15
+ attr_accessor output: String
16
+
17
+ attr_accessor type: :custom_tool_call_output
18
+
19
+ attr_reader id: String?
20
+
21
+ def id=: (String) -> String
22
+
23
+ def initialize: (
24
+ call_id: String,
25
+ output: String,
26
+ ?id: String,
27
+ ?type: :custom_tool_call_output
28
+ ) -> void
29
+
30
+ def to_hash: -> {
31
+ call_id: String,
32
+ output: String,
33
+ type: :custom_tool_call_output,
34
+ id: String
35
+ }
36
+ end
37
+ end
38
+ end
39
+ end
@@ -20,6 +20,8 @@ module OpenAI
20
20
  | OpenAI::Responses::ResponseInputItem::McpApprovalRequest
21
21
  | OpenAI::Responses::ResponseInputItem::McpApprovalResponse
22
22
  | OpenAI::Responses::ResponseInputItem::McpCall
23
+ | OpenAI::Responses::ResponseCustomToolCallOutput
24
+ | OpenAI::Responses::ResponseCustomToolCall
23
25
  | OpenAI::Responses::ResponseInputItem::ItemReference
24
26
 
25
27
  module ResponseInputItem
@@ -14,6 +14,7 @@ module OpenAI
14
14
  | OpenAI::Responses::ResponseOutputItem::McpCall
15
15
  | OpenAI::Responses::ResponseOutputItem::McpListTools
16
16
  | OpenAI::Responses::ResponseOutputItem::McpApprovalRequest
17
+ | OpenAI::Responses::ResponseCustomToolCall
17
18
 
18
19
  module ResponseOutputItem
19
20
  extend OpenAI::Internal::Type::Union
@@ -6,6 +6,7 @@ module OpenAI
6
6
  id: String,
7
7
  summary: ::Array[OpenAI::Responses::ResponseReasoningItem::Summary],
8
8
  type: :reasoning,
9
+ content: ::Array[OpenAI::Responses::ResponseReasoningItem::Content],
9
10
  encrypted_content: String?,
10
11
  status: OpenAI::Models::Responses::ResponseReasoningItem::status
11
12
  }
@@ -17,6 +18,12 @@ module OpenAI
17
18
 
18
19
  attr_accessor type: :reasoning
19
20
 
21
+ attr_reader content: ::Array[OpenAI::Responses::ResponseReasoningItem::Content]?
22
+
23
+ def content=: (
24
+ ::Array[OpenAI::Responses::ResponseReasoningItem::Content]
25
+ ) -> ::Array[OpenAI::Responses::ResponseReasoningItem::Content]
26
+
20
27
  attr_accessor encrypted_content: String?
21
28
 
22
29
  attr_reader status: OpenAI::Models::Responses::ResponseReasoningItem::status?
@@ -28,6 +35,7 @@ module OpenAI
28
35
  def initialize: (
29
36
  id: String,
30
37
  summary: ::Array[OpenAI::Responses::ResponseReasoningItem::Summary],
38
+ ?content: ::Array[OpenAI::Responses::ResponseReasoningItem::Content],
31
39
  ?encrypted_content: String?,
32
40
  ?status: OpenAI::Models::Responses::ResponseReasoningItem::status,
33
41
  ?type: :reasoning
@@ -37,6 +45,7 @@ module OpenAI
37
45
  id: String,
38
46
  summary: ::Array[OpenAI::Responses::ResponseReasoningItem::Summary],
39
47
  type: :reasoning,
48
+ content: ::Array[OpenAI::Responses::ResponseReasoningItem::Content],
40
49
  encrypted_content: String?,
41
50
  status: OpenAI::Models::Responses::ResponseReasoningItem::status
42
51
  }
@@ -53,6 +62,18 @@ module OpenAI
53
62
  def to_hash: -> { text: String, type: :summary_text }
54
63
  end
55
64
 
65
+ type content = { text: String, type: :reasoning_text }
66
+
67
+ class Content < OpenAI::Internal::Type::BaseModel
68
+ attr_accessor text: String
69
+
70
+ attr_accessor type: :reasoning_text
71
+
72
+ def initialize: (text: String, ?type: :reasoning_text) -> void
73
+
74
+ def to_hash: -> { text: String, type: :reasoning_text }
75
+ end
76
+
56
77
  type status = :in_progress | :completed | :incomplete
57
78
 
58
79
  module Status
@@ -1,18 +1,20 @@
1
1
  module OpenAI
2
2
  module Models
3
3
  module Responses
4
- type response_reasoning_summary_delta_event =
4
+ type response_reasoning_text_delta_event =
5
5
  {
6
- delta: top,
6
+ content_index: Integer,
7
+ delta: String,
7
8
  item_id: String,
8
9
  output_index: Integer,
9
10
  sequence_number: Integer,
10
- summary_index: Integer,
11
- type: :"response.reasoning_summary.delta"
11
+ type: :"response.reasoning_text.delta"
12
12
  }
13
13
 
14
- class ResponseReasoningSummaryDeltaEvent < OpenAI::Internal::Type::BaseModel
15
- attr_accessor delta: top
14
+ class ResponseReasoningTextDeltaEvent < OpenAI::Internal::Type::BaseModel
15
+ attr_accessor content_index: Integer
16
+
17
+ attr_accessor delta: String
16
18
 
17
19
  attr_accessor item_id: String
18
20
 
@@ -20,26 +22,24 @@ module OpenAI
20
22
 
21
23
  attr_accessor sequence_number: Integer
22
24
 
23
- attr_accessor summary_index: Integer
24
-
25
- attr_accessor type: :"response.reasoning_summary.delta"
25
+ attr_accessor type: :"response.reasoning_text.delta"
26
26
 
27
27
  def initialize: (
28
- delta: top,
28
+ content_index: Integer,
29
+ delta: String,
29
30
  item_id: String,
30
31
  output_index: Integer,
31
32
  sequence_number: Integer,
32
- summary_index: Integer,
33
- ?type: :"response.reasoning_summary.delta"
33
+ ?type: :"response.reasoning_text.delta"
34
34
  ) -> void
35
35
 
36
36
  def to_hash: -> {
37
- delta: top,
37
+ content_index: Integer,
38
+ delta: String,
38
39
  item_id: String,
39
40
  output_index: Integer,
40
41
  sequence_number: Integer,
41
- summary_index: Integer,
42
- type: :"response.reasoning_summary.delta"
42
+ type: :"response.reasoning_text.delta"
43
43
  }
44
44
  end
45
45
  end
@@ -1,45 +1,45 @@
1
1
  module OpenAI
2
2
  module Models
3
3
  module Responses
4
- type response_reasoning_summary_done_event =
4
+ type response_reasoning_text_done_event =
5
5
  {
6
+ content_index: Integer,
6
7
  item_id: String,
7
8
  output_index: Integer,
8
9
  sequence_number: Integer,
9
- summary_index: Integer,
10
10
  text: String,
11
- type: :"response.reasoning_summary.done"
11
+ type: :"response.reasoning_text.done"
12
12
  }
13
13
 
14
- class ResponseReasoningSummaryDoneEvent < OpenAI::Internal::Type::BaseModel
14
+ class ResponseReasoningTextDoneEvent < OpenAI::Internal::Type::BaseModel
15
+ attr_accessor content_index: Integer
16
+
15
17
  attr_accessor item_id: String
16
18
 
17
19
  attr_accessor output_index: Integer
18
20
 
19
21
  attr_accessor sequence_number: Integer
20
22
 
21
- attr_accessor summary_index: Integer
22
-
23
23
  attr_accessor text: String
24
24
 
25
- attr_accessor type: :"response.reasoning_summary.done"
25
+ attr_accessor type: :"response.reasoning_text.done"
26
26
 
27
27
  def initialize: (
28
+ content_index: Integer,
28
29
  item_id: String,
29
30
  output_index: Integer,
30
31
  sequence_number: Integer,
31
- summary_index: Integer,
32
32
  text: String,
33
- ?type: :"response.reasoning_summary.done"
33
+ ?type: :"response.reasoning_text.done"
34
34
  ) -> void
35
35
 
36
36
  def to_hash: -> {
37
+ content_index: Integer,
37
38
  item_id: String,
38
39
  output_index: Integer,
39
40
  sequence_number: Integer,
40
- summary_index: Integer,
41
41
  text: String,
42
- type: :"response.reasoning_summary.done"
42
+ type: :"response.reasoning_text.done"
43
43
  }
44
44
  end
45
45
  end
@@ -4,6 +4,7 @@ module OpenAI
4
4
  type response_retrieve_params =
5
5
  {
6
6
  include: ::Array[OpenAI::Models::Responses::response_includable],
7
+ include_obfuscation: bool,
7
8
  starting_after: Integer
8
9
  }
9
10
  & OpenAI::Internal::Type::request_parameters
@@ -18,18 +19,24 @@ module OpenAI
18
19
  ::Array[OpenAI::Models::Responses::response_includable]
19
20
  ) -> ::Array[OpenAI::Models::Responses::response_includable]
20
21
 
22
+ attr_reader include_obfuscation: bool?
23
+
24
+ def include_obfuscation=: (bool) -> bool
25
+
21
26
  attr_reader starting_after: Integer?
22
27
 
23
28
  def starting_after=: (Integer) -> Integer
24
29
 
25
30
  def initialize: (
26
31
  ?include: ::Array[OpenAI::Models::Responses::response_includable],
32
+ ?include_obfuscation: bool,
27
33
  ?starting_after: Integer,
28
34
  ?request_options: OpenAI::request_opts
29
35
  ) -> void
30
36
 
31
37
  def to_hash: -> {
32
38
  include: ::Array[OpenAI::Models::Responses::response_includable],
39
+ include_obfuscation: bool,
33
40
  starting_after: Integer,
34
41
  request_options: OpenAI::RequestOptions
35
42
  }
@@ -30,6 +30,8 @@ module OpenAI
30
30
  | OpenAI::Responses::ResponseReasoningSummaryPartDoneEvent
31
31
  | OpenAI::Responses::ResponseReasoningSummaryTextDeltaEvent
32
32
  | OpenAI::Responses::ResponseReasoningSummaryTextDoneEvent
33
+ | OpenAI::Responses::ResponseReasoningTextDeltaEvent
34
+ | OpenAI::Responses::ResponseReasoningTextDoneEvent
33
35
  | OpenAI::Responses::ResponseRefusalDeltaEvent
34
36
  | OpenAI::Responses::ResponseRefusalDoneEvent
35
37
  | OpenAI::Responses::ResponseTextDeltaEvent
@@ -51,8 +53,8 @@ module OpenAI
51
53
  | OpenAI::Responses::ResponseMcpListToolsInProgressEvent
52
54
  | OpenAI::Responses::ResponseOutputTextAnnotationAddedEvent
53
55
  | OpenAI::Responses::ResponseQueuedEvent
54
- | OpenAI::Responses::ResponseReasoningSummaryDeltaEvent
55
- | OpenAI::Responses::ResponseReasoningSummaryDoneEvent
56
+ | OpenAI::Responses::ResponseCustomToolCallInputDeltaEvent
57
+ | OpenAI::Responses::ResponseCustomToolCallInputDoneEvent
56
58
 
57
59
  module ResponseStreamEvent
58
60
  extend OpenAI::Internal::Type::Union
@@ -2,7 +2,10 @@ module OpenAI
2
2
  module Models
3
3
  module Responses
4
4
  type response_text_config =
5
- { format_: OpenAI::Models::Responses::response_format_text_config }
5
+ {
6
+ format_: OpenAI::Models::Responses::response_format_text_config,
7
+ verbosity: OpenAI::Models::Responses::ResponseTextConfig::verbosity?
8
+ }
6
9
 
7
10
  class ResponseTextConfig < OpenAI::Internal::Type::BaseModel
8
11
  attr_reader format_: OpenAI::Models::Responses::response_format_text_config?
@@ -11,13 +14,29 @@ module OpenAI
11
14
  OpenAI::Models::Responses::response_format_text_config
12
15
  ) -> OpenAI::Models::Responses::response_format_text_config
13
16
 
17
+ attr_accessor verbosity: OpenAI::Models::Responses::ResponseTextConfig::verbosity?
18
+
14
19
  def initialize: (
15
- ?format_: OpenAI::Models::Responses::response_format_text_config
20
+ ?format_: OpenAI::Models::Responses::response_format_text_config,
21
+ ?verbosity: OpenAI::Models::Responses::ResponseTextConfig::verbosity?
16
22
  ) -> void
17
23
 
18
24
  def to_hash: -> {
19
- format_: OpenAI::Models::Responses::response_format_text_config
25
+ format_: OpenAI::Models::Responses::response_format_text_config,
26
+ verbosity: OpenAI::Models::Responses::ResponseTextConfig::verbosity?
20
27
  }
28
+
29
+ type verbosity = :low | :medium | :high
30
+
31
+ module Verbosity
32
+ extend OpenAI::Internal::Type::Enum
33
+
34
+ LOW: :low
35
+ MEDIUM: :medium
36
+ HIGH: :high
37
+
38
+ def self?.values: -> ::Array[OpenAI::Models::Responses::ResponseTextConfig::verbosity]
39
+ end
21
40
  end
22
41
  end
23
42
  end
@@ -9,6 +9,7 @@ module OpenAI
9
9
  | OpenAI::Responses::Tool::CodeInterpreter
10
10
  | OpenAI::Responses::Tool::ImageGeneration
11
11
  | OpenAI::Responses::Tool::LocalShell
12
+ | OpenAI::Responses::CustomTool
12
13
  | OpenAI::Responses::WebSearchTool
13
14
 
14
15
  module Tool
@@ -0,0 +1,43 @@
1
+ module OpenAI
2
+ module Models
3
+ module Responses
4
+ type tool_choice_allowed =
5
+ {
6
+ mode: OpenAI::Models::Responses::ToolChoiceAllowed::mode,
7
+ tools: ::Array[::Hash[Symbol, top]],
8
+ type: :allowed_tools
9
+ }
10
+
11
+ class ToolChoiceAllowed < OpenAI::Internal::Type::BaseModel
12
+ attr_accessor mode: OpenAI::Models::Responses::ToolChoiceAllowed::mode
13
+
14
+ attr_accessor tools: ::Array[::Hash[Symbol, top]]
15
+
16
+ attr_accessor type: :allowed_tools
17
+
18
+ def initialize: (
19
+ mode: OpenAI::Models::Responses::ToolChoiceAllowed::mode,
20
+ tools: ::Array[::Hash[Symbol, top]],
21
+ ?type: :allowed_tools
22
+ ) -> void
23
+
24
+ def to_hash: -> {
25
+ mode: OpenAI::Models::Responses::ToolChoiceAllowed::mode,
26
+ tools: ::Array[::Hash[Symbol, top]],
27
+ type: :allowed_tools
28
+ }
29
+
30
+ type mode = :auto | :required
31
+
32
+ module Mode
33
+ extend OpenAI::Internal::Type::Enum
34
+
35
+ AUTO: :auto
36
+ REQUIRED: :required
37
+
38
+ def self?.values: -> ::Array[OpenAI::Models::Responses::ToolChoiceAllowed::mode]
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end