pydantic-ai 1.5.0__tar.gz → 1.6.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pydantic-ai might be problematic. Click here for more details.
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/PKG-INFO +5 -5
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/pyproject.toml +2 -1
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response_with_tool_call.yaml +53 -31
- pydantic_ai-1.6.0/tests/models/cassettes/test_openai_responses/test_openai_responses_requires_function_call_status_none.yaml +259 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/test_model_test.py +102 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/test_openai_responses.py +45 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/test_agent.py +34 -1
- pydantic_ai-1.6.0/tests/test_fastmcp.py +603 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/.gitignore +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/LICENSE +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/Makefile +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/README.md +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/__init__.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/assets/dummy.pdf +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/assets/dummy.txt +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/assets/kiwi.png +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/assets/marcelo.mp3 +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/assets/product_name.txt +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/assets/small_video.mp4 +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_dbos/test_complex_agent_run.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_dbos/test_complex_agent_run_in_workflow.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_dbos/test_complex_agent_run_stream_in_workflow.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_dbos/test_dbos_agent_iter.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_dbos/test_dbos_agent_iter_in_workflow.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_dbos/test_dbos_agent_override_deps_in_workflow.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_dbos/test_dbos_agent_override_tools_in_workflow.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_dbos/test_dbos_agent_run.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_dbos/test_dbos_agent_run_in_workflow_with_toolsets.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_dbos/test_dbos_agent_run_stream.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_dbos/test_dbos_agent_run_sync.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_dbos/test_dbos_agent_run_sync_in_workflow.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_dbos/test_dbos_agent_with_dataclass_deps_as_dict.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_dbos/test_dbos_agent_with_hitl_tool.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_dbos/test_dbos_agent_with_hitl_tool_sync.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_dbos/test_dbos_agent_with_model_retry.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_dbos/test_dbos_agent_with_non_dict_deps.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_dbos/test_dbos_agent_with_unserializable_deps_type.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_dbos/test_dbos_model_stream_direct.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_dbos/test_multiple_agents.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_dbos/test_simple_agent_run_in_workflow.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_mcp/test_agent_with_server_not_running.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_mcp/test_agent_with_stdio_server.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_mcp/test_tool_returning_audio_resource.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_mcp/test_tool_returning_audio_resource_link.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_mcp/test_tool_returning_dict.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_mcp/test_tool_returning_error.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_mcp/test_tool_returning_image.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_mcp/test_tool_returning_image_resource.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_mcp/test_tool_returning_image_resource_link.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_mcp/test_tool_returning_multiple_items.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_mcp/test_tool_returning_none.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_mcp/test_tool_returning_str.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_mcp/test_tool_returning_text_resource.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_mcp/test_tool_returning_text_resource_link.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_mcp/test_tool_returning_unstructured_dict.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_prefect/test_complex_agent_run_in_flow.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_prefect/test_iter_in_flow.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_prefect/test_multiple_agents.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_prefect/test_prefect_agent_iter.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_prefect/test_prefect_agent_override_deps.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_prefect/test_prefect_agent_override_tools.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_prefect/test_prefect_agent_override_toolsets.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_prefect/test_prefect_agent_run.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_prefect/test_prefect_agent_run_stream.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_prefect/test_prefect_agent_run_stream_events.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_prefect/test_prefect_agent_run_sync.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_prefect/test_prefect_agent_with_hitl_tool.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_prefect/test_prefect_agent_with_hitl_tool_sync.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_prefect/test_prefect_agent_with_model_retry.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_prefect/test_prefect_agent_with_unserializable_deps.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_prefect/test_run_stream_in_flow.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_prefect/test_run_sync_in_flow.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_prefect/test_simple_agent_run_in_flow.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_settings/test_stop_settings[anthropic].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_settings/test_stop_settings[bedrock].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_settings/test_stop_settings[cohere].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_settings/test_stop_settings[gemini].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_settings/test_stop_settings[google].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_settings/test_stop_settings[groq].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_settings/test_stop_settings[mistral].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_settings/test_stop_settings[openai].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_temporal/test_complex_agent_run.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_temporal/test_complex_agent_run_in_workflow.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_temporal/test_complex_agent_run_stream_in_workflow.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_temporal/test_logfire_plugin.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_temporal/test_multiple_agents.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_temporal/test_simple_agent_run_in_workflow.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_temporal/test_temporal_agent_iter.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_temporal/test_temporal_agent_override_deps_in_workflow.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_temporal/test_temporal_agent_run.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_temporal/test_temporal_agent_run_stream.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_temporal/test_temporal_agent_run_stream_events.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_temporal/test_temporal_agent_run_sync.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_temporal/test_temporal_agent_sync_tool_activity_disabled.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_temporal/test_temporal_agent_with_dataclass_deps_as_dict.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_temporal/test_temporal_agent_with_hitl_tool.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_temporal/test_temporal_agent_with_model_retry.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_temporal/test_temporal_agent_with_non_dict_deps.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_temporal/test_temporal_agent_with_unserializable_deps_type.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/cassettes/test_temporal/test_web_search_agent_run_in_workflow.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/conftest.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/evals/__init__.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/evals/test_dataset.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/evals/test_evaluator_base.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/evals/test_evaluator_common.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/evals/test_evaluator_context.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/evals/test_evaluator_spec.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/evals/test_evaluators.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/evals/test_llm_as_a_judge.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/evals/test_otel.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/evals/test_render_numbers.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/evals/test_reporting.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/evals/test_reports.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/evals/test_utils.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/evals/utils.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/example_modules/README.md +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/example_modules/bank_database.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/example_modules/fake_database.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/example_modules/mcp_server.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/example_modules/weather_service.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/ext/__init__.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/ext/test_langchain.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/graph/__init__.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/graph/beta/__init__.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/graph/beta/test_broadcast_and_spread.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/graph/beta/test_decisions.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/graph/beta/test_edge_cases.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/graph/beta/test_edge_labels.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/graph/beta/test_graph_builder.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/graph/beta/test_graph_edge_cases.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/graph/beta/test_graph_execution.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/graph/beta/test_graph_iteration.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/graph/beta/test_joins_and_reducers.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/graph/beta/test_mermaid_rendering.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/graph/beta/test_node_and_step.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/graph/beta/test_parent_forks.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/graph/beta/test_paths.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/graph/beta/test_util.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/graph/beta/test_v1_v2_integration.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/graph/test_file_persistence.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/graph/test_graph.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/graph/test_mermaid.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/graph/test_persistence.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/graph/test_state.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/graph/test_utils.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/import_examples.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/json_body_serializer.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/mcp_server.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/__init__.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_anthropic/test_anthropic_code_execution_tool.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_anthropic/test_anthropic_code_execution_tool_stream.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_anthropic/test_anthropic_mcp_servers.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_anthropic/test_anthropic_mcp_servers_stream.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_anthropic/test_anthropic_memory_tool.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_anthropic/test_anthropic_model_empty_message_on_history.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_anthropic/test_anthropic_model_instructions.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part_from_other_model.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part_redacted.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part_redacted_stream.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part_stream.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_anthropic/test_anthropic_model_web_search_tool_stream.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_anthropic/test_anthropic_output_tool_with_thinking.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_anthropic/test_anthropic_prompted_output.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_anthropic/test_anthropic_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_anthropic/test_anthropic_server_tool_pass_history_to_another_provider.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_anthropic/test_anthropic_server_tool_receive_history_from_another_provider.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_anthropic/test_anthropic_text_output_function.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_anthropic/test_anthropic_text_parts_ahead_of_built_in_tool_call.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_anthropic/test_anthropic_tool_output.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_anthropic/test_anthropic_tool_with_thinking.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_anthropic/test_anthropic_web_search_tool.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_anthropic/test_anthropic_web_search_tool_stream.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_anthropic/test_document_binary_content_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_anthropic/test_document_url_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_anthropic/test_extra_headers.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_anthropic/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_anthropic/test_image_url_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_anthropic/test_image_url_input_invalid_mime_type.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_anthropic/test_multiple_parallel_tool_calls.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_anthropic/test_text_document_url_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_bedrock/test_bedrock_anthropic_tool_with_thinking.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_bedrock/test_bedrock_empty_system_prompt.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_bedrock/test_bedrock_model.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_anthropic_model_without_tools.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_guardrail_config.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_instructions.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_iter_stream.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_max_tokens.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_other_parameters.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_performance_config.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_retry.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_stream.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_stream_empty_text_delta.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_structured_output.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_anthropic.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_deepseek.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_from_other_model.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_redacted.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_redacted_stream.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_stream.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_top_p.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_bedrock/test_bedrock_multiple_documents_in_history.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_bedrock/test_document_url_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_bedrock/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_bedrock/test_image_url_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_bedrock/test_text_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_bedrock/test_text_document_url_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_bedrock/test_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_bedrock/test_video_url_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_cohere/test_cohere_model_instructions.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_cohere/test_cohere_model_thinking_part.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_cohere/test_request_simple_success_with_vcr.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_deepseek/test_deepseek_model_thinking_part.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_deepseek/test_deepseek_model_thinking_stream.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_download_item/test_download_item_application_octet_stream.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_download_item/test_download_item_audio_mpeg.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_download_item/test_download_item_no_content_type.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_gemini/test_document_url_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_false.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_true.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_gemini/test_gemini_drop_exclusive_maximum.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_gemini/test_gemini_exclusive_minimum_and_maximum.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_gemini/test_gemini_model_instructions.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_gemini/test_gemini_model_thinking_part.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_gemini/test_gemini_native_output.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_gemini/test_gemini_native_output_multiple.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_gemini/test_gemini_prompted_output.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_gemini/test_gemini_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_gemini/test_gemini_prompted_output_with_tools.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_gemini/test_gemini_text_output_function.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_gemini/test_gemini_tool_config_any_with_tool_without_args.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_gemini/test_gemini_tool_output.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_gemini/test_gemini_youtube_video_url_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_gemini/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_gemini/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_gemini/test_image_url_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_gemini/test_labels_are_ignored_with_gla_provider.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_gemini/test_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_gemini/test_video_url_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_gemini_vertex/test_labels.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_gemini_vertex/test_url_input[AudioUrl (gs)].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_gemini_vertex/test_url_input[AudioUrl].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_gemini_vertex/test_url_input[DocumentUrl (gs)].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_gemini_vertex/test_url_input[DocumentUrl].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_gemini_vertex/test_url_input[ImageUrl (gs)].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_gemini_vertex/test_url_input[ImageUrl].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl (YouTube)].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl (gs)].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_gemini_vertex/test_url_input_force_download.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_builtin_tools_with_other_tools.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_httpx_client_is_not_closed.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_image_and_text_output.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_image_generation.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_image_generation_stream.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_image_generation_with_text.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_image_or_text_output.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_builtin_code_execution_stream.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_code_execution_tool.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_document_url_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_empty_assistant_response.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_empty_user_prompt.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_image_url_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_instructions.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_iter_stream.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_max_tokens.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_multiple_documents_in_history.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_receive_web_search_history_from_another_provider.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_retry.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_safety_settings.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_server_tool_receive_history_from_another_provider.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_stream.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_structured_output.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_text_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_text_document_url_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_thinking_config.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_thinking_part.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_thinking_part_from_other_model.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_thinking_part_iter.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_top_p.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_url_context_tool.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_usage_limit_exceeded.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_usage_limit_not_exceeded.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_vertex_labels.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_vertex_provider.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_video_as_binary_content_input_with_vendor_metadata.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_video_url_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_web_search_tool.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_web_search_tool_stream.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_model_youtube_video_url_input_with_vendor_metadata.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_multiple_images.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_native_output.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_native_output_multiple.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_prompted_output.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_prompted_output_with_tools.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_text_output_function.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_timeout.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_tool_config_any_with_tool_without_args.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_tool_output.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_url_input[AudioUrl (gs)].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_url_input[AudioUrl].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_url_input[DocumentUrl (gs)].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_url_input[DocumentUrl].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_url_input[ImageUrl (gs)].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_url_input[ImageUrl].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl (YouTube)].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl (gs)].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_url_input_force_download.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_vertexai_image_generation.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_google/test_google_vertexai_model_usage_limit_exceeded.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_groq/test_extra_headers.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_groq/test_groq_model_instructions.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_groq/test_groq_model_thinking_part.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_groq/test_groq_model_thinking_part_iter.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_groq/test_groq_model_web_search_tool.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_groq/test_groq_model_web_search_tool_stream.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_groq/test_groq_native_output.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_groq/test_groq_prompted_output.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_groq/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_groq/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_groq/test_image_url_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_groq/test_tool_regular_error.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_groq/test_tool_use_failed_error.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_groq/test_tool_use_failed_error_streaming.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_huggingface/test_hf_model_instructions.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_huggingface/test_hf_model_thinking_part.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_huggingface/test_hf_model_thinking_part_iter.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_huggingface/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_huggingface/test_image_url_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_huggingface/test_max_completion_tokens[Qwen-Qwen2.5-72B-Instruct].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_huggingface/test_max_completion_tokens[deepseek-ai-DeepSeek-R1-0528].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_huggingface/test_max_completion_tokens[meta-llama-Llama-3.3-70B-Instruct].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_huggingface/test_request_simple_success_with_vcr.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_huggingface/test_request_simple_usage.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_huggingface/test_simple_completion.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_huggingface/test_stream_completion.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_mistral/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_mistral/test_mistral_model_instructions.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_mistral/test_mistral_model_thinking_part.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_mistral/test_mistral_model_thinking_part_iter.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_model_names/test_known_model_names.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_audio_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_compatible_api_with_tool_calls_without_id.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_document_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_document_as_binary_content_input_with_tool.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_document_url_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_extra_headers.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_image_url_input_force_download.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_image_url_input_force_download_response_api.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_image_url_tool_response.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_invalid_response.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4.5-preview].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4o-mini].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_max_completion_tokens[o3-mini].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_multiple_agent_tool_calls.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_openai_audio_url_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_openai_instructions.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_openai_instructions_with_tool_calls_keep_instructions.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_openai_model_cerebras_provider.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_openai_model_cerebras_provider_harmony.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_openai_model_cerebras_provider_qwen_3_coder.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_openai_model_settings_temperature_ignored_on_gpt_5.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_openai_model_thinking_part.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_openai_model_without_system_prompt.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_openai_native_output.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_openai_native_output_multiple.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[developer].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[system].yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_openai_prompted_output.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_openai_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_openai_text_output_function.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_openai_tool_output.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_openai_web_search_tool.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_openai_web_search_tool_model_not_supported.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_openai_web_search_tool_with_user_location.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_reasoning_model_with_temperature.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_system_prompt_role_o1_mini.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_text_document_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_text_document_url_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_text_response.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_user_id.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai/test_valid_response.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_audio_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_native_output.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_native_output_multiple.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_previous_response_id.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_previous_response_id_auto_mode.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_code_execution_return_image.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_code_execution_return_image_stream.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_url_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_history_with_combined_tool_call_id.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_and_text_output.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_generation.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_generation_jpeg.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_generation_stream.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_generation_tool_without_image_output.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_generation_with_native_output.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_generation_with_prompted_output.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_generation_with_tool_output.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_generation_with_tools.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_or_text_output.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_url_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_builtin_tools.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_builtin_tools_web_search.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_http_error.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_instructions.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_mcp_server_tool.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_mcp_server_tool_stream.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_mcp_server_tool_with_connector.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_retry.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_thinking_part.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_web_search_tool.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_web_search_tool_stream.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_web_search_tool_with_invalid_region.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_web_search_tool_with_user_location.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_multiple_images.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_non_reasoning_model_no_item_ids.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_output_type.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_effort.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_generate_summary.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_stream.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_streaming_usage.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_system_prompt.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_text_document_url_input.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_thinking_part_from_other_model.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_thinking_part_iter.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_thinking_with_code_execution_tool.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_thinking_with_code_execution_tool_stream.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_thinking_with_modified_history.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_thinking_with_tool_calls.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_verbosity.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_prompted_output.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_reasoning_model_with_temperature.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_text_output_function.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/cassettes/test_openai_responses/test_tool_output.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/mock_async_stream.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/mock_openai.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/test_anthropic.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/test_bedrock.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/test_cohere.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/test_deepseek.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/test_download_item.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/test_fallback.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/test_gemini.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/test_gemini_vertex.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/test_google.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/test_groq.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/test_huggingface.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/test_instrumented.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/test_mcp_sampling.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/test_mistral.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/test_model.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/test_model_function.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/test_model_names.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/test_model_request_parameters.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/test_model_settings.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/models/test_openai.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/parts_from_messages.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/__init__.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/cassettes/test_azure/test_azure_provider_call.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/cassettes/test_gateway/test_gateway_provider_with_anthropic.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/cassettes/test_gateway/test_gateway_provider_with_bedrock.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/cassettes/test_gateway/test_gateway_provider_with_google_vertex.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/cassettes/test_gateway/test_gateway_provider_with_groq.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/cassettes/test_gateway/test_gateway_provider_with_openai.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/cassettes/test_gateway/test_gateway_provider_with_openai_responses.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/cassettes/test_google_vertex/test_vertexai_provider.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/cassettes/test_heroku/test_heroku_model_provider_claude_3_7_sonnet.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/cassettes/test_openrouter/test_openrouter_with_google_model.yaml +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/test_anthropic.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/test_azure.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/test_bedrock.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/test_cerebras.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/test_cohere.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/test_deepseek.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/test_fireworks.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/test_gateway.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/test_github.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/test_google_gla.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/test_google_vertex.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/test_grok.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/test_groq.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/test_heroku.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/test_huggingface.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/test_litellm.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/test_mistral.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/test_moonshotai.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/test_nebius.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/test_ollama.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/test_openai.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/test_openrouter.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/test_ovhcloud.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/test_provider_names.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/test_together.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/providers/test_vercel.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/test_a2a.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/test_ag_ui.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/test_builtin_tools.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/test_cli.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/test_dbos.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/test_deps.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/test_direct.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/test_examples.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/test_format_as_xml.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/test_function_schema.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/test_history_processor.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/test_json_body_serializer.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/test_live.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/test_logfire.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/test_mcp.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/test_messages.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/test_parts_manager.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/test_prefect.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/test_settings.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/test_streaming.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/test_temporal.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/test_tenacity.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/test_thinking_part.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/test_tools.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/test_toolsets.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/test_usage_limits.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/test_utils.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/typed_agent.py +0 -0
- {pydantic_ai-1.5.0 → pydantic_ai-1.6.0}/tests/typed_graph.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pydantic-ai
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.6.0
|
|
4
4
|
Summary: Agent Framework / shim to use Pydantic with LLMs
|
|
5
5
|
Project-URL: Homepage, https://ai.pydantic.dev
|
|
6
6
|
Project-URL: Source, https://github.com/pydantic/pydantic-ai
|
|
@@ -26,15 +26,15 @@ Classifier: Topic :: Internet
|
|
|
26
26
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
27
27
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
28
28
|
Requires-Python: >=3.10
|
|
29
|
-
Requires-Dist: pydantic-ai-slim[ag-ui,anthropic,bedrock,cli,cohere,evals,google,groq,huggingface,logfire,mcp,mistral,openai,retries,temporal,vertexai]==1.
|
|
29
|
+
Requires-Dist: pydantic-ai-slim[ag-ui,anthropic,bedrock,cli,cohere,evals,fastmcp,google,groq,huggingface,logfire,mcp,mistral,openai,retries,temporal,vertexai]==1.6.0
|
|
30
30
|
Provides-Extra: a2a
|
|
31
31
|
Requires-Dist: fasta2a>=0.4.1; extra == 'a2a'
|
|
32
32
|
Provides-Extra: dbos
|
|
33
|
-
Requires-Dist: pydantic-ai-slim[dbos]==1.
|
|
33
|
+
Requires-Dist: pydantic-ai-slim[dbos]==1.6.0; extra == 'dbos'
|
|
34
34
|
Provides-Extra: examples
|
|
35
|
-
Requires-Dist: pydantic-ai-examples==1.
|
|
35
|
+
Requires-Dist: pydantic-ai-examples==1.6.0; extra == 'examples'
|
|
36
36
|
Provides-Extra: prefect
|
|
37
|
-
Requires-Dist: pydantic-ai-slim[prefect]==1.
|
|
37
|
+
Requires-Dist: pydantic-ai-slim[prefect]==1.6.0; extra == 'prefect'
|
|
38
38
|
Description-Content-Type: text/markdown
|
|
39
39
|
|
|
40
40
|
<div align="center">
|
|
@@ -46,7 +46,7 @@ requires-python = ">=3.10"
|
|
|
46
46
|
|
|
47
47
|
[tool.hatch.metadata.hooks.uv-dynamic-versioning]
|
|
48
48
|
dependencies = [
|
|
49
|
-
"pydantic-ai-slim[openai,vertexai,google,groq,anthropic,mistral,cohere,bedrock,huggingface,cli,mcp,evals,ag-ui,retries,temporal,logfire]=={{ version }}",
|
|
49
|
+
"pydantic-ai-slim[openai,vertexai,google,groq,anthropic,mistral,cohere,bedrock,huggingface,cli,mcp,fastmcp,evals,ag-ui,retries,temporal,logfire]=={{ version }}",
|
|
50
50
|
]
|
|
51
51
|
|
|
52
52
|
[tool.hatch.metadata.hooks.uv-dynamic-versioning.optional-dependencies]
|
|
@@ -232,6 +232,7 @@ filterwarnings = [
|
|
|
232
232
|
"ignore:unclosed <socket:ResourceWarning",
|
|
233
233
|
"ignore:unclosed event loop:ResourceWarning",
|
|
234
234
|
]
|
|
235
|
+
# addopts = ["--inline-snapshot=create,fix"]
|
|
235
236
|
|
|
236
237
|
# https://coverage.readthedocs.io/en/latest/config.html#run
|
|
237
238
|
[tool.coverage.run]
|
|
@@ -8,7 +8,7 @@ interactions:
|
|
|
8
8
|
connection:
|
|
9
9
|
- keep-alive
|
|
10
10
|
content-length:
|
|
11
|
-
- '
|
|
11
|
+
- '337'
|
|
12
12
|
content-type:
|
|
13
13
|
- application/json
|
|
14
14
|
host:
|
|
@@ -18,11 +18,11 @@ interactions:
|
|
|
18
18
|
input:
|
|
19
19
|
- content: What is the capital of PotatoLand?
|
|
20
20
|
role: user
|
|
21
|
-
instructions: ''
|
|
22
21
|
model: gpt-4o
|
|
22
|
+
stream: false
|
|
23
23
|
tool_choice: auto
|
|
24
24
|
tools:
|
|
25
|
-
- description:
|
|
25
|
+
- description: null
|
|
26
26
|
name: get_capital
|
|
27
27
|
parameters:
|
|
28
28
|
additionalProperties: false
|
|
@@ -42,13 +42,15 @@ interactions:
|
|
|
42
42
|
connection:
|
|
43
43
|
- keep-alive
|
|
44
44
|
content-length:
|
|
45
|
-
- '
|
|
45
|
+
- '1720'
|
|
46
46
|
content-type:
|
|
47
47
|
- application/json
|
|
48
48
|
openai-organization:
|
|
49
49
|
- pydantic-28gund
|
|
50
50
|
openai-processing-ms:
|
|
51
|
-
- '
|
|
51
|
+
- '1811'
|
|
52
|
+
openai-project:
|
|
53
|
+
- proj_dKobscVY9YJxeEaDJen54e3d
|
|
52
54
|
openai-version:
|
|
53
55
|
- '2020-10-01'
|
|
54
56
|
strict-transport-security:
|
|
@@ -56,33 +58,41 @@ interactions:
|
|
|
56
58
|
transfer-encoding:
|
|
57
59
|
- chunked
|
|
58
60
|
parsed_body:
|
|
59
|
-
|
|
61
|
+
background: false
|
|
62
|
+
billing:
|
|
63
|
+
payer: developer
|
|
64
|
+
created_at: 1761323546
|
|
60
65
|
error: null
|
|
61
|
-
id:
|
|
66
|
+
id: resp_04907f5d3de791830068fbaa19bb908195a91378279dba0f14
|
|
62
67
|
incomplete_details: null
|
|
63
|
-
instructions:
|
|
68
|
+
instructions: null
|
|
64
69
|
max_output_tokens: null
|
|
70
|
+
max_tool_calls: null
|
|
65
71
|
metadata: {}
|
|
66
72
|
model: gpt-4o-2024-08-06
|
|
67
73
|
object: response
|
|
68
74
|
output:
|
|
69
75
|
- arguments: '{"country":"PotatoLand"}'
|
|
70
|
-
call_id:
|
|
71
|
-
id:
|
|
76
|
+
call_id: call_YfwRsW8sUxDKipwyhWTzOXCA
|
|
77
|
+
id: fc_04907f5d3de791830068fbaa1b310c81958dc9c508e878c632
|
|
72
78
|
name: get_capital
|
|
73
79
|
status: completed
|
|
74
80
|
type: function_call
|
|
75
81
|
parallel_tool_calls: true
|
|
76
82
|
previous_response_id: null
|
|
83
|
+
prompt_cache_key: null
|
|
77
84
|
reasoning:
|
|
78
85
|
effort: null
|
|
79
|
-
|
|
86
|
+
summary: null
|
|
87
|
+
safety_identifier: null
|
|
88
|
+
service_tier: default
|
|
80
89
|
status: completed
|
|
81
90
|
store: true
|
|
82
91
|
temperature: 1.0
|
|
83
92
|
text:
|
|
84
93
|
format:
|
|
85
94
|
type: text
|
|
95
|
+
verbosity: medium
|
|
86
96
|
tool_choice: auto
|
|
87
97
|
tools:
|
|
88
98
|
- description: null
|
|
@@ -97,16 +107,17 @@ interactions:
|
|
|
97
107
|
type: object
|
|
98
108
|
strict: true
|
|
99
109
|
type: function
|
|
110
|
+
top_logprobs: 0
|
|
100
111
|
top_p: 1.0
|
|
101
112
|
truncation: disabled
|
|
102
113
|
usage:
|
|
103
|
-
input_tokens:
|
|
114
|
+
input_tokens: 40
|
|
104
115
|
input_tokens_details:
|
|
105
116
|
cached_tokens: 0
|
|
106
117
|
output_tokens: 18
|
|
107
118
|
output_tokens_details:
|
|
108
119
|
reasoning_tokens: 0
|
|
109
|
-
total_tokens:
|
|
120
|
+
total_tokens: 58
|
|
110
121
|
user: null
|
|
111
122
|
status:
|
|
112
123
|
code: 200
|
|
@@ -120,12 +131,12 @@ interactions:
|
|
|
120
131
|
connection:
|
|
121
132
|
- keep-alive
|
|
122
133
|
content-length:
|
|
123
|
-
- '
|
|
134
|
+
- '579'
|
|
124
135
|
content-type:
|
|
125
136
|
- application/json
|
|
126
137
|
cookie:
|
|
127
|
-
- __cf_bm=
|
|
128
|
-
_cfuvid=
|
|
138
|
+
- __cf_bm=g29aPgrRIxmp3X5o6PZW9E8aKljsJ3_YKN58sMhqjnI-1761323547-1.0.1.1-Uj.mPGHnvAjpHojYAfG.QReYxHtLCz0jBoPrirBGA48A.LawB_Afgv0C8s0DC2TIU2y6zbyq4bA1moTVcNApxaq4NaLqfKpLe2hQBB_xM.M;
|
|
139
|
+
_cfuvid=kiKLNQ6S_H_I6dKfHm0bpQwt35G4FrXx6u4P3LxaXIQ-1761323547535-0.0.1.1-604800000
|
|
129
140
|
host:
|
|
130
141
|
- api.openai.com
|
|
131
142
|
method: POST
|
|
@@ -133,20 +144,19 @@ interactions:
|
|
|
133
144
|
input:
|
|
134
145
|
- content: What is the capital of PotatoLand?
|
|
135
146
|
role: user
|
|
136
|
-
- content: ''
|
|
137
|
-
role: assistant
|
|
138
147
|
- arguments: '{"country":"PotatoLand"}'
|
|
139
|
-
call_id:
|
|
148
|
+
call_id: call_YfwRsW8sUxDKipwyhWTzOXCA
|
|
140
149
|
name: get_capital
|
|
150
|
+
status: null
|
|
141
151
|
type: function_call
|
|
142
|
-
- call_id:
|
|
152
|
+
- call_id: call_YfwRsW8sUxDKipwyhWTzOXCA
|
|
143
153
|
output: Potato City
|
|
144
154
|
type: function_call_output
|
|
145
|
-
instructions: ''
|
|
146
155
|
model: gpt-4o
|
|
156
|
+
stream: false
|
|
147
157
|
tool_choice: auto
|
|
148
158
|
tools:
|
|
149
|
-
- description:
|
|
159
|
+
- description: null
|
|
150
160
|
name: get_capital
|
|
151
161
|
parameters:
|
|
152
162
|
additionalProperties: false
|
|
@@ -166,13 +176,15 @@ interactions:
|
|
|
166
176
|
connection:
|
|
167
177
|
- keep-alive
|
|
168
178
|
content-length:
|
|
169
|
-
- '
|
|
179
|
+
- '1810'
|
|
170
180
|
content-type:
|
|
171
181
|
- application/json
|
|
172
182
|
openai-organization:
|
|
173
183
|
- pydantic-28gund
|
|
174
184
|
openai-processing-ms:
|
|
175
|
-
- '
|
|
185
|
+
- '1028'
|
|
186
|
+
openai-project:
|
|
187
|
+
- proj_dKobscVY9YJxeEaDJen54e3d
|
|
176
188
|
openai-version:
|
|
177
189
|
- '2020-10-01'
|
|
178
190
|
strict-transport-security:
|
|
@@ -180,35 +192,44 @@ interactions:
|
|
|
180
192
|
transfer-encoding:
|
|
181
193
|
- chunked
|
|
182
194
|
parsed_body:
|
|
183
|
-
|
|
195
|
+
background: false
|
|
196
|
+
billing:
|
|
197
|
+
payer: developer
|
|
198
|
+
created_at: 1761323547
|
|
184
199
|
error: null
|
|
185
|
-
id:
|
|
200
|
+
id: resp_0e9950da9eac6a780068fbaa1bc030819da585a6f85ddad1e6
|
|
186
201
|
incomplete_details: null
|
|
187
|
-
instructions:
|
|
202
|
+
instructions: null
|
|
188
203
|
max_output_tokens: null
|
|
204
|
+
max_tool_calls: null
|
|
189
205
|
metadata: {}
|
|
190
206
|
model: gpt-4o-2024-08-06
|
|
191
207
|
object: response
|
|
192
208
|
output:
|
|
193
209
|
- content:
|
|
194
210
|
- annotations: []
|
|
211
|
+
logprobs: []
|
|
195
212
|
text: The capital of PotatoLand is Potato City.
|
|
196
213
|
type: output_text
|
|
197
|
-
id:
|
|
214
|
+
id: msg_0e9950da9eac6a780068fbaa1c738c819d8bddf998e57232c3
|
|
198
215
|
role: assistant
|
|
199
216
|
status: completed
|
|
200
217
|
type: message
|
|
201
218
|
parallel_tool_calls: true
|
|
202
219
|
previous_response_id: null
|
|
220
|
+
prompt_cache_key: null
|
|
203
221
|
reasoning:
|
|
204
222
|
effort: null
|
|
205
|
-
|
|
223
|
+
summary: null
|
|
224
|
+
safety_identifier: null
|
|
225
|
+
service_tier: default
|
|
206
226
|
status: completed
|
|
207
227
|
store: true
|
|
208
228
|
temperature: 1.0
|
|
209
229
|
text:
|
|
210
230
|
format:
|
|
211
231
|
type: text
|
|
232
|
+
verbosity: medium
|
|
212
233
|
tool_choice: auto
|
|
213
234
|
tools:
|
|
214
235
|
- description: null
|
|
@@ -223,16 +244,17 @@ interactions:
|
|
|
223
244
|
type: object
|
|
224
245
|
strict: true
|
|
225
246
|
type: function
|
|
247
|
+
top_logprobs: 0
|
|
226
248
|
top_p: 1.0
|
|
227
249
|
truncation: disabled
|
|
228
250
|
usage:
|
|
229
|
-
input_tokens:
|
|
251
|
+
input_tokens: 67
|
|
230
252
|
input_tokens_details:
|
|
231
253
|
cached_tokens: 0
|
|
232
254
|
output_tokens: 11
|
|
233
255
|
output_tokens_details:
|
|
234
256
|
reasoning_tokens: 0
|
|
235
|
-
total_tokens:
|
|
257
|
+
total_tokens: 78
|
|
236
258
|
user: null
|
|
237
259
|
status:
|
|
238
260
|
code: 200
|
|
@@ -0,0 +1,259 @@
|
|
|
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
|
+
- '331'
|
|
12
|
+
content-type:
|
|
13
|
+
- application/json
|
|
14
|
+
host:
|
|
15
|
+
- api.openai.com
|
|
16
|
+
method: POST
|
|
17
|
+
parsed_body:
|
|
18
|
+
include:
|
|
19
|
+
- reasoning.encrypted_content
|
|
20
|
+
input:
|
|
21
|
+
- content: What is the meaning of life?
|
|
22
|
+
role: user
|
|
23
|
+
model: gpt-5
|
|
24
|
+
stream: false
|
|
25
|
+
tool_choice: auto
|
|
26
|
+
tools:
|
|
27
|
+
- description: null
|
|
28
|
+
name: get_meaning_of_life
|
|
29
|
+
parameters:
|
|
30
|
+
additionalProperties: false
|
|
31
|
+
properties: {}
|
|
32
|
+
type: object
|
|
33
|
+
strict: false
|
|
34
|
+
type: function
|
|
35
|
+
uri: https://api.openai.com/v1/responses
|
|
36
|
+
response:
|
|
37
|
+
headers:
|
|
38
|
+
alt-svc:
|
|
39
|
+
- h3=":443"; ma=86400
|
|
40
|
+
connection:
|
|
41
|
+
- keep-alive
|
|
42
|
+
content-length:
|
|
43
|
+
- '3684'
|
|
44
|
+
content-type:
|
|
45
|
+
- application/json
|
|
46
|
+
openai-organization:
|
|
47
|
+
- pydantic-28gund
|
|
48
|
+
openai-processing-ms:
|
|
49
|
+
- '8638'
|
|
50
|
+
openai-project:
|
|
51
|
+
- proj_dKobscVY9YJxeEaDJen54e3d
|
|
52
|
+
openai-version:
|
|
53
|
+
- '2020-10-01'
|
|
54
|
+
strict-transport-security:
|
|
55
|
+
- max-age=31536000; includeSubDomains; preload
|
|
56
|
+
transfer-encoding:
|
|
57
|
+
- chunked
|
|
58
|
+
parsed_body:
|
|
59
|
+
background: false
|
|
60
|
+
billing:
|
|
61
|
+
payer: developer
|
|
62
|
+
created_at: 1761324027
|
|
63
|
+
error: null
|
|
64
|
+
id: resp_01d311e2633707df0068fbabfb646481a2ac6e226bbbb42ca6
|
|
65
|
+
incomplete_details: null
|
|
66
|
+
instructions: null
|
|
67
|
+
max_output_tokens: null
|
|
68
|
+
max_tool_calls: null
|
|
69
|
+
metadata: {}
|
|
70
|
+
model: gpt-5-2025-08-07
|
|
71
|
+
object: response
|
|
72
|
+
output:
|
|
73
|
+
- encrypted_content: gAAAAABo-6wE6H4S9A886ZkwXcvvHqZ6Vx5BtpYvvNAJV5Ijq7pz-mTBJxfdjilNSzBj0ruy7NOsMRMhWzNahRf-n3KDQ2x1p-PjVCHM5IAGqHqae8A-aAUn_FDRiTbAT5N5FXTrZ80DAtdDv17z2HlODmTTYRvBU2-rX7opysjc4rf7-rvy6j4cUcNbM0ntT5DH8UHxC9LCM_s7Cb2unEV0jaDt7NzFxgfWN2u24Avs2EnjPoxOjd6BR-PWHJk_7kGGkVBub8NU7ZOyHsci3T8DAq_eX38DgkHJBJCPT4EqvlNP-VjPdecYEFUCw5G_Pye6h55-77g8LjkrFO43f8p6wscQ0iM601i1Ugmqbzxyv1ogPIN-YuSk2tkCw-D7xBD7I4fum2AmvyN-fR58lWcn-Z0WTqACA4baTJiCtW5b7uVeAp8vm8-gWzFR5BdDHVdQqu1TAKVWl_1P8NauDtd5M24MjVZd6WC0WrbTDPY9i2gieMMjFek2M8aoQFO0CG7r3JHn2zxfFB3THWCpl4VqZAQp6Ok7rymeY0Oayj--OLpNMBXIYUWc51eyYeurwQ943BSkf-m6PPVKO8T5U__Bx-biCNCePSlFKp7V0Du6h7UgYoqqonH2S3Jrg87c6dk7VJ7ca2i8sZqhy0rG6Kb7ENDVvwkMOdpnaFgdWd3VINp6P8j69kBQg-qwWP-YHPC9LnsjT2j1ktMowVO97eOpV4j2BhiThxunmu_SOIAEbghmjJEkLuRxLxBUPFRIajke2CvvFeIuReJr53isPKOxOjVzsc6oG5ZeykDlfz_mfEap7AByPNY0987zwG58tGueNxXjdpd7NQFcn_6DKj60SvUg0sk49V_QrDY3cAhSRvZoEeqA8XR97pEe7CByYMl80b9fzgyahc4NCdUwK8es2ll-lsJwEx1ZGdC8cB45QOrTnw8tJAUsSM44rLKwAQY-KsuN4UygO99d1CQZEm2YWtnPAvA9I-EhY87UIDx0CpPsEyxxFu2GZCTy7ceSnpcmQbAFWXzfBSpM7k42xVV8G8IK_bHpoF1enF5Vbc37_L_aWd4AgzuAwF_RVyd8exVh3NVJtO3BqPv72kTukr2Fok3KEaSeU0whP_dxr-thP2exS0F2Jdn13ZtB_pqxwKVWEsvzdbN92Q9qs10BAgYs2SA4cq66semwRl-1n-dr7XJyZzPOEiA9TQYgUCw0ueIc0ciMOZ0Waaj094bKIylw_TD5Bu1diXpzbTma_AVO-NZn7INhAZN3guSme-zIUEMrh66w0VJP-DbDA-ecSD41eMRSadyV4g86wLL4NOBE5NwSiSkwd2xJ9NqG7YohFM8BlPdEV4zhmqHcIKpVwAitFItqnAaUSU42Aebdritt9oNVnpKCeeA4QQv_8W7rOXJlLfGXRJUBCrh3Rv7KCVC3yncAOIU8FWu3jyaAqhLrWHLW958wjF8ka7lw80YZbToPjIuiii0UXu2w3Tv5EGVdkhf05A3Yj6M_LXStns8iBMzcU4-mJ1649FnnImLnW5AeohoWPBB6WYhW9gfwjuxejTI3Q5R0mo9jUSP3_tFiawlC2zFgvkNFufC6Kry8-Burjf8l6rpAX7_sjtCu1AlAbI6PEFtxcKhNWHfQp4mUATR6P4k68jk_Kl-FpRBtNOf8YOlLGrKE-WbwCoIV7VAgK2CTZJOxaslxVZRCLObNrA3XuEtc3jo8pMzqx8GJWshIgmF4XiQcmgh65U_kjB07adlgnbCZvGUXdIIQiA2vqIWC6Qu8SSO20nOOR65hGXyIgf4aOolU0Ljbi4slXnJKjbcPaX5O3cXvKHbkVFwXmHK2Ymaqb6fZcap78_On8jLK_GRlw3jV18SLeOcJiG2LqtHzcUawY4K7bPDNY2QX89yL5d4qxRF577QgzalmdQDsKyC_N-wk
|
|
74
|
+
id: rs_01d311e2633707df0068fbac0050ec81a2ad76fd9256abcaf7
|
|
75
|
+
summary: []
|
|
76
|
+
type: reasoning
|
|
77
|
+
- arguments: '{}'
|
|
78
|
+
call_id: call_cp3x6W9eeyMIryJUNhgMaP5w
|
|
79
|
+
id: fc_01d311e2633707df0068fbac038f1c81a29847e80d6a1a3f60
|
|
80
|
+
name: get_meaning_of_life
|
|
81
|
+
status: completed
|
|
82
|
+
type: function_call
|
|
83
|
+
parallel_tool_calls: true
|
|
84
|
+
previous_response_id: null
|
|
85
|
+
prompt_cache_key: null
|
|
86
|
+
reasoning:
|
|
87
|
+
effort: medium
|
|
88
|
+
summary: null
|
|
89
|
+
safety_identifier: null
|
|
90
|
+
service_tier: default
|
|
91
|
+
status: completed
|
|
92
|
+
store: true
|
|
93
|
+
temperature: 1.0
|
|
94
|
+
text:
|
|
95
|
+
format:
|
|
96
|
+
type: text
|
|
97
|
+
verbosity: medium
|
|
98
|
+
tool_choice: auto
|
|
99
|
+
tools:
|
|
100
|
+
- description: null
|
|
101
|
+
name: get_meaning_of_life
|
|
102
|
+
parameters:
|
|
103
|
+
additionalProperties: false
|
|
104
|
+
properties: {}
|
|
105
|
+
type: object
|
|
106
|
+
strict: false
|
|
107
|
+
type: function
|
|
108
|
+
top_logprobs: 0
|
|
109
|
+
top_p: 1.0
|
|
110
|
+
truncation: disabled
|
|
111
|
+
usage:
|
|
112
|
+
input_tokens: 40
|
|
113
|
+
input_tokens_details:
|
|
114
|
+
cached_tokens: 0
|
|
115
|
+
output_tokens: 148
|
|
116
|
+
output_tokens_details:
|
|
117
|
+
reasoning_tokens: 128
|
|
118
|
+
total_tokens: 188
|
|
119
|
+
user: null
|
|
120
|
+
status:
|
|
121
|
+
code: 200
|
|
122
|
+
message: OK
|
|
123
|
+
- request:
|
|
124
|
+
headers:
|
|
125
|
+
accept:
|
|
126
|
+
- application/json
|
|
127
|
+
accept-encoding:
|
|
128
|
+
- gzip, deflate
|
|
129
|
+
connection:
|
|
130
|
+
- keep-alive
|
|
131
|
+
content-length:
|
|
132
|
+
- '2657'
|
|
133
|
+
content-type:
|
|
134
|
+
- application/json
|
|
135
|
+
cookie:
|
|
136
|
+
- __cf_bm=a20Nzrk7DTPpmRffw18ZpyCrLHf7HDhqYWngumbFJ4o-1761324036-1.0.1.1-Skw5UKbxI7AAqeNwB.D2cjauVZMIxIxsewLmY9nVhUABO3i7atOpfBiPBFr1A4il.9jDlLHMwAbalm9g2YmBglrxZuFlqTscp7wDayD3Hy8;
|
|
137
|
+
_cfuvid=HNbo_nGCkQWJ8w2Px0MeYi9revYT4bEhukssgSPPJiw-1761324036053-0.0.1.1-604800000
|
|
138
|
+
host:
|
|
139
|
+
- api.openai.com
|
|
140
|
+
method: POST
|
|
141
|
+
parsed_body:
|
|
142
|
+
include:
|
|
143
|
+
- reasoning.encrypted_content
|
|
144
|
+
input:
|
|
145
|
+
- content: What is the meaning of life?
|
|
146
|
+
role: user
|
|
147
|
+
- encrypted_content: gAAAAABo-6wE6H4S9A886ZkwXcvvHqZ6Vx5BtpYvvNAJV5Ijq7pz-mTBJxfdjilNSzBj0ruy7NOsMRMhWzNahRf-n3KDQ2x1p-PjVCHM5IAGqHqae8A-aAUn_FDRiTbAT5N5FXTrZ80DAtdDv17z2HlODmTTYRvBU2-rX7opysjc4rf7-rvy6j4cUcNbM0ntT5DH8UHxC9LCM_s7Cb2unEV0jaDt7NzFxgfWN2u24Avs2EnjPoxOjd6BR-PWHJk_7kGGkVBub8NU7ZOyHsci3T8DAq_eX38DgkHJBJCPT4EqvlNP-VjPdecYEFUCw5G_Pye6h55-77g8LjkrFO43f8p6wscQ0iM601i1Ugmqbzxyv1ogPIN-YuSk2tkCw-D7xBD7I4fum2AmvyN-fR58lWcn-Z0WTqACA4baTJiCtW5b7uVeAp8vm8-gWzFR5BdDHVdQqu1TAKVWl_1P8NauDtd5M24MjVZd6WC0WrbTDPY9i2gieMMjFek2M8aoQFO0CG7r3JHn2zxfFB3THWCpl4VqZAQp6Ok7rymeY0Oayj--OLpNMBXIYUWc51eyYeurwQ943BSkf-m6PPVKO8T5U__Bx-biCNCePSlFKp7V0Du6h7UgYoqqonH2S3Jrg87c6dk7VJ7ca2i8sZqhy0rG6Kb7ENDVvwkMOdpnaFgdWd3VINp6P8j69kBQg-qwWP-YHPC9LnsjT2j1ktMowVO97eOpV4j2BhiThxunmu_SOIAEbghmjJEkLuRxLxBUPFRIajke2CvvFeIuReJr53isPKOxOjVzsc6oG5ZeykDlfz_mfEap7AByPNY0987zwG58tGueNxXjdpd7NQFcn_6DKj60SvUg0sk49V_QrDY3cAhSRvZoEeqA8XR97pEe7CByYMl80b9fzgyahc4NCdUwK8es2ll-lsJwEx1ZGdC8cB45QOrTnw8tJAUsSM44rLKwAQY-KsuN4UygO99d1CQZEm2YWtnPAvA9I-EhY87UIDx0CpPsEyxxFu2GZCTy7ceSnpcmQbAFWXzfBSpM7k42xVV8G8IK_bHpoF1enF5Vbc37_L_aWd4AgzuAwF_RVyd8exVh3NVJtO3BqPv72kTukr2Fok3KEaSeU0whP_dxr-thP2exS0F2Jdn13ZtB_pqxwKVWEsvzdbN92Q9qs10BAgYs2SA4cq66semwRl-1n-dr7XJyZzPOEiA9TQYgUCw0ueIc0ciMOZ0Waaj094bKIylw_TD5Bu1diXpzbTma_AVO-NZn7INhAZN3guSme-zIUEMrh66w0VJP-DbDA-ecSD41eMRSadyV4g86wLL4NOBE5NwSiSkwd2xJ9NqG7YohFM8BlPdEV4zhmqHcIKpVwAitFItqnAaUSU42Aebdritt9oNVnpKCeeA4QQv_8W7rOXJlLfGXRJUBCrh3Rv7KCVC3yncAOIU8FWu3jyaAqhLrWHLW958wjF8ka7lw80YZbToPjIuiii0UXu2w3Tv5EGVdkhf05A3Yj6M_LXStns8iBMzcU4-mJ1649FnnImLnW5AeohoWPBB6WYhW9gfwjuxejTI3Q5R0mo9jUSP3_tFiawlC2zFgvkNFufC6Kry8-Burjf8l6rpAX7_sjtCu1AlAbI6PEFtxcKhNWHfQp4mUATR6P4k68jk_Kl-FpRBtNOf8YOlLGrKE-WbwCoIV7VAgK2CTZJOxaslxVZRCLObNrA3XuEtc3jo8pMzqx8GJWshIgmF4XiQcmgh65U_kjB07adlgnbCZvGUXdIIQiA2vqIWC6Qu8SSO20nOOR65hGXyIgf4aOolU0Ljbi4slXnJKjbcPaX5O3cXvKHbkVFwXmHK2Ymaqb6fZcap78_On8jLK_GRlw3jV18SLeOcJiG2LqtHzcUawY4K7bPDNY2QX89yL5d4qxRF577QgzalmdQDsKyC_N-wk
|
|
148
|
+
id: rs_01d311e2633707df0068fbac0050ec81a2ad76fd9256abcaf7
|
|
149
|
+
summary: []
|
|
150
|
+
type: reasoning
|
|
151
|
+
- arguments: '{}'
|
|
152
|
+
call_id: call_cp3x6W9eeyMIryJUNhgMaP5w
|
|
153
|
+
id: fc_01d311e2633707df0068fbac038f1c81a29847e80d6a1a3f60
|
|
154
|
+
name: get_meaning_of_life
|
|
155
|
+
status: null
|
|
156
|
+
type: function_call
|
|
157
|
+
- call_id: call_cp3x6W9eeyMIryJUNhgMaP5w
|
|
158
|
+
output: '42'
|
|
159
|
+
type: function_call_output
|
|
160
|
+
model: gpt-5
|
|
161
|
+
stream: false
|
|
162
|
+
tool_choice: auto
|
|
163
|
+
tools:
|
|
164
|
+
- description: null
|
|
165
|
+
name: get_meaning_of_life
|
|
166
|
+
parameters:
|
|
167
|
+
additionalProperties: false
|
|
168
|
+
properties: {}
|
|
169
|
+
type: object
|
|
170
|
+
strict: false
|
|
171
|
+
type: function
|
|
172
|
+
uri: https://api.openai.com/v1/responses
|
|
173
|
+
response:
|
|
174
|
+
headers:
|
|
175
|
+
alt-svc:
|
|
176
|
+
- h3=":443"; ma=86400
|
|
177
|
+
connection:
|
|
178
|
+
- keep-alive
|
|
179
|
+
content-length:
|
|
180
|
+
- '1658'
|
|
181
|
+
content-type:
|
|
182
|
+
- application/json
|
|
183
|
+
openai-organization:
|
|
184
|
+
- pydantic-28gund
|
|
185
|
+
openai-processing-ms:
|
|
186
|
+
- '5376'
|
|
187
|
+
openai-project:
|
|
188
|
+
- proj_dKobscVY9YJxeEaDJen54e3d
|
|
189
|
+
openai-version:
|
|
190
|
+
- '2020-10-01'
|
|
191
|
+
strict-transport-security:
|
|
192
|
+
- max-age=31536000; includeSubDomains; preload
|
|
193
|
+
transfer-encoding:
|
|
194
|
+
- chunked
|
|
195
|
+
parsed_body:
|
|
196
|
+
background: false
|
|
197
|
+
billing:
|
|
198
|
+
payer: developer
|
|
199
|
+
created_at: 1761324036
|
|
200
|
+
error: null
|
|
201
|
+
id: resp_01d311e2633707df0068fbac042e3081a2a3839798d93d7bad
|
|
202
|
+
incomplete_details: null
|
|
203
|
+
instructions: null
|
|
204
|
+
max_output_tokens: null
|
|
205
|
+
max_tool_calls: null
|
|
206
|
+
metadata: {}
|
|
207
|
+
model: gpt-5-2025-08-07
|
|
208
|
+
object: response
|
|
209
|
+
output:
|
|
210
|
+
- content:
|
|
211
|
+
- annotations: []
|
|
212
|
+
logprobs: []
|
|
213
|
+
text: '42'
|
|
214
|
+
type: output_text
|
|
215
|
+
id: msg_01d311e2633707df0068fbac094ff481a297b1f4fdafb6ebd9
|
|
216
|
+
role: assistant
|
|
217
|
+
status: completed
|
|
218
|
+
type: message
|
|
219
|
+
parallel_tool_calls: true
|
|
220
|
+
previous_response_id: null
|
|
221
|
+
prompt_cache_key: null
|
|
222
|
+
reasoning:
|
|
223
|
+
effort: medium
|
|
224
|
+
summary: null
|
|
225
|
+
safety_identifier: null
|
|
226
|
+
service_tier: default
|
|
227
|
+
status: completed
|
|
228
|
+
store: true
|
|
229
|
+
temperature: 1.0
|
|
230
|
+
text:
|
|
231
|
+
format:
|
|
232
|
+
type: text
|
|
233
|
+
verbosity: medium
|
|
234
|
+
tool_choice: auto
|
|
235
|
+
tools:
|
|
236
|
+
- description: null
|
|
237
|
+
name: get_meaning_of_life
|
|
238
|
+
parameters:
|
|
239
|
+
additionalProperties: false
|
|
240
|
+
properties: {}
|
|
241
|
+
type: object
|
|
242
|
+
strict: false
|
|
243
|
+
type: function
|
|
244
|
+
top_logprobs: 0
|
|
245
|
+
top_p: 1.0
|
|
246
|
+
truncation: disabled
|
|
247
|
+
usage:
|
|
248
|
+
input_tokens: 257
|
|
249
|
+
input_tokens_details:
|
|
250
|
+
cached_tokens: 0
|
|
251
|
+
output_tokens: 5
|
|
252
|
+
output_tokens_details:
|
|
253
|
+
reasoning_tokens: 0
|
|
254
|
+
total_tokens: 262
|
|
255
|
+
user: null
|
|
256
|
+
status:
|
|
257
|
+
code: 200
|
|
258
|
+
message: OK
|
|
259
|
+
version: 1
|
|
@@ -69,6 +69,40 @@ def test_custom_output_args():
|
|
|
69
69
|
agent = Agent(output_type=tuple[str, str])
|
|
70
70
|
result = agent.run_sync('x', model=TestModel(custom_output_args=['a', 'b']))
|
|
71
71
|
assert result.output == ('a', 'b')
|
|
72
|
+
assert result.all_messages() == snapshot(
|
|
73
|
+
[
|
|
74
|
+
ModelRequest(
|
|
75
|
+
parts=[
|
|
76
|
+
UserPromptPart(
|
|
77
|
+
content='x',
|
|
78
|
+
timestamp=IsNow(tz=timezone.utc),
|
|
79
|
+
)
|
|
80
|
+
]
|
|
81
|
+
),
|
|
82
|
+
ModelResponse(
|
|
83
|
+
parts=[
|
|
84
|
+
ToolCallPart(
|
|
85
|
+
tool_name='final_result',
|
|
86
|
+
args={'response': ['a', 'b']},
|
|
87
|
+
tool_call_id='pyd_ai_tool_call_id__final_result',
|
|
88
|
+
)
|
|
89
|
+
],
|
|
90
|
+
usage=RequestUsage(input_tokens=51, output_tokens=7),
|
|
91
|
+
model_name='test',
|
|
92
|
+
timestamp=IsNow(tz=timezone.utc),
|
|
93
|
+
),
|
|
94
|
+
ModelRequest(
|
|
95
|
+
parts=[
|
|
96
|
+
ToolReturnPart(
|
|
97
|
+
tool_name='final_result',
|
|
98
|
+
content='Final result processed.',
|
|
99
|
+
tool_call_id='pyd_ai_tool_call_id__final_result',
|
|
100
|
+
timestamp=IsNow(tz=timezone.utc),
|
|
101
|
+
)
|
|
102
|
+
]
|
|
103
|
+
),
|
|
104
|
+
]
|
|
105
|
+
)
|
|
72
106
|
|
|
73
107
|
|
|
74
108
|
def test_custom_output_args_model():
|
|
@@ -79,12 +113,80 @@ def test_custom_output_args_model():
|
|
|
79
113
|
agent = Agent(output_type=Foo)
|
|
80
114
|
result = agent.run_sync('x', model=TestModel(custom_output_args={'foo': 'a', 'bar': 1}))
|
|
81
115
|
assert result.output == Foo(foo='a', bar=1)
|
|
116
|
+
assert result.all_messages() == snapshot(
|
|
117
|
+
[
|
|
118
|
+
ModelRequest(
|
|
119
|
+
parts=[
|
|
120
|
+
UserPromptPart(
|
|
121
|
+
content='x',
|
|
122
|
+
timestamp=IsNow(tz=timezone.utc),
|
|
123
|
+
)
|
|
124
|
+
]
|
|
125
|
+
),
|
|
126
|
+
ModelResponse(
|
|
127
|
+
parts=[
|
|
128
|
+
ToolCallPart(
|
|
129
|
+
tool_name='final_result',
|
|
130
|
+
args={'foo': 'a', 'bar': 1},
|
|
131
|
+
tool_call_id='pyd_ai_tool_call_id__final_result',
|
|
132
|
+
)
|
|
133
|
+
],
|
|
134
|
+
usage=RequestUsage(input_tokens=51, output_tokens=6),
|
|
135
|
+
model_name='test',
|
|
136
|
+
timestamp=IsNow(tz=timezone.utc),
|
|
137
|
+
),
|
|
138
|
+
ModelRequest(
|
|
139
|
+
parts=[
|
|
140
|
+
ToolReturnPart(
|
|
141
|
+
tool_name='final_result',
|
|
142
|
+
content='Final result processed.',
|
|
143
|
+
tool_call_id='pyd_ai_tool_call_id__final_result',
|
|
144
|
+
timestamp=IsNow(tz=timezone.utc),
|
|
145
|
+
)
|
|
146
|
+
]
|
|
147
|
+
),
|
|
148
|
+
]
|
|
149
|
+
)
|
|
82
150
|
|
|
83
151
|
|
|
84
152
|
def test_output_type():
|
|
85
153
|
agent = Agent(output_type=tuple[str, str])
|
|
86
154
|
result = agent.run_sync('x', model=TestModel())
|
|
87
155
|
assert result.output == ('a', 'a')
|
|
156
|
+
assert result.all_messages() == snapshot(
|
|
157
|
+
[
|
|
158
|
+
ModelRequest(
|
|
159
|
+
parts=[
|
|
160
|
+
UserPromptPart(
|
|
161
|
+
content='x',
|
|
162
|
+
timestamp=IsNow(tz=timezone.utc),
|
|
163
|
+
)
|
|
164
|
+
]
|
|
165
|
+
),
|
|
166
|
+
ModelResponse(
|
|
167
|
+
parts=[
|
|
168
|
+
ToolCallPart(
|
|
169
|
+
tool_name='final_result',
|
|
170
|
+
args={'response': ['a', 'a']},
|
|
171
|
+
tool_call_id='pyd_ai_tool_call_id__final_result',
|
|
172
|
+
)
|
|
173
|
+
],
|
|
174
|
+
usage=RequestUsage(input_tokens=51, output_tokens=7),
|
|
175
|
+
model_name='test',
|
|
176
|
+
timestamp=IsNow(tz=timezone.utc),
|
|
177
|
+
),
|
|
178
|
+
ModelRequest(
|
|
179
|
+
parts=[
|
|
180
|
+
ToolReturnPart(
|
|
181
|
+
tool_name='final_result',
|
|
182
|
+
content='Final result processed.',
|
|
183
|
+
tool_call_id='pyd_ai_tool_call_id__final_result',
|
|
184
|
+
timestamp=IsNow(tz=timezone.utc),
|
|
185
|
+
)
|
|
186
|
+
]
|
|
187
|
+
),
|
|
188
|
+
]
|
|
189
|
+
)
|
|
88
190
|
|
|
89
191
|
|
|
90
192
|
def test_tool_retry():
|