openai-agents 0.0.8__tar.gz → 0.0.9__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 (295) hide show
  1. {openai_agents-0.0.8 → openai_agents-0.0.9}/PKG-INFO +1 -1
  2. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/examples.md +15 -9
  3. {openai_agents-0.0.8 → openai_agents-0.0.9}/pyproject.toml +1 -1
  4. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/mcp/util.py +5 -0
  5. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/models/openai_chatcompletions.py +9 -5
  6. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/mcp/test_mcp_util.py +36 -7
  7. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_openai_chatcompletions.py +40 -3
  8. {openai_agents-0.0.8 → openai_agents-0.0.9}/uv.lock +1 -1
  9. {openai_agents-0.0.8 → openai_agents-0.0.9}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  10. {openai_agents-0.0.8 → openai_agents-0.0.9}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  11. {openai_agents-0.0.8 → openai_agents-0.0.9}/.github/ISSUE_TEMPLATE/model_provider.md +0 -0
  12. {openai_agents-0.0.8 → openai_agents-0.0.9}/.github/ISSUE_TEMPLATE/question.md +0 -0
  13. {openai_agents-0.0.8 → openai_agents-0.0.9}/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +0 -0
  14. {openai_agents-0.0.8 → openai_agents-0.0.9}/.github/workflows/docs.yml +0 -0
  15. {openai_agents-0.0.8 → openai_agents-0.0.9}/.github/workflows/issues.yml +0 -0
  16. {openai_agents-0.0.8 → openai_agents-0.0.9}/.github/workflows/publish.yml +0 -0
  17. {openai_agents-0.0.8 → openai_agents-0.0.9}/.github/workflows/tests.yml +0 -0
  18. {openai_agents-0.0.8 → openai_agents-0.0.9}/.gitignore +0 -0
  19. {openai_agents-0.0.8 → openai_agents-0.0.9}/.prettierrc +0 -0
  20. {openai_agents-0.0.8 → openai_agents-0.0.9}/.vscode/settings.json +0 -0
  21. {openai_agents-0.0.8 → openai_agents-0.0.9}/LICENSE +0 -0
  22. {openai_agents-0.0.8 → openai_agents-0.0.9}/Makefile +0 -0
  23. {openai_agents-0.0.8 → openai_agents-0.0.9}/README.md +0 -0
  24. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/agents.md +0 -0
  25. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/assets/images/favicon-platform.svg +0 -0
  26. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/assets/images/graph.png +0 -0
  27. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/assets/images/mcp-tracing.jpg +0 -0
  28. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/assets/images/orchestration.png +0 -0
  29. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/assets/logo.svg +0 -0
  30. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/config.md +0 -0
  31. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/context.md +0 -0
  32. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/guardrails.md +0 -0
  33. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/handoffs.md +0 -0
  34. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/index.md +0 -0
  35. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/mcp.md +0 -0
  36. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/models.md +0 -0
  37. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/multi_agent.md +0 -0
  38. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/quickstart.md +0 -0
  39. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/agent.md +0 -0
  40. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/agent_output.md +0 -0
  41. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/exceptions.md +0 -0
  42. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/extensions/handoff_filters.md +0 -0
  43. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/extensions/handoff_prompt.md +0 -0
  44. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/function_schema.md +0 -0
  45. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/guardrail.md +0 -0
  46. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/handoffs.md +0 -0
  47. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/index.md +0 -0
  48. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/items.md +0 -0
  49. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/lifecycle.md +0 -0
  50. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/mcp/server.md +0 -0
  51. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/mcp/util.md +0 -0
  52. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/model_settings.md +0 -0
  53. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/models/interface.md +0 -0
  54. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/models/openai_chatcompletions.md +0 -0
  55. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/models/openai_responses.md +0 -0
  56. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/result.md +0 -0
  57. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/run.md +0 -0
  58. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/run_context.md +0 -0
  59. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/stream_events.md +0 -0
  60. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/tool.md +0 -0
  61. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/tracing/create.md +0 -0
  62. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/tracing/index.md +0 -0
  63. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/tracing/processor_interface.md +0 -0
  64. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/tracing/processors.md +0 -0
  65. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/tracing/scope.md +0 -0
  66. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/tracing/setup.md +0 -0
  67. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/tracing/span_data.md +0 -0
  68. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/tracing/spans.md +0 -0
  69. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/tracing/traces.md +0 -0
  70. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/tracing/util.md +0 -0
  71. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/usage.md +0 -0
  72. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/voice/events.md +0 -0
  73. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/voice/exceptions.md +0 -0
  74. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/voice/input.md +0 -0
  75. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/voice/model.md +0 -0
  76. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/voice/models/openai_provider.md +0 -0
  77. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/voice/models/openai_stt.md +0 -0
  78. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/voice/models/openai_tts.md +0 -0
  79. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/voice/pipeline.md +0 -0
  80. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/voice/pipeline_config.md +0 -0
  81. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/voice/result.md +0 -0
  82. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/voice/utils.md +0 -0
  83. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/ref/voice/workflow.md +0 -0
  84. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/results.md +0 -0
  85. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/running_agents.md +0 -0
  86. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/streaming.md +0 -0
  87. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/stylesheets/extra.css +0 -0
  88. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/tools.md +0 -0
  89. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/tracing.md +0 -0
  90. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/visualization.md +0 -0
  91. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/voice/pipeline.md +0 -0
  92. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/voice/quickstart.md +0 -0
  93. {openai_agents-0.0.8 → openai_agents-0.0.9}/docs/voice/tracing.md +0 -0
  94. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/__init__.py +0 -0
  95. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/agent_patterns/README.md +0 -0
  96. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/agent_patterns/agents_as_tools.py +0 -0
  97. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/agent_patterns/deterministic.py +0 -0
  98. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/agent_patterns/forcing_tool_use.py +0 -0
  99. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/agent_patterns/input_guardrails.py +0 -0
  100. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/agent_patterns/llm_as_a_judge.py +0 -0
  101. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/agent_patterns/output_guardrails.py +0 -0
  102. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/agent_patterns/parallelization.py +0 -0
  103. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/agent_patterns/routing.py +0 -0
  104. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/basic/agent_lifecycle_example.py +0 -0
  105. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/basic/dynamic_system_prompt.py +0 -0
  106. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/basic/hello_world.py +0 -0
  107. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/basic/hello_world_jupyter.py +0 -0
  108. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/basic/lifecycle_example.py +0 -0
  109. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/basic/stream_items.py +0 -0
  110. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/basic/stream_text.py +0 -0
  111. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/basic/tools.py +0 -0
  112. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/customer_service/main.py +0 -0
  113. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/financial_research_agent/README.md +0 -0
  114. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/financial_research_agent/__init__.py +0 -0
  115. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/financial_research_agent/agents/__init__.py +0 -0
  116. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/financial_research_agent/agents/financials_agent.py +0 -0
  117. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/financial_research_agent/agents/planner_agent.py +0 -0
  118. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/financial_research_agent/agents/risk_agent.py +0 -0
  119. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/financial_research_agent/agents/search_agent.py +0 -0
  120. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/financial_research_agent/agents/verifier_agent.py +0 -0
  121. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/financial_research_agent/agents/writer_agent.py +0 -0
  122. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/financial_research_agent/main.py +0 -0
  123. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/financial_research_agent/manager.py +0 -0
  124. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/financial_research_agent/printer.py +0 -0
  125. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/handoffs/message_filter.py +0 -0
  126. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/handoffs/message_filter_streaming.py +0 -0
  127. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/mcp/filesystem_example/README.md +0 -0
  128. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/mcp/filesystem_example/main.py +0 -0
  129. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/mcp/filesystem_example/sample_files/favorite_books.txt +0 -0
  130. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/mcp/filesystem_example/sample_files/favorite_cities.txt +0 -0
  131. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/mcp/filesystem_example/sample_files/favorite_songs.txt +0 -0
  132. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/mcp/git_example/README.md +0 -0
  133. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/mcp/git_example/main.py +0 -0
  134. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/mcp/sse_example/README.md +0 -0
  135. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/mcp/sse_example/main.py +0 -0
  136. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/mcp/sse_example/server.py +0 -0
  137. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/model_providers/README.md +0 -0
  138. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/model_providers/custom_example_agent.py +0 -0
  139. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/model_providers/custom_example_global.py +0 -0
  140. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/model_providers/custom_example_provider.py +0 -0
  141. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/research_bot/README.md +0 -0
  142. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/research_bot/__init__.py +0 -0
  143. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/research_bot/agents/__init__.py +0 -0
  144. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/research_bot/agents/planner_agent.py +0 -0
  145. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/research_bot/agents/search_agent.py +0 -0
  146. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/research_bot/agents/writer_agent.py +0 -0
  147. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/research_bot/main.py +0 -0
  148. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/research_bot/manager.py +0 -0
  149. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/research_bot/printer.py +0 -0
  150. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/research_bot/sample_outputs/product_recs.md +0 -0
  151. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/research_bot/sample_outputs/product_recs.txt +0 -0
  152. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/research_bot/sample_outputs/vacation.md +0 -0
  153. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/research_bot/sample_outputs/vacation.txt +0 -0
  154. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/tools/computer_use.py +0 -0
  155. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/tools/file_search.py +0 -0
  156. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/tools/web_search.py +0 -0
  157. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/voice/__init__.py +0 -0
  158. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/voice/static/README.md +0 -0
  159. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/voice/static/__init__.py +0 -0
  160. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/voice/static/main.py +0 -0
  161. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/voice/static/util.py +0 -0
  162. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/voice/streamed/README.md +0 -0
  163. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/voice/streamed/__init__.py +0 -0
  164. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/voice/streamed/main.py +0 -0
  165. {openai_agents-0.0.8 → openai_agents-0.0.9}/examples/voice/streamed/my_workflow.py +0 -0
  166. {openai_agents-0.0.8 → openai_agents-0.0.9}/mkdocs.yml +0 -0
  167. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/__init__.py +0 -0
  168. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/_config.py +0 -0
  169. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/_debug.py +0 -0
  170. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/_run_impl.py +0 -0
  171. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/agent.py +0 -0
  172. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/agent_output.py +0 -0
  173. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/computer.py +0 -0
  174. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/exceptions.py +0 -0
  175. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/extensions/__init__.py +0 -0
  176. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/extensions/handoff_filters.py +0 -0
  177. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/extensions/handoff_prompt.py +0 -0
  178. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/extensions/visualization.py +0 -0
  179. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/function_schema.py +0 -0
  180. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/guardrail.py +0 -0
  181. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/handoffs.py +0 -0
  182. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/items.py +0 -0
  183. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/lifecycle.py +0 -0
  184. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/logger.py +0 -0
  185. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/mcp/__init__.py +0 -0
  186. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/mcp/server.py +0 -0
  187. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/model_settings.py +0 -0
  188. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/models/__init__.py +0 -0
  189. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/models/_openai_shared.py +0 -0
  190. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/models/fake_id.py +0 -0
  191. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/models/interface.py +0 -0
  192. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/models/openai_provider.py +0 -0
  193. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/models/openai_responses.py +0 -0
  194. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/py.typed +0 -0
  195. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/result.py +0 -0
  196. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/run.py +0 -0
  197. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/run_context.py +0 -0
  198. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/stream_events.py +0 -0
  199. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/strict_schema.py +0 -0
  200. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/tool.py +0 -0
  201. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/tracing/__init__.py +0 -0
  202. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/tracing/create.py +0 -0
  203. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/tracing/logger.py +0 -0
  204. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/tracing/processor_interface.py +0 -0
  205. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/tracing/processors.py +0 -0
  206. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/tracing/scope.py +0 -0
  207. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/tracing/setup.py +0 -0
  208. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/tracing/span_data.py +0 -0
  209. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/tracing/spans.py +0 -0
  210. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/tracing/traces.py +0 -0
  211. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/tracing/util.py +0 -0
  212. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/usage.py +0 -0
  213. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/util/__init__.py +0 -0
  214. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/util/_coro.py +0 -0
  215. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/util/_error_tracing.py +0 -0
  216. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/util/_json.py +0 -0
  217. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/util/_pretty_print.py +0 -0
  218. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/util/_transforms.py +0 -0
  219. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/util/_types.py +0 -0
  220. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/version.py +0 -0
  221. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/voice/__init__.py +0 -0
  222. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/voice/events.py +0 -0
  223. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/voice/exceptions.py +0 -0
  224. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/voice/imports.py +0 -0
  225. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/voice/input.py +0 -0
  226. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/voice/model.py +0 -0
  227. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/voice/models/__init__.py +0 -0
  228. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/voice/models/openai_model_provider.py +0 -0
  229. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/voice/models/openai_stt.py +0 -0
  230. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/voice/models/openai_tts.py +0 -0
  231. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/voice/pipeline.py +0 -0
  232. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/voice/pipeline_config.py +0 -0
  233. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/voice/result.py +0 -0
  234. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/voice/utils.py +0 -0
  235. {openai_agents-0.0.8 → openai_agents-0.0.9}/src/agents/voice/workflow.py +0 -0
  236. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/README.md +0 -0
  237. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/__init__.py +0 -0
  238. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/conftest.py +0 -0
  239. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/fake_model.py +0 -0
  240. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/mcp/__init__.py +0 -0
  241. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/mcp/conftest.py +0 -0
  242. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/mcp/helpers.py +0 -0
  243. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/mcp/test_caching.py +0 -0
  244. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/mcp/test_connect_disconnect.py +0 -0
  245. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/mcp/test_mcp_tracing.py +0 -0
  246. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/mcp/test_runner_calls_mcp.py +0 -0
  247. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/mcp/test_server_errors.py +0 -0
  248. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_agent_config.py +0 -0
  249. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_agent_hooks.py +0 -0
  250. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_agent_runner.py +0 -0
  251. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_agent_runner_streamed.py +0 -0
  252. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_agent_tracing.py +0 -0
  253. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_computer_action.py +0 -0
  254. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_config.py +0 -0
  255. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_doc_parsing.py +0 -0
  256. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_extension_filters.py +0 -0
  257. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_function_schema.py +0 -0
  258. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_function_tool.py +0 -0
  259. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_function_tool_decorator.py +0 -0
  260. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_global_hooks.py +0 -0
  261. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_guardrails.py +0 -0
  262. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_handoff_tool.py +0 -0
  263. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_items_helpers.py +0 -0
  264. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_max_turns.py +0 -0
  265. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_openai_chatcompletions_converter.py +0 -0
  266. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_openai_chatcompletions_stream.py +0 -0
  267. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_openai_responses_converter.py +0 -0
  268. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_output_tool.py +0 -0
  269. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_pretty_print.py +0 -0
  270. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_responses.py +0 -0
  271. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_responses_tracing.py +0 -0
  272. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_result_cast.py +0 -0
  273. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_run_config.py +0 -0
  274. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_run_step_execution.py +0 -0
  275. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_run_step_processing.py +0 -0
  276. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_strict_schema.py +0 -0
  277. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_tool_choice_reset.py +0 -0
  278. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_tool_converter.py +0 -0
  279. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_tool_use_behavior.py +0 -0
  280. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_trace_processor.py +0 -0
  281. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_tracing.py +0 -0
  282. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_tracing_errors.py +0 -0
  283. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_tracing_errors_streamed.py +0 -0
  284. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/test_visualization.py +0 -0
  285. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/testing_processor.py +0 -0
  286. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/tracing/test_processor_api_key.py +0 -0
  287. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/voice/__init__.py +0 -0
  288. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/voice/conftest.py +0 -0
  289. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/voice/fake_models.py +0 -0
  290. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/voice/helpers.py +0 -0
  291. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/voice/test_input.py +0 -0
  292. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/voice/test_openai_stt.py +0 -0
  293. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/voice/test_openai_tts.py +0 -0
  294. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/voice/test_pipeline.py +0 -0
  295. {openai_agents-0.0.8 → openai_agents-0.0.9}/tests/voice/test_workflow.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openai-agents
3
- Version: 0.0.8
3
+ Version: 0.0.9
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
@@ -5,32 +5,38 @@ Check out a variety of sample implementations of the SDK in the examples section
5
5
 
6
6
  ## Categories
7
7
 
8
- - **agent_patterns:**
8
+ - **[agent_patterns](https://github.com/openai/openai-agents-python/tree/main/examples/agent_patterns):**
9
9
  Examples in this category illustrate common agent design patterns, such as
10
-
10
+
11
11
  - Deterministic workflows
12
12
  - Agents as tools
13
13
  - Parallel agent execution
14
14
 
15
- - **basic:**
15
+ - **[basic](https://github.com/openai/openai-agents-python/tree/main/examples/basic):**
16
16
  These examples showcase foundational capabilities of the SDK, such as
17
-
17
+
18
18
  - Dynamic system prompts
19
19
  - Streaming outputs
20
20
  - Lifecycle events
21
21
 
22
- - **tool examples:**
22
+ - **[tool examples](https://github.com/openai/openai-agents-python/tree/main/examples/tools):**
23
23
  Learn how to implement OAI hosted tools such as web search and file search,
24
24
  and integrate them into your agents.
25
25
 
26
- - **model providers:**
26
+ - **[model providers](https://github.com/openai/openai-agents-python/tree/main/examples/model_providers):**
27
27
  Explore how to use non-OpenAI models with the SDK.
28
28
 
29
- - **handoffs:**
29
+ - **[handoffs](https://github.com/openai/openai-agents-python/tree/main/examples/handoffs):**
30
30
  See practical examples of agent handoffs.
31
31
 
32
- - **customer_service** and **research_bot:**
32
+ - **[mcp](https://github.com/openai/openai-agents-python/tree/main/examples/mcp):**
33
+ Learn how to build agents with MCP.
34
+
35
+ - **[customer_service](https://github.com/openai/openai-agents-python/tree/main/examples/customer_service)** and **[research_bot](https://github.com/openai/openai-agents-python/tree/main/examples/research_bot):**
33
36
  Two more built-out examples that illustrate real-world applications
34
-
37
+
35
38
  - **customer_service**: Example customer service system for an airline.
36
39
  - **research_bot**: Simple deep research clone.
40
+
41
+ - **[voice](https://github.com/openai/openai-agents-python/tree/main/examples/voice):**
42
+ See examples of voice agents, using our TTS and STT models.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "openai-agents"
3
- version = "0.0.8"
3
+ version = "0.0.9"
4
4
  description = "OpenAI Agents SDK"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.9"
@@ -59,6 +59,11 @@ class MCPUtil:
59
59
  """Convert an MCP tool to an Agents SDK function tool."""
60
60
  invoke_func = functools.partial(cls.invoke_mcp_tool, server, tool)
61
61
  schema, is_strict = tool.inputSchema, False
62
+
63
+ # MCP spec doesn't require the inputSchema to have `properties`, but OpenAI spec does.
64
+ if "properties" not in schema:
65
+ schema["properties"] = {}
66
+
62
67
  if convert_schemas_to_strict:
63
68
  try:
64
69
  schema = ensure_strict_json_schema(schema)
@@ -518,10 +518,8 @@ class OpenAIChatCompletionsModel(Model):
518
518
  f"Response format: {response_format}\n"
519
519
  )
520
520
 
521
- # Match the behavior of Responses where store is True when not given
522
- store = model_settings.store if model_settings.store is not None else True
523
-
524
521
  reasoning_effort = model_settings.reasoning.effort if model_settings.reasoning else None
522
+ store = _Converter.get_store_param(self._get_client(), model_settings)
525
523
 
526
524
  ret = await self._get_client().chat.completions.create(
527
525
  model=self.model,
@@ -537,10 +535,10 @@ class OpenAIChatCompletionsModel(Model):
537
535
  parallel_tool_calls=parallel_tool_calls,
538
536
  stream=stream,
539
537
  stream_options={"include_usage": True} if stream else NOT_GIVEN,
540
- store=store,
538
+ store=self._non_null_or_not_given(store),
541
539
  reasoning_effort=self._non_null_or_not_given(reasoning_effort),
542
540
  extra_headers=_HEADERS,
543
- metadata=model_settings.metadata,
541
+ metadata=self._non_null_or_not_given(model_settings.metadata),
544
542
  )
545
543
 
546
544
  if isinstance(ret, ChatCompletion):
@@ -570,6 +568,12 @@ class OpenAIChatCompletionsModel(Model):
570
568
 
571
569
 
572
570
  class _Converter:
571
+ @classmethod
572
+ def get_store_param(cls, client: AsyncOpenAI, model_settings: ModelSettings) -> bool | None:
573
+ # Match the behavior of Responses where store is True when not given
574
+ default_store = True if str(client.base_url).startswith("https://api.openai.com") else None
575
+ return model_settings.store if model_settings.store is not None else default_store
576
+
573
577
  @classmethod
574
578
  def convert_tool_choice(
575
579
  cls, tool_choice: Literal["auto", "required", "none"] | str | None
@@ -63,7 +63,10 @@ async def test_get_all_function_tools():
63
63
 
64
64
  for idx, tool in enumerate(tools):
65
65
  assert isinstance(tool, FunctionTool)
66
- assert tool.params_json_schema == schemas[idx]
66
+ if schemas[idx] == {}:
67
+ assert tool.params_json_schema == snapshot({"properties": {}})
68
+ else:
69
+ assert tool.params_json_schema == schemas[idx]
67
70
  assert tool.name == names[idx]
68
71
 
69
72
  # Also make sure it works with strict schemas
@@ -167,10 +170,7 @@ async def test_agent_convert_schemas_true():
167
170
 
168
171
  # Checks that additionalProperties is set to False
169
172
  assert bar_tool.params_json_schema == snapshot(
170
- {
171
- "type": "object",
172
- "additionalProperties": {"type": "string"},
173
- }
173
+ {"type": "object", "additionalProperties": {"type": "string"}, "properties": {}}
174
174
  )
175
175
  assert bar_tool.strict_json_schema is False, "bar_tool should not be strict"
176
176
 
@@ -220,7 +220,9 @@ async def test_agent_convert_schemas_false():
220
220
  assert foo_tool.params_json_schema == strict_schema
221
221
  assert foo_tool.strict_json_schema is False, "Shouldn't be converted unless specified"
222
222
 
223
- assert bar_tool.params_json_schema == non_strict_schema
223
+ assert bar_tool.params_json_schema == snapshot(
224
+ {"type": "object", "additionalProperties": {"type": "string"}, "properties": {}}
225
+ )
224
226
  assert bar_tool.strict_json_schema is False
225
227
 
226
228
  assert baz_tool.params_json_schema == possible_to_convert_schema
@@ -255,8 +257,35 @@ async def test_agent_convert_schemas_unset():
255
257
  assert foo_tool.params_json_schema == strict_schema
256
258
  assert foo_tool.strict_json_schema is False, "Shouldn't be converted unless specified"
257
259
 
258
- assert bar_tool.params_json_schema == non_strict_schema
260
+ assert bar_tool.params_json_schema == snapshot(
261
+ {"type": "object", "additionalProperties": {"type": "string"}, "properties": {}}
262
+ )
259
263
  assert bar_tool.strict_json_schema is False
260
264
 
261
265
  assert baz_tool.params_json_schema == possible_to_convert_schema
262
266
  assert baz_tool.strict_json_schema is False, "Shouldn't be converted unless specified"
267
+
268
+
269
+ @pytest.mark.asyncio
270
+ async def test_util_adds_properties():
271
+ """The MCP spec doesn't require the inputSchema to have `properties`, so we need to add it
272
+ if it's missing.
273
+ """
274
+ schema = {
275
+ "type": "object",
276
+ "description": "Test tool",
277
+ }
278
+
279
+ server = FakeMCPServer()
280
+ server.add_tool("test_tool", schema)
281
+
282
+ tools = await MCPUtil.get_all_function_tools([server], convert_schemas_to_strict=False)
283
+ tool = next(tool for tool in tools if tool.name == "test_tool")
284
+
285
+ assert isinstance(tool, FunctionTool)
286
+ assert "properties" in tool.params_json_schema
287
+ assert tool.params_json_schema["properties"] == {}
288
+
289
+ assert tool.params_json_schema == snapshot(
290
+ {"type": "object", "description": "Test tool", "properties": {}}
291
+ )
@@ -5,7 +5,7 @@ from typing import Any
5
5
 
6
6
  import httpx
7
7
  import pytest
8
- from openai import NOT_GIVEN
8
+ from openai import NOT_GIVEN, AsyncOpenAI
9
9
  from openai.types.chat.chat_completion import ChatCompletion, Choice
10
10
  from openai.types.chat.chat_completion_chunk import ChatCompletionChunk
11
11
  from openai.types.chat.chat_completion_message import ChatCompletionMessage
@@ -31,6 +31,7 @@ from agents import (
31
31
  generation_span,
32
32
  )
33
33
  from agents.models.fake_id import FAKE_RESPONSES_ID
34
+ from agents.models.openai_chatcompletions import _Converter
34
35
 
35
36
 
36
37
  @pytest.mark.allow_call_model_methods
@@ -226,7 +227,7 @@ async def test_fetch_response_non_stream(monkeypatch) -> None:
226
227
  # Ensure expected args were passed through to OpenAI client.
227
228
  kwargs = completions.kwargs
228
229
  assert kwargs["stream"] is False
229
- assert kwargs["store"] is True
230
+ assert kwargs["store"] is NOT_GIVEN
230
231
  assert kwargs["model"] == "gpt-4"
231
232
  assert kwargs["messages"][0]["role"] == "system"
232
233
  assert kwargs["messages"][0]["content"] == "sys"
@@ -280,7 +281,7 @@ async def test_fetch_response_stream(monkeypatch) -> None:
280
281
  )
281
282
  # Check OpenAI client was called for streaming
282
283
  assert completions.kwargs["stream"] is True
283
- assert completions.kwargs["store"] is True
284
+ assert completions.kwargs["store"] is NOT_GIVEN
284
285
  assert completions.kwargs["stream_options"] == {"include_usage": True}
285
286
  # Response is a proper openai Response
286
287
  assert isinstance(response, Response)
@@ -290,3 +291,39 @@ async def test_fetch_response_stream(monkeypatch) -> None:
290
291
  assert response.output == []
291
292
  # We returned the async iterator produced by our dummy.
292
293
  assert hasattr(stream, "__aiter__")
294
+
295
+
296
+ def test_store_param():
297
+ """Should default to True for OpenAI API calls, and False otherwise."""
298
+
299
+ model_settings = ModelSettings()
300
+ client = AsyncOpenAI()
301
+ assert _Converter.get_store_param(client, model_settings) is True, (
302
+ "Should default to True for OpenAI API calls"
303
+ )
304
+
305
+ model_settings = ModelSettings(store=False)
306
+ assert _Converter.get_store_param(client, model_settings) is False, (
307
+ "Should respect explicitly set store=False"
308
+ )
309
+
310
+ model_settings = ModelSettings(store=True)
311
+ assert _Converter.get_store_param(client, model_settings) is True, (
312
+ "Should respect explicitly set store=True"
313
+ )
314
+
315
+ client = AsyncOpenAI(base_url="http://www.notopenai.com")
316
+ model_settings = ModelSettings()
317
+ assert _Converter.get_store_param(client, model_settings) is None, (
318
+ "Should default to None for non-OpenAI API calls"
319
+ )
320
+
321
+ model_settings = ModelSettings(store=False)
322
+ assert _Converter.get_store_param(client, model_settings) is False, (
323
+ "Should respect explicitly set store=False"
324
+ )
325
+
326
+ model_settings = ModelSettings(store=True)
327
+ assert _Converter.get_store_param(client, model_settings) is True, (
328
+ "Should respect explicitly set store=True"
329
+ )
@@ -1087,7 +1087,7 @@ wheels = [
1087
1087
 
1088
1088
  [[package]]
1089
1089
  name = "openai-agents"
1090
- version = "0.0.8"
1090
+ version = "0.0.9"
1091
1091
  source = { editable = "." }
1092
1092
  dependencies = [
1093
1093
  { name = "griffe" },
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes