agno 2.4.6__py3-none-any.whl → 2.4.8__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 (51) hide show
  1. agno/agent/agent.py +5 -1
  2. agno/db/base.py +2 -0
  3. agno/db/postgres/postgres.py +5 -5
  4. agno/db/singlestore/singlestore.py +4 -5
  5. agno/db/sqlite/sqlite.py +4 -4
  6. agno/knowledge/embedder/aws_bedrock.py +325 -106
  7. agno/knowledge/knowledge.py +83 -1853
  8. agno/knowledge/loaders/__init__.py +29 -0
  9. agno/knowledge/loaders/azure_blob.py +423 -0
  10. agno/knowledge/loaders/base.py +187 -0
  11. agno/knowledge/loaders/gcs.py +267 -0
  12. agno/knowledge/loaders/github.py +415 -0
  13. agno/knowledge/loaders/s3.py +281 -0
  14. agno/knowledge/loaders/sharepoint.py +439 -0
  15. agno/knowledge/reader/website_reader.py +2 -2
  16. agno/knowledge/remote_knowledge.py +151 -0
  17. agno/knowledge/reranker/aws_bedrock.py +299 -0
  18. agno/learn/machine.py +5 -6
  19. agno/learn/stores/session_context.py +10 -2
  20. agno/models/azure/openai_chat.py +6 -11
  21. agno/models/neosantara/__init__.py +5 -0
  22. agno/models/neosantara/neosantara.py +42 -0
  23. agno/models/utils.py +5 -0
  24. agno/os/app.py +4 -1
  25. agno/os/interfaces/agui/router.py +1 -1
  26. agno/os/routers/components/components.py +2 -0
  27. agno/os/routers/knowledge/knowledge.py +0 -1
  28. agno/os/routers/registry/registry.py +340 -192
  29. agno/os/routers/workflows/router.py +7 -1
  30. agno/os/schema.py +104 -0
  31. agno/registry/registry.py +4 -0
  32. agno/run/workflow.py +3 -0
  33. agno/session/workflow.py +1 -1
  34. agno/skills/utils.py +100 -2
  35. agno/team/team.py +6 -3
  36. agno/tools/mcp/mcp.py +26 -1
  37. agno/vectordb/lancedb/lance_db.py +22 -7
  38. agno/workflow/__init__.py +4 -0
  39. agno/workflow/cel.py +299 -0
  40. agno/workflow/condition.py +280 -58
  41. agno/workflow/loop.py +177 -46
  42. agno/workflow/parallel.py +75 -4
  43. agno/workflow/router.py +260 -44
  44. agno/workflow/step.py +14 -7
  45. agno/workflow/steps.py +43 -0
  46. agno/workflow/workflow.py +104 -46
  47. {agno-2.4.6.dist-info → agno-2.4.8.dist-info}/METADATA +25 -37
  48. {agno-2.4.6.dist-info → agno-2.4.8.dist-info}/RECORD +51 -39
  49. {agno-2.4.6.dist-info → agno-2.4.8.dist-info}/WHEEL +0 -0
  50. {agno-2.4.6.dist-info → agno-2.4.8.dist-info}/licenses/LICENSE +0 -0
  51. {agno-2.4.6.dist-info → agno-2.4.8.dist-info}/top_level.txt +0 -0
agno/workflow/workflow.py CHANGED
@@ -106,6 +106,43 @@ STEP_TYPE_MAPPING = {
106
106
  Router: StepType.ROUTER,
107
107
  }
108
108
 
109
+
110
+ def _step_from_dict(
111
+ data: Dict[str, Any],
112
+ registry: Optional["Registry"] = None,
113
+ db: Optional["BaseDb"] = None,
114
+ links: Optional[List[Dict[str, Any]]] = None,
115
+ ) -> Union[Step, Steps, Loop, Parallel, Condition, Router]:
116
+ """
117
+ Deserialize a step from a dictionary based on its type.
118
+
119
+ Args:
120
+ data: Dictionary containing step configuration with a "type" field
121
+ registry: Optional registry for rehydrating non-serializable objects
122
+ db: Optional database for loading agents/teams in steps
123
+ links: Optional links for this step version
124
+
125
+ Returns:
126
+ The appropriate step type instance (Step, Steps, Loop, Parallel, Condition, or Router)
127
+ """
128
+ step_type = data.get("type", "Step")
129
+
130
+ if step_type == "Loop":
131
+ return Loop.from_dict(data, registry=registry, db=db, links=links)
132
+ elif step_type == "Parallel":
133
+ return Parallel.from_dict(data, registry=registry, db=db, links=links)
134
+ elif step_type == "Steps":
135
+ return Steps.from_dict(data, registry=registry, db=db, links=links)
136
+ elif step_type == "Condition":
137
+ return Condition.from_dict(data, registry=registry, db=db, links=links)
138
+ elif step_type == "Router":
139
+ return Router.from_dict(data, registry=registry, db=db, links=links)
140
+ elif step_type == "Step":
141
+ return Step.from_dict(data, registry=registry, db=db, links=links)
142
+ else:
143
+ raise ValueError(f"Unknown step type: {step_type}")
144
+
145
+
109
146
  WorkflowSteps = Union[
110
147
  Callable[
111
148
  ["Workflow", WorkflowExecutionInput],
@@ -597,7 +634,6 @@ class Workflow:
597
634
  config["telemetry"] = self.telemetry
598
635
 
599
636
  # --- Steps ---
600
- # TODO: Implement steps serialization for step types other than Step
601
637
  if self.steps and isinstance(self.steps, list):
602
638
  config["steps"] = [step.to_dict() for step in self.steps if hasattr(step, "to_dict")]
603
639
 
@@ -630,7 +666,7 @@ class Workflow:
630
666
  db_data = config["db"]
631
667
  db_id = db_data.get("id")
632
668
 
633
- # First try to get the db from the registry (preferred - reuses existing connection)
669
+ # Try to get the db from the registry
634
670
  if registry and db_id:
635
671
  registry_db = registry.get_db(db_id)
636
672
  if registry_db is not None:
@@ -655,7 +691,7 @@ class Workflow:
655
691
  # --- Handle steps reconstruction ---
656
692
  steps: Optional[WorkflowSteps] = None
657
693
  if "steps" in config and config["steps"]:
658
- steps = [Step.from_dict(step_data, db=db, links=links, registry=registry) for step_data in config["steps"]]
694
+ steps = [_step_from_dict(step_data, db=db, links=links, registry=registry) for step_data in config["steps"]]
659
695
  del config["steps"]
660
696
 
661
697
  return cls(
@@ -681,7 +717,7 @@ class Workflow:
681
717
  store_events=config.get("store_events", False),
682
718
  store_executor_outputs=config.get("store_executor_outputs", True),
683
719
  # --- Schema settings ---
684
- # input_schema=config.get("input_schema"), # TODO
720
+ input_schema=config.get("input_schema"),
685
721
  # --- Metadata ---
686
722
  metadata=config.get("metadata"),
687
723
  # --- Debug and telemetry settings ---
@@ -723,40 +759,53 @@ class Workflow:
723
759
  saved_versions: Dict[str, int] = {}
724
760
 
725
761
  # Collect all links
726
- all_links = []
727
- steps_config = []
762
+ all_links: List[Dict[str, Any]] = []
763
+
764
+ def _save_step_agents(
765
+ step: Any,
766
+ position: int,
767
+ saved_versions: Dict[str, int],
768
+ all_links: List[Dict[str, Any]],
769
+ ) -> None:
770
+ """Recursively save agents/teams in steps, including nested containers."""
771
+ if isinstance(step, Step):
772
+ # Save agent if present
773
+ if step.agent and isinstance(step.agent, Agent):
774
+ agent_version = step.agent.save(
775
+ db=db_,
776
+ stage=stage,
777
+ label=label,
778
+ notes=notes,
779
+ )
780
+ if step.agent.id is not None and agent_version is not None:
781
+ saved_versions[step.agent.id] = agent_version
782
+
783
+ # Save team if present
784
+ if step.team and isinstance(step.team, Team):
785
+ team_version = step.team.save(db=db_, stage=stage, label=label, notes=notes)
786
+ if step.team.id is not None and team_version is not None:
787
+ saved_versions[step.team.id] = team_version
788
+
789
+ # Add links with position and pinned version
790
+ for link in step.get_links(position=position):
791
+ if link["child_component_id"] in saved_versions:
792
+ link["child_version"] = saved_versions[link["child_component_id"]]
793
+ all_links.append(link)
794
+
795
+ elif isinstance(step, (Parallel, Loop, Steps, Condition)):
796
+ # Recursively process nested steps
797
+ for nested_position, nested_step in enumerate(step.steps):
798
+ _save_step_agents(nested_step, nested_position, saved_versions, all_links)
799
+
800
+ elif isinstance(step, Router):
801
+ # Router uses 'choices' instead of 'steps'
802
+ for nested_position, nested_step in enumerate(step.choices):
803
+ _save_step_agents(nested_step, nested_position, saved_versions, all_links)
728
804
 
729
805
  try:
730
806
  steps_to_save = self.steps if isinstance(self.steps, list) else []
731
807
  for position, step in enumerate(steps_to_save):
732
- # TODO: Support other Step types
733
- if isinstance(step, Step):
734
- # TODO: Allow not saving a new config if the agent/team already has a published config and no changes have been made
735
- # Save agent/team if present and capture version
736
- if step.agent and isinstance(step.agent, Agent):
737
- agent_version = step.agent.save(
738
- db=db_,
739
- stage=stage,
740
- label=label,
741
- notes=notes,
742
- )
743
- if step.agent.id is not None and agent_version is not None:
744
- saved_versions[step.agent.id] = agent_version
745
-
746
- if step.team and isinstance(step.team, Team):
747
- team_version = step.team.save(db=db_, stage=stage, label=label, notes=notes)
748
- if step.team.id is not None and team_version is not None:
749
- saved_versions[step.team.id] = team_version
750
-
751
- # Add step config
752
- steps_config.append(step.to_dict())
753
-
754
- # Add links with position and pinned version
755
- for link in step.get_links(position=position):
756
- # Pin the version if we just saved it
757
- if link["child_component_id"] in saved_versions:
758
- link["child_version"] = saved_versions[link["child_component_id"]]
759
- all_links.append(link)
808
+ _save_step_agents(step, position, saved_versions, all_links)
760
809
 
761
810
  db_.upsert_component(
762
811
  component_id=self.id,
@@ -1346,7 +1395,7 @@ class Workflow:
1346
1395
 
1347
1396
  # ALSO broadcast through websocket manager for reconnected clients
1348
1397
  # This ensures clients who reconnect after workflow started still receive events
1349
- if buffer_run_id:
1398
+ if buffer_run_id and websocket_handler:
1350
1399
  try:
1351
1400
  import asyncio
1352
1401
 
@@ -1392,6 +1441,9 @@ class Workflow:
1392
1441
  event.workflow_id = workflow_run_response.workflow_id
1393
1442
  if hasattr(event, "workflow_run_id"):
1394
1443
  event.workflow_run_id = workflow_run_response.run_id
1444
+ # Set session_id to match workflow's session_id for consistent event tracking
1445
+ if hasattr(event, "session_id") and workflow_run_response.session_id:
1446
+ event.session_id = workflow_run_response.session_id
1395
1447
  if hasattr(event, "step_id") and step_id:
1396
1448
  event.step_id = step_id
1397
1449
  if hasattr(event, "step_name") and step_name is not None:
@@ -5037,17 +5089,23 @@ def get_workflows(
5037
5089
  try:
5038
5090
  components, _ = db.list_components(component_type=ComponentType.WORKFLOW)
5039
5091
  for component in components:
5040
- config = db.get_config(component_id=component["component_id"])
5041
- if config is not None:
5042
- workflow_config = config.get("config")
5043
- if workflow_config is not None:
5044
- component_id = component["component_id"]
5045
- if "id" not in workflow_config:
5046
- workflow_config["id"] = component_id
5047
- workflow = Workflow.from_dict(workflow_config, db=db, registry=registry)
5048
- # Ensure workflow.id is set to the component_id
5049
- workflow.id = component_id
5050
- workflows.append(workflow)
5092
+ try:
5093
+ config = db.get_config(component_id=component["component_id"])
5094
+ if config is not None:
5095
+ workflow_config = config.get("config")
5096
+ if workflow_config is not None:
5097
+ component_id = component["component_id"]
5098
+ if "id" not in workflow_config:
5099
+ workflow_config["id"] = component_id
5100
+ workflow = Workflow.from_dict(workflow_config, db=db, registry=registry)
5101
+ # Ensure workflow.id is set to the component_id
5102
+ workflow.id = component_id
5103
+ workflows.append(workflow)
5104
+ except Exception as e:
5105
+ component_id = component.get("component_id", "unknown")
5106
+ log_error(f"Error loading Workflow {component_id} from database: {e}")
5107
+ # Continue loading other workflows even if this one fails
5108
+ continue
5051
5109
  return workflows
5052
5110
 
5053
5111
  except Exception as e:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agno
3
- Version: 2.4.6
3
+ Version: 2.4.8
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
@@ -107,6 +107,8 @@ Requires-Dist: portkey-ai; extra == "portkey"
107
107
  Provides-Extra: tokenizers
108
108
  Requires-Dist: tiktoken; extra == "tokenizers"
109
109
  Requires-Dist: tokenizers; extra == "tokenizers"
110
+ Provides-Extra: cel
111
+ Requires-Dist: cel-python; extra == "cel"
110
112
  Provides-Extra: agentql
111
113
  Requires-Dist: agentql; extra == "agentql"
112
114
  Provides-Extra: apify
@@ -225,7 +227,7 @@ Requires-Dist: pgvector; extra == "pgvector"
225
227
  Provides-Extra: chromadb
226
228
  Requires-Dist: chromadb; extra == "chromadb"
227
229
  Provides-Extra: lancedb
228
- Requires-Dist: lancedb==0.24.0; extra == "lancedb"
230
+ Requires-Dist: lancedb>=0.26.0; extra == "lancedb"
229
231
  Requires-Dist: tantivy; extra == "lancedb"
230
232
  Provides-Extra: pylance
231
233
  Requires-Dist: pylance; extra == "pylance"
@@ -445,7 +447,7 @@ Dynamic: license-file
445
447
  </div>
446
448
 
447
449
  <p align="center">
448
- Build agents that learn.
450
+ Build multi-agent systems that learn.
449
451
  </p>
450
452
 
451
453
  <div align="center">
@@ -460,15 +462,16 @@ Dynamic: license-file
460
462
 
461
463
  ## What is Agno?
462
464
 
463
- **A Python SDK for building agents that learn and improve with every interaction.**
465
+ **A framework for building multi-agent systems that learn and improve with every interaction.**
464
466
 
465
467
  Most agents are stateless. They reason, respond, forget. Session history helps, but they're exactly as capable on day 1000 as they were on day 1.
466
468
 
467
- Agno agents are different. They remember users across sessions, accumulate knowledge across conversations, and learn from decisions. Insights from one user benefit everyone.
469
+ Agno agents are different. They remember users across sessions, accumulate knowledge across conversations, and learn from decisions. Insights from one user benefit everyone. The system gets smarter over time.
468
470
 
469
471
  Everything runs in your cloud. Your data never leaves your environment.
470
472
 
471
473
  ## Quick Example
474
+
472
475
  ```python
473
476
  from agno.agent import Agent
474
477
  from agno.db.sqlite import SqliteDb
@@ -485,46 +488,31 @@ One line. Your agent now remembers users, accumulates knowledge, and improves ov
485
488
 
486
489
  ## Production Stack
487
490
 
491
+ Agno provides the complete infrastructure for building multi-agent systems that learn:
492
+
488
493
  | Layer | What it does |
489
494
  |-------|--------------|
490
- | **SDK** | Build agents with learning, tools, knowledge, and guardrails |
495
+ | **Framework** | Build agents with learning, tools, knowledge, and guardrails |
491
496
  | **Runtime** | Run in production using [AgentOS](https://docs.agno.com/agent-os/introduction) |
492
497
  | **Control Plane** | Monitor and manage via the [AgentOS UI](https://os.agno.com) |
493
498
 
494
- ## Features
495
-
496
- **Learning**
497
- - User profiles that persist across sessions
498
- - User memories that accumulate over time
499
- - Learned knowledge that transfers across users
500
- - Always or agentic learning modes
499
+ ## Get Started
501
500
 
502
- **Core**
503
- - Model-agnostic: OpenAI, Anthropic, Google, local models
504
- - Type-safe I/O with `input_schema` and `output_schema`
505
- - Async-first, built for long-running tasks
506
- - Natively multimodal (text, images, audio, video, files)
501
+ 1. [Build your first agent](https://docs.agno.com/first-agent)
502
+ 2. [Build your first multi-agent system](https://docs.agno.com/first-multi-agent-system)
503
+ 3. [Deploy to production](https://docs.agno.com/production/overview)
507
504
 
508
- **Knowledge**
509
- - Agentic RAG with 20+ vector stores, hybrid search, reranking
510
- - Persistent storage for session history and state
505
+ More: [Docs](https://docs.agno.com) · [Cookbook](https://github.com/agno-agi/agno/tree/main/cookbook)
511
506
 
512
- **Orchestration**
513
- - Human-in-the-loop (confirmations, approvals, overrides)
514
- - Guardrails for validation and security
515
- - First-class MCP and A2A support
516
- - 100+ built-in toolkits
517
-
518
- **Production**
519
- - Ready-to-use FastAPI runtime
520
- - Integrated control plane UI
521
- - Evals for accuracy, performance, latency
522
-
523
- ## Getting Started
507
+ ## Features
524
508
 
525
- 1. Follow the [quickstart](https://docs.agno.com/get-started/quickstart)
526
- 2. Browse the [cookbook](https://github.com/agno-agi/agno/tree/main/cookbook)
527
- 3. Read the [docs](https://docs.agno.com)
509
+ | Category | What you get |
510
+ |----------|--------------|
511
+ | **Learning** | User profiles that persist across sessions. User memories that accumulate over time. Learned knowledge that transfers across users. Always or agentic learning modes. |
512
+ | **Core** | Model-agnostic: OpenAI, Anthropic, Google, local models. Type-safe I/O with `input_schema` and `output_schema`. Async-first, built for long-running tasks. Natively multimodal (text, images, audio, video, files). |
513
+ | **Knowledge** | Agentic RAG with 20+ vector stores, hybrid search, reranking. Persistent storage for session history and state. |
514
+ | **Orchestration** | Human-in-the-loop (confirmations, approvals, overrides). Guardrails for validation and security. First-class MCP and A2A support. 100+ built-in toolkits. |
515
+ | **Production** | Ready-to-use FastAPI runtime. Integrated control plane UI. Evals for accuracy, performance, latency. |
528
516
 
529
517
  ## IDE Integration
530
518
 
@@ -536,7 +524,7 @@ Also works with VSCode, Windsurf, and similar tools.
536
524
 
537
525
  ## Contributing
538
526
 
539
- See the [contributing guide](https://github.com/agno-agi/agno/blob/v2.0/CONTRIBUTING.md).
527
+ See the [contributing guide](https://github.com/agno-agi/agno/blob/main/CONTRIBUTING.md).
540
528
 
541
529
  ## Telemetry
542
530
 
@@ -6,7 +6,7 @@ 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=YwN1bvBECSRRQ9mOCZ40eCO4WN5xEPEh0jxWyc83vX4,1190
9
- agno/agent/agent.py,sha256=mu6uYbs5G31HFfMEM5qmmD6r7ic5OTRKsiOVgjnYLEg,563740
9
+ agno/agent/agent.py,sha256=_0Bk6NxUkWW6_4Q0CBw5ne2VPRlduZYsSOzl9CDIzhs,563890
10
10
  agno/agent/remote.py,sha256=3PvPEXLH4QAGVsPnoD0qKDv05swRZpB0gw9bQDCJiLw,19667
11
11
  agno/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
12
  agno/api/agent.py,sha256=fKlQ62E_C9Rjd7Zus3Gs3R1RG-IhzFV-ICpkb6SLqYc,932
@@ -41,7 +41,7 @@ agno/compression/manager.py,sha256=batKFOY0z1KLpgM__DODVMiqI-Sa1ixN4GGWfiCn26w,1
41
41
  agno/culture/__init__.py,sha256=nVScbcUeBmkj8l-rJWGOVGytwp5xB6IfUEL_h6atzQw,118
42
42
  agno/culture/manager.py,sha256=sh48GgfkgwQth2vB5ulgrbv2HGAfVidABrwAYEzWGBs,39833
43
43
  agno/db/__init__.py,sha256=bfd_tpKsIKCjZosnFqID26VoWqy88v8gzkf9kLHToY4,625
44
- agno/db/base.py,sha256=MwkIVjTLVsxhq7d9hB5YIAba-qLMk0KAnDDj3ovAa1I,51433
44
+ agno/db/base.py,sha256=6r5Bzn59kLxL-6y-HXIcTHzAhJFZDai3UAse2iGaD-k,51535
45
45
  agno/db/utils.py,sha256=vkzNHmkkFD5fRFyMs0RAYatgjv_3oMoQ9X0Ri6qygbQ,6814
46
46
  agno/db/async_postgres/__init__.py,sha256=ja_thcYP3bP0DD3da6iUVDR_w2-S6B3M-UxBlkRfAvY,76
47
47
  agno/db/dynamo/__init__.py,sha256=fZ7NwKbyhoIu7_4T6hVz44HkIINXMnTfFrDrgB6bpEo,67
@@ -79,7 +79,7 @@ agno/db/mysql/schemas.py,sha256=_Qkx0plM5oPsthnLHpQOoMLcIbjpTKiaLDbxPNKh7ak,9892
79
79
  agno/db/mysql/utils.py,sha256=wo-QamkH6dOBmCv1tsY5yp-0L7ca2CD2Yj9BpqpcLhs,17799
80
80
  agno/db/postgres/__init__.py,sha256=Ojk00nTCzQFiH2ViD7KIBjgpkTKLRNPCwWnuXMKtNXY,154
81
81
  agno/db/postgres/async_postgres.py,sha256=adju222IPFyY_vd5mRc876aP2s08jSpQaebOGDoQWnc,128247
82
- agno/db/postgres/postgres.py,sha256=DwW0OJAIJwGPfId6Kf-U6yPBCB08YB3xkiNO2nQuyYs,185487
82
+ agno/db/postgres/postgres.py,sha256=TPYFpDvLh4wInoTN1mcPpZ7_2fdS7KGMzlP9Tc8LC_8,185515
83
83
  agno/db/postgres/schemas.py,sha256=YrRG0HTSrW5L4lQgLlbpNrwT-rutUq2I4k5MT2PHQX0,12677
84
84
  agno/db/postgres/utils.py,sha256=_nVMb1iHwNf829aWK-jdE5nEpfuDitFdyoBJc-vkfaY,16239
85
85
  agno/db/redis/__init__.py,sha256=rZWeZ4CpVeKP-enVQ-SRoJ777i0rdGNgoNDRS9gsfAc,63
@@ -94,12 +94,12 @@ agno/db/schemas/memory.py,sha256=soOeuQgLYHng0qZxzrRHf1lN574IW55lXGP403Qn1oY,207
94
94
  agno/db/schemas/metrics.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
95
95
  agno/db/singlestore/__init__.py,sha256=dufbaod8ZZIeZIVi0hYJQ8Eu2DfIfWdIy00cpqAsx9U,87
96
96
  agno/db/singlestore/schemas.py,sha256=wPzSrSQ3hVdUw385nmr8UmurHV6vtpAVuhYUlaLh1K4,9750
97
- agno/db/singlestore/singlestore.py,sha256=B7votCquaXWmRofkqK9kr0scVovzdmnUshjYp3VqELw,121986
97
+ agno/db/singlestore/singlestore.py,sha256=zCqDFd-YHPj7TsOUEr5cC7B67DtceKOI06wGjlmpnKo,121934
98
98
  agno/db/singlestore/utils.py,sha256=vJ6QM-wbJBzA8l5ULYbJ5KLB9c3-GZqtb0NWdy5gg2c,14225
99
99
  agno/db/sqlite/__init__.py,sha256=09V3i4y0-tBjt60--57ivZ__SaaS67GCsDT4Apzv-5Y,138
100
100
  agno/db/sqlite/async_sqlite.py,sha256=BzvBibnsK654K48gx-aWzV7FhmYNS324JBUnoldILTk,136969
101
101
  agno/db/sqlite/schemas.py,sha256=uOhtTee4bdmDyl3xsGW8cnVDKB-j0-fZ0vVLikzMY90,12239
102
- agno/db/sqlite/sqlite.py,sha256=0GQR3FS9UlDxFQs1VF_t5OXhw7FBccfL6CO8JZE7CKY,176593
102
+ agno/db/sqlite/sqlite.py,sha256=pwBeJB7ACreSkfJSkQC_9PYRGbIMr7Rz3_0r5y2PLEU,176615
103
103
  agno/db/sqlite/utils.py,sha256=PZp-g4oUf6Iw1kuDAmOpIBtfyg4poKiG_DxXP4EonFI,15721
104
104
  agno/db/surrealdb/__init__.py,sha256=C8qp5-Nx9YnSmgKEtGua-sqG_ntCXONBw1qqnNyKPqI,75
105
105
  agno/db/surrealdb/metrics.py,sha256=oKDRyjRQ6KR3HaO8zDHQLVMG7-0NDkOFOKX5I7mD5FA,10336
@@ -127,8 +127,9 @@ agno/integrations/discord/client.py,sha256=HbXQHHOKKSVFZs0sIJlzoW9bLigbBgOE2kP0I
127
127
  agno/knowledge/__init__.py,sha256=MTLKRRh6eqz-w_gw56rqdwV9FoeE9zjX8xYUCCdYg8A,243
128
128
  agno/knowledge/content.py,sha256=q2bjcjDhfge_UrQAcygrv5R9ZTk7vozzKnQpatDQWRo,2295
129
129
  agno/knowledge/filesystem.py,sha256=zq7xMDkH64x4UM9jcKLIBmPOJcrud2e-lb-pMtaFUSI,15102
130
- agno/knowledge/knowledge.py,sha256=Gm37EALvmgTm-PeIqPpWYq-vGkTqtkgOuNHCJvXyqwo,221034
130
+ agno/knowledge/knowledge.py,sha256=UESS4nZjr5n2CFs0BZ4gtCjeL5zLDaT-5T77nHcB6As,140239
131
131
  agno/knowledge/protocol.py,sha256=_hSe0czvTOmu9_NtzsaOxDCnTMYklObxYTphQB3pZ9M,4248
132
+ agno/knowledge/remote_knowledge.py,sha256=0ZKpb75JlV-TNSh-GyLuJ4b_mVlHwMkgH0Y4-cgZyTw,5924
132
133
  agno/knowledge/types.py,sha256=4NnkL_h2W-7GQnHW-yIqMNPUCWLzo5qBXF99gfsMe08,773
133
134
  agno/knowledge/utils.py,sha256=GJHL1vAOrD6KFEpOiN4Gsgz70fRG0E-jooKIBdfq4zI,9853
134
135
  agno/knowledge/chunking/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -144,7 +145,7 @@ agno/knowledge/chunking/strategy.py,sha256=M8-2i5uXZCEYHswuzLcyAdZL1cgczd7-SAK3-
144
145
  agno/knowledge/document/__init__.py,sha256=vxMAu103larPlcpJFG3sBg-sCATf-LZZO_SlOwlEY5E,81
145
146
  agno/knowledge/document/base.py,sha256=kvoLSAxc8snrayo_-C6L3HxJVXwZiXd7Maq6VToLgfg,2087
146
147
  agno/knowledge/embedder/__init__.py,sha256=RdjcB1qoXuGVLlIkD-hn3B4zs8ycabmCVRmZsG3RhCQ,81
147
- agno/knowledge/embedder/aws_bedrock.py,sha256=tqWp-BFnZvyOSusuN1OZ-TXtt6nZWFzZu6bg_zskBdc,14629
148
+ agno/knowledge/embedder/aws_bedrock.py,sha256=qTOt1NxIzF69mJvOuK9WHecGqkJjv23a7jnwxUj-iFg,23247
148
149
  agno/knowledge/embedder/azure_openai.py,sha256=Fv-Yn7eHZnw3qhVU6AktLpj8kYy3E7ynLPOYAJryCYs,8521
149
150
  agno/knowledge/embedder/base.py,sha256=PUyo0zzk1TlImKsmWORLhc74rNSEKIQcMcjP1sE7Pyk,746
150
151
  agno/knowledge/embedder/cohere.py,sha256=riT-Q7sGaG-BgkYtaq9ONXLuoUt99TncOWLzfOSWwtE,14499
@@ -162,6 +163,13 @@ agno/knowledge/embedder/sentence_transformer.py,sha256=_d4XgV07bj1hkKnuzZGvP--v_
162
163
  agno/knowledge/embedder/together.py,sha256=Pt524Lh6YRDKfD8rfmLu0Qlw4dDh4vLz7KEMIvIULBk,387
163
164
  agno/knowledge/embedder/vllm.py,sha256=whtZs4OGzE9aXeK-L1UmwwnpgAgxFlxAfiHREroj8yA,10952
164
165
  agno/knowledge/embedder/voyageai.py,sha256=E6RjQRaa5d2BHmkW09QG68ncrgBV2Vqq25ZR8vegEFs,6602
166
+ agno/knowledge/loaders/__init__.py,sha256=DxpMfmFXuUEZqFzboiV5ay7p4y64wGoAQVXU9nM2pos,923
167
+ agno/knowledge/loaders/azure_blob.py,sha256=BihO5rIJ4b4tFmdRy9qyGfPkkMt49-IzI9Ts9TUh8HE,18671
168
+ agno/knowledge/loaders/base.py,sha256=87Fp1kLq9YbvdiWuV-u__3VcTmQd7ffU5Uo2Drg1eRo,6131
169
+ agno/knowledge/loaders/gcs.py,sha256=vJf0GM-5_xIEfjj3N6UM-1m1SIHd0q87tuFhWQeNoY0,10679
170
+ agno/knowledge/loaders/github.py,sha256=ssK0r6DYkNQkljMyIaBL6Laa7kNS13poH8dBuPj4nRs,18102
171
+ agno/knowledge/loaders/s3.py,sha256=DK3qx4eCiUPh1ewO1AzWsm_ftG6hQ3yvjZCiZ1SBOgc,11486
172
+ agno/knowledge/loaders/sharepoint.py,sha256=XQxro960RI8O-RjlTY7g4egogtpVzwm4NZOaq21qLwk,19305
165
173
  agno/knowledge/reader/__init__.py,sha256=edjnCwyDjM9Q5JPMi4K9mll8a3CdV52iagUKAgGiaas,159
166
174
  agno/knowledge/reader/arxiv_reader.py,sha256=su1A9VmQBtt5q_5rbsmFh_l3DPnXKrASBp3O5lpU1R4,2780
167
175
  agno/knowledge/reader/base.py,sha256=jntGjnQ8Y05cz3eqvSt5cgicotPqX2hl_2grrIShlFI,3885
@@ -179,7 +187,7 @@ agno/knowledge/reader/s3_reader.py,sha256=F1glvjOpArXPSN8uCdjtnEe-S8HTJ-w7Av34bs
179
187
  agno/knowledge/reader/tavily_reader.py,sha256=LpKdMb9Z6UpDyNq137voesolGE8uCGjqf398JsQqkgY,7228
180
188
  agno/knowledge/reader/text_reader.py,sha256=RNiH-vkAyxR7bTsmmxDwZxmFWnOLYgStvN2XFonoA7o,4607
181
189
  agno/knowledge/reader/web_search_reader.py,sha256=bhFJqqlaRxJSQYE1oMlUiImW4DriOH1GwS5MAkBXyHA,12118
182
- agno/knowledge/reader/website_reader.py,sha256=B64_xoH3Mlfweyj96msTiIW42-aN_OOAfhNkZyWIzmU,19431
190
+ agno/knowledge/reader/website_reader.py,sha256=lDh8IYXPHfNBnLw2FaC3aWtUZAZphaOuq2CSGLHhC1E,19430
183
191
  agno/knowledge/reader/wikipedia_reader.py,sha256=C5aMlTwRHRW7FFh2c-JKZLlX5l0PzW6khq5Tu37FwbU,3137
184
192
  agno/knowledge/reader/youtube_reader.py,sha256=k12hrCE2ib9Pp9deE4oktRxHEKQddNbdOjOzTkqLA1I,3031
185
193
  agno/knowledge/reader/utils/__init__.py,sha256=kGCRfjiPPJJnFE_1w190KJbSktPAd7fhONpguwLOprY,389
@@ -188,6 +196,7 @@ agno/knowledge/remote_content/__init__.py,sha256=3zIQf3-iUK0Jy3_DtrmFhJSPol-DOSQ
188
196
  agno/knowledge/remote_content/config.py,sha256=vRCGYH_yvktB22QG6bDP4UXMitF0y2Riddkgw8xCPsk,7833
189
197
  agno/knowledge/remote_content/remote_content.py,sha256=0LtdtGHx-n9l12qDvxVYWb6Nc0907HVc-RcRQtrM7h4,5731
190
198
  agno/knowledge/reranker/__init__.py,sha256=6EK9EUQQY0ar-Jnev4hmlNyq2GwS_6UDMJXD2IBcFvE,74
199
+ agno/knowledge/reranker/aws_bedrock.py,sha256=d1ps7rvOz2FSQFZe1qruKptO6BX5c2elWe_423ky7x8,10600
191
200
  agno/knowledge/reranker/base.py,sha256=GsPcMmBiI5gOX8XABpmQNeP478mp5ma-W-1n37P0-QM,376
192
201
  agno/knowledge/reranker/cohere.py,sha256=2Be5blVyeZ3vYlnFa2NYvJuytjaCB8G2OWJ11pQz7vQ,2178
193
202
  agno/knowledge/reranker/infinity.py,sha256=N9geg9xZqRdJZksfQcvbGJgMymXrQVJl_K5KICWqH8o,7193
@@ -195,7 +204,7 @@ agno/knowledge/reranker/sentence_transformer.py,sha256=ZN4SqnMZsUhg5G7AzlONM1_Uj
195
204
  agno/learn/__init__.py,sha256=w4uS6ZDzfYyrYI9FjDP5mlYi6slCvU0XZ6jdV3HFSf8,1624
196
205
  agno/learn/config.py,sha256=GxysFhbix8RdyDf_2kORTbcLUSdzRJfjEG-2y29OEkk,15791
197
206
  agno/learn/curate.py,sha256=ywbtEkN9T1Bl1eJ794L24zLb_BX5H65bebjh4su1lvc,5248
198
- agno/learn/machine.py,sha256=Xzr6n9rNu7gU0bpWM1Ppv0wi4maDCdTZeCJ0RE6_uMk,25575
207
+ agno/learn/machine.py,sha256=I6tJFrNUolnjDluOurBr0wp0Q411B-B2RBTMjRJeEDY,25516
199
208
  agno/learn/schemas.py,sha256=Qb9TRITzXJ6QNciRAz7ijrER11hmYmzzC2vxs8M_USo,40491
200
209
  agno/learn/utils.py,sha256=dUL_oKWHPyUWF5e2muJyNo9W4Y7fwePESI_APQUZ12g,5672
201
210
  agno/learn/stores/__init__.py,sha256=c5kC8X5bgZwwRG7epKU5IHdJ-eA9qKcC9G756Xrk2CA,1306
@@ -203,7 +212,7 @@ agno/learn/stores/decision_log.py,sha256=gzGhHKe8YZ3I8C_xuTJzAobUmVQRhrFZSZ5W9py
203
212
  agno/learn/stores/entity_memory.py,sha256=6liU6aoR7C2tI91fgU2BUChtTYlCLM1dH4Ad6Iu7dOY,117078
204
213
  agno/learn/stores/learned_knowledge.py,sha256=raSP6T4zEEYRzEtepA4Vi042yqZpWbM7mIcPSFZiFh8,57001
205
214
  agno/learn/stores/protocol.py,sha256=SaB76BIXCQMTcEHQDNxUxPnOE2Jx9MMPj3tNsk9_VJk,3324
206
- agno/learn/stores/session_context.py,sha256=OQFk4OfYmHSNsytTfmm_4DJNTptNoDHWfqGnBHh06zU,48128
215
+ agno/learn/stores/session_context.py,sha256=j3uKhDZKE_U8iILy765adTtgfe1DS8dEBWcEt8YMMpw,48562
207
216
  agno/learn/stores/user_memory.py,sha256=le3Vi1hsokopWeMkme9t-ju6GCP1w6z16iJ6Mi6hKdQ,55648
208
217
  agno/learn/stores/user_profile.py,sha256=p-TDwaD6HDbFdELysQaLO_eo1UOARgENVAjdjv6TAdw,40763
209
218
  agno/memory/__init__.py,sha256=hB7aQmxTHTMX4prgoLabas1Ic_LvT777oR_ECIXyAiM,419
@@ -218,7 +227,7 @@ agno/models/defaults.py,sha256=1_fe4-ZbNriE8BgqxVRVi4KGzEYxYKYsz4hn6CZNEEM,40
218
227
  agno/models/message.py,sha256=5bZOFdZuhsQw06nNppvFJq-JGI4lqQt4sVhdjfEFBZM,19976
219
228
  agno/models/metrics.py,sha256=bQJ5DMoFcrb2EyA2VUm4u9HVGbgTKO5F1o2A_t_7hqI,4913
220
229
  agno/models/response.py,sha256=xZQ-2L5tciX70hTbniSp2XLt9OTBuasW4_lsWMGGfoM,7976
221
- agno/models/utils.py,sha256=FKzRbNm_hO_gdICBO-x4KWL6OkWIeipn07PeerUDR1M,7397
230
+ agno/models/utils.py,sha256=xcaT504taSQdcsFGVXPFrDpcPuXNrtL5Tq7atxlwjaA,7533
222
231
  agno/models/aimlapi/__init__.py,sha256=XQcFRvt4qJ8ol9nCC0XKEkVEDivdNf3nZNoJZMZ5m8M,78
223
232
  agno/models/aimlapi/aimlapi.py,sha256=ELPv8RuEc6qUq4JxWEJVRITsK71rzUxw6_cP3Zd8Vz0,2179
224
233
  agno/models/anthropic/__init__.py,sha256=nbReX3p17JCwfrMDR9hR7-OaEFZm80I7dng93dl-Fhw,77
@@ -228,7 +237,7 @@ agno/models/aws/bedrock.py,sha256=qK95OEoJBwkMj3NFB-o9F2JTp1Z_ygp6dBupxFI24fM,32
228
237
  agno/models/aws/claude.py,sha256=d_vwWtZZw3KHOOTLrPV_C7IWozIMxNafAHmxesyg1mk,9097
229
238
  agno/models/azure/__init__.py,sha256=EoFdJHjayvmv_VOmaW9cJguwA1K5OFS_nFeazyn0B2w,605
230
239
  agno/models/azure/ai_foundry.py,sha256=VMIci3geZ5KGq-ua7k0eHH33gBFOWbJWamEsxtmiaqg,19915
231
- agno/models/azure/openai_chat.py,sha256=4vya7TxRVD7TzZX6L0NAZeF_UPp2tHm_kOaIdytz6lw,6063
240
+ agno/models/azure/openai_chat.py,sha256=9qBIHzs7EjZ2f6hy9nkgyw2hsV9m4Ut4YlST5T8GfrQ,5874
232
241
  agno/models/cerebras/__init__.py,sha256=F3vE0lmMu-qDQ_Y7hg_czJitLsvNu4SfPv174wg1cq8,376
233
242
  agno/models/cerebras/cerebras.py,sha256=Q2AgXTXRNDh9CryjbTqNxpCg2USUzErDIRTU5tv0tEQ,23122
234
243
  agno/models/cerebras/cerebras_openai.py,sha256=ut4_xz6gKWKA-kJZCWjpk0RuCrvLe0YDrzofxh9E7_U,4907
@@ -275,6 +284,8 @@ agno/models/n1n/__init__.py,sha256=CymyKzTZWr-klifwaxzGTMDSVaPxBVtKOHQ-4VaPiWg,5
275
284
  agno/models/n1n/n1n.py,sha256=UW7MPHNAU0sfMTaHh7HIYcWVSuc_-I16KrrlsqF1I2U,1977
276
285
  agno/models/nebius/__init__.py,sha256=gW2yvxIfV2gxxOnBtTP8MCpI9AvMbIE6VTw-gY01Uvg,67
277
286
  agno/models/nebius/nebius.py,sha256=T1slyayVfxSXNVVpylqogdWk8fNzvCJhzdWfhRCRdw8,1893
287
+ agno/models/neosantara/__init__.py,sha256=PMsFKCbOT09Bd3TNiowRHZMojWEkzvaM7kQbl8qAqrA,90
288
+ agno/models/neosantara/neosantara.py,sha256=tzdKMwj0VVoHFSfMJZGaAJKqKpfIS4wA6G3GR46tF7M,1601
278
289
  agno/models/nexus/__init__.py,sha256=q9pwjZ2KXpG1B3Cy8ujrj3_s0a_LI5SaekXJL6mh4gE,63
279
290
  agno/models/nexus/nexus.py,sha256=rJcBQXR1aqUiLWMPBRuHIEh87wVrsqXup1hr_smanBQ,635
280
291
  agno/models/nvidia/__init__.py,sha256=O0g3_0_ciOz0AH4Y4CAL7YRfhdDPAvhDzNjJmgWKT78,74
@@ -311,13 +322,13 @@ agno/models/vllm/vllm.py,sha256=qaWgYcmegJZL52ZjmuIoryBpZ9LpOvYHFY-AYxVirA4,2806
311
322
  agno/models/xai/__init__.py,sha256=ukcCxnCHxTtkJNA2bAMTX4MhCv1wJcbiq8ZIfYczIxs,55
312
323
  agno/models/xai/xai.py,sha256=i7QoRiVdmoQ1E8Zw_e60qQgF85geZXWRPtEKioIInSU,4796
313
324
  agno/os/__init__.py,sha256=h8oQu7vhD5RZf09jkyM_Kt1Kdq_d5kFB9gJju8QPwcY,55
314
- agno/os/app.py,sha256=q6SyGYTL9aNZmgnN46Zn9udQx4zOYSV7t5sbElKetAI,47623
325
+ agno/os/app.py,sha256=crRPtU3kuvVvYyhDq4etzmJnViv0mh1EJ7ElYf5rB0A,47837
315
326
  agno/os/auth.py,sha256=3-0FUvj5o5e0qOl1ixEJ8NLdchpr8AroKaK_4pojp7w,11291
316
327
  agno/os/config.py,sha256=z0wNd576_qsQGsQWsMRIZzjknDVEPlKWF_pHE6VBUyY,3538
317
328
  agno/os/managers.py,sha256=j7Y07yEsW03iKEy1itb3sq3PXcJS3ipJbK4rTqk6_Ow,13086
318
329
  agno/os/mcp.py,sha256=TNkq9y20RBrCFx3iIk1MPrct6gCTYV0KMPS_1EwNghs,31393
319
330
  agno/os/router.py,sha256=WiWtf7FHXR8_IzT3Bbi2lX4j4DAhBLL06zbDhVR0Iog,12401
320
- agno/os/schema.py,sha256=HqeB0hPcpZlrlzZbGNQfPwnT6PZUJbSdRlTTjctXDHQ,33472
331
+ agno/os/schema.py,sha256=qYnKOUCQDfQpXmdRRerkj3Z_XaXqw3YBOociuI0KLt0,38045
321
332
  agno/os/scopes.py,sha256=gH3Obo618gHKt5h-N1OkWqB4UPl2LZygd7GW7pKzdAc,15696
322
333
  agno/os/settings.py,sha256=gS9pN1w21wsa5XqDkK-RfQmroAaqoX4KZBfRuhUevkM,1556
323
334
  agno/os/utils.py,sha256=x60JkKFgteAFoRarBJTaKiaQd4584EjVLqHfCryWUtw,39195
@@ -329,7 +340,7 @@ agno/os/interfaces/a2a/router.py,sha256=Upd7DZz9qk5cnaFLqfQ-05HSBdwL4ZPdfRfn63RM
329
340
  agno/os/interfaces/a2a/utils.py,sha256=coYLdYehsX_ffa4iycc0PdYLSiqt9lAxOLJTlaSriVo,40304
330
341
  agno/os/interfaces/agui/__init__.py,sha256=1zrGICk4roXUINwSFZfqH6sBsbHmD5KjGYVJMGg4fKQ,66
331
342
  agno/os/interfaces/agui/agui.py,sha256=KjQ3qrTCtFWDcHk3ViPguV6FvSuYKrAwENbDzUCcscM,1543
332
- agno/os/interfaces/agui/router.py,sha256=HmYWb2PcBNeWpq6ft-dfdLlSyEHXLaM9CHaVBS4wU_8,5645
343
+ agno/os/interfaces/agui/router.py,sha256=bBXqAzlaDo33ZXiV36CQVlD9lfIoA5hD77ESiQ78wCI,5654
333
344
  agno/os/interfaces/agui/utils.py,sha256=veRYnk8EVSuF2owJjNFUhQRsyqbxIlFQnAqjB0KY0mU,23645
334
345
  agno/os/interfaces/slack/__init__.py,sha256=F095kOcgiyk_KzIozNNieKwpVc_NR8HYpuO4bKiCNN0,70
335
346
  agno/os/interfaces/slack/router.py,sha256=PqlObVE396in76wN5bef8YxeFWYANwlcrvw0Fau3vGY,6402
@@ -350,13 +361,13 @@ agno/os/routers/agents/__init__.py,sha256=nr1H0Mp7NlWPnvu0ccaHVSPHz-lXg43TRMApkU
350
361
  agno/os/routers/agents/router.py,sha256=zfj9JuruHiucl-3jqOTp0sWkHydI7rHNCD20q3Hej-c,26615
351
362
  agno/os/routers/agents/schema.py,sha256=4jVKsM-KVSQEwN4EIzUT3fzs7OF7QQ6sdS8f40_IGPk,12940
352
363
  agno/os/routers/components/__init__.py,sha256=yzvMCbvRYU2pMRWNNgDH9hmVq4jhMqsUG2aIeEyNcpE,109
353
- agno/os/routers/components/components.py,sha256=DlkIli9GxrcKEAUyYlPSHjyEH8v1eopRGtx0943LEgY,18733
364
+ agno/os/routers/components/components.py,sha256=E6tI3-vduXhWIMMRaK1BjGhOZDoJvcFJoy39iFdGTsQ,18854
354
365
  agno/os/routers/evals/__init__.py,sha256=3s0M-Ftg5A3rFyRfTATs-0aNA6wcbj_5tCvtwH9gORQ,87
355
366
  agno/os/routers/evals/evals.py,sha256=9DErwITEV6O1BAr28asB29Yvgy8C5wtzQyz-ys-yJzw,23478
356
367
  agno/os/routers/evals/schemas.py,sha256=ouz-tsFNsPMnYE4Y7Cti_ZbBHsL6XiXFQVXz97BYe_k,7767
357
368
  agno/os/routers/evals/utils.py,sha256=MjOPY0xNdJZY04_4YQxsv3FPCsKTMDix8jyKDWwn6kc,8367
358
369
  agno/os/routers/knowledge/__init__.py,sha256=ZSqMQ8X7C_oYn8xt7NaYlriarWUpHgaWDyHXOWooMaU,105
359
- agno/os/routers/knowledge/knowledge.py,sha256=Ik753YKADNo3RjxCb79uR12g9Rxi_Qkgr2mqW5oIjeU,57177
370
+ agno/os/routers/knowledge/knowledge.py,sha256=gAhaxATlW2g93wubA9u4jktOSkZ0-EcO0sQXHr-qR_k,57087
360
371
  agno/os/routers/knowledge/schemas.py,sha256=Db_K8OVXCfjmrWucDzvioIHqGkKPeFGEroRrN7sON1Y,9523
361
372
  agno/os/routers/memory/__init__.py,sha256=9hrYFc1dkbsLBqKfqyfioQeLX9TTbLrJx6lWDKNNWbc,93
362
373
  agno/os/routers/memory/memory.py,sha256=SAXNlJTsQ-orSQymlQ-XVgN6RLlui3W9tB0NVSOWLrA,32854
@@ -365,7 +376,7 @@ agno/os/routers/metrics/__init__.py,sha256=Uw6wWEikLpF5hHxBkHtFyaTuz7OUerGYWk0JW
365
376
  agno/os/routers/metrics/metrics.py,sha256=HmABUctqrgaQ1zF3vVQp8AH8EvAd1ntLoJ-2BR9FqIw,9488
366
377
  agno/os/routers/metrics/schemas.py,sha256=dZGVMQtKn5yykNsi65iV9X8tZXKGCPZymZhE46fF8Tw,2875
367
378
  agno/os/routers/registry/__init__.py,sha256=85ZU3JL7qWRp-bwHFzw-SmcRzkUrHq__Q1Dwt2Fk6LA,101
368
- agno/os/routers/registry/registry.py,sha256=QIPNHTybINo3ztxugBfO0fZCKgIOXSsWzbBNFrbz4uA,14502
379
+ agno/os/routers/registry/registry.py,sha256=dlXEs0JsxNEvsfqcw_J_JTn171eQtZ3NMggQyZWwPns,22664
369
380
  agno/os/routers/session/__init__.py,sha256=du4LO9aZwiY1t59VcV9M6wiAfftFFlUZc-YXsTGy9LI,97
370
381
  agno/os/routers/session/session.py,sha256=oDAwi6iZTsqkDwt0MehCCUox5IC838CG7TFdgePHQ4c,57764
371
382
  agno/os/routers/teams/__init__.py,sha256=j2aPA09mwwn_vOG8p2uX0sDR-qNbLLRlPlprqM789NY,88
@@ -375,7 +386,7 @@ agno/os/routers/traces/__init__.py,sha256=v-QMRjlrw1iLkh2UawukKWfZ2R66L-OQmAGR-k
375
386
  agno/os/routers/traces/schemas.py,sha256=_O7tfF3aAPR-R1Q9noakWxjbI20UxkemVh7P2Dkw71I,20034
376
387
  agno/os/routers/traces/traces.py,sha256=63SZ_oMeHsnxmg6khZ5-FPr2PcHCu1m9Sq48kh3n-6A,24413
377
388
  agno/os/routers/workflows/__init__.py,sha256=1VnCzNTwxT9Z9EHskfqtrl1zhXGPPKuR4TktYdKd1RI,146
378
- agno/os/routers/workflows/router.py,sha256=aCHS8YuzdVubyuh0qiz36j3a2RpPxvNDMpjixT8OFSw,32194
389
+ agno/os/routers/workflows/router.py,sha256=YqZwQGU5g0t3bXi98BubfRa2QfaNM3iK0-sq3K0HVZE,32558
379
390
  agno/os/routers/workflows/schema.py,sha256=lDTblUnW60cc96opo2OY1Yc8wwtduvLZGax3v0X-5Ac,5749
380
391
  agno/reasoning/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
381
392
  agno/reasoning/anthropic.py,sha256=qv1cAUCN7DX7Ka4VKyXkgrnTGBZl0Om0FFaRghJ8gSo,6310
@@ -391,7 +402,7 @@ agno/reasoning/openai.py,sha256=BrZVv0ciZgzoq71h0Ra7mg1czeMRhzDGUMtyPQHgeuQ,8140
391
402
  agno/reasoning/step.py,sha256=6DaOb_0DJRz9Yh1w_mxcRaOSVzIQDrj3lQ6rzHLdIwA,1220
392
403
  agno/reasoning/vertexai.py,sha256=LJeS9VFYUF_16lqPCdTM5xBYlk9KcXY72WkvQi6ynWM,6150
393
404
  agno/registry/__init__.py,sha256=nsqlkNEFS2SvZkPWITJuRJ8kRSa6hAloUq8jFX8u4JA,68
394
- agno/registry/registry.py,sha256=fMNOhDBKqhXuZyDqSu6jeaZu4JJ5JT4vaEUBY_KA8OQ,2432
405
+ agno/registry/registry.py,sha256=l8mOT3VkmIpmsmYyRoA7_9u-KTrHNAOm9F84QhZKDIs,2631
395
406
  agno/remote/__init__.py,sha256=zgDS3cO_6VavICojsmG8opJ49wLwydftGE6i6_yPDTo,66
396
407
  agno/remote/base.py,sha256=D2TDs7rmlbxgbLEArga7jq9IgdKSzhs_jzoUO43WDQo,23358
397
408
  agno/run/__init__.py,sha256=GZwloCe48rEAjkb_xOJ7piOjICmHawiR1d4SqBtUd-k,222
@@ -401,7 +412,7 @@ agno/run/cancel.py,sha256=Tyxg4lxwSvO2wSZDG4OF82ORQU6MYBu94YLqrEnK09Y,3019
401
412
  agno/run/messages.py,sha256=rAC4CLW-xBA6qFS1BOvcjJ9j_qYf0a7sX1mcdY04zMU,1126
402
413
  agno/run/requirement.py,sha256=5M_L-3nKLPDS0tUxTbFNvgXgWfWUyEohQz_3bxNc39M,6817
403
414
  agno/run/team.py,sha256=F3IRagtwuXil-wizeo9LVuv5jhS7R90nAleO5kuWFR4,30764
404
- agno/run/workflow.py,sha256=PMpOP7i2jl47kIMtw_rxY4U2S-Egxlvxe7QegGFihxA,25134
415
+ agno/run/workflow.py,sha256=s8Q6jZ48E6GXQ7DiWni91s041YQMhC-tbQ-JKoL6WPk,25260
405
416
  agno/run/cancellation_management/__init__.py,sha256=tA_u4MeG2dgm8cWJRXy0X6HF4mv6Kc55gykoSnuMPf0,406
406
417
  agno/run/cancellation_management/base.py,sha256=nNh5yqfjp4Bpn03RE7T2jzLbzvY007ckzGhd-XKmZpk,2408
407
418
  agno/run/cancellation_management/in_memory_cancellation_manager.py,sha256=p04IxrXG8FcHG3X-YS-ApNAdVj8kY1ZKBeUavdypZjM,3956
@@ -410,19 +421,19 @@ agno/session/__init__.py,sha256=p6eqzWcLSHiMex2yZvkwv2yrFUNdGs21TGMS49xrEC4,376
410
421
  agno/session/agent.py,sha256=8vVtwwUC5moGWdRcG99Ik6Ay7gbFRrPPnT1ncOUFQIg,10365
411
422
  agno/session/summary.py,sha256=9JnDyQyggckd3zx6L8Q5f-lglZvrFQxvPjGU8gLCgR4,10292
412
423
  agno/session/team.py,sha256=J7QIy8oCi2_eWs0ToDs7VHHfeFQI34cF4i1Yx7Tbv_M,13388
413
- agno/session/workflow.py,sha256=nPHnh1N0SJby5JRjysCUI-kTDCelQMFfqosEnnLzPIg,19690
424
+ agno/session/workflow.py,sha256=9aYmd4g-Cb5jrGlfW6CWeGlcRRJ3TSOyoruJOxoLbJ8,19687
414
425
  agno/skills/__init__.py,sha256=nGwBH_8uqu6Dmj4lojjfsQSH7A-LjqvCEzjUcJs0R3U,502
415
426
  agno/skills/agent_skills.py,sha256=8MlFblQTeYin7ioQ2FKBM9l1DZCG_O5c73OaA0Uo14g,13647
416
427
  agno/skills/errors.py,sha256=jltbTsKSl-_MESUVtIO9XZWQOn34KCNYPIW4XnsFWKs,772
417
428
  agno/skills/skill.py,sha256=-MTxSJk0w5DITejVExtwUaBV_eJXdMIZ_rxYXSl5Ij8,2534
418
- agno/skills/utils.py,sha256=IB1qvualoNUkwvA_-fhxcCSUSJa70Cftup6iIKGLqqk,2873
429
+ agno/skills/utils.py,sha256=ps_VmJTOrWC0dzRF8D2WOT7CnUX1IRbuVwMFnt2KhUs,5981
419
430
  agno/skills/validator.py,sha256=_g0UEO3e8AEIUqvg_GCTMzmOOIYU5XKYxgyP0YGKTe4,8082
420
431
  agno/skills/loaders/__init__.py,sha256=1Lb6T2BkyQECIKIk-n5F6Unxm7CT1PEan_iYrTMtmrU,141
421
432
  agno/skills/loaders/base.py,sha256=Syt6lIOe-m_Kz68ndwuVed3wZFAPvYDDnJkhypazYJ8,743
422
433
  agno/skills/loaders/local.py,sha256=7budE7d-JG86XyqnRwo495yiYWDjj16yDV67aiSacOQ,7478
423
434
  agno/team/__init__.py,sha256=Ff5VMcZnkimttdCcRFEL852JgInlWCkpdlgyfhXfIo8,971
424
435
  agno/team/remote.py,sha256=BgUEQsTFA4tehDas1YO7lwQCj3cLJrxfoSFVOYm_1po,16979
425
- agno/team/team.py,sha256=rIgZH9J0CRPEiInYQkS4xTSNsFZIkXMC1NvMBEirJv0,477194
436
+ agno/team/team.py,sha256=STW-Ju0wHGz7sXL-HWS2FtAnOF6GiNfhqR4q_5bidr8,477323
426
437
  agno/tools/__init__.py,sha256=jNll2sELhPPbqm5nPeT4_uyzRO2_KRTW-8Or60kioS0,210
427
438
  agno/tools/agentql.py,sha256=S82Z9aTNr-E5wnA4fbFs76COljJtiQIjf2grjz3CkHU,4104
428
439
  agno/tools/airflow.py,sha256=uf2rOzZpSU64l_qRJ5Raku-R3Gky-uewmYkh6W0-oxg,2610
@@ -544,7 +555,7 @@ agno/tools/zendesk.py,sha256=OgvK0bQGIHnRmN8X6OxyGI7P0Si6w4sodZr6FfmNR50,3084
544
555
  agno/tools/zep.py,sha256=i3yDNlVJLM0CK8SFHi-64fs0DfHMUwqu1CCrMvzJ95M,19305
545
556
  agno/tools/zoom.py,sha256=PD3l-JJ6VK1XJLXF8ciPScS6oRH8CHl7OQtoiZq8VK0,15963
546
557
  agno/tools/mcp/__init__.py,sha256=VqnrxQzDMGcT9gRI5sXAmZ1ccuomGNCfHYQSYxlyZaw,278
547
- agno/tools/mcp/mcp.py,sha256=c8nWHZpWo53bUw7PJ4tkTP5ECew8mAFT7RpyzIgIFPQ,25898
558
+ agno/tools/mcp/mcp.py,sha256=Id00Kni0eONxr_gcWy-_cV3jfCt-T2ZkIFg1REDcCjQ,27524
548
559
  agno/tools/mcp/multi_mcp.py,sha256=lYO_euSw_gJdky6cZyJtQ53s1igrsMaxR-bL8DJMF60,25659
549
560
  agno/tools/mcp/params.py,sha256=Ng9RhXeUgHCDh2mzPAKoAdsTctKfurrt5VYmbrUgfVA,666
550
561
  agno/tools/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -633,7 +644,7 @@ agno/vectordb/clickhouse/index.py,sha256=_YW-8AuEYy5kzOHi0zIzjngpQPgJOBdSrn9BfEL
633
644
  agno/vectordb/couchbase/__init__.py,sha256=dKZkcQLFN4r2_NIdXby4inzAAn4BDMlb9T2BW_i0_gQ,93
634
645
  agno/vectordb/couchbase/couchbase.py,sha256=SDyNQGq_wD5mkUIQGkYtR7AZCUxf7fIw50YmI0N1T5U,65636
635
646
  agno/vectordb/lancedb/__init__.py,sha256=tb9qvinKyWMTLjJYMwW_lhYHFvrfWTfHODtBfMj-NLE,111
636
- agno/vectordb/lancedb/lance_db.py,sha256=G1wCwM_oex78i2gUsRiHsL83qzmWacLQvYZ5933BWl8,41587
647
+ agno/vectordb/lancedb/lance_db.py,sha256=xk7Iq9xzutuzTwdF9-zasLkWuFbvJpmD57sMYmGW7sc,42468
637
648
  agno/vectordb/langchaindb/__init__.py,sha256=BxGs6tcEKTiydbVJL3P5djlnafS5Bbgql3u1k6vhW2w,108
638
649
  agno/vectordb/langchaindb/langchaindb.py,sha256=AS-Jrh7gXKYkSHFiXKiD0kwL-FUFz10VbYksm8UEBAU,6391
639
650
  agno/vectordb/lightrag/__init__.py,sha256=fgQpA8pZW-jEHI91SZ_xgmROmv14oKdwCQZ8LpyipaE,84
@@ -663,19 +674,20 @@ agno/vectordb/upstashdb/upstashdb.py,sha256=AAalti8wCNGikjTE_mDLVQmyuPiNVrY_KFsH
663
674
  agno/vectordb/weaviate/__init__.py,sha256=CF56_hm_DJq2JOYyzKwyrnGaSJoAFWHDvqvx5Z2SSI0,212
664
675
  agno/vectordb/weaviate/index.py,sha256=y4XYPRZFksMfrrF85B4hn5AtmXM4SH--4CyLo27EHgM,253
665
676
  agno/vectordb/weaviate/weaviate.py,sha256=B5mP2uGIbgMA1uP_JGWpjAJ7IUGm4ZHpVke_lQY0it4,40639
666
- agno/workflow/__init__.py,sha256=4aTXmTeOFofdNm-LgvjlN0y78vmsCpQDwYvke-f34E4,761
677
+ agno/workflow/__init__.py,sha256=xkd7MDog05bqKJHl-pbRexrGjZuCzYi5Mu_eGlTrjt0,902
667
678
  agno/workflow/agent.py,sha256=PSt7X8BOgO9Rmh1YnT3I9HBq360IjdXfaKNzffqqiRw,12173
668
- agno/workflow/condition.py,sha256=ekqtvDIeOaG2QFDdlXJhXzz5LKyGlCFMHD2mF-Q4TxM,33203
669
- agno/workflow/loop.py,sha256=9yX_JY3b14I5Rem4QtxUIj1hF1gFC-ICshv5kmnPIf0,34048
670
- agno/workflow/parallel.py,sha256=PYdnWYimIBvHqzgQ13EpvITnmjCpogDOAaPqIrDmtTs,37057
679
+ agno/workflow/cel.py,sha256=ye_t6HN11isEX9aSNgd88tN1uuj9R7IGPI3RueLmoOY,10066
680
+ agno/workflow/condition.py,sha256=1C5wj_pg5HBI64eQrUCuly80LUjDSCykj17mFGtKIlA,43692
681
+ agno/workflow/loop.py,sha256=FbxvBA_spgnkwXq3cqWZEU9eoSVrKrmDnCJ-YTZvpSw,39547
682
+ agno/workflow/parallel.py,sha256=tEHncu9gQBLKWnNNzIHMiiNi8iGSmPJf3cd3CEj7uOs,40008
671
683
  agno/workflow/remote.py,sha256=-turwcZ0Nm0rsltJAFfG6IzyhTujJZs9lPoV-W2anUs,14144
672
- agno/workflow/router.py,sha256=6rwsdOXNQX2OKcm_p2nOvqyWUnnVdiwRCZNnYwkQ7N8,31320
673
- agno/workflow/step.py,sha256=AgSugOOoWidfZGFtR5PMpgWSBpIeUQB45vmaUDnV7E8,77919
674
- agno/workflow/steps.py,sha256=p1RdyTZIKDYOPdxU7FbsX_vySWehPWaobge76Q_UDac,26462
684
+ agno/workflow/router.py,sha256=XDgsiUoiU9JGHjpsRFhexgWiRs_Y5nPwIegoiHmUR9M,40927
685
+ agno/workflow/step.py,sha256=9hQzoIVUmHNZA1PCKoB-m9e5-dAUxQokrwux2ii9g0k,78271
686
+ agno/workflow/steps.py,sha256=GfuxfvCoN7B16BtHPo7zYgB-i8_9DYnYr8XIjiWNXkY,28260
675
687
  agno/workflow/types.py,sha256=t4304WCKB19QFdV3ixXZICcU8wtBza4EBCIz5Ve6MSQ,18035
676
- agno/workflow/workflow.py,sha256=S4Iwx3LtpeE_XZ61slYvnM90BdnGhW6Gfax_BKEUG68,218609
677
- agno-2.4.6.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
678
- agno-2.4.6.dist-info/METADATA,sha256=MmLfiyHxq2B7hn_o0JMPG7Hwnk5Hn_yz8RhixiReUOY,21116
679
- agno-2.4.6.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
680
- agno-2.4.6.dist-info/top_level.txt,sha256=MKyeuVesTyOKIXUhc-d_tPa2Hrh0oTA4LM0izowpx70,5
681
- agno-2.4.6.dist-info/RECORD,,
688
+ agno/workflow/workflow.py,sha256=98v9TDNeep0GnHb3mOfaluXplC0lWZEajJ3gpZpyXaw,221055
689
+ agno-2.4.8.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
690
+ agno-2.4.8.dist-info/METADATA,sha256=dzuJgPy_zeAexRGHfnQmjdQvvFWHlNhDP_VgdNnWKbg,21526
691
+ agno-2.4.8.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
692
+ agno-2.4.8.dist-info/top_level.txt,sha256=MKyeuVesTyOKIXUhc-d_tPa2Hrh0oTA4LM0izowpx70,5
693
+ agno-2.4.8.dist-info/RECORD,,
File without changes