openai 0.56.0 → 0.58.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 (89) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +60 -0
  3. data/README.md +98 -1
  4. data/lib/openai/auth/subject_token_provider.rb +15 -0
  5. data/lib/openai/auth/subject_token_providers/azure_managed_identity_token_provider.rb +88 -0
  6. data/lib/openai/auth/subject_token_providers/gcp_id_token_provider.rb +66 -0
  7. data/lib/openai/auth/subject_token_providers/k8s_service_account_token_provider.rb +37 -0
  8. data/lib/openai/auth/token_type.rb +10 -0
  9. data/lib/openai/auth/workload_identity.rb +23 -0
  10. data/lib/openai/auth/workload_identity_auth.rb +176 -0
  11. data/lib/openai/client.rb +59 -4
  12. data/lib/openai/errors.rb +39 -0
  13. data/lib/openai/internal/util.rb +22 -7
  14. data/lib/openai/models/conversations/conversation_item.rb +4 -1
  15. data/lib/openai/models/conversations/conversation_item_list.rb +2 -2
  16. data/lib/openai/models/conversations/message.rb +28 -1
  17. data/lib/openai/models/oauth_error_code.rb +29 -0
  18. data/lib/openai/models/realtime/realtime_session_create_request.rb +4 -3
  19. data/lib/openai/models/realtime/realtime_session_create_response.rb +7 -5
  20. data/lib/openai/models/realtime/realtime_tracing_config.rb +3 -2
  21. data/lib/openai/models/responses/compacted_response.rb +2 -2
  22. data/lib/openai/models/responses/computer_action.rb +45 -5
  23. data/lib/openai/models/responses/response.rb +2 -2
  24. data/lib/openai/models/responses/response_computer_tool_call.rb +45 -5
  25. data/lib/openai/models/responses/response_computer_tool_call_output_item.rb +31 -22
  26. data/lib/openai/models/responses/response_custom_tool_call_item.rb +53 -0
  27. data/lib/openai/models/responses/response_custom_tool_call_output_item.rb +53 -0
  28. data/lib/openai/models/responses/response_function_tool_call_item.rb +31 -1
  29. data/lib/openai/models/responses/response_function_tool_call_output_item.rb +14 -6
  30. data/lib/openai/models/responses/response_input_message_item.rb +8 -20
  31. data/lib/openai/models/responses/response_item.rb +16 -1
  32. data/lib/openai/models/responses/response_item_list.rb +2 -2
  33. data/lib/openai/models/responses/response_output_item.rb +120 -1
  34. data/lib/openai/models/responses/response_output_item_added_event.rb +2 -2
  35. data/lib/openai/models/responses/response_output_item_done_event.rb +2 -2
  36. data/lib/openai/models/vector_stores/file_batch_create_params.rb +9 -5
  37. data/lib/openai/models/vector_stores/file_create_params.rb +3 -1
  38. data/lib/openai/models.rb +2 -0
  39. data/lib/openai/resources/conversations/items.rb +2 -2
  40. data/lib/openai/resources/realtime/calls.rb +1 -1
  41. data/lib/openai/resources/responses/input_items.rb +1 -1
  42. data/lib/openai/version.rb +1 -1
  43. data/lib/openai.rb +12 -2
  44. data/rbi/openai/auth.rbi +55 -0
  45. data/rbi/openai/internal/util.rbi +8 -0
  46. data/rbi/openai/models/conversations/conversation_item.rbi +1 -0
  47. data/rbi/openai/models/conversations/conversation_item_list.rbi +1 -0
  48. data/rbi/openai/models/conversations/message.rbi +53 -1
  49. data/rbi/openai/models/oauth_error_code.rbi +24 -0
  50. data/rbi/openai/models/realtime/realtime_session_create_request.rbi +6 -4
  51. data/rbi/openai/models/realtime/realtime_session_create_response.rbi +9 -6
  52. data/rbi/openai/models/realtime/realtime_tracing_config.rbi +3 -2
  53. data/rbi/openai/models/responses/compacted_response.rbi +6 -1
  54. data/rbi/openai/models/responses/computer_action.rbi +71 -11
  55. data/rbi/openai/models/responses/response.rbi +6 -1
  56. data/rbi/openai/models/responses/response_computer_tool_call.rbi +71 -11
  57. data/rbi/openai/models/responses/response_computer_tool_call_output_item.rbi +71 -65
  58. data/rbi/openai/models/responses/response_custom_tool_call_item.rbi +111 -0
  59. data/rbi/openai/models/responses/response_custom_tool_call_output_item.rbi +111 -0
  60. data/rbi/openai/models/responses/response_function_tool_call_item.rbi +81 -3
  61. data/rbi/openai/models/responses/response_function_tool_call_output_item.rbi +19 -18
  62. data/rbi/openai/models/responses/response_input_message_item.rbi +8 -49
  63. data/rbi/openai/models/responses/response_item.rbi +5 -1
  64. data/rbi/openai/models/responses/response_item_list.rbi +5 -1
  65. data/rbi/openai/models/responses/response_output_item.rbi +186 -1
  66. data/rbi/openai/models/responses/response_output_item_added_event.rbi +6 -1
  67. data/rbi/openai/models/responses/response_output_item_done_event.rbi +6 -1
  68. data/rbi/openai/models/vector_stores/file_batch_create_params.rbi +18 -10
  69. data/rbi/openai/models/vector_stores/file_create_params.rbi +6 -2
  70. data/rbi/openai/models.rbi +2 -0
  71. data/rbi/openai/resources/realtime/calls.rbi +3 -2
  72. data/rbi/openai/resources/vector_stores/file_batches.rbi +6 -4
  73. data/rbi/openai/resources/vector_stores/files.rbi +3 -1
  74. data/sig/openai/internal/util.rbs +4 -0
  75. data/sig/openai/models/conversations/conversation_item.rbs +1 -0
  76. data/sig/openai/models/conversations/message.rbs +18 -2
  77. data/sig/openai/models/oauth_error_code.rbs +14 -0
  78. data/sig/openai/models/responses/computer_action.rbs +53 -11
  79. data/sig/openai/models/responses/response_computer_tool_call.rbs +53 -11
  80. data/sig/openai/models/responses/response_computer_tool_call_output_item.rbs +23 -19
  81. data/sig/openai/models/responses/response_custom_tool_call_item.rbs +52 -0
  82. data/sig/openai/models/responses/response_custom_tool_call_output_item.rbs +52 -0
  83. data/sig/openai/models/responses/response_function_tool_call_item.rbs +38 -3
  84. data/sig/openai/models/responses/response_function_tool_call_output_item.rbs +10 -7
  85. data/sig/openai/models/responses/response_input_message_item.rbs +7 -21
  86. data/sig/openai/models/responses/response_item.rbs +4 -0
  87. data/sig/openai/models/responses/response_output_item.rbs +86 -0
  88. data/sig/openai/models.rbs +2 -0
  89. metadata +19 -2
@@ -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,
@@ -63,8 +63,9 @@ module OpenAI
63
63
  # A list of [File](https://platform.openai.com/docs/api-reference/files) IDs that
64
64
  # the vector store should use. Useful for tools like `file_search` that can access
65
65
  # files. If `attributes` or `chunking_strategy` are provided, they will be applied
66
- # to all files in the batch. The maximum batch size is 2000 files. Mutually
67
- # exclusive with `files`.
66
+ # to all files in the batch. The maximum batch size is 2000 files. This endpoint
67
+ # is recommended for multi-file ingestion and helps reduce per-vector-store write
68
+ # request pressure. Mutually exclusive with `files`.
68
69
  sig { returns(T.nilable(T::Array[String])) }
69
70
  attr_reader :file_ids
70
71
 
@@ -74,8 +75,9 @@ module OpenAI
74
75
  # A list of objects that each include a `file_id` plus optional `attributes` or
75
76
  # `chunking_strategy`. Use this when you need to override metadata for specific
76
77
  # files. The global `attributes` or `chunking_strategy` will be ignored and must
77
- # be specified for each file. The maximum batch size is 2000 files. Mutually
78
- # exclusive with `file_ids`.
78
+ # be specified for each file. The maximum batch size is 2000 files. This endpoint
79
+ # is recommended for multi-file ingestion and helps reduce per-vector-store write
80
+ # request pressure. Mutually exclusive with `file_ids`.
79
81
  sig do
80
82
  returns(
81
83
  T.nilable(
@@ -132,14 +134,16 @@ module OpenAI
132
134
  # A list of [File](https://platform.openai.com/docs/api-reference/files) IDs that
133
135
  # the vector store should use. Useful for tools like `file_search` that can access
134
136
  # files. If `attributes` or `chunking_strategy` are provided, they will be applied
135
- # to all files in the batch. The maximum batch size is 2000 files. Mutually
136
- # exclusive with `files`.
137
+ # to all files in the batch. The maximum batch size is 2000 files. This endpoint
138
+ # is recommended for multi-file ingestion and helps reduce per-vector-store write
139
+ # request pressure. Mutually exclusive with `files`.
137
140
  file_ids: nil,
138
141
  # A list of objects that each include a `file_id` plus optional `attributes` or
139
142
  # `chunking_strategy`. Use this when you need to override metadata for specific
140
143
  # files. The global `attributes` or `chunking_strategy` will be ignored and must
141
- # be specified for each file. The maximum batch size is 2000 files. Mutually
142
- # exclusive with `file_ids`.
144
+ # be specified for each file. The maximum batch size is 2000 files. This endpoint
145
+ # is recommended for multi-file ingestion and helps reduce per-vector-store write
146
+ # request pressure. Mutually exclusive with `file_ids`.
143
147
  files: nil,
144
148
  request_options: {}
145
149
  )
@@ -198,7 +202,9 @@ module OpenAI
198
202
 
199
203
  # A [File](https://platform.openai.com/docs/api-reference/files) ID that the
200
204
  # vector store should use. Useful for tools like `file_search` that can access
201
- # files.
205
+ # files. For multi-file ingestion, we recommend
206
+ # [`file_batches`](https://platform.openai.com/docs/api-reference/vector-stores-file-batches/createBatch)
207
+ # to minimize per-vector-store write requests.
202
208
  sig { returns(String) }
203
209
  attr_accessor :file_id
204
210
 
@@ -264,7 +270,9 @@ module OpenAI
264
270
  def self.new(
265
271
  # A [File](https://platform.openai.com/docs/api-reference/files) ID that the
266
272
  # vector store should use. Useful for tools like `file_search` that can access
267
- # files.
273
+ # files. For multi-file ingestion, we recommend
274
+ # [`file_batches`](https://platform.openai.com/docs/api-reference/vector-stores-file-batches/createBatch)
275
+ # to minimize per-vector-store write requests.
268
276
  file_id:,
269
277
  # Set of 16 key-value pairs that can be attached to an object. This can be useful
270
278
  # for storing additional information about the object in a structured format, and
@@ -20,7 +20,9 @@ module OpenAI
20
20
 
21
21
  # A [File](https://platform.openai.com/docs/api-reference/files) ID that the
22
22
  # vector store should use. Useful for tools like `file_search` that can access
23
- # files.
23
+ # files. For multi-file ingestion, we recommend
24
+ # [`file_batches`](https://platform.openai.com/docs/api-reference/vector-stores-file-batches/createBatch)
25
+ # to minimize per-vector-store write requests.
24
26
  sig { returns(String) }
25
27
  attr_accessor :file_id
26
28
 
@@ -89,7 +91,9 @@ module OpenAI
89
91
  vector_store_id:,
90
92
  # A [File](https://platform.openai.com/docs/api-reference/files) ID that the
91
93
  # vector store should use. Useful for tools like `file_search` that can access
92
- # files.
94
+ # files. For multi-file ingestion, we recommend
95
+ # [`file_batches`](https://platform.openai.com/docs/api-reference/vector-stores-file-batches/createBatch)
96
+ # to minimize per-vector-store write requests.
93
97
  file_id:,
94
98
  # Set of 16 key-value pairs that can be attached to an object. This can be useful
95
99
  # for storing additional information about the object in a structured format, and
@@ -169,6 +169,8 @@ module OpenAI
169
169
 
170
170
  ModerationTextInput = OpenAI::Models::ModerationTextInput
171
171
 
172
+ OAuthErrorCode = OpenAI::Models::OAuthErrorCode
173
+
172
174
  OtherFileChunkingStrategyObject =
173
175
  OpenAI::Models::OtherFileChunkingStrategyObject
174
176
 
@@ -99,8 +99,9 @@ module OpenAI
99
99
  # Tools available to the model.
100
100
  tools: nil,
101
101
  # Realtime API can write session traces to the
102
- # [Traces Dashboard](/logs?api=traces). Set to null to disable tracing. Once
103
- # tracing is enabled for a session, the configuration cannot be modified.
102
+ # [Traces Dashboard](https://platform.openai.com/logs?api=traces). Set to null to
103
+ # disable tracing. Once tracing is enabled for a session, the configuration cannot
104
+ # be modified.
104
105
  #
105
106
  # `auto` will create a trace for the session with default values for the workflow
106
107
  # name, group id, and metadata.
@@ -43,14 +43,16 @@ module OpenAI
43
43
  # A list of [File](https://platform.openai.com/docs/api-reference/files) IDs that
44
44
  # the vector store should use. Useful for tools like `file_search` that can access
45
45
  # files. If `attributes` or `chunking_strategy` are provided, they will be applied
46
- # to all files in the batch. The maximum batch size is 2000 files. Mutually
47
- # exclusive with `files`.
46
+ # to all files in the batch. The maximum batch size is 2000 files. This endpoint
47
+ # is recommended for multi-file ingestion and helps reduce per-vector-store write
48
+ # request pressure. Mutually exclusive with `files`.
48
49
  file_ids: nil,
49
50
  # A list of objects that each include a `file_id` plus optional `attributes` or
50
51
  # `chunking_strategy`. Use this when you need to override metadata for specific
51
52
  # files. The global `attributes` or `chunking_strategy` will be ignored and must
52
- # be specified for each file. The maximum batch size is 2000 files. Mutually
53
- # exclusive with `file_ids`.
53
+ # be specified for each file. The maximum batch size is 2000 files. This endpoint
54
+ # is recommended for multi-file ingestion and helps reduce per-vector-store write
55
+ # request pressure. Mutually exclusive with `file_ids`.
54
56
  files: nil,
55
57
  request_options: {}
56
58
  )
@@ -31,7 +31,9 @@ module OpenAI
31
31
  vector_store_id,
32
32
  # A [File](https://platform.openai.com/docs/api-reference/files) ID that the
33
33
  # vector store should use. Useful for tools like `file_search` that can access
34
- # files.
34
+ # files. For multi-file ingestion, we recommend
35
+ # [`file_batches`](https://platform.openai.com/docs/api-reference/vector-stores-file-batches/createBatch)
36
+ # to minimize per-vector-store write requests.
35
37
  file_id:,
36
38
  # Set of 16 key-value pairs that can be attached to an object. This can be useful
37
39
  # for storing additional information about the object in a structured format, and
@@ -45,8 +45,12 @@ module OpenAI
45
45
  -> top?
46
46
  } -> top?
47
47
 
48
+ RFC_3986_NOT_PCHARS: Regexp
49
+
48
50
  def self?.uri_origin: (URI::Generic uri) -> String
49
51
 
52
+ def self?.encode_path: (String | Integer path) -> String
53
+
50
54
  def self?.interpolate_path: (String | ::Array[String] path) -> String
51
55
 
52
56
  def self?.decode_query: (String? query) -> ::Hash[String, ::Array[String]]
@@ -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
@@ -7,7 +7,8 @@ module OpenAI
7
7
  content: ::Array[OpenAI::Models::Conversations::Message::content],
8
8
  role: OpenAI::Models::Conversations::Message::role,
9
9
  status: OpenAI::Models::Conversations::Message::status,
10
- type: :message
10
+ type: :message,
11
+ phase: OpenAI::Models::Conversations::Message::phase?
11
12
  }
12
13
 
13
14
  class Message < OpenAI::Internal::Type::BaseModel
@@ -21,11 +22,14 @@ module OpenAI
21
22
 
22
23
  attr_accessor type: :message
23
24
 
25
+ attr_accessor phase: OpenAI::Models::Conversations::Message::phase?
26
+
24
27
  def initialize: (
25
28
  id: String,
26
29
  content: ::Array[OpenAI::Models::Conversations::Message::content],
27
30
  role: OpenAI::Models::Conversations::Message::role,
28
31
  status: OpenAI::Models::Conversations::Message::status,
32
+ ?phase: OpenAI::Models::Conversations::Message::phase?,
29
33
  ?type: :message
30
34
  ) -> void
31
35
 
@@ -34,7 +38,8 @@ module OpenAI
34
38
  content: ::Array[OpenAI::Models::Conversations::Message::content],
35
39
  role: OpenAI::Models::Conversations::Message::role,
36
40
  status: OpenAI::Models::Conversations::Message::status,
37
- type: :message
41
+ type: :message,
42
+ phase: OpenAI::Models::Conversations::Message::phase?
38
43
  }
39
44
 
40
45
  type content =
@@ -102,6 +107,17 @@ module OpenAI
102
107
 
103
108
  def self?.values: -> ::Array[OpenAI::Models::Conversations::Message::status]
104
109
  end
110
+
111
+ type phase = :commentary | :final_answer
112
+
113
+ module Phase
114
+ extend OpenAI::Internal::Type::Enum
115
+
116
+ COMMENTARY: :commentary
117
+ FINAL_ANSWER: :final_answer
118
+
119
+ def self?.values: -> ::Array[OpenAI::Models::Conversations::Message::phase]
120
+ end
105
121
  end
106
122
  end
107
123
  end
@@ -0,0 +1,14 @@
1
+ module OpenAI
2
+ module Models
3
+ type oauth_error_code = :invalid_grant | :invalid_subject_token | String
4
+
5
+ module OAuthErrorCode
6
+ extend OpenAI::Internal::Type::Union
7
+
8
+ def self?.variants: -> ::Array[OpenAI::Models::oauth_error_code]
9
+
10
+ INVALID_GRANT: :invalid_grant
11
+ INVALID_SUBJECT_TOKEN: :invalid_subject_token
12
+ end
13
+ end
14
+ end