agno 1.8.2__py3-none-any.whl → 2.0.0__py3-none-any.whl

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 (589) hide show
  1. agno/agent/__init__.py +19 -27
  2. agno/agent/agent.py +3143 -4170
  3. agno/api/agent.py +11 -67
  4. agno/api/api.py +5 -46
  5. agno/api/evals.py +8 -19
  6. agno/api/os.py +17 -0
  7. agno/api/routes.py +6 -41
  8. agno/api/schemas/__init__.py +9 -0
  9. agno/api/schemas/agent.py +5 -21
  10. agno/api/schemas/evals.py +7 -16
  11. agno/api/schemas/os.py +14 -0
  12. agno/api/schemas/team.py +5 -21
  13. agno/api/schemas/utils.py +21 -0
  14. agno/api/schemas/workflows.py +11 -7
  15. agno/api/settings.py +53 -0
  16. agno/api/team.py +11 -66
  17. agno/api/workflow.py +28 -0
  18. agno/cloud/aws/base.py +214 -0
  19. agno/cloud/aws/s3/__init__.py +2 -0
  20. agno/cloud/aws/s3/api_client.py +43 -0
  21. agno/cloud/aws/s3/bucket.py +195 -0
  22. agno/cloud/aws/s3/object.py +57 -0
  23. agno/db/__init__.py +24 -0
  24. agno/db/base.py +245 -0
  25. agno/db/dynamo/__init__.py +3 -0
  26. agno/db/dynamo/dynamo.py +1743 -0
  27. agno/db/dynamo/schemas.py +278 -0
  28. agno/db/dynamo/utils.py +684 -0
  29. agno/db/firestore/__init__.py +3 -0
  30. agno/db/firestore/firestore.py +1432 -0
  31. agno/db/firestore/schemas.py +130 -0
  32. agno/db/firestore/utils.py +278 -0
  33. agno/db/gcs_json/__init__.py +3 -0
  34. agno/db/gcs_json/gcs_json_db.py +1001 -0
  35. agno/db/gcs_json/utils.py +194 -0
  36. agno/db/in_memory/__init__.py +3 -0
  37. agno/db/in_memory/in_memory_db.py +882 -0
  38. agno/db/in_memory/utils.py +172 -0
  39. agno/db/json/__init__.py +3 -0
  40. agno/db/json/json_db.py +1045 -0
  41. agno/db/json/utils.py +196 -0
  42. agno/db/migrations/v1_to_v2.py +162 -0
  43. agno/db/mongo/__init__.py +3 -0
  44. agno/db/mongo/mongo.py +1416 -0
  45. agno/db/mongo/schemas.py +77 -0
  46. agno/db/mongo/utils.py +204 -0
  47. agno/db/mysql/__init__.py +3 -0
  48. agno/db/mysql/mysql.py +1719 -0
  49. agno/db/mysql/schemas.py +124 -0
  50. agno/db/mysql/utils.py +297 -0
  51. agno/db/postgres/__init__.py +3 -0
  52. agno/db/postgres/postgres.py +1710 -0
  53. agno/db/postgres/schemas.py +124 -0
  54. agno/db/postgres/utils.py +280 -0
  55. agno/db/redis/__init__.py +3 -0
  56. agno/db/redis/redis.py +1367 -0
  57. agno/db/redis/schemas.py +109 -0
  58. agno/db/redis/utils.py +288 -0
  59. agno/db/schemas/__init__.py +3 -0
  60. agno/db/schemas/evals.py +33 -0
  61. agno/db/schemas/knowledge.py +40 -0
  62. agno/db/schemas/memory.py +46 -0
  63. agno/db/singlestore/__init__.py +3 -0
  64. agno/db/singlestore/schemas.py +116 -0
  65. agno/db/singlestore/singlestore.py +1712 -0
  66. agno/db/singlestore/utils.py +326 -0
  67. agno/db/sqlite/__init__.py +3 -0
  68. agno/db/sqlite/schemas.py +119 -0
  69. agno/db/sqlite/sqlite.py +1676 -0
  70. agno/db/sqlite/utils.py +268 -0
  71. agno/db/utils.py +88 -0
  72. agno/eval/__init__.py +14 -0
  73. agno/eval/accuracy.py +154 -48
  74. agno/eval/performance.py +88 -23
  75. agno/eval/reliability.py +73 -20
  76. agno/eval/utils.py +23 -13
  77. agno/integrations/discord/__init__.py +3 -0
  78. agno/{app → integrations}/discord/client.py +10 -10
  79. agno/knowledge/__init__.py +2 -2
  80. agno/{document → knowledge}/chunking/agentic.py +2 -2
  81. agno/{document → knowledge}/chunking/document.py +2 -2
  82. agno/{document → knowledge}/chunking/fixed.py +3 -3
  83. agno/{document → knowledge}/chunking/markdown.py +2 -2
  84. agno/{document → knowledge}/chunking/recursive.py +2 -2
  85. agno/{document → knowledge}/chunking/row.py +2 -2
  86. agno/knowledge/chunking/semantic.py +59 -0
  87. agno/knowledge/chunking/strategy.py +121 -0
  88. agno/knowledge/content.py +74 -0
  89. agno/knowledge/document/__init__.py +5 -0
  90. agno/{document → knowledge/document}/base.py +12 -2
  91. agno/knowledge/embedder/__init__.py +5 -0
  92. agno/{embedder → knowledge/embedder}/aws_bedrock.py +127 -1
  93. agno/{embedder → knowledge/embedder}/azure_openai.py +65 -1
  94. agno/{embedder → knowledge/embedder}/base.py +6 -0
  95. agno/{embedder → knowledge/embedder}/cohere.py +72 -1
  96. agno/{embedder → knowledge/embedder}/fastembed.py +17 -1
  97. agno/{embedder → knowledge/embedder}/fireworks.py +1 -1
  98. agno/{embedder → knowledge/embedder}/google.py +74 -1
  99. agno/{embedder → knowledge/embedder}/huggingface.py +36 -2
  100. agno/{embedder → knowledge/embedder}/jina.py +48 -2
  101. agno/knowledge/embedder/langdb.py +22 -0
  102. agno/knowledge/embedder/mistral.py +139 -0
  103. agno/{embedder → knowledge/embedder}/nebius.py +1 -1
  104. agno/{embedder → knowledge/embedder}/ollama.py +54 -3
  105. agno/knowledge/embedder/openai.py +223 -0
  106. agno/{embedder → knowledge/embedder}/sentence_transformer.py +16 -1
  107. agno/{embedder → knowledge/embedder}/together.py +1 -1
  108. agno/{embedder → knowledge/embedder}/voyageai.py +49 -1
  109. agno/knowledge/knowledge.py +1551 -0
  110. agno/knowledge/reader/__init__.py +7 -0
  111. agno/{document → knowledge}/reader/arxiv_reader.py +32 -4
  112. agno/knowledge/reader/base.py +88 -0
  113. agno/{document → knowledge}/reader/csv_reader.py +47 -65
  114. agno/knowledge/reader/docx_reader.py +83 -0
  115. agno/{document → knowledge}/reader/firecrawl_reader.py +42 -21
  116. agno/{document → knowledge}/reader/json_reader.py +30 -9
  117. agno/{document → knowledge}/reader/markdown_reader.py +58 -9
  118. agno/{document → knowledge}/reader/pdf_reader.py +71 -126
  119. agno/knowledge/reader/reader_factory.py +268 -0
  120. agno/knowledge/reader/s3_reader.py +101 -0
  121. agno/{document → knowledge}/reader/text_reader.py +31 -10
  122. agno/knowledge/reader/url_reader.py +128 -0
  123. agno/knowledge/reader/web_search_reader.py +366 -0
  124. agno/{document → knowledge}/reader/website_reader.py +37 -10
  125. agno/knowledge/reader/wikipedia_reader.py +59 -0
  126. agno/knowledge/reader/youtube_reader.py +78 -0
  127. agno/knowledge/remote_content/remote_content.py +88 -0
  128. agno/{reranker → knowledge/reranker}/base.py +1 -1
  129. agno/{reranker → knowledge/reranker}/cohere.py +2 -2
  130. agno/{reranker → knowledge/reranker}/infinity.py +2 -2
  131. agno/{reranker → knowledge/reranker}/sentence_transformer.py +2 -2
  132. agno/knowledge/types.py +30 -0
  133. agno/knowledge/utils.py +169 -0
  134. agno/media.py +269 -268
  135. agno/memory/__init__.py +2 -10
  136. agno/memory/manager.py +1003 -148
  137. agno/models/aimlapi/__init__.py +2 -2
  138. agno/models/aimlapi/aimlapi.py +6 -6
  139. agno/models/anthropic/claude.py +128 -72
  140. agno/models/aws/bedrock.py +107 -175
  141. agno/models/aws/claude.py +64 -18
  142. agno/models/azure/ai_foundry.py +73 -23
  143. agno/models/base.py +346 -290
  144. agno/models/cerebras/cerebras.py +84 -27
  145. agno/models/cohere/chat.py +106 -98
  146. agno/models/google/gemini.py +105 -46
  147. agno/models/groq/groq.py +97 -35
  148. agno/models/huggingface/huggingface.py +92 -27
  149. agno/models/ibm/watsonx.py +72 -13
  150. agno/models/litellm/chat.py +85 -13
  151. agno/models/message.py +46 -151
  152. agno/models/meta/llama.py +85 -49
  153. agno/models/metrics.py +120 -0
  154. agno/models/mistral/mistral.py +90 -21
  155. agno/models/ollama/__init__.py +0 -2
  156. agno/models/ollama/chat.py +85 -47
  157. agno/models/openai/chat.py +154 -37
  158. agno/models/openai/responses.py +178 -105
  159. agno/models/perplexity/perplexity.py +26 -2
  160. agno/models/portkey/portkey.py +0 -7
  161. agno/models/response.py +15 -9
  162. agno/models/utils.py +20 -0
  163. agno/models/vercel/__init__.py +2 -2
  164. agno/models/vercel/v0.py +1 -1
  165. agno/models/vllm/__init__.py +2 -2
  166. agno/models/vllm/vllm.py +3 -3
  167. agno/models/xai/xai.py +10 -10
  168. agno/os/__init__.py +3 -0
  169. agno/os/app.py +497 -0
  170. agno/os/auth.py +47 -0
  171. agno/os/config.py +103 -0
  172. agno/os/interfaces/agui/__init__.py +3 -0
  173. agno/os/interfaces/agui/agui.py +31 -0
  174. agno/{app/agui/async_router.py → os/interfaces/agui/router.py} +16 -16
  175. agno/{app → os/interfaces}/agui/utils.py +65 -28
  176. agno/os/interfaces/base.py +21 -0
  177. agno/os/interfaces/slack/__init__.py +3 -0
  178. agno/{app/slack/async_router.py → os/interfaces/slack/router.py} +3 -5
  179. agno/os/interfaces/slack/slack.py +32 -0
  180. agno/os/interfaces/whatsapp/__init__.py +3 -0
  181. agno/{app/whatsapp/async_router.py → os/interfaces/whatsapp/router.py} +4 -7
  182. agno/os/interfaces/whatsapp/whatsapp.py +29 -0
  183. agno/os/mcp.py +235 -0
  184. agno/os/router.py +1400 -0
  185. agno/os/routers/__init__.py +3 -0
  186. agno/os/routers/evals/__init__.py +3 -0
  187. agno/os/routers/evals/evals.py +393 -0
  188. agno/os/routers/evals/schemas.py +142 -0
  189. agno/os/routers/evals/utils.py +161 -0
  190. agno/os/routers/knowledge/__init__.py +3 -0
  191. agno/os/routers/knowledge/knowledge.py +850 -0
  192. agno/os/routers/knowledge/schemas.py +118 -0
  193. agno/os/routers/memory/__init__.py +3 -0
  194. agno/os/routers/memory/memory.py +410 -0
  195. agno/os/routers/memory/schemas.py +58 -0
  196. agno/os/routers/metrics/__init__.py +3 -0
  197. agno/os/routers/metrics/metrics.py +178 -0
  198. agno/os/routers/metrics/schemas.py +47 -0
  199. agno/os/routers/session/__init__.py +3 -0
  200. agno/os/routers/session/session.py +536 -0
  201. agno/os/schema.py +945 -0
  202. agno/{app/playground → os}/settings.py +7 -15
  203. agno/os/utils.py +270 -0
  204. agno/reasoning/azure_ai_foundry.py +4 -4
  205. agno/reasoning/deepseek.py +4 -4
  206. agno/reasoning/default.py +6 -11
  207. agno/reasoning/groq.py +4 -4
  208. agno/reasoning/helpers.py +4 -6
  209. agno/reasoning/ollama.py +4 -4
  210. agno/reasoning/openai.py +4 -4
  211. agno/run/agent.py +633 -0
  212. agno/run/base.py +53 -77
  213. agno/run/cancel.py +81 -0
  214. agno/run/team.py +243 -96
  215. agno/run/workflow.py +550 -12
  216. agno/session/__init__.py +10 -0
  217. agno/session/agent.py +244 -0
  218. agno/session/summary.py +225 -0
  219. agno/session/team.py +262 -0
  220. agno/{storage/session/v2 → session}/workflow.py +47 -24
  221. agno/team/__init__.py +15 -16
  222. agno/team/team.py +3260 -4824
  223. agno/tools/agentql.py +14 -5
  224. agno/tools/airflow.py +9 -4
  225. agno/tools/api.py +7 -3
  226. agno/tools/apify.py +2 -46
  227. agno/tools/arxiv.py +8 -3
  228. agno/tools/aws_lambda.py +7 -5
  229. agno/tools/aws_ses.py +7 -1
  230. agno/tools/baidusearch.py +4 -1
  231. agno/tools/bitbucket.py +4 -4
  232. agno/tools/brandfetch.py +14 -11
  233. agno/tools/bravesearch.py +4 -1
  234. agno/tools/brightdata.py +43 -23
  235. agno/tools/browserbase.py +13 -4
  236. agno/tools/calcom.py +12 -10
  237. agno/tools/calculator.py +10 -27
  238. agno/tools/cartesia.py +20 -17
  239. agno/tools/{clickup_tool.py → clickup.py} +12 -25
  240. agno/tools/confluence.py +8 -8
  241. agno/tools/crawl4ai.py +7 -1
  242. agno/tools/csv_toolkit.py +9 -8
  243. agno/tools/dalle.py +22 -12
  244. agno/tools/daytona.py +13 -16
  245. agno/tools/decorator.py +6 -3
  246. agno/tools/desi_vocal.py +17 -8
  247. agno/tools/discord.py +11 -8
  248. agno/tools/docker.py +30 -42
  249. agno/tools/duckdb.py +34 -53
  250. agno/tools/duckduckgo.py +8 -7
  251. agno/tools/e2b.py +62 -62
  252. agno/tools/eleven_labs.py +36 -29
  253. agno/tools/email.py +4 -1
  254. agno/tools/evm.py +7 -1
  255. agno/tools/exa.py +19 -14
  256. agno/tools/fal.py +30 -30
  257. agno/tools/file.py +9 -8
  258. agno/tools/financial_datasets.py +25 -44
  259. agno/tools/firecrawl.py +17 -18
  260. agno/tools/function.py +127 -18
  261. agno/tools/giphy.py +23 -11
  262. agno/tools/github.py +48 -126
  263. agno/tools/gmail.py +45 -61
  264. agno/tools/google_bigquery.py +7 -6
  265. agno/tools/google_maps.py +11 -26
  266. agno/tools/googlesearch.py +7 -2
  267. agno/tools/googlesheets.py +21 -17
  268. agno/tools/hackernews.py +9 -5
  269. agno/tools/jina.py +5 -4
  270. agno/tools/jira.py +18 -9
  271. agno/tools/knowledge.py +31 -32
  272. agno/tools/linear.py +18 -33
  273. agno/tools/linkup.py +5 -1
  274. agno/tools/local_file_system.py +8 -5
  275. agno/tools/lumalab.py +32 -20
  276. agno/tools/mcp.py +1 -2
  277. agno/tools/mem0.py +18 -12
  278. agno/tools/memori.py +14 -10
  279. agno/tools/mlx_transcribe.py +3 -2
  280. agno/tools/models/azure_openai.py +33 -15
  281. agno/tools/models/gemini.py +59 -32
  282. agno/tools/models/groq.py +30 -23
  283. agno/tools/models/nebius.py +28 -12
  284. agno/tools/models_labs.py +40 -16
  285. agno/tools/moviepy_video.py +7 -6
  286. agno/tools/neo4j.py +10 -8
  287. agno/tools/newspaper.py +7 -2
  288. agno/tools/newspaper4k.py +8 -3
  289. agno/tools/openai.py +58 -32
  290. agno/tools/openbb.py +12 -11
  291. agno/tools/opencv.py +63 -47
  292. agno/tools/openweather.py +14 -12
  293. agno/tools/pandas.py +11 -3
  294. agno/tools/postgres.py +4 -12
  295. agno/tools/pubmed.py +4 -1
  296. agno/tools/python.py +9 -22
  297. agno/tools/reasoning.py +35 -27
  298. agno/tools/reddit.py +11 -26
  299. agno/tools/replicate.py +55 -42
  300. agno/tools/resend.py +4 -1
  301. agno/tools/scrapegraph.py +15 -14
  302. agno/tools/searxng.py +10 -23
  303. agno/tools/serpapi.py +6 -3
  304. agno/tools/serper.py +13 -4
  305. agno/tools/shell.py +9 -2
  306. agno/tools/slack.py +12 -11
  307. agno/tools/sleep.py +3 -2
  308. agno/tools/spider.py +24 -4
  309. agno/tools/sql.py +7 -6
  310. agno/tools/tavily.py +6 -4
  311. agno/tools/telegram.py +12 -4
  312. agno/tools/todoist.py +11 -31
  313. agno/tools/toolkit.py +1 -1
  314. agno/tools/trafilatura.py +22 -6
  315. agno/tools/trello.py +9 -22
  316. agno/tools/twilio.py +10 -3
  317. agno/tools/user_control_flow.py +6 -1
  318. agno/tools/valyu.py +34 -5
  319. agno/tools/visualization.py +19 -28
  320. agno/tools/webbrowser.py +4 -3
  321. agno/tools/webex.py +11 -7
  322. agno/tools/website.py +15 -46
  323. agno/tools/webtools.py +12 -4
  324. agno/tools/whatsapp.py +5 -9
  325. agno/tools/wikipedia.py +20 -13
  326. agno/tools/x.py +14 -13
  327. agno/tools/yfinance.py +13 -40
  328. agno/tools/youtube.py +26 -20
  329. agno/tools/zendesk.py +7 -2
  330. agno/tools/zep.py +10 -7
  331. agno/tools/zoom.py +10 -9
  332. agno/utils/common.py +1 -19
  333. agno/utils/events.py +100 -123
  334. agno/utils/gemini.py +1 -1
  335. agno/utils/knowledge.py +29 -0
  336. agno/utils/log.py +54 -4
  337. agno/utils/mcp.py +68 -10
  338. agno/utils/media.py +39 -0
  339. agno/utils/message.py +12 -1
  340. agno/utils/models/aws_claude.py +1 -1
  341. agno/utils/models/claude.py +6 -12
  342. agno/utils/models/cohere.py +1 -1
  343. agno/utils/models/mistral.py +8 -7
  344. agno/utils/models/schema_utils.py +3 -3
  345. agno/utils/models/watsonx.py +1 -1
  346. agno/utils/openai.py +1 -1
  347. agno/utils/pprint.py +33 -32
  348. agno/utils/print_response/agent.py +779 -0
  349. agno/utils/print_response/team.py +1669 -0
  350. agno/utils/print_response/workflow.py +1451 -0
  351. agno/utils/prompts.py +14 -14
  352. agno/utils/reasoning.py +87 -0
  353. agno/utils/response.py +42 -42
  354. agno/utils/streamlit.py +481 -0
  355. agno/utils/string.py +8 -22
  356. agno/utils/team.py +50 -0
  357. agno/utils/timer.py +2 -2
  358. agno/vectordb/base.py +33 -21
  359. agno/vectordb/cassandra/cassandra.py +287 -23
  360. agno/vectordb/chroma/chromadb.py +482 -59
  361. agno/vectordb/clickhouse/clickhousedb.py +270 -63
  362. agno/vectordb/couchbase/couchbase.py +309 -29
  363. agno/vectordb/lancedb/lance_db.py +360 -21
  364. agno/vectordb/langchaindb/__init__.py +5 -0
  365. agno/vectordb/langchaindb/langchaindb.py +145 -0
  366. agno/vectordb/lightrag/__init__.py +5 -0
  367. agno/vectordb/lightrag/lightrag.py +374 -0
  368. agno/vectordb/llamaindex/llamaindexdb.py +127 -0
  369. agno/vectordb/milvus/milvus.py +242 -32
  370. agno/vectordb/mongodb/mongodb.py +200 -24
  371. agno/vectordb/pgvector/pgvector.py +319 -37
  372. agno/vectordb/pineconedb/pineconedb.py +221 -27
  373. agno/vectordb/qdrant/qdrant.py +334 -14
  374. agno/vectordb/singlestore/singlestore.py +286 -29
  375. agno/vectordb/surrealdb/surrealdb.py +187 -7
  376. agno/vectordb/upstashdb/upstashdb.py +342 -26
  377. agno/vectordb/weaviate/weaviate.py +227 -165
  378. agno/workflow/__init__.py +17 -13
  379. agno/workflow/{v2/condition.py → condition.py} +135 -32
  380. agno/workflow/{v2/loop.py → loop.py} +115 -28
  381. agno/workflow/{v2/parallel.py → parallel.py} +138 -108
  382. agno/workflow/{v2/router.py → router.py} +133 -32
  383. agno/workflow/{v2/step.py → step.py} +207 -49
  384. agno/workflow/{v2/steps.py → steps.py} +147 -66
  385. agno/workflow/types.py +482 -0
  386. agno/workflow/workflow.py +2410 -696
  387. agno-2.0.0.dist-info/METADATA +494 -0
  388. agno-2.0.0.dist-info/RECORD +515 -0
  389. agno-2.0.0.dist-info/licenses/LICENSE +201 -0
  390. agno/agent/metrics.py +0 -110
  391. agno/api/app.py +0 -35
  392. agno/api/playground.py +0 -92
  393. agno/api/schemas/app.py +0 -12
  394. agno/api/schemas/playground.py +0 -22
  395. agno/api/schemas/user.py +0 -35
  396. agno/api/schemas/workspace.py +0 -46
  397. agno/api/user.py +0 -160
  398. agno/api/workflows.py +0 -33
  399. agno/api/workspace.py +0 -175
  400. agno/app/agui/__init__.py +0 -3
  401. agno/app/agui/app.py +0 -17
  402. agno/app/agui/sync_router.py +0 -120
  403. agno/app/base.py +0 -186
  404. agno/app/discord/__init__.py +0 -3
  405. agno/app/fastapi/__init__.py +0 -3
  406. agno/app/fastapi/app.py +0 -107
  407. agno/app/fastapi/async_router.py +0 -457
  408. agno/app/fastapi/sync_router.py +0 -448
  409. agno/app/playground/app.py +0 -228
  410. agno/app/playground/async_router.py +0 -1053
  411. agno/app/playground/deploy.py +0 -249
  412. agno/app/playground/operator.py +0 -183
  413. agno/app/playground/schemas.py +0 -223
  414. agno/app/playground/serve.py +0 -55
  415. agno/app/playground/sync_router.py +0 -1045
  416. agno/app/playground/utils.py +0 -46
  417. agno/app/settings.py +0 -15
  418. agno/app/slack/__init__.py +0 -3
  419. agno/app/slack/app.py +0 -19
  420. agno/app/slack/sync_router.py +0 -92
  421. agno/app/utils.py +0 -54
  422. agno/app/whatsapp/__init__.py +0 -3
  423. agno/app/whatsapp/app.py +0 -15
  424. agno/app/whatsapp/sync_router.py +0 -197
  425. agno/cli/auth_server.py +0 -249
  426. agno/cli/config.py +0 -274
  427. agno/cli/console.py +0 -88
  428. agno/cli/credentials.py +0 -23
  429. agno/cli/entrypoint.py +0 -571
  430. agno/cli/operator.py +0 -357
  431. agno/cli/settings.py +0 -96
  432. agno/cli/ws/ws_cli.py +0 -817
  433. agno/constants.py +0 -13
  434. agno/document/__init__.py +0 -5
  435. agno/document/chunking/semantic.py +0 -45
  436. agno/document/chunking/strategy.py +0 -31
  437. agno/document/reader/__init__.py +0 -5
  438. agno/document/reader/base.py +0 -47
  439. agno/document/reader/docx_reader.py +0 -60
  440. agno/document/reader/gcs/pdf_reader.py +0 -44
  441. agno/document/reader/s3/pdf_reader.py +0 -59
  442. agno/document/reader/s3/text_reader.py +0 -63
  443. agno/document/reader/url_reader.py +0 -59
  444. agno/document/reader/youtube_reader.py +0 -58
  445. agno/embedder/__init__.py +0 -5
  446. agno/embedder/langdb.py +0 -80
  447. agno/embedder/mistral.py +0 -82
  448. agno/embedder/openai.py +0 -78
  449. agno/file/__init__.py +0 -5
  450. agno/file/file.py +0 -16
  451. agno/file/local/csv.py +0 -32
  452. agno/file/local/txt.py +0 -19
  453. agno/infra/app.py +0 -240
  454. agno/infra/base.py +0 -144
  455. agno/infra/context.py +0 -20
  456. agno/infra/db_app.py +0 -52
  457. agno/infra/resource.py +0 -205
  458. agno/infra/resources.py +0 -55
  459. agno/knowledge/agent.py +0 -702
  460. agno/knowledge/arxiv.py +0 -33
  461. agno/knowledge/combined.py +0 -36
  462. agno/knowledge/csv.py +0 -144
  463. agno/knowledge/csv_url.py +0 -124
  464. agno/knowledge/document.py +0 -223
  465. agno/knowledge/docx.py +0 -137
  466. agno/knowledge/firecrawl.py +0 -34
  467. agno/knowledge/gcs/__init__.py +0 -0
  468. agno/knowledge/gcs/base.py +0 -39
  469. agno/knowledge/gcs/pdf.py +0 -125
  470. agno/knowledge/json.py +0 -137
  471. agno/knowledge/langchain.py +0 -71
  472. agno/knowledge/light_rag.py +0 -273
  473. agno/knowledge/llamaindex.py +0 -66
  474. agno/knowledge/markdown.py +0 -154
  475. agno/knowledge/pdf.py +0 -164
  476. agno/knowledge/pdf_bytes.py +0 -42
  477. agno/knowledge/pdf_url.py +0 -148
  478. agno/knowledge/s3/__init__.py +0 -0
  479. agno/knowledge/s3/base.py +0 -64
  480. agno/knowledge/s3/pdf.py +0 -33
  481. agno/knowledge/s3/text.py +0 -34
  482. agno/knowledge/text.py +0 -141
  483. agno/knowledge/url.py +0 -46
  484. agno/knowledge/website.py +0 -179
  485. agno/knowledge/wikipedia.py +0 -32
  486. agno/knowledge/youtube.py +0 -35
  487. agno/memory/agent.py +0 -423
  488. agno/memory/classifier.py +0 -104
  489. agno/memory/db/__init__.py +0 -5
  490. agno/memory/db/base.py +0 -42
  491. agno/memory/db/mongodb.py +0 -189
  492. agno/memory/db/postgres.py +0 -203
  493. agno/memory/db/sqlite.py +0 -193
  494. agno/memory/memory.py +0 -22
  495. agno/memory/row.py +0 -36
  496. agno/memory/summarizer.py +0 -201
  497. agno/memory/summary.py +0 -19
  498. agno/memory/team.py +0 -415
  499. agno/memory/v2/__init__.py +0 -2
  500. agno/memory/v2/db/__init__.py +0 -1
  501. agno/memory/v2/db/base.py +0 -42
  502. agno/memory/v2/db/firestore.py +0 -339
  503. agno/memory/v2/db/mongodb.py +0 -196
  504. agno/memory/v2/db/postgres.py +0 -214
  505. agno/memory/v2/db/redis.py +0 -187
  506. agno/memory/v2/db/schema.py +0 -54
  507. agno/memory/v2/db/sqlite.py +0 -209
  508. agno/memory/v2/manager.py +0 -437
  509. agno/memory/v2/memory.py +0 -1097
  510. agno/memory/v2/schema.py +0 -55
  511. agno/memory/v2/summarizer.py +0 -215
  512. agno/memory/workflow.py +0 -38
  513. agno/models/ollama/tools.py +0 -430
  514. agno/models/qwen/__init__.py +0 -5
  515. agno/playground/__init__.py +0 -10
  516. agno/playground/deploy.py +0 -3
  517. agno/playground/playground.py +0 -3
  518. agno/playground/serve.py +0 -3
  519. agno/playground/settings.py +0 -3
  520. agno/reranker/__init__.py +0 -0
  521. agno/run/response.py +0 -467
  522. agno/run/v2/__init__.py +0 -0
  523. agno/run/v2/workflow.py +0 -567
  524. agno/storage/__init__.py +0 -0
  525. agno/storage/agent/__init__.py +0 -0
  526. agno/storage/agent/dynamodb.py +0 -1
  527. agno/storage/agent/json.py +0 -1
  528. agno/storage/agent/mongodb.py +0 -1
  529. agno/storage/agent/postgres.py +0 -1
  530. agno/storage/agent/singlestore.py +0 -1
  531. agno/storage/agent/sqlite.py +0 -1
  532. agno/storage/agent/yaml.py +0 -1
  533. agno/storage/base.py +0 -60
  534. agno/storage/dynamodb.py +0 -673
  535. agno/storage/firestore.py +0 -297
  536. agno/storage/gcs_json.py +0 -261
  537. agno/storage/in_memory.py +0 -234
  538. agno/storage/json.py +0 -237
  539. agno/storage/mongodb.py +0 -328
  540. agno/storage/mysql.py +0 -685
  541. agno/storage/postgres.py +0 -682
  542. agno/storage/redis.py +0 -336
  543. agno/storage/session/__init__.py +0 -16
  544. agno/storage/session/agent.py +0 -64
  545. agno/storage/session/team.py +0 -63
  546. agno/storage/session/v2/__init__.py +0 -5
  547. agno/storage/session/workflow.py +0 -61
  548. agno/storage/singlestore.py +0 -606
  549. agno/storage/sqlite.py +0 -646
  550. agno/storage/workflow/__init__.py +0 -0
  551. agno/storage/workflow/mongodb.py +0 -1
  552. agno/storage/workflow/postgres.py +0 -1
  553. agno/storage/workflow/sqlite.py +0 -1
  554. agno/storage/yaml.py +0 -241
  555. agno/tools/thinking.py +0 -73
  556. agno/utils/defaults.py +0 -57
  557. agno/utils/filesystem.py +0 -39
  558. agno/utils/git.py +0 -52
  559. agno/utils/json_io.py +0 -30
  560. agno/utils/load_env.py +0 -19
  561. agno/utils/py_io.py +0 -19
  562. agno/utils/pyproject.py +0 -18
  563. agno/utils/resource_filter.py +0 -31
  564. agno/workflow/v2/__init__.py +0 -21
  565. agno/workflow/v2/types.py +0 -357
  566. agno/workflow/v2/workflow.py +0 -3313
  567. agno/workspace/__init__.py +0 -0
  568. agno/workspace/config.py +0 -325
  569. agno/workspace/enums.py +0 -6
  570. agno/workspace/helpers.py +0 -52
  571. agno/workspace/operator.py +0 -757
  572. agno/workspace/settings.py +0 -158
  573. agno-1.8.2.dist-info/METADATA +0 -982
  574. agno-1.8.2.dist-info/RECORD +0 -566
  575. agno-1.8.2.dist-info/entry_points.txt +0 -3
  576. agno-1.8.2.dist-info/licenses/LICENSE +0 -375
  577. /agno/{app → db/migrations}/__init__.py +0 -0
  578. /agno/{app/playground/__init__.py → db/schemas/metrics.py} +0 -0
  579. /agno/{cli → integrations}/__init__.py +0 -0
  580. /agno/{cli/ws → knowledge/chunking}/__init__.py +0 -0
  581. /agno/{document/chunking → knowledge/remote_content}/__init__.py +0 -0
  582. /agno/{document/reader/gcs → knowledge/reranker}/__init__.py +0 -0
  583. /agno/{document/reader/s3 → os/interfaces}/__init__.py +0 -0
  584. /agno/{app → os/interfaces}/slack/security.py +0 -0
  585. /agno/{app → os/interfaces}/whatsapp/security.py +0 -0
  586. /agno/{file/local → utils/print_response}/__init__.py +0 -0
  587. /agno/{infra → vectordb/llamaindex}/__init__.py +0 -0
  588. {agno-1.8.2.dist-info → agno-2.0.0.dist-info}/WHEEL +0 -0
  589. {agno-1.8.2.dist-info → agno-2.0.0.dist-info}/top_level.txt +0 -0
agno/session/team.py ADDED
@@ -0,0 +1,262 @@
1
+ from __future__ import annotations
2
+
3
+ from dataclasses import asdict, dataclass
4
+ from typing import Any, Dict, List, Mapping, Optional, Union
5
+
6
+ from agno.models.message import Message
7
+ from agno.run.agent import RunOutput, RunStatus
8
+ from agno.run.team import TeamRunOutput
9
+ from agno.session.summary import SessionSummary
10
+ from agno.utils.log import log_debug, log_warning
11
+
12
+
13
+ @dataclass
14
+ class TeamSession:
15
+ """Team Session that is stored in the database"""
16
+
17
+ # Session UUID
18
+ session_id: str
19
+
20
+ # ID of the team that this session is associated with
21
+ team_id: Optional[str] = None
22
+ # ID of the user interacting with this team
23
+ user_id: Optional[str] = None
24
+ # ID of the workflow that this session is associated with
25
+ workflow_id: Optional[str] = None
26
+
27
+ # Team Data: agent_id, name and model
28
+ team_data: Optional[Dict[str, Any]] = None
29
+ # Session Data: session_name, session_state, images, videos, audio
30
+ session_data: Optional[Dict[str, Any]] = None
31
+ # Metadata stored with this team
32
+ metadata: Optional[Dict[str, Any]] = None
33
+ # List of all runs in the session
34
+ runs: Optional[list[Union[TeamRunOutput, RunOutput]]] = None
35
+ # Summary of the session
36
+ summary: Optional[SessionSummary] = None
37
+
38
+ # The unix timestamp when this session was created
39
+ created_at: Optional[int] = None
40
+ # The unix timestamp when this session was last updated
41
+ updated_at: Optional[int] = None
42
+
43
+ def to_dict(self) -> Dict[str, Any]:
44
+ session_dict = asdict(self)
45
+
46
+ session_dict["runs"] = [run.to_dict() for run in self.runs] if self.runs else None
47
+ session_dict["summary"] = self.summary.to_dict() if self.summary else None
48
+
49
+ return session_dict
50
+
51
+ @classmethod
52
+ def from_dict(cls, data: Mapping[str, Any]) -> Optional[TeamSession]:
53
+ if data is None or data.get("session_id") is None:
54
+ log_warning("TeamSession is missing session_id")
55
+ return None
56
+
57
+ if data.get("summary") is not None:
58
+ data["summary"] = SessionSummary.from_dict(data["summary"]) # type: ignore
59
+
60
+ runs = data.get("runs", [])
61
+ serialized_runs: List[Union[TeamRunOutput, RunOutput]] = []
62
+ for run in runs:
63
+ if "agent_id" in run:
64
+ serialized_runs.append(RunOutput.from_dict(run))
65
+ elif "team_id" in run:
66
+ serialized_runs.append(TeamRunOutput.from_dict(run))
67
+
68
+ return cls(
69
+ session_id=data.get("session_id"), # type: ignore
70
+ team_id=data.get("team_id"),
71
+ user_id=data.get("user_id"),
72
+ workflow_id=data.get("workflow_id"),
73
+ team_data=data.get("team_data"),
74
+ session_data=data.get("session_data"),
75
+ metadata=data.get("metadata"),
76
+ created_at=data.get("created_at"),
77
+ updated_at=data.get("updated_at"),
78
+ runs=serialized_runs,
79
+ summary=data.get("summary"),
80
+ )
81
+
82
+ def get_run(self, run_id: str) -> Optional[Union[TeamRunOutput, RunOutput]]:
83
+ for run in self.runs or []:
84
+ if run.run_id == run_id:
85
+ return run
86
+ return None
87
+
88
+ def upsert_run(self, run_response: Union[TeamRunOutput, RunOutput]):
89
+ """Adds a RunOutput, together with some calculated data, to the runs list."""
90
+
91
+ messages = run_response.messages
92
+ if messages is None:
93
+ return
94
+
95
+ for m in messages or []:
96
+ if m.metrics is not None:
97
+ m.metrics.duration = None
98
+
99
+ if not self.runs:
100
+ self.runs = []
101
+
102
+ for i, existing_run in enumerate(self.runs or []):
103
+ if existing_run.run_id == run_response.run_id:
104
+ self.runs[i] = run_response
105
+ break
106
+ else:
107
+ self.runs.append(run_response)
108
+
109
+ log_debug("Added RunOutput to Team Session")
110
+
111
+ def get_messages_from_last_n_runs(
112
+ self,
113
+ agent_id: Optional[str] = None,
114
+ team_id: Optional[str] = None,
115
+ last_n: Optional[int] = None,
116
+ skip_role: Optional[str] = None,
117
+ skip_status: Optional[List[RunStatus]] = None,
118
+ skip_history_messages: bool = True,
119
+ member_runs: bool = False,
120
+ ) -> List[Message]:
121
+ """Returns the messages from the last_n runs, excluding previously tagged history messages.
122
+ Args:
123
+
124
+ agent_id: The id of the agent to get the messages from.
125
+ team_id: The id of the team to get the messages from.
126
+ last_n: The number of runs to return from the end of the conversation. Defaults to all runs.
127
+ skip_role: Skip messages with this role.
128
+ skip_status: Skip messages with this status.
129
+ skip_history_messages: Skip messages that were tagged as history in previous runs.
130
+ Returns:
131
+ A list of Messages from the specified runs, excluding history messages.
132
+ """
133
+ if not self.runs:
134
+ return []
135
+
136
+ if skip_status is None:
137
+ skip_status = [RunStatus.paused, RunStatus.cancelled, RunStatus.error]
138
+
139
+ session_runs = self.runs
140
+ # Filter by agent_id and team_id
141
+ if agent_id:
142
+ session_runs = [run for run in session_runs if hasattr(run, "agent_id") and run.agent_id == agent_id] # type: ignore
143
+ if team_id:
144
+ session_runs = [run for run in session_runs if hasattr(run, "team_id") and run.team_id == team_id] # type: ignore
145
+
146
+ if not member_runs:
147
+ # Filter for the main team runs
148
+ session_runs = [run for run in session_runs if run.parent_run_id is None] # type: ignore
149
+
150
+ # Filter by status
151
+ session_runs = [run for run in session_runs if hasattr(run, "status") and run.status not in skip_status] # type: ignore
152
+
153
+ # Filter by last_n
154
+ runs_to_process = session_runs[-last_n:] if last_n is not None else session_runs
155
+ messages_from_history = []
156
+ system_message = None
157
+ for run_response in runs_to_process:
158
+ if not (run_response and run_response.messages):
159
+ continue
160
+
161
+ for message in run_response.messages or []:
162
+ # Skip messages with specified role
163
+ if skip_role and message.role == skip_role:
164
+ continue
165
+ # Skip messages that were tagged as history in previous runs
166
+ if hasattr(message, "from_history") and message.from_history and skip_history_messages:
167
+ continue
168
+ if message.role == "system":
169
+ # Only add the system message once
170
+ if system_message is None:
171
+ system_message = message
172
+ messages_from_history.append(system_message)
173
+ else:
174
+ messages_from_history.append(message)
175
+
176
+ log_debug(f"Getting messages from previous runs: {len(messages_from_history)}")
177
+ return messages_from_history
178
+
179
+ def get_tool_calls(self, num_calls: Optional[int] = None) -> List[Dict[str, Any]]:
180
+ """Returns a list of tool calls from the messages"""
181
+
182
+ tool_calls = []
183
+ session_runs = self.runs
184
+ if session_runs is None:
185
+ return []
186
+
187
+ for run_response in session_runs[::-1]:
188
+ if run_response and run_response.messages:
189
+ for message in run_response.messages or []:
190
+ if message.tool_calls:
191
+ for tool_call in message.tool_calls:
192
+ tool_calls.append(tool_call)
193
+ if num_calls and len(tool_calls) >= num_calls:
194
+ return tool_calls
195
+ return tool_calls
196
+
197
+ def get_messages_for_session(
198
+ self,
199
+ user_role: str = "user",
200
+ assistant_role: Optional[List[str]] = None,
201
+ skip_history_messages: bool = True,
202
+ ) -> List[Message]:
203
+ """Returns a list of messages for the session that iterate through user message and assistant response."""
204
+
205
+ if assistant_role is None:
206
+ # TODO: Check if we still need CHATBOT as a role
207
+ assistant_role = ["assistant", "model", "CHATBOT"]
208
+
209
+ final_messages: List[Message] = []
210
+ session_runs = self.runs
211
+ if session_runs is None:
212
+ return []
213
+
214
+ for run_response in session_runs:
215
+ if run_response and run_response.messages:
216
+ user_message_from_run = None
217
+ assistant_message_from_run = None
218
+
219
+ # Start from the beginning to look for the user message
220
+ for message in run_response.messages or []:
221
+ if hasattr(message, "from_history") and message.from_history and skip_history_messages:
222
+ continue
223
+ if message.role == user_role:
224
+ user_message_from_run = message
225
+ break
226
+
227
+ # Start from the end to look for the assistant response
228
+ for message in run_response.messages[::-1]:
229
+ if hasattr(message, "from_history") and message.from_history and skip_history_messages:
230
+ continue
231
+ if message.role in assistant_role:
232
+ assistant_message_from_run = message
233
+ break
234
+
235
+ if user_message_from_run and assistant_message_from_run:
236
+ final_messages.append(user_message_from_run)
237
+ final_messages.append(assistant_message_from_run)
238
+ return final_messages
239
+
240
+ def get_session_summary(self) -> Optional[SessionSummary]:
241
+ """Get the session summary for the session"""
242
+
243
+ if self.summary is None:
244
+ return None
245
+
246
+ return self.summary # type: ignore
247
+
248
+ # Chat History functions
249
+ def get_chat_history(self) -> List[Message]:
250
+ """Get the chat history for the session"""
251
+
252
+ messages = []
253
+ if self.runs is None:
254
+ return []
255
+
256
+ for run in self.runs or []:
257
+ if run.messages is None:
258
+ continue
259
+
260
+ messages.extend([msg for msg in run.messages or [] if not msg.from_history])
261
+
262
+ return messages
@@ -1,9 +1,10 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import time
3
4
  from dataclasses import dataclass
4
5
  from typing import Any, Dict, List, Mapping, Optional
5
6
 
6
- from agno.run.v2.workflow import WorkflowRunResponse
7
+ from agno.run.workflow import WorkflowRunOutput
7
8
  from agno.utils.log import logger
8
9
 
9
10
 
@@ -21,15 +22,15 @@ class WorkflowSession:
21
22
  # Workflow name
22
23
  workflow_name: Optional[str] = None
23
24
 
24
- # Workflow runs - stores WorkflowRunResponse objects in memory
25
- runs: Optional[List[WorkflowRunResponse]] = None
25
+ # Workflow runs - stores WorkflowRunOutput objects in memory
26
+ runs: Optional[List[WorkflowRunOutput]] = None
26
27
 
27
28
  # Session Data: session_name, session_state, images, videos, audio
28
29
  session_data: Optional[Dict[str, Any]] = None
29
30
  # Workflow configuration and metadata
30
31
  workflow_data: Optional[Dict[str, Any]] = None
31
- # Extra Data stored with this workflow session
32
- extra_data: Optional[Dict[str, Any]] = None
32
+ # Metadata stored with this workflow session
33
+ metadata: Optional[Dict[str, Any]] = None
33
34
 
34
35
  # The unix timestamp when this session was created
35
36
  created_at: Optional[int] = None
@@ -40,7 +41,28 @@ class WorkflowSession:
40
41
  if self.runs is None:
41
42
  self.runs = []
42
43
 
43
- def upsert_run(self, run: WorkflowRunResponse) -> None:
44
+ # Ensure session_data, workflow_data, and metadata are dictionaries, not None
45
+ if self.session_data is None:
46
+ self.session_data = {}
47
+ if self.workflow_data is None:
48
+ self.workflow_data = {}
49
+ if self.metadata is None:
50
+ self.metadata = {}
51
+
52
+ # Set timestamps if they're not already set
53
+ current_time = int(time.time())
54
+ if self.created_at is None:
55
+ self.created_at = current_time
56
+ if self.updated_at is None:
57
+ self.updated_at = current_time
58
+
59
+ def get_run(self, run_id: str) -> Optional[WorkflowRunOutput]:
60
+ for run in self.runs or []:
61
+ if run.run_id == run_id:
62
+ return run
63
+ return None
64
+
65
+ def upsert_run(self, run: WorkflowRunOutput) -> None:
44
66
  """Add or update a workflow run (upsert behavior)"""
45
67
  if self.runs is None:
46
68
  self.runs = []
@@ -48,12 +70,10 @@ class WorkflowSession:
48
70
  # Find existing run and update it, or append new one
49
71
  for i, existing_run in enumerate(self.runs):
50
72
  if existing_run.run_id == run.run_id:
51
- # Update existing run
52
73
  self.runs[i] = run
53
- return
54
-
55
- # Run not found, append new one
56
- self.runs.append(run)
74
+ break
75
+ else:
76
+ self.runs.append(run)
57
77
 
58
78
  def to_dict(self) -> Dict[str, Any]:
59
79
  """Convert to dictionary for storage, serializing runs to dicts"""
@@ -65,14 +85,7 @@ class WorkflowSession:
65
85
  try:
66
86
  runs_data.append(run.to_dict())
67
87
  except Exception as e:
68
- # If run serialization fails, create a minimal representation
69
- runs_data.append(
70
- {
71
- "run_id": getattr(run, "run_id", "unknown"),
72
- "status": str(getattr(run, "status", "unknown")),
73
- "error": f"Serialization failed: {str(e)}",
74
- }
75
- )
88
+ raise ValueError(f"Serialization failed: {str(e)}")
76
89
  return {
77
90
  "session_id": self.session_id,
78
91
  "user_id": self.user_id,
@@ -81,7 +94,7 @@ class WorkflowSession:
81
94
  "runs": runs_data,
82
95
  "session_data": self.session_data,
83
96
  "workflow_data": self.workflow_data,
84
- "extra_data": self.extra_data,
97
+ "metadata": self.metadata,
85
98
  "created_at": self.created_at,
86
99
  "updated_at": self.updated_at,
87
100
  }
@@ -93,11 +106,21 @@ class WorkflowSession:
93
106
  logger.warning("WorkflowSession is missing session_id")
94
107
  return None
95
108
 
96
- # Deserialize runs from dictionaries back to WorkflowRunResponse objects
109
+ # Deserialize runs from dictionaries back to WorkflowRunOutput objects
97
110
  runs_data = data.get("runs")
98
- runs: Optional[List[WorkflowRunResponse]] = None
111
+ runs: Optional[List[WorkflowRunOutput]] = None
112
+
99
113
  if runs_data is not None:
100
- runs = [WorkflowRunResponse.from_dict(run_dict) for run_dict in runs_data]
114
+ runs = []
115
+ for run_item in runs_data:
116
+ if isinstance(run_item, WorkflowRunOutput):
117
+ # Already a WorkflowRunOutput object (from deserialize_session_json_fields)
118
+ runs.append(run_item)
119
+ elif isinstance(run_item, dict):
120
+ # Still a dictionary, needs to be converted
121
+ runs.append(WorkflowRunOutput.from_dict(run_item))
122
+ else:
123
+ logger.warning(f"Unexpected run item type: {type(run_item)}")
101
124
 
102
125
  return cls(
103
126
  session_id=data.get("session_id"), # type: ignore
@@ -107,7 +130,7 @@ class WorkflowSession:
107
130
  runs=runs,
108
131
  session_data=data.get("session_data"),
109
132
  workflow_data=data.get("workflow_data"),
110
- extra_data=data.get("extra_data"),
133
+ metadata=data.get("metadata"),
111
134
  created_at=data.get("created_at"),
112
135
  updated_at=data.get("updated_at"),
113
136
  )
agno/team/__init__.py CHANGED
@@ -4,30 +4,29 @@ from agno.run.team import (
4
4
  ReasoningCompletedEvent,
5
5
  ReasoningStartedEvent,
6
6
  ReasoningStepEvent,
7
- RunResponseCancelledEvent,
8
- RunResponseCompletedEvent,
9
- RunResponseContentEvent,
10
- RunResponseErrorEvent,
11
- RunResponseStartedEvent,
7
+ RunCancelledEvent,
8
+ RunCompletedEvent,
9
+ RunContentEvent,
10
+ RunErrorEvent,
11
+ RunStartedEvent,
12
12
  TeamRunEvent,
13
- TeamRunResponse,
14
- TeamRunResponseEvent,
13
+ TeamRunOutput,
14
+ TeamRunOutputEvent,
15
15
  ToolCallCompletedEvent,
16
16
  ToolCallStartedEvent,
17
17
  )
18
- from agno.team.team import RunResponse, Team
18
+ from agno.team.team import Team
19
19
 
20
20
  __all__ = [
21
21
  "Team",
22
- "RunResponse",
23
- "TeamRunResponse",
24
- "TeamRunResponseEvent",
22
+ "TeamRunOutput",
23
+ "TeamRunOutputEvent",
25
24
  "TeamRunEvent",
26
- "RunResponseContentEvent",
27
- "RunResponseCancelledEvent",
28
- "RunResponseErrorEvent",
29
- "RunResponseStartedEvent",
30
- "RunResponseCompletedEvent",
25
+ "RunContentEvent",
26
+ "RunCancelledEvent",
27
+ "RunErrorEvent",
28
+ "RunStartedEvent",
29
+ "RunCompletedEvent",
31
30
  "MemoryUpdateStartedEvent",
32
31
  "MemoryUpdateCompletedEvent",
33
32
  "ReasoningStartedEvent",