openai 0.64.0 → 0.66.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 (76) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/README.md +1 -1
  4. data/lib/openai/models/admin/organization/audit_log_list_params.rb +6 -0
  5. data/lib/openai/models/admin/organization/audit_log_list_response.rb +231 -1
  6. data/lib/openai/models/chat/chat_completion.rb +341 -3
  7. data/lib/openai/models/chat/chat_completion_chunk.rb +341 -1
  8. data/lib/openai/models/chat/completion_create_params.rb +42 -1
  9. data/lib/openai/models/conversations/conversation_create_params.rb +2 -2
  10. data/lib/openai/models/conversations/conversation_item.rb +57 -1
  11. data/lib/openai/models/conversations/conversation_item_list.rb +2 -2
  12. data/lib/openai/models/conversations/item_create_params.rb +2 -2
  13. data/lib/openai/models/responses/compacted_response.rb +2 -2
  14. data/lib/openai/models/responses/input_token_count_params.rb +41 -4
  15. data/lib/openai/models/responses/response.rb +296 -6
  16. data/lib/openai/models/responses/response_compact_params.rb +3 -3
  17. data/lib/openai/models/responses/response_create_params.rb +45 -4
  18. data/lib/openai/models/responses/response_function_web_search.rb +11 -9
  19. data/lib/openai/models/responses/response_input_item.rb +38 -1
  20. data/lib/openai/models/responses/response_item.rb +57 -1
  21. data/lib/openai/models/responses/response_item_list.rb +2 -2
  22. data/lib/openai/models/responses/response_output_item.rb +57 -1
  23. data/lib/openai/models/responses/response_output_item_added_event.rb +2 -2
  24. data/lib/openai/models/responses/response_output_item_done_event.rb +2 -2
  25. data/lib/openai/models/responses/responses_client_event.rb +46 -4
  26. data/lib/openai/resources/chat/completions.rb +6 -2
  27. data/lib/openai/resources/conversations/items.rb +3 -3
  28. data/lib/openai/resources/conversations.rb +1 -1
  29. data/lib/openai/resources/responses/input_items.rb +1 -1
  30. data/lib/openai/resources/responses/input_tokens.rb +4 -2
  31. data/lib/openai/resources/responses.rb +9 -5
  32. data/lib/openai/version.rb +1 -1
  33. data/rbi/openai/models/admin/organization/audit_log_list_params.rbi +30 -0
  34. data/rbi/openai/models/admin/organization/audit_log_list_response.rbi +489 -3
  35. data/rbi/openai/models/chat/chat_completion.rbi +620 -3
  36. data/rbi/openai/models/chat/chat_completion_chunk.rbi +621 -0
  37. data/rbi/openai/models/chat/completion_create_params.rbi +76 -0
  38. data/rbi/openai/models/conversations/conversation_create_params.rbi +3 -0
  39. data/rbi/openai/models/conversations/conversation_item.rbi +150 -0
  40. data/rbi/openai/models/conversations/conversation_item_list.rbi +1 -0
  41. data/rbi/openai/models/conversations/item_create_params.rbi +3 -0
  42. data/rbi/openai/models/responses/compacted_response.rbi +1 -0
  43. data/rbi/openai/models/responses/input_token_count_params.rbi +85 -0
  44. data/rbi/openai/models/responses/response.rbi +510 -0
  45. data/rbi/openai/models/responses/response_create_params.rbi +78 -0
  46. data/rbi/openai/models/responses/response_function_web_search.rbi +11 -8
  47. data/rbi/openai/models/responses/response_input_item.rbi +120 -0
  48. data/rbi/openai/models/responses/response_item.rbi +150 -0
  49. data/rbi/openai/models/responses/response_item_list.rbi +1 -0
  50. data/rbi/openai/models/responses/response_output_item.rbi +150 -0
  51. data/rbi/openai/models/responses/response_output_item_added_event.rbi +1 -0
  52. data/rbi/openai/models/responses/response_output_item_done_event.rbi +1 -0
  53. data/rbi/openai/models/responses/responses_client_event.rbi +78 -0
  54. data/rbi/openai/resources/chat/completions.rbi +28 -0
  55. data/rbi/openai/resources/conversations/items.rbi +1 -0
  56. data/rbi/openai/resources/conversations.rbi +1 -0
  57. data/rbi/openai/resources/responses/input_tokens.rbi +9 -0
  58. data/rbi/openai/resources/responses.rbi +28 -0
  59. data/sig/openai/models/admin/organization/audit_log_list_params.rbs +12 -0
  60. data/sig/openai/models/admin/organization/audit_log_list_response.rbs +216 -3
  61. data/sig/openai/models/chat/chat_completion.rbs +243 -0
  62. data/sig/openai/models/chat/chat_completion_chunk.rbs +243 -0
  63. data/sig/openai/models/chat/completion_create_params.rbs +15 -0
  64. data/sig/openai/models/conversations/conversation_item.rbs +58 -0
  65. data/sig/openai/models/responses/input_token_count_params.rbs +20 -0
  66. data/sig/openai/models/responses/response.rbs +189 -0
  67. data/sig/openai/models/responses/response_create_params.rbs +15 -0
  68. data/sig/openai/models/responses/response_function_web_search.rbs +7 -5
  69. data/sig/openai/models/responses/response_input_item.rbs +33 -0
  70. data/sig/openai/models/responses/response_item.rbs +58 -0
  71. data/sig/openai/models/responses/response_output_item.rbs +58 -0
  72. data/sig/openai/models/responses/responses_client_event.rbs +15 -0
  73. data/sig/openai/resources/chat/completions.rbs +2 -0
  74. data/sig/openai/resources/responses/input_tokens.rbs +1 -0
  75. data/sig/openai/resources/responses.rbs +2 -0
  76. metadata +2 -2
@@ -8,6 +8,7 @@ module OpenAI
8
8
  instructions: String?,
9
9
  model: String?,
10
10
  parallel_tool_calls: bool?,
11
+ personality: OpenAI::Models::Responses::InputTokenCountParams::personality,
11
12
  previous_response_id: String?,
12
13
  reasoning: OpenAI::Reasoning?,
13
14
  text: OpenAI::Responses::InputTokenCountParams::Text?,
@@ -31,6 +32,12 @@ module OpenAI
31
32
 
32
33
  attr_accessor parallel_tool_calls: bool?
33
34
 
35
+ attr_reader personality: OpenAI::Models::Responses::InputTokenCountParams::personality?
36
+
37
+ def personality=: (
38
+ OpenAI::Models::Responses::InputTokenCountParams::personality
39
+ ) -> OpenAI::Models::Responses::InputTokenCountParams::personality
40
+
34
41
  attr_accessor previous_response_id: String?
35
42
 
36
43
  attr_accessor reasoning: OpenAI::Reasoning?
@@ -53,6 +60,7 @@ module OpenAI
53
60
  ?instructions: String?,
54
61
  ?model: String?,
55
62
  ?parallel_tool_calls: bool?,
63
+ ?personality: OpenAI::Models::Responses::InputTokenCountParams::personality,
56
64
  ?previous_response_id: String?,
57
65
  ?reasoning: OpenAI::Reasoning?,
58
66
  ?text: OpenAI::Responses::InputTokenCountParams::Text?,
@@ -68,6 +76,7 @@ module OpenAI
68
76
  instructions: String?,
69
77
  model: String?,
70
78
  parallel_tool_calls: bool?,
79
+ personality: OpenAI::Models::Responses::InputTokenCountParams::personality,
71
80
  previous_response_id: String?,
72
81
  reasoning: OpenAI::Reasoning?,
73
82
  text: OpenAI::Responses::InputTokenCountParams::Text?,
@@ -97,6 +106,17 @@ module OpenAI
97
106
  ResponseInputItemArray: OpenAI::Internal::Type::Converter
98
107
  end
99
108
 
109
+ type personality = String | :friendly | :pragmatic
110
+
111
+ module Personality
112
+ extend OpenAI::Internal::Type::Union
113
+
114
+ def self?.variants: -> ::Array[OpenAI::Models::Responses::InputTokenCountParams::personality]
115
+
116
+ FRIENDLY: :friendly
117
+ PRAGMATIC: :pragmatic
118
+ end
119
+
100
120
  type text =
101
121
  {
102
122
  format_: OpenAI::Models::Responses::response_format_text_config,
@@ -22,6 +22,7 @@ module OpenAI
22
22
  conversation: OpenAI::Responses::Response::Conversation?,
23
23
  max_output_tokens: Integer?,
24
24
  max_tool_calls: Integer?,
25
+ moderation: OpenAI::Responses::Response::Moderation?,
25
26
  previous_response_id: String?,
26
27
  prompt: OpenAI::Responses::ResponsePrompt?,
27
28
  prompt_cache_key: String,
@@ -76,6 +77,8 @@ module OpenAI
76
77
 
77
78
  attr_accessor max_tool_calls: Integer?
78
79
 
80
+ attr_accessor moderation: OpenAI::Responses::Response::Moderation?
81
+
79
82
  attr_accessor previous_response_id: String?
80
83
 
81
84
  attr_accessor prompt: OpenAI::Responses::ResponsePrompt?
@@ -139,6 +142,7 @@ module OpenAI
139
142
  ?conversation: OpenAI::Responses::Response::Conversation?,
140
143
  ?max_output_tokens: Integer?,
141
144
  ?max_tool_calls: Integer?,
145
+ ?moderation: OpenAI::Responses::Response::Moderation?,
142
146
  ?previous_response_id: String?,
143
147
  ?prompt: OpenAI::Responses::ResponsePrompt?,
144
148
  ?prompt_cache_key: String,
@@ -175,6 +179,7 @@ module OpenAI
175
179
  conversation: OpenAI::Responses::Response::Conversation?,
176
180
  max_output_tokens: Integer?,
177
181
  max_tool_calls: Integer?,
182
+ moderation: OpenAI::Responses::Response::Moderation?,
178
183
  previous_response_id: String?,
179
184
  prompt: OpenAI::Responses::ResponsePrompt?,
180
185
  prompt_cache_key: String,
@@ -259,6 +264,190 @@ module OpenAI
259
264
  def to_hash: -> { id: String }
260
265
  end
261
266
 
267
+ type moderation =
268
+ {
269
+ input: OpenAI::Models::Responses::Response::Moderation::input,
270
+ output: OpenAI::Models::Responses::Response::Moderation::output
271
+ }
272
+
273
+ class Moderation < OpenAI::Internal::Type::BaseModel
274
+ attr_accessor input: OpenAI::Models::Responses::Response::Moderation::input
275
+
276
+ attr_accessor output: OpenAI::Models::Responses::Response::Moderation::output
277
+
278
+ def initialize: (
279
+ input: OpenAI::Models::Responses::Response::Moderation::input,
280
+ output: OpenAI::Models::Responses::Response::Moderation::output
281
+ ) -> void
282
+
283
+ def to_hash: -> {
284
+ input: OpenAI::Models::Responses::Response::Moderation::input,
285
+ output: OpenAI::Models::Responses::Response::Moderation::output
286
+ }
287
+
288
+ type input =
289
+ OpenAI::Responses::Response::Moderation::Input::ModerationResult
290
+ | OpenAI::Responses::Response::Moderation::Input::Error
291
+
292
+ module Input
293
+ extend OpenAI::Internal::Type::Union
294
+
295
+ type moderation_result =
296
+ {
297
+ categories: ::Hash[Symbol, bool],
298
+ category_applied_input_types: ::Hash[Symbol, ::Array[OpenAI::Models::Responses::Response::Moderation::Input::ModerationResult::category_applied_input_type]],
299
+ category_scores: ::Hash[Symbol, Float],
300
+ flagged: bool,
301
+ model: String,
302
+ type: :moderation_result
303
+ }
304
+
305
+ class ModerationResult < OpenAI::Internal::Type::BaseModel
306
+ attr_accessor categories: ::Hash[Symbol, bool]
307
+
308
+ attr_accessor category_applied_input_types: ::Hash[Symbol, ::Array[OpenAI::Models::Responses::Response::Moderation::Input::ModerationResult::category_applied_input_type]]
309
+
310
+ attr_accessor category_scores: ::Hash[Symbol, Float]
311
+
312
+ attr_accessor flagged: bool
313
+
314
+ attr_accessor model: String
315
+
316
+ attr_accessor type: :moderation_result
317
+
318
+ def initialize: (
319
+ categories: ::Hash[Symbol, bool],
320
+ category_applied_input_types: ::Hash[Symbol, ::Array[OpenAI::Models::Responses::Response::Moderation::Input::ModerationResult::category_applied_input_type]],
321
+ category_scores: ::Hash[Symbol, Float],
322
+ flagged: bool,
323
+ model: String,
324
+ ?type: :moderation_result
325
+ ) -> void
326
+
327
+ def to_hash: -> {
328
+ categories: ::Hash[Symbol, bool],
329
+ category_applied_input_types: ::Hash[Symbol, ::Array[OpenAI::Models::Responses::Response::Moderation::Input::ModerationResult::category_applied_input_type]],
330
+ category_scores: ::Hash[Symbol, Float],
331
+ flagged: bool,
332
+ model: String,
333
+ type: :moderation_result
334
+ }
335
+
336
+ type category_applied_input_type = :text | :image
337
+
338
+ module CategoryAppliedInputType
339
+ extend OpenAI::Internal::Type::Enum
340
+
341
+ TEXT: :text
342
+ IMAGE: :image
343
+
344
+ def self?.values: -> ::Array[OpenAI::Models::Responses::Response::Moderation::Input::ModerationResult::category_applied_input_type]
345
+ end
346
+ end
347
+
348
+ type error = { code: String, message: String, type: :error }
349
+
350
+ class Error < OpenAI::Internal::Type::BaseModel
351
+ attr_accessor code: String
352
+
353
+ attr_accessor message: String
354
+
355
+ attr_accessor type: :error
356
+
357
+ def initialize: (
358
+ code: String,
359
+ message: String,
360
+ ?type: :error
361
+ ) -> void
362
+
363
+ def to_hash: -> { code: String, message: String, type: :error }
364
+ end
365
+
366
+ def self?.variants: -> ::Array[OpenAI::Models::Responses::Response::Moderation::input]
367
+ end
368
+
369
+ type output =
370
+ OpenAI::Responses::Response::Moderation::Output::ModerationResult
371
+ | OpenAI::Responses::Response::Moderation::Output::Error
372
+
373
+ module Output
374
+ extend OpenAI::Internal::Type::Union
375
+
376
+ type moderation_result =
377
+ {
378
+ categories: ::Hash[Symbol, bool],
379
+ category_applied_input_types: ::Hash[Symbol, ::Array[OpenAI::Models::Responses::Response::Moderation::Output::ModerationResult::category_applied_input_type]],
380
+ category_scores: ::Hash[Symbol, Float],
381
+ flagged: bool,
382
+ model: String,
383
+ type: :moderation_result
384
+ }
385
+
386
+ class ModerationResult < OpenAI::Internal::Type::BaseModel
387
+ attr_accessor categories: ::Hash[Symbol, bool]
388
+
389
+ attr_accessor category_applied_input_types: ::Hash[Symbol, ::Array[OpenAI::Models::Responses::Response::Moderation::Output::ModerationResult::category_applied_input_type]]
390
+
391
+ attr_accessor category_scores: ::Hash[Symbol, Float]
392
+
393
+ attr_accessor flagged: bool
394
+
395
+ attr_accessor model: String
396
+
397
+ attr_accessor type: :moderation_result
398
+
399
+ def initialize: (
400
+ categories: ::Hash[Symbol, bool],
401
+ category_applied_input_types: ::Hash[Symbol, ::Array[OpenAI::Models::Responses::Response::Moderation::Output::ModerationResult::category_applied_input_type]],
402
+ category_scores: ::Hash[Symbol, Float],
403
+ flagged: bool,
404
+ model: String,
405
+ ?type: :moderation_result
406
+ ) -> void
407
+
408
+ def to_hash: -> {
409
+ categories: ::Hash[Symbol, bool],
410
+ category_applied_input_types: ::Hash[Symbol, ::Array[OpenAI::Models::Responses::Response::Moderation::Output::ModerationResult::category_applied_input_type]],
411
+ category_scores: ::Hash[Symbol, Float],
412
+ flagged: bool,
413
+ model: String,
414
+ type: :moderation_result
415
+ }
416
+
417
+ type category_applied_input_type = :text | :image
418
+
419
+ module CategoryAppliedInputType
420
+ extend OpenAI::Internal::Type::Enum
421
+
422
+ TEXT: :text
423
+ IMAGE: :image
424
+
425
+ def self?.values: -> ::Array[OpenAI::Models::Responses::Response::Moderation::Output::ModerationResult::category_applied_input_type]
426
+ end
427
+ end
428
+
429
+ type error = { code: String, message: String, type: :error }
430
+
431
+ class Error < OpenAI::Internal::Type::BaseModel
432
+ attr_accessor code: String
433
+
434
+ attr_accessor message: String
435
+
436
+ attr_accessor type: :error
437
+
438
+ def initialize: (
439
+ code: String,
440
+ message: String,
441
+ ?type: :error
442
+ ) -> void
443
+
444
+ def to_hash: -> { code: String, message: String, type: :error }
445
+ end
446
+
447
+ def self?.variants: -> ::Array[OpenAI::Models::Responses::Response::Moderation::output]
448
+ end
449
+ end
450
+
262
451
  type prompt_cache_retention = :in_memory | :"24h"
263
452
 
264
453
  module PromptCacheRetention
@@ -13,6 +13,7 @@ module OpenAI
13
13
  max_tool_calls: Integer?,
14
14
  metadata: OpenAI::Models::metadata?,
15
15
  model: OpenAI::Models::responses_model,
16
+ moderation: OpenAI::Responses::ResponseCreateParams::Moderation?,
16
17
  parallel_tool_calls: bool?,
17
18
  previous_response_id: String?,
18
19
  prompt: OpenAI::Responses::ResponsePrompt?,
@@ -66,6 +67,8 @@ module OpenAI
66
67
  OpenAI::Models::responses_model
67
68
  ) -> OpenAI::Models::responses_model
68
69
 
70
+ attr_accessor moderation: OpenAI::Responses::ResponseCreateParams::Moderation?
71
+
69
72
  attr_accessor parallel_tool_calls: bool?
70
73
 
71
74
  attr_accessor previous_response_id: String?
@@ -131,6 +134,7 @@ module OpenAI
131
134
  ?max_tool_calls: Integer?,
132
135
  ?metadata: OpenAI::Models::metadata?,
133
136
  ?model: OpenAI::Models::responses_model,
137
+ ?moderation: OpenAI::Responses::ResponseCreateParams::Moderation?,
134
138
  ?parallel_tool_calls: bool?,
135
139
  ?previous_response_id: String?,
136
140
  ?prompt: OpenAI::Responses::ResponsePrompt?,
@@ -163,6 +167,7 @@ module OpenAI
163
167
  max_tool_calls: Integer?,
164
168
  metadata: OpenAI::Models::metadata?,
165
169
  model: OpenAI::Models::responses_model,
170
+ moderation: OpenAI::Responses::ResponseCreateParams::Moderation?,
166
171
  parallel_tool_calls: bool?,
167
172
  previous_response_id: String?,
168
173
  prompt: OpenAI::Responses::ResponsePrompt?,
@@ -213,6 +218,16 @@ module OpenAI
213
218
  def self?.variants: -> ::Array[OpenAI::Models::Responses::ResponseCreateParams::input]
214
219
  end
215
220
 
221
+ type moderation = { model: String }
222
+
223
+ class Moderation < OpenAI::Internal::Type::BaseModel
224
+ attr_accessor model: String
225
+
226
+ def initialize: (model: String) -> void
227
+
228
+ def to_hash: -> { model: String }
229
+ end
230
+
216
231
  type prompt_cache_retention = :in_memory | :"24h"
217
232
 
218
233
  module PromptCacheRetention
@@ -42,21 +42,23 @@ module OpenAI
42
42
 
43
43
  type search =
44
44
  {
45
- query: String,
46
45
  type: :search,
47
46
  queries: ::Array[String],
47
+ query: String,
48
48
  sources: ::Array[OpenAI::Responses::ResponseFunctionWebSearch::Action::Search::Source]
49
49
  }
50
50
 
51
51
  class Search < OpenAI::Internal::Type::BaseModel
52
- attr_accessor query: String
53
-
54
52
  attr_accessor type: :search
55
53
 
56
54
  attr_reader queries: ::Array[String]?
57
55
 
58
56
  def queries=: (::Array[String]) -> ::Array[String]
59
57
 
58
+ attr_reader query: String?
59
+
60
+ def query=: (String) -> String
61
+
60
62
  attr_reader sources: ::Array[OpenAI::Responses::ResponseFunctionWebSearch::Action::Search::Source]?
61
63
 
62
64
  def sources=: (
@@ -64,16 +66,16 @@ module OpenAI
64
66
  ) -> ::Array[OpenAI::Responses::ResponseFunctionWebSearch::Action::Search::Source]
65
67
 
66
68
  def initialize: (
67
- query: String,
68
69
  ?queries: ::Array[String],
70
+ ?query: String,
69
71
  ?sources: ::Array[OpenAI::Responses::ResponseFunctionWebSearch::Action::Search::Source],
70
72
  ?type: :search
71
73
  ) -> void
72
74
 
73
75
  def to_hash: -> {
74
- query: String,
75
76
  type: :search,
76
77
  queries: ::Array[String],
78
+ query: String,
77
79
  sources: ::Array[OpenAI::Responses::ResponseFunctionWebSearch::Action::Search::Source]
78
80
  }
79
81
 
@@ -13,6 +13,7 @@ module OpenAI
13
13
  | OpenAI::Responses::ResponseInputItem::FunctionCallOutput
14
14
  | OpenAI::Responses::ResponseInputItem::ToolSearchCall
15
15
  | OpenAI::Responses::ResponseToolSearchOutputItemParam
16
+ | OpenAI::Responses::ResponseInputItem::AdditionalTools
16
17
  | OpenAI::Responses::ResponseReasoningItem
17
18
  | OpenAI::Responses::ResponseCompactionItemParam
18
19
  | OpenAI::Responses::ResponseInputItem::ImageGenerationCall
@@ -310,6 +311,38 @@ module OpenAI
310
311
  end
311
312
  end
312
313
 
314
+ type additional_tools =
315
+ {
316
+ role: :developer,
317
+ tools: ::Array[OpenAI::Models::Responses::tool],
318
+ type: :additional_tools,
319
+ id: String?
320
+ }
321
+
322
+ class AdditionalTools < OpenAI::Internal::Type::BaseModel
323
+ attr_accessor role: :developer
324
+
325
+ attr_accessor tools: ::Array[OpenAI::Models::Responses::tool]
326
+
327
+ attr_accessor type: :additional_tools
328
+
329
+ attr_accessor id: String?
330
+
331
+ def initialize: (
332
+ tools: ::Array[OpenAI::Models::Responses::tool],
333
+ ?id: String?,
334
+ ?role: :developer,
335
+ ?type: :additional_tools
336
+ ) -> void
337
+
338
+ def to_hash: -> {
339
+ role: :developer,
340
+ tools: ::Array[OpenAI::Models::Responses::tool],
341
+ type: :additional_tools,
342
+ id: String?
343
+ }
344
+ end
345
+
313
346
  type image_generation_call =
314
347
  {
315
348
  id: String,
@@ -12,6 +12,7 @@ module OpenAI
12
12
  | OpenAI::Responses::ResponseFunctionToolCallOutputItem
13
13
  | OpenAI::Responses::ResponseToolSearchCall
14
14
  | OpenAI::Responses::ResponseToolSearchOutputItem
15
+ | OpenAI::Responses::ResponseItem::AdditionalTools
15
16
  | OpenAI::Responses::ResponseReasoningItem
16
17
  | OpenAI::Responses::ResponseCompactionItem
17
18
  | OpenAI::Responses::ResponseItem::ImageGenerationCall
@@ -32,6 +33,63 @@ module OpenAI
32
33
  module ResponseItem
33
34
  extend OpenAI::Internal::Type::Union
34
35
 
36
+ type additional_tools =
37
+ {
38
+ id: String,
39
+ role: OpenAI::Models::Responses::ResponseItem::AdditionalTools::role,
40
+ tools: ::Array[OpenAI::Models::Responses::tool],
41
+ type: :additional_tools
42
+ }
43
+
44
+ class AdditionalTools < OpenAI::Internal::Type::BaseModel
45
+ attr_accessor id: String
46
+
47
+ attr_accessor role: OpenAI::Models::Responses::ResponseItem::AdditionalTools::role
48
+
49
+ attr_accessor tools: ::Array[OpenAI::Models::Responses::tool]
50
+
51
+ attr_accessor type: :additional_tools
52
+
53
+ def initialize: (
54
+ id: String,
55
+ role: OpenAI::Models::Responses::ResponseItem::AdditionalTools::role,
56
+ tools: ::Array[OpenAI::Models::Responses::tool],
57
+ ?type: :additional_tools
58
+ ) -> void
59
+
60
+ def to_hash: -> {
61
+ id: String,
62
+ role: OpenAI::Models::Responses::ResponseItem::AdditionalTools::role,
63
+ tools: ::Array[OpenAI::Models::Responses::tool],
64
+ type: :additional_tools
65
+ }
66
+
67
+ type role =
68
+ :unknown
69
+ | :user
70
+ | :assistant
71
+ | :system
72
+ | :critic
73
+ | :discriminator
74
+ | :developer
75
+ | :tool
76
+
77
+ module Role
78
+ extend OpenAI::Internal::Type::Enum
79
+
80
+ UNKNOWN: :unknown
81
+ USER: :user
82
+ ASSISTANT: :assistant
83
+ SYSTEM: :system
84
+ CRITIC: :critic
85
+ DISCRIMINATOR: :discriminator
86
+ DEVELOPER: :developer
87
+ TOOL: :tool
88
+
89
+ def self?.values: -> ::Array[OpenAI::Models::Responses::ResponseItem::AdditionalTools::role]
90
+ end
91
+ end
92
+
35
93
  type image_generation_call =
36
94
  {
37
95
  id: String,
@@ -12,6 +12,7 @@ module OpenAI
12
12
  | OpenAI::Responses::ResponseReasoningItem
13
13
  | OpenAI::Responses::ResponseToolSearchCall
14
14
  | OpenAI::Responses::ResponseToolSearchOutputItem
15
+ | OpenAI::Responses::ResponseOutputItem::AdditionalTools
15
16
  | OpenAI::Responses::ResponseCompactionItem
16
17
  | OpenAI::Responses::ResponseOutputItem::ImageGenerationCall
17
18
  | OpenAI::Responses::ResponseCodeInterpreterToolCall
@@ -31,6 +32,63 @@ module OpenAI
31
32
  module ResponseOutputItem
32
33
  extend OpenAI::Internal::Type::Union
33
34
 
35
+ type additional_tools =
36
+ {
37
+ id: String,
38
+ role: OpenAI::Models::Responses::ResponseOutputItem::AdditionalTools::role,
39
+ tools: ::Array[OpenAI::Models::Responses::tool],
40
+ type: :additional_tools
41
+ }
42
+
43
+ class AdditionalTools < OpenAI::Internal::Type::BaseModel
44
+ attr_accessor id: String
45
+
46
+ attr_accessor role: OpenAI::Models::Responses::ResponseOutputItem::AdditionalTools::role
47
+
48
+ attr_accessor tools: ::Array[OpenAI::Models::Responses::tool]
49
+
50
+ attr_accessor type: :additional_tools
51
+
52
+ def initialize: (
53
+ id: String,
54
+ role: OpenAI::Models::Responses::ResponseOutputItem::AdditionalTools::role,
55
+ tools: ::Array[OpenAI::Models::Responses::tool],
56
+ ?type: :additional_tools
57
+ ) -> void
58
+
59
+ def to_hash: -> {
60
+ id: String,
61
+ role: OpenAI::Models::Responses::ResponseOutputItem::AdditionalTools::role,
62
+ tools: ::Array[OpenAI::Models::Responses::tool],
63
+ type: :additional_tools
64
+ }
65
+
66
+ type role =
67
+ :unknown
68
+ | :user
69
+ | :assistant
70
+ | :system
71
+ | :critic
72
+ | :discriminator
73
+ | :developer
74
+ | :tool
75
+
76
+ module Role
77
+ extend OpenAI::Internal::Type::Enum
78
+
79
+ UNKNOWN: :unknown
80
+ USER: :user
81
+ ASSISTANT: :assistant
82
+ SYSTEM: :system
83
+ CRITIC: :critic
84
+ DISCRIMINATOR: :discriminator
85
+ DEVELOPER: :developer
86
+ TOOL: :tool
87
+
88
+ def self?.values: -> ::Array[OpenAI::Models::Responses::ResponseOutputItem::AdditionalTools::role]
89
+ end
90
+ end
91
+
34
92
  type image_generation_call =
35
93
  {
36
94
  id: String,
@@ -14,6 +14,7 @@ module OpenAI
14
14
  max_tool_calls: Integer?,
15
15
  metadata: OpenAI::Models::metadata?,
16
16
  model: OpenAI::Models::responses_model,
17
+ moderation: OpenAI::Responses::ResponsesClientEvent::Moderation?,
17
18
  parallel_tool_calls: bool?,
18
19
  previous_response_id: String?,
19
20
  prompt: OpenAI::Responses::ResponsePrompt?,
@@ -66,6 +67,8 @@ module OpenAI
66
67
  OpenAI::Models::responses_model
67
68
  ) -> OpenAI::Models::responses_model
68
69
 
70
+ attr_accessor moderation: OpenAI::Responses::ResponsesClientEvent::Moderation?
71
+
69
72
  attr_accessor parallel_tool_calls: bool?
70
73
 
71
74
  attr_accessor previous_response_id: String?
@@ -133,6 +136,7 @@ module OpenAI
133
136
  ?max_tool_calls: Integer?,
134
137
  ?metadata: OpenAI::Models::metadata?,
135
138
  ?model: OpenAI::Models::responses_model,
139
+ ?moderation: OpenAI::Responses::ResponsesClientEvent::Moderation?,
136
140
  ?parallel_tool_calls: bool?,
137
141
  ?previous_response_id: String?,
138
142
  ?prompt: OpenAI::Responses::ResponsePrompt?,
@@ -167,6 +171,7 @@ module OpenAI
167
171
  max_tool_calls: Integer?,
168
172
  metadata: OpenAI::Models::metadata?,
169
173
  model: OpenAI::Models::responses_model,
174
+ moderation: OpenAI::Responses::ResponsesClientEvent::Moderation?,
170
175
  parallel_tool_calls: bool?,
171
176
  previous_response_id: String?,
172
177
  prompt: OpenAI::Responses::ResponsePrompt?,
@@ -217,6 +222,16 @@ module OpenAI
217
222
  def self?.variants: -> ::Array[OpenAI::Models::Responses::ResponsesClientEvent::input]
218
223
  end
219
224
 
225
+ type moderation = { model: String }
226
+
227
+ class Moderation < OpenAI::Internal::Type::BaseModel
228
+ attr_accessor model: String
229
+
230
+ def initialize: (model: String) -> void
231
+
232
+ def to_hash: -> { model: String }
233
+ end
234
+
220
235
  type prompt_cache_retention = :in_memory | :"24h"
221
236
 
222
237
  module PromptCacheRetention
@@ -17,6 +17,7 @@ module OpenAI
17
17
  ?max_tokens: Integer?,
18
18
  ?metadata: OpenAI::Models::metadata?,
19
19
  ?modalities: ::Array[OpenAI::Models::Chat::CompletionCreateParams::modality]?,
20
+ ?moderation: OpenAI::Chat::CompletionCreateParams::Moderation?,
20
21
  ?n: Integer?,
21
22
  ?parallel_tool_calls: bool,
22
23
  ?prediction: OpenAI::Chat::ChatCompletionPredictionContent?,
@@ -55,6 +56,7 @@ module OpenAI
55
56
  ?max_tokens: Integer?,
56
57
  ?metadata: OpenAI::Models::metadata?,
57
58
  ?modalities: ::Array[OpenAI::Models::Chat::CompletionCreateParams::modality]?,
59
+ ?moderation: OpenAI::Chat::CompletionCreateParams::Moderation?,
58
60
  ?n: Integer?,
59
61
  ?parallel_tool_calls: bool,
60
62
  ?prediction: OpenAI::Chat::ChatCompletionPredictionContent?,
@@ -8,6 +8,7 @@ module OpenAI
8
8
  ?instructions: String?,
9
9
  ?model: String?,
10
10
  ?parallel_tool_calls: bool?,
11
+ ?personality: OpenAI::Models::Responses::InputTokenCountParams::personality,
11
12
  ?previous_response_id: String?,
12
13
  ?reasoning: OpenAI::Reasoning?,
13
14
  ?text: OpenAI::Responses::InputTokenCountParams::Text?,
@@ -16,6 +16,7 @@ module OpenAI
16
16
  ?max_tool_calls: Integer?,
17
17
  ?metadata: OpenAI::Models::metadata?,
18
18
  ?model: OpenAI::Models::responses_model,
19
+ ?moderation: OpenAI::Responses::ResponseCreateParams::Moderation?,
19
20
  ?parallel_tool_calls: bool?,
20
21
  ?previous_response_id: String?,
21
22
  ?prompt: OpenAI::Responses::ResponsePrompt?,
@@ -48,6 +49,7 @@ module OpenAI
48
49
  ?max_tool_calls: Integer?,
49
50
  ?metadata: OpenAI::Models::metadata?,
50
51
  ?model: OpenAI::Models::responses_model,
52
+ ?moderation: OpenAI::Responses::ResponseCreateParams::Moderation?,
51
53
  ?parallel_tool_calls: bool?,
52
54
  ?previous_response_id: String?,
53
55
  ?prompt: OpenAI::Responses::ResponsePrompt?,
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openai
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.64.0
4
+ version: 0.66.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenAI
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-05-21 00:00:00.000000000 Z
11
+ date: 2026-06-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: base64