agno 2.1.8__py3-none-any.whl → 2.1.10__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 +646 -133
- agno/culture/__init__.py +3 -0
- agno/culture/manager.py +954 -0
- agno/db/async_postgres/async_postgres.py +232 -0
- agno/db/async_postgres/schemas.py +15 -0
- agno/db/async_postgres/utils.py +58 -0
- agno/db/base.py +83 -6
- agno/db/dynamo/dynamo.py +162 -0
- agno/db/dynamo/schemas.py +44 -0
- agno/db/dynamo/utils.py +59 -0
- agno/db/firestore/firestore.py +231 -0
- agno/db/firestore/schemas.py +10 -0
- agno/db/firestore/utils.py +96 -0
- agno/db/gcs_json/gcs_json_db.py +190 -0
- agno/db/gcs_json/utils.py +58 -0
- agno/db/in_memory/in_memory_db.py +118 -0
- agno/db/in_memory/utils.py +58 -0
- agno/db/json/json_db.py +129 -0
- agno/db/json/utils.py +58 -0
- agno/db/mongo/mongo.py +222 -0
- agno/db/mongo/schemas.py +10 -0
- agno/db/mongo/utils.py +59 -0
- agno/db/mysql/mysql.py +232 -1
- agno/db/mysql/schemas.py +14 -0
- agno/db/mysql/utils.py +58 -0
- agno/db/postgres/postgres.py +242 -0
- agno/db/postgres/schemas.py +15 -0
- agno/db/postgres/utils.py +58 -0
- agno/db/redis/redis.py +181 -0
- agno/db/redis/schemas.py +14 -0
- agno/db/redis/utils.py +58 -0
- agno/db/schemas/__init__.py +2 -1
- agno/db/schemas/culture.py +120 -0
- agno/db/singlestore/schemas.py +14 -0
- agno/db/singlestore/singlestore.py +231 -0
- agno/db/singlestore/utils.py +58 -0
- agno/db/sqlite/schemas.py +14 -0
- agno/db/sqlite/sqlite.py +274 -7
- agno/db/sqlite/utils.py +62 -0
- agno/db/surrealdb/models.py +51 -1
- agno/db/surrealdb/surrealdb.py +154 -0
- agno/db/surrealdb/utils.py +61 -1
- agno/knowledge/knowledge.py +4 -0
- agno/knowledge/reader/field_labeled_csv_reader.py +0 -2
- agno/memory/manager.py +28 -11
- agno/models/message.py +4 -0
- agno/os/app.py +28 -6
- agno/team/team.py +9 -9
- agno/tools/gmail.py +59 -14
- agno/tools/googlecalendar.py +13 -20
- agno/workflow/condition.py +31 -9
- agno/workflow/router.py +31 -9
- {agno-2.1.8.dist-info → agno-2.1.10.dist-info}/METADATA +1 -1
- {agno-2.1.8.dist-info → agno-2.1.10.dist-info}/RECORD +57 -54
- {agno-2.1.8.dist-info → agno-2.1.10.dist-info}/WHEEL +0 -0
- {agno-2.1.8.dist-info → agno-2.1.10.dist-info}/licenses/LICENSE +0 -0
- {agno-2.1.8.dist-info → agno-2.1.10.dist-info}/top_level.txt +0 -0
agno/tools/googlecalendar.py
CHANGED
|
@@ -165,7 +165,7 @@ class GoogleCalendarTools(Toolkit):
|
|
|
165
165
|
|
|
166
166
|
try:
|
|
167
167
|
service = cast(Resource, self.service)
|
|
168
|
-
|
|
168
|
+
|
|
169
169
|
events_result = (
|
|
170
170
|
service.events()
|
|
171
171
|
.list(
|
|
@@ -247,9 +247,9 @@ class GoogleCalendarTools(Toolkit):
|
|
|
247
247
|
|
|
248
248
|
# Determine sendUpdates value based on notify_attendees parameter
|
|
249
249
|
send_updates = "all" if notify_attendees and attendees else "none"
|
|
250
|
-
|
|
250
|
+
|
|
251
251
|
service = cast(Resource, self.service)
|
|
252
|
-
|
|
252
|
+
|
|
253
253
|
event_result = (
|
|
254
254
|
service.events()
|
|
255
255
|
.insert(
|
|
@@ -298,7 +298,7 @@ class GoogleCalendarTools(Toolkit):
|
|
|
298
298
|
"""
|
|
299
299
|
try:
|
|
300
300
|
service = cast(Resource, self.service)
|
|
301
|
-
|
|
301
|
+
|
|
302
302
|
# First get the existing event to preserve its structure
|
|
303
303
|
event = service.events().get(calendarId=self.calendar_id, eventId=event_id).execute()
|
|
304
304
|
|
|
@@ -333,16 +333,13 @@ class GoogleCalendarTools(Toolkit):
|
|
|
333
333
|
|
|
334
334
|
# Determine sendUpdates value based on notify_attendees parameter
|
|
335
335
|
send_updates = "all" if notify_attendees and attendees else "none"
|
|
336
|
-
|
|
336
|
+
|
|
337
337
|
# Update the event
|
|
338
|
-
|
|
338
|
+
|
|
339
339
|
updated_event = (
|
|
340
|
-
service.events()
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
body=event,
|
|
344
|
-
sendUpdates=send_updates
|
|
345
|
-
).execute()
|
|
340
|
+
service.events()
|
|
341
|
+
.update(calendarId=self.calendar_id, eventId=event_id, body=event, sendUpdates=send_updates)
|
|
342
|
+
.execute()
|
|
346
343
|
)
|
|
347
344
|
|
|
348
345
|
log_debug(f"Event {event_id} updated successfully.")
|
|
@@ -366,14 +363,10 @@ class GoogleCalendarTools(Toolkit):
|
|
|
366
363
|
try:
|
|
367
364
|
# Determine sendUpdates value based on notify_attendees parameter
|
|
368
365
|
send_updates = "all" if notify_attendees else "none"
|
|
369
|
-
|
|
366
|
+
|
|
370
367
|
service = cast(Resource, self.service)
|
|
371
|
-
|
|
372
|
-
service.events().delete(
|
|
373
|
-
calendarId=self.calendar_id,
|
|
374
|
-
eventId=event_id,
|
|
375
|
-
sendUpdates=send_updates
|
|
376
|
-
).execute()
|
|
368
|
+
|
|
369
|
+
service.events().delete(calendarId=self.calendar_id, eventId=event_id, sendUpdates=send_updates).execute()
|
|
377
370
|
|
|
378
371
|
log_debug(f"Event {event_id} deleted successfully.")
|
|
379
372
|
return json.dumps({"success": True, "message": f"Event {event_id} deleted successfully."})
|
|
@@ -400,7 +393,7 @@ class GoogleCalendarTools(Toolkit):
|
|
|
400
393
|
"""
|
|
401
394
|
try:
|
|
402
395
|
service = cast(Resource, self.service)
|
|
403
|
-
|
|
396
|
+
|
|
404
397
|
params = {
|
|
405
398
|
"calendarId": self.calendar_id,
|
|
406
399
|
"maxResults": min(max_results, 100),
|
agno/workflow/condition.py
CHANGED
|
@@ -111,13 +111,16 @@ class Condition:
|
|
|
111
111
|
audio=current_audio + all_audio,
|
|
112
112
|
)
|
|
113
113
|
|
|
114
|
-
def _evaluate_condition(self, step_input: StepInput) -> bool:
|
|
114
|
+
def _evaluate_condition(self, step_input: StepInput, session_state: Optional[Dict[str, Any]] = None) -> bool:
|
|
115
115
|
"""Evaluate the condition and return boolean result"""
|
|
116
116
|
if isinstance(self.evaluator, bool):
|
|
117
117
|
return self.evaluator
|
|
118
118
|
|
|
119
119
|
if callable(self.evaluator):
|
|
120
|
-
|
|
120
|
+
if session_state is not None and self._evaluator_has_session_state_param():
|
|
121
|
+
result = self.evaluator(step_input, session_state=session_state) # type: ignore[call-arg]
|
|
122
|
+
else:
|
|
123
|
+
result = self.evaluator(step_input)
|
|
121
124
|
|
|
122
125
|
if isinstance(result, bool):
|
|
123
126
|
return result
|
|
@@ -127,16 +130,24 @@ class Condition:
|
|
|
127
130
|
|
|
128
131
|
return False
|
|
129
132
|
|
|
130
|
-
async def _aevaluate_condition(self, step_input: StepInput) -> bool:
|
|
133
|
+
async def _aevaluate_condition(self, step_input: StepInput, session_state: Optional[Dict[str, Any]] = None) -> bool:
|
|
131
134
|
"""Async version of condition evaluation"""
|
|
132
135
|
if isinstance(self.evaluator, bool):
|
|
133
136
|
return self.evaluator
|
|
134
137
|
|
|
135
138
|
if callable(self.evaluator):
|
|
139
|
+
has_session_state = session_state is not None and self._evaluator_has_session_state_param()
|
|
140
|
+
|
|
136
141
|
if inspect.iscoroutinefunction(self.evaluator):
|
|
137
|
-
|
|
142
|
+
if has_session_state:
|
|
143
|
+
result = await self.evaluator(step_input, session_state=session_state) # type: ignore[call-arg]
|
|
144
|
+
else:
|
|
145
|
+
result = await self.evaluator(step_input)
|
|
138
146
|
else:
|
|
139
|
-
|
|
147
|
+
if has_session_state:
|
|
148
|
+
result = self.evaluator(step_input, session_state=session_state) # type: ignore[call-arg]
|
|
149
|
+
else:
|
|
150
|
+
result = self.evaluator(step_input)
|
|
140
151
|
|
|
141
152
|
if isinstance(result, bool):
|
|
142
153
|
return result
|
|
@@ -146,6 +157,17 @@ class Condition:
|
|
|
146
157
|
|
|
147
158
|
return False
|
|
148
159
|
|
|
160
|
+
def _evaluator_has_session_state_param(self) -> bool:
|
|
161
|
+
"""Check if the evaluator function has a session_state parameter"""
|
|
162
|
+
if not callable(self.evaluator):
|
|
163
|
+
return False
|
|
164
|
+
|
|
165
|
+
try:
|
|
166
|
+
sig = inspect.signature(self.evaluator)
|
|
167
|
+
return "session_state" in sig.parameters
|
|
168
|
+
except Exception:
|
|
169
|
+
return False
|
|
170
|
+
|
|
149
171
|
def execute(
|
|
150
172
|
self,
|
|
151
173
|
step_input: StepInput,
|
|
@@ -166,7 +188,7 @@ class Condition:
|
|
|
166
188
|
self._prepare_steps()
|
|
167
189
|
|
|
168
190
|
# Evaluate the condition
|
|
169
|
-
condition_result = self._evaluate_condition(step_input)
|
|
191
|
+
condition_result = self._evaluate_condition(step_input, session_state)
|
|
170
192
|
log_debug(f"Condition {self.name} evaluated to: {condition_result}")
|
|
171
193
|
|
|
172
194
|
if not condition_result:
|
|
@@ -275,7 +297,7 @@ class Condition:
|
|
|
275
297
|
self._prepare_steps()
|
|
276
298
|
|
|
277
299
|
# Evaluate the condition
|
|
278
|
-
condition_result = self._evaluate_condition(step_input)
|
|
300
|
+
condition_result = self._evaluate_condition(step_input, session_state)
|
|
279
301
|
log_debug(f"Condition {self.name} evaluated to: {condition_result}")
|
|
280
302
|
|
|
281
303
|
if stream_intermediate_steps and workflow_run_response:
|
|
@@ -434,7 +456,7 @@ class Condition:
|
|
|
434
456
|
self._prepare_steps()
|
|
435
457
|
|
|
436
458
|
# Evaluate the condition
|
|
437
|
-
condition_result = await self._aevaluate_condition(step_input)
|
|
459
|
+
condition_result = await self._aevaluate_condition(step_input, session_state)
|
|
438
460
|
log_debug(f"Condition {self.name} evaluated to: {condition_result}")
|
|
439
461
|
|
|
440
462
|
if not condition_result:
|
|
@@ -543,7 +565,7 @@ class Condition:
|
|
|
543
565
|
self._prepare_steps()
|
|
544
566
|
|
|
545
567
|
# Evaluate the condition
|
|
546
|
-
condition_result = await self._aevaluate_condition(step_input)
|
|
568
|
+
condition_result = await self._aevaluate_condition(step_input, session_state)
|
|
547
569
|
log_debug(f"Condition {self.name} evaluated to: {condition_result}")
|
|
548
570
|
|
|
549
571
|
if stream_intermediate_steps and workflow_run_response:
|
agno/workflow/router.py
CHANGED
|
@@ -108,10 +108,13 @@ class Router:
|
|
|
108
108
|
audio=current_audio + all_audio,
|
|
109
109
|
)
|
|
110
110
|
|
|
111
|
-
def _route_steps(self, step_input: StepInput) -> List[Step]: # type: ignore[return-value]
|
|
111
|
+
def _route_steps(self, step_input: StepInput, session_state: Optional[Dict[str, Any]] = None) -> List[Step]: # type: ignore[return-value]
|
|
112
112
|
"""Route to the appropriate steps based on input"""
|
|
113
113
|
if callable(self.selector):
|
|
114
|
-
|
|
114
|
+
if session_state is not None and self._selector_has_session_state_param():
|
|
115
|
+
result = self.selector(step_input, session_state) # type: ignore[call-arg]
|
|
116
|
+
else:
|
|
117
|
+
result = self.selector(step_input)
|
|
115
118
|
|
|
116
119
|
# Handle the result based on its type
|
|
117
120
|
if isinstance(result, Step):
|
|
@@ -124,13 +127,21 @@ class Router:
|
|
|
124
127
|
|
|
125
128
|
return []
|
|
126
129
|
|
|
127
|
-
async def _aroute_steps(self, step_input: StepInput) -> List[Step]: # type: ignore[return-value]
|
|
130
|
+
async def _aroute_steps(self, step_input: StepInput, session_state: Optional[Dict[str, Any]] = None) -> List[Step]: # type: ignore[return-value]
|
|
128
131
|
"""Async version of step routing"""
|
|
129
132
|
if callable(self.selector):
|
|
133
|
+
has_session_state = session_state is not None and self._selector_has_session_state_param()
|
|
134
|
+
|
|
130
135
|
if inspect.iscoroutinefunction(self.selector):
|
|
131
|
-
|
|
136
|
+
if has_session_state:
|
|
137
|
+
result = await self.selector(step_input, session_state) # type: ignore[call-arg]
|
|
138
|
+
else:
|
|
139
|
+
result = await self.selector(step_input)
|
|
132
140
|
else:
|
|
133
|
-
|
|
141
|
+
if has_session_state:
|
|
142
|
+
result = self.selector(step_input, session_state) # type: ignore[call-arg]
|
|
143
|
+
else:
|
|
144
|
+
result = self.selector(step_input)
|
|
134
145
|
|
|
135
146
|
# Handle the result based on its type
|
|
136
147
|
if isinstance(result, Step):
|
|
@@ -143,6 +154,17 @@ class Router:
|
|
|
143
154
|
|
|
144
155
|
return []
|
|
145
156
|
|
|
157
|
+
def _selector_has_session_state_param(self) -> bool:
|
|
158
|
+
"""Check if the selector function has a session_state parameter"""
|
|
159
|
+
if not callable(self.selector):
|
|
160
|
+
return False
|
|
161
|
+
|
|
162
|
+
try:
|
|
163
|
+
sig = inspect.signature(self.selector)
|
|
164
|
+
return "session_state" in sig.parameters
|
|
165
|
+
except Exception:
|
|
166
|
+
return False
|
|
167
|
+
|
|
146
168
|
def execute(
|
|
147
169
|
self,
|
|
148
170
|
step_input: StepInput,
|
|
@@ -163,7 +185,7 @@ class Router:
|
|
|
163
185
|
self._prepare_steps()
|
|
164
186
|
|
|
165
187
|
# Route to appropriate steps
|
|
166
|
-
steps_to_execute = self._route_steps(step_input)
|
|
188
|
+
steps_to_execute = self._route_steps(step_input, session_state)
|
|
167
189
|
log_debug(f"Router {self.name}: Selected {len(steps_to_execute)} steps to execute")
|
|
168
190
|
|
|
169
191
|
if not steps_to_execute:
|
|
@@ -263,7 +285,7 @@ class Router:
|
|
|
263
285
|
router_step_id = str(uuid4())
|
|
264
286
|
|
|
265
287
|
# Route to appropriate steps
|
|
266
|
-
steps_to_execute = self._route_steps(step_input)
|
|
288
|
+
steps_to_execute = self._route_steps(step_input, session_state)
|
|
267
289
|
log_debug(f"Router {self.name}: Selected {len(steps_to_execute)} steps to execute")
|
|
268
290
|
|
|
269
291
|
if stream_intermediate_steps and workflow_run_response:
|
|
@@ -413,7 +435,7 @@ class Router:
|
|
|
413
435
|
self._prepare_steps()
|
|
414
436
|
|
|
415
437
|
# Route to appropriate steps
|
|
416
|
-
steps_to_execute = await self._aroute_steps(step_input)
|
|
438
|
+
steps_to_execute = await self._aroute_steps(step_input, session_state)
|
|
417
439
|
log_debug(f"Router {self.name} selected: {len(steps_to_execute)} steps to execute")
|
|
418
440
|
|
|
419
441
|
if not steps_to_execute:
|
|
@@ -516,7 +538,7 @@ class Router:
|
|
|
516
538
|
router_step_id = str(uuid4())
|
|
517
539
|
|
|
518
540
|
# Route to appropriate steps
|
|
519
|
-
steps_to_execute = await self._aroute_steps(step_input)
|
|
541
|
+
steps_to_execute = await self._aroute_steps(step_input, session_state)
|
|
520
542
|
log_debug(f"Router {self.name} selected: {len(steps_to_execute)} steps to execute")
|
|
521
543
|
|
|
522
544
|
if stream_intermediate_steps and workflow_run_response:
|
|
@@ -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=UYBn-uX2WyayZeJnRLTz7EBerrChaX7QyQWGSI6IQPY,428776
|
|
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
|
|
@@ -27,67 +27,70 @@ agno/cloud/aws/s3/__init__.py,sha256=6t_fONFVV9pr04svE63yWSCWreBZ_pNTdhw4lqRnLb0
|
|
|
27
27
|
agno/cloud/aws/s3/api_client.py,sha256=nW-Jn8WPILIvdH8niQOPpKMXlAIDB2xYTz0GHRy4PHs,1438
|
|
28
28
|
agno/cloud/aws/s3/bucket.py,sha256=5dkKhjWVmf8dyQEyCTd6DkQlKADBnm0-_VKQgKqtJQM,7798
|
|
29
29
|
agno/cloud/aws/s3/object.py,sha256=ttZPbLm3o63oGIhKgAr_bIf9DOpJlXRmrEVlkbTcJbk,1766
|
|
30
|
+
agno/culture/__init__.py,sha256=nVScbcUeBmkj8l-rJWGOVGytwp5xB6IfUEL_h6atzQw,118
|
|
31
|
+
agno/culture/manager.py,sha256=Y5vfysyoCeEg_g9GnkDKlMqQa2zUXSP0k3wO5kWweIg,40037
|
|
30
32
|
agno/db/__init__.py,sha256=bfd_tpKsIKCjZosnFqID26VoWqy88v8gzkf9kLHToY4,625
|
|
31
|
-
agno/db/base.py,sha256=
|
|
33
|
+
agno/db/base.py,sha256=8Zf5bf2jHOwpLFQz8oOYQnNfjnHFdKjsVRhb4ZxfAHw,18998
|
|
32
34
|
agno/db/utils.py,sha256=eL0prfDrTEfOwNlOZeoZE4pu59bNJET22uh8wgzz-cw,4879
|
|
33
35
|
agno/db/async_postgres/__init__.py,sha256=hrSt23PFoBqje-AdZV3z0lBRtR8M3NagPH052A4DlqM,97
|
|
34
|
-
agno/db/async_postgres/async_postgres.py,sha256=
|
|
35
|
-
agno/db/async_postgres/schemas.py,sha256=
|
|
36
|
-
agno/db/async_postgres/utils.py,sha256=
|
|
36
|
+
agno/db/async_postgres/async_postgres.py,sha256=DxthDb16rnUxGpTdadC-jcJ8vbaXaC0B1eo2-_3Z2XE,78476
|
|
37
|
+
agno/db/async_postgres/schemas.py,sha256=M2c4Mr7_pG_R8_cGJTiX-h1QGckMePipcpKat0MVfLQ,6006
|
|
38
|
+
agno/db/async_postgres/utils.py,sha256=JDHZ-6JkTZQ3DA-71cmlZpgKfqx5cEkQEj2Phq4hyZQ,12268
|
|
37
39
|
agno/db/dynamo/__init__.py,sha256=fZ7NwKbyhoIu7_4T6hVz44HkIINXMnTfFrDrgB6bpEo,67
|
|
38
|
-
agno/db/dynamo/dynamo.py,sha256=
|
|
39
|
-
agno/db/dynamo/schemas.py,sha256=
|
|
40
|
-
agno/db/dynamo/utils.py,sha256=
|
|
40
|
+
agno/db/dynamo/dynamo.py,sha256=ayii2yLJ267ZwzCyF6GAxSXaOjE7-HAStnLQGneYwg8,78220
|
|
41
|
+
agno/db/dynamo/schemas.py,sha256=Pdtpa0wV_M8G_inM2rA8pBn2LdxdjG-irltQpYIQPMo,12932
|
|
42
|
+
agno/db/dynamo/utils.py,sha256=dKVLfZOGvyCrEcVZZ6t1mHwyqZvqSNFzq0l-xVhGyIU,27390
|
|
41
43
|
agno/db/firestore/__init__.py,sha256=lYAJjUs4jMxJFty1GYZw464K35zeuBlcoFR9uuIQYtI,79
|
|
42
|
-
agno/db/firestore/firestore.py,sha256=
|
|
43
|
-
agno/db/firestore/schemas.py,sha256=
|
|
44
|
-
agno/db/firestore/utils.py,sha256=
|
|
44
|
+
agno/db/firestore/firestore.py,sha256=dFAIRpRP3kyz5WpP3TgW7uUSR4SAqyLdMavDyBIqB0U,70635
|
|
45
|
+
agno/db/firestore/schemas.py,sha256=sPbi2teuzCfRECnCyj6LrNNu0drSqbBHpH-o1xoJYfs,4392
|
|
46
|
+
agno/db/firestore/utils.py,sha256=ddmij9sdKDPbAnpUIyA74G1L55md9JWrrwGAssjy1Es,13808
|
|
45
47
|
agno/db/gcs_json/__init__.py,sha256=aTR4o3aFrzfANHtRw7nX9uc5_GsY52ch0rmoo7uXuc4,76
|
|
46
|
-
agno/db/gcs_json/gcs_json_db.py,sha256=
|
|
47
|
-
agno/db/gcs_json/utils.py,sha256=
|
|
48
|
+
agno/db/gcs_json/gcs_json_db.py,sha256=_9mBnZw9RUFWU4aMZTPW6Kl_N4bOE58EhVYYlid5INA,54793
|
|
49
|
+
agno/db/gcs_json/utils.py,sha256=wl7Pl88uMacRiYxxnq9VeDT1qA9QY-VhQjClH49E43o,8887
|
|
48
50
|
agno/db/in_memory/__init__.py,sha256=OvR_FONhOh9PmcRfUA_6gvplZT5UGIBAgVKqVg6SWTA,80
|
|
49
|
-
agno/db/in_memory/in_memory_db.py,sha256=
|
|
50
|
-
agno/db/in_memory/utils.py,sha256=
|
|
51
|
+
agno/db/in_memory/in_memory_db.py,sha256=QXt4EYU6DsqQBErlDLkktbjaXfyp7mLAdpTNKDQeWQ4,46222
|
|
52
|
+
agno/db/in_memory/utils.py,sha256=c50_QSw2DHeujjl5iHlJlgWxlmNHXwKl3ZwyLvVgED4,8057
|
|
51
53
|
agno/db/json/__init__.py,sha256=zyPTmVF9S-OwXCL7FSkrDmunZ_Q14YZO3NYUv1Pa14Y,62
|
|
52
|
-
agno/db/json/json_db.py,sha256=
|
|
53
|
-
agno/db/json/utils.py,sha256=
|
|
54
|
+
agno/db/json/json_db.py,sha256=f511KuD2ibawSSlgRKJVG7U3naFDxs5_cZuS8OPFGm0,52925
|
|
55
|
+
agno/db/json/utils.py,sha256=zt47kshV7Bm7fniukAvUj87UlGexaVPe9hztOGWBbgM,8935
|
|
54
56
|
agno/db/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
55
57
|
agno/db/migrations/v1_to_v2.py,sha256=gj8deaEWUxOr0qJyMfjOpV3LxEh-otOSOxDckeUq0qU,24938
|
|
56
58
|
agno/db/mongo/__init__.py,sha256=EPa9QkGNVwnuej72LhZDCeASMXa-e0pR20jsgwa9BhY,63
|
|
57
|
-
agno/db/mongo/mongo.py,sha256=
|
|
58
|
-
agno/db/mongo/schemas.py,sha256=
|
|
59
|
-
agno/db/mongo/utils.py,sha256=
|
|
59
|
+
agno/db/mongo/mongo.py,sha256=G2iu5KzTi9jXwMZXF2OmcqGXTndh5GbXY-aEjLXxLZ0,77128
|
|
60
|
+
agno/db/mongo/schemas.py,sha256=d2ZxqqzKYwz0Iexgrv1HWArGnmk3KUKJ37PCzFykodI,2314
|
|
61
|
+
agno/db/mongo/utils.py,sha256=UO-mI3w2-EUzgFQ3gzfT7-SeXlofau_eUzWknOhPvjY,9248
|
|
60
62
|
agno/db/mysql/__init__.py,sha256=ohBMZ1E6ctioEF0XX5PjC4LtUQrc6lFkjsE4ojyXA8g,63
|
|
61
|
-
agno/db/mysql/mysql.py,sha256=
|
|
62
|
-
agno/db/mysql/schemas.py,sha256=
|
|
63
|
-
agno/db/mysql/utils.py,sha256=
|
|
63
|
+
agno/db/mysql/mysql.py,sha256=_TXCD-_eVCyjAMhj4WOGVFTtjwRkkL28D7C-vZqPDdU,95380
|
|
64
|
+
agno/db/mysql/schemas.py,sha256=OpdAWhh-ElwQ5JOg1MKJqGJ16qzVTuyS56iH9Zw3oHs,6171
|
|
65
|
+
agno/db/mysql/utils.py,sha256=jF06bYYASQYdpmR6lwjD4iAp3-fq7moezjOnEYpju8g,12356
|
|
64
66
|
agno/db/postgres/__init__.py,sha256=OQS1Glq2fn86wZXFp9KYS_pysHb435c-xdqDTwWf6iU,145
|
|
65
|
-
agno/db/postgres/postgres.py,sha256=
|
|
66
|
-
agno/db/postgres/schemas.py,sha256=
|
|
67
|
-
agno/db/postgres/utils.py,sha256=
|
|
67
|
+
agno/db/postgres/postgres.py,sha256=uHPjaIn2M1whqVPVR2mXvxCdVb0FXAlJrB3VzjCX5Bw,91621
|
|
68
|
+
agno/db/postgres/schemas.py,sha256=O049oyPU07tHwnyuOzYyiKcK1NYvh6cQmmsFOvA7LTs,5971
|
|
69
|
+
agno/db/postgres/utils.py,sha256=902GcRbXodhEl_0MwIZHKlvJoTBVD8oqM1uKieTOPnw,11737
|
|
68
70
|
agno/db/redis/__init__.py,sha256=rZWeZ4CpVeKP-enVQ-SRoJ777i0rdGNgoNDRS9gsfAc,63
|
|
69
|
-
agno/db/redis/redis.py,sha256=
|
|
70
|
-
agno/db/redis/schemas.py,sha256=
|
|
71
|
-
agno/db/redis/utils.py,sha256=
|
|
72
|
-
agno/db/schemas/__init__.py,sha256=
|
|
71
|
+
agno/db/redis/redis.py,sha256=cg-kqHaPfBw1XnJ3ZT2zAWSGZ-jul1ziOFa0B84RANY,62938
|
|
72
|
+
agno/db/redis/schemas.py,sha256=3WilZq3NqZqRONyu_mAjjmQpClgYDYoWjfkvlOh0Tfw,4038
|
|
73
|
+
agno/db/redis/utils.py,sha256=b6FthFWSgrkMtjHSclPAyjW-ZwYLFn_3r-WFiCkuntI,11232
|
|
74
|
+
agno/db/schemas/__init__.py,sha256=g72Zr5_nm00yXHStv4pf9PG9bGLKXEK7Av6YQtrDbCQ,147
|
|
75
|
+
agno/db/schemas/culture.py,sha256=w4azKAVLf5X4xyRUFXMIEq0CA0pnyeN03W3eMpqScxo,4342
|
|
73
76
|
agno/db/schemas/evals.py,sha256=T1zIiwrN5fxZVD2em85wQ9CV-HSVZvNF4D4v9_w30VA,786
|
|
74
77
|
agno/db/schemas/knowledge.py,sha256=qVL6jEdaUG92WJw70-FrA7atetPqrpZnLYkYZDuiYho,1227
|
|
75
78
|
agno/db/schemas/memory.py,sha256=kKlJ6AWpbwz-ZJfBJieartPP0QqeeoKAXx2Ity4Yj-Y,1461
|
|
76
79
|
agno/db/schemas/metrics.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
77
80
|
agno/db/singlestore/__init__.py,sha256=dufbaod8ZZIeZIVi0hYJQ8Eu2DfIfWdIy00cpqAsx9U,87
|
|
78
|
-
agno/db/singlestore/schemas.py,sha256=
|
|
79
|
-
agno/db/singlestore/singlestore.py,sha256=
|
|
80
|
-
agno/db/singlestore/utils.py,sha256=
|
|
81
|
+
agno/db/singlestore/schemas.py,sha256=Eb9wipCjWr48dlF3CMDa53WDvFsr7QhLOSaTgbUkMKg,6178
|
|
82
|
+
agno/db/singlestore/singlestore.py,sha256=JQsHRPv-D36e0klJnYc2__0DRFxyjfXKN0XXYXKafkI,93288
|
|
83
|
+
agno/db/singlestore/utils.py,sha256=ZYkpaSwFE_EiJ06vOd_bpr22RvdercFObTTlw3hfq2M,13667
|
|
81
84
|
agno/db/sqlite/__init__.py,sha256=LocJ-suv6xpdun8HUxgbD3bTgmQArQvLJkbpb1pRGy0,67
|
|
82
|
-
agno/db/sqlite/schemas.py,sha256
|
|
83
|
-
agno/db/sqlite/sqlite.py,sha256=
|
|
84
|
-
agno/db/sqlite/utils.py,sha256=
|
|
85
|
+
agno/db/sqlite/schemas.py,sha256=NyEvAFG-hi3Inm5femgJdorxJ5l2-bXLWBhxJ4r7jW0,5832
|
|
86
|
+
agno/db/sqlite/sqlite.py,sha256=kjByY--whzmwLsc8KpiB3Ncgxp4LKtMTfEggmn5DK8s,93910
|
|
87
|
+
agno/db/sqlite/utils.py,sha256=BLpiCOsydc9qIG-3aBtTibk3egmD272whUkM8dE0GE0,12068
|
|
85
88
|
agno/db/surrealdb/__init__.py,sha256=C8qp5-Nx9YnSmgKEtGua-sqG_ntCXONBw1qqnNyKPqI,75
|
|
86
89
|
agno/db/surrealdb/metrics.py,sha256=oKDRyjRQ6KR3HaO8zDHQLVMG7-0NDkOFOKX5I7mD5FA,10336
|
|
87
|
-
agno/db/surrealdb/models.py,sha256=
|
|
90
|
+
agno/db/surrealdb/models.py,sha256=2KBxSxiEI4yQ2OTOr1HVeL8Fd52tQfWkM53kwzqUmyw,11512
|
|
88
91
|
agno/db/surrealdb/queries.py,sha256=s__yJSFIx387IEflcDdti7T5j6H9NX_-zIj13F9CN9s,2051
|
|
89
|
-
agno/db/surrealdb/surrealdb.py,sha256=
|
|
90
|
-
agno/db/surrealdb/utils.py,sha256=
|
|
92
|
+
agno/db/surrealdb/surrealdb.py,sha256=QAmtMUdJIWY7E1xmZJggHi43h7V4pDSS4eLwhxun0xs,52190
|
|
93
|
+
agno/db/surrealdb/utils.py,sha256=PcZo_cTy-jI59I-XhzAomRLdV9-m0irtO4C-AYGSghs,5405
|
|
91
94
|
agno/eval/__init__.py,sha256=vCYcIbfOkT2lL8vZJ9zsea6j3byp5A-mxEb_45VaD8I,449
|
|
92
95
|
agno/eval/accuracy.py,sha256=vfJ9Kx33YGsXenNKVHPK5h0IeB2tZMlfSKu6OA-mj9g,33065
|
|
93
96
|
agno/eval/performance.py,sha256=b4BuSlGkraym9EQick4KraA1OyMa0U7LMjoFozpNbIs,30528
|
|
@@ -103,7 +106,7 @@ agno/integrations/discord/__init__.py,sha256=MS08QSnegGgpDZd9LyLjK4pWIk9dXlbzgD7
|
|
|
103
106
|
agno/integrations/discord/client.py,sha256=2IWkA-kCDsDXByKOGq2QJG6MtFsbouzNN105rsXn95A,8375
|
|
104
107
|
agno/knowledge/__init__.py,sha256=PJCt-AGKGFztzR--Ok2TNKW5QEqllZzqiI_7f8-1u80,79
|
|
105
108
|
agno/knowledge/content.py,sha256=q2bjcjDhfge_UrQAcygrv5R9ZTk7vozzKnQpatDQWRo,2295
|
|
106
|
-
agno/knowledge/knowledge.py,sha256=
|
|
109
|
+
agno/knowledge/knowledge.py,sha256=P3-aEys4nYbLWs-vCoMQ1vf5A3s6wiKNp4yqscH-wGg,78103
|
|
107
110
|
agno/knowledge/types.py,sha256=ciwDLK9MXwi_W_g4nUChEmK6meDQyqTqGK2Ad-wM1os,754
|
|
108
111
|
agno/knowledge/utils.py,sha256=_uhEFtz4p7-cIKffdj5UZ__c-u96rs2UWP6dv5HpOMk,6490
|
|
109
112
|
agno/knowledge/chunking/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -140,7 +143,7 @@ agno/knowledge/reader/arxiv_reader.py,sha256=PtqP3bB4eZAYUlK9_ytPCFiy4icvMj7bIZN
|
|
|
140
143
|
agno/knowledge/reader/base.py,sha256=9D3GU6RdGIvVD1cdOHNieA8vCIZxUBJ6HLbwl1Ol-1I,3631
|
|
141
144
|
agno/knowledge/reader/csv_reader.py,sha256=GZiRh9yx0TM_GAEOQiBp3VfffbwGBZ7M2e5eSs45gIs,6491
|
|
142
145
|
agno/knowledge/reader/docx_reader.py,sha256=oLQzbtZJg3wNFFzddrV77iDIV2Az4gvM32DLA0QrKZE,3309
|
|
143
|
-
agno/knowledge/reader/field_labeled_csv_reader.py,sha256=
|
|
146
|
+
agno/knowledge/reader/field_labeled_csv_reader.py,sha256=cHjmEtmLNF9DRk0N5OtKOxAwYHJlMLQ0_7BScRqAxkc,11643
|
|
144
147
|
agno/knowledge/reader/firecrawl_reader.py,sha256=SCbcRLkMrUb2WiC6SPuAoZULtHITa2VAmBtZlGmamGM,6855
|
|
145
148
|
agno/knowledge/reader/json_reader.py,sha256=KfDgHno_XHORIGaoA1Q2Y5M7nkcTFM9IUzWXkjVjYKQ,3245
|
|
146
149
|
agno/knowledge/reader/markdown_reader.py,sha256=HoSEkX2Svl2tEMDyzAmRNmwxsterb3i3-1-EQR6N4IU,5272
|
|
@@ -160,11 +163,11 @@ agno/knowledge/reranker/cohere.py,sha256=2Be5blVyeZ3vYlnFa2NYvJuytjaCB8G2OWJ11pQ
|
|
|
160
163
|
agno/knowledge/reranker/infinity.py,sha256=N9geg9xZqRdJZksfQcvbGJgMymXrQVJl_K5KICWqH8o,7193
|
|
161
164
|
agno/knowledge/reranker/sentence_transformer.py,sha256=ZN4SqnMZsUhg5G7AzlONM1_UjezfNrjFYXpNVHD4U-U,1912
|
|
162
165
|
agno/memory/__init__.py,sha256=XWKJU5SJObYZqEKMZ2XYwgH8-YeuWUoSRfT4dEI5HnY,101
|
|
163
|
-
agno/memory/manager.py,sha256=
|
|
166
|
+
agno/memory/manager.py,sha256=IWMnFxRF604zLY1jQArOggMwLjUUKXiPWt7RtLlpHUk,51907
|
|
164
167
|
agno/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
165
168
|
agno/models/base.py,sha256=bjP0Xt5-Jlk1I_7wHmuv8lhUPE75WzZ_iF3U-d81TUI,85214
|
|
166
169
|
agno/models/defaults.py,sha256=1_fe4-ZbNriE8BgqxVRVi4KGzEYxYKYsz4hn6CZNEEM,40
|
|
167
|
-
agno/models/message.py,sha256=
|
|
170
|
+
agno/models/message.py,sha256=HMlY71ZCDWCUrNTqIbRezWZK5FfWcvcs5eg_hhjbuqo,19023
|
|
168
171
|
agno/models/metrics.py,sha256=81IILXZwGmOTiWK003bi5mg4bM1f4LCWbwyamjFzp18,4500
|
|
169
172
|
agno/models/response.py,sha256=UIuqTBVfXOpxlpf8wOzc6wIrb0vR0FFO6JIkASaPfOQ,4213
|
|
170
173
|
agno/models/utils.py,sha256=PprNlVI8d8loHayjRsrc4TL38sfkFMS3EVZcF5cLXoA,669
|
|
@@ -252,7 +255,7 @@ agno/models/vllm/vllm.py,sha256=UtiiSvUR4pG_1CzuhY5MWduRgzM2hGVTakKJ6ZBdQmo,2730
|
|
|
252
255
|
agno/models/xai/__init__.py,sha256=ukcCxnCHxTtkJNA2bAMTX4MhCv1wJcbiq8ZIfYczIxs,55
|
|
253
256
|
agno/models/xai/xai.py,sha256=jA6_39tfapkjkHKdzbKaNq1t9qIvO1IaZY1hQqEmFVs,4181
|
|
254
257
|
agno/os/__init__.py,sha256=h8oQu7vhD5RZf09jkyM_Kt1Kdq_d5kFB9gJju8QPwcY,55
|
|
255
|
-
agno/os/app.py,sha256=
|
|
258
|
+
agno/os/app.py,sha256=xCO4zaTzsWArRjLD0jsNZcP5ixjZxKQyPlXs6fljbJ4,27819
|
|
256
259
|
agno/os/auth.py,sha256=FyBtAKWtg-qSunCas5m5pK1dVEmikOSZvcCp5r25tTA,1844
|
|
257
260
|
agno/os/config.py,sha256=u4R9yazQXIcKjR3QzEIZw_XAe_OHp3xn0ff7SVkj2jA,2893
|
|
258
261
|
agno/os/mcp.py,sha256=vJhjjSm1KC61HLoxPj24lSrjkjo7plkoFfcQX2BmTp0,10253
|
|
@@ -323,7 +326,7 @@ agno/session/summary.py,sha256=THBbzE48V81p4dKUX2W8OvbpsNO5dI6BdtqDyjfcVqw,8433
|
|
|
323
326
|
agno/session/team.py,sha256=0lS-9ljtG17iyC0n8sq_7aEy9MZsdfMf8VgObqJ_3tg,10384
|
|
324
327
|
agno/session/workflow.py,sha256=tluE_3ERMBYJtffpwlrhdETWlzJk6Xw2x06FZ1Y3fXg,7397
|
|
325
328
|
agno/team/__init__.py,sha256=toHidBOo5M3n_TIVtIKHgcDbLL9HR-_U-YQYuIt_XtE,847
|
|
326
|
-
agno/team/team.py,sha256=
|
|
329
|
+
agno/team/team.py,sha256=doNSshovZr4_amrHGgEDyVtCG0WrUe6IaSNNXC2eZ0M,377664
|
|
327
330
|
agno/tools/__init__.py,sha256=jNll2sELhPPbqm5nPeT4_uyzRO2_KRTW-8Or60kioS0,210
|
|
328
331
|
agno/tools/agentql.py,sha256=S82Z9aTNr-E5wnA4fbFs76COljJtiQIjf2grjz3CkHU,4104
|
|
329
332
|
agno/tools/airflow.py,sha256=uf2rOzZpSU64l_qRJ5Raku-R3Gky-uewmYkh6W0-oxg,2610
|
|
@@ -366,11 +369,11 @@ agno/tools/firecrawl.py,sha256=sMV6XRaSIyTSkTJbtMdIQPTsN11ozJ78YDDi04kBvQE,5341
|
|
|
366
369
|
agno/tools/function.py,sha256=QDbGgK8BYvFHuPRnVxMb-bXCao8z1hvkwBm8eaKe4m0,45671
|
|
367
370
|
agno/tools/giphy.py,sha256=_wOCWVnMdFByE9Yoz4Pf2MoKxSjkUTiPJZ928_BNe2M,3070
|
|
368
371
|
agno/tools/github.py,sha256=wct6P00YzF3zgWoV2c5aHeXX_2dgb9LqRwJAboi6QXw,70286
|
|
369
|
-
agno/tools/gmail.py,sha256=
|
|
372
|
+
agno/tools/gmail.py,sha256=gcpLfTQP--TJz9bPD12SDwwHickSLZ7yugWZcNNIuGg,29799
|
|
370
373
|
agno/tools/google_bigquery.py,sha256=j0c14CgGK8KvD7eEirsdAx7RSwcfMheugn84ySq6miU,4483
|
|
371
374
|
agno/tools/google_drive.py,sha256=dxGr_NhMsqFsr_tR3w4MgLXm7_nlCTI43sCmKw60N_4,11159
|
|
372
375
|
agno/tools/google_maps.py,sha256=AqPEIt4u6B2kQtzOnL5PH3RXoefCfjT_Uvm3coAqzaY,9513
|
|
373
|
-
agno/tools/googlecalendar.py,sha256=
|
|
376
|
+
agno/tools/googlecalendar.py,sha256=4WxmPIaxxsxAYP56XT7ehnmKEwicn9w_KOe8LMy5KB0,28670
|
|
374
377
|
agno/tools/googlesearch.py,sha256=xRuaEqn7N6JIQC6z9jFuA0Kdtoe5MafGqRMtZ8jW2AQ,3566
|
|
375
378
|
agno/tools/googlesheets.py,sha256=m8K0A8I5d68HG19OajDLCgGJzXnsnh33OQQOc6K5Qbg,15704
|
|
376
379
|
agno/tools/hackernews.py,sha256=h5w-L5FkGGMAHr6Jjez6164-UYZ_2r2qFAzwMrKLdRM,2776
|
|
@@ -544,16 +547,16 @@ agno/vectordb/weaviate/__init__.py,sha256=FIoFJgqSmGuFgpvmsg8EjAn8FDAhuqAXed7fja
|
|
|
544
547
|
agno/vectordb/weaviate/index.py,sha256=y4XYPRZFksMfrrF85B4hn5AtmXM4SH--4CyLo27EHgM,253
|
|
545
548
|
agno/vectordb/weaviate/weaviate.py,sha256=8KNa5a-RuksE6w9poD4vi_ixUBeoB96PkzCL9DHSs5o,39406
|
|
546
549
|
agno/workflow/__init__.py,sha256=lwavZXIkgqajbSf1jMqzE7kbXBIFmk5niI_NgpVI-gA,542
|
|
547
|
-
agno/workflow/condition.py,sha256=
|
|
550
|
+
agno/workflow/condition.py,sha256=9nnwzaf4SiaMKgSIbZ_mekP6ndx3daAas3vNyyUyclE,31327
|
|
548
551
|
agno/workflow/loop.py,sha256=q2XssC179htRC7KPiebUcvr0lKexfZUB9aUO4D3tOrk,32305
|
|
549
552
|
agno/workflow/parallel.py,sha256=Gb6XZbwDJgmBBbuiZTFHvphQqrsMVgM-HTOMoiIHweg,34843
|
|
550
|
-
agno/workflow/router.py,sha256
|
|
553
|
+
agno/workflow/router.py,sha256=uMUvjOgBcqpCzulM-9kVjdzXheqaMmuGz60F5JXPXTw,29449
|
|
551
554
|
agno/workflow/step.py,sha256=2vBv97QoDLtFJnWAueDLLbzWvB3dxPd5Cl_dwqdl5Ew,60251
|
|
552
555
|
agno/workflow/steps.py,sha256=1qOcH0SuPTPE0Ac3sRyRLjFoMcKyTo44hlJXdbOBNnM,25389
|
|
553
556
|
agno/workflow/types.py,sha256=DutB4UkEppJoWRiNaGEnPk6xFNpg0oCBwOb7VJ8T_xE,18646
|
|
554
557
|
agno/workflow/workflow.py,sha256=AD2mKXap840IwPb2WMnVJM30lQLAFUfWxd7nqQJ52hU,137906
|
|
555
|
-
agno-2.1.
|
|
556
|
-
agno-2.1.
|
|
557
|
-
agno-2.1.
|
|
558
|
-
agno-2.1.
|
|
559
|
-
agno-2.1.
|
|
558
|
+
agno-2.1.10.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
|
|
559
|
+
agno-2.1.10.dist-info/METADATA,sha256=g07lktwrtIdLn4D35ScRdHjz2TXIZnMD96VQXIHW1sY,24505
|
|
560
|
+
agno-2.1.10.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
561
|
+
agno-2.1.10.dist-info/top_level.txt,sha256=MKyeuVesTyOKIXUhc-d_tPa2Hrh0oTA4LM0izowpx70,5
|
|
562
|
+
agno-2.1.10.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|