lionagi 0.8.8__tar.gz → 0.9.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 (292) hide show
  1. {lionagi-0.8.8 → lionagi-0.9.1}/PKG-INFO +1 -1
  2. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/__init__.py +1 -1
  3. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/_class_registry.py +1 -1
  4. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/_errors.py +1 -1
  5. lionagi-0.9.1/lionagi/libs/__init__.py +3 -0
  6. lionagi-0.9.1/lionagi/libs/file/__init__.py +3 -0
  7. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/libs/file/chunk.py +1 -1
  8. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/libs/file/file_ops.py +1 -1
  9. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/libs/file/params.py +1 -1
  10. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/libs/file/process.py +1 -1
  11. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/libs/file/save.py +1 -1
  12. lionagi-0.9.1/lionagi/libs/nested/__init__.py +3 -0
  13. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/libs/nested/flatten.py +1 -1
  14. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/libs/nested/nfilter.py +1 -1
  15. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/libs/nested/nget.py +1 -1
  16. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/libs/nested/ninsert.py +1 -1
  17. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/libs/nested/nmerge.py +1 -1
  18. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/libs/nested/npop.py +1 -1
  19. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/libs/nested/nset.py +1 -1
  20. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/libs/nested/unflatten.py +1 -1
  21. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/libs/nested/utils.py +1 -1
  22. lionagi-0.9.1/lionagi/libs/package/__init__.py +3 -0
  23. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/libs/package/imports.py +1 -1
  24. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/libs/package/management.py +1 -1
  25. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/libs/package/params.py +1 -1
  26. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/libs/package/system.py +1 -1
  27. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/libs/parse.py +1 -1
  28. lionagi-0.9.1/lionagi/libs/schema/__init__.py +3 -0
  29. lionagi-0.9.1/lionagi/libs/schema/as_readable.py +174 -0
  30. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/libs/schema/extract_code_block.py +1 -1
  31. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/libs/schema/extract_docstring.py +1 -1
  32. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/libs/schema/function_to_schema.py +1 -1
  33. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/libs/schema/json_schema.py +1 -1
  34. lionagi-0.9.1/lionagi/libs/validate/__init__.py +3 -0
  35. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/libs/validate/common_field_validators.py +1 -1
  36. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/libs/validate/fuzzy_match_keys.py +1 -1
  37. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/libs/validate/fuzzy_validate_mapping.py +1 -1
  38. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/libs/validate/string_similarity.py +1 -1
  39. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/libs/validate/validate_boolean.py +1 -1
  40. lionagi-0.9.1/lionagi/operations/ReAct/ReAct.py +351 -0
  41. lionagi-0.9.1/lionagi/operations/ReAct/__init__.py +3 -0
  42. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operations/ReAct/utils.py +14 -3
  43. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operations/__init__.py +1 -1
  44. lionagi-0.9.1/lionagi/operations/_act/__init__.py +3 -0
  45. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operations/_act/act.py +6 -1
  46. lionagi-0.9.1/lionagi/operations/brainstorm/__init__.py +3 -0
  47. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operations/brainstorm/brainstorm.py +1 -1
  48. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operations/brainstorm/prompt.py +1 -1
  49. lionagi-0.9.1/lionagi/operations/chat/__init__.py +3 -0
  50. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operations/chat/chat.py +1 -1
  51. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operations/communicate/communicate.py +1 -1
  52. lionagi-0.9.1/lionagi/operations/instruct/__init__.py +3 -0
  53. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operations/instruct/instruct.py +1 -1
  54. lionagi-0.9.1/lionagi/operations/interpret/__init__.py +3 -0
  55. lionagi-0.9.1/lionagi/operations/interpret/interpret.py +45 -0
  56. lionagi-0.9.1/lionagi/operations/operate/__init__.py +3 -0
  57. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operations/operate/operate.py +1 -1
  58. lionagi-0.9.1/lionagi/operations/parse/__init__.py +3 -0
  59. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operations/parse/parse.py +12 -2
  60. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operations/plan/__init__.py +1 -1
  61. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operations/plan/plan.py +1 -1
  62. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operations/plan/prompt.py +1 -1
  63. lionagi-0.9.1/lionagi/operations/select/__init__.py +3 -0
  64. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operations/select/select.py +1 -1
  65. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operations/select/utils.py +1 -1
  66. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operations/types.py +1 -1
  67. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operations/utils.py +1 -1
  68. lionagi-0.9.1/lionagi/operatives/__init__.py +3 -0
  69. lionagi-0.9.1/lionagi/operatives/action/__init__.py +3 -0
  70. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operatives/action/function_calling.py +1 -1
  71. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operatives/action/manager.py +1 -1
  72. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operatives/action/request_response_model.py +1 -1
  73. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operatives/action/tool.py +1 -1
  74. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operatives/action/utils.py +1 -1
  75. lionagi-0.9.1/lionagi/operatives/forms/__init__.py +3 -0
  76. lionagi-0.9.1/lionagi/operatives/instruct/__init__.py +3 -0
  77. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operatives/instruct/base.py +1 -1
  78. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operatives/instruct/instruct.py +1 -1
  79. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operatives/instruct/instruct_collection.py +1 -1
  80. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operatives/instruct/node.py +1 -1
  81. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operatives/instruct/prompts.py +1 -1
  82. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operatives/instruct/reason.py +1 -1
  83. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operatives/manager.py +1 -1
  84. lionagi-0.9.1/lionagi/operatives/models/__init__.py +3 -0
  85. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operatives/models/field_model.py +1 -1
  86. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operatives/models/model_params.py +1 -1
  87. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operatives/models/note.py +1 -1
  88. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operatives/models/operable_model.py +1 -1
  89. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operatives/models/schema_model.py +1 -1
  90. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operatives/operative.py +1 -1
  91. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operatives/step.py +1 -1
  92. lionagi-0.9.1/lionagi/operatives/strategies/__init__.py +3 -0
  93. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operatives/strategies/base.py +1 -1
  94. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operatives/strategies/concurrent.py +1 -1
  95. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operatives/strategies/concurrent_chunk.py +1 -1
  96. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operatives/strategies/concurrent_sequential_chunk.py +1 -1
  97. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operatives/strategies/params.py +1 -1
  98. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operatives/strategies/sequential.py +1 -1
  99. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operatives/strategies/sequential_chunk.py +1 -1
  100. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operatives/strategies/sequential_concurrent_chunk.py +1 -1
  101. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operatives/strategies/utils.py +1 -1
  102. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operatives/types.py +1 -1
  103. lionagi-0.9.1/lionagi/protocols/__init__.py +3 -0
  104. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/_concepts.py +1 -1
  105. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/adapters/adapter.py +1 -1
  106. lionagi-0.9.1/lionagi/protocols/generic/__init__.py +3 -0
  107. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/generic/element.py +1 -1
  108. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/generic/event.py +1 -1
  109. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/generic/log.py +1 -1
  110. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/generic/pile.py +1 -1
  111. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/generic/processor.py +1 -1
  112. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/generic/progression.py +1 -1
  113. lionagi-0.9.1/lionagi/protocols/graph/__init__.py +3 -0
  114. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/graph/edge.py +1 -1
  115. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/graph/graph.py +1 -1
  116. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/graph/node.py +1 -1
  117. lionagi-0.9.1/lionagi/protocols/mail/__init__.py +3 -0
  118. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/mail/exchange.py +1 -1
  119. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/mail/mail.py +1 -1
  120. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/mail/mailbox.py +1 -1
  121. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/mail/manager.py +1 -1
  122. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/mail/package.py +1 -1
  123. lionagi-0.9.1/lionagi/protocols/messages/__init__.py +3 -0
  124. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/messages/action_request.py +1 -1
  125. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/messages/action_response.py +1 -1
  126. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/messages/assistant_response.py +1 -1
  127. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/messages/base.py +1 -1
  128. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/messages/instruction.py +2 -1
  129. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/messages/manager.py +1 -1
  130. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/messages/message.py +1 -1
  131. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/messages/system.py +1 -1
  132. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/types.py +1 -1
  133. lionagi-0.9.1/lionagi/service/endpoints/__init__.py +3 -0
  134. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/service/endpoints/base.py +54 -49
  135. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/service/endpoints/chat_completion.py +1 -1
  136. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/service/endpoints/match_endpoint.py +1 -1
  137. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/service/endpoints/rate_limited_processor.py +1 -1
  138. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/service/endpoints/token_calculator.py +1 -1
  139. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/service/imodel.py +2 -3
  140. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/service/manager.py +1 -1
  141. lionagi-0.9.1/lionagi/service/providers/__init__.py +3 -0
  142. lionagi-0.9.1/lionagi/service/providers/anthropic_/__init__.py +3 -0
  143. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/service/providers/anthropic_/messages.py +1 -1
  144. lionagi-0.9.1/lionagi/service/providers/groq_/__init__.py +3 -0
  145. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/service/providers/groq_/chat_completions.py +1 -1
  146. lionagi-0.9.1/lionagi/service/providers/openai_/__init__.py +3 -0
  147. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/service/providers/openai_/chat_completions.py +37 -2
  148. lionagi-0.9.1/lionagi/service/providers/openrouter_/__init__.py +3 -0
  149. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/service/providers/openrouter_/chat_completions.py +1 -1
  150. lionagi-0.9.1/lionagi/service/providers/perplexity_/__init__.py +3 -0
  151. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/service/providers/perplexity_/chat_completions.py +1 -1
  152. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/service/types.py +1 -1
  153. lionagi-0.9.1/lionagi/session/__init__.py +3 -0
  154. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/session/branch.py +104 -11
  155. lionagi-0.9.1/lionagi/session/prompts.py +61 -0
  156. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/session/session.py +1 -1
  157. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/settings.py +1 -1
  158. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/tools/file/reader.py +12 -7
  159. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/utils.py +1 -1
  160. lionagi-0.9.1/lionagi/version.py +1 -0
  161. {lionagi-0.8.8 → lionagi-0.9.1}/pyproject.toml +1 -1
  162. {lionagi-0.8.8 → lionagi-0.9.1}/uv.lock +1 -1
  163. lionagi-0.8.8/lionagi/libs/__init__.py +0 -3
  164. lionagi-0.8.8/lionagi/libs/file/__init__.py +0 -3
  165. lionagi-0.8.8/lionagi/libs/nested/__init__.py +0 -3
  166. lionagi-0.8.8/lionagi/libs/package/__init__.py +0 -3
  167. lionagi-0.8.8/lionagi/libs/schema/__init__.py +0 -3
  168. lionagi-0.8.8/lionagi/libs/schema/as_readable.py +0 -110
  169. lionagi-0.8.8/lionagi/libs/validate/__init__.py +0 -3
  170. lionagi-0.8.8/lionagi/operations/ReAct/ReAct.py +0 -158
  171. lionagi-0.8.8/lionagi/operations/ReAct/__init__.py +0 -3
  172. lionagi-0.8.8/lionagi/operations/_act/__init__.py +0 -3
  173. lionagi-0.8.8/lionagi/operations/brainstorm/__init__.py +0 -3
  174. lionagi-0.8.8/lionagi/operations/chat/__init__.py +0 -3
  175. lionagi-0.8.8/lionagi/operations/instruct/__init__.py +0 -3
  176. lionagi-0.8.8/lionagi/operations/interpret/__init__.py +0 -3
  177. lionagi-0.8.8/lionagi/operations/interpret/interpret.py +0 -74
  178. lionagi-0.8.8/lionagi/operations/operate/__init__.py +0 -3
  179. lionagi-0.8.8/lionagi/operations/parse/__init__.py +0 -3
  180. lionagi-0.8.8/lionagi/operations/select/__init__.py +0 -3
  181. lionagi-0.8.8/lionagi/operatives/__init__.py +0 -3
  182. lionagi-0.8.8/lionagi/operatives/action/__init__.py +0 -3
  183. lionagi-0.8.8/lionagi/operatives/forms/__init__.py +0 -3
  184. lionagi-0.8.8/lionagi/operatives/instruct/__init__.py +0 -3
  185. lionagi-0.8.8/lionagi/operatives/models/__init__.py +0 -3
  186. lionagi-0.8.8/lionagi/operatives/strategies/__init__.py +0 -3
  187. lionagi-0.8.8/lionagi/protocols/__init__.py +0 -3
  188. lionagi-0.8.8/lionagi/protocols/generic/__init__.py +0 -3
  189. lionagi-0.8.8/lionagi/protocols/graph/__init__.py +0 -3
  190. lionagi-0.8.8/lionagi/protocols/mail/__init__.py +0 -3
  191. lionagi-0.8.8/lionagi/protocols/messages/__init__.py +0 -3
  192. lionagi-0.8.8/lionagi/service/endpoints/__init__.py +0 -3
  193. lionagi-0.8.8/lionagi/service/providers/__init__.py +0 -3
  194. lionagi-0.8.8/lionagi/service/providers/anthropic_/__init__.py +0 -3
  195. lionagi-0.8.8/lionagi/service/providers/groq_/__init__.py +0 -3
  196. lionagi-0.8.8/lionagi/service/providers/openai_/__init__.py +0 -3
  197. lionagi-0.8.8/lionagi/service/providers/openrouter_/__init__.py +0 -3
  198. lionagi-0.8.8/lionagi/service/providers/perplexity_/__init__.py +0 -3
  199. lionagi-0.8.8/lionagi/session/__init__.py +0 -3
  200. lionagi-0.8.8/lionagi/version.py +0 -1
  201. {lionagi-0.8.8 → lionagi-0.9.1}/.env.example +0 -0
  202. {lionagi-0.8.8 → lionagi-0.9.1}/.github/FUNDING.yml +0 -0
  203. {lionagi-0.8.8 → lionagi-0.9.1}/.github/dependabot.yml +0 -0
  204. {lionagi-0.8.8 → lionagi-0.9.1}/.github/workflows/ci.yml +0 -0
  205. {lionagi-0.8.8 → lionagi-0.9.1}/.github/workflows/codeql.yml +0 -0
  206. {lionagi-0.8.8 → lionagi-0.9.1}/.github/workflows/docs.yml +0 -0
  207. {lionagi-0.8.8 → lionagi-0.9.1}/.github/workflows/release.yml +0 -0
  208. {lionagi-0.8.8 → lionagi-0.9.1}/.gitignore +0 -0
  209. {lionagi-0.8.8 → lionagi-0.9.1}/.pre-commit-config.yaml +0 -0
  210. {lionagi-0.8.8 → lionagi-0.9.1}/CODE_OF_CONDUCT.md +0 -0
  211. {lionagi-0.8.8 → lionagi-0.9.1}/CONTRIBUTING.md +0 -0
  212. {lionagi-0.8.8 → lionagi-0.9.1}/LICENSE +0 -0
  213. {lionagi-0.8.8 → lionagi-0.9.1}/README.md +0 -0
  214. {lionagi-0.8.8 → lionagi-0.9.1}/cookbooks/ch01_get_started.md +0 -0
  215. {lionagi-0.8.8 → lionagi-0.9.1}/cookbooks/ch02_concepts.md +0 -0
  216. {lionagi-0.8.8 → lionagi-0.9.1}/dev_tools/count_code_base_lines.py +0 -0
  217. {lionagi-0.8.8 → lionagi-0.9.1}/docs/Makefile +0 -0
  218. {lionagi-0.8.8 → lionagi-0.9.1}/docs/_static/custom.css +0 -0
  219. {lionagi-0.8.8 → lionagi-0.9.1}/docs/_templates/layout.html +0 -0
  220. {lionagi-0.8.8 → lionagi-0.9.1}/docs/conf.py +0 -0
  221. {lionagi-0.8.8 → lionagi-0.9.1}/docs/index.rst +0 -0
  222. {lionagi-0.8.8 → lionagi-0.9.1}/docs/modules/action.rst +0 -0
  223. {lionagi-0.8.8 → lionagi-0.9.1}/docs/modules/adapter.rst +0 -0
  224. {lionagi-0.8.8 → lionagi-0.9.1}/docs/modules/branch.rst +0 -0
  225. {lionagi-0.8.8 → lionagi-0.9.1}/docs/modules/branch_operations.rst +0 -0
  226. {lionagi-0.8.8 → lionagi-0.9.1}/docs/modules/concepts.rst +0 -0
  227. {lionagi-0.8.8 → lionagi-0.9.1}/docs/modules/element_id.rst +0 -0
  228. {lionagi-0.8.8 → lionagi-0.9.1}/docs/modules/event.rst +0 -0
  229. {lionagi-0.8.8 → lionagi-0.9.1}/docs/modules/form.rst +0 -0
  230. {lionagi-0.8.8 → lionagi-0.9.1}/docs/modules/graph.rst +0 -0
  231. {lionagi-0.8.8 → lionagi-0.9.1}/docs/modules/index.rst +0 -0
  232. {lionagi-0.8.8 → lionagi-0.9.1}/docs/modules/instruct.rst +0 -0
  233. {lionagi-0.8.8 → lionagi-0.9.1}/docs/modules/lib_file.rst +0 -0
  234. {lionagi-0.8.8 → lionagi-0.9.1}/docs/modules/lib_nested.rst +0 -0
  235. {lionagi-0.8.8 → lionagi-0.9.1}/docs/modules/lib_package.rst +0 -0
  236. {lionagi-0.8.8 → lionagi-0.9.1}/docs/modules/lib_schema.rst +0 -0
  237. {lionagi-0.8.8 → lionagi-0.9.1}/docs/modules/lib_validate.rst +0 -0
  238. {lionagi-0.8.8 → lionagi-0.9.1}/docs/modules/log.rst +0 -0
  239. {lionagi-0.8.8 → lionagi-0.9.1}/docs/modules/mail.rst +0 -0
  240. {lionagi-0.8.8 → lionagi-0.9.1}/docs/modules/message.rst +0 -0
  241. {lionagi-0.8.8 → lionagi-0.9.1}/docs/modules/models.rst +0 -0
  242. {lionagi-0.8.8 → lionagi-0.9.1}/docs/modules/operative_step.rst +0 -0
  243. {lionagi-0.8.8 → lionagi-0.9.1}/docs/modules/pile.rst +0 -0
  244. {lionagi-0.8.8 → lionagi-0.9.1}/docs/modules/processor.rst +0 -0
  245. {lionagi-0.8.8 → lionagi-0.9.1}/docs/modules/progression.rst +0 -0
  246. {lionagi-0.8.8 → lionagi-0.9.1}/docs/modules/service.rst +0 -0
  247. {lionagi-0.8.8 → lionagi-0.9.1}/docs/modules/session.rst +0 -0
  248. {lionagi-0.8.8 → lionagi-0.9.1}/docs/modules/utils.rst +0 -0
  249. {lionagi-0.8.8 → lionagi-0.9.1}/docs/tutorials/get_started.rst +0 -0
  250. {lionagi-0.8.8 → lionagi-0.9.1}/docs/tutorials/get_started_pt2.rst +0 -0
  251. {lionagi-0.8.8 → lionagi-0.9.1}/docs/tutorials/get_started_pt3.rst +0 -0
  252. {lionagi-0.8.8 → lionagi-0.9.1}/docs/tutorials/index.rst +0 -0
  253. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/_types.py +0 -0
  254. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/libs/token_transform/__init__.py +0 -0
  255. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/libs/token_transform/llmlingua.py +0 -0
  256. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/libs/token_transform/perplexity.py +0 -0
  257. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/libs/token_transform/synthlang.py +0 -0
  258. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operations/communicate/__init__.py +0 -0
  259. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operations/manager.py +0 -0
  260. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operations/translate/__init__.py +0 -0
  261. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operations/translate/translate.py +0 -0
  262. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operatives/forms/base.py +0 -0
  263. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operatives/forms/flow.py +0 -0
  264. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operatives/forms/form.py +0 -0
  265. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/operatives/forms/report.py +0 -0
  266. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/adapters/__init__.py +0 -0
  267. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/adapters/json_adapter.py +0 -0
  268. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/adapters/pandas_/__init__.py +0 -0
  269. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/adapters/pandas_/csv_adapter.py +0 -0
  270. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/adapters/pandas_/excel_adapter.py +0 -0
  271. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/adapters/pandas_/pd_dataframe_adapter.py +0 -0
  272. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/adapters/pandas_/pd_series_adapter.py +0 -0
  273. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/adapters/types.py +0 -0
  274. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/messages/templates/README.md +0 -0
  275. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/messages/templates/action_request.jinja2 +0 -0
  276. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/messages/templates/action_response.jinja2 +0 -0
  277. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/messages/templates/assistant_response.jinja2 +0 -0
  278. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/messages/templates/instruction_message.jinja2 +0 -0
  279. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/messages/templates/system_message.jinja2 +0 -0
  280. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/protocols/messages/templates/tool_schemas.jinja2 +0 -0
  281. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/service/__init__.py +0 -0
  282. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/service/providers/exa_/__init__.py +0 -0
  283. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/service/providers/exa_/models.py +0 -0
  284. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/service/providers/exa_/search.py +0 -0
  285. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/service/providers/exa_/types.py +0 -0
  286. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/service/providers/perplexity_/models.py +0 -0
  287. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/service/providers/types.py +0 -0
  288. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/tools/__init__.py +0 -0
  289. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/tools/base.py +0 -0
  290. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/tools/file/__init__.py +0 -0
  291. {lionagi-0.8.8 → lionagi-0.9.1}/lionagi/tools/types.py +0 -0
  292. {lionagi-0.8.8 → lionagi-0.9.1}/prompts/doc_style.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lionagi
3
- Version: 0.8.8
3
+ Version: 0.9.1
4
4
  Summary: An Intelligence Operating System.
5
5
  Author-email: HaiyangLi <quantocean.li@gmail.com>
6
6
  License: Apache License
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2023 - 2024, HaiyangLi <quantocean.li at gmail dot com>
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2023 - 2024, HaiyangLi <quantocean.li at gmail dot com>
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2023 - 2024, HaiyangLi <quantocean.li at gmail dot com>
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
@@ -0,0 +1,3 @@
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
@@ -0,0 +1,3 @@
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2023 - 2024, HaiyangLi <quantocean.li at gmail dot com>
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2023 - 2024, HaiyangLi <quantocean.li at gmail dot com>
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2023 - 2024, HaiyangLi <quantocean.li at gmail dot com>
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2023 - 2024, HaiyangLi <quantocean.li at gmail dot com>
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2023 - 2024, HaiyangLi <quantocean.li at gmail dot com>
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
@@ -0,0 +1,3 @@
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2023 - 2024, HaiyangLi <quantocean.li at gmail dot com>
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2023 - 2024, HaiyangLi <quantocean.li at gmail dot com>
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2023 - 2024, HaiyangLi <quantocean.li at gmail dot com>
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2023 - 2024, HaiyangLi <quantocean.li at gmail dot com>
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2023 - 2024, HaiyangLi <quantocean.li at gmail dot com>
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2023 - 2024, HaiyangLi <quantocean.li at gmail dot com>
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2023 - 2024, HaiyangLi <quantocean.li at gmail dot com>
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2023 - 2024, HaiyangLi <quantocean.li at gmail dot com>
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2023 - 2024, HaiyangLi <quantocean.li at gmail dot com>
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
@@ -0,0 +1,3 @@
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2023 - 2024, HaiyangLi <quantocean.li at gmail dot com>
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2023 - 2024, HaiyangLi <quantocean.li at gmail dot com>
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2023 - 2024, HaiyangLi <quantocean.li at gmail dot com>
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2023 - 2024, HaiyangLi <quantocean.li at gmail dot com>
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2023 - 2024, HaiyangLi <quantocean.li at gmail dot com>
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
@@ -0,0 +1,3 @@
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
@@ -0,0 +1,174 @@
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ import json
6
+ from typing import Any
7
+
8
+ from lionagi.utils import to_dict
9
+
10
+
11
+ def in_notebook() -> bool:
12
+ """
13
+ Checks if we're running inside a Jupyter notebook.
14
+ Returns True if yes, False otherwise.
15
+ """
16
+ try:
17
+ from IPython import get_ipython
18
+
19
+ shell = get_ipython().__class__.__name__
20
+ return "ZMQInteractiveShell" in shell
21
+ except Exception:
22
+ return False
23
+
24
+
25
+ def format_dict(data: Any, indent: int = 0) -> str:
26
+ """
27
+ Recursively format Python data (dicts, lists, strings, etc.) into a
28
+ YAML-like readable string.
29
+
30
+ - Multi-line strings are displayed using a '|' block style, each line indented.
31
+ - Lists are shown with a '- ' prefix per item at the appropriate indentation.
32
+ - Dict keys are shown as "key:" lines, with values on subsequent lines if complex.
33
+ """
34
+ lines = []
35
+ prefix = " " * indent # 2 spaces per indent level
36
+
37
+ if isinstance(data, dict):
38
+ for key, value in data.items():
39
+ if isinstance(value, dict):
40
+ # Nested dict
41
+ lines.append(f"{prefix}{key}:")
42
+ lines.append(format_dict(value, indent + 1))
43
+ elif isinstance(value, list):
44
+ # List under a key
45
+ lines.append(f"{prefix}{key}:")
46
+ for item in value:
47
+ item_str = format_dict(item, indent + 2).lstrip()
48
+ lines.append(f"{prefix} - {item_str}")
49
+ elif isinstance(value, str) and "\n" in value:
50
+ # Multi-line string
51
+ lines.append(f"{prefix}{key}: |")
52
+ subprefix = " " * (indent + 1)
53
+ for line in value.splitlines():
54
+ lines.append(f"{subprefix}{line}")
55
+ else:
56
+ # Simple single-line scalar
57
+ item_str = format_dict(value, indent + 1).lstrip()
58
+ lines.append(f"{prefix}{key}: {item_str}")
59
+ return "\n".join(lines)
60
+
61
+ elif isinstance(data, list):
62
+ # For top-level or nested lists
63
+ for item in data:
64
+ item_str = format_dict(item, indent + 1).lstrip()
65
+ lines.append(f"{prefix}- {item_str}")
66
+ return "\n".join(lines)
67
+
68
+ # Base case: single-line scalar
69
+ return prefix + str(data)
70
+
71
+
72
+ def as_readable(
73
+ input_: Any,
74
+ /,
75
+ *,
76
+ md: bool = False,
77
+ format_curly: bool = False,
78
+ display_str: bool = False,
79
+ max_chars: int | None = None,
80
+ ) -> str:
81
+ """
82
+ Convert `input_` into a human-readable string. If `format_curly=True`, uses
83
+ a YAML-like style (`format_dict`). Otherwise, pretty-printed JSON.
84
+
85
+ - For Pydantic models or nested data, uses `to_dict` to get a dictionary.
86
+ - If the result is a list of items, each is processed and concatenated.
87
+
88
+ Args:
89
+ input_: The data to convert (could be a single item or list).
90
+ md: If True, wraps the final output in code fences for Markdown display.
91
+ format_curly: If True, use `format_dict`. Otherwise, produce JSON text.
92
+
93
+ Returns:
94
+ A formatted string representation of `input_`.
95
+ """
96
+
97
+ # 1) Convert the input to a Python dict/list structure
98
+ # (handles recursion, Pydantic models, etc.)
99
+ def to_dict_safe(obj: Any) -> Any:
100
+ # Attempt to call to_dict with typical recursion flags
101
+ to_dict_kwargs = {
102
+ "use_model_dump": True,
103
+ "fuzzy_parse": True,
104
+ "recursive": True,
105
+ "recursive_python_only": False,
106
+ "max_recursive_depth": 5,
107
+ }
108
+ return to_dict(obj, **to_dict_kwargs)
109
+
110
+ def _inner(i_: Any) -> Any:
111
+ try:
112
+ if isinstance(i_, list):
113
+ # Already a list. Convert each item
114
+ items = [to_dict_safe(x) for x in i_]
115
+ else:
116
+ # Single item
117
+ maybe_list = to_dict_safe(i_)
118
+ # If it's a list, store as items; else just single
119
+ items = (
120
+ maybe_list
121
+ if isinstance(maybe_list, list)
122
+ else [maybe_list]
123
+ )
124
+ except Exception:
125
+ # If conversion fails, fallback to str
126
+ return str(i_)
127
+
128
+ # 2) For each item in `items`, either format with YAML-like or JSON
129
+ rendered = []
130
+ for item in items:
131
+ if format_curly:
132
+ # YAML-like
133
+ rendered.append(format_dict(item))
134
+ else:
135
+ # JSON approach
136
+ try:
137
+ # Provide indentation, ensure ASCII not forced
138
+ rendered.append(
139
+ json.dumps(item, indent=2, ensure_ascii=False)
140
+ )
141
+ except Exception:
142
+ # fallback
143
+ rendered.append(str(item))
144
+
145
+ # 3) Combine
146
+ final_str = "\n\n".join(rendered).strip()
147
+
148
+ # 4) If Markdown requested, wrap with code fences
149
+ # - If we used format_curly, we might do "```yaml" instead. But user specifically asked for JSON code blocks previously
150
+ if md:
151
+ if format_curly:
152
+ return f"```yaml\n{final_str}\n```"
153
+ else:
154
+ return f"```json\n{final_str}\n```"
155
+
156
+ return final_str
157
+
158
+ str_ = _inner(input_).strip()
159
+ if max_chars is not None and len(str_) > max_chars:
160
+ str1 = str_[:max_chars] + "...\n\n[Truncated output]\n\n"
161
+ if str_.endswith("\n```"):
162
+ str1 += "```"
163
+ str_ = str1
164
+ if display_str:
165
+ if md and in_notebook():
166
+ # If in IPython environment, display Markdown
167
+ from IPython.display import Markdown, display
168
+
169
+ display(Markdown(str_))
170
+ else:
171
+ # Otherwise, just print the string
172
+ print(str_)
173
+ else:
174
+ return str_
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2023 - 2024, HaiyangLi <quantocean.li at gmail dot com>
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2023 - 2024, HaiyangLi <quantocean.li at gmail dot com>
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2023 - 2024, HaiyangLi <quantocean.li at gmail dot com>
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2023 - 2024, HaiyangLi <quantocean.li at gmail dot com>
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
@@ -0,0 +1,3 @@
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2023 - 2024, HaiyangLi <quantocean.li at gmail dot com>
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2023 - 2024, HaiyangLi <quantocean.li at gmail dot com>
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2023 - 2024, HaiyangLi <quantocean.li at gmail dot com>
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2023 - 2024, HaiyangLi <quantocean.li at gmail dot com>
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2023 - 2024, HaiyangLi <quantocean.li at gmail dot com>
1
+ # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4