openai 0.118.0 → 0.119.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 (127) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -0
  3. data/README.md +1 -1
  4. data/lib/openai/client.rb +1 -1
  5. data/lib/openai/helpers/data_residency.rb +4 -1
  6. data/lib/openai/models/all_models.rb +1 -0
  7. data/lib/openai/models/beta/beta_compacted_response.rb +34 -1
  8. data/lib/openai/models/beta/beta_response.rb +34 -1
  9. data/lib/openai/models/beta/beta_response_input_item.rb +45 -1
  10. data/lib/openai/models/beta/beta_response_item.rb +45 -1
  11. data/lib/openai/models/beta/beta_response_output_item.rb +45 -1
  12. data/lib/openai/models/beta/beta_response_tool_search_output_item_param.rb +186 -13
  13. data/lib/openai/models/beta/beta_responses_client_event.rb +48 -1
  14. data/lib/openai/models/beta/beta_tool.rb +164 -13
  15. data/lib/openai/models/beta/response_compact_params.rb +44 -1
  16. data/lib/openai/models/beta/response_create_params.rb +44 -1
  17. data/lib/openai/models/beta/session_turn_error.rb +3 -0
  18. data/lib/openai/models/conversations/conversation_item.rb +45 -1
  19. data/lib/openai/models/image_edit_params.rb +72 -16
  20. data/lib/openai/models/image_generate_params.rb +160 -8
  21. data/lib/openai/models/image_model.rb +2 -0
  22. data/lib/openai/models/images_response.rb +55 -4
  23. data/lib/openai/models/realtime/realtime_audio_config_input.rb +14 -1
  24. data/lib/openai/models/realtime/realtime_session_create_response.rb +14 -1
  25. data/lib/openai/models/realtime/realtime_transcription_session_audio_input.rb +14 -1
  26. data/lib/openai/models/realtime/realtime_transcription_session_create_response.rb +14 -1
  27. data/lib/openai/models/realtime/realtime_translation_session.rb +14 -1
  28. data/lib/openai/models/realtime/realtime_translation_session_create_request.rb +14 -1
  29. data/lib/openai/models/realtime/realtime_translation_session_update_request.rb +14 -1
  30. data/lib/openai/models/responses/compacted_response.rb +37 -1
  31. data/lib/openai/models/responses/response.rb +34 -1
  32. data/lib/openai/models/responses/response_compact_params.rb +50 -1
  33. data/lib/openai/models/responses/response_create_params.rb +47 -1
  34. data/lib/openai/models/responses/response_input_item.rb +45 -1
  35. data/lib/openai/models/responses/response_item.rb +45 -1
  36. data/lib/openai/models/responses/response_output_item.rb +45 -1
  37. data/lib/openai/models/responses/response_tool_search_output_item_param.rb +186 -13
  38. data/lib/openai/models/responses/responses_client_event.rb +48 -1
  39. data/lib/openai/models/responses/tool.rb +164 -13
  40. data/lib/openai/models/responses_model.rb +1 -0
  41. data/lib/openai/resources/admin/organization/projects.rb +6 -6
  42. data/lib/openai/resources/admin/organization.rb +6 -6
  43. data/lib/openai/resources/beta/responses.rb +12 -3
  44. data/lib/openai/resources/images.rb +102 -18
  45. data/lib/openai/resources/responses.rb +12 -3
  46. data/lib/openai/version.rb +1 -1
  47. data/rbi/openai/models/all_models.rbi +1 -0
  48. data/rbi/openai/models/beta/beta_compacted_response.rbi +67 -1
  49. data/rbi/openai/models/beta/beta_response.rbi +62 -0
  50. data/rbi/openai/models/beta/beta_response_input_item.rbi +82 -1
  51. data/rbi/openai/models/beta/beta_response_item.rbi +82 -1
  52. data/rbi/openai/models/beta/beta_response_output_item.rbi +82 -1
  53. data/rbi/openai/models/beta/beta_response_tool_search_output_item_param.rbi +338 -13
  54. data/rbi/openai/models/beta/beta_responses_client_event.rbi +105 -0
  55. data/rbi/openai/models/beta/beta_tool.rbi +245 -13
  56. data/rbi/openai/models/beta/response_compact_params.rbi +81 -0
  57. data/rbi/openai/models/beta/response_create_params.rbi +81 -0
  58. data/rbi/openai/models/beta/session_turn_error.rbi +3 -0
  59. data/rbi/openai/models/conversations/conversation_item.rbi +84 -1
  60. data/rbi/openai/models/image_edit_params.rbi +76 -14
  61. data/rbi/openai/models/image_generate_params.rbi +218 -6
  62. data/rbi/openai/models/image_model.rbi +2 -0
  63. data/rbi/openai/models/images_response.rbi +90 -3
  64. data/rbi/openai/models/realtime/realtime_audio_config_input.rbi +17 -1
  65. data/rbi/openai/models/realtime/realtime_session_create_response.rbi +17 -1
  66. data/rbi/openai/models/realtime/realtime_transcription_session_audio_input.rbi +17 -1
  67. data/rbi/openai/models/realtime/realtime_transcription_session_create_response.rbi +17 -1
  68. data/rbi/openai/models/realtime/realtime_translation_session.rbi +19 -3
  69. data/rbi/openai/models/realtime/realtime_translation_session_create_request.rbi +19 -3
  70. data/rbi/openai/models/realtime/realtime_translation_session_update_request.rbi +19 -3
  71. data/rbi/openai/models/responses/compacted_response.rbi +67 -1
  72. data/rbi/openai/models/responses/response.rbi +62 -0
  73. data/rbi/openai/models/responses/response_compact_params.rbi +88 -0
  74. data/rbi/openai/models/responses/response_create_params.rbi +87 -0
  75. data/rbi/openai/models/responses/response_input_item.rbi +82 -1
  76. data/rbi/openai/models/responses/response_item.rbi +82 -1
  77. data/rbi/openai/models/responses/response_output_item.rbi +82 -1
  78. data/rbi/openai/models/responses/response_tool_search_output_item_param.rbi +340 -13
  79. data/rbi/openai/models/responses/responses_client_event.rbi +105 -0
  80. data/rbi/openai/models/responses/tool.rbi +248 -13
  81. data/rbi/openai/models/responses_model.rbi +1 -0
  82. data/rbi/openai/resources/admin/organization/projects.rbi +3 -3
  83. data/rbi/openai/resources/admin/organization.rbi +3 -3
  84. data/rbi/openai/resources/beta/responses.rbi +9 -0
  85. data/rbi/openai/resources/images.rbi +98 -14
  86. data/rbi/openai/resources/responses.rbi +11 -0
  87. data/sig/openai/models/all_models.rbs +2 -0
  88. data/sig/openai/models/beta/beta_compacted_response.rbs +42 -2
  89. data/sig/openai/models/beta/beta_response.rbs +40 -0
  90. data/sig/openai/models/beta/beta_response_input_item.rbs +51 -3
  91. data/sig/openai/models/beta/beta_response_item.rbs +51 -3
  92. data/sig/openai/models/beta/beta_response_output_item.rbs +51 -3
  93. data/sig/openai/models/beta/beta_response_tool_search_output_item_param.rbs +188 -15
  94. data/sig/openai/models/beta/beta_responses_client_event.rbs +56 -0
  95. data/sig/openai/models/beta/beta_tool.rbs +188 -15
  96. data/sig/openai/models/beta/response_compact_params.rbs +56 -0
  97. data/sig/openai/models/beta/response_create_params.rbs +56 -0
  98. data/sig/openai/models/beta/session_turn_error.rbs +4 -0
  99. data/sig/openai/models/conversations/conversation_item.rbs +51 -3
  100. data/sig/openai/models/image_edit_params.rbs +63 -12
  101. data/sig/openai/models/image_generate_params.rbs +150 -5
  102. data/sig/openai/models/image_model.rbs +4 -0
  103. data/sig/openai/models/images_response.rbs +59 -4
  104. data/sig/openai/models/realtime/realtime_audio_config_input.rbs +20 -1
  105. data/sig/openai/models/realtime/realtime_session_create_response.rbs +20 -1
  106. data/sig/openai/models/realtime/realtime_transcription_session_audio_input.rbs +20 -1
  107. data/sig/openai/models/realtime/realtime_transcription_session_create_response.rbs +20 -1
  108. data/sig/openai/models/realtime/realtime_translation_session.rbs +22 -3
  109. data/sig/openai/models/realtime/realtime_translation_session_create_request.rbs +22 -3
  110. data/sig/openai/models/realtime/realtime_translation_session_update_request.rbs +22 -3
  111. data/sig/openai/models/responses/compacted_response.rbs +42 -2
  112. data/sig/openai/models/responses/response.rbs +40 -0
  113. data/sig/openai/models/responses/response_compact_params.rbs +58 -0
  114. data/sig/openai/models/responses/response_create_params.rbs +56 -0
  115. data/sig/openai/models/responses/response_input_item.rbs +51 -3
  116. data/sig/openai/models/responses/response_item.rbs +51 -3
  117. data/sig/openai/models/responses/response_output_item.rbs +51 -3
  118. data/sig/openai/models/responses/response_tool_search_output_item_param.rbs +188 -15
  119. data/sig/openai/models/responses/responses_client_event.rbs +56 -0
  120. data/sig/openai/models/responses/tool.rbs +188 -15
  121. data/sig/openai/models/responses_model.rbs +2 -0
  122. data/sig/openai/resources/admin/organization/projects.rbs +2 -2
  123. data/sig/openai/resources/admin/organization.rbs +2 -2
  124. data/sig/openai/resources/beta/responses.rbs +3 -0
  125. data/sig/openai/resources/images.rbs +14 -0
  126. data/sig/openai/resources/responses.rbs +4 -0
  127. metadata +1 -1
@@ -1306,6 +1306,43 @@ module OpenAI
1306
1306
  }
1307
1307
  attr_writer :background
1308
1308
 
1309
+ # Computation spent planning the image, independently of rendering quality.
1310
+ # Overrides the outer response's `reasoning.effort` for image generation. When
1311
+ # omitted, inherits a supported outer reasoning effort or uses the image model's
1312
+ # configured default. For SVG output, controls the reference image, not the SVG
1313
+ # author's reasoning.
1314
+ sig {
1315
+ returns(
1316
+ T.nilable(
1317
+ OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Complexity::OrSymbol
1318
+ )
1319
+ )
1320
+ }
1321
+ attr_reader :complexity
1322
+
1323
+ sig {
1324
+ params(
1325
+ complexity: OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Complexity::OrSymbol
1326
+ )
1327
+ .void
1328
+ }
1329
+ attr_writer :complexity
1330
+
1331
+ # Number of GIF frames. Requires `output_format` to be `gif`. Default: 9.
1332
+ sig { returns(T.nilable(Integer)) }
1333
+ attr_reader :frame_count
1334
+
1335
+ sig { params(frame_count: Integer).void }
1336
+ attr_writer :frame_count
1337
+
1338
+ # Duration of each GIF frame in milliseconds, rounded to 10 ms. Requires
1339
+ # `output_format` to be `gif`. Default: 200.
1340
+ sig { returns(T.nilable(Integer)) }
1341
+ attr_reader :frame_duration_ms
1342
+
1343
+ sig { params(frame_duration_ms: Integer).void }
1344
+ attr_writer :frame_duration_ms
1345
+
1309
1346
  # Control how much effort the model will exert to match the style and features,
1310
1347
  # especially facial features, of input images. Supports `high` and `low` on
1311
1348
  # `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For `gpt-image-2`, omit
@@ -1339,8 +1376,8 @@ module OpenAI
1339
1376
  # The image generation model to use. One of `gpt-image-1-mini`, `gpt-image-1.5`,
1340
1377
  # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
1341
1378
  # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
1342
- # `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`. Default:
1343
- # `gpt-image-2`.
1379
+ # `gpt-image-2.5-flare-2026-09-08`, `gpt-image-2.6-sunburst`,
1380
+ # `gpt-image-2.6-flare`, or `chatgpt-image-latest`. Default: `gpt-image-2`.
1344
1381
  #
1345
1382
  # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
1346
1383
  # `gpt-image-2.5-flare` instead.
@@ -1392,8 +1429,12 @@ module OpenAI
1392
1429
  sig { params(output_compression: Integer).void }
1393
1430
  attr_writer :output_compression
1394
1431
 
1395
- # The output format of the generated image. One of `png`, `webp`, or `jpeg`.
1396
- # Default: `png`.
1432
+ # The output format of the generated image. One of `png`, `webp`, `jpeg`, `gif`,
1433
+ # or `svg`. Default: `png`. GIF and SVG output require a model that supports the
1434
+ # selected format. GIF output does not support partial image streaming
1435
+ # (`partial_images` greater than `0`), `input_image_mask`, or custom
1436
+ # `output_compression`. Responses lifecycle events can still be streamed for GIF
1437
+ # output.
1397
1438
  sig {
1398
1439
  returns(
1399
1440
  T.nilable(
@@ -1471,6 +1512,18 @@ module OpenAI
1471
1512
  }
1472
1513
  attr_writer :size
1473
1514
 
1515
+ # SVG author model settings. Requires `output_format` to be `svg`. When SVG model
1516
+ # selection is enabled, omitting this object uses the outer response model.
1517
+ # Otherwise, the default SVG author is used and explicit model overrides are
1518
+ # unavailable.
1519
+ sig { returns(T.nilable(OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg)) }
1520
+ attr_reader :svg
1521
+
1522
+ sig {
1523
+ params(svg: OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::OrHash).void
1524
+ }
1525
+ attr_writer :svg
1526
+
1474
1527
  # A tool that generates images using the GPT image models.
1475
1528
  sig do
1476
1529
  params(
@@ -1479,6 +1532,12 @@ module OpenAI
1479
1532
 
1480
1533
  background: OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Background::OrSymbol,
1481
1534
 
1535
+ complexity: OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Complexity::OrSymbol,
1536
+
1537
+ frame_count: Integer,
1538
+
1539
+ frame_duration_ms: Integer,
1540
+
1482
1541
  input_fidelity: T.nilable(
1483
1542
  OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::InputFidelity::OrSymbol
1484
1543
  ),
@@ -1505,6 +1564,8 @@ module OpenAI
1505
1564
  OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Size::OrSymbol
1506
1565
  ),
1507
1566
 
1567
+ svg: OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::OrHash,
1568
+
1508
1569
  type: Symbol
1509
1570
  )
1510
1571
  .returns(T.attached_class)
@@ -1525,6 +1586,20 @@ module OpenAI
1525
1586
  # set the output format to `png` or `webp`.
1526
1587
  background: nil,
1527
1588
 
1589
+ # Computation spent planning the image, independently of rendering quality.
1590
+ # Overrides the outer response's `reasoning.effort` for image generation. When
1591
+ # omitted, inherits a supported outer reasoning effort or uses the image model's
1592
+ # configured default. For SVG output, controls the reference image, not the SVG
1593
+ # author's reasoning.
1594
+ complexity: nil,
1595
+
1596
+ # Number of GIF frames. Requires `output_format` to be `gif`. Default: 9.
1597
+ frame_count: nil,
1598
+
1599
+ # Duration of each GIF frame in milliseconds, rounded to 10 ms. Requires
1600
+ # `output_format` to be `gif`. Default: 200.
1601
+ frame_duration_ms: nil,
1602
+
1528
1603
  # Control how much effort the model will exert to match the style and features,
1529
1604
  # especially facial features, of input images. Supports `high` and `low` on
1530
1605
  # `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For `gpt-image-2`, omit
@@ -1538,8 +1613,8 @@ module OpenAI
1538
1613
  # The image generation model to use. One of `gpt-image-1-mini`, `gpt-image-1.5`,
1539
1614
  # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
1540
1615
  # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
1541
- # `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`. Default:
1542
- # `gpt-image-2`.
1616
+ # `gpt-image-2.5-flare-2026-09-08`, `gpt-image-2.6-sunburst`,
1617
+ # `gpt-image-2.6-flare`, or `chatgpt-image-latest`. Default: `gpt-image-2`.
1543
1618
  #
1544
1619
  # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
1545
1620
  # `gpt-image-2.5-flare` instead.
@@ -1551,8 +1626,12 @@ module OpenAI
1551
1626
  # Compression level for the output image. Default: 100.
1552
1627
  output_compression: nil,
1553
1628
 
1554
- # The output format of the generated image. One of `png`, `webp`, or `jpeg`.
1555
- # Default: `png`.
1629
+ # The output format of the generated image. One of `png`, `webp`, `jpeg`, `gif`,
1630
+ # or `svg`. Default: `png`. GIF and SVG output require a model that supports the
1631
+ # selected format. GIF output does not support partial image streaming
1632
+ # (`partial_images` greater than `0`), `input_image_mask`, or custom
1633
+ # `output_compression`. Responses lifecycle events can still be streamed for GIF
1634
+ # output.
1556
1635
  output_format: nil,
1557
1636
 
1558
1637
  # Number of partial images to generate in streaming mode, from 0 (default value)
@@ -1577,6 +1656,12 @@ module OpenAI
1577
1656
  # `auto` is supported for models that allow automatic sizing.
1578
1657
  size: nil,
1579
1658
 
1659
+ # SVG author model settings. Requires `output_format` to be `svg`. When SVG model
1660
+ # selection is enabled, omitting this object uses the outer response model.
1661
+ # Otherwise, the default SVG author is used and explicit model overrides are
1662
+ # unavailable.
1663
+ svg: nil,
1664
+
1580
1665
  # The type of the image generation tool. Always `image_generation`.
1581
1666
 
1582
1667
  type: :image_generation
@@ -1589,6 +1674,9 @@ module OpenAI
1589
1674
  type: Symbol,
1590
1675
  action: OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Action::OrSymbol,
1591
1676
  background: OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Background::OrSymbol,
1677
+ complexity: OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Complexity::OrSymbol,
1678
+ frame_count: Integer,
1679
+ frame_duration_ms: Integer,
1592
1680
  input_fidelity: T.nilable(
1593
1681
  OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::InputFidelity::OrSymbol
1594
1682
  ),
@@ -1605,7 +1693,8 @@ module OpenAI
1605
1693
  size: T.any(
1606
1694
  String,
1607
1695
  OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Size::OrSymbol
1608
- )
1696
+ ),
1697
+ svg: OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg
1609
1698
  }
1610
1699
  )
1611
1700
  end
@@ -1686,6 +1775,43 @@ module OpenAI
1686
1775
  end
1687
1776
  end
1688
1777
 
1778
+ # Computation spent planning the image, independently of rendering quality.
1779
+ # Overrides the outer response's `reasoning.effort` for image generation. When
1780
+ # omitted, inherits a supported outer reasoning effort or uses the image model's
1781
+ # configured default. For SVG output, controls the reference image, not the SVG
1782
+ # author's reasoning.
1783
+ module Complexity
1784
+ extend OpenAI::Internal::Type::Enum
1785
+
1786
+ TaggedSymbol = T.type_alias {
1787
+ T.all(Symbol, OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Complexity)
1788
+ }
1789
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1790
+
1791
+ LOW = T.let(
1792
+ :low,
1793
+ OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Complexity::TaggedSymbol
1794
+ )
1795
+ MEDIUM = T.let(
1796
+ :medium,
1797
+ OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Complexity::TaggedSymbol
1798
+ )
1799
+ HIGH = T.let(
1800
+ :high,
1801
+ OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Complexity::TaggedSymbol
1802
+ )
1803
+
1804
+ sig {
1805
+ override.returns(
1806
+ T::Array[
1807
+ OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Complexity::TaggedSymbol
1808
+ ]
1809
+ )
1810
+ }
1811
+ def self.values
1812
+ end
1813
+ end
1814
+
1689
1815
  # Control how much effort the model will exert to match the style and features,
1690
1816
  # especially facial features, of input images. Supports `high` and `low` on
1691
1817
  # `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For `gpt-image-2`, omit
@@ -1775,8 +1901,8 @@ module OpenAI
1775
1901
  # The image generation model to use. One of `gpt-image-1-mini`, `gpt-image-1.5`,
1776
1902
  # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
1777
1903
  # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
1778
- # `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`. Default:
1779
- # `gpt-image-2`.
1904
+ # `gpt-image-2.5-flare-2026-09-08`, `gpt-image-2.6-sunburst`,
1905
+ # `gpt-image-2.6-flare`, or `chatgpt-image-latest`. Default: `gpt-image-2`.
1780
1906
  #
1781
1907
  # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
1782
1908
  # `gpt-image-2.5-flare` instead.
@@ -1836,6 +1962,14 @@ module OpenAI
1836
1962
  :"gpt-image-2.5-flare-2026-09-08",
1837
1963
  OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Model::TaggedSymbol
1838
1964
  )
1965
+ GPT_IMAGE_2_6_SUNBURST = T.let(
1966
+ :"gpt-image-2.6-sunburst",
1967
+ OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Model::TaggedSymbol
1968
+ )
1969
+ GPT_IMAGE_2_6_FLARE = T.let(
1970
+ :"gpt-image-2.6-flare",
1971
+ OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Model::TaggedSymbol
1972
+ )
1839
1973
  GPT_IMAGE_1_5 = T.let(
1840
1974
  :"gpt-image-1.5",
1841
1975
  OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Model::TaggedSymbol
@@ -1876,8 +2010,12 @@ module OpenAI
1876
2010
  end
1877
2011
  end
1878
2012
 
1879
- # The output format of the generated image. One of `png`, `webp`, or `jpeg`.
1880
- # Default: `png`.
2013
+ # The output format of the generated image. One of `png`, `webp`, `jpeg`, `gif`,
2014
+ # or `svg`. Default: `png`. GIF and SVG output require a model that supports the
2015
+ # selected format. GIF output does not support partial image streaming
2016
+ # (`partial_images` greater than `0`), `input_image_mask`, or custom
2017
+ # `output_compression`. Responses lifecycle events can still be streamed for GIF
2018
+ # output.
1881
2019
  module OutputFormat
1882
2020
  extend OpenAI::Internal::Type::Enum
1883
2021
 
@@ -1898,6 +2036,14 @@ module OpenAI
1898
2036
  :jpeg,
1899
2037
  OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::OutputFormat::TaggedSymbol
1900
2038
  )
2039
+ GIF = T.let(
2040
+ :gif,
2041
+ OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::OutputFormat::TaggedSymbol
2042
+ )
2043
+ SVG = T.let(
2044
+ :svg,
2045
+ OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::OutputFormat::TaggedSymbol
2046
+ )
1901
2047
 
1902
2048
  sig {
1903
2049
  override.returns(
@@ -2010,6 +2156,185 @@ module OpenAI
2010
2156
  )
2011
2157
 
2012
2158
  end
2159
+
2160
+ class Svg < OpenAI::Internal::Type::BaseModel
2161
+ OrHash = T.type_alias do
2162
+ T.any(
2163
+ OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg,
2164
+ OpenAI::Internal::AnyHash
2165
+ )
2166
+ end
2167
+
2168
+ sig { returns(T.nilable(String)) }
2169
+ attr_reader :model
2170
+
2171
+ sig { params(model: String).void }
2172
+ attr_writer :model
2173
+
2174
+ # Reasoning effort for SVG authoring. When omitted, uses the author model's
2175
+ # default in both Images and Responses.
2176
+ sig {
2177
+ returns(
2178
+ T.nilable(OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning)
2179
+ )
2180
+ }
2181
+ attr_reader :reasoning
2182
+
2183
+ sig {
2184
+ params(
2185
+ reasoning: T.nilable(
2186
+ OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::OrHash
2187
+ )
2188
+ )
2189
+ .void
2190
+ }
2191
+ attr_writer :reasoning
2192
+
2193
+ # SVG author model settings. Requires `output_format` to be `svg`. When SVG model
2194
+ # selection is enabled, omitting this object uses the outer response model.
2195
+ # Otherwise, the default SVG author is used and explicit model overrides are
2196
+ # unavailable.
2197
+ sig do
2198
+ params(
2199
+
2200
+ model: String,
2201
+
2202
+ reasoning: T.nilable(
2203
+ OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::OrHash
2204
+ )
2205
+ )
2206
+ .returns(T.attached_class)
2207
+ end
2208
+ def self.new(
2209
+
2210
+ model: nil,
2211
+
2212
+ # Reasoning effort for SVG authoring. When omitted, uses the author model's
2213
+ # default in both Images and Responses.
2214
+
2215
+ reasoning: nil
2216
+ )
2217
+ end
2218
+
2219
+ sig do
2220
+ override.returns(
2221
+ {
2222
+ model: String,
2223
+ reasoning: T.nilable(
2224
+ OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning
2225
+ )
2226
+ }
2227
+ )
2228
+ end
2229
+ def to_hash
2230
+ end
2231
+
2232
+ class Reasoning < OpenAI::Internal::Type::BaseModel
2233
+ OrHash = T.type_alias do
2234
+ T.any(
2235
+ OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning,
2236
+ OpenAI::Internal::AnyHash
2237
+ )
2238
+ end
2239
+
2240
+ # Controls how much effort the model should spend on reasoning for this request.
2241
+ sig {
2242
+ returns(
2243
+ T.nilable(
2244
+ OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::Effort::OrSymbol
2245
+ )
2246
+ )
2247
+ }
2248
+ attr_reader :effort
2249
+
2250
+ sig {
2251
+ params(
2252
+ effort: OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::Effort::OrSymbol
2253
+ )
2254
+ .void
2255
+ }
2256
+ attr_writer :effort
2257
+
2258
+ # Reasoning effort for SVG authoring. When omitted, uses the author model's
2259
+ # default in both Images and Responses.
2260
+ sig do
2261
+ params(
2262
+
2263
+ effort: OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::Effort::OrSymbol
2264
+ )
2265
+ .returns(T.attached_class)
2266
+ end
2267
+ def self.new(
2268
+
2269
+ # Controls how much effort the model should spend on reasoning for this request.
2270
+
2271
+ effort: nil
2272
+ )
2273
+ end
2274
+
2275
+ sig do
2276
+ override.returns(
2277
+ {
2278
+ effort: OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::Effort::OrSymbol
2279
+ }
2280
+ )
2281
+ end
2282
+ def to_hash
2283
+ end
2284
+
2285
+ # Controls how much effort the model should spend on reasoning for this request.
2286
+ module Effort
2287
+ extend OpenAI::Internal::Type::Enum
2288
+
2289
+ TaggedSymbol = T.type_alias {
2290
+ T.all(
2291
+ Symbol,
2292
+ OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::Effort
2293
+ )
2294
+ }
2295
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2296
+
2297
+ NONE = T.let(
2298
+ :none,
2299
+ OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::Effort::TaggedSymbol
2300
+ )
2301
+ MINIMAL = T.let(
2302
+ :minimal,
2303
+ OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::Effort::TaggedSymbol
2304
+ )
2305
+ LOW = T.let(
2306
+ :low,
2307
+ OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::Effort::TaggedSymbol
2308
+ )
2309
+ MEDIUM = T.let(
2310
+ :medium,
2311
+ OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::Effort::TaggedSymbol
2312
+ )
2313
+ HIGH = T.let(
2314
+ :high,
2315
+ OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::Effort::TaggedSymbol
2316
+ )
2317
+ XHIGH = T.let(
2318
+ :xhigh,
2319
+ OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::Effort::TaggedSymbol
2320
+ )
2321
+ MAX = T.let(
2322
+ :max,
2323
+ OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::Effort::TaggedSymbol
2324
+ )
2325
+
2326
+ sig {
2327
+ override.returns(
2328
+ T::Array[
2329
+ OpenAI::Beta::BetaResponseToolSearchOutputItemParam::Tool::ImageGeneration::Svg::Reasoning::Effort::TaggedSymbol
2330
+ ]
2331
+ )
2332
+ }
2333
+ def self.values
2334
+ end
2335
+ end
2336
+ end
2337
+ end
2013
2338
  end
2014
2339
 
2015
2340
  class LocalShell < OpenAI::Internal::Type::BaseModel
@@ -67,6 +67,13 @@ module OpenAI
67
67
  sig { params(generate: T::Boolean).void }
68
68
  attr_writer :generate
69
69
 
70
+ # Request level image options.
71
+ sig { returns(T.nilable(OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Image)) }
72
+ attr_reader :image
73
+
74
+ sig { params(image: OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Image::OrHash).void }
75
+ attr_writer :image
76
+
70
77
  # Specify additional output data to include in the model response. Currently
71
78
  # supported values are:
72
79
  #
@@ -514,6 +521,8 @@ module OpenAI
514
521
 
515
522
  generate: T::Boolean,
516
523
 
524
+ image: OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Image::OrHash,
525
+
517
526
  include: T.nilable(T::Array[OpenAI::Beta::BetaResponseIncludable::OrSymbol]),
518
527
 
519
528
  input: OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Input::Variants,
@@ -632,6 +641,9 @@ module OpenAI
632
641
  # used as previous_response_id on a later turn.
633
642
  generate: nil,
634
643
 
644
+ # Request level image options.
645
+ image: nil,
646
+
635
647
  # Specify additional output data to include in the model response. Currently
636
648
  # supported values are:
637
649
  #
@@ -899,6 +911,7 @@ module OpenAI
899
911
  ),
900
912
  conversation: T.nilable(T.any(String, OpenAI::Beta::BetaResponseConversationParam)),
901
913
  generate: T.nilable(T::Boolean),
914
+ image: T.nilable(OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Image),
902
915
  include: T.nilable(T::Array[OpenAI::Beta::BetaResponseIncludable::OrSymbol]),
903
916
  input: T.nilable(OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Input::Variants),
904
917
  instructions: T.nilable(String),
@@ -1144,6 +1157,98 @@ module OpenAI
1144
1157
 
1145
1158
  end
1146
1159
 
1160
+ class Image < OpenAI::Internal::Type::BaseModel
1161
+ OrHash = T.type_alias do
1162
+ T.any(
1163
+ OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Image,
1164
+ OpenAI::Internal::AnyHash
1165
+ )
1166
+ end
1167
+
1168
+ # Controls image context optimization. Defaults to `auto`, which uses the model,
1169
+ # transport, and input to select a policy. Use `enabled` to require compression
1170
+ # support or `disabled` to turn it off.
1171
+ sig {
1172
+ returns(
1173
+ T.nilable(OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Image::ContextCompression::OrSymbol)
1174
+ )
1175
+ }
1176
+ attr_reader :context_compression
1177
+
1178
+ sig {
1179
+ params(
1180
+ context_compression: OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Image::ContextCompression::OrSymbol
1181
+ )
1182
+ .void
1183
+ }
1184
+ attr_writer :context_compression
1185
+
1186
+ # Request level image options.
1187
+ sig do
1188
+ params(
1189
+
1190
+ context_compression: OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Image::ContextCompression::OrSymbol
1191
+ )
1192
+ .returns(T.attached_class)
1193
+ end
1194
+ def self.new(
1195
+
1196
+ # Controls image context optimization. Defaults to `auto`, which uses the model,
1197
+ # transport, and input to select a policy. Use `enabled` to require compression
1198
+ # support or `disabled` to turn it off.
1199
+
1200
+ context_compression: nil
1201
+ )
1202
+ end
1203
+
1204
+ sig do
1205
+ override.returns(
1206
+ {
1207
+ context_compression: T.nilable(
1208
+ OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Image::ContextCompression::OrSymbol
1209
+ )
1210
+ }
1211
+ )
1212
+ end
1213
+ def to_hash
1214
+ end
1215
+
1216
+ # Controls image context optimization. Defaults to `auto`, which uses the model,
1217
+ # transport, and input to select a policy. Use `enabled` to require compression
1218
+ # support or `disabled` to turn it off.
1219
+ module ContextCompression
1220
+ extend OpenAI::Internal::Type::Enum
1221
+
1222
+ TaggedSymbol = T.type_alias {
1223
+ T.all(Symbol, OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Image::ContextCompression)
1224
+ }
1225
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1226
+
1227
+ AUTO = T.let(
1228
+ :auto,
1229
+ OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Image::ContextCompression::TaggedSymbol
1230
+ )
1231
+ ENABLED = T.let(
1232
+ :enabled,
1233
+ OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Image::ContextCompression::TaggedSymbol
1234
+ )
1235
+ DISABLED = T.let(
1236
+ :disabled,
1237
+ OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Image::ContextCompression::TaggedSymbol
1238
+ )
1239
+
1240
+ sig {
1241
+ override.returns(
1242
+ T::Array[
1243
+ OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Image::ContextCompression::TaggedSymbol
1244
+ ]
1245
+ )
1246
+ }
1247
+ def self.values
1248
+ end
1249
+ end
1250
+ end
1251
+
1147
1252
  # Text, image, or file inputs to the model, used to generate a response.
1148
1253
  #
1149
1254
  # Learn more: