lionagi 0.12.2__tar.gz → 0.12.4__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 (311) hide show
  1. lionagi-0.12.4/.github/FUNDING.yml +15 -0
  2. lionagi-0.12.4/.github/workflows/ci.yml +68 -0
  3. lionagi-0.12.4/.github/workflows/codeql.yml +40 -0
  4. {lionagi-0.12.2 → lionagi-0.12.4}/.github/workflows/docs.yml +1 -4
  5. lionagi-0.12.4/.github/workflows/release.yml +65 -0
  6. {lionagi-0.12.2 → lionagi-0.12.4}/.gitignore +4 -1
  7. lionagi-0.12.4/.python-version +1 -0
  8. lionagi-0.12.4/CODE_OF_CONDUCT.md +75 -0
  9. {lionagi-0.12.2 → lionagi-0.12.4}/PKG-INFO +33 -16
  10. {lionagi-0.12.2 → lionagi-0.12.4}/README.md +6 -7
  11. lionagi-0.12.4/lionagi/config.py +123 -0
  12. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/fields/file.py +1 -1
  13. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/fields/reason.py +1 -1
  14. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/file/concat.py +1 -6
  15. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/file/concat_files.py +1 -5
  16. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/file/save.py +1 -1
  17. lionagi-0.12.4/lionagi/libs/package/imports.py +21 -0
  18. lionagi-0.12.4/lionagi/libs/parse.py +30 -0
  19. lionagi-0.12.4/lionagi/libs/schema/load_pydantic_model_from_schema.py +259 -0
  20. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/perplexity.py +2 -4
  21. lionagi-0.12.4/lionagi/libs/token_transform/synthlang_/resources/frameworks/framework_options.json +52 -0
  22. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/synthlang_/translate_to_synthlang.py +1 -1
  23. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/chat/chat.py +2 -2
  24. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/communicate/communicate.py +20 -5
  25. lionagi-0.12.4/lionagi/operations/parse/parse.py +187 -0
  26. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/generic/log.py +1 -2
  27. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/generic/pile.py +18 -4
  28. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/messages/assistant_response.py +20 -1
  29. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/messages/templates/README.md +6 -10
  30. lionagi-0.12.4/lionagi/service/connections/__init__.py +15 -0
  31. lionagi-0.12.4/lionagi/service/connections/api_calling.py +230 -0
  32. lionagi-0.12.4/lionagi/service/connections/endpoint.py +410 -0
  33. lionagi-0.12.4/lionagi/service/connections/endpoint_config.py +137 -0
  34. lionagi-0.12.4/lionagi/service/connections/header_factory.py +56 -0
  35. lionagi-0.12.4/lionagi/service/connections/match_endpoint.py +49 -0
  36. lionagi-0.12.4/lionagi/service/connections/providers/__init__.py +3 -0
  37. lionagi-0.12.4/lionagi/service/connections/providers/anthropic_.py +87 -0
  38. lionagi-0.12.4/lionagi/service/connections/providers/exa_.py +33 -0
  39. lionagi-0.12.4/lionagi/service/connections/providers/oai_.py +166 -0
  40. lionagi-0.12.4/lionagi/service/connections/providers/ollama_.py +122 -0
  41. lionagi-0.12.4/lionagi/service/connections/providers/perplexity_.py +29 -0
  42. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/service/imodel.py +36 -144
  43. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/service/manager.py +1 -7
  44. {lionagi-0.12.2/lionagi/service/endpoints → lionagi-0.12.4/lionagi/service}/rate_limited_processor.py +4 -2
  45. lionagi-0.12.4/lionagi/service/resilience.py +545 -0
  46. lionagi-0.12.4/lionagi/service/third_party/README.md +71 -0
  47. lionagi-0.12.4/lionagi/service/third_party/__init__.py +0 -0
  48. lionagi-0.12.4/lionagi/service/third_party/anthropic_models.py +159 -0
  49. lionagi-0.12.4/lionagi/service/third_party/exa_models.py +165 -0
  50. lionagi-0.12.4/lionagi/service/third_party/openai_models.py +18241 -0
  51. lionagi-0.12.4/lionagi/service/third_party/pplx_models.py +156 -0
  52. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/service/types.py +5 -4
  53. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/session/branch.py +12 -7
  54. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/tools/file/reader.py +1 -1
  55. lionagi-0.12.4/lionagi/tools/memory/tools.py +497 -0
  56. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/utils.py +921 -123
  57. lionagi-0.12.4/lionagi/version.py +1 -0
  58. lionagi-0.12.4/main.py +6 -0
  59. {lionagi-0.12.2 → lionagi-0.12.4}/pyproject.toml +54 -17
  60. lionagi-0.12.4/scripts/README.md +15 -0
  61. lionagi-0.12.4/scripts/concat.py +95 -0
  62. lionagi-0.12.4/scripts/config.py +18 -0
  63. lionagi-0.12.4/uv.lock +3989 -0
  64. lionagi-0.12.2/.github/workflows/ci.yml +0 -35
  65. lionagi-0.12.2/.github/workflows/codeql.yml +0 -40
  66. lionagi-0.12.2/.github/workflows/release.yml +0 -61
  67. lionagi-0.12.2/CODE_OF_CONDUCT.md +0 -104
  68. lionagi-0.12.2/lionagi/libs/file/create_path.py +0 -80
  69. lionagi-0.12.2/lionagi/libs/file/file_util.py +0 -358
  70. lionagi-0.12.2/lionagi/libs/package/imports.py +0 -190
  71. lionagi-0.12.2/lionagi/libs/parse/fuzzy_parse_json.py +0 -117
  72. lionagi-0.12.2/lionagi/libs/parse/to_dict.py +0 -336
  73. lionagi-0.12.2/lionagi/libs/parse/to_json.py +0 -61
  74. lionagi-0.12.2/lionagi/libs/parse/to_num.py +0 -378
  75. lionagi-0.12.2/lionagi/libs/parse/to_xml.py +0 -57
  76. lionagi-0.12.2/lionagi/libs/parse/xml_parser.py +0 -148
  77. lionagi-0.12.2/lionagi/libs/schema/breakdown_pydantic_annotation.py +0 -48
  78. lionagi-0.12.2/lionagi/libs/token_transform/synthlang_/resources/frameworks/framework_options.json +0 -52
  79. lionagi-0.12.2/lionagi/operations/parse/parse.py +0 -99
  80. lionagi-0.12.2/lionagi/service/endpoints/base.py +0 -706
  81. lionagi-0.12.2/lionagi/service/endpoints/chat_completion.py +0 -116
  82. lionagi-0.12.2/lionagi/service/endpoints/match_endpoint.py +0 -72
  83. lionagi-0.12.2/lionagi/service/providers/anthropic_/__init__.py +0 -3
  84. lionagi-0.12.2/lionagi/service/providers/anthropic_/messages.py +0 -99
  85. lionagi-0.12.2/lionagi/service/providers/exa_/models.py +0 -3
  86. lionagi-0.12.2/lionagi/service/providers/exa_/search.py +0 -80
  87. lionagi-0.12.2/lionagi/service/providers/exa_/types.py +0 -7
  88. lionagi-0.12.2/lionagi/service/providers/groq_/__init__.py +0 -3
  89. lionagi-0.12.2/lionagi/service/providers/groq_/chat_completions.py +0 -56
  90. lionagi-0.12.2/lionagi/service/providers/ollama_/__init__.py +0 -3
  91. lionagi-0.12.2/lionagi/service/providers/ollama_/chat_completions.py +0 -134
  92. lionagi-0.12.2/lionagi/service/providers/openai_/__init__.py +0 -3
  93. lionagi-0.12.2/lionagi/service/providers/openai_/chat_completions.py +0 -101
  94. lionagi-0.12.2/lionagi/service/providers/openai_/spec.py +0 -14
  95. lionagi-0.12.2/lionagi/service/providers/openrouter_/__init__.py +0 -3
  96. lionagi-0.12.2/lionagi/service/providers/openrouter_/chat_completions.py +0 -62
  97. lionagi-0.12.2/lionagi/service/providers/perplexity_/__init__.py +0 -3
  98. lionagi-0.12.2/lionagi/service/providers/perplexity_/chat_completions.py +0 -44
  99. lionagi-0.12.2/lionagi/service/providers/perplexity_/models.py +0 -5
  100. lionagi-0.12.2/lionagi/service/providers/types.py +0 -17
  101. lionagi-0.12.2/lionagi/session/__init__.py +0 -3
  102. lionagi-0.12.2/lionagi/tools/__init__.py +0 -3
  103. lionagi-0.12.2/lionagi/tools/file/__init__.py +0 -3
  104. lionagi-0.12.2/lionagi/version.py +0 -1
  105. lionagi-0.12.2/uv.lock +0 -4463
  106. {lionagi-0.12.2 → lionagi-0.12.4}/.coveragerc +0 -0
  107. {lionagi-0.12.2 → lionagi-0.12.4}/.env.example +0 -0
  108. {lionagi-0.12.2 → lionagi-0.12.4}/.github/dependabot.yml +0 -0
  109. {lionagi-0.12.2 → lionagi-0.12.4}/.pre-commit-config.yaml +0 -0
  110. {lionagi-0.12.2 → lionagi-0.12.4}/CONTRIBUTING.md +0 -0
  111. {lionagi-0.12.2 → lionagi-0.12.4}/LICENSE +0 -0
  112. {lionagi-0.12.2 → lionagi-0.12.4}/cookbooks/ch01_get_started.md +0 -0
  113. {lionagi-0.12.2 → lionagi-0.12.4}/cookbooks/ch02_concepts.md +0 -0
  114. {lionagi-0.12.2 → lionagi-0.12.4}/docs/Makefile +0 -0
  115. {lionagi-0.12.2 → lionagi-0.12.4}/docs/_static/custom.css +0 -0
  116. {lionagi-0.12.2 → lionagi-0.12.4}/docs/_templates/layout.html +0 -0
  117. {lionagi-0.12.2 → lionagi-0.12.4}/docs/conf.py +0 -0
  118. {lionagi-0.12.2 → lionagi-0.12.4}/docs/index.rst +0 -0
  119. {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/action.rst +0 -0
  120. {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/adapter.rst +0 -0
  121. {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/branch.rst +0 -0
  122. {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/branch_operations.rst +0 -0
  123. {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/concepts.rst +0 -0
  124. {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/element_id.rst +0 -0
  125. {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/event.rst +0 -0
  126. {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/form.rst +0 -0
  127. {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/graph.rst +0 -0
  128. {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/index.rst +0 -0
  129. {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/instruct.rst +0 -0
  130. {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/lib_file.rst +0 -0
  131. {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/lib_nested.rst +0 -0
  132. {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/lib_package.rst +0 -0
  133. {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/lib_schema.rst +0 -0
  134. {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/lib_validate.rst +0 -0
  135. {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/log.rst +0 -0
  136. {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/mail.rst +0 -0
  137. {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/message.rst +0 -0
  138. {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/models.rst +0 -0
  139. {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/operative_step.rst +0 -0
  140. {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/pile.rst +0 -0
  141. {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/processor.rst +0 -0
  142. {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/progression.rst +0 -0
  143. {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/service.rst +0 -0
  144. {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/session.rst +0 -0
  145. {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/utils.rst +0 -0
  146. {lionagi-0.12.2 → lionagi-0.12.4}/docs/tutorials/get_started.rst +0 -0
  147. {lionagi-0.12.2 → lionagi-0.12.4}/docs/tutorials/get_started_pt2.rst +0 -0
  148. {lionagi-0.12.2 → lionagi-0.12.4}/docs/tutorials/get_started_pt3.rst +0 -0
  149. {lionagi-0.12.2 → lionagi-0.12.4}/docs/tutorials/index.rst +0 -0
  150. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/__init__.py +0 -0
  151. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/_class_registry.py +0 -0
  152. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/_errors.py +0 -0
  153. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/_types.py +0 -0
  154. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/adapters/__init__.py +0 -0
  155. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/adapters/adapter.py +0 -0
  156. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/adapters/json_adapter.py +0 -0
  157. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/adapters/pandas_/__init__.py +0 -0
  158. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/adapters/pandas_/csv_adapter.py +0 -0
  159. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/adapters/pandas_/excel_adapter.py +0 -0
  160. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/adapters/pandas_/pd_dataframe_adapter.py +0 -0
  161. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/adapters/pandas_/pd_series_adapter.py +0 -0
  162. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/adapters/toml_adapter.py +0 -0
  163. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/adapters/types.py +0 -0
  164. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/fields/__init__.py +0 -0
  165. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/fields/action.py +0 -0
  166. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/fields/base.py +0 -0
  167. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/fields/code.py +0 -0
  168. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/fields/instruct.py +0 -0
  169. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/fields/research.py +0 -0
  170. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/__init__.py +0 -0
  171. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/file/__init__.py +0 -0
  172. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/file/chunk.py +0 -0
  173. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/file/file_ops.py +0 -0
  174. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/file/params.py +0 -0
  175. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/file/process.py +0 -0
  176. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/nested/__init__.py +0 -0
  177. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/nested/flatten.py +0 -0
  178. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/nested/nfilter.py +0 -0
  179. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/nested/nget.py +0 -0
  180. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/nested/ninsert.py +0 -0
  181. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/nested/nmerge.py +0 -0
  182. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/nested/npop.py +0 -0
  183. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/nested/nset.py +0 -0
  184. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/nested/unflatten.py +0 -0
  185. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/nested/utils.py +0 -0
  186. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/package/__init__.py +0 -0
  187. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/package/management.py +0 -0
  188. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/package/params.py +0 -0
  189. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/package/system.py +0 -0
  190. {lionagi-0.12.2/lionagi/libs/parse → lionagi-0.12.4/lionagi/libs/schema}/__init__.py +0 -0
  191. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/schema/as_readable.py +0 -0
  192. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/schema/extract_code_block.py +0 -0
  193. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/schema/extract_docstring.py +0 -0
  194. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/schema/function_to_schema.py +0 -0
  195. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/schema/json_schema.py +0 -0
  196. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/__init__.py +0 -0
  197. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/base.py +0 -0
  198. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/llmlingua.py +0 -0
  199. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/symbolic_compress_context.py +0 -0
  200. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/synthlang.py +0 -0
  201. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/synthlang_/base.py +0 -0
  202. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/synthlang_/resources/frameworks/abstract_algebra.toml +0 -0
  203. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/synthlang_/resources/frameworks/category_theory.toml +0 -0
  204. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/synthlang_/resources/frameworks/complex_analysis.toml +0 -0
  205. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/synthlang_/resources/frameworks/group_theory.toml +0 -0
  206. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/synthlang_/resources/frameworks/math_logic.toml +0 -0
  207. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/synthlang_/resources/frameworks/reflective_patterns.toml +0 -0
  208. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/synthlang_/resources/frameworks/set_theory.toml +0 -0
  209. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/synthlang_/resources/frameworks/topology_fundamentals.toml +0 -0
  210. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/synthlang_/resources/mapping/lion_emoji_mapping.toml +0 -0
  211. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/synthlang_/resources/mapping/python_math_mapping.toml +0 -0
  212. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/synthlang_/resources/mapping/rust_chinese_mapping.toml +0 -0
  213. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/synthlang_/resources/utility/base_synthlang_system_prompt.toml +0 -0
  214. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/types.py +0 -0
  215. {lionagi-0.12.2/lionagi/libs/schema → lionagi-0.12.4/lionagi/libs/validate}/__init__.py +0 -0
  216. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/validate/common_field_validators.py +0 -0
  217. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/validate/fuzzy_match_keys.py +0 -0
  218. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/validate/fuzzy_validate_mapping.py +0 -0
  219. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/validate/string_similarity.py +0 -0
  220. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/validate/validate_boolean.py +0 -0
  221. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/models/__init__.py +0 -0
  222. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/models/field_model.py +0 -0
  223. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/models/hashable_model.py +0 -0
  224. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/models/model_params.py +0 -0
  225. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/models/note.py +0 -0
  226. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/models/operable_model.py +0 -0
  227. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/models/schema_model.py +0 -0
  228. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/ReAct/ReAct.py +0 -0
  229. {lionagi-0.12.2/lionagi/libs/validate → lionagi-0.12.4/lionagi/operations/ReAct}/__init__.py +0 -0
  230. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/ReAct/utils.py +0 -0
  231. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/__init__.py +0 -0
  232. {lionagi-0.12.2/lionagi/operations/ReAct → lionagi-0.12.4/lionagi/operations/_act}/__init__.py +0 -0
  233. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/_act/act.py +0 -0
  234. {lionagi-0.12.2/lionagi/operations/_act → lionagi-0.12.4/lionagi/operations/brainstorm}/__init__.py +0 -0
  235. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/brainstorm/brainstorm.py +0 -0
  236. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/brainstorm/prompt.py +0 -0
  237. {lionagi-0.12.2/lionagi/operations/brainstorm → lionagi-0.12.4/lionagi/operations/chat}/__init__.py +0 -0
  238. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/communicate/__init__.py +0 -0
  239. {lionagi-0.12.2/lionagi/operations/chat → lionagi-0.12.4/lionagi/operations/instruct}/__init__.py +0 -0
  240. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/instruct/instruct.py +0 -0
  241. {lionagi-0.12.2/lionagi/operations/instruct → lionagi-0.12.4/lionagi/operations/interpret}/__init__.py +0 -0
  242. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/interpret/interpret.py +0 -0
  243. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/manager.py +0 -0
  244. {lionagi-0.12.2/lionagi/operations/interpret → lionagi-0.12.4/lionagi/operations/operate}/__init__.py +0 -0
  245. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/operate/operate.py +0 -0
  246. {lionagi-0.12.2/lionagi/operations/operate → lionagi-0.12.4/lionagi/operations/parse}/__init__.py +0 -0
  247. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/plan/__init__.py +0 -0
  248. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/plan/plan.py +0 -0
  249. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/plan/prompt.py +0 -0
  250. {lionagi-0.12.2/lionagi/operations/parse → lionagi-0.12.4/lionagi/operations/select}/__init__.py +0 -0
  251. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/select/select.py +0 -0
  252. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/select/utils.py +0 -0
  253. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/translate/__init__.py +0 -0
  254. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/translate/translate.py +0 -0
  255. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/types.py +0 -0
  256. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/utils.py +0 -0
  257. {lionagi-0.12.2/lionagi/operations/select → lionagi-0.12.4/lionagi/protocols}/__init__.py +0 -0
  258. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/_concepts.py +0 -0
  259. {lionagi-0.12.2/lionagi/protocols → lionagi-0.12.4/lionagi/protocols/action}/__init__.py +0 -0
  260. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/action/function_calling.py +0 -0
  261. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/action/manager.py +0 -0
  262. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/action/tool.py +0 -0
  263. {lionagi-0.12.2/lionagi/protocols/action → lionagi-0.12.4/lionagi/protocols/forms}/__init__.py +0 -0
  264. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/forms/base.py +0 -0
  265. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/forms/flow.py +0 -0
  266. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/forms/form.py +0 -0
  267. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/forms/report.py +0 -0
  268. {lionagi-0.12.2/lionagi/protocols/forms → lionagi-0.12.4/lionagi/protocols/generic}/__init__.py +0 -0
  269. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/generic/element.py +0 -0
  270. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/generic/event.py +0 -0
  271. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/generic/processor.py +0 -0
  272. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/generic/progression.py +0 -0
  273. {lionagi-0.12.2/lionagi/protocols/generic → lionagi-0.12.4/lionagi/protocols/graph}/__init__.py +0 -0
  274. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/graph/edge.py +0 -0
  275. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/graph/graph.py +0 -0
  276. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/graph/node.py +0 -0
  277. {lionagi-0.12.2/lionagi/protocols/graph → lionagi-0.12.4/lionagi/protocols/mail}/__init__.py +0 -0
  278. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/mail/exchange.py +0 -0
  279. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/mail/mail.py +0 -0
  280. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/mail/mailbox.py +0 -0
  281. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/mail/manager.py +0 -0
  282. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/mail/package.py +0 -0
  283. {lionagi-0.12.2/lionagi/protocols/mail → lionagi-0.12.4/lionagi/protocols/messages}/__init__.py +0 -0
  284. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/messages/action_request.py +0 -0
  285. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/messages/action_response.py +0 -0
  286. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/messages/base.py +0 -0
  287. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/messages/instruction.py +0 -0
  288. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/messages/manager.py +0 -0
  289. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/messages/message.py +0 -0
  290. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/messages/system.py +0 -0
  291. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/messages/templates/action_request.jinja2 +0 -0
  292. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/messages/templates/action_response.jinja2 +0 -0
  293. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/messages/templates/assistant_response.jinja2 +0 -0
  294. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/messages/templates/instruction_message.jinja2 +0 -0
  295. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/messages/templates/system_message.jinja2 +0 -0
  296. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/messages/templates/tool_schemas.jinja2 +0 -0
  297. {lionagi-0.12.2/lionagi/protocols/messages → lionagi-0.12.4/lionagi/protocols/operatives}/__init__.py +0 -0
  298. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/operatives/operative.py +0 -0
  299. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/operatives/step.py +0 -0
  300. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/types.py +0 -0
  301. /lionagi-0.12.2/lionagi/service/providers/exa_/__init__.py → /lionagi-0.12.4/lionagi/py.typed +0 -0
  302. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/service/__init__.py +0 -0
  303. {lionagi-0.12.2/lionagi/service/endpoints → lionagi-0.12.4/lionagi/service}/token_calculator.py +0 -0
  304. {lionagi-0.12.2/lionagi/protocols/operatives → lionagi-0.12.4/lionagi/session}/__init__.py +0 -0
  305. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/session/prompts.py +0 -0
  306. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/session/session.py +0 -0
  307. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/settings.py +0 -0
  308. {lionagi-0.12.2/lionagi/service/endpoints → lionagi-0.12.4/lionagi/tools}/__init__.py +0 -0
  309. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/tools/base.py +0 -0
  310. {lionagi-0.12.2/lionagi/service/providers → lionagi-0.12.4/lionagi/tools/file}/__init__.py +0 -0
  311. {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/tools/types.py +0 -0
@@ -0,0 +1,15 @@
1
+ # These are supported funding model platforms
2
+
3
+ github: [lion-agi]
4
+ patreon: # Replace with a single Patreon username
5
+ open_collective: # Replace with a single Open Collective username
6
+ ko_fi: # Replace with a single Ko-fi username
7
+ tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8
+ community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9
+ liberapay: # Replace with a single Liberapay username
10
+ issuehunt: # Replace with a single IssueHunt username
11
+ lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
12
+ polar: # Replace with a single Polar username
13
+ buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
14
+ thanks_dev: # Replace with a single thanks.dev username
15
+ custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
@@ -0,0 +1,68 @@
1
+ name: Continuous Integration
2
+
3
+ on:
4
+ push:
5
+ branches: [ main, develop ]
6
+ pull_request:
7
+ branches: [ main, develop ]
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ matrix:
14
+ python-version: ['3.10', '3.11', '3.12', '3.13']
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+ - name: Set up Python ${{ matrix.python-version }}
18
+ uses: actions/setup-python@v5
19
+ with:
20
+ python-version: ${{ matrix.python-version }}
21
+
22
+ - name: Install uv
23
+ run: |
24
+ curl -LsSf https://astral.sh/uv/install.sh | sh
25
+ echo "$HOME/.cargo/bin" >> $GITHUB_PATH
26
+
27
+ - name: Load cached dependencies
28
+ id: cached-uv-dependencies
29
+ uses: actions/cache@v4
30
+ with:
31
+ path: .venv
32
+ key: venv-${{ runner.os }}-${{ matrix.python-version }}-${{ hashFiles('pyproject.toml') }}
33
+
34
+ - name: Install dependencies
35
+ if: steps.cached-uv-dependencies.outputs.cache-hit != 'true'
36
+ run: |
37
+ uv venv
38
+ uv sync --extra all
39
+
40
+ - name: Run tests
41
+ run: |
42
+ source .venv/bin/activate
43
+ uv run pytest --asyncio-mode=auto --maxfail=1 --disable-warnings tests/
44
+
45
+ - name: Check code style and compatibility
46
+ run: |
47
+ source .venv/bin/activate
48
+ uv run black --check .
49
+ uv run isort --check-only .
50
+
51
+ publish:
52
+ needs: test
53
+ runs-on: ubuntu-latest
54
+ if: github.event_name == 'push' && github.ref == 'refs/heads/main'
55
+ steps:
56
+ - uses: actions/checkout@v4
57
+ - name: Set up Python
58
+ uses: actions/setup-python@v5
59
+ with:
60
+ python-version: "3.12"
61
+
62
+ - name: Install uv
63
+ run: |
64
+ curl -LsSf https://astral.sh/uv/install.sh | sh
65
+ echo "$HOME/.cargo/bin" >> $GITHUB_PATH
66
+
67
+ - name: Build package
68
+ run: uv build
@@ -0,0 +1,40 @@
1
+ name: "CodeQL"
2
+
3
+ on:
4
+ push:
5
+ branches: [ main, develop ]
6
+ pull_request:
7
+ branches: [ main, develop ]
8
+ schedule:
9
+ - cron: '0 0 * * 0'
10
+
11
+ jobs:
12
+ analyze:
13
+ name: Analyze
14
+ runs-on: ubuntu-latest
15
+ permissions:
16
+ actions: read
17
+ contents: read
18
+ security-events: write
19
+
20
+ strategy:
21
+ fail-fast: false
22
+ matrix:
23
+ language: [ 'python' ]
24
+
25
+ steps:
26
+ - name: Checkout repository
27
+ uses: actions/checkout@v4
28
+
29
+ - name: Initialize CodeQL
30
+ uses: github/codeql-action/init@v3
31
+ with:
32
+ languages: ${{ matrix.language }}
33
+
34
+ - name: Autobuild
35
+ uses: github/codeql-action/autobuild@v3
36
+
37
+ - name: Perform CodeQL Analysis
38
+ uses: github/codeql-action/analyze@v3
39
+
40
+ # filepath: .github/workflows/codeql-analysis.yml
@@ -2,10 +2,7 @@ name: Build and Deploy Docs
2
2
 
3
3
  on:
4
4
  push:
5
- branches: ["main"]
6
-
7
- permissions:
8
- contents: write
5
+ branches: [ "main" ]
9
6
 
10
7
  jobs:
11
8
  build-deploy:
@@ -0,0 +1,65 @@
1
+ name: Release
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+
7
+ permissions:
8
+ contents: read
9
+
10
+ jobs:
11
+ test:
12
+ runs-on: ubuntu-latest
13
+ strategy:
14
+ matrix:
15
+ python-version: ['3.10', '3.11', '3.12', '3.13']
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+ - name: Set up Python ${{ matrix.python-version }}
19
+ uses: actions/setup-python@v5
20
+ with:
21
+ python-version: ${{ matrix.python-version }}
22
+
23
+ - name: Install uv
24
+ run: |
25
+ curl -LsSf https://astral.sh/uv/install.sh | sh
26
+ echo "$HOME/.cargo/bin" >> $GITHUB_PATH
27
+
28
+ - name: Install dependencies
29
+ run: |
30
+ uv venv
31
+ uv sync --extra all
32
+
33
+ - name: Run tests
34
+ run: |
35
+ source .venv/bin/activate
36
+ uv run pytest --asyncio-mode=auto --maxfail=1 --disable-warnings tests/
37
+
38
+ deploy:
39
+ needs: test
40
+ runs-on: ubuntu-latest
41
+ steps:
42
+ - uses: actions/checkout@v4
43
+ - name: Set up Python
44
+ uses: actions/setup-python@v5
45
+ with:
46
+ python-version: "3.12"
47
+
48
+ - name: Install uv
49
+ run: |
50
+ curl -LsSf https://astral.sh/uv/install.sh | sh
51
+ echo "$HOME/.cargo/bin" >> $GITHUB_PATH
52
+
53
+ - name: Install dependencies
54
+ run: |
55
+ uv venv
56
+ uv pip install twine
57
+
58
+ - name: Build package
59
+ run: uv build
60
+
61
+ - name: Publish package to PyPI
62
+ env:
63
+ TWINE_USERNAME: __token__
64
+ TWINE_PASSWORD: ${{ secrets.PYPI_API_KEY }}
65
+ run: uv run twine upload dist/*
@@ -3,6 +3,9 @@ __pycache__/
3
3
  *.py[cod]
4
4
  *$py.class
5
5
 
6
+ # Development notes
7
+ CLAUDE.md
8
+
6
9
  # Byte-compiled / optimized / DLL files
7
10
  __pycache__/
8
11
  *.py[cod]
@@ -170,4 +173,4 @@ cython_debug/
170
173
  .roomodes
171
174
  .khive/
172
175
  .roo/
173
- data/logs/
176
+ *logs/
@@ -0,0 +1 @@
1
+ 3.10
@@ -0,0 +1,75 @@
1
+ # LionAGI Code of Conduct
2
+
3
+ ## A. Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as members, contributors, and leaders of the LionAGI community pledge to make participation in our project and our community a harassment-free experience for everyone, regardless of background, identity, and personal characteristics.
6
+
7
+ We commit to act and interact in ways that contribute to an inclusive, diverse, and friendly community.
8
+
9
+ ## B. Our Standards
10
+
11
+ Examples of behavior that contribute to a positive environment include:
12
+
13
+ * Demonstrating empathy and kindness toward other people.
14
+ * Being respectful of differing opinions, viewpoints, and experiences.
15
+ * Giving and gracefully accepting constructive feedback.
16
+ * Accepting responsibility for our actions, apologizing to those affected by our mistakes, and learning from the experience.
17
+ * Focusing on what is best for the community as a whole.
18
+
19
+ Examples of unacceptable behavior include:
20
+
21
+ * The use of sexualized language or imagery, and sexual attention or advances of any kind.
22
+ * Trolling, insulting or derogatory comments, and personal or political attacks.
23
+ * Public or private harassment.
24
+ * Publishing others' private information, such as a physical or email address, without explicit permission.
25
+ * Other conduct which could reasonably be considered inappropriate in a professional setting.
26
+
27
+ ## C. Enforcement Responsibilities
28
+
29
+ Our community leaders are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
30
+
31
+ Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned with this Code of Conduct.
32
+
33
+ ## D. Scope
34
+
35
+ This Code of Conduct applies within all community spaces, including GitHub, Discord, and various social media platforms, and also applies when an individual is officially representing the community.
36
+
37
+ ## E. Enforcement
38
+
39
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team via our Discord server. All complaints will be reviewed and investigated in a manner that ensures fairness and respect for all parties.
40
+
41
+ Community leaders are obligated to respect the privacy and security of the reporter of any incident.
42
+
43
+ ## F. Enforcement Guidelines
44
+
45
+ Community leaders will follow these Community Impact Guidelines in determining the consequences for any action deemed in violation of this Code of Conduct:
46
+
47
+ ### 1. Correction
48
+
49
+ **Community Impact**: Use of inappropriate language or behavior deemed unprofessional.
50
+
51
+ **Consequence**: A private written warning from community leaders, with an explanation of why the behavior was inappropriate.
52
+
53
+ ### 2. Warning
54
+
55
+ **Community Impact**: A violation through a single incident or series of actions.
56
+
57
+ **Consequence**: A warning with consequences for continued behavior. This includes a temporary ban from community interaction if the behavior persists.
58
+
59
+ ### 3. Temporary Ban
60
+
61
+ **Community Impact**: A serious violation of community standards.
62
+
63
+ **Consequence**: A temporary ban from any sort of interaction within the community.
64
+
65
+ ### 4. Permanent Ban
66
+
67
+ **Community Impact**: Sustained inappropriate behavior, harassment, or aggression toward individuals.
68
+
69
+ **Consequence**: A permanent ban from any sort of public interaction within the community.
70
+
71
+ ## G. Attribution
72
+
73
+ This Code of Conduct is adapted from the Contributor Covenant, version 2.0, available at [Contributor Covenant](https://www.contributor-covenant.org/version/2/0/code_of_conduct.html).
74
+
75
+ For answers to common questions about this code of conduct, see the [FAQ](https://www.contributor-covenant.org/faq).
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lionagi
3
- Version: 0.12.2
3
+ Version: 0.12.4
4
4
  Summary: An Intelligence Operating System.
5
5
  Author-email: HaiyangLi <quantocean.li@gmail.com>, Liangbingyan Luo <llby_luo@outlook.com>
6
6
  License: Apache License
@@ -219,19 +219,37 @@ Classifier: Programming Language :: Python :: 3.11
219
219
  Classifier: Programming Language :: Python :: 3.12
220
220
  Classifier: Programming Language :: Python :: 3.13
221
221
  Requires-Python: >=3.10
222
- Requires-Dist: jinja2>=3.0.0
223
- Requires-Dist: khive>=0.2.7
222
+ Requires-Dist: aiocache>=0.12.0
223
+ Requires-Dist: aiohttp>=3.12.0
224
+ Requires-Dist: backoff>=2.2.1
225
+ Requires-Dist: jinja2>=3.1.0
224
226
  Requires-Dist: pandas>=2.0.0
227
+ Requires-Dist: pillow>=11.0.0
228
+ Requires-Dist: pydantic-settings>=2.8.0
229
+ Requires-Dist: pydantic>2.0.0
230
+ Requires-Dist: python-dotenv>=1.1.0
225
231
  Requires-Dist: tiktoken>=0.8.0
232
+ Requires-Dist: toml>=0.9.0
226
233
  Provides-Extra: all
227
- Requires-Dist: khive[ollama,reader]; extra == 'all'
228
- Requires-Dist: litellm; extra == 'all'
229
- Provides-Extra: llms
230
- Requires-Dist: litellm; extra == 'llms'
234
+ Requires-Dist: docling>=2.15.1; extra == 'all'
235
+ Requires-Dist: ollama>=0.5.0; extra == 'all'
236
+ Provides-Extra: docs
237
+ Requires-Dist: furo>=2024.8.6; extra == 'docs'
238
+ Requires-Dist: sphinx-autobuild>=2024.10.3; extra == 'docs'
239
+ Requires-Dist: sphinx>=8.1.3; extra == 'docs'
240
+ Provides-Extra: lint
241
+ Requires-Dist: black[jupyter]>=24.10.0; extra == 'lint'
242
+ Requires-Dist: isort>=5.13.2; extra == 'lint'
243
+ Requires-Dist: pre-commit>=4.0.1; extra == 'lint'
231
244
  Provides-Extra: ollama
232
- Requires-Dist: khive[ollama]; extra == 'ollama'
245
+ Requires-Dist: ollama>=0.5.0; extra == 'ollama'
246
+ Provides-Extra: reader
247
+ Requires-Dist: docling>=2.15.1; extra == 'reader'
248
+ Provides-Extra: test
249
+ Requires-Dist: pytest-asyncio>=1.0.0; extra == 'test'
250
+ Requires-Dist: pytest>=8.3.4; extra == 'test'
233
251
  Provides-Extra: tools
234
- Requires-Dist: khive[reader]; extra == 'tools'
252
+ Requires-Dist: docling>=2.15.1; extra == 'tools'
235
253
  Description-Content-Type: text/markdown
236
254
 
237
255
  ![PyPI - Version](https://img.shields.io/pypi/v/lionagi?labelColor=233476aa&color=231fc935)
@@ -239,9 +257,8 @@ Description-Content-Type: text/markdown
239
257
  ![Python Version](https://img.shields.io/badge/python-3.10%2B-blue)
240
258
 
241
259
  [Documentation](https://lion-agi.github.io/lionagi/) |
242
- [Discord](https://discord.gg/aqSJ2v46vu) |
260
+ [Discord](https://discord.gg/JDj9ENhUE8) |
243
261
  [PyPI](https://pypi.org/project/lionagi/) |
244
- [Roadmap](https://trello.com/b/3seomsrI/lionagi)
245
262
 
246
263
  # LION - Language InterOperable Network
247
264
 
@@ -267,9 +284,6 @@ integrations, and custom validations in a single coherent pipeline.
267
284
  pip install lionagi
268
285
  ```
269
286
 
270
- Dependencies: • aiocahce • aiohttp • jinja2 • pandas • pillow • pydantic
271
- • python-dotenv • tiktoken
272
-
273
287
  ## Quick Start
274
288
 
275
289
  ```python
@@ -321,6 +335,10 @@ With fiery claws, dragons hide their laughter flaws!
321
335
  LionAGI supports advanced multi-step reasoning with ReAct. Tools let the LLM
322
336
  invoke external actions:
323
337
 
338
+ ```
339
+ pip install "lionagi[reader]"
340
+ ```
341
+
324
342
  ```python
325
343
  from lionagi.tools.types import ReaderTool
326
344
 
@@ -375,8 +393,7 @@ Seamlessly route to different models in the same workflow.
375
393
  ### optional dependencies
376
394
 
377
395
  ```
378
- pip install "lionagi[tools]"
379
- pip install "lionagi[llms]"
396
+ pip install "lionagi[reader]"
380
397
  pip install "lionagi[ollama]"
381
398
  ```
382
399
 
@@ -3,9 +3,8 @@
3
3
  ![Python Version](https://img.shields.io/badge/python-3.10%2B-blue)
4
4
 
5
5
  [Documentation](https://lion-agi.github.io/lionagi/) |
6
- [Discord](https://discord.gg/aqSJ2v46vu) |
6
+ [Discord](https://discord.gg/JDj9ENhUE8) |
7
7
  [PyPI](https://pypi.org/project/lionagi/) |
8
- [Roadmap](https://trello.com/b/3seomsrI/lionagi)
9
8
 
10
9
  # LION - Language InterOperable Network
11
10
 
@@ -31,9 +30,6 @@ integrations, and custom validations in a single coherent pipeline.
31
30
  pip install lionagi
32
31
  ```
33
32
 
34
- Dependencies: • aiocahce • aiohttp • jinja2 • pandas • pillow • pydantic
35
- • python-dotenv • tiktoken
36
-
37
33
  ## Quick Start
38
34
 
39
35
  ```python
@@ -85,6 +81,10 @@ With fiery claws, dragons hide their laughter flaws!
85
81
  LionAGI supports advanced multi-step reasoning with ReAct. Tools let the LLM
86
82
  invoke external actions:
87
83
 
84
+ ```
85
+ pip install "lionagi[reader]"
86
+ ```
87
+
88
88
  ```python
89
89
  from lionagi.tools.types import ReaderTool
90
90
 
@@ -139,8 +139,7 @@ Seamlessly route to different models in the same workflow.
139
139
  ### optional dependencies
140
140
 
141
141
  ```
142
- pip install "lionagi[tools]"
143
- pip install "lionagi[llms]"
142
+ pip install "lionagi[reader]"
144
143
  pip install "lionagi[ollama]"
145
144
  ```
146
145
 
@@ -0,0 +1,123 @@
1
+ # Copyright (c) 2025, HaiyangLi <quantocean.li at gmail dot com>
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from typing import Any, ClassVar
6
+
7
+ from pydantic import BaseModel, Field, SecretStr
8
+ from pydantic_settings import BaseSettings, SettingsConfigDict
9
+
10
+
11
+ class CacheConfig(BaseModel):
12
+ """Configuration for aiocache."""
13
+
14
+ ttl: int = 300
15
+ key: str | None = None
16
+ namespace: str | None = None
17
+ key_builder: Any = None
18
+ skip_cache_func: Any = lambda _: False
19
+ serializer: dict[str, Any] | None = None
20
+ plugins: Any = None
21
+ alias: str | None = None
22
+ noself: Any = lambda _: False
23
+
24
+ def as_kwargs(self) -> dict[str, Any]:
25
+ """Convert config to kwargs dict for @cached decorator.
26
+
27
+ Removes unserialisable callables that aiocache can't pickle.
28
+ """
29
+ raw = self.model_dump(exclude_none=True)
30
+ # Remove all unserialisable callables
31
+ unserialisable_keys = (
32
+ "key_builder",
33
+ "skip_cache_func",
34
+ "noself",
35
+ "serializer",
36
+ "plugins",
37
+ )
38
+ for key in unserialisable_keys:
39
+ raw.pop(key, None)
40
+ return raw
41
+
42
+
43
+ class AppSettings(BaseSettings, frozen=True):
44
+ """Application settings with environment variable support."""
45
+
46
+ model_config = SettingsConfigDict(
47
+ env_file=(".env", ".env.local", ".secrets.env"),
48
+ env_file_encoding="utf-8",
49
+ case_sensitive=False,
50
+ extra="ignore",
51
+ )
52
+
53
+ aiocache_config: CacheConfig = Field(
54
+ default_factory=CacheConfig, description="Cache settings for aiocache"
55
+ )
56
+
57
+ # secrets
58
+ OPENAI_API_KEY: SecretStr | None = None
59
+ OPENROUTER_API_KEY: SecretStr | None = None
60
+ OLLAMA_API_KEY: SecretStr | None = None
61
+ EXA_API_KEY: SecretStr | None = None
62
+ PERPLEXITY_API_KEY: SecretStr | None = None
63
+ GROQ_API_KEY: SecretStr | None = None
64
+ ANTHROPIC_API_KEY: SecretStr | None = None
65
+
66
+ # defaults models
67
+ LIONAGI_EMBEDDING_PROVIDER: str = "openai"
68
+ LIONAGI_EMBEDDING_MODEL: str = "text-embedding-3-small"
69
+
70
+ LIONAGI_CHAT_PROVIDER: str = "openai"
71
+ LIONAGI_CHAT_MODEL: str = "gpt-4o"
72
+
73
+ # default storage
74
+ LIONAGI_AUTO_STORE_EVENT: bool = False
75
+ LIONAGI_STORAGE_PROVIDER: str = "async_qdrant"
76
+
77
+ LIONAGI_AUTO_EMBED_LOG: bool = False
78
+
79
+ # specific storage
80
+ LIONAGI_QDRANT_URL: str = "http://localhost:6333"
81
+ LIONAGI_DEFAULT_QDRANT_COLLECTION: str = "event_logs"
82
+
83
+ # Class variable to store the singleton instance
84
+ _instance: ClassVar[Any] = None
85
+
86
+ def get_secret(self, key_name: str) -> str:
87
+ """
88
+ Get the secret value for a given key name.
89
+
90
+ Args:
91
+ key_name: The name of the secret key (e.g., "OPENAI_API_KEY")
92
+
93
+ Returns:
94
+ The secret value as a string
95
+
96
+ Raises:
97
+ AttributeError: If the key doesn't exist
98
+ ValueError: If the key exists but is None
99
+ """
100
+ if not hasattr(self, key_name):
101
+ if "ollama" in key_name.lower():
102
+ return "ollama"
103
+ raise AttributeError(
104
+ f"Secret key '{key_name}' not found in settings"
105
+ )
106
+
107
+ secret = getattr(self, key_name)
108
+ if secret is None:
109
+ # Special case for Ollama - return "ollama" even if key exists but is None
110
+ if "ollama" in key_name.lower():
111
+ return "ollama"
112
+ raise ValueError(f"Secret key '{key_name}' is not set")
113
+
114
+ if isinstance(secret, SecretStr):
115
+ return secret.get_secret_value()
116
+
117
+ return str(secret)
118
+
119
+
120
+ # Create a singleton instance
121
+ settings = AppSettings()
122
+ # Store the instance in the class variable for singleton pattern
123
+ AppSettings._instance = settings
@@ -71,7 +71,7 @@ class File(HashableModel):
71
71
  header: str | None = None,
72
72
  footer: str | None = None,
73
73
  ) -> Path:
74
- from lionagi.libs.file.create_path import create_path
74
+ from lionagi.utils import create_path
75
75
 
76
76
  fp = create_path(
77
77
  directory=directory,
@@ -4,8 +4,8 @@
4
4
 
5
5
  from pydantic import Field, field_validator
6
6
 
7
- from lionagi.libs.parse.to_num import to_num
8
7
  from lionagi.models import FieldModel, HashableModel
8
+ from lionagi.utils import to_num
9
9
 
10
10
  __all__ = ("Reason",)
11
11
 
@@ -1,12 +1,7 @@
1
- # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
- #
3
- # SPDX-License-Identifier: Apache-2.0
4
-
5
1
  from pathlib import Path
6
2
  from typing import Any
7
3
 
8
- from lionagi.libs.file.create_path import create_path
9
- from lionagi.utils import lcall
4
+ from lionagi.utils import create_path, lcall
10
5
 
11
6
  from .process import dir_to_files
12
7
 
@@ -1,10 +1,6 @@
1
- # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
- #
3
- # SPDX-License-Identifier: Apache-2.0
4
-
5
1
  from pathlib import Path
6
2
 
7
- from lionagi.libs.file.create_path import create_path
3
+ from lionagi.utils import create_path
8
4
 
9
5
  from .process import dir_to_files
10
6
 
@@ -7,7 +7,7 @@ import logging
7
7
  from pathlib import Path
8
8
  from typing import Any
9
9
 
10
- from .create_path import create_path
10
+ from lionagi.utils import create_path
11
11
 
12
12
 
13
13
  def save_to_file(
@@ -0,0 +1,21 @@
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from lionagi.utils import (
6
+ check_import,
7
+ import_module,
8
+ install_import,
9
+ is_import_installed,
10
+ run_package_manager_command,
11
+ )
12
+
13
+ # backward compatibility
14
+
15
+ __all__ = (
16
+ "run_package_manager_command",
17
+ "check_import",
18
+ "import_module",
19
+ "install_import",
20
+ "is_import_installed",
21
+ )
@@ -0,0 +1,30 @@
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from lionagi.libs.schema.as_readable import as_readable
6
+ from lionagi.libs.schema.extract_code_block import extract_code_block
7
+ from lionagi.libs.schema.function_to_schema import function_to_schema
8
+ from lionagi.libs.validate.fuzzy_match_keys import fuzzy_match_keys
9
+ from lionagi.libs.validate.fuzzy_validate_mapping import fuzzy_validate_mapping
10
+ from lionagi.libs.validate.string_similarity import string_similarity
11
+ from lionagi.utils import fuzzy_parse_json, to_dict, to_json, to_num
12
+
13
+ validate_keys = fuzzy_match_keys # for backward compatibility
14
+ validate_mapping = fuzzy_validate_mapping # for backward compatibility
15
+
16
+
17
+ __all__ = (
18
+ "as_readable",
19
+ "extract_code_block",
20
+ "function_to_schema",
21
+ "fuzzy_match_keys",
22
+ "fuzzy_validate_mapping",
23
+ "string_similarity",
24
+ "validate_keys",
25
+ "validate_mapping",
26
+ "to_dict",
27
+ "to_json",
28
+ "to_num",
29
+ "fuzzy_parse_json",
30
+ )