openai 0.110.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 (255) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +20 -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 +802 -28
  29. data/lib/openai/models/decision_input_json.rb +45 -0
  30. data/lib/openai/models/decision_input_message.rb +304 -48
  31. data/lib/openai/models/decision_input_part.rb +4 -1
  32. data/lib/openai/models/decision_question_input_image.rb +54 -0
  33. data/lib/openai/models/decision_question_input_part.rb +23 -0
  34. data/lib/openai/models/decision_question_input_text.rb +21 -0
  35. data/lib/openai/models/image_edit_params.rb +20 -4
  36. data/lib/openai/models/image_generate_params.rb +23 -7
  37. data/lib/openai/models/image_model.rb +2 -0
  38. data/lib/openai/models/live/client_delegation.rb +20 -1
  39. data/lib/openai/models/live/client_event.rb +4 -4
  40. data/lib/openai/models/live/commentary_append_event.rb +1 -1
  41. data/lib/openai/models/live/decision_assistant_message.rb +154 -0
  42. data/lib/openai/models/live/decision_choice_option.rb +35 -0
  43. data/lib/openai/models/live/decision_developer_message.rb +70 -0
  44. data/lib/openai/models/live/decision_input_text.rb +26 -0
  45. data/lib/openai/models/live/decision_item_create_event.rb +490 -131
  46. data/lib/openai/models/live/decision_item_created_event.rb +486 -131
  47. data/lib/openai/models/live/decision_json_object.rb +10 -0
  48. data/lib/openai/models/live/decision_question.rb +172 -0
  49. data/lib/openai/models/live/decision_stored_assistant_message.rb +152 -0
  50. data/lib/openai/models/live/decision_stored_developer_message.rb +68 -0
  51. data/lib/openai/models/live/decision_stored_system_message.rb +68 -0
  52. data/lib/openai/models/live/decision_stored_user_message.rb +195 -0
  53. data/lib/openai/models/live/decision_system_message.rb +70 -0
  54. data/lib/openai/models/live/decision_trigger.rb +6 -185
  55. data/lib/openai/models/live/decision_user_message.rb +193 -0
  56. data/lib/openai/models/live/decisions_delegation_config.rb +5 -177
  57. data/lib/openai/models/live/decisions_delegation_update_config.rb +5 -184
  58. data/lib/openai/models/live/fork_client_event.rb +4 -4
  59. data/lib/openai/models/live/fork_server_event.rb +2 -2
  60. data/lib/openai/models/live/fork_session_config.rb +20 -1
  61. data/lib/openai/models/live/input_audio_muted_event.rb +3 -2
  62. data/lib/openai/models/live/input_audio_unmute_event.rb +2 -1
  63. data/lib/openai/models/live/input_audio_unmuted_event.rb +3 -2
  64. data/lib/openai/models/live/instructions_append_event.rb +5 -2
  65. data/lib/openai/models/live/media_session_config.rb +39 -2
  66. data/lib/openai/models/live/media_session_fork_config.rb +20 -1
  67. data/lib/openai/models/live/server_event.rb +2 -2
  68. data/lib/openai/models/live/session_accept_params.rb +39 -2
  69. data/lib/openai/models/live/session_config.rb +39 -2
  70. data/lib/openai/models/live/session_resource.rb +39 -2
  71. data/lib/openai/models/live/session_update_config.rb +41 -2
  72. data/lib/openai/models/live/sideband_client_event.rb +4 -4
  73. data/lib/openai/models/live/sideband_server_event.rb +2 -2
  74. data/lib/openai/models/live/thinking_append_event.rb +1 -1
  75. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rb +10 -12
  76. data/lib/openai/models/realtime/realtime_error_event.rb +1 -1
  77. data/lib/openai/models/realtime/realtime_server_event.rb +1 -1
  78. data/lib/openai/models/realtime/realtime_translation_server_event.rb +1 -1
  79. data/lib/openai/models/responses/response_input_file.rb +23 -1
  80. data/lib/openai/models/responses/response_input_file_content.rb +23 -1
  81. data/lib/openai/models/responses/response_input_image.rb +23 -1
  82. data/lib/openai/models/responses/response_input_image_content.rb +23 -1
  83. data/lib/openai/models/responses/response_input_text.rb +23 -1
  84. data/lib/openai/models/responses/response_input_text_content.rb +23 -1
  85. data/lib/openai/models/responses/response_tool_search_output_item_param.rb +26 -15
  86. data/lib/openai/models/responses/tool.rb +26 -15
  87. data/lib/openai/models.rb +8 -0
  88. data/lib/openai/resources/beta/agents.rb +2 -2
  89. data/lib/openai/resources/beta/responses.rb +2 -2
  90. data/lib/openai/resources/decisions.rb +5 -6
  91. data/lib/openai/resources/images.rb +18 -6
  92. data/lib/openai/resources/live/forks.rb +2 -2
  93. data/lib/openai/resources/live/sideband.rb +2 -2
  94. data/lib/openai/resources/live.rb +2 -2
  95. data/lib/openai/resources/realtime/translations.rb +2 -2
  96. data/lib/openai/resources/realtime.rb +2 -2
  97. data/lib/openai/resources/responses.rb +2 -2
  98. data/lib/openai/version.rb +1 -1
  99. data/lib/openai.rb +16 -0
  100. data/rbi/openai/models/beta/agent.rbi +2 -1
  101. data/rbi/openai/models/beta/agent_create_params.rbi +6 -3
  102. data/rbi/openai/models/beta/agent_session.rbi +2 -1
  103. data/rbi/openai/models/beta/agent_tool.rbi +40 -1
  104. data/rbi/openai/models/beta/agent_tool_param.rbi +40 -1
  105. data/rbi/openai/models/beta/agent_update_params.rbi +6 -3
  106. data/rbi/openai/models/beta/agents/session_create_params.rbi +6 -3
  107. data/rbi/openai/models/beta/beta_response_input_file.rbi +31 -1
  108. data/rbi/openai/models/beta/beta_response_input_file_content.rbi +39 -1
  109. data/rbi/openai/models/beta/beta_response_input_image.rbi +31 -1
  110. data/rbi/openai/models/beta/beta_response_input_image_content.rbi +39 -1
  111. data/rbi/openai/models/beta/beta_response_input_text.rbi +31 -1
  112. data/rbi/openai/models/beta/beta_response_input_text_content.rbi +39 -1
  113. data/rbi/openai/models/beta/beta_response_item.rbi +58 -1
  114. data/rbi/openai/models/beta/beta_response_output_item.rbi +58 -1
  115. data/rbi/openai/models/beta/beta_response_tool_search_output_item_param.rbi +24 -15
  116. data/rbi/openai/models/beta/beta_tool.rbi +24 -15
  117. data/rbi/openai/models/beta/persisted_agent_tool.rbi +40 -1
  118. data/rbi/openai/models/beta/persisted_agent_tool_param.rbi +40 -1
  119. data/rbi/openai/models/chat/chat_completion_content_part.rbi +43 -1
  120. data/rbi/openai/models/chat/chat_completion_content_part_image.rbi +41 -1
  121. data/rbi/openai/models/chat/chat_completion_content_part_input_audio.rbi +46 -1
  122. data/rbi/openai/models/chat/chat_completion_content_part_text.rbi +39 -1
  123. data/rbi/openai/models/conversations/computer_screenshot_content.rbi +48 -1
  124. data/rbi/openai/models/decision_create_params.rbi +1273 -26
  125. data/rbi/openai/models/decision_input_json.rbi +75 -0
  126. data/rbi/openai/models/decision_input_message.rbi +455 -52
  127. data/rbi/openai/models/decision_input_part.rbi +2 -1
  128. data/rbi/openai/models/decision_question_input_image.rbi +82 -0
  129. data/rbi/openai/models/decision_question_input_part.rbi +25 -0
  130. data/rbi/openai/models/decision_question_input_text.rbi +49 -0
  131. data/rbi/openai/models/image_edit_params.rbi +12 -3
  132. data/rbi/openai/models/image_generate_params.rbi +15 -6
  133. data/rbi/openai/models/live/client_delegation.rbi +23 -1
  134. data/rbi/openai/models/live/commentary_append_event.rbi +1 -1
  135. data/rbi/openai/models/live/decision_assistant_message.rbi +247 -0
  136. data/rbi/openai/models/live/decision_choice_option.rbi +67 -0
  137. data/rbi/openai/models/live/decision_developer_message.rbi +109 -0
  138. data/rbi/openai/models/live/decision_input_text.rbi +55 -0
  139. data/rbi/openai/models/live/decision_item_create_event.rbi +765 -184
  140. data/rbi/openai/models/live/decision_item_created_event.rbi +737 -184
  141. data/rbi/openai/models/live/decision_json_object.rbi +16 -0
  142. data/rbi/openai/models/live/decision_question.rbi +300 -0
  143. data/rbi/openai/models/live/decision_stored_assistant_message.rbi +245 -0
  144. data/rbi/openai/models/live/decision_stored_developer_message.rbi +107 -0
  145. data/rbi/openai/models/live/decision_stored_system_message.rbi +107 -0
  146. data/rbi/openai/models/live/decision_stored_user_message.rbi +333 -0
  147. data/rbi/openai/models/live/decision_system_message.rbi +109 -0
  148. data/rbi/openai/models/live/decision_trigger.rbi +11 -320
  149. data/rbi/openai/models/live/decision_user_message.rbi +320 -0
  150. data/rbi/openai/models/live/decisions_delegation_config.rbi +10 -321
  151. data/rbi/openai/models/live/decisions_delegation_update_config.rbi +13 -324
  152. data/rbi/openai/models/live/fork_session_config.rbi +27 -1
  153. data/rbi/openai/models/live/input_audio_muted_event.rbi +3 -2
  154. data/rbi/openai/models/live/input_audio_unmute_event.rbi +2 -1
  155. data/rbi/openai/models/live/input_audio_unmuted_event.rbi +3 -2
  156. data/rbi/openai/models/live/instructions_append_event.rbi +5 -2
  157. data/rbi/openai/models/live/media_session_config.rbi +44 -2
  158. data/rbi/openai/models/live/media_session_fork_config.rbi +27 -1
  159. data/rbi/openai/models/live/session_accept_params.rbi +44 -2
  160. data/rbi/openai/models/live/session_config.rbi +44 -2
  161. data/rbi/openai/models/live/session_resource.rbi +44 -2
  162. data/rbi/openai/models/live/session_update_config.rbi +54 -2
  163. data/rbi/openai/models/live/thinking_append_event.rbi +1 -1
  164. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbi +10 -12
  165. data/rbi/openai/models/realtime/realtime_error_event.rbi +1 -1
  166. data/rbi/openai/models/responses/response_input_file.rbi +31 -1
  167. data/rbi/openai/models/responses/response_input_file_content.rbi +39 -1
  168. data/rbi/openai/models/responses/response_input_image.rbi +33 -1
  169. data/rbi/openai/models/responses/response_input_image_content.rbi +41 -1
  170. data/rbi/openai/models/responses/response_input_text.rbi +31 -1
  171. data/rbi/openai/models/responses/response_input_text_content.rbi +39 -1
  172. data/rbi/openai/models/responses/response_tool_search_output_item_param.rbi +24 -15
  173. data/rbi/openai/models/responses/tool.rbi +24 -15
  174. data/rbi/openai/models.rbi +8 -0
  175. data/rbi/openai/resources/beta/agents.rbi +4 -2
  176. data/rbi/openai/resources/beta/responses.rbi +8 -1
  177. data/rbi/openai/resources/decisions.rbi +4 -5
  178. data/rbi/openai/resources/images.rbi +18 -6
  179. data/rbi/openai/resources/live/forks.rbi +8 -1
  180. data/rbi/openai/resources/live/sideband.rbi +8 -1
  181. data/rbi/openai/resources/live.rbi +8 -1
  182. data/rbi/openai/resources/realtime/translations.rbi +8 -1
  183. data/rbi/openai/resources/realtime.rbi +8 -1
  184. data/rbi/openai/resources/responses.rbi +8 -1
  185. data/sig/openai/models/beta/agent_tool.rbs +14 -0
  186. data/sig/openai/models/beta/agent_tool_param.rbs +14 -0
  187. data/sig/openai/models/beta/beta_response_input_file.rbs +34 -3
  188. data/sig/openai/models/beta/beta_response_input_file_content.rbs +34 -3
  189. data/sig/openai/models/beta/beta_response_input_image.rbs +34 -3
  190. data/sig/openai/models/beta/beta_response_input_image_content.rbs +34 -3
  191. data/sig/openai/models/beta/beta_response_input_text.rbs +34 -3
  192. data/sig/openai/models/beta/beta_response_input_text_content.rbs +34 -3
  193. data/sig/openai/models/beta/beta_response_item.rbs +34 -3
  194. data/sig/openai/models/beta/beta_response_output_item.rbs +34 -3
  195. data/sig/openai/models/beta/beta_response_tool_search_output_item_param.rbs +24 -15
  196. data/sig/openai/models/beta/beta_tool.rbs +24 -15
  197. data/sig/openai/models/beta/persisted_agent_tool.rbs +14 -0
  198. data/sig/openai/models/beta/persisted_agent_tool_param.rbs +14 -0
  199. data/sig/openai/models/chat/chat_completion_content_part.rbs +34 -3
  200. data/sig/openai/models/chat/chat_completion_content_part_image.rbs +34 -3
  201. data/sig/openai/models/chat/chat_completion_content_part_input_audio.rbs +34 -3
  202. data/sig/openai/models/chat/chat_completion_content_part_text.rbs +34 -3
  203. data/sig/openai/models/conversations/computer_screenshot_content.rbs +34 -3
  204. data/sig/openai/models/decision_create_params.rbs +610 -24
  205. data/sig/openai/models/decision_input_json.rbs +34 -0
  206. data/sig/openai/models/decision_input_message.rbs +264 -35
  207. data/sig/openai/models/decision_input_part.rbs +3 -1
  208. data/sig/openai/models/decision_question_input_image.rbs +51 -0
  209. data/sig/openai/models/decision_question_input_part.rbs +14 -0
  210. data/sig/openai/models/decision_question_input_text.rbs +15 -0
  211. data/sig/openai/models/image_edit_params.rbs +8 -2
  212. data/sig/openai/models/image_generate_params.rbs +10 -4
  213. data/sig/openai/models/live/client_delegation.rbs +30 -3
  214. data/sig/openai/models/live/decision_assistant_message.rbs +134 -0
  215. data/sig/openai/models/live/decision_choice_option.rbs +37 -0
  216. data/sig/openai/models/live/decision_developer_message.rbs +67 -0
  217. data/sig/openai/models/live/decision_input_text.rbs +20 -0
  218. data/sig/openai/models/live/decision_item_create_event.rbs +413 -131
  219. data/sig/openai/models/live/decision_item_created_event.rbs +401 -131
  220. data/sig/openai/models/live/decision_json_object.rbs +9 -0
  221. data/sig/openai/models/live/decision_question.rbs +164 -0
  222. data/sig/openai/models/live/decision_stored_assistant_message.rbs +131 -0
  223. data/sig/openai/models/live/decision_stored_developer_message.rbs +64 -0
  224. data/sig/openai/models/live/decision_stored_system_message.rbs +64 -0
  225. data/sig/openai/models/live/decision_stored_user_message.rbs +177 -0
  226. data/sig/openai/models/live/decision_system_message.rbs +67 -0
  227. data/sig/openai/models/live/decision_trigger.rbs +8 -171
  228. data/sig/openai/models/live/decision_user_message.rbs +180 -0
  229. data/sig/openai/models/live/decisions_delegation_config.rbs +6 -167
  230. data/sig/openai/models/live/decisions_delegation_update_config.rbs +8 -169
  231. data/sig/openai/models/live/fork_session_config.rbs +26 -0
  232. data/sig/openai/models/live/media_session_config.rbs +53 -4
  233. data/sig/openai/models/live/media_session_fork_config.rbs +26 -0
  234. data/sig/openai/models/live/session_accept_params.rbs +53 -4
  235. data/sig/openai/models/live/session_config.rbs +53 -4
  236. data/sig/openai/models/live/session_resource.rbs +53 -4
  237. data/sig/openai/models/live/session_update_config.rbs +52 -0
  238. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbs +10 -12
  239. data/sig/openai/models/responses/response_input_file.rbs +34 -3
  240. data/sig/openai/models/responses/response_input_file_content.rbs +34 -3
  241. data/sig/openai/models/responses/response_input_image.rbs +34 -3
  242. data/sig/openai/models/responses/response_input_image_content.rbs +34 -3
  243. data/sig/openai/models/responses/response_input_text.rbs +34 -3
  244. data/sig/openai/models/responses/response_input_text_content.rbs +34 -3
  245. data/sig/openai/models/responses/response_tool_search_output_item_param.rbs +24 -15
  246. data/sig/openai/models/responses/tool.rbs +24 -15
  247. data/sig/openai/models.rbs +9 -1
  248. data/sig/openai/resources/beta/responses.rbs +2 -1
  249. data/sig/openai/resources/live/forks.rbs +2 -1
  250. data/sig/openai/resources/live/sideband.rbs +2 -1
  251. data/sig/openai/resources/live.rbs +2 -1
  252. data/sig/openai/resources/realtime/translations.rbs +2 -1
  253. data/sig/openai/resources/realtime.rbs +2 -1
  254. data/sig/openai/resources/responses.rbs +2 -1
  255. metadata +49 -1
@@ -0,0 +1,16 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Live
7
+
8
+ DecisionJSONObject = T.let(
9
+ OpenAI::Internal::Type::HashOf[OpenAI::Internal::Type::Unknown],
10
+ OpenAI::Internal::Type::Converter
11
+ )
12
+
13
+ end
14
+
15
+ end
16
+ end
@@ -0,0 +1,300 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Live
7
+
8
+ module DecisionQuestion
9
+ extend OpenAI::Internal::Type::Union
10
+
11
+ Variants = T.type_alias do
12
+ T.any(
13
+ OpenAI::Live::DecisionQuestion::Choice,
14
+ OpenAI::Live::DecisionQuestion::Predicate,
15
+ OpenAI::Live::DecisionQuestion::Score
16
+ )
17
+ end
18
+
19
+ class Choice < OpenAI::Internal::Type::BaseModel
20
+ Choice = ::OpenAI::Models::Live::DecisionChoiceOption
21
+
22
+ OrHash = T.type_alias do
23
+ T.any(
24
+ OpenAI::Live::DecisionQuestion::Choice,
25
+ OpenAI::Internal::AnyHash
26
+ )
27
+ end
28
+
29
+ sig { returns(T::Array[OpenAI::Live::DecisionChoiceOption]) }
30
+ attr_accessor :choices
31
+
32
+ sig { returns(OpenAI::Live::DecisionQuestion::Choice::Instructions::Variants) }
33
+ attr_accessor :instructions
34
+
35
+ sig { returns(Symbol) }
36
+ attr_accessor :type
37
+
38
+ sig { returns(T.nilable(String)) }
39
+ attr_reader :name
40
+
41
+ sig { params(name: String).void }
42
+ attr_writer :name
43
+
44
+ sig do
45
+ params(
46
+
47
+ choices: T::Array[OpenAI::Live::DecisionChoiceOption::OrHash],
48
+
49
+ instructions: OpenAI::Live::DecisionQuestion::Choice::Instructions::Variants,
50
+
51
+ name: String,
52
+
53
+ type: Symbol
54
+ )
55
+ .returns(T.attached_class)
56
+ end
57
+ def self.new(
58
+
59
+ choices:,
60
+
61
+ instructions:,
62
+
63
+ name: nil,
64
+
65
+ type: :choice
66
+ )
67
+ end
68
+
69
+ sig do
70
+ override.returns(
71
+ {
72
+ choices: T::Array[OpenAI::Live::DecisionChoiceOption],
73
+ instructions: OpenAI::Live::DecisionQuestion::Choice::Instructions::Variants,
74
+ type: Symbol,
75
+ name: String
76
+ }
77
+ )
78
+ end
79
+ def to_hash
80
+ end
81
+
82
+ module Instructions
83
+ extend OpenAI::Internal::Type::Union
84
+
85
+ Variants = T.type_alias { T.any(String, T::Array[OpenAI::DecisionQuestionInputPart::Variants]) }
86
+
87
+ sig { override.returns(T::Array[OpenAI::Live::DecisionQuestion::Choice::Instructions::Variants]) }
88
+ def self.variants
89
+ end
90
+
91
+ DecisionQuestionInputPartArray = T.let(
92
+ OpenAI::Internal::Type::ArrayOf[union: OpenAI::DecisionQuestionInputPart],
93
+ OpenAI::Internal::Type::Converter
94
+ )
95
+
96
+ end
97
+ end
98
+
99
+ class Predicate < OpenAI::Internal::Type::BaseModel
100
+ OrHash = T.type_alias do
101
+ T.any(
102
+ OpenAI::Live::DecisionQuestion::Predicate,
103
+ OpenAI::Internal::AnyHash
104
+ )
105
+ end
106
+
107
+ sig { returns(OpenAI::Live::DecisionQuestion::Predicate::Instructions::Variants) }
108
+ attr_accessor :instructions
109
+
110
+ sig { returns(Symbol) }
111
+ attr_accessor :type
112
+
113
+ sig { returns(T.nilable(String)) }
114
+ attr_reader :name
115
+
116
+ sig { params(name: String).void }
117
+ attr_writer :name
118
+
119
+ sig do
120
+ params(
121
+
122
+ instructions: OpenAI::Live::DecisionQuestion::Predicate::Instructions::Variants,
123
+
124
+ name: String,
125
+
126
+ type: Symbol
127
+ )
128
+ .returns(T.attached_class)
129
+ end
130
+ def self.new(
131
+
132
+ instructions:,
133
+
134
+ name: nil,
135
+
136
+ type: :predicate
137
+ )
138
+ end
139
+
140
+ sig do
141
+ override.returns(
142
+ {
143
+ instructions: OpenAI::Live::DecisionQuestion::Predicate::Instructions::Variants,
144
+ type: Symbol,
145
+ name: String
146
+ }
147
+ )
148
+ end
149
+ def to_hash
150
+ end
151
+
152
+ module Instructions
153
+ extend OpenAI::Internal::Type::Union
154
+
155
+ Variants = T.type_alias { T.any(String, T::Array[OpenAI::DecisionQuestionInputPart::Variants]) }
156
+
157
+ sig { override.returns(T::Array[OpenAI::Live::DecisionQuestion::Predicate::Instructions::Variants]) }
158
+ def self.variants
159
+ end
160
+
161
+ DecisionQuestionInputPartArray = T.let(
162
+ OpenAI::Internal::Type::ArrayOf[union: OpenAI::DecisionQuestionInputPart],
163
+ OpenAI::Internal::Type::Converter
164
+ )
165
+
166
+ end
167
+ end
168
+
169
+ class Score < OpenAI::Internal::Type::BaseModel
170
+ OrHash = T.type_alias do
171
+ T.any(
172
+ OpenAI::Live::DecisionQuestion::Score,
173
+ OpenAI::Internal::AnyHash
174
+ )
175
+ end
176
+
177
+ sig { returns(OpenAI::Live::DecisionQuestion::Score::Instructions::Variants) }
178
+ attr_accessor :instructions
179
+
180
+ sig { returns(T::Array[OpenAI::Live::DecisionQuestion::Score::Level]) }
181
+ attr_accessor :levels
182
+
183
+ sig { returns(Symbol) }
184
+ attr_accessor :type
185
+
186
+ sig { returns(T.nilable(String)) }
187
+ attr_reader :name
188
+
189
+ sig { params(name: String).void }
190
+ attr_writer :name
191
+
192
+ sig do
193
+ params(
194
+
195
+ instructions: OpenAI::Live::DecisionQuestion::Score::Instructions::Variants,
196
+
197
+ levels: T::Array[OpenAI::Live::DecisionQuestion::Score::Level::OrHash],
198
+
199
+ name: String,
200
+
201
+ type: Symbol
202
+ )
203
+ .returns(T.attached_class)
204
+ end
205
+ def self.new(
206
+
207
+ instructions:,
208
+
209
+ levels:,
210
+
211
+ name: nil,
212
+
213
+ type: :score
214
+ )
215
+ end
216
+
217
+ sig do
218
+ override.returns(
219
+ {
220
+ instructions: OpenAI::Live::DecisionQuestion::Score::Instructions::Variants,
221
+ levels: T::Array[OpenAI::Live::DecisionQuestion::Score::Level],
222
+ type: Symbol,
223
+ name: String
224
+ }
225
+ )
226
+ end
227
+ def to_hash
228
+ end
229
+
230
+ module Instructions
231
+ extend OpenAI::Internal::Type::Union
232
+
233
+ Variants = T.type_alias { T.any(String, T::Array[OpenAI::DecisionQuestionInputPart::Variants]) }
234
+
235
+ sig { override.returns(T::Array[OpenAI::Live::DecisionQuestion::Score::Instructions::Variants]) }
236
+ def self.variants
237
+ end
238
+
239
+ DecisionQuestionInputPartArray = T.let(
240
+ OpenAI::Internal::Type::ArrayOf[union: OpenAI::DecisionQuestionInputPart],
241
+ OpenAI::Internal::Type::Converter
242
+ )
243
+
244
+ end
245
+
246
+ class Level < OpenAI::Internal::Type::BaseModel
247
+ OrHash = T.type_alias do
248
+ T.any(
249
+ OpenAI::Live::DecisionQuestion::Score::Level,
250
+ OpenAI::Internal::AnyHash
251
+ )
252
+ end
253
+
254
+ sig { returns(String) }
255
+ attr_accessor :label
256
+
257
+ sig { returns(T.nilable(String)) }
258
+ attr_reader :description
259
+
260
+ sig { params(description: String).void }
261
+ attr_writer :description
262
+
263
+ sig do
264
+ params(
265
+
266
+ label: String,
267
+
268
+ description: String
269
+ )
270
+ .returns(T.attached_class)
271
+ end
272
+ def self.new(
273
+
274
+ label:,
275
+
276
+ description: nil
277
+ )
278
+ end
279
+
280
+ sig do
281
+ override.returns(
282
+ {label: String, description: String}
283
+ )
284
+ end
285
+ def to_hash
286
+ end
287
+
288
+ end
289
+ end
290
+
291
+ sig { override.returns(T::Array[OpenAI::Live::DecisionQuestion::Variants]) }
292
+ def self.variants
293
+ end
294
+
295
+ end
296
+
297
+ end
298
+
299
+ end
300
+ end
@@ -0,0 +1,245 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Live
7
+
8
+ class DecisionStoredAssistantMessage < OpenAI::Internal::Type::BaseModel
9
+
10
+ OrHash = T.type_alias do
11
+ T.any(
12
+ OpenAI::Live::DecisionStoredAssistantMessage,
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::DecisionStoredAssistantMessage::Content::Variants) }
22
+ attr_accessor :content
23
+
24
+ sig { returns(Symbol) }
25
+ attr_accessor :role
26
+
27
+ # Labels an `assistant` message as intermediate commentary (`commentary`) or the
28
+ # final answer (`final_answer`). For models like `gpt-5.3-codex` and beyond, when
29
+ # sending follow-up requests, preserve and resend phase on all assistant messages
30
+ # — dropping it can degrade performance. Not used for user messages.
31
+ sig { returns(T.nilable(OpenAI::Live::DecisionStoredAssistantMessage::Phase::OrSymbol)) }
32
+ attr_accessor :phase
33
+
34
+ sig { returns(T.nilable(OpenAI::Live::DecisionStoredAssistantMessage::Type::OrSymbol)) }
35
+ attr_reader :type
36
+
37
+ sig { params(type: OpenAI::Live::DecisionStoredAssistantMessage::Type::OrSymbol).void }
38
+ attr_writer :type
39
+
40
+ sig do
41
+ params(
42
+
43
+ id: String,
44
+
45
+ content: OpenAI::Live::DecisionStoredAssistantMessage::Content::Variants,
46
+
47
+ phase: T.nilable(OpenAI::Live::DecisionStoredAssistantMessage::Phase::OrSymbol),
48
+
49
+ type: OpenAI::Live::DecisionStoredAssistantMessage::Type::OrSymbol,
50
+
51
+ role: Symbol
52
+ )
53
+ .returns(T.attached_class)
54
+ end
55
+ def self.new(
56
+
57
+ id:,
58
+
59
+ # The text input to the model.
60
+ content:,
61
+
62
+ # Labels an `assistant` message as intermediate commentary (`commentary`) or the
63
+ # final answer (`final_answer`). For models like `gpt-5.3-codex` and beyond, when
64
+ # sending follow-up requests, preserve and resend phase on all assistant messages
65
+ # — dropping it can degrade performance. Not used for user messages.
66
+ phase: nil,
67
+
68
+ type: nil,
69
+
70
+ role: :assistant
71
+ )
72
+ end
73
+
74
+ sig do
75
+ override.returns(
76
+ {
77
+ id: String,
78
+ content: OpenAI::Live::DecisionStoredAssistantMessage::Content::Variants,
79
+ role: Symbol,
80
+ phase: T.nilable(OpenAI::Live::DecisionStoredAssistantMessage::Phase::OrSymbol),
81
+ type: OpenAI::Live::DecisionStoredAssistantMessage::Type::OrSymbol
82
+ }
83
+ )
84
+ end
85
+ def to_hash
86
+ end
87
+
88
+ # The text input to the model.
89
+ module Content
90
+ extend OpenAI::Internal::Type::Union
91
+
92
+ Variants = T.type_alias {
93
+ T.any(String, T::Array[OpenAI::Live::DecisionStoredAssistantMessage::Content::Part::Variants])
94
+ }
95
+
96
+ module Part
97
+ extend OpenAI::Internal::Type::Union
98
+
99
+ Variants = T.type_alias {
100
+ T.any(
101
+ OpenAI::Live::DecisionStoredAssistantMessage::Content::Part::OutputText,
102
+ OpenAI::Live::DecisionStoredAssistantMessage::Content::Part::Refusal
103
+ )
104
+ }
105
+
106
+ class OutputText < OpenAI::Internal::Type::BaseModel
107
+ OrHash = T.type_alias do
108
+ T.any(
109
+ OpenAI::Live::DecisionStoredAssistantMessage::Content::Part::OutputText,
110
+ OpenAI::Internal::AnyHash
111
+ )
112
+ end
113
+
114
+ # The text content.
115
+ sig { returns(String) }
116
+ attr_accessor :text
117
+
118
+ sig { returns(Symbol) }
119
+ attr_accessor :type
120
+
121
+ sig do
122
+ params(
123
+
124
+ text: String,
125
+
126
+ type: Symbol
127
+ )
128
+ .returns(T.attached_class)
129
+ end
130
+ def self.new(
131
+
132
+ # The text content.
133
+ text:,
134
+
135
+ type: :output_text
136
+ )
137
+ end
138
+
139
+ sig do
140
+ override.returns(
141
+ {text: String, type: Symbol}
142
+ )
143
+ end
144
+ def to_hash
145
+ end
146
+
147
+ end
148
+
149
+ class Refusal < OpenAI::Internal::Type::BaseModel
150
+ OrHash = T.type_alias do
151
+ T.any(
152
+ OpenAI::Live::DecisionStoredAssistantMessage::Content::Part::Refusal,
153
+ OpenAI::Internal::AnyHash
154
+ )
155
+ end
156
+
157
+ # The refusal text.
158
+ sig { returns(String) }
159
+ attr_accessor :refusal
160
+
161
+ sig { returns(Symbol) }
162
+ attr_accessor :type
163
+
164
+ sig do
165
+ params(
166
+
167
+ refusal: String,
168
+
169
+ type: Symbol
170
+ )
171
+ .returns(T.attached_class)
172
+ end
173
+ def self.new(
174
+
175
+ # The refusal text.
176
+ refusal:,
177
+
178
+ type: :refusal
179
+ )
180
+ end
181
+
182
+ sig do
183
+ override.returns(
184
+ {refusal: String, type: Symbol}
185
+ )
186
+ end
187
+ def to_hash
188
+ end
189
+
190
+ end
191
+
192
+ sig { override.returns(T::Array[OpenAI::Live::DecisionStoredAssistantMessage::Content::Part::Variants]) }
193
+ def self.variants
194
+ end
195
+
196
+ end
197
+
198
+ sig { override.returns(T::Array[OpenAI::Live::DecisionStoredAssistantMessage::Content::Variants]) }
199
+ def self.variants
200
+ end
201
+
202
+ PartsArray = T.let(
203
+ OpenAI::Internal::Type::ArrayOf[union: OpenAI::Live::DecisionStoredAssistantMessage::Content::Part],
204
+ OpenAI::Internal::Type::Converter
205
+ )
206
+
207
+ end
208
+
209
+ # Labels an `assistant` message as intermediate commentary (`commentary`) or the
210
+ # final answer (`final_answer`). For models like `gpt-5.3-codex` and beyond, when
211
+ # sending follow-up requests, preserve and resend phase on all assistant messages
212
+ # — dropping it can degrade performance. Not used for user messages.
213
+ module Phase
214
+ extend OpenAI::Internal::Type::Enum
215
+
216
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Live::DecisionStoredAssistantMessage::Phase) }
217
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
218
+
219
+ COMMENTARY = T.let(:commentary, OpenAI::Live::DecisionStoredAssistantMessage::Phase::TaggedSymbol)
220
+ FINAL_ANSWER = T.let(:final_answer, OpenAI::Live::DecisionStoredAssistantMessage::Phase::TaggedSymbol)
221
+
222
+ sig { override.returns(T::Array[OpenAI::Live::DecisionStoredAssistantMessage::Phase::TaggedSymbol]) }
223
+ def self.values
224
+ end
225
+ end
226
+
227
+ module Type
228
+ extend OpenAI::Internal::Type::Enum
229
+
230
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Live::DecisionStoredAssistantMessage::Type) }
231
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
232
+
233
+ MESSAGE = T.let(:message, OpenAI::Live::DecisionStoredAssistantMessage::Type::TaggedSymbol)
234
+
235
+ sig { override.returns(T::Array[OpenAI::Live::DecisionStoredAssistantMessage::Type::TaggedSymbol]) }
236
+ def self.values
237
+ end
238
+ end
239
+
240
+ end
241
+
242
+ end
243
+
244
+ end
245
+ end
@@ -0,0 +1,107 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Live
7
+
8
+ class DecisionStoredDeveloperMessage < OpenAI::Internal::Type::BaseModel
9
+
10
+ OrHash = T.type_alias do
11
+ T.any(
12
+ OpenAI::Live::DecisionStoredDeveloperMessage,
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::DecisionStoredDeveloperMessage::Content::Variants) }
22
+ attr_accessor :content
23
+
24
+ sig { returns(Symbol) }
25
+ attr_accessor :role
26
+
27
+ sig { returns(T.nilable(OpenAI::Live::DecisionStoredDeveloperMessage::Type::OrSymbol)) }
28
+ attr_reader :type
29
+
30
+ sig { params(type: OpenAI::Live::DecisionStoredDeveloperMessage::Type::OrSymbol).void }
31
+ attr_writer :type
32
+
33
+ sig do
34
+ params(
35
+
36
+ id: String,
37
+
38
+ content: OpenAI::Live::DecisionStoredDeveloperMessage::Content::Variants,
39
+
40
+ type: OpenAI::Live::DecisionStoredDeveloperMessage::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: :developer
56
+ )
57
+ end
58
+
59
+ sig do
60
+ override.returns(
61
+ {
62
+ id: String,
63
+ content: OpenAI::Live::DecisionStoredDeveloperMessage::Content::Variants,
64
+ role: Symbol,
65
+ type: OpenAI::Live::DecisionStoredDeveloperMessage::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::DecisionStoredDeveloperMessage::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::DecisionStoredDeveloperMessage::Type) }
93
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
94
+
95
+ MESSAGE = T.let(:message, OpenAI::Live::DecisionStoredDeveloperMessage::Type::TaggedSymbol)
96
+
97
+ sig { override.returns(T::Array[OpenAI::Live::DecisionStoredDeveloperMessage::Type::TaggedSymbol]) }
98
+ def self.values
99
+ end
100
+ end
101
+
102
+ end
103
+
104
+ end
105
+
106
+ end
107
+ end