openai 0.19.0 → 0.21.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +28 -0
- data/README.md +1 -1
- data/lib/openai/client.rb +4 -0
- data/lib/openai/internal/stream.rb +3 -2
- data/lib/openai/models/audio/speech_create_params.rb +6 -0
- data/lib/openai/models/chat/chat_completion_audio_param.rb +6 -0
- data/lib/openai/models/chat/chat_completion_message.rb +7 -5
- data/lib/openai/models/chat/chat_completion_message_function_tool_call.rb +7 -5
- data/lib/openai/models/conversations/item_list_params.rb +2 -0
- data/lib/openai/models/evals/run_cancel_response.rb +2 -2
- data/lib/openai/models/evals/run_create_params.rb +2 -2
- data/lib/openai/models/evals/run_create_response.rb +2 -2
- data/lib/openai/models/evals/run_list_response.rb +2 -2
- data/lib/openai/models/evals/run_retrieve_response.rb +2 -2
- data/lib/openai/models/realtime/client_secret_create_params.rb +93 -0
- data/lib/openai/models/realtime/client_secret_create_response.rb +300 -0
- data/lib/openai/models/realtime/conversation_created_event.rb +70 -0
- data/lib/openai/models/realtime/conversation_item.rb +44 -0
- data/lib/openai/models/realtime/conversation_item_added.rb +48 -0
- data/lib/openai/models/realtime/conversation_item_create_event.rb +57 -0
- data/lib/openai/models/realtime/conversation_item_created_event.rb +59 -0
- data/lib/openai/models/realtime/conversation_item_delete_event.rb +39 -0
- data/lib/openai/models/realtime/conversation_item_deleted_event.rb +38 -0
- data/lib/openai/models/realtime/conversation_item_done.rb +48 -0
- data/lib/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rb +189 -0
- data/lib/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rb +63 -0
- data/lib/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rb +96 -0
- data/lib/openai/models/realtime/conversation_item_input_audio_transcription_segment.rb +84 -0
- data/lib/openai/models/realtime/conversation_item_retrieve_event.rb +40 -0
- data/lib/openai/models/realtime/conversation_item_truncate_event.rb +68 -0
- data/lib/openai/models/realtime/conversation_item_truncated_event.rb +60 -0
- data/lib/openai/models/realtime/conversation_item_with_reference.rb +235 -0
- data/lib/openai/models/realtime/input_audio_buffer_append_event.rb +49 -0
- data/lib/openai/models/realtime/input_audio_buffer_clear_event.rb +29 -0
- data/lib/openai/models/realtime/input_audio_buffer_cleared_event.rb +29 -0
- data/lib/openai/models/realtime/input_audio_buffer_commit_event.rb +35 -0
- data/lib/openai/models/realtime/input_audio_buffer_committed_event.rb +51 -0
- data/lib/openai/models/realtime/input_audio_buffer_speech_started_event.rb +59 -0
- data/lib/openai/models/realtime/input_audio_buffer_speech_stopped_event.rb +51 -0
- data/lib/openai/models/realtime/input_audio_buffer_timeout_triggered.rb +52 -0
- data/lib/openai/models/realtime/log_prob_properties.rb +39 -0
- data/lib/openai/models/realtime/mcp_list_tools_completed.rb +36 -0
- data/lib/openai/models/realtime/mcp_list_tools_failed.rb +36 -0
- data/lib/openai/models/realtime/mcp_list_tools_in_progress.rb +36 -0
- data/lib/openai/models/realtime/output_audio_buffer_clear_event.rb +32 -0
- data/lib/openai/models/realtime/rate_limits_updated_event.rb +91 -0
- data/lib/openai/models/realtime/realtime_audio_config.rb +446 -0
- data/lib/openai/models/realtime/realtime_client_event.rb +123 -0
- data/lib/openai/models/realtime/realtime_client_secret_config.rb +64 -0
- data/lib/openai/models/realtime/realtime_conversation_item_assistant_message.rb +118 -0
- data/lib/openai/models/realtime/realtime_conversation_item_function_call.rb +94 -0
- data/lib/openai/models/realtime/realtime_conversation_item_function_call_output.rb +86 -0
- data/lib/openai/models/realtime/realtime_conversation_item_system_message.rb +118 -0
- data/lib/openai/models/realtime/realtime_conversation_item_user_message.rb +135 -0
- data/lib/openai/models/realtime/realtime_error.rb +55 -0
- data/lib/openai/models/realtime/realtime_error_event.rb +38 -0
- data/lib/openai/models/realtime/realtime_mcp_approval_request.rb +52 -0
- data/lib/openai/models/realtime/realtime_mcp_approval_response.rb +52 -0
- data/lib/openai/models/realtime/realtime_mcp_list_tools.rb +84 -0
- data/lib/openai/models/realtime/realtime_mcp_protocol_error.rb +29 -0
- data/lib/openai/models/realtime/realtime_mcp_tool_call.rb +94 -0
- data/lib/openai/models/realtime/realtime_mcp_tool_execution_error.rb +23 -0
- data/lib/openai/models/realtime/realtime_mcphttp_error.rb +29 -0
- data/lib/openai/models/realtime/realtime_response.rb +259 -0
- data/lib/openai/models/realtime/realtime_response_status.rb +103 -0
- data/lib/openai/models/realtime/realtime_response_usage.rb +61 -0
- data/lib/openai/models/realtime/realtime_response_usage_input_token_details.rb +36 -0
- data/lib/openai/models/realtime/realtime_response_usage_output_token_details.rb +28 -0
- data/lib/openai/models/realtime/realtime_server_event.rb +369 -0
- data/lib/openai/models/realtime/realtime_session.rb +696 -0
- data/lib/openai/models/realtime/realtime_session_create_request.rb +234 -0
- data/lib/openai/models/realtime/realtime_session_create_response.rb +579 -0
- data/lib/openai/models/realtime/realtime_tool_choice_config.rb +32 -0
- data/lib/openai/models/realtime/realtime_tools_config.rb +11 -0
- data/lib/openai/models/realtime/realtime_tools_config_union.rb +379 -0
- data/lib/openai/models/realtime/realtime_tracing_config.rb +61 -0
- data/lib/openai/models/realtime/realtime_transcription_session_create_request.rb +312 -0
- data/lib/openai/models/realtime/realtime_truncation.rb +67 -0
- data/lib/openai/models/realtime/response_audio_delta_event.rb +68 -0
- data/lib/openai/models/realtime/response_audio_done_event.rb +61 -0
- data/lib/openai/models/realtime/response_audio_transcript_delta_event.rb +68 -0
- data/lib/openai/models/realtime/response_audio_transcript_done_event.rb +70 -0
- data/lib/openai/models/realtime/response_cancel_event.rb +42 -0
- data/lib/openai/models/realtime/response_content_part_added_event.rb +120 -0
- data/lib/openai/models/realtime/response_content_part_done_event.rb +120 -0
- data/lib/openai/models/realtime/response_create_event.rb +391 -0
- data/lib/openai/models/realtime/response_created_event.rb +37 -0
- data/lib/openai/models/realtime/response_done_event.rb +38 -0
- data/lib/openai/models/realtime/response_function_call_arguments_delta_event.rb +72 -0
- data/lib/openai/models/realtime/response_function_call_arguments_done_event.rb +73 -0
- data/lib/openai/models/realtime/response_mcp_call_arguments_delta.rb +68 -0
- data/lib/openai/models/realtime/response_mcp_call_arguments_done.rb +60 -0
- data/lib/openai/models/realtime/response_mcp_call_completed.rb +44 -0
- data/lib/openai/models/realtime/response_mcp_call_failed.rb +44 -0
- data/lib/openai/models/realtime/response_mcp_call_in_progress.rb +44 -0
- data/lib/openai/models/realtime/response_output_item_added_event.rb +52 -0
- data/lib/openai/models/realtime/response_output_item_done_event.rb +53 -0
- data/lib/openai/models/realtime/response_text_delta_event.rb +68 -0
- data/lib/openai/models/realtime/response_text_done_event.rb +69 -0
- data/lib/openai/models/realtime/session_created_event.rb +38 -0
- data/lib/openai/models/realtime/session_update_event.rb +44 -0
- data/lib/openai/models/realtime/session_updated_event.rb +37 -0
- data/lib/openai/models/realtime/transcription_session_created.rb +278 -0
- data/lib/openai/models/realtime/transcription_session_update.rb +36 -0
- data/lib/openai/models/realtime/transcription_session_updated_event.rb +279 -0
- data/lib/openai/models/responses/response.rb +6 -3
- data/lib/openai/models/responses/response_create_params.rb +8 -3
- data/lib/openai/models/responses/response_function_tool_call.rb +7 -5
- data/lib/openai/models/responses/response_function_web_search.rb +35 -1
- data/lib/openai/models/responses/response_includable.rb +2 -0
- data/lib/openai/models/responses/response_output_text.rb +7 -5
- data/lib/openai/models/responses/tool.rb +6 -2
- data/lib/openai/models/responses/web_search_preview_tool.rb +124 -0
- data/lib/openai/models/responses/web_search_tool.rb +58 -21
- data/lib/openai/models/webhooks/realtime_call_incoming_webhook_event.rb +119 -0
- data/lib/openai/models/webhooks/unwrap_webhook_event.rb +4 -1
- data/lib/openai/models.rb +2 -0
- data/lib/openai/resources/conversations.rb +1 -1
- data/lib/openai/resources/realtime/client_secrets.rb +44 -0
- data/lib/openai/resources/realtime.rb +18 -0
- data/lib/openai/resources/responses.rb +2 -2
- data/lib/openai/resources/webhooks.rb +1 -1
- data/lib/openai/version.rb +1 -1
- data/lib/openai.rb +95 -0
- data/rbi/openai/client.rbi +3 -0
- data/rbi/openai/models/audio/speech_create_params.rbi +10 -0
- data/rbi/openai/models/chat/chat_completion_audio_param.rbi +10 -0
- data/rbi/openai/models/conversations/item_list_params.rbi +4 -0
- data/rbi/openai/models/evals/run_cancel_response.rbi +4 -2
- data/rbi/openai/models/evals/run_create_params.rbi +8 -4
- data/rbi/openai/models/evals/run_create_response.rbi +4 -2
- data/rbi/openai/models/evals/run_list_response.rbi +4 -2
- data/rbi/openai/models/evals/run_retrieve_response.rbi +4 -2
- data/rbi/openai/models/realtime/client_secret_create_params.rbi +222 -0
- data/rbi/openai/models/realtime/client_secret_create_response.rbi +676 -0
- data/rbi/openai/models/realtime/conversation_created_event.rbi +164 -0
- data/rbi/openai/models/realtime/conversation_item.rbi +35 -0
- data/rbi/openai/models/realtime/conversation_item_added.rbi +105 -0
- data/rbi/openai/models/realtime/conversation_item_create_event.rbi +123 -0
- data/rbi/openai/models/realtime/conversation_item_created_event.rbi +117 -0
- data/rbi/openai/models/realtime/conversation_item_delete_event.rbi +57 -0
- data/rbi/openai/models/realtime/conversation_item_deleted_event.rbi +53 -0
- data/rbi/openai/models/realtime/conversation_item_done.rbi +105 -0
- data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rbi +305 -0
- data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbi +93 -0
- data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rbi +158 -0
- data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_segment.rbi +107 -0
- data/rbi/openai/models/realtime/conversation_item_retrieve_event.rbi +58 -0
- data/rbi/openai/models/realtime/conversation_item_truncate_event.rbi +94 -0
- data/rbi/openai/models/realtime/conversation_item_truncated_event.rbi +80 -0
- data/rbi/openai/models/realtime/conversation_item_with_reference.rbi +549 -0
- data/rbi/openai/models/realtime/input_audio_buffer_append_event.rbi +65 -0
- data/rbi/openai/models/realtime/input_audio_buffer_clear_event.rbi +43 -0
- data/rbi/openai/models/realtime/input_audio_buffer_cleared_event.rbi +40 -0
- data/rbi/openai/models/realtime/input_audio_buffer_commit_event.rbi +49 -0
- data/rbi/openai/models/realtime/input_audio_buffer_committed_event.rbi +72 -0
- data/rbi/openai/models/realtime/input_audio_buffer_speech_started_event.rbi +82 -0
- data/rbi/openai/models/realtime/input_audio_buffer_speech_stopped_event.rbi +73 -0
- data/rbi/openai/models/realtime/input_audio_buffer_timeout_triggered.rbi +75 -0
- data/rbi/openai/models/realtime/log_prob_properties.rbi +55 -0
- data/rbi/openai/models/realtime/mcp_list_tools_completed.rbi +51 -0
- data/rbi/openai/models/realtime/mcp_list_tools_failed.rbi +51 -0
- data/rbi/openai/models/realtime/mcp_list_tools_in_progress.rbi +51 -0
- data/rbi/openai/models/realtime/output_audio_buffer_clear_event.rbi +46 -0
- data/rbi/openai/models/realtime/rate_limits_updated_event.rbi +187 -0
- data/rbi/openai/models/realtime/realtime_audio_config.rbi +1004 -0
- data/rbi/openai/models/realtime/realtime_client_event.rbi +38 -0
- data/rbi/openai/models/realtime/realtime_client_secret_config.rbi +147 -0
- data/rbi/openai/models/realtime/realtime_conversation_item_assistant_message.rbi +292 -0
- data/rbi/openai/models/realtime/realtime_conversation_item_function_call.rbi +199 -0
- data/rbi/openai/models/realtime/realtime_conversation_item_function_call_output.rbi +188 -0
- data/rbi/openai/models/realtime/realtime_conversation_item_system_message.rbi +292 -0
- data/rbi/openai/models/realtime/realtime_conversation_item_user_message.rbi +319 -0
- data/rbi/openai/models/realtime/realtime_error.rbi +72 -0
- data/rbi/openai/models/realtime/realtime_error_event.rbi +64 -0
- data/rbi/openai/models/realtime/realtime_mcp_approval_request.rbi +75 -0
- data/rbi/openai/models/realtime/realtime_mcp_approval_response.rbi +75 -0
- data/rbi/openai/models/realtime/realtime_mcp_list_tools.rbi +131 -0
- data/rbi/openai/models/realtime/realtime_mcp_protocol_error.rbi +40 -0
- data/rbi/openai/models/realtime/realtime_mcp_tool_call.rbi +145 -0
- data/rbi/openai/models/realtime/realtime_mcp_tool_execution_error.rbi +31 -0
- data/rbi/openai/models/realtime/realtime_mcphttp_error.rbi +40 -0
- data/rbi/openai/models/realtime/realtime_response.rbi +573 -0
- data/rbi/openai/models/realtime/realtime_response_status.rbi +233 -0
- data/rbi/openai/models/realtime/realtime_response_usage.rbi +121 -0
- data/rbi/openai/models/realtime/realtime_response_usage_input_token_details.rbi +68 -0
- data/rbi/openai/models/realtime/realtime_response_usage_output_token_details.rbi +51 -0
- data/rbi/openai/models/realtime/realtime_server_event.rbi +311 -0
- data/rbi/openai/models/realtime/realtime_session.rbi +1426 -0
- data/rbi/openai/models/realtime/realtime_session_create_request.rbi +560 -0
- data/rbi/openai/models/realtime/realtime_session_create_response.rbi +1249 -0
- data/rbi/openai/models/realtime/realtime_tool_choice_config.rbi +30 -0
- data/rbi/openai/models/realtime/realtime_tools_config.rbi +15 -0
- data/rbi/openai/models/realtime/realtime_tools_config_union.rbi +755 -0
- data/rbi/openai/models/realtime/realtime_tracing_config.rbi +95 -0
- data/rbi/openai/models/realtime/realtime_transcription_session_create_request.rbi +703 -0
- data/rbi/openai/models/realtime/realtime_truncation.rbi +117 -0
- data/rbi/openai/models/realtime/response_audio_delta_event.rbi +91 -0
- data/rbi/openai/models/realtime/response_audio_done_event.rbi +84 -0
- data/rbi/openai/models/realtime/response_audio_transcript_delta_event.rbi +91 -0
- data/rbi/openai/models/realtime/response_audio_transcript_done_event.rbi +93 -0
- data/rbi/openai/models/realtime/response_cancel_event.rbi +63 -0
- data/rbi/openai/models/realtime/response_content_part_added_event.rbi +219 -0
- data/rbi/openai/models/realtime/response_content_part_done_event.rbi +219 -0
- data/rbi/openai/models/realtime/response_create_event.rbi +863 -0
- data/rbi/openai/models/realtime/response_created_event.rbi +65 -0
- data/rbi/openai/models/realtime/response_done_event.rbi +66 -0
- data/rbi/openai/models/realtime/response_function_call_arguments_delta_event.rbi +91 -0
- data/rbi/openai/models/realtime/response_function_call_arguments_done_event.rbi +92 -0
- data/rbi/openai/models/realtime/response_mcp_call_arguments_delta.rbi +91 -0
- data/rbi/openai/models/realtime/response_mcp_call_arguments_done.rbi +83 -0
- data/rbi/openai/models/realtime/response_mcp_call_completed.rbi +67 -0
- data/rbi/openai/models/realtime/response_mcp_call_failed.rbi +67 -0
- data/rbi/openai/models/realtime/response_mcp_call_in_progress.rbi +67 -0
- data/rbi/openai/models/realtime/response_output_item_added_event.rbi +111 -0
- data/rbi/openai/models/realtime/response_output_item_done_event.rbi +112 -0
- data/rbi/openai/models/realtime/response_text_delta_event.rbi +91 -0
- data/rbi/openai/models/realtime/response_text_done_event.rbi +92 -0
- data/rbi/openai/models/realtime/session_created_event.rbi +64 -0
- data/rbi/openai/models/realtime/session_update_event.rbi +77 -0
- data/rbi/openai/models/realtime/session_updated_event.rbi +63 -0
- data/rbi/openai/models/realtime/transcription_session_created.rbi +653 -0
- data/rbi/openai/models/realtime/transcription_session_update.rbi +74 -0
- data/rbi/openai/models/realtime/transcription_session_updated_event.rbi +657 -0
- data/rbi/openai/models/responses/response.rbi +10 -3
- data/rbi/openai/models/responses/response_create_params.rbi +20 -6
- data/rbi/openai/models/responses/response_function_web_search.rbi +78 -2
- data/rbi/openai/models/responses/response_includable.rbi +2 -0
- data/rbi/openai/models/responses/tool.rbi +2 -1
- data/rbi/openai/models/responses/web_search_preview_tool.rbi +245 -0
- data/rbi/openai/models/responses/web_search_tool.rbi +120 -23
- data/rbi/openai/models/webhooks/realtime_call_incoming_webhook_event.rbi +222 -0
- data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +1 -0
- data/rbi/openai/models.rbi +2 -0
- data/rbi/openai/resources/conversations/items.rbi +2 -0
- data/rbi/openai/resources/conversations.rbi +1 -1
- data/rbi/openai/resources/realtime/client_secrets.rbi +38 -0
- data/rbi/openai/resources/realtime.rbi +15 -0
- data/rbi/openai/resources/responses.rbi +16 -4
- data/rbi/openai/resources/webhooks.rbi +1 -0
- data/sig/openai/client.rbs +2 -0
- data/sig/openai/models/audio/speech_create_params.rbs +4 -0
- data/sig/openai/models/chat/chat_completion_audio_param.rbs +4 -0
- data/sig/openai/models/realtime/client_secret_create_params.rbs +89 -0
- data/sig/openai/models/realtime/client_secret_create_response.rbs +292 -0
- data/sig/openai/models/realtime/conversation_created_event.rbs +70 -0
- data/sig/openai/models/realtime/conversation_item.rbs +22 -0
- data/sig/openai/models/realtime/conversation_item_added.rbs +37 -0
- data/sig/openai/models/realtime/conversation_item_create_event.rbs +41 -0
- data/sig/openai/models/realtime/conversation_item_created_event.rbs +37 -0
- data/sig/openai/models/realtime/conversation_item_delete_event.rbs +30 -0
- data/sig/openai/models/realtime/conversation_item_deleted_event.rbs +32 -0
- data/sig/openai/models/realtime/conversation_item_done.rbs +37 -0
- data/sig/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rbs +136 -0
- data/sig/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbs +51 -0
- data/sig/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rbs +77 -0
- data/sig/openai/models/realtime/conversation_item_input_audio_transcription_segment.rbs +62 -0
- data/sig/openai/models/realtime/conversation_item_retrieve_event.rbs +34 -0
- data/sig/openai/models/realtime/conversation_item_truncate_event.rbs +44 -0
- data/sig/openai/models/realtime/conversation_item_truncated_event.rbs +42 -0
- data/sig/openai/models/realtime/conversation_item_with_reference.rbs +207 -0
- data/sig/openai/models/realtime/input_audio_buffer_append_event.rbs +30 -0
- data/sig/openai/models/realtime/input_audio_buffer_clear_event.rbs +23 -0
- data/sig/openai/models/realtime/input_audio_buffer_cleared_event.rbs +24 -0
- data/sig/openai/models/realtime/input_audio_buffer_commit_event.rbs +23 -0
- data/sig/openai/models/realtime/input_audio_buffer_committed_event.rbs +37 -0
- data/sig/openai/models/realtime/input_audio_buffer_speech_started_event.rbs +37 -0
- data/sig/openai/models/realtime/input_audio_buffer_speech_stopped_event.rbs +37 -0
- data/sig/openai/models/realtime/input_audio_buffer_timeout_triggered.rbs +42 -0
- data/sig/openai/models/realtime/log_prob_properties.rbs +28 -0
- data/sig/openai/models/realtime/mcp_list_tools_completed.rbs +28 -0
- data/sig/openai/models/realtime/mcp_list_tools_failed.rbs +28 -0
- data/sig/openai/models/realtime/mcp_list_tools_in_progress.rbs +32 -0
- data/sig/openai/models/realtime/output_audio_buffer_clear_event.rbs +23 -0
- data/sig/openai/models/realtime/rate_limits_updated_event.rbs +85 -0
- data/sig/openai/models/realtime/realtime_audio_config.rbs +354 -0
- data/sig/openai/models/realtime/realtime_client_event.rbs +25 -0
- data/sig/openai/models/realtime/realtime_client_secret_config.rbs +60 -0
- data/sig/openai/models/realtime/realtime_conversation_item_assistant_message.rbs +117 -0
- data/sig/openai/models/realtime/realtime_conversation_item_function_call.rbs +86 -0
- data/sig/openai/models/realtime/realtime_conversation_item_function_call_output.rbs +79 -0
- data/sig/openai/models/realtime/realtime_conversation_item_system_message.rbs +117 -0
- data/sig/openai/models/realtime/realtime_conversation_item_user_message.rbs +132 -0
- data/sig/openai/models/realtime/realtime_error.rbs +42 -0
- data/sig/openai/models/realtime/realtime_error_event.rbs +32 -0
- data/sig/openai/models/realtime/realtime_mcp_approval_request.rbs +42 -0
- data/sig/openai/models/realtime/realtime_mcp_approval_response.rbs +42 -0
- data/sig/openai/models/realtime/realtime_mcp_list_tools.rbs +71 -0
- data/sig/openai/models/realtime/realtime_mcp_protocol_error.rbs +28 -0
- data/sig/openai/models/realtime/realtime_mcp_tool_call.rbs +68 -0
- data/sig/openai/models/realtime/realtime_mcp_tool_execution_error.rbs +18 -0
- data/sig/openai/models/realtime/realtime_mcphttp_error.rbs +24 -0
- data/sig/openai/models/realtime/realtime_response.rbs +210 -0
- data/sig/openai/models/realtime/realtime_response_status.rbs +90 -0
- data/sig/openai/models/realtime/realtime_response_usage.rbs +56 -0
- data/sig/openai/models/realtime/realtime_response_usage_input_token_details.rbs +34 -0
- data/sig/openai/models/realtime/realtime_response_usage_output_token_details.rbs +22 -0
- data/sig/openai/models/realtime/realtime_server_event.rbs +168 -0
- data/sig/openai/models/realtime/realtime_session.rbs +521 -0
- data/sig/openai/models/realtime/realtime_session_create_request.rbs +178 -0
- data/sig/openai/models/realtime/realtime_session_create_response.rbs +526 -0
- data/sig/openai/models/realtime/realtime_tool_choice_config.rbs +16 -0
- data/sig/openai/models/realtime/realtime_tools_config.rbs +10 -0
- data/sig/openai/models/realtime/realtime_tools_config_union.rbs +280 -0
- data/sig/openai/models/realtime/realtime_tracing_config.rbs +43 -0
- data/sig/openai/models/realtime/realtime_transcription_session_create_request.rbs +242 -0
- data/sig/openai/models/realtime/realtime_truncation.rbs +53 -0
- data/sig/openai/models/realtime/response_audio_delta_event.rbs +52 -0
- data/sig/openai/models/realtime/response_audio_done_event.rbs +47 -0
- data/sig/openai/models/realtime/response_audio_transcript_delta_event.rbs +52 -0
- data/sig/openai/models/realtime/response_audio_transcript_done_event.rbs +52 -0
- data/sig/openai/models/realtime/response_cancel_event.rbs +32 -0
- data/sig/openai/models/realtime/response_content_part_added_event.rbs +105 -0
- data/sig/openai/models/realtime/response_content_part_done_event.rbs +105 -0
- data/sig/openai/models/realtime/response_create_event.rbs +281 -0
- data/sig/openai/models/realtime/response_created_event.rbs +32 -0
- data/sig/openai/models/realtime/response_done_event.rbs +32 -0
- data/sig/openai/models/realtime/response_function_call_arguments_delta_event.rbs +52 -0
- data/sig/openai/models/realtime/response_function_call_arguments_done_event.rbs +52 -0
- data/sig/openai/models/realtime/response_mcp_call_arguments_delta.rbs +52 -0
- data/sig/openai/models/realtime/response_mcp_call_arguments_done.rbs +47 -0
- data/sig/openai/models/realtime/response_mcp_call_completed.rbs +37 -0
- data/sig/openai/models/realtime/response_mcp_call_failed.rbs +37 -0
- data/sig/openai/models/realtime/response_mcp_call_in_progress.rbs +37 -0
- data/sig/openai/models/realtime/response_output_item_added_event.rbs +42 -0
- data/sig/openai/models/realtime/response_output_item_done_event.rbs +42 -0
- data/sig/openai/models/realtime/response_text_delta_event.rbs +52 -0
- data/sig/openai/models/realtime/response_text_done_event.rbs +52 -0
- data/sig/openai/models/realtime/session_created_event.rbs +32 -0
- data/sig/openai/models/realtime/session_update_event.rbs +34 -0
- data/sig/openai/models/realtime/session_updated_event.rbs +32 -0
- data/sig/openai/models/realtime/transcription_session_created.rbs +282 -0
- data/sig/openai/models/realtime/transcription_session_update.rbs +34 -0
- data/sig/openai/models/realtime/transcription_session_updated_event.rbs +282 -0
- data/sig/openai/models/responses/response_function_web_search.rbs +34 -3
- data/sig/openai/models/responses/tool.rbs +1 -0
- data/sig/openai/models/responses/web_search_preview_tool.rbs +96 -0
- data/sig/openai/models/responses/web_search_tool.rbs +39 -10
- data/sig/openai/models/webhooks/realtime_call_incoming_webhook_event.rbs +90 -0
- data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +1 -0
- data/sig/openai/models.rbs +2 -0
- data/sig/openai/resources/realtime/client_secrets.rbs +15 -0
- data/sig/openai/resources/realtime.rbs +9 -0
- data/sig/openai/resources/webhooks.rbs +1 -0
- metadata +287 -2
@@ -0,0 +1,135 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OpenAI
|
4
|
+
module Models
|
5
|
+
module Realtime
|
6
|
+
class RealtimeConversationItemUserMessage < OpenAI::Internal::Type::BaseModel
|
7
|
+
# @!attribute content
|
8
|
+
# The content of the message.
|
9
|
+
#
|
10
|
+
# @return [Array<OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::Content>]
|
11
|
+
required :content,
|
12
|
+
-> { OpenAI::Internal::Type::ArrayOf[OpenAI::Realtime::RealtimeConversationItemUserMessage::Content] }
|
13
|
+
|
14
|
+
# @!attribute role
|
15
|
+
# The role of the message sender. Always `user`.
|
16
|
+
#
|
17
|
+
# @return [Symbol, :user]
|
18
|
+
required :role, const: :user
|
19
|
+
|
20
|
+
# @!attribute type
|
21
|
+
# The type of the item. Always `message`.
|
22
|
+
#
|
23
|
+
# @return [Symbol, :message]
|
24
|
+
required :type, const: :message
|
25
|
+
|
26
|
+
# @!attribute id
|
27
|
+
# The unique ID of the item.
|
28
|
+
#
|
29
|
+
# @return [String, nil]
|
30
|
+
optional :id, String
|
31
|
+
|
32
|
+
# @!attribute object
|
33
|
+
# Identifier for the API object being returned - always `realtime.item`.
|
34
|
+
#
|
35
|
+
# @return [Symbol, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::Object, nil]
|
36
|
+
optional :object, enum: -> { OpenAI::Realtime::RealtimeConversationItemUserMessage::Object }
|
37
|
+
|
38
|
+
# @!attribute status
|
39
|
+
# The status of the item. Has no effect on the conversation.
|
40
|
+
#
|
41
|
+
# @return [Symbol, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::Status, nil]
|
42
|
+
optional :status, enum: -> { OpenAI::Realtime::RealtimeConversationItemUserMessage::Status }
|
43
|
+
|
44
|
+
# @!method initialize(content:, id: nil, object: nil, status: nil, role: :user, type: :message)
|
45
|
+
# A user message item in a Realtime conversation.
|
46
|
+
#
|
47
|
+
# @param content [Array<OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::Content>] The content of the message.
|
48
|
+
#
|
49
|
+
# @param id [String] The unique ID of the item.
|
50
|
+
#
|
51
|
+
# @param object [Symbol, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::Object] Identifier for the API object being returned - always `realtime.item`.
|
52
|
+
#
|
53
|
+
# @param status [Symbol, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::Status] The status of the item. Has no effect on the conversation.
|
54
|
+
#
|
55
|
+
# @param role [Symbol, :user] The role of the message sender. Always `user`.
|
56
|
+
#
|
57
|
+
# @param type [Symbol, :message] The type of the item. Always `message`.
|
58
|
+
|
59
|
+
class Content < OpenAI::Internal::Type::BaseModel
|
60
|
+
# @!attribute audio
|
61
|
+
# Base64-encoded audio bytes (for `input_audio`).
|
62
|
+
#
|
63
|
+
# @return [String, nil]
|
64
|
+
optional :audio, String
|
65
|
+
|
66
|
+
# @!attribute text
|
67
|
+
# The text content (for `input_text`).
|
68
|
+
#
|
69
|
+
# @return [String, nil]
|
70
|
+
optional :text, String
|
71
|
+
|
72
|
+
# @!attribute transcript
|
73
|
+
# Transcript of the audio (for `input_audio`).
|
74
|
+
#
|
75
|
+
# @return [String, nil]
|
76
|
+
optional :transcript, String
|
77
|
+
|
78
|
+
# @!attribute type
|
79
|
+
# The content type (`input_text` or `input_audio`).
|
80
|
+
#
|
81
|
+
# @return [Symbol, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::Content::Type, nil]
|
82
|
+
optional :type, enum: -> { OpenAI::Realtime::RealtimeConversationItemUserMessage::Content::Type }
|
83
|
+
|
84
|
+
# @!method initialize(audio: nil, text: nil, transcript: nil, type: nil)
|
85
|
+
# @param audio [String] Base64-encoded audio bytes (for `input_audio`).
|
86
|
+
#
|
87
|
+
# @param text [String] The text content (for `input_text`).
|
88
|
+
#
|
89
|
+
# @param transcript [String] Transcript of the audio (for `input_audio`).
|
90
|
+
#
|
91
|
+
# @param type [Symbol, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::Content::Type] The content type (`input_text` or `input_audio`).
|
92
|
+
|
93
|
+
# The content type (`input_text` or `input_audio`).
|
94
|
+
#
|
95
|
+
# @see OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::Content#type
|
96
|
+
module Type
|
97
|
+
extend OpenAI::Internal::Type::Enum
|
98
|
+
|
99
|
+
INPUT_TEXT = :input_text
|
100
|
+
INPUT_AUDIO = :input_audio
|
101
|
+
|
102
|
+
# @!method self.values
|
103
|
+
# @return [Array<Symbol>]
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
# Identifier for the API object being returned - always `realtime.item`.
|
108
|
+
#
|
109
|
+
# @see OpenAI::Models::Realtime::RealtimeConversationItemUserMessage#object
|
110
|
+
module Object
|
111
|
+
extend OpenAI::Internal::Type::Enum
|
112
|
+
|
113
|
+
REALTIME_ITEM = :"realtime.item"
|
114
|
+
|
115
|
+
# @!method self.values
|
116
|
+
# @return [Array<Symbol>]
|
117
|
+
end
|
118
|
+
|
119
|
+
# The status of the item. Has no effect on the conversation.
|
120
|
+
#
|
121
|
+
# @see OpenAI::Models::Realtime::RealtimeConversationItemUserMessage#status
|
122
|
+
module Status
|
123
|
+
extend OpenAI::Internal::Type::Enum
|
124
|
+
|
125
|
+
COMPLETED = :completed
|
126
|
+
INCOMPLETE = :incomplete
|
127
|
+
IN_PROGRESS = :in_progress
|
128
|
+
|
129
|
+
# @!method self.values
|
130
|
+
# @return [Array<Symbol>]
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OpenAI
|
4
|
+
module Models
|
5
|
+
module Realtime
|
6
|
+
class RealtimeError < OpenAI::Internal::Type::BaseModel
|
7
|
+
# @!attribute message
|
8
|
+
# A human-readable error message.
|
9
|
+
#
|
10
|
+
# @return [String]
|
11
|
+
required :message, String
|
12
|
+
|
13
|
+
# @!attribute type
|
14
|
+
# The type of error (e.g., "invalid_request_error", "server_error").
|
15
|
+
#
|
16
|
+
# @return [String]
|
17
|
+
required :type, String
|
18
|
+
|
19
|
+
# @!attribute code
|
20
|
+
# Error code, if any.
|
21
|
+
#
|
22
|
+
# @return [String, nil]
|
23
|
+
optional :code, String, nil?: true
|
24
|
+
|
25
|
+
# @!attribute event_id
|
26
|
+
# The event_id of the client event that caused the error, if applicable.
|
27
|
+
#
|
28
|
+
# @return [String, nil]
|
29
|
+
optional :event_id, String, nil?: true
|
30
|
+
|
31
|
+
# @!attribute param
|
32
|
+
# Parameter related to the error, if any.
|
33
|
+
#
|
34
|
+
# @return [String, nil]
|
35
|
+
optional :param, String, nil?: true
|
36
|
+
|
37
|
+
# @!method initialize(message:, type:, code: nil, event_id: nil, param: nil)
|
38
|
+
# Some parameter documentations has been truncated, see
|
39
|
+
# {OpenAI::Models::Realtime::RealtimeError} for more details.
|
40
|
+
#
|
41
|
+
# Details of the error.
|
42
|
+
#
|
43
|
+
# @param message [String] A human-readable error message.
|
44
|
+
#
|
45
|
+
# @param type [String] The type of error (e.g., "invalid_request_error", "server_error").
|
46
|
+
#
|
47
|
+
# @param code [String, nil] Error code, if any.
|
48
|
+
#
|
49
|
+
# @param event_id [String, nil] The event_id of the client event that caused the error, if applicable.
|
50
|
+
#
|
51
|
+
# @param param [String, nil] Parameter related to the error, if any.
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OpenAI
|
4
|
+
module Models
|
5
|
+
module Realtime
|
6
|
+
class RealtimeErrorEvent < OpenAI::Internal::Type::BaseModel
|
7
|
+
# @!attribute error
|
8
|
+
# Details of the error.
|
9
|
+
#
|
10
|
+
# @return [OpenAI::Models::Realtime::RealtimeError]
|
11
|
+
required :error, -> { OpenAI::Realtime::RealtimeError }
|
12
|
+
|
13
|
+
# @!attribute event_id
|
14
|
+
# The unique ID of the server event.
|
15
|
+
#
|
16
|
+
# @return [String]
|
17
|
+
required :event_id, String
|
18
|
+
|
19
|
+
# @!attribute type
|
20
|
+
# The event type, must be `error`.
|
21
|
+
#
|
22
|
+
# @return [Symbol, :error]
|
23
|
+
required :type, const: :error
|
24
|
+
|
25
|
+
# @!method initialize(error:, event_id:, type: :error)
|
26
|
+
# Returned when an error occurs, which could be a client problem or a server
|
27
|
+
# problem. Most errors are recoverable and the session will stay open, we
|
28
|
+
# recommend to implementors to monitor and log error messages by default.
|
29
|
+
#
|
30
|
+
# @param error [OpenAI::Models::Realtime::RealtimeError] Details of the error.
|
31
|
+
#
|
32
|
+
# @param event_id [String] The unique ID of the server event.
|
33
|
+
#
|
34
|
+
# @param type [Symbol, :error] The event type, must be `error`.
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OpenAI
|
4
|
+
module Models
|
5
|
+
module Realtime
|
6
|
+
class RealtimeMcpApprovalRequest < OpenAI::Internal::Type::BaseModel
|
7
|
+
# @!attribute id
|
8
|
+
# The unique ID of the approval request.
|
9
|
+
#
|
10
|
+
# @return [String]
|
11
|
+
required :id, String
|
12
|
+
|
13
|
+
# @!attribute arguments
|
14
|
+
# A JSON string of arguments for the tool.
|
15
|
+
#
|
16
|
+
# @return [String]
|
17
|
+
required :arguments, String
|
18
|
+
|
19
|
+
# @!attribute name
|
20
|
+
# The name of the tool to run.
|
21
|
+
#
|
22
|
+
# @return [String]
|
23
|
+
required :name, String
|
24
|
+
|
25
|
+
# @!attribute server_label
|
26
|
+
# The label of the MCP server making the request.
|
27
|
+
#
|
28
|
+
# @return [String]
|
29
|
+
required :server_label, String
|
30
|
+
|
31
|
+
# @!attribute type
|
32
|
+
# The type of the item. Always `mcp_approval_request`.
|
33
|
+
#
|
34
|
+
# @return [Symbol, :mcp_approval_request]
|
35
|
+
required :type, const: :mcp_approval_request
|
36
|
+
|
37
|
+
# @!method initialize(id:, arguments:, name:, server_label:, type: :mcp_approval_request)
|
38
|
+
# A Realtime item requesting human approval of a tool invocation.
|
39
|
+
#
|
40
|
+
# @param id [String] The unique ID of the approval request.
|
41
|
+
#
|
42
|
+
# @param arguments [String] A JSON string of arguments for the tool.
|
43
|
+
#
|
44
|
+
# @param name [String] The name of the tool to run.
|
45
|
+
#
|
46
|
+
# @param server_label [String] The label of the MCP server making the request.
|
47
|
+
#
|
48
|
+
# @param type [Symbol, :mcp_approval_request] The type of the item. Always `mcp_approval_request`.
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OpenAI
|
4
|
+
module Models
|
5
|
+
module Realtime
|
6
|
+
class RealtimeMcpApprovalResponse < OpenAI::Internal::Type::BaseModel
|
7
|
+
# @!attribute id
|
8
|
+
# The unique ID of the approval response.
|
9
|
+
#
|
10
|
+
# @return [String]
|
11
|
+
required :id, String
|
12
|
+
|
13
|
+
# @!attribute approval_request_id
|
14
|
+
# The ID of the approval request being answered.
|
15
|
+
#
|
16
|
+
# @return [String]
|
17
|
+
required :approval_request_id, String
|
18
|
+
|
19
|
+
# @!attribute approve
|
20
|
+
# Whether the request was approved.
|
21
|
+
#
|
22
|
+
# @return [Boolean]
|
23
|
+
required :approve, OpenAI::Internal::Type::Boolean
|
24
|
+
|
25
|
+
# @!attribute type
|
26
|
+
# The type of the item. Always `mcp_approval_response`.
|
27
|
+
#
|
28
|
+
# @return [Symbol, :mcp_approval_response]
|
29
|
+
required :type, const: :mcp_approval_response
|
30
|
+
|
31
|
+
# @!attribute reason
|
32
|
+
# Optional reason for the decision.
|
33
|
+
#
|
34
|
+
# @return [String, nil]
|
35
|
+
optional :reason, String, nil?: true
|
36
|
+
|
37
|
+
# @!method initialize(id:, approval_request_id:, approve:, reason: nil, type: :mcp_approval_response)
|
38
|
+
# A Realtime item responding to an MCP approval request.
|
39
|
+
#
|
40
|
+
# @param id [String] The unique ID of the approval response.
|
41
|
+
#
|
42
|
+
# @param approval_request_id [String] The ID of the approval request being answered.
|
43
|
+
#
|
44
|
+
# @param approve [Boolean] Whether the request was approved.
|
45
|
+
#
|
46
|
+
# @param reason [String, nil] Optional reason for the decision.
|
47
|
+
#
|
48
|
+
# @param type [Symbol, :mcp_approval_response] The type of the item. Always `mcp_approval_response`.
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OpenAI
|
4
|
+
module Models
|
5
|
+
module Realtime
|
6
|
+
class RealtimeMcpListTools < OpenAI::Internal::Type::BaseModel
|
7
|
+
# @!attribute server_label
|
8
|
+
# The label of the MCP server.
|
9
|
+
#
|
10
|
+
# @return [String]
|
11
|
+
required :server_label, String
|
12
|
+
|
13
|
+
# @!attribute tools
|
14
|
+
# The tools available on the server.
|
15
|
+
#
|
16
|
+
# @return [Array<OpenAI::Models::Realtime::RealtimeMcpListTools::Tool>]
|
17
|
+
required :tools, -> { OpenAI::Internal::Type::ArrayOf[OpenAI::Realtime::RealtimeMcpListTools::Tool] }
|
18
|
+
|
19
|
+
# @!attribute type
|
20
|
+
# The type of the item. Always `mcp_list_tools`.
|
21
|
+
#
|
22
|
+
# @return [Symbol, :mcp_list_tools]
|
23
|
+
required :type, const: :mcp_list_tools
|
24
|
+
|
25
|
+
# @!attribute id
|
26
|
+
# The unique ID of the list.
|
27
|
+
#
|
28
|
+
# @return [String, nil]
|
29
|
+
optional :id, String
|
30
|
+
|
31
|
+
# @!method initialize(server_label:, tools:, id: nil, type: :mcp_list_tools)
|
32
|
+
# A Realtime item listing tools available on an MCP server.
|
33
|
+
#
|
34
|
+
# @param server_label [String] The label of the MCP server.
|
35
|
+
#
|
36
|
+
# @param tools [Array<OpenAI::Models::Realtime::RealtimeMcpListTools::Tool>] The tools available on the server.
|
37
|
+
#
|
38
|
+
# @param id [String] The unique ID of the list.
|
39
|
+
#
|
40
|
+
# @param type [Symbol, :mcp_list_tools] The type of the item. Always `mcp_list_tools`.
|
41
|
+
|
42
|
+
class Tool < OpenAI::Internal::Type::BaseModel
|
43
|
+
# @!attribute input_schema
|
44
|
+
# The JSON schema describing the tool's input.
|
45
|
+
#
|
46
|
+
# @return [Object]
|
47
|
+
required :input_schema, OpenAI::Internal::Type::Unknown
|
48
|
+
|
49
|
+
# @!attribute name
|
50
|
+
# The name of the tool.
|
51
|
+
#
|
52
|
+
# @return [String]
|
53
|
+
required :name, String
|
54
|
+
|
55
|
+
# @!attribute annotations
|
56
|
+
# Additional annotations about the tool.
|
57
|
+
#
|
58
|
+
# @return [Object, nil]
|
59
|
+
optional :annotations, OpenAI::Internal::Type::Unknown, nil?: true
|
60
|
+
|
61
|
+
# @!attribute description
|
62
|
+
# The description of the tool.
|
63
|
+
#
|
64
|
+
# @return [String, nil]
|
65
|
+
optional :description, String, nil?: true
|
66
|
+
|
67
|
+
# @!method initialize(input_schema:, name:, annotations: nil, description: nil)
|
68
|
+
# Some parameter documentations has been truncated, see
|
69
|
+
# {OpenAI::Models::Realtime::RealtimeMcpListTools::Tool} for more details.
|
70
|
+
#
|
71
|
+
# A tool available on an MCP server.
|
72
|
+
#
|
73
|
+
# @param input_schema [Object] The JSON schema describing the tool's input.
|
74
|
+
#
|
75
|
+
# @param name [String] The name of the tool.
|
76
|
+
#
|
77
|
+
# @param annotations [Object, nil] Additional annotations about the tool.
|
78
|
+
#
|
79
|
+
# @param description [String, nil] The description of the tool.
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OpenAI
|
4
|
+
module Models
|
5
|
+
module Realtime
|
6
|
+
class RealtimeMcpProtocolError < OpenAI::Internal::Type::BaseModel
|
7
|
+
# @!attribute code
|
8
|
+
#
|
9
|
+
# @return [Integer]
|
10
|
+
required :code, Integer
|
11
|
+
|
12
|
+
# @!attribute message
|
13
|
+
#
|
14
|
+
# @return [String]
|
15
|
+
required :message, String
|
16
|
+
|
17
|
+
# @!attribute type
|
18
|
+
#
|
19
|
+
# @return [Symbol, :protocol_error]
|
20
|
+
required :type, const: :protocol_error
|
21
|
+
|
22
|
+
# @!method initialize(code:, message:, type: :protocol_error)
|
23
|
+
# @param code [Integer]
|
24
|
+
# @param message [String]
|
25
|
+
# @param type [Symbol, :protocol_error]
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,94 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OpenAI
|
4
|
+
module Models
|
5
|
+
module Realtime
|
6
|
+
class RealtimeMcpToolCall < OpenAI::Internal::Type::BaseModel
|
7
|
+
# @!attribute id
|
8
|
+
# The unique ID of the tool call.
|
9
|
+
#
|
10
|
+
# @return [String]
|
11
|
+
required :id, String
|
12
|
+
|
13
|
+
# @!attribute arguments
|
14
|
+
# A JSON string of the arguments passed to the tool.
|
15
|
+
#
|
16
|
+
# @return [String]
|
17
|
+
required :arguments, String
|
18
|
+
|
19
|
+
# @!attribute name
|
20
|
+
# The name of the tool that was run.
|
21
|
+
#
|
22
|
+
# @return [String]
|
23
|
+
required :name, String
|
24
|
+
|
25
|
+
# @!attribute server_label
|
26
|
+
# The label of the MCP server running the tool.
|
27
|
+
#
|
28
|
+
# @return [String]
|
29
|
+
required :server_label, String
|
30
|
+
|
31
|
+
# @!attribute type
|
32
|
+
# The type of the item. Always `mcp_tool_call`.
|
33
|
+
#
|
34
|
+
# @return [Symbol, :mcp_tool_call]
|
35
|
+
required :type, const: :mcp_tool_call
|
36
|
+
|
37
|
+
# @!attribute approval_request_id
|
38
|
+
# The ID of an associated approval request, if any.
|
39
|
+
#
|
40
|
+
# @return [String, nil]
|
41
|
+
optional :approval_request_id, String, nil?: true
|
42
|
+
|
43
|
+
# @!attribute error
|
44
|
+
# The error from the tool call, if any.
|
45
|
+
#
|
46
|
+
# @return [OpenAI::Models::Realtime::RealtimeMcpProtocolError, OpenAI::Models::Realtime::RealtimeMcpToolExecutionError, OpenAI::Models::Realtime::RealtimeMcphttpError, nil]
|
47
|
+
optional :error, union: -> { OpenAI::Realtime::RealtimeMcpToolCall::Error }, nil?: true
|
48
|
+
|
49
|
+
# @!attribute output
|
50
|
+
# The output from the tool call.
|
51
|
+
#
|
52
|
+
# @return [String, nil]
|
53
|
+
optional :output, String, nil?: true
|
54
|
+
|
55
|
+
# @!method initialize(id:, arguments:, name:, server_label:, approval_request_id: nil, error: nil, output: nil, type: :mcp_tool_call)
|
56
|
+
# A Realtime item representing an invocation of a tool on an MCP server.
|
57
|
+
#
|
58
|
+
# @param id [String] The unique ID of the tool call.
|
59
|
+
#
|
60
|
+
# @param arguments [String] A JSON string of the arguments passed to the tool.
|
61
|
+
#
|
62
|
+
# @param name [String] The name of the tool that was run.
|
63
|
+
#
|
64
|
+
# @param server_label [String] The label of the MCP server running the tool.
|
65
|
+
#
|
66
|
+
# @param approval_request_id [String, nil] The ID of an associated approval request, if any.
|
67
|
+
#
|
68
|
+
# @param error [OpenAI::Models::Realtime::RealtimeMcpProtocolError, OpenAI::Models::Realtime::RealtimeMcpToolExecutionError, OpenAI::Models::Realtime::RealtimeMcphttpError, nil] The error from the tool call, if any.
|
69
|
+
#
|
70
|
+
# @param output [String, nil] The output from the tool call.
|
71
|
+
#
|
72
|
+
# @param type [Symbol, :mcp_tool_call] The type of the item. Always `mcp_tool_call`.
|
73
|
+
|
74
|
+
# The error from the tool call, if any.
|
75
|
+
#
|
76
|
+
# @see OpenAI::Models::Realtime::RealtimeMcpToolCall#error
|
77
|
+
module Error
|
78
|
+
extend OpenAI::Internal::Type::Union
|
79
|
+
|
80
|
+
discriminator :type
|
81
|
+
|
82
|
+
variant :protocol_error, -> { OpenAI::Realtime::RealtimeMcpProtocolError }
|
83
|
+
|
84
|
+
variant :tool_execution_error, -> { OpenAI::Realtime::RealtimeMcpToolExecutionError }
|
85
|
+
|
86
|
+
variant :http_error, -> { OpenAI::Realtime::RealtimeMcphttpError }
|
87
|
+
|
88
|
+
# @!method self.variants
|
89
|
+
# @return [Array(OpenAI::Models::Realtime::RealtimeMcpProtocolError, OpenAI::Models::Realtime::RealtimeMcpToolExecutionError, OpenAI::Models::Realtime::RealtimeMcphttpError)]
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OpenAI
|
4
|
+
module Models
|
5
|
+
module Realtime
|
6
|
+
class RealtimeMcpToolExecutionError < OpenAI::Internal::Type::BaseModel
|
7
|
+
# @!attribute message
|
8
|
+
#
|
9
|
+
# @return [String]
|
10
|
+
required :message, String
|
11
|
+
|
12
|
+
# @!attribute type
|
13
|
+
#
|
14
|
+
# @return [Symbol, :tool_execution_error]
|
15
|
+
required :type, const: :tool_execution_error
|
16
|
+
|
17
|
+
# @!method initialize(message:, type: :tool_execution_error)
|
18
|
+
# @param message [String]
|
19
|
+
# @param type [Symbol, :tool_execution_error]
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OpenAI
|
4
|
+
module Models
|
5
|
+
module Realtime
|
6
|
+
class RealtimeMcphttpError < OpenAI::Internal::Type::BaseModel
|
7
|
+
# @!attribute code
|
8
|
+
#
|
9
|
+
# @return [Integer]
|
10
|
+
required :code, Integer
|
11
|
+
|
12
|
+
# @!attribute message
|
13
|
+
#
|
14
|
+
# @return [String]
|
15
|
+
required :message, String
|
16
|
+
|
17
|
+
# @!attribute type
|
18
|
+
#
|
19
|
+
# @return [Symbol, :http_error]
|
20
|
+
required :type, const: :http_error
|
21
|
+
|
22
|
+
# @!method initialize(code:, message:, type: :http_error)
|
23
|
+
# @param code [Integer]
|
24
|
+
# @param message [String]
|
25
|
+
# @param type [Symbol, :http_error]
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|