lionagi 0.10.5__py3-none-any.whl → 0.10.7__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.
@@ -16,8 +16,8 @@ class ResearchFinding(HashableModel):
16
16
  A single piece of information or insight from the research phase.
17
17
  """
18
18
 
19
- summary: str = Field(
20
- ...,
19
+ summary: str | None = Field(
20
+ None,
21
21
  description="Concise text describing the discovered fact, concept, or best practice.",
22
22
  )
23
23
  snippets: list[TextSnippet | CodeSnippet] = Field(
@@ -35,8 +35,8 @@ class PotentialRisk(HashableModel):
35
35
  Identifies a risk or challenge discovered during research.
36
36
  """
37
37
 
38
- description: str = Field(
39
- ...,
38
+ description: str | None = Field(
39
+ None,
40
40
  description="Short text describing the risk. E.g., 'Scalability concerns with chosen DB'.",
41
41
  )
42
42
  impact: str | None = Field(
@@ -0,0 +1,121 @@
1
+ from pathlib import Path
2
+ from typing import Any
3
+
4
+ from lionagi.utils import create_path, lcall
5
+
6
+ from .process import dir_to_files
7
+
8
+
9
+ def concat(
10
+ data_path: str | Path | list,
11
+ file_types: list[str],
12
+ output_dir: str | Path = None,
13
+ output_filename: str = None,
14
+ file_exist_ok: bool = True,
15
+ recursive: bool = True,
16
+ verbose: bool = True,
17
+ threshold: int = 0,
18
+ return_fps: bool = False,
19
+ return_files: bool = False,
20
+ exclude_patterns: list[str] = None,
21
+ **kwargs,
22
+ ) -> dict[str, Any]:
23
+ """
24
+ data_path: str or Path or list of str or Path, the directory or file paths to concatenate.
25
+ file_types: list of str, the file types to concatenate. [e.g. ['.txt', '.md']]
26
+ output_dir: str or Path, the directory to save the concatenated file. If provided, will save the file.
27
+ output_filename: str, the filename to save the concatenated file.
28
+ file_exist_ok: bool, if True, overwrite the existing file. Default is True.
29
+ recursive: bool, if True, search files recursively. Default is True.
30
+ verbose: bool, if True, print the output path. Default is True.
31
+ threshold: int, the minimum number of chars for the file to be considered valid to concatenate.
32
+ exclude_patterns: list of str, patterns to exclude files from concatenation (e.g. ['log', 'temp', '.venv']).
33
+ kwargs: additional keyword arguments to pass to create_path.
34
+ """
35
+ persist_path = None
36
+ if output_dir:
37
+ if not output_filename:
38
+ output_filename = "concatenated_text.txt"
39
+ kwargs["timestamp"] = kwargs.get("timestamp", True)
40
+ kwargs["random_hash_digits"] = kwargs.get("random_hash_digits", 6)
41
+ output_filename = output_filename or "concatenated_text.txt"
42
+ persist_path = create_path(
43
+ output_dir, output_filename, file_exist_ok=file_exist_ok, **kwargs
44
+ )
45
+
46
+ texts = []
47
+
48
+ def _check_existence(_p: str) -> Path | list[Path] | None:
49
+ if exclude_patterns:
50
+ _str_p = str(_p)
51
+ for pattern in exclude_patterns:
52
+ if pattern in _str_p:
53
+ return None
54
+
55
+ if not Path(_p).exists():
56
+ # if the path doesn't exist, return None
57
+ if verbose:
58
+ print(f"Path {_p} does not exist, skipping...")
59
+ return None
60
+
61
+ p = Path(_p)
62
+ if p.is_dir():
63
+ return dir_to_files(
64
+ p,
65
+ recursive=recursive,
66
+ file_types=file_types,
67
+ ignore_errors=True,
68
+ max_workers=5,
69
+ )
70
+ if p.is_file():
71
+ return p
72
+
73
+ data_path: list[Path] = lcall(
74
+ data_path,
75
+ _check_existence,
76
+ sanitize_input=True,
77
+ unique_input=True,
78
+ flatten=True,
79
+ dropna=True,
80
+ unique_output=True,
81
+ flatten_tuple_set=True,
82
+ )
83
+
84
+ contents = {}
85
+ fps = []
86
+ for dp in data_path:
87
+ try:
88
+ text = dp.read_text(encoding="utf-8")
89
+
90
+ except Exception:
91
+ # if we cannot read the file, skip it
92
+ print(f"Could not read file: {dp}. Skipping...")
93
+ continue
94
+
95
+ if threshold > 0 and len(text) < threshold:
96
+ continue
97
+
98
+ fps.append(dp)
99
+ contents[str(dp)] = text
100
+
101
+ for k, text in sorted(contents.items(), key=lambda x: x[0]):
102
+ texts.extend(["---", k, "---\n", text])
103
+
104
+ text = "\n".join(texts)
105
+ if persist_path:
106
+ persist_path.write_text(text, encoding="utf-8")
107
+ if verbose:
108
+ print(
109
+ f"Concatenated {len(fps)} files to {persist_path}."
110
+ f" The file contains {len(text)} characters."
111
+ )
112
+
113
+ out = {"text": text} # default output
114
+ if persist_path:
115
+ out["persist_path"] = persist_path
116
+ if return_files:
117
+ out["texts"] = texts
118
+ if return_fps:
119
+ out["fps"] = fps
120
+
121
+ return out
@@ -203,7 +203,7 @@ def chunk(
203
203
  )
204
204
 
205
205
  if reader_tool is None:
206
- reader_tool = lambda x: x.read_text(encoding="utf-8")
206
+ reader_tool = lambda x: Path(x).read_text(encoding="utf-8")
207
207
 
208
208
  if reader_tool == "docling":
209
209
  from lionagi.libs.package.imports import check_import
@@ -1,52 +1,52 @@
1
1
  {
2
- "options": {
3
- "math": {
4
- "name": "Mathematical Framework",
5
- "description": "Offers a suite of math glyphs and notation rules.",
6
- "glyphs": [
7
- {
8
- "symbol": "\u21b9",
9
- "name": "Focus/Filter",
10
- "description": "Used for focusing instructions"
11
- },
12
- {
13
- "symbol": "\u03a3",
14
- "name": "Summarize",
15
- "description": "Condense large sets of data"
16
- },
17
- {
18
- "symbol": "\u2295",
19
- "name": "Combine/Merge",
20
- "description": "Merge multiple data sources"
21
- },
22
- {
23
- "symbol": "\u2022",
24
- "name": "Group Operation",
25
- "description": "Binary operation in group theory"
26
- }
27
- ]
2
+ "options": {
3
+ "math": {
4
+ "name": "Mathematical Framework",
5
+ "description": "Offers a suite of math glyphs and notation rules.",
6
+ "glyphs": [
7
+ {
8
+ "symbol": "\u21b9",
9
+ "name": "Focus/Filter",
10
+ "description": "Used for focusing instructions"
28
11
  },
29
- "optim": {
30
- "name": "Optimization Framework",
31
- "description": "Compression and optimization for code/math expressions.",
32
- "glyphs": [
33
- {
34
- "symbol": "IF",
35
- "name": "Conditional Operator",
36
- "description": "Represents branching logic"
37
- }
38
- ]
12
+ {
13
+ "symbol": "\u03a3",
14
+ "name": "Summarize",
15
+ "description": "Condense large sets of data"
39
16
  },
40
- "custom_algebra": {
41
- "name": "Custom Algebraic Framework",
42
- "description": "Extra rules for ring, group, field expansions.",
43
- "glyphs": [
44
- {
45
- "symbol": "\u221e",
46
- "name": "Infinite Operator",
47
- "description": "Represents unbounded algebraic ops"
48
- }
49
- ]
17
+ {
18
+ "symbol": "\u2295",
19
+ "name": "Combine/Merge",
20
+ "description": "Merge multiple data sources"
21
+ },
22
+ {
23
+ "symbol": "\u2022",
24
+ "name": "Group Operation",
25
+ "description": "Binary operation in group theory"
26
+ }
27
+ ]
28
+ },
29
+ "optim": {
30
+ "name": "Optimization Framework",
31
+ "description": "Compression and optimization for code/math expressions.",
32
+ "glyphs": [
33
+ {
34
+ "symbol": "IF",
35
+ "name": "Conditional Operator",
36
+ "description": "Represents branching logic"
37
+ }
38
+ ]
39
+ },
40
+ "custom_algebra": {
41
+ "name": "Custom Algebraic Framework",
42
+ "description": "Extra rules for ring, group, field expansions.",
43
+ "glyphs": [
44
+ {
45
+ "symbol": "\u221e",
46
+ "name": "Infinite Operator",
47
+ "description": "Represents unbounded algebraic ops"
50
48
  }
49
+ ]
51
50
  }
51
+ }
52
52
  }
@@ -19,10 +19,14 @@ message_text = template.render(**args)
19
19
  print(message_text)
20
20
  ```
21
21
 
22
- Benefits and Customization
23
- • You can easily rearrange sections within these templates without changing your code logic.
24
- • Each message type is clearly separated, making it simpler to maintain or adjust one message format without affecting the others.
25
- • If you find that you use some snippet (like rendering a schema) in multiple templates, you can factor it out into its own partial template (like tool_schemas.jinja2) and include it where needed.
26
- • Over time, you can add more templates or split existing ones if certain messages become too complex.
22
+ Benefits and Customization • You can easily rearrange sections within these
23
+ templates without changing your code logic. • Each message type is clearly
24
+ separated, making it simpler to maintain or adjust one message format without
25
+ affecting the others. • If you find that you use some snippet (like rendering a
26
+ schema) in multiple templates, you can factor it out into its own partial
27
+ template (like tool_schemas.jinja2) and include it where needed. • Over time,
28
+ you can add more templates or split existing ones if certain messages become too
29
+ complex.
27
30
 
28
- By establishing this set of base templates and arguments, you have a starting point. You can expand or refine as your requirements evolve.
31
+ By establishing this set of base templates and arguments, you have a starting
32
+ point. You can expand or refine as your requirements evolve.
lionagi/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "0.10.5"
1
+ __version__ = "0.10.7"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lionagi
3
- Version: 0.10.5
3
+ Version: 0.10.7
4
4
  Summary: An Intelligence Operating System.
5
5
  Author-email: HaiyangLi <quantocean.li@gmail.com>
6
6
  License: Apache License
@@ -220,7 +220,7 @@ Classifier: Programming Language :: Python :: 3.12
220
220
  Classifier: Programming Language :: Python :: 3.13
221
221
  Requires-Python: >=3.10
222
222
  Requires-Dist: aiocache>=0.12.0
223
- Requires-Dist: aiohttp>=3.11.0
223
+ Requires-Dist: aiohttp>=3.11.14
224
224
  Requires-Dist: jinja2>=3.0.0
225
225
  Requires-Dist: pandas>=2.0.0
226
226
  Requires-Dist: pillow>=10.0.0
@@ -241,21 +241,28 @@ Description-Content-Type: text/markdown
241
241
  ![PyPI - Downloads](https://img.shields.io/pypi/dm/lionagi?color=blue)
242
242
  ![Python Version](https://img.shields.io/badge/python-3.10%2B-blue)
243
243
 
244
- [Documentation](https://lion-agi.github.io/lionagi/) | [Discord](https://discord.gg/aqSJ2v46vu) | [PyPI](https://pypi.org/project/lionagi/) | [Roadmap](https://trello.com/b/3seomsrI/lionagi)
244
+ [Documentation](https://lion-agi.github.io/lionagi/) |
245
+ [Discord](https://discord.gg/aqSJ2v46vu) |
246
+ [PyPI](https://pypi.org/project/lionagi/) |
247
+ [Roadmap](https://trello.com/b/3seomsrI/lionagi)
245
248
 
246
249
  # LION - Language InterOperable Network
247
250
 
248
251
  ## An Intelligence Operating System
249
252
 
250
- LionAGI is a robust framework for orchestrating multi-step AI operations with precise control. Bring together multiple models, advanced ReAct reasoning, tool integrations, and custom validations in a single coherent pipeline.
253
+ LionAGI is a robust framework for orchestrating multi-step AI operations with
254
+ precise control. Bring together multiple models, advanced ReAct reasoning, tool
255
+ integrations, and custom validations in a single coherent pipeline.
251
256
 
252
257
  ## Why LionAGI?
253
258
 
254
259
  - **Structured**: LLM interactions are validated and typed (via Pydantic).
255
- - **Expandable**: Integrate multiple providers (OpenAI, Anthropic, Perplexity, custom) with minimal friction.
256
- - **Controlled**: Built-in safety checks, concurrency strategies, and advanced multi-step flows—like ReAct with verbose outputs.
257
- - **Transparent**: Real-time logging, message introspection, and easy debugging of tool usage.
258
-
260
+ - **Expandable**: Integrate multiple providers (OpenAI, Anthropic, Perplexity,
261
+ custom) with minimal friction.
262
+ - **Controlled**: Built-in safety checks, concurrency strategies, and advanced
263
+ multi-step flows—like ReAct with verbose outputs.
264
+ - **Transparent**: Real-time logging, message introspection, and easy debugging
265
+ of tool usage.
259
266
 
260
267
  ## Installation
261
268
 
@@ -263,17 +270,11 @@ LionAGI is a robust framework for orchestrating multi-step AI operations with pr
263
270
  pip install lionagi
264
271
  ```
265
272
 
266
- Dependencies:
267
- aiocahce
268
- • aiohttp
269
- • jinja2
270
- • pandas
271
- • pillow
272
- • pydantic
273
- • python-dotenv
274
- • tiktoken
273
+ Dependencies: • aiocahce • aiohttp • jinja2 • pandas • pillow • pydantic
274
+ python-dotenv tiktoken
275
275
 
276
276
  ## Quick Start
277
+
277
278
  ```python
278
279
  from lionagi import Branch, iModel
279
280
 
@@ -294,6 +295,7 @@ print(response)
294
295
  ```
295
296
  You claim to be a dragon, oh what a braggin'!
296
297
  ```
298
+
297
299
  ### Structured Responses
298
300
 
299
301
  Use Pydantic to keep outputs structured:
@@ -311,6 +313,7 @@ res = await hunter.communicate(
311
313
  print(type(response))
312
314
  print(response.joke)
313
315
  ```
316
+
314
317
  ```
315
318
  <class '__main__.Joke'>
316
319
  With fiery claws, dragons hide their laughter flaws!
@@ -318,7 +321,8 @@ With fiery claws, dragons hide their laughter flaws!
318
321
 
319
322
  ### ReAct and Tools
320
323
 
321
- LionAGI supports advanced multi-step reasoning with ReAct. Tools let the LLM invoke external actions:
324
+ LionAGI supports advanced multi-step reasoning with ReAct. Tools let the LLM
325
+ invoke external actions:
322
326
 
323
327
  ```python
324
328
  from lionagi.tools.types import ReaderTool
@@ -336,16 +340,21 @@ result = await branch.ReAct(
336
340
  print(result)
337
341
  ```
338
342
 
339
- The LLM can now open the PDF, read in slices, fetch references, and produce a final structured summary.
343
+ The LLM can now open the PDF, read in slices, fetch references, and produce a
344
+ final structured summary.
340
345
 
341
346
  ### Observability & Debugging
347
+
342
348
  - Inspect messages:
349
+
343
350
  ```python
344
351
  df = branch.to_df()
345
352
  print(df.tail())
346
353
  ```
354
+
347
355
  - Action logs show each tool call, arguments, and outcomes.
348
- - Verbose ReAct provides chain-of-thought analysis (helpful for debugging multi-step flows).
356
+ - Verbose ReAct provides chain-of-thought analysis (helpful for debugging
357
+ multi-step flows).
349
358
 
350
359
  ### Example: Multi-Model Orchestration
351
360
 
@@ -377,10 +386,12 @@ pip install "lionagi[ollama]"
377
386
  ## Community & Contributing
378
387
 
379
388
  We welcome issues, ideas, and pull requests:
389
+
380
390
  - Discord: Join to chat or get help
381
391
  - Issues / PRs: GitHub
382
392
 
383
393
  ### Citation
394
+
384
395
  ```
385
396
  @software{Li_LionAGI_2023,
386
397
  author = {Haiyang Li},
@@ -392,4 +403,6 @@ We welcome issues, ideas, and pull requests:
392
403
  ```
393
404
 
394
405
  **🦁 LionAGI**
395
- > Because real AI orchestration demands more than a single prompt. Try it out and discover the next evolution in structured, multi-model, safe AI.
406
+
407
+ > Because real AI orchestration demands more than a single prompt. Try it out
408
+ > and discover the next evolution in structured, multi-model, safe AI.
@@ -4,7 +4,7 @@ lionagi/_errors.py,sha256=JlBTFJnRWtVYcRxKb7fWFiJHLbykl1E19mSJ8sXYVxg,455
4
4
  lionagi/_types.py,sha256=iDdYewsP9rDrM7QY19_NDTcWUk7swp8vnGCrloHMtUM,53
5
5
  lionagi/settings.py,sha256=W52mM34E6jXF3GyqCFzVREKZrmnUqtZm_BVDsUiDI_s,1627
6
6
  lionagi/utils.py,sha256=uLTJKl7aTnFXV6ehA6zwiwEB7G2nQYKsO2pZ6mqFzUk,78908
7
- lionagi/version.py,sha256=c61d5YjslqtpItkzB2NGlURm177H2racruHXV9G6u6s,23
7
+ lionagi/version.py,sha256=0tXlefZZVkpPOSdzPCMF-P32mDAIZaCt77gWQCpBAjY,23
8
8
  lionagi/adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
9
  lionagi/adapters/adapter.py,sha256=aW7s1OKAdxHd8HBv2UcThn-r2Q08EyArssNyFobMLuA,3357
10
10
  lionagi/adapters/json_adapter.py,sha256=EJj0Jev46ZhU3ZMnlYwyzN2rLxjLCVrMDpHkEuggBvk,4561
@@ -22,15 +22,16 @@ lionagi/fields/code.py,sha256=TFym51obzaSfCmeRoHZJyBtjfDI4tvl9F-1sjFc9rMw,7713
22
22
  lionagi/fields/file.py,sha256=DhQ_HE0RvTNzkvBGQHRgbMYSokDkzE8GEu814i6jw5Q,7297
23
23
  lionagi/fields/instruct.py,sha256=sMbCxEv0HQLa31JkJDmdrWWEzIfeKbcmN2hYOehz3Q0,4773
24
24
  lionagi/fields/reason.py,sha256=3Ksz9_40dI-oQ9VtmpnYAmJdeDDIO-TwLDrf1ijbXGM,1438
25
- lionagi/fields/research.py,sha256=2x6SFDwMSwzl4uHHUBbhT8mgwa49MsEy1NaUIb84MHU,1405
25
+ lionagi/fields/research.py,sha256=eEPKocx8eQy2E9FExRWVIo6MK_xvmwBAoRZciBY3RG0,1421
26
26
  lionagi/libs/__init__.py,sha256=5y5joOZzfFWERl75auAcNcKC3lImVJ5ZZGvvHZUFCJM,112
27
27
  lionagi/libs/parse.py,sha256=JRS3bql0InHJqATnAatl-hQv4N--XXw4P77JHhTFnrc,1011
28
28
  lionagi/libs/file/__init__.py,sha256=5y5joOZzfFWERl75auAcNcKC3lImVJ5ZZGvvHZUFCJM,112
29
29
  lionagi/libs/file/chunk.py,sha256=XeVMwM33JF0X1W6udz_nhlb3DCevA_EK6A50Hn_e5SY,9300
30
+ lionagi/libs/file/concat.py,sha256=YSauXVBL3WWx5Mvpn208Cj7q9TLt_aq-0M9J1fm-ins,3864
30
31
  lionagi/libs/file/concat_files.py,sha256=FoI983oWFzp9VfFDP7kmbRb3t1CPe5F5LCtsux0ASAs,3089
31
32
  lionagi/libs/file/file_ops.py,sha256=HBiIh1EljIJ5VTIXuyvJM0ppSs0YYOPUWmgDMJT634U,3430
32
33
  lionagi/libs/file/params.py,sha256=SZ5DkoffWfxWudOAYCfCxpL8UIm-1UjeyTtploo-Lqs,5824
33
- lionagi/libs/file/process.py,sha256=NKC-rIkm83qv4rgz-otd89aziop0G_LPz7_kmBAowsQ,8686
34
+ lionagi/libs/file/process.py,sha256=EsnEJcQUm4ReP7qkCeMvL4Qe6fLRcENVWZndh9TSUsc,8692
34
35
  lionagi/libs/file/save.py,sha256=TCxVlKxFFnr3xZ-HAXPpTomQoyiVrp6nKRoj-bcQt4k,2863
35
36
  lionagi/libs/nested/__init__.py,sha256=5y5joOZzfFWERl75auAcNcKC3lImVJ5ZZGvvHZUFCJM,112
36
37
  lionagi/libs/nested/flatten.py,sha256=sB4jxZRoaUbjak9RbIWVWNKz2hzkhQJPFffV_Ws1GA0,5479
@@ -65,7 +66,7 @@ lionagi/libs/token_transform/synthlang_/translate_to_synthlang.py,sha256=lRBpeKG
65
66
  lionagi/libs/token_transform/synthlang_/resources/frameworks/abstract_algebra.toml,sha256=2TuOAo97g8mNhdPH96HP8vYZpnC8neiP-KlhVqbp1Us,970
66
67
  lionagi/libs/token_transform/synthlang_/resources/frameworks/category_theory.toml,sha256=Stg9W3h8o7VkQ9tdAfSZmR3LctFqcH6OhOPdaw9BlIg,1064
67
68
  lionagi/libs/token_transform/synthlang_/resources/frameworks/complex_analysis.toml,sha256=iE6FS7Cn5_uJRG5-StLuMM4XVAk95bxhbYWwlstw_tA,1044
68
- lionagi/libs/token_transform/synthlang_/resources/frameworks/framework_options.json,sha256=phAkedPGrwgNGW8hgPyH6pKU47pvKEAnG7vheWFvOLc,1760
69
+ lionagi/libs/token_transform/synthlang_/resources/frameworks/framework_options.json,sha256=_MQcXWBcgzPM6F13e_JDoF7rzTbi_zlXOXutyyYahBY,1384
69
70
  lionagi/libs/token_transform/synthlang_/resources/frameworks/group_theory.toml,sha256=iVlcS250YMosNRv3l8bz3BT9Tx1xCmiwhfNt4CjjRYc,713
70
71
  lionagi/libs/token_transform/synthlang_/resources/frameworks/math_logic.toml,sha256=jeFOF8gjRhb4hYXpW7AxTX8uk9c6DvGulJK5Bowxhq4,1037
71
72
  lionagi/libs/token_transform/synthlang_/resources/frameworks/reflective_patterns.toml,sha256=LxBIVLHNLfvVdXjLAzqivrYaHNix514DLNYsbA-VSQ4,5730
@@ -158,7 +159,7 @@ lionagi/protocols/messages/instruction.py,sha256=0dUsUYd6xYsbOHU7GafvqBkpDQQoFOX
158
159
  lionagi/protocols/messages/manager.py,sha256=e1jW5JH_3jZpZbFCvWZX0TG0DCgzANRUejW_6NqbtDc,17182
159
160
  lionagi/protocols/messages/message.py,sha256=rrGbya6rF86UB8xZcRP1YjgfJIFCxEWPQfHDcMuyBnM,7724
160
161
  lionagi/protocols/messages/system.py,sha256=x0F1C57SFHaO2-Z9cy1QshYlxv8wjl7VppooaGKbMIg,4658
161
- lionagi/protocols/messages/templates/README.md,sha256=Ch4JrKSjd85fLitAYO1OhZjNOGKHoEwaKQlcV16jiUI,1286
162
+ lionagi/protocols/messages/templates/README.md,sha256=Ux1ua0lN8AP2Ry5_6_eyiPCBtcFHV6e-GdpmEFu3XCs,1282
162
163
  lionagi/protocols/messages/templates/action_request.jinja2,sha256=d6OmxHKyvvNDSK4bnBM3TGSUk_HeE_Q2EtLAQ0ZBEJg,120
163
164
  lionagi/protocols/messages/templates/action_response.jinja2,sha256=Mg0UxmXlIvtP_KPB0GcJxE1TP6lml9BwdPkW1PZxkg8,142
164
165
  lionagi/protocols/messages/templates/assistant_response.jinja2,sha256=oKOX4myBy7it1J1f92mvTS1iBUUlZfsJsY2fC42ygvc,119
@@ -222,7 +223,7 @@ lionagi/tools/file/writer.py,sha256=5y5joOZzfFWERl75auAcNcKC3lImVJ5ZZGvvHZUFCJM,
222
223
  lionagi/tools/file/providers/__init__.py,sha256=5y5joOZzfFWERl75auAcNcKC3lImVJ5ZZGvvHZUFCJM,112
223
224
  lionagi/tools/file/providers/docling_.py,sha256=5y5joOZzfFWERl75auAcNcKC3lImVJ5ZZGvvHZUFCJM,112
224
225
  lionagi/tools/query/__init__.py,sha256=5y5joOZzfFWERl75auAcNcKC3lImVJ5ZZGvvHZUFCJM,112
225
- lionagi-0.10.5.dist-info/METADATA,sha256=X0dUpL8Dx7FOz_OdT_cGo3UZABgc7GE2SmywtibqEZs,18464
226
- lionagi-0.10.5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
227
- lionagi-0.10.5.dist-info/licenses/LICENSE,sha256=VXFWsdoN5AAknBCgFqQNgPWYx7OPp-PFEP961zGdOjc,11288
228
- lionagi-0.10.5.dist-info/RECORD,,
226
+ lionagi-0.10.7.dist-info/METADATA,sha256=LXQN1lR4oZDrgH-hM7Lje0d-yPkP7CCDa-l8VN1KXBQ,18472
227
+ lionagi-0.10.7.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
228
+ lionagi-0.10.7.dist-info/licenses/LICENSE,sha256=VXFWsdoN5AAknBCgFqQNgPWYx7OPp-PFEP961zGdOjc,11288
229
+ lionagi-0.10.7.dist-info/RECORD,,