agno 2.3.8__py3-none-any.whl → 2.3.9__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 (62) hide show
  1. agno/agent/agent.py +134 -82
  2. agno/db/mysql/__init__.py +2 -1
  3. agno/db/mysql/async_mysql.py +2888 -0
  4. agno/db/mysql/mysql.py +17 -8
  5. agno/db/mysql/utils.py +139 -6
  6. agno/db/postgres/async_postgres.py +10 -5
  7. agno/db/postgres/postgres.py +7 -2
  8. agno/db/schemas/evals.py +1 -0
  9. agno/db/singlestore/singlestore.py +5 -1
  10. agno/db/sqlite/async_sqlite.py +2 -2
  11. agno/eval/__init__.py +10 -0
  12. agno/eval/agent_as_judge.py +860 -0
  13. agno/eval/base.py +29 -0
  14. agno/eval/utils.py +2 -1
  15. agno/exceptions.py +7 -0
  16. agno/knowledge/embedder/openai.py +8 -8
  17. agno/knowledge/knowledge.py +1142 -176
  18. agno/media.py +22 -6
  19. agno/models/aws/claude.py +8 -7
  20. agno/models/base.py +27 -1
  21. agno/models/deepseek/deepseek.py +67 -0
  22. agno/models/google/gemini.py +65 -11
  23. agno/models/google/utils.py +22 -0
  24. agno/models/message.py +2 -0
  25. agno/models/openai/chat.py +4 -0
  26. agno/os/app.py +64 -74
  27. agno/os/interfaces/a2a/router.py +3 -4
  28. agno/os/interfaces/agui/router.py +2 -0
  29. agno/os/router.py +3 -1607
  30. agno/os/routers/agents/__init__.py +3 -0
  31. agno/os/routers/agents/router.py +581 -0
  32. agno/os/routers/agents/schema.py +261 -0
  33. agno/os/routers/evals/evals.py +26 -6
  34. agno/os/routers/evals/schemas.py +34 -2
  35. agno/os/routers/evals/utils.py +101 -20
  36. agno/os/routers/knowledge/knowledge.py +1 -1
  37. agno/os/routers/teams/__init__.py +3 -0
  38. agno/os/routers/teams/router.py +496 -0
  39. agno/os/routers/teams/schema.py +257 -0
  40. agno/os/routers/workflows/__init__.py +3 -0
  41. agno/os/routers/workflows/router.py +545 -0
  42. agno/os/routers/workflows/schema.py +75 -0
  43. agno/os/schema.py +1 -559
  44. agno/os/utils.py +139 -2
  45. agno/team/team.py +73 -16
  46. agno/tools/file_generation.py +12 -6
  47. agno/tools/firecrawl.py +15 -7
  48. agno/utils/hooks.py +64 -5
  49. agno/utils/http.py +2 -2
  50. agno/utils/media.py +11 -1
  51. agno/utils/print_response/agent.py +8 -0
  52. agno/utils/print_response/team.py +8 -0
  53. agno/vectordb/pgvector/pgvector.py +88 -51
  54. agno/workflow/parallel.py +3 -3
  55. agno/workflow/step.py +14 -2
  56. agno/workflow/types.py +38 -2
  57. agno/workflow/workflow.py +12 -4
  58. {agno-2.3.8.dist-info → agno-2.3.9.dist-info}/METADATA +7 -2
  59. {agno-2.3.8.dist-info → agno-2.3.9.dist-info}/RECORD +62 -49
  60. {agno-2.3.8.dist-info → agno-2.3.9.dist-info}/WHEEL +0 -0
  61. {agno-2.3.8.dist-info → agno-2.3.9.dist-info}/licenses/LICENSE +0 -0
  62. {agno-2.3.8.dist-info → agno-2.3.9.dist-info}/top_level.txt +0 -0
agno/workflow/types.py CHANGED
@@ -107,10 +107,46 @@ class StepInput:
107
107
  return str(self.input)
108
108
 
109
109
  def get_step_output(self, step_name: str) -> Optional["StepOutput"]:
110
- """Get output from a specific previous step by name"""
110
+ """Get output from a specific previous step by name
111
+
112
+ Searches recursively through nested steps (Parallel, Condition, Router, Loop, Steps)
113
+ to find step outputs at any depth.
114
+ """
111
115
  if not self.previous_step_outputs:
112
116
  return None
113
- return self.previous_step_outputs.get(step_name)
117
+
118
+ # First try direct lookup
119
+ direct = self.previous_step_outputs.get(step_name)
120
+ if direct:
121
+ return direct
122
+
123
+ # Search recursively in nested steps
124
+ return self._search_nested_steps(step_name)
125
+
126
+ def _search_nested_steps(self, step_name: str) -> Optional["StepOutput"]:
127
+ """Recursively search for a step output in nested steps (Parallel, Condition, etc.)"""
128
+ if not self.previous_step_outputs:
129
+ return None
130
+
131
+ for step_output in self.previous_step_outputs.values():
132
+ result = self._search_in_step_output(step_output, step_name)
133
+ if result:
134
+ return result
135
+ return None
136
+
137
+ def _search_in_step_output(self, step_output: "StepOutput", step_name: str) -> Optional["StepOutput"]:
138
+ """Helper to recursively search within a single StepOutput"""
139
+ if not step_output.steps:
140
+ return None
141
+
142
+ for nested_step in step_output.steps:
143
+ if nested_step.step_name == step_name:
144
+ return nested_step
145
+ # Recursively search deeper
146
+ result = self._search_in_step_output(nested_step, step_name)
147
+ if result:
148
+ return result
149
+ return None
114
150
 
115
151
  def get_step_content(self, step_name: str) -> Optional[Union[str, Dict[str, str]]]:
116
152
  """Get content from a specific previous step by name
agno/workflow/workflow.py CHANGED
@@ -2569,6 +2569,8 @@ class Workflow:
2569
2569
  else:
2570
2570
  # Update status to RUNNING and save
2571
2571
  workflow_run_response.status = RunStatus.running
2572
+
2573
+ workflow_session.upsert_run(run=workflow_run_response)
2572
2574
  if self._has_async_db():
2573
2575
  await self.asave_session(session=workflow_session)
2574
2576
  else:
@@ -3449,6 +3451,7 @@ class Workflow:
3449
3451
  input: Optional[Union[str, Dict[str, Any], List[Any], BaseModel]] = None,
3450
3452
  additional_data: Optional[Dict[str, Any]] = None,
3451
3453
  user_id: Optional[str] = None,
3454
+ run_id: Optional[str] = None,
3452
3455
  session_id: Optional[str] = None,
3453
3456
  session_state: Optional[Dict[str, Any]] = None,
3454
3457
  audio: Optional[List[Audio]] = None,
@@ -3468,6 +3471,7 @@ class Workflow:
3468
3471
  input: Optional[Union[str, Dict[str, Any], List[Any], BaseModel]] = None,
3469
3472
  additional_data: Optional[Dict[str, Any]] = None,
3470
3473
  user_id: Optional[str] = None,
3474
+ run_id: Optional[str] = None,
3471
3475
  session_id: Optional[str] = None,
3472
3476
  session_state: Optional[Dict[str, Any]] = None,
3473
3477
  audio: Optional[List[Audio]] = None,
@@ -3486,6 +3490,7 @@ class Workflow:
3486
3490
  input: Optional[Union[str, Dict[str, Any], List[Any], BaseModel]] = None,
3487
3491
  additional_data: Optional[Dict[str, Any]] = None,
3488
3492
  user_id: Optional[str] = None,
3493
+ run_id: Optional[str] = None,
3489
3494
  session_id: Optional[str] = None,
3490
3495
  session_state: Optional[Dict[str, Any]] = None,
3491
3496
  audio: Optional[List[Audio]] = None,
@@ -3503,8 +3508,8 @@ class Workflow:
3503
3508
  if self._has_async_db():
3504
3509
  raise Exception("`run()` is not supported with an async DB. Please use `arun()`.")
3505
3510
 
3506
- # Create a run_id for this specific run and register immediately for cancellation tracking
3507
- run_id = str(uuid4())
3511
+ # Set the id for the run and register it immediately for cancellation tracking
3512
+ run_id = run_id or str(uuid4())
3508
3513
  register_run(run_id)
3509
3514
 
3510
3515
  input = self._validate_input(input)
@@ -3621,6 +3626,7 @@ class Workflow:
3621
3626
  input: Optional[Union[str, Dict[str, Any], List[Any], BaseModel, List[Message]]] = None,
3622
3627
  additional_data: Optional[Dict[str, Any]] = None,
3623
3628
  user_id: Optional[str] = None,
3629
+ run_id: Optional[str] = None,
3624
3630
  session_id: Optional[str] = None,
3625
3631
  session_state: Optional[Dict[str, Any]] = None,
3626
3632
  audio: Optional[List[Audio]] = None,
@@ -3641,6 +3647,7 @@ class Workflow:
3641
3647
  input: Optional[Union[str, Dict[str, Any], List[Any], BaseModel, List[Message]]] = None,
3642
3648
  additional_data: Optional[Dict[str, Any]] = None,
3643
3649
  user_id: Optional[str] = None,
3650
+ run_id: Optional[str] = None,
3644
3651
  session_id: Optional[str] = None,
3645
3652
  session_state: Optional[Dict[str, Any]] = None,
3646
3653
  audio: Optional[List[Audio]] = None,
@@ -3660,6 +3667,7 @@ class Workflow:
3660
3667
  input: Optional[Union[str, Dict[str, Any], List[Any], BaseModel, List[Message]]] = None,
3661
3668
  additional_data: Optional[Dict[str, Any]] = None,
3662
3669
  user_id: Optional[str] = None,
3670
+ run_id: Optional[str] = None,
3663
3671
  session_id: Optional[str] = None,
3664
3672
  session_state: Optional[Dict[str, Any]] = None,
3665
3673
  audio: Optional[List[Audio]] = None,
@@ -3730,8 +3738,8 @@ class Workflow:
3730
3738
 
3731
3739
  self._set_debug()
3732
3740
 
3733
- # Create a run_id for this specific run and register immediately for cancellation tracking
3734
- run_id = str(uuid4())
3741
+ # Set the id for the run and register it immediately for cancellation tracking
3742
+ run_id = run_id or str(uuid4())
3735
3743
  register_run(run_id)
3736
3744
 
3737
3745
  self.initialize_workflow()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agno
3
- Version: 2.3.8
3
+ Version: 2.3.9
4
4
  Summary: Agno: a lightweight library for building Multi-Agent Systems
5
5
  Author-email: Ashpreet Bedi <ashpreet@agno.com>
6
6
  Project-URL: homepage, https://agno.com
@@ -210,6 +210,9 @@ Requires-Dist: google-cloud-firestore; extra == "firestore"
210
210
  Provides-Extra: redis
211
211
  Requires-Dist: redis; extra == "redis"
212
212
  Requires-Dist: redisvl; extra == "redis"
213
+ Provides-Extra: mysql
214
+ Requires-Dist: pymysql; extra == "mysql"
215
+ Requires-Dist: asyncmy; extra == "mysql"
213
216
  Provides-Extra: pgvector
214
217
  Requires-Dist: pgvector; extra == "pgvector"
215
218
  Provides-Extra: chromadb
@@ -417,7 +420,9 @@ Dynamic: license-file
417
420
 
418
421
  Agno is an incredibly fast multi-agent framework, runtime and control plane.
419
422
 
420
- It provides the complete stack for building, running and managing multi-agent systems:
423
+ Companies want to build AI products, run them as a secure containerized service in their cloud, and monitor, test, and manage their agentic system with a beautiful UI. Doing this takes far more than calling an LLM API in a loop, it requires a thoughtfully designed agentic platform.
424
+
425
+ Agno provides the unified stack for building, running and managing multi-agent systems:
421
426
 
422
427
  - **Framework**: Build agents, multi-agent teams and workflows with memory, knowledge, state, guardrails, HITL, context compression, MCP, A2A and 100+ toolkits.
423
428
  - **AgentOS Runtime**: Run your multi-agent system in production with a secure, stateless runtime and ready to use integration endpoints.
@@ -1,12 +1,12 @@
1
1
  agno/__init__.py,sha256=fTmeyAdl4Mc1Y7_y_sACZTzXrc2Ymn8nMaFlgaawFvo,183
2
2
  agno/debug.py,sha256=zzYxYwfF5AfHgQ6JU7oCmPK4yc97Y5xxOb5fiezq8nA,449
3
- agno/exceptions.py,sha256=-1VdjOTArJgMO5uqoEQ2CNL2k6ICrHWSiukznsI6S78,5361
3
+ agno/exceptions.py,sha256=1g5KCwZVn9pzkK-YiXaORfQW3ryHzVJty9Ql0JXfXzY,5569
4
4
  agno/filters.py,sha256=QxBjNUUS53o1zkG-J0F8XjDzlu0ADtJn3r6rfkGZ9Fk,12079
5
- agno/media.py,sha256=eTfYb_pwhX_PCIVPSrW4VYRqmoxKABEF1aZClrVvQ30,16500
5
+ agno/media.py,sha256=PisfrNwkx2yVOW8p6LXlV237jI06Y6kGjd7wUMk5170,17121
6
6
  agno/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  agno/table.py,sha256=9hHFnInNsrj0ZKtWjGDP5c6kbmNdtQvDDYT2j2CZJ6o,198
8
8
  agno/agent/__init__.py,sha256=s7S3FgsjZxuaabzi8L5n4aSH8IZAiZ7XaNNcySGR-EQ,1051
9
- agno/agent/agent.py,sha256=ljgnuhq2UTjMC6-hSSnb4eM66x8ItubRpNWvR4tpNtE,497820
9
+ agno/agent/agent.py,sha256=IGJNpSJFWcvNXyCy7UdwY_5lKXHEl5QiJ6p8_3E2sXs,499463
10
10
  agno/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  agno/api/agent.py,sha256=fKlQ62E_C9Rjd7Zus3Gs3R1RG-IhzFV-ICpkb6SLqYc,932
12
12
  agno/api/api.py,sha256=gFhVjxJYkQsw8mBl2fhoStMPGlyJ37DJaqgUOwZVvQI,1021
@@ -64,13 +64,14 @@ agno/db/mongo/async_mongo.py,sha256=0jh36UmtYqeQOyMT9MB-2GE7aqCUEN0jGWJzuv8ZfCo,
64
64
  agno/db/mongo/mongo.py,sha256=GHeDRw2VhhuTDtLcXpsf2UMU_WlJbJCc6n131Omn3Bw,98457
65
65
  agno/db/mongo/schemas.py,sha256=Q3JrMZ3zCKZcHilh5CoQePI5d5dRjHAtjs5QuWrxiWc,3098
66
66
  agno/db/mongo/utils.py,sha256=1KrbF1PR_707e9SqXZcquaw_N7mRYm9HjJnvYwBjgG8,9921
67
- agno/db/mysql/__init__.py,sha256=ohBMZ1E6ctioEF0XX5PjC4LtUQrc6lFkjsE4ojyXA8g,63
68
- agno/db/mysql/mysql.py,sha256=io5bOVEXvcM85DJsJhYUf5w4nCeeF6TtU9ypZAM3eiQ,120209
67
+ agno/db/mysql/__init__.py,sha256=LYeR17sORN-i8lFH7Sfk-THwEcQZP79_WHmpaBj9R7Y,130
68
+ agno/db/mysql/async_mysql.py,sha256=sssEoR6--uoiuR17TK3BohtkQPeAEuVpvrdvHrJiJDw,122970
69
+ agno/db/mysql/mysql.py,sha256=W5sNNKZfS5ZoC35D7wmcE8RmC_8TlPjrskCwZ7-kj90,120784
69
70
  agno/db/mysql/schemas.py,sha256=_4p2IWt0zVq-fHuxFhEpWLWxlp3QPKk8xtNMiB1TNOY,9067
70
- agno/db/mysql/utils.py,sha256=PdqN-SxM-ox8HU9CZyxzvs2D1FE2vdZFVCyFgFcQsyU,12366
71
+ agno/db/mysql/utils.py,sha256=VuITsLMo6EmdZWBdssPYMkpWXNTL6xbvNXyaosdR2m0,17251
71
72
  agno/db/postgres/__init__.py,sha256=Ojk00nTCzQFiH2ViD7KIBjgpkTKLRNPCwWnuXMKtNXY,154
72
- agno/db/postgres/async_postgres.py,sha256=pZAVNSk41_nD5B4DtUJ1jDX1l2ZDe-tAdkhGR-ru5pQ,106024
73
- agno/db/postgres/postgres.py,sha256=rbkI4YJQYHqryMrpZOLtP07i8izbcschg7XQZlVI160,116664
73
+ agno/db/postgres/async_postgres.py,sha256=ryPZ5XQoGvLzXFwmU_OYjeIpIx5nqDVe62V19yL3O5Y,106458
74
+ agno/db/postgres/postgres.py,sha256=09Fmq2jUaRAs92kU8OZZFI34SHEeGjs98Azao-cR0I8,117002
74
75
  agno/db/postgres/schemas.py,sha256=G0BRG9GcUcO43-TU52nKSEog8v3tdJNwIhEjts9dCns,8405
75
76
  agno/db/postgres/utils.py,sha256=UE3UQZ-h7fADAKBsX4BWcDka54YNROEpBrlfTmDvpqc,15471
76
77
  agno/db/redis/__init__.py,sha256=rZWeZ4CpVeKP-enVQ-SRoJ777i0rdGNgoNDRS9gsfAc,63
@@ -79,16 +80,16 @@ agno/db/redis/schemas.py,sha256=90rDTGUyN1kYZ2KgeFjyOu1SwqYoTc1ErePxGqFlbj0,5217
79
80
  agno/db/redis/utils.py,sha256=vQpLI-V442B6m0q_l8IVEJctLD4P-kawbCm5A_Fnotg,11326
80
81
  agno/db/schemas/__init__.py,sha256=g72Zr5_nm00yXHStv4pf9PG9bGLKXEK7Av6YQtrDbCQ,147
81
82
  agno/db/schemas/culture.py,sha256=w4azKAVLf5X4xyRUFXMIEq0CA0pnyeN03W3eMpqScxo,4342
82
- agno/db/schemas/evals.py,sha256=T1zIiwrN5fxZVD2em85wQ9CV-HSVZvNF4D4v9_w30VA,786
83
+ agno/db/schemas/evals.py,sha256=dCoA-bQRjKR2cZbbLmjLFWMZ1HEcfxcEfgDrO3K59Sc,824
83
84
  agno/db/schemas/knowledge.py,sha256=qVL6jEdaUG92WJw70-FrA7atetPqrpZnLYkYZDuiYho,1227
84
85
  agno/db/schemas/memory.py,sha256=dA7It1cN60dId-GpowmKTORy4Q6r9L49ZpGnnZkXmds,2126
85
86
  agno/db/schemas/metrics.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
87
  agno/db/singlestore/__init__.py,sha256=dufbaod8ZZIeZIVi0hYJQ8Eu2DfIfWdIy00cpqAsx9U,87
87
88
  agno/db/singlestore/schemas.py,sha256=gnCpoRAztbPiZOCfx9MGBx1sySijwogajSjxIeGpsaA,8923
88
- agno/db/singlestore/singlestore.py,sha256=mShU-mGdOamf82VihF96e1tVjzSNol8Zs94f0S--HLs,118169
89
+ agno/db/singlestore/singlestore.py,sha256=PZwgOGI6z_ZOxr2zJh02i7SaocgxyVTO0wTz8_UCh7A,118487
89
90
  agno/db/singlestore/utils.py,sha256=w2FVFIBpFJK6nKJVt1sgv9N-esmfpGY_8ViFRI69I2I,13677
90
91
  agno/db/sqlite/__init__.py,sha256=09V3i4y0-tBjt60--57ivZ__SaaS67GCsDT4Apzv-5Y,138
91
- agno/db/sqlite/async_sqlite.py,sha256=62P-HurucmK3pk5aM8vjqHbHuuor5pDSuJW-vCLyE74,121942
92
+ agno/db/sqlite/async_sqlite.py,sha256=s0bHOV2a9kXH584EMvqDFIfTGSVnZErb5UxrKmS9gng,122006
92
93
  agno/db/sqlite/schemas.py,sha256=1lrIFWEhXYZJIlQYEnOl3XLp3UfsE5ILj2HUPmOf3cg,8265
93
94
  agno/db/sqlite/sqlite.py,sha256=XjRJAmClEzYS6itHuPRD6RB9-iTtHgDkBmNLKy2vJOM,119118
94
95
  agno/db/sqlite/utils.py,sha256=sgp-KR7A5naTqTORHYHyP_21hG9LffOzCgqbx5S8RfE,15171
@@ -98,11 +99,13 @@ agno/db/surrealdb/models.py,sha256=IUIpdd50MxznOB-hMstEcEHHVlWhll2FNQqVhM-9zIU,1
98
99
  agno/db/surrealdb/queries.py,sha256=s__yJSFIx387IEflcDdti7T5j6H9NX_-zIj13F9CN9s,2051
99
100
  agno/db/surrealdb/surrealdb.py,sha256=6ldAHl-FFlL-wOJMcaoPqM1VCfg65hT8cJftiT0nEmc,75011
100
101
  agno/db/surrealdb/utils.py,sha256=PcZo_cTy-jI59I-XhzAomRLdV9-m0irtO4C-AYGSghs,5405
101
- agno/eval/__init__.py,sha256=vCYcIbfOkT2lL8vZJ9zsea6j3byp5A-mxEb_45VaD8I,449
102
+ agno/eval/__init__.py,sha256=EvakrDxJkFkdMpiIvyFpjk2tY4PFtvVL1qrZ5aN99ZM,696
102
103
  agno/eval/accuracy.py,sha256=x6axWHcBRXazuwKFKcCFVFMYgLbJcgTLAxv6WoiPv3w,33551
104
+ agno/eval/agent_as_judge.py,sha256=o91p3yWrIQACDJbpLhbjm6joGKZgQv1nDJw_6XadtWQ,31901
105
+ agno/eval/base.py,sha256=esF8GyeuA9Gk0GM2MQXzPAEVwX8j5HROUp0_A-3bJ6Q,861
103
106
  agno/eval/performance.py,sha256=9FLilFKrq_auCboE_xBG42V-_IPPpm8zEvqswZ83Pm0,30764
104
107
  agno/eval/reliability.py,sha256=2PAIO8g-9ukqMg_iazorFY1uxzu9gk6eFPBPFE3NC4A,12873
105
- agno/eval/utils.py,sha256=uu7ssj9kjO02m0R61ty3Zqwz4JXHt4tOPySPBhnMqjM,3869
108
+ agno/eval/utils.py,sha256=1RfsqSkd9kZQIEsHwK2XNJ8JGny2AvxT4b2iwvJb724,3951
106
109
  agno/guardrails/__init__.py,sha256=fbKru05VuZN0Am_T_AB7YyEk-7EEwgI_obTXxQjFLr0,343
107
110
  agno/guardrails/base.py,sha256=Izpf0R684BR_9Y8zJa3KoGLQ5naB96wrzlTxjN6ILvc,555
108
111
  agno/guardrails/openai.py,sha256=MjNqIXL5UkPkEMX2bW7FdpfkQm7QlrXdh-fvGImT_P0,5860
@@ -115,7 +118,7 @@ agno/integrations/discord/__init__.py,sha256=MS08QSnegGgpDZd9LyLjK4pWIk9dXlbzgD7
115
118
  agno/integrations/discord/client.py,sha256=Yz4yWYv2-6MYM9cS5yrHHLEQx32hDY0o2lhP5V4SZsg,8387
116
119
  agno/knowledge/__init__.py,sha256=PJCt-AGKGFztzR--Ok2TNKW5QEqllZzqiI_7f8-1u80,79
117
120
  agno/knowledge/content.py,sha256=q2bjcjDhfge_UrQAcygrv5R9ZTk7vozzKnQpatDQWRo,2295
118
- agno/knowledge/knowledge.py,sha256=CJG5RiXbnA_iFcP31UU6LqUMJluPqpsYOLJuI35mMU4,80377
121
+ agno/knowledge/knowledge.py,sha256=BHZ5PTKQSgLpmvclXm2x-9X6VZwTDq984vnJb7ABNzk,120579
119
122
  agno/knowledge/types.py,sha256=4NnkL_h2W-7GQnHW-yIqMNPUCWLzo5qBXF99gfsMe08,773
120
123
  agno/knowledge/utils.py,sha256=2dJE5HclZbM76TjimcHHFAz2VGmgs62DITE23DRPQBw,7302
121
124
  agno/knowledge/chunking/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -143,7 +146,7 @@ agno/knowledge/embedder/langdb.py,sha256=_vbE1Jbj16WGP4aEkh54D7ESTu0LlI1_lp5WiXP
143
146
  agno/knowledge/embedder/mistral.py,sha256=AMc3VBpQCKFxetx2gRd9c6iRvR4-bSEWJ1Q4JPwQg28,8608
144
147
  agno/knowledge/embedder/nebius.py,sha256=Bp7DOyF22VxTZ2Nw6At4ywz7tzMYiE-NNGGc8Un3vtA,369
145
148
  agno/knowledge/embedder/ollama.py,sha256=faLkOvPt2dWs8h87anAgeeG3LJpMH4jVMWP7_3f7JHs,6313
146
- agno/knowledge/embedder/openai.py,sha256=oUEyqIyREIPYRCtQBjAn-aIjxI7DQkMZQmXOt0OkLbo,7331
149
+ agno/knowledge/embedder/openai.py,sha256=dX38T6vNUPIQ0piT-kqBStuCR26kpERiBhZeOHTeWXU,7355
147
150
  agno/knowledge/embedder/sentence_transformer.py,sha256=_d4XgV07bj1hkKnuzZGvP--v_-9K2e837PivJlmEoS8,2467
148
151
  agno/knowledge/embedder/together.py,sha256=Pt524Lh6YRDKfD8rfmLu0Qlw4dDh4vLz7KEMIvIULBk,387
149
152
  agno/knowledge/embedder/vllm.py,sha256=whtZs4OGzE9aXeK-L1UmwwnpgAgxFlxAfiHREroj8yA,10952
@@ -181,9 +184,9 @@ agno/memory/strategies/base.py,sha256=13xCiBPtFUrpDaWbiz8zmNGjopT4VSIkcHVxfnvJ4W
181
184
  agno/memory/strategies/summarize.py,sha256=4M9zWTsooC3EtHpZoC7Z-yFaQgQoebRMNfZPitdsvB0,7307
182
185
  agno/memory/strategies/types.py,sha256=b3N5jOG_dM4AxT7vGagFIc9sqUUjxFtRHSoH4_AhEx8,1225
183
186
  agno/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
184
- agno/models/base.py,sha256=_ldhrYebV77fEzHtnILNILPW2aG4KwMjsT-THnYDwHA,114403
187
+ agno/models/base.py,sha256=OHEu6vLPIu9B0ZAGpmINv0WT9Hy33eN5ZGAqIes6d6c,116109
185
188
  agno/models/defaults.py,sha256=1_fe4-ZbNriE8BgqxVRVi4KGzEYxYKYsz4hn6CZNEEM,40
186
- agno/models/message.py,sha256=5-Nvqd6rXNca37yiVVQgBJY4w_gudVawg-ZQHcUX4SE,19763
189
+ agno/models/message.py,sha256=Clqqw2Rt5B6cZ1gYdeOk_QCF7U74nNoT_tEaQq1NrA4,19876
187
190
  agno/models/metrics.py,sha256=81IILXZwGmOTiWK003bi5mg4bM1f4LCWbwyamjFzp18,4500
188
191
  agno/models/response.py,sha256=uwSw2wKm5U1ZJ1R-8dMWV1I7TgFlKTJGOFq73WExO6s,7110
189
192
  agno/models/utils.py,sha256=jxAIIG2y7KBypwFlc87GzFnvogRpGLfd-wwr6KXZIj8,7269
@@ -193,7 +196,7 @@ agno/models/anthropic/__init__.py,sha256=nbReX3p17JCwfrMDR9hR7-OaEFZm80I7dng93dl
193
196
  agno/models/anthropic/claude.py,sha256=hAYNyh4khE7RmmfT9Kk5F_junL-7Haprv10Pj3x7WG4,47222
194
197
  agno/models/aws/__init__.py,sha256=TbcwQwv9A7KjqBM5RQBR8x46GvyyCxbBCjwkpjfVGKE,352
195
198
  agno/models/aws/bedrock.py,sha256=932hwtPyhAi22If7txRSRNDjDg2j6NU-pKUvqAVlwzE,29755
196
- agno/models/aws/claude.py,sha256=K_M3DPnwUTsXg-ZodnhXQES_gB6jVEHpNc30duVW_vY,9004
199
+ agno/models/aws/claude.py,sha256=d_vwWtZZw3KHOOTLrPV_C7IWozIMxNafAHmxesyg1mk,9097
197
200
  agno/models/azure/__init__.py,sha256=EoFdJHjayvmv_VOmaW9cJguwA1K5OFS_nFeazyn0B2w,605
198
201
  agno/models/azure/ai_foundry.py,sha256=VMIci3geZ5KGq-ua7k0eHH33gBFOWbJWamEsxtmiaqg,19915
199
202
  agno/models/azure/openai_chat.py,sha256=knuJZMX7BMe15S1Dw6NBPEZy43avvtruy7jX1Q7qPX8,5734
@@ -209,11 +212,12 @@ agno/models/dashscope/dashscope.py,sha256=2S8RHVGMbsVxeTtswJFIYVnlV1R0TM0pNAJWH4
209
212
  agno/models/deepinfra/__init__.py,sha256=24gMCeFHNbHw6l5gHZ1GwVg02546E9F_0yIZVSK15C8,86
210
213
  agno/models/deepinfra/deepinfra.py,sha256=dOBKHaGQ-L6MiZaIwG_f0IeBYCUNuAw1Litq6xti8rU,1621
211
214
  agno/models/deepseek/__init__.py,sha256=Q73VJ6rA0LqQbC0AWO6o5PWwr-Fdez7Imdar7X07LyU,82
212
- agno/models/deepseek/deepseek.py,sha256=9FvABIrOgemv1g5_Wcmys2RywnPqUL3_aolFV-N1hv4,2161
215
+ agno/models/deepseek/deepseek.py,sha256=vIxeA8ou-1_hlj2adF4VxbHhMKlMjcb6QUGVk_SBkd8,5192
213
216
  agno/models/fireworks/__init__.py,sha256=qIDjKUnwmrnwfa9B2Y3ybRyuUsF7Pzw6_bVq4N6M0Cg,86
214
217
  agno/models/fireworks/fireworks.py,sha256=0pCtb8UmPAJZTKpwFXKO-HLNZ-qK2zu3P8P5qxySRF8,1648
215
218
  agno/models/google/__init__.py,sha256=bEOSroFJ4__38XaCgBUWiOe_Qga66ZRm_gis__yIMmc,74
216
- agno/models/google/gemini.py,sha256=-ecBwWvQcr5X2pZeRz0z0kMzb31VH_RMvm3QwMh-Tys,72276
219
+ agno/models/google/gemini.py,sha256=etret7ai12l9FKLEvHrlWX3Shzwa02cjtjmwZazbN2s,75009
220
+ agno/models/google/utils.py,sha256=6X5yFZ8q9OL8FRnI-1Fa4iHHCx7PENFQ4uIBX34FilY,721
217
221
  agno/models/groq/__init__.py,sha256=gODf5IA4yJKlwTEYsUywmA-dsiQVyL2_yWMc8VncdVU,66
218
222
  agno/models/groq/groq.py,sha256=1xBkn8OmXFFXMcrhkxodsurgOuk1u_GVwq8GOHDSPTU,24185
219
223
  agno/models/huggingface/__init__.py,sha256=VgdYkgSHqsFLhvJ9lSUCyEZfest8hbCAUpWU6WCk-_c,94
@@ -245,7 +249,7 @@ agno/models/nvidia/nvidia.py,sha256=Q81Ey-IJFefOmlrjbBgwNXZ2ARey-j6pXPJHItaE8uY,
245
249
  agno/models/ollama/__init__.py,sha256=TIhwxG7ek3eyfoKTLoZQXwdgzcIngYKjbjSlkf2gkWE,72
246
250
  agno/models/ollama/chat.py,sha256=Szc8rEWRvQ2CW50V5xAuccX4Ozc1BAV9wUPbFJhY_J8,16862
247
251
  agno/models/openai/__init__.py,sha256=OssVgQRpsriU6aJZ3lIp_jFuqvX6y78L4Fd3uTlmI3E,225
248
- agno/models/openai/chat.py,sha256=KZupbtQxrNiHH9m-y6hrldLq0dGe0XYjvShJQsz-Kjw,40096
252
+ agno/models/openai/chat.py,sha256=Ir0KwjxBlw_Y2qEjBom_zh8s3QMjL6ccYxDqAFegWAM,40472
249
253
  agno/models/openai/like.py,sha256=wmw9PfAVqluBs4MMY73dgjelKn1yl5JDKyCRvaNFjFw,745
250
254
  agno/models/openai/responses.py,sha256=SahBoPgh8KFhRIE1QymhNhQoydFHFEmpBWxmFuixT88,46702
251
255
  agno/models/openrouter/__init__.py,sha256=ZpZhNyy_EGSXp58uC9e2iyjnxBctql7GaY8rUG-599I,90
@@ -271,23 +275,23 @@ agno/models/vllm/vllm.py,sha256=qaWgYcmegJZL52ZjmuIoryBpZ9LpOvYHFY-AYxVirA4,2806
271
275
  agno/models/xai/__init__.py,sha256=ukcCxnCHxTtkJNA2bAMTX4MhCv1wJcbiq8ZIfYczIxs,55
272
276
  agno/models/xai/xai.py,sha256=i7QoRiVdmoQ1E8Zw_e60qQgF85geZXWRPtEKioIInSU,4796
273
277
  agno/os/__init__.py,sha256=h8oQu7vhD5RZf09jkyM_Kt1Kdq_d5kFB9gJju8QPwcY,55
274
- agno/os/app.py,sha256=1L4ruFJg2bAAMby1c5HmLtvem990hqhEzaUM4OIGDyw,38398
278
+ agno/os/app.py,sha256=fZtYRcADIavQl_08UEF_TkptWT5_a-6MZ8uqzU5HWjY,37492
275
279
  agno/os/auth.py,sha256=FyBtAKWtg-qSunCas5m5pK1dVEmikOSZvcCp5r25tTA,1844
276
280
  agno/os/config.py,sha256=oAqtvrNl445zGJmhz6BSOQE6HM_uvKk-K4ms6-my6nk,3285
277
281
  agno/os/mcp.py,sha256=LrCZ6xQ6RAJfnxHYGgHQStanWN4u2bjzcxHjD_cZxBk,10362
278
- agno/os/router.py,sha256=_SLNxtKZnlhvd-Sn7aQv12ZtKVXLKI0BgOMyFLNYI70,77680
279
- agno/os/schema.py,sha256=V4vMkWyetUrd2Du8gMeQP_Q2dVbfYgGDfzaBPqB0DQA,54441
282
+ agno/os/router.py,sha256=4-DpwJ-MD6whw57qCHWWma_1t0nb09KBDzxiMQmjHnk,10442
283
+ agno/os/schema.py,sha256=qLkiCbr6IWP6xUGa905CU1dzb5YV5dpZ4qbL1mkVP3g,29376
280
284
  agno/os/settings.py,sha256=Cn5_8lZI8Vx1UaUYqs9h6Qp4IMDFn4f3c35uppiaMy4,1343
281
- agno/os/utils.py,sha256=Il5ci2EDG0wZAgTnGmG64t050eBP7ghqeuKYcRI4ve8,30146
285
+ agno/os/utils.py,sha256=PDQgDkOKXx3uLQIXzD73dzZv8g40HcfweanjbOkRIEk,35931
282
286
  agno/os/interfaces/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
283
287
  agno/os/interfaces/base.py,sha256=vXkr1tRjWHTcmBlQFzvQjqURLhObmFtUAx82uij_j48,542
284
288
  agno/os/interfaces/a2a/__init__.py,sha256=Fs7--dx9drvtVS9QjsCCm0P7c-hJ7TzU8gNwKTQsZDA,62
285
289
  agno/os/interfaces/a2a/a2a.py,sha256=UiTX-GOuXxp1CQzRgtmgSSYNn2iFC_vKYnC37OidygM,1337
286
- agno/os/interfaces/a2a/router.py,sha256=OpNCHhYoCUyfcuRtiOdvUrUZnxfFB1jhMWraLA85XMg,10985
290
+ agno/os/interfaces/a2a/router.py,sha256=1mc5heOszkvtncHMpfDsN0pBNsH1naReUoEGqJlf_DQ,10956
287
291
  agno/os/interfaces/a2a/utils.py,sha256=J_m_l3noqfjjRRQ-kQQMAab1CnvDPh-M1regJ9_o5Yg,39286
288
292
  agno/os/interfaces/agui/__init__.py,sha256=1zrGICk4roXUINwSFZfqH6sBsbHmD5KjGYVJMGg4fKQ,66
289
293
  agno/os/interfaces/agui/agui.py,sha256=PKGoDDbtQFmEC0zRwZmsjS_5t9bJWJ-ZGwxEQsu9P-U,1415
290
- agno/os/interfaces/agui/router.py,sha256=U2w26v2oOCCOl5t5XduQChO3_eJBNH4Mk9BH77KKJag,5257
294
+ agno/os/interfaces/agui/router.py,sha256=uIbH-OYjpDkXFbKBz4pucLX4n1qIYvUIWVgs8aPIAnI,5311
291
295
  agno/os/interfaces/agui/utils.py,sha256=veRYnk8EVSuF2owJjNFUhQRsyqbxIlFQnAqjB0KY0mU,23645
292
296
  agno/os/interfaces/slack/__init__.py,sha256=F095kOcgiyk_KzIozNNieKwpVc_NR8HYpuO4bKiCNN0,70
293
297
  agno/os/interfaces/slack/router.py,sha256=dgxKk4ghA03ZS1xuPhXAlUD_wZOyx0g2TJ7pVN6xbG0,5931
@@ -302,12 +306,15 @@ agno/os/middleware/jwt.py,sha256=O3O_h7WeO7xN6uj4NiBMgz9tTvJpfX2c-f4w4-ykBNA,957
302
306
  agno/os/routers/__init__.py,sha256=du4LO9aZwiY1t59VcV9M6wiAfftFFlUZc-YXsTGy9LI,97
303
307
  agno/os/routers/health.py,sha256=AO3ec6Xi1wXOwUUFJhEcM45488qu6aZRJTwF2GLz6Ak,992
304
308
  agno/os/routers/home.py,sha256=xe8DYJkRgad55qiza0lHt8pUIV5PLSyu2MkybjuPDDE,1708
309
+ agno/os/routers/agents/__init__.py,sha256=nr1H0Mp7NlWPnvu0ccaHVSPHz-lXg43TRMApkUIEXNc,91
310
+ agno/os/routers/agents/router.py,sha256=sCyxvU11q3pfcxBygLcRqC3ga5Ts8d4l1Ro8zCqJ5fM,22556
311
+ agno/os/routers/agents/schema.py,sha256=Totxr4k-boOBocbM36gOnJqWlYGAdo_CC8bApjbmj9k,11565
305
312
  agno/os/routers/evals/__init__.py,sha256=3s0M-Ftg5A3rFyRfTATs-0aNA6wcbj_5tCvtwH9gORQ,87
306
- agno/os/routers/evals/evals.py,sha256=S-ybLJtE3oLJrYiHGOAxr2FCYMYd1634GhV_M7SxHlA,18923
307
- agno/os/routers/evals/schemas.py,sha256=G6XvlEcl0FtgdsmHUjrEWxwxwGMhuYR2HsjfFT3QXUM,6523
308
- agno/os/routers/evals/utils.py,sha256=TtHodLRbYvOxAPUxBHNm10AavctELUbdq5qDg8ZQbno,5955
313
+ agno/os/routers/evals/evals.py,sha256=-vqHWZAxaPIyCPLcStEwVA75N6NguWIuh_3rZ525-d4,19683
314
+ agno/os/routers/evals/schemas.py,sha256=xkbOSOX1scmvN782CVqv_MrsiXlxAqXA_esjmy5KEvY,7775
315
+ agno/os/routers/evals/utils.py,sha256=oSqn3DATE4ImpBNuEh1hAwjAY5MF4S4BZF6mvhGJ_M4,9102
309
316
  agno/os/routers/knowledge/__init__.py,sha256=ZSqMQ8X7C_oYn8xt7NaYlriarWUpHgaWDyHXOWooMaU,105
310
- agno/os/routers/knowledge/knowledge.py,sha256=6rR1CiHUDmg7kJy7g218IGaFEl0YAMbCciiFNJeEBMo,45320
317
+ agno/os/routers/knowledge/knowledge.py,sha256=3GVIWlp7ArvunN6y4V8pD_xjWwx92VWoYGgRmkuRwmE,45326
311
318
  agno/os/routers/knowledge/schemas.py,sha256=GUr5RsRbI7K3qrrOlGVfW0Kf7XO6HjMviMW6nEl6qf8,8847
312
319
  agno/os/routers/memory/__init__.py,sha256=9hrYFc1dkbsLBqKfqyfioQeLX9TTbLrJx6lWDKNNWbc,93
313
320
  agno/os/routers/memory/memory.py,sha256=N-T2Z7OI3-sCsoqhYNmY3D0dehrclWSk-FncogwVn-I,28331
@@ -317,9 +324,15 @@ agno/os/routers/metrics/metrics.py,sha256=KaH49hSsAYjJZFdNI-Zg46RYl_QajYIc0YGpKd
317
324
  agno/os/routers/metrics/schemas.py,sha256=1YsD01b1-mtJlh5HhW9zvPYok9Q2nPpDhN-gJ6B88sU,2674
318
325
  agno/os/routers/session/__init__.py,sha256=du4LO9aZwiY1t59VcV9M6wiAfftFFlUZc-YXsTGy9LI,97
319
326
  agno/os/routers/session/session.py,sha256=7EVozQqRziLkGmIrgzfOQOSHtsewEOO7CACzfz_sVD0,52306
327
+ agno/os/routers/teams/__init__.py,sha256=j2aPA09mwwn_vOG8p2uX0sDR-qNbLLRlPlprqM789NY,88
328
+ agno/os/routers/teams/router.py,sha256=T4A0BVe0hZRcDPDytqNiXVBw1ETqVyvTzJB24bVZcWk,22252
329
+ agno/os/routers/teams/schema.py,sha256=pV8yRpNUP1FGLuUmkqgIO4b_Dnbu2QNK9l_j7fa9ZZA,11153
320
330
  agno/os/routers/traces/__init__.py,sha256=v-QMRjlrw1iLkh2UawukKWfZ2R66L-OQmAGR-kqFo8I,93
321
331
  agno/os/routers/traces/schemas.py,sha256=_O7tfF3aAPR-R1Q9noakWxjbI20UxkemVh7P2Dkw71I,20034
322
332
  agno/os/routers/traces/traces.py,sha256=td7I8LADSC963xPBIMXbN42OR-kkXHj1EKHVPqc34XU,22587
333
+ agno/os/routers/workflows/__init__.py,sha256=1VnCzNTwxT9Z9EHskfqtrl1zhXGPPKuR4TktYdKd1RI,146
334
+ agno/os/routers/workflows/router.py,sha256=lupJg0gmUigJArIGlwBu9IWCu6HS6NdLJVgp98pH1l4,21476
335
+ agno/os/routers/workflows/schema.py,sha256=CxMCyX0r7XnX3eLKezQrT5gicah9G1sej4-4pwz80-w,3426
323
336
  agno/reasoning/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
324
337
  agno/reasoning/anthropic.py,sha256=RRGINflEXuY5kkUbC8_1ztTVY708YaUm3dEqSW7twcI,3130
325
338
  agno/reasoning/azure_ai_foundry.py,sha256=VL7DmFpuYMf_gLFAZ9kUCS7Zb3pNhDaEingRZcyUdQY,2594
@@ -346,7 +359,7 @@ agno/session/summary.py,sha256=9JnDyQyggckd3zx6L8Q5f-lglZvrFQxvPjGU8gLCgR4,10292
346
359
  agno/session/team.py,sha256=-MkB6qQCrnXLKko8L5s9fJOWPsjeK5Gx0SXEPoOwSFQ,13437
347
360
  agno/session/workflow.py,sha256=nPHnh1N0SJby5JRjysCUI-kTDCelQMFfqosEnnLzPIg,19690
348
361
  agno/team/__init__.py,sha256=toHidBOo5M3n_TIVtIKHgcDbLL9HR-_U-YQYuIt_XtE,847
349
- agno/team/team.py,sha256=TOc7jPk0sTVqV-3nm6By9QlX_632fsJtn-FjIvAC2Co,434423
362
+ agno/team/team.py,sha256=mh638kzxrUmCUY3UtBqy_N06g6EqfOw1m6Sv2c3Ju8E,436505
350
363
  agno/tools/__init__.py,sha256=jNll2sELhPPbqm5nPeT4_uyzRO2_KRTW-8Or60kioS0,210
351
364
  agno/tools/agentql.py,sha256=S82Z9aTNr-E5wnA4fbFs76COljJtiQIjf2grjz3CkHU,4104
352
365
  agno/tools/airflow.py,sha256=uf2rOzZpSU64l_qRJ5Raku-R3Gky-uewmYkh6W0-oxg,2610
@@ -383,9 +396,9 @@ agno/tools/evm.py,sha256=lX8KhpfHBcYANuNLmNI7EmwrnkE1anXjWGsGuM3_hRM,5371
383
396
  agno/tools/exa.py,sha256=YyDIxqmMCTh1Z1hv4fmyCsnnIOlLTTerxcC1ToNsLww,16998
384
397
  agno/tools/fal.py,sha256=49rgpgfpk-aKUs18x8vDH1Wa4jNOPKN3iczfqWMo8xw,4633
385
398
  agno/tools/file.py,sha256=S_SFXzW1uzm29ecL0FH1QoWQKq3mD9JthALVSq549fg,10244
386
- agno/tools/file_generation.py,sha256=81c7AWQ1zLYAum7MbbsGlXYaVWjwW4i3H0L5R2Wj4HA,13868
399
+ agno/tools/file_generation.py,sha256=OxJNeEGpqf_SxemvET54Gi_j6uT1xMWFbjbQOnTSdoY,14006
387
400
  agno/tools/financial_datasets.py,sha256=NiXwyiYIFCawI8rR7JLJNIfwoQlranUeCcABHKhLHfw,9190
388
- agno/tools/firecrawl.py,sha256=sMV6XRaSIyTSkTJbtMdIQPTsN11ozJ78YDDi04kBvQE,5341
401
+ agno/tools/firecrawl.py,sha256=axrrM7bvXBRkX8cBUtfrJ_G0YIeSQWaCTDAgRuhFsNk,5623
389
402
  agno/tools/function.py,sha256=0Dgr3xK3IypH_JfybtUQ41bhE4juoEP-AlDl-Fpc8UM,51532
390
403
  agno/tools/giphy.py,sha256=_wOCWVnMdFByE9Yoz4Pf2MoKxSjkUTiPJZ928_BNe2M,3070
391
404
  agno/tools/github.py,sha256=wct6P00YzF3zgWoV2c5aHeXX_2dgb9LqRwJAboi6QXw,70286
@@ -492,14 +505,14 @@ agno/utils/events.py,sha256=_E4AhD89hN1XGRLAAns4MOW_nklIgDUDREWK59rtJ3M,28320
492
505
  agno/utils/format_str.py,sha256=Zp9dDGMABUJzulp2bs41JiNv0MqmMX0qPToL7l_Ab1c,376
493
506
  agno/utils/functions.py,sha256=eHvGqO2uO63TR-QmmhZy2DEnC0xkAfhBG26z77T7jCo,6306
494
507
  agno/utils/gemini.py,sha256=-RrZRk4fKRsNCsFVKqXc1JzZaLU3_vIlzGS-YWbz4Bs,16055
495
- agno/utils/hooks.py,sha256=Egmneouk9vM242SeWtP1otovjdwDUYwkVznemT6EuA0,3930
496
- agno/utils/http.py,sha256=ptH4YjTKk6Q46-tdEOc-2m97eDwA7gb-RSL_j_ChLtg,6911
508
+ agno/utils/hooks.py,sha256=9z1Jj3cl81Kp7uRZ-3_xoZW18iDAMhdDGohk-vwXYYI,6280
509
+ agno/utils/http.py,sha256=jScvVAnlVEmhEfrF3YGO4y6LcL_xY3VZAqyBZfqgcds,6795
497
510
  agno/utils/json_schema.py,sha256=VPbK-Gdo0qOQKco7MZnv1d2Fe-9mt1PRBO1SNFIvBHY,8555
498
511
  agno/utils/knowledge.py,sha256=QPLcBfJ22XNG2w_qUYRaD5PiDQEgf-ITYb9n85m27pA,1502
499
512
  agno/utils/location.py,sha256=VhXIwSWdr7L4DEJoUeVI92Y-rJ32NUcYzFRnzLgX-es,658
500
513
  agno/utils/log.py,sha256=NJ56KY2rYn0wfiD1y_VTCz8KrvnrkcXi7kQoKZoULV8,7792
501
514
  agno/utils/mcp.py,sha256=j3S6lYeuWiLLhPYDxPsK_ZwSJ2TaEMboyXckbqlUdeM,7615
502
- agno/utils/media.py,sha256=Mkt-DxFmAnypeZOU84fMLmGSd2aXbw7z7OgF0pKA4yc,12456
515
+ agno/utils/media.py,sha256=ach40vf1yeF4QPsAcXKtPtXYMaXo7e4jer50OIPC5ZY,13041
503
516
  agno/utils/merge_dict.py,sha256=K_dZdwi46gjDFn7wgqZ9_fycRIZGJCnUxFVKCrQ6PYc,1490
504
517
  agno/utils/message.py,sha256=jIcSe79WmfpbbYowy0C57ZzRBd9ENj-hyj3TQw_9vsg,4684
505
518
  agno/utils/openai.py,sha256=quhHsggz0uSZc9Lt-aVsveHSS1LT2r1fMgC0IpG43Tg,10300
@@ -531,8 +544,8 @@ agno/utils/models/openai_responses.py,sha256=63f2UgDFCzrr6xQITrGtn42UUHQBcZFUUFM
531
544
  agno/utils/models/schema_utils.py,sha256=L6TkraMClI471H6xYy7V81lhHR4qQloVKCN0bF4Ajw0,5047
532
545
  agno/utils/models/watsonx.py,sha256=fe6jN0hBvOCQurqjS6_9PIwDHt-4kVod9qW236Zs6DU,1496
533
546
  agno/utils/print_response/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
534
- agno/utils/print_response/agent.py,sha256=N0777Z2Hfq6HaRL1aRwBcZ7MHRc1rnUIRNTsgDHJV4Y,38845
535
- agno/utils/print_response/team.py,sha256=DzqfuEPn_Gv50AqQ3-UhHs-b331S687XTC9xM7iHVgo,83233
547
+ agno/utils/print_response/agent.py,sha256=3QQZGPbnLgPYLDHiBunn1CEuZZYe0zlheGl4QxZLkdE,39089
548
+ agno/utils/print_response/team.py,sha256=4HoNCorLfKFQ6s87ODghLJcLYd-GcMTc5QD4ItpWaiM,83477
536
549
  agno/utils/print_response/workflow.py,sha256=bndej1GUbnirXihDsjewjbc4_McBWsZ3bByMk6gHhIU,78797
537
550
  agno/vectordb/__init__.py,sha256=P0QP9PUC4j2JtWIfYJX7LeC-oiPuh_QsUaOaP1ZY_dI,64
538
551
  agno/vectordb/base.py,sha256=7HeHdhR3hQtlERbCPI0Fc3L_pPKgWs4KAkEstkdNoHw,3812
@@ -563,7 +576,7 @@ agno/vectordb/mongodb/__init__.py,sha256=FTF-0sskOk358593xcFsJc4sDb--SwMHo46KLFu
563
576
  agno/vectordb/mongodb/mongodb.py,sha256=BMXgA9CgvdVN0yqj_Vuc1UL91WTruBoMDFgMgSCDB7M,61094
564
577
  agno/vectordb/pgvector/__init__.py,sha256=Lui0HBzoHPIsKh5QuiT0eyTvYW88nQPfd_723jjHFCk,288
565
578
  agno/vectordb/pgvector/index.py,sha256=qfGgPP33SwZkXLfUcAC_XgQsyZIyggpGS2bfIkjjs-E,495
566
- agno/vectordb/pgvector/pgvector.py,sha256=nmbuvIY_eRXp_qdEpbki90qMYHOOzoFGEHWi6drqrls,61764
579
+ agno/vectordb/pgvector/pgvector.py,sha256=vvzWcpKobeO_WlgBzgeY6iwuiIgPH3jF0LMc3_YnqFI,63844
567
580
  agno/vectordb/pineconedb/__init__.py,sha256=D7iThXtUCxNO0Nyjunv5Z91Jc1vHG1pgAFXthqD1I_w,92
568
581
  agno/vectordb/pineconedb/pineconedb.py,sha256=_1ese9Yg1ZNtgHXkql29cUO2SqmSzvZQhRv4qiodyCI,29522
569
582
  agno/vectordb/qdrant/__init__.py,sha256=x1ReQt79f9aI_T4JUWb36KNFnvdd-kVwZ1sLsU4sW7Q,76
@@ -584,14 +597,14 @@ agno/workflow/__init__.py,sha256=Ze2j811jwnsS8Sjv6u0Ap4l7Pyw_ivRof1uBYNJhb1w,609
584
597
  agno/workflow/agent.py,sha256=fKLB4kop7YYFeM1e-d3IzvVPsVF5cLNX6Z0gPn81ZR4,12170
585
598
  agno/workflow/condition.py,sha256=2zKLgrvwa3Up4aDKWSACOa7vZD0lSLX_lUW-LYJa0Yc,33939
586
599
  agno/workflow/loop.py,sha256=nDBXCRMhXHaRb-jnIbtEgY78h69zCdUrHwiJ6VXl5zo,33986
587
- agno/workflow/parallel.py,sha256=yTtc6dkNmIGU6zOI_7EZ3mATrJZFEArUUcUG47L-DwE,38007
600
+ agno/workflow/parallel.py,sha256=aI4PE3P5QyKZgmv5im04DpvpW1E_Excrc5ykevSvKF8,37987
588
601
  agno/workflow/router.py,sha256=HQDOnErjtiQdY_EskJBV_mZq_k6d1gH6JJPIM2Yfelw,32016
589
- agno/workflow/step.py,sha256=BbzpETSMtlDkUsm47-TwhfGAgRM6TcWnp-orIJgOTQY,74267
602
+ agno/workflow/step.py,sha256=voTmWWihLKDAMeLgYoie96KLCiVpxPFrZoFHEMhA6QM,75046
590
603
  agno/workflow/steps.py,sha256=rbfue2M4qYEkgHueojCY1-cB4i1MFjO-jX6uTxyoKwk,27118
591
- agno/workflow/types.py,sha256=LObJ0VkUtepZ-uewv3j283S4hrCXy0eCplQzIzRG1ic,19175
592
- agno/workflow/workflow.py,sha256=6khBK6tbO9i2aSovduwNoQUfbcyEdoKyF4F86Uyj4gM,193181
593
- agno-2.3.8.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
594
- agno-2.3.8.dist-info/METADATA,sha256=ANDODVqjcZLqQzSxWL-lXsxjWQUUjUl8XThT9VSy4Og,31018
595
- agno-2.3.8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
596
- agno-2.3.8.dist-info/top_level.txt,sha256=MKyeuVesTyOKIXUhc-d_tPa2Hrh0oTA4LM0izowpx70,5
597
- agno-2.3.8.dist-info/RECORD,,
604
+ agno/workflow/types.py,sha256=OJXn4sYQ1VQ1H7UO_BwOO3_6q-OgcDX2XLDw3H4LIx0,20508
605
+ agno/workflow/workflow.py,sha256=ylRulasAlJXDC90BpPaFxXNnlO_xcf5LxAbmcTU-Ltg,193481
606
+ agno-2.3.9.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
607
+ agno-2.3.9.dist-info/METADATA,sha256=tPyi3PJEHog1kC__7A_A4E_bhlnzAKvw7PkXDg5IiN8,31407
608
+ agno-2.3.9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
609
+ agno-2.3.9.dist-info/top_level.txt,sha256=MKyeuVesTyOKIXUhc-d_tPa2Hrh0oTA4LM0izowpx70,5
610
+ agno-2.3.9.dist-info/RECORD,,
File without changes