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,107 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Live
7
+
8
+ class DecisionStoredSystemMessage < OpenAI::Internal::Type::BaseModel
9
+
10
+ OrHash = T.type_alias do
11
+ T.any(
12
+ OpenAI::Live::DecisionStoredSystemMessage,
13
+ OpenAI::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ sig { returns(String) }
18
+ attr_accessor :id
19
+
20
+ # The text input to the model.
21
+ sig { returns(OpenAI::Live::DecisionStoredSystemMessage::Content::Variants) }
22
+ attr_accessor :content
23
+
24
+ sig { returns(Symbol) }
25
+ attr_accessor :role
26
+
27
+ sig { returns(T.nilable(OpenAI::Live::DecisionStoredSystemMessage::Type::OrSymbol)) }
28
+ attr_reader :type
29
+
30
+ sig { params(type: OpenAI::Live::DecisionStoredSystemMessage::Type::OrSymbol).void }
31
+ attr_writer :type
32
+
33
+ sig do
34
+ params(
35
+
36
+ id: String,
37
+
38
+ content: OpenAI::Live::DecisionStoredSystemMessage::Content::Variants,
39
+
40
+ type: OpenAI::Live::DecisionStoredSystemMessage::Type::OrSymbol,
41
+
42
+ role: Symbol
43
+ )
44
+ .returns(T.attached_class)
45
+ end
46
+ def self.new(
47
+
48
+ id:,
49
+
50
+ # The text input to the model.
51
+ content:,
52
+
53
+ type: nil,
54
+
55
+ role: :system
56
+ )
57
+ end
58
+
59
+ sig do
60
+ override.returns(
61
+ {
62
+ id: String,
63
+ content: OpenAI::Live::DecisionStoredSystemMessage::Content::Variants,
64
+ role: Symbol,
65
+ type: OpenAI::Live::DecisionStoredSystemMessage::Type::OrSymbol
66
+ }
67
+ )
68
+ end
69
+ def to_hash
70
+ end
71
+
72
+ # The text input to the model.
73
+ module Content
74
+ extend OpenAI::Internal::Type::Union
75
+
76
+ Variants = T.type_alias { T.any(String, T::Array[OpenAI::Live::DecisionInputText]) }
77
+
78
+ sig { override.returns(T::Array[OpenAI::Live::DecisionStoredSystemMessage::Content::Variants]) }
79
+ def self.variants
80
+ end
81
+
82
+ DecisionInputTextArray = T.let(
83
+ OpenAI::Internal::Type::ArrayOf[OpenAI::Live::DecisionInputText],
84
+ OpenAI::Internal::Type::Converter
85
+ )
86
+
87
+ end
88
+
89
+ module Type
90
+ extend OpenAI::Internal::Type::Enum
91
+
92
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Live::DecisionStoredSystemMessage::Type) }
93
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
94
+
95
+ MESSAGE = T.let(:message, OpenAI::Live::DecisionStoredSystemMessage::Type::TaggedSymbol)
96
+
97
+ sig { override.returns(T::Array[OpenAI::Live::DecisionStoredSystemMessage::Type::TaggedSymbol]) }
98
+ def self.values
99
+ end
100
+ end
101
+
102
+ end
103
+
104
+ end
105
+
106
+ end
107
+ end
@@ -0,0 +1,333 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Live
7
+
8
+ class DecisionStoredUserMessage < OpenAI::Internal::Type::BaseModel
9
+
10
+ OrHash = T.type_alias do
11
+ T.any(
12
+ OpenAI::Live::DecisionStoredUserMessage,
13
+ OpenAI::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ sig { returns(String) }
18
+ attr_accessor :id
19
+
20
+ # The text input to the model.
21
+ sig { returns(OpenAI::Live::DecisionStoredUserMessage::Content::Variants) }
22
+ attr_accessor :content
23
+
24
+ # The message role. Always `user`.
25
+ sig { returns(Symbol) }
26
+ attr_accessor :role
27
+
28
+ sig { returns(T.nilable(OpenAI::Live::DecisionStoredUserMessage::Type::OrSymbol)) }
29
+ attr_reader :type
30
+
31
+ sig { params(type: OpenAI::Live::DecisionStoredUserMessage::Type::OrSymbol).void }
32
+ attr_writer :type
33
+
34
+ sig do
35
+ params(
36
+
37
+ id: String,
38
+
39
+ content: OpenAI::Live::DecisionStoredUserMessage::Content::Variants,
40
+
41
+ type: OpenAI::Live::DecisionStoredUserMessage::Type::OrSymbol,
42
+
43
+ role: Symbol
44
+ )
45
+ .returns(T.attached_class)
46
+ end
47
+ def self.new(
48
+
49
+ id:,
50
+
51
+ # The text input to the model.
52
+ content:,
53
+
54
+ type: nil,
55
+
56
+ # The message role. Always `user`.
57
+
58
+ role: :user
59
+ )
60
+ end
61
+
62
+ sig do
63
+ override.returns(
64
+ {
65
+ id: String,
66
+ content: OpenAI::Live::DecisionStoredUserMessage::Content::Variants,
67
+ role: Symbol,
68
+ type: OpenAI::Live::DecisionStoredUserMessage::Type::OrSymbol
69
+ }
70
+ )
71
+ end
72
+ def to_hash
73
+ end
74
+
75
+ # The text input to the model.
76
+ module Content
77
+ extend OpenAI::Internal::Type::Union
78
+
79
+ Variants = T.type_alias {
80
+ T.any(String, T::Array[OpenAI::Live::DecisionStoredUserMessage::Content::Part::Variants])
81
+ }
82
+
83
+ module Part
84
+ extend OpenAI::Internal::Type::Union
85
+
86
+ Variants = T.type_alias {
87
+ T.any(
88
+ OpenAI::Live::DecisionStoredUserMessage::Content::Part::InputText,
89
+ OpenAI::Live::DecisionStoredUserMessage::Content::Part::InputImage,
90
+ OpenAI::Live::DecisionStoredUserMessage::Content::Part::InputJSON
91
+ )
92
+ }
93
+
94
+ class InputText < OpenAI::Internal::Type::BaseModel
95
+ OrHash = T.type_alias do
96
+ T.any(
97
+ OpenAI::Live::DecisionStoredUserMessage::Content::Part::InputText,
98
+ OpenAI::Internal::AnyHash
99
+ )
100
+ end
101
+
102
+ # The text input to the model.
103
+ sig { returns(String) }
104
+ attr_accessor :text
105
+
106
+ sig { returns(Symbol) }
107
+ attr_accessor :type
108
+
109
+ sig do
110
+ params(
111
+
112
+ text: String,
113
+
114
+ type: Symbol
115
+ )
116
+ .returns(T.attached_class)
117
+ end
118
+ def self.new(
119
+
120
+ # The text input to the model.
121
+ text:,
122
+
123
+ type: :input_text
124
+ )
125
+ end
126
+
127
+ sig do
128
+ override.returns(
129
+ {text: String, type: Symbol}
130
+ )
131
+ end
132
+ def to_hash
133
+ end
134
+
135
+ end
136
+
137
+ class InputImage < OpenAI::Internal::Type::BaseModel
138
+ OrHash = T.type_alias do
139
+ T.any(
140
+ OpenAI::Live::DecisionStoredUserMessage::Content::Part::InputImage,
141
+ OpenAI::Internal::AnyHash
142
+ )
143
+ end
144
+
145
+ # A base64-encoded image data URL or a publicly accessible HTTP(S) image URL.
146
+ sig { returns(String) }
147
+ attr_accessor :image_url
148
+
149
+ sig { returns(Symbol) }
150
+ attr_accessor :type
151
+
152
+ # The detail level of the image to be sent to the model. One of `high`, `low`,
153
+ # `auto`, or `original`. Defaults to `auto`.
154
+ sig {
155
+ returns(
156
+ T.nilable(OpenAI::Live::DecisionStoredUserMessage::Content::Part::InputImage::Detail::TaggedSymbol)
157
+ )
158
+ }
159
+ attr_accessor :detail
160
+
161
+ sig do
162
+ params(
163
+
164
+ image_url: String,
165
+
166
+ detail: T.nilable(
167
+ OpenAI::Live::DecisionStoredUserMessage::Content::Part::InputImage::Detail::OrSymbol
168
+ ),
169
+
170
+ type: Symbol
171
+ )
172
+ .returns(T.attached_class)
173
+ end
174
+ def self.new(
175
+
176
+ # A base64-encoded image data URL or a publicly accessible HTTP(S) image URL.
177
+ image_url:,
178
+
179
+ # The detail level of the image to be sent to the model. One of `high`, `low`,
180
+ # `auto`, or `original`. Defaults to `auto`.
181
+ detail: nil,
182
+
183
+ type: :input_image
184
+ )
185
+ end
186
+
187
+ sig do
188
+ override.returns(
189
+ {
190
+ image_url: String,
191
+ type: Symbol,
192
+ detail: T.nilable(
193
+ OpenAI::Live::DecisionStoredUserMessage::Content::Part::InputImage::Detail::TaggedSymbol
194
+ )
195
+ }
196
+ )
197
+ end
198
+ def to_hash
199
+ end
200
+
201
+ # The detail level of the image to be sent to the model. One of `high`, `low`,
202
+ # `auto`, or `original`. Defaults to `auto`.
203
+ module Detail
204
+ extend OpenAI::Internal::Type::Enum
205
+
206
+ TaggedSymbol = T.type_alias {
207
+ T.all(Symbol, OpenAI::Live::DecisionStoredUserMessage::Content::Part::InputImage::Detail)
208
+ }
209
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
210
+
211
+ LOW = T.let(
212
+ :low,
213
+ OpenAI::Live::DecisionStoredUserMessage::Content::Part::InputImage::Detail::TaggedSymbol
214
+ )
215
+ HIGH = T.let(
216
+ :high,
217
+ OpenAI::Live::DecisionStoredUserMessage::Content::Part::InputImage::Detail::TaggedSymbol
218
+ )
219
+ AUTO = T.let(
220
+ :auto,
221
+ OpenAI::Live::DecisionStoredUserMessage::Content::Part::InputImage::Detail::TaggedSymbol
222
+ )
223
+ ORIGINAL = T.let(
224
+ :original,
225
+ OpenAI::Live::DecisionStoredUserMessage::Content::Part::InputImage::Detail::TaggedSymbol
226
+ )
227
+
228
+ sig {
229
+ override.returns(
230
+ T::Array[OpenAI::Live::DecisionStoredUserMessage::Content::Part::InputImage::Detail::TaggedSymbol]
231
+ )
232
+ }
233
+ def self.values
234
+ end
235
+ end
236
+ end
237
+
238
+ class InputJSON < OpenAI::Internal::Type::BaseModel
239
+ OrHash = T.type_alias do
240
+ T.any(
241
+ OpenAI::Live::DecisionStoredUserMessage::Content::Part::InputJSON,
242
+ OpenAI::Internal::AnyHash
243
+ )
244
+ end
245
+
246
+ sig { returns(T.any(T::Hash[Symbol, T.anything], T::Array[T::Hash[Symbol, T.anything]])) }
247
+ attr_accessor :data
248
+
249
+ sig { returns(Symbol) }
250
+ attr_accessor :type
251
+
252
+ sig do
253
+ params(
254
+
255
+ data: T.any(T::Hash[Symbol, T.anything], T::Array[T::Hash[Symbol, T.anything]]),
256
+
257
+ type: Symbol
258
+ )
259
+ .returns(T.attached_class)
260
+ end
261
+ def self.new(
262
+
263
+ data:,
264
+
265
+ type: :input_json
266
+ )
267
+ end
268
+
269
+ sig do
270
+ override.returns(
271
+ {data: T.any(T::Hash[Symbol, T.anything], T::Array[T::Hash[Symbol, T.anything]]), type: Symbol}
272
+ )
273
+ end
274
+ def to_hash
275
+ end
276
+
277
+ module Data
278
+ extend OpenAI::Internal::Type::Union
279
+
280
+ Variants = T.type_alias { T.any(T::Hash[Symbol, T.anything], T::Array[T::Hash[Symbol, T.anything]]) }
281
+
282
+ sig {
283
+ override.returns(
284
+ T::Array[OpenAI::Live::DecisionStoredUserMessage::Content::Part::InputJSON::Data::Variants]
285
+ )
286
+ }
287
+ def self.variants
288
+ end
289
+
290
+ DecisionJSONObjectArray = T.let(
291
+ OpenAI::Internal::Type::ArrayOf[OpenAI::Internal::Type::HashOf[OpenAI::Internal::Type::Unknown]],
292
+ OpenAI::Internal::Type::Converter
293
+ )
294
+
295
+ end
296
+ end
297
+
298
+ sig { override.returns(T::Array[OpenAI::Live::DecisionStoredUserMessage::Content::Part::Variants]) }
299
+ def self.variants
300
+ end
301
+
302
+ end
303
+
304
+ sig { override.returns(T::Array[OpenAI::Live::DecisionStoredUserMessage::Content::Variants]) }
305
+ def self.variants
306
+ end
307
+
308
+ PartsArray = T.let(
309
+ OpenAI::Internal::Type::ArrayOf[union: OpenAI::Live::DecisionStoredUserMessage::Content::Part],
310
+ OpenAI::Internal::Type::Converter
311
+ )
312
+
313
+ end
314
+
315
+ module Type
316
+ extend OpenAI::Internal::Type::Enum
317
+
318
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Live::DecisionStoredUserMessage::Type) }
319
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
320
+
321
+ MESSAGE = T.let(:message, OpenAI::Live::DecisionStoredUserMessage::Type::TaggedSymbol)
322
+
323
+ sig { override.returns(T::Array[OpenAI::Live::DecisionStoredUserMessage::Type::TaggedSymbol]) }
324
+ def self.values
325
+ end
326
+ end
327
+
328
+ end
329
+
330
+ end
331
+
332
+ end
333
+ end
@@ -0,0 +1,109 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Live
7
+
8
+ class DecisionSystemMessage < OpenAI::Internal::Type::BaseModel
9
+
10
+ OrHash = T.type_alias do
11
+ T.any(
12
+ OpenAI::Live::DecisionSystemMessage,
13
+ OpenAI::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # The text input to the model.
18
+ sig { returns(OpenAI::Live::DecisionSystemMessage::Content::Variants) }
19
+ attr_accessor :content
20
+
21
+ sig { returns(Symbol) }
22
+ attr_accessor :role
23
+
24
+ # The unique ID of this message item.
25
+ sig { returns(T.nilable(String)) }
26
+ attr_accessor :id
27
+
28
+ sig { returns(T.nilable(OpenAI::Live::DecisionSystemMessage::Type::OrSymbol)) }
29
+ attr_reader :type
30
+
31
+ sig { params(type: OpenAI::Live::DecisionSystemMessage::Type::OrSymbol).void }
32
+ attr_writer :type
33
+
34
+ sig do
35
+ params(
36
+
37
+ content: OpenAI::Live::DecisionSystemMessage::Content::Variants,
38
+
39
+ id: T.nilable(String),
40
+
41
+ type: OpenAI::Live::DecisionSystemMessage::Type::OrSymbol,
42
+
43
+ role: Symbol
44
+ )
45
+ .returns(T.attached_class)
46
+ end
47
+ def self.new(
48
+
49
+ # The text input to the model.
50
+ content:,
51
+
52
+ # The unique ID of this message item.
53
+ id: nil,
54
+
55
+ type: nil,
56
+
57
+ role: :system
58
+ )
59
+ end
60
+
61
+ sig do
62
+ override.returns(
63
+ {
64
+ content: OpenAI::Live::DecisionSystemMessage::Content::Variants,
65
+ role: Symbol,
66
+ id: T.nilable(String),
67
+ type: OpenAI::Live::DecisionSystemMessage::Type::OrSymbol
68
+ }
69
+ )
70
+ end
71
+ def to_hash
72
+ end
73
+
74
+ # The text input to the model.
75
+ module Content
76
+ extend OpenAI::Internal::Type::Union
77
+
78
+ Variants = T.type_alias { T.any(String, T::Array[OpenAI::Live::DecisionInputText]) }
79
+
80
+ sig { override.returns(T::Array[OpenAI::Live::DecisionSystemMessage::Content::Variants]) }
81
+ def self.variants
82
+ end
83
+
84
+ DecisionInputTextArray = T.let(
85
+ OpenAI::Internal::Type::ArrayOf[OpenAI::Live::DecisionInputText],
86
+ OpenAI::Internal::Type::Converter
87
+ )
88
+
89
+ end
90
+
91
+ module Type
92
+ extend OpenAI::Internal::Type::Enum
93
+
94
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Live::DecisionSystemMessage::Type) }
95
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
96
+
97
+ MESSAGE = T.let(:message, OpenAI::Live::DecisionSystemMessage::Type::TaggedSymbol)
98
+
99
+ sig { override.returns(T::Array[OpenAI::Live::DecisionSystemMessage::Type::TaggedSymbol]) }
100
+ def self.values
101
+ end
102
+ end
103
+
104
+ end
105
+
106
+ end
107
+
108
+ end
109
+ end