pydantic-ai 1.0.3__tar.gz → 1.0.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pydantic-ai might be problematic. Click here for more details.

Files changed (447) hide show
  1. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/PKG-INFO +4 -4
  2. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_model_names/test_known_model_names.yaml +41 -7
  3. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response.yaml +21 -11
  4. pydantic_ai-1.0.4/tests/models/cassettes/test_openai_responses/test_openai_responses_thinking_with_tool_calls.yaml +354 -0
  5. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/test_anthropic.py +1 -1
  6. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/test_google.py +1 -3
  7. pydantic_ai-1.0.4/tests/models/test_model.py +220 -0
  8. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/test_openai_responses.py +118 -10
  9. pydantic_ai-1.0.4/tests/providers/cassettes/test_gateway/test_gateway_provider_with_anthropic.yaml +63 -0
  10. pydantic_ai-1.0.4/tests/providers/cassettes/test_gateway/test_gateway_provider_with_google_vertex.yaml +66 -0
  11. pydantic_ai-1.0.4/tests/providers/cassettes/test_gateway/test_gateway_provider_with_groq.yaml +71 -0
  12. pydantic_ai-1.0.4/tests/providers/cassettes/test_gateway/test_gateway_provider_with_openai.yaml +66 -0
  13. pydantic_ai-1.0.4/tests/providers/cassettes/test_gateway/test_gateway_provider_with_openai_responses.yaml +96 -0
  14. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/providers/test_azure.py +2 -2
  15. pydantic_ai-1.0.4/tests/providers/test_gateway.py +152 -0
  16. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/providers/test_groq.py +1 -1
  17. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/test_examples.py +1 -1
  18. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/test_live.py +2 -2
  19. pydantic_ai-1.0.3/tests/models/test_model.py +0 -144
  20. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/.gitignore +0 -0
  21. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/LICENSE +0 -0
  22. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/Makefile +0 -0
  23. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/README.md +0 -0
  24. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/pyproject.toml +0 -0
  25. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/__init__.py +0 -0
  26. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/assets/dummy.pdf +0 -0
  27. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/assets/kiwi.png +0 -0
  28. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/assets/marcelo.mp3 +0 -0
  29. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/assets/product_name.txt +0 -0
  30. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/assets/small_video.mp4 +0 -0
  31. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_dbos/test_complex_agent_run.yaml +0 -0
  32. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_dbos/test_complex_agent_run_in_workflow.yaml +0 -0
  33. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_dbos/test_complex_agent_run_stream_in_workflow.yaml +0 -0
  34. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_dbos/test_dbos_agent_iter.yaml +0 -0
  35. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_dbos/test_dbos_agent_iter_in_workflow.yaml +0 -0
  36. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_dbos/test_dbos_agent_override_deps_in_workflow.yaml +0 -0
  37. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_dbos/test_dbos_agent_override_tools_in_workflow.yaml +0 -0
  38. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_dbos/test_dbos_agent_run.yaml +0 -0
  39. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_dbos/test_dbos_agent_run_in_workflow_with_toolsets.yaml +0 -0
  40. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_dbos/test_dbos_agent_run_stream.yaml +0 -0
  41. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_dbos/test_dbos_agent_run_sync.yaml +0 -0
  42. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_dbos/test_dbos_agent_run_sync_in_workflow.yaml +0 -0
  43. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_dbos/test_dbos_agent_with_dataclass_deps_as_dict.yaml +0 -0
  44. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_dbos/test_dbos_agent_with_hitl_tool.yaml +0 -0
  45. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_dbos/test_dbos_agent_with_hitl_tool_sync.yaml +0 -0
  46. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_dbos/test_dbos_agent_with_model_retry.yaml +0 -0
  47. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_dbos/test_dbos_agent_with_non_dict_deps.yaml +0 -0
  48. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_dbos/test_dbos_agent_with_unserializable_deps_type.yaml +0 -0
  49. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_dbos/test_dbos_model_stream_direct.yaml +0 -0
  50. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_dbos/test_multiple_agents.yaml +0 -0
  51. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_dbos/test_simple_agent_run_in_workflow.yaml +0 -0
  52. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_mcp/test_agent_with_server_not_running.yaml +0 -0
  53. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_mcp/test_agent_with_stdio_server.yaml +0 -0
  54. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_mcp/test_tool_returning_audio_resource.yaml +0 -0
  55. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_mcp/test_tool_returning_audio_resource_link.yaml +0 -0
  56. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_mcp/test_tool_returning_dict.yaml +0 -0
  57. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_mcp/test_tool_returning_error.yaml +0 -0
  58. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_mcp/test_tool_returning_image.yaml +0 -0
  59. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_mcp/test_tool_returning_image_resource.yaml +0 -0
  60. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_mcp/test_tool_returning_image_resource_link.yaml +0 -0
  61. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_mcp/test_tool_returning_multiple_items.yaml +0 -0
  62. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_mcp/test_tool_returning_none.yaml +0 -0
  63. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_mcp/test_tool_returning_str.yaml +0 -0
  64. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_mcp/test_tool_returning_text_resource.yaml +0 -0
  65. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_mcp/test_tool_returning_text_resource_link.yaml +0 -0
  66. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_settings/test_stop_settings[anthropic].yaml +0 -0
  67. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_settings/test_stop_settings[bedrock].yaml +0 -0
  68. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_settings/test_stop_settings[cohere].yaml +0 -0
  69. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_settings/test_stop_settings[gemini].yaml +0 -0
  70. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_settings/test_stop_settings[google].yaml +0 -0
  71. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_settings/test_stop_settings[groq].yaml +0 -0
  72. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_settings/test_stop_settings[mistral].yaml +0 -0
  73. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_settings/test_stop_settings[openai].yaml +0 -0
  74. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_temporal/test_complex_agent_run.yaml +0 -0
  75. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_temporal/test_complex_agent_run_in_workflow.yaml +0 -0
  76. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_temporal/test_complex_agent_run_stream_in_workflow.yaml +0 -0
  77. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_temporal/test_logfire_plugin.yaml +0 -0
  78. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_temporal/test_multiple_agents.yaml +0 -0
  79. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_temporal/test_simple_agent_run_in_workflow.yaml +0 -0
  80. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_temporal/test_temporal_agent_iter.yaml +0 -0
  81. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_temporal/test_temporal_agent_override_deps_in_workflow.yaml +0 -0
  82. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_temporal/test_temporal_agent_run.yaml +0 -0
  83. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_temporal/test_temporal_agent_run_stream.yaml +0 -0
  84. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_temporal/test_temporal_agent_run_sync.yaml +0 -0
  85. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_temporal/test_temporal_agent_sync_tool_activity_disabled.yaml +0 -0
  86. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_temporal/test_temporal_agent_with_dataclass_deps_as_dict.yaml +0 -0
  87. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_temporal/test_temporal_agent_with_hitl_tool.yaml +0 -0
  88. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_temporal/test_temporal_agent_with_model_retry.yaml +0 -0
  89. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_temporal/test_temporal_agent_with_non_dict_deps.yaml +0 -0
  90. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/cassettes/test_temporal/test_temporal_agent_with_unserializable_deps_type.yaml +0 -0
  91. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/conftest.py +0 -0
  92. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/evals/__init__.py +0 -0
  93. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/evals/test_dataset.py +0 -0
  94. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/evals/test_evaluator_base.py +0 -0
  95. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/evals/test_evaluator_common.py +0 -0
  96. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/evals/test_evaluator_context.py +0 -0
  97. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/evals/test_evaluator_spec.py +0 -0
  98. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/evals/test_evaluators.py +0 -0
  99. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/evals/test_llm_as_a_judge.py +0 -0
  100. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/evals/test_otel.py +0 -0
  101. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/evals/test_render_numbers.py +0 -0
  102. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/evals/test_reporting.py +0 -0
  103. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/evals/test_reports.py +0 -0
  104. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/evals/test_utils.py +0 -0
  105. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/evals/utils.py +0 -0
  106. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/example_modules/README.md +0 -0
  107. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/example_modules/bank_database.py +0 -0
  108. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/example_modules/fake_database.py +0 -0
  109. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/example_modules/mcp_server.py +0 -0
  110. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/example_modules/weather_service.py +0 -0
  111. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/ext/__init__.py +0 -0
  112. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/ext/test_langchain.py +0 -0
  113. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/graph/__init__.py +0 -0
  114. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/graph/test_file_persistence.py +0 -0
  115. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/graph/test_graph.py +0 -0
  116. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/graph/test_mermaid.py +0 -0
  117. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/graph/test_persistence.py +0 -0
  118. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/graph/test_state.py +0 -0
  119. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/graph/test_utils.py +0 -0
  120. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/import_examples.py +0 -0
  121. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/json_body_serializer.py +0 -0
  122. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/mcp_server.py +0 -0
  123. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/__init__.py +0 -0
  124. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_anthropic/test_anthropic_code_execution_tool.yaml +0 -0
  125. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_anthropic/test_anthropic_model_empty_message_on_history.yaml +0 -0
  126. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_anthropic/test_anthropic_model_instructions.yaml +0 -0
  127. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part.yaml +0 -0
  128. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part_from_other_model.yaml +0 -0
  129. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part_redacted.yaml +0 -0
  130. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part_redacted_stream.yaml +0 -0
  131. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part_stream.yaml +0 -0
  132. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_anthropic/test_anthropic_prompted_output.yaml +0 -0
  133. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_anthropic/test_anthropic_prompted_output_multiple.yaml +0 -0
  134. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_anthropic/test_anthropic_server_tool_pass_history_to_another_provider.yaml +0 -0
  135. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_anthropic/test_anthropic_server_tool_receive_history_from_another_provider.yaml +0 -0
  136. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_anthropic/test_anthropic_text_output_function.yaml +0 -0
  137. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_anthropic/test_anthropic_tool_output.yaml +0 -0
  138. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_anthropic/test_anthropic_tool_with_thinking.yaml +0 -0
  139. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_anthropic/test_anthropic_web_search_tool.yaml +0 -0
  140. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_anthropic/test_anthropic_web_search_tool_stream.yaml +0 -0
  141. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_anthropic/test_document_binary_content_input.yaml +0 -0
  142. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_anthropic/test_document_url_input.yaml +0 -0
  143. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_anthropic/test_extra_headers.yaml +0 -0
  144. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_anthropic/test_image_as_binary_content_tool_response.yaml +0 -0
  145. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_anthropic/test_image_url_input.yaml +0 -0
  146. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_anthropic/test_image_url_input_invalid_mime_type.yaml +0 -0
  147. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_anthropic/test_multiple_parallel_tool_calls.yaml +0 -0
  148. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_anthropic/test_text_document_url_input.yaml +0 -0
  149. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_bedrock/test_bedrock_anthropic_tool_with_thinking.yaml +0 -0
  150. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_bedrock/test_bedrock_empty_system_prompt.yaml +0 -0
  151. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_bedrock/test_bedrock_model.yaml +0 -0
  152. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_anthropic_model_without_tools.yaml +0 -0
  153. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_guardrail_config.yaml +0 -0
  154. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_instructions.yaml +0 -0
  155. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_iter_stream.yaml +0 -0
  156. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_max_tokens.yaml +0 -0
  157. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_other_parameters.yaml +0 -0
  158. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_performance_config.yaml +0 -0
  159. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_retry.yaml +0 -0
  160. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_stream.yaml +0 -0
  161. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_structured_output.yaml +0 -0
  162. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_anthropic.yaml +0 -0
  163. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_deepseek.yaml +0 -0
  164. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_from_other_model.yaml +0 -0
  165. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_redacted.yaml +0 -0
  166. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_redacted_stream.yaml +0 -0
  167. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_stream.yaml +0 -0
  168. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_top_p.yaml +0 -0
  169. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_bedrock/test_bedrock_multiple_documents_in_history.yaml +0 -0
  170. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_bedrock/test_document_url_input.yaml +0 -0
  171. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_bedrock/test_image_as_binary_content_input.yaml +0 -0
  172. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_bedrock/test_image_url_input.yaml +0 -0
  173. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_bedrock/test_text_as_binary_content_input.yaml +0 -0
  174. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_bedrock/test_text_document_url_input.yaml +0 -0
  175. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_bedrock/test_video_as_binary_content_input.yaml +0 -0
  176. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_bedrock/test_video_url_input.yaml +0 -0
  177. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_cohere/test_cohere_model_instructions.yaml +0 -0
  178. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_cohere/test_cohere_model_thinking_part.yaml +0 -0
  179. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_cohere/test_request_simple_success_with_vcr.yaml +0 -0
  180. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_deepseek/test_deepseek_model_thinking_part.yaml +0 -0
  181. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_deepseek/test_deepseek_model_thinking_stream.yaml +0 -0
  182. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_download_item/test_download_item_application_octet_stream.yaml +0 -0
  183. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_download_item/test_download_item_audio_mpeg.yaml +0 -0
  184. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_download_item/test_download_item_no_content_type.yaml +0 -0
  185. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_gemini/test_document_url_input.yaml +0 -0
  186. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_false.yaml +0 -0
  187. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_true.yaml +0 -0
  188. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_gemini/test_gemini_drop_exclusive_maximum.yaml +0 -0
  189. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_gemini/test_gemini_exclusive_minimum_and_maximum.yaml +0 -0
  190. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_gemini/test_gemini_model_instructions.yaml +0 -0
  191. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_gemini/test_gemini_model_thinking_part.yaml +0 -0
  192. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_gemini/test_gemini_native_output.yaml +0 -0
  193. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_gemini/test_gemini_native_output_multiple.yaml +0 -0
  194. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_gemini/test_gemini_prompted_output.yaml +0 -0
  195. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_gemini/test_gemini_prompted_output_multiple.yaml +0 -0
  196. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_gemini/test_gemini_prompted_output_with_tools.yaml +0 -0
  197. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_gemini/test_gemini_text_output_function.yaml +0 -0
  198. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_gemini/test_gemini_tool_config_any_with_tool_without_args.yaml +0 -0
  199. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_gemini/test_gemini_tool_output.yaml +0 -0
  200. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_gemini/test_gemini_youtube_video_url_input.yaml +0 -0
  201. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_gemini/test_image_as_binary_content_input.yaml +0 -0
  202. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_gemini/test_image_as_binary_content_tool_response.yaml +0 -0
  203. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_gemini/test_image_url_input.yaml +0 -0
  204. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_gemini/test_labels_are_ignored_with_gla_provider.yaml +0 -0
  205. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_gemini/test_video_as_binary_content_input.yaml +0 -0
  206. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_gemini/test_video_url_input.yaml +0 -0
  207. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_gemini_vertex/test_labels.yaml +0 -0
  208. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_gemini_vertex/test_url_input[AudioUrl (gs)].yaml +0 -0
  209. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_gemini_vertex/test_url_input[AudioUrl].yaml +0 -0
  210. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_gemini_vertex/test_url_input[DocumentUrl (gs)].yaml +0 -0
  211. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_gemini_vertex/test_url_input[DocumentUrl].yaml +0 -0
  212. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_gemini_vertex/test_url_input[ImageUrl (gs)].yaml +0 -0
  213. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_gemini_vertex/test_url_input[ImageUrl].yaml +0 -0
  214. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl (YouTube)].yaml +0 -0
  215. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl (gs)].yaml +0 -0
  216. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl].yaml +0 -0
  217. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_gemini_vertex/test_url_input_force_download.yaml +0 -0
  218. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_builtin_tools_with_other_tools.yaml +0 -0
  219. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model.yaml +0 -0
  220. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_builtin_code_execution_stream.yaml +0 -0
  221. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_code_execution_tool.yaml +0 -0
  222. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_document_url_input.yaml +0 -0
  223. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_empty_assistant_response.yaml +0 -0
  224. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_empty_user_prompt.yaml +0 -0
  225. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_image_as_binary_content_input.yaml +0 -0
  226. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_image_url_input.yaml +0 -0
  227. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_instructions.yaml +0 -0
  228. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_iter_stream.yaml +0 -0
  229. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_max_tokens.yaml +0 -0
  230. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_multiple_documents_in_history.yaml +0 -0
  231. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_receive_web_search_history_from_another_provider.yaml +0 -0
  232. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_retry.yaml +0 -0
  233. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_safety_settings.yaml +0 -0
  234. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_server_tool_receive_history_from_another_provider.yaml +0 -0
  235. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_stream.yaml +0 -0
  236. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_structured_output.yaml +0 -0
  237. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_text_as_binary_content_input.yaml +0 -0
  238. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_text_document_url_input.yaml +0 -0
  239. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_thinking_config.yaml +0 -0
  240. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_thinking_part.yaml +0 -0
  241. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_thinking_part_from_other_model.yaml +0 -0
  242. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_thinking_part_iter.yaml +0 -0
  243. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_top_p.yaml +0 -0
  244. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_url_context_tool.yaml +0 -0
  245. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_usage_limit_exceeded.yaml +0 -0
  246. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_usage_limit_not_exceeded.yaml +0 -0
  247. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_vertex_labels.yaml +0 -0
  248. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_vertex_provider.yaml +0 -0
  249. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_video_as_binary_content_input.yaml +0 -0
  250. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_video_as_binary_content_input_with_vendor_metadata.yaml +0 -0
  251. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_video_url_input.yaml +0 -0
  252. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_web_search_tool.yaml +0 -0
  253. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_model_youtube_video_url_input_with_vendor_metadata.yaml +0 -0
  254. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_native_output.yaml +0 -0
  255. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_native_output_multiple.yaml +0 -0
  256. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_prompted_output.yaml +0 -0
  257. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_prompted_output_multiple.yaml +0 -0
  258. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_prompted_output_with_tools.yaml +0 -0
  259. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_text_output_function.yaml +0 -0
  260. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_timeout.yaml +0 -0
  261. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_tool_config_any_with_tool_without_args.yaml +0 -0
  262. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_tool_output.yaml +0 -0
  263. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_url_input[AudioUrl (gs)].yaml +0 -0
  264. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_url_input[AudioUrl].yaml +0 -0
  265. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_url_input[DocumentUrl (gs)].yaml +0 -0
  266. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_url_input[DocumentUrl].yaml +0 -0
  267. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_url_input[ImageUrl (gs)].yaml +0 -0
  268. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_url_input[ImageUrl].yaml +0 -0
  269. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl (YouTube)].yaml +0 -0
  270. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl (gs)].yaml +0 -0
  271. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl].yaml +0 -0
  272. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_url_input_force_download.yaml +0 -0
  273. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_google/test_google_vertexai_model_usage_limit_exceeded.yaml +0 -0
  274. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_groq/test_extra_headers.yaml +0 -0
  275. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_groq/test_groq_model_instructions.yaml +0 -0
  276. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_groq/test_groq_model_thinking_part.yaml +0 -0
  277. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_groq/test_groq_model_thinking_part_iter.yaml +0 -0
  278. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_groq/test_groq_model_web_search_tool.yaml +0 -0
  279. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_groq/test_groq_native_output.yaml +0 -0
  280. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_groq/test_groq_prompted_output.yaml +0 -0
  281. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_groq/test_image_as_binary_content_input.yaml +0 -0
  282. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_groq/test_image_as_binary_content_tool_response.yaml +0 -0
  283. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_groq/test_image_url_input.yaml +0 -0
  284. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_groq/test_tool_regular_error.yaml +0 -0
  285. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_groq/test_tool_use_failed_error.yaml +0 -0
  286. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_groq/test_tool_use_failed_error_streaming.yaml +0 -0
  287. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_huggingface/test_hf_model_instructions.yaml +0 -0
  288. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_huggingface/test_hf_model_thinking_part.yaml +0 -0
  289. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_huggingface/test_hf_model_thinking_part_iter.yaml +0 -0
  290. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_huggingface/test_image_as_binary_content_input.yaml +0 -0
  291. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_huggingface/test_image_url_input.yaml +0 -0
  292. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_huggingface/test_max_completion_tokens[Qwen-Qwen2.5-72B-Instruct].yaml +0 -0
  293. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_huggingface/test_max_completion_tokens[deepseek-ai-DeepSeek-R1-0528].yaml +0 -0
  294. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_huggingface/test_max_completion_tokens[meta-llama-Llama-3.3-70B-Instruct].yaml +0 -0
  295. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_huggingface/test_request_simple_success_with_vcr.yaml +0 -0
  296. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_huggingface/test_request_simple_usage.yaml +0 -0
  297. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_huggingface/test_simple_completion.yaml +0 -0
  298. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_huggingface/test_stream_completion.yaml +0 -0
  299. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_mistral/test_image_as_binary_content_tool_response.yaml +0 -0
  300. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_mistral/test_mistral_model_instructions.yaml +0 -0
  301. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_mistral/test_mistral_model_thinking_part.yaml +0 -0
  302. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_mistral/test_mistral_model_thinking_part_iter.yaml +0 -0
  303. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_audio_as_binary_content_input.yaml +0 -0
  304. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_compatible_api_with_tool_calls_without_id.yaml +0 -0
  305. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_document_as_binary_content_input.yaml +0 -0
  306. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_document_as_binary_content_input_with_tool.yaml +0 -0
  307. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_document_url_input.yaml +0 -0
  308. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_extra_headers.yaml +0 -0
  309. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_image_as_binary_content_input.yaml +0 -0
  310. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_image_as_binary_content_tool_response.yaml +0 -0
  311. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_image_url_tool_response.yaml +0 -0
  312. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_invalid_response.yaml +0 -0
  313. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4.5-preview].yaml +0 -0
  314. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4o-mini].yaml +0 -0
  315. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_max_completion_tokens[o3-mini].yaml +0 -0
  316. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_multiple_agent_tool_calls.yaml +0 -0
  317. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_openai_audio_url_input.yaml +0 -0
  318. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_openai_instructions.yaml +0 -0
  319. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_openai_instructions_with_tool_calls_keep_instructions.yaml +0 -0
  320. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_openai_model_cerebras_provider.yaml +0 -0
  321. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_openai_model_cerebras_provider_harmony.yaml +0 -0
  322. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_openai_model_cerebras_provider_qwen_3_coder.yaml +0 -0
  323. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_openai_model_settings_temperature_ignored_on_gpt_5.yaml +0 -0
  324. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_openai_model_thinking_part.yaml +0 -0
  325. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_openai_model_without_system_prompt.yaml +0 -0
  326. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_openai_native_output.yaml +0 -0
  327. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_openai_native_output_multiple.yaml +0 -0
  328. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[developer].yaml +0 -0
  329. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[system].yaml +0 -0
  330. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_openai_prompted_output.yaml +0 -0
  331. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_openai_prompted_output_multiple.yaml +0 -0
  332. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_openai_text_output_function.yaml +0 -0
  333. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_openai_tool_output.yaml +0 -0
  334. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_openai_web_search_tool.yaml +0 -0
  335. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_openai_web_search_tool_model_not_supported.yaml +0 -0
  336. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_openai_web_search_tool_with_user_location.yaml +0 -0
  337. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_reasoning_model_with_temperature.yaml +0 -0
  338. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_system_prompt_role_o1_mini.yaml +0 -0
  339. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_text_response.yaml +0 -0
  340. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_user_id.yaml +0 -0
  341. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai/test_valid_response.yaml +0 -0
  342. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_audio_as_binary_content_input.yaml +0 -0
  343. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_input.yaml +0 -0
  344. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_tool_response.yaml +0 -0
  345. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_native_output.yaml +0 -0
  346. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_native_output_multiple.yaml +0 -0
  347. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_code_execution_tool.yaml +0 -0
  348. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_code_execution_tool_stream.yaml +0 -0
  349. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_as_binary_content_input.yaml +0 -0
  350. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_url_input.yaml +0 -0
  351. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_url_input.yaml +0 -0
  352. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_builtin_tools.yaml +0 -0
  353. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_http_error.yaml +0 -0
  354. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_instructions.yaml +0 -0
  355. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_retry.yaml +0 -0
  356. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response_with_tool_call.yaml +0 -0
  357. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_thinking_part.yaml +0 -0
  358. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_web_search_tool.yaml +0 -0
  359. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_web_search_tool_stream.yaml +0 -0
  360. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_web_search_tool_with_invalid_region.yaml +0 -0
  361. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_web_search_tool_with_user_location.yaml +0 -0
  362. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_output_type.yaml +0 -0
  363. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_effort.yaml +0 -0
  364. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_generate_summary.yaml +0 -0
  365. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_stream.yaml +0 -0
  366. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_system_prompt.yaml +0 -0
  367. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_text_document_url_input.yaml +0 -0
  368. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_thinking_part_iter.yaml +0 -0
  369. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_verbosity.yaml +0 -0
  370. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_prompted_output.yaml +0 -0
  371. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_prompted_output_multiple.yaml +0 -0
  372. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_reasoning_model_with_temperature.yaml +0 -0
  373. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_text_output_function.yaml +0 -0
  374. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/cassettes/test_openai_responses/test_tool_output.yaml +0 -0
  375. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/mock_async_stream.py +0 -0
  376. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/mock_openai.py +0 -0
  377. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/test_bedrock.py +0 -0
  378. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/test_cohere.py +0 -0
  379. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/test_deepseek.py +0 -0
  380. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/test_download_item.py +0 -0
  381. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/test_fallback.py +0 -0
  382. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/test_gemini.py +0 -0
  383. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/test_gemini_vertex.py +0 -0
  384. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/test_groq.py +0 -0
  385. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/test_huggingface.py +0 -0
  386. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/test_instrumented.py +0 -0
  387. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/test_mcp_sampling.py +0 -0
  388. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/test_mistral.py +0 -0
  389. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/test_model_function.py +0 -0
  390. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/test_model_names.py +0 -0
  391. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/test_model_request_parameters.py +0 -0
  392. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/test_model_settings.py +0 -0
  393. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/test_model_test.py +0 -0
  394. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/models/test_openai.py +0 -0
  395. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/parts_from_messages.py +0 -0
  396. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/providers/__init__.py +0 -0
  397. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/providers/cassettes/test_azure/test_azure_provider_call.yaml +0 -0
  398. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/providers/cassettes/test_google_vertex/test_vertexai_provider.yaml +0 -0
  399. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/providers/cassettes/test_heroku/test_heroku_model_provider_claude_3_7_sonnet.yaml +0 -0
  400. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/providers/cassettes/test_openrouter/test_openrouter_with_google_model.yaml +0 -0
  401. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/providers/test_anthropic.py +0 -0
  402. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/providers/test_bedrock.py +0 -0
  403. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/providers/test_cerebras.py +0 -0
  404. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/providers/test_cohere.py +0 -0
  405. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/providers/test_deepseek.py +0 -0
  406. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/providers/test_fireworks.py +0 -0
  407. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/providers/test_github.py +0 -0
  408. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/providers/test_google_gla.py +0 -0
  409. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/providers/test_google_vertex.py +0 -0
  410. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/providers/test_grok.py +0 -0
  411. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/providers/test_heroku.py +0 -0
  412. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/providers/test_huggingface.py +0 -0
  413. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/providers/test_litellm.py +0 -0
  414. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/providers/test_mistral.py +0 -0
  415. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/providers/test_moonshotai.py +0 -0
  416. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/providers/test_ollama.py +0 -0
  417. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/providers/test_openai.py +0 -0
  418. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/providers/test_openrouter.py +0 -0
  419. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/providers/test_provider_names.py +0 -0
  420. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/providers/test_together.py +0 -0
  421. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/providers/test_vercel.py +0 -0
  422. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/test_a2a.py +0 -0
  423. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/test_ag_ui.py +0 -0
  424. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/test_agent.py +0 -0
  425. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/test_builtin_tools.py +0 -0
  426. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/test_cli.py +0 -0
  427. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/test_dbos.py +0 -0
  428. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/test_deps.py +0 -0
  429. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/test_direct.py +0 -0
  430. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/test_format_as_xml.py +0 -0
  431. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/test_history_processor.py +0 -0
  432. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/test_json_body_serializer.py +0 -0
  433. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/test_logfire.py +0 -0
  434. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/test_mcp.py +0 -0
  435. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/test_messages.py +0 -0
  436. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/test_parts_manager.py +0 -0
  437. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/test_settings.py +0 -0
  438. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/test_streaming.py +0 -0
  439. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/test_temporal.py +0 -0
  440. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/test_tenacity.py +0 -0
  441. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/test_thinking_part.py +0 -0
  442. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/test_tools.py +0 -0
  443. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/test_toolsets.py +0 -0
  444. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/test_usage_limits.py +0 -0
  445. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/test_utils.py +0 -0
  446. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/tests/typed_agent.py +0 -0
  447. {pydantic_ai-1.0.3 → pydantic_ai-1.0.4}/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
3
+ Version: 1.0.4
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
@@ -27,13 +27,13 @@ Classifier: Topic :: Internet
27
27
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
28
28
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
29
29
  Requires-Python: >=3.10
30
- Requires-Dist: pydantic-ai-slim[ag-ui,anthropic,bedrock,cli,cohere,evals,google,groq,huggingface,logfire,mcp,mistral,openai,retries,temporal,vertexai]==1.0.3
30
+ Requires-Dist: pydantic-ai-slim[ag-ui,anthropic,bedrock,cli,cohere,evals,google,groq,huggingface,logfire,mcp,mistral,openai,retries,temporal,vertexai]==1.0.4
31
31
  Provides-Extra: a2a
32
32
  Requires-Dist: fasta2a>=0.4.1; extra == 'a2a'
33
33
  Provides-Extra: dbos
34
- Requires-Dist: pydantic-ai-slim[dbos]==1.0.3; extra == 'dbos'
34
+ Requires-Dist: pydantic-ai-slim[dbos]==1.0.4; extra == 'dbos'
35
35
  Provides-Extra: examples
36
- Requires-Dist: pydantic-ai-examples==1.0.3; extra == 'examples'
36
+ Requires-Dist: pydantic-ai-examples==1.0.4; extra == 'examples'
37
37
  Description-Content-Type: text/markdown
38
38
 
39
39
  <div align="center">
@@ -99,7 +99,7 @@ interactions:
99
99
  alt-svc:
100
100
  - h3=":443"; ma=86400
101
101
  content-length:
102
- - '99'
102
+ - '762'
103
103
  content-type:
104
104
  - application/json
105
105
  referrer-policy:
@@ -107,11 +107,45 @@ interactions:
107
107
  strict-transport-security:
108
108
  - max-age=3600; includeSubDomains
109
109
  parsed_body:
110
- code: wrong_api_key
111
- message: Wrong API Key
112
- param: api_key
113
- type: invalid_request_error
110
+ data:
111
+ - created: 0
112
+ id: qwen-3-235b-a22b-thinking-2507
113
+ object: model
114
+ owned_by: Cerebras
115
+ - created: 0
116
+ id: llama-3.3-70b
117
+ object: model
118
+ owned_by: Cerebras
119
+ - created: 0
120
+ id: qwen-3-235b-a22b-instruct-2507
121
+ object: model
122
+ owned_by: Cerebras
123
+ - created: 0
124
+ id: llama-4-scout-17b-16e-instruct
125
+ object: model
126
+ owned_by: Cerebras
127
+ - created: 0
128
+ id: gpt-oss-120b
129
+ object: model
130
+ owned_by: Cerebras
131
+ - created: 0
132
+ id: qwen-3-coder-480b
133
+ object: model
134
+ owned_by: Cerebras
135
+ - created: 0
136
+ id: llama3.1-8b
137
+ object: model
138
+ owned_by: Cerebras
139
+ - created: 0
140
+ id: llama-4-maverick-17b-128e-instruct
141
+ object: model
142
+ owned_by: Cerebras
143
+ - created: 0
144
+ id: qwen-3-32b
145
+ object: model
146
+ owned_by: Cerebras
147
+ object: list
114
148
  status:
115
- code: 401
116
- message: Unauthorized
149
+ code: 200
150
+ message: OK
117
151
  version: 1
@@ -8,7 +8,7 @@ interactions:
8
8
  connection:
9
9
  - keep-alive
10
10
  content-length:
11
- - '105'
11
+ - '102'
12
12
  content-type:
13
13
  - application/json
14
14
  host:
@@ -18,8 +18,8 @@ interactions:
18
18
  input:
19
19
  - content: What is the capital of France?
20
20
  role: user
21
- instructions: ''
22
21
  model: gpt-4o
22
+ stream: false
23
23
  uri: https://api.openai.com/v1/responses
24
24
  response:
25
25
  headers:
@@ -28,13 +28,15 @@ interactions:
28
28
  connection:
29
29
  - keep-alive
30
30
  content-length:
31
- - '1183'
31
+ - '1385'
32
32
  content-type:
33
33
  - application/json
34
34
  openai-organization:
35
35
  - pydantic-28gund
36
36
  openai-processing-ms:
37
- - '323'
37
+ - '1304'
38
+ openai-project:
39
+ - proj_dKobscVY9YJxeEaDJen54e3d
38
40
  openai-version:
39
41
  - '2020-10-01'
40
42
  strict-transport-security:
@@ -42,47 +44,55 @@ interactions:
42
44
  transfer-encoding:
43
45
  - chunked
44
46
  parsed_body:
45
- created_at: 1743075630
47
+ background: false
48
+ created_at: 1757604033
46
49
  error: null
47
- id: resp_67e5392e0fa48191b4c2e1ec82b33e7a006bc99764149f64
50
+ id: resp_68c2e8c147ac819491bcd667055eadbc02e845978fbbb592
48
51
  incomplete_details: null
49
- instructions: ''
52
+ instructions: null
50
53
  max_output_tokens: null
54
+ max_tool_calls: null
51
55
  metadata: {}
52
56
  model: gpt-4o-2024-08-06
53
57
  object: response
54
58
  output:
55
59
  - content:
56
60
  - annotations: []
61
+ logprobs: []
57
62
  text: The capital of France is Paris.
58
63
  type: output_text
59
- id: msg_67e5392e466c8191ad4ef0744bded009006bc99764149f64
64
+ id: msg_68c2e8c26114819489dae5b59fceb7bf02e845978fbbb592
60
65
  role: assistant
61
66
  status: completed
62
67
  type: message
63
68
  parallel_tool_calls: true
64
69
  previous_response_id: null
70
+ prompt_cache_key: null
65
71
  reasoning:
66
72
  effort: null
67
- generate_summary: null
73
+ summary: null
74
+ safety_identifier: null
75
+ service_tier: default
68
76
  status: completed
69
77
  store: true
70
78
  temperature: 1.0
71
79
  text:
72
80
  format:
73
81
  type: text
82
+ verbosity: medium
74
83
  tool_choice: auto
75
84
  tools: []
85
+ top_logprobs: 0
76
86
  top_p: 1.0
77
87
  truncation: disabled
78
88
  usage:
79
- input_tokens: 32
89
+ input_tokens: 14
80
90
  input_tokens_details:
81
91
  cached_tokens: 0
82
92
  output_tokens: 8
83
93
  output_tokens_details:
84
94
  reasoning_tokens: 0
85
- total_tokens: 40
95
+ total_tokens: 22
86
96
  user: null
87
97
  status:
88
98
  code: 200
@@ -0,0 +1,354 @@
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
+ - '825'
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: Compose a 12-line poem where the first letters of the odd-numbered lines form the name "SAMIRA" and the first
22
+ letters of the even-numbered lines spell out "DAWOOD." Additionally, the first letter of each word in every line
23
+ should create the capital of a country
24
+ role: user
25
+ instructions: You are a helpful assistant that uses planning. You MUST use the update_plan tool and continually update
26
+ it as you make progress against the user's prompt
27
+ model: gpt-5
28
+ reasoning:
29
+ effort: low
30
+ summary: detailed
31
+ stream: false
32
+ tool_choice: auto
33
+ tools:
34
+ - description: null
35
+ name: update_plan
36
+ parameters:
37
+ additionalProperties: false
38
+ properties:
39
+ plan:
40
+ type: string
41
+ required:
42
+ - plan
43
+ type: object
44
+ strict: true
45
+ type: function
46
+ uri: https://api.openai.com/v1/responses
47
+ response:
48
+ headers:
49
+ alt-svc:
50
+ - h3=":443"; ma=86400
51
+ connection:
52
+ - keep-alive
53
+ content-length:
54
+ - '15410'
55
+ content-type:
56
+ - application/json
57
+ openai-organization:
58
+ - pydantic-28gund
59
+ openai-processing-ms:
60
+ - '59260'
61
+ openai-project:
62
+ - proj_dKobscVY9YJxeEaDJen54e3d
63
+ openai-version:
64
+ - '2020-10-01'
65
+ strict-transport-security:
66
+ - max-age=31536000; includeSubDomains; preload
67
+ transfer-encoding:
68
+ - chunked
69
+ parsed_body:
70
+ background: false
71
+ created_at: 1757610328
72
+ error: null
73
+ id: resp_68c30157af5c819393a64d8d810d562700b441a18c4893c1
74
+ incomplete_details: null
75
+ instructions: You are a helpful assistant that uses planning. You MUST use the update_plan tool and continually update
76
+ it as you make progress against the user's prompt
77
+ max_output_tokens: null
78
+ max_tool_calls: null
79
+ metadata: {}
80
+ model: gpt-5-2025-08-07
81
+ object: response
82
+ output:
83
+ - encrypted_content: gAAAAABowwGSxRRbJh4Dp3HLB-6xsw2t1Jfi-_RzFOWR1LtCb5GDxs4kENgmJ1kUBpCSPgPVraYxGbU2jkka2kfXB029QxTC5kmrL1jsnt-u8zcYKlDyvfvj9gAiIz70dNhcoRKhLRnq3L-FJt0Bn2A0Eak4dNrRBcAqhluAgF_OVSsRzcTwOcvP4wI8NnlevymytiKOJmMjDI4nVvxIJSmkovr0m-oljsnRcTXRoUq3uoa-0P07RqxBQwgnd4N8e_4l1uQgFRgHoDx0H_64l__m2k1RkENZoQDtsvhJWyGs7xt_UgbJQlAkK14G0tZxBEArRllnAe5pnHBBXsSX07SqaNJOQKo4aM-p4Yoxf8pWZVdqQBleHeP2Z2X_G8TYihVFtmQa7dcGwd5rokYeZdEgaJ6_SkIx7X1JUH2OQn9zBGI-itJn6NJDqn99SyRb111KBu5IjdUMjuH2TVbRdfmaB-RDE5tjITFvjensAAQcbe7QPRDdis1U6APiayH45HXgWrGfwopjwOHfgjWRgkVNHRigr9ZRW8V-XnQIBg22ON4fh6j5DDalEsF7cUV8t8sk2xg2JZwjAJ9bPgWTAzQzE-7fVzsPHcFKX7WBz7-6hqbY2Zw6DPTgS3TJjqK4vzF3BJKzwwg-wd3w8hyTknXQVjKVDUWrw1rbZ2DC5QSjS2wa1u7U9xh_UXJSwFvo72gl5Z6pEMEoLWopWCYepAuFewRqsOXnUsUQUGQgYYDZhHihxN0Ju6Z7P3EP53q7wUxBxLuuEZM5eq9cY6NdTBJpXxwXTrzJVJUZW_i4yW250UKjrVx2-XjKQAwCAmbSx9xqwlPmDMVebsEuRtJqkKKFdEbwbpZAH-MHm93WGqi8xSFV7wC0vM9iSEoH2WGFPHgwimEHsDGAUhAxqZsHM8sL_UM4dLhPjSDkcpyAy44UzrscuFKGlL5Npolx74KzHm5kIxOeECTklmS1BOE8bnyvpoq003CE97xNP1ku-ihYUSRA6Le4ejKi_-sqOPY1FGuoUMx4LQzrFERtPjFQzwArbIGzELiMbjCUykThW9p1-c-F040AZfclH3ikt6ZuBtFjcpfJg74dkGtoVkkqcsyJ46H9FLEP03ZqdTAAeMbKsfBLQqdEcBplUiKqQz0TNd52GPs_7b9-kKNM0YQQkPli-L1Korbj26ffmfGuFE_quXLW6JwVSSBfyfivfAgvvq6UuKZPDuOqgtT3EHbl-ezhq2hgxTCmgUMoKbBgJJE4pDjM7FSt6_21TahNpB8QBKJ5-yzpc5O75EQjvsb0RVAzsFJjyxU1XyQwq-3Rhs2tgm5HF0WTrH3NUbn9HsZjoUgladb9bqX2SNT1mFnj5odHCiZRo9KzQaBfruRvcelXeNWGqlNz9Mdrw_9d6hNrv61HzKdS7R9QRdVZeik4TXc_UehTyzH1YpxiiLYmLW1kiGIZlgVtukoraXQ4gPvOZ9INObyZt1UF8HOBgy06BfJivwdJ48R-w_dwIIiuxhAvftmuttDL1KUXzfp41ZK3gmrFtioxjCFXSLTsnNW7BqOsphsFfK0H_a6c52Xv_ph1cSXQqs-uLGvweSD-BDovacyi3hZjHMMdwU4tRnWfSrIjc1pXCb8s7I7w87AxsBpe1fORlMevAaod9bUEDSe9RUaZCIpxS2ahhfHBVpLj41PKVGoq5fvuSotROIQ06-iSpBVnzMrOQOVEIaLKZkFtWtpnaYuIUP14aJFszmh31QYMj_LF1Xd8v6MOCqCiFH6Wxcq5pII2cQbhATOK8Zg8SjucmJ-TjWzrPG5rV9K0-nx42zLTjpIwX8mmT5wX-YUYGz24Dr3Okm2pp3iMBiLjgJzvmELLfXQEpVx4IFzyhFdQ2t_fOtu9kibR_CoU-krZ3yVq_WOYuJMmZz_CXaoPCPwdwPql_xeLbicbDk67SPfGapMeF-TsrqqqLld3ubUF62EtOPJNcNNYNlWmummoIqhasaxkXsPHLM19YJAhlGL9sWIlxJp68x3jXTEqzZwUDa2IH19G9Sv8rXFhLWKdF7KIEmXm-fhshWqbXlja-YDVteXtWmgIl3K3V-YCzucBfCgGIZA6rOryokw-O3qASHdu1Jjk7ne0Un_Did4u8ISBaMDJxCSpbANo_ufjaGuo1U0N3xbOsYBVGSKAGP_mjLISErGh59SDa4FRC5qbFXQiiARPKGyHycOLOJvnFVh82qD2zKB-zxBr-AtQFzXTE887W4ZoC0hGUHPEVfq_EduLi3jU4FRJjbNQ2D28Rd5DaU2Pp9v_fbfS48c0xj2AUJTkI3a6GvW83DzdEQXCCf3zIQgMnToMzab50KU9t4cD7smF4zljz6aPAMg4hxi5R2ApWrvJYPwOZrjb7BEsgKshk8Z4JF_ancu0Fu6XCFmXUmsNiOp_mGQmACPzu3GbNnFGjCz7aPwm3GH0Si88T3hfdD4GUYtWXpddkCon4Tgcp6RqKqzWCKNflLAIa1tULyPs4GeEHuj2eC8P4FDbTVyLp_ZP3nj0EVpvz4IZkNfqywq_IfVEro1f_45uIrOTwRa81orRCUTj1CkPABMnsLRplhQg4fyaQZRSDbrCJQzKnHpOcoGikRXUvyDqkF_9bj4DQyjbm8mt-eSQfOv0ahD90C2iheqSsgS3-vYJZrWHhnGo9gfDE7-mgV_rxt1tcHoVinFil2N0SGPf_BHXhQ9mtr2GFy-J5lTXdz_8431caBCRz1TtcRCZQ8Y3t95shVbtRl26QTLIElF65QcnFljLj5n2JxVcm_yrzqBLxPoQd3pm-sYsKRQo3Lb74Tv158FSTI2KZXFkceNbbmZlDjOxvtQbKCW7XPpuL53HIoRkK9YWa9lAUxP3WyhSPC33hUfvoo8A0WXDYeU87HEB5A_Xtd71ipUfZT_a2TkcCAksXbhn0wfUqCgJKIwzCTo3k1Sib6ijn4_fO1Fl9C6I04SDFoIvBS1fADklWoOWywLKkkbHeGDDnpF_ziibiYxLtEqlXQWLrrb369trrB0poYTDqksbUAOisSu2W6dey3CW_lTtX0SukuRNcoKQBXcvP6ur4d-WvssFaR91dPp_KBrHtvtWwpg2HK_qdD2b6dn04uRqSZ-cRfWebPl9v7lX7ZxYxttztoRSdGeBmJ36DddXZEqKlMKqvSDRNhJlzqtHZlvvm6R0cP8BKLk1JE3yAkXXOCNxa-D0fUEF0GW0Kcig35v7eVtvd5Tzf0r7uAJAXkNVXsn3DtOIdozz4eifU8CqMOkeGNOdv46Su8KdoaxyG6n2L1SZnl5q4pcce1gLhJ6k_pqrEgrEILGwK1XcA7cc2eBxcA-b1ROH1_SaqBuuAn_Nr-Bk_8lGWrl_dVVUYfTottPLtglwSyrR6Dd3yRf1GExHJ5xspYQVzP9EdMf1LebduukhvI6OpdjEH36MVUEcyW7QyJ9IdBKAdkEidVadqAF3Y2WUYl742NyeiRX9WIluriTj-qGbLveIjljUOWAanyq6C9QU8BRe_AGRnjwhxdHIyRjGlquJ2uFEWnOHWFk3tOth-oOoXfoNAjZt6ehUlERmz28Vjywf2C4GJ2J8oObKHPYifJJxG4zzDsviedU30x_9pGucpwgLPnJezQO6sVMGrBHET-1P85Hpgjrw6vLg4PtKo-YimzSK0252s3W9CESL12G-Q69AxgFX-nbpASbSMu-ZcaQonIj7bYQzkpbeY6eiHaKn2Jnnxv9NhG4_F1XGM082p2GsgRbQ3Spnr98TPkH2kJN9V-L3v2q-gcBsjR0JNEd_B4RBOR8jva4YCwSTT3p4a2h8ekbGlXx6HA_vy023Ms6tXMGF9WZVhb_5jPx1a6D9Shzze-q9PqHj2rM84Xph3pKgXT7CNr7pHrhxF_KBcm_T3RfJgkD9-ylqVfzdfhcu-n51Hn_VgnVHjPlgZswNe91oYIplTIShSGC_7-P6YuCsi1dgLI811ZHVJ_Kp75RCIwojLZPAItWLWAxsqsVdmeae_-jQGp6NDSvKSCfN-XKv8lChX8vELfYxo7zhssZ0Q0wg1ZJi6u_4rIx_dDLKUylLp5-tyuO7OZVgJ1kDugJl_gYbcOFLXqWoh0kyCIkPaov9LA3j0ZUgfgrV0-B1dNob2yvHMhYIRovKjioydx3bLl6St7RbJxJTA0eC_3GMKQM0wt75vOVrKD64c6CP9chnR5W6nD2FrTQnmeOCF4g5SrwV5Y3blBB54d9lwXDUlcjAq3ScsyEdPzlsXXj3IFc_O22KguBrZ5SZrc5D35vp0bZ0LhkhhU3eIie5jVPtyDTsTK2fQyQgeBdcoICcUdrMIpiaq9n9DL-RD5vgzG1PsaZ8g58psSp5eqFF4ELXuMw7uw_airSzTgtpKV_i0I7J_lUf0hejuEUO5eaGig-SvGS75MUxIn21su1IgVC4PVOv9a5ZseBjmcm0kbR2fumBygCMV1bfv1M1Lq42O6IWaXSa92xVvupOpRx4kwBseoYUH_lJ1dhxBT2MFokijKYxBF5bAYDSs0zw6VA3rrG86D41DMewF0H0-cnjFNyzWQe_2m-ebqezigFCl_Ov5ikpRI8wAJJ75tHSFXixJXCZWfYQoUkgNrgncP0VOVBBPWIUcBz64BOJ4SyieA_vK1lTBiVtINNftk02SR4kH0fTOvdYYnB8nd7yBRVF2oMDCHpmcTnh91aGzBxWkjdC-3vTCmRE-oirWPdKd1hpxf5cKn88VrvApNpUAzuaL00chB1XOipzOW8qWRifjqak0P0-CztV5kbSrFehKA3U1lbtClgOA6FtzNxulREJjPgVEPPnFLCchmELktCk-M5S5ED6IAv_NygkL5PaIz4ap9JE2Sen0OJ9q3IG6nG4GZw8XJT-fIvVLaFexUZv2F46x04GfzI43CParyRS6kIrjHynU53r9ODslOqnop1B51uxk33Az7TB89zfTPsF4doPiqGkB1nJhWplfm2WLuNZOEGczgr65dF-r_nWBnfR7y3DsPaqqeLri7ysG89XTvMZTCRX9-54NT2k7HwwFO-GFD6gZBizkt0gsmTnFIxp7IGOx1MI86szyLC07Pe2mGICY83SPealOF_gO_qga4z2SAU4YjQeXr6s7ouvDgrCh-DP8SB0K-6qHKT0qUiiWfCX6d-S-faXIsMtgYAkCLZm8hP2Z3CAF9Jxzz9qhQHCVnkKK-2DaTzL26_UIuryYhnUhLP1oYV7ICzF_PD6TvzQVxnIf1fCUJhlQ4GwnHVQQsUUDoNg2e2t3jaB6vP5My9q6XZVZPraBJJf4Fp0C3rKG6YgXFDluKdpAgQqZT7Q97dOi5T_YHkwrR9NFC2SH5p_ZjbQY3REzIhPFpIco6v2h3-B8U6vtEMNic7AjljIKidpbQUZ9fCq3oQFU_2Q5UFUEB-GoekC4jZX4zxYNYg2mEDAHzksGPdXF0bf4s5nr_vRlXVQPijC02uav0QuNaNcBdHTN7uEVyfLTfxXbdHv1e7Hl6-HeBLMtacODpJTnp7mZKK0XxUTxMLFC5kihM_9hSpQHJ0WS9oH2E7SW7bscq8_fzbDQmEPxDbfsAjx83h6fJpzviHSzIDysdUONv50phqKN6qqAJ_dItPc2yhtxsiigmNe-8Dnejf8ExPw-z5bPjpZQB-jgAZ9-66YGH6fkwzpzM8IK5Xt9DwqKcWhGUn3Vr6ZBiriYHKoQNzvToUoYKlzNI4FjPJL66vDRntxrLPbAwmX5092L_QahpLobCcRTgJXdm6Oz4w6CVeF3VdZf1B_Mltya9QsAc4QYs_p2Q4YRbdG2QATAnxGneEdB9KK121muAxzLXeGl5o-e9WesbHQ0GnbbPGfalorI-_eNVKzRgTjE1FJ7KDVn9d0jiPZfvB8xlR5WSdlqV_PY-pRnvv7dDkHHBUTPkYA0e_l0KlJ1krQVYXQXDkYaFxnqSs5ei9diTPRfiCLCWntxngssAimmW9eTJUZbxuCmqkzBiItjC6zF39ZUF3RibxyHCHf9fZPTmaWhiPNgifgJHxxb_ZZgOo3VnKppLmIPQjnGtofqyS6kht5RDx0joPXjGhz1gJN_Xju1TeZd0lx6PgXmr2jWnNqnOOuM1BfnH1S5M5uHNNf9VnC8_vNR1RsvrBUxfEgkGZXHlDL8JO-HvAxY1Y5pDOubaIdbxSmbB2w8Lg1cuJ7NQdbBBn271A-qMKFnwYexUH1iz4GiHYDSHhgoEa6L4apwrWYw8Kwt2fLf3BaRojbHx1ocXpFXADm2QSiOczzQ-zoyrRVDqZQZ3u1LBu3m-aVGVPHkOW3_xzqyoh7K_pAMlsgZCV_5zIBvPT_alYN-jbRvAigHPXiPYZTZSjcgPKGEx4TSpLUZ1wJnhvdBBcqX5ROv_WqxQaQUaMz2vzLwlKEJOW7HjxKOCD6Qpv1W_11knF77VyZL-NZ6EsjQm9m49nxpr1FjnvajyNBeFg6V6mWyO1__x5UV4X3wzTf6oQuO06h7HUCwTgZ6N2TdZYcTaG3dTtiwuke5B5UgbtEM8rDVri_LrFywsknYTzDNLZCpmFRGxoNV5bdHW3L4cClemYcuGvvx2QuMFiMUi5f2QCsIZifF_WsWECH7L1JbF-18lGOHFM0CX5-LhsMg-uPpJiJ8pPQuPfFilcAUhxiQodwKUp1R5vwAYEpJHPEVDQgNAvkVSk4mI9v14yPG6qhrD1vt3PlZsPaBPoEs8o2MDefF9Bg5lJqKz2PGTD-2SMP64J_WJ7xM7z1xrpjyhmiLTrK_ocwC62OwfIjfDAS-QqrQkJZANMw5LJxlPijKglE6TBRnQJlj9uDYk618PzxNkh56aCHBFTK9L8BdwbjTlJZGBuRJY7uE8mKoCaWFcAY7ekSi0Bvn_g_lW4VQtm0HIK_n9oohJnDKPpE-AMI8p5xDmARCBCzdlVuFwPi7To8VIKVT7fociARozF_rv6bJW9S5Ugq_Wp2C5U73CFZ4OiZgOIeCQq9ooWH4Biegphm3XHYyKOhdC7jRqXJrffT-lnJvlcxt96c8XcNIMYpPHXnpQ6C2slMvWn50FlW8tgpL7yQ0nlmTxScaVzyS0eScTFJz59omc2eKK9wofP49wtoSRiStqDeK-g4qXa1JQQjuOkUI0IwXkjyoT2FLd_ZvRR4giv5rKiub8voXhNgJYLn074u3DA80iptE9xVbV6_2klP9wr7gQIQgrVJ6s9_oKKu8UmD9TT-LSa0xHPXesdiv40gAKu8T6A4444fVkg6H6osVlA9osiRxrBrTjTkSzSJl6WBPWAIYIn5yjbaLiaRrsRQ3MalTPrcQDET1JUqaMUz8fLCyZwX5fkiGyFoYmDPbTpMg8uzEr6dGniILg9OO1snKiOeU_9XB5xZE0RnVS5fKkpkgNWESI8bIgZaf-sFL6p7ZO30sw_aZhkdRttx0jGsSHuPOaNqu-lCwrVvU1j_K3yrUkIriTRF5napCw4kYac0Dc-BezjQA4x0O7P2ggtZPG4vS-YObmFPOx8mTEot5-c0v3XQWAwThbIB7R1-Jn5b0NB2D4bCsY3m7CjqbsrMuHNkTqxeR5cB4-DzJZqBersjAexxZ8d_AOH4MxEwQ1OM9_IFixQ3BSxzq4_j4KJiM2lXK_L9IRtHZhkTckrJkiQP2FjJAuykOmPz6qOKdT4v1bYkI3Uqyzbhea5GjFTCB79iHJL2h2t2GP9Hu6j2LcyCAO3IGBaq0g7e_-41cS9tUAZVkqAhDph6sQIaGL5QrFuHAKDO0g1qq_0_Y1J9ROfii7DKfMe6r4uZuh3Vo4SnAC9Mte1OOIArobkr6zmP0JwspfQmcPNrpQxZ0Aw6Jm9qv6rEtBhp0tXDde9glsbXubBF_PZR7GSpxTKJBxwMtVvXK1PhksAe3wkgzais_Gr4lbNi2k-kQOsuRJka84qr2TbqrWIR9WpdMB-eTd5Ohb4s5CUj7k0GP5PksHFUGl4uVlhIk_fnxmYNxRFGW-aEOuByjKA__qxBOu76lJFe8ObwEf3t-ZtYFBOp_St4kX1NQeCVrV8CbT_kuaQ6pbuG86VyfyoZJzMsCtzw5gxA3nFqq7GtDw70Sl-il9d0xJt60sU2E9b_r_WHvBEXdvZPbhzJxQcJbUDZ0keEiy5NRrCfVFxr1s6a3EhPA4JdR6APe-rFt4n7wCl6A3rKO6S7dbXZiU7CI777A8vEtJwDdtDuLn1-2gLaUEWBCbTukZvuAWigGvZMCN-B5apHelQ4EqdH91vjDapXhGFuC-5vOCvPzo2S9dc0wz8fR1scb7naE_YJmDeqonL-NsaAun2drdY4Qo52tti7dN7Bf1N_07vPk1LU4WpQZiW3xjKDbXYt9PhD7vxjWapdmiqfpuvRHxnWlM4HNzapkkW_HbWtWYBawRLG10DoYs3eXAQCmZ8CgoZIytpFDMwS6hJ_-NDr8AfLqszAeiY17MVa8D_Ntn-NFMuE7l3L5YWF60temAbI2FZm2ub-MyQB1PSaCsOI_uNjlHlLVatmfHB9MoufDQV_hA4k94pxu97cGHl34rJYdG7J2zXa7_YBzN0nOpelhP3vtiSfnpImWmhzQR5LA31bTuQ6RtRGEzEbEYmaYlTbNCX0f-dmLzqB4CiNCi6AFFioOsyYMsEae7oigBc1ytFGmPTa_oK2eDBMa96b-zl_vFsXhF-x0e4FhHj4V7DfwwSgLKACvxg4bfdqnhnLK_dqWo4ye-Zje-bjJodzpGPgnaPLFJx-GsYWqD78jd5HuR4gDRSTvPhZV3hbTpSMvGWKT56mjfGy38wo09cZC_id1PmNrdrJHbxH2qhHps6AZGlIDbyaxItwoWr9a7n6y258mO6TgiTd38HdS9pJAeQz4stOWvBFu3Cwz9dUrDRleTtsv4OarItOaqpeekqflr9BdZT0W3Sy685WU1M5bAJXZ7ILY1TFXX8spnU4DDAQ2kGSaBSoeP_Tej3lKdiAP3rRYZghnKVQpm-kYxeKyKPS4NCFtoo3nwnOy2iLSst2LZNOzzfuj786njj8_1mvA2b18ndYOupbleU-7UCCLz1YE9Mh1aSfxYqsouudw7HT3cadzGXZETRvWXytFOAa15eC6aBVGWlQbj5jZS0155b31lYYayHsve-rmEe2TWyf9qcSqStjGXY5Ui_x80Gnv--M9qb8-6gAQ_iNH4gnevT3sna16565NFg8TkskCE2OG2pRePtnodpH6-ha53GUt70mCjGKqz1gyNqGbkqwJCax6FD8l--ncuyHtolzVJ0EVhxVSJtpsI-ZOPNJjip8D3JGNRNE-TLpfWs1-VckZ6_egCzdAKIx3e8hnH-C_ryNfWyw6Ix_kQuqLQc25rmhFhURLCohWiNChikWW4NzIhFQWW-TmHsPJP0m-KWcTYZ5tNaWnPPvD1QC4lMyKy2hQT5SUqb95X8FujupZ0MGB1K7CGCo83pSIHTHTkcfbpGao9lNypO70mIDzmWnMNP9H7VzeMdIlQjWJ07dsFxLTBjCGMC0EeOsUzlC9orFkeSKExtGYjf_mvBMzxsXhBVdFOwc1a-GHPePe8BEAiqjogtNqQyGOn6Vjq_bZi1iJj5hXWqaMHU4Honc956m5yskToRfLvV-KfyoK91PZXPRlrXWesxwj_heQQIpingaZDcu-t7_4dNwaNE6iOl7n_f5ZJSTcNMcMtPEO4KSsfNr4Tw_EsBQ3WxdJHhvbqghvQdoS9nauhGjSvivkPYLFpmePab0SidDonE0ZDwZgcafyLKd5gEdemoGg2W0rmxiX0PO9rvScKPTAE7P67nuMVX8_7EsEgX8imlhDbgbnBeg8QWoWX72eboq9pFyGaVHOP5K7MALdeHUwlnr7Je8MZenBXN_EiA9MzVKet3sF2rCTg5Btscr4bgyz5ttFAlbR6ABqFn6B39vHEgxKwGbeqkztSpY19jqx_Bi4ZrRzz1MjfvItU8BOtwGUluMVL9hAwNEQx6_HZDu0OzZIfDBIUnCS_8k
84
+ id: rs_68c301598b5c81938a8f95605519c25a00b441a18c4893c1
85
+ summary:
86
+ - text: |-
87
+ **Creating a poem with acrostics**
88
+
89
+ I’m working on producing a 12-line poem where the odd lines spell "SAMIRA" and the even lines spell "DAWOOD." Wait, I realize that I need to focus on the first letters of each line too—those should correspond to the letters of each acrostic. So every line must not only express something but also have the initials of each word form the name of a capital city. I’ll need to think carefully about my word choices!
90
+ type: summary_text
91
+ - text: |-
92
+ **Selecting capitals for the poem**
93
+
94
+ I'm thinking about using straightforward capital city names to help with the poem. For instance, I could start with "Seoul" for line one, which would have words starting with S, E, O, U, and L. For line two, I’ll go with "Doha," which is simple and gives me the letters D, O, H, A. Line three can start with A, and I think I'll pick "Athens" for that, giving me a nice five-letter word to work with. This should fit well together!
95
+ type: summary_text
96
+ - text: |-
97
+ **Choosing capitals for the poem lines**
98
+
99
+ For line four, I need a word starting with A to match the second letter of "DAWOOD." I could use "Apia," "Asmara," or even "Athens" again, but I’ll choose "Apia" for variety. Line five should start with M, so I’m considering options like "Moscow" or "Madrid," and I think I will go with "Moscow." Line six requires W, and I’ll pick "Warsaw." For line seven, I’m looking at "Islamabad," which works perfectly. Finally, line eight can start with O, and I’m leaning toward "Ottawa" since it has six letters and fits nicely!
100
+ type: summary_text
101
+ - text: |-
102
+ **Finalizing the poem structure**
103
+
104
+ For line nine, I’ll start with R and choose "Rabat," which gives me a solid five letters. Line ten needs to start with O, so using "Oslo" again works, even if it repeats. Line eleven can begin with A, and "Abuja" fits perfectly. For line twelve, I’m selecting "Dodoma." Now, I need to ensure that each line’s words not only have the correct initials but also create a poetic flow. For the first line, I came up with "Silken embers orbit under lanterns," which captures the essence beautifully!
105
+ type: summary_text
106
+ - text: |-
107
+ **Crafting the poem and updating the plan**
108
+
109
+ I’ve crafted nice lines for the poem! Starting with "Silken embers orbit under lanterns" for Seoul works well. Then I have "Desert omens hover above" for Doha, and "Ancient thoughts hum, echoing night songs" for Athens. Each line follows the acrostic rules, matching capitals accurately. I’m also using "Dawn opens doorways, offering meadows anew" for Dodoma and ensuring every capital's initials are correct. Now, I’ll make sure to call the update_plan tool after I write the poem to document my process!
110
+ type: summary_text
111
+ type: reasoning
112
+ - arguments: '{"plan":"Plan: 1) Choose 12 capital names whose initial letters for lines match the required acrostics:
113
+ odd lines S A M I R A; even lines D A W O O D. 2) For each line, craft a poetic phrase where the first letters of
114
+ each word spell the chosen capital. 3) Verify acrostics and capitals alignment. 4) Deliver the 12-line poem. 5)
115
+ Final check and update plan as completed."}'
116
+ call_id: call_WrCgFeUNTYD3S3yvrY7RFwXM
117
+ id: fc_68c3018f9aa88193952ceab700035b3600b441a18c4893c1
118
+ name: update_plan
119
+ status: completed
120
+ type: function_call
121
+ parallel_tool_calls: true
122
+ previous_response_id: null
123
+ prompt_cache_key: null
124
+ reasoning:
125
+ effort: low
126
+ summary: detailed
127
+ safety_identifier: null
128
+ service_tier: default
129
+ status: completed
130
+ store: true
131
+ temperature: 1.0
132
+ text:
133
+ format:
134
+ type: text
135
+ verbosity: medium
136
+ tool_choice: auto
137
+ tools:
138
+ - description: null
139
+ name: update_plan
140
+ parameters:
141
+ additionalProperties: false
142
+ properties:
143
+ plan:
144
+ type: string
145
+ required:
146
+ - plan
147
+ type: object
148
+ strict: true
149
+ type: function
150
+ top_logprobs: 0
151
+ top_p: 1.0
152
+ truncation: disabled
153
+ usage:
154
+ input_tokens: 124
155
+ input_tokens_details:
156
+ cached_tokens: 0
157
+ output_tokens: 2098
158
+ output_tokens_details:
159
+ reasoning_tokens: 1984
160
+ total_tokens: 2222
161
+ user: null
162
+ status:
163
+ code: 200
164
+ message: OK
165
+ - request:
166
+ headers:
167
+ accept:
168
+ - application/json
169
+ accept-encoding:
170
+ - gzip, deflate
171
+ connection:
172
+ - keep-alive
173
+ content-length:
174
+ - '14388'
175
+ content-type:
176
+ - application/json
177
+ cookie:
178
+ - __cf_bm=0ohItI8F1C0U79lE_AY_mD4Za6CY8J_d79_fr_paw_0-1757610386-1.0.1.1-nIx4rJht3.N0l4zv4dOqNjJPXCpUKJgSC.GkO_QDly6KaZempNMZubpWAlEV8MiPbQ7czncwGAo9XDXHdK.Vbz6wXvNYoETVIMINcwuUAPY;
179
+ _cfuvid=pHNVYbgb_y.fGg1gE7h2zqWd.3pZ2Tcjw.0xNDQHMJ4-1757610386886-0.0.1.1-604800000
180
+ host:
181
+ - api.openai.com
182
+ method: POST
183
+ parsed_body:
184
+ include:
185
+ - reasoning.encrypted_content
186
+ input:
187
+ - content: Compose a 12-line poem where the first letters of the odd-numbered lines form the name "SAMIRA" and the first
188
+ letters of the even-numbered lines spell out "DAWOOD." Additionally, the first letter of each word in every line
189
+ should create the capital of a country
190
+ role: user
191
+ - encrypted_content: gAAAAABowwGSxRRbJh4Dp3HLB-6xsw2t1Jfi-_RzFOWR1LtCb5GDxs4kENgmJ1kUBpCSPgPVraYxGbU2jkka2kfXB029QxTC5kmrL1jsnt-u8zcYKlDyvfvj9gAiIz70dNhcoRKhLRnq3L-FJt0Bn2A0Eak4dNrRBcAqhluAgF_OVSsRzcTwOcvP4wI8NnlevymytiKOJmMjDI4nVvxIJSmkovr0m-oljsnRcTXRoUq3uoa-0P07RqxBQwgnd4N8e_4l1uQgFRgHoDx0H_64l__m2k1RkENZoQDtsvhJWyGs7xt_UgbJQlAkK14G0tZxBEArRllnAe5pnHBBXsSX07SqaNJOQKo4aM-p4Yoxf8pWZVdqQBleHeP2Z2X_G8TYihVFtmQa7dcGwd5rokYeZdEgaJ6_SkIx7X1JUH2OQn9zBGI-itJn6NJDqn99SyRb111KBu5IjdUMjuH2TVbRdfmaB-RDE5tjITFvjensAAQcbe7QPRDdis1U6APiayH45HXgWrGfwopjwOHfgjWRgkVNHRigr9ZRW8V-XnQIBg22ON4fh6j5DDalEsF7cUV8t8sk2xg2JZwjAJ9bPgWTAzQzE-7fVzsPHcFKX7WBz7-6hqbY2Zw6DPTgS3TJjqK4vzF3BJKzwwg-wd3w8hyTknXQVjKVDUWrw1rbZ2DC5QSjS2wa1u7U9xh_UXJSwFvo72gl5Z6pEMEoLWopWCYepAuFewRqsOXnUsUQUGQgYYDZhHihxN0Ju6Z7P3EP53q7wUxBxLuuEZM5eq9cY6NdTBJpXxwXTrzJVJUZW_i4yW250UKjrVx2-XjKQAwCAmbSx9xqwlPmDMVebsEuRtJqkKKFdEbwbpZAH-MHm93WGqi8xSFV7wC0vM9iSEoH2WGFPHgwimEHsDGAUhAxqZsHM8sL_UM4dLhPjSDkcpyAy44UzrscuFKGlL5Npolx74KzHm5kIxOeECTklmS1BOE8bnyvpoq003CE97xNP1ku-ihYUSRA6Le4ejKi_-sqOPY1FGuoUMx4LQzrFERtPjFQzwArbIGzELiMbjCUykThW9p1-c-F040AZfclH3ikt6ZuBtFjcpfJg74dkGtoVkkqcsyJ46H9FLEP03ZqdTAAeMbKsfBLQqdEcBplUiKqQz0TNd52GPs_7b9-kKNM0YQQkPli-L1Korbj26ffmfGuFE_quXLW6JwVSSBfyfivfAgvvq6UuKZPDuOqgtT3EHbl-ezhq2hgxTCmgUMoKbBgJJE4pDjM7FSt6_21TahNpB8QBKJ5-yzpc5O75EQjvsb0RVAzsFJjyxU1XyQwq-3Rhs2tgm5HF0WTrH3NUbn9HsZjoUgladb9bqX2SNT1mFnj5odHCiZRo9KzQaBfruRvcelXeNWGqlNz9Mdrw_9d6hNrv61HzKdS7R9QRdVZeik4TXc_UehTyzH1YpxiiLYmLW1kiGIZlgVtukoraXQ4gPvOZ9INObyZt1UF8HOBgy06BfJivwdJ48R-w_dwIIiuxhAvftmuttDL1KUXzfp41ZK3gmrFtioxjCFXSLTsnNW7BqOsphsFfK0H_a6c52Xv_ph1cSXQqs-uLGvweSD-BDovacyi3hZjHMMdwU4tRnWfSrIjc1pXCb8s7I7w87AxsBpe1fORlMevAaod9bUEDSe9RUaZCIpxS2ahhfHBVpLj41PKVGoq5fvuSotROIQ06-iSpBVnzMrOQOVEIaLKZkFtWtpnaYuIUP14aJFszmh31QYMj_LF1Xd8v6MOCqCiFH6Wxcq5pII2cQbhATOK8Zg8SjucmJ-TjWzrPG5rV9K0-nx42zLTjpIwX8mmT5wX-YUYGz24Dr3Okm2pp3iMBiLjgJzvmELLfXQEpVx4IFzyhFdQ2t_fOtu9kibR_CoU-krZ3yVq_WOYuJMmZz_CXaoPCPwdwPql_xeLbicbDk67SPfGapMeF-TsrqqqLld3ubUF62EtOPJNcNNYNlWmummoIqhasaxkXsPHLM19YJAhlGL9sWIlxJp68x3jXTEqzZwUDa2IH19G9Sv8rXFhLWKdF7KIEmXm-fhshWqbXlja-YDVteXtWmgIl3K3V-YCzucBfCgGIZA6rOryokw-O3qASHdu1Jjk7ne0Un_Did4u8ISBaMDJxCSpbANo_ufjaGuo1U0N3xbOsYBVGSKAGP_mjLISErGh59SDa4FRC5qbFXQiiARPKGyHycOLOJvnFVh82qD2zKB-zxBr-AtQFzXTE887W4ZoC0hGUHPEVfq_EduLi3jU4FRJjbNQ2D28Rd5DaU2Pp9v_fbfS48c0xj2AUJTkI3a6GvW83DzdEQXCCf3zIQgMnToMzab50KU9t4cD7smF4zljz6aPAMg4hxi5R2ApWrvJYPwOZrjb7BEsgKshk8Z4JF_ancu0Fu6XCFmXUmsNiOp_mGQmACPzu3GbNnFGjCz7aPwm3GH0Si88T3hfdD4GUYtWXpddkCon4Tgcp6RqKqzWCKNflLAIa1tULyPs4GeEHuj2eC8P4FDbTVyLp_ZP3nj0EVpvz4IZkNfqywq_IfVEro1f_45uIrOTwRa81orRCUTj1CkPABMnsLRplhQg4fyaQZRSDbrCJQzKnHpOcoGikRXUvyDqkF_9bj4DQyjbm8mt-eSQfOv0ahD90C2iheqSsgS3-vYJZrWHhnGo9gfDE7-mgV_rxt1tcHoVinFil2N0SGPf_BHXhQ9mtr2GFy-J5lTXdz_8431caBCRz1TtcRCZQ8Y3t95shVbtRl26QTLIElF65QcnFljLj5n2JxVcm_yrzqBLxPoQd3pm-sYsKRQo3Lb74Tv158FSTI2KZXFkceNbbmZlDjOxvtQbKCW7XPpuL53HIoRkK9YWa9lAUxP3WyhSPC33hUfvoo8A0WXDYeU87HEB5A_Xtd71ipUfZT_a2TkcCAksXbhn0wfUqCgJKIwzCTo3k1Sib6ijn4_fO1Fl9C6I04SDFoIvBS1fADklWoOWywLKkkbHeGDDnpF_ziibiYxLtEqlXQWLrrb369trrB0poYTDqksbUAOisSu2W6dey3CW_lTtX0SukuRNcoKQBXcvP6ur4d-WvssFaR91dPp_KBrHtvtWwpg2HK_qdD2b6dn04uRqSZ-cRfWebPl9v7lX7ZxYxttztoRSdGeBmJ36DddXZEqKlMKqvSDRNhJlzqtHZlvvm6R0cP8BKLk1JE3yAkXXOCNxa-D0fUEF0GW0Kcig35v7eVtvd5Tzf0r7uAJAXkNVXsn3DtOIdozz4eifU8CqMOkeGNOdv46Su8KdoaxyG6n2L1SZnl5q4pcce1gLhJ6k_pqrEgrEILGwK1XcA7cc2eBxcA-b1ROH1_SaqBuuAn_Nr-Bk_8lGWrl_dVVUYfTottPLtglwSyrR6Dd3yRf1GExHJ5xspYQVzP9EdMf1LebduukhvI6OpdjEH36MVUEcyW7QyJ9IdBKAdkEidVadqAF3Y2WUYl742NyeiRX9WIluriTj-qGbLveIjljUOWAanyq6C9QU8BRe_AGRnjwhxdHIyRjGlquJ2uFEWnOHWFk3tOth-oOoXfoNAjZt6ehUlERmz28Vjywf2C4GJ2J8oObKHPYifJJxG4zzDsviedU30x_9pGucpwgLPnJezQO6sVMGrBHET-1P85Hpgjrw6vLg4PtKo-YimzSK0252s3W9CESL12G-Q69AxgFX-nbpASbSMu-ZcaQonIj7bYQzkpbeY6eiHaKn2Jnnxv9NhG4_F1XGM082p2GsgRbQ3Spnr98TPkH2kJN9V-L3v2q-gcBsjR0JNEd_B4RBOR8jva4YCwSTT3p4a2h8ekbGlXx6HA_vy023Ms6tXMGF9WZVhb_5jPx1a6D9Shzze-q9PqHj2rM84Xph3pKgXT7CNr7pHrhxF_KBcm_T3RfJgkD9-ylqVfzdfhcu-n51Hn_VgnVHjPlgZswNe91oYIplTIShSGC_7-P6YuCsi1dgLI811ZHVJ_Kp75RCIwojLZPAItWLWAxsqsVdmeae_-jQGp6NDSvKSCfN-XKv8lChX8vELfYxo7zhssZ0Q0wg1ZJi6u_4rIx_dDLKUylLp5-tyuO7OZVgJ1kDugJl_gYbcOFLXqWoh0kyCIkPaov9LA3j0ZUgfgrV0-B1dNob2yvHMhYIRovKjioydx3bLl6St7RbJxJTA0eC_3GMKQM0wt75vOVrKD64c6CP9chnR5W6nD2FrTQnmeOCF4g5SrwV5Y3blBB54d9lwXDUlcjAq3ScsyEdPzlsXXj3IFc_O22KguBrZ5SZrc5D35vp0bZ0LhkhhU3eIie5jVPtyDTsTK2fQyQgeBdcoICcUdrMIpiaq9n9DL-RD5vgzG1PsaZ8g58psSp5eqFF4ELXuMw7uw_airSzTgtpKV_i0I7J_lUf0hejuEUO5eaGig-SvGS75MUxIn21su1IgVC4PVOv9a5ZseBjmcm0kbR2fumBygCMV1bfv1M1Lq42O6IWaXSa92xVvupOpRx4kwBseoYUH_lJ1dhxBT2MFokijKYxBF5bAYDSs0zw6VA3rrG86D41DMewF0H0-cnjFNyzWQe_2m-ebqezigFCl_Ov5ikpRI8wAJJ75tHSFXixJXCZWfYQoUkgNrgncP0VOVBBPWIUcBz64BOJ4SyieA_vK1lTBiVtINNftk02SR4kH0fTOvdYYnB8nd7yBRVF2oMDCHpmcTnh91aGzBxWkjdC-3vTCmRE-oirWPdKd1hpxf5cKn88VrvApNpUAzuaL00chB1XOipzOW8qWRifjqak0P0-CztV5kbSrFehKA3U1lbtClgOA6FtzNxulREJjPgVEPPnFLCchmELktCk-M5S5ED6IAv_NygkL5PaIz4ap9JE2Sen0OJ9q3IG6nG4GZw8XJT-fIvVLaFexUZv2F46x04GfzI43CParyRS6kIrjHynU53r9ODslOqnop1B51uxk33Az7TB89zfTPsF4doPiqGkB1nJhWplfm2WLuNZOEGczgr65dF-r_nWBnfR7y3DsPaqqeLri7ysG89XTvMZTCRX9-54NT2k7HwwFO-GFD6gZBizkt0gsmTnFIxp7IGOx1MI86szyLC07Pe2mGICY83SPealOF_gO_qga4z2SAU4YjQeXr6s7ouvDgrCh-DP8SB0K-6qHKT0qUiiWfCX6d-S-faXIsMtgYAkCLZm8hP2Z3CAF9Jxzz9qhQHCVnkKK-2DaTzL26_UIuryYhnUhLP1oYV7ICzF_PD6TvzQVxnIf1fCUJhlQ4GwnHVQQsUUDoNg2e2t3jaB6vP5My9q6XZVZPraBJJf4Fp0C3rKG6YgXFDluKdpAgQqZT7Q97dOi5T_YHkwrR9NFC2SH5p_ZjbQY3REzIhPFpIco6v2h3-B8U6vtEMNic7AjljIKidpbQUZ9fCq3oQFU_2Q5UFUEB-GoekC4jZX4zxYNYg2mEDAHzksGPdXF0bf4s5nr_vRlXVQPijC02uav0QuNaNcBdHTN7uEVyfLTfxXbdHv1e7Hl6-HeBLMtacODpJTnp7mZKK0XxUTxMLFC5kihM_9hSpQHJ0WS9oH2E7SW7bscq8_fzbDQmEPxDbfsAjx83h6fJpzviHSzIDysdUONv50phqKN6qqAJ_dItPc2yhtxsiigmNe-8Dnejf8ExPw-z5bPjpZQB-jgAZ9-66YGH6fkwzpzM8IK5Xt9DwqKcWhGUn3Vr6ZBiriYHKoQNzvToUoYKlzNI4FjPJL66vDRntxrLPbAwmX5092L_QahpLobCcRTgJXdm6Oz4w6CVeF3VdZf1B_Mltya9QsAc4QYs_p2Q4YRbdG2QATAnxGneEdB9KK121muAxzLXeGl5o-e9WesbHQ0GnbbPGfalorI-_eNVKzRgTjE1FJ7KDVn9d0jiPZfvB8xlR5WSdlqV_PY-pRnvv7dDkHHBUTPkYA0e_l0KlJ1krQVYXQXDkYaFxnqSs5ei9diTPRfiCLCWntxngssAimmW9eTJUZbxuCmqkzBiItjC6zF39ZUF3RibxyHCHf9fZPTmaWhiPNgifgJHxxb_ZZgOo3VnKppLmIPQjnGtofqyS6kht5RDx0joPXjGhz1gJN_Xju1TeZd0lx6PgXmr2jWnNqnOOuM1BfnH1S5M5uHNNf9VnC8_vNR1RsvrBUxfEgkGZXHlDL8JO-HvAxY1Y5pDOubaIdbxSmbB2w8Lg1cuJ7NQdbBBn271A-qMKFnwYexUH1iz4GiHYDSHhgoEa6L4apwrWYw8Kwt2fLf3BaRojbHx1ocXpFXADm2QSiOczzQ-zoyrRVDqZQZ3u1LBu3m-aVGVPHkOW3_xzqyoh7K_pAMlsgZCV_5zIBvPT_alYN-jbRvAigHPXiPYZTZSjcgPKGEx4TSpLUZ1wJnhvdBBcqX5ROv_WqxQaQUaMz2vzLwlKEJOW7HjxKOCD6Qpv1W_11knF77VyZL-NZ6EsjQm9m49nxpr1FjnvajyNBeFg6V6mWyO1__x5UV4X3wzTf6oQuO06h7HUCwTgZ6N2TdZYcTaG3dTtiwuke5B5UgbtEM8rDVri_LrFywsknYTzDNLZCpmFRGxoNV5bdHW3L4cClemYcuGvvx2QuMFiMUi5f2QCsIZifF_WsWECH7L1JbF-18lGOHFM0CX5-LhsMg-uPpJiJ8pPQuPfFilcAUhxiQodwKUp1R5vwAYEpJHPEVDQgNAvkVSk4mI9v14yPG6qhrD1vt3PlZsPaBPoEs8o2MDefF9Bg5lJqKz2PGTD-2SMP64J_WJ7xM7z1xrpjyhmiLTrK_ocwC62OwfIjfDAS-QqrQkJZANMw5LJxlPijKglE6TBRnQJlj9uDYk618PzxNkh56aCHBFTK9L8BdwbjTlJZGBuRJY7uE8mKoCaWFcAY7ekSi0Bvn_g_lW4VQtm0HIK_n9oohJnDKPpE-AMI8p5xDmARCBCzdlVuFwPi7To8VIKVT7fociARozF_rv6bJW9S5Ugq_Wp2C5U73CFZ4OiZgOIeCQq9ooWH4Biegphm3XHYyKOhdC7jRqXJrffT-lnJvlcxt96c8XcNIMYpPHXnpQ6C2slMvWn50FlW8tgpL7yQ0nlmTxScaVzyS0eScTFJz59omc2eKK9wofP49wtoSRiStqDeK-g4qXa1JQQjuOkUI0IwXkjyoT2FLd_ZvRR4giv5rKiub8voXhNgJYLn074u3DA80iptE9xVbV6_2klP9wr7gQIQgrVJ6s9_oKKu8UmD9TT-LSa0xHPXesdiv40gAKu8T6A4444fVkg6H6osVlA9osiRxrBrTjTkSzSJl6WBPWAIYIn5yjbaLiaRrsRQ3MalTPrcQDET1JUqaMUz8fLCyZwX5fkiGyFoYmDPbTpMg8uzEr6dGniILg9OO1snKiOeU_9XB5xZE0RnVS5fKkpkgNWESI8bIgZaf-sFL6p7ZO30sw_aZhkdRttx0jGsSHuPOaNqu-lCwrVvU1j_K3yrUkIriTRF5napCw4kYac0Dc-BezjQA4x0O7P2ggtZPG4vS-YObmFPOx8mTEot5-c0v3XQWAwThbIB7R1-Jn5b0NB2D4bCsY3m7CjqbsrMuHNkTqxeR5cB4-DzJZqBersjAexxZ8d_AOH4MxEwQ1OM9_IFixQ3BSxzq4_j4KJiM2lXK_L9IRtHZhkTckrJkiQP2FjJAuykOmPz6qOKdT4v1bYkI3Uqyzbhea5GjFTCB79iHJL2h2t2GP9Hu6j2LcyCAO3IGBaq0g7e_-41cS9tUAZVkqAhDph6sQIaGL5QrFuHAKDO0g1qq_0_Y1J9ROfii7DKfMe6r4uZuh3Vo4SnAC9Mte1OOIArobkr6zmP0JwspfQmcPNrpQxZ0Aw6Jm9qv6rEtBhp0tXDde9glsbXubBF_PZR7GSpxTKJBxwMtVvXK1PhksAe3wkgzais_Gr4lbNi2k-kQOsuRJka84qr2TbqrWIR9WpdMB-eTd5Ohb4s5CUj7k0GP5PksHFUGl4uVlhIk_fnxmYNxRFGW-aEOuByjKA__qxBOu76lJFe8ObwEf3t-ZtYFBOp_St4kX1NQeCVrV8CbT_kuaQ6pbuG86VyfyoZJzMsCtzw5gxA3nFqq7GtDw70Sl-il9d0xJt60sU2E9b_r_WHvBEXdvZPbhzJxQcJbUDZ0keEiy5NRrCfVFxr1s6a3EhPA4JdR6APe-rFt4n7wCl6A3rKO6S7dbXZiU7CI777A8vEtJwDdtDuLn1-2gLaUEWBCbTukZvuAWigGvZMCN-B5apHelQ4EqdH91vjDapXhGFuC-5vOCvPzo2S9dc0wz8fR1scb7naE_YJmDeqonL-NsaAun2drdY4Qo52tti7dN7Bf1N_07vPk1LU4WpQZiW3xjKDbXYt9PhD7vxjWapdmiqfpuvRHxnWlM4HNzapkkW_HbWtWYBawRLG10DoYs3eXAQCmZ8CgoZIytpFDMwS6hJ_-NDr8AfLqszAeiY17MVa8D_Ntn-NFMuE7l3L5YWF60temAbI2FZm2ub-MyQB1PSaCsOI_uNjlHlLVatmfHB9MoufDQV_hA4k94pxu97cGHl34rJYdG7J2zXa7_YBzN0nOpelhP3vtiSfnpImWmhzQR5LA31bTuQ6RtRGEzEbEYmaYlTbNCX0f-dmLzqB4CiNCi6AFFioOsyYMsEae7oigBc1ytFGmPTa_oK2eDBMa96b-zl_vFsXhF-x0e4FhHj4V7DfwwSgLKACvxg4bfdqnhnLK_dqWo4ye-Zje-bjJodzpGPgnaPLFJx-GsYWqD78jd5HuR4gDRSTvPhZV3hbTpSMvGWKT56mjfGy38wo09cZC_id1PmNrdrJHbxH2qhHps6AZGlIDbyaxItwoWr9a7n6y258mO6TgiTd38HdS9pJAeQz4stOWvBFu3Cwz9dUrDRleTtsv4OarItOaqpeekqflr9BdZT0W3Sy685WU1M5bAJXZ7ILY1TFXX8spnU4DDAQ2kGSaBSoeP_Tej3lKdiAP3rRYZghnKVQpm-kYxeKyKPS4NCFtoo3nwnOy2iLSst2LZNOzzfuj786njj8_1mvA2b18ndYOupbleU-7UCCLz1YE9Mh1aSfxYqsouudw7HT3cadzGXZETRvWXytFOAa15eC6aBVGWlQbj5jZS0155b31lYYayHsve-rmEe2TWyf9qcSqStjGXY5Ui_x80Gnv--M9qb8-6gAQ_iNH4gnevT3sna16565NFg8TkskCE2OG2pRePtnodpH6-ha53GUt70mCjGKqz1gyNqGbkqwJCax6FD8l--ncuyHtolzVJ0EVhxVSJtpsI-ZOPNJjip8D3JGNRNE-TLpfWs1-VckZ6_egCzdAKIx3e8hnH-C_ryNfWyw6Ix_kQuqLQc25rmhFhURLCohWiNChikWW4NzIhFQWW-TmHsPJP0m-KWcTYZ5tNaWnPPvD1QC4lMyKy2hQT5SUqb95X8FujupZ0MGB1K7CGCo83pSIHTHTkcfbpGao9lNypO70mIDzmWnMNP9H7VzeMdIlQjWJ07dsFxLTBjCGMC0EeOsUzlC9orFkeSKExtGYjf_mvBMzxsXhBVdFOwc1a-GHPePe8BEAiqjogtNqQyGOn6Vjq_bZi1iJj5hXWqaMHU4Honc956m5yskToRfLvV-KfyoK91PZXPRlrXWesxwj_heQQIpingaZDcu-t7_4dNwaNE6iOl7n_f5ZJSTcNMcMtPEO4KSsfNr4Tw_EsBQ3WxdJHhvbqghvQdoS9nauhGjSvivkPYLFpmePab0SidDonE0ZDwZgcafyLKd5gEdemoGg2W0rmxiX0PO9rvScKPTAE7P67nuMVX8_7EsEgX8imlhDbgbnBeg8QWoWX72eboq9pFyGaVHOP5K7MALdeHUwlnr7Je8MZenBXN_EiA9MzVKet3sF2rCTg5Btscr4bgyz5ttFAlbR6ABqFn6B39vHEgxKwGbeqkztSpY19jqx_Bi4ZrRzz1MjfvItU8BOtwGUluMVL9hAwNEQx6_HZDu0OzZIfDBIUnCS_8k
192
+ id: rs_68c301598b5c81938a8f95605519c25a00b441a18c4893c1
193
+ summary:
194
+ - text: |-
195
+ **Creating a poem with acrostics**
196
+
197
+ I’m working on producing a 12-line poem where the odd lines spell "SAMIRA" and the even lines spell "DAWOOD." Wait, I realize that I need to focus on the first letters of each line too—those should correspond to the letters of each acrostic. So every line must not only express something but also have the initials of each word form the name of a capital city. I’ll need to think carefully about my word choices!
198
+ type: summary_text
199
+ - text: |-
200
+ **Selecting capitals for the poem**
201
+
202
+ I'm thinking about using straightforward capital city names to help with the poem. For instance, I could start with "Seoul" for line one, which would have words starting with S, E, O, U, and L. For line two, I’ll go with "Doha," which is simple and gives me the letters D, O, H, A. Line three can start with A, and I think I'll pick "Athens" for that, giving me a nice five-letter word to work with. This should fit well together!
203
+ type: summary_text
204
+ - text: |-
205
+ **Choosing capitals for the poem lines**
206
+
207
+ For line four, I need a word starting with A to match the second letter of "DAWOOD." I could use "Apia," "Asmara," or even "Athens" again, but I’ll choose "Apia" for variety. Line five should start with M, so I’m considering options like "Moscow" or "Madrid," and I think I will go with "Moscow." Line six requires W, and I’ll pick "Warsaw." For line seven, I’m looking at "Islamabad," which works perfectly. Finally, line eight can start with O, and I’m leaning toward "Ottawa" since it has six letters and fits nicely!
208
+ type: summary_text
209
+ - text: |-
210
+ **Finalizing the poem structure**
211
+
212
+ For line nine, I’ll start with R and choose "Rabat," which gives me a solid five letters. Line ten needs to start with O, so using "Oslo" again works, even if it repeats. Line eleven can begin with A, and "Abuja" fits perfectly. For line twelve, I’m selecting "Dodoma." Now, I need to ensure that each line’s words not only have the correct initials but also create a poetic flow. For the first line, I came up with "Silken embers orbit under lanterns," which captures the essence beautifully!
213
+ type: summary_text
214
+ - text: |-
215
+ **Crafting the poem and updating the plan**
216
+
217
+ I’ve crafted nice lines for the poem! Starting with "Silken embers orbit under lanterns" for Seoul works well. Then I have "Desert omens hover above" for Doha, and "Ancient thoughts hum, echoing night songs" for Athens. Each line follows the acrostic rules, matching capitals accurately. I’m also using "Dawn opens doorways, offering meadows anew" for Dodoma and ensuring every capital's initials are correct. Now, I’ll make sure to call the update_plan tool after I write the poem to document my process!
218
+ type: summary_text
219
+ type: reasoning
220
+ - arguments: '{"plan":"Plan: 1) Choose 12 capital names whose initial letters for lines match the required acrostics:
221
+ odd lines S A M I R A; even lines D A W O O D. 2) For each line, craft a poetic phrase where the first letters of
222
+ each word spell the chosen capital. 3) Verify acrostics and capitals alignment. 4) Deliver the 12-line poem. 5)
223
+ Final check and update plan as completed."}'
224
+ call_id: call_WrCgFeUNTYD3S3yvrY7RFwXM
225
+ id: fc_68c3018f9aa88193952ceab700035b3600b441a18c4893c1
226
+ name: update_plan
227
+ type: function_call
228
+ - call_id: call_WrCgFeUNTYD3S3yvrY7RFwXM
229
+ output: plan updated
230
+ type: function_call_output
231
+ instructions: You are a helpful assistant that uses planning. You MUST use the update_plan tool and continually update
232
+ it as you make progress against the user's prompt
233
+ model: gpt-5
234
+ reasoning:
235
+ effort: low
236
+ summary: detailed
237
+ stream: false
238
+ tool_choice: auto
239
+ tools:
240
+ - description: null
241
+ name: update_plan
242
+ parameters:
243
+ additionalProperties: false
244
+ properties:
245
+ plan:
246
+ type: string
247
+ required:
248
+ - plan
249
+ type: object
250
+ strict: true
251
+ type: function
252
+ uri: https://api.openai.com/v1/responses
253
+ response:
254
+ headers:
255
+ alt-svc:
256
+ - h3=":443"; ma=86400
257
+ connection:
258
+ - keep-alive
259
+ content-length:
260
+ - '2345'
261
+ content-type:
262
+ - application/json
263
+ openai-organization:
264
+ - pydantic-28gund
265
+ openai-processing-ms:
266
+ - '5730'
267
+ openai-project:
268
+ - proj_dKobscVY9YJxeEaDJen54e3d
269
+ openai-version:
270
+ - '2020-10-01'
271
+ strict-transport-security:
272
+ - max-age=31536000; includeSubDomains; preload
273
+ transfer-encoding:
274
+ - chunked
275
+ parsed_body:
276
+ background: false
277
+ created_at: 1757610387
278
+ error: null
279
+ id: resp_68c301935a2881939de9421990d0cd7c00b441a18c4893c1
280
+ incomplete_details: null
281
+ instructions: You are a helpful assistant that uses planning. You MUST use the update_plan tool and continually update
282
+ it as you make progress against the user's prompt
283
+ max_output_tokens: null
284
+ max_tool_calls: null
285
+ metadata: {}
286
+ model: gpt-5-2025-08-07
287
+ object: response
288
+ output:
289
+ - content:
290
+ - annotations: []
291
+ logprobs: []
292
+ text: |-
293
+ Silken embers orbit under lanterns
294
+ Desert omens hover above
295
+ Ancient thoughts hum, echoing night songs
296
+ Amber palms invite arrivals
297
+ Midnight orbits slow, constellations over water
298
+ Winds awaken rivers; sun adorns willows
299
+ Ivory sands luminous, as moonlight awakes boats adrift, dreaming
300
+ Opal tides twine, auroras wander amber
301
+ Rose arches breathe at twilight
302
+ Old songs linger openly
303
+ Amber breezes usher jasmine aloft
304
+ Dawn opens doorways, offering meadows anew
305
+ type: output_text
306
+ id: msg_68c3019459f48193a6653ef497bd4c6000b441a18c4893c1
307
+ role: assistant
308
+ status: completed
309
+ type: message
310
+ parallel_tool_calls: true
311
+ previous_response_id: null
312
+ prompt_cache_key: null
313
+ reasoning:
314
+ effort: low
315
+ summary: detailed
316
+ safety_identifier: null
317
+ service_tier: default
318
+ status: completed
319
+ store: true
320
+ temperature: 1.0
321
+ text:
322
+ format:
323
+ type: text
324
+ verbosity: medium
325
+ tool_choice: auto
326
+ tools:
327
+ - description: null
328
+ name: update_plan
329
+ parameters:
330
+ additionalProperties: false
331
+ properties:
332
+ plan:
333
+ type: string
334
+ required:
335
+ - plan
336
+ type: object
337
+ strict: true
338
+ type: function
339
+ top_logprobs: 0
340
+ top_p: 1.0
341
+ truncation: disabled
342
+ usage:
343
+ input_tokens: 2272
344
+ input_tokens_details:
345
+ cached_tokens: 1152
346
+ output_tokens: 114
347
+ output_tokens_details:
348
+ reasoning_tokens: 0
349
+ total_tokens: 2386
350
+ user: null
351
+ status:
352
+ code: 200
353
+ message: OK
354
+ version: 1
@@ -486,7 +486,7 @@ async def test_multiple_parallel_tool_calls(allow_model_requests: None):
486
486
 
487
487
  # If we don't provide some value for the API key, the anthropic SDK will raise an error.
488
488
  # However, we do want to use the environment variable if present when rewriting VCR cassettes.
489
- api_key = os.environ.get('ANTHROPIC_API_KEY', 'mock-value')
489
+ api_key = os.getenv('ANTHROPIC_API_KEY', 'mock-value')
490
490
  agent = Agent(
491
491
  AnthropicModel('claude-3-5-haiku-latest', provider=AnthropicProvider(api_key=api_key)),
492
492
  system_prompt=system_prompt,
@@ -1226,9 +1226,7 @@ async def test_google_model_thinking_part_iter(allow_model_requests: None, googl
1226
1226
  PartDeltaEvent(index=0, delta=ThinkingPartDelta(content_delta=IsStr())),
1227
1227
  PartDeltaEvent(index=0, delta=ThinkingPartDelta(content_delta=IsStr())),
1228
1228
  PartDeltaEvent(index=0, delta=ThinkingPartDelta(content_delta=IsStr())),
1229
- PartDeltaEvent(
1230
- index=0, delta=ThinkingPartDelta(content_delta='', signature_delta=IsStr(), provider_name='google-gla')
1231
- ),
1229
+ PartDeltaEvent(index=0, delta=ThinkingPartDelta(signature_delta=IsStr(), provider_name='google-gla')),
1232
1230
  PartStartEvent(index=1, part=TextPart(content=IsStr())),
1233
1231
  FinalResultEvent(tool_name=None, tool_call_id=None),
1234
1232
  PartDeltaEvent(index=1, delta=TextPartDelta(content_delta=IsStr())),