openai 0.46.0 → 0.47.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/README.md +1 -1
  4. data/lib/openai/client.rb +4 -0
  5. data/lib/openai/models/deleted_skill.rb +28 -0
  6. data/lib/openai/models/image_edit_params.rb +17 -21
  7. data/lib/openai/models/responses/container_auto.rb +94 -0
  8. data/lib/openai/models/responses/container_network_policy_allowlist.rb +35 -0
  9. data/lib/openai/models/responses/container_network_policy_disabled.rb +18 -0
  10. data/lib/openai/models/responses/container_network_policy_domain_secret.rb +34 -0
  11. data/lib/openai/models/responses/container_reference.rb +26 -0
  12. data/lib/openai/models/responses/function_shell_tool.rb +24 -1
  13. data/lib/openai/models/responses/inline_skill.rb +42 -0
  14. data/lib/openai/models/responses/inline_skill_source.rb +36 -0
  15. data/lib/openai/models/responses/local_environment.rb +26 -0
  16. data/lib/openai/models/responses/local_skill.rb +34 -0
  17. data/lib/openai/models/responses/response_container_reference.rb +27 -0
  18. data/lib/openai/models/responses/response_function_shell_tool_call.rb +29 -1
  19. data/lib/openai/models/responses/response_input_item.rb +27 -1
  20. data/lib/openai/models/responses/response_local_environment.rb +20 -0
  21. data/lib/openai/models/responses/skill_reference.rb +34 -0
  22. data/lib/openai/models/responses/tool.rb +26 -1
  23. data/lib/openai/models/skill.rb +65 -0
  24. data/lib/openai/models/skill_create_params.rb +39 -0
  25. data/lib/openai/models/skill_delete_params.rb +14 -0
  26. data/lib/openai/models/skill_list.rb +48 -0
  27. data/lib/openai/models/skill_list_params.rb +54 -0
  28. data/lib/openai/models/skill_retrieve_params.rb +14 -0
  29. data/lib/openai/models/skill_update_params.rb +22 -0
  30. data/lib/openai/models/skills/content_retrieve_params.rb +16 -0
  31. data/lib/openai/models/skills/deleted_skill_version.rb +40 -0
  32. data/lib/openai/models/skills/skill_version.rb +69 -0
  33. data/lib/openai/models/skills/skill_version_list.rb +52 -0
  34. data/lib/openai/models/skills/version_create_params.rb +49 -0
  35. data/lib/openai/models/skills/version_delete_params.rb +22 -0
  36. data/lib/openai/models/skills/version_list_params.rb +51 -0
  37. data/lib/openai/models/skills/version_retrieve_params.rb +22 -0
  38. data/lib/openai/models/skills/versions/content_retrieve_params.rb +24 -0
  39. data/lib/openai/models.rb +18 -0
  40. data/lib/openai/resources/images.rb +6 -6
  41. data/lib/openai/resources/skills/content.rb +37 -0
  42. data/lib/openai/resources/skills/versions/content.rb +46 -0
  43. data/lib/openai/resources/skills/versions.rb +130 -0
  44. data/lib/openai/resources/skills.rb +139 -0
  45. data/lib/openai/version.rb +1 -1
  46. data/lib/openai.rb +33 -0
  47. data/rbi/openai/client.rbi +3 -0
  48. data/rbi/openai/models/deleted_skill.rbi +33 -0
  49. data/rbi/openai/models/image_edit_params.rbi +21 -27
  50. data/rbi/openai/models/responses/container_auto.rbi +233 -0
  51. data/rbi/openai/models/responses/container_network_policy_allowlist.rbi +78 -0
  52. data/rbi/openai/models/responses/container_network_policy_disabled.rbi +32 -0
  53. data/rbi/openai/models/responses/container_network_policy_domain_secret.rbi +50 -0
  54. data/rbi/openai/models/responses/container_reference.rbi +40 -0
  55. data/rbi/openai/models/responses/function_shell_tool.rbi +65 -2
  56. data/rbi/openai/models/responses/inline_skill.rbi +68 -0
  57. data/rbi/openai/models/responses/inline_skill_source.rbi +51 -0
  58. data/rbi/openai/models/responses/local_environment.rbi +52 -0
  59. data/rbi/openai/models/responses/local_skill.rbi +47 -0
  60. data/rbi/openai/models/responses/response_container_reference.rbi +39 -0
  61. data/rbi/openai/models/responses/response_function_shell_tool_call.rbi +46 -0
  62. data/rbi/openai/models/responses/response_input_item.rbi +52 -0
  63. data/rbi/openai/models/responses/response_local_environment.rbi +33 -0
  64. data/rbi/openai/models/responses/skill_reference.rbi +50 -0
  65. data/rbi/openai/models/responses/tool.rbi +59 -0
  66. data/rbi/openai/models/skill.rbi +82 -0
  67. data/rbi/openai/models/skill_create_params.rbi +65 -0
  68. data/rbi/openai/models/skill_delete_params.rbi +27 -0
  69. data/rbi/openai/models/skill_list.rbi +67 -0
  70. data/rbi/openai/models/skill_list_params.rbi +91 -0
  71. data/rbi/openai/models/skill_retrieve_params.rbi +27 -0
  72. data/rbi/openai/models/skill_update_params.rbi +40 -0
  73. data/rbi/openai/models/skills/content_retrieve_params.rbi +32 -0
  74. data/rbi/openai/models/skills/deleted_skill_version.rbi +55 -0
  75. data/rbi/openai/models/skills/skill_version.rbi +89 -0
  76. data/rbi/openai/models/skills/skill_version_list.rbi +73 -0
  77. data/rbi/openai/models/skills/version_create_params.rbi +93 -0
  78. data/rbi/openai/models/skills/version_delete_params.rbi +40 -0
  79. data/rbi/openai/models/skills/version_list_params.rbi +98 -0
  80. data/rbi/openai/models/skills/version_retrieve_params.rbi +40 -0
  81. data/rbi/openai/models/skills/versions/content_retrieve_params.rbi +42 -0
  82. data/rbi/openai/models.rbi +18 -0
  83. data/rbi/openai/resources/images.rbi +16 -20
  84. data/rbi/openai/resources/skills/content.rbi +28 -0
  85. data/rbi/openai/resources/skills/versions/content.rbi +33 -0
  86. data/rbi/openai/resources/skills/versions.rbi +94 -0
  87. data/rbi/openai/resources/skills.rbi +98 -0
  88. data/sig/openai/client.rbs +2 -0
  89. data/sig/openai/models/deleted_skill.rbs +21 -0
  90. data/sig/openai/models/responses/container_auto.rbs +84 -0
  91. data/sig/openai/models/responses/container_network_policy_allowlist.rbs +36 -0
  92. data/sig/openai/models/responses/container_network_policy_disabled.rbs +15 -0
  93. data/sig/openai/models/responses/container_network_policy_domain_secret.rbs +20 -0
  94. data/sig/openai/models/responses/container_reference.rbs +21 -0
  95. data/sig/openai/models/responses/function_shell_tool.rbs +26 -3
  96. data/sig/openai/models/responses/inline_skill.rbs +37 -0
  97. data/sig/openai/models/responses/inline_skill_source.rbs +28 -0
  98. data/sig/openai/models/responses/local_environment.rbs +28 -0
  99. data/sig/openai/models/responses/local_skill.rbs +23 -0
  100. data/sig/openai/models/responses/response_container_reference.rbs +21 -0
  101. data/sig/openai/models/responses/response_function_shell_tool_call.rbs +15 -0
  102. data/sig/openai/models/responses/response_input_item.rbs +15 -0
  103. data/sig/openai/models/responses/response_local_environment.rbs +15 -0
  104. data/sig/openai/models/responses/skill_reference.rbs +30 -0
  105. data/sig/openai/models/responses/tool.rbs +21 -2
  106. data/sig/openai/models/skill.rbs +50 -0
  107. data/sig/openai/models/skill_create_params.rbs +39 -0
  108. data/sig/openai/models/skill_delete_params.rbs +14 -0
  109. data/sig/openai/models/skill_list.rbs +40 -0
  110. data/sig/openai/models/skill_list_params.rbs +55 -0
  111. data/sig/openai/models/skill_retrieve_params.rbs +15 -0
  112. data/sig/openai/models/skill_update_params.rbs +23 -0
  113. data/sig/openai/models/skills/content_retrieve_params.rbs +17 -0
  114. data/sig/openai/models/skills/deleted_skill_version.rbs +37 -0
  115. data/sig/openai/models/skills/skill_version.rbs +54 -0
  116. data/sig/openai/models/skills/skill_version_list.rbs +44 -0
  117. data/sig/openai/models/skills/version_create_params.rbs +50 -0
  118. data/sig/openai/models/skills/version_delete_params.rbs +25 -0
  119. data/sig/openai/models/skills/version_list_params.rbs +57 -0
  120. data/sig/openai/models/skills/version_retrieve_params.rbs +25 -0
  121. data/sig/openai/models/skills/versions/content_retrieve_params.rbs +27 -0
  122. data/sig/openai/models.rbs +18 -0
  123. data/sig/openai/resources/skills/content.rbs +14 -0
  124. data/sig/openai/resources/skills/versions/content.rbs +17 -0
  125. data/sig/openai/resources/skills/versions.rbs +38 -0
  126. data/sig/openai/resources/skills.rbs +39 -0
  127. metadata +101 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 319786b20e6239f01ec9d26047bae8fa9259e141f95baa7d24b22ff3b417aac8
4
- data.tar.gz: 85a7e695dedbad2fbdc305dc2ee5e1843ef3793fcf50d2bfe3efd6be294cfa37
3
+ metadata.gz: 2e87f93df3497e32ada353e5de4be401dbbf9c79bd381d65e8429ecda93b1705
4
+ data.tar.gz: eb59d4b99289d74e75f3d09fb4236b8a385981554e61b20fb2011aa07b145fb5
5
5
  SHA512:
6
- metadata.gz: bcf2cc4be6392d80121ff4371946fb56e255dbb6f75564251690db6f825155e35cafe7fbfd91f5937e275a458cd8bd8641b92b5c05ccbd242bbc9720b7cd01f3
7
- data.tar.gz: 8d0417477c03208b215fb0ddb36947d73a6e25bd55243c2a137a09437920b52c814e22f5ea78113c42b59426bf5d929cdbfd03a3d5d4554ff8c698fd87b463d9
6
+ metadata.gz: 60aab96792238b95f55b3ac9057340c9455484dbbecf98464859994a3acb8f3d5d4f6553fbc5c96946e4e75e7d9801a011b5fad2620d7c0c78c7c3033c1d2a2a
7
+ data.tar.gz: 16a48a83c5950a2efe7fe1c9c5b39c34902e05ac838b1cbf047515677bcf77688153f30fec96fbe885c980b6058438cd35bb9699a7a6efd7ec71e9b61f05c162
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.47.0 (2026-02-10)
4
+
5
+ Full Changelog: [v0.46.0...v0.47.0](https://github.com/openai/openai-ruby/compare/v0.46.0...v0.47.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** skills and hosted shell ([cf841cd](https://github.com/openai/openai-ruby/commit/cf841cd617c13c2800d2d71afe9e4ef04f18e5e5))
10
+
3
11
  ## 0.46.0 (2026-02-08)
4
12
 
5
13
  Full Changelog: [v0.45.0...v0.46.0](https://github.com/openai/openai-ruby/compare/v0.45.0...v0.46.0)
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.46.0"
18
+ gem "openai", "~> 0.47.0"
19
19
  ```
20
20
 
21
21
  <!-- x-release-please-end -->
data/lib/openai/client.rb CHANGED
@@ -87,6 +87,9 @@ module OpenAI
87
87
  # @return [OpenAI::Resources::Containers]
88
88
  attr_reader :containers
89
89
 
90
+ # @return [OpenAI::Resources::Skills]
91
+ attr_reader :skills
92
+
90
93
  # @return [OpenAI::Resources::Videos]
91
94
  attr_reader :videos
92
95
 
@@ -173,6 +176,7 @@ module OpenAI
173
176
  @conversations = OpenAI::Resources::Conversations.new(client: self)
174
177
  @evals = OpenAI::Resources::Evals.new(client: self)
175
178
  @containers = OpenAI::Resources::Containers.new(client: self)
179
+ @skills = OpenAI::Resources::Skills.new(client: self)
176
180
  @videos = OpenAI::Resources::Videos.new(client: self)
177
181
  end
178
182
  end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ # @see OpenAI::Resources::Skills#delete
6
+ class DeletedSkill < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ #
9
+ # @return [String]
10
+ required :id, String
11
+
12
+ # @!attribute deleted
13
+ #
14
+ # @return [Boolean]
15
+ required :deleted, OpenAI::Internal::Type::Boolean
16
+
17
+ # @!attribute object
18
+ #
19
+ # @return [Symbol, :"skill.deleted"]
20
+ required :object, const: :"skill.deleted"
21
+
22
+ # @!method initialize(id:, deleted:, object: :"skill.deleted")
23
+ # @param id [String]
24
+ # @param deleted [Boolean]
25
+ # @param object [Symbol, :"skill.deleted"]
26
+ end
27
+ end
28
+ end
@@ -14,7 +14,8 @@ module OpenAI
14
14
  #
15
15
  # For the GPT image models (`gpt-image-1`, `gpt-image-1-mini`, and
16
16
  # `gpt-image-1.5`), each image should be a `png`, `webp`, or `jpg` file less than
17
- # 50MB. You can provide up to 16 images.
17
+ # 50MB. You can provide up to 16 images. `chatgpt-image-latest` follows the same
18
+ # input constraints as GPT image models.
18
19
  #
19
20
  # For `dall-e-2`, you can only provide one image, and it should be a square `png`
20
21
  # file less than 4MB.
@@ -60,9 +61,7 @@ module OpenAI
60
61
  optional :mask, OpenAI::Internal::Type::FileInput
61
62
 
62
63
  # @!attribute model
63
- # The model to use for image generation. Only `dall-e-2` and the GPT image models
64
- # are supported. Defaults to `dall-e-2` unless a parameter specific to the GPT
65
- # image models is used.
64
+ # The model to use for image generation. Defaults to `gpt-image-1.5`.
66
65
  #
67
66
  # @return [String, Symbol, OpenAI::Models::ImageModel, nil]
68
67
  optional :model, union: -> { OpenAI::ImageEditParams::Model }, nil?: true
@@ -101,9 +100,8 @@ module OpenAI
101
100
  optional :partial_images, Integer, nil?: true
102
101
 
103
102
  # @!attribute quality
104
- # The quality of the image that will be generated. `high`, `medium` and `low` are
105
- # only supported for the GPT image models. `dall-e-2` only supports `standard`
106
- # quality. Defaults to `auto`.
103
+ # The quality of the image that will be generated for GPT image models. Defaults
104
+ # to `auto`.
107
105
  #
108
106
  # @return [Symbol, OpenAI::Models::ImageEditParams::Quality, nil]
109
107
  optional :quality, enum: -> { OpenAI::ImageEditParams::Quality }, nil?: true
@@ -111,8 +109,8 @@ module OpenAI
111
109
  # @!attribute response_format
112
110
  # The format in which the generated images are returned. Must be one of `url` or
113
111
  # `b64_json`. URLs are only valid for 60 minutes after the image has been
114
- # generated. This parameter is only supported for `dall-e-2`, as the GPT image
115
- # models always return base64-encoded images.
112
+ # generated. This parameter is only supported for `dall-e-2` (default is `url` for
113
+ # `dall-e-2`), as GPT image models always return base64-encoded images.
116
114
  #
117
115
  # @return [Symbol, OpenAI::Models::ImageEditParams::ResponseFormat, nil]
118
116
  optional :response_format, enum: -> { OpenAI::ImageEditParams::ResponseFormat }, nil?: true
@@ -147,7 +145,7 @@ module OpenAI
147
145
  #
148
146
  # @param mask [Pathname, StringIO, IO, String, OpenAI::FilePart] An additional image whose fully transparent areas (e.g. where alpha is zero) ind
149
147
  #
150
- # @param model [String, Symbol, OpenAI::Models::ImageModel, nil] The model to use for image generation. Only `dall-e-2` and the GPT image models
148
+ # @param model [String, Symbol, OpenAI::Models::ImageModel, nil] The model to use for image generation. Defaults to `gpt-image-1.5`.
151
149
  #
152
150
  # @param n [Integer, nil] The number of images to generate. Must be between 1 and 10.
153
151
  #
@@ -157,7 +155,7 @@ module OpenAI
157
155
  #
158
156
  # @param partial_images [Integer, nil] The number of partial images to generate. This parameter is used for
159
157
  #
160
- # @param quality [Symbol, OpenAI::Models::ImageEditParams::Quality, nil] The quality of the image that will be generated. `high`, `medium` and `low` are
158
+ # @param quality [Symbol, OpenAI::Models::ImageEditParams::Quality, nil] The quality of the image that will be generated for GPT image models. Defaults t
161
159
  #
162
160
  # @param response_format [Symbol, OpenAI::Models::ImageEditParams::ResponseFormat, nil] The format in which the generated images are returned. Must be one of `url` or `
163
161
  #
@@ -171,7 +169,8 @@ module OpenAI
171
169
  #
172
170
  # For the GPT image models (`gpt-image-1`, `gpt-image-1-mini`, and
173
171
  # `gpt-image-1.5`), each image should be a `png`, `webp`, or `jpg` file less than
174
- # 50MB. You can provide up to 16 images.
172
+ # 50MB. You can provide up to 16 images. `chatgpt-image-latest` follows the same
173
+ # input constraints as GPT image models.
175
174
  #
176
175
  # For `dall-e-2`, you can only provide one image, and it should be a square `png`
177
176
  # file less than 4MB.
@@ -221,15 +220,13 @@ module OpenAI
221
220
  # @return [Array<Symbol>]
222
221
  end
223
222
 
224
- # The model to use for image generation. Only `dall-e-2` and the GPT image models
225
- # are supported. Defaults to `dall-e-2` unless a parameter specific to the GPT
226
- # image models is used.
223
+ # The model to use for image generation. Defaults to `gpt-image-1.5`.
227
224
  module Model
228
225
  extend OpenAI::Internal::Type::Union
229
226
 
230
227
  variant String
231
228
 
232
- # The model to use for image generation. Only `dall-e-2` and the GPT image models are supported. Defaults to `dall-e-2` unless a parameter specific to the GPT image models is used.
229
+ # The model to use for image generation. Defaults to `gpt-image-1.5`.
233
230
  variant enum: -> { OpenAI::ImageModel }
234
231
 
235
232
  # @!method self.variants
@@ -250,9 +247,8 @@ module OpenAI
250
247
  # @return [Array<Symbol>]
251
248
  end
252
249
 
253
- # The quality of the image that will be generated. `high`, `medium` and `low` are
254
- # only supported for the GPT image models. `dall-e-2` only supports `standard`
255
- # quality. Defaults to `auto`.
250
+ # The quality of the image that will be generated for GPT image models. Defaults
251
+ # to `auto`.
256
252
  module Quality
257
253
  extend OpenAI::Internal::Type::Enum
258
254
 
@@ -268,8 +264,8 @@ module OpenAI
268
264
 
269
265
  # The format in which the generated images are returned. Must be one of `url` or
270
266
  # `b64_json`. URLs are only valid for 60 minutes after the image has been
271
- # generated. This parameter is only supported for `dall-e-2`, as the GPT image
272
- # models always return base64-encoded images.
267
+ # generated. This parameter is only supported for `dall-e-2` (default is `url` for
268
+ # `dall-e-2`), as GPT image models always return base64-encoded images.
273
269
  module ResponseFormat
274
270
  extend OpenAI::Internal::Type::Enum
275
271
 
@@ -0,0 +1,94 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ class ContainerAuto < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute type
8
+ # Automatically creates a container for this request
9
+ #
10
+ # @return [Symbol, :container_auto]
11
+ required :type, const: :container_auto
12
+
13
+ # @!attribute file_ids
14
+ # An optional list of uploaded files to make available to your code.
15
+ #
16
+ # @return [Array<String>, nil]
17
+ optional :file_ids, OpenAI::Internal::Type::ArrayOf[String]
18
+
19
+ # @!attribute memory_limit
20
+ # The memory limit for the container.
21
+ #
22
+ # @return [Symbol, OpenAI::Models::Responses::ContainerAuto::MemoryLimit, nil]
23
+ optional :memory_limit, enum: -> { OpenAI::Responses::ContainerAuto::MemoryLimit }, nil?: true
24
+
25
+ # @!attribute network_policy
26
+ # Network access policy for the container.
27
+ #
28
+ # @return [OpenAI::Models::Responses::ContainerNetworkPolicyDisabled, OpenAI::Models::Responses::ContainerNetworkPolicyAllowlist, nil]
29
+ optional :network_policy, union: -> { OpenAI::Responses::ContainerAuto::NetworkPolicy }
30
+
31
+ # @!attribute skills
32
+ # An optional list of skills referenced by id or inline data.
33
+ #
34
+ # @return [Array<OpenAI::Models::Responses::SkillReference, OpenAI::Models::Responses::InlineSkill>, nil]
35
+ optional :skills, -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Responses::ContainerAuto::Skill] }
36
+
37
+ # @!method initialize(file_ids: nil, memory_limit: nil, network_policy: nil, skills: nil, type: :container_auto)
38
+ # @param file_ids [Array<String>] An optional list of uploaded files to make available to your code.
39
+ #
40
+ # @param memory_limit [Symbol, OpenAI::Models::Responses::ContainerAuto::MemoryLimit, nil] The memory limit for the container.
41
+ #
42
+ # @param network_policy [OpenAI::Models::Responses::ContainerNetworkPolicyDisabled, OpenAI::Models::Responses::ContainerNetworkPolicyAllowlist] Network access policy for the container.
43
+ #
44
+ # @param skills [Array<OpenAI::Models::Responses::SkillReference, OpenAI::Models::Responses::InlineSkill>] An optional list of skills referenced by id or inline data.
45
+ #
46
+ # @param type [Symbol, :container_auto] Automatically creates a container for this request
47
+
48
+ # The memory limit for the container.
49
+ #
50
+ # @see OpenAI::Models::Responses::ContainerAuto#memory_limit
51
+ module MemoryLimit
52
+ extend OpenAI::Internal::Type::Enum
53
+
54
+ MEMORY_LIMIT_1G = :"1g"
55
+ MEMORY_LIMIT_4G = :"4g"
56
+ MEMORY_LIMIT_16G = :"16g"
57
+ MEMORY_LIMIT_64G = :"64g"
58
+
59
+ # @!method self.values
60
+ # @return [Array<Symbol>]
61
+ end
62
+
63
+ # Network access policy for the container.
64
+ #
65
+ # @see OpenAI::Models::Responses::ContainerAuto#network_policy
66
+ module NetworkPolicy
67
+ extend OpenAI::Internal::Type::Union
68
+
69
+ discriminator :type
70
+
71
+ variant :disabled, -> { OpenAI::Responses::ContainerNetworkPolicyDisabled }
72
+
73
+ variant :allowlist, -> { OpenAI::Responses::ContainerNetworkPolicyAllowlist }
74
+
75
+ # @!method self.variants
76
+ # @return [Array(OpenAI::Models::Responses::ContainerNetworkPolicyDisabled, OpenAI::Models::Responses::ContainerNetworkPolicyAllowlist)]
77
+ end
78
+
79
+ module Skill
80
+ extend OpenAI::Internal::Type::Union
81
+
82
+ discriminator :type
83
+
84
+ variant :skill_reference, -> { OpenAI::Responses::SkillReference }
85
+
86
+ variant :inline, -> { OpenAI::Responses::InlineSkill }
87
+
88
+ # @!method self.variants
89
+ # @return [Array(OpenAI::Models::Responses::SkillReference, OpenAI::Models::Responses::InlineSkill)]
90
+ end
91
+ end
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ class ContainerNetworkPolicyAllowlist < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute allowed_domains
8
+ # A list of allowed domains when type is `allowlist`.
9
+ #
10
+ # @return [Array<String>]
11
+ required :allowed_domains, OpenAI::Internal::Type::ArrayOf[String]
12
+
13
+ # @!attribute type
14
+ # Allow outbound network access only to specified domains. Always `allowlist`.
15
+ #
16
+ # @return [Symbol, :allowlist]
17
+ required :type, const: :allowlist
18
+
19
+ # @!attribute domain_secrets
20
+ # Optional domain-scoped secrets for allowlisted domains.
21
+ #
22
+ # @return [Array<OpenAI::Models::Responses::ContainerNetworkPolicyDomainSecret>, nil]
23
+ optional :domain_secrets,
24
+ -> { OpenAI::Internal::Type::ArrayOf[OpenAI::Responses::ContainerNetworkPolicyDomainSecret] }
25
+
26
+ # @!method initialize(allowed_domains:, domain_secrets: nil, type: :allowlist)
27
+ # @param allowed_domains [Array<String>] A list of allowed domains when type is `allowlist`.
28
+ #
29
+ # @param domain_secrets [Array<OpenAI::Models::Responses::ContainerNetworkPolicyDomainSecret>] Optional domain-scoped secrets for allowlisted domains.
30
+ #
31
+ # @param type [Symbol, :allowlist] Allow outbound network access only to specified domains. Always `allowlist`.
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ class ContainerNetworkPolicyDisabled < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute type
8
+ # Disable outbound network access. Always `disabled`.
9
+ #
10
+ # @return [Symbol, :disabled]
11
+ required :type, const: :disabled
12
+
13
+ # @!method initialize(type: :disabled)
14
+ # @param type [Symbol, :disabled] Disable outbound network access. Always `disabled`.
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ class ContainerNetworkPolicyDomainSecret < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute domain
8
+ # The domain associated with the secret.
9
+ #
10
+ # @return [String]
11
+ required :domain, String
12
+
13
+ # @!attribute name
14
+ # The name of the secret to inject for the domain.
15
+ #
16
+ # @return [String]
17
+ required :name, String
18
+
19
+ # @!attribute value
20
+ # The secret value to inject for the domain.
21
+ #
22
+ # @return [String]
23
+ required :value, String
24
+
25
+ # @!method initialize(domain:, name:, value:)
26
+ # @param domain [String] The domain associated with the secret.
27
+ #
28
+ # @param name [String] The name of the secret to inject for the domain.
29
+ #
30
+ # @param value [String] The secret value to inject for the domain.
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ class ContainerReference < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute container_id
8
+ # The ID of the referenced container.
9
+ #
10
+ # @return [String]
11
+ required :container_id, String
12
+
13
+ # @!attribute type
14
+ # References a container created with the /v1/containers endpoint
15
+ #
16
+ # @return [Symbol, :container_reference]
17
+ required :type, const: :container_reference
18
+
19
+ # @!method initialize(container_id:, type: :container_reference)
20
+ # @param container_id [String] The ID of the referenced container.
21
+ #
22
+ # @param type [Symbol, :container_reference] References a container created with the /v1/containers endpoint
23
+ end
24
+ end
25
+ end
26
+ end
@@ -10,10 +10,33 @@ module OpenAI
10
10
  # @return [Symbol, :shell]
11
11
  required :type, const: :shell
12
12
 
13
- # @!method initialize(type: :shell)
13
+ # @!attribute environment
14
+ #
15
+ # @return [OpenAI::Models::Responses::ContainerAuto, OpenAI::Models::Responses::LocalEnvironment, OpenAI::Models::Responses::ContainerReference, nil]
16
+ optional :environment, union: -> { OpenAI::Responses::FunctionShellTool::Environment }, nil?: true
17
+
18
+ # @!method initialize(environment: nil, type: :shell)
14
19
  # A tool that allows the model to execute shell commands.
15
20
  #
21
+ # @param environment [OpenAI::Models::Responses::ContainerAuto, OpenAI::Models::Responses::LocalEnvironment, OpenAI::Models::Responses::ContainerReference, nil]
22
+ #
16
23
  # @param type [Symbol, :shell] The type of the shell tool. Always `shell`.
24
+
25
+ # @see OpenAI::Models::Responses::FunctionShellTool#environment
26
+ module Environment
27
+ extend OpenAI::Internal::Type::Union
28
+
29
+ discriminator :type
30
+
31
+ variant :container_auto, -> { OpenAI::Responses::ContainerAuto }
32
+
33
+ variant :local, -> { OpenAI::Responses::LocalEnvironment }
34
+
35
+ variant :container_reference, -> { OpenAI::Responses::ContainerReference }
36
+
37
+ # @!method self.variants
38
+ # @return [Array(OpenAI::Models::Responses::ContainerAuto, OpenAI::Models::Responses::LocalEnvironment, OpenAI::Models::Responses::ContainerReference)]
39
+ end
17
40
  end
18
41
  end
19
42
  end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ class InlineSkill < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute description
8
+ # The description of the skill.
9
+ #
10
+ # @return [String]
11
+ required :description, String
12
+
13
+ # @!attribute name
14
+ # The name of the skill.
15
+ #
16
+ # @return [String]
17
+ required :name, String
18
+
19
+ # @!attribute source
20
+ # Inline skill payload
21
+ #
22
+ # @return [OpenAI::Models::Responses::InlineSkillSource]
23
+ required :source, -> { OpenAI::Responses::InlineSkillSource }
24
+
25
+ # @!attribute type
26
+ # Defines an inline skill for this request.
27
+ #
28
+ # @return [Symbol, :inline]
29
+ required :type, const: :inline
30
+
31
+ # @!method initialize(description:, name:, source:, type: :inline)
32
+ # @param description [String] The description of the skill.
33
+ #
34
+ # @param name [String] The name of the skill.
35
+ #
36
+ # @param source [OpenAI::Models::Responses::InlineSkillSource] Inline skill payload
37
+ #
38
+ # @param type [Symbol, :inline] Defines an inline skill for this request.
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ class InlineSkillSource < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute data
8
+ # Base64-encoded skill zip bundle.
9
+ #
10
+ # @return [String]
11
+ required :data, String
12
+
13
+ # @!attribute media_type
14
+ # The media type of the inline skill payload. Must be `application/zip`.
15
+ #
16
+ # @return [Symbol, :"application/zip"]
17
+ required :media_type, const: :"application/zip"
18
+
19
+ # @!attribute type
20
+ # The type of the inline skill source. Must be `base64`.
21
+ #
22
+ # @return [Symbol, :base64]
23
+ required :type, const: :base64
24
+
25
+ # @!method initialize(data:, media_type: :"application/zip", type: :base64)
26
+ # Inline skill payload
27
+ #
28
+ # @param data [String] Base64-encoded skill zip bundle.
29
+ #
30
+ # @param media_type [Symbol, :"application/zip"] The media type of the inline skill payload. Must be `application/zip`.
31
+ #
32
+ # @param type [Symbol, :base64] The type of the inline skill source. Must be `base64`.
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ class LocalEnvironment < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute type
8
+ # Use a local computer environment.
9
+ #
10
+ # @return [Symbol, :local]
11
+ required :type, const: :local
12
+
13
+ # @!attribute skills
14
+ # An optional list of skills.
15
+ #
16
+ # @return [Array<OpenAI::Models::Responses::LocalSkill>, nil]
17
+ optional :skills, -> { OpenAI::Internal::Type::ArrayOf[OpenAI::Responses::LocalSkill] }
18
+
19
+ # @!method initialize(skills: nil, type: :local)
20
+ # @param skills [Array<OpenAI::Models::Responses::LocalSkill>] An optional list of skills.
21
+ #
22
+ # @param type [Symbol, :local] Use a local computer environment.
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ class LocalSkill < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute description
8
+ # The description of the skill.
9
+ #
10
+ # @return [String]
11
+ required :description, String
12
+
13
+ # @!attribute name
14
+ # The name of the skill.
15
+ #
16
+ # @return [String]
17
+ required :name, String
18
+
19
+ # @!attribute path
20
+ # The path to the directory containing the skill.
21
+ #
22
+ # @return [String]
23
+ required :path, String
24
+
25
+ # @!method initialize(description:, name:, path:)
26
+ # @param description [String] The description of the skill.
27
+ #
28
+ # @param name [String] The name of the skill.
29
+ #
30
+ # @param path [String] The path to the directory containing the skill.
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ class ResponseContainerReference < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute container_id
8
+ #
9
+ # @return [String]
10
+ required :container_id, String
11
+
12
+ # @!attribute type
13
+ # The environment type. Always `container_reference`.
14
+ #
15
+ # @return [Symbol, :container_reference]
16
+ required :type, const: :container_reference
17
+
18
+ # @!method initialize(container_id:, type: :container_reference)
19
+ # Represents a container created with /v1/containers.
20
+ #
21
+ # @param container_id [String]
22
+ #
23
+ # @param type [Symbol, :container_reference] The environment type. Always `container_reference`.
24
+ end
25
+ end
26
+ end
27
+ end
@@ -23,6 +23,14 @@ module OpenAI
23
23
  # @return [String]
24
24
  required :call_id, String
25
25
 
26
+ # @!attribute environment
27
+ # Represents the use of a local environment to perform shell actions.
28
+ #
29
+ # @return [OpenAI::Models::Responses::ResponseLocalEnvironment, OpenAI::Models::Responses::ResponseContainerReference, nil]
30
+ required :environment,
31
+ union: -> { OpenAI::Responses::ResponseFunctionShellToolCall::Environment },
32
+ nil?: true
33
+
26
34
  # @!attribute status
27
35
  # The status of the shell call. One of `in_progress`, `completed`, or
28
36
  # `incomplete`.
@@ -42,7 +50,7 @@ module OpenAI
42
50
  # @return [String, nil]
43
51
  optional :created_by, String
44
52
 
45
- # @!method initialize(id:, action:, call_id:, status:, created_by: nil, type: :shell_call)
53
+ # @!method initialize(id:, action:, call_id:, environment:, status:, created_by: nil, type: :shell_call)
46
54
  # Some parameter documentations has been truncated, see
47
55
  # {OpenAI::Models::Responses::ResponseFunctionShellToolCall} for more details.
48
56
  #
@@ -54,6 +62,8 @@ module OpenAI
54
62
  #
55
63
  # @param call_id [String] The unique ID of the shell tool call generated by the model.
56
64
  #
65
+ # @param environment [OpenAI::Models::Responses::ResponseLocalEnvironment, OpenAI::Models::Responses::ResponseContainerReference, nil] Represents the use of a local environment to perform shell actions.
66
+ #
57
67
  # @param status [Symbol, OpenAI::Models::Responses::ResponseFunctionShellToolCall::Status] The status of the shell call. One of `in_progress`, `completed`, or `incomplete`
58
68
  #
59
69
  # @param created_by [String] The ID of the entity that created this tool call.
@@ -89,6 +99,24 @@ module OpenAI
89
99
  # @param timeout_ms [Integer, nil] Optional timeout in milliseconds for the commands.
90
100
  end
91
101
 
102
+ # Represents the use of a local environment to perform shell actions.
103
+ #
104
+ # @see OpenAI::Models::Responses::ResponseFunctionShellToolCall#environment
105
+ module Environment
106
+ extend OpenAI::Internal::Type::Union
107
+
108
+ discriminator :type
109
+
110
+ # Represents the use of a local environment to perform shell actions.
111
+ variant :local, -> { OpenAI::Responses::ResponseLocalEnvironment }
112
+
113
+ # Represents a container created with /v1/containers.
114
+ variant :container_reference, -> { OpenAI::Responses::ResponseContainerReference }
115
+
116
+ # @!method self.variants
117
+ # @return [Array(OpenAI::Models::Responses::ResponseLocalEnvironment, OpenAI::Models::Responses::ResponseContainerReference)]
118
+ end
119
+
92
120
  # The status of the shell call. One of `in_progress`, `completed`, or
93
121
  # `incomplete`.
94
122
  #