openai 0.96.0 → 0.98.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 (176) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +31 -0
  3. data/README.md +76 -1
  4. data/lib/openai/helpers/agents/session_stream.rb +60 -3
  5. data/lib/openai/helpers/beta/agents/artifacts.rb +72 -0
  6. data/lib/openai/helpers/beta/agents/creation_stream.rb +69 -0
  7. data/lib/openai/helpers/beta/agents/files.rb +236 -0
  8. data/lib/openai/helpers/beta/agents/function_tool.rb +65 -0
  9. data/lib/openai/helpers/beta/agents/model_adapter.rb +27 -0
  10. data/lib/openai/helpers/beta/agents/result.rb +170 -0
  11. data/lib/openai/helpers/beta/agents/typed_output.rb +191 -0
  12. data/lib/openai/helpers/live/websocket.rb +7 -1
  13. data/lib/openai/helpers/realtime/conversation_item_variant_resolver.rb +1 -1
  14. data/lib/openai/helpers/responses_websocket/connection.rb +7 -1
  15. data/lib/openai/helpers/responses_websocket/session.rb +5 -1
  16. data/lib/openai/helpers/responses_websocket/transports/async_websocket.rb +12 -2
  17. data/lib/openai/internal/transport/base_client.rb +18 -0
  18. data/lib/openai/internal/type/array_of.rb +1 -1
  19. data/lib/openai/internal/type/base_model.rb +6 -3
  20. data/lib/openai/internal/type/converter.rb +50 -3
  21. data/lib/openai/internal/type/hash_of.rb +1 -1
  22. data/lib/openai/internal/type/union.rb +6 -6
  23. data/lib/openai/models/beta/agent.rb +2 -2
  24. data/lib/openai/models/beta/agent_browser_authentication_cancel_param.rb +23 -0
  25. data/lib/openai/models/beta/agent_browser_authentication_submit_param.rb +70 -0
  26. data/lib/openai/models/beta/agent_browser_origin_access_param.rb +45 -0
  27. data/lib/openai/models/beta/agent_create_params.rb +2 -2
  28. data/lib/openai/models/beta/agent_output_item.rb +276 -1
  29. data/lib/openai/models/beta/agent_session.rb +251 -5
  30. data/lib/openai/models/beta/agent_session_input_param.rb +64 -1
  31. data/lib/openai/models/beta/agent_session_item.rb +391 -1
  32. data/lib/openai/models/beta/agent_session_turn_item_added_event.rb +2 -2
  33. data/lib/openai/models/beta/agent_session_turn_item_done_event.rb +2 -2
  34. data/lib/openai/models/beta/agent_tool.rb +27 -1
  35. data/lib/openai/models/beta/agent_tool_param.rb +27 -1
  36. data/lib/openai/models/beta/agent_update_params.rb +2 -2
  37. data/lib/openai/models/beta/agents/environments/environment_template.rb +26 -2
  38. data/lib/openai/models/beta/agents/environments/template_create_params.rb +48 -3
  39. data/lib/openai/models/beta/agents/environments/template_update_params.rb +45 -3
  40. data/lib/openai/models/beta/agents/session_create_params.rb +2 -2
  41. data/lib/openai/models/beta/agents/sessions/event_create_params.rb +2 -2
  42. data/lib/openai/models/beta/agents/sessions/session_trace.rb +64 -0
  43. data/lib/openai/models/beta/agents/sessions/trace_list_params.rb +68 -0
  44. data/lib/openai/models/beta/agents/vaults/credential.rb +8 -4
  45. data/lib/openai/models/beta/beta_response_output_text.rb +2 -2
  46. data/lib/openai/models/beta/beta_response_output_text_annotation_added_event.rb +2 -2
  47. data/lib/openai/models/beta/environment.rb +58 -2
  48. data/lib/openai/models/beta/environment_param.rb +66 -3
  49. data/lib/openai/models/beta/persisted_agent_tool.rb +27 -1
  50. data/lib/openai/models/beta/persisted_agent_tool_param.rb +27 -1
  51. data/lib/openai/models/beta/session_turn_error.rb +3 -0
  52. data/lib/openai/models/chat/chat_completion_content_part_image.rb +1 -0
  53. data/lib/openai/models/live/fork_server_event.rb +14 -3
  54. data/lib/openai/models/live/server_event.rb +14 -3
  55. data/lib/openai/models/realtime/translations/client_secret_create_params.rb +28 -0
  56. data/lib/openai/models/responses/response_output_text.rb +2 -2
  57. data/lib/openai/models/responses/response_output_text_annotation_added_event.rb +2 -2
  58. data/lib/openai/resources/beta/agents/environments/files.rb +31 -0
  59. data/lib/openai/resources/beta/agents/environments/templates.rb +9 -2
  60. data/lib/openai/resources/beta/agents/sessions/artifacts.rb +8 -0
  61. data/lib/openai/resources/beta/agents/sessions/events.rb +7 -6
  62. data/lib/openai/resources/beta/agents/sessions/items.rb +1 -1
  63. data/lib/openai/resources/beta/agents/sessions/subagents/items.rb +1 -1
  64. data/lib/openai/resources/beta/agents/sessions/subagents/turns/items.rb +1 -1
  65. data/lib/openai/resources/beta/agents/sessions/traces.rb +58 -0
  66. data/lib/openai/resources/beta/agents/sessions.rb +18 -5
  67. data/lib/openai/resources/beta/agents.rb +2 -2
  68. data/lib/openai/resources/evals/runs.rb +1 -1
  69. data/lib/openai/resources/realtime/translations/client_secrets.rb +58 -0
  70. data/lib/openai/resources/realtime/translations.rb +20 -0
  71. data/lib/openai/resources/realtime.rb +4 -0
  72. data/lib/openai/version.rb +1 -1
  73. data/lib/openai.rb +12 -1
  74. data/rbi/openai/helpers/agents.rbi +20 -1
  75. data/rbi/openai/helpers/beta/agents/artifacts.rbi +29 -0
  76. data/rbi/openai/helpers/beta/agents/files.rbi +65 -0
  77. data/rbi/openai/helpers/beta/agents/function_tool.rbi +40 -0
  78. data/rbi/openai/helpers/beta/agents/model_adapter.rbi +22 -0
  79. data/rbi/openai/helpers/beta/agents.rbi +146 -0
  80. data/rbi/openai/internal/transport/base_client.rbi +12 -0
  81. data/rbi/openai/internal/type/base_model.rbi +2 -2
  82. data/rbi/openai/internal/type/converter.rbi +21 -3
  83. data/rbi/openai/internal/type/union.rbi +6 -2
  84. data/rbi/openai/models/beta/agent.rbi +2 -1
  85. data/rbi/openai/models/beta/agent_browser_authentication_cancel_param.rbi +53 -0
  86. data/rbi/openai/models/beta/agent_browser_authentication_submit_param.rbi +125 -0
  87. data/rbi/openai/models/beta/agent_browser_origin_access_param.rbi +76 -0
  88. data/rbi/openai/models/beta/agent_create_params.rbi +6 -3
  89. data/rbi/openai/models/beta/agent_output_item.rbi +422 -0
  90. data/rbi/openai/models/beta/agent_session.rbi +373 -1
  91. data/rbi/openai/models/beta/agent_session_input_param.rbi +102 -0
  92. data/rbi/openai/models/beta/agent_session_item.rbi +614 -0
  93. data/rbi/openai/models/beta/agent_session_turn_item_added_event.rbi +3 -0
  94. data/rbi/openai/models/beta/agent_session_turn_item_done_event.rbi +2 -0
  95. data/rbi/openai/models/beta/agent_tool.rbi +49 -1
  96. data/rbi/openai/models/beta/agent_tool_param.rbi +52 -1
  97. data/rbi/openai/models/beta/agent_update_params.rbi +6 -3
  98. data/rbi/openai/models/beta/agents/environments/environment_template.rbi +53 -2
  99. data/rbi/openai/models/beta/agents/environments/template_create_params.rbi +74 -4
  100. data/rbi/openai/models/beta/agents/environments/template_update_params.rbi +71 -4
  101. data/rbi/openai/models/beta/agents/session_create_params.rbi +6 -3
  102. data/rbi/openai/models/beta/agents/sessions/event_create_params.rbi +3 -0
  103. data/rbi/openai/models/beta/agents/sessions/session_trace.rbi +97 -0
  104. data/rbi/openai/models/beta/agents/sessions/trace_list_params.rbi +121 -0
  105. data/rbi/openai/models/beta/agents/vaults/credential.rbi +5 -5
  106. data/rbi/openai/models/beta/beta_response_output_text.rbi +2 -2
  107. data/rbi/openai/models/beta/beta_response_output_text_annotation_added_event.rbi +2 -2
  108. data/rbi/openai/models/beta/environment.rbi +82 -2
  109. data/rbi/openai/models/beta/environment_param.rbi +103 -4
  110. data/rbi/openai/models/beta/persisted_agent_tool.rbi +49 -1
  111. data/rbi/openai/models/beta/persisted_agent_tool_param.rbi +52 -1
  112. data/rbi/openai/models/beta/session_turn_error.rbi +3 -0
  113. data/rbi/openai/models/chat/chat_completion_content_part_image.rbi +1 -0
  114. data/rbi/openai/models/live/fork_server_event.rbi +14 -2
  115. data/rbi/openai/models/live/server_event.rbi +14 -2
  116. data/rbi/openai/models/realtime/translations/client_secret_create_params.rbi +68 -0
  117. data/rbi/openai/models/responses/response_output_text.rbi +2 -2
  118. data/rbi/openai/models/responses/response_output_text_annotation_added_event.rbi +2 -2
  119. data/rbi/openai/resources/beta/agents/environments/files.rbi +31 -0
  120. data/rbi/openai/resources/beta/agents/environments/templates.rbi +7 -0
  121. data/rbi/openai/resources/beta/agents/sessions/artifacts.rbi +8 -0
  122. data/rbi/openai/resources/beta/agents/sessions/events.rbi +7 -5
  123. data/rbi/openai/resources/beta/agents/sessions/traces.rbi +54 -0
  124. data/rbi/openai/resources/beta/agents/sessions.rbi +6 -1
  125. data/rbi/openai/resources/beta/agents.rbi +4 -2
  126. data/rbi/openai/resources/realtime/translations/client_secrets.rbi +54 -0
  127. data/rbi/openai/resources/realtime/translations.rbi +22 -0
  128. data/rbi/openai/resources/realtime.rbi +3 -0
  129. data/sig/openai/helpers/agents.rbs +7 -0
  130. data/sig/openai/helpers/beta/agents/artifacts.rbs +20 -0
  131. data/sig/openai/helpers/beta/agents/files.rbs +41 -0
  132. data/sig/openai/helpers/beta/agents/function_tool.rbs +24 -0
  133. data/sig/openai/helpers/beta/agents/model_adapter.rbs +16 -0
  134. data/sig/openai/helpers/beta/agents.rbs +71 -0
  135. data/sig/openai/helpers/structured_output.rbs +12 -0
  136. data/sig/openai/internal/transport/base_client.rbs +8 -0
  137. data/sig/openai/internal/type/base_model.rbs +3 -1
  138. data/sig/openai/internal/type/converter.rbs +16 -2
  139. data/sig/openai/internal/type/union.rbs +2 -1
  140. data/sig/openai/models/beta/agent_browser_authentication_cancel_param.rbs +21 -0
  141. data/sig/openai/models/beta/agent_browser_authentication_submit_param.rbs +63 -0
  142. data/sig/openai/models/beta/agent_browser_origin_access_param.rbs +47 -0
  143. data/sig/openai/models/beta/agent_output_item.rbs +254 -0
  144. data/sig/openai/models/beta/agent_session.rbs +215 -1
  145. data/sig/openai/models/beta/agent_session_input_param.rbs +51 -1
  146. data/sig/openai/models/beta/agent_session_item.rbs +362 -0
  147. data/sig/openai/models/beta/agent_tool.rbs +22 -0
  148. data/sig/openai/models/beta/agent_tool_param.rbs +25 -0
  149. data/sig/openai/models/beta/agents/environments/environment_template.rbs +29 -3
  150. data/sig/openai/models/beta/agents/environments/template_create_params.rbs +39 -4
  151. data/sig/openai/models/beta/agents/environments/template_update_params.rbs +37 -4
  152. data/sig/openai/models/beta/agents/sessions/session_trace.rbs +65 -0
  153. data/sig/openai/models/beta/agents/sessions/trace_list_params.rbs +81 -0
  154. data/sig/openai/models/beta/agents/vaults/credential.rbs +5 -5
  155. data/sig/openai/models/beta/beta_response_output_text.rbs +2 -2
  156. data/sig/openai/models/beta/beta_response_output_text_annotation_added_event.rbs +2 -2
  157. data/sig/openai/models/beta/environment.rbs +51 -3
  158. data/sig/openai/models/beta/environment_param.rbs +64 -4
  159. data/sig/openai/models/beta/persisted_agent_tool.rbs +22 -0
  160. data/sig/openai/models/beta/persisted_agent_tool_param.rbs +25 -0
  161. data/sig/openai/models/beta/session_turn_error.rbs +4 -0
  162. data/sig/openai/models/chat/chat_completion_content_part_image.rbs +2 -1
  163. data/sig/openai/models/live/fork_server_event.rbs +17 -2
  164. data/sig/openai/models/live/server_event.rbs +17 -2
  165. data/sig/openai/models/realtime/translations/client_secret_create_params.rbs +39 -0
  166. data/sig/openai/models/responses/response_output_text.rbs +2 -2
  167. data/sig/openai/models/responses/response_output_text_annotation_added_event.rbs +2 -2
  168. data/sig/openai/resources/beta/agents/environments/files.rbs +17 -0
  169. data/sig/openai/resources/beta/agents/environments/templates.rbs +2 -0
  170. data/sig/openai/resources/beta/agents/sessions/artifacts.rbs +4 -0
  171. data/sig/openai/resources/beta/agents/sessions/traces.rbs +21 -0
  172. data/sig/openai/resources/beta/agents/sessions.rbs +4 -1
  173. data/sig/openai/resources/realtime/translations/client_secrets.rbs +17 -0
  174. data/sig/openai/resources/realtime/translations.rbs +11 -0
  175. data/sig/openai/resources/realtime.rbs +2 -0
  176. metadata +46 -1
@@ -24,6 +24,9 @@ module OpenAI
24
24
  # Web search.
25
25
  variant :web_search, -> { OpenAI::Beta::PersistedAgentTool::WebSearch }
26
26
 
27
+ # Browser use in an OpenAI-hosted session.
28
+ variant :computer_use, -> { OpenAI::Beta::PersistedAgentTool::ComputerUse }
29
+
27
30
  class Function < OpenAI::Internal::Type::BaseModel
28
31
  # @!attribute defer_loading
29
32
  # Whether the function is deferred and discovered through tool search.
@@ -321,8 +324,31 @@ module OpenAI
321
324
  end
322
325
  end
323
326
 
327
+ class ComputerUse < OpenAI::Internal::Type::BaseModel
328
+ # @!attribute include_screenshots
329
+ # Whether computer tool outputs include screenshots.
330
+ #
331
+ # @return [Boolean]
332
+ required :include_screenshots, OpenAI::Internal::Type::Boolean
333
+
334
+ # @!attribute type
335
+ # The type of the object. Always `computer_use`.
336
+ #
337
+ # @return [Symbol, :computer_use]
338
+ required :type, const: :computer_use
339
+
340
+ # @!method initialize(include_screenshots:, type: :computer_use)
341
+ # Browser use in an OpenAI-hosted session.
342
+ #
343
+ # @param include_screenshots [Boolean]
344
+ # Whether computer tool outputs include screenshots.
345
+ #
346
+ # @param type [Symbol, :computer_use]
347
+ # The type of the object. Always `computer_use`.
348
+ end
349
+
324
350
  # @!method self.variants
325
- # @return [Array(OpenAI::Models::Beta::PersistedAgentTool::Function, OpenAI::Models::Beta::PersistedAgentTool::ToolSearch, OpenAI::Models::Beta::PersistedAgentTool::ProgrammaticToolCalling, OpenAI::Models::Beta::PersistedAgentTool::Mcp, OpenAI::Models::Beta::PersistedAgentTool::WebSearch)]
351
+ # @return [Array(OpenAI::Models::Beta::PersistedAgentTool::Function, OpenAI::Models::Beta::PersistedAgentTool::ToolSearch, OpenAI::Models::Beta::PersistedAgentTool::ProgrammaticToolCalling, OpenAI::Models::Beta::PersistedAgentTool::Mcp, OpenAI::Models::Beta::PersistedAgentTool::WebSearch, OpenAI::Models::Beta::PersistedAgentTool::ComputerUse)]
326
352
  end
327
353
  end
328
354
  end
@@ -24,6 +24,9 @@ module OpenAI
24
24
  # Web search.
25
25
  variant :web_search, -> { OpenAI::Beta::PersistedAgentToolParam::WebSearch }
26
26
 
27
+ # Browser use in an OpenAI-hosted session.
28
+ variant :computer_use, -> { OpenAI::Beta::PersistedAgentToolParam::ComputerUse }
29
+
27
30
  class Function < OpenAI::Internal::Type::BaseModel
28
31
  # @!attribute description
29
32
  # A description of what the function does.
@@ -347,8 +350,31 @@ module OpenAI
347
350
  end
348
351
  end
349
352
 
353
+ class ComputerUse < OpenAI::Internal::Type::BaseModel
354
+ # @!attribute type
355
+ # The type of the object. Always `computer_use`.
356
+ #
357
+ # @return [Symbol, :computer_use]
358
+ required :type, const: :computer_use
359
+
360
+ # @!attribute include_screenshots
361
+ # Whether computer tool outputs include screenshots. Defaults to `false`.
362
+ #
363
+ # @return [Boolean, nil]
364
+ optional :include_screenshots, OpenAI::Internal::Type::Boolean
365
+
366
+ # @!method initialize(include_screenshots: nil, type: :computer_use)
367
+ # Browser use in an OpenAI-hosted session.
368
+ #
369
+ # @param include_screenshots [Boolean]
370
+ # Whether computer tool outputs include screenshots. Defaults to `false`.
371
+ #
372
+ # @param type [Symbol, :computer_use]
373
+ # The type of the object. Always `computer_use`.
374
+ end
375
+
350
376
  # @!method self.variants
351
- # @return [Array(OpenAI::Models::Beta::PersistedAgentToolParam::Function, OpenAI::Models::Beta::PersistedAgentToolParam::ToolSearch, OpenAI::Models::Beta::PersistedAgentToolParam::ProgrammaticToolCalling, OpenAI::Models::Beta::PersistedAgentToolParam::Mcp, OpenAI::Models::Beta::PersistedAgentToolParam::WebSearch)]
377
+ # @return [Array(OpenAI::Models::Beta::PersistedAgentToolParam::Function, OpenAI::Models::Beta::PersistedAgentToolParam::ToolSearch, OpenAI::Models::Beta::PersistedAgentToolParam::ProgrammaticToolCalling, OpenAI::Models::Beta::PersistedAgentToolParam::Mcp, OpenAI::Models::Beta::PersistedAgentToolParam::WebSearch, OpenAI::Models::Beta::PersistedAgentToolParam::ComputerUse)]
352
378
  end
353
379
  end
354
380
  end
@@ -46,6 +46,9 @@ module OpenAI
46
46
  # The request exceeds the available rate limit.
47
47
  RATE_LIMIT_EXCEEDED = :rate_limit_exceeded
48
48
 
49
+ # Flex processing is temporarily unavailable.
50
+ FLEX_UNAVAILABLE = :flex_unavailable
51
+
49
52
  # The model service is temporarily overloaded.
50
53
  SERVER_OVERLOADED = :server_overloaded
51
54
 
@@ -73,6 +73,7 @@ module OpenAI
73
73
  AUTO = :auto
74
74
  LOW = :low
75
75
  HIGH = :high
76
+ ORIGINAL = :original
76
77
 
77
78
  # @!method self.values
78
79
  # @return [Array<Symbol>]
@@ -67,7 +67,7 @@ module OpenAI
67
67
  # A SIP DTMF keypress received from the caller. Delivered only to sideband observers.
68
68
  variant :"transport.dtmf.received", -> { OpenAI::Live::ForkServerEvent::TransportDtmfReceived }
69
69
 
70
- # A SIP DTMF keypress successfully sent by the hosted tool. Delivered only to sideband observers; this is not a client command.
70
+ # A SIP DTMF keypress successfully sent to the SIP trunk. Delivered only to sideband observers; this is not a client command.
71
71
  variant :"transport.dtmf.send", -> { OpenAI::Live::ForkServerEvent::TransportDtmfSend }
72
72
 
73
73
  # The outbound SIP provider leg is ringing or providing early media. Delivered only to sideband observers.
@@ -148,12 +148,23 @@ module OpenAI
148
148
  # @return [Symbol, :"transport.dtmf.send"]
149
149
  required :type, const: :"transport.dtmf.send"
150
150
 
151
- # @!method initialize(event:, event_id:, type: :"transport.dtmf.send")
152
- # A SIP DTMF keypress successfully sent by the hosted tool. Delivered only to
151
+ # @!attribute client_event_id
152
+ # The event_id of the client command, when supplied.
153
+ #
154
+ # @return [String, nil]
155
+ optional :client_event_id, String
156
+
157
+ # @!method initialize(event:, event_id:, client_event_id: nil, type: :"transport.dtmf.send")
158
+ # A SIP DTMF keypress successfully sent to the SIP trunk. Delivered only to
153
159
  # sideband observers; this is not a client command.
154
160
  #
155
161
  # @param event [String]
162
+ #
156
163
  # @param event_id [String]
164
+ #
165
+ # @param client_event_id [String]
166
+ # The event_id of the client command, when supplied.
167
+ #
157
168
  # @param type [Symbol, :"transport.dtmf.send"]
158
169
  end
159
170
 
@@ -67,7 +67,7 @@ module OpenAI
67
67
  # A SIP DTMF keypress received from the caller. Delivered only to sideband observers.
68
68
  variant :"transport.dtmf.received", -> { OpenAI::Live::ServerEvent::TransportDtmfReceived }
69
69
 
70
- # A SIP DTMF keypress successfully sent by the hosted tool. Delivered only to sideband observers; this is not a client command.
70
+ # A SIP DTMF keypress successfully sent to the SIP trunk. Delivered only to sideband observers; this is not a client command.
71
71
  variant :"transport.dtmf.send", -> { OpenAI::Live::ServerEvent::TransportDtmfSend }
72
72
 
73
73
  # The outbound SIP provider leg is ringing or providing early media. Delivered only to sideband observers.
@@ -148,12 +148,23 @@ module OpenAI
148
148
  # @return [Symbol, :"transport.dtmf.send"]
149
149
  required :type, const: :"transport.dtmf.send"
150
150
 
151
- # @!method initialize(event:, event_id:, type: :"transport.dtmf.send")
152
- # A SIP DTMF keypress successfully sent by the hosted tool. Delivered only to
151
+ # @!attribute client_event_id
152
+ # The event_id of the client command, when supplied.
153
+ #
154
+ # @return [String, nil]
155
+ optional :client_event_id, String
156
+
157
+ # @!method initialize(event:, event_id:, client_event_id: nil, type: :"transport.dtmf.send")
158
+ # A SIP DTMF keypress successfully sent to the SIP trunk. Delivered only to
153
159
  # sideband observers; this is not a client command.
154
160
  #
155
161
  # @param event [String]
162
+ #
156
163
  # @param event_id [String]
164
+ #
165
+ # @param client_event_id [String]
166
+ # The event_id of the client command, when supplied.
167
+ #
157
168
  # @param type [Symbol, :"transport.dtmf.send"]
158
169
  end
159
170
 
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ module Translations
7
+ # @see OpenAI::Resources::Realtime::Translations::ClientSecrets#create
8
+ class ClientSecretCreateParams < OpenAI::Models::Realtime::RealtimeTranslationClientSecretCreateRequest
9
+ extend OpenAI::Internal::Type::RequestParameters::Converter
10
+ include OpenAI::Internal::Type::RequestParameters
11
+
12
+ # @!method initialize(session:, expires_after: nil, request_options: {})
13
+ # @param session [OpenAI::Models::Realtime::RealtimeTranslationSessionCreateRequest]
14
+ # Realtime translation session configuration. Translation sessions stream source
15
+ # audio in and translated audio plus transcript deltas out continuously.
16
+ #
17
+ # @param expires_after [OpenAI::Models::Realtime::RealtimeTranslationClientSecretCreateRequest::ExpiresAfter]
18
+ # Configuration for the client secret expiration. Expiration refers to the time
19
+ # after which a client secret will no longer be valid for creating sessions. The
20
+ # session itself may continue after that time once started. A secret can be used
21
+ # to create multiple sessions until it expires.
22
+ #
23
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -87,7 +87,7 @@ module OpenAI
87
87
  required :filename, String
88
88
 
89
89
  # @!attribute index
90
- # The index of the file in the list of files.
90
+ # The index in the output text at which to insert the file citation.
91
91
  #
92
92
  # @return [Integer]
93
93
  required :index, Integer
@@ -108,7 +108,7 @@ module OpenAI
108
108
  # The filename of the file cited.
109
109
  #
110
110
  # @param index [Integer]
111
- # The index of the file in the list of files.
111
+ # The index in the output text at which to insert the file citation.
112
112
  #
113
113
  # @param type [Symbol, :file_citation]
114
114
  # The type of the file citation. Always `file_citation`.
@@ -117,7 +117,7 @@ module OpenAI
117
117
  required :filename, String
118
118
 
119
119
  # @!attribute index
120
- # The index of the file in the list of files.
120
+ # The index in the output text at which to insert the file citation.
121
121
  #
122
122
  # @return [Integer]
123
123
  required :index, Integer
@@ -138,7 +138,7 @@ module OpenAI
138
138
  # The filename of the file cited.
139
139
  #
140
140
  # @param index [Integer]
141
- # The index of the file in the list of files.
141
+ # The index in the output text at which to insert the file citation.
142
142
  #
143
143
  # @param type [Symbol, :file_citation]
144
144
  # The type of the file citation. Always `file_citation`.
@@ -1,11 +1,42 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "../../../../helpers/beta/agents/files"
4
+
3
5
  module OpenAI
4
6
  module Resources
5
7
  class Beta
6
8
  class Agents
7
9
  class Environments
8
10
  class Files
11
+ # Upload selected local files for a new hosted environment (beta).
12
+ # @return [OpenAI::Helpers::Beta::Agents::PreparedFiles]
13
+ def prepare(files, request_options: {})
14
+ OpenAI::Helpers::Beta::Agents::FilePreparation
15
+ .new(client: @client, environment_files: self)
16
+ .prepare(files, request_options: request_options)
17
+ end
18
+
19
+ # Upload an explicitly selected directory snapshot (beta).
20
+ # @return [OpenAI::Helpers::Beta::Agents::PreparedFiles]
21
+ def prepare_directory(directory, destination:, include:, request_options: {})
22
+ OpenAI::Helpers::Beta::Agents::FilePreparation
23
+ .new(client: @client, environment_files: self)
24
+ .prepare_directory(
25
+ directory,
26
+ destination: destination,
27
+ include: include,
28
+ request_options: request_options
29
+ )
30
+ end
31
+
32
+ # Upload and stage a local file in an existing environment (beta).
33
+ # @return [OpenAI::Helpers::Beta::Agents::PreparedFiles]
34
+ def upload(environment_id, file:, path:, request_options: {})
35
+ OpenAI::Helpers::Beta::Agents::FilePreparation
36
+ .new(client: @client, environment_files: self)
37
+ .upload(environment_id, file: file, path: path, request_options: request_options)
38
+ end
39
+
9
40
  # Copies inline bytes or a Files API file into a connected execution environment.
10
41
  # See
11
42
  # [environment files](https://developers.openai.com/api/docs/guides/agents-api/environments/files).
@@ -10,12 +10,16 @@ module OpenAI
10
10
  # commands or environment values. See
11
11
  # [reusing a hosted setup](https://developers.openai.com/api/docs/guides/agents-api/tools#reuse-a-hosted-plugin-setup).
12
12
  #
13
- # @overload create(capability_directories: nil, env: nil, files: nil, name: nil, network: nil, packages: nil, plugins: nil, setup_commands: nil, skills: nil, request_options: {})
13
+ # @overload create(capability_directories: nil, desktop: nil, env: nil, files: nil, name: nil, network: nil, packages: nil, plugins: nil, setup_commands: nil, skills: nil, request_options: {})
14
14
  #
15
15
  # @param capability_directories [Array<String>, nil]
16
16
  # Directories that contain capabilities exposed to the agent. Defaults to an empty
17
17
  # list.
18
18
  #
19
+ # @param desktop [OpenAI::Models::Beta::Agents::Environments::TemplateCreateParams::Desktop, nil]
20
+ # Desktop provisioning. Omission or null inherits the template setting, or
21
+ # defaults to disabled.
22
+ #
19
23
  # @param env [Hash{Symbol=>String}, nil]
20
24
  # Environment variables made available to the agent.
21
25
  #
@@ -87,7 +91,7 @@ module OpenAI
87
91
  # values. See
88
92
  # [reusing a hosted setup](https://developers.openai.com/api/docs/guides/agents-api/tools#reuse-a-hosted-plugin-setup).
89
93
  #
90
- # @overload update(environment_template_id, capability_directories: nil, env: nil, files: nil, name: nil, network: nil, packages: nil, plugins: nil, setup_commands: nil, skills: nil, request_options: {})
94
+ # @overload update(environment_template_id, capability_directories: nil, desktop: nil, env: nil, files: nil, name: nil, network: nil, packages: nil, plugins: nil, setup_commands: nil, skills: nil, request_options: {})
91
95
  #
92
96
  # @param environment_template_id [String]
93
97
  # The ID of the reusable environment template.
@@ -95,6 +99,9 @@ module OpenAI
95
99
  # @param capability_directories [Array<String>, nil]
96
100
  # Directories that expose capabilities to the agent.
97
101
  #
102
+ # @param desktop [OpenAI::Models::Beta::Agents::Environments::TemplateUpdateParams::Desktop, nil]
103
+ # Replacement desktop configuration, or null to disable the desktop.
104
+ #
98
105
  # @param env [Hash{Symbol=>String}, nil]
99
106
  # Replacement confidential environment values.
100
107
  #
@@ -1,11 +1,19 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "../../../../helpers/beta/agents/artifacts"
4
+
3
5
  module OpenAI
4
6
  module Resources
5
7
  class Beta
6
8
  class Agents
7
9
  class Sessions
8
10
  class Artifacts
11
+ # Access artifacts from exactly this completed turn (beta).
12
+ # @return [OpenAI::Helpers::Beta::Agents::ResultArtifacts]
13
+ def for_result(result)
14
+ OpenAI::Helpers::Beta::Agents::ResultArtifacts.new(artifacts: self, client: @client, result: result)
15
+ end
16
+
9
17
  # Retrieves immutable metadata for one durable session artifact. See
10
18
  # [session artifacts](https://developers.openai.com/api/docs/guides/agents-api/environments/files#openai-hosted-artifacts).
11
19
  #
@@ -6,11 +6,12 @@ module OpenAI
6
6
  class Agents
7
7
  class Sessions
8
8
  class Events
9
- # Submits message, cancellation, or tool-result events to a managed agent session.
10
- # Cancellation can recover a still-open turn whose backend execution has ended by
11
- # marking it cancelled and abandoning unpublished outputs. Saved results,
12
- # published files, and existing terminal outcomes are preserved. HTTP 202 confirms
13
- # acceptance, not durable completion. See
9
+ # Submits message, cancellation, tool-result, or computer-use approval-response
10
+ # events to a managed agent session. Cancellation can recover a still-open turn
11
+ # whose backend execution has ended by marking it cancelled and abandoning
12
+ # unpublished outputs. Saved results, published files, and existing terminal
13
+ # outcomes are preserved. HTTP 202 confirms acceptance, not durable completion.
14
+ # See
14
15
  # [session events](https://developers.openai.com/api/docs/guides/agents-api/sessions/events).
15
16
  #
16
17
  # @overload create(session_id, events:, idempotency_key: nil, request_options: {})
@@ -18,7 +19,7 @@ module OpenAI
18
19
  # @param session_id [String]
19
20
  # Path param: The ID of the session.
20
21
  #
21
- # @param events [Array<OpenAI::Models::Beta::AgentSessionInputParam::AgentSessionInputMessage, OpenAI::Models::Beta::AgentSessionInputParam::AgentSessionInputCancel, OpenAI::Models::Beta::AgentSessionInputParam::AgentSessionInputToolResult>]
22
+ # @param events [Array<OpenAI::Models::Beta::AgentSessionInputParam::AgentSessionInputComputerUseApprovalRequestResult, OpenAI::Models::Beta::AgentSessionInputParam::AgentSessionInputMessage, OpenAI::Models::Beta::AgentSessionInputParam::AgentSessionInputCancel, OpenAI::Models::Beta::AgentSessionInputParam::AgentSessionInputToolResult>]
22
23
  # Body param: The input events to submit to the session.
23
24
  #
24
25
  # @param idempotency_key [String]
@@ -26,7 +26,7 @@ module OpenAI
26
26
  #
27
27
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
28
28
  #
29
- # @return [OpenAI::Internal::CursorPage<OpenAI::Models::Beta::AgentSessionMessage, OpenAI::Models::Beta::AgentReasoningItem, OpenAI::Models::Beta::AgentFunctionCallItem, OpenAI::Models::Beta::AgentSessionItem::FunctionCallOutput, OpenAI::Models::Beta::AgentSessionItem::AgentMessage, OpenAI::Models::Beta::AgentMcpCallItem, OpenAI::Models::Beta::AgentWebSearchCallItem, OpenAI::Models::Beta::AgentCommandExecutionItem, OpenAI::Models::Beta::AgentCreateSubagentCallItem, OpenAI::Models::Beta::AgentSendSubagentInputCallItem, OpenAI::Models::Beta::AgentResumeSubagentCallItem, OpenAI::Models::Beta::AgentWaitForSubagentsCallItem, OpenAI::Models::Beta::AgentInterruptSubagentCallItem, OpenAI::Models::Beta::AgentCloseSubagentCallItem>]
29
+ # @return [OpenAI::Internal::CursorPage<OpenAI::Models::Beta::AgentSessionMessage, OpenAI::Models::Beta::AgentReasoningItem, OpenAI::Models::Beta::AgentFunctionCallItem, OpenAI::Models::Beta::AgentSessionItem::FunctionCallOutput, OpenAI::Models::Beta::AgentSessionItem::AgentMessage, OpenAI::Models::Beta::AgentMcpCallItem, OpenAI::Models::Beta::AgentSessionItem::ComputerUseCall, OpenAI::Models::Beta::AgentSessionItem::ComputerUseApprovalRequest, OpenAI::Models::Beta::AgentSessionItem::ComputerUseApprovalRequestResult, OpenAI::Models::Beta::AgentWebSearchCallItem, OpenAI::Models::Beta::AgentCommandExecutionItem, OpenAI::Models::Beta::AgentCreateSubagentCallItem, OpenAI::Models::Beta::AgentSendSubagentInputCallItem, OpenAI::Models::Beta::AgentResumeSubagentCallItem, OpenAI::Models::Beta::AgentWaitForSubagentsCallItem, OpenAI::Models::Beta::AgentInterruptSubagentCallItem, OpenAI::Models::Beta::AgentCloseSubagentCallItem>]
30
30
  #
31
31
  # @see OpenAI::Models::Beta::Agents::Sessions::ItemListParams
32
32
  def list(session_id, params = {})
@@ -30,7 +30,7 @@ module OpenAI
30
30
  #
31
31
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
32
32
  #
33
- # @return [OpenAI::Internal::CursorPage<OpenAI::Models::Beta::AgentSessionMessage, OpenAI::Models::Beta::AgentReasoningItem, OpenAI::Models::Beta::AgentFunctionCallItem, OpenAI::Models::Beta::AgentSessionItem::FunctionCallOutput, OpenAI::Models::Beta::AgentSessionItem::AgentMessage, OpenAI::Models::Beta::AgentMcpCallItem, OpenAI::Models::Beta::AgentWebSearchCallItem, OpenAI::Models::Beta::AgentCommandExecutionItem, OpenAI::Models::Beta::AgentCreateSubagentCallItem, OpenAI::Models::Beta::AgentSendSubagentInputCallItem, OpenAI::Models::Beta::AgentResumeSubagentCallItem, OpenAI::Models::Beta::AgentWaitForSubagentsCallItem, OpenAI::Models::Beta::AgentInterruptSubagentCallItem, OpenAI::Models::Beta::AgentCloseSubagentCallItem>]
33
+ # @return [OpenAI::Internal::CursorPage<OpenAI::Models::Beta::AgentSessionMessage, OpenAI::Models::Beta::AgentReasoningItem, OpenAI::Models::Beta::AgentFunctionCallItem, OpenAI::Models::Beta::AgentSessionItem::FunctionCallOutput, OpenAI::Models::Beta::AgentSessionItem::AgentMessage, OpenAI::Models::Beta::AgentMcpCallItem, OpenAI::Models::Beta::AgentSessionItem::ComputerUseCall, OpenAI::Models::Beta::AgentSessionItem::ComputerUseApprovalRequest, OpenAI::Models::Beta::AgentSessionItem::ComputerUseApprovalRequestResult, OpenAI::Models::Beta::AgentWebSearchCallItem, OpenAI::Models::Beta::AgentCommandExecutionItem, OpenAI::Models::Beta::AgentCreateSubagentCallItem, OpenAI::Models::Beta::AgentSendSubagentInputCallItem, OpenAI::Models::Beta::AgentResumeSubagentCallItem, OpenAI::Models::Beta::AgentWaitForSubagentsCallItem, OpenAI::Models::Beta::AgentInterruptSubagentCallItem, OpenAI::Models::Beta::AgentCloseSubagentCallItem>]
34
34
  #
35
35
  # @see OpenAI::Models::Beta::Agents::Sessions::Subagents::ItemListParams
36
36
  def list(subagent_id, params)
@@ -34,7 +34,7 @@ module OpenAI
34
34
  #
35
35
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
36
36
  #
37
- # @return [OpenAI::Internal::CursorPage<OpenAI::Models::Beta::AgentSessionMessage, OpenAI::Models::Beta::AgentReasoningItem, OpenAI::Models::Beta::AgentFunctionCallItem, OpenAI::Models::Beta::AgentSessionItem::FunctionCallOutput, OpenAI::Models::Beta::AgentSessionItem::AgentMessage, OpenAI::Models::Beta::AgentMcpCallItem, OpenAI::Models::Beta::AgentWebSearchCallItem, OpenAI::Models::Beta::AgentCommandExecutionItem, OpenAI::Models::Beta::AgentCreateSubagentCallItem, OpenAI::Models::Beta::AgentSendSubagentInputCallItem, OpenAI::Models::Beta::AgentResumeSubagentCallItem, OpenAI::Models::Beta::AgentWaitForSubagentsCallItem, OpenAI::Models::Beta::AgentInterruptSubagentCallItem, OpenAI::Models::Beta::AgentCloseSubagentCallItem>]
37
+ # @return [OpenAI::Internal::CursorPage<OpenAI::Models::Beta::AgentSessionMessage, OpenAI::Models::Beta::AgentReasoningItem, OpenAI::Models::Beta::AgentFunctionCallItem, OpenAI::Models::Beta::AgentSessionItem::FunctionCallOutput, OpenAI::Models::Beta::AgentSessionItem::AgentMessage, OpenAI::Models::Beta::AgentMcpCallItem, OpenAI::Models::Beta::AgentSessionItem::ComputerUseCall, OpenAI::Models::Beta::AgentSessionItem::ComputerUseApprovalRequest, OpenAI::Models::Beta::AgentSessionItem::ComputerUseApprovalRequestResult, OpenAI::Models::Beta::AgentWebSearchCallItem, OpenAI::Models::Beta::AgentCommandExecutionItem, OpenAI::Models::Beta::AgentCreateSubagentCallItem, OpenAI::Models::Beta::AgentSendSubagentInputCallItem, OpenAI::Models::Beta::AgentResumeSubagentCallItem, OpenAI::Models::Beta::AgentWaitForSubagentsCallItem, OpenAI::Models::Beta::AgentInterruptSubagentCallItem, OpenAI::Models::Beta::AgentCloseSubagentCallItem>]
38
38
  #
39
39
  # @see OpenAI::Models::Beta::Agents::Sessions::Subagents::Turns::ItemListParams
40
40
  def list(turn_id, params)
@@ -0,0 +1,58 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Resources
5
+ class Beta
6
+ class Agents
7
+ class Sessions
8
+ class Traces
9
+ # Lists published root-turn traces as OTLP JSON, ordered by turn creation time and
10
+ # ID. Unpublished traces are skipped. Each page returns data available when read;
11
+ # it does not wait for late traces. Trace reads and the JSON response are limited
12
+ # to 16 MiB per request. If the limit is exceeded, request fewer traces.
13
+ #
14
+ # @overload list(session_id, after: nil, limit: nil, order: nil, request_options: {})
15
+ #
16
+ # @param session_id [String]
17
+ # The ID of the session.
18
+ #
19
+ # @param after [String]
20
+ # Return resources after this resource ID in the selected order.
21
+ #
22
+ # @param limit [Integer]
23
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
24
+ #
25
+ # @param order [Symbol, OpenAI::Models::Beta::Agents::Sessions::TraceListParams::Order]
26
+ # The order in which resources are returned. Defaults to `desc`.
27
+ #
28
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
29
+ #
30
+ # @return [OpenAI::Internal::CursorPage<OpenAI::Models::Beta::Agents::Sessions::SessionTrace>]
31
+ #
32
+ # @see OpenAI::Models::Beta::Agents::Sessions::TraceListParams
33
+ def list(session_id, params = {})
34
+ parsed, options = OpenAI::Beta::Agents::Sessions::TraceListParams.dump_request(params)
35
+ query = OpenAI::Internal::Util.encode_query_params(parsed)
36
+ @client.request(
37
+ method: :get,
38
+ path: ["agents/sessions/%1$s/traces", session_id],
39
+ query: query,
40
+ page: OpenAI::Internal::CursorPage,
41
+ model: OpenAI::Beta::Agents::Sessions::SessionTrace,
42
+ security: {bearer_auth: true},
43
+ options: {extra_headers: {"OpenAI-Beta" => "agents=v1"}, **options}
44
+ )
45
+ end
46
+
47
+ # @api private
48
+ #
49
+ # @param client [OpenAI::Client]
50
+ def initialize(client:)
51
+ @client = client
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
@@ -17,6 +17,9 @@ module OpenAI
17
17
  # @return [OpenAI::Resources::Beta::Agents::Sessions::Events]
18
18
  attr_reader :events
19
19
 
20
+ # @return [OpenAI::Resources::Beta::Agents::Sessions::Traces]
21
+ attr_reader :traces
22
+
20
23
  # @return [OpenAI::Resources::Beta::Agents::Sessions::Turns]
21
24
  attr_reader :turns
22
25
 
@@ -82,7 +85,7 @@ module OpenAI
82
85
  # the session or streams its events when stream is true. See
83
86
  # [running sessions](https://developers.openai.com/api/docs/guides/agents-api/sessions).
84
87
  #
85
- # @overload create_streaming(environment:, agent: nil, agent_id: nil, input: nil, metadata: nil, vault_ids: nil, request_options: {})
88
+ # @overload create_streaming(environment:, agent: nil, agent_id: nil, input: nil, output_type: nil, metadata: nil, vault_ids: nil, request_options: {})
86
89
  #
87
90
  # @param environment [OpenAI::Models::Beta::EnvironmentParam::None, OpenAI::Models::Beta::EnvironmentParam::OpenAIHosted, OpenAI::Models::Beta::EnvironmentParam::SelfHosted]
88
91
  # An inline execution environment or a reference to an environment template.
@@ -108,29 +111,36 @@ module OpenAI
108
111
  # @param vault_ids [Array<String>, nil]
109
112
  # The IDs of vaults made available to the session.
110
113
  #
114
+ # @param output_type [Class<OpenAI::BaseModel>, nil] Beta: configure and parse a structured answer.
115
+ #
111
116
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
112
117
  #
113
- # @return [OpenAI::Internal::Stream<OpenAI::Models::Beta::AgentSessionErrorEvent, OpenAI::Models::Beta::AgentSessionEnvironmentReadyEvent, OpenAI::Models::Beta::AgentSessionEnvironmentResetEvent, OpenAI::Models::Beta::AgentOutputCommandExecutionOutputDeltaEvent, OpenAI::Models::Beta::AgentSessionCreatedEvent, OpenAI::Models::Beta::AgentSessionTurnCreatedEvent, OpenAI::Models::Beta::AgentSessionTurnInProgressEvent, OpenAI::Models::Beta::AgentSessionTurnCompletedEvent, OpenAI::Models::Beta::AgentSessionTurnFailedEvent, OpenAI::Models::Beta::AgentSessionTurnCancelledEvent, OpenAI::Models::Beta::AgentSessionTurnItemAddedEvent, OpenAI::Models::Beta::AgentSessionIdleEvent, OpenAI::Models::Beta::AgentSessionInProgressEvent, OpenAI::Models::Beta::AgentSessionRequiresActionEvent, OpenAI::Models::Beta::AgentSessionFailedEvent, OpenAI::Models::Beta::AgentSessionEnvironmentPendingEvent, OpenAI::Models::Beta::AgentSessionEnvironmentConnectedEvent, OpenAI::Models::Beta::AgentSessionEnvironmentDisconnectedEvent, OpenAI::Models::Beta::AgentSessionEnvironmentFailedEvent, OpenAI::Models::Beta::AgentSessionSubagentCreatedEvent, OpenAI::Models::Beta::AgentSessionSubagentActiveEvent, OpenAI::Models::Beta::AgentSessionSubagentClosedEvent, OpenAI::Models::Beta::AgentSessionTurnItemDoneEvent, OpenAI::Models::Beta::AgentSessionTurnContentPartAddedEvent, OpenAI::Models::Beta::AgentSessionTurnContentPartDoneEvent, OpenAI::Models::Beta::AgentSessionTurnOutputTextDeltaEvent, OpenAI::Models::Beta::AgentSessionTurnOutputTextDoneEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryPartAddedEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryPartDoneEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryTextDeltaEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryTextDoneEvent>]
118
+ # @return [OpenAI::Helpers::Beta::Agents::CreationStream]
114
119
  #
115
120
  # @see OpenAI::Models::Beta::Agents::SessionCreateParams
116
121
  def create_streaming(params)
122
+ params = params.to_h.transform_keys { _1.is_a?(String) ? _1.to_sym : _1 }
123
+ output_type = params.delete(:output_type)
124
+ parser = OpenAI::Helpers::Beta::Agents::OutputParser.new(output_type) unless output_type.nil?
117
125
  parsed, options = OpenAI::Beta::Agents::SessionCreateParams.dump_request(params)
118
126
  unless parsed.fetch(:stream, true)
119
127
  message = "Please use `#create` for the non-streaming use case."
120
128
  raise ArgumentError.new(message)
121
129
  end
122
130
 
131
+ parser&.prepare_request(parsed)
123
132
  parsed.store(:stream, true)
124
- @client.request(
133
+ stream = @client.request(
125
134
  method: :post,
126
135
  path: "agents/sessions",
127
136
  headers: {"accept" => "text/event-stream", "accept-encoding" => "identity"},
128
137
  body: parsed,
129
- stream: OpenAI::Internal::Stream,
138
+ stream: OpenAI::Helpers::Beta::Agents::CreationStream,
130
139
  model: OpenAI::Beta::AgentSessionEvent,
131
140
  security: {bearer_auth: true},
132
141
  options: {extra_headers: {"OpenAI-Beta" => "agents=v1"}, **options}
133
142
  )
143
+ stream.configure_output_parser(parser)
134
144
  end
135
145
 
136
146
  # Retrieves the current state of a managed agent session. See
@@ -265,16 +275,18 @@ module OpenAI
265
275
  # @param input [String, Array<OpenAI::Models::Beta::AgentSessionInputMessageParam>]
266
276
  # @param tool_handlers [Hash{String=>Proc}]
267
277
  # @param idempotency_key [String, nil] Applies only to the input submission.
278
+ # @param output_type [Class<OpenAI::BaseModel>, nil] Beta: parse output without changing session configuration.
268
279
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
269
280
  # @yieldparam stream [OpenAI::Helpers::Agents::SessionStream]
270
281
  # @return [OpenAI::Helpers::Agents::SessionStream]
271
- def stream(session_id, input:, tool_handlers: {}, idempotency_key: nil, request_options: {})
282
+ def stream(session_id, input:, tool_handlers: {}, idempotency_key: nil, output_type: nil, request_options: {})
272
283
  stream = OpenAI::Helpers::Agents::SessionStream.new(
273
284
  sessions: self,
274
285
  session_id: session_id,
275
286
  input: input,
276
287
  tool_handlers: tool_handlers,
277
288
  idempotency_key: idempotency_key,
289
+ output_type: output_type,
278
290
  request_options: request_options
279
291
  )
280
292
  return stream unless block_given?
@@ -297,6 +309,7 @@ module OpenAI
297
309
  @artifacts = OpenAI::Resources::Beta::Agents::Sessions::Artifacts.new(client: client)
298
310
  @items = OpenAI::Resources::Beta::Agents::Sessions::Items.new(client: client)
299
311
  @events = OpenAI::Resources::Beta::Agents::Sessions::Events.new(client: client)
312
+ @traces = OpenAI::Resources::Beta::Agents::Sessions::Traces.new(client: client)
300
313
  @turns = OpenAI::Resources::Beta::Agents::Sessions::Turns.new(client: client)
301
314
  end
302
315
  end
@@ -46,7 +46,7 @@ module OpenAI
46
46
  # Configuration for generated text. Defaults to the `text` format and medium
47
47
  # verbosity.
48
48
  #
49
- # @param tools [Array<OpenAI::Models::Beta::PersistedAgentToolParam::Function, OpenAI::Models::Beta::PersistedAgentToolParam::ToolSearch, OpenAI::Models::Beta::PersistedAgentToolParam::ProgrammaticToolCalling, OpenAI::Models::Beta::PersistedAgentToolParam::Mcp, OpenAI::Models::Beta::PersistedAgentToolParam::WebSearch>, nil]
49
+ # @param tools [Array<OpenAI::Models::Beta::PersistedAgentToolParam::Function, OpenAI::Models::Beta::PersistedAgentToolParam::ToolSearch, OpenAI::Models::Beta::PersistedAgentToolParam::ProgrammaticToolCalling, OpenAI::Models::Beta::PersistedAgentToolParam::Mcp, OpenAI::Models::Beta::PersistedAgentToolParam::WebSearch, OpenAI::Models::Beta::PersistedAgentToolParam::ComputerUse>, nil]
50
50
  # Tools available to the agent. Defaults to an empty list.
51
51
  #
52
52
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
@@ -125,7 +125,7 @@ module OpenAI
125
125
  # @param text [OpenAI::Models::Beta::AgentTextParam, nil]
126
126
  # Configuration for text generated by the agent.
127
127
  #
128
- # @param tools [Array<OpenAI::Models::Beta::PersistedAgentToolParam::Function, OpenAI::Models::Beta::PersistedAgentToolParam::ToolSearch, OpenAI::Models::Beta::PersistedAgentToolParam::ProgrammaticToolCalling, OpenAI::Models::Beta::PersistedAgentToolParam::Mcp, OpenAI::Models::Beta::PersistedAgentToolParam::WebSearch>, nil]
128
+ # @param tools [Array<OpenAI::Models::Beta::PersistedAgentToolParam::Function, OpenAI::Models::Beta::PersistedAgentToolParam::ToolSearch, OpenAI::Models::Beta::PersistedAgentToolParam::ProgrammaticToolCalling, OpenAI::Models::Beta::PersistedAgentToolParam::Mcp, OpenAI::Models::Beta::PersistedAgentToolParam::WebSearch, OpenAI::Models::Beta::PersistedAgentToolParam::ComputerUse>, nil]
129
129
  # Tools available to the agent.
130
130
  #
131
131
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
@@ -172,7 +172,7 @@ module OpenAI
172
172
 
173
173
  @client.request(
174
174
  method: :post,
175
- path: ["evals/%1$s/runs/%2$s", eval_id, run_id],
175
+ path: ["evals/%1$s/runs/%2$s/cancel", eval_id, run_id],
176
176
  model: OpenAI::Models::Evals::RunCancelResponse,
177
177
  security: {bearer_auth: true},
178
178
  options: options