lionagi 0.16.0__py3-none-any.whl → 0.16.1__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.
@@ -89,7 +89,7 @@ class LionAGIAsyncPostgresAdapter(AsyncPostgresAdapter[T]):
89
89
  sa.Column("id", sa.String, primary_key=True),
90
90
  sa.Column("content", json_type),
91
91
  sa.Column("node_metadata", json_type),
92
- sa.Column("created_at", sa.DateTime),
92
+ sa.Column("created_at", sa.Float),
93
93
  sa.Column("embedding", json_type, nullable=True),
94
94
  ).create(sync_conn, checkfirst=True)
95
95
  )
@@ -50,8 +50,7 @@ def ninsert(
50
50
  if isinstance(part, int):
51
51
  if isinstance(nested_structure, dict):
52
52
  raise TypeError(
53
- f"Unsupported key type: {type(part).__name__}."
54
- "Only string keys are acceptable.",
53
+ f"Unsupported key type: {type(part).__name__}.Only string keys are acceptable.",
55
54
  )
56
55
  while len(nested_structure) <= part:
57
56
  nested_structure.append(None)
@@ -67,8 +66,7 @@ def ninsert(
67
66
  raise TypeError("Cannot use NoneType as a key in a dictionary")
68
67
  if isinstance(part, (float, complex)):
69
68
  raise TypeError(
70
- f"Unsupported key type: {type(part).__name__}."
71
- "Only string keys are acceptable.",
69
+ f"Unsupported key type: {type(part).__name__}.Only string keys are acceptable.",
72
70
  )
73
71
  if part not in nested_structure:
74
72
  next_part = indices[i + 1]
@@ -77,8 +75,7 @@ def ninsert(
77
75
  )
78
76
  else:
79
77
  raise TypeError(
80
- f"Invalid container type: {type(nested_structure)} "
81
- "encountered during insertion"
78
+ f"Invalid container type: {type(nested_structure)} encountered during insertion"
82
79
  )
83
80
 
84
81
  nested_structure = nested_structure[part]
@@ -51,8 +51,7 @@ def nmerge(
51
51
  return _merge_sequences(nested_structure, sort_list, custom_sort)
52
52
  else:
53
53
  raise TypeError(
54
- "All items in the input list must be of the same type, "
55
- "either dict, list, or Iterable."
54
+ "All items in the input list must be of the same type, either dict, list, or Iterable."
56
55
  )
57
56
 
58
57
 
@@ -18,8 +18,7 @@ class PlannedAction(HashableModel):
18
18
  action_type: str | None = Field(
19
19
  default=None,
20
20
  description=(
21
- "The name or type of tool/action to invoke. "
22
- "(e.g., 'search_exa', 'reader_tool')"
21
+ "The name or type of tool/action to invoke. (e.g., 'search_exa', 'reader_tool')"
23
22
  ),
24
23
  )
25
24
  description: str | None = Field(
@@ -130,10 +130,7 @@ class FunctionCalling(Event):
130
130
  Returns:
131
131
  A string containing the class name and key attributes.
132
132
  """
133
- return (
134
- f"FunctionCalling(function={self.func_tool.function}, "
135
- f"arguments={self.arguments})"
136
- )
133
+ return f"FunctionCalling(function={self.func_tool.function}, arguments={self.arguments})"
137
134
 
138
135
  def to_dict(self) -> dict[str, Any]:
139
136
  """Convert instance to dictionary.
@@ -313,7 +313,6 @@ class Element(BaseModel, Observable):
313
313
  if mode == "db":
314
314
  dict_ = orjson.loads(self.to_json(decode=False))
315
315
  dict_["node_metadata"] = dict_.pop("metadata", {})
316
- dict_["created_at"] = self.created_datetime.isoformat(sep=" ")
317
316
  return dict_
318
317
 
319
318
  def as_jsonable(self) -> dict:
@@ -321,19 +320,13 @@ class Element(BaseModel, Observable):
321
320
  return self.to_dict(mode="json")
322
321
 
323
322
  @classmethod
324
- def from_dict(cls, data: dict, /, mode: str = "python") -> Element:
323
+ def from_dict(cls, data: dict) -> Element:
325
324
  """Deserializes a dictionary into an Element or subclass of Element.
326
325
 
327
326
  If `lion_class` in `metadata` refers to a subclass, this method
328
327
  is polymorphic, it will attempt to create an instance of that subclass.
329
-
330
- Args:
331
- data (dict): A dictionary of field data.
332
- mode (str): Format mode - "python" for normal dicts, "db" for database format.
333
328
  """
334
329
  # Preprocess database format if needed
335
- if mode == "db":
336
- data = cls._preprocess_db_data(data.copy())
337
330
  metadata = {}
338
331
 
339
332
  if "node_metadata" in data:
@@ -367,56 +360,6 @@ class Element(BaseModel, Observable):
367
360
  data["metadata"] = metadata
368
361
  return cls.model_validate(data)
369
362
 
370
- @classmethod
371
- def _preprocess_db_data(cls, data: dict) -> dict:
372
- """Preprocess raw database data for Element compatibility."""
373
- import datetime as dt
374
- import json
375
-
376
- # Handle created_at field - convert datetime string to timestamp
377
- if "created_at" in data and isinstance(data["created_at"], str):
378
- try:
379
- # Parse datetime string and convert to timestamp
380
- dt_obj = dt.datetime.fromisoformat(
381
- data["created_at"].replace(" ", "T")
382
- )
383
- # Treat as UTC if naive
384
- if dt_obj.tzinfo is None:
385
- dt_obj = dt_obj.replace(tzinfo=dt.timezone.utc)
386
- data["created_at"] = dt_obj.timestamp()
387
- except (ValueError, TypeError):
388
- # Keep as string if parsing fails
389
- pass
390
-
391
- # Handle JSON string fields - parse to dict/list
392
- json_fields = ["content", "node_metadata", "embedding"]
393
- for field in json_fields:
394
- if field in data and isinstance(data[field], str):
395
- if data[field] in ("null", ""):
396
- data[field] = None if field == "embedding" else {}
397
- else:
398
- try:
399
- data[field] = json.loads(data[field])
400
- except (json.JSONDecodeError, TypeError):
401
- # Keep as empty dict for metadata fields, None for embedding
402
- data[field] = {} if field != "embedding" else None
403
-
404
- # Handle node_metadata -> metadata mapping
405
- if "node_metadata" in data:
406
- if (
407
- data["node_metadata"] == "null"
408
- or data["node_metadata"] is None
409
- ):
410
- data["metadata"] = {}
411
- else:
412
- data["metadata"] = (
413
- data["node_metadata"] if data["node_metadata"] else {}
414
- )
415
- # Remove node_metadata to avoid Pydantic validation error
416
- data.pop("node_metadata", None)
417
-
418
- return data
419
-
420
363
  def to_json(self, decode: bool = True) -> str:
421
364
  """Converts this Element to a JSON string."""
422
365
  dict_ = self._to_dict()
@@ -87,8 +87,7 @@ class Graph(Element, Relational, Generic[T]):
87
87
  or edge.tail not in self.internal_nodes
88
88
  ):
89
89
  raise RelationError(
90
- "Failed to add edge: Either edge head or tail node does"
91
- " not exist in the graph."
90
+ "Failed to add edge: Either edge head or tail node does not exist in the graph."
92
91
  )
93
92
  try:
94
93
  self.internal_edges.insert(len(self.internal_edges), edge)
@@ -63,7 +63,7 @@ class Node(Element, Relational, AsyncAdaptable, Adaptable):
63
63
  self, obj_key: str, many=False, **kwargs: Any
64
64
  ) -> Any:
65
65
  kwargs["adapt_meth"] = "to_dict"
66
- kwargs["mode"] = "db"
66
+ kwargs["adapt_kw"] = {"mode": "db"}
67
67
  return await super().adapt_to_async(
68
68
  obj_key=obj_key, many=many, **kwargs
69
69
  )
@@ -77,7 +77,6 @@ class Node(Element, Relational, AsyncAdaptable, Adaptable):
77
77
  **kwargs: Any,
78
78
  ) -> Node:
79
79
  kwargs["adapt_meth"] = "from_dict"
80
- kwargs["mode"] = "db"
81
80
  return await super().adapt_from_async(
82
81
  obj, obj_key=obj_key, many=many, **kwargs
83
82
  )
@@ -87,7 +86,7 @@ class Node(Element, Relational, AsyncAdaptable, Adaptable):
87
86
  Convert this Node to another format using a registered adapter.
88
87
  """
89
88
  kwargs["adapt_meth"] = "to_dict"
90
- kwargs["mode"] = "db"
89
+ kwargs["adapt_kw"] = {"mode": "db"}
91
90
  return super().adapt_to(obj_key=obj_key, many=many, **kwargs)
92
91
 
93
92
  @classmethod
@@ -104,7 +103,6 @@ class Node(Element, Relational, AsyncAdaptable, Adaptable):
104
103
  auto-delegate to the correct subclass via from_dict.
105
104
  """
106
105
  kwargs["adapt_meth"] = "from_dict"
107
- kwargs["mode"] = "db"
108
106
  return super().adapt_from(obj, obj_key=obj_key, many=many, **kwargs)
109
107
 
110
108
  @field_serializer("content")
@@ -587,8 +587,7 @@ class Instruction(RoledMessage):
587
587
 
588
588
  if request_model and request_fields:
589
589
  raise ValueError(
590
- "You cannot pass both request_model and request_fields "
591
- "to create_instruction"
590
+ "You cannot pass both request_model and request_fields to create_instruction"
592
591
  )
593
592
  if guidance:
594
593
  self.guidance = guidance
@@ -216,8 +216,7 @@ class MessageManager(Manager):
216
216
  """
217
217
  if not isinstance(action_request, ActionRequest):
218
218
  raise ValueError(
219
- "Error: please provide a corresponding action request for an "
220
- "action response."
219
+ "Error: please provide a corresponding action request for an action response."
221
220
  )
222
221
  params = {
223
222
  "action_request": action_request,
@@ -241,10 +241,7 @@ class RoledMessage(Node, Sendable):
241
241
  if len(str(self.content)) > 75
242
242
  else str(self.content)
243
243
  )
244
- return (
245
- f"Message(role={self.role}, sender={self.sender}, "
246
- f"content='{content_preview}')"
247
- )
244
+ return f"Message(role={self.role}, sender={self.sender}, content='{content_preview}')"
248
245
 
249
246
 
250
247
  # File: lionagi/protocols/messages/message.py
@@ -56,8 +56,7 @@ class ClaudeCodeEndpoint(Endpoint):
56
56
  "Please install it with `uv pip install lionagi[claude_code_sdk]`."
57
57
  )
58
58
  warnings.warn(
59
- "The claude_code `query` endpoint is deprecated. "
60
- "Use `query_cli` endpoint instead.",
59
+ "The claude_code `query` endpoint is deprecated. Use `query_cli` endpoint instead.",
61
60
  DeprecationWarning,
62
61
  )
63
62
 
@@ -216,8 +216,7 @@ class CircuitBreaker:
216
216
  self._metrics["rejected_count"] += 1
217
217
 
218
218
  logger.warning(
219
- f"Circuit '{self.name}' is HALF_OPEN and at capacity. "
220
- f"Try again later."
219
+ f"Circuit '{self.name}' is HALF_OPEN and at capacity. Try again later."
221
220
  )
222
221
 
223
222
  return False
@@ -63,8 +63,7 @@ class MemoryRequest(BaseModel):
63
63
  content: str | None = Field(
64
64
  None,
65
65
  description=(
66
- "Content to store. REQUIRED if action='store'. "
67
- "For other actions, leave it None."
66
+ "Content to store. REQUIRED if action='store'. For other actions, leave it None."
68
67
  ),
69
68
  )
70
69
 
@@ -96,8 +95,7 @@ class MemoryRequest(BaseModel):
96
95
  query: str | None = Field(
97
96
  None,
98
97
  description=(
99
- "Query text for semantic search. "
100
- "REQUIRED for actions: 'recall', 'search', 'explore'."
98
+ "Query text for semantic search. REQUIRED for actions: 'recall', 'search', 'explore'."
101
99
  ),
102
100
  )
103
101
 
lionagi/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "0.16.0"
1
+ __version__ = "0.16.1"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lionagi
3
- Version: 0.16.0
3
+ Version: 0.16.1
4
4
  Summary: An Intelligence Operating System.
5
5
  Author-email: HaiyangLi <quantocean.li@gmail.com>
6
6
  License: Apache License
@@ -223,14 +223,14 @@ Requires-Dist: aiocache>=0.12.0
223
223
  Requires-Dist: aiohttp>=3.11.0
224
224
  Requires-Dist: anyio>=4.7.0
225
225
  Requires-Dist: backoff>=2.0.0
226
- Requires-Dist: exceptiongroup>=1.3.0
227
226
  Requires-Dist: jinja2>=3.0.0
228
227
  Requires-Dist: json-repair>=0.40.0
229
228
  Requires-Dist: msgspec>=0.18.0
230
229
  Requires-Dist: pillow>=10.0.0
231
230
  Requires-Dist: psutil>=6.0.0
232
231
  Requires-Dist: pydantic-settings>=2.8.0
233
- Requires-Dist: pydapter[pandas]>=1.0.5
232
+ Requires-Dist: pydantic>=2.8.0
233
+ Requires-Dist: pydapter[pandas]>=1.1.1
234
234
  Requires-Dist: python-dotenv>=1.1.0
235
235
  Requires-Dist: tiktoken>=0.9.0
236
236
  Requires-Dist: toml>=0.8.0
@@ -6,10 +6,10 @@ lionagi/config.py,sha256=D13nnjpgJKz_LlQrzaKKVefm4hqesz_dP9ROjWmGuLE,3811
6
6
  lionagi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  lionagi/settings.py,sha256=HDuKCEJCpc4HudKodBnhoQUGuTGhRHdlIFhbtf3VBtY,1633
8
8
  lionagi/utils.py,sha256=cFUhOL2clDwsRnBjNdysnK-_0Z9SmejPIkg6_i2jLXE,27512
9
- lionagi/version.py,sha256=3Msc5baw88UJubVj5AVFB8tExkT2OFIsNWe2leaoHhc,23
9
+ lionagi/version.py,sha256=R5mBEOxhwu470g2hhSdRVj5XDTgHKYJlCXukuZUxrtI,23
10
10
  lionagi/adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  lionagi/adapters/_utils.py,sha256=n4DS27CZfC-0O_UFaYtlUdjiMx9IeYsGpP7MVaFO5ZA,885
12
- lionagi/adapters/async_postgres_adapter.py,sha256=OEJd9ie8prxRQK2_-W9qmdI3Sl6Q7xxRs7Vey16G3pQ,3172
12
+ lionagi/adapters/async_postgres_adapter.py,sha256=StjdjzHVkYOC_xVfmaVBd0E34tdsUrbR3ENSpmZIfeI,3169
13
13
  lionagi/adapters/postgres_model_adapter.py,sha256=uwWrbnihtYsCIttHExmtAIZwyohFtKoxnHU1N1M2NvQ,4519
14
14
  lionagi/fields/__init__.py,sha256=yrn9NDAM6_v73kK7aJeb-Pvqigeu8WASaV-My-6CDsc,939
15
15
  lionagi/fields/action.py,sha256=OziEpbaUeEVo34KdtbzDxXJBgkf3QLxlcKIQAfHe4O0,5791
@@ -35,8 +35,8 @@ lionagi/libs/nested/__init__.py,sha256=5y5joOZzfFWERl75auAcNcKC3lImVJ5ZZGvvHZUFC
35
35
  lionagi/libs/nested/flatten.py,sha256=sB4jxZRoaUbjak9RbIWVWNKz2hzkhQJPFffV_Ws1GA0,5479
36
36
  lionagi/libs/nested/nfilter.py,sha256=kF7AWjLFHr22SOjRBSTx-7iRPaR7gs0FY5Y4XF2sWJ8,1768
37
37
  lionagi/libs/nested/nget.py,sha256=sQRz3OKx3bYlgoyLSHOXlHzd3ob-f_jmsMfTCNZkJfo,1284
38
- lionagi/libs/nested/ninsert.py,sha256=IjJXhg-O_svHaJkLuWX1xvUQ6YTtsEnOIi8BfVpbeSM,3887
39
- lionagi/libs/nested/nmerge.py,sha256=w8frt7tw1SFonHxo9uJpPjK2_ss-OWqOc-c1Bf7sjt0,5304
38
+ lionagi/libs/nested/ninsert.py,sha256=NiQk4Ne5YKGGW4qiKXDkOkNvrIOeNQsM0lPVCQZ-KMg,3822
39
+ lionagi/libs/nested/nmerge.py,sha256=Jve5-BC4XXGVPbYNewrOOb57WOSV50CKMLbwqI0qwgs,5289
40
40
  lionagi/libs/nested/npop.py,sha256=jxzjDPF-3gGPjrs_jWaG-g1u-kSa74jOI3EotOS4s8I,2173
41
41
  lionagi/libs/nested/nset.py,sha256=vkLR970hSzj8xCk-Z3RNQMJL2x0uMHmx1pw0VZQx2T0,3393
42
42
  lionagi/libs/nested/unflatten.py,sha256=lTON1LfCyhZ3xeTEdBiIONcHLQouPcBNARTbXzHZ03U,2618
@@ -121,7 +121,7 @@ lionagi/operations/types.py,sha256=fM8HphnbBifMzhoKKvdl3JxGCBHlEGPJEYkLWj9b7vE,7
121
121
  lionagi/operations/utils.py,sha256=b8HmpF5vRgmf6PTzg3_fZCIKMnhoGa0HCyOlX6JCz7g,1263
122
122
  lionagi/operations/ReAct/ReAct.py,sha256=UzW3MClv9_w1AqrZIuATOZ9ASTb8HPD0Rlotlp0mYOg,13388
123
123
  lionagi/operations/ReAct/__init__.py,sha256=5y5joOZzfFWERl75auAcNcKC3lImVJ5ZZGvvHZUFCJM,112
124
- lionagi/operations/ReAct/utils.py,sha256=mBKii3zIxVg-l18fXUfDqGTK0h0JX_DcM2jO_YwRRu4,4117
124
+ lionagi/operations/ReAct/utils.py,sha256=qYh-zTRCHXyuNpSgBmooTG0TVp9Pdht0tONPwdv8BT4,4102
125
125
  lionagi/operations/_act/__init__.py,sha256=5y5joOZzfFWERl75auAcNcKC3lImVJ5ZZGvvHZUFCJM,112
126
126
  lionagi/operations/_act/act.py,sha256=LfN4UqTTHVvO1h9tqmDhVfVafVUOry4YGEivIZbmLqc,2810
127
127
  lionagi/operations/brainstorm/__init__.py,sha256=5y5joOZzfFWERl75auAcNcKC3lImVJ5ZZGvvHZUFCJM,112
@@ -153,7 +153,7 @@ lionagi/protocols/contracts.py,sha256=ii7luaPJsEKOb3J-rcaNysPDGU3nEzpgy_8g1z5_CC
153
153
  lionagi/protocols/ids.py,sha256=RM40pP_4waMJcfCGmEK_PfS8-k_DuDbC1fG-2Peuf6s,2472
154
154
  lionagi/protocols/types.py,sha256=EEmgYcaMCbgLU2rk7lTyKyRh_B15BeMccciv097j3Eg,2828
155
155
  lionagi/protocols/action/__init__.py,sha256=5y5joOZzfFWERl75auAcNcKC3lImVJ5ZZGvvHZUFCJM,112
156
- lionagi/protocols/action/function_calling.py,sha256=rfuzIowjJpyqO5Ynfs5fGnxsDIU5aKinTj1NI6bGlEU,5106
156
+ lionagi/protocols/action/function_calling.py,sha256=jFy6Ruh3QWkERtBHXqPWVwrOH5aDitEo8oJHZgW5xnI,5066
157
157
  lionagi/protocols/action/manager.py,sha256=XmdQIaVgSpmFBFW9kbW_rdwdQmlBteP4VRanxh_f918,8549
158
158
  lionagi/protocols/action/tool.py,sha256=h2FAY1b8y3LXrvAtfFhvdv1nu8cwz2knUeRCi2G9k1E,5243
159
159
  lionagi/protocols/forms/__init__.py,sha256=5y5joOZzfFWERl75auAcNcKC3lImVJ5ZZGvvHZUFCJM,112
@@ -162,7 +162,7 @@ lionagi/protocols/forms/flow.py,sha256=t9Ycvmb-stj0rCyvXXwd7WBcDtuCCTEKYst2aqFDV
162
162
  lionagi/protocols/forms/form.py,sha256=B4903km_Ljz-OxYkb1ZT_cpHZSaAYYJpZMsffWlooo8,3062
163
163
  lionagi/protocols/forms/report.py,sha256=SvJJjOSCTfVuqK7AKaY8ldQIGJeSK2zoyPWUV41ge2c,1609
164
164
  lionagi/protocols/generic/__init__.py,sha256=5y5joOZzfFWERl75auAcNcKC3lImVJ5ZZGvvHZUFCJM,112
165
- lionagi/protocols/generic/element.py,sha256=5R9cLodaPzSPbellgFEudRxZIOMJDiCV8emyQKuEbPI,18621
165
+ lionagi/protocols/generic/element.py,sha256=etpT_ANFgBYYCPRzbVgX16i6C1tZaxNXL5PuY-rqhmA,16205
166
166
  lionagi/protocols/generic/event.py,sha256=n5EraAJ5bPiwegTdkxsILs7-vFJwmnXhB2om4xMQnK0,6529
167
167
  lionagi/protocols/generic/log.py,sha256=Y06zAQewkNlaIWjut_c6c45KY_LJfLHwzUaDGLULaas,8212
168
168
  lionagi/protocols/generic/pile.py,sha256=mc10zh9RdqfozPEBOgRdkrTgIWUHBz8enAcQ-8pFhRQ,37046
@@ -171,8 +171,8 @@ lionagi/protocols/generic/progression.py,sha256=HCV_EnQCFvjg6D7eF4ygGrZNQPEOtu75
171
171
  lionagi/protocols/graph/__init__.py,sha256=UPu3OmUpjSgX2aBuBJUdG2fppGlfqAH96hU0qIMBMp0,253
172
172
  lionagi/protocols/graph/_utils.py,sha256=mts4M2wcGKdY9hC-1917lxIJT5oycW9VnRgfRx8ydbI,605
173
173
  lionagi/protocols/graph/edge.py,sha256=YxSGj4w_fG7khm-zpKduuK5fJzhJDx23JhU1dZp29d8,5241
174
- lionagi/protocols/graph/graph.py,sha256=iM54gAluKgnYtv-6UaYqWhlzdijZPw0B1vren-LrNes,10605
175
- lionagi/protocols/graph/node.py,sha256=JwX-yaXgjifZbWYUtfL99H2_9T8EnWs73tPqo5xvI00,4594
174
+ lionagi/protocols/graph/graph.py,sha256=eczTdL6XoeSmG6gqF-iTQXDurPAq0y1jMF0FNoCjUX4,10586
175
+ lionagi/protocols/graph/node.py,sha256=DZapkk4SJSzDEB1BfD3S2DUelcheTha2JoW8rSIcqxY,4562
176
176
  lionagi/protocols/mail/__init__.py,sha256=5y5joOZzfFWERl75auAcNcKC3lImVJ5ZZGvvHZUFCJM,112
177
177
  lionagi/protocols/mail/exchange.py,sha256=P1PcrFylIBeiQa8kox9H1qyJ4kjhUlbLiTUT8rs1OXg,7041
178
178
  lionagi/protocols/mail/mail.py,sha256=RB5CUft_4J85H9nM9g6aRXomTaqKwF5xVjJacPAhoa8,1356
@@ -184,9 +184,9 @@ lionagi/protocols/messages/action_request.py,sha256=-tG9ViTSiZ2beM0onE6C552H5oth
184
184
  lionagi/protocols/messages/action_response.py,sha256=SM3_vA9QPXz3Gc9uPhXm3zOXYheHZZGtl67Yff48Vu8,5272
185
185
  lionagi/protocols/messages/assistant_response.py,sha256=jrzRPVHHDnPw86Xp0IHnPy0tOZdsk7rBwhG5xnBXAjs,6912
186
186
  lionagi/protocols/messages/base.py,sha256=Ng1Q8yIIIFauUv53LnwDeyOrM-cSCfsHM1GwkxChf2o,2317
187
- lionagi/protocols/messages/instruction.py,sha256=0dUsUYd6xYsbOHU7GafvqBkpDQQoFOXJXT-UoJArYWU,21146
188
- lionagi/protocols/messages/manager.py,sha256=zN8LaWFWhNHZ1eB03XqDUqsab_EJ8CBZunohMt3-4JY,16916
189
- lionagi/protocols/messages/message.py,sha256=OV9jnRRvhwIib5Sg8Md6XlFk-V7dTvKdLcf1K-l7vZE,7784
187
+ lionagi/protocols/messages/instruction.py,sha256=Qpme1oSc406V3-F2iOyqC8TVT2GWVduZaoDfdGdBnDI,21127
188
+ lionagi/protocols/messages/manager.py,sha256=ABDiN-QULbfbSrHVlPe3kqBxr7e7sYoT49wHQMLiT6c,16897
189
+ lionagi/protocols/messages/message.py,sha256=eXBLDsu8D7x7lkksub23rseOHTHIDXKSg4wRnbSuSOU,7744
190
190
  lionagi/protocols/messages/system.py,sha256=x0F1C57SFHaO2-Z9cy1QshYlxv8wjl7VppooaGKbMIg,4658
191
191
  lionagi/protocols/messages/templates/README.md,sha256=Ch4JrKSjd85fLitAYO1OhZjNOGKHoEwaKQlcV16jiUI,1286
192
192
  lionagi/protocols/messages/templates/action_request.jinja2,sha256=d6OmxHKyvvNDSK4bnBM3TGSUk_HeE_Q2EtLAQ0ZBEJg,120
@@ -202,7 +202,7 @@ lionagi/service/__init__.py,sha256=C_TPk1roVYz6uVLK1JVxrK3tPtYqN6W0D7FzI-s6CWY,5
202
202
  lionagi/service/imodel.py,sha256=ya406sf42-KRrKN4TJJLtI6wsKeM5hAhWr7Hubg7W0E,16371
203
203
  lionagi/service/manager.py,sha256=tN3p0kM7pg_CEs6wXK62_B_h49Q3nrU-9qniFhw2ABE,1164
204
204
  lionagi/service/rate_limited_processor.py,sha256=JhkuzJMHUCdndkRbAUf9wUQI9zOw-dutRy_nHf8EE5I,6101
205
- lionagi/service/resilience.py,sha256=uYJYZQ9M-tje8ME3vJmYabXwKHF1c3Ij4-WrdCwogcs,18742
205
+ lionagi/service/resilience.py,sha256=91RPFtQY4QyNga_nuSNLsbzNE26pXJMTAfLaQqVdvmg,18714
206
206
  lionagi/service/token_calculator.py,sha256=piTidArzUkIMCtOLC_HBLoZNYZcENQywgeKM31bxezM,6457
207
207
  lionagi/service/types.py,sha256=9zX08BhdmPE9FE1YTyvsy14hdDGRYzyyVBmoBURzQvI,1096
208
208
  lionagi/service/connections/__init__.py,sha256=yHQZ7OJpCftd6CStYR8inbxjJydYdmv9kCvbUBhJ2zU,362
@@ -213,7 +213,7 @@ lionagi/service/connections/header_factory.py,sha256=IYeTQQk7r8FXcdhmW7orCxHjNO-
213
213
  lionagi/service/connections/match_endpoint.py,sha256=Df5v3bprnJq5CqOzuK0KzwawOIfAsGZZM4CnE-sliu4,2850
214
214
  lionagi/service/connections/providers/__init__.py,sha256=3lzOakDoBWmMaNnT2g-YwktPKa_Wme4lnPRSmOQfayY,105
215
215
  lionagi/service/connections/providers/anthropic_.py,sha256=vok8mIyFiuV3K83tOjdYfruA6cv1h_57ML6RtpuW-bU,3157
216
- lionagi/service/connections/providers/claude_code_.py,sha256=dix4VoR2YwRabJ0F8I3mV8sVtRQEquExqP6mfbE_rGk,10435
216
+ lionagi/service/connections/providers/claude_code_.py,sha256=lCQd6HQ-5CsOKc-YtBbYMsumfKswW2-gFaXjWpo9V6U,10420
217
217
  lionagi/service/connections/providers/claude_code_cli.py,sha256=kqEOnCUOOh2O_3NGi6W7r-gdLsbW-Jcp11tm30VEv4Q,4455
218
218
  lionagi/service/connections/providers/exa_.py,sha256=kuWD7yyYRqIa4ChSn0TsxFA5V5LwvFUD-w8TZ6mx4rk,1048
219
219
  lionagi/service/connections/providers/nvidia_nim_.py,sha256=95vmo0DSONYBVHkR9SGJ5BiHNKFZNZBrjw4_7ShOXQA,3154
@@ -242,8 +242,8 @@ lionagi/tools/base.py,sha256=hEGnE4MD0CM4UqnF0xsDRKB0aM-pyrTFHl8utHhyJLU,1897
242
242
  lionagi/tools/types.py,sha256=XtJLY0m-Yi_ZLWhm0KycayvqMCZd--HxfQ0x9vFUYDE,230
243
243
  lionagi/tools/file/__init__.py,sha256=5y5joOZzfFWERl75auAcNcKC3lImVJ5ZZGvvHZUFCJM,112
244
244
  lionagi/tools/file/reader.py,sha256=2YKgU3VKo76zfL_buDAUQJoPLC56f6WJ4_mdJjlMDIM,9509
245
- lionagi/tools/memory/tools.py,sha256=earYkKxSOz_iXkqVZYTEDfE3dwZYIWPXZrqQ1DYGz4I,15941
246
- lionagi-0.16.0.dist-info/METADATA,sha256=GGDAE5nFDfUE01hTZxmw1FWJ8XwSnPSsxNoNuHHQR1g,23119
247
- lionagi-0.16.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
248
- lionagi-0.16.0.dist-info/licenses/LICENSE,sha256=VXFWsdoN5AAknBCgFqQNgPWYx7OPp-PFEP961zGdOjc,11288
249
- lionagi-0.16.0.dist-info/RECORD,,
245
+ lionagi/tools/memory/tools.py,sha256=7hO0Ua3D7sP_VS0VTqd6pbRd80nQX8Zl9nTJyGXjtMo,15911
246
+ lionagi-0.16.1.dist-info/METADATA,sha256=n7VXqGgUE7Ajne1SHvzGF8XHt-JpWjMIvscXCBwQ9nE,23113
247
+ lionagi-0.16.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
248
+ lionagi-0.16.1.dist-info/licenses/LICENSE,sha256=VXFWsdoN5AAknBCgFqQNgPWYx7OPp-PFEP961zGdOjc,11288
249
+ lionagi-0.16.1.dist-info/RECORD,,