agno 2.2.9__tar.gz → 2.2.10__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.
Files changed (578) hide show
  1. {agno-2.2.9 → agno-2.2.10}/PKG-INFO +1 -1
  2. {agno-2.2.9 → agno-2.2.10}/agno/agent/agent.py +14 -4
  3. {agno-2.2.9 → agno-2.2.10}/agno/os/app.py +15 -15
  4. {agno-2.2.9 → agno-2.2.10}/agno/team/team.py +7 -2
  5. {agno-2.2.9 → agno-2.2.10}/agno/workflow/agent.py +2 -2
  6. {agno-2.2.9 → agno-2.2.10}/agno/workflow/condition.py +26 -4
  7. {agno-2.2.9 → agno-2.2.10}/agno/workflow/loop.py +9 -0
  8. {agno-2.2.9 → agno-2.2.10}/agno/workflow/parallel.py +39 -16
  9. {agno-2.2.9 → agno-2.2.10}/agno/workflow/router.py +25 -4
  10. {agno-2.2.9 → agno-2.2.10}/agno/workflow/step.py +162 -91
  11. {agno-2.2.9 → agno-2.2.10}/agno/workflow/steps.py +9 -0
  12. {agno-2.2.9 → agno-2.2.10}/agno/workflow/workflow.py +26 -22
  13. {agno-2.2.9 → agno-2.2.10}/agno.egg-info/PKG-INFO +1 -1
  14. {agno-2.2.9 → agno-2.2.10}/pyproject.toml +1 -1
  15. {agno-2.2.9 → agno-2.2.10}/LICENSE +0 -0
  16. {agno-2.2.9 → agno-2.2.10}/README.md +0 -0
  17. {agno-2.2.9 → agno-2.2.10}/agno/__init__.py +0 -0
  18. {agno-2.2.9 → agno-2.2.10}/agno/agent/__init__.py +0 -0
  19. {agno-2.2.9 → agno-2.2.10}/agno/api/__init__.py +0 -0
  20. {agno-2.2.9 → agno-2.2.10}/agno/api/agent.py +0 -0
  21. {agno-2.2.9 → agno-2.2.10}/agno/api/api.py +0 -0
  22. {agno-2.2.9 → agno-2.2.10}/agno/api/evals.py +0 -0
  23. {agno-2.2.9 → agno-2.2.10}/agno/api/os.py +0 -0
  24. {agno-2.2.9 → agno-2.2.10}/agno/api/routes.py +0 -0
  25. {agno-2.2.9 → agno-2.2.10}/agno/api/schemas/__init__.py +0 -0
  26. {agno-2.2.9 → agno-2.2.10}/agno/api/schemas/agent.py +0 -0
  27. {agno-2.2.9 → agno-2.2.10}/agno/api/schemas/evals.py +0 -0
  28. {agno-2.2.9 → agno-2.2.10}/agno/api/schemas/os.py +0 -0
  29. {agno-2.2.9 → agno-2.2.10}/agno/api/schemas/response.py +0 -0
  30. {agno-2.2.9 → agno-2.2.10}/agno/api/schemas/team.py +0 -0
  31. {agno-2.2.9 → agno-2.2.10}/agno/api/schemas/utils.py +0 -0
  32. {agno-2.2.9 → agno-2.2.10}/agno/api/schemas/workflows.py +0 -0
  33. {agno-2.2.9 → agno-2.2.10}/agno/api/settings.py +0 -0
  34. {agno-2.2.9 → agno-2.2.10}/agno/api/team.py +0 -0
  35. {agno-2.2.9 → agno-2.2.10}/agno/api/workflow.py +0 -0
  36. {agno-2.2.9 → agno-2.2.10}/agno/cloud/aws/base.py +0 -0
  37. {agno-2.2.9 → agno-2.2.10}/agno/cloud/aws/s3/__init__.py +0 -0
  38. {agno-2.2.9 → agno-2.2.10}/agno/cloud/aws/s3/api_client.py +0 -0
  39. {agno-2.2.9 → agno-2.2.10}/agno/cloud/aws/s3/bucket.py +0 -0
  40. {agno-2.2.9 → agno-2.2.10}/agno/cloud/aws/s3/object.py +0 -0
  41. {agno-2.2.9 → agno-2.2.10}/agno/culture/__init__.py +0 -0
  42. {agno-2.2.9 → agno-2.2.10}/agno/culture/manager.py +0 -0
  43. {agno-2.2.9 → agno-2.2.10}/agno/db/__init__.py +0 -0
  44. {agno-2.2.9 → agno-2.2.10}/agno/db/async_postgres/__init__.py +0 -0
  45. {agno-2.2.9 → agno-2.2.10}/agno/db/base.py +0 -0
  46. {agno-2.2.9 → agno-2.2.10}/agno/db/dynamo/__init__.py +0 -0
  47. {agno-2.2.9 → agno-2.2.10}/agno/db/dynamo/dynamo.py +0 -0
  48. {agno-2.2.9 → agno-2.2.10}/agno/db/dynamo/schemas.py +0 -0
  49. {agno-2.2.9 → agno-2.2.10}/agno/db/dynamo/utils.py +0 -0
  50. {agno-2.2.9 → agno-2.2.10}/agno/db/firestore/__init__.py +0 -0
  51. {agno-2.2.9 → agno-2.2.10}/agno/db/firestore/firestore.py +0 -0
  52. {agno-2.2.9 → agno-2.2.10}/agno/db/firestore/schemas.py +0 -0
  53. {agno-2.2.9 → agno-2.2.10}/agno/db/firestore/utils.py +0 -0
  54. {agno-2.2.9 → agno-2.2.10}/agno/db/gcs_json/__init__.py +0 -0
  55. {agno-2.2.9 → agno-2.2.10}/agno/db/gcs_json/gcs_json_db.py +0 -0
  56. {agno-2.2.9 → agno-2.2.10}/agno/db/gcs_json/utils.py +0 -0
  57. {agno-2.2.9 → agno-2.2.10}/agno/db/in_memory/__init__.py +0 -0
  58. {agno-2.2.9 → agno-2.2.10}/agno/db/in_memory/in_memory_db.py +0 -0
  59. {agno-2.2.9 → agno-2.2.10}/agno/db/in_memory/utils.py +0 -0
  60. {agno-2.2.9 → agno-2.2.10}/agno/db/json/__init__.py +0 -0
  61. {agno-2.2.9 → agno-2.2.10}/agno/db/json/json_db.py +0 -0
  62. {agno-2.2.9 → agno-2.2.10}/agno/db/json/utils.py +0 -0
  63. {agno-2.2.9 → agno-2.2.10}/agno/db/migrations/__init__.py +0 -0
  64. {agno-2.2.9 → agno-2.2.10}/agno/db/migrations/v1_to_v2.py +0 -0
  65. {agno-2.2.9 → agno-2.2.10}/agno/db/mongo/__init__.py +0 -0
  66. {agno-2.2.9 → agno-2.2.10}/agno/db/mongo/async_mongo.py +0 -0
  67. {agno-2.2.9 → agno-2.2.10}/agno/db/mongo/mongo.py +0 -0
  68. {agno-2.2.9 → agno-2.2.10}/agno/db/mongo/schemas.py +0 -0
  69. {agno-2.2.9 → agno-2.2.10}/agno/db/mongo/utils.py +0 -0
  70. {agno-2.2.9 → agno-2.2.10}/agno/db/mysql/__init__.py +0 -0
  71. {agno-2.2.9 → agno-2.2.10}/agno/db/mysql/mysql.py +0 -0
  72. {agno-2.2.9 → agno-2.2.10}/agno/db/mysql/schemas.py +0 -0
  73. {agno-2.2.9 → agno-2.2.10}/agno/db/mysql/utils.py +0 -0
  74. {agno-2.2.9 → agno-2.2.10}/agno/db/postgres/__init__.py +0 -0
  75. {agno-2.2.9 → agno-2.2.10}/agno/db/postgres/async_postgres.py +0 -0
  76. {agno-2.2.9 → agno-2.2.10}/agno/db/postgres/postgres.py +0 -0
  77. {agno-2.2.9 → agno-2.2.10}/agno/db/postgres/schemas.py +0 -0
  78. {agno-2.2.9 → agno-2.2.10}/agno/db/postgres/utils.py +0 -0
  79. {agno-2.2.9 → agno-2.2.10}/agno/db/redis/__init__.py +0 -0
  80. {agno-2.2.9 → agno-2.2.10}/agno/db/redis/redis.py +0 -0
  81. {agno-2.2.9 → agno-2.2.10}/agno/db/redis/schemas.py +0 -0
  82. {agno-2.2.9 → agno-2.2.10}/agno/db/redis/utils.py +0 -0
  83. {agno-2.2.9 → agno-2.2.10}/agno/db/schemas/__init__.py +0 -0
  84. {agno-2.2.9 → agno-2.2.10}/agno/db/schemas/culture.py +0 -0
  85. {agno-2.2.9 → agno-2.2.10}/agno/db/schemas/evals.py +0 -0
  86. {agno-2.2.9 → agno-2.2.10}/agno/db/schemas/knowledge.py +0 -0
  87. {agno-2.2.9 → agno-2.2.10}/agno/db/schemas/memory.py +0 -0
  88. {agno-2.2.9 → agno-2.2.10}/agno/db/schemas/metrics.py +0 -0
  89. {agno-2.2.9 → agno-2.2.10}/agno/db/singlestore/__init__.py +0 -0
  90. {agno-2.2.9 → agno-2.2.10}/agno/db/singlestore/schemas.py +0 -0
  91. {agno-2.2.9 → agno-2.2.10}/agno/db/singlestore/singlestore.py +0 -0
  92. {agno-2.2.9 → agno-2.2.10}/agno/db/singlestore/utils.py +0 -0
  93. {agno-2.2.9 → agno-2.2.10}/agno/db/sqlite/__init__.py +0 -0
  94. {agno-2.2.9 → agno-2.2.10}/agno/db/sqlite/async_sqlite.py +0 -0
  95. {agno-2.2.9 → agno-2.2.10}/agno/db/sqlite/schemas.py +0 -0
  96. {agno-2.2.9 → agno-2.2.10}/agno/db/sqlite/sqlite.py +0 -0
  97. {agno-2.2.9 → agno-2.2.10}/agno/db/sqlite/utils.py +0 -0
  98. {agno-2.2.9 → agno-2.2.10}/agno/db/surrealdb/__init__.py +0 -0
  99. {agno-2.2.9 → agno-2.2.10}/agno/db/surrealdb/metrics.py +0 -0
  100. {agno-2.2.9 → agno-2.2.10}/agno/db/surrealdb/models.py +0 -0
  101. {agno-2.2.9 → agno-2.2.10}/agno/db/surrealdb/queries.py +0 -0
  102. {agno-2.2.9 → agno-2.2.10}/agno/db/surrealdb/surrealdb.py +0 -0
  103. {agno-2.2.9 → agno-2.2.10}/agno/db/surrealdb/utils.py +0 -0
  104. {agno-2.2.9 → agno-2.2.10}/agno/db/utils.py +0 -0
  105. {agno-2.2.9 → agno-2.2.10}/agno/debug.py +0 -0
  106. {agno-2.2.9 → agno-2.2.10}/agno/eval/__init__.py +0 -0
  107. {agno-2.2.9 → agno-2.2.10}/agno/eval/accuracy.py +0 -0
  108. {agno-2.2.9 → agno-2.2.10}/agno/eval/performance.py +0 -0
  109. {agno-2.2.9 → agno-2.2.10}/agno/eval/reliability.py +0 -0
  110. {agno-2.2.9 → agno-2.2.10}/agno/eval/utils.py +0 -0
  111. {agno-2.2.9 → agno-2.2.10}/agno/exceptions.py +0 -0
  112. {agno-2.2.9 → agno-2.2.10}/agno/guardrails/__init__.py +0 -0
  113. {agno-2.2.9 → agno-2.2.10}/agno/guardrails/base.py +0 -0
  114. {agno-2.2.9 → agno-2.2.10}/agno/guardrails/openai.py +0 -0
  115. {agno-2.2.9 → agno-2.2.10}/agno/guardrails/pii.py +0 -0
  116. {agno-2.2.9 → agno-2.2.10}/agno/guardrails/prompt_injection.py +0 -0
  117. {agno-2.2.9 → agno-2.2.10}/agno/integrations/__init__.py +0 -0
  118. {agno-2.2.9 → agno-2.2.10}/agno/integrations/discord/__init__.py +0 -0
  119. {agno-2.2.9 → agno-2.2.10}/agno/integrations/discord/client.py +0 -0
  120. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/__init__.py +0 -0
  121. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/chunking/__init__.py +0 -0
  122. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/chunking/agentic.py +0 -0
  123. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/chunking/document.py +0 -0
  124. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/chunking/fixed.py +0 -0
  125. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/chunking/markdown.py +0 -0
  126. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/chunking/recursive.py +0 -0
  127. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/chunking/row.py +0 -0
  128. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/chunking/semantic.py +0 -0
  129. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/chunking/strategy.py +0 -0
  130. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/content.py +0 -0
  131. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/document/__init__.py +0 -0
  132. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/document/base.py +0 -0
  133. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/embedder/__init__.py +0 -0
  134. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/embedder/aws_bedrock.py +0 -0
  135. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/embedder/azure_openai.py +0 -0
  136. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/embedder/base.py +0 -0
  137. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/embedder/cohere.py +0 -0
  138. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/embedder/fastembed.py +0 -0
  139. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/embedder/fireworks.py +0 -0
  140. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/embedder/google.py +0 -0
  141. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/embedder/huggingface.py +0 -0
  142. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/embedder/jina.py +0 -0
  143. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/embedder/langdb.py +0 -0
  144. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/embedder/mistral.py +0 -0
  145. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/embedder/nebius.py +0 -0
  146. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/embedder/ollama.py +0 -0
  147. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/embedder/openai.py +0 -0
  148. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/embedder/sentence_transformer.py +0 -0
  149. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/embedder/together.py +0 -0
  150. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/embedder/vllm.py +0 -0
  151. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/embedder/voyageai.py +0 -0
  152. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/knowledge.py +0 -0
  153. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/reader/__init__.py +0 -0
  154. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/reader/arxiv_reader.py +0 -0
  155. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/reader/base.py +0 -0
  156. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/reader/csv_reader.py +0 -0
  157. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/reader/docx_reader.py +0 -0
  158. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/reader/field_labeled_csv_reader.py +0 -0
  159. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/reader/firecrawl_reader.py +0 -0
  160. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/reader/json_reader.py +0 -0
  161. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/reader/markdown_reader.py +0 -0
  162. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/reader/pdf_reader.py +0 -0
  163. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/reader/pptx_reader.py +0 -0
  164. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/reader/reader_factory.py +0 -0
  165. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/reader/s3_reader.py +0 -0
  166. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/reader/tavily_reader.py +0 -0
  167. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/reader/text_reader.py +0 -0
  168. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/reader/web_search_reader.py +0 -0
  169. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/reader/website_reader.py +0 -0
  170. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/reader/wikipedia_reader.py +0 -0
  171. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/reader/youtube_reader.py +0 -0
  172. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/remote_content/__init__.py +0 -0
  173. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/remote_content/remote_content.py +0 -0
  174. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/reranker/__init__.py +0 -0
  175. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/reranker/base.py +0 -0
  176. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/reranker/cohere.py +0 -0
  177. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/reranker/infinity.py +0 -0
  178. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/reranker/sentence_transformer.py +0 -0
  179. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/types.py +0 -0
  180. {agno-2.2.9 → agno-2.2.10}/agno/knowledge/utils.py +0 -0
  181. {agno-2.2.9 → agno-2.2.10}/agno/media.py +0 -0
  182. {agno-2.2.9 → agno-2.2.10}/agno/memory/__init__.py +0 -0
  183. {agno-2.2.9 → agno-2.2.10}/agno/memory/manager.py +0 -0
  184. {agno-2.2.9 → agno-2.2.10}/agno/models/__init__.py +0 -0
  185. {agno-2.2.9 → agno-2.2.10}/agno/models/aimlapi/__init__.py +0 -0
  186. {agno-2.2.9 → agno-2.2.10}/agno/models/aimlapi/aimlapi.py +0 -0
  187. {agno-2.2.9 → agno-2.2.10}/agno/models/anthropic/__init__.py +0 -0
  188. {agno-2.2.9 → agno-2.2.10}/agno/models/anthropic/claude.py +0 -0
  189. {agno-2.2.9 → agno-2.2.10}/agno/models/aws/__init__.py +0 -0
  190. {agno-2.2.9 → agno-2.2.10}/agno/models/aws/bedrock.py +0 -0
  191. {agno-2.2.9 → agno-2.2.10}/agno/models/aws/claude.py +0 -0
  192. {agno-2.2.9 → agno-2.2.10}/agno/models/azure/__init__.py +0 -0
  193. {agno-2.2.9 → agno-2.2.10}/agno/models/azure/ai_foundry.py +0 -0
  194. {agno-2.2.9 → agno-2.2.10}/agno/models/azure/openai_chat.py +0 -0
  195. {agno-2.2.9 → agno-2.2.10}/agno/models/base.py +0 -0
  196. {agno-2.2.9 → agno-2.2.10}/agno/models/cerebras/__init__.py +0 -0
  197. {agno-2.2.9 → agno-2.2.10}/agno/models/cerebras/cerebras.py +0 -0
  198. {agno-2.2.9 → agno-2.2.10}/agno/models/cerebras/cerebras_openai.py +0 -0
  199. {agno-2.2.9 → agno-2.2.10}/agno/models/cohere/__init__.py +0 -0
  200. {agno-2.2.9 → agno-2.2.10}/agno/models/cohere/chat.py +0 -0
  201. {agno-2.2.9 → agno-2.2.10}/agno/models/cometapi/__init__.py +0 -0
  202. {agno-2.2.9 → agno-2.2.10}/agno/models/cometapi/cometapi.py +0 -0
  203. {agno-2.2.9 → agno-2.2.10}/agno/models/dashscope/__init__.py +0 -0
  204. {agno-2.2.9 → agno-2.2.10}/agno/models/dashscope/dashscope.py +0 -0
  205. {agno-2.2.9 → agno-2.2.10}/agno/models/deepinfra/__init__.py +0 -0
  206. {agno-2.2.9 → agno-2.2.10}/agno/models/deepinfra/deepinfra.py +0 -0
  207. {agno-2.2.9 → agno-2.2.10}/agno/models/deepseek/__init__.py +0 -0
  208. {agno-2.2.9 → agno-2.2.10}/agno/models/deepseek/deepseek.py +0 -0
  209. {agno-2.2.9 → agno-2.2.10}/agno/models/defaults.py +0 -0
  210. {agno-2.2.9 → agno-2.2.10}/agno/models/fireworks/__init__.py +0 -0
  211. {agno-2.2.9 → agno-2.2.10}/agno/models/fireworks/fireworks.py +0 -0
  212. {agno-2.2.9 → agno-2.2.10}/agno/models/google/__init__.py +0 -0
  213. {agno-2.2.9 → agno-2.2.10}/agno/models/google/gemini.py +0 -0
  214. {agno-2.2.9 → agno-2.2.10}/agno/models/groq/__init__.py +0 -0
  215. {agno-2.2.9 → agno-2.2.10}/agno/models/groq/groq.py +0 -0
  216. {agno-2.2.9 → agno-2.2.10}/agno/models/huggingface/__init__.py +0 -0
  217. {agno-2.2.9 → agno-2.2.10}/agno/models/huggingface/huggingface.py +0 -0
  218. {agno-2.2.9 → agno-2.2.10}/agno/models/ibm/__init__.py +0 -0
  219. {agno-2.2.9 → agno-2.2.10}/agno/models/ibm/watsonx.py +0 -0
  220. {agno-2.2.9 → agno-2.2.10}/agno/models/internlm/__init__.py +0 -0
  221. {agno-2.2.9 → agno-2.2.10}/agno/models/internlm/internlm.py +0 -0
  222. {agno-2.2.9 → agno-2.2.10}/agno/models/langdb/__init__.py +0 -0
  223. {agno-2.2.9 → agno-2.2.10}/agno/models/langdb/langdb.py +0 -0
  224. {agno-2.2.9 → agno-2.2.10}/agno/models/litellm/__init__.py +0 -0
  225. {agno-2.2.9 → agno-2.2.10}/agno/models/litellm/chat.py +0 -0
  226. {agno-2.2.9 → agno-2.2.10}/agno/models/litellm/litellm_openai.py +0 -0
  227. {agno-2.2.9 → agno-2.2.10}/agno/models/llama_cpp/__init__.py +0 -0
  228. {agno-2.2.9 → agno-2.2.10}/agno/models/llama_cpp/llama_cpp.py +0 -0
  229. {agno-2.2.9 → agno-2.2.10}/agno/models/lmstudio/__init__.py +0 -0
  230. {agno-2.2.9 → agno-2.2.10}/agno/models/lmstudio/lmstudio.py +0 -0
  231. {agno-2.2.9 → agno-2.2.10}/agno/models/message.py +0 -0
  232. {agno-2.2.9 → agno-2.2.10}/agno/models/meta/__init__.py +0 -0
  233. {agno-2.2.9 → agno-2.2.10}/agno/models/meta/llama.py +0 -0
  234. {agno-2.2.9 → agno-2.2.10}/agno/models/meta/llama_openai.py +0 -0
  235. {agno-2.2.9 → agno-2.2.10}/agno/models/metrics.py +0 -0
  236. {agno-2.2.9 → agno-2.2.10}/agno/models/mistral/__init__.py +0 -0
  237. {agno-2.2.9 → agno-2.2.10}/agno/models/mistral/mistral.py +0 -0
  238. {agno-2.2.9 → agno-2.2.10}/agno/models/nebius/__init__.py +0 -0
  239. {agno-2.2.9 → agno-2.2.10}/agno/models/nebius/nebius.py +0 -0
  240. {agno-2.2.9 → agno-2.2.10}/agno/models/nexus/__init__.py +0 -0
  241. {agno-2.2.9 → agno-2.2.10}/agno/models/nexus/nexus.py +0 -0
  242. {agno-2.2.9 → agno-2.2.10}/agno/models/nvidia/__init__.py +0 -0
  243. {agno-2.2.9 → agno-2.2.10}/agno/models/nvidia/nvidia.py +0 -0
  244. {agno-2.2.9 → agno-2.2.10}/agno/models/ollama/__init__.py +0 -0
  245. {agno-2.2.9 → agno-2.2.10}/agno/models/ollama/chat.py +0 -0
  246. {agno-2.2.9 → agno-2.2.10}/agno/models/openai/__init__.py +0 -0
  247. {agno-2.2.9 → agno-2.2.10}/agno/models/openai/chat.py +0 -0
  248. {agno-2.2.9 → agno-2.2.10}/agno/models/openai/like.py +0 -0
  249. {agno-2.2.9 → agno-2.2.10}/agno/models/openai/responses.py +0 -0
  250. {agno-2.2.9 → agno-2.2.10}/agno/models/openrouter/__init__.py +0 -0
  251. {agno-2.2.9 → agno-2.2.10}/agno/models/openrouter/openrouter.py +0 -0
  252. {agno-2.2.9 → agno-2.2.10}/agno/models/perplexity/__init__.py +0 -0
  253. {agno-2.2.9 → agno-2.2.10}/agno/models/perplexity/perplexity.py +0 -0
  254. {agno-2.2.9 → agno-2.2.10}/agno/models/portkey/__init__.py +0 -0
  255. {agno-2.2.9 → agno-2.2.10}/agno/models/portkey/portkey.py +0 -0
  256. {agno-2.2.9 → agno-2.2.10}/agno/models/requesty/__init__.py +0 -0
  257. {agno-2.2.9 → agno-2.2.10}/agno/models/requesty/requesty.py +0 -0
  258. {agno-2.2.9 → agno-2.2.10}/agno/models/response.py +0 -0
  259. {agno-2.2.9 → agno-2.2.10}/agno/models/sambanova/__init__.py +0 -0
  260. {agno-2.2.9 → agno-2.2.10}/agno/models/sambanova/sambanova.py +0 -0
  261. {agno-2.2.9 → agno-2.2.10}/agno/models/siliconflow/__init__.py +0 -0
  262. {agno-2.2.9 → agno-2.2.10}/agno/models/siliconflow/siliconflow.py +0 -0
  263. {agno-2.2.9 → agno-2.2.10}/agno/models/together/__init__.py +0 -0
  264. {agno-2.2.9 → agno-2.2.10}/agno/models/together/together.py +0 -0
  265. {agno-2.2.9 → agno-2.2.10}/agno/models/utils.py +0 -0
  266. {agno-2.2.9 → agno-2.2.10}/agno/models/vercel/__init__.py +0 -0
  267. {agno-2.2.9 → agno-2.2.10}/agno/models/vercel/v0.py +0 -0
  268. {agno-2.2.9 → agno-2.2.10}/agno/models/vertexai/__init__.py +0 -0
  269. {agno-2.2.9 → agno-2.2.10}/agno/models/vertexai/claude.py +0 -0
  270. {agno-2.2.9 → agno-2.2.10}/agno/models/vllm/__init__.py +0 -0
  271. {agno-2.2.9 → agno-2.2.10}/agno/models/vllm/vllm.py +0 -0
  272. {agno-2.2.9 → agno-2.2.10}/agno/models/xai/__init__.py +0 -0
  273. {agno-2.2.9 → agno-2.2.10}/agno/models/xai/xai.py +0 -0
  274. {agno-2.2.9 → agno-2.2.10}/agno/os/__init__.py +0 -0
  275. {agno-2.2.9 → agno-2.2.10}/agno/os/auth.py +0 -0
  276. {agno-2.2.9 → agno-2.2.10}/agno/os/config.py +0 -0
  277. {agno-2.2.9 → agno-2.2.10}/agno/os/interfaces/__init__.py +0 -0
  278. {agno-2.2.9 → agno-2.2.10}/agno/os/interfaces/a2a/__init__.py +0 -0
  279. {agno-2.2.9 → agno-2.2.10}/agno/os/interfaces/a2a/a2a.py +0 -0
  280. {agno-2.2.9 → agno-2.2.10}/agno/os/interfaces/a2a/router.py +0 -0
  281. {agno-2.2.9 → agno-2.2.10}/agno/os/interfaces/a2a/utils.py +0 -0
  282. {agno-2.2.9 → agno-2.2.10}/agno/os/interfaces/agui/__init__.py +0 -0
  283. {agno-2.2.9 → agno-2.2.10}/agno/os/interfaces/agui/agui.py +0 -0
  284. {agno-2.2.9 → agno-2.2.10}/agno/os/interfaces/agui/router.py +0 -0
  285. {agno-2.2.9 → agno-2.2.10}/agno/os/interfaces/agui/utils.py +0 -0
  286. {agno-2.2.9 → agno-2.2.10}/agno/os/interfaces/base.py +0 -0
  287. {agno-2.2.9 → agno-2.2.10}/agno/os/interfaces/slack/__init__.py +0 -0
  288. {agno-2.2.9 → agno-2.2.10}/agno/os/interfaces/slack/router.py +0 -0
  289. {agno-2.2.9 → agno-2.2.10}/agno/os/interfaces/slack/security.py +0 -0
  290. {agno-2.2.9 → agno-2.2.10}/agno/os/interfaces/slack/slack.py +0 -0
  291. {agno-2.2.9 → agno-2.2.10}/agno/os/interfaces/whatsapp/__init__.py +0 -0
  292. {agno-2.2.9 → agno-2.2.10}/agno/os/interfaces/whatsapp/router.py +0 -0
  293. {agno-2.2.9 → agno-2.2.10}/agno/os/interfaces/whatsapp/security.py +0 -0
  294. {agno-2.2.9 → agno-2.2.10}/agno/os/interfaces/whatsapp/whatsapp.py +0 -0
  295. {agno-2.2.9 → agno-2.2.10}/agno/os/mcp.py +0 -0
  296. {agno-2.2.9 → agno-2.2.10}/agno/os/middleware/__init__.py +0 -0
  297. {agno-2.2.9 → agno-2.2.10}/agno/os/middleware/jwt.py +0 -0
  298. {agno-2.2.9 → agno-2.2.10}/agno/os/router.py +0 -0
  299. {agno-2.2.9 → agno-2.2.10}/agno/os/routers/__init__.py +0 -0
  300. {agno-2.2.9 → agno-2.2.10}/agno/os/routers/evals/__init__.py +0 -0
  301. {agno-2.2.9 → agno-2.2.10}/agno/os/routers/evals/evals.py +0 -0
  302. {agno-2.2.9 → agno-2.2.10}/agno/os/routers/evals/schemas.py +0 -0
  303. {agno-2.2.9 → agno-2.2.10}/agno/os/routers/evals/utils.py +0 -0
  304. {agno-2.2.9 → agno-2.2.10}/agno/os/routers/health.py +0 -0
  305. {agno-2.2.9 → agno-2.2.10}/agno/os/routers/home.py +0 -0
  306. {agno-2.2.9 → agno-2.2.10}/agno/os/routers/knowledge/__init__.py +0 -0
  307. {agno-2.2.9 → agno-2.2.10}/agno/os/routers/knowledge/knowledge.py +0 -0
  308. {agno-2.2.9 → agno-2.2.10}/agno/os/routers/knowledge/schemas.py +0 -0
  309. {agno-2.2.9 → agno-2.2.10}/agno/os/routers/memory/__init__.py +0 -0
  310. {agno-2.2.9 → agno-2.2.10}/agno/os/routers/memory/memory.py +0 -0
  311. {agno-2.2.9 → agno-2.2.10}/agno/os/routers/memory/schemas.py +0 -0
  312. {agno-2.2.9 → agno-2.2.10}/agno/os/routers/metrics/__init__.py +0 -0
  313. {agno-2.2.9 → agno-2.2.10}/agno/os/routers/metrics/metrics.py +0 -0
  314. {agno-2.2.9 → agno-2.2.10}/agno/os/routers/metrics/schemas.py +0 -0
  315. {agno-2.2.9 → agno-2.2.10}/agno/os/routers/session/__init__.py +0 -0
  316. {agno-2.2.9 → agno-2.2.10}/agno/os/routers/session/session.py +0 -0
  317. {agno-2.2.9 → agno-2.2.10}/agno/os/schema.py +0 -0
  318. {agno-2.2.9 → agno-2.2.10}/agno/os/settings.py +0 -0
  319. {agno-2.2.9 → agno-2.2.10}/agno/os/utils.py +0 -0
  320. {agno-2.2.9 → agno-2.2.10}/agno/py.typed +0 -0
  321. {agno-2.2.9 → agno-2.2.10}/agno/reasoning/__init__.py +0 -0
  322. {agno-2.2.9 → agno-2.2.10}/agno/reasoning/anthropic.py +0 -0
  323. {agno-2.2.9 → agno-2.2.10}/agno/reasoning/azure_ai_foundry.py +0 -0
  324. {agno-2.2.9 → agno-2.2.10}/agno/reasoning/deepseek.py +0 -0
  325. {agno-2.2.9 → agno-2.2.10}/agno/reasoning/default.py +0 -0
  326. {agno-2.2.9 → agno-2.2.10}/agno/reasoning/gemini.py +0 -0
  327. {agno-2.2.9 → agno-2.2.10}/agno/reasoning/groq.py +0 -0
  328. {agno-2.2.9 → agno-2.2.10}/agno/reasoning/helpers.py +0 -0
  329. {agno-2.2.9 → agno-2.2.10}/agno/reasoning/ollama.py +0 -0
  330. {agno-2.2.9 → agno-2.2.10}/agno/reasoning/openai.py +0 -0
  331. {agno-2.2.9 → agno-2.2.10}/agno/reasoning/step.py +0 -0
  332. {agno-2.2.9 → agno-2.2.10}/agno/reasoning/vertexai.py +0 -0
  333. {agno-2.2.9 → agno-2.2.10}/agno/run/__init__.py +0 -0
  334. {agno-2.2.9 → agno-2.2.10}/agno/run/agent.py +0 -0
  335. {agno-2.2.9 → agno-2.2.10}/agno/run/base.py +0 -0
  336. {agno-2.2.9 → agno-2.2.10}/agno/run/cancel.py +0 -0
  337. {agno-2.2.9 → agno-2.2.10}/agno/run/messages.py +0 -0
  338. {agno-2.2.9 → agno-2.2.10}/agno/run/team.py +0 -0
  339. {agno-2.2.9 → agno-2.2.10}/agno/run/workflow.py +0 -0
  340. {agno-2.2.9 → agno-2.2.10}/agno/session/__init__.py +0 -0
  341. {agno-2.2.9 → agno-2.2.10}/agno/session/agent.py +0 -0
  342. {agno-2.2.9 → agno-2.2.10}/agno/session/summary.py +0 -0
  343. {agno-2.2.9 → agno-2.2.10}/agno/session/team.py +0 -0
  344. {agno-2.2.9 → agno-2.2.10}/agno/session/workflow.py +0 -0
  345. {agno-2.2.9 → agno-2.2.10}/agno/team/__init__.py +0 -0
  346. {agno-2.2.9 → agno-2.2.10}/agno/tools/__init__.py +0 -0
  347. {agno-2.2.9 → agno-2.2.10}/agno/tools/agentql.py +0 -0
  348. {agno-2.2.9 → agno-2.2.10}/agno/tools/airflow.py +0 -0
  349. {agno-2.2.9 → agno-2.2.10}/agno/tools/api.py +0 -0
  350. {agno-2.2.9 → agno-2.2.10}/agno/tools/apify.py +0 -0
  351. {agno-2.2.9 → agno-2.2.10}/agno/tools/arxiv.py +0 -0
  352. {agno-2.2.9 → agno-2.2.10}/agno/tools/aws_lambda.py +0 -0
  353. {agno-2.2.9 → agno-2.2.10}/agno/tools/aws_ses.py +0 -0
  354. {agno-2.2.9 → agno-2.2.10}/agno/tools/baidusearch.py +0 -0
  355. {agno-2.2.9 → agno-2.2.10}/agno/tools/bitbucket.py +0 -0
  356. {agno-2.2.9 → agno-2.2.10}/agno/tools/brandfetch.py +0 -0
  357. {agno-2.2.9 → agno-2.2.10}/agno/tools/bravesearch.py +0 -0
  358. {agno-2.2.9 → agno-2.2.10}/agno/tools/brightdata.py +0 -0
  359. {agno-2.2.9 → agno-2.2.10}/agno/tools/browserbase.py +0 -0
  360. {agno-2.2.9 → agno-2.2.10}/agno/tools/calcom.py +0 -0
  361. {agno-2.2.9 → agno-2.2.10}/agno/tools/calculator.py +0 -0
  362. {agno-2.2.9 → agno-2.2.10}/agno/tools/cartesia.py +0 -0
  363. {agno-2.2.9 → agno-2.2.10}/agno/tools/clickup.py +0 -0
  364. {agno-2.2.9 → agno-2.2.10}/agno/tools/confluence.py +0 -0
  365. {agno-2.2.9 → agno-2.2.10}/agno/tools/crawl4ai.py +0 -0
  366. {agno-2.2.9 → agno-2.2.10}/agno/tools/csv_toolkit.py +0 -0
  367. {agno-2.2.9 → agno-2.2.10}/agno/tools/dalle.py +0 -0
  368. {agno-2.2.9 → agno-2.2.10}/agno/tools/daytona.py +0 -0
  369. {agno-2.2.9 → agno-2.2.10}/agno/tools/decorator.py +0 -0
  370. {agno-2.2.9 → agno-2.2.10}/agno/tools/desi_vocal.py +0 -0
  371. {agno-2.2.9 → agno-2.2.10}/agno/tools/discord.py +0 -0
  372. {agno-2.2.9 → agno-2.2.10}/agno/tools/docker.py +0 -0
  373. {agno-2.2.9 → agno-2.2.10}/agno/tools/duckdb.py +0 -0
  374. {agno-2.2.9 → agno-2.2.10}/agno/tools/duckduckgo.py +0 -0
  375. {agno-2.2.9 → agno-2.2.10}/agno/tools/e2b.py +0 -0
  376. {agno-2.2.9 → agno-2.2.10}/agno/tools/eleven_labs.py +0 -0
  377. {agno-2.2.9 → agno-2.2.10}/agno/tools/email.py +0 -0
  378. {agno-2.2.9 → agno-2.2.10}/agno/tools/evm.py +0 -0
  379. {agno-2.2.9 → agno-2.2.10}/agno/tools/exa.py +0 -0
  380. {agno-2.2.9 → agno-2.2.10}/agno/tools/fal.py +0 -0
  381. {agno-2.2.9 → agno-2.2.10}/agno/tools/file.py +0 -0
  382. {agno-2.2.9 → agno-2.2.10}/agno/tools/file_generation.py +0 -0
  383. {agno-2.2.9 → agno-2.2.10}/agno/tools/financial_datasets.py +0 -0
  384. {agno-2.2.9 → agno-2.2.10}/agno/tools/firecrawl.py +0 -0
  385. {agno-2.2.9 → agno-2.2.10}/agno/tools/function.py +0 -0
  386. {agno-2.2.9 → agno-2.2.10}/agno/tools/giphy.py +0 -0
  387. {agno-2.2.9 → agno-2.2.10}/agno/tools/github.py +0 -0
  388. {agno-2.2.9 → agno-2.2.10}/agno/tools/gmail.py +0 -0
  389. {agno-2.2.9 → agno-2.2.10}/agno/tools/google_bigquery.py +0 -0
  390. {agno-2.2.9 → agno-2.2.10}/agno/tools/google_drive.py +0 -0
  391. {agno-2.2.9 → agno-2.2.10}/agno/tools/google_maps.py +0 -0
  392. {agno-2.2.9 → agno-2.2.10}/agno/tools/googlecalendar.py +0 -0
  393. {agno-2.2.9 → agno-2.2.10}/agno/tools/googlesearch.py +0 -0
  394. {agno-2.2.9 → agno-2.2.10}/agno/tools/googlesheets.py +0 -0
  395. {agno-2.2.9 → agno-2.2.10}/agno/tools/hackernews.py +0 -0
  396. {agno-2.2.9 → agno-2.2.10}/agno/tools/jina.py +0 -0
  397. {agno-2.2.9 → agno-2.2.10}/agno/tools/jira.py +0 -0
  398. {agno-2.2.9 → agno-2.2.10}/agno/tools/knowledge.py +0 -0
  399. {agno-2.2.9 → agno-2.2.10}/agno/tools/linear.py +0 -0
  400. {agno-2.2.9 → agno-2.2.10}/agno/tools/linkup.py +0 -0
  401. {agno-2.2.9 → agno-2.2.10}/agno/tools/local_file_system.py +0 -0
  402. {agno-2.2.9 → agno-2.2.10}/agno/tools/lumalab.py +0 -0
  403. {agno-2.2.9 → agno-2.2.10}/agno/tools/mcp/__init__.py +0 -0
  404. {agno-2.2.9 → agno-2.2.10}/agno/tools/mcp/mcp.py +0 -0
  405. {agno-2.2.9 → agno-2.2.10}/agno/tools/mcp/multi_mcp.py +0 -0
  406. {agno-2.2.9 → agno-2.2.10}/agno/tools/mcp/params.py +0 -0
  407. {agno-2.2.9 → agno-2.2.10}/agno/tools/mcp_toolbox.py +0 -0
  408. {agno-2.2.9 → agno-2.2.10}/agno/tools/mem0.py +0 -0
  409. {agno-2.2.9 → agno-2.2.10}/agno/tools/memori.py +0 -0
  410. {agno-2.2.9 → agno-2.2.10}/agno/tools/memory.py +0 -0
  411. {agno-2.2.9 → agno-2.2.10}/agno/tools/mlx_transcribe.py +0 -0
  412. {agno-2.2.9 → agno-2.2.10}/agno/tools/models/__init__.py +0 -0
  413. {agno-2.2.9 → agno-2.2.10}/agno/tools/models/azure_openai.py +0 -0
  414. {agno-2.2.9 → agno-2.2.10}/agno/tools/models/gemini.py +0 -0
  415. {agno-2.2.9 → agno-2.2.10}/agno/tools/models/groq.py +0 -0
  416. {agno-2.2.9 → agno-2.2.10}/agno/tools/models/morph.py +0 -0
  417. {agno-2.2.9 → agno-2.2.10}/agno/tools/models/nebius.py +0 -0
  418. {agno-2.2.9 → agno-2.2.10}/agno/tools/models_labs.py +0 -0
  419. {agno-2.2.9 → agno-2.2.10}/agno/tools/moviepy_video.py +0 -0
  420. {agno-2.2.9 → agno-2.2.10}/agno/tools/neo4j.py +0 -0
  421. {agno-2.2.9 → agno-2.2.10}/agno/tools/newspaper.py +0 -0
  422. {agno-2.2.9 → agno-2.2.10}/agno/tools/newspaper4k.py +0 -0
  423. {agno-2.2.9 → agno-2.2.10}/agno/tools/notion.py +0 -0
  424. {agno-2.2.9 → agno-2.2.10}/agno/tools/openai.py +0 -0
  425. {agno-2.2.9 → agno-2.2.10}/agno/tools/openbb.py +0 -0
  426. {agno-2.2.9 → agno-2.2.10}/agno/tools/opencv.py +0 -0
  427. {agno-2.2.9 → agno-2.2.10}/agno/tools/openweather.py +0 -0
  428. {agno-2.2.9 → agno-2.2.10}/agno/tools/oxylabs.py +0 -0
  429. {agno-2.2.9 → agno-2.2.10}/agno/tools/pandas.py +0 -0
  430. {agno-2.2.9 → agno-2.2.10}/agno/tools/postgres.py +0 -0
  431. {agno-2.2.9 → agno-2.2.10}/agno/tools/pubmed.py +0 -0
  432. {agno-2.2.9 → agno-2.2.10}/agno/tools/python.py +0 -0
  433. {agno-2.2.9 → agno-2.2.10}/agno/tools/reasoning.py +0 -0
  434. {agno-2.2.9 → agno-2.2.10}/agno/tools/reddit.py +0 -0
  435. {agno-2.2.9 → agno-2.2.10}/agno/tools/replicate.py +0 -0
  436. {agno-2.2.9 → agno-2.2.10}/agno/tools/resend.py +0 -0
  437. {agno-2.2.9 → agno-2.2.10}/agno/tools/scrapegraph.py +0 -0
  438. {agno-2.2.9 → agno-2.2.10}/agno/tools/searxng.py +0 -0
  439. {agno-2.2.9 → agno-2.2.10}/agno/tools/serpapi.py +0 -0
  440. {agno-2.2.9 → agno-2.2.10}/agno/tools/serper.py +0 -0
  441. {agno-2.2.9 → agno-2.2.10}/agno/tools/shell.py +0 -0
  442. {agno-2.2.9 → agno-2.2.10}/agno/tools/slack.py +0 -0
  443. {agno-2.2.9 → agno-2.2.10}/agno/tools/sleep.py +0 -0
  444. {agno-2.2.9 → agno-2.2.10}/agno/tools/spider.py +0 -0
  445. {agno-2.2.9 → agno-2.2.10}/agno/tools/sql.py +0 -0
  446. {agno-2.2.9 → agno-2.2.10}/agno/tools/streamlit/__init__.py +0 -0
  447. {agno-2.2.9 → agno-2.2.10}/agno/tools/streamlit/components.py +0 -0
  448. {agno-2.2.9 → agno-2.2.10}/agno/tools/tavily.py +0 -0
  449. {agno-2.2.9 → agno-2.2.10}/agno/tools/telegram.py +0 -0
  450. {agno-2.2.9 → agno-2.2.10}/agno/tools/todoist.py +0 -0
  451. {agno-2.2.9 → agno-2.2.10}/agno/tools/tool_registry.py +0 -0
  452. {agno-2.2.9 → agno-2.2.10}/agno/tools/toolkit.py +0 -0
  453. {agno-2.2.9 → agno-2.2.10}/agno/tools/trafilatura.py +0 -0
  454. {agno-2.2.9 → agno-2.2.10}/agno/tools/trello.py +0 -0
  455. {agno-2.2.9 → agno-2.2.10}/agno/tools/twilio.py +0 -0
  456. {agno-2.2.9 → agno-2.2.10}/agno/tools/user_control_flow.py +0 -0
  457. {agno-2.2.9 → agno-2.2.10}/agno/tools/valyu.py +0 -0
  458. {agno-2.2.9 → agno-2.2.10}/agno/tools/visualization.py +0 -0
  459. {agno-2.2.9 → agno-2.2.10}/agno/tools/webbrowser.py +0 -0
  460. {agno-2.2.9 → agno-2.2.10}/agno/tools/webex.py +0 -0
  461. {agno-2.2.9 → agno-2.2.10}/agno/tools/website.py +0 -0
  462. {agno-2.2.9 → agno-2.2.10}/agno/tools/webtools.py +0 -0
  463. {agno-2.2.9 → agno-2.2.10}/agno/tools/whatsapp.py +0 -0
  464. {agno-2.2.9 → agno-2.2.10}/agno/tools/wikipedia.py +0 -0
  465. {agno-2.2.9 → agno-2.2.10}/agno/tools/workflow.py +0 -0
  466. {agno-2.2.9 → agno-2.2.10}/agno/tools/x.py +0 -0
  467. {agno-2.2.9 → agno-2.2.10}/agno/tools/yfinance.py +0 -0
  468. {agno-2.2.9 → agno-2.2.10}/agno/tools/youtube.py +0 -0
  469. {agno-2.2.9 → agno-2.2.10}/agno/tools/zendesk.py +0 -0
  470. {agno-2.2.9 → agno-2.2.10}/agno/tools/zep.py +0 -0
  471. {agno-2.2.9 → agno-2.2.10}/agno/tools/zoom.py +0 -0
  472. {agno-2.2.9 → agno-2.2.10}/agno/utils/__init__.py +0 -0
  473. {agno-2.2.9 → agno-2.2.10}/agno/utils/agent.py +0 -0
  474. {agno-2.2.9 → agno-2.2.10}/agno/utils/audio.py +0 -0
  475. {agno-2.2.9 → agno-2.2.10}/agno/utils/certs.py +0 -0
  476. {agno-2.2.9 → agno-2.2.10}/agno/utils/code_execution.py +0 -0
  477. {agno-2.2.9 → agno-2.2.10}/agno/utils/common.py +0 -0
  478. {agno-2.2.9 → agno-2.2.10}/agno/utils/dttm.py +0 -0
  479. {agno-2.2.9 → agno-2.2.10}/agno/utils/enum.py +0 -0
  480. {agno-2.2.9 → agno-2.2.10}/agno/utils/env.py +0 -0
  481. {agno-2.2.9 → agno-2.2.10}/agno/utils/events.py +0 -0
  482. {agno-2.2.9 → agno-2.2.10}/agno/utils/format_str.py +0 -0
  483. {agno-2.2.9 → agno-2.2.10}/agno/utils/functions.py +0 -0
  484. {agno-2.2.9 → agno-2.2.10}/agno/utils/gemini.py +0 -0
  485. {agno-2.2.9 → agno-2.2.10}/agno/utils/hooks.py +0 -0
  486. {agno-2.2.9 → agno-2.2.10}/agno/utils/http.py +0 -0
  487. {agno-2.2.9 → agno-2.2.10}/agno/utils/json_schema.py +0 -0
  488. {agno-2.2.9 → agno-2.2.10}/agno/utils/knowledge.py +0 -0
  489. {agno-2.2.9 → agno-2.2.10}/agno/utils/location.py +0 -0
  490. {agno-2.2.9 → agno-2.2.10}/agno/utils/log.py +0 -0
  491. {agno-2.2.9 → agno-2.2.10}/agno/utils/mcp.py +0 -0
  492. {agno-2.2.9 → agno-2.2.10}/agno/utils/media.py +0 -0
  493. {agno-2.2.9 → agno-2.2.10}/agno/utils/merge_dict.py +0 -0
  494. {agno-2.2.9 → agno-2.2.10}/agno/utils/message.py +0 -0
  495. {agno-2.2.9 → agno-2.2.10}/agno/utils/models/__init__.py +0 -0
  496. {agno-2.2.9 → agno-2.2.10}/agno/utils/models/ai_foundry.py +0 -0
  497. {agno-2.2.9 → agno-2.2.10}/agno/utils/models/claude.py +0 -0
  498. {agno-2.2.9 → agno-2.2.10}/agno/utils/models/cohere.py +0 -0
  499. {agno-2.2.9 → agno-2.2.10}/agno/utils/models/llama.py +0 -0
  500. {agno-2.2.9 → agno-2.2.10}/agno/utils/models/mistral.py +0 -0
  501. {agno-2.2.9 → agno-2.2.10}/agno/utils/models/openai_responses.py +0 -0
  502. {agno-2.2.9 → agno-2.2.10}/agno/utils/models/schema_utils.py +0 -0
  503. {agno-2.2.9 → agno-2.2.10}/agno/utils/models/watsonx.py +0 -0
  504. {agno-2.2.9 → agno-2.2.10}/agno/utils/openai.py +0 -0
  505. {agno-2.2.9 → agno-2.2.10}/agno/utils/pickle.py +0 -0
  506. {agno-2.2.9 → agno-2.2.10}/agno/utils/pprint.py +0 -0
  507. {agno-2.2.9 → agno-2.2.10}/agno/utils/print_response/__init__.py +0 -0
  508. {agno-2.2.9 → agno-2.2.10}/agno/utils/print_response/agent.py +0 -0
  509. {agno-2.2.9 → agno-2.2.10}/agno/utils/print_response/team.py +0 -0
  510. {agno-2.2.9 → agno-2.2.10}/agno/utils/print_response/workflow.py +0 -0
  511. {agno-2.2.9 → agno-2.2.10}/agno/utils/prompts.py +0 -0
  512. {agno-2.2.9 → agno-2.2.10}/agno/utils/reasoning.py +0 -0
  513. {agno-2.2.9 → agno-2.2.10}/agno/utils/response.py +0 -0
  514. {agno-2.2.9 → agno-2.2.10}/agno/utils/response_iterator.py +0 -0
  515. {agno-2.2.9 → agno-2.2.10}/agno/utils/safe_formatter.py +0 -0
  516. {agno-2.2.9 → agno-2.2.10}/agno/utils/serialize.py +0 -0
  517. {agno-2.2.9 → agno-2.2.10}/agno/utils/shell.py +0 -0
  518. {agno-2.2.9 → agno-2.2.10}/agno/utils/streamlit.py +0 -0
  519. {agno-2.2.9 → agno-2.2.10}/agno/utils/string.py +0 -0
  520. {agno-2.2.9 → agno-2.2.10}/agno/utils/team.py +0 -0
  521. {agno-2.2.9 → agno-2.2.10}/agno/utils/timer.py +0 -0
  522. {agno-2.2.9 → agno-2.2.10}/agno/utils/tools.py +0 -0
  523. {agno-2.2.9 → agno-2.2.10}/agno/utils/web.py +0 -0
  524. {agno-2.2.9 → agno-2.2.10}/agno/utils/whatsapp.py +0 -0
  525. {agno-2.2.9 → agno-2.2.10}/agno/utils/yaml_io.py +0 -0
  526. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/__init__.py +0 -0
  527. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/base.py +0 -0
  528. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/cassandra/__init__.py +0 -0
  529. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/cassandra/cassandra.py +0 -0
  530. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/cassandra/extra_param_mixin.py +0 -0
  531. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/cassandra/index.py +0 -0
  532. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/chroma/__init__.py +0 -0
  533. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/chroma/chromadb.py +0 -0
  534. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/clickhouse/__init__.py +0 -0
  535. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/clickhouse/clickhousedb.py +0 -0
  536. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/clickhouse/index.py +0 -0
  537. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/couchbase/__init__.py +0 -0
  538. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/couchbase/couchbase.py +0 -0
  539. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/distance.py +0 -0
  540. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/lancedb/__init__.py +0 -0
  541. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/lancedb/lance_db.py +0 -0
  542. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/langchaindb/__init__.py +0 -0
  543. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/langchaindb/langchaindb.py +0 -0
  544. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/lightrag/__init__.py +0 -0
  545. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/lightrag/lightrag.py +0 -0
  546. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/llamaindex/__init__.py +0 -0
  547. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/llamaindex/llamaindexdb.py +0 -0
  548. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/milvus/__init__.py +0 -0
  549. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/milvus/milvus.py +0 -0
  550. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/mongodb/__init__.py +0 -0
  551. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/mongodb/mongodb.py +0 -0
  552. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/pgvector/__init__.py +0 -0
  553. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/pgvector/index.py +0 -0
  554. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/pgvector/pgvector.py +0 -0
  555. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/pineconedb/__init__.py +0 -0
  556. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/pineconedb/pineconedb.py +0 -0
  557. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/qdrant/__init__.py +0 -0
  558. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/qdrant/qdrant.py +0 -0
  559. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/redis/__init__.py +0 -0
  560. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/redis/redisdb.py +0 -0
  561. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/search.py +0 -0
  562. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/singlestore/__init__.py +0 -0
  563. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/singlestore/index.py +0 -0
  564. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/singlestore/singlestore.py +0 -0
  565. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/surrealdb/__init__.py +0 -0
  566. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/surrealdb/surrealdb.py +0 -0
  567. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/upstashdb/__init__.py +0 -0
  568. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/upstashdb/upstashdb.py +0 -0
  569. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/weaviate/__init__.py +0 -0
  570. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/weaviate/index.py +0 -0
  571. {agno-2.2.9 → agno-2.2.10}/agno/vectordb/weaviate/weaviate.py +0 -0
  572. {agno-2.2.9 → agno-2.2.10}/agno/workflow/__init__.py +0 -0
  573. {agno-2.2.9 → agno-2.2.10}/agno/workflow/types.py +0 -0
  574. {agno-2.2.9 → agno-2.2.10}/agno.egg-info/SOURCES.txt +0 -0
  575. {agno-2.2.9 → agno-2.2.10}/agno.egg-info/dependency_links.txt +0 -0
  576. {agno-2.2.9 → agno-2.2.10}/agno.egg-info/requires.txt +0 -0
  577. {agno-2.2.9 → agno-2.2.10}/agno.egg-info/top_level.txt +0 -0
  578. {agno-2.2.9 → agno-2.2.10}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agno
3
- Version: 2.2.9
3
+ Version: 2.2.10
4
4
  Summary: Agno: a lightweight library for building Multi-Agent Systems
5
5
  Author-email: Ashpreet Bedi <ashpreet@agno.com>
6
6
  Project-URL: homepage, https://agno.com
@@ -1454,6 +1454,7 @@ class Agent:
1454
1454
  user_id: Optional[str] = None,
1455
1455
  session_id: Optional[str] = None,
1456
1456
  session_state: Optional[Dict[str, Any]] = None,
1457
+ run_context: Optional[RunContext] = None,
1457
1458
  audio: Optional[Sequence[Audio]] = None,
1458
1459
  images: Optional[Sequence[Image]] = None,
1459
1460
  videos: Optional[Sequence[Video]] = None,
@@ -1480,6 +1481,7 @@ class Agent:
1480
1481
  user_id: Optional[str] = None,
1481
1482
  session_id: Optional[str] = None,
1482
1483
  session_state: Optional[Dict[str, Any]] = None,
1484
+ run_context: Optional[RunContext] = None,
1483
1485
  audio: Optional[Sequence[Audio]] = None,
1484
1486
  images: Optional[Sequence[Image]] = None,
1485
1487
  videos: Optional[Sequence[Video]] = None,
@@ -1507,6 +1509,7 @@ class Agent:
1507
1509
  user_id: Optional[str] = None,
1508
1510
  session_id: Optional[str] = None,
1509
1511
  session_state: Optional[Dict[str, Any]] = None,
1512
+ run_context: Optional[RunContext] = None,
1510
1513
  audio: Optional[Sequence[Audio]] = None,
1511
1514
  images: Optional[Sequence[Image]] = None,
1512
1515
  videos: Optional[Sequence[Video]] = None,
@@ -1581,7 +1584,7 @@ class Agent:
1581
1584
  dependencies = dependencies if dependencies is not None else self.dependencies
1582
1585
 
1583
1586
  # Initialize run context
1584
- run_context = RunContext(
1587
+ run_context = run_context or RunContext(
1585
1588
  run_id=run_id,
1586
1589
  session_id=session_id,
1587
1590
  user_id=user_id,
@@ -2374,6 +2377,7 @@ class Agent:
2374
2377
  user_id: Optional[str] = None,
2375
2378
  session_id: Optional[str] = None,
2376
2379
  session_state: Optional[Dict[str, Any]] = None,
2380
+ run_context: Optional[RunContext] = None,
2377
2381
  audio: Optional[Sequence[Audio]] = None,
2378
2382
  images: Optional[Sequence[Image]] = None,
2379
2383
  videos: Optional[Sequence[Video]] = None,
@@ -2399,6 +2403,7 @@ class Agent:
2399
2403
  stream: Literal[True] = True,
2400
2404
  user_id: Optional[str] = None,
2401
2405
  session_id: Optional[str] = None,
2406
+ run_context: Optional[RunContext] = None,
2402
2407
  audio: Optional[Sequence[Audio]] = None,
2403
2408
  images: Optional[Sequence[Image]] = None,
2404
2409
  videos: Optional[Sequence[Video]] = None,
@@ -2426,6 +2431,7 @@ class Agent:
2426
2431
  user_id: Optional[str] = None,
2427
2432
  session_id: Optional[str] = None,
2428
2433
  session_state: Optional[Dict[str, Any]] = None,
2434
+ run_context: Optional[RunContext] = None,
2429
2435
  audio: Optional[Sequence[Audio]] = None,
2430
2436
  images: Optional[Sequence[Image]] = None,
2431
2437
  videos: Optional[Sequence[Video]] = None,
@@ -2530,7 +2536,7 @@ class Agent:
2530
2536
  merge_dictionaries(metadata, self.metadata)
2531
2537
 
2532
2538
  # Initialize run context
2533
- run_context = RunContext(
2539
+ run_context = run_context or RunContext(
2534
2540
  run_id=run_id,
2535
2541
  session_id=session_id,
2536
2542
  user_id=user_id,
@@ -2692,6 +2698,7 @@ class Agent:
2692
2698
  stream_intermediate_steps: Optional[bool] = None,
2693
2699
  user_id: Optional[str] = None,
2694
2700
  session_id: Optional[str] = None,
2701
+ run_context: Optional[RunContext] = None,
2695
2702
  retries: Optional[int] = None,
2696
2703
  knowledge_filters: Optional[Dict[str, Any]] = None,
2697
2704
  dependencies: Optional[Dict[str, Any]] = None,
@@ -2709,6 +2716,7 @@ class Agent:
2709
2716
  stream_events: Whether to stream all events.
2710
2717
  user_id: The user id to continue the run for.
2711
2718
  session_id: The session id to continue the run for.
2719
+ run_context: The run context to use for the run.
2712
2720
  retries: The number of retries to continue the run for.
2713
2721
  knowledge_filters: The knowledge filters to use for the run.
2714
2722
  dependencies: The dependencies to use for the run.
@@ -2749,7 +2757,7 @@ class Agent:
2749
2757
  dependencies = dependencies if dependencies is not None else self.dependencies
2750
2758
 
2751
2759
  # Initialize run context
2752
- run_context = RunContext(
2760
+ run_context = run_context or RunContext(
2753
2761
  run_id=run_id, # type: ignore
2754
2762
  session_id=session_id,
2755
2763
  user_id=user_id,
@@ -3251,6 +3259,7 @@ class Agent:
3251
3259
  stream_intermediate_steps: Optional[bool] = None,
3252
3260
  user_id: Optional[str] = None,
3253
3261
  session_id: Optional[str] = None,
3262
+ run_context: Optional[RunContext] = None,
3254
3263
  retries: Optional[int] = None,
3255
3264
  knowledge_filters: Optional[Dict[str, Any]] = None,
3256
3265
  dependencies: Optional[Dict[str, Any]] = None,
@@ -3269,6 +3278,7 @@ class Agent:
3269
3278
  stream_events: Whether to stream all events.
3270
3279
  user_id: The user id to continue the run for.
3271
3280
  session_id: The session id to continue the run for.
3281
+ run_context: The run context to use for the run.
3272
3282
  retries: The number of retries to continue the run for.
3273
3283
  knowledge_filters: The knowledge filters to use for the run.
3274
3284
  dependencies: The dependencies to use for continuing the run.
@@ -3335,7 +3345,7 @@ class Agent:
3335
3345
  self.model = cast(Model, self.model)
3336
3346
 
3337
3347
  # Initialize run context
3338
- run_context = RunContext(
3348
+ run_context = run_context or RunContext(
3339
3349
  run_id=run_id, # type: ignore
3340
3350
  session_id=session_id,
3341
3351
  user_id=user_id,
@@ -238,28 +238,35 @@ class AgentOS:
238
238
  """Re-provision all routes for the AgentOS."""
239
239
  updated_routers = [
240
240
  get_session_router(dbs=self.dbs),
241
- get_memory_router(dbs=self.dbs),
242
- get_eval_router(dbs=self.dbs, agents=self.agents, teams=self.teams),
243
241
  get_metrics_router(dbs=self.dbs),
244
242
  get_knowledge_router(knowledge_instances=self.knowledge_instances),
243
+ get_memory_router(dbs=self.dbs),
244
+ get_eval_router(dbs=self.dbs, agents=self.agents, teams=self.teams),
245
245
  ]
246
246
 
247
247
  # Clear all previously existing routes
248
- app.router.routes = []
248
+ app.router.routes = [
249
+ route
250
+ for route in app.router.routes
251
+ if hasattr(route, "path") and route.path in ["/docs", "/redoc", "/openapi.json", "/docs/oauth2-redirect"] # type: ignore
252
+ ]
253
+
254
+ # Add the built-in routes
255
+ self._add_built_in_routes(app=app)
249
256
 
250
257
  # Add the updated routes
251
258
  for router in updated_routers:
252
259
  self._add_router(app, router)
253
260
 
254
- # Add the built-in routes
255
- self._add_built_in_routes(app=app)
256
-
257
261
  def _add_built_in_routes(self, app: FastAPI) -> None:
258
262
  """Add all AgentOSbuilt-in routes to the given app."""
263
+ # Add the home router if MCP server is not enabled
264
+ if not self.enable_mcp_server:
265
+ self._add_router(app, get_home_router(self))
266
+
267
+ self._add_router(app, get_health_router())
259
268
  self._add_router(app, get_base_router(self, settings=self.settings))
260
269
  self._add_router(app, get_websocket_router(self, settings=self.settings))
261
- self._add_router(app, get_health_router())
262
- self._add_router(app, get_home_router(self))
263
270
 
264
271
  # Add A2A interface if relevant
265
272
  has_a2a_interface = False
@@ -275,10 +282,6 @@ class AgentOS:
275
282
  self.interfaces.append(a2a_interface)
276
283
  self._add_router(app, a2a_interface.get_router())
277
284
 
278
- # Add the home router if MCP server is not enabled
279
- if not self.enable_mcp_server:
280
- self._add_router(app, get_home_router(self))
281
-
282
285
  def _make_app(self, lifespan: Optional[Any] = None) -> FastAPI:
283
286
  # Adjust the FastAPI app lifespan to handle MCP connections if relevant
284
287
  app_lifespan = lifespan
@@ -447,9 +450,6 @@ class AgentOS:
447
450
  # Mount MCP if needed
448
451
  if self.enable_mcp_server and self._mcp_app:
449
452
  fastapi_app.mount("/", self._mcp_app)
450
- else:
451
- # Add the home router
452
- self._add_router(fastapi_app, get_home_router(self))
453
453
 
454
454
  if not self._app_set:
455
455
 
@@ -1762,6 +1762,7 @@ class Team:
1762
1762
  stream_intermediate_steps: Optional[bool] = None,
1763
1763
  session_id: Optional[str] = None,
1764
1764
  session_state: Optional[Dict[str, Any]] = None,
1765
+ run_context: Optional[RunContext] = None,
1765
1766
  user_id: Optional[str] = None,
1766
1767
  retries: Optional[int] = None,
1767
1768
  audio: Optional[Sequence[Audio]] = None,
@@ -1789,6 +1790,7 @@ class Team:
1789
1790
  stream_intermediate_steps: Optional[bool] = None,
1790
1791
  session_id: Optional[str] = None,
1791
1792
  session_state: Optional[Dict[str, Any]] = None,
1793
+ run_context: Optional[RunContext] = None,
1792
1794
  user_id: Optional[str] = None,
1793
1795
  retries: Optional[int] = None,
1794
1796
  audio: Optional[Sequence[Audio]] = None,
@@ -1862,7 +1864,7 @@ class Team:
1862
1864
  dependencies = dependencies if dependencies is not None else self.dependencies
1863
1865
 
1864
1866
  # Initialize run context
1865
- run_context = RunContext(
1867
+ run_context = run_context or RunContext(
1866
1868
  run_id=run_id,
1867
1869
  session_id=session_id,
1868
1870
  user_id=user_id,
@@ -2593,6 +2595,7 @@ class Team:
2593
2595
  stream_intermediate_steps: Optional[bool] = None,
2594
2596
  session_id: Optional[str] = None,
2595
2597
  session_state: Optional[Dict[str, Any]] = None,
2598
+ run_context: Optional[RunContext] = None,
2596
2599
  user_id: Optional[str] = None,
2597
2600
  retries: Optional[int] = None,
2598
2601
  audio: Optional[Sequence[Audio]] = None,
@@ -2619,6 +2622,7 @@ class Team:
2619
2622
  stream_intermediate_steps: Optional[bool] = None,
2620
2623
  session_id: Optional[str] = None,
2621
2624
  session_state: Optional[Dict[str, Any]] = None,
2625
+ run_context: Optional[RunContext] = None,
2622
2626
  user_id: Optional[str] = None,
2623
2627
  retries: Optional[int] = None,
2624
2628
  audio: Optional[Sequence[Audio]] = None,
@@ -2646,6 +2650,7 @@ class Team:
2646
2650
  stream_intermediate_steps: Optional[bool] = None,
2647
2651
  session_id: Optional[str] = None,
2648
2652
  session_state: Optional[Dict[str, Any]] = None,
2653
+ run_context: Optional[RunContext] = None,
2649
2654
  user_id: Optional[str] = None,
2650
2655
  retries: Optional[int] = None,
2651
2656
  audio: Optional[Sequence[Audio]] = None,
@@ -2750,7 +2755,7 @@ class Team:
2750
2755
  effective_filters = self._get_effective_filters(knowledge_filters)
2751
2756
 
2752
2757
  # Initialize run context
2753
- run_context = RunContext(
2758
+ run_context = run_context or RunContext(
2754
2759
  run_id=run_id,
2755
2760
  session_id=session_id,
2756
2761
  user_id=user_id,
@@ -268,7 +268,7 @@ Guidelines:
268
268
  user_id=session_from_db.user_id,
269
269
  execution_input=workflow_execution_input,
270
270
  workflow_run_response=workflow_run_response,
271
- session_state=run_context.session_state,
271
+ run_context=run_context,
272
272
  stream_events=True,
273
273
  websocket_handler=websocket_handler,
274
274
  ):
@@ -286,7 +286,7 @@ Guidelines:
286
286
  user_id=session_from_db.user_id,
287
287
  execution_input=workflow_execution_input,
288
288
  workflow_run_response=workflow_run_response,
289
- session_state=run_context.session_state,
289
+ run_context=run_context,
290
290
  )
291
291
 
292
292
  if isinstance(result.content, str):
@@ -4,6 +4,7 @@ from typing import Any, AsyncIterator, Awaitable, Callable, Dict, Iterator, List
4
4
  from uuid import uuid4
5
5
 
6
6
  from agno.run.agent import RunOutputEvent
7
+ from agno.run.base import RunContext
7
8
  from agno.run.team import TeamRunOutputEvent
8
9
  from agno.run.workflow import (
9
10
  ConditionExecutionCompletedEvent,
@@ -175,6 +176,7 @@ class Condition:
175
176
  user_id: Optional[str] = None,
176
177
  workflow_run_response: Optional[WorkflowRunOutput] = None,
177
178
  store_executor_outputs: bool = True,
179
+ run_context: Optional[RunContext] = None,
178
180
  session_state: Optional[Dict[str, Any]] = None,
179
181
  workflow_session: Optional[WorkflowSession] = None,
180
182
  add_workflow_history_to_steps: Optional[bool] = False,
@@ -188,7 +190,11 @@ class Condition:
188
190
  self._prepare_steps()
189
191
 
190
192
  # Evaluate the condition
191
- condition_result = self._evaluate_condition(step_input, session_state)
193
+ if run_context is not None and run_context.session_state is not None:
194
+ condition_result = self._evaluate_condition(step_input, session_state=run_context.session_state)
195
+ else:
196
+ condition_result = self._evaluate_condition(step_input, session_state=session_state)
197
+
192
198
  log_debug(f"Condition {self.name} evaluated to: {condition_result}")
193
199
 
194
200
  if not condition_result:
@@ -214,6 +220,7 @@ class Condition:
214
220
  user_id=user_id,
215
221
  workflow_run_response=workflow_run_response,
216
222
  store_executor_outputs=store_executor_outputs,
223
+ run_context=run_context,
217
224
  session_state=session_state,
218
225
  workflow_session=workflow_session,
219
226
  add_workflow_history_to_steps=add_workflow_history_to_steps,
@@ -284,6 +291,7 @@ class Condition:
284
291
  workflow_run_response: Optional[WorkflowRunOutput] = None,
285
292
  step_index: Optional[Union[int, tuple]] = None,
286
293
  store_executor_outputs: bool = True,
294
+ run_context: Optional[RunContext] = None,
287
295
  session_state: Optional[Dict[str, Any]] = None,
288
296
  parent_step_id: Optional[str] = None,
289
297
  workflow_session: Optional[WorkflowSession] = None,
@@ -298,7 +306,10 @@ class Condition:
298
306
  self._prepare_steps()
299
307
 
300
308
  # Evaluate the condition
301
- condition_result = self._evaluate_condition(step_input, session_state)
309
+ if run_context is not None and run_context.session_state is not None:
310
+ condition_result = self._evaluate_condition(step_input, session_state=run_context.session_state)
311
+ else:
312
+ condition_result = self._evaluate_condition(step_input, session_state=session_state)
302
313
  log_debug(f"Condition {self.name} evaluated to: {condition_result}")
303
314
 
304
315
  # Considering both stream_events and stream_intermediate_steps (deprecated)
@@ -363,6 +374,7 @@ class Condition:
363
374
  workflow_run_response=workflow_run_response,
364
375
  step_index=child_step_index,
365
376
  store_executor_outputs=store_executor_outputs,
377
+ run_context=run_context,
366
378
  session_state=session_state,
367
379
  parent_step_id=conditional_step_id,
368
380
  workflow_session=workflow_session,
@@ -447,6 +459,7 @@ class Condition:
447
459
  user_id: Optional[str] = None,
448
460
  workflow_run_response: Optional[WorkflowRunOutput] = None,
449
461
  store_executor_outputs: bool = True,
462
+ run_context: Optional[RunContext] = None,
450
463
  session_state: Optional[Dict[str, Any]] = None,
451
464
  workflow_session: Optional[WorkflowSession] = None,
452
465
  add_workflow_history_to_steps: Optional[bool] = False,
@@ -460,7 +473,10 @@ class Condition:
460
473
  self._prepare_steps()
461
474
 
462
475
  # Evaluate the condition
463
- condition_result = await self._aevaluate_condition(step_input, session_state)
476
+ if run_context is not None and run_context.session_state is not None:
477
+ condition_result = await self._aevaluate_condition(step_input, session_state=run_context.session_state)
478
+ else:
479
+ condition_result = await self._aevaluate_condition(step_input, session_state=session_state)
464
480
  log_debug(f"Condition {self.name} evaluated to: {condition_result}")
465
481
 
466
482
  if not condition_result:
@@ -488,6 +504,7 @@ class Condition:
488
504
  user_id=user_id,
489
505
  workflow_run_response=workflow_run_response,
490
506
  store_executor_outputs=store_executor_outputs,
507
+ run_context=run_context,
491
508
  session_state=session_state,
492
509
  workflow_session=workflow_session,
493
510
  add_workflow_history_to_steps=add_workflow_history_to_steps,
@@ -556,6 +573,7 @@ class Condition:
556
573
  workflow_run_response: Optional[WorkflowRunOutput] = None,
557
574
  step_index: Optional[Union[int, tuple]] = None,
558
575
  store_executor_outputs: bool = True,
576
+ run_context: Optional[RunContext] = None,
559
577
  session_state: Optional[Dict[str, Any]] = None,
560
578
  parent_step_id: Optional[str] = None,
561
579
  workflow_session: Optional[WorkflowSession] = None,
@@ -570,7 +588,10 @@ class Condition:
570
588
  self._prepare_steps()
571
589
 
572
590
  # Evaluate the condition
573
- condition_result = await self._aevaluate_condition(step_input, session_state)
591
+ if run_context is not None and run_context.session_state is not None:
592
+ condition_result = await self._aevaluate_condition(step_input, session_state=run_context.session_state)
593
+ else:
594
+ condition_result = await self._aevaluate_condition(step_input, session_state=session_state)
574
595
  log_debug(f"Condition {self.name} evaluated to: {condition_result}")
575
596
 
576
597
  # Considering both stream_events and stream_intermediate_steps (deprecated)
@@ -637,6 +658,7 @@ class Condition:
637
658
  workflow_run_response=workflow_run_response,
638
659
  step_index=child_step_index,
639
660
  store_executor_outputs=store_executor_outputs,
661
+ run_context=run_context,
640
662
  session_state=session_state,
641
663
  parent_step_id=conditional_step_id,
642
664
  workflow_session=workflow_session,
@@ -4,6 +4,7 @@ from typing import Any, AsyncIterator, Awaitable, Callable, Dict, Iterator, List
4
4
  from uuid import uuid4
5
5
 
6
6
  from agno.run.agent import RunOutputEvent
7
+ from agno.run.base import RunContext
7
8
  from agno.run.team import TeamRunOutputEvent
8
9
  from agno.run.workflow import (
9
10
  LoopExecutionCompletedEvent,
@@ -132,6 +133,7 @@ class Loop:
132
133
  user_id: Optional[str] = None,
133
134
  workflow_run_response: Optional[WorkflowRunOutput] = None,
134
135
  store_executor_outputs: bool = True,
136
+ run_context: Optional[RunContext] = None,
135
137
  session_state: Optional[Dict[str, Any]] = None,
136
138
  workflow_session: Optional[WorkflowSession] = None,
137
139
  add_workflow_history_to_steps: Optional[bool] = False,
@@ -160,6 +162,7 @@ class Loop:
160
162
  user_id=user_id,
161
163
  workflow_run_response=workflow_run_response,
162
164
  store_executor_outputs=store_executor_outputs,
165
+ run_context=run_context,
163
166
  session_state=session_state,
164
167
  workflow_session=workflow_session,
165
168
  add_workflow_history_to_steps=add_workflow_history_to_steps,
@@ -232,6 +235,7 @@ class Loop:
232
235
  workflow_run_response: Optional[WorkflowRunOutput] = None,
233
236
  step_index: Optional[Union[int, tuple]] = None,
234
237
  store_executor_outputs: bool = True,
238
+ run_context: Optional[RunContext] = None,
235
239
  session_state: Optional[Dict[str, Any]] = None,
236
240
  parent_step_id: Optional[str] = None,
237
241
  workflow_session: Optional[WorkflowSession] = None,
@@ -311,6 +315,7 @@ class Loop:
311
315
  workflow_run_response=workflow_run_response,
312
316
  step_index=composite_step_index,
313
317
  store_executor_outputs=store_executor_outputs,
318
+ run_context=run_context,
314
319
  session_state=session_state,
315
320
  parent_step_id=loop_step_id,
316
321
  add_workflow_history_to_steps=add_workflow_history_to_steps,
@@ -428,6 +433,7 @@ class Loop:
428
433
  user_id: Optional[str] = None,
429
434
  workflow_run_response: Optional[WorkflowRunOutput] = None,
430
435
  store_executor_outputs: bool = True,
436
+ run_context: Optional[RunContext] = None,
431
437
  session_state: Optional[Dict[str, Any]] = None,
432
438
  workflow_session: Optional[WorkflowSession] = None,
433
439
  add_workflow_history_to_steps: Optional[bool] = False,
@@ -458,6 +464,7 @@ class Loop:
458
464
  user_id=user_id,
459
465
  workflow_run_response=workflow_run_response,
460
466
  store_executor_outputs=store_executor_outputs,
467
+ run_context=run_context,
461
468
  session_state=session_state,
462
469
  workflow_session=workflow_session,
463
470
  add_workflow_history_to_steps=add_workflow_history_to_steps,
@@ -533,6 +540,7 @@ class Loop:
533
540
  workflow_run_response: Optional[WorkflowRunOutput] = None,
534
541
  step_index: Optional[Union[int, tuple]] = None,
535
542
  store_executor_outputs: bool = True,
543
+ run_context: Optional[RunContext] = None,
536
544
  session_state: Optional[Dict[str, Any]] = None,
537
545
  parent_step_id: Optional[str] = None,
538
546
  workflow_session: Optional[WorkflowSession] = None,
@@ -612,6 +620,7 @@ class Loop:
612
620
  workflow_run_response=workflow_run_response,
613
621
  step_index=composite_step_index,
614
622
  store_executor_outputs=store_executor_outputs,
623
+ run_context=run_context,
615
624
  session_state=session_state,
616
625
  parent_step_id=loop_step_id,
617
626
  workflow_session=workflow_session,
@@ -7,6 +7,7 @@ from uuid import uuid4
7
7
 
8
8
  from agno.models.metrics import Metrics
9
9
  from agno.run.agent import RunOutputEvent
10
+ from agno.run.base import RunContext
10
11
  from agno.run.team import TeamRunOutputEvent
11
12
  from agno.run.workflow import (
12
13
  ParallelExecutionCompletedEvent,
@@ -200,6 +201,7 @@ class Parallel:
200
201
  user_id: Optional[str] = None,
201
202
  workflow_run_response: Optional[WorkflowRunOutput] = None,
202
203
  store_executor_outputs: bool = True,
204
+ run_context: Optional[RunContext] = None,
203
205
  session_state: Optional[Dict[str, Any]] = None,
204
206
  workflow_session: Optional[WorkflowSession] = None,
205
207
  add_workflow_history_to_steps: Optional[bool] = False,
@@ -214,10 +216,14 @@ class Parallel:
214
216
  # Create individual session_state copies for each step to prevent race conditions
215
217
  session_state_copies = []
216
218
  for _ in range(len(self.steps)):
217
- if session_state is not None:
218
- session_state_copies.append(deepcopy(session_state))
219
+ # If using run context, no need to deepcopy the state. We want the direct reference.
220
+ if run_context is not None and run_context.session_state is not None:
221
+ session_state_copies.append(run_context.session_state)
219
222
  else:
220
- session_state_copies.append({})
223
+ if session_state is not None:
224
+ session_state_copies.append(deepcopy(session_state))
225
+ else:
226
+ session_state_copies.append({})
221
227
 
222
228
  def execute_step_with_index(step_with_index):
223
229
  """Execute a single step and preserve its original index"""
@@ -235,6 +241,7 @@ class Parallel:
235
241
  workflow_session=workflow_session,
236
242
  add_workflow_history_to_steps=add_workflow_history_to_steps,
237
243
  num_history_runs=num_history_runs,
244
+ run_context=run_context,
238
245
  session_state=step_session_state,
239
246
  ) # type: ignore[union-attr]
240
247
  return idx, step_result, step_session_state
@@ -288,7 +295,7 @@ class Parallel:
288
295
  )
289
296
  )
290
297
 
291
- if session_state is not None:
298
+ if run_context is None and session_state is not None:
292
299
  merge_parallel_session_states(session_state, modified_session_states)
293
300
 
294
301
  # Sort by original index to preserve order
@@ -322,6 +329,7 @@ class Parallel:
322
329
  workflow_run_response: Optional[WorkflowRunOutput] = None,
323
330
  step_index: Optional[Union[int, tuple]] = None,
324
331
  store_executor_outputs: bool = True,
332
+ run_context: Optional[RunContext] = None,
325
333
  session_state: Optional[Dict[str, Any]] = None,
326
334
  parent_step_id: Optional[str] = None,
327
335
  workflow_session: Optional[WorkflowSession] = None,
@@ -338,10 +346,14 @@ class Parallel:
338
346
  # Create individual session_state copies for each step to prevent race conditions
339
347
  session_state_copies = []
340
348
  for _ in range(len(self.steps)):
341
- if session_state is not None:
342
- session_state_copies.append(deepcopy(session_state))
349
+ # If using run context, no need to deepcopy the state. We want the direct reference.
350
+ if run_context is not None and run_context.session_state is not None:
351
+ session_state_copies.append(run_context.session_state)
343
352
  else:
344
- session_state_copies.append({})
353
+ if session_state is not None:
354
+ session_state_copies.append(deepcopy(session_state))
355
+ else:
356
+ session_state_copies.append({})
345
357
 
346
358
  # Considering both stream_events and stream_intermediate_steps (deprecated)
347
359
  stream_events = stream_events or stream_intermediate_steps
@@ -468,7 +480,7 @@ class Parallel:
468
480
  logger.error(f"Future completion error: {e}")
469
481
 
470
482
  # Merge all session_state changes back into the original session_state
471
- if session_state is not None:
483
+ if run_context is None and session_state is not None:
472
484
  merge_parallel_session_states(session_state, modified_session_states)
473
485
 
474
486
  # Flatten step_results - handle steps that return List[StepOutput] (like Condition/Loop)
@@ -509,6 +521,7 @@ class Parallel:
509
521
  user_id: Optional[str] = None,
510
522
  workflow_run_response: Optional[WorkflowRunOutput] = None,
511
523
  store_executor_outputs: bool = True,
524
+ run_context: Optional[RunContext] = None,
512
525
  session_state: Optional[Dict[str, Any]] = None,
513
526
  workflow_session: Optional[WorkflowSession] = None,
514
527
  add_workflow_history_to_steps: Optional[bool] = False,
@@ -523,10 +536,14 @@ class Parallel:
523
536
  # Create individual session_state copies for each step to prevent race conditions
524
537
  session_state_copies = []
525
538
  for _ in range(len(self.steps)):
526
- if session_state is not None:
527
- session_state_copies.append(deepcopy(session_state))
539
+ # If using run context, no need to deepcopy the state. We want the direct reference.
540
+ if run_context is not None and run_context.session_state is not None:
541
+ session_state_copies.append(run_context.session_state)
528
542
  else:
529
- session_state_copies.append({})
543
+ if session_state is not None:
544
+ session_state_copies.append(deepcopy(session_state))
545
+ else:
546
+ session_state_copies.append({})
530
547
 
531
548
  async def execute_step_async_with_index(step_with_index):
532
549
  """Execute a single step asynchronously and preserve its original index"""
@@ -598,7 +615,7 @@ class Parallel:
598
615
  log_debug(f"Parallel step {step_name} completed")
599
616
 
600
617
  # Smart merge all session_state changes back into the original session_state
601
- if session_state is not None:
618
+ if run_context is None and session_state is not None:
602
619
  merge_parallel_session_states(session_state, modified_session_states)
603
620
 
604
621
  # Sort by original index to preserve order
@@ -632,6 +649,7 @@ class Parallel:
632
649
  workflow_run_response: Optional[WorkflowRunOutput] = None,
633
650
  step_index: Optional[Union[int, tuple]] = None,
634
651
  store_executor_outputs: bool = True,
652
+ run_context: Optional[RunContext] = None,
635
653
  session_state: Optional[Dict[str, Any]] = None,
636
654
  parent_step_id: Optional[str] = None,
637
655
  workflow_session: Optional[WorkflowSession] = None,
@@ -648,10 +666,14 @@ class Parallel:
648
666
  # Create individual session_state copies for each step to prevent race conditions
649
667
  session_state_copies = []
650
668
  for _ in range(len(self.steps)):
651
- if session_state is not None:
652
- session_state_copies.append(deepcopy(session_state))
669
+ # If using run context, no need to deepcopy the state. We want the direct reference.
670
+ if run_context is not None and run_context.session_state is not None:
671
+ session_state_copies.append(run_context.session_state)
653
672
  else:
654
- session_state_copies.append({})
673
+ if session_state is not None:
674
+ session_state_copies.append(deepcopy(session_state))
675
+ else:
676
+ session_state_copies.append({})
655
677
 
656
678
  # Considering both stream_events and stream_intermediate_steps (deprecated)
657
679
  stream_events = stream_events or stream_intermediate_steps
@@ -705,6 +727,7 @@ class Parallel:
705
727
  step_index=sub_step_index,
706
728
  store_executor_outputs=store_executor_outputs,
707
729
  session_state=step_session_state,
730
+ run_context=run_context,
708
731
  parent_step_id=parallel_step_id,
709
732
  workflow_session=workflow_session,
710
733
  add_workflow_history_to_steps=add_workflow_history_to_steps,
@@ -766,7 +789,7 @@ class Parallel:
766
789
  await asyncio.gather(*tasks, return_exceptions=True)
767
790
 
768
791
  # Merge all session_state changes back into the original session_state
769
- if session_state is not None:
792
+ if run_context is None and session_state is not None:
770
793
  merge_parallel_session_states(session_state, modified_session_states)
771
794
 
772
795
  # Flatten step_results - handle steps that return List[StepOutput] (like Condition/Loop)