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,143 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Live
7
+
8
+ class MediaSessionForkConfig < OpenAI::Internal::Type::BaseModel
9
+
10
+ OrHash = T.type_alias do
11
+ T.any(
12
+ OpenAI::Live::MediaSessionForkConfig,
13
+ OpenAI::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # Startup-only capabilities for an untrusted frontend attached to a unified WebRTC
18
+ # session. Trusted sideband connections are unaffected.
19
+ sig { returns(T.nilable(OpenAI::Live::ClientConfig)) }
20
+ attr_reader :client
21
+
22
+ sig { params(client: OpenAI::Live::ClientConfig::OrHash).void }
23
+ attr_writer :client
24
+
25
+ # Update the Responses backend for an existing Live session without changing
26
+ # delegation ownership.
27
+ sig { returns(T.nilable(OpenAI::Live::MediaSessionForkConfig::Delegation)) }
28
+ attr_reader :delegation
29
+
30
+ sig { params(delegation: OpenAI::Live::MediaSessionForkConfig::Delegation::OrHash).void }
31
+ attr_writer :delegation
32
+
33
+ # Whether to store the forked session. Omission inherits the stored session's
34
+ # setting.
35
+ sig { returns(T.nilable(T::Boolean)) }
36
+ attr_reader :store
37
+
38
+ sig { params(store: T::Boolean).void }
39
+ attr_writer :store
40
+
41
+ # Optional overrides for a stored Live session. Omitted settings are inherited.
42
+ # The model, voice, frontend instructions, and prior conversation come from the
43
+ # stored session. WebRTC negotiates its audio format; audio.format is only
44
+ # supported on WebSocket forks.
45
+ sig do
46
+ params(
47
+
48
+ client: OpenAI::Live::ClientConfig::OrHash,
49
+
50
+ delegation: OpenAI::Live::MediaSessionForkConfig::Delegation::OrHash,
51
+
52
+ store: T::Boolean
53
+ )
54
+ .returns(T.attached_class)
55
+ end
56
+ def self.new(
57
+
58
+ # Startup-only capabilities for an untrusted frontend attached to a unified WebRTC
59
+ # session. Trusted sideband connections are unaffected.
60
+ client: nil,
61
+
62
+ # Update the Responses backend for an existing Live session without changing
63
+ # delegation ownership.
64
+ delegation: nil,
65
+
66
+ # Whether to store the forked session. Omission inherits the stored session's
67
+ # setting.
68
+
69
+ store: nil
70
+ )
71
+ end
72
+
73
+ sig do
74
+ override.returns(
75
+ {
76
+ client: OpenAI::Live::ClientConfig,
77
+ delegation: OpenAI::Live::MediaSessionForkConfig::Delegation,
78
+ store: T::Boolean
79
+ }
80
+ )
81
+ end
82
+ def to_hash
83
+ end
84
+
85
+ class Delegation < OpenAI::Internal::Type::BaseModel
86
+ OrHash = T.type_alias do
87
+ T.any(
88
+ OpenAI::Live::MediaSessionForkConfig::Delegation,
89
+ OpenAI::Internal::AnyHash
90
+ )
91
+ end
92
+
93
+ # The delegation owner. Always `responses` for tasks handled by the Responses API.
94
+ sig { returns(Symbol) }
95
+ attr_accessor :type
96
+
97
+ # Responses backend settings to update. Omitted settings keep their existing
98
+ # values.
99
+ sig { returns(T.nilable(OpenAI::Live::ResponsesDelegationUpdateConfig)) }
100
+ attr_reader :responses
101
+
102
+ sig { params(responses: OpenAI::Live::ResponsesDelegationUpdateConfig::OrHash).void }
103
+ attr_writer :responses
104
+
105
+ # Update the Responses backend for an existing Live session without changing
106
+ # delegation ownership.
107
+ sig do
108
+ params(
109
+
110
+ responses: OpenAI::Live::ResponsesDelegationUpdateConfig::OrHash,
111
+
112
+ type: Symbol
113
+ )
114
+ .returns(T.attached_class)
115
+ end
116
+ def self.new(
117
+
118
+ # Responses backend settings to update. Omitted settings keep their existing
119
+ # values.
120
+ responses: nil,
121
+
122
+ # The delegation owner. Always `responses` for tasks handled by the Responses API.
123
+
124
+ type: :responses
125
+ )
126
+ end
127
+
128
+ sig do
129
+ override.returns(
130
+ {type: Symbol, responses: OpenAI::Live::ResponsesDelegationUpdateConfig}
131
+ )
132
+ end
133
+ def to_hash
134
+ end
135
+
136
+ end
137
+
138
+ end
139
+
140
+ end
141
+
142
+ end
143
+ end
@@ -0,0 +1,93 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Live
7
+
8
+ class OutputAudioDeltaEvent < OpenAI::Internal::Type::BaseModel
9
+
10
+ OrHash = T.type_alias do
11
+ T.any(
12
+ OpenAI::Live::OutputAudioDeltaEvent,
13
+ OpenAI::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # Base64-encoded raw audio. Primary WebSocket events use the session's configured
18
+ # format; reflected sideband events use mono PCM16LE at 24 kHz.
19
+ sig { returns(String) }
20
+ attr_accessor :delta
21
+
22
+ # The event type, always `session.output_audio.delta`.
23
+ sig { returns(Symbol) }
24
+ attr_accessor :type
25
+
26
+ # Exclusive session-relative end in milliseconds. Required on reflected sideband
27
+ # events; omitted on the primary WebSocket. Dropped output frames leave gaps
28
+ # between reflected ranges.
29
+ sig { returns(T.nilable(Integer)) }
30
+ attr_reader :end_ms
31
+
32
+ sig { params(end_ms: Integer).void }
33
+ attr_writer :end_ms
34
+
35
+ # Inclusive session-relative start in milliseconds. Required on reflected sideband
36
+ # events; omitted on the primary WebSocket.
37
+ sig { returns(T.nilable(Integer)) }
38
+ attr_reader :start_ms
39
+
40
+ sig { params(start_ms: Integer).void }
41
+ attr_writer :start_ms
42
+
43
+ # An audio chunk generated by the Live model. Decode and play primary WebSocket
44
+ # chunks in delivery order using the configured session audio format. Sideband
45
+ # connections receive reflected output audio with timestamps.
46
+ sig do
47
+ params(
48
+
49
+ delta: String,
50
+
51
+ end_ms: Integer,
52
+
53
+ start_ms: Integer,
54
+
55
+ type: Symbol
56
+ )
57
+ .returns(T.attached_class)
58
+ end
59
+ def self.new(
60
+
61
+ # Base64-encoded raw audio. Primary WebSocket events use the session's configured
62
+ # format; reflected sideband events use mono PCM16LE at 24 kHz.
63
+ delta:,
64
+
65
+ # Exclusive session-relative end in milliseconds. Required on reflected sideband
66
+ # events; omitted on the primary WebSocket. Dropped output frames leave gaps
67
+ # between reflected ranges.
68
+ end_ms: nil,
69
+
70
+ # Inclusive session-relative start in milliseconds. Required on reflected sideband
71
+ # events; omitted on the primary WebSocket.
72
+ start_ms: nil,
73
+
74
+ # The event type, always `session.output_audio.delta`.
75
+
76
+ type: :"session.output_audio.delta"
77
+ )
78
+ end
79
+
80
+ sig do
81
+ override.returns(
82
+ {delta: String, type: Symbol, end_ms: Integer, start_ms: Integer}
83
+ )
84
+ end
85
+ def to_hash
86
+ end
87
+
88
+ end
89
+
90
+ end
91
+
92
+ end
93
+ end
@@ -0,0 +1,115 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Live
7
+
8
+ class OutputTranscriptDeltaEvent < OpenAI::Internal::Type::BaseModel
9
+
10
+ OrHash = T.type_alias do
11
+ T.any(
12
+ OpenAI::Live::OutputTranscriptDeltaEvent,
13
+ OpenAI::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # The transcript text fragment for the audio in this time range. Append fragments
18
+ # in delivery order to build the transcript.
19
+ sig { returns(String) }
20
+ attr_accessor :delta
21
+
22
+ # The end of this event on the Live session timeline, in milliseconds from the
23
+ # beginning of the session. For appended context, this can equal start_ms.
24
+ sig { returns(Integer) }
25
+ attr_accessor :end_ms
26
+
27
+ # The unique ID of the Live server event.
28
+ sig { returns(String) }
29
+ attr_accessor :event_id
30
+
31
+ # The start of this event on the Live session timeline, in milliseconds from the
32
+ # beginning of the session.
33
+ sig { returns(Integer) }
34
+ attr_accessor :start_ms
35
+
36
+ # The event type, always `session.output_transcript.delta`.
37
+ sig { returns(Symbol) }
38
+ attr_accessor :type
39
+
40
+ # The event_id of the client command associated with this server event, when
41
+ # supplied.
42
+ sig { returns(T.nilable(String)) }
43
+ attr_reader :client_event_id
44
+
45
+ sig { params(client_event_id: String).void }
46
+ attr_writer :client_event_id
47
+
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
+ sig do
52
+ params(
53
+
54
+ delta: String,
55
+
56
+ end_ms: Integer,
57
+
58
+ event_id: String,
59
+
60
+ start_ms: Integer,
61
+
62
+ client_event_id: String,
63
+
64
+ type: Symbol
65
+ )
66
+ .returns(T.attached_class)
67
+ end
68
+ def self.new(
69
+
70
+ # The transcript text fragment for the audio in this time range. Append fragments
71
+ # in delivery order to build the transcript.
72
+ delta:,
73
+
74
+ # The end of this event on the Live session timeline, in milliseconds from the
75
+ # beginning of the session. For appended context, this can equal start_ms.
76
+ end_ms:,
77
+
78
+ # The unique ID of the Live server event.
79
+ event_id:,
80
+
81
+ # The start of this event on the Live session timeline, in milliseconds from the
82
+ # beginning of the session.
83
+ start_ms:,
84
+
85
+ # The event_id of the client command associated with this server event, when
86
+ # supplied.
87
+ client_event_id: nil,
88
+
89
+ # The event type, always `session.output_transcript.delta`.
90
+
91
+ type: :"session.output_transcript.delta"
92
+ )
93
+ end
94
+
95
+ sig do
96
+ override.returns(
97
+ {
98
+ delta: String,
99
+ end_ms: Integer,
100
+ event_id: String,
101
+ start_ms: Integer,
102
+ type: Symbol,
103
+ client_event_id: T.nilable(String)
104
+ }
105
+ )
106
+ end
107
+ def to_hash
108
+ end
109
+
110
+ end
111
+
112
+ end
113
+
114
+ end
115
+ end
@@ -0,0 +1,62 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Live
7
+
8
+ class ResponseCreateEvent < OpenAI::Internal::Type::BaseModel
9
+
10
+ OrHash = T.type_alias do
11
+ T.any(
12
+ OpenAI::Live::ResponseCreateEvent,
13
+ OpenAI::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # The Live client event type. Always `response.create`.
18
+ sig { returns(Symbol) }
19
+ attr_accessor :type
20
+
21
+ # Optional client identifier for correlating this command with a server event's
22
+ # client_event_id or error.client_event_id.
23
+ sig { returns(T.nilable(String)) }
24
+ attr_accessor :event_id
25
+
26
+ # Request a response from the Live session’s Responses backend, or continue a
27
+ # delegated response waiting for tool results. Requires Responses delegation.
28
+ sig do
29
+ params(
30
+
31
+ event_id: T.nilable(String),
32
+
33
+ type: Symbol
34
+ )
35
+ .returns(T.attached_class)
36
+ end
37
+ def self.new(
38
+
39
+ # Optional client identifier for correlating this command with a server event's
40
+ # client_event_id or error.client_event_id.
41
+ event_id: nil,
42
+
43
+ # The Live client event type. Always `response.create`.
44
+
45
+ type: :"response.create"
46
+ )
47
+ end
48
+
49
+ sig do
50
+ override.returns(
51
+ {type: Symbol, event_id: T.nilable(String)}
52
+ )
53
+ end
54
+ def to_hash
55
+ end
56
+
57
+ end
58
+
59
+ end
60
+
61
+ end
62
+ end
@@ -0,0 +1,105 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Live
7
+
8
+ class ResponseEvent < OpenAI::Internal::Type::BaseModel
9
+
10
+ OrHash = T.type_alias do
11
+ T.any(
12
+ OpenAI::Live::ResponseEvent,
13
+ OpenAI::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # The nested Responses streaming event. Dispatch on its type field. Response
18
+ # lifecycle snapshots omit input and clear instructions, tools, and output to keep
19
+ # messages small; consume granular output events for the generated content.
20
+ sig { returns(T::Hash[Symbol, T.anything]) }
21
+ attr_accessor :event
22
+
23
+ # The unique ID of the Live server event.
24
+ sig { returns(String) }
25
+ attr_accessor :event_id
26
+
27
+ # The event type, always `response.event`.
28
+ sig { returns(Symbol) }
29
+ attr_accessor :type
30
+
31
+ # The event_id of the client command associated with this server event, when
32
+ # supplied.
33
+ sig { returns(T.nilable(String)) }
34
+ attr_reader :client_event_id
35
+
36
+ sig { params(client_event_id: String).void }
37
+ attr_writer :client_event_id
38
+
39
+ # The Live delegation associated with the nested Responses event. May be null or
40
+ # omitted when the event cannot be correlated with a delegation.
41
+ sig { returns(T.nilable(String)) }
42
+ attr_accessor :delegation_id
43
+
44
+ # A streaming Responses API event from a backend delegated to by the Live session.
45
+ # Use the outer delegation_id to associate the nested stream with its Live
46
+ # delegation.
47
+ sig do
48
+ params(
49
+
50
+ event: T::Hash[Symbol, T.anything],
51
+
52
+ event_id: String,
53
+
54
+ client_event_id: String,
55
+
56
+ delegation_id: T.nilable(String),
57
+
58
+ type: Symbol
59
+ )
60
+ .returns(T.attached_class)
61
+ end
62
+ def self.new(
63
+
64
+ # The nested Responses streaming event. Dispatch on its type field. Response
65
+ # lifecycle snapshots omit input and clear instructions, tools, and output to keep
66
+ # messages small; consume granular output events for the generated content.
67
+ event:,
68
+
69
+ # The unique ID of the Live server event.
70
+ event_id:,
71
+
72
+ # The event_id of the client command associated with this server event, when
73
+ # supplied.
74
+ client_event_id: nil,
75
+
76
+ # The Live delegation associated with the nested Responses event. May be null or
77
+ # omitted when the event cannot be correlated with a delegation.
78
+ delegation_id: nil,
79
+
80
+ # The event type, always `response.event`.
81
+
82
+ type: :"response.event"
83
+ )
84
+ end
85
+
86
+ sig do
87
+ override.returns(
88
+ {
89
+ event: T::Hash[Symbol, T.anything],
90
+ event_id: String,
91
+ type: Symbol,
92
+ client_event_id: T.nilable(String),
93
+ delegation_id: T.nilable(String)
94
+ }
95
+ )
96
+ end
97
+ def to_hash
98
+ end
99
+
100
+ end
101
+
102
+ end
103
+
104
+ end
105
+ end
@@ -0,0 +1,183 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Live
7
+
8
+ class ResponseItemCreateEvent < OpenAI::Internal::Type::BaseModel
9
+
10
+ OrHash = T.type_alias do
11
+ T.any(
12
+ OpenAI::Live::ResponseItemCreateEvent,
13
+ OpenAI::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # An input item to append to the Responses backend conversation, such as a user
18
+ # message or a function tool result.
19
+ sig {
20
+ returns(
21
+ T.any(
22
+ OpenAI::Responses::EasyInputMessage,
23
+ OpenAI::Responses::ResponseInputItem::Message,
24
+ OpenAI::Responses::ResponseOutputMessage,
25
+ OpenAI::Responses::ResponseFileSearchToolCall,
26
+ OpenAI::Responses::ResponseComputerToolCall,
27
+ OpenAI::Responses::ResponseInputItem::ComputerCallOutput,
28
+ OpenAI::Responses::ResponseFunctionWebSearch,
29
+ OpenAI::Responses::ResponseFunctionToolCall,
30
+ OpenAI::Responses::ResponseInputItem::FunctionCallOutput,
31
+ OpenAI::Responses::ResponseInputItem::ToolSearchCall,
32
+ OpenAI::Responses::ResponseToolSearchOutputItemParam,
33
+ OpenAI::Responses::ResponseInputItem::AdditionalTools,
34
+ OpenAI::Responses::ResponseConfigurationUpdateItemParam,
35
+ OpenAI::Responses::ResponseReasoningItem,
36
+ OpenAI::Responses::ResponseCompactionItemParam,
37
+ OpenAI::Responses::ResponseInputItem::ImageGenerationCall,
38
+ OpenAI::Responses::ResponseCodeInterpreterToolCall,
39
+ OpenAI::Responses::ResponseInputItem::LocalShellCall,
40
+ OpenAI::Responses::ResponseInputItem::LocalShellCallOutput,
41
+ OpenAI::Responses::ResponseInputItem::ShellCall,
42
+ OpenAI::Responses::ResponseInputItem::ShellCallOutput,
43
+ OpenAI::Responses::ResponseInputItem::ApplyPatchCall,
44
+ OpenAI::Responses::ResponseInputItem::ApplyPatchCallOutput,
45
+ OpenAI::Responses::ResponseInputItem::McpListTools,
46
+ OpenAI::Responses::ResponseInputItem::McpApprovalRequest,
47
+ OpenAI::Responses::ResponseInputItem::McpApprovalResponse,
48
+ OpenAI::Responses::ResponseInputItem::McpCall,
49
+ OpenAI::Responses::ResponseCustomToolCallOutput,
50
+ OpenAI::Responses::ResponseCustomToolCall,
51
+ OpenAI::Responses::ResponseInputItem::CompactionTrigger,
52
+ OpenAI::Responses::ResponseInputItem::ItemReference,
53
+ OpenAI::Responses::ResponseInputItem::Program,
54
+ OpenAI::Responses::ResponseInputItem::ProgramOutput
55
+ )
56
+ )
57
+ }
58
+ attr_accessor :item
59
+
60
+ # The Live client event type. Always `response.item.create`.
61
+ sig { returns(Symbol) }
62
+ attr_accessor :type
63
+
64
+ # Optional client identifier for correlating this command with a server event's
65
+ # client_event_id or error.client_event_id.
66
+ sig { returns(T.nilable(String)) }
67
+ attr_accessor :event_id
68
+
69
+ # Add an input item to the Live session’s Responses backend. Requires Responses
70
+ # delegation; use `response.create` to request a response.
71
+ sig do
72
+ params(
73
+
74
+ item: T.any(
75
+ OpenAI::Responses::EasyInputMessage::OrHash,
76
+ OpenAI::Responses::ResponseInputItem::Message::OrHash,
77
+ OpenAI::Responses::ResponseOutputMessage::OrHash,
78
+ OpenAI::Responses::ResponseFileSearchToolCall::OrHash,
79
+ OpenAI::Responses::ResponseComputerToolCall::OrHash,
80
+ OpenAI::Responses::ResponseInputItem::ComputerCallOutput::OrHash,
81
+ OpenAI::Responses::ResponseFunctionWebSearch::OrHash,
82
+ OpenAI::Responses::ResponseFunctionToolCall::OrHash,
83
+ OpenAI::Responses::ResponseInputItem::FunctionCallOutput::OrHash,
84
+ OpenAI::Responses::ResponseInputItem::ToolSearchCall::OrHash,
85
+ OpenAI::Responses::ResponseToolSearchOutputItemParam::OrHash,
86
+ OpenAI::Responses::ResponseInputItem::AdditionalTools::OrHash,
87
+ OpenAI::Responses::ResponseConfigurationUpdateItemParam::OrHash,
88
+ OpenAI::Responses::ResponseReasoningItem::OrHash,
89
+ OpenAI::Responses::ResponseCompactionItemParam::OrHash,
90
+ OpenAI::Responses::ResponseInputItem::ImageGenerationCall::OrHash,
91
+ OpenAI::Responses::ResponseCodeInterpreterToolCall::OrHash,
92
+ OpenAI::Responses::ResponseInputItem::LocalShellCall::OrHash,
93
+ OpenAI::Responses::ResponseInputItem::LocalShellCallOutput::OrHash,
94
+ OpenAI::Responses::ResponseInputItem::ShellCall::OrHash,
95
+ OpenAI::Responses::ResponseInputItem::ShellCallOutput::OrHash,
96
+ OpenAI::Responses::ResponseInputItem::ApplyPatchCall::OrHash,
97
+ OpenAI::Responses::ResponseInputItem::ApplyPatchCallOutput::OrHash,
98
+ OpenAI::Responses::ResponseInputItem::McpListTools::OrHash,
99
+ OpenAI::Responses::ResponseInputItem::McpApprovalRequest::OrHash,
100
+ OpenAI::Responses::ResponseInputItem::McpApprovalResponse::OrHash,
101
+ OpenAI::Responses::ResponseInputItem::McpCall::OrHash,
102
+ OpenAI::Responses::ResponseCustomToolCallOutput::OrHash,
103
+ OpenAI::Responses::ResponseCustomToolCall::OrHash,
104
+ OpenAI::Responses::ResponseInputItem::CompactionTrigger::OrHash,
105
+ OpenAI::Responses::ResponseInputItem::ItemReference::OrHash,
106
+ OpenAI::Responses::ResponseInputItem::Program::OrHash,
107
+ OpenAI::Responses::ResponseInputItem::ProgramOutput::OrHash
108
+ ),
109
+
110
+ event_id: T.nilable(String),
111
+
112
+ type: Symbol
113
+ )
114
+ .returns(T.attached_class)
115
+ end
116
+ def self.new(
117
+
118
+ # An input item to append to the Responses backend conversation, such as a user
119
+ # message or a function tool result.
120
+ item:,
121
+
122
+ # Optional client identifier for correlating this command with a server event's
123
+ # client_event_id or error.client_event_id.
124
+ event_id: nil,
125
+
126
+ # The Live client event type. Always `response.item.create`.
127
+
128
+ type: :"response.item.create"
129
+ )
130
+ end
131
+
132
+ sig do
133
+ override.returns(
134
+ {
135
+ item: T.any(
136
+ OpenAI::Responses::EasyInputMessage,
137
+ OpenAI::Responses::ResponseInputItem::Message,
138
+ OpenAI::Responses::ResponseOutputMessage,
139
+ OpenAI::Responses::ResponseFileSearchToolCall,
140
+ OpenAI::Responses::ResponseComputerToolCall,
141
+ OpenAI::Responses::ResponseInputItem::ComputerCallOutput,
142
+ OpenAI::Responses::ResponseFunctionWebSearch,
143
+ OpenAI::Responses::ResponseFunctionToolCall,
144
+ OpenAI::Responses::ResponseInputItem::FunctionCallOutput,
145
+ OpenAI::Responses::ResponseInputItem::ToolSearchCall,
146
+ OpenAI::Responses::ResponseToolSearchOutputItemParam,
147
+ OpenAI::Responses::ResponseInputItem::AdditionalTools,
148
+ OpenAI::Responses::ResponseConfigurationUpdateItemParam,
149
+ OpenAI::Responses::ResponseReasoningItem,
150
+ OpenAI::Responses::ResponseCompactionItemParam,
151
+ OpenAI::Responses::ResponseInputItem::ImageGenerationCall,
152
+ OpenAI::Responses::ResponseCodeInterpreterToolCall,
153
+ OpenAI::Responses::ResponseInputItem::LocalShellCall,
154
+ OpenAI::Responses::ResponseInputItem::LocalShellCallOutput,
155
+ OpenAI::Responses::ResponseInputItem::ShellCall,
156
+ OpenAI::Responses::ResponseInputItem::ShellCallOutput,
157
+ OpenAI::Responses::ResponseInputItem::ApplyPatchCall,
158
+ OpenAI::Responses::ResponseInputItem::ApplyPatchCallOutput,
159
+ OpenAI::Responses::ResponseInputItem::McpListTools,
160
+ OpenAI::Responses::ResponseInputItem::McpApprovalRequest,
161
+ OpenAI::Responses::ResponseInputItem::McpApprovalResponse,
162
+ OpenAI::Responses::ResponseInputItem::McpCall,
163
+ OpenAI::Responses::ResponseCustomToolCallOutput,
164
+ OpenAI::Responses::ResponseCustomToolCall,
165
+ OpenAI::Responses::ResponseInputItem::CompactionTrigger,
166
+ OpenAI::Responses::ResponseInputItem::ItemReference,
167
+ OpenAI::Responses::ResponseInputItem::Program,
168
+ OpenAI::Responses::ResponseInputItem::ProgramOutput
169
+ ),
170
+ type: Symbol,
171
+ event_id: T.nilable(String)
172
+ }
173
+ )
174
+ end
175
+ def to_hash
176
+ end
177
+
178
+ end
179
+
180
+ end
181
+
182
+ end
183
+ end