pydantic-ai 1.0.16__tar.gz → 1.0.18__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.0.16 → pydantic_ai-1.0.18}/PKG-INFO +5 -5
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/README.md +1 -1
- pydantic_ai-1.0.18/tests/models/cassettes/test_openai_responses/test_openai_responses_history_with_combined_tool_call_id.yaml +148 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/test_openai_responses.py +164 -24
- pydantic_ai-1.0.18/tests/providers/test_nebius.py +131 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/test_provider_names.py +2 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/test_agent.py +111 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/test_dbos.py +7 -7
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/test_examples.py +1 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/test_temporal.py +7 -7
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/.gitignore +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/LICENSE +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/Makefile +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/pyproject.toml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/__init__.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/assets/dummy.pdf +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/assets/dummy.txt +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/assets/kiwi.png +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/assets/marcelo.mp3 +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/assets/product_name.txt +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/assets/small_video.mp4 +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_dbos/test_complex_agent_run.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_dbos/test_complex_agent_run_in_workflow.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_dbos/test_complex_agent_run_stream_in_workflow.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_dbos/test_dbos_agent_iter.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_dbos/test_dbos_agent_iter_in_workflow.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_dbos/test_dbos_agent_override_deps_in_workflow.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_dbos/test_dbos_agent_override_tools_in_workflow.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_dbos/test_dbos_agent_run.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_dbos/test_dbos_agent_run_in_workflow_with_toolsets.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_dbos/test_dbos_agent_run_stream.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_dbos/test_dbos_agent_run_sync.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_dbos/test_dbos_agent_run_sync_in_workflow.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_dbos/test_dbos_agent_with_dataclass_deps_as_dict.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_dbos/test_dbos_agent_with_hitl_tool.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_dbos/test_dbos_agent_with_hitl_tool_sync.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_dbos/test_dbos_agent_with_model_retry.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_dbos/test_dbos_agent_with_non_dict_deps.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_dbos/test_dbos_agent_with_unserializable_deps_type.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_dbos/test_dbos_model_stream_direct.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_dbos/test_multiple_agents.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_dbos/test_simple_agent_run_in_workflow.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_mcp/test_agent_with_server_not_running.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_mcp/test_agent_with_stdio_server.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_mcp/test_tool_returning_audio_resource.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_mcp/test_tool_returning_audio_resource_link.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_mcp/test_tool_returning_dict.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_mcp/test_tool_returning_error.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_mcp/test_tool_returning_image.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_mcp/test_tool_returning_image_resource.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_mcp/test_tool_returning_image_resource_link.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_mcp/test_tool_returning_multiple_items.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_mcp/test_tool_returning_none.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_mcp/test_tool_returning_str.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_mcp/test_tool_returning_text_resource.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_mcp/test_tool_returning_text_resource_link.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_mcp/test_tool_returning_unstructured_dict.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_settings/test_stop_settings[anthropic].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_settings/test_stop_settings[bedrock].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_settings/test_stop_settings[cohere].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_settings/test_stop_settings[gemini].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_settings/test_stop_settings[google].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_settings/test_stop_settings[groq].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_settings/test_stop_settings[mistral].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_settings/test_stop_settings[openai].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_temporal/test_complex_agent_run.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_temporal/test_complex_agent_run_in_workflow.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_temporal/test_complex_agent_run_stream_in_workflow.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_temporal/test_logfire_plugin.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_temporal/test_multiple_agents.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_temporal/test_simple_agent_run_in_workflow.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_temporal/test_temporal_agent_iter.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_temporal/test_temporal_agent_override_deps_in_workflow.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_temporal/test_temporal_agent_run.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_temporal/test_temporal_agent_run_stream.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_temporal/test_temporal_agent_run_stream_events.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_temporal/test_temporal_agent_run_sync.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_temporal/test_temporal_agent_sync_tool_activity_disabled.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_temporal/test_temporal_agent_with_dataclass_deps_as_dict.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_temporal/test_temporal_agent_with_hitl_tool.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_temporal/test_temporal_agent_with_model_retry.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_temporal/test_temporal_agent_with_non_dict_deps.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/cassettes/test_temporal/test_temporal_agent_with_unserializable_deps_type.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/conftest.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/evals/__init__.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/evals/test_dataset.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/evals/test_evaluator_base.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/evals/test_evaluator_common.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/evals/test_evaluator_context.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/evals/test_evaluator_spec.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/evals/test_evaluators.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/evals/test_llm_as_a_judge.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/evals/test_otel.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/evals/test_render_numbers.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/evals/test_reporting.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/evals/test_reports.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/evals/test_utils.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/evals/utils.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/example_modules/README.md +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/example_modules/bank_database.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/example_modules/fake_database.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/example_modules/mcp_server.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/example_modules/weather_service.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/ext/__init__.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/ext/test_langchain.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/graph/__init__.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/graph/test_file_persistence.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/graph/test_graph.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/graph/test_mermaid.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/graph/test_persistence.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/graph/test_state.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/graph/test_utils.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/import_examples.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/json_body_serializer.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/mcp_server.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/__init__.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_anthropic/test_anthropic_code_execution_tool.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_anthropic/test_anthropic_code_execution_tool_stream.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_anthropic/test_anthropic_memory_tool.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_anthropic/test_anthropic_model_empty_message_on_history.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_anthropic/test_anthropic_model_instructions.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part_from_other_model.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part_redacted.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part_redacted_stream.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part_stream.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_anthropic/test_anthropic_model_web_search_tool_stream.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_anthropic/test_anthropic_output_tool_with_thinking.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_anthropic/test_anthropic_prompted_output.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_anthropic/test_anthropic_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_anthropic/test_anthropic_server_tool_pass_history_to_another_provider.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_anthropic/test_anthropic_server_tool_receive_history_from_another_provider.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_anthropic/test_anthropic_text_output_function.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_anthropic/test_anthropic_text_parts_ahead_of_built_in_tool_call.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_anthropic/test_anthropic_tool_output.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_anthropic/test_anthropic_tool_with_thinking.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_anthropic/test_anthropic_web_search_tool.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_anthropic/test_anthropic_web_search_tool_stream.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_anthropic/test_document_binary_content_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_anthropic/test_document_url_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_anthropic/test_extra_headers.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_anthropic/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_anthropic/test_image_url_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_anthropic/test_image_url_input_invalid_mime_type.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_anthropic/test_multiple_parallel_tool_calls.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_anthropic/test_text_document_url_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_bedrock/test_bedrock_anthropic_tool_with_thinking.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_bedrock/test_bedrock_empty_system_prompt.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_bedrock/test_bedrock_model.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_bedrock/test_bedrock_model_anthropic_model_without_tools.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_bedrock/test_bedrock_model_guardrail_config.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_bedrock/test_bedrock_model_instructions.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_bedrock/test_bedrock_model_iter_stream.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_bedrock/test_bedrock_model_max_tokens.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_bedrock/test_bedrock_model_other_parameters.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_bedrock/test_bedrock_model_performance_config.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_bedrock/test_bedrock_model_retry.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_bedrock/test_bedrock_model_stream.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_bedrock/test_bedrock_model_structured_output.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_anthropic.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_deepseek.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_from_other_model.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_redacted.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_redacted_stream.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_stream.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_bedrock/test_bedrock_model_top_p.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_bedrock/test_bedrock_multiple_documents_in_history.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_bedrock/test_document_url_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_bedrock/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_bedrock/test_image_url_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_bedrock/test_text_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_bedrock/test_text_document_url_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_bedrock/test_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_bedrock/test_video_url_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_cohere/test_cohere_model_instructions.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_cohere/test_cohere_model_thinking_part.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_cohere/test_request_simple_success_with_vcr.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_deepseek/test_deepseek_model_thinking_part.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_deepseek/test_deepseek_model_thinking_stream.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_download_item/test_download_item_application_octet_stream.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_download_item/test_download_item_audio_mpeg.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_download_item/test_download_item_no_content_type.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_gemini/test_document_url_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_false.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_true.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_gemini/test_gemini_drop_exclusive_maximum.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_gemini/test_gemini_exclusive_minimum_and_maximum.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_gemini/test_gemini_model_instructions.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_gemini/test_gemini_model_thinking_part.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_gemini/test_gemini_native_output.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_gemini/test_gemini_native_output_multiple.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_gemini/test_gemini_prompted_output.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_gemini/test_gemini_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_gemini/test_gemini_prompted_output_with_tools.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_gemini/test_gemini_text_output_function.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_gemini/test_gemini_tool_config_any_with_tool_without_args.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_gemini/test_gemini_tool_output.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_gemini/test_gemini_youtube_video_url_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_gemini/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_gemini/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_gemini/test_image_url_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_gemini/test_labels_are_ignored_with_gla_provider.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_gemini/test_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_gemini/test_video_url_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_gemini_vertex/test_labels.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_gemini_vertex/test_url_input[AudioUrl (gs)].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_gemini_vertex/test_url_input[AudioUrl].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_gemini_vertex/test_url_input[DocumentUrl (gs)].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_gemini_vertex/test_url_input[DocumentUrl].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_gemini_vertex/test_url_input[ImageUrl (gs)].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_gemini_vertex/test_url_input[ImageUrl].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl (YouTube)].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl (gs)].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_gemini_vertex/test_url_input_force_download.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_builtin_tools_with_other_tools.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_image_and_text_output.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_image_generation.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_image_generation_stream.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_image_generation_with_text.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_image_or_text_output.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_builtin_code_execution_stream.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_code_execution_tool.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_document_url_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_empty_assistant_response.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_empty_user_prompt.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_image_url_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_instructions.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_iter_stream.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_max_tokens.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_multiple_documents_in_history.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_receive_web_search_history_from_another_provider.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_retry.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_safety_settings.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_server_tool_receive_history_from_another_provider.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_stream.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_structured_output.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_text_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_text_document_url_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_thinking_config.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_thinking_part.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_thinking_part_from_other_model.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_thinking_part_iter.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_top_p.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_url_context_tool.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_usage_limit_exceeded.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_usage_limit_not_exceeded.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_vertex_labels.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_vertex_provider.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_video_as_binary_content_input_with_vendor_metadata.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_video_url_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_web_search_tool.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_web_search_tool_stream.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_model_youtube_video_url_input_with_vendor_metadata.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_multiple_images.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_native_output.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_native_output_multiple.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_prompted_output.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_prompted_output_with_tools.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_text_output_function.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_timeout.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_tool_config_any_with_tool_without_args.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_tool_output.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_url_input[AudioUrl (gs)].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_url_input[AudioUrl].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_url_input[DocumentUrl (gs)].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_url_input[DocumentUrl].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_url_input[ImageUrl (gs)].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_url_input[ImageUrl].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl (YouTube)].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl (gs)].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_url_input_force_download.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_vertexai_image_generation.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_google/test_google_vertexai_model_usage_limit_exceeded.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_groq/test_extra_headers.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_groq/test_groq_model_instructions.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_groq/test_groq_model_thinking_part.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_groq/test_groq_model_thinking_part_iter.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_groq/test_groq_model_web_search_tool.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_groq/test_groq_model_web_search_tool_stream.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_groq/test_groq_native_output.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_groq/test_groq_prompted_output.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_groq/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_groq/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_groq/test_image_url_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_groq/test_tool_regular_error.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_groq/test_tool_use_failed_error.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_groq/test_tool_use_failed_error_streaming.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_huggingface/test_hf_model_instructions.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_huggingface/test_hf_model_thinking_part.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_huggingface/test_hf_model_thinking_part_iter.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_huggingface/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_huggingface/test_image_url_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_huggingface/test_max_completion_tokens[Qwen-Qwen2.5-72B-Instruct].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_huggingface/test_max_completion_tokens[deepseek-ai-DeepSeek-R1-0528].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_huggingface/test_max_completion_tokens[meta-llama-Llama-3.3-70B-Instruct].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_huggingface/test_request_simple_success_with_vcr.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_huggingface/test_request_simple_usage.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_huggingface/test_simple_completion.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_huggingface/test_stream_completion.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_mistral/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_mistral/test_mistral_model_instructions.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_mistral/test_mistral_model_thinking_part.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_mistral/test_mistral_model_thinking_part_iter.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_model_names/test_known_model_names.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_audio_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_compatible_api_with_tool_calls_without_id.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_document_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_document_as_binary_content_input_with_tool.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_document_url_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_extra_headers.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_image_url_input_force_download.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_image_url_input_force_download_response_api.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_image_url_tool_response.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_invalid_response.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4.5-preview].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4o-mini].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_max_completion_tokens[o3-mini].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_multiple_agent_tool_calls.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_openai_audio_url_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_openai_instructions.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_openai_instructions_with_tool_calls_keep_instructions.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_openai_model_cerebras_provider.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_openai_model_cerebras_provider_harmony.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_openai_model_cerebras_provider_qwen_3_coder.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_openai_model_settings_temperature_ignored_on_gpt_5.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_openai_model_thinking_part.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_openai_model_without_system_prompt.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_openai_native_output.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_openai_native_output_multiple.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[developer].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[system].yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_openai_prompted_output.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_openai_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_openai_text_output_function.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_openai_tool_output.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_openai_web_search_tool.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_openai_web_search_tool_model_not_supported.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_openai_web_search_tool_with_user_location.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_reasoning_model_with_temperature.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_system_prompt_role_o1_mini.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_text_document_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_text_document_url_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_text_response.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_user_id.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai/test_valid_response.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_audio_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_native_output.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_native_output_multiple.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_previous_response_id.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_previous_response_id_auto_mode.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_code_execution_return_image.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_code_execution_return_image_stream.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_as_binary_content_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_url_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_and_text_output.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_generation.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_generation_jpeg.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_generation_stream.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_generation_tool_without_image_output.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_generation_with_native_output.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_generation_with_prompted_output.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_generation_with_tool_output.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_generation_with_tools.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_or_text_output.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_url_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_builtin_tools.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_builtin_tools_web_search.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_http_error.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_instructions.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_retry.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response_with_tool_call.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_thinking_part.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_web_search_tool.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_web_search_tool_stream.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_web_search_tool_with_invalid_region.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_web_search_tool_with_user_location.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_multiple_images.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_non_reasoning_model_no_item_ids.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_output_type.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_effort.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_generate_summary.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_stream.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_streaming_usage.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_system_prompt.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_text_document_url_input.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_thinking_part_from_other_model.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_thinking_part_iter.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_thinking_with_code_execution_tool.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_thinking_with_code_execution_tool_stream.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_thinking_with_modified_history.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_thinking_with_tool_calls.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_openai_responses_verbosity.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_prompted_output.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_reasoning_model_with_temperature.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_text_output_function.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/cassettes/test_openai_responses/test_tool_output.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/mock_async_stream.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/mock_openai.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/test_anthropic.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/test_bedrock.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/test_cohere.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/test_deepseek.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/test_download_item.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/test_fallback.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/test_gemini.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/test_gemini_vertex.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/test_google.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/test_groq.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/test_huggingface.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/test_instrumented.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/test_mcp_sampling.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/test_mistral.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/test_model.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/test_model_function.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/test_model_names.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/test_model_request_parameters.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/test_model_settings.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/test_model_test.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/models/test_openai.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/parts_from_messages.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/__init__.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/cassettes/test_azure/test_azure_provider_call.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/cassettes/test_gateway/test_gateway_provider_with_anthropic.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/cassettes/test_gateway/test_gateway_provider_with_google_vertex.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/cassettes/test_gateway/test_gateway_provider_with_groq.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/cassettes/test_gateway/test_gateway_provider_with_openai.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/cassettes/test_gateway/test_gateway_provider_with_openai_responses.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/cassettes/test_google_vertex/test_vertexai_provider.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/cassettes/test_heroku/test_heroku_model_provider_claude_3_7_sonnet.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/cassettes/test_openrouter/test_openrouter_with_google_model.yaml +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/test_anthropic.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/test_azure.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/test_bedrock.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/test_cerebras.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/test_cohere.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/test_deepseek.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/test_fireworks.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/test_gateway.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/test_github.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/test_google_gla.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/test_google_vertex.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/test_grok.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/test_groq.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/test_heroku.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/test_huggingface.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/test_litellm.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/test_mistral.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/test_moonshotai.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/test_ollama.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/test_openai.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/test_openrouter.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/test_together.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/providers/test_vercel.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/test_a2a.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/test_ag_ui.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/test_builtin_tools.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/test_cli.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/test_deps.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/test_direct.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/test_format_as_xml.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/test_function_schema.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/test_history_processor.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/test_json_body_serializer.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/test_live.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/test_logfire.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/test_mcp.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/test_messages.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/test_parts_manager.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/test_settings.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/test_streaming.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/test_tenacity.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/test_thinking_part.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/test_tools.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/test_toolsets.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/test_usage_limits.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/test_utils.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/tests/typed_agent.py +0 -0
- {pydantic_ai-1.0.16 → pydantic_ai-1.0.18}/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.
|
|
3
|
+
Version: 1.0.18
|
|
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.
|
|
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.18
|
|
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.
|
|
33
|
+
Requires-Dist: pydantic-ai-slim[dbos]==1.0.18; extra == 'dbos'
|
|
34
34
|
Provides-Extra: examples
|
|
35
|
-
Requires-Dist: pydantic-ai-examples==1.0.
|
|
35
|
+
Requires-Dist: pydantic-ai-examples==1.0.18; extra == 'examples'
|
|
36
36
|
Description-Content-Type: text/markdown
|
|
37
37
|
|
|
38
38
|
<div align="center">
|
|
@@ -76,7 +76,7 @@ We built Pydantic AI with one simple aim: to bring that FastAPI feeling to GenAI
|
|
|
76
76
|
[Pydantic Validation](https://docs.pydantic.dev/latest/) is the validation layer of the OpenAI SDK, the Google ADK, the Anthropic SDK, LangChain, LlamaIndex, AutoGPT, Transformers, CrewAI, Instructor and many more. _Why use the derivative when you can go straight to the source?_ :smiley:
|
|
77
77
|
|
|
78
78
|
2. **Model-agnostic**:
|
|
79
|
-
Supports virtually every [model](https://ai.pydantic.dev/models/overview) and provider: OpenAI, Anthropic, Gemini, DeepSeek, Grok, Cohere, Mistral, and Perplexity; Azure AI Foundry, Amazon Bedrock, Google Vertex AI, Ollama, LiteLLM, Groq, OpenRouter, Together AI, Fireworks AI, Cerebras, Hugging Face, GitHub, Heroku, Vercel. If your favorite model or provider is not listed, you can easily implement a [custom model](https://ai.pydantic.dev/models/overview#custom-models).
|
|
79
|
+
Supports virtually every [model](https://ai.pydantic.dev/models/overview) and provider: OpenAI, Anthropic, Gemini, DeepSeek, Grok, Cohere, Mistral, and Perplexity; Azure AI Foundry, Amazon Bedrock, Google Vertex AI, Ollama, LiteLLM, Groq, OpenRouter, Together AI, Fireworks AI, Cerebras, Hugging Face, GitHub, Heroku, Vercel, Nebius. If your favorite model or provider is not listed, you can easily implement a [custom model](https://ai.pydantic.dev/models/overview#custom-models).
|
|
80
80
|
|
|
81
81
|
3. **Seamless Observability**:
|
|
82
82
|
Tightly [integrates](https://ai.pydantic.dev/logfire) with [Pydantic Logfire](https://pydantic.dev/logfire), our general-purpose OpenTelemetry observability platform, for real-time debugging, evals-based performance monitoring, and behavior, tracing, and cost tracking. If you already have an observability platform that supports OTel, you can [use that too](https://ai.pydantic.dev/logfire#alternative-observability-backends).
|
|
@@ -39,7 +39,7 @@ We built Pydantic AI with one simple aim: to bring that FastAPI feeling to GenAI
|
|
|
39
39
|
[Pydantic Validation](https://docs.pydantic.dev/latest/) is the validation layer of the OpenAI SDK, the Google ADK, the Anthropic SDK, LangChain, LlamaIndex, AutoGPT, Transformers, CrewAI, Instructor and many more. _Why use the derivative when you can go straight to the source?_ :smiley:
|
|
40
40
|
|
|
41
41
|
2. **Model-agnostic**:
|
|
42
|
-
Supports virtually every [model](https://ai.pydantic.dev/models/overview) and provider: OpenAI, Anthropic, Gemini, DeepSeek, Grok, Cohere, Mistral, and Perplexity; Azure AI Foundry, Amazon Bedrock, Google Vertex AI, Ollama, LiteLLM, Groq, OpenRouter, Together AI, Fireworks AI, Cerebras, Hugging Face, GitHub, Heroku, Vercel. If your favorite model or provider is not listed, you can easily implement a [custom model](https://ai.pydantic.dev/models/overview#custom-models).
|
|
42
|
+
Supports virtually every [model](https://ai.pydantic.dev/models/overview) and provider: OpenAI, Anthropic, Gemini, DeepSeek, Grok, Cohere, Mistral, and Perplexity; Azure AI Foundry, Amazon Bedrock, Google Vertex AI, Ollama, LiteLLM, Groq, OpenRouter, Together AI, Fireworks AI, Cerebras, Hugging Face, GitHub, Heroku, Vercel, Nebius. If your favorite model or provider is not listed, you can easily implement a [custom model](https://ai.pydantic.dev/models/overview#custom-models).
|
|
43
43
|
|
|
44
44
|
3. **Seamless Observability**:
|
|
45
45
|
Tightly [integrates](https://ai.pydantic.dev/logfire) with [Pydantic Logfire](https://pydantic.dev/logfire), our general-purpose OpenTelemetry observability platform, for real-time debugging, evals-based performance monitoring, and behavior, tracing, and cost tracking. If you already have an observability platform that supports OTel, you can [use that too](https://ai.pydantic.dev/logfire#alternative-observability-backends).
|
|
@@ -0,0 +1,148 @@
|
|
|
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
|
+
- '834'
|
|
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 largest city in the user country?
|
|
22
|
+
role: user
|
|
23
|
+
- arguments: '{}'
|
|
24
|
+
call_id: call_ZWkVhdUjupo528U9dqgFeRkH
|
|
25
|
+
id: fc_68477f0bb8e4819cba6d781e174d77f8001fd29e2d5573f7
|
|
26
|
+
name: get_user_country
|
|
27
|
+
type: function_call
|
|
28
|
+
- call_id: call_ZWkVhdUjupo528U9dqgFeRkH
|
|
29
|
+
output: Mexico
|
|
30
|
+
type: function_call_output
|
|
31
|
+
- content: What is the largest city in the user country?
|
|
32
|
+
role: user
|
|
33
|
+
model: gpt-5
|
|
34
|
+
previous_response_id: null
|
|
35
|
+
stream: false
|
|
36
|
+
tool_choice: required
|
|
37
|
+
tools:
|
|
38
|
+
- description: The final response which ends this conversation
|
|
39
|
+
name: final_result
|
|
40
|
+
parameters:
|
|
41
|
+
additionalProperties: false
|
|
42
|
+
properties:
|
|
43
|
+
city:
|
|
44
|
+
type: string
|
|
45
|
+
country:
|
|
46
|
+
type: string
|
|
47
|
+
required:
|
|
48
|
+
- city
|
|
49
|
+
- country
|
|
50
|
+
type: object
|
|
51
|
+
strict: true
|
|
52
|
+
type: function
|
|
53
|
+
uri: https://api.openai.com/v1/responses
|
|
54
|
+
response:
|
|
55
|
+
headers:
|
|
56
|
+
alt-svc:
|
|
57
|
+
- h3=":443"; ma=86400
|
|
58
|
+
connection:
|
|
59
|
+
- keep-alive
|
|
60
|
+
content-length:
|
|
61
|
+
- '5572'
|
|
62
|
+
content-type:
|
|
63
|
+
- application/json
|
|
64
|
+
openai-organization:
|
|
65
|
+
- pydantic-28gund
|
|
66
|
+
openai-processing-ms:
|
|
67
|
+
- '6305'
|
|
68
|
+
openai-project:
|
|
69
|
+
- proj_dKobscVY9YJxeEaDJen54e3d
|
|
70
|
+
openai-version:
|
|
71
|
+
- '2020-10-01'
|
|
72
|
+
strict-transport-security:
|
|
73
|
+
- max-age=31536000; includeSubDomains; preload
|
|
74
|
+
transfer-encoding:
|
|
75
|
+
- chunked
|
|
76
|
+
parsed_body:
|
|
77
|
+
background: false
|
|
78
|
+
billing:
|
|
79
|
+
payer: developer
|
|
80
|
+
created_at: 1760355047
|
|
81
|
+
error: null
|
|
82
|
+
id: resp_001fd29e2d5573f70068ece2e6dfbc819c96557f0de72802be
|
|
83
|
+
incomplete_details: null
|
|
84
|
+
instructions: null
|
|
85
|
+
max_output_tokens: null
|
|
86
|
+
max_tool_calls: null
|
|
87
|
+
metadata: {}
|
|
88
|
+
model: gpt-5-2025-08-07
|
|
89
|
+
object: response
|
|
90
|
+
output:
|
|
91
|
+
- encrypted_content: gAAAAABo7OLt_-yMcMz15n_JkwU0selGH2vqiwJDNU86YIjY_jQLXid4usIFjjCppiyOnJjtU_C6e7jUIKnfZRBt1DHVFMGpAVvTBZBVdJhXl0ypGjkAj3Wv_3ecAG9oU3DoUMKrbwEMqL0LaSfNSN1qgCTt-RL2sgeEDgFeiOpX40BWgS8tVMfR4_qBxJcp8KeYvw5niPgwcMF3UPIEjHlaVpglJH2SzZtTOdxeFDfYbnvdWTMvwYFIc0jKOREG_-hZE4AznhHdSLV2-I5nGlxuxqaI4GQCk-Fp8Cvcy15_NYYP62ii50VlR6HPp_gQZEetwgC5pThsiuuG7-n1hGOnsj8gZyjSKsMe2KpzlYzhT7ighmArDVEx8Utvp1FXikqGkEzt4RTqqPInp9kuvqQTSyd8JZ6BEetRl1EuZXT7zXrzLwFN7Vm_gqixmf6mLXZUw6vg6LqGkhSh5fo6C7akPTwwJXjVJ37Dzfejo6RiVKOT-_9sdYCHW2kZ9XfQAmRQfB97UpSZ8QrVfaKy_uRIHLexs8QrQvKuw-uHDQBAL3OEmSTzHzCQ-q7b0FHr514Z29l9etavHNVdpeleWGo6VEtLWGQyblIdIBtf946YnQvr6NYIR8uATn9Z91rr8FsFJTpJh_v5iGA2f8rfPRu27nmw-q8XnPVc_FYCZDk08r_YhdEJZn1INBi8wYSWmpib8VxNpkFO7FFRuK-F8rh3MTpYgIOqPQYbf3LCRvKukTwv1b3mjSKVpHQSm_s6s7djdD-rLuc22-3_MLd0ii4_oOT8w51TQIM61LtonGvxUqf4oKHSUFCVnrWWiT-0ttdpwpJ_iB5frnEeY2mWyU1u7sd38BI3dOzoM82IFaIm98g9fa99bmoA7Z7gI60tzyF8YbJmWF-PCwyKHJ7B1MbCBonO36NmeEM-SplrR54fGykxTmwvtbYGhd5f0cdYzD0zulRDj-AhOd96rrUB_fIgoQGTXey8L_w0whcnVTWdG6is-rx8373Sz8ZRoE5RiLWW1mfHzVXxwslphx4BedRVF0tL-1YO7sg5MXhHCf6hpw8dOht-21NMrb1F1DQadFE_fhySFl-TgOD5BlhAuupLMsqcCIa4lcXP_loyA4ERP6WSdz2Bybz7_1eOiflfVodRrNqvr_DnL0NEXD_JkYTeIn84ziarFV7U7ZnkMvRiA_p1fWdbHTsE_8lu1rsf8fcJ1e76_6ycPkOc4TrOZw8gVRb7gIbMMVrv72BT_sFhW7GkXrzCQpQaeybmRw-bjFhkMMjMDYGXkA_H0q2Zfyh3zCOoa40hl2cqRWp7n1XuafmtKG_F8e9hyWox0q7AhZr5HOOaHz8r3O3-dmNl1KP52bqA8S72rLDslAOQlDupmAQgAmkm5ApYeYcEBredN78jHQ1pviUEI2-3qr4ClXZFHPa54AJ_q4HQ-EcKXEcYQglG21mSUy_tFQF-m4X46Qu8yYWcBVW4E0CG3wbvYx0BCdbc5RhIDkJo1elxLK8XS64lpFkCWy62xLVeMuVuCj8q84-Kk7tZ7gtMtLV9PHQCdbl3s2pAzMfuNIBJog6-HPmwha2n9T0Md5qF7OqCtnYWOWUfIMmQVcdW-ECGsQy9uIUmpsOjdtH31hrX3MUEhIOUB5xErLwfp-_s22ciAY_ap3JlYAiTKGlMCxKxTzK7wWEG_nYhDXC1Afj2z-tgvYhtn9MyDf2v0aIpDM9BoTOLEO-ButzylJ06pJlrJhpdvklvwJxUiuhlwy0bHNilb4Zv4QwnUv3DCrIeKe1ne90vEXe6YlDwSMeWJcz1DZIQBvVcNlN8q2y8Rae3lMWzsvD0YXrcXp02ckYoLSOQZgNYviGYLsgRgPGiIkncjSDt7WWV6td3l-zTrP6MT_hKigmg5F5_F6tS1bKb0jlQBZd0NP-_L_TPqMGRjCYG8johd6VyMiagslDjxG39Dh2wyTI19ZW7h_AOuOpnfkt2armqiq6iGfevA3malqkNakb6mFAS04J9O0butWVAw4yiPCEcLuDNAzzi_qrqLee4gkjh0NplvfGCaE6qqYms61GJbJC4wge6vjyTakurbqWEV3YoR3y_dn-0pjQ7TOx9kkruDwg0nZIV5O6yYxaulmbuvo3fs5CZb9ptZPD0MzGZj7CZU2MDCa4a4gr0McOx2MricxSzIu6emuRUzZuC6C1JxPRC00M0TrZNMIe_WVa9fXDLV1ULEAIMwMXzNT9zV6yiYQCwhkp30Wqde3W0LlIRpSbDuJXcvT8OCbXkdPNIScccdT9LvUQQ--hU2P45kisOev3TYn7yv-pdxM3u1KFNwuFxedSArMBPg7GDz1BOxDQRzv0mfwbf_CcoFbuyj7Tf4zWO46HVdHeRNbvIE--bnaSYD-UFaKknp8ZsBQQhBU_2TEca3fKwmg81-g7Vdb28QUZEuPzgE4ekxZejkKpiKqlLC5nJYgvXrqk2H35D51mYdzPs0ST05Mc41x9MFm_YOLxSFyA0yGAKVINmD5wT6kvRflPkgoksd2ryIvo4KMw3oZQKodv5By0mSJ8iX2vhTGylxiM8wj-ICyNuOsaRFrcMSpX7tZbXcDyysApdmx217BSADoQiNZBLngF7ptxc2QGyo3CwuDjaljwmSgL9KeGthd1RJFd826M287IPpCjLM4WRquCL_E0pQryNqOMn-ZEOCAlBjE37290EhkjKbhiGBEnHUvSbhoH4nL47AmunP_Q5aqh5173VfyoyaybuS3fXjQ5WO0kyFjMdD-a7C6PVdwToCTP-TljoF2YnQKCiqUGs9gNHS9mYhQSXzY4uuGlTHLfKB4JKS5_MQHvwI9zCbTvVG854fPuo_2mzSh-y8TSzBWPokhYWI_q095Sh6tOqDIJNMGyjI2GDFRSyKpKhIFCLyU2JEo9B6l91jPlir0XI8ZOQfBd9J0I4JIqnyoj40_1bF1zUDGc014bdGfxazxwlGph_ysKAP39wV7X9DBFS3ZmeSIn-r3s-sci0HmwnJUb2r03m40rFuNTV1cJMAFP7ZY7PQQQ0TtlO_al0uedaOWylLauap_eoRqc6xGJ2rSz1e7cOevksUlAqzK5xknYKHlsW970xuDGHKOZnKPg8O9nb2PKrcjwEQF5RFPc3l8TtOUXPhhvTERZFGoEuGuSuSp1cJhzba06yPnL-wE3CstYUm3jvkaUme6kKqM4tWBCQDg-_2PYf24xXYlmkIklylskqId826Y3pVVUd7e0vQO0POPeVYU1qwtTp7Ln-MhYEWexxptdNkVQ-kWx63w6HXF6_kefSxaf0UcvL8tOV73u7w_udle9MC_TXgwJZpoW2tSi5HETjQ_i28FAP2iJmclWOm3gP08cMiXvgpTpjzh6meBdvKepnifl_ivPzRnyjz3mYCZH-UJ4LmOHIonv-8arnckhCwHoFIpaIX7eSZyY0JcbBETKImtUwrlTSlbD8l02KDtqw2FJURtEWI5dC1sTS8c2HcyjXyQDA9A25a0M1yIgZyaadODGQ1zoa9xXB
|
|
92
|
+
id: rs_001fd29e2d5573f70068ece2e816fc819c82755f049c987ea4
|
|
93
|
+
summary: []
|
|
94
|
+
type: reasoning
|
|
95
|
+
- arguments: '{"city":"Mexico City","country":"Mexico"}'
|
|
96
|
+
call_id: call_LIXPi261Xx3dGYzlDsOoyHGk
|
|
97
|
+
id: fc_001fd29e2d5573f70068ece2ecc140819c97ca83bd4647a717
|
|
98
|
+
name: final_result
|
|
99
|
+
status: completed
|
|
100
|
+
type: function_call
|
|
101
|
+
parallel_tool_calls: true
|
|
102
|
+
previous_response_id: null
|
|
103
|
+
prompt_cache_key: null
|
|
104
|
+
reasoning:
|
|
105
|
+
effort: medium
|
|
106
|
+
summary: null
|
|
107
|
+
safety_identifier: null
|
|
108
|
+
service_tier: default
|
|
109
|
+
status: completed
|
|
110
|
+
store: true
|
|
111
|
+
temperature: 1.0
|
|
112
|
+
text:
|
|
113
|
+
format:
|
|
114
|
+
type: text
|
|
115
|
+
verbosity: medium
|
|
116
|
+
tool_choice: required
|
|
117
|
+
tools:
|
|
118
|
+
- description: The final response which ends this conversation
|
|
119
|
+
name: final_result
|
|
120
|
+
parameters:
|
|
121
|
+
additionalProperties: false
|
|
122
|
+
properties:
|
|
123
|
+
city:
|
|
124
|
+
type: string
|
|
125
|
+
country:
|
|
126
|
+
type: string
|
|
127
|
+
required:
|
|
128
|
+
- city
|
|
129
|
+
- country
|
|
130
|
+
type: object
|
|
131
|
+
strict: true
|
|
132
|
+
type: function
|
|
133
|
+
top_logprobs: 0
|
|
134
|
+
top_p: 1.0
|
|
135
|
+
truncation: disabled
|
|
136
|
+
usage:
|
|
137
|
+
input_tokens: 103
|
|
138
|
+
input_tokens_details:
|
|
139
|
+
cached_tokens: 0
|
|
140
|
+
output_tokens: 409
|
|
141
|
+
output_tokens_details:
|
|
142
|
+
reasoning_tokens: 384
|
|
143
|
+
total_tokens: 512
|
|
144
|
+
user: null
|
|
145
|
+
status:
|
|
146
|
+
code: 200
|
|
147
|
+
message: OK
|
|
148
|
+
version: 1
|
|
@@ -251,11 +251,13 @@ async def test_openai_responses_model_retry(allow_model_requests: None, openai_a
|
|
|
251
251
|
tool_name='get_location',
|
|
252
252
|
args='{"loc_name":"Londos"}',
|
|
253
253
|
tool_call_id=IsStr(),
|
|
254
|
+
id='fc_67e547c540648191bc7505ac667e023f0ae6111e84dd5c08',
|
|
254
255
|
),
|
|
255
256
|
ToolCallPart(
|
|
256
257
|
tool_name='get_location',
|
|
257
258
|
args='{"loc_name":"London"}',
|
|
258
259
|
tool_call_id=IsStr(),
|
|
260
|
+
id='fc_67e547c55c3081919da7a3f7fe81a1030ae6111e84dd5c08',
|
|
259
261
|
),
|
|
260
262
|
],
|
|
261
263
|
usage=RequestUsage(details={'reasoning_tokens': 0}),
|
|
@@ -328,7 +330,14 @@ async def test_image_as_binary_content_tool_response(
|
|
|
328
330
|
]
|
|
329
331
|
),
|
|
330
332
|
ModelResponse(
|
|
331
|
-
parts=[
|
|
333
|
+
parts=[
|
|
334
|
+
ToolCallPart(
|
|
335
|
+
tool_name='get_image',
|
|
336
|
+
args='{}',
|
|
337
|
+
tool_call_id=IsStr(),
|
|
338
|
+
id='fc_681134d47cf48191b3f62e4d28b6c3820fe7a5a4e2123dc3',
|
|
339
|
+
)
|
|
340
|
+
],
|
|
332
341
|
usage=RequestUsage(input_tokens=40, output_tokens=11, details={'reasoning_tokens': 0}),
|
|
333
342
|
model_name='gpt-4o-2024-08-06',
|
|
334
343
|
timestamp=IsDatetime(),
|
|
@@ -342,7 +351,7 @@ async def test_image_as_binary_content_tool_response(
|
|
|
342
351
|
ToolReturnPart(
|
|
343
352
|
tool_name='get_image',
|
|
344
353
|
content='See file 1c8566',
|
|
345
|
-
tool_call_id='call_FLm3B1f8QAan0KpbUXhNY8bA
|
|
354
|
+
tool_call_id='call_FLm3B1f8QAan0KpbUXhNY8bA',
|
|
346
355
|
timestamp=IsDatetime(),
|
|
347
356
|
),
|
|
348
357
|
UserPromptPart(
|
|
@@ -1275,7 +1284,14 @@ async def test_tool_output(allow_model_requests: None, openai_api_key: str):
|
|
|
1275
1284
|
]
|
|
1276
1285
|
),
|
|
1277
1286
|
ModelResponse(
|
|
1278
|
-
parts=[
|
|
1287
|
+
parts=[
|
|
1288
|
+
ToolCallPart(
|
|
1289
|
+
tool_name='get_user_country',
|
|
1290
|
+
args='{}',
|
|
1291
|
+
tool_call_id=IsStr(),
|
|
1292
|
+
id='fc_68477f0bb8e4819cba6d781e174d77f8001fd29e2d5573f7',
|
|
1293
|
+
)
|
|
1294
|
+
],
|
|
1279
1295
|
usage=RequestUsage(input_tokens=62, output_tokens=12, details={'reasoning_tokens': 0}),
|
|
1280
1296
|
model_name='gpt-4o-2024-08-06',
|
|
1281
1297
|
timestamp=IsDatetime(),
|
|
@@ -1289,7 +1305,7 @@ async def test_tool_output(allow_model_requests: None, openai_api_key: str):
|
|
|
1289
1305
|
ToolReturnPart(
|
|
1290
1306
|
tool_name='get_user_country',
|
|
1291
1307
|
content='Mexico',
|
|
1292
|
-
tool_call_id='call_ZWkVhdUjupo528U9dqgFeRkH
|
|
1308
|
+
tool_call_id='call_ZWkVhdUjupo528U9dqgFeRkH',
|
|
1293
1309
|
timestamp=IsDatetime(),
|
|
1294
1310
|
)
|
|
1295
1311
|
]
|
|
@@ -1299,7 +1315,8 @@ async def test_tool_output(allow_model_requests: None, openai_api_key: str):
|
|
|
1299
1315
|
ToolCallPart(
|
|
1300
1316
|
tool_name='final_result',
|
|
1301
1317
|
args='{"city":"Mexico City","country":"Mexico"}',
|
|
1302
|
-
tool_call_id='call_iFBd0zULhSZRR908DfH73VwN
|
|
1318
|
+
tool_call_id='call_iFBd0zULhSZRR908DfH73VwN',
|
|
1319
|
+
id='fc_68477f0c91cc819e8024e7e633f0f09401dc81d4bc91f560',
|
|
1303
1320
|
)
|
|
1304
1321
|
],
|
|
1305
1322
|
usage=RequestUsage(input_tokens=85, output_tokens=20, details={'reasoning_tokens': 0}),
|
|
@@ -1315,7 +1332,7 @@ async def test_tool_output(allow_model_requests: None, openai_api_key: str):
|
|
|
1315
1332
|
ToolReturnPart(
|
|
1316
1333
|
tool_name='final_result',
|
|
1317
1334
|
content='Final result processed.',
|
|
1318
|
-
tool_call_id='call_iFBd0zULhSZRR908DfH73VwN
|
|
1335
|
+
tool_call_id='call_iFBd0zULhSZRR908DfH73VwN',
|
|
1319
1336
|
timestamp=IsDatetime(),
|
|
1320
1337
|
)
|
|
1321
1338
|
]
|
|
@@ -1355,7 +1372,8 @@ async def test_text_output_function(allow_model_requests: None, openai_api_key:
|
|
|
1355
1372
|
ToolCallPart(
|
|
1356
1373
|
tool_name='get_user_country',
|
|
1357
1374
|
args='{}',
|
|
1358
|
-
tool_call_id='call_aTJhYjzmixZaVGqwl5gn2Ncr
|
|
1375
|
+
tool_call_id='call_aTJhYjzmixZaVGqwl5gn2Ncr',
|
|
1376
|
+
id='fc_68477f0dff5c819ea17a1ffbaea621e00356a60c98816d6a',
|
|
1359
1377
|
)
|
|
1360
1378
|
],
|
|
1361
1379
|
usage=RequestUsage(input_tokens=36, output_tokens=12, details={'reasoning_tokens': 0}),
|
|
@@ -1371,7 +1389,7 @@ async def test_text_output_function(allow_model_requests: None, openai_api_key:
|
|
|
1371
1389
|
ToolReturnPart(
|
|
1372
1390
|
tool_name='get_user_country',
|
|
1373
1391
|
content='Mexico',
|
|
1374
|
-
tool_call_id='call_aTJhYjzmixZaVGqwl5gn2Ncr
|
|
1392
|
+
tool_call_id='call_aTJhYjzmixZaVGqwl5gn2Ncr',
|
|
1375
1393
|
timestamp=IsDatetime(),
|
|
1376
1394
|
)
|
|
1377
1395
|
]
|
|
@@ -1425,7 +1443,14 @@ async def test_native_output(allow_model_requests: None, openai_api_key: str):
|
|
|
1425
1443
|
]
|
|
1426
1444
|
),
|
|
1427
1445
|
ModelResponse(
|
|
1428
|
-
parts=[
|
|
1446
|
+
parts=[
|
|
1447
|
+
ToolCallPart(
|
|
1448
|
+
tool_name='get_user_country',
|
|
1449
|
+
args='{}',
|
|
1450
|
+
tool_call_id=IsStr(),
|
|
1451
|
+
id='fc_68477f0fa7c081a19a525f7c6f180f310b8591d9001d2329',
|
|
1452
|
+
)
|
|
1453
|
+
],
|
|
1429
1454
|
usage=RequestUsage(input_tokens=66, output_tokens=12, details={'reasoning_tokens': 0}),
|
|
1430
1455
|
model_name='gpt-4o-2024-08-06',
|
|
1431
1456
|
timestamp=IsDatetime(),
|
|
@@ -1439,7 +1464,7 @@ async def test_native_output(allow_model_requests: None, openai_api_key: str):
|
|
|
1439
1464
|
ToolReturnPart(
|
|
1440
1465
|
tool_name='get_user_country',
|
|
1441
1466
|
content='Mexico',
|
|
1442
|
-
tool_call_id='call_tTAThu8l2S9hNky2krdwijGP
|
|
1467
|
+
tool_call_id='call_tTAThu8l2S9hNky2krdwijGP',
|
|
1443
1468
|
timestamp=IsDatetime(),
|
|
1444
1469
|
)
|
|
1445
1470
|
]
|
|
@@ -1495,7 +1520,14 @@ async def test_native_output_multiple(allow_model_requests: None, openai_api_key
|
|
|
1495
1520
|
]
|
|
1496
1521
|
),
|
|
1497
1522
|
ModelResponse(
|
|
1498
|
-
parts=[
|
|
1523
|
+
parts=[
|
|
1524
|
+
ToolCallPart(
|
|
1525
|
+
tool_name='get_user_country',
|
|
1526
|
+
args='{}',
|
|
1527
|
+
tool_call_id=IsStr(),
|
|
1528
|
+
id='fc_68477f1168a081a3981e847cd94275080dd57d732903c563',
|
|
1529
|
+
)
|
|
1530
|
+
],
|
|
1499
1531
|
usage=RequestUsage(input_tokens=153, output_tokens=12, details={'reasoning_tokens': 0}),
|
|
1500
1532
|
model_name='gpt-4o-2024-08-06',
|
|
1501
1533
|
timestamp=IsDatetime(),
|
|
@@ -1509,7 +1541,7 @@ async def test_native_output_multiple(allow_model_requests: None, openai_api_key
|
|
|
1509
1541
|
ToolReturnPart(
|
|
1510
1542
|
tool_name='get_user_country',
|
|
1511
1543
|
content='Mexico',
|
|
1512
|
-
tool_call_id='call_UaLahjOtaM2tTyYZLxTCbOaP
|
|
1544
|
+
tool_call_id='call_UaLahjOtaM2tTyYZLxTCbOaP',
|
|
1513
1545
|
timestamp=IsDatetime(),
|
|
1514
1546
|
)
|
|
1515
1547
|
]
|
|
@@ -1568,7 +1600,14 @@ Don't include any text or Markdown fencing before or after.\
|
|
|
1568
1600
|
""",
|
|
1569
1601
|
),
|
|
1570
1602
|
ModelResponse(
|
|
1571
|
-
parts=[
|
|
1603
|
+
parts=[
|
|
1604
|
+
ToolCallPart(
|
|
1605
|
+
tool_name='get_user_country',
|
|
1606
|
+
args='{}',
|
|
1607
|
+
tool_call_id=IsStr(),
|
|
1608
|
+
id='fc_68482f1b0ff081a1b37b9170ee740d1e02f8ef7f2fb42b50',
|
|
1609
|
+
)
|
|
1610
|
+
],
|
|
1572
1611
|
usage=RequestUsage(input_tokens=107, output_tokens=12, details={'reasoning_tokens': 0}),
|
|
1573
1612
|
model_name='gpt-4o-2024-08-06',
|
|
1574
1613
|
timestamp=IsDatetime(),
|
|
@@ -1582,7 +1621,7 @@ Don't include any text or Markdown fencing before or after.\
|
|
|
1582
1621
|
ToolReturnPart(
|
|
1583
1622
|
tool_name='get_user_country',
|
|
1584
1623
|
content='Mexico',
|
|
1585
|
-
tool_call_id='call_FrlL4M0CbAy8Dhv4VqF1Shom
|
|
1624
|
+
tool_call_id='call_FrlL4M0CbAy8Dhv4VqF1Shom',
|
|
1586
1625
|
timestamp=IsDatetime(),
|
|
1587
1626
|
)
|
|
1588
1627
|
],
|
|
@@ -1652,7 +1691,14 @@ Don't include any text or Markdown fencing before or after.\
|
|
|
1652
1691
|
""",
|
|
1653
1692
|
),
|
|
1654
1693
|
ModelResponse(
|
|
1655
|
-
parts=[
|
|
1694
|
+
parts=[
|
|
1695
|
+
ToolCallPart(
|
|
1696
|
+
tool_name='get_user_country',
|
|
1697
|
+
args='{}',
|
|
1698
|
+
tool_call_id=IsStr(),
|
|
1699
|
+
id='fc_68482f2889d481a199caa61de7ccb62c08e79646fe74d5ee',
|
|
1700
|
+
)
|
|
1701
|
+
],
|
|
1656
1702
|
usage=RequestUsage(input_tokens=283, output_tokens=12, details={'reasoning_tokens': 0}),
|
|
1657
1703
|
model_name='gpt-4o-2024-08-06',
|
|
1658
1704
|
timestamp=IsDatetime(),
|
|
@@ -1666,7 +1712,7 @@ Don't include any text or Markdown fencing before or after.\
|
|
|
1666
1712
|
ToolReturnPart(
|
|
1667
1713
|
tool_name='get_user_country',
|
|
1668
1714
|
content='Mexico',
|
|
1669
|
-
tool_call_id='call_my4OyoVXRT0m7bLWmsxcaCQI
|
|
1715
|
+
tool_call_id='call_my4OyoVXRT0m7bLWmsxcaCQI',
|
|
1670
1716
|
timestamp=IsDatetime(),
|
|
1671
1717
|
)
|
|
1672
1718
|
],
|
|
@@ -2200,7 +2246,8 @@ async def test_openai_responses_thinking_with_tool_calls(allow_model_requests: N
|
|
|
2200
2246
|
ToolCallPart(
|
|
2201
2247
|
tool_name='update_plan',
|
|
2202
2248
|
args=IsStr(),
|
|
2203
|
-
tool_call_id='call_gL7JE6GDeGGsFubqO2XGytyO
|
|
2249
|
+
tool_call_id='call_gL7JE6GDeGGsFubqO2XGytyO',
|
|
2250
|
+
id='fc_68c42d3e9e4881968b15fbb8253f58540e8bc41441c948f6',
|
|
2204
2251
|
),
|
|
2205
2252
|
],
|
|
2206
2253
|
usage=RequestUsage(input_tokens=124, output_tokens=1926, details={'reasoning_tokens': 1792}),
|
|
@@ -2216,7 +2263,7 @@ async def test_openai_responses_thinking_with_tool_calls(allow_model_requests: N
|
|
|
2216
2263
|
ToolReturnPart(
|
|
2217
2264
|
tool_name='update_plan',
|
|
2218
2265
|
content='plan updated',
|
|
2219
|
-
tool_call_id='call_gL7JE6GDeGGsFubqO2XGytyO
|
|
2266
|
+
tool_call_id='call_gL7JE6GDeGGsFubqO2XGytyO',
|
|
2220
2267
|
timestamp=IsDatetime(),
|
|
2221
2268
|
)
|
|
2222
2269
|
],
|
|
@@ -3380,7 +3427,8 @@ async def test_openai_responses_non_reasoning_model_no_item_ids(allow_model_requ
|
|
|
3380
3427
|
ToolCallPart(
|
|
3381
3428
|
tool_name='get_meaning_of_life',
|
|
3382
3429
|
args='{}',
|
|
3383
|
-
tool_call_id='call_3WCunBU7lCG1HHaLmnnRJn8I
|
|
3430
|
+
tool_call_id='call_3WCunBU7lCG1HHaLmnnRJn8I',
|
|
3431
|
+
id='fc_68cc4fa649ac8195b0c6c239cd2c14470548824120ffcf74',
|
|
3384
3432
|
)
|
|
3385
3433
|
],
|
|
3386
3434
|
usage=RequestUsage(input_tokens=36, output_tokens=15, details={'reasoning_tokens': 0}),
|
|
@@ -3396,7 +3444,7 @@ async def test_openai_responses_non_reasoning_model_no_item_ids(allow_model_requ
|
|
|
3396
3444
|
ToolReturnPart(
|
|
3397
3445
|
tool_name='get_meaning_of_life',
|
|
3398
3446
|
content=42,
|
|
3399
|
-
tool_call_id='call_3WCunBU7lCG1HHaLmnnRJn8I
|
|
3447
|
+
tool_call_id='call_3WCunBU7lCG1HHaLmnnRJn8I',
|
|
3400
3448
|
timestamp=IsDatetime(),
|
|
3401
3449
|
)
|
|
3402
3450
|
]
|
|
@@ -5736,7 +5784,8 @@ async def test_openai_responses_image_generation_with_tool_output(allow_model_re
|
|
|
5736
5784
|
ToolCallPart(
|
|
5737
5785
|
tool_name='final_result',
|
|
5738
5786
|
args='{"species":"Axolotl","name":"Axie"}',
|
|
5739
|
-
tool_call_id='call_eE7MHM5WMJnMt5srV69NmBJk
|
|
5787
|
+
tool_call_id='call_eE7MHM5WMJnMt5srV69NmBJk',
|
|
5788
|
+
id='fc_0360827931d9421b0068dd83918a8c81a08a765e558fd5e071',
|
|
5740
5789
|
),
|
|
5741
5790
|
],
|
|
5742
5791
|
usage=RequestUsage(input_tokens=587, output_tokens=2587, details={'reasoning_tokens': 2560}),
|
|
@@ -5752,7 +5801,7 @@ async def test_openai_responses_image_generation_with_tool_output(allow_model_re
|
|
|
5752
5801
|
ToolReturnPart(
|
|
5753
5802
|
tool_name='final_result',
|
|
5754
5803
|
content='Final result processed.',
|
|
5755
|
-
tool_call_id='call_eE7MHM5WMJnMt5srV69NmBJk
|
|
5804
|
+
tool_call_id='call_eE7MHM5WMJnMt5srV69NmBJk',
|
|
5756
5805
|
timestamp=IsDatetime(),
|
|
5757
5806
|
)
|
|
5758
5807
|
]
|
|
@@ -5947,7 +5996,8 @@ async def test_openai_responses_image_generation_with_tools(allow_model_requests
|
|
|
5947
5996
|
ToolCallPart(
|
|
5948
5997
|
tool_name='get_animal',
|
|
5949
5998
|
args='{}',
|
|
5950
|
-
tool_call_id='call_t76xO1K2zqrJkawkU3tur8vj
|
|
5999
|
+
tool_call_id='call_t76xO1K2zqrJkawkU3tur8vj',
|
|
6000
|
+
id='fc_0481074da98340df0068dd88f000688191afaf54f799b1dfaf',
|
|
5951
6001
|
),
|
|
5952
6002
|
],
|
|
5953
6003
|
usage=RequestUsage(input_tokens=389, output_tokens=721, details={'reasoning_tokens': 704}),
|
|
@@ -5963,7 +6013,7 @@ async def test_openai_responses_image_generation_with_tools(allow_model_requests
|
|
|
5963
6013
|
ToolReturnPart(
|
|
5964
6014
|
tool_name='get_animal',
|
|
5965
6015
|
content='axolotl',
|
|
5966
|
-
tool_call_id='call_t76xO1K2zqrJkawkU3tur8vj
|
|
6016
|
+
tool_call_id='call_t76xO1K2zqrJkawkU3tur8vj',
|
|
5967
6017
|
timestamp=IsDatetime(),
|
|
5968
6018
|
)
|
|
5969
6019
|
]
|
|
@@ -6180,3 +6230,93 @@ async def test_openai_responses_image_generation_jpeg(allow_model_requests: None
|
|
|
6180
6230
|
),
|
|
6181
6231
|
]
|
|
6182
6232
|
)
|
|
6233
|
+
|
|
6234
|
+
|
|
6235
|
+
async def test_openai_responses_history_with_combined_tool_call_id(allow_model_requests: None, openai_api_key: str):
|
|
6236
|
+
m = OpenAIResponsesModel('gpt-5', provider=OpenAIProvider(api_key=openai_api_key))
|
|
6237
|
+
|
|
6238
|
+
class CityLocation(BaseModel):
|
|
6239
|
+
city: str
|
|
6240
|
+
country: str
|
|
6241
|
+
|
|
6242
|
+
agent = Agent(m, output_type=ToolOutput(CityLocation))
|
|
6243
|
+
|
|
6244
|
+
messages = [
|
|
6245
|
+
ModelRequest(
|
|
6246
|
+
parts=[
|
|
6247
|
+
UserPromptPart(
|
|
6248
|
+
content='What is the largest city in the user country?',
|
|
6249
|
+
)
|
|
6250
|
+
]
|
|
6251
|
+
),
|
|
6252
|
+
ModelResponse(
|
|
6253
|
+
parts=[
|
|
6254
|
+
ToolCallPart(
|
|
6255
|
+
tool_name='get_user_country',
|
|
6256
|
+
args='{}',
|
|
6257
|
+
tool_call_id='call_ZWkVhdUjupo528U9dqgFeRkH|fc_68477f0bb8e4819cba6d781e174d77f8001fd29e2d5573f7',
|
|
6258
|
+
)
|
|
6259
|
+
],
|
|
6260
|
+
model_name='gpt-4o-2024-08-06',
|
|
6261
|
+
provider_name='openai',
|
|
6262
|
+
provider_response_id='resp_68477f0b40a8819cb8d55594bc2c232a001fd29e2d5573f7',
|
|
6263
|
+
finish_reason='stop',
|
|
6264
|
+
),
|
|
6265
|
+
ModelRequest(
|
|
6266
|
+
parts=[
|
|
6267
|
+
ToolReturnPart(
|
|
6268
|
+
tool_name='get_user_country',
|
|
6269
|
+
content='Mexico',
|
|
6270
|
+
tool_call_id='call_ZWkVhdUjupo528U9dqgFeRkH|fc_68477f0bb8e4819cba6d781e174d77f8001fd29e2d5573f7',
|
|
6271
|
+
)
|
|
6272
|
+
]
|
|
6273
|
+
),
|
|
6274
|
+
]
|
|
6275
|
+
|
|
6276
|
+
result = await agent.run('What is the largest city in the user country?', message_history=messages)
|
|
6277
|
+
assert result.output == snapshot(CityLocation(city='Mexico City', country='Mexico'))
|
|
6278
|
+
assert result.new_messages() == snapshot(
|
|
6279
|
+
[
|
|
6280
|
+
ModelRequest(
|
|
6281
|
+
parts=[
|
|
6282
|
+
UserPromptPart(
|
|
6283
|
+
content='What is the largest city in the user country?',
|
|
6284
|
+
timestamp=IsDatetime(),
|
|
6285
|
+
)
|
|
6286
|
+
]
|
|
6287
|
+
),
|
|
6288
|
+
ModelResponse(
|
|
6289
|
+
parts=[
|
|
6290
|
+
ThinkingPart(
|
|
6291
|
+
content='',
|
|
6292
|
+
id='rs_001fd29e2d5573f70068ece2e816fc819c82755f049c987ea4',
|
|
6293
|
+
signature='gAAAAABo7OLt_-yMcMz15n_JkwU0selGH2vqiwJDNU86YIjY_jQLXid4usIFjjCppiyOnJjtU_C6e7jUIKnfZRBt1DHVFMGpAVvTBZBVdJhXl0ypGjkAj3Wv_3ecAG9oU3DoUMKrbwEMqL0LaSfNSN1qgCTt-RL2sgeEDgFeiOpX40BWgS8tVMfR4_qBxJcp8KeYvw5niPgwcMF3UPIEjHlaVpglJH2SzZtTOdxeFDfYbnvdWTMvwYFIc0jKOREG_-hZE4AznhHdSLV2-I5nGlxuxqaI4GQCk-Fp8Cvcy15_NYYP62ii50VlR6HPp_gQZEetwgC5pThsiuuG7-n1hGOnsj8gZyjSKsMe2KpzlYzhT7ighmArDVEx8Utvp1FXikqGkEzt4RTqqPInp9kuvqQTSyd8JZ6BEetRl1EuZXT7zXrzLwFN7Vm_gqixmf6mLXZUw6vg6LqGkhSh5fo6C7akPTwwJXjVJ37Dzfejo6RiVKOT-_9sdYCHW2kZ9XfQAmRQfB97UpSZ8QrVfaKy_uRIHLexs8QrQvKuw-uHDQBAL3OEmSTzHzCQ-q7b0FHr514Z29l9etavHNVdpeleWGo6VEtLWGQyblIdIBtf946YnQvr6NYIR8uATn9Z91rr8FsFJTpJh_v5iGA2f8rfPRu27nmw-q8XnPVc_FYCZDk08r_YhdEJZn1INBi8wYSWmpib8VxNpkFO7FFRuK-F8rh3MTpYgIOqPQYbf3LCRvKukTwv1b3mjSKVpHQSm_s6s7djdD-rLuc22-3_MLd0ii4_oOT8w51TQIM61LtonGvxUqf4oKHSUFCVnrWWiT-0ttdpwpJ_iB5frnEeY2mWyU1u7sd38BI3dOzoM82IFaIm98g9fa99bmoA7Z7gI60tzyF8YbJmWF-PCwyKHJ7B1MbCBonO36NmeEM-SplrR54fGykxTmwvtbYGhd5f0cdYzD0zulRDj-AhOd96rrUB_fIgoQGTXey8L_w0whcnVTWdG6is-rx8373Sz8ZRoE5RiLWW1mfHzVXxwslphx4BedRVF0tL-1YO7sg5MXhHCf6hpw8dOht-21NMrb1F1DQadFE_fhySFl-TgOD5BlhAuupLMsqcCIa4lcXP_loyA4ERP6WSdz2Bybz7_1eOiflfVodRrNqvr_DnL0NEXD_JkYTeIn84ziarFV7U7ZnkMvRiA_p1fWdbHTsE_8lu1rsf8fcJ1e76_6ycPkOc4TrOZw8gVRb7gIbMMVrv72BT_sFhW7GkXrzCQpQaeybmRw-bjFhkMMjMDYGXkA_H0q2Zfyh3zCOoa40hl2cqRWp7n1XuafmtKG_F8e9hyWox0q7AhZr5HOOaHz8r3O3-dmNl1KP52bqA8S72rLDslAOQlDupmAQgAmkm5ApYeYcEBredN78jHQ1pviUEI2-3qr4ClXZFHPa54AJ_q4HQ-EcKXEcYQglG21mSUy_tFQF-m4X46Qu8yYWcBVW4E0CG3wbvYx0BCdbc5RhIDkJo1elxLK8XS64lpFkCWy62xLVeMuVuCj8q84-Kk7tZ7gtMtLV9PHQCdbl3s2pAzMfuNIBJog6-HPmwha2n9T0Md5qF7OqCtnYWOWUfIMmQVcdW-ECGsQy9uIUmpsOjdtH31hrX3MUEhIOUB5xErLwfp-_s22ciAY_ap3JlYAiTKGlMCxKxTzK7wWEG_nYhDXC1Afj2z-tgvYhtn9MyDf2v0aIpDM9BoTOLEO-ButzylJ06pJlrJhpdvklvwJxUiuhlwy0bHNilb4Zv4QwnUv3DCrIeKe1ne90vEXe6YlDwSMeWJcz1DZIQBvVcNlN8q2y8Rae3lMWzsvD0YXrcXp02ckYoLSOQZgNYviGYLsgRgPGiIkncjSDt7WWV6td3l-zTrP6MT_hKigmg5F5_F6tS1bKb0jlQBZd0NP-_L_TPqMGRjCYG8johd6VyMiagslDjxG39Dh2wyTI19ZW7h_AOuOpnfkt2armqiq6iGfevA3malqkNakb6mFAS04J9O0butWVAw4yiPCEcLuDNAzzi_qrqLee4gkjh0NplvfGCaE6qqYms61GJbJC4wge6vjyTakurbqWEV3YoR3y_dn-0pjQ7TOx9kkruDwg0nZIV5O6yYxaulmbuvo3fs5CZb9ptZPD0MzGZj7CZU2MDCa4a4gr0McOx2MricxSzIu6emuRUzZuC6C1JxPRC00M0TrZNMIe_WVa9fXDLV1ULEAIMwMXzNT9zV6yiYQCwhkp30Wqde3W0LlIRpSbDuJXcvT8OCbXkdPNIScccdT9LvUQQ--hU2P45kisOev3TYn7yv-pdxM3u1KFNwuFxedSArMBPg7GDz1BOxDQRzv0mfwbf_CcoFbuyj7Tf4zWO46HVdHeRNbvIE--bnaSYD-UFaKknp8ZsBQQhBU_2TEca3fKwmg81-g7Vdb28QUZEuPzgE4ekxZejkKpiKqlLC5nJYgvXrqk2H35D51mYdzPs0ST05Mc41x9MFm_YOLxSFyA0yGAKVINmD5wT6kvRflPkgoksd2ryIvo4KMw3oZQKodv5By0mSJ8iX2vhTGylxiM8wj-ICyNuOsaRFrcMSpX7tZbXcDyysApdmx217BSADoQiNZBLngF7ptxc2QGyo3CwuDjaljwmSgL9KeGthd1RJFd826M287IPpCjLM4WRquCL_E0pQryNqOMn-ZEOCAlBjE37290EhkjKbhiGBEnHUvSbhoH4nL47AmunP_Q5aqh5173VfyoyaybuS3fXjQ5WO0kyFjMdD-a7C6PVdwToCTP-TljoF2YnQKCiqUGs9gNHS9mYhQSXzY4uuGlTHLfKB4JKS5_MQHvwI9zCbTvVG854fPuo_2mzSh-y8TSzBWPokhYWI_q095Sh6tOqDIJNMGyjI2GDFRSyKpKhIFCLyU2JEo9B6l91jPlir0XI8ZOQfBd9J0I4JIqnyoj40_1bF1zUDGc014bdGfxazxwlGph_ysKAP39wV7X9DBFS3ZmeSIn-r3s-sci0HmwnJUb2r03m40rFuNTV1cJMAFP7ZY7PQQQ0TtlO_al0uedaOWylLauap_eoRqc6xGJ2rSz1e7cOevksUlAqzK5xknYKHlsW970xuDGHKOZnKPg8O9nb2PKrcjwEQF5RFPc3l8TtOUXPhhvTERZFGoEuGuSuSp1cJhzba06yPnL-wE3CstYUm3jvkaUme6kKqM4tWBCQDg-_2PYf24xXYlmkIklylskqId826Y3pVVUd7e0vQO0POPeVYU1qwtTp7Ln-MhYEWexxptdNkVQ-kWx63w6HXF6_kefSxaf0UcvL8tOV73u7w_udle9MC_TXgwJZpoW2tSi5HETjQ_i28FAP2iJmclWOm3gP08cMiXvgpTpjzh6meBdvKepnifl_ivPzRnyjz3mYCZH-UJ4LmOHIonv-8arnckhCwHoFIpaIX7eSZyY0JcbBETKImtUwrlTSlbD8l02KDtqw2FJURtEWI5dC1sTS8c2HcyjXyQDA9A25a0M1yIgZyaadODGQ1zoa9xXB',
|
|
6294
|
+
provider_name='openai',
|
|
6295
|
+
),
|
|
6296
|
+
ToolCallPart(
|
|
6297
|
+
tool_name='final_result',
|
|
6298
|
+
args='{"city":"Mexico City","country":"Mexico"}',
|
|
6299
|
+
tool_call_id='call_LIXPi261Xx3dGYzlDsOoyHGk',
|
|
6300
|
+
id='fc_001fd29e2d5573f70068ece2ecc140819c97ca83bd4647a717',
|
|
6301
|
+
),
|
|
6302
|
+
],
|
|
6303
|
+
usage=RequestUsage(input_tokens=103, output_tokens=409, details={'reasoning_tokens': 384}),
|
|
6304
|
+
model_name='gpt-5-2025-08-07',
|
|
6305
|
+
timestamp=IsDatetime(),
|
|
6306
|
+
provider_name='openai',
|
|
6307
|
+
provider_details={'finish_reason': 'completed'},
|
|
6308
|
+
provider_response_id='resp_001fd29e2d5573f70068ece2e6dfbc819c96557f0de72802be',
|
|
6309
|
+
finish_reason='stop',
|
|
6310
|
+
),
|
|
6311
|
+
ModelRequest(
|
|
6312
|
+
parts=[
|
|
6313
|
+
ToolReturnPart(
|
|
6314
|
+
tool_name='final_result',
|
|
6315
|
+
content='Final result processed.',
|
|
6316
|
+
tool_call_id='call_LIXPi261Xx3dGYzlDsOoyHGk',
|
|
6317
|
+
timestamp=IsDatetime(),
|
|
6318
|
+
)
|
|
6319
|
+
]
|
|
6320
|
+
),
|
|
6321
|
+
]
|
|
6322
|
+
)
|