openai 0.110.0 → 0.111.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 (41) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +12 -0
  3. data/README.md +1 -1
  4. data/lib/openai/models/decision_create_params.rb +798 -28
  5. data/lib/openai/models/decision_input_json.rb +45 -0
  6. data/lib/openai/models/decision_input_message.rb +304 -48
  7. data/lib/openai/models/decision_input_part.rb +4 -1
  8. data/lib/openai/models/decision_question_input_image.rb +54 -0
  9. data/lib/openai/models/decision_question_input_part.rb +23 -0
  10. data/lib/openai/models/decision_question_input_text.rb +21 -0
  11. data/lib/openai/models/live/decision_trigger.rb +82 -9
  12. data/lib/openai/models/live/decisions_delegation_config.rb +82 -9
  13. data/lib/openai/models/live/decisions_delegation_update_config.rb +82 -9
  14. data/lib/openai/models.rb +8 -0
  15. data/lib/openai/resources/decisions.rb +5 -6
  16. data/lib/openai/version.rb +1 -1
  17. data/lib/openai.rb +4 -0
  18. data/rbi/openai/models/decision_create_params.rbi +1273 -26
  19. data/rbi/openai/models/decision_input_json.rbi +75 -0
  20. data/rbi/openai/models/decision_input_message.rbi +455 -52
  21. data/rbi/openai/models/decision_input_part.rbi +2 -1
  22. data/rbi/openai/models/decision_question_input_image.rbi +82 -0
  23. data/rbi/openai/models/decision_question_input_part.rbi +25 -0
  24. data/rbi/openai/models/decision_question_input_text.rbi +49 -0
  25. data/rbi/openai/models/live/decision_trigger.rbi +72 -9
  26. data/rbi/openai/models/live/decisions_delegation_config.rbi +72 -9
  27. data/rbi/openai/models/live/decisions_delegation_update_config.rbi +72 -9
  28. data/rbi/openai/models.rbi +8 -0
  29. data/rbi/openai/resources/decisions.rbi +4 -5
  30. data/sig/openai/models/decision_create_params.rbs +610 -24
  31. data/sig/openai/models/decision_input_json.rbs +34 -0
  32. data/sig/openai/models/decision_input_message.rbs +264 -35
  33. data/sig/openai/models/decision_input_part.rbs +3 -1
  34. data/sig/openai/models/decision_question_input_image.rbs +51 -0
  35. data/sig/openai/models/decision_question_input_part.rbs +14 -0
  36. data/sig/openai/models/decision_question_input_text.rbs +15 -0
  37. data/sig/openai/models/live/decision_trigger.rbs +49 -12
  38. data/sig/openai/models/live/decisions_delegation_config.rbs +49 -12
  39. data/sig/openai/models/live/decisions_delegation_update_config.rbs +49 -12
  40. data/sig/openai/models.rbs +9 -1
  41. metadata +13 -1
@@ -0,0 +1,75 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ class DecisionInputJSON < OpenAI::Internal::Type::BaseModel
7
+
8
+ OrHash = T.type_alias do
9
+ T.any(
10
+ OpenAI::DecisionInputJSON,
11
+ OpenAI::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ sig { returns(OpenAI::DecisionInputJSON::Data::Variants) }
16
+ attr_accessor :data
17
+
18
+ sig { returns(Symbol) }
19
+ attr_accessor :type
20
+
21
+ # A JSON object or an array of objects rendered as text. Nested values may be any
22
+ # JSON value. Limited to 32 container levels, 10,000 values, and 256 KiB of
23
+ # compact UTF-8 JSON.
24
+ sig do
25
+ params(
26
+
27
+ data: OpenAI::DecisionInputJSON::Data::Variants,
28
+
29
+ type: Symbol
30
+ )
31
+ .returns(T.attached_class)
32
+ end
33
+ def self.new(
34
+
35
+ data:,
36
+
37
+ type: :input_json
38
+ )
39
+ end
40
+
41
+ sig do
42
+ override.returns(
43
+ {data: OpenAI::DecisionInputJSON::Data::Variants, type: Symbol}
44
+ )
45
+ end
46
+ def to_hash
47
+ end
48
+
49
+ module Data
50
+ extend OpenAI::Internal::Type::Union
51
+
52
+ Variants = T.type_alias {
53
+ T.any(T::Hash[Symbol, T.anything], T::Array[T::Hash[Symbol, T.nilable(T.anything)]])
54
+ }
55
+
56
+ sig { override.returns(T::Array[OpenAI::DecisionInputJSON::Data::Variants]) }
57
+ def self.variants
58
+ end
59
+
60
+ UnionMember0Map = T.let(
61
+ OpenAI::Internal::Type::HashOf[OpenAI::Internal::Type::Unknown],
62
+ OpenAI::Internal::Type::Converter
63
+ )
64
+
65
+ UnionMember1Array = T.let(
66
+ OpenAI::Internal::Type::ArrayOf[OpenAI::Internal::Type::HashOf[OpenAI::Internal::Type::Unknown, nil?: true]],
67
+ OpenAI::Internal::Type::Converter
68
+ )
69
+
70
+ end
71
+
72
+ end
73
+
74
+ end
75
+ end
@@ -3,93 +3,496 @@
3
3
  module OpenAI
4
4
  module Models
5
5
 
6
- class DecisionInputMessage < OpenAI::Internal::Type::BaseModel
6
+ # A user message containing input text, images, or JSON.
7
+ module DecisionInputMessage
8
+ extend OpenAI::Internal::Type::Union
7
9
 
8
- OrHash = T.type_alias do
10
+ Variants = T.type_alias do
9
11
  T.any(
10
- OpenAI::DecisionInputMessage,
11
- OpenAI::Internal::AnyHash
12
+ OpenAI::DecisionInputMessage::User,
13
+ OpenAI::DecisionInputMessage::Developer,
14
+ OpenAI::DecisionInputMessage::System,
15
+ OpenAI::DecisionInputMessage::Assistant
12
16
  )
13
17
  end
14
18
 
15
- # Text evidence or an ordered list of text and image parts.
16
- sig { returns(OpenAI::DecisionInputMessage::Content::Variants) }
17
- attr_accessor :content
19
+ class User < OpenAI::Internal::Type::BaseModel
20
+ OrHash = T.type_alias do
21
+ T.any(
22
+ OpenAI::DecisionInputMessage::User,
23
+ OpenAI::Internal::AnyHash
24
+ )
25
+ end
26
+
27
+ # A text string or an ordered list of text, image, and JSON parts.
28
+ sig { returns(OpenAI::DecisionInputMessage::User::Content::Variants) }
29
+ attr_accessor :content
30
+
31
+ sig { returns(Symbol) }
32
+ attr_accessor :role
18
33
 
19
- sig { returns(Symbol) }
20
- attr_accessor :role
34
+ sig { returns(T.nilable(OpenAI::DecisionInputMessage::User::Type::OrSymbol)) }
35
+ attr_reader :type
21
36
 
22
- sig { returns(T.nilable(OpenAI::DecisionInputMessage::Type::OrSymbol)) }
23
- attr_reader :type
37
+ sig { params(type: OpenAI::DecisionInputMessage::User::Type::OrSymbol).void }
38
+ attr_writer :type
24
39
 
25
- sig { params(type: OpenAI::DecisionInputMessage::Type::OrSymbol).void }
26
- attr_writer :type
40
+ # A user message containing input text, images, or JSON.
41
+ sig do
42
+ params(
27
43
 
28
- # A user message containing text or images.
29
- sig do
30
- params(
44
+ content: OpenAI::DecisionInputMessage::User::Content::Variants,
31
45
 
32
- content: OpenAI::DecisionInputMessage::Content::Variants,
46
+ type: OpenAI::DecisionInputMessage::User::Type::OrSymbol,
47
+
48
+ role: Symbol
49
+ )
50
+ .returns(T.attached_class)
51
+ end
52
+ def self.new(
33
53
 
34
- type: OpenAI::DecisionInputMessage::Type::OrSymbol,
54
+ # A text string or an ordered list of text, image, and JSON parts.
55
+ content:,
35
56
 
36
- role: Symbol
57
+ type: nil,
58
+
59
+ role: :user
37
60
  )
38
- .returns(T.attached_class)
39
- end
40
- def self.new(
61
+ end
62
+
63
+ sig do
64
+ override.returns(
65
+ {
66
+ content: OpenAI::DecisionInputMessage::User::Content::Variants,
67
+ role: Symbol,
68
+ type: OpenAI::DecisionInputMessage::User::Type::OrSymbol
69
+ }
70
+ )
71
+ end
72
+ def to_hash
73
+ end
74
+
75
+ # A text string or an ordered list of text, image, and JSON parts.
76
+ module Content
77
+ extend OpenAI::Internal::Type::Union
78
+
79
+ Variants = T.type_alias { T.any(String, T::Array[OpenAI::DecisionInputPart::Variants]) }
80
+
81
+ sig { override.returns(T::Array[OpenAI::DecisionInputMessage::User::Content::Variants]) }
82
+ def self.variants
83
+ end
84
+
85
+ DecisionInputPartArray = T.let(
86
+ OpenAI::Internal::Type::ArrayOf[union: OpenAI::DecisionInputPart],
87
+ OpenAI::Internal::Type::Converter
88
+ )
89
+
90
+ end
41
91
 
42
- # Text evidence or an ordered list of text and image parts.
43
- content:,
92
+ module Type
93
+ extend OpenAI::Internal::Type::Enum
44
94
 
45
- type: nil,
95
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::DecisionInputMessage::User::Type) }
96
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
46
97
 
47
- role: :user
48
- )
98
+ MESSAGE = T.let(:message, OpenAI::DecisionInputMessage::User::Type::TaggedSymbol)
99
+
100
+ sig { override.returns(T::Array[OpenAI::DecisionInputMessage::User::Type::TaggedSymbol]) }
101
+ def self.values
102
+ end
103
+ end
49
104
  end
50
105
 
51
- sig do
52
- override.returns(
53
- {
54
- content: OpenAI::DecisionInputMessage::Content::Variants,
55
- role: Symbol,
56
- type: OpenAI::DecisionInputMessage::Type::OrSymbol
57
- }
106
+ class Developer < OpenAI::Internal::Type::BaseModel
107
+ OrHash = T.type_alias do
108
+ T.any(
109
+ OpenAI::DecisionInputMessage::Developer,
110
+ OpenAI::Internal::AnyHash
111
+ )
112
+ end
113
+
114
+ # A text string or an ordered list of input text parts.
115
+ sig { returns(OpenAI::DecisionInputMessage::Developer::Content::Variants) }
116
+ attr_accessor :content
117
+
118
+ sig { returns(Symbol) }
119
+ attr_accessor :role
120
+
121
+ sig { returns(T.nilable(OpenAI::DecisionInputMessage::Developer::Type::OrSymbol)) }
122
+ attr_reader :type
123
+
124
+ sig { params(type: OpenAI::DecisionInputMessage::Developer::Type::OrSymbol).void }
125
+ attr_writer :type
126
+
127
+ # A developer message containing input text.
128
+ sig do
129
+ params(
130
+
131
+ content: OpenAI::DecisionInputMessage::Developer::Content::Variants,
132
+
133
+ type: OpenAI::DecisionInputMessage::Developer::Type::OrSymbol,
134
+
135
+ role: Symbol
136
+ )
137
+ .returns(T.attached_class)
138
+ end
139
+ def self.new(
140
+
141
+ # A text string or an ordered list of input text parts.
142
+ content:,
143
+
144
+ type: nil,
145
+
146
+ role: :developer
58
147
  )
59
- end
60
- def to_hash
148
+ end
149
+
150
+ sig do
151
+ override.returns(
152
+ {
153
+ content: OpenAI::DecisionInputMessage::Developer::Content::Variants,
154
+ role: Symbol,
155
+ type: OpenAI::DecisionInputMessage::Developer::Type::OrSymbol
156
+ }
157
+ )
158
+ end
159
+ def to_hash
160
+ end
161
+
162
+ # A text string or an ordered list of input text parts.
163
+ module Content
164
+ extend OpenAI::Internal::Type::Union
165
+
166
+ Variants = T.type_alias { T.any(String, T::Array[OpenAI::DecisionInputText]) }
167
+
168
+ sig { override.returns(T::Array[OpenAI::DecisionInputMessage::Developer::Content::Variants]) }
169
+ def self.variants
170
+ end
171
+
172
+ DecisionInputTextArray = T.let(
173
+ OpenAI::Internal::Type::ArrayOf[OpenAI::DecisionInputText],
174
+ OpenAI::Internal::Type::Converter
175
+ )
176
+
177
+ end
178
+
179
+ module Type
180
+ extend OpenAI::Internal::Type::Enum
181
+
182
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::DecisionInputMessage::Developer::Type) }
183
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
184
+
185
+ MESSAGE = T.let(:message, OpenAI::DecisionInputMessage::Developer::Type::TaggedSymbol)
186
+
187
+ sig { override.returns(T::Array[OpenAI::DecisionInputMessage::Developer::Type::TaggedSymbol]) }
188
+ def self.values
189
+ end
190
+ end
61
191
  end
62
192
 
63
- # Text evidence or an ordered list of text and image parts.
64
- module Content
65
- extend OpenAI::Internal::Type::Union
193
+ class System < OpenAI::Internal::Type::BaseModel
194
+ OrHash = T.type_alias do
195
+ T.any(
196
+ OpenAI::DecisionInputMessage::System,
197
+ OpenAI::Internal::AnyHash
198
+ )
199
+ end
66
200
 
67
- Variants = T.type_alias { T.any(String, T::Array[OpenAI::DecisionInputPart::Variants]) }
201
+ # A text string or an ordered list of input text parts.
202
+ sig { returns(OpenAI::DecisionInputMessage::System::Content::Variants) }
203
+ attr_accessor :content
68
204
 
69
- sig { override.returns(T::Array[OpenAI::DecisionInputMessage::Content::Variants]) }
70
- def self.variants
205
+ sig { returns(Symbol) }
206
+ attr_accessor :role
207
+
208
+ sig { returns(T.nilable(OpenAI::DecisionInputMessage::System::Type::OrSymbol)) }
209
+ attr_reader :type
210
+
211
+ sig { params(type: OpenAI::DecisionInputMessage::System::Type::OrSymbol).void }
212
+ attr_writer :type
213
+
214
+ # A system message containing input text.
215
+ sig do
216
+ params(
217
+
218
+ content: OpenAI::DecisionInputMessage::System::Content::Variants,
219
+
220
+ type: OpenAI::DecisionInputMessage::System::Type::OrSymbol,
221
+
222
+ role: Symbol
223
+ )
224
+ .returns(T.attached_class)
71
225
  end
226
+ def self.new(
227
+
228
+ # A text string or an ordered list of input text parts.
229
+ content:,
230
+
231
+ type: nil,
72
232
 
73
- DecisionInputPartArray = T.let(
74
- OpenAI::Internal::Type::ArrayOf[union: OpenAI::DecisionInputPart],
75
- OpenAI::Internal::Type::Converter
233
+ role: :system
76
234
  )
235
+ end
236
+
237
+ sig do
238
+ override.returns(
239
+ {
240
+ content: OpenAI::DecisionInputMessage::System::Content::Variants,
241
+ role: Symbol,
242
+ type: OpenAI::DecisionInputMessage::System::Type::OrSymbol
243
+ }
244
+ )
245
+ end
246
+ def to_hash
247
+ end
248
+
249
+ # A text string or an ordered list of input text parts.
250
+ module Content
251
+ extend OpenAI::Internal::Type::Union
252
+
253
+ Variants = T.type_alias { T.any(String, T::Array[OpenAI::DecisionInputText]) }
254
+
255
+ sig { override.returns(T::Array[OpenAI::DecisionInputMessage::System::Content::Variants]) }
256
+ def self.variants
257
+ end
258
+
259
+ DecisionInputTextArray = T.let(
260
+ OpenAI::Internal::Type::ArrayOf[OpenAI::DecisionInputText],
261
+ OpenAI::Internal::Type::Converter
262
+ )
77
263
 
264
+ end
265
+
266
+ module Type
267
+ extend OpenAI::Internal::Type::Enum
268
+
269
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::DecisionInputMessage::System::Type) }
270
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
271
+
272
+ MESSAGE = T.let(:message, OpenAI::DecisionInputMessage::System::Type::TaggedSymbol)
273
+
274
+ sig { override.returns(T::Array[OpenAI::DecisionInputMessage::System::Type::TaggedSymbol]) }
275
+ def self.values
276
+ end
277
+ end
78
278
  end
79
279
 
80
- module Type
81
- extend OpenAI::Internal::Type::Enum
280
+ class Assistant < OpenAI::Internal::Type::BaseModel
281
+ OrHash = T.type_alias do
282
+ T.any(
283
+ OpenAI::DecisionInputMessage::Assistant,
284
+ OpenAI::Internal::AnyHash
285
+ )
286
+ end
287
+
288
+ # A text string or an ordered list of output text and refusal parts.
289
+ sig { returns(OpenAI::DecisionInputMessage::Assistant::Content::Variants) }
290
+ attr_accessor :content
291
+
292
+ sig { returns(Symbol) }
293
+ attr_accessor :role
294
+
295
+ # The phase of an assistant message.
296
+ sig { returns(T.nilable(OpenAI::DecisionInputMessage::Assistant::Phase::OrSymbol)) }
297
+ attr_accessor :phase
298
+
299
+ sig { returns(T.nilable(OpenAI::DecisionInputMessage::Assistant::Type::OrSymbol)) }
300
+ attr_reader :type
301
+
302
+ sig { params(type: OpenAI::DecisionInputMessage::Assistant::Type::OrSymbol).void }
303
+ attr_writer :type
304
+
305
+ # An assistant message containing output text or refusals.
306
+ sig do
307
+ params(
308
+
309
+ content: OpenAI::DecisionInputMessage::Assistant::Content::Variants,
310
+
311
+ phase: T.nilable(OpenAI::DecisionInputMessage::Assistant::Phase::OrSymbol),
312
+
313
+ type: OpenAI::DecisionInputMessage::Assistant::Type::OrSymbol,
314
+
315
+ role: Symbol
316
+ )
317
+ .returns(T.attached_class)
318
+ end
319
+ def self.new(
320
+
321
+ # A text string or an ordered list of output text and refusal parts.
322
+ content:,
323
+
324
+ # The phase of an assistant message.
325
+ phase: nil,
326
+
327
+ type: nil,
328
+
329
+ role: :assistant
330
+ )
331
+ end
332
+
333
+ sig do
334
+ override.returns(
335
+ {
336
+ content: OpenAI::DecisionInputMessage::Assistant::Content::Variants,
337
+ role: Symbol,
338
+ phase: T.nilable(OpenAI::DecisionInputMessage::Assistant::Phase::OrSymbol),
339
+ type: OpenAI::DecisionInputMessage::Assistant::Type::OrSymbol
340
+ }
341
+ )
342
+ end
343
+ def to_hash
344
+ end
345
+
346
+ # A text string or an ordered list of output text and refusal parts.
347
+ module Content
348
+ extend OpenAI::Internal::Type::Union
349
+
350
+ Variants = T.type_alias {
351
+ T.any(String, T::Array[OpenAI::DecisionInputMessage::Assistant::Content::Part::Variants])
352
+ }
353
+
354
+ module Part
355
+ extend OpenAI::Internal::Type::Union
356
+
357
+ Variants = T.type_alias {
358
+ T.any(
359
+ OpenAI::DecisionInputMessage::Assistant::Content::Part::OutputText,
360
+ OpenAI::DecisionInputMessage::Assistant::Content::Part::Refusal
361
+ )
362
+ }
363
+
364
+ class OutputText < OpenAI::Internal::Type::BaseModel
365
+ OrHash = T.type_alias do
366
+ T.any(
367
+ OpenAI::DecisionInputMessage::Assistant::Content::Part::OutputText,
368
+ OpenAI::Internal::AnyHash
369
+ )
370
+ end
82
371
 
83
- TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::DecisionInputMessage::Type) }
84
- OrSymbol = T.type_alias { T.any(Symbol, String) }
372
+ sig { returns(String) }
373
+ attr_accessor :text
85
374
 
86
- MESSAGE = T.let(:message, OpenAI::DecisionInputMessage::Type::TaggedSymbol)
375
+ sig { returns(Symbol) }
376
+ attr_accessor :type
87
377
 
88
- sig { override.returns(T::Array[OpenAI::DecisionInputMessage::Type::TaggedSymbol]) }
89
- def self.values
378
+ sig do
379
+ params(
380
+
381
+ text: String,
382
+
383
+ type: Symbol
384
+ )
385
+ .returns(T.attached_class)
386
+ end
387
+ def self.new(
388
+
389
+ text:,
390
+
391
+ type: :output_text
392
+ )
393
+ end
394
+
395
+ sig do
396
+ override.returns(
397
+ {text: String, type: Symbol}
398
+ )
399
+ end
400
+ def to_hash
401
+ end
402
+
403
+ end
404
+
405
+ class Refusal < OpenAI::Internal::Type::BaseModel
406
+ OrHash = T.type_alias do
407
+ T.any(
408
+ OpenAI::DecisionInputMessage::Assistant::Content::Part::Refusal,
409
+ OpenAI::Internal::AnyHash
410
+ )
411
+ end
412
+
413
+ sig { returns(String) }
414
+ attr_accessor :refusal
415
+
416
+ sig { returns(Symbol) }
417
+ attr_accessor :type
418
+
419
+ sig do
420
+ params(
421
+
422
+ refusal: String,
423
+
424
+ type: Symbol
425
+ )
426
+ .returns(T.attached_class)
427
+ end
428
+ def self.new(
429
+
430
+ refusal:,
431
+
432
+ type: :refusal
433
+ )
434
+ end
435
+
436
+ sig do
437
+ override.returns(
438
+ {refusal: String, type: Symbol}
439
+ )
440
+ end
441
+ def to_hash
442
+ end
443
+
444
+ end
445
+
446
+ sig { override.returns(T::Array[OpenAI::DecisionInputMessage::Assistant::Content::Part::Variants]) }
447
+ def self.variants
448
+ end
449
+
450
+ end
451
+
452
+ sig { override.returns(T::Array[OpenAI::DecisionInputMessage::Assistant::Content::Variants]) }
453
+ def self.variants
454
+ end
455
+
456
+ PartsArray = T.let(
457
+ OpenAI::Internal::Type::ArrayOf[union: OpenAI::DecisionInputMessage::Assistant::Content::Part],
458
+ OpenAI::Internal::Type::Converter
459
+ )
460
+
461
+ end
462
+
463
+ # The phase of an assistant message.
464
+ module Phase
465
+ extend OpenAI::Internal::Type::Enum
466
+
467
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::DecisionInputMessage::Assistant::Phase) }
468
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
469
+
470
+ COMMENTARY = T.let(:commentary, OpenAI::DecisionInputMessage::Assistant::Phase::TaggedSymbol)
471
+ FINAL_ANSWER = T.let(:final_answer, OpenAI::DecisionInputMessage::Assistant::Phase::TaggedSymbol)
472
+
473
+ sig { override.returns(T::Array[OpenAI::DecisionInputMessage::Assistant::Phase::TaggedSymbol]) }
474
+ def self.values
475
+ end
476
+ end
477
+
478
+ module Type
479
+ extend OpenAI::Internal::Type::Enum
480
+
481
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::DecisionInputMessage::Assistant::Type) }
482
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
483
+
484
+ MESSAGE = T.let(:message, OpenAI::DecisionInputMessage::Assistant::Type::TaggedSymbol)
485
+
486
+ sig { override.returns(T::Array[OpenAI::DecisionInputMessage::Assistant::Type::TaggedSymbol]) }
487
+ def self.values
488
+ end
90
489
  end
91
490
  end
92
491
 
492
+ sig { override.returns(T::Array[OpenAI::DecisionInputMessage::Variants]) }
493
+ def self.variants
494
+ end
495
+
93
496
  end
94
497
 
95
498
  end
@@ -11,7 +11,8 @@ module OpenAI
11
11
  Variants = T.type_alias do
12
12
  T.any(
13
13
  OpenAI::DecisionInputText,
14
- OpenAI::DecisionInputImage
14
+ OpenAI::DecisionInputImage,
15
+ OpenAI::DecisionInputJSON
15
16
  )
16
17
  end
17
18