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
@@ -9,24 +9,36 @@ module OpenAI
9
9
  # @return [OpenAI::Resources::VectorStores::FileBatches]
10
10
  attr_reader :file_batches
11
11
 
12
- # Some parameter documentations has been truncated, see
13
- # {OpenAI::Models::VectorStoreCreateParams} for more details.
14
- #
15
12
  # Create a vector store.
16
13
  #
17
14
  # @overload create(chunking_strategy: nil, description: nil, expires_after: nil, file_ids: nil, metadata: nil, name: nil, request_options: {})
18
15
  #
19
- # @param chunking_strategy [OpenAI::Models::AutoFileChunkingStrategyParam, OpenAI::Models::StaticFileChunkingStrategyObjectParam] The chunking strategy used to chunk the file(s). If not set, will use the `auto`
16
+ # @param chunking_strategy [OpenAI::Models::AutoFileChunkingStrategyParam, OpenAI::Models::StaticFileChunkingStrategyObjectParam]
17
+ # The chunking strategy used to chunk the file(s). If not set, will use the `auto`
18
+ # strategy. Only applicable if `file_ids` is non-empty.
19
+ #
20
+ # @param description [String]
21
+ # A description for the vector store. Can be used to describe the vector store's
22
+ # purpose.
20
23
  #
21
- # @param description [String] A description for the vector store. Can be used to describe the vector store's p
24
+ # @param expires_after [OpenAI::Models::VectorStoreCreateParams::ExpiresAfter]
25
+ # The expiration policy for a vector store.
22
26
  #
23
- # @param expires_after [OpenAI::Models::VectorStoreCreateParams::ExpiresAfter] The expiration policy for a vector store.
27
+ # @param file_ids [Array<String>]
28
+ # A list of [File](https://developers.openai.com/api/reference/resources/files)
29
+ # IDs that the vector store should use. Useful for tools like `file_search` that
30
+ # can access files.
24
31
  #
25
- # @param file_ids [Array<String>] A list of [File](https://platform.openai.com/docs/api-reference/files) IDs that
32
+ # @param metadata [Hash{Symbol=>String}, nil]
33
+ # Set of 16 key-value pairs that can be attached to an object. This can be useful
34
+ # for storing additional information about the object in a structured format, and
35
+ # querying for objects via API or the dashboard.
26
36
  #
27
- # @param metadata [Hash{Symbol=>String}, nil] Set of 16 key-value pairs that can be attached to an object. This can be
37
+ # Keys are strings with a maximum length of 64 characters. Values are strings with
38
+ # a maximum length of 512 characters.
28
39
  #
29
- # @param name [String] The name of the vector store.
40
+ # @param name [String]
41
+ # The name of the vector store.
30
42
  #
31
43
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
32
44
  #
@@ -49,7 +61,8 @@ module OpenAI
49
61
  #
50
62
  # @overload retrieve(vector_store_id, request_options: {})
51
63
  #
52
- # @param vector_store_id [String] The ID of the vector store to retrieve.
64
+ # @param vector_store_id [String]
65
+ # The ID of the vector store to retrieve.
53
66
  #
54
67
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
55
68
  #
@@ -66,20 +79,26 @@ module OpenAI
66
79
  )
67
80
  end
68
81
 
69
- # Some parameter documentations has been truncated, see
70
- # {OpenAI::Models::VectorStoreUpdateParams} for more details.
71
- #
72
82
  # Modifies a vector store.
73
83
  #
74
84
  # @overload update(vector_store_id, expires_after: nil, metadata: nil, name: nil, request_options: {})
75
85
  #
76
- # @param vector_store_id [String] The ID of the vector store to modify.
86
+ # @param vector_store_id [String]
87
+ # The ID of the vector store to modify.
77
88
  #
78
- # @param expires_after [OpenAI::Models::VectorStoreUpdateParams::ExpiresAfter, nil] The expiration policy for a vector store.
89
+ # @param expires_after [OpenAI::Models::VectorStoreUpdateParams::ExpiresAfter, nil]
90
+ # The expiration policy for a vector store.
79
91
  #
80
- # @param metadata [Hash{Symbol=>String}, nil] Set of 16 key-value pairs that can be attached to an object. This can be
92
+ # @param metadata [Hash{Symbol=>String}, nil]
93
+ # Set of 16 key-value pairs that can be attached to an object. This can be useful
94
+ # for storing additional information about the object in a structured format, and
95
+ # querying for objects via API or the dashboard.
81
96
  #
82
- # @param name [String, nil] The name of the vector store.
97
+ # Keys are strings with a maximum length of 64 characters. Values are strings with
98
+ # a maximum length of 512 characters.
99
+ #
100
+ # @param name [String, nil]
101
+ # The name of the vector store.
83
102
  #
84
103
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
85
104
  #
@@ -98,20 +117,29 @@ module OpenAI
98
117
  )
99
118
  end
100
119
 
101
- # Some parameter documentations has been truncated, see
102
- # {OpenAI::Models::VectorStoreListParams} for more details.
103
- #
104
120
  # Returns a list of vector stores.
105
121
  #
106
122
  # @overload list(after: nil, before: nil, limit: nil, order: nil, request_options: {})
107
123
  #
108
- # @param after [String] A cursor for use in pagination. `after` is an object ID that defines your place
124
+ # @param after [String]
125
+ # A cursor for use in pagination. `after` is an object ID that defines your place
126
+ # in the list. For instance, if you make a list request and receive 100 objects,
127
+ # ending with obj_foo, your subsequent call can include after=obj_foo in order to
128
+ # fetch the next page of the list.
109
129
  #
110
- # @param before [String] A cursor for use in pagination. `before` is an object ID that defines your place
130
+ # @param before [String]
131
+ # A cursor for use in pagination. `before` is an object ID that defines your place
132
+ # in the list. For instance, if you make a list request and receive 100 objects,
133
+ # starting with obj_foo, your subsequent call can include before=obj_foo in order
134
+ # to fetch the previous page of the list.
111
135
  #
112
- # @param limit [Integer] A limit on the number of objects to be returned. Limit can range between 1 and 1
136
+ # @param limit [Integer]
137
+ # A limit on the number of objects to be returned. Limit can range between 1 and
138
+ # 100, and the default is 20.
113
139
  #
114
- # @param order [Symbol, OpenAI::Models::VectorStoreListParams::Order] Sort order by the `created_at` timestamp of the objects. `asc` for ascending ord
140
+ # @param order [Symbol, OpenAI::Models::VectorStoreListParams::Order]
141
+ # Sort order by the `created_at` timestamp of the objects. `asc` for ascending
142
+ # order and `desc` for descending order.
115
143
  #
116
144
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
117
145
  #
@@ -136,7 +164,8 @@ module OpenAI
136
164
  #
137
165
  # @overload delete(vector_store_id, request_options: {})
138
166
  #
139
- # @param vector_store_id [String] The ID of the vector store to delete.
167
+ # @param vector_store_id [String]
168
+ # The ID of the vector store to delete.
140
169
  #
141
170
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
142
171
  #
@@ -153,25 +182,29 @@ module OpenAI
153
182
  )
154
183
  end
155
184
 
156
- # Some parameter documentations has been truncated, see
157
- # {OpenAI::Models::VectorStoreSearchParams} for more details.
158
- #
159
185
  # Search a vector store for relevant chunks based on a query and file attributes
160
186
  # filter.
161
187
  #
162
188
  # @overload search(vector_store_id, query:, filters: nil, max_num_results: nil, ranking_options: nil, rewrite_query: nil, request_options: {})
163
189
  #
164
- # @param vector_store_id [String] The ID of the vector store to search.
190
+ # @param vector_store_id [String]
191
+ # The ID of the vector store to search.
165
192
  #
166
- # @param query [String, Array<String>] A query string for a search
193
+ # @param query [String, Array<String>]
194
+ # A query string for a search
167
195
  #
168
- # @param filters [OpenAI::Models::ComparisonFilter, OpenAI::Models::CompoundFilter] A filter to apply based on file attributes.
196
+ # @param filters [OpenAI::Models::ComparisonFilter, OpenAI::Models::CompoundFilter]
197
+ # A filter to apply based on file attributes.
169
198
  #
170
- # @param max_num_results [Integer] The maximum number of results to return. This number should be between 1 and 50
199
+ # @param max_num_results [Integer]
200
+ # The maximum number of results to return. This number should be between 1 and 50
201
+ # inclusive.
171
202
  #
172
- # @param ranking_options [OpenAI::Models::VectorStoreSearchParams::RankingOptions] Ranking options for search.
203
+ # @param ranking_options [OpenAI::Models::VectorStoreSearchParams::RankingOptions]
204
+ # Ranking options for search.
173
205
  #
174
- # @param rewrite_query [Boolean] Whether to rewrite the natural language query for vector search.
206
+ # @param rewrite_query [Boolean]
207
+ # Whether to rewrite the natural language query for vector search.
175
208
  #
176
209
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
177
210
  #
@@ -7,9 +7,6 @@ module OpenAI
7
7
  class Videos
8
8
  # @deprecated The Sora API is scheduled to permanently shut down on September 24, 2026.
9
9
  #
10
- # Some parameter documentations has been truncated, see
11
- # {OpenAI::Models::VideoCreateParams} for more details.
12
- #
13
10
  # Create a new video generation job from a prompt and optional reference assets.
14
11
  #
15
12
  # `String`, `StringIO`, and pathless `IO` inputs are sent with generic upload
@@ -18,15 +15,26 @@ module OpenAI
18
15
  #
19
16
  # @overload create(prompt:, input_reference: nil, model: nil, seconds: nil, size: nil, request_options: {})
20
17
  #
21
- # @param prompt [String] Text prompt that describes the video to generate.
18
+ # @param prompt [String]
19
+ # Text prompt that describes the video to generate.
20
+ #
21
+ # @param input_reference [Pathname, StringIO, IO, String, OpenAI::FilePart, OpenAI::Models::ImageInputReferenceParam]
22
+ # Optional reference asset upload or reference object that guides generation.
22
23
  #
23
- # @param input_reference [Pathname, StringIO, IO, String, OpenAI::FilePart, OpenAI::Models::ImageInputReferenceParam] Optional reference asset upload or reference object that guides generation.
24
+ # `String`, `StringIO`, and pathless `IO` inputs are sent with generic upload
25
+ # metadata. Use `OpenAI::FilePart` when you need to override the filename or
26
+ # content type.
24
27
  #
25
- # @param model [String, Symbol, OpenAI::Models::VideoModel] The video generation model to use (allowed values: sora-2, sora-2-pro). Defaults
28
+ # @param model [String, Symbol, OpenAI::Models::VideoModel]
29
+ # The video generation model to use (allowed values: sora-2, sora-2-pro). Defaults
30
+ # to `sora-2`.
26
31
  #
27
- # @param seconds [Symbol, OpenAI::Models::VideoSeconds] Clip duration in seconds (allowed values: 4, 8, 12). Defaults to 4 seconds.
32
+ # @param seconds [Symbol, OpenAI::Models::VideoSeconds]
33
+ # Clip duration in seconds (allowed values: 4, 8, 12). Defaults to 4 seconds.
28
34
  #
29
- # @param size [Symbol, OpenAI::Models::VideoSize] Output resolution formatted as width x height (allowed values: 720x1280, 1280x72
35
+ # @param size [Symbol, OpenAI::Models::VideoSize]
36
+ # Output resolution formatted as width x height (allowed values: 720x1280,
37
+ # 1280x720, 1024x1792, 1792x1024). Defaults to 720x1280.
30
38
  #
31
39
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
32
40
  #
@@ -52,7 +60,8 @@ module OpenAI
52
60
  #
53
61
  # @overload retrieve(video_id, request_options: {})
54
62
  #
55
- # @param video_id [String] The identifier of the video to retrieve.
63
+ # @param video_id [String]
64
+ # The identifier of the video to retrieve.
56
65
  #
57
66
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
58
67
  #
@@ -71,18 +80,19 @@ module OpenAI
71
80
 
72
81
  # @deprecated The Sora API is scheduled to permanently shut down on September 24, 2026.
73
82
  #
74
- # Some parameter documentations has been truncated, see
75
- # {OpenAI::Models::VideoListParams} for more details.
76
- #
77
83
  # List recently generated videos for the current project.
78
84
  #
79
85
  # @overload list(after: nil, limit: nil, order: nil, request_options: {})
80
86
  #
81
- # @param after [String] Identifier for the last item from the previous pagination request
87
+ # @param after [String]
88
+ # Identifier for the last item from the previous pagination request
82
89
  #
83
- # @param limit [Integer] Number of items to retrieve
90
+ # @param limit [Integer]
91
+ # Number of items to retrieve
84
92
  #
85
- # @param order [Symbol, OpenAI::Models::VideoListParams::Order] Sort order of results by timestamp. Use `asc` for ascending order or `desc` for
93
+ # @param order [Symbol, OpenAI::Models::VideoListParams::Order]
94
+ # Sort order of results by timestamp. Use `asc` for ascending order or `desc` for
95
+ # descending order.
86
96
  #
87
97
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
88
98
  #
@@ -109,7 +119,8 @@ module OpenAI
109
119
  #
110
120
  # @overload delete(video_id, request_options: {})
111
121
  #
112
- # @param video_id [String] The identifier of the video to delete.
122
+ # @param video_id [String]
123
+ # The identifier of the video to delete.
113
124
  #
114
125
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
115
126
  #
@@ -136,9 +147,15 @@ module OpenAI
136
147
  #
137
148
  # @overload create_character(name:, video:, request_options: {})
138
149
  #
139
- # @param name [String] Display name for this API character.
150
+ # @param name [String]
151
+ # Display name for this API character.
152
+ #
153
+ # @param video [Pathname, StringIO, IO, String, OpenAI::FilePart]
154
+ # Video file used to create a character.
140
155
  #
141
- # @param video [Pathname, StringIO, IO, String, OpenAI::FilePart] Video file used to create a character.
156
+ # `String`, `StringIO`, and pathless `IO` inputs are sent with generic upload
157
+ # metadata. Use `OpenAI::FilePart` when you need to override the filename or
158
+ # content type.
142
159
  #
143
160
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
144
161
  #
@@ -166,9 +183,11 @@ module OpenAI
166
183
  #
167
184
  # @overload download_content(video_id, variant: nil, request_options: {})
168
185
  #
169
- # @param video_id [String] The identifier of the video whose media to download.
186
+ # @param video_id [String]
187
+ # The identifier of the video whose media to download.
170
188
  #
171
- # @param variant [Symbol, OpenAI::Models::VideoDownloadContentParams::Variant] Which downloadable asset to return. Defaults to the MP4 video.
189
+ # @param variant [Symbol, OpenAI::Models::VideoDownloadContentParams::Variant]
190
+ # Which downloadable asset to return. Defaults to the MP4 video.
172
191
  #
173
192
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
174
193
  #
@@ -200,9 +219,15 @@ module OpenAI
200
219
  #
201
220
  # @overload edit(prompt:, video:, request_options: {})
202
221
  #
203
- # @param prompt [String] Text prompt that describes how to edit the source video.
222
+ # @param prompt [String]
223
+ # Text prompt that describes how to edit the source video.
204
224
  #
205
- # @param video [Pathname, StringIO, IO, String, OpenAI::FilePart, OpenAI::Models::VideoEditParams::Video::VideoReferenceInputParam] Reference to the completed video to edit.
225
+ # @param video [Pathname, StringIO, IO, String, OpenAI::FilePart, OpenAI::Models::VideoEditParams::Video::VideoReferenceInputParam]
226
+ # Reference to the completed video to edit.
227
+ #
228
+ # `String`, `StringIO`, and pathless `IO` inputs are sent with generic upload
229
+ # metadata. Use `OpenAI::FilePart` when you need to override the filename or
230
+ # content type.
206
231
  #
207
232
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
208
233
  #
@@ -224,9 +249,6 @@ module OpenAI
224
249
 
225
250
  # @deprecated The Sora API is scheduled to permanently shut down on September 24, 2026.
226
251
  #
227
- # Some parameter documentations has been truncated, see
228
- # {OpenAI::Models::VideoExtendParams} for more details.
229
- #
230
252
  # Create an extension of a completed video.
231
253
  #
232
254
  # `String`, `StringIO`, and pathless `IO` inputs are sent with generic upload
@@ -235,11 +257,19 @@ module OpenAI
235
257
  #
236
258
  # @overload extend_(prompt:, seconds:, video:, request_options: {})
237
259
  #
238
- # @param prompt [String] Updated text prompt that directs the extension generation.
260
+ # @param prompt [String]
261
+ # Updated text prompt that directs the extension generation.
262
+ #
263
+ # @param seconds [Symbol, OpenAI::Models::VideoSeconds]
264
+ # Length of the newly generated extension segment in seconds (allowed values: 4,
265
+ # 8, 12, 16, 20).
239
266
  #
240
- # @param seconds [Symbol, OpenAI::Models::VideoSeconds] Length of the newly generated extension segment in seconds (allowed values: 4, 8
267
+ # @param video [Pathname, StringIO, IO, String, OpenAI::FilePart, OpenAI::Models::VideoExtendParams::Video::VideoReferenceInputParam]
268
+ # Reference to the completed video to extend.
241
269
  #
242
- # @param video [Pathname, StringIO, IO, String, OpenAI::FilePart, OpenAI::Models::VideoExtendParams::Video::VideoReferenceInputParam] Reference to the completed video to extend.
270
+ # `String`, `StringIO`, and pathless `IO` inputs are sent with generic upload
271
+ # metadata. Use `OpenAI::FilePart` when you need to override the filename or
272
+ # content type.
243
273
  #
244
274
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
245
275
  #
@@ -265,7 +295,8 @@ module OpenAI
265
295
  #
266
296
  # @overload get_character(character_id, request_options: {})
267
297
  #
268
- # @param character_id [String] The identifier of the character to retrieve.
298
+ # @param character_id [String]
299
+ # The identifier of the character to retrieve.
269
300
  #
270
301
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
271
302
  #
@@ -288,9 +319,11 @@ module OpenAI
288
319
  #
289
320
  # @overload remix(video_id, prompt:, request_options: {})
290
321
  #
291
- # @param video_id [String] The identifier of the completed video to remix.
322
+ # @param video_id [String]
323
+ # The identifier of the completed video to remix.
292
324
  #
293
- # @param prompt [String] Updated text prompt that directs the remix generation.
325
+ # @param prompt [String]
326
+ # Updated text prompt that directs the remix generation.
294
327
  #
295
328
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
296
329
  #
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OpenAI
4
- VERSION = "0.86.0"
4
+ VERSION = "0.88.0"
5
5
  end
data/local-audio.md ADDED
@@ -0,0 +1,146 @@
1
+ # Local recording and playback
2
+
3
+ Use `OpenAI::LocalAudio` to record a finite microphone clip or play generated
4
+ speech. These helpers run separately installed FFmpeg and FFplay executables.
5
+ They do not add native gem dependencies. Loading `openai` or the helper does not
6
+ open a device; calling `record` or `play` starts the corresponding operation.
7
+
8
+ ## Setup
9
+
10
+ Install FFmpeg and FFplay and make both executables available on `PATH`. Your
11
+ FFmpeg build must include the capture backend for your operating system. Allow
12
+ microphone access in your operating system when recording.
13
+
14
+ With `OPENAI_API_KEY` configured, run:
15
+
16
+ ```sh
17
+ bundle exec ruby examples/audio/record_and_play.rb
18
+ ```
19
+
20
+ The example records five seconds, uploads the clip for transcription, prints the
21
+ transcript, and plays generated speech. Models and voice are constants at the top
22
+ of the example so they are easy to change.
23
+
24
+ ## Record a clip
25
+
26
+ ```ruby
27
+ require "openai"
28
+ require "openai/helpers/local_audio"
29
+
30
+ client = OpenAI::Client.new
31
+ clip = OpenAI::LocalAudio.record(duration: 5, timeout: 10)
32
+ transcript = client.audio.transcriptions.create(model: "gpt-transcribe", file: clip)
33
+ puts(transcript.text)
34
+ ```
35
+
36
+ `record(duration:, device: nil, timeout: nil)` returns an `OpenAI::FilePart`
37
+ containing a rewound `StringIO`, named `audio.wav` with content type `audio/wav`.
38
+ The audio is mono, 24 kHz, signed 16-bit PCM. The helper buffers the recording in
39
+ memory, so memory use grows with recording duration.
40
+
41
+ `duration` is required and must be positive and finite. `timeout` is an optional
42
+ positive, finite wall-clock deadline in seconds. An expired deadline raises an
43
+ error rather than returning a partial recording.
44
+
45
+ ### Choose a microphone
46
+
47
+ On macOS and Linux, omitting `device:` uses the capture backend's default device.
48
+ To select another microphone, pass `device:` directly:
49
+
50
+ ```ruby
51
+ # macOS: AVFoundation audio device index (or its device name).
52
+ clip = OpenAI::LocalAudio.record(duration: 5, device: 0)
53
+
54
+ # Linux: ALSA device name; integer 0 is shorthand for "hw:0".
55
+ clip = OpenAI::LocalAudio.record(duration: 5, device: "hw:0")
56
+
57
+ # Windows: DirectShow requires an explicit audio device name.
58
+ clip = OpenAI::LocalAudio.record(duration: 5, device: "Microphone (USB Audio)")
59
+ ```
60
+
61
+ For Windows, add the appropriate `device:` argument to the example's `record`
62
+ call. There is no device environment variable to configure. Device names and
63
+ indices are local to your machine and may change when hardware is reconnected.
64
+
65
+ List capture devices using your platform's tools:
66
+
67
+ ```sh
68
+ # macOS (FFmpeg prints the list and exits without recording)
69
+ ffmpeg -f avfoundation -list_devices true -i ""
70
+
71
+ # Linux
72
+ arecord -L
73
+
74
+ # Windows (FFmpeg prints the list and exits without recording)
75
+ ffmpeg -list_devices true -f dshow -i dummy
76
+ ```
77
+
78
+ ## Play speech
79
+
80
+ ```ruby
81
+ speech = client.audio.speech.create(
82
+ model: "gpt-4o-mini-tts",
83
+ voice: "marin",
84
+ input: "Recording complete."
85
+ )
86
+ OpenAI::LocalAudio.play(speech, timeout: 30)
87
+ ```
88
+
89
+ `play(source, format: :auto, timeout: nil)` waits for FFplay to finish and returns
90
+ `nil`. It accepts `IO`, `StringIO`, or a `FilePart` containing IO or binary bytes.
91
+ It reads from the source's current position and leaves caller-owned IO open. Bare
92
+ strings are not interpreted as file paths or URLs.
93
+
94
+ The default `format: :auto` supports self-contained WAV, MP3, Ogg, AAC and FLAC
95
+ streams. For headerless mono 24 kHz signed little-endian PCM16, pass
96
+ `format: :pcm`. PCM must end on a complete two-byte sample. Playback uses FFplay's
97
+ configured output device; this helper has no output-device selector.
98
+
99
+ Both methods close their pipes and terminate/reap owned subprocesses on errors
100
+ or interruption. Errors are under `OpenAI::LocalAudio::Error`:
101
+ `DependencyError`, `UnsupportedPlatformError`, `DeviceError`, `PlaybackError`,
102
+ `FormatError`, and `TimeoutError`. Media subprocesses receive a restricted
103
+ environment without the API key, and their diagnostics are not included in
104
+ exceptions. FFplay can exit successfully despite a decoder or device error, so
105
+ the helper drains error-level diagnostics through a pipe, retaining only whether
106
+ an error occurred. Diagnostic contents are discarded and never written to disk.
107
+
108
+ ## Model choices
109
+
110
+ Checked against OpenAI documentation on September 8, 2026:
111
+
112
+ - [`gpt-transcribe`](https://developers.openai.com/api/docs/guides/speech-to-text) is the recommended model for general-purpose file transcription.
113
+ - [`gpt-4o-mini-tts`](https://developers.openai.com/api/docs/guides/text-to-speech) is the current recommended speech-generation model; `marin` is one of the recommended voices for quality.
114
+
115
+ ## Realtime applications
116
+
117
+ For streaming audio and conversation events, use the existing
118
+ [Realtime API helpers](realtime.md) and [Realtime examples](examples/realtime/README.md).
119
+ The finite helpers here do not manage a continuous microphone stream,
120
+ interruptible voice conversation, echo cancellation, or playback-position tracking.
121
+
122
+ ## End-to-end verification
123
+
124
+ Run the actual recording example against the live API without opening physical
125
+ devices:
126
+
127
+ ```sh
128
+ bundle exec ruby scripts/test-local-audio-examples.rb
129
+ ```
130
+
131
+ To also run the invalid-audio regression against installed FFplay:
132
+
133
+ ```sh
134
+ OPENAI_AUDIO_FFPLAY_TEST=1 bundle exec ruby test/openai/helpers/local_audio_test.rb
135
+ ```
136
+
137
+ This opt-in test requires `OPENAI_API_KEY`, FFmpeg and FFplay and makes paid API
138
+ calls. It generates synthetic speech, substitutes that file for microphone input,
139
+ runs real FFmpeg capture and transcription, generates speech, and plays it through
140
+ FFplay's dummy output driver. It checks the transcription and successful example
141
+ completion with a 90-second example deadline. Captured API output is not logged;
142
+ temporary synthetic media is removed on normal exit or exceptions.
143
+
144
+ This verifies the software flow, not physical microphone permissions, speaker
145
+ output, or device compatibility. Physical hardware and platform behavior must be
146
+ checked on the intended host.
@@ -0,0 +1,110 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module LocalAudio
5
+ sig {
6
+ params(duration: Numeric, device: T.nilable(T.any(String, Integer)), timeout: T.nilable(Numeric)).returns(
7
+ OpenAI::FilePart
8
+ )
9
+ }
10
+ def self.record(duration:, device: nil, timeout: nil)
11
+ end
12
+
13
+ sig {
14
+ params(source: T.any(IO, StringIO, OpenAI::FilePart), format: Symbol, timeout: T.nilable(Numeric)).returns(
15
+ NilClass
16
+ )
17
+ }
18
+ def self.play(source, format: :auto, timeout: nil)
19
+ end
20
+
21
+ # @api private
22
+ sig { params(source: T.any(IO, StringIO, OpenAI::FilePart)).returns(T.any(IO, StringIO)) }
23
+ def self.playback_source(source)
24
+ end
25
+
26
+ # @api private
27
+ sig { params(device: T.nilable(T.any(String, Integer)), platform: String).returns([String, String]) }
28
+ def self.capture_device(device, platform: RUBY_PLATFORM)
29
+ end
30
+
31
+ # @api private
32
+ sig { params(bytes: Integer).returns(String) }
33
+ def self.wav_header(bytes)
34
+ end
35
+
36
+ # @api private
37
+ class MediaProcess
38
+ sig { returns(T::Hash[String, String]) }
39
+ def self.environment
40
+ end
41
+
42
+ sig { returns(Float) }
43
+ def self.clock
44
+ end
45
+
46
+ sig { params(value: Numeric, name: T.any(String, Symbol)).returns(Float) }
47
+ def self.duration(value, name:)
48
+ end
49
+
50
+ sig {
51
+ params(
52
+ argv: T::Array[String],
53
+ input: T.any(IO, String),
54
+ output: T.any(IO, String),
55
+ timeout: T.nilable(Numeric),
56
+ capture_errors: T::Boolean
57
+ )
58
+ .void
59
+ }
60
+ def initialize(argv, input:, output:, timeout:, capture_errors: false)
61
+ end
62
+
63
+ sig { void }
64
+ def check_deadline
65
+ end
66
+
67
+ sig { returns(T::Boolean) }
68
+ def errors?
69
+ end
70
+
71
+ sig { params(io: T.any(IO, StringIO), stop_on_exit: T::Boolean).returns(T.nilable(String)) }
72
+ def read(io, stop_on_exit: false)
73
+ end
74
+
75
+ sig { params(io: IO, bytes: String).void }
76
+ def write(io, bytes)
77
+ end
78
+
79
+ sig { returns(Process::Status) }
80
+ def wait
81
+ end
82
+
83
+ sig { void }
84
+ def close
85
+ end
86
+ end
87
+
88
+ class Error < OpenAI::Errors::Error
89
+ end
90
+
91
+ class DependencyError < OpenAI::LocalAudio::Error
92
+ end
93
+
94
+ class UnsupportedPlatformError < OpenAI::LocalAudio::Error
95
+ end
96
+
97
+ class DeviceError < OpenAI::LocalAudio::Error
98
+ end
99
+
100
+ class PlaybackError < OpenAI::LocalAudio::Error
101
+ end
102
+
103
+ class TimeoutError < OpenAI::LocalAudio::Error
104
+ end
105
+
106
+ class FormatError < OpenAI::LocalAudio::Error
107
+ end
108
+
109
+ end
110
+ end
@@ -39,9 +39,9 @@ module OpenAI
39
39
 
40
40
  # @api private
41
41
  sig do
42
- params(socket: T.untyped, url: URI::Generic).returns(T.attached_class)
42
+ params(socket: T.untyped, url: URI::Generic, recovery: T.untyped).returns(T.attached_class)
43
43
  end
44
- def self.new(socket:, url:)
44
+ def self.new(socket:, url:, recovery: nil)
45
45
  end
46
46
 
47
47
  sig do
@@ -75,6 +75,22 @@ module OpenAI
75
75
  def send_raw(data)
76
76
  end
77
77
 
78
+ sig { returns(T::Boolean) }
79
+ def reconnecting?
80
+ end
81
+
82
+ sig { returns(T::Array[String]) }
83
+ def pending_messages
84
+ end
85
+
86
+ sig { returns(T::Array[String]) }
87
+ def take_pending_messages
88
+ end
89
+
90
+ sig { void }
91
+ def flush_pending
92
+ end
93
+
78
94
  sig { params(code: Integer, reason: String).void }
79
95
  def close(code: 1000, reason: "")
80
96
  end