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
  # [function calling guide](https://platform.openai.com/docs/guides/function-calling) for more information.
21
21
  variant :function_call, -> { OpenAI::Responses::ResponseFunctionToolCall }
22
22
 
23
+ variant :function_call_output, -> { OpenAI::Responses::ResponseFunctionToolCallOutputItem }
24
+
23
25
  # The results of a web search tool call. See the
24
26
  # [web search guide](https://platform.openai.com/docs/guides/tools-web-search) for more information.
25
27
  variant :web_search_call, -> { OpenAI::Responses::ResponseFunctionWebSearch }
@@ -28,6 +30,8 @@ module OpenAI
28
30
  # [computer use guide](https://platform.openai.com/docs/guides/tools-computer-use) for more information.
29
31
  variant :computer_call, -> { OpenAI::Responses::ResponseComputerToolCall }
30
32
 
33
+ variant :computer_call_output, -> { OpenAI::Responses::ResponseComputerToolCallOutputItem }
34
+
31
35
  # A description of the chain of thought used by a reasoning model while generating
32
36
  # a response. Be sure to include these items in your `input` to the Responses API
33
37
  # for subsequent turns of a conversation if you are manually
@@ -50,6 +54,9 @@ module OpenAI
50
54
  # A tool call to run a command on the local shell.
51
55
  variant :local_shell_call, -> { OpenAI::Responses::ResponseOutputItem::LocalShellCall }
52
56
 
57
+ # The output of a local shell tool call.
58
+ variant :local_shell_call_output, -> { OpenAI::Responses::ResponseOutputItem::LocalShellCallOutput }
59
+
53
60
  # A tool call that executes one or more shell commands in a managed environment.
54
61
  variant :shell_call, -> { OpenAI::Responses::ResponseFunctionShellToolCall }
55
62
 
@@ -71,9 +78,15 @@ module OpenAI
71
78
  # A request for human approval of a tool invocation.
72
79
  variant :mcp_approval_request, -> { OpenAI::Responses::ResponseOutputItem::McpApprovalRequest }
73
80
 
81
+ # A response to an MCP approval request.
82
+ variant :mcp_approval_response, -> { OpenAI::Responses::ResponseOutputItem::McpApprovalResponse }
83
+
74
84
  # A call to a custom tool created by the model.
75
85
  variant :custom_tool_call, -> { OpenAI::Responses::ResponseCustomToolCall }
76
86
 
87
+ # The output of a custom tool call from your code, being sent back to the model.
88
+ variant :custom_tool_call_output, -> { OpenAI::Responses::ResponseCustomToolCallOutputItem }
89
+
77
90
  class ImageGenerationCall < OpenAI::Internal::Type::BaseModel
78
91
  # @!attribute id
79
92
  # The unique ID of the image generation call.
@@ -247,6 +260,63 @@ module OpenAI
247
260
  end
248
261
  end
249
262
 
263
+ class LocalShellCallOutput < OpenAI::Internal::Type::BaseModel
264
+ # @!attribute id
265
+ # The unique ID of the local shell tool call generated by the model.
266
+ #
267
+ # @return [String]
268
+ required :id, String
269
+
270
+ # @!attribute output
271
+ # A JSON string of the output of the local shell tool call.
272
+ #
273
+ # @return [String]
274
+ required :output, String
275
+
276
+ # @!attribute type
277
+ # The type of the local shell tool call output. Always `local_shell_call_output`.
278
+ #
279
+ # @return [Symbol, :local_shell_call_output]
280
+ required :type, const: :local_shell_call_output
281
+
282
+ # @!attribute status
283
+ # The status of the item. One of `in_progress`, `completed`, or `incomplete`.
284
+ #
285
+ # @return [Symbol, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCallOutput::Status, nil]
286
+ optional :status,
287
+ enum: -> { OpenAI::Responses::ResponseOutputItem::LocalShellCallOutput::Status },
288
+ nil?: true
289
+
290
+ # @!method initialize(id:, output:, status: nil, type: :local_shell_call_output)
291
+ # Some parameter documentations has been truncated, see
292
+ # {OpenAI::Models::Responses::ResponseOutputItem::LocalShellCallOutput} for more
293
+ # details.
294
+ #
295
+ # The output of a local shell tool call.
296
+ #
297
+ # @param id [String] The unique ID of the local shell tool call generated by the model.
298
+ #
299
+ # @param output [String] A JSON string of the output of the local shell tool call.
300
+ #
301
+ # @param status [Symbol, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCallOutput::Status, nil] The status of the item. One of `in_progress`, `completed`, or `incomplete`.
302
+ #
303
+ # @param type [Symbol, :local_shell_call_output] The type of the local shell tool call output. Always `local_shell_call_output`.
304
+
305
+ # The status of the item. One of `in_progress`, `completed`, or `incomplete`.
306
+ #
307
+ # @see OpenAI::Models::Responses::ResponseOutputItem::LocalShellCallOutput#status
308
+ module Status
309
+ extend OpenAI::Internal::Type::Enum
310
+
311
+ IN_PROGRESS = :in_progress
312
+ COMPLETED = :completed
313
+ INCOMPLETE = :incomplete
314
+
315
+ # @!method self.values
316
+ # @return [Array<Symbol>]
317
+ end
318
+ end
319
+
250
320
  class McpCall < OpenAI::Internal::Type::BaseModel
251
321
  # @!attribute id
252
322
  # The unique ID of the tool call.
@@ -486,8 +556,57 @@ module OpenAI
486
556
  # @param type [Symbol, :mcp_approval_request] The type of the item. Always `mcp_approval_request`.
487
557
  end
488
558
 
559
+ class McpApprovalResponse < OpenAI::Internal::Type::BaseModel
560
+ # @!attribute id
561
+ # The unique ID of the approval response
562
+ #
563
+ # @return [String]
564
+ required :id, String
565
+
566
+ # @!attribute approval_request_id
567
+ # The ID of the approval request being answered.
568
+ #
569
+ # @return [String]
570
+ required :approval_request_id, String
571
+
572
+ # @!attribute approve
573
+ # Whether the request was approved.
574
+ #
575
+ # @return [Boolean]
576
+ required :approve, OpenAI::Internal::Type::Boolean
577
+
578
+ # @!attribute type
579
+ # The type of the item. Always `mcp_approval_response`.
580
+ #
581
+ # @return [Symbol, :mcp_approval_response]
582
+ required :type, const: :mcp_approval_response
583
+
584
+ # @!attribute reason
585
+ # Optional reason for the decision.
586
+ #
587
+ # @return [String, nil]
588
+ optional :reason, String, nil?: true
589
+
590
+ # @!method initialize(id:, approval_request_id:, approve:, reason: nil, type: :mcp_approval_response)
591
+ # Some parameter documentations has been truncated, see
592
+ # {OpenAI::Models::Responses::ResponseOutputItem::McpApprovalResponse} for more
593
+ # details.
594
+ #
595
+ # A response to an MCP approval request.
596
+ #
597
+ # @param id [String] The unique ID of the approval response
598
+ #
599
+ # @param approval_request_id [String] The ID of the approval request being answered.
600
+ #
601
+ # @param approve [Boolean] Whether the request was approved.
602
+ #
603
+ # @param reason [String, nil] Optional reason for the decision.
604
+ #
605
+ # @param type [Symbol, :mcp_approval_response] The type of the item. Always `mcp_approval_response`.
606
+ end
607
+
489
608
  # @!method self.variants
490
- # @return [Array(OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseCompactionItem, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCall, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Responses::ResponseOutputItem::McpCall, OpenAI::Models::Responses::ResponseOutputItem::McpListTools, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseCustomToolCall)]
609
+ # @return [Array(OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseCompactionItem, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Responses::ResponseOutputItem::McpCall, OpenAI::Models::Responses::ResponseOutputItem::McpListTools, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseCustomToolCallOutputItem)]
491
610
  end
492
611
  end
493
612
  end
@@ -7,7 +7,7 @@ module OpenAI
7
7
  # @!attribute item
8
8
  # The output item that was added.
9
9
  #
10
- # @return [OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseCompactionItem, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCall, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Responses::ResponseOutputItem::McpCall, OpenAI::Models::Responses::ResponseOutputItem::McpListTools, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseCustomToolCall]
10
+ # @return [OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseCompactionItem, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Responses::ResponseOutputItem::McpCall, OpenAI::Models::Responses::ResponseOutputItem::McpListTools, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseCustomToolCallOutputItem]
11
11
  required :item, union: -> { OpenAI::Responses::ResponseOutputItem }
12
12
 
13
13
  # @!attribute output_index
@@ -34,7 +34,7 @@ module OpenAI
34
34
  #
35
35
  # Emitted when a new output item is added.
36
36
  #
37
- # @param item [OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseCompactionItem, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCall, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Responses::ResponseOutputItem::McpCall, OpenAI::Models::Responses::ResponseOutputItem::McpListTools, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseCustomToolCall] The output item that was added.
37
+ # @param item [OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseCompactionItem, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Responses::ResponseOutputItem::McpCall, OpenAI::Models::Responses::ResponseOutputItem::McpListTools, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseCustomToolCallOutputItem] The output item that was added.
38
38
  #
39
39
  # @param output_index [Integer] The index of the output item that was added.
40
40
  #
@@ -7,7 +7,7 @@ module OpenAI
7
7
  # @!attribute item
8
8
  # The output item that was marked done.
9
9
  #
10
- # @return [OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseCompactionItem, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCall, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Responses::ResponseOutputItem::McpCall, OpenAI::Models::Responses::ResponseOutputItem::McpListTools, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseCustomToolCall]
10
+ # @return [OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseCompactionItem, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Responses::ResponseOutputItem::McpCall, OpenAI::Models::Responses::ResponseOutputItem::McpListTools, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseCustomToolCallOutputItem]
11
11
  required :item, union: -> { OpenAI::Responses::ResponseOutputItem }
12
12
 
13
13
  # @!attribute output_index
@@ -34,7 +34,7 @@ module OpenAI
34
34
  #
35
35
  # Emitted when an output item is marked done.
36
36
  #
37
- # @param item [OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseCompactionItem, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCall, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Responses::ResponseOutputItem::McpCall, OpenAI::Models::Responses::ResponseOutputItem::McpListTools, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseCustomToolCall] The output item that was marked done.
37
+ # @param item [OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseCompactionItem, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Responses::ResponseOutputItem::McpCall, OpenAI::Models::Responses::ResponseOutputItem::McpListTools, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseCustomToolCallOutputItem] The output item that was marked done.
38
38
  #
39
39
  # @param output_index [Integer] The index of the output item that was marked done.
40
40
  #
@@ -38,8 +38,9 @@ module OpenAI
38
38
  # A list of [File](https://platform.openai.com/docs/api-reference/files) IDs that
39
39
  # the vector store should use. Useful for tools like `file_search` that can access
40
40
  # files. If `attributes` or `chunking_strategy` are provided, they will be applied
41
- # to all files in the batch. The maximum batch size is 2000 files. Mutually
42
- # exclusive with `files`.
41
+ # to all files in the batch. The maximum batch size is 2000 files. This endpoint
42
+ # is recommended for multi-file ingestion and helps reduce per-vector-store write
43
+ # request pressure. Mutually exclusive with `files`.
43
44
  #
44
45
  # @return [Array<String>, nil]
45
46
  optional :file_ids, OpenAI::Internal::Type::ArrayOf[String]
@@ -48,8 +49,9 @@ module OpenAI
48
49
  # A list of objects that each include a `file_id` plus optional `attributes` or
49
50
  # `chunking_strategy`. Use this when you need to override metadata for specific
50
51
  # files. The global `attributes` or `chunking_strategy` will be ignored and must
51
- # be specified for each file. The maximum batch size is 2000 files. Mutually
52
- # exclusive with `file_ids`.
52
+ # be specified for each file. The maximum batch size is 2000 files. This endpoint
53
+ # is recommended for multi-file ingestion and helps reduce per-vector-store write
54
+ # request pressure. Mutually exclusive with `file_ids`.
53
55
  #
54
56
  # @return [Array<OpenAI::Models::VectorStores::FileBatchCreateParams::File>, nil]
55
57
  optional :files, -> { OpenAI::Internal::Type::ArrayOf[OpenAI::VectorStores::FileBatchCreateParams::File] }
@@ -87,7 +89,9 @@ module OpenAI
87
89
  # @!attribute file_id
88
90
  # A [File](https://platform.openai.com/docs/api-reference/files) ID that the
89
91
  # vector store should use. Useful for tools like `file_search` that can access
90
- # files.
92
+ # files. For multi-file ingestion, we recommend
93
+ # [`file_batches`](https://platform.openai.com/docs/api-reference/vector-stores-file-batches/createBatch)
94
+ # to minimize per-vector-store write requests.
91
95
  #
92
96
  # @return [String]
93
97
  required :file_id, String
@@ -16,7 +16,9 @@ module OpenAI
16
16
  # @!attribute file_id
17
17
  # A [File](https://platform.openai.com/docs/api-reference/files) ID that the
18
18
  # vector store should use. Useful for tools like `file_search` that can access
19
- # files.
19
+ # files. For multi-file ingestion, we recommend
20
+ # [`file_batches`](https://platform.openai.com/docs/api-reference/vector-stores-file-batches/createBatch)
21
+ # to minimize per-vector-store write requests.
20
22
  #
21
23
  # @return [String]
22
24
  required :file_id, String
data/lib/openai/models.rb CHANGED
@@ -207,6 +207,8 @@ module OpenAI
207
207
 
208
208
  ModerationTextInput = OpenAI::Models::ModerationTextInput
209
209
 
210
+ OAuthErrorCode = OpenAI::Models::OAuthErrorCode
211
+
210
212
  OtherFileChunkingStrategyObject = OpenAI::Models::OtherFileChunkingStrategyObject
211
213
 
212
214
  Realtime = OpenAI::Models::Realtime
@@ -52,7 +52,7 @@ module OpenAI
52
52
  #
53
53
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
54
54
  #
55
- # @return [OpenAI::Models::Conversations::Message, OpenAI::Models::Responses::ResponseFunctionToolCallItem, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Conversations::ConversationItem::LocalShellCall, OpenAI::Models::Conversations::ConversationItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Conversations::ConversationItem::McpListTools, OpenAI::Models::Conversations::ConversationItem::McpApprovalRequest, OpenAI::Models::Conversations::ConversationItem::McpApprovalResponse, OpenAI::Models::Conversations::ConversationItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseCustomToolCallOutput]
55
+ # @return [OpenAI::Models::Conversations::Message, OpenAI::Models::Responses::ResponseFunctionToolCallItem, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseCompactionItem, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Conversations::ConversationItem::LocalShellCall, OpenAI::Models::Conversations::ConversationItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Conversations::ConversationItem::McpListTools, OpenAI::Models::Conversations::ConversationItem::McpApprovalRequest, OpenAI::Models::Conversations::ConversationItem::McpApprovalResponse, OpenAI::Models::Conversations::ConversationItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseCustomToolCallOutput]
56
56
  #
57
57
  # @see OpenAI::Models::Conversations::ItemRetrieveParams
58
58
  def retrieve(item_id, params)
@@ -90,7 +90,7 @@ module OpenAI
90
90
  #
91
91
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
92
92
  #
93
- # @return [OpenAI::Internal::ConversationCursorPage<OpenAI::Models::Conversations::Message, OpenAI::Models::Responses::ResponseFunctionToolCallItem, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Conversations::ConversationItem::LocalShellCall, OpenAI::Models::Conversations::ConversationItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Conversations::ConversationItem::McpListTools, OpenAI::Models::Conversations::ConversationItem::McpApprovalRequest, OpenAI::Models::Conversations::ConversationItem::McpApprovalResponse, OpenAI::Models::Conversations::ConversationItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseCustomToolCallOutput>]
93
+ # @return [OpenAI::Internal::ConversationCursorPage<OpenAI::Models::Conversations::Message, OpenAI::Models::Responses::ResponseFunctionToolCallItem, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseCompactionItem, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Conversations::ConversationItem::LocalShellCall, OpenAI::Models::Conversations::ConversationItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Conversations::ConversationItem::McpListTools, OpenAI::Models::Conversations::ConversationItem::McpApprovalRequest, OpenAI::Models::Conversations::ConversationItem::McpApprovalResponse, OpenAI::Models::Conversations::ConversationItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseCustomToolCallOutput>]
94
94
  #
95
95
  # @see OpenAI::Models::Conversations::ItemListParams
96
96
  def list(conversation_id, params = {})
@@ -32,7 +32,7 @@ module OpenAI
32
32
  #
33
33
  # @param tools [Array<OpenAI::Models::Realtime::RealtimeFunctionTool, OpenAI::Models::Realtime::RealtimeToolsConfigUnion::Mcp>] Tools available to the model.
34
34
  #
35
- # @param tracing [Symbol, :auto, OpenAI::Models::Realtime::RealtimeTracingConfig::TracingConfiguration, nil] Realtime API can write session traces to the [Traces Dashboard](/logs?api=traces
35
+ # @param tracing [Symbol, :auto, OpenAI::Models::Realtime::RealtimeTracingConfig::TracingConfiguration, nil] Realtime API can write session traces to the [Traces Dashboard](https://platform
36
36
  #
37
37
  # @param truncation [Symbol, OpenAI::Models::Realtime::RealtimeTruncation::RealtimeTruncationStrategy, OpenAI::Models::Realtime::RealtimeTruncationRetentionRatio] When the number of tokens in a conversation exceeds the model's input token limi
38
38
  #
@@ -23,7 +23,7 @@ module OpenAI
23
23
  #
24
24
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
25
25
  #
26
- # @return [OpenAI::Internal::CursorPage<OpenAI::Models::Responses::ResponseInputMessageItem, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseFunctionToolCallItem, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseItem::LocalShellCall, OpenAI::Models::Responses::ResponseItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Responses::ResponseItem::McpListTools, OpenAI::Models::Responses::ResponseItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseItem::McpCall>]
26
+ # @return [OpenAI::Internal::CursorPage<OpenAI::Models::Responses::ResponseInputMessageItem, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseFunctionToolCallItem, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseCompactionItem, OpenAI::Models::Responses::ResponseItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseItem::LocalShellCall, OpenAI::Models::Responses::ResponseItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Responses::ResponseItem::McpListTools, OpenAI::Models::Responses::ResponseItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCallItem, OpenAI::Models::Responses::ResponseCustomToolCallOutputItem>]
27
27
  #
28
28
  # @see OpenAI::Models::Responses::InputItemListParams
29
29
  def list(response_id, params = {})
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OpenAI
4
- VERSION = "0.56.0"
4
+ VERSION = "0.58.0"
5
5
  end
data/lib/openai.rb CHANGED
@@ -29,6 +29,13 @@ require "connection_pool"
29
29
 
30
30
  # Package files.
31
31
  require_relative "openai/version"
32
+ require_relative "openai/auth/workload_identity"
33
+ require_relative "openai/auth/subject_token_provider"
34
+ require_relative "openai/auth/token_type"
35
+ require_relative "openai/auth/workload_identity_auth"
36
+ require_relative "openai/auth/subject_token_providers/k8s_service_account_token_provider"
37
+ require_relative "openai/auth/subject_token_providers/azure_managed_identity_token_provider"
38
+ require_relative "openai/auth/subject_token_providers/gcp_id_token_provider"
32
39
  require_relative "openai/internal/util"
33
40
  require_relative "openai/internal/type/converter"
34
41
  require_relative "openai/internal/type/unknown"
@@ -74,6 +81,8 @@ require_relative "openai/models/graders/python_grader"
74
81
  require_relative "openai/models/graders/text_similarity_grader"
75
82
  require_relative "openai/models/fine_tuning/fine_tuning_job_wandb_integration_object"
76
83
  require_relative "openai/models/realtime/realtime_session_create_request"
84
+ require_relative "openai/models/responses/response_custom_tool_call"
85
+ require_relative "openai/models/responses/response_custom_tool_call_output"
77
86
  require_relative "openai/models/responses/response_function_tool_call"
78
87
  require_relative "openai/models/all_models"
79
88
  require_relative "openai/models/audio/speech_create_params"
@@ -419,6 +428,7 @@ require_relative "openai/models/moderation_image_url_input"
419
428
  require_relative "openai/models/moderation_model"
420
429
  require_relative "openai/models/moderation_multi_modal_input"
421
430
  require_relative "openai/models/moderation_text_input"
431
+ require_relative "openai/models/oauth_error_code"
422
432
  require_relative "openai/models/other_file_chunking_strategy_object"
423
433
  require_relative "openai/models/realtime/audio_transcription"
424
434
  require_relative "openai/models/realtime/call_accept_params"
@@ -588,10 +598,10 @@ require_relative "openai/models/responses/response_content_part_done_event"
588
598
  require_relative "openai/models/responses/response_conversation_param"
589
599
  require_relative "openai/models/responses/response_created_event"
590
600
  require_relative "openai/models/responses/response_create_params"
591
- require_relative "openai/models/responses/response_custom_tool_call"
592
601
  require_relative "openai/models/responses/response_custom_tool_call_input_delta_event"
593
602
  require_relative "openai/models/responses/response_custom_tool_call_input_done_event"
594
- require_relative "openai/models/responses/response_custom_tool_call_output"
603
+ require_relative "openai/models/responses/response_custom_tool_call_item"
604
+ require_relative "openai/models/responses/response_custom_tool_call_output_item"
595
605
  require_relative "openai/models/responses/response_delete_params"
596
606
  require_relative "openai/models/responses/response_error"
597
607
  require_relative "openai/models/responses/response_error_event"
@@ -0,0 +1,55 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Auth
5
+ module TokenType
6
+ JWT = T.let(:jwt, Symbol)
7
+ ID = T.let(:id, Symbol)
8
+ end
9
+
10
+ module SubjectTokenProvider
11
+ sig { returns(Symbol) }
12
+ def token_type
13
+ end
14
+
15
+ sig { returns(String) }
16
+ def get_token
17
+ end
18
+ end
19
+
20
+ class WorkloadIdentity
21
+ sig { returns(String) }
22
+ attr_reader :client_id
23
+
24
+ sig { returns(String) }
25
+ attr_reader :identity_provider_id
26
+
27
+ sig { returns(String) }
28
+ attr_reader :service_account_id
29
+
30
+ sig { returns(SubjectTokenProvider) }
31
+ attr_reader :provider
32
+
33
+ sig { returns(Integer) }
34
+ attr_reader :refresh_buffer_seconds
35
+
36
+ sig do
37
+ params(
38
+ client_id: T.any(String, Symbol),
39
+ identity_provider_id: T.any(String, Symbol),
40
+ service_account_id: T.any(String, Symbol),
41
+ provider: SubjectTokenProvider,
42
+ refresh_buffer_seconds: Integer
43
+ ).void
44
+ end
45
+ def initialize(
46
+ client_id:,
47
+ identity_provider_id:,
48
+ service_account_id:,
49
+ provider:,
50
+ refresh_buffer_seconds: 1200
51
+ )
52
+ end
53
+ end
54
+ end
55
+ end
@@ -148,12 +148,20 @@ module OpenAI
148
148
  end
149
149
  end
150
150
 
151
+ # https://www.rfc-editor.org/rfc/rfc3986.html#section-3.3
152
+ RFC_3986_NOT_PCHARS = T.let(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/, Regexp)
153
+
151
154
  class << self
152
155
  # @api private
153
156
  sig { params(uri: URI::Generic).returns(String) }
154
157
  def uri_origin(uri)
155
158
  end
156
159
 
160
+ # @api private
161
+ sig { params(path: T.any(String, Integer)).returns(String) }
162
+ def encode_path(path)
163
+ end
164
+
157
165
  # @api private
158
166
  sig { params(path: T.any(String, T::Array[String])).returns(String) }
159
167
  def interpolate_path(path)
@@ -25,6 +25,7 @@ module OpenAI
25
25
  OpenAI::Responses::ResponseToolSearchCall,
26
26
  OpenAI::Responses::ResponseToolSearchOutputItem,
27
27
  OpenAI::Responses::ResponseReasoningItem,
28
+ OpenAI::Responses::ResponseCompactionItem,
28
29
  OpenAI::Responses::ResponseCodeInterpreterToolCall,
29
30
  OpenAI::Conversations::ConversationItem::LocalShellCall,
30
31
  OpenAI::Conversations::ConversationItem::LocalShellCallOutput,
@@ -53,6 +53,7 @@ module OpenAI
53
53
  OpenAI::Responses::ResponseToolSearchCall::OrHash,
54
54
  OpenAI::Responses::ResponseToolSearchOutputItem::OrHash,
55
55
  OpenAI::Responses::ResponseReasoningItem::OrHash,
56
+ OpenAI::Responses::ResponseCompactionItem::OrHash,
56
57
  OpenAI::Responses::ResponseCodeInterpreterToolCall::OrHash,
57
58
  OpenAI::Conversations::ConversationItem::LocalShellCall::OrHash,
58
59
  OpenAI::Conversations::ConversationItem::LocalShellCallOutput::OrHash,
@@ -33,6 +33,17 @@ module OpenAI
33
33
  sig { returns(Symbol) }
34
34
  attr_accessor :type
35
35
 
36
+ # Labels an `assistant` message as intermediate commentary (`commentary`) or the
37
+ # final answer (`final_answer`). For models like `gpt-5.3-codex` and beyond, when
38
+ # sending follow-up requests, preserve and resend phase on all assistant messages
39
+ # — dropping it can degrade performance. Not used for user messages.
40
+ sig do
41
+ returns(
42
+ T.nilable(OpenAI::Conversations::Message::Phase::TaggedSymbol)
43
+ )
44
+ end
45
+ attr_accessor :phase
46
+
36
47
  # A message to or from the model.
37
48
  sig do
38
49
  params(
@@ -53,6 +64,7 @@ module OpenAI
53
64
  ],
54
65
  role: OpenAI::Conversations::Message::Role::OrSymbol,
55
66
  status: OpenAI::Conversations::Message::Status::OrSymbol,
67
+ phase: T.nilable(OpenAI::Conversations::Message::Phase::OrSymbol),
56
68
  type: Symbol
57
69
  ).returns(T.attached_class)
58
70
  end
@@ -67,6 +79,11 @@ module OpenAI
67
79
  # The status of item. One of `in_progress`, `completed`, or `incomplete`.
68
80
  # Populated when items are returned via API.
69
81
  status:,
82
+ # Labels an `assistant` message as intermediate commentary (`commentary`) or the
83
+ # final answer (`final_answer`). For models like `gpt-5.3-codex` and beyond, when
84
+ # sending follow-up requests, preserve and resend phase on all assistant messages
85
+ # — dropping it can degrade performance. Not used for user messages.
86
+ phase: nil,
70
87
  # The type of the message. Always set to `message`.
71
88
  type: :message
72
89
  )
@@ -80,7 +97,9 @@ module OpenAI
80
97
  T::Array[OpenAI::Conversations::Message::Content::Variants],
81
98
  role: OpenAI::Conversations::Message::Role::TaggedSymbol,
82
99
  status: OpenAI::Conversations::Message::Status::TaggedSymbol,
83
- type: Symbol
100
+ type: Symbol,
101
+ phase:
102
+ T.nilable(OpenAI::Conversations::Message::Phase::TaggedSymbol)
84
103
  }
85
104
  )
86
105
  end
@@ -226,6 +245,39 @@ module OpenAI
226
245
  def self.values
227
246
  end
228
247
  end
248
+
249
+ # Labels an `assistant` message as intermediate commentary (`commentary`) or the
250
+ # final answer (`final_answer`). For models like `gpt-5.3-codex` and beyond, when
251
+ # sending follow-up requests, preserve and resend phase on all assistant messages
252
+ # — dropping it can degrade performance. Not used for user messages.
253
+ module Phase
254
+ extend OpenAI::Internal::Type::Enum
255
+
256
+ TaggedSymbol =
257
+ T.type_alias do
258
+ T.all(Symbol, OpenAI::Conversations::Message::Phase)
259
+ end
260
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
261
+
262
+ COMMENTARY =
263
+ T.let(
264
+ :commentary,
265
+ OpenAI::Conversations::Message::Phase::TaggedSymbol
266
+ )
267
+ FINAL_ANSWER =
268
+ T.let(
269
+ :final_answer,
270
+ OpenAI::Conversations::Message::Phase::TaggedSymbol
271
+ )
272
+
273
+ sig do
274
+ override.returns(
275
+ T::Array[OpenAI::Conversations::Message::Phase::TaggedSymbol]
276
+ )
277
+ end
278
+ def self.values
279
+ end
280
+ end
229
281
  end
230
282
  end
231
283
  end
@@ -0,0 +1,24 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module OAuthErrorCode
6
+ extend OpenAI::Internal::Type::Union
7
+
8
+ Variants =
9
+ T.type_alias { T.any(OpenAI::OAuthErrorCode::TaggedSymbol, String) }
10
+
11
+ sig { override.returns(T::Array[OpenAI::OAuthErrorCode::Variants]) }
12
+ def self.variants
13
+ end
14
+
15
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::OAuthErrorCode) }
16
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
17
+
18
+ INVALID_GRANT =
19
+ T.let(:invalid_grant, OpenAI::OAuthErrorCode::TaggedSymbol)
20
+ INVALID_SUBJECT_TOKEN =
21
+ T.let(:invalid_subject_token, OpenAI::OAuthErrorCode::TaggedSymbol)
22
+ end
23
+ end
24
+ end
@@ -193,8 +193,9 @@ module OpenAI
193
193
  attr_writer :tools
194
194
 
195
195
  # Realtime API can write session traces to the
196
- # [Traces Dashboard](/logs?api=traces). Set to null to disable tracing. Once
197
- # tracing is enabled for a session, the configuration cannot be modified.
196
+ # [Traces Dashboard](https://platform.openai.com/logs?api=traces). Set to null to
197
+ # disable tracing. Once tracing is enabled for a session, the configuration cannot
198
+ # be modified.
198
199
  #
199
200
  # `auto` will create a trace for the session with default values for the workflow
200
201
  # name, group id, and metadata.
@@ -339,8 +340,9 @@ module OpenAI
339
340
  # Tools available to the model.
340
341
  tools: nil,
341
342
  # Realtime API can write session traces to the
342
- # [Traces Dashboard](/logs?api=traces). Set to null to disable tracing. Once
343
- # tracing is enabled for a session, the configuration cannot be modified.
343
+ # [Traces Dashboard](https://platform.openai.com/logs?api=traces). Set to null to
344
+ # disable tracing. Once tracing is enabled for a session, the configuration cannot
345
+ # be modified.
344
346
  #
345
347
  # `auto` will create a trace for the session with default values for the workflow
346
348
  # name, group id, and metadata.