openai 0.90.0 → 0.92.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 (143) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +31 -0
  3. data/README.md +1 -1
  4. data/examples/realtime/README.md +8 -0
  5. data/examples/realtime/browser/README.md +167 -0
  6. data/examples/realtime/browser/index.html +19 -0
  7. data/examples/realtime/browser/page.js +21 -0
  8. data/examples/realtime/browser/peer.js +180 -0
  9. data/examples/realtime/browser/server.rb +281 -0
  10. data/examples/responses/websocket_workflows.rb +66 -6
  11. data/lib/openai/auth/workload_identity.rb +5 -1
  12. data/lib/openai/auth/workload_identity_auth.rb +2 -2
  13. data/lib/openai/auth/x509_token_exchange.rb +1 -1
  14. data/lib/openai/helpers/local_audio/process.rb +1 -1
  15. data/lib/openai/helpers/responses_websocket/connection.rb +2 -1
  16. data/lib/openai/helpers/responses_websocket/session.rb +551 -0
  17. data/lib/openai/helpers/responses_websocket.rb +1 -0
  18. data/lib/openai/helpers/sorbet.rb +1 -1
  19. data/lib/openai/helpers/websocket/async_websocket_transport.rb +6 -1
  20. data/lib/openai/internal/poller.rb +2 -2
  21. data/lib/openai/internal/transport/base_client.rb +1 -1
  22. data/lib/openai/internal/util.rb +1 -1
  23. data/lib/openai/models/beta/agents/session_update_params.rb +108 -1
  24. data/lib/openai/models/beta/beta_response.rb +9 -3
  25. data/lib/openai/models/beta/beta_response_compaction_compacting_event.rb +75 -0
  26. data/lib/openai/models/beta/beta_response_stream_event.rb +4 -1
  27. data/lib/openai/models/beta/beta_responses_client_event.rb +25 -4
  28. data/lib/openai/models/beta/beta_responses_server_event.rb +39 -1
  29. data/lib/openai/models/beta/beta_tool.rb +16 -0
  30. data/lib/openai/models/beta/response_compact_params.rb +9 -3
  31. data/lib/openai/models/beta/response_create_params.rb +21 -4
  32. data/lib/openai/models/beta/session_turn_error.rb +3 -0
  33. data/lib/openai/models/chat_model.rb +3 -1
  34. data/lib/openai/models/realtime/realtime_response_create_mcp_tool.rb +16 -0
  35. data/lib/openai/models/realtime/realtime_session_create_response.rb +16 -0
  36. data/lib/openai/models/realtime/realtime_tools_config_union.rb +16 -0
  37. data/lib/openai/models/responses/response_compact_params.rb +9 -3
  38. data/lib/openai/models/responses/response_compaction_compacting_event.rb +49 -0
  39. data/lib/openai/models/responses/response_create_params.rb +12 -1
  40. data/lib/openai/models/responses/response_stream_event.rb +4 -1
  41. data/lib/openai/models/responses/responses_client_event.rb +12 -1
  42. data/lib/openai/models/responses/responses_server_event.rb +36 -1
  43. data/lib/openai/models/responses/tool.rb +16 -0
  44. data/lib/openai/models/webhooks/deleted_webhook_endpoint.rb +38 -0
  45. data/lib/openai/models/webhooks/event_type_list_params.rb +16 -0
  46. data/lib/openai/models/webhooks/realtime_call_incoming_webhook_event.rb +6 -8
  47. data/lib/openai/models/webhooks/webhook_create_params.rb +73 -0
  48. data/lib/openai/models/webhooks/webhook_delete_params.rb +22 -0
  49. data/lib/openai/models/webhooks/webhook_endpoint.rb +85 -0
  50. data/lib/openai/models/webhooks/webhook_endpoint_list.rb +55 -0
  51. data/lib/openai/models/webhooks/webhook_endpoint_test_result.rb +58 -0
  52. data/lib/openai/models/webhooks/webhook_endpoint_with_secret.rb +105 -0
  53. data/lib/openai/models/webhooks/webhook_event_type_list.rb +28 -0
  54. data/lib/openai/models/webhooks/webhook_list_params.rb +34 -0
  55. data/lib/openai/models/webhooks/webhook_retrieve_params.rb +22 -0
  56. data/lib/openai/models/webhooks/webhook_rotate_secret_params.rb +34 -0
  57. data/lib/openai/models/webhooks/webhook_test_params.rb +59 -0
  58. data/lib/openai/models/webhooks/webhook_update_params.rb +80 -0
  59. data/lib/openai/resources/beta/agents/sessions.rb +6 -2
  60. data/lib/openai/resources/beta/responses.rb +2 -2
  61. data/lib/openai/resources/responses.rb +2 -2
  62. data/lib/openai/resources/webhooks/event_types.rb +35 -0
  63. data/lib/openai/resources/webhooks.rb +195 -0
  64. data/lib/openai/version.rb +1 -1
  65. data/lib/openai.rb +17 -0
  66. data/rbi/openai/helpers/responses_websocket/connection.rbi +5 -0
  67. data/rbi/openai/helpers/responses_websocket/session.rbi +206 -0
  68. data/rbi/openai/models/beta/agents/session_update_params.rbi +178 -0
  69. data/rbi/openai/models/beta/beta_response.rbi +6 -1
  70. data/rbi/openai/models/beta/beta_response_compaction_compacting_event.rbi +136 -0
  71. data/rbi/openai/models/beta/beta_response_stream_event.rbi +1 -0
  72. data/rbi/openai/models/beta/beta_responses_client_event.rbi +27 -4
  73. data/rbi/openai/models/beta/beta_responses_server_event.rbi +77 -0
  74. data/rbi/openai/models/beta/beta_tool.rbi +12 -0
  75. data/rbi/openai/models/beta/response_compact_params.rbi +6 -1
  76. data/rbi/openai/models/beta/response_create_params.rbi +21 -1
  77. data/rbi/openai/models/beta/session_turn_error.rbi +6 -0
  78. data/rbi/openai/models/chat_model.rbi +3 -1
  79. data/rbi/openai/models/realtime/realtime_response_create_mcp_tool.rbi +12 -0
  80. data/rbi/openai/models/realtime/realtime_session_create_response.rbi +12 -0
  81. data/rbi/openai/models/realtime/realtime_tools_config_union.rbi +12 -0
  82. data/rbi/openai/models/responses/response_compact_params.rbi +6 -1
  83. data/rbi/openai/models/responses/response_compaction_compacting_event.rbi +78 -0
  84. data/rbi/openai/models/responses/response_create_params.rbi +15 -0
  85. data/rbi/openai/models/responses/response_stream_event.rbi +1 -0
  86. data/rbi/openai/models/responses/responses_client_event.rbi +15 -0
  87. data/rbi/openai/models/responses/responses_server_event.rbi +71 -0
  88. data/rbi/openai/models/responses/tool.rbi +12 -0
  89. data/rbi/openai/models/webhooks/deleted_webhook_endpoint.rbi +67 -0
  90. data/rbi/openai/models/webhooks/event_type_list_params.rbi +37 -0
  91. data/rbi/openai/models/webhooks/realtime_call_incoming_webhook_event.rbi +6 -8
  92. data/rbi/openai/models/webhooks/webhook_create_params.rbi +139 -0
  93. data/rbi/openai/models/webhooks/webhook_delete_params.rbi +53 -0
  94. data/rbi/openai/models/webhooks/webhook_endpoint.rbi +126 -0
  95. data/rbi/openai/models/webhooks/webhook_endpoint_list.rbi +91 -0
  96. data/rbi/openai/models/webhooks/webhook_endpoint_test_result.rbi +87 -0
  97. data/rbi/openai/models/webhooks/webhook_endpoint_with_secret.rbi +138 -0
  98. data/rbi/openai/models/webhooks/webhook_event_type_list.rbi +58 -0
  99. data/rbi/openai/models/webhooks/webhook_list_params.rbi +67 -0
  100. data/rbi/openai/models/webhooks/webhook_retrieve_params.rbi +53 -0
  101. data/rbi/openai/models/webhooks/webhook_rotate_secret_params.rbi +71 -0
  102. data/rbi/openai/models/webhooks/webhook_test_params.rbi +124 -0
  103. data/rbi/openai/models/webhooks/webhook_update_params.rbi +156 -0
  104. data/rbi/openai/resources/beta/agents/sessions.rbi +5 -1
  105. data/rbi/openai/resources/webhooks/event_types.rbi +24 -0
  106. data/rbi/openai/resources/webhooks.rbi +126 -0
  107. data/responses-websocket.md +117 -10
  108. data/sig/openai/helpers/responses_websocket/connection.rbs +5 -0
  109. data/sig/openai/helpers/responses_websocket/session.rbs +123 -0
  110. data/sig/openai/models/beta/agents/session_update_params.rbs +99 -0
  111. data/sig/openai/models/beta/beta_response.rbs +6 -2
  112. data/sig/openai/models/beta/beta_response_compaction_compacting_event.rbs +58 -0
  113. data/sig/openai/models/beta/beta_response_stream_event.rbs +1 -0
  114. data/sig/openai/models/beta/beta_responses_client_event.rbs +13 -2
  115. data/sig/openai/models/beta/beta_responses_server_event.rbs +35 -0
  116. data/sig/openai/models/beta/response_compact_params.rbs +6 -2
  117. data/sig/openai/models/beta/response_create_params.rbs +13 -2
  118. data/sig/openai/models/beta/session_turn_error.rbs +4 -0
  119. data/sig/openai/models/chat_model.rbs +6 -2
  120. data/sig/openai/models/responses/response_compact_params.rbs +6 -2
  121. data/sig/openai/models/responses/response_compaction_compacting_event.rbs +37 -0
  122. data/sig/openai/models/responses/response_create_params.rbs +7 -0
  123. data/sig/openai/models/responses/response_stream_event.rbs +1 -0
  124. data/sig/openai/models/responses/responses_client_event.rbs +7 -0
  125. data/sig/openai/models/responses/responses_server_event.rbs +32 -0
  126. data/sig/openai/models/webhooks/deleted_webhook_endpoint.rbs +28 -0
  127. data/sig/openai/models/webhooks/event_type_list_params.rbs +16 -0
  128. data/sig/openai/models/webhooks/webhook_create_params.rbs +83 -0
  129. data/sig/openai/models/webhooks/webhook_delete_params.rbs +25 -0
  130. data/sig/openai/models/webhooks/webhook_endpoint.rbs +59 -0
  131. data/sig/openai/models/webhooks/webhook_endpoint_list.rbs +42 -0
  132. data/sig/openai/models/webhooks/webhook_endpoint_test_result.rbs +42 -0
  133. data/sig/openai/models/webhooks/webhook_endpoint_with_secret.rbs +64 -0
  134. data/sig/openai/models/webhooks/webhook_event_type_list.rbs +17 -0
  135. data/sig/openai/models/webhooks/webhook_list_params.rbs +35 -0
  136. data/sig/openai/models/webhooks/webhook_retrieve_params.rbs +25 -0
  137. data/sig/openai/models/webhooks/webhook_rotate_secret_params.rbs +35 -0
  138. data/sig/openai/models/webhooks/webhook_test_params.rbs +78 -0
  139. data/sig/openai/models/webhooks/webhook_update_params.rbs +96 -0
  140. data/sig/openai/resources/beta/agents/sessions.rbs +1 -0
  141. data/sig/openai/resources/webhooks/event_types.rbs +13 -0
  142. data/sig/openai/resources/webhooks.rbs +45 -0
  143. metadata +61 -2
@@ -615,7 +615,7 @@ module OpenAI
615
615
  #
616
616
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
617
617
  #
618
- # @return [OpenAI::Internal::Stream<OpenAI::Models::Responses::ResponseAudioDeltaEvent, OpenAI::Models::Responses::ResponseAudioDoneEvent, OpenAI::Models::Responses::ResponseAudioTranscriptDeltaEvent, OpenAI::Models::Responses::ResponseAudioTranscriptDoneEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCodeDeltaEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCodeDoneEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCompletedEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallInProgressEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallInterpretingEvent, OpenAI::Models::Responses::ResponseCompletedEvent, OpenAI::Models::Responses::ResponseContentPartAddedEvent, OpenAI::Models::Responses::ResponseContentPartDoneEvent, OpenAI::Models::Responses::ResponseCreatedEvent, OpenAI::Models::Responses::ResponseErrorEvent, OpenAI::Models::Responses::ResponseFileSearchCallCompletedEvent, OpenAI::Models::Responses::ResponseFileSearchCallInProgressEvent, OpenAI::Models::Responses::ResponseFileSearchCallSearchingEvent, OpenAI::Models::Responses::ResponseFunctionCallArgumentsDeltaEvent, OpenAI::Models::Responses::ResponseFunctionCallArgumentsDoneEvent, OpenAI::Models::Responses::ResponseShellCallCommandAddedEvent, OpenAI::Models::Responses::ResponseShellCallCommandDeltaEvent, OpenAI::Models::Responses::ResponseShellCallCommandDoneEvent, OpenAI::Models::Responses::ResponseShellCallOutputContentDeltaEvent, OpenAI::Models::Responses::ResponseShellCallOutputContentDoneEvent, OpenAI::Models::Responses::ResponseInProgressEvent, OpenAI::Models::Responses::ResponseFailedEvent, OpenAI::Models::Responses::ResponseIncompleteEvent, OpenAI::Models::Responses::ResponseOutputItemAddedEvent, OpenAI::Models::Responses::ResponseOutputItemDoneEvent, OpenAI::Models::Responses::ResponseReasoningSummaryPartAddedEvent, OpenAI::Models::Responses::ResponseReasoningSummaryPartDoneEvent, OpenAI::Models::Responses::ResponseReasoningSummaryTextDeltaEvent, OpenAI::Models::Responses::ResponseReasoningSummaryTextDoneEvent, OpenAI::Models::Responses::ResponseReasoningTextDeltaEvent, OpenAI::Models::Responses::ResponseReasoningTextDoneEvent, OpenAI::Models::Responses::ResponseRefusalDeltaEvent, OpenAI::Models::Responses::ResponseRefusalDoneEvent, OpenAI::Models::Responses::ResponseTextDeltaEvent, OpenAI::Models::Responses::ResponseTextDoneEvent, OpenAI::Models::Responses::ResponseWebSearchCallCompletedEvent, OpenAI::Models::Responses::ResponseWebSearchCallInProgressEvent, OpenAI::Models::Responses::ResponseWebSearchCallSearchingEvent, OpenAI::Models::Responses::ResponseImageGenCallCompletedEvent, OpenAI::Models::Responses::ResponseImageGenCallGeneratingEvent, OpenAI::Models::Responses::ResponseImageGenCallInProgressEvent, OpenAI::Models::Responses::ResponseImageGenCallPartialImageEvent, OpenAI::Models::Responses::ResponseMcpCallArgumentsDeltaEvent, OpenAI::Models::Responses::ResponseMcpCallArgumentsDoneEvent, OpenAI::Models::Responses::ResponseMcpCallCompletedEvent, OpenAI::Models::Responses::ResponseMcpCallFailedEvent, OpenAI::Models::Responses::ResponseMcpCallInProgressEvent, OpenAI::Models::Responses::ResponseMcpListToolsCompletedEvent, OpenAI::Models::Responses::ResponseMcpListToolsFailedEvent, OpenAI::Models::Responses::ResponseMcpListToolsInProgressEvent, OpenAI::Models::Responses::ResponseOutputTextAnnotationAddedEvent, OpenAI::Models::Responses::ResponseQueuedEvent, OpenAI::Models::Responses::ResponseCustomToolCallInputDeltaEvent, OpenAI::Models::Responses::ResponseCustomToolCallInputDoneEvent, OpenAI::Streaming::UnknownStreamEvent>]
618
+ # @return [OpenAI::Internal::Stream<OpenAI::Models::Responses::ResponseAudioDeltaEvent, OpenAI::Models::Responses::ResponseAudioDoneEvent, OpenAI::Models::Responses::ResponseAudioTranscriptDeltaEvent, OpenAI::Models::Responses::ResponseAudioTranscriptDoneEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCodeDeltaEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCodeDoneEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCompletedEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallInProgressEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallInterpretingEvent, OpenAI::Models::Responses::ResponseCompactionCompactingEvent, OpenAI::Models::Responses::ResponseCompletedEvent, OpenAI::Models::Responses::ResponseContentPartAddedEvent, OpenAI::Models::Responses::ResponseContentPartDoneEvent, OpenAI::Models::Responses::ResponseCreatedEvent, OpenAI::Models::Responses::ResponseErrorEvent, OpenAI::Models::Responses::ResponseFileSearchCallCompletedEvent, OpenAI::Models::Responses::ResponseFileSearchCallInProgressEvent, OpenAI::Models::Responses::ResponseFileSearchCallSearchingEvent, OpenAI::Models::Responses::ResponseFunctionCallArgumentsDeltaEvent, OpenAI::Models::Responses::ResponseFunctionCallArgumentsDoneEvent, OpenAI::Models::Responses::ResponseShellCallCommandAddedEvent, OpenAI::Models::Responses::ResponseShellCallCommandDeltaEvent, OpenAI::Models::Responses::ResponseShellCallCommandDoneEvent, OpenAI::Models::Responses::ResponseShellCallOutputContentDeltaEvent, OpenAI::Models::Responses::ResponseShellCallOutputContentDoneEvent, OpenAI::Models::Responses::ResponseInProgressEvent, OpenAI::Models::Responses::ResponseFailedEvent, OpenAI::Models::Responses::ResponseIncompleteEvent, OpenAI::Models::Responses::ResponseOutputItemAddedEvent, OpenAI::Models::Responses::ResponseOutputItemDoneEvent, OpenAI::Models::Responses::ResponseReasoningSummaryPartAddedEvent, OpenAI::Models::Responses::ResponseReasoningSummaryPartDoneEvent, OpenAI::Models::Responses::ResponseReasoningSummaryTextDeltaEvent, OpenAI::Models::Responses::ResponseReasoningSummaryTextDoneEvent, OpenAI::Models::Responses::ResponseReasoningTextDeltaEvent, OpenAI::Models::Responses::ResponseReasoningTextDoneEvent, OpenAI::Models::Responses::ResponseRefusalDeltaEvent, OpenAI::Models::Responses::ResponseRefusalDoneEvent, OpenAI::Models::Responses::ResponseTextDeltaEvent, OpenAI::Models::Responses::ResponseTextDoneEvent, OpenAI::Models::Responses::ResponseWebSearchCallCompletedEvent, OpenAI::Models::Responses::ResponseWebSearchCallInProgressEvent, OpenAI::Models::Responses::ResponseWebSearchCallSearchingEvent, OpenAI::Models::Responses::ResponseImageGenCallCompletedEvent, OpenAI::Models::Responses::ResponseImageGenCallGeneratingEvent, OpenAI::Models::Responses::ResponseImageGenCallInProgressEvent, OpenAI::Models::Responses::ResponseImageGenCallPartialImageEvent, OpenAI::Models::Responses::ResponseMcpCallArgumentsDeltaEvent, OpenAI::Models::Responses::ResponseMcpCallArgumentsDoneEvent, OpenAI::Models::Responses::ResponseMcpCallCompletedEvent, OpenAI::Models::Responses::ResponseMcpCallFailedEvent, OpenAI::Models::Responses::ResponseMcpCallInProgressEvent, OpenAI::Models::Responses::ResponseMcpListToolsCompletedEvent, OpenAI::Models::Responses::ResponseMcpListToolsFailedEvent, OpenAI::Models::Responses::ResponseMcpListToolsInProgressEvent, OpenAI::Models::Responses::ResponseOutputTextAnnotationAddedEvent, OpenAI::Models::Responses::ResponseQueuedEvent, OpenAI::Models::Responses::ResponseCustomToolCallInputDeltaEvent, OpenAI::Models::Responses::ResponseCustomToolCallInputDoneEvent, OpenAI::Streaming::UnknownStreamEvent>]
619
619
  #
620
620
  # @see OpenAI::Models::Responses::ResponseCreateParams
621
621
  def stream_raw(params = {})
@@ -731,7 +731,7 @@ module OpenAI
731
731
  #
732
732
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
733
733
  #
734
- # @return [OpenAI::Internal::Stream<OpenAI::Models::Responses::ResponseAudioDeltaEvent, OpenAI::Models::Responses::ResponseAudioDoneEvent, OpenAI::Models::Responses::ResponseAudioTranscriptDeltaEvent, OpenAI::Models::Responses::ResponseAudioTranscriptDoneEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCodeDeltaEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCodeDoneEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCompletedEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallInProgressEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallInterpretingEvent, OpenAI::Models::Responses::ResponseCompletedEvent, OpenAI::Models::Responses::ResponseContentPartAddedEvent, OpenAI::Models::Responses::ResponseContentPartDoneEvent, OpenAI::Models::Responses::ResponseCreatedEvent, OpenAI::Models::Responses::ResponseErrorEvent, OpenAI::Models::Responses::ResponseFileSearchCallCompletedEvent, OpenAI::Models::Responses::ResponseFileSearchCallInProgressEvent, OpenAI::Models::Responses::ResponseFileSearchCallSearchingEvent, OpenAI::Models::Responses::ResponseFunctionCallArgumentsDeltaEvent, OpenAI::Models::Responses::ResponseFunctionCallArgumentsDoneEvent, OpenAI::Models::Responses::ResponseShellCallCommandAddedEvent, OpenAI::Models::Responses::ResponseShellCallCommandDeltaEvent, OpenAI::Models::Responses::ResponseShellCallCommandDoneEvent, OpenAI::Models::Responses::ResponseShellCallOutputContentDeltaEvent, OpenAI::Models::Responses::ResponseShellCallOutputContentDoneEvent, OpenAI::Models::Responses::ResponseInProgressEvent, OpenAI::Models::Responses::ResponseFailedEvent, OpenAI::Models::Responses::ResponseIncompleteEvent, OpenAI::Models::Responses::ResponseOutputItemAddedEvent, OpenAI::Models::Responses::ResponseOutputItemDoneEvent, OpenAI::Models::Responses::ResponseReasoningSummaryPartAddedEvent, OpenAI::Models::Responses::ResponseReasoningSummaryPartDoneEvent, OpenAI::Models::Responses::ResponseReasoningSummaryTextDeltaEvent, OpenAI::Models::Responses::ResponseReasoningSummaryTextDoneEvent, OpenAI::Models::Responses::ResponseReasoningTextDeltaEvent, OpenAI::Models::Responses::ResponseReasoningTextDoneEvent, OpenAI::Models::Responses::ResponseRefusalDeltaEvent, OpenAI::Models::Responses::ResponseRefusalDoneEvent, OpenAI::Models::Responses::ResponseTextDeltaEvent, OpenAI::Models::Responses::ResponseTextDoneEvent, OpenAI::Models::Responses::ResponseWebSearchCallCompletedEvent, OpenAI::Models::Responses::ResponseWebSearchCallInProgressEvent, OpenAI::Models::Responses::ResponseWebSearchCallSearchingEvent, OpenAI::Models::Responses::ResponseImageGenCallCompletedEvent, OpenAI::Models::Responses::ResponseImageGenCallGeneratingEvent, OpenAI::Models::Responses::ResponseImageGenCallInProgressEvent, OpenAI::Models::Responses::ResponseImageGenCallPartialImageEvent, OpenAI::Models::Responses::ResponseMcpCallArgumentsDeltaEvent, OpenAI::Models::Responses::ResponseMcpCallArgumentsDoneEvent, OpenAI::Models::Responses::ResponseMcpCallCompletedEvent, OpenAI::Models::Responses::ResponseMcpCallFailedEvent, OpenAI::Models::Responses::ResponseMcpCallInProgressEvent, OpenAI::Models::Responses::ResponseMcpListToolsCompletedEvent, OpenAI::Models::Responses::ResponseMcpListToolsFailedEvent, OpenAI::Models::Responses::ResponseMcpListToolsInProgressEvent, OpenAI::Models::Responses::ResponseOutputTextAnnotationAddedEvent, OpenAI::Models::Responses::ResponseQueuedEvent, OpenAI::Models::Responses::ResponseCustomToolCallInputDeltaEvent, OpenAI::Models::Responses::ResponseCustomToolCallInputDoneEvent, OpenAI::Streaming::UnknownStreamEvent>]
734
+ # @return [OpenAI::Internal::Stream<OpenAI::Models::Responses::ResponseAudioDeltaEvent, OpenAI::Models::Responses::ResponseAudioDoneEvent, OpenAI::Models::Responses::ResponseAudioTranscriptDeltaEvent, OpenAI::Models::Responses::ResponseAudioTranscriptDoneEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCodeDeltaEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCodeDoneEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCompletedEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallInProgressEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallInterpretingEvent, OpenAI::Models::Responses::ResponseCompactionCompactingEvent, OpenAI::Models::Responses::ResponseCompletedEvent, OpenAI::Models::Responses::ResponseContentPartAddedEvent, OpenAI::Models::Responses::ResponseContentPartDoneEvent, OpenAI::Models::Responses::ResponseCreatedEvent, OpenAI::Models::Responses::ResponseErrorEvent, OpenAI::Models::Responses::ResponseFileSearchCallCompletedEvent, OpenAI::Models::Responses::ResponseFileSearchCallInProgressEvent, OpenAI::Models::Responses::ResponseFileSearchCallSearchingEvent, OpenAI::Models::Responses::ResponseFunctionCallArgumentsDeltaEvent, OpenAI::Models::Responses::ResponseFunctionCallArgumentsDoneEvent, OpenAI::Models::Responses::ResponseShellCallCommandAddedEvent, OpenAI::Models::Responses::ResponseShellCallCommandDeltaEvent, OpenAI::Models::Responses::ResponseShellCallCommandDoneEvent, OpenAI::Models::Responses::ResponseShellCallOutputContentDeltaEvent, OpenAI::Models::Responses::ResponseShellCallOutputContentDoneEvent, OpenAI::Models::Responses::ResponseInProgressEvent, OpenAI::Models::Responses::ResponseFailedEvent, OpenAI::Models::Responses::ResponseIncompleteEvent, OpenAI::Models::Responses::ResponseOutputItemAddedEvent, OpenAI::Models::Responses::ResponseOutputItemDoneEvent, OpenAI::Models::Responses::ResponseReasoningSummaryPartAddedEvent, OpenAI::Models::Responses::ResponseReasoningSummaryPartDoneEvent, OpenAI::Models::Responses::ResponseReasoningSummaryTextDeltaEvent, OpenAI::Models::Responses::ResponseReasoningSummaryTextDoneEvent, OpenAI::Models::Responses::ResponseReasoningTextDeltaEvent, OpenAI::Models::Responses::ResponseReasoningTextDoneEvent, OpenAI::Models::Responses::ResponseRefusalDeltaEvent, OpenAI::Models::Responses::ResponseRefusalDoneEvent, OpenAI::Models::Responses::ResponseTextDeltaEvent, OpenAI::Models::Responses::ResponseTextDoneEvent, OpenAI::Models::Responses::ResponseWebSearchCallCompletedEvent, OpenAI::Models::Responses::ResponseWebSearchCallInProgressEvent, OpenAI::Models::Responses::ResponseWebSearchCallSearchingEvent, OpenAI::Models::Responses::ResponseImageGenCallCompletedEvent, OpenAI::Models::Responses::ResponseImageGenCallGeneratingEvent, OpenAI::Models::Responses::ResponseImageGenCallInProgressEvent, OpenAI::Models::Responses::ResponseImageGenCallPartialImageEvent, OpenAI::Models::Responses::ResponseMcpCallArgumentsDeltaEvent, OpenAI::Models::Responses::ResponseMcpCallArgumentsDoneEvent, OpenAI::Models::Responses::ResponseMcpCallCompletedEvent, OpenAI::Models::Responses::ResponseMcpCallFailedEvent, OpenAI::Models::Responses::ResponseMcpCallInProgressEvent, OpenAI::Models::Responses::ResponseMcpListToolsCompletedEvent, OpenAI::Models::Responses::ResponseMcpListToolsFailedEvent, OpenAI::Models::Responses::ResponseMcpListToolsInProgressEvent, OpenAI::Models::Responses::ResponseOutputTextAnnotationAddedEvent, OpenAI::Models::Responses::ResponseQueuedEvent, OpenAI::Models::Responses::ResponseCustomToolCallInputDeltaEvent, OpenAI::Models::Responses::ResponseCustomToolCallInputDoneEvent, OpenAI::Streaming::UnknownStreamEvent>]
735
735
  #
736
736
  # @see OpenAI::Models::Responses::ResponseRetrieveParams
737
737
  def retrieve_streaming(response_id, params = {})
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Resources
5
+ class Webhooks
6
+ class EventTypes
7
+ # Returns webhook event types visible to the authenticated project.
8
+ #
9
+ # @overload list(request_options: {})
10
+ #
11
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
12
+ #
13
+ # @return [OpenAI::Models::Webhooks::WebhookEventTypeList]
14
+ #
15
+ # @see OpenAI::Models::Webhooks::EventTypeListParams
16
+ def list(params = {})
17
+ @client.request(
18
+ method: :get,
19
+ path: "webhook_event_types",
20
+ model: OpenAI::Webhooks::WebhookEventTypeList,
21
+ security: {bearer_auth: true},
22
+ options: params[:request_options]
23
+ )
24
+ end
25
+
26
+ # @api private
27
+ #
28
+ # @param client [OpenAI::Client]
29
+ def initialize(client:)
30
+ @client = client
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -3,6 +3,200 @@
3
3
  module OpenAI
4
4
  module Resources
5
5
  class Webhooks
6
+ # @return [OpenAI::Resources::Webhooks::EventTypes]
7
+ attr_reader :event_types
8
+
9
+ # Creates a webhook endpoint for the authenticated project.
10
+ #
11
+ # @overload create(event_types:, name:, url:, request_options: {})
12
+ #
13
+ # @param event_types [Array<Symbol, OpenAI::Models::Webhooks::WebhookCreateParams::EventType>]
14
+ # The event types that trigger deliveries to this endpoint.
15
+ #
16
+ # @param name [String]
17
+ # A human-readable name for the webhook endpoint.
18
+ #
19
+ # @param url [String]
20
+ # The HTTPS URL that receives webhook deliveries.
21
+ #
22
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
23
+ #
24
+ # @return [OpenAI::Models::Webhooks::WebhookEndpointWithSecret]
25
+ #
26
+ # @see OpenAI::Models::Webhooks::WebhookCreateParams
27
+ def create(params)
28
+ parsed, options = OpenAI::Webhooks::WebhookCreateParams.dump_request(params)
29
+ @client.request(
30
+ method: :post,
31
+ path: "webhook_endpoints",
32
+ body: parsed,
33
+ model: OpenAI::Webhooks::WebhookEndpointWithSecret,
34
+ security: {bearer_auth: true},
35
+ options: options
36
+ )
37
+ end
38
+
39
+ # Retrieves a webhook endpoint for the authenticated project.
40
+ #
41
+ # @overload retrieve(webhook_endpoint_id, request_options: {})
42
+ #
43
+ # @param webhook_endpoint_id [String]
44
+ # The ID of the webhook endpoint to retrieve.
45
+ #
46
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
47
+ #
48
+ # @return [OpenAI::Models::Webhooks::WebhookEndpoint]
49
+ #
50
+ # @see OpenAI::Models::Webhooks::WebhookRetrieveParams
51
+ def retrieve(webhook_endpoint_id, params = {})
52
+ @client.request(
53
+ method: :get,
54
+ path: ["webhook_endpoints/%1$s", webhook_endpoint_id],
55
+ model: OpenAI::Webhooks::WebhookEndpoint,
56
+ security: {bearer_auth: true},
57
+ options: params[:request_options]
58
+ )
59
+ end
60
+
61
+ # Updates a webhook endpoint for the authenticated project.
62
+ #
63
+ # @overload update(webhook_endpoint_id, event_types: nil, name: nil, url: nil, request_options: {})
64
+ #
65
+ # @param webhook_endpoint_id [String]
66
+ # The ID of the webhook endpoint to update.
67
+ #
68
+ # @param event_types [Array<Symbol, OpenAI::Models::Webhooks::WebhookUpdateParams::EventType>]
69
+ # The complete set of event types that should trigger deliveries.
70
+ #
71
+ # @param name [String]
72
+ # A new human-readable name for the webhook endpoint.
73
+ #
74
+ # @param url [String]
75
+ # A new HTTPS URL that receives webhook deliveries.
76
+ #
77
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
78
+ #
79
+ # @return [OpenAI::Models::Webhooks::WebhookEndpoint]
80
+ #
81
+ # @see OpenAI::Models::Webhooks::WebhookUpdateParams
82
+ def update(webhook_endpoint_id, params = {})
83
+ parsed, options = OpenAI::Webhooks::WebhookUpdateParams.dump_request(params)
84
+ @client.request(
85
+ method: :post,
86
+ path: ["webhook_endpoints/%1$s", webhook_endpoint_id],
87
+ body: parsed,
88
+ model: OpenAI::Webhooks::WebhookEndpoint,
89
+ security: {bearer_auth: true},
90
+ options: options
91
+ )
92
+ end
93
+
94
+ # Returns webhook endpoints for the authenticated project in newest-first order.
95
+ #
96
+ # @overload list(after: nil, limit: nil, request_options: {})
97
+ #
98
+ # @param after [String, nil]
99
+ # ID of the last webhook endpoint from the previous page.
100
+ #
101
+ # @param limit [Integer]
102
+ # Maximum number of webhook endpoints to return. Defaults to 20.
103
+ #
104
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
105
+ #
106
+ # @return [OpenAI::Internal::CursorPage<OpenAI::Models::Webhooks::WebhookEndpoint>]
107
+ #
108
+ # @see OpenAI::Models::Webhooks::WebhookListParams
109
+ def list(params = {})
110
+ parsed, options = OpenAI::Webhooks::WebhookListParams.dump_request(params)
111
+ query = OpenAI::Internal::Util.encode_query_params(parsed)
112
+ @client.request(
113
+ method: :get,
114
+ path: "webhook_endpoints",
115
+ query: query,
116
+ page: OpenAI::Internal::CursorPage,
117
+ model: OpenAI::Webhooks::WebhookEndpoint,
118
+ security: {bearer_auth: true},
119
+ options: options
120
+ )
121
+ end
122
+
123
+ # Deletes a webhook endpoint for the authenticated project.
124
+ #
125
+ # @overload delete(webhook_endpoint_id, request_options: {})
126
+ #
127
+ # @param webhook_endpoint_id [String]
128
+ # The ID of the webhook endpoint to delete.
129
+ #
130
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
131
+ #
132
+ # @return [OpenAI::Models::Webhooks::DeletedWebhookEndpoint]
133
+ #
134
+ # @see OpenAI::Models::Webhooks::WebhookDeleteParams
135
+ def delete(webhook_endpoint_id, params = {})
136
+ @client.request(
137
+ method: :delete,
138
+ path: ["webhook_endpoints/%1$s", webhook_endpoint_id],
139
+ model: OpenAI::Webhooks::DeletedWebhookEndpoint,
140
+ security: {bearer_auth: true},
141
+ options: params[:request_options]
142
+ )
143
+ end
144
+
145
+ # Rotates the signing secret for a webhook endpoint in the authenticated project.
146
+ #
147
+ # @overload rotate_secret(webhook_endpoint_id, keep_old_secret_active_for_24_hours: nil, request_options: {})
148
+ #
149
+ # @param webhook_endpoint_id [String]
150
+ # The ID of the webhook endpoint whose signing secret will be rotated.
151
+ #
152
+ # @param keep_old_secret_active_for_24_hours [Boolean]
153
+ # Whether to keep the previous signing secret valid for 24 hours after rotation.
154
+ # Defaults to false, which invalidates the previous secret immediately.
155
+ #
156
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
157
+ #
158
+ # @return [OpenAI::Models::Webhooks::WebhookEndpointWithSecret]
159
+ #
160
+ # @see OpenAI::Models::Webhooks::WebhookRotateSecretParams
161
+ def rotate_secret(webhook_endpoint_id, params = {})
162
+ parsed, options = OpenAI::Webhooks::WebhookRotateSecretParams.dump_request(params)
163
+ @client.request(
164
+ method: :post,
165
+ path: ["webhook_endpoints/%1$s/rotate_secret", webhook_endpoint_id],
166
+ body: parsed,
167
+ model: OpenAI::Webhooks::WebhookEndpointWithSecret,
168
+ security: {bearer_auth: true},
169
+ options: options
170
+ )
171
+ end
172
+
173
+ # Sends a sample event to a webhook endpoint for the authenticated project.
174
+ #
175
+ # @overload test_(webhook_endpoint_id, event_type:, request_options: {})
176
+ #
177
+ # @param webhook_endpoint_id [String]
178
+ # The ID of the webhook endpoint to test.
179
+ #
180
+ # @param event_type [Symbol, OpenAI::Models::Webhooks::WebhookTestParams::EventType]
181
+ # The event type to send as a sample delivery.
182
+ #
183
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
184
+ #
185
+ # @return [OpenAI::Models::Webhooks::WebhookEndpointTestResult]
186
+ #
187
+ # @see OpenAI::Models::Webhooks::WebhookTestParams
188
+ def test_(webhook_endpoint_id, params)
189
+ parsed, options = OpenAI::Webhooks::WebhookTestParams.dump_request(params)
190
+ @client.request(
191
+ method: :post,
192
+ path: ["webhook_endpoints/%1$s/test", webhook_endpoint_id],
193
+ body: parsed,
194
+ model: OpenAI::Webhooks::WebhookEndpointTestResult,
195
+ security: {bearer_auth: true},
196
+ options: options
197
+ )
198
+ end
199
+
6
200
  # Validates that the given payload was sent by OpenAI and parses the payload.
7
201
  #
8
202
  # @param payload [String] The raw webhook payload as a string
@@ -124,6 +318,7 @@ module OpenAI
124
318
  # @param client [OpenAI::Client]
125
319
  def initialize(client:)
126
320
  @client = client
321
+ @event_types = OpenAI::Resources::Webhooks::EventTypes.new(client: client)
127
322
  end
128
323
  end
129
324
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OpenAI
4
- VERSION = "0.90.0"
4
+ VERSION = "0.92.0"
5
5
  end
data/lib/openai.rb CHANGED
@@ -140,6 +140,7 @@ require_relative "openai/models/beta/beta_response_created_event"
140
140
  require_relative "openai/models/beta/beta_response_content_part_done_event"
141
141
  require_relative "openai/models/beta/beta_response_content_part_added_event"
142
142
  require_relative "openai/models/beta/beta_response_completed_event"
143
+ require_relative "openai/models/beta/beta_response_compaction_compacting_event"
143
144
  require_relative "openai/models/beta/beta_response_code_interpreter_call_interpreting_event"
144
145
  require_relative "openai/models/beta/beta_response_code_interpreter_call_in_progress_event"
145
146
  require_relative "openai/models/beta/beta_response_code_interpreter_call_completed_event"
@@ -213,6 +214,7 @@ require_relative "openai/models/responses/response_created_event"
213
214
  require_relative "openai/models/responses/response_content_part_done_event"
214
215
  require_relative "openai/models/responses/response_content_part_added_event"
215
216
  require_relative "openai/models/responses/response_completed_event"
217
+ require_relative "openai/models/responses/response_compaction_compacting_event"
216
218
  require_relative "openai/models/responses/response_code_interpreter_call_interpreting_event"
217
219
  require_relative "openai/models/responses/response_code_interpreter_call_in_progress_event"
218
220
  require_relative "openai/models/responses/response_code_interpreter_call_completed_event"
@@ -1416,9 +1418,11 @@ require_relative "openai/models/webhooks/batch_cancelled_webhook_event"
1416
1418
  require_relative "openai/models/webhooks/batch_completed_webhook_event"
1417
1419
  require_relative "openai/models/webhooks/batch_expired_webhook_event"
1418
1420
  require_relative "openai/models/webhooks/batch_failed_webhook_event"
1421
+ require_relative "openai/models/webhooks/deleted_webhook_endpoint"
1419
1422
  require_relative "openai/models/webhooks/eval_run_canceled_webhook_event"
1420
1423
  require_relative "openai/models/webhooks/eval_run_failed_webhook_event"
1421
1424
  require_relative "openai/models/webhooks/eval_run_succeeded_webhook_event"
1425
+ require_relative "openai/models/webhooks/event_type_list_params"
1422
1426
  require_relative "openai/models/webhooks/fine_tuning_job_cancelled_webhook_event"
1423
1427
  require_relative "openai/models/webhooks/fine_tuning_job_failed_webhook_event"
1424
1428
  require_relative "openai/models/webhooks/fine_tuning_job_succeeded_webhook_event"
@@ -1432,7 +1436,19 @@ require_relative "openai/models/webhooks/response_incomplete_webhook_event"
1432
1436
  require_relative "openai/models/webhooks/safety_alert_created_webhook_event"
1433
1437
  require_relative "openai/models/webhooks/safety_org_alert_created_webhook_event"
1434
1438
  require_relative "openai/models/webhooks/unwrap_webhook_event"
1439
+ require_relative "openai/models/webhooks/webhook_create_params"
1440
+ require_relative "openai/models/webhooks/webhook_delete_params"
1441
+ require_relative "openai/models/webhooks/webhook_endpoint"
1442
+ require_relative "openai/models/webhooks/webhook_endpoint_list"
1443
+ require_relative "openai/models/webhooks/webhook_endpoint_test_result"
1444
+ require_relative "openai/models/webhooks/webhook_endpoint_with_secret"
1445
+ require_relative "openai/models/webhooks/webhook_event_type_list"
1446
+ require_relative "openai/models/webhooks/webhook_list_params"
1447
+ require_relative "openai/models/webhooks/webhook_retrieve_params"
1448
+ require_relative "openai/models/webhooks/webhook_rotate_secret_params"
1449
+ require_relative "openai/models/webhooks/webhook_test_params"
1435
1450
  require_relative "openai/models/webhooks/webhook_unwrap_params"
1451
+ require_relative "openai/models/webhooks/webhook_update_params"
1436
1452
  require_relative "openai/models"
1437
1453
  require_relative "openai/resources/admin"
1438
1454
  require_relative "openai/resources/admin/organization"
@@ -1549,6 +1565,7 @@ require_relative "openai/resources/vector_stores/file_batches"
1549
1565
  require_relative "openai/resources/vector_stores/files"
1550
1566
  require_relative "openai/resources/videos"
1551
1567
  require_relative "openai/resources/webhooks"
1568
+ require_relative "openai/resources/webhooks/event_types"
1552
1569
  require_relative "openai/helpers/streaming/response_events"
1553
1570
  require_relative "openai/helpers/streaming/response_stream"
1554
1571
  require_relative "openai/helpers/streaming/exceptions"
@@ -54,6 +54,11 @@ module OpenAI
54
54
  def send_event(event)
55
55
  end
56
56
 
57
+ # @api private
58
+ sig { params(event: ClientEvent).returns(OpenAI::Internal::AnyHash) }
59
+ def encode_client_event(event)
60
+ end
61
+
57
62
  # @api private
58
63
  sig { params(data: String).void }
59
64
  def send_raw(data)
@@ -0,0 +1,206 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ class SessionError < OpenAI::Errors::Error
7
+ sig { returns(NilClass) }
8
+ def cause
9
+ end
10
+ end
11
+
12
+ class BufferError < SessionError
13
+ end
14
+
15
+ class StateLostError < SessionError
16
+ end
17
+
18
+ class RequestError < SessionError
19
+ sig { returns(Connection::ServerEvent) }
20
+ attr_reader :event
21
+
22
+ # @api private
23
+ sig { params(event: Connection::ServerEvent).returns(T.attached_class) }
24
+ def self.new(event)
25
+ end
26
+ end
27
+
28
+ class SessionLimits
29
+ sig { returns(Integer) }
30
+ attr_reader :max_lanes, :max_events_per_lane, :max_events, :max_bytes_per_lane, :max_bytes, :max_response_bytes
31
+
32
+ sig do
33
+ params(
34
+ max_lanes: Integer,
35
+ max_events_per_lane: Integer,
36
+ max_events: Integer,
37
+ max_bytes_per_lane: Integer,
38
+ max_bytes: Integer,
39
+ max_response_bytes: Integer
40
+ )
41
+ .returns(T.attached_class)
42
+ end
43
+ def self.new(
44
+ max_lanes:,
45
+ max_events_per_lane:,
46
+ max_events:,
47
+ max_bytes_per_lane:,
48
+ max_bytes:,
49
+ max_response_bytes:
50
+ )
51
+ end
52
+ end
53
+
54
+ class SessionLane
55
+ sig { returns(T.nilable(String)) }
56
+ attr_reader :stream_id
57
+
58
+ sig { params(event: Connection::ClientEvent).void }
59
+ def send_event(event)
60
+ end
61
+
62
+ sig { returns(Connection::ServerEvent) }
63
+ def receive
64
+ end
65
+
66
+ sig { returns(OpenAI::Responses::Response) }
67
+ def get_final_response
68
+ end
69
+
70
+ sig { void }
71
+ def close
72
+ end
73
+
74
+ # @api private
75
+ sig {
76
+ params(session: Session, stream_id: T.nilable(String), pending_steers: T::Hash[String, T.untyped]).returns(
77
+ T.attached_class
78
+ )
79
+ }
80
+ def self.new(session, stream_id, pending_steers)
81
+ end
82
+
83
+ # @api private
84
+ sig {
85
+ params(event: Connection::ServerEvent, bytes: Integer, raw_command_sent: T::Boolean).returns(
86
+ T.nilable(T::Boolean)
87
+ )
88
+ }
89
+ def enqueue(event, bytes, raw_command_sent = false)
90
+ end
91
+
92
+ # @api private
93
+ sig { params(error: T.nilable(Exception)).void }
94
+ def discard(error = nil)
95
+ end
96
+
97
+ # @api private
98
+ sig { void }
99
+ def wake
100
+ end
101
+ end
102
+
103
+ class Session
104
+ sig { returns(SessionLimits) }
105
+ attr_reader :limits
106
+
107
+ sig { returns(SessionLane) }
108
+ attr_reader :default
109
+
110
+ sig do
111
+ type_parameters(:Result)
112
+ .params(
113
+ client: OpenAI::Client,
114
+ limits: SessionLimits,
115
+ request_options: T.nilable(OpenAI::RequestOptions::OrHash),
116
+ websocket_base_url: T.nilable(String),
117
+ transport: T.anything,
118
+ transport_options: T::Hash[Symbol, T.anything],
119
+ block: T.proc.params(session: Session).returns(T.type_parameter(:Result))
120
+ )
121
+ .returns(T.type_parameter(:Result))
122
+ end
123
+ def self.open(
124
+ client:,
125
+ limits:,
126
+ request_options: nil,
127
+ websocket_base_url: nil,
128
+ transport: nil,
129
+ transport_options: {},
130
+ &block
131
+ )
132
+ end
133
+
134
+ sig { params(stream_id: T.nilable(String)).returns(SessionLane) }
135
+ def lane(stream_id)
136
+ end
137
+
138
+ sig do
139
+ params(
140
+ restore: T.proc.params(session: Session).returns(T.anything),
141
+ client: OpenAI::Client,
142
+ request_options: T.nilable(OpenAI::RequestOptions::OrHash)
143
+ )
144
+ .returns(T.self_type)
145
+ end
146
+ def reconnect(restore:, client: T.unsafe(nil), request_options: nil)
147
+ end
148
+
149
+ sig { void }
150
+ def close
151
+ end
152
+
153
+ # @api private
154
+ sig {
155
+ params(
156
+ task: T.untyped,
157
+ client: OpenAI::Client,
158
+ limits: SessionLimits,
159
+ request_options: T.nilable(OpenAI::RequestOptions::OrHash),
160
+ websocket_base_url: T.nilable(String),
161
+ transport: T.anything,
162
+ transport_options: T::Hash[Symbol, T.anything]
163
+ )
164
+ .returns(T.attached_class)
165
+ }
166
+ def self.new(task:, client:, limits:, request_options:, websocket_base_url:, transport:, transport_options:)
167
+ end
168
+
169
+ # @api private
170
+ sig { void }
171
+ def start
172
+ end
173
+
174
+ # @api private
175
+ sig { params(event: Connection::ClientEvent).returns(OpenAI::Internal::AnyHash) }
176
+ def encode_client_event(event)
177
+ end
178
+
179
+ # @api private
180
+ sig { params(event: Connection::ClientEvent).void }
181
+ def send_event(event)
182
+ end
183
+
184
+ # @api private
185
+ sig { void }
186
+ def check_reader!
187
+ end
188
+
189
+ # @api private
190
+ sig { void }
191
+ def assert_owner!
192
+ end
193
+
194
+ # @api private
195
+ sig { params(bytes: Integer).void }
196
+ def consumed(bytes)
197
+ end
198
+
199
+ # @api private
200
+ sig { params(value: SessionLane).void }
201
+ def detach(value)
202
+ end
203
+ end
204
+ end
205
+ end
206
+ end