openai-agents 0.0.15__tar.gz → 0.0.16__tar.gz

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.

Potentially problematic release.


This version of openai-agents might be problematic. Click here for more details.

Files changed (357) hide show
  1. openai_agents-0.0.16/AGENTS.md +69 -0
  2. {openai_agents-0.0.15 → openai_agents-0.0.16}/PKG-INFO +2 -2
  3. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/tracing.md +1 -0
  4. openai_agents-0.0.16/examples/hosted_mcp/approvals.py +61 -0
  5. openai_agents-0.0.16/examples/hosted_mcp/simple.py +47 -0
  6. openai_agents-0.0.16/examples/tools/code_interpreter.py +34 -0
  7. openai_agents-0.0.16/examples/tools/image_generator.py +54 -0
  8. {openai_agents-0.0.15 → openai_agents-0.0.16}/pyproject.toml +2 -2
  9. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/__init__.py +18 -0
  10. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/_run_impl.py +226 -6
  11. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/extensions/models/litellm_model.py +11 -0
  12. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/items.py +57 -3
  13. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/mcp/server.py +4 -2
  14. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/models/chatcmpl_stream_handler.py +25 -1
  15. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/models/openai_chatcompletions.py +14 -1
  16. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/models/openai_responses.py +44 -13
  17. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/run.py +2 -0
  18. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/stream_events.py +2 -0
  19. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/tool.py +112 -2
  20. openai_agents-0.0.16/src/agents/usage.py +42 -0
  21. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/fake_model.py +1 -0
  22. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/models/test_litellm_chatcompletions_stream.py +14 -2
  23. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_extra_headers.py +14 -6
  24. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_openai_chatcompletions.py +15 -2
  25. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_openai_chatcompletions_stream.py +14 -2
  26. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_responses_tracing.py +23 -1
  27. openai_agents-0.0.16/tests/test_usage.py +52 -0
  28. openai_agents-0.0.16/tests/voice/__init__.py +0 -0
  29. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/voice/test_workflow.py +2 -0
  30. {openai_agents-0.0.15 → openai_agents-0.0.16}/uv.lock +1689 -1689
  31. openai_agents-0.0.15/src/agents/usage.py +0 -22
  32. {openai_agents-0.0.15 → openai_agents-0.0.16}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  33. {openai_agents-0.0.15 → openai_agents-0.0.16}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  34. {openai_agents-0.0.15 → openai_agents-0.0.16}/.github/ISSUE_TEMPLATE/model_provider.md +0 -0
  35. {openai_agents-0.0.15 → openai_agents-0.0.16}/.github/ISSUE_TEMPLATE/question.md +0 -0
  36. {openai_agents-0.0.15 → openai_agents-0.0.16}/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +0 -0
  37. {openai_agents-0.0.15 → openai_agents-0.0.16}/.github/workflows/docs.yml +0 -0
  38. {openai_agents-0.0.15 → openai_agents-0.0.16}/.github/workflows/issues.yml +0 -0
  39. {openai_agents-0.0.15 → openai_agents-0.0.16}/.github/workflows/publish.yml +0 -0
  40. {openai_agents-0.0.15 → openai_agents-0.0.16}/.github/workflows/tests.yml +0 -0
  41. {openai_agents-0.0.15 → openai_agents-0.0.16}/.gitignore +0 -0
  42. {openai_agents-0.0.15 → openai_agents-0.0.16}/.prettierrc +0 -0
  43. {openai_agents-0.0.15 → openai_agents-0.0.16}/.vscode/settings.json +0 -0
  44. {openai_agents-0.0.15 → openai_agents-0.0.16}/LICENSE +0 -0
  45. {openai_agents-0.0.15 → openai_agents-0.0.16}/Makefile +0 -0
  46. {openai_agents-0.0.15 → openai_agents-0.0.16}/README.md +0 -0
  47. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/agents.md +0 -0
  48. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/assets/images/favicon-platform.svg +0 -0
  49. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/assets/images/graph.png +0 -0
  50. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/assets/images/mcp-tracing.jpg +0 -0
  51. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/assets/images/orchestration.png +0 -0
  52. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/assets/logo.svg +0 -0
  53. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/config.md +0 -0
  54. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/context.md +0 -0
  55. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/examples.md +0 -0
  56. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/guardrails.md +0 -0
  57. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/handoffs.md +0 -0
  58. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/index.md +0 -0
  59. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ja/agents.md +0 -0
  60. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ja/config.md +0 -0
  61. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ja/context.md +0 -0
  62. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ja/examples.md +0 -0
  63. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ja/guardrails.md +0 -0
  64. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ja/handoffs.md +0 -0
  65. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ja/index.md +0 -0
  66. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ja/mcp.md +0 -0
  67. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ja/models/index.md +0 -0
  68. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ja/models/litellm.md +0 -0
  69. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ja/models.md +0 -0
  70. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ja/multi_agent.md +0 -0
  71. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ja/quickstart.md +0 -0
  72. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ja/results.md +0 -0
  73. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ja/running_agents.md +0 -0
  74. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ja/streaming.md +0 -0
  75. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ja/tools.md +0 -0
  76. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ja/tracing.md +0 -0
  77. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ja/visualization.md +0 -0
  78. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ja/voice/pipeline.md +0 -0
  79. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ja/voice/quickstart.md +0 -0
  80. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ja/voice/tracing.md +0 -0
  81. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/mcp.md +0 -0
  82. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/models/index.md +0 -0
  83. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/models/litellm.md +0 -0
  84. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/multi_agent.md +0 -0
  85. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/quickstart.md +0 -0
  86. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/agent.md +0 -0
  87. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/agent_output.md +0 -0
  88. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/exceptions.md +0 -0
  89. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/extensions/handoff_filters.md +0 -0
  90. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/extensions/handoff_prompt.md +0 -0
  91. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/extensions/litellm.md +0 -0
  92. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/function_schema.md +0 -0
  93. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/guardrail.md +0 -0
  94. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/handoffs.md +0 -0
  95. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/index.md +0 -0
  96. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/items.md +0 -0
  97. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/lifecycle.md +0 -0
  98. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/mcp/server.md +0 -0
  99. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/mcp/util.md +0 -0
  100. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/model_settings.md +0 -0
  101. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/models/interface.md +0 -0
  102. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/models/openai_chatcompletions.md +0 -0
  103. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/models/openai_responses.md +0 -0
  104. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/result.md +0 -0
  105. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/run.md +0 -0
  106. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/run_context.md +0 -0
  107. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/stream_events.md +0 -0
  108. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/tool.md +0 -0
  109. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/tracing/create.md +0 -0
  110. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/tracing/index.md +0 -0
  111. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/tracing/processor_interface.md +0 -0
  112. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/tracing/processors.md +0 -0
  113. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/tracing/scope.md +0 -0
  114. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/tracing/setup.md +0 -0
  115. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/tracing/span_data.md +0 -0
  116. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/tracing/spans.md +0 -0
  117. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/tracing/traces.md +0 -0
  118. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/tracing/util.md +0 -0
  119. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/usage.md +0 -0
  120. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/voice/events.md +0 -0
  121. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/voice/exceptions.md +0 -0
  122. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/voice/input.md +0 -0
  123. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/voice/model.md +0 -0
  124. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/voice/models/openai_provider.md +0 -0
  125. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/voice/models/openai_stt.md +0 -0
  126. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/voice/models/openai_tts.md +0 -0
  127. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/voice/pipeline.md +0 -0
  128. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/voice/pipeline_config.md +0 -0
  129. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/voice/result.md +0 -0
  130. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/voice/utils.md +0 -0
  131. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/ref/voice/workflow.md +0 -0
  132. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/results.md +0 -0
  133. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/running_agents.md +0 -0
  134. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/scripts/translate_docs.py +0 -0
  135. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/streaming.md +0 -0
  136. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/stylesheets/extra.css +0 -0
  137. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/tools.md +0 -0
  138. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/visualization.md +0 -0
  139. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/voice/pipeline.md +0 -0
  140. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/voice/quickstart.md +0 -0
  141. {openai_agents-0.0.15 → openai_agents-0.0.16}/docs/voice/tracing.md +0 -0
  142. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/__init__.py +0 -0
  143. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/agent_patterns/README.md +0 -0
  144. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/agent_patterns/agents_as_tools.py +0 -0
  145. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/agent_patterns/deterministic.py +0 -0
  146. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/agent_patterns/forcing_tool_use.py +0 -0
  147. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/agent_patterns/input_guardrails.py +0 -0
  148. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/agent_patterns/llm_as_a_judge.py +0 -0
  149. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/agent_patterns/output_guardrails.py +0 -0
  150. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/agent_patterns/parallelization.py +0 -0
  151. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/agent_patterns/routing.py +0 -0
  152. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/agent_patterns/streaming_guardrails.py +0 -0
  153. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/basic/agent_lifecycle_example.py +0 -0
  154. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/basic/dynamic_system_prompt.py +0 -0
  155. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/basic/hello_world.py +0 -0
  156. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/basic/hello_world_jupyter.py +0 -0
  157. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/basic/lifecycle_example.py +0 -0
  158. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/basic/local_image.py +0 -0
  159. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/basic/media/image_bison.jpg +0 -0
  160. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/basic/non_strict_output_type.py +0 -0
  161. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/basic/previous_response_id.py +0 -0
  162. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/basic/remote_image.py +0 -0
  163. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/basic/stream_items.py +0 -0
  164. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/basic/stream_text.py +0 -0
  165. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/basic/tools.py +0 -0
  166. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/customer_service/main.py +0 -0
  167. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/financial_research_agent/README.md +0 -0
  168. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/financial_research_agent/__init__.py +0 -0
  169. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/financial_research_agent/agents/__init__.py +0 -0
  170. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/financial_research_agent/agents/financials_agent.py +0 -0
  171. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/financial_research_agent/agents/planner_agent.py +0 -0
  172. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/financial_research_agent/agents/risk_agent.py +0 -0
  173. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/financial_research_agent/agents/search_agent.py +0 -0
  174. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/financial_research_agent/agents/verifier_agent.py +0 -0
  175. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/financial_research_agent/agents/writer_agent.py +0 -0
  176. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/financial_research_agent/main.py +0 -0
  177. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/financial_research_agent/manager.py +0 -0
  178. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/financial_research_agent/printer.py +0 -0
  179. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/handoffs/message_filter.py +0 -0
  180. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/handoffs/message_filter_streaming.py +0 -0
  181. {openai_agents-0.0.15/examples/research_bot/agents → openai_agents-0.0.16/examples/hosted_mcp}/__init__.py +0 -0
  182. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/mcp/filesystem_example/README.md +0 -0
  183. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/mcp/filesystem_example/main.py +0 -0
  184. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/mcp/filesystem_example/sample_files/favorite_books.txt +0 -0
  185. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/mcp/filesystem_example/sample_files/favorite_cities.txt +0 -0
  186. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/mcp/filesystem_example/sample_files/favorite_songs.txt +0 -0
  187. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/mcp/git_example/README.md +0 -0
  188. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/mcp/git_example/main.py +0 -0
  189. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/mcp/sse_example/README.md +0 -0
  190. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/mcp/sse_example/main.py +0 -0
  191. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/mcp/sse_example/server.py +0 -0
  192. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/mcp/streamablehttp_example/README.md +0 -0
  193. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/mcp/streamablehttp_example/main.py +0 -0
  194. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/mcp/streamablehttp_example/server.py +0 -0
  195. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/model_providers/README.md +0 -0
  196. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/model_providers/custom_example_agent.py +0 -0
  197. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/model_providers/custom_example_global.py +0 -0
  198. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/model_providers/custom_example_provider.py +0 -0
  199. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/model_providers/litellm_auto.py +0 -0
  200. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/model_providers/litellm_provider.py +0 -0
  201. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/research_bot/README.md +0 -0
  202. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/research_bot/__init__.py +0 -0
  203. {openai_agents-0.0.15/examples/voice → openai_agents-0.0.16/examples/research_bot/agents}/__init__.py +0 -0
  204. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/research_bot/agents/planner_agent.py +0 -0
  205. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/research_bot/agents/search_agent.py +0 -0
  206. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/research_bot/agents/writer_agent.py +0 -0
  207. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/research_bot/main.py +0 -0
  208. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/research_bot/manager.py +0 -0
  209. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/research_bot/printer.py +0 -0
  210. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/research_bot/sample_outputs/product_recs.md +0 -0
  211. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/research_bot/sample_outputs/product_recs.txt +0 -0
  212. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/research_bot/sample_outputs/vacation.md +0 -0
  213. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/research_bot/sample_outputs/vacation.txt +0 -0
  214. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/tools/computer_use.py +0 -0
  215. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/tools/file_search.py +0 -0
  216. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/tools/web_search.py +0 -0
  217. {openai_agents-0.0.15/examples/voice/static → openai_agents-0.0.16/examples/voice}/__init__.py +0 -0
  218. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/voice/static/README.md +0 -0
  219. {openai_agents-0.0.15/examples/voice/streamed → openai_agents-0.0.16/examples/voice/static}/__init__.py +0 -0
  220. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/voice/static/main.py +0 -0
  221. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/voice/static/util.py +0 -0
  222. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/voice/streamed/README.md +0 -0
  223. {openai_agents-0.0.15/src/agents/extensions → openai_agents-0.0.16/examples/voice/streamed}/__init__.py +0 -0
  224. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/voice/streamed/main.py +0 -0
  225. {openai_agents-0.0.15 → openai_agents-0.0.16}/examples/voice/streamed/my_workflow.py +0 -0
  226. {openai_agents-0.0.15 → openai_agents-0.0.16}/mkdocs.yml +0 -0
  227. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/_config.py +0 -0
  228. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/_debug.py +0 -0
  229. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/agent.py +0 -0
  230. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/agent_output.py +0 -0
  231. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/computer.py +0 -0
  232. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/exceptions.py +0 -0
  233. {openai_agents-0.0.15/src/agents/extensions/models → openai_agents-0.0.16/src/agents/extensions}/__init__.py +0 -0
  234. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/extensions/handoff_filters.py +0 -0
  235. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/extensions/handoff_prompt.py +0 -0
  236. {openai_agents-0.0.15/src/agents → openai_agents-0.0.16/src/agents/extensions}/models/__init__.py +0 -0
  237. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/extensions/models/litellm_provider.py +0 -0
  238. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/extensions/visualization.py +0 -0
  239. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/function_schema.py +0 -0
  240. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/guardrail.py +0 -0
  241. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/handoffs.py +0 -0
  242. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/lifecycle.py +0 -0
  243. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/logger.py +0 -0
  244. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/mcp/__init__.py +0 -0
  245. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/mcp/util.py +0 -0
  246. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/model_settings.py +0 -0
  247. {openai_agents-0.0.15/src/agents/util → openai_agents-0.0.16/src/agents/models}/__init__.py +0 -0
  248. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/models/_openai_shared.py +0 -0
  249. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/models/chatcmpl_converter.py +0 -0
  250. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/models/chatcmpl_helpers.py +0 -0
  251. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/models/fake_id.py +0 -0
  252. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/models/interface.py +0 -0
  253. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/models/multi_provider.py +0 -0
  254. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/models/openai_provider.py +0 -0
  255. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/py.typed +0 -0
  256. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/result.py +0 -0
  257. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/run_context.py +0 -0
  258. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/strict_schema.py +0 -0
  259. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/tracing/__init__.py +0 -0
  260. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/tracing/create.py +0 -0
  261. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/tracing/logger.py +0 -0
  262. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/tracing/processor_interface.py +0 -0
  263. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/tracing/processors.py +0 -0
  264. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/tracing/scope.py +0 -0
  265. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/tracing/setup.py +0 -0
  266. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/tracing/span_data.py +0 -0
  267. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/tracing/spans.py +0 -0
  268. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/tracing/traces.py +0 -0
  269. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/tracing/util.py +0 -0
  270. {openai_agents-0.0.15/src/agents/voice/models → openai_agents-0.0.16/src/agents/util}/__init__.py +0 -0
  271. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/util/_coro.py +0 -0
  272. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/util/_error_tracing.py +0 -0
  273. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/util/_json.py +0 -0
  274. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/util/_pretty_print.py +0 -0
  275. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/util/_transforms.py +0 -0
  276. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/util/_types.py +0 -0
  277. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/version.py +0 -0
  278. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/voice/__init__.py +0 -0
  279. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/voice/events.py +0 -0
  280. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/voice/exceptions.py +0 -0
  281. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/voice/imports.py +0 -0
  282. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/voice/input.py +0 -0
  283. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/voice/model.py +0 -0
  284. {openai_agents-0.0.15/tests → openai_agents-0.0.16/src/agents/voice/models}/__init__.py +0 -0
  285. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/voice/models/openai_model_provider.py +0 -0
  286. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/voice/models/openai_stt.py +0 -0
  287. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/voice/models/openai_tts.py +0 -0
  288. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/voice/pipeline.py +0 -0
  289. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/voice/pipeline_config.py +0 -0
  290. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/voice/result.py +0 -0
  291. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/voice/utils.py +0 -0
  292. {openai_agents-0.0.15 → openai_agents-0.0.16}/src/agents/voice/workflow.py +0 -0
  293. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/README.md +0 -0
  294. {openai_agents-0.0.15/tests/fastapi → openai_agents-0.0.16/tests}/__init__.py +0 -0
  295. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/conftest.py +0 -0
  296. {openai_agents-0.0.15/tests/mcp → openai_agents-0.0.16/tests/fastapi}/__init__.py +0 -0
  297. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/fastapi/streaming_app.py +0 -0
  298. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/fastapi/test_streaming_context.py +0 -0
  299. {openai_agents-0.0.15/tests/models → openai_agents-0.0.16/tests/mcp}/__init__.py +0 -0
  300. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/mcp/conftest.py +0 -0
  301. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/mcp/helpers.py +0 -0
  302. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/mcp/test_caching.py +0 -0
  303. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/mcp/test_connect_disconnect.py +0 -0
  304. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/mcp/test_mcp_tracing.py +0 -0
  305. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/mcp/test_mcp_util.py +0 -0
  306. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/mcp/test_runner_calls_mcp.py +0 -0
  307. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/mcp/test_server_errors.py +0 -0
  308. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/model_settings/test_serialization.py +0 -0
  309. {openai_agents-0.0.15/tests/voice → openai_agents-0.0.16/tests/models}/__init__.py +0 -0
  310. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/models/conftest.py +0 -0
  311. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/models/test_litellm_extra_body.py +0 -0
  312. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/models/test_map.py +0 -0
  313. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_agent_config.py +0 -0
  314. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_agent_hooks.py +0 -0
  315. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_agent_runner.py +0 -0
  316. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_agent_runner_streamed.py +0 -0
  317. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_agent_tracing.py +0 -0
  318. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_cancel_streaming.py +0 -0
  319. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_computer_action.py +0 -0
  320. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_config.py +0 -0
  321. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_doc_parsing.py +0 -0
  322. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_extension_filters.py +0 -0
  323. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_function_schema.py +0 -0
  324. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_function_tool.py +0 -0
  325. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_function_tool_decorator.py +0 -0
  326. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_global_hooks.py +0 -0
  327. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_guardrails.py +0 -0
  328. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_handoff_tool.py +0 -0
  329. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_items_helpers.py +0 -0
  330. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_max_turns.py +0 -0
  331. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_openai_chatcompletions_converter.py +0 -0
  332. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_openai_responses_converter.py +0 -0
  333. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_output_tool.py +0 -0
  334. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_pretty_print.py +0 -0
  335. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_responses.py +0 -0
  336. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_result_cast.py +0 -0
  337. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_run_config.py +0 -0
  338. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_run_step_execution.py +0 -0
  339. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_run_step_processing.py +0 -0
  340. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_strict_schema.py +0 -0
  341. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_tool_choice_reset.py +0 -0
  342. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_tool_converter.py +0 -0
  343. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_tool_use_behavior.py +0 -0
  344. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_trace_processor.py +0 -0
  345. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_tracing.py +0 -0
  346. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_tracing_errors.py +0 -0
  347. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_tracing_errors_streamed.py +0 -0
  348. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/test_visualization.py +0 -0
  349. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/testing_processor.py +0 -0
  350. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/tracing/test_processor_api_key.py +0 -0
  351. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/voice/conftest.py +0 -0
  352. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/voice/fake_models.py +0 -0
  353. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/voice/helpers.py +0 -0
  354. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/voice/test_input.py +0 -0
  355. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/voice/test_openai_stt.py +0 -0
  356. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/voice/test_openai_tts.py +0 -0
  357. {openai_agents-0.0.15 → openai_agents-0.0.16}/tests/voice/test_pipeline.py +0 -0
@@ -0,0 +1,69 @@
1
+ Welcome to the OpenAI Agents SDK repository. This file contains the main points for new contributors.
2
+
3
+ ## Repository overview
4
+
5
+ - **Source code**: `src/agents/` contains the implementation.
6
+ - **Tests**: `tests/` with a short guide in `tests/README.md`.
7
+ - **Examples**: under `examples/`.
8
+ - **Documentation**: markdown pages live in `docs/` with `mkdocs.yml` controlling the site.
9
+ - **Utilities**: developer commands are defined in the `Makefile`.
10
+ - **PR template**: `.github/PULL_REQUEST_TEMPLATE/pull_request_template.md` describes the information every PR must include.
11
+
12
+ ## Local workflow
13
+
14
+ 1. Format, lint and type‑check your changes:
15
+
16
+ ```bash
17
+ make format
18
+ make lint
19
+ make mypy
20
+ ```
21
+
22
+ 2. Run the tests:
23
+
24
+ ```bash
25
+ make tests
26
+ ```
27
+
28
+ To run a single test, use `uv run pytest -s -k <test_name>`.
29
+
30
+ 3. Build the documentation (optional but recommended for docs changes):
31
+
32
+ ```bash
33
+ make build-docs
34
+ ```
35
+
36
+ Coverage can be generated with `make coverage`.
37
+
38
+ ## Snapshot tests
39
+
40
+ Some tests rely on inline snapshots. See `tests/README.md` for details on updating them:
41
+
42
+ ```bash
43
+ make snapshots-fix # update existing snapshots
44
+ make snapshots-create # create new snapshots
45
+ ```
46
+
47
+ Run `make tests` again after updating snapshots to ensure they pass.
48
+
49
+ ## Style notes
50
+
51
+ - Write comments as full sentences and end them with a period.
52
+
53
+ ## Pull request expectations
54
+
55
+ PRs should use the template located at `.github/PULL_REQUEST_TEMPLATE/pull_request_template.md`. Provide a summary, test plan and issue number if applicable, then check that:
56
+
57
+ - New tests are added when needed.
58
+ - Documentation is updated.
59
+ - `make lint` and `make format` have been run.
60
+ - The full test suite passes.
61
+
62
+ Commit messages should be concise and written in the imperative mood. Small, focused commits are preferred.
63
+
64
+ ## What reviewers look for
65
+
66
+ - Tests covering new behaviour.
67
+ - Consistent style: code formatted with `ruff format`, imports sorted, and type hints passing `mypy`.
68
+ - Clear documentation for any public API changes.
69
+ - Clean history and a helpful PR description.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openai-agents
3
- Version: 0.0.15
3
+ Version: 0.0.16
4
4
  Summary: OpenAI Agents SDK
5
5
  Project-URL: Homepage, https://github.com/openai/openai-agents-python
6
6
  Project-URL: Repository, https://github.com/openai/openai-agents-python
@@ -20,7 +20,7 @@ Classifier: Typing :: Typed
20
20
  Requires-Python: >=3.9
21
21
  Requires-Dist: griffe<2,>=1.5.6
22
22
  Requires-Dist: mcp<2,>=1.8.0; python_version >= '3.10'
23
- Requires-Dist: openai>=1.76.0
23
+ Requires-Dist: openai>=1.81.0
24
24
  Requires-Dist: pydantic<3,>=2.10
25
25
  Requires-Dist: requests<3,>=2.0
26
26
  Requires-Dist: types-requests<3,>=2.0
@@ -115,3 +115,4 @@ To customize this default setup, to send traces to alternative or additional bac
115
115
  - [Langfuse](https://langfuse.com/docs/integrations/openaiagentssdk/openai-agents)
116
116
  - [Langtrace](https://docs.langtrace.ai/supported-integrations/llm-frameworks/openai-agents-sdk)
117
117
  - [Okahu-Monocle](https://github.com/monocle2ai/monocle)
118
+ - [Galileo](https://v2docs.galileo.ai/integrations/openai-agent-integration#openai-agent-integration)
@@ -0,0 +1,61 @@
1
+ import argparse
2
+ import asyncio
3
+
4
+ from agents import (
5
+ Agent,
6
+ HostedMCPTool,
7
+ MCPToolApprovalFunctionResult,
8
+ MCPToolApprovalRequest,
9
+ Runner,
10
+ )
11
+
12
+ """This example demonstrates how to use the hosted MCP support in the OpenAI Responses API, with
13
+ approval callbacks."""
14
+
15
+
16
+ def approval_callback(request: MCPToolApprovalRequest) -> MCPToolApprovalFunctionResult:
17
+ answer = input(f"Approve running the tool `{request.data.name}`? (y/n) ")
18
+ result: MCPToolApprovalFunctionResult = {"approve": answer == "y"}
19
+ if not result["approve"]:
20
+ result["reason"] = "User denied"
21
+ return result
22
+
23
+
24
+ async def main(verbose: bool, stream: bool):
25
+ agent = Agent(
26
+ name="Assistant",
27
+ tools=[
28
+ HostedMCPTool(
29
+ tool_config={
30
+ "type": "mcp",
31
+ "server_label": "gitmcp",
32
+ "server_url": "https://gitmcp.io/openai/codex",
33
+ "require_approval": "always",
34
+ },
35
+ on_approval_request=approval_callback,
36
+ )
37
+ ],
38
+ )
39
+
40
+ if stream:
41
+ result = Runner.run_streamed(agent, "Which language is this repo written in?")
42
+ async for event in result.stream_events():
43
+ if event.type == "run_item_stream_event":
44
+ print(f"Got event of type {event.item.__class__.__name__}")
45
+ print(f"Done streaming; final result: {result.final_output}")
46
+ else:
47
+ res = await Runner.run(agent, "Which language is this repo written in?")
48
+ print(res.final_output)
49
+
50
+ if verbose:
51
+ for item in result.new_items:
52
+ print(item)
53
+
54
+
55
+ if __name__ == "__main__":
56
+ parser = argparse.ArgumentParser()
57
+ parser.add_argument("--verbose", action="store_true", default=False)
58
+ parser.add_argument("--stream", action="store_true", default=False)
59
+ args = parser.parse_args()
60
+
61
+ asyncio.run(main(args.verbose, args.stream))
@@ -0,0 +1,47 @@
1
+ import argparse
2
+ import asyncio
3
+
4
+ from agents import Agent, HostedMCPTool, Runner
5
+
6
+ """This example demonstrates how to use the hosted MCP support in the OpenAI Responses API, with
7
+ approvals not required for any tools. You should only use this for trusted MCP servers."""
8
+
9
+
10
+ async def main(verbose: bool, stream: bool):
11
+ agent = Agent(
12
+ name="Assistant",
13
+ tools=[
14
+ HostedMCPTool(
15
+ tool_config={
16
+ "type": "mcp",
17
+ "server_label": "gitmcp",
18
+ "server_url": "https://gitmcp.io/openai/codex",
19
+ "require_approval": "never",
20
+ }
21
+ )
22
+ ],
23
+ )
24
+
25
+ if stream:
26
+ result = Runner.run_streamed(agent, "Which language is this repo written in?")
27
+ async for event in result.stream_events():
28
+ if event.type == "run_item_stream_event":
29
+ print(f"Got event of type {event.item.__class__.__name__}")
30
+ print(f"Done streaming; final result: {result.final_output}")
31
+ else:
32
+ res = await Runner.run(agent, "Which language is this repo written in?")
33
+ print(res.final_output)
34
+ # The repository is primarily written in multiple languages, including Rust and TypeScript...
35
+
36
+ if verbose:
37
+ for item in result.new_items:
38
+ print(item)
39
+
40
+
41
+ if __name__ == "__main__":
42
+ parser = argparse.ArgumentParser()
43
+ parser.add_argument("--verbose", action="store_true", default=False)
44
+ parser.add_argument("--stream", action="store_true", default=False)
45
+ args = parser.parse_args()
46
+
47
+ asyncio.run(main(args.verbose, args.stream))
@@ -0,0 +1,34 @@
1
+ import asyncio
2
+
3
+ from agents import Agent, CodeInterpreterTool, Runner, trace
4
+
5
+
6
+ async def main():
7
+ agent = Agent(
8
+ name="Code interpreter",
9
+ instructions="You love doing math.",
10
+ tools=[
11
+ CodeInterpreterTool(
12
+ tool_config={"type": "code_interpreter", "container": {"type": "auto"}},
13
+ )
14
+ ],
15
+ )
16
+
17
+ with trace("Code interpreter example"):
18
+ print("Solving math problem...")
19
+ result = Runner.run_streamed(agent, "What is the square root of273 * 312821 plus 1782?")
20
+ async for event in result.stream_events():
21
+ if (
22
+ event.type == "run_item_stream_event"
23
+ and event.item.type == "tool_call_item"
24
+ and event.item.raw_item.type == "code_interpreter_call"
25
+ ):
26
+ print(f"Code interpreter code:\n```\n{event.item.raw_item.code}\n```\n")
27
+ elif event.type == "run_item_stream_event":
28
+ print(f"Other event: {event.item.type}")
29
+
30
+ print(f"Final output: {result.final_output}")
31
+
32
+
33
+ if __name__ == "__main__":
34
+ asyncio.run(main())
@@ -0,0 +1,54 @@
1
+ import asyncio
2
+ import base64
3
+ import os
4
+ import subprocess
5
+ import sys
6
+ import tempfile
7
+
8
+ from agents import Agent, ImageGenerationTool, Runner, trace
9
+
10
+
11
+ def open_file(path: str) -> None:
12
+ if sys.platform.startswith("darwin"):
13
+ subprocess.run(["open", path], check=False) # macOS
14
+ elif os.name == "nt": # Windows
15
+ os.astartfile(path) # type: ignore
16
+ elif os.name == "posix":
17
+ subprocess.run(["xdg-open", path], check=False) # Linux/Unix
18
+ else:
19
+ print(f"Don't know how to open files on this platform: {sys.platform}")
20
+
21
+
22
+ async def main():
23
+ agent = Agent(
24
+ name="Image generator",
25
+ instructions="You are a helpful agent.",
26
+ tools=[
27
+ ImageGenerationTool(
28
+ tool_config={"type": "image_generation", "quality": "low"},
29
+ )
30
+ ],
31
+ )
32
+
33
+ with trace("Image generation example"):
34
+ print("Generating image, this may take a while...")
35
+ result = await Runner.run(
36
+ agent, "Create an image of a frog eating a pizza, comic book style."
37
+ )
38
+ print(result.final_output)
39
+ for item in result.new_items:
40
+ if (
41
+ item.type == "tool_call_item"
42
+ and item.raw_item.type == "image_generation_call"
43
+ and (img_result := item.raw_item.result)
44
+ ):
45
+ with tempfile.NamedTemporaryFile(suffix=".png", delete=False) as tmp:
46
+ tmp.write(base64.b64decode(img_result))
47
+ temp_path = tmp.name
48
+
49
+ # Open the image
50
+ open_file(temp_path)
51
+
52
+
53
+ if __name__ == "__main__":
54
+ asyncio.run(main())
@@ -1,13 +1,13 @@
1
1
  [project]
2
2
  name = "openai-agents"
3
- version = "0.0.15"
3
+ version = "0.0.16"
4
4
  description = "OpenAI Agents SDK"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.9"
7
7
  license = "MIT"
8
8
  authors = [{ name = "OpenAI", email = "support@openai.com" }]
9
9
  dependencies = [
10
- "openai>=1.76.0",
10
+ "openai>=1.81.0",
11
11
  "pydantic>=2.10, <3",
12
12
  "griffe>=1.5.6, <2",
13
13
  "typing-extensions>=4.12.2, <5",
@@ -54,10 +54,19 @@ from .stream_events import (
54
54
  StreamEvent,
55
55
  )
56
56
  from .tool import (
57
+ CodeInterpreterTool,
57
58
  ComputerTool,
58
59
  FileSearchTool,
59
60
  FunctionTool,
60
61
  FunctionToolResult,
62
+ HostedMCPTool,
63
+ ImageGenerationTool,
64
+ LocalShellCommandRequest,
65
+ LocalShellExecutor,
66
+ LocalShellTool,
67
+ MCPToolApprovalFunction,
68
+ MCPToolApprovalFunctionResult,
69
+ MCPToolApprovalRequest,
61
70
  Tool,
62
71
  WebSearchTool,
63
72
  default_tool_error_function,
@@ -206,8 +215,17 @@ __all__ = [
206
215
  "FunctionToolResult",
207
216
  "ComputerTool",
208
217
  "FileSearchTool",
218
+ "CodeInterpreterTool",
219
+ "ImageGenerationTool",
220
+ "LocalShellCommandRequest",
221
+ "LocalShellExecutor",
222
+ "LocalShellTool",
209
223
  "Tool",
210
224
  "WebSearchTool",
225
+ "HostedMCPTool",
226
+ "MCPToolApprovalFunction",
227
+ "MCPToolApprovalRequest",
228
+ "MCPToolApprovalFunctionResult",
211
229
  "function_tool",
212
230
  "Usage",
213
231
  "add_trace_processor",