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
@@ -0,0 +1,121 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Beta
7
+
8
+ module Agents
9
+
10
+ module Sessions
11
+
12
+ class TraceListParams < OpenAI::Internal::Type::BaseModel
13
+
14
+ extend OpenAI::Internal::Type::RequestParameters::Converter
15
+ include OpenAI::Internal::Type::RequestParameters
16
+
17
+ OrHash = T.type_alias do
18
+ T.any(
19
+ OpenAI::Beta::Agents::Sessions::TraceListParams,
20
+ OpenAI::Internal::AnyHash
21
+ )
22
+ end
23
+
24
+ sig { returns(String) }
25
+ attr_accessor :session_id
26
+
27
+ # Return resources after this resource ID in the selected order.
28
+ sig { returns(T.nilable(String)) }
29
+ attr_reader :after
30
+
31
+ sig { params(after: String).void }
32
+ attr_writer :after
33
+
34
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
35
+ sig { returns(T.nilable(Integer)) }
36
+ attr_reader :limit
37
+
38
+ sig { params(limit: Integer).void }
39
+ attr_writer :limit
40
+
41
+ # The order in which resources are returned. Defaults to `desc`.
42
+ sig { returns(T.nilable(OpenAI::Beta::Agents::Sessions::TraceListParams::Order::OrSymbol)) }
43
+ attr_reader :order
44
+
45
+ sig { params(order: OpenAI::Beta::Agents::Sessions::TraceListParams::Order::OrSymbol).void }
46
+ attr_writer :order
47
+
48
+ sig do
49
+ params(
50
+
51
+ session_id: String,
52
+
53
+ after: String,
54
+
55
+ limit: Integer,
56
+
57
+ order: OpenAI::Beta::Agents::Sessions::TraceListParams::Order::OrSymbol,
58
+
59
+ request_options: OpenAI::RequestOptions::OrHash
60
+ )
61
+ .returns(T.attached_class)
62
+ end
63
+ def self.new(
64
+
65
+ session_id:,
66
+
67
+ # Return resources after this resource ID in the selected order.
68
+ after: nil,
69
+
70
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
71
+ limit: nil,
72
+
73
+ # The order in which resources are returned. Defaults to `desc`.
74
+ order: nil,
75
+
76
+ request_options: {}
77
+ )
78
+ end
79
+
80
+ sig do
81
+ override.returns(
82
+ {
83
+ session_id: String,
84
+ after: String,
85
+ limit: Integer,
86
+ order: OpenAI::Beta::Agents::Sessions::TraceListParams::Order::OrSymbol,
87
+ request_options: OpenAI::RequestOptions
88
+ }
89
+ )
90
+ end
91
+ def to_hash
92
+ end
93
+
94
+ # The order in which resources are returned. Defaults to `desc`.
95
+ module Order
96
+ extend OpenAI::Internal::Type::Enum
97
+
98
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Beta::Agents::Sessions::TraceListParams::Order) }
99
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
100
+
101
+ # Returns resources in ascending order.
102
+ ASC = T.let(:asc, OpenAI::Beta::Agents::Sessions::TraceListParams::Order::TaggedSymbol)
103
+
104
+ # Returns resources in descending order.
105
+ DESC = T.let(:desc, OpenAI::Beta::Agents::Sessions::TraceListParams::Order::TaggedSymbol)
106
+
107
+ sig { override.returns(T::Array[OpenAI::Beta::Agents::Sessions::TraceListParams::Order::TaggedSymbol]) }
108
+ def self.values
109
+ end
110
+ end
111
+
112
+ end
113
+
114
+ end
115
+
116
+ end
117
+
118
+ end
119
+
120
+ end
121
+ end
@@ -64,14 +64,14 @@ module OpenAI
64
64
 
65
65
  created_at: Integer,
66
66
 
67
- metadata: T::Hash[Symbol, String],
68
-
69
67
  name: String,
70
68
 
71
69
  updated_at: Integer,
72
70
 
73
71
  vault_id: String,
74
72
 
73
+ metadata: T::Hash[Symbol, String],
74
+
75
75
  object: Symbol
76
76
  )
77
77
  .returns(T.attached_class)
@@ -87,9 +87,6 @@ module OpenAI
87
87
  # The Unix timestamp, in seconds, when the credential was created.
88
88
  created_at:,
89
89
 
90
- # Application-defined key-value pairs associated with this credential.
91
- metadata:,
92
-
93
90
  # The human-readable name of the credential.
94
91
  name:,
95
92
 
@@ -99,6 +96,9 @@ module OpenAI
99
96
  # The ID of the vault containing this credential.
100
97
  vault_id:,
101
98
 
99
+ # Application-defined key-value pairs associated with this credential.
100
+ metadata: {},
101
+
102
102
  # The object type. Always `vault.credential`.
103
103
 
104
104
  object: :"vault.credential"
@@ -131,7 +131,7 @@ module OpenAI
131
131
  sig { returns(String) }
132
132
  attr_accessor :filename
133
133
 
134
- # The index of the file in the list of files.
134
+ # The index in the output text at which to insert the file citation.
135
135
  sig { returns(Integer) }
136
136
  attr_accessor :index
137
137
 
@@ -161,7 +161,7 @@ module OpenAI
161
161
  # The filename of the file cited.
162
162
  filename:,
163
163
 
164
- # The index of the file in the list of files.
164
+ # The index in the output text at which to insert the file citation.
165
165
  index:,
166
166
 
167
167
  # The type of the file citation. Always `file_citation`.
@@ -155,7 +155,7 @@ module OpenAI
155
155
  sig { returns(String) }
156
156
  attr_accessor :filename
157
157
 
158
- # The index of the file in the list of files.
158
+ # The index in the output text at which to insert the file citation.
159
159
  sig { returns(Integer) }
160
160
  attr_accessor :index
161
161
 
@@ -185,7 +185,7 @@ module OpenAI
185
185
  # The filename of the file cited.
186
186
  filename:,
187
187
 
188
- # The index of the file in the list of files.
188
+ # The index in the output text at which to insert the file citation.
189
189
  index:,
190
190
 
191
191
  # The type of the file citation. Always `file_citation`.
@@ -102,6 +102,18 @@ module OpenAI
102
102
  sig { returns(Symbol) }
103
103
  attr_accessor :type
104
104
 
105
+ # The effective CPU and memory tier, or null when unknown or outside the public
106
+ # tiers.
107
+ sig { returns(T.nilable(OpenAI::Beta::Environment::OpenAIHosted::ContainerSize::TaggedSymbol)) }
108
+ attr_accessor :container_size
109
+
110
+ # The effective desktop configuration.
111
+ sig { returns(T.nilable(OpenAI::Beta::Environment::OpenAIHosted::Desktop)) }
112
+ attr_reader :desktop
113
+
114
+ sig { params(desktop: OpenAI::Beta::Environment::OpenAIHosted::Desktop::OrHash).void }
115
+ attr_writer :desktop
116
+
105
117
  # An environment hosted by OpenAI.
106
118
  sig do
107
119
  params(
@@ -127,6 +139,10 @@ module OpenAI
127
139
  T.any(OpenAI::Beta::HostedSkillReference::OrHash, OpenAI::Beta::HostedSkill::Inline::OrHash)
128
140
  ],
129
141
 
142
+ container_size: T.nilable(OpenAI::Beta::Environment::OpenAIHosted::ContainerSize::OrSymbol),
143
+
144
+ desktop: OpenAI::Beta::Environment::OpenAIHosted::Desktop::OrHash,
145
+
130
146
  type: Symbol
131
147
  )
132
148
  .returns(T.attached_class)
@@ -154,6 +170,13 @@ module OpenAI
154
170
  # Skills installed in the environment, excluding their archive contents.
155
171
  skills:,
156
172
 
173
+ # The effective CPU and memory tier, or null when unknown or outside the public
174
+ # tiers.
175
+ container_size: nil,
176
+
177
+ # The effective desktop configuration.
178
+ desktop: nil,
179
+
157
180
  # The type of the object. Always `openai_hosted`.
158
181
 
159
182
  type: :openai_hosted
@@ -170,7 +193,9 @@ module OpenAI
170
193
  packages: OpenAI::Beta::Environment::OpenAIHosted::Packages,
171
194
  plugins: T::Array[OpenAI::Beta::HostedPlugin],
172
195
  skills: T::Array[OpenAI::Beta::HostedSkill::Variants],
173
- type: Symbol
196
+ type: Symbol,
197
+ container_size: T.nilable(OpenAI::Beta::Environment::OpenAIHosted::ContainerSize::TaggedSymbol),
198
+ desktop: OpenAI::Beta::Environment::OpenAIHosted::Desktop
174
199
  }
175
200
  )
176
201
  end
@@ -238,7 +263,7 @@ module OpenAI
238
263
  # Disables network access.
239
264
  DISABLED = T.let(:disabled, OpenAI::Beta::Environment::OpenAIHosted::Network::Access::TaggedSymbol)
240
265
 
241
- # Allows access only to configured domains.
266
+ # Applies the configured domain restrictions.
242
267
  RESTRICTED = T.let(:restricted, OpenAI::Beta::Environment::OpenAIHosted::Network::Access::TaggedSymbol)
243
268
 
244
269
  sig {
@@ -304,6 +329,61 @@ module OpenAI
304
329
  end
305
330
 
306
331
  end
332
+
333
+ # The effective CPU and memory tier, or null when unknown or outside the public
334
+ # tiers.
335
+ module ContainerSize
336
+ extend OpenAI::Internal::Type::Enum
337
+
338
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Beta::Environment::OpenAIHosted::ContainerSize) }
339
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
340
+
341
+ SMALL = T.let(:small, OpenAI::Beta::Environment::OpenAIHosted::ContainerSize::TaggedSymbol)
342
+ MEDIUM = T.let(:medium, OpenAI::Beta::Environment::OpenAIHosted::ContainerSize::TaggedSymbol)
343
+ LARGE = T.let(:large, OpenAI::Beta::Environment::OpenAIHosted::ContainerSize::TaggedSymbol)
344
+
345
+ sig { override.returns(T::Array[OpenAI::Beta::Environment::OpenAIHosted::ContainerSize::TaggedSymbol]) }
346
+ def self.values
347
+ end
348
+ end
349
+
350
+ class Desktop < OpenAI::Internal::Type::BaseModel
351
+ OrHash = T.type_alias do
352
+ T.any(
353
+ OpenAI::Beta::Environment::OpenAIHosted::Desktop,
354
+ OpenAI::Internal::AnyHash
355
+ )
356
+ end
357
+
358
+ # Whether the environment provisions a desktop and browser proxy.
359
+ sig { returns(T::Boolean) }
360
+ attr_accessor :enabled
361
+
362
+ # The effective desktop configuration.
363
+ sig do
364
+ params(
365
+
366
+ enabled: T::Boolean
367
+ )
368
+ .returns(T.attached_class)
369
+ end
370
+ def self.new(
371
+
372
+ # Whether the environment provisions a desktop and browser proxy.
373
+
374
+ enabled:
375
+ )
376
+ end
377
+
378
+ sig do
379
+ override.returns(
380
+ {enabled: T::Boolean}
381
+ )
382
+ end
383
+ def to_hash
384
+ end
385
+
386
+ end
307
387
  end
308
388
 
309
389
  class SelfHosted < OpenAI::Internal::Type::BaseModel
@@ -72,6 +72,21 @@ module OpenAI
72
72
  sig { returns(T.nilable(T::Array[String])) }
73
73
  attr_accessor :capability_directories
74
74
 
75
+ # The hosted container size. Omission selects the medium tier.
76
+ sig { returns(T.nilable(OpenAI::Beta::EnvironmentParam::OpenAIHosted::ContainerSize::OrSymbol)) }
77
+ attr_reader :container_size
78
+
79
+ sig { params(container_size: OpenAI::Beta::EnvironmentParam::OpenAIHosted::ContainerSize::OrSymbol).void }
80
+ attr_writer :container_size
81
+
82
+ # Desktop provisioning. Omission or null inherits the template setting, or
83
+ # defaults to disabled.
84
+ sig { returns(T.nilable(OpenAI::Beta::EnvironmentParam::OpenAIHosted::Desktop)) }
85
+ attr_reader :desktop
86
+
87
+ sig { params(desktop: T.nilable(OpenAI::Beta::EnvironmentParam::OpenAIHosted::Desktop::OrHash)).void }
88
+ attr_writer :desktop
89
+
75
90
  # Environment variables made available to the agent.
76
91
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
77
92
  attr_accessor :env
@@ -140,6 +155,10 @@ module OpenAI
140
155
 
141
156
  capability_directories: T.nilable(T::Array[String]),
142
157
 
158
+ container_size: OpenAI::Beta::EnvironmentParam::OpenAIHosted::ContainerSize::OrSymbol,
159
+
160
+ desktop: T.nilable(OpenAI::Beta::EnvironmentParam::OpenAIHosted::Desktop::OrHash),
161
+
143
162
  env: T.nilable(T::Hash[Symbol, String]),
144
163
 
145
164
  environment_template_id: String,
@@ -180,6 +199,13 @@ module OpenAI
180
199
  # list.
181
200
  capability_directories: nil,
182
201
 
202
+ # The hosted container size. Omission selects the medium tier.
203
+ container_size: nil,
204
+
205
+ # Desktop provisioning. Omission or null inherits the template setting, or
206
+ # defaults to disabled.
207
+ desktop: nil,
208
+
183
209
  # Environment variables made available to the agent.
184
210
  env: nil,
185
211
 
@@ -218,6 +244,8 @@ module OpenAI
218
244
  {
219
245
  type: Symbol,
220
246
  capability_directories: T.nilable(T::Array[String]),
247
+ container_size: OpenAI::Beta::EnvironmentParam::OpenAIHosted::ContainerSize::OrSymbol,
248
+ desktop: T.nilable(OpenAI::Beta::EnvironmentParam::OpenAIHosted::Desktop),
221
249
  env: T.nilable(T::Hash[Symbol, String]),
222
250
  environment_template_id: String,
223
251
  files: T.nilable(
@@ -243,6 +271,63 @@ module OpenAI
243
271
  def to_hash
244
272
  end
245
273
 
274
+ # The hosted container size. Omission selects the medium tier.
275
+ module ContainerSize
276
+ extend OpenAI::Internal::Type::Enum
277
+
278
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Beta::EnvironmentParam::OpenAIHosted::ContainerSize) }
279
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
280
+
281
+ SMALL = T.let(:small, OpenAI::Beta::EnvironmentParam::OpenAIHosted::ContainerSize::TaggedSymbol)
282
+ MEDIUM = T.let(:medium, OpenAI::Beta::EnvironmentParam::OpenAIHosted::ContainerSize::TaggedSymbol)
283
+ LARGE = T.let(:large, OpenAI::Beta::EnvironmentParam::OpenAIHosted::ContainerSize::TaggedSymbol)
284
+
285
+ sig {
286
+ override.returns(T::Array[OpenAI::Beta::EnvironmentParam::OpenAIHosted::ContainerSize::TaggedSymbol])
287
+ }
288
+ def self.values
289
+ end
290
+ end
291
+
292
+ class Desktop < OpenAI::Internal::Type::BaseModel
293
+ OrHash = T.type_alias do
294
+ T.any(
295
+ OpenAI::Beta::EnvironmentParam::OpenAIHosted::Desktop,
296
+ OpenAI::Internal::AnyHash
297
+ )
298
+ end
299
+
300
+ # Whether to provision the desktop and its browser proxy.
301
+ sig { returns(T::Boolean) }
302
+ attr_accessor :enabled
303
+
304
+ # Desktop provisioning. Omission or null inherits the template setting, or
305
+ # defaults to disabled.
306
+ sig do
307
+ params(
308
+
309
+ enabled: T::Boolean
310
+ )
311
+ .returns(T.attached_class)
312
+ end
313
+ def self.new(
314
+
315
+ # Whether to provision the desktop and its browser proxy.
316
+
317
+ enabled:
318
+ )
319
+ end
320
+
321
+ sig do
322
+ override.returns(
323
+ {enabled: T::Boolean}
324
+ )
325
+ end
326
+ def to_hash
327
+ end
328
+
329
+ end
330
+
246
331
  class Network < OpenAI::Internal::Type::BaseModel
247
332
  OrHash = T.type_alias do
248
333
  T.any(
@@ -259,6 +344,12 @@ module OpenAI
259
344
  sig { returns(T.nilable(T::Array[String])) }
260
345
  attr_accessor :allowed_domains
261
346
 
347
+ # Domains blocked for both executor and browser when access is restricted. A
348
+ # nonempty list requires `access: restricted` and cannot be combined with nonempty
349
+ # `allowed_domains`. Wildcard domains are not supported.
350
+ sig { returns(T.nilable(T::Array[String])) }
351
+ attr_accessor :blocked_domains
352
+
262
353
  # Network access policy for the environment. Defaults to disabled for GA requests
263
354
  # and enabled for beta requests.
264
355
  sig do
@@ -266,7 +357,9 @@ module OpenAI
266
357
 
267
358
  access: OpenAI::Beta::EnvironmentParam::OpenAIHosted::Network::Access::OrSymbol,
268
359
 
269
- allowed_domains: T.nilable(T::Array[String])
360
+ allowed_domains: T.nilable(T::Array[String]),
361
+
362
+ blocked_domains: T.nilable(T::Array[String])
270
363
  )
271
364
  .returns(T.attached_class)
272
365
  end
@@ -276,8 +369,13 @@ module OpenAI
276
369
  access:,
277
370
 
278
371
  # Domains the environment may access when network access is restricted.
372
+ allowed_domains: nil,
373
+
374
+ # Domains blocked for both executor and browser when access is restricted. A
375
+ # nonempty list requires `access: restricted` and cannot be combined with nonempty
376
+ # `allowed_domains`. Wildcard domains are not supported.
279
377
 
280
- allowed_domains: nil
378
+ blocked_domains: nil
281
379
  )
282
380
  end
283
381
 
@@ -285,7 +383,8 @@ module OpenAI
285
383
  override.returns(
286
384
  {
287
385
  access: OpenAI::Beta::EnvironmentParam::OpenAIHosted::Network::Access::OrSymbol,
288
- allowed_domains: T.nilable(T::Array[String])
386
+ allowed_domains: T.nilable(T::Array[String]),
387
+ blocked_domains: T.nilable(T::Array[String])
289
388
  }
290
389
  )
291
390
  end
@@ -307,7 +406,7 @@ module OpenAI
307
406
  # Disables network access.
308
407
  DISABLED = T.let(:disabled, OpenAI::Beta::EnvironmentParam::OpenAIHosted::Network::Access::TaggedSymbol)
309
408
 
310
- # Allows access only to configured domains.
409
+ # Applies the configured domain restrictions.
311
410
  RESTRICTED = T.let(
312
411
  :restricted,
313
412
  OpenAI::Beta::EnvironmentParam::OpenAIHosted::Network::Access::TaggedSymbol
@@ -15,7 +15,8 @@ module OpenAI
15
15
  OpenAI::Beta::PersistedAgentTool::ToolSearch,
16
16
  OpenAI::Beta::PersistedAgentTool::ProgrammaticToolCalling,
17
17
  OpenAI::Beta::PersistedAgentTool::Mcp,
18
- OpenAI::Beta::PersistedAgentTool::WebSearch
18
+ OpenAI::Beta::PersistedAgentTool::WebSearch,
19
+ OpenAI::Beta::PersistedAgentTool::ComputerUse
19
20
  )
20
21
  end
21
22
 
@@ -495,6 +496,53 @@ module OpenAI
495
496
  end
496
497
  end
497
498
 
499
+ class ComputerUse < OpenAI::Internal::Type::BaseModel
500
+ OrHash = T.type_alias do
501
+ T.any(
502
+ OpenAI::Beta::PersistedAgentTool::ComputerUse,
503
+ OpenAI::Internal::AnyHash
504
+ )
505
+ end
506
+
507
+ # Whether computer tool outputs include screenshots.
508
+ sig { returns(T::Boolean) }
509
+ attr_accessor :include_screenshots
510
+
511
+ # The type of the object. Always `computer_use`.
512
+ sig { returns(Symbol) }
513
+ attr_accessor :type
514
+
515
+ # Browser use in an OpenAI-hosted session.
516
+ sig do
517
+ params(
518
+
519
+ include_screenshots: T::Boolean,
520
+
521
+ type: Symbol
522
+ )
523
+ .returns(T.attached_class)
524
+ end
525
+ def self.new(
526
+
527
+ # Whether computer tool outputs include screenshots.
528
+ include_screenshots:,
529
+
530
+ # The type of the object. Always `computer_use`.
531
+
532
+ type: :computer_use
533
+ )
534
+ end
535
+
536
+ sig do
537
+ override.returns(
538
+ {include_screenshots: T::Boolean, type: Symbol}
539
+ )
540
+ end
541
+ def to_hash
542
+ end
543
+
544
+ end
545
+
498
546
  sig { override.returns(T::Array[OpenAI::Beta::PersistedAgentTool::Variants]) }
499
547
  def self.variants
500
548
  end
@@ -15,7 +15,8 @@ module OpenAI
15
15
  OpenAI::Beta::PersistedAgentToolParam::ToolSearch,
16
16
  OpenAI::Beta::PersistedAgentToolParam::ProgrammaticToolCalling,
17
17
  OpenAI::Beta::PersistedAgentToolParam::Mcp,
18
- OpenAI::Beta::PersistedAgentToolParam::WebSearch
18
+ OpenAI::Beta::PersistedAgentToolParam::WebSearch,
19
+ OpenAI::Beta::PersistedAgentToolParam::ComputerUse
19
20
  )
20
21
  end
21
22
 
@@ -534,6 +535,56 @@ module OpenAI
534
535
  end
535
536
  end
536
537
 
538
+ class ComputerUse < OpenAI::Internal::Type::BaseModel
539
+ OrHash = T.type_alias do
540
+ T.any(
541
+ OpenAI::Beta::PersistedAgentToolParam::ComputerUse,
542
+ OpenAI::Internal::AnyHash
543
+ )
544
+ end
545
+
546
+ # The type of the object. Always `computer_use`.
547
+ sig { returns(Symbol) }
548
+ attr_accessor :type
549
+
550
+ # Whether computer tool outputs include screenshots. Defaults to `false`.
551
+ sig { returns(T.nilable(T::Boolean)) }
552
+ attr_reader :include_screenshots
553
+
554
+ sig { params(include_screenshots: T::Boolean).void }
555
+ attr_writer :include_screenshots
556
+
557
+ # Browser use in an OpenAI-hosted session.
558
+ sig do
559
+ params(
560
+
561
+ include_screenshots: T::Boolean,
562
+
563
+ type: Symbol
564
+ )
565
+ .returns(T.attached_class)
566
+ end
567
+ def self.new(
568
+
569
+ # Whether computer tool outputs include screenshots. Defaults to `false`.
570
+ include_screenshots: nil,
571
+
572
+ # The type of the object. Always `computer_use`.
573
+
574
+ type: :computer_use
575
+ )
576
+ end
577
+
578
+ sig do
579
+ override.returns(
580
+ {type: Symbol, include_screenshots: T::Boolean}
581
+ )
582
+ end
583
+ def to_hash
584
+ end
585
+
586
+ end
587
+
537
588
  sig { override.returns(T::Array[OpenAI::Beta::PersistedAgentToolParam::Variants]) }
538
589
  def self.variants
539
590
  end
@@ -76,6 +76,9 @@ module OpenAI
76
76
  # The request exceeds the available rate limit.
77
77
  RATE_LIMIT_EXCEEDED = T.let(:rate_limit_exceeded, OpenAI::Beta::SessionTurnError::Code::TaggedSymbol)
78
78
 
79
+ # Flex processing is temporarily unavailable.
80
+ FLEX_UNAVAILABLE = T.let(:flex_unavailable, OpenAI::Beta::SessionTurnError::Code::TaggedSymbol)
81
+
79
82
  # The model service is temporarily overloaded.
80
83
  SERVER_OVERLOADED = T.let(:server_overloaded, OpenAI::Beta::SessionTurnError::Code::TaggedSymbol)
81
84
 
@@ -140,6 +140,7 @@ module OpenAI
140
140
  AUTO = T.let(:auto, OpenAI::Chat::ChatCompletionContentPartImage::ImageURL::Detail::TaggedSymbol)
141
141
  LOW = T.let(:low, OpenAI::Chat::ChatCompletionContentPartImage::ImageURL::Detail::TaggedSymbol)
142
142
  HIGH = T.let(:high, OpenAI::Chat::ChatCompletionContentPartImage::ImageURL::Detail::TaggedSymbol)
143
+ ORIGINAL = T.let(:original, OpenAI::Chat::ChatCompletionContentPartImage::ImageURL::Detail::TaggedSymbol)
143
144
 
144
145
  sig {
145
146
  override.returns(T::Array[OpenAI::Chat::ChatCompletionContentPartImage::ImageURL::Detail::TaggedSymbol])
@@ -159,7 +159,14 @@ module OpenAI
159
159
  sig { returns(Symbol) }
160
160
  attr_accessor :type
161
161
 
162
- # A SIP DTMF keypress successfully sent by the hosted tool. Delivered only to
162
+ # The event_id of the client command, when supplied.
163
+ sig { returns(T.nilable(String)) }
164
+ attr_reader :client_event_id
165
+
166
+ sig { params(client_event_id: String).void }
167
+ attr_writer :client_event_id
168
+
169
+ # A SIP DTMF keypress successfully sent to the SIP trunk. Delivered only to
163
170
  # sideband observers; this is not a client command.
164
171
  sig do
165
172
  params(
@@ -168,6 +175,8 @@ module OpenAI
168
175
 
169
176
  event_id: String,
170
177
 
178
+ client_event_id: String,
179
+
171
180
  type: Symbol
172
181
  )
173
182
  .returns(T.attached_class)
@@ -178,13 +187,16 @@ module OpenAI
178
187
 
179
188
  event_id:,
180
189
 
190
+ # The event_id of the client command, when supplied.
191
+ client_event_id: nil,
192
+
181
193
  type: :"transport.dtmf.send"
182
194
  )
183
195
  end
184
196
 
185
197
  sig do
186
198
  override.returns(
187
- {event: String, event_id: String, type: Symbol}
199
+ {event: String, event_id: String, type: Symbol, client_event_id: T.nilable(String)}
188
200
  )
189
201
  end
190
202
  def to_hash