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
@@ -27,6 +27,18 @@ module OpenAI
27
27
  # A call to a tool on an MCP server.
28
28
  variant :mcp_call, -> { OpenAI::Beta::AgentMcpCallItem }
29
29
 
30
+ # One execution of the platform-provided computer-use capability.
31
+ variant :computer_use_call, -> { OpenAI::Beta::AgentSessionItem::ComputerUseCall }
32
+
33
+ # A credential-free history record of the emitted login request.
34
+ variant :computer_use_approval_request, -> { OpenAI::Beta::AgentSessionItem::ComputerUseApprovalRequest }
35
+
36
+ # A credential-free record of an admitted response, not proof of completion.
37
+ variant(
38
+ :computer_use_approval_request_result,
39
+ -> { OpenAI::Beta::AgentSessionItem::ComputerUseApprovalRequestResult }
40
+ )
41
+
30
42
  # A web search call produced by the agent.
31
43
  variant :web_search_call, -> { OpenAI::Beta::AgentWebSearchCallItem }
32
44
 
@@ -178,8 +190,386 @@ module OpenAI
178
190
  # The item type. Always `agent_message`.
179
191
  end
180
192
 
193
+ class ComputerUseCall < OpenAI::Internal::Type::BaseModel
194
+ # @!attribute id
195
+ # The ID of the activity item.
196
+ #
197
+ # @return [String]
198
+ required :id, String
199
+
200
+ # @!attribute output
201
+ # The last screenshot emitted by the model. Null when screenshot inclusion is
202
+ # disabled or the call emitted no screenshot.
203
+ #
204
+ # @return [OpenAI::Models::Beta::AgentSessionItem::ComputerUseCall::Output, nil]
205
+ required :output, -> { OpenAI::Beta::AgentSessionItem::ComputerUseCall::Output }, nil?: true
206
+
207
+ # @!attribute status
208
+ # The execution status of the activity.
209
+ #
210
+ # @return [Symbol, OpenAI::Models::Beta::AgentFunctionCallStatus]
211
+ required :status, enum: -> { OpenAI::Beta::AgentFunctionCallStatus }
212
+
213
+ # @!attribute title
214
+ # A model-generated description of the activity, when available.
215
+ #
216
+ # @return [String, nil]
217
+ required :title, String, nil?: true
218
+
219
+ # @!attribute turn_id
220
+ # The ID of the turn that contains this item.
221
+ #
222
+ # @return [String]
223
+ required :turn_id, String
224
+
225
+ # @!attribute type
226
+ # The item type. Always `computer_use_call`.
227
+ #
228
+ # @return [Symbol, :computer_use_call]
229
+ required :type, const: :computer_use_call
230
+
231
+ # @!method initialize(id:, output:, status:, title:, turn_id:, type: :computer_use_call)
232
+ # One execution of the platform-provided computer-use capability.
233
+ #
234
+ # @param id [String]
235
+ # The ID of the activity item.
236
+ #
237
+ # @param output [OpenAI::Models::Beta::AgentSessionItem::ComputerUseCall::Output, nil]
238
+ # The last screenshot emitted by the model. Null when screenshot inclusion is
239
+ # disabled or the call emitted no screenshot.
240
+ #
241
+ # @param status [Symbol, OpenAI::Models::Beta::AgentFunctionCallStatus]
242
+ # The execution status of the activity.
243
+ #
244
+ # @param title [String, nil]
245
+ # A model-generated description of the activity, when available.
246
+ #
247
+ # @param turn_id [String]
248
+ # The ID of the turn that contains this item.
249
+ #
250
+ # @param type [Symbol, :computer_use_call]
251
+ # The item type. Always `computer_use_call`.
252
+
253
+ # @see OpenAI::Models::Beta::AgentSessionItem::ComputerUseCall#output
254
+ class Output < OpenAI::Internal::Type::BaseModel
255
+ # @!attribute image_url
256
+ # The complete JPEG image as a base64 data URL.
257
+ #
258
+ # @return [String]
259
+ required :image_url, String
260
+
261
+ # @!attribute type
262
+ # The content type. Always `computer_screenshot`.
263
+ #
264
+ # @return [Symbol, :computer_screenshot]
265
+ required :type, const: :computer_screenshot
266
+
267
+ # @!method initialize(image_url:, type: :computer_screenshot)
268
+ # The last screenshot emitted by the model. Null when screenshot inclusion is
269
+ # disabled or the call emitted no screenshot.
270
+ #
271
+ # @param image_url [String]
272
+ # The complete JPEG image as a base64 data URL.
273
+ #
274
+ # @param type [Symbol, :computer_screenshot]
275
+ # The content type. Always `computer_screenshot`.
276
+ end
277
+ end
278
+
279
+ class ComputerUseApprovalRequest < OpenAI::Internal::Type::BaseModel
280
+ # @!attribute id
281
+ # The stable history item ID.
282
+ #
283
+ # @return [String]
284
+ required :id, String
285
+
286
+ # @!attribute request
287
+ # A registered form awaiting the application's response.
288
+ #
289
+ # @return [OpenAI::Models::Beta::AgentSessionItem::ComputerUseApprovalRequest::Request]
290
+ required :request, -> { OpenAI::Beta::AgentSessionItem::ComputerUseApprovalRequest::Request }
291
+
292
+ # @!attribute request_id
293
+ #
294
+ # @return [String]
295
+ required :request_id, String
296
+
297
+ # @!attribute turn_id
298
+ #
299
+ # @return [String]
300
+ required :turn_id, String
301
+
302
+ # @!attribute type
303
+ # The item type. Always computer_use_approval_request.
304
+ #
305
+ # @return [Symbol, :computer_use_approval_request]
306
+ required :type, const: :computer_use_approval_request
307
+
308
+ # @!method initialize(id:, request:, request_id:, turn_id:, type: :computer_use_approval_request)
309
+ # A credential-free history record of the emitted login request.
310
+ #
311
+ # @param id [String]
312
+ # The stable history item ID.
313
+ #
314
+ # @param request [OpenAI::Models::Beta::AgentSessionItem::ComputerUseApprovalRequest::Request]
315
+ # A registered form awaiting the application's response.
316
+ #
317
+ # @param request_id [String]
318
+ #
319
+ # @param turn_id [String]
320
+ #
321
+ # @param type [Symbol, :computer_use_approval_request]
322
+ # The item type. Always computer_use_approval_request.
323
+
324
+ # @see OpenAI::Models::Beta::AgentSessionItem::ComputerUseApprovalRequest#request
325
+ class Request < OpenAI::Internal::Type::BaseModel
326
+ # @!attribute credential_origin
327
+ # The registered form or frame origin where values will be entered.
328
+ #
329
+ # @return [String, nil]
330
+ required :credential_origin, String, nil?: true
331
+
332
+ # @!attribute fields
333
+ # Controls to render. All submitted values are sensitive.
334
+ #
335
+ # @return [Array<OpenAI::Models::Beta::AgentSessionItem::ComputerUseApprovalRequest::Request::Field>]
336
+ required(
337
+ :fields,
338
+ -> {
339
+ OpenAI::Internal::Type::ArrayOf[
340
+ OpenAI::Beta::AgentSessionItem::ComputerUseApprovalRequest::Request::Field
341
+ ]
342
+ }
343
+ )
344
+
345
+ # @!attribute options
346
+ # Sign-in methods. Empty for a plain form.
347
+ #
348
+ # @return [Array<OpenAI::Models::Beta::AgentSessionItem::ComputerUseApprovalRequest::Request::Option>]
349
+ required(
350
+ :options,
351
+ -> {
352
+ OpenAI::Internal::Type::ArrayOf[
353
+ OpenAI::Beta::AgentSessionItem::ComputerUseApprovalRequest::Request::Option
354
+ ]
355
+ }
356
+ )
357
+
358
+ # @!attribute reason
359
+ # Why the agent needs the user to sign in.
360
+ #
361
+ # @return [String, nil]
362
+ required :reason, String, nil?: true
363
+
364
+ # @!attribute type
365
+ # The type of the object. Always `browser_authentication`.
366
+ #
367
+ # @return [Symbol, :browser_authentication]
368
+ required :type, const: :browser_authentication
369
+
370
+ # @!method initialize(credential_origin:, fields:, options:, reason:, type: :browser_authentication)
371
+ # A registered form awaiting the application's response.
372
+ #
373
+ # @param credential_origin [String, nil]
374
+ # The registered form or frame origin where values will be entered.
375
+ #
376
+ # @param fields [Array<OpenAI::Models::Beta::AgentSessionItem::ComputerUseApprovalRequest::Request::Field>]
377
+ # Controls to render. All submitted values are sensitive.
378
+ #
379
+ # @param options [Array<OpenAI::Models::Beta::AgentSessionItem::ComputerUseApprovalRequest::Request::Option>]
380
+ # Sign-in methods. Empty for a plain form.
381
+ #
382
+ # @param reason [String, nil]
383
+ # Why the agent needs the user to sign in.
384
+ #
385
+ # @param type [Symbol, :browser_authentication]
386
+ # The type of the object. Always `browser_authentication`.
387
+ class Field < OpenAI::Internal::Type::BaseModel
388
+ # @!attribute id
389
+ # The field ID to submit as field_id in a fields entry.
390
+ #
391
+ # @return [String]
392
+ required :id, String
393
+
394
+ # @!attribute label
395
+ # The label to display beside the control.
396
+ #
397
+ # @return [String]
398
+ required :label, String
399
+
400
+ # @!attribute required
401
+ # Whether this control requires a nonempty value.
402
+ #
403
+ # @return [Boolean]
404
+ required :required, OpenAI::Internal::Type::Boolean
405
+
406
+ # @!attribute type
407
+ # The rendering type, such as email, password, or text.
408
+ #
409
+ # @return [String]
410
+ required :type, String
411
+
412
+ # @!method initialize(id:, label:, required:, type:)
413
+ # A control in a registered browser-login form.
414
+ #
415
+ # @param id [String]
416
+ # The field ID to submit as field_id in a fields entry.
417
+ #
418
+ # @param label [String]
419
+ # The label to display beside the control.
420
+ #
421
+ # @param required [Boolean]
422
+ # Whether this control requires a nonempty value.
423
+ #
424
+ # @param type [String]
425
+ # The rendering type, such as email, password, or text.
426
+ end
427
+
428
+ class Option < OpenAI::Internal::Type::BaseModel
429
+ # @!attribute id
430
+ # The option ID to submit as selected_option.
431
+ #
432
+ # @return [String]
433
+ required :id, String
434
+
435
+ # @!attribute field_ids
436
+ # IDs from the registered fields that this method accepts.
437
+ #
438
+ # @return [Array<String>]
439
+ required :field_ids, OpenAI::Internal::Type::ArrayOf[String]
440
+
441
+ # @!attribute label
442
+ # The method label to display.
443
+ #
444
+ # @return [String]
445
+ required :label, String
446
+
447
+ # @!method initialize(id:, field_ids:, label:)
448
+ # A sign-in method and the fields that belong to it.
449
+ #
450
+ # @param id [String]
451
+ # The option ID to submit as selected_option.
452
+ #
453
+ # @param field_ids [Array<String>]
454
+ # IDs from the registered fields that this method accepts.
455
+ #
456
+ # @param label [String]
457
+ # The method label to display.
458
+ end
459
+ end
460
+ end
461
+
462
+ class ComputerUseApprovalRequestResult < OpenAI::Internal::Type::BaseModel
463
+ # @!attribute id
464
+ # The stable history item ID.
465
+ #
466
+ # @return [String]
467
+ required :id, String
468
+
469
+ # @!attribute request_id
470
+ # The registered request answered by this item.
471
+ #
472
+ # @return [String]
473
+ required :request_id, String
474
+
475
+ # @!attribute response
476
+ # The admitted response, without submitted credential values.
477
+ #
478
+ # @return [OpenAI::Models::Beta::AgentSessionItem::ComputerUseApprovalRequestResult::Response::Submit, OpenAI::Models::Beta::AgentSessionItem::ComputerUseApprovalRequestResult::Response::Cancel]
479
+ required(
480
+ :response,
481
+ union: -> { OpenAI::Beta::AgentSessionItem::ComputerUseApprovalRequestResult::Response }
482
+ )
483
+
484
+ # @!attribute turn_id
485
+ # The ID of the turn that contains this item.
486
+ #
487
+ # @return [String]
488
+ required :turn_id, String
489
+
490
+ # @!attribute type
491
+ #
492
+ # @return [Symbol, :computer_use_approval_request_result]
493
+ required :type, const: :computer_use_approval_request_result
494
+
495
+ # @!method initialize(id:, request_id:, response:, turn_id:, type: :computer_use_approval_request_result)
496
+ # A credential-free record of an admitted response, not proof of completion.
497
+ #
498
+ # @param id [String]
499
+ # The stable history item ID.
500
+ #
501
+ # @param request_id [String]
502
+ # The registered request answered by this item.
503
+ #
504
+ # @param response [OpenAI::Models::Beta::AgentSessionItem::ComputerUseApprovalRequestResult::Response::Submit, OpenAI::Models::Beta::AgentSessionItem::ComputerUseApprovalRequestResult::Response::Cancel]
505
+ # The admitted response, without submitted credential values.
506
+ #
507
+ # @param turn_id [String]
508
+ # The ID of the turn that contains this item.
509
+ #
510
+ # @param type [Symbol, :computer_use_approval_request_result]
511
+
512
+ # The admitted response, without submitted credential values.
513
+ #
514
+ # @see OpenAI::Models::Beta::AgentSessionItem::ComputerUseApprovalRequestResult#response
515
+ module Response
516
+ extend OpenAI::Internal::Type::Union
517
+
518
+ discriminator :action
519
+
520
+ variant :submit, -> { OpenAI::Beta::AgentSessionItem::ComputerUseApprovalRequestResult::Response::Submit }
521
+
522
+ variant :cancel, -> { OpenAI::Beta::AgentSessionItem::ComputerUseApprovalRequestResult::Response::Cancel }
523
+
524
+ class Submit < OpenAI::Internal::Type::BaseModel
525
+ # @!attribute action
526
+ #
527
+ # @return [Symbol, :submit]
528
+ required :action, const: :submit
529
+
530
+ # @!attribute selected_option
531
+ # The chosen sign-in method, or null when no options were offered.
532
+ #
533
+ # @return [String, nil]
534
+ required :selected_option, String, nil?: true
535
+
536
+ # @!attribute type
537
+ #
538
+ # @return [Symbol, :browser_authentication]
539
+ required :type, const: :browser_authentication
540
+
541
+ # @!method initialize(selected_option:, action: :submit, type: :browser_authentication)
542
+ # @param selected_option [String, nil]
543
+ # The chosen sign-in method, or null when no options were offered.
544
+ #
545
+ # @param action [Symbol, :submit]
546
+ #
547
+ # @param type [Symbol, :browser_authentication]
548
+ end
549
+
550
+ class Cancel < OpenAI::Internal::Type::BaseModel
551
+ # @!attribute action
552
+ #
553
+ # @return [Symbol, :cancel]
554
+ required :action, const: :cancel
555
+
556
+ # @!attribute type
557
+ #
558
+ # @return [Symbol, :browser_authentication]
559
+ required :type, const: :browser_authentication
560
+
561
+ # @!method initialize(action: :cancel, type: :browser_authentication)
562
+ # @param action [Symbol, :cancel]
563
+ # @param type [Symbol, :browser_authentication]
564
+ end
565
+
566
+ # @!method self.variants
567
+ # @return [Array(OpenAI::Models::Beta::AgentSessionItem::ComputerUseApprovalRequestResult::Response::Submit, OpenAI::Models::Beta::AgentSessionItem::ComputerUseApprovalRequestResult::Response::Cancel)]
568
+ end
569
+ end
570
+
181
571
  # @!method self.variants
182
- # @return [Array(OpenAI::Models::Beta::AgentSessionMessage, OpenAI::Models::Beta::AgentReasoningItem, OpenAI::Models::Beta::AgentFunctionCallItem, OpenAI::Models::Beta::AgentSessionItem::FunctionCallOutput, OpenAI::Models::Beta::AgentSessionItem::AgentMessage, OpenAI::Models::Beta::AgentMcpCallItem, OpenAI::Models::Beta::AgentWebSearchCallItem, OpenAI::Models::Beta::AgentCommandExecutionItem, OpenAI::Models::Beta::AgentCreateSubagentCallItem, OpenAI::Models::Beta::AgentSendSubagentInputCallItem, OpenAI::Models::Beta::AgentResumeSubagentCallItem, OpenAI::Models::Beta::AgentWaitForSubagentsCallItem, OpenAI::Models::Beta::AgentInterruptSubagentCallItem, OpenAI::Models::Beta::AgentCloseSubagentCallItem)]
572
+ # @return [Array(OpenAI::Models::Beta::AgentSessionMessage, OpenAI::Models::Beta::AgentReasoningItem, OpenAI::Models::Beta::AgentFunctionCallItem, OpenAI::Models::Beta::AgentSessionItem::FunctionCallOutput, OpenAI::Models::Beta::AgentSessionItem::AgentMessage, OpenAI::Models::Beta::AgentMcpCallItem, OpenAI::Models::Beta::AgentSessionItem::ComputerUseCall, OpenAI::Models::Beta::AgentSessionItem::ComputerUseApprovalRequest, OpenAI::Models::Beta::AgentSessionItem::ComputerUseApprovalRequestResult, OpenAI::Models::Beta::AgentWebSearchCallItem, OpenAI::Models::Beta::AgentCommandExecutionItem, OpenAI::Models::Beta::AgentCreateSubagentCallItem, OpenAI::Models::Beta::AgentSendSubagentInputCallItem, OpenAI::Models::Beta::AgentResumeSubagentCallItem, OpenAI::Models::Beta::AgentWaitForSubagentsCallItem, OpenAI::Models::Beta::AgentInterruptSubagentCallItem, OpenAI::Models::Beta::AgentCloseSubagentCallItem)]
183
573
  end
184
574
  end
185
575
  end
@@ -13,7 +13,7 @@ module OpenAI
13
13
  # @!attribute item
14
14
  # The item that was added.
15
15
  #
16
- # @return [OpenAI::Models::Beta::AgentSessionMessage, OpenAI::Models::Beta::AgentReasoningItem, OpenAI::Models::Beta::AgentFunctionCallItem, OpenAI::Models::Beta::AgentSessionItem::FunctionCallOutput, OpenAI::Models::Beta::AgentSessionItem::AgentMessage, OpenAI::Models::Beta::AgentMcpCallItem, OpenAI::Models::Beta::AgentWebSearchCallItem, OpenAI::Models::Beta::AgentCommandExecutionItem, OpenAI::Models::Beta::AgentCreateSubagentCallItem, OpenAI::Models::Beta::AgentSendSubagentInputCallItem, OpenAI::Models::Beta::AgentResumeSubagentCallItem, OpenAI::Models::Beta::AgentWaitForSubagentsCallItem, OpenAI::Models::Beta::AgentInterruptSubagentCallItem, OpenAI::Models::Beta::AgentCloseSubagentCallItem]
16
+ # @return [OpenAI::Models::Beta::AgentSessionMessage, OpenAI::Models::Beta::AgentReasoningItem, OpenAI::Models::Beta::AgentFunctionCallItem, OpenAI::Models::Beta::AgentSessionItem::FunctionCallOutput, OpenAI::Models::Beta::AgentSessionItem::AgentMessage, OpenAI::Models::Beta::AgentMcpCallItem, OpenAI::Models::Beta::AgentSessionItem::ComputerUseCall, OpenAI::Models::Beta::AgentSessionItem::ComputerUseApprovalRequest, OpenAI::Models::Beta::AgentSessionItem::ComputerUseApprovalRequestResult, OpenAI::Models::Beta::AgentWebSearchCallItem, OpenAI::Models::Beta::AgentCommandExecutionItem, OpenAI::Models::Beta::AgentCreateSubagentCallItem, OpenAI::Models::Beta::AgentSendSubagentInputCallItem, OpenAI::Models::Beta::AgentResumeSubagentCallItem, OpenAI::Models::Beta::AgentWaitForSubagentsCallItem, OpenAI::Models::Beta::AgentInterruptSubagentCallItem, OpenAI::Models::Beta::AgentCloseSubagentCallItem]
17
17
  required :item, union: -> { OpenAI::Beta::AgentSessionItem }
18
18
 
19
19
  # @!attribute output_index
@@ -46,7 +46,7 @@ module OpenAI
46
46
  # @param event_id [String]
47
47
  # The unique ID of the event.
48
48
  #
49
- # @param item [OpenAI::Models::Beta::AgentSessionMessage, OpenAI::Models::Beta::AgentReasoningItem, OpenAI::Models::Beta::AgentFunctionCallItem, OpenAI::Models::Beta::AgentSessionItem::FunctionCallOutput, OpenAI::Models::Beta::AgentSessionItem::AgentMessage, OpenAI::Models::Beta::AgentMcpCallItem, OpenAI::Models::Beta::AgentWebSearchCallItem, OpenAI::Models::Beta::AgentCommandExecutionItem, OpenAI::Models::Beta::AgentCreateSubagentCallItem, OpenAI::Models::Beta::AgentSendSubagentInputCallItem, OpenAI::Models::Beta::AgentResumeSubagentCallItem, OpenAI::Models::Beta::AgentWaitForSubagentsCallItem, OpenAI::Models::Beta::AgentInterruptSubagentCallItem, OpenAI::Models::Beta::AgentCloseSubagentCallItem]
49
+ # @param item [OpenAI::Models::Beta::AgentSessionMessage, OpenAI::Models::Beta::AgentReasoningItem, OpenAI::Models::Beta::AgentFunctionCallItem, OpenAI::Models::Beta::AgentSessionItem::FunctionCallOutput, OpenAI::Models::Beta::AgentSessionItem::AgentMessage, OpenAI::Models::Beta::AgentMcpCallItem, OpenAI::Models::Beta::AgentSessionItem::ComputerUseCall, OpenAI::Models::Beta::AgentSessionItem::ComputerUseApprovalRequest, OpenAI::Models::Beta::AgentSessionItem::ComputerUseApprovalRequestResult, OpenAI::Models::Beta::AgentWebSearchCallItem, OpenAI::Models::Beta::AgentCommandExecutionItem, OpenAI::Models::Beta::AgentCreateSubagentCallItem, OpenAI::Models::Beta::AgentSendSubagentInputCallItem, OpenAI::Models::Beta::AgentResumeSubagentCallItem, OpenAI::Models::Beta::AgentWaitForSubagentsCallItem, OpenAI::Models::Beta::AgentInterruptSubagentCallItem, OpenAI::Models::Beta::AgentCloseSubagentCallItem]
50
50
  # The item that was added.
51
51
  #
52
52
  # @param output_index [Integer, nil]
@@ -13,7 +13,7 @@ module OpenAI
13
13
  # @!attribute item
14
14
  # The completed output item.
15
15
  #
16
- # @return [OpenAI::Models::Beta::AgentSessionAssistantMessage, OpenAI::Models::Beta::AgentReasoningItem, OpenAI::Models::Beta::AgentFunctionCallItem, OpenAI::Models::Beta::AgentMcpCallItem, OpenAI::Models::Beta::AgentWebSearchCallItem, OpenAI::Models::Beta::AgentCommandExecutionItem, OpenAI::Models::Beta::AgentCreateSubagentCallItem, OpenAI::Models::Beta::AgentSendSubagentInputCallItem, OpenAI::Models::Beta::AgentResumeSubagentCallItem, OpenAI::Models::Beta::AgentWaitForSubagentsCallItem, OpenAI::Models::Beta::AgentInterruptSubagentCallItem, OpenAI::Models::Beta::AgentCloseSubagentCallItem]
16
+ # @return [OpenAI::Models::Beta::AgentSessionAssistantMessage, OpenAI::Models::Beta::AgentReasoningItem, OpenAI::Models::Beta::AgentFunctionCallItem, OpenAI::Models::Beta::AgentMcpCallItem, OpenAI::Models::Beta::AgentOutputItem::ComputerUseCall, OpenAI::Models::Beta::AgentOutputItem::ComputerUseApprovalRequest, OpenAI::Models::Beta::AgentWebSearchCallItem, OpenAI::Models::Beta::AgentCommandExecutionItem, OpenAI::Models::Beta::AgentCreateSubagentCallItem, OpenAI::Models::Beta::AgentSendSubagentInputCallItem, OpenAI::Models::Beta::AgentResumeSubagentCallItem, OpenAI::Models::Beta::AgentWaitForSubagentsCallItem, OpenAI::Models::Beta::AgentInterruptSubagentCallItem, OpenAI::Models::Beta::AgentCloseSubagentCallItem]
17
17
  required :item, union: -> { OpenAI::Beta::AgentOutputItem }
18
18
 
19
19
  # @!attribute output_index
@@ -46,7 +46,7 @@ module OpenAI
46
46
  # @param event_id [String]
47
47
  # The unique ID of the event.
48
48
  #
49
- # @param item [OpenAI::Models::Beta::AgentSessionAssistantMessage, OpenAI::Models::Beta::AgentReasoningItem, OpenAI::Models::Beta::AgentFunctionCallItem, OpenAI::Models::Beta::AgentMcpCallItem, OpenAI::Models::Beta::AgentWebSearchCallItem, OpenAI::Models::Beta::AgentCommandExecutionItem, OpenAI::Models::Beta::AgentCreateSubagentCallItem, OpenAI::Models::Beta::AgentSendSubagentInputCallItem, OpenAI::Models::Beta::AgentResumeSubagentCallItem, OpenAI::Models::Beta::AgentWaitForSubagentsCallItem, OpenAI::Models::Beta::AgentInterruptSubagentCallItem, OpenAI::Models::Beta::AgentCloseSubagentCallItem]
49
+ # @param item [OpenAI::Models::Beta::AgentSessionAssistantMessage, OpenAI::Models::Beta::AgentReasoningItem, OpenAI::Models::Beta::AgentFunctionCallItem, OpenAI::Models::Beta::AgentMcpCallItem, OpenAI::Models::Beta::AgentOutputItem::ComputerUseCall, OpenAI::Models::Beta::AgentOutputItem::ComputerUseApprovalRequest, OpenAI::Models::Beta::AgentWebSearchCallItem, OpenAI::Models::Beta::AgentCommandExecutionItem, OpenAI::Models::Beta::AgentCreateSubagentCallItem, OpenAI::Models::Beta::AgentSendSubagentInputCallItem, OpenAI::Models::Beta::AgentResumeSubagentCallItem, OpenAI::Models::Beta::AgentWaitForSubagentsCallItem, OpenAI::Models::Beta::AgentInterruptSubagentCallItem, OpenAI::Models::Beta::AgentCloseSubagentCallItem]
50
50
  # The completed output item.
51
51
  #
52
52
  # @param output_index [Integer]
@@ -21,6 +21,9 @@ module OpenAI
21
21
  # Web search.
22
22
  variant :web_search, -> { OpenAI::Beta::AgentTool::WebSearch }
23
23
 
24
+ # Browser use in an OpenAI-hosted session.
25
+ variant :computer_use, -> { OpenAI::Beta::AgentTool::ComputerUse }
26
+
24
27
  class Function < OpenAI::Internal::Type::BaseModel
25
28
  # @!attribute defer_loading
26
29
  # Whether the function is deferred and discovered through tool search.
@@ -306,8 +309,31 @@ module OpenAI
306
309
  end
307
310
  end
308
311
 
312
+ class ComputerUse < OpenAI::Internal::Type::BaseModel
313
+ # @!attribute include_screenshots
314
+ # Whether computer tool outputs include screenshots.
315
+ #
316
+ # @return [Boolean]
317
+ required :include_screenshots, OpenAI::Internal::Type::Boolean
318
+
319
+ # @!attribute type
320
+ # The type of the object. Always `computer_use`.
321
+ #
322
+ # @return [Symbol, :computer_use]
323
+ required :type, const: :computer_use
324
+
325
+ # @!method initialize(include_screenshots:, type: :computer_use)
326
+ # Browser use in an OpenAI-hosted session.
327
+ #
328
+ # @param include_screenshots [Boolean]
329
+ # Whether computer tool outputs include screenshots.
330
+ #
331
+ # @param type [Symbol, :computer_use]
332
+ # The type of the object. Always `computer_use`.
333
+ end
334
+
309
335
  # @!method self.variants
310
- # @return [Array(OpenAI::Models::Beta::AgentTool::Function, OpenAI::Models::Beta::AgentTool::ProgrammaticToolCalling, OpenAI::Models::Beta::AgentTool::Mcp, OpenAI::Models::Beta::AgentTool::WebSearch)]
336
+ # @return [Array(OpenAI::Models::Beta::AgentTool::Function, OpenAI::Models::Beta::AgentTool::ProgrammaticToolCalling, OpenAI::Models::Beta::AgentTool::Mcp, OpenAI::Models::Beta::AgentTool::WebSearch, OpenAI::Models::Beta::AgentTool::ComputerUse)]
311
337
  end
312
338
  end
313
339
  end
@@ -24,6 +24,9 @@ module OpenAI
24
24
  # Web search.
25
25
  variant :web_search, -> { OpenAI::Beta::AgentToolParam::WebSearch }
26
26
 
27
+ # Browser use in an OpenAI-hosted session.
28
+ variant :computer_use, -> { OpenAI::Beta::AgentToolParam::ComputerUse }
29
+
27
30
  class Function < OpenAI::Internal::Type::BaseModel
28
31
  # @!attribute description
29
32
  # A description of what the function does.
@@ -357,8 +360,31 @@ module OpenAI
357
360
  end
358
361
  end
359
362
 
363
+ class ComputerUse < OpenAI::Internal::Type::BaseModel
364
+ # @!attribute type
365
+ # The type of the object. Always `computer_use`.
366
+ #
367
+ # @return [Symbol, :computer_use]
368
+ required :type, const: :computer_use
369
+
370
+ # @!attribute include_screenshots
371
+ # Whether computer tool outputs include screenshots. Defaults to `false`.
372
+ #
373
+ # @return [Boolean, nil]
374
+ optional :include_screenshots, OpenAI::Internal::Type::Boolean
375
+
376
+ # @!method initialize(include_screenshots: nil, type: :computer_use)
377
+ # Browser use in an OpenAI-hosted session.
378
+ #
379
+ # @param include_screenshots [Boolean]
380
+ # Whether computer tool outputs include screenshots. Defaults to `false`.
381
+ #
382
+ # @param type [Symbol, :computer_use]
383
+ # The type of the object. Always `computer_use`.
384
+ end
385
+
360
386
  # @!method self.variants
361
- # @return [Array(OpenAI::Models::Beta::AgentToolParam::Function, OpenAI::Models::Beta::AgentToolParam::ToolSearch, OpenAI::Models::Beta::AgentToolParam::ProgrammaticToolCalling, OpenAI::Models::Beta::AgentToolParam::Mcp, OpenAI::Models::Beta::AgentToolParam::WebSearch)]
387
+ # @return [Array(OpenAI::Models::Beta::AgentToolParam::Function, OpenAI::Models::Beta::AgentToolParam::ToolSearch, OpenAI::Models::Beta::AgentToolParam::ProgrammaticToolCalling, OpenAI::Models::Beta::AgentToolParam::Mcp, OpenAI::Models::Beta::AgentToolParam::WebSearch, OpenAI::Models::Beta::AgentToolParam::ComputerUse)]
362
388
  end
363
389
  end
364
390
  end
@@ -68,7 +68,7 @@ module OpenAI
68
68
  # @!attribute tools
69
69
  # Tools available to the agent.
70
70
  #
71
- # @return [Array<OpenAI::Models::Beta::PersistedAgentToolParam::Function, OpenAI::Models::Beta::PersistedAgentToolParam::ToolSearch, OpenAI::Models::Beta::PersistedAgentToolParam::ProgrammaticToolCalling, OpenAI::Models::Beta::PersistedAgentToolParam::Mcp, OpenAI::Models::Beta::PersistedAgentToolParam::WebSearch>, nil]
71
+ # @return [Array<OpenAI::Models::Beta::PersistedAgentToolParam::Function, OpenAI::Models::Beta::PersistedAgentToolParam::ToolSearch, OpenAI::Models::Beta::PersistedAgentToolParam::ProgrammaticToolCalling, OpenAI::Models::Beta::PersistedAgentToolParam::Mcp, OpenAI::Models::Beta::PersistedAgentToolParam::WebSearch, OpenAI::Models::Beta::PersistedAgentToolParam::ComputerUse>, nil]
72
72
  optional(
73
73
  :tools,
74
74
  -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Beta::PersistedAgentToolParam] },
@@ -106,7 +106,7 @@ module OpenAI
106
106
  # @param text [OpenAI::Models::Beta::AgentTextParam, nil]
107
107
  # Configuration for text generated by the agent.
108
108
  #
109
- # @param tools [Array<OpenAI::Models::Beta::PersistedAgentToolParam::Function, OpenAI::Models::Beta::PersistedAgentToolParam::ToolSearch, OpenAI::Models::Beta::PersistedAgentToolParam::ProgrammaticToolCalling, OpenAI::Models::Beta::PersistedAgentToolParam::Mcp, OpenAI::Models::Beta::PersistedAgentToolParam::WebSearch>, nil]
109
+ # @param tools [Array<OpenAI::Models::Beta::PersistedAgentToolParam::Function, OpenAI::Models::Beta::PersistedAgentToolParam::ToolSearch, OpenAI::Models::Beta::PersistedAgentToolParam::ProgrammaticToolCalling, OpenAI::Models::Beta::PersistedAgentToolParam::Mcp, OpenAI::Models::Beta::PersistedAgentToolParam::WebSearch, OpenAI::Models::Beta::PersistedAgentToolParam::ComputerUse>, nil]
110
110
  # Tools available to the agent.
111
111
  #
112
112
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
@@ -83,7 +83,13 @@ module OpenAI
83
83
  # @return [Integer]
84
84
  required :updated_at, Integer
85
85
 
86
- # @!method initialize(id:, capability_directories:, created_at:, files:, name:, network:, packages:, plugins:, skills:, updated_at:, object: :"agent.environment.template")
86
+ # @!attribute desktop
87
+ # Desktop configuration for each OpenAI-hosted environment.
88
+ #
89
+ # @return [OpenAI::Models::Beta::Agents::Environments::EnvironmentTemplate::Desktop, nil]
90
+ optional :desktop, -> { OpenAI::Beta::Agents::Environments::EnvironmentTemplate::Desktop }
91
+
92
+ # @!method initialize(id:, capability_directories:, created_at:, files:, name:, network:, packages:, plugins:, skills:, updated_at:, desktop: nil, object: :"agent.environment.template")
87
93
  # Reusable configuration that provisions a fresh OpenAI-hosted environment for
88
94
  # each session.
89
95
  #
@@ -117,6 +123,9 @@ module OpenAI
117
123
  # @param updated_at [Integer]
118
124
  # The Unix timestamp, in seconds, when the template was last updated.
119
125
  #
126
+ # @param desktop [OpenAI::Models::Beta::Agents::Environments::EnvironmentTemplate::Desktop]
127
+ # Desktop configuration for each OpenAI-hosted environment.
128
+ #
120
129
  # @param object [Symbol, :"agent.environment.template"]
121
130
  # The object type. Always `agent.environment.template`.
122
131
 
@@ -235,7 +244,7 @@ module OpenAI
235
244
  # Disables network access.
236
245
  DISABLED = :disabled
237
246
 
238
- # Allows access only to configured domains.
247
+ # Applies the configured domain restrictions.
239
248
  RESTRICTED = :restricted
240
249
 
241
250
  # @!method self.values
@@ -358,6 +367,21 @@ module OpenAI
358
367
  # @!method self.variants
359
368
  # @return [Array(OpenAI::Models::Beta::Agents::Environments::EnvironmentTemplate::Skill::SkillReference, OpenAI::Models::Beta::Agents::Environments::EnvironmentTemplate::Skill::Inline)]
360
369
  end
370
+
371
+ # @see OpenAI::Models::Beta::Agents::Environments::EnvironmentTemplate#desktop
372
+ class Desktop < OpenAI::Internal::Type::BaseModel
373
+ # @!attribute enabled
374
+ # Whether the environment provisions a desktop and browser proxy.
375
+ #
376
+ # @return [Boolean]
377
+ required :enabled, OpenAI::Internal::Type::Boolean
378
+
379
+ # @!method initialize(enabled:)
380
+ # Desktop configuration for each OpenAI-hosted environment.
381
+ #
382
+ # @param enabled [Boolean]
383
+ # Whether the environment provisions a desktop and browser proxy.
384
+ end
361
385
  end
362
386
  end
363
387