openai 0.88.0 → 0.89.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 (239) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +12 -0
  3. data/README.md +1 -1
  4. data/lib/openai/client.rb +4 -0
  5. data/lib/openai/models/beta/beta_response_input_item.rb +91 -1
  6. data/lib/openai/models/beta/beta_response_item.rb +93 -1
  7. data/lib/openai/models/beta/beta_response_output_item.rb +91 -1
  8. data/lib/openai/models/conversations/conversation_item.rb +91 -1
  9. data/lib/openai/models/live/audio_format.rb +109 -0
  10. data/lib/openai/models/live/built_in_voice.rb +38 -0
  11. data/lib/openai/models/live/client_config.rb +22 -0
  12. data/lib/openai/models/live/client_delegation.rb +22 -0
  13. data/lib/openai/models/live/client_event.rb +54 -0
  14. data/lib/openai/models/live/commentary_append_event.rb +59 -0
  15. data/lib/openai/models/live/commentary_appended_event.rb +65 -0
  16. data/lib/openai/models/live/custom_voice.rb +17 -0
  17. data/lib/openai/models/live/data_channel_config.rb +81 -0
  18. data/lib/openai/models/live/delegation_created_event.rb +140 -0
  19. data/lib/openai/models/live/error.rb +60 -0
  20. data/lib/openai/models/live/error_event.rb +52 -0
  21. data/lib/openai/models/live/fork_client_event.rb +53 -0
  22. data/lib/openai/models/live/fork_server_event.rb +295 -0
  23. data/lib/openai/models/live/fork_session_config.rb +107 -0
  24. data/lib/openai/models/live/fork_session_start_event.rb +48 -0
  25. data/lib/openai/models/live/function_tool.rb +60 -0
  26. data/lib/openai/models/live/info_event.rb +60 -0
  27. data/lib/openai/models/live/initial_item.rb +419 -0
  28. data/lib/openai/models/live/input_audio_append_event.rb +50 -0
  29. data/lib/openai/models/live/input_audio_mute_event.rb +33 -0
  30. data/lib/openai/models/live/input_audio_muted_event.rb +42 -0
  31. data/lib/openai/models/live/input_audio_unmute_event.rb +33 -0
  32. data/lib/openai/models/live/input_audio_unmuted_event.rb +42 -0
  33. data/lib/openai/models/live/input_transcript_delta_event.rb +76 -0
  34. data/lib/openai/models/live/instructions_append_event.rb +57 -0
  35. data/lib/openai/models/live/instructions_appended_event.rb +65 -0
  36. data/lib/openai/models/live/live_create_params.rb +57 -0
  37. data/lib/openai/models/live/live_create_response.rb +77 -0
  38. data/lib/openai/models/live/media_session_config.rb +227 -0
  39. data/lib/openai/models/live/media_session_fork_config.rb +75 -0
  40. data/lib/openai/models/live/output_audio_delta_event.rb +58 -0
  41. data/lib/openai/models/live/output_transcript_delta_event.rb +76 -0
  42. data/lib/openai/models/live/response_create_event.rb +33 -0
  43. data/lib/openai/models/live/response_event.rb +67 -0
  44. data/lib/openai/models/live/response_item_create_event.rb +44 -0
  45. data/lib/openai/models/live/responses_delegation_config.rb +332 -0
  46. data/lib/openai/models/live/responses_delegation_update_config.rb +332 -0
  47. data/lib/openai/models/live/server_event.rb +295 -0
  48. data/lib/openai/models/live/server_event_selector.rb +32 -0
  49. data/lib/openai/models/live/session_accept_params.rb +257 -0
  50. data/lib/openai/models/live/session_close_event.rb +33 -0
  51. data/lib/openai/models/live/session_closed_event.rb +113 -0
  52. data/lib/openai/models/live/session_config.rb +236 -0
  53. data/lib/openai/models/live/session_download_recording_params.rb +27 -0
  54. data/lib/openai/models/live/session_fork_params.rb +66 -0
  55. data/lib/openai/models/live/session_fork_response.rb +77 -0
  56. data/lib/openai/models/live/session_hangup_params.rb +22 -0
  57. data/lib/openai/models/live/session_refer_params.rb +34 -0
  58. data/lib/openai/models/live/session_reject_params.rb +32 -0
  59. data/lib/openai/models/live/session_resource.rb +268 -0
  60. data/lib/openai/models/live/session_start_event.rb +46 -0
  61. data/lib/openai/models/live/session_started_event.rb +51 -0
  62. data/lib/openai/models/live/session_update_config.rb +69 -0
  63. data/lib/openai/models/live/session_update_event.rb +46 -0
  64. data/lib/openai/models/live/session_updated_event.rb +51 -0
  65. data/lib/openai/models/live/session_usage.rb +24 -0
  66. data/lib/openai/models/live/session_usage_updated_event.rb +81 -0
  67. data/lib/openai/models/live/thinking_append_event.rb +59 -0
  68. data/lib/openai/models/live/thinking_appended_event.rb +65 -0
  69. data/lib/openai/models/responses/response_input_item.rb +91 -1
  70. data/lib/openai/models/responses/response_item.rb +93 -1
  71. data/lib/openai/models/responses/response_output_item.rb +91 -1
  72. data/lib/openai/models/webhooks/live_call_incoming_webhook_event.rb +12 -7
  73. data/lib/openai/models/webhooks/live_transport_incoming_webhook_event.rb +137 -0
  74. data/lib/openai/models/webhooks/realtime_call_incoming_webhook_event.rb +4 -4
  75. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +9 -2
  76. data/lib/openai/models.rb +2 -0
  77. data/lib/openai/resources/live/forks.rb +16 -0
  78. data/lib/openai/resources/live/sessions.rb +180 -0
  79. data/lib/openai/resources/live/sideband.rb +16 -0
  80. data/lib/openai/resources/live.rb +54 -0
  81. data/lib/openai/resources/webhooks.rb +1 -1
  82. data/lib/openai/version.rb +1 -1
  83. data/lib/openai.rb +65 -0
  84. data/rbi/openai/client.rbi +3 -0
  85. data/rbi/openai/models/beta/beta_response_input_item.rbi +109 -0
  86. data/rbi/openai/models/beta/beta_response_item.rbi +105 -0
  87. data/rbi/openai/models/beta/beta_response_output_item.rbi +119 -0
  88. data/rbi/openai/models/conversations/conversation_item.rbi +133 -0
  89. data/rbi/openai/models/live/audio_format.rbi +185 -0
  90. data/rbi/openai/models/live/built_in_voice.rbi +46 -0
  91. data/rbi/openai/models/live/client_config.rbi +54 -0
  92. data/rbi/openai/models/live/client_delegation.rbi +51 -0
  93. data/rbi/openai/models/live/client_event.rbi +41 -0
  94. data/rbi/openai/models/live/commentary_append_event.rbi +88 -0
  95. data/rbi/openai/models/live/commentary_appended_event.rbi +97 -0
  96. data/rbi/openai/models/live/custom_voice.rbi +46 -0
  97. data/rbi/openai/models/live/data_channel_config.rbi +119 -0
  98. data/rbi/openai/models/live/delegation_created_event.rbi +207 -0
  99. data/rbi/openai/models/live/error.rbi +95 -0
  100. data/rbi/openai/models/live/error_event.rbi +87 -0
  101. data/rbi/openai/models/live/fork_client_event.rbi +40 -0
  102. data/rbi/openai/models/live/fork_server_event.rbi +436 -0
  103. data/rbi/openai/models/live/fork_session_config.rbi +234 -0
  104. data/rbi/openai/models/live/fork_session_start_event.rbi +80 -0
  105. data/rbi/openai/models/live/function_tool.rbi +95 -0
  106. data/rbi/openai/models/live/info_event.rbi +92 -0
  107. data/rbi/openai/models/live/initial_item.rbi +661 -0
  108. data/rbi/openai/models/live/input_audio_append_event.rbi +79 -0
  109. data/rbi/openai/models/live/input_audio_mute_event.rbi +62 -0
  110. data/rbi/openai/models/live/input_audio_muted_event.rbi +74 -0
  111. data/rbi/openai/models/live/input_audio_unmute_event.rbi +62 -0
  112. data/rbi/openai/models/live/input_audio_unmuted_event.rbi +74 -0
  113. data/rbi/openai/models/live/input_transcript_delta_event.rbi +115 -0
  114. data/rbi/openai/models/live/instructions_append_event.rbi +86 -0
  115. data/rbi/openai/models/live/instructions_appended_event.rbi +97 -0
  116. data/rbi/openai/models/live/live_create_params.rbi +121 -0
  117. data/rbi/openai/models/live/live_create_response.rbi +160 -0
  118. data/rbi/openai/models/live/media_session_config.rbi +390 -0
  119. data/rbi/openai/models/live/media_session_fork_config.rbi +143 -0
  120. data/rbi/openai/models/live/output_audio_delta_event.rbi +93 -0
  121. data/rbi/openai/models/live/output_transcript_delta_event.rbi +115 -0
  122. data/rbi/openai/models/live/response_create_event.rbi +62 -0
  123. data/rbi/openai/models/live/response_event.rbi +105 -0
  124. data/rbi/openai/models/live/response_item_create_event.rbi +183 -0
  125. data/rbi/openai/models/live/responses_delegation_config.rbi +562 -0
  126. data/rbi/openai/models/live/responses_delegation_update_config.rbi +585 -0
  127. data/rbi/openai/models/live/server_event.rbi +436 -0
  128. data/rbi/openai/models/live/server_event_selector.rbi +64 -0
  129. data/rbi/openai/models/live/session_accept_params.rbi +451 -0
  130. data/rbi/openai/models/live/session_close_event.rbi +62 -0
  131. data/rbi/openai/models/live/session_closed_event.rbi +148 -0
  132. data/rbi/openai/models/live/session_config.rbi +427 -0
  133. data/rbi/openai/models/live/session_download_recording_params.rbi +57 -0
  134. data/rbi/openai/models/live/session_fork_params.rbi +131 -0
  135. data/rbi/openai/models/live/session_fork_response.rbi +160 -0
  136. data/rbi/openai/models/live/session_hangup_params.rbi +53 -0
  137. data/rbi/openai/models/live/session_refer_params.rbi +64 -0
  138. data/rbi/openai/models/live/session_reject_params.rbi +62 -0
  139. data/rbi/openai/models/live/session_resource.rbi +461 -0
  140. data/rbi/openai/models/live/session_start_event.rbi +78 -0
  141. data/rbi/openai/models/live/session_started_event.rbi +86 -0
  142. data/rbi/openai/models/live/session_update_config.rbi +134 -0
  143. data/rbi/openai/models/live/session_update_event.rbi +78 -0
  144. data/rbi/openai/models/live/session_updated_event.rbi +86 -0
  145. data/rbi/openai/models/live/session_usage.rbi +53 -0
  146. data/rbi/openai/models/live/session_usage_updated_event.rbi +148 -0
  147. data/rbi/openai/models/live/thinking_append_event.rbi +88 -0
  148. data/rbi/openai/models/live/thinking_appended_event.rbi +97 -0
  149. data/rbi/openai/models/responses/response_input_item.rbi +113 -0
  150. data/rbi/openai/models/responses/response_item.rbi +105 -0
  151. data/rbi/openai/models/responses/response_output_item.rbi +125 -0
  152. data/rbi/openai/models/webhooks/live_call_incoming_webhook_event.rbi +11 -7
  153. data/rbi/openai/models/webhooks/live_transport_incoming_webhook_event.rbi +226 -0
  154. data/rbi/openai/models/webhooks/realtime_call_incoming_webhook_event.rbi +4 -4
  155. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +1 -0
  156. data/rbi/openai/models.rbi +2 -0
  157. data/rbi/openai/resources/live/forks.rbi +19 -0
  158. data/rbi/openai/resources/live/sessions.rbi +110 -0
  159. data/rbi/openai/resources/live/sideband.rbi +19 -0
  160. data/rbi/openai/resources/live.rbi +43 -0
  161. data/rbi/openai/resources/responses.rbi +75 -38
  162. data/rbi/openai/resources/webhooks.rbi +1 -0
  163. data/sig/openai/client.rbs +2 -0
  164. data/sig/openai/models/beta/beta_response_input_item.rbs +56 -0
  165. data/sig/openai/models/beta/beta_response_item.rbs +56 -0
  166. data/sig/openai/models/beta/beta_response_output_item.rbs +56 -0
  167. data/sig/openai/models/conversations/conversation_item.rbs +56 -0
  168. data/sig/openai/models/live/audio_format.rbs +73 -0
  169. data/sig/openai/models/live/built_in_voice.rbs +58 -0
  170. data/sig/openai/models/live/client_config.rbs +15 -0
  171. data/sig/openai/models/live/client_delegation.rbs +15 -0
  172. data/sig/openai/models/live/client_event.rbs +24 -0
  173. data/sig/openai/models/live/commentary_append_event.rbs +37 -0
  174. data/sig/openai/models/live/commentary_appended_event.rbs +44 -0
  175. data/sig/openai/models/live/custom_voice.rbs +15 -0
  176. data/sig/openai/models/live/data_channel_config.rbs +56 -0
  177. data/sig/openai/models/live/delegation_created_event.rbs +89 -0
  178. data/sig/openai/models/live/error.rbs +46 -0
  179. data/sig/openai/models/live/error_event.rbs +39 -0
  180. data/sig/openai/models/live/fork_client_event.rbs +24 -0
  181. data/sig/openai/models/live/fork_server_event.rbs +212 -0
  182. data/sig/openai/models/live/fork_session_config.rbs +89 -0
  183. data/sig/openai/models/live/fork_session_start_event.rbs +32 -0
  184. data/sig/openai/models/live/function_tool.rbs +42 -0
  185. data/sig/openai/models/live/info_event.rbs +44 -0
  186. data/sig/openai/models/live/initial_item.rbs +332 -0
  187. data/sig/openai/models/live/input_audio_append_event.rbs +32 -0
  188. data/sig/openai/models/live/input_audio_mute_event.rbs +24 -0
  189. data/sig/openai/models/live/input_audio_muted_event.rbs +34 -0
  190. data/sig/openai/models/live/input_audio_unmute_event.rbs +24 -0
  191. data/sig/openai/models/live/input_audio_unmuted_event.rbs +34 -0
  192. data/sig/openai/models/live/input_transcript_delta_event.rbs +49 -0
  193. data/sig/openai/models/live/instructions_append_event.rbs +37 -0
  194. data/sig/openai/models/live/instructions_appended_event.rbs +44 -0
  195. data/sig/openai/models/live/live_create_params.rbs +45 -0
  196. data/sig/openai/models/live/live_create_response.rbs +49 -0
  197. data/sig/openai/models/live/media_session_config.rbs +157 -0
  198. data/sig/openai/models/live/media_session_fork_config.rbs +66 -0
  199. data/sig/openai/models/live/output_audio_delta_event.rbs +41 -0
  200. data/sig/openai/models/live/output_transcript_delta_event.rbs +49 -0
  201. data/sig/openai/models/live/response_create_event.rbs +18 -0
  202. data/sig/openai/models/live/response_event.rbs +44 -0
  203. data/sig/openai/models/live/response_item_create_event.rbs +32 -0
  204. data/sig/openai/models/live/responses_delegation_config.rbs +244 -0
  205. data/sig/openai/models/live/responses_delegation_update_config.rbs +246 -0
  206. data/sig/openai/models/live/server_event.rbs +212 -0
  207. data/sig/openai/models/live/server_event_selector.rbs +19 -0
  208. data/sig/openai/models/live/session_accept_params.rbs +185 -0
  209. data/sig/openai/models/live/session_close_event.rbs +17 -0
  210. data/sig/openai/models/live/session_closed_event.rbs +68 -0
  211. data/sig/openai/models/live/session_config.rbs +168 -0
  212. data/sig/openai/models/live/session_download_recording_params.rbs +25 -0
  213. data/sig/openai/models/live/session_fork_params.rbs +54 -0
  214. data/sig/openai/models/live/session_fork_response.rbs +49 -0
  215. data/sig/openai/models/live/session_hangup_params.rbs +25 -0
  216. data/sig/openai/models/live/session_refer_params.rbs +33 -0
  217. data/sig/openai/models/live/session_reject_params.rbs +33 -0
  218. data/sig/openai/models/live/session_resource.rbs +183 -0
  219. data/sig/openai/models/live/session_start_event.rbs +32 -0
  220. data/sig/openai/models/live/session_started_event.rbs +39 -0
  221. data/sig/openai/models/live/session_update_config.rbs +56 -0
  222. data/sig/openai/models/live/session_update_event.rbs +32 -0
  223. data/sig/openai/models/live/session_updated_event.rbs +39 -0
  224. data/sig/openai/models/live/session_usage.rbs +15 -0
  225. data/sig/openai/models/live/session_usage_updated_event.rbs +58 -0
  226. data/sig/openai/models/live/thinking_append_event.rbs +37 -0
  227. data/sig/openai/models/live/thinking_appended_event.rbs +44 -0
  228. data/sig/openai/models/responses/response_input_item.rbs +56 -0
  229. data/sig/openai/models/responses/response_item.rbs +56 -0
  230. data/sig/openai/models/responses/response_output_item.rbs +56 -0
  231. data/sig/openai/models/webhooks/live_transport_incoming_webhook_event.rbs +95 -0
  232. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +1 -0
  233. data/sig/openai/models.rbs +2 -0
  234. data/sig/openai/resources/live/forks.rbs +9 -0
  235. data/sig/openai/resources/live/sessions.rbs +44 -0
  236. data/sig/openai/resources/live/sideband.rbs +9 -0
  237. data/sig/openai/resources/live.rbs +19 -0
  238. data/sig/openai/resources/webhooks.rbs +1 -0
  239. metadata +196 -1
@@ -0,0 +1,58 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Live
6
+ class OutputAudioDeltaEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute delta
8
+ # Base64-encoded raw audio. Primary WebSocket events use the session's configured
9
+ # format; reflected sideband events use mono PCM16LE at 24 kHz.
10
+ #
11
+ # @return [String]
12
+ required :delta, String
13
+
14
+ # @!attribute type
15
+ # The event type, always `session.output_audio.delta`.
16
+ #
17
+ # @return [Symbol, :"session.output_audio.delta"]
18
+ required :type, const: :"session.output_audio.delta"
19
+
20
+ # @!attribute end_ms
21
+ # Exclusive session-relative end in milliseconds. Required on reflected sideband
22
+ # events; omitted on the primary WebSocket. Dropped output frames leave gaps
23
+ # between reflected ranges.
24
+ #
25
+ # @return [Integer, nil]
26
+ optional :end_ms, Integer
27
+
28
+ # @!attribute start_ms
29
+ # Inclusive session-relative start in milliseconds. Required on reflected sideband
30
+ # events; omitted on the primary WebSocket.
31
+ #
32
+ # @return [Integer, nil]
33
+ optional :start_ms, Integer
34
+
35
+ # @!method initialize(delta:, end_ms: nil, start_ms: nil, type: :"session.output_audio.delta")
36
+ # An audio chunk generated by the Live model. Decode and play primary WebSocket
37
+ # chunks in delivery order using the configured session audio format. Sideband
38
+ # connections receive reflected output audio with timestamps.
39
+ #
40
+ # @param delta [String]
41
+ # Base64-encoded raw audio. Primary WebSocket events use the session's configured
42
+ # format; reflected sideband events use mono PCM16LE at 24 kHz.
43
+ #
44
+ # @param end_ms [Integer]
45
+ # Exclusive session-relative end in milliseconds. Required on reflected sideband
46
+ # events; omitted on the primary WebSocket. Dropped output frames leave gaps
47
+ # between reflected ranges.
48
+ #
49
+ # @param start_ms [Integer]
50
+ # Inclusive session-relative start in milliseconds. Required on reflected sideband
51
+ # events; omitted on the primary WebSocket.
52
+ #
53
+ # @param type [Symbol, :"session.output_audio.delta"]
54
+ # The event type, always `session.output_audio.delta`.
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,76 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Live
6
+ class OutputTranscriptDeltaEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute delta
8
+ # The transcript text fragment for the audio in this time range. Append fragments
9
+ # in delivery order to build the transcript.
10
+ #
11
+ # @return [String]
12
+ required :delta, String
13
+
14
+ # @!attribute end_ms
15
+ # The end of this event on the Live session timeline, in milliseconds from the
16
+ # beginning of the session. For appended context, this can equal start_ms.
17
+ #
18
+ # @return [Integer]
19
+ required :end_ms, Integer
20
+
21
+ # @!attribute event_id
22
+ # The unique ID of the Live server event.
23
+ #
24
+ # @return [String]
25
+ required :event_id, String
26
+
27
+ # @!attribute start_ms
28
+ # The start of this event on the Live session timeline, in milliseconds from the
29
+ # beginning of the session.
30
+ #
31
+ # @return [Integer]
32
+ required :start_ms, Integer
33
+
34
+ # @!attribute type
35
+ # The event type, always `session.output_transcript.delta`.
36
+ #
37
+ # @return [Symbol, :"session.output_transcript.delta"]
38
+ required :type, const: :"session.output_transcript.delta"
39
+
40
+ # @!attribute client_event_id
41
+ # The event_id of the client command associated with this server event, when
42
+ # supplied.
43
+ #
44
+ # @return [String, nil]
45
+ optional :client_event_id, String
46
+
47
+ # @!method initialize(delta:, end_ms:, event_id:, start_ms:, client_event_id: nil, type: :"session.output_transcript.delta")
48
+ # A transcript fragment for assistant output audio in the Live session. Accumulate
49
+ # fragments in delivery order; these events do not define complete turns or
50
+ # include a transcript-done event.
51
+ #
52
+ # @param delta [String]
53
+ # The transcript text fragment for the audio in this time range. Append fragments
54
+ # in delivery order to build the transcript.
55
+ #
56
+ # @param end_ms [Integer]
57
+ # The end of this event on the Live session timeline, in milliseconds from the
58
+ # beginning of the session. For appended context, this can equal start_ms.
59
+ #
60
+ # @param event_id [String]
61
+ # The unique ID of the Live server event.
62
+ #
63
+ # @param start_ms [Integer]
64
+ # The start of this event on the Live session timeline, in milliseconds from the
65
+ # beginning of the session.
66
+ #
67
+ # @param client_event_id [String]
68
+ # The event_id of the client command associated with this server event, when
69
+ # supplied.
70
+ #
71
+ # @param type [Symbol, :"session.output_transcript.delta"]
72
+ # The event type, always `session.output_transcript.delta`.
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Live
6
+ class ResponseCreateEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute type
8
+ # The Live client event type. Always `response.create`.
9
+ #
10
+ # @return [Symbol, :"response.create"]
11
+ required :type, const: :"response.create"
12
+
13
+ # @!attribute event_id
14
+ # Optional client identifier for correlating this command with a server event's
15
+ # client_event_id or error.client_event_id.
16
+ #
17
+ # @return [String, nil]
18
+ optional :event_id, String, nil?: true
19
+
20
+ # @!method initialize(event_id: nil, type: :"response.create")
21
+ # Request a response from the Live session’s Responses backend, or continue a
22
+ # delegated response waiting for tool results. Requires Responses delegation.
23
+ #
24
+ # @param event_id [String, nil]
25
+ # Optional client identifier for correlating this command with a server event's
26
+ # client_event_id or error.client_event_id.
27
+ #
28
+ # @param type [Symbol, :"response.create"]
29
+ # The Live client event type. Always `response.create`.
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,67 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Live
6
+ class ResponseEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute event
8
+ # The nested Responses streaming event. Dispatch on its type field. Response
9
+ # lifecycle snapshots omit input and clear instructions, tools, and output to keep
10
+ # messages small; consume granular output events for the generated content.
11
+ #
12
+ # @return [Hash{Symbol=>Object}]
13
+ required :event, OpenAI::Internal::Type::HashOf[OpenAI::Internal::Type::Unknown]
14
+
15
+ # @!attribute event_id
16
+ # The unique ID of the Live server event.
17
+ #
18
+ # @return [String]
19
+ required :event_id, String
20
+
21
+ # @!attribute type
22
+ # The event type, always `response.event`.
23
+ #
24
+ # @return [Symbol, :"response.event"]
25
+ required :type, const: :"response.event"
26
+
27
+ # @!attribute client_event_id
28
+ # The event_id of the client command associated with this server event, when
29
+ # supplied.
30
+ #
31
+ # @return [String, nil]
32
+ optional :client_event_id, String
33
+
34
+ # @!attribute delegation_id
35
+ # The Live delegation associated with the nested Responses event. May be null or
36
+ # omitted when the event cannot be correlated with a delegation.
37
+ #
38
+ # @return [String, nil]
39
+ optional :delegation_id, String, nil?: true
40
+
41
+ # @!method initialize(event:, event_id:, client_event_id: nil, delegation_id: nil, type: :"response.event")
42
+ # A streaming Responses API event from a backend delegated to by the Live session.
43
+ # Use the outer delegation_id to associate the nested stream with its Live
44
+ # delegation.
45
+ #
46
+ # @param event [Hash{Symbol=>Object}]
47
+ # The nested Responses streaming event. Dispatch on its type field. Response
48
+ # lifecycle snapshots omit input and clear instructions, tools, and output to keep
49
+ # messages small; consume granular output events for the generated content.
50
+ #
51
+ # @param event_id [String]
52
+ # The unique ID of the Live server event.
53
+ #
54
+ # @param client_event_id [String]
55
+ # The event_id of the client command associated with this server event, when
56
+ # supplied.
57
+ #
58
+ # @param delegation_id [String, nil]
59
+ # The Live delegation associated with the nested Responses event. May be null or
60
+ # omitted when the event cannot be correlated with a delegation.
61
+ #
62
+ # @param type [Symbol, :"response.event"]
63
+ # The event type, always `response.event`.
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Live
6
+ class ResponseItemCreateEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute item
8
+ # An input item to append to the Responses backend conversation, such as a user
9
+ # message or a function tool result.
10
+ #
11
+ # @return [OpenAI::Models::Responses::EasyInputMessage, OpenAI::Models::Responses::ResponseInputItem::Message, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseInputItem::FunctionCallOutput, OpenAI::Models::Responses::ResponseInputItem::ToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItemParam, OpenAI::Models::Responses::ResponseInputItem::AdditionalTools, OpenAI::Models::Responses::ResponseConfigurationUpdateItemParam, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseCompactionItemParam, OpenAI::Models::Responses::ResponseInputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseInputItem::ShellCall, OpenAI::Models::Responses::ResponseInputItem::ShellCallOutput, OpenAI::Models::Responses::ResponseInputItem::ApplyPatchCall, OpenAI::Models::Responses::ResponseInputItem::ApplyPatchCallOutput, OpenAI::Models::Responses::ResponseInputItem::McpListTools, OpenAI::Models::Responses::ResponseInputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseInputItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseInputItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCallOutput, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseInputItem::CompactionTrigger, OpenAI::Models::Responses::ResponseInputItem::ItemReference, OpenAI::Models::Responses::ResponseInputItem::Program, OpenAI::Models::Responses::ResponseInputItem::ProgramOutput]
12
+ required :item, union: -> { OpenAI::Responses::ResponseInputItem }
13
+
14
+ # @!attribute type
15
+ # The Live client event type. Always `response.item.create`.
16
+ #
17
+ # @return [Symbol, :"response.item.create"]
18
+ required :type, const: :"response.item.create"
19
+
20
+ # @!attribute event_id
21
+ # Optional client identifier for correlating this command with a server event's
22
+ # client_event_id or error.client_event_id.
23
+ #
24
+ # @return [String, nil]
25
+ optional :event_id, String, nil?: true
26
+
27
+ # @!method initialize(item:, event_id: nil, type: :"response.item.create")
28
+ # Add an input item to the Live session’s Responses backend. Requires Responses
29
+ # delegation; use `response.create` to request a response.
30
+ #
31
+ # @param item [OpenAI::Models::Responses::EasyInputMessage, OpenAI::Models::Responses::ResponseInputItem::Message, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseInputItem::FunctionCallOutput, OpenAI::Models::Responses::ResponseInputItem::ToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItemParam, OpenAI::Models::Responses::ResponseInputItem::AdditionalTools, OpenAI::Models::Responses::ResponseConfigurationUpdateItemParam, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseCompactionItemParam, OpenAI::Models::Responses::ResponseInputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseInputItem::ShellCall, OpenAI::Models::Responses::ResponseInputItem::ShellCallOutput, OpenAI::Models::Responses::ResponseInputItem::ApplyPatchCall, OpenAI::Models::Responses::ResponseInputItem::ApplyPatchCallOutput, OpenAI::Models::Responses::ResponseInputItem::McpListTools, OpenAI::Models::Responses::ResponseInputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseInputItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseInputItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCallOutput, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseInputItem::CompactionTrigger, OpenAI::Models::Responses::ResponseInputItem::ItemReference, OpenAI::Models::Responses::ResponseInputItem::Program, OpenAI::Models::Responses::ResponseInputItem::ProgramOutput]
32
+ # An input item to append to the Responses backend conversation, such as a user
33
+ # message or a function tool result.
34
+ #
35
+ # @param event_id [String, nil]
36
+ # Optional client identifier for correlating this command with a server event's
37
+ # client_event_id or error.client_event_id.
38
+ #
39
+ # @param type [Symbol, :"response.item.create"]
40
+ # The Live client event type. Always `response.item.create`.
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,332 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Live
6
+ class ResponsesDelegationConfig < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute model
8
+ # The model used for server-owned Responses delegations.
9
+ #
10
+ # @return [String]
11
+ required :model, String
12
+
13
+ # @!attribute instructions
14
+ # Instructions for the delegated Responses model, separate from Live instructions.
15
+ # See
16
+ # [backend prompting](https://developers.openai.com/api/docs/guides/live-delegation#start-with-your-existing-backend-prompt).
17
+ #
18
+ # @return [String, nil]
19
+ optional :instructions, String, nil?: true
20
+
21
+ # @!attribute max_output_tokens
22
+ # Maximum number of output tokens for each delegated response.
23
+ #
24
+ # @return [Integer, nil]
25
+ optional :max_output_tokens, Integer, nil?: true
26
+
27
+ # @!attribute parallel_tool_calls
28
+ # Whether the delegated Responses model may request multiple tool calls in a
29
+ # single response.
30
+ #
31
+ # @return [Boolean, nil]
32
+ optional :parallel_tool_calls, OpenAI::Internal::Type::Boolean, nil?: true
33
+
34
+ # @!attribute reasoning
35
+ # Reasoning settings passed to each delegated Responses request.
36
+ #
37
+ # @return [OpenAI::Models::Live::ResponsesDelegationConfig::Reasoning, nil]
38
+ optional :reasoning, -> { OpenAI::Live::ResponsesDelegationConfig::Reasoning }, nil?: true
39
+
40
+ # @!attribute service_tier
41
+ # Service tier for delegated Responses requests.
42
+ #
43
+ # @return [Symbol, OpenAI::Models::Live::ResponsesDelegationConfig::ServiceTier, nil]
44
+ optional :service_tier, enum: -> { OpenAI::Live::ResponsesDelegationConfig::ServiceTier }, nil?: true
45
+
46
+ # @!attribute text
47
+ # Text generation settings passed to each delegated Responses request.
48
+ #
49
+ # @return [OpenAI::Models::Live::ResponsesDelegationConfig::Text, nil]
50
+ optional :text, -> { OpenAI::Live::ResponsesDelegationConfig::Text }, nil?: true
51
+
52
+ # @!attribute tool_choice
53
+ # Controls which tool the Responses backend uses when handling a task delegated by
54
+ # the Live model.
55
+ #
56
+ # @return [Symbol, OpenAI::Models::Live::ResponsesDelegationConfig::ToolChoice::LiveToolChoiceEnum, OpenAI::Models::Live::ResponsesDelegationConfig::ToolChoice::LiveFunctionToolChoiceParam, OpenAI::Models::Live::ResponsesDelegationConfig::ToolChoice::LiveMCPToolChoiceParam, nil]
57
+ optional :tool_choice, union: -> { OpenAI::Live::ResponsesDelegationConfig::ToolChoice }
58
+
59
+ # @!attribute tools
60
+ # Tools available to the Responses backend while it handles tasks delegated by the
61
+ # Live model.
62
+ #
63
+ # @return [Array<OpenAI::Models::Live::FunctionTool, OpenAI::Models::Live::ResponsesDelegationConfig::Tool::WebSearch>, nil]
64
+ optional(
65
+ :tools,
66
+ -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Live::ResponsesDelegationConfig::Tool] }
67
+ )
68
+
69
+ # @!method initialize(model:, instructions: nil, max_output_tokens: nil, parallel_tool_calls: nil, reasoning: nil, service_tier: nil, text: nil, tool_choice: nil, tools: nil)
70
+ # Model, prompt, and tool settings for tasks delegated by the Live session to a
71
+ # Responses backend.
72
+ #
73
+ # @param model [String]
74
+ # The model used for server-owned Responses delegations.
75
+ #
76
+ # @param instructions [String, nil]
77
+ # Instructions for the delegated Responses model, separate from Live instructions.
78
+ # See
79
+ # [backend prompting](https://developers.openai.com/api/docs/guides/live-delegation#start-with-your-existing-backend-prompt).
80
+ #
81
+ # @param max_output_tokens [Integer, nil]
82
+ # Maximum number of output tokens for each delegated response.
83
+ #
84
+ # @param parallel_tool_calls [Boolean, nil]
85
+ # Whether the delegated Responses model may request multiple tool calls in a
86
+ # single response.
87
+ #
88
+ # @param reasoning [OpenAI::Models::Live::ResponsesDelegationConfig::Reasoning, nil]
89
+ # Reasoning settings passed to each delegated Responses request.
90
+ #
91
+ # @param service_tier [Symbol, OpenAI::Models::Live::ResponsesDelegationConfig::ServiceTier, nil]
92
+ # Service tier for delegated Responses requests.
93
+ #
94
+ # @param text [OpenAI::Models::Live::ResponsesDelegationConfig::Text, nil]
95
+ # Text generation settings passed to each delegated Responses request.
96
+ #
97
+ # @param tool_choice [Symbol, OpenAI::Models::Live::ResponsesDelegationConfig::ToolChoice::LiveToolChoiceEnum, OpenAI::Models::Live::ResponsesDelegationConfig::ToolChoice::LiveFunctionToolChoiceParam, OpenAI::Models::Live::ResponsesDelegationConfig::ToolChoice::LiveMCPToolChoiceParam]
98
+ # Controls which tool the Responses backend uses when handling a task delegated by
99
+ # the Live model.
100
+ #
101
+ # @param tools [Array<OpenAI::Models::Live::FunctionTool, OpenAI::Models::Live::ResponsesDelegationConfig::Tool::WebSearch>]
102
+ # Tools available to the Responses backend while it handles tasks delegated by the
103
+ # Live model.
104
+
105
+ # @see OpenAI::Models::Live::ResponsesDelegationConfig#reasoning
106
+ class Reasoning < OpenAI::Internal::Type::BaseModel
107
+ # @!attribute effort
108
+ # How much reasoning effort the delegated Responses model should use. Supported
109
+ # values depend on the backend model.
110
+ #
111
+ # @return [Symbol, OpenAI::Models::Live::ResponsesDelegationConfig::Reasoning::Effort, nil]
112
+ optional(
113
+ :effort,
114
+ enum: -> {
115
+ OpenAI::Live::ResponsesDelegationConfig::Reasoning::Effort
116
+ },
117
+ nil?: true
118
+ )
119
+
120
+ # @!attribute summary
121
+ # The reasoning summary to request from the delegated Responses model, when
122
+ # supported.
123
+ #
124
+ # @return [Symbol, OpenAI::Models::Live::ResponsesDelegationConfig::Reasoning::Summary, nil]
125
+ optional(
126
+ :summary,
127
+ enum: -> {
128
+ OpenAI::Live::ResponsesDelegationConfig::Reasoning::Summary
129
+ },
130
+ nil?: true
131
+ )
132
+
133
+ # @!method initialize(effort: nil, summary: nil)
134
+ # Reasoning settings passed to each delegated Responses request.
135
+ #
136
+ # @param effort [Symbol, OpenAI::Models::Live::ResponsesDelegationConfig::Reasoning::Effort, nil]
137
+ # How much reasoning effort the delegated Responses model should use. Supported
138
+ # values depend on the backend model.
139
+ #
140
+ # @param summary [Symbol, OpenAI::Models::Live::ResponsesDelegationConfig::Reasoning::Summary, nil]
141
+ # The reasoning summary to request from the delegated Responses model, when
142
+ # supported.
143
+
144
+ # How much reasoning effort the delegated Responses model should use. Supported
145
+ # values depend on the backend model.
146
+ #
147
+ # @see OpenAI::Models::Live::ResponsesDelegationConfig::Reasoning#effort
148
+ module Effort
149
+ extend OpenAI::Internal::Type::Enum
150
+
151
+ NONE = :none
152
+ MINIMAL = :minimal
153
+ LOW = :low
154
+ MEDIUM = :medium
155
+ HIGH = :high
156
+ XHIGH = :xhigh
157
+
158
+ # @!method self.values
159
+ # @return [Array<Symbol>]
160
+ end
161
+
162
+ # The reasoning summary to request from the delegated Responses model, when
163
+ # supported.
164
+ #
165
+ # @see OpenAI::Models::Live::ResponsesDelegationConfig::Reasoning#summary
166
+ module Summary
167
+ extend OpenAI::Internal::Type::Enum
168
+
169
+ CONCISE = :concise
170
+ DETAILED = :detailed
171
+ AUTO = :auto
172
+
173
+ # @!method self.values
174
+ # @return [Array<Symbol>]
175
+ end
176
+ end
177
+
178
+ # Service tier for delegated Responses requests.
179
+ #
180
+ # @see OpenAI::Models::Live::ResponsesDelegationConfig#service_tier
181
+ module ServiceTier
182
+ extend OpenAI::Internal::Type::Enum
183
+
184
+ AUTO = :auto
185
+ DEFAULT = :default
186
+ FAST_TIER_TEMP_PILOT = :fast_tier_temp_pilot
187
+ FLEX = :flex
188
+ PRIORITY = :priority
189
+ ULTRAFAST = :ultrafast
190
+
191
+ # @!method self.values
192
+ # @return [Array<Symbol>]
193
+ end
194
+
195
+ # @see OpenAI::Models::Live::ResponsesDelegationConfig#text
196
+ class Text < OpenAI::Internal::Type::BaseModel
197
+ # @!attribute verbosity
198
+ # The amount of detail in text generated by the Responses backend. This does not
199
+ # configure the Live model’s spoken delivery.
200
+ #
201
+ # @return [Symbol, OpenAI::Models::Live::ResponsesDelegationConfig::Text::Verbosity, nil]
202
+ optional(
203
+ :verbosity,
204
+ enum: -> {
205
+ OpenAI::Live::ResponsesDelegationConfig::Text::Verbosity
206
+ },
207
+ nil?: true
208
+ )
209
+
210
+ # @!method initialize(verbosity: nil)
211
+ # Text generation settings passed to each delegated Responses request.
212
+ #
213
+ # @param verbosity [Symbol, OpenAI::Models::Live::ResponsesDelegationConfig::Text::Verbosity, nil]
214
+ # The amount of detail in text generated by the Responses backend. This does not
215
+ # configure the Live model’s spoken delivery.
216
+
217
+ # The amount of detail in text generated by the Responses backend. This does not
218
+ # configure the Live model’s spoken delivery.
219
+ #
220
+ # @see OpenAI::Models::Live::ResponsesDelegationConfig::Text#verbosity
221
+ module Verbosity
222
+ extend OpenAI::Internal::Type::Enum
223
+
224
+ LOW = :low
225
+ MEDIUM = :medium
226
+ HIGH = :high
227
+
228
+ # @!method self.values
229
+ # @return [Array<Symbol>]
230
+ end
231
+ end
232
+
233
+ # Controls which tool the Responses backend uses when handling a task delegated by
234
+ # the Live model.
235
+ #
236
+ # @see OpenAI::Models::Live::ResponsesDelegationConfig#tool_choice
237
+ module ToolChoice
238
+ extend OpenAI::Internal::Type::Union
239
+
240
+ variant enum: -> { OpenAI::Live::ResponsesDelegationConfig::ToolChoice::LiveToolChoiceEnum }
241
+
242
+ variant -> { OpenAI::Live::ResponsesDelegationConfig::ToolChoice::LiveFunctionToolChoiceParam }
243
+
244
+ variant -> { OpenAI::Live::ResponsesDelegationConfig::ToolChoice::LiveMCPToolChoiceParam }
245
+
246
+ module LiveToolChoiceEnum
247
+ extend OpenAI::Internal::Type::Enum
248
+
249
+ AUTO = :auto
250
+ NONE = :none
251
+ REQUIRED = :required
252
+
253
+ # @!method self.values
254
+ # @return [Array<Symbol>]
255
+ end
256
+
257
+ class LiveFunctionToolChoiceParam < OpenAI::Internal::Type::BaseModel
258
+ # @!attribute name
259
+ #
260
+ # @return [String]
261
+ required :name, String
262
+
263
+ # @!attribute type
264
+ #
265
+ # @return [Symbol, :function]
266
+ required :type, const: :function
267
+
268
+ # @!method initialize(name:, type: :function)
269
+ # @param name [String]
270
+ # @param type [Symbol, :function]
271
+ end
272
+
273
+ class LiveMCPToolChoiceParam < OpenAI::Internal::Type::BaseModel
274
+ # @!attribute name
275
+ #
276
+ # @return [String]
277
+ required :name, String
278
+
279
+ # @!attribute server_label
280
+ #
281
+ # @return [String]
282
+ required :server_label, String
283
+
284
+ # @!attribute type
285
+ #
286
+ # @return [Symbol, :mcp]
287
+ required :type, const: :mcp
288
+
289
+ # @!method initialize(name:, server_label:, type: :mcp)
290
+ # @param name [String]
291
+ # @param server_label [String]
292
+ # @param type [Symbol, :mcp]
293
+ end
294
+
295
+ # @!method self.variants
296
+ # @return [Array(Symbol, OpenAI::Models::Live::ResponsesDelegationConfig::ToolChoice::LiveToolChoiceEnum, OpenAI::Models::Live::ResponsesDelegationConfig::ToolChoice::LiveFunctionToolChoiceParam, OpenAI::Models::Live::ResponsesDelegationConfig::ToolChoice::LiveMCPToolChoiceParam)]
297
+ end
298
+
299
+ # A function tool available to the Responses backend when the Live model delegates
300
+ # a task.
301
+ module Tool
302
+ extend OpenAI::Internal::Type::Union
303
+
304
+ discriminator :type
305
+
306
+ # A function tool available to the Responses backend when the Live model delegates a task.
307
+ variant :function, -> { OpenAI::Live::FunctionTool }
308
+
309
+ # A web search tool available to the Live session’s Responses backend.
310
+ variant :web_search, -> { OpenAI::Live::ResponsesDelegationConfig::Tool::WebSearch }
311
+
312
+ class WebSearch < OpenAI::Internal::Type::BaseModel
313
+ # @!attribute type
314
+ # The tool type. Always `web_search`.
315
+ #
316
+ # @return [Symbol, :web_search]
317
+ required :type, const: :web_search
318
+
319
+ # @!method initialize(type: :web_search)
320
+ # A web search tool available to the Live session’s Responses backend.
321
+ #
322
+ # @param type [Symbol, :web_search]
323
+ # The tool type. Always `web_search`.
324
+ end
325
+
326
+ # @!method self.variants
327
+ # @return [Array(OpenAI::Models::Live::FunctionTool, OpenAI::Models::Live::ResponsesDelegationConfig::Tool::WebSearch)]
328
+ end
329
+ end
330
+ end
331
+ end
332
+ end