agno 2.2.9__py3-none-any.whl → 2.2.11__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 +27 -5
- agno/db/dynamo/utils.py +1 -1
- agno/db/firestore/utils.py +1 -1
- agno/db/gcs_json/utils.py +1 -1
- agno/db/in_memory/utils.py +1 -1
- agno/db/json/utils.py +1 -1
- agno/db/mongo/utils.py +3 -3
- agno/db/mysql/utils.py +1 -1
- agno/db/postgres/utils.py +1 -1
- agno/db/redis/utils.py +1 -1
- agno/db/singlestore/utils.py +1 -1
- agno/db/sqlite/utils.py +1 -1
- agno/knowledge/chunking/agentic.py +8 -9
- agno/knowledge/chunking/strategy.py +59 -15
- agno/knowledge/embedder/sentence_transformer.py +6 -2
- agno/knowledge/reader/base.py +6 -2
- agno/knowledge/utils.py +20 -0
- agno/models/anthropic/claude.py +45 -9
- agno/models/base.py +4 -0
- agno/os/app.py +35 -19
- agno/os/routers/health.py +5 -3
- agno/os/routers/knowledge/knowledge.py +43 -17
- agno/os/routers/knowledge/schemas.py +4 -3
- agno/run/agent.py +11 -1
- agno/team/team.py +20 -3
- agno/tools/file_generation.py +4 -4
- agno/tools/gmail.py +179 -0
- agno/tools/parallel.py +314 -0
- agno/utils/models/claude.py +2 -1
- agno/workflow/agent.py +2 -2
- agno/workflow/condition.py +26 -4
- agno/workflow/loop.py +9 -0
- agno/workflow/parallel.py +39 -16
- agno/workflow/router.py +25 -4
- agno/workflow/step.py +163 -91
- agno/workflow/steps.py +9 -0
- agno/workflow/types.py +20 -1
- agno/workflow/workflow.py +117 -30
- {agno-2.2.9.dist-info → agno-2.2.11.dist-info}/METADATA +4 -1
- {agno-2.2.9.dist-info → agno-2.2.11.dist-info}/RECORD +43 -42
- {agno-2.2.9.dist-info → agno-2.2.11.dist-info}/WHEEL +0 -0
- {agno-2.2.9.dist-info → agno-2.2.11.dist-info}/licenses/LICENSE +0 -0
- {agno-2.2.9.dist-info → agno-2.2.11.dist-info}/top_level.txt +0 -0
agno/workflow/workflow.py
CHANGED
|
@@ -975,6 +975,7 @@ class Workflow:
|
|
|
975
975
|
) -> "WorkflowRunOutputEvent":
|
|
976
976
|
"""Handle workflow events for storage - similar to Team._handle_event"""
|
|
977
977
|
from agno.run.agent import RunOutput
|
|
978
|
+
from agno.run.base import BaseRunOutputEvent
|
|
978
979
|
from agno.run.team import TeamRunOutput
|
|
979
980
|
|
|
980
981
|
if isinstance(event, (RunOutput, TeamRunOutput)):
|
|
@@ -993,10 +994,10 @@ class Workflow:
|
|
|
993
994
|
return event
|
|
994
995
|
|
|
995
996
|
# Store the event
|
|
996
|
-
if
|
|
997
|
-
workflow_run_response.events
|
|
998
|
-
|
|
999
|
-
|
|
997
|
+
if isinstance(event, BaseRunOutputEvent):
|
|
998
|
+
if workflow_run_response.events is None:
|
|
999
|
+
workflow_run_response.events = []
|
|
1000
|
+
workflow_run_response.events.append(event)
|
|
1000
1001
|
|
|
1001
1002
|
# Broadcast to WebSocket if available (async context only)
|
|
1002
1003
|
self._broadcast_to_websocket(event, websocket_handler)
|
|
@@ -1135,7 +1136,11 @@ class Workflow:
|
|
|
1135
1136
|
else:
|
|
1136
1137
|
return len(self.steps)
|
|
1137
1138
|
|
|
1138
|
-
def _aggregate_workflow_metrics(
|
|
1139
|
+
def _aggregate_workflow_metrics(
|
|
1140
|
+
self,
|
|
1141
|
+
step_results: List[Union[StepOutput, List[StepOutput]]],
|
|
1142
|
+
current_workflow_metrics: Optional[WorkflowMetrics] = None,
|
|
1143
|
+
) -> WorkflowMetrics:
|
|
1139
1144
|
"""Aggregate metrics from all step responses into structured workflow metrics"""
|
|
1140
1145
|
steps_dict = {}
|
|
1141
1146
|
|
|
@@ -1163,8 +1168,13 @@ class Workflow:
|
|
|
1163
1168
|
for step_result in step_results:
|
|
1164
1169
|
process_step_output(cast(StepOutput, step_result))
|
|
1165
1170
|
|
|
1171
|
+
duration = None
|
|
1172
|
+
if current_workflow_metrics and current_workflow_metrics.duration is not None:
|
|
1173
|
+
duration = current_workflow_metrics.duration
|
|
1174
|
+
|
|
1166
1175
|
return WorkflowMetrics(
|
|
1167
1176
|
steps=steps_dict,
|
|
1177
|
+
duration=duration,
|
|
1168
1178
|
)
|
|
1169
1179
|
|
|
1170
1180
|
def _call_custom_function(self, func: Callable, execution_input: WorkflowExecutionInput, **kwargs: Any) -> Any:
|
|
@@ -1283,7 +1293,7 @@ class Workflow:
|
|
|
1283
1293
|
session_id=session.session_id,
|
|
1284
1294
|
user_id=self.user_id,
|
|
1285
1295
|
workflow_run_response=workflow_run_response,
|
|
1286
|
-
|
|
1296
|
+
run_context=run_context,
|
|
1287
1297
|
store_executor_outputs=self.store_executor_outputs,
|
|
1288
1298
|
workflow_session=session,
|
|
1289
1299
|
add_workflow_history_to_steps=self.add_workflow_history_to_steps
|
|
@@ -1315,7 +1325,14 @@ class Workflow:
|
|
|
1315
1325
|
|
|
1316
1326
|
# Update the workflow_run_response with completion data
|
|
1317
1327
|
if collected_step_outputs:
|
|
1318
|
-
|
|
1328
|
+
# Stop the timer for the Run duration
|
|
1329
|
+
if workflow_run_response.metrics:
|
|
1330
|
+
workflow_run_response.metrics.stop_timer()
|
|
1331
|
+
|
|
1332
|
+
workflow_run_response.metrics = self._aggregate_workflow_metrics(
|
|
1333
|
+
collected_step_outputs,
|
|
1334
|
+
workflow_run_response.metrics, # type: ignore[arg-type]
|
|
1335
|
+
)
|
|
1319
1336
|
last_output = cast(StepOutput, collected_step_outputs[-1])
|
|
1320
1337
|
|
|
1321
1338
|
# Use deepest nested content if this is a container (Steps/Router/Loop/etc.)
|
|
@@ -1360,6 +1377,10 @@ class Workflow:
|
|
|
1360
1377
|
raise e
|
|
1361
1378
|
|
|
1362
1379
|
finally:
|
|
1380
|
+
# Stop timer on error
|
|
1381
|
+
if workflow_run_response.metrics:
|
|
1382
|
+
workflow_run_response.metrics.stop_timer()
|
|
1383
|
+
|
|
1363
1384
|
self._update_session_metrics(session=session, workflow_run_response=workflow_run_response)
|
|
1364
1385
|
session.upsert_run(run=workflow_run_response)
|
|
1365
1386
|
self.save_session(session=session)
|
|
@@ -1468,7 +1489,7 @@ class Workflow:
|
|
|
1468
1489
|
stream_events=stream_events,
|
|
1469
1490
|
stream_executor_events=self.stream_executor_events,
|
|
1470
1491
|
workflow_run_response=workflow_run_response,
|
|
1471
|
-
|
|
1492
|
+
run_context=run_context,
|
|
1472
1493
|
step_index=i,
|
|
1473
1494
|
store_executor_outputs=self.store_executor_outputs,
|
|
1474
1495
|
workflow_session=session,
|
|
@@ -1550,7 +1571,14 @@ class Workflow:
|
|
|
1550
1571
|
|
|
1551
1572
|
# Update the workflow_run_response with completion data
|
|
1552
1573
|
if collected_step_outputs:
|
|
1553
|
-
|
|
1574
|
+
# Stop the timer for the Run duration
|
|
1575
|
+
if workflow_run_response.metrics:
|
|
1576
|
+
workflow_run_response.metrics.stop_timer()
|
|
1577
|
+
|
|
1578
|
+
workflow_run_response.metrics = self._aggregate_workflow_metrics(
|
|
1579
|
+
collected_step_outputs,
|
|
1580
|
+
workflow_run_response.metrics, # type: ignore[arg-type]
|
|
1581
|
+
)
|
|
1554
1582
|
last_output = cast(StepOutput, collected_step_outputs[-1])
|
|
1555
1583
|
|
|
1556
1584
|
# Use deepest nested content if this is a container (Steps/Router/Loop/etc.)
|
|
@@ -1617,7 +1645,14 @@ class Workflow:
|
|
|
1617
1645
|
# Preserve all progress (completed steps + partial step) before cancellation
|
|
1618
1646
|
if collected_step_outputs:
|
|
1619
1647
|
workflow_run_response.step_results = collected_step_outputs
|
|
1620
|
-
|
|
1648
|
+
# Stop the timer for the Run duration
|
|
1649
|
+
if workflow_run_response.metrics:
|
|
1650
|
+
workflow_run_response.metrics.stop_timer()
|
|
1651
|
+
|
|
1652
|
+
workflow_run_response.metrics = self._aggregate_workflow_metrics(
|
|
1653
|
+
collected_step_outputs,
|
|
1654
|
+
workflow_run_response.metrics, # type: ignore[arg-type]
|
|
1655
|
+
)
|
|
1621
1656
|
|
|
1622
1657
|
cancelled_event = WorkflowCancelledEvent(
|
|
1623
1658
|
run_id=workflow_run_response.run_id or "",
|
|
@@ -1659,6 +1694,10 @@ class Workflow:
|
|
|
1659
1694
|
)
|
|
1660
1695
|
yield self._handle_event(workflow_completed_event, workflow_run_response)
|
|
1661
1696
|
|
|
1697
|
+
# Stop timer on error
|
|
1698
|
+
if workflow_run_response.metrics:
|
|
1699
|
+
workflow_run_response.metrics.stop_timer()
|
|
1700
|
+
|
|
1662
1701
|
# Store the completed workflow response
|
|
1663
1702
|
self._update_session_metrics(session=session, workflow_run_response=workflow_run_response)
|
|
1664
1703
|
session.upsert_run(run=workflow_run_response)
|
|
@@ -1748,15 +1787,15 @@ class Workflow:
|
|
|
1748
1787
|
user_id: Optional[str],
|
|
1749
1788
|
execution_input: WorkflowExecutionInput,
|
|
1750
1789
|
workflow_run_response: WorkflowRunOutput,
|
|
1751
|
-
|
|
1790
|
+
run_context: RunContext,
|
|
1752
1791
|
**kwargs: Any,
|
|
1753
1792
|
) -> WorkflowRunOutput:
|
|
1754
1793
|
"""Execute a specific pipeline by name asynchronously"""
|
|
1755
1794
|
from inspect import isasyncgenfunction, iscoroutinefunction, isgeneratorfunction
|
|
1756
1795
|
|
|
1757
1796
|
# Read existing session from database
|
|
1758
|
-
workflow_session, session_state = await self._aload_or_create_session(
|
|
1759
|
-
session_id=session_id, user_id=user_id, session_state=session_state
|
|
1797
|
+
workflow_session, run_context.session_state = await self._aload_or_create_session(
|
|
1798
|
+
session_id=session_id, user_id=user_id, session_state=run_context.session_state
|
|
1760
1799
|
)
|
|
1761
1800
|
|
|
1762
1801
|
workflow_run_response.status = RunStatus.running
|
|
@@ -1830,7 +1869,7 @@ class Workflow:
|
|
|
1830
1869
|
session_id=session_id,
|
|
1831
1870
|
user_id=self.user_id,
|
|
1832
1871
|
workflow_run_response=workflow_run_response,
|
|
1833
|
-
|
|
1872
|
+
run_context=run_context,
|
|
1834
1873
|
store_executor_outputs=self.store_executor_outputs,
|
|
1835
1874
|
workflow_session=workflow_session,
|
|
1836
1875
|
add_workflow_history_to_steps=self.add_workflow_history_to_steps
|
|
@@ -1862,7 +1901,14 @@ class Workflow:
|
|
|
1862
1901
|
|
|
1863
1902
|
# Update the workflow_run_response with completion data
|
|
1864
1903
|
if collected_step_outputs:
|
|
1865
|
-
|
|
1904
|
+
# Stop the timer for the Run duration
|
|
1905
|
+
if workflow_run_response.metrics:
|
|
1906
|
+
workflow_run_response.metrics.stop_timer()
|
|
1907
|
+
|
|
1908
|
+
workflow_run_response.metrics = self._aggregate_workflow_metrics(
|
|
1909
|
+
collected_step_outputs,
|
|
1910
|
+
workflow_run_response.metrics, # type: ignore[arg-type]
|
|
1911
|
+
)
|
|
1866
1912
|
last_output = cast(StepOutput, collected_step_outputs[-1])
|
|
1867
1913
|
|
|
1868
1914
|
# Use deepest nested content if this is a container (Steps/Router/Loop/etc.)
|
|
@@ -1902,6 +1948,10 @@ class Workflow:
|
|
|
1902
1948
|
workflow_run_response.content = f"Workflow execution failed: {e}"
|
|
1903
1949
|
raise e
|
|
1904
1950
|
|
|
1951
|
+
# Stop timer on error
|
|
1952
|
+
if workflow_run_response.metrics:
|
|
1953
|
+
workflow_run_response.metrics.stop_timer()
|
|
1954
|
+
|
|
1905
1955
|
self._update_session_metrics(session=workflow_session, workflow_run_response=workflow_run_response)
|
|
1906
1956
|
workflow_session.upsert_run(run=workflow_run_response)
|
|
1907
1957
|
if self._has_async_db():
|
|
@@ -1923,7 +1973,7 @@ class Workflow:
|
|
|
1923
1973
|
user_id: Optional[str],
|
|
1924
1974
|
execution_input: WorkflowExecutionInput,
|
|
1925
1975
|
workflow_run_response: WorkflowRunOutput,
|
|
1926
|
-
|
|
1976
|
+
run_context: RunContext,
|
|
1927
1977
|
stream_events: bool = False,
|
|
1928
1978
|
websocket_handler: Optional[WebSocketHandler] = None,
|
|
1929
1979
|
**kwargs: Any,
|
|
@@ -1932,8 +1982,8 @@ class Workflow:
|
|
|
1932
1982
|
from inspect import isasyncgenfunction, iscoroutinefunction, isgeneratorfunction
|
|
1933
1983
|
|
|
1934
1984
|
# Read existing session from database
|
|
1935
|
-
workflow_session, session_state = await self._aload_or_create_session(
|
|
1936
|
-
session_id=session_id, user_id=user_id, session_state=session_state
|
|
1985
|
+
workflow_session, run_context.session_state = await self._aload_or_create_session(
|
|
1986
|
+
session_id=session_id, user_id=user_id, session_state=run_context.session_state
|
|
1937
1987
|
)
|
|
1938
1988
|
|
|
1939
1989
|
workflow_run_response.status = RunStatus.running
|
|
@@ -2028,7 +2078,7 @@ class Workflow:
|
|
|
2028
2078
|
stream_events=stream_events,
|
|
2029
2079
|
stream_executor_events=self.stream_executor_events,
|
|
2030
2080
|
workflow_run_response=workflow_run_response,
|
|
2031
|
-
|
|
2081
|
+
run_context=run_context,
|
|
2032
2082
|
step_index=i,
|
|
2033
2083
|
store_executor_outputs=self.store_executor_outputs,
|
|
2034
2084
|
workflow_session=workflow_session,
|
|
@@ -2113,7 +2163,14 @@ class Workflow:
|
|
|
2113
2163
|
|
|
2114
2164
|
# Update the workflow_run_response with completion data
|
|
2115
2165
|
if collected_step_outputs:
|
|
2116
|
-
|
|
2166
|
+
# Stop the timer for the Run duration
|
|
2167
|
+
if workflow_run_response.metrics:
|
|
2168
|
+
workflow_run_response.metrics.stop_timer()
|
|
2169
|
+
|
|
2170
|
+
workflow_run_response.metrics = self._aggregate_workflow_metrics(
|
|
2171
|
+
collected_step_outputs,
|
|
2172
|
+
workflow_run_response.metrics, # type: ignore[arg-type]
|
|
2173
|
+
)
|
|
2117
2174
|
last_output = cast(StepOutput, collected_step_outputs[-1])
|
|
2118
2175
|
|
|
2119
2176
|
# Use deepest nested content if this is a container (Steps/Router/Loop/etc.)
|
|
@@ -2180,7 +2237,14 @@ class Workflow:
|
|
|
2180
2237
|
# Preserve all progress (completed steps + partial step) before cancellation
|
|
2181
2238
|
if collected_step_outputs:
|
|
2182
2239
|
workflow_run_response.step_results = collected_step_outputs
|
|
2183
|
-
|
|
2240
|
+
# Stop the timer for the Run duration
|
|
2241
|
+
if workflow_run_response.metrics:
|
|
2242
|
+
workflow_run_response.metrics.stop_timer()
|
|
2243
|
+
|
|
2244
|
+
workflow_run_response.metrics = self._aggregate_workflow_metrics(
|
|
2245
|
+
collected_step_outputs,
|
|
2246
|
+
workflow_run_response.metrics, # type: ignore[arg-type]
|
|
2247
|
+
)
|
|
2184
2248
|
|
|
2185
2249
|
cancelled_event = WorkflowCancelledEvent(
|
|
2186
2250
|
run_id=workflow_run_response.run_id or "",
|
|
@@ -2226,6 +2290,10 @@ class Workflow:
|
|
|
2226
2290
|
)
|
|
2227
2291
|
yield self._handle_event(workflow_completed_event, workflow_run_response, websocket_handler=websocket_handler)
|
|
2228
2292
|
|
|
2293
|
+
# Stop timer on error
|
|
2294
|
+
if workflow_run_response.metrics:
|
|
2295
|
+
workflow_run_response.metrics.stop_timer()
|
|
2296
|
+
|
|
2229
2297
|
# Store the completed workflow response
|
|
2230
2298
|
self._update_session_metrics(session=workflow_session, workflow_run_response=workflow_run_response)
|
|
2231
2299
|
workflow_session.upsert_run(run=workflow_run_response)
|
|
@@ -2287,6 +2355,10 @@ class Workflow:
|
|
|
2287
2355
|
status=RunStatus.pending,
|
|
2288
2356
|
)
|
|
2289
2357
|
|
|
2358
|
+
# Start the run metrics timer
|
|
2359
|
+
workflow_run_response.metrics = WorkflowMetrics(steps={})
|
|
2360
|
+
workflow_run_response.metrics.start_timer()
|
|
2361
|
+
|
|
2290
2362
|
# Store PENDING response immediately
|
|
2291
2363
|
workflow_session.upsert_run(run=workflow_run_response)
|
|
2292
2364
|
if self._has_async_db():
|
|
@@ -2330,6 +2402,7 @@ class Workflow:
|
|
|
2330
2402
|
user_id=user_id,
|
|
2331
2403
|
execution_input=inputs,
|
|
2332
2404
|
workflow_run_response=workflow_run_response,
|
|
2405
|
+
run_context=run_context,
|
|
2333
2406
|
session_state=session_state,
|
|
2334
2407
|
**kwargs,
|
|
2335
2408
|
)
|
|
@@ -2400,6 +2473,10 @@ class Workflow:
|
|
|
2400
2473
|
status=RunStatus.pending,
|
|
2401
2474
|
)
|
|
2402
2475
|
|
|
2476
|
+
# Start the run metrics timer
|
|
2477
|
+
workflow_run_response.metrics = WorkflowMetrics(steps={})
|
|
2478
|
+
workflow_run_response.metrics.start_timer()
|
|
2479
|
+
|
|
2403
2480
|
# Prepare execution input
|
|
2404
2481
|
inputs = WorkflowExecutionInput(
|
|
2405
2482
|
input=input,
|
|
@@ -3382,14 +3459,6 @@ class Workflow:
|
|
|
3382
3459
|
# Update session state from DB
|
|
3383
3460
|
session_state = self._load_session_state(session=workflow_session, session_state=session_state)
|
|
3384
3461
|
|
|
3385
|
-
# Initialize run context
|
|
3386
|
-
run_context = RunContext(
|
|
3387
|
-
run_id=run_id,
|
|
3388
|
-
session_id=session_id,
|
|
3389
|
-
user_id=user_id,
|
|
3390
|
-
session_state=session_state,
|
|
3391
|
-
)
|
|
3392
|
-
|
|
3393
3462
|
log_debug(f"Workflow Run Start: {self.name}", center=True)
|
|
3394
3463
|
|
|
3395
3464
|
# Use simple defaults
|
|
@@ -3422,6 +3491,14 @@ class Workflow:
|
|
|
3422
3491
|
|
|
3423
3492
|
self.update_agents_and_teams_session_info()
|
|
3424
3493
|
|
|
3494
|
+
# Initialize run context
|
|
3495
|
+
run_context = RunContext(
|
|
3496
|
+
run_id=run_id,
|
|
3497
|
+
session_id=session_id,
|
|
3498
|
+
user_id=user_id,
|
|
3499
|
+
session_state=session_state,
|
|
3500
|
+
)
|
|
3501
|
+
|
|
3425
3502
|
# Execute workflow agent if configured
|
|
3426
3503
|
if self.agent is not None:
|
|
3427
3504
|
return self._execute_workflow_agent(
|
|
@@ -3443,6 +3520,10 @@ class Workflow:
|
|
|
3443
3520
|
created_at=int(datetime.now().timestamp()),
|
|
3444
3521
|
)
|
|
3445
3522
|
|
|
3523
|
+
# Start the run metrics timer
|
|
3524
|
+
workflow_run_response.metrics = WorkflowMetrics(steps={})
|
|
3525
|
+
workflow_run_response.metrics.start_timer()
|
|
3526
|
+
|
|
3446
3527
|
if stream:
|
|
3447
3528
|
return self._execute_stream(
|
|
3448
3529
|
session=workflow_session,
|
|
@@ -3630,6 +3711,10 @@ class Workflow:
|
|
|
3630
3711
|
created_at=int(datetime.now().timestamp()),
|
|
3631
3712
|
)
|
|
3632
3713
|
|
|
3714
|
+
# Start the run metrics timer
|
|
3715
|
+
workflow_run_response.metrics = WorkflowMetrics(steps={})
|
|
3716
|
+
workflow_run_response.metrics.start_timer()
|
|
3717
|
+
|
|
3633
3718
|
if stream:
|
|
3634
3719
|
return self._aexecute_stream( # type: ignore
|
|
3635
3720
|
execution_input=inputs,
|
|
@@ -3640,6 +3725,7 @@ class Workflow:
|
|
|
3640
3725
|
websocket=websocket,
|
|
3641
3726
|
files=files,
|
|
3642
3727
|
session_state=session_state,
|
|
3728
|
+
run_context=run_context,
|
|
3643
3729
|
**kwargs,
|
|
3644
3730
|
)
|
|
3645
3731
|
else:
|
|
@@ -3651,6 +3737,7 @@ class Workflow:
|
|
|
3651
3737
|
websocket=websocket,
|
|
3652
3738
|
files=files,
|
|
3653
3739
|
session_state=session_state,
|
|
3740
|
+
run_context=run_context,
|
|
3654
3741
|
**kwargs,
|
|
3655
3742
|
)
|
|
3656
3743
|
|
|
@@ -3974,7 +4061,7 @@ class Workflow:
|
|
|
3974
4061
|
|
|
3975
4062
|
# If workflow has metrics, convert and add them to session metrics
|
|
3976
4063
|
if workflow_run_response.metrics:
|
|
3977
|
-
run_session_metrics = self._calculate_session_metrics_from_workflow_metrics(workflow_run_response.metrics)
|
|
4064
|
+
run_session_metrics = self._calculate_session_metrics_from_workflow_metrics(workflow_run_response.metrics) # type: ignore[arg-type]
|
|
3978
4065
|
|
|
3979
4066
|
session_metrics += run_session_metrics
|
|
3980
4067
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agno
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.11
|
|
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
|
|
@@ -165,6 +165,8 @@ Provides-Extra: notion
|
|
|
165
165
|
Requires-Dist: notion-client; extra == "notion"
|
|
166
166
|
Provides-Extra: opencv
|
|
167
167
|
Requires-Dist: opencv-python; extra == "opencv"
|
|
168
|
+
Provides-Extra: parallel
|
|
169
|
+
Requires-Dist: parallel-web; extra == "parallel"
|
|
168
170
|
Provides-Extra: psycopg
|
|
169
171
|
Requires-Dist: psycopg-binary; extra == "psycopg"
|
|
170
172
|
Requires-Dist: psycopg; extra == "psycopg"
|
|
@@ -316,6 +318,7 @@ Requires-Dist: agno[mcp]; extra == "tools"
|
|
|
316
318
|
Requires-Dist: agno[browserbase]; extra == "tools"
|
|
317
319
|
Requires-Dist: agno[agentql]; extra == "tools"
|
|
318
320
|
Requires-Dist: agno[opencv]; extra == "tools"
|
|
321
|
+
Requires-Dist: agno[parallel]; extra == "tools"
|
|
319
322
|
Requires-Dist: agno[scrapegraph]; extra == "tools"
|
|
320
323
|
Requires-Dist: agno[valyu]; extra == "tools"
|
|
321
324
|
Requires-Dist: agno[confluence]; extra == "tools"
|
|
@@ -4,7 +4,7 @@ agno/exceptions.py,sha256=7xqLur8sWHugnViIJz4PvPKSHljSiVKNAqaKQOJgZiU,4982
|
|
|
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=q8TvuR0AC_cCnzMPijB9a6bGU3WkP90RDeLnVgsARdY,458456
|
|
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
|
|
@@ -36,40 +36,40 @@ agno/db/async_postgres/__init__.py,sha256=ja_thcYP3bP0DD3da6iUVDR_w2-S6B3M-UxBlk
|
|
|
36
36
|
agno/db/dynamo/__init__.py,sha256=fZ7NwKbyhoIu7_4T6hVz44HkIINXMnTfFrDrgB6bpEo,67
|
|
37
37
|
agno/db/dynamo/dynamo.py,sha256=omSEJJ3bp6vQIeahOYv1ZpYu_GstZyY5wTEyyqpxsG8,77967
|
|
38
38
|
agno/db/dynamo/schemas.py,sha256=go5a3VyShqNUzk9jBf-YQ-_5LKGnoP7zPk8taX0mlz4,12992
|
|
39
|
-
agno/db/dynamo/utils.py,sha256=
|
|
39
|
+
agno/db/dynamo/utils.py,sha256=hF6Sta-cStS-0OThuZRBsK7NlKq8cNpkatgRN4pqJqU,27400
|
|
40
40
|
agno/db/firestore/__init__.py,sha256=lYAJjUs4jMxJFty1GYZw464K35zeuBlcoFR9uuIQYtI,79
|
|
41
41
|
agno/db/firestore/firestore.py,sha256=Aty8wkI2oFN1-tZ18Izw7fN66HlQsH6XfALlWav_dJE,70882
|
|
42
42
|
agno/db/firestore/schemas.py,sha256=sPbi2teuzCfRECnCyj6LrNNu0drSqbBHpH-o1xoJYfs,4392
|
|
43
|
-
agno/db/firestore/utils.py,sha256=
|
|
43
|
+
agno/db/firestore/utils.py,sha256=vl7hwsOpaSgota0yN6DAQFHnviKvK670SOQme6gK-nI,13818
|
|
44
44
|
agno/db/gcs_json/__init__.py,sha256=aTR4o3aFrzfANHtRw7nX9uc5_GsY52ch0rmoo7uXuc4,76
|
|
45
45
|
agno/db/gcs_json/gcs_json_db.py,sha256=S2fDDWRD8195n9JzH3g8pIj1i_bYFr1CcDXk1OZn0Ao,54691
|
|
46
|
-
agno/db/gcs_json/utils.py,sha256
|
|
46
|
+
agno/db/gcs_json/utils.py,sha256=-vGa_C8n4BSZOLICn6SEGQAZ73Cd-ejB1X5NzEfXWN8,8014
|
|
47
47
|
agno/db/in_memory/__init__.py,sha256=OvR_FONhOh9PmcRfUA_6gvplZT5UGIBAgVKqVg6SWTA,80
|
|
48
48
|
agno/db/in_memory/in_memory_db.py,sha256=9XeYTxjL97BBNzrqDBfIDrbd3yn7q54Zcm_65ZDJ4F4,46126
|
|
49
|
-
agno/db/in_memory/utils.py,sha256=
|
|
49
|
+
agno/db/in_memory/utils.py,sha256=RaeOzP74UANG-xFzCGRb20jZ4wgp_MPSlvU0T5I1uVk,8067
|
|
50
50
|
agno/db/json/__init__.py,sha256=zyPTmVF9S-OwXCL7FSkrDmunZ_Q14YZO3NYUv1Pa14Y,62
|
|
51
51
|
agno/db/json/json_db.py,sha256=OdMYHoZ6QlLBFRsw6AqR1r6xJYsUIHc3GVI66Mzud90,52762
|
|
52
|
-
agno/db/json/utils.py,sha256=
|
|
52
|
+
agno/db/json/utils.py,sha256=ywD72LhxKl6yfmENKlOgCkw5W_XJ-oeOPSVvjsNnOy8,8062
|
|
53
53
|
agno/db/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
54
54
|
agno/db/migrations/v1_to_v2.py,sha256=gj8deaEWUxOr0qJyMfjOpV3LxEh-otOSOxDckeUq0qU,24938
|
|
55
55
|
agno/db/mongo/__init__.py,sha256=NG2WC2jE5PX1kMXTYCVHjhomf5DAJgvzSj45QHdvl2E,466
|
|
56
56
|
agno/db/mongo/async_mongo.py,sha256=ahvzkDzfEdSSkX1QMK9VR_NbOIayR2ENJBr7vDZCY8w,81513
|
|
57
57
|
agno/db/mongo/mongo.py,sha256=F77-npqo_PqZ2wcsZ11X3H9mOdaO_cLF46hMiSuqlo0,78115
|
|
58
58
|
agno/db/mongo/schemas.py,sha256=d2ZxqqzKYwz0Iexgrv1HWArGnmk3KUKJ37PCzFykodI,2314
|
|
59
|
-
agno/db/mongo/utils.py,sha256=
|
|
59
|
+
agno/db/mongo/utils.py,sha256=5QYp2WgQtOK497eQMqXcTgMSGA7Y6UXX_VABX6xaLdM,9248
|
|
60
60
|
agno/db/mysql/__init__.py,sha256=ohBMZ1E6ctioEF0XX5PjC4LtUQrc6lFkjsE4ojyXA8g,63
|
|
61
61
|
agno/db/mysql/mysql.py,sha256=oG2Ubko4JUJUPU32XyYcebn-qhiL2Lb3p_1FLFFpi4w,96111
|
|
62
62
|
agno/db/mysql/schemas.py,sha256=OpdAWhh-ElwQ5JOg1MKJqGJ16qzVTuyS56iH9Zw3oHs,6171
|
|
63
|
-
agno/db/mysql/utils.py,sha256=
|
|
63
|
+
agno/db/mysql/utils.py,sha256=PdqN-SxM-ox8HU9CZyxzvs2D1FE2vdZFVCyFgFcQsyU,12366
|
|
64
64
|
agno/db/postgres/__init__.py,sha256=Ojk00nTCzQFiH2ViD7KIBjgpkTKLRNPCwWnuXMKtNXY,154
|
|
65
65
|
agno/db/postgres/async_postgres.py,sha256=krVE38WZk-sXvqmItIf9D783atEn5PO91w3YJThaiJk,79629
|
|
66
66
|
agno/db/postgres/postgres.py,sha256=OAwkG56tJ_EoffhDl2QjIxS6SIvtBvMOtBRAkyoM0lI,92325
|
|
67
67
|
agno/db/postgres/schemas.py,sha256=O049oyPU07tHwnyuOzYyiKcK1NYvh6cQmmsFOvA7LTs,5971
|
|
68
|
-
agno/db/postgres/utils.py,sha256=
|
|
68
|
+
agno/db/postgres/utils.py,sha256=UE3UQZ-h7fADAKBsX4BWcDka54YNROEpBrlfTmDvpqc,15471
|
|
69
69
|
agno/db/redis/__init__.py,sha256=rZWeZ4CpVeKP-enVQ-SRoJ777i0rdGNgoNDRS9gsfAc,63
|
|
70
70
|
agno/db/redis/redis.py,sha256=Mr9TDbIq7KIkunhEfufhuvZdoIKbf3i3hdA1iewbEPg,62952
|
|
71
71
|
agno/db/redis/schemas.py,sha256=3WilZq3NqZqRONyu_mAjjmQpClgYDYoWjfkvlOh0Tfw,4038
|
|
72
|
-
agno/db/redis/utils.py,sha256=
|
|
72
|
+
agno/db/redis/utils.py,sha256=DTzid-ZR3zhI058s0bqDhHQleMkdXnJ76Ezfuq0CEOM,11242
|
|
73
73
|
agno/db/schemas/__init__.py,sha256=g72Zr5_nm00yXHStv4pf9PG9bGLKXEK7Av6YQtrDbCQ,147
|
|
74
74
|
agno/db/schemas/culture.py,sha256=w4azKAVLf5X4xyRUFXMIEq0CA0pnyeN03W3eMpqScxo,4342
|
|
75
75
|
agno/db/schemas/evals.py,sha256=T1zIiwrN5fxZVD2em85wQ9CV-HSVZvNF4D4v9_w30VA,786
|
|
@@ -79,12 +79,12 @@ agno/db/schemas/metrics.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
79
79
|
agno/db/singlestore/__init__.py,sha256=dufbaod8ZZIeZIVi0hYJQ8Eu2DfIfWdIy00cpqAsx9U,87
|
|
80
80
|
agno/db/singlestore/schemas.py,sha256=Eb9wipCjWr48dlF3CMDa53WDvFsr7QhLOSaTgbUkMKg,6178
|
|
81
81
|
agno/db/singlestore/singlestore.py,sha256=tj30IIfj0cp9_VcFXp5C5WbQ5b4160gZHgCu9qNYGj4,94023
|
|
82
|
-
agno/db/singlestore/utils.py,sha256=
|
|
82
|
+
agno/db/singlestore/utils.py,sha256=w2FVFIBpFJK6nKJVt1sgv9N-esmfpGY_8ViFRI69I2I,13677
|
|
83
83
|
agno/db/sqlite/__init__.py,sha256=09V3i4y0-tBjt60--57ivZ__SaaS67GCsDT4Apzv-5Y,138
|
|
84
84
|
agno/db/sqlite/async_sqlite.py,sha256=4TTCcIySzPw9nY1ECLVmWjE9rwwkk1iGkhzcFK_cdwY,96574
|
|
85
85
|
agno/db/sqlite/schemas.py,sha256=NyEvAFG-hi3Inm5femgJdorxJ5l2-bXLWBhxJ4r7jW0,5832
|
|
86
86
|
agno/db/sqlite/sqlite.py,sha256=1Ozr74l1LInlVzwrMQruqEoP_I-ymovpEN4JVCn2Tpc,94714
|
|
87
|
-
agno/db/sqlite/utils.py,sha256=
|
|
87
|
+
agno/db/sqlite/utils.py,sha256=ZCYVrhtm9Bw1gddlaVZW7bQF2XqIJ993UDWVDGsYtX8,15557
|
|
88
88
|
agno/db/surrealdb/__init__.py,sha256=C8qp5-Nx9YnSmgKEtGua-sqG_ntCXONBw1qqnNyKPqI,75
|
|
89
89
|
agno/db/surrealdb/metrics.py,sha256=oKDRyjRQ6KR3HaO8zDHQLVMG7-0NDkOFOKX5I7mD5FA,10336
|
|
90
90
|
agno/db/surrealdb/models.py,sha256=2KBxSxiEI4yQ2OTOr1HVeL8Fd52tQfWkM53kwzqUmyw,11512
|
|
@@ -108,16 +108,16 @@ agno/knowledge/__init__.py,sha256=PJCt-AGKGFztzR--Ok2TNKW5QEqllZzqiI_7f8-1u80,79
|
|
|
108
108
|
agno/knowledge/content.py,sha256=q2bjcjDhfge_UrQAcygrv5R9ZTk7vozzKnQpatDQWRo,2295
|
|
109
109
|
agno/knowledge/knowledge.py,sha256=NoUE-x3EkL3aWRxYzSY-i5K7Y7khGbYxJNywS8yCKB8,80093
|
|
110
110
|
agno/knowledge/types.py,sha256=4NnkL_h2W-7GQnHW-yIqMNPUCWLzo5qBXF99gfsMe08,773
|
|
111
|
-
agno/knowledge/utils.py,sha256=
|
|
111
|
+
agno/knowledge/utils.py,sha256=2dJE5HclZbM76TjimcHHFAz2VGmgs62DITE23DRPQBw,7302
|
|
112
112
|
agno/knowledge/chunking/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
113
|
-
agno/knowledge/chunking/agentic.py,sha256=
|
|
113
|
+
agno/knowledge/chunking/agentic.py,sha256=WeQ5ORe_CxsGYg0udOXjvwBo95hnpPZHVpFj-bMzuVU,3168
|
|
114
114
|
agno/knowledge/chunking/document.py,sha256=pr8WE4GSCPfrWj-5Egu0DUz816YFsH-QHHojTARjnHc,3645
|
|
115
115
|
agno/knowledge/chunking/fixed.py,sha256=yZLlZHisCWQKszExPuyzTT2zyaZo-udxAAjJhOI4QrE,2179
|
|
116
116
|
agno/knowledge/chunking/markdown.py,sha256=M95AddeedFbG71DVxC4pbCullfX4StwmdmA9FalVPwQ,6162
|
|
117
117
|
agno/knowledge/chunking/recursive.py,sha256=0zlmgFz2VfWFMCnVdJqRVrB2CLlu8Gc6BA6oy4xh4d8,2357
|
|
118
118
|
agno/knowledge/chunking/row.py,sha256=yFGKMsHd2Ml0fkJLksw8ULUpWXmbSXIQwnwlKHVPP40,1426
|
|
119
119
|
agno/knowledge/chunking/semantic.py,sha256=r0N4SyqFaKYTQrLnrVA202Nfadz8uST-byvVaMoLRsc,3954
|
|
120
|
-
agno/knowledge/chunking/strategy.py,sha256=
|
|
120
|
+
agno/knowledge/chunking/strategy.py,sha256=7lqle7QvS1Ch9BGHP1elPVBF-hEqmwbD8SQ5uGxbiQM,6509
|
|
121
121
|
agno/knowledge/document/__init__.py,sha256=vxMAu103larPlcpJFG3sBg-sCATf-LZZO_SlOwlEY5E,81
|
|
122
122
|
agno/knowledge/document/base.py,sha256=kvoLSAxc8snrayo_-C6L3HxJVXwZiXd7Maq6VToLgfg,2087
|
|
123
123
|
agno/knowledge/embedder/__init__.py,sha256=RdjcB1qoXuGVLlIkD-hn3B4zs8ycabmCVRmZsG3RhCQ,81
|
|
@@ -135,13 +135,13 @@ agno/knowledge/embedder/mistral.py,sha256=AMc3VBpQCKFxetx2gRd9c6iRvR4-bSEWJ1Q4JP
|
|
|
135
135
|
agno/knowledge/embedder/nebius.py,sha256=4I2irehvR6Di00Al4jbG4vAa6KZnbOJ-7QqVjB7Mn64,363
|
|
136
136
|
agno/knowledge/embedder/ollama.py,sha256=faLkOvPt2dWs8h87anAgeeG3LJpMH4jVMWP7_3f7JHs,6313
|
|
137
137
|
agno/knowledge/embedder/openai.py,sha256=oUEyqIyREIPYRCtQBjAn-aIjxI7DQkMZQmXOt0OkLbo,7331
|
|
138
|
-
agno/knowledge/embedder/sentence_transformer.py,sha256=
|
|
138
|
+
agno/knowledge/embedder/sentence_transformer.py,sha256=_d4XgV07bj1hkKnuzZGvP--v_-9K2e837PivJlmEoS8,2467
|
|
139
139
|
agno/knowledge/embedder/together.py,sha256=Pt524Lh6YRDKfD8rfmLu0Qlw4dDh4vLz7KEMIvIULBk,387
|
|
140
140
|
agno/knowledge/embedder/vllm.py,sha256=whtZs4OGzE9aXeK-L1UmwwnpgAgxFlxAfiHREroj8yA,10952
|
|
141
141
|
agno/knowledge/embedder/voyageai.py,sha256=E6RjQRaa5d2BHmkW09QG68ncrgBV2Vqq25ZR8vegEFs,6602
|
|
142
142
|
agno/knowledge/reader/__init__.py,sha256=edjnCwyDjM9Q5JPMi4K9mll8a3CdV52iagUKAgGiaas,159
|
|
143
143
|
agno/knowledge/reader/arxiv_reader.py,sha256=PtqP3bB4eZAYUlK9_ytPCFiy4icvMj7bIZNNVlBgY6U,2735
|
|
144
|
-
agno/knowledge/reader/base.py,sha256=
|
|
144
|
+
agno/knowledge/reader/base.py,sha256=GLfOoy0W7rv8fgjVRUpVmInRgFFvFrPVsok_iJ9aSQ0,3780
|
|
145
145
|
agno/knowledge/reader/csv_reader.py,sha256=GZiRh9yx0TM_GAEOQiBp3VfffbwGBZ7M2e5eSs45gIs,6491
|
|
146
146
|
agno/knowledge/reader/docx_reader.py,sha256=5xOoEKuGBiR6hUrwiIg4ek4ZKeNBM3kYoxDeyCJ5_Vo,3308
|
|
147
147
|
agno/knowledge/reader/field_labeled_csv_reader.py,sha256=cHjmEtmLNF9DRk0N5OtKOxAwYHJlMLQ0_7BScRqAxkc,11643
|
|
@@ -168,7 +168,7 @@ agno/knowledge/reranker/sentence_transformer.py,sha256=ZN4SqnMZsUhg5G7AzlONM1_Uj
|
|
|
168
168
|
agno/memory/__init__.py,sha256=XWKJU5SJObYZqEKMZ2XYwgH8-YeuWUoSRfT4dEI5HnY,101
|
|
169
169
|
agno/memory/manager.py,sha256=8dGl4Ih4OF2dLidvcgnGGf81lY34JiDrAao2i4gZAEI,51913
|
|
170
170
|
agno/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
171
|
-
agno/models/base.py,sha256=
|
|
171
|
+
agno/models/base.py,sha256=HxTYPHgNZVTruTA9qxR_5GSdZtAzqEvRFylZhxRVMxM,97123
|
|
172
172
|
agno/models/defaults.py,sha256=1_fe4-ZbNriE8BgqxVRVi4KGzEYxYKYsz4hn6CZNEEM,40
|
|
173
173
|
agno/models/message.py,sha256=HMlY71ZCDWCUrNTqIbRezWZK5FfWcvcs5eg_hhjbuqo,19023
|
|
174
174
|
agno/models/metrics.py,sha256=81IILXZwGmOTiWK003bi5mg4bM1f4LCWbwyamjFzp18,4500
|
|
@@ -177,7 +177,7 @@ agno/models/utils.py,sha256=jxAIIG2y7KBypwFlc87GzFnvogRpGLfd-wwr6KXZIj8,7269
|
|
|
177
177
|
agno/models/aimlapi/__init__.py,sha256=XQcFRvt4qJ8ol9nCC0XKEkVEDivdNf3nZNoJZMZ5m8M,78
|
|
178
178
|
agno/models/aimlapi/aimlapi.py,sha256=9Qh-b8HvFSvmPP3VBNGT00qy9izHLMWgR-KDQCE5CM0,1493
|
|
179
179
|
agno/models/anthropic/__init__.py,sha256=nbReX3p17JCwfrMDR9hR7-OaEFZm80I7dng93dl-Fhw,77
|
|
180
|
-
agno/models/anthropic/claude.py,sha256=
|
|
180
|
+
agno/models/anthropic/claude.py,sha256=HzSzF-WU-3iqe41_fFiVH7rjPpLFhR_nSUXoHT1tHW4,32820
|
|
181
181
|
agno/models/aws/__init__.py,sha256=TbcwQwv9A7KjqBM5RQBR8x46GvyyCxbBCjwkpjfVGKE,352
|
|
182
182
|
agno/models/aws/bedrock.py,sha256=ScZcGwOMh-N0DfArXtDVzKy467QPAN0OS8llBNAc8cQ,28880
|
|
183
183
|
agno/models/aws/claude.py,sha256=sL47z9fM3jxGbARkr0mlAVYEKKX854J3u-Qeb5gIADo,14746
|
|
@@ -258,7 +258,7 @@ agno/models/vllm/vllm.py,sha256=UtiiSvUR4pG_1CzuhY5MWduRgzM2hGVTakKJ6ZBdQmo,2730
|
|
|
258
258
|
agno/models/xai/__init__.py,sha256=ukcCxnCHxTtkJNA2bAMTX4MhCv1wJcbiq8ZIfYczIxs,55
|
|
259
259
|
agno/models/xai/xai.py,sha256=jA6_39tfapkjkHKdzbKaNq1t9qIvO1IaZY1hQqEmFVs,4181
|
|
260
260
|
agno/os/__init__.py,sha256=h8oQu7vhD5RZf09jkyM_Kt1Kdq_d5kFB9gJju8QPwcY,55
|
|
261
|
-
agno/os/app.py,sha256=
|
|
261
|
+
agno/os/app.py,sha256=Me7CErHganEiMF6gmXiHI6uJpMi6XqGhjYhNSaN3BcA,34674
|
|
262
262
|
agno/os/auth.py,sha256=FyBtAKWtg-qSunCas5m5pK1dVEmikOSZvcCp5r25tTA,1844
|
|
263
263
|
agno/os/config.py,sha256=QPGxENF2yezEOp0yV9OXU-FBs4_vYSXkxbbSol51wPE,2932
|
|
264
264
|
agno/os/mcp.py,sha256=7lAiELFmwcF-eN_pOIJVjun9r5dFcQfPTHD_rP1Zu-s,10318
|
|
@@ -287,15 +287,15 @@ agno/os/interfaces/whatsapp/whatsapp.py,sha256=tNJncEu_hm0lFOHbjaSoz5-VIKORR_pyW
|
|
|
287
287
|
agno/os/middleware/__init__.py,sha256=EYsNzeixFgL3n8kepKWXT42fTTmrNyD8b8rOdXecMRI,94
|
|
288
288
|
agno/os/middleware/jwt.py,sha256=xw9jQkVFMTTzUVird1k-egAYBmPd174L06YflYCvB5Q,9468
|
|
289
289
|
agno/os/routers/__init__.py,sha256=du4LO9aZwiY1t59VcV9M6wiAfftFFlUZc-YXsTGy9LI,97
|
|
290
|
-
agno/os/routers/health.py,sha256=
|
|
290
|
+
agno/os/routers/health.py,sha256=AO3ec6Xi1wXOwUUFJhEcM45488qu6aZRJTwF2GLz6Ak,992
|
|
291
291
|
agno/os/routers/home.py,sha256=xe8DYJkRgad55qiza0lHt8pUIV5PLSyu2MkybjuPDDE,1708
|
|
292
292
|
agno/os/routers/evals/__init__.py,sha256=3s0M-Ftg5A3rFyRfTATs-0aNA6wcbj_5tCvtwH9gORQ,87
|
|
293
293
|
agno/os/routers/evals/evals.py,sha256=S-ybLJtE3oLJrYiHGOAxr2FCYMYd1634GhV_M7SxHlA,18923
|
|
294
294
|
agno/os/routers/evals/schemas.py,sha256=G6XvlEcl0FtgdsmHUjrEWxwxwGMhuYR2HsjfFT3QXUM,6523
|
|
295
295
|
agno/os/routers/evals/utils.py,sha256=cmBuf5HtJLcLaVrb_a1HizEUIrXbdbKu9rzo8FWfG88,5567
|
|
296
296
|
agno/os/routers/knowledge/__init__.py,sha256=ZSqMQ8X7C_oYn8xt7NaYlriarWUpHgaWDyHXOWooMaU,105
|
|
297
|
-
agno/os/routers/knowledge/knowledge.py,sha256=
|
|
298
|
-
agno/os/routers/knowledge/schemas.py,sha256=
|
|
297
|
+
agno/os/routers/knowledge/knowledge.py,sha256=rDYHtxZ5WltLz0eeuHLTTUlw8dvICblrFJAhPuFAJCA,45331
|
|
298
|
+
agno/os/routers/knowledge/schemas.py,sha256=GUr5RsRbI7K3qrrOlGVfW0Kf7XO6HjMviMW6nEl6qf8,8847
|
|
299
299
|
agno/os/routers/memory/__init__.py,sha256=9hrYFc1dkbsLBqKfqyfioQeLX9TTbLrJx6lWDKNNWbc,93
|
|
300
300
|
agno/os/routers/memory/memory.py,sha256=d13lESaVpgcpsKORhtH425LlTYVcggn96ZLcZE1xr00,21376
|
|
301
301
|
agno/os/routers/memory/schemas.py,sha256=TmeDwDEfIIxZV68ORjxfQqxJ4KArlmEUghF-xRKQqLo,2719
|
|
@@ -317,7 +317,7 @@ agno/reasoning/openai.py,sha256=JYk-mR9cMf1ibprX3MdL8oeCEDyQ3XaJw9PAIYvWeGk,3234
|
|
|
317
317
|
agno/reasoning/step.py,sha256=6DaOb_0DJRz9Yh1w_mxcRaOSVzIQDrj3lQ6rzHLdIwA,1220
|
|
318
318
|
agno/reasoning/vertexai.py,sha256=O9ntvalkIY2jLmWviEH1DnecMskqTL-mRZQBZohoHiU,2974
|
|
319
319
|
agno/run/__init__.py,sha256=DFjpUomTzHvIDQQE_PUfp4oJM-7Ti8h8a_Fe5Kr8rjM,98
|
|
320
|
-
agno/run/agent.py,sha256=
|
|
320
|
+
agno/run/agent.py,sha256=zy7gLVp_pMqa_Cg2mZ8I1EVGrfGMfzOoW3syly9E7Lc,27484
|
|
321
321
|
agno/run/base.py,sha256=vVsmcL3E7ZiEZFAjJFrwEYzzsmnRLwNhWqelJTe4raU,8193
|
|
322
322
|
agno/run/cancel.py,sha256=yoSj3fnx8D7Gf-fSngVIgd3GOp3tRaDhHH_4QeHDoAk,2667
|
|
323
323
|
agno/run/messages.py,sha256=rAC4CLW-xBA6qFS1BOvcjJ9j_qYf0a7sX1mcdY04zMU,1126
|
|
@@ -329,7 +329,7 @@ agno/session/summary.py,sha256=f0e02PblHEzG1uPvNiLSTbR1DpwchDy4kCin4l2Dt20,10304
|
|
|
329
329
|
agno/session/team.py,sha256=M9QEmGYyQM64ZsvPWRdp1xZV6EQGuun6pjJL05AzU-k,15260
|
|
330
330
|
agno/session/workflow.py,sha256=DnYjubF6rKwDl_HSR3_ieLeX0SyGm6xkn9SCWJ1ldbk,7419
|
|
331
331
|
agno/team/__init__.py,sha256=toHidBOo5M3n_TIVtIKHgcDbLL9HR-_U-YQYuIt_XtE,847
|
|
332
|
-
agno/team/team.py,sha256=
|
|
332
|
+
agno/team/team.py,sha256=oOjpT93M3AbuoI92w1ccOwR8toWT1sjOnxgw6jmR7a8,399194
|
|
333
333
|
agno/tools/__init__.py,sha256=jNll2sELhPPbqm5nPeT4_uyzRO2_KRTW-8Or60kioS0,210
|
|
334
334
|
agno/tools/agentql.py,sha256=S82Z9aTNr-E5wnA4fbFs76COljJtiQIjf2grjz3CkHU,4104
|
|
335
335
|
agno/tools/airflow.py,sha256=uf2rOzZpSU64l_qRJ5Raku-R3Gky-uewmYkh6W0-oxg,2610
|
|
@@ -366,13 +366,13 @@ agno/tools/evm.py,sha256=lX8KhpfHBcYANuNLmNI7EmwrnkE1anXjWGsGuM3_hRM,5371
|
|
|
366
366
|
agno/tools/exa.py,sha256=YyDIxqmMCTh1Z1hv4fmyCsnnIOlLTTerxcC1ToNsLww,16998
|
|
367
367
|
agno/tools/fal.py,sha256=49rgpgfpk-aKUs18x8vDH1Wa4jNOPKN3iczfqWMo8xw,4633
|
|
368
368
|
agno/tools/file.py,sha256=S_SFXzW1uzm29ecL0FH1QoWQKq3mD9JthALVSq549fg,10244
|
|
369
|
-
agno/tools/file_generation.py,sha256=
|
|
369
|
+
agno/tools/file_generation.py,sha256=81c7AWQ1zLYAum7MbbsGlXYaVWjwW4i3H0L5R2Wj4HA,13868
|
|
370
370
|
agno/tools/financial_datasets.py,sha256=NiXwyiYIFCawI8rR7JLJNIfwoQlranUeCcABHKhLHfw,9190
|
|
371
371
|
agno/tools/firecrawl.py,sha256=sMV6XRaSIyTSkTJbtMdIQPTsN11ozJ78YDDi04kBvQE,5341
|
|
372
372
|
agno/tools/function.py,sha256=9Ka6GCGebOBSLE2ow-Q32dyZxLHkn3PQUAdnkfm1Rus,51406
|
|
373
373
|
agno/tools/giphy.py,sha256=_wOCWVnMdFByE9Yoz4Pf2MoKxSjkUTiPJZ928_BNe2M,3070
|
|
374
374
|
agno/tools/github.py,sha256=wct6P00YzF3zgWoV2c5aHeXX_2dgb9LqRwJAboi6QXw,70286
|
|
375
|
-
agno/tools/gmail.py,sha256=
|
|
375
|
+
agno/tools/gmail.py,sha256=m_7SY4oz2sP0RSJyNItZ_h5VeyI86J8840_p5Nz_2So,37073
|
|
376
376
|
agno/tools/google_bigquery.py,sha256=j0c14CgGK8KvD7eEirsdAx7RSwcfMheugn84ySq6miU,4483
|
|
377
377
|
agno/tools/google_drive.py,sha256=dxGr_NhMsqFsr_tR3w4MgLXm7_nlCTI43sCmKw60N_4,11159
|
|
378
378
|
agno/tools/google_maps.py,sha256=AqPEIt4u6B2kQtzOnL5PH3RXoefCfjT_Uvm3coAqzaY,9513
|
|
@@ -404,6 +404,7 @@ agno/tools/opencv.py,sha256=m6vEJUcmYJZzIbyLIkx-T25zW5htjMCyrOB0PCvG2-U,12447
|
|
|
404
404
|
agno/tools/openweather.py,sha256=vw5gIr9E5psiHpTyN-HyQ1T2upJwE205w-jJs_Pc7fc,8692
|
|
405
405
|
agno/tools/oxylabs.py,sha256=0SuckyOBIVMKCf3VyPDmKIZv4ILdu6N6AcDws7A3NiY,17619
|
|
406
406
|
agno/tools/pandas.py,sha256=Q3I3-lVMOng06FYs5DQZtOOdujjLWfWL7j5kf-xx8Z0,4882
|
|
407
|
+
agno/tools/parallel.py,sha256=YYQhPxDSKP7CdKamd6LnP9u5CKy03R8hpWN474unWcg,13976
|
|
407
408
|
agno/tools/postgres.py,sha256=16oIQBcTb-3JMnhWEAj6PgXoeB8-gtjSipUQT9kaNhk,10075
|
|
408
409
|
agno/tools/pubmed.py,sha256=4UVcZXVFFs6jV_7PQAWUGKZDEey1KbIJDztQhaS6m9g,8170
|
|
409
410
|
agno/tools/python.py,sha256=02uHb30r66D7zbqHEbmniWZUAeeJZ0y-Q0_xWiPXChk,8783
|
|
@@ -499,7 +500,7 @@ agno/utils/whatsapp.py,sha256=242VwGOdbgkxVeIj4D899mpT3GnG_IpcaKnd5qebhTA,9936
|
|
|
499
500
|
agno/utils/yaml_io.py,sha256=cwTqCE-eBGoi87KLDcwB6iyWe0NcvEmadQjWL1cQ7jE,860
|
|
500
501
|
agno/utils/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
501
502
|
agno/utils/models/ai_foundry.py,sha256=PmhETWhdqZCq8NbDe-MdZVuRXx6DbVOePCyPFiPLceo,1511
|
|
502
|
-
agno/utils/models/claude.py,sha256
|
|
503
|
+
agno/utils/models/claude.py,sha256=-XChDFdqYHMhvVyrbQhAKuuhp4q8QhVky1Q1FokRUGU,12008
|
|
503
504
|
agno/utils/models/cohere.py,sha256=wir2K9u4RmOwq7T7n_2UPZFHfwmnrt_u91Psd_DFqdE,3266
|
|
504
505
|
agno/utils/models/llama.py,sha256=Z5fdOFUFnov1JgUDcP6ICK3M7o64UB1fkcwAs2XaZkM,2515
|
|
505
506
|
agno/utils/models/mistral.py,sha256=SVcJ8Q8SFeadNwCr8BARbET0gvGiylmaDKzcSJ9kWq0,4189
|
|
@@ -557,17 +558,17 @@ agno/vectordb/weaviate/__init__.py,sha256=FIoFJgqSmGuFgpvmsg8EjAn8FDAhuqAXed7fja
|
|
|
557
558
|
agno/vectordb/weaviate/index.py,sha256=y4XYPRZFksMfrrF85B4hn5AtmXM4SH--4CyLo27EHgM,253
|
|
558
559
|
agno/vectordb/weaviate/weaviate.py,sha256=8KNa5a-RuksE6w9poD4vi_ixUBeoB96PkzCL9DHSs5o,39406
|
|
559
560
|
agno/workflow/__init__.py,sha256=Ze2j811jwnsS8Sjv6u0Ap4l7Pyw_ivRof1uBYNJhb1w,609
|
|
560
|
-
agno/workflow/agent.py,sha256=
|
|
561
|
-
agno/workflow/condition.py,sha256=
|
|
562
|
-
agno/workflow/loop.py,sha256=
|
|
563
|
-
agno/workflow/parallel.py,sha256=
|
|
564
|
-
agno/workflow/router.py,sha256=
|
|
565
|
-
agno/workflow/step.py,sha256=
|
|
566
|
-
agno/workflow/steps.py,sha256=
|
|
567
|
-
agno/workflow/types.py,sha256=
|
|
568
|
-
agno/workflow/workflow.py,sha256=
|
|
569
|
-
agno-2.2.
|
|
570
|
-
agno-2.2.
|
|
571
|
-
agno-2.2.
|
|
572
|
-
agno-2.2.
|
|
573
|
-
agno-2.2.
|
|
561
|
+
agno/workflow/agent.py,sha256=fKLB4kop7YYFeM1e-d3IzvVPsVF5cLNX6Z0gPn81ZR4,12170
|
|
562
|
+
agno/workflow/condition.py,sha256=4VXIpBH9-G9W0w10Sn4qn32gg9kap4uKVEF6dxIxGrg,32909
|
|
563
|
+
agno/workflow/loop.py,sha256=T38rX3wQeCMW7twIHjPKfhE_ONlsa6p3tKl0xgR7zwo,32956
|
|
564
|
+
agno/workflow/parallel.py,sha256=_kDg15O65RLgmEwAsE15ckwALgmHdreQ2TSt5yiOBio,36684
|
|
565
|
+
agno/workflow/router.py,sha256=1ez59iVrkV0g56WKdo26EDS2yeQFnC8aEA8KbzmBJV0,30986
|
|
566
|
+
agno/workflow/step.py,sha256=fc0CGfdj6yZAS-QiU_xs1ik1d-M5AQ4Rx6hqsKITDHs,65111
|
|
567
|
+
agno/workflow/steps.py,sha256=jMGnCUNTwU8bUj8Uf3xNrwPWrKWqx4TfJSzGZCKiVWY,26088
|
|
568
|
+
agno/workflow/types.py,sha256=T8O0CuKe48MRuPtgdDlECJQL8mgJ4TKClaw9hHN3Ebw,19149
|
|
569
|
+
agno/workflow/workflow.py,sha256=k1IWyxFJZp_yYMHC07XWTMsPCOMJKkhK8S6EKAFumy4,189341
|
|
570
|
+
agno-2.2.11.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
|
|
571
|
+
agno-2.2.11.dist-info/METADATA,sha256=JGKibAjTjZ9aNyr4Fx6ZjxRfrdhI5YAXJCfVRH0b9vk,28671
|
|
572
|
+
agno-2.2.11.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
573
|
+
agno-2.2.11.dist-info/top_level.txt,sha256=MKyeuVesTyOKIXUhc-d_tPa2Hrh0oTA4LM0izowpx70,5
|
|
574
|
+
agno-2.2.11.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|