pydantic-ai 1.2.1__tar.gz → 1.4.0__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 pydantic-ai might be problematic. Click here for more details.

Files changed (519) hide show
  1. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/PKG-INFO +6 -6
  2. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/README.md +1 -1
  3. pydantic_ai-1.4.0/tests/cassettes/test_temporal/test_web_search_agent_run_in_workflow.yaml +151 -0
  4. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/conftest.py +3 -11
  5. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/evals/test_dataset.py +22 -0
  6. pydantic_ai-1.4.0/tests/models/cassettes/test_anthropic/test_anthropic_mcp_servers.yaml +401 -0
  7. pydantic_ai-1.4.0/tests/models/cassettes/test_anthropic/test_anthropic_mcp_servers_stream.yaml +245 -0
  8. pydantic_ai-1.4.0/tests/models/cassettes/test_bedrock/test_bedrock_model_stream_empty_text_delta.yaml +66 -0
  9. pydantic_ai-1.4.0/tests/models/cassettes/test_openai_responses/test_openai_responses_model_mcp_server_tool.yaml +375 -0
  10. pydantic_ai-1.4.0/tests/models/cassettes/test_openai_responses/test_openai_responses_model_mcp_server_tool_stream.yaml +644 -0
  11. pydantic_ai-1.4.0/tests/models/cassettes/test_openai_responses/test_openai_responses_model_mcp_server_tool_with_connector.yaml +217 -0
  12. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/test_anthropic.py +513 -1
  13. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/test_bedrock.py +32 -0
  14. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/test_deepseek.py +37 -29
  15. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/test_google.py +1 -1
  16. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/test_groq.py +0 -2
  17. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/test_huggingface.py +29 -37
  18. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/test_instrumented.py +45 -12
  19. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/test_model.py +42 -6
  20. pydantic_ai-1.4.0/tests/models/test_model_request_parameters.py +132 -0
  21. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/test_openai.py +1 -1
  22. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/test_openai_responses.py +798 -1
  23. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/cassettes/test_gateway/test_gateway_provider_with_anthropic.yaml +1 -1
  24. pydantic_ai-1.4.0/tests/providers/cassettes/test_gateway/test_gateway_provider_with_bedrock.yaml +50 -0
  25. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/test_gateway.py +70 -33
  26. pydantic_ai-1.4.0/tests/providers/test_ovhcloud.py +109 -0
  27. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/test_provider_names.py +16 -9
  28. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/test_a2a.py +25 -15
  29. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/test_agent.py +103 -102
  30. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/test_examples.py +8 -10
  31. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/test_logfire.py +105 -20
  32. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/test_temporal.py +56 -3
  33. pydantic_ai-1.2.1/tests/models/test_model_request_parameters.py +0 -21
  34. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/.gitignore +0 -0
  35. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/LICENSE +0 -0
  36. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/Makefile +0 -0
  37. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/pyproject.toml +0 -0
  38. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/__init__.py +0 -0
  39. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/assets/dummy.pdf +0 -0
  40. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/assets/dummy.txt +0 -0
  41. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/assets/kiwi.png +0 -0
  42. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/assets/marcelo.mp3 +0 -0
  43. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/assets/product_name.txt +0 -0
  44. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/assets/small_video.mp4 +0 -0
  45. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_dbos/test_complex_agent_run.yaml +0 -0
  46. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_dbos/test_complex_agent_run_in_workflow.yaml +0 -0
  47. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_dbos/test_complex_agent_run_stream_in_workflow.yaml +0 -0
  48. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_dbos/test_dbos_agent_iter.yaml +0 -0
  49. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_dbos/test_dbos_agent_iter_in_workflow.yaml +0 -0
  50. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_dbos/test_dbos_agent_override_deps_in_workflow.yaml +0 -0
  51. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_dbos/test_dbos_agent_override_tools_in_workflow.yaml +0 -0
  52. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_dbos/test_dbos_agent_run.yaml +0 -0
  53. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_dbos/test_dbos_agent_run_in_workflow_with_toolsets.yaml +0 -0
  54. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_dbos/test_dbos_agent_run_stream.yaml +0 -0
  55. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_dbos/test_dbos_agent_run_sync.yaml +0 -0
  56. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_dbos/test_dbos_agent_run_sync_in_workflow.yaml +0 -0
  57. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_dbos/test_dbos_agent_with_dataclass_deps_as_dict.yaml +0 -0
  58. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_dbos/test_dbos_agent_with_hitl_tool.yaml +0 -0
  59. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_dbos/test_dbos_agent_with_hitl_tool_sync.yaml +0 -0
  60. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_dbos/test_dbos_agent_with_model_retry.yaml +0 -0
  61. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_dbos/test_dbos_agent_with_non_dict_deps.yaml +0 -0
  62. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_dbos/test_dbos_agent_with_unserializable_deps_type.yaml +0 -0
  63. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_dbos/test_dbos_model_stream_direct.yaml +0 -0
  64. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_dbos/test_multiple_agents.yaml +0 -0
  65. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_dbos/test_simple_agent_run_in_workflow.yaml +0 -0
  66. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_mcp/test_agent_with_server_not_running.yaml +0 -0
  67. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_mcp/test_agent_with_stdio_server.yaml +0 -0
  68. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_mcp/test_tool_returning_audio_resource.yaml +0 -0
  69. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_mcp/test_tool_returning_audio_resource_link.yaml +0 -0
  70. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_mcp/test_tool_returning_dict.yaml +0 -0
  71. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_mcp/test_tool_returning_error.yaml +0 -0
  72. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_mcp/test_tool_returning_image.yaml +0 -0
  73. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_mcp/test_tool_returning_image_resource.yaml +0 -0
  74. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_mcp/test_tool_returning_image_resource_link.yaml +0 -0
  75. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_mcp/test_tool_returning_multiple_items.yaml +0 -0
  76. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_mcp/test_tool_returning_none.yaml +0 -0
  77. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_mcp/test_tool_returning_str.yaml +0 -0
  78. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_mcp/test_tool_returning_text_resource.yaml +0 -0
  79. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_mcp/test_tool_returning_text_resource_link.yaml +0 -0
  80. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_mcp/test_tool_returning_unstructured_dict.yaml +0 -0
  81. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_prefect/test_complex_agent_run_in_flow.yaml +0 -0
  82. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_prefect/test_iter_in_flow.yaml +0 -0
  83. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_prefect/test_multiple_agents.yaml +0 -0
  84. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_prefect/test_prefect_agent_iter.yaml +0 -0
  85. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_prefect/test_prefect_agent_override_deps.yaml +0 -0
  86. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_prefect/test_prefect_agent_override_tools.yaml +0 -0
  87. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_prefect/test_prefect_agent_override_toolsets.yaml +0 -0
  88. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_prefect/test_prefect_agent_run.yaml +0 -0
  89. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_prefect/test_prefect_agent_run_stream.yaml +0 -0
  90. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_prefect/test_prefect_agent_run_stream_events.yaml +0 -0
  91. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_prefect/test_prefect_agent_run_sync.yaml +0 -0
  92. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_prefect/test_prefect_agent_with_hitl_tool.yaml +0 -0
  93. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_prefect/test_prefect_agent_with_hitl_tool_sync.yaml +0 -0
  94. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_prefect/test_prefect_agent_with_model_retry.yaml +0 -0
  95. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_prefect/test_prefect_agent_with_unserializable_deps.yaml +0 -0
  96. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_prefect/test_run_stream_in_flow.yaml +0 -0
  97. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_prefect/test_run_sync_in_flow.yaml +0 -0
  98. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_prefect/test_simple_agent_run_in_flow.yaml +0 -0
  99. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_settings/test_stop_settings[anthropic].yaml +0 -0
  100. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_settings/test_stop_settings[bedrock].yaml +0 -0
  101. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_settings/test_stop_settings[cohere].yaml +0 -0
  102. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_settings/test_stop_settings[gemini].yaml +0 -0
  103. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_settings/test_stop_settings[google].yaml +0 -0
  104. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_settings/test_stop_settings[groq].yaml +0 -0
  105. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_settings/test_stop_settings[mistral].yaml +0 -0
  106. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_settings/test_stop_settings[openai].yaml +0 -0
  107. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_temporal/test_complex_agent_run.yaml +0 -0
  108. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_temporal/test_complex_agent_run_in_workflow.yaml +0 -0
  109. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_temporal/test_complex_agent_run_stream_in_workflow.yaml +0 -0
  110. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_temporal/test_logfire_plugin.yaml +0 -0
  111. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_temporal/test_multiple_agents.yaml +0 -0
  112. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_temporal/test_simple_agent_run_in_workflow.yaml +0 -0
  113. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_temporal/test_temporal_agent_iter.yaml +0 -0
  114. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_temporal/test_temporal_agent_override_deps_in_workflow.yaml +0 -0
  115. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_temporal/test_temporal_agent_run.yaml +0 -0
  116. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_temporal/test_temporal_agent_run_stream.yaml +0 -0
  117. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_temporal/test_temporal_agent_run_stream_events.yaml +0 -0
  118. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_temporal/test_temporal_agent_run_sync.yaml +0 -0
  119. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_temporal/test_temporal_agent_sync_tool_activity_disabled.yaml +0 -0
  120. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_temporal/test_temporal_agent_with_dataclass_deps_as_dict.yaml +0 -0
  121. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_temporal/test_temporal_agent_with_hitl_tool.yaml +0 -0
  122. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_temporal/test_temporal_agent_with_model_retry.yaml +0 -0
  123. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_temporal/test_temporal_agent_with_non_dict_deps.yaml +0 -0
  124. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/cassettes/test_temporal/test_temporal_agent_with_unserializable_deps_type.yaml +0 -0
  125. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/evals/__init__.py +0 -0
  126. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/evals/test_evaluator_base.py +0 -0
  127. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/evals/test_evaluator_common.py +0 -0
  128. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/evals/test_evaluator_context.py +0 -0
  129. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/evals/test_evaluator_spec.py +0 -0
  130. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/evals/test_evaluators.py +0 -0
  131. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/evals/test_llm_as_a_judge.py +0 -0
  132. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/evals/test_otel.py +0 -0
  133. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/evals/test_render_numbers.py +0 -0
  134. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/evals/test_reporting.py +0 -0
  135. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/evals/test_reports.py +0 -0
  136. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/evals/test_utils.py +0 -0
  137. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/evals/utils.py +0 -0
  138. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/example_modules/README.md +0 -0
  139. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/example_modules/bank_database.py +0 -0
  140. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/example_modules/fake_database.py +0 -0
  141. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/example_modules/mcp_server.py +0 -0
  142. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/example_modules/weather_service.py +0 -0
  143. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/ext/__init__.py +0 -0
  144. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/ext/test_langchain.py +0 -0
  145. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/graph/__init__.py +0 -0
  146. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/graph/test_file_persistence.py +0 -0
  147. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/graph/test_graph.py +0 -0
  148. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/graph/test_mermaid.py +0 -0
  149. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/graph/test_persistence.py +0 -0
  150. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/graph/test_state.py +0 -0
  151. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/graph/test_utils.py +0 -0
  152. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/import_examples.py +0 -0
  153. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/json_body_serializer.py +0 -0
  154. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/mcp_server.py +0 -0
  155. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/__init__.py +0 -0
  156. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_anthropic/test_anthropic_code_execution_tool.yaml +0 -0
  157. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_anthropic/test_anthropic_code_execution_tool_stream.yaml +0 -0
  158. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_anthropic/test_anthropic_memory_tool.yaml +0 -0
  159. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_anthropic/test_anthropic_model_empty_message_on_history.yaml +0 -0
  160. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_anthropic/test_anthropic_model_instructions.yaml +0 -0
  161. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part.yaml +0 -0
  162. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part_from_other_model.yaml +0 -0
  163. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part_redacted.yaml +0 -0
  164. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part_redacted_stream.yaml +0 -0
  165. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part_stream.yaml +0 -0
  166. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_anthropic/test_anthropic_model_web_search_tool_stream.yaml +0 -0
  167. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_anthropic/test_anthropic_output_tool_with_thinking.yaml +0 -0
  168. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_anthropic/test_anthropic_prompted_output.yaml +0 -0
  169. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_anthropic/test_anthropic_prompted_output_multiple.yaml +0 -0
  170. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_anthropic/test_anthropic_server_tool_pass_history_to_another_provider.yaml +0 -0
  171. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_anthropic/test_anthropic_server_tool_receive_history_from_another_provider.yaml +0 -0
  172. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_anthropic/test_anthropic_text_output_function.yaml +0 -0
  173. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_anthropic/test_anthropic_text_parts_ahead_of_built_in_tool_call.yaml +0 -0
  174. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_anthropic/test_anthropic_tool_output.yaml +0 -0
  175. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_anthropic/test_anthropic_tool_with_thinking.yaml +0 -0
  176. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_anthropic/test_anthropic_web_search_tool.yaml +0 -0
  177. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_anthropic/test_anthropic_web_search_tool_stream.yaml +0 -0
  178. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_anthropic/test_document_binary_content_input.yaml +0 -0
  179. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_anthropic/test_document_url_input.yaml +0 -0
  180. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_anthropic/test_extra_headers.yaml +0 -0
  181. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_anthropic/test_image_as_binary_content_tool_response.yaml +0 -0
  182. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_anthropic/test_image_url_input.yaml +0 -0
  183. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_anthropic/test_image_url_input_invalid_mime_type.yaml +0 -0
  184. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_anthropic/test_multiple_parallel_tool_calls.yaml +0 -0
  185. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_anthropic/test_text_document_url_input.yaml +0 -0
  186. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_anthropic_tool_with_thinking.yaml +0 -0
  187. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_empty_system_prompt.yaml +0 -0
  188. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_model.yaml +0 -0
  189. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_anthropic_model_without_tools.yaml +0 -0
  190. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_guardrail_config.yaml +0 -0
  191. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_instructions.yaml +0 -0
  192. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_iter_stream.yaml +0 -0
  193. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_max_tokens.yaml +0 -0
  194. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_other_parameters.yaml +0 -0
  195. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_performance_config.yaml +0 -0
  196. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_retry.yaml +0 -0
  197. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_stream.yaml +0 -0
  198. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_structured_output.yaml +0 -0
  199. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_anthropic.yaml +0 -0
  200. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_deepseek.yaml +0 -0
  201. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_from_other_model.yaml +0 -0
  202. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_redacted.yaml +0 -0
  203. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_redacted_stream.yaml +0 -0
  204. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_stream.yaml +0 -0
  205. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_top_p.yaml +0 -0
  206. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_multiple_documents_in_history.yaml +0 -0
  207. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_bedrock/test_document_url_input.yaml +0 -0
  208. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_bedrock/test_image_as_binary_content_input.yaml +0 -0
  209. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_bedrock/test_image_url_input.yaml +0 -0
  210. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_bedrock/test_text_as_binary_content_input.yaml +0 -0
  211. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_bedrock/test_text_document_url_input.yaml +0 -0
  212. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_bedrock/test_video_as_binary_content_input.yaml +0 -0
  213. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_bedrock/test_video_url_input.yaml +0 -0
  214. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_cohere/test_cohere_model_instructions.yaml +0 -0
  215. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_cohere/test_cohere_model_thinking_part.yaml +0 -0
  216. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_cohere/test_request_simple_success_with_vcr.yaml +0 -0
  217. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_deepseek/test_deepseek_model_thinking_part.yaml +0 -0
  218. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_deepseek/test_deepseek_model_thinking_stream.yaml +0 -0
  219. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_download_item/test_download_item_application_octet_stream.yaml +0 -0
  220. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_download_item/test_download_item_audio_mpeg.yaml +0 -0
  221. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_download_item/test_download_item_no_content_type.yaml +0 -0
  222. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_gemini/test_document_url_input.yaml +0 -0
  223. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_false.yaml +0 -0
  224. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_true.yaml +0 -0
  225. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_gemini/test_gemini_drop_exclusive_maximum.yaml +0 -0
  226. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_gemini/test_gemini_exclusive_minimum_and_maximum.yaml +0 -0
  227. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_gemini/test_gemini_model_instructions.yaml +0 -0
  228. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_gemini/test_gemini_model_thinking_part.yaml +0 -0
  229. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_gemini/test_gemini_native_output.yaml +0 -0
  230. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_gemini/test_gemini_native_output_multiple.yaml +0 -0
  231. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_gemini/test_gemini_prompted_output.yaml +0 -0
  232. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_gemini/test_gemini_prompted_output_multiple.yaml +0 -0
  233. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_gemini/test_gemini_prompted_output_with_tools.yaml +0 -0
  234. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_gemini/test_gemini_text_output_function.yaml +0 -0
  235. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_gemini/test_gemini_tool_config_any_with_tool_without_args.yaml +0 -0
  236. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_gemini/test_gemini_tool_output.yaml +0 -0
  237. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_gemini/test_gemini_youtube_video_url_input.yaml +0 -0
  238. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_gemini/test_image_as_binary_content_input.yaml +0 -0
  239. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_gemini/test_image_as_binary_content_tool_response.yaml +0 -0
  240. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_gemini/test_image_url_input.yaml +0 -0
  241. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_gemini/test_labels_are_ignored_with_gla_provider.yaml +0 -0
  242. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_gemini/test_video_as_binary_content_input.yaml +0 -0
  243. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_gemini/test_video_url_input.yaml +0 -0
  244. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_gemini_vertex/test_labels.yaml +0 -0
  245. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_gemini_vertex/test_url_input[AudioUrl (gs)].yaml +0 -0
  246. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_gemini_vertex/test_url_input[AudioUrl].yaml +0 -0
  247. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_gemini_vertex/test_url_input[DocumentUrl (gs)].yaml +0 -0
  248. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_gemini_vertex/test_url_input[DocumentUrl].yaml +0 -0
  249. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_gemini_vertex/test_url_input[ImageUrl (gs)].yaml +0 -0
  250. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_gemini_vertex/test_url_input[ImageUrl].yaml +0 -0
  251. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl (YouTube)].yaml +0 -0
  252. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl (gs)].yaml +0 -0
  253. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl].yaml +0 -0
  254. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_gemini_vertex/test_url_input_force_download.yaml +0 -0
  255. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_builtin_tools_with_other_tools.yaml +0 -0
  256. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_image_and_text_output.yaml +0 -0
  257. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_image_generation.yaml +0 -0
  258. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_image_generation_stream.yaml +0 -0
  259. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_image_generation_with_text.yaml +0 -0
  260. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_image_or_text_output.yaml +0 -0
  261. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model.yaml +0 -0
  262. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_builtin_code_execution_stream.yaml +0 -0
  263. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_code_execution_tool.yaml +0 -0
  264. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_document_url_input.yaml +0 -0
  265. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_empty_assistant_response.yaml +0 -0
  266. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_empty_user_prompt.yaml +0 -0
  267. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_image_as_binary_content_input.yaml +0 -0
  268. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_image_url_input.yaml +0 -0
  269. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_instructions.yaml +0 -0
  270. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_iter_stream.yaml +0 -0
  271. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_max_tokens.yaml +0 -0
  272. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_multiple_documents_in_history.yaml +0 -0
  273. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_receive_web_search_history_from_another_provider.yaml +0 -0
  274. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_retry.yaml +0 -0
  275. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_safety_settings.yaml +0 -0
  276. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_server_tool_receive_history_from_another_provider.yaml +0 -0
  277. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_stream.yaml +0 -0
  278. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_structured_output.yaml +0 -0
  279. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_text_as_binary_content_input.yaml +0 -0
  280. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_text_document_url_input.yaml +0 -0
  281. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_thinking_config.yaml +0 -0
  282. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_thinking_part.yaml +0 -0
  283. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_thinking_part_from_other_model.yaml +0 -0
  284. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_thinking_part_iter.yaml +0 -0
  285. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_top_p.yaml +0 -0
  286. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_url_context_tool.yaml +0 -0
  287. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_usage_limit_exceeded.yaml +0 -0
  288. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_usage_limit_not_exceeded.yaml +0 -0
  289. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_vertex_labels.yaml +0 -0
  290. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_vertex_provider.yaml +0 -0
  291. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_video_as_binary_content_input.yaml +0 -0
  292. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_video_as_binary_content_input_with_vendor_metadata.yaml +0 -0
  293. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_video_url_input.yaml +0 -0
  294. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_web_search_tool.yaml +0 -0
  295. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_web_search_tool_stream.yaml +0 -0
  296. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_model_youtube_video_url_input_with_vendor_metadata.yaml +0 -0
  297. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_multiple_images.yaml +0 -0
  298. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_native_output.yaml +0 -0
  299. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_native_output_multiple.yaml +0 -0
  300. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_prompted_output.yaml +0 -0
  301. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_prompted_output_multiple.yaml +0 -0
  302. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_prompted_output_with_tools.yaml +0 -0
  303. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_text_output_function.yaml +0 -0
  304. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_timeout.yaml +0 -0
  305. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_tool_config_any_with_tool_without_args.yaml +0 -0
  306. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_tool_output.yaml +0 -0
  307. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_url_input[AudioUrl (gs)].yaml +0 -0
  308. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_url_input[AudioUrl].yaml +0 -0
  309. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_url_input[DocumentUrl (gs)].yaml +0 -0
  310. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_url_input[DocumentUrl].yaml +0 -0
  311. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_url_input[ImageUrl (gs)].yaml +0 -0
  312. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_url_input[ImageUrl].yaml +0 -0
  313. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl (YouTube)].yaml +0 -0
  314. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl (gs)].yaml +0 -0
  315. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl].yaml +0 -0
  316. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_url_input_force_download.yaml +0 -0
  317. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_vertexai_image_generation.yaml +0 -0
  318. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_google/test_google_vertexai_model_usage_limit_exceeded.yaml +0 -0
  319. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_groq/test_extra_headers.yaml +0 -0
  320. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_groq/test_groq_model_instructions.yaml +0 -0
  321. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_groq/test_groq_model_thinking_part.yaml +0 -0
  322. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_groq/test_groq_model_thinking_part_iter.yaml +0 -0
  323. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_groq/test_groq_model_web_search_tool.yaml +0 -0
  324. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_groq/test_groq_model_web_search_tool_stream.yaml +0 -0
  325. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_groq/test_groq_native_output.yaml +0 -0
  326. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_groq/test_groq_prompted_output.yaml +0 -0
  327. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_groq/test_image_as_binary_content_input.yaml +0 -0
  328. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_groq/test_image_as_binary_content_tool_response.yaml +0 -0
  329. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_groq/test_image_url_input.yaml +0 -0
  330. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_groq/test_tool_regular_error.yaml +0 -0
  331. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_groq/test_tool_use_failed_error.yaml +0 -0
  332. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_groq/test_tool_use_failed_error_streaming.yaml +0 -0
  333. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_huggingface/test_hf_model_instructions.yaml +0 -0
  334. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_huggingface/test_hf_model_thinking_part.yaml +0 -0
  335. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_huggingface/test_hf_model_thinking_part_iter.yaml +0 -0
  336. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_huggingface/test_image_as_binary_content_input.yaml +0 -0
  337. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_huggingface/test_image_url_input.yaml +0 -0
  338. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_huggingface/test_max_completion_tokens[Qwen-Qwen2.5-72B-Instruct].yaml +0 -0
  339. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_huggingface/test_max_completion_tokens[deepseek-ai-DeepSeek-R1-0528].yaml +0 -0
  340. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_huggingface/test_max_completion_tokens[meta-llama-Llama-3.3-70B-Instruct].yaml +0 -0
  341. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_huggingface/test_request_simple_success_with_vcr.yaml +0 -0
  342. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_huggingface/test_request_simple_usage.yaml +0 -0
  343. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_huggingface/test_simple_completion.yaml +0 -0
  344. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_huggingface/test_stream_completion.yaml +0 -0
  345. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_mistral/test_image_as_binary_content_tool_response.yaml +0 -0
  346. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_mistral/test_mistral_model_instructions.yaml +0 -0
  347. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_mistral/test_mistral_model_thinking_part.yaml +0 -0
  348. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_mistral/test_mistral_model_thinking_part_iter.yaml +0 -0
  349. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_model_names/test_known_model_names.yaml +0 -0
  350. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_audio_as_binary_content_input.yaml +0 -0
  351. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_compatible_api_with_tool_calls_without_id.yaml +0 -0
  352. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_document_as_binary_content_input.yaml +0 -0
  353. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_document_as_binary_content_input_with_tool.yaml +0 -0
  354. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_document_url_input.yaml +0 -0
  355. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_extra_headers.yaml +0 -0
  356. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_image_as_binary_content_input.yaml +0 -0
  357. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_image_as_binary_content_tool_response.yaml +0 -0
  358. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_image_url_input_force_download.yaml +0 -0
  359. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_image_url_input_force_download_response_api.yaml +0 -0
  360. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_image_url_tool_response.yaml +0 -0
  361. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_invalid_response.yaml +0 -0
  362. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4.5-preview].yaml +0 -0
  363. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4o-mini].yaml +0 -0
  364. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_max_completion_tokens[o3-mini].yaml +0 -0
  365. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_multiple_agent_tool_calls.yaml +0 -0
  366. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_openai_audio_url_input.yaml +0 -0
  367. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_openai_instructions.yaml +0 -0
  368. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_openai_instructions_with_tool_calls_keep_instructions.yaml +0 -0
  369. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_openai_model_cerebras_provider.yaml +0 -0
  370. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_openai_model_cerebras_provider_harmony.yaml +0 -0
  371. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_openai_model_cerebras_provider_qwen_3_coder.yaml +0 -0
  372. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_openai_model_settings_temperature_ignored_on_gpt_5.yaml +0 -0
  373. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_openai_model_thinking_part.yaml +0 -0
  374. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_openai_model_without_system_prompt.yaml +0 -0
  375. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_openai_native_output.yaml +0 -0
  376. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_openai_native_output_multiple.yaml +0 -0
  377. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[developer].yaml +0 -0
  378. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[system].yaml +0 -0
  379. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_openai_prompted_output.yaml +0 -0
  380. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_openai_prompted_output_multiple.yaml +0 -0
  381. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_openai_text_output_function.yaml +0 -0
  382. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_openai_tool_output.yaml +0 -0
  383. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_openai_web_search_tool.yaml +0 -0
  384. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_openai_web_search_tool_model_not_supported.yaml +0 -0
  385. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_openai_web_search_tool_with_user_location.yaml +0 -0
  386. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_reasoning_model_with_temperature.yaml +0 -0
  387. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_system_prompt_role_o1_mini.yaml +0 -0
  388. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_text_document_as_binary_content_input.yaml +0 -0
  389. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_text_document_url_input.yaml +0 -0
  390. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_text_response.yaml +0 -0
  391. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_user_id.yaml +0 -0
  392. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai/test_valid_response.yaml +0 -0
  393. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_audio_as_binary_content_input.yaml +0 -0
  394. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_input.yaml +0 -0
  395. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_tool_response.yaml +0 -0
  396. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_native_output.yaml +0 -0
  397. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_native_output_multiple.yaml +0 -0
  398. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_previous_response_id.yaml +0 -0
  399. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_previous_response_id_auto_mode.yaml +0 -0
  400. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_code_execution_return_image.yaml +0 -0
  401. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_code_execution_return_image_stream.yaml +0 -0
  402. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_as_binary_content_input.yaml +0 -0
  403. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_url_input.yaml +0 -0
  404. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_history_with_combined_tool_call_id.yaml +0 -0
  405. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_and_text_output.yaml +0 -0
  406. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_generation.yaml +0 -0
  407. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_generation_jpeg.yaml +0 -0
  408. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_generation_stream.yaml +0 -0
  409. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_generation_tool_without_image_output.yaml +0 -0
  410. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_generation_with_native_output.yaml +0 -0
  411. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_generation_with_prompted_output.yaml +0 -0
  412. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_generation_with_tool_output.yaml +0 -0
  413. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_generation_with_tools.yaml +0 -0
  414. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_or_text_output.yaml +0 -0
  415. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_url_input.yaml +0 -0
  416. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_builtin_tools.yaml +0 -0
  417. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_builtin_tools_web_search.yaml +0 -0
  418. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_http_error.yaml +0 -0
  419. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_instructions.yaml +0 -0
  420. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_retry.yaml +0 -0
  421. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response.yaml +0 -0
  422. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response_with_tool_call.yaml +0 -0
  423. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_thinking_part.yaml +0 -0
  424. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_web_search_tool.yaml +0 -0
  425. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_web_search_tool_stream.yaml +0 -0
  426. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_web_search_tool_with_invalid_region.yaml +0 -0
  427. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_web_search_tool_with_user_location.yaml +0 -0
  428. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_multiple_images.yaml +0 -0
  429. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_non_reasoning_model_no_item_ids.yaml +0 -0
  430. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_output_type.yaml +0 -0
  431. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_effort.yaml +0 -0
  432. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_generate_summary.yaml +0 -0
  433. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_stream.yaml +0 -0
  434. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_streaming_usage.yaml +0 -0
  435. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_system_prompt.yaml +0 -0
  436. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_text_document_url_input.yaml +0 -0
  437. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_thinking_part_from_other_model.yaml +0 -0
  438. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_thinking_part_iter.yaml +0 -0
  439. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_thinking_with_code_execution_tool.yaml +0 -0
  440. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_thinking_with_code_execution_tool_stream.yaml +0 -0
  441. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_thinking_with_modified_history.yaml +0 -0
  442. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_thinking_with_tool_calls.yaml +0 -0
  443. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_verbosity.yaml +0 -0
  444. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_prompted_output.yaml +0 -0
  445. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_prompted_output_multiple.yaml +0 -0
  446. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_reasoning_model_with_temperature.yaml +0 -0
  447. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_text_output_function.yaml +0 -0
  448. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/cassettes/test_openai_responses/test_tool_output.yaml +0 -0
  449. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/mock_async_stream.py +0 -0
  450. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/mock_openai.py +0 -0
  451. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/test_cohere.py +0 -0
  452. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/test_download_item.py +0 -0
  453. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/test_fallback.py +0 -0
  454. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/test_gemini.py +0 -0
  455. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/test_gemini_vertex.py +0 -0
  456. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/test_mcp_sampling.py +0 -0
  457. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/test_mistral.py +0 -0
  458. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/test_model_function.py +0 -0
  459. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/test_model_names.py +0 -0
  460. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/test_model_settings.py +0 -0
  461. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/models/test_model_test.py +0 -0
  462. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/parts_from_messages.py +0 -0
  463. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/__init__.py +0 -0
  464. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/cassettes/test_azure/test_azure_provider_call.yaml +0 -0
  465. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/cassettes/test_gateway/test_gateway_provider_with_google_vertex.yaml +0 -0
  466. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/cassettes/test_gateway/test_gateway_provider_with_groq.yaml +0 -0
  467. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/cassettes/test_gateway/test_gateway_provider_with_openai.yaml +0 -0
  468. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/cassettes/test_gateway/test_gateway_provider_with_openai_responses.yaml +0 -0
  469. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/cassettes/test_google_vertex/test_vertexai_provider.yaml +0 -0
  470. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/cassettes/test_heroku/test_heroku_model_provider_claude_3_7_sonnet.yaml +0 -0
  471. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/cassettes/test_openrouter/test_openrouter_with_google_model.yaml +0 -0
  472. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/test_anthropic.py +0 -0
  473. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/test_azure.py +0 -0
  474. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/test_bedrock.py +0 -0
  475. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/test_cerebras.py +0 -0
  476. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/test_cohere.py +0 -0
  477. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/test_deepseek.py +0 -0
  478. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/test_fireworks.py +0 -0
  479. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/test_github.py +0 -0
  480. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/test_google_gla.py +0 -0
  481. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/test_google_vertex.py +0 -0
  482. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/test_grok.py +0 -0
  483. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/test_groq.py +0 -0
  484. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/test_heroku.py +0 -0
  485. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/test_huggingface.py +0 -0
  486. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/test_litellm.py +0 -0
  487. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/test_mistral.py +0 -0
  488. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/test_moonshotai.py +0 -0
  489. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/test_nebius.py +0 -0
  490. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/test_ollama.py +0 -0
  491. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/test_openai.py +0 -0
  492. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/test_openrouter.py +0 -0
  493. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/test_together.py +0 -0
  494. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/providers/test_vercel.py +0 -0
  495. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/test_ag_ui.py +0 -0
  496. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/test_builtin_tools.py +0 -0
  497. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/test_cli.py +0 -0
  498. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/test_dbos.py +0 -0
  499. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/test_deps.py +0 -0
  500. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/test_direct.py +0 -0
  501. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/test_format_as_xml.py +0 -0
  502. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/test_function_schema.py +0 -0
  503. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/test_history_processor.py +0 -0
  504. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/test_json_body_serializer.py +0 -0
  505. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/test_live.py +0 -0
  506. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/test_mcp.py +0 -0
  507. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/test_messages.py +0 -0
  508. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/test_parts_manager.py +0 -0
  509. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/test_prefect.py +0 -0
  510. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/test_settings.py +0 -0
  511. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/test_streaming.py +0 -0
  512. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/test_tenacity.py +0 -0
  513. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/test_thinking_part.py +0 -0
  514. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/test_tools.py +0 -0
  515. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/test_toolsets.py +0 -0
  516. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/test_usage_limits.py +0 -0
  517. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/test_utils.py +0 -0
  518. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/typed_agent.py +0 -0
  519. {pydantic_ai-1.2.1 → pydantic_ai-1.4.0}/tests/typed_graph.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pydantic-ai
3
- Version: 1.2.1
3
+ Version: 1.4.0
4
4
  Summary: Agent Framework / shim to use Pydantic with LLMs
5
5
  Project-URL: Homepage, https://ai.pydantic.dev
6
6
  Project-URL: Source, https://github.com/pydantic/pydantic-ai
@@ -26,15 +26,15 @@ Classifier: Topic :: Internet
26
26
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
27
27
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
28
28
  Requires-Python: >=3.10
29
- Requires-Dist: pydantic-ai-slim[ag-ui,anthropic,bedrock,cli,cohere,evals,google,groq,huggingface,logfire,mcp,mistral,openai,retries,temporal,vertexai]==1.2.1
29
+ Requires-Dist: pydantic-ai-slim[ag-ui,anthropic,bedrock,cli,cohere,evals,google,groq,huggingface,logfire,mcp,mistral,openai,retries,temporal,vertexai]==1.4.0
30
30
  Provides-Extra: a2a
31
31
  Requires-Dist: fasta2a>=0.4.1; extra == 'a2a'
32
32
  Provides-Extra: dbos
33
- Requires-Dist: pydantic-ai-slim[dbos]==1.2.1; extra == 'dbos'
33
+ Requires-Dist: pydantic-ai-slim[dbos]==1.4.0; extra == 'dbos'
34
34
  Provides-Extra: examples
35
- Requires-Dist: pydantic-ai-examples==1.2.1; extra == 'examples'
35
+ Requires-Dist: pydantic-ai-examples==1.4.0; extra == 'examples'
36
36
  Provides-Extra: prefect
37
- Requires-Dist: pydantic-ai-slim[prefect]==1.2.1; extra == 'prefect'
37
+ Requires-Dist: pydantic-ai-slim[prefect]==1.4.0; extra == 'prefect'
38
38
  Description-Content-Type: text/markdown
39
39
 
40
40
  <div align="center">
@@ -78,7 +78,7 @@ We built Pydantic AI with one simple aim: to bring that FastAPI feeling to GenAI
78
78
  [Pydantic Validation](https://docs.pydantic.dev/latest/) is the validation layer of the OpenAI SDK, the Google ADK, the Anthropic SDK, LangChain, LlamaIndex, AutoGPT, Transformers, CrewAI, Instructor and many more. _Why use the derivative when you can go straight to the source?_ :smiley:
79
79
 
80
80
  2. **Model-agnostic**:
81
- Supports virtually every [model](https://ai.pydantic.dev/models/overview) and provider: OpenAI, Anthropic, Gemini, DeepSeek, Grok, Cohere, Mistral, and Perplexity; Azure AI Foundry, Amazon Bedrock, Google Vertex AI, Ollama, LiteLLM, Groq, OpenRouter, Together AI, Fireworks AI, Cerebras, Hugging Face, GitHub, Heroku, Vercel, Nebius. If your favorite model or provider is not listed, you can easily implement a [custom model](https://ai.pydantic.dev/models/overview#custom-models).
81
+ Supports virtually every [model](https://ai.pydantic.dev/models/overview) and provider: OpenAI, Anthropic, Gemini, DeepSeek, Grok, Cohere, Mistral, and Perplexity; Azure AI Foundry, Amazon Bedrock, Google Vertex AI, Ollama, LiteLLM, Groq, OpenRouter, Together AI, Fireworks AI, Cerebras, Hugging Face, GitHub, Heroku, Vercel, Nebius, OVHcloud. If your favorite model or provider is not listed, you can easily implement a [custom model](https://ai.pydantic.dev/models/overview#custom-models).
82
82
 
83
83
  3. **Seamless Observability**:
84
84
  Tightly [integrates](https://ai.pydantic.dev/logfire) with [Pydantic Logfire](https://pydantic.dev/logfire), our general-purpose OpenTelemetry observability platform, for real-time debugging, evals-based performance monitoring, and behavior, tracing, and cost tracking. If you already have an observability platform that supports OTel, you can [use that too](https://ai.pydantic.dev/logfire#alternative-observability-backends).
@@ -39,7 +39,7 @@ We built Pydantic AI with one simple aim: to bring that FastAPI feeling to GenAI
39
39
  [Pydantic Validation](https://docs.pydantic.dev/latest/) is the validation layer of the OpenAI SDK, the Google ADK, the Anthropic SDK, LangChain, LlamaIndex, AutoGPT, Transformers, CrewAI, Instructor and many more. _Why use the derivative when you can go straight to the source?_ :smiley:
40
40
 
41
41
  2. **Model-agnostic**:
42
- Supports virtually every [model](https://ai.pydantic.dev/models/overview) and provider: OpenAI, Anthropic, Gemini, DeepSeek, Grok, Cohere, Mistral, and Perplexity; Azure AI Foundry, Amazon Bedrock, Google Vertex AI, Ollama, LiteLLM, Groq, OpenRouter, Together AI, Fireworks AI, Cerebras, Hugging Face, GitHub, Heroku, Vercel, Nebius. If your favorite model or provider is not listed, you can easily implement a [custom model](https://ai.pydantic.dev/models/overview#custom-models).
42
+ Supports virtually every [model](https://ai.pydantic.dev/models/overview) and provider: OpenAI, Anthropic, Gemini, DeepSeek, Grok, Cohere, Mistral, and Perplexity; Azure AI Foundry, Amazon Bedrock, Google Vertex AI, Ollama, LiteLLM, Groq, OpenRouter, Together AI, Fireworks AI, Cerebras, Hugging Face, GitHub, Heroku, Vercel, Nebius, OVHcloud. If your favorite model or provider is not listed, you can easily implement a [custom model](https://ai.pydantic.dev/models/overview#custom-models).
43
43
 
44
44
  3. **Seamless Observability**:
45
45
  Tightly [integrates](https://ai.pydantic.dev/logfire) with [Pydantic Logfire](https://pydantic.dev/logfire), our general-purpose OpenTelemetry observability platform, for real-time debugging, evals-based performance monitoring, and behavior, tracing, and cost tracking. If you already have an observability platform that supports OTel, you can [use that too](https://ai.pydantic.dev/logfire#alternative-observability-backends).
@@ -0,0 +1,151 @@
1
+ interactions:
2
+ - request:
3
+ headers:
4
+ accept:
5
+ - application/json
6
+ accept-encoding:
7
+ - gzip, deflate
8
+ connection:
9
+ - keep-alive
10
+ content-length:
11
+ - '336'
12
+ content-type:
13
+ - application/json
14
+ host:
15
+ - api.openai.com
16
+ method: POST
17
+ parsed_body:
18
+ include:
19
+ - reasoning.encrypted_content
20
+ input:
21
+ - content: In one sentence, what is the top news story in my country today?
22
+ role: user
23
+ model: gpt-5
24
+ stream: false
25
+ tool_choice: auto
26
+ tools:
27
+ - search_context_size: medium
28
+ type: web_search
29
+ user_location:
30
+ city: Mexico City
31
+ country: MX
32
+ type: approximate
33
+ uri: https://api.openai.com/v1/responses
34
+ response:
35
+ headers:
36
+ alt-svc:
37
+ - h3=":443"; ma=86400
38
+ connection:
39
+ - keep-alive
40
+ content-length:
41
+ - '12089'
42
+ content-type:
43
+ - application/json
44
+ openai-organization:
45
+ - pydantic-28gund
46
+ openai-processing-ms:
47
+ - '45591'
48
+ openai-project:
49
+ - proj_dKobscVY9YJxeEaDJen54e3d
50
+ openai-version:
51
+ - '2020-10-01'
52
+ strict-transport-security:
53
+ - max-age=31536000; includeSubDomains; preload
54
+ transfer-encoding:
55
+ - chunked
56
+ parsed_body:
57
+ background: false
58
+ billing:
59
+ payer: developer
60
+ created_at: 1760537022
61
+ error: null
62
+ id: resp_0cc772278fa4f4140068efa9be8878819ca691ebcbe9f1f6be
63
+ incomplete_details: null
64
+ instructions: null
65
+ max_output_tokens: null
66
+ max_tool_calls: null
67
+ metadata: {}
68
+ model: gpt-5-2025-08-07
69
+ object: response
70
+ output:
71
+ - encrypted_content: gAAAAABo76nsGZ3D61NVA0XbnShNHmz5T4RonYmRGx_pRGkEbVDw7m4Ld84NA0js4svXie5FHgTxnkjohBfv597Y9YkQPDKDKkT80tQ41fo4SYkJ4r3BUtgD-DNrpssBBlK_uT-FfWeJlwTTvz6hfl1jP8NK54ZThlLzeSyhoDkQoiJf7d7rmjro49oy8owOCGlod1oiBBcZoF4zXL04lZXeOmrN40e6zIrEXGIb-iC2NL7O2R3GbipQcbq6zy2RpIbmjgmXRTWjtaMmWcJwry4oqYsud2UHojpkhXeN-0Yh4gPfzWbgvYDO47Lc48t5UkNDuBLXezNyRX_Pmlocn-h9RKNEdkq1iZau4UyY_1Fo8LKm0hQuE4x4ZKzRed2KJM4YjwSomtcGshDGKmZw94kabHY9tDI6y5-mWFhHqvjZt50xJukx2iOC6KKKk0iKiqcCeNb4r2K0G_xhLIS-sjbG9rv_762G3AiZ041xEwbStrqovRuTu52YV6b70gnuzvEG0QF9hToUpbZZQx1prAIE1WILXAZrDxvHB2czq2PF3WP0QGWdbJpO3ZSm9osjX1qqNgoiOArBUYtOQUbYM7JtLz92Es53GVeIXlHSlE_VT92ISO6n8UyAGLYuWLd-nTELBbsjNWmOo1LFpUsi7h0rVR0pbs2jTUDRLCn74ucVxYX45dTx0P-OKfNrKDQNaRCyvi-oCFdrJUc-ecm-EaVoqz0b63HHzhKNXFsmPeFZl5gtGnXARqXrbcBgel-wviXlMLt8KaWWMrEU_yq8KjACNeQy8POZsimzWT95oMAjD_J35JgeXajkYIFHuh1ZRb0awKdXPCUp6kR-nL_cBZco6nZARImw-9VR7527KT30aGvPhSYCrtqP9QXmI94IB9mYvGsCCj1ooQ3JW4nzvThJ3KN9xNZaMkvE_pORulsxPLfKfELoy7i74HWBZ7X5_7zLB-Rv-Zj58YJiFtpVYGSzKd2UfbI8GvYaakGFfN2LqzG4k2UA2rIh97nbMfbdVtUL0PuINsHc2Qr1aHbeaiHavya4QCGt1w0cds37gy06dqdL5Hny2NzhSekkUK2vDGV-evUpIkDeK3hY93NQYgwppnmdvMDYOMUl_VnLH5m-3FIW0bTJkxC2zYR4A1lkD_xhawH2KD5lrZS4-qttoDdfWceV6PIW3J7EnP0j9vq5Twkx9phCXWOL0-_7fEKwwmC2VwVvf43rbqbF5ZQpLl_nNiicJX4nmV_umniCS_hUjmHTHHyagnJjUzD7ZHFjF7CenXS4uag4TlNEozrxEv4vcZtWd_A-zSpqYLdGty2Zp16nkeq2DhF137AZTohRpDttSis-oh18GQzgvyDb3kUyb23CHcH9DZwScI4QDiDjoE94mzOe4_MjSyrY4d4stLYr5DYlUc_zE3jWp10QiNz8Yz3K4sm8aM_cPteHRuwGBPmjYWKoNwhsLEiHP3aNE-MYpkcV4oAJk8MR3NU3asRRZUD5CNj66gkRlpcsd6dTUPSJISIZM415mE7uG8HF0inxGn_VXSIFxV7PfjdIs6WE58dwEEe7QXTpxWjkuCCykg43znRi0G3Tscuq8oU7VUe5dTAfGDA-nwkroCFWyfpHT_VX92l4BFM6Pm9GF1XJ3_cpbp_TMkrLNwkklGeZSbghTU0RqKdGfffyrdZNqRW16BESjHc7Z8SsC8QhLjGvavyFHJOBB3vgwRAFDskmFlhTKMAsJqaq_tqJ550UrrRTmjJ1sH3gOozKgryOU9i7w2rlnbn24YkA9yCvIVSaB7bW8_Z0TbhoWY_0D25OQqc8pgOGECEHDzGOX_k5wSevf6WEdxoL9wY0PpNxGz_TwA0DMOd4vModAeCGDujQSfPS7PDUm9qtZMZtwyjZ4PKQ_K09-sKg7X4PUQ9DAdygNmHQCjK0iqY-fhcJwkApX1ichrxy6M9kA1EM8rO5fD4pTaRLoqNVutc1sUBq93DXMEjE73UTCfrygIOK2brw4P1LBNQe_CP3J65obJQ8tMTXyemrnLPYIzw=
72
+ id: rs_0cc772278fa4f4140068efa9bf0dcc819ca630d7697c77a632
73
+ summary: []
74
+ type: reasoning
75
+ - action:
76
+ query: Mexico top news October 15, 2025
77
+ type: search
78
+ id: ws_0cc772278fa4f4140068efa9c5aa14819c871c50351e98af40
79
+ status: completed
80
+ type: web_search_call
81
+ - encrypted_content: gAAAAABo76nsliyRJLQ8_6svrujSylQVBRqPDxfWb2I2yr61HB3Rvh8mkk4ZPdzVyktR-gyzPkY-X5VtSV3rjjMCRvU6nGi8j9MmS-pULY8splSAdXCTcxm5LoH6laEAtugW0p6HlxkaehV4RLM2RNqiFbx3KMciX3JTkg9AJcchLtGiSvaV4KrI6gO7BoMY_L9lPsTAOJMCWmD6eK3S13Rc61XPEsUhLq7W4h_mz-A_y6K5Hehqu4sEzLlWgAI3bVogiULK0UYQqgmRkL5VhZCw3RP7lqV_3eDD-7hJEgH7tnW3aYkSt-6f0PmuDoDdF5UOdhgjYLyr2KGyXokoRVF310d4b7OEJsFycF4-mqtD8-r6RxjmSJVp95Oye-3X2HhXKwanOhJbtymEa77qy2hIC_8p222na1_wBo9awrBaq8T1cyGauiMEEbVcqVkhwE3mQzGYz2EzbvM-KZ7fguzOijBP3kCaJV3mF4qAVkYG_VDn1jEPd-s1CW34HwZevytQBNizpEJwysAqNHbW6rUgXQiq8gkL3N0MIGffabwI1ZckYikOpQrUw7C9kgVMgy_8jr3nlJ3c3nqLwM5dxB95orArSk-GWyk7BRa_N6htBB2xwrmcbwO8lSF5LCcW5zc6N3O24Vne3YeDVB9rfVMrOwk0pKukSuYmiZpws5U4Yuc3ZFHJfpU-Nswbl4SrjxZATG5Eyzo-ecUMIW-MsifLMwLadoxaq3nafpwcQhE4AH4U3Rgi_NOeHuP6iMeStRxUEi_Q7cRASg7TGZgRYAXVmRjaB0X_LGjA_oITzmfOKewUxG2SwtTi3X0-_dxMzQXVNvBp6nKv3THhnM-qAp9rXowmseH-WRqvsuZR0rwuYHig1nLA_gibGmWJ9VwPrhasxmA6kc-PlGkvoYE59lLL3HQYUzNuJsosSRtHix7gcmkpASBIJlPzzvo_10aE9peHNoam78vm8QcFxKA6Lrynva5qCndxXGN7Phh13mkFKmYYGwdufaHDEpeNH0qAWv2GsVHpHKENe0Ll2XqJNeK_lF-zvzFBh0DeRfVy3Lq3G6ZtNvV_sJslzcNQzqqU7gRJEsnzC-bfqJsTGc1NWbYG86OgMV9FmsUohGlDVNIMxAWwtEQXJitWR7UQpei528hz6pJj6uKzrTqoNXAUVjJcQz5DW9wR8OYwdl95FzFHGmqKn8cPTVEvnTV9ISCHPNJ4Hy6_qb2OaUh624h51eo8fvOye_qBFE4B0nnrhbmdtN9PYoxdcF_hvk0Dxt5rvOmiqeTlxueE
82
+ id: rs_0cc772278fa4f4140068efa9c91ae0819cb57bf002b036ffcb
83
+ summary: []
84
+ type: reasoning
85
+ - action:
86
+ query: inundaciones Mexico octubre 2025 muertos desaparecidos Veracruz Hidalgo Puebla 15 de octubre
87
+ type: search
88
+ id: ws_0cc772278fa4f4140068efa9cb9a94819c86a1054697faa9d6
89
+ status: completed
90
+ type: web_search_call
91
+ - encrypted_content: gAAAAABo76nsdJIaRBHwtMtyHUET6TXVN2QSC9B3268qye-aJa-3t_U3_I8F5URYG19B9IuVC0RDpe2iBHtKklE6KIE_Ugzg57cRDo0wiTQxRDXYwjFxKPXCNyRQHYHkbPh9Dohk8nRcNt9mARzOpwgB6qknrb8odOOhyqe3q8bZ7aAqTh-qimwxkSssyAb-AOjYGAwSXmr2GErt284wA9jughihwSsiRxBmUSwnMx2Tcg8h1Kr4i2lnGcBPgWX_0bCpXGZY4A_JItQv-6Z0erPq5R9xPiYYlMDApTbBBOvFVCUXWuDx8XeAGYm0V18fJxXiEHuktll_Tj7o9c8GDbLF6V_hSsUsPAIQ0RCoKJ6hP4ZgE5CA1ml3WQa7IbPHBU-wKgHcKhwD5eBsRkE4DFfBx7zKTnZtB8FghGYYKkx4Ww7VZVqifoO8JAMvBsmZT3CWp6z69hCg4BOaXnfTE2llfA2B4b0oBTrCl9c4qG5dfx_ELVfRxOJyr8zI_Rxw_xj-fYgCrFb8xfa8XCvbV7thZMAac0eZyq8M9PGRbjvmKn7jNPYK-c2a46Ia6t_s93xxxUtTsCr-rvn2gKTMWm9BPTWqpqkAc2ZTCYxgT7QSs77IAOQuk_9OHDNBM-h0ujCYfzISsieGSnwIwMS3hfg9qiezUcNcwHOHxH7n3T2JfNRa2k37sJmxrFJOPyMezEqar1-XQvAEtXwNcNbYIykNZ4s8G3lCJAnvEzoRzCAmiiAndtejPlVrSZUhsWazjPcDnZ458-1nnMfb-vGK0Cybz3EdNWMFnWN5bjLIP3lc_wLPa_dWSz1Dm_bTckJWKAujV1jQITft04Nlo4i9vLW5vWb7Jsml4fiSYtvuALQkNzhOlMbdKvrL29UFobkfCB1hX4Cgj-Hkn7P5WjeYtxKXkOb171JGIEav5qQcfbImOuFxhg_7EUbaefIyGa1J2eGb7DRCcmbqnur5hvzMzPGNqHxWvEunVxf9ZvUEXsPoNPyC2Jkot_ntLSlwRtuuMqu9teK6NfWi0qCJeqbhEN-OWDpFtrmSEYLr1FNS5_XM6_VZ10o1GRW8notAm5RVdn7zDvjs_s5cXv4efs0UanOOAS6e_OIJeX7VHdiKLnHLXxZ-adp5NR2kKIw0hgtvcrCR7KHvr4itOny8zy_7EfeYgX8B66favNVeu6JLGEVIOs1bN3_evQYUyRPJAn3FwM_DIUZqQ1xJVewm1RAxvaENoT_gh3pib4vdjXxeGjJg7VsAkPpiHf0TSYvGKiAtdUuUHNfNv8X5MGuh40ST8ji-UHeWkUe8fzcVoypPVNApyO9bET3RgirucglYbObm3WwucxyZDkJC9nYb1LptN6K3xvJ8a97njRCnzjE4Z0SfOtRBotblGo0IN7cCVI-SJrOlXXdvm8PUOOofKmzM9Y-Seo_Vapq3NBfLGZar7Sg1RtHXTXpJABZZ1HNgfvmw0qqKka-cUyS2qByP6d1ZRc2MTAofNcJXEiiBF62f1JXK0yMwKyCacPBQ26J7xHvmDtz-lAZGO6n8GvWJy2UkGthYZLIHTfyKfc46t74ZunD1daW5_QK7dCMMdXylK8lQaSBtK8UIzlbDcT7cIeoO-9iGSEMj623RjwMqpAJLYW8cuoccnTnH3cJ0032hhuaTyvPnW98_2QdzERSY6booWeLI5QI4yWcmJgs8gnhQC1-UEZrZ-Y3_344Xv8t2Dk-ihlHMN0aZ5MpBkT_FXqspXn5a6HIVLEhdtckz1LWK6ZZxcMDBVZAy5pqTmIs_Ro303y1_5Z_oiKSl-ISCkUhCGCCb5JpLozG5tJZTqDij8u91L4c3fgzxs2Myk-Dk8eiAtNyR1kJTPLzFTqHrFvlTXbU5UaHqBjGLhlVXY-9H7vRB4Ssk0NWyQY5jv1L2jnhy64l6KtNBqY827HVOnsaT-XWlM4McnFT1MJ-qO41NzR-gTZva-KzjDgVj50_MBmxeuBLsnDVq26Iw2d9OQpyzo_qiN_Fs2G9zpaUr84-W9mNsoV3TljiQk9-D1xdy4ZXJ7oicW1Ah-Ua4lNGI8wKHujDDX-sw0FaEQfKKPrN4Ou_lXAStakNhnvn2C3sbPlUk6Mie52ky1Pyq9L3SMwFtNa_Sx0imAANBAqekA6BMwc_Q_Y8jgmtZatBAibaWfWfcCyWNy832S6wJ5L0_fOhYVwT4PMvOw9AIwQbTSAJtuLN7zxZOv2Qw5_UnatJR6MgXbQc0BrmWI_FGuZdOuv2TMGKZkV9ynaZ5L-Dk0P90lpZwNmpbddh1y7TQNY6Os6YPwwcyPSMgTD1fY3eJPWDEv8OxRIrFJeth_tJMb-IX2fozD7ZAXUXuEFqtCFZ7yqoO-AbW8rgLWU5ILiJJk7neHSyWrsiDf0eyILU-tC1QoGuP-Md5hehvrobjVQgkARdzIUAy_8RIeG956NoG1nqIM-5tu0A8xjv2rBf5vTw5p6rbtCiQtTacMVrprXLz-p23XqrOAZuEvhc7mMJBwEJcGq8w12oil-oakW3gbHWzKWUb_6bLGYaI7uBjSH_HDtcU79uONBYGDKRG_eZa0EcupHQ8twVBNviyz2bSubTN4gWvjz4k1nHkmQBagFQzy6ogcCVldZVyLtib2TfMH64DVeEFBEM-aUKcs81R42r8aZjW_I3RFRGS8hodNs0Y1ZfkYms_kBNOZc3pw2iP4rtOLDWatSGfUWN8owiQETiOI2AD70HoXcVBmjyRpxheI_mBVz6YIxMzf0esd5U118NzOyxqfQ66EvmAzmN0iSrbR2Vucx4CojBzweQ0KoWn_HV4U3qjkdXcmdvncbTK18LPoOhS6z7BhEKXDhd1bhI1f5AyirZhqR8xvK0r6aeQdkL7OWyQoDWJM-CRtn0S4O3qucwNA1XFVPt5fF8rysehSjLN4GH0AAueDBc9_BGx0fQMsmpRjUO71W0P-C4pY-eYvUu60u6ng2YELowM7Poak8xWOsvlGqYuXj2s4Tuj6hJPeD6vPoUDaxfFPjMijSkpfASxJvNbE8DpftoPrfiXIG-LDfGIXiJISgDzBgTllf3cw1lhSYq51WfqcBaWsIvXWGGbvnfqE2bA7nRwNUBkmxd9NC38-DAAySadaHIBjsIgv7VEKKp841cvTQ4bB-8Fp1d7pZOvMsq4GjaKCQNfjNcWL87KyyJ-GonLExJStrdNGxwS_9AYNA-6KEdtz-V9YRFzbkHl4406ueOody8O7jvucmoyKFTU1S2yJ5Wbd1gNYA-6wV_II78hbI6dXjTEGvdbRWIKkTktnD6pgDhHjkdS6uzsTcUYTkj60SxMujKv2xlRevDANdgFDB0-zKkv0ntRINr5_CHmnLbW3NYAAyGQ9wOgvfNEMno0EVLQU9F596lscKSXAl4djL1F_GSSn80lb0ujdu77Xh130yORuio6SSF9DAXg1wYI8O0Il2nyJg-0DWTyy6mCG4zPmzyS6yRH64o4kOGmZBuOJSFvcF2Qy0h0h0xBvYhN9fBJh8AcjuYP9TWB8s8Z3KKYOXYlPTPlbN4BaowBVfmzG6_aJaDvUsT1bk9IruW4ENtwf6OxXs0nqEwQEGBYWDAmcdS5hESe7JuVQ1O2bLkg2fYl63VznOUIrYW5hbHMI6pZ3EMsuJD5ITzULCl-WlX_qmduuAKnnFbSzua4Rv6ZUOk_GC-BCIfcnro0RTJTna2hl8M-YP0g05v68zDFl4x1s1xsvii8VF4p_t6EGaPY00iUgB__4uWwdIkuywTAaLgvdtWonA7aCvEZr6a04ZyUD7jf6Acd1cwxkCe2Ed-GVd9f6vQcuXUwAwnuK_gsWsqLfPfA_9U3mxMABZVXjuLwxZlxGW1rxdRQZUdqeQvIBLVt3ozMyqu4mQfs0r4gaLUFff_qHkckNvbvJwUDquokNysr0e1matigksVRDUUQc5aXvR8KeQZKUvjQLh5Rv_gvUmkBO2pQQUJCG3IPQqf6lU1Y_86sxHVegaoZ52jbbEq32NO9gQ-3LlMPvmm-FTmdfaBxNZZ2GVHgjLdvmshTd3XrdrRlqXc2dwFsLbIi6Efg6Zy6Vr8HeZiHWtJjiNT6jurXE0aNkq3SSWHEW6tNcn1BXToFUI7R4vozxEzwQG9e-acnS6OZsRie5dDmQ02CXSlJYu8s8TwyXEhy3vmaGDrtVIXlBGdb-6lAjspALKC4I6k_6uwiv492gFe7usw9mvHgIe9b5y2h0z1VUZ1lr152G1Fw_2R-1C6RxwUPZuD3ZVSw5LvO18VApN4_jDwD6l6i9QcCAGgEtz5rSp1SfbYXpTCFd5ulbZAh0JgU_OUnK4QlXZL7vdfs0cKU43IQaDAwg2zJjKodk87JDoe6YmDfrFWZ_qkPWdfbVtvKOMg2bMqJVU0LbKGH3H_MKnQVnHH7UkcdTfu7wwbYIdddQHQPEzuzOwBTg9nz46nSKfZCIQ3FES6gP7bBDuw3IhwzZq30hAS0XPspU8OQuvAQcUcpjSYlKkNvWvw1ZaGE-wJsA2UgyUDeQ_gUAmvjEqXTkomk5EDiDWg4R7TMi3bzbVUylLcNOopOi_X6Quij0dWoV6tZJqKq8z1BJUeV7Dl9dcnN24MTQ4YFMV3r59zAD4_DBWkMorwfllcFB1-i3mq2RdtErHFay7BATssuoSvaVhZbfcc6OsqE6UcZTUr7ctBCKIpg5EJTAZRgZcUTUQMQYaJmCgBi5QY4UIf9oxxd8URQKz-nT2G9vKrCTRC7h2J2aG3RaM4TVYzJQUADkbj5ejVMTELy2JjG_LQLMLzd_yR4VeSOfn3RVbo_P7A5P0bOp4ftma8Qe5kDC2L2H252tNr2gU82ozygJdqi_2ZB_ladw5fojKVMe2w1dBg_g-c5HmJlIxWp0N_dj8hDTS_zC2J6X6zIFkhW9JTSRgVzdDJd8oZEGNtTbAo__R74yEHll9L52bRu68NTxrT4cQ4RIbA5dQUl0QgNwRr67roltQeWXj1eS47Pe070ntnScAgTCF8431lM2XiK1iPP6fbi23SWE6oD4JQaaAQkeHoBqjqPcTeoPSHLmpKkZS55e6XPlxbQp_exrt8yLJv9fs7wrfG0egRzJwIRd_H8vxCg7f65EUIIAyUp8TTaHpYWQJMmmWtAa035TcuwzRtswUYcWLZZWbqBB90m9EM9huFAmF6xJypAfjWFRm0Mtwh7AgqTTEuw6cnNw5lzGQKJqnP2kCiZ6gVb97A67qQZMOs_zDp8E68RgEzDIm14JEAKrIs0nI3VqrNyy0DGzyvn6TWZUAYqUdUGjchOYc_tj3_cr7_Icu1VWG48SNIlXMKHi0k09efcyTzfaaTXQS5UdlenHvFg9j1WO6oyORpaGbA3L5XUNwH1yX6d9wN8
92
+ id: rs_0cc772278fa4f4140068efa9d096c0819c99fea06cc2948069
93
+ summary: []
94
+ type: reasoning
95
+ - content:
96
+ - annotations:
97
+ - end_index: 281
98
+ start_index: 188
99
+ title: Landslides and flooding cut off 300 communities in Mexico with dozens dead and missing
100
+ type: url_citation
101
+ url: https://apnews.com/article/5d036e18057361281e984b44402d3b1b?utm_source=openai
102
+ logprobs: []
103
+ text: Severe floods and landslides across Veracruz, Hidalgo, and Puebla have cut off hundreds of communities and
104
+ left dozens dead and many missing, prompting a major federal emergency response. ([apnews.com](https://apnews.com/article/5d036e18057361281e984b44402d3b1b?utm_source=openai))
105
+ type: output_text
106
+ id: msg_0cc772278fa4f4140068efa9e8d5c0819caea9f8f22692335d
107
+ role: assistant
108
+ status: completed
109
+ type: message
110
+ parallel_tool_calls: true
111
+ previous_response_id: null
112
+ prompt_cache_key: null
113
+ reasoning:
114
+ effort: medium
115
+ summary: null
116
+ safety_identifier: null
117
+ service_tier: default
118
+ status: completed
119
+ store: true
120
+ temperature: 1.0
121
+ text:
122
+ format:
123
+ type: text
124
+ verbosity: medium
125
+ tool_choice: auto
126
+ tools:
127
+ - filters: null
128
+ search_context_size: medium
129
+ type: web_search
130
+ user_location:
131
+ city: Mexico City
132
+ country: MX
133
+ region: null
134
+ timezone: null
135
+ type: approximate
136
+ top_logprobs: 0
137
+ top_p: 1.0
138
+ truncation: disabled
139
+ usage:
140
+ input_tokens: 12594
141
+ input_tokens_details:
142
+ cached_tokens: 3200
143
+ output_tokens: 1150
144
+ output_tokens_details:
145
+ reasoning_tokens: 1088
146
+ total_tokens: 13744
147
+ user: null
148
+ status:
149
+ code: 200
150
+ message: OK
151
+ version: 1
@@ -14,7 +14,7 @@ from datetime import datetime
14
14
  from functools import cached_property
15
15
  from pathlib import Path
16
16
  from types import ModuleType
17
- from typing import TYPE_CHECKING, Any, TypeAlias
17
+ from typing import TYPE_CHECKING, Any, TypeAlias, cast
18
18
 
19
19
  import httpx
20
20
  import pytest
@@ -463,21 +463,13 @@ async def vertex_provider(vertex_provider_auth: None): # pragma: lax no cover
463
463
  pytest.skip('Requires properly configured local google vertex config to pass')
464
464
 
465
465
  try:
466
- from google.genai import Client
467
-
468
- from pydantic_ai.providers.google import GoogleProvider
466
+ from pydantic_ai.providers.google import GoogleProvider, VertexAILocation
469
467
  except ImportError: # pragma: lax no cover
470
468
  pytest.skip('google is not installed')
471
469
 
472
470
  project = os.getenv('GOOGLE_PROJECT', 'pydantic-ai')
473
471
  location = os.getenv('GOOGLE_LOCATION', 'global')
474
- client = Client(vertexai=True, project=project, location=location)
475
-
476
- try:
477
- yield GoogleProvider(client=client)
478
- finally:
479
- client.aio._api_client._httpx_client.close() # type: ignore
480
- await client.aio._api_client._async_httpx_client.aclose() # type: ignore
472
+ yield GoogleProvider(project=project, location=cast(VertexAILocation, location))
481
473
 
482
474
 
483
475
  @pytest.fixture()
@@ -1555,6 +1555,16 @@ async def test_evaluate_async_logfire(
1555
1555
  'gen_ai.operation.name': {},
1556
1556
  'n_cases': {},
1557
1557
  'name': {},
1558
+ 'logfire.experiment.metadata': {
1559
+ 'type': 'object',
1560
+ 'properties': {
1561
+ 'averages': {
1562
+ 'type': 'object',
1563
+ 'title': 'ReportCaseAggregate',
1564
+ 'x-python-datatype': 'PydanticModel',
1565
+ }
1566
+ },
1567
+ },
1558
1568
  'task_name': {},
1559
1569
  },
1560
1570
  'type': 'object',
@@ -1563,6 +1573,18 @@ async def test_evaluate_async_logfire(
1563
1573
  'logfire.msg_template': 'evaluate {name}',
1564
1574
  'logfire.span_type': 'span',
1565
1575
  'n_cases': 2,
1576
+ 'logfire.experiment.metadata': {
1577
+ 'n_cases': 2,
1578
+ 'averages': {
1579
+ 'name': 'Averages',
1580
+ 'scores': {'confidence': 1.0},
1581
+ 'labels': {},
1582
+ 'metrics': {},
1583
+ 'assertions': 1.0,
1584
+ 'task_duration': 1.0,
1585
+ 'total_duration': 9.0,
1586
+ },
1587
+ },
1566
1588
  'name': 'mock_async_task',
1567
1589
  'task_name': 'mock_async_task',
1568
1590
  },