openai 0.86.0 → 0.88.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1248) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/README.md +10 -1
  4. data/examples/audio/record_and_play.rb +19 -0
  5. data/examples/responses/websocket_workflows.rb +159 -0
  6. data/lib/openai/helpers/local_audio/errors.rb +27 -0
  7. data/lib/openai/helpers/local_audio/process.rb +158 -0
  8. data/lib/openai/helpers/local_audio.rb +157 -0
  9. data/lib/openai/helpers/realtime/connection.rb +20 -2
  10. data/lib/openai/helpers/realtime/errors.rb +18 -0
  11. data/lib/openai/helpers/realtime/recovery.rb +489 -0
  12. data/lib/openai/helpers/realtime/resources/realtime_extension.rb +26 -1
  13. data/lib/openai/helpers/realtime.rb +1 -0
  14. data/lib/openai/models/admin/organization/admin_api_key.rb +26 -13
  15. data/lib/openai/models/admin/organization/admin_api_key_create_params.rb +3 -4
  16. data/lib/openai/models/admin/organization/admin_api_key_create_response.rb +16 -8
  17. data/lib/openai/models/admin/organization/admin_api_key_delete_params.rb +2 -1
  18. data/lib/openai/models/admin/organization/admin_api_key_list_params.rb +6 -3
  19. data/lib/openai/models/admin/organization/admin_api_key_retrieve_params.rb +2 -1
  20. data/lib/openai/models/admin/organization/audit_log_list_params.rb +47 -22
  21. data/lib/openai/models/admin/organization/audit_log_list_response.rb +486 -254
  22. data/lib/openai/models/admin/organization/certificate.rb +24 -11
  23. data/lib/openai/models/admin/organization/certificate_activate_response.rb +14 -7
  24. data/lib/openai/models/admin/organization/certificate_create_params.rb +4 -2
  25. data/lib/openai/models/admin/organization/certificate_deactivate_response.rb +14 -7
  26. data/lib/openai/models/admin/organization/certificate_delete_response.rb +4 -2
  27. data/lib/openai/models/admin/organization/certificate_list_params.rb +11 -6
  28. data/lib/openai/models/admin/organization/certificate_list_response.rb +14 -7
  29. data/lib/openai/models/admin/organization/certificate_retrieve_params.rb +3 -5
  30. data/lib/openai/models/admin/organization/certificate_update_params.rb +2 -1
  31. data/lib/openai/models/admin/organization/data_retention_update_params.rb +2 -1
  32. data/lib/openai/models/admin/organization/group.rb +11 -8
  33. data/lib/openai/models/admin/organization/group_create_params.rb +2 -1
  34. data/lib/openai/models/admin/organization/group_delete_response.rb +6 -3
  35. data/lib/openai/models/admin/organization/group_list_params.rb +10 -6
  36. data/lib/openai/models/admin/organization/group_update_params.rb +2 -1
  37. data/lib/openai/models/admin/organization/group_update_response.rb +9 -7
  38. data/lib/openai/models/admin/organization/groups/organization_group_user.rb +6 -3
  39. data/lib/openai/models/admin/organization/groups/role_create_params.rb +2 -1
  40. data/lib/openai/models/admin/organization/groups/role_create_response.rb +16 -8
  41. data/lib/openai/models/admin/organization/groups/role_delete_response.rb +5 -6
  42. data/lib/openai/models/admin/organization/groups/role_list_params.rb +7 -6
  43. data/lib/openai/models/admin/organization/groups/role_list_response.rb +24 -13
  44. data/lib/openai/models/admin/organization/groups/role_retrieve_response.rb +24 -13
  45. data/lib/openai/models/admin/organization/groups/user_create_params.rb +2 -1
  46. data/lib/openai/models/admin/organization/groups/user_create_response.rb +6 -3
  47. data/lib/openai/models/admin/organization/groups/user_delete_response.rb +4 -2
  48. data/lib/openai/models/admin/organization/groups/user_list_params.rb +8 -6
  49. data/lib/openai/models/admin/organization/groups/user_retrieve_response.rb +12 -6
  50. data/lib/openai/models/admin/organization/invite.rb +22 -12
  51. data/lib/openai/models/admin/organization/invite_create_params.rb +13 -8
  52. data/lib/openai/models/admin/organization/invite_delete_response.rb +2 -1
  53. data/lib/openai/models/admin/organization/invite_list_params.rb +8 -5
  54. data/lib/openai/models/admin/organization/organization_data_retention.rb +4 -2
  55. data/lib/openai/models/admin/organization/organization_spend_alert.rb +18 -9
  56. data/lib/openai/models/admin/organization/organization_spend_alert_deleted.rb +6 -3
  57. data/lib/openai/models/admin/organization/organization_spend_limit.rb +13 -9
  58. data/lib/openai/models/admin/organization/organization_spend_limit_deleted.rb +4 -2
  59. data/lib/openai/models/admin/organization/organization_user.rb +32 -16
  60. data/lib/openai/models/admin/organization/project.rb +16 -8
  61. data/lib/openai/models/admin/organization/project_create_params.rb +18 -9
  62. data/lib/openai/models/admin/organization/project_list_params.rb +11 -6
  63. data/lib/openai/models/admin/organization/project_update_params.rb +7 -6
  64. data/lib/openai/models/admin/organization/projects/api_key_list_params.rb +14 -7
  65. data/lib/openai/models/admin/organization/projects/certificate_activate_response.rb +14 -7
  66. data/lib/openai/models/admin/organization/projects/certificate_deactivate_response.rb +14 -7
  67. data/lib/openai/models/admin/organization/projects/certificate_list_params.rb +11 -7
  68. data/lib/openai/models/admin/organization/projects/certificate_list_response.rb +14 -7
  69. data/lib/openai/models/admin/organization/projects/data_retention_update_params.rb +2 -1
  70. data/lib/openai/models/admin/organization/projects/group_create_params.rb +4 -2
  71. data/lib/openai/models/admin/organization/projects/group_delete_response.rb +4 -2
  72. data/lib/openai/models/admin/organization/projects/group_list_params.rb +7 -7
  73. data/lib/openai/models/admin/organization/projects/group_retrieve_params.rb +2 -1
  74. data/lib/openai/models/admin/organization/projects/groups/role_create_params.rb +2 -1
  75. data/lib/openai/models/admin/organization/projects/groups/role_create_response.rb +16 -8
  76. data/lib/openai/models/admin/organization/projects/groups/role_delete_response.rb +5 -6
  77. data/lib/openai/models/admin/organization/projects/groups/role_list_params.rb +7 -7
  78. data/lib/openai/models/admin/organization/projects/groups/role_list_response.rb +24 -13
  79. data/lib/openai/models/admin/organization/projects/groups/role_retrieve_response.rb +24 -13
  80. data/lib/openai/models/admin/organization/projects/hosted_tool_permission_update_params.rb +20 -10
  81. data/lib/openai/models/admin/organization/projects/model_permission_update_params.rb +4 -2
  82. data/lib/openai/models/admin/organization/projects/project_api_key.rb +50 -20
  83. data/lib/openai/models/admin/organization/projects/project_data_retention.rb +4 -2
  84. data/lib/openai/models/admin/organization/projects/project_group.rb +12 -6
  85. data/lib/openai/models/admin/organization/projects/project_hosted_tool_permissions.rb +20 -10
  86. data/lib/openai/models/admin/organization/projects/project_model_permissions.rb +6 -3
  87. data/lib/openai/models/admin/organization/projects/project_model_permissions_deleted.rb +4 -2
  88. data/lib/openai/models/admin/organization/projects/project_rate_limit.rb +18 -9
  89. data/lib/openai/models/admin/organization/projects/project_service_account.rb +10 -5
  90. data/lib/openai/models/admin/organization/projects/project_spend_alert.rb +18 -9
  91. data/lib/openai/models/admin/organization/projects/project_spend_alert_deleted.rb +6 -3
  92. data/lib/openai/models/admin/organization/projects/project_spend_limit.rb +13 -10
  93. data/lib/openai/models/admin/organization/projects/project_spend_limit_deleted.rb +4 -2
  94. data/lib/openai/models/admin/organization/projects/project_user.rb +12 -6
  95. data/lib/openai/models/admin/organization/projects/rate_limit_list_rate_limits_params.rb +12 -7
  96. data/lib/openai/models/admin/organization/projects/rate_limit_update_rate_limit_params.rb +12 -6
  97. data/lib/openai/models/admin/organization/projects/role_create_params.rb +6 -3
  98. data/lib/openai/models/admin/organization/projects/role_delete_response.rb +6 -3
  99. data/lib/openai/models/admin/organization/projects/role_list_params.rb +7 -7
  100. data/lib/openai/models/admin/organization/projects/role_update_params.rb +6 -3
  101. data/lib/openai/models/admin/organization/projects/service_account_create_params.rb +22 -3
  102. data/lib/openai/models/admin/organization/projects/service_account_create_response.rb +17 -7
  103. data/lib/openai/models/admin/organization/projects/service_account_list_params.rb +8 -6
  104. data/lib/openai/models/admin/organization/projects/service_account_update_params.rb +4 -2
  105. data/lib/openai/models/admin/organization/projects/service_accounts/api_key_create_params.rb +10 -5
  106. data/lib/openai/models/admin/organization/projects/service_accounts/api_key_create_response.rb +13 -10
  107. data/lib/openai/models/admin/organization/projects/spend_alert_create_params.rb +14 -7
  108. data/lib/openai/models/admin/organization/projects/spend_alert_list_params.rb +10 -8
  109. data/lib/openai/models/admin/organization/projects/spend_alert_update_params.rb +14 -7
  110. data/lib/openai/models/admin/organization/projects/spend_limit_update_params.rb +7 -7
  111. data/lib/openai/models/admin/organization/projects/user_create_params.rb +6 -3
  112. data/lib/openai/models/admin/organization/projects/user_list_params.rb +8 -6
  113. data/lib/openai/models/admin/organization/projects/user_update_params.rb +2 -1
  114. data/lib/openai/models/admin/organization/projects/users/role_create_params.rb +2 -1
  115. data/lib/openai/models/admin/organization/projects/users/role_create_response.rb +6 -3
  116. data/lib/openai/models/admin/organization/projects/users/role_delete_response.rb +5 -6
  117. data/lib/openai/models/admin/organization/projects/users/role_list_params.rb +7 -7
  118. data/lib/openai/models/admin/organization/projects/users/role_list_response.rb +24 -13
  119. data/lib/openai/models/admin/organization/projects/users/role_retrieve_response.rb +24 -13
  120. data/lib/openai/models/admin/organization/role.rb +15 -10
  121. data/lib/openai/models/admin/organization/role_create_params.rb +6 -3
  122. data/lib/openai/models/admin/organization/role_delete_response.rb +6 -3
  123. data/lib/openai/models/admin/organization/role_list_params.rb +7 -6
  124. data/lib/openai/models/admin/organization/role_update_params.rb +6 -3
  125. data/lib/openai/models/admin/organization/spend_alert_create_params.rb +14 -7
  126. data/lib/openai/models/admin/organization/spend_alert_list_params.rb +10 -7
  127. data/lib/openai/models/admin/organization/spend_alert_update_params.rb +14 -7
  128. data/lib/openai/models/admin/organization/spend_limit_update_params.rb +7 -6
  129. data/lib/openai/models/admin/organization/usage_audio_speeches_params.rb +26 -13
  130. data/lib/openai/models/admin/organization/usage_audio_speeches_response.rb +205 -121
  131. data/lib/openai/models/admin/organization/usage_audio_transcriptions_params.rb +26 -13
  132. data/lib/openai/models/admin/organization/usage_audio_transcriptions_response.rb +205 -121
  133. data/lib/openai/models/admin/organization/usage_code_interpreter_sessions_params.rb +20 -10
  134. data/lib/openai/models/admin/organization/usage_code_interpreter_sessions_response.rb +205 -121
  135. data/lib/openai/models/admin/organization/usage_completions_params.rb +30 -13
  136. data/lib/openai/models/admin/organization/usage_completions_response.rb +205 -121
  137. data/lib/openai/models/admin/organization/usage_costs_params.rb +23 -12
  138. data/lib/openai/models/admin/organization/usage_costs_response.rb +205 -121
  139. data/lib/openai/models/admin/organization/usage_embeddings_params.rb +26 -12
  140. data/lib/openai/models/admin/organization/usage_embeddings_response.rb +205 -121
  141. data/lib/openai/models/admin/organization/usage_file_search_calls_params.rb +27 -13
  142. data/lib/openai/models/admin/organization/usage_file_search_calls_response.rb +205 -121
  143. data/lib/openai/models/admin/organization/usage_images_params.rb +33 -14
  144. data/lib/openai/models/admin/organization/usage_images_response.rb +205 -121
  145. data/lib/openai/models/admin/organization/usage_moderations_params.rb +26 -12
  146. data/lib/openai/models/admin/organization/usage_moderations_response.rb +205 -121
  147. data/lib/openai/models/admin/organization/usage_vector_stores_params.rb +20 -9
  148. data/lib/openai/models/admin/organization/usage_vector_stores_response.rb +205 -121
  149. data/lib/openai/models/admin/organization/usage_web_search_calls_params.rb +29 -14
  150. data/lib/openai/models/admin/organization/usage_web_search_calls_response.rb +205 -121
  151. data/lib/openai/models/admin/organization/user_list_params.rb +10 -6
  152. data/lib/openai/models/admin/organization/user_update_params.rb +8 -4
  153. data/lib/openai/models/admin/organization/users/role_create_params.rb +2 -1
  154. data/lib/openai/models/admin/organization/users/role_create_response.rb +6 -3
  155. data/lib/openai/models/admin/organization/users/role_delete_response.rb +5 -6
  156. data/lib/openai/models/admin/organization/users/role_list_params.rb +7 -6
  157. data/lib/openai/models/admin/organization/users/role_list_response.rb +24 -13
  158. data/lib/openai/models/admin/organization/users/role_retrieve_response.rb +24 -13
  159. data/lib/openai/models/audio/speech_create_params.rb +34 -16
  160. data/lib/openai/models/audio/transcription.rb +35 -20
  161. data/lib/openai/models/audio/transcription_create_params.rb +86 -24
  162. data/lib/openai/models/audio/transcription_diarized.rb +28 -14
  163. data/lib/openai/models/audio/transcription_diarized_segment.rb +14 -9
  164. data/lib/openai/models/audio/transcription_language.rb +2 -1
  165. data/lib/openai/models/audio/transcription_segment.rb +23 -13
  166. data/lib/openai/models/audio/transcription_stream_event.rb +4 -4
  167. data/lib/openai/models/audio/transcription_text_delta_event.rb +19 -16
  168. data/lib/openai/models/audio/transcription_text_done_event.rb +36 -24
  169. data/lib/openai/models/audio/transcription_text_segment_event.rb +13 -7
  170. data/lib/openai/models/audio/transcription_verbose.rb +16 -8
  171. data/lib/openai/models/audio/transcription_word.rb +6 -3
  172. data/lib/openai/models/audio/translation_create_params.rb +26 -8
  173. data/lib/openai/models/audio/translation_verbose.rb +8 -4
  174. data/lib/openai/models/auto_file_chunking_strategy_param.rb +2 -1
  175. data/lib/openai/models/batch.rb +55 -26
  176. data/lib/openai/models/batch_create_params.rb +40 -14
  177. data/lib/openai/models/batch_error.rb +8 -4
  178. data/lib/openai/models/batch_list_params.rb +8 -5
  179. data/lib/openai/models/batch_request_counts.rb +6 -3
  180. data/lib/openai/models/batch_usage.rb +16 -11
  181. data/lib/openai/models/beta/assistant.rb +99 -49
  182. data/lib/openai/models/beta/assistant_create_params.rb +127 -61
  183. data/lib/openai/models/beta/assistant_list_params.rb +16 -7
  184. data/lib/openai/models/beta/assistant_response_format_option.rb +5 -5
  185. data/lib/openai/models/beta/assistant_stream_event.rb +137 -185
  186. data/lib/openai/models/beta/assistant_tool_choice.rb +2 -1
  187. data/lib/openai/models/beta/assistant_tool_choice_function.rb +2 -1
  188. data/lib/openai/models/beta/assistant_update_params.rb +94 -41
  189. data/lib/openai/models/beta/beta_apply_patch_tool.rb +4 -3
  190. data/lib/openai/models/beta/beta_compacted_response.rb +12 -8
  191. data/lib/openai/models/beta/beta_computer_action.rb +78 -58
  192. data/lib/openai/models/beta/beta_computer_tool.rb +3 -2
  193. data/lib/openai/models/beta/beta_computer_use_preview_tool.rb +9 -5
  194. data/lib/openai/models/beta/beta_container_auto.rb +10 -5
  195. data/lib/openai/models/beta/beta_container_network_policy_allowlist.rb +6 -3
  196. data/lib/openai/models/beta/beta_container_network_policy_disabled.rb +2 -1
  197. data/lib/openai/models/beta/beta_container_network_policy_domain_secret.rb +6 -3
  198. data/lib/openai/models/beta/beta_container_reference.rb +4 -2
  199. data/lib/openai/models/beta/beta_custom_tool.rb +24 -16
  200. data/lib/openai/models/beta/beta_easy_input_message.rb +13 -7
  201. data/lib/openai/models/beta/beta_file_search_tool.rb +64 -37
  202. data/lib/openai/models/beta/beta_function_shell_tool.rb +4 -3
  203. data/lib/openai/models/beta/beta_function_tool.rb +19 -13
  204. data/lib/openai/models/beta/beta_inline_skill.rb +8 -4
  205. data/lib/openai/models/beta/beta_inline_skill_source.rb +6 -3
  206. data/lib/openai/models/beta/beta_local_environment.rb +4 -2
  207. data/lib/openai/models/beta/beta_local_skill.rb +6 -3
  208. data/lib/openai/models/beta/beta_namespace_tool.rb +23 -13
  209. data/lib/openai/models/beta/beta_response.rb +372 -165
  210. data/lib/openai/models/beta/beta_response_apply_patch_tool_call.rb +38 -21
  211. data/lib/openai/models/beta/beta_response_apply_patch_tool_call_output.rb +21 -13
  212. data/lib/openai/models/beta/beta_response_audio_delta_event.rb +10 -8
  213. data/lib/openai/models/beta/beta_response_audio_done_event.rb +8 -7
  214. data/lib/openai/models/beta/beta_response_audio_transcript_delta_event.rb +10 -8
  215. data/lib/openai/models/beta/beta_response_audio_transcript_done_event.rb +8 -7
  216. data/lib/openai/models/beta/beta_response_code_interpreter_call_code_delta_event.rb +15 -11
  217. data/lib/openai/models/beta/beta_response_code_interpreter_call_code_done_event.rb +14 -7
  218. data/lib/openai/models/beta/beta_response_code_interpreter_call_completed_event.rb +13 -10
  219. data/lib/openai/models/beta/beta_response_code_interpreter_call_in_progress_event.rb +13 -10
  220. data/lib/openai/models/beta/beta_response_code_interpreter_call_interpreting_event.rb +13 -10
  221. data/lib/openai/models/beta/beta_response_code_interpreter_tool_call.rb +26 -15
  222. data/lib/openai/models/beta/beta_response_compaction_item.rb +13 -7
  223. data/lib/openai/models/beta/beta_response_compaction_item_param.rb +11 -6
  224. data/lib/openai/models/beta/beta_response_completed_event.rb +10 -8
  225. data/lib/openai/models/beta/beta_response_computer_tool_call.rb +27 -17
  226. data/lib/openai/models/beta/beta_response_computer_tool_call_output_item.rb +26 -15
  227. data/lib/openai/models/beta/beta_response_computer_tool_call_output_screenshot.rb +7 -7
  228. data/lib/openai/models/beta/beta_response_configuration_update_item.rb +13 -10
  229. data/lib/openai/models/beta/beta_response_configuration_update_item_param.rb +13 -10
  230. data/lib/openai/models/beta/beta_response_container_reference.rb +2 -1
  231. data/lib/openai/models/beta/beta_response_content.rb +5 -3
  232. data/lib/openai/models/beta/beta_response_content_part_added_event.rb +20 -13
  233. data/lib/openai/models/beta/beta_response_content_part_done_event.rb +20 -13
  234. data/lib/openai/models/beta/beta_response_conversation_param.rb +2 -1
  235. data/lib/openai/models/beta/beta_response_created_event.rb +10 -8
  236. data/lib/openai/models/beta/beta_response_custom_tool_call.rb +22 -14
  237. data/lib/openai/models/beta/beta_response_custom_tool_call_input_delta_event.rb +14 -7
  238. data/lib/openai/models/beta/beta_response_custom_tool_call_input_done_event.rb +14 -7
  239. data/lib/openai/models/beta/beta_response_custom_tool_call_item.rb +23 -14
  240. data/lib/openai/models/beta/beta_response_custom_tool_call_output.rb +22 -14
  241. data/lib/openai/models/beta/beta_response_custom_tool_call_output_item.rb +18 -11
  242. data/lib/openai/models/beta/beta_response_error.rb +12 -9
  243. data/lib/openai/models/beta/beta_response_error_event.rb +14 -10
  244. data/lib/openai/models/beta/beta_response_failed_event.rb +10 -8
  245. data/lib/openai/models/beta/beta_response_file_search_call_completed_event.rb +12 -10
  246. data/lib/openai/models/beta/beta_response_file_search_call_in_progress_event.rb +12 -10
  247. data/lib/openai/models/beta/beta_response_file_search_call_searching_event.rb +12 -10
  248. data/lib/openai/models/beta/beta_response_file_search_tool_call.rb +30 -20
  249. data/lib/openai/models/beta/beta_response_format_text_config.rb +6 -4
  250. data/lib/openai/models/beta/beta_response_format_text_json_schema_config.rb +19 -10
  251. data/lib/openai/models/beta/beta_response_function_call_arguments_delta_event.rb +14 -11
  252. data/lib/openai/models/beta/beta_response_function_call_arguments_done_event.rb +12 -6
  253. data/lib/openai/models/beta/beta_response_function_call_output_item.rb +1 -1
  254. data/lib/openai/models/beta/beta_response_function_shell_call_output_content.rb +12 -6
  255. data/lib/openai/models/beta/beta_response_function_shell_tool_call.rb +28 -16
  256. data/lib/openai/models/beta/beta_response_function_shell_tool_call_output.rb +40 -27
  257. data/lib/openai/models/beta/beta_response_function_tool_call.rb +26 -16
  258. data/lib/openai/models/beta/beta_response_function_tool_call_item.rb +24 -15
  259. data/lib/openai/models/beta/beta_response_function_tool_call_output_item.rb +31 -18
  260. data/lib/openai/models/beta/beta_response_function_web_search.rb +37 -39
  261. data/lib/openai/models/beta/beta_response_image_gen_call_completed_event.rb +12 -6
  262. data/lib/openai/models/beta/beta_response_image_gen_call_generating_event.rb +12 -6
  263. data/lib/openai/models/beta/beta_response_image_gen_call_in_progress_event.rb +12 -6
  264. data/lib/openai/models/beta/beta_response_image_gen_call_partial_image_event.rb +25 -16
  265. data/lib/openai/models/beta/beta_response_in_progress_event.rb +10 -8
  266. data/lib/openai/models/beta/beta_response_incomplete_event.rb +10 -8
  267. data/lib/openai/models/beta/beta_response_inject_created_event.rb +9 -7
  268. data/lib/openai/models/beta/beta_response_inject_event.rb +6 -3
  269. data/lib/openai/models/beta/beta_response_inject_failed_event.rb +17 -11
  270. data/lib/openai/models/beta/beta_response_input_audio.rb +6 -9
  271. data/lib/openai/models/beta/beta_response_input_content.rb +1 -1
  272. data/lib/openai/models/beta/beta_response_input_file.rb +22 -11
  273. data/lib/openai/models/beta/beta_response_input_file_content.rb +22 -11
  274. data/lib/openai/models/beta/beta_response_input_image.rb +17 -10
  275. data/lib/openai/models/beta/beta_response_input_image_content.rb +17 -10
  276. data/lib/openai/models/beta/beta_response_input_item.rb +560 -291
  277. data/lib/openai/models/beta/beta_response_input_message_item.rb +16 -10
  278. data/lib/openai/models/beta/beta_response_input_text.rb +10 -7
  279. data/lib/openai/models/beta/beta_response_input_text_content.rb +10 -7
  280. data/lib/openai/models/beta/beta_response_item.rb +316 -150
  281. data/lib/openai/models/beta/beta_response_local_environment.rb +2 -1
  282. data/lib/openai/models/beta/beta_response_mcp_call_arguments_delta_event.rb +15 -10
  283. data/lib/openai/models/beta/beta_response_mcp_call_arguments_done_event.rb +14 -10
  284. data/lib/openai/models/beta/beta_response_mcp_call_completed_event.rb +12 -6
  285. data/lib/openai/models/beta/beta_response_mcp_call_failed_event.rb +12 -6
  286. data/lib/openai/models/beta/beta_response_mcp_call_in_progress_event.rb +12 -6
  287. data/lib/openai/models/beta/beta_response_mcp_list_tools_completed_event.rb +12 -6
  288. data/lib/openai/models/beta/beta_response_mcp_list_tools_failed_event.rb +12 -6
  289. data/lib/openai/models/beta/beta_response_mcp_list_tools_in_progress_event.rb +12 -6
  290. data/lib/openai/models/beta/beta_response_output_audio.rb +6 -6
  291. data/lib/openai/models/beta/beta_response_output_item.rb +328 -155
  292. data/lib/openai/models/beta/beta_response_output_item_added_event.rb +15 -9
  293. data/lib/openai/models/beta/beta_response_output_item_done_event.rb +12 -9
  294. data/lib/openai/models/beta/beta_response_output_message.rb +20 -11
  295. data/lib/openai/models/beta/beta_response_output_refusal.rb +4 -2
  296. data/lib/openai/models/beta/beta_response_output_text.rb +42 -25
  297. data/lib/openai/models/beta/beta_response_output_text_annotation_added_event.rb +54 -31
  298. data/lib/openai/models/beta/beta_response_prompt.rb +10 -8
  299. data/lib/openai/models/beta/beta_response_queued_event.rb +10 -5
  300. data/lib/openai/models/beta/beta_response_reasoning_item.rb +33 -17
  301. data/lib/openai/models/beta/beta_response_reasoning_summary_part_added_event.rb +20 -14
  302. data/lib/openai/models/beta/beta_response_reasoning_summary_part_done_event.rb +23 -15
  303. data/lib/openai/models/beta/beta_response_reasoning_summary_text_delta_event.rb +16 -12
  304. data/lib/openai/models/beta/beta_response_reasoning_summary_text_done_event.rb +16 -12
  305. data/lib/openai/models/beta/beta_response_reasoning_text_delta_event.rb +16 -11
  306. data/lib/openai/models/beta/beta_response_reasoning_text_done_event.rb +16 -11
  307. data/lib/openai/models/beta/beta_response_refusal_delta_event.rb +16 -11
  308. data/lib/openai/models/beta/beta_response_refusal_done_event.rb +16 -11
  309. data/lib/openai/models/beta/beta_response_shell_call_command_added_event.rb +14 -7
  310. data/lib/openai/models/beta/beta_response_shell_call_command_delta_event.rb +16 -8
  311. data/lib/openai/models/beta/beta_response_shell_call_command_done_event.rb +14 -7
  312. data/lib/openai/models/beta/beta_response_shell_call_output_content_delta_event.rb +20 -10
  313. data/lib/openai/models/beta/beta_response_shell_call_output_content_done_event.rb +31 -20
  314. data/lib/openai/models/beta/beta_response_steer_accepted_event.rb +13 -9
  315. data/lib/openai/models/beta/beta_response_steer_event.rb +14 -6
  316. data/lib/openai/models/beta/beta_response_steer_failed_event.rb +45 -22
  317. data/lib/openai/models/beta/beta_response_steer_input.rb +42 -24
  318. data/lib/openai/models/beta/beta_response_steer_input_content.rb +1 -1
  319. data/lib/openai/models/beta/beta_response_steer_pending_event.rb +24 -11
  320. data/lib/openai/models/beta/beta_response_text_config.rb +22 -8
  321. data/lib/openai/models/beta/beta_response_text_delta_event.rb +28 -22
  322. data/lib/openai/models/beta/beta_response_text_done_event.rb +28 -22
  323. data/lib/openai/models/beta/beta_response_tool_search_call.rb +18 -9
  324. data/lib/openai/models/beta/beta_response_tool_search_output_item.rb +18 -9
  325. data/lib/openai/models/beta/beta_response_tool_search_output_item_param.rb +16 -8
  326. data/lib/openai/models/beta/beta_response_usage.rb +18 -12
  327. data/lib/openai/models/beta/beta_response_web_search_call_completed_event.rb +12 -10
  328. data/lib/openai/models/beta/beta_response_web_search_call_in_progress_event.rb +12 -10
  329. data/lib/openai/models/beta/beta_response_web_search_call_searching_event.rb +12 -10
  330. data/lib/openai/models/beta/beta_responses_client_event.rb +401 -162
  331. data/lib/openai/models/beta/beta_responses_server_event.rb +862 -629
  332. data/lib/openai/models/beta/beta_skill_reference.rb +6 -3
  333. data/lib/openai/models/beta/beta_tool.rb +236 -129
  334. data/lib/openai/models/beta/beta_tool_choice_allowed.rb +21 -6
  335. data/lib/openai/models/beta/beta_tool_choice_apply_patch.rb +2 -1
  336. data/lib/openai/models/beta/beta_tool_choice_custom.rb +4 -2
  337. data/lib/openai/models/beta/beta_tool_choice_function.rb +4 -2
  338. data/lib/openai/models/beta/beta_tool_choice_mcp.rb +6 -6
  339. data/lib/openai/models/beta/beta_tool_choice_shell.rb +2 -1
  340. data/lib/openai/models/beta/beta_tool_choice_types.rb +16 -7
  341. data/lib/openai/models/beta/beta_tool_search_tool.rb +8 -4
  342. data/lib/openai/models/beta/beta_web_search_preview_tool.rb +21 -15
  343. data/lib/openai/models/beta/beta_web_search_tool.rb +31 -21
  344. data/lib/openai/models/beta/chatkit/chat_session.rb +20 -10
  345. data/lib/openai/models/beta/chatkit/chat_session_automatic_thread_titling.rb +2 -1
  346. data/lib/openai/models/beta/chatkit/chat_session_chatkit_configuration.rb +6 -3
  347. data/lib/openai/models/beta/chatkit/chat_session_chatkit_configuration_param.rb +23 -21
  348. data/lib/openai/models/beta/chatkit/chat_session_expires_after_param.rb +4 -2
  349. data/lib/openai/models/beta/chatkit/chat_session_file_upload.rb +6 -3
  350. data/lib/openai/models/beta/chatkit/chat_session_history.rb +5 -5
  351. data/lib/openai/models/beta/chatkit/chat_session_rate_limits.rb +2 -1
  352. data/lib/openai/models/beta/chatkit/chat_session_rate_limits_param.rb +2 -1
  353. data/lib/openai/models/beta/chatkit/chat_session_workflow_param.rb +12 -9
  354. data/lib/openai/models/beta/chatkit/chatkit_attachment.rb +10 -5
  355. data/lib/openai/models/beta/chatkit/chatkit_response_output_text.rb +22 -11
  356. data/lib/openai/models/beta/chatkit/chatkit_thread.rb +23 -14
  357. data/lib/openai/models/beta/chatkit/chatkit_thread_assistant_message_item.rb +12 -6
  358. data/lib/openai/models/beta/chatkit/chatkit_thread_item_list.rb +65 -41
  359. data/lib/openai/models/beta/chatkit/chatkit_thread_user_message_item.rb +29 -18
  360. data/lib/openai/models/beta/chatkit/chatkit_widget_item.rb +12 -6
  361. data/lib/openai/models/beta/chatkit/session_create_params.rb +12 -8
  362. data/lib/openai/models/beta/chatkit/thread_delete_response.rb +6 -3
  363. data/lib/openai/models/beta/chatkit/thread_list_items_params.rb +10 -7
  364. data/lib/openai/models/beta/chatkit/thread_list_params.rb +13 -8
  365. data/lib/openai/models/beta/chatkit_workflow.rb +12 -9
  366. data/lib/openai/models/beta/code_interpreter_tool.rb +2 -1
  367. data/lib/openai/models/beta/file_search_tool.rb +29 -16
  368. data/lib/openai/models/beta/function_tool.rb +2 -1
  369. data/lib/openai/models/beta/message_stream_event.rb +32 -41
  370. data/lib/openai/models/beta/response_compact_params.rb +89 -46
  371. data/lib/openai/models/beta/response_create_params.rb +382 -149
  372. data/lib/openai/models/beta/response_retrieve_params.rb +12 -6
  373. data/lib/openai/models/beta/responses/beta_response_item_list.rb +10 -5
  374. data/lib/openai/models/beta/responses/input_item_list_params.rb +13 -7
  375. data/lib/openai/models/beta/responses/input_token_count_params.rb +113 -42
  376. data/lib/openai/models/beta/run_step_stream_event.rb +36 -57
  377. data/lib/openai/models/beta/run_stream_event.rb +61 -72
  378. data/lib/openai/models/beta/thread.rb +32 -21
  379. data/lib/openai/models/beta/thread_create_and_run_params.rb +232 -123
  380. data/lib/openai/models/beta/thread_create_params.rb +89 -52
  381. data/lib/openai/models/beta/thread_stream_event.rb +7 -7
  382. data/lib/openai/models/beta/thread_update_params.rb +25 -19
  383. data/lib/openai/models/beta/threads/file_citation_annotation.rb +6 -3
  384. data/lib/openai/models/beta/threads/file_citation_delta_annotation.rb +10 -5
  385. data/lib/openai/models/beta/threads/file_path_annotation.rb +6 -3
  386. data/lib/openai/models/beta/threads/file_path_delta_annotation.rb +8 -4
  387. data/lib/openai/models/beta/threads/image_file.rb +10 -8
  388. data/lib/openai/models/beta/threads/image_file_content_block.rb +5 -3
  389. data/lib/openai/models/beta/threads/image_file_delta.rb +10 -8
  390. data/lib/openai/models/beta/threads/image_file_delta_block.rb +7 -4
  391. data/lib/openai/models/beta/threads/image_url.rb +6 -5
  392. data/lib/openai/models/beta/threads/image_url_content_block.rb +2 -1
  393. data/lib/openai/models/beta/threads/image_url_delta.rb +6 -5
  394. data/lib/openai/models/beta/threads/image_url_delta_block.rb +4 -2
  395. data/lib/openai/models/beta/threads/message.rb +52 -28
  396. data/lib/openai/models/beta/threads/message_content.rb +4 -3
  397. data/lib/openai/models/beta/threads/message_content_delta.rb +4 -3
  398. data/lib/openai/models/beta/threads/message_content_part_param.rb +4 -3
  399. data/lib/openai/models/beta/threads/message_create_params.rb +25 -12
  400. data/lib/openai/models/beta/threads/message_delta.rb +4 -2
  401. data/lib/openai/models/beta/threads/message_delta_event.rb +6 -3
  402. data/lib/openai/models/beta/threads/message_list_params.rb +18 -8
  403. data/lib/openai/models/beta/threads/message_update_params.rb +7 -4
  404. data/lib/openai/models/beta/threads/refusal_content_block.rb +2 -1
  405. data/lib/openai/models/beta/threads/refusal_delta_block.rb +4 -2
  406. data/lib/openai/models/beta/threads/required_action_function_tool_call.rb +15 -10
  407. data/lib/openai/models/beta/threads/run.rb +174 -89
  408. data/lib/openai/models/beta/threads/run_create_params.rb +173 -74
  409. data/lib/openai/models/beta/threads/run_list_params.rb +16 -7
  410. data/lib/openai/models/beta/threads/run_submit_tool_outputs_params.rb +7 -7
  411. data/lib/openai/models/beta/threads/run_update_params.rb +7 -4
  412. data/lib/openai/models/beta/threads/runs/code_interpreter_logs.rb +6 -3
  413. data/lib/openai/models/beta/threads/runs/code_interpreter_output_image.rb +9 -9
  414. data/lib/openai/models/beta/threads/runs/code_interpreter_tool_call.rb +24 -22
  415. data/lib/openai/models/beta/threads/runs/code_interpreter_tool_call_delta.rb +15 -14
  416. data/lib/openai/models/beta/threads/runs/file_search_tool_call.rb +31 -25
  417. data/lib/openai/models/beta/threads/runs/file_search_tool_call_delta.rb +9 -7
  418. data/lib/openai/models/beta/threads/runs/function_tool_call.rb +15 -15
  419. data/lib/openai/models/beta/threads/runs/function_tool_call_delta.rb +17 -16
  420. data/lib/openai/models/beta/threads/runs/message_creation_step_details.rb +4 -2
  421. data/lib/openai/models/beta/threads/runs/run_step.rb +62 -29
  422. data/lib/openai/models/beta/threads/runs/run_step_delta.rb +2 -1
  423. data/lib/openai/models/beta/threads/runs/run_step_delta_event.rb +6 -3
  424. data/lib/openai/models/beta/threads/runs/run_step_delta_message_delta.rb +4 -2
  425. data/lib/openai/models/beta/threads/runs/step_list_params.rb +29 -13
  426. data/lib/openai/models/beta/threads/runs/step_retrieve_params.rb +9 -5
  427. data/lib/openai/models/beta/threads/runs/tool_call_delta_object.rb +6 -5
  428. data/lib/openai/models/beta/threads/runs/tool_calls_step_details.rb +6 -5
  429. data/lib/openai/models/beta/threads/text.rb +2 -1
  430. data/lib/openai/models/beta/threads/text_content_block.rb +2 -1
  431. data/lib/openai/models/beta/threads/text_content_block_param.rb +4 -2
  432. data/lib/openai/models/beta/threads/text_delta.rb +2 -1
  433. data/lib/openai/models/beta/threads/text_delta_block.rb +4 -2
  434. data/lib/openai/models/chat/chat_completion.rb +143 -75
  435. data/lib/openai/models/chat/chat_completion_allowed_tool_choice.rb +4 -5
  436. data/lib/openai/models/chat/chat_completion_allowed_tools.rb +18 -5
  437. data/lib/openai/models/chat/chat_completion_assistant_message_param.rb +31 -26
  438. data/lib/openai/models/chat/chat_completion_audio.rb +11 -8
  439. data/lib/openai/models/chat/chat_completion_audio_param.rb +11 -7
  440. data/lib/openai/models/chat/chat_completion_chunk.rb +174 -97
  441. data/lib/openai/models/chat/chat_completion_content_part.rb +22 -20
  442. data/lib/openai/models/chat/chat_completion_content_part_image.rb +17 -15
  443. data/lib/openai/models/chat/chat_completion_content_part_input_audio.rb +13 -13
  444. data/lib/openai/models/chat/chat_completion_content_part_refusal.rb +4 -2
  445. data/lib/openai/models/chat/chat_completion_content_part_text.rb +11 -9
  446. data/lib/openai/models/chat/chat_completion_custom_tool.rb +20 -16
  447. data/lib/openai/models/chat/chat_completion_deleted.rb +6 -3
  448. data/lib/openai/models/chat/chat_completion_developer_message_param.rb +7 -6
  449. data/lib/openai/models/chat/chat_completion_function_call_option.rb +2 -1
  450. data/lib/openai/models/chat/chat_completion_function_message_param.rb +6 -3
  451. data/lib/openai/models/chat/chat_completion_function_tool.rb +2 -1
  452. data/lib/openai/models/chat/chat_completion_message.rb +39 -24
  453. data/lib/openai/models/chat/chat_completion_message_custom_tool_call.rb +10 -5
  454. data/lib/openai/models/chat/chat_completion_message_function_tool_call.rb +13 -9
  455. data/lib/openai/models/chat/chat_completion_named_tool_choice.rb +4 -2
  456. data/lib/openai/models/chat/chat_completion_named_tool_choice_custom.rb +4 -2
  457. data/lib/openai/models/chat/chat_completion_prediction_content.rb +8 -6
  458. data/lib/openai/models/chat/chat_completion_store_message.rb +26 -16
  459. data/lib/openai/models/chat/chat_completion_stream_options.rb +15 -5
  460. data/lib/openai/models/chat/chat_completion_system_message_param.rb +7 -6
  461. data/lib/openai/models/chat/chat_completion_token_logprob.rb +25 -14
  462. data/lib/openai/models/chat/chat_completion_tool_message_param.rb +6 -3
  463. data/lib/openai/models/chat/chat_completion_user_message_param.rb +8 -7
  464. data/lib/openai/models/chat/completion_create_params.rb +388 -161
  465. data/lib/openai/models/chat/completion_list_params.rb +12 -7
  466. data/lib/openai/models/chat/completion_update_params.rb +7 -4
  467. data/lib/openai/models/chat/completions/message_list_params.rb +7 -6
  468. data/lib/openai/models/comparison_filter.rb +17 -6
  469. data/lib/openai/models/completion.rb +17 -10
  470. data/lib/openai/models/completion_choice.rb +5 -4
  471. data/lib/openai/models/completion_create_params.rb +124 -37
  472. data/lib/openai/models/completion_usage.rb +34 -18
  473. data/lib/openai/models/compound_filter.rb +5 -5
  474. data/lib/openai/models/container_create_params.rb +15 -10
  475. data/lib/openai/models/container_create_response.rb +28 -16
  476. data/lib/openai/models/container_list_params.rb +13 -7
  477. data/lib/openai/models/container_list_response.rb +28 -16
  478. data/lib/openai/models/container_retrieve_response.rb +28 -16
  479. data/lib/openai/models/containers/file_create_params.rb +8 -5
  480. data/lib/openai/models/containers/file_create_response.rb +14 -7
  481. data/lib/openai/models/containers/file_list_params.rb +11 -6
  482. data/lib/openai/models/containers/file_list_response.rb +14 -7
  483. data/lib/openai/models/containers/file_retrieve_response.rb +14 -7
  484. data/lib/openai/models/content_provenance_check.rb +44 -25
  485. data/lib/openai/models/content_provenance_check_create_params.rb +6 -1
  486. data/lib/openai/models/conversations/computer_screenshot_content.rb +16 -9
  487. data/lib/openai/models/conversations/conversation.rb +16 -10
  488. data/lib/openai/models/conversations/conversation_create_params.rb +9 -4
  489. data/lib/openai/models/conversations/conversation_item.rb +216 -100
  490. data/lib/openai/models/conversations/conversation_item_list.rb +10 -5
  491. data/lib/openai/models/conversations/conversation_update_params.rb +7 -4
  492. data/lib/openai/models/conversations/item_create_params.rb +7 -6
  493. data/lib/openai/models/conversations/item_list_params.rb +29 -7
  494. data/lib/openai/models/conversations/item_retrieve_params.rb +5 -5
  495. data/lib/openai/models/conversations/message.rb +22 -12
  496. data/lib/openai/models/conversations/summary_text_content.rb +4 -2
  497. data/lib/openai/models/create_embedding_response.rb +12 -6
  498. data/lib/openai/models/custom_tool_input_format.rb +8 -4
  499. data/lib/openai/models/embedding.rb +9 -7
  500. data/lib/openai/models/embedding_create_params.rb +36 -18
  501. data/lib/openai/models/error_object.rb +8 -4
  502. data/lib/openai/models/eval_create_params.rb +105 -74
  503. data/lib/openai/models/eval_create_response.rb +69 -42
  504. data/lib/openai/models/eval_custom_data_source_config.rb +5 -5
  505. data/lib/openai/models/eval_list_params.rb +10 -7
  506. data/lib/openai/models/eval_list_response.rb +69 -42
  507. data/lib/openai/models/eval_retrieve_response.rb +69 -42
  508. data/lib/openai/models/eval_stored_completions_data_source_config.rb +12 -6
  509. data/lib/openai/models/eval_update_params.rb +9 -5
  510. data/lib/openai/models/eval_update_response.rb +69 -42
  511. data/lib/openai/models/evals/create_eval_completions_run_data_source.rb +97 -64
  512. data/lib/openai/models/evals/create_eval_jsonl_run_data_source.rb +12 -7
  513. data/lib/openai/models/evals/eval_api_error.rb +4 -2
  514. data/lib/openai/models/evals/run_cancel_response.rb +204 -114
  515. data/lib/openai/models/evals/run_create_params.rb +156 -90
  516. data/lib/openai/models/evals/run_create_response.rb +204 -114
  517. data/lib/openai/models/evals/run_list_params.rb +10 -7
  518. data/lib/openai/models/evals/run_list_response.rb +204 -114
  519. data/lib/openai/models/evals/run_retrieve_response.rb +204 -114
  520. data/lib/openai/models/evals/runs/output_item_list_params.rb +10 -7
  521. data/lib/openai/models/evals/runs/output_item_list_response.rb +66 -38
  522. data/lib/openai/models/evals/runs/output_item_retrieve_response.rb +66 -39
  523. data/lib/openai/models/file_create_params.rb +23 -10
  524. data/lib/openai/models/file_list_params.rb +13 -7
  525. data/lib/openai/models/file_object.rb +22 -12
  526. data/lib/openai/models/fine_tuning/alpha/grader_run_params.rb +18 -10
  527. data/lib/openai/models/fine_tuning/alpha/grader_validate_params.rb +2 -1
  528. data/lib/openai/models/fine_tuning/alpha/grader_validate_response.rb +2 -1
  529. data/lib/openai/models/fine_tuning/checkpoints/permission_create_params.rb +2 -1
  530. data/lib/openai/models/fine_tuning/checkpoints/permission_create_response.rb +8 -4
  531. data/lib/openai/models/fine_tuning/checkpoints/permission_delete_response.rb +6 -3
  532. data/lib/openai/models/fine_tuning/checkpoints/permission_list_params.rb +8 -4
  533. data/lib/openai/models/fine_tuning/checkpoints/permission_list_response.rb +8 -4
  534. data/lib/openai/models/fine_tuning/checkpoints/permission_retrieve_params.rb +8 -4
  535. data/lib/openai/models/fine_tuning/checkpoints/permission_retrieve_response.rb +8 -4
  536. data/lib/openai/models/fine_tuning/dpo_hyperparameters.rb +12 -7
  537. data/lib/openai/models/fine_tuning/dpo_method.rb +2 -1
  538. data/lib/openai/models/fine_tuning/fine_tuning_job.rb +82 -41
  539. data/lib/openai/models/fine_tuning/fine_tuning_job_event.rb +14 -7
  540. data/lib/openai/models/fine_tuning/fine_tuning_job_wandb_integration.rb +13 -7
  541. data/lib/openai/models/fine_tuning/fine_tuning_job_wandb_integration_object.rb +7 -6
  542. data/lib/openai/models/fine_tuning/job_create_params.rb +107 -42
  543. data/lib/openai/models/fine_tuning/job_list_events_params.rb +4 -2
  544. data/lib/openai/models/fine_tuning/job_list_params.rb +7 -6
  545. data/lib/openai/models/fine_tuning/jobs/checkpoint_list_params.rb +4 -2
  546. data/lib/openai/models/fine_tuning/jobs/fine_tuning_job_checkpoint.rb +14 -7
  547. data/lib/openai/models/fine_tuning/reinforcement_hyperparameters.rb +17 -10
  548. data/lib/openai/models/fine_tuning/reinforcement_method.rb +4 -2
  549. data/lib/openai/models/fine_tuning/supervised_hyperparameters.rb +9 -6
  550. data/lib/openai/models/fine_tuning/supervised_method.rb +2 -1
  551. data/lib/openai/models/function_definition.rb +22 -9
  552. data/lib/openai/models/graders/grader_input_item.rb +11 -11
  553. data/lib/openai/models/graders/label_model_grader.rb +29 -25
  554. data/lib/openai/models/graders/multi_grader.rb +9 -7
  555. data/lib/openai/models/graders/python_grader.rb +8 -4
  556. data/lib/openai/models/graders/score_model_grader.rb +48 -38
  557. data/lib/openai/models/graders/string_check_grader.rb +10 -5
  558. data/lib/openai/models/graders/text_similarity_grader.rb +11 -8
  559. data/lib/openai/models/image.rb +10 -6
  560. data/lib/openai/models/image_create_variation_params.rb +23 -9
  561. data/lib/openai/models/image_edit_completed_event.rb +62 -27
  562. data/lib/openai/models/image_edit_params.rb +169 -72
  563. data/lib/openai/models/image_edit_partial_image_event.rb +49 -18
  564. data/lib/openai/models/image_gen_completed_event.rb +62 -27
  565. data/lib/openai/models/image_gen_partial_image_event.rb +49 -18
  566. data/lib/openai/models/image_generate_params.rb +141 -62
  567. data/lib/openai/models/image_input_reference_param.rb +2 -1
  568. data/lib/openai/models/image_model.rb +4 -0
  569. data/lib/openai/models/images_response.rb +69 -30
  570. data/lib/openai/models/model.rb +10 -5
  571. data/lib/openai/models/moderation.rb +115 -62
  572. data/lib/openai/models/moderation_create_params.rb +16 -13
  573. data/lib/openai/models/moderation_create_response.rb +6 -3
  574. data/lib/openai/models/moderation_image_url_input.rb +6 -3
  575. data/lib/openai/models/moderation_text_input.rb +4 -2
  576. data/lib/openai/models/other_file_chunking_strategy_object.rb +2 -1
  577. data/lib/openai/models/realtime/audio_transcription.rb +29 -10
  578. data/lib/openai/models/realtime/call_accept_params.rb +85 -30
  579. data/lib/openai/models/realtime/call_create_params.rb +4 -2
  580. data/lib/openai/models/realtime/call_refer_params.rb +3 -4
  581. data/lib/openai/models/realtime/call_reject_params.rb +3 -4
  582. data/lib/openai/models/realtime/client_secret_create_params.rb +16 -11
  583. data/lib/openai/models/realtime/client_secret_create_response.rb +6 -6
  584. data/lib/openai/models/realtime/conversation_created_event.rb +10 -5
  585. data/lib/openai/models/realtime/conversation_item_added.rb +9 -7
  586. data/lib/openai/models/realtime/conversation_item_create_event.rb +16 -7
  587. data/lib/openai/models/realtime/conversation_item_created_event.rb +10 -7
  588. data/lib/openai/models/realtime/conversation_item_delete_event.rb +6 -3
  589. data/lib/openai/models/realtime/conversation_item_deleted_event.rb +6 -3
  590. data/lib/openai/models/realtime/conversation_item_done.rb +9 -7
  591. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rb +36 -21
  592. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rb +17 -10
  593. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rb +18 -13
  594. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_segment.rb +18 -9
  595. data/lib/openai/models/realtime/conversation_item_retrieve_event.rb +6 -3
  596. data/lib/openai/models/realtime/conversation_item_truncate_event.rb +13 -8
  597. data/lib/openai/models/realtime/conversation_item_truncated_event.rb +10 -8
  598. data/lib/openai/models/realtime/conversation_item_with_reference.rb +47 -24
  599. data/lib/openai/models/realtime/input_audio_buffer_append_event.rb +7 -6
  600. data/lib/openai/models/realtime/input_audio_buffer_clear_event.rb +4 -2
  601. data/lib/openai/models/realtime/input_audio_buffer_cleared_event.rb +4 -2
  602. data/lib/openai/models/realtime/input_audio_buffer_commit_event.rb +4 -2
  603. data/lib/openai/models/realtime/input_audio_buffer_committed_event.rb +9 -7
  604. data/lib/openai/models/realtime/input_audio_buffer_dtmf_event_received_event.rb +6 -7
  605. data/lib/openai/models/realtime/input_audio_buffer_speech_started_event.rb +11 -7
  606. data/lib/openai/models/realtime/input_audio_buffer_speech_stopped_event.rb +10 -7
  607. data/lib/openai/models/realtime/input_audio_buffer_timeout_triggered.rb +12 -8
  608. data/lib/openai/models/realtime/log_prob_properties.rb +6 -6
  609. data/lib/openai/models/realtime/mcp_list_tools_completed.rb +6 -3
  610. data/lib/openai/models/realtime/mcp_list_tools_failed.rb +6 -3
  611. data/lib/openai/models/realtime/mcp_list_tools_in_progress.rb +6 -3
  612. data/lib/openai/models/realtime/output_audio_buffer_clear_event.rb +5 -3
  613. data/lib/openai/models/realtime/rate_limits_updated_event.rb +14 -11
  614. data/lib/openai/models/realtime/realtime_audio_config_input.rb +38 -12
  615. data/lib/openai/models/realtime/realtime_audio_config_output.rb +18 -6
  616. data/lib/openai/models/realtime/realtime_audio_formats.rb +8 -4
  617. data/lib/openai/models/realtime/realtime_audio_input_turn_detection.rb +61 -25
  618. data/lib/openai/models/realtime/realtime_client_event.rb +1 -1
  619. data/lib/openai/models/realtime/realtime_conversation_item_assistant_message.rb +26 -19
  620. data/lib/openai/models/realtime/realtime_conversation_item_function_call.rb +18 -11
  621. data/lib/openai/models/realtime/realtime_conversation_item_function_call_output.rb +15 -10
  622. data/lib/openai/models/realtime/realtime_conversation_item_system_message.rb +18 -13
  623. data/lib/openai/models/realtime/realtime_conversation_item_user_message.rb +32 -21
  624. data/lib/openai/models/realtime/realtime_error.rb +10 -8
  625. data/lib/openai/models/realtime/realtime_error_event.rb +6 -3
  626. data/lib/openai/models/realtime/realtime_function_tool.rb +9 -7
  627. data/lib/openai/models/realtime/realtime_mcp_approval_request.rb +10 -5
  628. data/lib/openai/models/realtime/realtime_mcp_approval_response.rb +10 -5
  629. data/lib/openai/models/realtime/realtime_mcp_list_tools.rb +16 -12
  630. data/lib/openai/models/realtime/realtime_mcp_tool_call.rb +16 -8
  631. data/lib/openai/models/realtime/realtime_reasoning.rb +3 -4
  632. data/lib/openai/models/realtime/realtime_response.rb +47 -19
  633. data/lib/openai/models/realtime/realtime_response_create_audio_output.rb +11 -7
  634. data/lib/openai/models/realtime/realtime_response_create_mcp_tool.rb +71 -43
  635. data/lib/openai/models/realtime/realtime_response_create_params.rb +56 -18
  636. data/lib/openai/models/realtime/realtime_response_status.rb +16 -8
  637. data/lib/openai/models/realtime/realtime_response_usage.rb +16 -8
  638. data/lib/openai/models/realtime/realtime_response_usage_input_token_details.rb +16 -8
  639. data/lib/openai/models/realtime/realtime_response_usage_output_token_details.rb +4 -2
  640. data/lib/openai/models/realtime/realtime_server_event.rb +30 -18
  641. data/lib/openai/models/realtime/realtime_session.rb +191 -82
  642. data/lib/openai/models/realtime/realtime_session_create_request.rb +86 -32
  643. data/lib/openai/models/realtime/realtime_session_create_response.rb +256 -110
  644. data/lib/openai/models/realtime/realtime_tools_config_union.rb +73 -45
  645. data/lib/openai/models/realtime/realtime_tracing_config.rb +9 -7
  646. data/lib/openai/models/realtime/realtime_transcription_session_audio_input.rb +38 -13
  647. data/lib/openai/models/realtime/realtime_transcription_session_audio_input_turn_detection.rb +61 -25
  648. data/lib/openai/models/realtime/realtime_transcription_session_create_request.rb +10 -8
  649. data/lib/openai/models/realtime/realtime_transcription_session_create_response.rb +28 -22
  650. data/lib/openai/models/realtime/realtime_transcription_session_turn_detection.rb +13 -8
  651. data/lib/openai/models/realtime/realtime_translation_client_secret_create_request.rb +16 -12
  652. data/lib/openai/models/realtime/realtime_translation_client_secret_create_response.rb +7 -7
  653. data/lib/openai/models/realtime/realtime_translation_input_audio_buffer_append_event.rb +6 -3
  654. data/lib/openai/models/realtime/realtime_translation_input_transcript_delta_event.rb +11 -8
  655. data/lib/openai/models/realtime/realtime_translation_output_audio_delta_event.rb +16 -11
  656. data/lib/openai/models/realtime/realtime_translation_output_transcript_delta_event.rb +11 -8
  657. data/lib/openai/models/realtime/realtime_translation_session.rb +25 -25
  658. data/lib/openai/models/realtime/realtime_translation_session_close_event.rb +4 -2
  659. data/lib/openai/models/realtime/realtime_translation_session_closed_event.rb +4 -2
  660. data/lib/openai/models/realtime/realtime_translation_session_create_request.rb +18 -23
  661. data/lib/openai/models/realtime/realtime_translation_session_created_event.rb +6 -3
  662. data/lib/openai/models/realtime/realtime_translation_session_update_event.rb +7 -7
  663. data/lib/openai/models/realtime/realtime_translation_session_update_request.rb +16 -22
  664. data/lib/openai/models/realtime/realtime_translation_session_updated_event.rb +6 -3
  665. data/lib/openai/models/realtime/realtime_truncation_retention_ratio.rb +16 -11
  666. data/lib/openai/models/realtime/response_audio_delta_event.rb +14 -7
  667. data/lib/openai/models/realtime/response_audio_done_event.rb +12 -6
  668. data/lib/openai/models/realtime/response_audio_transcript_delta_event.rb +14 -7
  669. data/lib/openai/models/realtime/response_audio_transcript_done_event.rb +14 -7
  670. data/lib/openai/models/realtime/response_cancel_event.rb +7 -6
  671. data/lib/openai/models/realtime/response_content_part_added_event.rb +22 -11
  672. data/lib/openai/models/realtime/response_content_part_done_event.rb +22 -11
  673. data/lib/openai/models/realtime/response_create_event.rb +6 -3
  674. data/lib/openai/models/realtime/response_created_event.rb +6 -3
  675. data/lib/openai/models/realtime/response_done_event.rb +6 -3
  676. data/lib/openai/models/realtime/response_function_call_arguments_delta_event.rb +14 -11
  677. data/lib/openai/models/realtime/response_function_call_arguments_done_event.rb +16 -12
  678. data/lib/openai/models/realtime/response_mcp_call_arguments_delta.rb +14 -7
  679. data/lib/openai/models/realtime/response_mcp_call_arguments_done.rb +12 -6
  680. data/lib/openai/models/realtime/response_mcp_call_completed.rb +8 -4
  681. data/lib/openai/models/realtime/response_mcp_call_failed.rb +8 -4
  682. data/lib/openai/models/realtime/response_mcp_call_in_progress.rb +8 -4
  683. data/lib/openai/models/realtime/response_output_item_added_event.rb +10 -5
  684. data/lib/openai/models/realtime/response_output_item_done_event.rb +10 -5
  685. data/lib/openai/models/realtime/response_text_delta_event.rb +14 -7
  686. data/lib/openai/models/realtime/response_text_done_event.rb +14 -7
  687. data/lib/openai/models/realtime/session_created_event.rb +6 -3
  688. data/lib/openai/models/realtime/session_update_event.rb +10 -6
  689. data/lib/openai/models/realtime/session_updated_event.rb +6 -3
  690. data/lib/openai/models/realtime/transcription_session_update.rb +45 -26
  691. data/lib/openai/models/realtime/transcription_session_updated_event.rb +42 -28
  692. data/lib/openai/models/reasoning.rb +33 -10
  693. data/lib/openai/models/reasoning_effort.rb +1 -1
  694. data/lib/openai/models/response_format_json_object.rb +2 -1
  695. data/lib/openai/models/response_format_json_schema.rb +21 -14
  696. data/lib/openai/models/response_format_text.rb +2 -1
  697. data/lib/openai/models/response_format_text_grammar.rb +5 -3
  698. data/lib/openai/models/response_format_text_python.rb +3 -2
  699. data/lib/openai/models/responses/apply_patch_tool.rb +4 -3
  700. data/lib/openai/models/responses/compacted_response.rb +12 -8
  701. data/lib/openai/models/responses/computer_action.rb +78 -58
  702. data/lib/openai/models/responses/computer_tool.rb +3 -2
  703. data/lib/openai/models/responses/computer_use_preview_tool.rb +9 -5
  704. data/lib/openai/models/responses/container_auto.rb +10 -5
  705. data/lib/openai/models/responses/container_network_policy_allowlist.rb +6 -3
  706. data/lib/openai/models/responses/container_network_policy_disabled.rb +2 -1
  707. data/lib/openai/models/responses/container_network_policy_domain_secret.rb +6 -3
  708. data/lib/openai/models/responses/container_reference.rb +4 -2
  709. data/lib/openai/models/responses/custom_tool.rb +16 -12
  710. data/lib/openai/models/responses/easy_input_message.rb +13 -7
  711. data/lib/openai/models/responses/file_search_tool.rb +25 -17
  712. data/lib/openai/models/responses/function_shell_tool.rb +4 -3
  713. data/lib/openai/models/responses/function_tool.rb +19 -13
  714. data/lib/openai/models/responses/inline_skill.rb +8 -4
  715. data/lib/openai/models/responses/inline_skill_source.rb +6 -3
  716. data/lib/openai/models/responses/input_item_list_params.rb +13 -7
  717. data/lib/openai/models/responses/input_token_count_params.rb +79 -30
  718. data/lib/openai/models/responses/local_environment.rb +4 -2
  719. data/lib/openai/models/responses/local_skill.rb +6 -3
  720. data/lib/openai/models/responses/namespace_tool.rb +23 -13
  721. data/lib/openai/models/responses/response.rb +336 -152
  722. data/lib/openai/models/responses/response_apply_patch_tool_call.rb +34 -19
  723. data/lib/openai/models/responses/response_apply_patch_tool_call_output.rb +17 -11
  724. data/lib/openai/models/responses/response_audio_delta_event.rb +6 -6
  725. data/lib/openai/models/responses/response_audio_done_event.rb +4 -5
  726. data/lib/openai/models/responses/response_audio_transcript_delta_event.rb +6 -6
  727. data/lib/openai/models/responses/response_audio_transcript_done_event.rb +4 -5
  728. data/lib/openai/models/responses/response_code_interpreter_call_code_delta_event.rb +11 -9
  729. data/lib/openai/models/responses/response_code_interpreter_call_code_done_event.rb +10 -5
  730. data/lib/openai/models/responses/response_code_interpreter_call_completed_event.rb +9 -8
  731. data/lib/openai/models/responses/response_code_interpreter_call_in_progress_event.rb +9 -8
  732. data/lib/openai/models/responses/response_code_interpreter_call_interpreting_event.rb +9 -8
  733. data/lib/openai/models/responses/response_code_interpreter_tool_call.rb +22 -13
  734. data/lib/openai/models/responses/response_compact_params.rb +89 -46
  735. data/lib/openai/models/responses/response_compaction_item.rb +9 -5
  736. data/lib/openai/models/responses/response_compaction_item_param.rb +7 -4
  737. data/lib/openai/models/responses/response_completed_event.rb +6 -6
  738. data/lib/openai/models/responses/response_computer_tool_call.rb +101 -82
  739. data/lib/openai/models/responses/response_computer_tool_call_output_item.rb +22 -14
  740. data/lib/openai/models/responses/response_computer_tool_call_output_screenshot.rb +7 -7
  741. data/lib/openai/models/responses/response_configuration_update_item.rb +9 -8
  742. data/lib/openai/models/responses/response_configuration_update_item_param.rb +9 -8
  743. data/lib/openai/models/responses/response_container_reference.rb +2 -1
  744. data/lib/openai/models/responses/response_content.rb +5 -3
  745. data/lib/openai/models/responses/response_content_part_added_event.rb +16 -11
  746. data/lib/openai/models/responses/response_content_part_done_event.rb +16 -11
  747. data/lib/openai/models/responses/response_conversation_param.rb +2 -1
  748. data/lib/openai/models/responses/response_create_params.rb +334 -130
  749. data/lib/openai/models/responses/response_created_event.rb +6 -6
  750. data/lib/openai/models/responses/response_custom_tool_call.rb +18 -12
  751. data/lib/openai/models/responses/response_custom_tool_call_input_delta_event.rb +10 -5
  752. data/lib/openai/models/responses/response_custom_tool_call_input_done_event.rb +10 -5
  753. data/lib/openai/models/responses/response_custom_tool_call_item.rb +21 -13
  754. data/lib/openai/models/responses/response_custom_tool_call_output.rb +18 -12
  755. data/lib/openai/models/responses/response_custom_tool_call_output_item.rb +16 -10
  756. data/lib/openai/models/responses/response_error.rb +12 -9
  757. data/lib/openai/models/responses/response_error_event.rb +10 -8
  758. data/lib/openai/models/responses/response_failed_event.rb +6 -6
  759. data/lib/openai/models/responses/response_file_search_call_completed_event.rb +8 -8
  760. data/lib/openai/models/responses/response_file_search_call_in_progress_event.rb +8 -8
  761. data/lib/openai/models/responses/response_file_search_call_searching_event.rb +8 -8
  762. data/lib/openai/models/responses/response_file_search_tool_call.rb +26 -19
  763. data/lib/openai/models/responses/response_format_text_config.rb +2 -2
  764. data/lib/openai/models/responses/response_format_text_json_schema_config.rb +19 -11
  765. data/lib/openai/models/responses/response_function_call_arguments_delta_event.rb +10 -9
  766. data/lib/openai/models/responses/response_function_call_arguments_done_event.rb +8 -4
  767. data/lib/openai/models/responses/response_function_call_output_item.rb +1 -1
  768. data/lib/openai/models/responses/response_function_shell_call_output_content.rb +12 -6
  769. data/lib/openai/models/responses/response_function_shell_tool_call.rb +24 -14
  770. data/lib/openai/models/responses/response_function_shell_tool_call_output.rb +36 -25
  771. data/lib/openai/models/responses/response_function_tool_call.rb +22 -14
  772. data/lib/openai/models/responses/response_function_tool_call_item.rb +22 -14
  773. data/lib/openai/models/responses/response_function_tool_call_output_item.rb +27 -17
  774. data/lib/openai/models/responses/response_function_web_search.rb +33 -37
  775. data/lib/openai/models/responses/response_image_gen_call_completed_event.rb +8 -4
  776. data/lib/openai/models/responses/response_image_gen_call_generating_event.rb +8 -4
  777. data/lib/openai/models/responses/response_image_gen_call_in_progress_event.rb +8 -4
  778. data/lib/openai/models/responses/response_image_gen_call_partial_image_event.rb +21 -14
  779. data/lib/openai/models/responses/response_in_progress_event.rb +6 -6
  780. data/lib/openai/models/responses/response_incomplete_event.rb +6 -6
  781. data/lib/openai/models/responses/response_input_audio.rb +6 -9
  782. data/lib/openai/models/responses/response_input_content.rb +1 -1
  783. data/lib/openai/models/responses/response_input_file.rb +22 -11
  784. data/lib/openai/models/responses/response_input_file_content.rb +22 -11
  785. data/lib/openai/models/responses/response_input_image.rb +17 -10
  786. data/lib/openai/models/responses/response_input_image_content.rb +17 -10
  787. data/lib/openai/models/responses/response_input_item.rb +397 -209
  788. data/lib/openai/models/responses/response_input_message_item.rb +12 -8
  789. data/lib/openai/models/responses/response_input_text.rb +10 -7
  790. data/lib/openai/models/responses/response_input_text_content.rb +10 -7
  791. data/lib/openai/models/responses/response_item.rb +205 -93
  792. data/lib/openai/models/responses/response_item_list.rb +10 -5
  793. data/lib/openai/models/responses/response_local_environment.rb +2 -1
  794. data/lib/openai/models/responses/response_mcp_call_arguments_delta_event.rb +11 -9
  795. data/lib/openai/models/responses/response_mcp_call_arguments_done_event.rb +10 -8
  796. data/lib/openai/models/responses/response_mcp_call_completed_event.rb +8 -4
  797. data/lib/openai/models/responses/response_mcp_call_failed_event.rb +8 -4
  798. data/lib/openai/models/responses/response_mcp_call_in_progress_event.rb +8 -4
  799. data/lib/openai/models/responses/response_mcp_list_tools_completed_event.rb +8 -4
  800. data/lib/openai/models/responses/response_mcp_list_tools_failed_event.rb +8 -4
  801. data/lib/openai/models/responses/response_mcp_list_tools_in_progress_event.rb +8 -4
  802. data/lib/openai/models/responses/response_output_audio.rb +6 -6
  803. data/lib/openai/models/responses/response_output_item.rb +217 -98
  804. data/lib/openai/models/responses/response_output_item_added_event.rb +11 -7
  805. data/lib/openai/models/responses/response_output_item_done_event.rb +8 -7
  806. data/lib/openai/models/responses/response_output_message.rb +16 -9
  807. data/lib/openai/models/responses/response_output_refusal.rb +4 -2
  808. data/lib/openai/models/responses/response_output_text.rb +42 -25
  809. data/lib/openai/models/responses/response_output_text_annotation_added_event.rb +50 -29
  810. data/lib/openai/models/responses/response_prompt.rb +10 -8
  811. data/lib/openai/models/responses/response_queued_event.rb +6 -3
  812. data/lib/openai/models/responses/response_reasoning_item.rb +29 -15
  813. data/lib/openai/models/responses/response_reasoning_summary_part_added_event.rb +16 -12
  814. data/lib/openai/models/responses/response_reasoning_summary_part_done_event.rb +19 -13
  815. data/lib/openai/models/responses/response_reasoning_summary_text_delta_event.rb +12 -10
  816. data/lib/openai/models/responses/response_reasoning_summary_text_done_event.rb +12 -10
  817. data/lib/openai/models/responses/response_reasoning_text_delta_event.rb +12 -9
  818. data/lib/openai/models/responses/response_reasoning_text_done_event.rb +12 -9
  819. data/lib/openai/models/responses/response_refusal_delta_event.rb +12 -9
  820. data/lib/openai/models/responses/response_refusal_done_event.rb +12 -9
  821. data/lib/openai/models/responses/response_retrieve_params.rb +12 -6
  822. data/lib/openai/models/responses/response_shell_call_command_added_event.rb +10 -5
  823. data/lib/openai/models/responses/response_shell_call_command_delta_event.rb +12 -6
  824. data/lib/openai/models/responses/response_shell_call_command_done_event.rb +10 -5
  825. data/lib/openai/models/responses/response_shell_call_output_content_delta_event.rb +16 -8
  826. data/lib/openai/models/responses/response_shell_call_output_content_done_event.rb +27 -18
  827. data/lib/openai/models/responses/response_steer_accepted_event.rb +13 -9
  828. data/lib/openai/models/responses/response_steer_event.rb +14 -6
  829. data/lib/openai/models/responses/response_steer_failed_event.rb +45 -22
  830. data/lib/openai/models/responses/response_steer_input.rb +34 -20
  831. data/lib/openai/models/responses/response_steer_input_content.rb +1 -1
  832. data/lib/openai/models/responses/response_steer_pending_event.rb +24 -11
  833. data/lib/openai/models/responses/response_text_config.rb +22 -8
  834. data/lib/openai/models/responses/response_text_delta_event.rb +24 -20
  835. data/lib/openai/models/responses/response_text_done_event.rb +24 -20
  836. data/lib/openai/models/responses/response_tool_search_call.rb +14 -7
  837. data/lib/openai/models/responses/response_tool_search_output_item.rb +14 -7
  838. data/lib/openai/models/responses/response_tool_search_output_item_param.rb +12 -6
  839. data/lib/openai/models/responses/response_usage.rb +18 -12
  840. data/lib/openai/models/responses/response_web_search_call_completed_event.rb +8 -8
  841. data/lib/openai/models/responses/response_web_search_call_in_progress_event.rb +8 -8
  842. data/lib/openai/models/responses/response_web_search_call_searching_event.rb +8 -8
  843. data/lib/openai/models/responses/responses_client_event.rb +353 -140
  844. data/lib/openai/models/responses/responses_server_event.rb +744 -570
  845. data/lib/openai/models/responses/skill_reference.rb +6 -3
  846. data/lib/openai/models/responses/tool.rb +236 -129
  847. data/lib/openai/models/responses/tool_choice_allowed.rb +21 -6
  848. data/lib/openai/models/responses/tool_choice_apply_patch.rb +2 -1
  849. data/lib/openai/models/responses/tool_choice_custom.rb +4 -2
  850. data/lib/openai/models/responses/tool_choice_function.rb +4 -2
  851. data/lib/openai/models/responses/tool_choice_mcp.rb +6 -6
  852. data/lib/openai/models/responses/tool_choice_shell.rb +2 -1
  853. data/lib/openai/models/responses/tool_choice_types.rb +16 -7
  854. data/lib/openai/models/responses/tool_search_tool.rb +8 -4
  855. data/lib/openai/models/responses/web_search_preview_tool.rb +21 -16
  856. data/lib/openai/models/responses/web_search_tool.rb +31 -21
  857. data/lib/openai/models/safety/alert_retrieve_params.rb +2 -1
  858. data/lib/openai/models/safety/safety_alert.rb +6 -5
  859. data/lib/openai/models/skill.rb +14 -7
  860. data/lib/openai/models/skill_create_params.rb +6 -1
  861. data/lib/openai/models/skill_list.rb +10 -5
  862. data/lib/openai/models/skill_list_params.rb +7 -6
  863. data/lib/openai/models/skill_update_params.rb +2 -1
  864. data/lib/openai/models/skills/deleted_skill_version.rb +2 -1
  865. data/lib/openai/models/skills/skill_version.rb +14 -7
  866. data/lib/openai/models/skills/skill_version_list.rb +10 -5
  867. data/lib/openai/models/skills/version_create_params.rb +8 -2
  868. data/lib/openai/models/skills/version_delete_params.rb +2 -1
  869. data/lib/openai/models/skills/version_list_params.rb +6 -3
  870. data/lib/openai/models/skills/version_retrieve_params.rb +2 -1
  871. data/lib/openai/models/skills/versions/content_retrieve_params.rb +2 -1
  872. data/lib/openai/models/static_file_chunking_strategy.rb +6 -4
  873. data/lib/openai/models/static_file_chunking_strategy_object.rb +2 -1
  874. data/lib/openai/models/static_file_chunking_strategy_object_param.rb +2 -1
  875. data/lib/openai/models/upload.rb +21 -13
  876. data/lib/openai/models/upload_complete_params.rb +5 -5
  877. data/lib/openai/models/upload_create_params.rb +23 -13
  878. data/lib/openai/models/uploads/part_create_params.rb +6 -4
  879. data/lib/openai/models/uploads/upload_part.rb +8 -4
  880. data/lib/openai/models/vector_store.rb +42 -23
  881. data/lib/openai/models/vector_store_create_params.rb +28 -16
  882. data/lib/openai/models/vector_store_list_params.rb +16 -7
  883. data/lib/openai/models/vector_store_search_params.rb +13 -9
  884. data/lib/openai/models/vector_store_search_response.rb +18 -11
  885. data/lib/openai/models/vector_store_update_params.rb +16 -11
  886. data/lib/openai/models/vector_stores/file_batch_create_params.rb +47 -23
  887. data/lib/openai/models/vector_stores/file_batch_list_files_params.rb +18 -8
  888. data/lib/openai/models/vector_stores/file_content_response.rb +4 -2
  889. data/lib/openai/models/vector_stores/file_create_params.rb +18 -9
  890. data/lib/openai/models/vector_stores/file_list_params.rb +18 -8
  891. data/lib/openai/models/vector_stores/file_update_params.rb +6 -4
  892. data/lib/openai/models/vector_stores/vector_store_file.rb +35 -16
  893. data/lib/openai/models/vector_stores/vector_store_file_batch.rb +27 -15
  894. data/lib/openai/models/video.rb +27 -16
  895. data/lib/openai/models/video_create_character_params.rb +8 -2
  896. data/lib/openai/models/video_create_character_response.rb +6 -3
  897. data/lib/openai/models/video_create_error.rb +12 -6
  898. data/lib/openai/models/video_create_params.rb +15 -7
  899. data/lib/openai/models/video_delete_response.rb +6 -3
  900. data/lib/openai/models/video_download_content_params.rb +2 -1
  901. data/lib/openai/models/video_edit_params.rb +10 -3
  902. data/lib/openai/models/video_extend_params.rb +12 -6
  903. data/lib/openai/models/video_get_character_response.rb +6 -3
  904. data/lib/openai/models/video_list_params.rb +7 -6
  905. data/lib/openai/models/video_remix_params.rb +2 -1
  906. data/lib/openai/models/webhooks/batch_cancelled_webhook_event.rb +12 -12
  907. data/lib/openai/models/webhooks/batch_completed_webhook_event.rb +12 -12
  908. data/lib/openai/models/webhooks/batch_expired_webhook_event.rb +12 -12
  909. data/lib/openai/models/webhooks/batch_failed_webhook_event.rb +12 -12
  910. data/lib/openai/models/webhooks/eval_run_canceled_webhook_event.rb +12 -12
  911. data/lib/openai/models/webhooks/eval_run_failed_webhook_event.rb +12 -12
  912. data/lib/openai/models/webhooks/eval_run_succeeded_webhook_event.rb +12 -12
  913. data/lib/openai/models/webhooks/fine_tuning_job_cancelled_webhook_event.rb +12 -13
  914. data/lib/openai/models/webhooks/fine_tuning_job_failed_webhook_event.rb +12 -13
  915. data/lib/openai/models/webhooks/fine_tuning_job_succeeded_webhook_event.rb +12 -13
  916. data/lib/openai/models/webhooks/live_call_incoming_webhook_event.rb +26 -23
  917. data/lib/openai/models/webhooks/realtime_call_incoming_webhook_event.rb +30 -24
  918. data/lib/openai/models/webhooks/response_cancelled_webhook_event.rb +12 -13
  919. data/lib/openai/models/webhooks/response_completed_webhook_event.rb +12 -13
  920. data/lib/openai/models/webhooks/response_failed_webhook_event.rb +12 -12
  921. data/lib/openai/models/webhooks/response_incomplete_webhook_event.rb +12 -13
  922. data/lib/openai/models/webhooks/safety_alert_created_webhook_event.rb +10 -5
  923. data/lib/openai/models/webhooks/safety_org_alert_created_webhook_event.rb +10 -5
  924. data/lib/openai/resources/admin/organization/admin_api_keys.rb +13 -9
  925. data/lib/openai/resources/admin/organization/audit_logs.rb +44 -22
  926. data/lib/openai/resources/admin/organization/certificates.rb +26 -17
  927. data/lib/openai/resources/admin/organization/data_retention.rb +2 -1
  928. data/lib/openai/resources/admin/organization/groups/roles.rb +21 -13
  929. data/lib/openai/resources/admin/organization/groups/users.rb +22 -13
  930. data/lib/openai/resources/admin/organization/groups.rb +20 -11
  931. data/lib/openai/resources/admin/organization/invites.rb +21 -13
  932. data/lib/openai/resources/admin/organization/projects/api_keys.rb +24 -12
  933. data/lib/openai/resources/admin/organization/projects/certificates.rb +17 -10
  934. data/lib/openai/resources/admin/organization/projects/data_retention.rb +6 -3
  935. data/lib/openai/resources/admin/organization/projects/groups/roles.rb +29 -18
  936. data/lib/openai/resources/admin/organization/projects/groups.rb +25 -16
  937. data/lib/openai/resources/admin/organization/projects/hosted_tool_permissions.rb +14 -7
  938. data/lib/openai/resources/admin/organization/projects/model_permissions.rb +10 -5
  939. data/lib/openai/resources/admin/organization/projects/rate_limits.rb +32 -20
  940. data/lib/openai/resources/admin/organization/projects/roles.rb +35 -21
  941. data/lib/openai/resources/admin/organization/projects/service_accounts/api_keys.rb +10 -5
  942. data/lib/openai/resources/admin/organization/projects/service_accounts.rb +40 -19
  943. data/lib/openai/resources/admin/organization/projects/spend_alerts.rb +42 -24
  944. data/lib/openai/resources/admin/organization/projects/spend_limit.rb +13 -10
  945. data/lib/openai/resources/admin/organization/projects/users/roles.rb +29 -18
  946. data/lib/openai/resources/admin/organization/projects/users.rb +32 -18
  947. data/lib/openai/resources/admin/organization/projects.rb +40 -22
  948. data/lib/openai/resources/admin/organization/roles.rb +25 -15
  949. data/lib/openai/resources/admin/organization/spend_alerts.rb +32 -18
  950. data/lib/openai/resources/admin/organization/spend_limit.rb +7 -6
  951. data/lib/openai/resources/admin/organization/usage.rb +296 -145
  952. data/lib/openai/resources/admin/organization/users/roles.rb +21 -13
  953. data/lib/openai/resources/admin/organization/users.rb +24 -13
  954. data/lib/openai/resources/audio/speech.rb +25 -10
  955. data/lib/openai/resources/audio/transcriptions.rb +172 -56
  956. data/lib/openai/resources/audio/translations.rb +26 -8
  957. data/lib/openai/resources/batches.rb +43 -15
  958. data/lib/openai/resources/beta/assistants.rb +177 -59
  959. data/lib/openai/resources/beta/chatkit/sessions.rb +14 -9
  960. data/lib/openai/resources/beta/chatkit/threads.rb +29 -18
  961. data/lib/openai/resources/beta/responses/input_items.rb +17 -9
  962. data/lib/openai/resources/beta/responses/input_tokens.rb +65 -28
  963. data/lib/openai/resources/beta/responses.rb +640 -195
  964. data/lib/openai/resources/beta/threads/messages.rb +65 -30
  965. data/lib/openai/resources/beta/threads/runs/steps.rb +50 -23
  966. data/lib/openai/resources/beta/threads/runs.rb +309 -109
  967. data/lib/openai/resources/beta/threads.rb +240 -78
  968. data/lib/openai/resources/chat/completions/messages.rb +9 -7
  969. data/lib/openai/resources/chat/completions.rb +594 -169
  970. data/lib/openai/resources/completions.rb +212 -40
  971. data/lib/openai/resources/containers/files.rb +19 -11
  972. data/lib/openai/resources/containers.rb +27 -14
  973. data/lib/openai/resources/content_provenance_checks.rb +7 -2
  974. data/lib/openai/resources/conversations/items.rb +58 -26
  975. data/lib/openai/resources/conversations.rb +23 -12
  976. data/lib/openai/resources/embeddings.rb +26 -8
  977. data/lib/openai/resources/evals/runs/output_items.rb +21 -12
  978. data/lib/openai/resources/evals/runs.rb +37 -21
  979. data/lib/openai/resources/evals.rb +43 -23
  980. data/lib/openai/resources/files.rb +42 -21
  981. data/lib/openai/resources/fine_tuning/alpha/graders.rb +15 -7
  982. data/lib/openai/resources/fine_tuning/checkpoints/permissions.rb +36 -34
  983. data/lib/openai/resources/fine_tuning/jobs/checkpoints.rb +6 -6
  984. data/lib/openai/resources/fine_tuning/jobs.rb +84 -42
  985. data/lib/openai/resources/images.rb +423 -131
  986. data/lib/openai/resources/models.rb +4 -2
  987. data/lib/openai/resources/moderations.rb +10 -6
  988. data/lib/openai/resources/realtime/calls.rb +114 -48
  989. data/lib/openai/resources/realtime/client_secrets.rb +9 -6
  990. data/lib/openai/resources/responses/input_items.rb +15 -8
  991. data/lib/openai/resources/responses/input_tokens.rb +60 -26
  992. data/lib/openai/resources/responses.rb +601 -262
  993. data/lib/openai/resources/safety/alerts.rb +2 -1
  994. data/lib/openai/resources/skills/content.rb +2 -1
  995. data/lib/openai/resources/skills/versions/content.rb +4 -2
  996. data/lib/openai/resources/skills/versions.rb +26 -11
  997. data/lib/openai/resources/skills.rb +21 -11
  998. data/lib/openai/resources/uploads/parts.rb +13 -9
  999. data/lib/openai/resources/uploads.rb +35 -27
  1000. data/lib/openai/resources/vector_stores/file_batches.rb +60 -26
  1001. data/lib/openai/resources/vector_stores/files.rb +62 -31
  1002. data/lib/openai/resources/vector_stores.rb +67 -34
  1003. data/lib/openai/resources/videos.rb +64 -31
  1004. data/lib/openai/version.rb +1 -1
  1005. data/local-audio.md +146 -0
  1006. data/rbi/openai/helpers/local_audio/interface.rbi +110 -0
  1007. data/rbi/openai/helpers/realtime/connection.rbi +18 -2
  1008. data/rbi/openai/helpers/realtime/extensions.rbi +8 -0
  1009. data/rbi/openai/helpers/realtime/recovery.rbi +27 -0
  1010. data/rbi/openai/models/admin/organization/audit_log_list_params.rbi +2 -2
  1011. data/rbi/openai/models/admin/organization/project_create_params.rbi +4 -4
  1012. data/rbi/openai/models/admin/organization/projects/project_api_key.rbi +13 -1
  1013. data/rbi/openai/models/admin/organization/projects/service_account_create_params.rbi +18 -0
  1014. data/rbi/openai/models/admin/organization/projects/service_account_create_response.rbi +19 -1
  1015. data/rbi/openai/models/audio/speech_create_params.rbi +9 -6
  1016. data/rbi/openai/models/audio/transcription_create_params.rbi +2 -2
  1017. data/rbi/openai/models/audio/transcription_stream_event.rbi +1 -1
  1018. data/rbi/openai/models/audio/transcription_text_delta_event.rbi +3 -3
  1019. data/rbi/openai/models/audio/transcription_text_done_event.rbi +3 -3
  1020. data/rbi/openai/models/audio/transcription_text_segment_event.rbi +1 -1
  1021. data/rbi/openai/models/audio/translation_create_params.rbi +2 -2
  1022. data/rbi/openai/models/batch.rbi +4 -4
  1023. data/rbi/openai/models/batch_create_params.rbi +6 -4
  1024. data/rbi/openai/models/batch_usage.rbi +2 -2
  1025. data/rbi/openai/models/beta/assistant.rbi +24 -24
  1026. data/rbi/openai/models/beta/assistant_create_params.rbi +40 -40
  1027. data/rbi/openai/models/beta/assistant_response_format_option.rbi +4 -4
  1028. data/rbi/openai/models/beta/assistant_stream_event.rbi +63 -65
  1029. data/rbi/openai/models/beta/assistant_update_params.rbi +30 -30
  1030. data/rbi/openai/models/beta/beta_computer_tool.rbi +1 -1
  1031. data/rbi/openai/models/beta/beta_computer_use_preview_tool.rbi +1 -1
  1032. data/rbi/openai/models/beta/beta_custom_tool.rbi +1 -1
  1033. data/rbi/openai/models/beta/beta_file_search_tool.rbi +1 -1
  1034. data/rbi/openai/models/beta/beta_function_tool.rbi +1 -1
  1035. data/rbi/openai/models/beta/beta_response.rbi +72 -64
  1036. data/rbi/openai/models/beta/beta_response_compaction_item.rbi +1 -1
  1037. data/rbi/openai/models/beta/beta_response_compaction_item_param.rbi +1 -1
  1038. data/rbi/openai/models/beta/beta_response_computer_tool_call.rbi +1 -1
  1039. data/rbi/openai/models/beta/beta_response_file_search_tool_call.rbi +1 -1
  1040. data/rbi/openai/models/beta/beta_response_format_text_config.rbi +1 -1
  1041. data/rbi/openai/models/beta/beta_response_format_text_json_schema_config.rbi +3 -3
  1042. data/rbi/openai/models/beta/beta_response_function_tool_call.rbi +1 -1
  1043. data/rbi/openai/models/beta/beta_response_function_tool_call_item.rbi +1 -1
  1044. data/rbi/openai/models/beta/beta_response_function_web_search.rbi +2 -2
  1045. data/rbi/openai/models/beta/beta_response_input_image.rbi +1 -1
  1046. data/rbi/openai/models/beta/beta_response_input_image_content.rbi +1 -1
  1047. data/rbi/openai/models/beta/beta_response_input_item.rbi +86 -1
  1048. data/rbi/openai/models/beta/beta_response_item.rbi +78 -1
  1049. data/rbi/openai/models/beta/beta_response_output_item.rbi +84 -1
  1050. data/rbi/openai/models/beta/beta_response_prompt.rbi +1 -1
  1051. data/rbi/openai/models/beta/beta_response_reasoning_item.rbi +1 -1
  1052. data/rbi/openai/models/beta/beta_response_text_config.rbi +4 -4
  1053. data/rbi/openai/models/beta/beta_response_usage.rbi +2 -2
  1054. data/rbi/openai/models/beta/beta_responses_client_event.rbi +98 -84
  1055. data/rbi/openai/models/beta/beta_tool.rbi +94 -55
  1056. data/rbi/openai/models/beta/beta_tool_choice_types.rbi +4 -4
  1057. data/rbi/openai/models/beta/beta_web_search_preview_tool.rbi +1 -1
  1058. data/rbi/openai/models/beta/beta_web_search_tool.rbi +1 -1
  1059. data/rbi/openai/models/beta/file_search_tool.rbi +5 -5
  1060. data/rbi/openai/models/beta/message_stream_event.rbi +16 -16
  1061. data/rbi/openai/models/beta/response_compact_params.rbi +44 -44
  1062. data/rbi/openai/models/beta/response_create_params.rbi +96 -82
  1063. data/rbi/openai/models/beta/responses/input_token_count_params.rbi +20 -20
  1064. data/rbi/openai/models/beta/run_step_stream_event.rbi +14 -16
  1065. data/rbi/openai/models/beta/run_stream_event.rbi +31 -31
  1066. data/rbi/openai/models/beta/thread.rbi +9 -9
  1067. data/rbi/openai/models/beta/thread_create_and_run_params.rbi +61 -56
  1068. data/rbi/openai/models/beta/thread_create_params.rbi +24 -22
  1069. data/rbi/openai/models/beta/thread_stream_event.rbi +3 -3
  1070. data/rbi/openai/models/beta/thread_update_params.rbi +8 -8
  1071. data/rbi/openai/models/beta/threads/image_file.rbi +6 -6
  1072. data/rbi/openai/models/beta/threads/image_file_content_block.rbi +3 -2
  1073. data/rbi/openai/models/beta/threads/image_file_delta.rbi +6 -6
  1074. data/rbi/openai/models/beta/threads/image_file_delta_block.rbi +3 -2
  1075. data/rbi/openai/models/beta/threads/message.rbi +9 -9
  1076. data/rbi/openai/models/beta/threads/message_content.rbi +3 -2
  1077. data/rbi/openai/models/beta/threads/message_content_delta.rbi +3 -2
  1078. data/rbi/openai/models/beta/threads/message_content_part_param.rbi +3 -2
  1079. data/rbi/openai/models/beta/threads/required_action_function_tool_call.rbi +2 -2
  1080. data/rbi/openai/models/beta/threads/run.rbi +33 -31
  1081. data/rbi/openai/models/beta/threads/run_create_params.rbi +37 -34
  1082. data/rbi/openai/models/beta/threads/runs/code_interpreter_output_image.rbi +4 -4
  1083. data/rbi/openai/models/beta/threads/runs/code_interpreter_tool_call.rbi +4 -4
  1084. data/rbi/openai/models/beta/threads/runs/function_tool_call.rbi +2 -4
  1085. data/rbi/openai/models/beta/threads/runs/function_tool_call_delta.rbi +2 -4
  1086. data/rbi/openai/models/beta/threads/runs/run_step.rbi +12 -10
  1087. data/rbi/openai/models/beta/threads/runs/step_list_params.rbi +2 -2
  1088. data/rbi/openai/models/beta/threads/runs/step_retrieve_params.rbi +2 -2
  1089. data/rbi/openai/models/chat/chat_completion.rbi +27 -21
  1090. data/rbi/openai/models/chat/chat_completion_assistant_message_param.rbi +4 -5
  1091. data/rbi/openai/models/chat/chat_completion_audio.rbi +1 -1
  1092. data/rbi/openai/models/chat/chat_completion_audio_param.rbi +1 -1
  1093. data/rbi/openai/models/chat/chat_completion_chunk.rbi +28 -22
  1094. data/rbi/openai/models/chat/chat_completion_content_part.rbi +3 -4
  1095. data/rbi/openai/models/chat/chat_completion_content_part_image.rbi +5 -4
  1096. data/rbi/openai/models/chat/chat_completion_content_part_input_audio.rbi +1 -1
  1097. data/rbi/openai/models/chat/chat_completion_content_part_text.rbi +1 -2
  1098. data/rbi/openai/models/chat/chat_completion_message.rbi +4 -4
  1099. data/rbi/openai/models/chat/chat_completion_store_message.rbi +3 -4
  1100. data/rbi/openai/models/chat/completion_create_params.rbi +95 -85
  1101. data/rbi/openai/models/completion_create_params.rbi +34 -32
  1102. data/rbi/openai/models/conversations/conversation_item.rbi +89 -2
  1103. data/rbi/openai/models/conversations/item_create_params.rbi +2 -2
  1104. data/rbi/openai/models/conversations/item_retrieve_params.rbi +2 -2
  1105. data/rbi/openai/models/embedding.rbi +2 -2
  1106. data/rbi/openai/models/embedding_create_params.rbi +14 -14
  1107. data/rbi/openai/models/evals/create_eval_completions_run_data_source.rbi +5 -5
  1108. data/rbi/openai/models/evals/run_cancel_response.rbi +22 -20
  1109. data/rbi/openai/models/evals/run_create_params.rbi +22 -20
  1110. data/rbi/openai/models/evals/run_create_response.rbi +22 -20
  1111. data/rbi/openai/models/evals/run_list_response.rbi +22 -20
  1112. data/rbi/openai/models/evals/run_retrieve_response.rbi +22 -20
  1113. data/rbi/openai/models/fine_tuning/alpha/grader_run_params.rbi +10 -8
  1114. data/rbi/openai/models/fine_tuning/fine_tuning_job.rbi +6 -6
  1115. data/rbi/openai/models/fine_tuning/job_create_params.rbi +17 -15
  1116. data/rbi/openai/models/function_definition.rbi +6 -6
  1117. data/rbi/openai/models/graders/score_model_grader.rbi +2 -2
  1118. data/rbi/openai/models/image_create_variation_params.rbi +2 -2
  1119. data/rbi/openai/models/image_edit_completed_event.rbi +20 -9
  1120. data/rbi/openai/models/image_edit_params.rbi +91 -62
  1121. data/rbi/openai/models/image_edit_partial_image_event.rbi +20 -9
  1122. data/rbi/openai/models/image_gen_completed_event.rbi +20 -9
  1123. data/rbi/openai/models/image_gen_partial_image_event.rbi +20 -9
  1124. data/rbi/openai/models/image_generate_params.rbi +73 -50
  1125. data/rbi/openai/models/image_model.rbi +4 -0
  1126. data/rbi/openai/models/images_response.rbi +27 -16
  1127. data/rbi/openai/models/moderation_create_params.rbi +9 -9
  1128. data/rbi/openai/models/realtime/audio_transcription.rbi +2 -2
  1129. data/rbi/openai/models/realtime/call_accept_params.rbi +1 -1
  1130. data/rbi/openai/models/realtime/output_audio_buffer_clear_event.rbi +1 -1
  1131. data/rbi/openai/models/realtime/realtime_audio_config_input.rbi +2 -2
  1132. data/rbi/openai/models/realtime/realtime_response_create_mcp_tool.rbi +4 -4
  1133. data/rbi/openai/models/realtime/realtime_response_create_params.rbi +3 -3
  1134. data/rbi/openai/models/realtime/realtime_server_event.rbi +3 -3
  1135. data/rbi/openai/models/realtime/realtime_session.rbi +4 -4
  1136. data/rbi/openai/models/realtime/realtime_session_create_request.rbi +2 -2
  1137. data/rbi/openai/models/realtime/realtime_session_create_response.rbi +7 -7
  1138. data/rbi/openai/models/realtime/realtime_tools_config_union.rbi +5 -5
  1139. data/rbi/openai/models/realtime/realtime_transcription_session_audio_input.rbi +2 -2
  1140. data/rbi/openai/models/reasoning.rbi +3 -3
  1141. data/rbi/openai/models/reasoning_effort.rbi +1 -1
  1142. data/rbi/openai/models/response_format_json_schema.rbi +3 -3
  1143. data/rbi/openai/models/response_format_text_grammar.rbi +1 -1
  1144. data/rbi/openai/models/response_format_text_python.rbi +1 -1
  1145. data/rbi/openai/models/responses/computer_tool.rbi +1 -1
  1146. data/rbi/openai/models/responses/computer_use_preview_tool.rbi +1 -1
  1147. data/rbi/openai/models/responses/custom_tool.rbi +1 -1
  1148. data/rbi/openai/models/responses/file_search_tool.rbi +1 -1
  1149. data/rbi/openai/models/responses/function_tool.rbi +1 -1
  1150. data/rbi/openai/models/responses/input_token_count_params.rbi +16 -16
  1151. data/rbi/openai/models/responses/response.rbi +66 -58
  1152. data/rbi/openai/models/responses/response_compact_params.rbi +44 -44
  1153. data/rbi/openai/models/responses/response_compaction_item.rbi +1 -1
  1154. data/rbi/openai/models/responses/response_compaction_item_param.rbi +1 -1
  1155. data/rbi/openai/models/responses/response_computer_tool_call.rbi +1 -1
  1156. data/rbi/openai/models/responses/response_create_params.rbi +90 -76
  1157. data/rbi/openai/models/responses/response_file_search_tool_call.rbi +1 -1
  1158. data/rbi/openai/models/responses/response_format_text_config.rbi +1 -1
  1159. data/rbi/openai/models/responses/response_format_text_json_schema_config.rbi +3 -3
  1160. data/rbi/openai/models/responses/response_function_tool_call.rbi +1 -1
  1161. data/rbi/openai/models/responses/response_function_tool_call_item.rbi +1 -1
  1162. data/rbi/openai/models/responses/response_function_web_search.rbi +2 -2
  1163. data/rbi/openai/models/responses/response_input_image.rbi +1 -1
  1164. data/rbi/openai/models/responses/response_input_image_content.rbi +1 -1
  1165. data/rbi/openai/models/responses/response_input_item.rbi +88 -1
  1166. data/rbi/openai/models/responses/response_item.rbi +80 -1
  1167. data/rbi/openai/models/responses/response_output_item.rbi +84 -1
  1168. data/rbi/openai/models/responses/response_prompt.rbi +1 -1
  1169. data/rbi/openai/models/responses/response_reasoning_item.rbi +1 -1
  1170. data/rbi/openai/models/responses/response_text_config.rbi +4 -4
  1171. data/rbi/openai/models/responses/response_usage.rbi +2 -2
  1172. data/rbi/openai/models/responses/responses_client_event.rbi +92 -78
  1173. data/rbi/openai/models/responses/tool.rbi +94 -55
  1174. data/rbi/openai/models/responses/tool_choice_types.rbi +4 -4
  1175. data/rbi/openai/models/responses/web_search_preview_tool.rbi +1 -1
  1176. data/rbi/openai/models/responses/web_search_tool.rbi +1 -1
  1177. data/rbi/openai/models/upload.rbi +2 -2
  1178. data/rbi/openai/models/upload_create_params.rbi +2 -2
  1179. data/rbi/openai/models/vector_store_create_params.rbi +6 -6
  1180. data/rbi/openai/models/vector_stores/file_batch_create_params.rbi +18 -18
  1181. data/rbi/openai/models/vector_stores/file_create_params.rbi +6 -6
  1182. data/rbi/openai/models/vector_stores/vector_store_file.rbi +4 -4
  1183. data/rbi/openai/models/vector_stores/vector_store_file_batch.rbi +4 -4
  1184. data/rbi/openai/models/webhooks/live_call_incoming_webhook_event.rbi +10 -6
  1185. data/rbi/openai/models/webhooks/realtime_call_incoming_webhook_event.rbi +14 -6
  1186. data/rbi/openai/resources/admin/organization/audit_logs.rbi +1 -1
  1187. data/rbi/openai/resources/admin/organization/projects/service_accounts.rbi +7 -0
  1188. data/rbi/openai/resources/admin/organization/projects.rbi +2 -2
  1189. data/rbi/openai/resources/audio/speech.rbi +3 -2
  1190. data/rbi/openai/resources/audio/transcriptions.rbi +2 -2
  1191. data/rbi/openai/resources/audio/translations.rbi +1 -1
  1192. data/rbi/openai/resources/batches.rbi +3 -2
  1193. data/rbi/openai/resources/beta/assistants.rbi +18 -18
  1194. data/rbi/openai/resources/beta/responses/input_tokens.rbi +6 -6
  1195. data/rbi/openai/resources/beta/responses.rbi +112 -102
  1196. data/rbi/openai/resources/beta/threads/messages.rbi +9 -6
  1197. data/rbi/openai/resources/beta/threads/runs/steps.rbi +2 -2
  1198. data/rbi/openai/resources/beta/threads/runs.rbi +37 -33
  1199. data/rbi/openai/resources/beta/threads.rbi +27 -24
  1200. data/rbi/openai/resources/chat/completions.rbi +90 -82
  1201. data/rbi/openai/resources/completions.rbi +30 -28
  1202. data/rbi/openai/resources/content_provenance_checks.rbi +1 -1
  1203. data/rbi/openai/resources/conversations/items.rbi +2 -2
  1204. data/rbi/openai/resources/embeddings.rbi +5 -5
  1205. data/rbi/openai/resources/evals.rbi +1 -1
  1206. data/rbi/openai/resources/files.rbi +5 -5
  1207. data/rbi/openai/resources/fine_tuning/alpha/graders.rbi +5 -4
  1208. data/rbi/openai/resources/fine_tuning/checkpoints/permissions.rbi +8 -4
  1209. data/rbi/openai/resources/fine_tuning/jobs.rbi +10 -9
  1210. data/rbi/openai/resources/images.rbi +113 -83
  1211. data/rbi/openai/resources/moderations.rbi +5 -4
  1212. data/rbi/openai/resources/realtime/calls.rbi +6 -6
  1213. data/rbi/openai/resources/realtime/client_secrets.rbi +1 -1
  1214. data/rbi/openai/resources/responses/input_tokens.rbi +6 -6
  1215. data/rbi/openai/resources/responses.rbi +112 -100
  1216. data/rbi/openai/resources/uploads/parts.rbi +5 -4
  1217. data/rbi/openai/resources/uploads.rbi +10 -10
  1218. data/rbi/openai/resources/vector_stores/file_batches.rbi +6 -6
  1219. data/rbi/openai/resources/vector_stores/files.rbi +6 -6
  1220. data/rbi/openai/resources/vector_stores.rbi +3 -3
  1221. data/realtime.md +101 -0
  1222. data/responses-websocket.md +182 -0
  1223. data/sig/openai/helpers/local_audio/interface.rbs +62 -0
  1224. data/sig/openai/helpers/realtime/connection.rbs +9 -1
  1225. data/sig/openai/helpers/realtime/extensions.rbs +4 -0
  1226. data/sig/openai/helpers/realtime/recovery.rbs +19 -0
  1227. data/sig/openai/models/admin/organization/projects/project_api_key.rbs +7 -2
  1228. data/sig/openai/models/admin/organization/projects/service_account_create_params.rbs +5 -0
  1229. data/sig/openai/models/admin/organization/projects/service_account_create_response.rbs +7 -2
  1230. data/sig/openai/models/beta/beta_response_input_item.rbs +39 -2
  1231. data/sig/openai/models/beta/beta_response_item.rbs +39 -2
  1232. data/sig/openai/models/beta/beta_response_output_item.rbs +39 -2
  1233. data/sig/openai/models/beta/beta_tool.rbs +11 -1
  1234. data/sig/openai/models/conversations/conversation_item.rbs +39 -2
  1235. data/sig/openai/models/image_edit_completed_event.rbs +11 -4
  1236. data/sig/openai/models/image_edit_params.rbs +3 -1
  1237. data/sig/openai/models/image_edit_partial_image_event.rbs +11 -4
  1238. data/sig/openai/models/image_gen_completed_event.rbs +11 -4
  1239. data/sig/openai/models/image_gen_partial_image_event.rbs +11 -4
  1240. data/sig/openai/models/image_generate_params.rbs +4 -1
  1241. data/sig/openai/models/image_model.rbs +8 -0
  1242. data/sig/openai/models/images_response.rbs +10 -4
  1243. data/sig/openai/models/responses/response_input_item.rbs +39 -2
  1244. data/sig/openai/models/responses/response_item.rbs +39 -2
  1245. data/sig/openai/models/responses/response_output_item.rbs +39 -2
  1246. data/sig/openai/models/responses/tool.rbs +11 -1
  1247. data/sig/openai/resources/admin/organization/projects/service_accounts.rbs +1 -0
  1248. metadata +15 -1
@@ -8,8 +8,8 @@ module OpenAI
8
8
  class Files
9
9
 
10
10
  # Create a vector store file by attaching a
11
- # [File](https://platform.openai.com/docs/api-reference/files) to a
12
- # [vector store](https://platform.openai.com/docs/api-reference/vector-stores/object).
11
+ # [File](https://developers.openai.com/api/reference/resources/files) to a
12
+ # [vector store](https://developers.openai.com/api/reference/resources/vector_stores).
13
13
  sig {
14
14
  params(
15
15
  vector_store_id: String,
@@ -26,10 +26,10 @@ module OpenAI
26
26
  def create(
27
27
  # The ID of the vector store for which to create a File.
28
28
  vector_store_id,
29
- # A [File](https://platform.openai.com/docs/api-reference/files) ID that the
30
- # vector store should use. Useful for tools like `file_search` that can access
29
+ # A [File](https://developers.openai.com/api/reference/resources/files) ID that
30
+ # the vector store should use. Useful for tools like `file_search` that can access
31
31
  # files. For multi-file ingestion, we recommend
32
- # [`file_batches`](https://platform.openai.com/docs/api-reference/vector-stores-file-batches/createBatch)
32
+ # [`file_batches`](https://developers.openai.com/api/reference/resources/vector_stores/subresources/file_batches/methods/create)
33
33
  # to minimize per-vector-store write requests.
34
34
  file_id:,
35
35
  # Set of 16 key-value pairs that can be attached to an object. This can be useful
@@ -157,7 +157,7 @@ module OpenAI
157
157
 
158
158
  # Delete a vector store file. This will remove the file from the vector store but
159
159
  # the file itself will not be deleted. To delete the file, use the
160
- # [delete file](https://platform.openai.com/docs/api-reference/files/delete)
160
+ # [delete file](https://developers.openai.com/api/reference/resources/files/methods/delete)
161
161
  # endpoint.
162
162
  sig {
163
163
  params(file_id: String, vector_store_id: String, request_options: OpenAI::RequestOptions::OrHash).returns(
@@ -36,9 +36,9 @@ module OpenAI
36
36
  description: nil,
37
37
  # The expiration policy for a vector store.
38
38
  expires_after: nil,
39
- # A list of [File](https://platform.openai.com/docs/api-reference/files) IDs that
40
- # the vector store should use. Useful for tools like `file_search` that can access
41
- # files.
39
+ # A list of [File](https://developers.openai.com/api/reference/resources/files)
40
+ # IDs that the vector store should use. Useful for tools like `file_search` that
41
+ # can access files.
42
42
  file_ids: nil,
43
43
  # Set of 16 key-value pairs that can be attached to an object. This can be useful
44
44
  # for storing additional information about the object in a structured format, and
data/realtime.md CHANGED
@@ -76,6 +76,107 @@ types. Invalid client events raise `ArgumentError` with a generic public
76
76
  message; the converter error remains available through `cause` for explicit
77
77
  inspection. `send_raw` and `receive_raw` are text-frame escape hatches.
78
78
 
79
+ ## Reconnect and retained sends
80
+
81
+ Automatic reconnect is disabled by default. Enable it on the existing `connect`
82
+ method for ordinary model sessions:
83
+
84
+ ```ruby
85
+ client.realtime.connect(model: "gpt-realtime-2.1", reconnect: true) do |connection|
86
+ connection.each { |event| handle_event(event) }
87
+ end
88
+ ```
89
+
90
+ Both `receive` and `each` drive recovery. The application block runs once, with
91
+ the same connection object. Recovery opens a **new session**; it does not restore
92
+ conversation history, buffered audio, outstanding tool calls, or an interrupted
93
+ response. The normal server session events remain observable. Sends alone do
94
+ not drive recovery: keep a receiver running to observe disconnects.
95
+
96
+ `max_reconnect_attempts` defaults to 5 and bounds the total additional connection
97
+ attempts over the block's lifetime, including retryable initial handshake
98
+ failures. Backoff starts at 0.5 seconds, doubles to an 8-second cap, and applies
99
+ jitter. Normal close, explicit close, permanent authentication/TLS/protocol
100
+ failures, and exhausted retries stop recovery. Each attempt uses the client's
101
+ existing endpoint and authentication preparation, including workload-identity
102
+ token refresh. `request_options[:max_retries]` remains an HTTP option and must
103
+ not be used to configure WebSocket reconnect.
104
+
105
+ An optional `on_reconnected:` callback receives the same connection before the
106
+ replacement is made available to waiting readers. It can restore application
107
+ state using the usual typed helpers; its exceptions stop recovery. A callback
108
+ may receive events itself, consuming them before the application receiver.
109
+
110
+ ### Optional outbound queue
111
+
112
+ `max_queue_bytes` defaults to **0** (queueing disabled). Set a positive byte
113
+ budget to retain validated, serialized events sent while reconnecting or while
114
+ an explicit queue flush is in progress. Queue-full errors reject the new event
115
+ without evicting accepted events. The budget includes a queued write until it
116
+ settles; empty raw text costs one byte for accounting. Connected sends and
117
+ incoming events have no new payload-size limit.
118
+
119
+ Retained events are **never automatically flushed** into a replacement session.
120
+ Restore any needed state, decide whether the queued work still belongs in that
121
+ session, then call `flush_pending`. Normal connected sends bypass the held queue,
122
+ allowing setup messages to precede it. Only the retained messages have FIFO
123
+ ordering relative to each other. For example:
124
+
125
+ ```ruby
126
+ restore = lambda do |connection|
127
+ connection.session.update(type: :realtime, instructions: "Be concise.")
128
+ # Use this only when the application knows its retained events are valid
129
+ # in the replacement session. Rebuilding earlier conversation state may
130
+ # require additional events and acknowledgements first.
131
+ connection.flush_pending
132
+ end
133
+
134
+ client.realtime.connect(
135
+ model: "gpt-realtime-2.1",
136
+ reconnect: true,
137
+ max_queue_bytes: 1_048_576,
138
+ on_reconnected: restore
139
+ ) do |connection|
140
+ connection.each { |event| handle_event(event) }
141
+ end
142
+ ```
143
+
144
+ The callback is optional even with queueing enabled. After receiving a new
145
+ session's events, application code can restore state and flush the queue itself.
146
+ `pending_messages` returns a snapshot of encoded unsent events;
147
+ `take_pending_messages` removes and returns them without sending. The latter
148
+ raises if a flush is in progress. These accessors return empty arrays on ordinary
149
+ connections without recovery; `flush_pending` on such a connection is a no-op.
150
+
151
+ `OpenAI::Errors::RealtimeQueueFullError` means the event was not accepted.
152
+ `OpenAI::Errors::RealtimeReconnectError` reports a terminal recovery failure or
153
+ an interrupted operation. Its `unsent_messages` contains retained events never
154
+ attempted on the socket. A failed write stops the connection and exposes the
155
+ attempted event as `uncertain_message`; the SDK never retries it. A local write
156
+ completion is not a server acknowledgement, and `event_id` does not establish
157
+ exactly-once delivery. These explicit payload accessors can contain sensitive
158
+ application data; do not log them. Error messages omit their contents.
159
+
160
+ Each waiting sender receives an error describing only its own event. If its write
161
+ was never attempted, that event appears in `unsent_messages` and `uncertain_message`
162
+ is nil, even when another concurrent sender's write caused the connection to fail.
163
+
164
+ When an explicit flush is interrupted by another disconnect, unattempted events
165
+ stay queued and require another explicit flush after recovery. Intentional close
166
+ keeps retained data available through the connection's queue accessors. With
167
+ reconnect enabled, close makes a best-effort attempt (up to one second) to send its
168
+ `code` and `reason`, then releases the socket. A close during a write aborts
169
+ immediately and reports uncertain delivery. Leaving the block cancels and joins recovery
170
+ work. Concurrent producers submit through the connection's mailbox; socket I/O
171
+ stays on its owning Async reactor. Cancelling a waiting operation closes the
172
+ logical connection so an abandoned receive cannot consume a later event.
173
+
174
+ Reconnect uses the optional Async runtime even with a custom transport. Custom
175
+ transports must allow Async cancellation and preserve the cause/status of
176
+ `RealtimeConnectionError` for retry classification. `connect_transcription` and
177
+ `connect_to_call` retain their existing behavior; their session recovery
178
+ semantics are not enabled by this option.
179
+
79
180
  ## Standard text workflows
80
181
 
81
182
  The same generic helpers cover local function results, image content, and MCP
@@ -0,0 +1,182 @@
1
+ # Responses WebSocket workflows
2
+
3
+ Requires `openai` 0.86.0 or later and the optional `async-websocket` gem:
4
+
5
+ ```ruby
6
+ gem "openai", ">= 0.86.0"
7
+ gem "async-websocket"
8
+ ```
9
+
10
+ Responses WebSocket mode connects to `/v1/responses`. It uses Responses events;
11
+ it is distinct from [Realtime sessions](realtime.md). See the
12
+ [platform guide](https://developers.openai.com/api/docs/guides/websocket-mode)
13
+ for the service contract.
14
+
15
+ ## Run the examples
16
+
17
+ The [workflow example](examples/responses/websocket_workflows.rb) demonstrates
18
+ four patterns with one reader and no background worker threads. Keep
19
+ `OPENAI_API_KEY` in your environment. These commands make real API calls:
20
+
21
+ ```sh
22
+ bundle exec ruby examples/responses/websocket_workflows.rb tools
23
+ bundle exec ruby examples/responses/websocket_workflows.rb multiplex
24
+ bundle exec ruby examples/responses/websocket_workflows.rb stored
25
+ bundle exec ruby examples/responses/websocket_workflows.rb stateless
26
+ ```
27
+
28
+ Set `OPENAI_RESPONSES_MODEL` to override `gpt-5.2` and
29
+ `OPENAI_RESPONSES_TIMEOUT` to change the 60-second overall deadline. The example
30
+ prints only a completion marker, not prompts, model output, or server errors.
31
+ The default workflow is `multiplex`. The `stored` workflow requires an account
32
+ that allows response storage; use `stateless` with `store=false`/ZDR.
33
+
34
+ ## Connect, send, and receive
35
+
36
+ ```ruby
37
+ client.responses.connect do |connection|
38
+ connection.response.create(model: "gpt-5.2", input: "Say hello.")
39
+ connection.each do |event|
40
+ case event.type.to_s
41
+ when "response.completed"
42
+ # Save event.response.id and handle event.response.output here.
43
+ break
44
+ when "response.failed", "response.incomplete", "error"
45
+ raise "Responses operation did not complete."
46
+ end
47
+ end
48
+ end
49
+ ```
50
+
51
+ Use the complete example for EOF detection: a connection ending before every
52
+ expected terminal event is not success. `connect` requires a block and closes
53
+ on block exit. Connection options belong in `connect`; model/input fields belong
54
+ in `connection.response.create`.
55
+
56
+ Known events are decoded into generated models on a best-effort basis. New
57
+ event types arrive as `OpenAI::Responses::UnknownServerEvent`. Preserve or handle
58
+ them explicitly where your application needs them. Do not assume every event
59
+ has a response, text delta, or lane ID.
60
+
61
+ ## Sequential tool turns
62
+
63
+ The `tools` workflow forces a call to one known, harmless application function.
64
+ After the response completes, it checks the function name and sends its output
65
+ using the original `call_id`. The next create uses `previous_response_id` and
66
+ only the new `function_call_output` item. It does not resend the previous input
67
+ on the same connection.
68
+
69
+ Tool execution belongs to your application. Validate arguments against your
70
+ tool's contract and authorize effects before execution. Never execute generated
71
+ code or dispatch arbitrary method names from a tool event. The example uses a
72
+ fixed result and does not execute model-provided code.
73
+
74
+ ## Multiplexing and continuation
75
+
76
+ `stream_id` routes events to a lane; `previous_response_id` selects conversation
77
+ history. They are independent. Reusing a lane without a previous response ID
78
+ starts a new response rather than continuing that lane's conversation.
79
+
80
+ The `multiplex` workflow writes two creates, then drains both lanes with one
81
+ reader. Events may interleave and the first terminal event does not finish the
82
+ whole operation. Keep a pending-lane set and retain each completed response ID.
83
+ Omitting `stream_id` uses the default lane; its events omit the field as well.
84
+
85
+ The example fails the whole operation on any error. Production applications can
86
+ route a lane-scoped error to just that lane, while treating a connection-scoped
87
+ error as affecting the connection. Track separate response IDs when multiple
88
+ requests are outstanding within a lane; a lane alone is not a request ID.
89
+
90
+ The server executes same-lane requests in FIFO order. The SDK does not enforce
91
+ lane grammar, schedule lanes, or manage a per-lane queue. Consult the platform
92
+ guide for the current concurrent-response and named-lane limits.
93
+
94
+ To fork, send an existing response ID on a different lane. With `store=false`,
95
+ wait for the fork's `response.in_progress` before advancing the source lane so
96
+ its parent remains available in the connection-local cache.
97
+
98
+ ## Reconnect without replaying uncertain work
99
+
100
+ Both reconnect examples intentionally close a healthy connection **after** a
101
+ completed turn, then open another connection. They do not catch a failed write
102
+ and retry it.
103
+
104
+ - **Stored:** send only the new input plus the stored `previous_response_id`.
105
+ If the service cannot retrieve that response, the application must decide
106
+ whether to reconstruct context and start a new chain.
107
+ - **Stateless:** connection-local state is lost on reconnect. Retain the original
108
+ inputs and every output item, including reasoning and tool items. Request
109
+ `include: ["reasoning.encrypted_content"]` for reasoning-model replay. Send the
110
+ retained history plus new input, omitting `previous_response_id` on the new
111
+ connection. Do not reduce history to displayed assistant text.
112
+
113
+ Retained history can contain sensitive data. Apply your application's retention
114
+ policy; neither the SDK nor this example writes a recovery log. A full-context
115
+ replay starts a new chain and is not an exactly-once retry of a failed turn.
116
+
117
+ Connections have a finite service lifetime (currently up to 60 minutes). Plan
118
+ rotation and persistence at completed-turn boundaries. There is no automatic
119
+ reconnect, rollover, or replay in this SDK connection.
120
+
121
+ ## Deadlines and shutdown
122
+
123
+ An SDK request timeout bounds connection negotiation, not an established
124
+ session's idle lifetime. The example wraps the complete workflow in an Async
125
+ deadline on the owning thread:
126
+
127
+ ```ruby
128
+ require "async"
129
+
130
+ Sync do |task|
131
+ task.with_timeout(60) do
132
+ client.responses.connect do |connection|
133
+ # Send and read on this thread, inside the deadline.
134
+ end
135
+ end
136
+ end
137
+ ```
138
+
139
+ Connections enforce one owning thread and one active reader. Do not call close
140
+ from another thread or nest `receive` inside an active `each`. The Async deadline
141
+ can interrupt an idle network read on the owning thread; the SDK then aborts and
142
+ cleans up the connection. A timeout inside a transport operation can surface as
143
+ `ResponsesConnectionError`, rather than `Async::TimeoutError`. Application code
144
+ that does CPU-bound work without yielding needs its own cancellation strategy.
145
+
146
+ Exiting the block normally performs a close. An exception or poisoned connection
147
+ causes an abort, avoiding a flush of uncertain buffered output. The peer may see
148
+ an abrupt disconnect. This is local shutdown, not a server-side cancellation
149
+ acknowledgment, and it does not guarantee that a response stopped executing.
150
+
151
+ ## Error and compatibility boundaries
152
+
153
+ - `ResponsesSendError#outcome` is `:unknown`: the server may have accepted the
154
+ event. Stop using that connection; do not automatically resend it.
155
+ - A transport read failure poisons the connection. A server `error` event is
156
+ delivered as an event and does not by itself poison it.
157
+ - Malformed JSON raises `ResponsesProtocolError` without exposing the payload;
158
+ the connection permits later reads. Decide whether continuing is appropriate
159
+ for your application.
160
+ - Raw `send_event` supports generated client models or hashes, including
161
+ `response.steer`. There is no `connection.response.steer` convenience method.
162
+ - The platform documents `generate: false` warmup. It can be forwarded through
163
+ create's keyword rest even though 0.86.0 has no named generated `generate`
164
+ keyword. Follow the platform contract; do not send HTTP-only `stream` or
165
+ `background` flags just because generated models expose them.
166
+ - X.509 workload identity and provider runtimes are not supported by this
167
+ entry point. A nonempty `request_options.extra_query` or nonzero
168
+ `request_options.max_retries` is rejected. Supported workload identity has a
169
+ narrow pre-handshake 401 refresh; that is not live-session recovery.
170
+ - Large events are valid. Plan memory and application backpressure for your
171
+ workload without treating a fixed payload size as a protocol maximum.
172
+
173
+ ## Offline verification
174
+
175
+ ```sh
176
+ bundle exec ruby -Itest test/openai/responses_websocket/workflows_test.rb
177
+ ```
178
+
179
+ The tests use real loopback WebSockets and synthetic data, exercise the default
180
+ Responses transport, and make no live API requests. They cover the four example
181
+ patterns, interleaved terminal events, fragmented text, premature EOF, failures,
182
+ idle-read deadlines, and a large event exceeding 32 MiB.
@@ -0,0 +1,62 @@
1
+ module OpenAI
2
+ module LocalAudio
3
+ def self.record: (
4
+ duration: Numeric,
5
+ ?device: (String | Integer)?,
6
+ ?timeout: Numeric?
7
+ ) -> OpenAI::FilePart
8
+ def self.play: (
9
+ IO | StringIO | OpenAI::FilePart source,
10
+ ?format: :auto | :pcm,
11
+ ?timeout: Numeric?
12
+ ) -> nil
13
+
14
+ # @api private
15
+ def self.playback_source: (
16
+ IO | StringIO | OpenAI::FilePart source
17
+ ) -> (IO | StringIO)
18
+
19
+ # @api private
20
+ def self.capture_device: (
21
+ (String | Integer)? device,
22
+ ?platform: String
23
+ ) -> [String, String]
24
+
25
+ # @api private
26
+ def self.wav_header: (Integer bytes) -> String
27
+
28
+ # @api private
29
+ class MediaProcess
30
+ def self.environment: -> Hash[String, String]
31
+ def self.clock: -> Float
32
+ def self.duration: (Numeric value, name: String | Symbol) -> Float
33
+ def initialize: (
34
+ Array[String] argv,
35
+ input: IO | String,
36
+ output: IO | String,
37
+ timeout: Numeric?,
38
+ ?capture_errors: bool
39
+ ) -> void
40
+ def check_deadline: -> void
41
+ def errors?: -> bool
42
+ def read: (IO | StringIO io, ?stop_on_exit: bool) -> String?
43
+ def write: (IO io, String bytes) -> void
44
+ def wait: -> Process::Status
45
+ def close: -> void
46
+ end
47
+ class Error < OpenAI::Errors::Error
48
+ end
49
+ class DependencyError < OpenAI::LocalAudio::Error
50
+ end
51
+ class UnsupportedPlatformError < OpenAI::LocalAudio::Error
52
+ end
53
+ class DeviceError < OpenAI::LocalAudio::Error
54
+ end
55
+ class PlaybackError < OpenAI::LocalAudio::Error
56
+ end
57
+ class TimeoutError < OpenAI::LocalAudio::Error
58
+ end
59
+ class FormatError < OpenAI::LocalAudio::Error
60
+ end
61
+ end
62
+ end
@@ -19,7 +19,11 @@ module OpenAI
19
19
  attr_reader input_audio_buffer: OpenAI::Realtime::ConnectionResources::InputAudioBuffer
20
20
 
21
21
  # @api private
22
- def initialize: (socket: untyped, url: URI::Generic) -> void
22
+ def initialize: (
23
+ socket: untyped,
24
+ url: URI::Generic,
25
+ ?recovery: untyped
26
+ ) -> void
23
27
  def each:
24
28
  -> Enumerator[OpenAI::Models::Realtime::connection_server_event, self]
25
29
  | {
@@ -39,6 +43,10 @@ module OpenAI
39
43
  # @api private
40
44
  def abort: -> nil
41
45
  def closed?: -> bool
46
+ def reconnecting?: -> bool
47
+ def pending_messages: -> Array[String]
48
+ def take_pending_messages: -> Array[String]
49
+ def flush_pending: -> nil
42
50
  end
43
51
  end
44
52
  end
@@ -52,6 +52,10 @@ module OpenAI
52
52
  class Realtime
53
53
  def connect: (
54
54
  model: String,
55
+ ?reconnect: bool,
56
+ ?max_reconnect_attempts: Integer,
57
+ ?max_queue_bytes: Integer,
58
+ ?on_reconnected: (^(OpenAI::Realtime::Connection) -> void)?,
55
59
  ?websocket_base_url: String?,
56
60
  ?request_options: OpenAI::request_opts?,
57
61
  ?transport: untyped?,
@@ -0,0 +1,19 @@
1
+ module OpenAI
2
+ module Errors
3
+ class RealtimeQueueFullError < OpenAI::Errors::Error
4
+ def initialize: -> void
5
+ end
6
+
7
+ class RealtimeReconnectError < OpenAI::Errors::Error
8
+ attr_reader unsent_messages: Array[String]
9
+ attr_reader uncertain_message: String?
10
+
11
+ # @api private
12
+ def initialize: (
13
+ message: String,
14
+ ?unsent_messages: Array[String],
15
+ ?uncertain_message: String?
16
+ ) -> void
17
+ end
18
+ end
19
+ end
@@ -14,7 +14,8 @@ module OpenAI
14
14
  ?object: :"organization.project.api_key",
15
15
  owner: OpenAI::Admin::Organization::Projects::ProjectAPIKey::Owner,
16
16
  owner_project_access: OpenAI::Models::Admin::Organization::Projects::ProjectAPIKey::owner_project_access,
17
- redacted_value: String
17
+ redacted_value: String,
18
+ ?expires_at: Integer?
18
19
  }
19
20
 
20
21
  class ProjectAPIKey < OpenAI::Internal::Type::BaseModel
@@ -34,6 +35,8 @@ module OpenAI
34
35
 
35
36
  attr_accessor redacted_value: String
36
37
 
38
+ attr_accessor expires_at: Integer?
39
+
37
40
  def initialize: (
38
41
  id: String,
39
42
  created_at: Integer,
@@ -42,6 +45,7 @@ module OpenAI
42
45
  owner: OpenAI::Admin::Organization::Projects::ProjectAPIKey::Owner,
43
46
  owner_project_access: OpenAI::Models::Admin::Organization::Projects::ProjectAPIKey::owner_project_access,
44
47
  redacted_value: String,
48
+ ?expires_at: Integer?,
45
49
  ?object: :"organization.project.api_key"
46
50
  ) -> void
47
51
 
@@ -53,7 +57,8 @@ module OpenAI
53
57
  ?object: :"organization.project.api_key",
54
58
  owner: OpenAI::Admin::Organization::Projects::ProjectAPIKey::Owner,
55
59
  owner_project_access: OpenAI::Models::Admin::Organization::Projects::ProjectAPIKey::owner_project_access,
56
- redacted_value: String
60
+ redacted_value: String,
61
+ ?expires_at: Integer?
57
62
  }
58
63
 
59
64
  type owner =
@@ -8,6 +8,7 @@ module OpenAI
8
8
  project_id: String,
9
9
  name: String,
10
10
  ?create_service_account_only: bool?,
11
+ ?expires_in_seconds: Integer?,
11
12
  ?request_options: OpenAI::request_opts
12
13
  }
13
14
 
@@ -21,10 +22,13 @@ module OpenAI
21
22
 
22
23
  attr_accessor create_service_account_only: bool?
23
24
 
25
+ attr_accessor expires_in_seconds: Integer?
26
+
24
27
  def initialize: (
25
28
  project_id: String,
26
29
  name: String,
27
30
  ?create_service_account_only: bool?,
31
+ ?expires_in_seconds: Integer?,
28
32
  ?request_options: OpenAI::request_opts
29
33
  ) -> void
30
34
 
@@ -32,6 +36,7 @@ module OpenAI
32
36
  project_id: String,
33
37
  name: String,
34
38
  ?create_service_account_only: bool?,
39
+ ?expires_in_seconds: Integer?,
35
40
  ?request_options: OpenAI::RequestOptions
36
41
  }
37
42
  end
@@ -50,7 +50,8 @@ module OpenAI
50
50
  created_at: Integer,
51
51
  name: String,
52
52
  ?object: :"organization.project.service_account.api_key",
53
- value: String
53
+ value: String,
54
+ ?expires_at: Integer?
54
55
  }
55
56
 
56
57
  class APIKey < OpenAI::Internal::Type::BaseModel
@@ -64,11 +65,14 @@ module OpenAI
64
65
 
65
66
  attr_accessor value: String
66
67
 
68
+ attr_accessor expires_at: Integer?
69
+
67
70
  def initialize: (
68
71
  id: String,
69
72
  created_at: Integer,
70
73
  name: String,
71
74
  value: String,
75
+ ?expires_at: Integer?,
72
76
  ?object: :"organization.project.service_account.api_key"
73
77
  ) -> void
74
78
 
@@ -77,7 +81,8 @@ module OpenAI
77
81
  created_at: Integer,
78
82
  name: String,
79
83
  ?object: :"organization.project.service_account.api_key",
80
- value: String
84
+ value: String,
85
+ ?expires_at: Integer?
81
86
  }
82
87
  end
83
88
 
@@ -860,7 +860,9 @@ module OpenAI
860
860
  result: String?,
861
861
  status: OpenAI::Models::Beta::BetaResponseInputItem::ImageGenerationCall::status,
862
862
  ?type: :image_generation_call,
863
- ?agent: OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::Agent?
863
+ ?agent: OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::Agent?,
864
+ ?quality: OpenAI::Models::Beta::BetaResponseInputItem::ImageGenerationCall::quality?,
865
+ ?size: OpenAI::Models::Beta::BetaResponseInputItem::ImageGenerationCall::size?
864
866
  }
865
867
 
866
868
  class ImageGenerationCall < OpenAI::Internal::Type::BaseModel
@@ -874,11 +876,17 @@ module OpenAI
874
876
 
875
877
  attr_accessor agent: OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::Agent?
876
878
 
879
+ attr_accessor quality: OpenAI::Models::Beta::BetaResponseInputItem::ImageGenerationCall::quality?
880
+
881
+ attr_accessor size: OpenAI::Models::Beta::BetaResponseInputItem::ImageGenerationCall::size?
882
+
877
883
  def initialize: (
878
884
  id: String,
879
885
  result: String?,
880
886
  status: OpenAI::Models::Beta::BetaResponseInputItem::ImageGenerationCall::status,
881
887
  ?agent: OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::Agent?,
888
+ ?quality: OpenAI::Models::Beta::BetaResponseInputItem::ImageGenerationCall::quality?,
889
+ ?size: OpenAI::Models::Beta::BetaResponseInputItem::ImageGenerationCall::size?,
882
890
  ?type: :image_generation_call
883
891
  ) -> void
884
892
 
@@ -887,7 +895,9 @@ module OpenAI
887
895
  result: String?,
888
896
  status: OpenAI::Models::Beta::BetaResponseInputItem::ImageGenerationCall::status,
889
897
  ?type: :image_generation_call,
890
- ?agent: OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::Agent?
898
+ ?agent: OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::Agent?,
899
+ ?quality: OpenAI::Models::Beta::BetaResponseInputItem::ImageGenerationCall::quality?,
900
+ ?size: OpenAI::Models::Beta::BetaResponseInputItem::ImageGenerationCall::size?
891
901
  }
892
902
 
893
903
  type status = :in_progress | :completed | :generating | :failed
@@ -912,6 +922,33 @@ module OpenAI
912
922
 
913
923
  def to_hash: -> { agent_name: String }
914
924
  end
925
+
926
+ type quality = :low | :medium | :high | :xhigh | :max | :auto
927
+
928
+ module Quality
929
+ extend OpenAI::Internal::Type::Enum
930
+
931
+ LOW: :low
932
+ MEDIUM: :medium
933
+ HIGH: :high
934
+ XHIGH: :xhigh
935
+ MAX: :max
936
+ AUTO: :auto
937
+
938
+ def self?.values: -> ::Array[OpenAI::Models::Beta::BetaResponseInputItem::ImageGenerationCall::quality]
939
+ end
940
+
941
+ type size = String | :"1024x1024" | :"1024x1536" | :"1536x1024"
942
+
943
+ module Size
944
+ extend OpenAI::Internal::Type::Union
945
+
946
+ def self?.variants: -> ::Array[OpenAI::Models::Beta::BetaResponseInputItem::ImageGenerationCall::size]
947
+
948
+ SIZE_1024X1024: :"1024x1024"
949
+ SIZE_1024X1536: :"1024x1536"
950
+ SIZE_1536X1024: :"1536x1024"
951
+ end
915
952
  end
916
953
 
917
954
  type local_shell_call =