agno 1.8.0__py3-none-any.whl → 2.0.0a1__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 (583) hide show
  1. agno/__init__.py +8 -0
  2. agno/agent/__init__.py +19 -27
  3. agno/agent/agent.py +2781 -4126
  4. agno/api/agent.py +9 -65
  5. agno/api/api.py +5 -46
  6. agno/api/evals.py +6 -17
  7. agno/api/os.py +17 -0
  8. agno/api/routes.py +6 -41
  9. agno/api/schemas/__init__.py +9 -0
  10. agno/api/schemas/agent.py +5 -21
  11. agno/api/schemas/evals.py +7 -16
  12. agno/api/schemas/os.py +14 -0
  13. agno/api/schemas/team.py +5 -21
  14. agno/api/schemas/utils.py +21 -0
  15. agno/api/schemas/workflows.py +11 -7
  16. agno/api/settings.py +53 -0
  17. agno/api/team.py +9 -64
  18. agno/api/workflow.py +28 -0
  19. agno/cloud/aws/base.py +214 -0
  20. agno/cloud/aws/s3/__init__.py +2 -0
  21. agno/cloud/aws/s3/api_client.py +43 -0
  22. agno/cloud/aws/s3/bucket.py +195 -0
  23. agno/cloud/aws/s3/object.py +57 -0
  24. agno/db/__init__.py +24 -0
  25. agno/db/base.py +245 -0
  26. agno/db/dynamo/__init__.py +3 -0
  27. agno/db/dynamo/dynamo.py +1749 -0
  28. agno/db/dynamo/schemas.py +278 -0
  29. agno/db/dynamo/utils.py +684 -0
  30. agno/db/firestore/__init__.py +3 -0
  31. agno/db/firestore/firestore.py +1438 -0
  32. agno/db/firestore/schemas.py +130 -0
  33. agno/db/firestore/utils.py +278 -0
  34. agno/db/gcs_json/__init__.py +3 -0
  35. agno/db/gcs_json/gcs_json_db.py +1001 -0
  36. agno/db/gcs_json/utils.py +194 -0
  37. agno/db/in_memory/__init__.py +3 -0
  38. agno/db/in_memory/in_memory_db.py +888 -0
  39. agno/db/in_memory/utils.py +172 -0
  40. agno/db/json/__init__.py +3 -0
  41. agno/db/json/json_db.py +1051 -0
  42. agno/db/json/utils.py +196 -0
  43. agno/db/migrations/v1_to_v2.py +162 -0
  44. agno/db/mongo/__init__.py +3 -0
  45. agno/db/mongo/mongo.py +1417 -0
  46. agno/db/mongo/schemas.py +77 -0
  47. agno/db/mongo/utils.py +204 -0
  48. agno/db/mysql/__init__.py +3 -0
  49. agno/db/mysql/mysql.py +1719 -0
  50. agno/db/mysql/schemas.py +124 -0
  51. agno/db/mysql/utils.py +298 -0
  52. agno/db/postgres/__init__.py +3 -0
  53. agno/db/postgres/postgres.py +1720 -0
  54. agno/db/postgres/schemas.py +124 -0
  55. agno/db/postgres/utils.py +281 -0
  56. agno/db/redis/__init__.py +3 -0
  57. agno/db/redis/redis.py +1371 -0
  58. agno/db/redis/schemas.py +109 -0
  59. agno/db/redis/utils.py +288 -0
  60. agno/db/schemas/__init__.py +3 -0
  61. agno/db/schemas/evals.py +33 -0
  62. agno/db/schemas/knowledge.py +40 -0
  63. agno/db/schemas/memory.py +46 -0
  64. agno/db/singlestore/__init__.py +3 -0
  65. agno/db/singlestore/schemas.py +116 -0
  66. agno/db/singlestore/singlestore.py +1722 -0
  67. agno/db/singlestore/utils.py +327 -0
  68. agno/db/sqlite/__init__.py +3 -0
  69. agno/db/sqlite/schemas.py +119 -0
  70. agno/db/sqlite/sqlite.py +1680 -0
  71. agno/db/sqlite/utils.py +269 -0
  72. agno/db/utils.py +88 -0
  73. agno/eval/__init__.py +14 -0
  74. agno/eval/accuracy.py +142 -43
  75. agno/eval/performance.py +88 -23
  76. agno/eval/reliability.py +73 -20
  77. agno/eval/utils.py +23 -13
  78. agno/integrations/discord/__init__.py +3 -0
  79. agno/{app → integrations}/discord/client.py +10 -10
  80. agno/knowledge/__init__.py +2 -2
  81. agno/{document → knowledge}/chunking/agentic.py +2 -2
  82. agno/{document → knowledge}/chunking/document.py +2 -2
  83. agno/{document → knowledge}/chunking/fixed.py +3 -3
  84. agno/{document → knowledge}/chunking/markdown.py +2 -2
  85. agno/{document → knowledge}/chunking/recursive.py +2 -2
  86. agno/{document → knowledge}/chunking/row.py +2 -2
  87. agno/knowledge/chunking/semantic.py +59 -0
  88. agno/knowledge/chunking/strategy.py +121 -0
  89. agno/knowledge/content.py +74 -0
  90. agno/knowledge/document/__init__.py +5 -0
  91. agno/{document → knowledge/document}/base.py +12 -2
  92. agno/knowledge/embedder/__init__.py +5 -0
  93. agno/{embedder → knowledge/embedder}/aws_bedrock.py +127 -1
  94. agno/{embedder → knowledge/embedder}/azure_openai.py +65 -1
  95. agno/{embedder → knowledge/embedder}/base.py +6 -0
  96. agno/{embedder → knowledge/embedder}/cohere.py +72 -1
  97. agno/{embedder → knowledge/embedder}/fastembed.py +17 -1
  98. agno/{embedder → knowledge/embedder}/fireworks.py +1 -1
  99. agno/{embedder → knowledge/embedder}/google.py +74 -1
  100. agno/{embedder → knowledge/embedder}/huggingface.py +36 -2
  101. agno/{embedder → knowledge/embedder}/jina.py +48 -2
  102. agno/knowledge/embedder/langdb.py +22 -0
  103. agno/knowledge/embedder/mistral.py +139 -0
  104. agno/{embedder → knowledge/embedder}/nebius.py +1 -1
  105. agno/{embedder → knowledge/embedder}/ollama.py +54 -3
  106. agno/knowledge/embedder/openai.py +223 -0
  107. agno/{embedder → knowledge/embedder}/sentence_transformer.py +16 -1
  108. agno/{embedder → knowledge/embedder}/together.py +1 -1
  109. agno/{embedder → knowledge/embedder}/voyageai.py +49 -1
  110. agno/knowledge/knowledge.py +1515 -0
  111. agno/knowledge/reader/__init__.py +7 -0
  112. agno/{document → knowledge}/reader/arxiv_reader.py +32 -4
  113. agno/knowledge/reader/base.py +88 -0
  114. agno/{document → knowledge}/reader/csv_reader.py +68 -15
  115. agno/knowledge/reader/docx_reader.py +83 -0
  116. agno/{document → knowledge}/reader/firecrawl_reader.py +42 -21
  117. agno/knowledge/reader/gcs_reader.py +67 -0
  118. agno/{document → knowledge}/reader/json_reader.py +30 -9
  119. agno/{document → knowledge}/reader/markdown_reader.py +36 -9
  120. agno/{document → knowledge}/reader/pdf_reader.py +79 -21
  121. agno/knowledge/reader/reader_factory.py +275 -0
  122. agno/knowledge/reader/s3_reader.py +171 -0
  123. agno/{document → knowledge}/reader/text_reader.py +31 -10
  124. agno/knowledge/reader/url_reader.py +84 -0
  125. agno/knowledge/reader/web_search_reader.py +389 -0
  126. agno/{document → knowledge}/reader/website_reader.py +37 -10
  127. agno/knowledge/reader/wikipedia_reader.py +59 -0
  128. agno/knowledge/reader/youtube_reader.py +78 -0
  129. agno/knowledge/remote_content/remote_content.py +88 -0
  130. agno/{reranker → knowledge/reranker}/base.py +1 -1
  131. agno/{reranker → knowledge/reranker}/cohere.py +2 -2
  132. agno/{reranker → knowledge/reranker}/infinity.py +2 -2
  133. agno/{reranker → knowledge/reranker}/sentence_transformer.py +2 -2
  134. agno/knowledge/types.py +30 -0
  135. agno/knowledge/utils.py +169 -0
  136. agno/media.py +2 -2
  137. agno/memory/__init__.py +2 -10
  138. agno/memory/manager.py +1003 -148
  139. agno/models/aimlapi/__init__.py +2 -2
  140. agno/models/aimlapi/aimlapi.py +6 -6
  141. agno/models/anthropic/claude.py +129 -82
  142. agno/models/aws/bedrock.py +107 -175
  143. agno/models/aws/claude.py +64 -18
  144. agno/models/azure/ai_foundry.py +73 -23
  145. agno/models/base.py +347 -287
  146. agno/models/cerebras/cerebras.py +84 -27
  147. agno/models/cohere/chat.py +106 -98
  148. agno/models/dashscope/dashscope.py +14 -5
  149. agno/models/google/gemini.py +123 -53
  150. agno/models/groq/groq.py +97 -35
  151. agno/models/huggingface/huggingface.py +92 -27
  152. agno/models/ibm/watsonx.py +72 -13
  153. agno/models/litellm/chat.py +85 -13
  154. agno/models/message.py +38 -144
  155. agno/models/meta/llama.py +85 -49
  156. agno/models/metrics.py +120 -0
  157. agno/models/mistral/mistral.py +90 -21
  158. agno/models/ollama/__init__.py +0 -2
  159. agno/models/ollama/chat.py +84 -46
  160. agno/models/openai/chat.py +135 -27
  161. agno/models/openai/responses.py +233 -115
  162. agno/models/perplexity/perplexity.py +26 -2
  163. agno/models/portkey/portkey.py +0 -7
  164. agno/models/response.py +14 -8
  165. agno/models/utils.py +20 -0
  166. agno/models/vercel/__init__.py +2 -2
  167. agno/models/vercel/v0.py +1 -1
  168. agno/models/vllm/__init__.py +2 -2
  169. agno/models/vllm/vllm.py +3 -3
  170. agno/models/xai/xai.py +10 -10
  171. agno/os/__init__.py +3 -0
  172. agno/os/app.py +393 -0
  173. agno/os/auth.py +47 -0
  174. agno/os/config.py +103 -0
  175. agno/os/interfaces/agui/__init__.py +3 -0
  176. agno/os/interfaces/agui/agui.py +31 -0
  177. agno/{app/agui/async_router.py → os/interfaces/agui/router.py} +16 -16
  178. agno/{app → os/interfaces}/agui/utils.py +65 -28
  179. agno/os/interfaces/base.py +21 -0
  180. agno/os/interfaces/slack/__init__.py +3 -0
  181. agno/{app/slack/async_router.py → os/interfaces/slack/router.py} +3 -5
  182. agno/os/interfaces/slack/slack.py +33 -0
  183. agno/os/interfaces/whatsapp/__init__.py +3 -0
  184. agno/{app/whatsapp/async_router.py → os/interfaces/whatsapp/router.py} +4 -7
  185. agno/os/interfaces/whatsapp/whatsapp.py +30 -0
  186. agno/os/router.py +843 -0
  187. agno/os/routers/__init__.py +3 -0
  188. agno/os/routers/evals/__init__.py +3 -0
  189. agno/os/routers/evals/evals.py +204 -0
  190. agno/os/routers/evals/schemas.py +142 -0
  191. agno/os/routers/evals/utils.py +161 -0
  192. agno/os/routers/knowledge/__init__.py +3 -0
  193. agno/os/routers/knowledge/knowledge.py +413 -0
  194. agno/os/routers/knowledge/schemas.py +118 -0
  195. agno/os/routers/memory/__init__.py +3 -0
  196. agno/os/routers/memory/memory.py +179 -0
  197. agno/os/routers/memory/schemas.py +58 -0
  198. agno/os/routers/metrics/__init__.py +3 -0
  199. agno/os/routers/metrics/metrics.py +58 -0
  200. agno/os/routers/metrics/schemas.py +47 -0
  201. agno/os/routers/session/__init__.py +3 -0
  202. agno/os/routers/session/session.py +163 -0
  203. agno/os/schema.py +892 -0
  204. agno/{app/playground → os}/settings.py +8 -15
  205. agno/os/utils.py +270 -0
  206. agno/reasoning/azure_ai_foundry.py +4 -4
  207. agno/reasoning/deepseek.py +4 -4
  208. agno/reasoning/default.py +6 -11
  209. agno/reasoning/groq.py +4 -4
  210. agno/reasoning/helpers.py +4 -6
  211. agno/reasoning/ollama.py +4 -4
  212. agno/reasoning/openai.py +4 -4
  213. agno/run/{response.py → agent.py} +144 -72
  214. agno/run/base.py +44 -58
  215. agno/run/cancel.py +83 -0
  216. agno/run/team.py +133 -77
  217. agno/run/workflow.py +537 -12
  218. agno/session/__init__.py +10 -0
  219. agno/session/agent.py +244 -0
  220. agno/session/summary.py +225 -0
  221. agno/session/team.py +262 -0
  222. agno/{storage/session/v2 → session}/workflow.py +47 -24
  223. agno/team/__init__.py +15 -16
  224. agno/team/team.py +2967 -4243
  225. agno/tools/agentql.py +14 -5
  226. agno/tools/airflow.py +9 -4
  227. agno/tools/api.py +7 -3
  228. agno/tools/apify.py +2 -46
  229. agno/tools/arxiv.py +8 -3
  230. agno/tools/aws_lambda.py +7 -5
  231. agno/tools/aws_ses.py +7 -1
  232. agno/tools/baidusearch.py +4 -1
  233. agno/tools/bitbucket.py +4 -4
  234. agno/tools/brandfetch.py +14 -11
  235. agno/tools/bravesearch.py +4 -1
  236. agno/tools/brightdata.py +42 -22
  237. agno/tools/browserbase.py +13 -4
  238. agno/tools/calcom.py +12 -10
  239. agno/tools/calculator.py +10 -27
  240. agno/tools/cartesia.py +18 -13
  241. agno/tools/{clickup_tool.py → clickup.py} +12 -25
  242. agno/tools/confluence.py +71 -18
  243. agno/tools/crawl4ai.py +7 -1
  244. agno/tools/csv_toolkit.py +9 -8
  245. agno/tools/dalle.py +18 -11
  246. agno/tools/daytona.py +13 -16
  247. agno/tools/decorator.py +6 -3
  248. agno/tools/desi_vocal.py +16 -7
  249. agno/tools/discord.py +11 -8
  250. agno/tools/docker.py +30 -42
  251. agno/tools/duckdb.py +34 -53
  252. agno/tools/duckduckgo.py +8 -7
  253. agno/tools/e2b.py +62 -62
  254. agno/tools/eleven_labs.py +35 -28
  255. agno/tools/email.py +4 -1
  256. agno/tools/evm.py +7 -1
  257. agno/tools/exa.py +19 -14
  258. agno/tools/fal.py +29 -29
  259. agno/tools/file.py +9 -8
  260. agno/tools/financial_datasets.py +25 -44
  261. agno/tools/firecrawl.py +22 -22
  262. agno/tools/function.py +68 -17
  263. agno/tools/giphy.py +22 -10
  264. agno/tools/github.py +48 -126
  265. agno/tools/gmail.py +46 -62
  266. agno/tools/google_bigquery.py +7 -6
  267. agno/tools/google_maps.py +11 -26
  268. agno/tools/googlesearch.py +7 -2
  269. agno/tools/googlesheets.py +21 -17
  270. agno/tools/hackernews.py +9 -5
  271. agno/tools/jina.py +5 -4
  272. agno/tools/jira.py +18 -9
  273. agno/tools/knowledge.py +31 -32
  274. agno/tools/linear.py +18 -33
  275. agno/tools/linkup.py +5 -1
  276. agno/tools/local_file_system.py +8 -5
  277. agno/tools/lumalab.py +31 -19
  278. agno/tools/mem0.py +18 -12
  279. agno/tools/memori.py +14 -10
  280. agno/tools/mlx_transcribe.py +3 -2
  281. agno/tools/models/azure_openai.py +32 -14
  282. agno/tools/models/gemini.py +58 -31
  283. agno/tools/models/groq.py +29 -20
  284. agno/tools/models/nebius.py +27 -11
  285. agno/tools/models_labs.py +39 -15
  286. agno/tools/moviepy_video.py +7 -6
  287. agno/tools/neo4j.py +134 -0
  288. agno/tools/newspaper.py +7 -2
  289. agno/tools/newspaper4k.py +8 -3
  290. agno/tools/openai.py +57 -26
  291. agno/tools/openbb.py +12 -11
  292. agno/tools/opencv.py +62 -46
  293. agno/tools/openweather.py +14 -12
  294. agno/tools/pandas.py +11 -3
  295. agno/tools/postgres.py +4 -12
  296. agno/tools/pubmed.py +4 -1
  297. agno/tools/python.py +9 -22
  298. agno/tools/reasoning.py +35 -27
  299. agno/tools/reddit.py +11 -26
  300. agno/tools/replicate.py +54 -41
  301. agno/tools/resend.py +4 -1
  302. agno/tools/scrapegraph.py +15 -14
  303. agno/tools/searxng.py +10 -23
  304. agno/tools/serpapi.py +6 -3
  305. agno/tools/serper.py +13 -4
  306. agno/tools/shell.py +9 -2
  307. agno/tools/slack.py +12 -11
  308. agno/tools/sleep.py +3 -2
  309. agno/tools/spider.py +24 -4
  310. agno/tools/sql.py +7 -6
  311. agno/tools/tavily.py +6 -4
  312. agno/tools/telegram.py +12 -4
  313. agno/tools/todoist.py +11 -31
  314. agno/tools/toolkit.py +1 -1
  315. agno/tools/trafilatura.py +22 -6
  316. agno/tools/trello.py +9 -22
  317. agno/tools/twilio.py +10 -3
  318. agno/tools/user_control_flow.py +6 -1
  319. agno/tools/valyu.py +34 -5
  320. agno/tools/visualization.py +19 -28
  321. agno/tools/webbrowser.py +4 -3
  322. agno/tools/webex.py +11 -7
  323. agno/tools/website.py +15 -46
  324. agno/tools/webtools.py +12 -4
  325. agno/tools/whatsapp.py +5 -9
  326. agno/tools/wikipedia.py +20 -13
  327. agno/tools/x.py +14 -13
  328. agno/tools/yfinance.py +13 -40
  329. agno/tools/youtube.py +26 -20
  330. agno/tools/zendesk.py +7 -2
  331. agno/tools/zep.py +10 -7
  332. agno/tools/zoom.py +10 -9
  333. agno/utils/common.py +1 -19
  334. agno/utils/events.py +95 -118
  335. agno/utils/knowledge.py +29 -0
  336. agno/utils/location.py +2 -2
  337. agno/utils/log.py +2 -2
  338. agno/utils/mcp.py +11 -5
  339. agno/utils/media.py +39 -0
  340. agno/utils/message.py +12 -1
  341. agno/utils/models/claude.py +6 -4
  342. agno/utils/models/mistral.py +8 -7
  343. agno/utils/models/schema_utils.py +3 -3
  344. agno/utils/pprint.py +33 -32
  345. agno/utils/print_response/agent.py +779 -0
  346. agno/utils/print_response/team.py +1565 -0
  347. agno/utils/print_response/workflow.py +1451 -0
  348. agno/utils/prompts.py +14 -14
  349. agno/utils/reasoning.py +87 -0
  350. agno/utils/response.py +42 -42
  351. agno/utils/string.py +8 -22
  352. agno/utils/team.py +50 -0
  353. agno/utils/timer.py +2 -2
  354. agno/vectordb/base.py +33 -21
  355. agno/vectordb/cassandra/cassandra.py +287 -23
  356. agno/vectordb/chroma/chromadb.py +482 -59
  357. agno/vectordb/clickhouse/clickhousedb.py +270 -63
  358. agno/vectordb/couchbase/couchbase.py +309 -29
  359. agno/vectordb/lancedb/lance_db.py +360 -21
  360. agno/vectordb/langchaindb/__init__.py +5 -0
  361. agno/vectordb/langchaindb/langchaindb.py +145 -0
  362. agno/vectordb/lightrag/__init__.py +5 -0
  363. agno/vectordb/lightrag/lightrag.py +374 -0
  364. agno/vectordb/llamaindex/llamaindexdb.py +127 -0
  365. agno/vectordb/milvus/milvus.py +242 -32
  366. agno/vectordb/mongodb/mongodb.py +200 -24
  367. agno/vectordb/pgvector/pgvector.py +319 -37
  368. agno/vectordb/pineconedb/pineconedb.py +221 -27
  369. agno/vectordb/qdrant/qdrant.py +356 -14
  370. agno/vectordb/singlestore/singlestore.py +286 -29
  371. agno/vectordb/surrealdb/surrealdb.py +187 -7
  372. agno/vectordb/upstashdb/upstashdb.py +342 -26
  373. agno/vectordb/weaviate/weaviate.py +227 -165
  374. agno/workflow/__init__.py +17 -13
  375. agno/workflow/{v2/condition.py → condition.py} +135 -32
  376. agno/workflow/{v2/loop.py → loop.py} +115 -28
  377. agno/workflow/{v2/parallel.py → parallel.py} +138 -108
  378. agno/workflow/{v2/router.py → router.py} +133 -32
  379. agno/workflow/{v2/step.py → step.py} +200 -42
  380. agno/workflow/{v2/steps.py → steps.py} +147 -66
  381. agno/workflow/types.py +482 -0
  382. agno/workflow/workflow.py +2394 -696
  383. agno-2.0.0a1.dist-info/METADATA +355 -0
  384. agno-2.0.0a1.dist-info/RECORD +514 -0
  385. agno/agent/metrics.py +0 -107
  386. agno/api/app.py +0 -35
  387. agno/api/playground.py +0 -92
  388. agno/api/schemas/app.py +0 -12
  389. agno/api/schemas/playground.py +0 -22
  390. agno/api/schemas/user.py +0 -35
  391. agno/api/schemas/workspace.py +0 -46
  392. agno/api/user.py +0 -160
  393. agno/api/workflows.py +0 -33
  394. agno/api/workspace.py +0 -175
  395. agno/app/agui/__init__.py +0 -3
  396. agno/app/agui/app.py +0 -17
  397. agno/app/agui/sync_router.py +0 -120
  398. agno/app/base.py +0 -186
  399. agno/app/discord/__init__.py +0 -3
  400. agno/app/fastapi/__init__.py +0 -3
  401. agno/app/fastapi/app.py +0 -107
  402. agno/app/fastapi/async_router.py +0 -457
  403. agno/app/fastapi/sync_router.py +0 -448
  404. agno/app/playground/app.py +0 -228
  405. agno/app/playground/async_router.py +0 -1050
  406. agno/app/playground/deploy.py +0 -249
  407. agno/app/playground/operator.py +0 -183
  408. agno/app/playground/schemas.py +0 -220
  409. agno/app/playground/serve.py +0 -55
  410. agno/app/playground/sync_router.py +0 -1042
  411. agno/app/playground/utils.py +0 -46
  412. agno/app/settings.py +0 -15
  413. agno/app/slack/__init__.py +0 -3
  414. agno/app/slack/app.py +0 -19
  415. agno/app/slack/sync_router.py +0 -92
  416. agno/app/utils.py +0 -54
  417. agno/app/whatsapp/__init__.py +0 -3
  418. agno/app/whatsapp/app.py +0 -15
  419. agno/app/whatsapp/sync_router.py +0 -197
  420. agno/cli/auth_server.py +0 -249
  421. agno/cli/config.py +0 -274
  422. agno/cli/console.py +0 -88
  423. agno/cli/credentials.py +0 -23
  424. agno/cli/entrypoint.py +0 -571
  425. agno/cli/operator.py +0 -357
  426. agno/cli/settings.py +0 -96
  427. agno/cli/ws/ws_cli.py +0 -817
  428. agno/constants.py +0 -13
  429. agno/document/__init__.py +0 -5
  430. agno/document/chunking/semantic.py +0 -45
  431. agno/document/chunking/strategy.py +0 -31
  432. agno/document/reader/__init__.py +0 -5
  433. agno/document/reader/base.py +0 -47
  434. agno/document/reader/docx_reader.py +0 -60
  435. agno/document/reader/gcs/pdf_reader.py +0 -44
  436. agno/document/reader/s3/pdf_reader.py +0 -59
  437. agno/document/reader/s3/text_reader.py +0 -63
  438. agno/document/reader/url_reader.py +0 -59
  439. agno/document/reader/youtube_reader.py +0 -58
  440. agno/embedder/__init__.py +0 -5
  441. agno/embedder/langdb.py +0 -80
  442. agno/embedder/mistral.py +0 -82
  443. agno/embedder/openai.py +0 -78
  444. agno/file/__init__.py +0 -5
  445. agno/file/file.py +0 -16
  446. agno/file/local/csv.py +0 -32
  447. agno/file/local/txt.py +0 -19
  448. agno/infra/app.py +0 -240
  449. agno/infra/base.py +0 -144
  450. agno/infra/context.py +0 -20
  451. agno/infra/db_app.py +0 -52
  452. agno/infra/resource.py +0 -205
  453. agno/infra/resources.py +0 -55
  454. agno/knowledge/agent.py +0 -698
  455. agno/knowledge/arxiv.py +0 -33
  456. agno/knowledge/combined.py +0 -36
  457. agno/knowledge/csv.py +0 -144
  458. agno/knowledge/csv_url.py +0 -124
  459. agno/knowledge/document.py +0 -223
  460. agno/knowledge/docx.py +0 -137
  461. agno/knowledge/firecrawl.py +0 -34
  462. agno/knowledge/gcs/__init__.py +0 -0
  463. agno/knowledge/gcs/base.py +0 -39
  464. agno/knowledge/gcs/pdf.py +0 -125
  465. agno/knowledge/json.py +0 -137
  466. agno/knowledge/langchain.py +0 -71
  467. agno/knowledge/light_rag.py +0 -273
  468. agno/knowledge/llamaindex.py +0 -66
  469. agno/knowledge/markdown.py +0 -154
  470. agno/knowledge/pdf.py +0 -164
  471. agno/knowledge/pdf_bytes.py +0 -42
  472. agno/knowledge/pdf_url.py +0 -148
  473. agno/knowledge/s3/__init__.py +0 -0
  474. agno/knowledge/s3/base.py +0 -64
  475. agno/knowledge/s3/pdf.py +0 -33
  476. agno/knowledge/s3/text.py +0 -34
  477. agno/knowledge/text.py +0 -141
  478. agno/knowledge/url.py +0 -46
  479. agno/knowledge/website.py +0 -179
  480. agno/knowledge/wikipedia.py +0 -32
  481. agno/knowledge/youtube.py +0 -35
  482. agno/memory/agent.py +0 -423
  483. agno/memory/classifier.py +0 -104
  484. agno/memory/db/__init__.py +0 -5
  485. agno/memory/db/base.py +0 -42
  486. agno/memory/db/mongodb.py +0 -189
  487. agno/memory/db/postgres.py +0 -203
  488. agno/memory/db/sqlite.py +0 -193
  489. agno/memory/memory.py +0 -22
  490. agno/memory/row.py +0 -36
  491. agno/memory/summarizer.py +0 -201
  492. agno/memory/summary.py +0 -19
  493. agno/memory/team.py +0 -415
  494. agno/memory/v2/__init__.py +0 -2
  495. agno/memory/v2/db/__init__.py +0 -1
  496. agno/memory/v2/db/base.py +0 -42
  497. agno/memory/v2/db/firestore.py +0 -339
  498. agno/memory/v2/db/mongodb.py +0 -196
  499. agno/memory/v2/db/postgres.py +0 -214
  500. agno/memory/v2/db/redis.py +0 -187
  501. agno/memory/v2/db/schema.py +0 -54
  502. agno/memory/v2/db/sqlite.py +0 -209
  503. agno/memory/v2/manager.py +0 -437
  504. agno/memory/v2/memory.py +0 -1097
  505. agno/memory/v2/schema.py +0 -55
  506. agno/memory/v2/summarizer.py +0 -215
  507. agno/memory/workflow.py +0 -38
  508. agno/models/ollama/tools.py +0 -430
  509. agno/models/qwen/__init__.py +0 -5
  510. agno/playground/__init__.py +0 -10
  511. agno/playground/deploy.py +0 -3
  512. agno/playground/playground.py +0 -3
  513. agno/playground/serve.py +0 -3
  514. agno/playground/settings.py +0 -3
  515. agno/reranker/__init__.py +0 -0
  516. agno/run/v2/__init__.py +0 -0
  517. agno/run/v2/workflow.py +0 -567
  518. agno/storage/__init__.py +0 -0
  519. agno/storage/agent/__init__.py +0 -0
  520. agno/storage/agent/dynamodb.py +0 -1
  521. agno/storage/agent/json.py +0 -1
  522. agno/storage/agent/mongodb.py +0 -1
  523. agno/storage/agent/postgres.py +0 -1
  524. agno/storage/agent/singlestore.py +0 -1
  525. agno/storage/agent/sqlite.py +0 -1
  526. agno/storage/agent/yaml.py +0 -1
  527. agno/storage/base.py +0 -60
  528. agno/storage/dynamodb.py +0 -673
  529. agno/storage/firestore.py +0 -297
  530. agno/storage/gcs_json.py +0 -261
  531. agno/storage/in_memory.py +0 -234
  532. agno/storage/json.py +0 -237
  533. agno/storage/mongodb.py +0 -328
  534. agno/storage/mysql.py +0 -685
  535. agno/storage/postgres.py +0 -682
  536. agno/storage/redis.py +0 -336
  537. agno/storage/session/__init__.py +0 -16
  538. agno/storage/session/agent.py +0 -64
  539. agno/storage/session/team.py +0 -63
  540. agno/storage/session/v2/__init__.py +0 -5
  541. agno/storage/session/workflow.py +0 -61
  542. agno/storage/singlestore.py +0 -606
  543. agno/storage/sqlite.py +0 -646
  544. agno/storage/workflow/__init__.py +0 -0
  545. agno/storage/workflow/mongodb.py +0 -1
  546. agno/storage/workflow/postgres.py +0 -1
  547. agno/storage/workflow/sqlite.py +0 -1
  548. agno/storage/yaml.py +0 -241
  549. agno/tools/thinking.py +0 -73
  550. agno/utils/defaults.py +0 -57
  551. agno/utils/filesystem.py +0 -39
  552. agno/utils/git.py +0 -52
  553. agno/utils/json_io.py +0 -30
  554. agno/utils/load_env.py +0 -19
  555. agno/utils/py_io.py +0 -19
  556. agno/utils/pyproject.py +0 -18
  557. agno/utils/resource_filter.py +0 -31
  558. agno/workflow/v2/__init__.py +0 -21
  559. agno/workflow/v2/types.py +0 -357
  560. agno/workflow/v2/workflow.py +0 -3312
  561. agno/workspace/__init__.py +0 -0
  562. agno/workspace/config.py +0 -325
  563. agno/workspace/enums.py +0 -6
  564. agno/workspace/helpers.py +0 -52
  565. agno/workspace/operator.py +0 -757
  566. agno/workspace/settings.py +0 -158
  567. agno-1.8.0.dist-info/METADATA +0 -979
  568. agno-1.8.0.dist-info/RECORD +0 -565
  569. agno-1.8.0.dist-info/entry_points.txt +0 -3
  570. /agno/{app → db/migrations}/__init__.py +0 -0
  571. /agno/{app/playground/__init__.py → db/schemas/metrics.py} +0 -0
  572. /agno/{cli → integrations}/__init__.py +0 -0
  573. /agno/{cli/ws → knowledge/chunking}/__init__.py +0 -0
  574. /agno/{document/chunking → knowledge/remote_content}/__init__.py +0 -0
  575. /agno/{document/reader/gcs → knowledge/reranker}/__init__.py +0 -0
  576. /agno/{document/reader/s3 → os/interfaces}/__init__.py +0 -0
  577. /agno/{app → os/interfaces}/slack/security.py +0 -0
  578. /agno/{app → os/interfaces}/whatsapp/security.py +0 -0
  579. /agno/{file/local → utils/print_response}/__init__.py +0 -0
  580. /agno/{infra → vectordb/llamaindex}/__init__.py +0 -0
  581. {agno-1.8.0.dist-info → agno-2.0.0a1.dist-info}/WHEEL +0 -0
  582. {agno-1.8.0.dist-info → agno-2.0.0a1.dist-info}/licenses/LICENSE +0 -0
  583. {agno-1.8.0.dist-info → agno-2.0.0a1.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",