openai 0.99.0 → 0.101.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 (195) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +26 -0
  3. data/README.md +1 -1
  4. data/bedrock.md +17 -1
  5. data/lib/openai/client.rb +13 -0
  6. data/lib/openai/helpers/agents/session_stream.rb +11 -36
  7. data/lib/openai/helpers/agents/tools.rb +34 -4
  8. data/lib/openai/helpers/beta/agents/creation_stream.rb +26 -0
  9. data/lib/openai/helpers/beta/agents/function_tool.rb +11 -4
  10. data/lib/openai/helpers/beta/agents/tool_dispatcher.rb +74 -0
  11. data/lib/openai/helpers/beta/agents/tool_error.rb +28 -0
  12. data/lib/openai/models/admin/organization/usage_audio_speeches_response.rb +125 -3
  13. data/lib/openai/models/admin/organization/usage_audio_transcriptions_response.rb +125 -3
  14. data/lib/openai/models/admin/organization/usage_code_interpreter_sessions_response.rb +125 -3
  15. data/lib/openai/models/admin/organization/usage_completions_params.rb +9 -4
  16. data/lib/openai/models/admin/organization/usage_completions_response.rb +125 -3
  17. data/lib/openai/models/admin/organization/usage_costs_params.rb +16 -4
  18. data/lib/openai/models/admin/organization/usage_costs_response.rb +125 -3
  19. data/lib/openai/models/admin/organization/usage_embeddings_response.rb +125 -3
  20. data/lib/openai/models/admin/organization/usage_file_search_calls_response.rb +125 -3
  21. data/lib/openai/models/admin/organization/usage_images_response.rb +125 -3
  22. data/lib/openai/models/admin/organization/usage_moderations_response.rb +125 -3
  23. data/lib/openai/models/admin/organization/usage_vector_stores_response.rb +125 -3
  24. data/lib/openai/models/admin/organization/usage_web_search_calls_params.rb +9 -4
  25. data/lib/openai/models/admin/organization/usage_web_search_calls_response.rb +125 -3
  26. data/lib/openai/models/beta/agents/environments/template_create_params.rb +6 -6
  27. data/lib/openai/models/beta/agents/environments/template_update_params.rb +3 -6
  28. data/lib/openai/models/beta/agents/sessions/turns/item_list_params.rb +79 -0
  29. data/lib/openai/models/beta/beta_response_computer_tool_call_output_item.rb +2 -2
  30. data/lib/openai/models/beta/beta_response_error.rb +12 -1
  31. data/lib/openai/models/beta/beta_response_tool_search_output_item_param.rb +1166 -3
  32. data/lib/openai/models/beta/beta_responses_server_event.rb +12 -1
  33. data/lib/openai/models/beta/beta_tool.rb +12 -9
  34. data/lib/openai/models/beta/beta_tool_search_output_namespace_tool.rb +176 -0
  35. data/lib/openai/models/beta/environment_param.rb +6 -6
  36. data/lib/openai/models/beta/session_turn_error.rb +9 -0
  37. data/lib/openai/models/chat/chat_completion_chunk.rb +85 -18
  38. data/lib/openai/models/decision.rb +313 -0
  39. data/lib/openai/models/decision_create_params.rb +233 -0
  40. data/lib/openai/models/decision_input_image.rb +53 -0
  41. data/lib/openai/models/decision_input_message.rb +60 -0
  42. data/lib/openai/models/decision_input_part.rb +20 -0
  43. data/lib/openai/models/decision_input_text.rb +21 -0
  44. data/lib/openai/models/error_object.rb +12 -1
  45. data/lib/openai/models/eval_create_params.rb +1 -1
  46. data/lib/openai/models/eval_create_response.rb +1 -1
  47. data/lib/openai/models/eval_list_response.rb +1 -1
  48. data/lib/openai/models/eval_retrieve_response.rb +1 -1
  49. data/lib/openai/models/eval_update_response.rb +1 -1
  50. data/lib/openai/models/fine_tuning/job_list_params.rb +14 -4
  51. data/lib/openai/models/graders/score_model_grader.rb +2 -2
  52. data/lib/openai/models/image_edit_params.rb +12 -9
  53. data/lib/openai/models/realtime/realtime_client_event.rb +9 -0
  54. data/lib/openai/models/realtime/session_update_event.rb +16 -0
  55. data/lib/openai/models/responses/response_computer_tool_call_output_item.rb +2 -2
  56. data/lib/openai/models/responses/response_error.rb +12 -1
  57. data/lib/openai/models/responses/response_tool_search_output_item_param.rb +1166 -3
  58. data/lib/openai/models/responses/responses_server_event.rb +12 -1
  59. data/lib/openai/models/responses/tool.rb +12 -9
  60. data/lib/openai/models/responses/tool_search_output_namespace_tool.rb +174 -0
  61. data/lib/openai/models/video_create_error.rb +12 -1
  62. data/lib/openai/models.rb +12 -0
  63. data/lib/openai/providers/bedrock.rb +20 -1
  64. data/lib/openai/resources/admin/organization/usage.rb +15 -6
  65. data/lib/openai/resources/beta/agents/environments/templates.rb +3 -4
  66. data/lib/openai/resources/beta/agents/sessions/turns/items.rb +68 -0
  67. data/lib/openai/resources/beta/agents/sessions/turns.rb +4 -0
  68. data/lib/openai/resources/beta/agents/sessions.rb +22 -2
  69. data/lib/openai/resources/decisions.rb +59 -0
  70. data/lib/openai/resources/fine_tuning/jobs.rb +7 -2
  71. data/lib/openai/resources/images.rb +8 -6
  72. data/lib/openai/version.rb +1 -1
  73. data/lib/openai.rb +11 -0
  74. data/rbi/openai/client.rbi +3 -0
  75. data/rbi/openai/helpers/agents.rbi +2 -0
  76. data/rbi/openai/helpers/beta/agents/function_tool.rbi +8 -3
  77. data/rbi/openai/helpers/beta/agents/tool_error.rbi +19 -0
  78. data/rbi/openai/helpers/beta/agents.rbi +12 -0
  79. data/rbi/openai/models/admin/organization/usage_audio_speeches_response.rbi +194 -1
  80. data/rbi/openai/models/admin/organization/usage_audio_transcriptions_response.rbi +194 -1
  81. data/rbi/openai/models/admin/organization/usage_code_interpreter_sessions_response.rbi +194 -1
  82. data/rbi/openai/models/admin/organization/usage_completions_params.rbi +9 -4
  83. data/rbi/openai/models/admin/organization/usage_completions_response.rbi +194 -1
  84. data/rbi/openai/models/admin/organization/usage_costs_params.rbi +16 -4
  85. data/rbi/openai/models/admin/organization/usage_costs_response.rbi +194 -1
  86. data/rbi/openai/models/admin/organization/usage_embeddings_response.rbi +194 -1
  87. data/rbi/openai/models/admin/organization/usage_file_search_calls_response.rbi +194 -1
  88. data/rbi/openai/models/admin/organization/usage_images_response.rbi +194 -1
  89. data/rbi/openai/models/admin/organization/usage_moderations_response.rbi +194 -1
  90. data/rbi/openai/models/admin/organization/usage_vector_stores_response.rbi +194 -1
  91. data/rbi/openai/models/admin/organization/usage_web_search_calls_params.rbi +12 -4
  92. data/rbi/openai/models/admin/organization/usage_web_search_calls_response.rbi +194 -1
  93. data/rbi/openai/models/beta/agents/environments/template_create_params.rbi +6 -6
  94. data/rbi/openai/models/beta/agents/environments/template_update_params.rbi +3 -6
  95. data/rbi/openai/models/beta/agents/sessions/turns/item_list_params.rbi +139 -0
  96. data/rbi/openai/models/beta/beta_response_computer_tool_call_output_item.rbi +2 -2
  97. data/rbi/openai/models/beta/beta_response_error.rbi +12 -0
  98. data/rbi/openai/models/beta/beta_response_tool_search_output_item_param.rbi +1893 -18
  99. data/rbi/openai/models/beta/beta_responses_server_event.rbi +12 -0
  100. data/rbi/openai/models/beta/beta_tool.rbi +12 -9
  101. data/rbi/openai/models/beta/beta_tool_search_output_namespace_tool.rbi +272 -0
  102. data/rbi/openai/models/beta/environment_param.rbi +6 -6
  103. data/rbi/openai/models/beta/session_turn_error.rbi +18 -0
  104. data/rbi/openai/models/chat/chat_completion_chunk.rbi +123 -17
  105. data/rbi/openai/models/decision.rbi +586 -0
  106. data/rbi/openai/models/decision_create_params.rbi +435 -0
  107. data/rbi/openai/models/decision_input_image.rbi +81 -0
  108. data/rbi/openai/models/decision_input_message.rbi +96 -0
  109. data/rbi/openai/models/decision_input_part.rbi +24 -0
  110. data/rbi/openai/models/decision_input_text.rbi +49 -0
  111. data/rbi/openai/models/error_object.rbi +12 -0
  112. data/rbi/openai/models/eval_create_params.rbi +1 -1
  113. data/rbi/openai/models/eval_create_response.rbi +1 -1
  114. data/rbi/openai/models/eval_list_response.rbi +1 -1
  115. data/rbi/openai/models/eval_retrieve_response.rbi +1 -1
  116. data/rbi/openai/models/eval_update_response.rbi +1 -1
  117. data/rbi/openai/models/fine_tuning/job_list_params.rbi +14 -4
  118. data/rbi/openai/models/graders/score_model_grader.rbi +2 -2
  119. data/rbi/openai/models/image_edit_params.rbi +12 -9
  120. data/rbi/openai/models/realtime/session_update_event.rbi +16 -0
  121. data/rbi/openai/models/responses/response_computer_tool_call_output_item.rbi +2 -2
  122. data/rbi/openai/models/responses/response_error.rbi +12 -0
  123. data/rbi/openai/models/responses/response_tool_search_output_item_param.rbi +1901 -18
  124. data/rbi/openai/models/responses/responses_server_event.rbi +12 -0
  125. data/rbi/openai/models/responses/tool.rbi +12 -9
  126. data/rbi/openai/models/responses/tool_search_output_namespace_tool.rbi +272 -0
  127. data/rbi/openai/models/video_create_error.rbi +12 -0
  128. data/rbi/openai/models.rbi +12 -0
  129. data/rbi/openai/resources/admin/organization/usage.rbi +15 -6
  130. data/rbi/openai/resources/beta/agents/environments/templates.rbi +3 -4
  131. data/rbi/openai/resources/beta/agents/sessions/turns/items.rbi +62 -0
  132. data/rbi/openai/resources/beta/agents/sessions/turns.rbi +3 -0
  133. data/rbi/openai/resources/beta/agents/sessions.rbi +2 -0
  134. data/rbi/openai/resources/decisions.rbi +57 -0
  135. data/rbi/openai/resources/fine_tuning/jobs.rbi +7 -2
  136. data/rbi/openai/resources/images.rbi +8 -6
  137. data/sig/openai/client.rbs +2 -0
  138. data/sig/openai/helpers/agents.rbs +3 -0
  139. data/sig/openai/helpers/beta/agents/function_tool.rbs +5 -2
  140. data/sig/openai/helpers/beta/agents/tool_error.rbs +17 -0
  141. data/sig/openai/helpers/beta/agents.rbs +5 -0
  142. data/sig/openai/models/admin/organization/usage_audio_speeches_response.rbs +87 -2
  143. data/sig/openai/models/admin/organization/usage_audio_transcriptions_response.rbs +87 -2
  144. data/sig/openai/models/admin/organization/usage_code_interpreter_sessions_response.rbs +87 -2
  145. data/sig/openai/models/admin/organization/usage_completions_params.rbs +14 -6
  146. data/sig/openai/models/admin/organization/usage_completions_response.rbs +87 -2
  147. data/sig/openai/models/admin/organization/usage_costs_params.rbs +25 -7
  148. data/sig/openai/models/admin/organization/usage_costs_response.rbs +87 -2
  149. data/sig/openai/models/admin/organization/usage_embeddings_response.rbs +87 -2
  150. data/sig/openai/models/admin/organization/usage_file_search_calls_response.rbs +87 -2
  151. data/sig/openai/models/admin/organization/usage_images_response.rbs +87 -2
  152. data/sig/openai/models/admin/organization/usage_moderations_response.rbs +87 -2
  153. data/sig/openai/models/admin/organization/usage_vector_stores_response.rbs +87 -2
  154. data/sig/openai/models/admin/organization/usage_web_search_calls_params.rbs +19 -7
  155. data/sig/openai/models/admin/organization/usage_web_search_calls_response.rbs +87 -2
  156. data/sig/openai/models/beta/agents/environments/template_create_params.rbs +4 -4
  157. data/sig/openai/models/beta/agents/environments/template_update_params.rbs +2 -4
  158. data/sig/openai/models/beta/agents/sessions/turns/item_list_params.rbs +91 -0
  159. data/sig/openai/models/beta/beta_response_computer_tool_call_output_item.rbs +2 -2
  160. data/sig/openai/models/beta/beta_response_error.rbs +10 -0
  161. data/sig/openai/models/beta/beta_response_tool_search_output_item_param.rbs +993 -4
  162. data/sig/openai/models/beta/beta_responses_server_event.rbs +10 -0
  163. data/sig/openai/models/beta/beta_tool.rbs +8 -6
  164. data/sig/openai/models/beta/beta_tool_search_output_namespace_tool.rbs +162 -0
  165. data/sig/openai/models/beta/environment_param.rbs +4 -4
  166. data/sig/openai/models/beta/session_turn_error.rbs +12 -0
  167. data/sig/openai/models/chat/chat_completion_chunk.rbs +96 -12
  168. data/sig/openai/models/decision.rbs +296 -0
  169. data/sig/openai/models/decision_create_params.rbs +227 -0
  170. data/sig/openai/models/decision_input_image.rbs +51 -0
  171. data/sig/openai/models/decision_input_message.rbs +57 -0
  172. data/sig/openai/models/decision_input_part.rbs +12 -0
  173. data/sig/openai/models/decision_input_text.rbs +15 -0
  174. data/sig/openai/models/error_object.rbs +10 -0
  175. data/sig/openai/models/eval_create_params.rbs +1 -1
  176. data/sig/openai/models/eval_create_response.rbs +1 -1
  177. data/sig/openai/models/eval_list_response.rbs +1 -1
  178. data/sig/openai/models/eval_retrieve_response.rbs +1 -1
  179. data/sig/openai/models/eval_update_response.rbs +1 -1
  180. data/sig/openai/models/fine_tuning/job_list_params.rbs +14 -4
  181. data/sig/openai/models/graders/score_model_grader.rbs +3 -3
  182. data/sig/openai/models/image_edit_params.rbs +8 -6
  183. data/sig/openai/models/responses/response_computer_tool_call_output_item.rbs +2 -2
  184. data/sig/openai/models/responses/response_error.rbs +10 -0
  185. data/sig/openai/models/responses/response_tool_search_output_item_param.rbs +993 -4
  186. data/sig/openai/models/responses/responses_server_event.rbs +10 -0
  187. data/sig/openai/models/responses/tool.rbs +8 -6
  188. data/sig/openai/models/responses/tool_search_output_namespace_tool.rbs +160 -0
  189. data/sig/openai/models/video_create_error.rbs +10 -0
  190. data/sig/openai/models.rbs +12 -0
  191. data/sig/openai/resources/beta/agents/sessions/turns/items.rbs +24 -0
  192. data/sig/openai/resources/beta/agents/sessions/turns.rbs +2 -0
  193. data/sig/openai/resources/beta/agents/sessions.rbs +1 -0
  194. data/sig/openai/resources/decisions.rbs +15 -0
  195. metadata +38 -1
@@ -0,0 +1,296 @@
1
+ module OpenAI
2
+ module Models
3
+ type decision =
4
+ {
5
+ answers: ::Array[OpenAI::Models::Decision::answer],
6
+ model: String,
7
+ usage: OpenAI::Decision::Usage
8
+ }
9
+
10
+ class Decision < OpenAI::Internal::Type::BaseModel
11
+ attr_accessor answers: ::Array[OpenAI::Models::Decision::answer]
12
+
13
+ attr_accessor model: String
14
+
15
+ attr_accessor usage: OpenAI::Decision::Usage
16
+
17
+ def initialize: (
18
+ answers: ::Array[OpenAI::Models::Decision::answer],
19
+ model: String,
20
+ usage: OpenAI::Decision::Usage
21
+ ) -> void
22
+
23
+ def to_hash: -> {
24
+ answers: ::Array[OpenAI::Models::Decision::answer],
25
+ model: String,
26
+ usage: OpenAI::Decision::Usage
27
+ }
28
+
29
+ type answer =
30
+ OpenAI::Decision::Answer::Predicate
31
+ | OpenAI::Decision::Answer::Choice
32
+ | OpenAI::Decision::Answer::Score
33
+ | OpenAI::Decision::Answer::Refusal
34
+
35
+ module Answer
36
+ extend OpenAI::Internal::Type::Union
37
+
38
+ type predicate =
39
+ { name: String?, probability: Float, ?type: :predicate }
40
+
41
+ class Predicate < OpenAI::Internal::Type::BaseModel
42
+ attr_accessor name: String?
43
+
44
+ attr_accessor probability: Float
45
+
46
+ # The type of the object. Always `predicate`.
47
+ attr_accessor type: :predicate
48
+
49
+ # @param type
50
+ # The type of the object. Always `predicate`.
51
+ def initialize: (
52
+ name: String?,
53
+ probability: Float,
54
+ ?type: :predicate
55
+ ) -> void
56
+
57
+ def to_hash: -> {
58
+ name: String?,
59
+ probability: Float,
60
+ ?type: :predicate
61
+ }
62
+ end
63
+
64
+ type choice =
65
+ {
66
+ choice: OpenAI::Models::Decision::Answer::Choice::choice,
67
+ confidence: Float,
68
+ name: String?,
69
+ probabilities: ::Array[OpenAI::Decision::Answer::Choice::Probability],
70
+ ?type: :choice
71
+ }
72
+
73
+ class Choice < OpenAI::Internal::Type::BaseModel
74
+ # Choice values are typed: a string and a boolean with the same text are distinct.
75
+ attr_accessor choice: OpenAI::Models::Decision::Answer::Choice::choice
76
+
77
+ attr_accessor confidence: Float
78
+
79
+ attr_accessor name: String?
80
+
81
+ attr_accessor probabilities: ::Array[OpenAI::Decision::Answer::Choice::Probability]
82
+
83
+ # The type of the object. Always `choice`.
84
+ attr_accessor type: :choice
85
+
86
+ # @param choice
87
+ # Choice values are typed: a string and a boolean with the same text are distinct.
88
+ # @param type
89
+ # The type of the object. Always `choice`.
90
+ def initialize: (
91
+ choice: OpenAI::Models::Decision::Answer::Choice::choice,
92
+ confidence: Float,
93
+ name: String?,
94
+ probabilities: ::Array[OpenAI::Decision::Answer::Choice::Probability],
95
+ ?type: :choice
96
+ ) -> void
97
+
98
+ def to_hash: -> {
99
+ choice: OpenAI::Models::Decision::Answer::Choice::choice,
100
+ confidence: Float,
101
+ name: String?,
102
+ probabilities: ::Array[OpenAI::Decision::Answer::Choice::Probability],
103
+ ?type: :choice
104
+ }
105
+
106
+ type choice = String | bool
107
+
108
+ module Choice
109
+ extend OpenAI::Internal::Type::Union
110
+
111
+ def self?.variants: -> ::Array[OpenAI::Models::Decision::Answer::Choice::choice]
112
+ end
113
+
114
+ type probability =
115
+ {
116
+ probability: Float,
117
+ value: OpenAI::Models::Decision::Answer::Choice::Probability::value
118
+ }
119
+
120
+ class Probability < OpenAI::Internal::Type::BaseModel
121
+ attr_accessor probability: Float
122
+
123
+ # Choice values are typed: a string and a boolean with the same text are distinct.
124
+ attr_accessor value: OpenAI::Models::Decision::Answer::Choice::Probability::value
125
+
126
+ # @param value
127
+ # Choice values are typed: a string and a boolean with the same text are distinct.
128
+ def initialize: (
129
+ probability: Float,
130
+ value: OpenAI::Models::Decision::Answer::Choice::Probability::value
131
+ ) -> void
132
+
133
+ def to_hash: -> {
134
+ probability: Float,
135
+ value: OpenAI::Models::Decision::Answer::Choice::Probability::value
136
+ }
137
+
138
+ type value = String | bool
139
+
140
+ module Value
141
+ extend OpenAI::Internal::Type::Union
142
+
143
+ def self?.variants: -> ::Array[OpenAI::Models::Decision::Answer::Choice::Probability::value]
144
+ end
145
+ end
146
+ end
147
+
148
+ type score =
149
+ {
150
+ confidence: Float,
151
+ name: String?,
152
+ probabilities: ::Array[OpenAI::Decision::Answer::Score::Probability],
153
+ score: Float,
154
+ ?type: :score
155
+ }
156
+
157
+ class Score < OpenAI::Internal::Type::BaseModel
158
+ attr_accessor confidence: Float
159
+
160
+ attr_accessor name: String?
161
+
162
+ attr_accessor probabilities: ::Array[OpenAI::Decision::Answer::Score::Probability]
163
+
164
+ attr_accessor score: Float
165
+
166
+ # The type of the object. Always `score`.
167
+ attr_accessor type: :score
168
+
169
+ # @param type
170
+ # The type of the object. Always `score`.
171
+ def initialize: (
172
+ confidence: Float,
173
+ name: String?,
174
+ probabilities: ::Array[OpenAI::Decision::Answer::Score::Probability],
175
+ score: Float,
176
+ ?type: :score
177
+ ) -> void
178
+
179
+ def to_hash: -> {
180
+ confidence: Float,
181
+ name: String?,
182
+ probabilities: ::Array[OpenAI::Decision::Answer::Score::Probability],
183
+ score: Float,
184
+ ?type: :score
185
+ }
186
+
187
+ type probability =
188
+ { label: String, probability: Float, value: Integer }
189
+
190
+ class Probability < OpenAI::Internal::Type::BaseModel
191
+ attr_accessor label: String
192
+
193
+ attr_accessor probability: Float
194
+
195
+ attr_accessor value: Integer
196
+
197
+ def initialize: (
198
+ label: String,
199
+ probability: Float,
200
+ value: Integer
201
+ ) -> void
202
+
203
+ def to_hash: -> {
204
+ label: String,
205
+ probability: Float,
206
+ value: Integer
207
+ }
208
+ end
209
+ end
210
+
211
+ type refusal = { name: String?, ?type: :refusal }
212
+
213
+ class Refusal < OpenAI::Internal::Type::BaseModel
214
+ attr_accessor name: String?
215
+
216
+ # The type of the object. Always `refusal`.
217
+ attr_accessor type: :refusal
218
+
219
+ # @param type
220
+ # The type of the object. Always `refusal`.
221
+ def initialize: (name: String?, ?type: :refusal) -> void
222
+
223
+ def to_hash: -> { name: String?, ?type: :refusal }
224
+ end
225
+
226
+ def self?.variants: -> ::Array[OpenAI::Models::Decision::answer]
227
+ end
228
+
229
+ type usage =
230
+ {
231
+ input_tokens: Integer,
232
+ input_tokens_details: OpenAI::Decision::Usage::InputTokensDetails,
233
+ output_tokens: Integer,
234
+ output_tokens_details: OpenAI::Decision::Usage::OutputTokensDetails,
235
+ total_tokens: Integer
236
+ }
237
+
238
+ class Usage < OpenAI::Internal::Type::BaseModel
239
+ attr_accessor input_tokens: Integer
240
+
241
+ attr_accessor input_tokens_details: OpenAI::Decision::Usage::InputTokensDetails
242
+
243
+ attr_accessor output_tokens: Integer
244
+
245
+ attr_accessor output_tokens_details: OpenAI::Decision::Usage::OutputTokensDetails
246
+
247
+ attr_accessor total_tokens: Integer
248
+
249
+ def initialize: (
250
+ input_tokens: Integer,
251
+ input_tokens_details: OpenAI::Decision::Usage::InputTokensDetails,
252
+ output_tokens: Integer,
253
+ output_tokens_details: OpenAI::Decision::Usage::OutputTokensDetails,
254
+ total_tokens: Integer
255
+ ) -> void
256
+
257
+ def to_hash: -> {
258
+ input_tokens: Integer,
259
+ input_tokens_details: OpenAI::Decision::Usage::InputTokensDetails,
260
+ output_tokens: Integer,
261
+ output_tokens_details: OpenAI::Decision::Usage::OutputTokensDetails,
262
+ total_tokens: Integer
263
+ }
264
+
265
+ type input_tokens_details =
266
+ { cache_write_tokens: Integer, cached_tokens: Integer }
267
+
268
+ class InputTokensDetails < OpenAI::Internal::Type::BaseModel
269
+ attr_accessor cache_write_tokens: Integer
270
+
271
+ attr_accessor cached_tokens: Integer
272
+
273
+ def initialize: (
274
+ cache_write_tokens: Integer,
275
+ cached_tokens: Integer
276
+ ) -> void
277
+
278
+ def to_hash: -> {
279
+ cache_write_tokens: Integer,
280
+ cached_tokens: Integer
281
+ }
282
+ end
283
+
284
+ type output_tokens_details = { reasoning_tokens: Integer }
285
+
286
+ class OutputTokensDetails < OpenAI::Internal::Type::BaseModel
287
+ attr_accessor reasoning_tokens: Integer
288
+
289
+ def initialize: (reasoning_tokens: Integer) -> void
290
+
291
+ def to_hash: -> { reasoning_tokens: Integer }
292
+ end
293
+ end
294
+ end
295
+ end
296
+ end
@@ -0,0 +1,227 @@
1
+ module OpenAI
2
+ module Models
3
+ type decision_create_params =
4
+ {
5
+ input: OpenAI::Models::DecisionCreateParams::input,
6
+ model: String,
7
+ questions: ::Array[OpenAI::Models::DecisionCreateParams::question],
8
+ ?safety_identifier: String?,
9
+ ?request_options: OpenAI::request_opts
10
+ }
11
+
12
+ class DecisionCreateParams < OpenAI::Internal::Type::BaseModel
13
+ extend OpenAI::Internal::Type::RequestParameters::Converter
14
+ include OpenAI::Internal::Type::RequestParameters
15
+
16
+ # Shared evidence, as a string or an array of user messages containing text and
17
+ # inline images. Non-user roles, function calls, function-call outputs, files,
18
+ # audio, and item references are not supported. At most 128 image parts are
19
+ # allowed across all messages in one request.
20
+ attr_accessor input: OpenAI::Models::DecisionCreateParams::input
21
+
22
+ attr_accessor model: String
23
+
24
+ attr_accessor questions: ::Array[OpenAI::Models::DecisionCreateParams::question]
25
+
26
+ # Opaque caller-provided end-user identifier, scoped by the verified org. Match
27
+ # Responses' limit; this is never the authenticated user identity.
28
+ attr_accessor safety_identifier: String?
29
+
30
+ # @param input
31
+ # Shared evidence, as a string or an array of user messages containing text and
32
+ # inline images. Non-user roles, function calls, function-call outputs, files,
33
+ # audio, and item references are not supported. At most 128 image parts are
34
+ # allowed across all messages in one request.
35
+ # @param safety_identifier
36
+ # Opaque caller-provided end-user identifier, scoped by the verified org. Match
37
+ # Responses' limit; this is never the authenticated user identity.
38
+ def initialize: (
39
+ input: OpenAI::Models::DecisionCreateParams::input,
40
+ model: String,
41
+ questions: ::Array[OpenAI::Models::DecisionCreateParams::question],
42
+ ?safety_identifier: String?,
43
+ ?request_options: OpenAI::request_opts
44
+ ) -> void
45
+
46
+ def to_hash: -> {
47
+ input: OpenAI::Models::DecisionCreateParams::input,
48
+ model: String,
49
+ questions: ::Array[OpenAI::Models::DecisionCreateParams::question],
50
+ ?safety_identifier: String?,
51
+ ?request_options: OpenAI::RequestOptions
52
+ }
53
+
54
+ type input = String | ::Array[OpenAI::DecisionInputMessage]
55
+
56
+ module Input
57
+ extend OpenAI::Internal::Type::Union
58
+
59
+ def self?.variants: -> ::Array[OpenAI::Models::DecisionCreateParams::input]
60
+
61
+ DecisionInputMessageArray: OpenAI::Internal::Type::Converter
62
+ end
63
+
64
+ type question =
65
+ OpenAI::DecisionCreateParams::Question::Predicate
66
+ | OpenAI::DecisionCreateParams::Question::Choice
67
+ | OpenAI::DecisionCreateParams::Question::Score
68
+
69
+ module Question
70
+ extend OpenAI::Internal::Type::Union
71
+
72
+ type predicate =
73
+ { instructions: String, ?type: :predicate, ?name: String }
74
+
75
+ class Predicate < OpenAI::Internal::Type::BaseModel
76
+ attr_accessor instructions: String
77
+
78
+ # The type of the object. Always `predicate`.
79
+ attr_accessor type: :predicate
80
+
81
+ attr_reader name: String?
82
+
83
+ def name=: (String) -> String
84
+
85
+ # @param type
86
+ # The type of the object. Always `predicate`.
87
+ def initialize: (
88
+ instructions: String,
89
+ ?name: String,
90
+ ?type: :predicate
91
+ ) -> void
92
+
93
+ def to_hash: -> {
94
+ instructions: String,
95
+ ?type: :predicate,
96
+ ?name: String
97
+ }
98
+ end
99
+
100
+ type choice =
101
+ {
102
+ choices: ::Array[OpenAI::DecisionCreateParams::Question::Choice::Choice],
103
+ instructions: String,
104
+ ?type: :choice,
105
+ ?name: String
106
+ }
107
+
108
+ class Choice < OpenAI::Internal::Type::BaseModel
109
+ attr_accessor choices: ::Array[OpenAI::DecisionCreateParams::Question::Choice::Choice]
110
+
111
+ attr_accessor instructions: String
112
+
113
+ # The type of the object. Always `choice`.
114
+ attr_accessor type: :choice
115
+
116
+ attr_reader name: String?
117
+
118
+ def name=: (String) -> String
119
+
120
+ # @param type
121
+ # The type of the object. Always `choice`.
122
+ def initialize: (
123
+ choices: ::Array[OpenAI::DecisionCreateParams::Question::Choice::Choice],
124
+ instructions: String,
125
+ ?name: String,
126
+ ?type: :choice
127
+ ) -> void
128
+
129
+ def to_hash: -> {
130
+ choices: ::Array[OpenAI::DecisionCreateParams::Question::Choice::Choice],
131
+ instructions: String,
132
+ ?type: :choice,
133
+ ?name: String
134
+ }
135
+
136
+ type choice =
137
+ {
138
+ value: OpenAI::Models::DecisionCreateParams::Question::Choice::Choice::value,
139
+ ?description: String
140
+ }
141
+
142
+ class Choice < OpenAI::Internal::Type::BaseModel
143
+ # Choice values are typed: a string and a boolean with the same text are distinct.
144
+ attr_accessor value: OpenAI::Models::DecisionCreateParams::Question::Choice::Choice::value
145
+
146
+ attr_reader description: String?
147
+
148
+ def description=: (String) -> String
149
+
150
+ # @param value
151
+ # Choice values are typed: a string and a boolean with the same text are distinct.
152
+ def initialize: (
153
+ value: OpenAI::Models::DecisionCreateParams::Question::Choice::Choice::value,
154
+ ?description: String
155
+ ) -> void
156
+
157
+ def to_hash: -> {
158
+ value: OpenAI::Models::DecisionCreateParams::Question::Choice::Choice::value,
159
+ ?description: String
160
+ }
161
+
162
+ type value = String | bool
163
+
164
+ module Value
165
+ extend OpenAI::Internal::Type::Union
166
+
167
+ def self?.variants: -> ::Array[OpenAI::Models::DecisionCreateParams::Question::Choice::Choice::value]
168
+ end
169
+ end
170
+ end
171
+
172
+ type score =
173
+ {
174
+ instructions: String,
175
+ levels: ::Array[OpenAI::DecisionCreateParams::Question::Score::Level],
176
+ ?type: :score,
177
+ ?name: String
178
+ }
179
+
180
+ class Score < OpenAI::Internal::Type::BaseModel
181
+ attr_accessor instructions: String
182
+
183
+ attr_accessor levels: ::Array[OpenAI::DecisionCreateParams::Question::Score::Level]
184
+
185
+ # The type of the object. Always `score`.
186
+ attr_accessor type: :score
187
+
188
+ attr_reader name: String?
189
+
190
+ def name=: (String) -> String
191
+
192
+ # @param type
193
+ # The type of the object. Always `score`.
194
+ def initialize: (
195
+ instructions: String,
196
+ levels: ::Array[OpenAI::DecisionCreateParams::Question::Score::Level],
197
+ ?name: String,
198
+ ?type: :score
199
+ ) -> void
200
+
201
+ def to_hash: -> {
202
+ instructions: String,
203
+ levels: ::Array[OpenAI::DecisionCreateParams::Question::Score::Level],
204
+ ?type: :score,
205
+ ?name: String
206
+ }
207
+
208
+ type level = { label: String, ?description: String }
209
+
210
+ class Level < OpenAI::Internal::Type::BaseModel
211
+ attr_accessor label: String
212
+
213
+ attr_reader description: String?
214
+
215
+ def description=: (String) -> String
216
+
217
+ def initialize: (label: String, ?description: String) -> void
218
+
219
+ def to_hash: -> { label: String, ?description: String }
220
+ end
221
+ end
222
+
223
+ def self?.variants: -> ::Array[OpenAI::Models::DecisionCreateParams::question]
224
+ end
225
+ end
226
+ end
227
+ end
@@ -0,0 +1,51 @@
1
+ module OpenAI
2
+ module Models
3
+ type decision_input_image =
4
+ {
5
+ image_url: String,
6
+ ?type: :input_image,
7
+ ?detail: OpenAI::Models::DecisionInputImage::detail?
8
+ }
9
+
10
+ class DecisionInputImage < OpenAI::Internal::Type::BaseModel
11
+ # A base64-encoded image in a data URL.
12
+ attr_accessor image_url: String
13
+
14
+ attr_accessor type: :input_image
15
+
16
+ # The image detail level, using the selected model's image profile. Defaults to
17
+ # auto.
18
+ attr_accessor detail: OpenAI::Models::DecisionInputImage::detail?
19
+
20
+ # @param image_url
21
+ # A base64-encoded image in a data URL.
22
+ # @param detail
23
+ # The image detail level, using the selected model's image profile. Defaults to
24
+ # auto.
25
+ def initialize: (
26
+ image_url: String,
27
+ ?detail: OpenAI::Models::DecisionInputImage::detail?,
28
+ ?type: :input_image
29
+ ) -> void
30
+
31
+ def to_hash: -> {
32
+ image_url: String,
33
+ ?type: :input_image,
34
+ ?detail: OpenAI::Models::DecisionInputImage::detail?
35
+ }
36
+
37
+ type detail = :low | :high | :auto | :original
38
+
39
+ module Detail
40
+ extend OpenAI::Internal::Type::Enum
41
+
42
+ LOW: :low
43
+ HIGH: :high
44
+ AUTO: :auto
45
+ ORIGINAL: :original
46
+
47
+ def self?.values: -> ::Array[OpenAI::Models::DecisionInputImage::detail]
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,57 @@
1
+ module OpenAI
2
+ module Models
3
+ type decision_input_message =
4
+ {
5
+ content: OpenAI::Models::DecisionInputMessage::content,
6
+ ?role: :user,
7
+ ?type: OpenAI::Models::DecisionInputMessage::type_
8
+ }
9
+
10
+ class DecisionInputMessage < OpenAI::Internal::Type::BaseModel
11
+ # Text evidence or an ordered list of text and inline image parts.
12
+ attr_accessor content: OpenAI::Models::DecisionInputMessage::content
13
+
14
+ attr_accessor role: :user
15
+
16
+ attr_reader type: OpenAI::Models::DecisionInputMessage::type_?
17
+
18
+ def type=: (
19
+ OpenAI::Models::DecisionInputMessage::type_
20
+ ) -> OpenAI::Models::DecisionInputMessage::type_
21
+
22
+ # @param content
23
+ # Text evidence or an ordered list of text and inline image parts.
24
+ def initialize: (
25
+ content: OpenAI::Models::DecisionInputMessage::content,
26
+ ?type: OpenAI::Models::DecisionInputMessage::type_,
27
+ ?role: :user
28
+ ) -> void
29
+
30
+ def to_hash: -> {
31
+ content: OpenAI::Models::DecisionInputMessage::content,
32
+ ?role: :user,
33
+ ?type: OpenAI::Models::DecisionInputMessage::type_
34
+ }
35
+
36
+ type content = String | ::Array[OpenAI::Models::decision_input_part]
37
+
38
+ module Content
39
+ extend OpenAI::Internal::Type::Union
40
+
41
+ def self?.variants: -> ::Array[OpenAI::Models::DecisionInputMessage::content]
42
+
43
+ DecisionInputPartArray: OpenAI::Internal::Type::Converter
44
+ end
45
+
46
+ type type_ = :message
47
+
48
+ module Type
49
+ extend OpenAI::Internal::Type::Enum
50
+
51
+ MESSAGE: :message
52
+
53
+ def self?.values: -> ::Array[OpenAI::Models::DecisionInputMessage::type_]
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,12 @@
1
+ module OpenAI
2
+ module Models
3
+ type decision_input_part =
4
+ OpenAI::DecisionInputText | OpenAI::DecisionInputImage
5
+
6
+ module DecisionInputPart
7
+ extend OpenAI::Internal::Type::Union
8
+
9
+ def self?.variants: -> ::Array[OpenAI::Models::decision_input_part]
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,15 @@
1
+ module OpenAI
2
+ module Models
3
+ type decision_input_text = { text: String, ?type: :input_text }
4
+
5
+ class DecisionInputText < OpenAI::Internal::Type::BaseModel
6
+ attr_accessor text: String
7
+
8
+ attr_accessor type: :input_text
9
+
10
+ def initialize: (text: String, ?type: :input_text) -> void
11
+
12
+ def to_hash: -> { text: String, ?type: :input_text }
13
+ end
14
+ end
15
+ end
@@ -44,6 +44,7 @@ module OpenAI
44
44
  {
45
45
  ?detailed_explanation: String,
46
46
  ?error_type: OpenAI::Models::ErrorObject::Misalignment::error_type,
47
+ ?review_target: String?,
47
48
  ?steer: OpenAI::ErrorObject::Misalignment::Steer
48
49
  }
49
50
 
@@ -62,6 +63,10 @@ module OpenAI
62
63
  OpenAI::Models::ErrorObject::Misalignment::error_type
63
64
  ) -> OpenAI::Models::ErrorObject::Misalignment::error_type
64
65
 
66
+ # An opaque target for explicitly continuing this review, or null when
67
+ # unavailable.
68
+ attr_accessor review_target: String?
69
+
65
70
  # An optional public continuation instruction.
66
71
  attr_reader steer: OpenAI::ErrorObject::Misalignment::Steer?
67
72
 
@@ -74,17 +79,22 @@ module OpenAI
74
79
  # The public explanation for this block.
75
80
  # @param error_type
76
81
  # An optional classification; clients must accept additional values.
82
+ # @param review_target
83
+ # An opaque target for explicitly continuing this review, or null when
84
+ # unavailable.
77
85
  # @param steer
78
86
  # An optional public continuation instruction.
79
87
  def initialize: (
80
88
  ?detailed_explanation: String,
81
89
  ?error_type: OpenAI::Models::ErrorObject::Misalignment::error_type,
90
+ ?review_target: String?,
82
91
  ?steer: OpenAI::ErrorObject::Misalignment::Steer
83
92
  ) -> void
84
93
 
85
94
  def to_hash: -> {
86
95
  ?detailed_explanation: String,
87
96
  ?error_type: OpenAI::Models::ErrorObject::Misalignment::error_type,
97
+ ?review_target: String?,
88
98
  ?steer: OpenAI::ErrorObject::Misalignment::Steer
89
99
  }
90
100