openai 0.85.0 → 0.86.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 +80 -0
- data/README.md +95 -13
- data/docs/architecture/security-model.md +28 -2
- 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/realtime/client_extension.rb +37 -121
- data/lib/openai/helpers/realtime/connection.rb +13 -90
- 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 +3 -27
- data/lib/openai/helpers/realtime/transports/async_websocket.rb +25 -368
- 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_responses_client_event.rb +10 -1
- data/lib/openai/models/beta/beta_responses_server_event.rb +1 -3
- data/lib/openai/models/beta/response_compact_params.rb +14 -12
- data/lib/openai/models/beta/response_create_params.rb +10 -1
- 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 +10 -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/responses_client_event.rb +10 -1
- data/lib/openai/models/responses/responses_server_event.rb +1 -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/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/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/realtime/extensions.rbi +3 -3
- 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_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 +64 -40
- data/rbi/openai/models/beta/beta_responses_server_event.rbi +82 -82
- data/rbi/openai/models/beta/response_compact_params.rbi +21 -18
- data/rbi/openai/models/beta/response_create_params.rbi +12 -0
- 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 +12 -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_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 +62 -38
- data/rbi/openai/models/responses/responses_server_event.rbi +213 -77
- 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 +7 -6
- data/rbi/openai/resources/containers/files/content.rbi +1 -1
- data/rbi/openai/resources/files.rbi +5 -1
- data/rbi/openai/resources/responses.rbi +152 -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/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/realtime/extensions.rbs +2 -2
- 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 +236 -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 +92 -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 +92 -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 +80 -74
- 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 +46 -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 +2 -2
- data/sig/openai/models/image_edit_params.rbs +26 -26
- data/sig/openai/models/image_edit_partial_image_event.rbs +2 -2
- data/sig/openai/models/image_gen_completed_event.rbs +2 -2
- data/sig/openai/models/image_gen_partial_image_event.rbs +2 -2
- data/sig/openai/models/image_generate_params.rbs +26 -26
- data/sig/openai/models/image_input_reference_param.rbs +2 -2
- data/sig/openai/models/images_response.rbs +14 -14
- 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 +166 -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 +46 -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 +46 -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 +80 -74
- 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 +42 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0e2fc3cef6cd029385cb528885096cbf0640df90c238752af2ef76186c578578
|
|
4
|
+
data.tar.gz: 5ab2eac3ec679b9d43a141ec43ef70b294ed09a5e4f72f9a3c272cd407cbe3dc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e80dd1fe954a867a454f08d6349689d71f731f1908add8fc5d48e25605a431202cd6f9366e0c30070ae5273195b37116e33a606f6a26de89957d23bea6dd855b
|
|
7
|
+
data.tar.gz: b87d683d9a0cbc8b59fcb6ddc31b9b1a1737455d7353bf7466736a375955018946f18ba753c79362f94fec9ef9b52f70dd90405cfd94d600e407aaf0b4d64ad5
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,85 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.86.0](https://github.com/openai/openai-ruby/compare/v0.85.0...v0.86.0) (2026-09-08)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* add Responses WebSocket mode ([#562](https://github.com/openai/openai-ruby/issues/562)) ([7c910a7](https://github.com/openai/openai-ruby/commit/7c910a78ae4418dc59e766edc2467c254b814a89))
|
|
9
|
+
* **api:** add cache diagnostics and fix optional RBS keys ([#604](https://github.com/openai/openai-ruby/issues/604)) ([4e4f7cd](https://github.com/openai/openai-ruby/commit/4e4f7cdda5b5e1c568badded52324af06c77378b))
|
|
10
|
+
* **api:** add service-account API key expiration fields ([#625](https://github.com/openai/openai-ruby/issues/625)) ([8d3f213](https://github.com/openai/openai-ruby/commit/8d3f213da707b11ddbd913a801925b00b3e2bcc9))
|
|
11
|
+
* **api:** correct function argument completion event fields (openapi-545) ([#622](https://github.com/openai/openai-ruby/issues/622)) ([06e2c91](https://github.com/openai/openai-ruby/commit/06e2c91dc349ba36d12ece05bf0b0cbf1ba0e220))
|
|
12
|
+
* **api:** recognize incomplete web search call status ([#590](https://github.com/openai/openai-ruby/issues/590)) ([1560da0](https://github.com/openai/openai-ruby/commit/1560da01073061cc0a0dadc853f7dbc6e688a4d4))
|
|
13
|
+
* **responses:** parse structured outputs on retrieval ([#532](https://github.com/openai/openai-ruby/issues/532)) ([41eb726](https://github.com/openai/openai-ruby/commit/41eb726b66fcb56f149553a9d681d8f1837b9b97))
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Bug Fixes
|
|
17
|
+
|
|
18
|
+
* accept documented RequestOptions extra query values ([#660](https://github.com/openai/openai-ruby/issues/660)) ([e168aa4](https://github.com/openai/openai-ruby/commit/e168aa47ee9ff81150a901c4eba1f236dea0dcf6))
|
|
19
|
+
* accept string Responses structured-output tags ([#617](https://github.com/openai/openai-ruby/issues/617)) ([4322e07](https://github.com/openai/openai-ruby/commit/4322e076e57b769d619175006307763e3c630cfb))
|
|
20
|
+
* **api:** expose metadata on binary responses ([#608](https://github.com/openai/openai-ruby/issues/608)) ([59e0643](https://github.com/openai/openai-ruby/commit/59e0643dbb37e95b4746b24b38c1489dd2867e33))
|
|
21
|
+
* avoid retrying ambiguous non-idempotent requests ([#650](https://github.com/openai/openai-ruby/issues/650)) ([4734cba](https://github.com/openai/openai-ruby/commit/4734cba47984a53e241e224acb7f465372b34598))
|
|
22
|
+
* avoid unused Responses stream snapshot copies ([#677](https://github.com/openai/openai-ruby/issues/677)) ([2996996](https://github.com/openai/openai-ruby/commit/2996996d8c68e96f5c8fb65da869a321988c5dc8))
|
|
23
|
+
* close proxy after WebSocket handshake failure ([#675](https://github.com/openai/openai-ruby/issues/675)) ([aeb4cf2](https://github.com/openai/openai-ruby/commit/aeb4cf2120d6eb7f204206dd5364951ad0495103)), closes [#669](https://github.com/openai/openai-ruby/issues/669)
|
|
24
|
+
* coerce Integer strings as decimal ([#667](https://github.com/openai/openai-ruby/issues/667)) ([82f8c62](https://github.com/openai/openai-ruby/commit/82f8c62f0a68236757d57cfe3fd4a501f41270f5))
|
|
25
|
+
* correct Responses stream RBS contract ([#654](https://github.com/openai/openai-ruby/issues/654)) ([0d32ba4](https://github.com/openai/openai-ruby/commit/0d32ba4c555c3ea2763dade0db6618e86de84f96))
|
|
26
|
+
* correct Responses text enumerator Sorbet type ([#637](https://github.com/openai/openai-ruby/issues/637)) ([49ccb69](https://github.com/openai/openai-ruby/commit/49ccb69cbe4fd0a738bbc03840b7bb117bb183f6))
|
|
27
|
+
* declare built-in workload identity providers ([#659](https://github.com/openai/openai-ruby/issues/659)) ([cfbbb98](https://github.com/openai/openai-ruby/commit/cfbbb98f2a87340442c9b8ccd267cd54dbd31fbc))
|
|
28
|
+
* declare Chat stream finish exception types ([#657](https://github.com/openai/openai-ruby/issues/657)) ([87fc522](https://github.com/openai/openai-ruby/commit/87fc522b00f51b1020f64bdcaa4e56573f43ab6a))
|
|
29
|
+
* declare webhook signature error types ([#642](https://github.com/openai/openai-ruby/issues/642)) ([5211472](https://github.com/openai/openai-ruby/commit/52114726f0bd8780f013e95cade266e3f95677c6))
|
|
30
|
+
* declare workload identity error types ([#658](https://github.com/openai/openai-ruby/issues/658)) ([e6afdeb](https://github.com/openai/openai-ruby/commit/e6afdeb10815f3b3cd5a3224abd5d55a3f2b1377))
|
|
31
|
+
* deserialize diarized transcriptions correctly ([#652](https://github.com/openai/openai-ruby/issues/652)) ([5be26ce](https://github.com/openai/openai-ruby/commit/5be26ce71fa5855e668068075215c454ec7eeab8))
|
|
32
|
+
* handle non-object OAuth error bodies ([#674](https://github.com/openai/openai-ruby/issues/674)) ([13aa3d6](https://github.com/openai/openai-ruby/commit/13aa3d65ee84d242407d8ad912b0f26e4c945fe8))
|
|
33
|
+
* handle quoted response charsets ([#613](https://github.com/openai/openai-ruby/issues/613)) ([91d0e86](https://github.com/openai/openai-ruby/commit/91d0e86ed995f54361b329d7641af9f20163f27d)), closes [#610](https://github.com/openai/openai-ruby/issues/610)
|
|
34
|
+
* honor custom idempotency headers for retries ([#673](https://github.com/openai/openai-ruby/issues/673)) ([5bd703a](https://github.com/openai/openai-ruby/commit/5bd703acb8b270d0ae37ea1a846dfada5f88b9fc)), closes [#671](https://github.com/openai/openai-ruby/issues/671)
|
|
35
|
+
* honor raw StringIO request cursors ([#621](https://github.com/openai/openai-ruby/issues/621)) ([8e6abfd](https://github.com/openai/openai-ruby/commit/8e6abfd57a33ae7c7360f496f8baf15e1cf74db4))
|
|
36
|
+
* isolate base URL queries between requests ([#619](https://github.com/openai/openai-ruby/issues/619)) ([347e659](https://github.com/openai/openai-ruby/commit/347e659404bd7a13de57604e325c4432c875ee60))
|
|
37
|
+
* isolate structured output field metadata ([#655](https://github.com/openai/openai-ruby/issues/655)) ([7f3cec8](https://github.com/openai/openai-ruby/commit/7f3cec8663175c9ac1be12368bcf1c3717ca2466))
|
|
38
|
+
* keep Realtime metadata out of nested payloads ([#653](https://github.com/openai/openai-ruby/issues/653)) ([d1fa0d3](https://github.com/openai/openai-ruby/commit/d1fa0d3026a47cd16c4c2dcd8d68e8d1ecb854db))
|
|
39
|
+
* match response charset parameters case-insensitively ([#629](https://github.com/openai/openai-ruby/issues/629)) ([821d9b3](https://github.com/openai/openai-ruby/commit/821d9b3f018040a3a946f714e120f009541c9743))
|
|
40
|
+
* match the multipart request content type case-insensitively ([#666](https://github.com/openai/openai-ruby/issues/666)) ([55ae013](https://github.com/openai/openai-ruby/commit/55ae0137740f05f30173e3dc73d546a500b29d2a))
|
|
41
|
+
* normalize Bedrock environment bearer tokens ([#601](https://github.com/openai/openai-ruby/issues/601)) ([131e977](https://github.com/openai/openai-ruby/commit/131e97745f0cca1b167a533b852141ceed480c96))
|
|
42
|
+
* normalize workload identity error headers ([#640](https://github.com/openai/openai-ruby/issues/640)) ([1cf3762](https://github.com/openai/openai-ruby/commit/1cf37629ab61b2cc9259dff52c143b08ebe6b70a))
|
|
43
|
+
* parse initial streamed tool arguments ([#593](https://github.com/openai/openai-ruby/issues/593)) ([f4e2ec9](https://github.com/openai/openai-ruby/commit/f4e2ec9069d0781e376447f9f840082f00e07b81))
|
|
44
|
+
* parse SSE field lines that carry no value ([#631](https://github.com/openai/openai-ruby/issues/631)) ([9109f3f](https://github.com/openai/openai-ruby/commit/9109f3f79f6db401e400ca8e4cac8586a9332760))
|
|
45
|
+
* parse SSE retry metadata as decimal ([#624](https://github.com/openai/openai-ruby/issues/624)) ([9135d15](https://github.com/openai/openai-ruby/commit/9135d15c272b9e6102f41dc5d0fa64ac1a5fc2ec))
|
|
46
|
+
* parse strict tools in later chat choices ([#633](https://github.com/openai/openai-ruby/issues/633)) ([b68ce90](https://github.com/openai/openai-ruby/commit/b68ce906106cdaa165cbb6ebdd5ec34b2cc7ba2b))
|
|
47
|
+
* populate nested API error metadata ([#639](https://github.com/openai/openai-ruby/issues/639)) ([8dba07c](https://github.com/openai/openai-ruby/commit/8dba07cda53195755ffbf15634c516e51701ba5a))
|
|
48
|
+
* preserve bare CR SSE line boundaries ([#676](https://github.com/openai/openai-ruby/issues/676)) ([98c5a53](https://github.com/openai/openai-ruby/commit/98c5a5333f5d82f25ec12e7b5a9f65ea78716a12)), closes [#670](https://github.com/openai/openai-ruby/issues/670)
|
|
49
|
+
* preserve chat stream moderation results ([#616](https://github.com/openai/openai-ruby/issues/616)) ([c2c729c](https://github.com/openai/openai-ruby/commit/c2c729ce407a526a91d5f1c0607ee190956e414d))
|
|
50
|
+
* preserve complete interleaved tool arguments ([#638](https://github.com/openai/openai-ruby/issues/638)) ([1f32200](https://github.com/openai/openai-ruby/commit/1f322009ccc529d03048fc1d4bee96401c58ee35))
|
|
51
|
+
* preserve documented file inputs on readback ([#662](https://github.com/openai/openai-ruby/issues/662)) ([0169713](https://github.com/openai/openai-ruby/commit/016971345676ade41c57fcee11b60f3adcefe652))
|
|
52
|
+
* preserve file semantics for pathless multipart IO ([#665](https://github.com/openai/openai-ruby/issues/665)) ([0fefbf6](https://github.com/openai/openai-ruby/commit/0fefbf68a804bdd080dfef9defe0ce45e18eaa6b))
|
|
53
|
+
* preserve hash-form type metadata ([#651](https://github.com/openai/openai-ruby/issues/651)) ([8de6a0f](https://github.com/openai/openai-ruby/commit/8de6a0fc26ba8649d6621689ce5c342799c0a786))
|
|
54
|
+
* preserve text logprobs in response streams ([#595](https://github.com/openai/openai-ruby/issues/595)) ([e8e2f39](https://github.com/openai/openai-ruby/commit/e8e2f392f6bd20d8b9ca84d8141b73be0e6b33d9))
|
|
55
|
+
* preserve unknown discriminated union values ([#645](https://github.com/openai/openai-ruby/issues/645)) ([1384aa0](https://github.com/openai/openai-ruby/commit/1384aa017af5fa98a515753e1d4a9ba0bac82d63))
|
|
56
|
+
* preserve UTF-8 SSE stream boundaries ([#623](https://github.com/openai/openai-ruby/issues/623)) ([6b9ee87](https://github.com/openai/openai-ruby/commit/6b9ee8729c3ac429cc93716e8b51bce603de3405))
|
|
57
|
+
* rank tied union variants by declaration order ([#628](https://github.com/openai/openai-ruby/issues/628)) ([5ae6f43](https://github.com/openai/openai-ruby/commit/5ae6f43f4260a1a68984afc649bdc44e68526324))
|
|
58
|
+
* redact malformed streamed JSON errors ([#643](https://github.com/openai/openai-ruby/issues/643)) ([5ab02f6](https://github.com/openai/openai-ruby/commit/5ab02f65fdcecdd007a48e7bde8679ce240c1a1c))
|
|
59
|
+
* respect StringIO cursor in FilePart serialization ([#592](https://github.com/openai/openai-ruby/issues/592)) ([4115a1e](https://github.com/openai/openai-ruby/commit/4115a1e03a3111cbc80be20eb902df81567b3c76))
|
|
60
|
+
* **responses:** expose stream resumption parameters ([#646](https://github.com/openai/openai-ruby/issues/646)) ([d93852f](https://github.com/openai/openai-ruby/commit/d93852f16db7307e3b0da1396b4d06ad4f74cfc2))
|
|
61
|
+
* restore conflict-free exported RBIs for Tapioca ([#679](https://github.com/openai/openai-ruby/issues/679)) ([c80a253](https://github.com/openai/openai-ruby/commit/c80a25396afbf143e68c4b11a8552ebbbb6bfc3b))
|
|
62
|
+
* retry only proven unsent requests ([#663](https://github.com/openai/openai-ruby/issues/663)) ([a63eda8](https://github.com/openai/openai-ruby/commit/a63eda8203aa023ef3a6917c18a2be80cb66e406))
|
|
63
|
+
* stream container file uploads as multipart ([#648](https://github.com/openai/openai-ruby/issues/648)) ([b3c523b](https://github.com/openai/openai-ruby/commit/b3c523b2566a6b760d0a1a952682bf6ca9a866d0))
|
|
64
|
+
* strip upload filenames without platform path rules ([#627](https://github.com/openai/openai-ruby/issues/627)) ([5f00613](https://github.com/openai/openai-ruby/commit/5f006135268ae38b81024f8c28de939c53598c90))
|
|
65
|
+
* suppress Responses WebSocket exception causes ([#644](https://github.com/openai/openai-ruby/issues/644)) ([1b16a83](https://github.com/openai/openai-ruby/commit/1b16a832d74df6742b256545a24915424deaa7dd))
|
|
66
|
+
* type chat completion streams for Sorbet ([#634](https://github.com/openai/openai-ruby/issues/634)) ([cca6a70](https://github.com/openai/openai-ruby/commit/cca6a7035e680fd85ea40bd728937e9c957bd81a))
|
|
67
|
+
* upload pathless IO streams instead of raising ([#630](https://github.com/openai/openai-ruby/issues/630)) ([950552f](https://github.com/openai/openai-ruby/commit/950552f470951ddf01bd1f55a1569b012b6b4fd0))
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
### Chores
|
|
71
|
+
|
|
72
|
+
* **api:** document throttling and model overload responses — SDK-235 ([#632](https://github.com/openai/openai-ruby/issues/632)) ([2b0483d](https://github.com/openai/openai-ruby/commit/2b0483d394289aa18b792bd7a5440977d8b7a7a1))
|
|
73
|
+
* **api:** Refresh SDK metadata ([#612](https://github.com/openai/openai-ruby/issues/612)) ([e93a4b5](https://github.com/openai/openai-ruby/commit/e93a4b54f9b64609b96c553ac7864d94dacc6cf1))
|
|
74
|
+
* **deps-dev:** bump the development-dependencies group with 7 updates ([#668](https://github.com/openai/openai-ruby/issues/668)) ([d9a2271](https://github.com/openai/openai-ruby/commit/d9a2271531acea12bc3b46293bb90159d3975d59))
|
|
75
|
+
* migrate to forked steady ([#605](https://github.com/openai/openai-ruby/issues/605)) ([5542f01](https://github.com/openai/openai-ruby/commit/5542f01a8395bc9349eae479396ba5158692385f))
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
### Documentation
|
|
79
|
+
|
|
80
|
+
* clarify dormant compatibility-check boundary ([#647](https://github.com/openai/openai-ruby/issues/647)) ([d6fa81c](https://github.com/openai/openai-ruby/commit/d6fa81ca012db991be4438f6f1b605a0ce12aa8e))
|
|
81
|
+
* clarify Realtime transcription event boundary ([#649](https://github.com/openai/openai-ruby/issues/649)) ([94a1d77](https://github.com/openai/openai-ruby/commit/94a1d77a23c990308d6262f3ce668af6206361f4))
|
|
82
|
+
|
|
3
83
|
## [0.85.0](https://github.com/openai/openai-ruby/compare/v0.84.0...v0.85.0) (2026-09-03)
|
|
4
84
|
|
|
5
85
|
|
data/README.md
CHANGED
|
@@ -15,7 +15,7 @@ To use this gem, install via Bundler by adding the following to your application
|
|
|
15
15
|
<!-- x-release-please-start-version -->
|
|
16
16
|
|
|
17
17
|
```ruby
|
|
18
|
-
gem "openai", "~> 0.
|
|
18
|
+
gem "openai", "~> 0.86.0"
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
<!-- x-release-please-end -->
|
|
@@ -81,6 +81,37 @@ sideband connection. See the [Realtime WebSocket guide](realtime.md) and the run
|
|
|
81
81
|
[text, transcription, voice, and sideband examples](examples/realtime/README.md)
|
|
82
82
|
for lifecycle, authentication, proxy, TLS, and custom transport details.
|
|
83
83
|
|
|
84
|
+
### Responses WebSockets
|
|
85
|
+
|
|
86
|
+
The Responses API also supports a persistent, block-scoped WebSocket for
|
|
87
|
+
sequential and multiplexed response creation. Add the optional
|
|
88
|
+
`async-websocket` gem, then send `response.create` events through
|
|
89
|
+
`client.responses.connect`:
|
|
90
|
+
|
|
91
|
+
```ruby
|
|
92
|
+
client.responses.connect do |connection|
|
|
93
|
+
connection.response.create(
|
|
94
|
+
model: "gpt-5.2",
|
|
95
|
+
input: "Say hello.",
|
|
96
|
+
stream_id: "turn_1"
|
|
97
|
+
)
|
|
98
|
+
|
|
99
|
+
connection.each do |event|
|
|
100
|
+
print(event.delta) if event.type == :"response.output_text.delta"
|
|
101
|
+
break if event.type == :"response.completed"
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
The connection is intentionally single-owner: callers serialize writes and
|
|
107
|
+
use one reader (`receive` or `each`). The SDK forwards response fields and
|
|
108
|
+
`stream_id` values without imposing additional client-side policy. Known
|
|
109
|
+
server events are decoded into generated models on a best-effort basis, while
|
|
110
|
+
newer event types remain observable as `UnknownServerEvent` values. The SDK
|
|
111
|
+
does not automatically reconnect or replay an ambiguous write. When the server
|
|
112
|
+
closes a connection, open a new connection and continue with
|
|
113
|
+
`previous_response_id` when the response was stored.
|
|
114
|
+
|
|
84
115
|
### Pagination
|
|
85
116
|
|
|
86
117
|
List methods in the OpenAI API are paginated.
|
|
@@ -213,7 +244,11 @@ The custom HTTP client owns connection pooling and lifecycle, must enforce
|
|
|
213
244
|
`request.timeout`, and should raise `OpenAI::Errors::APIConnectionError` or
|
|
214
245
|
`OpenAI::Errors::APITimeoutError` for retryable transport failures. Other
|
|
215
246
|
exceptions propagate without an SDK retry. The SDK does not close an injected
|
|
216
|
-
HTTP client.
|
|
247
|
+
HTTP client. Connection failures are treated as potentially post-send by
|
|
248
|
+
default, so non-idempotent requests are not retried automatically. When a
|
|
249
|
+
transport can prove that no request bytes were sent, it may raise either error
|
|
250
|
+
with `request_may_have_been_sent: false` to allow the SDK retry policy to
|
|
251
|
+
retry a replayable request safely.
|
|
217
252
|
|
|
218
253
|
The default `OpenAI::NetHTTPClient` implements this contract with pooled
|
|
219
254
|
`Net::HTTP` connections. It accepts an optional block for native connection
|
|
@@ -395,6 +430,10 @@ For secure, automated environments like cloud-managed Kubernetes, Azure, and GCP
|
|
|
395
430
|
|
|
396
431
|
`client_id` remains available as an optional parameter for token exchange setups that require an explicit OAuth client ID.
|
|
397
432
|
|
|
433
|
+
If `OPENAI_API_KEY` is already set in your environment, pass `api_key: nil`
|
|
434
|
+
to explicitly opt out of that ambient API key when constructing a workload
|
|
435
|
+
identity client.
|
|
436
|
+
|
|
398
437
|
### X.509 Workload Identity (Preview)
|
|
399
438
|
|
|
400
439
|
Organizations enrolled in the X.509 workload identity preview can exchange a
|
|
@@ -503,6 +542,7 @@ workload_identity = OpenAI::Auth::WorkloadIdentity.new(
|
|
|
503
542
|
)
|
|
504
543
|
|
|
505
544
|
client = OpenAI::Client.new(
|
|
545
|
+
api_key: nil,
|
|
506
546
|
workload_identity: workload_identity,
|
|
507
547
|
)
|
|
508
548
|
|
|
@@ -524,6 +564,7 @@ workload_identity = OpenAI::Auth::WorkloadIdentity.new(
|
|
|
524
564
|
)
|
|
525
565
|
|
|
526
566
|
client = OpenAI::Client.new(
|
|
567
|
+
api_key: nil,
|
|
527
568
|
workload_identity: workload_identity,
|
|
528
569
|
)
|
|
529
570
|
```
|
|
@@ -540,6 +581,7 @@ workload_identity = OpenAI::Auth::WorkloadIdentity.new(
|
|
|
540
581
|
)
|
|
541
582
|
|
|
542
583
|
client = OpenAI::Client.new(
|
|
584
|
+
api_key: nil,
|
|
543
585
|
workload_identity: workload_identity,
|
|
544
586
|
)
|
|
545
587
|
```
|
|
@@ -570,6 +612,7 @@ workload_identity = OpenAI::Auth::WorkloadIdentity.new(
|
|
|
570
612
|
)
|
|
571
613
|
|
|
572
614
|
client = OpenAI::Client.new(
|
|
615
|
+
api_key: nil,
|
|
573
616
|
workload_identity: workload_identity,
|
|
574
617
|
organization: ENV["OPENAI_ORG_ID"],
|
|
575
618
|
project: ENV["OPENAI_PROJECT_ID"]
|
|
@@ -605,9 +648,9 @@ post '/webhook' do
|
|
|
605
648
|
event = client.webhooks.unwrap(request_body, request.env)
|
|
606
649
|
|
|
607
650
|
case event.type
|
|
608
|
-
when 'response.completed'
|
|
651
|
+
when :'response.completed'
|
|
609
652
|
puts "Response completed: #{event.data}"
|
|
610
|
-
when 'response.failed'
|
|
653
|
+
when :'response.failed'
|
|
611
654
|
puts "Response failed: #{event.data}"
|
|
612
655
|
else
|
|
613
656
|
puts "Unhandled event type: #{event.type}"
|
|
@@ -711,6 +754,27 @@ response
|
|
|
711
754
|
end
|
|
712
755
|
```
|
|
713
756
|
|
|
757
|
+
For a stored or background response, pass the same structured-output model again
|
|
758
|
+
when retrieving it. The model is used locally to populate `content.parsed`; it is
|
|
759
|
+
not sent as a retrieval query parameter. A response that is still queued or in
|
|
760
|
+
progress can be retrieved the same way, but structured output is parsed only after
|
|
761
|
+
a later retrieval reports it completed when status is present. Compatible
|
|
762
|
+
statusless responses parse once their hinted output is syntactically complete JSON.
|
|
763
|
+
For structured function tools, pass the same model again with
|
|
764
|
+
`tools: [ToolArguments]`; matching retrieved function calls expose typed arguments
|
|
765
|
+
through `output.parsed`.
|
|
766
|
+
|
|
767
|
+
```ruby
|
|
768
|
+
pending = client.responses.create(
|
|
769
|
+
model: "gpt-5.2",
|
|
770
|
+
input: "Extract the event information.",
|
|
771
|
+
text: CalendarEvent,
|
|
772
|
+
background: true
|
|
773
|
+
)
|
|
774
|
+
|
|
775
|
+
response = client.responses.retrieve(pending.id, text: CalendarEvent)
|
|
776
|
+
```
|
|
777
|
+
|
|
714
778
|
</details>
|
|
715
779
|
|
|
716
780
|
See the [examples](https://github.com/openai/openai-ruby/tree/main/examples) directory for more usage examples for helper usage.
|
|
@@ -915,8 +979,9 @@ a supplied logger are isolated and never replace an API result or API error.
|
|
|
915
979
|
### Response metadata and request IDs
|
|
916
980
|
|
|
917
981
|
OpenAI recommends logging request IDs in production so requests can be traced
|
|
918
|
-
during troubleshooting. Top-level models
|
|
919
|
-
immutable HTTP response metadata through
|
|
982
|
+
during troubleshooting. Top-level models, pages, streams, and binary StringIO
|
|
983
|
+
values returned by the client expose immutable HTTP response metadata through
|
|
984
|
+
`last_response`:
|
|
920
985
|
|
|
921
986
|
```ruby
|
|
922
987
|
response = openai.responses.create(model: "gpt-5.2", input: "Say 'this is a test'.")
|
|
@@ -924,6 +989,10 @@ puts(response.last_response.status) # 200
|
|
|
924
989
|
puts(response.last_response.headers["x-request-id"]) # req_123
|
|
925
990
|
puts(response.last_response.request_id) # req_123
|
|
926
991
|
puts(response._request_id) # req_123
|
|
992
|
+
|
|
993
|
+
audio = openai.audio.speech.create(input: "Hello!", model: "tts-1", voice: "alloy")
|
|
994
|
+
puts(audio.last_response.headers["x-request-id"]) # req_456
|
|
995
|
+
puts(audio._request_id) # req_456
|
|
927
996
|
```
|
|
928
997
|
|
|
929
998
|
Header names and values are normalized to strings, header names are lowercase,
|
|
@@ -932,11 +1001,12 @@ HTTP response that opened the stream. Higher-level streaming helpers expose the
|
|
|
932
1001
|
same metadata as their underlying stream; models assembled from stream events
|
|
933
1002
|
do not.
|
|
934
1003
|
|
|
935
|
-
`last_response` and `_request_id` are only populated on top-level
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
1004
|
+
`last_response` and `_request_id` are only populated on top-level models,
|
|
1005
|
+
pages, streams, and direct binary `StringIO` responses returned by the client.
|
|
1006
|
+
They are `nil` on constructed or nested models, unavailable on primitive or
|
|
1007
|
+
union-backed plain-text fallbacks, and are not included in `to_h`, JSON, or
|
|
1008
|
+
YAML output. Endpoints returning `nil` have no object that can carry metadata.
|
|
1009
|
+
Unlike other properties that begin with an underscore, `_request_id` is public.
|
|
940
1010
|
|
|
941
1011
|
For failed HTTP requests, catch `OpenAI::Errors::APIStatusError` and use
|
|
942
1012
|
`request_id`:
|
|
@@ -957,7 +1027,15 @@ for more information.
|
|
|
957
1027
|
|
|
958
1028
|
Certain errors will be automatically retried 2 times by default, with a short exponential backoff.
|
|
959
1029
|
|
|
960
|
-
|
|
1030
|
+
Requests are automatically retried only when their bodies are replayable. For
|
|
1031
|
+
those requests, after transport execution begins, connection errors (for
|
|
1032
|
+
example, due to a network connectivity problem) and timeouts are retried by
|
|
1033
|
+
default only when the transport proves that no request bytes were sent, for
|
|
1034
|
+
idempotent HTTP methods, or for requests carrying a non-empty
|
|
1035
|
+
`Idempotency-Key` header. Failures before transport execution retain the
|
|
1036
|
+
configured retry behavior because no request has been dispatched.
|
|
1037
|
+
408 Request Timeout, 409 Conflict, 429 Rate Limit, and >=500 Internal errors
|
|
1038
|
+
are retried by default regardless of the HTTP method.
|
|
961
1039
|
|
|
962
1040
|
You can use the `max_retries` option to configure or disable this:
|
|
963
1041
|
|
|
@@ -1016,7 +1094,11 @@ openai.chat.completions.create(
|
|
|
1016
1094
|
|
|
1017
1095
|
On timeout, `OpenAI::Errors::APITimeoutError` is raised.
|
|
1018
1096
|
|
|
1019
|
-
|
|
1097
|
+
After transport execution begins, requests with replayable bodies that time out
|
|
1098
|
+
are retried by default only when the transport proves that no request bytes
|
|
1099
|
+
were sent, for idempotent HTTP methods, or for requests carrying a non-empty
|
|
1100
|
+
`Idempotency-Key` header. Timeouts before transport execution retain the
|
|
1101
|
+
configured retry behavior.
|
|
1020
1102
|
|
|
1021
1103
|
## Advanced concepts
|
|
1022
1104
|
|
|
@@ -126,8 +126,21 @@ Important boundaries:
|
|
|
126
126
|
- Authenticated Realtime handshakes are a transport boundary distinct from
|
|
127
127
|
event parsing. Bearer credentials, caller-selected WebSocket destinations,
|
|
128
128
|
TLS, proxy credentials, and traces must remain bound to their intended
|
|
129
|
-
origin and diagnostic audience
|
|
130
|
-
|
|
129
|
+
origin and diagnostic audience. Bearer credentials, including ephemeral
|
|
130
|
+
client secrets passed to client apps, authenticate the handshake before any
|
|
131
|
+
typed event is sent; post-handshake transcription `session.update` events
|
|
132
|
+
carry configuration rather than a client secret. The legacy generated
|
|
133
|
+
`TranscriptionSessionUpdatedEvent` model requires a `client_secret` even
|
|
134
|
+
though its own documentation says WebSocket updates omit it, but that model
|
|
135
|
+
is not in the helper's active server-event union: the parser treats its
|
|
136
|
+
`transcription_session.updated` discriminator as unknown, while current
|
|
137
|
+
transcription updates use `session.updated`
|
|
138
|
+
(`lib/openai/helpers/websocket/client_request.rb:89-113`,
|
|
139
|
+
`lib/openai/helpers/realtime/connection_resources.rb:25-31`,
|
|
140
|
+
`lib/openai/resources/realtime/client_secrets.rb:10-45`,
|
|
141
|
+
`lib/openai/models/realtime/transcription_session_updated_event.rb:13-49`,
|
|
142
|
+
`lib/openai/models/realtime/realtime_server_event.rb:192-199`,
|
|
143
|
+
`lib/openai/helpers/realtime/connection.rb:32-49`,
|
|
131
144
|
`lib/openai/helpers/realtime/transports/async_websocket.rb:185-224`,
|
|
132
145
|
`lib/openai/helpers/realtime/transports/async_websocket.rb:294-378`).
|
|
133
146
|
- Multipart upload serialization is a file-path and header-integrity boundary.
|
|
@@ -206,6 +219,19 @@ PR CI. A contributor who can modify those tracked files does not gain a new
|
|
|
206
219
|
privilege merely because CI executes them. Do not report that execution alone
|
|
207
220
|
as a security finding.
|
|
208
221
|
|
|
222
|
+
Dormant developer helpers are not security controls merely because their names
|
|
223
|
+
suggest compatibility or safety verification. At this revision,
|
|
224
|
+
`scripts/detect-breaking-changes` is not invoked by any tracked workflow or
|
|
225
|
+
tracked required job; when a contributor explicitly runs it, it replaces
|
|
226
|
+
selected tests with historical versions and invokes lint rather than runtime
|
|
227
|
+
assertions.
|
|
228
|
+
That can affect contributor confidence or release-quality review, but without a
|
|
229
|
+
privileged workflow invocation or an independent lower-trust path to a sensitive
|
|
230
|
+
sink, it is not a repository security boundary. Reassess this classification if
|
|
231
|
+
the helper becomes a required or privileged workflow control; otherwise treat
|
|
232
|
+
ordinary compatibility regressions as product/release-quality issues unless they
|
|
233
|
+
independently violate a runtime security invariant.
|
|
234
|
+
|
|
209
235
|
That rule does not suppress a real finding when independently mutable
|
|
210
236
|
lower-trust input crosses a parser/evaluator boundary, untrusted runtime/API/
|
|
211
237
|
network data reaches a sensitive sink, candidate code can reach sensitive
|
|
@@ -355,7 +355,7 @@ module OpenAI
|
|
|
355
355
|
OpenAI::Errors::OAuthError.new(
|
|
356
356
|
status: response.code.to_i,
|
|
357
357
|
body: body,
|
|
358
|
-
headers: response.
|
|
358
|
+
headers: response.each_header.to_h
|
|
359
359
|
)
|
|
360
360
|
)
|
|
361
361
|
in Net::HTTPSuccess
|
|
@@ -368,7 +368,7 @@ module OpenAI
|
|
|
368
368
|
OpenAI::Errors::APIError.new(
|
|
369
369
|
url: @token_exchange_url,
|
|
370
370
|
status: response.code.to_i,
|
|
371
|
-
headers: response.
|
|
371
|
+
headers: response.each_header.to_h,
|
|
372
372
|
body: body,
|
|
373
373
|
message: "Token exchange failed with status #{response.code}"
|
|
374
374
|
)
|
|
@@ -74,7 +74,13 @@ module OpenAI
|
|
|
74
74
|
|
|
75
75
|
raise_error(response, body)
|
|
76
76
|
rescue OpenAI::Errors::APIConnectionError => error
|
|
77
|
-
raise
|
|
77
|
+
raise(
|
|
78
|
+
error.class.new(
|
|
79
|
+
url: URI(TOKEN_URL),
|
|
80
|
+
request_may_have_been_sent: error.request_may_have_been_sent?
|
|
81
|
+
),
|
|
82
|
+
cause: nil
|
|
83
|
+
)
|
|
78
84
|
end
|
|
79
85
|
|
|
80
86
|
private def remaining_timeout(deadline)
|
|
@@ -116,21 +116,39 @@ module OpenAI
|
|
|
116
116
|
native_response
|
|
117
117
|
|
|
118
118
|
rescue OpenAI::Errors::APIConnectionError => error
|
|
119
|
-
raise
|
|
119
|
+
raise(
|
|
120
|
+
error.class.new(
|
|
121
|
+
url: sanitized_url(url),
|
|
122
|
+
request_may_have_been_sent: error.request_may_have_been_sent?
|
|
123
|
+
),
|
|
124
|
+
cause: nil
|
|
125
|
+
)
|
|
120
126
|
end
|
|
121
127
|
|
|
122
128
|
stream = Enumerator.new do |chunks|
|
|
123
129
|
response.body.each { |chunk| chunks << chunk }
|
|
124
130
|
|
|
125
131
|
rescue OpenAI::Errors::APIConnectionError => error
|
|
126
|
-
raise
|
|
132
|
+
raise(
|
|
133
|
+
error.class.new(
|
|
134
|
+
url: sanitized_url(url),
|
|
135
|
+
request_may_have_been_sent: error.request_may_have_been_sent?
|
|
136
|
+
),
|
|
137
|
+
cause: nil
|
|
138
|
+
)
|
|
127
139
|
end
|
|
128
140
|
|
|
129
141
|
body = OpenAI::Internal::Util.fused_enum(stream) do
|
|
130
142
|
OpenAI::Internal::Util.close_fused!(response.body)
|
|
131
143
|
|
|
132
144
|
rescue OpenAI::Errors::APIConnectionError => error
|
|
133
|
-
raise
|
|
145
|
+
raise(
|
|
146
|
+
error.class.new(
|
|
147
|
+
url: sanitized_url(url),
|
|
148
|
+
request_may_have_been_sent: error.request_may_have_been_sent?
|
|
149
|
+
),
|
|
150
|
+
cause: nil
|
|
151
|
+
)
|
|
134
152
|
end
|
|
135
153
|
|
|
136
154
|
OpenAI::HTTPClient::Response.new(status: response.status, headers: response.headers, body: body)
|
data/lib/openai/client.rb
CHANGED
|
@@ -399,14 +399,16 @@ module OpenAI
|
|
|
399
399
|
rescue OpenAI::Errors::APIError => error
|
|
400
400
|
status = error.status
|
|
401
401
|
connection_failure = error.is_a?(OpenAI::Errors::APIConnectionError)
|
|
402
|
-
|
|
402
|
+
retryable_connection_failure = connection_failure &&
|
|
403
|
+
false.equal?(error.request_may_have_been_sent?)
|
|
404
|
+
retryable_status = retryable_connection_failure ||
|
|
403
405
|
[408, 409, 429].include?(status) ||
|
|
404
406
|
(status.is_a?(Integer) && (500..599).cover?(status))
|
|
405
407
|
consumed_retries = attempts + previous_issuer_retries + retry_count
|
|
406
408
|
unless x509_transport?(@requester) &&
|
|
407
409
|
retryable_status &&
|
|
408
410
|
consumed_retries < request.fetch(:x509_request_context).fetch(:auth_max_retries) &&
|
|
409
|
-
(
|
|
411
|
+
(retryable_connection_failure || self.class.should_retry?(status, headers: error.headers || {}))
|
|
410
412
|
raise
|
|
411
413
|
end
|
|
412
414
|
|
data/lib/openai/errors.rb
CHANGED
|
@@ -141,6 +141,15 @@ module OpenAI
|
|
|
141
141
|
#
|
|
142
142
|
# @return [nil]
|
|
143
143
|
|
|
144
|
+
# Whether request bytes might have reached the peer before the transport
|
|
145
|
+
# failed. HTTP clients should only set this to `false` when they can
|
|
146
|
+
# prove that no request bytes were sent.
|
|
147
|
+
#
|
|
148
|
+
# @api private
|
|
149
|
+
#
|
|
150
|
+
# @return [Boolean]
|
|
151
|
+
def request_may_have_been_sent? = @request_may_have_been_sent
|
|
152
|
+
|
|
144
153
|
# @api private
|
|
145
154
|
#
|
|
146
155
|
# @param url [URI::Generic]
|
|
@@ -150,6 +159,7 @@ module OpenAI
|
|
|
150
159
|
# @param request [nil]
|
|
151
160
|
# @param response [nil]
|
|
152
161
|
# @param message [String, nil]
|
|
162
|
+
# @param request_may_have_been_sent [Boolean]
|
|
153
163
|
def initialize(
|
|
154
164
|
url:,
|
|
155
165
|
status: nil,
|
|
@@ -157,9 +167,11 @@ module OpenAI
|
|
|
157
167
|
body: nil,
|
|
158
168
|
request: nil,
|
|
159
169
|
response: nil,
|
|
160
|
-
message: "Connection error."
|
|
170
|
+
message: "Connection error.",
|
|
171
|
+
request_may_have_been_sent: true
|
|
161
172
|
)
|
|
162
|
-
|
|
173
|
+
@request_may_have_been_sent = request_may_have_been_sent
|
|
174
|
+
super(url:, status:, headers:, body:, request:, response:, message:)
|
|
163
175
|
end
|
|
164
176
|
end
|
|
165
177
|
|
|
@@ -173,6 +185,7 @@ module OpenAI
|
|
|
173
185
|
# @param request [nil]
|
|
174
186
|
# @param response [nil]
|
|
175
187
|
# @param message [String, nil]
|
|
188
|
+
# @param request_may_have_been_sent [Boolean]
|
|
176
189
|
def initialize(
|
|
177
190
|
url:,
|
|
178
191
|
status: nil,
|
|
@@ -180,7 +193,8 @@ module OpenAI
|
|
|
180
193
|
body: nil,
|
|
181
194
|
request: nil,
|
|
182
195
|
response: nil,
|
|
183
|
-
message: "Request timed out."
|
|
196
|
+
message: "Request timed out.",
|
|
197
|
+
request_may_have_been_sent: true
|
|
184
198
|
)
|
|
185
199
|
super
|
|
186
200
|
end
|
|
@@ -264,9 +278,9 @@ module OpenAI
|
|
|
264
278
|
safe_status_message(url: url, status: status, body: body)
|
|
265
279
|
end
|
|
266
280
|
|
|
267
|
-
@code = OpenAI::Internal::Type::Converter.coerce(String,
|
|
268
|
-
@param = OpenAI::Internal::Type::Converter.coerce(String,
|
|
269
|
-
@type = OpenAI::Internal::Type::Converter.coerce(String,
|
|
281
|
+
@code = OpenAI::Internal::Type::Converter.coerce(String, error_metadata(body, :code))
|
|
282
|
+
@param = OpenAI::Internal::Type::Converter.coerce(String, error_metadata(body, :param))
|
|
283
|
+
@type = OpenAI::Internal::Type::Converter.coerce(String, error_metadata(body, :type))
|
|
270
284
|
super(
|
|
271
285
|
url: url,
|
|
272
286
|
status: status,
|
|
@@ -278,6 +292,10 @@ module OpenAI
|
|
|
278
292
|
)
|
|
279
293
|
end
|
|
280
294
|
|
|
295
|
+
private def error_metadata(body, key)
|
|
296
|
+
OpenAI::Internal::Util.dig(body, key) { OpenAI::Internal::Util.dig(body, [:error, key]) }
|
|
297
|
+
end
|
|
298
|
+
|
|
281
299
|
private def safe_status_message(url:, status:, body:)
|
|
282
300
|
sensitive_description = %r{
|
|
283
301
|
https?:// |
|
|
@@ -536,10 +554,11 @@ module OpenAI
|
|
|
536
554
|
attr_reader :error_code
|
|
537
555
|
|
|
538
556
|
def initialize(status:, body:, headers:)
|
|
539
|
-
|
|
557
|
+
error = OpenAI::Internal::Util.dig(body, :error)
|
|
558
|
+
@error_code = OpenAI::Internal::Type::Converter.coerce(OpenAI::Models::OAuthErrorCode, error)
|
|
540
559
|
|
|
541
|
-
message = if
|
|
542
|
-
|
|
560
|
+
message = if (error_description = OpenAI::Internal::Util.dig(body, :error_description))
|
|
561
|
+
error_description
|
|
543
562
|
elsif @error_code
|
|
544
563
|
@error_code
|
|
545
564
|
else
|
data/lib/openai/file_part.rb
CHANGED
|
@@ -30,6 +30,14 @@ module OpenAI
|
|
|
30
30
|
}nx
|
|
31
31
|
private_constant :MEDIA_TYPE
|
|
32
32
|
|
|
33
|
+
# Directory separators recognized on any host, so an upload name is stripped
|
|
34
|
+
# the same way everywhere.
|
|
35
|
+
#
|
|
36
|
+
# @api private
|
|
37
|
+
# @type [Regexp]
|
|
38
|
+
SEPARATORS = %r{[/\\]}
|
|
39
|
+
private_constant :SEPARATORS
|
|
40
|
+
|
|
33
41
|
# Validate an effective media type before it is written to multipart headers.
|
|
34
42
|
#
|
|
35
43
|
# @api private
|
|
@@ -85,7 +93,7 @@ module OpenAI
|
|
|
85
93
|
in Pathname
|
|
86
94
|
content.read(binmode: true)
|
|
87
95
|
in StringIO
|
|
88
|
-
content.string
|
|
96
|
+
content.string.byteslice(content.pos..) || ""
|
|
89
97
|
in IO
|
|
90
98
|
content.read
|
|
91
99
|
in String
|
|
@@ -112,7 +120,7 @@ module OpenAI
|
|
|
112
120
|
@content_type = content_type
|
|
113
121
|
@filename = case [filename, (@content = content)]
|
|
114
122
|
in [String | Pathname, _]
|
|
115
|
-
|
|
123
|
+
strip_directories(filename)
|
|
116
124
|
in [nil, Pathname]
|
|
117
125
|
content.basename.to_path
|
|
118
126
|
in [nil, IO]
|
|
@@ -121,5 +129,30 @@ module OpenAI
|
|
|
121
129
|
filename
|
|
122
130
|
end
|
|
123
131
|
end
|
|
132
|
+
|
|
133
|
+
# Strip directory components from a caller-supplied upload name.
|
|
134
|
+
#
|
|
135
|
+
# `::File.basename` applies the host platform's path rules, so on Windows it
|
|
136
|
+
# also truncates at a drive separator: the remote name `"report: final.md"`
|
|
137
|
+
# becomes `"report"`. This name is sent to the API rather than resolved
|
|
138
|
+
# locally, so drop separators directly and keep every other character, no
|
|
139
|
+
# matter which platform the SDK runs on.
|
|
140
|
+
#
|
|
141
|
+
# @api private
|
|
142
|
+
#
|
|
143
|
+
# @param filename [Pathname, String]
|
|
144
|
+
#
|
|
145
|
+
# @return [String]
|
|
146
|
+
private def strip_directories(filename)
|
|
147
|
+
name = filename.to_s
|
|
148
|
+
binary_name = name.b
|
|
149
|
+
raise ArgumentError, "path name contains null byte" if binary_name.include?("\0")
|
|
150
|
+
|
|
151
|
+
searchable_name = name.scrub { |bytes| "?" * bytes.bytesize }
|
|
152
|
+
basename = searchable_name.split(SEPARATORS).last
|
|
153
|
+
return name.byteslice(0, name.empty? ? 0 : 1) if basename.nil?
|
|
154
|
+
|
|
155
|
+
name.byteslice(searchable_name.byterindex(basename), basename.bytesize)
|
|
156
|
+
end
|
|
124
157
|
end
|
|
125
158
|
end
|