lionagi 0.9.6__tar.gz → 0.9.8__tar.gz

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.
Files changed (272) hide show
  1. {lionagi-0.9.6 → lionagi-0.9.8}/PKG-INFO +16 -1
  2. {lionagi-0.9.6 → lionagi-0.9.8}/README.md +8 -0
  3. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/file/chunk.py +17 -0
  4. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/file/process.py +108 -7
  5. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/tools/types.py +3 -1
  6. lionagi-0.9.8/lionagi/version.py +1 -0
  7. {lionagi-0.9.6 → lionagi-0.9.8}/pyproject.toml +4 -2
  8. {lionagi-0.9.6 → lionagi-0.9.8}/uv.lock +17 -17
  9. lionagi-0.9.6/lionagi/version.py +0 -1
  10. {lionagi-0.9.6 → lionagi-0.9.8}/.env.example +0 -0
  11. {lionagi-0.9.6 → lionagi-0.9.8}/.github/FUNDING.yml +0 -0
  12. {lionagi-0.9.6 → lionagi-0.9.8}/.github/dependabot.yml +0 -0
  13. {lionagi-0.9.6 → lionagi-0.9.8}/.github/workflows/ci.yml +0 -0
  14. {lionagi-0.9.6 → lionagi-0.9.8}/.github/workflows/codeql.yml +0 -0
  15. {lionagi-0.9.6 → lionagi-0.9.8}/.github/workflows/docs.yml +0 -0
  16. {lionagi-0.9.6 → lionagi-0.9.8}/.github/workflows/release.yml +0 -0
  17. {lionagi-0.9.6 → lionagi-0.9.8}/.gitignore +0 -0
  18. {lionagi-0.9.6 → lionagi-0.9.8}/.pre-commit-config.yaml +0 -0
  19. {lionagi-0.9.6 → lionagi-0.9.8}/CODE_OF_CONDUCT.md +0 -0
  20. {lionagi-0.9.6 → lionagi-0.9.8}/CONTRIBUTING.md +0 -0
  21. {lionagi-0.9.6 → lionagi-0.9.8}/LICENSE +0 -0
  22. {lionagi-0.9.6 → lionagi-0.9.8}/cookbooks/ch01_get_started.md +0 -0
  23. {lionagi-0.9.6 → lionagi-0.9.8}/cookbooks/ch02_concepts.md +0 -0
  24. {lionagi-0.9.6 → lionagi-0.9.8}/dev_tools/count_code_base_lines.py +0 -0
  25. {lionagi-0.9.6 → lionagi-0.9.8}/docs/Makefile +0 -0
  26. {lionagi-0.9.6 → lionagi-0.9.8}/docs/_static/custom.css +0 -0
  27. {lionagi-0.9.6 → lionagi-0.9.8}/docs/_templates/layout.html +0 -0
  28. {lionagi-0.9.6 → lionagi-0.9.8}/docs/conf.py +0 -0
  29. {lionagi-0.9.6 → lionagi-0.9.8}/docs/index.rst +0 -0
  30. {lionagi-0.9.6 → lionagi-0.9.8}/docs/modules/action.rst +0 -0
  31. {lionagi-0.9.6 → lionagi-0.9.8}/docs/modules/adapter.rst +0 -0
  32. {lionagi-0.9.6 → lionagi-0.9.8}/docs/modules/branch.rst +0 -0
  33. {lionagi-0.9.6 → lionagi-0.9.8}/docs/modules/branch_operations.rst +0 -0
  34. {lionagi-0.9.6 → lionagi-0.9.8}/docs/modules/concepts.rst +0 -0
  35. {lionagi-0.9.6 → lionagi-0.9.8}/docs/modules/element_id.rst +0 -0
  36. {lionagi-0.9.6 → lionagi-0.9.8}/docs/modules/event.rst +0 -0
  37. {lionagi-0.9.6 → lionagi-0.9.8}/docs/modules/form.rst +0 -0
  38. {lionagi-0.9.6 → lionagi-0.9.8}/docs/modules/graph.rst +0 -0
  39. {lionagi-0.9.6 → lionagi-0.9.8}/docs/modules/index.rst +0 -0
  40. {lionagi-0.9.6 → lionagi-0.9.8}/docs/modules/instruct.rst +0 -0
  41. {lionagi-0.9.6 → lionagi-0.9.8}/docs/modules/lib_file.rst +0 -0
  42. {lionagi-0.9.6 → lionagi-0.9.8}/docs/modules/lib_nested.rst +0 -0
  43. {lionagi-0.9.6 → lionagi-0.9.8}/docs/modules/lib_package.rst +0 -0
  44. {lionagi-0.9.6 → lionagi-0.9.8}/docs/modules/lib_schema.rst +0 -0
  45. {lionagi-0.9.6 → lionagi-0.9.8}/docs/modules/lib_validate.rst +0 -0
  46. {lionagi-0.9.6 → lionagi-0.9.8}/docs/modules/log.rst +0 -0
  47. {lionagi-0.9.6 → lionagi-0.9.8}/docs/modules/mail.rst +0 -0
  48. {lionagi-0.9.6 → lionagi-0.9.8}/docs/modules/message.rst +0 -0
  49. {lionagi-0.9.6 → lionagi-0.9.8}/docs/modules/models.rst +0 -0
  50. {lionagi-0.9.6 → lionagi-0.9.8}/docs/modules/operative_step.rst +0 -0
  51. {lionagi-0.9.6 → lionagi-0.9.8}/docs/modules/pile.rst +0 -0
  52. {lionagi-0.9.6 → lionagi-0.9.8}/docs/modules/processor.rst +0 -0
  53. {lionagi-0.9.6 → lionagi-0.9.8}/docs/modules/progression.rst +0 -0
  54. {lionagi-0.9.6 → lionagi-0.9.8}/docs/modules/service.rst +0 -0
  55. {lionagi-0.9.6 → lionagi-0.9.8}/docs/modules/session.rst +0 -0
  56. {lionagi-0.9.6 → lionagi-0.9.8}/docs/modules/utils.rst +0 -0
  57. {lionagi-0.9.6 → lionagi-0.9.8}/docs/tutorials/get_started.rst +0 -0
  58. {lionagi-0.9.6 → lionagi-0.9.8}/docs/tutorials/get_started_pt2.rst +0 -0
  59. {lionagi-0.9.6 → lionagi-0.9.8}/docs/tutorials/get_started_pt3.rst +0 -0
  60. {lionagi-0.9.6 → lionagi-0.9.8}/docs/tutorials/index.rst +0 -0
  61. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/__init__.py +0 -0
  62. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/_class_registry.py +0 -0
  63. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/_errors.py +0 -0
  64. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/_types.py +0 -0
  65. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/__init__.py +0 -0
  66. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/file/__init__.py +0 -0
  67. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/file/file_ops.py +0 -0
  68. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/file/params.py +0 -0
  69. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/file/save.py +0 -0
  70. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/nested/__init__.py +0 -0
  71. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/nested/flatten.py +0 -0
  72. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/nested/nfilter.py +0 -0
  73. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/nested/nget.py +0 -0
  74. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/nested/ninsert.py +0 -0
  75. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/nested/nmerge.py +0 -0
  76. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/nested/npop.py +0 -0
  77. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/nested/nset.py +0 -0
  78. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/nested/unflatten.py +0 -0
  79. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/nested/utils.py +0 -0
  80. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/package/__init__.py +0 -0
  81. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/package/imports.py +0 -0
  82. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/package/management.py +0 -0
  83. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/package/params.py +0 -0
  84. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/package/system.py +0 -0
  85. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/parse.py +0 -0
  86. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/schema/__init__.py +0 -0
  87. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/schema/as_readable.py +0 -0
  88. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/schema/extract_code_block.py +0 -0
  89. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/schema/extract_docstring.py +0 -0
  90. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/schema/function_to_schema.py +0 -0
  91. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/schema/json_schema.py +0 -0
  92. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/token_transform/__init__.py +0 -0
  93. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/token_transform/llmlingua.py +0 -0
  94. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/token_transform/perplexity.py +0 -0
  95. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/token_transform/synthlang.py +0 -0
  96. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/validate/__init__.py +0 -0
  97. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/validate/common_field_validators.py +0 -0
  98. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/validate/fuzzy_match_keys.py +0 -0
  99. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/validate/fuzzy_validate_mapping.py +0 -0
  100. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/validate/string_similarity.py +0 -0
  101. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/libs/validate/validate_boolean.py +0 -0
  102. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operations/ReAct/ReAct.py +0 -0
  103. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operations/ReAct/__init__.py +0 -0
  104. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operations/ReAct/utils.py +0 -0
  105. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operations/__init__.py +0 -0
  106. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operations/_act/__init__.py +0 -0
  107. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operations/_act/act.py +0 -0
  108. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operations/brainstorm/__init__.py +0 -0
  109. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operations/brainstorm/brainstorm.py +0 -0
  110. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operations/brainstorm/prompt.py +0 -0
  111. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operations/chat/__init__.py +0 -0
  112. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operations/chat/chat.py +0 -0
  113. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operations/communicate/__init__.py +0 -0
  114. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operations/communicate/communicate.py +0 -0
  115. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operations/instruct/__init__.py +0 -0
  116. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operations/instruct/instruct.py +0 -0
  117. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operations/interpret/__init__.py +0 -0
  118. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operations/interpret/interpret.py +0 -0
  119. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operations/manager.py +0 -0
  120. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operations/operate/__init__.py +0 -0
  121. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operations/operate/operate.py +0 -0
  122. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operations/parse/__init__.py +0 -0
  123. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operations/parse/parse.py +0 -0
  124. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operations/plan/__init__.py +0 -0
  125. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operations/plan/plan.py +0 -0
  126. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operations/plan/prompt.py +0 -0
  127. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operations/select/__init__.py +0 -0
  128. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operations/select/select.py +0 -0
  129. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operations/select/utils.py +0 -0
  130. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operations/translate/__init__.py +0 -0
  131. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operations/translate/translate.py +0 -0
  132. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operations/types.py +0 -0
  133. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operations/utils.py +0 -0
  134. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/__init__.py +0 -0
  135. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/action/__init__.py +0 -0
  136. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/action/function_calling.py +0 -0
  137. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/action/manager.py +0 -0
  138. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/action/request_response_model.py +0 -0
  139. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/action/tool.py +0 -0
  140. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/action/utils.py +0 -0
  141. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/forms/__init__.py +0 -0
  142. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/forms/base.py +0 -0
  143. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/forms/flow.py +0 -0
  144. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/forms/form.py +0 -0
  145. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/forms/report.py +0 -0
  146. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/instruct/__init__.py +0 -0
  147. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/instruct/base.py +0 -0
  148. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/instruct/instruct.py +0 -0
  149. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/instruct/instruct_collection.py +0 -0
  150. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/instruct/node.py +0 -0
  151. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/instruct/prompts.py +0 -0
  152. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/instruct/reason.py +0 -0
  153. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/manager.py +0 -0
  154. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/models/__init__.py +0 -0
  155. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/models/field_model.py +0 -0
  156. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/models/model_params.py +0 -0
  157. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/models/note.py +0 -0
  158. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/models/operable_model.py +0 -0
  159. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/models/schema_model.py +0 -0
  160. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/operative.py +0 -0
  161. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/step.py +0 -0
  162. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/strategies/__init__.py +0 -0
  163. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/strategies/base.py +0 -0
  164. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/strategies/concurrent.py +0 -0
  165. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/strategies/concurrent_chunk.py +0 -0
  166. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/strategies/concurrent_sequential_chunk.py +0 -0
  167. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/strategies/params.py +0 -0
  168. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/strategies/sequential.py +0 -0
  169. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/strategies/sequential_chunk.py +0 -0
  170. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/strategies/sequential_concurrent_chunk.py +0 -0
  171. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/strategies/utils.py +0 -0
  172. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/operatives/types.py +0 -0
  173. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/__init__.py +0 -0
  174. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/_concepts.py +0 -0
  175. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/adapters/__init__.py +0 -0
  176. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/adapters/adapter.py +0 -0
  177. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/adapters/json_adapter.py +0 -0
  178. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/adapters/pandas_/__init__.py +0 -0
  179. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/adapters/pandas_/csv_adapter.py +0 -0
  180. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/adapters/pandas_/excel_adapter.py +0 -0
  181. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/adapters/pandas_/pd_dataframe_adapter.py +0 -0
  182. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/adapters/pandas_/pd_series_adapter.py +0 -0
  183. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/adapters/types.py +0 -0
  184. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/generic/__init__.py +0 -0
  185. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/generic/element.py +0 -0
  186. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/generic/event.py +0 -0
  187. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/generic/log.py +0 -0
  188. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/generic/pile.py +0 -0
  189. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/generic/processor.py +0 -0
  190. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/generic/progression.py +0 -0
  191. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/graph/__init__.py +0 -0
  192. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/graph/edge.py +0 -0
  193. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/graph/graph.py +0 -0
  194. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/graph/node.py +0 -0
  195. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/mail/__init__.py +0 -0
  196. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/mail/exchange.py +0 -0
  197. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/mail/mail.py +0 -0
  198. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/mail/mailbox.py +0 -0
  199. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/mail/manager.py +0 -0
  200. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/mail/package.py +0 -0
  201. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/messages/__init__.py +0 -0
  202. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/messages/action_request.py +0 -0
  203. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/messages/action_response.py +0 -0
  204. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/messages/assistant_response.py +0 -0
  205. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/messages/base.py +0 -0
  206. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/messages/instruction.py +0 -0
  207. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/messages/manager.py +0 -0
  208. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/messages/message.py +0 -0
  209. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/messages/system.py +0 -0
  210. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/messages/templates/README.md +0 -0
  211. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/messages/templates/action_request.jinja2 +0 -0
  212. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/messages/templates/action_response.jinja2 +0 -0
  213. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/messages/templates/assistant_response.jinja2 +0 -0
  214. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/messages/templates/instruction_message.jinja2 +0 -0
  215. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/messages/templates/system_message.jinja2 +0 -0
  216. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/messages/templates/tool_schemas.jinja2 +0 -0
  217. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/protocols/types.py +0 -0
  218. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/service/__init__.py +0 -0
  219. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/service/endpoints/__init__.py +0 -0
  220. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/service/endpoints/base.py +0 -0
  221. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/service/endpoints/chat_completion.py +0 -0
  222. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/service/endpoints/match_endpoint.py +0 -0
  223. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/service/endpoints/rate_limited_processor.py +0 -0
  224. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/service/endpoints/token_calculator.py +0 -0
  225. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/service/imodel.py +0 -0
  226. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/service/manager.py +0 -0
  227. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/service/providers/__init__.py +0 -0
  228. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/service/providers/anthropic_/__init__.py +0 -0
  229. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/service/providers/anthropic_/messages.py +0 -0
  230. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/service/providers/exa_/__init__.py +0 -0
  231. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/service/providers/exa_/models.py +0 -0
  232. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/service/providers/exa_/search.py +0 -0
  233. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/service/providers/exa_/types.py +0 -0
  234. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/service/providers/groq_/__init__.py +0 -0
  235. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/service/providers/groq_/chat_completions.py +0 -0
  236. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/service/providers/ollama_/__init__.py +0 -0
  237. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/service/providers/ollama_/chat_completions.py +0 -0
  238. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/service/providers/openai_/__init__.py +0 -0
  239. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/service/providers/openai_/chat_completions.py +0 -0
  240. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/service/providers/openrouter_/__init__.py +0 -0
  241. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/service/providers/openrouter_/chat_completions.py +0 -0
  242. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/service/providers/perplexity_/__init__.py +0 -0
  243. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/service/providers/perplexity_/chat_completions.py +0 -0
  244. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/service/providers/perplexity_/models.py +0 -0
  245. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/service/providers/types.py +0 -0
  246. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/service/types.py +0 -0
  247. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/session/__init__.py +0 -0
  248. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/session/branch.py +0 -0
  249. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/session/prompts.py +0 -0
  250. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/session/session.py +0 -0
  251. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/settings.py +0 -0
  252. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/tools/__init__.py +0 -0
  253. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/tools/base.py +0 -0
  254. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/tools/browser/__init__.py +0 -0
  255. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/tools/browser/providers/__init__.py +0 -0
  256. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/tools/browser/providers/browser_use_.py +0 -0
  257. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/tools/code/__init__.py +0 -0
  258. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/tools/code/coder.py +0 -0
  259. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/tools/code/manager.py +0 -0
  260. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/tools/code/providers/__init__.py +0 -0
  261. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/tools/code/providers/aider_.py +0 -0
  262. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/tools/code/providers/e2b_.py +0 -0
  263. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/tools/code/sandbox.py +0 -0
  264. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/tools/file/__init__.py +0 -0
  265. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/tools/file/manager.py +0 -0
  266. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/tools/file/providers/__init__.py +0 -0
  267. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/tools/file/providers/docling_.py +0 -0
  268. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/tools/file/reader.py +0 -0
  269. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/tools/file/writer.py +0 -0
  270. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/tools/query/__init__.py +0 -0
  271. {lionagi-0.9.6 → lionagi-0.9.8}/lionagi/utils.py +0 -0
  272. {lionagi-0.9.6 → lionagi-0.9.8}/prompts/doc_style.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lionagi
3
- Version: 0.9.6
3
+ Version: 0.9.8
4
4
  Summary: An Intelligence Operating System.
5
5
  Author-email: HaiyangLi <quantocean.li@gmail.com>
6
6
  License: Apache License
@@ -227,6 +227,13 @@ Requires-Dist: pillow>=10.0.0
227
227
  Requires-Dist: pydantic>=2.0.0
228
228
  Requires-Dist: python-dotenv>=1.0.1
229
229
  Requires-Dist: tiktoken>=0.8.0
230
+ Provides-Extra: llms
231
+ Requires-Dist: litellm>=1.59.5; extra == 'llms'
232
+ Provides-Extra: ollama
233
+ Requires-Dist: ollama>=0.4.7; extra == 'ollama'
234
+ Requires-Dist: openai>=1.60.0; extra == 'ollama'
235
+ Provides-Extra: tools
236
+ Requires-Dist: docling>=2.15.1; extra == 'tools'
230
237
  Description-Content-Type: text/markdown
231
238
 
232
239
  ![PyPI - Version](https://img.shields.io/pypi/v/lionagi?labelColor=233476aa&color=231fc935)
@@ -358,6 +365,14 @@ analysis = await branch.communicate("Analyze these stats", imodel=sonnet)
358
365
 
359
366
  Seamlessly route to different models in the same workflow.
360
367
 
368
+ ### optional dependencies
369
+
370
+ ```
371
+ pip install "lionagi[tools]"
372
+ pip install "lionagi[llms]"
373
+ pip install "lionagi[ollama]"
374
+ ```
375
+
361
376
  ## Community & Contributing
362
377
 
363
378
  We welcome issues, ideas, and pull requests:
@@ -127,6 +127,14 @@ analysis = await branch.communicate("Analyze these stats", imodel=sonnet)
127
127
 
128
128
  Seamlessly route to different models in the same workflow.
129
129
 
130
+ ### optional dependencies
131
+
132
+ ```
133
+ pip install "lionagi[tools]"
134
+ pip install "lionagi[llms]"
135
+ pip install "lionagi[ollama]"
136
+ ```
137
+
130
138
  ## Community & Contributing
131
139
 
132
140
  We welcome issues, ideas, and pull requests:
@@ -218,6 +218,7 @@ def chunk_content(
218
218
  threshold: int = 256,
219
219
  metadata: dict[str, Any] = {},
220
220
  return_tokens: bool = False,
221
+ as_node: bool = False,
221
222
  **kwargs: Any,
222
223
  ) -> list[dict[str, Any]]:
223
224
  """
@@ -257,6 +258,22 @@ def chunk_content(
257
258
  threshold=threshold,
258
259
  )
259
260
 
261
+ if as_node:
262
+ from lionagi.protocols.graph.node import Node
263
+
264
+ return [
265
+ Node(
266
+ content=chunk,
267
+ metadata={
268
+ "chunk_id": i + 1,
269
+ "total_chunks": len(chunks),
270
+ "chunk_size": len(chunk),
271
+ **metadata,
272
+ },
273
+ )
274
+ for i, chunk in enumerate(chunks)
275
+ ]
276
+
260
277
  return [
261
278
  {
262
279
  "chunk_content": chunk,
@@ -6,7 +6,9 @@ import logging
6
6
  from collections.abc import Callable
7
7
  from concurrent.futures import ThreadPoolExecutor, as_completed
8
8
  from pathlib import Path
9
- from typing import Any
9
+ from typing import Any, Literal
10
+
11
+ from lionagi.utils import lcall
10
12
 
11
13
  from .chunk import chunk_content
12
14
  from .save import save_chunks
@@ -87,7 +89,7 @@ def dir_to_files(
87
89
 
88
90
  def file_to_chunks(
89
91
  file_path: str | Path,
90
- chunk_func: Callable[[str, int, float, int], list[str]],
92
+ chunk_by: Literal["chars", "tokens"] = "chars",
91
93
  chunk_size: int = 1500,
92
94
  overlap: float = 0.1,
93
95
  threshold: int = 200,
@@ -97,6 +99,7 @@ def file_to_chunks(
97
99
  verbose: bool = False,
98
100
  timestamp: bool = True,
99
101
  random_hash_digits: int = 4,
102
+ as_node: bool = False,
100
103
  ) -> list[dict[str, Any]]:
101
104
  """
102
105
  Process a file and split its content into chunks.
@@ -124,9 +127,10 @@ def file_to_chunks(
124
127
  ValueError: If there's an error processing the file.
125
128
  """
126
129
  try:
127
- file_path = Path(file_path)
128
- with open(file_path, encoding=encoding) as f:
129
- content = f.read()
130
+ if isinstance(file_path, str):
131
+ file_path = Path(file_path)
132
+
133
+ text = file_path.read_text(encoding=encoding)
130
134
 
131
135
  metadata = {
132
136
  "file_path": str(file_path),
@@ -136,14 +140,111 @@ def file_to_chunks(
136
140
  }
137
141
 
138
142
  chunks = chunk_content(
139
- content, chunk_func, chunk_size, overlap, threshold, metadata
143
+ text,
144
+ chunk_by=chunk_by,
145
+ chunk_size=chunk_size,
146
+ overlap=overlap,
147
+ threshold=threshold,
148
+ metadata=metadata,
149
+ as_node=as_node,
140
150
  )
141
151
 
142
152
  if output_dir:
143
153
  save_chunks(
144
- chunks, output_dir, verbose, timestamp, random_hash_digits
154
+ chunks=chunks,
155
+ output_dir=output_dir,
156
+ verbose=verbose,
157
+ timestamp=timestamp,
158
+ random_hash_digits=random_hash_digits,
145
159
  )
146
160
 
147
161
  return chunks
148
162
  except Exception as e:
149
163
  raise ValueError(f"Error processing file {file_path}: {e}") from e
164
+
165
+
166
+ def chunk(
167
+ url_or_path: str | Path,
168
+ *,
169
+ file_types: list[str] | None = None, # only local files
170
+ recursive: bool = False, # only local files
171
+ chunk_by: Literal["chars", "tokens"] = "chars",
172
+ chunk_size: int = 1500,
173
+ overlap: float = 0.1,
174
+ threshold: int = 200,
175
+ output_file: str | Path | None = None,
176
+ metadata: dict[str, Any] | None = None,
177
+ reader_tool: Callable = None,
178
+ ):
179
+ if isinstance(url_or_path, str):
180
+ url_or_path = Path(url_or_path)
181
+
182
+ chunks = None
183
+ files = None
184
+ if url_or_path.exists():
185
+ if url_or_path.is_dir():
186
+ files = dir_to_files(
187
+ directory=url_or_path,
188
+ file_types=file_types,
189
+ recursive=recursive,
190
+ )
191
+ elif url_or_path.is_file():
192
+ files = [url_or_path]
193
+ else:
194
+ files = (
195
+ [str(url_or_path)]
196
+ if not isinstance(url_or_path, list)
197
+ else url_or_path
198
+ )
199
+
200
+ if reader_tool is None:
201
+ reader_tool = lambda x: x.read_text(encoding="utf-8")
202
+
203
+ if reader_tool == "docling":
204
+ from lionagi.libs.package.imports import check_import
205
+
206
+ DocumentConverter = check_import(
207
+ "docling",
208
+ module_name="document_converter",
209
+ import_name="DocumentConverter",
210
+ )
211
+ converter = DocumentConverter()
212
+ reader_tool = lambda x: converter.convert(
213
+ x
214
+ ).document.export_to_markdown()
215
+
216
+ texts = lcall(files, reader_tool)
217
+ chunks = lcall(
218
+ texts,
219
+ chunk_content,
220
+ chunk_by=chunk_by,
221
+ chunk_size=chunk_size,
222
+ overlap=overlap,
223
+ threshold=threshold,
224
+ metadata=metadata,
225
+ as_node=True,
226
+ flatten=True,
227
+ )
228
+ if threshold:
229
+ chunks = [c for c in chunks if len(c.content) > threshold]
230
+
231
+ if output_file:
232
+ from lionagi.protocols.generic.pile import Pile
233
+
234
+ output_file = Path(output_file)
235
+ if output_file.suffix == ".csv":
236
+ p = Pile(chunks)
237
+ p.to_csv_file(output_file)
238
+
239
+ elif output_file.suffix == ".json":
240
+ p = Pile(chunks)
241
+ p.to_json_file(output_file, use_pd=True)
242
+
243
+ elif output_file.suffix in Pile.list_adapters():
244
+ p = Pile(chunks)
245
+ p.adapt_to(output_file.suffix, fp=output_file)
246
+
247
+ else:
248
+ raise ValueError(f"Unsupported output file format: {output_file}")
249
+
250
+ return chunks
@@ -3,6 +3,8 @@
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
5
5
 
6
+ from lionagi.libs.file.process import chunk
7
+
6
8
  from .file.reader import ReaderTool
7
9
 
8
- __all__ = ("ReaderTool",)
10
+ __all__ = ("ReaderTool", "chunk")
@@ -0,0 +1 @@
1
+ __version__ = "0.9.8"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "lionagi"
3
- version = "0.9.6"
3
+ version = "0.9.8"
4
4
  description = "An Intelligence Operating System."
5
5
  authors = [
6
6
  { name = "HaiyangLi", email = "quantocean.li@gmail.com" },
@@ -47,14 +47,16 @@ dev = [
47
47
  "ipykernel>=6.29.5",
48
48
  "ipywidgets>=8.1.5",
49
49
  ]
50
+
51
+ [project.optional-dependencies]
50
52
  tools = [
51
53
  "docling>=2.15.1",
52
54
  ]
53
55
  llms = [
54
56
  "litellm>=1.59.5",
55
- "openai>=1.60.0",
56
57
  ]
57
58
  ollama = [
59
+ "openai>=1.60.0",
58
60
  "ollama>=0.4.7",
59
61
  ]
60
62
 
@@ -1208,7 +1208,7 @@ wheels = [
1208
1208
 
1209
1209
  [[package]]
1210
1210
  name = "lionagi"
1211
- version = "0.9.6"
1211
+ version = "0.9.8"
1212
1212
  source = { editable = "." }
1213
1213
  dependencies = [
1214
1214
  { name = "aiocache" },
@@ -1221,6 +1221,18 @@ dependencies = [
1221
1221
  { name = "tiktoken" },
1222
1222
  ]
1223
1223
 
1224
+ [package.optional-dependencies]
1225
+ llms = [
1226
+ { name = "litellm" },
1227
+ ]
1228
+ ollama = [
1229
+ { name = "ollama" },
1230
+ { name = "openai" },
1231
+ ]
1232
+ tools = [
1233
+ { name = "docling" },
1234
+ ]
1235
+
1224
1236
  [package.dev-dependencies]
1225
1237
  dev = [
1226
1238
  { name = "black", extra = ["jupyter"] },
@@ -1235,22 +1247,16 @@ dev = [
1235
1247
  { name = "sphinx" },
1236
1248
  { name = "sphinx-autobuild" },
1237
1249
  ]
1238
- llms = [
1239
- { name = "litellm" },
1240
- { name = "openai" },
1241
- ]
1242
- ollama = [
1243
- { name = "ollama" },
1244
- ]
1245
- tools = [
1246
- { name = "docling" },
1247
- ]
1248
1250
 
1249
1251
  [package.metadata]
1250
1252
  requires-dist = [
1251
1253
  { name = "aiocache", specifier = ">=0.12.0" },
1252
1254
  { name = "aiohttp", specifier = ">=3.11.0" },
1255
+ { name = "docling", marker = "extra == 'tools'", specifier = ">=2.15.1" },
1253
1256
  { name = "jinja2", specifier = ">=3.1.0" },
1257
+ { name = "litellm", marker = "extra == 'llms'", specifier = ">=1.59.5" },
1258
+ { name = "ollama", marker = "extra == 'ollama'", specifier = ">=0.4.7" },
1259
+ { name = "openai", marker = "extra == 'ollama'", specifier = ">=1.60.0" },
1254
1260
  { name = "pandas", specifier = ">=2.0.0" },
1255
1261
  { name = "pillow", specifier = ">=10.0.0" },
1256
1262
  { name = "pydantic", specifier = ">=2.0.0" },
@@ -1272,12 +1278,6 @@ dev = [
1272
1278
  { name = "sphinx", specifier = ">=8.1.3" },
1273
1279
  { name = "sphinx-autobuild", specifier = ">=2024.10.3" },
1274
1280
  ]
1275
- llms = [
1276
- { name = "litellm", specifier = ">=1.59.5" },
1277
- { name = "openai", specifier = ">=1.60.0" },
1278
- ]
1279
- ollama = [{ name = "ollama", specifier = ">=0.4.7" }]
1280
- tools = [{ name = "docling", specifier = ">=2.15.1" }]
1281
1281
 
1282
1282
  [[package]]
1283
1283
  name = "litellm"
@@ -1 +0,0 @@
1
- __version__ = "0.9.6"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes