openai 0.97.0 → 0.98.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 (112) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +24 -0
  3. data/README.md +76 -1
  4. data/lib/openai/helpers/agents/session_stream.rb +60 -3
  5. data/lib/openai/helpers/beta/agents/artifacts.rb +72 -0
  6. data/lib/openai/helpers/beta/agents/creation_stream.rb +69 -0
  7. data/lib/openai/helpers/beta/agents/files.rb +236 -0
  8. data/lib/openai/helpers/beta/agents/function_tool.rb +65 -0
  9. data/lib/openai/helpers/beta/agents/model_adapter.rb +27 -0
  10. data/lib/openai/helpers/beta/agents/result.rb +170 -0
  11. data/lib/openai/helpers/beta/agents/typed_output.rb +191 -0
  12. data/lib/openai/helpers/live/websocket.rb +7 -1
  13. data/lib/openai/helpers/realtime/conversation_item_variant_resolver.rb +1 -1
  14. data/lib/openai/helpers/responses_websocket/connection.rb +7 -1
  15. data/lib/openai/helpers/responses_websocket/session.rb +5 -1
  16. data/lib/openai/helpers/responses_websocket/transports/async_websocket.rb +12 -2
  17. data/lib/openai/internal/transport/base_client.rb +18 -0
  18. data/lib/openai/internal/type/array_of.rb +1 -1
  19. data/lib/openai/internal/type/base_model.rb +6 -3
  20. data/lib/openai/internal/type/converter.rb +50 -3
  21. data/lib/openai/internal/type/hash_of.rb +1 -1
  22. data/lib/openai/internal/type/union.rb +6 -6
  23. data/lib/openai/models/beta/agents/sessions/session_trace.rb +64 -0
  24. data/lib/openai/models/beta/agents/sessions/trace_list_params.rb +68 -0
  25. data/lib/openai/models/beta/agents/vaults/credential.rb +8 -4
  26. data/lib/openai/models/beta/beta_response_output_text.rb +2 -2
  27. data/lib/openai/models/beta/beta_response_output_text_annotation_added_event.rb +2 -2
  28. data/lib/openai/models/beta/environment.rb +33 -1
  29. data/lib/openai/models/beta/environment_param.rb +24 -1
  30. data/lib/openai/models/beta/session_turn_error.rb +3 -0
  31. data/lib/openai/models/chat/chat_completion_content_part_image.rb +1 -0
  32. data/lib/openai/models/live/fork_server_event.rb +14 -3
  33. data/lib/openai/models/live/server_event.rb +14 -3
  34. data/lib/openai/models/realtime/translations/client_secret_create_params.rb +28 -0
  35. data/lib/openai/models/responses/response_output_text.rb +2 -2
  36. data/lib/openai/models/responses/response_output_text_annotation_added_event.rb +2 -2
  37. data/lib/openai/resources/beta/agents/environments/files.rb +31 -0
  38. data/lib/openai/resources/beta/agents/sessions/artifacts.rb +8 -0
  39. data/lib/openai/resources/beta/agents/sessions/events.rb +6 -5
  40. data/lib/openai/resources/beta/agents/sessions/traces.rb +58 -0
  41. data/lib/openai/resources/beta/agents/sessions.rb +18 -5
  42. data/lib/openai/resources/evals/runs.rb +1 -1
  43. data/lib/openai/resources/realtime/translations/client_secrets.rb +58 -0
  44. data/lib/openai/resources/realtime/translations.rb +20 -0
  45. data/lib/openai/resources/realtime.rb +4 -0
  46. data/lib/openai/version.rb +1 -1
  47. data/lib/openai.rb +9 -1
  48. data/rbi/openai/helpers/agents.rbi +20 -1
  49. data/rbi/openai/helpers/beta/agents/artifacts.rbi +29 -0
  50. data/rbi/openai/helpers/beta/agents/files.rbi +65 -0
  51. data/rbi/openai/helpers/beta/agents/function_tool.rbi +40 -0
  52. data/rbi/openai/helpers/beta/agents/model_adapter.rbi +22 -0
  53. data/rbi/openai/helpers/beta/agents.rbi +146 -0
  54. data/rbi/openai/internal/transport/base_client.rbi +12 -0
  55. data/rbi/openai/internal/type/base_model.rbi +2 -2
  56. data/rbi/openai/internal/type/converter.rbi +21 -3
  57. data/rbi/openai/internal/type/union.rbi +6 -2
  58. data/rbi/openai/models/beta/agents/sessions/session_trace.rbi +97 -0
  59. data/rbi/openai/models/beta/agents/sessions/trace_list_params.rbi +121 -0
  60. data/rbi/openai/models/beta/agents/vaults/credential.rbi +5 -5
  61. data/rbi/openai/models/beta/beta_response_output_text.rbi +2 -2
  62. data/rbi/openai/models/beta/beta_response_output_text_annotation_added_event.rbi +2 -2
  63. data/rbi/openai/models/beta/environment.rbi +29 -0
  64. data/rbi/openai/models/beta/environment_param.rbi +31 -0
  65. data/rbi/openai/models/beta/session_turn_error.rbi +3 -0
  66. data/rbi/openai/models/chat/chat_completion_content_part_image.rbi +1 -0
  67. data/rbi/openai/models/live/fork_server_event.rbi +14 -2
  68. data/rbi/openai/models/live/server_event.rbi +14 -2
  69. data/rbi/openai/models/realtime/translations/client_secret_create_params.rbi +68 -0
  70. data/rbi/openai/models/responses/response_output_text.rbi +2 -2
  71. data/rbi/openai/models/responses/response_output_text_annotation_added_event.rbi +2 -2
  72. data/rbi/openai/resources/beta/agents/environments/files.rbi +31 -0
  73. data/rbi/openai/resources/beta/agents/sessions/artifacts.rbi +8 -0
  74. data/rbi/openai/resources/beta/agents/sessions/events.rbi +6 -5
  75. data/rbi/openai/resources/beta/agents/sessions/traces.rbi +54 -0
  76. data/rbi/openai/resources/beta/agents/sessions.rbi +6 -1
  77. data/rbi/openai/resources/realtime/translations/client_secrets.rbi +54 -0
  78. data/rbi/openai/resources/realtime/translations.rbi +22 -0
  79. data/rbi/openai/resources/realtime.rbi +3 -0
  80. data/sig/openai/helpers/agents.rbs +7 -0
  81. data/sig/openai/helpers/beta/agents/artifacts.rbs +20 -0
  82. data/sig/openai/helpers/beta/agents/files.rbs +41 -0
  83. data/sig/openai/helpers/beta/agents/function_tool.rbs +24 -0
  84. data/sig/openai/helpers/beta/agents/model_adapter.rbs +16 -0
  85. data/sig/openai/helpers/beta/agents.rbs +71 -0
  86. data/sig/openai/helpers/structured_output.rbs +12 -0
  87. data/sig/openai/internal/transport/base_client.rbs +8 -0
  88. data/sig/openai/internal/type/base_model.rbs +3 -1
  89. data/sig/openai/internal/type/converter.rbs +16 -2
  90. data/sig/openai/internal/type/union.rbs +2 -1
  91. data/sig/openai/models/beta/agents/sessions/session_trace.rbs +65 -0
  92. data/sig/openai/models/beta/agents/sessions/trace_list_params.rbs +81 -0
  93. data/sig/openai/models/beta/agents/vaults/credential.rbs +5 -5
  94. data/sig/openai/models/beta/beta_response_output_text.rbs +2 -2
  95. data/sig/openai/models/beta/beta_response_output_text_annotation_added_event.rbs +2 -2
  96. data/sig/openai/models/beta/environment.rbs +22 -0
  97. data/sig/openai/models/beta/environment_param.rbs +25 -0
  98. data/sig/openai/models/beta/session_turn_error.rbs +4 -0
  99. data/sig/openai/models/chat/chat_completion_content_part_image.rbs +2 -1
  100. data/sig/openai/models/live/fork_server_event.rbs +17 -2
  101. data/sig/openai/models/live/server_event.rbs +17 -2
  102. data/sig/openai/models/realtime/translations/client_secret_create_params.rbs +39 -0
  103. data/sig/openai/models/responses/response_output_text.rbs +2 -2
  104. data/sig/openai/models/responses/response_output_text_annotation_added_event.rbs +2 -2
  105. data/sig/openai/resources/beta/agents/environments/files.rbs +17 -0
  106. data/sig/openai/resources/beta/agents/sessions/artifacts.rbs +4 -0
  107. data/sig/openai/resources/beta/agents/sessions/traces.rbs +21 -0
  108. data/sig/openai/resources/beta/agents/sessions.rbs +4 -1
  109. data/sig/openai/resources/realtime/translations/client_secrets.rbs +17 -0
  110. data/sig/openai/resources/realtime/translations.rbs +11 -0
  111. data/sig/openai/resources/realtime.rbs +2 -0
  112. metadata +37 -1
@@ -409,6 +409,18 @@ module OpenAI
409
409
  )
410
410
  end
411
411
 
412
+ # @api private
413
+ sig {
414
+ params(
415
+ req: T.untyped,
416
+ on_response: T.nilable(T.proc.returns(T.untyped)),
417
+ blk: T.proc.params(chunk: String).returns(T.untyped)
418
+ )
419
+ .void
420
+ }
421
+ def request_streaming_body(req, on_response = nil, &blk)
422
+ end
423
+
412
424
  # @api private
413
425
  sig do
414
426
  params(
@@ -51,7 +51,7 @@ module OpenAI
51
51
 
52
52
  # @api private
53
53
  sig do
54
- returns(
54
+ params(state: T.nilable(OpenAI::Internal::Type::Converter::CoerceState)).returns(
55
55
  T::Hash[
56
56
  Symbol,
57
57
  T.all(
@@ -61,7 +61,7 @@ module OpenAI
61
61
  ]
62
62
  )
63
63
  end
64
- def fields
64
+ def fields(state: nil)
65
65
  end
66
66
 
67
67
  # @api private
@@ -22,7 +22,8 @@ module OpenAI
22
22
  maybe: Integer
23
23
  },
24
24
  error: T.nilable(StandardError),
25
- branched: Integer
25
+ branched: Integer,
26
+ memo: T.nilable(T::Hash[T.untyped, T.untyped])
26
27
  }
27
28
  end
28
29
 
@@ -123,11 +124,28 @@ module OpenAI
123
124
 
124
125
  # @api private
125
126
  sig do
126
- params(translate_names: T::Boolean, request_only: T::Boolean).returns(
127
+ params(translate_names: T::Boolean, request_only: T::Boolean, memoize: T::Boolean).returns(
127
128
  OpenAI::Internal::Type::Converter::CoerceState
128
129
  )
129
130
  end
130
- def self.new_coerce_state(translate_names: true, request_only: false)
131
+ def self.new_coerce_state(translate_names: true, request_only: false, memoize: false)
132
+ end
133
+
134
+ # @api private
135
+ sig {
136
+ params(type_fn: T.proc.returns(T.untyped), state: T.nilable(OpenAI::Internal::Type::Converter::CoerceState))
137
+ .returns(T.untyped)
138
+ }
139
+ def self.resolve_type(type_fn, state: nil)
140
+ end
141
+
142
+ # @api private
143
+ sig {
144
+ params(target: T.untyped, value: T.untyped, state: OpenAI::Internal::Type::Converter::CoerceState).returns(
145
+ T.untyped
146
+ )
147
+ }
148
+ def self.coerce_cached(target, value, state:)
131
149
  end
132
150
 
133
151
  # @api private
@@ -65,8 +65,12 @@ module OpenAI
65
65
  end
66
66
 
67
67
  # @api private
68
- sig { params(value: T.anything).returns(T.nilable(T.anything)) }
69
- private def resolve_variant(value)
68
+ sig {
69
+ params(value: T.anything, state: T.nilable(OpenAI::Internal::Type::Converter::CoerceState)).returns(
70
+ T.nilable(T.anything)
71
+ )
72
+ }
73
+ private def resolve_variant(value, state: nil)
70
74
  end
71
75
 
72
76
  sig { params(other: T.anything).returns(T::Boolean) }
@@ -0,0 +1,97 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Beta
7
+
8
+ module Agents
9
+
10
+ SessionTrace = Sessions::SessionTrace
11
+
12
+ module Sessions
13
+
14
+ class SessionTrace < OpenAI::Internal::Type::BaseModel
15
+
16
+ OrHash = T.type_alias do
17
+ T.any(
18
+ OpenAI::Beta::Agents::Sessions::SessionTrace,
19
+ OpenAI::Internal::AnyHash
20
+ )
21
+ end
22
+
23
+ # The root turn ID. Use this ID as the pagination anchor.
24
+ sig { returns(String) }
25
+ attr_accessor :id
26
+
27
+ # The Unix timestamp in seconds when the root turn was created.
28
+ sig { returns(Integer) }
29
+ attr_accessor :created_at
30
+
31
+ # The object type, which is always `agent.session.trace`.
32
+ sig { returns(Symbol) }
33
+ attr_accessor :object
34
+
35
+ # An OTLP JSON ExportTraceServiceRequest containing resourceSpans. Only currently
36
+ # published data is returned; later trace updates are not awaited.
37
+ sig { returns(T::Hash[Symbol, T.anything]) }
38
+ attr_accessor :otlp
39
+
40
+ # The session that owns this trace.
41
+ sig { returns(String) }
42
+ attr_accessor :session_id
43
+
44
+ sig do
45
+ params(
46
+
47
+ id: String,
48
+
49
+ created_at: Integer,
50
+
51
+ otlp: T::Hash[Symbol, T.anything],
52
+
53
+ session_id: String,
54
+
55
+ object: Symbol
56
+ )
57
+ .returns(T.attached_class)
58
+ end
59
+ def self.new(
60
+
61
+ # The root turn ID. Use this ID as the pagination anchor.
62
+ id:,
63
+
64
+ # The Unix timestamp in seconds when the root turn was created.
65
+ created_at:,
66
+
67
+ # An OTLP JSON ExportTraceServiceRequest containing resourceSpans. Only currently
68
+ # published data is returned; later trace updates are not awaited.
69
+ otlp:,
70
+
71
+ # The session that owns this trace.
72
+ session_id:,
73
+
74
+ # The object type, which is always `agent.session.trace`.
75
+
76
+ object: :"agent.session.trace"
77
+ )
78
+ end
79
+
80
+ sig do
81
+ override.returns(
82
+ {id: String, created_at: Integer, object: Symbol, otlp: T::Hash[Symbol, T.anything], session_id: String}
83
+ )
84
+ end
85
+ def to_hash
86
+ end
87
+
88
+ end
89
+
90
+ end
91
+
92
+ end
93
+
94
+ end
95
+
96
+ end
97
+ end
@@ -0,0 +1,121 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Beta
7
+
8
+ module Agents
9
+
10
+ module Sessions
11
+
12
+ class TraceListParams < OpenAI::Internal::Type::BaseModel
13
+
14
+ extend OpenAI::Internal::Type::RequestParameters::Converter
15
+ include OpenAI::Internal::Type::RequestParameters
16
+
17
+ OrHash = T.type_alias do
18
+ T.any(
19
+ OpenAI::Beta::Agents::Sessions::TraceListParams,
20
+ OpenAI::Internal::AnyHash
21
+ )
22
+ end
23
+
24
+ sig { returns(String) }
25
+ attr_accessor :session_id
26
+
27
+ # Return resources after this resource ID in the selected order.
28
+ sig { returns(T.nilable(String)) }
29
+ attr_reader :after
30
+
31
+ sig { params(after: String).void }
32
+ attr_writer :after
33
+
34
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
35
+ sig { returns(T.nilable(Integer)) }
36
+ attr_reader :limit
37
+
38
+ sig { params(limit: Integer).void }
39
+ attr_writer :limit
40
+
41
+ # The order in which resources are returned. Defaults to `desc`.
42
+ sig { returns(T.nilable(OpenAI::Beta::Agents::Sessions::TraceListParams::Order::OrSymbol)) }
43
+ attr_reader :order
44
+
45
+ sig { params(order: OpenAI::Beta::Agents::Sessions::TraceListParams::Order::OrSymbol).void }
46
+ attr_writer :order
47
+
48
+ sig do
49
+ params(
50
+
51
+ session_id: String,
52
+
53
+ after: String,
54
+
55
+ limit: Integer,
56
+
57
+ order: OpenAI::Beta::Agents::Sessions::TraceListParams::Order::OrSymbol,
58
+
59
+ request_options: OpenAI::RequestOptions::OrHash
60
+ )
61
+ .returns(T.attached_class)
62
+ end
63
+ def self.new(
64
+
65
+ session_id:,
66
+
67
+ # Return resources after this resource ID in the selected order.
68
+ after: nil,
69
+
70
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
71
+ limit: nil,
72
+
73
+ # The order in which resources are returned. Defaults to `desc`.
74
+ order: nil,
75
+
76
+ request_options: {}
77
+ )
78
+ end
79
+
80
+ sig do
81
+ override.returns(
82
+ {
83
+ session_id: String,
84
+ after: String,
85
+ limit: Integer,
86
+ order: OpenAI::Beta::Agents::Sessions::TraceListParams::Order::OrSymbol,
87
+ request_options: OpenAI::RequestOptions
88
+ }
89
+ )
90
+ end
91
+ def to_hash
92
+ end
93
+
94
+ # The order in which resources are returned. Defaults to `desc`.
95
+ module Order
96
+ extend OpenAI::Internal::Type::Enum
97
+
98
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Beta::Agents::Sessions::TraceListParams::Order) }
99
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
100
+
101
+ # Returns resources in ascending order.
102
+ ASC = T.let(:asc, OpenAI::Beta::Agents::Sessions::TraceListParams::Order::TaggedSymbol)
103
+
104
+ # Returns resources in descending order.
105
+ DESC = T.let(:desc, OpenAI::Beta::Agents::Sessions::TraceListParams::Order::TaggedSymbol)
106
+
107
+ sig { override.returns(T::Array[OpenAI::Beta::Agents::Sessions::TraceListParams::Order::TaggedSymbol]) }
108
+ def self.values
109
+ end
110
+ end
111
+
112
+ end
113
+
114
+ end
115
+
116
+ end
117
+
118
+ end
119
+
120
+ end
121
+ end
@@ -64,14 +64,14 @@ module OpenAI
64
64
 
65
65
  created_at: Integer,
66
66
 
67
- metadata: T::Hash[Symbol, String],
68
-
69
67
  name: String,
70
68
 
71
69
  updated_at: Integer,
72
70
 
73
71
  vault_id: String,
74
72
 
73
+ metadata: T::Hash[Symbol, String],
74
+
75
75
  object: Symbol
76
76
  )
77
77
  .returns(T.attached_class)
@@ -87,9 +87,6 @@ module OpenAI
87
87
  # The Unix timestamp, in seconds, when the credential was created.
88
88
  created_at:,
89
89
 
90
- # Application-defined key-value pairs associated with this credential.
91
- metadata:,
92
-
93
90
  # The human-readable name of the credential.
94
91
  name:,
95
92
 
@@ -99,6 +96,9 @@ module OpenAI
99
96
  # The ID of the vault containing this credential.
100
97
  vault_id:,
101
98
 
99
+ # Application-defined key-value pairs associated with this credential.
100
+ metadata: {},
101
+
102
102
  # The object type. Always `vault.credential`.
103
103
 
104
104
  object: :"vault.credential"
@@ -131,7 +131,7 @@ module OpenAI
131
131
  sig { returns(String) }
132
132
  attr_accessor :filename
133
133
 
134
- # The index of the file in the list of files.
134
+ # The index in the output text at which to insert the file citation.
135
135
  sig { returns(Integer) }
136
136
  attr_accessor :index
137
137
 
@@ -161,7 +161,7 @@ module OpenAI
161
161
  # The filename of the file cited.
162
162
  filename:,
163
163
 
164
- # The index of the file in the list of files.
164
+ # The index in the output text at which to insert the file citation.
165
165
  index:,
166
166
 
167
167
  # The type of the file citation. Always `file_citation`.
@@ -155,7 +155,7 @@ module OpenAI
155
155
  sig { returns(String) }
156
156
  attr_accessor :filename
157
157
 
158
- # The index of the file in the list of files.
158
+ # The index in the output text at which to insert the file citation.
159
159
  sig { returns(Integer) }
160
160
  attr_accessor :index
161
161
 
@@ -185,7 +185,7 @@ module OpenAI
185
185
  # The filename of the file cited.
186
186
  filename:,
187
187
 
188
- # The index of the file in the list of files.
188
+ # The index in the output text at which to insert the file citation.
189
189
  index:,
190
190
 
191
191
  # The type of the file citation. Always `file_citation`.
@@ -102,6 +102,11 @@ module OpenAI
102
102
  sig { returns(Symbol) }
103
103
  attr_accessor :type
104
104
 
105
+ # The effective CPU and memory tier, or null when unknown or outside the public
106
+ # tiers.
107
+ sig { returns(T.nilable(OpenAI::Beta::Environment::OpenAIHosted::ContainerSize::TaggedSymbol)) }
108
+ attr_accessor :container_size
109
+
105
110
  # The effective desktop configuration.
106
111
  sig { returns(T.nilable(OpenAI::Beta::Environment::OpenAIHosted::Desktop)) }
107
112
  attr_reader :desktop
@@ -134,6 +139,8 @@ module OpenAI
134
139
  T.any(OpenAI::Beta::HostedSkillReference::OrHash, OpenAI::Beta::HostedSkill::Inline::OrHash)
135
140
  ],
136
141
 
142
+ container_size: T.nilable(OpenAI::Beta::Environment::OpenAIHosted::ContainerSize::OrSymbol),
143
+
137
144
  desktop: OpenAI::Beta::Environment::OpenAIHosted::Desktop::OrHash,
138
145
 
139
146
  type: Symbol
@@ -163,6 +170,10 @@ module OpenAI
163
170
  # Skills installed in the environment, excluding their archive contents.
164
171
  skills:,
165
172
 
173
+ # The effective CPU and memory tier, or null when unknown or outside the public
174
+ # tiers.
175
+ container_size: nil,
176
+
166
177
  # The effective desktop configuration.
167
178
  desktop: nil,
168
179
 
@@ -183,6 +194,7 @@ module OpenAI
183
194
  plugins: T::Array[OpenAI::Beta::HostedPlugin],
184
195
  skills: T::Array[OpenAI::Beta::HostedSkill::Variants],
185
196
  type: Symbol,
197
+ container_size: T.nilable(OpenAI::Beta::Environment::OpenAIHosted::ContainerSize::TaggedSymbol),
186
198
  desktop: OpenAI::Beta::Environment::OpenAIHosted::Desktop
187
199
  }
188
200
  )
@@ -318,6 +330,23 @@ module OpenAI
318
330
 
319
331
  end
320
332
 
333
+ # The effective CPU and memory tier, or null when unknown or outside the public
334
+ # tiers.
335
+ module ContainerSize
336
+ extend OpenAI::Internal::Type::Enum
337
+
338
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Beta::Environment::OpenAIHosted::ContainerSize) }
339
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
340
+
341
+ SMALL = T.let(:small, OpenAI::Beta::Environment::OpenAIHosted::ContainerSize::TaggedSymbol)
342
+ MEDIUM = T.let(:medium, OpenAI::Beta::Environment::OpenAIHosted::ContainerSize::TaggedSymbol)
343
+ LARGE = T.let(:large, OpenAI::Beta::Environment::OpenAIHosted::ContainerSize::TaggedSymbol)
344
+
345
+ sig { override.returns(T::Array[OpenAI::Beta::Environment::OpenAIHosted::ContainerSize::TaggedSymbol]) }
346
+ def self.values
347
+ end
348
+ end
349
+
321
350
  class Desktop < OpenAI::Internal::Type::BaseModel
322
351
  OrHash = T.type_alias do
323
352
  T.any(
@@ -72,6 +72,13 @@ module OpenAI
72
72
  sig { returns(T.nilable(T::Array[String])) }
73
73
  attr_accessor :capability_directories
74
74
 
75
+ # The hosted container size. Omission selects the medium tier.
76
+ sig { returns(T.nilable(OpenAI::Beta::EnvironmentParam::OpenAIHosted::ContainerSize::OrSymbol)) }
77
+ attr_reader :container_size
78
+
79
+ sig { params(container_size: OpenAI::Beta::EnvironmentParam::OpenAIHosted::ContainerSize::OrSymbol).void }
80
+ attr_writer :container_size
81
+
75
82
  # Desktop provisioning. Omission or null inherits the template setting, or
76
83
  # defaults to disabled.
77
84
  sig { returns(T.nilable(OpenAI::Beta::EnvironmentParam::OpenAIHosted::Desktop)) }
@@ -148,6 +155,8 @@ module OpenAI
148
155
 
149
156
  capability_directories: T.nilable(T::Array[String]),
150
157
 
158
+ container_size: OpenAI::Beta::EnvironmentParam::OpenAIHosted::ContainerSize::OrSymbol,
159
+
151
160
  desktop: T.nilable(OpenAI::Beta::EnvironmentParam::OpenAIHosted::Desktop::OrHash),
152
161
 
153
162
  env: T.nilable(T::Hash[Symbol, String]),
@@ -190,6 +199,9 @@ module OpenAI
190
199
  # list.
191
200
  capability_directories: nil,
192
201
 
202
+ # The hosted container size. Omission selects the medium tier.
203
+ container_size: nil,
204
+
193
205
  # Desktop provisioning. Omission or null inherits the template setting, or
194
206
  # defaults to disabled.
195
207
  desktop: nil,
@@ -232,6 +244,7 @@ module OpenAI
232
244
  {
233
245
  type: Symbol,
234
246
  capability_directories: T.nilable(T::Array[String]),
247
+ container_size: OpenAI::Beta::EnvironmentParam::OpenAIHosted::ContainerSize::OrSymbol,
235
248
  desktop: T.nilable(OpenAI::Beta::EnvironmentParam::OpenAIHosted::Desktop),
236
249
  env: T.nilable(T::Hash[Symbol, String]),
237
250
  environment_template_id: String,
@@ -258,6 +271,24 @@ module OpenAI
258
271
  def to_hash
259
272
  end
260
273
 
274
+ # The hosted container size. Omission selects the medium tier.
275
+ module ContainerSize
276
+ extend OpenAI::Internal::Type::Enum
277
+
278
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Beta::EnvironmentParam::OpenAIHosted::ContainerSize) }
279
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
280
+
281
+ SMALL = T.let(:small, OpenAI::Beta::EnvironmentParam::OpenAIHosted::ContainerSize::TaggedSymbol)
282
+ MEDIUM = T.let(:medium, OpenAI::Beta::EnvironmentParam::OpenAIHosted::ContainerSize::TaggedSymbol)
283
+ LARGE = T.let(:large, OpenAI::Beta::EnvironmentParam::OpenAIHosted::ContainerSize::TaggedSymbol)
284
+
285
+ sig {
286
+ override.returns(T::Array[OpenAI::Beta::EnvironmentParam::OpenAIHosted::ContainerSize::TaggedSymbol])
287
+ }
288
+ def self.values
289
+ end
290
+ end
291
+
261
292
  class Desktop < OpenAI::Internal::Type::BaseModel
262
293
  OrHash = T.type_alias do
263
294
  T.any(
@@ -76,6 +76,9 @@ module OpenAI
76
76
  # The request exceeds the available rate limit.
77
77
  RATE_LIMIT_EXCEEDED = T.let(:rate_limit_exceeded, OpenAI::Beta::SessionTurnError::Code::TaggedSymbol)
78
78
 
79
+ # Flex processing is temporarily unavailable.
80
+ FLEX_UNAVAILABLE = T.let(:flex_unavailable, OpenAI::Beta::SessionTurnError::Code::TaggedSymbol)
81
+
79
82
  # The model service is temporarily overloaded.
80
83
  SERVER_OVERLOADED = T.let(:server_overloaded, OpenAI::Beta::SessionTurnError::Code::TaggedSymbol)
81
84
 
@@ -140,6 +140,7 @@ module OpenAI
140
140
  AUTO = T.let(:auto, OpenAI::Chat::ChatCompletionContentPartImage::ImageURL::Detail::TaggedSymbol)
141
141
  LOW = T.let(:low, OpenAI::Chat::ChatCompletionContentPartImage::ImageURL::Detail::TaggedSymbol)
142
142
  HIGH = T.let(:high, OpenAI::Chat::ChatCompletionContentPartImage::ImageURL::Detail::TaggedSymbol)
143
+ ORIGINAL = T.let(:original, OpenAI::Chat::ChatCompletionContentPartImage::ImageURL::Detail::TaggedSymbol)
143
144
 
144
145
  sig {
145
146
  override.returns(T::Array[OpenAI::Chat::ChatCompletionContentPartImage::ImageURL::Detail::TaggedSymbol])
@@ -159,7 +159,14 @@ module OpenAI
159
159
  sig { returns(Symbol) }
160
160
  attr_accessor :type
161
161
 
162
- # A SIP DTMF keypress successfully sent by the hosted tool. Delivered only to
162
+ # The event_id of the client command, when supplied.
163
+ sig { returns(T.nilable(String)) }
164
+ attr_reader :client_event_id
165
+
166
+ sig { params(client_event_id: String).void }
167
+ attr_writer :client_event_id
168
+
169
+ # A SIP DTMF keypress successfully sent to the SIP trunk. Delivered only to
163
170
  # sideband observers; this is not a client command.
164
171
  sig do
165
172
  params(
@@ -168,6 +175,8 @@ module OpenAI
168
175
 
169
176
  event_id: String,
170
177
 
178
+ client_event_id: String,
179
+
171
180
  type: Symbol
172
181
  )
173
182
  .returns(T.attached_class)
@@ -178,13 +187,16 @@ module OpenAI
178
187
 
179
188
  event_id:,
180
189
 
190
+ # The event_id of the client command, when supplied.
191
+ client_event_id: nil,
192
+
181
193
  type: :"transport.dtmf.send"
182
194
  )
183
195
  end
184
196
 
185
197
  sig do
186
198
  override.returns(
187
- {event: String, event_id: String, type: Symbol}
199
+ {event: String, event_id: String, type: Symbol, client_event_id: T.nilable(String)}
188
200
  )
189
201
  end
190
202
  def to_hash
@@ -159,7 +159,14 @@ module OpenAI
159
159
  sig { returns(Symbol) }
160
160
  attr_accessor :type
161
161
 
162
- # A SIP DTMF keypress successfully sent by the hosted tool. Delivered only to
162
+ # The event_id of the client command, when supplied.
163
+ sig { returns(T.nilable(String)) }
164
+ attr_reader :client_event_id
165
+
166
+ sig { params(client_event_id: String).void }
167
+ attr_writer :client_event_id
168
+
169
+ # A SIP DTMF keypress successfully sent to the SIP trunk. Delivered only to
163
170
  # sideband observers; this is not a client command.
164
171
  sig do
165
172
  params(
@@ -168,6 +175,8 @@ module OpenAI
168
175
 
169
176
  event_id: String,
170
177
 
178
+ client_event_id: String,
179
+
171
180
  type: Symbol
172
181
  )
173
182
  .returns(T.attached_class)
@@ -178,13 +187,16 @@ module OpenAI
178
187
 
179
188
  event_id:,
180
189
 
190
+ # The event_id of the client command, when supplied.
191
+ client_event_id: nil,
192
+
181
193
  type: :"transport.dtmf.send"
182
194
  )
183
195
  end
184
196
 
185
197
  sig do
186
198
  override.returns(
187
- {event: String, event_id: String, type: Symbol}
199
+ {event: String, event_id: String, type: Symbol, client_event_id: T.nilable(String)}
188
200
  )
189
201
  end
190
202
  def to_hash
@@ -0,0 +1,68 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Realtime
7
+
8
+ module Translations
9
+
10
+ class ClientSecretCreateParams < OpenAI::Models::Realtime::RealtimeTranslationClientSecretCreateRequest
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::Realtime::Translations::ClientSecretCreateParams,
18
+ OpenAI::Internal::AnyHash
19
+ )
20
+ end
21
+
22
+ sig do
23
+ params(
24
+
25
+ session: OpenAI::Realtime::RealtimeTranslationSessionCreateRequest::OrHash,
26
+
27
+ expires_after: OpenAI::Realtime::RealtimeTranslationClientSecretCreateRequest::ExpiresAfter::OrHash,
28
+
29
+ request_options: OpenAI::RequestOptions::OrHash
30
+ )
31
+ .returns(T.attached_class)
32
+ end
33
+ def self.new(
34
+
35
+ # Realtime translation session configuration. Translation sessions stream source
36
+ # audio in and translated audio plus transcript deltas out continuously.
37
+ session:,
38
+
39
+ # Configuration for the client secret expiration. Expiration refers to the time
40
+ # after which a client secret will no longer be valid for creating sessions. The
41
+ # session itself may continue after that time once started. A secret can be used
42
+ # to create multiple sessions until it expires.
43
+ expires_after: nil,
44
+
45
+ request_options: {}
46
+ )
47
+ end
48
+
49
+ sig do
50
+ override.returns(
51
+ {
52
+ session: OpenAI::Realtime::RealtimeTranslationSessionCreateRequest,
53
+ expires_after: OpenAI::Realtime::RealtimeTranslationClientSecretCreateRequest::ExpiresAfter,
54
+ request_options: OpenAI::RequestOptions
55
+ }
56
+ )
57
+ end
58
+ def to_hash
59
+ end
60
+
61
+ end
62
+
63
+ end
64
+
65
+ end
66
+
67
+ end
68
+ end