openai 0.101.1 → 0.102.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 (68) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/README.md +1 -1
  4. data/lib/openai/models/beta/agents/environment_create_params.rb +300 -0
  5. data/lib/openai/models/beta/agents/environment_info.rb +4 -1
  6. data/lib/openai/models/beta/agents/environment_list_params.rb +78 -0
  7. data/lib/openai/models/beta/environment_param.rb +12 -1
  8. data/lib/openai/models/webhooks/agent_environment_failed_webhook_event.rb +73 -0
  9. data/lib/openai/models/webhooks/agent_environment_ready_webhook_event.rb +73 -0
  10. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +9 -3
  11. data/lib/openai/models/webhooks/webhook_create_params.rb +2 -0
  12. data/lib/openai/models/webhooks/webhook_test_params.rb +2 -0
  13. data/lib/openai/models/webhooks/webhook_update_params.rb +2 -0
  14. data/lib/openai/resources/beta/agents/environments/files.rb +4 -2
  15. data/lib/openai/resources/beta/agents/environments/templates.rb +10 -5
  16. data/lib/openai/resources/beta/agents/environments.rb +80 -1
  17. data/lib/openai/resources/beta/agents/sessions/artifacts.rb +8 -5
  18. data/lib/openai/resources/beta/agents/sessions/events.rb +10 -4
  19. data/lib/openai/resources/beta/agents/sessions/items.rb +2 -1
  20. data/lib/openai/resources/beta/agents/sessions/subagents/items.rb +2 -1
  21. data/lib/openai/resources/beta/agents/sessions/subagents/turns/items.rb +2 -1
  22. data/lib/openai/resources/beta/agents/sessions/subagents/turns.rb +4 -2
  23. data/lib/openai/resources/beta/agents/sessions/subagents.rb +4 -2
  24. data/lib/openai/resources/beta/agents/sessions/traces.rb +2 -1
  25. data/lib/openai/resources/beta/agents/sessions/turns/items.rb +2 -1
  26. data/lib/openai/resources/beta/agents/sessions/turns.rb +4 -2
  27. data/lib/openai/resources/beta/agents/sessions.rb +16 -7
  28. data/lib/openai/resources/beta/agents/vaults/credentials.rb +10 -5
  29. data/lib/openai/resources/beta/agents/vaults.rb +8 -4
  30. data/lib/openai/resources/beta/agents.rb +10 -5
  31. data/lib/openai/resources/beta/assistants.rb +10 -5
  32. data/lib/openai/resources/beta/chatkit/sessions.rb +4 -2
  33. data/lib/openai/resources/beta/chatkit/threads.rb +8 -4
  34. data/lib/openai/resources/beta/threads/messages.rb +10 -5
  35. data/lib/openai/resources/beta/threads/runs/steps.rb +4 -2
  36. data/lib/openai/resources/beta/threads/runs.rb +24 -10
  37. data/lib/openai/resources/beta/threads.rb +16 -7
  38. data/lib/openai/resources/vector_stores/file_batches.rb +8 -10
  39. data/lib/openai/resources/vector_stores/files.rb +12 -12
  40. data/lib/openai/resources/vector_stores.rb +12 -6
  41. data/lib/openai/resources/webhooks.rb +1 -1
  42. data/lib/openai/version.rb +1 -1
  43. data/lib/openai.rb +4 -0
  44. data/rbi/openai/models/beta/agents/environment_create_params.rbi +499 -0
  45. data/rbi/openai/models/beta/agents/environment_info.rbi +3 -0
  46. data/rbi/openai/models/beta/agents/environment_list_params.rbi +136 -0
  47. data/rbi/openai/models/beta/environment_param.rbi +15 -0
  48. data/rbi/openai/models/webhooks/agent_environment_failed_webhook_event.rbi +134 -0
  49. data/rbi/openai/models/webhooks/agent_environment_ready_webhook_event.rbi +134 -0
  50. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +4 -2
  51. data/rbi/openai/models/webhooks/webhook_create_params.rbi +8 -0
  52. data/rbi/openai/models/webhooks/webhook_test_params.rbi +8 -0
  53. data/rbi/openai/models/webhooks/webhook_update_params.rbi +8 -0
  54. data/rbi/openai/resources/beta/agents/environments.rbi +53 -0
  55. data/rbi/openai/resources/webhooks.rbi +2 -0
  56. data/sig/openai/models/beta/agents/environment_create_params.rbs +268 -0
  57. data/sig/openai/models/beta/agents/environment_info.rbs +5 -1
  58. data/sig/openai/models/beta/agents/environment_list_params.rbs +97 -0
  59. data/sig/openai/models/beta/environment_param.rbs +14 -0
  60. data/sig/openai/models/webhooks/agent_environment_failed_webhook_event.rbs +70 -0
  61. data/sig/openai/models/webhooks/agent_environment_ready_webhook_event.rbs +70 -0
  62. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +3 -1
  63. data/sig/openai/models/webhooks/webhook_create_params.rbs +4 -0
  64. data/sig/openai/models/webhooks/webhook_test_params.rbs +4 -0
  65. data/sig/openai/models/webhooks/webhook_update_params.rbs +4 -0
  66. data/sig/openai/resources/beta/agents/environments.rbs +15 -0
  67. data/sig/openai/resources/webhooks.rbs +3 -1
  68. metadata +13 -1
@@ -50,10 +50,11 @@ module OpenAI
50
50
  @client.request(
51
51
  method: :post,
52
52
  path: "vector_stores",
53
+ headers: {"openai-beta" => "assistants=v2"},
53
54
  body: parsed,
54
55
  model: OpenAI::VectorStore,
55
56
  security: {bearer_auth: true},
56
- options: {extra_headers: {"OpenAI-Beta" => "assistants=v2"}, **options}
57
+ options: options
57
58
  )
58
59
  end
59
60
 
@@ -73,9 +74,10 @@ module OpenAI
73
74
  @client.request(
74
75
  method: :get,
75
76
  path: ["vector_stores/%1$s", vector_store_id],
77
+ headers: {"openai-beta" => "assistants=v2"},
76
78
  model: OpenAI::VectorStore,
77
79
  security: {bearer_auth: true},
78
- options: {extra_headers: {"OpenAI-Beta" => "assistants=v2"}, **params[:request_options].to_h}
80
+ options: params[:request_options]
79
81
  )
80
82
  end
81
83
 
@@ -110,10 +112,11 @@ module OpenAI
110
112
  @client.request(
111
113
  method: :post,
112
114
  path: ["vector_stores/%1$s", vector_store_id],
115
+ headers: {"openai-beta" => "assistants=v2"},
113
116
  body: parsed,
114
117
  model: OpenAI::VectorStore,
115
118
  security: {bearer_auth: true},
116
- options: {extra_headers: {"OpenAI-Beta" => "assistants=v2"}, **options}
119
+ options: options
117
120
  )
118
121
  end
119
122
 
@@ -153,10 +156,11 @@ module OpenAI
153
156
  method: :get,
154
157
  path: "vector_stores",
155
158
  query: query,
159
+ headers: {"openai-beta" => "assistants=v2"},
156
160
  page: OpenAI::Internal::CursorPage,
157
161
  model: OpenAI::VectorStore,
158
162
  security: {bearer_auth: true},
159
- options: {extra_headers: {"OpenAI-Beta" => "assistants=v2"}, **options}
163
+ options: options
160
164
  )
161
165
  end
162
166
 
@@ -176,9 +180,10 @@ module OpenAI
176
180
  @client.request(
177
181
  method: :delete,
178
182
  path: ["vector_stores/%1$s", vector_store_id],
183
+ headers: {"openai-beta" => "assistants=v2"},
179
184
  model: OpenAI::VectorStoreDeleted,
180
185
  security: {bearer_auth: true},
181
- options: {extra_headers: {"OpenAI-Beta" => "assistants=v2"}, **params[:request_options].to_h}
186
+ options: params[:request_options]
182
187
  )
183
188
  end
184
189
 
@@ -216,11 +221,12 @@ module OpenAI
216
221
  @client.request(
217
222
  method: :post,
218
223
  path: ["vector_stores/%1$s/search", vector_store_id],
224
+ headers: {"openai-beta" => "assistants=v2"},
219
225
  body: parsed,
220
226
  page: OpenAI::Internal::Page,
221
227
  model: OpenAI::Models::VectorStoreSearchResponse,
222
228
  security: {bearer_auth: true},
223
- options: {extra_headers: {"OpenAI-Beta" => "assistants=v2"}, **options}
229
+ options: options
224
230
  )
225
231
  end
226
232
 
@@ -203,7 +203,7 @@ module OpenAI
203
203
  # @param headers [Hash] The webhook headers
204
204
  # @param webhook_secret [String, nil] The webhook secret (optional, will use client webhook secret or ENV["OPENAI_WEBHOOK_SECRET"] if not provided)
205
205
  #
206
- # @return [OpenAI::Models::Webhooks::AgentSessionActionRequiredWebhookEvent, OpenAI::Models::Webhooks::AgentSessionCreatedWebhookEvent, OpenAI::Models::Webhooks::AgentSessionFailedWebhookEvent, OpenAI::Models::Webhooks::AgentSessionIdleWebhookEvent, OpenAI::Models::Webhooks::AgentSessionInProgressWebhookEvent, OpenAI::Models::Webhooks::BatchCancelledWebhookEvent, OpenAI::Models::Webhooks::BatchCompletedWebhookEvent, OpenAI::Models::Webhooks::BatchExpiredWebhookEvent, OpenAI::Models::Webhooks::BatchFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunCanceledWebhookEvent, OpenAI::Models::Webhooks::EvalRunFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunSucceededWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobCancelledWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobFailedWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobSucceededWebhookEvent, OpenAI::Models::Webhooks::LiveCallIncomingWebhookEvent, OpenAI::Models::Webhooks::LiveTransportIncomingWebhookEvent, OpenAI::Models::Webhooks::RealtimeCallIncomingWebhookEvent, OpenAI::Models::Webhooks::ResponseCancelledWebhookEvent, OpenAI::Models::Webhooks::ResponseCompletedWebhookEvent, OpenAI::Models::Webhooks::ResponseFailedWebhookEvent, OpenAI::Models::Webhooks::ResponseIncompleteWebhookEvent, OpenAI::Models::Webhooks::SafetyAlertCreatedWebhookEvent, OpenAI::Models::Webhooks::SafetyDeactivationIssuedWebhookEvent, OpenAI::Models::Webhooks::SafetyOrgAlertCreatedWebhookEvent, OpenAI::Models::Webhooks::SafetyWarningIssuedWebhookEvent]
206
+ # @return [OpenAI::Models::Webhooks::AgentEnvironmentFailedWebhookEvent, OpenAI::Models::Webhooks::AgentEnvironmentReadyWebhookEvent, OpenAI::Models::Webhooks::AgentSessionActionRequiredWebhookEvent, OpenAI::Models::Webhooks::AgentSessionCreatedWebhookEvent, OpenAI::Models::Webhooks::AgentSessionFailedWebhookEvent, OpenAI::Models::Webhooks::AgentSessionIdleWebhookEvent, OpenAI::Models::Webhooks::AgentSessionInProgressWebhookEvent, OpenAI::Models::Webhooks::BatchCancelledWebhookEvent, OpenAI::Models::Webhooks::BatchCompletedWebhookEvent, OpenAI::Models::Webhooks::BatchExpiredWebhookEvent, OpenAI::Models::Webhooks::BatchFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunCanceledWebhookEvent, OpenAI::Models::Webhooks::EvalRunFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunSucceededWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobCancelledWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobFailedWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobSucceededWebhookEvent, OpenAI::Models::Webhooks::LiveCallIncomingWebhookEvent, OpenAI::Models::Webhooks::LiveTransportIncomingWebhookEvent, OpenAI::Models::Webhooks::RealtimeCallIncomingWebhookEvent, OpenAI::Models::Webhooks::ResponseCancelledWebhookEvent, OpenAI::Models::Webhooks::ResponseCompletedWebhookEvent, OpenAI::Models::Webhooks::ResponseFailedWebhookEvent, OpenAI::Models::Webhooks::ResponseIncompleteWebhookEvent, OpenAI::Models::Webhooks::SafetyAlertCreatedWebhookEvent, OpenAI::Models::Webhooks::SafetyDeactivationIssuedWebhookEvent, OpenAI::Models::Webhooks::SafetyOrgAlertCreatedWebhookEvent, OpenAI::Models::Webhooks::SafetyWarningIssuedWebhookEvent]
207
207
  #
208
208
  # @raise [ArgumentError] if signature verification fails
209
209
  def unwrap(
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OpenAI
4
- VERSION = "0.101.1"
4
+ VERSION = "0.102.0"
5
5
  end
data/lib/openai.rb CHANGED
@@ -493,7 +493,9 @@ require_relative "openai/models/beta/agent_reasoning_item"
493
493
  require_relative "openai/models/beta/agent_reasoning_param"
494
494
  require_relative "openai/models/beta/agent_resume_subagent_call_item"
495
495
  require_relative "openai/models/beta/agent_retrieve_params"
496
+ require_relative "openai/models/beta/agents/environment_create_params"
496
497
  require_relative "openai/models/beta/agents/environment_info"
498
+ require_relative "openai/models/beta/agents/environment_list_params"
497
499
  require_relative "openai/models/beta/agents/environment_retrieve_params"
498
500
  require_relative "openai/models/beta/agents/environments/environment_file"
499
501
  require_relative "openai/models/beta/agents/environments/environment_template"
@@ -1446,6 +1448,8 @@ require_relative "openai/models/video_remix_params"
1446
1448
  require_relative "openai/models/video_retrieve_params"
1447
1449
  require_relative "openai/models/video_seconds"
1448
1450
  require_relative "openai/models/video_size"
1451
+ require_relative "openai/models/webhooks/agent_environment_failed_webhook_event"
1452
+ require_relative "openai/models/webhooks/agent_environment_ready_webhook_event"
1449
1453
  require_relative "openai/models/webhooks/agent_session_action_required_webhook_event"
1450
1454
  require_relative "openai/models/webhooks/agent_session_created_webhook_event"
1451
1455
  require_relative "openai/models/webhooks/agent_session_failed_webhook_event"
@@ -0,0 +1,499 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Beta
7
+
8
+ module Agents
9
+
10
+ class EnvironmentCreateParams < OpenAI::Internal::Type::BaseModel
11
+
12
+ extend OpenAI::Internal::Type::RequestParameters::Converter
13
+ include OpenAI::Internal::Type::RequestParameters
14
+
15
+ OrHash = T.type_alias do
16
+ T.any(
17
+ OpenAI::Beta::Agents::EnvironmentCreateParams,
18
+ OpenAI::Internal::AnyHash
19
+ )
20
+ end
21
+
22
+ # The required hosting type and its configuration.
23
+ sig { returns(OpenAI::Beta::Agents::EnvironmentCreateParams::Environment) }
24
+ attr_reader :environment
25
+
26
+ sig { params(environment: OpenAI::Beta::Agents::EnvironmentCreateParams::Environment::OrHash).void }
27
+ attr_writer :environment
28
+
29
+ # The IDs of up to 10 vaults made available to an OpenAI-hosted environment.
30
+ sig { returns(T.nilable(T::Array[String])) }
31
+ attr_accessor :vault_ids
32
+
33
+ sig { returns(T.nilable(String)) }
34
+ attr_reader :idempotency_key
35
+
36
+ sig { params(idempotency_key: String).void }
37
+ attr_writer :idempotency_key
38
+
39
+ sig do
40
+ params(
41
+
42
+ environment: OpenAI::Beta::Agents::EnvironmentCreateParams::Environment::OrHash,
43
+
44
+ vault_ids: T.nilable(T::Array[String]),
45
+
46
+ idempotency_key: String,
47
+
48
+ request_options: OpenAI::RequestOptions::OrHash
49
+ )
50
+ .returns(T.attached_class)
51
+ end
52
+ def self.new(
53
+
54
+ # The required hosting type and its configuration.
55
+ environment:,
56
+
57
+ # The IDs of up to 10 vaults made available to an OpenAI-hosted environment.
58
+ vault_ids: nil,
59
+
60
+ idempotency_key: nil,
61
+
62
+ request_options: {}
63
+ )
64
+ end
65
+
66
+ sig do
67
+ override.returns(
68
+ {
69
+ environment: OpenAI::Beta::Agents::EnvironmentCreateParams::Environment,
70
+ vault_ids: T.nilable(T::Array[String]),
71
+ idempotency_key: String,
72
+ request_options: OpenAI::RequestOptions
73
+ }
74
+ )
75
+ end
76
+ def to_hash
77
+ end
78
+
79
+ class Environment < OpenAI::Internal::Type::BaseModel
80
+ OrHash = T.type_alias do
81
+ T.any(
82
+ OpenAI::Beta::Agents::EnvironmentCreateParams::Environment,
83
+ OpenAI::Internal::AnyHash
84
+ )
85
+ end
86
+
87
+ # The type of the object. Always `openai_hosted`.
88
+ sig { returns(Symbol) }
89
+ attr_accessor :type
90
+
91
+ # Directories that contain capabilities exposed to the agent. Defaults to an empty
92
+ # list.
93
+ sig { returns(T.nilable(T::Array[String])) }
94
+ attr_accessor :capability_directories
95
+
96
+ # Desktop provisioning. Omission or null inherits the template setting, or
97
+ # defaults to disabled.
98
+ sig { returns(T.nilable(OpenAI::Beta::Agents::EnvironmentCreateParams::Environment::Desktop)) }
99
+ attr_reader :desktop
100
+
101
+ sig {
102
+ params(desktop: T.nilable(OpenAI::Beta::Agents::EnvironmentCreateParams::Environment::Desktop::OrHash))
103
+ .void
104
+ }
105
+ attr_writer :desktop
106
+
107
+ # Environment variables made available to the agent.
108
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
109
+ attr_accessor :env
110
+
111
+ # A reusable hosted template applied before inline configuration. Omitted fields
112
+ # inherit the template; network overrides cannot broaden its policy.
113
+ sig { returns(T.nilable(String)) }
114
+ attr_reader :environment_template_id
115
+
116
+ sig { params(environment_template_id: String).void }
117
+ attr_writer :environment_template_id
118
+
119
+ # Files available before the agent starts. Defaults to an empty list.
120
+ sig {
121
+ returns(
122
+ T.nilable(
123
+ T::Array[
124
+ T.any(
125
+ OpenAI::Beta::HostedEnvironmentFileParam::FileID,
126
+ OpenAI::Beta::HostedEnvironmentFileParam::Inline
127
+ )
128
+ ]
129
+ )
130
+ )
131
+ }
132
+ attr_accessor :files
133
+
134
+ # Network access policy for the environment. If omitted, the API version
135
+ # determines whether network access is enabled or disabled.
136
+ sig { returns(T.nilable(OpenAI::Beta::Agents::EnvironmentCreateParams::Environment::Network)) }
137
+ attr_reader :network
138
+
139
+ sig {
140
+ params(network: T.nilable(OpenAI::Beta::Agents::EnvironmentCreateParams::Environment::Network::OrHash))
141
+ .void
142
+ }
143
+ attr_writer :network
144
+
145
+ # Packages to install in the environment. Defaults to empty package lists.
146
+ sig { returns(T.nilable(OpenAI::Beta::Agents::EnvironmentCreateParams::Environment::Packages)) }
147
+ attr_reader :packages
148
+
149
+ sig {
150
+ params(packages: T.nilable(OpenAI::Beta::Agents::EnvironmentCreateParams::Environment::Packages::OrHash))
151
+ .void
152
+ }
153
+ attr_writer :packages
154
+
155
+ # Plugins provided as inline ZIP archives. Defaults to an empty list.
156
+ sig { returns(T.nilable(T::Array[OpenAI::Beta::HostedPluginParam])) }
157
+ attr_accessor :plugins
158
+
159
+ # Ordered, confidential setup commands. Command bodies are never returned.
160
+ sig { returns(T.nilable(T::Array[OpenAI::Beta::SetupCommandParam])) }
161
+ attr_accessor :setup_commands
162
+
163
+ # Skills referenced by ID or provided as inline ZIP archives. Defaults to an empty
164
+ # list.
165
+ sig {
166
+ returns(
167
+ T.nilable(
168
+ T::Array[
169
+ T.any(OpenAI::Beta::HostedSkillParam::SkillReference, OpenAI::Beta::HostedSkillParam::Inline)
170
+ ]
171
+ )
172
+ )
173
+ }
174
+ attr_accessor :skills
175
+
176
+ # The required hosting type and its configuration.
177
+ sig do
178
+ params(
179
+
180
+ capability_directories: T.nilable(T::Array[String]),
181
+
182
+ desktop: T.nilable(OpenAI::Beta::Agents::EnvironmentCreateParams::Environment::Desktop::OrHash),
183
+
184
+ env: T.nilable(T::Hash[Symbol, String]),
185
+
186
+ environment_template_id: String,
187
+
188
+ files: T.nilable(
189
+ T::Array[
190
+ T.any(
191
+ OpenAI::Beta::HostedEnvironmentFileParam::FileID::OrHash,
192
+ OpenAI::Beta::HostedEnvironmentFileParam::Inline::OrHash
193
+ )
194
+ ]
195
+ ),
196
+
197
+ network: T.nilable(OpenAI::Beta::Agents::EnvironmentCreateParams::Environment::Network::OrHash),
198
+
199
+ packages: T.nilable(OpenAI::Beta::Agents::EnvironmentCreateParams::Environment::Packages::OrHash),
200
+
201
+ plugins: T.nilable(T::Array[OpenAI::Beta::HostedPluginParam::OrHash]),
202
+
203
+ setup_commands: T.nilable(T::Array[OpenAI::Beta::SetupCommandParam::OrHash]),
204
+
205
+ skills: T.nilable(
206
+ T::Array[
207
+ T.any(
208
+ OpenAI::Beta::HostedSkillParam::SkillReference::OrHash,
209
+ OpenAI::Beta::HostedSkillParam::Inline::OrHash
210
+ )
211
+ ]
212
+ ),
213
+
214
+ type: Symbol
215
+ )
216
+ .returns(T.attached_class)
217
+ end
218
+ def self.new(
219
+
220
+ # Directories that contain capabilities exposed to the agent. Defaults to an empty
221
+ # list.
222
+ capability_directories: nil,
223
+
224
+ # Desktop provisioning. Omission or null inherits the template setting, or
225
+ # defaults to disabled.
226
+ desktop: nil,
227
+
228
+ # Environment variables made available to the agent.
229
+ env: nil,
230
+
231
+ # A reusable hosted template applied before inline configuration. Omitted fields
232
+ # inherit the template; network overrides cannot broaden its policy.
233
+ environment_template_id: nil,
234
+
235
+ # Files available before the agent starts. Defaults to an empty list.
236
+ files: nil,
237
+
238
+ # Network access policy for the environment. If omitted, the API version
239
+ # determines whether network access is enabled or disabled.
240
+ network: nil,
241
+
242
+ # Packages to install in the environment. Defaults to empty package lists.
243
+ packages: nil,
244
+
245
+ # Plugins provided as inline ZIP archives. Defaults to an empty list.
246
+ plugins: nil,
247
+
248
+ # Ordered, confidential setup commands. Command bodies are never returned.
249
+ setup_commands: nil,
250
+
251
+ # Skills referenced by ID or provided as inline ZIP archives. Defaults to an empty
252
+ # list.
253
+ skills: nil,
254
+
255
+ # The type of the object. Always `openai_hosted`.
256
+
257
+ type: :openai_hosted
258
+ )
259
+ end
260
+
261
+ sig do
262
+ override.returns(
263
+ {
264
+ type: Symbol,
265
+ capability_directories: T.nilable(T::Array[String]),
266
+ desktop: T.nilable(OpenAI::Beta::Agents::EnvironmentCreateParams::Environment::Desktop),
267
+ env: T.nilable(T::Hash[Symbol, String]),
268
+ environment_template_id: String,
269
+ files: T.nilable(
270
+ T::Array[
271
+ T.any(
272
+ OpenAI::Beta::HostedEnvironmentFileParam::FileID,
273
+ OpenAI::Beta::HostedEnvironmentFileParam::Inline
274
+ )
275
+ ]
276
+ ),
277
+ network: T.nilable(OpenAI::Beta::Agents::EnvironmentCreateParams::Environment::Network),
278
+ packages: T.nilable(OpenAI::Beta::Agents::EnvironmentCreateParams::Environment::Packages),
279
+ plugins: T.nilable(T::Array[OpenAI::Beta::HostedPluginParam]),
280
+ setup_commands: T.nilable(T::Array[OpenAI::Beta::SetupCommandParam]),
281
+ skills: T.nilable(
282
+ T::Array[
283
+ T.any(OpenAI::Beta::HostedSkillParam::SkillReference, OpenAI::Beta::HostedSkillParam::Inline)
284
+ ]
285
+ )
286
+ }
287
+ )
288
+ end
289
+ def to_hash
290
+ end
291
+
292
+ class Desktop < OpenAI::Internal::Type::BaseModel
293
+ OrHash = T.type_alias do
294
+ T.any(
295
+ OpenAI::Beta::Agents::EnvironmentCreateParams::Environment::Desktop,
296
+ OpenAI::Internal::AnyHash
297
+ )
298
+ end
299
+
300
+ # Whether to provision the desktop and its browser proxy.
301
+ sig { returns(T::Boolean) }
302
+ attr_accessor :enabled
303
+
304
+ # Desktop provisioning. Omission or null inherits the template setting, or
305
+ # defaults to disabled.
306
+ sig do
307
+ params(
308
+
309
+ enabled: T::Boolean
310
+ )
311
+ .returns(T.attached_class)
312
+ end
313
+ def self.new(
314
+
315
+ # Whether to provision the desktop and its browser proxy.
316
+
317
+ enabled:
318
+ )
319
+ end
320
+
321
+ sig do
322
+ override.returns(
323
+ {enabled: T::Boolean}
324
+ )
325
+ end
326
+ def to_hash
327
+ end
328
+
329
+ end
330
+
331
+ class Network < OpenAI::Internal::Type::BaseModel
332
+ OrHash = T.type_alias do
333
+ T.any(
334
+ OpenAI::Beta::Agents::EnvironmentCreateParams::Environment::Network,
335
+ OpenAI::Internal::AnyHash
336
+ )
337
+ end
338
+
339
+ # The environment's network access mode.
340
+ sig { returns(OpenAI::Beta::Agents::EnvironmentCreateParams::Environment::Network::Access::OrSymbol) }
341
+ attr_accessor :access
342
+
343
+ # Domains the environment may access when network access is restricted.
344
+ sig { returns(T.nilable(T::Array[String])) }
345
+ attr_accessor :allowed_domains
346
+
347
+ # Domains blocked for both executor and browser when access is restricted. A
348
+ # nonempty list requires `access: restricted` and cannot be combined with nonempty
349
+ # `allowed_domains`. Wildcard domains are not supported.
350
+ sig { returns(T.nilable(T::Array[String])) }
351
+ attr_accessor :blocked_domains
352
+
353
+ # Network access policy for the environment. If omitted, the API version
354
+ # determines whether network access is enabled or disabled.
355
+ sig do
356
+ params(
357
+
358
+ access: OpenAI::Beta::Agents::EnvironmentCreateParams::Environment::Network::Access::OrSymbol,
359
+
360
+ allowed_domains: T.nilable(T::Array[String]),
361
+
362
+ blocked_domains: T.nilable(T::Array[String])
363
+ )
364
+ .returns(T.attached_class)
365
+ end
366
+ def self.new(
367
+
368
+ # The environment's network access mode.
369
+ access:,
370
+
371
+ # Domains the environment may access when network access is restricted.
372
+ allowed_domains: nil,
373
+
374
+ # Domains blocked for both executor and browser when access is restricted. A
375
+ # nonempty list requires `access: restricted` and cannot be combined with nonempty
376
+ # `allowed_domains`. Wildcard domains are not supported.
377
+
378
+ blocked_domains: nil
379
+ )
380
+ end
381
+
382
+ sig do
383
+ override.returns(
384
+ {
385
+ access: OpenAI::Beta::Agents::EnvironmentCreateParams::Environment::Network::Access::OrSymbol,
386
+ allowed_domains: T.nilable(T::Array[String]),
387
+ blocked_domains: T.nilable(T::Array[String])
388
+ }
389
+ )
390
+ end
391
+ def to_hash
392
+ end
393
+
394
+ # The environment's network access mode.
395
+ module Access
396
+ extend OpenAI::Internal::Type::Enum
397
+
398
+ TaggedSymbol = T.type_alias {
399
+ T.all(Symbol, OpenAI::Beta::Agents::EnvironmentCreateParams::Environment::Network::Access)
400
+ }
401
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
402
+
403
+ # Allows unrestricted network access.
404
+ ENABLED = T.let(
405
+ :enabled,
406
+ OpenAI::Beta::Agents::EnvironmentCreateParams::Environment::Network::Access::TaggedSymbol
407
+ )
408
+
409
+ # Disables network access.
410
+ DISABLED = T.let(
411
+ :disabled,
412
+ OpenAI::Beta::Agents::EnvironmentCreateParams::Environment::Network::Access::TaggedSymbol
413
+ )
414
+
415
+ # Applies the configured domain restrictions.
416
+ RESTRICTED = T.let(
417
+ :restricted,
418
+ OpenAI::Beta::Agents::EnvironmentCreateParams::Environment::Network::Access::TaggedSymbol
419
+ )
420
+
421
+ sig {
422
+ override.returns(
423
+ T::Array[OpenAI::Beta::Agents::EnvironmentCreateParams::Environment::Network::Access::TaggedSymbol]
424
+ )
425
+ }
426
+ def self.values
427
+ end
428
+ end
429
+ end
430
+
431
+ class Packages < OpenAI::Internal::Type::BaseModel
432
+ OrHash = T.type_alias do
433
+ T.any(
434
+ OpenAI::Beta::Agents::EnvironmentCreateParams::Environment::Packages,
435
+ OpenAI::Internal::AnyHash
436
+ )
437
+ end
438
+
439
+ # npm packages to install globally. Defaults to an empty list.
440
+ sig { returns(T.nilable(T::Array[String])) }
441
+ attr_accessor :npm
442
+
443
+ # Python packages to install. Defaults to an empty list.
444
+ sig { returns(T.nilable(T::Array[String])) }
445
+ attr_accessor :python
446
+
447
+ # System packages to install. Defaults to an empty list.
448
+ sig { returns(T.nilable(T::Array[String])) }
449
+ attr_accessor :system_
450
+
451
+ # Packages to install in the environment. Defaults to empty package lists.
452
+ sig do
453
+ params(
454
+
455
+ npm: T.nilable(T::Array[String]),
456
+
457
+ python: T.nilable(T::Array[String]),
458
+
459
+ system_: T.nilable(T::Array[String])
460
+ )
461
+ .returns(T.attached_class)
462
+ end
463
+ def self.new(
464
+
465
+ # npm packages to install globally. Defaults to an empty list.
466
+ npm: nil,
467
+
468
+ # Python packages to install. Defaults to an empty list.
469
+ python: nil,
470
+
471
+ # System packages to install. Defaults to an empty list.
472
+
473
+ system_: nil
474
+ )
475
+ end
476
+
477
+ sig do
478
+ override.returns(
479
+ {
480
+ npm: T.nilable(T::Array[String]),
481
+ python: T.nilable(T::Array[String]),
482
+ system_: T.nilable(T::Array[String])
483
+ }
484
+ )
485
+ end
486
+ def to_hash
487
+ end
488
+
489
+ end
490
+ end
491
+
492
+ end
493
+
494
+ end
495
+
496
+ end
497
+
498
+ end
499
+ end
@@ -121,6 +121,9 @@ module OpenAI
121
121
  OrSymbol = T.type_alias { T.any(Symbol, String) }
122
122
 
123
123
  PENDING = T.let(:pending, OpenAI::Beta::Agents::EnvironmentInfo::Status::TaggedSymbol)
124
+ # Provisioning succeeded and the environment is available for attachment or use.
125
+ READY = T.let(:ready, OpenAI::Beta::Agents::EnvironmentInfo::Status::TaggedSymbol)
126
+
124
127
  CONNECTED = T.let(:connected, OpenAI::Beta::Agents::EnvironmentInfo::Status::TaggedSymbol)
125
128
  DISCONNECTED = T.let(:disconnected, OpenAI::Beta::Agents::EnvironmentInfo::Status::TaggedSymbol)
126
129
  EXPIRED = T.let(:expired, OpenAI::Beta::Agents::EnvironmentInfo::Status::TaggedSymbol)