pydantic-ai 1.0.12__tar.gz → 1.0.13__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.12 → pydantic_ai-1.0.13}/PKG-INFO +4 -4
  2. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/evals/test_dataset.py +40 -8
  3. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/test_fallback.py +3 -0
  4. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/test_huggingface.py +0 -45
  5. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/test_model_settings.py +42 -1
  6. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/test_agent.py +229 -0
  7. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/test_direct.py +10 -10
  8. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/test_logfire.py +321 -27
  9. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/test_mcp.py +10 -0
  10. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/.gitignore +0 -0
  11. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/LICENSE +0 -0
  12. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/Makefile +0 -0
  13. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/README.md +0 -0
  14. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/pyproject.toml +0 -0
  15. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/__init__.py +0 -0
  16. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/assets/dummy.pdf +0 -0
  17. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/assets/dummy.txt +0 -0
  18. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/assets/kiwi.png +0 -0
  19. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/assets/marcelo.mp3 +0 -0
  20. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/assets/product_name.txt +0 -0
  21. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/assets/small_video.mp4 +0 -0
  22. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_dbos/test_complex_agent_run.yaml +0 -0
  23. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_dbos/test_complex_agent_run_in_workflow.yaml +0 -0
  24. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_dbos/test_complex_agent_run_stream_in_workflow.yaml +0 -0
  25. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_dbos/test_dbos_agent_iter.yaml +0 -0
  26. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_dbos/test_dbos_agent_iter_in_workflow.yaml +0 -0
  27. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_dbos/test_dbos_agent_override_deps_in_workflow.yaml +0 -0
  28. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_dbos/test_dbos_agent_override_tools_in_workflow.yaml +0 -0
  29. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_dbos/test_dbos_agent_run.yaml +0 -0
  30. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_dbos/test_dbos_agent_run_in_workflow_with_toolsets.yaml +0 -0
  31. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_dbos/test_dbos_agent_run_stream.yaml +0 -0
  32. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_dbos/test_dbos_agent_run_sync.yaml +0 -0
  33. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_dbos/test_dbos_agent_run_sync_in_workflow.yaml +0 -0
  34. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_dbos/test_dbos_agent_with_dataclass_deps_as_dict.yaml +0 -0
  35. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_dbos/test_dbos_agent_with_hitl_tool.yaml +0 -0
  36. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_dbos/test_dbos_agent_with_hitl_tool_sync.yaml +0 -0
  37. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_dbos/test_dbos_agent_with_model_retry.yaml +0 -0
  38. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_dbos/test_dbos_agent_with_non_dict_deps.yaml +0 -0
  39. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_dbos/test_dbos_agent_with_unserializable_deps_type.yaml +0 -0
  40. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_dbos/test_dbos_model_stream_direct.yaml +0 -0
  41. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_dbos/test_multiple_agents.yaml +0 -0
  42. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_dbos/test_simple_agent_run_in_workflow.yaml +0 -0
  43. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_mcp/test_agent_with_server_not_running.yaml +0 -0
  44. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_mcp/test_agent_with_stdio_server.yaml +0 -0
  45. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_mcp/test_tool_returning_audio_resource.yaml +0 -0
  46. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_mcp/test_tool_returning_audio_resource_link.yaml +0 -0
  47. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_mcp/test_tool_returning_dict.yaml +0 -0
  48. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_mcp/test_tool_returning_error.yaml +0 -0
  49. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_mcp/test_tool_returning_image.yaml +0 -0
  50. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_mcp/test_tool_returning_image_resource.yaml +0 -0
  51. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_mcp/test_tool_returning_image_resource_link.yaml +0 -0
  52. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_mcp/test_tool_returning_multiple_items.yaml +0 -0
  53. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_mcp/test_tool_returning_none.yaml +0 -0
  54. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_mcp/test_tool_returning_str.yaml +0 -0
  55. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_mcp/test_tool_returning_text_resource.yaml +0 -0
  56. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_mcp/test_tool_returning_text_resource_link.yaml +0 -0
  57. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_mcp/test_tool_returning_unstructured_dict.yaml +0 -0
  58. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_settings/test_stop_settings[anthropic].yaml +0 -0
  59. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_settings/test_stop_settings[bedrock].yaml +0 -0
  60. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_settings/test_stop_settings[cohere].yaml +0 -0
  61. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_settings/test_stop_settings[gemini].yaml +0 -0
  62. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_settings/test_stop_settings[google].yaml +0 -0
  63. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_settings/test_stop_settings[groq].yaml +0 -0
  64. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_settings/test_stop_settings[mistral].yaml +0 -0
  65. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_settings/test_stop_settings[openai].yaml +0 -0
  66. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_temporal/test_complex_agent_run.yaml +0 -0
  67. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_temporal/test_complex_agent_run_in_workflow.yaml +0 -0
  68. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_temporal/test_complex_agent_run_stream_in_workflow.yaml +0 -0
  69. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_temporal/test_logfire_plugin.yaml +0 -0
  70. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_temporal/test_multiple_agents.yaml +0 -0
  71. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_temporal/test_simple_agent_run_in_workflow.yaml +0 -0
  72. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_temporal/test_temporal_agent_iter.yaml +0 -0
  73. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_temporal/test_temporal_agent_override_deps_in_workflow.yaml +0 -0
  74. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_temporal/test_temporal_agent_run.yaml +0 -0
  75. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_temporal/test_temporal_agent_run_stream.yaml +0 -0
  76. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_temporal/test_temporal_agent_run_sync.yaml +0 -0
  77. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_temporal/test_temporal_agent_sync_tool_activity_disabled.yaml +0 -0
  78. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_temporal/test_temporal_agent_with_dataclass_deps_as_dict.yaml +0 -0
  79. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_temporal/test_temporal_agent_with_hitl_tool.yaml +0 -0
  80. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_temporal/test_temporal_agent_with_model_retry.yaml +0 -0
  81. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_temporal/test_temporal_agent_with_non_dict_deps.yaml +0 -0
  82. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/cassettes/test_temporal/test_temporal_agent_with_unserializable_deps_type.yaml +0 -0
  83. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/conftest.py +0 -0
  84. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/evals/__init__.py +0 -0
  85. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/evals/test_evaluator_base.py +0 -0
  86. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/evals/test_evaluator_common.py +0 -0
  87. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/evals/test_evaluator_context.py +0 -0
  88. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/evals/test_evaluator_spec.py +0 -0
  89. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/evals/test_evaluators.py +0 -0
  90. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/evals/test_llm_as_a_judge.py +0 -0
  91. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/evals/test_otel.py +0 -0
  92. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/evals/test_render_numbers.py +0 -0
  93. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/evals/test_reporting.py +0 -0
  94. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/evals/test_reports.py +0 -0
  95. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/evals/test_utils.py +0 -0
  96. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/evals/utils.py +0 -0
  97. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/example_modules/README.md +0 -0
  98. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/example_modules/bank_database.py +0 -0
  99. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/example_modules/fake_database.py +0 -0
  100. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/example_modules/mcp_server.py +0 -0
  101. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/example_modules/weather_service.py +0 -0
  102. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/ext/__init__.py +0 -0
  103. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/ext/test_langchain.py +0 -0
  104. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/graph/__init__.py +0 -0
  105. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/graph/test_file_persistence.py +0 -0
  106. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/graph/test_graph.py +0 -0
  107. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/graph/test_mermaid.py +0 -0
  108. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/graph/test_persistence.py +0 -0
  109. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/graph/test_state.py +0 -0
  110. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/graph/test_utils.py +0 -0
  111. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/import_examples.py +0 -0
  112. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/json_body_serializer.py +0 -0
  113. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/mcp_server.py +0 -0
  114. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/__init__.py +0 -0
  115. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_anthropic/test_anthropic_code_execution_tool.yaml +0 -0
  116. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_anthropic/test_anthropic_code_execution_tool_stream.yaml +0 -0
  117. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_anthropic/test_anthropic_memory_tool.yaml +0 -0
  118. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_anthropic/test_anthropic_model_empty_message_on_history.yaml +0 -0
  119. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_anthropic/test_anthropic_model_instructions.yaml +0 -0
  120. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part.yaml +0 -0
  121. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part_from_other_model.yaml +0 -0
  122. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part_redacted.yaml +0 -0
  123. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part_redacted_stream.yaml +0 -0
  124. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part_stream.yaml +0 -0
  125. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_anthropic/test_anthropic_model_web_search_tool_stream.yaml +0 -0
  126. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_anthropic/test_anthropic_output_tool_with_thinking.yaml +0 -0
  127. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_anthropic/test_anthropic_prompted_output.yaml +0 -0
  128. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_anthropic/test_anthropic_prompted_output_multiple.yaml +0 -0
  129. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_anthropic/test_anthropic_server_tool_pass_history_to_another_provider.yaml +0 -0
  130. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_anthropic/test_anthropic_server_tool_receive_history_from_another_provider.yaml +0 -0
  131. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_anthropic/test_anthropic_text_output_function.yaml +0 -0
  132. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_anthropic/test_anthropic_text_parts_ahead_of_built_in_tool_call.yaml +0 -0
  133. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_anthropic/test_anthropic_tool_output.yaml +0 -0
  134. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_anthropic/test_anthropic_tool_with_thinking.yaml +0 -0
  135. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_anthropic/test_anthropic_web_search_tool.yaml +0 -0
  136. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_anthropic/test_anthropic_web_search_tool_stream.yaml +0 -0
  137. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_anthropic/test_document_binary_content_input.yaml +0 -0
  138. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_anthropic/test_document_url_input.yaml +0 -0
  139. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_anthropic/test_extra_headers.yaml +0 -0
  140. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_anthropic/test_image_as_binary_content_tool_response.yaml +0 -0
  141. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_anthropic/test_image_url_input.yaml +0 -0
  142. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_anthropic/test_image_url_input_invalid_mime_type.yaml +0 -0
  143. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_anthropic/test_multiple_parallel_tool_calls.yaml +0 -0
  144. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_anthropic/test_text_document_url_input.yaml +0 -0
  145. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_bedrock/test_bedrock_anthropic_tool_with_thinking.yaml +0 -0
  146. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_bedrock/test_bedrock_empty_system_prompt.yaml +0 -0
  147. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_bedrock/test_bedrock_model.yaml +0 -0
  148. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_bedrock/test_bedrock_model_anthropic_model_without_tools.yaml +0 -0
  149. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_bedrock/test_bedrock_model_guardrail_config.yaml +0 -0
  150. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_bedrock/test_bedrock_model_instructions.yaml +0 -0
  151. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_bedrock/test_bedrock_model_iter_stream.yaml +0 -0
  152. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_bedrock/test_bedrock_model_max_tokens.yaml +0 -0
  153. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_bedrock/test_bedrock_model_other_parameters.yaml +0 -0
  154. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_bedrock/test_bedrock_model_performance_config.yaml +0 -0
  155. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_bedrock/test_bedrock_model_retry.yaml +0 -0
  156. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_bedrock/test_bedrock_model_stream.yaml +0 -0
  157. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_bedrock/test_bedrock_model_structured_output.yaml +0 -0
  158. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_anthropic.yaml +0 -0
  159. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_deepseek.yaml +0 -0
  160. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_from_other_model.yaml +0 -0
  161. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_redacted.yaml +0 -0
  162. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_redacted_stream.yaml +0 -0
  163. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_stream.yaml +0 -0
  164. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_bedrock/test_bedrock_model_top_p.yaml +0 -0
  165. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_bedrock/test_bedrock_multiple_documents_in_history.yaml +0 -0
  166. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_bedrock/test_document_url_input.yaml +0 -0
  167. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_bedrock/test_image_as_binary_content_input.yaml +0 -0
  168. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_bedrock/test_image_url_input.yaml +0 -0
  169. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_bedrock/test_text_as_binary_content_input.yaml +0 -0
  170. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_bedrock/test_text_document_url_input.yaml +0 -0
  171. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_bedrock/test_video_as_binary_content_input.yaml +0 -0
  172. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_bedrock/test_video_url_input.yaml +0 -0
  173. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_cohere/test_cohere_model_instructions.yaml +0 -0
  174. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_cohere/test_cohere_model_thinking_part.yaml +0 -0
  175. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_cohere/test_request_simple_success_with_vcr.yaml +0 -0
  176. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_deepseek/test_deepseek_model_thinking_part.yaml +0 -0
  177. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_deepseek/test_deepseek_model_thinking_stream.yaml +0 -0
  178. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_download_item/test_download_item_application_octet_stream.yaml +0 -0
  179. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_download_item/test_download_item_audio_mpeg.yaml +0 -0
  180. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_download_item/test_download_item_no_content_type.yaml +0 -0
  181. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_gemini/test_document_url_input.yaml +0 -0
  182. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_false.yaml +0 -0
  183. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_true.yaml +0 -0
  184. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_gemini/test_gemini_drop_exclusive_maximum.yaml +0 -0
  185. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_gemini/test_gemini_exclusive_minimum_and_maximum.yaml +0 -0
  186. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_gemini/test_gemini_model_instructions.yaml +0 -0
  187. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_gemini/test_gemini_model_thinking_part.yaml +0 -0
  188. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_gemini/test_gemini_native_output.yaml +0 -0
  189. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_gemini/test_gemini_native_output_multiple.yaml +0 -0
  190. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_gemini/test_gemini_prompted_output.yaml +0 -0
  191. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_gemini/test_gemini_prompted_output_multiple.yaml +0 -0
  192. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_gemini/test_gemini_prompted_output_with_tools.yaml +0 -0
  193. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_gemini/test_gemini_text_output_function.yaml +0 -0
  194. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_gemini/test_gemini_tool_config_any_with_tool_without_args.yaml +0 -0
  195. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_gemini/test_gemini_tool_output.yaml +0 -0
  196. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_gemini/test_gemini_youtube_video_url_input.yaml +0 -0
  197. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_gemini/test_image_as_binary_content_input.yaml +0 -0
  198. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_gemini/test_image_as_binary_content_tool_response.yaml +0 -0
  199. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_gemini/test_image_url_input.yaml +0 -0
  200. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_gemini/test_labels_are_ignored_with_gla_provider.yaml +0 -0
  201. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_gemini/test_video_as_binary_content_input.yaml +0 -0
  202. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_gemini/test_video_url_input.yaml +0 -0
  203. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_gemini_vertex/test_labels.yaml +0 -0
  204. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_gemini_vertex/test_url_input[AudioUrl (gs)].yaml +0 -0
  205. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_gemini_vertex/test_url_input[AudioUrl].yaml +0 -0
  206. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_gemini_vertex/test_url_input[DocumentUrl (gs)].yaml +0 -0
  207. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_gemini_vertex/test_url_input[DocumentUrl].yaml +0 -0
  208. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_gemini_vertex/test_url_input[ImageUrl (gs)].yaml +0 -0
  209. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_gemini_vertex/test_url_input[ImageUrl].yaml +0 -0
  210. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl (YouTube)].yaml +0 -0
  211. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl (gs)].yaml +0 -0
  212. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl].yaml +0 -0
  213. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_gemini_vertex/test_url_input_force_download.yaml +0 -0
  214. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_builtin_tools_with_other_tools.yaml +0 -0
  215. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model.yaml +0 -0
  216. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_builtin_code_execution_stream.yaml +0 -0
  217. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_code_execution_tool.yaml +0 -0
  218. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_document_url_input.yaml +0 -0
  219. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_empty_assistant_response.yaml +0 -0
  220. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_empty_user_prompt.yaml +0 -0
  221. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_image_as_binary_content_input.yaml +0 -0
  222. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_image_url_input.yaml +0 -0
  223. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_instructions.yaml +0 -0
  224. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_iter_stream.yaml +0 -0
  225. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_max_tokens.yaml +0 -0
  226. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_multiple_documents_in_history.yaml +0 -0
  227. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_receive_web_search_history_from_another_provider.yaml +0 -0
  228. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_retry.yaml +0 -0
  229. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_safety_settings.yaml +0 -0
  230. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_server_tool_receive_history_from_another_provider.yaml +0 -0
  231. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_stream.yaml +0 -0
  232. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_structured_output.yaml +0 -0
  233. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_text_as_binary_content_input.yaml +0 -0
  234. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_text_document_url_input.yaml +0 -0
  235. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_thinking_config.yaml +0 -0
  236. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_thinking_part.yaml +0 -0
  237. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_thinking_part_from_other_model.yaml +0 -0
  238. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_thinking_part_iter.yaml +0 -0
  239. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_top_p.yaml +0 -0
  240. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_url_context_tool.yaml +0 -0
  241. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_usage_limit_exceeded.yaml +0 -0
  242. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_usage_limit_not_exceeded.yaml +0 -0
  243. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_vertex_labels.yaml +0 -0
  244. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_vertex_provider.yaml +0 -0
  245. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_video_as_binary_content_input.yaml +0 -0
  246. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_video_as_binary_content_input_with_vendor_metadata.yaml +0 -0
  247. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_video_url_input.yaml +0 -0
  248. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_web_search_tool.yaml +0 -0
  249. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_web_search_tool_stream.yaml +0 -0
  250. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_model_youtube_video_url_input_with_vendor_metadata.yaml +0 -0
  251. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_native_output.yaml +0 -0
  252. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_native_output_multiple.yaml +0 -0
  253. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_prompted_output.yaml +0 -0
  254. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_prompted_output_multiple.yaml +0 -0
  255. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_prompted_output_with_tools.yaml +0 -0
  256. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_text_output_function.yaml +0 -0
  257. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_timeout.yaml +0 -0
  258. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_tool_config_any_with_tool_without_args.yaml +0 -0
  259. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_tool_output.yaml +0 -0
  260. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_url_input[AudioUrl (gs)].yaml +0 -0
  261. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_url_input[AudioUrl].yaml +0 -0
  262. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_url_input[DocumentUrl (gs)].yaml +0 -0
  263. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_url_input[DocumentUrl].yaml +0 -0
  264. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_url_input[ImageUrl (gs)].yaml +0 -0
  265. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_url_input[ImageUrl].yaml +0 -0
  266. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl (YouTube)].yaml +0 -0
  267. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl (gs)].yaml +0 -0
  268. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl].yaml +0 -0
  269. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_url_input_force_download.yaml +0 -0
  270. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_google/test_google_vertexai_model_usage_limit_exceeded.yaml +0 -0
  271. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_groq/test_extra_headers.yaml +0 -0
  272. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_groq/test_groq_model_instructions.yaml +0 -0
  273. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_groq/test_groq_model_thinking_part.yaml +0 -0
  274. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_groq/test_groq_model_thinking_part_iter.yaml +0 -0
  275. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_groq/test_groq_model_web_search_tool.yaml +0 -0
  276. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_groq/test_groq_model_web_search_tool_stream.yaml +0 -0
  277. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_groq/test_groq_native_output.yaml +0 -0
  278. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_groq/test_groq_prompted_output.yaml +0 -0
  279. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_groq/test_image_as_binary_content_input.yaml +0 -0
  280. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_groq/test_image_as_binary_content_tool_response.yaml +0 -0
  281. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_groq/test_image_url_input.yaml +0 -0
  282. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_groq/test_tool_regular_error.yaml +0 -0
  283. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_groq/test_tool_use_failed_error.yaml +0 -0
  284. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_groq/test_tool_use_failed_error_streaming.yaml +0 -0
  285. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_huggingface/test_hf_model_instructions.yaml +0 -0
  286. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_huggingface/test_hf_model_thinking_part.yaml +0 -0
  287. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_huggingface/test_hf_model_thinking_part_iter.yaml +0 -0
  288. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_huggingface/test_image_as_binary_content_input.yaml +0 -0
  289. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_huggingface/test_image_url_input.yaml +0 -0
  290. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_huggingface/test_max_completion_tokens[Qwen-Qwen2.5-72B-Instruct].yaml +0 -0
  291. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_huggingface/test_max_completion_tokens[deepseek-ai-DeepSeek-R1-0528].yaml +0 -0
  292. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_huggingface/test_max_completion_tokens[meta-llama-Llama-3.3-70B-Instruct].yaml +0 -0
  293. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_huggingface/test_request_simple_success_with_vcr.yaml +0 -0
  294. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_huggingface/test_request_simple_usage.yaml +0 -0
  295. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_huggingface/test_simple_completion.yaml +0 -0
  296. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_huggingface/test_stream_completion.yaml +0 -0
  297. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_mistral/test_image_as_binary_content_tool_response.yaml +0 -0
  298. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_mistral/test_mistral_model_instructions.yaml +0 -0
  299. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_mistral/test_mistral_model_thinking_part.yaml +0 -0
  300. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_mistral/test_mistral_model_thinking_part_iter.yaml +0 -0
  301. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_model_names/test_known_model_names.yaml +0 -0
  302. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_audio_as_binary_content_input.yaml +0 -0
  303. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_compatible_api_with_tool_calls_without_id.yaml +0 -0
  304. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_document_as_binary_content_input.yaml +0 -0
  305. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_document_as_binary_content_input_with_tool.yaml +0 -0
  306. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_document_url_input.yaml +0 -0
  307. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_extra_headers.yaml +0 -0
  308. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_image_as_binary_content_input.yaml +0 -0
  309. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_image_as_binary_content_tool_response.yaml +0 -0
  310. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_image_url_tool_response.yaml +0 -0
  311. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_invalid_response.yaml +0 -0
  312. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4.5-preview].yaml +0 -0
  313. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4o-mini].yaml +0 -0
  314. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_max_completion_tokens[o3-mini].yaml +0 -0
  315. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_multiple_agent_tool_calls.yaml +0 -0
  316. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_openai_audio_url_input.yaml +0 -0
  317. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_openai_instructions.yaml +0 -0
  318. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_openai_instructions_with_tool_calls_keep_instructions.yaml +0 -0
  319. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_openai_model_cerebras_provider.yaml +0 -0
  320. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_openai_model_cerebras_provider_harmony.yaml +0 -0
  321. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_openai_model_cerebras_provider_qwen_3_coder.yaml +0 -0
  322. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_openai_model_settings_temperature_ignored_on_gpt_5.yaml +0 -0
  323. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_openai_model_thinking_part.yaml +0 -0
  324. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_openai_model_without_system_prompt.yaml +0 -0
  325. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_openai_native_output.yaml +0 -0
  326. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_openai_native_output_multiple.yaml +0 -0
  327. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[developer].yaml +0 -0
  328. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[system].yaml +0 -0
  329. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_openai_prompted_output.yaml +0 -0
  330. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_openai_prompted_output_multiple.yaml +0 -0
  331. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_openai_text_output_function.yaml +0 -0
  332. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_openai_tool_output.yaml +0 -0
  333. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_openai_web_search_tool.yaml +0 -0
  334. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_openai_web_search_tool_model_not_supported.yaml +0 -0
  335. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_openai_web_search_tool_with_user_location.yaml +0 -0
  336. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_reasoning_model_with_temperature.yaml +0 -0
  337. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_system_prompt_role_o1_mini.yaml +0 -0
  338. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_text_document_as_binary_content_input.yaml +0 -0
  339. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_text_document_url_input.yaml +0 -0
  340. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_text_response.yaml +0 -0
  341. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_user_id.yaml +0 -0
  342. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai/test_valid_response.yaml +0 -0
  343. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_audio_as_binary_content_input.yaml +0 -0
  344. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_input.yaml +0 -0
  345. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_tool_response.yaml +0 -0
  346. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_native_output.yaml +0 -0
  347. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_native_output_multiple.yaml +0 -0
  348. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_openai_previous_response_id.yaml +0 -0
  349. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_openai_previous_response_id_auto_mode.yaml +0 -0
  350. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_openai_responses_code_execution_return_image.yaml +0 -0
  351. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_as_binary_content_input.yaml +0 -0
  352. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_url_input.yaml +0 -0
  353. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_url_input.yaml +0 -0
  354. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_builtin_tools.yaml +0 -0
  355. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_builtin_tools_web_search.yaml +0 -0
  356. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_http_error.yaml +0 -0
  357. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_instructions.yaml +0 -0
  358. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_retry.yaml +0 -0
  359. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response.yaml +0 -0
  360. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response_with_tool_call.yaml +0 -0
  361. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_thinking_part.yaml +0 -0
  362. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_web_search_tool.yaml +0 -0
  363. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_web_search_tool_stream.yaml +0 -0
  364. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_web_search_tool_with_invalid_region.yaml +0 -0
  365. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_web_search_tool_with_user_location.yaml +0 -0
  366. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_openai_responses_non_reasoning_model_no_item_ids.yaml +0 -0
  367. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_openai_responses_output_type.yaml +0 -0
  368. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_effort.yaml +0 -0
  369. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_generate_summary.yaml +0 -0
  370. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_openai_responses_stream.yaml +0 -0
  371. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_openai_responses_streaming_usage.yaml +0 -0
  372. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_openai_responses_system_prompt.yaml +0 -0
  373. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_openai_responses_text_document_url_input.yaml +0 -0
  374. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_openai_responses_thinking_part_from_other_model.yaml +0 -0
  375. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_openai_responses_thinking_part_iter.yaml +0 -0
  376. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_openai_responses_thinking_with_code_execution_tool.yaml +0 -0
  377. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_openai_responses_thinking_with_code_execution_tool_stream.yaml +0 -0
  378. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_openai_responses_thinking_with_modified_history.yaml +0 -0
  379. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_openai_responses_thinking_with_tool_calls.yaml +0 -0
  380. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_openai_responses_verbosity.yaml +0 -0
  381. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_prompted_output.yaml +0 -0
  382. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_prompted_output_multiple.yaml +0 -0
  383. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_reasoning_model_with_temperature.yaml +0 -0
  384. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_text_output_function.yaml +0 -0
  385. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/cassettes/test_openai_responses/test_tool_output.yaml +0 -0
  386. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/mock_async_stream.py +0 -0
  387. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/mock_openai.py +0 -0
  388. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/test_anthropic.py +0 -0
  389. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/test_bedrock.py +0 -0
  390. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/test_cohere.py +0 -0
  391. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/test_deepseek.py +0 -0
  392. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/test_download_item.py +0 -0
  393. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/test_gemini.py +0 -0
  394. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/test_gemini_vertex.py +0 -0
  395. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/test_google.py +0 -0
  396. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/test_groq.py +0 -0
  397. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/test_instrumented.py +0 -0
  398. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/test_mcp_sampling.py +0 -0
  399. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/test_mistral.py +0 -0
  400. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/test_model.py +0 -0
  401. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/test_model_function.py +0 -0
  402. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/test_model_names.py +0 -0
  403. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/test_model_request_parameters.py +0 -0
  404. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/test_model_test.py +0 -0
  405. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/test_openai.py +0 -0
  406. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/models/test_openai_responses.py +0 -0
  407. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/parts_from_messages.py +0 -0
  408. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/__init__.py +0 -0
  409. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/cassettes/test_azure/test_azure_provider_call.yaml +0 -0
  410. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/cassettes/test_gateway/test_gateway_provider_with_anthropic.yaml +0 -0
  411. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/cassettes/test_gateway/test_gateway_provider_with_google_vertex.yaml +0 -0
  412. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/cassettes/test_gateway/test_gateway_provider_with_groq.yaml +0 -0
  413. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/cassettes/test_gateway/test_gateway_provider_with_openai.yaml +0 -0
  414. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/cassettes/test_gateway/test_gateway_provider_with_openai_responses.yaml +0 -0
  415. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/cassettes/test_google_vertex/test_vertexai_provider.yaml +0 -0
  416. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/cassettes/test_heroku/test_heroku_model_provider_claude_3_7_sonnet.yaml +0 -0
  417. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/cassettes/test_openrouter/test_openrouter_with_google_model.yaml +0 -0
  418. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/test_anthropic.py +0 -0
  419. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/test_azure.py +0 -0
  420. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/test_bedrock.py +0 -0
  421. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/test_cerebras.py +0 -0
  422. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/test_cohere.py +0 -0
  423. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/test_deepseek.py +0 -0
  424. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/test_fireworks.py +0 -0
  425. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/test_gateway.py +0 -0
  426. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/test_github.py +0 -0
  427. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/test_google_gla.py +0 -0
  428. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/test_google_vertex.py +0 -0
  429. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/test_grok.py +0 -0
  430. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/test_groq.py +0 -0
  431. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/test_heroku.py +0 -0
  432. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/test_huggingface.py +0 -0
  433. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/test_litellm.py +0 -0
  434. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/test_mistral.py +0 -0
  435. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/test_moonshotai.py +0 -0
  436. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/test_ollama.py +0 -0
  437. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/test_openai.py +0 -0
  438. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/test_openrouter.py +0 -0
  439. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/test_provider_names.py +0 -0
  440. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/test_together.py +0 -0
  441. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/providers/test_vercel.py +0 -0
  442. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/test_a2a.py +0 -0
  443. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/test_ag_ui.py +0 -0
  444. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/test_builtin_tools.py +0 -0
  445. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/test_cli.py +0 -0
  446. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/test_dbos.py +0 -0
  447. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/test_deps.py +0 -0
  448. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/test_examples.py +0 -0
  449. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/test_format_as_xml.py +0 -0
  450. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/test_function_schema.py +0 -0
  451. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/test_history_processor.py +0 -0
  452. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/test_json_body_serializer.py +0 -0
  453. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/test_live.py +0 -0
  454. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/test_messages.py +0 -0
  455. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/test_parts_manager.py +0 -0
  456. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/test_settings.py +0 -0
  457. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/test_streaming.py +0 -0
  458. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/test_temporal.py +0 -0
  459. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/test_tenacity.py +0 -0
  460. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/test_thinking_part.py +0 -0
  461. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/test_tools.py +0 -0
  462. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/test_toolsets.py +0 -0
  463. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/test_usage_limits.py +0 -0
  464. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/test_utils.py +0 -0
  465. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/tests/typed_agent.py +0 -0
  466. {pydantic_ai-1.0.12 → pydantic_ai-1.0.13}/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.12
3
+ Version: 1.0.13
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,13 +26,13 @@ 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.0.12
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.13
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.0.12; extra == 'dbos'
33
+ Requires-Dist: pydantic-ai-slim[dbos]==1.0.13; extra == 'dbos'
34
34
  Provides-Extra: examples
35
- Requires-Dist: pydantic-ai-examples==1.0.12; extra == 'examples'
35
+ Requires-Dist: pydantic-ai-examples==1.0.13; extra == 'examples'
36
36
  Description-Content-Type: text/markdown
37
37
 
38
38
  <div align="center">
@@ -7,6 +7,7 @@ from pathlib import Path
7
7
  from typing import Any
8
8
 
9
9
  import pytest
10
+ import yaml
10
11
  from dirty_equals import HasRepr, IsNumber
11
12
  from inline_snapshot import snapshot
12
13
  from pydantic import BaseModel, TypeAdapter
@@ -106,7 +107,7 @@ def example_cases() -> list[Case[TaskInput, TaskOutput, TaskMetadata]]:
106
107
  def example_dataset(
107
108
  example_cases: list[Case[TaskInput, TaskOutput, TaskMetadata]],
108
109
  ) -> Dataset[TaskInput, TaskOutput, TaskMetadata]:
109
- return Dataset[TaskInput, TaskOutput, TaskMetadata](cases=example_cases)
110
+ return Dataset[TaskInput, TaskOutput, TaskMetadata](name='example', cases=example_cases)
110
111
 
111
112
 
112
113
  @pytest.fixture
@@ -820,10 +821,29 @@ async def test_serialization_to_yaml(example_dataset: Dataset[TaskInput, TaskOut
820
821
  # Test loading back
821
822
  loaded_dataset = Dataset[TaskInput, TaskOutput, TaskMetadata].from_file(yaml_path)
822
823
  assert len(loaded_dataset.cases) == 2
824
+ assert loaded_dataset.name == 'example'
823
825
  assert loaded_dataset.cases[0].name == 'case1'
824
826
  assert loaded_dataset.cases[0].inputs.query == 'What is 2+2?'
825
827
 
826
828
 
829
+ async def test_deserializing_without_name(
830
+ example_dataset: Dataset[TaskInput, TaskOutput, TaskMetadata], tmp_path: Path
831
+ ):
832
+ """Test serializing a dataset to YAML."""
833
+ # Save the dataset
834
+ yaml_path = tmp_path / 'test_cases.yaml'
835
+ example_dataset.to_file(yaml_path)
836
+
837
+ # Rewrite the file _without_ a name to test deserializing a name-less file
838
+ obj = yaml.safe_load(yaml_path.read_text())
839
+ obj.pop('name', None)
840
+ yaml_path.write_text(yaml.dump(obj))
841
+
842
+ # Test loading results in the name coming from the filename stem
843
+ loaded_dataset = Dataset[TaskInput, TaskOutput, TaskMetadata].from_file(yaml_path)
844
+ assert loaded_dataset.name == 'test_cases'
845
+
846
+
827
847
  async def test_serialization_to_json(example_dataset: Dataset[TaskInput, TaskOutput, TaskMetadata], tmp_path: Path):
828
848
  """Test serializing a dataset to JSON."""
829
849
  json_path = tmp_path / 'test_cases.json'
@@ -855,6 +875,7 @@ def test_serialization_errors(tmp_path: Path):
855
875
  async def test_from_text():
856
876
  """Test creating a dataset from text."""
857
877
  dataset_dict = {
878
+ 'name': 'my dataset',
858
879
  'cases': [
859
880
  {
860
881
  'name': '1',
@@ -874,6 +895,7 @@ async def test_from_text():
874
895
  }
875
896
 
876
897
  loaded_dataset = Dataset[TaskInput, TaskOutput, TaskMetadata].from_text(json.dumps(dataset_dict))
898
+ assert loaded_dataset.name == 'my dataset'
877
899
  assert loaded_dataset.cases == snapshot(
878
900
  [
879
901
  Case(
@@ -1241,7 +1263,7 @@ async def test_dataset_evaluate_with_custom_name(example_dataset: Dataset[TaskIn
1241
1263
  async def task(inputs: TaskInput) -> TaskOutput:
1242
1264
  return TaskOutput(answer=inputs.query.upper())
1243
1265
 
1244
- report = await example_dataset.evaluate(task, name='custom_task')
1266
+ report = await example_dataset.evaluate(task, task_name='custom_task')
1245
1267
  assert report.name == 'custom_task'
1246
1268
 
1247
1269
 
@@ -1491,16 +1513,26 @@ async def test_evaluate_async_logfire(
1491
1513
  (
1492
1514
  'evaluate {name}',
1493
1515
  {
1494
- 'name': 'mock_async_task',
1495
- 'n_cases': 2,
1496
1516
  'assertion_pass_rate': 1.0,
1497
- 'logfire.msg_template': 'evaluate {name}',
1498
- 'logfire.msg': 'evaluate mock_async_task',
1499
- 'logfire.span_type': 'span',
1517
+ 'dataset_name': 'example',
1518
+ 'gen_ai.operation.name': 'experiment',
1500
1519
  'logfire.json_schema': {
1520
+ 'properties': {
1521
+ 'assertion_pass_rate': {},
1522
+ 'dataset_name': {},
1523
+ 'gen_ai.operation.name': {},
1524
+ 'n_cases': {},
1525
+ 'name': {},
1526
+ 'task_name': {},
1527
+ },
1501
1528
  'type': 'object',
1502
- 'properties': {'name': {}, 'n_cases': {}, 'assertion_pass_rate': {}},
1503
1529
  },
1530
+ 'logfire.msg': 'evaluate mock_async_task',
1531
+ 'logfire.msg_template': 'evaluate {name}',
1532
+ 'logfire.span_type': 'span',
1533
+ 'n_cases': 2,
1534
+ 'name': 'mock_async_task',
1535
+ 'task_name': 'mock_async_task',
1504
1536
  },
1505
1537
  ),
1506
1538
  (
@@ -169,6 +169,7 @@ def test_first_failed_instrumented(capfire: CaptureLogfire) -> None:
169
169
  'attributes': {
170
170
  'model_name': 'fallback:function:failure_response:,function:success_response:',
171
171
  'agent_name': 'agent',
172
+ 'gen_ai.agent.name': 'agent',
172
173
  'logfire.msg': 'agent run',
173
174
  'logfire.span_type': 'span',
174
175
  'gen_ai.usage.input_tokens': 51,
@@ -268,6 +269,7 @@ async def test_first_failed_instrumented_stream(capfire: CaptureLogfire) -> None
268
269
  'attributes': {
269
270
  'model_name': 'fallback:function::failure_response_stream,function::success_response_stream',
270
271
  'agent_name': 'agent',
272
+ 'gen_ai.agent.name': 'agent',
271
273
  'logfire.msg': 'agent run',
272
274
  'logfire.span_type': 'span',
273
275
  'gen_ai.usage.input_tokens': 50,
@@ -375,6 +377,7 @@ def test_all_failed_instrumented(capfire: CaptureLogfire) -> None:
375
377
  'attributes': {
376
378
  'model_name': 'fallback:function:failure_response:,function:failure_response:',
377
379
  'agent_name': 'agent',
380
+ 'gen_ai.agent.name': 'agent',
378
381
  'logfire.msg': 'agent run',
379
382
  'logfire.span_type': 'span',
380
383
  'pydantic_ai.all_messages': [{'role': 'user', 'parts': [{'type': 'text', 'content': 'hello'}]}],
@@ -893,51 +893,6 @@ text 2\
893
893
  )
894
894
 
895
895
 
896
- @pytest.mark.parametrize('strict', [True, False, None])
897
- async def test_tool_strict_mode(allow_model_requests: None, strict: bool | None):
898
- tool_call = ChatCompletionOutputToolCall.parse_obj_as_instance( # type:ignore
899
- {
900
- 'function': ChatCompletionOutputFunctionDefinition.parse_obj_as_instance( # type:ignore
901
- {
902
- 'name': 'my_tool',
903
- 'arguments': '{"x": 42}',
904
- }
905
- ),
906
- 'id': '1',
907
- 'type': 'function',
908
- }
909
- )
910
- responses = [
911
- completion_message(
912
- ChatCompletionOutputMessage.parse_obj_as_instance( # type:ignore
913
- {
914
- 'content': None,
915
- 'role': 'assistant',
916
- 'tool_calls': [tool_call],
917
- }
918
- )
919
- ),
920
- completion_message(ChatCompletionOutputMessage(content='final response', role='assistant')), # type: ignore
921
- ]
922
- mock_client = MockHuggingFace.create_mock(responses)
923
- model = HuggingFaceModel('hf-model', provider=HuggingFaceProvider(hf_client=mock_client, api_key='x'))
924
- agent = Agent(model)
925
-
926
- @agent.tool_plain(strict=strict)
927
- def my_tool(x: int) -> int:
928
- return x
929
-
930
- result = await agent.run('hello')
931
- assert result.output == 'final response'
932
-
933
- kwargs = get_mock_chat_completion_kwargs(mock_client)[0]
934
- tools = kwargs['tools']
935
- if strict is not None:
936
- assert tools[0]['function']['strict'] is strict
937
- else:
938
- assert 'strict' not in tools[0]['function']
939
-
940
-
941
896
  @pytest.mark.parametrize(
942
897
  'content_item, error_message',
943
898
  [
@@ -2,7 +2,12 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from pydantic_ai import Agent, ModelMessage, ModelResponse, TextPart
5
+ import asyncio
6
+
7
+ from pydantic_ai import Agent
8
+ from pydantic_ai.direct import model_request as direct_model_request
9
+ from pydantic_ai.messages import ModelMessage, ModelRequest, ModelResponse, TextPart
10
+ from pydantic_ai.models import ModelRequestParameters
6
11
  from pydantic_ai.models.function import AgentInfo, FunctionModel
7
12
  from pydantic_ai.models.instrumented import InstrumentedModel
8
13
  from pydantic_ai.models.test import TestModel
@@ -161,3 +166,39 @@ def test_empty_settings_objects():
161
166
  assert captured_settings is not None
162
167
  assert captured_settings.get('temperature') == 0.75
163
168
  assert len(captured_settings) == 1 # Only one setting should be present
169
+
170
+
171
+ def test_direct_model_request_merges_model_settings():
172
+ """Ensure direct requests merge model defaults with provided run settings."""
173
+
174
+ captured_settings = None
175
+
176
+ async def capture(messages: list[ModelMessage], agent_info: AgentInfo) -> ModelResponse:
177
+ nonlocal captured_settings
178
+ captured_settings = agent_info.model_settings
179
+ return ModelResponse(parts=[TextPart('ok')])
180
+
181
+ model = FunctionModel(
182
+ capture,
183
+ settings=ModelSettings(max_tokens=50, temperature=0.3),
184
+ )
185
+
186
+ messages: list[ModelMessage] = [ModelRequest.user_text_prompt('hi')]
187
+ run_settings = ModelSettings(temperature=0.9, top_p=0.2)
188
+
189
+ async def _run() -> ModelResponse:
190
+ return await direct_model_request(
191
+ model,
192
+ messages,
193
+ model_settings=run_settings,
194
+ model_request_parameters=ModelRequestParameters(),
195
+ )
196
+
197
+ response = asyncio.run(_run())
198
+
199
+ assert response.parts == [TextPart('ok')]
200
+ assert captured_settings == {
201
+ 'max_tokens': 50,
202
+ 'temperature': 0.9,
203
+ 'top_p': 0.2,
204
+ }
@@ -1,3 +1,4 @@
1
+ import asyncio
1
2
  import json
2
3
  import re
3
4
  import sys
@@ -5148,3 +5149,231 @@ async def test_consecutive_model_responses_in_history():
5148
5149
  ),
5149
5150
  ]
5150
5151
  )
5152
+
5153
+
5154
+ def test_override_instructions_basic():
5155
+ """Test that override can override instructions."""
5156
+ agent = Agent('test')
5157
+
5158
+ @agent.instructions
5159
+ def instr_fn() -> str:
5160
+ return 'SHOULD_BE_IGNORED'
5161
+
5162
+ with capture_run_messages() as base_messages:
5163
+ agent.run_sync('Hello', model=TestModel(custom_output_text='baseline'))
5164
+
5165
+ base_req = base_messages[0]
5166
+ assert isinstance(base_req, ModelRequest)
5167
+ assert base_req.instructions == 'SHOULD_BE_IGNORED'
5168
+
5169
+ with agent.override(instructions='OVERRIDE'):
5170
+ with capture_run_messages() as messages:
5171
+ agent.run_sync('Hello', model=TestModel(custom_output_text='ok'))
5172
+
5173
+ req = messages[0]
5174
+ assert isinstance(req, ModelRequest)
5175
+ assert req.instructions == 'OVERRIDE'
5176
+
5177
+
5178
+ def test_override_reset_after_context():
5179
+ """Test that instructions are reset after exiting the override context."""
5180
+ agent = Agent('test', instructions='ORIG')
5181
+
5182
+ with agent.override(instructions='NEW'):
5183
+ with capture_run_messages() as messages_new:
5184
+ agent.run_sync('Hi', model=TestModel(custom_output_text='ok'))
5185
+
5186
+ with capture_run_messages() as messages_orig:
5187
+ agent.run_sync('Hi', model=TestModel(custom_output_text='ok'))
5188
+
5189
+ req_new = messages_new[0]
5190
+ assert isinstance(req_new, ModelRequest)
5191
+ req_orig = messages_orig[0]
5192
+ assert isinstance(req_orig, ModelRequest)
5193
+ assert req_new.instructions == 'NEW'
5194
+ assert req_orig.instructions == 'ORIG'
5195
+
5196
+
5197
+ def test_override_none_clears_instructions():
5198
+ """Test that passing None for instructions clears all instructions."""
5199
+ agent = Agent('test', instructions='BASE')
5200
+
5201
+ @agent.instructions
5202
+ def instr_fn() -> str: # pragma: no cover - ignored under override
5203
+ return 'ALSO_BASE'
5204
+
5205
+ with agent.override(instructions=None):
5206
+ with capture_run_messages() as messages:
5207
+ agent.run_sync('Hello', model=TestModel(custom_output_text='ok'))
5208
+
5209
+ req = messages[0]
5210
+ assert isinstance(req, ModelRequest)
5211
+ assert req.instructions is None
5212
+
5213
+
5214
+ def test_override_instructions_callable_replaces_functions():
5215
+ """Override with a callable should replace existing instruction functions."""
5216
+ agent = Agent('test')
5217
+
5218
+ @agent.instructions
5219
+ def base_fn() -> str:
5220
+ return 'BASE_FN'
5221
+
5222
+ def override_fn() -> str:
5223
+ return 'OVERRIDE_FN'
5224
+
5225
+ with capture_run_messages() as base_messages:
5226
+ agent.run_sync('Hello', model=TestModel(custom_output_text='baseline'))
5227
+
5228
+ base_req = base_messages[0]
5229
+ assert isinstance(base_req, ModelRequest)
5230
+ assert base_req.instructions is not None
5231
+ assert 'BASE_FN' in base_req.instructions
5232
+
5233
+ with agent.override(instructions=override_fn):
5234
+ with capture_run_messages() as messages:
5235
+ agent.run_sync('Hello', model=TestModel(custom_output_text='ok'))
5236
+
5237
+ req = messages[0]
5238
+ assert isinstance(req, ModelRequest)
5239
+ assert req.instructions == 'OVERRIDE_FN'
5240
+ assert 'BASE_FN' not in req.instructions
5241
+
5242
+
5243
+ async def test_override_instructions_async_callable():
5244
+ """Override with an async callable should be awaited."""
5245
+ agent = Agent('test')
5246
+
5247
+ async def override_fn() -> str:
5248
+ await asyncio.sleep(0)
5249
+ return 'ASYNC_FN'
5250
+
5251
+ with agent.override(instructions=override_fn):
5252
+ with capture_run_messages() as messages:
5253
+ await agent.run('Hi', model=TestModel(custom_output_text='ok'))
5254
+
5255
+ req = messages[0]
5256
+ assert isinstance(req, ModelRequest)
5257
+ assert req.instructions == 'ASYNC_FN'
5258
+
5259
+
5260
+ def test_override_instructions_sequence_mixed_types():
5261
+ """Override can mix literal strings and functions."""
5262
+ agent = Agent('test', instructions='BASE')
5263
+
5264
+ def override_fn() -> str:
5265
+ return 'FUNC_PART'
5266
+
5267
+ def override_fn_2() -> str:
5268
+ return 'FUNC_PART_2'
5269
+
5270
+ with agent.override(instructions=['OVERRIDE1', override_fn, 'OVERRIDE2', override_fn_2]):
5271
+ with capture_run_messages() as messages:
5272
+ agent.run_sync('Hello', model=TestModel(custom_output_text='ok'))
5273
+
5274
+ req = messages[0]
5275
+ assert isinstance(req, ModelRequest)
5276
+ assert req.instructions == 'OVERRIDE1\nOVERRIDE2\n\nFUNC_PART\n\nFUNC_PART_2'
5277
+ assert 'BASE' not in req.instructions
5278
+
5279
+
5280
+ async def test_override_concurrent_isolation():
5281
+ """Test that concurrent overrides are isolated from each other."""
5282
+ agent = Agent('test', instructions='ORIG')
5283
+
5284
+ async def run_with(instr: str) -> str | None:
5285
+ with agent.override(instructions=instr):
5286
+ with capture_run_messages() as messages:
5287
+ await agent.run('Hi', model=TestModel(custom_output_text='ok'))
5288
+ req = messages[0]
5289
+ assert isinstance(req, ModelRequest)
5290
+ return req.instructions
5291
+
5292
+ a, b = await asyncio.gather(
5293
+ run_with('A'),
5294
+ run_with('B'),
5295
+ )
5296
+
5297
+ assert a == 'A'
5298
+ assert b == 'B'
5299
+
5300
+
5301
+ def test_override_replaces_instructions():
5302
+ """Test overriding instructions replaces the base instructions."""
5303
+ agent = Agent('test', instructions='ORIG_INSTR')
5304
+
5305
+ with agent.override(instructions='NEW_INSTR'):
5306
+ with capture_run_messages() as messages:
5307
+ agent.run_sync('Hi', model=TestModel(custom_output_text='ok'))
5308
+
5309
+ req = messages[0]
5310
+ assert isinstance(req, ModelRequest)
5311
+ assert req.instructions == 'NEW_INSTR'
5312
+
5313
+
5314
+ def test_override_nested_contexts():
5315
+ """Test nested override contexts."""
5316
+ agent = Agent('test', instructions='ORIG')
5317
+
5318
+ with agent.override(instructions='OUTER'):
5319
+ with capture_run_messages() as outer_messages:
5320
+ agent.run_sync('Hi', model=TestModel(custom_output_text='ok'))
5321
+
5322
+ with agent.override(instructions='INNER'):
5323
+ with capture_run_messages() as inner_messages:
5324
+ agent.run_sync('Hi', model=TestModel(custom_output_text='ok'))
5325
+
5326
+ outer_req = outer_messages[0]
5327
+ assert isinstance(outer_req, ModelRequest)
5328
+ inner_req = inner_messages[0]
5329
+ assert isinstance(inner_req, ModelRequest)
5330
+
5331
+ assert outer_req.instructions == 'OUTER'
5332
+ assert inner_req.instructions == 'INNER'
5333
+
5334
+
5335
+ async def test_override_async_run():
5336
+ """Test override with async run method."""
5337
+ agent = Agent('test', instructions='ORIG')
5338
+
5339
+ with agent.override(instructions='ASYNC_OVERRIDE'):
5340
+ with capture_run_messages() as messages:
5341
+ await agent.run('Hi', model=TestModel(custom_output_text='ok'))
5342
+
5343
+ req = messages[0]
5344
+ assert isinstance(req, ModelRequest)
5345
+ assert req.instructions == 'ASYNC_OVERRIDE'
5346
+
5347
+
5348
+ def test_override_with_dynamic_prompts():
5349
+ """Test override interacting with dynamic prompts."""
5350
+ agent = Agent('test')
5351
+
5352
+ dynamic_value = 'DYNAMIC'
5353
+
5354
+ @agent.system_prompt
5355
+ def dynamic_sys() -> str:
5356
+ return dynamic_value
5357
+
5358
+ @agent.instructions
5359
+ def dynamic_instr() -> str:
5360
+ return 'DYNAMIC_INSTR'
5361
+
5362
+ with capture_run_messages() as base_messages:
5363
+ agent.run_sync('Hi', model=TestModel(custom_output_text='baseline'))
5364
+
5365
+ base_req = base_messages[0]
5366
+ assert isinstance(base_req, ModelRequest)
5367
+ assert base_req.instructions == 'DYNAMIC_INSTR'
5368
+
5369
+ # Override should take precedence over dynamic instructions but leave system prompts intact
5370
+ with agent.override(instructions='OVERRIDE_INSTR'):
5371
+ with capture_run_messages() as messages:
5372
+ agent.run_sync('Hi', model=TestModel(custom_output_text='ok'))
5373
+
5374
+ req = messages[0]
5375
+ assert isinstance(req, ModelRequest)
5376
+ assert req.instructions == 'OVERRIDE_INSTR'
5377
+ sys_texts = [p.content for p in req.parts if isinstance(p, SystemPromptPart)]
5378
+ # The dynamic system prompt should still be present since overrides target instructions only
5379
+ assert dynamic_value in sys_texts
@@ -7,8 +7,16 @@ from unittest.mock import AsyncMock, patch
7
7
  import pytest
8
8
  from inline_snapshot import snapshot
9
9
 
10
- from pydantic_ai import (
11
- Agent,
10
+ from pydantic_ai import Agent
11
+ from pydantic_ai.direct import (
12
+ StreamedResponseSync,
13
+ _prepare_model, # pyright: ignore[reportPrivateUsage]
14
+ model_request,
15
+ model_request_stream,
16
+ model_request_stream_sync,
17
+ model_request_sync,
18
+ )
19
+ from pydantic_ai.messages import (
12
20
  FinalResultEvent,
13
21
  ModelMessage,
14
22
  ModelRequest,
@@ -19,14 +27,6 @@ from pydantic_ai import (
19
27
  TextPartDelta,
20
28
  ToolCallPart,
21
29
  )
22
- from pydantic_ai.direct import (
23
- StreamedResponseSync,
24
- _prepare_model, # pyright: ignore[reportPrivateUsage]
25
- model_request,
26
- model_request_stream,
27
- model_request_stream_sync,
28
- model_request_sync,
29
- )
30
30
  from pydantic_ai.models import ModelRequestParameters
31
31
  from pydantic_ai.models.instrumented import InstrumentedModel
32
32
  from pydantic_ai.models.test import TestModel