openai 0.96.0 → 0.97.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 (78) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/README.md +1 -1
  4. data/lib/openai/models/beta/agent.rb +2 -2
  5. data/lib/openai/models/beta/agent_browser_authentication_cancel_param.rb +23 -0
  6. data/lib/openai/models/beta/agent_browser_authentication_submit_param.rb +70 -0
  7. data/lib/openai/models/beta/agent_browser_origin_access_param.rb +45 -0
  8. data/lib/openai/models/beta/agent_create_params.rb +2 -2
  9. data/lib/openai/models/beta/agent_output_item.rb +276 -1
  10. data/lib/openai/models/beta/agent_session.rb +251 -5
  11. data/lib/openai/models/beta/agent_session_input_param.rb +64 -1
  12. data/lib/openai/models/beta/agent_session_item.rb +391 -1
  13. data/lib/openai/models/beta/agent_session_turn_item_added_event.rb +2 -2
  14. data/lib/openai/models/beta/agent_session_turn_item_done_event.rb +2 -2
  15. data/lib/openai/models/beta/agent_tool.rb +27 -1
  16. data/lib/openai/models/beta/agent_tool_param.rb +27 -1
  17. data/lib/openai/models/beta/agent_update_params.rb +2 -2
  18. data/lib/openai/models/beta/agents/environments/environment_template.rb +26 -2
  19. data/lib/openai/models/beta/agents/environments/template_create_params.rb +48 -3
  20. data/lib/openai/models/beta/agents/environments/template_update_params.rb +45 -3
  21. data/lib/openai/models/beta/agents/session_create_params.rb +2 -2
  22. data/lib/openai/models/beta/agents/sessions/event_create_params.rb +2 -2
  23. data/lib/openai/models/beta/environment.rb +26 -2
  24. data/lib/openai/models/beta/environment_param.rb +43 -3
  25. data/lib/openai/models/beta/persisted_agent_tool.rb +27 -1
  26. data/lib/openai/models/beta/persisted_agent_tool_param.rb +27 -1
  27. data/lib/openai/resources/beta/agents/environments/templates.rb +9 -2
  28. data/lib/openai/resources/beta/agents/sessions/events.rb +1 -1
  29. data/lib/openai/resources/beta/agents/sessions/items.rb +1 -1
  30. data/lib/openai/resources/beta/agents/sessions/subagents/items.rb +1 -1
  31. data/lib/openai/resources/beta/agents/sessions/subagents/turns/items.rb +1 -1
  32. data/lib/openai/resources/beta/agents.rb +2 -2
  33. data/lib/openai/version.rb +1 -1
  34. data/lib/openai.rb +3 -0
  35. data/rbi/openai/models/beta/agent.rbi +2 -1
  36. data/rbi/openai/models/beta/agent_browser_authentication_cancel_param.rbi +53 -0
  37. data/rbi/openai/models/beta/agent_browser_authentication_submit_param.rbi +125 -0
  38. data/rbi/openai/models/beta/agent_browser_origin_access_param.rbi +76 -0
  39. data/rbi/openai/models/beta/agent_create_params.rbi +6 -3
  40. data/rbi/openai/models/beta/agent_output_item.rbi +422 -0
  41. data/rbi/openai/models/beta/agent_session.rbi +373 -1
  42. data/rbi/openai/models/beta/agent_session_input_param.rbi +102 -0
  43. data/rbi/openai/models/beta/agent_session_item.rbi +614 -0
  44. data/rbi/openai/models/beta/agent_session_turn_item_added_event.rbi +3 -0
  45. data/rbi/openai/models/beta/agent_session_turn_item_done_event.rbi +2 -0
  46. data/rbi/openai/models/beta/agent_tool.rbi +49 -1
  47. data/rbi/openai/models/beta/agent_tool_param.rbi +52 -1
  48. data/rbi/openai/models/beta/agent_update_params.rbi +6 -3
  49. data/rbi/openai/models/beta/agents/environments/environment_template.rbi +53 -2
  50. data/rbi/openai/models/beta/agents/environments/template_create_params.rbi +74 -4
  51. data/rbi/openai/models/beta/agents/environments/template_update_params.rbi +71 -4
  52. data/rbi/openai/models/beta/agents/session_create_params.rbi +6 -3
  53. data/rbi/openai/models/beta/agents/sessions/event_create_params.rbi +3 -0
  54. data/rbi/openai/models/beta/environment.rbi +53 -2
  55. data/rbi/openai/models/beta/environment_param.rbi +72 -4
  56. data/rbi/openai/models/beta/persisted_agent_tool.rbi +49 -1
  57. data/rbi/openai/models/beta/persisted_agent_tool_param.rbi +52 -1
  58. data/rbi/openai/resources/beta/agents/environments/templates.rbi +7 -0
  59. data/rbi/openai/resources/beta/agents/sessions/events.rbi +1 -0
  60. data/rbi/openai/resources/beta/agents.rbi +4 -2
  61. data/sig/openai/models/beta/agent_browser_authentication_cancel_param.rbs +21 -0
  62. data/sig/openai/models/beta/agent_browser_authentication_submit_param.rbs +63 -0
  63. data/sig/openai/models/beta/agent_browser_origin_access_param.rbs +47 -0
  64. data/sig/openai/models/beta/agent_output_item.rbs +254 -0
  65. data/sig/openai/models/beta/agent_session.rbs +215 -1
  66. data/sig/openai/models/beta/agent_session_input_param.rbs +51 -1
  67. data/sig/openai/models/beta/agent_session_item.rbs +362 -0
  68. data/sig/openai/models/beta/agent_tool.rbs +22 -0
  69. data/sig/openai/models/beta/agent_tool_param.rbs +25 -0
  70. data/sig/openai/models/beta/agents/environments/environment_template.rbs +29 -3
  71. data/sig/openai/models/beta/agents/environments/template_create_params.rbs +39 -4
  72. data/sig/openai/models/beta/agents/environments/template_update_params.rbs +37 -4
  73. data/sig/openai/models/beta/environment.rbs +29 -3
  74. data/sig/openai/models/beta/environment_param.rbs +39 -4
  75. data/sig/openai/models/beta/persisted_agent_tool.rbs +22 -0
  76. data/sig/openai/models/beta/persisted_agent_tool_param.rbs +25 -0
  77. data/sig/openai/resources/beta/agents/environments/templates.rbs +2 -0
  78. metadata +10 -1
@@ -15,7 +15,8 @@ module OpenAI
15
15
  OpenAI::Beta::AgentToolParam::ToolSearch,
16
16
  OpenAI::Beta::AgentToolParam::ProgrammaticToolCalling,
17
17
  OpenAI::Beta::AgentToolParam::Mcp,
18
- OpenAI::Beta::AgentToolParam::WebSearch
18
+ OpenAI::Beta::AgentToolParam::WebSearch,
19
+ OpenAI::Beta::AgentToolParam::ComputerUse
19
20
  )
20
21
  end
21
22
 
@@ -524,6 +525,56 @@ module OpenAI
524
525
  end
525
526
  end
526
527
 
528
+ class ComputerUse < OpenAI::Internal::Type::BaseModel
529
+ OrHash = T.type_alias do
530
+ T.any(
531
+ OpenAI::Beta::AgentToolParam::ComputerUse,
532
+ OpenAI::Internal::AnyHash
533
+ )
534
+ end
535
+
536
+ # The type of the object. Always `computer_use`.
537
+ sig { returns(Symbol) }
538
+ attr_accessor :type
539
+
540
+ # Whether computer tool outputs include screenshots. Defaults to `false`.
541
+ sig { returns(T.nilable(T::Boolean)) }
542
+ attr_reader :include_screenshots
543
+
544
+ sig { params(include_screenshots: T::Boolean).void }
545
+ attr_writer :include_screenshots
546
+
547
+ # Browser use in an OpenAI-hosted session.
548
+ sig do
549
+ params(
550
+
551
+ include_screenshots: T::Boolean,
552
+
553
+ type: Symbol
554
+ )
555
+ .returns(T.attached_class)
556
+ end
557
+ def self.new(
558
+
559
+ # Whether computer tool outputs include screenshots. Defaults to `false`.
560
+ include_screenshots: nil,
561
+
562
+ # The type of the object. Always `computer_use`.
563
+
564
+ type: :computer_use
565
+ )
566
+ end
567
+
568
+ sig do
569
+ override.returns(
570
+ {type: Symbol, include_screenshots: T::Boolean}
571
+ )
572
+ end
573
+ def to_hash
574
+ end
575
+
576
+ end
577
+
527
578
  sig { override.returns(T::Array[OpenAI::Beta::AgentToolParam::Variants]) }
528
579
  def self.variants
529
580
  end
@@ -78,7 +78,8 @@ module OpenAI
78
78
  OpenAI::Beta::PersistedAgentToolParam::ToolSearch,
79
79
  OpenAI::Beta::PersistedAgentToolParam::ProgrammaticToolCalling,
80
80
  OpenAI::Beta::PersistedAgentToolParam::Mcp,
81
- OpenAI::Beta::PersistedAgentToolParam::WebSearch
81
+ OpenAI::Beta::PersistedAgentToolParam::WebSearch,
82
+ OpenAI::Beta::PersistedAgentToolParam::ComputerUse
82
83
  )
83
84
  ]
84
85
  )
@@ -114,7 +115,8 @@ module OpenAI
114
115
  OpenAI::Beta::PersistedAgentToolParam::ToolSearch::OrHash,
115
116
  OpenAI::Beta::PersistedAgentToolParam::ProgrammaticToolCalling::OrHash,
116
117
  OpenAI::Beta::PersistedAgentToolParam::Mcp::OrHash,
117
- OpenAI::Beta::PersistedAgentToolParam::WebSearch::OrHash
118
+ OpenAI::Beta::PersistedAgentToolParam::WebSearch::OrHash,
119
+ OpenAI::Beta::PersistedAgentToolParam::ComputerUse::OrHash
118
120
  )
119
121
  ]
120
122
  ),
@@ -181,7 +183,8 @@ module OpenAI
181
183
  OpenAI::Beta::PersistedAgentToolParam::ToolSearch,
182
184
  OpenAI::Beta::PersistedAgentToolParam::ProgrammaticToolCalling,
183
185
  OpenAI::Beta::PersistedAgentToolParam::Mcp,
184
- OpenAI::Beta::PersistedAgentToolParam::WebSearch
186
+ OpenAI::Beta::PersistedAgentToolParam::WebSearch,
187
+ OpenAI::Beta::PersistedAgentToolParam::ComputerUse
185
188
  )
186
189
  ]
187
190
  ),
@@ -70,6 +70,13 @@ module OpenAI
70
70
  sig { returns(Integer) }
71
71
  attr_accessor :updated_at
72
72
 
73
+ # Desktop configuration for each OpenAI-hosted environment.
74
+ sig { returns(T.nilable(OpenAI::Beta::Agents::Environments::EnvironmentTemplate::Desktop)) }
75
+ attr_reader :desktop
76
+
77
+ sig { params(desktop: OpenAI::Beta::Agents::Environments::EnvironmentTemplate::Desktop::OrHash).void }
78
+ attr_writer :desktop
79
+
73
80
  # Reusable configuration that provisions a fresh OpenAI-hosted environment for
74
81
  # each session.
75
82
  sig do
@@ -105,6 +112,8 @@ module OpenAI
105
112
 
106
113
  updated_at: Integer,
107
114
 
115
+ desktop: OpenAI::Beta::Agents::Environments::EnvironmentTemplate::Desktop::OrHash,
116
+
108
117
  object: Symbol
109
118
  )
110
119
  .returns(T.attached_class)
@@ -141,6 +150,9 @@ module OpenAI
141
150
  # The Unix timestamp, in seconds, when the template was last updated.
142
151
  updated_at:,
143
152
 
153
+ # Desktop configuration for each OpenAI-hosted environment.
154
+ desktop: nil,
155
+
144
156
  # The object type. Always `agent.environment.template`.
145
157
 
146
158
  object: :"agent.environment.template"
@@ -160,7 +172,8 @@ module OpenAI
160
172
  packages: OpenAI::Beta::Agents::Environments::EnvironmentTemplate::Packages,
161
173
  plugins: T::Array[OpenAI::Beta::HostedPlugin],
162
174
  skills: T::Array[OpenAI::Beta::Agents::Environments::EnvironmentTemplate::Skill::Variants],
163
- updated_at: Integer
175
+ updated_at: Integer,
176
+ desktop: OpenAI::Beta::Agents::Environments::EnvironmentTemplate::Desktop
164
177
  }
165
178
  )
166
179
  end
@@ -367,7 +380,7 @@ module OpenAI
367
380
  OpenAI::Beta::Agents::Environments::EnvironmentTemplate::Network::Access::TaggedSymbol
368
381
  )
369
382
 
370
- # Allows access only to configured domains.
383
+ # Applies the configured domain restrictions.
371
384
  RESTRICTED = T.let(
372
385
  :restricted,
373
386
  OpenAI::Beta::Agents::Environments::EnvironmentTemplate::Network::Access::TaggedSymbol
@@ -570,6 +583,44 @@ module OpenAI
570
583
 
571
584
  end
572
585
 
586
+ class Desktop < OpenAI::Internal::Type::BaseModel
587
+ OrHash = T.type_alias do
588
+ T.any(
589
+ OpenAI::Beta::Agents::Environments::EnvironmentTemplate::Desktop,
590
+ OpenAI::Internal::AnyHash
591
+ )
592
+ end
593
+
594
+ # Whether the environment provisions a desktop and browser proxy.
595
+ sig { returns(T::Boolean) }
596
+ attr_accessor :enabled
597
+
598
+ # Desktop configuration for each OpenAI-hosted environment.
599
+ sig do
600
+ params(
601
+
602
+ enabled: T::Boolean
603
+ )
604
+ .returns(T.attached_class)
605
+ end
606
+ def self.new(
607
+
608
+ # Whether the environment provisions a desktop and browser proxy.
609
+
610
+ enabled:
611
+ )
612
+ end
613
+
614
+ sig do
615
+ override.returns(
616
+ {enabled: T::Boolean}
617
+ )
618
+ end
619
+ def to_hash
620
+ end
621
+
622
+ end
623
+
573
624
  end
574
625
 
575
626
  end
@@ -26,6 +26,16 @@ module OpenAI
26
26
  sig { returns(T.nilable(T::Array[String])) }
27
27
  attr_accessor :capability_directories
28
28
 
29
+ # Desktop provisioning. Omission or null inherits the template setting, or
30
+ # defaults to disabled.
31
+ sig { returns(T.nilable(OpenAI::Beta::Agents::Environments::TemplateCreateParams::Desktop)) }
32
+ attr_reader :desktop
33
+
34
+ sig {
35
+ params(desktop: T.nilable(OpenAI::Beta::Agents::Environments::TemplateCreateParams::Desktop::OrHash)).void
36
+ }
37
+ attr_writer :desktop
38
+
29
39
  # Environment variables made available to the agent.
30
40
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
31
41
  attr_accessor :env
@@ -95,6 +105,8 @@ module OpenAI
95
105
 
96
106
  capability_directories: T.nilable(T::Array[String]),
97
107
 
108
+ desktop: T.nilable(OpenAI::Beta::Agents::Environments::TemplateCreateParams::Desktop::OrHash),
109
+
98
110
  env: T.nilable(T::Hash[Symbol, String]),
99
111
 
100
112
  files: T.nilable(
@@ -135,6 +147,10 @@ module OpenAI
135
147
  # list.
136
148
  capability_directories: nil,
137
149
 
150
+ # Desktop provisioning. Omission or null inherits the template setting, or
151
+ # defaults to disabled.
152
+ desktop: nil,
153
+
138
154
  # Environment variables made available to the agent.
139
155
  env: nil,
140
156
 
@@ -169,6 +185,7 @@ module OpenAI
169
185
  override.returns(
170
186
  {
171
187
  capability_directories: T.nilable(T::Array[String]),
188
+ desktop: T.nilable(OpenAI::Beta::Agents::Environments::TemplateCreateParams::Desktop),
172
189
  env: T.nilable(T::Hash[Symbol, String]),
173
190
  files: T.nilable(
174
191
  T::Array[
@@ -195,6 +212,45 @@ module OpenAI
195
212
  def to_hash
196
213
  end
197
214
 
215
+ class Desktop < OpenAI::Internal::Type::BaseModel
216
+ OrHash = T.type_alias do
217
+ T.any(
218
+ OpenAI::Beta::Agents::Environments::TemplateCreateParams::Desktop,
219
+ OpenAI::Internal::AnyHash
220
+ )
221
+ end
222
+
223
+ # Whether to provision the desktop and its browser proxy.
224
+ sig { returns(T::Boolean) }
225
+ attr_accessor :enabled
226
+
227
+ # Desktop provisioning. Omission or null inherits the template setting, or
228
+ # defaults to disabled.
229
+ sig do
230
+ params(
231
+
232
+ enabled: T::Boolean
233
+ )
234
+ .returns(T.attached_class)
235
+ end
236
+ def self.new(
237
+
238
+ # Whether to provision the desktop and its browser proxy.
239
+
240
+ enabled:
241
+ )
242
+ end
243
+
244
+ sig do
245
+ override.returns(
246
+ {enabled: T::Boolean}
247
+ )
248
+ end
249
+ def to_hash
250
+ end
251
+
252
+ end
253
+
198
254
  class Network < OpenAI::Internal::Type::BaseModel
199
255
  OrHash = T.type_alias do
200
256
  T.any(
@@ -211,6 +267,12 @@ module OpenAI
211
267
  sig { returns(T.nilable(T::Array[String])) }
212
268
  attr_accessor :allowed_domains
213
269
 
270
+ # Domains blocked for both executor and browser when access is restricted. A
271
+ # nonempty list requires `access: restricted` and cannot be combined with nonempty
272
+ # `allowed_domains`. Wildcard domains are not supported.
273
+ sig { returns(T.nilable(T::Array[String])) }
274
+ attr_accessor :blocked_domains
275
+
214
276
  # Network access policy for the environment. Defaults to disabled for GA requests
215
277
  # and enabled for beta requests.
216
278
  sig do
@@ -218,7 +280,9 @@ module OpenAI
218
280
 
219
281
  access: OpenAI::Beta::Agents::Environments::TemplateCreateParams::Network::Access::OrSymbol,
220
282
 
221
- allowed_domains: T.nilable(T::Array[String])
283
+ allowed_domains: T.nilable(T::Array[String]),
284
+
285
+ blocked_domains: T.nilable(T::Array[String])
222
286
  )
223
287
  .returns(T.attached_class)
224
288
  end
@@ -228,8 +292,13 @@ module OpenAI
228
292
  access:,
229
293
 
230
294
  # Domains the environment may access when network access is restricted.
295
+ allowed_domains: nil,
296
+
297
+ # Domains blocked for both executor and browser when access is restricted. A
298
+ # nonempty list requires `access: restricted` and cannot be combined with nonempty
299
+ # `allowed_domains`. Wildcard domains are not supported.
231
300
 
232
- allowed_domains: nil
301
+ blocked_domains: nil
233
302
  )
234
303
  end
235
304
 
@@ -237,7 +306,8 @@ module OpenAI
237
306
  override.returns(
238
307
  {
239
308
  access: OpenAI::Beta::Agents::Environments::TemplateCreateParams::Network::Access::OrSymbol,
240
- allowed_domains: T.nilable(T::Array[String])
309
+ allowed_domains: T.nilable(T::Array[String]),
310
+ blocked_domains: T.nilable(T::Array[String])
241
311
  }
242
312
  )
243
313
  end
@@ -265,7 +335,7 @@ module OpenAI
265
335
  OpenAI::Beta::Agents::Environments::TemplateCreateParams::Network::Access::TaggedSymbol
266
336
  )
267
337
 
268
- # Allows access only to configured domains.
338
+ # Applies the configured domain restrictions.
269
339
  RESTRICTED = T.let(
270
340
  :restricted,
271
341
  OpenAI::Beta::Agents::Environments::TemplateCreateParams::Network::Access::TaggedSymbol
@@ -28,6 +28,15 @@ module OpenAI
28
28
  sig { returns(T.nilable(T::Array[String])) }
29
29
  attr_accessor :capability_directories
30
30
 
31
+ # Replacement desktop configuration, or null to disable the desktop.
32
+ sig { returns(T.nilable(OpenAI::Beta::Agents::Environments::TemplateUpdateParams::Desktop)) }
33
+ attr_reader :desktop
34
+
35
+ sig {
36
+ params(desktop: T.nilable(OpenAI::Beta::Agents::Environments::TemplateUpdateParams::Desktop::OrHash)).void
37
+ }
38
+ attr_writer :desktop
39
+
31
40
  # Replacement confidential environment values.
32
41
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
33
42
  attr_accessor :env
@@ -99,6 +108,8 @@ module OpenAI
99
108
 
100
109
  capability_directories: T.nilable(T::Array[String]),
101
110
 
111
+ desktop: T.nilable(OpenAI::Beta::Agents::Environments::TemplateUpdateParams::Desktop::OrHash),
112
+
102
113
  env: T.nilable(T::Hash[Symbol, String]),
103
114
 
104
115
  files: T.nilable(
@@ -140,6 +151,9 @@ module OpenAI
140
151
  # Directories that expose capabilities to the agent.
141
152
  capability_directories: nil,
142
153
 
154
+ # Replacement desktop configuration, or null to disable the desktop.
155
+ desktop: nil,
156
+
143
157
  # Replacement confidential environment values.
144
158
  env: nil,
145
159
 
@@ -175,6 +189,7 @@ module OpenAI
175
189
  {
176
190
  environment_template_id: String,
177
191
  capability_directories: T.nilable(T::Array[String]),
192
+ desktop: T.nilable(OpenAI::Beta::Agents::Environments::TemplateUpdateParams::Desktop),
178
193
  env: T.nilable(T::Hash[Symbol, String]),
179
194
  files: T.nilable(
180
195
  T::Array[
@@ -201,6 +216,44 @@ module OpenAI
201
216
  def to_hash
202
217
  end
203
218
 
219
+ class Desktop < OpenAI::Internal::Type::BaseModel
220
+ OrHash = T.type_alias do
221
+ T.any(
222
+ OpenAI::Beta::Agents::Environments::TemplateUpdateParams::Desktop,
223
+ OpenAI::Internal::AnyHash
224
+ )
225
+ end
226
+
227
+ # Whether to provision the desktop and its browser proxy.
228
+ sig { returns(T::Boolean) }
229
+ attr_accessor :enabled
230
+
231
+ # Replacement desktop configuration, or null to disable the desktop.
232
+ sig do
233
+ params(
234
+
235
+ enabled: T::Boolean
236
+ )
237
+ .returns(T.attached_class)
238
+ end
239
+ def self.new(
240
+
241
+ # Whether to provision the desktop and its browser proxy.
242
+
243
+ enabled:
244
+ )
245
+ end
246
+
247
+ sig do
248
+ override.returns(
249
+ {enabled: T::Boolean}
250
+ )
251
+ end
252
+ def to_hash
253
+ end
254
+
255
+ end
256
+
204
257
  class Network < OpenAI::Internal::Type::BaseModel
205
258
  OrHash = T.type_alias do
206
259
  T.any(
@@ -217,6 +270,12 @@ module OpenAI
217
270
  sig { returns(T.nilable(T::Array[String])) }
218
271
  attr_accessor :allowed_domains
219
272
 
273
+ # Domains blocked for both executor and browser when access is restricted. A
274
+ # nonempty list requires `access: restricted` and cannot be combined with nonempty
275
+ # `allowed_domains`. Wildcard domains are not supported.
276
+ sig { returns(T.nilable(T::Array[String])) }
277
+ attr_accessor :blocked_domains
278
+
220
279
  # Network access available after setup completes. Omit to preserve the current
221
280
  # policy, or pass `null` to reset to disabled for GA requests or enabled for beta
222
281
  # requests.
@@ -225,7 +284,9 @@ module OpenAI
225
284
 
226
285
  access: OpenAI::Beta::Agents::Environments::TemplateUpdateParams::Network::Access::OrSymbol,
227
286
 
228
- allowed_domains: T.nilable(T::Array[String])
287
+ allowed_domains: T.nilable(T::Array[String]),
288
+
289
+ blocked_domains: T.nilable(T::Array[String])
229
290
  )
230
291
  .returns(T.attached_class)
231
292
  end
@@ -235,8 +296,13 @@ module OpenAI
235
296
  access:,
236
297
 
237
298
  # Domains the environment may access when network access is restricted.
299
+ allowed_domains: nil,
300
+
301
+ # Domains blocked for both executor and browser when access is restricted. A
302
+ # nonempty list requires `access: restricted` and cannot be combined with nonempty
303
+ # `allowed_domains`. Wildcard domains are not supported.
238
304
 
239
- allowed_domains: nil
305
+ blocked_domains: nil
240
306
  )
241
307
  end
242
308
 
@@ -244,7 +310,8 @@ module OpenAI
244
310
  override.returns(
245
311
  {
246
312
  access: OpenAI::Beta::Agents::Environments::TemplateUpdateParams::Network::Access::OrSymbol,
247
- allowed_domains: T.nilable(T::Array[String])
313
+ allowed_domains: T.nilable(T::Array[String]),
314
+ blocked_domains: T.nilable(T::Array[String])
248
315
  }
249
316
  )
250
317
  end
@@ -272,7 +339,7 @@ module OpenAI
272
339
  OpenAI::Beta::Agents::Environments::TemplateUpdateParams::Network::Access::TaggedSymbol
273
340
  )
274
341
 
275
- # Allows access only to configured domains.
342
+ # Applies the configured domain restrictions.
276
343
  RESTRICTED = T.let(
277
344
  :restricted,
278
345
  OpenAI::Beta::Agents::Environments::TemplateUpdateParams::Network::Access::TaggedSymbol
@@ -192,7 +192,8 @@ module OpenAI
192
192
  OpenAI::Beta::AgentToolParam::ToolSearch,
193
193
  OpenAI::Beta::AgentToolParam::ProgrammaticToolCalling,
194
194
  OpenAI::Beta::AgentToolParam::Mcp,
195
- OpenAI::Beta::AgentToolParam::WebSearch
195
+ OpenAI::Beta::AgentToolParam::WebSearch,
196
+ OpenAI::Beta::AgentToolParam::ComputerUse
196
197
  )
197
198
  ]
198
199
  )
@@ -224,7 +225,8 @@ module OpenAI
224
225
  OpenAI::Beta::AgentToolParam::ToolSearch::OrHash,
225
226
  OpenAI::Beta::AgentToolParam::ProgrammaticToolCalling::OrHash,
226
227
  OpenAI::Beta::AgentToolParam::Mcp::OrHash,
227
- OpenAI::Beta::AgentToolParam::WebSearch::OrHash
228
+ OpenAI::Beta::AgentToolParam::WebSearch::OrHash,
229
+ OpenAI::Beta::AgentToolParam::ComputerUse::OrHash
228
230
  )
229
231
  ]
230
232
  )
@@ -275,7 +277,8 @@ module OpenAI
275
277
  OpenAI::Beta::AgentToolParam::ToolSearch,
276
278
  OpenAI::Beta::AgentToolParam::ProgrammaticToolCalling,
277
279
  OpenAI::Beta::AgentToolParam::Mcp,
278
- OpenAI::Beta::AgentToolParam::WebSearch
280
+ OpenAI::Beta::AgentToolParam::WebSearch,
281
+ OpenAI::Beta::AgentToolParam::ComputerUse
279
282
  )
280
283
  ]
281
284
  )
@@ -29,6 +29,7 @@ module OpenAI
29
29
  returns(
30
30
  T::Array[
31
31
  T.any(
32
+ OpenAI::Beta::AgentSessionInputParam::AgentSessionInputComputerUseApprovalRequestResult,
32
33
  OpenAI::Beta::AgentSessionInputParam::AgentSessionInputMessage,
33
34
  OpenAI::Beta::AgentSessionInputParam::AgentSessionInputCancel,
34
35
  OpenAI::Beta::AgentSessionInputParam::AgentSessionInputToolResult
@@ -51,6 +52,7 @@ module OpenAI
51
52
 
52
53
  events: T::Array[
53
54
  T.any(
55
+ OpenAI::Beta::AgentSessionInputParam::AgentSessionInputComputerUseApprovalRequestResult::OrHash,
54
56
  OpenAI::Beta::AgentSessionInputParam::AgentSessionInputMessage::OrHash,
55
57
  OpenAI::Beta::AgentSessionInputParam::AgentSessionInputCancel::OrHash,
56
58
  OpenAI::Beta::AgentSessionInputParam::AgentSessionInputToolResult::OrHash
@@ -82,6 +84,7 @@ module OpenAI
82
84
  session_id: String,
83
85
  events: T::Array[
84
86
  T.any(
87
+ OpenAI::Beta::AgentSessionInputParam::AgentSessionInputComputerUseApprovalRequestResult,
85
88
  OpenAI::Beta::AgentSessionInputParam::AgentSessionInputMessage,
86
89
  OpenAI::Beta::AgentSessionInputParam::AgentSessionInputCancel,
87
90
  OpenAI::Beta::AgentSessionInputParam::AgentSessionInputToolResult
@@ -102,6 +102,13 @@ module OpenAI
102
102
  sig { returns(Symbol) }
103
103
  attr_accessor :type
104
104
 
105
+ # The effective desktop configuration.
106
+ sig { returns(T.nilable(OpenAI::Beta::Environment::OpenAIHosted::Desktop)) }
107
+ attr_reader :desktop
108
+
109
+ sig { params(desktop: OpenAI::Beta::Environment::OpenAIHosted::Desktop::OrHash).void }
110
+ attr_writer :desktop
111
+
105
112
  # An environment hosted by OpenAI.
106
113
  sig do
107
114
  params(
@@ -127,6 +134,8 @@ module OpenAI
127
134
  T.any(OpenAI::Beta::HostedSkillReference::OrHash, OpenAI::Beta::HostedSkill::Inline::OrHash)
128
135
  ],
129
136
 
137
+ desktop: OpenAI::Beta::Environment::OpenAIHosted::Desktop::OrHash,
138
+
130
139
  type: Symbol
131
140
  )
132
141
  .returns(T.attached_class)
@@ -154,6 +163,9 @@ module OpenAI
154
163
  # Skills installed in the environment, excluding their archive contents.
155
164
  skills:,
156
165
 
166
+ # The effective desktop configuration.
167
+ desktop: nil,
168
+
157
169
  # The type of the object. Always `openai_hosted`.
158
170
 
159
171
  type: :openai_hosted
@@ -170,7 +182,8 @@ module OpenAI
170
182
  packages: OpenAI::Beta::Environment::OpenAIHosted::Packages,
171
183
  plugins: T::Array[OpenAI::Beta::HostedPlugin],
172
184
  skills: T::Array[OpenAI::Beta::HostedSkill::Variants],
173
- type: Symbol
185
+ type: Symbol,
186
+ desktop: OpenAI::Beta::Environment::OpenAIHosted::Desktop
174
187
  }
175
188
  )
176
189
  end
@@ -238,7 +251,7 @@ module OpenAI
238
251
  # Disables network access.
239
252
  DISABLED = T.let(:disabled, OpenAI::Beta::Environment::OpenAIHosted::Network::Access::TaggedSymbol)
240
253
 
241
- # Allows access only to configured domains.
254
+ # Applies the configured domain restrictions.
242
255
  RESTRICTED = T.let(:restricted, OpenAI::Beta::Environment::OpenAIHosted::Network::Access::TaggedSymbol)
243
256
 
244
257
  sig {
@@ -304,6 +317,44 @@ module OpenAI
304
317
  end
305
318
 
306
319
  end
320
+
321
+ class Desktop < OpenAI::Internal::Type::BaseModel
322
+ OrHash = T.type_alias do
323
+ T.any(
324
+ OpenAI::Beta::Environment::OpenAIHosted::Desktop,
325
+ OpenAI::Internal::AnyHash
326
+ )
327
+ end
328
+
329
+ # Whether the environment provisions a desktop and browser proxy.
330
+ sig { returns(T::Boolean) }
331
+ attr_accessor :enabled
332
+
333
+ # The effective desktop configuration.
334
+ sig do
335
+ params(
336
+
337
+ enabled: T::Boolean
338
+ )
339
+ .returns(T.attached_class)
340
+ end
341
+ def self.new(
342
+
343
+ # Whether the environment provisions a desktop and browser proxy.
344
+
345
+ enabled:
346
+ )
347
+ end
348
+
349
+ sig do
350
+ override.returns(
351
+ {enabled: T::Boolean}
352
+ )
353
+ end
354
+ def to_hash
355
+ end
356
+
357
+ end
307
358
  end
308
359
 
309
360
  class SelfHosted < OpenAI::Internal::Type::BaseModel