openai 0.111.0 → 0.112.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 (230) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/README.md +1 -1
  4. data/lib/openai/models/beta/agent.rb +2 -2
  5. data/lib/openai/models/beta/agent_create_params.rb +2 -2
  6. data/lib/openai/models/beta/agent_session.rb +2 -2
  7. data/lib/openai/models/beta/agent_tool.rb +18 -1
  8. data/lib/openai/models/beta/agent_tool_param.rb +18 -1
  9. data/lib/openai/models/beta/agent_update_params.rb +2 -2
  10. data/lib/openai/models/beta/agents/session_create_params.rb +2 -2
  11. data/lib/openai/models/beta/beta_response_input_file.rb +23 -1
  12. data/lib/openai/models/beta/beta_response_input_file_content.rb +23 -1
  13. data/lib/openai/models/beta/beta_response_input_image.rb +23 -1
  14. data/lib/openai/models/beta/beta_response_input_image_content.rb +23 -1
  15. data/lib/openai/models/beta/beta_response_input_text.rb +23 -1
  16. data/lib/openai/models/beta/beta_response_input_text_content.rb +23 -1
  17. data/lib/openai/models/beta/beta_response_item.rb +28 -1
  18. data/lib/openai/models/beta/beta_response_output_item.rb +28 -1
  19. data/lib/openai/models/beta/beta_response_tool_search_output_item_param.rb +26 -15
  20. data/lib/openai/models/beta/beta_tool.rb +26 -15
  21. data/lib/openai/models/beta/persisted_agent_tool.rb +18 -1
  22. data/lib/openai/models/beta/persisted_agent_tool_param.rb +18 -1
  23. data/lib/openai/models/chat/chat_completion_content_part.rb +23 -1
  24. data/lib/openai/models/chat/chat_completion_content_part_image.rb +23 -1
  25. data/lib/openai/models/chat/chat_completion_content_part_input_audio.rb +23 -1
  26. data/lib/openai/models/chat/chat_completion_content_part_text.rb +23 -1
  27. data/lib/openai/models/conversations/computer_screenshot_content.rb +23 -1
  28. data/lib/openai/models/decision_create_params.rb +8 -4
  29. data/lib/openai/models/image_edit_params.rb +20 -4
  30. data/lib/openai/models/image_generate_params.rb +23 -7
  31. data/lib/openai/models/image_model.rb +2 -0
  32. data/lib/openai/models/live/client_delegation.rb +20 -1
  33. data/lib/openai/models/live/client_event.rb +4 -4
  34. data/lib/openai/models/live/commentary_append_event.rb +1 -1
  35. data/lib/openai/models/live/decision_assistant_message.rb +154 -0
  36. data/lib/openai/models/live/decision_choice_option.rb +35 -0
  37. data/lib/openai/models/live/decision_developer_message.rb +70 -0
  38. data/lib/openai/models/live/decision_input_text.rb +26 -0
  39. data/lib/openai/models/live/decision_item_create_event.rb +490 -131
  40. data/lib/openai/models/live/decision_item_created_event.rb +486 -131
  41. data/lib/openai/models/live/decision_json_object.rb +10 -0
  42. data/lib/openai/models/live/decision_question.rb +172 -0
  43. data/lib/openai/models/live/decision_stored_assistant_message.rb +152 -0
  44. data/lib/openai/models/live/decision_stored_developer_message.rb +68 -0
  45. data/lib/openai/models/live/decision_stored_system_message.rb +68 -0
  46. data/lib/openai/models/live/decision_stored_user_message.rb +195 -0
  47. data/lib/openai/models/live/decision_system_message.rb +70 -0
  48. data/lib/openai/models/live/decision_trigger.rb +6 -258
  49. data/lib/openai/models/live/decision_user_message.rb +193 -0
  50. data/lib/openai/models/live/decisions_delegation_config.rb +5 -250
  51. data/lib/openai/models/live/decisions_delegation_update_config.rb +5 -257
  52. data/lib/openai/models/live/fork_client_event.rb +4 -4
  53. data/lib/openai/models/live/fork_server_event.rb +2 -2
  54. data/lib/openai/models/live/fork_session_config.rb +20 -1
  55. data/lib/openai/models/live/input_audio_muted_event.rb +3 -2
  56. data/lib/openai/models/live/input_audio_unmute_event.rb +2 -1
  57. data/lib/openai/models/live/input_audio_unmuted_event.rb +3 -2
  58. data/lib/openai/models/live/instructions_append_event.rb +5 -2
  59. data/lib/openai/models/live/media_session_config.rb +39 -2
  60. data/lib/openai/models/live/media_session_fork_config.rb +20 -1
  61. data/lib/openai/models/live/server_event.rb +2 -2
  62. data/lib/openai/models/live/session_accept_params.rb +39 -2
  63. data/lib/openai/models/live/session_config.rb +39 -2
  64. data/lib/openai/models/live/session_resource.rb +39 -2
  65. data/lib/openai/models/live/session_update_config.rb +41 -2
  66. data/lib/openai/models/live/sideband_client_event.rb +4 -4
  67. data/lib/openai/models/live/sideband_server_event.rb +2 -2
  68. data/lib/openai/models/live/thinking_append_event.rb +1 -1
  69. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rb +10 -12
  70. data/lib/openai/models/realtime/realtime_error_event.rb +1 -1
  71. data/lib/openai/models/realtime/realtime_server_event.rb +1 -1
  72. data/lib/openai/models/realtime/realtime_translation_server_event.rb +1 -1
  73. data/lib/openai/models/responses/response_input_file.rb +23 -1
  74. data/lib/openai/models/responses/response_input_file_content.rb +23 -1
  75. data/lib/openai/models/responses/response_input_image.rb +23 -1
  76. data/lib/openai/models/responses/response_input_image_content.rb +23 -1
  77. data/lib/openai/models/responses/response_input_text.rb +23 -1
  78. data/lib/openai/models/responses/response_input_text_content.rb +23 -1
  79. data/lib/openai/models/responses/response_tool_search_output_item_param.rb +26 -15
  80. data/lib/openai/models/responses/tool.rb +26 -15
  81. data/lib/openai/resources/beta/agents.rb +2 -2
  82. data/lib/openai/resources/beta/responses.rb +2 -2
  83. data/lib/openai/resources/images.rb +18 -6
  84. data/lib/openai/resources/live/forks.rb +2 -2
  85. data/lib/openai/resources/live/sideband.rb +2 -2
  86. data/lib/openai/resources/live.rb +2 -2
  87. data/lib/openai/resources/realtime/translations.rb +2 -2
  88. data/lib/openai/resources/realtime.rb +2 -2
  89. data/lib/openai/resources/responses.rb +2 -2
  90. data/lib/openai/version.rb +1 -1
  91. data/lib/openai.rb +12 -0
  92. data/rbi/openai/models/beta/agent.rbi +2 -1
  93. data/rbi/openai/models/beta/agent_create_params.rbi +6 -3
  94. data/rbi/openai/models/beta/agent_session.rbi +2 -1
  95. data/rbi/openai/models/beta/agent_tool.rbi +40 -1
  96. data/rbi/openai/models/beta/agent_tool_param.rbi +40 -1
  97. data/rbi/openai/models/beta/agent_update_params.rbi +6 -3
  98. data/rbi/openai/models/beta/agents/session_create_params.rbi +6 -3
  99. data/rbi/openai/models/beta/beta_response_input_file.rbi +31 -1
  100. data/rbi/openai/models/beta/beta_response_input_file_content.rbi +39 -1
  101. data/rbi/openai/models/beta/beta_response_input_image.rbi +31 -1
  102. data/rbi/openai/models/beta/beta_response_input_image_content.rbi +39 -1
  103. data/rbi/openai/models/beta/beta_response_input_text.rbi +31 -1
  104. data/rbi/openai/models/beta/beta_response_input_text_content.rbi +39 -1
  105. data/rbi/openai/models/beta/beta_response_item.rbi +58 -1
  106. data/rbi/openai/models/beta/beta_response_output_item.rbi +58 -1
  107. data/rbi/openai/models/beta/beta_response_tool_search_output_item_param.rbi +24 -15
  108. data/rbi/openai/models/beta/beta_tool.rbi +24 -15
  109. data/rbi/openai/models/beta/persisted_agent_tool.rbi +40 -1
  110. data/rbi/openai/models/beta/persisted_agent_tool_param.rbi +40 -1
  111. data/rbi/openai/models/chat/chat_completion_content_part.rbi +43 -1
  112. data/rbi/openai/models/chat/chat_completion_content_part_image.rbi +41 -1
  113. data/rbi/openai/models/chat/chat_completion_content_part_input_audio.rbi +46 -1
  114. data/rbi/openai/models/chat/chat_completion_content_part_text.rbi +39 -1
  115. data/rbi/openai/models/conversations/computer_screenshot_content.rbi +48 -1
  116. data/rbi/openai/models/image_edit_params.rbi +12 -3
  117. data/rbi/openai/models/image_generate_params.rbi +15 -6
  118. data/rbi/openai/models/live/client_delegation.rbi +23 -1
  119. data/rbi/openai/models/live/commentary_append_event.rbi +1 -1
  120. data/rbi/openai/models/live/decision_assistant_message.rbi +247 -0
  121. data/rbi/openai/models/live/decision_choice_option.rbi +67 -0
  122. data/rbi/openai/models/live/decision_developer_message.rbi +109 -0
  123. data/rbi/openai/models/live/decision_input_text.rbi +55 -0
  124. data/rbi/openai/models/live/decision_item_create_event.rbi +765 -184
  125. data/rbi/openai/models/live/decision_item_created_event.rbi +737 -184
  126. data/rbi/openai/models/live/decision_json_object.rbi +16 -0
  127. data/rbi/openai/models/live/decision_question.rbi +300 -0
  128. data/rbi/openai/models/live/decision_stored_assistant_message.rbi +245 -0
  129. data/rbi/openai/models/live/decision_stored_developer_message.rbi +107 -0
  130. data/rbi/openai/models/live/decision_stored_system_message.rbi +107 -0
  131. data/rbi/openai/models/live/decision_stored_user_message.rbi +333 -0
  132. data/rbi/openai/models/live/decision_system_message.rbi +109 -0
  133. data/rbi/openai/models/live/decision_trigger.rbi +11 -383
  134. data/rbi/openai/models/live/decision_user_message.rbi +320 -0
  135. data/rbi/openai/models/live/decisions_delegation_config.rbi +10 -384
  136. data/rbi/openai/models/live/decisions_delegation_update_config.rbi +13 -387
  137. data/rbi/openai/models/live/fork_session_config.rbi +27 -1
  138. data/rbi/openai/models/live/input_audio_muted_event.rbi +3 -2
  139. data/rbi/openai/models/live/input_audio_unmute_event.rbi +2 -1
  140. data/rbi/openai/models/live/input_audio_unmuted_event.rbi +3 -2
  141. data/rbi/openai/models/live/instructions_append_event.rbi +5 -2
  142. data/rbi/openai/models/live/media_session_config.rbi +44 -2
  143. data/rbi/openai/models/live/media_session_fork_config.rbi +27 -1
  144. data/rbi/openai/models/live/session_accept_params.rbi +44 -2
  145. data/rbi/openai/models/live/session_config.rbi +44 -2
  146. data/rbi/openai/models/live/session_resource.rbi +44 -2
  147. data/rbi/openai/models/live/session_update_config.rbi +54 -2
  148. data/rbi/openai/models/live/thinking_append_event.rbi +1 -1
  149. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbi +10 -12
  150. data/rbi/openai/models/realtime/realtime_error_event.rbi +1 -1
  151. data/rbi/openai/models/responses/response_input_file.rbi +31 -1
  152. data/rbi/openai/models/responses/response_input_file_content.rbi +39 -1
  153. data/rbi/openai/models/responses/response_input_image.rbi +33 -1
  154. data/rbi/openai/models/responses/response_input_image_content.rbi +41 -1
  155. data/rbi/openai/models/responses/response_input_text.rbi +31 -1
  156. data/rbi/openai/models/responses/response_input_text_content.rbi +39 -1
  157. data/rbi/openai/models/responses/response_tool_search_output_item_param.rbi +24 -15
  158. data/rbi/openai/models/responses/tool.rbi +24 -15
  159. data/rbi/openai/resources/beta/agents.rbi +4 -2
  160. data/rbi/openai/resources/beta/responses.rbi +8 -1
  161. data/rbi/openai/resources/images.rbi +18 -6
  162. data/rbi/openai/resources/live/forks.rbi +8 -1
  163. data/rbi/openai/resources/live/sideband.rbi +8 -1
  164. data/rbi/openai/resources/live.rbi +8 -1
  165. data/rbi/openai/resources/realtime/translations.rbi +8 -1
  166. data/rbi/openai/resources/realtime.rbi +8 -1
  167. data/rbi/openai/resources/responses.rbi +8 -1
  168. data/sig/openai/models/beta/agent_tool.rbs +14 -0
  169. data/sig/openai/models/beta/agent_tool_param.rbs +14 -0
  170. data/sig/openai/models/beta/beta_response_input_file.rbs +34 -3
  171. data/sig/openai/models/beta/beta_response_input_file_content.rbs +34 -3
  172. data/sig/openai/models/beta/beta_response_input_image.rbs +34 -3
  173. data/sig/openai/models/beta/beta_response_input_image_content.rbs +34 -3
  174. data/sig/openai/models/beta/beta_response_input_text.rbs +34 -3
  175. data/sig/openai/models/beta/beta_response_input_text_content.rbs +34 -3
  176. data/sig/openai/models/beta/beta_response_item.rbs +34 -3
  177. data/sig/openai/models/beta/beta_response_output_item.rbs +34 -3
  178. data/sig/openai/models/beta/beta_response_tool_search_output_item_param.rbs +24 -15
  179. data/sig/openai/models/beta/beta_tool.rbs +24 -15
  180. data/sig/openai/models/beta/persisted_agent_tool.rbs +14 -0
  181. data/sig/openai/models/beta/persisted_agent_tool_param.rbs +14 -0
  182. data/sig/openai/models/chat/chat_completion_content_part.rbs +34 -3
  183. data/sig/openai/models/chat/chat_completion_content_part_image.rbs +34 -3
  184. data/sig/openai/models/chat/chat_completion_content_part_input_audio.rbs +34 -3
  185. data/sig/openai/models/chat/chat_completion_content_part_text.rbs +34 -3
  186. data/sig/openai/models/conversations/computer_screenshot_content.rbs +34 -3
  187. data/sig/openai/models/image_edit_params.rbs +8 -2
  188. data/sig/openai/models/image_generate_params.rbs +10 -4
  189. data/sig/openai/models/live/client_delegation.rbs +30 -3
  190. data/sig/openai/models/live/decision_assistant_message.rbs +134 -0
  191. data/sig/openai/models/live/decision_choice_option.rbs +37 -0
  192. data/sig/openai/models/live/decision_developer_message.rbs +67 -0
  193. data/sig/openai/models/live/decision_input_text.rbs +20 -0
  194. data/sig/openai/models/live/decision_item_create_event.rbs +413 -131
  195. data/sig/openai/models/live/decision_item_created_event.rbs +401 -131
  196. data/sig/openai/models/live/decision_json_object.rbs +9 -0
  197. data/sig/openai/models/live/decision_question.rbs +164 -0
  198. data/sig/openai/models/live/decision_stored_assistant_message.rbs +131 -0
  199. data/sig/openai/models/live/decision_stored_developer_message.rbs +64 -0
  200. data/sig/openai/models/live/decision_stored_system_message.rbs +64 -0
  201. data/sig/openai/models/live/decision_stored_user_message.rbs +177 -0
  202. data/sig/openai/models/live/decision_system_message.rbs +67 -0
  203. data/sig/openai/models/live/decision_trigger.rbs +8 -208
  204. data/sig/openai/models/live/decision_user_message.rbs +180 -0
  205. data/sig/openai/models/live/decisions_delegation_config.rbs +6 -204
  206. data/sig/openai/models/live/decisions_delegation_update_config.rbs +8 -206
  207. data/sig/openai/models/live/fork_session_config.rbs +26 -0
  208. data/sig/openai/models/live/media_session_config.rbs +53 -4
  209. data/sig/openai/models/live/media_session_fork_config.rbs +26 -0
  210. data/sig/openai/models/live/session_accept_params.rbs +53 -4
  211. data/sig/openai/models/live/session_config.rbs +53 -4
  212. data/sig/openai/models/live/session_resource.rbs +53 -4
  213. data/sig/openai/models/live/session_update_config.rbs +52 -0
  214. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbs +10 -12
  215. data/sig/openai/models/responses/response_input_file.rbs +34 -3
  216. data/sig/openai/models/responses/response_input_file_content.rbs +34 -3
  217. data/sig/openai/models/responses/response_input_image.rbs +34 -3
  218. data/sig/openai/models/responses/response_input_image_content.rbs +34 -3
  219. data/sig/openai/models/responses/response_input_text.rbs +34 -3
  220. data/sig/openai/models/responses/response_input_text_content.rbs +34 -3
  221. data/sig/openai/models/responses/response_tool_search_output_item_param.rbs +24 -15
  222. data/sig/openai/models/responses/tool.rbs +24 -15
  223. data/sig/openai/resources/beta/responses.rbs +2 -1
  224. data/sig/openai/resources/live/forks.rbs +2 -1
  225. data/sig/openai/resources/live/sideband.rbs +2 -1
  226. data/sig/openai/resources/live.rbs +2 -1
  227. data/sig/openai/resources/realtime/translations.rbs +2 -1
  228. data/sig/openai/resources/realtime.rbs +2 -1
  229. data/sig/openai/resources/responses.rbs +2 -1
  230. metadata +37 -1
@@ -0,0 +1,320 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Live
7
+
8
+ class DecisionUserMessage < OpenAI::Internal::Type::BaseModel
9
+
10
+ OrHash = T.type_alias do
11
+ T.any(
12
+ OpenAI::Live::DecisionUserMessage,
13
+ OpenAI::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # The text input to the model.
18
+ sig { returns(OpenAI::Live::DecisionUserMessage::Content::Variants) }
19
+ attr_accessor :content
20
+
21
+ # The message role. Always `user`.
22
+ sig { returns(Symbol) }
23
+ attr_accessor :role
24
+
25
+ # The unique ID of this message item.
26
+ sig { returns(T.nilable(String)) }
27
+ attr_accessor :id
28
+
29
+ sig { returns(T.nilable(OpenAI::Live::DecisionUserMessage::Type::OrSymbol)) }
30
+ attr_reader :type
31
+
32
+ sig { params(type: OpenAI::Live::DecisionUserMessage::Type::OrSymbol).void }
33
+ attr_writer :type
34
+
35
+ sig do
36
+ params(
37
+
38
+ content: OpenAI::Live::DecisionUserMessage::Content::Variants,
39
+
40
+ id: T.nilable(String),
41
+
42
+ type: OpenAI::Live::DecisionUserMessage::Type::OrSymbol,
43
+
44
+ role: Symbol
45
+ )
46
+ .returns(T.attached_class)
47
+ end
48
+ def self.new(
49
+
50
+ # The text input to the model.
51
+ content:,
52
+
53
+ # The unique ID of this message item.
54
+ id: nil,
55
+
56
+ type: nil,
57
+
58
+ # The message role. Always `user`.
59
+
60
+ role: :user
61
+ )
62
+ end
63
+
64
+ sig do
65
+ override.returns(
66
+ {
67
+ content: OpenAI::Live::DecisionUserMessage::Content::Variants,
68
+ role: Symbol,
69
+ id: T.nilable(String),
70
+ type: OpenAI::Live::DecisionUserMessage::Type::OrSymbol
71
+ }
72
+ )
73
+ end
74
+ def to_hash
75
+ end
76
+
77
+ # The text input to the model.
78
+ module Content
79
+ extend OpenAI::Internal::Type::Union
80
+
81
+ Variants = T.type_alias {
82
+ T.any(String, T::Array[OpenAI::Live::DecisionUserMessage::Content::Part::Variants])
83
+ }
84
+
85
+ module Part
86
+ extend OpenAI::Internal::Type::Union
87
+
88
+ Variants = T.type_alias {
89
+ T.any(
90
+ OpenAI::Live::DecisionUserMessage::Content::Part::InputText,
91
+ OpenAI::Live::DecisionUserMessage::Content::Part::InputImage,
92
+ OpenAI::Live::DecisionUserMessage::Content::Part::InputJSON
93
+ )
94
+ }
95
+
96
+ class InputText < OpenAI::Internal::Type::BaseModel
97
+ OrHash = T.type_alias do
98
+ T.any(
99
+ OpenAI::Live::DecisionUserMessage::Content::Part::InputText,
100
+ OpenAI::Internal::AnyHash
101
+ )
102
+ end
103
+
104
+ # The text input to the model.
105
+ sig { returns(String) }
106
+ attr_accessor :text
107
+
108
+ sig { returns(Symbol) }
109
+ attr_accessor :type
110
+
111
+ sig do
112
+ params(
113
+
114
+ text: String,
115
+
116
+ type: Symbol
117
+ )
118
+ .returns(T.attached_class)
119
+ end
120
+ def self.new(
121
+
122
+ # The text input to the model.
123
+ text:,
124
+
125
+ type: :input_text
126
+ )
127
+ end
128
+
129
+ sig do
130
+ override.returns(
131
+ {text: String, type: Symbol}
132
+ )
133
+ end
134
+ def to_hash
135
+ end
136
+
137
+ end
138
+
139
+ class InputImage < OpenAI::Internal::Type::BaseModel
140
+ OrHash = T.type_alias do
141
+ T.any(
142
+ OpenAI::Live::DecisionUserMessage::Content::Part::InputImage,
143
+ OpenAI::Internal::AnyHash
144
+ )
145
+ end
146
+
147
+ # A base64-encoded image data URL or a publicly accessible HTTP(S) image URL.
148
+ sig { returns(String) }
149
+ attr_accessor :image_url
150
+
151
+ sig { returns(Symbol) }
152
+ attr_accessor :type
153
+
154
+ # The detail level of the image to be sent to the model. One of `high`, `low`,
155
+ # `auto`, or `original`. Defaults to `auto`.
156
+ sig {
157
+ returns(T.nilable(OpenAI::Live::DecisionUserMessage::Content::Part::InputImage::Detail::OrSymbol))
158
+ }
159
+ attr_accessor :detail
160
+
161
+ sig do
162
+ params(
163
+
164
+ image_url: String,
165
+
166
+ detail: T.nilable(OpenAI::Live::DecisionUserMessage::Content::Part::InputImage::Detail::OrSymbol),
167
+
168
+ type: Symbol
169
+ )
170
+ .returns(T.attached_class)
171
+ end
172
+ def self.new(
173
+
174
+ # A base64-encoded image data URL or a publicly accessible HTTP(S) image URL.
175
+ image_url:,
176
+
177
+ # The detail level of the image to be sent to the model. One of `high`, `low`,
178
+ # `auto`, or `original`. Defaults to `auto`.
179
+ detail: nil,
180
+
181
+ type: :input_image
182
+ )
183
+ end
184
+
185
+ sig do
186
+ override.returns(
187
+ {
188
+ image_url: String,
189
+ type: Symbol,
190
+ detail: T.nilable(OpenAI::Live::DecisionUserMessage::Content::Part::InputImage::Detail::OrSymbol)
191
+ }
192
+ )
193
+ end
194
+ def to_hash
195
+ end
196
+
197
+ # The detail level of the image to be sent to the model. One of `high`, `low`,
198
+ # `auto`, or `original`. Defaults to `auto`.
199
+ module Detail
200
+ extend OpenAI::Internal::Type::Enum
201
+
202
+ TaggedSymbol = T.type_alias {
203
+ T.all(Symbol, OpenAI::Live::DecisionUserMessage::Content::Part::InputImage::Detail)
204
+ }
205
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
206
+
207
+ LOW = T.let(:low, OpenAI::Live::DecisionUserMessage::Content::Part::InputImage::Detail::TaggedSymbol)
208
+ HIGH = T.let(:high, OpenAI::Live::DecisionUserMessage::Content::Part::InputImage::Detail::TaggedSymbol)
209
+ AUTO = T.let(:auto, OpenAI::Live::DecisionUserMessage::Content::Part::InputImage::Detail::TaggedSymbol)
210
+ ORIGINAL = T.let(
211
+ :original,
212
+ OpenAI::Live::DecisionUserMessage::Content::Part::InputImage::Detail::TaggedSymbol
213
+ )
214
+
215
+ sig {
216
+ override.returns(
217
+ T::Array[OpenAI::Live::DecisionUserMessage::Content::Part::InputImage::Detail::TaggedSymbol]
218
+ )
219
+ }
220
+ def self.values
221
+ end
222
+ end
223
+ end
224
+
225
+ class InputJSON < OpenAI::Internal::Type::BaseModel
226
+ OrHash = T.type_alias do
227
+ T.any(
228
+ OpenAI::Live::DecisionUserMessage::Content::Part::InputJSON,
229
+ OpenAI::Internal::AnyHash
230
+ )
231
+ end
232
+
233
+ sig { returns(T.any(T::Hash[Symbol, T.anything], T::Array[T::Hash[Symbol, T.anything]])) }
234
+ attr_accessor :data
235
+
236
+ sig { returns(Symbol) }
237
+ attr_accessor :type
238
+
239
+ sig do
240
+ params(
241
+
242
+ data: T.any(T::Hash[Symbol, T.anything], T::Array[T::Hash[Symbol, T.anything]]),
243
+
244
+ type: Symbol
245
+ )
246
+ .returns(T.attached_class)
247
+ end
248
+ def self.new(
249
+
250
+ data:,
251
+
252
+ type: :input_json
253
+ )
254
+ end
255
+
256
+ sig do
257
+ override.returns(
258
+ {data: T.any(T::Hash[Symbol, T.anything], T::Array[T::Hash[Symbol, T.anything]]), type: Symbol}
259
+ )
260
+ end
261
+ def to_hash
262
+ end
263
+
264
+ module Data
265
+ extend OpenAI::Internal::Type::Union
266
+
267
+ Variants = T.type_alias { T.any(T::Hash[Symbol, T.anything], T::Array[T::Hash[Symbol, T.anything]]) }
268
+
269
+ sig {
270
+ override.returns(
271
+ T::Array[OpenAI::Live::DecisionUserMessage::Content::Part::InputJSON::Data::Variants]
272
+ )
273
+ }
274
+ def self.variants
275
+ end
276
+
277
+ DecisionJSONObjectArray = T.let(
278
+ OpenAI::Internal::Type::ArrayOf[OpenAI::Internal::Type::HashOf[OpenAI::Internal::Type::Unknown]],
279
+ OpenAI::Internal::Type::Converter
280
+ )
281
+
282
+ end
283
+ end
284
+
285
+ sig { override.returns(T::Array[OpenAI::Live::DecisionUserMessage::Content::Part::Variants]) }
286
+ def self.variants
287
+ end
288
+
289
+ end
290
+
291
+ sig { override.returns(T::Array[OpenAI::Live::DecisionUserMessage::Content::Variants]) }
292
+ def self.variants
293
+ end
294
+
295
+ PartsArray = T.let(
296
+ OpenAI::Internal::Type::ArrayOf[union: OpenAI::Live::DecisionUserMessage::Content::Part],
297
+ OpenAI::Internal::Type::Converter
298
+ )
299
+
300
+ end
301
+
302
+ module Type
303
+ extend OpenAI::Internal::Type::Enum
304
+
305
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Live::DecisionUserMessage::Type) }
306
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
307
+
308
+ MESSAGE = T.let(:message, OpenAI::Live::DecisionUserMessage::Type::TaggedSymbol)
309
+
310
+ sig { override.returns(T::Array[OpenAI::Live::DecisionUserMessage::Type::TaggedSymbol]) }
311
+ def self.values
312
+ end
313
+ end
314
+
315
+ end
316
+
317
+ end
318
+
319
+ end
320
+ end