openai 0.101.1 → 0.103.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 (86) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +14 -0
  3. data/README.md +1 -1
  4. data/lib/openai/models/beta/agent_session_environment_expired_event.rb +57 -0
  5. data/lib/openai/models/beta/agent_session_environment_state.rb +6 -0
  6. data/lib/openai/models/beta/agent_session_environment_suspended_event.rb +57 -0
  7. data/lib/openai/models/beta/agent_session_event.rb +7 -1
  8. data/lib/openai/models/beta/agents/environment_create_params.rb +300 -0
  9. data/lib/openai/models/beta/agents/environment_info.rb +7 -1
  10. data/lib/openai/models/beta/agents/environment_list_params.rb +78 -0
  11. data/lib/openai/models/beta/environment_param.rb +12 -1
  12. data/lib/openai/models/webhooks/agent_environment_expired_webhook_event.rb +72 -0
  13. data/lib/openai/models/webhooks/agent_environment_failed_webhook_event.rb +73 -0
  14. data/lib/openai/models/webhooks/agent_environment_ready_webhook_event.rb +73 -0
  15. data/lib/openai/models/webhooks/agent_environment_suspended_webhook_event.rb +72 -0
  16. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +14 -3
  17. data/lib/openai/models/webhooks/webhook_create_params.rb +4 -0
  18. data/lib/openai/models/webhooks/webhook_test_params.rb +4 -0
  19. data/lib/openai/models/webhooks/webhook_update_params.rb +4 -0
  20. data/lib/openai/resources/beta/agents/environments/files.rb +4 -2
  21. data/lib/openai/resources/beta/agents/environments/templates.rb +10 -5
  22. data/lib/openai/resources/beta/agents/environments.rb +80 -1
  23. data/lib/openai/resources/beta/agents/sessions/artifacts.rb +8 -5
  24. data/lib/openai/resources/beta/agents/sessions/events.rb +11 -5
  25. data/lib/openai/resources/beta/agents/sessions/items.rb +2 -1
  26. data/lib/openai/resources/beta/agents/sessions/subagents/items.rb +2 -1
  27. data/lib/openai/resources/beta/agents/sessions/subagents/turns/items.rb +2 -1
  28. data/lib/openai/resources/beta/agents/sessions/subagents/turns.rb +4 -2
  29. data/lib/openai/resources/beta/agents/sessions/subagents.rb +4 -2
  30. data/lib/openai/resources/beta/agents/sessions/traces.rb +2 -1
  31. data/lib/openai/resources/beta/agents/sessions/turns/items.rb +2 -1
  32. data/lib/openai/resources/beta/agents/sessions/turns.rb +4 -2
  33. data/lib/openai/resources/beta/agents/sessions.rb +16 -7
  34. data/lib/openai/resources/beta/agents/vaults/credentials.rb +10 -5
  35. data/lib/openai/resources/beta/agents/vaults.rb +8 -4
  36. data/lib/openai/resources/beta/agents.rb +10 -5
  37. data/lib/openai/resources/beta/assistants.rb +10 -5
  38. data/lib/openai/resources/beta/chatkit/sessions.rb +4 -2
  39. data/lib/openai/resources/beta/chatkit/threads.rb +8 -4
  40. data/lib/openai/resources/beta/threads/messages.rb +10 -5
  41. data/lib/openai/resources/beta/threads/runs/steps.rb +4 -2
  42. data/lib/openai/resources/beta/threads/runs.rb +24 -10
  43. data/lib/openai/resources/beta/threads.rb +16 -7
  44. data/lib/openai/resources/vector_stores/file_batches.rb +8 -10
  45. data/lib/openai/resources/vector_stores/files.rb +12 -12
  46. data/lib/openai/resources/vector_stores.rb +12 -6
  47. data/lib/openai/resources/webhooks.rb +1 -1
  48. data/lib/openai/version.rb +1 -1
  49. data/lib/openai.rb +8 -0
  50. data/rbi/openai/models/beta/agent_session_environment_expired_event.rbi +95 -0
  51. data/rbi/openai/models/beta/agent_session_environment_state.rbi +6 -0
  52. data/rbi/openai/models/beta/agent_session_environment_suspended_event.rbi +95 -0
  53. data/rbi/openai/models/beta/agent_session_event.rbi +2 -0
  54. data/rbi/openai/models/beta/agents/environment_create_params.rbi +499 -0
  55. data/rbi/openai/models/beta/agents/environment_info.rbi +6 -0
  56. data/rbi/openai/models/beta/agents/environment_list_params.rbi +136 -0
  57. data/rbi/openai/models/beta/environment_param.rbi +15 -0
  58. data/rbi/openai/models/webhooks/agent_environment_expired_webhook_event.rbi +133 -0
  59. data/rbi/openai/models/webhooks/agent_environment_failed_webhook_event.rbi +134 -0
  60. data/rbi/openai/models/webhooks/agent_environment_ready_webhook_event.rbi +134 -0
  61. data/rbi/openai/models/webhooks/agent_environment_suspended_webhook_event.rbi +133 -0
  62. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +5 -2
  63. data/rbi/openai/models/webhooks/webhook_create_params.rbi +16 -0
  64. data/rbi/openai/models/webhooks/webhook_test_params.rbi +16 -0
  65. data/rbi/openai/models/webhooks/webhook_update_params.rbi +16 -0
  66. data/rbi/openai/resources/beta/agents/environments.rbi +53 -0
  67. data/rbi/openai/resources/webhooks.rbi +4 -0
  68. data/sig/openai/models/beta/agent_session_environment_expired_event.rbs +57 -0
  69. data/sig/openai/models/beta/agent_session_environment_state.rbs +14 -1
  70. data/sig/openai/models/beta/agent_session_environment_suspended_event.rbs +57 -0
  71. data/sig/openai/models/beta/agent_session_event.rbs +2 -0
  72. data/sig/openai/models/beta/agents/environment_create_params.rbs +268 -0
  73. data/sig/openai/models/beta/agents/environment_info.rbs +15 -1
  74. data/sig/openai/models/beta/agents/environment_list_params.rbs +97 -0
  75. data/sig/openai/models/beta/environment_param.rbs +14 -0
  76. data/sig/openai/models/webhooks/agent_environment_expired_webhook_event.rbs +70 -0
  77. data/sig/openai/models/webhooks/agent_environment_failed_webhook_event.rbs +70 -0
  78. data/sig/openai/models/webhooks/agent_environment_ready_webhook_event.rbs +70 -0
  79. data/sig/openai/models/webhooks/agent_environment_suspended_webhook_event.rbs +70 -0
  80. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +5 -1
  81. data/sig/openai/models/webhooks/webhook_create_params.rbs +8 -0
  82. data/sig/openai/models/webhooks/webhook_test_params.rbs +8 -0
  83. data/sig/openai/models/webhooks/webhook_update_params.rbs +8 -0
  84. data/sig/openai/resources/beta/agents/environments.rbs +15 -0
  85. data/sig/openai/resources/webhooks.rbs +5 -1
  86. metadata +25 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 76f7d390fded7c11700ad3bd5449bce21cac262612deaedc06c5c2df965fa5e2
4
- data.tar.gz: e29844fdeeb065f5ccce08487880a1ff5b1b89fe08c5a29fe2b5c9ab2cba6ddf
3
+ metadata.gz: 1b50a0bb1c17d033d4179a483168878412ecc245f68bd4192692600581db9bc0
4
+ data.tar.gz: 13eff5cdbaa168cb9837a9a04fc5b39a8cf8d19374d65a4f67be7028bb369d0f
5
5
  SHA512:
6
- metadata.gz: b5c9ea9bfb85686d4ff3d061e88dd5bbb80bcfdb4789d87d93e5e21fe3dd0b429aa9cb3cc7ca537f8b9f93f9580ba2c9147105269c767ff37a3166605db23c33
7
- data.tar.gz: 86de051adcf41d15877a3c20cf4c8592f01b44ae4ab95a318dce426493a76cfa9fc13ca5f2b74c02fbf051b3c36781e09f65f60f9b02de41d7e5af9e22cd779b
6
+ metadata.gz: 63338541f098246944ee6a1e761d0c47ad8434eb722302059205ce4c75a92cb8ab92916d7d3d2156f6882a55ebeb79d051fd51ec25c9db8c6f515bf556d1151d
7
+ data.tar.gz: a8b900d61a286c864507f0a3ab0195a9df0886b825d10cb4beaa7d9125e918176a1f08f3dba71bcfd7d700df87f4a54c2ad62a0ff26232276dbb6e41d1a4d740
data/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.103.0](https://github.com/openai/openai-ruby/compare/v0.102.0...v0.103.0) (2026-10-09)
4
+
5
+
6
+ ### Features
7
+
8
+ * **api:** add agent environment suspension and expiration ([#821](https://github.com/openai/openai-ruby/issues/821)) ([7405e40](https://github.com/openai/openai-ruby/commit/7405e4011978083f3c8599dc4e3a40a5ca6ecc5d))
9
+
10
+ ## [0.102.0](https://github.com/openai/openai-ruby/compare/v0.101.1...v0.102.0) (2026-10-09)
11
+
12
+
13
+ ### Features
14
+
15
+ * **api:** add prewarmed hosted environments ([#818](https://github.com/openai/openai-ruby/issues/818)) ([a9e8015](https://github.com/openai/openai-ruby/commit/a9e80153b030395eca41bf4c6cce0b1e7fcea4dd))
16
+
3
17
  ## [0.101.1](https://github.com/openai/openai-ruby/compare/v0.101.0...v0.101.1) (2026-10-08)
4
18
 
5
19
 
data/README.md CHANGED
@@ -15,7 +15,7 @@ To use this gem, install via Bundler by adding the following to your application
15
15
  <!-- x-release-please-start-version -->
16
16
 
17
17
  ```ruby
18
- gem "openai", "~> 0.101.1"
18
+ gem "openai", "~> 0.103.0"
19
19
  ```
20
20
 
21
21
  <!-- x-release-please-end -->
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Beta
6
+ class AgentSessionEnvironmentExpiredEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute environment
8
+ # The current environment state.
9
+ #
10
+ # @return [OpenAI::Models::Beta::AgentSessionEnvironmentState]
11
+ required :environment, -> { OpenAI::Beta::AgentSessionEnvironmentState }
12
+
13
+ # @!attribute event_id
14
+ # The unique ID of the event.
15
+ #
16
+ # @return [String]
17
+ required :event_id, String
18
+
19
+ # @!attribute session_id
20
+ # The ID of the session associated with the event.
21
+ #
22
+ # @return [String]
23
+ required :session_id, String
24
+
25
+ # @!attribute turn_id
26
+ # The ID of the turn associated with the event, when applicable.
27
+ #
28
+ # @return [String, nil]
29
+ required :turn_id, String, nil?: true
30
+
31
+ # @!attribute type
32
+ # The type of the object. Always `agent.session.environment.expired`.
33
+ #
34
+ # @return [Symbol, :"agent.session.environment.expired"]
35
+ required :type, const: :"agent.session.environment.expired"
36
+
37
+ # @!method initialize(environment:, event_id:, session_id:, turn_id:, type: :"agent.session.environment.expired")
38
+ # Emitted after a suspended hosted session environment and its checkpoint expire.
39
+ #
40
+ # @param environment [OpenAI::Models::Beta::AgentSessionEnvironmentState]
41
+ # The current environment state.
42
+ #
43
+ # @param event_id [String]
44
+ # The unique ID of the event.
45
+ #
46
+ # @param session_id [String]
47
+ # The ID of the session associated with the event.
48
+ #
49
+ # @param turn_id [String, nil]
50
+ # The ID of the turn associated with the event, when applicable.
51
+ #
52
+ # @param type [Symbol, :"agent.session.environment.expired"]
53
+ # The type of the object. Always `agent.session.environment.expired`.
54
+ end
55
+ end
56
+ end
57
+ end
@@ -94,6 +94,12 @@ module OpenAI
94
94
  # The environment is disconnected.
95
95
  DISCONNECTED = :disconnected
96
96
 
97
+ # The environment is stopped and can be resumed from its private checkpoint.
98
+ SUSPENDED = :suspended
99
+
100
+ # The environment and its private checkpoint have expired.
101
+ EXPIRED = :expired
102
+
97
103
  # The environment failed to connect.
98
104
  FAILED = :failed
99
105
 
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Beta
6
+ class AgentSessionEnvironmentSuspendedEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute environment
8
+ # The current environment state.
9
+ #
10
+ # @return [OpenAI::Models::Beta::AgentSessionEnvironmentState]
11
+ required :environment, -> { OpenAI::Beta::AgentSessionEnvironmentState }
12
+
13
+ # @!attribute event_id
14
+ # The unique ID of the event.
15
+ #
16
+ # @return [String]
17
+ required :event_id, String
18
+
19
+ # @!attribute session_id
20
+ # The ID of the session associated with the event.
21
+ #
22
+ # @return [String]
23
+ required :session_id, String
24
+
25
+ # @!attribute turn_id
26
+ # The ID of the turn associated with the event, when applicable.
27
+ #
28
+ # @return [String, nil]
29
+ required :turn_id, String, nil?: true
30
+
31
+ # @!attribute type
32
+ # The type of the object. Always `agent.session.environment.suspended`.
33
+ #
34
+ # @return [Symbol, :"agent.session.environment.suspended"]
35
+ required :type, const: :"agent.session.environment.suspended"
36
+
37
+ # @!method initialize(environment:, event_id:, session_id:, turn_id:, type: :"agent.session.environment.suspended")
38
+ # Emitted after an idle hosted session environment is checkpointed and stopped.
39
+ #
40
+ # @param environment [OpenAI::Models::Beta::AgentSessionEnvironmentState]
41
+ # The current environment state.
42
+ #
43
+ # @param event_id [String]
44
+ # The unique ID of the event.
45
+ #
46
+ # @param session_id [String]
47
+ # The ID of the session associated with the event.
48
+ #
49
+ # @param turn_id [String, nil]
50
+ # The ID of the turn associated with the event, when applicable.
51
+ #
52
+ # @param type [Symbol, :"agent.session.environment.suspended"]
53
+ # The type of the object. Always `agent.session.environment.suspended`.
54
+ end
55
+ end
56
+ end
57
+ end
@@ -15,6 +15,12 @@ module OpenAI
15
15
  # Emitted when a hosted session environment is ready to connect.
16
16
  variant :"agent.session.environment.ready", -> { OpenAI::Beta::AgentSessionEnvironmentReadyEvent }
17
17
 
18
+ # Emitted after an idle hosted session environment is checkpointed and stopped.
19
+ variant :"agent.session.environment.suspended", -> { OpenAI::Beta::AgentSessionEnvironmentSuspendedEvent }
20
+
21
+ # Emitted after a suspended hosted session environment and its checkpoint expire.
22
+ variant :"agent.session.environment.expired", -> { OpenAI::Beta::AgentSessionEnvironmentExpiredEvent }
23
+
18
24
  # Emitted after a hosted sandbox is replaced. Conversation history survives; changes to the previous sandbox's files and processes do not.
19
25
  variant :"agent.session.environment.reset", -> { OpenAI::Beta::AgentSessionEnvironmentResetEvent }
20
26
 
@@ -124,7 +130,7 @@ module OpenAI
124
130
  )
125
131
 
126
132
  # @!method self.variants
127
- # @return [Array(OpenAI::Models::Beta::AgentSessionErrorEvent, OpenAI::Models::Beta::AgentSessionEnvironmentReadyEvent, OpenAI::Models::Beta::AgentSessionEnvironmentResetEvent, OpenAI::Models::Beta::AgentOutputCommandExecutionOutputDeltaEvent, OpenAI::Models::Beta::AgentSessionCreatedEvent, OpenAI::Models::Beta::AgentSessionTurnCreatedEvent, OpenAI::Models::Beta::AgentSessionTurnInProgressEvent, OpenAI::Models::Beta::AgentSessionTurnCompletedEvent, OpenAI::Models::Beta::AgentSessionTurnFailedEvent, OpenAI::Models::Beta::AgentSessionTurnCancelledEvent, OpenAI::Models::Beta::AgentSessionTurnItemAddedEvent, OpenAI::Models::Beta::AgentSessionIdleEvent, OpenAI::Models::Beta::AgentSessionInProgressEvent, OpenAI::Models::Beta::AgentSessionRequiresActionEvent, OpenAI::Models::Beta::AgentSessionFailedEvent, OpenAI::Models::Beta::AgentSessionEnvironmentPendingEvent, OpenAI::Models::Beta::AgentSessionEnvironmentConnectedEvent, OpenAI::Models::Beta::AgentSessionEnvironmentDisconnectedEvent, OpenAI::Models::Beta::AgentSessionEnvironmentFailedEvent, OpenAI::Models::Beta::AgentSessionSubagentCreatedEvent, OpenAI::Models::Beta::AgentSessionSubagentActiveEvent, OpenAI::Models::Beta::AgentSessionSubagentClosedEvent, OpenAI::Models::Beta::AgentSessionTurnItemDoneEvent, OpenAI::Models::Beta::AgentSessionTurnContentPartAddedEvent, OpenAI::Models::Beta::AgentSessionTurnContentPartDoneEvent, OpenAI::Models::Beta::AgentSessionTurnOutputTextDeltaEvent, OpenAI::Models::Beta::AgentSessionTurnOutputTextDoneEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryPartAddedEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryPartDoneEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryTextDeltaEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryTextDoneEvent)]
133
+ # @return [Array(OpenAI::Models::Beta::AgentSessionErrorEvent, OpenAI::Models::Beta::AgentSessionEnvironmentReadyEvent, OpenAI::Models::Beta::AgentSessionEnvironmentSuspendedEvent, OpenAI::Models::Beta::AgentSessionEnvironmentExpiredEvent, OpenAI::Models::Beta::AgentSessionEnvironmentResetEvent, OpenAI::Models::Beta::AgentOutputCommandExecutionOutputDeltaEvent, OpenAI::Models::Beta::AgentSessionCreatedEvent, OpenAI::Models::Beta::AgentSessionTurnCreatedEvent, OpenAI::Models::Beta::AgentSessionTurnInProgressEvent, OpenAI::Models::Beta::AgentSessionTurnCompletedEvent, OpenAI::Models::Beta::AgentSessionTurnFailedEvent, OpenAI::Models::Beta::AgentSessionTurnCancelledEvent, OpenAI::Models::Beta::AgentSessionTurnItemAddedEvent, OpenAI::Models::Beta::AgentSessionIdleEvent, OpenAI::Models::Beta::AgentSessionInProgressEvent, OpenAI::Models::Beta::AgentSessionRequiresActionEvent, OpenAI::Models::Beta::AgentSessionFailedEvent, OpenAI::Models::Beta::AgentSessionEnvironmentPendingEvent, OpenAI::Models::Beta::AgentSessionEnvironmentConnectedEvent, OpenAI::Models::Beta::AgentSessionEnvironmentDisconnectedEvent, OpenAI::Models::Beta::AgentSessionEnvironmentFailedEvent, OpenAI::Models::Beta::AgentSessionSubagentCreatedEvent, OpenAI::Models::Beta::AgentSessionSubagentActiveEvent, OpenAI::Models::Beta::AgentSessionSubagentClosedEvent, OpenAI::Models::Beta::AgentSessionTurnItemDoneEvent, OpenAI::Models::Beta::AgentSessionTurnContentPartAddedEvent, OpenAI::Models::Beta::AgentSessionTurnContentPartDoneEvent, OpenAI::Models::Beta::AgentSessionTurnOutputTextDeltaEvent, OpenAI::Models::Beta::AgentSessionTurnOutputTextDoneEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryPartAddedEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryPartDoneEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryTextDeltaEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryTextDoneEvent)]
128
134
  end
129
135
  end
130
136
  end
@@ -0,0 +1,300 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Beta
6
+ module Agents
7
+ # @see OpenAI::Resources::Beta::Agents::Environments#create
8
+ class EnvironmentCreateParams < OpenAI::Internal::Type::BaseModel
9
+ extend OpenAI::Internal::Type::RequestParameters::Converter
10
+ include OpenAI::Internal::Type::RequestParameters
11
+
12
+ # @!attribute environment
13
+ # The required hosting type and its configuration.
14
+ #
15
+ # @return [OpenAI::Models::Beta::Agents::EnvironmentCreateParams::Environment]
16
+ required :environment, -> { OpenAI::Beta::Agents::EnvironmentCreateParams::Environment }
17
+
18
+ # @!attribute vault_ids
19
+ # The IDs of up to 10 vaults made available to an OpenAI-hosted environment.
20
+ #
21
+ # @return [Array<String>, nil]
22
+ optional :vault_ids, OpenAI::Internal::Type::ArrayOf[String], nil?: true
23
+
24
+ # @!attribute idempotency_key
25
+ #
26
+ # @return [String, nil]
27
+ optional :idempotency_key, String
28
+
29
+ # @!method initialize(environment:, vault_ids: nil, idempotency_key: nil, request_options: {})
30
+ # @param environment [OpenAI::Models::Beta::Agents::EnvironmentCreateParams::Environment]
31
+ # The required hosting type and its configuration.
32
+ #
33
+ # @param vault_ids [Array<String>, nil]
34
+ # The IDs of up to 10 vaults made available to an OpenAI-hosted environment.
35
+ #
36
+ # @param idempotency_key [String]
37
+ #
38
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
39
+
40
+ class Environment < OpenAI::Internal::Type::BaseModel
41
+ # @!attribute type
42
+ # The type of the object. Always `openai_hosted`.
43
+ #
44
+ # @return [Symbol, :openai_hosted]
45
+ required :type, const: :openai_hosted
46
+
47
+ # @!attribute capability_directories
48
+ # Directories that contain capabilities exposed to the agent. Defaults to an empty
49
+ # list.
50
+ #
51
+ # @return [Array<String>, nil]
52
+ optional :capability_directories, OpenAI::Internal::Type::ArrayOf[String], nil?: true
53
+
54
+ # @!attribute desktop
55
+ # Desktop provisioning. Omission or null inherits the template setting, or
56
+ # defaults to disabled.
57
+ #
58
+ # @return [OpenAI::Models::Beta::Agents::EnvironmentCreateParams::Environment::Desktop, nil]
59
+ optional(
60
+ :desktop,
61
+ -> {
62
+ OpenAI::Beta::Agents::EnvironmentCreateParams::Environment::Desktop
63
+ },
64
+ nil?: true
65
+ )
66
+
67
+ # @!attribute env
68
+ # Environment variables made available to the agent.
69
+ #
70
+ # @return [Hash{Symbol=>String}, nil]
71
+ optional :env, OpenAI::Internal::Type::HashOf[String], nil?: true
72
+
73
+ # @!attribute environment_template_id
74
+ # A reusable hosted template applied before inline configuration. Omitted fields
75
+ # inherit the template; network overrides cannot broaden its policy.
76
+ #
77
+ # @return [String, nil]
78
+ optional :environment_template_id, String
79
+
80
+ # @!attribute files
81
+ # Files available before the agent starts. Defaults to an empty list.
82
+ #
83
+ # @return [Array<OpenAI::Models::Beta::HostedEnvironmentFileParam::FileID, OpenAI::Models::Beta::HostedEnvironmentFileParam::Inline>, nil]
84
+ optional(
85
+ :files,
86
+ -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Beta::HostedEnvironmentFileParam] },
87
+ nil?: true
88
+ )
89
+
90
+ # @!attribute network
91
+ # Network access policy for the environment. If omitted, the API version
92
+ # determines whether network access is enabled or disabled.
93
+ #
94
+ # @return [OpenAI::Models::Beta::Agents::EnvironmentCreateParams::Environment::Network, nil]
95
+ optional(
96
+ :network,
97
+ -> {
98
+ OpenAI::Beta::Agents::EnvironmentCreateParams::Environment::Network
99
+ },
100
+ nil?: true
101
+ )
102
+
103
+ # @!attribute packages
104
+ # Packages to install in the environment. Defaults to empty package lists.
105
+ #
106
+ # @return [OpenAI::Models::Beta::Agents::EnvironmentCreateParams::Environment::Packages, nil]
107
+ optional(
108
+ :packages,
109
+ -> { OpenAI::Beta::Agents::EnvironmentCreateParams::Environment::Packages },
110
+ nil?: true
111
+ )
112
+
113
+ # @!attribute plugins
114
+ # Plugins provided as inline ZIP archives. Defaults to an empty list.
115
+ #
116
+ # @return [Array<OpenAI::Models::Beta::HostedPluginParam>, nil]
117
+ optional(
118
+ :plugins,
119
+ -> {
120
+ OpenAI::Internal::Type::ArrayOf[OpenAI::Beta::HostedPluginParam]
121
+ },
122
+ nil?: true
123
+ )
124
+
125
+ # @!attribute setup_commands
126
+ # Ordered, confidential setup commands. Command bodies are never returned.
127
+ #
128
+ # @return [Array<OpenAI::Models::Beta::SetupCommandParam>, nil]
129
+ optional(
130
+ :setup_commands,
131
+ -> { OpenAI::Internal::Type::ArrayOf[OpenAI::Beta::SetupCommandParam] },
132
+ nil?: true
133
+ )
134
+
135
+ # @!attribute skills
136
+ # Skills referenced by ID or provided as inline ZIP archives. Defaults to an empty
137
+ # list.
138
+ #
139
+ # @return [Array<OpenAI::Models::Beta::HostedSkillParam::SkillReference, OpenAI::Models::Beta::HostedSkillParam::Inline>, nil]
140
+ optional(
141
+ :skills,
142
+ -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Beta::HostedSkillParam] },
143
+ nil?: true
144
+ )
145
+
146
+ # @!method initialize(capability_directories: nil, desktop: nil, env: nil, environment_template_id: nil, files: nil, network: nil, packages: nil, plugins: nil, setup_commands: nil, skills: nil, type: :openai_hosted)
147
+ # The required hosting type and its configuration.
148
+ #
149
+ # @param capability_directories [Array<String>, nil]
150
+ # Directories that contain capabilities exposed to the agent. Defaults to an empty
151
+ # list.
152
+ #
153
+ # @param desktop [OpenAI::Models::Beta::Agents::EnvironmentCreateParams::Environment::Desktop, nil]
154
+ # Desktop provisioning. Omission or null inherits the template setting, or
155
+ # defaults to disabled.
156
+ #
157
+ # @param env [Hash{Symbol=>String}, nil]
158
+ # Environment variables made available to the agent.
159
+ #
160
+ # @param environment_template_id [String]
161
+ # A reusable hosted template applied before inline configuration. Omitted fields
162
+ # inherit the template; network overrides cannot broaden its policy.
163
+ #
164
+ # @param files [Array<OpenAI::Models::Beta::HostedEnvironmentFileParam::FileID, OpenAI::Models::Beta::HostedEnvironmentFileParam::Inline>, nil]
165
+ # Files available before the agent starts. Defaults to an empty list.
166
+ #
167
+ # @param network [OpenAI::Models::Beta::Agents::EnvironmentCreateParams::Environment::Network, nil]
168
+ # Network access policy for the environment. If omitted, the API version
169
+ # determines whether network access is enabled or disabled.
170
+ #
171
+ # @param packages [OpenAI::Models::Beta::Agents::EnvironmentCreateParams::Environment::Packages, nil]
172
+ # Packages to install in the environment. Defaults to empty package lists.
173
+ #
174
+ # @param plugins [Array<OpenAI::Models::Beta::HostedPluginParam>, nil]
175
+ # Plugins provided as inline ZIP archives. Defaults to an empty list.
176
+ #
177
+ # @param setup_commands [Array<OpenAI::Models::Beta::SetupCommandParam>, nil]
178
+ # Ordered, confidential setup commands. Command bodies are never returned.
179
+ #
180
+ # @param skills [Array<OpenAI::Models::Beta::HostedSkillParam::SkillReference, OpenAI::Models::Beta::HostedSkillParam::Inline>, nil]
181
+ # Skills referenced by ID or provided as inline ZIP archives. Defaults to an empty
182
+ # list.
183
+ #
184
+ # @param type [Symbol, :openai_hosted]
185
+ # The type of the object. Always `openai_hosted`.
186
+
187
+ # @see OpenAI::Models::Beta::Agents::EnvironmentCreateParams::Environment#desktop
188
+ class Desktop < OpenAI::Internal::Type::BaseModel
189
+ # @!attribute enabled
190
+ # Whether to provision the desktop and its browser proxy.
191
+ #
192
+ # @return [Boolean]
193
+ required :enabled, OpenAI::Internal::Type::Boolean
194
+
195
+ # @!method initialize(enabled:)
196
+ # Desktop provisioning. Omission or null inherits the template setting, or
197
+ # defaults to disabled.
198
+ #
199
+ # @param enabled [Boolean]
200
+ # Whether to provision the desktop and its browser proxy.
201
+ end
202
+
203
+ # @see OpenAI::Models::Beta::Agents::EnvironmentCreateParams::Environment#network
204
+ class Network < OpenAI::Internal::Type::BaseModel
205
+ # @!attribute access
206
+ # The environment's network access mode.
207
+ #
208
+ # @return [Symbol, OpenAI::Models::Beta::Agents::EnvironmentCreateParams::Environment::Network::Access]
209
+ required(
210
+ :access,
211
+ enum: -> { OpenAI::Beta::Agents::EnvironmentCreateParams::Environment::Network::Access }
212
+ )
213
+
214
+ # @!attribute allowed_domains
215
+ # Domains the environment may access when network access is restricted.
216
+ #
217
+ # @return [Array<String>, nil]
218
+ optional :allowed_domains, OpenAI::Internal::Type::ArrayOf[String], nil?: true
219
+
220
+ # @!attribute blocked_domains
221
+ # Domains blocked for both executor and browser when access is restricted. A
222
+ # nonempty list requires `access: restricted` and cannot be combined with nonempty
223
+ # `allowed_domains`. Wildcard domains are not supported.
224
+ #
225
+ # @return [Array<String>, nil]
226
+ optional :blocked_domains, OpenAI::Internal::Type::ArrayOf[String], nil?: true
227
+
228
+ # @!method initialize(access:, allowed_domains: nil, blocked_domains: nil)
229
+ # Network access policy for the environment. If omitted, the API version
230
+ # determines whether network access is enabled or disabled.
231
+ #
232
+ # @param access [Symbol, OpenAI::Models::Beta::Agents::EnvironmentCreateParams::Environment::Network::Access]
233
+ # The environment's network access mode.
234
+ #
235
+ # @param allowed_domains [Array<String>, nil]
236
+ # Domains the environment may access when network access is restricted.
237
+ #
238
+ # @param blocked_domains [Array<String>, nil]
239
+ # Domains blocked for both executor and browser when access is restricted. A
240
+ # nonempty list requires `access: restricted` and cannot be combined with nonempty
241
+ # `allowed_domains`. Wildcard domains are not supported.
242
+
243
+ # The environment's network access mode.
244
+ #
245
+ # @see OpenAI::Models::Beta::Agents::EnvironmentCreateParams::Environment::Network#access
246
+ module Access
247
+ extend OpenAI::Internal::Type::Enum
248
+
249
+ # Allows unrestricted network access.
250
+ ENABLED = :enabled
251
+
252
+ # Disables network access.
253
+ DISABLED = :disabled
254
+
255
+ # Applies the configured domain restrictions.
256
+ RESTRICTED = :restricted
257
+
258
+ # @!method self.values
259
+ # @return [Array<Symbol>]
260
+ end
261
+ end
262
+
263
+ # @see OpenAI::Models::Beta::Agents::EnvironmentCreateParams::Environment#packages
264
+ class Packages < OpenAI::Internal::Type::BaseModel
265
+ # @!attribute npm
266
+ # npm packages to install globally. Defaults to an empty list.
267
+ #
268
+ # @return [Array<String>, nil]
269
+ optional :npm, OpenAI::Internal::Type::ArrayOf[String], nil?: true
270
+
271
+ # @!attribute python
272
+ # Python packages to install. Defaults to an empty list.
273
+ #
274
+ # @return [Array<String>, nil]
275
+ optional :python, OpenAI::Internal::Type::ArrayOf[String], nil?: true
276
+
277
+ # @!attribute system_
278
+ # System packages to install. Defaults to an empty list.
279
+ #
280
+ # @return [Array<String>, nil]
281
+ optional :system_, OpenAI::Internal::Type::ArrayOf[String], api_name: :system, nil?: true
282
+
283
+ # @!method initialize(npm: nil, python: nil, system_: nil)
284
+ # Packages to install in the environment. Defaults to empty package lists.
285
+ #
286
+ # @param npm [Array<String>, nil]
287
+ # npm packages to install globally. Defaults to an empty list.
288
+ #
289
+ # @param python [Array<String>, nil]
290
+ # Python packages to install. Defaults to an empty list.
291
+ #
292
+ # @param system_ [Array<String>, nil]
293
+ # System packages to install. Defaults to an empty list.
294
+ end
295
+ end
296
+ end
297
+ end
298
+ end
299
+ end
300
+ end
@@ -4,7 +4,7 @@ module OpenAI
4
4
  module Models
5
5
  module Beta
6
6
  module Agents
7
- # @see OpenAI::Resources::Beta::Agents::Environments#retrieve
7
+ # @see OpenAI::Resources::Beta::Agents::Environments#create
8
8
  class EnvironmentInfo < OpenAI::Internal::Type::BaseModel
9
9
  # @!attribute id
10
10
  # The ID of the environment.
@@ -79,8 +79,14 @@ module OpenAI
79
79
  extend OpenAI::Internal::Type::Enum
80
80
 
81
81
  PENDING = :pending
82
+ # Provisioning succeeded and the environment is available for attachment or use.
83
+ READY = :ready
84
+
82
85
  CONNECTED = :connected
83
86
  DISCONNECTED = :disconnected
87
+ # The sandbox is stopped and can be resumed from its private checkpoint.
88
+ SUSPENDED = :suspended
89
+
84
90
  EXPIRED = :expired
85
91
  FAILED = :failed
86
92
 
@@ -0,0 +1,78 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Beta
6
+ module Agents
7
+ # @see OpenAI::Resources::Beta::Agents::Environments#list
8
+ class EnvironmentListParams < OpenAI::Internal::Type::BaseModel
9
+ extend OpenAI::Internal::Type::RequestParameters::Converter
10
+ include OpenAI::Internal::Type::RequestParameters
11
+
12
+ # @!attribute after
13
+ # Return environments after this environment ID in the selected order.
14
+ #
15
+ # @return [String, nil]
16
+ optional :after, String
17
+
18
+ # @!attribute limit
19
+ # The maximum number of environments to return, between 1 and 100. Defaults to 20.
20
+ #
21
+ # @return [Integer, nil]
22
+ optional :limit, Integer
23
+
24
+ # @!attribute order
25
+ # The order in which environments are returned. Defaults to `desc`.
26
+ #
27
+ # @return [Symbol, OpenAI::Models::Beta::Agents::EnvironmentListParams::Order, nil]
28
+ optional :order, enum: -> { OpenAI::Beta::Agents::EnvironmentListParams::Order }
29
+
30
+ # @!attribute type
31
+ # The hosting type to list. Defaults to `openai_hosted`.
32
+ #
33
+ # @return [Symbol, OpenAI::Models::Beta::Agents::EnvironmentListParams::Type, nil]
34
+ optional :type, enum: -> { OpenAI::Beta::Agents::EnvironmentListParams::Type }
35
+
36
+ # @!method initialize(after: nil, limit: nil, order: nil, type: nil, request_options: {})
37
+ # @param after [String]
38
+ # Return environments after this environment ID in the selected order.
39
+ #
40
+ # @param limit [Integer]
41
+ # The maximum number of environments to return, between 1 and 100. Defaults to 20.
42
+ #
43
+ # @param order [Symbol, OpenAI::Models::Beta::Agents::EnvironmentListParams::Order]
44
+ # The order in which environments are returned. Defaults to `desc`.
45
+ #
46
+ # @param type [Symbol, OpenAI::Models::Beta::Agents::EnvironmentListParams::Type]
47
+ # The hosting type to list. Defaults to `openai_hosted`.
48
+ #
49
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
50
+
51
+ # The order in which environments are returned. Defaults to `desc`.
52
+ module Order
53
+ extend OpenAI::Internal::Type::Enum
54
+
55
+ # Returns resources in ascending order.
56
+ ASC = :asc
57
+
58
+ # Returns resources in descending order.
59
+ DESC = :desc
60
+
61
+ # @!method self.values
62
+ # @return [Array<Symbol>]
63
+ end
64
+
65
+ # The hosting type to list. Defaults to `openai_hosted`.
66
+ module Type
67
+ extend OpenAI::Internal::Type::Enum
68
+
69
+ OPENAI_HOSTED = :openai_hosted
70
+
71
+ # @!method self.values
72
+ # @return [Array<Symbol>]
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
78
+ end
@@ -65,6 +65,13 @@ module OpenAI
65
65
  # @return [Hash{Symbol=>String}, nil]
66
66
  optional :env, OpenAI::Internal::Type::HashOf[String], nil?: true
67
67
 
68
+ # @!attribute environment_id
69
+ # An existing prewarmed environment. Cannot be combined with a template or inline
70
+ # configuration.
71
+ #
72
+ # @return [String, nil]
73
+ optional :environment_id, String
74
+
68
75
  # @!attribute environment_template_id
69
76
  # A reusable hosted template applied before inline session configuration. Omitted
70
77
  # fields inherit the template; network overrides cannot broaden its policy.
@@ -128,7 +135,7 @@ module OpenAI
128
135
  nil?: true
129
136
  )
130
137
 
131
- # @!method initialize(capability_directories: nil, container_size: nil, desktop: nil, env: nil, environment_template_id: nil, files: nil, network: nil, packages: nil, plugins: nil, setup_commands: nil, skills: nil, type: :openai_hosted)
138
+ # @!method initialize(capability_directories: nil, container_size: nil, desktop: nil, env: nil, environment_id: nil, environment_template_id: nil, files: nil, network: nil, packages: nil, plugins: nil, setup_commands: nil, skills: nil, type: :openai_hosted)
132
139
  # An existing OpenAI-hosted environment or new inline/template-based hosted
133
140
  # configuration.
134
141
  #
@@ -146,6 +153,10 @@ module OpenAI
146
153
  # @param env [Hash{Symbol=>String}, nil]
147
154
  # Environment variables made available to the agent.
148
155
  #
156
+ # @param environment_id [String]
157
+ # An existing prewarmed environment. Cannot be combined with a template or inline
158
+ # configuration.
159
+ #
149
160
  # @param environment_template_id [String]
150
161
  # A reusable hosted template applied before inline session configuration. Omitted
151
162
  # fields inherit the template; network overrides cannot broaden its policy.