pydantic-ai 1.0.10__tar.gz → 1.0.12__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 (466) hide show
  1. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/PKG-INFO +5 -6
  2. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/README.md +1 -1
  3. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/pyproject.toml +2 -2
  4. pydantic_ai-1.0.12/tests/assets/dummy.txt +1 -0
  5. pydantic_ai-1.0.12/tests/cassettes/test_mcp/test_tool_returning_unstructured_dict.yaml +520 -0
  6. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/conftest.py +8 -2
  7. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/evals/test_dataset.py +3 -2
  8. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/evals/test_evaluators.py +1 -1
  9. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/mcp_server.py +8 -2
  10. pydantic_ai-1.0.12/tests/models/cassettes/test_anthropic/test_anthropic_memory_tool.yaml +159 -0
  11. pydantic_ai-1.0.12/tests/models/cassettes/test_anthropic/test_anthropic_output_tool_with_thinking.yaml +74 -0
  12. pydantic_ai-1.0.12/tests/models/cassettes/test_openai/test_text_document_as_binary_content_input.yaml +88 -0
  13. pydantic_ai-1.0.12/tests/models/cassettes/test_openai/test_text_document_url_input.yaml +341 -0
  14. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/test_anthropic.py +88 -6
  15. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/test_bedrock.py +3 -3
  16. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/test_cohere.py +6 -4
  17. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/test_deepseek.py +2 -2
  18. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/test_download_item.py +1 -1
  19. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/test_fallback.py +1 -2
  20. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/test_gemini.py +6 -3
  21. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/test_gemini_vertex.py +3 -3
  22. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/test_google.py +9 -7
  23. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/test_groq.py +9 -5
  24. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/test_huggingface.py +4 -3
  25. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/test_instrumented.py +112 -3
  26. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/test_mcp_sampling.py +1 -1
  27. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/test_mistral.py +3 -3
  28. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/test_model_function.py +4 -2
  29. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/test_model_names.py +2 -6
  30. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/test_model_settings.py +1 -2
  31. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/test_model_test.py +5 -3
  32. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/test_openai.py +70 -5
  33. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/test_openai_responses.py +43 -7
  34. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/parts_from_messages.py +1 -1
  35. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/test_azure.py +1 -1
  36. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/test_bedrock.py +1 -1
  37. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/test_cerebras.py +1 -1
  38. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/test_fireworks.py +1 -1
  39. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/test_github.py +1 -1
  40. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/test_groq.py +1 -1
  41. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/test_huggingface.py +1 -1
  42. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/test_ollama.py +9 -1
  43. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/test_openrouter.py +1 -1
  44. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/test_together.py +1 -1
  45. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/test_vercel.py +1 -1
  46. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/test_a2a.py +2 -2
  47. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/test_ag_ui.py +5 -5
  48. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/test_agent.py +126 -18
  49. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/test_cli.py +1 -2
  50. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/test_dbos.py +33 -11
  51. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/test_direct.py +10 -10
  52. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/test_examples.py +9 -7
  53. pydantic_ai-1.0.12/tests/test_function_schema.py +201 -0
  54. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/test_history_processor.py +86 -3
  55. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/test_logfire.py +2 -3
  56. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/test_mcp.py +81 -15
  57. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/test_messages.py +1 -1
  58. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/test_parts_manager.py +3 -3
  59. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/test_streaming.py +8 -4
  60. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/test_temporal.py +8 -5
  61. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/test_thinking_part.py +1 -1
  62. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/test_tools.py +9 -6
  63. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/test_toolsets.py +11 -8
  64. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/test_usage_limits.py +10 -2
  65. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/.gitignore +0 -0
  66. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/LICENSE +0 -0
  67. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/Makefile +0 -0
  68. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/__init__.py +0 -0
  69. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/assets/dummy.pdf +0 -0
  70. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/assets/kiwi.png +0 -0
  71. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/assets/marcelo.mp3 +0 -0
  72. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/assets/product_name.txt +0 -0
  73. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/assets/small_video.mp4 +0 -0
  74. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_dbos/test_complex_agent_run.yaml +0 -0
  75. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_dbos/test_complex_agent_run_in_workflow.yaml +0 -0
  76. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_dbos/test_complex_agent_run_stream_in_workflow.yaml +0 -0
  77. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_dbos/test_dbos_agent_iter.yaml +0 -0
  78. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_dbos/test_dbos_agent_iter_in_workflow.yaml +0 -0
  79. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_dbos/test_dbos_agent_override_deps_in_workflow.yaml +0 -0
  80. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_dbos/test_dbos_agent_override_tools_in_workflow.yaml +0 -0
  81. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_dbos/test_dbos_agent_run.yaml +0 -0
  82. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_dbos/test_dbos_agent_run_in_workflow_with_toolsets.yaml +0 -0
  83. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_dbos/test_dbos_agent_run_stream.yaml +0 -0
  84. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_dbos/test_dbos_agent_run_sync.yaml +0 -0
  85. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_dbos/test_dbos_agent_run_sync_in_workflow.yaml +0 -0
  86. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_dbos/test_dbos_agent_with_dataclass_deps_as_dict.yaml +0 -0
  87. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_dbos/test_dbos_agent_with_hitl_tool.yaml +0 -0
  88. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_dbos/test_dbos_agent_with_hitl_tool_sync.yaml +0 -0
  89. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_dbos/test_dbos_agent_with_model_retry.yaml +0 -0
  90. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_dbos/test_dbos_agent_with_non_dict_deps.yaml +0 -0
  91. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_dbos/test_dbos_agent_with_unserializable_deps_type.yaml +0 -0
  92. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_dbos/test_dbos_model_stream_direct.yaml +0 -0
  93. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_dbos/test_multiple_agents.yaml +0 -0
  94. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_dbos/test_simple_agent_run_in_workflow.yaml +0 -0
  95. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_mcp/test_agent_with_server_not_running.yaml +0 -0
  96. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_mcp/test_agent_with_stdio_server.yaml +0 -0
  97. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_mcp/test_tool_returning_audio_resource.yaml +0 -0
  98. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_mcp/test_tool_returning_audio_resource_link.yaml +0 -0
  99. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_mcp/test_tool_returning_dict.yaml +0 -0
  100. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_mcp/test_tool_returning_error.yaml +0 -0
  101. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_mcp/test_tool_returning_image.yaml +0 -0
  102. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_mcp/test_tool_returning_image_resource.yaml +0 -0
  103. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_mcp/test_tool_returning_image_resource_link.yaml +0 -0
  104. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_mcp/test_tool_returning_multiple_items.yaml +0 -0
  105. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_mcp/test_tool_returning_none.yaml +0 -0
  106. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_mcp/test_tool_returning_str.yaml +0 -0
  107. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_mcp/test_tool_returning_text_resource.yaml +0 -0
  108. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_mcp/test_tool_returning_text_resource_link.yaml +0 -0
  109. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_settings/test_stop_settings[anthropic].yaml +0 -0
  110. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_settings/test_stop_settings[bedrock].yaml +0 -0
  111. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_settings/test_stop_settings[cohere].yaml +0 -0
  112. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_settings/test_stop_settings[gemini].yaml +0 -0
  113. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_settings/test_stop_settings[google].yaml +0 -0
  114. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_settings/test_stop_settings[groq].yaml +0 -0
  115. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_settings/test_stop_settings[mistral].yaml +0 -0
  116. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_settings/test_stop_settings[openai].yaml +0 -0
  117. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_temporal/test_complex_agent_run.yaml +0 -0
  118. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_temporal/test_complex_agent_run_in_workflow.yaml +0 -0
  119. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_temporal/test_complex_agent_run_stream_in_workflow.yaml +0 -0
  120. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_temporal/test_logfire_plugin.yaml +0 -0
  121. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_temporal/test_multiple_agents.yaml +0 -0
  122. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_temporal/test_simple_agent_run_in_workflow.yaml +0 -0
  123. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_temporal/test_temporal_agent_iter.yaml +0 -0
  124. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_temporal/test_temporal_agent_override_deps_in_workflow.yaml +0 -0
  125. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_temporal/test_temporal_agent_run.yaml +0 -0
  126. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_temporal/test_temporal_agent_run_stream.yaml +0 -0
  127. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_temporal/test_temporal_agent_run_sync.yaml +0 -0
  128. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_temporal/test_temporal_agent_sync_tool_activity_disabled.yaml +0 -0
  129. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_temporal/test_temporal_agent_with_dataclass_deps_as_dict.yaml +0 -0
  130. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_temporal/test_temporal_agent_with_hitl_tool.yaml +0 -0
  131. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_temporal/test_temporal_agent_with_model_retry.yaml +0 -0
  132. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_temporal/test_temporal_agent_with_non_dict_deps.yaml +0 -0
  133. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/cassettes/test_temporal/test_temporal_agent_with_unserializable_deps_type.yaml +0 -0
  134. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/evals/__init__.py +0 -0
  135. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/evals/test_evaluator_base.py +0 -0
  136. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/evals/test_evaluator_common.py +0 -0
  137. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/evals/test_evaluator_context.py +0 -0
  138. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/evals/test_evaluator_spec.py +0 -0
  139. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/evals/test_llm_as_a_judge.py +0 -0
  140. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/evals/test_otel.py +0 -0
  141. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/evals/test_render_numbers.py +0 -0
  142. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/evals/test_reporting.py +0 -0
  143. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/evals/test_reports.py +0 -0
  144. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/evals/test_utils.py +0 -0
  145. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/evals/utils.py +0 -0
  146. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/example_modules/README.md +0 -0
  147. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/example_modules/bank_database.py +0 -0
  148. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/example_modules/fake_database.py +0 -0
  149. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/example_modules/mcp_server.py +0 -0
  150. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/example_modules/weather_service.py +0 -0
  151. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/ext/__init__.py +0 -0
  152. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/ext/test_langchain.py +0 -0
  153. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/graph/__init__.py +0 -0
  154. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/graph/test_file_persistence.py +0 -0
  155. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/graph/test_graph.py +0 -0
  156. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/graph/test_mermaid.py +0 -0
  157. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/graph/test_persistence.py +0 -0
  158. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/graph/test_state.py +0 -0
  159. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/graph/test_utils.py +0 -0
  160. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/import_examples.py +0 -0
  161. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/json_body_serializer.py +0 -0
  162. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/__init__.py +0 -0
  163. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_anthropic/test_anthropic_code_execution_tool.yaml +0 -0
  164. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_anthropic/test_anthropic_code_execution_tool_stream.yaml +0 -0
  165. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_anthropic/test_anthropic_model_empty_message_on_history.yaml +0 -0
  166. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_anthropic/test_anthropic_model_instructions.yaml +0 -0
  167. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part.yaml +0 -0
  168. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part_from_other_model.yaml +0 -0
  169. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part_redacted.yaml +0 -0
  170. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part_redacted_stream.yaml +0 -0
  171. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part_stream.yaml +0 -0
  172. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_anthropic/test_anthropic_model_web_search_tool_stream.yaml +0 -0
  173. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_anthropic/test_anthropic_prompted_output.yaml +0 -0
  174. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_anthropic/test_anthropic_prompted_output_multiple.yaml +0 -0
  175. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_anthropic/test_anthropic_server_tool_pass_history_to_another_provider.yaml +0 -0
  176. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_anthropic/test_anthropic_server_tool_receive_history_from_another_provider.yaml +0 -0
  177. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_anthropic/test_anthropic_text_output_function.yaml +0 -0
  178. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_anthropic/test_anthropic_text_parts_ahead_of_built_in_tool_call.yaml +0 -0
  179. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_anthropic/test_anthropic_tool_output.yaml +0 -0
  180. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_anthropic/test_anthropic_tool_with_thinking.yaml +0 -0
  181. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_anthropic/test_anthropic_web_search_tool.yaml +0 -0
  182. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_anthropic/test_anthropic_web_search_tool_stream.yaml +0 -0
  183. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_anthropic/test_document_binary_content_input.yaml +0 -0
  184. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_anthropic/test_document_url_input.yaml +0 -0
  185. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_anthropic/test_extra_headers.yaml +0 -0
  186. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_anthropic/test_image_as_binary_content_tool_response.yaml +0 -0
  187. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_anthropic/test_image_url_input.yaml +0 -0
  188. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_anthropic/test_image_url_input_invalid_mime_type.yaml +0 -0
  189. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_anthropic/test_multiple_parallel_tool_calls.yaml +0 -0
  190. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_anthropic/test_text_document_url_input.yaml +0 -0
  191. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_bedrock/test_bedrock_anthropic_tool_with_thinking.yaml +0 -0
  192. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_bedrock/test_bedrock_empty_system_prompt.yaml +0 -0
  193. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_bedrock/test_bedrock_model.yaml +0 -0
  194. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_bedrock/test_bedrock_model_anthropic_model_without_tools.yaml +0 -0
  195. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_bedrock/test_bedrock_model_guardrail_config.yaml +0 -0
  196. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_bedrock/test_bedrock_model_instructions.yaml +0 -0
  197. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_bedrock/test_bedrock_model_iter_stream.yaml +0 -0
  198. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_bedrock/test_bedrock_model_max_tokens.yaml +0 -0
  199. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_bedrock/test_bedrock_model_other_parameters.yaml +0 -0
  200. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_bedrock/test_bedrock_model_performance_config.yaml +0 -0
  201. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_bedrock/test_bedrock_model_retry.yaml +0 -0
  202. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_bedrock/test_bedrock_model_stream.yaml +0 -0
  203. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_bedrock/test_bedrock_model_structured_output.yaml +0 -0
  204. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_anthropic.yaml +0 -0
  205. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_deepseek.yaml +0 -0
  206. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_from_other_model.yaml +0 -0
  207. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_redacted.yaml +0 -0
  208. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_redacted_stream.yaml +0 -0
  209. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_stream.yaml +0 -0
  210. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_bedrock/test_bedrock_model_top_p.yaml +0 -0
  211. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_bedrock/test_bedrock_multiple_documents_in_history.yaml +0 -0
  212. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_bedrock/test_document_url_input.yaml +0 -0
  213. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_bedrock/test_image_as_binary_content_input.yaml +0 -0
  214. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_bedrock/test_image_url_input.yaml +0 -0
  215. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_bedrock/test_text_as_binary_content_input.yaml +0 -0
  216. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_bedrock/test_text_document_url_input.yaml +0 -0
  217. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_bedrock/test_video_as_binary_content_input.yaml +0 -0
  218. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_bedrock/test_video_url_input.yaml +0 -0
  219. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_cohere/test_cohere_model_instructions.yaml +0 -0
  220. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_cohere/test_cohere_model_thinking_part.yaml +0 -0
  221. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_cohere/test_request_simple_success_with_vcr.yaml +0 -0
  222. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_deepseek/test_deepseek_model_thinking_part.yaml +0 -0
  223. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_deepseek/test_deepseek_model_thinking_stream.yaml +0 -0
  224. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_download_item/test_download_item_application_octet_stream.yaml +0 -0
  225. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_download_item/test_download_item_audio_mpeg.yaml +0 -0
  226. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_download_item/test_download_item_no_content_type.yaml +0 -0
  227. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_gemini/test_document_url_input.yaml +0 -0
  228. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_false.yaml +0 -0
  229. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_true.yaml +0 -0
  230. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_gemini/test_gemini_drop_exclusive_maximum.yaml +0 -0
  231. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_gemini/test_gemini_exclusive_minimum_and_maximum.yaml +0 -0
  232. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_gemini/test_gemini_model_instructions.yaml +0 -0
  233. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_gemini/test_gemini_model_thinking_part.yaml +0 -0
  234. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_gemini/test_gemini_native_output.yaml +0 -0
  235. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_gemini/test_gemini_native_output_multiple.yaml +0 -0
  236. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_gemini/test_gemini_prompted_output.yaml +0 -0
  237. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_gemini/test_gemini_prompted_output_multiple.yaml +0 -0
  238. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_gemini/test_gemini_prompted_output_with_tools.yaml +0 -0
  239. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_gemini/test_gemini_text_output_function.yaml +0 -0
  240. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_gemini/test_gemini_tool_config_any_with_tool_without_args.yaml +0 -0
  241. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_gemini/test_gemini_tool_output.yaml +0 -0
  242. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_gemini/test_gemini_youtube_video_url_input.yaml +0 -0
  243. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_gemini/test_image_as_binary_content_input.yaml +0 -0
  244. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_gemini/test_image_as_binary_content_tool_response.yaml +0 -0
  245. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_gemini/test_image_url_input.yaml +0 -0
  246. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_gemini/test_labels_are_ignored_with_gla_provider.yaml +0 -0
  247. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_gemini/test_video_as_binary_content_input.yaml +0 -0
  248. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_gemini/test_video_url_input.yaml +0 -0
  249. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_gemini_vertex/test_labels.yaml +0 -0
  250. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_gemini_vertex/test_url_input[AudioUrl (gs)].yaml +0 -0
  251. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_gemini_vertex/test_url_input[AudioUrl].yaml +0 -0
  252. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_gemini_vertex/test_url_input[DocumentUrl (gs)].yaml +0 -0
  253. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_gemini_vertex/test_url_input[DocumentUrl].yaml +0 -0
  254. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_gemini_vertex/test_url_input[ImageUrl (gs)].yaml +0 -0
  255. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_gemini_vertex/test_url_input[ImageUrl].yaml +0 -0
  256. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl (YouTube)].yaml +0 -0
  257. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl (gs)].yaml +0 -0
  258. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl].yaml +0 -0
  259. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_gemini_vertex/test_url_input_force_download.yaml +0 -0
  260. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_builtin_tools_with_other_tools.yaml +0 -0
  261. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model.yaml +0 -0
  262. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_builtin_code_execution_stream.yaml +0 -0
  263. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_code_execution_tool.yaml +0 -0
  264. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_document_url_input.yaml +0 -0
  265. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_empty_assistant_response.yaml +0 -0
  266. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_empty_user_prompt.yaml +0 -0
  267. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_image_as_binary_content_input.yaml +0 -0
  268. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_image_url_input.yaml +0 -0
  269. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_instructions.yaml +0 -0
  270. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_iter_stream.yaml +0 -0
  271. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_max_tokens.yaml +0 -0
  272. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_multiple_documents_in_history.yaml +0 -0
  273. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_receive_web_search_history_from_another_provider.yaml +0 -0
  274. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_retry.yaml +0 -0
  275. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_safety_settings.yaml +0 -0
  276. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_server_tool_receive_history_from_another_provider.yaml +0 -0
  277. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_stream.yaml +0 -0
  278. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_structured_output.yaml +0 -0
  279. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_text_as_binary_content_input.yaml +0 -0
  280. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_text_document_url_input.yaml +0 -0
  281. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_thinking_config.yaml +0 -0
  282. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_thinking_part.yaml +0 -0
  283. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_thinking_part_from_other_model.yaml +0 -0
  284. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_thinking_part_iter.yaml +0 -0
  285. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_top_p.yaml +0 -0
  286. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_url_context_tool.yaml +0 -0
  287. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_usage_limit_exceeded.yaml +0 -0
  288. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_usage_limit_not_exceeded.yaml +0 -0
  289. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_vertex_labels.yaml +0 -0
  290. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_vertex_provider.yaml +0 -0
  291. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_video_as_binary_content_input.yaml +0 -0
  292. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_video_as_binary_content_input_with_vendor_metadata.yaml +0 -0
  293. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_video_url_input.yaml +0 -0
  294. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_web_search_tool.yaml +0 -0
  295. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_web_search_tool_stream.yaml +0 -0
  296. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_model_youtube_video_url_input_with_vendor_metadata.yaml +0 -0
  297. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_native_output.yaml +0 -0
  298. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_native_output_multiple.yaml +0 -0
  299. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_prompted_output.yaml +0 -0
  300. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_prompted_output_multiple.yaml +0 -0
  301. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_prompted_output_with_tools.yaml +0 -0
  302. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_text_output_function.yaml +0 -0
  303. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_timeout.yaml +0 -0
  304. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_tool_config_any_with_tool_without_args.yaml +0 -0
  305. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_tool_output.yaml +0 -0
  306. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_url_input[AudioUrl (gs)].yaml +0 -0
  307. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_url_input[AudioUrl].yaml +0 -0
  308. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_url_input[DocumentUrl (gs)].yaml +0 -0
  309. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_url_input[DocumentUrl].yaml +0 -0
  310. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_url_input[ImageUrl (gs)].yaml +0 -0
  311. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_url_input[ImageUrl].yaml +0 -0
  312. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl (YouTube)].yaml +0 -0
  313. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl (gs)].yaml +0 -0
  314. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl].yaml +0 -0
  315. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_url_input_force_download.yaml +0 -0
  316. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_google/test_google_vertexai_model_usage_limit_exceeded.yaml +0 -0
  317. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_groq/test_extra_headers.yaml +0 -0
  318. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_groq/test_groq_model_instructions.yaml +0 -0
  319. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_groq/test_groq_model_thinking_part.yaml +0 -0
  320. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_groq/test_groq_model_thinking_part_iter.yaml +0 -0
  321. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_groq/test_groq_model_web_search_tool.yaml +0 -0
  322. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_groq/test_groq_model_web_search_tool_stream.yaml +0 -0
  323. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_groq/test_groq_native_output.yaml +0 -0
  324. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_groq/test_groq_prompted_output.yaml +0 -0
  325. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_groq/test_image_as_binary_content_input.yaml +0 -0
  326. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_groq/test_image_as_binary_content_tool_response.yaml +0 -0
  327. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_groq/test_image_url_input.yaml +0 -0
  328. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_groq/test_tool_regular_error.yaml +0 -0
  329. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_groq/test_tool_use_failed_error.yaml +0 -0
  330. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_groq/test_tool_use_failed_error_streaming.yaml +0 -0
  331. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_huggingface/test_hf_model_instructions.yaml +0 -0
  332. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_huggingface/test_hf_model_thinking_part.yaml +0 -0
  333. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_huggingface/test_hf_model_thinking_part_iter.yaml +0 -0
  334. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_huggingface/test_image_as_binary_content_input.yaml +0 -0
  335. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_huggingface/test_image_url_input.yaml +0 -0
  336. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_huggingface/test_max_completion_tokens[Qwen-Qwen2.5-72B-Instruct].yaml +0 -0
  337. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_huggingface/test_max_completion_tokens[deepseek-ai-DeepSeek-R1-0528].yaml +0 -0
  338. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_huggingface/test_max_completion_tokens[meta-llama-Llama-3.3-70B-Instruct].yaml +0 -0
  339. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_huggingface/test_request_simple_success_with_vcr.yaml +0 -0
  340. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_huggingface/test_request_simple_usage.yaml +0 -0
  341. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_huggingface/test_simple_completion.yaml +0 -0
  342. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_huggingface/test_stream_completion.yaml +0 -0
  343. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_mistral/test_image_as_binary_content_tool_response.yaml +0 -0
  344. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_mistral/test_mistral_model_instructions.yaml +0 -0
  345. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_mistral/test_mistral_model_thinking_part.yaml +0 -0
  346. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_mistral/test_mistral_model_thinking_part_iter.yaml +0 -0
  347. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_model_names/test_known_model_names.yaml +0 -0
  348. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_audio_as_binary_content_input.yaml +0 -0
  349. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_compatible_api_with_tool_calls_without_id.yaml +0 -0
  350. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_document_as_binary_content_input.yaml +0 -0
  351. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_document_as_binary_content_input_with_tool.yaml +0 -0
  352. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_document_url_input.yaml +0 -0
  353. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_extra_headers.yaml +0 -0
  354. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_image_as_binary_content_input.yaml +0 -0
  355. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_image_as_binary_content_tool_response.yaml +0 -0
  356. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_image_url_tool_response.yaml +0 -0
  357. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_invalid_response.yaml +0 -0
  358. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4.5-preview].yaml +0 -0
  359. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4o-mini].yaml +0 -0
  360. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_max_completion_tokens[o3-mini].yaml +0 -0
  361. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_multiple_agent_tool_calls.yaml +0 -0
  362. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_openai_audio_url_input.yaml +0 -0
  363. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_openai_instructions.yaml +0 -0
  364. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_openai_instructions_with_tool_calls_keep_instructions.yaml +0 -0
  365. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_openai_model_cerebras_provider.yaml +0 -0
  366. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_openai_model_cerebras_provider_harmony.yaml +0 -0
  367. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_openai_model_cerebras_provider_qwen_3_coder.yaml +0 -0
  368. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_openai_model_settings_temperature_ignored_on_gpt_5.yaml +0 -0
  369. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_openai_model_thinking_part.yaml +0 -0
  370. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_openai_model_without_system_prompt.yaml +0 -0
  371. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_openai_native_output.yaml +0 -0
  372. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_openai_native_output_multiple.yaml +0 -0
  373. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[developer].yaml +0 -0
  374. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[system].yaml +0 -0
  375. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_openai_prompted_output.yaml +0 -0
  376. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_openai_prompted_output_multiple.yaml +0 -0
  377. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_openai_text_output_function.yaml +0 -0
  378. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_openai_tool_output.yaml +0 -0
  379. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_openai_web_search_tool.yaml +0 -0
  380. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_openai_web_search_tool_model_not_supported.yaml +0 -0
  381. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_openai_web_search_tool_with_user_location.yaml +0 -0
  382. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_reasoning_model_with_temperature.yaml +0 -0
  383. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_system_prompt_role_o1_mini.yaml +0 -0
  384. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_text_response.yaml +0 -0
  385. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_user_id.yaml +0 -0
  386. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai/test_valid_response.yaml +0 -0
  387. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_audio_as_binary_content_input.yaml +0 -0
  388. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_input.yaml +0 -0
  389. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_tool_response.yaml +0 -0
  390. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_native_output.yaml +0 -0
  391. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_native_output_multiple.yaml +0 -0
  392. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_openai_previous_response_id.yaml +0 -0
  393. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_openai_previous_response_id_auto_mode.yaml +0 -0
  394. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_openai_responses_code_execution_return_image.yaml +0 -0
  395. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_as_binary_content_input.yaml +0 -0
  396. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_url_input.yaml +0 -0
  397. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_url_input.yaml +0 -0
  398. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_builtin_tools.yaml +0 -0
  399. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_builtin_tools_web_search.yaml +0 -0
  400. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_http_error.yaml +0 -0
  401. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_instructions.yaml +0 -0
  402. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_retry.yaml +0 -0
  403. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response.yaml +0 -0
  404. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response_with_tool_call.yaml +0 -0
  405. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_thinking_part.yaml +0 -0
  406. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_web_search_tool.yaml +0 -0
  407. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_web_search_tool_stream.yaml +0 -0
  408. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_web_search_tool_with_invalid_region.yaml +0 -0
  409. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_web_search_tool_with_user_location.yaml +0 -0
  410. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_openai_responses_non_reasoning_model_no_item_ids.yaml +0 -0
  411. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_openai_responses_output_type.yaml +0 -0
  412. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_effort.yaml +0 -0
  413. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_generate_summary.yaml +0 -0
  414. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_openai_responses_stream.yaml +0 -0
  415. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_openai_responses_streaming_usage.yaml +0 -0
  416. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_openai_responses_system_prompt.yaml +0 -0
  417. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_openai_responses_text_document_url_input.yaml +0 -0
  418. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_openai_responses_thinking_part_from_other_model.yaml +0 -0
  419. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_openai_responses_thinking_part_iter.yaml +0 -0
  420. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_openai_responses_thinking_with_code_execution_tool.yaml +0 -0
  421. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_openai_responses_thinking_with_code_execution_tool_stream.yaml +0 -0
  422. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_openai_responses_thinking_with_modified_history.yaml +0 -0
  423. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_openai_responses_thinking_with_tool_calls.yaml +0 -0
  424. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_openai_responses_verbosity.yaml +0 -0
  425. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_prompted_output.yaml +0 -0
  426. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_prompted_output_multiple.yaml +0 -0
  427. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_reasoning_model_with_temperature.yaml +0 -0
  428. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_text_output_function.yaml +0 -0
  429. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/cassettes/test_openai_responses/test_tool_output.yaml +0 -0
  430. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/mock_async_stream.py +0 -0
  431. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/mock_openai.py +0 -0
  432. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/test_model.py +0 -0
  433. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/models/test_model_request_parameters.py +0 -0
  434. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/__init__.py +0 -0
  435. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/cassettes/test_azure/test_azure_provider_call.yaml +0 -0
  436. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/cassettes/test_gateway/test_gateway_provider_with_anthropic.yaml +0 -0
  437. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/cassettes/test_gateway/test_gateway_provider_with_google_vertex.yaml +0 -0
  438. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/cassettes/test_gateway/test_gateway_provider_with_groq.yaml +0 -0
  439. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/cassettes/test_gateway/test_gateway_provider_with_openai.yaml +0 -0
  440. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/cassettes/test_gateway/test_gateway_provider_with_openai_responses.yaml +0 -0
  441. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/cassettes/test_google_vertex/test_vertexai_provider.yaml +0 -0
  442. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/cassettes/test_heroku/test_heroku_model_provider_claude_3_7_sonnet.yaml +0 -0
  443. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/cassettes/test_openrouter/test_openrouter_with_google_model.yaml +0 -0
  444. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/test_anthropic.py +0 -0
  445. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/test_cohere.py +0 -0
  446. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/test_deepseek.py +0 -0
  447. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/test_gateway.py +0 -0
  448. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/test_google_gla.py +0 -0
  449. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/test_google_vertex.py +0 -0
  450. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/test_grok.py +0 -0
  451. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/test_heroku.py +0 -0
  452. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/test_litellm.py +0 -0
  453. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/test_mistral.py +0 -0
  454. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/test_moonshotai.py +0 -0
  455. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/test_openai.py +0 -0
  456. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/providers/test_provider_names.py +0 -0
  457. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/test_builtin_tools.py +0 -0
  458. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/test_deps.py +0 -0
  459. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/test_format_as_xml.py +0 -0
  460. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/test_json_body_serializer.py +0 -0
  461. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/test_live.py +0 -0
  462. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/test_settings.py +0 -0
  463. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/test_tenacity.py +0 -0
  464. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/test_utils.py +0 -0
  465. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/typed_agent.py +0 -0
  466. {pydantic_ai-1.0.10 → pydantic_ai-1.0.12}/tests/typed_graph.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pydantic-ai
3
- Version: 1.0.10
3
+ Version: 1.0.12
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
@@ -14,7 +14,6 @@ Classifier: Framework :: Pydantic
14
14
  Classifier: Framework :: Pydantic :: 2
15
15
  Classifier: Intended Audience :: Developers
16
16
  Classifier: Intended Audience :: Information Technology
17
- Classifier: License :: OSI Approved :: MIT License
18
17
  Classifier: Operating System :: OS Independent
19
18
  Classifier: Programming Language :: Python
20
19
  Classifier: Programming Language :: Python :: 3
@@ -27,13 +26,13 @@ Classifier: Topic :: Internet
27
26
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
28
27
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
29
28
  Requires-Python: >=3.10
30
- Requires-Dist: pydantic-ai-slim[ag-ui,anthropic,bedrock,cli,cohere,evals,google,groq,huggingface,logfire,mcp,mistral,openai,retries,temporal,vertexai]==1.0.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.0.12
31
30
  Provides-Extra: a2a
32
31
  Requires-Dist: fasta2a>=0.4.1; extra == 'a2a'
33
32
  Provides-Extra: dbos
34
- Requires-Dist: pydantic-ai-slim[dbos]==1.0.10; extra == 'dbos'
33
+ Requires-Dist: pydantic-ai-slim[dbos]==1.0.12; extra == 'dbos'
35
34
  Provides-Extra: examples
36
- Requires-Dist: pydantic-ai-examples==1.0.10; extra == 'examples'
35
+ Requires-Dist: pydantic-ai-examples==1.0.12; extra == 'examples'
37
36
  Description-Content-Type: text/markdown
38
37
 
39
38
  <div align="center">
@@ -95,7 +94,7 @@ Integrates the [Model Context Protocol](https://ai.pydantic.dev/mcp/client), [Ag
95
94
  Easily lets you flag that certain tool calls [require approval](https://ai.pydantic.dev/deferred-tools#human-in-the-loop-tool-approval) before they can proceed, possibly depending on tool call arguments, conversation history, or user preferences.
96
95
 
97
96
  8. **Durable Execution**:
98
- Enables you to build [durable agents](https://ai.pydantic.dev/temporal) that can preserve their progress across transient API failures and application errors or restarts, and handle long-running, asynchronous, and human-in-the-loop workflows with production-grade reliability.
97
+ Enables you to build [durable agents](https://ai.pydantic.dev/durable_execution/overview/) that can preserve their progress across transient API failures and application errors or restarts, and handle long-running, asynchronous, and human-in-the-loop workflows with production-grade reliability.
99
98
 
100
99
  9. **Streamed Outputs**:
101
100
  Provides the ability to [stream](https://ai.pydantic.dev/output#streamed-results) structured output continuously, with immediate validation, ensuring real time access to generated data.
@@ -57,7 +57,7 @@ Integrates the [Model Context Protocol](https://ai.pydantic.dev/mcp/client), [Ag
57
57
  Easily lets you flag that certain tool calls [require approval](https://ai.pydantic.dev/deferred-tools#human-in-the-loop-tool-approval) before they can proceed, possibly depending on tool call arguments, conversation history, or user preferences.
58
58
 
59
59
  8. **Durable Execution**:
60
- Enables you to build [durable agents](https://ai.pydantic.dev/temporal) that can preserve their progress across transient API failures and application errors or restarts, and handle long-running, asynchronous, and human-in-the-loop workflows with production-grade reliability.
60
+ Enables you to build [durable agents](https://ai.pydantic.dev/durable_execution/overview/) that can preserve their progress across transient API failures and application errors or restarts, and handle long-running, asynchronous, and human-in-the-loop workflows with production-grade reliability.
61
61
 
62
62
  9. **Streamed Outputs**:
63
63
  Provides the ability to [stream](https://ai.pydantic.dev/output#streamed-results) structured output continuously, with immediate validation, ensuring real time access to generated data.
@@ -22,6 +22,7 @@ authors = [
22
22
  { name = "Douwe Maan", email = "douwe@pydantic.dev" },
23
23
  ]
24
24
  license = "MIT"
25
+ license-files = ["LICENSE"]
25
26
  readme = "README.md"
26
27
  classifiers = [
27
28
  "Development Status :: 5 - Production/Stable",
@@ -34,7 +35,6 @@ classifiers = [
34
35
  "Programming Language :: Python :: 3.13",
35
36
  "Intended Audience :: Developers",
36
37
  "Intended Audience :: Information Technology",
37
- "License :: OSI Approved :: MIT License",
38
38
  "Operating System :: OS Independent",
39
39
  "Topic :: Internet",
40
40
  "Topic :: Scientific/Engineering :: Artificial Intelligence",
@@ -102,7 +102,7 @@ dev = [
102
102
  "pytest-xdist>=3.6.1",
103
103
  # Needed for PyCharm users
104
104
  "pip>=25.2",
105
- "genai-prices>=0.0.22",
105
+ "genai-prices>=0.0.28",
106
106
  "mcp-run-python>=0.0.20",
107
107
  ]
108
108
  lint = ["mypy>=1.11.2", "pyright>=1.1.390", "ruff>=0.6.9"]
@@ -0,0 +1 @@
1
+ Dummy TXT file
@@ -0,0 +1,520 @@
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
+ - '3845'
12
+ content-type:
13
+ - application/json
14
+ host:
15
+ - api.openai.com
16
+ method: POST
17
+ parsed_body:
18
+ messages:
19
+ - content: Get me an unstructured dict, respond on one line
20
+ role: user
21
+ model: gpt-4o
22
+ stream: false
23
+ tool_choice: auto
24
+ tools:
25
+ - function:
26
+ description: "Convert Celsius to Fahrenheit.\n\n Args:\n celsius: Temperature in Celsius\n\n Returns:\n
27
+ \ Temperature in Fahrenheit\n "
28
+ name: celsius_to_fahrenheit
29
+ parameters:
30
+ additionalProperties: false
31
+ properties:
32
+ celsius:
33
+ type: number
34
+ required:
35
+ - celsius
36
+ type: object
37
+ strict: true
38
+ type: function
39
+ - function:
40
+ description: "Get the weather forecast for a location.\n\n Args:\n location: The location to get the weather
41
+ forecast for.\n\n Returns:\n The weather forecast for the location.\n "
42
+ name: get_weather_forecast
43
+ parameters:
44
+ additionalProperties: false
45
+ properties:
46
+ location:
47
+ type: string
48
+ required:
49
+ - location
50
+ type: object
51
+ strict: true
52
+ type: function
53
+ - function:
54
+ description: ''
55
+ name: get_image_resource
56
+ parameters:
57
+ additionalProperties: false
58
+ properties: {}
59
+ type: object
60
+ type: function
61
+ - function:
62
+ description: ''
63
+ name: get_image_resource_link
64
+ parameters:
65
+ additionalProperties: false
66
+ properties: {}
67
+ type: object
68
+ type: function
69
+ - function:
70
+ description: ''
71
+ name: get_audio_resource
72
+ parameters:
73
+ additionalProperties: false
74
+ properties: {}
75
+ type: object
76
+ type: function
77
+ - function:
78
+ description: ''
79
+ name: get_audio_resource_link
80
+ parameters:
81
+ additionalProperties: false
82
+ properties: {}
83
+ type: object
84
+ type: function
85
+ - function:
86
+ description: ''
87
+ name: get_product_name
88
+ parameters:
89
+ additionalProperties: false
90
+ properties: {}
91
+ type: object
92
+ type: function
93
+ - function:
94
+ description: ''
95
+ name: get_product_name_link
96
+ parameters:
97
+ additionalProperties: false
98
+ properties: {}
99
+ type: object
100
+ type: function
101
+ - function:
102
+ description: ''
103
+ name: get_image
104
+ parameters:
105
+ additionalProperties: false
106
+ properties: {}
107
+ type: object
108
+ type: function
109
+ - function:
110
+ description: ''
111
+ name: get_dict
112
+ parameters:
113
+ additionalProperties: false
114
+ properties: {}
115
+ type: object
116
+ type: function
117
+ - function:
118
+ description: ''
119
+ name: get_unstructured_dict
120
+ parameters:
121
+ additionalProperties: false
122
+ properties: {}
123
+ type: object
124
+ type: function
125
+ - function:
126
+ description: ''
127
+ name: get_error
128
+ parameters:
129
+ additionalProperties: false
130
+ properties:
131
+ value:
132
+ default: false
133
+ type: boolean
134
+ type: object
135
+ type: function
136
+ - function:
137
+ description: ''
138
+ name: get_none
139
+ parameters:
140
+ additionalProperties: false
141
+ properties: {}
142
+ type: object
143
+ type: function
144
+ - function:
145
+ description: ''
146
+ name: get_multiple_items
147
+ parameters:
148
+ additionalProperties: false
149
+ properties: {}
150
+ type: object
151
+ type: function
152
+ - function:
153
+ description: "Get the current log level.\n\n Returns:\n The current log level.\n "
154
+ name: get_log_level
155
+ parameters:
156
+ additionalProperties: false
157
+ properties: {}
158
+ type: object
159
+ type: function
160
+ - function:
161
+ description: "Echo the run context.\n\n Args:\n ctx: Context object containing request and session information.\n\n
162
+ \ Returns:\n Dictionary with an echo message and the deps.\n "
163
+ name: echo_deps
164
+ parameters:
165
+ additionalProperties: false
166
+ properties: {}
167
+ type: object
168
+ type: function
169
+ - function:
170
+ description: Use sampling callback.
171
+ name: use_sampling
172
+ parameters:
173
+ additionalProperties: false
174
+ properties:
175
+ foo:
176
+ type: string
177
+ required:
178
+ - foo
179
+ type: object
180
+ strict: true
181
+ type: function
182
+ - function:
183
+ description: Use elicitation callback to ask the user a question.
184
+ name: use_elicitation
185
+ parameters:
186
+ additionalProperties: false
187
+ properties:
188
+ question:
189
+ type: string
190
+ required:
191
+ - question
192
+ type: object
193
+ strict: true
194
+ type: function
195
+ uri: https://api.openai.com/v1/chat/completions
196
+ response:
197
+ headers:
198
+ access-control-expose-headers:
199
+ - X-Request-ID
200
+ alt-svc:
201
+ - h3=":443"; ma=86400
202
+ connection:
203
+ - keep-alive
204
+ content-length:
205
+ - '1073'
206
+ content-type:
207
+ - application/json
208
+ openai-organization:
209
+ - pydantic-28gund
210
+ openai-processing-ms:
211
+ - '1521'
212
+ openai-project:
213
+ - proj_dKobscVY9YJxeEaDJen54e3d
214
+ openai-version:
215
+ - '2020-10-01'
216
+ strict-transport-security:
217
+ - max-age=31536000; includeSubDomains; preload
218
+ transfer-encoding:
219
+ - chunked
220
+ parsed_body:
221
+ choices:
222
+ - finish_reason: tool_calls
223
+ index: 0
224
+ logprobs: null
225
+ message:
226
+ annotations: []
227
+ content: null
228
+ refusal: null
229
+ role: assistant
230
+ tool_calls:
231
+ - function:
232
+ arguments: '{}'
233
+ name: get_unstructured_dict
234
+ id: call_R0n2R7S9vL2aZOX25T9jahTd
235
+ type: function
236
+ created: 1759264706
237
+ id: chatcmpl-CLbP82ODQMEznhobUKdq6Rjn9Aa12
238
+ model: gpt-4o-2024-08-06
239
+ object: chat.completion
240
+ service_tier: default
241
+ system_fingerprint: fp_f33640a400
242
+ usage:
243
+ completion_tokens: 12
244
+ completion_tokens_details:
245
+ accepted_prediction_tokens: 0
246
+ audio_tokens: 0
247
+ reasoning_tokens: 0
248
+ rejected_prediction_tokens: 0
249
+ prompt_tokens: 343
250
+ prompt_tokens_details:
251
+ audio_tokens: 0
252
+ cached_tokens: 0
253
+ total_tokens: 355
254
+ status:
255
+ code: 200
256
+ message: OK
257
+ - request:
258
+ headers:
259
+ accept:
260
+ - application/json
261
+ accept-encoding:
262
+ - gzip, deflate
263
+ connection:
264
+ - keep-alive
265
+ content-length:
266
+ - '4119'
267
+ content-type:
268
+ - application/json
269
+ cookie:
270
+ - __cf_bm=tGZk0hevqXH_kU7UScGt.EqwPxg4OTuqy4hBf.hGmwo-1759264708-1.0.1.1-dHK7SUjNTLSpKF9cvNn7RNdg6UBSqsWYbU7k7Dq5oE9NdDkkv4LRlBEYWPjFafQKjfrS_JgwrAIM5Je9qCJeucIatzS2M02wLccvrfU2c6k;
271
+ _cfuvid=d8Rl.NMqIC4giHLO2QsuslT6sliz_xnT6LK0PLEZEsA-1759264708042-0.0.1.1-604800000
272
+ host:
273
+ - api.openai.com
274
+ method: POST
275
+ parsed_body:
276
+ messages:
277
+ - content: Get me an unstructured dict, respond on one line
278
+ role: user
279
+ - content: null
280
+ role: assistant
281
+ tool_calls:
282
+ - function:
283
+ arguments: '{}'
284
+ name: get_unstructured_dict
285
+ id: call_R0n2R7S9vL2aZOX25T9jahTd
286
+ type: function
287
+ - content: '{"foo":"bar","baz":123}'
288
+ role: tool
289
+ tool_call_id: call_R0n2R7S9vL2aZOX25T9jahTd
290
+ model: gpt-4o
291
+ stream: false
292
+ tool_choice: auto
293
+ tools:
294
+ - function:
295
+ description: "Convert Celsius to Fahrenheit.\n\n Args:\n celsius: Temperature in Celsius\n\n Returns:\n
296
+ \ Temperature in Fahrenheit\n "
297
+ name: celsius_to_fahrenheit
298
+ parameters:
299
+ additionalProperties: false
300
+ properties:
301
+ celsius:
302
+ type: number
303
+ required:
304
+ - celsius
305
+ type: object
306
+ strict: true
307
+ type: function
308
+ - function:
309
+ description: "Get the weather forecast for a location.\n\n Args:\n location: The location to get the weather
310
+ forecast for.\n\n Returns:\n The weather forecast for the location.\n "
311
+ name: get_weather_forecast
312
+ parameters:
313
+ additionalProperties: false
314
+ properties:
315
+ location:
316
+ type: string
317
+ required:
318
+ - location
319
+ type: object
320
+ strict: true
321
+ type: function
322
+ - function:
323
+ description: ''
324
+ name: get_image_resource
325
+ parameters:
326
+ additionalProperties: false
327
+ properties: {}
328
+ type: object
329
+ type: function
330
+ - function:
331
+ description: ''
332
+ name: get_image_resource_link
333
+ parameters:
334
+ additionalProperties: false
335
+ properties: {}
336
+ type: object
337
+ type: function
338
+ - function:
339
+ description: ''
340
+ name: get_audio_resource
341
+ parameters:
342
+ additionalProperties: false
343
+ properties: {}
344
+ type: object
345
+ type: function
346
+ - function:
347
+ description: ''
348
+ name: get_audio_resource_link
349
+ parameters:
350
+ additionalProperties: false
351
+ properties: {}
352
+ type: object
353
+ type: function
354
+ - function:
355
+ description: ''
356
+ name: get_product_name
357
+ parameters:
358
+ additionalProperties: false
359
+ properties: {}
360
+ type: object
361
+ type: function
362
+ - function:
363
+ description: ''
364
+ name: get_product_name_link
365
+ parameters:
366
+ additionalProperties: false
367
+ properties: {}
368
+ type: object
369
+ type: function
370
+ - function:
371
+ description: ''
372
+ name: get_image
373
+ parameters:
374
+ additionalProperties: false
375
+ properties: {}
376
+ type: object
377
+ type: function
378
+ - function:
379
+ description: ''
380
+ name: get_dict
381
+ parameters:
382
+ additionalProperties: false
383
+ properties: {}
384
+ type: object
385
+ type: function
386
+ - function:
387
+ description: ''
388
+ name: get_unstructured_dict
389
+ parameters:
390
+ additionalProperties: false
391
+ properties: {}
392
+ type: object
393
+ type: function
394
+ - function:
395
+ description: ''
396
+ name: get_error
397
+ parameters:
398
+ additionalProperties: false
399
+ properties:
400
+ value:
401
+ default: false
402
+ type: boolean
403
+ type: object
404
+ type: function
405
+ - function:
406
+ description: ''
407
+ name: get_none
408
+ parameters:
409
+ additionalProperties: false
410
+ properties: {}
411
+ type: object
412
+ type: function
413
+ - function:
414
+ description: ''
415
+ name: get_multiple_items
416
+ parameters:
417
+ additionalProperties: false
418
+ properties: {}
419
+ type: object
420
+ type: function
421
+ - function:
422
+ description: "Get the current log level.\n\n Returns:\n The current log level.\n "
423
+ name: get_log_level
424
+ parameters:
425
+ additionalProperties: false
426
+ properties: {}
427
+ type: object
428
+ type: function
429
+ - function:
430
+ description: "Echo the run context.\n\n Args:\n ctx: Context object containing request and session information.\n\n
431
+ \ Returns:\n Dictionary with an echo message and the deps.\n "
432
+ name: echo_deps
433
+ parameters:
434
+ additionalProperties: false
435
+ properties: {}
436
+ type: object
437
+ type: function
438
+ - function:
439
+ description: Use sampling callback.
440
+ name: use_sampling
441
+ parameters:
442
+ additionalProperties: false
443
+ properties:
444
+ foo:
445
+ type: string
446
+ required:
447
+ - foo
448
+ type: object
449
+ strict: true
450
+ type: function
451
+ - function:
452
+ description: Use elicitation callback to ask the user a question.
453
+ name: use_elicitation
454
+ parameters:
455
+ additionalProperties: false
456
+ properties:
457
+ question:
458
+ type: string
459
+ required:
460
+ - question
461
+ type: object
462
+ strict: true
463
+ type: function
464
+ uri: https://api.openai.com/v1/chat/completions
465
+ response:
466
+ headers:
467
+ access-control-expose-headers:
468
+ - X-Request-ID
469
+ alt-svc:
470
+ - h3=":443"; ma=86400
471
+ connection:
472
+ - keep-alive
473
+ content-length:
474
+ - '833'
475
+ content-type:
476
+ - application/json
477
+ openai-organization:
478
+ - pydantic-28gund
479
+ openai-processing-ms:
480
+ - '318'
481
+ openai-project:
482
+ - proj_dKobscVY9YJxeEaDJen54e3d
483
+ openai-version:
484
+ - '2020-10-01'
485
+ strict-transport-security:
486
+ - max-age=31536000; includeSubDomains; preload
487
+ transfer-encoding:
488
+ - chunked
489
+ parsed_body:
490
+ choices:
491
+ - finish_reason: stop
492
+ index: 0
493
+ logprobs: null
494
+ message:
495
+ annotations: []
496
+ content: '{"foo":"bar","baz":123}'
497
+ refusal: null
498
+ role: assistant
499
+ created: 1759264708
500
+ id: chatcmpl-CLbPAOYN3jPYdvYeD8JNOOXF5N554
501
+ model: gpt-4o-2024-08-06
502
+ object: chat.completion
503
+ service_tier: default
504
+ system_fingerprint: fp_f33640a400
505
+ usage:
506
+ completion_tokens: 10
507
+ completion_tokens_details:
508
+ accepted_prediction_tokens: 0
509
+ audio_tokens: 0
510
+ reasoning_tokens: 0
511
+ rejected_prediction_tokens: 0
512
+ prompt_tokens: 374
513
+ prompt_tokens_details:
514
+ audio_tokens: 0
515
+ cached_tokens: 0
516
+ total_tokens: 384
517
+ status:
518
+ code: 200
519
+ message: OK
520
+ version: 1
@@ -23,8 +23,7 @@ from pytest_mock import MockerFixture
23
23
  from vcr import VCR, request as vcr_request
24
24
 
25
25
  import pydantic_ai.models
26
- from pydantic_ai import Agent
27
- from pydantic_ai.messages import BinaryContent
26
+ from pydantic_ai import Agent, BinaryContent
28
27
  from pydantic_ai.models import Model, cached_async_http_client
29
28
 
30
29
  __all__ = 'IsDatetime', 'IsFloat', 'IsNow', 'IsStr', 'IsInt', 'IsInstance', 'TestEnv', 'ClientWithHandler', 'try_import'
@@ -339,6 +338,13 @@ def document_content(assets_path: Path) -> BinaryContent:
339
338
  return BinaryContent(data=pdf_bytes, media_type='application/pdf')
340
339
 
341
340
 
341
+ @pytest.fixture(scope='session')
342
+ def text_document_content(assets_path: Path) -> BinaryContent:
343
+ content = assets_path.joinpath('dummy.txt').read_text()
344
+ bin_content = BinaryContent(data=content.encode(), media_type='text/plain')
345
+ return bin_content
346
+
347
+
342
348
  @pytest.fixture(scope='session')
343
349
  def deepseek_api_key() -> str:
344
350
  return os.getenv('DEEPSEEK_API_KEY', 'mock-api-key')
@@ -764,6 +764,7 @@ async def test_genai_attribute_collection(example_dataset: Dataset[TaskInput, Ta
764
764
  'gen_ai.usage.input_tokens': 1,
765
765
  'gen_ai.usage.details.special_tokens': 2,
766
766
  'other_attribute': 3,
767
+ 'operation.cost': 1.23,
767
768
  },
768
769
  ):
769
770
  with logfire.span('some other span'):
@@ -779,7 +780,7 @@ async def test_genai_attribute_collection(example_dataset: Dataset[TaskInput, Ta
779
780
  metadata=TaskMetadata(difficulty='easy', category='general'),
780
781
  expected_output=TaskOutput(answer='4', confidence=1.0),
781
782
  output=TaskOutput(answer='answer to What is 2+2?', confidence=1.0),
782
- metrics={'requests': 1, 'input_tokens': 1, 'special_tokens': 2},
783
+ metrics={'cost': 1.23, 'requests': 1, 'input_tokens': 1, 'special_tokens': 2},
783
784
  attributes={},
784
785
  scores={},
785
786
  labels={},
@@ -795,7 +796,7 @@ async def test_genai_attribute_collection(example_dataset: Dataset[TaskInput, Ta
795
796
  metadata=TaskMetadata(difficulty='medium', category='geography'),
796
797
  expected_output=TaskOutput(answer='Paris', confidence=1.0),
797
798
  output=TaskOutput(answer='answer to What is the capital of France?', confidence=1.0),
798
- metrics={'requests': 1, 'input_tokens': 1, 'special_tokens': 2},
799
+ metrics={'cost': 1.23, 'requests': 1, 'input_tokens': 1, 'special_tokens': 2},
799
800
  attributes={},
800
801
  scores={},
801
802
  labels={},
@@ -8,7 +8,7 @@ from inline_snapshot import snapshot
8
8
  from pydantic import BaseModel, TypeAdapter
9
9
  from pydantic_core import to_jsonable_python
10
10
 
11
- from pydantic_ai.messages import ModelMessage, ModelResponse
11
+ from pydantic_ai import ModelMessage, ModelResponse
12
12
  from pydantic_ai.models import Model, ModelRequestParameters
13
13
  from pydantic_ai.settings import ModelSettings
14
14
 
@@ -6,6 +6,7 @@ from mcp.server.fastmcp import Context, FastMCP, Image
6
6
  from mcp.server.session import ServerSession
7
7
  from mcp.types import (
8
8
  BlobResourceContents,
9
+ CreateMessageResult,
9
10
  EmbeddedResource,
10
11
  ResourceLink,
11
12
  SamplingMessage,
@@ -135,6 +136,11 @@ async def get_dict() -> dict[str, Any]:
135
136
  return {'foo': 'bar', 'baz': 123}
136
137
 
137
138
 
139
+ @mcp.tool(structured_output=False)
140
+ async def get_unstructured_dict() -> dict[str, Any]:
141
+ return {'foo': 'bar', 'baz': 123}
142
+
143
+
138
144
  @mcp.tool()
139
145
  async def get_error(value: bool = False):
140
146
  if value:
@@ -186,7 +192,7 @@ async def echo_deps(ctx: Context[ServerSession, None]) -> dict[str, Any]:
186
192
 
187
193
 
188
194
  @mcp.tool()
189
- async def use_sampling(ctx: Context[ServerSession, None], foo: str) -> str:
195
+ async def use_sampling(ctx: Context[ServerSession, None], foo: str) -> CreateMessageResult:
190
196
  """Use sampling callback."""
191
197
 
192
198
  result = await ctx.session.create_message(
@@ -199,7 +205,7 @@ async def use_sampling(ctx: Context[ServerSession, None], foo: str) -> str:
199
205
  temperature=0.5,
200
206
  stop_sequences=['potato'],
201
207
  )
202
- return result.model_dump_json(indent=2)
208
+ return result
203
209
 
204
210
 
205
211
  class UserResponse(BaseModel):