pydantic-ai-slim 1.9.0__tar.gz → 1.9.1__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-slim might be problematic. Click here for more details.

Files changed (156) hide show
  1. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/PKG-INFO +3 -3
  2. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/models/google.py +5 -12
  3. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/providers/anthropic.py +2 -2
  4. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/ui/_adapter.py +2 -2
  5. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/ui/ag_ui/app.py +8 -1
  6. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/.gitignore +0 -0
  7. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/LICENSE +0 -0
  8. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/README.md +0 -0
  9. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/__init__.py +0 -0
  10. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/__main__.py +0 -0
  11. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/_a2a.py +0 -0
  12. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/_agent_graph.py +0 -0
  13. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/_cli.py +0 -0
  14. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/_function_schema.py +0 -0
  15. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/_griffe.py +0 -0
  16. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/_instrumentation.py +0 -0
  17. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/_json_schema.py +0 -0
  18. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/_mcp.py +0 -0
  19. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/_otel_messages.py +0 -0
  20. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/_output.py +0 -0
  21. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/_parts_manager.py +0 -0
  22. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/_run_context.py +0 -0
  23. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/_system_prompt.py +0 -0
  24. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/_thinking_part.py +0 -0
  25. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/_tool_manager.py +0 -0
  26. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/_utils.py +0 -0
  27. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/ag_ui.py +0 -0
  28. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/agent/__init__.py +0 -0
  29. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/agent/abstract.py +0 -0
  30. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/agent/wrapper.py +0 -0
  31. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/builtin_tools.py +0 -0
  32. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/common_tools/__init__.py +0 -0
  33. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/common_tools/duckduckgo.py +0 -0
  34. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/common_tools/tavily.py +0 -0
  35. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/direct.py +0 -0
  36. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/durable_exec/__init__.py +0 -0
  37. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/durable_exec/dbos/__init__.py +0 -0
  38. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/durable_exec/dbos/_agent.py +0 -0
  39. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/durable_exec/dbos/_mcp_server.py +0 -0
  40. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/durable_exec/dbos/_model.py +0 -0
  41. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/durable_exec/dbos/_utils.py +0 -0
  42. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/durable_exec/prefect/__init__.py +0 -0
  43. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/durable_exec/prefect/_agent.py +0 -0
  44. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/durable_exec/prefect/_cache_policies.py +0 -0
  45. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/durable_exec/prefect/_function_toolset.py +0 -0
  46. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/durable_exec/prefect/_mcp_server.py +0 -0
  47. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/durable_exec/prefect/_model.py +0 -0
  48. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/durable_exec/prefect/_toolset.py +0 -0
  49. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/durable_exec/prefect/_types.py +0 -0
  50. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/durable_exec/temporal/__init__.py +0 -0
  51. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/durable_exec/temporal/_agent.py +0 -0
  52. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/durable_exec/temporal/_function_toolset.py +0 -0
  53. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/durable_exec/temporal/_logfire.py +0 -0
  54. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/durable_exec/temporal/_mcp_server.py +0 -0
  55. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/durable_exec/temporal/_model.py +0 -0
  56. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/durable_exec/temporal/_run_context.py +0 -0
  57. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/durable_exec/temporal/_toolset.py +0 -0
  58. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/exceptions.py +0 -0
  59. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/ext/__init__.py +0 -0
  60. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/ext/aci.py +0 -0
  61. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/ext/langchain.py +0 -0
  62. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/format_prompt.py +0 -0
  63. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/mcp.py +0 -0
  64. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/messages.py +0 -0
  65. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/models/__init__.py +0 -0
  66. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/models/anthropic.py +0 -0
  67. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/models/bedrock.py +0 -0
  68. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/models/cohere.py +0 -0
  69. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/models/fallback.py +0 -0
  70. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/models/function.py +0 -0
  71. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/models/gemini.py +0 -0
  72. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/models/groq.py +0 -0
  73. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/models/huggingface.py +0 -0
  74. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/models/instrumented.py +0 -0
  75. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/models/mcp_sampling.py +0 -0
  76. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/models/mistral.py +0 -0
  77. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/models/openai.py +0 -0
  78. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/models/outlines.py +0 -0
  79. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/models/test.py +0 -0
  80. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/models/wrapper.py +0 -0
  81. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/output.py +0 -0
  82. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/profiles/__init__.py +0 -0
  83. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/profiles/amazon.py +0 -0
  84. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/profiles/anthropic.py +0 -0
  85. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/profiles/cohere.py +0 -0
  86. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/profiles/deepseek.py +0 -0
  87. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/profiles/google.py +0 -0
  88. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/profiles/grok.py +0 -0
  89. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/profiles/groq.py +0 -0
  90. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/profiles/harmony.py +0 -0
  91. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/profiles/meta.py +0 -0
  92. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/profiles/mistral.py +0 -0
  93. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/profiles/moonshotai.py +0 -0
  94. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/profiles/openai.py +0 -0
  95. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/profiles/qwen.py +0 -0
  96. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/providers/__init__.py +0 -0
  97. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/providers/azure.py +0 -0
  98. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/providers/bedrock.py +0 -0
  99. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/providers/cerebras.py +0 -0
  100. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/providers/cohere.py +0 -0
  101. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/providers/deepseek.py +0 -0
  102. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/providers/fireworks.py +0 -0
  103. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/providers/gateway.py +0 -0
  104. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/providers/github.py +0 -0
  105. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/providers/google.py +0 -0
  106. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/providers/google_gla.py +0 -0
  107. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/providers/google_vertex.py +0 -0
  108. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/providers/grok.py +0 -0
  109. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/providers/groq.py +0 -0
  110. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/providers/heroku.py +0 -0
  111. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/providers/huggingface.py +0 -0
  112. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/providers/litellm.py +0 -0
  113. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/providers/mistral.py +0 -0
  114. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/providers/moonshotai.py +0 -0
  115. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/providers/nebius.py +0 -0
  116. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/providers/ollama.py +0 -0
  117. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/providers/openai.py +0 -0
  118. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/providers/openrouter.py +0 -0
  119. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/providers/outlines.py +0 -0
  120. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/providers/ovhcloud.py +0 -0
  121. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/providers/together.py +0 -0
  122. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/providers/vercel.py +0 -0
  123. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/py.typed +0 -0
  124. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/result.py +0 -0
  125. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/retries.py +0 -0
  126. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/run.py +0 -0
  127. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/settings.py +0 -0
  128. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/tools.py +0 -0
  129. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/toolsets/__init__.py +0 -0
  130. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/toolsets/_dynamic.py +0 -0
  131. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/toolsets/abstract.py +0 -0
  132. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/toolsets/approval_required.py +0 -0
  133. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/toolsets/combined.py +0 -0
  134. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/toolsets/external.py +0 -0
  135. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/toolsets/fastmcp.py +0 -0
  136. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/toolsets/filtered.py +0 -0
  137. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/toolsets/function.py +0 -0
  138. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/toolsets/prefixed.py +0 -0
  139. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/toolsets/prepared.py +0 -0
  140. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/toolsets/renamed.py +0 -0
  141. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/toolsets/wrapper.py +0 -0
  142. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/ui/__init__.py +0 -0
  143. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/ui/_event_stream.py +0 -0
  144. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/ui/_messages_builder.py +0 -0
  145. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/ui/ag_ui/__init__.py +0 -0
  146. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/ui/ag_ui/_adapter.py +0 -0
  147. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/ui/ag_ui/_event_stream.py +0 -0
  148. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/ui/vercel_ai/__init__.py +0 -0
  149. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/ui/vercel_ai/_adapter.py +0 -0
  150. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/ui/vercel_ai/_event_stream.py +0 -0
  151. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/ui/vercel_ai/_utils.py +0 -0
  152. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/ui/vercel_ai/request_types.py +0 -0
  153. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/ui/vercel_ai/response_types.py +0 -0
  154. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pydantic_ai/usage.py +0 -0
  155. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/pyproject.toml +0 -0
  156. {pydantic_ai_slim-1.9.0 → pydantic_ai_slim-1.9.1}/venv +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pydantic-ai-slim
3
- Version: 1.9.0
3
+ Version: 1.9.1
4
4
  Summary: Agent Framework / shim to use Pydantic with LLMs, slim package
5
5
  Project-URL: Homepage, https://github.com/pydantic/pydantic-ai/tree/main/pydantic_ai_slim
6
6
  Project-URL: Source, https://github.com/pydantic/pydantic-ai/tree/main/pydantic_ai_slim
@@ -33,7 +33,7 @@ Requires-Dist: genai-prices>=0.0.35
33
33
  Requires-Dist: griffe>=1.3.2
34
34
  Requires-Dist: httpx>=0.27
35
35
  Requires-Dist: opentelemetry-api>=1.28.0
36
- Requires-Dist: pydantic-graph==1.9.0
36
+ Requires-Dist: pydantic-graph==1.9.1
37
37
  Requires-Dist: pydantic>=2.10
38
38
  Requires-Dist: typing-inspection>=0.4.0
39
39
  Provides-Extra: a2a
@@ -57,7 +57,7 @@ Requires-Dist: dbos>=1.14.0; extra == 'dbos'
57
57
  Provides-Extra: duckduckgo
58
58
  Requires-Dist: ddgs>=9.0.0; extra == 'duckduckgo'
59
59
  Provides-Extra: evals
60
- Requires-Dist: pydantic-evals==1.9.0; extra == 'evals'
60
+ Requires-Dist: pydantic-evals==1.9.1; extra == 'evals'
61
61
  Provides-Extra: fastmcp
62
62
  Requires-Dist: fastmcp>=2.12.0; extra == 'fastmcp'
63
63
  Provides-Extra: google
@@ -471,11 +471,9 @@ class GoogleModel(Model):
471
471
  raise UnexpectedModelBehavior(
472
472
  f'Content filter {raw_finish_reason.value!r} triggered', response.model_dump_json()
473
473
  )
474
- else:
475
- raise UnexpectedModelBehavior(
476
- 'Content field missing from Gemini response', response.model_dump_json()
477
- ) # pragma: no cover
478
- parts = candidate.content.parts or []
474
+ parts = [] # pragma: no cover
475
+ else:
476
+ parts = candidate.content.parts or []
479
477
 
480
478
  usage = _metadata_as_usage(response)
481
479
  return _process_response_from_parts(
@@ -649,17 +647,12 @@ class GeminiStreamedResponse(StreamedResponse):
649
647
  # )
650
648
 
651
649
  if candidate.content is None or candidate.content.parts is None:
652
- if self.finish_reason == 'stop': # pragma: no cover
653
- # Normal completion - skip this chunk
654
- continue
655
- elif self.finish_reason == 'content_filter' and raw_finish_reason: # pragma: no cover
650
+ if self.finish_reason == 'content_filter' and raw_finish_reason: # pragma: no cover
656
651
  raise UnexpectedModelBehavior(
657
652
  f'Content filter {raw_finish_reason.value!r} triggered', chunk.model_dump_json()
658
653
  )
659
654
  else: # pragma: no cover
660
- raise UnexpectedModelBehavior(
661
- 'Content field missing from streaming Gemini response', chunk.model_dump_json()
662
- )
655
+ continue
663
656
 
664
657
  parts = candidate.content.parts
665
658
  if not parts:
@@ -12,7 +12,7 @@ from pydantic_ai.profiles.anthropic import anthropic_model_profile
12
12
  from pydantic_ai.providers import Provider
13
13
 
14
14
  try:
15
- from anthropic import AsyncAnthropic, AsyncAnthropicBedrock
15
+ from anthropic import AsyncAnthropic, AsyncAnthropicBedrock, AsyncAnthropicVertex
16
16
  except ImportError as _import_error:
17
17
  raise ImportError(
18
18
  'Please install the `anthropic` package to use the Anthropic provider, '
@@ -20,7 +20,7 @@ except ImportError as _import_error:
20
20
  ) from _import_error
21
21
 
22
22
 
23
- AsyncAnthropicClient: TypeAlias = AsyncAnthropic | AsyncAnthropicBedrock
23
+ AsyncAnthropicClient: TypeAlias = AsyncAnthropic | AsyncAnthropicBedrock | AsyncAnthropicVertex
24
24
 
25
25
 
26
26
  class AnthropicProvider(Provider[AsyncAnthropicClient]):
@@ -2,7 +2,7 @@ from __future__ import annotations
2
2
 
3
3
  from abc import ABC, abstractmethod
4
4
  from collections.abc import AsyncIterator, Sequence
5
- from dataclasses import KW_ONLY, Field, dataclass, replace
5
+ from dataclasses import KW_ONLY, Field, dataclass
6
6
  from functools import cached_property
7
7
  from http import HTTPStatus
8
8
  from typing import (
@@ -238,7 +238,7 @@ class UIAdapter(ABC, Generic[RunInputT, MessageT, EventT, AgentDepsT, OutputData
238
238
  else:
239
239
  state = raw_state
240
240
 
241
- deps = replace(deps, state=state)
241
+ deps.state = state
242
242
  elif self.state:
243
243
  raise UserError(
244
244
  f'State is provided but `deps` of type `{type(deps).__name__}` does not implement the `StateHandler` protocol: it needs to be a dataclass with a non-optional `state` field.'
@@ -3,6 +3,7 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  from collections.abc import Callable, Mapping, Sequence
6
+ from dataclasses import replace
6
7
  from typing import Any, Generic
7
8
 
8
9
  from typing_extensions import Self
@@ -18,7 +19,7 @@ from pydantic_ai.tools import AgentDepsT
18
19
  from pydantic_ai.toolsets import AbstractToolset
19
20
  from pydantic_ai.usage import RunUsage, UsageLimits
20
21
 
21
- from .. import OnCompleteFunc
22
+ from .. import OnCompleteFunc, StateHandler
22
23
  from ._adapter import AGUIAdapter
23
24
 
24
25
  try:
@@ -121,6 +122,12 @@ class AGUIApp(Generic[AgentDepsT, OutputDataT], Starlette):
121
122
 
122
123
  async def run_agent(request: Request) -> Response:
123
124
  """Endpoint to run the agent with the provided input data."""
125
+ # `dispatch_request` will store the frontend state from the request on `deps.state` (if it implements the `StateHandler` protocol),
126
+ # so we need to copy the deps to avoid different requests mutating the same deps object.
127
+ nonlocal deps
128
+ if isinstance(deps, StateHandler): # pragma: no branch
129
+ deps = replace(deps)
130
+
124
131
  return await AGUIAdapter[AgentDepsT, OutputDataT].dispatch_request(
125
132
  request,
126
133
  agent=agent,
File without changes