openai 0.55.0 → 0.57.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +45 -0
  3. data/README.md +1 -1
  4. data/lib/openai/internal/type/enum.rb +4 -4
  5. data/lib/openai/models/batch_create_params.rb +9 -6
  6. data/lib/openai/models/chat_model.rb +4 -0
  7. data/lib/openai/models/comparison_filter.rb +2 -0
  8. data/lib/openai/models/conversations/conversation_item.rb +4 -1
  9. data/lib/openai/models/conversations/conversation_item_list.rb +2 -2
  10. data/lib/openai/models/responses/compacted_response.rb +2 -2
  11. data/lib/openai/models/responses/computer_action.rb +45 -5
  12. data/lib/openai/models/responses/namespace_tool.rb +13 -1
  13. data/lib/openai/models/responses/response.rb +2 -2
  14. data/lib/openai/models/responses/response_compact_params.rb +12 -0
  15. data/lib/openai/models/responses/response_computer_tool_call.rb +45 -5
  16. data/lib/openai/models/responses/response_computer_tool_call_output_item.rb +31 -22
  17. data/lib/openai/models/responses/response_custom_tool_call_item.rb +53 -0
  18. data/lib/openai/models/responses/response_custom_tool_call_output_item.rb +53 -0
  19. data/lib/openai/models/responses/response_function_tool_call_item.rb +31 -1
  20. data/lib/openai/models/responses/response_function_tool_call_output_item.rb +14 -6
  21. data/lib/openai/models/responses/response_input_message_item.rb +8 -20
  22. data/lib/openai/models/responses/response_item.rb +16 -1
  23. data/lib/openai/models/responses/response_item_list.rb +2 -2
  24. data/lib/openai/models/responses/response_output_item.rb +120 -1
  25. data/lib/openai/models/responses/response_output_item_added_event.rb +2 -2
  26. data/lib/openai/models/responses/response_output_item_done_event.rb +2 -2
  27. data/lib/openai/resources/conversations/items.rb +2 -2
  28. data/lib/openai/resources/responses/input_items.rb +1 -1
  29. data/lib/openai/version.rb +1 -1
  30. data/lib/openai.rb +4 -2
  31. data/rbi/openai/models/batch_create_params.rbi +17 -9
  32. data/rbi/openai/models/chat_model.rbi +6 -0
  33. data/rbi/openai/models/comparison_filter.rbi +2 -0
  34. data/rbi/openai/models/conversations/conversation_item.rbi +1 -0
  35. data/rbi/openai/models/conversations/conversation_item_list.rbi +1 -0
  36. data/rbi/openai/models/responses/compacted_response.rbi +6 -1
  37. data/rbi/openai/models/responses/computer_action.rbi +71 -11
  38. data/rbi/openai/models/responses/namespace_tool.rbi +11 -0
  39. data/rbi/openai/models/responses/response.rbi +6 -1
  40. data/rbi/openai/models/responses/response_compact_params.rbi +20 -0
  41. data/rbi/openai/models/responses/response_computer_tool_call.rbi +71 -11
  42. data/rbi/openai/models/responses/response_computer_tool_call_output_item.rbi +71 -65
  43. data/rbi/openai/models/responses/response_custom_tool_call_item.rbi +111 -0
  44. data/rbi/openai/models/responses/response_custom_tool_call_output_item.rbi +111 -0
  45. data/rbi/openai/models/responses/response_function_tool_call_item.rbi +81 -3
  46. data/rbi/openai/models/responses/response_function_tool_call_output_item.rbi +19 -18
  47. data/rbi/openai/models/responses/response_input_message_item.rbi +8 -49
  48. data/rbi/openai/models/responses/response_item.rbi +5 -1
  49. data/rbi/openai/models/responses/response_item_list.rbi +5 -1
  50. data/rbi/openai/models/responses/response_output_item.rbi +186 -1
  51. data/rbi/openai/models/responses/response_output_item_added_event.rbi +6 -1
  52. data/rbi/openai/models/responses/response_output_item_done_event.rbi +6 -1
  53. data/rbi/openai/resources/batches.rbi +4 -3
  54. data/sig/openai/models/batch_create_params.rbs +2 -0
  55. data/sig/openai/models/chat_model.rbs +8 -0
  56. data/sig/openai/models/comparison_filter.rbs +3 -1
  57. data/sig/openai/models/conversations/conversation_item.rbs +1 -0
  58. data/sig/openai/models/responses/computer_action.rbs +53 -11
  59. data/sig/openai/models/responses/namespace_tool.rbs +7 -0
  60. data/sig/openai/models/responses/response_compact_params.rbs +8 -0
  61. data/sig/openai/models/responses/response_computer_tool_call.rbs +53 -11
  62. data/sig/openai/models/responses/response_computer_tool_call_output_item.rbs +23 -19
  63. data/sig/openai/models/responses/response_custom_tool_call_item.rbs +52 -0
  64. data/sig/openai/models/responses/response_custom_tool_call_output_item.rbs +52 -0
  65. data/sig/openai/models/responses/response_function_tool_call_item.rbs +38 -3
  66. data/sig/openai/models/responses/response_function_tool_call_output_item.rbs +10 -7
  67. data/sig/openai/models/responses/response_input_message_item.rbs +7 -21
  68. data/sig/openai/models/responses/response_item.rbs +4 -0
  69. data/sig/openai/models/responses/response_output_item.rbs +86 -0
  70. metadata +8 -2
@@ -16,19 +16,97 @@ module OpenAI
16
16
  sig { returns(String) }
17
17
  attr_accessor :id
18
18
 
19
+ # The status of the item. One of `in_progress`, `completed`, or `incomplete`.
20
+ # Populated when items are returned via API.
21
+ sig do
22
+ returns(
23
+ OpenAI::Responses::ResponseFunctionToolCallItem::Status::TaggedSymbol
24
+ )
25
+ end
26
+ attr_accessor :status
27
+
28
+ # The identifier of the actor that created the item.
29
+ sig { returns(T.nilable(String)) }
30
+ attr_reader :created_by
31
+
32
+ sig { params(created_by: String).void }
33
+ attr_writer :created_by
34
+
19
35
  # A tool call to run a function. See the
20
36
  # [function calling guide](https://platform.openai.com/docs/guides/function-calling)
21
37
  # for more information.
22
- sig { params(id: String).returns(T.attached_class) }
38
+ sig do
39
+ params(
40
+ id: String,
41
+ status:
42
+ OpenAI::Responses::ResponseFunctionToolCallItem::Status::OrSymbol,
43
+ created_by: String
44
+ ).returns(T.attached_class)
45
+ end
23
46
  def self.new(
24
47
  # The unique ID of the function tool call.
25
- id:
48
+ id:,
49
+ # The status of the item. One of `in_progress`, `completed`, or `incomplete`.
50
+ # Populated when items are returned via API.
51
+ status:,
52
+ # The identifier of the actor that created the item.
53
+ created_by: nil
26
54
  )
27
55
  end
28
56
 
29
- sig { override.returns({ id: String }) }
57
+ sig do
58
+ override.returns(
59
+ {
60
+ id: String,
61
+ status:
62
+ OpenAI::Responses::ResponseFunctionToolCallItem::Status::TaggedSymbol,
63
+ created_by: String
64
+ }
65
+ )
66
+ end
30
67
  def to_hash
31
68
  end
69
+
70
+ # The status of the item. One of `in_progress`, `completed`, or `incomplete`.
71
+ # Populated when items are returned via API.
72
+ module Status
73
+ extend OpenAI::Internal::Type::Enum
74
+
75
+ TaggedSymbol =
76
+ T.type_alias do
77
+ T.all(
78
+ Symbol,
79
+ OpenAI::Responses::ResponseFunctionToolCallItem::Status
80
+ )
81
+ end
82
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
83
+
84
+ IN_PROGRESS =
85
+ T.let(
86
+ :in_progress,
87
+ OpenAI::Responses::ResponseFunctionToolCallItem::Status::TaggedSymbol
88
+ )
89
+ COMPLETED =
90
+ T.let(
91
+ :completed,
92
+ OpenAI::Responses::ResponseFunctionToolCallItem::Status::TaggedSymbol
93
+ )
94
+ INCOMPLETE =
95
+ T.let(
96
+ :incomplete,
97
+ OpenAI::Responses::ResponseFunctionToolCallItem::Status::TaggedSymbol
98
+ )
99
+
100
+ sig do
101
+ override.returns(
102
+ T::Array[
103
+ OpenAI::Responses::ResponseFunctionToolCallItem::Status::TaggedSymbol
104
+ ]
105
+ )
106
+ end
107
+ def self.values
108
+ end
109
+ end
32
110
  end
33
111
  end
34
112
  end
@@ -29,28 +29,25 @@ module OpenAI
29
29
  end
30
30
  attr_accessor :output
31
31
 
32
- # The type of the function tool call output. Always `function_call_output`.
33
- sig { returns(Symbol) }
34
- attr_accessor :type
35
-
36
32
  # The status of the item. One of `in_progress`, `completed`, or `incomplete`.
37
33
  # Populated when items are returned via API.
38
34
  sig do
39
35
  returns(
40
- T.nilable(
41
- OpenAI::Responses::ResponseFunctionToolCallOutputItem::Status::TaggedSymbol
42
- )
36
+ OpenAI::Responses::ResponseFunctionToolCallOutputItem::Status::TaggedSymbol
43
37
  )
44
38
  end
45
- attr_reader :status
39
+ attr_accessor :status
46
40
 
47
- sig do
48
- params(
49
- status:
50
- OpenAI::Responses::ResponseFunctionToolCallOutputItem::Status::OrSymbol
51
- ).void
52
- end
53
- attr_writer :status
41
+ # The type of the function tool call output. Always `function_call_output`.
42
+ sig { returns(Symbol) }
43
+ attr_accessor :type
44
+
45
+ # The identifier of the actor that created the item.
46
+ sig { returns(T.nilable(String)) }
47
+ attr_reader :created_by
48
+
49
+ sig { params(created_by: String).void }
50
+ attr_writer :created_by
54
51
 
55
52
  sig do
56
53
  params(
@@ -60,6 +57,7 @@ module OpenAI
60
57
  OpenAI::Responses::ResponseFunctionToolCallOutputItem::Output::Variants,
61
58
  status:
62
59
  OpenAI::Responses::ResponseFunctionToolCallOutputItem::Status::OrSymbol,
60
+ created_by: String,
63
61
  type: Symbol
64
62
  ).returns(T.attached_class)
65
63
  end
@@ -73,7 +71,9 @@ module OpenAI
73
71
  output:,
74
72
  # The status of the item. One of `in_progress`, `completed`, or `incomplete`.
75
73
  # Populated when items are returned via API.
76
- status: nil,
74
+ status:,
75
+ # The identifier of the actor that created the item.
76
+ created_by: nil,
77
77
  # The type of the function tool call output. Always `function_call_output`.
78
78
  type: :function_call_output
79
79
  )
@@ -86,9 +86,10 @@ module OpenAI
86
86
  call_id: String,
87
87
  output:
88
88
  OpenAI::Responses::ResponseFunctionToolCallOutputItem::Output::Variants,
89
- type: Symbol,
90
89
  status:
91
- OpenAI::Responses::ResponseFunctionToolCallOutputItem::Status::TaggedSymbol
90
+ OpenAI::Responses::ResponseFunctionToolCallOutputItem::Status::TaggedSymbol,
91
+ type: Symbol,
92
+ created_by: String
92
93
  }
93
94
  )
94
95
  end
@@ -31,6 +31,10 @@ module OpenAI
31
31
  end
32
32
  attr_accessor :role
33
33
 
34
+ # The type of the message input. Always set to `message`.
35
+ sig { returns(Symbol) }
36
+ attr_accessor :type
37
+
34
38
  # The status of item. One of `in_progress`, `completed`, or `incomplete`.
35
39
  # Populated when items are returned via API.
36
40
  sig do
@@ -50,23 +54,6 @@ module OpenAI
50
54
  end
51
55
  attr_writer :status
52
56
 
53
- # The type of the message input. Always set to `message`.
54
- sig do
55
- returns(
56
- T.nilable(
57
- OpenAI::Responses::ResponseInputMessageItem::Type::TaggedSymbol
58
- )
59
- )
60
- end
61
- attr_reader :type
62
-
63
- sig do
64
- params(
65
- type: OpenAI::Responses::ResponseInputMessageItem::Type::OrSymbol
66
- ).void
67
- end
68
- attr_writer :type
69
-
70
57
  sig do
71
58
  params(
72
59
  id: String,
@@ -81,7 +68,7 @@ module OpenAI
81
68
  role: OpenAI::Responses::ResponseInputMessageItem::Role::OrSymbol,
82
69
  status:
83
70
  OpenAI::Responses::ResponseInputMessageItem::Status::OrSymbol,
84
- type: OpenAI::Responses::ResponseInputMessageItem::Type::OrSymbol
71
+ type: Symbol
85
72
  ).returns(T.attached_class)
86
73
  end
87
74
  def self.new(
@@ -96,7 +83,7 @@ module OpenAI
96
83
  # Populated when items are returned via API.
97
84
  status: nil,
98
85
  # The type of the message input. Always set to `message`.
99
- type: nil
86
+ type: :message
100
87
  )
101
88
  end
102
89
 
@@ -108,10 +95,9 @@ module OpenAI
108
95
  T::Array[OpenAI::Responses::ResponseInputContent::Variants],
109
96
  role:
110
97
  OpenAI::Responses::ResponseInputMessageItem::Role::TaggedSymbol,
98
+ type: Symbol,
111
99
  status:
112
- OpenAI::Responses::ResponseInputMessageItem::Status::TaggedSymbol,
113
- type:
114
- OpenAI::Responses::ResponseInputMessageItem::Type::TaggedSymbol
100
+ OpenAI::Responses::ResponseInputMessageItem::Status::TaggedSymbol
115
101
  }
116
102
  )
117
103
  end
@@ -192,33 +178,6 @@ module OpenAI
192
178
  def self.values
193
179
  end
194
180
  end
195
-
196
- # The type of the message input. Always set to `message`.
197
- module Type
198
- extend OpenAI::Internal::Type::Enum
199
-
200
- TaggedSymbol =
201
- T.type_alias do
202
- T.all(Symbol, OpenAI::Responses::ResponseInputMessageItem::Type)
203
- end
204
- OrSymbol = T.type_alias { T.any(Symbol, String) }
205
-
206
- MESSAGE =
207
- T.let(
208
- :message,
209
- OpenAI::Responses::ResponseInputMessageItem::Type::TaggedSymbol
210
- )
211
-
212
- sig do
213
- override.returns(
214
- T::Array[
215
- OpenAI::Responses::ResponseInputMessageItem::Type::TaggedSymbol
216
- ]
217
- )
218
- end
219
- def self.values
220
- end
221
- end
222
181
  end
223
182
  end
224
183
  end
@@ -20,6 +20,8 @@ module OpenAI
20
20
  OpenAI::Responses::ResponseFunctionToolCallOutputItem,
21
21
  OpenAI::Responses::ResponseToolSearchCall,
22
22
  OpenAI::Responses::ResponseToolSearchOutputItem,
23
+ OpenAI::Responses::ResponseReasoningItem,
24
+ OpenAI::Responses::ResponseCompactionItem,
23
25
  OpenAI::Responses::ResponseItem::ImageGenerationCall,
24
26
  OpenAI::Responses::ResponseCodeInterpreterToolCall,
25
27
  OpenAI::Responses::ResponseItem::LocalShellCall,
@@ -31,7 +33,9 @@ module OpenAI
31
33
  OpenAI::Responses::ResponseItem::McpListTools,
32
34
  OpenAI::Responses::ResponseItem::McpApprovalRequest,
33
35
  OpenAI::Responses::ResponseItem::McpApprovalResponse,
34
- OpenAI::Responses::ResponseItem::McpCall
36
+ OpenAI::Responses::ResponseItem::McpCall,
37
+ OpenAI::Responses::ResponseCustomToolCallItem,
38
+ OpenAI::Responses::ResponseCustomToolCallOutputItem
35
39
  )
36
40
  end
37
41
 
@@ -50,6 +50,8 @@ module OpenAI
50
50
  OpenAI::Responses::ResponseFunctionToolCallOutputItem::OrHash,
51
51
  OpenAI::Responses::ResponseToolSearchCall::OrHash,
52
52
  OpenAI::Responses::ResponseToolSearchOutputItem::OrHash,
53
+ OpenAI::Responses::ResponseReasoningItem::OrHash,
54
+ OpenAI::Responses::ResponseCompactionItem::OrHash,
53
55
  OpenAI::Responses::ResponseItem::ImageGenerationCall::OrHash,
54
56
  OpenAI::Responses::ResponseCodeInterpreterToolCall::OrHash,
55
57
  OpenAI::Responses::ResponseItem::LocalShellCall::OrHash,
@@ -61,7 +63,9 @@ module OpenAI
61
63
  OpenAI::Responses::ResponseItem::McpListTools::OrHash,
62
64
  OpenAI::Responses::ResponseItem::McpApprovalRequest::OrHash,
63
65
  OpenAI::Responses::ResponseItem::McpApprovalResponse::OrHash,
64
- OpenAI::Responses::ResponseItem::McpCall::OrHash
66
+ OpenAI::Responses::ResponseItem::McpCall::OrHash,
67
+ OpenAI::Responses::ResponseCustomToolCallItem::OrHash,
68
+ OpenAI::Responses::ResponseCustomToolCallOutputItem::OrHash
65
69
  )
66
70
  ],
67
71
  first_id: String,
@@ -13,8 +13,10 @@ module OpenAI
13
13
  OpenAI::Responses::ResponseOutputMessage,
14
14
  OpenAI::Responses::ResponseFileSearchToolCall,
15
15
  OpenAI::Responses::ResponseFunctionToolCall,
16
+ OpenAI::Responses::ResponseFunctionToolCallOutputItem,
16
17
  OpenAI::Responses::ResponseFunctionWebSearch,
17
18
  OpenAI::Responses::ResponseComputerToolCall,
19
+ OpenAI::Responses::ResponseComputerToolCallOutputItem,
18
20
  OpenAI::Responses::ResponseReasoningItem,
19
21
  OpenAI::Responses::ResponseToolSearchCall,
20
22
  OpenAI::Responses::ResponseToolSearchOutputItem,
@@ -22,6 +24,7 @@ module OpenAI
22
24
  OpenAI::Responses::ResponseOutputItem::ImageGenerationCall,
23
25
  OpenAI::Responses::ResponseCodeInterpreterToolCall,
24
26
  OpenAI::Responses::ResponseOutputItem::LocalShellCall,
27
+ OpenAI::Responses::ResponseOutputItem::LocalShellCallOutput,
25
28
  OpenAI::Responses::ResponseFunctionShellToolCall,
26
29
  OpenAI::Responses::ResponseFunctionShellToolCallOutput,
27
30
  OpenAI::Responses::ResponseApplyPatchToolCall,
@@ -29,7 +32,9 @@ module OpenAI
29
32
  OpenAI::Responses::ResponseOutputItem::McpCall,
30
33
  OpenAI::Responses::ResponseOutputItem::McpListTools,
31
34
  OpenAI::Responses::ResponseOutputItem::McpApprovalRequest,
32
- OpenAI::Responses::ResponseCustomToolCall
35
+ OpenAI::Responses::ResponseOutputItem::McpApprovalResponse,
36
+ OpenAI::Responses::ResponseCustomToolCall,
37
+ OpenAI::Responses::ResponseCustomToolCallOutputItem
33
38
  )
34
39
  end
35
40
 
@@ -348,6 +353,118 @@ module OpenAI
348
353
  end
349
354
  end
350
355
 
356
+ class LocalShellCallOutput < OpenAI::Internal::Type::BaseModel
357
+ OrHash =
358
+ T.type_alias do
359
+ T.any(
360
+ OpenAI::Responses::ResponseOutputItem::LocalShellCallOutput,
361
+ OpenAI::Internal::AnyHash
362
+ )
363
+ end
364
+
365
+ # The unique ID of the local shell tool call generated by the model.
366
+ sig { returns(String) }
367
+ attr_accessor :id
368
+
369
+ # A JSON string of the output of the local shell tool call.
370
+ sig { returns(String) }
371
+ attr_accessor :output
372
+
373
+ # The type of the local shell tool call output. Always `local_shell_call_output`.
374
+ sig { returns(Symbol) }
375
+ attr_accessor :type
376
+
377
+ # The status of the item. One of `in_progress`, `completed`, or `incomplete`.
378
+ sig do
379
+ returns(
380
+ T.nilable(
381
+ OpenAI::Responses::ResponseOutputItem::LocalShellCallOutput::Status::TaggedSymbol
382
+ )
383
+ )
384
+ end
385
+ attr_accessor :status
386
+
387
+ # The output of a local shell tool call.
388
+ sig do
389
+ params(
390
+ id: String,
391
+ output: String,
392
+ status:
393
+ T.nilable(
394
+ OpenAI::Responses::ResponseOutputItem::LocalShellCallOutput::Status::OrSymbol
395
+ ),
396
+ type: Symbol
397
+ ).returns(T.attached_class)
398
+ end
399
+ def self.new(
400
+ # The unique ID of the local shell tool call generated by the model.
401
+ id:,
402
+ # A JSON string of the output of the local shell tool call.
403
+ output:,
404
+ # The status of the item. One of `in_progress`, `completed`, or `incomplete`.
405
+ status: nil,
406
+ # The type of the local shell tool call output. Always `local_shell_call_output`.
407
+ type: :local_shell_call_output
408
+ )
409
+ end
410
+
411
+ sig do
412
+ override.returns(
413
+ {
414
+ id: String,
415
+ output: String,
416
+ type: Symbol,
417
+ status:
418
+ T.nilable(
419
+ OpenAI::Responses::ResponseOutputItem::LocalShellCallOutput::Status::TaggedSymbol
420
+ )
421
+ }
422
+ )
423
+ end
424
+ def to_hash
425
+ end
426
+
427
+ # The status of the item. One of `in_progress`, `completed`, or `incomplete`.
428
+ module Status
429
+ extend OpenAI::Internal::Type::Enum
430
+
431
+ TaggedSymbol =
432
+ T.type_alias do
433
+ T.all(
434
+ Symbol,
435
+ OpenAI::Responses::ResponseOutputItem::LocalShellCallOutput::Status
436
+ )
437
+ end
438
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
439
+
440
+ IN_PROGRESS =
441
+ T.let(
442
+ :in_progress,
443
+ OpenAI::Responses::ResponseOutputItem::LocalShellCallOutput::Status::TaggedSymbol
444
+ )
445
+ COMPLETED =
446
+ T.let(
447
+ :completed,
448
+ OpenAI::Responses::ResponseOutputItem::LocalShellCallOutput::Status::TaggedSymbol
449
+ )
450
+ INCOMPLETE =
451
+ T.let(
452
+ :incomplete,
453
+ OpenAI::Responses::ResponseOutputItem::LocalShellCallOutput::Status::TaggedSymbol
454
+ )
455
+
456
+ sig do
457
+ override.returns(
458
+ T::Array[
459
+ OpenAI::Responses::ResponseOutputItem::LocalShellCallOutput::Status::TaggedSymbol
460
+ ]
461
+ )
462
+ end
463
+ def self.values
464
+ end
465
+ end
466
+ end
467
+
351
468
  class McpCall < OpenAI::Internal::Type::BaseModel
352
469
  OrHash =
353
470
  T.type_alias do
@@ -729,6 +846,74 @@ module OpenAI
729
846
  end
730
847
  end
731
848
 
849
+ class McpApprovalResponse < OpenAI::Internal::Type::BaseModel
850
+ OrHash =
851
+ T.type_alias do
852
+ T.any(
853
+ OpenAI::Responses::ResponseOutputItem::McpApprovalResponse,
854
+ OpenAI::Internal::AnyHash
855
+ )
856
+ end
857
+
858
+ # The unique ID of the approval response
859
+ sig { returns(String) }
860
+ attr_accessor :id
861
+
862
+ # The ID of the approval request being answered.
863
+ sig { returns(String) }
864
+ attr_accessor :approval_request_id
865
+
866
+ # Whether the request was approved.
867
+ sig { returns(T::Boolean) }
868
+ attr_accessor :approve
869
+
870
+ # The type of the item. Always `mcp_approval_response`.
871
+ sig { returns(Symbol) }
872
+ attr_accessor :type
873
+
874
+ # Optional reason for the decision.
875
+ sig { returns(T.nilable(String)) }
876
+ attr_accessor :reason
877
+
878
+ # A response to an MCP approval request.
879
+ sig do
880
+ params(
881
+ id: String,
882
+ approval_request_id: String,
883
+ approve: T::Boolean,
884
+ reason: T.nilable(String),
885
+ type: Symbol
886
+ ).returns(T.attached_class)
887
+ end
888
+ def self.new(
889
+ # The unique ID of the approval response
890
+ id:,
891
+ # The ID of the approval request being answered.
892
+ approval_request_id:,
893
+ # Whether the request was approved.
894
+ approve:,
895
+ # Optional reason for the decision.
896
+ reason: nil,
897
+ # The type of the item. Always `mcp_approval_response`.
898
+ type: :mcp_approval_response
899
+ )
900
+ end
901
+
902
+ sig do
903
+ override.returns(
904
+ {
905
+ id: String,
906
+ approval_request_id: String,
907
+ approve: T::Boolean,
908
+ type: Symbol,
909
+ reason: T.nilable(String)
910
+ }
911
+ )
912
+ end
913
+ def to_hash
914
+ end
915
+ end
916
+
732
917
  sig do
733
918
  override.returns(
734
919
  T::Array[OpenAI::Responses::ResponseOutputItem::Variants]
@@ -36,8 +36,10 @@ module OpenAI
36
36
  OpenAI::Responses::ResponseOutputMessage::OrHash,
37
37
  OpenAI::Responses::ResponseFileSearchToolCall::OrHash,
38
38
  OpenAI::Responses::ResponseFunctionToolCall::OrHash,
39
+ OpenAI::Responses::ResponseFunctionToolCallOutputItem::OrHash,
39
40
  OpenAI::Responses::ResponseFunctionWebSearch::OrHash,
40
41
  OpenAI::Responses::ResponseComputerToolCall::OrHash,
42
+ OpenAI::Responses::ResponseComputerToolCallOutputItem::OrHash,
41
43
  OpenAI::Responses::ResponseReasoningItem::OrHash,
42
44
  OpenAI::Responses::ResponseToolSearchCall::OrHash,
43
45
  OpenAI::Responses::ResponseToolSearchOutputItem::OrHash,
@@ -45,6 +47,7 @@ module OpenAI
45
47
  OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::OrHash,
46
48
  OpenAI::Responses::ResponseCodeInterpreterToolCall::OrHash,
47
49
  OpenAI::Responses::ResponseOutputItem::LocalShellCall::OrHash,
50
+ OpenAI::Responses::ResponseOutputItem::LocalShellCallOutput::OrHash,
48
51
  OpenAI::Responses::ResponseFunctionShellToolCall::OrHash,
49
52
  OpenAI::Responses::ResponseFunctionShellToolCallOutput::OrHash,
50
53
  OpenAI::Responses::ResponseApplyPatchToolCall::OrHash,
@@ -52,7 +55,9 @@ module OpenAI
52
55
  OpenAI::Responses::ResponseOutputItem::McpCall::OrHash,
53
56
  OpenAI::Responses::ResponseOutputItem::McpListTools::OrHash,
54
57
  OpenAI::Responses::ResponseOutputItem::McpApprovalRequest::OrHash,
55
- OpenAI::Responses::ResponseCustomToolCall::OrHash
58
+ OpenAI::Responses::ResponseOutputItem::McpApprovalResponse::OrHash,
59
+ OpenAI::Responses::ResponseCustomToolCall::OrHash,
60
+ OpenAI::Responses::ResponseCustomToolCallOutputItem::OrHash
56
61
  ),
57
62
  output_index: Integer,
58
63
  sequence_number: Integer,
@@ -36,8 +36,10 @@ module OpenAI
36
36
  OpenAI::Responses::ResponseOutputMessage::OrHash,
37
37
  OpenAI::Responses::ResponseFileSearchToolCall::OrHash,
38
38
  OpenAI::Responses::ResponseFunctionToolCall::OrHash,
39
+ OpenAI::Responses::ResponseFunctionToolCallOutputItem::OrHash,
39
40
  OpenAI::Responses::ResponseFunctionWebSearch::OrHash,
40
41
  OpenAI::Responses::ResponseComputerToolCall::OrHash,
42
+ OpenAI::Responses::ResponseComputerToolCallOutputItem::OrHash,
41
43
  OpenAI::Responses::ResponseReasoningItem::OrHash,
42
44
  OpenAI::Responses::ResponseToolSearchCall::OrHash,
43
45
  OpenAI::Responses::ResponseToolSearchOutputItem::OrHash,
@@ -45,6 +47,7 @@ module OpenAI
45
47
  OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::OrHash,
46
48
  OpenAI::Responses::ResponseCodeInterpreterToolCall::OrHash,
47
49
  OpenAI::Responses::ResponseOutputItem::LocalShellCall::OrHash,
50
+ OpenAI::Responses::ResponseOutputItem::LocalShellCallOutput::OrHash,
48
51
  OpenAI::Responses::ResponseFunctionShellToolCall::OrHash,
49
52
  OpenAI::Responses::ResponseFunctionShellToolCallOutput::OrHash,
50
53
  OpenAI::Responses::ResponseApplyPatchToolCall::OrHash,
@@ -52,7 +55,9 @@ module OpenAI
52
55
  OpenAI::Responses::ResponseOutputItem::McpCall::OrHash,
53
56
  OpenAI::Responses::ResponseOutputItem::McpListTools::OrHash,
54
57
  OpenAI::Responses::ResponseOutputItem::McpApprovalRequest::OrHash,
55
- OpenAI::Responses::ResponseCustomToolCall::OrHash
58
+ OpenAI::Responses::ResponseOutputItem::McpApprovalResponse::OrHash,
59
+ OpenAI::Responses::ResponseCustomToolCall::OrHash,
60
+ OpenAI::Responses::ResponseCustomToolCallOutputItem::OrHash
56
61
  ),
57
62
  output_index: Integer,
58
63
  sequence_number: Integer,
@@ -23,9 +23,10 @@ module OpenAI
23
23
  completion_window:,
24
24
  # The endpoint to be used for all requests in the batch. Currently
25
25
  # `/v1/responses`, `/v1/chat/completions`, `/v1/embeddings`, `/v1/completions`,
26
- # `/v1/moderations`, `/v1/images/generations`, and `/v1/images/edits` are
27
- # supported. Note that `/v1/embeddings` batches are also restricted to a maximum
28
- # of 50,000 embedding inputs across all requests in the batch.
26
+ # `/v1/moderations`, `/v1/images/generations`, `/v1/images/edits`, and
27
+ # `/v1/videos` are supported. Note that `/v1/embeddings` batches are also
28
+ # restricted to a maximum of 50,000 embedding inputs across all requests in the
29
+ # batch.
29
30
  endpoint:,
30
31
  # The ID of an uploaded file that contains requests for the new batch.
31
32
  #
@@ -64,6 +64,7 @@ module OpenAI
64
64
  | :"/v1/moderations"
65
65
  | :"/v1/images/generations"
66
66
  | :"/v1/images/edits"
67
+ | :"/v1/videos"
67
68
 
68
69
  module Endpoint
69
70
  extend OpenAI::Internal::Type::Enum
@@ -75,6 +76,7 @@ module OpenAI
75
76
  V1_MODERATIONS: :"/v1/moderations"
76
77
  V1_IMAGES_GENERATIONS: :"/v1/images/generations"
77
78
  V1_IMAGES_EDITS: :"/v1/images/edits"
79
+ V1_VIDEOS: :"/v1/videos"
78
80
 
79
81
  def self?.values: -> ::Array[OpenAI::Models::BatchCreateParams::endpoint]
80
82
  end
@@ -2,6 +2,10 @@ module OpenAI
2
2
  module Models
3
3
  type chat_model =
4
4
  :"gpt-5.4"
5
+ | :"gpt-5.4-mini"
6
+ | :"gpt-5.4-nano"
7
+ | :"gpt-5.4-mini-2026-03-17"
8
+ | :"gpt-5.4-nano-2026-03-17"
5
9
  | :"gpt-5.3-chat-latest"
6
10
  | :"gpt-5.2"
7
11
  | :"gpt-5.2-2025-12-11"
@@ -80,6 +84,10 @@ module OpenAI
80
84
  extend OpenAI::Internal::Type::Enum
81
85
 
82
86
  GPT_5_4: :"gpt-5.4"
87
+ GPT_5_4_MINI: :"gpt-5.4-mini"
88
+ GPT_5_4_NANO: :"gpt-5.4-nano"
89
+ GPT_5_4_MINI_2026_03_17: :"gpt-5.4-mini-2026-03-17"
90
+ GPT_5_4_NANO_2026_03_17: :"gpt-5.4-nano-2026-03-17"
83
91
  GPT_5_3_CHAT_LATEST: :"gpt-5.3-chat-latest"
84
92
  GPT_5_2: :"gpt-5.2"
85
93
  GPT_5_2_2025_12_11: :"gpt-5.2-2025-12-11"
@@ -26,7 +26,7 @@ module OpenAI
26
26
  value: OpenAI::Models::ComparisonFilter::value
27
27
  }
28
28
 
29
- type type_ = :eq | :ne | :gt | :gte | :lt | :lte
29
+ type type_ = :eq | :ne | :gt | :gte | :lt | :lte | :in | :nin
30
30
 
31
31
  module Type
32
32
  extend OpenAI::Internal::Type::Enum
@@ -37,6 +37,8 @@ module OpenAI
37
37
  GTE: :gte
38
38
  LT: :lt
39
39
  LTE: :lte
40
+ IN: :in
41
+ NIN: :nin
40
42
 
41
43
  def self?.values: -> ::Array[OpenAI::Models::ComparisonFilter::type_]
42
44
  end
@@ -15,6 +15,7 @@ module OpenAI
15
15
  | OpenAI::Responses::ResponseToolSearchCall
16
16
  | OpenAI::Responses::ResponseToolSearchOutputItem
17
17
  | OpenAI::Responses::ResponseReasoningItem
18
+ | OpenAI::Responses::ResponseCompactionItem
18
19
  | OpenAI::Responses::ResponseCodeInterpreterToolCall
19
20
  | OpenAI::Conversations::ConversationItem::LocalShellCall
20
21
  | OpenAI::Conversations::ConversationItem::LocalShellCallOutput