openai 0.50.0 → 0.52.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 (554) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +38 -0
  3. data/README.md +1 -1
  4. data/lib/openai/client.rb +14 -0
  5. data/lib/openai/internal/conversation_cursor_page.rb +2 -2
  6. data/lib/openai/internal/type/enum.rb +6 -6
  7. data/lib/openai/internal/util.rb +31 -0
  8. data/lib/openai/models/batch_cancel_params.rb +7 -1
  9. data/lib/openai/models/batch_retrieve_params.rb +7 -1
  10. data/lib/openai/models/beta/assistant_create_params.rb +3 -2
  11. data/lib/openai/models/beta/assistant_delete_params.rb +7 -1
  12. data/lib/openai/models/beta/assistant_retrieve_params.rb +7 -1
  13. data/lib/openai/models/beta/assistant_update_params.rb +8 -1
  14. data/lib/openai/models/beta/chatkit/session_cancel_params.rb +7 -1
  15. data/lib/openai/models/beta/chatkit/thread_delete_params.rb +7 -1
  16. data/lib/openai/models/beta/chatkit/thread_list_items_params.rb +8 -1
  17. data/lib/openai/models/beta/chatkit/thread_retrieve_params.rb +7 -1
  18. data/lib/openai/models/beta/thread_create_and_run_params.rb +3 -2
  19. data/lib/openai/models/beta/thread_create_params.rb +3 -2
  20. data/lib/openai/models/beta/thread_delete_params.rb +7 -1
  21. data/lib/openai/models/beta/thread_retrieve_params.rb +7 -1
  22. data/lib/openai/models/beta/thread_update_params.rb +8 -1
  23. data/lib/openai/models/beta/threads/message_create_params.rb +8 -1
  24. data/lib/openai/models/beta/threads/message_delete_params.rb +7 -1
  25. data/lib/openai/models/beta/threads/message_list_params.rb +8 -1
  26. data/lib/openai/models/beta/threads/message_retrieve_params.rb +7 -1
  27. data/lib/openai/models/beta/threads/message_update_params.rb +8 -1
  28. data/lib/openai/models/beta/threads/run_cancel_params.rb +7 -1
  29. data/lib/openai/models/beta/threads/run_create_params.rb +8 -1
  30. data/lib/openai/models/beta/threads/run_list_params.rb +8 -1
  31. data/lib/openai/models/beta/threads/run_retrieve_params.rb +7 -1
  32. data/lib/openai/models/beta/threads/run_submit_tool_outputs_params.rb +8 -1
  33. data/lib/openai/models/beta/threads/run_update_params.rb +8 -1
  34. data/lib/openai/models/beta/threads/runs/step_list_params.rb +8 -1
  35. data/lib/openai/models/beta/threads/runs/step_retrieve_params.rb +8 -1
  36. data/lib/openai/models/chat/completion_delete_params.rb +7 -1
  37. data/lib/openai/models/chat/completion_retrieve_params.rb +7 -1
  38. data/lib/openai/models/chat/completion_update_params.rb +8 -1
  39. data/lib/openai/models/chat/completions/message_list_params.rb +8 -1
  40. data/lib/openai/models/chat_model.rb +2 -0
  41. data/lib/openai/models/container_delete_params.rb +7 -1
  42. data/lib/openai/models/container_retrieve_params.rb +7 -1
  43. data/lib/openai/models/containers/file_create_params.rb +8 -1
  44. data/lib/openai/models/containers/file_delete_params.rb +7 -1
  45. data/lib/openai/models/containers/file_list_params.rb +8 -1
  46. data/lib/openai/models/containers/file_retrieve_params.rb +7 -1
  47. data/lib/openai/models/containers/files/content_retrieve_params.rb +7 -1
  48. data/lib/openai/models/conversations/computer_screenshot_content.rb +26 -1
  49. data/lib/openai/models/conversations/conversation_create_params.rb +2 -2
  50. data/lib/openai/models/conversations/conversation_delete_params.rb +7 -1
  51. data/lib/openai/models/conversations/conversation_item.rb +5 -1
  52. data/lib/openai/models/conversations/conversation_item_list.rb +2 -2
  53. data/lib/openai/models/conversations/conversation_retrieve_params.rb +7 -1
  54. data/lib/openai/models/conversations/conversation_update_params.rb +8 -1
  55. data/lib/openai/models/conversations/item_create_params.rb +10 -3
  56. data/lib/openai/models/conversations/item_delete_params.rb +7 -1
  57. data/lib/openai/models/conversations/item_list_params.rb +8 -1
  58. data/lib/openai/models/conversations/item_retrieve_params.rb +8 -1
  59. data/lib/openai/models/eval_delete_params.rb +7 -1
  60. data/lib/openai/models/eval_retrieve_params.rb +7 -1
  61. data/lib/openai/models/eval_update_params.rb +8 -1
  62. data/lib/openai/models/evals/run_cancel_params.rb +7 -1
  63. data/lib/openai/models/evals/run_cancel_response.rb +2 -2
  64. data/lib/openai/models/evals/run_create_params.rb +10 -3
  65. data/lib/openai/models/evals/run_create_response.rb +2 -2
  66. data/lib/openai/models/evals/run_delete_params.rb +7 -1
  67. data/lib/openai/models/evals/run_list_params.rb +8 -1
  68. data/lib/openai/models/evals/run_list_response.rb +2 -2
  69. data/lib/openai/models/evals/run_retrieve_params.rb +7 -1
  70. data/lib/openai/models/evals/run_retrieve_response.rb +2 -2
  71. data/lib/openai/models/evals/runs/output_item_list_params.rb +8 -1
  72. data/lib/openai/models/evals/runs/output_item_retrieve_params.rb +7 -1
  73. data/lib/openai/models/file_content_params.rb +7 -1
  74. data/lib/openai/models/file_delete_params.rb +7 -1
  75. data/lib/openai/models/file_retrieve_params.rb +7 -1
  76. data/lib/openai/models/fine_tuning/checkpoints/permission_create_params.rb +8 -1
  77. data/lib/openai/models/fine_tuning/checkpoints/permission_delete_params.rb +7 -1
  78. data/lib/openai/models/fine_tuning/checkpoints/permission_list_params.rb +68 -0
  79. data/lib/openai/models/fine_tuning/checkpoints/permission_list_response.rb +48 -0
  80. data/lib/openai/models/fine_tuning/checkpoints/permission_retrieve_params.rb +8 -1
  81. data/lib/openai/models/fine_tuning/job_cancel_params.rb +7 -1
  82. data/lib/openai/models/fine_tuning/job_list_events_params.rb +8 -1
  83. data/lib/openai/models/fine_tuning/job_pause_params.rb +7 -1
  84. data/lib/openai/models/fine_tuning/job_resume_params.rb +7 -1
  85. data/lib/openai/models/fine_tuning/job_retrieve_params.rb +7 -1
  86. data/lib/openai/models/fine_tuning/jobs/checkpoint_list_params.rb +8 -1
  87. data/lib/openai/models/model_delete_params.rb +7 -1
  88. data/lib/openai/models/model_retrieve_params.rb +7 -1
  89. data/lib/openai/models/realtime/call_accept_params.rb +7 -1
  90. data/lib/openai/models/realtime/call_hangup_params.rb +7 -1
  91. data/lib/openai/models/realtime/call_refer_params.rb +8 -1
  92. data/lib/openai/models/realtime/call_reject_params.rb +8 -1
  93. data/lib/openai/models/realtime/realtime_response_create_mcp_tool.rb +9 -1
  94. data/lib/openai/models/realtime/realtime_session_create_response.rb +9 -1
  95. data/lib/openai/models/realtime/realtime_tools_config_union.rb +9 -1
  96. data/lib/openai/models/responses/compacted_response.rb +2 -2
  97. data/lib/openai/models/responses/computer_action.rb +356 -0
  98. data/lib/openai/models/responses/computer_action_list.rb +10 -0
  99. data/lib/openai/models/responses/computer_use_tool.rb +21 -0
  100. data/lib/openai/models/responses/custom_tool.rb +9 -1
  101. data/lib/openai/models/responses/easy_input_message.rb +28 -1
  102. data/lib/openai/models/responses/function_tool.rb +9 -1
  103. data/lib/openai/models/responses/input_item_list_params.rb +8 -1
  104. data/lib/openai/models/responses/input_token_count_params.rb +5 -5
  105. data/lib/openai/models/responses/namespace_tool.rb +93 -0
  106. data/lib/openai/models/responses/response.rb +7 -7
  107. data/lib/openai/models/responses/response_cancel_params.rb +7 -1
  108. data/lib/openai/models/responses/response_compact_params.rb +18 -4
  109. data/lib/openai/models/responses/response_computer_tool_call.rb +74 -65
  110. data/lib/openai/models/responses/response_create_params.rb +5 -5
  111. data/lib/openai/models/responses/response_custom_tool_call.rb +9 -1
  112. data/lib/openai/models/responses/response_delete_params.rb +7 -1
  113. data/lib/openai/models/responses/response_function_tool_call.rb +9 -1
  114. data/lib/openai/models/responses/response_input_file.rb +24 -1
  115. data/lib/openai/models/responses/response_input_file_content.rb +27 -1
  116. data/lib/openai/models/responses/response_input_image.rb +6 -5
  117. data/lib/openai/models/responses/response_input_image_content.rb +6 -5
  118. data/lib/openai/models/responses/response_input_item.rb +87 -1
  119. data/lib/openai/models/responses/response_item.rb +5 -1
  120. data/lib/openai/models/responses/response_item_list.rb +2 -2
  121. data/lib/openai/models/responses/response_output_item.rb +5 -1
  122. data/lib/openai/models/responses/response_output_item_added_event.rb +2 -2
  123. data/lib/openai/models/responses/response_output_item_done_event.rb +2 -2
  124. data/lib/openai/models/responses/response_output_message.rb +28 -1
  125. data/lib/openai/models/responses/response_retrieve_params.rb +8 -1
  126. data/lib/openai/models/responses/response_tool_search_call.rb +93 -0
  127. data/lib/openai/models/responses/response_tool_search_output_item.rb +93 -0
  128. data/lib/openai/models/responses/response_tool_search_output_item_param.rb +89 -0
  129. data/lib/openai/models/responses/responses_client_event.rb +5 -5
  130. data/lib/openai/models/responses/tool.rb +19 -2
  131. data/lib/openai/models/responses/tool_choice_types.rb +6 -0
  132. data/lib/openai/models/responses/tool_search_tool.rb +57 -0
  133. data/lib/openai/models/responses/web_search_preview_tool.rb +19 -1
  134. data/lib/openai/models/skill_delete_params.rb +7 -1
  135. data/lib/openai/models/skill_retrieve_params.rb +7 -1
  136. data/lib/openai/models/skill_update_params.rb +8 -1
  137. data/lib/openai/models/skills/content_retrieve_params.rb +7 -1
  138. data/lib/openai/models/skills/version_create_params.rb +8 -1
  139. data/lib/openai/models/skills/version_delete_params.rb +10 -1
  140. data/lib/openai/models/skills/version_list_params.rb +8 -1
  141. data/lib/openai/models/skills/version_retrieve_params.rb +10 -1
  142. data/lib/openai/models/skills/versions/content_retrieve_params.rb +10 -1
  143. data/lib/openai/models/upload_cancel_params.rb +7 -1
  144. data/lib/openai/models/upload_complete_params.rb +8 -1
  145. data/lib/openai/models/uploads/part_create_params.rb +8 -1
  146. data/lib/openai/models/vector_store_delete_params.rb +7 -1
  147. data/lib/openai/models/vector_store_retrieve_params.rb +7 -1
  148. data/lib/openai/models/vector_store_search_params.rb +8 -1
  149. data/lib/openai/models/vector_store_update_params.rb +8 -1
  150. data/lib/openai/models/vector_stores/file_batch_cancel_params.rb +7 -1
  151. data/lib/openai/models/vector_stores/file_batch_create_params.rb +8 -1
  152. data/lib/openai/models/vector_stores/file_batch_list_files_params.rb +8 -1
  153. data/lib/openai/models/vector_stores/file_batch_retrieve_params.rb +7 -1
  154. data/lib/openai/models/vector_stores/file_content_params.rb +7 -1
  155. data/lib/openai/models/vector_stores/file_create_params.rb +8 -1
  156. data/lib/openai/models/vector_stores/file_delete_params.rb +7 -1
  157. data/lib/openai/models/vector_stores/file_list_params.rb +8 -1
  158. data/lib/openai/models/vector_stores/file_retrieve_params.rb +7 -1
  159. data/lib/openai/models/vector_stores/file_update_params.rb +8 -1
  160. data/lib/openai/models/video.rb +24 -4
  161. data/lib/openai/models/video_create_params.rb +2 -2
  162. data/lib/openai/models/video_delete_params.rb +7 -1
  163. data/lib/openai/models/video_download_content_params.rb +8 -1
  164. data/lib/openai/models/video_remix_params.rb +8 -1
  165. data/lib/openai/models/video_retrieve_params.rb +7 -1
  166. data/lib/openai/resources/audio/speech.rb +1 -0
  167. data/lib/openai/resources/audio/transcriptions.rb +1 -0
  168. data/lib/openai/resources/audio/translations.rb +1 -0
  169. data/lib/openai/resources/audio.rb +3 -0
  170. data/lib/openai/resources/batches.rb +3 -1
  171. data/lib/openai/resources/beta/assistants.rb +3 -1
  172. data/lib/openai/resources/beta/chatkit/threads.rb +4 -2
  173. data/lib/openai/resources/beta/threads/messages.rb +4 -1
  174. data/lib/openai/resources/beta/threads/runs/steps.rb +6 -2
  175. data/lib/openai/resources/beta/threads/runs.rb +11 -5
  176. data/lib/openai/resources/beta/threads.rb +4 -0
  177. data/lib/openai/resources/beta.rb +2 -0
  178. data/lib/openai/resources/chat/completions/messages.rb +4 -1
  179. data/lib/openai/resources/chat/completions.rb +6 -1
  180. data/lib/openai/resources/chat.rb +2 -0
  181. data/lib/openai/resources/completions.rb +2 -0
  182. data/lib/openai/resources/containers/files.rb +2 -1
  183. data/lib/openai/resources/containers.rb +2 -1
  184. data/lib/openai/resources/conversations/items.rb +11 -7
  185. data/lib/openai/resources/conversations.rb +3 -1
  186. data/lib/openai/resources/embeddings.rb +2 -0
  187. data/lib/openai/resources/evals/runs/output_items.rb +3 -1
  188. data/lib/openai/resources/evals/runs.rb +4 -1
  189. data/lib/openai/resources/evals.rb +4 -1
  190. data/lib/openai/resources/files.rb +4 -1
  191. data/lib/openai/resources/fine_tuning/alpha/graders.rb +1 -0
  192. data/lib/openai/resources/fine_tuning/alpha.rb +1 -0
  193. data/lib/openai/resources/fine_tuning/checkpoints/permissions.rb +44 -1
  194. data/lib/openai/resources/fine_tuning/checkpoints.rb +1 -0
  195. data/lib/openai/resources/fine_tuning/jobs/checkpoints.rb +3 -1
  196. data/lib/openai/resources/fine_tuning/jobs.rb +6 -2
  197. data/lib/openai/resources/fine_tuning.rb +1 -0
  198. data/lib/openai/resources/images.rb +1 -0
  199. data/lib/openai/resources/models.rb +1 -0
  200. data/lib/openai/resources/moderations.rb +2 -0
  201. data/lib/openai/resources/responses/input_items.rb +3 -2
  202. data/lib/openai/resources/responses/input_tokens.rb +2 -2
  203. data/lib/openai/resources/responses.rb +12 -8
  204. data/lib/openai/resources/skills/versions.rb +2 -1
  205. data/lib/openai/resources/skills.rb +2 -1
  206. data/lib/openai/resources/uploads/parts.rb +1 -0
  207. data/lib/openai/resources/uploads.rb +2 -0
  208. data/lib/openai/resources/vector_stores/file_batches.rb +2 -1
  209. data/lib/openai/resources/vector_stores/files.rb +2 -1
  210. data/lib/openai/resources/vector_stores.rb +2 -1
  211. data/lib/openai/resources/videos.rb +5 -3
  212. data/lib/openai/version.rb +1 -1
  213. data/lib/openai.rb +10 -0
  214. data/rbi/openai/client.rbi +14 -0
  215. data/rbi/openai/internal/util.rbi +20 -0
  216. data/rbi/openai/models/batch_cancel_params.rbi +13 -5
  217. data/rbi/openai/models/batch_retrieve_params.rbi +13 -5
  218. data/rbi/openai/models/beta/assistant_create_params.rbi +6 -4
  219. data/rbi/openai/models/beta/assistant_delete_params.rbi +13 -5
  220. data/rbi/openai/models/beta/assistant_retrieve_params.rbi +13 -5
  221. data/rbi/openai/models/beta/assistant_update_params.rbi +6 -0
  222. data/rbi/openai/models/beta/chatkit/session_cancel_params.rbi +13 -5
  223. data/rbi/openai/models/beta/chatkit/thread_delete_params.rbi +13 -5
  224. data/rbi/openai/models/beta/chatkit/thread_list_items_params.rbi +6 -0
  225. data/rbi/openai/models/beta/chatkit/thread_retrieve_params.rbi +13 -5
  226. data/rbi/openai/models/beta/thread_create_and_run_params.rbi +6 -4
  227. data/rbi/openai/models/beta/thread_create_params.rbi +6 -4
  228. data/rbi/openai/models/beta/thread_delete_params.rbi +13 -5
  229. data/rbi/openai/models/beta/thread_retrieve_params.rbi +13 -5
  230. data/rbi/openai/models/beta/thread_update_params.rbi +6 -0
  231. data/rbi/openai/models/beta/threads/message_create_params.rbi +6 -0
  232. data/rbi/openai/models/beta/threads/message_delete_params.rbi +10 -2
  233. data/rbi/openai/models/beta/threads/message_list_params.rbi +6 -0
  234. data/rbi/openai/models/beta/threads/message_retrieve_params.rbi +10 -2
  235. data/rbi/openai/models/beta/threads/message_update_params.rbi +6 -0
  236. data/rbi/openai/models/beta/threads/run_cancel_params.rbi +10 -2
  237. data/rbi/openai/models/beta/threads/run_create_params.rbi +6 -0
  238. data/rbi/openai/models/beta/threads/run_list_params.rbi +6 -0
  239. data/rbi/openai/models/beta/threads/run_retrieve_params.rbi +10 -2
  240. data/rbi/openai/models/beta/threads/run_submit_tool_outputs_params.rbi +6 -0
  241. data/rbi/openai/models/beta/threads/run_update_params.rbi +6 -0
  242. data/rbi/openai/models/beta/threads/runs/step_list_params.rbi +6 -0
  243. data/rbi/openai/models/beta/threads/runs/step_retrieve_params.rbi +6 -0
  244. data/rbi/openai/models/chat/completion_delete_params.rbi +13 -5
  245. data/rbi/openai/models/chat/completion_retrieve_params.rbi +13 -5
  246. data/rbi/openai/models/chat/completion_update_params.rbi +6 -0
  247. data/rbi/openai/models/chat/completions/message_list_params.rbi +6 -0
  248. data/rbi/openai/models/chat_model.rbi +3 -0
  249. data/rbi/openai/models/container_delete_params.rbi +13 -5
  250. data/rbi/openai/models/container_retrieve_params.rbi +13 -5
  251. data/rbi/openai/models/containers/file_create_params.rbi +6 -0
  252. data/rbi/openai/models/containers/file_delete_params.rbi +10 -2
  253. data/rbi/openai/models/containers/file_list_params.rbi +6 -0
  254. data/rbi/openai/models/containers/file_retrieve_params.rbi +10 -2
  255. data/rbi/openai/models/containers/files/content_retrieve_params.rbi +10 -2
  256. data/rbi/openai/models/conversations/computer_screenshot_content.rbi +62 -0
  257. data/rbi/openai/models/conversations/conversation_create_params.rbi +6 -0
  258. data/rbi/openai/models/conversations/conversation_delete_params.rbi +13 -5
  259. data/rbi/openai/models/conversations/conversation_item.rbi +2 -0
  260. data/rbi/openai/models/conversations/conversation_item_list.rbi +2 -0
  261. data/rbi/openai/models/conversations/conversation_retrieve_params.rbi +13 -5
  262. data/rbi/openai/models/conversations/conversation_update_params.rbi +6 -0
  263. data/rbi/openai/models/conversations/item_create_params.rbi +12 -0
  264. data/rbi/openai/models/conversations/item_delete_params.rbi +10 -2
  265. data/rbi/openai/models/conversations/item_list_params.rbi +6 -0
  266. data/rbi/openai/models/conversations/item_retrieve_params.rbi +6 -0
  267. data/rbi/openai/models/eval_delete_params.rbi +13 -5
  268. data/rbi/openai/models/eval_retrieve_params.rbi +13 -5
  269. data/rbi/openai/models/eval_update_params.rbi +6 -0
  270. data/rbi/openai/models/evals/run_cancel_params.rbi +10 -2
  271. data/rbi/openai/models/evals/run_cancel_response.rbi +6 -0
  272. data/rbi/openai/models/evals/run_create_params.rbi +18 -0
  273. data/rbi/openai/models/evals/run_create_response.rbi +6 -0
  274. data/rbi/openai/models/evals/run_delete_params.rbi +10 -2
  275. data/rbi/openai/models/evals/run_list_params.rbi +6 -0
  276. data/rbi/openai/models/evals/run_list_response.rbi +6 -0
  277. data/rbi/openai/models/evals/run_retrieve_params.rbi +10 -2
  278. data/rbi/openai/models/evals/run_retrieve_response.rbi +6 -0
  279. data/rbi/openai/models/evals/runs/output_item_list_params.rbi +6 -0
  280. data/rbi/openai/models/evals/runs/output_item_retrieve_params.rbi +6 -1
  281. data/rbi/openai/models/file_content_params.rbi +13 -5
  282. data/rbi/openai/models/file_delete_params.rbi +13 -5
  283. data/rbi/openai/models/file_retrieve_params.rbi +13 -5
  284. data/rbi/openai/models/fine_tuning/checkpoints/permission_create_params.rbi +6 -0
  285. data/rbi/openai/models/fine_tuning/checkpoints/permission_delete_params.rbi +10 -1
  286. data/rbi/openai/models/fine_tuning/checkpoints/permission_list_params.rbi +140 -0
  287. data/rbi/openai/models/fine_tuning/checkpoints/permission_list_response.rbi +70 -0
  288. data/rbi/openai/models/fine_tuning/checkpoints/permission_retrieve_params.rbi +6 -0
  289. data/rbi/openai/models/fine_tuning/job_cancel_params.rbi +16 -5
  290. data/rbi/openai/models/fine_tuning/job_list_events_params.rbi +6 -0
  291. data/rbi/openai/models/fine_tuning/job_pause_params.rbi +16 -5
  292. data/rbi/openai/models/fine_tuning/job_resume_params.rbi +16 -5
  293. data/rbi/openai/models/fine_tuning/job_retrieve_params.rbi +16 -5
  294. data/rbi/openai/models/fine_tuning/jobs/checkpoint_list_params.rbi +6 -0
  295. data/rbi/openai/models/model_delete_params.rbi +13 -5
  296. data/rbi/openai/models/model_retrieve_params.rbi +13 -5
  297. data/rbi/openai/models/realtime/call_accept_params.rbi +13 -5
  298. data/rbi/openai/models/realtime/call_hangup_params.rbi +13 -5
  299. data/rbi/openai/models/realtime/call_refer_params.rbi +10 -1
  300. data/rbi/openai/models/realtime/call_reject_params.rbi +10 -1
  301. data/rbi/openai/models/realtime/realtime_response_create_mcp_tool.rbi +11 -0
  302. data/rbi/openai/models/realtime/realtime_session_create_response.rbi +11 -0
  303. data/rbi/openai/models/realtime/realtime_tools_config_union.rbi +11 -0
  304. data/rbi/openai/models/responses/compacted_response.rbi +2 -0
  305. data/rbi/openai/models/responses/computer_action.rbi +534 -0
  306. data/rbi/openai/models/responses/computer_action_list.rbi +15 -0
  307. data/rbi/openai/models/responses/computer_use_tool.rbi +31 -0
  308. data/rbi/openai/models/responses/custom_tool.rbi +11 -0
  309. data/rbi/openai/models/responses/easy_input_message.rbi +53 -0
  310. data/rbi/openai/models/responses/function_tool.rbi +11 -0
  311. data/rbi/openai/models/responses/input_item_list_params.rbi +6 -0
  312. data/rbi/openai/models/responses/input_token_count_params.rbi +9 -0
  313. data/rbi/openai/models/responses/namespace_tool.rbi +163 -0
  314. data/rbi/openai/models/responses/response.rbi +5 -0
  315. data/rbi/openai/models/responses/response_cancel_params.rbi +13 -5
  316. data/rbi/openai/models/responses/response_compact_params.rbi +18 -0
  317. data/rbi/openai/models/responses/response_computer_tool_call.rbi +245 -151
  318. data/rbi/openai/models/responses/response_create_params.rbi +12 -0
  319. data/rbi/openai/models/responses/response_custom_tool_call.rbi +12 -1
  320. data/rbi/openai/models/responses/response_delete_params.rbi +13 -5
  321. data/rbi/openai/models/responses/response_function_tool_call.rbi +11 -0
  322. data/rbi/openai/models/responses/response_input_file.rbi +54 -0
  323. data/rbi/openai/models/responses/response_input_file_content.rbi +59 -0
  324. data/rbi/openai/models/responses/response_input_image.rbi +11 -6
  325. data/rbi/openai/models/responses/response_input_image_content.rbi +11 -6
  326. data/rbi/openai/models/responses/response_input_item.rbi +180 -0
  327. data/rbi/openai/models/responses/response_item.rbi +2 -0
  328. data/rbi/openai/models/responses/response_item_list.rbi +2 -0
  329. data/rbi/openai/models/responses/response_output_item.rbi +2 -0
  330. data/rbi/openai/models/responses/response_output_item_added_event.rbi +2 -0
  331. data/rbi/openai/models/responses/response_output_item_done_event.rbi +2 -0
  332. data/rbi/openai/models/responses/response_output_message.rbi +60 -1
  333. data/rbi/openai/models/responses/response_retrieve_params.rbi +6 -0
  334. data/rbi/openai/models/responses/response_tool_search_call.rbi +176 -0
  335. data/rbi/openai/models/responses/response_tool_search_output_item.rbi +199 -0
  336. data/rbi/openai/models/responses/response_tool_search_output_item_param.rbi +245 -0
  337. data/rbi/openai/models/responses/responses_client_event.rbi +12 -0
  338. data/rbi/openai/models/responses/tool.rbi +14 -0
  339. data/rbi/openai/models/responses/tool_choice_types.rbi +16 -0
  340. data/rbi/openai/models/responses/tool_search_tool.rbi +107 -0
  341. data/rbi/openai/models/responses/web_search_preview_tool.rbi +64 -0
  342. data/rbi/openai/models/skill_delete_params.rbi +13 -5
  343. data/rbi/openai/models/skill_retrieve_params.rbi +13 -5
  344. data/rbi/openai/models/skill_update_params.rbi +10 -1
  345. data/rbi/openai/models/skills/content_retrieve_params.rbi +13 -5
  346. data/rbi/openai/models/skills/version_create_params.rbi +6 -0
  347. data/rbi/openai/models/skills/version_delete_params.rbi +16 -2
  348. data/rbi/openai/models/skills/version_list_params.rbi +6 -0
  349. data/rbi/openai/models/skills/version_retrieve_params.rbi +16 -2
  350. data/rbi/openai/models/skills/versions/content_retrieve_params.rbi +16 -2
  351. data/rbi/openai/models/upload_cancel_params.rbi +13 -5
  352. data/rbi/openai/models/upload_complete_params.rbi +6 -0
  353. data/rbi/openai/models/uploads/part_create_params.rbi +6 -0
  354. data/rbi/openai/models/vector_store_delete_params.rbi +13 -5
  355. data/rbi/openai/models/vector_store_retrieve_params.rbi +13 -5
  356. data/rbi/openai/models/vector_store_search_params.rbi +6 -0
  357. data/rbi/openai/models/vector_store_update_params.rbi +6 -0
  358. data/rbi/openai/models/vector_stores/file_batch_cancel_params.rbi +10 -2
  359. data/rbi/openai/models/vector_stores/file_batch_create_params.rbi +6 -0
  360. data/rbi/openai/models/vector_stores/file_batch_list_files_params.rbi +6 -0
  361. data/rbi/openai/models/vector_stores/file_batch_retrieve_params.rbi +10 -2
  362. data/rbi/openai/models/vector_stores/file_content_params.rbi +10 -2
  363. data/rbi/openai/models/vector_stores/file_create_params.rbi +6 -0
  364. data/rbi/openai/models/vector_stores/file_delete_params.rbi +10 -2
  365. data/rbi/openai/models/vector_stores/file_list_params.rbi +6 -0
  366. data/rbi/openai/models/vector_stores/file_retrieve_params.rbi +10 -2
  367. data/rbi/openai/models/vector_stores/file_update_params.rbi +6 -0
  368. data/rbi/openai/models/video.rbi +20 -5
  369. data/rbi/openai/models/video_create_params.rbi +2 -2
  370. data/rbi/openai/models/video_delete_params.rbi +13 -5
  371. data/rbi/openai/models/video_download_content_params.rbi +6 -0
  372. data/rbi/openai/models/video_remix_params.rbi +10 -1
  373. data/rbi/openai/models/video_retrieve_params.rbi +13 -5
  374. data/rbi/openai/resources/audio/speech.rbi +1 -0
  375. data/rbi/openai/resources/audio/transcriptions.rbi +1 -0
  376. data/rbi/openai/resources/audio/translations.rbi +1 -0
  377. data/rbi/openai/resources/audio.rbi +3 -0
  378. data/rbi/openai/resources/batches.rbi +1 -0
  379. data/rbi/openai/resources/beta/assistants.rbi +1 -0
  380. data/rbi/openai/resources/beta/threads/messages.rbi +1 -0
  381. data/rbi/openai/resources/beta/threads/runs/steps.rbi +1 -0
  382. data/rbi/openai/resources/beta/threads/runs.rbi +2 -0
  383. data/rbi/openai/resources/beta/threads.rbi +3 -0
  384. data/rbi/openai/resources/beta.rbi +2 -0
  385. data/rbi/openai/resources/chat/completions/messages.rbi +2 -0
  386. data/rbi/openai/resources/chat/completions.rbi +4 -0
  387. data/rbi/openai/resources/chat.rbi +2 -0
  388. data/rbi/openai/resources/completions.rbi +2 -0
  389. data/rbi/openai/resources/conversations/items.rbi +3 -0
  390. data/rbi/openai/resources/conversations.rbi +4 -0
  391. data/rbi/openai/resources/embeddings.rbi +2 -0
  392. data/rbi/openai/resources/evals/runs/output_items.rbi +1 -0
  393. data/rbi/openai/resources/evals/runs.rbi +2 -0
  394. data/rbi/openai/resources/evals.rbi +2 -0
  395. data/rbi/openai/resources/files.rbi +2 -0
  396. data/rbi/openai/resources/fine_tuning/alpha/graders.rbi +1 -0
  397. data/rbi/openai/resources/fine_tuning/alpha.rbi +1 -0
  398. data/rbi/openai/resources/fine_tuning/checkpoints/permissions.rbi +35 -0
  399. data/rbi/openai/resources/fine_tuning/checkpoints.rbi +1 -0
  400. data/rbi/openai/resources/fine_tuning/jobs/checkpoints.rbi +1 -0
  401. data/rbi/openai/resources/fine_tuning/jobs.rbi +2 -0
  402. data/rbi/openai/resources/fine_tuning.rbi +1 -0
  403. data/rbi/openai/resources/images.rbi +1 -0
  404. data/rbi/openai/resources/models.rbi +1 -0
  405. data/rbi/openai/resources/moderations.rbi +2 -0
  406. data/rbi/openai/resources/responses/input_tokens.rbi +3 -0
  407. data/rbi/openai/resources/responses.rbi +9 -0
  408. data/rbi/openai/resources/uploads/parts.rbi +1 -0
  409. data/rbi/openai/resources/uploads.rbi +2 -0
  410. data/rbi/openai/resources/videos.rbi +1 -1
  411. data/sig/openai/internal/util.rbs +10 -0
  412. data/sig/openai/models/batch_cancel_params.rbs +12 -3
  413. data/sig/openai/models/batch_retrieve_params.rbs +11 -3
  414. data/sig/openai/models/beta/assistant_delete_params.rbs +11 -3
  415. data/sig/openai/models/beta/assistant_retrieve_params.rbs +11 -3
  416. data/sig/openai/models/beta/assistant_update_params.rbs +5 -0
  417. data/sig/openai/models/beta/chatkit/session_cancel_params.rbs +11 -3
  418. data/sig/openai/models/beta/chatkit/thread_delete_params.rbs +11 -3
  419. data/sig/openai/models/beta/chatkit/thread_list_items_params.rbs +5 -0
  420. data/sig/openai/models/beta/chatkit/thread_retrieve_params.rbs +11 -3
  421. data/sig/openai/models/beta/thread_delete_params.rbs +11 -3
  422. data/sig/openai/models/beta/thread_retrieve_params.rbs +11 -3
  423. data/sig/openai/models/beta/thread_update_params.rbs +5 -0
  424. data/sig/openai/models/beta/threads/message_create_params.rbs +5 -0
  425. data/sig/openai/models/beta/threads/message_delete_params.rbs +6 -1
  426. data/sig/openai/models/beta/threads/message_list_params.rbs +5 -0
  427. data/sig/openai/models/beta/threads/message_retrieve_params.rbs +6 -1
  428. data/sig/openai/models/beta/threads/message_update_params.rbs +9 -1
  429. data/sig/openai/models/beta/threads/run_cancel_params.rbs +6 -1
  430. data/sig/openai/models/beta/threads/run_create_params.rbs +5 -0
  431. data/sig/openai/models/beta/threads/run_list_params.rbs +5 -0
  432. data/sig/openai/models/beta/threads/run_retrieve_params.rbs +6 -1
  433. data/sig/openai/models/beta/threads/run_submit_tool_outputs_params.rbs +5 -0
  434. data/sig/openai/models/beta/threads/run_update_params.rbs +9 -1
  435. data/sig/openai/models/beta/threads/runs/step_list_params.rbs +5 -0
  436. data/sig/openai/models/beta/threads/runs/step_retrieve_params.rbs +5 -0
  437. data/sig/openai/models/chat/completion_delete_params.rbs +11 -3
  438. data/sig/openai/models/chat/completion_retrieve_params.rbs +11 -3
  439. data/sig/openai/models/chat/completion_update_params.rbs +5 -1
  440. data/sig/openai/models/chat/completions/message_list_params.rbs +5 -0
  441. data/sig/openai/models/chat_model.rbs +5 -1
  442. data/sig/openai/models/container_delete_params.rbs +11 -3
  443. data/sig/openai/models/container_retrieve_params.rbs +11 -3
  444. data/sig/openai/models/containers/file_create_params.rbs +9 -1
  445. data/sig/openai/models/containers/file_delete_params.rbs +6 -1
  446. data/sig/openai/models/containers/file_list_params.rbs +5 -0
  447. data/sig/openai/models/containers/file_retrieve_params.rbs +6 -1
  448. data/sig/openai/models/containers/files/content_retrieve_params.rbs +6 -1
  449. data/sig/openai/models/conversations/computer_screenshot_content.rbs +23 -1
  450. data/sig/openai/models/conversations/conversation_delete_params.rbs +11 -3
  451. data/sig/openai/models/conversations/conversation_item.rbs +2 -0
  452. data/sig/openai/models/conversations/conversation_retrieve_params.rbs +11 -3
  453. data/sig/openai/models/conversations/conversation_update_params.rbs +5 -1
  454. data/sig/openai/models/conversations/item_create_params.rbs +5 -0
  455. data/sig/openai/models/conversations/item_delete_params.rbs +6 -1
  456. data/sig/openai/models/conversations/item_list_params.rbs +5 -0
  457. data/sig/openai/models/conversations/item_retrieve_params.rbs +5 -0
  458. data/sig/openai/models/eval_delete_params.rbs +12 -3
  459. data/sig/openai/models/eval_retrieve_params.rbs +11 -3
  460. data/sig/openai/models/eval_update_params.rbs +5 -1
  461. data/sig/openai/models/evals/run_cancel_params.rbs +6 -1
  462. data/sig/openai/models/evals/run_create_params.rbs +5 -0
  463. data/sig/openai/models/evals/run_delete_params.rbs +6 -1
  464. data/sig/openai/models/evals/run_list_params.rbs +5 -0
  465. data/sig/openai/models/evals/run_retrieve_params.rbs +6 -1
  466. data/sig/openai/models/evals/runs/output_item_list_params.rbs +5 -0
  467. data/sig/openai/models/evals/runs/output_item_retrieve_params.rbs +5 -1
  468. data/sig/openai/models/file_content_params.rbs +12 -3
  469. data/sig/openai/models/file_delete_params.rbs +12 -3
  470. data/sig/openai/models/file_retrieve_params.rbs +11 -3
  471. data/sig/openai/models/fine_tuning/checkpoints/permission_create_params.rbs +5 -1
  472. data/sig/openai/models/fine_tuning/checkpoints/permission_delete_params.rbs +5 -1
  473. data/sig/openai/models/fine_tuning/checkpoints/permission_list_params.rbs +71 -0
  474. data/sig/openai/models/fine_tuning/checkpoints/permission_list_response.rbs +39 -0
  475. data/sig/openai/models/fine_tuning/checkpoints/permission_retrieve_params.rbs +5 -0
  476. data/sig/openai/models/fine_tuning/job_cancel_params.rbs +13 -3
  477. data/sig/openai/models/fine_tuning/job_list_events_params.rbs +5 -1
  478. data/sig/openai/models/fine_tuning/job_pause_params.rbs +13 -3
  479. data/sig/openai/models/fine_tuning/job_resume_params.rbs +13 -3
  480. data/sig/openai/models/fine_tuning/job_retrieve_params.rbs +12 -3
  481. data/sig/openai/models/fine_tuning/jobs/checkpoint_list_params.rbs +5 -1
  482. data/sig/openai/models/model_delete_params.rbs +9 -3
  483. data/sig/openai/models/model_retrieve_params.rbs +8 -3
  484. data/sig/openai/models/realtime/call_accept_params.rbs +13 -3
  485. data/sig/openai/models/realtime/call_hangup_params.rbs +11 -3
  486. data/sig/openai/models/realtime/call_refer_params.rbs +6 -1
  487. data/sig/openai/models/realtime/call_reject_params.rbs +6 -1
  488. data/sig/openai/models/realtime/realtime_response_create_mcp_tool.rbs +7 -0
  489. data/sig/openai/models/realtime/realtime_session_create_response.rbs +7 -0
  490. data/sig/openai/models/realtime/realtime_tools_config_union.rbs +7 -0
  491. data/sig/openai/models/responses/computer_action.rbs +215 -0
  492. data/sig/openai/models/responses/computer_action_list.rbs +10 -0
  493. data/sig/openai/models/responses/computer_use_tool.rbs +15 -0
  494. data/sig/openai/models/responses/custom_tool.rbs +7 -0
  495. data/sig/openai/models/responses/easy_input_message.rbs +16 -0
  496. data/sig/openai/models/responses/function_tool.rbs +7 -0
  497. data/sig/openai/models/responses/input_item_list_params.rbs +5 -0
  498. data/sig/openai/models/responses/namespace_tool.rbs +84 -0
  499. data/sig/openai/models/responses/response_cancel_params.rbs +11 -3
  500. data/sig/openai/models/responses/response_compact_params.rbs +11 -2
  501. data/sig/openai/models/responses/response_computer_tool_call.rbs +62 -49
  502. data/sig/openai/models/responses/response_custom_tool_call.rbs +9 -2
  503. data/sig/openai/models/responses/response_delete_params.rbs +11 -3
  504. data/sig/openai/models/responses/response_function_tool_call.rbs +7 -0
  505. data/sig/openai/models/responses/response_input_file.rbs +20 -0
  506. data/sig/openai/models/responses/response_input_file_content.rbs +20 -0
  507. data/sig/openai/models/responses/response_input_image.rbs +2 -1
  508. data/sig/openai/models/responses/response_input_image_content.rbs +2 -1
  509. data/sig/openai/models/responses/response_input_item.rbs +71 -0
  510. data/sig/openai/models/responses/response_item.rbs +2 -0
  511. data/sig/openai/models/responses/response_output_item.rbs +2 -0
  512. data/sig/openai/models/responses/response_output_message.rbs +18 -2
  513. data/sig/openai/models/responses/response_retrieve_params.rbs +5 -0
  514. data/sig/openai/models/responses/response_tool_search_call.rbs +77 -0
  515. data/sig/openai/models/responses/response_tool_search_output_item.rbs +77 -0
  516. data/sig/openai/models/responses/response_tool_search_output_item_param.rbs +74 -0
  517. data/sig/openai/models/responses/tool.rbs +10 -0
  518. data/sig/openai/models/responses/tool_choice_types.rbs +4 -0
  519. data/sig/openai/models/responses/tool_search_tool.rbs +52 -0
  520. data/sig/openai/models/responses/web_search_preview_tool.rbs +20 -0
  521. data/sig/openai/models/skill_delete_params.rbs +12 -3
  522. data/sig/openai/models/skill_retrieve_params.rbs +11 -3
  523. data/sig/openai/models/skill_update_params.rbs +6 -1
  524. data/sig/openai/models/skills/content_retrieve_params.rbs +11 -3
  525. data/sig/openai/models/skills/version_create_params.rbs +5 -0
  526. data/sig/openai/models/skills/version_delete_params.rbs +6 -1
  527. data/sig/openai/models/skills/version_list_params.rbs +5 -0
  528. data/sig/openai/models/skills/version_retrieve_params.rbs +6 -1
  529. data/sig/openai/models/skills/versions/content_retrieve_params.rbs +6 -1
  530. data/sig/openai/models/upload_cancel_params.rbs +11 -3
  531. data/sig/openai/models/upload_complete_params.rbs +5 -1
  532. data/sig/openai/models/uploads/part_create_params.rbs +5 -1
  533. data/sig/openai/models/vector_store_delete_params.rbs +11 -3
  534. data/sig/openai/models/vector_store_retrieve_params.rbs +11 -3
  535. data/sig/openai/models/vector_store_search_params.rbs +5 -0
  536. data/sig/openai/models/vector_store_update_params.rbs +5 -0
  537. data/sig/openai/models/vector_stores/file_batch_cancel_params.rbs +6 -1
  538. data/sig/openai/models/vector_stores/file_batch_create_params.rbs +5 -0
  539. data/sig/openai/models/vector_stores/file_batch_list_files_params.rbs +5 -0
  540. data/sig/openai/models/vector_stores/file_batch_retrieve_params.rbs +6 -1
  541. data/sig/openai/models/vector_stores/file_content_params.rbs +6 -1
  542. data/sig/openai/models/vector_stores/file_create_params.rbs +5 -0
  543. data/sig/openai/models/vector_stores/file_delete_params.rbs +6 -1
  544. data/sig/openai/models/vector_stores/file_list_params.rbs +5 -0
  545. data/sig/openai/models/vector_stores/file_retrieve_params.rbs +6 -1
  546. data/sig/openai/models/vector_stores/file_update_params.rbs +5 -0
  547. data/sig/openai/models/video.rbs +12 -4
  548. data/sig/openai/models/video_delete_params.rbs +12 -3
  549. data/sig/openai/models/video_download_content_params.rbs +8 -1
  550. data/sig/openai/models/video_remix_params.rbs +6 -1
  551. data/sig/openai/models/video_retrieve_params.rbs +11 -3
  552. data/sig/openai/resources/fine_tuning/checkpoints/permissions.rbs +9 -0
  553. data/sig/openai/resources/responses.rbs +1 -0
  554. metadata +32 -2
@@ -0,0 +1,534 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ # A click action.
7
+ module ComputerAction
8
+ extend OpenAI::Internal::Type::Union
9
+
10
+ Variants =
11
+ T.type_alias do
12
+ T.any(
13
+ OpenAI::Responses::ComputerAction::Click,
14
+ OpenAI::Responses::ComputerAction::DoubleClick,
15
+ OpenAI::Responses::ComputerAction::Drag,
16
+ OpenAI::Responses::ComputerAction::Keypress,
17
+ OpenAI::Responses::ComputerAction::Move,
18
+ OpenAI::Responses::ComputerAction::Screenshot,
19
+ OpenAI::Responses::ComputerAction::Scroll,
20
+ OpenAI::Responses::ComputerAction::Type,
21
+ OpenAI::Responses::ComputerAction::Wait
22
+ )
23
+ end
24
+
25
+ class Click < OpenAI::Internal::Type::BaseModel
26
+ OrHash =
27
+ T.type_alias do
28
+ T.any(
29
+ OpenAI::Responses::ComputerAction::Click,
30
+ OpenAI::Internal::AnyHash
31
+ )
32
+ end
33
+
34
+ # Indicates which mouse button was pressed during the click. One of `left`,
35
+ # `right`, `wheel`, `back`, or `forward`.
36
+ sig do
37
+ returns(OpenAI::Responses::ComputerAction::Click::Button::OrSymbol)
38
+ end
39
+ attr_accessor :button
40
+
41
+ # Specifies the event type. For a click action, this property is always `click`.
42
+ sig { returns(Symbol) }
43
+ attr_accessor :type
44
+
45
+ # The x-coordinate where the click occurred.
46
+ sig { returns(Integer) }
47
+ attr_accessor :x
48
+
49
+ # The y-coordinate where the click occurred.
50
+ sig { returns(Integer) }
51
+ attr_accessor :y_
52
+
53
+ # A click action.
54
+ sig do
55
+ params(
56
+ button:
57
+ OpenAI::Responses::ComputerAction::Click::Button::OrSymbol,
58
+ x: Integer,
59
+ y_: Integer,
60
+ type: Symbol
61
+ ).returns(T.attached_class)
62
+ end
63
+ def self.new(
64
+ # Indicates which mouse button was pressed during the click. One of `left`,
65
+ # `right`, `wheel`, `back`, or `forward`.
66
+ button:,
67
+ # The x-coordinate where the click occurred.
68
+ x:,
69
+ # The y-coordinate where the click occurred.
70
+ y_:,
71
+ # Specifies the event type. For a click action, this property is always `click`.
72
+ type: :click
73
+ )
74
+ end
75
+
76
+ sig do
77
+ override.returns(
78
+ {
79
+ button:
80
+ OpenAI::Responses::ComputerAction::Click::Button::OrSymbol,
81
+ type: Symbol,
82
+ x: Integer,
83
+ y_: Integer
84
+ }
85
+ )
86
+ end
87
+ def to_hash
88
+ end
89
+
90
+ # Indicates which mouse button was pressed during the click. One of `left`,
91
+ # `right`, `wheel`, `back`, or `forward`.
92
+ module Button
93
+ extend OpenAI::Internal::Type::Enum
94
+
95
+ TaggedSymbol =
96
+ T.type_alias do
97
+ T.all(Symbol, OpenAI::Responses::ComputerAction::Click::Button)
98
+ end
99
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
100
+
101
+ LEFT =
102
+ T.let(
103
+ :left,
104
+ OpenAI::Responses::ComputerAction::Click::Button::TaggedSymbol
105
+ )
106
+ RIGHT =
107
+ T.let(
108
+ :right,
109
+ OpenAI::Responses::ComputerAction::Click::Button::TaggedSymbol
110
+ )
111
+ WHEEL =
112
+ T.let(
113
+ :wheel,
114
+ OpenAI::Responses::ComputerAction::Click::Button::TaggedSymbol
115
+ )
116
+ BACK =
117
+ T.let(
118
+ :back,
119
+ OpenAI::Responses::ComputerAction::Click::Button::TaggedSymbol
120
+ )
121
+ FORWARD =
122
+ T.let(
123
+ :forward,
124
+ OpenAI::Responses::ComputerAction::Click::Button::TaggedSymbol
125
+ )
126
+
127
+ sig do
128
+ override.returns(
129
+ T::Array[
130
+ OpenAI::Responses::ComputerAction::Click::Button::TaggedSymbol
131
+ ]
132
+ )
133
+ end
134
+ def self.values
135
+ end
136
+ end
137
+ end
138
+
139
+ class DoubleClick < OpenAI::Internal::Type::BaseModel
140
+ OrHash =
141
+ T.type_alias do
142
+ T.any(
143
+ OpenAI::Responses::ComputerAction::DoubleClick,
144
+ OpenAI::Internal::AnyHash
145
+ )
146
+ end
147
+
148
+ # Specifies the event type. For a double click action, this property is always set
149
+ # to `double_click`.
150
+ sig { returns(Symbol) }
151
+ attr_accessor :type
152
+
153
+ # The x-coordinate where the double click occurred.
154
+ sig { returns(Integer) }
155
+ attr_accessor :x
156
+
157
+ # The y-coordinate where the double click occurred.
158
+ sig { returns(Integer) }
159
+ attr_accessor :y_
160
+
161
+ # A double click action.
162
+ sig do
163
+ params(x: Integer, y_: Integer, type: Symbol).returns(
164
+ T.attached_class
165
+ )
166
+ end
167
+ def self.new(
168
+ # The x-coordinate where the double click occurred.
169
+ x:,
170
+ # The y-coordinate where the double click occurred.
171
+ y_:,
172
+ # Specifies the event type. For a double click action, this property is always set
173
+ # to `double_click`.
174
+ type: :double_click
175
+ )
176
+ end
177
+
178
+ sig { override.returns({ type: Symbol, x: Integer, y_: Integer }) }
179
+ def to_hash
180
+ end
181
+ end
182
+
183
+ class Drag < OpenAI::Internal::Type::BaseModel
184
+ OrHash =
185
+ T.type_alias do
186
+ T.any(
187
+ OpenAI::Responses::ComputerAction::Drag,
188
+ OpenAI::Internal::AnyHash
189
+ )
190
+ end
191
+
192
+ # An array of coordinates representing the path of the drag action. Coordinates
193
+ # will appear as an array of objects, eg
194
+ #
195
+ # ```
196
+ # [
197
+ # { x: 100, y: 200 },
198
+ # { x: 200, y: 300 }
199
+ # ]
200
+ # ```
201
+ sig do
202
+ returns(T::Array[OpenAI::Responses::ComputerAction::Drag::Path])
203
+ end
204
+ attr_accessor :path
205
+
206
+ # Specifies the event type. For a drag action, this property is always set to
207
+ # `drag`.
208
+ sig { returns(Symbol) }
209
+ attr_accessor :type
210
+
211
+ # A drag action.
212
+ sig do
213
+ params(
214
+ path:
215
+ T::Array[OpenAI::Responses::ComputerAction::Drag::Path::OrHash],
216
+ type: Symbol
217
+ ).returns(T.attached_class)
218
+ end
219
+ def self.new(
220
+ # An array of coordinates representing the path of the drag action. Coordinates
221
+ # will appear as an array of objects, eg
222
+ #
223
+ # ```
224
+ # [
225
+ # { x: 100, y: 200 },
226
+ # { x: 200, y: 300 }
227
+ # ]
228
+ # ```
229
+ path:,
230
+ # Specifies the event type. For a drag action, this property is always set to
231
+ # `drag`.
232
+ type: :drag
233
+ )
234
+ end
235
+
236
+ sig do
237
+ override.returns(
238
+ {
239
+ path: T::Array[OpenAI::Responses::ComputerAction::Drag::Path],
240
+ type: Symbol
241
+ }
242
+ )
243
+ end
244
+ def to_hash
245
+ end
246
+
247
+ class Path < OpenAI::Internal::Type::BaseModel
248
+ OrHash =
249
+ T.type_alias do
250
+ T.any(
251
+ OpenAI::Responses::ComputerAction::Drag::Path,
252
+ OpenAI::Internal::AnyHash
253
+ )
254
+ end
255
+
256
+ # The x-coordinate.
257
+ sig { returns(Integer) }
258
+ attr_accessor :x
259
+
260
+ # The y-coordinate.
261
+ sig { returns(Integer) }
262
+ attr_accessor :y_
263
+
264
+ # An x/y coordinate pair, e.g. `{ x: 100, y: 200 }`.
265
+ sig { params(x: Integer, y_: Integer).returns(T.attached_class) }
266
+ def self.new(
267
+ # The x-coordinate.
268
+ x:,
269
+ # The y-coordinate.
270
+ y_:
271
+ )
272
+ end
273
+
274
+ sig { override.returns({ x: Integer, y_: Integer }) }
275
+ def to_hash
276
+ end
277
+ end
278
+ end
279
+
280
+ class Keypress < OpenAI::Internal::Type::BaseModel
281
+ OrHash =
282
+ T.type_alias do
283
+ T.any(
284
+ OpenAI::Responses::ComputerAction::Keypress,
285
+ OpenAI::Internal::AnyHash
286
+ )
287
+ end
288
+
289
+ # The combination of keys the model is requesting to be pressed. This is an array
290
+ # of strings, each representing a key.
291
+ sig { returns(T::Array[String]) }
292
+ attr_accessor :keys
293
+
294
+ # Specifies the event type. For a keypress action, this property is always set to
295
+ # `keypress`.
296
+ sig { returns(Symbol) }
297
+ attr_accessor :type
298
+
299
+ # A collection of keypresses the model would like to perform.
300
+ sig do
301
+ params(keys: T::Array[String], type: Symbol).returns(
302
+ T.attached_class
303
+ )
304
+ end
305
+ def self.new(
306
+ # The combination of keys the model is requesting to be pressed. This is an array
307
+ # of strings, each representing a key.
308
+ keys:,
309
+ # Specifies the event type. For a keypress action, this property is always set to
310
+ # `keypress`.
311
+ type: :keypress
312
+ )
313
+ end
314
+
315
+ sig { override.returns({ keys: T::Array[String], type: Symbol }) }
316
+ def to_hash
317
+ end
318
+ end
319
+
320
+ class Move < OpenAI::Internal::Type::BaseModel
321
+ OrHash =
322
+ T.type_alias do
323
+ T.any(
324
+ OpenAI::Responses::ComputerAction::Move,
325
+ OpenAI::Internal::AnyHash
326
+ )
327
+ end
328
+
329
+ # Specifies the event type. For a move action, this property is always set to
330
+ # `move`.
331
+ sig { returns(Symbol) }
332
+ attr_accessor :type
333
+
334
+ # The x-coordinate to move to.
335
+ sig { returns(Integer) }
336
+ attr_accessor :x
337
+
338
+ # The y-coordinate to move to.
339
+ sig { returns(Integer) }
340
+ attr_accessor :y_
341
+
342
+ # A mouse move action.
343
+ sig do
344
+ params(x: Integer, y_: Integer, type: Symbol).returns(
345
+ T.attached_class
346
+ )
347
+ end
348
+ def self.new(
349
+ # The x-coordinate to move to.
350
+ x:,
351
+ # The y-coordinate to move to.
352
+ y_:,
353
+ # Specifies the event type. For a move action, this property is always set to
354
+ # `move`.
355
+ type: :move
356
+ )
357
+ end
358
+
359
+ sig { override.returns({ type: Symbol, x: Integer, y_: Integer }) }
360
+ def to_hash
361
+ end
362
+ end
363
+
364
+ class Screenshot < OpenAI::Internal::Type::BaseModel
365
+ OrHash =
366
+ T.type_alias do
367
+ T.any(
368
+ OpenAI::Responses::ComputerAction::Screenshot,
369
+ OpenAI::Internal::AnyHash
370
+ )
371
+ end
372
+
373
+ # Specifies the event type. For a screenshot action, this property is always set
374
+ # to `screenshot`.
375
+ sig { returns(Symbol) }
376
+ attr_accessor :type
377
+
378
+ # A screenshot action.
379
+ sig { params(type: Symbol).returns(T.attached_class) }
380
+ def self.new(
381
+ # Specifies the event type. For a screenshot action, this property is always set
382
+ # to `screenshot`.
383
+ type: :screenshot
384
+ )
385
+ end
386
+
387
+ sig { override.returns({ type: Symbol }) }
388
+ def to_hash
389
+ end
390
+ end
391
+
392
+ class Scroll < OpenAI::Internal::Type::BaseModel
393
+ OrHash =
394
+ T.type_alias do
395
+ T.any(
396
+ OpenAI::Responses::ComputerAction::Scroll,
397
+ OpenAI::Internal::AnyHash
398
+ )
399
+ end
400
+
401
+ # The horizontal scroll distance.
402
+ sig { returns(Integer) }
403
+ attr_accessor :scroll_x
404
+
405
+ # The vertical scroll distance.
406
+ sig { returns(Integer) }
407
+ attr_accessor :scroll_y
408
+
409
+ # Specifies the event type. For a scroll action, this property is always set to
410
+ # `scroll`.
411
+ sig { returns(Symbol) }
412
+ attr_accessor :type
413
+
414
+ # The x-coordinate where the scroll occurred.
415
+ sig { returns(Integer) }
416
+ attr_accessor :x
417
+
418
+ # The y-coordinate where the scroll occurred.
419
+ sig { returns(Integer) }
420
+ attr_accessor :y_
421
+
422
+ # A scroll action.
423
+ sig do
424
+ params(
425
+ scroll_x: Integer,
426
+ scroll_y: Integer,
427
+ x: Integer,
428
+ y_: Integer,
429
+ type: Symbol
430
+ ).returns(T.attached_class)
431
+ end
432
+ def self.new(
433
+ # The horizontal scroll distance.
434
+ scroll_x:,
435
+ # The vertical scroll distance.
436
+ scroll_y:,
437
+ # The x-coordinate where the scroll occurred.
438
+ x:,
439
+ # The y-coordinate where the scroll occurred.
440
+ y_:,
441
+ # Specifies the event type. For a scroll action, this property is always set to
442
+ # `scroll`.
443
+ type: :scroll
444
+ )
445
+ end
446
+
447
+ sig do
448
+ override.returns(
449
+ {
450
+ scroll_x: Integer,
451
+ scroll_y: Integer,
452
+ type: Symbol,
453
+ x: Integer,
454
+ y_: Integer
455
+ }
456
+ )
457
+ end
458
+ def to_hash
459
+ end
460
+ end
461
+
462
+ class Type < OpenAI::Internal::Type::BaseModel
463
+ OrHash =
464
+ T.type_alias do
465
+ T.any(
466
+ OpenAI::Responses::ComputerAction::Type,
467
+ OpenAI::Internal::AnyHash
468
+ )
469
+ end
470
+
471
+ # The text to type.
472
+ sig { returns(String) }
473
+ attr_accessor :text
474
+
475
+ # Specifies the event type. For a type action, this property is always set to
476
+ # `type`.
477
+ sig { returns(Symbol) }
478
+ attr_accessor :type
479
+
480
+ # An action to type in text.
481
+ sig { params(text: String, type: Symbol).returns(T.attached_class) }
482
+ def self.new(
483
+ # The text to type.
484
+ text:,
485
+ # Specifies the event type. For a type action, this property is always set to
486
+ # `type`.
487
+ type: :type
488
+ )
489
+ end
490
+
491
+ sig { override.returns({ text: String, type: Symbol }) }
492
+ def to_hash
493
+ end
494
+ end
495
+
496
+ class Wait < OpenAI::Internal::Type::BaseModel
497
+ OrHash =
498
+ T.type_alias do
499
+ T.any(
500
+ OpenAI::Responses::ComputerAction::Wait,
501
+ OpenAI::Internal::AnyHash
502
+ )
503
+ end
504
+
505
+ # Specifies the event type. For a wait action, this property is always set to
506
+ # `wait`.
507
+ sig { returns(Symbol) }
508
+ attr_accessor :type
509
+
510
+ # A wait action.
511
+ sig { params(type: Symbol).returns(T.attached_class) }
512
+ def self.new(
513
+ # Specifies the event type. For a wait action, this property is always set to
514
+ # `wait`.
515
+ type: :wait
516
+ )
517
+ end
518
+
519
+ sig { override.returns({ type: Symbol }) }
520
+ def to_hash
521
+ end
522
+ end
523
+
524
+ sig do
525
+ override.returns(
526
+ T::Array[OpenAI::Responses::ComputerAction::Variants]
527
+ )
528
+ end
529
+ def self.variants
530
+ end
531
+ end
532
+ end
533
+ end
534
+ end
@@ -0,0 +1,15 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ ComputerActionList =
7
+ T.let(
8
+ OpenAI::Internal::Type::ArrayOf[
9
+ union: OpenAI::Responses::ComputerAction
10
+ ],
11
+ OpenAI::Internal::Type::Converter
12
+ )
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,31 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ class ComputerUseTool < OpenAI::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(OpenAI::Responses::ComputerUseTool, OpenAI::Internal::AnyHash)
10
+ end
11
+
12
+ # The type of the computer tool. Always `computer`.
13
+ sig { returns(Symbol) }
14
+ attr_accessor :type
15
+
16
+ # A tool that controls a virtual computer. Learn more about the
17
+ # [computer tool](https://platform.openai.com/docs/guides/tools-computer-use).
18
+ sig { params(type: Symbol).returns(T.attached_class) }
19
+ def self.new(
20
+ # The type of the computer tool. Always `computer`.
21
+ type: :computer
22
+ )
23
+ end
24
+
25
+ sig { override.returns({ type: Symbol }) }
26
+ def to_hash
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -17,6 +17,13 @@ module OpenAI
17
17
  sig { returns(Symbol) }
18
18
  attr_accessor :type
19
19
 
20
+ # Whether this tool should be deferred and discovered via tool search.
21
+ sig { returns(T.nilable(T::Boolean)) }
22
+ attr_reader :defer_loading
23
+
24
+ sig { params(defer_loading: T::Boolean).void }
25
+ attr_writer :defer_loading
26
+
20
27
  # Optional description of the custom tool, used to provide more context.
21
28
  sig { returns(T.nilable(String)) }
22
29
  attr_reader :description
@@ -53,6 +60,7 @@ module OpenAI
53
60
  sig do
54
61
  params(
55
62
  name: String,
63
+ defer_loading: T::Boolean,
56
64
  description: String,
57
65
  format_:
58
66
  T.any(
@@ -65,6 +73,8 @@ module OpenAI
65
73
  def self.new(
66
74
  # The name of the custom tool, used to identify it in tool calls.
67
75
  name:,
76
+ # Whether this tool should be deferred and discovered via tool search.
77
+ defer_loading: nil,
68
78
  # Optional description of the custom tool, used to provide more context.
69
79
  description: nil,
70
80
  # The input format for the custom tool. Default is unconstrained text.
@@ -79,6 +89,7 @@ module OpenAI
79
89
  {
80
90
  name: String,
81
91
  type: Symbol,
92
+ defer_loading: T::Boolean,
82
93
  description: String,
83
94
  format_:
84
95
  T.any(
@@ -22,6 +22,17 @@ module OpenAI
22
22
  sig { returns(OpenAI::Responses::EasyInputMessage::Role::OrSymbol) }
23
23
  attr_accessor :role
24
24
 
25
+ # Labels an `assistant` message as intermediate commentary (`commentary`) or the
26
+ # final answer (`final_answer`). For models like `gpt-5.3-codex` and beyond, when
27
+ # sending follow-up requests, preserve and resend phase on all assistant messages
28
+ # — dropping it can degrade performance. Not used for user messages.
29
+ sig do
30
+ returns(
31
+ T.nilable(OpenAI::Responses::EasyInputMessage::Phase::OrSymbol)
32
+ )
33
+ end
34
+ attr_accessor :phase
35
+
25
36
  # The type of the message input. Always `message`.
26
37
  sig do
27
38
  returns(
@@ -44,6 +55,8 @@ module OpenAI
44
55
  params(
45
56
  content: OpenAI::Responses::EasyInputMessage::Content::Variants,
46
57
  role: OpenAI::Responses::EasyInputMessage::Role::OrSymbol,
58
+ phase:
59
+ T.nilable(OpenAI::Responses::EasyInputMessage::Phase::OrSymbol),
47
60
  type: OpenAI::Responses::EasyInputMessage::Type::OrSymbol
48
61
  ).returns(T.attached_class)
49
62
  end
@@ -54,6 +67,11 @@ module OpenAI
54
67
  # The role of the message input. One of `user`, `assistant`, `system`, or
55
68
  # `developer`.
56
69
  role:,
70
+ # Labels an `assistant` message as intermediate commentary (`commentary`) or the
71
+ # final answer (`final_answer`). For models like `gpt-5.3-codex` and beyond, when
72
+ # sending follow-up requests, preserve and resend phase on all assistant messages
73
+ # — dropping it can degrade performance. Not used for user messages.
74
+ phase: nil,
57
75
  # The type of the message input. Always `message`.
58
76
  type: nil
59
77
  )
@@ -64,6 +82,8 @@ module OpenAI
64
82
  {
65
83
  content: OpenAI::Responses::EasyInputMessage::Content::Variants,
66
84
  role: OpenAI::Responses::EasyInputMessage::Role::OrSymbol,
85
+ phase:
86
+ T.nilable(OpenAI::Responses::EasyInputMessage::Phase::OrSymbol),
67
87
  type: OpenAI::Responses::EasyInputMessage::Type::OrSymbol
68
88
  }
69
89
  )
@@ -134,6 +154,39 @@ module OpenAI
134
154
  end
135
155
  end
136
156
 
157
+ # Labels an `assistant` message as intermediate commentary (`commentary`) or the
158
+ # final answer (`final_answer`). For models like `gpt-5.3-codex` and beyond, when
159
+ # sending follow-up requests, preserve and resend phase on all assistant messages
160
+ # — dropping it can degrade performance. Not used for user messages.
161
+ module Phase
162
+ extend OpenAI::Internal::Type::Enum
163
+
164
+ TaggedSymbol =
165
+ T.type_alias do
166
+ T.all(Symbol, OpenAI::Responses::EasyInputMessage::Phase)
167
+ end
168
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
169
+
170
+ COMMENTARY =
171
+ T.let(
172
+ :commentary,
173
+ OpenAI::Responses::EasyInputMessage::Phase::TaggedSymbol
174
+ )
175
+ FINAL_ANSWER =
176
+ T.let(
177
+ :final_answer,
178
+ OpenAI::Responses::EasyInputMessage::Phase::TaggedSymbol
179
+ )
180
+
181
+ sig do
182
+ override.returns(
183
+ T::Array[OpenAI::Responses::EasyInputMessage::Phase::TaggedSymbol]
184
+ )
185
+ end
186
+ def self.values
187
+ end
188
+ end
189
+
137
190
  # The type of the message input. Always `message`.
138
191
  module Type
139
192
  extend OpenAI::Internal::Type::Enum