lionagi 0.3.6__tar.gz → 0.3.8__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (259) hide show
  1. lionagi-0.3.8/PKG-INFO +241 -0
  2. lionagi-0.3.8/README.md +223 -0
  3. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/collections/abc/component.py +26 -29
  4. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/collections/abc/concepts.py +0 -6
  5. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/collections/flow.py +0 -1
  6. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/collections/model.py +3 -2
  7. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/collections/pile.py +1 -1
  8. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/collections/progression.py +4 -5
  9. lionagi-0.3.8/lionagi/core/director/operations/select.py +3 -0
  10. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/rule/choice.py +2 -2
  11. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/unit/unit_mixin.py +3 -3
  12. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/libs/sys_util.py +196 -32
  13. lionagi-0.3.8/lionagi/lions/judge/forms/__init__.py +0 -0
  14. lionagi-0.3.8/lionagi/lions/judge/services/__init__.py +0 -0
  15. lionagi-0.3.8/lionagi/lions/researcher/__init__.py +0 -0
  16. lionagi-0.3.8/lionagi/lions/researcher/data_source/__init__.py +0 -0
  17. lionagi-0.3.8/lionagi/operations/__init__.py +6 -0
  18. lionagi-0.3.8/lionagi/operations/brainstorm.py +87 -0
  19. lionagi-0.3.8/lionagi/operations/config.py +6 -0
  20. lionagi-0.3.8/lionagi/operations/rank.py +102 -0
  21. lionagi-0.3.8/lionagi/operations/score.py +144 -0
  22. lionagi-0.3.8/lionagi/operations/select.py +141 -0
  23. lionagi-0.3.8/lionagi/version.py +1 -0
  24. {lionagi-0.3.6 → lionagi-0.3.8}/pyproject.toml +2 -3
  25. lionagi-0.3.6/PKG-INFO +0 -69
  26. lionagi-0.3.6/README.md +0 -50
  27. lionagi-0.3.6/lionagi/core/director/models/__init__.py +0 -13
  28. lionagi-0.3.6/lionagi/core/director/models/action_model.py +0 -61
  29. lionagi-0.3.6/lionagi/core/director/models/brainstorm_model.py +0 -42
  30. lionagi-0.3.6/lionagi/core/director/models/plan_model.py +0 -51
  31. lionagi-0.3.6/lionagi/core/director/models/reason_model.py +0 -63
  32. lionagi-0.3.6/lionagi/core/director/models/step_model.py +0 -65
  33. lionagi-0.3.6/lionagi/core/director/operations/select.py +0 -93
  34. lionagi-0.3.6/lionagi/version.py +0 -1
  35. {lionagi-0.3.6 → lionagi-0.3.8}/LICENSE +0 -0
  36. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/__init__.py +0 -0
  37. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/__init__.py +0 -0
  38. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/_setting/__init__.py +0 -0
  39. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/_setting/_setting.py +0 -0
  40. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/action/README.md +0 -0
  41. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/action/__init__.py +0 -0
  42. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/action/function_calling.py +0 -0
  43. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/action/manual.py +0 -0
  44. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/action/node.py +0 -0
  45. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/action/tool.py +0 -0
  46. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/action/tool_manager.py +0 -0
  47. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/agent/README.md +0 -0
  48. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/agent/__init__.py +0 -0
  49. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/agent/base_agent.py +0 -0
  50. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/agent/eval/README.md +0 -0
  51. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/agent/eval/__init__.py +0 -0
  52. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/agent/eval/evaluator.py +0 -0
  53. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/agent/eval/vote.py +0 -0
  54. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/agent/learn/__init__.py +0 -0
  55. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/agent/learn/learner.py +0 -0
  56. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/agent/plan/__init__.py +0 -0
  57. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/agent/plan/plan.py +0 -0
  58. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/agent/plan/unit_template.py +0 -0
  59. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/collections/README.md +0 -0
  60. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/collections/__init__.py +0 -0
  61. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/collections/_logger.py +0 -0
  62. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/collections/abc/README.md +0 -0
  63. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/collections/abc/__init__.py +0 -0
  64. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/collections/abc/exceptions.py +0 -0
  65. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/collections/abc/util.py +0 -0
  66. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/collections/exchange.py +0 -0
  67. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/collections/util.py +0 -0
  68. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/director/README.md +0 -0
  69. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/director/__init__.py +0 -0
  70. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/director/direct.py +0 -0
  71. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/director/director.py +0 -0
  72. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/director/operations/__init__.py +0 -0
  73. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/director/operations/utils.py +0 -0
  74. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/engine/__init__.py +0 -0
  75. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/engine/branch_engine.py +0 -0
  76. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/engine/instruction_map_engine.py +0 -0
  77. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/engine/sandbox_.py +0 -0
  78. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/engine/script_engine.py +0 -0
  79. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/executor/__init__.py +0 -0
  80. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/executor/base_executor.py +0 -0
  81. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/executor/graph_executor.py +0 -0
  82. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/executor/neo4j_executor.py +0 -0
  83. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/generic/README.md +0 -0
  84. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/generic/__init__.py +0 -0
  85. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/generic/edge.py +0 -0
  86. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/generic/edge_condition.py +0 -0
  87. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/generic/graph.py +0 -0
  88. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/generic/hyperedge.py +0 -0
  89. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/generic/node.py +0 -0
  90. {lionagi-0.3.6/lionagi/core/rule → lionagi-0.3.8/lionagi/core/generic/registry/component_registry}/__init__.py +0 -0
  91. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/generic/tree.py +0 -0
  92. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/generic/tree_node.py +0 -0
  93. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/mail/__init__.py +0 -0
  94. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/mail/mail.py +0 -0
  95. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/mail/mail_manager.py +0 -0
  96. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/mail/package.py +0 -0
  97. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/mail/start_mail.py +0 -0
  98. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/message/__init__.py +0 -0
  99. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/message/action_request.py +0 -0
  100. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/message/action_response.py +0 -0
  101. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/message/assistant_response.py +0 -0
  102. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/message/instruction.py +0 -0
  103. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/message/message.py +0 -0
  104. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/message/system.py +0 -0
  105. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/message/util.py +0 -0
  106. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/report/__init__.py +0 -0
  107. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/report/base.py +0 -0
  108. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/report/form.py +0 -0
  109. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/report/report.py +0 -0
  110. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/report/util.py +0 -0
  111. {lionagi-0.3.6/lionagi/core/session → lionagi-0.3.8/lionagi/core/rule}/__init__.py +0 -0
  112. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/rule/_default.py +0 -0
  113. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/rule/action.py +0 -0
  114. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/rule/base.py +0 -0
  115. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/rule/boolean.py +0 -0
  116. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/rule/mapping.py +0 -0
  117. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/rule/number.py +0 -0
  118. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/rule/rulebook.py +0 -0
  119. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/rule/string.py +0 -0
  120. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/rule/util.py +0 -0
  121. {lionagi-0.3.6/lionagi/core/unit/template → lionagi-0.3.8/lionagi/core/session}/__init__.py +0 -0
  122. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/session/branch.py +0 -0
  123. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/session/directive_mixin.py +0 -0
  124. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/session/session.py +0 -0
  125. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/structure/__init__.py +0 -0
  126. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/structure/chain.py +0 -0
  127. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/structure/forest.py +0 -0
  128. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/structure/graph.py +0 -0
  129. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/structure/tree.py +0 -0
  130. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/unit/__init__.py +0 -0
  131. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/unit/parallel_unit.py +0 -0
  132. {lionagi-0.3.6/lionagi/core/validator → lionagi-0.3.8/lionagi/core/unit/template}/__init__.py +0 -0
  133. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/unit/template/action.py +0 -0
  134. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/unit/template/base.py +0 -0
  135. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/unit/template/plan.py +0 -0
  136. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/unit/template/predict.py +0 -0
  137. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/unit/template/score.py +0 -0
  138. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/unit/template/select.py +0 -0
  139. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/unit/unit.py +0 -0
  140. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/unit/unit_form.py +0 -0
  141. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/unit/util.py +0 -0
  142. {lionagi-0.3.6/lionagi/core/work → lionagi-0.3.8/lionagi/core/validator}/__init__.py +0 -0
  143. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/validator/validator.py +0 -0
  144. {lionagi-0.3.6/lionagi/experimental → lionagi-0.3.8/lionagi/core/work}/__init__.py +0 -0
  145. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/work/work.py +0 -0
  146. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/work/work_edge.py +0 -0
  147. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/work/work_function.py +0 -0
  148. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/work/work_function_node.py +0 -0
  149. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/work/work_queue.py +0 -0
  150. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/work/work_task.py +0 -0
  151. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/work/worker.py +0 -0
  152. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/work/worker_engine.py +0 -0
  153. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/core/work/worklog.py +0 -0
  154. {lionagi-0.3.6/lionagi/experimental/compressor → lionagi-0.3.8/lionagi/experimental}/__init__.py +0 -0
  155. {lionagi-0.3.6/lionagi/experimental/directive/parser → lionagi-0.3.8/lionagi/experimental/compressor}/__init__.py +0 -0
  156. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/experimental/compressor/base.py +0 -0
  157. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/experimental/compressor/llm_compressor.py +0 -0
  158. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/experimental/compressor/llm_summarizer.py +0 -0
  159. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/experimental/compressor/util.py +0 -0
  160. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/experimental/directive/README.md +0 -0
  161. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/experimental/directive/__init__.py +0 -0
  162. {lionagi-0.3.6/lionagi/experimental/directive/template → lionagi-0.3.8/lionagi/experimental/directive/parser}/__init__.py +0 -0
  163. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/experimental/directive/parser/base_parser.py +0 -0
  164. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/experimental/directive/parser/base_syntax.txt +0 -0
  165. {lionagi-0.3.6/lionagi/experimental/evaluator → lionagi-0.3.8/lionagi/experimental/directive/template}/__init__.py +0 -0
  166. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/experimental/directive/template/base_template.py +0 -0
  167. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/experimental/directive/template/schema.py +0 -0
  168. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/experimental/directive/tokenizer.py +0 -0
  169. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/experimental/evaluator/README.md +0 -0
  170. {lionagi-0.3.6/lionagi/experimental/knowledge → lionagi-0.3.8/lionagi/experimental/evaluator}/__init__.py +0 -0
  171. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/experimental/evaluator/ast_evaluator.py +0 -0
  172. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/experimental/evaluator/base_evaluator.py +0 -0
  173. {lionagi-0.3.6/lionagi/experimental/memory → lionagi-0.3.8/lionagi/experimental/knowledge}/__init__.py +0 -0
  174. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/experimental/knowledge/base.py +0 -0
  175. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/experimental/knowledge/graph.py +0 -0
  176. {lionagi-0.3.6/lionagi/experimental/strategies → lionagi-0.3.8/lionagi/experimental/memory}/__init__.py +0 -0
  177. {lionagi-0.3.6/lionagi/integrations/bridge/autogen_ → lionagi-0.3.8/lionagi/experimental/strategies}/__init__.py +0 -0
  178. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/experimental/strategies/base.py +0 -0
  179. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/__init__.py +0 -0
  180. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/bridge/__init__.py +0 -0
  181. {lionagi-0.3.6/lionagi/integrations/bridge/langchain_ → lionagi-0.3.8/lionagi/integrations/bridge/autogen_}/__init__.py +0 -0
  182. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/bridge/autogen_/autogen_.py +0 -0
  183. {lionagi-0.3.6/lionagi/integrations/bridge/llamaindex_ → lionagi-0.3.8/lionagi/integrations/bridge/langchain_}/__init__.py +0 -0
  184. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/bridge/langchain_/documents.py +0 -0
  185. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/bridge/langchain_/langchain_bridge.py +0 -0
  186. {lionagi-0.3.6/lionagi/integrations/bridge/pydantic_ → lionagi-0.3.8/lionagi/integrations/bridge/llamaindex_}/__init__.py +0 -0
  187. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/bridge/llamaindex_/index.py +0 -0
  188. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/bridge/llamaindex_/llama_index_bridge.py +0 -0
  189. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/bridge/llamaindex_/llama_pack.py +0 -0
  190. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/bridge/llamaindex_/node_parser.py +0 -0
  191. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/bridge/llamaindex_/reader.py +0 -0
  192. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/bridge/llamaindex_/textnode.py +0 -0
  193. {lionagi-0.3.6/lionagi/integrations/bridge/transformers_ → lionagi-0.3.8/lionagi/integrations/bridge/pydantic_}/__init__.py +0 -0
  194. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/bridge/pydantic_/pydantic_bridge.py +0 -0
  195. {lionagi-0.3.6/lionagi/integrations/chunker → lionagi-0.3.8/lionagi/integrations/bridge/transformers_}/__init__.py +0 -0
  196. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/bridge/transformers_/install_.py +0 -0
  197. {lionagi-0.3.6/lionagi/integrations/loader → lionagi-0.3.8/lionagi/integrations/chunker}/__init__.py +0 -0
  198. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/chunker/chunk.py +0 -0
  199. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/config/__init__.py +0 -0
  200. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/config/mlx_configs.py +0 -0
  201. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/config/oai_configs.py +0 -0
  202. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/config/ollama_configs.py +0 -0
  203. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/config/openrouter_configs.py +0 -0
  204. {lionagi-0.3.6/lionagi/lions → lionagi-0.3.8/lionagi/integrations/langchain_}/__init__.py +0 -0
  205. {lionagi-0.3.6/lionagi/lions/coder → lionagi-0.3.8/lionagi/integrations/llamaindex_}/__init__.py +0 -0
  206. {lionagi-0.3.6/lionagi/lions/judge → lionagi-0.3.8/lionagi/integrations/loader}/__init__.py +0 -0
  207. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/loader/load.py +0 -0
  208. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/loader/load_util.py +0 -0
  209. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/provider/__init__.py +0 -0
  210. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/provider/_mapping.py +0 -0
  211. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/provider/litellm.py +0 -0
  212. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/provider/mistralai.py +0 -0
  213. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/provider/mlx_service.py +0 -0
  214. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/provider/oai.py +0 -0
  215. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/provider/ollama.py +0 -0
  216. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/provider/openrouter.py +0 -0
  217. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/provider/services.py +0 -0
  218. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/provider/transformers.py +0 -0
  219. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/storage/__init__.py +0 -0
  220. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/storage/neo4j.py +0 -0
  221. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/storage/storage_util.py +0 -0
  222. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/storage/structure_excel.py +0 -0
  223. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/storage/to_csv.py +0 -0
  224. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/integrations/storage/to_excel.py +0 -0
  225. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/libs/__init__.py +0 -0
  226. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/libs/ln_api.py +0 -0
  227. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/libs/ln_async.py +0 -0
  228. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/libs/ln_context.py +0 -0
  229. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/libs/ln_convert.py +0 -0
  230. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/libs/ln_dataframe.py +0 -0
  231. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/libs/ln_func_call.py +0 -0
  232. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/libs/ln_image.py +0 -0
  233. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/libs/ln_knowledge_graph.py +0 -0
  234. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/libs/ln_nested.py +0 -0
  235. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/libs/ln_parse.py +0 -0
  236. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/libs/ln_queue.py +0 -0
  237. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/libs/ln_tokenize.py +0 -0
  238. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/libs/ln_validate.py +0 -0
  239. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/libs/special_tokens.py +0 -0
  240. {lionagi-0.3.6/lionagi/lions/judge/data → lionagi-0.3.8/lionagi/lions}/__init__.py +0 -0
  241. {lionagi-0.3.6/lionagi/lions/judge/forms → lionagi-0.3.8/lionagi/lions/coder}/__init__.py +0 -0
  242. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/lions/coder/add_feature.py +0 -0
  243. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/lions/coder/base_prompts.py +0 -0
  244. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/lions/coder/code_form.py +0 -0
  245. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/lions/coder/coder.py +0 -0
  246. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/lions/coder/util.py +0 -0
  247. {lionagi-0.3.6/lionagi/lions/judge/services → lionagi-0.3.8/lionagi/lions/director}/__init__.py +0 -0
  248. {lionagi-0.3.6/lionagi/lions/researcher → lionagi-0.3.8/lionagi/lions/judge}/__init__.py +0 -0
  249. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/lions/judge/config.py +0 -0
  250. {lionagi-0.3.6/lionagi/lions/researcher/data_source → lionagi-0.3.8/lionagi/lions/judge/data}/__init__.py +0 -0
  251. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/lions/judge/data/sample_codes.py +0 -0
  252. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/lions/judge/data/sample_rurbic.py +0 -0
  253. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/lions/judge/forms/code_analysis_form.py +0 -0
  254. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/lions/judge/rubric.py +0 -0
  255. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/lions/judge/services/judge_code.py +0 -0
  256. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/lions/researcher/data_source/finhub_.py +0 -0
  257. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/lions/researcher/data_source/google_.py +0 -0
  258. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/lions/researcher/data_source/wiki_.py +0 -0
  259. {lionagi-0.3.6 → lionagi-0.3.8}/lionagi/lions/researcher/data_source/yfinance_.py +0 -0
lionagi-0.3.8/PKG-INFO ADDED
@@ -0,0 +1,241 @@
1
+ Metadata-Version: 2.1
2
+ Name: lionagi
3
+ Version: 0.3.8
4
+ Summary: Towards automated general intelligence.
5
+ Author: HaiyangLi
6
+ Author-email: quantocean.li@gmail.com
7
+ Requires-Python: >=3.10,<4.0
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Programming Language :: Python :: 3.10
10
+ Classifier: Programming Language :: Python :: 3.11
11
+ Classifier: Programming Language :: Python :: 3.12
12
+ Requires-Dist: aiocache (>=0.12.0,<0.13.0)
13
+ Requires-Dist: ipython (>=8.0.0,<9.0.0)
14
+ Requires-Dist: lion-core (>=0.5.6,<0.6.0)
15
+ Requires-Dist: python-dotenv (>=1.0.1,<2.0.0)
16
+ Description-Content-Type: text/markdown
17
+
18
+ ![PyPI - Version](https://img.shields.io/pypi/v/lionagi?labelColor=233476aa&color=231fc935)
19
+ ![PyPI - Downloads](https://img.shields.io/pypi/dm/lionagi?color=blue)
20
+ ![Dependencies](https://img.shields.io/badge/dependencies-4-brightgreen)
21
+ ![Python Version](https://img.shields.io/badge/python-3.10%2B-blue)
22
+
23
+ [Documentation](https://ocean-lion.com/Welcome) | [Discord](https://discord.gg/aqSJ2v46vu) | [PyPI](https://pypi.org/project/lionagi/) | [Roadmap](https://trello.com/b/3seomsrI/lionagi)
24
+
25
+ # LION Framework
26
+ ### Language InterOperable Network - The Future of Controlled AI Operations
27
+
28
+ > Harness the power of next-generation AI while maintaining complete control and reliability.
29
+
30
+ ## Why LION?
31
+
32
+ The AI revolution is transforming how we work - but with great power comes great responsibility. LION provides the control mechanisms and reliability features needed to safely integrate advanced AI capabilities into enterprise workflows.
33
+
34
+ LION is designed to be:
35
+ - 🔒 **Controlled**: Built-in safety mechanisms and verification
36
+ - 🎯 **Precise**: Exact control over AI behaviors
37
+ - 🔧 **Flexible**: Build any workflow you need
38
+ - 🚀 **Efficient**: Minimal dependencies, maximum performance
39
+
40
+ ## Quick Start
41
+
42
+ ```python
43
+ from lionagi import Branch, iModel
44
+
45
+ # Initialize model
46
+ gpt4o = iModel(provider="openai", model="gpt-4o")
47
+
48
+ # Create a branch with personality
49
+ comedian = Branch(
50
+ system="you are a sarcastic dragon hunter",
51
+ imodel=gpt4o
52
+ )
53
+
54
+ # Chat asynchronously
55
+ response = await branch.chat(
56
+ "tell me a joke on knight vs dragon"
57
+ )
58
+ ```
59
+
60
+ ## Installation
61
+
62
+ LION maintains minimal dependencies for maximum reliability:
63
+
64
+ ```bash
65
+ pip install lionagi
66
+ ```
67
+
68
+ Dependencies:
69
+ - aiocache
70
+ - lion-core
71
+ - python-dotenv
72
+ - IPython
73
+
74
+ ## 🌟 Example Workflow
75
+
76
+ Below is an example of what you can build with LION. Note that these are sample implementations - LION provides the building blocks, you create the workflows that fit your needs.
77
+
78
+ ```mermaid
79
+ sequenceDiagram
80
+ autonumber
81
+ participant Client
82
+ participant Orchestrator
83
+ participant ResearchAgent
84
+ participant AnalysisAgent
85
+ participant ValidationAgent
86
+ participant Tools
87
+
88
+ Client->>+Orchestrator: Submit Complex Task
89
+ Note over Orchestrator: Task Analysis & Planning
90
+
91
+ %% Research Phase
92
+ Orchestrator->>+ResearchAgent: Delegate Research
93
+ activate ResearchAgent
94
+ ResearchAgent->>Tools: Access Data Sources
95
+ Tools-->>ResearchAgent: Raw Data
96
+ ResearchAgent-->>-Orchestrator: Research Results
97
+ deactivate ResearchAgent
98
+
99
+ %% Analysis Phase
100
+ Orchestrator->>+AnalysisAgent: Process Data
101
+ activate AnalysisAgent
102
+ AnalysisAgent->>Tools: Apply Models
103
+ Tools-->>AnalysisAgent: Analysis Results
104
+ AnalysisAgent-->>-Orchestrator: Processed Insights
105
+ deactivate AnalysisAgent
106
+
107
+ %% Validation Phase
108
+ Orchestrator->>+ValidationAgent: Verify Results
109
+ activate ValidationAgent
110
+ ValidationAgent->>Tools: Apply Safety Checks
111
+ Tools-->>ValidationAgent: Validation Status
112
+ ValidationAgent-->>-Orchestrator: Verified Results
113
+ deactivate ValidationAgent
114
+
115
+ Orchestrator-->>-Client: Return Validated Output
116
+ ```
117
+
118
+ ## 🏗️ System Architecture
119
+
120
+ Here's how you can structure your LION-powered system. Each component can be customized to your specific needs.
121
+
122
+ ```mermaid
123
+ graph TB
124
+ subgraph Client Layer
125
+ CL[Client Application]
126
+ end
127
+
128
+ subgraph Orchestration Layer
129
+ ORC[Orchestrator]
130
+ SEC[Security Controls]
131
+ MON[Monitoring]
132
+ end
133
+
134
+ subgraph Agent Layer
135
+ subgraph Specialized Agents
136
+ RA[Research Agent]
137
+ AA[Analysis Agent]
138
+ VA[Validation Agent]
139
+ end
140
+
141
+ subgraph Agent Controls
142
+ AC[Access Control]
143
+ AM[Action Monitor]
144
+ VE[Verification]
145
+ end
146
+ end
147
+
148
+ subgraph Resource Layer
149
+ subgraph Tool Management
150
+ TM[Tool Registry]
151
+ TP[Tool Policies]
152
+ end
153
+
154
+ subgraph Data Sources
155
+ DS[Data Access]
156
+ DV[Data Validation]
157
+ end
158
+ end
159
+
160
+ %% Connections
161
+ CL --> ORC
162
+ ORC --> RA & AA & VA
163
+ RA & AA & VA --> AC
164
+ AC --> TM
165
+ TM --> DS
166
+
167
+ %% Control Flow
168
+ ORC --> SEC
169
+ SEC --> MON
170
+ MON --> AM
171
+ AM --> VE
172
+ VE --> TP
173
+ TP --> DV
174
+
175
+ classDef primary fill:#1e40af,stroke:#1e3a8a,color:#fff
176
+ classDef secondary fill:#3b82f6,stroke:#2563eb,color:#fff
177
+ classDef control fill:#7c3aed,stroke:#6d28d9,color:#fff
178
+ ```
179
+
180
+ ## 🛠️ Building Blocks
181
+
182
+ LION provides the essential components you need to build reliable AI workflows:
183
+
184
+ - **Branch**: Core conversation unit with built-in safety mechanisms
185
+ - **iModel**: Standardized interface to AI models
186
+ - **Tools**: Framework for safe tool integration
187
+ - **Exchange**: Reliable message passing between components
188
+
189
+ Each component is designed to be:
190
+ - Fully customizable to your needs
191
+ - Safe by default
192
+ - Easy to integrate
193
+ - Highly reliable
194
+
195
+ ## 🎯 Key Use Cases
196
+
197
+ - **Enterprise Operations**
198
+ - Complex workflow automation
199
+ - Data analysis and processing
200
+ - Decision support systems
201
+
202
+ - **AI Integration**
203
+ - Controlled model deployment
204
+ - Safe tool usage
205
+ - Reliable agent operations
206
+
207
+ - **Development**
208
+ - Rapid prototyping
209
+ - System integration
210
+ - Workflow optimization
211
+
212
+ ## 🔒 Built for Reliability
213
+
214
+ LION isn't just another framework - it's your partner in responsible AI adoption. Build enterprise-grade AI systems with:
215
+
216
+ - Complete control over AI behaviors
217
+ - Comprehensive audit trails
218
+ - Built-in safety mechanisms
219
+ - Minimal dependencies
220
+ - Maximum reliability
221
+
222
+ ## 🤝 Contributing
223
+
224
+ Join our [Discord community](https://discord.gg/aqSJ2v46vu) to:
225
+ - Share ideas
226
+ - Report issues
227
+ - Contribute code
228
+ - Learn from others
229
+
230
+ ## 📚 Citation
231
+
232
+ ```bibtex
233
+ @software{Li_LionAGI_2023,
234
+ author = {Haiyang Li},
235
+ month = {12},
236
+ year = {2023},
237
+ title = {LionAGI: Intelligent Integration Framework},
238
+ url = {https://github.com/lion-agi/lionagi},
239
+ }
240
+ ```
241
+
@@ -0,0 +1,223 @@
1
+ ![PyPI - Version](https://img.shields.io/pypi/v/lionagi?labelColor=233476aa&color=231fc935)
2
+ ![PyPI - Downloads](https://img.shields.io/pypi/dm/lionagi?color=blue)
3
+ ![Dependencies](https://img.shields.io/badge/dependencies-4-brightgreen)
4
+ ![Python Version](https://img.shields.io/badge/python-3.10%2B-blue)
5
+
6
+ [Documentation](https://ocean-lion.com/Welcome) | [Discord](https://discord.gg/aqSJ2v46vu) | [PyPI](https://pypi.org/project/lionagi/) | [Roadmap](https://trello.com/b/3seomsrI/lionagi)
7
+
8
+ # LION Framework
9
+ ### Language InterOperable Network - The Future of Controlled AI Operations
10
+
11
+ > Harness the power of next-generation AI while maintaining complete control and reliability.
12
+
13
+ ## Why LION?
14
+
15
+ The AI revolution is transforming how we work - but with great power comes great responsibility. LION provides the control mechanisms and reliability features needed to safely integrate advanced AI capabilities into enterprise workflows.
16
+
17
+ LION is designed to be:
18
+ - 🔒 **Controlled**: Built-in safety mechanisms and verification
19
+ - 🎯 **Precise**: Exact control over AI behaviors
20
+ - 🔧 **Flexible**: Build any workflow you need
21
+ - 🚀 **Efficient**: Minimal dependencies, maximum performance
22
+
23
+ ## Quick Start
24
+
25
+ ```python
26
+ from lionagi import Branch, iModel
27
+
28
+ # Initialize model
29
+ gpt4o = iModel(provider="openai", model="gpt-4o")
30
+
31
+ # Create a branch with personality
32
+ comedian = Branch(
33
+ system="you are a sarcastic dragon hunter",
34
+ imodel=gpt4o
35
+ )
36
+
37
+ # Chat asynchronously
38
+ response = await branch.chat(
39
+ "tell me a joke on knight vs dragon"
40
+ )
41
+ ```
42
+
43
+ ## Installation
44
+
45
+ LION maintains minimal dependencies for maximum reliability:
46
+
47
+ ```bash
48
+ pip install lionagi
49
+ ```
50
+
51
+ Dependencies:
52
+ - aiocache
53
+ - lion-core
54
+ - python-dotenv
55
+ - IPython
56
+
57
+ ## 🌟 Example Workflow
58
+
59
+ Below is an example of what you can build with LION. Note that these are sample implementations - LION provides the building blocks, you create the workflows that fit your needs.
60
+
61
+ ```mermaid
62
+ sequenceDiagram
63
+ autonumber
64
+ participant Client
65
+ participant Orchestrator
66
+ participant ResearchAgent
67
+ participant AnalysisAgent
68
+ participant ValidationAgent
69
+ participant Tools
70
+
71
+ Client->>+Orchestrator: Submit Complex Task
72
+ Note over Orchestrator: Task Analysis & Planning
73
+
74
+ %% Research Phase
75
+ Orchestrator->>+ResearchAgent: Delegate Research
76
+ activate ResearchAgent
77
+ ResearchAgent->>Tools: Access Data Sources
78
+ Tools-->>ResearchAgent: Raw Data
79
+ ResearchAgent-->>-Orchestrator: Research Results
80
+ deactivate ResearchAgent
81
+
82
+ %% Analysis Phase
83
+ Orchestrator->>+AnalysisAgent: Process Data
84
+ activate AnalysisAgent
85
+ AnalysisAgent->>Tools: Apply Models
86
+ Tools-->>AnalysisAgent: Analysis Results
87
+ AnalysisAgent-->>-Orchestrator: Processed Insights
88
+ deactivate AnalysisAgent
89
+
90
+ %% Validation Phase
91
+ Orchestrator->>+ValidationAgent: Verify Results
92
+ activate ValidationAgent
93
+ ValidationAgent->>Tools: Apply Safety Checks
94
+ Tools-->>ValidationAgent: Validation Status
95
+ ValidationAgent-->>-Orchestrator: Verified Results
96
+ deactivate ValidationAgent
97
+
98
+ Orchestrator-->>-Client: Return Validated Output
99
+ ```
100
+
101
+ ## 🏗️ System Architecture
102
+
103
+ Here's how you can structure your LION-powered system. Each component can be customized to your specific needs.
104
+
105
+ ```mermaid
106
+ graph TB
107
+ subgraph Client Layer
108
+ CL[Client Application]
109
+ end
110
+
111
+ subgraph Orchestration Layer
112
+ ORC[Orchestrator]
113
+ SEC[Security Controls]
114
+ MON[Monitoring]
115
+ end
116
+
117
+ subgraph Agent Layer
118
+ subgraph Specialized Agents
119
+ RA[Research Agent]
120
+ AA[Analysis Agent]
121
+ VA[Validation Agent]
122
+ end
123
+
124
+ subgraph Agent Controls
125
+ AC[Access Control]
126
+ AM[Action Monitor]
127
+ VE[Verification]
128
+ end
129
+ end
130
+
131
+ subgraph Resource Layer
132
+ subgraph Tool Management
133
+ TM[Tool Registry]
134
+ TP[Tool Policies]
135
+ end
136
+
137
+ subgraph Data Sources
138
+ DS[Data Access]
139
+ DV[Data Validation]
140
+ end
141
+ end
142
+
143
+ %% Connections
144
+ CL --> ORC
145
+ ORC --> RA & AA & VA
146
+ RA & AA & VA --> AC
147
+ AC --> TM
148
+ TM --> DS
149
+
150
+ %% Control Flow
151
+ ORC --> SEC
152
+ SEC --> MON
153
+ MON --> AM
154
+ AM --> VE
155
+ VE --> TP
156
+ TP --> DV
157
+
158
+ classDef primary fill:#1e40af,stroke:#1e3a8a,color:#fff
159
+ classDef secondary fill:#3b82f6,stroke:#2563eb,color:#fff
160
+ classDef control fill:#7c3aed,stroke:#6d28d9,color:#fff
161
+ ```
162
+
163
+ ## 🛠️ Building Blocks
164
+
165
+ LION provides the essential components you need to build reliable AI workflows:
166
+
167
+ - **Branch**: Core conversation unit with built-in safety mechanisms
168
+ - **iModel**: Standardized interface to AI models
169
+ - **Tools**: Framework for safe tool integration
170
+ - **Exchange**: Reliable message passing between components
171
+
172
+ Each component is designed to be:
173
+ - Fully customizable to your needs
174
+ - Safe by default
175
+ - Easy to integrate
176
+ - Highly reliable
177
+
178
+ ## 🎯 Key Use Cases
179
+
180
+ - **Enterprise Operations**
181
+ - Complex workflow automation
182
+ - Data analysis and processing
183
+ - Decision support systems
184
+
185
+ - **AI Integration**
186
+ - Controlled model deployment
187
+ - Safe tool usage
188
+ - Reliable agent operations
189
+
190
+ - **Development**
191
+ - Rapid prototyping
192
+ - System integration
193
+ - Workflow optimization
194
+
195
+ ## 🔒 Built for Reliability
196
+
197
+ LION isn't just another framework - it's your partner in responsible AI adoption. Build enterprise-grade AI systems with:
198
+
199
+ - Complete control over AI behaviors
200
+ - Comprehensive audit trails
201
+ - Built-in safety mechanisms
202
+ - Minimal dependencies
203
+ - Maximum reliability
204
+
205
+ ## 🤝 Contributing
206
+
207
+ Join our [Discord community](https://discord.gg/aqSJ2v46vu) to:
208
+ - Share ideas
209
+ - Report issues
210
+ - Contribute code
211
+ - Learn from others
212
+
213
+ ## 📚 Citation
214
+
215
+ ```bibtex
216
+ @software{Li_LionAGI_2023,
217
+ author = {Haiyang Li},
218
+ month = {12},
219
+ year = {2023},
220
+ title = {LionAGI: Intelligent Integration Framework},
221
+ url = {https://github.com/lion-agi/lionagi},
222
+ }
223
+ ```
@@ -1,11 +1,11 @@
1
1
  """Component class, base building block in LionAGI."""
2
2
 
3
3
  import contextlib
4
- from abc import ABC
5
- from collections.abc import Sequence
6
4
  from functools import singledispatchmethod
7
- from typing import Any, Type, TypeAlias, TypeVar, Union
5
+ from typing import Any, TypeAlias, TypeVar, Union
8
6
 
7
+ import lionfuncs as ln
8
+ from lionabc import Observable
9
9
  from pandas import DataFrame, Series
10
10
  from pydantic import AliasChoices, BaseModel, Field, ValidationError
11
11
 
@@ -22,7 +22,13 @@ T = TypeVar("T")
22
22
  _init_class = {}
23
23
 
24
24
 
25
- class Element(BaseModel, ABC):
25
+ def change_dict_key(dict_: dict, old_key: str, new_key: str) -> None:
26
+ """Change a key in a dictionary."""
27
+ if old_key in dict_:
28
+ dict_[new_key] = dict_.pop(old_key)
29
+
30
+
31
+ class Element(BaseModel, Observable):
26
32
  """Base class for elements within the LionAGI system.
27
33
 
28
34
  Attributes:
@@ -31,15 +37,14 @@ class Element(BaseModel, ABC):
31
37
  """
32
38
 
33
39
  ln_id: str = Field(
34
- default_factory=SysUtil.create_id,
40
+ default_factory=SysUtil.id,
35
41
  title="ID",
36
- description="A 32-char unique hash identifier.",
37
42
  frozen=True,
38
43
  validation_alias=AliasChoices("node_id", "ID", "id"),
39
44
  )
40
45
 
41
46
  timestamp: str = Field(
42
- default_factory=lambda: SysUtil.get_timestamp(sep=None)[:-6],
47
+ default_factory=lambda: ln.time(type_="iso"),
43
48
  title="Creation Timestamp",
44
49
  description="The UTC timestamp of creation",
45
50
  frozen=True,
@@ -57,7 +62,7 @@ class Element(BaseModel, ABC):
57
62
  return True
58
63
 
59
64
 
60
- class Component(Element, ABC):
65
+ class Component(Element):
61
66
  """
62
67
  Represents a distinguishable, temporal entity in LionAGI.
63
68
 
@@ -195,17 +200,15 @@ class Component(Element, ABC):
195
200
  """Create a Component instance from a LlamaIndex object."""
196
201
  dict_ = obj.to_dict()
197
202
 
198
- SysUtil.change_dict_key(dict_, "text", "content")
203
+ change_dict_key(dict_, "text", "content")
199
204
  metadata = dict_.pop("metadata", {})
200
205
 
201
206
  for field in llama_meta_fields:
202
207
  metadata[field] = dict_.pop(field, None)
203
208
 
204
- SysUtil.change_dict_key(metadata, "class_name", "llama_index_class")
205
- SysUtil.change_dict_key(metadata, "id_", "llama_index_id")
206
- SysUtil.change_dict_key(
207
- metadata, "relationships", "llama_index_relationships"
208
- )
209
+ change_dict_key(metadata, "class_name", "llama_index_class")
210
+ change_dict_key(metadata, "id_", "llama_index_id")
211
+ change_dict_key(metadata, "relationships", "llama_index_relationships")
209
212
 
210
213
  dict_["metadata"] = metadata
211
214
  return cls.from_obj(dict_)
@@ -244,7 +247,7 @@ class Component(Element, ABC):
244
247
  @classmethod
245
248
  def _process_langchain_dict(cls, dict_: dict) -> dict:
246
249
  """Process a dictionary containing Langchain-specific data."""
247
- SysUtil.change_dict_key(dict_, "page_content", "content")
250
+ change_dict_key(dict_, "page_content", "content")
248
251
 
249
252
  metadata = dict_.pop("metadata", {})
250
253
  metadata.update(dict_.pop("kwargs", {}))
@@ -264,9 +267,9 @@ class Component(Element, ABC):
264
267
  if field in dict_:
265
268
  metadata[field] = dict_.pop(field)
266
269
 
267
- SysUtil.change_dict_key(metadata, "lc", "langchain")
268
- SysUtil.change_dict_key(metadata, "type", "lc_type")
269
- SysUtil.change_dict_key(metadata, "id", "lc_id")
270
+ change_dict_key(metadata, "lc", "langchain")
271
+ change_dict_key(metadata, "type", "lc_type")
272
+ change_dict_key(metadata, "id", "lc_id")
270
273
 
271
274
  extra_fields = {
272
275
  k: v for k, v in metadata.items() if k not in lc_meta_fields
@@ -298,9 +301,9 @@ class Component(Element, ABC):
298
301
  dict_["metadata"] = meta_
299
302
 
300
303
  if "ln_id" not in dict_:
301
- dict_["ln_id"] = meta_.pop("ln_id", SysUtil.create_id())
304
+ dict_["ln_id"] = meta_.pop("ln_id", SysUtil.id())
302
305
  if "timestamp" not in dict_:
303
- dict_["timestamp"] = SysUtil.get_timestamp(sep=None)[:-6]
306
+ dict_["timestamp"] = ln.time(type_="iso")
304
307
  if "metadata" not in dict_:
305
308
  dict_["metadata"] = {}
306
309
  if "extra_fields" not in dict_:
@@ -453,13 +456,13 @@ class Component(Element, ABC):
453
456
  ninsert(
454
457
  self.metadata,
455
458
  ["last_updated", name],
456
- SysUtil.get_timestamp(sep=None)[:-6],
459
+ ln.time(type_="iso")[:-6],
457
460
  )
458
461
  elif isinstance(a, tuple) and isinstance(a[0], int):
459
462
  nset(
460
463
  self.metadata,
461
464
  ["last_updated", name],
462
- SysUtil.get_timestamp(sep=None)[:-6],
465
+ ln.time(type_="iso")[:-6],
463
466
  )
464
467
 
465
468
  def _meta_pop(self, indices, default=...):
@@ -614,10 +617,4 @@ LionIDable: TypeAlias = Union[str, Element]
614
617
 
615
618
  def get_lion_id(item: LionIDable) -> str:
616
619
  """Get the Lion ID of an item."""
617
- if isinstance(item, Sequence) and len(item) == 1:
618
- item = item[0]
619
- if isinstance(item, str) and len(item) == 32:
620
- return item
621
- if getattr(item, "ln_id", None) is not None:
622
- return item.ln_id
623
- raise LionTypeError("Item must be a single LionIDable object.")
620
+ return SysUtil.get_id(item)
@@ -227,12 +227,6 @@ class Sendable(BaseModel, ABC):
227
227
  return value
228
228
 
229
229
  a = get_lion_id(value)
230
- if not isinstance(a, str) or len(a) != 32:
231
- raise LionTypeError(
232
- "Invalid sender or recipient value. "
233
- "Expected a valid node id or one of "
234
- "'system' or 'user'."
235
- )
236
230
  return a
237
231
 
238
232
 
@@ -1,7 +1,6 @@
1
1
  import contextlib
2
2
  from collections import deque
3
3
  from collections.abc import Mapping
4
- from typing import Tuple
5
4
 
6
5
  from pydantic import Field
7
6
 
@@ -1,6 +1,7 @@
1
1
  import asyncio
2
2
  import os
3
3
 
4
+ import lionfuncs as ln
4
5
  import numpy as np
5
6
  from dotenv import load_dotenv
6
7
 
@@ -91,8 +92,8 @@ class iModel:
91
92
  service (BaseService, optional): An instance of BaseService.
92
93
  **kwargs: Additional parameters for the model.
93
94
  """
94
- self.ln_id: str = SysUtil.create_id()
95
- self.timestamp: str = SysUtil.get_timestamp(sep=None)[:-6]
95
+ self.ln_id: str = SysUtil.id()
96
+ self.timestamp: str = ln.time(type_="iso")
96
97
  self.endpoint = endpoint
97
98
  self.allowed_parameters = allowed_parameters
98
99
  if isinstance(provider, type):
@@ -3,7 +3,7 @@ from __future__ import annotations
3
3
  import asyncio
4
4
  from collections.abc import AsyncIterator, Callable, Iterable
5
5
  from functools import wraps
6
- from typing import Any, Generic, Type, TypeVar
6
+ from typing import Any, Generic, TypeVar
7
7
 
8
8
  from pydantic import Field, field_validator
9
9
 
@@ -1,9 +1,8 @@
1
1
  import contextlib
2
2
 
3
+ import lionfuncs as ln
3
4
  from pydantic import Field, field_validator
4
5
 
5
- from lionagi.libs import SysUtil
6
-
7
6
  from .abc import Element, ItemNotFoundError, LionIDable, Ordering, get_lion_id
8
7
  from .util import _validate_order
9
8
 
@@ -90,7 +89,7 @@ class Progression(Element, Ordering):
90
89
  """Remove the next occurrence of an item from the progression."""
91
90
  if item in self:
92
91
  item = self._validate_order(item)
93
- l_ = SysUtil.create_copy(self.order)
92
+ l_ = ln.copy(self.order)
94
93
 
95
94
  with contextlib.suppress(Exception):
96
95
  for i in item:
@@ -143,7 +142,7 @@ class Progression(Element, Ordering):
143
142
  def __radd__(self, other):
144
143
  if not isinstance(other, Progression):
145
144
  _copy = self.copy()
146
- l_ = SysUtil.create_copy(_copy.order)
145
+ l_ = ln.copy(_copy.order)
147
146
  l_.insert(0, get_lion_id(other))
148
147
  _copy.order = l_
149
148
  return _copy
@@ -190,7 +189,7 @@ class Progression(Element, Ordering):
190
189
 
191
190
  def __list__(self):
192
191
  """Return a list representation of the progression."""
193
- return SysUtil.create_copy(self.order)
192
+ return ln.copy(self.order)
194
193
 
195
194
  def __reversed__(self):
196
195
  """Return a reversed progression."""
@@ -0,0 +1,3 @@
1
+ from lionagi.operations.select import select
2
+
3
+ __all__ = ["select"]