agno 1.7.12__tar.gz → 1.8.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (570) hide show
  1. {agno-1.7.12 → agno-1.8.0}/PKG-INFO +7 -4
  2. {agno-1.7.12 → agno-1.8.0}/README.md +1 -1
  3. {agno-1.7.12 → agno-1.8.0}/agno/app/agui/utils.py +1 -1
  4. {agno-1.7.12 → agno-1.8.0}/agno/app/fastapi/async_router.py +13 -10
  5. {agno-1.7.12 → agno-1.8.0}/agno/knowledge/gcs/pdf.py +2 -2
  6. {agno-1.7.12 → agno-1.8.0}/agno/media.py +24 -3
  7. {agno-1.7.12 → agno-1.8.0}/agno/models/google/gemini.py +16 -1
  8. {agno-1.7.12 → agno-1.8.0}/agno/tools/duckduckgo.py +8 -16
  9. {agno-1.7.12 → agno-1.8.0}/agno/tools/github.py +26 -14
  10. agno-1.8.0/agno/tools/memori.py +387 -0
  11. {agno-1.7.12 → agno-1.8.0}/agno/tools/scrapegraph.py +65 -0
  12. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/pgvector/pgvector.py +23 -39
  13. {agno-1.7.12 → agno-1.8.0}/agno/workflow/v2/step.py +4 -0
  14. {agno-1.7.12 → agno-1.8.0}/agno/workflow/v2/types.py +11 -1
  15. {agno-1.7.12 → agno-1.8.0}/agno/workflow/v2/workflow.py +54 -1
  16. {agno-1.7.12 → agno-1.8.0}/agno.egg-info/PKG-INFO +7 -4
  17. {agno-1.7.12 → agno-1.8.0}/agno.egg-info/SOURCES.txt +1 -0
  18. {agno-1.7.12 → agno-1.8.0}/agno.egg-info/requires.txt +6 -2
  19. {agno-1.7.12 → agno-1.8.0}/pyproject.toml +7 -4
  20. {agno-1.7.12 → agno-1.8.0}/LICENSE +0 -0
  21. {agno-1.7.12 → agno-1.8.0}/agno/__init__.py +0 -0
  22. {agno-1.7.12 → agno-1.8.0}/agno/agent/__init__.py +0 -0
  23. {agno-1.7.12 → agno-1.8.0}/agno/agent/agent.py +0 -0
  24. {agno-1.7.12 → agno-1.8.0}/agno/agent/metrics.py +0 -0
  25. {agno-1.7.12 → agno-1.8.0}/agno/api/__init__.py +0 -0
  26. {agno-1.7.12 → agno-1.8.0}/agno/api/agent.py +0 -0
  27. {agno-1.7.12 → agno-1.8.0}/agno/api/api.py +0 -0
  28. {agno-1.7.12 → agno-1.8.0}/agno/api/app.py +0 -0
  29. {agno-1.7.12 → agno-1.8.0}/agno/api/evals.py +0 -0
  30. {agno-1.7.12 → agno-1.8.0}/agno/api/playground.py +0 -0
  31. {agno-1.7.12 → agno-1.8.0}/agno/api/routes.py +0 -0
  32. {agno-1.7.12 → agno-1.8.0}/agno/api/schemas/__init__.py +0 -0
  33. {agno-1.7.12 → agno-1.8.0}/agno/api/schemas/agent.py +0 -0
  34. {agno-1.7.12 → agno-1.8.0}/agno/api/schemas/app.py +0 -0
  35. {agno-1.7.12 → agno-1.8.0}/agno/api/schemas/evals.py +0 -0
  36. {agno-1.7.12 → agno-1.8.0}/agno/api/schemas/playground.py +0 -0
  37. {agno-1.7.12 → agno-1.8.0}/agno/api/schemas/response.py +0 -0
  38. {agno-1.7.12 → agno-1.8.0}/agno/api/schemas/team.py +0 -0
  39. {agno-1.7.12 → agno-1.8.0}/agno/api/schemas/user.py +0 -0
  40. {agno-1.7.12 → agno-1.8.0}/agno/api/schemas/workflows.py +0 -0
  41. {agno-1.7.12 → agno-1.8.0}/agno/api/schemas/workspace.py +0 -0
  42. {agno-1.7.12 → agno-1.8.0}/agno/api/team.py +0 -0
  43. {agno-1.7.12 → agno-1.8.0}/agno/api/user.py +0 -0
  44. {agno-1.7.12 → agno-1.8.0}/agno/api/workflows.py +0 -0
  45. {agno-1.7.12 → agno-1.8.0}/agno/api/workspace.py +0 -0
  46. {agno-1.7.12 → agno-1.8.0}/agno/app/__init__.py +0 -0
  47. {agno-1.7.12 → agno-1.8.0}/agno/app/agui/__init__.py +0 -0
  48. {agno-1.7.12 → agno-1.8.0}/agno/app/agui/app.py +0 -0
  49. {agno-1.7.12 → agno-1.8.0}/agno/app/agui/async_router.py +0 -0
  50. {agno-1.7.12 → agno-1.8.0}/agno/app/agui/sync_router.py +0 -0
  51. {agno-1.7.12 → agno-1.8.0}/agno/app/base.py +0 -0
  52. {agno-1.7.12 → agno-1.8.0}/agno/app/discord/__init__.py +0 -0
  53. {agno-1.7.12 → agno-1.8.0}/agno/app/discord/client.py +0 -0
  54. {agno-1.7.12 → agno-1.8.0}/agno/app/fastapi/__init__.py +0 -0
  55. {agno-1.7.12 → agno-1.8.0}/agno/app/fastapi/app.py +0 -0
  56. {agno-1.7.12 → agno-1.8.0}/agno/app/fastapi/sync_router.py +0 -0
  57. {agno-1.7.12 → agno-1.8.0}/agno/app/playground/__init__.py +0 -0
  58. {agno-1.7.12 → agno-1.8.0}/agno/app/playground/app.py +0 -0
  59. {agno-1.7.12 → agno-1.8.0}/agno/app/playground/async_router.py +0 -0
  60. {agno-1.7.12 → agno-1.8.0}/agno/app/playground/deploy.py +0 -0
  61. {agno-1.7.12 → agno-1.8.0}/agno/app/playground/operator.py +0 -0
  62. {agno-1.7.12 → agno-1.8.0}/agno/app/playground/schemas.py +0 -0
  63. {agno-1.7.12 → agno-1.8.0}/agno/app/playground/serve.py +0 -0
  64. {agno-1.7.12 → agno-1.8.0}/agno/app/playground/settings.py +0 -0
  65. {agno-1.7.12 → agno-1.8.0}/agno/app/playground/sync_router.py +0 -0
  66. {agno-1.7.12 → agno-1.8.0}/agno/app/playground/utils.py +0 -0
  67. {agno-1.7.12 → agno-1.8.0}/agno/app/settings.py +0 -0
  68. {agno-1.7.12 → agno-1.8.0}/agno/app/slack/__init__.py +0 -0
  69. {agno-1.7.12 → agno-1.8.0}/agno/app/slack/app.py +0 -0
  70. {agno-1.7.12 → agno-1.8.0}/agno/app/slack/async_router.py +0 -0
  71. {agno-1.7.12 → agno-1.8.0}/agno/app/slack/security.py +0 -0
  72. {agno-1.7.12 → agno-1.8.0}/agno/app/slack/sync_router.py +0 -0
  73. {agno-1.7.12 → agno-1.8.0}/agno/app/utils.py +0 -0
  74. {agno-1.7.12 → agno-1.8.0}/agno/app/whatsapp/__init__.py +0 -0
  75. {agno-1.7.12 → agno-1.8.0}/agno/app/whatsapp/app.py +0 -0
  76. {agno-1.7.12 → agno-1.8.0}/agno/app/whatsapp/async_router.py +0 -0
  77. {agno-1.7.12 → agno-1.8.0}/agno/app/whatsapp/security.py +0 -0
  78. {agno-1.7.12 → agno-1.8.0}/agno/app/whatsapp/sync_router.py +0 -0
  79. {agno-1.7.12 → agno-1.8.0}/agno/cli/__init__.py +0 -0
  80. {agno-1.7.12 → agno-1.8.0}/agno/cli/auth_server.py +0 -0
  81. {agno-1.7.12 → agno-1.8.0}/agno/cli/config.py +0 -0
  82. {agno-1.7.12 → agno-1.8.0}/agno/cli/console.py +0 -0
  83. {agno-1.7.12 → agno-1.8.0}/agno/cli/credentials.py +0 -0
  84. {agno-1.7.12 → agno-1.8.0}/agno/cli/entrypoint.py +0 -0
  85. {agno-1.7.12 → agno-1.8.0}/agno/cli/operator.py +0 -0
  86. {agno-1.7.12 → agno-1.8.0}/agno/cli/settings.py +0 -0
  87. {agno-1.7.12 → agno-1.8.0}/agno/cli/ws/__init__.py +0 -0
  88. {agno-1.7.12 → agno-1.8.0}/agno/cli/ws/ws_cli.py +0 -0
  89. {agno-1.7.12 → agno-1.8.0}/agno/constants.py +0 -0
  90. {agno-1.7.12 → agno-1.8.0}/agno/debug.py +0 -0
  91. {agno-1.7.12 → agno-1.8.0}/agno/document/__init__.py +0 -0
  92. {agno-1.7.12 → agno-1.8.0}/agno/document/base.py +0 -0
  93. {agno-1.7.12 → agno-1.8.0}/agno/document/chunking/__init__.py +0 -0
  94. {agno-1.7.12 → agno-1.8.0}/agno/document/chunking/agentic.py +0 -0
  95. {agno-1.7.12 → agno-1.8.0}/agno/document/chunking/document.py +0 -0
  96. {agno-1.7.12 → agno-1.8.0}/agno/document/chunking/fixed.py +0 -0
  97. {agno-1.7.12 → agno-1.8.0}/agno/document/chunking/markdown.py +0 -0
  98. {agno-1.7.12 → agno-1.8.0}/agno/document/chunking/recursive.py +0 -0
  99. {agno-1.7.12 → agno-1.8.0}/agno/document/chunking/row.py +0 -0
  100. {agno-1.7.12 → agno-1.8.0}/agno/document/chunking/semantic.py +0 -0
  101. {agno-1.7.12 → agno-1.8.0}/agno/document/chunking/strategy.py +0 -0
  102. {agno-1.7.12 → agno-1.8.0}/agno/document/reader/__init__.py +0 -0
  103. {agno-1.7.12 → agno-1.8.0}/agno/document/reader/arxiv_reader.py +0 -0
  104. {agno-1.7.12 → agno-1.8.0}/agno/document/reader/base.py +0 -0
  105. {agno-1.7.12 → agno-1.8.0}/agno/document/reader/csv_reader.py +0 -0
  106. {agno-1.7.12 → agno-1.8.0}/agno/document/reader/docx_reader.py +0 -0
  107. {agno-1.7.12 → agno-1.8.0}/agno/document/reader/firecrawl_reader.py +0 -0
  108. {agno-1.7.12 → agno-1.8.0}/agno/document/reader/gcs/__init__.py +0 -0
  109. {agno-1.7.12 → agno-1.8.0}/agno/document/reader/gcs/pdf_reader.py +0 -0
  110. {agno-1.7.12 → agno-1.8.0}/agno/document/reader/json_reader.py +0 -0
  111. {agno-1.7.12 → agno-1.8.0}/agno/document/reader/markdown_reader.py +0 -0
  112. {agno-1.7.12 → agno-1.8.0}/agno/document/reader/pdf_reader.py +0 -0
  113. {agno-1.7.12 → agno-1.8.0}/agno/document/reader/s3/__init__.py +0 -0
  114. {agno-1.7.12 → agno-1.8.0}/agno/document/reader/s3/pdf_reader.py +0 -0
  115. {agno-1.7.12 → agno-1.8.0}/agno/document/reader/s3/text_reader.py +0 -0
  116. {agno-1.7.12 → agno-1.8.0}/agno/document/reader/text_reader.py +0 -0
  117. {agno-1.7.12 → agno-1.8.0}/agno/document/reader/url_reader.py +0 -0
  118. {agno-1.7.12 → agno-1.8.0}/agno/document/reader/website_reader.py +0 -0
  119. {agno-1.7.12 → agno-1.8.0}/agno/document/reader/youtube_reader.py +0 -0
  120. {agno-1.7.12 → agno-1.8.0}/agno/embedder/__init__.py +0 -0
  121. {agno-1.7.12 → agno-1.8.0}/agno/embedder/aws_bedrock.py +0 -0
  122. {agno-1.7.12 → agno-1.8.0}/agno/embedder/azure_openai.py +0 -0
  123. {agno-1.7.12 → agno-1.8.0}/agno/embedder/base.py +0 -0
  124. {agno-1.7.12 → agno-1.8.0}/agno/embedder/cohere.py +0 -0
  125. {agno-1.7.12 → agno-1.8.0}/agno/embedder/fastembed.py +0 -0
  126. {agno-1.7.12 → agno-1.8.0}/agno/embedder/fireworks.py +0 -0
  127. {agno-1.7.12 → agno-1.8.0}/agno/embedder/google.py +0 -0
  128. {agno-1.7.12 → agno-1.8.0}/agno/embedder/huggingface.py +0 -0
  129. {agno-1.7.12 → agno-1.8.0}/agno/embedder/jina.py +0 -0
  130. {agno-1.7.12 → agno-1.8.0}/agno/embedder/langdb.py +0 -0
  131. {agno-1.7.12 → agno-1.8.0}/agno/embedder/mistral.py +0 -0
  132. {agno-1.7.12 → agno-1.8.0}/agno/embedder/nebius.py +0 -0
  133. {agno-1.7.12 → agno-1.8.0}/agno/embedder/ollama.py +0 -0
  134. {agno-1.7.12 → agno-1.8.0}/agno/embedder/openai.py +0 -0
  135. {agno-1.7.12 → agno-1.8.0}/agno/embedder/sentence_transformer.py +0 -0
  136. {agno-1.7.12 → agno-1.8.0}/agno/embedder/together.py +0 -0
  137. {agno-1.7.12 → agno-1.8.0}/agno/embedder/voyageai.py +0 -0
  138. {agno-1.7.12 → agno-1.8.0}/agno/eval/__init__.py +0 -0
  139. {agno-1.7.12 → agno-1.8.0}/agno/eval/accuracy.py +0 -0
  140. {agno-1.7.12 → agno-1.8.0}/agno/eval/performance.py +0 -0
  141. {agno-1.7.12 → agno-1.8.0}/agno/eval/reliability.py +0 -0
  142. {agno-1.7.12 → agno-1.8.0}/agno/eval/utils.py +0 -0
  143. {agno-1.7.12 → agno-1.8.0}/agno/exceptions.py +0 -0
  144. {agno-1.7.12 → agno-1.8.0}/agno/file/__init__.py +0 -0
  145. {agno-1.7.12 → agno-1.8.0}/agno/file/file.py +0 -0
  146. {agno-1.7.12 → agno-1.8.0}/agno/file/local/__init__.py +0 -0
  147. {agno-1.7.12 → agno-1.8.0}/agno/file/local/csv.py +0 -0
  148. {agno-1.7.12 → agno-1.8.0}/agno/file/local/txt.py +0 -0
  149. {agno-1.7.12 → agno-1.8.0}/agno/infra/__init__.py +0 -0
  150. {agno-1.7.12 → agno-1.8.0}/agno/infra/app.py +0 -0
  151. {agno-1.7.12 → agno-1.8.0}/agno/infra/base.py +0 -0
  152. {agno-1.7.12 → agno-1.8.0}/agno/infra/context.py +0 -0
  153. {agno-1.7.12 → agno-1.8.0}/agno/infra/db_app.py +0 -0
  154. {agno-1.7.12 → agno-1.8.0}/agno/infra/resource.py +0 -0
  155. {agno-1.7.12 → agno-1.8.0}/agno/infra/resources.py +0 -0
  156. {agno-1.7.12 → agno-1.8.0}/agno/knowledge/__init__.py +0 -0
  157. {agno-1.7.12 → agno-1.8.0}/agno/knowledge/agent.py +0 -0
  158. {agno-1.7.12 → agno-1.8.0}/agno/knowledge/arxiv.py +0 -0
  159. {agno-1.7.12 → agno-1.8.0}/agno/knowledge/combined.py +0 -0
  160. {agno-1.7.12 → agno-1.8.0}/agno/knowledge/csv.py +0 -0
  161. {agno-1.7.12 → agno-1.8.0}/agno/knowledge/csv_url.py +0 -0
  162. {agno-1.7.12 → agno-1.8.0}/agno/knowledge/document.py +0 -0
  163. {agno-1.7.12 → agno-1.8.0}/agno/knowledge/docx.py +0 -0
  164. {agno-1.7.12 → agno-1.8.0}/agno/knowledge/firecrawl.py +0 -0
  165. {agno-1.7.12 → agno-1.8.0}/agno/knowledge/gcs/__init__.py +0 -0
  166. {agno-1.7.12 → agno-1.8.0}/agno/knowledge/gcs/base.py +0 -0
  167. {agno-1.7.12 → agno-1.8.0}/agno/knowledge/json.py +0 -0
  168. {agno-1.7.12 → agno-1.8.0}/agno/knowledge/langchain.py +0 -0
  169. {agno-1.7.12 → agno-1.8.0}/agno/knowledge/light_rag.py +0 -0
  170. {agno-1.7.12 → agno-1.8.0}/agno/knowledge/llamaindex.py +0 -0
  171. {agno-1.7.12 → agno-1.8.0}/agno/knowledge/markdown.py +0 -0
  172. {agno-1.7.12 → agno-1.8.0}/agno/knowledge/pdf.py +0 -0
  173. {agno-1.7.12 → agno-1.8.0}/agno/knowledge/pdf_bytes.py +0 -0
  174. {agno-1.7.12 → agno-1.8.0}/agno/knowledge/pdf_url.py +0 -0
  175. {agno-1.7.12 → agno-1.8.0}/agno/knowledge/s3/__init__.py +0 -0
  176. {agno-1.7.12 → agno-1.8.0}/agno/knowledge/s3/base.py +0 -0
  177. {agno-1.7.12 → agno-1.8.0}/agno/knowledge/s3/pdf.py +0 -0
  178. {agno-1.7.12 → agno-1.8.0}/agno/knowledge/s3/text.py +0 -0
  179. {agno-1.7.12 → agno-1.8.0}/agno/knowledge/text.py +0 -0
  180. {agno-1.7.12 → agno-1.8.0}/agno/knowledge/url.py +0 -0
  181. {agno-1.7.12 → agno-1.8.0}/agno/knowledge/website.py +0 -0
  182. {agno-1.7.12 → agno-1.8.0}/agno/knowledge/wikipedia.py +0 -0
  183. {agno-1.7.12 → agno-1.8.0}/agno/knowledge/youtube.py +0 -0
  184. {agno-1.7.12 → agno-1.8.0}/agno/memory/__init__.py +0 -0
  185. {agno-1.7.12 → agno-1.8.0}/agno/memory/agent.py +0 -0
  186. {agno-1.7.12 → agno-1.8.0}/agno/memory/classifier.py +0 -0
  187. {agno-1.7.12 → agno-1.8.0}/agno/memory/db/__init__.py +0 -0
  188. {agno-1.7.12 → agno-1.8.0}/agno/memory/db/base.py +0 -0
  189. {agno-1.7.12 → agno-1.8.0}/agno/memory/db/mongodb.py +0 -0
  190. {agno-1.7.12 → agno-1.8.0}/agno/memory/db/postgres.py +0 -0
  191. {agno-1.7.12 → agno-1.8.0}/agno/memory/db/sqlite.py +0 -0
  192. {agno-1.7.12 → agno-1.8.0}/agno/memory/manager.py +0 -0
  193. {agno-1.7.12 → agno-1.8.0}/agno/memory/memory.py +0 -0
  194. {agno-1.7.12 → agno-1.8.0}/agno/memory/row.py +0 -0
  195. {agno-1.7.12 → agno-1.8.0}/agno/memory/summarizer.py +0 -0
  196. {agno-1.7.12 → agno-1.8.0}/agno/memory/summary.py +0 -0
  197. {agno-1.7.12 → agno-1.8.0}/agno/memory/team.py +0 -0
  198. {agno-1.7.12 → agno-1.8.0}/agno/memory/v2/__init__.py +0 -0
  199. {agno-1.7.12 → agno-1.8.0}/agno/memory/v2/db/__init__.py +0 -0
  200. {agno-1.7.12 → agno-1.8.0}/agno/memory/v2/db/base.py +0 -0
  201. {agno-1.7.12 → agno-1.8.0}/agno/memory/v2/db/firestore.py +0 -0
  202. {agno-1.7.12 → agno-1.8.0}/agno/memory/v2/db/mongodb.py +0 -0
  203. {agno-1.7.12 → agno-1.8.0}/agno/memory/v2/db/postgres.py +0 -0
  204. {agno-1.7.12 → agno-1.8.0}/agno/memory/v2/db/redis.py +0 -0
  205. {agno-1.7.12 → agno-1.8.0}/agno/memory/v2/db/schema.py +0 -0
  206. {agno-1.7.12 → agno-1.8.0}/agno/memory/v2/db/sqlite.py +0 -0
  207. {agno-1.7.12 → agno-1.8.0}/agno/memory/v2/manager.py +0 -0
  208. {agno-1.7.12 → agno-1.8.0}/agno/memory/v2/memory.py +0 -0
  209. {agno-1.7.12 → agno-1.8.0}/agno/memory/v2/schema.py +0 -0
  210. {agno-1.7.12 → agno-1.8.0}/agno/memory/v2/summarizer.py +0 -0
  211. {agno-1.7.12 → agno-1.8.0}/agno/memory/workflow.py +0 -0
  212. {agno-1.7.12 → agno-1.8.0}/agno/models/__init__.py +0 -0
  213. {agno-1.7.12 → agno-1.8.0}/agno/models/aimlapi/__init__.py +0 -0
  214. {agno-1.7.12 → agno-1.8.0}/agno/models/aimlapi/aimlapi.py +0 -0
  215. {agno-1.7.12 → agno-1.8.0}/agno/models/anthropic/__init__.py +0 -0
  216. {agno-1.7.12 → agno-1.8.0}/agno/models/anthropic/claude.py +0 -0
  217. {agno-1.7.12 → agno-1.8.0}/agno/models/aws/__init__.py +0 -0
  218. {agno-1.7.12 → agno-1.8.0}/agno/models/aws/bedrock.py +0 -0
  219. {agno-1.7.12 → agno-1.8.0}/agno/models/aws/claude.py +0 -0
  220. {agno-1.7.12 → agno-1.8.0}/agno/models/azure/__init__.py +0 -0
  221. {agno-1.7.12 → agno-1.8.0}/agno/models/azure/ai_foundry.py +0 -0
  222. {agno-1.7.12 → agno-1.8.0}/agno/models/azure/openai_chat.py +0 -0
  223. {agno-1.7.12 → agno-1.8.0}/agno/models/base.py +0 -0
  224. {agno-1.7.12 → agno-1.8.0}/agno/models/cerebras/__init__.py +0 -0
  225. {agno-1.7.12 → agno-1.8.0}/agno/models/cerebras/cerebras.py +0 -0
  226. {agno-1.7.12 → agno-1.8.0}/agno/models/cerebras/cerebras_openai.py +0 -0
  227. {agno-1.7.12 → agno-1.8.0}/agno/models/cohere/__init__.py +0 -0
  228. {agno-1.7.12 → agno-1.8.0}/agno/models/cohere/chat.py +0 -0
  229. {agno-1.7.12 → agno-1.8.0}/agno/models/dashscope/__init__.py +0 -0
  230. {agno-1.7.12 → agno-1.8.0}/agno/models/dashscope/dashscope.py +0 -0
  231. {agno-1.7.12 → agno-1.8.0}/agno/models/deepinfra/__init__.py +0 -0
  232. {agno-1.7.12 → agno-1.8.0}/agno/models/deepinfra/deepinfra.py +0 -0
  233. {agno-1.7.12 → agno-1.8.0}/agno/models/deepseek/__init__.py +0 -0
  234. {agno-1.7.12 → agno-1.8.0}/agno/models/deepseek/deepseek.py +0 -0
  235. {agno-1.7.12 → agno-1.8.0}/agno/models/defaults.py +0 -0
  236. {agno-1.7.12 → agno-1.8.0}/agno/models/fireworks/__init__.py +0 -0
  237. {agno-1.7.12 → agno-1.8.0}/agno/models/fireworks/fireworks.py +0 -0
  238. {agno-1.7.12 → agno-1.8.0}/agno/models/google/__init__.py +0 -0
  239. {agno-1.7.12 → agno-1.8.0}/agno/models/groq/__init__.py +0 -0
  240. {agno-1.7.12 → agno-1.8.0}/agno/models/groq/groq.py +0 -0
  241. {agno-1.7.12 → agno-1.8.0}/agno/models/huggingface/__init__.py +0 -0
  242. {agno-1.7.12 → agno-1.8.0}/agno/models/huggingface/huggingface.py +0 -0
  243. {agno-1.7.12 → agno-1.8.0}/agno/models/ibm/__init__.py +0 -0
  244. {agno-1.7.12 → agno-1.8.0}/agno/models/ibm/watsonx.py +0 -0
  245. {agno-1.7.12 → agno-1.8.0}/agno/models/internlm/__init__.py +0 -0
  246. {agno-1.7.12 → agno-1.8.0}/agno/models/internlm/internlm.py +0 -0
  247. {agno-1.7.12 → agno-1.8.0}/agno/models/langdb/__init__.py +0 -0
  248. {agno-1.7.12 → agno-1.8.0}/agno/models/langdb/langdb.py +0 -0
  249. {agno-1.7.12 → agno-1.8.0}/agno/models/litellm/__init__.py +0 -0
  250. {agno-1.7.12 → agno-1.8.0}/agno/models/litellm/chat.py +0 -0
  251. {agno-1.7.12 → agno-1.8.0}/agno/models/litellm/litellm_openai.py +0 -0
  252. {agno-1.7.12 → agno-1.8.0}/agno/models/lmstudio/__init__.py +0 -0
  253. {agno-1.7.12 → agno-1.8.0}/agno/models/lmstudio/lmstudio.py +0 -0
  254. {agno-1.7.12 → agno-1.8.0}/agno/models/message.py +0 -0
  255. {agno-1.7.12 → agno-1.8.0}/agno/models/meta/__init__.py +0 -0
  256. {agno-1.7.12 → agno-1.8.0}/agno/models/meta/llama.py +0 -0
  257. {agno-1.7.12 → agno-1.8.0}/agno/models/meta/llama_openai.py +0 -0
  258. {agno-1.7.12 → agno-1.8.0}/agno/models/mistral/__init__.py +0 -0
  259. {agno-1.7.12 → agno-1.8.0}/agno/models/mistral/mistral.py +0 -0
  260. {agno-1.7.12 → agno-1.8.0}/agno/models/nebius/__init__.py +0 -0
  261. {agno-1.7.12 → agno-1.8.0}/agno/models/nebius/nebius.py +0 -0
  262. {agno-1.7.12 → agno-1.8.0}/agno/models/nvidia/__init__.py +0 -0
  263. {agno-1.7.12 → agno-1.8.0}/agno/models/nvidia/nvidia.py +0 -0
  264. {agno-1.7.12 → agno-1.8.0}/agno/models/ollama/__init__.py +0 -0
  265. {agno-1.7.12 → agno-1.8.0}/agno/models/ollama/chat.py +0 -0
  266. {agno-1.7.12 → agno-1.8.0}/agno/models/ollama/tools.py +0 -0
  267. {agno-1.7.12 → agno-1.8.0}/agno/models/openai/__init__.py +0 -0
  268. {agno-1.7.12 → agno-1.8.0}/agno/models/openai/chat.py +0 -0
  269. {agno-1.7.12 → agno-1.8.0}/agno/models/openai/like.py +0 -0
  270. {agno-1.7.12 → agno-1.8.0}/agno/models/openai/responses.py +0 -0
  271. {agno-1.7.12 → agno-1.8.0}/agno/models/openrouter/__init__.py +0 -0
  272. {agno-1.7.12 → agno-1.8.0}/agno/models/openrouter/openrouter.py +0 -0
  273. {agno-1.7.12 → agno-1.8.0}/agno/models/perplexity/__init__.py +0 -0
  274. {agno-1.7.12 → agno-1.8.0}/agno/models/perplexity/perplexity.py +0 -0
  275. {agno-1.7.12 → agno-1.8.0}/agno/models/portkey/__init__.py +0 -0
  276. {agno-1.7.12 → agno-1.8.0}/agno/models/portkey/portkey.py +0 -0
  277. {agno-1.7.12 → agno-1.8.0}/agno/models/qwen/__init__.py +0 -0
  278. {agno-1.7.12 → agno-1.8.0}/agno/models/response.py +0 -0
  279. {agno-1.7.12 → agno-1.8.0}/agno/models/sambanova/__init__.py +0 -0
  280. {agno-1.7.12 → agno-1.8.0}/agno/models/sambanova/sambanova.py +0 -0
  281. {agno-1.7.12 → agno-1.8.0}/agno/models/together/__init__.py +0 -0
  282. {agno-1.7.12 → agno-1.8.0}/agno/models/together/together.py +0 -0
  283. {agno-1.7.12 → agno-1.8.0}/agno/models/vercel/__init__.py +0 -0
  284. {agno-1.7.12 → agno-1.8.0}/agno/models/vercel/v0.py +0 -0
  285. {agno-1.7.12 → agno-1.8.0}/agno/models/vllm/__init__.py +0 -0
  286. {agno-1.7.12 → agno-1.8.0}/agno/models/vllm/vllm.py +0 -0
  287. {agno-1.7.12 → agno-1.8.0}/agno/models/xai/__init__.py +0 -0
  288. {agno-1.7.12 → agno-1.8.0}/agno/models/xai/xai.py +0 -0
  289. {agno-1.7.12 → agno-1.8.0}/agno/playground/__init__.py +0 -0
  290. {agno-1.7.12 → agno-1.8.0}/agno/playground/deploy.py +0 -0
  291. {agno-1.7.12 → agno-1.8.0}/agno/playground/playground.py +0 -0
  292. {agno-1.7.12 → agno-1.8.0}/agno/playground/serve.py +0 -0
  293. {agno-1.7.12 → agno-1.8.0}/agno/playground/settings.py +0 -0
  294. {agno-1.7.12 → agno-1.8.0}/agno/py.typed +0 -0
  295. {agno-1.7.12 → agno-1.8.0}/agno/reasoning/__init__.py +0 -0
  296. {agno-1.7.12 → agno-1.8.0}/agno/reasoning/azure_ai_foundry.py +0 -0
  297. {agno-1.7.12 → agno-1.8.0}/agno/reasoning/deepseek.py +0 -0
  298. {agno-1.7.12 → agno-1.8.0}/agno/reasoning/default.py +0 -0
  299. {agno-1.7.12 → agno-1.8.0}/agno/reasoning/groq.py +0 -0
  300. {agno-1.7.12 → agno-1.8.0}/agno/reasoning/helpers.py +0 -0
  301. {agno-1.7.12 → agno-1.8.0}/agno/reasoning/ollama.py +0 -0
  302. {agno-1.7.12 → agno-1.8.0}/agno/reasoning/openai.py +0 -0
  303. {agno-1.7.12 → agno-1.8.0}/agno/reasoning/step.py +0 -0
  304. {agno-1.7.12 → agno-1.8.0}/agno/reranker/__init__.py +0 -0
  305. {agno-1.7.12 → agno-1.8.0}/agno/reranker/base.py +0 -0
  306. {agno-1.7.12 → agno-1.8.0}/agno/reranker/cohere.py +0 -0
  307. {agno-1.7.12 → agno-1.8.0}/agno/reranker/infinity.py +0 -0
  308. {agno-1.7.12 → agno-1.8.0}/agno/reranker/sentence_transformer.py +0 -0
  309. {agno-1.7.12 → agno-1.8.0}/agno/run/__init__.py +0 -0
  310. {agno-1.7.12 → agno-1.8.0}/agno/run/base.py +0 -0
  311. {agno-1.7.12 → agno-1.8.0}/agno/run/messages.py +0 -0
  312. {agno-1.7.12 → agno-1.8.0}/agno/run/response.py +0 -0
  313. {agno-1.7.12 → agno-1.8.0}/agno/run/team.py +0 -0
  314. {agno-1.7.12 → agno-1.8.0}/agno/run/v2/__init__.py +0 -0
  315. {agno-1.7.12 → agno-1.8.0}/agno/run/v2/workflow.py +0 -0
  316. {agno-1.7.12 → agno-1.8.0}/agno/run/workflow.py +0 -0
  317. {agno-1.7.12 → agno-1.8.0}/agno/storage/__init__.py +0 -0
  318. {agno-1.7.12 → agno-1.8.0}/agno/storage/agent/__init__.py +0 -0
  319. {agno-1.7.12 → agno-1.8.0}/agno/storage/agent/dynamodb.py +0 -0
  320. {agno-1.7.12 → agno-1.8.0}/agno/storage/agent/json.py +0 -0
  321. {agno-1.7.12 → agno-1.8.0}/agno/storage/agent/mongodb.py +0 -0
  322. {agno-1.7.12 → agno-1.8.0}/agno/storage/agent/postgres.py +0 -0
  323. {agno-1.7.12 → agno-1.8.0}/agno/storage/agent/singlestore.py +0 -0
  324. {agno-1.7.12 → agno-1.8.0}/agno/storage/agent/sqlite.py +0 -0
  325. {agno-1.7.12 → agno-1.8.0}/agno/storage/agent/yaml.py +0 -0
  326. {agno-1.7.12 → agno-1.8.0}/agno/storage/base.py +0 -0
  327. {agno-1.7.12 → agno-1.8.0}/agno/storage/dynamodb.py +0 -0
  328. {agno-1.7.12 → agno-1.8.0}/agno/storage/firestore.py +0 -0
  329. {agno-1.7.12 → agno-1.8.0}/agno/storage/gcs_json.py +0 -0
  330. {agno-1.7.12 → agno-1.8.0}/agno/storage/in_memory.py +0 -0
  331. {agno-1.7.12 → agno-1.8.0}/agno/storage/json.py +0 -0
  332. {agno-1.7.12 → agno-1.8.0}/agno/storage/mongodb.py +0 -0
  333. {agno-1.7.12 → agno-1.8.0}/agno/storage/mysql.py +0 -0
  334. {agno-1.7.12 → agno-1.8.0}/agno/storage/postgres.py +0 -0
  335. {agno-1.7.12 → agno-1.8.0}/agno/storage/redis.py +0 -0
  336. {agno-1.7.12 → agno-1.8.0}/agno/storage/session/__init__.py +0 -0
  337. {agno-1.7.12 → agno-1.8.0}/agno/storage/session/agent.py +0 -0
  338. {agno-1.7.12 → agno-1.8.0}/agno/storage/session/team.py +0 -0
  339. {agno-1.7.12 → agno-1.8.0}/agno/storage/session/v2/__init__.py +0 -0
  340. {agno-1.7.12 → agno-1.8.0}/agno/storage/session/v2/workflow.py +0 -0
  341. {agno-1.7.12 → agno-1.8.0}/agno/storage/session/workflow.py +0 -0
  342. {agno-1.7.12 → agno-1.8.0}/agno/storage/singlestore.py +0 -0
  343. {agno-1.7.12 → agno-1.8.0}/agno/storage/sqlite.py +0 -0
  344. {agno-1.7.12 → agno-1.8.0}/agno/storage/workflow/__init__.py +0 -0
  345. {agno-1.7.12 → agno-1.8.0}/agno/storage/workflow/mongodb.py +0 -0
  346. {agno-1.7.12 → agno-1.8.0}/agno/storage/workflow/postgres.py +0 -0
  347. {agno-1.7.12 → agno-1.8.0}/agno/storage/workflow/sqlite.py +0 -0
  348. {agno-1.7.12 → agno-1.8.0}/agno/storage/yaml.py +0 -0
  349. {agno-1.7.12 → agno-1.8.0}/agno/team/__init__.py +0 -0
  350. {agno-1.7.12 → agno-1.8.0}/agno/team/team.py +0 -0
  351. {agno-1.7.12 → agno-1.8.0}/agno/tools/__init__.py +0 -0
  352. {agno-1.7.12 → agno-1.8.0}/agno/tools/agentql.py +0 -0
  353. {agno-1.7.12 → agno-1.8.0}/agno/tools/airflow.py +0 -0
  354. {agno-1.7.12 → agno-1.8.0}/agno/tools/api.py +0 -0
  355. {agno-1.7.12 → agno-1.8.0}/agno/tools/apify.py +0 -0
  356. {agno-1.7.12 → agno-1.8.0}/agno/tools/arxiv.py +0 -0
  357. {agno-1.7.12 → agno-1.8.0}/agno/tools/aws_lambda.py +0 -0
  358. {agno-1.7.12 → agno-1.8.0}/agno/tools/aws_ses.py +0 -0
  359. {agno-1.7.12 → agno-1.8.0}/agno/tools/baidusearch.py +0 -0
  360. {agno-1.7.12 → agno-1.8.0}/agno/tools/bitbucket.py +0 -0
  361. {agno-1.7.12 → agno-1.8.0}/agno/tools/brandfetch.py +0 -0
  362. {agno-1.7.12 → agno-1.8.0}/agno/tools/bravesearch.py +0 -0
  363. {agno-1.7.12 → agno-1.8.0}/agno/tools/brightdata.py +0 -0
  364. {agno-1.7.12 → agno-1.8.0}/agno/tools/browserbase.py +0 -0
  365. {agno-1.7.12 → agno-1.8.0}/agno/tools/calcom.py +0 -0
  366. {agno-1.7.12 → agno-1.8.0}/agno/tools/calculator.py +0 -0
  367. {agno-1.7.12 → agno-1.8.0}/agno/tools/cartesia.py +0 -0
  368. {agno-1.7.12 → agno-1.8.0}/agno/tools/clickup_tool.py +0 -0
  369. {agno-1.7.12 → agno-1.8.0}/agno/tools/confluence.py +0 -0
  370. {agno-1.7.12 → agno-1.8.0}/agno/tools/crawl4ai.py +0 -0
  371. {agno-1.7.12 → agno-1.8.0}/agno/tools/csv_toolkit.py +0 -0
  372. {agno-1.7.12 → agno-1.8.0}/agno/tools/dalle.py +0 -0
  373. {agno-1.7.12 → agno-1.8.0}/agno/tools/daytona.py +0 -0
  374. {agno-1.7.12 → agno-1.8.0}/agno/tools/decorator.py +0 -0
  375. {agno-1.7.12 → agno-1.8.0}/agno/tools/desi_vocal.py +0 -0
  376. {agno-1.7.12 → agno-1.8.0}/agno/tools/discord.py +0 -0
  377. {agno-1.7.12 → agno-1.8.0}/agno/tools/docker.py +0 -0
  378. {agno-1.7.12 → agno-1.8.0}/agno/tools/duckdb.py +0 -0
  379. {agno-1.7.12 → agno-1.8.0}/agno/tools/e2b.py +0 -0
  380. {agno-1.7.12 → agno-1.8.0}/agno/tools/eleven_labs.py +0 -0
  381. {agno-1.7.12 → agno-1.8.0}/agno/tools/email.py +0 -0
  382. {agno-1.7.12 → agno-1.8.0}/agno/tools/evm.py +0 -0
  383. {agno-1.7.12 → agno-1.8.0}/agno/tools/exa.py +0 -0
  384. {agno-1.7.12 → agno-1.8.0}/agno/tools/fal.py +0 -0
  385. {agno-1.7.12 → agno-1.8.0}/agno/tools/file.py +0 -0
  386. {agno-1.7.12 → agno-1.8.0}/agno/tools/financial_datasets.py +0 -0
  387. {agno-1.7.12 → agno-1.8.0}/agno/tools/firecrawl.py +0 -0
  388. {agno-1.7.12 → agno-1.8.0}/agno/tools/function.py +0 -0
  389. {agno-1.7.12 → agno-1.8.0}/agno/tools/giphy.py +0 -0
  390. {agno-1.7.12 → agno-1.8.0}/agno/tools/gmail.py +0 -0
  391. {agno-1.7.12 → agno-1.8.0}/agno/tools/google_bigquery.py +0 -0
  392. {agno-1.7.12 → agno-1.8.0}/agno/tools/google_maps.py +0 -0
  393. {agno-1.7.12 → agno-1.8.0}/agno/tools/googlecalendar.py +0 -0
  394. {agno-1.7.12 → agno-1.8.0}/agno/tools/googlesearch.py +0 -0
  395. {agno-1.7.12 → agno-1.8.0}/agno/tools/googlesheets.py +0 -0
  396. {agno-1.7.12 → agno-1.8.0}/agno/tools/hackernews.py +0 -0
  397. {agno-1.7.12 → agno-1.8.0}/agno/tools/jina.py +0 -0
  398. {agno-1.7.12 → agno-1.8.0}/agno/tools/jira.py +0 -0
  399. {agno-1.7.12 → agno-1.8.0}/agno/tools/knowledge.py +0 -0
  400. {agno-1.7.12 → agno-1.8.0}/agno/tools/linear.py +0 -0
  401. {agno-1.7.12 → agno-1.8.0}/agno/tools/linkup.py +0 -0
  402. {agno-1.7.12 → agno-1.8.0}/agno/tools/local_file_system.py +0 -0
  403. {agno-1.7.12 → agno-1.8.0}/agno/tools/lumalab.py +0 -0
  404. {agno-1.7.12 → agno-1.8.0}/agno/tools/mcp.py +0 -0
  405. {agno-1.7.12 → agno-1.8.0}/agno/tools/mem0.py +0 -0
  406. {agno-1.7.12 → agno-1.8.0}/agno/tools/mlx_transcribe.py +0 -0
  407. {agno-1.7.12 → agno-1.8.0}/agno/tools/models/__init__.py +0 -0
  408. {agno-1.7.12 → agno-1.8.0}/agno/tools/models/azure_openai.py +0 -0
  409. {agno-1.7.12 → agno-1.8.0}/agno/tools/models/gemini.py +0 -0
  410. {agno-1.7.12 → agno-1.8.0}/agno/tools/models/groq.py +0 -0
  411. {agno-1.7.12 → agno-1.8.0}/agno/tools/models/morph.py +0 -0
  412. {agno-1.7.12 → agno-1.8.0}/agno/tools/models/nebius.py +0 -0
  413. {agno-1.7.12 → agno-1.8.0}/agno/tools/models_labs.py +0 -0
  414. {agno-1.7.12 → agno-1.8.0}/agno/tools/moviepy_video.py +0 -0
  415. {agno-1.7.12 → agno-1.8.0}/agno/tools/newspaper.py +0 -0
  416. {agno-1.7.12 → agno-1.8.0}/agno/tools/newspaper4k.py +0 -0
  417. {agno-1.7.12 → agno-1.8.0}/agno/tools/openai.py +0 -0
  418. {agno-1.7.12 → agno-1.8.0}/agno/tools/openbb.py +0 -0
  419. {agno-1.7.12 → agno-1.8.0}/agno/tools/opencv.py +0 -0
  420. {agno-1.7.12 → agno-1.8.0}/agno/tools/openweather.py +0 -0
  421. {agno-1.7.12 → agno-1.8.0}/agno/tools/oxylabs.py +0 -0
  422. {agno-1.7.12 → agno-1.8.0}/agno/tools/pandas.py +0 -0
  423. {agno-1.7.12 → agno-1.8.0}/agno/tools/postgres.py +0 -0
  424. {agno-1.7.12 → agno-1.8.0}/agno/tools/pubmed.py +0 -0
  425. {agno-1.7.12 → agno-1.8.0}/agno/tools/python.py +0 -0
  426. {agno-1.7.12 → agno-1.8.0}/agno/tools/reasoning.py +0 -0
  427. {agno-1.7.12 → agno-1.8.0}/agno/tools/reddit.py +0 -0
  428. {agno-1.7.12 → agno-1.8.0}/agno/tools/replicate.py +0 -0
  429. {agno-1.7.12 → agno-1.8.0}/agno/tools/resend.py +0 -0
  430. {agno-1.7.12 → agno-1.8.0}/agno/tools/searxng.py +0 -0
  431. {agno-1.7.12 → agno-1.8.0}/agno/tools/serpapi.py +0 -0
  432. {agno-1.7.12 → agno-1.8.0}/agno/tools/serper.py +0 -0
  433. {agno-1.7.12 → agno-1.8.0}/agno/tools/shell.py +0 -0
  434. {agno-1.7.12 → agno-1.8.0}/agno/tools/slack.py +0 -0
  435. {agno-1.7.12 → agno-1.8.0}/agno/tools/sleep.py +0 -0
  436. {agno-1.7.12 → agno-1.8.0}/agno/tools/spider.py +0 -0
  437. {agno-1.7.12 → agno-1.8.0}/agno/tools/sql.py +0 -0
  438. {agno-1.7.12 → agno-1.8.0}/agno/tools/streamlit/__init__.py +0 -0
  439. {agno-1.7.12 → agno-1.8.0}/agno/tools/streamlit/components.py +0 -0
  440. {agno-1.7.12 → agno-1.8.0}/agno/tools/tavily.py +0 -0
  441. {agno-1.7.12 → agno-1.8.0}/agno/tools/telegram.py +0 -0
  442. {agno-1.7.12 → agno-1.8.0}/agno/tools/thinking.py +0 -0
  443. {agno-1.7.12 → agno-1.8.0}/agno/tools/todoist.py +0 -0
  444. {agno-1.7.12 → agno-1.8.0}/agno/tools/tool_registry.py +0 -0
  445. {agno-1.7.12 → agno-1.8.0}/agno/tools/toolkit.py +0 -0
  446. {agno-1.7.12 → agno-1.8.0}/agno/tools/trafilatura.py +0 -0
  447. {agno-1.7.12 → agno-1.8.0}/agno/tools/trello.py +0 -0
  448. {agno-1.7.12 → agno-1.8.0}/agno/tools/twilio.py +0 -0
  449. {agno-1.7.12 → agno-1.8.0}/agno/tools/user_control_flow.py +0 -0
  450. {agno-1.7.12 → agno-1.8.0}/agno/tools/valyu.py +0 -0
  451. {agno-1.7.12 → agno-1.8.0}/agno/tools/visualization.py +0 -0
  452. {agno-1.7.12 → agno-1.8.0}/agno/tools/webbrowser.py +0 -0
  453. {agno-1.7.12 → agno-1.8.0}/agno/tools/webex.py +0 -0
  454. {agno-1.7.12 → agno-1.8.0}/agno/tools/website.py +0 -0
  455. {agno-1.7.12 → agno-1.8.0}/agno/tools/webtools.py +0 -0
  456. {agno-1.7.12 → agno-1.8.0}/agno/tools/whatsapp.py +0 -0
  457. {agno-1.7.12 → agno-1.8.0}/agno/tools/wikipedia.py +0 -0
  458. {agno-1.7.12 → agno-1.8.0}/agno/tools/x.py +0 -0
  459. {agno-1.7.12 → agno-1.8.0}/agno/tools/yfinance.py +0 -0
  460. {agno-1.7.12 → agno-1.8.0}/agno/tools/youtube.py +0 -0
  461. {agno-1.7.12 → agno-1.8.0}/agno/tools/zendesk.py +0 -0
  462. {agno-1.7.12 → agno-1.8.0}/agno/tools/zep.py +0 -0
  463. {agno-1.7.12 → agno-1.8.0}/agno/tools/zoom.py +0 -0
  464. {agno-1.7.12 → agno-1.8.0}/agno/utils/__init__.py +0 -0
  465. {agno-1.7.12 → agno-1.8.0}/agno/utils/audio.py +0 -0
  466. {agno-1.7.12 → agno-1.8.0}/agno/utils/certs.py +0 -0
  467. {agno-1.7.12 → agno-1.8.0}/agno/utils/code_execution.py +0 -0
  468. {agno-1.7.12 → agno-1.8.0}/agno/utils/common.py +0 -0
  469. {agno-1.7.12 → agno-1.8.0}/agno/utils/defaults.py +0 -0
  470. {agno-1.7.12 → agno-1.8.0}/agno/utils/dttm.py +0 -0
  471. {agno-1.7.12 → agno-1.8.0}/agno/utils/enum.py +0 -0
  472. {agno-1.7.12 → agno-1.8.0}/agno/utils/env.py +0 -0
  473. {agno-1.7.12 → agno-1.8.0}/agno/utils/events.py +0 -0
  474. {agno-1.7.12 → agno-1.8.0}/agno/utils/filesystem.py +0 -0
  475. {agno-1.7.12 → agno-1.8.0}/agno/utils/format_str.py +0 -0
  476. {agno-1.7.12 → agno-1.8.0}/agno/utils/functions.py +0 -0
  477. {agno-1.7.12 → agno-1.8.0}/agno/utils/gemini.py +0 -0
  478. {agno-1.7.12 → agno-1.8.0}/agno/utils/git.py +0 -0
  479. {agno-1.7.12 → agno-1.8.0}/agno/utils/http.py +0 -0
  480. {agno-1.7.12 → agno-1.8.0}/agno/utils/json_io.py +0 -0
  481. {agno-1.7.12 → agno-1.8.0}/agno/utils/json_schema.py +0 -0
  482. {agno-1.7.12 → agno-1.8.0}/agno/utils/load_env.py +0 -0
  483. {agno-1.7.12 → agno-1.8.0}/agno/utils/location.py +0 -0
  484. {agno-1.7.12 → agno-1.8.0}/agno/utils/log.py +0 -0
  485. {agno-1.7.12 → agno-1.8.0}/agno/utils/mcp.py +0 -0
  486. {agno-1.7.12 → agno-1.8.0}/agno/utils/media.py +0 -0
  487. {agno-1.7.12 → agno-1.8.0}/agno/utils/merge_dict.py +0 -0
  488. {agno-1.7.12 → agno-1.8.0}/agno/utils/message.py +0 -0
  489. {agno-1.7.12 → agno-1.8.0}/agno/utils/models/__init__.py +0 -0
  490. {agno-1.7.12 → agno-1.8.0}/agno/utils/models/ai_foundry.py +0 -0
  491. {agno-1.7.12 → agno-1.8.0}/agno/utils/models/aws_claude.py +0 -0
  492. {agno-1.7.12 → agno-1.8.0}/agno/utils/models/claude.py +0 -0
  493. {agno-1.7.12 → agno-1.8.0}/agno/utils/models/cohere.py +0 -0
  494. {agno-1.7.12 → agno-1.8.0}/agno/utils/models/llama.py +0 -0
  495. {agno-1.7.12 → agno-1.8.0}/agno/utils/models/mistral.py +0 -0
  496. {agno-1.7.12 → agno-1.8.0}/agno/utils/models/openai_responses.py +0 -0
  497. {agno-1.7.12 → agno-1.8.0}/agno/utils/models/schema_utils.py +0 -0
  498. {agno-1.7.12 → agno-1.8.0}/agno/utils/models/watsonx.py +0 -0
  499. {agno-1.7.12 → agno-1.8.0}/agno/utils/openai.py +0 -0
  500. {agno-1.7.12 → agno-1.8.0}/agno/utils/pickle.py +0 -0
  501. {agno-1.7.12 → agno-1.8.0}/agno/utils/pprint.py +0 -0
  502. {agno-1.7.12 → agno-1.8.0}/agno/utils/prompts.py +0 -0
  503. {agno-1.7.12 → agno-1.8.0}/agno/utils/py_io.py +0 -0
  504. {agno-1.7.12 → agno-1.8.0}/agno/utils/pyproject.py +0 -0
  505. {agno-1.7.12 → agno-1.8.0}/agno/utils/resource_filter.py +0 -0
  506. {agno-1.7.12 → agno-1.8.0}/agno/utils/response.py +0 -0
  507. {agno-1.7.12 → agno-1.8.0}/agno/utils/response_iterator.py +0 -0
  508. {agno-1.7.12 → agno-1.8.0}/agno/utils/safe_formatter.py +0 -0
  509. {agno-1.7.12 → agno-1.8.0}/agno/utils/shell.py +0 -0
  510. {agno-1.7.12 → agno-1.8.0}/agno/utils/string.py +0 -0
  511. {agno-1.7.12 → agno-1.8.0}/agno/utils/timer.py +0 -0
  512. {agno-1.7.12 → agno-1.8.0}/agno/utils/tools.py +0 -0
  513. {agno-1.7.12 → agno-1.8.0}/agno/utils/web.py +0 -0
  514. {agno-1.7.12 → agno-1.8.0}/agno/utils/whatsapp.py +0 -0
  515. {agno-1.7.12 → agno-1.8.0}/agno/utils/yaml_io.py +0 -0
  516. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/__init__.py +0 -0
  517. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/base.py +0 -0
  518. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/cassandra/__init__.py +0 -0
  519. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/cassandra/cassandra.py +0 -0
  520. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/cassandra/extra_param_mixin.py +0 -0
  521. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/cassandra/index.py +0 -0
  522. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/chroma/__init__.py +0 -0
  523. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/chroma/chromadb.py +0 -0
  524. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/clickhouse/__init__.py +0 -0
  525. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/clickhouse/clickhousedb.py +0 -0
  526. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/clickhouse/index.py +0 -0
  527. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/couchbase/__init__.py +0 -0
  528. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/couchbase/couchbase.py +0 -0
  529. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/distance.py +0 -0
  530. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/lancedb/__init__.py +0 -0
  531. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/lancedb/lance_db.py +0 -0
  532. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/milvus/__init__.py +0 -0
  533. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/milvus/milvus.py +0 -0
  534. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/mongodb/__init__.py +0 -0
  535. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/mongodb/mongodb.py +0 -0
  536. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/pgvector/__init__.py +0 -0
  537. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/pgvector/index.py +0 -0
  538. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/pineconedb/__init__.py +0 -0
  539. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/pineconedb/pineconedb.py +0 -0
  540. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/qdrant/__init__.py +0 -0
  541. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/qdrant/qdrant.py +0 -0
  542. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/search.py +0 -0
  543. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/singlestore/__init__.py +0 -0
  544. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/singlestore/index.py +0 -0
  545. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/singlestore/singlestore.py +0 -0
  546. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/surrealdb/__init__.py +0 -0
  547. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/surrealdb/surrealdb.py +0 -0
  548. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/upstashdb/__init__.py +0 -0
  549. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/upstashdb/upstashdb.py +0 -0
  550. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/weaviate/__init__.py +0 -0
  551. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/weaviate/index.py +0 -0
  552. {agno-1.7.12 → agno-1.8.0}/agno/vectordb/weaviate/weaviate.py +0 -0
  553. {agno-1.7.12 → agno-1.8.0}/agno/workflow/__init__.py +0 -0
  554. {agno-1.7.12 → agno-1.8.0}/agno/workflow/v2/__init__.py +0 -0
  555. {agno-1.7.12 → agno-1.8.0}/agno/workflow/v2/condition.py +0 -0
  556. {agno-1.7.12 → agno-1.8.0}/agno/workflow/v2/loop.py +0 -0
  557. {agno-1.7.12 → agno-1.8.0}/agno/workflow/v2/parallel.py +0 -0
  558. {agno-1.7.12 → agno-1.8.0}/agno/workflow/v2/router.py +0 -0
  559. {agno-1.7.12 → agno-1.8.0}/agno/workflow/v2/steps.py +0 -0
  560. {agno-1.7.12 → agno-1.8.0}/agno/workflow/workflow.py +0 -0
  561. {agno-1.7.12 → agno-1.8.0}/agno/workspace/__init__.py +0 -0
  562. {agno-1.7.12 → agno-1.8.0}/agno/workspace/config.py +0 -0
  563. {agno-1.7.12 → agno-1.8.0}/agno/workspace/enums.py +0 -0
  564. {agno-1.7.12 → agno-1.8.0}/agno/workspace/helpers.py +0 -0
  565. {agno-1.7.12 → agno-1.8.0}/agno/workspace/operator.py +0 -0
  566. {agno-1.7.12 → agno-1.8.0}/agno/workspace/settings.py +0 -0
  567. {agno-1.7.12 → agno-1.8.0}/agno.egg-info/dependency_links.txt +0 -0
  568. {agno-1.7.12 → agno-1.8.0}/agno.egg-info/entry_points.txt +0 -0
  569. {agno-1.7.12 → agno-1.8.0}/agno.egg-info/top_level.txt +0 -0
  570. {agno-1.7.12 → agno-1.8.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agno
3
- Version: 1.7.12
3
+ Version: 1.8.0
4
4
  Summary: Agno: a lightweight library for building Multi-Agent Systems
5
5
  Author-email: Ashpreet Bedi <ashpreet@agno.com>
6
6
  License: Copyright (c) Agno, Inc.
@@ -424,7 +424,7 @@ Requires-Dist: fastapi; extra == "dev"
424
424
  Requires-Dist: uvicorn; extra == "dev"
425
425
  Provides-Extra: integration-tests
426
426
  Requires-Dist: exa_py; extra == "integration-tests"
427
- Requires-Dist: duckduckgo-search; extra == "integration-tests"
427
+ Requires-Dist: ddgs; extra == "integration-tests"
428
428
  Requires-Dist: yfinance; extra == "integration-tests"
429
429
  Requires-Dist: sqlalchemy; extra == "integration-tests"
430
430
  Requires-Dist: Pillow; extra == "integration-tests"
@@ -493,7 +493,7 @@ Requires-Dist: cartesia; extra == "cartesia"
493
493
  Provides-Extra: confluence
494
494
  Requires-Dist: atlassian-python-api; extra == "confluence"
495
495
  Provides-Extra: ddg
496
- Requires-Dist: duckduckgo-search; extra == "ddg"
496
+ Requires-Dist: ddgs; extra == "ddg"
497
497
  Provides-Extra: duckdb
498
498
  Requires-Dist: duckdb; extra == "duckdb"
499
499
  Provides-Extra: elevenlabs
@@ -525,6 +525,8 @@ Provides-Extra: mcp
525
525
  Requires-Dist: mcp; extra == "mcp"
526
526
  Provides-Extra: mem0
527
527
  Requires-Dist: mem0ai; extra == "mem0"
528
+ Provides-Extra: memori
529
+ Requires-Dist: memorisdk; extra == "memori"
528
530
  Provides-Extra: newspaper
529
531
  Requires-Dist: newspaper4k; extra == "newspaper"
530
532
  Requires-Dist: lxml_html_clean; extra == "newspaper"
@@ -664,6 +666,7 @@ Requires-Dist: agno[confluence]; extra == "tools"
664
666
  Requires-Dist: agno[oxylabs]; extra == "tools"
665
667
  Requires-Dist: agno[zep]; extra == "tools"
666
668
  Requires-Dist: agno[mem0]; extra == "tools"
669
+ Requires-Dist: agno[memori]; extra == "tools"
667
670
  Requires-Dist: agno[google_bigquery]; extra == "tools"
668
671
  Requires-Dist: agno[psycopg]; extra == "tools"
669
672
  Requires-Dist: agno[trafilatura]; extra == "tools"
@@ -881,7 +884,7 @@ agent_team.print_response("What's the market outlook and financial performance o
881
884
  Install dependencies and run the Agent team:
882
885
 
883
886
  ```shell
884
- pip install duckduckgo-search yfinance
887
+ pip install ddgs yfinance
885
888
 
886
889
  python agent_team.py
887
890
  ```
@@ -168,7 +168,7 @@ agent_team.print_response("What's the market outlook and financial performance o
168
168
  Install dependencies and run the Agent team:
169
169
 
170
170
  ```shell
171
- pip install duckduckgo-search yfinance
171
+ pip install ddgs yfinance
172
172
 
173
173
  python agent_team.py
174
174
  ```
@@ -129,7 +129,7 @@ def _create_events_from_chunk(
129
129
  Process a single chunk and return events to emit + updated message_started state.
130
130
  Returns: (events_to_emit, new_message_started_state)
131
131
  """
132
- events_to_emit = []
132
+ events_to_emit: List[BaseEvent] = []
133
133
 
134
134
  # Extract content if the contextual event is a content event
135
135
  if chunk.event == RunEvent.run_response_content:
@@ -13,7 +13,7 @@ from agno.media import Audio, Image, Video
13
13
  from agno.media import File as FileMedia
14
14
  from agno.run.response import RunResponseErrorEvent
15
15
  from agno.run.team import RunResponseErrorEvent as TeamRunResponseErrorEvent
16
- from agno.run.team import TeamRunResponseEvent
16
+ from agno.run.team import TeamRunResponse, TeamRunResponseEvent
17
17
  from agno.run.v2.workflow import WorkflowErrorEvent
18
18
  from agno.team.team import Team
19
19
  from agno.utils.log import logger
@@ -425,15 +425,18 @@ def get_async_router(
425
425
  )
426
426
  return run_response.to_dict()
427
427
  elif team:
428
- team_run_response = await team.arun(
429
- message=message,
430
- session_id=session_id,
431
- user_id=user_id,
432
- images=base64_images if base64_images else None,
433
- audio=base64_audios if base64_audios else None,
434
- videos=base64_videos if base64_videos else None,
435
- files=document_files if document_files else None,
436
- stream=False,
428
+ team_run_response = cast(
429
+ TeamRunResponse,
430
+ await team.arun(
431
+ message=message,
432
+ session_id=session_id,
433
+ user_id=user_id,
434
+ images=base64_images if base64_images else None,
435
+ audio=base64_audios if base64_audios else None,
436
+ videos=base64_videos if base64_videos else None,
437
+ files=document_files if document_files else None,
438
+ stream=False,
439
+ ),
437
440
  )
438
441
  return team_run_response.to_dict()
439
442
  elif workflow:
@@ -1,4 +1,4 @@
1
- from typing import AsyncIterator, Iterator, List, Optional, Dict, Any
1
+ from typing import Any, AsyncIterator, Dict, Iterator, List, Optional
2
2
 
3
3
  from agno.document import Document
4
4
  from agno.document.reader.gcs.pdf_reader import GCSPDFReader
@@ -93,7 +93,7 @@ class GCSPDFKnowledgeBase(GCSKnowledgeBase):
93
93
  document_iterator = self.async_document_lists
94
94
  async for document_list in document_iterator: # type: ignore
95
95
  documents_to_load = document_list
96
-
96
+
97
97
  # Track metadata for filtering capabilities and collect metadata for filters
98
98
  filters_metadata: Optional[Dict[str, Any]] = None
99
99
  for doc in document_list:
@@ -38,13 +38,34 @@ class ImageArtifact(Media):
38
38
  mime_type: Optional[str] = None
39
39
  alt_text: Optional[str] = None
40
40
 
41
+ def _normalise_content(self) -> Optional[Union[str, bytes]]:
42
+ if self.content is None:
43
+ return None
44
+ content_normalised: Union[str, bytes] = self.content
45
+ if content_normalised and isinstance(content_normalised, bytes):
46
+ from base64 import b64encode
47
+
48
+ try:
49
+ # First try to decode as UTF-8
50
+ content_normalised = content_normalised.decode("utf-8") # type: ignore
51
+ except UnicodeDecodeError:
52
+ # Fallback to base64 encoding for binary content
53
+ content_normalised = b64encode(bytes(content_normalised)).decode("utf-8") # type: ignore
54
+ except Exception:
55
+ # Last resort: try to convert to base64
56
+ try:
57
+ content_normalised = b64encode(bytes(content_normalised)).decode("utf-8") # type: ignore
58
+ except Exception:
59
+ pass
60
+ return content_normalised
61
+
41
62
  def to_dict(self) -> Dict[str, Any]:
63
+ content_normalised = self._normalise_content()
64
+
42
65
  response_dict = {
43
66
  "id": self.id,
44
67
  "url": self.url,
45
- "content": self.content.decode("utf-8")
46
- if self.content and isinstance(self.content, bytes)
47
- else self.content,
68
+ "content": content_normalised,
48
69
  "mime_type": self.mime_type,
49
70
  "alt_text": self.alt_text,
50
71
  }
@@ -30,9 +30,11 @@ try:
30
30
  GoogleSearch,
31
31
  GoogleSearchRetrieval,
32
32
  Part,
33
+ Retrieval,
33
34
  ThinkingConfig,
34
35
  Tool,
35
36
  UrlContext,
37
+ VertexAISearch,
36
38
  )
37
39
  from google.genai.types import (
38
40
  File as GeminiFile,
@@ -70,6 +72,8 @@ class Gemini(Model):
70
72
  grounding: bool = False
71
73
  grounding_dynamic_threshold: Optional[float] = None
72
74
  url_context: bool = False
75
+ vertexai_search: bool = False
76
+ vertexai_search_datastore: Optional[str] = None
73
77
 
74
78
  temperature: Optional[float] = None
75
79
  top_p: Optional[float] = None
@@ -204,7 +208,9 @@ class Gemini(Model):
204
208
  builtin_tools = []
205
209
 
206
210
  if self.grounding:
207
- log_info("Grounding enabled. This is a legacy tool. For Gemini 2.0+ Please use enable `search` flag instead.")
211
+ log_info(
212
+ "Grounding enabled. This is a legacy tool. For Gemini 2.0+ Please use enable `search` flag instead."
213
+ )
208
214
  builtin_tools.append(
209
215
  Tool(
210
216
  google_search=GoogleSearchRetrieval(
@@ -223,6 +229,15 @@ class Gemini(Model):
223
229
  log_info("URL context enabled.")
224
230
  builtin_tools.append(Tool(url_context=UrlContext()))
225
231
 
232
+ if self.vertexai_search:
233
+ log_info("Vertex AI Search enabled.")
234
+ if not self.vertexai_search_datastore:
235
+ log_error("vertexai_search_datastore must be provided when vertexai_search is enabled.")
236
+ raise ValueError("vertexai_search_datastore must be provided when vertexai_search is enabled.")
237
+ builtin_tools.append(
238
+ Tool(retrieval=Retrieval(vertex_ai_search=VertexAISearch(datastore=self.vertexai_search_datastore)))
239
+ )
240
+
226
241
  # Set tools in config
227
242
  if builtin_tools:
228
243
  if tools:
@@ -5,9 +5,9 @@ from agno.tools import Toolkit
5
5
  from agno.utils.log import log_debug
6
6
 
7
7
  try:
8
- from duckduckgo_search import DDGS
8
+ from ddgs import DDGS
9
9
  except ImportError:
10
- raise ImportError("`duckduckgo-search` not installed. Please install using `pip install duckduckgo-search`")
10
+ raise ImportError("`duckduckgo-search` not installed. Please install using `pip install ddgs`")
11
11
 
12
12
 
13
13
  class DuckDuckGoTools(Toolkit):
@@ -18,9 +18,7 @@ class DuckDuckGoTools(Toolkit):
18
18
  news (bool): Enable DuckDuckGo news function.
19
19
  modifier (Optional[str]): A modifier to be used in the search request.
20
20
  fixed_max_results (Optional[int]): A fixed number of maximum results.
21
- headers (Optional[Any]): Headers to be used in the search request.
22
21
  proxy (Optional[str]): Proxy to be used in the search request.
23
- proxies (Optional[Any]): A list of proxies to be used in the search request.
24
22
  timeout (Optional[int]): The maximum number of seconds to wait for a response.
25
23
 
26
24
  """
@@ -31,16 +29,12 @@ class DuckDuckGoTools(Toolkit):
31
29
  news: bool = True,
32
30
  modifier: Optional[str] = None,
33
31
  fixed_max_results: Optional[int] = None,
34
- headers: Optional[Any] = None,
35
32
  proxy: Optional[str] = None,
36
- proxies: Optional[Any] = None,
37
33
  timeout: Optional[int] = 10,
38
34
  verify_ssl: bool = True,
39
35
  **kwargs,
40
36
  ):
41
- self.headers: Optional[Any] = headers
42
37
  self.proxy: Optional[str] = proxy
43
- self.proxies: Optional[Any] = proxies
44
38
  self.timeout: Optional[int] = timeout
45
39
  self.fixed_max_results: Optional[int] = fixed_max_results
46
40
  self.modifier: Optional[str] = modifier
@@ -68,11 +62,10 @@ class DuckDuckGoTools(Toolkit):
68
62
  search_query = f"{self.modifier} {query}" if self.modifier else query
69
63
 
70
64
  log_debug(f"Searching DDG for: {search_query}")
71
- ddgs = DDGS(
72
- headers=self.headers, proxy=self.proxy, proxies=self.proxies, timeout=self.timeout, verify=self.verify_ssl
73
- )
65
+ with DDGS(proxy=self.proxy, timeout=self.timeout, verify=self.verify_ssl) as ddgs:
66
+ results = ddgs.text(search_query, max_results=actual_max_results)
74
67
 
75
- return json.dumps(ddgs.text(keywords=search_query, max_results=actual_max_results), indent=2)
68
+ return json.dumps(results, indent=2)
76
69
 
77
70
  def duckduckgo_news(self, query: str, max_results: int = 5) -> str:
78
71
  """Use this function to get the latest news from DuckDuckGo.
@@ -87,8 +80,7 @@ class DuckDuckGoTools(Toolkit):
87
80
  actual_max_results = self.fixed_max_results or max_results
88
81
 
89
82
  log_debug(f"Searching DDG news for: {query}")
90
- ddgs = DDGS(
91
- headers=self.headers, proxy=self.proxy, proxies=self.proxies, timeout=self.timeout, verify=self.verify_ssl
92
- )
83
+ with DDGS(proxy=self.proxy, timeout=self.timeout, verify=self.verify_ssl) as ddgs:
84
+ results = ddgs.news(query, max_results=actual_max_results)
93
85
 
94
- return json.dumps(ddgs.news(keywords=query, max_results=actual_max_results), indent=2)
86
+ return json.dumps(results, indent=2)
@@ -1698,20 +1698,32 @@ class GithubTools(Toolkit):
1698
1698
  log_debug(f"Final search query: {search_query}")
1699
1699
  code_results = self.g.search_code(search_query)
1700
1700
 
1701
- # Process results
1702
- results = []
1703
- # Limit to 50 results to prevent timeouts
1704
- for code in code_results[:50]:
1705
- code_info = {
1706
- "repository": code.repository.full_name,
1707
- "path": code.path,
1708
- "name": code.name,
1709
- "sha": code.sha,
1710
- "html_url": code.html_url,
1711
- "git_url": code.git_url,
1712
- "score": code.score,
1713
- }
1714
- results.append(code_info)
1701
+ results: list[dict] = []
1702
+ limit = 60
1703
+ max_pages = 2 # GitHub returns 30 items per page, so 2 pages covers our limit
1704
+ page_index = 0
1705
+
1706
+ while len(results) < limit and page_index < max_pages:
1707
+ # Fetch one page of results from GitHub API
1708
+ page_items = code_results.get_page(page_index)
1709
+
1710
+ # Stop if no more results available
1711
+ if not page_items:
1712
+ break
1713
+
1714
+ # Process each code result in the current page
1715
+ for code in page_items:
1716
+ code_info = {
1717
+ "repository": code.repository.full_name,
1718
+ "path": code.path,
1719
+ "name": code.name,
1720
+ "sha": code.sha,
1721
+ "html_url": code.html_url,
1722
+ "git_url": code.git_url,
1723
+ "score": code.score,
1724
+ }
1725
+ results.append(code_info)
1726
+ page_index += 1
1715
1727
 
1716
1728
  # Return search results
1717
1729
  return json.dumps(