agno 2.1.3__py3-none-any.whl → 2.1.4__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.
- agno/agent/agent.py +39 -69
- agno/db/dynamo/dynamo.py +8 -6
- agno/db/dynamo/schemas.py +1 -10
- agno/db/dynamo/utils.py +2 -2
- agno/knowledge/embedder/fastembed.py +1 -1
- agno/os/app.py +7 -3
- agno/os/interfaces/agui/utils.py +6 -0
- agno/os/schema.py +2 -0
- agno/os/utils.py +2 -1
- agno/session/workflow.py +69 -1
- agno/team/team.py +29 -79
- agno/tools/function.py +36 -18
- agno/tools/google_drive.py +270 -0
- agno/utils/print_response/workflow.py +112 -12
- agno/workflow/condition.py +25 -0
- agno/workflow/loop.py +25 -0
- agno/workflow/parallel.py +137 -113
- agno/workflow/router.py +25 -0
- agno/workflow/step.py +138 -25
- agno/workflow/steps.py +25 -0
- agno/workflow/types.py +26 -1
- agno/workflow/workflow.py +225 -7
- {agno-2.1.3.dist-info → agno-2.1.4.dist-info}/METADATA +1 -1
- {agno-2.1.3.dist-info → agno-2.1.4.dist-info}/RECORD +27 -26
- {agno-2.1.3.dist-info → agno-2.1.4.dist-info}/WHEEL +0 -0
- {agno-2.1.3.dist-info → agno-2.1.4.dist-info}/licenses/LICENSE +0 -0
- {agno-2.1.3.dist-info → agno-2.1.4.dist-info}/top_level.txt +0 -0
agno/workflow/workflow.py
CHANGED
|
@@ -170,6 +170,11 @@ class Workflow:
|
|
|
170
170
|
# This helps us improve the Agent and provide better support
|
|
171
171
|
telemetry: bool = True
|
|
172
172
|
|
|
173
|
+
# Add this flag to control if the workflow should add history to the steps
|
|
174
|
+
add_workflow_history_to_steps: bool = False
|
|
175
|
+
# Number of historical runs to include in the messages
|
|
176
|
+
num_history_runs: int = 3
|
|
177
|
+
|
|
173
178
|
def __init__(
|
|
174
179
|
self,
|
|
175
180
|
id: Optional[str] = None,
|
|
@@ -191,6 +196,8 @@ class Workflow:
|
|
|
191
196
|
metadata: Optional[Dict[str, Any]] = None,
|
|
192
197
|
cache_session: bool = False,
|
|
193
198
|
telemetry: bool = True,
|
|
199
|
+
add_workflow_history_to_steps: bool = False,
|
|
200
|
+
num_history_runs: int = 3,
|
|
194
201
|
):
|
|
195
202
|
self.id = id
|
|
196
203
|
self.name = name
|
|
@@ -211,7 +218,8 @@ class Workflow:
|
|
|
211
218
|
self.cache_session = cache_session
|
|
212
219
|
self.db = db
|
|
213
220
|
self.telemetry = telemetry
|
|
214
|
-
|
|
221
|
+
self.add_workflow_history_to_steps = add_workflow_history_to_steps
|
|
222
|
+
self.num_history_runs = num_history_runs
|
|
215
223
|
self._workflow_session: Optional[WorkflowSession] = None
|
|
216
224
|
|
|
217
225
|
def set_id(self) -> None:
|
|
@@ -707,6 +715,34 @@ class Workflow:
|
|
|
707
715
|
|
|
708
716
|
return event
|
|
709
717
|
|
|
718
|
+
def _enrich_event_with_workflow_context(
|
|
719
|
+
self,
|
|
720
|
+
event: Any,
|
|
721
|
+
workflow_run_response: WorkflowRunOutput,
|
|
722
|
+
step_index: Optional[Union[int, tuple]] = None,
|
|
723
|
+
step: Optional[Any] = None,
|
|
724
|
+
) -> Any:
|
|
725
|
+
"""Enrich any event with workflow context information for frontend tracking"""
|
|
726
|
+
|
|
727
|
+
step_id = getattr(step, "step_id", None) if step else None
|
|
728
|
+
step_name = getattr(step, "name", None) if step else None
|
|
729
|
+
|
|
730
|
+
if hasattr(event, "workflow_id"):
|
|
731
|
+
event.workflow_id = workflow_run_response.workflow_id
|
|
732
|
+
if hasattr(event, "workflow_run_id"):
|
|
733
|
+
event.workflow_run_id = workflow_run_response.run_id
|
|
734
|
+
if hasattr(event, "step_id") and step_id:
|
|
735
|
+
event.step_id = step_id
|
|
736
|
+
if hasattr(event, "step_name") and step_name is not None:
|
|
737
|
+
if event.step_name is None:
|
|
738
|
+
event.step_name = step_name
|
|
739
|
+
# Only set step_index if it's not already set (preserve parallel.py's tuples)
|
|
740
|
+
if hasattr(event, "step_index") and step_index is not None:
|
|
741
|
+
if event.step_index is None:
|
|
742
|
+
event.step_index = step_index
|
|
743
|
+
|
|
744
|
+
return event
|
|
745
|
+
|
|
710
746
|
def _transform_step_output_to_event(
|
|
711
747
|
self, step_output: StepOutput, workflow_run_response: WorkflowRunOutput, step_index: Optional[int] = None
|
|
712
748
|
) -> StepOutputEvent:
|
|
@@ -952,6 +988,11 @@ class Workflow:
|
|
|
952
988
|
workflow_run_response=workflow_run_response,
|
|
953
989
|
session_state=session_state,
|
|
954
990
|
store_executor_outputs=self.store_executor_outputs,
|
|
991
|
+
workflow_session=session,
|
|
992
|
+
add_workflow_history_to_steps=self.add_workflow_history_to_steps
|
|
993
|
+
if self.add_workflow_history_to_steps
|
|
994
|
+
else None,
|
|
995
|
+
num_history_runs=self.num_history_runs,
|
|
955
996
|
)
|
|
956
997
|
|
|
957
998
|
# Check for cancellation after step execution
|
|
@@ -1121,6 +1162,11 @@ class Workflow:
|
|
|
1121
1162
|
session_state=session_state,
|
|
1122
1163
|
step_index=i,
|
|
1123
1164
|
store_executor_outputs=self.store_executor_outputs,
|
|
1165
|
+
workflow_session=session,
|
|
1166
|
+
add_workflow_history_to_steps=self.add_workflow_history_to_steps
|
|
1167
|
+
if self.add_workflow_history_to_steps
|
|
1168
|
+
else None,
|
|
1169
|
+
num_history_runs=self.num_history_runs,
|
|
1124
1170
|
):
|
|
1125
1171
|
raise_if_cancelled(workflow_run_response.run_id) # type: ignore
|
|
1126
1172
|
# Handle events
|
|
@@ -1171,11 +1217,18 @@ class Workflow:
|
|
|
1171
1217
|
yield step_output_event
|
|
1172
1218
|
|
|
1173
1219
|
elif isinstance(event, WorkflowRunOutputEvent): # type: ignore
|
|
1174
|
-
|
|
1220
|
+
# Enrich event with workflow context before yielding
|
|
1221
|
+
enriched_event = self._enrich_event_with_workflow_context(
|
|
1222
|
+
event, workflow_run_response, step_index=i, step=step
|
|
1223
|
+
)
|
|
1224
|
+
yield self._handle_event(enriched_event, workflow_run_response) # type: ignore
|
|
1175
1225
|
|
|
1176
1226
|
else:
|
|
1177
|
-
#
|
|
1178
|
-
|
|
1227
|
+
# Enrich other events with workflow context before yielding
|
|
1228
|
+
enriched_event = self._enrich_event_with_workflow_context(
|
|
1229
|
+
event, workflow_run_response, step_index=i, step=step
|
|
1230
|
+
)
|
|
1231
|
+
yield self._handle_event(enriched_event, workflow_run_response) # type: ignore
|
|
1179
1232
|
|
|
1180
1233
|
# Break out of main step loop if early termination was requested
|
|
1181
1234
|
if "early_termination" in locals() and early_termination:
|
|
@@ -1415,6 +1468,11 @@ class Workflow:
|
|
|
1415
1468
|
workflow_run_response=workflow_run_response,
|
|
1416
1469
|
session_state=session_state,
|
|
1417
1470
|
store_executor_outputs=self.store_executor_outputs,
|
|
1471
|
+
workflow_session=session,
|
|
1472
|
+
add_workflow_history_to_steps=self.add_workflow_history_to_steps
|
|
1473
|
+
if self.add_workflow_history_to_steps
|
|
1474
|
+
else None,
|
|
1475
|
+
num_history_runs=self.num_history_runs,
|
|
1418
1476
|
)
|
|
1419
1477
|
|
|
1420
1478
|
# Check for cancellation after step execution
|
|
@@ -1589,6 +1647,11 @@ class Workflow:
|
|
|
1589
1647
|
session_state=session_state,
|
|
1590
1648
|
step_index=i,
|
|
1591
1649
|
store_executor_outputs=self.store_executor_outputs,
|
|
1650
|
+
workflow_session=session,
|
|
1651
|
+
add_workflow_history_to_steps=self.add_workflow_history_to_steps
|
|
1652
|
+
if self.add_workflow_history_to_steps
|
|
1653
|
+
else None,
|
|
1654
|
+
num_history_runs=self.num_history_runs,
|
|
1592
1655
|
):
|
|
1593
1656
|
if workflow_run_response.run_id:
|
|
1594
1657
|
raise_if_cancelled(workflow_run_response.run_id)
|
|
@@ -1638,11 +1701,22 @@ class Workflow:
|
|
|
1638
1701
|
yield step_output_event
|
|
1639
1702
|
|
|
1640
1703
|
elif isinstance(event, WorkflowRunOutputEvent): # type: ignore
|
|
1641
|
-
|
|
1704
|
+
# Enrich event with workflow context before yielding
|
|
1705
|
+
enriched_event = self._enrich_event_with_workflow_context(
|
|
1706
|
+
event, workflow_run_response, step_index=i, step=step
|
|
1707
|
+
)
|
|
1708
|
+
yield self._handle_event(
|
|
1709
|
+
enriched_event, workflow_run_response, websocket_handler=websocket_handler
|
|
1710
|
+
) # type: ignore
|
|
1642
1711
|
|
|
1643
1712
|
else:
|
|
1644
|
-
#
|
|
1645
|
-
|
|
1713
|
+
# Enrich other events with workflow context before yielding
|
|
1714
|
+
enriched_event = self._enrich_event_with_workflow_context(
|
|
1715
|
+
event, workflow_run_response, step_index=i, step=step
|
|
1716
|
+
)
|
|
1717
|
+
yield self._handle_event(
|
|
1718
|
+
enriched_event, workflow_run_response, websocket_handler=websocket_handler
|
|
1719
|
+
) # type: ignore
|
|
1646
1720
|
|
|
1647
1721
|
# Break out of main step loop if early termination was requested
|
|
1648
1722
|
if "early_termination" in locals() and early_termination:
|
|
@@ -2636,3 +2710,147 @@ class Workflow:
|
|
|
2636
2710
|
)
|
|
2637
2711
|
except Exception as e:
|
|
2638
2712
|
log_debug(f"Could not create Workflow run telemetry event: {e}")
|
|
2713
|
+
|
|
2714
|
+
def cli_app(
|
|
2715
|
+
self,
|
|
2716
|
+
input: Optional[str] = None,
|
|
2717
|
+
session_id: Optional[str] = None,
|
|
2718
|
+
user_id: Optional[str] = None,
|
|
2719
|
+
user: str = "User",
|
|
2720
|
+
emoji: str = ":technologist:",
|
|
2721
|
+
stream: Optional[bool] = None,
|
|
2722
|
+
stream_intermediate_steps: Optional[bool] = None,
|
|
2723
|
+
markdown: bool = True,
|
|
2724
|
+
show_time: bool = True,
|
|
2725
|
+
show_step_details: bool = True,
|
|
2726
|
+
exit_on: Optional[List[str]] = None,
|
|
2727
|
+
**kwargs: Any,
|
|
2728
|
+
) -> None:
|
|
2729
|
+
"""
|
|
2730
|
+
Run an interactive command-line interface to interact with the workflow.
|
|
2731
|
+
|
|
2732
|
+
This method creates a CLI interface that allows users to interact with the workflow
|
|
2733
|
+
either by providing a single input or through continuous interactive prompts.
|
|
2734
|
+
|
|
2735
|
+
Arguments:
|
|
2736
|
+
input: Optional initial input to process before starting interactive mode.
|
|
2737
|
+
session_id: Optional session identifier for maintaining conversation context.
|
|
2738
|
+
user_id: Optional user identifier for tracking user-specific data.
|
|
2739
|
+
user: Display name for the user in the CLI prompt. Defaults to "User".
|
|
2740
|
+
emoji: Emoji to display next to the user name in prompts. Defaults to ":technologist:".
|
|
2741
|
+
stream: Whether to stream the workflow response. If None, uses workflow default.
|
|
2742
|
+
stream_intermediate_steps: Whether to stream intermediate step outputs. If None, uses workflow default.
|
|
2743
|
+
markdown: Whether to render output as markdown. Defaults to True.
|
|
2744
|
+
show_time: Whether to display timestamps in the output. Defaults to True.
|
|
2745
|
+
show_step_details: Whether to show detailed step information. Defaults to True.
|
|
2746
|
+
exit_on: List of commands that will exit the CLI. Defaults to ["exit", "quit", "bye", "stop"].
|
|
2747
|
+
**kwargs: Additional keyword arguments passed to the workflow's print_response method.
|
|
2748
|
+
|
|
2749
|
+
Returns:
|
|
2750
|
+
None: This method runs interactively and does not return a value.
|
|
2751
|
+
"""
|
|
2752
|
+
|
|
2753
|
+
from rich.prompt import Prompt
|
|
2754
|
+
|
|
2755
|
+
if input:
|
|
2756
|
+
self.print_response(
|
|
2757
|
+
input=input,
|
|
2758
|
+
stream=stream,
|
|
2759
|
+
stream_intermediate_steps=stream_intermediate_steps,
|
|
2760
|
+
markdown=markdown,
|
|
2761
|
+
show_time=show_time,
|
|
2762
|
+
show_step_details=show_step_details,
|
|
2763
|
+
user_id=user_id,
|
|
2764
|
+
session_id=session_id,
|
|
2765
|
+
**kwargs,
|
|
2766
|
+
)
|
|
2767
|
+
|
|
2768
|
+
_exit_on = exit_on or ["exit", "quit", "bye", "stop"]
|
|
2769
|
+
while True:
|
|
2770
|
+
message = Prompt.ask(f"[bold] {emoji} {user} [/bold]")
|
|
2771
|
+
if message in _exit_on:
|
|
2772
|
+
break
|
|
2773
|
+
|
|
2774
|
+
self.print_response(
|
|
2775
|
+
input=message,
|
|
2776
|
+
stream=stream,
|
|
2777
|
+
stream_intermediate_steps=stream_intermediate_steps,
|
|
2778
|
+
markdown=markdown,
|
|
2779
|
+
show_time=show_time,
|
|
2780
|
+
show_step_details=show_step_details,
|
|
2781
|
+
user_id=user_id,
|
|
2782
|
+
session_id=session_id,
|
|
2783
|
+
**kwargs,
|
|
2784
|
+
)
|
|
2785
|
+
|
|
2786
|
+
async def acli_app(
|
|
2787
|
+
self,
|
|
2788
|
+
input: Optional[str] = None,
|
|
2789
|
+
session_id: Optional[str] = None,
|
|
2790
|
+
user_id: Optional[str] = None,
|
|
2791
|
+
user: str = "User",
|
|
2792
|
+
emoji: str = ":technologist:",
|
|
2793
|
+
stream: Optional[bool] = None,
|
|
2794
|
+
stream_intermediate_steps: Optional[bool] = None,
|
|
2795
|
+
markdown: bool = True,
|
|
2796
|
+
show_time: bool = True,
|
|
2797
|
+
show_step_details: bool = True,
|
|
2798
|
+
exit_on: Optional[List[str]] = None,
|
|
2799
|
+
**kwargs: Any,
|
|
2800
|
+
) -> None:
|
|
2801
|
+
"""
|
|
2802
|
+
Run an interactive command-line interface to interact with the workflow.
|
|
2803
|
+
|
|
2804
|
+
This method creates a CLI interface that allows users to interact with the workflow
|
|
2805
|
+
either by providing a single input or through continuous interactive prompts.
|
|
2806
|
+
|
|
2807
|
+
Arguments:
|
|
2808
|
+
input: Optional initial input to process before starting interactive mode.
|
|
2809
|
+
session_id: Optional session identifier for maintaining conversation context.
|
|
2810
|
+
user_id: Optional user identifier for tracking user-specific data.
|
|
2811
|
+
user: Display name for the user in the CLI prompt. Defaults to "User".
|
|
2812
|
+
emoji: Emoji to display next to the user name in prompts. Defaults to ":technologist:".
|
|
2813
|
+
stream: Whether to stream the workflow response. If None, uses workflow default.
|
|
2814
|
+
stream_intermediate_steps: Whether to stream intermediate step outputs. If None, uses workflow default.
|
|
2815
|
+
markdown: Whether to render output as markdown. Defaults to True.
|
|
2816
|
+
show_time: Whether to display timestamps in the output. Defaults to True.
|
|
2817
|
+
show_step_details: Whether to show detailed step information. Defaults to True.
|
|
2818
|
+
exit_on: List of commands that will exit the CLI. Defaults to ["exit", "quit", "bye", "stop"].
|
|
2819
|
+
**kwargs: Additional keyword arguments passed to the workflow's print_response method.
|
|
2820
|
+
|
|
2821
|
+
Returns:
|
|
2822
|
+
None: This method runs interactively and does not return a value.
|
|
2823
|
+
"""
|
|
2824
|
+
|
|
2825
|
+
from rich.prompt import Prompt
|
|
2826
|
+
|
|
2827
|
+
if input:
|
|
2828
|
+
await self.aprint_response(
|
|
2829
|
+
input=input,
|
|
2830
|
+
stream=stream,
|
|
2831
|
+
stream_intermediate_steps=stream_intermediate_steps,
|
|
2832
|
+
markdown=markdown,
|
|
2833
|
+
show_time=show_time,
|
|
2834
|
+
show_step_details=show_step_details,
|
|
2835
|
+
user_id=user_id,
|
|
2836
|
+
session_id=session_id,
|
|
2837
|
+
**kwargs,
|
|
2838
|
+
)
|
|
2839
|
+
|
|
2840
|
+
_exit_on = exit_on or ["exit", "quit", "bye", "stop"]
|
|
2841
|
+
while True:
|
|
2842
|
+
message = Prompt.ask(f"[bold] {emoji} {user} [/bold]")
|
|
2843
|
+
if message in _exit_on:
|
|
2844
|
+
break
|
|
2845
|
+
|
|
2846
|
+
await self.aprint_response(
|
|
2847
|
+
input=message,
|
|
2848
|
+
stream=stream,
|
|
2849
|
+
stream_intermediate_steps=stream_intermediate_steps,
|
|
2850
|
+
markdown=markdown,
|
|
2851
|
+
show_time=show_time,
|
|
2852
|
+
show_step_details=show_step_details,
|
|
2853
|
+
user_id=user_id,
|
|
2854
|
+
session_id=session_id,
|
|
2855
|
+
**kwargs,
|
|
2856
|
+
)
|
|
@@ -4,7 +4,7 @@ agno/exceptions.py,sha256=-JelI3vzaHTWySKM1LqtLoH1Otm841QqAwsiboztG14,4748
|
|
|
4
4
|
agno/media.py,sha256=eTfYb_pwhX_PCIVPSrW4VYRqmoxKABEF1aZClrVvQ30,16500
|
|
5
5
|
agno/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
6
|
agno/agent/__init__.py,sha256=s7S3FgsjZxuaabzi8L5n4aSH8IZAiZ7XaNNcySGR-EQ,1051
|
|
7
|
-
agno/agent/agent.py,sha256=
|
|
7
|
+
agno/agent/agent.py,sha256=IpveWi4IXf3jh8mWbUxVSLOY-pwEOe0waw8ebpafu34,345232
|
|
8
8
|
agno/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
9
|
agno/api/agent.py,sha256=fKlQ62E_C9Rjd7Zus3Gs3R1RG-IhzFV-ICpkb6SLqYc,932
|
|
10
10
|
agno/api/api.py,sha256=Z7iWbrjheJcGLeeDYrtTCWiKTVqjH0uJI35UNWOtAXw,973
|
|
@@ -31,9 +31,9 @@ agno/db/__init__.py,sha256=bfd_tpKsIKCjZosnFqID26VoWqy88v8gzkf9kLHToY4,625
|
|
|
31
31
|
agno/db/base.py,sha256=fGNdKHixsHjfVYQo3NxTiDQBFCvOxChUJynAQmih7NY,8670
|
|
32
32
|
agno/db/utils.py,sha256=eL0prfDrTEfOwNlOZeoZE4pu59bNJET22uh8wgzz-cw,4879
|
|
33
33
|
agno/db/dynamo/__init__.py,sha256=fZ7NwKbyhoIu7_4T6hVz44HkIINXMnTfFrDrgB6bpEo,67
|
|
34
|
-
agno/db/dynamo/dynamo.py,sha256=
|
|
35
|
-
agno/db/dynamo/schemas.py,sha256=
|
|
36
|
-
agno/db/dynamo/utils.py,sha256=
|
|
34
|
+
agno/db/dynamo/dynamo.py,sha256=jVV65rG1b5bAf03yfPkRBfuXMLl4Go9Q3u9NM7VBwtc,71546
|
|
35
|
+
agno/db/dynamo/schemas.py,sha256=vCB9-BN255muGpw5wt-5aolm8rHO5QI2SEfwfSc2HeY,11079
|
|
36
|
+
agno/db/dynamo/utils.py,sha256=WnFKxZJtnfyJ6rdU2oUCofUyFqjlo2_hB9Q5fkez8V4,25058
|
|
37
37
|
agno/db/firestore/__init__.py,sha256=lYAJjUs4jMxJFty1GYZw464K35zeuBlcoFR9uuIQYtI,79
|
|
38
38
|
agno/db/firestore/firestore.py,sha256=Z548061P68EeyH7H8RexEgn6i2W6DLSjDO9dz3A7OZA,61505
|
|
39
39
|
agno/db/firestore/schemas.py,sha256=k8YuG_PC_Hd3WCLaDkk4bAJP8BmAWmrt6VXuG1wr2Ak,4132
|
|
@@ -112,7 +112,7 @@ agno/knowledge/embedder/aws_bedrock.py,sha256=tqWp-BFnZvyOSusuN1OZ-TXtt6nZWFzZu6
|
|
|
112
112
|
agno/knowledge/embedder/azure_openai.py,sha256=TTIWlrPhhPsjspbecmgKoBlTRyKlUTzurEF1QCehQCs,8522
|
|
113
113
|
agno/knowledge/embedder/base.py,sha256=PUyo0zzk1TlImKsmWORLhc74rNSEKIQcMcjP1sE7Pyk,746
|
|
114
114
|
agno/knowledge/embedder/cohere.py,sha256=riT-Q7sGaG-BgkYtaq9ONXLuoUt99TncOWLzfOSWwtE,14499
|
|
115
|
-
agno/knowledge/embedder/fastembed.py,sha256=
|
|
115
|
+
agno/knowledge/embedder/fastembed.py,sha256=yE3eBXusFhDugGbhAUfGZn2IDWw5_bwVKeDEuNg9wH4,2106
|
|
116
116
|
agno/knowledge/embedder/fireworks.py,sha256=Om3RQ95FCtTYdn52vrJfnZomkVHpAI2HaW2fxhsk0EM,387
|
|
117
117
|
agno/knowledge/embedder/google.py,sha256=i4H8RJ-baWAU_QObCvupuuGDJobdUNfhPy3rxzCNIQA,10945
|
|
118
118
|
agno/knowledge/embedder/huggingface.py,sha256=eQEVHb6jh_OiR985JR88lZvtrtilI-NcQRgCliVucCo,3572
|
|
@@ -242,14 +242,14 @@ agno/models/vllm/vllm.py,sha256=UtiiSvUR4pG_1CzuhY5MWduRgzM2hGVTakKJ6ZBdQmo,2730
|
|
|
242
242
|
agno/models/xai/__init__.py,sha256=ukcCxnCHxTtkJNA2bAMTX4MhCv1wJcbiq8ZIfYczIxs,55
|
|
243
243
|
agno/models/xai/xai.py,sha256=jA6_39tfapkjkHKdzbKaNq1t9qIvO1IaZY1hQqEmFVs,4181
|
|
244
244
|
agno/os/__init__.py,sha256=h8oQu7vhD5RZf09jkyM_Kt1Kdq_d5kFB9gJju8QPwcY,55
|
|
245
|
-
agno/os/app.py,sha256=
|
|
245
|
+
agno/os/app.py,sha256=kTUhb-NaUyX5UP-A2rzaAD1xntd3TXwl2sY3qWGQIcg,26540
|
|
246
246
|
agno/os/auth.py,sha256=FyBtAKWtg-qSunCas5m5pK1dVEmikOSZvcCp5r25tTA,1844
|
|
247
247
|
agno/os/config.py,sha256=u4R9yazQXIcKjR3QzEIZw_XAe_OHp3xn0ff7SVkj2jA,2893
|
|
248
248
|
agno/os/mcp.py,sha256=BQk3EXCyU3-KHJn7829aOs7txV9TE3p7bwPlYJ7iFGc,8125
|
|
249
249
|
agno/os/router.py,sha256=-w_VXQm2QscNAAeDehAgQ9CStNpPr06qhPmYYhiZslM,69930
|
|
250
|
-
agno/os/schema.py,sha256=
|
|
250
|
+
agno/os/schema.py,sha256=ln1kiOW6gNhPumCEyidLhecWKZhbIOJlfbEK-5J1Yu8,38362
|
|
251
251
|
agno/os/settings.py,sha256=Cn5_8lZI8Vx1UaUYqs9h6Qp4IMDFn4f3c35uppiaMy4,1343
|
|
252
|
-
agno/os/utils.py,sha256=
|
|
252
|
+
agno/os/utils.py,sha256=pS_fWQT7SJeYPAia5e8Dj8YjtIXPD-fAHnnQk23Merg,17907
|
|
253
253
|
agno/os/interfaces/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
254
254
|
agno/os/interfaces/base.py,sha256=vXkr1tRjWHTcmBlQFzvQjqURLhObmFtUAx82uij_j48,542
|
|
255
255
|
agno/os/interfaces/a2a/__init__.py,sha256=Fs7--dx9drvtVS9QjsCCm0P7c-hJ7TzU8gNwKTQsZDA,62
|
|
@@ -259,7 +259,7 @@ agno/os/interfaces/a2a/utils.py,sha256=rTn9x0UGbX53EiAsljf87PmzYwLuvqaobUWpCn35u
|
|
|
259
259
|
agno/os/interfaces/agui/__init__.py,sha256=1zrGICk4roXUINwSFZfqH6sBsbHmD5KjGYVJMGg4fKQ,66
|
|
260
260
|
agno/os/interfaces/agui/agui.py,sha256=PKGoDDbtQFmEC0zRwZmsjS_5t9bJWJ-ZGwxEQsu9P-U,1415
|
|
261
261
|
agno/os/interfaces/agui/router.py,sha256=TBVADofGBw16x0wSF-aOEfNrebNtoX_WzHENcKsnu6s,4835
|
|
262
|
-
agno/os/interfaces/agui/utils.py,sha256=
|
|
262
|
+
agno/os/interfaces/agui/utils.py,sha256=sPjguuHCrrWS_V22o73fAhl6gX0Y2uXjN0gRRBQa3r8,19372
|
|
263
263
|
agno/os/interfaces/slack/__init__.py,sha256=F095kOcgiyk_KzIozNNieKwpVc_NR8HYpuO4bKiCNN0,70
|
|
264
264
|
agno/os/interfaces/slack/router.py,sha256=RuD0Y0YOdlyqaj37W5outpM7dHTlEX6R63V4IrETSYc,5710
|
|
265
265
|
agno/os/interfaces/slack/security.py,sha256=nMbW_0g-G_DEMbCQOD8C3PYrRPIpB2cyM6P-xS6GHYk,917
|
|
@@ -308,9 +308,9 @@ agno/session/__init__.py,sha256=p6eqzWcLSHiMex2yZvkwv2yrFUNdGs21TGMS49xrEC4,376
|
|
|
308
308
|
agno/session/agent.py,sha256=vut3IwCivUu0vvuht_1c3rUhW61NZee6whxDQUsEkUM,9756
|
|
309
309
|
agno/session/summary.py,sha256=THBbzE48V81p4dKUX2W8OvbpsNO5dI6BdtqDyjfcVqw,8433
|
|
310
310
|
agno/session/team.py,sha256=0lS-9ljtG17iyC0n8sq_7aEy9MZsdfMf8VgObqJ_3tg,10384
|
|
311
|
-
agno/session/workflow.py,sha256
|
|
311
|
+
agno/session/workflow.py,sha256=-wvyKB_MmWCvyxDl8pzp7Bf9lBLW9xu3SGHk-4lyxvA,7421
|
|
312
312
|
agno/team/__init__.py,sha256=toHidBOo5M3n_TIVtIKHgcDbLL9HR-_U-YQYuIt_XtE,847
|
|
313
|
-
agno/team/team.py,sha256=
|
|
313
|
+
agno/team/team.py,sha256=PerwVgXr95YrWQBWljxntCbPuH5i0uEf5JnPm0p8qt8,334992
|
|
314
314
|
agno/tools/__init__.py,sha256=jNll2sELhPPbqm5nPeT4_uyzRO2_KRTW-8Or60kioS0,210
|
|
315
315
|
agno/tools/agentql.py,sha256=S82Z9aTNr-E5wnA4fbFs76COljJtiQIjf2grjz3CkHU,4104
|
|
316
316
|
agno/tools/airflow.py,sha256=uf2rOzZpSU64l_qRJ5Raku-R3Gky-uewmYkh6W0-oxg,2610
|
|
@@ -350,11 +350,12 @@ agno/tools/file.py,sha256=SVikIqRyxGW7byyqk0GSuz4KCUZGxZEsE_EK8ag3aak,4406
|
|
|
350
350
|
agno/tools/file_generation.py,sha256=OMRG1CkpnZTCMxnKXGHfkfdXUYEur9jsdyCNxujWHS4,13896
|
|
351
351
|
agno/tools/financial_datasets.py,sha256=NiXwyiYIFCawI8rR7JLJNIfwoQlranUeCcABHKhLHfw,9190
|
|
352
352
|
agno/tools/firecrawl.py,sha256=sMV6XRaSIyTSkTJbtMdIQPTsN11ozJ78YDDi04kBvQE,5341
|
|
353
|
-
agno/tools/function.py,sha256=
|
|
353
|
+
agno/tools/function.py,sha256=QDbGgK8BYvFHuPRnVxMb-bXCao8z1hvkwBm8eaKe4m0,45671
|
|
354
354
|
agno/tools/giphy.py,sha256=_wOCWVnMdFByE9Yoz4Pf2MoKxSjkUTiPJZ928_BNe2M,3070
|
|
355
355
|
agno/tools/github.py,sha256=wct6P00YzF3zgWoV2c5aHeXX_2dgb9LqRwJAboi6QXw,70286
|
|
356
356
|
agno/tools/gmail.py,sha256=MlLlEvxHly_2oKAZaKxXDmoHLTbWDSXcjOASGt7RpY8,28067
|
|
357
357
|
agno/tools/google_bigquery.py,sha256=j0c14CgGK8KvD7eEirsdAx7RSwcfMheugn84ySq6miU,4483
|
|
358
|
+
agno/tools/google_drive.py,sha256=dxGr_NhMsqFsr_tR3w4MgLXm7_nlCTI43sCmKw60N_4,11159
|
|
358
359
|
agno/tools/google_maps.py,sha256=AqPEIt4u6B2kQtzOnL5PH3RXoefCfjT_Uvm3coAqzaY,9513
|
|
359
360
|
agno/tools/googlecalendar.py,sha256=s8BPKvDZGeLD2idlQG-vqDqVpza6PupF5AzAElnAK_M,27457
|
|
360
361
|
agno/tools/googlesearch.py,sha256=xRuaEqn7N6JIQC6z9jFuA0Kdtoe5MafGqRMtZ8jW2AQ,3566
|
|
@@ -484,7 +485,7 @@ agno/utils/models/watsonx.py,sha256=fe6jN0hBvOCQurqjS6_9PIwDHt-4kVod9qW236Zs6DU,
|
|
|
484
485
|
agno/utils/print_response/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
485
486
|
agno/utils/print_response/agent.py,sha256=Er4YxWTMsSewC0Ckr0woabyOzT0XyLNzmXuItyuCa4s,35789
|
|
486
487
|
agno/utils/print_response/team.py,sha256=b1JzAS_oskX_0aw2Xw4JPtNLoOyWUBT_g2JToWhPT70,78659
|
|
487
|
-
agno/utils/print_response/workflow.py,sha256=
|
|
488
|
+
agno/utils/print_response/workflow.py,sha256=OwSodeoUhWHBKWZlv2eObPl0brzV_LndFrPEHn518Lc,72083
|
|
488
489
|
agno/vectordb/__init__.py,sha256=P0QP9PUC4j2JtWIfYJX7LeC-oiPuh_QsUaOaP1ZY_dI,64
|
|
489
490
|
agno/vectordb/base.py,sha256=y5kqBiIp2atgcvV-_NXNXcX6NZFqJZibBaqbkWhtFTk,3054
|
|
490
491
|
agno/vectordb/distance.py,sha256=OjpKSq57_gblZm4VGZTV7B7le45r_2-Fp1X4Hilx1M4,131
|
|
@@ -530,16 +531,16 @@ agno/vectordb/weaviate/__init__.py,sha256=FIoFJgqSmGuFgpvmsg8EjAn8FDAhuqAXed7fja
|
|
|
530
531
|
agno/vectordb/weaviate/index.py,sha256=y4XYPRZFksMfrrF85B4hn5AtmXM4SH--4CyLo27EHgM,253
|
|
531
532
|
agno/vectordb/weaviate/weaviate.py,sha256=ZXK81-mTZmPUzUi2U6B5oY2vvJ5eWCv2HqrwinijUZM,38638
|
|
532
533
|
agno/workflow/__init__.py,sha256=lwavZXIkgqajbSf1jMqzE7kbXBIFmk5niI_NgpVI-gA,542
|
|
533
|
-
agno/workflow/condition.py,sha256=
|
|
534
|
-
agno/workflow/loop.py,sha256=
|
|
535
|
-
agno/workflow/parallel.py,sha256=
|
|
536
|
-
agno/workflow/router.py,sha256=
|
|
537
|
-
agno/workflow/step.py,sha256=
|
|
538
|
-
agno/workflow/steps.py,sha256=
|
|
539
|
-
agno/workflow/types.py,sha256=
|
|
540
|
-
agno/workflow/workflow.py,sha256=
|
|
541
|
-
agno-2.1.
|
|
542
|
-
agno-2.1.
|
|
543
|
-
agno-2.1.
|
|
544
|
-
agno-2.1.
|
|
545
|
-
agno-2.1.
|
|
534
|
+
agno/workflow/condition.py,sha256=xsBExYiZzE-hs77Ze1pq5mmhraZfdMcRClM4QSJfVGQ,29898
|
|
535
|
+
agno/workflow/loop.py,sha256=2RRPSU_Xb7MiM6t5ETtWUwCabji4LWCR1XpyydrdzvM,32081
|
|
536
|
+
agno/workflow/parallel.py,sha256=atFbBNOGfby13YjmUdgrNj-OSfweCTmybcbakTSJBsw,34619
|
|
537
|
+
agno/workflow/router.py,sha256=8MhZjbzD9RtwToT9JF43xTl_ZV1o6U2A0xMkabgER0M,28071
|
|
538
|
+
agno/workflow/step.py,sha256=smLxC82EoM-lG1ghr_b6kxSqIiQRnR2M_IJo7t4c_co,57761
|
|
539
|
+
agno/workflow/steps.py,sha256=ePZd8hct1sEdGDwkXz7YWl6FjOlizY73aHpJuClVqEE,25165
|
|
540
|
+
agno/workflow/types.py,sha256=XZP9wNEsNE88zr9hhmKMHOpTEEY_UmH71AZRM43a5EY,18662
|
|
541
|
+
agno/workflow/workflow.py,sha256=3WhwXZ2u1a-fH7gx541yHW-n3DzW3Kz2ZLPBxmi4XPE,125776
|
|
542
|
+
agno-2.1.4.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
|
|
543
|
+
agno-2.1.4.dist-info/METADATA,sha256=hs_9_lcrU0lxE7-5tiHhy4Xp1rjQr1eLO4qGs5hQzeM,22009
|
|
544
|
+
agno-2.1.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
545
|
+
agno-2.1.4.dist-info/top_level.txt,sha256=MKyeuVesTyOKIXUhc-d_tPa2Hrh0oTA4LM0izowpx70,5
|
|
546
|
+
agno-2.1.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|