openai 0.85.0 → 0.87.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 +89 -0
- data/README.md +104 -13
- data/docs/architecture/security-model.md +28 -2
- data/examples/audio/record_and_play.rb +19 -0
- data/examples/responses/websocket_workflows.rb +159 -0
- data/lib/openai/auth/workload_identity_auth.rb +2 -2
- data/lib/openai/auth/x509_token_exchange.rb +7 -1
- data/lib/openai/auth/x509_transport.rb +21 -3
- data/lib/openai/client.rb +4 -2
- data/lib/openai/errors.rb +28 -9
- data/lib/openai/file_part.rb +35 -2
- data/lib/openai/helpers/local_audio/errors.rb +27 -0
- data/lib/openai/helpers/local_audio/process.rb +158 -0
- data/lib/openai/helpers/local_audio.rb +157 -0
- data/lib/openai/helpers/realtime/client_extension.rb +37 -121
- data/lib/openai/helpers/realtime/connection.rb +32 -91
- data/lib/openai/helpers/realtime/connection_manager.rb +22 -77
- data/lib/openai/helpers/realtime/connection_resources.rb +3 -1
- data/lib/openai/helpers/realtime/errors.rb +18 -24
- data/lib/openai/helpers/realtime/recovery.rb +489 -0
- data/lib/openai/helpers/realtime/resources/realtime_extension.rb +26 -1
- data/lib/openai/helpers/realtime/transports/async_websocket.rb +25 -368
- data/lib/openai/helpers/realtime.rb +1 -0
- data/lib/openai/helpers/responses_websocket/client_extension.rb +62 -0
- data/lib/openai/helpers/responses_websocket/connection.rb +288 -0
- data/lib/openai/helpers/responses_websocket/connection_manager.rb +34 -0
- data/lib/openai/helpers/responses_websocket/connection_resources.rb +22 -0
- data/lib/openai/helpers/responses_websocket/errors.rb +56 -0
- data/lib/openai/helpers/responses_websocket/resources/responses_extension.rb +31 -0
- data/lib/openai/helpers/responses_websocket/transports/async_websocket.rb +29 -0
- data/lib/openai/helpers/responses_websocket/unknown_server_event.rb +54 -0
- data/lib/openai/helpers/responses_websocket.rb +12 -0
- data/lib/openai/helpers/sorbet.rb +7 -1
- data/lib/openai/helpers/streaming/chat_completion_stream.rb +53 -12
- data/lib/openai/helpers/streaming/chat_events.rb +9 -7
- data/lib/openai/helpers/streaming/response_stream.rb +68 -62
- data/lib/openai/helpers/structured_output/json_schema_converter.rb +1 -1
- data/lib/openai/helpers/structured_output/response_parser.rb +125 -2
- data/lib/openai/helpers/websocket/async_websocket_transport.rb +422 -0
- data/lib/openai/helpers/websocket/client_request.rb +131 -0
- data/lib/openai/helpers/websocket/connection.rb +104 -0
- data/lib/openai/helpers/websocket/connection_manager.rb +104 -0
- data/lib/openai/helpers/websocket/errors.rb +32 -0
- data/lib/openai/helpers/websocket/protocol.rb +26 -0
- data/lib/openai/helpers/websocket.rb +10 -0
- data/lib/openai/internal/conversation_cursor_page.rb +1 -1
- data/lib/openai/internal/cursor_page.rb +1 -1
- data/lib/openai/internal/next_cursor_page.rb +1 -1
- data/lib/openai/internal/page.rb +1 -1
- data/lib/openai/internal/transport/base_client.rb +45 -8
- data/lib/openai/internal/transport/request_body_merge.rb +71 -0
- data/lib/openai/internal/type/base_page.rb +2 -2
- data/lib/openai/internal/type/base_stream.rb +8 -0
- data/lib/openai/internal/type/converter.rb +10 -2
- data/lib/openai/internal/type/duplicable_response_carrier.rb +23 -0
- data/lib/openai/internal/type/file_input.rb +3 -3
- data/lib/openai/internal/type/union.rb +24 -4
- data/lib/openai/internal/util.rb +139 -20
- data/lib/openai/models/admin/organization/projects/service_accounts/api_key_create_params.rb +9 -1
- data/lib/openai/models/admin/organization/projects/service_accounts/api_key_create_response.rb +14 -1
- data/lib/openai/models/audio/transcription_create_response.rb +5 -5
- data/lib/openai/models/beta/beta_response.rb +130 -2
- data/lib/openai/models/beta/beta_response_function_call_arguments_done_event.rb +1 -9
- data/lib/openai/models/beta/beta_response_function_web_search.rb +1 -0
- data/lib/openai/models/beta/beta_response_input_item.rb +84 -1
- data/lib/openai/models/beta/beta_response_item.rb +72 -1
- data/lib/openai/models/beta/beta_response_output_item.rb +84 -1
- data/lib/openai/models/beta/beta_responses_client_event.rb +13 -1
- data/lib/openai/models/beta/beta_responses_server_event.rb +1 -3
- data/lib/openai/models/beta/beta_tool.rb +69 -37
- data/lib/openai/models/beta/response_compact_params.rb +14 -12
- data/lib/openai/models/beta/response_create_params.rb +13 -1
- data/lib/openai/models/conversations/conversation_item.rb +82 -1
- data/lib/openai/models/image_edit_completed_event.rb +34 -8
- data/lib/openai/models/image_edit_params.rb +64 -44
- data/lib/openai/models/image_edit_partial_image_event.rb +34 -8
- data/lib/openai/models/image_gen_completed_event.rb +34 -8
- data/lib/openai/models/image_gen_partial_image_event.rb +34 -8
- data/lib/openai/models/image_generate_params.rb +51 -35
- data/lib/openai/models/image_model.rb +4 -0
- data/lib/openai/models/images_response.rb +37 -13
- data/lib/openai/models/responses/response.rb +135 -6
- data/lib/openai/models/responses/response_compact_params.rb +14 -12
- data/lib/openai/models/responses/response_create_params.rb +13 -1
- data/lib/openai/models/responses/response_function_call_arguments_done_event.rb +1 -9
- data/lib/openai/models/responses/response_function_web_search.rb +1 -0
- data/lib/openai/models/responses/response_input_item.rb +84 -1
- data/lib/openai/models/responses/response_item.rb +72 -1
- data/lib/openai/models/responses/response_output_item.rb +84 -1
- data/lib/openai/models/responses/responses_client_event.rb +13 -1
- data/lib/openai/models/responses/responses_server_event.rb +1 -3
- data/lib/openai/models/responses/tool.rb +69 -37
- data/lib/openai/models/webhooks/live_call_incoming_webhook_event.rb +3 -3
- data/lib/openai/models/webhooks/realtime_call_incoming_webhook_event.rb +5 -3
- data/lib/openai/net_http_client.rb +16 -2
- data/lib/openai/providers/bedrock.rb +2 -1
- data/lib/openai/request_options.rb +18 -4
- data/lib/openai/resources/admin/organization/projects/service_accounts/api_keys.rb +3 -1
- data/lib/openai/resources/containers/files.rb +1 -0
- data/lib/openai/resources/images.rb +12 -14
- data/lib/openai/resources/responses.rb +36 -4
- data/lib/openai/response_carrier.rb +42 -0
- data/lib/openai/version.rb +1 -1
- data/lib/openai.rb +4 -0
- data/local-audio.md +146 -0
- data/rbi/openai/auth/subject_token_providers.rbi +72 -0
- data/rbi/openai/errors.rbi +53 -4
- data/rbi/openai/file_part.rbi +5 -0
- data/rbi/openai/helpers/local_audio/interface.rbi +110 -0
- data/rbi/openai/helpers/realtime/connection.rbi +18 -2
- data/rbi/openai/helpers/realtime/extensions.rbi +11 -3
- data/rbi/openai/helpers/realtime/recovery.rbi +27 -0
- data/rbi/openai/helpers/responses_websocket/connection.rbi +82 -0
- data/rbi/openai/helpers/responses_websocket/connection_manager.rbi +39 -0
- data/rbi/openai/helpers/responses_websocket/connection_resources.rbi +17 -0
- data/rbi/openai/helpers/responses_websocket/extensions.rbi +108 -0
- data/rbi/openai/helpers/responses_websocket/transports/async_websocket.rbi +28 -0
- data/rbi/openai/helpers/responses_websocket/unknown_server_event.rbi +29 -0
- data/rbi/openai/helpers/streaming/chat_completion_stream.rbi +214 -0
- data/rbi/openai/helpers/streaming/events.rbi +61 -4
- data/rbi/openai/helpers/streaming/exceptions.rbi +30 -0
- data/rbi/openai/helpers/streaming/response_stream.rbi +7 -3
- data/rbi/openai/helpers/structured_output/response_parser.rbi +23 -0
- data/rbi/openai/helpers/websocket.rbi +33 -0
- data/rbi/openai/internal/transport/base_client.rbi +11 -0
- data/rbi/openai/internal/type/base_stream.rbi +4 -0
- data/rbi/openai/internal/util.rbi +1 -0
- data/rbi/openai/models/admin/organization/projects/service_accounts/api_key_create_params.rbi +10 -0
- data/rbi/openai/models/admin/organization/projects/service_accounts/api_key_create_response.rbi +19 -1
- data/rbi/openai/models/beta/beta_response.rbi +287 -3
- data/rbi/openai/models/beta/beta_response_function_call_arguments_done_event.rbi +0 -10
- data/rbi/openai/models/beta/beta_response_function_web_search.rbi +1 -0
- data/rbi/openai/models/beta/beta_response_inject_created_event.rbi +1 -1
- data/rbi/openai/models/beta/beta_response_inject_failed_event.rbi +1 -1
- data/rbi/openai/models/beta/beta_response_input_item.rbi +86 -1
- data/rbi/openai/models/beta/beta_response_item.rbi +78 -1
- data/rbi/openai/models/beta/beta_response_output_item.rbi +84 -1
- data/rbi/openai/models/beta/beta_response_steer_accepted_event.rbi +1 -1
- data/rbi/openai/models/beta/beta_response_steer_failed_event.rbi +6 -2
- data/rbi/openai/models/beta/beta_response_steer_pending_event.rbi +1 -1
- data/rbi/openai/models/beta/beta_responses_client_event.rbi +70 -40
- data/rbi/openai/models/beta/beta_responses_server_event.rbi +82 -82
- data/rbi/openai/models/beta/beta_tool.rbi +90 -51
- data/rbi/openai/models/beta/response_compact_params.rbi +21 -18
- data/rbi/openai/models/beta/response_create_params.rbi +18 -0
- data/rbi/openai/models/conversations/conversation_item.rbi +88 -1
- data/rbi/openai/models/image_edit_completed_event.rbi +20 -9
- data/rbi/openai/models/image_edit_params.rbi +89 -60
- data/rbi/openai/models/image_edit_partial_image_event.rbi +20 -9
- data/rbi/openai/models/image_gen_completed_event.rbi +20 -9
- data/rbi/openai/models/image_gen_partial_image_event.rbi +20 -9
- data/rbi/openai/models/image_generate_params.rbi +71 -48
- data/rbi/openai/models/image_model.rbi +4 -0
- data/rbi/openai/models/images_response.rbi +27 -16
- data/rbi/openai/models/realtime/conversation_created_event.rbi +4 -1
- data/rbi/openai/models/realtime/conversation_item_create_event.rbi +2 -2
- data/rbi/openai/models/realtime/conversation_item_delete_event.rbi +1 -1
- data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rbi +5 -3
- data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbi +2 -2
- data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rbi +1 -1
- data/rbi/openai/models/realtime/conversation_item_retrieve_event.rbi +1 -1
- data/rbi/openai/models/realtime/conversation_item_truncate_event.rbi +1 -1
- data/rbi/openai/models/realtime/input_audio_buffer_append_event.rbi +1 -1
- data/rbi/openai/models/realtime/input_audio_buffer_clear_event.rbi +1 -1
- data/rbi/openai/models/realtime/input_audio_buffer_commit_event.rbi +1 -1
- data/rbi/openai/models/realtime/output_audio_buffer_clear_event.rbi +1 -1
- data/rbi/openai/models/realtime/rate_limits_updated_event.rbi +4 -4
- data/rbi/openai/models/realtime/response_cancel_event.rbi +1 -1
- data/rbi/openai/models/realtime/response_content_part_added_event.rbi +4 -4
- data/rbi/openai/models/realtime/response_content_part_done_event.rbi +4 -4
- data/rbi/openai/models/realtime/response_create_event.rbi +5 -1
- data/rbi/openai/models/realtime/session_update_event.rbi +1 -1
- data/rbi/openai/models/responses/response.rbi +287 -3
- data/rbi/openai/models/responses/response_compact_params.rbi +21 -18
- data/rbi/openai/models/responses/response_create_params.rbi +18 -0
- data/rbi/openai/models/responses/response_function_call_arguments_done_event.rbi +1 -17
- data/rbi/openai/models/responses/response_function_web_search.rbi +1 -0
- data/rbi/openai/models/responses/response_input_item.rbi +88 -1
- data/rbi/openai/models/responses/response_item.rbi +80 -1
- data/rbi/openai/models/responses/response_output_item.rbi +84 -1
- data/rbi/openai/models/responses/response_steer_accepted_event.rbi +1 -1
- data/rbi/openai/models/responses/response_steer_failed_event.rbi +6 -2
- data/rbi/openai/models/responses/response_steer_pending_event.rbi +1 -1
- data/rbi/openai/models/responses/responses_client_event.rbi +68 -38
- data/rbi/openai/models/responses/responses_server_event.rbi +213 -77
- data/rbi/openai/models/responses/tool.rbi +90 -51
- data/rbi/openai/models/webhooks/live_call_incoming_webhook_event.rbi +4 -4
- data/rbi/openai/models/webhooks/realtime_call_incoming_webhook_event.rbi +8 -4
- data/rbi/openai/resources/admin/organization/projects/service_accounts/api_keys.rbi +3 -0
- data/rbi/openai/resources/audio/speech.rbi +1 -1
- data/rbi/openai/resources/beta/responses.rbi +13 -8
- data/rbi/openai/resources/containers/files/content.rbi +1 -1
- data/rbi/openai/resources/files.rbi +5 -1
- data/rbi/openai/resources/images.rbi +106 -76
- data/rbi/openai/resources/responses.rbi +158 -6
- data/rbi/openai/resources/skills/content.rbi +5 -1
- data/rbi/openai/resources/skills/versions/content.rbi +3 -1
- data/rbi/openai/resources/videos.rbi +1 -1
- data/rbi/openai/response_carrier.rbi +25 -0
- data/realtime.md +101 -0
- data/responses-websocket.md +182 -0
- data/sig/openai/auth/subject_token_providers.rbs +42 -0
- data/sig/openai/errors.rbs +36 -2
- data/sig/openai/file_part.rbs +3 -0
- data/sig/openai/helpers/local_audio/interface.rbs +62 -0
- data/sig/openai/helpers/realtime/connection.rbs +9 -1
- data/sig/openai/helpers/realtime/extensions.rbs +6 -2
- data/sig/openai/helpers/realtime/recovery.rbs +19 -0
- data/sig/openai/helpers/responses_websocket/connection.rbs +48 -0
- data/sig/openai/helpers/responses_websocket/connection_manager.rbs +19 -0
- data/sig/openai/helpers/responses_websocket/connection_resources.rbs +12 -0
- data/sig/openai/helpers/responses_websocket/extensions.rbs +55 -0
- data/sig/openai/helpers/responses_websocket/transports/async_websocket.rbs +19 -0
- data/sig/openai/helpers/responses_websocket/unknown_server_event.rbs +15 -0
- data/sig/openai/helpers/streaming/exceptions.rbs +24 -0
- data/sig/openai/helpers/streaming/response_stream.rbs +103 -0
- data/sig/openai/helpers/structured_output/response_parser.rbs +10 -0
- data/sig/openai/helpers/websocket.rbs +18 -0
- data/sig/openai/internal/transport/base_client.rbs +5 -0
- data/sig/openai/internal/type/base_stream.rbs +2 -0
- data/sig/openai/internal/type/request_parameters.rbs +1 -1
- data/sig/openai/internal/util.rbs +1 -0
- data/sig/openai/models/admin/organization/admin_api_key.rbs +18 -18
- data/sig/openai/models/admin/organization/admin_api_key_create_params.rbs +7 -4
- data/sig/openai/models/admin/organization/admin_api_key_create_response.rbs +6 -6
- data/sig/openai/models/admin/organization/admin_api_key_delete_params.rbs +2 -2
- data/sig/openai/models/admin/organization/admin_api_key_delete_response.rbs +2 -2
- data/sig/openai/models/admin/organization/admin_api_key_list_params.rbs +8 -8
- data/sig/openai/models/admin/organization/admin_api_key_retrieve_params.rbs +2 -2
- data/sig/openai/models/admin/organization/audit_log_list_params.rbs +27 -27
- data/sig/openai/models/admin/organization/audit_log_list_response.rbs +428 -423
- data/sig/openai/models/admin/organization/certificate.rbs +6 -6
- data/sig/openai/models/admin/organization/certificate_activate_params.rbs +5 -3
- data/sig/openai/models/admin/organization/certificate_activate_response.rbs +5 -4
- data/sig/openai/models/admin/organization/certificate_create_params.rbs +7 -4
- data/sig/openai/models/admin/organization/certificate_deactivate_params.rbs +5 -3
- data/sig/openai/models/admin/organization/certificate_deactivate_response.rbs +5 -4
- data/sig/openai/models/admin/organization/certificate_delete_params.rbs +2 -3
- data/sig/openai/models/admin/organization/certificate_delete_response.rbs +2 -2
- data/sig/openai/models/admin/organization/certificate_list_params.rbs +8 -8
- data/sig/openai/models/admin/organization/certificate_list_response.rbs +5 -4
- data/sig/openai/models/admin/organization/certificate_retrieve_params.rbs +4 -4
- data/sig/openai/models/admin/organization/certificate_update_params.rbs +7 -4
- data/sig/openai/models/admin/organization/data_retention_retrieve_params.rbs +2 -2
- data/sig/openai/models/admin/organization/data_retention_update_params.rbs +3 -3
- data/sig/openai/models/admin/organization/group_create_params.rbs +2 -2
- data/sig/openai/models/admin/organization/group_delete_params.rbs +2 -2
- data/sig/openai/models/admin/organization/group_delete_response.rbs +2 -2
- data/sig/openai/models/admin/organization/group_list_params.rbs +8 -8
- data/sig/openai/models/admin/organization/group_retrieve_params.rbs +2 -2
- data/sig/openai/models/admin/organization/group_update_params.rbs +6 -3
- data/sig/openai/models/admin/organization/groups/role_create_params.rbs +6 -3
- data/sig/openai/models/admin/organization/groups/role_create_response.rbs +4 -4
- data/sig/openai/models/admin/organization/groups/role_delete_params.rbs +6 -3
- data/sig/openai/models/admin/organization/groups/role_list_params.rbs +8 -8
- data/sig/openai/models/admin/organization/groups/role_retrieve_params.rbs +6 -3
- data/sig/openai/models/admin/organization/groups/user_create_params.rbs +6 -3
- data/sig/openai/models/admin/organization/groups/user_create_response.rbs +2 -2
- data/sig/openai/models/admin/organization/groups/user_delete_params.rbs +6 -3
- data/sig/openai/models/admin/organization/groups/user_delete_response.rbs +2 -2
- data/sig/openai/models/admin/organization/groups/user_list_params.rbs +8 -8
- data/sig/openai/models/admin/organization/groups/user_retrieve_params.rbs +6 -3
- data/sig/openai/models/admin/organization/invite.rbs +6 -6
- data/sig/openai/models/admin/organization/invite_create_params.rbs +4 -4
- data/sig/openai/models/admin/organization/invite_delete_params.rbs +2 -2
- data/sig/openai/models/admin/organization/invite_delete_response.rbs +2 -2
- data/sig/openai/models/admin/organization/invite_list_params.rbs +8 -5
- data/sig/openai/models/admin/organization/invite_retrieve_params.rbs +2 -2
- data/sig/openai/models/admin/organization/organization_data_retention.rbs +2 -2
- data/sig/openai/models/admin/organization/organization_spend_alert.rbs +6 -6
- data/sig/openai/models/admin/organization/organization_spend_alert_deleted.rbs +2 -2
- data/sig/openai/models/admin/organization/organization_spend_limit.rbs +2 -2
- data/sig/openai/models/admin/organization/organization_spend_limit_deleted.rbs +2 -2
- data/sig/openai/models/admin/organization/organization_user.rbs +46 -46
- data/sig/openai/models/admin/organization/project.rbs +12 -12
- data/sig/openai/models/admin/organization/project_archive_params.rbs +2 -2
- data/sig/openai/models/admin/organization/project_create_params.rbs +8 -8
- data/sig/openai/models/admin/organization/project_list_params.rbs +10 -6
- data/sig/openai/models/admin/organization/project_retrieve_params.rbs +2 -2
- data/sig/openai/models/admin/organization/project_update_params.rbs +8 -8
- data/sig/openai/models/admin/organization/projects/api_key_delete_params.rbs +6 -3
- data/sig/openai/models/admin/organization/projects/api_key_delete_response.rbs +2 -2
- data/sig/openai/models/admin/organization/projects/api_key_list_params.rbs +8 -8
- data/sig/openai/models/admin/organization/projects/api_key_retrieve_params.rbs +6 -3
- data/sig/openai/models/admin/organization/projects/certificate_activate_params.rbs +6 -3
- data/sig/openai/models/admin/organization/projects/certificate_activate_response.rbs +4 -4
- data/sig/openai/models/admin/organization/projects/certificate_deactivate_params.rbs +6 -3
- data/sig/openai/models/admin/organization/projects/certificate_deactivate_response.rbs +4 -4
- data/sig/openai/models/admin/organization/projects/certificate_list_params.rbs +8 -8
- data/sig/openai/models/admin/organization/projects/certificate_list_response.rbs +4 -4
- data/sig/openai/models/admin/organization/projects/data_retention_retrieve_params.rbs +2 -2
- data/sig/openai/models/admin/organization/projects/data_retention_update_params.rbs +3 -3
- data/sig/openai/models/admin/organization/projects/group_create_params.rbs +7 -3
- data/sig/openai/models/admin/organization/projects/group_delete_params.rbs +6 -3
- data/sig/openai/models/admin/organization/projects/group_delete_response.rbs +2 -2
- data/sig/openai/models/admin/organization/projects/group_list_params.rbs +8 -8
- data/sig/openai/models/admin/organization/projects/group_retrieve_params.rbs +4 -4
- data/sig/openai/models/admin/organization/projects/groups/role_create_params.rbs +7 -3
- data/sig/openai/models/admin/organization/projects/groups/role_create_response.rbs +4 -4
- data/sig/openai/models/admin/organization/projects/groups/role_delete_params.rbs +7 -3
- data/sig/openai/models/admin/organization/projects/groups/role_list_params.rbs +8 -8
- data/sig/openai/models/admin/organization/projects/groups/role_retrieve_params.rbs +7 -3
- data/sig/openai/models/admin/organization/projects/hosted_tool_permission_retrieve_params.rbs +2 -2
- data/sig/openai/models/admin/organization/projects/hosted_tool_permission_update_params.rbs +12 -12
- data/sig/openai/models/admin/organization/projects/model_permission_delete_params.rbs +2 -2
- data/sig/openai/models/admin/organization/projects/model_permission_retrieve_params.rbs +2 -2
- data/sig/openai/models/admin/organization/projects/model_permission_update_params.rbs +3 -3
- data/sig/openai/models/admin/organization/projects/project_api_key.rbs +8 -8
- data/sig/openai/models/admin/organization/projects/project_data_retention.rbs +2 -2
- data/sig/openai/models/admin/organization/projects/project_group.rbs +2 -2
- data/sig/openai/models/admin/organization/projects/project_model_permissions.rbs +2 -2
- data/sig/openai/models/admin/organization/projects/project_model_permissions_deleted.rbs +2 -2
- data/sig/openai/models/admin/organization/projects/project_rate_limit.rbs +10 -10
- data/sig/openai/models/admin/organization/projects/project_service_account.rbs +2 -2
- data/sig/openai/models/admin/organization/projects/project_spend_alert.rbs +6 -6
- data/sig/openai/models/admin/organization/projects/project_spend_alert_deleted.rbs +2 -2
- data/sig/openai/models/admin/organization/projects/project_spend_limit.rbs +2 -2
- data/sig/openai/models/admin/organization/projects/project_spend_limit_deleted.rbs +2 -2
- data/sig/openai/models/admin/organization/projects/project_user.rbs +6 -6
- data/sig/openai/models/admin/organization/projects/rate_limit_list_rate_limits_params.rbs +8 -8
- data/sig/openai/models/admin/organization/projects/rate_limit_update_rate_limit_params.rbs +14 -14
- data/sig/openai/models/admin/organization/projects/role_create_params.rbs +4 -4
- data/sig/openai/models/admin/organization/projects/role_delete_params.rbs +6 -3
- data/sig/openai/models/admin/organization/projects/role_delete_response.rbs +2 -2
- data/sig/openai/models/admin/organization/projects/role_list_params.rbs +8 -8
- data/sig/openai/models/admin/organization/projects/role_retrieve_params.rbs +6 -3
- data/sig/openai/models/admin/organization/projects/role_update_params.rbs +8 -8
- data/sig/openai/models/admin/organization/projects/service_account_create_params.rbs +4 -4
- data/sig/openai/models/admin/organization/projects/service_account_create_response.rbs +4 -4
- data/sig/openai/models/admin/organization/projects/service_account_delete_params.rbs +6 -3
- data/sig/openai/models/admin/organization/projects/service_account_delete_response.rbs +2 -2
- data/sig/openai/models/admin/organization/projects/service_account_list_params.rbs +9 -5
- data/sig/openai/models/admin/organization/projects/service_account_retrieve_params.rbs +6 -3
- data/sig/openai/models/admin/organization/projects/service_account_update_params.rbs +6 -6
- data/sig/openai/models/admin/organization/projects/service_accounts/api_key_create_params.rbs +11 -6
- data/sig/openai/models/admin/organization/projects/service_accounts/api_key_create_response.rbs +9 -4
- data/sig/openai/models/admin/organization/projects/spend_alert_create_params.rbs +7 -7
- data/sig/openai/models/admin/organization/projects/spend_alert_delete_params.rbs +6 -3
- data/sig/openai/models/admin/organization/projects/spend_alert_list_params.rbs +10 -10
- data/sig/openai/models/admin/organization/projects/spend_alert_retrieve_params.rbs +6 -3
- data/sig/openai/models/admin/organization/projects/spend_alert_update_params.rbs +7 -7
- data/sig/openai/models/admin/organization/projects/spend_limit_delete_params.rbs +2 -2
- data/sig/openai/models/admin/organization/projects/spend_limit_retrieve_params.rbs +2 -2
- data/sig/openai/models/admin/organization/projects/spend_limit_update_params.rbs +3 -3
- data/sig/openai/models/admin/organization/projects/user_create_params.rbs +6 -6
- data/sig/openai/models/admin/organization/projects/user_delete_params.rbs +6 -3
- data/sig/openai/models/admin/organization/projects/user_delete_response.rbs +2 -2
- data/sig/openai/models/admin/organization/projects/user_list_params.rbs +9 -5
- data/sig/openai/models/admin/organization/projects/user_retrieve_params.rbs +6 -3
- data/sig/openai/models/admin/organization/projects/user_update_params.rbs +8 -4
- data/sig/openai/models/admin/organization/projects/users/role_create_params.rbs +7 -3
- data/sig/openai/models/admin/organization/projects/users/role_create_response.rbs +2 -2
- data/sig/openai/models/admin/organization/projects/users/role_delete_params.rbs +7 -3
- data/sig/openai/models/admin/organization/projects/users/role_list_params.rbs +8 -8
- data/sig/openai/models/admin/organization/projects/users/role_retrieve_params.rbs +7 -3
- data/sig/openai/models/admin/organization/role.rbs +2 -2
- data/sig/openai/models/admin/organization/role_create_params.rbs +4 -4
- data/sig/openai/models/admin/organization/role_delete_params.rbs +2 -2
- data/sig/openai/models/admin/organization/role_delete_response.rbs +6 -2
- data/sig/openai/models/admin/organization/role_list_params.rbs +8 -8
- data/sig/openai/models/admin/organization/role_retrieve_params.rbs +2 -2
- data/sig/openai/models/admin/organization/role_update_params.rbs +8 -8
- data/sig/openai/models/admin/organization/spend_alert_create_params.rbs +7 -7
- data/sig/openai/models/admin/organization/spend_alert_delete_params.rbs +2 -2
- data/sig/openai/models/admin/organization/spend_alert_list_params.rbs +10 -10
- data/sig/openai/models/admin/organization/spend_alert_retrieve_params.rbs +2 -2
- data/sig/openai/models/admin/organization/spend_alert_update_params.rbs +7 -7
- data/sig/openai/models/admin/organization/spend_limit_delete_params.rbs +2 -2
- data/sig/openai/models/admin/organization/spend_limit_retrieve_params.rbs +2 -2
- data/sig/openai/models/admin/organization/spend_limit_update_params.rbs +3 -3
- data/sig/openai/models/admin/organization/usage_audio_speeches_params.rbs +20 -20
- data/sig/openai/models/admin/organization/usage_audio_speeches_response.rbs +142 -142
- data/sig/openai/models/admin/organization/usage_audio_transcriptions_params.rbs +20 -20
- data/sig/openai/models/admin/organization/usage_audio_transcriptions_response.rbs +142 -142
- data/sig/openai/models/admin/organization/usage_code_interpreter_sessions_params.rbs +14 -14
- data/sig/openai/models/admin/organization/usage_code_interpreter_sessions_response.rbs +142 -142
- data/sig/openai/models/admin/organization/usage_completions_params.rbs +22 -22
- data/sig/openai/models/admin/organization/usage_completions_response.rbs +142 -142
- data/sig/openai/models/admin/organization/usage_costs_params.rbs +18 -18
- data/sig/openai/models/admin/organization/usage_costs_response.rbs +142 -142
- data/sig/openai/models/admin/organization/usage_embeddings_params.rbs +20 -20
- data/sig/openai/models/admin/organization/usage_embeddings_response.rbs +142 -142
- data/sig/openai/models/admin/organization/usage_file_search_calls_params.rbs +20 -20
- data/sig/openai/models/admin/organization/usage_file_search_calls_response.rbs +142 -142
- data/sig/openai/models/admin/organization/usage_images_params.rbs +24 -24
- data/sig/openai/models/admin/organization/usage_images_response.rbs +142 -142
- data/sig/openai/models/admin/organization/usage_moderations_params.rbs +20 -20
- data/sig/openai/models/admin/organization/usage_moderations_response.rbs +142 -142
- data/sig/openai/models/admin/organization/usage_vector_stores_params.rbs +14 -14
- data/sig/openai/models/admin/organization/usage_vector_stores_response.rbs +142 -142
- data/sig/openai/models/admin/organization/usage_web_search_calls_params.rbs +22 -22
- data/sig/openai/models/admin/organization/usage_web_search_calls_response.rbs +142 -142
- data/sig/openai/models/admin/organization/user_delete_params.rbs +2 -2
- data/sig/openai/models/admin/organization/user_delete_response.rbs +2 -2
- data/sig/openai/models/admin/organization/user_list_params.rbs +10 -6
- data/sig/openai/models/admin/organization/user_retrieve_params.rbs +2 -2
- data/sig/openai/models/admin/organization/user_update_params.rbs +10 -10
- data/sig/openai/models/admin/organization/users/role_create_params.rbs +6 -3
- data/sig/openai/models/admin/organization/users/role_create_response.rbs +2 -2
- data/sig/openai/models/admin/organization/users/role_delete_params.rbs +6 -3
- data/sig/openai/models/admin/organization/users/role_list_params.rbs +8 -8
- data/sig/openai/models/admin/organization/users/role_retrieve_params.rbs +6 -3
- data/sig/openai/models/audio/speech_create_params.rbs +10 -10
- data/sig/openai/models/audio/transcription.rbs +19 -18
- data/sig/openai/models/audio/transcription_create_params.rbs +30 -30
- data/sig/openai/models/audio/transcription_diarized.rbs +12 -12
- data/sig/openai/models/audio/transcription_diarized_segment.rbs +2 -2
- data/sig/openai/models/audio/transcription_text_delta_event.rbs +10 -10
- data/sig/openai/models/audio/transcription_text_done_event.rbs +18 -18
- data/sig/openai/models/audio/transcription_text_segment_event.rbs +2 -2
- data/sig/openai/models/audio/transcription_verbose.rbs +8 -8
- data/sig/openai/models/audio/translation_create_params.rbs +8 -8
- data/sig/openai/models/audio/translation_verbose.rbs +2 -2
- data/sig/openai/models/auto_file_chunking_strategy_param.rbs +2 -2
- data/sig/openai/models/batch.rbs +34 -34
- data/sig/openai/models/batch_cancel_params.rbs +2 -2
- data/sig/openai/models/batch_create_params.rbs +8 -8
- data/sig/openai/models/batch_error.rbs +5 -5
- data/sig/openai/models/batch_list_params.rbs +8 -5
- data/sig/openai/models/batch_retrieve_params.rbs +2 -2
- data/sig/openai/models/beta/assistant.rbs +18 -18
- data/sig/openai/models/beta/assistant_create_params.rbs +42 -42
- data/sig/openai/models/beta/assistant_delete_params.rbs +2 -2
- data/sig/openai/models/beta/assistant_deleted.rbs +2 -2
- data/sig/openai/models/beta/assistant_list_params.rbs +10 -10
- data/sig/openai/models/beta/assistant_retrieve_params.rbs +2 -2
- data/sig/openai/models/beta/assistant_stream_event.rbs +53 -50
- data/sig/openai/models/beta/assistant_tool_choice.rbs +2 -2
- data/sig/openai/models/beta/assistant_update_params.rbs +32 -32
- data/sig/openai/models/beta/beta_apply_patch_tool.rbs +4 -4
- data/sig/openai/models/beta/beta_compacted_response.rbs +2 -2
- data/sig/openai/models/beta/beta_computer_action.rbs +25 -25
- data/sig/openai/models/beta/beta_computer_tool.rbs +2 -2
- data/sig/openai/models/beta/beta_computer_use_preview_tool.rbs +2 -2
- data/sig/openai/models/beta/beta_container_auto.rbs +10 -10
- data/sig/openai/models/beta/beta_container_network_policy_allowlist.rbs +4 -4
- data/sig/openai/models/beta/beta_container_network_policy_disabled.rbs +2 -2
- data/sig/openai/models/beta/beta_container_reference.rbs +2 -2
- data/sig/openai/models/beta/beta_custom_tool.rbs +16 -16
- data/sig/openai/models/beta/beta_easy_input_message.rbs +4 -4
- data/sig/openai/models/beta/beta_file_search_tool.rbs +14 -14
- data/sig/openai/models/beta/beta_function_shell_tool.rbs +6 -6
- data/sig/openai/models/beta/beta_function_tool.rbs +12 -12
- data/sig/openai/models/beta/beta_inline_skill.rbs +2 -2
- data/sig/openai/models/beta/beta_inline_skill_source.rbs +3 -3
- data/sig/openai/models/beta/beta_local_environment.rbs +3 -3
- data/sig/openai/models/beta/beta_mcp_tool_call_error.rbs +6 -6
- data/sig/openai/models/beta/beta_namespace_tool.rbs +18 -18
- data/sig/openai/models/beta/beta_response.rbs +185 -67
- data/sig/openai/models/beta/beta_response_apply_patch_tool_call.rbs +18 -18
- data/sig/openai/models/beta/beta_response_apply_patch_tool_call_output.rbs +14 -14
- data/sig/openai/models/beta/beta_response_audio_delta_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_audio_done_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_audio_transcript_delta_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_audio_transcript_done_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_code_interpreter_call_code_delta_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_code_interpreter_call_code_done_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_code_interpreter_call_completed_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_code_interpreter_call_in_progress_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_code_interpreter_call_interpreting_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_code_interpreter_tool_call.rbs +8 -8
- data/sig/openai/models/beta/beta_response_compaction_item.rbs +6 -6
- data/sig/openai/models/beta/beta_response_compaction_item_param.rbs +6 -6
- data/sig/openai/models/beta/beta_response_completed_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_computer_tool_call.rbs +8 -8
- data/sig/openai/models/beta/beta_response_computer_tool_call_output_item.rbs +10 -10
- data/sig/openai/models/beta/beta_response_computer_tool_call_output_screenshot.rbs +4 -4
- data/sig/openai/models/beta/beta_response_configuration_update_item.rbs +8 -8
- data/sig/openai/models/beta/beta_response_configuration_update_item_param.rbs +10 -10
- data/sig/openai/models/beta/beta_response_container_reference.rbs +2 -2
- data/sig/openai/models/beta/beta_response_content.rbs +2 -2
- data/sig/openai/models/beta/beta_response_content_part_added_event.rbs +6 -6
- data/sig/openai/models/beta/beta_response_content_part_done_event.rbs +6 -6
- data/sig/openai/models/beta/beta_response_created_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_custom_tool_call.rbs +16 -16
- data/sig/openai/models/beta/beta_response_custom_tool_call_input_delta_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_custom_tool_call_input_done_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_custom_tool_call_item.rbs +12 -12
- data/sig/openai/models/beta/beta_response_custom_tool_call_output.rbs +12 -12
- data/sig/openai/models/beta/beta_response_custom_tool_call_output_item.rbs +8 -8
- data/sig/openai/models/beta/beta_response_error.rbs +8 -8
- data/sig/openai/models/beta/beta_response_error_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_failed_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_file_search_call_completed_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_file_search_call_in_progress_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_file_search_call_searching_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_file_search_tool_call.rbs +16 -16
- data/sig/openai/models/beta/beta_response_format_text_config.rbs +4 -4
- data/sig/openai/models/beta/beta_response_format_text_json_schema_config.rbs +6 -6
- data/sig/openai/models/beta/beta_response_function_call_arguments_delta_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_function_call_arguments_done_event.rbs +4 -9
- data/sig/openai/models/beta/beta_response_function_shell_call_output_content.rbs +4 -4
- data/sig/openai/models/beta/beta_response_function_shell_tool_call.rbs +12 -12
- data/sig/openai/models/beta/beta_response_function_shell_tool_call_output.rbs +18 -18
- data/sig/openai/models/beta/beta_response_function_tool_call.rbs +18 -18
- data/sig/openai/models/beta/beta_response_function_tool_call_item.rbs +12 -12
- data/sig/openai/models/beta/beta_response_function_tool_call_output_item.rbs +18 -18
- data/sig/openai/models/beta/beta_response_function_web_search.rbs +21 -19
- data/sig/openai/models/beta/beta_response_image_gen_call_completed_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_image_gen_call_generating_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_image_gen_call_in_progress_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_image_gen_call_partial_image_event.rbs +12 -12
- data/sig/openai/models/beta/beta_response_in_progress_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_incomplete_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_inject_created_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_inject_event.rbs +2 -2
- data/sig/openai/models/beta/beta_response_inject_failed_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_input_audio.rbs +2 -2
- data/sig/openai/models/beta/beta_response_input_file.rbs +16 -16
- data/sig/openai/models/beta/beta_response_input_file_content.rbs +16 -16
- data/sig/openai/models/beta/beta_response_input_image.rbs +10 -10
- data/sig/openai/models/beta/beta_response_input_image_content.rbs +12 -12
- data/sig/openai/models/beta/beta_response_input_item.rbs +273 -228
- data/sig/openai/models/beta/beta_response_input_message_item.rbs +6 -6
- data/sig/openai/models/beta/beta_response_input_text.rbs +6 -6
- data/sig/openai/models/beta/beta_response_input_text_content.rbs +6 -6
- data/sig/openai/models/beta/beta_response_item.rbs +129 -92
- data/sig/openai/models/beta/beta_response_local_environment.rbs +2 -2
- data/sig/openai/models/beta/beta_response_mcp_call_arguments_delta_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_mcp_call_arguments_done_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_mcp_call_completed_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_mcp_call_failed_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_mcp_call_in_progress_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_mcp_list_tools_completed_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_mcp_list_tools_failed_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_mcp_list_tools_in_progress_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_output_audio.rbs +2 -2
- data/sig/openai/models/beta/beta_response_output_item.rbs +129 -92
- data/sig/openai/models/beta/beta_response_output_item_added_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_output_item_done_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_output_message.rbs +8 -8
- data/sig/openai/models/beta/beta_response_output_refusal.rbs +2 -2
- data/sig/openai/models/beta/beta_response_output_text.rbs +13 -12
- data/sig/openai/models/beta/beta_response_output_text_annotation_added_event.rbs +13 -12
- data/sig/openai/models/beta/beta_response_prompt.rbs +4 -4
- data/sig/openai/models/beta/beta_response_queued_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_reasoning_item.rbs +14 -14
- data/sig/openai/models/beta/beta_response_reasoning_summary_part_added_event.rbs +6 -6
- data/sig/openai/models/beta/beta_response_reasoning_summary_part_done_event.rbs +8 -8
- data/sig/openai/models/beta/beta_response_reasoning_summary_text_delta_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_reasoning_summary_text_done_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_reasoning_text_delta_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_reasoning_text_done_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_refusal_delta_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_refusal_done_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_shell_call_command_added_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_shell_call_command_delta_event.rbs +6 -6
- data/sig/openai/models/beta/beta_response_shell_call_command_done_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_shell_call_output_content_delta_event.rbs +6 -6
- data/sig/openai/models/beta/beta_response_shell_call_output_content_done_event.rbs +10 -10
- data/sig/openai/models/beta/beta_response_steer_accepted_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_steer_event.rbs +2 -2
- data/sig/openai/models/beta/beta_response_steer_failed_event.rbs +8 -8
- data/sig/openai/models/beta/beta_response_steer_input.rbs +30 -30
- data/sig/openai/models/beta/beta_response_steer_pending_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_steer_required_input.rbs +14 -14
- data/sig/openai/models/beta/beta_response_text_config.rbs +4 -4
- data/sig/openai/models/beta/beta_response_text_delta_event.rbs +8 -8
- data/sig/openai/models/beta/beta_response_text_done_event.rbs +8 -8
- data/sig/openai/models/beta/beta_response_tool_search_call.rbs +6 -6
- data/sig/openai/models/beta/beta_response_tool_search_output_item.rbs +6 -6
- data/sig/openai/models/beta/beta_response_tool_search_output_item_param.rbs +12 -12
- data/sig/openai/models/beta/beta_response_web_search_call_completed_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_web_search_call_in_progress_event.rbs +4 -4
- data/sig/openai/models/beta/beta_response_web_search_call_searching_event.rbs +4 -4
- data/sig/openai/models/beta/beta_responses_client_event.rbs +104 -96
- data/sig/openai/models/beta/beta_responses_server_event.rbs +374 -377
- data/sig/openai/models/beta/beta_skill_reference.rbs +3 -3
- data/sig/openai/models/beta/beta_tool.rbs +91 -75
- data/sig/openai/models/beta/beta_tool_choice_allowed.rbs +2 -2
- data/sig/openai/models/beta/beta_tool_choice_apply_patch.rbs +2 -2
- data/sig/openai/models/beta/beta_tool_choice_custom.rbs +2 -2
- data/sig/openai/models/beta/beta_tool_choice_function.rbs +2 -2
- data/sig/openai/models/beta/beta_tool_choice_mcp.rbs +2 -2
- data/sig/openai/models/beta/beta_tool_choice_shell.rbs +2 -2
- data/sig/openai/models/beta/beta_tool_search_tool.rbs +8 -8
- data/sig/openai/models/beta/beta_web_search_preview_tool.rbs +16 -16
- data/sig/openai/models/beta/beta_web_search_tool.rbs +20 -20
- data/sig/openai/models/beta/chatkit/chat_session.rbs +2 -2
- data/sig/openai/models/beta/chatkit/chat_session_chatkit_configuration_param.rbs +14 -14
- data/sig/openai/models/beta/chatkit/chat_session_expires_after_param.rbs +2 -2
- data/sig/openai/models/beta/chatkit/chat_session_rate_limits_param.rbs +2 -2
- data/sig/openai/models/beta/chatkit/chat_session_workflow_param.rbs +8 -8
- data/sig/openai/models/beta/chatkit/chatkit_response_output_text.rbs +10 -10
- data/sig/openai/models/beta/chatkit/chatkit_thread.rbs +8 -8
- data/sig/openai/models/beta/chatkit/chatkit_thread_assistant_message_item.rbs +4 -4
- data/sig/openai/models/beta/chatkit/chatkit_thread_item_list.rbs +14 -14
- data/sig/openai/models/beta/chatkit/chatkit_thread_user_message_item.rbs +8 -8
- data/sig/openai/models/beta/chatkit/chatkit_widget_item.rbs +4 -4
- data/sig/openai/models/beta/chatkit/session_cancel_params.rbs +2 -2
- data/sig/openai/models/beta/chatkit/session_create_params.rbs +8 -8
- data/sig/openai/models/beta/chatkit/thread_delete_params.rbs +2 -2
- data/sig/openai/models/beta/chatkit/thread_delete_response.rbs +2 -2
- data/sig/openai/models/beta/chatkit/thread_list_items_params.rbs +10 -10
- data/sig/openai/models/beta/chatkit/thread_list_params.rbs +12 -12
- data/sig/openai/models/beta/chatkit/thread_retrieve_params.rbs +2 -2
- data/sig/openai/models/beta/code_interpreter_tool.rbs +2 -2
- data/sig/openai/models/beta/file_search_tool.rbs +10 -10
- data/sig/openai/models/beta/function_tool.rbs +2 -2
- data/sig/openai/models/beta/message_stream_event.rbs +10 -10
- data/sig/openai/models/beta/response_cancel_params.rbs +4 -4
- data/sig/openai/models/beta/response_compact_params.rbs +22 -22
- data/sig/openai/models/beta/response_create_params.rbs +99 -94
- data/sig/openai/models/beta/response_delete_params.rbs +4 -4
- data/sig/openai/models/beta/response_retrieve_params.rbs +10 -10
- data/sig/openai/models/beta/responses/beta_response_item_list.rbs +2 -2
- data/sig/openai/models/beta/responses/input_item_list_params.rbs +12 -12
- data/sig/openai/models/beta/responses/input_token_count_params.rbs +44 -44
- data/sig/openai/models/beta/responses/input_token_count_response.rbs +2 -2
- data/sig/openai/models/beta/run_step_stream_event.rbs +14 -14
- data/sig/openai/models/beta/run_stream_event.rbs +23 -20
- data/sig/openai/models/beta/thread.rbs +10 -10
- data/sig/openai/models/beta/thread_create_and_run_params.rbs +76 -76
- data/sig/openai/models/beta/thread_create_params.rbs +38 -38
- data/sig/openai/models/beta/thread_delete_params.rbs +2 -2
- data/sig/openai/models/beta/thread_deleted.rbs +6 -2
- data/sig/openai/models/beta/thread_retrieve_params.rbs +2 -2
- data/sig/openai/models/beta/thread_stream_event.rbs +7 -3
- data/sig/openai/models/beta/thread_update_params.rbs +14 -14
- data/sig/openai/models/beta/threads/file_citation_annotation.rbs +2 -2
- data/sig/openai/models/beta/threads/file_citation_delta_annotation.rbs +12 -12
- data/sig/openai/models/beta/threads/file_path_annotation.rbs +2 -2
- data/sig/openai/models/beta/threads/file_path_delta_annotation.rbs +12 -12
- data/sig/openai/models/beta/threads/image_file.rbs +2 -2
- data/sig/openai/models/beta/threads/image_file_content_block.rbs +2 -2
- data/sig/openai/models/beta/threads/image_file_delta.rbs +4 -4
- data/sig/openai/models/beta/threads/image_file_delta_block.rbs +4 -4
- data/sig/openai/models/beta/threads/image_url.rbs +2 -2
- data/sig/openai/models/beta/threads/image_url_content_block.rbs +2 -2
- data/sig/openai/models/beta/threads/image_url_delta.rbs +4 -4
- data/sig/openai/models/beta/threads/image_url_delta_block.rbs +4 -4
- data/sig/openai/models/beta/threads/message.rbs +8 -8
- data/sig/openai/models/beta/threads/message_create_params.rbs +12 -12
- data/sig/openai/models/beta/threads/message_delete_params.rbs +6 -3
- data/sig/openai/models/beta/threads/message_deleted.rbs +2 -2
- data/sig/openai/models/beta/threads/message_delta.rbs +4 -4
- data/sig/openai/models/beta/threads/message_delta_event.rbs +2 -2
- data/sig/openai/models/beta/threads/message_list_params.rbs +12 -12
- data/sig/openai/models/beta/threads/message_retrieve_params.rbs +6 -3
- data/sig/openai/models/beta/threads/message_update_params.rbs +4 -4
- data/sig/openai/models/beta/threads/refusal_content_block.rbs +2 -2
- data/sig/openai/models/beta/threads/refusal_delta_block.rbs +2 -2
- data/sig/openai/models/beta/threads/required_action_function_tool_call.rbs +2 -2
- data/sig/openai/models/beta/threads/run.rbs +12 -12
- data/sig/openai/models/beta/threads/run_cancel_params.rbs +6 -3
- data/sig/openai/models/beta/threads/run_create_params.rbs +46 -46
- data/sig/openai/models/beta/threads/run_list_params.rbs +10 -10
- data/sig/openai/models/beta/threads/run_retrieve_params.rbs +6 -3
- data/sig/openai/models/beta/threads/run_submit_tool_outputs_params.rbs +5 -5
- data/sig/openai/models/beta/threads/run_update_params.rbs +4 -4
- data/sig/openai/models/beta/threads/runs/code_interpreter_logs.rbs +2 -2
- data/sig/openai/models/beta/threads/runs/code_interpreter_output_image.rbs +6 -6
- data/sig/openai/models/beta/threads/runs/code_interpreter_tool_call.rbs +6 -6
- data/sig/openai/models/beta/threads/runs/code_interpreter_tool_call_delta.rbs +10 -10
- data/sig/openai/models/beta/threads/runs/file_search_tool_call.rbs +12 -12
- data/sig/openai/models/beta/threads/runs/file_search_tool_call_delta.rbs +8 -3
- data/sig/openai/models/beta/threads/runs/function_tool_call.rbs +2 -2
- data/sig/openai/models/beta/threads/runs/function_tool_call_delta.rbs +11 -10
- data/sig/openai/models/beta/threads/runs/message_creation_step_details.rbs +2 -2
- data/sig/openai/models/beta/threads/runs/run_step.rbs +2 -2
- data/sig/openai/models/beta/threads/runs/run_step_delta.rbs +2 -2
- data/sig/openai/models/beta/threads/runs/run_step_delta_event.rbs +2 -2
- data/sig/openai/models/beta/threads/runs/run_step_delta_message_delta.rbs +6 -6
- data/sig/openai/models/beta/threads/runs/step_list_params.rbs +12 -12
- data/sig/openai/models/beta/threads/runs/step_retrieve_params.rbs +4 -4
- data/sig/openai/models/beta/threads/runs/tool_call_delta_object.rbs +4 -4
- data/sig/openai/models/beta/threads/runs/tool_calls_step_details.rbs +2 -2
- data/sig/openai/models/beta/threads/text_content_block.rbs +2 -2
- data/sig/openai/models/beta/threads/text_content_block_param.rbs +2 -2
- data/sig/openai/models/beta/threads/text_delta.rbs +4 -4
- data/sig/openai/models/beta/threads/text_delta_block.rbs +4 -4
- data/sig/openai/models/chat/chat_completion.rbs +24 -24
- data/sig/openai/models/chat/chat_completion_allowed_tool_choice.rbs +2 -2
- data/sig/openai/models/chat/chat_completion_assistant_message_param.rbs +14 -14
- data/sig/openai/models/chat/chat_completion_chunk.rbs +46 -46
- data/sig/openai/models/chat/chat_completion_content_part.rbs +11 -10
- data/sig/openai/models/chat/chat_completion_content_part_image.rbs +8 -8
- data/sig/openai/models/chat/chat_completion_content_part_input_audio.rbs +6 -6
- data/sig/openai/models/chat/chat_completion_content_part_refusal.rbs +2 -2
- data/sig/openai/models/chat/chat_completion_content_part_text.rbs +6 -6
- data/sig/openai/models/chat/chat_completion_custom_tool.rbs +10 -10
- data/sig/openai/models/chat/chat_completion_deleted.rbs +2 -2
- data/sig/openai/models/chat/chat_completion_developer_message_param.rbs +4 -4
- data/sig/openai/models/chat/chat_completion_function_message_param.rbs +2 -2
- data/sig/openai/models/chat/chat_completion_function_tool.rbs +2 -2
- data/sig/openai/models/chat/chat_completion_message.rbs +12 -12
- data/sig/openai/models/chat/chat_completion_message_custom_tool_call.rbs +2 -2
- data/sig/openai/models/chat/chat_completion_message_function_tool_call.rbs +2 -2
- data/sig/openai/models/chat/chat_completion_named_tool_choice.rbs +2 -2
- data/sig/openai/models/chat/chat_completion_named_tool_choice_custom.rbs +2 -2
- data/sig/openai/models/chat/chat_completion_prediction_content.rbs +2 -2
- data/sig/openai/models/chat/chat_completion_store_message.rbs +12 -12
- data/sig/openai/models/chat/chat_completion_stream_options.rbs +2 -2
- data/sig/openai/models/chat/chat_completion_system_message_param.rbs +4 -4
- data/sig/openai/models/chat/chat_completion_tool_message_param.rbs +2 -2
- data/sig/openai/models/chat/chat_completion_user_message_param.rbs +4 -4
- data/sig/openai/models/chat/completion_create_params.rbs +98 -98
- data/sig/openai/models/chat/completion_delete_params.rbs +2 -2
- data/sig/openai/models/chat/completion_list_params.rbs +12 -12
- data/sig/openai/models/chat/completion_retrieve_params.rbs +2 -2
- data/sig/openai/models/chat/completion_update_params.rbs +6 -3
- data/sig/openai/models/chat/completions/message_list_params.rbs +8 -8
- data/sig/openai/models/completion.rbs +6 -6
- data/sig/openai/models/completion_choice.rbs +8 -8
- data/sig/openai/models/completion_create_params.rbs +32 -32
- data/sig/openai/models/completion_usage.rbs +24 -24
- data/sig/openai/models/container_create_params.rbs +12 -12
- data/sig/openai/models/container_create_response.rbs +14 -14
- data/sig/openai/models/container_delete_params.rbs +2 -2
- data/sig/openai/models/container_list_params.rbs +10 -10
- data/sig/openai/models/container_list_response.rbs +14 -14
- data/sig/openai/models/container_retrieve_params.rbs +2 -2
- data/sig/openai/models/container_retrieve_response.rbs +14 -14
- data/sig/openai/models/containers/file_create_params.rbs +6 -6
- data/sig/openai/models/containers/file_create_response.rbs +2 -2
- data/sig/openai/models/containers/file_delete_params.rbs +6 -3
- data/sig/openai/models/containers/file_list_params.rbs +8 -8
- data/sig/openai/models/containers/file_list_response.rbs +2 -2
- data/sig/openai/models/containers/file_retrieve_params.rbs +6 -3
- data/sig/openai/models/containers/file_retrieve_response.rbs +2 -2
- data/sig/openai/models/containers/files/content_retrieve_params.rbs +6 -3
- data/sig/openai/models/content_provenance_check.rbs +4 -4
- data/sig/openai/models/content_provenance_check_create_params.rbs +5 -3
- data/sig/openai/models/conversations/computer_screenshot_content.rbs +6 -6
- data/sig/openai/models/conversations/conversation.rbs +2 -2
- data/sig/openai/models/conversations/conversation_create_params.rbs +6 -6
- data/sig/openai/models/conversations/conversation_delete_params.rbs +2 -2
- data/sig/openai/models/conversations/conversation_deleted.rbs +2 -2
- data/sig/openai/models/conversations/conversation_deleted_resource.rbs +2 -2
- data/sig/openai/models/conversations/conversation_item.rbs +83 -46
- data/sig/openai/models/conversations/conversation_item_list.rbs +2 -2
- data/sig/openai/models/conversations/conversation_retrieve_params.rbs +2 -2
- data/sig/openai/models/conversations/conversation_update_params.rbs +6 -3
- data/sig/openai/models/conversations/item_create_params.rbs +4 -4
- data/sig/openai/models/conversations/item_delete_params.rbs +6 -3
- data/sig/openai/models/conversations/item_list_params.rbs +10 -10
- data/sig/openai/models/conversations/item_retrieve_params.rbs +4 -4
- data/sig/openai/models/conversations/message.rbs +6 -6
- data/sig/openai/models/conversations/summary_text_content.rbs +2 -2
- data/sig/openai/models/conversations/text_content.rbs +2 -2
- data/sig/openai/models/create_embedding_response.rbs +2 -2
- data/sig/openai/models/custom_tool_input_format.rbs +4 -4
- data/sig/openai/models/deleted_skill.rbs +3 -2
- data/sig/openai/models/embedding.rbs +2 -2
- data/sig/openai/models/embedding_create_params.rbs +8 -8
- data/sig/openai/models/error_object.rbs +8 -8
- data/sig/openai/models/eval_create_params.rbs +40 -40
- data/sig/openai/models/eval_create_response.rbs +22 -22
- data/sig/openai/models/eval_custom_data_source_config.rbs +2 -2
- data/sig/openai/models/eval_delete_params.rbs +2 -2
- data/sig/openai/models/eval_list_params.rbs +10 -10
- data/sig/openai/models/eval_list_response.rbs +22 -22
- data/sig/openai/models/eval_retrieve_params.rbs +2 -2
- data/sig/openai/models/eval_retrieve_response.rbs +22 -22
- data/sig/openai/models/eval_stored_completions_data_source_config.rbs +4 -4
- data/sig/openai/models/eval_update_params.rbs +9 -5
- data/sig/openai/models/eval_update_response.rbs +22 -22
- data/sig/openai/models/evals/create_eval_completions_run_data_source.rbs +49 -49
- data/sig/openai/models/evals/create_eval_jsonl_run_data_source.rbs +8 -8
- data/sig/openai/models/evals/run_cancel_params.rbs +6 -3
- data/sig/openai/models/evals/run_cancel_response.rbs +66 -66
- data/sig/openai/models/evals/run_create_params.rbs +68 -68
- data/sig/openai/models/evals/run_create_response.rbs +66 -66
- data/sig/openai/models/evals/run_delete_params.rbs +6 -3
- data/sig/openai/models/evals/run_delete_response.rbs +2 -2
- data/sig/openai/models/evals/run_list_params.rbs +10 -10
- data/sig/openai/models/evals/run_list_response.rbs +66 -66
- data/sig/openai/models/evals/run_retrieve_params.rbs +6 -3
- data/sig/openai/models/evals/run_retrieve_response.rbs +66 -66
- data/sig/openai/models/evals/runs/output_item_list_params.rbs +10 -10
- data/sig/openai/models/evals/runs/output_item_list_response.rbs +8 -8
- data/sig/openai/models/evals/runs/output_item_retrieve_params.rbs +7 -3
- data/sig/openai/models/evals/runs/output_item_retrieve_response.rbs +8 -8
- data/sig/openai/models/file_content_params.rbs +2 -2
- data/sig/openai/models/file_create_params.rbs +6 -6
- data/sig/openai/models/file_delete_params.rbs +2 -2
- data/sig/openai/models/file_deleted.rbs +2 -2
- data/sig/openai/models/file_list_params.rbs +10 -10
- data/sig/openai/models/file_object.rbs +6 -6
- data/sig/openai/models/file_retrieve_params.rbs +2 -2
- data/sig/openai/models/fine_tuning/alpha/grader_run_params.rbs +4 -4
- data/sig/openai/models/fine_tuning/alpha/grader_validate_params.rbs +3 -3
- data/sig/openai/models/fine_tuning/alpha/grader_validate_response.rbs +2 -2
- data/sig/openai/models/fine_tuning/checkpoints/permission_create_params.rbs +6 -3
- data/sig/openai/models/fine_tuning/checkpoints/permission_create_response.rbs +2 -2
- data/sig/openai/models/fine_tuning/checkpoints/permission_delete_params.rbs +6 -3
- data/sig/openai/models/fine_tuning/checkpoints/permission_delete_response.rbs +2 -2
- data/sig/openai/models/fine_tuning/checkpoints/permission_list_params.rbs +10 -10
- data/sig/openai/models/fine_tuning/checkpoints/permission_list_response.rbs +2 -2
- data/sig/openai/models/fine_tuning/checkpoints/permission_retrieve_params.rbs +10 -10
- data/sig/openai/models/fine_tuning/checkpoints/permission_retrieve_response.rbs +8 -8
- data/sig/openai/models/fine_tuning/dpo_hyperparameters.rbs +8 -8
- data/sig/openai/models/fine_tuning/dpo_method.rbs +2 -2
- data/sig/openai/models/fine_tuning/fine_tuning_job.rbs +22 -22
- data/sig/openai/models/fine_tuning/fine_tuning_job_event.rbs +6 -6
- data/sig/openai/models/fine_tuning/fine_tuning_job_wandb_integration.rbs +6 -6
- data/sig/openai/models/fine_tuning/fine_tuning_job_wandb_integration_object.rbs +2 -2
- data/sig/openai/models/fine_tuning/job_cancel_params.rbs +2 -3
- data/sig/openai/models/fine_tuning/job_create_params.rbs +36 -36
- data/sig/openai/models/fine_tuning/job_list_events_params.rbs +9 -5
- data/sig/openai/models/fine_tuning/job_list_params.rbs +10 -6
- data/sig/openai/models/fine_tuning/job_pause_params.rbs +2 -3
- data/sig/openai/models/fine_tuning/job_resume_params.rbs +2 -3
- data/sig/openai/models/fine_tuning/job_retrieve_params.rbs +2 -3
- data/sig/openai/models/fine_tuning/jobs/checkpoint_list_params.rbs +9 -5
- data/sig/openai/models/fine_tuning/jobs/fine_tuning_job_checkpoint.rbs +16 -16
- data/sig/openai/models/fine_tuning/reinforcement_hyperparameters.rbs +14 -14
- data/sig/openai/models/fine_tuning/reinforcement_method.rbs +2 -2
- data/sig/openai/models/fine_tuning/supervised_hyperparameters.rbs +6 -6
- data/sig/openai/models/fine_tuning/supervised_method.rbs +2 -2
- data/sig/openai/models/function_definition.rbs +6 -6
- data/sig/openai/models/graders/grader_input_item.rbs +5 -5
- data/sig/openai/models/graders/label_model_grader.rbs +9 -9
- data/sig/openai/models/graders/multi_grader.rbs +2 -2
- data/sig/openai/models/graders/python_grader.rbs +3 -3
- data/sig/openai/models/graders/score_model_grader.rbs +23 -23
- data/sig/openai/models/graders/string_check_grader.rbs +2 -2
- data/sig/openai/models/graders/text_similarity_grader.rbs +2 -2
- data/sig/openai/models/image.rbs +4 -4
- data/sig/openai/models/image_create_variation_params.rbs +12 -12
- data/sig/openai/models/image_edit_completed_event.rbs +13 -6
- data/sig/openai/models/image_edit_params.rbs +29 -27
- data/sig/openai/models/image_edit_partial_image_event.rbs +13 -6
- data/sig/openai/models/image_gen_completed_event.rbs +13 -6
- data/sig/openai/models/image_gen_partial_image_event.rbs +13 -6
- data/sig/openai/models/image_generate_params.rbs +30 -27
- data/sig/openai/models/image_input_reference_param.rbs +2 -2
- data/sig/openai/models/image_model.rbs +8 -0
- data/sig/openai/models/images_response.rbs +24 -18
- data/sig/openai/models/model.rbs +4 -4
- data/sig/openai/models/model_delete_params.rbs +5 -2
- data/sig/openai/models/model_list_params.rbs +2 -2
- data/sig/openai/models/model_retrieve_params.rbs +5 -2
- data/sig/openai/models/moderation_create_params.rbs +4 -4
- data/sig/openai/models/moderation_image_url_input.rbs +5 -2
- data/sig/openai/models/moderation_text_input.rbs +2 -2
- data/sig/openai/models/other_file_chunking_strategy_object.rbs +2 -2
- data/sig/openai/models/realtime/audio_transcription.rbs +12 -12
- data/sig/openai/models/realtime/call_accept_params.rbs +30 -30
- data/sig/openai/models/realtime/call_create_params.rbs +7 -4
- data/sig/openai/models/realtime/call_hangup_params.rbs +2 -2
- data/sig/openai/models/realtime/call_refer_params.rbs +6 -3
- data/sig/openai/models/realtime/call_reject_params.rbs +7 -4
- data/sig/openai/models/realtime/client_secret_create_params.rbs +10 -10
- data/sig/openai/models/realtime/conversation_created_event.rbs +6 -6
- data/sig/openai/models/realtime/conversation_item_added.rbs +4 -4
- data/sig/openai/models/realtime/conversation_item_create_event.rbs +6 -6
- data/sig/openai/models/realtime/conversation_item_created_event.rbs +4 -4
- data/sig/openai/models/realtime/conversation_item_delete_event.rbs +7 -3
- data/sig/openai/models/realtime/conversation_item_deleted_event.rbs +2 -2
- data/sig/openai/models/realtime/conversation_item_done.rbs +4 -4
- data/sig/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rbs +14 -14
- data/sig/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbs +8 -8
- data/sig/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rbs +7 -7
- data/sig/openai/models/realtime/conversation_item_input_audio_transcription_segment.rbs +2 -2
- data/sig/openai/models/realtime/conversation_item_retrieve_event.rbs +4 -4
- data/sig/openai/models/realtime/conversation_item_truncate_event.rbs +4 -4
- data/sig/openai/models/realtime/conversation_item_truncated_event.rbs +2 -2
- data/sig/openai/models/realtime/conversation_item_with_reference.rbs +30 -30
- data/sig/openai/models/realtime/input_audio_buffer_append_event.rbs +7 -3
- data/sig/openai/models/realtime/input_audio_buffer_clear_event.rbs +5 -2
- data/sig/openai/models/realtime/input_audio_buffer_cleared_event.rbs +2 -2
- data/sig/openai/models/realtime/input_audio_buffer_commit_event.rbs +5 -2
- data/sig/openai/models/realtime/input_audio_buffer_committed_event.rbs +4 -4
- data/sig/openai/models/realtime/input_audio_buffer_dtmf_event_received_event.rbs +2 -2
- data/sig/openai/models/realtime/input_audio_buffer_speech_started_event.rbs +2 -2
- data/sig/openai/models/realtime/input_audio_buffer_speech_stopped_event.rbs +2 -2
- data/sig/openai/models/realtime/input_audio_buffer_timeout_triggered.rbs +2 -2
- data/sig/openai/models/realtime/mcp_list_tools_completed.rbs +6 -2
- data/sig/openai/models/realtime/mcp_list_tools_failed.rbs +2 -2
- data/sig/openai/models/realtime/mcp_list_tools_in_progress.rbs +2 -2
- data/sig/openai/models/realtime/output_audio_buffer_clear_event.rbs +5 -2
- data/sig/openai/models/realtime/rate_limits_updated_event.rbs +10 -10
- data/sig/openai/models/realtime/realtime_audio_config.rbs +4 -4
- data/sig/openai/models/realtime/realtime_audio_config_input.rbs +10 -10
- data/sig/openai/models/realtime/realtime_audio_config_output.rbs +6 -6
- data/sig/openai/models/realtime/realtime_audio_formats.rbs +8 -8
- data/sig/openai/models/realtime/realtime_audio_input_turn_detection.rbs +22 -22
- data/sig/openai/models/realtime/realtime_conversation_item_assistant_message.rbs +18 -18
- data/sig/openai/models/realtime/realtime_conversation_item_function_call.rbs +10 -10
- data/sig/openai/models/realtime/realtime_conversation_item_function_call_output.rbs +8 -8
- data/sig/openai/models/realtime/realtime_conversation_item_system_message.rbs +14 -14
- data/sig/openai/models/realtime/realtime_conversation_item_user_message.rbs +22 -22
- data/sig/openai/models/realtime/realtime_error.rbs +6 -6
- data/sig/openai/models/realtime/realtime_error_event.rbs +2 -2
- data/sig/openai/models/realtime/realtime_function_tool.rbs +8 -8
- data/sig/openai/models/realtime/realtime_mcp_approval_request.rbs +2 -2
- data/sig/openai/models/realtime/realtime_mcp_approval_response.rbs +4 -4
- data/sig/openai/models/realtime/realtime_mcp_list_tools.rbs +8 -8
- data/sig/openai/models/realtime/realtime_mcp_protocol_error.rbs +2 -2
- data/sig/openai/models/realtime/realtime_mcp_tool_call.rbs +8 -8
- data/sig/openai/models/realtime/realtime_mcp_tool_execution_error.rbs +2 -2
- data/sig/openai/models/realtime/realtime_mcphttp_error.rbs +2 -2
- data/sig/openai/models/realtime/realtime_reasoning.rbs +2 -2
- data/sig/openai/models/realtime/realtime_response.rbs +28 -28
- data/sig/openai/models/realtime/realtime_response_create_audio_output.rbs +6 -6
- data/sig/openai/models/realtime/realtime_response_create_mcp_tool.rbs +32 -32
- data/sig/openai/models/realtime/realtime_response_create_params.rbs +24 -24
- data/sig/openai/models/realtime/realtime_response_status.rbs +8 -8
- data/sig/openai/models/realtime/realtime_response_usage.rbs +10 -10
- data/sig/openai/models/realtime/realtime_response_usage_input_token_details.rbs +18 -14
- data/sig/openai/models/realtime/realtime_response_usage_output_token_details.rbs +2 -2
- data/sig/openai/models/realtime/realtime_server_event.rbs +8 -8
- data/sig/openai/models/realtime/realtime_session.rbs +68 -68
- data/sig/openai/models/realtime/realtime_session_create_request.rbs +28 -28
- data/sig/openai/models/realtime/realtime_session_create_response.rbs +113 -110
- data/sig/openai/models/realtime/realtime_tools_config_union.rbs +38 -32
- data/sig/openai/models/realtime/realtime_tracing_config.rbs +4 -4
- data/sig/openai/models/realtime/realtime_transcription_session_audio.rbs +2 -2
- data/sig/openai/models/realtime/realtime_transcription_session_audio_input.rbs +10 -10
- data/sig/openai/models/realtime/realtime_transcription_session_audio_input_turn_detection.rbs +22 -22
- data/sig/openai/models/realtime/realtime_transcription_session_create_request.rbs +6 -6
- data/sig/openai/models/realtime/realtime_transcription_session_create_response.rbs +20 -20
- data/sig/openai/models/realtime/realtime_transcription_session_turn_detection.rbs +8 -8
- data/sig/openai/models/realtime/realtime_translation_client_secret_create_request.rbs +6 -6
- data/sig/openai/models/realtime/realtime_translation_input_audio_buffer_append_event.rbs +4 -4
- data/sig/openai/models/realtime/realtime_translation_input_transcript_delta_event.rbs +4 -4
- data/sig/openai/models/realtime/realtime_translation_output_audio_delta_event.rbs +10 -10
- data/sig/openai/models/realtime/realtime_translation_output_transcript_delta_event.rbs +4 -4
- data/sig/openai/models/realtime/realtime_translation_session.rbs +12 -12
- data/sig/openai/models/realtime/realtime_translation_session_close_event.rbs +2 -2
- data/sig/openai/models/realtime/realtime_translation_session_closed_event.rbs +2 -2
- data/sig/openai/models/realtime/realtime_translation_session_create_request.rbs +12 -12
- data/sig/openai/models/realtime/realtime_translation_session_created_event.rbs +2 -2
- data/sig/openai/models/realtime/realtime_translation_session_update_event.rbs +4 -4
- data/sig/openai/models/realtime/realtime_translation_session_update_request.rbs +12 -12
- data/sig/openai/models/realtime/realtime_translation_session_updated_event.rbs +2 -2
- data/sig/openai/models/realtime/realtime_truncation_retention_ratio.rbs +6 -6
- data/sig/openai/models/realtime/response_audio_delta_event.rbs +2 -2
- data/sig/openai/models/realtime/response_audio_done_event.rbs +2 -2
- data/sig/openai/models/realtime/response_audio_transcript_delta_event.rbs +2 -2
- data/sig/openai/models/realtime/response_audio_transcript_done_event.rbs +2 -2
- data/sig/openai/models/realtime/response_cancel_event.rbs +4 -4
- data/sig/openai/models/realtime/response_content_part_added_event.rbs +10 -10
- data/sig/openai/models/realtime/response_content_part_done_event.rbs +10 -10
- data/sig/openai/models/realtime/response_create_event.rbs +6 -6
- data/sig/openai/models/realtime/response_created_event.rbs +2 -2
- data/sig/openai/models/realtime/response_done_event.rbs +2 -2
- data/sig/openai/models/realtime/response_function_call_arguments_delta_event.rbs +2 -2
- data/sig/openai/models/realtime/response_function_call_arguments_done_event.rbs +2 -2
- data/sig/openai/models/realtime/response_mcp_call_arguments_delta.rbs +4 -4
- data/sig/openai/models/realtime/response_mcp_call_arguments_done.rbs +2 -2
- data/sig/openai/models/realtime/response_mcp_call_completed.rbs +2 -2
- data/sig/openai/models/realtime/response_mcp_call_failed.rbs +2 -2
- data/sig/openai/models/realtime/response_mcp_call_in_progress.rbs +2 -2
- data/sig/openai/models/realtime/response_output_item_added_event.rbs +2 -2
- data/sig/openai/models/realtime/response_output_item_done_event.rbs +2 -2
- data/sig/openai/models/realtime/response_text_delta_event.rbs +2 -2
- data/sig/openai/models/realtime/response_text_done_event.rbs +2 -2
- data/sig/openai/models/realtime/session_created_event.rbs +2 -2
- data/sig/openai/models/realtime/session_update_event.rbs +4 -4
- data/sig/openai/models/realtime/session_updated_event.rbs +2 -2
- data/sig/openai/models/realtime/transcription_session_update.rbs +24 -24
- data/sig/openai/models/realtime/transcription_session_updated_event.rbs +18 -18
- data/sig/openai/models/reasoning.rbs +10 -10
- data/sig/openai/models/response_format_json_object.rbs +2 -2
- data/sig/openai/models/response_format_json_schema.rbs +8 -8
- data/sig/openai/models/response_format_text.rbs +2 -2
- data/sig/openai/models/response_format_text_grammar.rbs +2 -2
- data/sig/openai/models/response_format_text_python.rbs +2 -2
- data/sig/openai/models/responses/apply_patch_tool.rbs +4 -4
- data/sig/openai/models/responses/compacted_response.rbs +2 -2
- data/sig/openai/models/responses/computer_action.rbs +25 -25
- data/sig/openai/models/responses/computer_tool.rbs +2 -2
- data/sig/openai/models/responses/computer_use_preview_tool.rbs +2 -2
- data/sig/openai/models/responses/container_auto.rbs +10 -10
- data/sig/openai/models/responses/container_network_policy_allowlist.rbs +4 -4
- data/sig/openai/models/responses/container_network_policy_disabled.rbs +2 -2
- data/sig/openai/models/responses/container_reference.rbs +2 -2
- data/sig/openai/models/responses/custom_tool.rbs +12 -12
- data/sig/openai/models/responses/easy_input_message.rbs +4 -4
- data/sig/openai/models/responses/file_search_tool.rbs +14 -14
- data/sig/openai/models/responses/function_shell_tool.rbs +6 -6
- data/sig/openai/models/responses/function_tool.rbs +12 -12
- data/sig/openai/models/responses/inline_skill.rbs +2 -2
- data/sig/openai/models/responses/inline_skill_source.rbs +3 -3
- data/sig/openai/models/responses/input_item_list_params.rbs +10 -10
- data/sig/openai/models/responses/input_token_count_params.rbs +32 -32
- data/sig/openai/models/responses/input_token_count_response.rbs +2 -2
- data/sig/openai/models/responses/local_environment.rbs +3 -3
- data/sig/openai/models/responses/mcp_tool_call_error.rbs +6 -6
- data/sig/openai/models/responses/namespace_tool.rbs +18 -18
- data/sig/openai/models/responses/response.rbs +175 -57
- data/sig/openai/models/responses/response_apply_patch_tool_call.rbs +16 -16
- data/sig/openai/models/responses/response_apply_patch_tool_call_output.rbs +12 -12
- data/sig/openai/models/responses/response_audio_delta_event.rbs +2 -2
- data/sig/openai/models/responses/response_audio_done_event.rbs +2 -2
- data/sig/openai/models/responses/response_audio_transcript_delta_event.rbs +2 -2
- data/sig/openai/models/responses/response_audio_transcript_done_event.rbs +2 -2
- data/sig/openai/models/responses/response_cancel_params.rbs +2 -2
- data/sig/openai/models/responses/response_code_interpreter_call_code_delta_event.rbs +2 -2
- data/sig/openai/models/responses/response_code_interpreter_call_code_done_event.rbs +2 -2
- data/sig/openai/models/responses/response_code_interpreter_call_completed_event.rbs +2 -2
- data/sig/openai/models/responses/response_code_interpreter_call_in_progress_event.rbs +2 -2
- data/sig/openai/models/responses/response_code_interpreter_call_interpreting_event.rbs +2 -2
- data/sig/openai/models/responses/response_code_interpreter_tool_call.rbs +6 -6
- data/sig/openai/models/responses/response_compact_params.rbs +20 -20
- data/sig/openai/models/responses/response_compaction_item.rbs +4 -4
- data/sig/openai/models/responses/response_compaction_item_param.rbs +3 -3
- data/sig/openai/models/responses/response_completed_event.rbs +2 -2
- data/sig/openai/models/responses/response_computer_tool_call.rbs +31 -31
- data/sig/openai/models/responses/response_computer_tool_call_output_item.rbs +8 -8
- data/sig/openai/models/responses/response_computer_tool_call_output_screenshot.rbs +4 -4
- data/sig/openai/models/responses/response_configuration_update_item.rbs +6 -6
- data/sig/openai/models/responses/response_configuration_update_item_param.rbs +8 -8
- data/sig/openai/models/responses/response_container_reference.rbs +2 -2
- data/sig/openai/models/responses/response_content.rbs +2 -2
- data/sig/openai/models/responses/response_content_part_added_event.rbs +4 -4
- data/sig/openai/models/responses/response_content_part_done_event.rbs +4 -4
- data/sig/openai/models/responses/response_create_params.rbs +83 -78
- data/sig/openai/models/responses/response_created_event.rbs +2 -2
- data/sig/openai/models/responses/response_custom_tool_call.rbs +14 -14
- data/sig/openai/models/responses/response_custom_tool_call_input_delta_event.rbs +2 -2
- data/sig/openai/models/responses/response_custom_tool_call_input_done_event.rbs +2 -2
- data/sig/openai/models/responses/response_custom_tool_call_item.rbs +10 -10
- data/sig/openai/models/responses/response_custom_tool_call_output.rbs +10 -10
- data/sig/openai/models/responses/response_custom_tool_call_output_item.rbs +6 -6
- data/sig/openai/models/responses/response_delete_params.rbs +2 -2
- data/sig/openai/models/responses/response_error.rbs +8 -8
- data/sig/openai/models/responses/response_error_event.rbs +2 -2
- data/sig/openai/models/responses/response_failed_event.rbs +2 -2
- data/sig/openai/models/responses/response_file_search_call_completed_event.rbs +2 -2
- data/sig/openai/models/responses/response_file_search_call_in_progress_event.rbs +2 -2
- data/sig/openai/models/responses/response_file_search_call_searching_event.rbs +2 -2
- data/sig/openai/models/responses/response_file_search_tool_call.rbs +14 -14
- data/sig/openai/models/responses/response_format_text_json_schema_config.rbs +6 -6
- data/sig/openai/models/responses/response_function_call_arguments_delta_event.rbs +2 -2
- data/sig/openai/models/responses/response_function_call_arguments_done_event.rbs +2 -7
- data/sig/openai/models/responses/response_function_shell_call_output_content.rbs +4 -4
- data/sig/openai/models/responses/response_function_shell_tool_call.rbs +10 -10
- data/sig/openai/models/responses/response_function_shell_tool_call_output.rbs +16 -16
- data/sig/openai/models/responses/response_function_tool_call.rbs +16 -16
- data/sig/openai/models/responses/response_function_tool_call_item.rbs +10 -10
- data/sig/openai/models/responses/response_function_tool_call_output_item.rbs +16 -16
- data/sig/openai/models/responses/response_function_web_search.rbs +19 -17
- data/sig/openai/models/responses/response_image_gen_call_completed_event.rbs +2 -2
- data/sig/openai/models/responses/response_image_gen_call_generating_event.rbs +2 -2
- data/sig/openai/models/responses/response_image_gen_call_in_progress_event.rbs +2 -2
- data/sig/openai/models/responses/response_image_gen_call_partial_image_event.rbs +10 -10
- data/sig/openai/models/responses/response_in_progress_event.rbs +2 -2
- data/sig/openai/models/responses/response_incomplete_event.rbs +2 -2
- data/sig/openai/models/responses/response_input_audio.rbs +2 -2
- data/sig/openai/models/responses/response_input_file.rbs +16 -16
- data/sig/openai/models/responses/response_input_file_content.rbs +16 -16
- data/sig/openai/models/responses/response_input_image.rbs +10 -10
- data/sig/openai/models/responses/response_input_image_content.rbs +12 -12
- data/sig/openai/models/responses/response_input_item.rbs +203 -158
- data/sig/openai/models/responses/response_input_message_item.rbs +4 -4
- data/sig/openai/models/responses/response_input_text.rbs +6 -6
- data/sig/openai/models/responses/response_input_text_content.rbs +6 -6
- data/sig/openai/models/responses/response_item.rbs +83 -46
- data/sig/openai/models/responses/response_item_list.rbs +2 -2
- data/sig/openai/models/responses/response_local_environment.rbs +2 -2
- data/sig/openai/models/responses/response_mcp_call_arguments_delta_event.rbs +2 -2
- data/sig/openai/models/responses/response_mcp_call_arguments_done_event.rbs +2 -2
- data/sig/openai/models/responses/response_mcp_call_completed_event.rbs +2 -2
- data/sig/openai/models/responses/response_mcp_call_failed_event.rbs +2 -2
- data/sig/openai/models/responses/response_mcp_call_in_progress_event.rbs +2 -2
- data/sig/openai/models/responses/response_mcp_list_tools_completed_event.rbs +2 -2
- data/sig/openai/models/responses/response_mcp_list_tools_failed_event.rbs +2 -2
- data/sig/openai/models/responses/response_mcp_list_tools_in_progress_event.rbs +2 -2
- data/sig/openai/models/responses/response_output_audio.rbs +2 -2
- data/sig/openai/models/responses/response_output_item.rbs +83 -46
- data/sig/openai/models/responses/response_output_item_added_event.rbs +2 -2
- data/sig/openai/models/responses/response_output_item_done_event.rbs +2 -2
- data/sig/openai/models/responses/response_output_message.rbs +6 -6
- data/sig/openai/models/responses/response_output_refusal.rbs +2 -2
- data/sig/openai/models/responses/response_output_text.rbs +13 -12
- data/sig/openai/models/responses/response_output_text_annotation_added_event.rbs +11 -10
- data/sig/openai/models/responses/response_prompt.rbs +4 -4
- data/sig/openai/models/responses/response_queued_event.rbs +2 -2
- data/sig/openai/models/responses/response_reasoning_item.rbs +12 -12
- data/sig/openai/models/responses/response_reasoning_summary_part_added_event.rbs +4 -4
- data/sig/openai/models/responses/response_reasoning_summary_part_done_event.rbs +6 -6
- data/sig/openai/models/responses/response_reasoning_summary_text_delta_event.rbs +2 -2
- data/sig/openai/models/responses/response_reasoning_summary_text_done_event.rbs +2 -2
- data/sig/openai/models/responses/response_reasoning_text_delta_event.rbs +2 -2
- data/sig/openai/models/responses/response_reasoning_text_done_event.rbs +2 -2
- data/sig/openai/models/responses/response_refusal_delta_event.rbs +2 -2
- data/sig/openai/models/responses/response_refusal_done_event.rbs +2 -2
- data/sig/openai/models/responses/response_retrieve_params.rbs +8 -8
- data/sig/openai/models/responses/response_shell_call_command_added_event.rbs +2 -2
- data/sig/openai/models/responses/response_shell_call_command_delta_event.rbs +4 -4
- data/sig/openai/models/responses/response_shell_call_command_done_event.rbs +2 -2
- data/sig/openai/models/responses/response_shell_call_output_content_delta_event.rbs +4 -4
- data/sig/openai/models/responses/response_shell_call_output_content_done_event.rbs +8 -8
- data/sig/openai/models/responses/response_steer_accepted_event.rbs +4 -4
- data/sig/openai/models/responses/response_steer_event.rbs +2 -2
- data/sig/openai/models/responses/response_steer_failed_event.rbs +8 -8
- data/sig/openai/models/responses/response_steer_input.rbs +26 -26
- data/sig/openai/models/responses/response_steer_pending_event.rbs +4 -4
- data/sig/openai/models/responses/response_steer_required_input.rbs +14 -14
- data/sig/openai/models/responses/response_text_config.rbs +4 -4
- data/sig/openai/models/responses/response_text_delta_event.rbs +6 -6
- data/sig/openai/models/responses/response_text_done_event.rbs +6 -6
- data/sig/openai/models/responses/response_tool_search_call.rbs +4 -4
- data/sig/openai/models/responses/response_tool_search_output_item.rbs +4 -4
- data/sig/openai/models/responses/response_tool_search_output_item_param.rbs +10 -10
- data/sig/openai/models/responses/response_web_search_call_completed_event.rbs +2 -2
- data/sig/openai/models/responses/response_web_search_call_in_progress_event.rbs +2 -2
- data/sig/openai/models/responses/response_web_search_call_searching_event.rbs +2 -2
- data/sig/openai/models/responses/responses_client_event.rbs +87 -82
- data/sig/openai/models/responses/responses_server_event.rbs +258 -261
- data/sig/openai/models/responses/skill_reference.rbs +3 -3
- data/sig/openai/models/responses/tool.rbs +91 -75
- data/sig/openai/models/responses/tool_choice_allowed.rbs +2 -2
- data/sig/openai/models/responses/tool_choice_apply_patch.rbs +2 -2
- data/sig/openai/models/responses/tool_choice_custom.rbs +2 -2
- data/sig/openai/models/responses/tool_choice_function.rbs +2 -2
- data/sig/openai/models/responses/tool_choice_mcp.rbs +3 -2
- data/sig/openai/models/responses/tool_choice_shell.rbs +2 -2
- data/sig/openai/models/responses/tool_search_tool.rbs +8 -8
- data/sig/openai/models/responses/web_search_preview_tool.rbs +16 -16
- data/sig/openai/models/responses/web_search_tool.rbs +20 -20
- data/sig/openai/models/safety/alert_retrieve_params.rbs +2 -2
- data/sig/openai/models/safety/safety_alert.rbs +2 -2
- data/sig/openai/models/skill.rbs +2 -2
- data/sig/openai/models/skill_create_params.rbs +6 -4
- data/sig/openai/models/skill_delete_params.rbs +2 -2
- data/sig/openai/models/skill_list.rbs +2 -2
- data/sig/openai/models/skill_list_params.rbs +8 -8
- data/sig/openai/models/skill_retrieve_params.rbs +2 -2
- data/sig/openai/models/skill_update_params.rbs +6 -3
- data/sig/openai/models/skills/content_retrieve_params.rbs +2 -2
- data/sig/openai/models/skills/deleted_skill_version.rbs +2 -2
- data/sig/openai/models/skills/skill_version.rbs +2 -2
- data/sig/openai/models/skills/skill_version_list.rbs +2 -2
- data/sig/openai/models/skills/version_create_params.rbs +6 -6
- data/sig/openai/models/skills/version_delete_params.rbs +6 -3
- data/sig/openai/models/skills/version_list_params.rbs +8 -8
- data/sig/openai/models/skills/version_retrieve_params.rbs +6 -3
- data/sig/openai/models/skills/versions/content_retrieve_params.rbs +6 -3
- data/sig/openai/models/static_file_chunking_strategy_object.rbs +2 -2
- data/sig/openai/models/static_file_chunking_strategy_object_param.rbs +2 -2
- data/sig/openai/models/upload.rbs +4 -4
- data/sig/openai/models/upload_cancel_params.rbs +2 -2
- data/sig/openai/models/upload_complete_params.rbs +8 -4
- data/sig/openai/models/upload_create_params.rbs +6 -6
- data/sig/openai/models/uploads/part_create_params.rbs +6 -3
- data/sig/openai/models/uploads/upload_part.rbs +2 -2
- data/sig/openai/models/vector_store.rbs +8 -8
- data/sig/openai/models/vector_store_create_params.rbs +16 -16
- data/sig/openai/models/vector_store_delete_params.rbs +2 -2
- data/sig/openai/models/vector_store_deleted.rbs +2 -2
- data/sig/openai/models/vector_store_list_params.rbs +10 -10
- data/sig/openai/models/vector_store_retrieve_params.rbs +2 -2
- data/sig/openai/models/vector_store_search_params.rbs +14 -14
- data/sig/openai/models/vector_store_update_params.rbs +10 -10
- data/sig/openai/models/vector_stores/file_batch_cancel_params.rbs +6 -3
- data/sig/openai/models/vector_stores/file_batch_create_params.rbs +14 -14
- data/sig/openai/models/vector_stores/file_batch_list_files_params.rbs +12 -12
- data/sig/openai/models/vector_stores/file_batch_retrieve_params.rbs +6 -3
- data/sig/openai/models/vector_stores/file_content_params.rbs +6 -3
- data/sig/openai/models/vector_stores/file_content_response.rbs +2 -2
- data/sig/openai/models/vector_stores/file_create_params.rbs +6 -6
- data/sig/openai/models/vector_stores/file_delete_params.rbs +6 -3
- data/sig/openai/models/vector_stores/file_list_params.rbs +12 -12
- data/sig/openai/models/vector_stores/file_retrieve_params.rbs +6 -3
- data/sig/openai/models/vector_stores/file_update_params.rbs +3 -3
- data/sig/openai/models/vector_stores/vector_store_file.rbs +6 -6
- data/sig/openai/models/vector_stores/vector_store_file_batch.rbs +2 -2
- data/sig/openai/models/vector_stores/vector_store_file_deleted.rbs +2 -2
- data/sig/openai/models/video.rbs +2 -2
- data/sig/openai/models/video_create_character_params.rbs +6 -3
- data/sig/openai/models/video_create_error.rbs +8 -8
- data/sig/openai/models/video_create_params.rbs +10 -10
- data/sig/openai/models/video_delete_params.rbs +2 -2
- data/sig/openai/models/video_delete_response.rbs +2 -2
- data/sig/openai/models/video_download_content_params.rbs +4 -4
- data/sig/openai/models/video_edit_params.rbs +6 -3
- data/sig/openai/models/video_extend_params.rbs +3 -3
- data/sig/openai/models/video_get_character_params.rbs +2 -2
- data/sig/openai/models/video_list_params.rbs +8 -8
- data/sig/openai/models/video_remix_params.rbs +6 -3
- data/sig/openai/models/video_retrieve_params.rbs +2 -2
- data/sig/openai/models/webhooks/batch_cancelled_webhook_event.rbs +4 -4
- data/sig/openai/models/webhooks/batch_completed_webhook_event.rbs +4 -4
- data/sig/openai/models/webhooks/batch_expired_webhook_event.rbs +4 -4
- data/sig/openai/models/webhooks/batch_failed_webhook_event.rbs +4 -4
- data/sig/openai/models/webhooks/eval_run_canceled_webhook_event.rbs +4 -4
- data/sig/openai/models/webhooks/eval_run_failed_webhook_event.rbs +4 -4
- data/sig/openai/models/webhooks/eval_run_succeeded_webhook_event.rbs +4 -4
- data/sig/openai/models/webhooks/fine_tuning_job_cancelled_webhook_event.rbs +4 -4
- data/sig/openai/models/webhooks/fine_tuning_job_failed_webhook_event.rbs +4 -4
- data/sig/openai/models/webhooks/fine_tuning_job_succeeded_webhook_event.rbs +4 -4
- data/sig/openai/models/webhooks/live_call_incoming_webhook_event.rbs +4 -4
- data/sig/openai/models/webhooks/realtime_call_incoming_webhook_event.rbs +4 -4
- data/sig/openai/models/webhooks/response_cancelled_webhook_event.rbs +4 -4
- data/sig/openai/models/webhooks/response_completed_webhook_event.rbs +4 -4
- data/sig/openai/models/webhooks/response_failed_webhook_event.rbs +4 -4
- data/sig/openai/models/webhooks/response_incomplete_webhook_event.rbs +4 -4
- data/sig/openai/models/webhooks/safety_alert_created_webhook_event.rbs +4 -4
- data/sig/openai/models/webhooks/safety_org_alert_created_webhook_event.rbs +4 -4
- data/sig/openai/models/webhooks/webhook_unwrap_params.rbs +2 -3
- data/sig/openai/request_options.rbs +7 -7
- data/sig/openai/resources/admin/organization/projects/service_accounts/api_keys.rbs +1 -0
- data/sig/openai/resources/audio/speech.rbs +1 -1
- data/sig/openai/resources/containers/files/content.rbs +1 -1
- data/sig/openai/resources/files.rbs +1 -1
- data/sig/openai/resources/responses.rbs +51 -2
- data/sig/openai/resources/skills/content.rbs +1 -1
- data/sig/openai/resources/skills/versions/content.rbs +1 -1
- data/sig/openai/resources/videos.rbs +1 -1
- data/sig/openai/response_carrier.rbs +13 -0
- data/sig/openai/streaming.rbs +10 -0
- metadata +56 -1
data/realtime.md
CHANGED
|
@@ -76,6 +76,107 @@ types. Invalid client events raise `ArgumentError` with a generic public
|
|
|
76
76
|
message; the converter error remains available through `cause` for explicit
|
|
77
77
|
inspection. `send_raw` and `receive_raw` are text-frame escape hatches.
|
|
78
78
|
|
|
79
|
+
## Reconnect and retained sends
|
|
80
|
+
|
|
81
|
+
Automatic reconnect is disabled by default. Enable it on the existing `connect`
|
|
82
|
+
method for ordinary model sessions:
|
|
83
|
+
|
|
84
|
+
```ruby
|
|
85
|
+
client.realtime.connect(model: "gpt-realtime-2.1", reconnect: true) do |connection|
|
|
86
|
+
connection.each { |event| handle_event(event) }
|
|
87
|
+
end
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Both `receive` and `each` drive recovery. The application block runs once, with
|
|
91
|
+
the same connection object. Recovery opens a **new session**; it does not restore
|
|
92
|
+
conversation history, buffered audio, outstanding tool calls, or an interrupted
|
|
93
|
+
response. The normal server session events remain observable. Sends alone do
|
|
94
|
+
not drive recovery: keep a receiver running to observe disconnects.
|
|
95
|
+
|
|
96
|
+
`max_reconnect_attempts` defaults to 5 and bounds the total additional connection
|
|
97
|
+
attempts over the block's lifetime, including retryable initial handshake
|
|
98
|
+
failures. Backoff starts at 0.5 seconds, doubles to an 8-second cap, and applies
|
|
99
|
+
jitter. Normal close, explicit close, permanent authentication/TLS/protocol
|
|
100
|
+
failures, and exhausted retries stop recovery. Each attempt uses the client's
|
|
101
|
+
existing endpoint and authentication preparation, including workload-identity
|
|
102
|
+
token refresh. `request_options[:max_retries]` remains an HTTP option and must
|
|
103
|
+
not be used to configure WebSocket reconnect.
|
|
104
|
+
|
|
105
|
+
An optional `on_reconnected:` callback receives the same connection before the
|
|
106
|
+
replacement is made available to waiting readers. It can restore application
|
|
107
|
+
state using the usual typed helpers; its exceptions stop recovery. A callback
|
|
108
|
+
may receive events itself, consuming them before the application receiver.
|
|
109
|
+
|
|
110
|
+
### Optional outbound queue
|
|
111
|
+
|
|
112
|
+
`max_queue_bytes` defaults to **0** (queueing disabled). Set a positive byte
|
|
113
|
+
budget to retain validated, serialized events sent while reconnecting or while
|
|
114
|
+
an explicit queue flush is in progress. Queue-full errors reject the new event
|
|
115
|
+
without evicting accepted events. The budget includes a queued write until it
|
|
116
|
+
settles; empty raw text costs one byte for accounting. Connected sends and
|
|
117
|
+
incoming events have no new payload-size limit.
|
|
118
|
+
|
|
119
|
+
Retained events are **never automatically flushed** into a replacement session.
|
|
120
|
+
Restore any needed state, decide whether the queued work still belongs in that
|
|
121
|
+
session, then call `flush_pending`. Normal connected sends bypass the held queue,
|
|
122
|
+
allowing setup messages to precede it. Only the retained messages have FIFO
|
|
123
|
+
ordering relative to each other. For example:
|
|
124
|
+
|
|
125
|
+
```ruby
|
|
126
|
+
restore = lambda do |connection|
|
|
127
|
+
connection.session.update(type: :realtime, instructions: "Be concise.")
|
|
128
|
+
# Use this only when the application knows its retained events are valid
|
|
129
|
+
# in the replacement session. Rebuilding earlier conversation state may
|
|
130
|
+
# require additional events and acknowledgements first.
|
|
131
|
+
connection.flush_pending
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
client.realtime.connect(
|
|
135
|
+
model: "gpt-realtime-2.1",
|
|
136
|
+
reconnect: true,
|
|
137
|
+
max_queue_bytes: 1_048_576,
|
|
138
|
+
on_reconnected: restore
|
|
139
|
+
) do |connection|
|
|
140
|
+
connection.each { |event| handle_event(event) }
|
|
141
|
+
end
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
The callback is optional even with queueing enabled. After receiving a new
|
|
145
|
+
session's events, application code can restore state and flush the queue itself.
|
|
146
|
+
`pending_messages` returns a snapshot of encoded unsent events;
|
|
147
|
+
`take_pending_messages` removes and returns them without sending. The latter
|
|
148
|
+
raises if a flush is in progress. These accessors return empty arrays on ordinary
|
|
149
|
+
connections without recovery; `flush_pending` on such a connection is a no-op.
|
|
150
|
+
|
|
151
|
+
`OpenAI::Errors::RealtimeQueueFullError` means the event was not accepted.
|
|
152
|
+
`OpenAI::Errors::RealtimeReconnectError` reports a terminal recovery failure or
|
|
153
|
+
an interrupted operation. Its `unsent_messages` contains retained events never
|
|
154
|
+
attempted on the socket. A failed write stops the connection and exposes the
|
|
155
|
+
attempted event as `uncertain_message`; the SDK never retries it. A local write
|
|
156
|
+
completion is not a server acknowledgement, and `event_id` does not establish
|
|
157
|
+
exactly-once delivery. These explicit payload accessors can contain sensitive
|
|
158
|
+
application data; do not log them. Error messages omit their contents.
|
|
159
|
+
|
|
160
|
+
Each waiting sender receives an error describing only its own event. If its write
|
|
161
|
+
was never attempted, that event appears in `unsent_messages` and `uncertain_message`
|
|
162
|
+
is nil, even when another concurrent sender's write caused the connection to fail.
|
|
163
|
+
|
|
164
|
+
When an explicit flush is interrupted by another disconnect, unattempted events
|
|
165
|
+
stay queued and require another explicit flush after recovery. Intentional close
|
|
166
|
+
keeps retained data available through the connection's queue accessors. With
|
|
167
|
+
reconnect enabled, close makes a best-effort attempt (up to one second) to send its
|
|
168
|
+
`code` and `reason`, then releases the socket. A close during a write aborts
|
|
169
|
+
immediately and reports uncertain delivery. Leaving the block cancels and joins recovery
|
|
170
|
+
work. Concurrent producers submit through the connection's mailbox; socket I/O
|
|
171
|
+
stays on its owning Async reactor. Cancelling a waiting operation closes the
|
|
172
|
+
logical connection so an abandoned receive cannot consume a later event.
|
|
173
|
+
|
|
174
|
+
Reconnect uses the optional Async runtime even with a custom transport. Custom
|
|
175
|
+
transports must allow Async cancellation and preserve the cause/status of
|
|
176
|
+
`RealtimeConnectionError` for retry classification. `connect_transcription` and
|
|
177
|
+
`connect_to_call` retain their existing behavior; their session recovery
|
|
178
|
+
semantics are not enabled by this option.
|
|
179
|
+
|
|
79
180
|
## Standard text workflows
|
|
80
181
|
|
|
81
182
|
The same generic helpers cover local function results, image content, and MCP
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
# Responses WebSocket workflows
|
|
2
|
+
|
|
3
|
+
Requires `openai` 0.86.0 or later and the optional `async-websocket` gem:
|
|
4
|
+
|
|
5
|
+
```ruby
|
|
6
|
+
gem "openai", ">= 0.86.0"
|
|
7
|
+
gem "async-websocket"
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
Responses WebSocket mode connects to `/v1/responses`. It uses Responses events;
|
|
11
|
+
it is distinct from [Realtime sessions](realtime.md). See the
|
|
12
|
+
[platform guide](https://developers.openai.com/api/docs/guides/websocket-mode)
|
|
13
|
+
for the service contract.
|
|
14
|
+
|
|
15
|
+
## Run the examples
|
|
16
|
+
|
|
17
|
+
The [workflow example](examples/responses/websocket_workflows.rb) demonstrates
|
|
18
|
+
four patterns with one reader and no background worker threads. Keep
|
|
19
|
+
`OPENAI_API_KEY` in your environment. These commands make real API calls:
|
|
20
|
+
|
|
21
|
+
```sh
|
|
22
|
+
bundle exec ruby examples/responses/websocket_workflows.rb tools
|
|
23
|
+
bundle exec ruby examples/responses/websocket_workflows.rb multiplex
|
|
24
|
+
bundle exec ruby examples/responses/websocket_workflows.rb stored
|
|
25
|
+
bundle exec ruby examples/responses/websocket_workflows.rb stateless
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Set `OPENAI_RESPONSES_MODEL` to override `gpt-5.2` and
|
|
29
|
+
`OPENAI_RESPONSES_TIMEOUT` to change the 60-second overall deadline. The example
|
|
30
|
+
prints only a completion marker, not prompts, model output, or server errors.
|
|
31
|
+
The default workflow is `multiplex`. The `stored` workflow requires an account
|
|
32
|
+
that allows response storage; use `stateless` with `store=false`/ZDR.
|
|
33
|
+
|
|
34
|
+
## Connect, send, and receive
|
|
35
|
+
|
|
36
|
+
```ruby
|
|
37
|
+
client.responses.connect do |connection|
|
|
38
|
+
connection.response.create(model: "gpt-5.2", input: "Say hello.")
|
|
39
|
+
connection.each do |event|
|
|
40
|
+
case event.type.to_s
|
|
41
|
+
when "response.completed"
|
|
42
|
+
# Save event.response.id and handle event.response.output here.
|
|
43
|
+
break
|
|
44
|
+
when "response.failed", "response.incomplete", "error"
|
|
45
|
+
raise "Responses operation did not complete."
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Use the complete example for EOF detection: a connection ending before every
|
|
52
|
+
expected terminal event is not success. `connect` requires a block and closes
|
|
53
|
+
on block exit. Connection options belong in `connect`; model/input fields belong
|
|
54
|
+
in `connection.response.create`.
|
|
55
|
+
|
|
56
|
+
Known events are decoded into generated models on a best-effort basis. New
|
|
57
|
+
event types arrive as `OpenAI::Responses::UnknownServerEvent`. Preserve or handle
|
|
58
|
+
them explicitly where your application needs them. Do not assume every event
|
|
59
|
+
has a response, text delta, or lane ID.
|
|
60
|
+
|
|
61
|
+
## Sequential tool turns
|
|
62
|
+
|
|
63
|
+
The `tools` workflow forces a call to one known, harmless application function.
|
|
64
|
+
After the response completes, it checks the function name and sends its output
|
|
65
|
+
using the original `call_id`. The next create uses `previous_response_id` and
|
|
66
|
+
only the new `function_call_output` item. It does not resend the previous input
|
|
67
|
+
on the same connection.
|
|
68
|
+
|
|
69
|
+
Tool execution belongs to your application. Validate arguments against your
|
|
70
|
+
tool's contract and authorize effects before execution. Never execute generated
|
|
71
|
+
code or dispatch arbitrary method names from a tool event. The example uses a
|
|
72
|
+
fixed result and does not execute model-provided code.
|
|
73
|
+
|
|
74
|
+
## Multiplexing and continuation
|
|
75
|
+
|
|
76
|
+
`stream_id` routes events to a lane; `previous_response_id` selects conversation
|
|
77
|
+
history. They are independent. Reusing a lane without a previous response ID
|
|
78
|
+
starts a new response rather than continuing that lane's conversation.
|
|
79
|
+
|
|
80
|
+
The `multiplex` workflow writes two creates, then drains both lanes with one
|
|
81
|
+
reader. Events may interleave and the first terminal event does not finish the
|
|
82
|
+
whole operation. Keep a pending-lane set and retain each completed response ID.
|
|
83
|
+
Omitting `stream_id` uses the default lane; its events omit the field as well.
|
|
84
|
+
|
|
85
|
+
The example fails the whole operation on any error. Production applications can
|
|
86
|
+
route a lane-scoped error to just that lane, while treating a connection-scoped
|
|
87
|
+
error as affecting the connection. Track separate response IDs when multiple
|
|
88
|
+
requests are outstanding within a lane; a lane alone is not a request ID.
|
|
89
|
+
|
|
90
|
+
The server executes same-lane requests in FIFO order. The SDK does not enforce
|
|
91
|
+
lane grammar, schedule lanes, or manage a per-lane queue. Consult the platform
|
|
92
|
+
guide for the current concurrent-response and named-lane limits.
|
|
93
|
+
|
|
94
|
+
To fork, send an existing response ID on a different lane. With `store=false`,
|
|
95
|
+
wait for the fork's `response.in_progress` before advancing the source lane so
|
|
96
|
+
its parent remains available in the connection-local cache.
|
|
97
|
+
|
|
98
|
+
## Reconnect without replaying uncertain work
|
|
99
|
+
|
|
100
|
+
Both reconnect examples intentionally close a healthy connection **after** a
|
|
101
|
+
completed turn, then open another connection. They do not catch a failed write
|
|
102
|
+
and retry it.
|
|
103
|
+
|
|
104
|
+
- **Stored:** send only the new input plus the stored `previous_response_id`.
|
|
105
|
+
If the service cannot retrieve that response, the application must decide
|
|
106
|
+
whether to reconstruct context and start a new chain.
|
|
107
|
+
- **Stateless:** connection-local state is lost on reconnect. Retain the original
|
|
108
|
+
inputs and every output item, including reasoning and tool items. Request
|
|
109
|
+
`include: ["reasoning.encrypted_content"]` for reasoning-model replay. Send the
|
|
110
|
+
retained history plus new input, omitting `previous_response_id` on the new
|
|
111
|
+
connection. Do not reduce history to displayed assistant text.
|
|
112
|
+
|
|
113
|
+
Retained history can contain sensitive data. Apply your application's retention
|
|
114
|
+
policy; neither the SDK nor this example writes a recovery log. A full-context
|
|
115
|
+
replay starts a new chain and is not an exactly-once retry of a failed turn.
|
|
116
|
+
|
|
117
|
+
Connections have a finite service lifetime (currently up to 60 minutes). Plan
|
|
118
|
+
rotation and persistence at completed-turn boundaries. There is no automatic
|
|
119
|
+
reconnect, rollover, or replay in this SDK connection.
|
|
120
|
+
|
|
121
|
+
## Deadlines and shutdown
|
|
122
|
+
|
|
123
|
+
An SDK request timeout bounds connection negotiation, not an established
|
|
124
|
+
session's idle lifetime. The example wraps the complete workflow in an Async
|
|
125
|
+
deadline on the owning thread:
|
|
126
|
+
|
|
127
|
+
```ruby
|
|
128
|
+
require "async"
|
|
129
|
+
|
|
130
|
+
Sync do |task|
|
|
131
|
+
task.with_timeout(60) do
|
|
132
|
+
client.responses.connect do |connection|
|
|
133
|
+
# Send and read on this thread, inside the deadline.
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
end
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
Connections enforce one owning thread and one active reader. Do not call close
|
|
140
|
+
from another thread or nest `receive` inside an active `each`. The Async deadline
|
|
141
|
+
can interrupt an idle network read on the owning thread; the SDK then aborts and
|
|
142
|
+
cleans up the connection. A timeout inside a transport operation can surface as
|
|
143
|
+
`ResponsesConnectionError`, rather than `Async::TimeoutError`. Application code
|
|
144
|
+
that does CPU-bound work without yielding needs its own cancellation strategy.
|
|
145
|
+
|
|
146
|
+
Exiting the block normally performs a close. An exception or poisoned connection
|
|
147
|
+
causes an abort, avoiding a flush of uncertain buffered output. The peer may see
|
|
148
|
+
an abrupt disconnect. This is local shutdown, not a server-side cancellation
|
|
149
|
+
acknowledgment, and it does not guarantee that a response stopped executing.
|
|
150
|
+
|
|
151
|
+
## Error and compatibility boundaries
|
|
152
|
+
|
|
153
|
+
- `ResponsesSendError#outcome` is `:unknown`: the server may have accepted the
|
|
154
|
+
event. Stop using that connection; do not automatically resend it.
|
|
155
|
+
- A transport read failure poisons the connection. A server `error` event is
|
|
156
|
+
delivered as an event and does not by itself poison it.
|
|
157
|
+
- Malformed JSON raises `ResponsesProtocolError` without exposing the payload;
|
|
158
|
+
the connection permits later reads. Decide whether continuing is appropriate
|
|
159
|
+
for your application.
|
|
160
|
+
- Raw `send_event` supports generated client models or hashes, including
|
|
161
|
+
`response.steer`. There is no `connection.response.steer` convenience method.
|
|
162
|
+
- The platform documents `generate: false` warmup. It can be forwarded through
|
|
163
|
+
create's keyword rest even though 0.86.0 has no named generated `generate`
|
|
164
|
+
keyword. Follow the platform contract; do not send HTTP-only `stream` or
|
|
165
|
+
`background` flags just because generated models expose them.
|
|
166
|
+
- X.509 workload identity and provider runtimes are not supported by this
|
|
167
|
+
entry point. A nonempty `request_options.extra_query` or nonzero
|
|
168
|
+
`request_options.max_retries` is rejected. Supported workload identity has a
|
|
169
|
+
narrow pre-handshake 401 refresh; that is not live-session recovery.
|
|
170
|
+
- Large events are valid. Plan memory and application backpressure for your
|
|
171
|
+
workload without treating a fixed payload size as a protocol maximum.
|
|
172
|
+
|
|
173
|
+
## Offline verification
|
|
174
|
+
|
|
175
|
+
```sh
|
|
176
|
+
bundle exec ruby -Itest test/openai/responses_websocket/workflows_test.rb
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
The tests use real loopback WebSockets and synthetic data, exercise the default
|
|
180
|
+
Responses transport, and make no live API requests. They cover the four example
|
|
181
|
+
patterns, interleaved terminal events, fragmented text, premature EOF, failures,
|
|
182
|
+
idle-read deadlines, and a large event exceeding 32 MiB.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
module OpenAI
|
|
2
|
+
module Auth
|
|
3
|
+
module SubjectTokenProviders
|
|
4
|
+
class K8sServiceAccountTokenProvider
|
|
5
|
+
include OpenAI::Auth::SubjectTokenProvider
|
|
6
|
+
|
|
7
|
+
def initialize: (?token_path: String) -> void
|
|
8
|
+
|
|
9
|
+
def token_type: -> Symbol
|
|
10
|
+
|
|
11
|
+
def get_token: -> String
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
class AzureManagedIdentityTokenProvider
|
|
15
|
+
include OpenAI::Auth::SubjectTokenProvider
|
|
16
|
+
|
|
17
|
+
def initialize: (
|
|
18
|
+
?resource: String,
|
|
19
|
+
?object_id: String?,
|
|
20
|
+
?client_id: String?,
|
|
21
|
+
?msi_res_id: String?,
|
|
22
|
+
?api_version: String,
|
|
23
|
+
?timeout: Float
|
|
24
|
+
) -> void
|
|
25
|
+
|
|
26
|
+
def token_type: -> Symbol
|
|
27
|
+
|
|
28
|
+
def get_token: -> String
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
class GCPIDTokenProvider
|
|
32
|
+
include OpenAI::Auth::SubjectTokenProvider
|
|
33
|
+
|
|
34
|
+
def initialize: (?audience: String, ?timeout: Float) -> void
|
|
35
|
+
|
|
36
|
+
def token_type: -> Symbol
|
|
37
|
+
|
|
38
|
+
def get_token: -> String
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
data/sig/openai/errors.rbs
CHANGED
|
@@ -4,6 +4,9 @@ module OpenAI
|
|
|
4
4
|
attr_reader cause: StandardError?
|
|
5
5
|
end
|
|
6
6
|
|
|
7
|
+
class InvalidWebhookSignatureError < OpenAI::Errors::Error
|
|
8
|
+
end
|
|
9
|
+
|
|
7
10
|
class PollingError < OpenAI::Errors::Error
|
|
8
11
|
end
|
|
9
12
|
|
|
@@ -59,6 +62,9 @@ module OpenAI
|
|
|
59
62
|
end
|
|
60
63
|
|
|
61
64
|
class APIConnectionError < OpenAI::Errors::APIError
|
|
65
|
+
# @api private
|
|
66
|
+
def request_may_have_been_sent?: -> bool
|
|
67
|
+
|
|
62
68
|
def initialize: (
|
|
63
69
|
url: URI::Generic,
|
|
64
70
|
?status: nil,
|
|
@@ -66,7 +72,8 @@ module OpenAI
|
|
|
66
72
|
?body: nil,
|
|
67
73
|
?request: nil,
|
|
68
74
|
?response: nil,
|
|
69
|
-
?message: String
|
|
75
|
+
?message: String?,
|
|
76
|
+
?request_may_have_been_sent: bool
|
|
70
77
|
) -> void
|
|
71
78
|
end
|
|
72
79
|
|
|
@@ -78,7 +85,8 @@ module OpenAI
|
|
|
78
85
|
?body: nil,
|
|
79
86
|
?request: nil,
|
|
80
87
|
?response: nil,
|
|
81
|
-
?message: String
|
|
88
|
+
?message: String?,
|
|
89
|
+
?request_may_have_been_sent: bool
|
|
82
90
|
) -> void
|
|
83
91
|
end
|
|
84
92
|
|
|
@@ -135,5 +143,31 @@ module OpenAI
|
|
|
135
143
|
class InternalServerError < OpenAI::Errors::APIStatusError
|
|
136
144
|
HTTP_STATUS: Range[Integer]
|
|
137
145
|
end
|
|
146
|
+
|
|
147
|
+
class OAuthError < OpenAI::Errors::APIStatusError
|
|
148
|
+
def status: -> Integer
|
|
149
|
+
|
|
150
|
+
def status=: (Integer) -> Integer
|
|
151
|
+
|
|
152
|
+
attr_reader error_code: OpenAI::Models::oauth_error_code?
|
|
153
|
+
|
|
154
|
+
def initialize: (
|
|
155
|
+
status: Integer,
|
|
156
|
+
body: Object?,
|
|
157
|
+
headers: ::Hash[String, String]?
|
|
158
|
+
) -> void
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
class SubjectTokenProviderError < OpenAI::Errors::Error
|
|
162
|
+
attr_reader provider: String
|
|
163
|
+
|
|
164
|
+
attr_accessor cause: StandardError?
|
|
165
|
+
|
|
166
|
+
def initialize: (
|
|
167
|
+
message: String,
|
|
168
|
+
provider: String,
|
|
169
|
+
?cause: StandardError?
|
|
170
|
+
) -> void
|
|
171
|
+
end
|
|
138
172
|
end
|
|
139
173
|
end
|
data/sig/openai/file_part.rbs
CHANGED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
module OpenAI
|
|
2
|
+
module LocalAudio
|
|
3
|
+
def self.record: (
|
|
4
|
+
duration: Numeric,
|
|
5
|
+
?device: (String | Integer)?,
|
|
6
|
+
?timeout: Numeric?
|
|
7
|
+
) -> OpenAI::FilePart
|
|
8
|
+
def self.play: (
|
|
9
|
+
IO | StringIO | OpenAI::FilePart source,
|
|
10
|
+
?format: :auto | :pcm,
|
|
11
|
+
?timeout: Numeric?
|
|
12
|
+
) -> nil
|
|
13
|
+
|
|
14
|
+
# @api private
|
|
15
|
+
def self.playback_source: (
|
|
16
|
+
IO | StringIO | OpenAI::FilePart source
|
|
17
|
+
) -> (IO | StringIO)
|
|
18
|
+
|
|
19
|
+
# @api private
|
|
20
|
+
def self.capture_device: (
|
|
21
|
+
(String | Integer)? device,
|
|
22
|
+
?platform: String
|
|
23
|
+
) -> [String, String]
|
|
24
|
+
|
|
25
|
+
# @api private
|
|
26
|
+
def self.wav_header: (Integer bytes) -> String
|
|
27
|
+
|
|
28
|
+
# @api private
|
|
29
|
+
class MediaProcess
|
|
30
|
+
def self.environment: -> Hash[String, String]
|
|
31
|
+
def self.clock: -> Float
|
|
32
|
+
def self.duration: (Numeric value, name: String | Symbol) -> Float
|
|
33
|
+
def initialize: (
|
|
34
|
+
Array[String] argv,
|
|
35
|
+
input: IO | String,
|
|
36
|
+
output: IO | String,
|
|
37
|
+
timeout: Numeric?,
|
|
38
|
+
?capture_errors: bool
|
|
39
|
+
) -> void
|
|
40
|
+
def check_deadline: -> void
|
|
41
|
+
def errors?: -> bool
|
|
42
|
+
def read: (IO | StringIO io, ?stop_on_exit: bool) -> String?
|
|
43
|
+
def write: (IO io, String bytes) -> void
|
|
44
|
+
def wait: -> Process::Status
|
|
45
|
+
def close: -> void
|
|
46
|
+
end
|
|
47
|
+
class Error < OpenAI::Errors::Error
|
|
48
|
+
end
|
|
49
|
+
class DependencyError < OpenAI::LocalAudio::Error
|
|
50
|
+
end
|
|
51
|
+
class UnsupportedPlatformError < OpenAI::LocalAudio::Error
|
|
52
|
+
end
|
|
53
|
+
class DeviceError < OpenAI::LocalAudio::Error
|
|
54
|
+
end
|
|
55
|
+
class PlaybackError < OpenAI::LocalAudio::Error
|
|
56
|
+
end
|
|
57
|
+
class TimeoutError < OpenAI::LocalAudio::Error
|
|
58
|
+
end
|
|
59
|
+
class FormatError < OpenAI::LocalAudio::Error
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
@@ -19,7 +19,11 @@ module OpenAI
|
|
|
19
19
|
attr_reader input_audio_buffer: OpenAI::Realtime::ConnectionResources::InputAudioBuffer
|
|
20
20
|
|
|
21
21
|
# @api private
|
|
22
|
-
def initialize: (
|
|
22
|
+
def initialize: (
|
|
23
|
+
socket: untyped,
|
|
24
|
+
url: URI::Generic,
|
|
25
|
+
?recovery: untyped
|
|
26
|
+
) -> void
|
|
23
27
|
def each:
|
|
24
28
|
-> Enumerator[OpenAI::Models::Realtime::connection_server_event, self]
|
|
25
29
|
| {
|
|
@@ -39,6 +43,10 @@ module OpenAI
|
|
|
39
43
|
# @api private
|
|
40
44
|
def abort: -> nil
|
|
41
45
|
def closed?: -> bool
|
|
46
|
+
def reconnecting?: -> bool
|
|
47
|
+
def pending_messages: -> Array[String]
|
|
48
|
+
def take_pending_messages: -> Array[String]
|
|
49
|
+
def flush_pending: -> nil
|
|
42
50
|
end
|
|
43
51
|
end
|
|
44
52
|
end
|
|
@@ -23,7 +23,7 @@ module OpenAI
|
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
module Errors
|
|
26
|
-
class RealtimeConnectionError < OpenAI::Errors::
|
|
26
|
+
class RealtimeConnectionError < OpenAI::Errors::WebSocketConnectionError
|
|
27
27
|
attr_reader url: URI::Generic
|
|
28
28
|
|
|
29
29
|
# @api private
|
|
@@ -39,7 +39,7 @@ module OpenAI
|
|
|
39
39
|
) -> void
|
|
40
40
|
end
|
|
41
41
|
|
|
42
|
-
class RealtimeProtocolError < OpenAI::Errors::
|
|
42
|
+
class RealtimeProtocolError < OpenAI::Errors::WebSocketProtocolError
|
|
43
43
|
attr_reader data: String
|
|
44
44
|
def cause: -> StandardError?
|
|
45
45
|
|
|
@@ -52,6 +52,10 @@ module OpenAI
|
|
|
52
52
|
class Realtime
|
|
53
53
|
def connect: (
|
|
54
54
|
model: String,
|
|
55
|
+
?reconnect: bool,
|
|
56
|
+
?max_reconnect_attempts: Integer,
|
|
57
|
+
?max_queue_bytes: Integer,
|
|
58
|
+
?on_reconnected: (^(OpenAI::Realtime::Connection) -> void)?,
|
|
55
59
|
?websocket_base_url: String?,
|
|
56
60
|
?request_options: OpenAI::request_opts?,
|
|
57
61
|
?transport: untyped?,
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module OpenAI
|
|
2
|
+
module Errors
|
|
3
|
+
class RealtimeQueueFullError < OpenAI::Errors::Error
|
|
4
|
+
def initialize: -> void
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
class RealtimeReconnectError < OpenAI::Errors::Error
|
|
8
|
+
attr_reader unsent_messages: Array[String]
|
|
9
|
+
attr_reader uncertain_message: String?
|
|
10
|
+
|
|
11
|
+
# @api private
|
|
12
|
+
def initialize: (
|
|
13
|
+
message: String,
|
|
14
|
+
?unsent_messages: Array[String],
|
|
15
|
+
?uncertain_message: String?
|
|
16
|
+
) -> void
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
module OpenAI
|
|
2
|
+
module Models
|
|
3
|
+
module Responses
|
|
4
|
+
type connection_server_event =
|
|
5
|
+
OpenAI::Models::Responses::responses_server_event
|
|
6
|
+
| OpenAI::Responses::UnknownServerEvent
|
|
7
|
+
|
|
8
|
+
type connection_client_event =
|
|
9
|
+
OpenAI::Models::Responses::responses_client_event
|
|
10
|
+
| ::Hash[Symbol | String, untyped]
|
|
11
|
+
|
|
12
|
+
class Connection
|
|
13
|
+
include Enumerable[OpenAI::Models::Responses::connection_server_event]
|
|
14
|
+
|
|
15
|
+
attr_reader url: URI::Generic
|
|
16
|
+
attr_reader response: OpenAI::Responses::ConnectionResources::Response
|
|
17
|
+
|
|
18
|
+
# @api private
|
|
19
|
+
def initialize: (socket: top, url: URI::Generic) -> void
|
|
20
|
+
def each:
|
|
21
|
+
-> Enumerator[OpenAI::Models::Responses::connection_server_event, self]
|
|
22
|
+
| {
|
|
23
|
+
(OpenAI::Models::Responses::connection_server_event event) -> void
|
|
24
|
+
} -> self
|
|
25
|
+
def receive: -> OpenAI::Models::Responses::connection_server_event?
|
|
26
|
+
|
|
27
|
+
# @api private
|
|
28
|
+
def receive_raw: -> String?
|
|
29
|
+
|
|
30
|
+
def send_event: (
|
|
31
|
+
OpenAI::Models::Responses::connection_client_event event
|
|
32
|
+
) -> nil
|
|
33
|
+
|
|
34
|
+
# @api private
|
|
35
|
+
def send_raw: (String data) -> nil
|
|
36
|
+
|
|
37
|
+
def close: (?code: Integer, ?reason: String) -> nil
|
|
38
|
+
|
|
39
|
+
# @api private
|
|
40
|
+
def abort: -> nil
|
|
41
|
+
def closed?: -> bool
|
|
42
|
+
|
|
43
|
+
# @api private
|
|
44
|
+
def poisoned?: -> bool
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module OpenAI
|
|
2
|
+
module Models
|
|
3
|
+
module Responses
|
|
4
|
+
class ConnectionManager
|
|
5
|
+
# @api private
|
|
6
|
+
def initialize: (
|
|
7
|
+
client: OpenAI::Client,
|
|
8
|
+
websocket_base_url: String?,
|
|
9
|
+
transport: top,
|
|
10
|
+
request_options: OpenAI::request_opts?,
|
|
11
|
+
transport_options: ::Hash[Symbol, top]
|
|
12
|
+
) -> void
|
|
13
|
+
|
|
14
|
+
# @api private
|
|
15
|
+
def open: { (OpenAI::Responses::Connection connection) -> top } -> top
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
module OpenAI
|
|
2
|
+
class Client
|
|
3
|
+
# @api private
|
|
4
|
+
def with_responses_websocket_connection_request: (
|
|
5
|
+
?websocket_base_url: String?,
|
|
6
|
+
?options: OpenAI::request_opts?
|
|
7
|
+
) {
|
|
8
|
+
(
|
|
9
|
+
OpenAI::Internal::Transport::BaseClient::request_input request,
|
|
10
|
+
^-> void mark_handshake_completed
|
|
11
|
+
) -> top
|
|
12
|
+
} -> top
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
module Errors
|
|
16
|
+
class ResponsesConnectionError < OpenAI::Errors::WebSocketConnectionError
|
|
17
|
+
attr_reader url: URI::Generic
|
|
18
|
+
attr_reader http_status: Integer?
|
|
19
|
+
def cause: -> Exception?
|
|
20
|
+
def initialize: (
|
|
21
|
+
url: URI::Generic,
|
|
22
|
+
?message: String?,
|
|
23
|
+
?http_status: Integer?
|
|
24
|
+
) -> void
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
class ResponsesProtocolError < OpenAI::Errors::WebSocketProtocolError
|
|
28
|
+
def cause: -> Exception?
|
|
29
|
+
def initialize: -> void
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
class ResponsesClientEventError < OpenAI::Errors::Error
|
|
33
|
+
def cause: -> Exception?
|
|
34
|
+
def initialize: -> void
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
class ResponsesSendError < ResponsesConnectionError
|
|
38
|
+
attr_reader outcome: Symbol
|
|
39
|
+
def initialize: (url: URI::Generic) -> void
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
module Resources
|
|
44
|
+
class Responses
|
|
45
|
+
def connect: (
|
|
46
|
+
?websocket_base_url: String?,
|
|
47
|
+
?request_options: OpenAI::request_opts?,
|
|
48
|
+
?transport: top?,
|
|
49
|
+
?transport_options: ::Hash[Symbol, top]
|
|
50
|
+
) {
|
|
51
|
+
(OpenAI::Responses::Connection connection) -> top
|
|
52
|
+
} -> top
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|