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
@@ -31,7 +31,9 @@ module OpenAI
31
31
  packages: OpenAI::Beta::Environment::OpenAIHosted::Packages,
32
32
  plugins: ::Array[OpenAI::Beta::HostedPlugin],
33
33
  skills: ::Array[OpenAI::Models::Beta::hosted_skill],
34
- ?type: :openai_hosted
34
+ ?type: :openai_hosted,
35
+ ?container_size: OpenAI::Models::Beta::Environment::OpenAIHosted::container_size?,
36
+ ?desktop: OpenAI::Beta::Environment::OpenAIHosted::Desktop
35
37
  }
36
38
 
37
39
  class OpenAIHosted < OpenAI::Internal::Type::BaseModel
@@ -59,6 +61,18 @@ module OpenAI
59
61
  # The type of the object. Always `openai_hosted`.
60
62
  attr_accessor type: :openai_hosted
61
63
 
64
+ # The effective CPU and memory tier, or null when unknown or outside the public
65
+ # tiers.
66
+ attr_accessor container_size: OpenAI::Models::Beta::Environment::OpenAIHosted::container_size?
67
+
68
+ # The effective desktop configuration.
69
+ attr_reader desktop: OpenAI::Beta::Environment::OpenAIHosted::Desktop?
70
+
71
+ # The effective desktop configuration.
72
+ def desktop=: (
73
+ OpenAI::Beta::Environment::OpenAIHosted::Desktop
74
+ ) -> OpenAI::Beta::Environment::OpenAIHosted::Desktop
75
+
62
76
  # @param id
63
77
  # The public ID of the environment.
64
78
  # @param capability_directories
@@ -73,6 +87,11 @@ module OpenAI
73
87
  # Plugins installed in the environment, excluding their archive contents.
74
88
  # @param skills
75
89
  # Skills installed in the environment, excluding their archive contents.
90
+ # @param container_size
91
+ # The effective CPU and memory tier, or null when unknown or outside the public
92
+ # tiers.
93
+ # @param desktop
94
+ # The effective desktop configuration.
76
95
  # @param type
77
96
  # The type of the object. Always `openai_hosted`.
78
97
  def initialize: (
@@ -83,6 +102,8 @@ module OpenAI
83
102
  packages: OpenAI::Beta::Environment::OpenAIHosted::Packages,
84
103
  plugins: ::Array[OpenAI::Beta::HostedPlugin],
85
104
  skills: ::Array[OpenAI::Models::Beta::hosted_skill],
105
+ ?container_size: OpenAI::Models::Beta::Environment::OpenAIHosted::container_size?,
106
+ ?desktop: OpenAI::Beta::Environment::OpenAIHosted::Desktop,
86
107
  ?type: :openai_hosted
87
108
  ) -> void
88
109
 
@@ -94,7 +115,9 @@ module OpenAI
94
115
  packages: OpenAI::Beta::Environment::OpenAIHosted::Packages,
95
116
  plugins: ::Array[OpenAI::Beta::HostedPlugin],
96
117
  skills: ::Array[OpenAI::Models::Beta::hosted_skill],
97
- ?type: :openai_hosted
118
+ ?type: :openai_hosted,
119
+ ?container_size: OpenAI::Models::Beta::Environment::OpenAIHosted::container_size?,
120
+ ?desktop: OpenAI::Beta::Environment::OpenAIHosted::Desktop
98
121
  }
99
122
 
100
123
  type network =
@@ -135,7 +158,7 @@ module OpenAI
135
158
  # Disables network access.
136
159
  DISABLED: :disabled
137
160
 
138
- # Allows access only to configured domains.
161
+ # Applies the configured domain restrictions.
139
162
  RESTRICTED: :restricted
140
163
 
141
164
  def self?.values: -> ::Array[OpenAI::Models::Beta::Environment::OpenAIHosted::Network::access]
@@ -177,6 +200,31 @@ module OpenAI
177
200
  system_: ::Array[String]
178
201
  }
179
202
  end
203
+
204
+ type container_size = :small | :medium | :large
205
+
206
+ module ContainerSize
207
+ extend OpenAI::Internal::Type::Enum
208
+
209
+ SMALL: :small
210
+ MEDIUM: :medium
211
+ LARGE: :large
212
+
213
+ def self?.values: -> ::Array[OpenAI::Models::Beta::Environment::OpenAIHosted::container_size]
214
+ end
215
+
216
+ type desktop = { enabled: bool }
217
+
218
+ class Desktop < OpenAI::Internal::Type::BaseModel
219
+ # Whether the environment provisions a desktop and browser proxy.
220
+ attr_accessor enabled: bool
221
+
222
+ # @param enabled
223
+ # Whether the environment provisions a desktop and browser proxy.
224
+ def initialize: (enabled: bool) -> void
225
+
226
+ def to_hash: -> { enabled: bool }
227
+ end
180
228
  end
181
229
 
182
230
  type self_hosted =
@@ -26,6 +26,8 @@ module OpenAI
26
26
  {
27
27
  ?type: :openai_hosted,
28
28
  ?capability_directories: ::Array[String]?,
29
+ ?container_size: OpenAI::Models::Beta::EnvironmentParam::OpenAIHosted::container_size,
30
+ ?desktop: OpenAI::Beta::EnvironmentParam::OpenAIHosted::Desktop?,
29
31
  ?env: ::Hash[Symbol, String]?,
30
32
  ?environment_template_id: String,
31
33
  ?files: ::Array[OpenAI::Models::Beta::hosted_environment_file_param]?,
@@ -44,6 +46,18 @@ module OpenAI
44
46
  # list.
45
47
  attr_accessor capability_directories: ::Array[String]?
46
48
 
49
+ # The hosted container size. Omission selects the medium tier.
50
+ attr_reader container_size: OpenAI::Models::Beta::EnvironmentParam::OpenAIHosted::container_size?
51
+
52
+ # The hosted container size. Omission selects the medium tier.
53
+ def container_size=: (
54
+ OpenAI::Models::Beta::EnvironmentParam::OpenAIHosted::container_size
55
+ ) -> OpenAI::Models::Beta::EnvironmentParam::OpenAIHosted::container_size
56
+
57
+ # Desktop provisioning. Omission or null inherits the template setting, or
58
+ # defaults to disabled.
59
+ attr_accessor desktop: OpenAI::Beta::EnvironmentParam::OpenAIHosted::Desktop?
60
+
47
61
  # Environment variables made available to the agent.
48
62
  attr_accessor env: ::Hash[Symbol, String]?
49
63
 
@@ -78,6 +92,11 @@ module OpenAI
78
92
  # @param capability_directories
79
93
  # Directories that contain capabilities exposed to the agent. Defaults to an empty
80
94
  # list.
95
+ # @param container_size
96
+ # The hosted container size. Omission selects the medium tier.
97
+ # @param desktop
98
+ # Desktop provisioning. Omission or null inherits the template setting, or
99
+ # defaults to disabled.
81
100
  # @param env
82
101
  # Environment variables made available to the agent.
83
102
  # @param environment_template_id
@@ -101,6 +120,8 @@ module OpenAI
101
120
  # The type of the object. Always `openai_hosted`.
102
121
  def initialize: (
103
122
  ?capability_directories: ::Array[String]?,
123
+ ?container_size: OpenAI::Models::Beta::EnvironmentParam::OpenAIHosted::container_size,
124
+ ?desktop: OpenAI::Beta::EnvironmentParam::OpenAIHosted::Desktop?,
104
125
  ?env: ::Hash[Symbol, String]?,
105
126
  ?environment_template_id: String,
106
127
  ?files: ::Array[OpenAI::Models::Beta::hosted_environment_file_param]?,
@@ -115,6 +136,8 @@ module OpenAI
115
136
  def to_hash: -> {
116
137
  ?type: :openai_hosted,
117
138
  ?capability_directories: ::Array[String]?,
139
+ ?container_size: OpenAI::Models::Beta::EnvironmentParam::OpenAIHosted::container_size,
140
+ ?desktop: OpenAI::Beta::EnvironmentParam::OpenAIHosted::Desktop?,
118
141
  ?env: ::Hash[Symbol, String]?,
119
142
  ?environment_template_id: String,
120
143
  ?files: ::Array[OpenAI::Models::Beta::hosted_environment_file_param]?,
@@ -125,10 +148,36 @@ module OpenAI
125
148
  ?skills: ::Array[OpenAI::Models::Beta::hosted_skill_param]?
126
149
  }
127
150
 
151
+ type container_size = :small | :medium | :large
152
+
153
+ module ContainerSize
154
+ extend OpenAI::Internal::Type::Enum
155
+
156
+ SMALL: :small
157
+ MEDIUM: :medium
158
+ LARGE: :large
159
+
160
+ def self?.values: -> ::Array[OpenAI::Models::Beta::EnvironmentParam::OpenAIHosted::container_size]
161
+ end
162
+
163
+ type desktop = { enabled: bool }
164
+
165
+ class Desktop < OpenAI::Internal::Type::BaseModel
166
+ # Whether to provision the desktop and its browser proxy.
167
+ attr_accessor enabled: bool
168
+
169
+ # @param enabled
170
+ # Whether to provision the desktop and its browser proxy.
171
+ def initialize: (enabled: bool) -> void
172
+
173
+ def to_hash: -> { enabled: bool }
174
+ end
175
+
128
176
  type network =
129
177
  {
130
178
  access: OpenAI::Models::Beta::EnvironmentParam::OpenAIHosted::Network::access,
131
- ?allowed_domains: ::Array[String]?
179
+ ?allowed_domains: ::Array[String]?,
180
+ ?blocked_domains: ::Array[String]?
132
181
  }
133
182
 
134
183
  class Network < OpenAI::Internal::Type::BaseModel
@@ -138,18 +187,29 @@ module OpenAI
138
187
  # Domains the environment may access when network access is restricted.
139
188
  attr_accessor allowed_domains: ::Array[String]?
140
189
 
190
+ # Domains blocked for both executor and browser when access is restricted. A
191
+ # nonempty list requires `access: restricted` and cannot be combined with nonempty
192
+ # `allowed_domains`. Wildcard domains are not supported.
193
+ attr_accessor blocked_domains: ::Array[String]?
194
+
141
195
  # @param access
142
196
  # The environment's network access mode.
143
197
  # @param allowed_domains
144
198
  # Domains the environment may access when network access is restricted.
199
+ # @param blocked_domains
200
+ # Domains blocked for both executor and browser when access is restricted. A
201
+ # nonempty list requires `access: restricted` and cannot be combined with nonempty
202
+ # `allowed_domains`. Wildcard domains are not supported.
145
203
  def initialize: (
146
204
  access: OpenAI::Models::Beta::EnvironmentParam::OpenAIHosted::Network::access,
147
- ?allowed_domains: ::Array[String]?
205
+ ?allowed_domains: ::Array[String]?,
206
+ ?blocked_domains: ::Array[String]?
148
207
  ) -> void
149
208
 
150
209
  def to_hash: -> {
151
210
  access: OpenAI::Models::Beta::EnvironmentParam::OpenAIHosted::Network::access,
152
- ?allowed_domains: ::Array[String]?
211
+ ?allowed_domains: ::Array[String]?,
212
+ ?blocked_domains: ::Array[String]?
153
213
  }
154
214
 
155
215
  type access = :enabled | :disabled | :restricted
@@ -163,7 +223,7 @@ module OpenAI
163
223
  # Disables network access.
164
224
  DISABLED: :disabled
165
225
 
166
- # Allows access only to configured domains.
226
+ # Applies the configured domain restrictions.
167
227
  RESTRICTED: :restricted
168
228
 
169
229
  def self?.values: -> ::Array[OpenAI::Models::Beta::EnvironmentParam::OpenAIHosted::Network::access]
@@ -7,6 +7,7 @@ module OpenAI
7
7
  | OpenAI::Beta::PersistedAgentTool::ProgrammaticToolCalling
8
8
  | OpenAI::Beta::PersistedAgentTool::Mcp
9
9
  | OpenAI::Beta::PersistedAgentTool::WebSearch
10
+ | OpenAI::Beta::PersistedAgentTool::ComputerUse
10
11
 
11
12
  module PersistedAgentTool
12
13
  extend OpenAI::Internal::Type::Union
@@ -305,6 +306,27 @@ module OpenAI
305
306
  end
306
307
  end
307
308
 
309
+ type computer_use = { include_screenshots: bool, ?type: :computer_use }
310
+
311
+ class ComputerUse < OpenAI::Internal::Type::BaseModel
312
+ # Whether computer tool outputs include screenshots.
313
+ attr_accessor include_screenshots: bool
314
+
315
+ # The type of the object. Always `computer_use`.
316
+ attr_accessor type: :computer_use
317
+
318
+ # @param include_screenshots
319
+ # Whether computer tool outputs include screenshots.
320
+ # @param type
321
+ # The type of the object. Always `computer_use`.
322
+ def initialize: (
323
+ include_screenshots: bool,
324
+ ?type: :computer_use
325
+ ) -> void
326
+
327
+ def to_hash: -> { include_screenshots: bool, ?type: :computer_use }
328
+ end
329
+
308
330
  def self?.variants: -> ::Array[OpenAI::Models::Beta::persisted_agent_tool]
309
331
  end
310
332
  end
@@ -7,6 +7,7 @@ module OpenAI
7
7
  | OpenAI::Beta::PersistedAgentToolParam::ProgrammaticToolCalling
8
8
  | OpenAI::Beta::PersistedAgentToolParam::Mcp
9
9
  | OpenAI::Beta::PersistedAgentToolParam::WebSearch
10
+ | OpenAI::Beta::PersistedAgentToolParam::ComputerUse
10
11
 
11
12
  module PersistedAgentToolParam
12
13
  extend OpenAI::Internal::Type::Union
@@ -330,6 +331,30 @@ module OpenAI
330
331
  end
331
332
  end
332
333
 
334
+ type computer_use = { ?type: :computer_use, ?include_screenshots: bool }
335
+
336
+ class ComputerUse < OpenAI::Internal::Type::BaseModel
337
+ # The type of the object. Always `computer_use`.
338
+ attr_accessor type: :computer_use
339
+
340
+ # Whether computer tool outputs include screenshots. Defaults to `false`.
341
+ attr_reader include_screenshots: bool?
342
+
343
+ # Whether computer tool outputs include screenshots. Defaults to `false`.
344
+ def include_screenshots=: (bool) -> bool
345
+
346
+ # @param include_screenshots
347
+ # Whether computer tool outputs include screenshots. Defaults to `false`.
348
+ # @param type
349
+ # The type of the object. Always `computer_use`.
350
+ def initialize: (
351
+ ?include_screenshots: bool,
352
+ ?type: :computer_use
353
+ ) -> void
354
+
355
+ def to_hash: -> { ?type: :computer_use, ?include_screenshots: bool }
356
+ end
357
+
333
358
  def self?.variants: -> ::Array[OpenAI::Models::Beta::persisted_agent_tool_param]
334
359
  end
335
360
  end
@@ -31,6 +31,7 @@ module OpenAI
31
31
  | :usage_limit_exceeded
32
32
  | :credit_balance_exhausted
33
33
  | :rate_limit_exceeded
34
+ | :flex_unavailable
34
35
  | :server_overloaded
35
36
  | :cyber_policy
36
37
  | :misalignment_policy_violation
@@ -63,6 +64,9 @@ module OpenAI
63
64
  # The request exceeds the available rate limit.
64
65
  RATE_LIMIT_EXCEEDED: :rate_limit_exceeded
65
66
 
67
+ # Flex processing is temporarily unavailable.
68
+ FLEX_UNAVAILABLE: :flex_unavailable
69
+
66
70
  # The model service is temporarily overloaded.
67
71
  SERVER_OVERLOADED: :server_overloaded
68
72
 
@@ -81,7 +81,7 @@ module OpenAI
81
81
  ?detail: OpenAI::Models::Chat::ChatCompletionContentPartImage::ImageURL::detail
82
82
  }
83
83
 
84
- type detail = :auto | :low | :high
84
+ type detail = :auto | :low | :high | :original
85
85
 
86
86
  module Detail
87
87
  extend OpenAI::Internal::Type::Enum
@@ -89,6 +89,7 @@ module OpenAI
89
89
  AUTO: :auto
90
90
  LOW: :low
91
91
  HIGH: :high
92
+ ORIGINAL: :original
92
93
 
93
94
  def self?.values: -> ::Array[OpenAI::Models::Chat::ChatCompletionContentPartImage::ImageURL::detail]
94
95
  end
@@ -81,7 +81,12 @@ module OpenAI
81
81
  end
82
82
 
83
83
  type transport_dtmf_send =
84
- { event: String, event_id: String, ?type: :"transport.dtmf.send" }
84
+ {
85
+ event: String,
86
+ event_id: String,
87
+ ?type: :"transport.dtmf.send",
88
+ ?client_event_id: String
89
+ }
85
90
 
86
91
  class TransportDtmfSend < OpenAI::Internal::Type::BaseModel
87
92
  attr_accessor event: String
@@ -90,16 +95,26 @@ module OpenAI
90
95
 
91
96
  attr_accessor type: :"transport.dtmf.send"
92
97
 
98
+ # The event_id of the client command, when supplied.
99
+ attr_reader client_event_id: String?
100
+
101
+ # The event_id of the client command, when supplied.
102
+ def client_event_id=: (String) -> String
103
+
104
+ # @param client_event_id
105
+ # The event_id of the client command, when supplied.
93
106
  def initialize: (
94
107
  event: String,
95
108
  event_id: String,
109
+ ?client_event_id: String,
96
110
  ?type: :"transport.dtmf.send"
97
111
  ) -> void
98
112
 
99
113
  def to_hash: -> {
100
114
  event: String,
101
115
  event_id: String,
102
- ?type: :"transport.dtmf.send"
116
+ ?type: :"transport.dtmf.send",
117
+ ?client_event_id: String
103
118
  }
104
119
  end
105
120
 
@@ -81,7 +81,12 @@ module OpenAI
81
81
  end
82
82
 
83
83
  type transport_dtmf_send =
84
- { event: String, event_id: String, ?type: :"transport.dtmf.send" }
84
+ {
85
+ event: String,
86
+ event_id: String,
87
+ ?type: :"transport.dtmf.send",
88
+ ?client_event_id: String
89
+ }
85
90
 
86
91
  class TransportDtmfSend < OpenAI::Internal::Type::BaseModel
87
92
  attr_accessor event: String
@@ -90,16 +95,26 @@ module OpenAI
90
95
 
91
96
  attr_accessor type: :"transport.dtmf.send"
92
97
 
98
+ # The event_id of the client command, when supplied.
99
+ attr_reader client_event_id: String?
100
+
101
+ # The event_id of the client command, when supplied.
102
+ def client_event_id=: (String) -> String
103
+
104
+ # @param client_event_id
105
+ # The event_id of the client command, when supplied.
93
106
  def initialize: (
94
107
  event: String,
95
108
  event_id: String,
109
+ ?client_event_id: String,
96
110
  ?type: :"transport.dtmf.send"
97
111
  ) -> void
98
112
 
99
113
  def to_hash: -> {
100
114
  event: String,
101
115
  event_id: String,
102
- ?type: :"transport.dtmf.send"
116
+ ?type: :"transport.dtmf.send",
117
+ ?client_event_id: String
103
118
  }
104
119
  end
105
120
 
@@ -0,0 +1,39 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ module Translations
5
+ type client_secret_create_params =
6
+ {
7
+ session: OpenAI::Realtime::RealtimeTranslationSessionCreateRequest,
8
+ ?expires_after: OpenAI::Realtime::RealtimeTranslationClientSecretCreateRequest::ExpiresAfter,
9
+ ?request_options: OpenAI::request_opts
10
+ }
11
+
12
+ class ClientSecretCreateParams < OpenAI::Models::Realtime::RealtimeTranslationClientSecretCreateRequest
13
+ extend OpenAI::Internal::Type::RequestParameters::Converter
14
+ include OpenAI::Internal::Type::RequestParameters
15
+
16
+ # @param session
17
+ # Realtime translation session configuration. Translation sessions stream source
18
+ # audio in and translated audio plus transcript deltas out continuously.
19
+ # @param expires_after
20
+ # Configuration for the client secret expiration. Expiration refers to the time
21
+ # after which a client secret will no longer be valid for creating sessions. The
22
+ # session itself may continue after that time once started. A secret can be used
23
+ # to create multiple sessions until it expires.
24
+ def initialize: (
25
+ session: OpenAI::Realtime::RealtimeTranslationSessionCreateRequest,
26
+ ?expires_after: OpenAI::Realtime::RealtimeTranslationClientSecretCreateRequest::ExpiresAfter,
27
+ ?request_options: OpenAI::request_opts
28
+ ) -> void
29
+
30
+ def to_hash: -> {
31
+ session: OpenAI::Realtime::RealtimeTranslationSessionCreateRequest,
32
+ ?expires_after: OpenAI::Realtime::RealtimeTranslationClientSecretCreateRequest::ExpiresAfter,
33
+ ?request_options: OpenAI::RequestOptions
34
+ }
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -69,7 +69,7 @@ module OpenAI
69
69
  # The filename of the file cited.
70
70
  attr_accessor filename: String
71
71
 
72
- # The index of the file in the list of files.
72
+ # The index in the output text at which to insert the file citation.
73
73
  attr_accessor index: Integer
74
74
 
75
75
  # The type of the file citation. Always `file_citation`.
@@ -80,7 +80,7 @@ module OpenAI
80
80
  # @param filename
81
81
  # The filename of the file cited.
82
82
  # @param index
83
- # The index of the file in the list of files.
83
+ # The index in the output text at which to insert the file citation.
84
84
  # @param type
85
85
  # The type of the file citation. Always `file_citation`.
86
86
  def initialize: (
@@ -92,7 +92,7 @@ module OpenAI
92
92
  # The filename of the file cited.
93
93
  attr_accessor filename: String
94
94
 
95
- # The index of the file in the list of files.
95
+ # The index in the output text at which to insert the file citation.
96
96
  attr_accessor index: Integer
97
97
 
98
98
  # The type of the file citation. Always `file_citation`.
@@ -103,7 +103,7 @@ module OpenAI
103
103
  # @param filename
104
104
  # The filename of the file cited.
105
105
  # @param index
106
- # The index of the file in the list of files.
106
+ # The index in the output text at which to insert the file citation.
107
107
  # @param type
108
108
  # The type of the file citation. Always `file_citation`.
109
109
  def initialize: (
@@ -4,6 +4,23 @@ module OpenAI
4
4
  class Agents
5
5
  class Environments
6
6
  class Files
7
+ # Beta file helpers.
8
+ def prepare: (
9
+ Hash[String, String | Pathname] files,
10
+ ?request_options: OpenAI::request_opts
11
+ ) -> OpenAI::Helpers::Beta::Agents::PreparedFiles
12
+ def prepare_directory: (
13
+ String | Pathname directory,
14
+ destination: String,
15
+ include: Array[String],
16
+ ?request_options: OpenAI::request_opts
17
+ ) -> OpenAI::Helpers::Beta::Agents::PreparedFiles
18
+ def upload: (
19
+ String environment_id,
20
+ file: String | Pathname,
21
+ path: String,
22
+ ?request_options: OpenAI::request_opts
23
+ ) -> OpenAI::Helpers::Beta::Agents::PreparedFiles
7
24
  def create: (
8
25
  String environment_id,
9
26
  hosted_environment_file_param: OpenAI::Models::Beta::hosted_environment_file_param,
@@ -6,6 +6,7 @@ module OpenAI
6
6
  class Templates
7
7
  def create: (
8
8
  ?capability_directories: ::Array[String]?,
9
+ ?desktop: OpenAI::Beta::Agents::Environments::TemplateCreateParams::Desktop?,
9
10
  ?env: ::Hash[Symbol, String]?,
10
11
  ?files: ::Array[OpenAI::Models::Beta::hosted_environment_file_param]?,
11
12
  ?name: String?,
@@ -25,6 +26,7 @@ module OpenAI
25
26
  def update: (
26
27
  String environment_template_id,
27
28
  ?capability_directories: ::Array[String]?,
29
+ ?desktop: OpenAI::Beta::Agents::Environments::TemplateUpdateParams::Desktop?,
28
30
  ?env: ::Hash[Symbol, String]?,
29
31
  ?files: ::Array[OpenAI::Models::Beta::hosted_environment_file_param]?,
30
32
  ?name: String?,
@@ -4,6 +4,10 @@ module OpenAI
4
4
  class Agents
5
5
  class Sessions
6
6
  class Artifacts
7
+ # Beta result-scoped downloads.
8
+ def for_result: (
9
+ OpenAI::Helpers::Beta::Agents::TurnResult result
10
+ ) -> OpenAI::Helpers::Beta::Agents::ResultArtifacts
7
11
  def retrieve: (
8
12
  String artifact_id,
9
13
  session_id: String,
@@ -0,0 +1,21 @@
1
+ module OpenAI
2
+ module Resources
3
+ class Beta
4
+ class Agents
5
+ class Sessions
6
+ class Traces
7
+ def list: (
8
+ String session_id,
9
+ ?after: String,
10
+ ?limit: Integer,
11
+ ?order: OpenAI::Models::Beta::Agents::Sessions::TraceListParams::order,
12
+ ?request_options: OpenAI::request_opts
13
+ ) -> OpenAI::Internal::CursorPage[OpenAI::Beta::Agents::Sessions::SessionTrace]
14
+
15
+ def initialize: (client: OpenAI::Client) -> void
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -11,6 +11,8 @@ module OpenAI
11
11
 
12
12
  attr_reader events: OpenAI::Resources::Beta::Agents::Sessions::Events
13
13
 
14
+ attr_reader traces: OpenAI::Resources::Beta::Agents::Sessions::Traces
15
+
14
16
  attr_reader turns: OpenAI::Resources::Beta::Agents::Sessions::Turns
15
17
 
16
18
  def create: (
@@ -27,11 +29,12 @@ module OpenAI
27
29
  environment: OpenAI::Models::Beta::environment_param,
28
30
  ?agent: OpenAI::Beta::Agents::SessionCreateParams::Agent,
29
31
  ?agent_id: String,
32
+ ?output_type: singleton(OpenAI::Helpers::StructuredOutput::BaseModel)?,
30
33
  ?input: OpenAI::Models::Beta::Agents::SessionCreateParams::input?,
31
34
  ?metadata: ::Hash[Symbol, String]?,
32
35
  ?vault_ids: ::Array[String]?,
33
36
  ?request_options: OpenAI::request_opts
34
- ) -> OpenAI::Internal::Stream[OpenAI::Models::Beta::agent_session_event]
37
+ ) -> OpenAI::Helpers::Beta::Agents::CreationStream
35
38
 
36
39
  def retrieve: (
37
40
  String session_id,
@@ -0,0 +1,17 @@
1
+ module OpenAI
2
+ module Resources
3
+ class Realtime
4
+ class Translations
5
+ class ClientSecrets
6
+ def create: (
7
+ session: OpenAI::Realtime::RealtimeTranslationSessionCreateRequest,
8
+ ?expires_after: OpenAI::Realtime::RealtimeTranslationClientSecretCreateRequest::ExpiresAfter,
9
+ ?request_options: OpenAI::request_opts
10
+ ) -> OpenAI::Realtime::RealtimeTranslationClientSecretCreateResponse
11
+
12
+ def initialize: (client: OpenAI::Client) -> void
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,11 @@
1
+ module OpenAI
2
+ module Resources
3
+ class Realtime
4
+ class Translations
5
+ attr_reader client_secrets: OpenAI::Resources::Realtime::Translations::ClientSecrets
6
+
7
+ def initialize: (client: OpenAI::Client) -> void
8
+ end
9
+ end
10
+ end
11
+ end
@@ -5,6 +5,8 @@ module OpenAI
5
5
 
6
6
  attr_reader calls: OpenAI::Resources::Realtime::Calls
7
7
 
8
+ attr_reader translations: OpenAI::Resources::Realtime::Translations
9
+
8
10
  def initialize: (client: OpenAI::Client) -> void
9
11
  end
10
12
  end