lionagi 0.16.0__tar.gz → 0.16.1__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 (363) hide show
  1. {lionagi-0.16.0 → lionagi-0.16.1}/PKG-INFO +3 -3
  2. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/adapters/async_postgres_adapter.py +1 -1
  3. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/nested/ninsert.py +3 -6
  4. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/nested/nmerge.py +1 -2
  5. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/ReAct/utils.py +1 -2
  6. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/action/function_calling.py +1 -4
  7. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/generic/element.py +1 -58
  8. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/graph/graph.py +1 -2
  9. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/graph/node.py +2 -4
  10. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/messages/instruction.py +1 -2
  11. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/messages/manager.py +1 -2
  12. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/messages/message.py +1 -4
  13. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/connections/providers/claude_code_.py +1 -2
  14. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/resilience.py +1 -2
  15. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/tools/memory/tools.py +2 -4
  16. lionagi-0.16.1/lionagi/version.py +1 -0
  17. {lionagi-0.16.0 → lionagi-0.16.1}/pyproject.toml +3 -3
  18. {lionagi-0.16.0 → lionagi-0.16.1}/uv.lock +7 -8
  19. lionagi-0.16.0/lionagi/version.py +0 -1
  20. {lionagi-0.16.0 → lionagi-0.16.1}/.coveragerc +0 -0
  21. {lionagi-0.16.0 → lionagi-0.16.1}/.env.example +0 -0
  22. {lionagi-0.16.0 → lionagi-0.16.1}/.github/FUNDING.yml +0 -0
  23. {lionagi-0.16.0 → lionagi-0.16.1}/.github/dependabot.yml +0 -0
  24. {lionagi-0.16.0 → lionagi-0.16.1}/.github/workflows/benchmarks.yml +0 -0
  25. {lionagi-0.16.0 → lionagi-0.16.1}/.github/workflows/ci.yml +0 -0
  26. {lionagi-0.16.0 → lionagi-0.16.1}/.github/workflows/codeql.yml +0 -0
  27. {lionagi-0.16.0 → lionagi-0.16.1}/.github/workflows/docs-deploy.yml +0 -0
  28. {lionagi-0.16.0 → lionagi-0.16.1}/.github/workflows/refresh-bench-baselines.yml +0 -0
  29. {lionagi-0.16.0 → lionagi-0.16.1}/.github/workflows/release.yml +0 -0
  30. {lionagi-0.16.0 → lionagi-0.16.1}/.gitignore +0 -0
  31. {lionagi-0.16.0 → lionagi-0.16.1}/.pre-commit-config.yaml +0 -0
  32. {lionagi-0.16.0 → lionagi-0.16.1}/.python-version +0 -0
  33. {lionagi-0.16.0 → lionagi-0.16.1}/CODE_OF_CONDUCT.md +0 -0
  34. {lionagi-0.16.0 → lionagi-0.16.1}/CONTRIBUTING.md +0 -0
  35. {lionagi-0.16.0 → lionagi-0.16.1}/LICENSE +0 -0
  36. {lionagi-0.16.0 → lionagi-0.16.1}/README.md +0 -0
  37. {lionagi-0.16.0 → lionagi-0.16.1}/assets/operation_builder.gif +0 -0
  38. {lionagi-0.16.0 → lionagi-0.16.1}/benchmarks/README.md +0 -0
  39. {lionagi-0.16.0 → lionagi-0.16.1}/benchmarks/baselines/.gitkeep +0 -0
  40. {lionagi-0.16.0 → lionagi-0.16.1}/benchmarks/baselines/concurrency-asyncio.json +0 -0
  41. {lionagi-0.16.0 → lionagi-0.16.1}/benchmarks/baselines/concurrency-trio.json +0 -0
  42. {lionagi-0.16.0 → lionagi-0.16.1}/benchmarks/baselines/fuzzy.json +0 -0
  43. {lionagi-0.16.0 → lionagi-0.16.1}/benchmarks/baselines/ln-asyncio.json +0 -0
  44. {lionagi-0.16.0 → lionagi-0.16.1}/benchmarks/baselines/ln-trio.json +0 -0
  45. {lionagi-0.16.0 → lionagi-0.16.1}/benchmarks/ci_compare.py +0 -0
  46. {lionagi-0.16.0 → lionagi-0.16.1}/benchmarks/concurrency_bench.py +0 -0
  47. {lionagi-0.16.0 → lionagi-0.16.1}/benchmarks/fuzzy_bench.py +0 -0
  48. {lionagi-0.16.0 → lionagi-0.16.1}/benchmarks/ln_bench.py +0 -0
  49. {lionagi-0.16.0 → lionagi-0.16.1}/cookbooks/001_branch_converse.ipynb +0 -0
  50. {lionagi-0.16.0 → lionagi-0.16.1}/cookbooks/002_branch_interact.ipynb +0 -0
  51. {lionagi-0.16.0 → lionagi-0.16.1}/cookbooks/003_branch_info.ipynb +0 -0
  52. {lionagi-0.16.0 → lionagi-0.16.1}/cookbooks/004_conversation_patterns.ipynb +0 -0
  53. {lionagi-0.16.0 → lionagi-0.16.1}/cookbooks/005_react_basics.ipynb +0 -0
  54. {lionagi-0.16.0 → lionagi-0.16.1}/cookbooks/006_operation_graphs_claim_extraction.ipynb +0 -0
  55. {lionagi-0.16.0 → lionagi-0.16.1}/cookbooks/007_fan_out_in.py +0 -0
  56. {lionagi-0.16.0 → lionagi-0.16.1}/cookbooks/claude_proxy/README.md +0 -0
  57. {lionagi-0.16.0 → lionagi-0.16.1}/cookbooks/claude_proxy/claude_code_proxy.py +0 -0
  58. {lionagi-0.16.0 → lionagi-0.16.1}/cookbooks/claude_proxy/run_w_claude_code_proxy.ipynb +0 -0
  59. {lionagi-0.16.0 → lionagi-0.16.1}/cookbooks/data/002_comedian.json +0 -0
  60. {lionagi-0.16.0 → lionagi-0.16.1}/cookbooks/data/002_critic.json +0 -0
  61. {lionagi-0.16.0 → lionagi-0.16.1}/cookbooks/data/006_lion_proof_ch2.md +0 -0
  62. {lionagi-0.16.0 → lionagi-0.16.1}/cookbooks/using_claude_code.py +0 -0
  63. {lionagi-0.16.0 → lionagi-0.16.1}/docs/DOCUMENTATION_STANDARDS.md +0 -0
  64. {lionagi-0.16.0 → lionagi-0.16.1}/docs/advanced/custom-operations.md +0 -0
  65. {lionagi-0.16.0 → lionagi-0.16.1}/docs/advanced/error-handling.md +0 -0
  66. {lionagi-0.16.0 → lionagi-0.16.1}/docs/advanced/flow-composition.md +0 -0
  67. {lionagi-0.16.0 → lionagi-0.16.1}/docs/advanced/index.md +0 -0
  68. {lionagi-0.16.0 → lionagi-0.16.1}/docs/advanced/observability.md +0 -0
  69. {lionagi-0.16.0 → lionagi-0.16.1}/docs/advanced/performance.md +0 -0
  70. {lionagi-0.16.0 → lionagi-0.16.1}/docs/code-of-conduct.md +0 -0
  71. {lionagi-0.16.0 → lionagi-0.16.1}/docs/comparisons/langgraph.md +0 -0
  72. {lionagi-0.16.0 → lionagi-0.16.1}/docs/contributing.md +0 -0
  73. {lionagi-0.16.0 → lionagi-0.16.1}/docs/cookbook/brainstorming.md +0 -0
  74. {lionagi-0.16.0 → lionagi-0.16.1}/docs/cookbook/claim-extraction.md +0 -0
  75. {lionagi-0.16.0 → lionagi-0.16.1}/docs/cookbook/code-review-crew.md +0 -0
  76. {lionagi-0.16.0 → lionagi-0.16.1}/docs/cookbook/data-persistence.md +0 -0
  77. {lionagi-0.16.0 → lionagi-0.16.1}/docs/cookbook/hr-automation.md +0 -0
  78. {lionagi-0.16.0 → lionagi-0.16.1}/docs/cookbook/index.md +0 -0
  79. {lionagi-0.16.0 → lionagi-0.16.1}/docs/cookbook/research-synthesis.md +0 -0
  80. {lionagi-0.16.0 → lionagi-0.16.1}/docs/core-concepts/index.md +0 -0
  81. {lionagi-0.16.0 → lionagi-0.16.1}/docs/core-concepts/lionagi-philosophy.md +0 -0
  82. {lionagi-0.16.0 → lionagi-0.16.1}/docs/core-concepts/messages-and-memory.md +0 -0
  83. {lionagi-0.16.0 → lionagi-0.16.1}/docs/core-concepts/models-and-providers.md +0 -0
  84. {lionagi-0.16.0 → lionagi-0.16.1}/docs/core-concepts/operations.md +0 -0
  85. {lionagi-0.16.0 → lionagi-0.16.1}/docs/core-concepts/sessions-and-branches.md +0 -0
  86. {lionagi-0.16.0 → lionagi-0.16.1}/docs/core-concepts/tools-and-functions.md +0 -0
  87. {lionagi-0.16.0 → lionagi-0.16.1}/docs/for-ai-agents/claude-code-usage.md +0 -0
  88. {lionagi-0.16.0 → lionagi-0.16.1}/docs/for-ai-agents/index.md +0 -0
  89. {lionagi-0.16.0 → lionagi-0.16.1}/docs/for-ai-agents/orchestration-guide.md +0 -0
  90. {lionagi-0.16.0 → lionagi-0.16.1}/docs/for-ai-agents/pattern-selection.md +0 -0
  91. {lionagi-0.16.0 → lionagi-0.16.1}/docs/for-ai-agents/self-improvement.md +0 -0
  92. {lionagi-0.16.0 → lionagi-0.16.1}/docs/includes/abbreviations.md +0 -0
  93. {lionagi-0.16.0 → lionagi-0.16.1}/docs/index.md +0 -0
  94. {lionagi-0.16.0 → lionagi-0.16.1}/docs/integrations/databases.md +0 -0
  95. {lionagi-0.16.0 → lionagi-0.16.1}/docs/integrations/dspy-optimization.md +0 -0
  96. {lionagi-0.16.0 → lionagi-0.16.1}/docs/integrations/index.md +0 -0
  97. {lionagi-0.16.0 → lionagi-0.16.1}/docs/integrations/llamaindex-rag.md +0 -0
  98. {lionagi-0.16.0 → lionagi-0.16.1}/docs/integrations/llm-providers.md +0 -0
  99. {lionagi-0.16.0 → lionagi-0.16.1}/docs/integrations/mcp-servers.md +0 -0
  100. {lionagi-0.16.0 → lionagi-0.16.1}/docs/integrations/tools.md +0 -0
  101. {lionagi-0.16.0 → lionagi-0.16.1}/docs/integrations/vector-stores.md +0 -0
  102. {lionagi-0.16.0 → lionagi-0.16.1}/docs/marketing/language-interoperability-manifesto.md +0 -0
  103. {lionagi-0.16.0 → lionagi-0.16.1}/docs/migration/from-autogen.md +0 -0
  104. {lionagi-0.16.0 → lionagi-0.16.1}/docs/migration/from-crewai.md +0 -0
  105. {lionagi-0.16.0 → lionagi-0.16.1}/docs/migration/from-langchain.md +0 -0
  106. {lionagi-0.16.0 → lionagi-0.16.1}/docs/migration/index.md +0 -0
  107. {lionagi-0.16.0 → lionagi-0.16.1}/docs/patterns/conditional-flows.md +0 -0
  108. {lionagi-0.16.0 → lionagi-0.16.1}/docs/patterns/fan-out-in.md +0 -0
  109. {lionagi-0.16.0 → lionagi-0.16.1}/docs/patterns/index.md +0 -0
  110. {lionagi-0.16.0 → lionagi-0.16.1}/docs/patterns/react-with-rag.md +0 -0
  111. {lionagi-0.16.0 → lionagi-0.16.1}/docs/patterns/sequential-analysis.md +0 -0
  112. {lionagi-0.16.0 → lionagi-0.16.1}/docs/patterns/tournament-validation.md +0 -0
  113. {lionagi-0.16.0 → lionagi-0.16.1}/docs/problem-statement.md +0 -0
  114. {lionagi-0.16.0 → lionagi-0.16.1}/docs/quickstart/claude-code-integration.md +0 -0
  115. {lionagi-0.16.0 → lionagi-0.16.1}/docs/quickstart/index.md +0 -0
  116. {lionagi-0.16.0 → lionagi-0.16.1}/docs/quickstart/installation.md +0 -0
  117. {lionagi-0.16.0 → lionagi-0.16.1}/docs/quickstart/orchestration-first.md +0 -0
  118. {lionagi-0.16.0 → lionagi-0.16.1}/docs/quickstart/your-first-flow.md +0 -0
  119. {lionagi-0.16.0 → lionagi-0.16.1}/docs/reference/api/index.md +0 -0
  120. {lionagi-0.16.0 → lionagi-0.16.1}/docs/reference/changelog.md +0 -0
  121. {lionagi-0.16.0 → lionagi-0.16.1}/docs/reference/troubleshooting.md +0 -0
  122. {lionagi-0.16.0 → lionagi-0.16.1}/docs/stylesheets/extra.css +0 -0
  123. {lionagi-0.16.0 → lionagi-0.16.1}/docs/thinking-in-lionagi/branches-as-agents.md +0 -0
  124. {lionagi-0.16.0 → lionagi-0.16.1}/docs/thinking-in-lionagi/builder-pattern.md +0 -0
  125. {lionagi-0.16.0 → lionagi-0.16.1}/docs/thinking-in-lionagi/graphs-over-chains.md +0 -0
  126. {lionagi-0.16.0 → lionagi-0.16.1}/docs/thinking-in-lionagi/index.md +0 -0
  127. {lionagi-0.16.0 → lionagi-0.16.1}/docs/thinking-in-lionagi/why-lionagi.md +0 -0
  128. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/__init__.py +0 -0
  129. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/_class_registry.py +0 -0
  130. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/_errors.py +0 -0
  131. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/_types.py +0 -0
  132. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/adapters/__init__.py +0 -0
  133. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/adapters/_utils.py +0 -0
  134. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/adapters/postgres_model_adapter.py +0 -0
  135. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/config.py +0 -0
  136. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/fields/__init__.py +0 -0
  137. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/fields/action.py +0 -0
  138. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/fields/base.py +0 -0
  139. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/fields/code.py +0 -0
  140. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/fields/file.py +0 -0
  141. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/fields/instruct.py +0 -0
  142. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/fields/reason.py +0 -0
  143. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/fields/research.py +0 -0
  144. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/__init__.py +0 -0
  145. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/concurrency.py +0 -0
  146. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/file/__init__.py +0 -0
  147. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/file/_utils.py +0 -0
  148. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/file/chunk.py +0 -0
  149. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/file/concat.py +0 -0
  150. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/file/concat_files.py +0 -0
  151. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/file/file_ops.py +0 -0
  152. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/file/params.py +0 -0
  153. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/file/process.py +0 -0
  154. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/file/save.py +0 -0
  155. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/nested/__init__.py +0 -0
  156. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/nested/flatten.py +0 -0
  157. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/nested/nfilter.py +0 -0
  158. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/nested/nget.py +0 -0
  159. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/nested/npop.py +0 -0
  160. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/nested/nset.py +0 -0
  161. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/nested/unflatten.py +0 -0
  162. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/nested/utils.py +0 -0
  163. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/parse.py +0 -0
  164. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/schema/__init__.py +0 -0
  165. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/schema/as_readable.py +0 -0
  166. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/schema/extract_code_block.py +0 -0
  167. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/schema/extract_docstring.py +0 -0
  168. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/schema/function_to_schema.py +0 -0
  169. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/schema/json_schema.py +0 -0
  170. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/schema/load_pydantic_model_from_schema.py +0 -0
  171. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/__init__.py +0 -0
  172. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/base.py +0 -0
  173. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/llmlingua.py +0 -0
  174. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/perplexity.py +0 -0
  175. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/symbolic_compress_context.py +0 -0
  176. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/synthlang.py +0 -0
  177. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/synthlang_/base.py +0 -0
  178. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/abstract_algebra.toml +0 -0
  179. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/category_theory.toml +0 -0
  180. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/complex_analysis.toml +0 -0
  181. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/framework_options.json +0 -0
  182. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/group_theory.toml +0 -0
  183. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/math_logic.toml +0 -0
  184. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/reflective_patterns.toml +0 -0
  185. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/set_theory.toml +0 -0
  186. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/topology_fundamentals.toml +0 -0
  187. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/synthlang_/resources/mapping/lion_emoji_mapping.toml +0 -0
  188. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/synthlang_/resources/mapping/python_math_mapping.toml +0 -0
  189. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/synthlang_/resources/mapping/rust_chinese_mapping.toml +0 -0
  190. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/synthlang_/resources/utility/base_synthlang_system_prompt.toml +0 -0
  191. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/synthlang_/translate_to_synthlang.py +0 -0
  192. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/token_transform/types.py +0 -0
  193. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/unstructured/__init__.py +0 -0
  194. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/unstructured/pdf_to_image.py +0 -0
  195. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/unstructured/read_image_to_base64.py +0 -0
  196. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/validate/__init__.py +0 -0
  197. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/validate/common_field_validators.py +0 -0
  198. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/validate/fuzzy_match_keys.py +0 -0
  199. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/validate/fuzzy_validate_mapping.py +0 -0
  200. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/validate/string_similarity.py +0 -0
  201. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/validate/to_num.py +0 -0
  202. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/validate/validate_boolean.py +0 -0
  203. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/libs/validate/xml_parser.py +0 -0
  204. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/__init__.py +0 -0
  205. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/_async_call.py +0 -0
  206. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/_hash.py +0 -0
  207. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/_json_dump.py +0 -0
  208. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/_list_call.py +0 -0
  209. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/_to_list.py +0 -0
  210. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/_utils.py +0 -0
  211. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/concurrency/__init__.py +0 -0
  212. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/concurrency/_compat.py +0 -0
  213. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/concurrency/cancel.py +0 -0
  214. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/concurrency/errors.py +0 -0
  215. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/concurrency/patterns.py +0 -0
  216. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/concurrency/primitives.py +0 -0
  217. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/concurrency/resource_tracker.py +0 -0
  218. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/concurrency/task.py +0 -0
  219. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/concurrency/throttle.py +0 -0
  220. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/concurrency/utils.py +0 -0
  221. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/fuzzy/__init__.py +0 -0
  222. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/fuzzy/_extract_json.py +0 -0
  223. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/fuzzy/_fuzzy_json.py +0 -0
  224. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/fuzzy/_fuzzy_match.py +0 -0
  225. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/fuzzy/_fuzzy_validate.py +0 -0
  226. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/fuzzy/_string_similarity.py +0 -0
  227. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/ln/types.py +0 -0
  228. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/models/__init__.py +0 -0
  229. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/models/field_model.py +0 -0
  230. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/models/hashable_model.py +0 -0
  231. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/models/model_params.py +0 -0
  232. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/models/note.py +0 -0
  233. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/models/operable_model.py +0 -0
  234. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/models/schema_model.py +0 -0
  235. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/ReAct/ReAct.py +0 -0
  236. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/ReAct/__init__.py +0 -0
  237. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/__init__.py +0 -0
  238. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/_act/__init__.py +0 -0
  239. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/_act/act.py +0 -0
  240. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/brainstorm/__init__.py +0 -0
  241. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/brainstorm/brainstorm.py +0 -0
  242. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/brainstorm/prompt.py +0 -0
  243. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/builder.py +0 -0
  244. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/chat/__init__.py +0 -0
  245. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/chat/chat.py +0 -0
  246. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/communicate/__init__.py +0 -0
  247. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/communicate/communicate.py +0 -0
  248. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/flow.py +0 -0
  249. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/instruct/__init__.py +0 -0
  250. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/instruct/instruct.py +0 -0
  251. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/interpret/__init__.py +0 -0
  252. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/interpret/interpret.py +0 -0
  253. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/manager.py +0 -0
  254. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/node.py +0 -0
  255. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/operate/__init__.py +0 -0
  256. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/operate/operate.py +0 -0
  257. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/parse/__init__.py +0 -0
  258. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/parse/parse.py +0 -0
  259. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/plan/__init__.py +0 -0
  260. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/plan/plan.py +0 -0
  261. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/plan/prompt.py +0 -0
  262. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/select/__init__.py +0 -0
  263. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/select/select.py +0 -0
  264. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/select/utils.py +0 -0
  265. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/translate/__init__.py +0 -0
  266. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/translate/translate.py +0 -0
  267. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/types.py +0 -0
  268. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/operations/utils.py +0 -0
  269. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/__init__.py +0 -0
  270. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/_concepts.py +0 -0
  271. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/action/__init__.py +0 -0
  272. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/action/manager.py +0 -0
  273. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/action/tool.py +0 -0
  274. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/contracts.py +0 -0
  275. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/forms/__init__.py +0 -0
  276. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/forms/base.py +0 -0
  277. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/forms/flow.py +0 -0
  278. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/forms/form.py +0 -0
  279. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/forms/report.py +0 -0
  280. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/generic/__init__.py +0 -0
  281. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/generic/event.py +0 -0
  282. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/generic/log.py +0 -0
  283. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/generic/pile.py +0 -0
  284. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/generic/processor.py +0 -0
  285. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/generic/progression.py +0 -0
  286. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/graph/__init__.py +0 -0
  287. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/graph/_utils.py +0 -0
  288. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/graph/edge.py +0 -0
  289. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/ids.py +0 -0
  290. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/mail/__init__.py +0 -0
  291. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/mail/exchange.py +0 -0
  292. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/mail/mail.py +0 -0
  293. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/mail/mailbox.py +0 -0
  294. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/mail/manager.py +0 -0
  295. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/mail/package.py +0 -0
  296. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/messages/__init__.py +0 -0
  297. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/messages/action_request.py +0 -0
  298. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/messages/action_response.py +0 -0
  299. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/messages/assistant_response.py +0 -0
  300. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/messages/base.py +0 -0
  301. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/messages/system.py +0 -0
  302. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/messages/templates/README.md +0 -0
  303. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/messages/templates/action_request.jinja2 +0 -0
  304. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/messages/templates/action_response.jinja2 +0 -0
  305. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/messages/templates/assistant_response.jinja2 +0 -0
  306. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/messages/templates/instruction_message.jinja2 +0 -0
  307. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/messages/templates/system_message.jinja2 +0 -0
  308. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/messages/templates/tool_schemas.jinja2 +0 -0
  309. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/operatives/__init__.py +0 -0
  310. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/operatives/operative.py +0 -0
  311. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/operatives/step.py +0 -0
  312. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/protocols/types.py +0 -0
  313. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/py.typed +0 -0
  314. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/__init__.py +0 -0
  315. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/connections/__init__.py +0 -0
  316. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/connections/api_calling.py +0 -0
  317. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/connections/endpoint.py +0 -0
  318. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/connections/endpoint_config.py +0 -0
  319. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/connections/header_factory.py +0 -0
  320. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/connections/match_endpoint.py +0 -0
  321. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/connections/providers/__init__.py +0 -0
  322. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/connections/providers/anthropic_.py +0 -0
  323. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/connections/providers/claude_code_cli.py +0 -0
  324. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/connections/providers/exa_.py +0 -0
  325. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/connections/providers/nvidia_nim_.py +0 -0
  326. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/connections/providers/oai_.py +0 -0
  327. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/connections/providers/ollama_.py +0 -0
  328. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/connections/providers/perplexity_.py +0 -0
  329. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/connections/providers/types.py +0 -0
  330. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/hooks/__init__.py +0 -0
  331. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/hooks/_types.py +0 -0
  332. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/hooks/_utils.py +0 -0
  333. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/hooks/hook_event.py +0 -0
  334. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/hooks/hook_registry.py +0 -0
  335. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/imodel.py +0 -0
  336. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/manager.py +0 -0
  337. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/rate_limited_processor.py +0 -0
  338. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/third_party/README.md +0 -0
  339. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/third_party/__init__.py +0 -0
  340. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/third_party/anthropic_models.py +0 -0
  341. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/third_party/claude_code.py +0 -0
  342. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/third_party/exa_models.py +0 -0
  343. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/third_party/openai_model_names.py +0 -0
  344. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/third_party/pplx_models.py +0 -0
  345. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/token_calculator.py +0 -0
  346. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/service/types.py +0 -0
  347. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/session/__init__.py +0 -0
  348. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/session/branch.py +0 -0
  349. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/session/prompts.py +0 -0
  350. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/session/session.py +0 -0
  351. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/settings.py +0 -0
  352. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/tools/__init__.py +0 -0
  353. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/tools/base.py +0 -0
  354. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/tools/file/__init__.py +0 -0
  355. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/tools/file/reader.py +0 -0
  356. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/tools/types.py +0 -0
  357. {lionagi-0.16.0 → lionagi-0.16.1}/lionagi/utils.py +0 -0
  358. {lionagi-0.16.0 → lionagi-0.16.1}/main.py +0 -0
  359. {lionagi-0.16.0 → lionagi-0.16.1}/mkdocs.yml +0 -0
  360. {lionagi-0.16.0 → lionagi-0.16.1}/scripts/README.md +0 -0
  361. {lionagi-0.16.0 → lionagi-0.16.1}/scripts/concat.py +0 -0
  362. {lionagi-0.16.0 → lionagi-0.16.1}/scripts/config.py +0 -0
  363. {lionagi-0.16.0 → lionagi-0.16.1}/scripts/update_openai_models.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lionagi
3
- Version: 0.16.0
3
+ Version: 0.16.1
4
4
  Summary: An Intelligence Operating System.
5
5
  Author-email: HaiyangLi <quantocean.li@gmail.com>
6
6
  License: Apache License
@@ -223,14 +223,14 @@ Requires-Dist: aiocache>=0.12.0
223
223
  Requires-Dist: aiohttp>=3.11.0
224
224
  Requires-Dist: anyio>=4.7.0
225
225
  Requires-Dist: backoff>=2.0.0
226
- Requires-Dist: exceptiongroup>=1.3.0
227
226
  Requires-Dist: jinja2>=3.0.0
228
227
  Requires-Dist: json-repair>=0.40.0
229
228
  Requires-Dist: msgspec>=0.18.0
230
229
  Requires-Dist: pillow>=10.0.0
231
230
  Requires-Dist: psutil>=6.0.0
232
231
  Requires-Dist: pydantic-settings>=2.8.0
233
- Requires-Dist: pydapter[pandas]>=1.0.5
232
+ Requires-Dist: pydantic>=2.8.0
233
+ Requires-Dist: pydapter[pandas]>=1.1.1
234
234
  Requires-Dist: python-dotenv>=1.1.0
235
235
  Requires-Dist: tiktoken>=0.9.0
236
236
  Requires-Dist: toml>=0.8.0
@@ -89,7 +89,7 @@ class LionAGIAsyncPostgresAdapter(AsyncPostgresAdapter[T]):
89
89
  sa.Column("id", sa.String, primary_key=True),
90
90
  sa.Column("content", json_type),
91
91
  sa.Column("node_metadata", json_type),
92
- sa.Column("created_at", sa.DateTime),
92
+ sa.Column("created_at", sa.Float),
93
93
  sa.Column("embedding", json_type, nullable=True),
94
94
  ).create(sync_conn, checkfirst=True)
95
95
  )
@@ -50,8 +50,7 @@ def ninsert(
50
50
  if isinstance(part, int):
51
51
  if isinstance(nested_structure, dict):
52
52
  raise TypeError(
53
- f"Unsupported key type: {type(part).__name__}."
54
- "Only string keys are acceptable.",
53
+ f"Unsupported key type: {type(part).__name__}.Only string keys are acceptable.",
55
54
  )
56
55
  while len(nested_structure) <= part:
57
56
  nested_structure.append(None)
@@ -67,8 +66,7 @@ def ninsert(
67
66
  raise TypeError("Cannot use NoneType as a key in a dictionary")
68
67
  if isinstance(part, (float, complex)):
69
68
  raise TypeError(
70
- f"Unsupported key type: {type(part).__name__}."
71
- "Only string keys are acceptable.",
69
+ f"Unsupported key type: {type(part).__name__}.Only string keys are acceptable.",
72
70
  )
73
71
  if part not in nested_structure:
74
72
  next_part = indices[i + 1]
@@ -77,8 +75,7 @@ def ninsert(
77
75
  )
78
76
  else:
79
77
  raise TypeError(
80
- f"Invalid container type: {type(nested_structure)} "
81
- "encountered during insertion"
78
+ f"Invalid container type: {type(nested_structure)} encountered during insertion"
82
79
  )
83
80
 
84
81
  nested_structure = nested_structure[part]
@@ -51,8 +51,7 @@ def nmerge(
51
51
  return _merge_sequences(nested_structure, sort_list, custom_sort)
52
52
  else:
53
53
  raise TypeError(
54
- "All items in the input list must be of the same type, "
55
- "either dict, list, or Iterable."
54
+ "All items in the input list must be of the same type, either dict, list, or Iterable."
56
55
  )
57
56
 
58
57
 
@@ -18,8 +18,7 @@ class PlannedAction(HashableModel):
18
18
  action_type: str | None = Field(
19
19
  default=None,
20
20
  description=(
21
- "The name or type of tool/action to invoke. "
22
- "(e.g., 'search_exa', 'reader_tool')"
21
+ "The name or type of tool/action to invoke. (e.g., 'search_exa', 'reader_tool')"
23
22
  ),
24
23
  )
25
24
  description: str | None = Field(
@@ -130,10 +130,7 @@ class FunctionCalling(Event):
130
130
  Returns:
131
131
  A string containing the class name and key attributes.
132
132
  """
133
- return (
134
- f"FunctionCalling(function={self.func_tool.function}, "
135
- f"arguments={self.arguments})"
136
- )
133
+ return f"FunctionCalling(function={self.func_tool.function}, arguments={self.arguments})"
137
134
 
138
135
  def to_dict(self) -> dict[str, Any]:
139
136
  """Convert instance to dictionary.
@@ -313,7 +313,6 @@ class Element(BaseModel, Observable):
313
313
  if mode == "db":
314
314
  dict_ = orjson.loads(self.to_json(decode=False))
315
315
  dict_["node_metadata"] = dict_.pop("metadata", {})
316
- dict_["created_at"] = self.created_datetime.isoformat(sep=" ")
317
316
  return dict_
318
317
 
319
318
  def as_jsonable(self) -> dict:
@@ -321,19 +320,13 @@ class Element(BaseModel, Observable):
321
320
  return self.to_dict(mode="json")
322
321
 
323
322
  @classmethod
324
- def from_dict(cls, data: dict, /, mode: str = "python") -> Element:
323
+ def from_dict(cls, data: dict) -> Element:
325
324
  """Deserializes a dictionary into an Element or subclass of Element.
326
325
 
327
326
  If `lion_class` in `metadata` refers to a subclass, this method
328
327
  is polymorphic, it will attempt to create an instance of that subclass.
329
-
330
- Args:
331
- data (dict): A dictionary of field data.
332
- mode (str): Format mode - "python" for normal dicts, "db" for database format.
333
328
  """
334
329
  # Preprocess database format if needed
335
- if mode == "db":
336
- data = cls._preprocess_db_data(data.copy())
337
330
  metadata = {}
338
331
 
339
332
  if "node_metadata" in data:
@@ -367,56 +360,6 @@ class Element(BaseModel, Observable):
367
360
  data["metadata"] = metadata
368
361
  return cls.model_validate(data)
369
362
 
370
- @classmethod
371
- def _preprocess_db_data(cls, data: dict) -> dict:
372
- """Preprocess raw database data for Element compatibility."""
373
- import datetime as dt
374
- import json
375
-
376
- # Handle created_at field - convert datetime string to timestamp
377
- if "created_at" in data and isinstance(data["created_at"], str):
378
- try:
379
- # Parse datetime string and convert to timestamp
380
- dt_obj = dt.datetime.fromisoformat(
381
- data["created_at"].replace(" ", "T")
382
- )
383
- # Treat as UTC if naive
384
- if dt_obj.tzinfo is None:
385
- dt_obj = dt_obj.replace(tzinfo=dt.timezone.utc)
386
- data["created_at"] = dt_obj.timestamp()
387
- except (ValueError, TypeError):
388
- # Keep as string if parsing fails
389
- pass
390
-
391
- # Handle JSON string fields - parse to dict/list
392
- json_fields = ["content", "node_metadata", "embedding"]
393
- for field in json_fields:
394
- if field in data and isinstance(data[field], str):
395
- if data[field] in ("null", ""):
396
- data[field] = None if field == "embedding" else {}
397
- else:
398
- try:
399
- data[field] = json.loads(data[field])
400
- except (json.JSONDecodeError, TypeError):
401
- # Keep as empty dict for metadata fields, None for embedding
402
- data[field] = {} if field != "embedding" else None
403
-
404
- # Handle node_metadata -> metadata mapping
405
- if "node_metadata" in data:
406
- if (
407
- data["node_metadata"] == "null"
408
- or data["node_metadata"] is None
409
- ):
410
- data["metadata"] = {}
411
- else:
412
- data["metadata"] = (
413
- data["node_metadata"] if data["node_metadata"] else {}
414
- )
415
- # Remove node_metadata to avoid Pydantic validation error
416
- data.pop("node_metadata", None)
417
-
418
- return data
419
-
420
363
  def to_json(self, decode: bool = True) -> str:
421
364
  """Converts this Element to a JSON string."""
422
365
  dict_ = self._to_dict()
@@ -87,8 +87,7 @@ class Graph(Element, Relational, Generic[T]):
87
87
  or edge.tail not in self.internal_nodes
88
88
  ):
89
89
  raise RelationError(
90
- "Failed to add edge: Either edge head or tail node does"
91
- " not exist in the graph."
90
+ "Failed to add edge: Either edge head or tail node does not exist in the graph."
92
91
  )
93
92
  try:
94
93
  self.internal_edges.insert(len(self.internal_edges), edge)
@@ -63,7 +63,7 @@ class Node(Element, Relational, AsyncAdaptable, Adaptable):
63
63
  self, obj_key: str, many=False, **kwargs: Any
64
64
  ) -> Any:
65
65
  kwargs["adapt_meth"] = "to_dict"
66
- kwargs["mode"] = "db"
66
+ kwargs["adapt_kw"] = {"mode": "db"}
67
67
  return await super().adapt_to_async(
68
68
  obj_key=obj_key, many=many, **kwargs
69
69
  )
@@ -77,7 +77,6 @@ class Node(Element, Relational, AsyncAdaptable, Adaptable):
77
77
  **kwargs: Any,
78
78
  ) -> Node:
79
79
  kwargs["adapt_meth"] = "from_dict"
80
- kwargs["mode"] = "db"
81
80
  return await super().adapt_from_async(
82
81
  obj, obj_key=obj_key, many=many, **kwargs
83
82
  )
@@ -87,7 +86,7 @@ class Node(Element, Relational, AsyncAdaptable, Adaptable):
87
86
  Convert this Node to another format using a registered adapter.
88
87
  """
89
88
  kwargs["adapt_meth"] = "to_dict"
90
- kwargs["mode"] = "db"
89
+ kwargs["adapt_kw"] = {"mode": "db"}
91
90
  return super().adapt_to(obj_key=obj_key, many=many, **kwargs)
92
91
 
93
92
  @classmethod
@@ -104,7 +103,6 @@ class Node(Element, Relational, AsyncAdaptable, Adaptable):
104
103
  auto-delegate to the correct subclass via from_dict.
105
104
  """
106
105
  kwargs["adapt_meth"] = "from_dict"
107
- kwargs["mode"] = "db"
108
106
  return super().adapt_from(obj, obj_key=obj_key, many=many, **kwargs)
109
107
 
110
108
  @field_serializer("content")
@@ -587,8 +587,7 @@ class Instruction(RoledMessage):
587
587
 
588
588
  if request_model and request_fields:
589
589
  raise ValueError(
590
- "You cannot pass both request_model and request_fields "
591
- "to create_instruction"
590
+ "You cannot pass both request_model and request_fields to create_instruction"
592
591
  )
593
592
  if guidance:
594
593
  self.guidance = guidance
@@ -216,8 +216,7 @@ class MessageManager(Manager):
216
216
  """
217
217
  if not isinstance(action_request, ActionRequest):
218
218
  raise ValueError(
219
- "Error: please provide a corresponding action request for an "
220
- "action response."
219
+ "Error: please provide a corresponding action request for an action response."
221
220
  )
222
221
  params = {
223
222
  "action_request": action_request,
@@ -241,10 +241,7 @@ class RoledMessage(Node, Sendable):
241
241
  if len(str(self.content)) > 75
242
242
  else str(self.content)
243
243
  )
244
- return (
245
- f"Message(role={self.role}, sender={self.sender}, "
246
- f"content='{content_preview}')"
247
- )
244
+ return f"Message(role={self.role}, sender={self.sender}, content='{content_preview}')"
248
245
 
249
246
 
250
247
  # File: lionagi/protocols/messages/message.py
@@ -56,8 +56,7 @@ class ClaudeCodeEndpoint(Endpoint):
56
56
  "Please install it with `uv pip install lionagi[claude_code_sdk]`."
57
57
  )
58
58
  warnings.warn(
59
- "The claude_code `query` endpoint is deprecated. "
60
- "Use `query_cli` endpoint instead.",
59
+ "The claude_code `query` endpoint is deprecated. Use `query_cli` endpoint instead.",
61
60
  DeprecationWarning,
62
61
  )
63
62
 
@@ -216,8 +216,7 @@ class CircuitBreaker:
216
216
  self._metrics["rejected_count"] += 1
217
217
 
218
218
  logger.warning(
219
- f"Circuit '{self.name}' is HALF_OPEN and at capacity. "
220
- f"Try again later."
219
+ f"Circuit '{self.name}' is HALF_OPEN and at capacity. Try again later."
221
220
  )
222
221
 
223
222
  return False
@@ -63,8 +63,7 @@ class MemoryRequest(BaseModel):
63
63
  content: str | None = Field(
64
64
  None,
65
65
  description=(
66
- "Content to store. REQUIRED if action='store'. "
67
- "For other actions, leave it None."
66
+ "Content to store. REQUIRED if action='store'. For other actions, leave it None."
68
67
  ),
69
68
  )
70
69
 
@@ -96,8 +95,7 @@ class MemoryRequest(BaseModel):
96
95
  query: str | None = Field(
97
96
  None,
98
97
  description=(
99
- "Query text for semantic search. "
100
- "REQUIRED for actions: 'recall', 'search', 'explore'."
98
+ "Query text for semantic search. REQUIRED for actions: 'recall', 'search', 'explore'."
101
99
  ),
102
100
  )
103
101
 
@@ -0,0 +1 @@
1
+ __version__ = "0.16.1"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "lionagi"
3
- version = "0.16.0"
3
+ version = "0.16.1"
4
4
  description = "An Intelligence Operating System."
5
5
  authors = [
6
6
  { name = "HaiyangLi", email = "quantocean.li@gmail.com" },
@@ -12,14 +12,14 @@ dependencies = [
12
12
  "aiohttp>=3.11.0",
13
13
  "anyio>=4.7.0",
14
14
  "backoff>=2.0.0",
15
- "exceptiongroup>=1.3.0",
16
15
  "jinja2>=3.0.0",
17
16
  "json-repair>=0.40.0",
18
17
  "msgspec>=0.18.0",
19
18
  "pillow>=10.0.0",
20
19
  "psutil>=6.0.0",
20
+ "pydantic>=2.8.0",
21
21
  "pydantic-settings>=2.8.0",
22
- "pydapter[pandas]>=1.0.5",
22
+ "pydapter[pandas]>=1.1.1",
23
23
  "python-dotenv>=1.1.0",
24
24
  "tiktoken>=0.9.0",
25
25
  "toml>=0.8.0",
@@ -2065,19 +2065,19 @@ wheels = [
2065
2065
 
2066
2066
  [[package]]
2067
2067
  name = "lionagi"
2068
- version = "0.16.0"
2068
+ version = "0.16.1"
2069
2069
  source = { editable = "." }
2070
2070
  dependencies = [
2071
2071
  { name = "aiocache" },
2072
2072
  { name = "aiohttp" },
2073
2073
  { name = "anyio" },
2074
2074
  { name = "backoff" },
2075
- { name = "exceptiongroup" },
2076
2075
  { name = "jinja2" },
2077
2076
  { name = "json-repair" },
2078
2077
  { name = "msgspec" },
2079
2078
  { name = "pillow" },
2080
2079
  { name = "psutil" },
2080
+ { name = "pydantic" },
2081
2081
  { name = "pydantic-settings" },
2082
2082
  { name = "pydapter", extra = ["pandas"] },
2083
2083
  { name = "python-dotenv" },
@@ -2176,7 +2176,6 @@ requires-dist = [
2176
2176
  { name = "claude-code-sdk", marker = "extra == 'claude-code'", specifier = ">=0.0.15" },
2177
2177
  { name = "datamodel-code-generator", marker = "extra == 'schema'", specifier = ">=0.31.2" },
2178
2178
  { name = "docling", marker = "extra == 'reader'", specifier = ">=2.15.0" },
2179
- { name = "exceptiongroup", specifier = ">=1.3.0" },
2180
2179
  { name = "fastmcp", marker = "extra == 'mcp'", specifier = ">=2.10.5" },
2181
2180
  { name = "jinja2", specifier = ">=3.0.0" },
2182
2181
  { name = "json-repair", specifier = ">=0.40.0" },
@@ -2197,8 +2196,9 @@ requires-dist = [
2197
2196
  { name = "opencv-python", marker = "extra == 'unstructured'", specifier = ">=4.2.0.34" },
2198
2197
  { name = "pillow", specifier = ">=10.0.0" },
2199
2198
  { name = "psutil", specifier = ">=6.0.0" },
2199
+ { name = "pydantic", specifier = ">=2.8.0" },
2200
2200
  { name = "pydantic-settings", specifier = ">=2.8.0" },
2201
- { name = "pydapter", extras = ["pandas"], specifier = ">=1.0.5" },
2201
+ { name = "pydapter", extras = ["pandas"], specifier = ">=1.1.0" },
2202
2202
  { name = "pydapter", extras = ["postgres"], marker = "extra == 'postgres'" },
2203
2203
  { name = "python-dotenv", specifier = ">=1.1.0" },
2204
2204
  { name = "rich", marker = "extra == 'rich'", specifier = ">=13.0.0" },
@@ -3921,16 +3921,15 @@ wheels = [
3921
3921
 
3922
3922
  [[package]]
3923
3923
  name = "pydapter"
3924
- version = "1.0.5"
3924
+ version = "1.1.0"
3925
3925
  source = { registry = "https://pypi.org/simple" }
3926
3926
  dependencies = [
3927
3927
  { name = "orjson" },
3928
- { name = "pydantic" },
3929
3928
  { name = "toml" },
3930
3929
  ]
3931
- sdist = { url = "https://files.pythonhosted.org/packages/19/82/604e121532ea08631dc697131cb682c7c0c436bfa1dc8362ac07c688c6c1/pydapter-1.0.5.tar.gz", hash = "sha256:1a97aee90de74a2a7a17be74224ffdfda7290ec7819d01a540aa3607e681562d", size = 409260, upload-time = "2025-08-30T16:44:03.256Z" }
3930
+ sdist = { url = "https://files.pythonhosted.org/packages/85/01/8d82c7f8bf6b6a872a943288587834e8b26569a10317e366e70ed00d7b3b/pydapter-1.1.0.tar.gz", hash = "sha256:04ec3f47f8f6cbab0675903f33406d24af6d6a17af48d739b51e78bf5dd13046", size = 410293, upload-time = "2025-09-06T01:54:50.626Z" }
3932
3931
  wheels = [
3933
- { url = "https://files.pythonhosted.org/packages/10/ec/f76d246bcccaeaef147766e097517aa6555ae6eafaca86d9fe1a014ea5ba/pydapter-1.0.5-py3-none-any.whl", hash = "sha256:ccd7eafd403e413fc9c32b709ee4017b46c5ef8f39c9c39b51221f6fa35963db", size = 95756, upload-time = "2025-08-30T16:44:01.82Z" },
3932
+ { url = "https://files.pythonhosted.org/packages/97/f0/8de7da8f235d656b349a5e2e018af4b8e16e421e10bba46b3dbbe18a9852/pydapter-1.1.0-py3-none-any.whl", hash = "sha256:b6e41a99b887d1a523a6396c283a29e876722e706cf4a429d10f516925cc48c2", size = 96457, upload-time = "2025-09-06T01:54:49.183Z" },
3934
3933
  ]
3935
3934
 
3936
3935
  [package.optional-dependencies]
@@ -1 +0,0 @@
1
- __version__ = "0.16.0"
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