ogx_open_client 1.0.3.dev0__py3-none-any.whl

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 (1199) hide show
  1. ogx_client/__init__.py +1135 -0
  2. ogx_client/_exceptions.py +114 -0
  3. ogx_client/_types.py +312 -0
  4. ogx_client/_version.py +8 -0
  5. ogx_client/api/__init__.py +33 -0
  6. ogx_client/api/admin_api.py +1411 -0
  7. ogx_client/api/alpha_api.py +354 -0
  8. ogx_client/api/batches_api.py +1247 -0
  9. ogx_client/api/chat_api.py +352 -0
  10. ogx_client/api/chat_completions_api.py +1028 -0
  11. ogx_client/api/completions_api.py +440 -0
  12. ogx_client/api/connectors_api.py +1235 -0
  13. ogx_client/api/conversations_api.py +1288 -0
  14. ogx_client/api/embeddings_api.py +429 -0
  15. ogx_client/api/file_batches_api.py +1370 -0
  16. ogx_client/api/file_processors_api.py +442 -0
  17. ogx_client/api/files_api.py +1539 -0
  18. ogx_client/api/inference_api.py +429 -0
  19. ogx_client/api/input_items_api.py +472 -0
  20. ogx_client/api/inspect_api.py +617 -0
  21. ogx_client/api/interactions_api.py +430 -0
  22. ogx_client/api/items_api.py +1359 -0
  23. ogx_client/api/messages_api.py +2466 -0
  24. ogx_client/api/models_api.py +451 -0
  25. ogx_client/api/openai_api.py +481 -0
  26. ogx_client/api/prompts_api.py +1883 -0
  27. ogx_client/api/providers_api.py +636 -0
  28. ogx_client/api/responses_api.py +1876 -0
  29. ogx_client/api/routes_api.py +389 -0
  30. ogx_client/api/tools_api.py +389 -0
  31. ogx_client/api/vector_io_api.py +740 -0
  32. ogx_client/api/vector_stores_api.py +1936 -0
  33. ogx_client/api/vector_stores_files_api.py +2011 -0
  34. ogx_client/api/versions_api.py +386 -0
  35. ogx_client/api_client.py +833 -0
  36. ogx_client/api_response.py +21 -0
  37. ogx_client/async_api_client.py +203 -0
  38. ogx_client/async_api_response.py +134 -0
  39. ogx_client/async_stream.py +161 -0
  40. ogx_client/configuration.py +585 -0
  41. ogx_client/exceptions.py +253 -0
  42. ogx_client/lib/__init__.py +17 -0
  43. ogx_client/lib/_utils.py +26 -0
  44. ogx_client/lib/agents/__init__.py +5 -0
  45. ogx_client/lib/agents/agent.py +540 -0
  46. ogx_client/lib/agents/client_tool.py +258 -0
  47. ogx_client/lib/agents/event_logger.py +134 -0
  48. ogx_client/lib/agents/event_synthesizer.py +448 -0
  49. ogx_client/lib/agents/react/__init__.py +5 -0
  50. ogx_client/lib/agents/react/agent.py +94 -0
  51. ogx_client/lib/agents/react/prompts.py +151 -0
  52. ogx_client/lib/agents/react/tool_parser.py +59 -0
  53. ogx_client/lib/agents/tool_parser.py +42 -0
  54. ogx_client/lib/agents/turn_events.py +268 -0
  55. ogx_client/lib/agents/types.py +63 -0
  56. ogx_client/lib/cli/__init__.py +12 -0
  57. ogx_client/lib/cli/common/__init__.py +5 -0
  58. ogx_client/lib/cli/common/utils.py +54 -0
  59. ogx_client/lib/cli/configure.py +68 -0
  60. ogx_client/lib/cli/constants.py +14 -0
  61. ogx_client/lib/cli/datasets/__init__.py +9 -0
  62. ogx_client/lib/cli/datasets/datasets.py +22 -0
  63. ogx_client/lib/cli/datasets/list.py +32 -0
  64. ogx_client/lib/cli/datasets/register.py +78 -0
  65. ogx_client/lib/cli/datasets/unregister.py +20 -0
  66. ogx_client/lib/cli/eval/__init__.py +9 -0
  67. ogx_client/lib/cli/eval/eval.py +22 -0
  68. ogx_client/lib/cli/eval/run_benchmark.py +193 -0
  69. ogx_client/lib/cli/eval/run_scoring.py +116 -0
  70. ogx_client/lib/cli/eval/utils.py +59 -0
  71. ogx_client/lib/cli/eval_tasks/__init__.py +9 -0
  72. ogx_client/lib/cli/eval_tasks/eval_tasks.py +65 -0
  73. ogx_client/lib/cli/eval_tasks/list.py +35 -0
  74. ogx_client/lib/cli/inference/__init__.py +9 -0
  75. ogx_client/lib/cli/inference/inference.py +88 -0
  76. ogx_client/lib/cli/inspect/__init__.py +9 -0
  77. ogx_client/lib/cli/inspect/inspect.py +19 -0
  78. ogx_client/lib/cli/inspect/version.py +22 -0
  79. ogx_client/lib/cli/models/__init__.py +9 -0
  80. ogx_client/lib/cli/models/models.py +149 -0
  81. ogx_client/lib/cli/ogx_client.py +111 -0
  82. ogx_client/lib/cli/post_training/__init__.py +9 -0
  83. ogx_client/lib/cli/post_training/post_training.py +114 -0
  84. ogx_client/lib/cli/providers/__init__.py +9 -0
  85. ogx_client/lib/cli/providers/inspect.py +33 -0
  86. ogx_client/lib/cli/providers/list.py +32 -0
  87. ogx_client/lib/cli/providers/providers.py +21 -0
  88. ogx_client/lib/cli/scoring_functions/__init__.py +9 -0
  89. ogx_client/lib/cli/scoring_functions/list.py +38 -0
  90. ogx_client/lib/cli/scoring_functions/scoring_functions.py +62 -0
  91. ogx_client/lib/cli/toolgroups/__init__.py +9 -0
  92. ogx_client/lib/cli/toolgroups/toolgroups.py +129 -0
  93. ogx_client/lib/cli/vector_stores/__init__.py +9 -0
  94. ogx_client/lib/cli/vector_stores/vector_stores.py +138 -0
  95. ogx_client/lib/inference/__init__.py +5 -0
  96. ogx_client/lib/inference/event_logger.py +58 -0
  97. ogx_client/lib/inference/utils.py +21 -0
  98. ogx_client/lib/stream_printer.py +30 -0
  99. ogx_client/lib/tools/__init__.py +9 -0
  100. ogx_client/lib/tools/mcp_oauth.py +303 -0
  101. ogx_client/models/__init__.py +505 -0
  102. ogx_client/models/add_items_request.py +148 -0
  103. ogx_client/models/allowed_tools_config.py +145 -0
  104. ogx_client/models/allowed_tools_filter.py +141 -0
  105. ogx_client/models/anthropic_base64_image_source.py +140 -0
  106. ogx_client/models/anthropic_base64_image_source_anthropic_url_image_source.py +396 -0
  107. ogx_client/models/anthropic_count_tokens_request.py +170 -0
  108. ogx_client/models/anthropic_count_tokens_response.py +119 -0
  109. ogx_client/models/anthropic_create_message_request.py +217 -0
  110. ogx_client/models/anthropic_image_block.py +144 -0
  111. ogx_client/models/anthropic_list_models_response.py +163 -0
  112. ogx_client/models/anthropic_message.py +141 -0
  113. ogx_client/models/anthropic_message_response.py +187 -0
  114. ogx_client/models/anthropic_model_info.py +149 -0
  115. ogx_client/models/anthropic_text_block.py +131 -0
  116. ogx_client/models/anthropic_text_block5_variants.py +549 -0
  117. ogx_client/models/anthropic_text_block5_variants1.py +549 -0
  118. ogx_client/models/anthropic_text_block_anthropic_image_block.py +203 -0
  119. ogx_client/models/anthropic_thinking_block.py +138 -0
  120. ogx_client/models/anthropic_thinking_config.py +137 -0
  121. ogx_client/models/anthropic_tool_def.py +128 -0
  122. ogx_client/models/anthropic_tool_result_block_input.py +153 -0
  123. ogx_client/models/anthropic_tool_result_block_output.py +153 -0
  124. ogx_client/models/anthropic_tool_use_block.py +135 -0
  125. ogx_client/models/anthropic_url_image_source.py +131 -0
  126. ogx_client/models/anthropic_usage.py +135 -0
  127. ogx_client/models/api.py +59 -0
  128. ogx_client/models/approval_filter.py +148 -0
  129. ogx_client/models/array_type.py +129 -0
  130. ogx_client/models/batch.py +302 -0
  131. ogx_client/models/batch_error.py +158 -0
  132. ogx_client/models/batch_request_counts.py +136 -0
  133. ogx_client/models/batch_usage.py +166 -0
  134. ogx_client/models/bf16_quantization_config.py +129 -0
  135. ogx_client/models/boolean_type.py +129 -0
  136. ogx_client/models/cancel_batch_request.py +119 -0
  137. ogx_client/models/chat_completion_input_type.py +129 -0
  138. ogx_client/models/chat_completion_message.py +216 -0
  139. ogx_client/models/chat_completion_message_custom_tool_call.py +143 -0
  140. ogx_client/models/chat_completion_message_custom_tool_call_custom.py +121 -0
  141. ogx_client/models/chat_completion_message_function_call.py +121 -0
  142. ogx_client/models/chat_completion_message_list.py +165 -0
  143. ogx_client/models/chat_completion_message_tool_call.py +143 -0
  144. ogx_client/models/chat_completion_message_tool_call_chat_completion_message_custom_tool_call.py +203 -0
  145. ogx_client/models/chat_completion_message_tool_call_chat_completion_message_custom_tool_call1.py +206 -0
  146. ogx_client/models/chat_completion_message_tool_call_function.py +121 -0
  147. ogx_client/models/chunk.py +151 -0
  148. ogx_client/models/chunk_for_deletion.py +121 -0
  149. ogx_client/models/chunk_metadata.py +180 -0
  150. ogx_client/models/compact_response_request.py +239 -0
  151. ogx_client/models/comparison_filter.py +135 -0
  152. ogx_client/models/completion_input_type.py +129 -0
  153. ogx_client/models/compound_filter.py +128 -0
  154. ogx_client/models/connector.py +152 -0
  155. ogx_client/models/connector_input.py +131 -0
  156. ogx_client/models/connector_type.py +42 -0
  157. ogx_client/models/context_management.py +133 -0
  158. ogx_client/models/conversation.py +140 -0
  159. ogx_client/models/conversation_deleted_resource.py +133 -0
  160. ogx_client/models/conversation_item.py +855 -0
  161. ogx_client/models/conversation_item_create_request.py +148 -0
  162. ogx_client/models/conversation_item_deleted_resource.py +133 -0
  163. ogx_client/models/conversation_item_include.py +48 -0
  164. ogx_client/models/conversation_item_list.py +158 -0
  165. ogx_client/models/conversation_message.py +149 -0
  166. ogx_client/models/create_batch_request.py +144 -0
  167. ogx_client/models/create_conversation_request.py +159 -0
  168. ogx_client/models/create_message_batch_request.py +148 -0
  169. ogx_client/models/create_prompt_request.py +126 -0
  170. ogx_client/models/create_response_request.py +407 -0
  171. ogx_client/models/custom_tool_config.py +119 -0
  172. ogx_client/models/delete_chunks_request.py +132 -0
  173. ogx_client/models/delete_conversation_request.py +119 -0
  174. ogx_client/models/delete_file_request.py +119 -0
  175. ogx_client/models/delete_item_request.py +121 -0
  176. ogx_client/models/delete_prompt_request.py +119 -0
  177. ogx_client/models/dialog_type.py +129 -0
  178. ogx_client/models/embedded_chunk.py +157 -0
  179. ogx_client/models/embedded_chunk_input.py +157 -0
  180. ogx_client/models/embedded_chunk_output.py +157 -0
  181. ogx_client/models/embeddings_response.py +136 -0
  182. ogx_client/models/error.py +143 -0
  183. ogx_client/models/error_detail.py +313 -0
  184. ogx_client/models/errors.py +172 -0
  185. ogx_client/models/expires_after.py +129 -0
  186. ogx_client/models/fp8_quantization_config.py +129 -0
  187. ogx_client/models/function_tool_config.py +119 -0
  188. ogx_client/models/get_chat_completion_request.py +119 -0
  189. ogx_client/models/get_connector_request.py +119 -0
  190. ogx_client/models/get_connector_tool_request.py +121 -0
  191. ogx_client/models/get_conversation_request.py +119 -0
  192. ogx_client/models/get_model_request.py +119 -0
  193. ogx_client/models/get_model_v1_models_model_id_get200_response.py +414 -0
  194. ogx_client/models/get_prompt_request.py +126 -0
  195. ogx_client/models/google_create_interaction_request.py +213 -0
  196. ogx_client/models/google_function_call_content.py +153 -0
  197. ogx_client/models/google_function_call_output.py +153 -0
  198. ogx_client/models/google_function_declaration.py +146 -0
  199. ogx_client/models/google_function_response_content.py +160 -0
  200. ogx_client/models/google_generation_config.py +146 -0
  201. ogx_client/models/google_input_turn.py +141 -0
  202. ogx_client/models/google_interaction_response.py +199 -0
  203. ogx_client/models/google_list_models_response.py +147 -0
  204. ogx_client/models/google_model_info.py +123 -0
  205. ogx_client/models/google_text_content.py +131 -0
  206. ogx_client/models/google_text_content_google_function_call_content_google_function_response_content.py +218 -0
  207. ogx_client/models/google_text_output.py +131 -0
  208. ogx_client/models/google_text_output_google_function_call_output_google_thought_output.py +447 -0
  209. ogx_client/models/google_thought_output.py +149 -0
  210. ogx_client/models/google_tool.py +145 -0
  211. ogx_client/models/google_usage.py +136 -0
  212. ogx_client/models/grammar_response_format.py +131 -0
  213. ogx_client/models/greedy_sampling_strategy.py +129 -0
  214. ogx_client/models/greedy_sampling_strategy_top_p_sampling_strategy_top_k_sampling_strategy.py +447 -0
  215. ogx_client/models/health_info.py +120 -0
  216. ogx_client/models/health_status.py +44 -0
  217. ogx_client/models/image_content_item.py +144 -0
  218. ogx_client/models/image_content_item_input.py +144 -0
  219. ogx_client/models/image_content_item_input_text_content_item.py +396 -0
  220. ogx_client/models/image_content_item_output.py +144 -0
  221. ogx_client/models/image_content_item_output_text_content_item.py +396 -0
  222. ogx_client/models/image_content_item_text_content_item.py +396 -0
  223. ogx_client/models/image_delta.py +131 -0
  224. ogx_client/models/inline_provider_spec.py +183 -0
  225. ogx_client/models/input_tokens_details.py +132 -0
  226. ogx_client/models/insert_chunks_request.py +139 -0
  227. ogx_client/models/inspect_provider_request.py +119 -0
  228. ogx_client/models/int4_quantization_config.py +136 -0
  229. ogx_client/models/integer_number.py +207 -0
  230. ogx_client/models/interleaved_content.py +280 -0
  231. ogx_client/models/interleaved_content_item.py +396 -0
  232. ogx_client/models/job.py +122 -0
  233. ogx_client/models/job_status.py +46 -0
  234. ogx_client/models/json_schema_response_format.py +131 -0
  235. ogx_client/models/json_type.py +129 -0
  236. ogx_client/models/list_batches_request.py +126 -0
  237. ogx_client/models/list_batches_response.py +158 -0
  238. ogx_client/models/list_chat_completion_messages_request.py +142 -0
  239. ogx_client/models/list_chat_completions_request.py +147 -0
  240. ogx_client/models/list_connector_tools_request.py +119 -0
  241. ogx_client/models/list_connectors_response.py +147 -0
  242. ogx_client/models/list_files_request.py +147 -0
  243. ogx_client/models/list_items_request.py +158 -0
  244. ogx_client/models/list_message_batches_response.py +163 -0
  245. ogx_client/models/list_models_response.py +147 -0
  246. ogx_client/models/list_models_v1_models_get200_response.py +414 -0
  247. ogx_client/models/list_number_string.py +265 -0
  248. ogx_client/models/list_open_ai_chat_completion_response.py +165 -0
  249. ogx_client/models/list_open_ai_file_response.py +165 -0
  250. ogx_client/models/list_open_ai_response_input_item.py +159 -0
  251. ogx_client/models/list_open_ai_response_object.py +165 -0
  252. ogx_client/models/list_prompt_versions_request.py +119 -0
  253. ogx_client/models/list_prompts_response.py +147 -0
  254. ogx_client/models/list_providers_response.py +147 -0
  255. ogx_client/models/list_routes_request.py +134 -0
  256. ogx_client/models/list_routes_response.py +147 -0
  257. ogx_client/models/list_string_allowed_tools_filter.py +269 -0
  258. ogx_client/models/list_tool_defs_response.py +147 -0
  259. ogx_client/models/list_tool_groups_response.py +147 -0
  260. ogx_client/models/list_tools_request.py +124 -0
  261. ogx_client/models/list_tools_response.py +147 -0
  262. ogx_client/models/mcp_list_tools_tool.py +128 -0
  263. ogx_client/models/message_batch.py +187 -0
  264. ogx_client/models/message_batch_request_counts.py +127 -0
  265. ogx_client/models/message_batch_request_params.py +142 -0
  266. ogx_client/models/metric_in_response.py +141 -0
  267. ogx_client/models/model.py +171 -0
  268. ogx_client/models/model_type.py +44 -0
  269. ogx_client/models/number_type.py +129 -0
  270. ogx_client/models/object_type.py +129 -0
  271. ogx_client/models/open_ai_assistant_message_param.py +187 -0
  272. ogx_client/models/open_ai_assistant_message_param_input.py +187 -0
  273. ogx_client/models/open_ai_assistant_message_param_output.py +187 -0
  274. ogx_client/models/open_ai_attach_file_request.py +164 -0
  275. ogx_client/models/open_ai_chat_completion.py +173 -0
  276. ogx_client/models/open_ai_chat_completion_chunk.py +173 -0
  277. ogx_client/models/open_ai_chat_completion_content_part_image_param.py +144 -0
  278. ogx_client/models/open_ai_chat_completion_content_part_param.py +447 -0
  279. ogx_client/models/open_ai_chat_completion_content_part_text_param.py +131 -0
  280. ogx_client/models/open_ai_chat_completion_content_part_text_param_open_ai_chat_completion_content_part_image_param.py +203 -0
  281. ogx_client/models/open_ai_chat_completion_content_part_text_param_open_ai_chat_completion_content_part_image_param_open_ai_file.py +447 -0
  282. ogx_client/models/open_ai_chat_completion_custom_tool_call_function.py +121 -0
  283. ogx_client/models/open_ai_chat_completion_request_with_extra_body.py +377 -0
  284. ogx_client/models/open_ai_chat_completion_response_message.py +180 -0
  285. ogx_client/models/open_ai_chat_completion_tool_call_function.py +121 -0
  286. ogx_client/models/open_ai_chat_completion_tool_choice.py +447 -0
  287. ogx_client/models/open_ai_chat_completion_tool_choice_allowed_tools.py +144 -0
  288. ogx_client/models/open_ai_chat_completion_tool_choice_custom_tool.py +144 -0
  289. ogx_client/models/open_ai_chat_completion_tool_choice_function_tool.py +144 -0
  290. ogx_client/models/open_ai_chat_completion_usage.py +154 -0
  291. ogx_client/models/open_ai_chat_completion_usage_completion_tokens_details.py +120 -0
  292. ogx_client/models/open_ai_chat_completion_usage_prompt_tokens_details.py +120 -0
  293. ogx_client/models/open_ai_choice.py +167 -0
  294. ogx_client/models/open_ai_choice_delta.py +163 -0
  295. ogx_client/models/open_ai_choice_logprobs.py +169 -0
  296. ogx_client/models/open_ai_chunk_choice.py +162 -0
  297. ogx_client/models/open_ai_chunk_choice_logprobs.py +169 -0
  298. ogx_client/models/open_ai_compacted_response.py +161 -0
  299. ogx_client/models/open_ai_completion.py +149 -0
  300. ogx_client/models/open_ai_completion_choice.py +154 -0
  301. ogx_client/models/open_ai_completion_logprobs.py +162 -0
  302. ogx_client/models/open_ai_completion_request_with_extra_body.py +273 -0
  303. ogx_client/models/open_ai_completion_with_input_messages.py +186 -0
  304. ogx_client/models/open_ai_create_vector_store_file_batch_request_with_extra_body.py +212 -0
  305. ogx_client/models/open_ai_create_vector_store_request_with_extra_body.py +198 -0
  306. ogx_client/models/open_ai_delete_response_object.py +133 -0
  307. ogx_client/models/open_ai_developer_message_param.py +151 -0
  308. ogx_client/models/open_ai_embedding_data.py +147 -0
  309. ogx_client/models/open_ai_embedding_usage.py +121 -0
  310. ogx_client/models/open_ai_embeddings_request_with_extra_body.py +164 -0
  311. ogx_client/models/open_ai_embeddings_response.py +160 -0
  312. ogx_client/models/open_ai_file.py +144 -0
  313. ogx_client/models/open_ai_file_delete_response.py +133 -0
  314. ogx_client/models/open_ai_file_file.py +138 -0
  315. ogx_client/models/open_ai_file_object.py +153 -0
  316. ogx_client/models/open_ai_file_purpose.py +50 -0
  317. ogx_client/models/open_ai_file_upload_purpose.py +47 -0
  318. ogx_client/models/open_ai_finish_reason.py +46 -0
  319. ogx_client/models/open_ai_image_url.py +136 -0
  320. ogx_client/models/open_ai_list_models_response.py +142 -0
  321. ogx_client/models/open_ai_message_param.py +549 -0
  322. ogx_client/models/open_ai_model.py +142 -0
  323. ogx_client/models/open_ai_response_annotation_citation.py +137 -0
  324. ogx_client/models/open_ai_response_annotation_container_file_citation.py +139 -0
  325. ogx_client/models/open_ai_response_annotation_file_citation.py +135 -0
  326. ogx_client/models/open_ai_response_annotation_file_citation4_variants.py +498 -0
  327. ogx_client/models/open_ai_response_annotation_file_path.py +133 -0
  328. ogx_client/models/open_ai_response_annotations.py +498 -0
  329. ogx_client/models/open_ai_response_compaction.py +138 -0
  330. ogx_client/models/open_ai_response_content_part.py +447 -0
  331. ogx_client/models/open_ai_response_content_part_output_text.py +162 -0
  332. ogx_client/models/open_ai_response_content_part_output_text_open_ai_response_content_part_refusal_open_ai_response_content_part_reasoning_text.py +447 -0
  333. ogx_client/models/open_ai_response_content_part_reasoning_summary.py +131 -0
  334. ogx_client/models/open_ai_response_content_part_reasoning_text.py +131 -0
  335. ogx_client/models/open_ai_response_content_part_refusal.py +131 -0
  336. ogx_client/models/open_ai_response_error.py +121 -0
  337. ogx_client/models/open_ai_response_format_json_object.py +129 -0
  338. ogx_client/models/open_ai_response_format_json_schema.py +144 -0
  339. ogx_client/models/open_ai_response_format_param.py +447 -0
  340. ogx_client/models/open_ai_response_format_text.py +129 -0
  341. ogx_client/models/open_ai_response_format_text_open_ai_response_format_json_schema_open_ai_response_format_json_object.py +453 -0
  342. ogx_client/models/open_ai_response_incomplete_details.py +119 -0
  343. ogx_client/models/open_ai_response_input.py +251 -0
  344. ogx_client/models/open_ai_response_input_function_tool_call_output.py +160 -0
  345. ogx_client/models/open_ai_response_input_function_tool_call_output_open_ai_response_mcp_approval_response_open_ai_response_compaction.py +233 -0
  346. ogx_client/models/open_ai_response_input_message_content.py +447 -0
  347. ogx_client/models/open_ai_response_input_message_content_file.py +157 -0
  348. ogx_client/models/open_ai_response_input_message_content_image.py +155 -0
  349. ogx_client/models/open_ai_response_input_message_content_text.py +131 -0
  350. ogx_client/models/open_ai_response_input_message_content_text_open_ai_response_input_message_content_image_open_ai_response_input_message_content_file.py +447 -0
  351. ogx_client/models/open_ai_response_input_tool.py +516 -0
  352. ogx_client/models/open_ai_response_input_tool_choice.py +203 -0
  353. ogx_client/models/open_ai_response_input_tool_choice_allowed_tools.py +143 -0
  354. ogx_client/models/open_ai_response_input_tool_choice_allowed_tools6_variants.py +618 -0
  355. ogx_client/models/open_ai_response_input_tool_choice_custom_tool.py +131 -0
  356. ogx_client/models/open_ai_response_input_tool_choice_file_search.py +129 -0
  357. ogx_client/models/open_ai_response_input_tool_choice_function_tool.py +131 -0
  358. ogx_client/models/open_ai_response_input_tool_choice_mcp_tool.py +138 -0
  359. ogx_client/models/open_ai_response_input_tool_choice_mode.py +44 -0
  360. ogx_client/models/open_ai_response_input_tool_choice_mode1.py +209 -0
  361. ogx_client/models/open_ai_response_input_tool_choice_mode2.py +209 -0
  362. ogx_client/models/open_ai_response_input_tool_choice_web_search.py +129 -0
  363. ogx_client/models/open_ai_response_input_tool_file_search.py +166 -0
  364. ogx_client/models/open_ai_response_input_tool_function.py +152 -0
  365. ogx_client/models/open_ai_response_input_tool_mcp.py +194 -0
  366. ogx_client/models/open_ai_response_input_tool_web_search.py +147 -0
  367. ogx_client/models/open_ai_response_input_tool_web_search4_variants.py +516 -0
  368. ogx_client/models/open_ai_response_input_tool_web_search4_variants1.py +516 -0
  369. ogx_client/models/open_ai_response_mcp_approval_request.py +137 -0
  370. ogx_client/models/open_ai_response_mcp_approval_response.py +147 -0
  371. ogx_client/models/open_ai_response_message.py +167 -0
  372. ogx_client/models/open_ai_response_message11_variants.py +855 -0
  373. ogx_client/models/open_ai_response_message8_variants.py +702 -0
  374. ogx_client/models/open_ai_response_message_input.py +167 -0
  375. ogx_client/models/open_ai_response_message_input11_variants.py +855 -0
  376. ogx_client/models/open_ai_response_message_input8_variants.py +702 -0
  377. ogx_client/models/open_ai_response_message_output.py +167 -0
  378. ogx_client/models/open_ai_response_message_output11_variants.py +855 -0
  379. ogx_client/models/open_ai_response_message_output8_variants.py +702 -0
  380. ogx_client/models/open_ai_response_message_output_union.py +233 -0
  381. ogx_client/models/open_ai_response_object.py +412 -0
  382. ogx_client/models/open_ai_response_object_stream.py +2181 -0
  383. ogx_client/models/open_ai_response_object_stream_error.py +147 -0
  384. ogx_client/models/open_ai_response_object_stream_response_completed.py +146 -0
  385. ogx_client/models/open_ai_response_object_stream_response_content_part_added.py +154 -0
  386. ogx_client/models/open_ai_response_object_stream_response_content_part_done.py +154 -0
  387. ogx_client/models/open_ai_response_object_stream_response_created.py +146 -0
  388. ogx_client/models/open_ai_response_object_stream_response_failed.py +146 -0
  389. ogx_client/models/open_ai_response_object_stream_response_file_search_call_completed.py +135 -0
  390. ogx_client/models/open_ai_response_object_stream_response_file_search_call_in_progress.py +135 -0
  391. ogx_client/models/open_ai_response_object_stream_response_file_search_call_searching.py +135 -0
  392. ogx_client/models/open_ai_response_object_stream_response_function_call_arguments_delta.py +137 -0
  393. ogx_client/models/open_ai_response_object_stream_response_function_call_arguments_done.py +137 -0
  394. ogx_client/models/open_ai_response_object_stream_response_in_progress.py +146 -0
  395. ogx_client/models/open_ai_response_object_stream_response_incomplete.py +146 -0
  396. ogx_client/models/open_ai_response_object_stream_response_mcp_call_arguments_delta.py +137 -0
  397. ogx_client/models/open_ai_response_object_stream_response_mcp_call_arguments_done.py +137 -0
  398. ogx_client/models/open_ai_response_object_stream_response_mcp_call_completed.py +131 -0
  399. ogx_client/models/open_ai_response_object_stream_response_mcp_call_failed.py +131 -0
  400. ogx_client/models/open_ai_response_object_stream_response_mcp_call_in_progress.py +135 -0
  401. ogx_client/models/open_ai_response_object_stream_response_mcp_list_tools_completed.py +131 -0
  402. ogx_client/models/open_ai_response_object_stream_response_mcp_list_tools_failed.py +131 -0
  403. ogx_client/models/open_ai_response_object_stream_response_mcp_list_tools_in_progress.py +131 -0
  404. ogx_client/models/open_ai_response_object_stream_response_output_item_added.py +150 -0
  405. ogx_client/models/open_ai_response_object_stream_response_output_item_done.py +150 -0
  406. ogx_client/models/open_ai_response_object_stream_response_output_text_annotation_added.py +154 -0
  407. ogx_client/models/open_ai_response_object_stream_response_output_text_delta.py +157 -0
  408. ogx_client/models/open_ai_response_object_stream_response_output_text_done.py +139 -0
  409. ogx_client/models/open_ai_response_object_stream_response_reasoning_summary_part_added.py +152 -0
  410. ogx_client/models/open_ai_response_object_stream_response_reasoning_summary_part_done.py +152 -0
  411. ogx_client/models/open_ai_response_object_stream_response_reasoning_summary_text_delta.py +139 -0
  412. ogx_client/models/open_ai_response_object_stream_response_reasoning_summary_text_done.py +139 -0
  413. ogx_client/models/open_ai_response_object_stream_response_reasoning_text_delta.py +139 -0
  414. ogx_client/models/open_ai_response_object_stream_response_reasoning_text_done.py +139 -0
  415. ogx_client/models/open_ai_response_object_stream_response_refusal_delta.py +139 -0
  416. ogx_client/models/open_ai_response_object_stream_response_refusal_done.py +139 -0
  417. ogx_client/models/open_ai_response_object_stream_response_web_search_call_completed.py +135 -0
  418. ogx_client/models/open_ai_response_object_stream_response_web_search_call_in_progress.py +135 -0
  419. ogx_client/models/open_ai_response_object_stream_response_web_search_call_searching.py +135 -0
  420. ogx_client/models/open_ai_response_object_with_input.py +425 -0
  421. ogx_client/models/open_ai_response_output.py +702 -0
  422. ogx_client/models/open_ai_response_output_item.py +702 -0
  423. ogx_client/models/open_ai_response_output_message_content.py +396 -0
  424. ogx_client/models/open_ai_response_output_message_content_output_text.py +162 -0
  425. ogx_client/models/open_ai_response_output_message_content_output_text_input.py +162 -0
  426. ogx_client/models/open_ai_response_output_message_content_output_text_input_open_ai_response_content_part_refusal.py +396 -0
  427. ogx_client/models/open_ai_response_output_message_content_output_text_open_ai_response_content_part_refusal.py +396 -0
  428. ogx_client/models/open_ai_response_output_message_content_output_text_output.py +162 -0
  429. ogx_client/models/open_ai_response_output_message_content_output_text_output_open_ai_response_content_part_refusal.py +396 -0
  430. ogx_client/models/open_ai_response_output_message_file_search_tool_call.py +153 -0
  431. ogx_client/models/open_ai_response_output_message_file_search_tool_call_results.py +127 -0
  432. ogx_client/models/open_ai_response_output_message_function_tool_call.py +149 -0
  433. ogx_client/models/open_ai_response_output_message_mcp_call.py +151 -0
  434. ogx_client/models/open_ai_response_output_message_mcp_list_tools.py +146 -0
  435. ogx_client/models/open_ai_response_output_message_reasoning_content.py +131 -0
  436. ogx_client/models/open_ai_response_output_message_reasoning_item.py +179 -0
  437. ogx_client/models/open_ai_response_output_message_reasoning_summary.py +131 -0
  438. ogx_client/models/open_ai_response_output_message_web_search_tool_call.py +133 -0
  439. ogx_client/models/open_ai_response_prompt.py +151 -0
  440. ogx_client/models/open_ai_response_reasoning.py +168 -0
  441. ogx_client/models/open_ai_response_text.py +154 -0
  442. ogx_client/models/open_ai_response_text_format.py +157 -0
  443. ogx_client/models/open_ai_response_tool.py +516 -0
  444. ogx_client/models/open_ai_response_tool_mcp.py +151 -0
  445. ogx_client/models/open_ai_response_usage.py +153 -0
  446. ogx_client/models/open_ai_response_usage_input_tokens_details.py +119 -0
  447. ogx_client/models/open_ai_response_usage_output_tokens_details.py +119 -0
  448. ogx_client/models/open_ai_search_vector_store_request.py +171 -0
  449. ogx_client/models/open_ai_system_message_param.py +151 -0
  450. ogx_client/models/open_ai_token_log_prob.py +146 -0
  451. ogx_client/models/open_ai_tool_message_param.py +146 -0
  452. ogx_client/models/open_ai_top_log_prob.py +128 -0
  453. ogx_client/models/open_ai_update_vector_store_file_request.py +119 -0
  454. ogx_client/models/open_ai_update_vector_store_request.py +151 -0
  455. ogx_client/models/open_ai_user_message_param.py +151 -0
  456. ogx_client/models/open_ai_user_message_param_input.py +151 -0
  457. ogx_client/models/open_ai_user_message_param_input5_variants.py +549 -0
  458. ogx_client/models/open_ai_user_message_param_output.py +151 -0
  459. ogx_client/models/open_ai_user_message_param_output5_variants.py +549 -0
  460. ogx_client/models/open_aijson_schema.py +140 -0
  461. ogx_client/models/order.py +43 -0
  462. ogx_client/models/output_tokens_details.py +132 -0
  463. ogx_client/models/paginated_response.py +145 -0
  464. ogx_client/models/param_type.py +753 -0
  465. ogx_client/models/process_file_request.py +151 -0
  466. ogx_client/models/process_file_response.py +149 -0
  467. ogx_client/models/prompt.py +133 -0
  468. ogx_client/models/provider_info.py +127 -0
  469. ogx_client/models/provider_spec.py +169 -0
  470. ogx_client/models/query_chunks_request.py +141 -0
  471. ogx_client/models/query_chunks_response.py +149 -0
  472. ogx_client/models/register_model_request.py +155 -0
  473. ogx_client/models/remote_provider_spec.py +178 -0
  474. ogx_client/models/rerank_data.py +122 -0
  475. ogx_client/models/rerank_request.py +155 -0
  476. ogx_client/models/rerank_response.py +147 -0
  477. ogx_client/models/response_format.py +396 -0
  478. ogx_client/models/response_item_include.py +48 -0
  479. ogx_client/models/response_retrieve_item_v1_conversations_conversation_id_items_item_id_get.py +849 -0
  480. ogx_client/models/response_stream_options.py +119 -0
  481. ogx_client/models/response_truncation.py +43 -0
  482. ogx_client/models/retrieve_batch_request.py +119 -0
  483. ogx_client/models/retrieve_file_content_request.py +119 -0
  484. ogx_client/models/retrieve_file_request.py +119 -0
  485. ogx_client/models/retrieve_item_request.py +121 -0
  486. ogx_client/models/route_info.py +123 -0
  487. ogx_client/models/sampling_params.py +154 -0
  488. ogx_client/models/sampling_strategy.py +447 -0
  489. ogx_client/models/score_request.py +136 -0
  490. ogx_client/models/scoring_result.py +124 -0
  491. ogx_client/models/search_ranking_options.py +160 -0
  492. ogx_client/models/service_tier.py +45 -0
  493. ogx_client/models/set_default_version_body_request.py +119 -0
  494. ogx_client/models/set_default_version_request.py +121 -0
  495. ogx_client/models/string4_variants.py +415 -0
  496. ogx_client/models/string4_variants1.py +416 -0
  497. ogx_client/models/string_approval_filter.py +222 -0
  498. ogx_client/models/string_list_anthropic_text_block.py +272 -0
  499. ogx_client/models/string_list_anthropic_text_block1.py +272 -0
  500. ogx_client/models/string_list_anthropic_text_block_anthropic_image_block.py +266 -0
  501. ogx_client/models/string_list_google_input_turn.py +266 -0
  502. ogx_client/models/string_list_google_text_content_google_function_call_content_google_function_response_content.py +266 -0
  503. ogx_client/models/string_list_image_content_item_input_text_content_item.py +280 -0
  504. ogx_client/models/string_list_image_content_item_input_text_content_item1.py +280 -0
  505. ogx_client/models/string_list_image_content_item_output_text_content_item.py +280 -0
  506. ogx_client/models/string_list_image_content_item_text_content_item.py +286 -0
  507. ogx_client/models/string_list_image_content_item_text_content_item1.py +280 -0
  508. ogx_client/models/string_list_image_content_item_text_content_item2.py +286 -0
  509. ogx_client/models/string_list_image_content_item_text_content_item3.py +280 -0
  510. ogx_client/models/string_list_image_content_item_text_content_item4.py +280 -0
  511. ogx_client/models/string_list_image_content_item_text_content_item5.py +280 -0
  512. ogx_client/models/string_list_open_ai_chat_completion_content_part_text_param.py +272 -0
  513. ogx_client/models/string_list_open_ai_chat_completion_content_part_text_param1.py +266 -0
  514. ogx_client/models/string_list_open_ai_chat_completion_content_part_text_param2.py +266 -0
  515. ogx_client/models/string_list_open_ai_chat_completion_content_part_text_param3.py +266 -0
  516. ogx_client/models/string_list_open_ai_chat_completion_content_part_text_param4.py +272 -0
  517. ogx_client/models/string_list_open_ai_chat_completion_content_part_text_param_open_ai_chat_completion_content_part_image_param_open_ai_file.py +266 -0
  518. ogx_client/models/string_list_open_ai_response_input_message_content_text_open_ai_response_input_message_content_image_open_ai_response_input_message_content_file.py +266 -0
  519. ogx_client/models/string_list_open_ai_response_input_message_content_text_open_ai_response_input_message_content_image_open_ai_response_input_message_content_file_list_open_ai_response_output_message_content_output_text_input_open_ai_response_content_part_refusal.py +342 -0
  520. ogx_client/models/string_list_open_ai_response_input_message_content_text_open_ai_response_input_message_content_image_open_ai_response_input_message_content_file_list_open_ai_response_output_message_content_output_text_open_ai_response_content_part_refusal.py +342 -0
  521. ogx_client/models/string_list_open_ai_response_input_message_content_text_open_ai_response_input_message_content_image_open_ai_response_input_message_content_file_list_open_ai_response_output_message_content_output_text_output_open_ai_response_content_part_refusal.py +342 -0
  522. ogx_client/models/string_list_open_ai_response_message_union_open_ai_response_input_function_tool_call_output.py +272 -0
  523. ogx_client/models/string_list_open_ai_response_message_union_open_ai_response_input_function_tool_call_output1.py +266 -0
  524. ogx_client/models/string_list_string.py +271 -0
  525. ogx_client/models/string_list_string1.py +265 -0
  526. ogx_client/models/string_list_string2.py +265 -0
  527. ogx_client/models/string_number_boolean.py +225 -0
  528. ogx_client/models/string_number_boolean1.py +224 -0
  529. ogx_client/models/string_object.py +271 -0
  530. ogx_client/models/string_object1.py +271 -0
  531. ogx_client/models/string_open_ai_chat_completion_content_part_text_param_open_ai_chat_completion_content_part_image_param.py +220 -0
  532. ogx_client/models/string_open_ai_chat_completion_content_part_text_param_open_ai_chat_completion_content_part_image_param1.py +220 -0
  533. ogx_client/models/string_type.py +129 -0
  534. ogx_client/models/system_message.py +144 -0
  535. ogx_client/models/text_content_item.py +131 -0
  536. ogx_client/models/text_delta.py +131 -0
  537. ogx_client/models/token_log_probs.py +119 -0
  538. ogx_client/models/tool_config.py +119 -0
  539. ogx_client/models/tool_def.py +154 -0
  540. ogx_client/models/tool_group.py +167 -0
  541. ogx_client/models/tool_group_input.py +148 -0
  542. ogx_client/models/tool_invocation_result.py +158 -0
  543. ogx_client/models/tool_response_message.py +146 -0
  544. ogx_client/models/top_k_sampling_strategy.py +132 -0
  545. ogx_client/models/top_p_sampling_strategy.py +134 -0
  546. ogx_client/models/union_type.py +129 -0
  547. ogx_client/models/unregister_model_request.py +119 -0
  548. ogx_client/models/update_conversation_request.py +119 -0
  549. ogx_client/models/update_prompt_body_request.py +130 -0
  550. ogx_client/models/update_prompt_request.py +132 -0
  551. ogx_client/models/upload_file_request.py +140 -0
  552. ogx_client/models/url.py +119 -0
  553. ogx_client/models/urlor_data.py +144 -0
  554. ogx_client/models/user_message.py +164 -0
  555. ogx_client/models/vector_store_chunking_strategy.py +453 -0
  556. ogx_client/models/vector_store_chunking_strategy_auto.py +129 -0
  557. ogx_client/models/vector_store_chunking_strategy_auto_vector_store_chunking_strategy_static_vector_store_chunking_strategy_contextual.py +453 -0
  558. ogx_client/models/vector_store_chunking_strategy_auto_vector_store_chunking_strategy_static_vector_store_chunking_strategy_contextual1.py +447 -0
  559. ogx_client/models/vector_store_chunking_strategy_contextual.py +144 -0
  560. ogx_client/models/vector_store_chunking_strategy_contextual_config.py +145 -0
  561. ogx_client/models/vector_store_chunking_strategy_static.py +144 -0
  562. ogx_client/models/vector_store_chunking_strategy_static_config.py +122 -0
  563. ogx_client/models/vector_store_content.py +162 -0
  564. ogx_client/models/vector_store_create_request.py +167 -0
  565. ogx_client/models/vector_store_delete_response.py +133 -0
  566. ogx_client/models/vector_store_expiration_after.py +129 -0
  567. ogx_client/models/vector_store_file_batch_file_entry.py +164 -0
  568. ogx_client/models/vector_store_file_batch_object.py +159 -0
  569. ogx_client/models/vector_store_file_content_response.py +151 -0
  570. ogx_client/models/vector_store_file_counts.py +127 -0
  571. ogx_client/models/vector_store_file_delete_response.py +133 -0
  572. ogx_client/models/vector_store_file_last_error.py +128 -0
  573. ogx_client/models/vector_store_file_object.py +206 -0
  574. ogx_client/models/vector_store_file_status.py +45 -0
  575. ogx_client/models/vector_store_files_list_in_batch_response.py +148 -0
  576. ogx_client/models/vector_store_list_files_response.py +148 -0
  577. ogx_client/models/vector_store_list_response.py +148 -0
  578. ogx_client/models/vector_store_modify_request.py +151 -0
  579. ogx_client/models/vector_store_object.py +202 -0
  580. ogx_client/models/vector_store_search_request.py +151 -0
  581. ogx_client/models/vector_store_search_response.py +161 -0
  582. ogx_client/models/vector_store_search_response_page.py +153 -0
  583. ogx_client/models/vector_store_status.py +44 -0
  584. ogx_client/models/version_info.py +119 -0
  585. ogx_client/ogx_client.py +309 -0
  586. ogx_client/py.typed +0 -0
  587. ogx_client/rest.py +255 -0
  588. ogx_client/stream.py +183 -0
  589. ogx_open_client/__init__.py +1167 -0
  590. ogx_open_client/_exceptions.py +114 -0
  591. ogx_open_client/_types.py +312 -0
  592. ogx_open_client/_version.py +8 -0
  593. ogx_open_client/api/__init__.py +33 -0
  594. ogx_open_client/api/admin_api.py +1411 -0
  595. ogx_open_client/api/alpha_api.py +354 -0
  596. ogx_open_client/api/batches_api.py +1247 -0
  597. ogx_open_client/api/chat_api.py +352 -0
  598. ogx_open_client/api/chat_completions_api.py +1028 -0
  599. ogx_open_client/api/completions_api.py +440 -0
  600. ogx_open_client/api/connectors_api.py +1235 -0
  601. ogx_open_client/api/conversations_api.py +1288 -0
  602. ogx_open_client/api/embeddings_api.py +429 -0
  603. ogx_open_client/api/file_batches_api.py +1370 -0
  604. ogx_open_client/api/file_processors_api.py +442 -0
  605. ogx_open_client/api/files_api.py +1539 -0
  606. ogx_open_client/api/inference_api.py +429 -0
  607. ogx_open_client/api/input_items_api.py +472 -0
  608. ogx_open_client/api/inspect_api.py +617 -0
  609. ogx_open_client/api/interactions_api.py +430 -0
  610. ogx_open_client/api/items_api.py +1359 -0
  611. ogx_open_client/api/messages_api.py +2466 -0
  612. ogx_open_client/api/models_api.py +451 -0
  613. ogx_open_client/api/openai_api.py +481 -0
  614. ogx_open_client/api/prompts_api.py +1883 -0
  615. ogx_open_client/api/providers_api.py +636 -0
  616. ogx_open_client/api/responses_api.py +1876 -0
  617. ogx_open_client/api/routes_api.py +389 -0
  618. ogx_open_client/api/tools_api.py +389 -0
  619. ogx_open_client/api/vector_io_api.py +740 -0
  620. ogx_open_client/api/vector_stores_api.py +1936 -0
  621. ogx_open_client/api/vector_stores_files_api.py +2011 -0
  622. ogx_open_client/api/versions_api.py +386 -0
  623. ogx_open_client/api_client.py +833 -0
  624. ogx_open_client/api_response.py +21 -0
  625. ogx_open_client/async_api_client.py +203 -0
  626. ogx_open_client/async_api_response.py +134 -0
  627. ogx_open_client/async_stream.py +161 -0
  628. ogx_open_client/configuration.py +585 -0
  629. ogx_open_client/exceptions.py +253 -0
  630. ogx_open_client/lib/__init__.py +17 -0
  631. ogx_open_client/lib/_utils.py +26 -0
  632. ogx_open_client/lib/agents/__init__.py +5 -0
  633. ogx_open_client/lib/agents/agent.py +540 -0
  634. ogx_open_client/lib/agents/client_tool.py +258 -0
  635. ogx_open_client/lib/agents/event_logger.py +134 -0
  636. ogx_open_client/lib/agents/event_synthesizer.py +448 -0
  637. ogx_open_client/lib/agents/react/__init__.py +5 -0
  638. ogx_open_client/lib/agents/react/agent.py +94 -0
  639. ogx_open_client/lib/agents/react/prompts.py +151 -0
  640. ogx_open_client/lib/agents/react/tool_parser.py +59 -0
  641. ogx_open_client/lib/agents/tool_parser.py +42 -0
  642. ogx_open_client/lib/agents/turn_events.py +268 -0
  643. ogx_open_client/lib/agents/types.py +63 -0
  644. ogx_open_client/lib/cli/__init__.py +12 -0
  645. ogx_open_client/lib/cli/common/__init__.py +5 -0
  646. ogx_open_client/lib/cli/common/utils.py +54 -0
  647. ogx_open_client/lib/cli/configure.py +68 -0
  648. ogx_open_client/lib/cli/constants.py +14 -0
  649. ogx_open_client/lib/cli/datasets/__init__.py +9 -0
  650. ogx_open_client/lib/cli/datasets/datasets.py +22 -0
  651. ogx_open_client/lib/cli/datasets/list.py +32 -0
  652. ogx_open_client/lib/cli/datasets/register.py +78 -0
  653. ogx_open_client/lib/cli/datasets/unregister.py +20 -0
  654. ogx_open_client/lib/cli/eval/__init__.py +9 -0
  655. ogx_open_client/lib/cli/eval/eval.py +22 -0
  656. ogx_open_client/lib/cli/eval/run_benchmark.py +193 -0
  657. ogx_open_client/lib/cli/eval/run_scoring.py +116 -0
  658. ogx_open_client/lib/cli/eval/utils.py +59 -0
  659. ogx_open_client/lib/cli/eval_tasks/__init__.py +9 -0
  660. ogx_open_client/lib/cli/eval_tasks/eval_tasks.py +65 -0
  661. ogx_open_client/lib/cli/eval_tasks/list.py +35 -0
  662. ogx_open_client/lib/cli/inference/__init__.py +9 -0
  663. ogx_open_client/lib/cli/inference/inference.py +88 -0
  664. ogx_open_client/lib/cli/inspect/__init__.py +9 -0
  665. ogx_open_client/lib/cli/inspect/inspect.py +19 -0
  666. ogx_open_client/lib/cli/inspect/version.py +22 -0
  667. ogx_open_client/lib/cli/models/__init__.py +9 -0
  668. ogx_open_client/lib/cli/models/models.py +149 -0
  669. ogx_open_client/lib/cli/ogx_client.py +111 -0
  670. ogx_open_client/lib/cli/post_training/__init__.py +9 -0
  671. ogx_open_client/lib/cli/post_training/post_training.py +114 -0
  672. ogx_open_client/lib/cli/providers/__init__.py +9 -0
  673. ogx_open_client/lib/cli/providers/inspect.py +33 -0
  674. ogx_open_client/lib/cli/providers/list.py +32 -0
  675. ogx_open_client/lib/cli/providers/providers.py +21 -0
  676. ogx_open_client/lib/cli/scoring_functions/__init__.py +9 -0
  677. ogx_open_client/lib/cli/scoring_functions/list.py +38 -0
  678. ogx_open_client/lib/cli/scoring_functions/scoring_functions.py +62 -0
  679. ogx_open_client/lib/cli/toolgroups/__init__.py +9 -0
  680. ogx_open_client/lib/cli/toolgroups/toolgroups.py +129 -0
  681. ogx_open_client/lib/cli/vector_stores/__init__.py +9 -0
  682. ogx_open_client/lib/cli/vector_stores/vector_stores.py +138 -0
  683. ogx_open_client/lib/inference/__init__.py +5 -0
  684. ogx_open_client/lib/inference/event_logger.py +58 -0
  685. ogx_open_client/lib/inference/utils.py +21 -0
  686. ogx_open_client/lib/stream_printer.py +30 -0
  687. ogx_open_client/lib/tools/__init__.py +9 -0
  688. ogx_open_client/lib/tools/mcp_oauth.py +303 -0
  689. ogx_open_client/models/__init__.py +521 -0
  690. ogx_open_client/models/add_items_request.py +148 -0
  691. ogx_open_client/models/allowed_tools_config.py +145 -0
  692. ogx_open_client/models/allowed_tools_filter.py +141 -0
  693. ogx_open_client/models/anthropic_base64_image_source.py +140 -0
  694. ogx_open_client/models/anthropic_base64_image_source_anthropic_url_image_source.py +396 -0
  695. ogx_open_client/models/anthropic_bash_tool.py +161 -0
  696. ogx_open_client/models/anthropic_cache_control.py +129 -0
  697. ogx_open_client/models/anthropic_count_tokens_request.py +170 -0
  698. ogx_open_client/models/anthropic_count_tokens_response.py +119 -0
  699. ogx_open_client/models/anthropic_create_message_request.py +217 -0
  700. ogx_open_client/models/anthropic_custom_tool_def.py +160 -0
  701. ogx_open_client/models/anthropic_custom_tool_def4_variants.py +510 -0
  702. ogx_open_client/models/anthropic_image_block.py +164 -0
  703. ogx_open_client/models/anthropic_list_models_response.py +163 -0
  704. ogx_open_client/models/anthropic_message.py +141 -0
  705. ogx_open_client/models/anthropic_message_response.py +187 -0
  706. ogx_open_client/models/anthropic_model_info.py +149 -0
  707. ogx_open_client/models/anthropic_redacted_thinking_block.py +131 -0
  708. ogx_open_client/models/anthropic_text_block.py +151 -0
  709. ogx_open_client/models/anthropic_text_block5_variants.py +549 -0
  710. ogx_open_client/models/anthropic_text_block5_variants1.py +549 -0
  711. ogx_open_client/models/anthropic_text_block6_variants.py +600 -0
  712. ogx_open_client/models/anthropic_text_block6_variants1.py +600 -0
  713. ogx_open_client/models/anthropic_text_block_anthropic_image_block.py +203 -0
  714. ogx_open_client/models/anthropic_text_editor_tool.py +155 -0
  715. ogx_open_client/models/anthropic_thinking_block.py +158 -0
  716. ogx_open_client/models/anthropic_thinking_config.py +137 -0
  717. ogx_open_client/models/anthropic_tool_def.py +128 -0
  718. ogx_open_client/models/anthropic_tool_result_block_input.py +173 -0
  719. ogx_open_client/models/anthropic_tool_result_block_output.py +173 -0
  720. ogx_open_client/models/anthropic_tool_use_block.py +155 -0
  721. ogx_open_client/models/anthropic_url_image_source.py +131 -0
  722. ogx_open_client/models/anthropic_usage.py +135 -0
  723. ogx_open_client/models/anthropic_web_search_tool.py +202 -0
  724. ogx_open_client/models/api.py +59 -0
  725. ogx_open_client/models/approval_filter.py +148 -0
  726. ogx_open_client/models/array_type.py +129 -0
  727. ogx_open_client/models/batch.py +302 -0
  728. ogx_open_client/models/batch_error.py +158 -0
  729. ogx_open_client/models/batch_request_counts.py +136 -0
  730. ogx_open_client/models/batch_usage.py +166 -0
  731. ogx_open_client/models/bf16_quantization_config.py +129 -0
  732. ogx_open_client/models/boolean_type.py +129 -0
  733. ogx_open_client/models/cancel_batch_request.py +119 -0
  734. ogx_open_client/models/chat_completion_input_type.py +129 -0
  735. ogx_open_client/models/chat_completion_message.py +216 -0
  736. ogx_open_client/models/chat_completion_message_custom_tool_call.py +143 -0
  737. ogx_open_client/models/chat_completion_message_custom_tool_call_custom.py +121 -0
  738. ogx_open_client/models/chat_completion_message_function_call.py +121 -0
  739. ogx_open_client/models/chat_completion_message_list.py +165 -0
  740. ogx_open_client/models/chat_completion_message_tool_call.py +143 -0
  741. ogx_open_client/models/chat_completion_message_tool_call_chat_completion_message_custom_tool_call.py +203 -0
  742. ogx_open_client/models/chat_completion_message_tool_call_chat_completion_message_custom_tool_call1.py +206 -0
  743. ogx_open_client/models/chat_completion_message_tool_call_function.py +121 -0
  744. ogx_open_client/models/chunk.py +151 -0
  745. ogx_open_client/models/chunk_for_deletion.py +121 -0
  746. ogx_open_client/models/chunk_metadata.py +180 -0
  747. ogx_open_client/models/compact_response_request.py +239 -0
  748. ogx_open_client/models/comparison_filter.py +135 -0
  749. ogx_open_client/models/completion_input_type.py +129 -0
  750. ogx_open_client/models/compound_filter.py +128 -0
  751. ogx_open_client/models/connector.py +152 -0
  752. ogx_open_client/models/connector_input.py +131 -0
  753. ogx_open_client/models/connector_type.py +42 -0
  754. ogx_open_client/models/context_management.py +133 -0
  755. ogx_open_client/models/conversation.py +140 -0
  756. ogx_open_client/models/conversation_deleted_resource.py +133 -0
  757. ogx_open_client/models/conversation_item.py +855 -0
  758. ogx_open_client/models/conversation_item_create_request.py +148 -0
  759. ogx_open_client/models/conversation_item_deleted_resource.py +133 -0
  760. ogx_open_client/models/conversation_item_include.py +48 -0
  761. ogx_open_client/models/conversation_item_list.py +158 -0
  762. ogx_open_client/models/conversation_message.py +149 -0
  763. ogx_open_client/models/create_batch_request.py +144 -0
  764. ogx_open_client/models/create_conversation_request.py +159 -0
  765. ogx_open_client/models/create_message_batch_request.py +148 -0
  766. ogx_open_client/models/create_prompt_request.py +126 -0
  767. ogx_open_client/models/create_response_request.py +402 -0
  768. ogx_open_client/models/custom_tool_config.py +119 -0
  769. ogx_open_client/models/delete_chunks_request.py +132 -0
  770. ogx_open_client/models/delete_conversation_request.py +119 -0
  771. ogx_open_client/models/delete_file_request.py +119 -0
  772. ogx_open_client/models/delete_item_request.py +121 -0
  773. ogx_open_client/models/delete_prompt_request.py +119 -0
  774. ogx_open_client/models/dialog_type.py +129 -0
  775. ogx_open_client/models/embedded_chunk.py +157 -0
  776. ogx_open_client/models/embedded_chunk_input.py +157 -0
  777. ogx_open_client/models/embedded_chunk_output.py +157 -0
  778. ogx_open_client/models/embeddings_response.py +136 -0
  779. ogx_open_client/models/error.py +143 -0
  780. ogx_open_client/models/error_detail.py +313 -0
  781. ogx_open_client/models/errors.py +172 -0
  782. ogx_open_client/models/expires_after.py +129 -0
  783. ogx_open_client/models/fp8_quantization_config.py +129 -0
  784. ogx_open_client/models/function_tool_config.py +119 -0
  785. ogx_open_client/models/get_chat_completion_request.py +119 -0
  786. ogx_open_client/models/get_connector_request.py +119 -0
  787. ogx_open_client/models/get_connector_tool_request.py +121 -0
  788. ogx_open_client/models/get_conversation_request.py +119 -0
  789. ogx_open_client/models/get_model_request.py +119 -0
  790. ogx_open_client/models/get_model_v1_models_model_id_get200_response.py +414 -0
  791. ogx_open_client/models/get_prompt_request.py +126 -0
  792. ogx_open_client/models/google_create_interaction_request.py +213 -0
  793. ogx_open_client/models/google_function_call_content.py +153 -0
  794. ogx_open_client/models/google_function_call_output.py +153 -0
  795. ogx_open_client/models/google_function_declaration.py +146 -0
  796. ogx_open_client/models/google_function_response_content.py +160 -0
  797. ogx_open_client/models/google_generation_config.py +146 -0
  798. ogx_open_client/models/google_input_turn.py +141 -0
  799. ogx_open_client/models/google_interaction_response.py +199 -0
  800. ogx_open_client/models/google_list_models_response.py +147 -0
  801. ogx_open_client/models/google_model_info.py +123 -0
  802. ogx_open_client/models/google_text_content.py +131 -0
  803. ogx_open_client/models/google_text_content_google_function_call_content_google_function_response_content.py +218 -0
  804. ogx_open_client/models/google_text_output.py +131 -0
  805. ogx_open_client/models/google_text_output_google_function_call_output_google_thought_output.py +447 -0
  806. ogx_open_client/models/google_thought_output.py +149 -0
  807. ogx_open_client/models/google_tool.py +145 -0
  808. ogx_open_client/models/google_usage.py +136 -0
  809. ogx_open_client/models/grammar_response_format.py +131 -0
  810. ogx_open_client/models/greedy_sampling_strategy.py +129 -0
  811. ogx_open_client/models/greedy_sampling_strategy_top_p_sampling_strategy_top_k_sampling_strategy.py +447 -0
  812. ogx_open_client/models/health_info.py +120 -0
  813. ogx_open_client/models/health_status.py +44 -0
  814. ogx_open_client/models/image_content_item.py +144 -0
  815. ogx_open_client/models/image_content_item_input.py +144 -0
  816. ogx_open_client/models/image_content_item_input_text_content_item.py +396 -0
  817. ogx_open_client/models/image_content_item_output.py +144 -0
  818. ogx_open_client/models/image_content_item_output_text_content_item.py +396 -0
  819. ogx_open_client/models/image_content_item_text_content_item.py +396 -0
  820. ogx_open_client/models/image_delta.py +131 -0
  821. ogx_open_client/models/inline_provider_spec.py +183 -0
  822. ogx_open_client/models/input_tokens_details.py +132 -0
  823. ogx_open_client/models/insert_chunks_request.py +139 -0
  824. ogx_open_client/models/inspect_provider_request.py +119 -0
  825. ogx_open_client/models/int4_quantization_config.py +136 -0
  826. ogx_open_client/models/integer_number.py +207 -0
  827. ogx_open_client/models/interleaved_content.py +280 -0
  828. ogx_open_client/models/interleaved_content_item.py +396 -0
  829. ogx_open_client/models/job.py +122 -0
  830. ogx_open_client/models/job_status.py +46 -0
  831. ogx_open_client/models/json_schema_response_format.py +131 -0
  832. ogx_open_client/models/json_type.py +129 -0
  833. ogx_open_client/models/list_batches_request.py +126 -0
  834. ogx_open_client/models/list_batches_response.py +158 -0
  835. ogx_open_client/models/list_chat_completion_messages_request.py +142 -0
  836. ogx_open_client/models/list_chat_completions_request.py +147 -0
  837. ogx_open_client/models/list_connector_tools_request.py +119 -0
  838. ogx_open_client/models/list_connectors_response.py +147 -0
  839. ogx_open_client/models/list_files_request.py +147 -0
  840. ogx_open_client/models/list_items_request.py +158 -0
  841. ogx_open_client/models/list_message_batches_response.py +163 -0
  842. ogx_open_client/models/list_models_response.py +147 -0
  843. ogx_open_client/models/list_models_v1_models_get200_response.py +414 -0
  844. ogx_open_client/models/list_number_string.py +265 -0
  845. ogx_open_client/models/list_open_ai_chat_completion_response.py +165 -0
  846. ogx_open_client/models/list_open_ai_file_response.py +165 -0
  847. ogx_open_client/models/list_open_ai_response_input_item.py +159 -0
  848. ogx_open_client/models/list_open_ai_response_object.py +165 -0
  849. ogx_open_client/models/list_prompt_versions_request.py +119 -0
  850. ogx_open_client/models/list_prompts_response.py +147 -0
  851. ogx_open_client/models/list_providers_response.py +147 -0
  852. ogx_open_client/models/list_routes_request.py +134 -0
  853. ogx_open_client/models/list_routes_response.py +147 -0
  854. ogx_open_client/models/list_string_allowed_tools_filter.py +269 -0
  855. ogx_open_client/models/list_tool_defs_response.py +147 -0
  856. ogx_open_client/models/list_tool_groups_response.py +147 -0
  857. ogx_open_client/models/list_tools_request.py +124 -0
  858. ogx_open_client/models/list_tools_response.py +147 -0
  859. ogx_open_client/models/mcp_list_tools_tool.py +128 -0
  860. ogx_open_client/models/message_batch.py +187 -0
  861. ogx_open_client/models/message_batch_request_counts.py +127 -0
  862. ogx_open_client/models/message_batch_request_params.py +142 -0
  863. ogx_open_client/models/metric_in_response.py +141 -0
  864. ogx_open_client/models/model.py +171 -0
  865. ogx_open_client/models/model_type.py +44 -0
  866. ogx_open_client/models/number_type.py +129 -0
  867. ogx_open_client/models/object_type.py +129 -0
  868. ogx_open_client/models/open_ai_assistant_message_param.py +187 -0
  869. ogx_open_client/models/open_ai_assistant_message_param_input.py +187 -0
  870. ogx_open_client/models/open_ai_assistant_message_param_output.py +187 -0
  871. ogx_open_client/models/open_ai_attach_file_request.py +164 -0
  872. ogx_open_client/models/open_ai_chat_completion.py +173 -0
  873. ogx_open_client/models/open_ai_chat_completion_chunk.py +173 -0
  874. ogx_open_client/models/open_ai_chat_completion_content_part_image_param.py +144 -0
  875. ogx_open_client/models/open_ai_chat_completion_content_part_param.py +447 -0
  876. ogx_open_client/models/open_ai_chat_completion_content_part_text_param.py +131 -0
  877. ogx_open_client/models/open_ai_chat_completion_content_part_text_param_open_ai_chat_completion_content_part_image_param.py +203 -0
  878. ogx_open_client/models/open_ai_chat_completion_content_part_text_param_open_ai_chat_completion_content_part_image_param_open_ai_file.py +447 -0
  879. ogx_open_client/models/open_ai_chat_completion_custom_tool_call_function.py +121 -0
  880. ogx_open_client/models/open_ai_chat_completion_request_with_extra_body.py +377 -0
  881. ogx_open_client/models/open_ai_chat_completion_response_message.py +180 -0
  882. ogx_open_client/models/open_ai_chat_completion_tool_call_function.py +121 -0
  883. ogx_open_client/models/open_ai_chat_completion_tool_choice.py +447 -0
  884. ogx_open_client/models/open_ai_chat_completion_tool_choice_allowed_tools.py +144 -0
  885. ogx_open_client/models/open_ai_chat_completion_tool_choice_custom_tool.py +144 -0
  886. ogx_open_client/models/open_ai_chat_completion_tool_choice_function_tool.py +144 -0
  887. ogx_open_client/models/open_ai_chat_completion_usage.py +154 -0
  888. ogx_open_client/models/open_ai_chat_completion_usage_completion_tokens_details.py +120 -0
  889. ogx_open_client/models/open_ai_chat_completion_usage_prompt_tokens_details.py +120 -0
  890. ogx_open_client/models/open_ai_choice.py +167 -0
  891. ogx_open_client/models/open_ai_choice_delta.py +163 -0
  892. ogx_open_client/models/open_ai_choice_logprobs.py +169 -0
  893. ogx_open_client/models/open_ai_chunk_choice.py +162 -0
  894. ogx_open_client/models/open_ai_chunk_choice_logprobs.py +169 -0
  895. ogx_open_client/models/open_ai_compacted_response.py +161 -0
  896. ogx_open_client/models/open_ai_completion.py +149 -0
  897. ogx_open_client/models/open_ai_completion_choice.py +154 -0
  898. ogx_open_client/models/open_ai_completion_logprobs.py +162 -0
  899. ogx_open_client/models/open_ai_completion_request_with_extra_body.py +273 -0
  900. ogx_open_client/models/open_ai_completion_with_input_messages.py +186 -0
  901. ogx_open_client/models/open_ai_create_vector_store_file_batch_request_with_extra_body.py +212 -0
  902. ogx_open_client/models/open_ai_create_vector_store_request_with_extra_body.py +198 -0
  903. ogx_open_client/models/open_ai_delete_response_object.py +133 -0
  904. ogx_open_client/models/open_ai_developer_message_param.py +151 -0
  905. ogx_open_client/models/open_ai_embedding_data.py +147 -0
  906. ogx_open_client/models/open_ai_embedding_usage.py +121 -0
  907. ogx_open_client/models/open_ai_embeddings_request_with_extra_body.py +164 -0
  908. ogx_open_client/models/open_ai_embeddings_response.py +160 -0
  909. ogx_open_client/models/open_ai_file.py +144 -0
  910. ogx_open_client/models/open_ai_file_delete_response.py +133 -0
  911. ogx_open_client/models/open_ai_file_file.py +138 -0
  912. ogx_open_client/models/open_ai_file_object.py +153 -0
  913. ogx_open_client/models/open_ai_file_purpose.py +50 -0
  914. ogx_open_client/models/open_ai_file_upload_purpose.py +47 -0
  915. ogx_open_client/models/open_ai_finish_reason.py +46 -0
  916. ogx_open_client/models/open_ai_image_url.py +136 -0
  917. ogx_open_client/models/open_ai_list_models_response.py +142 -0
  918. ogx_open_client/models/open_ai_message_param.py +549 -0
  919. ogx_open_client/models/open_ai_model.py +142 -0
  920. ogx_open_client/models/open_ai_response_annotation_citation.py +137 -0
  921. ogx_open_client/models/open_ai_response_annotation_container_file_citation.py +139 -0
  922. ogx_open_client/models/open_ai_response_annotation_file_citation.py +135 -0
  923. ogx_open_client/models/open_ai_response_annotation_file_citation4_variants.py +498 -0
  924. ogx_open_client/models/open_ai_response_annotation_file_path.py +133 -0
  925. ogx_open_client/models/open_ai_response_annotations.py +498 -0
  926. ogx_open_client/models/open_ai_response_compaction.py +138 -0
  927. ogx_open_client/models/open_ai_response_content_part.py +447 -0
  928. ogx_open_client/models/open_ai_response_content_part_output_text.py +162 -0
  929. ogx_open_client/models/open_ai_response_content_part_output_text_open_ai_response_content_part_refusal_open_ai_response_content_part_reasoning_text.py +447 -0
  930. ogx_open_client/models/open_ai_response_content_part_reasoning_summary.py +131 -0
  931. ogx_open_client/models/open_ai_response_content_part_reasoning_text.py +131 -0
  932. ogx_open_client/models/open_ai_response_content_part_refusal.py +131 -0
  933. ogx_open_client/models/open_ai_response_error.py +121 -0
  934. ogx_open_client/models/open_ai_response_format_json_object.py +129 -0
  935. ogx_open_client/models/open_ai_response_format_json_schema.py +144 -0
  936. ogx_open_client/models/open_ai_response_format_param.py +447 -0
  937. ogx_open_client/models/open_ai_response_format_text.py +129 -0
  938. ogx_open_client/models/open_ai_response_format_text_open_ai_response_format_json_schema_open_ai_response_format_json_object.py +453 -0
  939. ogx_open_client/models/open_ai_response_incomplete_details.py +119 -0
  940. ogx_open_client/models/open_ai_response_input.py +251 -0
  941. ogx_open_client/models/open_ai_response_input_function_tool_call_output.py +160 -0
  942. ogx_open_client/models/open_ai_response_input_function_tool_call_output_open_ai_response_mcp_approval_response_open_ai_response_compaction.py +233 -0
  943. ogx_open_client/models/open_ai_response_input_message_content.py +447 -0
  944. ogx_open_client/models/open_ai_response_input_message_content_file.py +157 -0
  945. ogx_open_client/models/open_ai_response_input_message_content_image.py +155 -0
  946. ogx_open_client/models/open_ai_response_input_message_content_text.py +131 -0
  947. ogx_open_client/models/open_ai_response_input_message_content_text_open_ai_response_input_message_content_image_open_ai_response_input_message_content_file.py +447 -0
  948. ogx_open_client/models/open_ai_response_input_tool.py +516 -0
  949. ogx_open_client/models/open_ai_response_input_tool_choice.py +203 -0
  950. ogx_open_client/models/open_ai_response_input_tool_choice_allowed_tools.py +143 -0
  951. ogx_open_client/models/open_ai_response_input_tool_choice_allowed_tools6_variants.py +618 -0
  952. ogx_open_client/models/open_ai_response_input_tool_choice_custom_tool.py +131 -0
  953. ogx_open_client/models/open_ai_response_input_tool_choice_file_search.py +129 -0
  954. ogx_open_client/models/open_ai_response_input_tool_choice_function_tool.py +131 -0
  955. ogx_open_client/models/open_ai_response_input_tool_choice_mcp_tool.py +138 -0
  956. ogx_open_client/models/open_ai_response_input_tool_choice_mode.py +44 -0
  957. ogx_open_client/models/open_ai_response_input_tool_choice_mode1.py +209 -0
  958. ogx_open_client/models/open_ai_response_input_tool_choice_mode2.py +209 -0
  959. ogx_open_client/models/open_ai_response_input_tool_choice_web_search.py +129 -0
  960. ogx_open_client/models/open_ai_response_input_tool_file_search.py +166 -0
  961. ogx_open_client/models/open_ai_response_input_tool_function.py +152 -0
  962. ogx_open_client/models/open_ai_response_input_tool_mcp.py +194 -0
  963. ogx_open_client/models/open_ai_response_input_tool_web_search.py +186 -0
  964. ogx_open_client/models/open_ai_response_input_tool_web_search4_variants.py +516 -0
  965. ogx_open_client/models/open_ai_response_input_tool_web_search4_variants1.py +516 -0
  966. ogx_open_client/models/open_ai_response_mcp_approval_request.py +137 -0
  967. ogx_open_client/models/open_ai_response_mcp_approval_response.py +147 -0
  968. ogx_open_client/models/open_ai_response_message.py +167 -0
  969. ogx_open_client/models/open_ai_response_message11_variants.py +855 -0
  970. ogx_open_client/models/open_ai_response_message8_variants.py +702 -0
  971. ogx_open_client/models/open_ai_response_message_input.py +167 -0
  972. ogx_open_client/models/open_ai_response_message_input11_variants.py +855 -0
  973. ogx_open_client/models/open_ai_response_message_input8_variants.py +702 -0
  974. ogx_open_client/models/open_ai_response_message_output.py +167 -0
  975. ogx_open_client/models/open_ai_response_message_output11_variants.py +855 -0
  976. ogx_open_client/models/open_ai_response_message_output8_variants.py +702 -0
  977. ogx_open_client/models/open_ai_response_message_output_union.py +233 -0
  978. ogx_open_client/models/open_ai_response_object.py +407 -0
  979. ogx_open_client/models/open_ai_response_object_stream.py +2181 -0
  980. ogx_open_client/models/open_ai_response_object_stream_error.py +147 -0
  981. ogx_open_client/models/open_ai_response_object_stream_response_completed.py +146 -0
  982. ogx_open_client/models/open_ai_response_object_stream_response_content_part_added.py +154 -0
  983. ogx_open_client/models/open_ai_response_object_stream_response_content_part_done.py +154 -0
  984. ogx_open_client/models/open_ai_response_object_stream_response_created.py +146 -0
  985. ogx_open_client/models/open_ai_response_object_stream_response_failed.py +146 -0
  986. ogx_open_client/models/open_ai_response_object_stream_response_file_search_call_completed.py +135 -0
  987. ogx_open_client/models/open_ai_response_object_stream_response_file_search_call_in_progress.py +135 -0
  988. ogx_open_client/models/open_ai_response_object_stream_response_file_search_call_searching.py +135 -0
  989. ogx_open_client/models/open_ai_response_object_stream_response_function_call_arguments_delta.py +137 -0
  990. ogx_open_client/models/open_ai_response_object_stream_response_function_call_arguments_done.py +137 -0
  991. ogx_open_client/models/open_ai_response_object_stream_response_in_progress.py +146 -0
  992. ogx_open_client/models/open_ai_response_object_stream_response_incomplete.py +146 -0
  993. ogx_open_client/models/open_ai_response_object_stream_response_mcp_call_arguments_delta.py +137 -0
  994. ogx_open_client/models/open_ai_response_object_stream_response_mcp_call_arguments_done.py +137 -0
  995. ogx_open_client/models/open_ai_response_object_stream_response_mcp_call_completed.py +131 -0
  996. ogx_open_client/models/open_ai_response_object_stream_response_mcp_call_failed.py +131 -0
  997. ogx_open_client/models/open_ai_response_object_stream_response_mcp_call_in_progress.py +135 -0
  998. ogx_open_client/models/open_ai_response_object_stream_response_mcp_list_tools_completed.py +131 -0
  999. ogx_open_client/models/open_ai_response_object_stream_response_mcp_list_tools_failed.py +131 -0
  1000. ogx_open_client/models/open_ai_response_object_stream_response_mcp_list_tools_in_progress.py +131 -0
  1001. ogx_open_client/models/open_ai_response_object_stream_response_output_item_added.py +150 -0
  1002. ogx_open_client/models/open_ai_response_object_stream_response_output_item_done.py +150 -0
  1003. ogx_open_client/models/open_ai_response_object_stream_response_output_text_annotation_added.py +154 -0
  1004. ogx_open_client/models/open_ai_response_object_stream_response_output_text_delta.py +157 -0
  1005. ogx_open_client/models/open_ai_response_object_stream_response_output_text_done.py +139 -0
  1006. ogx_open_client/models/open_ai_response_object_stream_response_reasoning_summary_part_added.py +152 -0
  1007. ogx_open_client/models/open_ai_response_object_stream_response_reasoning_summary_part_done.py +152 -0
  1008. ogx_open_client/models/open_ai_response_object_stream_response_reasoning_summary_text_delta.py +139 -0
  1009. ogx_open_client/models/open_ai_response_object_stream_response_reasoning_summary_text_done.py +139 -0
  1010. ogx_open_client/models/open_ai_response_object_stream_response_reasoning_text_delta.py +139 -0
  1011. ogx_open_client/models/open_ai_response_object_stream_response_reasoning_text_done.py +139 -0
  1012. ogx_open_client/models/open_ai_response_object_stream_response_refusal_delta.py +139 -0
  1013. ogx_open_client/models/open_ai_response_object_stream_response_refusal_done.py +139 -0
  1014. ogx_open_client/models/open_ai_response_object_stream_response_web_search_call_completed.py +135 -0
  1015. ogx_open_client/models/open_ai_response_object_stream_response_web_search_call_in_progress.py +135 -0
  1016. ogx_open_client/models/open_ai_response_object_stream_response_web_search_call_searching.py +135 -0
  1017. ogx_open_client/models/open_ai_response_object_with_input.py +425 -0
  1018. ogx_open_client/models/open_ai_response_output.py +702 -0
  1019. ogx_open_client/models/open_ai_response_output_item.py +702 -0
  1020. ogx_open_client/models/open_ai_response_output_message_content.py +396 -0
  1021. ogx_open_client/models/open_ai_response_output_message_content_output_text.py +162 -0
  1022. ogx_open_client/models/open_ai_response_output_message_content_output_text_input.py +162 -0
  1023. ogx_open_client/models/open_ai_response_output_message_content_output_text_input_open_ai_response_content_part_refusal.py +396 -0
  1024. ogx_open_client/models/open_ai_response_output_message_content_output_text_open_ai_response_content_part_refusal.py +396 -0
  1025. ogx_open_client/models/open_ai_response_output_message_content_output_text_output.py +162 -0
  1026. ogx_open_client/models/open_ai_response_output_message_content_output_text_output_open_ai_response_content_part_refusal.py +396 -0
  1027. ogx_open_client/models/open_ai_response_output_message_file_search_tool_call.py +153 -0
  1028. ogx_open_client/models/open_ai_response_output_message_file_search_tool_call_results.py +127 -0
  1029. ogx_open_client/models/open_ai_response_output_message_function_tool_call.py +149 -0
  1030. ogx_open_client/models/open_ai_response_output_message_mcp_call.py +151 -0
  1031. ogx_open_client/models/open_ai_response_output_message_mcp_list_tools.py +146 -0
  1032. ogx_open_client/models/open_ai_response_output_message_reasoning_content.py +131 -0
  1033. ogx_open_client/models/open_ai_response_output_message_reasoning_item.py +179 -0
  1034. ogx_open_client/models/open_ai_response_output_message_reasoning_summary.py +131 -0
  1035. ogx_open_client/models/open_ai_response_output_message_web_search_tool_call.py +153 -0
  1036. ogx_open_client/models/open_ai_response_output_message_web_search_tool_call_input.py +153 -0
  1037. ogx_open_client/models/open_ai_response_output_message_web_search_tool_call_output.py +153 -0
  1038. ogx_open_client/models/open_ai_response_prompt.py +151 -0
  1039. ogx_open_client/models/open_ai_response_reasoning.py +168 -0
  1040. ogx_open_client/models/open_ai_response_text.py +154 -0
  1041. ogx_open_client/models/open_ai_response_text_format.py +157 -0
  1042. ogx_open_client/models/open_ai_response_tool.py +516 -0
  1043. ogx_open_client/models/open_ai_response_tool_mcp.py +151 -0
  1044. ogx_open_client/models/open_ai_response_usage.py +153 -0
  1045. ogx_open_client/models/open_ai_response_usage_input_tokens_details.py +119 -0
  1046. ogx_open_client/models/open_ai_response_usage_output_tokens_details.py +119 -0
  1047. ogx_open_client/models/open_ai_search_vector_store_request.py +171 -0
  1048. ogx_open_client/models/open_ai_system_message_param.py +151 -0
  1049. ogx_open_client/models/open_ai_token_log_prob.py +146 -0
  1050. ogx_open_client/models/open_ai_tool_message_param.py +146 -0
  1051. ogx_open_client/models/open_ai_top_log_prob.py +128 -0
  1052. ogx_open_client/models/open_ai_update_vector_store_file_request.py +119 -0
  1053. ogx_open_client/models/open_ai_update_vector_store_request.py +151 -0
  1054. ogx_open_client/models/open_ai_user_message_param.py +151 -0
  1055. ogx_open_client/models/open_ai_user_message_param_input.py +151 -0
  1056. ogx_open_client/models/open_ai_user_message_param_input5_variants.py +549 -0
  1057. ogx_open_client/models/open_ai_user_message_param_output.py +151 -0
  1058. ogx_open_client/models/open_ai_user_message_param_output5_variants.py +549 -0
  1059. ogx_open_client/models/open_aijson_schema.py +140 -0
  1060. ogx_open_client/models/order.py +43 -0
  1061. ogx_open_client/models/output_tokens_details.py +132 -0
  1062. ogx_open_client/models/paginated_response.py +145 -0
  1063. ogx_open_client/models/param_type.py +753 -0
  1064. ogx_open_client/models/process_file_request.py +151 -0
  1065. ogx_open_client/models/process_file_response.py +149 -0
  1066. ogx_open_client/models/prompt.py +133 -0
  1067. ogx_open_client/models/provider_info.py +127 -0
  1068. ogx_open_client/models/provider_spec.py +169 -0
  1069. ogx_open_client/models/query_chunks_request.py +141 -0
  1070. ogx_open_client/models/query_chunks_response.py +149 -0
  1071. ogx_open_client/models/register_model_request.py +155 -0
  1072. ogx_open_client/models/remote_provider_spec.py +178 -0
  1073. ogx_open_client/models/rerank_data.py +122 -0
  1074. ogx_open_client/models/rerank_request.py +155 -0
  1075. ogx_open_client/models/rerank_response.py +147 -0
  1076. ogx_open_client/models/response_format.py +396 -0
  1077. ogx_open_client/models/response_item_include.py +48 -0
  1078. ogx_open_client/models/response_retrieve_item_v1_conversations_conversation_id_items_item_id_get.py +849 -0
  1079. ogx_open_client/models/response_stream_options.py +119 -0
  1080. ogx_open_client/models/response_truncation.py +43 -0
  1081. ogx_open_client/models/retrieve_batch_request.py +119 -0
  1082. ogx_open_client/models/retrieve_file_content_request.py +119 -0
  1083. ogx_open_client/models/retrieve_file_request.py +119 -0
  1084. ogx_open_client/models/retrieve_item_request.py +121 -0
  1085. ogx_open_client/models/route_info.py +123 -0
  1086. ogx_open_client/models/sampling_params.py +154 -0
  1087. ogx_open_client/models/sampling_strategy.py +447 -0
  1088. ogx_open_client/models/score_request.py +136 -0
  1089. ogx_open_client/models/scoring_result.py +124 -0
  1090. ogx_open_client/models/search_ranking_options.py +160 -0
  1091. ogx_open_client/models/service_tier.py +45 -0
  1092. ogx_open_client/models/set_default_version_body_request.py +119 -0
  1093. ogx_open_client/models/set_default_version_request.py +121 -0
  1094. ogx_open_client/models/string4_variants.py +415 -0
  1095. ogx_open_client/models/string4_variants1.py +416 -0
  1096. ogx_open_client/models/string_approval_filter.py +222 -0
  1097. ogx_open_client/models/string_list_anthropic_text_block.py +272 -0
  1098. ogx_open_client/models/string_list_anthropic_text_block1.py +272 -0
  1099. ogx_open_client/models/string_list_anthropic_text_block_anthropic_image_block.py +266 -0
  1100. ogx_open_client/models/string_list_google_input_turn.py +266 -0
  1101. ogx_open_client/models/string_list_google_text_content_google_function_call_content_google_function_response_content.py +266 -0
  1102. ogx_open_client/models/string_list_image_content_item_input_text_content_item.py +280 -0
  1103. ogx_open_client/models/string_list_image_content_item_input_text_content_item1.py +280 -0
  1104. ogx_open_client/models/string_list_image_content_item_output_text_content_item.py +280 -0
  1105. ogx_open_client/models/string_list_image_content_item_text_content_item.py +286 -0
  1106. ogx_open_client/models/string_list_image_content_item_text_content_item1.py +280 -0
  1107. ogx_open_client/models/string_list_image_content_item_text_content_item2.py +286 -0
  1108. ogx_open_client/models/string_list_image_content_item_text_content_item3.py +280 -0
  1109. ogx_open_client/models/string_list_image_content_item_text_content_item4.py +280 -0
  1110. ogx_open_client/models/string_list_image_content_item_text_content_item5.py +280 -0
  1111. ogx_open_client/models/string_list_open_ai_chat_completion_content_part_text_param.py +272 -0
  1112. ogx_open_client/models/string_list_open_ai_chat_completion_content_part_text_param1.py +266 -0
  1113. ogx_open_client/models/string_list_open_ai_chat_completion_content_part_text_param2.py +266 -0
  1114. ogx_open_client/models/string_list_open_ai_chat_completion_content_part_text_param3.py +266 -0
  1115. ogx_open_client/models/string_list_open_ai_chat_completion_content_part_text_param4.py +272 -0
  1116. ogx_open_client/models/string_list_open_ai_chat_completion_content_part_text_param_open_ai_chat_completion_content_part_image_param_open_ai_file.py +266 -0
  1117. ogx_open_client/models/string_list_open_ai_response_input_message_content_text_open_ai_response_input_message_content_image_open_ai_response_input_message_content_file.py +266 -0
  1118. ogx_open_client/models/string_list_open_ai_response_input_message_content_text_open_ai_response_input_message_content_image_open_ai_response_input_message_content_file_list_open_ai_response_output_message_content_output_text_input_open_ai_response_content_part_refusal.py +342 -0
  1119. ogx_open_client/models/string_list_open_ai_response_input_message_content_text_open_ai_response_input_message_content_image_open_ai_response_input_message_content_file_list_open_ai_response_output_message_content_output_text_open_ai_response_content_part_refusal.py +342 -0
  1120. ogx_open_client/models/string_list_open_ai_response_input_message_content_text_open_ai_response_input_message_content_image_open_ai_response_input_message_content_file_list_open_ai_response_output_message_content_output_text_output_open_ai_response_content_part_refusal.py +342 -0
  1121. ogx_open_client/models/string_list_open_ai_response_message_union_open_ai_response_input_function_tool_call_output.py +272 -0
  1122. ogx_open_client/models/string_list_open_ai_response_message_union_open_ai_response_input_function_tool_call_output1.py +266 -0
  1123. ogx_open_client/models/string_list_string.py +271 -0
  1124. ogx_open_client/models/string_list_string1.py +265 -0
  1125. ogx_open_client/models/string_list_string2.py +265 -0
  1126. ogx_open_client/models/string_number_boolean.py +225 -0
  1127. ogx_open_client/models/string_number_boolean1.py +224 -0
  1128. ogx_open_client/models/string_object.py +271 -0
  1129. ogx_open_client/models/string_object1.py +271 -0
  1130. ogx_open_client/models/string_open_ai_chat_completion_content_part_text_param_open_ai_chat_completion_content_part_image_param.py +220 -0
  1131. ogx_open_client/models/string_open_ai_chat_completion_content_part_text_param_open_ai_chat_completion_content_part_image_param1.py +220 -0
  1132. ogx_open_client/models/string_type.py +129 -0
  1133. ogx_open_client/models/system_message.py +144 -0
  1134. ogx_open_client/models/text_content_item.py +131 -0
  1135. ogx_open_client/models/text_delta.py +131 -0
  1136. ogx_open_client/models/token_log_probs.py +119 -0
  1137. ogx_open_client/models/tool_config.py +119 -0
  1138. ogx_open_client/models/tool_def.py +154 -0
  1139. ogx_open_client/models/tool_group.py +167 -0
  1140. ogx_open_client/models/tool_group_input.py +148 -0
  1141. ogx_open_client/models/tool_invocation_result.py +158 -0
  1142. ogx_open_client/models/tool_response_message.py +146 -0
  1143. ogx_open_client/models/top_k_sampling_strategy.py +132 -0
  1144. ogx_open_client/models/top_p_sampling_strategy.py +134 -0
  1145. ogx_open_client/models/union_type.py +129 -0
  1146. ogx_open_client/models/unregister_model_request.py +119 -0
  1147. ogx_open_client/models/update_conversation_request.py +119 -0
  1148. ogx_open_client/models/update_prompt_body_request.py +130 -0
  1149. ogx_open_client/models/update_prompt_request.py +132 -0
  1150. ogx_open_client/models/upload_file_request.py +140 -0
  1151. ogx_open_client/models/url.py +119 -0
  1152. ogx_open_client/models/urlor_data.py +144 -0
  1153. ogx_open_client/models/user_message.py +164 -0
  1154. ogx_open_client/models/vector_store_chunking_strategy.py +453 -0
  1155. ogx_open_client/models/vector_store_chunking_strategy_auto.py +129 -0
  1156. ogx_open_client/models/vector_store_chunking_strategy_auto_vector_store_chunking_strategy_static_vector_store_chunking_strategy_contextual.py +453 -0
  1157. ogx_open_client/models/vector_store_chunking_strategy_auto_vector_store_chunking_strategy_static_vector_store_chunking_strategy_contextual1.py +447 -0
  1158. ogx_open_client/models/vector_store_chunking_strategy_contextual.py +144 -0
  1159. ogx_open_client/models/vector_store_chunking_strategy_contextual_config.py +145 -0
  1160. ogx_open_client/models/vector_store_chunking_strategy_static.py +144 -0
  1161. ogx_open_client/models/vector_store_chunking_strategy_static_config.py +122 -0
  1162. ogx_open_client/models/vector_store_content.py +162 -0
  1163. ogx_open_client/models/vector_store_create_request.py +167 -0
  1164. ogx_open_client/models/vector_store_delete_response.py +133 -0
  1165. ogx_open_client/models/vector_store_expiration_after.py +129 -0
  1166. ogx_open_client/models/vector_store_file_batch_file_entry.py +164 -0
  1167. ogx_open_client/models/vector_store_file_batch_object.py +159 -0
  1168. ogx_open_client/models/vector_store_file_content_response.py +151 -0
  1169. ogx_open_client/models/vector_store_file_counts.py +127 -0
  1170. ogx_open_client/models/vector_store_file_delete_response.py +133 -0
  1171. ogx_open_client/models/vector_store_file_last_error.py +128 -0
  1172. ogx_open_client/models/vector_store_file_object.py +206 -0
  1173. ogx_open_client/models/vector_store_file_status.py +45 -0
  1174. ogx_open_client/models/vector_store_files_list_in_batch_response.py +148 -0
  1175. ogx_open_client/models/vector_store_list_files_response.py +148 -0
  1176. ogx_open_client/models/vector_store_list_response.py +148 -0
  1177. ogx_open_client/models/vector_store_modify_request.py +151 -0
  1178. ogx_open_client/models/vector_store_object.py +202 -0
  1179. ogx_open_client/models/vector_store_search_request.py +151 -0
  1180. ogx_open_client/models/vector_store_search_response.py +161 -0
  1181. ogx_open_client/models/vector_store_search_response_page.py +153 -0
  1182. ogx_open_client/models/vector_store_status.py +44 -0
  1183. ogx_open_client/models/version_info.py +119 -0
  1184. ogx_open_client/models/web_search_action_find.py +133 -0
  1185. ogx_open_client/models/web_search_action_open_page.py +136 -0
  1186. ogx_open_client/models/web_search_action_search.py +156 -0
  1187. ogx_open_client/models/web_search_action_search_web_search_action_open_page_web_search_action_find.py +224 -0
  1188. ogx_open_client/models/web_search_action_search_web_search_action_open_page_web_search_action_find1.py +224 -0
  1189. ogx_open_client/models/web_search_filters.py +141 -0
  1190. ogx_open_client/models/web_search_source.py +131 -0
  1191. ogx_open_client/models/web_search_user_location.py +157 -0
  1192. ogx_open_client/ogx_client.py +309 -0
  1193. ogx_open_client/py.typed +0 -0
  1194. ogx_open_client/rest.py +255 -0
  1195. ogx_open_client/stream.py +183 -0
  1196. ogx_open_client-1.0.3.dev0.dist-info/METADATA +723 -0
  1197. ogx_open_client-1.0.3.dev0.dist-info/RECORD +1199 -0
  1198. ogx_open_client-1.0.3.dev0.dist-info/WHEEL +5 -0
  1199. ogx_open_client-1.0.3.dev0.dist-info/top_level.txt +2 -0
@@ -0,0 +1,448 @@
1
+ # Copyright (c) The OGX Contributors.
2
+ # All rights reserved.
3
+ #
4
+ # This source code is licensed under the terms described in the LICENSE file in
5
+ # the root directory of this source tree.
6
+
7
+ """Translate Responses API stream events into structured turn events.
8
+
9
+ TurnEventSynthesizer keeps just enough state to expose turns and steps for
10
+ agents. It consumes the raw Responses API stream and emits the higher-level
11
+ events defined in ``turn_events.py`` without introducing an intermediate
12
+ low-level event layer.
13
+ """
14
+
15
+ from __future__ import annotations
16
+
17
+ import json
18
+ from collections.abc import Iterable, Iterator
19
+ from dataclasses import dataclass
20
+ from logging import getLogger
21
+ from typing import Any
22
+
23
+ from .turn_events import (
24
+ AgentEvent,
25
+ InferenceStepResult,
26
+ StepCompleted,
27
+ StepProgress,
28
+ StepStarted,
29
+ TextDelta,
30
+ ToolCallDelta,
31
+ ToolCallIssuedDelta,
32
+ ToolExecutionStepResult,
33
+ TurnCompleted,
34
+ TurnFailed,
35
+ TurnStarted,
36
+ )
37
+ from .types import ToolCall
38
+
39
+ logger = getLogger(__name__)
40
+
41
+
42
+ @dataclass
43
+ class _ToolCallState:
44
+ call_id: str
45
+ tool_name: str
46
+ tool_type: str
47
+ server_side: bool
48
+ arguments: str = ""
49
+
50
+ def update(self, *, delta: str | None = None, final: str | None = None) -> None:
51
+ if final is not None:
52
+ self.arguments = final or "{}"
53
+ elif delta:
54
+ self.arguments += delta
55
+
56
+ def as_tool_call(self) -> ToolCall:
57
+ payload = self.arguments or "{}"
58
+ return ToolCall(call_id=self.call_id, tool_name=self.tool_name, arguments=payload)
59
+
60
+
61
+ class TurnEventSynthesizer:
62
+ """Produce turn/step events directly from Responses API streaming events."""
63
+
64
+ def __init__(self, session_id: str, turn_id: str):
65
+ self.session_id = session_id
66
+ self.turn_id = turn_id
67
+
68
+ self.step_counter = 0
69
+ self.current_step_id: str | None = None
70
+ self.current_step_type: str | None = None
71
+
72
+ self.current_response_id: str | None = None
73
+ self.text_parts: list[str] = []
74
+ self._function_call_ids: list[str] = []
75
+ self._tool_calls: dict[str, _ToolCallState] = {}
76
+
77
+ self.turn_started = False
78
+ self.all_response_ids: list[str] = []
79
+ self.last_response: Any | None = None
80
+
81
+ # ------------------------------------------------------------------ helpers
82
+
83
+ def _next_step_id(self) -> str:
84
+ step_id = f"{self.turn_id}_step_{self.step_counter}"
85
+ self.step_counter += 1
86
+ return step_id
87
+
88
+ def _maybe_emit_turn_started(self) -> Iterator[AgentEvent]:
89
+ if not self.turn_started:
90
+ self.turn_started = True
91
+ yield TurnStarted(turn_id=self.turn_id, session_id=self.session_id)
92
+
93
+ def _start_inference_step(
94
+ self, *, response_id: str | None = None, reset_tool_state: bool = False
95
+ ) -> Iterator[AgentEvent]:
96
+ if response_id:
97
+ self.current_response_id = response_id
98
+ if reset_tool_state:
99
+ self._tool_calls = {}
100
+ self.text_parts = []
101
+ self._function_call_ids = []
102
+ self.current_step_id = self._next_step_id()
103
+ self.current_step_type = "inference"
104
+ yield StepStarted(step_id=self.current_step_id, step_type="inference", turn_id=self.turn_id)
105
+
106
+ def _complete_inference_step(self, *, stop_reason: str, response_id: str | None = None) -> Iterator[AgentEvent]:
107
+ if self.current_step_type != "inference":
108
+ return
109
+ step_id = self.current_step_id or self._next_step_id()
110
+ resolved_response_id = response_id or self.current_response_id or ""
111
+ self.current_response_id = resolved_response_id
112
+
113
+ function_calls: list[ToolCall] = []
114
+ for call_id in self._function_call_ids:
115
+ state = self._tool_calls.get(call_id)
116
+ if state is None:
117
+ continue
118
+ function_calls.append(state.as_tool_call())
119
+
120
+ yield StepCompleted(
121
+ step_id=step_id,
122
+ step_type="inference",
123
+ turn_id=self.turn_id,
124
+ result=InferenceStepResult(
125
+ step_id=step_id,
126
+ response_id=resolved_response_id,
127
+ text_content="".join(self.text_parts),
128
+ function_calls=function_calls,
129
+ server_tool_executions=[],
130
+ stop_reason=stop_reason,
131
+ ),
132
+ )
133
+
134
+ for call_id in list(self._function_call_ids):
135
+ # Drop client-side call state once we hand it back to the agent.
136
+ self._tool_calls.pop(call_id, None)
137
+ self._function_call_ids = []
138
+ self.text_parts = []
139
+ self.current_step_id = None
140
+ self.current_step_type = None
141
+
142
+ def _start_tool_execution_step(self, call_state: _ToolCallState) -> Iterator[AgentEvent]:
143
+ self.current_step_id = self._next_step_id()
144
+ self.current_step_type = "tool_execution"
145
+ yield StepStarted(
146
+ step_id=self.current_step_id,
147
+ step_type="tool_execution",
148
+ turn_id=self.turn_id,
149
+ metadata={"server_side": True, "tool_type": call_state.tool_type, "tool_name": call_state.tool_name},
150
+ )
151
+ yield StepProgress(
152
+ step_id=self.current_step_id,
153
+ step_type="tool_execution",
154
+ turn_id=self.turn_id,
155
+ delta=ToolCallIssuedDelta(
156
+ call_id=call_state.call_id,
157
+ tool_type=call_state.tool_type, # type: ignore[arg-type]
158
+ tool_name=call_state.tool_name,
159
+ arguments=call_state.arguments or "{}",
160
+ ),
161
+ )
162
+
163
+ def _complete_tool_execution_step(self, call_state: _ToolCallState) -> Iterator[AgentEvent]:
164
+ if self.current_step_type != "tool_execution":
165
+ return
166
+ step_id = self.current_step_id or self._next_step_id()
167
+ yield StepCompleted(
168
+ step_id=step_id,
169
+ step_type="tool_execution",
170
+ turn_id=self.turn_id,
171
+ result=ToolExecutionStepResult(
172
+ step_id=step_id,
173
+ tool_calls=[call_state.as_tool_call()],
174
+ tool_responses=[],
175
+ ),
176
+ )
177
+ self._tool_calls.pop(call_state.call_id, None)
178
+ self.current_step_id = None
179
+ self.current_step_type = None
180
+
181
+ @staticmethod
182
+ def _coerce_arguments(payload: Any) -> str | None:
183
+ if payload is None:
184
+ return None
185
+ if isinstance(payload, str):
186
+ return payload
187
+ try:
188
+ return json.dumps(payload)
189
+ except Exception: # pragma: no cover - defensive
190
+ return str(payload)
191
+
192
+ def _register_tool_call(
193
+ self,
194
+ *,
195
+ call_id: str | None,
196
+ tool_name: str,
197
+ tool_type: str,
198
+ arguments: str | None,
199
+ ) -> _ToolCallState:
200
+ resolved_call_id = call_id or f"{tool_name}_{len(self._tool_calls)}"
201
+ state = _ToolCallState(
202
+ call_id=resolved_call_id,
203
+ tool_name=tool_name,
204
+ tool_type=tool_type,
205
+ server_side=tool_type != "function",
206
+ )
207
+ if arguments:
208
+ state.update(final=arguments)
209
+ self._tool_calls[resolved_call_id] = state
210
+ return state
211
+
212
+ def _classify_tool_type(self, tool_name: str) -> str:
213
+ server_side_tools = {
214
+ "file_search",
215
+ "file_search_call",
216
+ "knowledge_search",
217
+ "web_search",
218
+ "web_search_call",
219
+ "query_from_memory",
220
+ "mcp_call",
221
+ "mcp_list_tools",
222
+ "memory_retrieval",
223
+ }
224
+
225
+ if tool_name in server_side_tools:
226
+ if tool_name in {"file_search_call", "knowledge_search"}:
227
+ return "file_search"
228
+ if tool_name == "web_search_call":
229
+ return "web_search"
230
+ return tool_name
231
+
232
+ return "function"
233
+
234
+ # ------------------------------------------------------------------ handlers
235
+
236
+ def process_raw_stream(self, events: Iterable[Any]) -> Iterator[AgentEvent]:
237
+ current_response_id: str | None = None
238
+
239
+ for event in events:
240
+ yield from self._maybe_emit_turn_started()
241
+
242
+ response_id = getattr(event, "response_id", None)
243
+ if response_id is None and hasattr(event, "response"):
244
+ response = event.response
245
+ response_id = getattr(response, "id", None)
246
+ if response_id is not None:
247
+ current_response_id = response_id
248
+
249
+ event_type = getattr(event, "type", None)
250
+ if not event_type:
251
+ logger.debug("Unhandled stream event with no type: %r", event)
252
+ continue
253
+
254
+ if event_type == "response.in_progress":
255
+ response = getattr(event, "response", None)
256
+ response_id = getattr(response, "id", current_response_id)
257
+ if response_id is None:
258
+ continue
259
+ if not self.all_response_ids or self.all_response_ids[-1] != response_id:
260
+ self.all_response_ids.append(response_id)
261
+ yield from self._start_inference_step(response_id=response_id, reset_tool_state=True)
262
+
263
+ elif event_type == "response.output_text.delta":
264
+ if self.current_step_type != "inference":
265
+ continue
266
+ text = getattr(event, "delta", "") or ""
267
+ if not text:
268
+ continue
269
+ self.text_parts.append(text)
270
+ yield StepProgress(
271
+ step_id=self.current_step_id or "",
272
+ step_type="inference",
273
+ turn_id=self.turn_id,
274
+ delta=TextDelta(text=text),
275
+ )
276
+
277
+ elif event_type == "response.output_text.done":
278
+ # Text completions are tracked via the final StepCompleted event.
279
+ continue
280
+
281
+ elif event_type == "response.output_item.added":
282
+ yield from self._handle_output_item_added(getattr(event, "item", None))
283
+
284
+ elif event_type == "response.output_item.delta":
285
+ yield from self._handle_output_item_delta(getattr(event, "delta", None))
286
+
287
+ elif event_type == "response.output_item.done":
288
+ yield from self._handle_output_item_done(getattr(event, "item", None))
289
+
290
+ elif event_type == "response.completed":
291
+ response = getattr(event, "response", None)
292
+ if response is not None:
293
+ self.last_response = response
294
+ stop_reason = "tool_calls" if self._function_call_ids else "end_of_turn"
295
+ yield from self._complete_inference_step(stop_reason=stop_reason, response_id=current_response_id)
296
+
297
+ elif event_type == "response.failed":
298
+ response = getattr(event, "response", None)
299
+ error_obj = getattr(response, "error", None)
300
+ error_message = getattr(error_obj, "message", None) if error_obj else None
301
+ yield TurnFailed(
302
+ turn_id=self.turn_id,
303
+ session_id=self.session_id,
304
+ error_message=error_message or "Unknown error",
305
+ )
306
+
307
+ else: # pragma: no cover - depends on streaming responses
308
+ # Allow unknown streaming events to pass silently; they are often ancillary metadata.
309
+ continue
310
+
311
+ def _handle_output_item_added(self, item: Any) -> Iterator[AgentEvent]:
312
+ if item is None:
313
+ return
314
+ item_type = getattr(item, "type", None)
315
+ if item_type is None:
316
+ return
317
+
318
+ if item_type == "message":
319
+ # Messages mirror text deltas, nothing extra to emit.
320
+ return
321
+
322
+ if item_type in {
323
+ "function_call",
324
+ "web_search",
325
+ "web_search_call",
326
+ "mcp_call",
327
+ "mcp_list_tools",
328
+ "file_search_call",
329
+ }:
330
+ call_id = getattr(item, "call_id", None) or getattr(item, "id", None)
331
+ tool_name = getattr(item, "name", None) or getattr(item, "type", "")
332
+ arguments = self._coerce_arguments(getattr(item, "arguments", None))
333
+ tool_type = self._classify_tool_type(tool_name if item_type == "function_call" else item_type)
334
+
335
+ state = self._register_tool_call(
336
+ call_id=call_id,
337
+ tool_name=tool_name,
338
+ tool_type=tool_type,
339
+ arguments=arguments,
340
+ )
341
+
342
+ if state.server_side:
343
+ yield from self._complete_inference_step(
344
+ stop_reason="server_tool_call", response_id=self.current_response_id
345
+ )
346
+ yield from self._start_tool_execution_step(state)
347
+ else:
348
+ if state.call_id not in self._function_call_ids:
349
+ self._function_call_ids.append(state.call_id)
350
+ yield StepProgress(
351
+ step_id=self.current_step_id or "",
352
+ step_type="inference",
353
+ turn_id=self.turn_id,
354
+ delta=ToolCallIssuedDelta(
355
+ call_id=state.call_id,
356
+ tool_type="function",
357
+ tool_name=state.tool_name,
358
+ arguments=state.arguments or "{}",
359
+ ),
360
+ )
361
+
362
+ def _handle_output_item_delta(self, delta: Any) -> Iterator[AgentEvent]:
363
+ if delta is None:
364
+ return
365
+ delta_type = getattr(delta, "type", None)
366
+ if delta_type not in {
367
+ "function_call",
368
+ "web_search",
369
+ "web_search_call",
370
+ "mcp_call",
371
+ "mcp_list_tools",
372
+ "file_search_call",
373
+ }:
374
+ return
375
+
376
+ call_id = getattr(delta, "call_id", None) or getattr(delta, "id", None)
377
+ if call_id is None:
378
+ return
379
+
380
+ arguments_delta = getattr(delta, "arguments_delta", None)
381
+ if arguments_delta is None:
382
+ arguments_delta = getattr(delta, "arguments", None)
383
+ if arguments_delta is None and isinstance(delta, dict):
384
+ arguments_delta = delta.get("arguments_delta") or delta.get("arguments")
385
+ if arguments_delta is None:
386
+ return
387
+
388
+ state = self._tool_calls.get(call_id)
389
+ if state is None:
390
+ return
391
+
392
+ state.update(delta=arguments_delta)
393
+ step_type = "tool_execution" if state.server_side else "inference"
394
+ yield StepProgress(
395
+ step_id=self.current_step_id or "",
396
+ step_type=step_type, # type: ignore[arg-type]
397
+ turn_id=self.turn_id,
398
+ delta=ToolCallDelta(call_id=state.call_id, arguments_delta=arguments_delta),
399
+ )
400
+
401
+ def _handle_output_item_done(self, item: Any) -> Iterator[AgentEvent]:
402
+ if item is None:
403
+ return
404
+
405
+ item_type = getattr(item, "type", None)
406
+ if item_type not in {
407
+ "function_call",
408
+ "web_search",
409
+ "web_search_call",
410
+ "mcp_call",
411
+ "mcp_list_tools",
412
+ "file_search_call",
413
+ }:
414
+ return
415
+
416
+ call_id = getattr(item, "call_id", None) or getattr(item, "id", None)
417
+ if call_id is None:
418
+ return
419
+
420
+ state = self._tool_calls.get(call_id)
421
+ if state is None:
422
+ return
423
+
424
+ arguments = self._coerce_arguments(getattr(item, "arguments", None))
425
+ if arguments:
426
+ state.update(final=arguments)
427
+
428
+ if state.server_side:
429
+ yield from self._complete_tool_execution_step(state)
430
+ # Start a fresh inference step so the model can continue reasoning.
431
+ yield from self._start_inference_step()
432
+ else:
433
+ if call_id not in self._function_call_ids:
434
+ self._function_call_ids.append(call_id)
435
+
436
+ # ------------------------------------------------------------------ turn end
437
+
438
+ def finish_turn(self) -> Iterator[AgentEvent]:
439
+ if not self.last_response:
440
+ raise RuntimeError("Cannot finish turn without a response")
441
+
442
+ yield TurnCompleted(
443
+ turn_id=self.turn_id,
444
+ session_id=self.session_id,
445
+ final_text=self.last_response.output_text,
446
+ response_ids=self.all_response_ids,
447
+ num_steps=self.step_counter,
448
+ )
@@ -0,0 +1,5 @@
1
+ # Copyright (c) The OGX Contributors.
2
+ # All rights reserved.
3
+ #
4
+ # This source code is licensed under the terms described in the LICENSE file in
5
+ # the root directory of this source tree.
@@ -0,0 +1,94 @@
1
+ # Copyright (c) The OGX Contributors.
2
+ # All rights reserved.
3
+ #
4
+ # This source code is licensed under the terms described in the LICENSE file in
5
+ # the root directory of this source tree.
6
+ import logging
7
+ from collections.abc import Callable, Mapping
8
+ from typing import Any
9
+
10
+ from ...._types import Headers
11
+ from ..agent import Agent, AgentUtils
12
+ from ..client_tool import ClientTool
13
+ from ..tool_parser import ToolParser
14
+ from .prompts import DEFAULT_REACT_AGENT_SYSTEM_PROMPT_TEMPLATE
15
+ from .tool_parser import ReActToolParser
16
+
17
+ logger = logging.getLogger(__name__)
18
+
19
+
20
+ def _tool_definition_from_mapping(tool: Mapping[str, Any]) -> dict[str, Any]:
21
+ name = tool.get("name") or tool.get("identifier") or tool.get("tool_name") or tool.get("type") or "tool"
22
+ description = tool.get("description") or tool.get("summary") or ""
23
+ parameters = tool.get("parameters") or tool.get("input_schema") or {}
24
+ return {
25
+ "name": str(name),
26
+ "description": str(description),
27
+ "input_schema": parameters,
28
+ }
29
+
30
+
31
+ def _collect_tool_definitions(
32
+ server_tools: tuple[Mapping[str, Any], ...],
33
+ client_tools: tuple[ClientTool, ...],
34
+ ) -> list[dict[str, Any]]:
35
+ tool_defs = [_tool_definition_from_mapping(tool) for tool in server_tools]
36
+ tool_defs.extend(
37
+ {
38
+ "name": tool.get_name(),
39
+ "description": tool.get_description(),
40
+ "input_schema": tool.get_input_schema(),
41
+ }
42
+ for tool in client_tools
43
+ )
44
+ return tool_defs
45
+
46
+
47
+ def get_default_react_instructions(tool_defs: list[dict[str, Any]]) -> str:
48
+ tool_names = ", ".join([definition["name"] for definition in tool_defs])
49
+ tool_descriptions = "\n".join(
50
+ [
51
+ f"- {definition['name']}: {definition['description'] or definition['input_schema']}"
52
+ for definition in tool_defs
53
+ ]
54
+ )
55
+ instruction = DEFAULT_REACT_AGENT_SYSTEM_PROMPT_TEMPLATE.replace("<<tool_names>>", tool_names).replace(
56
+ "<<tool_descriptions>>", tool_descriptions
57
+ )
58
+ return instruction
59
+
60
+
61
+ class ReActAgent(Agent):
62
+ def __init__(
63
+ self,
64
+ client: Any,
65
+ *,
66
+ model: str,
67
+ tools: list[dict[str, Any] | ClientTool | Callable[..., Any]] | None = None,
68
+ tool_parser: ToolParser | None = None,
69
+ instructions: str | None = None,
70
+ extra_headers: Headers | None = None,
71
+ json_response_format: bool = False,
72
+ ):
73
+ if json_response_format:
74
+ logger.warning("`json_response_format` is deprecated and will be removed in a future release.")
75
+
76
+ if tool_parser is None:
77
+ tool_parser = ReActToolParser()
78
+
79
+ tool_list = tools or []
80
+ client_tool_instances = AgentUtils.get_client_tools(tool_list)
81
+ server_tool_defs = tuple(tool for tool in tool_list if isinstance(tool, Mapping))
82
+
83
+ if instructions is None:
84
+ tool_definitions = _collect_tool_definitions(tuple(server_tool_defs), tuple(client_tool_instances))
85
+ instructions = get_default_react_instructions(tool_definitions)
86
+
87
+ super().__init__(
88
+ client=client,
89
+ model=model,
90
+ instructions=instructions,
91
+ tools=tool_list,
92
+ tool_parser=tool_parser,
93
+ extra_headers=extra_headers,
94
+ )
@@ -0,0 +1,151 @@
1
+ # Copyright (c) The OGX Contributors.
2
+ # All rights reserved.
3
+ #
4
+ # This source code is licensed under the terms described in the LICENSE file in
5
+ # the root directory of this source tree.
6
+
7
+ DEFAULT_REACT_AGENT_SYSTEM_PROMPT_TEMPLATE = """
8
+ You are an expert assistant who can solve any task using tool calls. You will be given a task to solve as best you can.
9
+ To do so, you have been given access to the following tools: <<tool_names>>
10
+
11
+ You must always respond in the following JSON format:
12
+ {
13
+ "thought": $THOUGHT_PROCESS,
14
+ "action": {
15
+ "tool_name": $TOOL_NAME,
16
+ "tool_params": $TOOL_PARAMS
17
+ },
18
+ "answer": $ANSWER
19
+ }
20
+
21
+ Specifically, this json should have a `thought` key, a `action` key and an `answer` key.
22
+
23
+ The `action` key should specify the $TOOL_NAME the name of the tool to use and the `tool_params` key should specify the parameters key as input to the tool.
24
+
25
+ Make sure to have the $TOOL_PARAMS as a list of dictionaries in the right format for the tool you are using, and do not put variable names as input if you can find the right values.
26
+
27
+ You should always think about one action to take, and have the `thought` key contain your thought process about this action.
28
+ If the tool responds, the tool will return an observation containing result of the action.
29
+ ... (this Thought/Action/Observation can repeat N times, you should take several steps when needed. The action key must only use a SINGLE tool at a time.)
30
+
31
+ You can use the result of the previous action as input for the next action.
32
+ The observation will always be the response from calling the tool: it can represent a file, like "image_1.jpg". You do not need to generate them, it will be provided to you.
33
+ Then you can use it as input for the next action. You can do it for instance as follows:
34
+
35
+ Observation: "image_1.jpg"
36
+ {
37
+ "thought": "I need to transform the image that I received in the previous observation to make it green.",
38
+ "action": {
39
+ "tool_name": "image_transformer",
40
+ "tool_params": [{"name": "image"}, {"value": "image_1.jpg"}]
41
+ },
42
+ "answer": null
43
+ }
44
+
45
+
46
+ To provide the final answer to the task, use the `answer` key. It is the only way to complete the task, else you will be stuck on a loop. So your final output should look like this:
47
+ Observation: "your observation"
48
+
49
+ {
50
+ "thought": "you thought process",
51
+ "action": null,
52
+ "answer": "insert your final answer here"
53
+ }
54
+
55
+ Here are a few examples using notional tools:
56
+ ---
57
+ Task: "Generate an image of the oldest person in this document."
58
+
59
+ Your Response:
60
+ {
61
+ "thought": "I will proceed step by step and use the following tools: `document_qa` to find the oldest person in the document, then `image_generator` to generate an image according to the answer.",
62
+ "action": {
63
+ "tool_name": "document_qa",
64
+ "tool_params": [{"name": "document"}, {"value": "document.pdf"}, {"name": "question"}, {"value": "Who is the oldest person mentioned?"}]
65
+ },
66
+ "answer": null
67
+ }
68
+
69
+ Your Observation: "The oldest person in the document is John Doe, a 55 year old lumberjack living in Newfoundland."
70
+
71
+ Your Response:
72
+ {
73
+ "thought": "I will now generate an image showcasing the oldest person.",
74
+ "action": {
75
+ "tool_name": "image_generator",
76
+ "tool_params": [{"name": "prompt"}, {"value": "A portrait of John Doe, a 55-year-old man living in Canada."}]
77
+ },
78
+ "answer": null
79
+ }
80
+ Your Observation: "image.png"
81
+
82
+ {
83
+ "thought": "I will now return the generated image.",
84
+ "action": null,
85
+ "answer": "image.png"
86
+ }
87
+
88
+ ---
89
+ Task: "What is the result of the following operation: 5 + 3 + 1294.678?"
90
+
91
+ Your Response:
92
+ {
93
+ "thought": "I will use python code evaluator to compute the result of the operation and then return the final answer using the `final_answer` tool",
94
+ "action": {
95
+ "tool_name": "python_interpreter",
96
+ "tool_params": [{"name": "code"}, {"value": "5 + 3 + 1294.678"}]
97
+ },
98
+ "answer": null
99
+ }
100
+ Your Observation: 1302.678
101
+
102
+ {
103
+ "thought": "Now that I know the result, I will now return it.",
104
+ "action": null,
105
+ "answer": 1302.678
106
+ }
107
+
108
+ ---
109
+ Task: "Which city has the highest population , Guangzhou or Shanghai?"
110
+
111
+ Your Response:
112
+ {
113
+ "thought": "I need to get the populations for both cities and compare them: I will use the tool `search` to get the population of both cities.",
114
+ "action": {
115
+ "tool_name": "search",
116
+ "tool_params": [{"name": "query"}, {"value": "Population Guangzhou"}]
117
+ },
118
+ "answer": null
119
+ }
120
+ Your Observation: ['Guangzhou has a population of 15 million inhabitants as of 2021.']
121
+
122
+ Your Response:
123
+ {
124
+ "thought": "Now let's get the population of Shanghai using the tool 'search'.",
125
+ "action": {
126
+ "tool_name": "search",
127
+ "tool_params": [{"name": "query"}, {"value": "Population Shanghai"}]
128
+ },
129
+ "answer": null
130
+ }
131
+ Your Observation: "26 million (2019)"
132
+
133
+ Your Response:
134
+ {
135
+ "thought": "Now I know that Shanghai has a larger population. Let's return the result.",
136
+ "action": null,
137
+ "answer": "Shanghai"
138
+ }
139
+
140
+ Above example were using notional tools that might not exist for you. You only have access to these tools:
141
+ <<tool_descriptions>>
142
+
143
+ Here are the rules you should always follow to solve your task:
144
+ 1. ALWAYS answer in the JSON format with keys "thought", "action", "answer", else you will fail.
145
+ 2. Always use the right arguments for the tools. Never use variable names in the 'tool_params' field, use the value instead.
146
+ 3. Call a tool only when needed: do not call the search agent if you do not need information, try to solve the task yourself.
147
+ 4. Never re-do a tool call that you previously did with the exact same parameters.
148
+ 5. Observations will be provided to you, no need to generate them
149
+
150
+ Now Begin! If you solve the task correctly, you will receive a reward of $1,000,000.
151
+ """