openai 0.78.0 → 0.80.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 +99 -0
  3. data/README.md +241 -8
  4. data/SECURITY.md +6 -22
  5. data/azure.md +110 -0
  6. data/bedrock.md +197 -0
  7. data/examples/mtls_custom_http_client.rb +61 -0
  8. data/lib/openai/auth/workload_identity.rb +13 -2
  9. data/lib/openai/auth/workload_identity_auth.rb +2 -1
  10. data/lib/openai/client.rb +29 -6
  11. data/lib/openai/errors.rb +11 -1
  12. data/lib/openai/helpers/streaming/chat_completion_stream.rb +3 -3
  13. data/lib/openai/helpers/streaming/response_stream.rb +5 -6
  14. data/lib/openai/helpers/structured_output/base_model.rb +20 -19
  15. data/lib/openai/helpers/structured_output/json_schema_converter.rb +12 -5
  16. data/lib/openai/http_client.rb +99 -7
  17. data/lib/openai/internal/conversation_cursor_page.rb +5 -6
  18. data/lib/openai/internal/cursor_page.rb +3 -3
  19. data/lib/openai/internal/logging.rb +419 -0
  20. data/lib/openai/internal/next_cursor_page.rb +5 -6
  21. data/lib/openai/internal/page.rb +2 -2
  22. data/lib/openai/internal/provider.rb +7 -1
  23. data/lib/openai/internal/read_io_adapter.rb +42 -18
  24. data/lib/openai/internal/stream.rb +2 -2
  25. data/lib/openai/internal/transport/base_client.rb +137 -37
  26. data/lib/openai/internal/type/array_of.rb +6 -4
  27. data/lib/openai/internal/type/base_model.rb +39 -1
  28. data/lib/openai/internal/type/base_page.rb +19 -2
  29. data/lib/openai/internal/type/base_stream.rb +39 -7
  30. data/lib/openai/internal/type/hash_of.rb +3 -3
  31. data/lib/openai/internal/util.rb +52 -27
  32. data/lib/openai/models/admin/organization/audit_log_list_params.rb +3 -1
  33. data/lib/openai/models/admin/organization/audit_log_list_response.rb +33 -11
  34. data/lib/openai/models/admin/organization/groups/role_list_response.rb +5 -1
  35. data/lib/openai/models/admin/organization/groups/role_retrieve_response.rb +5 -1
  36. data/lib/openai/models/admin/organization/projects/groups/role_list_response.rb +6 -1
  37. data/lib/openai/models/admin/organization/projects/groups/role_retrieve_response.rb +6 -1
  38. data/lib/openai/models/admin/organization/projects/service_account_create_response.rb +3 -1
  39. data/lib/openai/models/admin/organization/projects/users/role_list_response.rb +6 -1
  40. data/lib/openai/models/admin/organization/projects/users/role_retrieve_response.rb +6 -1
  41. data/lib/openai/models/admin/organization/users/role_list_response.rb +5 -1
  42. data/lib/openai/models/admin/organization/users/role_retrieve_response.rb +5 -1
  43. data/lib/openai/models/all_models.rb +5 -0
  44. data/lib/openai/models/audio/transcription_create_params.rb +7 -1
  45. data/lib/openai/models/audio/translation_create_params.rb +7 -1
  46. data/lib/openai/models/beta/beta_mcp_tool_call_error.rb +84 -0
  47. data/lib/openai/models/beta/beta_response.rb +27 -0
  48. data/lib/openai/models/beta/beta_response_input_item.rb +3 -3
  49. data/lib/openai/models/beta/beta_response_item.rb +3 -3
  50. data/lib/openai/models/beta/beta_response_output_item.rb +3 -3
  51. data/lib/openai/models/beta/beta_response_output_item_added_event.rb +5 -2
  52. data/lib/openai/models/beta/beta_response_output_text_annotation_added_event.rb +201 -4
  53. data/lib/openai/models/beta/beta_response_reasoning_item.rb +5 -0
  54. data/lib/openai/models/beta/beta_response_stream_event.rb +1 -1
  55. data/lib/openai/models/beta/beta_responses_client_event.rb +46 -3
  56. data/lib/openai/models/beta/beta_responses_server_event.rb +1143 -63
  57. data/lib/openai/models/beta/beta_web_search_tool.rb +11 -1
  58. data/lib/openai/models/beta/response_compact_params.rb +18 -0
  59. data/lib/openai/models/beta/response_create_params.rb +27 -0
  60. data/lib/openai/models/chat_model.rb +1 -0
  61. data/lib/openai/models/completion_usage.rb +26 -2
  62. data/lib/openai/models/containers/file_create_params.rb +4 -0
  63. data/lib/openai/models/content_provenance_check_create_params.rb +4 -0
  64. data/lib/openai/models/conversations/conversation_item.rb +3 -3
  65. data/lib/openai/models/file_create_params.rb +4 -0
  66. data/lib/openai/models/image_create_variation_params.rb +4 -0
  67. data/lib/openai/models/image_edit_params.rb +8 -0
  68. data/lib/openai/models/model.rb +9 -1
  69. data/lib/openai/models/responses/mcp_tool_call_error.rb +82 -0
  70. data/lib/openai/models/responses/response.rb +9 -0
  71. data/lib/openai/models/responses/response_compact_params.rb +18 -0
  72. data/lib/openai/models/responses/response_create_params.rb +9 -0
  73. data/lib/openai/models/responses/response_input_item.rb +3 -3
  74. data/lib/openai/models/responses/response_item.rb +3 -3
  75. data/lib/openai/models/responses/response_output_item.rb +3 -3
  76. data/lib/openai/models/responses/response_output_item_added_event.rb +5 -2
  77. data/lib/openai/models/responses/response_output_text_annotation_added_event.rb +201 -4
  78. data/lib/openai/models/responses/response_reasoning_item.rb +5 -0
  79. data/lib/openai/models/responses/response_stream_event.rb +1 -1
  80. data/lib/openai/models/responses/responses_client_event.rb +22 -1
  81. data/lib/openai/models/responses/responses_server_event.rb +1107 -56
  82. data/lib/openai/models/responses/web_search_tool.rb +11 -1
  83. data/lib/openai/models/responses_model.rb +5 -0
  84. data/lib/openai/models/skill_create_params.rb +4 -0
  85. data/lib/openai/models/skills/version_create_params.rb +4 -0
  86. data/lib/openai/models/uploads/part_create_params.rb +4 -0
  87. data/lib/openai/models/vector_store_search_response.rb +3 -1
  88. data/lib/openai/models/video_create_character_params.rb +4 -0
  89. data/lib/openai/models/video_create_params.rb +4 -0
  90. data/lib/openai/models/video_edit_params.rb +4 -0
  91. data/lib/openai/models/video_extend_params.rb +4 -0
  92. data/lib/openai/models.rb +9 -1
  93. data/lib/openai/net_http_client.rb +20 -6
  94. data/lib/openai/providers/azure.rb +216 -0
  95. data/lib/openai/providers/bedrock.rb +130 -17
  96. data/lib/openai/resources/admin/organization/projects/groups/roles.rb +1 -1
  97. data/lib/openai/resources/admin/organization/projects/groups.rb +1 -1
  98. data/lib/openai/resources/admin/organization/projects/users/roles.rb +1 -1
  99. data/lib/openai/resources/admin/organization/projects.rb +4 -2
  100. data/lib/openai/resources/audio/transcriptions.rb +8 -0
  101. data/lib/openai/resources/audio/translations.rb +4 -0
  102. data/lib/openai/resources/beta/responses.rb +1 -1
  103. data/lib/openai/resources/beta/threads/runs/steps.rb +2 -2
  104. data/lib/openai/resources/containers/files.rb +4 -0
  105. data/lib/openai/resources/content_provenance_checks.rb +4 -0
  106. data/lib/openai/resources/conversations/items.rb +1 -1
  107. data/lib/openai/resources/evals/runs/output_items.rb +1 -1
  108. data/lib/openai/resources/files.rb +5 -1
  109. data/lib/openai/resources/images.rb +12 -0
  110. data/lib/openai/resources/responses.rb +3 -2
  111. data/lib/openai/resources/skills/versions.rb +4 -0
  112. data/lib/openai/resources/skills.rb +4 -0
  113. data/lib/openai/resources/uploads/parts.rb +4 -0
  114. data/lib/openai/resources/vector_stores/file_batches.rb +1 -1
  115. data/lib/openai/resources/videos.rb +38 -0
  116. data/lib/openai/resources/webhooks.rb +18 -6
  117. data/lib/openai/version.rb +1 -1
  118. data/lib/openai.rb +111 -105
  119. data/rbi/openai/auth.rbi +4 -4
  120. data/rbi/openai/client.rbi +13 -3
  121. data/rbi/openai/errors.rbi +7 -0
  122. data/rbi/openai/helpers/streaming/events.rbi +12 -0
  123. data/rbi/openai/http_client.rbi +62 -2
  124. data/rbi/openai/internal/logging.rbi +192 -0
  125. data/rbi/openai/internal/provider.rbi +3 -0
  126. data/rbi/openai/internal/read_io_adapter.rbi +6 -1
  127. data/rbi/openai/internal/transport/base_client.rbi +61 -7
  128. data/rbi/openai/internal/type/base_model.rbi +24 -1
  129. data/rbi/openai/internal/type/base_page.rbi +13 -2
  130. data/rbi/openai/internal/type/base_stream.rbi +15 -4
  131. data/rbi/openai/internal/util.rbi +26 -2
  132. data/rbi/openai/models/admin/organization/audit_log_list_params.rbi +5 -0
  133. data/rbi/openai/models/admin/organization/audit_log_list_response.rbi +5 -0
  134. data/rbi/openai/models/all_models.rbi +25 -0
  135. data/rbi/openai/models/audio/transcription_create_params.rbi +14 -2
  136. data/rbi/openai/models/audio/translation_create_params.rbi +14 -2
  137. data/rbi/openai/models/beta/beta_mcp_tool_call_error.rbi +122 -0
  138. data/rbi/openai/models/beta/beta_response.rbi +47 -0
  139. data/rbi/openai/models/beta/beta_response_input_item.rbi +27 -3
  140. data/rbi/openai/models/beta/beta_response_item.rbi +27 -3
  141. data/rbi/openai/models/beta/beta_response_output_item.rbi +27 -3
  142. data/rbi/openai/models/beta/beta_response_output_item_added_event.rbi +8 -2
  143. data/rbi/openai/models/beta/beta_response_output_text_annotation_added_event.rbi +297 -5
  144. data/rbi/openai/models/beta/beta_response_reasoning_item.rbi +10 -0
  145. data/rbi/openai/models/beta/beta_response_stream_event.rbi +1 -1
  146. data/rbi/openai/models/beta/beta_responses_client_event.rbi +69 -1
  147. data/rbi/openai/models/beta/beta_responses_server_event.rbi +3945 -54
  148. data/rbi/openai/models/beta/beta_web_search_tool.rbi +15 -0
  149. data/rbi/openai/models/beta/response_compact_params.rbi +30 -0
  150. data/rbi/openai/models/beta/response_create_params.rbi +47 -0
  151. data/rbi/openai/models/chat_model.rbi +2 -0
  152. data/rbi/openai/models/completion_usage.rbi +39 -6
  153. data/rbi/openai/models/containers/file_create_params.rbi +8 -0
  154. data/rbi/openai/models/content_provenance_check_create_params.rbi +8 -0
  155. data/rbi/openai/models/conversations/conversation_item.rbi +12 -3
  156. data/rbi/openai/models/file_create_params.rbi +8 -0
  157. data/rbi/openai/models/image_create_variation_params.rbi +8 -0
  158. data/rbi/openai/models/image_edit_params.rbi +16 -0
  159. data/rbi/openai/models/model.rbi +14 -1
  160. data/rbi/openai/models/responses/mcp_tool_call_error.rbi +120 -0
  161. data/rbi/openai/models/responses/response.rbi +17 -0
  162. data/rbi/openai/models/responses/response_compact_params.rbi +30 -0
  163. data/rbi/openai/models/responses/response_create_params.rbi +17 -0
  164. data/rbi/openai/models/responses/response_input_item.rbi +27 -3
  165. data/rbi/openai/models/responses/response_item.rbi +27 -3
  166. data/rbi/openai/models/responses/response_output_item.rbi +27 -3
  167. data/rbi/openai/models/responses/response_output_item_added_event.rbi +8 -2
  168. data/rbi/openai/models/responses/response_output_text_annotation_added_event.rbi +297 -5
  169. data/rbi/openai/models/responses/response_reasoning_item.rbi +10 -0
  170. data/rbi/openai/models/responses/response_stream_event.rbi +1 -1
  171. data/rbi/openai/models/responses/responses_client_event.rbi +36 -0
  172. data/rbi/openai/models/responses/responses_server_event.rbi +3385 -53
  173. data/rbi/openai/models/responses/web_search_tool.rbi +15 -0
  174. data/rbi/openai/models/responses_model.rbi +25 -0
  175. data/rbi/openai/models/skill_create_params.rbi +8 -0
  176. data/rbi/openai/models/skills/version_create_params.rbi +8 -0
  177. data/rbi/openai/models/uploads/part_create_params.rbi +8 -0
  178. data/rbi/openai/models/video_create_character_params.rbi +8 -0
  179. data/rbi/openai/models/video_create_params.rbi +8 -0
  180. data/rbi/openai/models/video_edit_params.rbi +8 -0
  181. data/rbi/openai/models/video_extend_params.rbi +8 -0
  182. data/rbi/openai/net_http_client.rbi +2 -2
  183. data/rbi/openai/providers.rbi +11 -0
  184. data/rbi/openai/resources/audio/transcriptions.rbi +14 -2
  185. data/rbi/openai/resources/audio/translations.rbi +7 -1
  186. data/rbi/openai/resources/beta/responses.rbi +8 -0
  187. data/rbi/openai/resources/containers/files.rbi +4 -0
  188. data/rbi/openai/resources/content_provenance_checks.rbi +4 -0
  189. data/rbi/openai/resources/files.rbi +5 -1
  190. data/rbi/openai/resources/images.rbi +20 -0
  191. data/rbi/openai/resources/responses.rbi +8 -0
  192. data/rbi/openai/resources/skills/versions.rbi +4 -0
  193. data/rbi/openai/resources/skills.rbi +4 -0
  194. data/rbi/openai/resources/uploads/parts.rbi +4 -0
  195. data/rbi/openai/resources/videos.rbi +16 -0
  196. data/sig/openai/client.rbs +6 -2
  197. data/sig/openai/errors.rbs +5 -0
  198. data/sig/openai/http_client.rbs +37 -2
  199. data/sig/openai/internal/logging.rbs +88 -0
  200. data/sig/openai/internal/provider.rbs +3 -1
  201. data/sig/openai/internal/read_io_adapter.rbs +3 -1
  202. data/sig/openai/internal/transport/base_client.rbs +33 -5
  203. data/sig/openai/internal/type/base_model.rbs +13 -0
  204. data/sig/openai/internal/type/base_page.rbs +8 -1
  205. data/sig/openai/internal/type/base_stream.rbs +8 -2
  206. data/sig/openai/internal/util.rbs +12 -0
  207. data/sig/openai/models/admin/organization/audit_log_list_params.rbs +2 -0
  208. data/sig/openai/models/admin/organization/audit_log_list_response.rbs +2 -0
  209. data/sig/openai/models/all_models.rbs +10 -0
  210. data/sig/openai/models/beta/beta_mcp_tool_call_error.rbs +75 -0
  211. data/sig/openai/models/beta/beta_response.rbs +14 -1
  212. data/sig/openai/models/beta/beta_response_input_item.rbs +4 -4
  213. data/sig/openai/models/beta/beta_response_item.rbs +4 -4
  214. data/sig/openai/models/beta/beta_response_output_item.rbs +4 -4
  215. data/sig/openai/models/beta/beta_response_output_text_annotation_added_event.rbs +149 -4
  216. data/sig/openai/models/beta/beta_responses_client_event.rbs +21 -1
  217. data/sig/openai/models/beta/beta_responses_server_event.rbs +2005 -53
  218. data/sig/openai/models/beta/beta_web_search_tool.rbs +7 -0
  219. data/sig/openai/models/beta/response_compact_params.rbs +12 -0
  220. data/sig/openai/models/beta/response_create_params.rbs +14 -1
  221. data/sig/openai/models/chat_model.rbs +2 -0
  222. data/sig/openai/models/completion_usage.rbs +27 -6
  223. data/sig/openai/models/conversations/conversation_item.rbs +4 -4
  224. data/sig/openai/models/model.rbs +12 -2
  225. data/sig/openai/models/responses/mcp_tool_call_error.rbs +73 -0
  226. data/sig/openai/models/responses/response.rbs +2 -1
  227. data/sig/openai/models/responses/response_compact_params.rbs +12 -0
  228. data/sig/openai/models/responses/response_create_params.rbs +2 -1
  229. data/sig/openai/models/responses/response_input_item.rbs +4 -4
  230. data/sig/openai/models/responses/response_item.rbs +4 -4
  231. data/sig/openai/models/responses/response_output_item.rbs +4 -4
  232. data/sig/openai/models/responses/response_output_text_annotation_added_event.rbs +149 -4
  233. data/sig/openai/models/responses/responses_client_event.rbs +9 -1
  234. data/sig/openai/models/responses/responses_server_event.rbs +1834 -53
  235. data/sig/openai/models/responses/web_search_tool.rbs +7 -0
  236. data/sig/openai/models/responses_model.rbs +10 -0
  237. data/sig/openai/net_http_client.rbs +2 -2
  238. data/sig/openai/providers.rbs +7 -0
  239. metadata +30 -1
@@ -10,62 +10,3394 @@ module OpenAI
10
10
  Variants =
11
11
  T.type_alias do
12
12
  T.any(
13
- OpenAI::Responses::ResponseAudioDeltaEvent,
14
- OpenAI::Responses::ResponseAudioDoneEvent,
15
- OpenAI::Responses::ResponseAudioTranscriptDeltaEvent,
16
- OpenAI::Responses::ResponseAudioTranscriptDoneEvent,
17
- OpenAI::Responses::ResponseCodeInterpreterCallCodeDeltaEvent,
18
- OpenAI::Responses::ResponseCodeInterpreterCallCodeDoneEvent,
19
- OpenAI::Responses::ResponseCodeInterpreterCallCompletedEvent,
20
- OpenAI::Responses::ResponseCodeInterpreterCallInProgressEvent,
21
- OpenAI::Responses::ResponseCodeInterpreterCallInterpretingEvent,
22
- OpenAI::Responses::ResponseCompletedEvent,
23
- OpenAI::Responses::ResponseContentPartAddedEvent,
24
- OpenAI::Responses::ResponseContentPartDoneEvent,
25
- OpenAI::Responses::ResponseCreatedEvent,
26
- OpenAI::Responses::ResponseErrorEvent,
27
- OpenAI::Responses::ResponseFileSearchCallCompletedEvent,
28
- OpenAI::Responses::ResponseFileSearchCallInProgressEvent,
29
- OpenAI::Responses::ResponseFileSearchCallSearchingEvent,
30
- OpenAI::Responses::ResponseFunctionCallArgumentsDeltaEvent,
31
- OpenAI::Responses::ResponseFunctionCallArgumentsDoneEvent,
32
- OpenAI::Responses::ResponseInProgressEvent,
33
- OpenAI::Responses::ResponseFailedEvent,
34
- OpenAI::Responses::ResponseIncompleteEvent,
35
- OpenAI::Responses::ResponseOutputItemAddedEvent,
36
- OpenAI::Responses::ResponseOutputItemDoneEvent,
37
- OpenAI::Responses::ResponseReasoningSummaryPartAddedEvent,
38
- OpenAI::Responses::ResponseReasoningSummaryPartDoneEvent,
39
- OpenAI::Responses::ResponseReasoningSummaryTextDeltaEvent,
40
- OpenAI::Responses::ResponseReasoningSummaryTextDoneEvent,
41
- OpenAI::Responses::ResponseReasoningTextDeltaEvent,
42
- OpenAI::Responses::ResponseReasoningTextDoneEvent,
43
- OpenAI::Responses::ResponseRefusalDeltaEvent,
44
- OpenAI::Responses::ResponseRefusalDoneEvent,
45
- OpenAI::Responses::ResponseTextDeltaEvent,
46
- OpenAI::Responses::ResponseTextDoneEvent,
47
- OpenAI::Responses::ResponseWebSearchCallCompletedEvent,
48
- OpenAI::Responses::ResponseWebSearchCallInProgressEvent,
49
- OpenAI::Responses::ResponseWebSearchCallSearchingEvent,
50
- OpenAI::Responses::ResponseImageGenCallCompletedEvent,
51
- OpenAI::Responses::ResponseImageGenCallGeneratingEvent,
52
- OpenAI::Responses::ResponseImageGenCallInProgressEvent,
53
- OpenAI::Responses::ResponseImageGenCallPartialImageEvent,
54
- OpenAI::Responses::ResponseMcpCallArgumentsDeltaEvent,
55
- OpenAI::Responses::ResponseMcpCallArgumentsDoneEvent,
56
- OpenAI::Responses::ResponseMcpCallCompletedEvent,
57
- OpenAI::Responses::ResponseMcpCallFailedEvent,
58
- OpenAI::Responses::ResponseMcpCallInProgressEvent,
59
- OpenAI::Responses::ResponseMcpListToolsCompletedEvent,
60
- OpenAI::Responses::ResponseMcpListToolsFailedEvent,
61
- OpenAI::Responses::ResponseMcpListToolsInProgressEvent,
62
- OpenAI::Responses::ResponseOutputTextAnnotationAddedEvent,
63
- OpenAI::Responses::ResponseQueuedEvent,
64
- OpenAI::Responses::ResponseCustomToolCallInputDeltaEvent,
65
- OpenAI::Responses::ResponseCustomToolCallInputDoneEvent
13
+ OpenAI::Responses::ResponsesServerEvent::ResponseWsError,
14
+ OpenAI::Responses::ResponsesServerEvent::ResponseAudioWsDelta,
15
+ OpenAI::Responses::ResponsesServerEvent::ResponseAudioWsDone,
16
+ OpenAI::Responses::ResponsesServerEvent::ResponseAudioTranscriptWsDelta,
17
+ OpenAI::Responses::ResponsesServerEvent::ResponseAudioTranscriptWsDone,
18
+ OpenAI::Responses::ResponsesServerEvent::ResponseCodeInterpreterCallCodeWsDelta,
19
+ OpenAI::Responses::ResponsesServerEvent::ResponseCodeInterpreterCallCodeWsDone,
20
+ OpenAI::Responses::ResponsesServerEvent::ResponseCodeInterpreterCallWsCompleted,
21
+ OpenAI::Responses::ResponsesServerEvent::ResponseCodeInterpreterCallInWsProgress,
22
+ OpenAI::Responses::ResponsesServerEvent::ResponseCodeInterpreterCallWsInterpreting,
23
+ OpenAI::Responses::ResponsesServerEvent::ResponseWsCompleted,
24
+ OpenAI::Responses::ResponsesServerEvent::ResponseContentPartWsAdded,
25
+ OpenAI::Responses::ResponsesServerEvent::ResponseContentPartWsDone,
26
+ OpenAI::Responses::ResponsesServerEvent::ResponseWsCreated,
27
+ OpenAI::Responses::ResponsesServerEvent::ResponseFileSearchCallWsCompleted,
28
+ OpenAI::Responses::ResponsesServerEvent::ResponseFileSearchCallInWsProgress,
29
+ OpenAI::Responses::ResponsesServerEvent::ResponseFileSearchCallWsSearching,
30
+ OpenAI::Responses::ResponsesServerEvent::ResponseFunctionCallArgumentsWsDelta,
31
+ OpenAI::Responses::ResponsesServerEvent::ResponseFunctionCallArgumentsWsDone,
32
+ OpenAI::Responses::ResponsesServerEvent::ResponseInWsProgress,
33
+ OpenAI::Responses::ResponsesServerEvent::ResponseWsFailed,
34
+ OpenAI::Responses::ResponsesServerEvent::ResponseWsIncomplete,
35
+ OpenAI::Responses::ResponsesServerEvent::ResponseOutputItemWsAdded,
36
+ OpenAI::Responses::ResponsesServerEvent::ResponseOutputItemWsDone,
37
+ OpenAI::Responses::ResponsesServerEvent::ResponseReasoningSummaryPartWsAdded,
38
+ OpenAI::Responses::ResponsesServerEvent::ResponseReasoningSummaryPartWsDone,
39
+ OpenAI::Responses::ResponsesServerEvent::ResponseReasoningSummaryTextWsDelta,
40
+ OpenAI::Responses::ResponsesServerEvent::ResponseReasoningSummaryTextWsDone,
41
+ OpenAI::Responses::ResponsesServerEvent::ResponseReasoningTextWsDelta,
42
+ OpenAI::Responses::ResponsesServerEvent::ResponseReasoningTextWsDone,
43
+ OpenAI::Responses::ResponsesServerEvent::ResponseRefusalWsDelta,
44
+ OpenAI::Responses::ResponsesServerEvent::ResponseRefusalWsDone,
45
+ OpenAI::Responses::ResponsesServerEvent::ResponseTextWsDelta,
46
+ OpenAI::Responses::ResponsesServerEvent::ResponseTextWsDone,
47
+ OpenAI::Responses::ResponsesServerEvent::ResponseWebSearchCallWsCompleted,
48
+ OpenAI::Responses::ResponsesServerEvent::ResponseWebSearchCallInWsProgress,
49
+ OpenAI::Responses::ResponsesServerEvent::ResponseWebSearchCallWsSearching,
50
+ OpenAI::Responses::ResponsesServerEvent::ResponseImageGenCallWsCompleted,
51
+ OpenAI::Responses::ResponsesServerEvent::ResponseImageGenCallWsGenerating,
52
+ OpenAI::Responses::ResponsesServerEvent::ResponseImageGenCallInWsProgress,
53
+ OpenAI::Responses::ResponsesServerEvent::ResponseImageGenCallPartialWsImage,
54
+ OpenAI::Responses::ResponsesServerEvent::ResponseMcpCallArgumentsWsDelta,
55
+ OpenAI::Responses::ResponsesServerEvent::ResponseMcpCallArgumentsWsDone,
56
+ OpenAI::Responses::ResponsesServerEvent::ResponseMcpCallWsCompleted,
57
+ OpenAI::Responses::ResponsesServerEvent::ResponseMcpCallWsFailed,
58
+ OpenAI::Responses::ResponsesServerEvent::ResponseMcpCallInWsProgress,
59
+ OpenAI::Responses::ResponsesServerEvent::ResponseMcpListToolsWsCompleted,
60
+ OpenAI::Responses::ResponsesServerEvent::ResponseMcpListToolsWsFailed,
61
+ OpenAI::Responses::ResponsesServerEvent::ResponseMcpListToolsInWsProgress,
62
+ OpenAI::Responses::ResponsesServerEvent::ResponseOutputTextAnnotationWsAdded,
63
+ OpenAI::Responses::ResponsesServerEvent::ResponseWsQueued,
64
+ OpenAI::Responses::ResponsesServerEvent::ResponseCustomToolCallInputWsDelta,
65
+ OpenAI::Responses::ResponsesServerEvent::ResponseCustomToolCallInputWsDone
66
66
  )
67
67
  end
68
68
 
69
+ class ResponseAudioWsDelta < OpenAI::Models::Responses::ResponseAudioDeltaEvent
70
+ OrHash =
71
+ T.type_alias do
72
+ T.any(
73
+ OpenAI::Responses::ResponsesServerEvent::ResponseAudioWsDelta,
74
+ OpenAI::Internal::AnyHash
75
+ )
76
+ end
77
+
78
+ # The WebSocket lane that emitted this event. This field is present when the
79
+ # originating `response.create` event supplied a `stream_id`.
80
+ sig { returns(T.nilable(String)) }
81
+ attr_reader :stream_id
82
+
83
+ sig { params(stream_id: String).void }
84
+ attr_writer :stream_id
85
+
86
+ # Emitted when there is a partial audio response.
87
+ sig do
88
+ params(
89
+ delta: String,
90
+ sequence_number: Integer,
91
+ type: Symbol,
92
+ stream_id: String
93
+ ).returns(T.attached_class)
94
+ end
95
+ def self.new(
96
+ # A chunk of Base64 encoded response audio bytes.
97
+ delta:,
98
+ # A sequence number for this chunk of the stream response.
99
+ sequence_number:,
100
+ # The type of the event. Always `response.audio.delta`.
101
+ type: :"response.audio.delta",
102
+ # The WebSocket lane that emitted this event.
103
+ # This field is present when the originating response.create supplied a stream_id.
104
+ stream_id: nil
105
+ )
106
+ end
107
+
108
+ sig do
109
+ override.returns(
110
+ {
111
+ delta: String,
112
+ sequence_number: Integer,
113
+ type: Symbol,
114
+ stream_id: String
115
+ }
116
+ )
117
+ end
118
+ def to_hash
119
+ end
120
+ end
121
+
122
+ class ResponseAudioWsDone < OpenAI::Models::Responses::ResponseAudioDoneEvent
123
+ OrHash =
124
+ T.type_alias do
125
+ T.any(
126
+ OpenAI::Responses::ResponsesServerEvent::ResponseAudioWsDone,
127
+ OpenAI::Internal::AnyHash
128
+ )
129
+ end
130
+
131
+ # The WebSocket lane that emitted this event. This field is present when the
132
+ # originating `response.create` event supplied a `stream_id`.
133
+ sig { returns(T.nilable(String)) }
134
+ attr_reader :stream_id
135
+
136
+ sig { params(stream_id: String).void }
137
+ attr_writer :stream_id
138
+
139
+ # Emitted when the audio response is complete.
140
+ sig do
141
+ params(
142
+ sequence_number: Integer,
143
+ type: Symbol,
144
+ stream_id: String
145
+ ).returns(T.attached_class)
146
+ end
147
+ def self.new(
148
+ # The sequence number of the delta.
149
+ sequence_number:,
150
+ # The type of the event. Always `response.audio.done`.
151
+ type: :"response.audio.done",
152
+ # The WebSocket lane that emitted this event.
153
+ # This field is present when the originating response.create supplied a stream_id.
154
+ stream_id: nil
155
+ )
156
+ end
157
+
158
+ sig do
159
+ override.returns(
160
+ { sequence_number: Integer, type: Symbol, stream_id: String }
161
+ )
162
+ end
163
+ def to_hash
164
+ end
165
+ end
166
+
167
+ class ResponseAudioTranscriptWsDelta < OpenAI::Models::Responses::ResponseAudioTranscriptDeltaEvent
168
+ OrHash =
169
+ T.type_alias do
170
+ T.any(
171
+ OpenAI::Responses::ResponsesServerEvent::ResponseAudioTranscriptWsDelta,
172
+ OpenAI::Internal::AnyHash
173
+ )
174
+ end
175
+
176
+ # The WebSocket lane that emitted this event. This field is present when the
177
+ # originating `response.create` event supplied a `stream_id`.
178
+ sig { returns(T.nilable(String)) }
179
+ attr_reader :stream_id
180
+
181
+ sig { params(stream_id: String).void }
182
+ attr_writer :stream_id
183
+
184
+ # Emitted when there is a partial transcript of audio.
185
+ sig do
186
+ params(
187
+ delta: String,
188
+ sequence_number: Integer,
189
+ type: Symbol,
190
+ stream_id: String
191
+ ).returns(T.attached_class)
192
+ end
193
+ def self.new(
194
+ # The partial transcript of the audio response.
195
+ delta:,
196
+ # The sequence number of this event.
197
+ sequence_number:,
198
+ # The type of the event. Always `response.audio.transcript.delta`.
199
+ type: :"response.audio.transcript.delta",
200
+ # The WebSocket lane that emitted this event.
201
+ # This field is present when the originating response.create supplied a stream_id.
202
+ stream_id: nil
203
+ )
204
+ end
205
+
206
+ sig do
207
+ override.returns(
208
+ {
209
+ delta: String,
210
+ sequence_number: Integer,
211
+ type: Symbol,
212
+ stream_id: String
213
+ }
214
+ )
215
+ end
216
+ def to_hash
217
+ end
218
+ end
219
+
220
+ class ResponseAudioTranscriptWsDone < OpenAI::Models::Responses::ResponseAudioTranscriptDoneEvent
221
+ OrHash =
222
+ T.type_alias do
223
+ T.any(
224
+ OpenAI::Responses::ResponsesServerEvent::ResponseAudioTranscriptWsDone,
225
+ OpenAI::Internal::AnyHash
226
+ )
227
+ end
228
+
229
+ # The WebSocket lane that emitted this event. This field is present when the
230
+ # originating `response.create` event supplied a `stream_id`.
231
+ sig { returns(T.nilable(String)) }
232
+ attr_reader :stream_id
233
+
234
+ sig { params(stream_id: String).void }
235
+ attr_writer :stream_id
236
+
237
+ # Emitted when the full audio transcript is completed.
238
+ sig do
239
+ params(
240
+ sequence_number: Integer,
241
+ type: Symbol,
242
+ stream_id: String
243
+ ).returns(T.attached_class)
244
+ end
245
+ def self.new(
246
+ # The sequence number of this event.
247
+ sequence_number:,
248
+ # The type of the event. Always `response.audio.transcript.done`.
249
+ type: :"response.audio.transcript.done",
250
+ # The WebSocket lane that emitted this event.
251
+ # This field is present when the originating response.create supplied a stream_id.
252
+ stream_id: nil
253
+ )
254
+ end
255
+
256
+ sig do
257
+ override.returns(
258
+ { sequence_number: Integer, type: Symbol, stream_id: String }
259
+ )
260
+ end
261
+ def to_hash
262
+ end
263
+ end
264
+
265
+ class ResponseCodeInterpreterCallCodeWsDelta < OpenAI::Models::Responses::ResponseCodeInterpreterCallCodeDeltaEvent
266
+ OrHash =
267
+ T.type_alias do
268
+ T.any(
269
+ OpenAI::Responses::ResponsesServerEvent::ResponseCodeInterpreterCallCodeWsDelta,
270
+ OpenAI::Internal::AnyHash
271
+ )
272
+ end
273
+
274
+ # The WebSocket lane that emitted this event. This field is present when the
275
+ # originating `response.create` event supplied a `stream_id`.
276
+ sig { returns(T.nilable(String)) }
277
+ attr_reader :stream_id
278
+
279
+ sig { params(stream_id: String).void }
280
+ attr_writer :stream_id
281
+
282
+ # Emitted when a partial code snippet is streamed by the code interpreter.
283
+ sig do
284
+ params(
285
+ delta: String,
286
+ item_id: String,
287
+ output_index: Integer,
288
+ sequence_number: Integer,
289
+ type: Symbol,
290
+ stream_id: String
291
+ ).returns(T.attached_class)
292
+ end
293
+ def self.new(
294
+ # The partial code snippet being streamed by the code interpreter.
295
+ delta:,
296
+ # The unique identifier of the code interpreter tool call item.
297
+ item_id:,
298
+ # The index of the output item in the response for which the code is being
299
+ # streamed.
300
+ output_index:,
301
+ # The sequence number of this event, used to order streaming events.
302
+ sequence_number:,
303
+ # The type of the event. Always `response.code_interpreter_call_code.delta`.
304
+ type: :"response.code_interpreter_call_code.delta",
305
+ # The WebSocket lane that emitted this event.
306
+ # This field is present when the originating response.create supplied a stream_id.
307
+ stream_id: nil
308
+ )
309
+ end
310
+
311
+ sig do
312
+ override.returns(
313
+ {
314
+ delta: String,
315
+ item_id: String,
316
+ output_index: Integer,
317
+ sequence_number: Integer,
318
+ type: Symbol,
319
+ stream_id: String
320
+ }
321
+ )
322
+ end
323
+ def to_hash
324
+ end
325
+ end
326
+
327
+ class ResponseCodeInterpreterCallCodeWsDone < OpenAI::Models::Responses::ResponseCodeInterpreterCallCodeDoneEvent
328
+ OrHash =
329
+ T.type_alias do
330
+ T.any(
331
+ OpenAI::Responses::ResponsesServerEvent::ResponseCodeInterpreterCallCodeWsDone,
332
+ OpenAI::Internal::AnyHash
333
+ )
334
+ end
335
+
336
+ # The WebSocket lane that emitted this event. This field is present when the
337
+ # originating `response.create` event supplied a `stream_id`.
338
+ sig { returns(T.nilable(String)) }
339
+ attr_reader :stream_id
340
+
341
+ sig { params(stream_id: String).void }
342
+ attr_writer :stream_id
343
+
344
+ # Emitted when the code snippet is finalized by the code interpreter.
345
+ sig do
346
+ params(
347
+ code: String,
348
+ item_id: String,
349
+ output_index: Integer,
350
+ sequence_number: Integer,
351
+ type: Symbol,
352
+ stream_id: String
353
+ ).returns(T.attached_class)
354
+ end
355
+ def self.new(
356
+ # The final code snippet output by the code interpreter.
357
+ code:,
358
+ # The unique identifier of the code interpreter tool call item.
359
+ item_id:,
360
+ # The index of the output item in the response for which the code is finalized.
361
+ output_index:,
362
+ # The sequence number of this event, used to order streaming events.
363
+ sequence_number:,
364
+ # The type of the event. Always `response.code_interpreter_call_code.done`.
365
+ type: :"response.code_interpreter_call_code.done",
366
+ # The WebSocket lane that emitted this event.
367
+ # This field is present when the originating response.create supplied a stream_id.
368
+ stream_id: nil
369
+ )
370
+ end
371
+
372
+ sig do
373
+ override.returns(
374
+ {
375
+ code: String,
376
+ item_id: String,
377
+ output_index: Integer,
378
+ sequence_number: Integer,
379
+ type: Symbol,
380
+ stream_id: String
381
+ }
382
+ )
383
+ end
384
+ def to_hash
385
+ end
386
+ end
387
+
388
+ class ResponseCodeInterpreterCallWsCompleted < OpenAI::Models::Responses::ResponseCodeInterpreterCallCompletedEvent
389
+ OrHash =
390
+ T.type_alias do
391
+ T.any(
392
+ OpenAI::Responses::ResponsesServerEvent::ResponseCodeInterpreterCallWsCompleted,
393
+ OpenAI::Internal::AnyHash
394
+ )
395
+ end
396
+
397
+ # The WebSocket lane that emitted this event. This field is present when the
398
+ # originating `response.create` event supplied a `stream_id`.
399
+ sig { returns(T.nilable(String)) }
400
+ attr_reader :stream_id
401
+
402
+ sig { params(stream_id: String).void }
403
+ attr_writer :stream_id
404
+
405
+ # Emitted when the code interpreter call is completed.
406
+ sig do
407
+ params(
408
+ item_id: String,
409
+ output_index: Integer,
410
+ sequence_number: Integer,
411
+ type: Symbol,
412
+ stream_id: String
413
+ ).returns(T.attached_class)
414
+ end
415
+ def self.new(
416
+ # The unique identifier of the code interpreter tool call item.
417
+ item_id:,
418
+ # The index of the output item in the response for which the code interpreter call
419
+ # is completed.
420
+ output_index:,
421
+ # The sequence number of this event, used to order streaming events.
422
+ sequence_number:,
423
+ # The type of the event. Always `response.code_interpreter_call.completed`.
424
+ type: :"response.code_interpreter_call.completed",
425
+ # The WebSocket lane that emitted this event.
426
+ # This field is present when the originating response.create supplied a stream_id.
427
+ stream_id: nil
428
+ )
429
+ end
430
+
431
+ sig do
432
+ override.returns(
433
+ {
434
+ item_id: String,
435
+ output_index: Integer,
436
+ sequence_number: Integer,
437
+ type: Symbol,
438
+ stream_id: String
439
+ }
440
+ )
441
+ end
442
+ def to_hash
443
+ end
444
+ end
445
+
446
+ class ResponseCodeInterpreterCallInWsProgress < OpenAI::Models::Responses::ResponseCodeInterpreterCallInProgressEvent
447
+ OrHash =
448
+ T.type_alias do
449
+ T.any(
450
+ OpenAI::Responses::ResponsesServerEvent::ResponseCodeInterpreterCallInWsProgress,
451
+ OpenAI::Internal::AnyHash
452
+ )
453
+ end
454
+
455
+ # The WebSocket lane that emitted this event. This field is present when the
456
+ # originating `response.create` event supplied a `stream_id`.
457
+ sig { returns(T.nilable(String)) }
458
+ attr_reader :stream_id
459
+
460
+ sig { params(stream_id: String).void }
461
+ attr_writer :stream_id
462
+
463
+ # Emitted when a code interpreter call is in progress.
464
+ sig do
465
+ params(
466
+ item_id: String,
467
+ output_index: Integer,
468
+ sequence_number: Integer,
469
+ type: Symbol,
470
+ stream_id: String
471
+ ).returns(T.attached_class)
472
+ end
473
+ def self.new(
474
+ # The unique identifier of the code interpreter tool call item.
475
+ item_id:,
476
+ # The index of the output item in the response for which the code interpreter call
477
+ # is in progress.
478
+ output_index:,
479
+ # The sequence number of this event, used to order streaming events.
480
+ sequence_number:,
481
+ # The type of the event. Always `response.code_interpreter_call.in_progress`.
482
+ type: :"response.code_interpreter_call.in_progress",
483
+ # The WebSocket lane that emitted this event.
484
+ # This field is present when the originating response.create supplied a stream_id.
485
+ stream_id: nil
486
+ )
487
+ end
488
+
489
+ sig do
490
+ override.returns(
491
+ {
492
+ item_id: String,
493
+ output_index: Integer,
494
+ sequence_number: Integer,
495
+ type: Symbol,
496
+ stream_id: String
497
+ }
498
+ )
499
+ end
500
+ def to_hash
501
+ end
502
+ end
503
+
504
+ class ResponseCodeInterpreterCallWsInterpreting < OpenAI::Models::Responses::ResponseCodeInterpreterCallInterpretingEvent
505
+ OrHash =
506
+ T.type_alias do
507
+ T.any(
508
+ OpenAI::Responses::ResponsesServerEvent::ResponseCodeInterpreterCallWsInterpreting,
509
+ OpenAI::Internal::AnyHash
510
+ )
511
+ end
512
+
513
+ # The WebSocket lane that emitted this event. This field is present when the
514
+ # originating `response.create` event supplied a `stream_id`.
515
+ sig { returns(T.nilable(String)) }
516
+ attr_reader :stream_id
517
+
518
+ sig { params(stream_id: String).void }
519
+ attr_writer :stream_id
520
+
521
+ # Emitted when the code interpreter is actively interpreting the code snippet.
522
+ sig do
523
+ params(
524
+ item_id: String,
525
+ output_index: Integer,
526
+ sequence_number: Integer,
527
+ type: Symbol,
528
+ stream_id: String
529
+ ).returns(T.attached_class)
530
+ end
531
+ def self.new(
532
+ # The unique identifier of the code interpreter tool call item.
533
+ item_id:,
534
+ # The index of the output item in the response for which the code interpreter is
535
+ # interpreting code.
536
+ output_index:,
537
+ # The sequence number of this event, used to order streaming events.
538
+ sequence_number:,
539
+ # The type of the event. Always `response.code_interpreter_call.interpreting`.
540
+ type: :"response.code_interpreter_call.interpreting",
541
+ # The WebSocket lane that emitted this event.
542
+ # This field is present when the originating response.create supplied a stream_id.
543
+ stream_id: nil
544
+ )
545
+ end
546
+
547
+ sig do
548
+ override.returns(
549
+ {
550
+ item_id: String,
551
+ output_index: Integer,
552
+ sequence_number: Integer,
553
+ type: Symbol,
554
+ stream_id: String
555
+ }
556
+ )
557
+ end
558
+ def to_hash
559
+ end
560
+ end
561
+
562
+ class ResponseWsCompleted < OpenAI::Models::Responses::ResponseCompletedEvent
563
+ OrHash =
564
+ T.type_alias do
565
+ T.any(
566
+ OpenAI::Responses::ResponsesServerEvent::ResponseWsCompleted,
567
+ OpenAI::Internal::AnyHash
568
+ )
569
+ end
570
+
571
+ # The WebSocket lane that emitted this event. This field is present when the
572
+ # originating `response.create` event supplied a `stream_id`.
573
+ sig { returns(T.nilable(String)) }
574
+ attr_reader :stream_id
575
+
576
+ sig { params(stream_id: String).void }
577
+ attr_writer :stream_id
578
+
579
+ # Emitted when the model response is complete.
580
+ sig do
581
+ params(
582
+ response: OpenAI::Responses::Response::OrHash,
583
+ sequence_number: Integer,
584
+ type: Symbol,
585
+ stream_id: String
586
+ ).returns(T.attached_class)
587
+ end
588
+ def self.new(
589
+ # Properties of the completed response.
590
+ response:,
591
+ # The sequence number for this event.
592
+ sequence_number:,
593
+ # The type of the event. Always `response.completed`.
594
+ type: :"response.completed",
595
+ # The WebSocket lane that emitted this event.
596
+ # This field is present when the originating response.create supplied a stream_id.
597
+ stream_id: nil
598
+ )
599
+ end
600
+
601
+ sig do
602
+ override.returns(
603
+ {
604
+ response: OpenAI::Responses::Response,
605
+ sequence_number: Integer,
606
+ type: Symbol,
607
+ stream_id: String
608
+ }
609
+ )
610
+ end
611
+ def to_hash
612
+ end
613
+ end
614
+
615
+ class ResponseContentPartWsAdded < OpenAI::Models::Responses::ResponseContentPartAddedEvent
616
+ OrHash =
617
+ T.type_alias do
618
+ T.any(
619
+ OpenAI::Responses::ResponsesServerEvent::ResponseContentPartWsAdded,
620
+ OpenAI::Internal::AnyHash
621
+ )
622
+ end
623
+
624
+ # The WebSocket lane that emitted this event. This field is present when the
625
+ # originating `response.create` event supplied a `stream_id`.
626
+ sig { returns(T.nilable(String)) }
627
+ attr_reader :stream_id
628
+
629
+ sig { params(stream_id: String).void }
630
+ attr_writer :stream_id
631
+
632
+ # Emitted when a new content part is added.
633
+ sig do
634
+ params(
635
+ content_index: Integer,
636
+ item_id: String,
637
+ output_index: Integer,
638
+ part:
639
+ T.any(
640
+ OpenAI::Responses::ResponseOutputText::OrHash,
641
+ OpenAI::Responses::ResponseOutputRefusal::OrHash,
642
+ OpenAI::Responses::ResponseContentPartAddedEvent::Part::ReasoningText::OrHash
643
+ ),
644
+ sequence_number: Integer,
645
+ type: Symbol,
646
+ stream_id: String
647
+ ).returns(T.attached_class)
648
+ end
649
+ def self.new(
650
+ # The index of the content part that was added.
651
+ content_index:,
652
+ # The ID of the output item that the content part was added to.
653
+ item_id:,
654
+ # The index of the output item that the content part was added to.
655
+ output_index:,
656
+ # The content part that was added.
657
+ part:,
658
+ # The sequence number of this event.
659
+ sequence_number:,
660
+ # The type of the event. Always `response.content_part.added`.
661
+ type: :"response.content_part.added",
662
+ # The WebSocket lane that emitted this event.
663
+ # This field is present when the originating response.create supplied a stream_id.
664
+ stream_id: nil
665
+ )
666
+ end
667
+
668
+ sig do
669
+ override.returns(
670
+ {
671
+ content_index: Integer,
672
+ item_id: String,
673
+ output_index: Integer,
674
+ part:
675
+ OpenAI::Responses::ResponseContentPartAddedEvent::Part::Variants,
676
+ sequence_number: Integer,
677
+ type: Symbol,
678
+ stream_id: String
679
+ }
680
+ )
681
+ end
682
+ def to_hash
683
+ end
684
+ end
685
+
686
+ class ResponseContentPartWsDone < OpenAI::Models::Responses::ResponseContentPartDoneEvent
687
+ OrHash =
688
+ T.type_alias do
689
+ T.any(
690
+ OpenAI::Responses::ResponsesServerEvent::ResponseContentPartWsDone,
691
+ OpenAI::Internal::AnyHash
692
+ )
693
+ end
694
+
695
+ # The WebSocket lane that emitted this event. This field is present when the
696
+ # originating `response.create` event supplied a `stream_id`.
697
+ sig { returns(T.nilable(String)) }
698
+ attr_reader :stream_id
699
+
700
+ sig { params(stream_id: String).void }
701
+ attr_writer :stream_id
702
+
703
+ # Emitted when a content part is done.
704
+ sig do
705
+ params(
706
+ content_index: Integer,
707
+ item_id: String,
708
+ output_index: Integer,
709
+ part:
710
+ T.any(
711
+ OpenAI::Responses::ResponseOutputText::OrHash,
712
+ OpenAI::Responses::ResponseOutputRefusal::OrHash,
713
+ OpenAI::Responses::ResponseContentPartDoneEvent::Part::ReasoningText::OrHash
714
+ ),
715
+ sequence_number: Integer,
716
+ type: Symbol,
717
+ stream_id: String
718
+ ).returns(T.attached_class)
719
+ end
720
+ def self.new(
721
+ # The index of the content part that is done.
722
+ content_index:,
723
+ # The ID of the output item that the content part was added to.
724
+ item_id:,
725
+ # The index of the output item that the content part was added to.
726
+ output_index:,
727
+ # The content part that is done.
728
+ part:,
729
+ # The sequence number of this event.
730
+ sequence_number:,
731
+ # The type of the event. Always `response.content_part.done`.
732
+ type: :"response.content_part.done",
733
+ # The WebSocket lane that emitted this event.
734
+ # This field is present when the originating response.create supplied a stream_id.
735
+ stream_id: nil
736
+ )
737
+ end
738
+
739
+ sig do
740
+ override.returns(
741
+ {
742
+ content_index: Integer,
743
+ item_id: String,
744
+ output_index: Integer,
745
+ part:
746
+ OpenAI::Responses::ResponseContentPartDoneEvent::Part::Variants,
747
+ sequence_number: Integer,
748
+ type: Symbol,
749
+ stream_id: String
750
+ }
751
+ )
752
+ end
753
+ def to_hash
754
+ end
755
+ end
756
+
757
+ class ResponseWsCreated < OpenAI::Models::Responses::ResponseCreatedEvent
758
+ OrHash =
759
+ T.type_alias do
760
+ T.any(
761
+ OpenAI::Responses::ResponsesServerEvent::ResponseWsCreated,
762
+ OpenAI::Internal::AnyHash
763
+ )
764
+ end
765
+
766
+ # The WebSocket lane that emitted this event. This field is present when the
767
+ # originating `response.create` event supplied a `stream_id`.
768
+ sig { returns(T.nilable(String)) }
769
+ attr_reader :stream_id
770
+
771
+ sig { params(stream_id: String).void }
772
+ attr_writer :stream_id
773
+
774
+ # An event that is emitted when a response is created.
775
+ sig do
776
+ params(
777
+ response: OpenAI::Responses::Response::OrHash,
778
+ sequence_number: Integer,
779
+ type: Symbol,
780
+ stream_id: String
781
+ ).returns(T.attached_class)
782
+ end
783
+ def self.new(
784
+ # The response that was created.
785
+ response:,
786
+ # The sequence number for this event.
787
+ sequence_number:,
788
+ # The type of the event. Always `response.created`.
789
+ type: :"response.created",
790
+ # The WebSocket lane that emitted this event.
791
+ # This field is present when the originating response.create supplied a stream_id.
792
+ stream_id: nil
793
+ )
794
+ end
795
+
796
+ sig do
797
+ override.returns(
798
+ {
799
+ response: OpenAI::Responses::Response,
800
+ sequence_number: Integer,
801
+ type: Symbol,
802
+ stream_id: String
803
+ }
804
+ )
805
+ end
806
+ def to_hash
807
+ end
808
+ end
809
+
810
+ class ResponseFileSearchCallWsCompleted < OpenAI::Models::Responses::ResponseFileSearchCallCompletedEvent
811
+ OrHash =
812
+ T.type_alias do
813
+ T.any(
814
+ OpenAI::Responses::ResponsesServerEvent::ResponseFileSearchCallWsCompleted,
815
+ OpenAI::Internal::AnyHash
816
+ )
817
+ end
818
+
819
+ # The WebSocket lane that emitted this event. This field is present when the
820
+ # originating `response.create` event supplied a `stream_id`.
821
+ sig { returns(T.nilable(String)) }
822
+ attr_reader :stream_id
823
+
824
+ sig { params(stream_id: String).void }
825
+ attr_writer :stream_id
826
+
827
+ # Emitted when a file search call is completed (results found).
828
+ sig do
829
+ params(
830
+ item_id: String,
831
+ output_index: Integer,
832
+ sequence_number: Integer,
833
+ type: Symbol,
834
+ stream_id: String
835
+ ).returns(T.attached_class)
836
+ end
837
+ def self.new(
838
+ # The ID of the output item that the file search call is initiated.
839
+ item_id:,
840
+ # The index of the output item that the file search call is initiated.
841
+ output_index:,
842
+ # The sequence number of this event.
843
+ sequence_number:,
844
+ # The type of the event. Always `response.file_search_call.completed`.
845
+ type: :"response.file_search_call.completed",
846
+ # The WebSocket lane that emitted this event.
847
+ # This field is present when the originating response.create supplied a stream_id.
848
+ stream_id: nil
849
+ )
850
+ end
851
+
852
+ sig do
853
+ override.returns(
854
+ {
855
+ item_id: String,
856
+ output_index: Integer,
857
+ sequence_number: Integer,
858
+ type: Symbol,
859
+ stream_id: String
860
+ }
861
+ )
862
+ end
863
+ def to_hash
864
+ end
865
+ end
866
+
867
+ class ResponseFileSearchCallInWsProgress < OpenAI::Models::Responses::ResponseFileSearchCallInProgressEvent
868
+ OrHash =
869
+ T.type_alias do
870
+ T.any(
871
+ OpenAI::Responses::ResponsesServerEvent::ResponseFileSearchCallInWsProgress,
872
+ OpenAI::Internal::AnyHash
873
+ )
874
+ end
875
+
876
+ # The WebSocket lane that emitted this event. This field is present when the
877
+ # originating `response.create` event supplied a `stream_id`.
878
+ sig { returns(T.nilable(String)) }
879
+ attr_reader :stream_id
880
+
881
+ sig { params(stream_id: String).void }
882
+ attr_writer :stream_id
883
+
884
+ # Emitted when a file search call is initiated.
885
+ sig do
886
+ params(
887
+ item_id: String,
888
+ output_index: Integer,
889
+ sequence_number: Integer,
890
+ type: Symbol,
891
+ stream_id: String
892
+ ).returns(T.attached_class)
893
+ end
894
+ def self.new(
895
+ # The ID of the output item that the file search call is initiated.
896
+ item_id:,
897
+ # The index of the output item that the file search call is initiated.
898
+ output_index:,
899
+ # The sequence number of this event.
900
+ sequence_number:,
901
+ # The type of the event. Always `response.file_search_call.in_progress`.
902
+ type: :"response.file_search_call.in_progress",
903
+ # The WebSocket lane that emitted this event.
904
+ # This field is present when the originating response.create supplied a stream_id.
905
+ stream_id: nil
906
+ )
907
+ end
908
+
909
+ sig do
910
+ override.returns(
911
+ {
912
+ item_id: String,
913
+ output_index: Integer,
914
+ sequence_number: Integer,
915
+ type: Symbol,
916
+ stream_id: String
917
+ }
918
+ )
919
+ end
920
+ def to_hash
921
+ end
922
+ end
923
+
924
+ class ResponseFileSearchCallWsSearching < OpenAI::Models::Responses::ResponseFileSearchCallSearchingEvent
925
+ OrHash =
926
+ T.type_alias do
927
+ T.any(
928
+ OpenAI::Responses::ResponsesServerEvent::ResponseFileSearchCallWsSearching,
929
+ OpenAI::Internal::AnyHash
930
+ )
931
+ end
932
+
933
+ # The WebSocket lane that emitted this event. This field is present when the
934
+ # originating `response.create` event supplied a `stream_id`.
935
+ sig { returns(T.nilable(String)) }
936
+ attr_reader :stream_id
937
+
938
+ sig { params(stream_id: String).void }
939
+ attr_writer :stream_id
940
+
941
+ # Emitted when a file search is currently searching.
942
+ sig do
943
+ params(
944
+ item_id: String,
945
+ output_index: Integer,
946
+ sequence_number: Integer,
947
+ type: Symbol,
948
+ stream_id: String
949
+ ).returns(T.attached_class)
950
+ end
951
+ def self.new(
952
+ # The ID of the output item that the file search call is initiated.
953
+ item_id:,
954
+ # The index of the output item that the file search call is searching.
955
+ output_index:,
956
+ # The sequence number of this event.
957
+ sequence_number:,
958
+ # The type of the event. Always `response.file_search_call.searching`.
959
+ type: :"response.file_search_call.searching",
960
+ # The WebSocket lane that emitted this event.
961
+ # This field is present when the originating response.create supplied a stream_id.
962
+ stream_id: nil
963
+ )
964
+ end
965
+
966
+ sig do
967
+ override.returns(
968
+ {
969
+ item_id: String,
970
+ output_index: Integer,
971
+ sequence_number: Integer,
972
+ type: Symbol,
973
+ stream_id: String
974
+ }
975
+ )
976
+ end
977
+ def to_hash
978
+ end
979
+ end
980
+
981
+ class ResponseFunctionCallArgumentsWsDelta < OpenAI::Models::Responses::ResponseFunctionCallArgumentsDeltaEvent
982
+ OrHash =
983
+ T.type_alias do
984
+ T.any(
985
+ OpenAI::Responses::ResponsesServerEvent::ResponseFunctionCallArgumentsWsDelta,
986
+ OpenAI::Internal::AnyHash
987
+ )
988
+ end
989
+
990
+ # The WebSocket lane that emitted this event. This field is present when the
991
+ # originating `response.create` event supplied a `stream_id`.
992
+ sig { returns(T.nilable(String)) }
993
+ attr_reader :stream_id
994
+
995
+ sig { params(stream_id: String).void }
996
+ attr_writer :stream_id
997
+
998
+ # Emitted when there is a partial function-call arguments delta.
999
+ sig do
1000
+ params(
1001
+ delta: String,
1002
+ item_id: String,
1003
+ output_index: Integer,
1004
+ sequence_number: Integer,
1005
+ type: Symbol,
1006
+ stream_id: String
1007
+ ).returns(T.attached_class)
1008
+ end
1009
+ def self.new(
1010
+ # The function-call arguments delta that is added.
1011
+ delta:,
1012
+ # The ID of the output item that the function-call arguments delta is added to.
1013
+ item_id:,
1014
+ # The index of the output item that the function-call arguments delta is added to.
1015
+ output_index:,
1016
+ # The sequence number of this event.
1017
+ sequence_number:,
1018
+ # The type of the event. Always `response.function_call_arguments.delta`.
1019
+ type: :"response.function_call_arguments.delta",
1020
+ # The WebSocket lane that emitted this event.
1021
+ # This field is present when the originating response.create supplied a stream_id.
1022
+ stream_id: nil
1023
+ )
1024
+ end
1025
+
1026
+ sig do
1027
+ override.returns(
1028
+ {
1029
+ delta: String,
1030
+ item_id: String,
1031
+ output_index: Integer,
1032
+ sequence_number: Integer,
1033
+ type: Symbol,
1034
+ stream_id: String
1035
+ }
1036
+ )
1037
+ end
1038
+ def to_hash
1039
+ end
1040
+ end
1041
+
1042
+ class ResponseFunctionCallArgumentsWsDone < OpenAI::Models::Responses::ResponseFunctionCallArgumentsDoneEvent
1043
+ OrHash =
1044
+ T.type_alias do
1045
+ T.any(
1046
+ OpenAI::Responses::ResponsesServerEvent::ResponseFunctionCallArgumentsWsDone,
1047
+ OpenAI::Internal::AnyHash
1048
+ )
1049
+ end
1050
+
1051
+ # The WebSocket lane that emitted this event. This field is present when the
1052
+ # originating `response.create` event supplied a `stream_id`.
1053
+ sig { returns(T.nilable(String)) }
1054
+ attr_reader :stream_id
1055
+
1056
+ sig { params(stream_id: String).void }
1057
+ attr_writer :stream_id
1058
+
1059
+ # Emitted when function-call arguments are finalized.
1060
+ sig do
1061
+ params(
1062
+ arguments: String,
1063
+ item_id: String,
1064
+ name: String,
1065
+ output_index: Integer,
1066
+ sequence_number: Integer,
1067
+ type: Symbol,
1068
+ stream_id: String
1069
+ ).returns(T.attached_class)
1070
+ end
1071
+ def self.new(
1072
+ # The function-call arguments.
1073
+ arguments:,
1074
+ # The ID of the item.
1075
+ item_id:,
1076
+ # The name of the function that was called.
1077
+ name:,
1078
+ # The index of the output item.
1079
+ output_index:,
1080
+ # The sequence number of this event.
1081
+ sequence_number:,
1082
+ type: :"response.function_call_arguments.done",
1083
+ # The WebSocket lane that emitted this event.
1084
+ # This field is present when the originating response.create supplied a stream_id.
1085
+ stream_id: nil
1086
+ )
1087
+ end
1088
+
1089
+ sig do
1090
+ override.returns(
1091
+ {
1092
+ arguments: String,
1093
+ item_id: String,
1094
+ name: String,
1095
+ output_index: Integer,
1096
+ sequence_number: Integer,
1097
+ type: Symbol,
1098
+ stream_id: String
1099
+ }
1100
+ )
1101
+ end
1102
+ def to_hash
1103
+ end
1104
+ end
1105
+
1106
+ class ResponseInWsProgress < OpenAI::Models::Responses::ResponseInProgressEvent
1107
+ OrHash =
1108
+ T.type_alias do
1109
+ T.any(
1110
+ OpenAI::Responses::ResponsesServerEvent::ResponseInWsProgress,
1111
+ OpenAI::Internal::AnyHash
1112
+ )
1113
+ end
1114
+
1115
+ # The WebSocket lane that emitted this event. This field is present when the
1116
+ # originating `response.create` event supplied a `stream_id`.
1117
+ sig { returns(T.nilable(String)) }
1118
+ attr_reader :stream_id
1119
+
1120
+ sig { params(stream_id: String).void }
1121
+ attr_writer :stream_id
1122
+
1123
+ # Emitted when the response is in progress.
1124
+ sig do
1125
+ params(
1126
+ response: OpenAI::Responses::Response::OrHash,
1127
+ sequence_number: Integer,
1128
+ type: Symbol,
1129
+ stream_id: String
1130
+ ).returns(T.attached_class)
1131
+ end
1132
+ def self.new(
1133
+ # The response that is in progress.
1134
+ response:,
1135
+ # The sequence number of this event.
1136
+ sequence_number:,
1137
+ # The type of the event. Always `response.in_progress`.
1138
+ type: :"response.in_progress",
1139
+ # The WebSocket lane that emitted this event.
1140
+ # This field is present when the originating response.create supplied a stream_id.
1141
+ stream_id: nil
1142
+ )
1143
+ end
1144
+
1145
+ sig do
1146
+ override.returns(
1147
+ {
1148
+ response: OpenAI::Responses::Response,
1149
+ sequence_number: Integer,
1150
+ type: Symbol,
1151
+ stream_id: String
1152
+ }
1153
+ )
1154
+ end
1155
+ def to_hash
1156
+ end
1157
+ end
1158
+
1159
+ class ResponseWsFailed < OpenAI::Models::Responses::ResponseFailedEvent
1160
+ OrHash =
1161
+ T.type_alias do
1162
+ T.any(
1163
+ OpenAI::Responses::ResponsesServerEvent::ResponseWsFailed,
1164
+ OpenAI::Internal::AnyHash
1165
+ )
1166
+ end
1167
+
1168
+ # The WebSocket lane that emitted this event. This field is present when the
1169
+ # originating `response.create` event supplied a `stream_id`.
1170
+ sig { returns(T.nilable(String)) }
1171
+ attr_reader :stream_id
1172
+
1173
+ sig { params(stream_id: String).void }
1174
+ attr_writer :stream_id
1175
+
1176
+ # An event that is emitted when a response fails.
1177
+ sig do
1178
+ params(
1179
+ response: OpenAI::Responses::Response::OrHash,
1180
+ sequence_number: Integer,
1181
+ type: Symbol,
1182
+ stream_id: String
1183
+ ).returns(T.attached_class)
1184
+ end
1185
+ def self.new(
1186
+ # The response that failed.
1187
+ response:,
1188
+ # The sequence number of this event.
1189
+ sequence_number:,
1190
+ # The type of the event. Always `response.failed`.
1191
+ type: :"response.failed",
1192
+ # The WebSocket lane that emitted this event.
1193
+ # This field is present when the originating response.create supplied a stream_id.
1194
+ stream_id: nil
1195
+ )
1196
+ end
1197
+
1198
+ sig do
1199
+ override.returns(
1200
+ {
1201
+ response: OpenAI::Responses::Response,
1202
+ sequence_number: Integer,
1203
+ type: Symbol,
1204
+ stream_id: String
1205
+ }
1206
+ )
1207
+ end
1208
+ def to_hash
1209
+ end
1210
+ end
1211
+
1212
+ class ResponseWsIncomplete < OpenAI::Models::Responses::ResponseIncompleteEvent
1213
+ OrHash =
1214
+ T.type_alias do
1215
+ T.any(
1216
+ OpenAI::Responses::ResponsesServerEvent::ResponseWsIncomplete,
1217
+ OpenAI::Internal::AnyHash
1218
+ )
1219
+ end
1220
+
1221
+ # The WebSocket lane that emitted this event. This field is present when the
1222
+ # originating `response.create` event supplied a `stream_id`.
1223
+ sig { returns(T.nilable(String)) }
1224
+ attr_reader :stream_id
1225
+
1226
+ sig { params(stream_id: String).void }
1227
+ attr_writer :stream_id
1228
+
1229
+ # An event that is emitted when a response finishes as incomplete.
1230
+ sig do
1231
+ params(
1232
+ response: OpenAI::Responses::Response::OrHash,
1233
+ sequence_number: Integer,
1234
+ type: Symbol,
1235
+ stream_id: String
1236
+ ).returns(T.attached_class)
1237
+ end
1238
+ def self.new(
1239
+ # The response that was incomplete.
1240
+ response:,
1241
+ # The sequence number of this event.
1242
+ sequence_number:,
1243
+ # The type of the event. Always `response.incomplete`.
1244
+ type: :"response.incomplete",
1245
+ # The WebSocket lane that emitted this event.
1246
+ # This field is present when the originating response.create supplied a stream_id.
1247
+ stream_id: nil
1248
+ )
1249
+ end
1250
+
1251
+ sig do
1252
+ override.returns(
1253
+ {
1254
+ response: OpenAI::Responses::Response,
1255
+ sequence_number: Integer,
1256
+ type: Symbol,
1257
+ stream_id: String
1258
+ }
1259
+ )
1260
+ end
1261
+ def to_hash
1262
+ end
1263
+ end
1264
+
1265
+ class ResponseOutputItemWsAdded < OpenAI::Models::Responses::ResponseOutputItemAddedEvent
1266
+ OrHash =
1267
+ T.type_alias do
1268
+ T.any(
1269
+ OpenAI::Responses::ResponsesServerEvent::ResponseOutputItemWsAdded,
1270
+ OpenAI::Internal::AnyHash
1271
+ )
1272
+ end
1273
+
1274
+ # The WebSocket lane that emitted this event. This field is present when the
1275
+ # originating `response.create` event supplied a `stream_id`.
1276
+ sig { returns(T.nilable(String)) }
1277
+ attr_reader :stream_id
1278
+
1279
+ sig { params(stream_id: String).void }
1280
+ attr_writer :stream_id
1281
+
1282
+ # Emitted when a new output item is added.
1283
+ sig do
1284
+ params(
1285
+ item:
1286
+ T.any(
1287
+ OpenAI::Responses::ResponseOutputMessage::OrHash,
1288
+ OpenAI::Responses::ResponseFileSearchToolCall::OrHash,
1289
+ OpenAI::Responses::ResponseFunctionToolCall::OrHash,
1290
+ OpenAI::Responses::ResponseFunctionToolCallOutputItem::OrHash,
1291
+ OpenAI::Responses::ResponseFunctionWebSearch::OrHash,
1292
+ OpenAI::Responses::ResponseComputerToolCall::OrHash,
1293
+ OpenAI::Responses::ResponseComputerToolCallOutputItem::OrHash,
1294
+ OpenAI::Responses::ResponseReasoningItem::OrHash,
1295
+ OpenAI::Responses::ResponseOutputItem::Program::OrHash,
1296
+ OpenAI::Responses::ResponseOutputItem::ProgramOutput::OrHash,
1297
+ OpenAI::Responses::ResponseToolSearchCall::OrHash,
1298
+ OpenAI::Responses::ResponseToolSearchOutputItem::OrHash,
1299
+ OpenAI::Responses::ResponseOutputItem::AdditionalTools::OrHash,
1300
+ OpenAI::Responses::ResponseCompactionItem::OrHash,
1301
+ OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::OrHash,
1302
+ OpenAI::Responses::ResponseCodeInterpreterToolCall::OrHash,
1303
+ OpenAI::Responses::ResponseOutputItem::LocalShellCall::OrHash,
1304
+ OpenAI::Responses::ResponseOutputItem::LocalShellCallOutput::OrHash,
1305
+ OpenAI::Responses::ResponseFunctionShellToolCall::OrHash,
1306
+ OpenAI::Responses::ResponseFunctionShellToolCallOutput::OrHash,
1307
+ OpenAI::Responses::ResponseApplyPatchToolCall::OrHash,
1308
+ OpenAI::Responses::ResponseApplyPatchToolCallOutput::OrHash,
1309
+ OpenAI::Responses::ResponseOutputItem::McpCall::OrHash,
1310
+ OpenAI::Responses::ResponseOutputItem::McpListTools::OrHash,
1311
+ OpenAI::Responses::ResponseOutputItem::McpApprovalRequest::OrHash,
1312
+ OpenAI::Responses::ResponseOutputItem::McpApprovalResponse::OrHash,
1313
+ OpenAI::Responses::ResponseCustomToolCall::OrHash,
1314
+ OpenAI::Responses::ResponseCustomToolCallOutputItem::OrHash
1315
+ ),
1316
+ output_index: Integer,
1317
+ sequence_number: Integer,
1318
+ type: Symbol,
1319
+ stream_id: String
1320
+ ).returns(T.attached_class)
1321
+ end
1322
+ def self.new(
1323
+ # The output item that was added.
1324
+ item:,
1325
+ # The index of the output item that was added.
1326
+ output_index:,
1327
+ # The sequence number of this event.
1328
+ sequence_number:,
1329
+ # The type of the event. Always `response.output_item.added`.
1330
+ type: :"response.output_item.added",
1331
+ # The WebSocket lane that emitted this event.
1332
+ # This field is present when the originating response.create supplied a stream_id.
1333
+ stream_id: nil
1334
+ )
1335
+ end
1336
+
1337
+ sig do
1338
+ override.returns(
1339
+ {
1340
+ item: OpenAI::Responses::ResponseOutputItem::Variants,
1341
+ output_index: Integer,
1342
+ sequence_number: Integer,
1343
+ type: Symbol,
1344
+ stream_id: String
1345
+ }
1346
+ )
1347
+ end
1348
+ def to_hash
1349
+ end
1350
+ end
1351
+
1352
+ class ResponseOutputItemWsDone < OpenAI::Models::Responses::ResponseOutputItemDoneEvent
1353
+ OrHash =
1354
+ T.type_alias do
1355
+ T.any(
1356
+ OpenAI::Responses::ResponsesServerEvent::ResponseOutputItemWsDone,
1357
+ OpenAI::Internal::AnyHash
1358
+ )
1359
+ end
1360
+
1361
+ # The WebSocket lane that emitted this event. This field is present when the
1362
+ # originating `response.create` event supplied a `stream_id`.
1363
+ sig { returns(T.nilable(String)) }
1364
+ attr_reader :stream_id
1365
+
1366
+ sig { params(stream_id: String).void }
1367
+ attr_writer :stream_id
1368
+
1369
+ # Emitted when an output item is marked done.
1370
+ sig do
1371
+ params(
1372
+ item:
1373
+ T.any(
1374
+ OpenAI::Responses::ResponseOutputMessage::OrHash,
1375
+ OpenAI::Responses::ResponseFileSearchToolCall::OrHash,
1376
+ OpenAI::Responses::ResponseFunctionToolCall::OrHash,
1377
+ OpenAI::Responses::ResponseFunctionToolCallOutputItem::OrHash,
1378
+ OpenAI::Responses::ResponseFunctionWebSearch::OrHash,
1379
+ OpenAI::Responses::ResponseComputerToolCall::OrHash,
1380
+ OpenAI::Responses::ResponseComputerToolCallOutputItem::OrHash,
1381
+ OpenAI::Responses::ResponseReasoningItem::OrHash,
1382
+ OpenAI::Responses::ResponseOutputItem::Program::OrHash,
1383
+ OpenAI::Responses::ResponseOutputItem::ProgramOutput::OrHash,
1384
+ OpenAI::Responses::ResponseToolSearchCall::OrHash,
1385
+ OpenAI::Responses::ResponseToolSearchOutputItem::OrHash,
1386
+ OpenAI::Responses::ResponseOutputItem::AdditionalTools::OrHash,
1387
+ OpenAI::Responses::ResponseCompactionItem::OrHash,
1388
+ OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::OrHash,
1389
+ OpenAI::Responses::ResponseCodeInterpreterToolCall::OrHash,
1390
+ OpenAI::Responses::ResponseOutputItem::LocalShellCall::OrHash,
1391
+ OpenAI::Responses::ResponseOutputItem::LocalShellCallOutput::OrHash,
1392
+ OpenAI::Responses::ResponseFunctionShellToolCall::OrHash,
1393
+ OpenAI::Responses::ResponseFunctionShellToolCallOutput::OrHash,
1394
+ OpenAI::Responses::ResponseApplyPatchToolCall::OrHash,
1395
+ OpenAI::Responses::ResponseApplyPatchToolCallOutput::OrHash,
1396
+ OpenAI::Responses::ResponseOutputItem::McpCall::OrHash,
1397
+ OpenAI::Responses::ResponseOutputItem::McpListTools::OrHash,
1398
+ OpenAI::Responses::ResponseOutputItem::McpApprovalRequest::OrHash,
1399
+ OpenAI::Responses::ResponseOutputItem::McpApprovalResponse::OrHash,
1400
+ OpenAI::Responses::ResponseCustomToolCall::OrHash,
1401
+ OpenAI::Responses::ResponseCustomToolCallOutputItem::OrHash
1402
+ ),
1403
+ output_index: Integer,
1404
+ sequence_number: Integer,
1405
+ type: Symbol,
1406
+ stream_id: String
1407
+ ).returns(T.attached_class)
1408
+ end
1409
+ def self.new(
1410
+ # The output item that was marked done.
1411
+ item:,
1412
+ # The index of the output item that was marked done.
1413
+ output_index:,
1414
+ # The sequence number of this event.
1415
+ sequence_number:,
1416
+ # The type of the event. Always `response.output_item.done`.
1417
+ type: :"response.output_item.done",
1418
+ # The WebSocket lane that emitted this event.
1419
+ # This field is present when the originating response.create supplied a stream_id.
1420
+ stream_id: nil
1421
+ )
1422
+ end
1423
+
1424
+ sig do
1425
+ override.returns(
1426
+ {
1427
+ item: OpenAI::Responses::ResponseOutputItem::Variants,
1428
+ output_index: Integer,
1429
+ sequence_number: Integer,
1430
+ type: Symbol,
1431
+ stream_id: String
1432
+ }
1433
+ )
1434
+ end
1435
+ def to_hash
1436
+ end
1437
+ end
1438
+
1439
+ class ResponseReasoningSummaryPartWsAdded < OpenAI::Models::Responses::ResponseReasoningSummaryPartAddedEvent
1440
+ OrHash =
1441
+ T.type_alias do
1442
+ T.any(
1443
+ OpenAI::Responses::ResponsesServerEvent::ResponseReasoningSummaryPartWsAdded,
1444
+ OpenAI::Internal::AnyHash
1445
+ )
1446
+ end
1447
+
1448
+ # The WebSocket lane that emitted this event. This field is present when the
1449
+ # originating `response.create` event supplied a `stream_id`.
1450
+ sig { returns(T.nilable(String)) }
1451
+ attr_reader :stream_id
1452
+
1453
+ sig { params(stream_id: String).void }
1454
+ attr_writer :stream_id
1455
+
1456
+ # Emitted when a new reasoning summary part is added.
1457
+ sig do
1458
+ params(
1459
+ item_id: String,
1460
+ output_index: Integer,
1461
+ part:
1462
+ OpenAI::Responses::ResponseReasoningSummaryPartAddedEvent::Part::OrHash,
1463
+ sequence_number: Integer,
1464
+ summary_index: Integer,
1465
+ type: Symbol,
1466
+ stream_id: String
1467
+ ).returns(T.attached_class)
1468
+ end
1469
+ def self.new(
1470
+ # The ID of the item this summary part is associated with.
1471
+ item_id:,
1472
+ # The index of the output item this summary part is associated with.
1473
+ output_index:,
1474
+ # The summary part that was added.
1475
+ part:,
1476
+ # The sequence number of this event.
1477
+ sequence_number:,
1478
+ # The index of the summary part within the reasoning summary.
1479
+ summary_index:,
1480
+ # The type of the event. Always `response.reasoning_summary_part.added`.
1481
+ type: :"response.reasoning_summary_part.added",
1482
+ # The WebSocket lane that emitted this event.
1483
+ # This field is present when the originating response.create supplied a stream_id.
1484
+ stream_id: nil
1485
+ )
1486
+ end
1487
+
1488
+ sig do
1489
+ override.returns(
1490
+ {
1491
+ item_id: String,
1492
+ output_index: Integer,
1493
+ part:
1494
+ OpenAI::Responses::ResponseReasoningSummaryPartAddedEvent::Part,
1495
+ sequence_number: Integer,
1496
+ summary_index: Integer,
1497
+ type: Symbol,
1498
+ stream_id: String
1499
+ }
1500
+ )
1501
+ end
1502
+ def to_hash
1503
+ end
1504
+ end
1505
+
1506
+ class ResponseReasoningSummaryPartWsDone < OpenAI::Models::Responses::ResponseReasoningSummaryPartDoneEvent
1507
+ OrHash =
1508
+ T.type_alias do
1509
+ T.any(
1510
+ OpenAI::Responses::ResponsesServerEvent::ResponseReasoningSummaryPartWsDone,
1511
+ OpenAI::Internal::AnyHash
1512
+ )
1513
+ end
1514
+
1515
+ # The WebSocket lane that emitted this event. This field is present when the
1516
+ # originating `response.create` event supplied a `stream_id`.
1517
+ sig { returns(T.nilable(String)) }
1518
+ attr_reader :stream_id
1519
+
1520
+ sig { params(stream_id: String).void }
1521
+ attr_writer :stream_id
1522
+
1523
+ # Emitted when a reasoning summary part is completed.
1524
+ sig do
1525
+ params(
1526
+ item_id: String,
1527
+ output_index: Integer,
1528
+ part:
1529
+ OpenAI::Responses::ResponseReasoningSummaryPartDoneEvent::Part::OrHash,
1530
+ sequence_number: Integer,
1531
+ summary_index: Integer,
1532
+ status:
1533
+ OpenAI::Responses::ResponseReasoningSummaryPartDoneEvent::Status::OrSymbol,
1534
+ type: Symbol,
1535
+ stream_id: String
1536
+ ).returns(T.attached_class)
1537
+ end
1538
+ def self.new(
1539
+ # The ID of the item this summary part is associated with.
1540
+ item_id:,
1541
+ # The index of the output item this summary part is associated with.
1542
+ output_index:,
1543
+ # The completed summary part.
1544
+ part:,
1545
+ # The sequence number of this event.
1546
+ sequence_number:,
1547
+ # The index of the summary part within the reasoning summary.
1548
+ summary_index:,
1549
+ # The completion status of the summary part. Omitted when the part completed
1550
+ # normally and set to `incomplete` when generation was interrupted.
1551
+ status: nil,
1552
+ # The type of the event. Always `response.reasoning_summary_part.done`.
1553
+ type: :"response.reasoning_summary_part.done",
1554
+ # The WebSocket lane that emitted this event.
1555
+ # This field is present when the originating response.create supplied a stream_id.
1556
+ stream_id: nil
1557
+ )
1558
+ end
1559
+
1560
+ sig do
1561
+ override.returns(
1562
+ {
1563
+ item_id: String,
1564
+ output_index: Integer,
1565
+ part:
1566
+ OpenAI::Responses::ResponseReasoningSummaryPartDoneEvent::Part,
1567
+ sequence_number: Integer,
1568
+ summary_index: Integer,
1569
+ type: Symbol,
1570
+ status:
1571
+ OpenAI::Responses::ResponseReasoningSummaryPartDoneEvent::Status::TaggedSymbol,
1572
+ stream_id: String
1573
+ }
1574
+ )
1575
+ end
1576
+ def to_hash
1577
+ end
1578
+ end
1579
+
1580
+ class ResponseReasoningSummaryTextWsDelta < OpenAI::Models::Responses::ResponseReasoningSummaryTextDeltaEvent
1581
+ OrHash =
1582
+ T.type_alias do
1583
+ T.any(
1584
+ OpenAI::Responses::ResponsesServerEvent::ResponseReasoningSummaryTextWsDelta,
1585
+ OpenAI::Internal::AnyHash
1586
+ )
1587
+ end
1588
+
1589
+ # The WebSocket lane that emitted this event. This field is present when the
1590
+ # originating `response.create` event supplied a `stream_id`.
1591
+ sig { returns(T.nilable(String)) }
1592
+ attr_reader :stream_id
1593
+
1594
+ sig { params(stream_id: String).void }
1595
+ attr_writer :stream_id
1596
+
1597
+ # Emitted when a delta is added to a reasoning summary text.
1598
+ sig do
1599
+ params(
1600
+ delta: String,
1601
+ item_id: String,
1602
+ output_index: Integer,
1603
+ sequence_number: Integer,
1604
+ summary_index: Integer,
1605
+ type: Symbol,
1606
+ stream_id: String
1607
+ ).returns(T.attached_class)
1608
+ end
1609
+ def self.new(
1610
+ # The text delta that was added to the summary.
1611
+ delta:,
1612
+ # The ID of the item this summary text delta is associated with.
1613
+ item_id:,
1614
+ # The index of the output item this summary text delta is associated with.
1615
+ output_index:,
1616
+ # The sequence number of this event.
1617
+ sequence_number:,
1618
+ # The index of the summary part within the reasoning summary.
1619
+ summary_index:,
1620
+ # The type of the event. Always `response.reasoning_summary_text.delta`.
1621
+ type: :"response.reasoning_summary_text.delta",
1622
+ # The WebSocket lane that emitted this event.
1623
+ # This field is present when the originating response.create supplied a stream_id.
1624
+ stream_id: nil
1625
+ )
1626
+ end
1627
+
1628
+ sig do
1629
+ override.returns(
1630
+ {
1631
+ delta: String,
1632
+ item_id: String,
1633
+ output_index: Integer,
1634
+ sequence_number: Integer,
1635
+ summary_index: Integer,
1636
+ type: Symbol,
1637
+ stream_id: String
1638
+ }
1639
+ )
1640
+ end
1641
+ def to_hash
1642
+ end
1643
+ end
1644
+
1645
+ class ResponseReasoningSummaryTextWsDone < OpenAI::Models::Responses::ResponseReasoningSummaryTextDoneEvent
1646
+ OrHash =
1647
+ T.type_alias do
1648
+ T.any(
1649
+ OpenAI::Responses::ResponsesServerEvent::ResponseReasoningSummaryTextWsDone,
1650
+ OpenAI::Internal::AnyHash
1651
+ )
1652
+ end
1653
+
1654
+ # The WebSocket lane that emitted this event. This field is present when the
1655
+ # originating `response.create` event supplied a `stream_id`.
1656
+ sig { returns(T.nilable(String)) }
1657
+ attr_reader :stream_id
1658
+
1659
+ sig { params(stream_id: String).void }
1660
+ attr_writer :stream_id
1661
+
1662
+ # Emitted when a reasoning summary text is completed.
1663
+ sig do
1664
+ params(
1665
+ item_id: String,
1666
+ output_index: Integer,
1667
+ sequence_number: Integer,
1668
+ summary_index: Integer,
1669
+ text: String,
1670
+ type: Symbol,
1671
+ stream_id: String
1672
+ ).returns(T.attached_class)
1673
+ end
1674
+ def self.new(
1675
+ # The ID of the item this summary text is associated with.
1676
+ item_id:,
1677
+ # The index of the output item this summary text is associated with.
1678
+ output_index:,
1679
+ # The sequence number of this event.
1680
+ sequence_number:,
1681
+ # The index of the summary part within the reasoning summary.
1682
+ summary_index:,
1683
+ # The full text of the completed reasoning summary.
1684
+ text:,
1685
+ # The type of the event. Always `response.reasoning_summary_text.done`.
1686
+ type: :"response.reasoning_summary_text.done",
1687
+ # The WebSocket lane that emitted this event.
1688
+ # This field is present when the originating response.create supplied a stream_id.
1689
+ stream_id: nil
1690
+ )
1691
+ end
1692
+
1693
+ sig do
1694
+ override.returns(
1695
+ {
1696
+ item_id: String,
1697
+ output_index: Integer,
1698
+ sequence_number: Integer,
1699
+ summary_index: Integer,
1700
+ text: String,
1701
+ type: Symbol,
1702
+ stream_id: String
1703
+ }
1704
+ )
1705
+ end
1706
+ def to_hash
1707
+ end
1708
+ end
1709
+
1710
+ class ResponseReasoningTextWsDelta < OpenAI::Models::Responses::ResponseReasoningTextDeltaEvent
1711
+ OrHash =
1712
+ T.type_alias do
1713
+ T.any(
1714
+ OpenAI::Responses::ResponsesServerEvent::ResponseReasoningTextWsDelta,
1715
+ OpenAI::Internal::AnyHash
1716
+ )
1717
+ end
1718
+
1719
+ # The WebSocket lane that emitted this event. This field is present when the
1720
+ # originating `response.create` event supplied a `stream_id`.
1721
+ sig { returns(T.nilable(String)) }
1722
+ attr_reader :stream_id
1723
+
1724
+ sig { params(stream_id: String).void }
1725
+ attr_writer :stream_id
1726
+
1727
+ # Emitted when a delta is added to a reasoning text.
1728
+ sig do
1729
+ params(
1730
+ content_index: Integer,
1731
+ delta: String,
1732
+ item_id: String,
1733
+ output_index: Integer,
1734
+ sequence_number: Integer,
1735
+ type: Symbol,
1736
+ stream_id: String
1737
+ ).returns(T.attached_class)
1738
+ end
1739
+ def self.new(
1740
+ # The index of the reasoning content part this delta is associated with.
1741
+ content_index:,
1742
+ # The text delta that was added to the reasoning content.
1743
+ delta:,
1744
+ # The ID of the item this reasoning text delta is associated with.
1745
+ item_id:,
1746
+ # The index of the output item this reasoning text delta is associated with.
1747
+ output_index:,
1748
+ # The sequence number of this event.
1749
+ sequence_number:,
1750
+ # The type of the event. Always `response.reasoning_text.delta`.
1751
+ type: :"response.reasoning_text.delta",
1752
+ # The WebSocket lane that emitted this event.
1753
+ # This field is present when the originating response.create supplied a stream_id.
1754
+ stream_id: nil
1755
+ )
1756
+ end
1757
+
1758
+ sig do
1759
+ override.returns(
1760
+ {
1761
+ content_index: Integer,
1762
+ delta: String,
1763
+ item_id: String,
1764
+ output_index: Integer,
1765
+ sequence_number: Integer,
1766
+ type: Symbol,
1767
+ stream_id: String
1768
+ }
1769
+ )
1770
+ end
1771
+ def to_hash
1772
+ end
1773
+ end
1774
+
1775
+ class ResponseReasoningTextWsDone < OpenAI::Models::Responses::ResponseReasoningTextDoneEvent
1776
+ OrHash =
1777
+ T.type_alias do
1778
+ T.any(
1779
+ OpenAI::Responses::ResponsesServerEvent::ResponseReasoningTextWsDone,
1780
+ OpenAI::Internal::AnyHash
1781
+ )
1782
+ end
1783
+
1784
+ # The WebSocket lane that emitted this event. This field is present when the
1785
+ # originating `response.create` event supplied a `stream_id`.
1786
+ sig { returns(T.nilable(String)) }
1787
+ attr_reader :stream_id
1788
+
1789
+ sig { params(stream_id: String).void }
1790
+ attr_writer :stream_id
1791
+
1792
+ # Emitted when a reasoning text is completed.
1793
+ sig do
1794
+ params(
1795
+ content_index: Integer,
1796
+ item_id: String,
1797
+ output_index: Integer,
1798
+ sequence_number: Integer,
1799
+ text: String,
1800
+ type: Symbol,
1801
+ stream_id: String
1802
+ ).returns(T.attached_class)
1803
+ end
1804
+ def self.new(
1805
+ # The index of the reasoning content part.
1806
+ content_index:,
1807
+ # The ID of the item this reasoning text is associated with.
1808
+ item_id:,
1809
+ # The index of the output item this reasoning text is associated with.
1810
+ output_index:,
1811
+ # The sequence number of this event.
1812
+ sequence_number:,
1813
+ # The full text of the completed reasoning content.
1814
+ text:,
1815
+ # The type of the event. Always `response.reasoning_text.done`.
1816
+ type: :"response.reasoning_text.done",
1817
+ # The WebSocket lane that emitted this event.
1818
+ # This field is present when the originating response.create supplied a stream_id.
1819
+ stream_id: nil
1820
+ )
1821
+ end
1822
+
1823
+ sig do
1824
+ override.returns(
1825
+ {
1826
+ content_index: Integer,
1827
+ item_id: String,
1828
+ output_index: Integer,
1829
+ sequence_number: Integer,
1830
+ text: String,
1831
+ type: Symbol,
1832
+ stream_id: String
1833
+ }
1834
+ )
1835
+ end
1836
+ def to_hash
1837
+ end
1838
+ end
1839
+
1840
+ class ResponseRefusalWsDelta < OpenAI::Models::Responses::ResponseRefusalDeltaEvent
1841
+ OrHash =
1842
+ T.type_alias do
1843
+ T.any(
1844
+ OpenAI::Responses::ResponsesServerEvent::ResponseRefusalWsDelta,
1845
+ OpenAI::Internal::AnyHash
1846
+ )
1847
+ end
1848
+
1849
+ # The WebSocket lane that emitted this event. This field is present when the
1850
+ # originating `response.create` event supplied a `stream_id`.
1851
+ sig { returns(T.nilable(String)) }
1852
+ attr_reader :stream_id
1853
+
1854
+ sig { params(stream_id: String).void }
1855
+ attr_writer :stream_id
1856
+
1857
+ # Emitted when there is a partial refusal text.
1858
+ sig do
1859
+ params(
1860
+ content_index: Integer,
1861
+ delta: String,
1862
+ item_id: String,
1863
+ output_index: Integer,
1864
+ sequence_number: Integer,
1865
+ type: Symbol,
1866
+ stream_id: String
1867
+ ).returns(T.attached_class)
1868
+ end
1869
+ def self.new(
1870
+ # The index of the content part that the refusal text is added to.
1871
+ content_index:,
1872
+ # The refusal text that is added.
1873
+ delta:,
1874
+ # The ID of the output item that the refusal text is added to.
1875
+ item_id:,
1876
+ # The index of the output item that the refusal text is added to.
1877
+ output_index:,
1878
+ # The sequence number of this event.
1879
+ sequence_number:,
1880
+ # The type of the event. Always `response.refusal.delta`.
1881
+ type: :"response.refusal.delta",
1882
+ # The WebSocket lane that emitted this event.
1883
+ # This field is present when the originating response.create supplied a stream_id.
1884
+ stream_id: nil
1885
+ )
1886
+ end
1887
+
1888
+ sig do
1889
+ override.returns(
1890
+ {
1891
+ content_index: Integer,
1892
+ delta: String,
1893
+ item_id: String,
1894
+ output_index: Integer,
1895
+ sequence_number: Integer,
1896
+ type: Symbol,
1897
+ stream_id: String
1898
+ }
1899
+ )
1900
+ end
1901
+ def to_hash
1902
+ end
1903
+ end
1904
+
1905
+ class ResponseRefusalWsDone < OpenAI::Models::Responses::ResponseRefusalDoneEvent
1906
+ OrHash =
1907
+ T.type_alias do
1908
+ T.any(
1909
+ OpenAI::Responses::ResponsesServerEvent::ResponseRefusalWsDone,
1910
+ OpenAI::Internal::AnyHash
1911
+ )
1912
+ end
1913
+
1914
+ # The WebSocket lane that emitted this event. This field is present when the
1915
+ # originating `response.create` event supplied a `stream_id`.
1916
+ sig { returns(T.nilable(String)) }
1917
+ attr_reader :stream_id
1918
+
1919
+ sig { params(stream_id: String).void }
1920
+ attr_writer :stream_id
1921
+
1922
+ # Emitted when refusal text is finalized.
1923
+ sig do
1924
+ params(
1925
+ content_index: Integer,
1926
+ item_id: String,
1927
+ output_index: Integer,
1928
+ refusal: String,
1929
+ sequence_number: Integer,
1930
+ type: Symbol,
1931
+ stream_id: String
1932
+ ).returns(T.attached_class)
1933
+ end
1934
+ def self.new(
1935
+ # The index of the content part that the refusal text is finalized.
1936
+ content_index:,
1937
+ # The ID of the output item that the refusal text is finalized.
1938
+ item_id:,
1939
+ # The index of the output item that the refusal text is finalized.
1940
+ output_index:,
1941
+ # The refusal text that is finalized.
1942
+ refusal:,
1943
+ # The sequence number of this event.
1944
+ sequence_number:,
1945
+ # The type of the event. Always `response.refusal.done`.
1946
+ type: :"response.refusal.done",
1947
+ # The WebSocket lane that emitted this event.
1948
+ # This field is present when the originating response.create supplied a stream_id.
1949
+ stream_id: nil
1950
+ )
1951
+ end
1952
+
1953
+ sig do
1954
+ override.returns(
1955
+ {
1956
+ content_index: Integer,
1957
+ item_id: String,
1958
+ output_index: Integer,
1959
+ refusal: String,
1960
+ sequence_number: Integer,
1961
+ type: Symbol,
1962
+ stream_id: String
1963
+ }
1964
+ )
1965
+ end
1966
+ def to_hash
1967
+ end
1968
+ end
1969
+
1970
+ class ResponseTextWsDelta < OpenAI::Models::Responses::ResponseTextDeltaEvent
1971
+ OrHash =
1972
+ T.type_alias do
1973
+ T.any(
1974
+ OpenAI::Responses::ResponsesServerEvent::ResponseTextWsDelta,
1975
+ OpenAI::Internal::AnyHash
1976
+ )
1977
+ end
1978
+
1979
+ # The WebSocket lane that emitted this event. This field is present when the
1980
+ # originating `response.create` event supplied a `stream_id`.
1981
+ sig { returns(T.nilable(String)) }
1982
+ attr_reader :stream_id
1983
+
1984
+ sig { params(stream_id: String).void }
1985
+ attr_writer :stream_id
1986
+
1987
+ # Emitted when there is an additional text delta.
1988
+ sig do
1989
+ params(
1990
+ content_index: Integer,
1991
+ delta: String,
1992
+ item_id: String,
1993
+ logprobs:
1994
+ T::Array[
1995
+ OpenAI::Responses::ResponseTextDeltaEvent::Logprob::OrHash
1996
+ ],
1997
+ output_index: Integer,
1998
+ sequence_number: Integer,
1999
+ type: Symbol,
2000
+ stream_id: String
2001
+ ).returns(T.attached_class)
2002
+ end
2003
+ def self.new(
2004
+ # The index of the content part that the text delta was added to.
2005
+ content_index:,
2006
+ # The text delta that was added.
2007
+ delta:,
2008
+ # The ID of the output item that the text delta was added to.
2009
+ item_id:,
2010
+ # The log probabilities of the tokens in the delta.
2011
+ logprobs:,
2012
+ # The index of the output item that the text delta was added to.
2013
+ output_index:,
2014
+ # The sequence number for this event.
2015
+ sequence_number:,
2016
+ # The type of the event. Always `response.output_text.delta`.
2017
+ type: :"response.output_text.delta",
2018
+ # The WebSocket lane that emitted this event.
2019
+ # This field is present when the originating response.create supplied a stream_id.
2020
+ stream_id: nil
2021
+ )
2022
+ end
2023
+
2024
+ sig do
2025
+ override.returns(
2026
+ {
2027
+ content_index: Integer,
2028
+ delta: String,
2029
+ item_id: String,
2030
+ logprobs:
2031
+ T::Array[OpenAI::Responses::ResponseTextDeltaEvent::Logprob],
2032
+ output_index: Integer,
2033
+ sequence_number: Integer,
2034
+ type: Symbol,
2035
+ stream_id: String
2036
+ }
2037
+ )
2038
+ end
2039
+ def to_hash
2040
+ end
2041
+ end
2042
+
2043
+ class ResponseTextWsDone < OpenAI::Models::Responses::ResponseTextDoneEvent
2044
+ OrHash =
2045
+ T.type_alias do
2046
+ T.any(
2047
+ OpenAI::Responses::ResponsesServerEvent::ResponseTextWsDone,
2048
+ OpenAI::Internal::AnyHash
2049
+ )
2050
+ end
2051
+
2052
+ # The WebSocket lane that emitted this event. This field is present when the
2053
+ # originating `response.create` event supplied a `stream_id`.
2054
+ sig { returns(T.nilable(String)) }
2055
+ attr_reader :stream_id
2056
+
2057
+ sig { params(stream_id: String).void }
2058
+ attr_writer :stream_id
2059
+
2060
+ # Emitted when text content is finalized.
2061
+ sig do
2062
+ params(
2063
+ content_index: Integer,
2064
+ item_id: String,
2065
+ logprobs:
2066
+ T::Array[
2067
+ OpenAI::Responses::ResponseTextDoneEvent::Logprob::OrHash
2068
+ ],
2069
+ output_index: Integer,
2070
+ sequence_number: Integer,
2071
+ text: String,
2072
+ type: Symbol,
2073
+ stream_id: String
2074
+ ).returns(T.attached_class)
2075
+ end
2076
+ def self.new(
2077
+ # The index of the content part that the text content is finalized.
2078
+ content_index:,
2079
+ # The ID of the output item that the text content is finalized.
2080
+ item_id:,
2081
+ # The log probabilities of the tokens in the delta.
2082
+ logprobs:,
2083
+ # The index of the output item that the text content is finalized.
2084
+ output_index:,
2085
+ # The sequence number for this event.
2086
+ sequence_number:,
2087
+ # The text content that is finalized.
2088
+ text:,
2089
+ # The type of the event. Always `response.output_text.done`.
2090
+ type: :"response.output_text.done",
2091
+ # The WebSocket lane that emitted this event.
2092
+ # This field is present when the originating response.create supplied a stream_id.
2093
+ stream_id: nil
2094
+ )
2095
+ end
2096
+
2097
+ sig do
2098
+ override.returns(
2099
+ {
2100
+ content_index: Integer,
2101
+ item_id: String,
2102
+ logprobs:
2103
+ T::Array[OpenAI::Responses::ResponseTextDoneEvent::Logprob],
2104
+ output_index: Integer,
2105
+ sequence_number: Integer,
2106
+ text: String,
2107
+ type: Symbol,
2108
+ stream_id: String
2109
+ }
2110
+ )
2111
+ end
2112
+ def to_hash
2113
+ end
2114
+ end
2115
+
2116
+ class ResponseWebSearchCallWsCompleted < OpenAI::Models::Responses::ResponseWebSearchCallCompletedEvent
2117
+ OrHash =
2118
+ T.type_alias do
2119
+ T.any(
2120
+ OpenAI::Responses::ResponsesServerEvent::ResponseWebSearchCallWsCompleted,
2121
+ OpenAI::Internal::AnyHash
2122
+ )
2123
+ end
2124
+
2125
+ # The WebSocket lane that emitted this event. This field is present when the
2126
+ # originating `response.create` event supplied a `stream_id`.
2127
+ sig { returns(T.nilable(String)) }
2128
+ attr_reader :stream_id
2129
+
2130
+ sig { params(stream_id: String).void }
2131
+ attr_writer :stream_id
2132
+
2133
+ # Emitted when a web search call is completed.
2134
+ sig do
2135
+ params(
2136
+ item_id: String,
2137
+ output_index: Integer,
2138
+ sequence_number: Integer,
2139
+ type: Symbol,
2140
+ stream_id: String
2141
+ ).returns(T.attached_class)
2142
+ end
2143
+ def self.new(
2144
+ # Unique ID for the output item associated with the web search call.
2145
+ item_id:,
2146
+ # The index of the output item that the web search call is associated with.
2147
+ output_index:,
2148
+ # The sequence number of the web search call being processed.
2149
+ sequence_number:,
2150
+ # The type of the event. Always `response.web_search_call.completed`.
2151
+ type: :"response.web_search_call.completed",
2152
+ # The WebSocket lane that emitted this event.
2153
+ # This field is present when the originating response.create supplied a stream_id.
2154
+ stream_id: nil
2155
+ )
2156
+ end
2157
+
2158
+ sig do
2159
+ override.returns(
2160
+ {
2161
+ item_id: String,
2162
+ output_index: Integer,
2163
+ sequence_number: Integer,
2164
+ type: Symbol,
2165
+ stream_id: String
2166
+ }
2167
+ )
2168
+ end
2169
+ def to_hash
2170
+ end
2171
+ end
2172
+
2173
+ class ResponseWebSearchCallInWsProgress < OpenAI::Models::Responses::ResponseWebSearchCallInProgressEvent
2174
+ OrHash =
2175
+ T.type_alias do
2176
+ T.any(
2177
+ OpenAI::Responses::ResponsesServerEvent::ResponseWebSearchCallInWsProgress,
2178
+ OpenAI::Internal::AnyHash
2179
+ )
2180
+ end
2181
+
2182
+ # The WebSocket lane that emitted this event. This field is present when the
2183
+ # originating `response.create` event supplied a `stream_id`.
2184
+ sig { returns(T.nilable(String)) }
2185
+ attr_reader :stream_id
2186
+
2187
+ sig { params(stream_id: String).void }
2188
+ attr_writer :stream_id
2189
+
2190
+ # Emitted when a web search call is initiated.
2191
+ sig do
2192
+ params(
2193
+ item_id: String,
2194
+ output_index: Integer,
2195
+ sequence_number: Integer,
2196
+ type: Symbol,
2197
+ stream_id: String
2198
+ ).returns(T.attached_class)
2199
+ end
2200
+ def self.new(
2201
+ # Unique ID for the output item associated with the web search call.
2202
+ item_id:,
2203
+ # The index of the output item that the web search call is associated with.
2204
+ output_index:,
2205
+ # The sequence number of the web search call being processed.
2206
+ sequence_number:,
2207
+ # The type of the event. Always `response.web_search_call.in_progress`.
2208
+ type: :"response.web_search_call.in_progress",
2209
+ # The WebSocket lane that emitted this event.
2210
+ # This field is present when the originating response.create supplied a stream_id.
2211
+ stream_id: nil
2212
+ )
2213
+ end
2214
+
2215
+ sig do
2216
+ override.returns(
2217
+ {
2218
+ item_id: String,
2219
+ output_index: Integer,
2220
+ sequence_number: Integer,
2221
+ type: Symbol,
2222
+ stream_id: String
2223
+ }
2224
+ )
2225
+ end
2226
+ def to_hash
2227
+ end
2228
+ end
2229
+
2230
+ class ResponseWebSearchCallWsSearching < OpenAI::Models::Responses::ResponseWebSearchCallSearchingEvent
2231
+ OrHash =
2232
+ T.type_alias do
2233
+ T.any(
2234
+ OpenAI::Responses::ResponsesServerEvent::ResponseWebSearchCallWsSearching,
2235
+ OpenAI::Internal::AnyHash
2236
+ )
2237
+ end
2238
+
2239
+ # The WebSocket lane that emitted this event. This field is present when the
2240
+ # originating `response.create` event supplied a `stream_id`.
2241
+ sig { returns(T.nilable(String)) }
2242
+ attr_reader :stream_id
2243
+
2244
+ sig { params(stream_id: String).void }
2245
+ attr_writer :stream_id
2246
+
2247
+ # Emitted when a web search call is executing.
2248
+ sig do
2249
+ params(
2250
+ item_id: String,
2251
+ output_index: Integer,
2252
+ sequence_number: Integer,
2253
+ type: Symbol,
2254
+ stream_id: String
2255
+ ).returns(T.attached_class)
2256
+ end
2257
+ def self.new(
2258
+ # Unique ID for the output item associated with the web search call.
2259
+ item_id:,
2260
+ # The index of the output item that the web search call is associated with.
2261
+ output_index:,
2262
+ # The sequence number of the web search call being processed.
2263
+ sequence_number:,
2264
+ # The type of the event. Always `response.web_search_call.searching`.
2265
+ type: :"response.web_search_call.searching",
2266
+ # The WebSocket lane that emitted this event.
2267
+ # This field is present when the originating response.create supplied a stream_id.
2268
+ stream_id: nil
2269
+ )
2270
+ end
2271
+
2272
+ sig do
2273
+ override.returns(
2274
+ {
2275
+ item_id: String,
2276
+ output_index: Integer,
2277
+ sequence_number: Integer,
2278
+ type: Symbol,
2279
+ stream_id: String
2280
+ }
2281
+ )
2282
+ end
2283
+ def to_hash
2284
+ end
2285
+ end
2286
+
2287
+ class ResponseImageGenCallWsCompleted < OpenAI::Models::Responses::ResponseImageGenCallCompletedEvent
2288
+ OrHash =
2289
+ T.type_alias do
2290
+ T.any(
2291
+ OpenAI::Responses::ResponsesServerEvent::ResponseImageGenCallWsCompleted,
2292
+ OpenAI::Internal::AnyHash
2293
+ )
2294
+ end
2295
+
2296
+ # The WebSocket lane that emitted this event. This field is present when the
2297
+ # originating `response.create` event supplied a `stream_id`.
2298
+ sig { returns(T.nilable(String)) }
2299
+ attr_reader :stream_id
2300
+
2301
+ sig { params(stream_id: String).void }
2302
+ attr_writer :stream_id
2303
+
2304
+ # Emitted when an image generation tool call has completed and the final image is
2305
+ # available.
2306
+ sig do
2307
+ params(
2308
+ item_id: String,
2309
+ output_index: Integer,
2310
+ sequence_number: Integer,
2311
+ type: Symbol,
2312
+ stream_id: String
2313
+ ).returns(T.attached_class)
2314
+ end
2315
+ def self.new(
2316
+ # The unique identifier of the image generation item being processed.
2317
+ item_id:,
2318
+ # The index of the output item in the response's output array.
2319
+ output_index:,
2320
+ # The sequence number of this event.
2321
+ sequence_number:,
2322
+ # The type of the event. Always 'response.image_generation_call.completed'.
2323
+ type: :"response.image_generation_call.completed",
2324
+ # The WebSocket lane that emitted this event.
2325
+ # This field is present when the originating response.create supplied a stream_id.
2326
+ stream_id: nil
2327
+ )
2328
+ end
2329
+
2330
+ sig do
2331
+ override.returns(
2332
+ {
2333
+ item_id: String,
2334
+ output_index: Integer,
2335
+ sequence_number: Integer,
2336
+ type: Symbol,
2337
+ stream_id: String
2338
+ }
2339
+ )
2340
+ end
2341
+ def to_hash
2342
+ end
2343
+ end
2344
+
2345
+ class ResponseImageGenCallWsGenerating < OpenAI::Models::Responses::ResponseImageGenCallGeneratingEvent
2346
+ OrHash =
2347
+ T.type_alias do
2348
+ T.any(
2349
+ OpenAI::Responses::ResponsesServerEvent::ResponseImageGenCallWsGenerating,
2350
+ OpenAI::Internal::AnyHash
2351
+ )
2352
+ end
2353
+
2354
+ # The WebSocket lane that emitted this event. This field is present when the
2355
+ # originating `response.create` event supplied a `stream_id`.
2356
+ sig { returns(T.nilable(String)) }
2357
+ attr_reader :stream_id
2358
+
2359
+ sig { params(stream_id: String).void }
2360
+ attr_writer :stream_id
2361
+
2362
+ # Emitted when an image generation tool call is actively generating an image
2363
+ # (intermediate state).
2364
+ sig do
2365
+ params(
2366
+ item_id: String,
2367
+ output_index: Integer,
2368
+ sequence_number: Integer,
2369
+ type: Symbol,
2370
+ stream_id: String
2371
+ ).returns(T.attached_class)
2372
+ end
2373
+ def self.new(
2374
+ # The unique identifier of the image generation item being processed.
2375
+ item_id:,
2376
+ # The index of the output item in the response's output array.
2377
+ output_index:,
2378
+ # The sequence number of the image generation item being processed.
2379
+ sequence_number:,
2380
+ # The type of the event. Always 'response.image_generation_call.generating'.
2381
+ type: :"response.image_generation_call.generating",
2382
+ # The WebSocket lane that emitted this event.
2383
+ # This field is present when the originating response.create supplied a stream_id.
2384
+ stream_id: nil
2385
+ )
2386
+ end
2387
+
2388
+ sig do
2389
+ override.returns(
2390
+ {
2391
+ item_id: String,
2392
+ output_index: Integer,
2393
+ sequence_number: Integer,
2394
+ type: Symbol,
2395
+ stream_id: String
2396
+ }
2397
+ )
2398
+ end
2399
+ def to_hash
2400
+ end
2401
+ end
2402
+
2403
+ class ResponseImageGenCallInWsProgress < OpenAI::Models::Responses::ResponseImageGenCallInProgressEvent
2404
+ OrHash =
2405
+ T.type_alias do
2406
+ T.any(
2407
+ OpenAI::Responses::ResponsesServerEvent::ResponseImageGenCallInWsProgress,
2408
+ OpenAI::Internal::AnyHash
2409
+ )
2410
+ end
2411
+
2412
+ # The WebSocket lane that emitted this event. This field is present when the
2413
+ # originating `response.create` event supplied a `stream_id`.
2414
+ sig { returns(T.nilable(String)) }
2415
+ attr_reader :stream_id
2416
+
2417
+ sig { params(stream_id: String).void }
2418
+ attr_writer :stream_id
2419
+
2420
+ # Emitted when an image generation tool call is in progress.
2421
+ sig do
2422
+ params(
2423
+ item_id: String,
2424
+ output_index: Integer,
2425
+ sequence_number: Integer,
2426
+ type: Symbol,
2427
+ stream_id: String
2428
+ ).returns(T.attached_class)
2429
+ end
2430
+ def self.new(
2431
+ # The unique identifier of the image generation item being processed.
2432
+ item_id:,
2433
+ # The index of the output item in the response's output array.
2434
+ output_index:,
2435
+ # The sequence number of the image generation item being processed.
2436
+ sequence_number:,
2437
+ # The type of the event. Always 'response.image_generation_call.in_progress'.
2438
+ type: :"response.image_generation_call.in_progress",
2439
+ # The WebSocket lane that emitted this event.
2440
+ # This field is present when the originating response.create supplied a stream_id.
2441
+ stream_id: nil
2442
+ )
2443
+ end
2444
+
2445
+ sig do
2446
+ override.returns(
2447
+ {
2448
+ item_id: String,
2449
+ output_index: Integer,
2450
+ sequence_number: Integer,
2451
+ type: Symbol,
2452
+ stream_id: String
2453
+ }
2454
+ )
2455
+ end
2456
+ def to_hash
2457
+ end
2458
+ end
2459
+
2460
+ class ResponseImageGenCallPartialWsImage < OpenAI::Models::Responses::ResponseImageGenCallPartialImageEvent
2461
+ OrHash =
2462
+ T.type_alias do
2463
+ T.any(
2464
+ OpenAI::Responses::ResponsesServerEvent::ResponseImageGenCallPartialWsImage,
2465
+ OpenAI::Internal::AnyHash
2466
+ )
2467
+ end
2468
+
2469
+ # The WebSocket lane that emitted this event. This field is present when the
2470
+ # originating `response.create` event supplied a `stream_id`.
2471
+ sig { returns(T.nilable(String)) }
2472
+ attr_reader :stream_id
2473
+
2474
+ sig { params(stream_id: String).void }
2475
+ attr_writer :stream_id
2476
+
2477
+ # Emitted when a partial image is available during image generation streaming.
2478
+ sig do
2479
+ params(
2480
+ item_id: String,
2481
+ output_index: Integer,
2482
+ partial_image_b64: String,
2483
+ partial_image_index: Integer,
2484
+ sequence_number: Integer,
2485
+ type: Symbol,
2486
+ stream_id: String
2487
+ ).returns(T.attached_class)
2488
+ end
2489
+ def self.new(
2490
+ # The unique identifier of the image generation item being processed.
2491
+ item_id:,
2492
+ # The index of the output item in the response's output array.
2493
+ output_index:,
2494
+ # Base64-encoded partial image data, suitable for rendering as an image.
2495
+ partial_image_b64:,
2496
+ # 0-based index for the partial image (backend is 1-based, but this is 0-based for
2497
+ # the user).
2498
+ partial_image_index:,
2499
+ # The sequence number of the image generation item being processed.
2500
+ sequence_number:,
2501
+ # The type of the event. Always 'response.image_generation_call.partial_image'.
2502
+ type: :"response.image_generation_call.partial_image",
2503
+ # The WebSocket lane that emitted this event.
2504
+ # This field is present when the originating response.create supplied a stream_id.
2505
+ stream_id: nil
2506
+ )
2507
+ end
2508
+
2509
+ sig do
2510
+ override.returns(
2511
+ {
2512
+ item_id: String,
2513
+ output_index: Integer,
2514
+ partial_image_b64: String,
2515
+ partial_image_index: Integer,
2516
+ sequence_number: Integer,
2517
+ type: Symbol,
2518
+ stream_id: String
2519
+ }
2520
+ )
2521
+ end
2522
+ def to_hash
2523
+ end
2524
+ end
2525
+
2526
+ class ResponseMcpCallArgumentsWsDelta < OpenAI::Models::Responses::ResponseMcpCallArgumentsDeltaEvent
2527
+ OrHash =
2528
+ T.type_alias do
2529
+ T.any(
2530
+ OpenAI::Responses::ResponsesServerEvent::ResponseMcpCallArgumentsWsDelta,
2531
+ OpenAI::Internal::AnyHash
2532
+ )
2533
+ end
2534
+
2535
+ # The WebSocket lane that emitted this event. This field is present when the
2536
+ # originating `response.create` event supplied a `stream_id`.
2537
+ sig { returns(T.nilable(String)) }
2538
+ attr_reader :stream_id
2539
+
2540
+ sig { params(stream_id: String).void }
2541
+ attr_writer :stream_id
2542
+
2543
+ # Emitted when there is a delta (partial update) to the arguments of an MCP tool
2544
+ # call.
2545
+ sig do
2546
+ params(
2547
+ delta: String,
2548
+ item_id: String,
2549
+ output_index: Integer,
2550
+ sequence_number: Integer,
2551
+ type: Symbol,
2552
+ stream_id: String
2553
+ ).returns(T.attached_class)
2554
+ end
2555
+ def self.new(
2556
+ # A JSON string containing the partial update to the arguments for the MCP tool
2557
+ # call.
2558
+ delta:,
2559
+ # The unique identifier of the MCP tool call item being processed.
2560
+ item_id:,
2561
+ # The index of the output item in the response's output array.
2562
+ output_index:,
2563
+ # The sequence number of this event.
2564
+ sequence_number:,
2565
+ # The type of the event. Always 'response.mcp_call_arguments.delta'.
2566
+ type: :"response.mcp_call_arguments.delta",
2567
+ # The WebSocket lane that emitted this event.
2568
+ # This field is present when the originating response.create supplied a stream_id.
2569
+ stream_id: nil
2570
+ )
2571
+ end
2572
+
2573
+ sig do
2574
+ override.returns(
2575
+ {
2576
+ delta: String,
2577
+ item_id: String,
2578
+ output_index: Integer,
2579
+ sequence_number: Integer,
2580
+ type: Symbol,
2581
+ stream_id: String
2582
+ }
2583
+ )
2584
+ end
2585
+ def to_hash
2586
+ end
2587
+ end
2588
+
2589
+ class ResponseMcpCallArgumentsWsDone < OpenAI::Models::Responses::ResponseMcpCallArgumentsDoneEvent
2590
+ OrHash =
2591
+ T.type_alias do
2592
+ T.any(
2593
+ OpenAI::Responses::ResponsesServerEvent::ResponseMcpCallArgumentsWsDone,
2594
+ OpenAI::Internal::AnyHash
2595
+ )
2596
+ end
2597
+
2598
+ # The WebSocket lane that emitted this event. This field is present when the
2599
+ # originating `response.create` event supplied a `stream_id`.
2600
+ sig { returns(T.nilable(String)) }
2601
+ attr_reader :stream_id
2602
+
2603
+ sig { params(stream_id: String).void }
2604
+ attr_writer :stream_id
2605
+
2606
+ # Emitted when the arguments for an MCP tool call are finalized.
2607
+ sig do
2608
+ params(
2609
+ arguments: String,
2610
+ item_id: String,
2611
+ output_index: Integer,
2612
+ sequence_number: Integer,
2613
+ type: Symbol,
2614
+ stream_id: String
2615
+ ).returns(T.attached_class)
2616
+ end
2617
+ def self.new(
2618
+ # A JSON string containing the finalized arguments for the MCP tool call.
2619
+ arguments:,
2620
+ # The unique identifier of the MCP tool call item being processed.
2621
+ item_id:,
2622
+ # The index of the output item in the response's output array.
2623
+ output_index:,
2624
+ # The sequence number of this event.
2625
+ sequence_number:,
2626
+ # The type of the event. Always 'response.mcp_call_arguments.done'.
2627
+ type: :"response.mcp_call_arguments.done",
2628
+ # The WebSocket lane that emitted this event.
2629
+ # This field is present when the originating response.create supplied a stream_id.
2630
+ stream_id: nil
2631
+ )
2632
+ end
2633
+
2634
+ sig do
2635
+ override.returns(
2636
+ {
2637
+ arguments: String,
2638
+ item_id: String,
2639
+ output_index: Integer,
2640
+ sequence_number: Integer,
2641
+ type: Symbol,
2642
+ stream_id: String
2643
+ }
2644
+ )
2645
+ end
2646
+ def to_hash
2647
+ end
2648
+ end
2649
+
2650
+ class ResponseMcpCallWsCompleted < OpenAI::Models::Responses::ResponseMcpCallCompletedEvent
2651
+ OrHash =
2652
+ T.type_alias do
2653
+ T.any(
2654
+ OpenAI::Responses::ResponsesServerEvent::ResponseMcpCallWsCompleted,
2655
+ OpenAI::Internal::AnyHash
2656
+ )
2657
+ end
2658
+
2659
+ # The WebSocket lane that emitted this event. This field is present when the
2660
+ # originating `response.create` event supplied a `stream_id`.
2661
+ sig { returns(T.nilable(String)) }
2662
+ attr_reader :stream_id
2663
+
2664
+ sig { params(stream_id: String).void }
2665
+ attr_writer :stream_id
2666
+
2667
+ # Emitted when an MCP tool call has completed successfully.
2668
+ sig do
2669
+ params(
2670
+ item_id: String,
2671
+ output_index: Integer,
2672
+ sequence_number: Integer,
2673
+ type: Symbol,
2674
+ stream_id: String
2675
+ ).returns(T.attached_class)
2676
+ end
2677
+ def self.new(
2678
+ # The ID of the MCP tool call item that completed.
2679
+ item_id:,
2680
+ # The index of the output item that completed.
2681
+ output_index:,
2682
+ # The sequence number of this event.
2683
+ sequence_number:,
2684
+ # The type of the event. Always 'response.mcp_call.completed'.
2685
+ type: :"response.mcp_call.completed",
2686
+ # The WebSocket lane that emitted this event.
2687
+ # This field is present when the originating response.create supplied a stream_id.
2688
+ stream_id: nil
2689
+ )
2690
+ end
2691
+
2692
+ sig do
2693
+ override.returns(
2694
+ {
2695
+ item_id: String,
2696
+ output_index: Integer,
2697
+ sequence_number: Integer,
2698
+ type: Symbol,
2699
+ stream_id: String
2700
+ }
2701
+ )
2702
+ end
2703
+ def to_hash
2704
+ end
2705
+ end
2706
+
2707
+ class ResponseMcpCallWsFailed < OpenAI::Models::Responses::ResponseMcpCallFailedEvent
2708
+ OrHash =
2709
+ T.type_alias do
2710
+ T.any(
2711
+ OpenAI::Responses::ResponsesServerEvent::ResponseMcpCallWsFailed,
2712
+ OpenAI::Internal::AnyHash
2713
+ )
2714
+ end
2715
+
2716
+ # The WebSocket lane that emitted this event. This field is present when the
2717
+ # originating `response.create` event supplied a `stream_id`.
2718
+ sig { returns(T.nilable(String)) }
2719
+ attr_reader :stream_id
2720
+
2721
+ sig { params(stream_id: String).void }
2722
+ attr_writer :stream_id
2723
+
2724
+ # Emitted when an MCP tool call has failed.
2725
+ sig do
2726
+ params(
2727
+ item_id: String,
2728
+ output_index: Integer,
2729
+ sequence_number: Integer,
2730
+ type: Symbol,
2731
+ stream_id: String
2732
+ ).returns(T.attached_class)
2733
+ end
2734
+ def self.new(
2735
+ # The ID of the MCP tool call item that failed.
2736
+ item_id:,
2737
+ # The index of the output item that failed.
2738
+ output_index:,
2739
+ # The sequence number of this event.
2740
+ sequence_number:,
2741
+ # The type of the event. Always 'response.mcp_call.failed'.
2742
+ type: :"response.mcp_call.failed",
2743
+ # The WebSocket lane that emitted this event.
2744
+ # This field is present when the originating response.create supplied a stream_id.
2745
+ stream_id: nil
2746
+ )
2747
+ end
2748
+
2749
+ sig do
2750
+ override.returns(
2751
+ {
2752
+ item_id: String,
2753
+ output_index: Integer,
2754
+ sequence_number: Integer,
2755
+ type: Symbol,
2756
+ stream_id: String
2757
+ }
2758
+ )
2759
+ end
2760
+ def to_hash
2761
+ end
2762
+ end
2763
+
2764
+ class ResponseMcpCallInWsProgress < OpenAI::Models::Responses::ResponseMcpCallInProgressEvent
2765
+ OrHash =
2766
+ T.type_alias do
2767
+ T.any(
2768
+ OpenAI::Responses::ResponsesServerEvent::ResponseMcpCallInWsProgress,
2769
+ OpenAI::Internal::AnyHash
2770
+ )
2771
+ end
2772
+
2773
+ # The WebSocket lane that emitted this event. This field is present when the
2774
+ # originating `response.create` event supplied a `stream_id`.
2775
+ sig { returns(T.nilable(String)) }
2776
+ attr_reader :stream_id
2777
+
2778
+ sig { params(stream_id: String).void }
2779
+ attr_writer :stream_id
2780
+
2781
+ # Emitted when an MCP tool call is in progress.
2782
+ sig do
2783
+ params(
2784
+ item_id: String,
2785
+ output_index: Integer,
2786
+ sequence_number: Integer,
2787
+ type: Symbol,
2788
+ stream_id: String
2789
+ ).returns(T.attached_class)
2790
+ end
2791
+ def self.new(
2792
+ # The unique identifier of the MCP tool call item being processed.
2793
+ item_id:,
2794
+ # The index of the output item in the response's output array.
2795
+ output_index:,
2796
+ # The sequence number of this event.
2797
+ sequence_number:,
2798
+ # The type of the event. Always 'response.mcp_call.in_progress'.
2799
+ type: :"response.mcp_call.in_progress",
2800
+ # The WebSocket lane that emitted this event.
2801
+ # This field is present when the originating response.create supplied a stream_id.
2802
+ stream_id: nil
2803
+ )
2804
+ end
2805
+
2806
+ sig do
2807
+ override.returns(
2808
+ {
2809
+ item_id: String,
2810
+ output_index: Integer,
2811
+ sequence_number: Integer,
2812
+ type: Symbol,
2813
+ stream_id: String
2814
+ }
2815
+ )
2816
+ end
2817
+ def to_hash
2818
+ end
2819
+ end
2820
+
2821
+ class ResponseMcpListToolsWsCompleted < OpenAI::Models::Responses::ResponseMcpListToolsCompletedEvent
2822
+ OrHash =
2823
+ T.type_alias do
2824
+ T.any(
2825
+ OpenAI::Responses::ResponsesServerEvent::ResponseMcpListToolsWsCompleted,
2826
+ OpenAI::Internal::AnyHash
2827
+ )
2828
+ end
2829
+
2830
+ # The WebSocket lane that emitted this event. This field is present when the
2831
+ # originating `response.create` event supplied a `stream_id`.
2832
+ sig { returns(T.nilable(String)) }
2833
+ attr_reader :stream_id
2834
+
2835
+ sig { params(stream_id: String).void }
2836
+ attr_writer :stream_id
2837
+
2838
+ # Emitted when the list of available MCP tools has been successfully retrieved.
2839
+ sig do
2840
+ params(
2841
+ item_id: String,
2842
+ output_index: Integer,
2843
+ sequence_number: Integer,
2844
+ type: Symbol,
2845
+ stream_id: String
2846
+ ).returns(T.attached_class)
2847
+ end
2848
+ def self.new(
2849
+ # The ID of the MCP tool call item that produced this output.
2850
+ item_id:,
2851
+ # The index of the output item that was processed.
2852
+ output_index:,
2853
+ # The sequence number of this event.
2854
+ sequence_number:,
2855
+ # The type of the event. Always 'response.mcp_list_tools.completed'.
2856
+ type: :"response.mcp_list_tools.completed",
2857
+ # The WebSocket lane that emitted this event.
2858
+ # This field is present when the originating response.create supplied a stream_id.
2859
+ stream_id: nil
2860
+ )
2861
+ end
2862
+
2863
+ sig do
2864
+ override.returns(
2865
+ {
2866
+ item_id: String,
2867
+ output_index: Integer,
2868
+ sequence_number: Integer,
2869
+ type: Symbol,
2870
+ stream_id: String
2871
+ }
2872
+ )
2873
+ end
2874
+ def to_hash
2875
+ end
2876
+ end
2877
+
2878
+ class ResponseMcpListToolsWsFailed < OpenAI::Models::Responses::ResponseMcpListToolsFailedEvent
2879
+ OrHash =
2880
+ T.type_alias do
2881
+ T.any(
2882
+ OpenAI::Responses::ResponsesServerEvent::ResponseMcpListToolsWsFailed,
2883
+ OpenAI::Internal::AnyHash
2884
+ )
2885
+ end
2886
+
2887
+ # The WebSocket lane that emitted this event. This field is present when the
2888
+ # originating `response.create` event supplied a `stream_id`.
2889
+ sig { returns(T.nilable(String)) }
2890
+ attr_reader :stream_id
2891
+
2892
+ sig { params(stream_id: String).void }
2893
+ attr_writer :stream_id
2894
+
2895
+ # Emitted when the attempt to list available MCP tools has failed.
2896
+ sig do
2897
+ params(
2898
+ item_id: String,
2899
+ output_index: Integer,
2900
+ sequence_number: Integer,
2901
+ type: Symbol,
2902
+ stream_id: String
2903
+ ).returns(T.attached_class)
2904
+ end
2905
+ def self.new(
2906
+ # The ID of the MCP tool call item that failed.
2907
+ item_id:,
2908
+ # The index of the output item that failed.
2909
+ output_index:,
2910
+ # The sequence number of this event.
2911
+ sequence_number:,
2912
+ # The type of the event. Always 'response.mcp_list_tools.failed'.
2913
+ type: :"response.mcp_list_tools.failed",
2914
+ # The WebSocket lane that emitted this event.
2915
+ # This field is present when the originating response.create supplied a stream_id.
2916
+ stream_id: nil
2917
+ )
2918
+ end
2919
+
2920
+ sig do
2921
+ override.returns(
2922
+ {
2923
+ item_id: String,
2924
+ output_index: Integer,
2925
+ sequence_number: Integer,
2926
+ type: Symbol,
2927
+ stream_id: String
2928
+ }
2929
+ )
2930
+ end
2931
+ def to_hash
2932
+ end
2933
+ end
2934
+
2935
+ class ResponseMcpListToolsInWsProgress < OpenAI::Models::Responses::ResponseMcpListToolsInProgressEvent
2936
+ OrHash =
2937
+ T.type_alias do
2938
+ T.any(
2939
+ OpenAI::Responses::ResponsesServerEvent::ResponseMcpListToolsInWsProgress,
2940
+ OpenAI::Internal::AnyHash
2941
+ )
2942
+ end
2943
+
2944
+ # The WebSocket lane that emitted this event. This field is present when the
2945
+ # originating `response.create` event supplied a `stream_id`.
2946
+ sig { returns(T.nilable(String)) }
2947
+ attr_reader :stream_id
2948
+
2949
+ sig { params(stream_id: String).void }
2950
+ attr_writer :stream_id
2951
+
2952
+ # Emitted when the system is in the process of retrieving the list of available
2953
+ # MCP tools.
2954
+ sig do
2955
+ params(
2956
+ item_id: String,
2957
+ output_index: Integer,
2958
+ sequence_number: Integer,
2959
+ type: Symbol,
2960
+ stream_id: String
2961
+ ).returns(T.attached_class)
2962
+ end
2963
+ def self.new(
2964
+ # The ID of the MCP tool call item that is being processed.
2965
+ item_id:,
2966
+ # The index of the output item that is being processed.
2967
+ output_index:,
2968
+ # The sequence number of this event.
2969
+ sequence_number:,
2970
+ # The type of the event. Always 'response.mcp_list_tools.in_progress'.
2971
+ type: :"response.mcp_list_tools.in_progress",
2972
+ # The WebSocket lane that emitted this event.
2973
+ # This field is present when the originating response.create supplied a stream_id.
2974
+ stream_id: nil
2975
+ )
2976
+ end
2977
+
2978
+ sig do
2979
+ override.returns(
2980
+ {
2981
+ item_id: String,
2982
+ output_index: Integer,
2983
+ sequence_number: Integer,
2984
+ type: Symbol,
2985
+ stream_id: String
2986
+ }
2987
+ )
2988
+ end
2989
+ def to_hash
2990
+ end
2991
+ end
2992
+
2993
+ class ResponseOutputTextAnnotationWsAdded < OpenAI::Models::Responses::ResponseOutputTextAnnotationAddedEvent
2994
+ OrHash =
2995
+ T.type_alias do
2996
+ T.any(
2997
+ OpenAI::Responses::ResponsesServerEvent::ResponseOutputTextAnnotationWsAdded,
2998
+ OpenAI::Internal::AnyHash
2999
+ )
3000
+ end
3001
+
3002
+ # The WebSocket lane that emitted this event. This field is present when the
3003
+ # originating `response.create` event supplied a `stream_id`.
3004
+ sig { returns(T.nilable(String)) }
3005
+ attr_reader :stream_id
3006
+
3007
+ sig { params(stream_id: String).void }
3008
+ attr_writer :stream_id
3009
+
3010
+ # Emitted when an annotation is added to output text content.
3011
+ sig do
3012
+ params(
3013
+ annotation: T.anything,
3014
+ annotation_index: Integer,
3015
+ content_index: Integer,
3016
+ item_id: String,
3017
+ output_index: Integer,
3018
+ sequence_number: Integer,
3019
+ type: Symbol,
3020
+ stream_id: String
3021
+ ).returns(T.attached_class)
3022
+ end
3023
+ def self.new(
3024
+ # The annotation object being added. (See annotation schema for details.)
3025
+ annotation:,
3026
+ # The index of the annotation within the content part.
3027
+ annotation_index:,
3028
+ # The index of the content part within the output item.
3029
+ content_index:,
3030
+ # The unique identifier of the item to which the annotation is being added.
3031
+ item_id:,
3032
+ # The index of the output item in the response's output array.
3033
+ output_index:,
3034
+ # The sequence number of this event.
3035
+ sequence_number:,
3036
+ # The type of the event. Always 'response.output_text.annotation.added'.
3037
+ type: :"response.output_text.annotation.added",
3038
+ # The WebSocket lane that emitted this event.
3039
+ # This field is present when the originating response.create supplied a stream_id.
3040
+ stream_id: nil
3041
+ )
3042
+ end
3043
+
3044
+ sig do
3045
+ override.returns(
3046
+ {
3047
+ annotation: T.anything,
3048
+ annotation_index: Integer,
3049
+ content_index: Integer,
3050
+ item_id: String,
3051
+ output_index: Integer,
3052
+ sequence_number: Integer,
3053
+ type: Symbol,
3054
+ stream_id: String
3055
+ }
3056
+ )
3057
+ end
3058
+ def to_hash
3059
+ end
3060
+ end
3061
+
3062
+ class ResponseWsQueued < OpenAI::Models::Responses::ResponseQueuedEvent
3063
+ OrHash =
3064
+ T.type_alias do
3065
+ T.any(
3066
+ OpenAI::Responses::ResponsesServerEvent::ResponseWsQueued,
3067
+ OpenAI::Internal::AnyHash
3068
+ )
3069
+ end
3070
+
3071
+ # The WebSocket lane that emitted this event. This field is present when the
3072
+ # originating `response.create` event supplied a `stream_id`.
3073
+ sig { returns(T.nilable(String)) }
3074
+ attr_reader :stream_id
3075
+
3076
+ sig { params(stream_id: String).void }
3077
+ attr_writer :stream_id
3078
+
3079
+ # Emitted when a response is queued and waiting to be processed.
3080
+ sig do
3081
+ params(
3082
+ response: OpenAI::Responses::Response::OrHash,
3083
+ sequence_number: Integer,
3084
+ type: Symbol,
3085
+ stream_id: String
3086
+ ).returns(T.attached_class)
3087
+ end
3088
+ def self.new(
3089
+ # The full response object that is queued.
3090
+ response:,
3091
+ # The sequence number for this event.
3092
+ sequence_number:,
3093
+ # The type of the event. Always 'response.queued'.
3094
+ type: :"response.queued",
3095
+ # The WebSocket lane that emitted this event.
3096
+ # This field is present when the originating response.create supplied a stream_id.
3097
+ stream_id: nil
3098
+ )
3099
+ end
3100
+
3101
+ sig do
3102
+ override.returns(
3103
+ {
3104
+ response: OpenAI::Responses::Response,
3105
+ sequence_number: Integer,
3106
+ type: Symbol,
3107
+ stream_id: String
3108
+ }
3109
+ )
3110
+ end
3111
+ def to_hash
3112
+ end
3113
+ end
3114
+
3115
+ class ResponseCustomToolCallInputWsDelta < OpenAI::Models::Responses::ResponseCustomToolCallInputDeltaEvent
3116
+ OrHash =
3117
+ T.type_alias do
3118
+ T.any(
3119
+ OpenAI::Responses::ResponsesServerEvent::ResponseCustomToolCallInputWsDelta,
3120
+ OpenAI::Internal::AnyHash
3121
+ )
3122
+ end
3123
+
3124
+ # The WebSocket lane that emitted this event. This field is present when the
3125
+ # originating `response.create` event supplied a `stream_id`.
3126
+ sig { returns(T.nilable(String)) }
3127
+ attr_reader :stream_id
3128
+
3129
+ sig { params(stream_id: String).void }
3130
+ attr_writer :stream_id
3131
+
3132
+ # Event representing a delta (partial update) to the input of a custom tool call.
3133
+ sig do
3134
+ params(
3135
+ delta: String,
3136
+ item_id: String,
3137
+ output_index: Integer,
3138
+ sequence_number: Integer,
3139
+ type: Symbol,
3140
+ stream_id: String
3141
+ ).returns(T.attached_class)
3142
+ end
3143
+ def self.new(
3144
+ # The incremental input data (delta) for the custom tool call.
3145
+ delta:,
3146
+ # Unique identifier for the API item associated with this event.
3147
+ item_id:,
3148
+ # The index of the output this delta applies to.
3149
+ output_index:,
3150
+ # The sequence number of this event.
3151
+ sequence_number:,
3152
+ # The event type identifier.
3153
+ type: :"response.custom_tool_call_input.delta",
3154
+ # The WebSocket lane that emitted this event.
3155
+ # This field is present when the originating response.create supplied a stream_id.
3156
+ stream_id: nil
3157
+ )
3158
+ end
3159
+
3160
+ sig do
3161
+ override.returns(
3162
+ {
3163
+ delta: String,
3164
+ item_id: String,
3165
+ output_index: Integer,
3166
+ sequence_number: Integer,
3167
+ type: Symbol,
3168
+ stream_id: String
3169
+ }
3170
+ )
3171
+ end
3172
+ def to_hash
3173
+ end
3174
+ end
3175
+
3176
+ class ResponseCustomToolCallInputWsDone < OpenAI::Models::Responses::ResponseCustomToolCallInputDoneEvent
3177
+ OrHash =
3178
+ T.type_alias do
3179
+ T.any(
3180
+ OpenAI::Responses::ResponsesServerEvent::ResponseCustomToolCallInputWsDone,
3181
+ OpenAI::Internal::AnyHash
3182
+ )
3183
+ end
3184
+
3185
+ # The WebSocket lane that emitted this event. This field is present when the
3186
+ # originating `response.create` event supplied a `stream_id`.
3187
+ sig { returns(T.nilable(String)) }
3188
+ attr_reader :stream_id
3189
+
3190
+ sig { params(stream_id: String).void }
3191
+ attr_writer :stream_id
3192
+
3193
+ # Event indicating that input for a custom tool call is complete.
3194
+ sig do
3195
+ params(
3196
+ input: String,
3197
+ item_id: String,
3198
+ output_index: Integer,
3199
+ sequence_number: Integer,
3200
+ type: Symbol,
3201
+ stream_id: String
3202
+ ).returns(T.attached_class)
3203
+ end
3204
+ def self.new(
3205
+ # The complete input data for the custom tool call.
3206
+ input:,
3207
+ # Unique identifier for the API item associated with this event.
3208
+ item_id:,
3209
+ # The index of the output this event applies to.
3210
+ output_index:,
3211
+ # The sequence number of this event.
3212
+ sequence_number:,
3213
+ # The event type identifier.
3214
+ type: :"response.custom_tool_call_input.done",
3215
+ # The WebSocket lane that emitted this event.
3216
+ # This field is present when the originating response.create supplied a stream_id.
3217
+ stream_id: nil
3218
+ )
3219
+ end
3220
+
3221
+ sig do
3222
+ override.returns(
3223
+ {
3224
+ input: String,
3225
+ item_id: String,
3226
+ output_index: Integer,
3227
+ sequence_number: Integer,
3228
+ type: Symbol,
3229
+ stream_id: String
3230
+ }
3231
+ )
3232
+ end
3233
+ def to_hash
3234
+ end
3235
+ end
3236
+
3237
+ class ResponseWsError < OpenAI::Internal::Type::BaseModel
3238
+ OrHash =
3239
+ T.type_alias do
3240
+ T.any(
3241
+ OpenAI::Responses::ResponsesServerEvent::ResponseWsError,
3242
+ OpenAI::Internal::AnyHash
3243
+ )
3244
+ end
3245
+
3246
+ # Details about the error.
3247
+ sig do
3248
+ returns(
3249
+ OpenAI::Responses::ResponsesServerEvent::ResponseWsError::Error
3250
+ )
3251
+ end
3252
+ attr_reader :error
3253
+
3254
+ sig do
3255
+ params(
3256
+ error:
3257
+ OpenAI::Responses::ResponsesServerEvent::ResponseWsError::Error::OrHash
3258
+ ).void
3259
+ end
3260
+ attr_writer :error
3261
+
3262
+ # The type of the event. Always `error`.
3263
+ sig { returns(Symbol) }
3264
+ attr_accessor :type
3265
+
3266
+ # The sequence number of an error emitted by the response stream.
3267
+ sig { returns(T.nilable(Integer)) }
3268
+ attr_reader :sequence_number
3269
+
3270
+ sig { params(sequence_number: Integer).void }
3271
+ attr_writer :sequence_number
3272
+
3273
+ # The HTTP status code associated with a WebSocket protocol error.
3274
+ sig { returns(T.nilable(Integer)) }
3275
+ attr_reader :status
3276
+
3277
+ sig { params(status: Integer).void }
3278
+ attr_writer :status
3279
+
3280
+ # The WebSocket lane that emitted this event. This field is present when the
3281
+ # originating `response.create` event supplied a `stream_id`.
3282
+ sig { returns(T.nilable(String)) }
3283
+ attr_reader :stream_id
3284
+
3285
+ sig { params(stream_id: String).void }
3286
+ attr_writer :stream_id
3287
+
3288
+ # Emitted when an error occurs while processing a Responses WebSocket request.
3289
+ sig do
3290
+ params(
3291
+ error:
3292
+ OpenAI::Responses::ResponsesServerEvent::ResponseWsError::Error::OrHash,
3293
+ sequence_number: Integer,
3294
+ status: Integer,
3295
+ stream_id: String,
3296
+ type: Symbol
3297
+ ).returns(T.attached_class)
3298
+ end
3299
+ def self.new(
3300
+ # Details about the error.
3301
+ error:,
3302
+ # The sequence number of an error emitted by the response stream.
3303
+ sequence_number: nil,
3304
+ # The HTTP status code associated with a WebSocket protocol error.
3305
+ status: nil,
3306
+ # The WebSocket lane that emitted this event. This field is present when the
3307
+ # originating `response.create` event supplied a `stream_id`.
3308
+ stream_id: nil,
3309
+ # The type of the event. Always `error`.
3310
+ type: :error
3311
+ )
3312
+ end
3313
+
3314
+ sig do
3315
+ override.returns(
3316
+ {
3317
+ error:
3318
+ OpenAI::Responses::ResponsesServerEvent::ResponseWsError::Error,
3319
+ type: Symbol,
3320
+ sequence_number: Integer,
3321
+ status: Integer,
3322
+ stream_id: String
3323
+ }
3324
+ )
3325
+ end
3326
+ def to_hash
3327
+ end
3328
+
3329
+ class Error < OpenAI::Internal::Type::BaseModel
3330
+ OrHash =
3331
+ T.type_alias do
3332
+ T.any(
3333
+ OpenAI::Responses::ResponsesServerEvent::ResponseWsError::Error,
3334
+ OpenAI::Internal::AnyHash
3335
+ )
3336
+ end
3337
+
3338
+ # The error code that was emitted, if any.
3339
+ sig { returns(T.nilable(String)) }
3340
+ attr_accessor :code
3341
+
3342
+ # The human-readable error message that was emitted.
3343
+ sig { returns(String) }
3344
+ attr_accessor :message
3345
+
3346
+ # The parameter name that was associated with the error, if any.
3347
+ sig { returns(T.nilable(String)) }
3348
+ attr_accessor :param
3349
+
3350
+ # The error type that was emitted.
3351
+ sig { returns(String) }
3352
+ attr_accessor :type
3353
+
3354
+ # The response headers that were emitted with the error, if any.
3355
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
3356
+ attr_reader :headers
3357
+
3358
+ sig { params(headers: T::Hash[Symbol, String]).void }
3359
+ attr_writer :headers
3360
+
3361
+ # Details about the error.
3362
+ sig do
3363
+ params(
3364
+ code: T.nilable(String),
3365
+ message: String,
3366
+ param: T.nilable(String),
3367
+ type: String,
3368
+ headers: T::Hash[Symbol, String]
3369
+ ).returns(T.attached_class)
3370
+ end
3371
+ def self.new(
3372
+ # The error code that was emitted, if any.
3373
+ code:,
3374
+ # The human-readable error message that was emitted.
3375
+ message:,
3376
+ # The parameter name that was associated with the error, if any.
3377
+ param:,
3378
+ # The error type that was emitted.
3379
+ type:,
3380
+ # The response headers that were emitted with the error, if any.
3381
+ headers: nil
3382
+ )
3383
+ end
3384
+
3385
+ sig do
3386
+ override.returns(
3387
+ {
3388
+ code: T.nilable(String),
3389
+ message: String,
3390
+ param: T.nilable(String),
3391
+ type: String,
3392
+ headers: T::Hash[Symbol, String]
3393
+ }
3394
+ )
3395
+ end
3396
+ def to_hash
3397
+ end
3398
+ end
3399
+ end
3400
+
69
3401
  sig do
70
3402
  override.returns(
71
3403
  T::Array[OpenAI::Responses::ResponsesServerEvent::Variants]