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
@@ -7,6 +7,7 @@ module OpenAI
7
7
  {
8
8
  environment_template_id: String,
9
9
  ?capability_directories: ::Array[String]?,
10
+ ?desktop: OpenAI::Beta::Agents::Environments::TemplateUpdateParams::Desktop?,
10
11
  ?env: ::Hash[Symbol, String]?,
11
12
  ?files: ::Array[OpenAI::Models::Beta::hosted_environment_file_param]?,
12
13
  ?name: String?,
@@ -27,6 +28,9 @@ module OpenAI
27
28
  # Directories that expose capabilities to the agent.
28
29
  attr_accessor capability_directories: ::Array[String]?
29
30
 
31
+ # Replacement desktop configuration, or null to disable the desktop.
32
+ attr_accessor desktop: OpenAI::Beta::Agents::Environments::TemplateUpdateParams::Desktop?
33
+
30
34
  # Replacement confidential environment values.
31
35
  attr_accessor env: ::Hash[Symbol, String]?
32
36
 
@@ -37,8 +41,8 @@ module OpenAI
37
41
  attr_accessor name: String?
38
42
 
39
43
  # Network access available after setup completes. Omit to preserve the current
40
- # policy, or pass `null` to reset to disabled for GA requests or enabled for
41
- # alpha/beta requests.
44
+ # policy, or pass `null` to reset to disabled for GA requests or enabled for beta
45
+ # requests.
42
46
  attr_accessor network: OpenAI::Beta::Agents::Environments::TemplateUpdateParams::Network?
43
47
 
44
48
  # Packages installed before the runtime network policy applies.
@@ -55,6 +59,8 @@ module OpenAI
55
59
 
56
60
  # @param capability_directories
57
61
  # Directories that expose capabilities to the agent.
62
+ # @param desktop
63
+ # Replacement desktop configuration, or null to disable the desktop.
58
64
  # @param env
59
65
  # Replacement confidential environment values.
60
66
  # @param files
@@ -63,8 +69,8 @@ module OpenAI
63
69
  # A replacement human-readable display name, or `null` to clear the name.
64
70
  # @param network
65
71
  # Network access available after setup completes. Omit to preserve the current
66
- # policy, or pass `null` to reset to disabled for GA requests or enabled for
67
- # alpha/beta requests.
72
+ # policy, or pass `null` to reset to disabled for GA requests or enabled for beta
73
+ # requests.
68
74
  # @param packages
69
75
  # Packages installed before the runtime network policy applies.
70
76
  # @param plugins
@@ -76,6 +82,7 @@ module OpenAI
76
82
  def initialize: (
77
83
  environment_template_id: String,
78
84
  ?capability_directories: ::Array[String]?,
85
+ ?desktop: OpenAI::Beta::Agents::Environments::TemplateUpdateParams::Desktop?,
79
86
  ?env: ::Hash[Symbol, String]?,
80
87
  ?files: ::Array[OpenAI::Models::Beta::hosted_environment_file_param]?,
81
88
  ?name: String?,
@@ -90,6 +97,7 @@ module OpenAI
90
97
  def to_hash: -> {
91
98
  environment_template_id: String,
92
99
  ?capability_directories: ::Array[String]?,
100
+ ?desktop: OpenAI::Beta::Agents::Environments::TemplateUpdateParams::Desktop?,
93
101
  ?env: ::Hash[Symbol, String]?,
94
102
  ?files: ::Array[OpenAI::Models::Beta::hosted_environment_file_param]?,
95
103
  ?name: String?,
@@ -101,10 +109,24 @@ module OpenAI
101
109
  ?request_options: OpenAI::RequestOptions
102
110
  }
103
111
 
112
+ type desktop = { enabled: bool }
113
+
114
+ class Desktop < OpenAI::Internal::Type::BaseModel
115
+ # Whether to provision the desktop and its browser proxy.
116
+ attr_accessor enabled: bool
117
+
118
+ # @param enabled
119
+ # Whether to provision the desktop and its browser proxy.
120
+ def initialize: (enabled: bool) -> void
121
+
122
+ def to_hash: -> { enabled: bool }
123
+ end
124
+
104
125
  type network =
105
126
  {
106
127
  access: OpenAI::Models::Beta::Agents::Environments::TemplateUpdateParams::Network::access,
107
- ?allowed_domains: ::Array[String]?
128
+ ?allowed_domains: ::Array[String]?,
129
+ ?blocked_domains: ::Array[String]?
108
130
  }
109
131
 
110
132
  class Network < OpenAI::Internal::Type::BaseModel
@@ -114,18 +136,29 @@ module OpenAI
114
136
  # Domains the environment may access when network access is restricted.
115
137
  attr_accessor allowed_domains: ::Array[String]?
116
138
 
139
+ # Domains blocked for both executor and browser when access is restricted. A
140
+ # nonempty list requires `access: restricted` and cannot be combined with nonempty
141
+ # `allowed_domains`. Wildcard domains are not supported.
142
+ attr_accessor blocked_domains: ::Array[String]?
143
+
117
144
  # @param access
118
145
  # The environment's network access mode.
119
146
  # @param allowed_domains
120
147
  # Domains the environment may access when network access is restricted.
148
+ # @param blocked_domains
149
+ # Domains blocked for both executor and browser when access is restricted. A
150
+ # nonempty list requires `access: restricted` and cannot be combined with nonempty
151
+ # `allowed_domains`. Wildcard domains are not supported.
121
152
  def initialize: (
122
153
  access: OpenAI::Models::Beta::Agents::Environments::TemplateUpdateParams::Network::access,
123
- ?allowed_domains: ::Array[String]?
154
+ ?allowed_domains: ::Array[String]?,
155
+ ?blocked_domains: ::Array[String]?
124
156
  ) -> void
125
157
 
126
158
  def to_hash: -> {
127
159
  access: OpenAI::Models::Beta::Agents::Environments::TemplateUpdateParams::Network::access,
128
- ?allowed_domains: ::Array[String]?
160
+ ?allowed_domains: ::Array[String]?,
161
+ ?blocked_domains: ::Array[String]?
129
162
  }
130
163
 
131
164
  type access = :enabled | :disabled | :restricted
@@ -139,7 +172,7 @@ module OpenAI
139
172
  # Disables network access.
140
173
  DISABLED: :disabled
141
174
 
142
- # Allows access only to configured domains.
175
+ # Applies the configured domain restrictions.
143
176
  RESTRICTED: :restricted
144
177
 
145
178
  def self?.values: -> ::Array[OpenAI::Models::Beta::Agents::Environments::TemplateUpdateParams::Network::access]
@@ -163,7 +163,8 @@ module OpenAI
163
163
  ?tools: ::Array[OpenAI::Models::Beta::agent_tool_param]?
164
164
  }
165
165
 
166
- type service_tier = :auto | :default | :flex | :priority | :fast
166
+ type service_tier =
167
+ :auto | :default | :flex | :priority | :fast | :ultrafast
167
168
 
168
169
  module ServiceTier
169
170
  extend OpenAI::Internal::Type::Enum
@@ -183,6 +184,9 @@ module OpenAI
183
184
  # Uses the fast service tier.
184
185
  FAST: :fast
185
186
 
187
+ # Uses the ultrafast service tier.
188
+ ULTRAFAST: :ultrafast
189
+
186
190
  def self?.values: -> ::Array[OpenAI::Models::Beta::Agents::SessionCreateParams::Agent::service_tier]
187
191
  end
188
192
  end
@@ -129,7 +129,8 @@ module OpenAI
129
129
  end
130
130
  end
131
131
 
132
- type service_tier = :auto | :default | :flex | :priority | :fast
132
+ type service_tier =
133
+ :auto | :default | :flex | :priority | :fast | :ultrafast
133
134
 
134
135
  module ServiceTier
135
136
  extend OpenAI::Internal::Type::Enum
@@ -149,6 +150,9 @@ module OpenAI
149
150
  # Uses the fast service tier.
150
151
  FAST: :fast
151
152
 
153
+ # Uses the ultrafast service tier.
154
+ ULTRAFAST: :ultrafast
155
+
152
156
  def self?.values: -> ::Array[OpenAI::Models::Beta::Agents::SessionUpdateParams::Agent::service_tier]
153
157
  end
154
158
  end
@@ -8,6 +8,7 @@ module OpenAI
8
8
  id: String,
9
9
  auth: OpenAI::Models::Beta::Agents::Vaults::credential_auth,
10
10
  created_at: Integer,
11
+ metadata: ::Hash[Symbol, String],
11
12
  name: String,
12
13
  ?object: :"vault.credential",
13
14
  updated_at: Integer,
@@ -24,6 +25,9 @@ module OpenAI
24
25
  # The Unix timestamp, in seconds, when the credential was created.
25
26
  attr_accessor created_at: Integer
26
27
 
28
+ # Application-defined key-value pairs associated with this credential.
29
+ attr_accessor metadata: ::Hash[Symbol, String]
30
+
27
31
  # The human-readable name of the credential.
28
32
  attr_accessor name: String
29
33
 
@@ -42,6 +46,8 @@ module OpenAI
42
46
  # The authentication method and non-secret configuration of the credential.
43
47
  # @param created_at
44
48
  # The Unix timestamp, in seconds, when the credential was created.
49
+ # @param metadata
50
+ # Application-defined key-value pairs associated with this credential.
45
51
  # @param name
46
52
  # The human-readable name of the credential.
47
53
  # @param updated_at
@@ -54,6 +60,7 @@ module OpenAI
54
60
  id: String,
55
61
  auth: OpenAI::Models::Beta::Agents::Vaults::credential_auth,
56
62
  created_at: Integer,
63
+ metadata: ::Hash[Symbol, String],
57
64
  name: String,
58
65
  updated_at: Integer,
59
66
  vault_id: String,
@@ -64,6 +71,7 @@ module OpenAI
64
71
  id: String,
65
72
  auth: OpenAI::Models::Beta::Agents::Vaults::credential_auth,
66
73
  created_at: Integer,
74
+ metadata: ::Hash[Symbol, String],
67
75
  name: String,
68
76
  ?object: :"vault.credential",
69
77
  updated_at: Integer,
@@ -8,6 +8,7 @@ module OpenAI
8
8
  vault_id: String,
9
9
  auth: OpenAI::Models::Beta::Agents::Vaults::credential_auth_create_param,
10
10
  name: String,
11
+ ?metadata: ::Hash[Symbol, String],
11
12
  ?request_options: OpenAI::request_opts
12
13
  }
13
14
 
@@ -24,15 +25,27 @@ module OpenAI
24
25
  # trimming.
25
26
  attr_accessor name: String
26
27
 
28
+ # Up to 16 string key-value pairs, with keys up to 64 and values up to 512
29
+ # characters. Defaults to an empty map.
30
+ attr_reader metadata: ::Hash[Symbol, String]?
31
+
32
+ # Up to 16 string key-value pairs, with keys up to 64 and values up to 512
33
+ # characters. Defaults to an empty map.
34
+ def metadata=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String]
35
+
27
36
  # @param auth
28
37
  # The authentication method and write-only secret values to store.
29
38
  # @param name
30
39
  # The name is trimmed before storage. It must contain 1 to 256 UTF-8 bytes after
31
40
  # trimming.
41
+ # @param metadata
42
+ # Up to 16 string key-value pairs, with keys up to 64 and values up to 512
43
+ # characters. Defaults to an empty map.
32
44
  def initialize: (
33
45
  vault_id: String,
34
46
  auth: OpenAI::Models::Beta::Agents::Vaults::credential_auth_create_param,
35
47
  name: String,
48
+ ?metadata: ::Hash[Symbol, String],
36
49
  ?request_options: OpenAI::request_opts
37
50
  ) -> void
38
51
 
@@ -40,6 +53,7 @@ module OpenAI
40
53
  vault_id: String,
41
54
  auth: OpenAI::Models::Beta::Agents::Vaults::credential_auth_create_param,
42
55
  name: String,
56
+ ?metadata: ::Hash[Symbol, String],
43
57
  ?request_options: OpenAI::RequestOptions
44
58
  }
45
59
  end
@@ -7,7 +7,8 @@ module OpenAI
7
7
  {
8
8
  vault_id: String,
9
9
  credential_id: String,
10
- auth: OpenAI::Models::Beta::Agents::Vaults::credential_auth_rotate_param,
10
+ ?auth: OpenAI::Models::Beta::Agents::Vaults::credential_auth_rotate_param,
11
+ ?metadata: ::Hash[Symbol, String],
11
12
  ?request_options: OpenAI::request_opts
12
13
  }
13
14
 
@@ -20,21 +21,39 @@ module OpenAI
20
21
  attr_accessor credential_id: String
21
22
 
22
23
  # Replacement values for the credential's existing authentication method.
23
- attr_accessor auth: OpenAI::Models::Beta::Agents::Vaults::credential_auth_rotate_param
24
+ attr_reader auth: OpenAI::Models::Beta::Agents::Vaults::credential_auth_rotate_param?
25
+
26
+ # Replacement values for the credential's existing authentication method.
27
+ def auth=: (
28
+ OpenAI::Models::Beta::Agents::Vaults::credential_auth_rotate_param
29
+ ) -> OpenAI::Models::Beta::Agents::Vaults::credential_auth_rotate_param
30
+
31
+ # Replaces all metadata. Omit to preserve it, or pass {} to clear it. Up to 16
32
+ # string key-value pairs, with keys up to 64 and values up to 512 characters.
33
+ attr_reader metadata: ::Hash[Symbol, String]?
34
+
35
+ # Replaces all metadata. Omit to preserve it, or pass {} to clear it. Up to 16
36
+ # string key-value pairs, with keys up to 64 and values up to 512 characters.
37
+ def metadata=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String]
24
38
 
25
39
  # @param auth
26
40
  # Replacement values for the credential's existing authentication method.
41
+ # @param metadata
42
+ # Replaces all metadata. Omit to preserve it, or pass {} to clear it. Up to 16
43
+ # string key-value pairs, with keys up to 64 and values up to 512 characters.
27
44
  def initialize: (
28
45
  vault_id: String,
29
46
  credential_id: String,
30
- auth: OpenAI::Models::Beta::Agents::Vaults::credential_auth_rotate_param,
47
+ ?auth: OpenAI::Models::Beta::Agents::Vaults::credential_auth_rotate_param,
48
+ ?metadata: ::Hash[Symbol, String],
31
49
  ?request_options: OpenAI::request_opts
32
50
  ) -> void
33
51
 
34
52
  def to_hash: -> {
35
53
  vault_id: String,
36
54
  credential_id: String,
37
- auth: OpenAI::Models::Beta::Agents::Vaults::credential_auth_rotate_param,
55
+ ?auth: OpenAI::Models::Beta::Agents::Vaults::credential_auth_rotate_param,
56
+ ?metadata: ::Hash[Symbol, String],
38
57
  ?request_options: OpenAI::RequestOptions
39
58
  }
40
59
  end
@@ -6,6 +6,7 @@ module OpenAI
6
6
  type beta_response =
7
7
  {
8
8
  id: String,
9
+ access_programs: OpenAI::Beta::BetaResponse::AccessPrograms?,
9
10
  created_at: Float,
10
11
  error: OpenAI::Beta::BetaResponseError?,
11
12
  incomplete_details: OpenAI::Beta::BetaResponse::IncompleteDetails?,
@@ -46,6 +47,8 @@ module OpenAI
46
47
  # Unique identifier for this Response.
47
48
  attr_accessor id: String
48
49
 
50
+ attr_accessor access_programs: OpenAI::Beta::BetaResponse::AccessPrograms?
51
+
49
52
  # Unix timestamp (in seconds) of when this Response was created.
50
53
  attr_accessor created_at: Float
51
54
 
@@ -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::Beta::BetaResponse::AccessPrograms?,
518
522
  created_at: Float,
519
523
  error: OpenAI::Beta::BetaResponseError?,
520
524
  incomplete_details: OpenAI::Beta::BetaResponse::IncompleteDetails?,
@@ -553,6 +557,7 @@ module OpenAI
553
557
 
554
558
  def to_hash: -> {
555
559
  id: String,
560
+ access_programs: OpenAI::Beta::BetaResponse::AccessPrograms?,
556
561
  created_at: Float,
557
562
  error: OpenAI::Beta::BetaResponseError?,
558
563
  incomplete_details: OpenAI::Beta::BetaResponse::IncompleteDetails?,
@@ -589,6 +594,36 @@ module OpenAI
589
594
  ?user: String
590
595
  }
591
596
 
597
+ type access_programs =
598
+ { cyber: OpenAI::Models::Beta::BetaResponse::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::Beta::BetaResponse::AccessPrograms::cyber
603
+
604
+ # @param cyber
605
+ # The effective Cyber access program used for this response.
606
+ def initialize: (
607
+ cyber: OpenAI::Models::Beta::BetaResponse::AccessPrograms::cyber
608
+ ) -> void
609
+
610
+ def to_hash: -> {
611
+ cyber: OpenAI::Models::Beta::BetaResponse::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::Beta::BetaResponse::AccessPrograms::cyber]
624
+ end
625
+ end
626
+
592
627
  type incomplete_details =
593
628
  {
594
629
  ?reason: OpenAI::Models::Beta::BetaResponse::IncompleteDetails::reason
@@ -647,6 +682,7 @@ module OpenAI
647
682
 
648
683
  type model =
649
684
  :"gpt-6-astra"
685
+ | :"gpt-6.1-sol"
650
686
  | :"gpt-6-sol"
651
687
  | :"gpt-6-luna"
652
688
  | :"gpt-5.6-sol"
@@ -762,6 +798,7 @@ module OpenAI
762
798
  def self?.variants: -> ::Array[OpenAI::Models::Beta::BetaResponse::model]
763
799
 
764
800
  GPT_6_ASTRA: :"gpt-6-astra"
801
+ GPT_6_1_SOL: :"gpt-6.1-sol"
765
802
  GPT_6_SOL: :"gpt-6-sol"
766
803
  GPT_6_LUNA: :"gpt-6-luna"
767
804
  GPT_5_6_SOL: :"gpt-5.6-sol"
@@ -14,6 +14,7 @@ module OpenAI
14
14
  type response_create =
15
15
  {
16
16
  ?type: :"response.create",
17
+ ?access_programs: OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::AccessPrograms,
17
18
  ?background: bool?,
18
19
  ?context_management: ::Array[OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::ContextManagement]?,
19
20
  ?conversation: OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::conversation?,
@@ -53,6 +54,14 @@ module OpenAI
53
54
  # The type of the client event. Always `response.create`.
54
55
  attr_accessor type: :"response.create"
55
56
 
57
+ # Domain-specific access programs to use for this request.
58
+ attr_reader access_programs: OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::AccessPrograms?
59
+
60
+ # Domain-specific access programs to use for this request.
61
+ def access_programs=: (
62
+ OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::AccessPrograms
63
+ ) -> OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::AccessPrograms
64
+
56
65
  # Whether to run the model response in the background.
57
66
  # [Learn more](https://developers.openai.com/api/docs/guides/background).
58
67
  attr_accessor background: bool?
@@ -405,6 +414,8 @@ module OpenAI
405
414
  # [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
406
415
  def user=: (String) -> String
407
416
 
417
+ # @param access_programs
418
+ # Domain-specific access programs to use for this request.
408
419
  # @param background
409
420
  # Whether to run the model response in the background.
410
421
  # [Learn more](https://developers.openai.com/api/docs/guides/background).
@@ -638,6 +649,7 @@ module OpenAI
638
649
  # @param type
639
650
  # The type of the client event. Always `response.create`.
640
651
  def initialize: (
652
+ ?access_programs: OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::AccessPrograms,
641
653
  ?background: bool?,
642
654
  ?context_management: ::Array[OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::ContextManagement]?,
643
655
  ?conversation: OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::conversation?,
@@ -676,6 +688,7 @@ module OpenAI
676
688
 
677
689
  def to_hash: -> {
678
690
  ?type: :"response.create",
691
+ ?access_programs: OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::AccessPrograms,
679
692
  ?background: bool?,
680
693
  ?context_management: ::Array[OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::ContextManagement]?,
681
694
  ?conversation: OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::conversation?,
@@ -711,6 +724,70 @@ module OpenAI
711
724
  ?user: String
712
725
  }
713
726
 
727
+ type access_programs =
728
+ {
729
+ ?cyber: OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::AccessPrograms::cyber
730
+ }
731
+
732
+ class AccessPrograms < OpenAI::Internal::Type::BaseModel
733
+ # The Cyber access program to use for this request. Supported values are
734
+ # `standard`, `daybreak_blue`, and `daybreak_red`. If omitted, the API resolves
735
+ # the program from the model's Cyber tier and your organization and project
736
+ # access, subject to model-specific eligibility restrictions. By default, models
737
+ # without a Cyber tier use Standard. Blue-tier models use Daybreak Blue when
738
+ # authorized; otherwise they fall back to Standard unless the model requires
739
+ # Daybreak access. Red-tier models use Daybreak Red and require authorization.
740
+ # Requests that require unavailable Daybreak access return 403. An implicit
741
+ # Standard fallback is represented by null in the response's access_programs
742
+ # field, rather than an explicit Standard selection.
743
+ attr_reader cyber: OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::AccessPrograms::cyber?
744
+
745
+ # The Cyber access program to use for this request. Supported values are
746
+ # `standard`, `daybreak_blue`, and `daybreak_red`. If omitted, the API resolves
747
+ # the program from the model's Cyber tier and your organization and project
748
+ # access, subject to model-specific eligibility restrictions. By default, models
749
+ # without a Cyber tier use Standard. Blue-tier models use Daybreak Blue when
750
+ # authorized; otherwise they fall back to Standard unless the model requires
751
+ # Daybreak access. Red-tier models use Daybreak Red and require authorization.
752
+ # Requests that require unavailable Daybreak access return 403. An implicit
753
+ # Standard fallback is represented by null in the response's access_programs
754
+ # field, rather than an explicit Standard selection.
755
+ def cyber=: (
756
+ OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::AccessPrograms::cyber
757
+ ) -> OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::AccessPrograms::cyber
758
+
759
+ # @param cyber
760
+ # The Cyber access program to use for this request. Supported values are
761
+ # `standard`, `daybreak_blue`, and `daybreak_red`. If omitted, the API resolves
762
+ # the program from the model's Cyber tier and your organization and project
763
+ # access, subject to model-specific eligibility restrictions. By default, models
764
+ # without a Cyber tier use Standard. Blue-tier models use Daybreak Blue when
765
+ # authorized; otherwise they fall back to Standard unless the model requires
766
+ # Daybreak access. Red-tier models use Daybreak Red and require authorization.
767
+ # Requests that require unavailable Daybreak access return 403. An implicit
768
+ # Standard fallback is represented by null in the response's access_programs
769
+ # field, rather than an explicit Standard selection.
770
+ def initialize: (
771
+ ?cyber: OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::AccessPrograms::cyber
772
+ ) -> void
773
+
774
+ def to_hash: -> {
775
+ ?cyber: OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::AccessPrograms::cyber
776
+ }
777
+
778
+ type cyber = :standard | :daybreak_blue | :daybreak_red
779
+
780
+ module Cyber
781
+ extend OpenAI::Internal::Type::Enum
782
+
783
+ STANDARD: :standard
784
+ DAYBREAK_BLUE: :daybreak_blue
785
+ DAYBREAK_RED: :daybreak_red
786
+
787
+ def self?.values: -> ::Array[OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::AccessPrograms::cyber]
788
+ end
789
+ end
790
+
714
791
  type context_management =
715
792
  { type: String, ?compact_threshold: Integer? }
716
793
 
@@ -749,6 +826,7 @@ module OpenAI
749
826
 
750
827
  type model =
751
828
  :"gpt-6-astra"
829
+ | :"gpt-6.1-sol"
752
830
  | :"gpt-6-sol"
753
831
  | :"gpt-6-luna"
754
832
  | :"gpt-5.6-sol"
@@ -864,6 +942,7 @@ module OpenAI
864
942
  def self?.variants: -> ::Array[OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::model]
865
943
 
866
944
  GPT_6_ASTRA: :"gpt-6-astra"
945
+ GPT_6_1_SOL: :"gpt-6.1-sol"
867
946
  GPT_6_SOL: :"gpt-6-sol"
868
947
  GPT_6_LUNA: :"gpt-6-luna"
869
948
  GPT_5_6_SOL: :"gpt-5.6-sol"
@@ -32,7 +32,9 @@ module OpenAI
32
32
  OpenAI::Models::Beta::BetaWebSearchPreviewTool::search_context_size
33
33
  ) -> OpenAI::Models::Beta::BetaWebSearchPreviewTool::search_context_size
34
34
 
35
- # The user's location.
35
+ # The approximate location of the user. If omitted or null, defaults to the United
36
+ # States. To avoid this fallback, pass `{"type": "approximate"}` without location
37
+ # fields. To localize results, provide the relevant location fields.
36
38
  attr_accessor user_location: OpenAI::Beta::BetaWebSearchPreviewTool::UserLocation?
37
39
 
38
40
  # @param type
@@ -42,7 +44,9 @@ module OpenAI
42
44
  # High level guidance for the amount of context window space to use for the
43
45
  # search. One of `low`, `medium`, or `high`. `medium` is the default.
44
46
  # @param user_location
45
- # The user's location.
47
+ # The approximate location of the user. If omitted or null, defaults to the United
48
+ # States. To avoid this fallback, pass `{"type": "approximate"}` without location
49
+ # fields. To localize results, provide the relevant location fields.
46
50
  def initialize: (
47
51
  type: OpenAI::Models::Beta::BetaWebSearchPreviewTool::type_,
48
52
  ?search_content_types: ::Array[OpenAI::Models::Beta::BetaWebSearchPreviewTool::search_content_type],
@@ -39,7 +39,9 @@ module OpenAI
39
39
  OpenAI::Models::Beta::BetaWebSearchTool::search_context_size
40
40
  ) -> OpenAI::Models::Beta::BetaWebSearchTool::search_context_size
41
41
 
42
- # The approximate location of the user.
42
+ # The approximate location of the user. If omitted or null, defaults to the United
43
+ # States. To avoid this fallback, pass `{"type": "approximate"}` without location
44
+ # fields. To localize results, provide the relevant location fields.
43
45
  attr_accessor user_location: OpenAI::Beta::BetaWebSearchTool::UserLocation?
44
46
 
45
47
  # @param type
@@ -54,7 +56,9 @@ module OpenAI
54
56
  # High level guidance for the amount of context window space to use for the
55
57
  # search. One of `low`, `medium`, or `high`. `medium` is the default.
56
58
  # @param user_location
57
- # The approximate location of the user.
59
+ # The approximate location of the user. If omitted or null, defaults to the United
60
+ # States. To avoid this fallback, pass `{"type": "approximate"}` without location
61
+ # fields. To localize results, provide the relevant location fields.
58
62
  def initialize: (
59
63
  type: OpenAI::Models::Beta::BetaWebSearchTool::type_,
60
64
  ?external_web_access: bool,
@@ -31,7 +31,8 @@ module OpenAI
31
31
  packages: OpenAI::Beta::Environment::OpenAIHosted::Packages,
32
32
  plugins: ::Array[OpenAI::Beta::HostedPlugin],
33
33
  skills: ::Array[OpenAI::Models::Beta::hosted_skill],
34
- ?type: :openai_hosted
34
+ ?type: :openai_hosted,
35
+ ?desktop: OpenAI::Beta::Environment::OpenAIHosted::Desktop
35
36
  }
36
37
 
37
38
  class OpenAIHosted < OpenAI::Internal::Type::BaseModel
@@ -59,6 +60,14 @@ module OpenAI
59
60
  # The type of the object. Always `openai_hosted`.
60
61
  attr_accessor type: :openai_hosted
61
62
 
63
+ # The effective desktop configuration.
64
+ attr_reader desktop: OpenAI::Beta::Environment::OpenAIHosted::Desktop?
65
+
66
+ # The effective desktop configuration.
67
+ def desktop=: (
68
+ OpenAI::Beta::Environment::OpenAIHosted::Desktop
69
+ ) -> OpenAI::Beta::Environment::OpenAIHosted::Desktop
70
+
62
71
  # @param id
63
72
  # The public ID of the environment.
64
73
  # @param capability_directories
@@ -73,6 +82,8 @@ module OpenAI
73
82
  # Plugins installed in the environment, excluding their archive contents.
74
83
  # @param skills
75
84
  # Skills installed in the environment, excluding their archive contents.
85
+ # @param desktop
86
+ # The effective desktop configuration.
76
87
  # @param type
77
88
  # The type of the object. Always `openai_hosted`.
78
89
  def initialize: (
@@ -83,6 +94,7 @@ module OpenAI
83
94
  packages: OpenAI::Beta::Environment::OpenAIHosted::Packages,
84
95
  plugins: ::Array[OpenAI::Beta::HostedPlugin],
85
96
  skills: ::Array[OpenAI::Models::Beta::hosted_skill],
97
+ ?desktop: OpenAI::Beta::Environment::OpenAIHosted::Desktop,
86
98
  ?type: :openai_hosted
87
99
  ) -> void
88
100
 
@@ -94,7 +106,8 @@ module OpenAI
94
106
  packages: OpenAI::Beta::Environment::OpenAIHosted::Packages,
95
107
  plugins: ::Array[OpenAI::Beta::HostedPlugin],
96
108
  skills: ::Array[OpenAI::Models::Beta::hosted_skill],
97
- ?type: :openai_hosted
109
+ ?type: :openai_hosted,
110
+ ?desktop: OpenAI::Beta::Environment::OpenAIHosted::Desktop
98
111
  }
99
112
 
100
113
  type network =
@@ -135,7 +148,7 @@ module OpenAI
135
148
  # Disables network access.
136
149
  DISABLED: :disabled
137
150
 
138
- # Allows access only to configured domains.
151
+ # Applies the configured domain restrictions.
139
152
  RESTRICTED: :restricted
140
153
 
141
154
  def self?.values: -> ::Array[OpenAI::Models::Beta::Environment::OpenAIHosted::Network::access]
@@ -177,6 +190,19 @@ module OpenAI
177
190
  system_: ::Array[String]
178
191
  }
179
192
  end
193
+
194
+ type desktop = { enabled: bool }
195
+
196
+ class Desktop < OpenAI::Internal::Type::BaseModel
197
+ # Whether the environment provisions a desktop and browser proxy.
198
+ attr_accessor enabled: bool
199
+
200
+ # @param enabled
201
+ # Whether the environment provisions a desktop and browser proxy.
202
+ def initialize: (enabled: bool) -> void
203
+
204
+ def to_hash: -> { enabled: bool }
205
+ end
180
206
  end
181
207
 
182
208
  type self_hosted =