openai 0.95.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 (197) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +51 -0
  3. data/README.md +5 -2
  4. data/docs/architecture/security-model.md +2 -2
  5. data/examples/audio/record_and_play.rb +1 -1
  6. data/lib/openai/helpers/live/transcript_grouper.rb +264 -0
  7. data/lib/openai/helpers/live/transcript_grouping.rb +309 -0
  8. data/lib/openai/helpers/live/websocket.rb +454 -0
  9. data/lib/openai/helpers/realtime/translation.rb +440 -0
  10. data/lib/openai/helpers/realtime.rb +1 -0
  11. data/lib/openai/helpers/responses_websocket/incremental.rb +246 -0
  12. data/lib/openai/helpers/responses_websocket/transports/async_websocket.rb +183 -0
  13. data/lib/openai/helpers/responses_websocket.rb +1 -0
  14. data/lib/openai/helpers/streaming/response_stream.rb +19 -11
  15. data/lib/openai/helpers/structured_output/chat_completion_parser.rb +0 -2
  16. data/lib/openai/helpers/structured_output/response_parser.rb +1 -2
  17. data/lib/openai/helpers/structured_output/union_of.rb +0 -2
  18. data/lib/openai/helpers/websocket/async_websocket_transport.rb +11 -6
  19. data/lib/openai/helpers/websocket/connection_manager.rb +9 -0
  20. data/lib/openai/internal/read_io_adapter.rb +0 -2
  21. data/lib/openai/internal/stream.rb +0 -2
  22. data/lib/openai/internal/type/base_model.rb +4 -6
  23. data/lib/openai/internal/type/converter.rb +5 -3
  24. data/lib/openai/internal/type/enum.rb +0 -2
  25. data/lib/openai/internal/type/union.rb +0 -6
  26. data/lib/openai/internal/type/unknown.rb +34 -6
  27. data/lib/openai/internal/util.rb +0 -4
  28. data/lib/openai/models/audio/speech_create_params.rb +9 -0
  29. data/lib/openai/models/audio/transcription_create_response.rb +4 -1
  30. data/lib/openai/models/audio/translation_create_response.rb +4 -1
  31. data/lib/openai/models/beta/agent.rb +3 -2
  32. data/lib/openai/models/beta/agent_browser_authentication_cancel_param.rb +23 -0
  33. data/lib/openai/models/beta/agent_browser_authentication_submit_param.rb +70 -0
  34. data/lib/openai/models/beta/agent_browser_origin_access_param.rb +45 -0
  35. data/lib/openai/models/beta/agent_create_params.rb +5 -2
  36. data/lib/openai/models/beta/agent_output_item.rb +276 -1
  37. data/lib/openai/models/beta/agent_session.rb +252 -5
  38. data/lib/openai/models/beta/agent_session_input_param.rb +64 -1
  39. data/lib/openai/models/beta/agent_session_item.rb +391 -1
  40. data/lib/openai/models/beta/agent_session_turn_item_added_event.rb +2 -2
  41. data/lib/openai/models/beta/agent_session_turn_item_done_event.rb +2 -2
  42. data/lib/openai/models/beta/agent_tool.rb +27 -1
  43. data/lib/openai/models/beta/agent_tool_param.rb +27 -1
  44. data/lib/openai/models/beta/agent_update_params.rb +5 -2
  45. data/lib/openai/models/beta/agents/environments/environment_template.rb +26 -2
  46. data/lib/openai/models/beta/agents/environments/template_create_params.rb +51 -6
  47. data/lib/openai/models/beta/agents/environments/template_update_params.rb +51 -9
  48. data/lib/openai/models/beta/agents/session_create_params.rb +5 -2
  49. data/lib/openai/models/beta/agents/session_update_params.rb +3 -0
  50. data/lib/openai/models/beta/agents/sessions/event_create_params.rb +2 -2
  51. data/lib/openai/models/beta/agents/vaults/credential.rb +10 -1
  52. data/lib/openai/models/beta/agents/vaults/credential_create_params.rb +12 -1
  53. data/lib/openai/models/beta/agents/vaults/credential_update_params.rb +14 -3
  54. data/lib/openai/models/beta/beta_response.rb +38 -1
  55. data/lib/openai/models/beta/beta_responses_client_event.rb +73 -1
  56. data/lib/openai/models/beta/beta_web_search_preview_tool.rb +9 -3
  57. data/lib/openai/models/beta/beta_web_search_tool.rb +9 -3
  58. data/lib/openai/models/beta/environment.rb +26 -2
  59. data/lib/openai/models/beta/environment_param.rb +46 -6
  60. data/lib/openai/models/beta/persisted_agent_tool.rb +27 -1
  61. data/lib/openai/models/beta/persisted_agent_tool_param.rb +27 -1
  62. data/lib/openai/models/beta/response_compact_params.rb +3 -0
  63. data/lib/openai/models/beta/response_create_params.rb +68 -1
  64. data/lib/openai/models/beta/session_turn_error.rb +3 -0
  65. data/lib/openai/models/chat_model.rb +1 -0
  66. data/lib/openai/models/responses/response.rb +35 -1
  67. data/lib/openai/models/responses/response_compact_params.rb +3 -0
  68. data/lib/openai/models/responses/response_create_params.rb +65 -1
  69. data/lib/openai/models/responses/responses_client_event.rb +70 -1
  70. data/lib/openai/models/responses/web_search_preview_tool.rb +9 -3
  71. data/lib/openai/models/responses/web_search_tool.rb +9 -3
  72. data/lib/openai/net_http_client.rb +0 -2
  73. data/lib/openai/resources/audio/transcriptions.rb +5 -3
  74. data/lib/openai/resources/audio/translations.rb +1 -1
  75. data/lib/openai/resources/beta/agents/environments/templates.rb +12 -5
  76. data/lib/openai/resources/beta/agents/sessions/events.rb +1 -1
  77. data/lib/openai/resources/beta/agents/sessions/items.rb +1 -1
  78. data/lib/openai/resources/beta/agents/sessions/subagents/items.rb +1 -1
  79. data/lib/openai/resources/beta/agents/sessions/subagents/turns/items.rb +1 -1
  80. data/lib/openai/resources/beta/agents/vaults/credentials.rb +12 -4
  81. data/lib/openai/resources/beta/agents.rb +2 -2
  82. data/lib/openai/resources/beta/responses.rb +8 -2
  83. data/lib/openai/resources/responses.rb +8 -1
  84. data/lib/openai/version.rb +1 -1
  85. data/lib/openai.rb +4 -0
  86. data/rbi/openai/helpers/live/transcript_grouper.rbi +67 -0
  87. data/rbi/openai/helpers/live/websocket.rbi +299 -0
  88. data/rbi/openai/helpers/realtime/translation.rbi +137 -0
  89. data/rbi/openai/helpers/responses_websocket/incremental.rbi +32 -0
  90. data/rbi/openai/helpers/responses_websocket/transports/async_websocket.rbi +24 -0
  91. data/rbi/openai/helpers/streaming/response_stream.rbi +5 -0
  92. data/rbi/openai/internal/type/converter.rbi +3 -2
  93. data/rbi/openai/models/audio/speech_create_params.rbi +3 -0
  94. data/rbi/openai/models/audio/transcription_create_response.rbi +2 -1
  95. data/rbi/openai/models/audio/translation_create_response.rbi +2 -1
  96. data/rbi/openai/models/beta/agent.rbi +3 -1
  97. data/rbi/openai/models/beta/agent_browser_authentication_cancel_param.rbi +53 -0
  98. data/rbi/openai/models/beta/agent_browser_authentication_submit_param.rbi +125 -0
  99. data/rbi/openai/models/beta/agent_browser_origin_access_param.rbi +76 -0
  100. data/rbi/openai/models/beta/agent_create_params.rbi +9 -3
  101. data/rbi/openai/models/beta/agent_output_item.rbi +422 -0
  102. data/rbi/openai/models/beta/agent_session.rbi +374 -1
  103. data/rbi/openai/models/beta/agent_session_input_param.rbi +102 -0
  104. data/rbi/openai/models/beta/agent_session_item.rbi +614 -0
  105. data/rbi/openai/models/beta/agent_session_turn_item_added_event.rbi +3 -0
  106. data/rbi/openai/models/beta/agent_session_turn_item_done_event.rbi +2 -0
  107. data/rbi/openai/models/beta/agent_tool.rbi +49 -1
  108. data/rbi/openai/models/beta/agent_tool_param.rbi +52 -1
  109. data/rbi/openai/models/beta/agent_update_params.rbi +9 -3
  110. data/rbi/openai/models/beta/agents/environments/environment_template.rbi +53 -2
  111. data/rbi/openai/models/beta/agents/environments/template_create_params.rbi +77 -7
  112. data/rbi/openai/models/beta/agents/environments/template_update_params.rbi +77 -10
  113. data/rbi/openai/models/beta/agents/session_create_params.rbi +9 -3
  114. data/rbi/openai/models/beta/agents/session_update_params.rbi +3 -0
  115. data/rbi/openai/models/beta/agents/sessions/event_create_params.rbi +3 -0
  116. data/rbi/openai/models/beta/agents/vaults/credential.rbi +10 -0
  117. data/rbi/openai/models/beta/agents/vaults/credential_create_params.rbi +15 -0
  118. data/rbi/openai/models/beta/agents/vaults/credential_update_params.rbi +35 -6
  119. data/rbi/openai/models/beta/beta_response.rbi +64 -0
  120. data/rbi/openai/models/beta/beta_responses_client_event.rbi +128 -0
  121. data/rbi/openai/models/beta/beta_web_search_preview_tool.rbi +9 -3
  122. data/rbi/openai/models/beta/beta_web_search_tool.rbi +9 -3
  123. data/rbi/openai/models/beta/environment.rbi +53 -2
  124. data/rbi/openai/models/beta/environment_param.rbi +75 -7
  125. data/rbi/openai/models/beta/persisted_agent_tool.rbi +49 -1
  126. data/rbi/openai/models/beta/persisted_agent_tool_param.rbi +52 -1
  127. data/rbi/openai/models/beta/response_compact_params.rbi +1 -0
  128. data/rbi/openai/models/beta/response_create_params.rbi +100 -0
  129. data/rbi/openai/models/beta/session_turn_error.rbi +6 -0
  130. data/rbi/openai/models/chat_model.rbi +1 -0
  131. data/rbi/openai/models/responses/response.rbi +63 -0
  132. data/rbi/openai/models/responses/response_compact_params.rbi +1 -0
  133. data/rbi/openai/models/responses/response_create_params.rbi +106 -0
  134. data/rbi/openai/models/responses/responses_client_event.rbi +125 -0
  135. data/rbi/openai/models/responses/web_search_preview_tool.rbi +9 -3
  136. data/rbi/openai/models/responses/web_search_tool.rbi +9 -3
  137. data/rbi/openai/resources/audio/transcriptions.rbi +4 -2
  138. data/rbi/openai/resources/beta/agents/environments/templates.rbi +10 -3
  139. data/rbi/openai/resources/beta/agents/sessions/events.rbi +1 -0
  140. data/rbi/openai/resources/beta/agents/vaults/credentials.rbi +11 -3
  141. data/rbi/openai/resources/beta/agents.rbi +4 -2
  142. data/rbi/openai/resources/beta/responses.rbi +6 -0
  143. data/rbi/openai/resources/responses.rbi +11 -0
  144. data/responses-websocket.md +55 -0
  145. data/sig/openai/helpers/live/transcript_grouper.rbs +42 -0
  146. data/sig/openai/helpers/live/websocket.rbs +152 -0
  147. data/sig/openai/helpers/realtime/translation.rbs +81 -0
  148. data/sig/openai/helpers/responses_websocket/incremental.rbs +14 -0
  149. data/sig/openai/helpers/responses_websocket/transports/async_websocket.rbs +21 -0
  150. data/sig/openai/helpers/streaming/response_stream.rbs +9 -0
  151. data/sig/openai/internal/type/converter.rbs +3 -1
  152. data/sig/openai/models/audio/speech_create_params.rbs +6 -0
  153. data/sig/openai/models/audio/transcription_create_response.rbs +1 -0
  154. data/sig/openai/models/audio/translation_create_response.rbs +3 -1
  155. data/sig/openai/models/beta/agent.rbs +3 -1
  156. data/sig/openai/models/beta/agent_browser_authentication_cancel_param.rbs +21 -0
  157. data/sig/openai/models/beta/agent_browser_authentication_submit_param.rbs +63 -0
  158. data/sig/openai/models/beta/agent_browser_origin_access_param.rbs +47 -0
  159. data/sig/openai/models/beta/agent_create_params.rbs +5 -1
  160. data/sig/openai/models/beta/agent_output_item.rbs +254 -0
  161. data/sig/openai/models/beta/agent_session.rbs +218 -2
  162. data/sig/openai/models/beta/agent_session_input_param.rbs +51 -1
  163. data/sig/openai/models/beta/agent_session_item.rbs +362 -0
  164. data/sig/openai/models/beta/agent_tool.rbs +22 -0
  165. data/sig/openai/models/beta/agent_tool_param.rbs +25 -0
  166. data/sig/openai/models/beta/agent_update_params.rbs +5 -1
  167. data/sig/openai/models/beta/agents/environments/environment_template.rbs +29 -3
  168. data/sig/openai/models/beta/agents/environments/template_create_params.rbs +41 -6
  169. data/sig/openai/models/beta/agents/environments/template_update_params.rbs +41 -8
  170. data/sig/openai/models/beta/agents/session_create_params.rbs +5 -1
  171. data/sig/openai/models/beta/agents/session_update_params.rbs +5 -1
  172. data/sig/openai/models/beta/agents/vaults/credential.rbs +8 -0
  173. data/sig/openai/models/beta/agents/vaults/credential_create_params.rbs +14 -0
  174. data/sig/openai/models/beta/agents/vaults/credential_update_params.rbs +23 -4
  175. data/sig/openai/models/beta/beta_response.rbs +37 -0
  176. data/sig/openai/models/beta/beta_responses_client_event.rbs +79 -0
  177. data/sig/openai/models/beta/beta_web_search_preview_tool.rbs +6 -2
  178. data/sig/openai/models/beta/beta_web_search_tool.rbs +6 -2
  179. data/sig/openai/models/beta/environment.rbs +29 -3
  180. data/sig/openai/models/beta/environment_param.rbs +41 -6
  181. data/sig/openai/models/beta/persisted_agent_tool.rbs +22 -0
  182. data/sig/openai/models/beta/persisted_agent_tool_param.rbs +25 -0
  183. data/sig/openai/models/beta/response_compact_params.rbs +2 -0
  184. data/sig/openai/models/beta/response_create_params.rbs +79 -0
  185. data/sig/openai/models/beta/session_turn_error.rbs +4 -0
  186. data/sig/openai/models/chat_model.rbs +2 -0
  187. data/sig/openai/models/responses/response.rbs +35 -0
  188. data/sig/openai/models/responses/response_compact_params.rbs +2 -0
  189. data/sig/openai/models/responses/response_create_params.rbs +77 -0
  190. data/sig/openai/models/responses/responses_client_event.rbs +77 -0
  191. data/sig/openai/models/responses/web_search_preview_tool.rbs +6 -2
  192. data/sig/openai/models/responses/web_search_tool.rbs +6 -2
  193. data/sig/openai/resources/beta/agents/environments/templates.rbs +2 -0
  194. data/sig/openai/resources/beta/agents/vaults/credentials.rbs +3 -1
  195. data/sig/openai/resources/beta/responses.rbs +2 -0
  196. data/sig/openai/resources/responses.rbs +4 -0
  197. metadata +23 -1
@@ -26,6 +26,7 @@ module OpenAI
26
26
  {
27
27
  ?type: :openai_hosted,
28
28
  ?capability_directories: ::Array[String]?,
29
+ ?desktop: OpenAI::Beta::EnvironmentParam::OpenAIHosted::Desktop?,
29
30
  ?env: ::Hash[Symbol, String]?,
30
31
  ?environment_template_id: String,
31
32
  ?files: ::Array[OpenAI::Models::Beta::hosted_environment_file_param]?,
@@ -44,6 +45,10 @@ module OpenAI
44
45
  # list.
45
46
  attr_accessor capability_directories: ::Array[String]?
46
47
 
48
+ # Desktop provisioning. Omission or null inherits the template setting, or
49
+ # defaults to disabled.
50
+ attr_accessor desktop: OpenAI::Beta::EnvironmentParam::OpenAIHosted::Desktop?
51
+
47
52
  # Environment variables made available to the agent.
48
53
  attr_accessor env: ::Hash[Symbol, String]?
49
54
 
@@ -59,7 +64,7 @@ module OpenAI
59
64
  attr_accessor files: ::Array[OpenAI::Models::Beta::hosted_environment_file_param]?
60
65
 
61
66
  # Network access policy for the environment. Defaults to disabled for GA requests
62
- # and enabled for alpha/beta requests.
67
+ # and enabled for beta requests.
63
68
  attr_accessor network: OpenAI::Beta::EnvironmentParam::OpenAIHosted::Network?
64
69
 
65
70
  # Packages to install in the environment. Defaults to empty package lists.
@@ -78,6 +83,9 @@ module OpenAI
78
83
  # @param capability_directories
79
84
  # Directories that contain capabilities exposed to the agent. Defaults to an empty
80
85
  # list.
86
+ # @param desktop
87
+ # Desktop provisioning. Omission or null inherits the template setting, or
88
+ # defaults to disabled.
81
89
  # @param env
82
90
  # Environment variables made available to the agent.
83
91
  # @param environment_template_id
@@ -87,7 +95,7 @@ module OpenAI
87
95
  # Files available before the agent starts. Defaults to an empty list.
88
96
  # @param network
89
97
  # Network access policy for the environment. Defaults to disabled for GA requests
90
- # and enabled for alpha/beta requests.
98
+ # and enabled for beta requests.
91
99
  # @param packages
92
100
  # Packages to install in the environment. Defaults to empty package lists.
93
101
  # @param plugins
@@ -101,6 +109,7 @@ module OpenAI
101
109
  # The type of the object. Always `openai_hosted`.
102
110
  def initialize: (
103
111
  ?capability_directories: ::Array[String]?,
112
+ ?desktop: OpenAI::Beta::EnvironmentParam::OpenAIHosted::Desktop?,
104
113
  ?env: ::Hash[Symbol, String]?,
105
114
  ?environment_template_id: String,
106
115
  ?files: ::Array[OpenAI::Models::Beta::hosted_environment_file_param]?,
@@ -115,6 +124,7 @@ module OpenAI
115
124
  def to_hash: -> {
116
125
  ?type: :openai_hosted,
117
126
  ?capability_directories: ::Array[String]?,
127
+ ?desktop: OpenAI::Beta::EnvironmentParam::OpenAIHosted::Desktop?,
118
128
  ?env: ::Hash[Symbol, String]?,
119
129
  ?environment_template_id: String,
120
130
  ?files: ::Array[OpenAI::Models::Beta::hosted_environment_file_param]?,
@@ -125,10 +135,24 @@ module OpenAI
125
135
  ?skills: ::Array[OpenAI::Models::Beta::hosted_skill_param]?
126
136
  }
127
137
 
138
+ type desktop = { enabled: bool }
139
+
140
+ class Desktop < OpenAI::Internal::Type::BaseModel
141
+ # Whether to provision the desktop and its browser proxy.
142
+ attr_accessor enabled: bool
143
+
144
+ # @param enabled
145
+ # Whether to provision the desktop and its browser proxy.
146
+ def initialize: (enabled: bool) -> void
147
+
148
+ def to_hash: -> { enabled: bool }
149
+ end
150
+
128
151
  type network =
129
152
  {
130
153
  access: OpenAI::Models::Beta::EnvironmentParam::OpenAIHosted::Network::access,
131
- ?allowed_domains: ::Array[String]?
154
+ ?allowed_domains: ::Array[String]?,
155
+ ?blocked_domains: ::Array[String]?
132
156
  }
133
157
 
134
158
  class Network < OpenAI::Internal::Type::BaseModel
@@ -138,18 +162,29 @@ module OpenAI
138
162
  # Domains the environment may access when network access is restricted.
139
163
  attr_accessor allowed_domains: ::Array[String]?
140
164
 
165
+ # Domains blocked for both executor and browser when access is restricted. A
166
+ # nonempty list requires `access: restricted` and cannot be combined with nonempty
167
+ # `allowed_domains`. Wildcard domains are not supported.
168
+ attr_accessor blocked_domains: ::Array[String]?
169
+
141
170
  # @param access
142
171
  # The environment's network access mode.
143
172
  # @param allowed_domains
144
173
  # Domains the environment may access when network access is restricted.
174
+ # @param blocked_domains
175
+ # Domains blocked for both executor and browser when access is restricted. A
176
+ # nonempty list requires `access: restricted` and cannot be combined with nonempty
177
+ # `allowed_domains`. Wildcard domains are not supported.
145
178
  def initialize: (
146
179
  access: OpenAI::Models::Beta::EnvironmentParam::OpenAIHosted::Network::access,
147
- ?allowed_domains: ::Array[String]?
180
+ ?allowed_domains: ::Array[String]?,
181
+ ?blocked_domains: ::Array[String]?
148
182
  ) -> void
149
183
 
150
184
  def to_hash: -> {
151
185
  access: OpenAI::Models::Beta::EnvironmentParam::OpenAIHosted::Network::access,
152
- ?allowed_domains: ::Array[String]?
186
+ ?allowed_domains: ::Array[String]?,
187
+ ?blocked_domains: ::Array[String]?
153
188
  }
154
189
 
155
190
  type access = :enabled | :disabled | :restricted
@@ -163,7 +198,7 @@ module OpenAI
163
198
  # Disables network access.
164
199
  DISABLED: :disabled
165
200
 
166
- # Allows access only to configured domains.
201
+ # Applies the configured domain restrictions.
167
202
  RESTRICTED: :restricted
168
203
 
169
204
  def self?.values: -> ::Array[OpenAI::Models::Beta::EnvironmentParam::OpenAIHosted::Network::access]
@@ -7,6 +7,7 @@ module OpenAI
7
7
  | OpenAI::Beta::PersistedAgentTool::ProgrammaticToolCalling
8
8
  | OpenAI::Beta::PersistedAgentTool::Mcp
9
9
  | OpenAI::Beta::PersistedAgentTool::WebSearch
10
+ | OpenAI::Beta::PersistedAgentTool::ComputerUse
10
11
 
11
12
  module PersistedAgentTool
12
13
  extend OpenAI::Internal::Type::Union
@@ -305,6 +306,27 @@ module OpenAI
305
306
  end
306
307
  end
307
308
 
309
+ type computer_use = { include_screenshots: bool, ?type: :computer_use }
310
+
311
+ class ComputerUse < OpenAI::Internal::Type::BaseModel
312
+ # Whether computer tool outputs include screenshots.
313
+ attr_accessor include_screenshots: bool
314
+
315
+ # The type of the object. Always `computer_use`.
316
+ attr_accessor type: :computer_use
317
+
318
+ # @param include_screenshots
319
+ # Whether computer tool outputs include screenshots.
320
+ # @param type
321
+ # The type of the object. Always `computer_use`.
322
+ def initialize: (
323
+ include_screenshots: bool,
324
+ ?type: :computer_use
325
+ ) -> void
326
+
327
+ def to_hash: -> { include_screenshots: bool, ?type: :computer_use }
328
+ end
329
+
308
330
  def self?.variants: -> ::Array[OpenAI::Models::Beta::persisted_agent_tool]
309
331
  end
310
332
  end
@@ -7,6 +7,7 @@ module OpenAI
7
7
  | OpenAI::Beta::PersistedAgentToolParam::ProgrammaticToolCalling
8
8
  | OpenAI::Beta::PersistedAgentToolParam::Mcp
9
9
  | OpenAI::Beta::PersistedAgentToolParam::WebSearch
10
+ | OpenAI::Beta::PersistedAgentToolParam::ComputerUse
10
11
 
11
12
  module PersistedAgentToolParam
12
13
  extend OpenAI::Internal::Type::Union
@@ -330,6 +331,30 @@ module OpenAI
330
331
  end
331
332
  end
332
333
 
334
+ type computer_use = { ?type: :computer_use, ?include_screenshots: bool }
335
+
336
+ class ComputerUse < OpenAI::Internal::Type::BaseModel
337
+ # The type of the object. Always `computer_use`.
338
+ attr_accessor type: :computer_use
339
+
340
+ # Whether computer tool outputs include screenshots. Defaults to `false`.
341
+ attr_reader include_screenshots: bool?
342
+
343
+ # Whether computer tool outputs include screenshots. Defaults to `false`.
344
+ def include_screenshots=: (bool) -> bool
345
+
346
+ # @param include_screenshots
347
+ # Whether computer tool outputs include screenshots. Defaults to `false`.
348
+ # @param type
349
+ # The type of the object. Always `computer_use`.
350
+ def initialize: (
351
+ ?include_screenshots: bool,
352
+ ?type: :computer_use
353
+ ) -> void
354
+
355
+ def to_hash: -> { ?type: :computer_use, ?include_screenshots: bool }
356
+ end
357
+
333
358
  def self?.variants: -> ::Array[OpenAI::Models::Beta::persisted_agent_tool_param]
334
359
  end
335
360
  end
@@ -159,6 +159,7 @@ module OpenAI
159
159
 
160
160
  type model =
161
161
  :"gpt-6-astra"
162
+ | :"gpt-6.1-sol"
162
163
  | :"gpt-6-sol"
163
164
  | :"gpt-6-luna"
164
165
  | :"gpt-5.6-sol"
@@ -274,6 +275,7 @@ module OpenAI
274
275
  def self?.variants: -> ::Array[OpenAI::Models::Beta::ResponseCompactParams::model]
275
276
 
276
277
  GPT_6_ASTRA: :"gpt-6-astra"
278
+ GPT_6_1_SOL: :"gpt-6.1-sol"
277
279
  GPT_6_SOL: :"gpt-6-sol"
278
280
  GPT_6_LUNA: :"gpt-6-luna"
279
281
  GPT_5_6_SOL: :"gpt-5.6-sol"
@@ -3,6 +3,7 @@ module OpenAI
3
3
  module Beta
4
4
  type response_create_params =
5
5
  {
6
+ ?access_programs: OpenAI::Beta::ResponseCreateParams::AccessPrograms,
6
7
  ?background: bool?,
7
8
  ?context_management: ::Array[OpenAI::Beta::ResponseCreateParams::ContextManagement]?,
8
9
  ?conversation: OpenAI::Models::Beta::ResponseCreateParams::conversation?,
@@ -42,6 +43,14 @@ module OpenAI
42
43
  extend OpenAI::Internal::Type::RequestParameters::Converter
43
44
  include OpenAI::Internal::Type::RequestParameters
44
45
 
46
+ # Domain-specific access programs to use for this request.
47
+ attr_reader access_programs: OpenAI::Beta::ResponseCreateParams::AccessPrograms?
48
+
49
+ # Domain-specific access programs to use for this request.
50
+ def access_programs=: (
51
+ OpenAI::Beta::ResponseCreateParams::AccessPrograms
52
+ ) -> OpenAI::Beta::ResponseCreateParams::AccessPrograms
53
+
45
54
  # Whether to run the model response in the background.
46
55
  # [Learn more](https://developers.openai.com/api/docs/guides/background).
47
56
  attr_accessor background: bool?
@@ -378,6 +387,8 @@ module OpenAI
378
387
  ::Array[OpenAI::Models::Beta::ResponseCreateParams::beta]
379
388
  ) -> ::Array[OpenAI::Models::Beta::ResponseCreateParams::beta]
380
389
 
390
+ # @param access_programs
391
+ # Domain-specific access programs to use for this request.
381
392
  # @param background
382
393
  # Whether to run the model response in the background.
383
394
  # [Learn more](https://developers.openai.com/api/docs/guides/background).
@@ -596,6 +607,7 @@ module OpenAI
596
607
  # similar requests and to help OpenAI detect and prevent abuse.
597
608
  # [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
598
609
  def initialize: (
610
+ ?access_programs: OpenAI::Beta::ResponseCreateParams::AccessPrograms,
599
611
  ?background: bool?,
600
612
  ?context_management: ::Array[OpenAI::Beta::ResponseCreateParams::ContextManagement]?,
601
613
  ?conversation: OpenAI::Models::Beta::ResponseCreateParams::conversation?,
@@ -632,6 +644,7 @@ module OpenAI
632
644
  ) -> void
633
645
 
634
646
  def to_hash: -> {
647
+ ?access_programs: OpenAI::Beta::ResponseCreateParams::AccessPrograms,
635
648
  ?background: bool?,
636
649
  ?context_management: ::Array[OpenAI::Beta::ResponseCreateParams::ContextManagement]?,
637
650
  ?conversation: OpenAI::Models::Beta::ResponseCreateParams::conversation?,
@@ -667,6 +680,70 @@ module OpenAI
667
680
  ?request_options: OpenAI::RequestOptions
668
681
  }
669
682
 
683
+ type access_programs =
684
+ {
685
+ ?cyber: OpenAI::Models::Beta::ResponseCreateParams::AccessPrograms::cyber
686
+ }
687
+
688
+ class AccessPrograms < OpenAI::Internal::Type::BaseModel
689
+ # The Cyber access program to use for this request. Supported values are
690
+ # `standard`, `daybreak_blue`, and `daybreak_red`. If omitted, the API resolves
691
+ # the program from the model's Cyber tier and your organization and project
692
+ # access, subject to model-specific eligibility restrictions. By default, models
693
+ # without a Cyber tier use Standard. Blue-tier models use Daybreak Blue when
694
+ # authorized; otherwise they fall back to Standard unless the model requires
695
+ # Daybreak access. Red-tier models use Daybreak Red and require authorization.
696
+ # Requests that require unavailable Daybreak access return 403. An implicit
697
+ # Standard fallback is represented by null in the response's access_programs
698
+ # field, rather than an explicit Standard selection.
699
+ attr_reader cyber: OpenAI::Models::Beta::ResponseCreateParams::AccessPrograms::cyber?
700
+
701
+ # The Cyber access program to use for this request. Supported values are
702
+ # `standard`, `daybreak_blue`, and `daybreak_red`. If omitted, the API resolves
703
+ # the program from the model's Cyber tier and your organization and project
704
+ # access, subject to model-specific eligibility restrictions. By default, models
705
+ # without a Cyber tier use Standard. Blue-tier models use Daybreak Blue when
706
+ # authorized; otherwise they fall back to Standard unless the model requires
707
+ # Daybreak access. Red-tier models use Daybreak Red and require authorization.
708
+ # Requests that require unavailable Daybreak access return 403. An implicit
709
+ # Standard fallback is represented by null in the response's access_programs
710
+ # field, rather than an explicit Standard selection.
711
+ def cyber=: (
712
+ OpenAI::Models::Beta::ResponseCreateParams::AccessPrograms::cyber
713
+ ) -> OpenAI::Models::Beta::ResponseCreateParams::AccessPrograms::cyber
714
+
715
+ # @param cyber
716
+ # The Cyber access program to use for this request. Supported values are
717
+ # `standard`, `daybreak_blue`, and `daybreak_red`. If omitted, the API resolves
718
+ # the program from the model's Cyber tier and your organization and project
719
+ # access, subject to model-specific eligibility restrictions. By default, models
720
+ # without a Cyber tier use Standard. Blue-tier models use Daybreak Blue when
721
+ # authorized; otherwise they fall back to Standard unless the model requires
722
+ # Daybreak access. Red-tier models use Daybreak Red and require authorization.
723
+ # Requests that require unavailable Daybreak access return 403. An implicit
724
+ # Standard fallback is represented by null in the response's access_programs
725
+ # field, rather than an explicit Standard selection.
726
+ def initialize: (
727
+ ?cyber: OpenAI::Models::Beta::ResponseCreateParams::AccessPrograms::cyber
728
+ ) -> void
729
+
730
+ def to_hash: -> {
731
+ ?cyber: OpenAI::Models::Beta::ResponseCreateParams::AccessPrograms::cyber
732
+ }
733
+
734
+ type cyber = :standard | :daybreak_blue | :daybreak_red
735
+
736
+ module Cyber
737
+ extend OpenAI::Internal::Type::Enum
738
+
739
+ STANDARD: :standard
740
+ DAYBREAK_BLUE: :daybreak_blue
741
+ DAYBREAK_RED: :daybreak_red
742
+
743
+ def self?.values: -> ::Array[OpenAI::Models::Beta::ResponseCreateParams::AccessPrograms::cyber]
744
+ end
745
+ end
746
+
670
747
  type context_management = { type: String, ?compact_threshold: Integer? }
671
748
 
672
749
  class ContextManagement < OpenAI::Internal::Type::BaseModel
@@ -703,6 +780,7 @@ module OpenAI
703
780
 
704
781
  type model =
705
782
  :"gpt-6-astra"
783
+ | :"gpt-6.1-sol"
706
784
  | :"gpt-6-sol"
707
785
  | :"gpt-6-luna"
708
786
  | :"gpt-5.6-sol"
@@ -818,6 +896,7 @@ module OpenAI
818
896
  def self?.variants: -> ::Array[OpenAI::Models::Beta::ResponseCreateParams::model]
819
897
 
820
898
  GPT_6_ASTRA: :"gpt-6-astra"
899
+ GPT_6_1_SOL: :"gpt-6.1-sol"
821
900
  GPT_6_SOL: :"gpt-6-sol"
822
901
  GPT_6_LUNA: :"gpt-6-luna"
823
902
  GPT_5_6_SOL: :"gpt-5.6-sol"
@@ -33,6 +33,7 @@ module OpenAI
33
33
  | :rate_limit_exceeded
34
34
  | :server_overloaded
35
35
  | :cyber_policy
36
+ | :misalignment_policy_violation
36
37
  | :connection_failed
37
38
  | :server_error
38
39
  | :authentication_error
@@ -68,6 +69,9 @@ module OpenAI
68
69
  # The request was rejected by a safety policy.
69
70
  CYBER_POLICY: :cyber_policy
70
71
 
72
+ # The request was blocked by the safety systems.
73
+ MISALIGNMENT_POLICY_VIOLATION: :misalignment_policy_violation
74
+
71
75
  # The request could not connect to the model service.
72
76
  CONNECTION_FAILED: :connection_failed
73
77
 
@@ -2,6 +2,7 @@ module OpenAI
2
2
  module Models
3
3
  type chat_model =
4
4
  :"gpt-6-astra"
5
+ | :"gpt-6.1-sol"
5
6
  | :"gpt-6-sol"
6
7
  | :"gpt-6-luna"
7
8
  | :"gpt-5.6-sol"
@@ -94,6 +95,7 @@ module OpenAI
94
95
  extend OpenAI::Internal::Type::Enum
95
96
 
96
97
  GPT_6_ASTRA: :"gpt-6-astra"
98
+ GPT_6_1_SOL: :"gpt-6.1-sol"
97
99
  GPT_6_SOL: :"gpt-6-sol"
98
100
  GPT_6_LUNA: :"gpt-6-luna"
99
101
  GPT_5_6_SOL: :"gpt-5.6-sol"
@@ -4,6 +4,7 @@ module OpenAI
4
4
  type response =
5
5
  {
6
6
  id: String,
7
+ access_programs: OpenAI::Responses::Response::AccessPrograms?,
7
8
  created_at: Float,
8
9
  error: OpenAI::Responses::ResponseError?,
9
10
  incomplete_details: OpenAI::Responses::Response::IncompleteDetails?,
@@ -44,6 +45,8 @@ module OpenAI
44
45
  # Unique identifier for this Response.
45
46
  attr_accessor id: String
46
47
 
48
+ attr_accessor access_programs: OpenAI::Responses::Response::AccessPrograms?
49
+
47
50
  # Unix timestamp (in seconds) of when this Response was created.
48
51
  attr_accessor created_at: Float
49
52
 
@@ -515,6 +518,7 @@ module OpenAI
515
518
  # The object type of this resource - always set to `response`.
516
519
  def initialize: (
517
520
  id: String,
521
+ access_programs: OpenAI::Responses::Response::AccessPrograms?,
518
522
  created_at: Float,
519
523
  error: OpenAI::Responses::ResponseError?,
520
524
  incomplete_details: OpenAI::Responses::Response::IncompleteDetails?,
@@ -553,6 +557,7 @@ module OpenAI
553
557
 
554
558
  def to_hash: -> {
555
559
  id: String,
560
+ access_programs: OpenAI::Responses::Response::AccessPrograms?,
556
561
  created_at: Float,
557
562
  error: OpenAI::Responses::ResponseError?,
558
563
  incomplete_details: OpenAI::Responses::Response::IncompleteDetails?,
@@ -589,6 +594,36 @@ module OpenAI
589
594
  ?user: String
590
595
  }
591
596
 
597
+ type access_programs =
598
+ { cyber: OpenAI::Models::Responses::Response::AccessPrograms::cyber }
599
+
600
+ class AccessPrograms < OpenAI::Internal::Type::BaseModel
601
+ # The effective Cyber access program used for this response.
602
+ attr_accessor cyber: OpenAI::Models::Responses::Response::AccessPrograms::cyber
603
+
604
+ # @param cyber
605
+ # The effective Cyber access program used for this response.
606
+ def initialize: (
607
+ cyber: OpenAI::Models::Responses::Response::AccessPrograms::cyber
608
+ ) -> void
609
+
610
+ def to_hash: -> {
611
+ cyber: OpenAI::Models::Responses::Response::AccessPrograms::cyber
612
+ }
613
+
614
+ type cyber = :standard | :daybreak_blue | :daybreak_red
615
+
616
+ module Cyber
617
+ extend OpenAI::Internal::Type::Enum
618
+
619
+ STANDARD: :standard
620
+ DAYBREAK_BLUE: :daybreak_blue
621
+ DAYBREAK_RED: :daybreak_red
622
+
623
+ def self?.values: -> ::Array[OpenAI::Models::Responses::Response::AccessPrograms::cyber]
624
+ end
625
+ end
626
+
592
627
  type incomplete_details =
593
628
  {
594
629
  ?reason: OpenAI::Models::Responses::Response::IncompleteDetails::reason
@@ -150,6 +150,7 @@ module OpenAI
150
150
 
151
151
  type model =
152
152
  :"gpt-6-astra"
153
+ | :"gpt-6.1-sol"
153
154
  | :"gpt-6-sol"
154
155
  | :"gpt-6-luna"
155
156
  | :"gpt-5.6-sol"
@@ -265,6 +266,7 @@ module OpenAI
265
266
  def self?.variants: -> ::Array[OpenAI::Models::Responses::ResponseCompactParams::model]
266
267
 
267
268
  GPT_6_ASTRA: :"gpt-6-astra"
269
+ GPT_6_1_SOL: :"gpt-6.1-sol"
268
270
  GPT_6_SOL: :"gpt-6-sol"
269
271
  GPT_6_LUNA: :"gpt-6-luna"
270
272
  GPT_5_6_SOL: :"gpt-5.6-sol"
@@ -3,6 +3,7 @@ module OpenAI
3
3
  module Responses
4
4
  type response_create_params =
5
5
  {
6
+ ?access_programs: OpenAI::Responses::ResponseCreateParams::AccessPrograms,
6
7
  ?background: bool?,
7
8
  ?context_management: ::Array[OpenAI::Responses::ResponseCreateParams::ContextManagement]?,
8
9
  ?conversation: OpenAI::Models::Responses::ResponseCreateParams::conversation?,
@@ -40,6 +41,14 @@ module OpenAI
40
41
  extend OpenAI::Internal::Type::RequestParameters::Converter
41
42
  include OpenAI::Internal::Type::RequestParameters
42
43
 
44
+ # Domain-specific access programs to use for this request.
45
+ attr_reader access_programs: OpenAI::Responses::ResponseCreateParams::AccessPrograms?
46
+
47
+ # Domain-specific access programs to use for this request.
48
+ def access_programs=: (
49
+ OpenAI::Responses::ResponseCreateParams::AccessPrograms
50
+ ) -> OpenAI::Responses::ResponseCreateParams::AccessPrograms
51
+
43
52
  # Whether to run the model response in the background.
44
53
  # [Learn more](https://developers.openai.com/api/docs/guides/background).
45
54
  attr_accessor background: bool?
@@ -367,6 +376,8 @@ module OpenAI
367
376
  # [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
368
377
  def user=: (String) -> String
369
378
 
379
+ # @param access_programs
380
+ # Domain-specific access programs to use for this request.
370
381
  # @param background
371
382
  # Whether to run the model response in the background.
372
383
  # [Learn more](https://developers.openai.com/api/docs/guides/background).
@@ -583,6 +594,7 @@ module OpenAI
583
594
  # similar requests and to help OpenAI detect and prevent abuse.
584
595
  # [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
585
596
  def initialize: (
597
+ ?access_programs: OpenAI::Responses::ResponseCreateParams::AccessPrograms,
586
598
  ?background: bool?,
587
599
  ?context_management: ::Array[OpenAI::Responses::ResponseCreateParams::ContextManagement]?,
588
600
  ?conversation: OpenAI::Models::Responses::ResponseCreateParams::conversation?,
@@ -617,6 +629,7 @@ module OpenAI
617
629
  ) -> void
618
630
 
619
631
  def to_hash: -> {
632
+ ?access_programs: OpenAI::Responses::ResponseCreateParams::AccessPrograms,
620
633
  ?background: bool?,
621
634
  ?context_management: ::Array[OpenAI::Responses::ResponseCreateParams::ContextManagement]?,
622
635
  ?conversation: OpenAI::Models::Responses::ResponseCreateParams::conversation?,
@@ -650,6 +663,70 @@ module OpenAI
650
663
  ?request_options: OpenAI::RequestOptions
651
664
  }
652
665
 
666
+ type access_programs =
667
+ {
668
+ ?cyber: OpenAI::Models::Responses::ResponseCreateParams::AccessPrograms::cyber
669
+ }
670
+
671
+ class AccessPrograms < OpenAI::Internal::Type::BaseModel
672
+ # The Cyber access program to use for this request. Supported values are
673
+ # `standard`, `daybreak_blue`, and `daybreak_red`. If omitted, the API resolves
674
+ # the program from the model's Cyber tier and your organization and project
675
+ # access, subject to model-specific eligibility restrictions. By default, models
676
+ # without a Cyber tier use Standard. Blue-tier models use Daybreak Blue when
677
+ # authorized; otherwise they fall back to Standard unless the model requires
678
+ # Daybreak access. Red-tier models use Daybreak Red and require authorization.
679
+ # Requests that require unavailable Daybreak access return 403. An implicit
680
+ # Standard fallback is represented by null in the response's access_programs
681
+ # field, rather than an explicit Standard selection.
682
+ attr_reader cyber: OpenAI::Models::Responses::ResponseCreateParams::AccessPrograms::cyber?
683
+
684
+ # The Cyber access program to use for this request. Supported values are
685
+ # `standard`, `daybreak_blue`, and `daybreak_red`. If omitted, the API resolves
686
+ # the program from the model's Cyber tier and your organization and project
687
+ # access, subject to model-specific eligibility restrictions. By default, models
688
+ # without a Cyber tier use Standard. Blue-tier models use Daybreak Blue when
689
+ # authorized; otherwise they fall back to Standard unless the model requires
690
+ # Daybreak access. Red-tier models use Daybreak Red and require authorization.
691
+ # Requests that require unavailable Daybreak access return 403. An implicit
692
+ # Standard fallback is represented by null in the response's access_programs
693
+ # field, rather than an explicit Standard selection.
694
+ def cyber=: (
695
+ OpenAI::Models::Responses::ResponseCreateParams::AccessPrograms::cyber
696
+ ) -> OpenAI::Models::Responses::ResponseCreateParams::AccessPrograms::cyber
697
+
698
+ # @param cyber
699
+ # The Cyber access program to use for this request. Supported values are
700
+ # `standard`, `daybreak_blue`, and `daybreak_red`. If omitted, the API resolves
701
+ # the program from the model's Cyber tier and your organization and project
702
+ # access, subject to model-specific eligibility restrictions. By default, models
703
+ # without a Cyber tier use Standard. Blue-tier models use Daybreak Blue when
704
+ # authorized; otherwise they fall back to Standard unless the model requires
705
+ # Daybreak access. Red-tier models use Daybreak Red and require authorization.
706
+ # Requests that require unavailable Daybreak access return 403. An implicit
707
+ # Standard fallback is represented by null in the response's access_programs
708
+ # field, rather than an explicit Standard selection.
709
+ def initialize: (
710
+ ?cyber: OpenAI::Models::Responses::ResponseCreateParams::AccessPrograms::cyber
711
+ ) -> void
712
+
713
+ def to_hash: -> {
714
+ ?cyber: OpenAI::Models::Responses::ResponseCreateParams::AccessPrograms::cyber
715
+ }
716
+
717
+ type cyber = :standard | :daybreak_blue | :daybreak_red
718
+
719
+ module Cyber
720
+ extend OpenAI::Internal::Type::Enum
721
+
722
+ STANDARD: :standard
723
+ DAYBREAK_BLUE: :daybreak_blue
724
+ DAYBREAK_RED: :daybreak_red
725
+
726
+ def self?.values: -> ::Array[OpenAI::Models::Responses::ResponseCreateParams::AccessPrograms::cyber]
727
+ end
728
+ end
729
+
653
730
  type context_management = { type: String, ?compact_threshold: Integer? }
654
731
 
655
732
  class ContextManagement < OpenAI::Internal::Type::BaseModel