lionagi 0.3.4__tar.gz → 0.3.6__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (246) hide show
  1. {lionagi-0.3.4 → lionagi-0.3.6}/PKG-INFO +2 -2
  2. lionagi-0.3.6/lionagi/core/director/models/__init__.py +13 -0
  3. lionagi-0.3.6/lionagi/core/director/models/action_model.py +61 -0
  4. lionagi-0.3.6/lionagi/core/director/models/brainstorm_model.py +42 -0
  5. lionagi-0.3.6/lionagi/core/director/models/plan_model.py +51 -0
  6. lionagi-0.3.6/lionagi/core/director/models/reason_model.py +63 -0
  7. lionagi-0.3.6/lionagi/core/director/models/step_model.py +65 -0
  8. lionagi-0.3.6/lionagi/core/director/operations/select.py +93 -0
  9. lionagi-0.3.6/lionagi/core/director/operations/utils.py +6 -0
  10. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/unit/unit.py +1 -3
  11. lionagi-0.3.6/lionagi/lions/researcher/data_source/__init__.py +0 -0
  12. lionagi-0.3.6/lionagi/version.py +1 -0
  13. {lionagi-0.3.4 → lionagi-0.3.6}/pyproject.toml +2 -2
  14. lionagi-0.3.4/lionagi/version.py +0 -1
  15. {lionagi-0.3.4 → lionagi-0.3.6}/LICENSE +0 -0
  16. {lionagi-0.3.4 → lionagi-0.3.6}/README.md +0 -0
  17. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/__init__.py +0 -0
  18. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/__init__.py +0 -0
  19. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/_setting/__init__.py +0 -0
  20. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/_setting/_setting.py +0 -0
  21. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/action/README.md +0 -0
  22. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/action/__init__.py +0 -0
  23. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/action/function_calling.py +0 -0
  24. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/action/manual.py +0 -0
  25. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/action/node.py +0 -0
  26. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/action/tool.py +0 -0
  27. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/action/tool_manager.py +0 -0
  28. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/agent/README.md +0 -0
  29. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/agent/__init__.py +0 -0
  30. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/agent/base_agent.py +0 -0
  31. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/agent/eval/README.md +0 -0
  32. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/agent/eval/__init__.py +0 -0
  33. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/agent/eval/evaluator.py +0 -0
  34. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/agent/eval/vote.py +0 -0
  35. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/agent/learn/__init__.py +0 -0
  36. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/agent/learn/learner.py +0 -0
  37. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/agent/plan/__init__.py +0 -0
  38. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/agent/plan/plan.py +0 -0
  39. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/agent/plan/unit_template.py +0 -0
  40. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/collections/README.md +0 -0
  41. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/collections/__init__.py +0 -0
  42. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/collections/_logger.py +0 -0
  43. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/collections/abc/README.md +0 -0
  44. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/collections/abc/__init__.py +0 -0
  45. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/collections/abc/component.py +0 -0
  46. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/collections/abc/concepts.py +0 -0
  47. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/collections/abc/exceptions.py +0 -0
  48. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/collections/abc/util.py +0 -0
  49. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/collections/exchange.py +0 -0
  50. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/collections/flow.py +0 -0
  51. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/collections/model.py +0 -0
  52. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/collections/pile.py +0 -0
  53. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/collections/progression.py +0 -0
  54. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/collections/util.py +0 -0
  55. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/director/README.md +0 -0
  56. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/director/__init__.py +0 -0
  57. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/director/direct.py +0 -0
  58. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/director/director.py +0 -0
  59. {lionagi-0.3.4/lionagi/core/engine → lionagi-0.3.6/lionagi/core/director/operations}/__init__.py +0 -0
  60. {lionagi-0.3.4/lionagi/core/executor → lionagi-0.3.6/lionagi/core/engine}/__init__.py +0 -0
  61. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/engine/branch_engine.py +0 -0
  62. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/engine/instruction_map_engine.py +0 -0
  63. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/engine/sandbox_.py +0 -0
  64. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/engine/script_engine.py +0 -0
  65. {lionagi-0.3.4/lionagi/core/rule → lionagi-0.3.6/lionagi/core/executor}/__init__.py +0 -0
  66. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/executor/base_executor.py +0 -0
  67. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/executor/graph_executor.py +0 -0
  68. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/executor/neo4j_executor.py +0 -0
  69. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/generic/README.md +0 -0
  70. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/generic/__init__.py +0 -0
  71. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/generic/edge.py +0 -0
  72. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/generic/edge_condition.py +0 -0
  73. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/generic/graph.py +0 -0
  74. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/generic/hyperedge.py +0 -0
  75. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/generic/node.py +0 -0
  76. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/generic/tree.py +0 -0
  77. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/generic/tree_node.py +0 -0
  78. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/mail/__init__.py +0 -0
  79. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/mail/mail.py +0 -0
  80. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/mail/mail_manager.py +0 -0
  81. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/mail/package.py +0 -0
  82. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/mail/start_mail.py +0 -0
  83. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/message/__init__.py +0 -0
  84. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/message/action_request.py +0 -0
  85. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/message/action_response.py +0 -0
  86. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/message/assistant_response.py +0 -0
  87. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/message/instruction.py +0 -0
  88. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/message/message.py +0 -0
  89. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/message/system.py +0 -0
  90. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/message/util.py +0 -0
  91. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/report/__init__.py +0 -0
  92. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/report/base.py +0 -0
  93. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/report/form.py +0 -0
  94. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/report/report.py +0 -0
  95. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/report/util.py +0 -0
  96. {lionagi-0.3.4/lionagi/core/session → lionagi-0.3.6/lionagi/core/rule}/__init__.py +0 -0
  97. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/rule/_default.py +0 -0
  98. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/rule/action.py +0 -0
  99. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/rule/base.py +0 -0
  100. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/rule/boolean.py +0 -0
  101. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/rule/choice.py +0 -0
  102. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/rule/mapping.py +0 -0
  103. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/rule/number.py +0 -0
  104. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/rule/rulebook.py +0 -0
  105. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/rule/string.py +0 -0
  106. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/rule/util.py +0 -0
  107. {lionagi-0.3.4/lionagi/core/unit/template → lionagi-0.3.6/lionagi/core/session}/__init__.py +0 -0
  108. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/session/branch.py +0 -0
  109. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/session/directive_mixin.py +0 -0
  110. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/session/session.py +0 -0
  111. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/structure/__init__.py +0 -0
  112. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/structure/chain.py +0 -0
  113. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/structure/forest.py +0 -0
  114. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/structure/graph.py +0 -0
  115. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/structure/tree.py +0 -0
  116. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/unit/__init__.py +0 -0
  117. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/unit/parallel_unit.py +0 -0
  118. {lionagi-0.3.4/lionagi/core/validator → lionagi-0.3.6/lionagi/core/unit/template}/__init__.py +0 -0
  119. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/unit/template/action.py +0 -0
  120. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/unit/template/base.py +0 -0
  121. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/unit/template/plan.py +0 -0
  122. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/unit/template/predict.py +0 -0
  123. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/unit/template/score.py +0 -0
  124. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/unit/template/select.py +0 -0
  125. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/unit/unit_form.py +0 -0
  126. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/unit/unit_mixin.py +0 -0
  127. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/unit/util.py +0 -0
  128. {lionagi-0.3.4/lionagi/core/work → lionagi-0.3.6/lionagi/core/validator}/__init__.py +0 -0
  129. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/validator/validator.py +0 -0
  130. {lionagi-0.3.4/lionagi/experimental → lionagi-0.3.6/lionagi/core/work}/__init__.py +0 -0
  131. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/work/work.py +0 -0
  132. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/work/work_edge.py +0 -0
  133. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/work/work_function.py +0 -0
  134. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/work/work_function_node.py +0 -0
  135. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/work/work_queue.py +0 -0
  136. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/work/work_task.py +0 -0
  137. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/work/worker.py +0 -0
  138. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/work/worker_engine.py +0 -0
  139. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/core/work/worklog.py +0 -0
  140. {lionagi-0.3.4/lionagi/experimental/compressor → lionagi-0.3.6/lionagi/experimental}/__init__.py +0 -0
  141. {lionagi-0.3.4/lionagi/experimental/directive/parser → lionagi-0.3.6/lionagi/experimental/compressor}/__init__.py +0 -0
  142. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/experimental/compressor/base.py +0 -0
  143. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/experimental/compressor/llm_compressor.py +0 -0
  144. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/experimental/compressor/llm_summarizer.py +0 -0
  145. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/experimental/compressor/util.py +0 -0
  146. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/experimental/directive/README.md +0 -0
  147. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/experimental/directive/__init__.py +0 -0
  148. {lionagi-0.3.4/lionagi/experimental/directive/template → lionagi-0.3.6/lionagi/experimental/directive/parser}/__init__.py +0 -0
  149. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/experimental/directive/parser/base_parser.py +0 -0
  150. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/experimental/directive/parser/base_syntax.txt +0 -0
  151. {lionagi-0.3.4/lionagi/experimental/evaluator → lionagi-0.3.6/lionagi/experimental/directive/template}/__init__.py +0 -0
  152. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/experimental/directive/template/base_template.py +0 -0
  153. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/experimental/directive/template/schema.py +0 -0
  154. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/experimental/directive/tokenizer.py +0 -0
  155. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/experimental/evaluator/README.md +0 -0
  156. {lionagi-0.3.4/lionagi/experimental/knowledge → lionagi-0.3.6/lionagi/experimental/evaluator}/__init__.py +0 -0
  157. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/experimental/evaluator/ast_evaluator.py +0 -0
  158. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/experimental/evaluator/base_evaluator.py +0 -0
  159. {lionagi-0.3.4/lionagi/experimental/memory → lionagi-0.3.6/lionagi/experimental/knowledge}/__init__.py +0 -0
  160. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/experimental/knowledge/base.py +0 -0
  161. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/experimental/knowledge/graph.py +0 -0
  162. {lionagi-0.3.4/lionagi/experimental/strategies → lionagi-0.3.6/lionagi/experimental/memory}/__init__.py +0 -0
  163. {lionagi-0.3.4/lionagi/integrations/bridge/autogen_ → lionagi-0.3.6/lionagi/experimental/strategies}/__init__.py +0 -0
  164. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/experimental/strategies/base.py +0 -0
  165. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/__init__.py +0 -0
  166. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/bridge/__init__.py +0 -0
  167. {lionagi-0.3.4/lionagi/integrations/bridge/langchain_ → lionagi-0.3.6/lionagi/integrations/bridge/autogen_}/__init__.py +0 -0
  168. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/bridge/autogen_/autogen_.py +0 -0
  169. {lionagi-0.3.4/lionagi/integrations/bridge/llamaindex_ → lionagi-0.3.6/lionagi/integrations/bridge/langchain_}/__init__.py +0 -0
  170. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/bridge/langchain_/documents.py +0 -0
  171. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/bridge/langchain_/langchain_bridge.py +0 -0
  172. {lionagi-0.3.4/lionagi/integrations/bridge/pydantic_ → lionagi-0.3.6/lionagi/integrations/bridge/llamaindex_}/__init__.py +0 -0
  173. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/bridge/llamaindex_/index.py +0 -0
  174. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/bridge/llamaindex_/llama_index_bridge.py +0 -0
  175. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/bridge/llamaindex_/llama_pack.py +0 -0
  176. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/bridge/llamaindex_/node_parser.py +0 -0
  177. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/bridge/llamaindex_/reader.py +0 -0
  178. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/bridge/llamaindex_/textnode.py +0 -0
  179. {lionagi-0.3.4/lionagi/integrations/bridge/transformers_ → lionagi-0.3.6/lionagi/integrations/bridge/pydantic_}/__init__.py +0 -0
  180. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/bridge/pydantic_/pydantic_bridge.py +0 -0
  181. {lionagi-0.3.4/lionagi/integrations/chunker → lionagi-0.3.6/lionagi/integrations/bridge/transformers_}/__init__.py +0 -0
  182. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/bridge/transformers_/install_.py +0 -0
  183. {lionagi-0.3.4/lionagi/integrations/loader → lionagi-0.3.6/lionagi/integrations/chunker}/__init__.py +0 -0
  184. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/chunker/chunk.py +0 -0
  185. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/config/__init__.py +0 -0
  186. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/config/mlx_configs.py +0 -0
  187. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/config/oai_configs.py +0 -0
  188. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/config/ollama_configs.py +0 -0
  189. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/config/openrouter_configs.py +0 -0
  190. {lionagi-0.3.4/lionagi/lions → lionagi-0.3.6/lionagi/integrations/loader}/__init__.py +0 -0
  191. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/loader/load.py +0 -0
  192. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/loader/load_util.py +0 -0
  193. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/provider/__init__.py +0 -0
  194. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/provider/_mapping.py +0 -0
  195. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/provider/litellm.py +0 -0
  196. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/provider/mistralai.py +0 -0
  197. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/provider/mlx_service.py +0 -0
  198. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/provider/oai.py +0 -0
  199. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/provider/ollama.py +0 -0
  200. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/provider/openrouter.py +0 -0
  201. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/provider/services.py +0 -0
  202. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/provider/transformers.py +0 -0
  203. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/storage/__init__.py +0 -0
  204. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/storage/neo4j.py +0 -0
  205. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/storage/storage_util.py +0 -0
  206. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/storage/structure_excel.py +0 -0
  207. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/storage/to_csv.py +0 -0
  208. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/integrations/storage/to_excel.py +0 -0
  209. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/libs/__init__.py +0 -0
  210. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/libs/ln_api.py +0 -0
  211. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/libs/ln_async.py +0 -0
  212. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/libs/ln_context.py +0 -0
  213. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/libs/ln_convert.py +0 -0
  214. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/libs/ln_dataframe.py +0 -0
  215. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/libs/ln_func_call.py +0 -0
  216. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/libs/ln_image.py +0 -0
  217. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/libs/ln_knowledge_graph.py +0 -0
  218. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/libs/ln_nested.py +0 -0
  219. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/libs/ln_parse.py +0 -0
  220. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/libs/ln_queue.py +0 -0
  221. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/libs/ln_tokenize.py +0 -0
  222. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/libs/ln_validate.py +0 -0
  223. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/libs/special_tokens.py +0 -0
  224. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/libs/sys_util.py +0 -0
  225. {lionagi-0.3.4/lionagi/lions/coder → lionagi-0.3.6/lionagi/lions}/__init__.py +0 -0
  226. {lionagi-0.3.4/lionagi/lions/judge → lionagi-0.3.6/lionagi/lions/coder}/__init__.py +0 -0
  227. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/lions/coder/add_feature.py +0 -0
  228. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/lions/coder/base_prompts.py +0 -0
  229. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/lions/coder/code_form.py +0 -0
  230. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/lions/coder/coder.py +0 -0
  231. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/lions/coder/util.py +0 -0
  232. {lionagi-0.3.4/lionagi/lions/judge/data → lionagi-0.3.6/lionagi/lions/judge}/__init__.py +0 -0
  233. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/lions/judge/config.py +0 -0
  234. {lionagi-0.3.4/lionagi/lions/judge/forms → lionagi-0.3.6/lionagi/lions/judge/data}/__init__.py +0 -0
  235. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/lions/judge/data/sample_codes.py +0 -0
  236. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/lions/judge/data/sample_rurbic.py +0 -0
  237. {lionagi-0.3.4/lionagi/lions/judge/services → lionagi-0.3.6/lionagi/lions/judge/forms}/__init__.py +0 -0
  238. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/lions/judge/forms/code_analysis_form.py +0 -0
  239. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/lions/judge/rubric.py +0 -0
  240. {lionagi-0.3.4/lionagi/lions/researcher → lionagi-0.3.6/lionagi/lions/judge/services}/__init__.py +0 -0
  241. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/lions/judge/services/judge_code.py +0 -0
  242. {lionagi-0.3.4/lionagi/lions/researcher/data_source → lionagi-0.3.6/lionagi/lions/researcher}/__init__.py +0 -0
  243. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/lions/researcher/data_source/finhub_.py +0 -0
  244. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/lions/researcher/data_source/google_.py +0 -0
  245. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/lions/researcher/data_source/wiki_.py +0 -0
  246. {lionagi-0.3.4 → lionagi-0.3.6}/lionagi/lions/researcher/data_source/yfinance_.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lionagi
3
- Version: 0.3.4
3
+ Version: 0.3.6
4
4
  Summary: Towards automated general intelligence.
5
5
  Author: HaiyangLi
6
6
  Author-email: quantocean.li@gmail.com
@@ -11,7 +11,7 @@ Classifier: Programming Language :: Python :: 3.11
11
11
  Classifier: Programming Language :: Python :: 3.12
12
12
  Requires-Dist: aiocache (>=0.12.0,<0.13.0)
13
13
  Requires-Dist: ipython (>=8.0.0,<9.0.0)
14
- Requires-Dist: lion-core (>=0.3.17,<0.4.0)
14
+ Requires-Dist: lion-core (>=0.4.0,<0.5.0)
15
15
  Requires-Dist: lion-openai (>=0.1.5,<0.2.0)
16
16
  Requires-Dist: python-dotenv (>=1.0.1,<2.0.0)
17
17
  Description-Content-Type: text/markdown
@@ -0,0 +1,13 @@
1
+ from .action_model import ActionModel
2
+ from .brainstorm_model import BrainstormModel
3
+ from .plan_model import PlanModel
4
+ from .reason_model import ReasonModel
5
+ from .step_model import StepModel
6
+
7
+ __all__ = [
8
+ "ReasonModel",
9
+ "StepModel",
10
+ "BrainstormModel",
11
+ "ActionModel",
12
+ "PlanModel",
13
+ ]
@@ -0,0 +1,61 @@
1
+ from typing import Any
2
+
3
+ from lionfuncs import to_dict, validate_str
4
+ from pydantic import BaseModel, Field, field_validator
5
+
6
+
7
+ class ActionModel(BaseModel):
8
+
9
+ title: str = Field(
10
+ ...,
11
+ title="Title",
12
+ description="Provide a concise title summarizing the action.",
13
+ )
14
+ content: str = Field(
15
+ ...,
16
+ title="Content",
17
+ description="Provide a brief description of the action to be performed.",
18
+ )
19
+ function: str = Field(
20
+ ...,
21
+ title="Function",
22
+ description=(
23
+ "Specify the name of the function to execute. **Choose from the provided "
24
+ "`tool_schema`; do not invent function names.**"
25
+ ),
26
+ examples=["print", "add", "len"],
27
+ )
28
+ arguments: dict[str, Any] = Field(
29
+ {},
30
+ title="Arguments",
31
+ description=(
32
+ "Provide the arguments to pass to the function as a dictionary. **Use "
33
+ "argument names and types as specified in the `tool_schema`; do not "
34
+ "invent argument names.**"
35
+ ),
36
+ examples=[{"num1": 1, "num2": 2}, {"x": "hello", "y": "world"}],
37
+ )
38
+
39
+ @field_validator("title", mode="before")
40
+ def validate_title(cls, value: Any) -> str:
41
+ return validate_str(value, "title")
42
+
43
+ @field_validator("content", mode="before")
44
+ def validate_content(cls, value: Any) -> str:
45
+ return validate_str(value, "content")
46
+
47
+ @field_validator("function", mode="before")
48
+ def validate_function(cls, value: Any) -> str:
49
+ return validate_str(value, "function")
50
+
51
+ @field_validator("arguments", mode="before")
52
+ def validate_arguments(cls, value: Any) -> dict[str, Any]:
53
+ return to_dict(
54
+ value,
55
+ fuzzy_parse=True,
56
+ suppress=True,
57
+ recursive=True,
58
+ )
59
+
60
+
61
+ __all__ = ["ActionModel"]
@@ -0,0 +1,42 @@
1
+ from typing import Any
2
+
3
+ from lionfuncs import validate_str
4
+ from pydantic import BaseModel, Field, field_validator
5
+
6
+ from .reason_model import ReasonModel
7
+ from .step_model import StepModel
8
+
9
+
10
+ class BrainstormModel(BaseModel):
11
+
12
+ title: str = Field(
13
+ ...,
14
+ title="Title",
15
+ description="Provide a concise title summarizing the brainstorming session.",
16
+ )
17
+ content: str = Field(
18
+ ...,
19
+ title="Content",
20
+ description="Describe the context or focus of the brainstorming session.",
21
+ )
22
+ ideas: list[StepModel] = Field(
23
+ ...,
24
+ title="Ideas",
25
+ description="A list of ideas for the next step, generated during brainstorming.",
26
+ )
27
+ reason: ReasonModel = Field(
28
+ ...,
29
+ title="Reason",
30
+ description="Provide the high level reasoning behind the brainstorming session.",
31
+ )
32
+
33
+ @field_validator("title", mode="before")
34
+ def validate_title(cls, value: Any) -> str:
35
+ return validate_str(value, "title")
36
+
37
+ @field_validator("content", mode="before")
38
+ def validate_content(cls, value: Any) -> str:
39
+ return validate_str(value, "content")
40
+
41
+
42
+ __all__ = ["BrainstormModel"]
@@ -0,0 +1,51 @@
1
+ from typing import Any, List
2
+
3
+ from lionfuncs import validate_str
4
+ from pydantic import BaseModel, Field, field_validator
5
+
6
+ from .reason_model import ReasonModel
7
+ from .step_model import StepModel
8
+
9
+
10
+ class PlanModel(BaseModel):
11
+ """
12
+ Represents a plan consisting of multiple steps, with an overall reason.
13
+
14
+ Attributes:
15
+ title (str): A concise title summarizing the plan.
16
+ content (str): A detailed description of the plan.
17
+ reason (ReasonModel): The overall reasoning behind the plan.
18
+ steps (List[StepModel]): A list of steps to execute the plan.
19
+ """
20
+
21
+ title: str = Field(
22
+ ...,
23
+ title="Title",
24
+ description="Provide a concise title summarizing the plan.",
25
+ )
26
+ content: str = Field(
27
+ ...,
28
+ title="Content",
29
+ description="Provide a detailed description of the plan.",
30
+ )
31
+ reason: ReasonModel = Field(
32
+ ...,
33
+ title="Reason",
34
+ description="Provide the reasoning behind the entire plan.",
35
+ )
36
+ steps: list[StepModel] = Field(
37
+ ...,
38
+ title="Steps",
39
+ description="A list of steps to execute the plan.",
40
+ )
41
+
42
+ @field_validator("title", mode="before")
43
+ def validate_title(cls, value: Any) -> str:
44
+ return validate_str(value, "title")
45
+
46
+ @field_validator("content", mode="before")
47
+ def validate_content(cls, value: Any) -> str:
48
+ return validate_str(value, "content")
49
+
50
+
51
+ __all__ = ["PlanModel"]
@@ -0,0 +1,63 @@
1
+ import logging
2
+ from typing import Any
3
+
4
+ from lionfuncs import to_num, validate_str
5
+ from pydantic import BaseModel, Field, field_validator
6
+
7
+
8
+ class ReasonModel(BaseModel):
9
+ title: str = Field(
10
+ ...,
11
+ title="Title",
12
+ description="Provide a concise title summarizing the reason.",
13
+ )
14
+ content: str = Field(
15
+ ...,
16
+ title="Content",
17
+ description=(
18
+ "Provide a detailed explanation supporting the reason, including relevant "
19
+ "information or context."
20
+ ),
21
+ )
22
+ confidence_score: float | None = Field(
23
+ None,
24
+ description=(
25
+ "Provide an objective numeric confidence score between 0 and 1 (with 3 "
26
+ "decimal places) indicating how likely you successfully achieved the task "
27
+ "according to user expectation. Interpret the score as:\n"
28
+ "- **1**: Very confident in a good job.\n"
29
+ "- **0**: Not confident at all.\n"
30
+ "- **[0.8, 1]**: You can continue the path of reasoning if needed.\n"
31
+ "- **[0.5, 0.8)**: Recheck your reasoning and consider reverting to a "
32
+ "previous, more confident reasoning path.\n"
33
+ "- **[0, 0.5)**: Stop because the reasoning is starting to be off track."
34
+ ),
35
+ examples=[0.821, 0.257, 0.923, 0.439],
36
+ ge=0,
37
+ le=1,
38
+ )
39
+
40
+ @field_validator("title", mode="before")
41
+ def validate_title(cls, value: Any) -> str:
42
+ return validate_str(value, "title")
43
+
44
+ @field_validator("content", mode="before")
45
+ def validate_content(cls, value: Any) -> str:
46
+ return validate_str(value, "content")
47
+
48
+ @field_validator("confidence_score", mode="before")
49
+ def validate_confidence_score(cls, value: Any) -> float:
50
+ try:
51
+ return to_num(
52
+ value,
53
+ upper_bound=1,
54
+ lower_bound=0,
55
+ num_type=float,
56
+ precision=3,
57
+ )
58
+ except Exception as e:
59
+ logging.error(f"Failed to convert {value} to a number. Error: {e}")
60
+ return 0.0
61
+
62
+
63
+ __all__ = ["ReasonModel"]
@@ -0,0 +1,65 @@
1
+ import logging
2
+ from typing import Any
3
+
4
+ from lionfuncs import validate_boolean, validate_str
5
+ from pydantic import BaseModel, Field, field_validator
6
+
7
+ from .action_model import ActionModel
8
+ from .reason_model import ReasonModel
9
+
10
+
11
+ class StepModel(BaseModel):
12
+ title: str = Field(
13
+ ...,
14
+ title="Title",
15
+ description="Provide a concise title summarizing the step.",
16
+ )
17
+ content: str = Field(
18
+ ...,
19
+ title="Content",
20
+ description="Describe the content of the step in detail.",
21
+ )
22
+ reason: ReasonModel = Field(
23
+ ...,
24
+ title="Reason",
25
+ description="Provide the reasoning behind this step, including supporting details.",
26
+ )
27
+ action_required: bool = Field(
28
+ False,
29
+ title="Action Required",
30
+ description=(
31
+ "Indicate whether this step requires an action. Set to **True** if an "
32
+ "action is required; otherwise, set to **False**."
33
+ ),
34
+ )
35
+ actions: list[ActionModel] = Field(
36
+ [],
37
+ title="Actions",
38
+ description=(
39
+ "List of actions to be performed if `action_required` is **True**. Leave "
40
+ "empty if no action is required. **When providing actions, you must "
41
+ "choose from the provided `tool_schema`. Do not invent function or "
42
+ "argument names.**"
43
+ ),
44
+ )
45
+
46
+ @field_validator("title", mode="before")
47
+ def validate_title(cls, value: Any) -> str:
48
+ return validate_str(value, "title")
49
+
50
+ @field_validator("content", mode="before")
51
+ def validate_content(cls, value: Any) -> str:
52
+ return validate_str(value, "content")
53
+
54
+ @field_validator("action_required", mode="before")
55
+ def validate_action_required(cls, value: Any) -> bool:
56
+ try:
57
+ return validate_boolean(value)
58
+ except Exception as e:
59
+ logging.error(
60
+ f"Failed to convert {value} to a boolean. Error: {e}"
61
+ )
62
+ return False
63
+
64
+
65
+ __all__ = ["StepModel"]
@@ -0,0 +1,93 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Callable
4
+ from enum import Enum
5
+
6
+ from lionfuncs import choose_most_similar
7
+ from pydantic import BaseModel
8
+
9
+ from lionagi.core.director.models import ReasonModel
10
+ from lionagi.core.session.branch import Branch
11
+
12
+ from .utils import is_enum
13
+
14
+ PROMPT = "Please select up to {max_num_selections} items from the following list {choices}. Provide the selection(s), and no comments from you"
15
+
16
+
17
+ class SelectionModel(BaseModel):
18
+ selected: list[str | Enum]
19
+
20
+
21
+ class ReasonSelectionModel(BaseModel):
22
+ selected: list[str | Enum]
23
+ reason: ReasonModel
24
+
25
+
26
+ async def select(
27
+ choices: list[str] | type[Enum],
28
+ max_num_selections: int = 1,
29
+ instruction=None,
30
+ context=None,
31
+ system=None,
32
+ sender=None,
33
+ recipient=None,
34
+ reason: bool = False,
35
+ return_enum: bool = False,
36
+ enum_parser: Callable = None, # parse the model string response to appropriate type
37
+ branch: Branch = None,
38
+ return_pydantic_model=False,
39
+ **kwargs, # additional chat arguments
40
+ ):
41
+ selections = []
42
+ if return_enum and not is_enum(choices):
43
+ raise ValueError("return_enum can only be True if choices is an Enum")
44
+
45
+ if is_enum(choices):
46
+ selections = [selection.value for selection in choices]
47
+ else:
48
+ selections = choices
49
+
50
+ prompt = PROMPT.format(
51
+ max_num_selections=max_num_selections, choices=selections
52
+ )
53
+
54
+ if instruction:
55
+ prompt = f"{instruction}\n\n{prompt} \n\n "
56
+
57
+ branch = branch or Branch()
58
+ response: SelectionModel | ReasonSelectionModel | str = await branch.chat(
59
+ instruction=prompt,
60
+ context=context,
61
+ system=system,
62
+ sender=sender,
63
+ recipient=recipient,
64
+ pydantic_model=SelectionModel if not reason else ReasonSelectionModel,
65
+ return_pydantic_model=True,
66
+ **kwargs,
67
+ )
68
+
69
+ selected = response
70
+ if isinstance(response, SelectionModel | ReasonSelectionModel):
71
+ selected = response.selected
72
+ selected = [selected] if not isinstance(selected, list) else selected
73
+ corrected_selections = [
74
+ choose_most_similar(selection, selections) for selection in selected
75
+ ]
76
+
77
+ if return_enum:
78
+ out = []
79
+ if not enum_parser:
80
+ enum_parser = lambda x: x
81
+ for selection in corrected_selections:
82
+ selection = enum_parser(selection)
83
+ for member in choices.__members__.values():
84
+ if member.value == selection:
85
+ out.append(member)
86
+ corrected_selections = out
87
+
88
+ if return_pydantic_model:
89
+ if not isinstance(response, SelectionModel | ReasonSelectionModel):
90
+ return SelectionModel(selected=corrected_selections)
91
+ response.selected = corrected_selections
92
+ return response
93
+ return corrected_selections
@@ -0,0 +1,6 @@
1
+ from enum import Enum
2
+ from inspect import isclass
3
+
4
+
5
+ def is_enum(choices):
6
+ return isclass(choices) and issubclass(choices, Enum)
@@ -117,9 +117,7 @@ class Unit(Directive, DirectiveMixin):
117
117
  requested_fields = break_down_annotation(pydantic_model)
118
118
  context = {
119
119
  "info": context,
120
- "return_guidance": pydantic_model.model_json_schema()[
121
- "properties"
122
- ],
120
+ "return_guidance": pydantic_model.model_json_schema(),
123
121
  }
124
122
 
125
123
  output, branch = await rcall(
@@ -0,0 +1 @@
1
+ __version__ = "0.3.6"
@@ -7,7 +7,7 @@ classifiers=[
7
7
 
8
8
  [tool.poetry]
9
9
  name = "lionagi"
10
- version = "0.3.4"
10
+ version = "0.3.6"
11
11
  description = "Towards automated general intelligence."
12
12
  authors = ["HaiyangLi <quantocean.li@gmail.com>"]
13
13
  readme = "README.md"
@@ -16,7 +16,7 @@ readme = "README.md"
16
16
  python = "^3.10"
17
17
  aiocache = "^0.12.0"
18
18
  ipython = "^8.0.0"
19
- lion-core = "^0.3.17"
19
+ lion-core = "^0.4.0"
20
20
  lion-openai = "^0.1.5"
21
21
  python-dotenv = "^1.0.1"
22
22
 
@@ -1 +0,0 @@
1
- __version__ = "0.3.4"
File without changes
File without changes
File without changes